You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(50) |
Feb
(137) |
Mar
(84) |
Apr
(36) |
May
(100) |
Jun
(5) |
Jul
|
Aug
(4) |
Sep
(13) |
Oct
(1) |
Nov
(4) |
Dec
(22) |
2011 |
Jan
(4) |
Feb
(9) |
Mar
(113) |
Apr
(76) |
May
(31) |
Jun
(19) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(4) |
Feb
|
Mar
(2) |
Apr
(6) |
May
(19) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(22) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jérémie D. <Ba...@us...> - 2010-03-08 23:33:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 973aff6d5670f48ceba7442182bcfbdd46e1cf33 (commit) via 88400b5b6737719639fd1ee69fc4b1a9567ab6f3 (commit) from d1bc3f760c9bcaabdb89b83a2d757777a262448d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 973aff6d5670f48ceba7442182bcfbdd46e1cf33 Author: Jérémie Dimino <je...@di...> Date: Tue Mar 9 00:32:59 2010 +0100 add request to get the motors configuration commit 88400b5b6737719639fd1ee69fc4b1a9567ab6f3 Author: Jérémie Dimino <je...@di...> Date: Tue Mar 9 00:23:25 2010 +0100 add the batttery monitoring card to the list of cards to close ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/common/krobot_types.ml b/PC_Mainboard/common/krobot_types.ml index 0b5a297..b10800c 100644 --- a/PC_Mainboard/common/krobot_types.ml +++ b/PC_Mainboard/common/krobot_types.ml @@ -66,3 +66,10 @@ type ax12_action = { aa_position : int; aa_velocity : int; } with obus + +type motor_config = { + motor_kp : int; + motor_ki : int; + motor_kd : int; + motor_li : int; +} with obus diff --git a/PC_Mainboard/common/krobot_types.mli b/PC_Mainboard/common/krobot_types.mli index c7c261f..56d042b 100644 --- a/PC_Mainboard/common/krobot_types.mli +++ b/PC_Mainboard/common/krobot_types.mli @@ -52,3 +52,11 @@ type ax12_action = { aa_position : int; aa_velocity : int; } with obus(sequence) + +(** Motor configuration *) +type motor_config = { + motor_kp : int; + motor_ki : int; + motor_kd : int; + motor_li : int; +} with obus(sequence) diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 5d9c1ca..5e2ae19 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -643,21 +643,23 @@ struct | Some card -> Krobot_card.close card - OL_method CardStates : OBus_connection.t -> Krobot_types.card_state * Krobot_types.card_state * Krobot_types.card_state = fun manager connection -> + OL_method CardStates : OBus_connection.t -> Krobot_types.card_state * Krobot_types.card_state * Krobot_types.card_state * Krobot_types.card_state = fun manager connection -> let state card = match React.S.value card with | Some _ -> `Present | None -> `Absent in return (state card_interface, state card_sensor, - state card_motor) + state card_motor, + state card_monitoring) OL_method Shutdown : OBus_connection.t -> unit = fun manager connection -> lwt () = Log.info "exiting" in quit := true; lwt () = close card_interface and () = close card_sensor - and () = close card_motor in + and () = close card_motor + and () = close card_monitoring in lwt _ = OBus_bus.release_name connection "fr.krobot.Driver" in Lwt.wakeup done_wakener (); return () diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index d4be097..9274bec 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -547,6 +547,21 @@ let interfaces = [ ~repl:[Arg("right", sint32); Arg("left", sint32)] (); + record + ~name:"motor-config" + ~prefix:"motor_" + ~args:[("kp", uint16); + ("ki", uint16); + ("kd", uint16); + ("li", uint16)] + (); + request + ~name:"read-config" + ~code:PcInterface.cmd_traj + ~args:[Cst(uint8, PcInterface.traj_read_config)] + ~repl:[Arg("right", typ "motor-config"); + Arg("left", typ "motor-config")] + (); ]); Module("servo", [ hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-08 23:17:37
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via d1bc3f760c9bcaabdb89b83a2d757777a262448d (commit) from bba0433fac2aeb548186bb883b0016fa3583f8c1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d1bc3f760c9bcaabdb89b83a2d757777a262448d Author: Jérémie Dimino <je...@di...> Date: Tue Mar 9 00:16:27 2010 +0100 add the monitoring card to clients ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/clients/controller.ml b/PC_Mainboard/clients/controller.ml index cd91d27..6025ad8 100644 --- a/PC_Mainboard/clients/controller.ml +++ b/PC_Mainboard/clients/controller.ml @@ -191,6 +191,8 @@ let rec draw krobot = fg line_color; text " ]─┬─[ "; fg name_color; text "Services"; fg line_color; text " ]─┬─[ "; + fg name_color; text "Cards"; + fg line_color; text " ]─┬─[ "; fg name_color; text "Status"; fg line_color; text " ]─"]; points.(9).(0) <- { line with char = "├" }; @@ -201,9 +203,10 @@ let rec draw krobot = for i = 1 to 8 do points.(i).(20) <- { line with char = "│" }; points.(i).(40) <- { line with char = "│" }; - points.(i).(55) <- { line with char = "│" } + points.(i).(55) <- { line with char = "│" }; + points.(i).(67) <- { line with char = "│" } done; - Draw.textc screen 1 9 [fg line_color; text "───────────────────┴───────────────────┴──────────────┴"]; + Draw.textc screen 1 9 [fg line_color; text "───────────────────┴───────────────────┴──────────────┴───────────┴"]; let zone = Zone.inner screen in @@ -231,18 +234,20 @@ let rec draw krobot = loop 0 (TextSet.elements (React.S.value services)); let x = 55 in + let text_of_state name = function + | `Absent -> [fg lred; text name] + | `Present -> [text name] + in + Draw.textc zone x 0 (text_of_state "interface" (React.S.value (Krobot.Card.state (krobot, `Interface)))); + Draw.textc zone x 1 (text_of_state "sensor" (React.S.value (Krobot.Card.state (krobot, `Sensor)))); + Draw.textc zone x 2 (text_of_state "motor" (React.S.value (Krobot.Card.state (krobot, `Motor)))); + Draw.textc zone x 3 (text_of_state "monitoring" (React.S.value (Krobot.Card.state (krobot, `Monitoring)))); + let x = x + 12 in Draw.textf zone x 0 "team = %s" (match React.S.value (Krobot.team krobot) with | Krobot.Team_red -> "red" | Krobot.Team_green -> "green"); Draw.textf zone x 1 "jack = %s" (if React.S.value (Krobot.jack krobot) then "present" else "absent"); Draw.textf zone x 2 "compass = %d" (React.S.value (Krobot.compass krobot)); - let text_of_state name = function - | `Absent -> [fg lred; textf "%s card is absent" name] - | `Present -> [textf "%s card is present" name] - in - Draw.textc zone x 3 (text_of_state "interface" (React.S.value (Krobot.Card.state (krobot, `Interface)))); - Draw.textc zone x 4 (text_of_state "sensor" (React.S.value (Krobot.Card.state (krobot, `Sensor)))); - Draw.textc zone x 5 (text_of_state "motor" (React.S.value (Krobot.Card.state (krobot, `Motor)))); let date = Unix.gettimeofday () in let text_of_motor_state mode until = if date < until then @@ -250,8 +255,8 @@ let rec draw krobot = else [text mode; text "OK"] in - Draw.textc zone x 6 (text_of_motor_state "move forward: " (React.S.value (Krobot.inhibited_forward_until krobot))); - Draw.textc zone x 7 (text_of_motor_state "move backward: " (React.S.value (Krobot.inhibited_backward_until krobot))); + Draw.textc zone x 3 (text_of_motor_state "move forward: " (React.S.value (Krobot.inhibited_forward_until krobot))); + Draw.textc zone x 4 (text_of_motor_state "move backward: " (React.S.value (Krobot.inhibited_backward_until krobot))); (* ===== History ===== *) diff --git a/PC_Mainboard/clients/info.ml b/PC_Mainboard/clients/info.ml index 7efb03a..f2e8501 100644 --- a/PC_Mainboard/clients/info.ml +++ b/PC_Mainboard/clients/info.ml @@ -32,4 +32,5 @@ lwt () = lwt () = print_card krobot `Interface in lwt () = print_card krobot `Sensor in lwt () = print_card krobot `Motor in + lwt () = print_card krobot `Monitoring in return () hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-03-08 23:14:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via bba0433fac2aeb548186bb883b0016fa3583f8c1 (commit) from 6979c0aaac3d8e3225bde86295cbf178e973dafc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit bba0433fac2aeb548186bb883b0016fa3583f8c1 Author: Olivier BICHLER <oli...@gm...> Date: Tue Mar 9 00:14:02 2010 +0100 Added safe-guards for the Motor Controller board and implemented host interrupt ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/common/PcInterface.h b/PC_Mainboard/common/PcInterface.h index 04a05cb..cb0e224 100644 --- a/PC_Mainboard/common/PcInterface.h +++ b/PC_Mainboard/common/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h index 04a05cb..cb0e224 100644 --- a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h +++ b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/PC_Mainboard/python/dev/User_Interface/PcInterface.h b/PC_Mainboard/python/dev/User_Interface/PcInterface.h index 04a05cb..cb0e224 100644 --- a/PC_Mainboard/python/dev/User_Interface/PcInterface.h +++ b/PC_Mainboard/python/dev/User_Interface/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Dev_Board/Firmware/PcInterface.h b/USB_Dev_Board/Firmware/PcInterface.h index 04a05cb..cb0e224 100644 --- a/USB_Dev_Board/Firmware/PcInterface.h +++ b/USB_Dev_Board/Firmware/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h index 04a05cb..cb0e224 100644 --- a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h +++ b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Motor_Controller/Firmware/PcInterface.h b/USB_Module/Motor_Controller/Firmware/PcInterface.h index 04a05cb..cb0e224 100644 --- a/USB_Module/Motor_Controller/Firmware/PcInterface.h +++ b/USB_Module/Motor_Controller/Firmware/PcInterface.h @@ -93,6 +93,7 @@ typedef struct _UP { #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 #define ERR_LM_COMMAND_ERROR 10 +#define ERR_LM_POSITION_ERROR 11 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Motor_Controller/Firmware/lm629.c b/USB_Module/Motor_Controller/Firmware/lm629.c index 491d96d..46f5267 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.c +++ b/USB_Module/Motor_Controller/Firmware/lm629.c @@ -11,6 +11,22 @@ volatile DWORD_VAL posRight = 0; volatile DWORD_VAL posLeft = 0; +void checkLM629Interrupt(void) { + // Ne jamais oublier de resetter l'interruption correspondante sous peine de flooder l'USB dans le cas de la mode LM_POLLING + // et de ne pas dcter les interruptions suivantes dans le cas de la mode LM_INTERRUPT ! + // Toutes les interruptions non masqu doivent e traitici dans le cas de la mode LM_INTERRUPT. + + if (readStatusBit(MOTOR_RIGHT, LM_COMMAND_ERROR) || readStatusBit(MOTOR_LEFT, LM_COMMAND_ERROR)) { + error(ERR_LM_COMMAND_ERROR); + resetInterrupt(MOTOR_BOTH, LM_COMMAND_ERROR); + } + + if (readStatusBit(MOTOR_RIGHT, LM_POSITION_ERROR) || readStatusBit(MOTOR_LEFT, LM_POSITION_ERROR)) { + error(ERR_LM_POSITION_ERROR); + resetInterrupt(MOTOR_BOTH, LM_POSITION_ERROR); + } +} + /** * Change la direction du BUS de donn * Cette fonction est utilisen interne et ne doit pas e appelsinon. @@ -304,28 +320,32 @@ BYTE readStatus(char axis) { * @return value la valeur du bit, 0 (#FALSE) ou 1 (#TRUE). */ BOOL readStatusBit(char axis, BYTE type) { - BYTE status = 0; - - status = readStatus(axis); - status = (status & type); - - if (status != 0) - return 1; - else - return 0; + return ((readStatus(axis) & type) != 0); } /** - * Reset les bits d'interruption du/des LM(s). + * Reset certains bits d'interruption du/des LM(s). * * @param axis l'axe moteur correspondant au LM rogrammer, peut valoir : @n * #MOTOR_RIGHT le moteur de droite uniquement @n * #MOTOR_LEFT le moteur de gauche uniquement @n * #MOTOR_BOTH les 2 moteurs */ -void resetInterrupt(char axis) { +void resetInterrupt(char axis, WORD type) { writeCommand(axis, LM_CMD_RSTI); - writeDataWord(axis, 0x0000); + writeDataWord(axis, type); +} + +/** + * Reset tous les bits d'interruption du/des LM(s). + * + * @param axis l'axe moteur correspondant au LM rogrammer, peut valoir : @n + * #MOTOR_RIGHT le moteur de droite uniquement @n + * #MOTOR_LEFT le moteur de gauche uniquement @n + * #MOTOR_BOTH les 2 moteurs +*/ +void resetAllInterrupt(char axis) { + resetInterrupt(axis, 0x0000); } /** @@ -365,16 +385,21 @@ initLM_RESET: // Activation de certaines interruptions writeCommand(axis, LM_CMD_MSKI); - writeDataWord(axis, LM_COMMAND_ERROR | LM_INDEX_PULSE); + + #if defined(LM_INTERRUPT) + writeDataWord(axis, LM_COMMAND_ERROR | LM_POSITION_ERROR); + #else + writeDataWord(axis, 0); + #endif // Reset des interruptions - resetInterrupt(axis); + resetAllInterrupt(axis); if (readStatus(axis) != 0x80 && readStatus(axis) != 0xC0) goto initLM_RESET; if (readStatus(axis) == 0xC0) - resetInterrupt(axis); + resetAllInterrupt(axis); // Chargement des parames du filtre writeCommand(axis, LM_CMD_LFIL); @@ -386,6 +411,10 @@ initLM_RESET: // Application du filtre writeCommand(axis, LM_CMD_UDF); + + // Srit+ writeCommand(axis, LM_CMD_LPES); + writeDataWord(axis, LM_PES_LIMIT); } /** @@ -669,7 +698,7 @@ WORD getIntegrationSum(char axis) { * @param acc accration, en mm/s, sur 16 bits */ void moveForward(short pos, short vel, short acc) { - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); newPosition(MOTOR_BOTH, (long) ((float) pos * COEF_RIGHT_WHEEL), (long) ((float) vel * COEF_RIGHT_WHEEL * CONST_VEL), @@ -685,7 +714,7 @@ void moveForward(short pos, short vel, short acc) { * @param acc accration, en mm/s, sur 16 bits */ void moveBackward(short pos, short vel, short acc) { - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); newPosition(MOTOR_BOTH, - (long) ((float) pos * COEF_RIGHT_WHEEL), (long) ((float) vel * COEF_RIGHT_WHEEL * CONST_VEL), @@ -701,7 +730,7 @@ void moveBackward(short pos, short vel, short acc) { * @param acc accration, en mm/s, sur 16 bits */ void turnRight(short angle, short vel, short acc) { - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); newPosition(MOTOR_RIGHT, - (long) ((float) angle * CONST_POS * WHEELS_DIST * COEF_RIGHT_WHEEL), (long) ((float) vel * COEF_RIGHT_WHEEL * CONST_VEL), @@ -721,7 +750,7 @@ void turnRight(short angle, short vel, short acc) { * @param acc accration, en mm/s, sur 16 bits */ void turnLeft(short angle, short vel, short acc) { - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); newPosition(MOTOR_RIGHT, (long) ((float) angle * CONST_POS * WHEELS_DIST * COEF_RIGHT_WHEEL), (long) ((float) vel * COEF_RIGHT_WHEEL * CONST_VEL), @@ -751,7 +780,7 @@ void turnLeft(short angle, short vel, short acc) { * Lorsqu'exprimn %, c peut e supeur 00 en valeur absolue. */ void turn(short angle, short vel, short acc, short c, BOOL rel) { - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); if (rel) c = WHEELS_DIST / 2.0 * (c / 100.0); @@ -802,7 +831,7 @@ void goTo(short x, short y, short vel, short acc, BYTE mode, short d) { a = (((float) x)*((float) x) + ((float) y)*((float) y))/4.0; angle1 = atan2((float)y, (float)x); - resetInterrupt(MOTOR_BOTH); + resetAllInterrupt(MOTOR_BOTH); if (mode == GOTO_STRAIGHT || d == 0) { turnRight(90.0 - angle1*180.0/PI, vel, acc); diff --git a/USB_Module/Motor_Controller/Firmware/lm629.h b/USB_Module/Motor_Controller/Firmware/lm629.h index a604630..341794a 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.h +++ b/USB_Module/Motor_Controller/Firmware/lm629.h @@ -11,7 +11,9 @@ #include "GenericTypeDefs.h" #include "Compiler.h" #include "HardwareProfile.h" +#include "PcInterface.h" #include "eeprom.h" +#include "error.h" #include "motor.h" // Robot utilis@@ -20,6 +22,8 @@ // Parames graux #define LM_CLOCK 8e6 ///< Frence horloge LM (en Hz) -- forcnt 6 ou 8 MHz selon la rrence du composant +#define LM_INTERRUPT +//#define LM_POLLING #if defined(KROBOT_2010) // Constantes pour [Kro]bot 2010 @@ -50,13 +54,15 @@ #define DEFAULT_KP 1 ///< Constante action proportionnelle #define DEFAULT_KI 0 ///< Constante action intale #define DEFAULT_KD 0 ///< Constante action dv - #define DEFAULT_IL 10000 ///< Integration Limit -- limite la contribution du terme intateur (doit e non nul si KI est non nul !) + #define DEFAULT_IL 1000 ///< Integration Limit -- limite la contribution du terme intateur (doit e non nul si KI est non nul !) + #define LM_PES_LIMIT 10000 ///< Position Error Stop Limit #elif defined(KROBOT_PROTO) // Constantes pour le robot protoype basur des EMG30s #define DEFAULT_KP 1000 ///< Constante action proportionnelle #define DEFAULT_KI 1 ///< Constante action intale #define DEFAULT_KD 0 ///< Constante action dv #define DEFAULT_IL 10000 ///< Integration Limit -- limite la contribution du terme intateur (doit e non nul si KI est non nul !) + #define LM_PES_LIMIT 10000 ///< Position Error Stop Limit #else #error Il est nssaire de darer un type de robot tiliser #endif @@ -202,6 +208,8 @@ /* Compter 1.5 ms artir d'ici pour que le RESET soit effectif. */ \ } +void checkLM629Interrupt(void); + // Fonctions de bas niveau void dataBusDirection(char dir); void waitBusyLM(char axis); @@ -210,7 +218,8 @@ void writeDataWord(char axis, WORD data); WORD readDataWord(char axis); BYTE readStatus(char axis); BOOL readStatusBit(char axis, BYTE type); -void resetInterrupt(char axis); +void resetInterrupt(char axis, WORD type); +void resetAllInterrupt(char axis); void initLM(char axis, WORD kp, WORD ki, WORD kd, WORD il); // Fonctions de rptions des grandeurs actuelles diff --git a/USB_Module/Motor_Controller/Firmware/main.c b/USB_Module/Motor_Controller/Firmware/main.c index 387f8ce..7bc8086 100644 --- a/USB_Module/Motor_Controller/Firmware/main.c +++ b/USB_Module/Motor_Controller/Firmware/main.c @@ -238,16 +238,17 @@ char ResetSource(void); // On rtorise l'interruption PIR1bits.TMR1IF = 0; } - /* - // Interruption provenant du controleur d'interruption - if (INTCONbits.INT0IF) { - - // On rtorise l'interruption - INTCONbits.INT0IF = 0; - } - */ - + #if defined(LM_INTERRUPT) + // Interruption provenant d'un LM + if (INTCONbits.RBIF) { + checkLM629Interrupt(); + + // On rtorise l'interruption + INTCONbits.RBIF = 0; + } + #endif + // restauration des registres de calcul PRODL = sProdL; PRODH = sProdH; @@ -524,6 +525,10 @@ void UserInit(void) INTCONbits.GIE = 1; // Enables all high priority interrupts INTCONbits.PEIE = 1; // Enables all low priority peripheral interrupts + #if defined(LM_INTERRUPT) + INTCONbits.RBIE = 1; // Enable PORTB Interrupt-on-change + #endif + // Configuration de l'I2C // OpenI2C(MASTER, SLEW_OFF); @@ -575,7 +580,20 @@ void ProcessIO(void) { } // User Application USB tasks - if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return; + if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) { + // Mesure de srit ce n'est pas normal de perdre la liaison USB au milieu d'une trajectoire + if (traj_engaged) { + stop(MOTOR_BOTH, TRAJ_STOP_MOTOR_OFF); + waitTrajComplete(); + traj_engaged = 0; + } + + return; + } + + #if defined(LM_POLLING) + checkLM629Interrupt(); + #endif if (!HIDTxHandleBusy(USBInHandle) && err[errno] > 0) { ToSendDataBuffer.HSEQ = 0; // Num sence PC @@ -605,11 +623,6 @@ void ProcessIO(void) { } } - if (readStatusBit(MOTOR_RIGHT, LM_COMMAND_ERROR) || readStatusBit(MOTOR_LEFT, LM_COMMAND_ERROR)) { - error(ERR_LM_COMMAND_ERROR); - resetInterrupt(MOTOR_BOTH); // Nssaire car sinon en cas d'erreur on flood l'USB - } - // Machine d't pour la commande CMD_TEST switch (state) { case 1: @@ -835,6 +848,13 @@ void ProcessIO(void) { case MOTOR_DISABLE: disableMotor(ReceivedDataBuffer.DATA[1]); + + // Mesure de srit ce n'est pas normal que l'on dctive les moteurs au milieu d'une trajectoire + if (traj_engaged) { + stop(MOTOR_BOTH, TRAJ_STOP_MOTOR_OFF); + waitTrajComplete(); + traj_engaged = 0; + } break; default: @@ -1024,7 +1044,6 @@ void ProcessIO(void) { word1.byte.LB = ReceivedDataBuffer.DATA[3]; stop(ReceivedDataBuffer.DATA[1], word1.Val); - //traj_engaged = 0; break; case TRAJ_NEW_POSITION: @@ -1035,7 +1054,7 @@ void ProcessIO(void) { word3.byte.HB = ReceivedDataBuffer.DATA[6]; word3.byte.LB = ReceivedDataBuffer.DATA[7]; - resetInterrupt(ReceivedDataBuffer.DATA[1]); + resetAllInterrupt(ReceivedDataBuffer.DATA[1]); newPosition(ReceivedDataBuffer.DATA[1], (long) ((float) word1.Val * COEF_WHEEL), (long) ((float) word2.Val * COEF_WHEEL * CONST_VEL), @@ -1048,7 +1067,7 @@ void ProcessIO(void) { word2.byte.HB = ReceivedDataBuffer.DATA[4]; word2.byte.LB = ReceivedDataBuffer.DATA[5]; - resetInterrupt(ReceivedDataBuffer.DATA[1]); + resetAllInterrupt(ReceivedDataBuffer.DATA[1]); newVelocity(ReceivedDataBuffer.DATA[1], (long) ((float) word1.Val * COEF_WHEEL * CONST_VEL), (long) ((float) word2.Val * COEF_WHEEL * CONST_ACC), @@ -1059,7 +1078,7 @@ void ProcessIO(void) { word1.byte.HB = ReceivedDataBuffer.DATA[2]; word1.byte.LB = ReceivedDataBuffer.DATA[3]; - resetInterrupt(ReceivedDataBuffer.DATA[1]); + resetAllInterrupt(ReceivedDataBuffer.DATA[1]); changeVelocity(ReceivedDataBuffer.DATA[1], (long) ((float) word1.Val * COEF_WHEEL * CONST_VEL), ReceivedDataBuffer.DATA[4]); @@ -1284,10 +1303,6 @@ void USBCBSuspend(void) //cleared inside the usb_device.c file. Clearing USBActivityIF here will cause //things to not work as intended. - // Si on perd la communication avec la carte m, un probl est certainement arriv- // Pour rire les risques on arr les moteurs (en roue libre) - stop(MOTOR_BOTH, LM_LTRJ_MOTOR_OFF); - #if defined(__C30__) #if 0 U1EIR = 0xFFFF; diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof index 03d6dfa..df02379 100644 Binary files a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof and b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof differ diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex index f676229..6ff3456 100644 --- a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex +++ b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex @@ -1,1484 +1,1496 @@ :020000040000FA -:06000000E5EF30F01200F4 +:060000001FEF31F01200B9 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000E5EF30F01200EC -:0608080088EF10F0120061 -:06081800F0EF10F01200E9 -:06082A0004005D62000005 -:100830002601000021000000556200005F01000059 -:100840000800000047620000470100000E000000A1 -:0C085000446200006A0100000300000088 -:04085C0025EC0DF08A -:10086000FE0EDB5006E1F80E96163C0E9416959897 -:1008700008D0FE0EDB0405E1070E9612C30E94129B -:1008800095882AEF0DF0D9CFE6FFE1CFD9FFE652E8 -:10089000010EE66EE3DFE5528098FE0EDB5004E0C9 -:1008A000FE0EDB5002080FE1839C808A0000839ECD -:1008B0000000000000008450010BDF6E838E0000FA -:1008C0000000DF04F4E0FE0EDB0404E0FE0EDB506B -:1008D00002080FE1838C809A0000839E00000000D4 -:1008E00000008450010BDF6E838E00000000DF04E7 -:1008F000F4E0E552E552E7CFD9FF1200D9CFE6FF89 -:10090000E1CFD9FFE652FD0EDB50DF6EFE0EDBCFEE -:10091000E6FFB9DFE552E66AA1DFE552FE0EDB50E5 -:1009200003E1839C808A0CD0FE0EDB0403E1838C00 -:10093000809A06D0FE0EDB50020802E1839C809A6A -:10094000809800008096D9CFE9FFDACFEAFFEF5018 -:10095000010B02E0848001D08490D9CFE9FFDACF87 -:10096000EAFFEF50020B02E0848201D08492D9CFDB -:10097000E9FFDACFEAFFEF50040B02E0848401D0F4 -:100980008494D9CFE9FFDACFEAFFEF50080B02E0F9 -:10099000838801D08398D9CFE9FFDACFEAFFEF50FF -:1009A000100B02E0828201D08292D9CFE9FFDACF28 -:1009B000EAFFEF50200B02E0828E01D0829ED9CF59 -:1009C000E9FFDACFEAFFEF50400B02E0828001D06E -:1009D0008290D9CFE9FFDACFEAFFEF50800B02E037 -:1009E000828C01D0829C0000000080860000000004 -:1009F000E552E552E7CFD9FF1200D9CFE6FFE1CFAC -:100A0000D9FF020EE126FC0EDBCFDEFFDBCFDDFFE0 -:100A1000FE0EDBCFE6FF37DFE552E66A1FDFE55269 -:100A2000FE0EDB5003E1839C808A0CD0FE0EDB04BB -:100A300003E1838C809A06D0FE0EDB50020802E1AF -:100A4000839C809A808800008096D9CFE9FFDACF16 -:100A5000EAFFEE52EF50010B02E0848001D0849057 -:100A6000D9CFE9FFDACFEAFFEE52EF50020B02E0F6 -:100A7000848201D08492D9CFE9FFDACFEAFFEE5227 -:100A8000EF50040B02E0848401D08494D9CFE9FFB5 -:100A9000DACFEAFFEE52EF50080B02E0838801D074 -:100AA0008398D9CFE9FFDACFEAFFEE52EF50100B6F -:100AB00002E0828201D08292D9CFE9FFDACFEAFF49 -:100AC000EE52EF50200B02E0828E01D0829ED9CFF1 -:100AD000E9FFDACFEAFFEE52EF50400B02E08280EE -:100AE00001D08290D9CFE9FFDACFEAFFEE52EF5082 -:100AF000800B02E0828C01D0829C00000000808686 -:100B0000000000008096D9CFE9FFDACFEAFFEF506E -:100B1000010B02E0848001D08490D9CFE9FFDACFC5 -:100B2000EAFFEF50020B02E0848201D08492D9CF19 -:100B3000E9FFDACFEAFFEF50040B02E0848401D032 -:100B40008494D9CFE9FFDACFEAFFEF50080B02E037 -:100B5000838801D08398D9CFE9FFDACFEAFFEF503D -:100B6000100B02E0828201D08292D9CFE9FFDACF66 -:100B7000EAFFEF50200B02E0828E01D0829ED9CF97 -:100B8000E9FFDACFEAFFEF50400B02E0828001D0AC -:100B90008290D9CFE9FFDACFEAFFEF50800B02E075 -:100BA000828C01D0829C0000000080860000000042 -:100BB000020EE15C02E2E16AE552E16EE552E7CF46 -:100BC000D9FF1200D9CFE6FFE1CFD9FF020EE1260F -:100BD000FE0EDBCFE6FF57DEE552010EE66E3EDE8F -:100BE000E552FE0EDB5003E1839C808A05D0FE0EA9 -:100BF000DB0402E1838C809A80880000839E0000E1 -:100C0000000000008450010B066E8450020B01E0CE -:100C1000010EE824056E8450040B01E0010E040D62 -:100C2000F3CF04F08350100B01E0010E080DF3CF59 -:100C300003F08250020B01E0010E100DF3CF02F021 -:100C40008250800B01E0010E200DF3CF01F08250A5 -:100C5000010B400DF3CF00F08250400B01E0010E7C -:100C6000800DF35000100110021003100410051045 -:100C70000610E76E010EE7CFDBFF838E0000000059 -:100C8000839E0000000000008450010B066E84501B -:100C9000020B01E0010EE824056E8450040B01E014 -:100CA000010E040DF3CF04F08350100B01E0010E90 -:100CB000080DF3CF03F08250020B01E0010E100D7E -:100CC000F3CF02F08250800B01E0010E200DF3CF34 -:100CD00001F08250010B400DF3CF00F08250400B29 -:100CE00001E0010E800DF3500010011002100310FE -:100CF000041005100610DF6E838EDECF00F0DDCF0E -:100D000001F000C0F3FF01C0F4FF00D0020EE15C6F -:100D100002E2E16AE552E16EE552E7CFD9FF120047 -:100D2000D9CFE6FFE1CFD9FFE652DF6AFE0EDBCF77 -:100D3000E6FFA9DDE552010EE66E90DDE552FE0EFE -:100D4000DB5003E1839C808A05D0FE0EDB0402E1C8 -:100D5000838C809A80980000839E00000000000031 -:100D60008450010B066E8450020B01E0010EE82452 -:100D7000056E8450040B01E0010E040DF3CF04F066 -:100D80008350100B01E0010E080DF3CF03F08250E9 -:100D9000020B01E0010E100DF3CF02F08250800B28 -:100DA00001E0010E200DF3CF01F08250010B400D48 -:100DB000F3CF00F08250400B01E0010E800DF350A4 -:100DC0000010011002100310041005100610DF6E51 -:100DD000838EDF5000D0E552E552E7CFD9FF1200F5 -:100DE00025EC0DF0E652DF6A68EC0DF0DF6EFD0ECB -:100DF000DB50DF14DF6EDF5002E0010E01D0000E89 -:100E0000E5522AEF0DF025EC0DF01D0EAFEC0CF0C5 -:100E1000000E92EC0FF02AEF0DF025EC0DF068ECCF -:100E20000DF084080DE068EC0DF0C40809E0E66AF6 -:100E300080EC0FF011EC0EF0B8EC30F0E552EFD78B -:100E40001C0EAFEC0CF00A0E92EC0FF015EC0EF04D -:100E500068EC0DF0800804E068EC0DF0C008E7E1F4 -:100E600068EC0DF0C00802E115EC0EF01E0EAFECC0 -:100E70000CF00F0E92EC0FF047EC10F0FA0EDBCFF7 -:100E8000E6FFFB0E39EC0FF0F80EDBCFE6FFF90EB4 -:100E900039EC0FF0F60EDBCFE6FFF70E39EC0FF072 -:100EA000040EAFEC0CF02AEF0DF025EC0DF0080E5F -:100EB000E126010EF8EC0CF0010EE7CFDBFF020E8D -:100EC000BAEC0FF0DF6E030EF8EC0CF0030EE7CF78 -:100ED000DBFF040EF8EC0CF0020EE7CFDBFF050E93 -:100EE000F8EC0CF0050EE7CFDBFF060EF8EC0CF08B -:100EF000040EE7CFDBFF070EF8EC0CF0070EE7CF90 -:100F0000DBFF080EF8EC0CF04EEC0DF0E66A1AEC84 -:100F10000EF0090EF8EC0CF0010EE7CFDBFF0A0E25 -:100F2000BAEC0FF0DF6E0B0EF8EC0CF0030EE7CF0F -:100F3000DBFF0C0EF8EC0CF0020EE7CFDBFF0D0E22 -:100F4000F8EC0CF0050EE7CFDBFF0E0EF8EC0CF022 -:100F5000040EE7CFDBFF0F0EF8EC0CF0070EE7CF27 -:100F6000DBFF100EF8EC0CF04EEC0DF0010EE66E0F -:100F70001AEC0EF0020EE66EE66E11EC0EF0E66A6A -:100F8000DCEC0DF007E1020EE66E010EE66EDCEC25 -:100F90000DF002E0000E01D0010E006E080EE15CC3 -:100FA00002E2E16AE552E16E00502AEF0DF025EC15 -:100FB0000DF00C0EE1267EEC0DF0D950F20F96EC00 -:100FC0000FF0080EEECFDBFF090EEECFDBFF0A0EAF -:100FD000EECFDBFF0B0EEECFDBFF1F0EAFEC0CF006 -:100FE000080EDBCF00F0090EDBCF01F00A0EDBCFDD -:100FF00002F00B0EA0EC0FF00CE02B0E92EC0FF0B9 -:101000000A0EDBCFE6FF0B0E39EC0FF0A9EC0DF06A -:1010100003D00B0EE66EE66A82EC0CF011EC10F0D9 -:10102000D4EC0DF009E18EEC0CF082EC0CF078ECD5 -:101030000FF080EC0FF01CD0D4EC0DF003E0FE0EAE -:10104000DB0408E18EEC0CF0C8EC0DF078EC0FF04E -:10105000C8EC0DF0D4EC0DF003E0FE0EDB500AE11D -:101060008EEC0CF0E66A53EC0FF078EC0FF0E66AC9 -:1010700053EC0FF00C0EE15C02E2E16AE552E16E26 -:101080002AEF0DF025EC0DF00A0EE126D9CFE9FF8D -:10109000DACFEAFFFA0EDBCFEEFFFB0EDBCFEEFF7F -:1010A000FC0EDBCFEEFFFD0EDBCFEEFF7EEC0DF096 -:1010B000080EF36EDB6E090EF3CFDBFF1F0EAFECF5 -:1010C0000CF094EC0DF007E0D950080FE96EDACF80 -:1010D000EAFFEE8AED52D4EC0DF00BE1F50EDB5099 -:1010E000FF0802E1CCEC0DF0A9EC0DF080EC0FF064 -:1010F0001FD0D4EC0DF003E0FE0EDB040AE1F50E88 -:10110000DB50FF0802E1CCEC0DF0A9EC0DF0C8ECCF -:101110000DF0D4EC0DF003E0FE0EDB500BE1F50E0C -:10112000DB50FF0802E1CCEC0DF0A9EC0DF0E66A13 -:1011300053EC0FF094EC0DF002E011EC10F0020E05 -:10114000DBCFE6FF030E39EC0FF078EC0FF0DADBC3 -:101150000A0EE15C02E2E16AE552E16E2AEF0DF06F -:1011600025EC0DF0F90EDBCFE6FFE66AE66AE66AEB -:10117000E66AD950FA0F96EC0FF084EC0FF080EC91 -:101180000FF080DF006E0A0EE15E00502AEF0DF0D6 -:1011900025EC0DF0FE0EDB5003E0D4EC0DF013E176 -:1011A0000A0EE66EE66A9BEC0FF0E66AC4EC0FF0FE -:1011B000F3CF61F1F4CF62F1E66AC4EC0FF0F3CF44 -:1011C0005FF1F4CF60F1FE0EDB0403E0D4EC0DF030 -:1011D00016E10A0EE66E010EE66E9BEC0FF0010EB4 -:1011E000E66EC4EC0FF0F3CF65F1F4CF66F1010EBB -:1011F000E66EC4EC0FF0F3CF63F1F4CF64F1010EAF -:10120000AEDB2AEF0DF025EC0DF01F0EA8DB47EC4E -:1012100010F0010EA4DB2AEF0DF0A7EC0FF005E1B2 -:101220003D6A3E6A3F6A406A0BD00A0EACEC0FF092 -:10123000B0EC0DF0F3CFDEFFF4CFDDFFE2EC0DF00C -:10124000040EE15C02E2E16AE552E16E2AEF0DF084 -:10125000A7EC0FF005E13D6A3E6A3F6A406A07D09D -:101260000B0EACEC0FF0DE6ADD6AE2EC0DF0040E62 -:10127000E15C02E2E16AE552E16EECD3E6DBD4EC3C -:101280000DF003E1F36AF46A04D00D0E68DBB0ECF4 -:101290000DF0E0D34DEC10F0EDEC0DF05FEC0DF047 -:1012A000D9D34DEC10F083DB020E5FEC0DF0D2D3FE -:1012B0007DEC0FF0A6EC0EF07ADBE66A78DE0CEC43 -:1012C0000EF0A6EC0EF0C8EC0FF059EF0FF07DEC2D -:1012D0000FF0A6EC0EF06DEC0DF00CEC0EF0A6ECA1 -:1012E0000EF065DB59EF0FF07DEC0FF0F60EDB50E2 -:1012F00020E0006A800E016E010E026E430E036E46 -:1013000064EC10F07FEC10F0436A446AC80E456E3E -:10131000420E466EB8EC22F0D9EC0FF0EADA38EC67 -:1013200010F078EC23F0F70E3FC0DBFFF80E40C062 -:10133000DBFFC9EC0EF021EC22F020EC0FF0CDDB4E -:10134000386E0D0EE15E3850C9EC0EF022EC22F042 -:1013500020EC0FF02CDB010EE66E29DE386E0D0E50 -:10136000E15E385032EC10F075D36FDB3C0EE126B5 -:101370001AEC0FF0CCEC0FF01AEC0FF01CEC10F0A4 -:1013800008C03EF009C03FF00AC040F00BC041F079 -:101390000BEC23F0D9EC0FF082EC10F002EC10F023 -:1013A00082EC10F0FDEC0DF0A4DA14C03EF015C094 -:1013B0003FF016C040F017C041F00BEC23F085EC75 -:1013C00010F03ADB22EC22F0CEDA436A446A800E57 -:1013D000456ED0DB380E3EC0DBFF390E3FC0DBFF71 -:1013E0003A0E40C0DBFF3B0E41C0DBFF1AEC0FF0B2 -:1013F000BADA77DB6DEC0FF0F8DA73DB6AEC2BF01E -:10140000086E080EE15E0850080E3DC0DBFF090EB5 -:101410003EC0DBFF0A0E3FC0DBFF0B0E40C0DBFF10 -:101420007DDBF60EDB5007E0D950F40F96EC0FF0A1 -:10143000EE50ED1039E112DB080EDBCF0EF0090E95 -:10144000DBCF0FF00A0EDBCF10F00B0E83EC0EF0AB -:1014500030DA60EC0FF03E6A3F6A800E406E400E5C -:10146000416E380EDBCF43F0390EDBCF44F03A0E3D -:10147000DBCF45F03B0E3BEC10F037DB32DB73DBB0 -:101480003DC002F03EC003F03FC004F040C005F094 -:101490003DC03EF0B0EC0FF072EC0FF0FBDE0A6ED8 -:1014A000060EE15E0A50D2D1380EDBCF04F0390EC1 -:1014B000DBCF05F03A0EDBCF06F03B0EDBCF07F0BB -:1014C000A5DBE6DA85EC10F072EC10F0E1DA95DBE2 -:1014D0008DEC0FF035EC0FF022EC22F0140E3EC034 -:1014E000DBFF150E3FC0DBFF160E40C0DBFF170E03 -:1014F000CEDB1AEC0FF035EC0FF00BEC23F0180EEE -:101500003EC0DBFF190E3FC0DBFF1A0E40C0DBFF01 -:101510001B0EBDDB82EC10F035EC0FF00BEC23F072 -:101520001C0E3EC0DBFF1D0E3FC0DBFF1E0E40C089 -:10153000DBFF1F0E41C0DBFF1C0EDBCF00F01D0EDA -:10154000DBCF01F01E0EDBCF02F01F0EDBCF03F06E -:101550007FDB38EC10F0200E3EC0DBFF210E3FC0D9 -:10156000DBFF220E40C0DBFF230E41C0DBFFD95062 -:10157000180FE96EDACFEAFF240EEECFDBFF250E5F -:10158000EECFDBFF260EEECFDBFF270EEECFDBFF2D -:10159000FD0EDBCF3FF0FE0E26EC10F0200EDBCF71 -:1015A00043F0210EDBCF44F0220EDBCF45F0230EBB -:1015B0003DEC0FF0280E3EC0DBFF290E3FC0DBFFE5 -:1015C0002A0E40C0DBFF2B0E41C0DBFF6DEC0FF09D -:1015D00026EC10F0240EDBCF43F0250EDBCF44F0D9 -:1015E000260EDBCF45F0270E3DEC0FF02C0E3EC053 -:1015F000DBFF2D0E3FC0DBFF2E0E40C0DBFF2F0EAA -:1016000041C0DBFF2C0EDBCF04F02D0EDBCF05F04D -:101610002E0EDBCF06F02F0EDBCF07F019DB0CDA36 -:101620000BEC23F043EC0FF0300E3EC0DBFF310E2D -:101630003FC0DBFF320E40C0DBFF330E41C0DBFF9B -:10164000280EDBCF3EF0290EDBCF3FF02A0EDBCF9A -:1016500040F02B0EDBCF41F043EC0FF0340E3EC0D8 -:10166000DBFF350E3FC0DBFF360E40C0DBFF370E21 -:1016700041C0DBFFD950300FDAD9D950340FD7D958 -:101680006AEC2BF0006E080EE15E00500C0E3DC0BF -:10169000DBFF0D0E3EC0DBFF0E0E3FC0DBFF0F0E6B -:1016A00040C0DBFF006A016A026A400E036E00C0A0 -:1016B000E6FF01C0E6FF02C0E6FFE66E91DBCCEC80 -:1016C0000FF00FDA51EC10F03DC014F03EC015F0F1 -:1016D0003FC016F040C017F0C8EC0FF06AEC2BF0DA -:1016E000186E080EE15E1850E552E7CF03F0E552A0 -:1016F000E7CF02F0E552E7CF01F0E552E7CF00F087 -:101700003DC004F03EC005F03FC006F040C007F009 -:1017100017DA38EC10F0100E3EC0DBFF110E3FC0A0 -:10172000DBFF120E40C0DBFF130E41C0DBFFF60EE5 -:10173000DB5002081DE1F4EC0FF021EC22F02BEC61 -:1017400010F022EC22F044D919DA060E3FC0DBFF7C -:10175000070E40C0DBFFBFEC0FF047D9020EDBCF16 -:101760003FF0030E5FDB040E3FC0DBFF050E4FD0E2 -:101770003E6A3F6A406A400E416E080EDBCF43F07E -:10178000090EDBCF44F00A0EDBCF45F00B0E3BEC2D -:1017900010F0E9D80C0EDBCF04F00D0EDBCF05F016 -:1017A0000E0EDBCF06F00F0EDBCF07F004C043F0C8 -:1017B00005C044F006C045F007C046F021EC22F019 -:1017C0000C0E3EC0DBFF0D0E3FC0DBFF0E0E40C017 -:1017D000DBFF0F0E41C0DBFFF4EC0FF022EC22F038 -:1017E0002BEC10F021EC22F0F3D8C8D9040E3FC046 -:1017F000DBFF050E40C0DBFF020EDBCF3FF0030E28 -:10180000F4D8BDDB0FDB060E3FC0DBFF070E40C088 -:10181000DBFF4FD8B1D8040EDBCF3FF0050E1FDA47 -:10182000B7DBADDBA4DB59D9206E0D0EE15E205095 -:10183000A3D8060EDBCF3FF0070E11DACED9DBCFEF -:101840003FF0030E94DBA4DB010E39D93C0EE15CC2 -:1018500002E2E16AE552E16EFDD0E66ADEDCE552C5 -:1018600001015F513D5C066E60513E58076E61514B -:101870003F58086E6251BFD0010EE66ECEDCE552D5 -:10188000010163513D5C066E64513E58076E65511F -:101890003F58086E6651AFD0040EE66EE66A8CD9EA -:1018A00006E0040EE66E010EE66E86D901E1000C3C -:1018B000010CF2DF0009FDE0120069EC10F051DAD2 -:1018C0000CDBCDD965DB1AEF0FF03EC01CF03FC03A -:1018D0001DF040C01EF041C01FF07DDB6EEC10F02B -:1018E0003DC018F03EC019F03FC01AF040C01BF0D8 -:1018F00012003EC043F03FC044F040C045F041C03C -:1019000046F01200FDDA53EF0FF000C03EF001C0C8 -:101910003FF002C040F003C041F01200FA0EDBCFEE -:1019200000F0FB0EDBCF01F0FC0EDBCF02F0FD0E72 -:10193000DBCF03F0000E006C011E0122021E02220A -:10194000031E032200C0DFFF010E01C0DBFF020EF9 -:1019500002C0DBFF030E03C0DBFF56EF10F0E66EA4 -:10196000CFDA9BEF0FF03EC000F03FC001F040C067 -:1019700002F041C003F01200A7DBB1EF0EF002C08D -:101980003EF0EEDA21EC22F0ADDA92DC126E060EB9 -:10199000E15E12501200466E0BEC23F03EC020F0C8 -:1019A0003FC021F040C022F041C023F01200000EE1 -:1019B000186C191E19221A1E1A221B1E1B2218C06F -:1019C000E6FF19C0E6FF1AC0E6FF1BC0E6FF1200E3 -:1019D000100EDBCF43F0110EDBCF44F0120EDBCF45 -:1019E00045F0130E48DB78EF23F0DFDAD9EF0FF084 -:1019F000C1DAE76E12004058096E06C03DF007C01C -:101A00003EF008C03FF0406E08EC22F03EC002F00D -:101A10003FC003F040C004F041C005F0DCDAB8EC90 -:101A200022F04BDB3FC0F3FF40C0F4FF1200E96E31 -:101A3000DACFEAFF84EF0FF004C03EF005C03FF0BC -:101A400006C040F007C041F01200D9CFE6FFE1CF59 -:101A5000D9FF1200E552E7CFD9FF120031DA026A4E -:101A6000036AB40E046E420E056E12003EC024F0EE -:101A70003FC025F040C026F041C027F012000CC046 -:101A80003EF00DC03FF00EC040F00FC041F012001C -:101A9000F40EDBCF3FF0F50ED5EF0FF0060EE7CFDB -:101AA000DBFFDBCFE6FF070EDBCFE6FF040EDBCF6D -:101AB000E6FF050EDBCFE6FFF9DA78EF0FF0E66E12 -:101AC000D7EC07F0206E0D0EE15E205032EF10F0E3 -:101AD00017DA90EC06F0E55212005ADAE66AD7EF10 -:101AE00007F006DB41C0E6FF12003EC006F03FC033 -:101AF00007F040C008F041C009F01200D950F60FBD -:101B000015DA040EEECFDBFF050EEECFDBFF060E7F -:101B1000EECFDBFF070EEECFDBFF1200020EE66E0C -:101B200003EC07F0E5521200040EDBCF00F0050EC7 -:101B3000DBCF01F0060EDBCF02F0070EA0EF0FF0B7 -:101B40003DC043F03EC044F03FC045F040C046F0C9 -:101B50001200080EDBCFE6FF090EDBCFE6FF120016 -:101B6000CFD9C4EF0FF07DEC27F0E552E552E552F6 -:101B7000E5521200400E466EB8EF22F0020E3FC052 -:101B8000DBFF030E40C0DBFFA4DADBCF40F0120026 -:101B9000010EE66E53EF0FF0D950080FE96EDACF61 -:101BA000EAFFEE52ED881200FE0EDB500208120032 -:101BB000456E430E466E1200F0EC06F0E552E5521B -:101BC00000091200DECF3DF0DECF3EF0DECF3FF069 -:101BD000DDCF40F0DD52DD521200DAD9020E1200E4 -:101BE000436A800E446E120030C03EF031C03FF0B8 -:101BF00032C040F033C041F012003EC018F03FC088 -:101C000019F040C01AF041C01BF012000C6A0D6AB6 -:101C10000E6A400E0F6E1200286E0D0EE15E285007 -:101C2000120089D9020EE66E12006AD903EC07F0A1 -:101C3000E55212000DEC07F0006E090EE15E005057 -:101C40001200020EF3CFDBFF030EF4CFDBFF120016 -:101C5000436A446A800E456EBF0E466E1200A5D9D7 -:101C6000D1D9B9D90BEC23F0ADD9BD0E436E370EE7 -:101C7000446E860E456E410E466E30DA3DC00CF065 -:101C80003EC00DF03FC00EF040C00FF0120041C04A -:101C9000DBFF046A056A800E066E3F0E076EB6DF34 -:101CA00004C0E6FF05C0E6FF06C0E6FF07C0E6FF8A -:101CB0000CC0E6FF0DC0E6FF0EC0E6FFE66EF1D9F0 -:101CC000E552E7CF0FF0E552E7CF0EF0E552E7CF50 -:101CD0000DF0E552E7CF0CF0E552E7CF07F0E55203 -:101CE000E7CF06F0E552E7CF05F0E552E7CF04F085 -:101CF0003DC010F03EC011F03FC012F040C013F0E4 -:101D00001FDF72EF10F0DBCF11F0436A446A340E2C -:101D10004FDF0EC03EF00FC03FF010C040F011C0CA -:101D200041F00BEC23F03EC00AF03FC00BF040C086 -:101D30000CF041C00DF0DB0E436E0F0E446E490EE9 -:101D4000456E18DFD2DED5DDBFEF0CF0B6DD8EDEDE -:101D500096D921DE45DF810E2BDF0BEC23F065EFFA -:101D60000CF0CDD938D90BEC23F023D9CC0E436E2F -:101D7000BC0E446E8C0E456E3B0E466EAFD93DC018 -:101D800000F03EC001F03FC002F040C003F0C8EFD9 -:101D90000FF093DD3EC028F03FC029F040C02AF08C -:101DA00041C02BF06CD9466E0BEC23F05FDE436A2A -:101DB000446A456A400EEFDD306A800E316E010ED6 -:101DC000326E430E336E80D9F0D83EC034F03FC03F -:101DD00035F040C036F041C037F08BDDF4EF0DF048 -:101DE000140EDBCF0CF0150EDBCF0DF0160EDBCF93 -:101DF0000EF0170EDBCF0FF04BDE87D940DE21EF60 -:101E000022F0140EDBCF00F0150EDBCF01F0160E22 -:101E1000DBCF02F0170EDBCF03F0E2DE010EC8DEEF -:101E200085EF0CF06CD9F7D854D9BFD805D920D993 -:101E300078EF23F0FD0EDBCF3FF0FE0ED5EF0FF075 -:101E40003EC02CF03FC02DF040C02EF041C02FF01E -:101E500050DD20C03EF021C03FF022C040F023C042 -:101E600041F00BEC23F065EF0CF0CCD842DD85EFB0 -:101E70000CF0DBCFE6FF82EF0CF0FDD88DD839DD1A -:101E800044DD21EF22F0140EDBCF43F0150EDBCF43 -:101E900044F0160EDBCF45F0170EDBCF46F0B8EC62 -:101EA00022F0B3EF0CF0FDEC04F0E552E552E55200 -:101EB0001200010EE66ED7EC07F0AEDED3D8CAD51D -:101EC000F70EDBCFE6FFF80EDBCFE6FFF90EDBCF38 -:101ED000E6FFFA0EDBCFE6FF1200FB0EDBCF3FF092 -:101EE000FC0E1200EAD83FC0E6FF40C0E6FF120039 -:101EF000DECFE6FFDDCFE6FF1200A7DD8EEF0DF0AF -:101F0000FE0EDBCFE6FF1200EECFE6FFEECFE6FFE0 -:101F1000EECFE6FFEFCFE6FF1200436A446A456A60 -:101F2000BAEF0DF0E66EE66A82EF0CF0E96EFF0E96 -:101F3000DA20EA6E12007EEC04F0E552E55212005F -:101F4000DBCF03F0005001100210031012007DDD02 -:101F5000040EE126D4EF0DF002DD02DE21EF0EF0DB -:101F600003C03FF004C040F005C041F012001DD88E -:101F700065EF0CF0E66ED7EC2FF0E5521200000E84 -:101F8000DFCF3FF0010E1200E2EC05F0E552120047 -:101F90003DC0E6FF78EF10F03EC008F03FC009F00A -:101FA00040C00AF041C00BF01200DBCF40F0F3EF6D -:101FB00021F03EC004F03FC005F040C006F041C033 -:101FC00007F012003EC010F03FC011F040C012F008 -:101FD00041C013F01200330E436EE20E446EC20E87 -:101FE000456E420E466E120039DD0C0EDBCF0EF050 -:101FF0000D0EDBCF0FF00E0EDBCF10F00F0E83DED9 -:1020000001EF0FF03EC014F03FC015F040C016F0D5 -:1020100041C017F012006DDC0FDDB8EC22F0B3EF19 -:102020000CF0060EDBCFE6FF070E23DF040EDBCF3E -:10203000E6FF050E39EF0FF03EC00CF03FC00DF08B -:1020400040C00EF041C00FF079EF0CF0CEDC65DF40 -:102050008ADCF0EF0EF0BCDC3FC0DEFF40C0DDFFED -:1020600001EF0FF0020EE66EC8EC08F0E552120028 -:102070004CDC0BEF23F0DBCF46F00BEF23F0350EFB -:10208000436EFA0E446E0E0E456E3C0E1200FC0EB0 -:10209000DBCFE6FFFD0E39EF0FF02FDF0EDC65EF33 -:1020A0000CF0D950380FC3DCB3EF0DF0020EDBCFCC -:1020B000E6FF030EDBCFE6FF120078EC23F03FC013 -:1020C00000F040C001F01200F70EDBCF3FF0F80E39 -:1020D0001200F90EDBCF3FF0FA0E12000BEC23F0EA -:1020E000A7EF23F0CCDC0BEC23F056DF0BEF10F066 -:1020F0003EC0E6FF3FC0E6FF40C0E6FF120055DFEE -:10210000CCEF0FF0EADED5EF0FF05CDF79EF0CF0EB -:10211000DACFE4FFE2CFDAFFE9CFE4FFEACFE4FF72 -:10212000F6CFE4FFF7CFE4FFF5CFE4FFF3CFE4FF12 -:10213000F4CFE4FFFACFE4FF00EE39F0140EE80428 -:1021400003E3EECFE4FFFBD700EE00F0390EE80426 -:1021500003E3EECFE4FFFBD723EC1CF09EA013D0EB -:102160002DEC1CF001014D2B000E4E23E80E4D5DB1 -:10217000030E4E5905E34D6B4E6B4F2B000E502353 -:102180009EEC29F09E9036EC1CF002E2E16AE552EA -:10219000E16EE552E7CFD9FFE55200EE38F0390E97 -:1021A000E80403E3E5CFEDFFFBD700EE4CF0140E9F -:1021B000E80403E3E5CFEDFFFBD7E5CFFAFFE5CF7A -:1021C000F4FFE5CFF3FFE5CFF5FFE5CFF7FFE5CF70 -:1021D000F6FFE5CFEAFFE5CFE9FFE5CFDAFF110033 -:1021E000D8CFE4FFE0CFE4FFE46EDACFE4FFE2CF44 -:1021F000DAFFF3CFE4FFF4CFE4FF23EC1CF036EC7E -:102200001CF002E2E16AE552E16EE552E7CFD9FF48 -:10221000E552E5CFF4FFE5CFF3FFE5CFDAFFE55078 -:10222000E5CFE0FFE5CFD8FF100004D881EC1CF02B -:1022300060D8FCD70F0EC11202D84BEF1CF046EC51 -:102240001CF0E652FAEC1BF00101676F070E675DA8 -:1022500010E1E66AD7EC2FF0E552DF6E000EDF806A -:102260003EEC1CF0E66AB8EC30F0E552DF703EEC74 -:102270001CF0D08EF28EF28CF30E8C1695160101A6 -:10228000476B486B496B4A6B010E4B6F929480947D -:10229000939881980D0EE66E7C0EE66EE10EE66E6A -:1022A0004AEC2FF0E552E552E552C70E921694948F -:1022B0003F0E9516010EE66E2EEC04F0E552838C6F -:1022C000808A82848088838E80868294010EE66E66 -:1022D000F3EC30F0E55282849D80C50EE66E48EC4A -:1022E00030F0E5522DEC1CF0E552E552E7CFD9FF76 -:1022F0001200D9CFE6FFE1CFD9FF0F0EE126010191 -:102300004B5102E035EC1BF0200E0101005D03E3B0 -:102310006D50020B02E02BEF1BF0010149514A11F5 -:1023200002E1000E08D049C1E9FF4AC1EAFFEF50BF -:10233000800B01E0010E000947E101014651EA6A04 -:10234000260FE96E010EEA22EF5000083DE205017A -:10235000406B01014C514C2B0501416F0501040EEE -:10236000426F01014651EA6A260FE96E010EEA2228 -:10237000EFCF43F5400EE66E400EE66E050EE66EBC -:10238000010EE66E010EE66E9CEC20F0006E050E6E -:10239000E15E0050F3CF49F1F4CF4AF1010146511B -:1023A000EA6A260FE96E010EEA22EF6A0101465140 -:1023B000000803E20101460707D00101455100086A -:1023C00003E201011F0E466F010149514A1102E16A -:1023D000000E08D049C1E9FF4AC1EAFFEF50800B67 -:1023E00001E0010E00092CE10101520529E14CEC4C -:1023F0000CF0000925E00501406B01014C514C2B0C -:102400000501416F05010A0E426F0501436B05018D -:10241000010E486F400EE66E400EE66E050EE66E4B -:10242000010EE66E010EE66E9CEC20F0006E050ECD -:10243000E15E0050F3CF49F1F4CF4AF10101526B54 -:10244000020EE66EE66AF0EC06F0E552E55200098F -:102450000AE1020EE66E010EE66EF0EC06F0E552C1 -:10246000E55200090AE00A0EE66E85EC30F0E5520E -:10247000020EE66E03EC07F0E55201015151020A2B -:1024800010E0030A01E021D0020EE66EEAEC2AF029 -:10249000E55255EC07F0000903E00101020E516F0F -:1024A00016D0200EE66E030EE66EC80EE66EE66AE5 -:1024B000E80EE66E030EE66E4AEC09F0006E060EBC -:1024C000E15E00500101516B02D00101516B01012D -:1024D0004751481102E1000E08D047C1E9FF48C149 -:1024E000EAFFEF50800B01E0010E000902E02BEF44 -:1024F0001BF005010251070A02E18CEF1AF00D0AE8 -:1025000001E156D2010A01E126D20D0A01E1BED154 -:10251000040A1AE0030A07E0010A02E0EAEF1AF0EF -:10252000FF002BEF1BF0E66AD7EC2FF0E552DF6ED1 -:10253000000EDB80DFCFE6FFE66AB7EC2FF0E55256 -:10254000E552FF002BEF1BF0010149514A1102E156 -:10255000000E08D049C1E9FF4AC1EAFFEF50800BE5 -:1025600001E0010E000901E08FD100C540F5050131 -:10257000416B0501030E426F0501436B05010851D4 -:10258000100A01E135D11F0A01E1F8D0080A01E182 -:10259000BBD0010A01E17ED0020A71E0070A64E0C3 -:1025A000010A20E0030A06E0010A01E043D167C105 -:1025B00048F543D10501486B6B0E006E600E016E4D -:1025C000026A00C0E6FF01C0E6FF02C0E6FF480E57 -:1025D000E66E050EE66E9BEC2FF0036E050EE15ED7 -:1025E00003502BD10501486B5F0E006E600E016E2B -:1025F000026A00C0E6FF01C0E6FF02C0E6FF480E27 -:10260000E66E050EE66E9BEC2FF0036E050EE15EA6 -:1026100003505D0E006E600E016E026A00C0E6FFA0 -:1026200001C0E6FF02C0E6FF480EE66E050EE66E4C -:102630009BEC2FF0036E050EE15E0350540E006E0E -:10264000600E016E026A00C0E6FF01C0E6FF02C034 -:10265000E6FF480EE66E050EE66E9BEC2FF0036E6D -:10266000050EE15E0350E9D092CF48F593CF49F5CE -:1026700094CF4AF595CF4BF596CF4CF5DED080CF71 -:1026800048F581CF49F582CF4AF583CF4BF584CF0A -:102690004CF5D3D0E66A44EC2AF0E552010E3DC079 -:1026A000DBFF020E3EC0DBFF030E3FC0DBFF040E6C -:1026B00040C0DBFF040EDBCF48F5030EDBCF49F54E -:1026C000020EDBCF4AF5010EDBCF4BF5010EE66EB5 -:1026D00044EC2AF0E552010E3DC0DBFF020E3EC085 -:1026E000DBFF030E3FC0DBFF040E40C0DBFF040E28 -:1026F000DBCF4CF5030EDBCF4DF5020EDBCF4EF5F5 -:10270000010EDBCF4FF599D0E66A0DEC09F0E552EA -:10271000010E3DC0DBFF020E3EC0DBFF030E3FC0DB -:10272000DBFF040E40C0DBFF040EDBCF48F5030ED9 -:10273000DBCF49F5020EDBCF4AF5010EDBCF4BF5BF -:10274000010EE66E0DEC09F0E552010E3DC0DBFF17 -:10275000020E3EC0DBFF030E3FC0DBFF040E40C095 -:10276000DBFF040EDBCF4CF5030EDBCF4DF5020E85 -:10277000DBCF4EF5010EDBCF4FF55FD0E66A28ECDC -:1027800009F0E552010E3DC0DBFF020E3EC0DBFF4B -:10279000030E3FC0DBFF040E40C0DBFF040EDBCFA7 -:1027A00048F5030EDBCF49F5020EDBCF4AF5010EEB -:1027B000DBCF4BF5010EE66E28EC09F0E552010E79 -:1027C0003DC0DBFF020E3EC0DBFF030E3FC0DBFF60 -:1027D000040E40C0DBFF040EDBCF4CF5030EDBCF55 -:1027E0004DF5020EDBCF4EF5010EDBCF4FF525D0B8 -:1027F000E66A3EEC09F0E552050EF3CFDBFF060E6C -:10280000F4CFDBFF060EDBCF48F5050EDBCF49F535 -:10281000010EE66E3EEC09F0E552050EF3CFDBFF4C -:10282000060EF4CFDBFF060EDBCF4AF5050EDBCF3D -:102830004BF503D00501020E436F400EE66E400ECD -:10284000E66E050EE66E010EE66E010EE66E9CEC7F -:1028500020F0006E050EE15E0050F3CF49F1F4CF99 -:102860004AF1400EE66E000EE66E050EE66EE66A72 -:10287000010EE66E9CEC20F0006E050EE15E00504D -:10288000F3CF47F1F4CF48F12BEF1BF005010851CE -:10289000030A37E0010A25E0030A13E0010A01E018 -:1028A00040D005010951921205010A519312050108 -:1028B0000B51941205010C51951205010D51961200 -:1028C00035D00501091D921605010A1D9316050153 -:1028D0000B1D941605010C1D951605010D1D961670 -:1028E00025D00501091D891605010A1D8A16050155 -:1028F0000B1D8B1605010C1D8C1605010D1D8D166B -:1029000015D005010951891205010A518A120501E4 -:102910000B518B1205010C518C1205010D518D12BA -:1029200005D0030EE66E85EC30F0E552400EE66E03 -:10293000000EE66E050EE66EE66A010EE66E9CEC93 -:1029400020F0006E050EE15E0050F3CF47F1F4CFAA -:1029500048F12BEF1BF005010851020A09E0030AB8 -:1029600001E00CD009C5E6FFEAEC2AF0E5520BD0F5 -:1029700009C5E6FFFAEC2AF0E55205D0010EE66E35 -:1029800085EC30F0E552400EE66E000EE66E050E68 -:10299000E66EE66A010EE66E9CEC20F0006E050E17 -:1029A000E15E0050F3CF47F1F4CF48F12BEF1BF07D -:1029B00005010851060A02E14BEF1AF0080A02E18C -:1029C00011EF1AF0030A02E108EF1AF0070A02E118 -:1029D000A4EF19F0030A02E1ECEF18F0010A01E19B -:1029E0000BD30F0A01E1F4D2020A01E1A9D2150AC0 -:1029F00001E16AD2140A01E139D2070A01E108D2E1 -:102A0000010A01E1D7D1030A01E1A6D1010A01E1DE -:102A1000A0D10C0A01E126D1030A01E194D0040AF5 -:102A200002E073EF1AF00501095104E0020E0501FE -:102A3000095D40E10AC5E6FF010EE66EB7EC2FF036 -:102A4000E552E5520BC5E6FF020EE66EB7EC2FF03D -:102A5000E552E5520CC5E6FF030EE66EB7EC2FF02B -:102A6000E552E5520DC5E6FF040EE66EB7EC2FF019 -:102A7000E552E5520EC5E6FF050EE66EB7EC2FF007 -:102A8000E552E5520FC5E6FF060EE66EB7EC2FF0F5 -:102A9000E552E55210C5E6FF070EE66EB7EC2FF0E3 -:102AA000E552E55211C5E6FF080EE66EB7EC2FF0D1 -:102AB000E552E5520501090504E0020E0501095D34 -:102AC00040E10AC5E6FF090EE66EB7EC2FF0E552CD -:102AD000E5520BC5E6FF0A0EE66EB7EC2FF0E552A5 -:102AE000E5520CC5E6FF0B0EE66EB7EC2FF0E55293 -:102AF000E5520DC5E6FF0C0EE66EB7EC2FF0E55281 -:102B0000E5520EC5E6FF0D0EE66EB7EC2FF0E5526E -:102B1000E5520FC5E6FF0E0EE66EB7EC2FF0E5525C -:102B2000E55210C5E6FF0F0EE66EB7EC2FF0E5524A -:102B3000E55211C5E6FF100EE66EB7EC2FF0E55238 -:102B4000E55278EF1AF000C540F50501416B05012B -:102B5000030E426F0501436B010EE66ED7EC2FF0BA -:102B6000E5520501486F020EE66ED7EC2FF0E552F4 -:102B70000501496F030EE66ED7EC2FF0E552050113 -:102B80004A6F040EE66ED7EC2FF0E55205014B6F4D -:102B9000050EE66ED7EC2FF0E55205014C6F060EE0 -:102BA000E66ED7EC2FF0E55205014D6F070EE66E8D -:102BB000D7EC2FF0E55205014E6F080EE66ED7EC0C -:102BC0002FF0E55205014F6F090EE66ED7EC2FF09E -:102BD000E5520501506F0A0EE66ED7EC2FF0E55274 -:102BE0000501516F0B0EE66ED7EC2FF0E552050193 -:102BF000526F0C0EE66ED7EC2FF0E5520501536FC5 -:102C00000D0EE66ED7EC2FF0E5520501546F0E0E57 -:102C1000E66ED7EC2FF0E5520501556F0F0EE66E0C -:102C2000D7EC2FF0E5520501566F100EE66ED7EC8B -:102C30002FF0E5520501576F400EE66E400EE66E2E -:102C4000050EE66E010EE66E010EE66E9CEC20F0BF -:102C5000006E050EE15E0050F3CF49F1F4CF4AF16A -:102C600078EF1AF0E66A010EE66EB7EC2FF0E55247 -:102C7000E552010EE66E020EE66EB7EC2FF0E5525D -:102C8000E552E66A030EE66EB7EC2FF0E552E55228 -:102C9000E66A040EE66EB7EC2FF0E552E552E66AFE -:102CA000050EE66EB7EC2FF0E552E552E66A060E29 -:102CB000E66EB7EC2FF0E552E552270EE66E070EF2 -:102CC000E66EB7EC2FF0E552E552100EE66E080EF8 -:102CD000E66EB7EC2FF0E552E552E66A090EE66EB5 -:102CE000B7EC2FF0E552E552010EE66E0A0EE66EE5 -:102CF000B7EC2FF0E552E552E66A0B0EE66EB7EC44 -:102D00002FF0E552E552E66A0C0EE66EB7EC2FF0B6 -:102D1000E552E552E66A0D0EE66EB7EC2FF0E5528D -:102D2000E552E66A0E0EE66EB7EC2FF0E552E5527C -:102D3000270EE66E0F0EE66EB7EC2FF0E552E55269 -:102D4000100EE66E100EE66EB7EC2FF0E552E5526F -:102D5000CFD355EC07F0CCD3060E09C5DBFF050E2B -:102D60000AC5DBFF080E0BC5DBFF070E0CC5DBFF3A -:102D70000A0E0DC5DBFF090E0EC5DBFF090EDBCF0A -:102D8000E6FF0A0EDBCFE6FF070EDBCFE6FF080EFD -:102D9000DBCFE6FF050EDBCFE6FF060EDBCFE6FF5F -:102DA0004AEC09F0006E060EE15E00500101010ED2 -:102DB000526F9ED3060E09C5DBFF050E0AC5DBFF69 -:102DC000080E0BC5DBFF070E0CC5DBFF0A0E0DC599 -:102DD000DBFF090E0EC5DBFF090EDBCFE6FF0A0E97 -:102DE000DBCFE6FF070EDBCFE6FF080EDBCFE6FF0B -:102DF000050EDBCFE6FF060EDBCFE6FF51EC09F058 -:102E0000006E060EE15E00500101010E526F70D39C -:102E1000060E09C5DBFF050E0AC5DBFF080E0BC554 -:102E2000DBFF070E0CC5DBFF0A0E0DC5DBFF090E2D -:102E30000EC5DBFF090EDBCFE6FF0A0EDBCFE6FF98 -:102E4000070EDBCFE6FF080EDBCFE6FF050EDBCF7C -:102E5000E6FF060EDBCFE6FF58EC09F0006E060E2B -:102E6000E15E00500101010E526F42D3060E09C50A -:102E7000DBFF050E0AC5DBFF080E0BC5DBFF070EE7 -:102E80000CC5DBFF0A0E0DC5DBFF090E0EC5DBFF0F -:102E9000090EDBCFE6FF0A0EDBCFE6FF070EDBCF26 -:102EA000E6FF080EDBCFE6FF050EDBCFE6FF060EE2 -:102EB000DBCFE6FF67EC09F0006E060EE15E005026 -:102EC0000101010E526F14D3060E09C5DBFF050E7A -:102ED0000AC5DBFF080E0BC5DBFF070E0CC5DBFFC9 -:102EE0000A0E0DC5DBFF090E0EC5DBFF0C0E0FC56C -:102EF000DBFF0B0E10C5DBFF11C5E6FF0B0EDBCFB2 -:102F0000E6FF0C0EDBCFE6FF090EDBCFE6FF0A0E75 -:102F1000DBCFE6FF070EDBCFE6FF080EDBCFE6FFD9 -:102F2000050EDBCFE6FF060EDBCFE6FF74EC09F003 -:102F3000006E090EE15E00500101010E526FD8D201 -:102F4000060E09C5DBFF050E0AC5DBFF080E0BC523 -:102F5000DBFF070E0CC5DBFF0A0E0DC5DBFF090EFC -:102F60000EC5DBFF0C0E0FC5DBFF0B0E10C5DBFF24 -:102F70000E0E12C5DBFF0D0E13C5DBFF0D0EDBCFF2 -:102F8000E6FF0E0EDBCFE6FF11C5E6FF0B0EDBCF33 -:102F9000E6FF0C0EDBCFE6FF090EDBCFE6FF0A0EE5 -:102FA000DBCFE6FF070EDBCFE6FF080EDBCFE6FF49 -:102FB000050EDBCFE6FF060EDBCFE6FFB5EC09F032 -:102FC000006E0B0EE15E00500101010E526F90D2B7 -:102FD000060E0AC5DBFF050E0BC5DBFF050EDBCFBA -:102FE000E6FF060EDBCFE6FF09C5E6FF03EC09F0BE -:102FF000E552E552E5527CD2060E0AC5DBFF050E0E -:103000000BC5DBFF080E0CC5DBFF070E0DC5DBFF94 -:103010000A0E0EC5DBFF090E0FC5DBFF09C5E6FF73 -:1030200003EC07F0E552090EDBCF3FF00A0EDBCFD1 -:1030300040F0F1EC21F03EC008F03FC009F040C084 -:103040000AF041C00BF0330E436EE20E446EC20E26 -:10305000456E420E466E08C03EF009C03FF00AC001 -:1030600040F00BC041F00BEC23F03EC004F03FC039 -:1030700005F040C006F041C007F0CC0E436EBC0E18 -:10308000446E8C0E456E3B0E466E04C03EF005C08D -:103090003FF006C040F007C041F00BEC23F0A7EC76 -:1030A00023F03DC000F03EC001F03FC002F040C040 -:1030B00003F000C0E6FF01C0E6FF02C0E6FF03C068 -:1030C000E6FF070EDBCF3FF0080EDBCF40F0F1EC60 -:1030D00021F03EC014F03FC015F040C016F041C0D2 -:1030E00017F0330E436EE20E446EC20E456E420E72 -:1030F000466E14C03EF015C03FF016C040F017C039 -:1031000041F00BEC23F03EC010F03FC011F040C086 -:1031100012F041C013F0BD0E436E370E446E860EA2 -:10312000456E410E466E10C03EF011C03FF012C019 -:1031300040F013C041F00BEC23F0A7EC23F03DC0AE -:103140000CF03EC00DF03FC00EF040C00FF00CC0C0 -:10315000E6FF0DC0E6FF0EC0E6FF0FC0E6FF050E5E -:10316000DBCF3FF0060EDBCF40F0F1EC21F03EC0AC -:103170001CF03FC01DF040C01EF041C01FF0330ED8 -:10318000436EE20E446EC20E456E420E466E1CC089 -:103190003EF01DC03FF01EC040F01FC041F00BECE0 -:1031A00023F0A7EC23F03DC018F03EC019F03FC05B -:1031B0001AF040C01BF018C0E6FF19C0E6FF1AC0A5 -:1031C000E6FF1BC0E6FF09C5E6FFD7EC07F0206E5F -:1031D0000D0EE15E20508CD1060E0AC5DBFF050EF8 -:1031E0000BC5DBFF080E0CC5DBFF070E0DC5DBFFB3 -:1031F00009C5E6FF03EC07F0E5520EC5E6FF070E32 -:10320000DBCF3FF0080EDBCF40F0F1EC21F03EC009 -:1032100008F03FC009F040C00AF041C00BF0330E87 -:10322000436EE20E446EC20E456E420E466E08C0FC -:103230003EF009C03FF00AC040F00BC041F00BEC7B -:1032400023F03EC004F03FC005F040C006F041C08E -:1032500007F0CC0E436EBC0E446E8C0E456E3B0EDA -:10326000466E04C03EF005C03FF006C040F007C007 -:1032700041F00BEC23F0A7EC23F03DC000F03EC082 -:1032800001F03FC002F040C003F000C0E6FF01C003 -:10329000E6FF02C0E6FF03C0E6FF050EDBCF3FF00E -:1032A000060EDBCF40F0F1EC21F03EC014F03FC041 -:1032B00015F040C016F041C017F0330E436EE20E19 -:1032C000446EC20E456E420E466E14C03EF015C0EE -:1032D0003FF016C040F017C041F00BEC23F03EC0A9 -:1032E00010F03FC011F040C012F041C013F0BD0E0D -:1032F000436E370E446E860E456E410E466E10C00C -:103300003EF011C03FF012C040F013C041F00BEC92 -:1033100023F0A7EC23F03DC00CF03EC00DF03FC001 -:103320000EF040C00FF00CC0E6FF0DC0E6FF0EC06F -:10333000E6FF0FC0E6FF09C5E6FF42EC08F0186E95 -:103340000A0EE15E1850D4D0060E0AC5DBFF050E4A -:103350000BC5DBFF09C5E6FF03EC07F0E5520CC522 -:10336000E6FF050EDBCF3FF0060EDBCF40F0F1ECC1 -:1033700021F03EC008F03FC009F040C00AF041C053 -:103380000BF0330E436EE20E446EC20E456E420EDB -:10339000466E08C03EF009C03FF00AC040F00BC0C6 -:1033A00041F00BEC23F03EC004F03FC005F040C0FC -:1033B00006F041C007F0BD0E436E370E446E860E18 -:1033C000456E410E466E04C03EF005C03FF006C09B -:1033D00040F007C041F00BEC23F0A7EC23F03DC018 -:1033E00000F03EC001F03FC002F040C003F000C05A -:1033F000E6FF01C0E6FF02C0E6FF03C0E6FF09C525 -:10340000E6FFB0EC08F00C6E060EE15E0C5070D0DA -:1034100009C5E6FFC8EC08F0E5520101010E526F44 -:1034200067D02DEC0CF0050EF3CFDBFF060EF4CFCA -:10343000DBFF3CEC0CF0070EF3CFDBFF080EF4CF04 -:10344000DBFF00C540F50501416B0501030E426F2E -:103450000501436B060EDBCF48F5050EDBCF49F5C2 -:10346000080EDBCF4AF5070EDBCF4BF5400EE66EBC -:10347000400EE66E050EE66E010EE66E010EE66E7D -:103480009CEC20F0006E050EE15E0050F3CF49F198 -:10349000F4CF4AF12DD000C540F50501416B05017F -:1034A000030E426F0501436B4CEC0CF0000904E085 -:1034B0000501010E486F02D00501486B400EE66E13 -:1034C000400EE66E050EE66E010EE66E010EE66E2D -:1034D0009CEC20F0006E050EE15E0050F3CF49F148 -:1034E000F4CF4AF105D0010EE66E85EC30F0E552DE -:1034F000400EE66E000EE66E050EE66EE66A010E02 -:10350000E66E9CEC20F0006E050EE15E0050F3CFFD -:1035100047F1F4CF48F19FD0010149514A1102E12E -:10352000000E08D049C1E9FF4AC1EAFFEF50800B05 -:1035300001E0010E00094DE10101010E516F05018D -:10354000406B01014C514C2B0501416F0501050EEB -:10355000426F0501436B0501486B400E006E600E23 -:10356000016E026A00C0E6FF01C0E6FF02C0E6FF8E -:10357000480EE66E050EE66E9BEC2FF0036E050E10 -:10358000E15E0350400EE66E400EE66E050EE66EFE -:10359000010EE66E010EE66E9CEC20F0006E050E4C -:1035A000E15E0050F3CF49F1F4CF4AF1400EE66EF0 -:1035B000000EE66E050EE66EE66A010EE66E9CEC07 -:1035C00020F0006E050EE15E0050F3CF47F1F4CF1E -:1035D00048F141D0010149514A1102E1000E08D0E1 -:1035E00049C1E9FF4AC1EAFFEF50800B01E0010E3B -:1035F000000931E100C540F50501416B0501030EED -:10360000426F0501010E436F400EE66E400EE66EFE -:10361000050EE66E010EE66E010EE66E9CEC20F0E5 -:10362000006E050EE15E0050F3CF49F1F4CF4AF190 -:10363000400EE66E000EE66E050EE66EE66A010EC0 -:10364000E66E9CEC20F0006E050EE15E0050F3CFBC -:1036500047F1F4CF48F10F0EE15C02E2E16AE55276 -:10366000E16EE552E7CFD9FF120001015351541129 -:1036700004E1100E536F270E546F5307000E545B76 -:103680006DA207D0535154112EE18C748CB413D019 -:1036900027D00101005102E18C9422D0000502E103 -:1036A0008C8409D0020E005D02E18C8419D0040ED6 -:1036B000005D03E18C948C861200100E005D06E123 -:1036C0000101535154110FE18C740AD0200E005D9A -:1036D0000AE101015351541106E18C748CA402D00B -:1036E0008C9612008C861200E66A010EE66E020EBF -:1036F000E66E03EC09F0E552E552E55212001200C5 -:10370000120012003BEF2EF012001E0EE66E010EAC -:10371000E66E6AEC20F0E552E552400EE66E000ED1 -:10372000E66E050EE66EE66A010EE66E9CEC20F093 -:10373000006E050EE15E0050F3CF47F1F4CF48F183 -:1037400012006D840101080E686F070E696F68072B -:10375000000E695B68516911FAE16D941200D9CFCE -:10376000E6FFE1CFD9FFFD0EDBCF3FF0FE0EDBCF52 -:1037700040F0010E3F1801E1405033E0E8683F1887 -:1037800002E1E86840182BE0030E3F1801E14050C9 -:1037900024E0040E3F1801E140501DE0020E3F18E6 -:1037A00001E1405016E0170E3F1801E140500FE0D4 -:1037B000160E3F1801E1405008E0150E3F1801E1D8 -:1037C000405001E010D0A1DF0FD09EDF0DD09ADF76 -:1037D0000BD096DF09D088DF07D091DF05D091DFCD -:1037E00003D0000001D000D0010E00D0E552E7CF99 -:1037F000D9FF12004BD8E652D0B202D0010E15D03C -:10380000D0B802D0020E11D0D0B002D0030E0DD02D -:10381000D0B602D0040E09D0FCAE02D0050E05D001 -:10382000FCAC02D0060E01D0070EDF6ED088D08629 -:10383000D084D082D080FC9EFC9CDF50E552E552C3 -:10384000E7CFD9FF1200E65221D8020EE126F3504D -:10385000DF6E010EF4CFDBFF1200C00EE66EE00E4D -:10386000E66E69EC30F0E552E5521200DF50F36E7F -:10387000010EDB50F46E020EE15C1200DFCFE6FFBA -:10388000E66AB7EC2FF0E552E5521200D9CFE6FF19 -:06389000E1CFD9FF120098 -:0A38960043EC21F06A6A686A76ECE0 -:1038A00021F06D8C6E6A26EC21F06D9CDF6A57EC7E -:1038B00021F010E2DF50040DF3CFE9FFF4CFEAFF6F -:1038C000000EE926040EEA22EE6AEE6AEE6AEE6A5D -:1038D000DF2AEDD7160E706E68A604D0030EECEC4E -:1038E00020F0FAD70101136B186B196B1A6B6D98E6 -:1038F000080E0B6F040E0C6F016B006BE55201EFAD -:1039000021F043EC21F0010100510BE16D6A696A7D -:1039100076EC21F06DB602D06D86FCD70101010E68 -:10392000006F000508E16DBA06D0686A696A6980AF -:103930006988020E006F6850040B07E06950040BA1 -:1039400004E0020EECEC20F089D86DB247D068504C -:10395000010B14E06950010B11E09DDF0101040E21 -:10396000006F0401200E026F040E036F080E016F3A -:10397000006B8C0E0013E66AB5EC21F06850100B5A -:1039800007E06950100B04E060D8040EECEC20F066 -:103990006850400B0BE06950400B08E07DEC21F0D3 -:1039A000020EF4EC20F0060EECEC20F06850200B38 -:1039B00004E06950200B01E035D86850020B0AE0A2 -:1039C0006950020B07E07DEC21F0E668E668D5EC73 -:1039D00021F06A6A040E0101005D02E2A19A1FD083 -:1039E00069A61CD0DF6A040EDF5C18E268A616D058 -:1039F0006CCF20F1030EECEC20F0780E01012015C5 -:103A000002E138D809D0000EE66EE66A200EE66EB6 -:103A1000010EE66E010EE8DBDF2AE5D7A19AE5523A -:103A200001EF21F070A00ED00FEC21F0EF508008D4 -:103A300008E1D5DBEF50840804E10FEC21F08C0E97 -:103A4000EF6E7090050EECEF20F06984040EC4DB7D -:103A50006D822FEC21F0040EF4EF20F02FEC21F01A -:103A6000030EC2DB6D92699468A403D0020EB4DB2E -:103A7000FBD7120043EC21F0FD0E010120153DE1C2 -:103A80007E0E2015E8407F0B040DF3CF03F1F4CF39 -:103A900004F1000E0327040E042303C105F104C141 -:103AA00006F10575BCDBEF503C0BE842E8420D081F -:103AB00022E1B5DBACEC21F0EECF00F0EFCF01F06E -:103AC000280E001816E1040E011813E1E6EC21F0AF -:103AD000DF6AEDDB0EE2DF505FEC21F0DF50EA6AD7 -:103AE000200FE96E040EEA22E552E750EF6EDF2A5E -:103AF000F0D70AD807D01AD805D0FD0E2015040833 -:103B000001E122D8E5527DD36ADBEF50800B02E061 -:103B100066DBEF6A01010F6B106B146B156B136B97 -:103B200064D89DDB170E60DB2AEF1FF0020E010147 -:103B3000105D02E1B7EF1FF034D80101215102E11D -:103B4000B1EF21F0216B12009EDB49DBEF50400BFF -:103B500001E0010EDF6E01010B75080E005D09E149 -:103B600022C46EFF6E50000802E2100E01D0040E57 -:103B7000006F100513E1EAEC21F0A6D9020E010155 -:103B80000F5D03E12CDB840E07D0DF5003E127DB60 -:103B9000C80E02D024DB880EEF6E01D002D8E552A9 -:103BA00030D32BDB0101106B1ADBEF6A040E0B190B -:103BB000006E0CC101F0DE6E0CC1DDFF19DBEF6A97 -:103BC00018AF0CD01B511C1107E005D01CC1FAFF27 -:103BD00001011B51F96EFADF0101189F020EE15C31 -:103BE00002E2E16AE552E16E0CD304012051600B60 -:103BF000E842E842E842E842E842000901E01200F7 -:103C000021510C0A45E00B0A3FE00C0A31E0010AA1 -:103C100022E00B0A1EE0020A1CE0030A18E0080A70 -:103C200010E0010A0CE00F0A08E0030A01E01200AC -:103C30000101138F080E006F1200AAEF1EF013EFA0 -:103C400020F00101010E116F010E126F0CD0EBEF8D -:103C50001EF049EF1EF024510101116F126B020E8C -:103C60001127010E12231381010E146F138F1200FE -:103C70000101138F04012451EA6A020FE96E010E5B -:103C8000EA2222C4EFFF1200EADA160EF4EF20F067 -:103C900012007EDB040EE1260401220510E1205112 -:103CA0001F0B00090CE10101138F030E0401215DBC -:103CB00004E10101010E1F6F02D001011F6B04011D -:103CC000225141E120511F0B02083DE124510F0B0D -:103CD000000939E00101138F040124BF05D0A4DAE3 -:103CE000070EE926010E04D09FDA0B0EE926010E1D -:103CF000D2DA030E215D03E17BDA840E23D0245156 -:103D00000F0B016A700F006E0F0E0122020E00C031 -:103D1000DBFF030E01C0DBFF020EDBCFE9FF030E6A -:103D2000DBCFEAFFEE90ED5224AF06D061DAEF6A06 -:103D3000DF745EDA400E06D05BDA880EEF6EDF7459 -:103D400057DAC80EEF6E040EE15C02E2E16AE5525A -:103D5000E16E57D2800E0401205D3CE10101C00EEE -:103D6000136F04012351030A1EE0010A09E0030A4C -:103D70002FE10101440E116F5D0E126F120E22D061 -:103D8000C3DAEE0EF6265D0EA2DA020E0101F76A24 -:103D90001125F66E1251F7220900F5CF14F10A0031 -:103DA000F5CF15F11200030E225D0FE2ADDAF00E31 -:103DB000F6265D0E8CDA11C1F6FF12C1F7FF08007E -:103DC000F5500101146F156B12000101136B120005 -:103DD0000101136B120011DA0401286B296B2051C9 -:103DE0001F0B020A11E0030A0CE0010A22E10101A3 -:103DF000138F0401288101011F051BE104012883A1 -:103E000018D00101138F15D00101138F040124BFB5 -:103E100005D00ADA070EE926010E04D005DA0B0EEA -:103E2000E926010E38DAE4D9EF50040B02E0010E66 -:103E3000286F010113AF07D0280E116F040E126F07 -:103E40001381020E146F020EE15C02E2E16AE55298 -:103E5000E16ED7D16D98010113BF08D018AF02D021 -:103E600061DA2AD07EDABBD9840E27D018BF2BD0D6 -:103E7000040120AF24D0010114510401265D010189 -:103E800015510401275904E226C414F127C415F181 -:103E90001BD80101010E106FA1DA800EEF6E216BAD -:103EA000BED9EE52080EEF6E91DAB9D9840EEF6EDC -:103EB000010E216F8FDA93D9C80EEF6E1200010147 -:103EC00031DAC80EEF6E120098D90101080E145DA8 -:103ED000000E15590DE214C1DEFF15C1DDFF0F51B3 -:103EE00002E1010E03D00F0506E1020E0F6F03D0B1 -:103EF000080EDE6EDD6A73D9EF9271D9EF906FD93B -:103F0000010EDB50EF126BD9EE52DFCFEFFF000E48 -:103F1000DB50145F010EDB50155B280E1D6F040E85 -:103F20001E6F13B10FD0F7D91BE011C1F6FF12C1FC -:103F3000F7FF112B000E12230800F55096D9F3E27B -:103F4000DB06F1D7E8D90CE011C1E9FF12C1EAFFA5 -:103F5000112B000E1223EF5088D9F4E2DB06F2D7C2 -:103F6000020EE15C02E2E16AE552E16E4AD145D916 -:103F700056D9EE52EFCFDFFFDFCF00F00050010146 -:103F8000195D000E1A5903E219C1DFFF09D0DF5095 -:103F9000006E016AE850195D196F01501A591A6FC5 -:103FA000010EDB6ADF50F36E010EDBCFF4FFF3503E -:103FB000F45C10E2010EDB5082D916C1E9FF17C193 -:103FC000EAFF162B000E1723E552E750EF6E010EA5 -:103FD000DB2AE8D7000ED8801955000E1A550DE2DD -:103FE000F4D854D91CD9EF50400B03E1EAD9C80EDC -:103FF00002D0E7D9880EEF6E0FD0F0D9840EEF6EA5 -:104000001B511C1107E005D01CC1FAFF01011B5117 -:10401000F96EFADF0101189F020EE15... [truncated message content] |
From: Nicolas D. <Ba...@us...> - 2010-03-08 23:07:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 6979c0aaac3d8e3225bde86295cbf178e973dafc (commit) from 241c1227982a011ed5387a18dfeae7386e3e9255 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6979c0aaac3d8e3225bde86295cbf178e973dafc Author: Nicolas Dandrimont <Nic...@cr...> Date: Tue Mar 9 00:06:28 2010 +0100 Add Battery Monitoring card to firmware utility ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/card_tools/boardname.mll b/PC_Mainboard/card_tools/boardname.mll index 30f99cf..08df665 100644 --- a/PC_Mainboard/card_tools/boardname.mll +++ b/PC_Mainboard/card_tools/boardname.mll @@ -8,7 +8,7 @@ *) -let boardname_regex = ("Carte " | "Robot Interface") [^'\n']+ +let boardname_regex = ("Carte " | "Robot Interface" | "Battery Monitoring ") [^'\n']+ rule boardname = parse | (boardname_regex as name) '\n' { Some name } hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-08 22:59:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 241c1227982a011ed5387a18dfeae7386e3e9255 (commit) from 3e1aae398963d2424a80c545b19fb0ce3a336c52 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 241c1227982a011ed5387a18dfeae7386e3e9255 Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 23:58:48 2010 +0100 Add the monitoring card ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/clients/script.ml b/PC_Mainboard/clients/script.ml index 5c64cf6..a4b6829 100644 --- a/PC_Mainboard/clients/script.ml +++ b/PC_Mainboard/clients/script.ml @@ -231,7 +231,8 @@ let () = let card = keyword "card" [("interface", `Interface); ("motor", `Motor); - ("sensor", `Sensor)] in + ("sensor", `Sensor); + ("monitoring", `Monitoring)] in register ~path:["card"] "bootloader" (f1 card) (fun logger krobot card -> Krobot.Card.bootloader (krobot, card)); diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 071e898..5d9c1ca 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -879,6 +879,7 @@ lwt () = Card.OBus.export bus (Card.make "interface" card_interface ["fr"; "krobot"; "Cards"; "Interface"]); Card.OBus.export bus (Card.make "sensor" card_sensor ["fr"; "krobot"; "Cards"; "Sensor"]); Card.OBus.export bus (Card.make "motor" card_motor ["fr"; "krobot"; "Cards"; "Motor"]); + Card.OBus.export bus (Card.make "monitoring" card_monitoring ["fr"; "krobot"; "Cards"; "Monitoring"]); OBus_object.export bus Manager.manager; diff --git a/PC_Mainboard/generators/gen_dbus_imports.ml b/PC_Mainboard/generators/gen_dbus_imports.ml index 09eac87..0e91bd3 100644 --- a/PC_Mainboard/generators/gen_dbus_imports.ml +++ b/PC_Mainboard/generators/gen_dbus_imports.ml @@ -77,7 +77,8 @@ module Card = struct [\"fr\"; \"krobot\"; \"Cards\"; (match card with | `Interface -> \"Interface\" | `Sensor -> \"Sensor\" - | `Motor -> \"Motor\")] + | `Motor -> \"Motor\" + | `Monitoring -> \"Monitoring\")] let make proxy = failwith \"not implemented\" end) OP_interface(Proxy) \"fr.krobot.Card.Unsafe\" diff --git a/PC_Mainboard/generators/gen_script_commands.ml b/PC_Mainboard/generators/gen_script_commands.ml index be2da55..8d2986a 100644 --- a/PC_Mainboard/generators/gen_script_commands.ml +++ b/PC_Mainboard/generators/gen_script_commands.ml @@ -90,7 +90,7 @@ let rec print is_card path caml_path = function let () = printf "open Script_commands\n"; printf "let register () =\n"; - printf " let __type_card name = keyword name [(\"interface\", `Interface); (\"sensor\", `Sensor); (\"motor\", `Motor)] in\n"; + printf " let __type_card name = keyword name [(\"interface\", `Interface); (\"sensor\", `Sensor); (\"motor\", `Motor); (\"monitoring\", `Monitoring)] in\n"; List.iter (print true "\"unsafe\"; \"card\"" "Card.") card; List.iter (print false "\"unsafe\"" "") interfaces; printf " ()" diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index cd5fbec..2650c1e 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -33,6 +33,7 @@ type t = { interface : card; sensor : card; motor : card; + monitoring : card; (* Motors state *) inhibited_forward_until : float React.signal; @@ -127,7 +128,9 @@ let create ?peer () = and inhibited_backward_until = make_dev_signal peer "Motors" "InhibitedBackward" "InhibitedBackwardChanged" <:obus_type< float >> 0. and card_interface = make_card_signal peer "Interface" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent and card_sensor = make_card_signal peer "Sensor" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent - and card_motor = make_card_signal peer "Motor" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent in + and card_motor = make_card_signal peer "Motor" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent + and card_monitoring = make_card_signal peer "Monitoring" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent + in return { peer = peer; compass = compass; @@ -138,6 +141,7 @@ let create ?peer () = interface = { card_state = card_interface }; sensor = { card_state = card_sensor }; motor = { card_state = card_motor }; + monitoring = { card_state = card_monitoring }; } (* +-----------------------------------------------------------------+ @@ -212,17 +216,19 @@ OP_method GetState as motors_state : string module Card = struct - type card = [ `Interface | `Sensor | `Motor ] + type card = [ `Interface | `Sensor | `Motor | `Monitoring ] let name = function | `Interface -> "interface" | `Sensor -> "sensor" | `Motor -> "motor" + | `Monitoring -> "monitoring" let state (krobot, card) = match card with | `Interface -> krobot.interface.card_state | `Sensor -> krobot.sensor.card_state | `Motor -> krobot.motor.card_state + | `Monitoring -> krobot.monitoring.card_state module Proxy = OBus_proxy.Make (struct @@ -232,7 +238,8 @@ struct ["fr"; "krobot"; "Cards"; (match card with | `Interface -> "Interface" | `Sensor -> "Sensor" - | `Motor -> "Motor")] + | `Motor -> "Motor" + | `Monitoring -> "Monitoring" )] let make proxy = failwith "not implemented" end) diff --git a/PC_Mainboard/lib_krobot/krobot.mli b/PC_Mainboard/lib_krobot/krobot.mli index 47c2a13..26d12d9 100644 --- a/PC_Mainboard/lib_krobot/krobot.mli +++ b/PC_Mainboard/lib_krobot/krobot.mli @@ -128,7 +128,7 @@ val inhibited_backward_until : t -> float React.signal (** {6 Cards} *) module Card : sig - type card = [ `Interface | `Sensor | `Motor ] + type card = [ `Interface | `Sensor | `Motor | `Monitoring ] val name : card -> string (** Returns the name of a card *) hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-08 22:47:12
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 3e1aae398963d2424a80c545b19fb0ce3a336c52 (commit) from c654c37eb3a98e2e6178aea67ede87f45f06e2b5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3e1aae398963d2424a80c545b19fb0ce3a336c52 Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 23:43:50 2010 +0100 code for the baterry monitoring card ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 7988333..071e898 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -16,6 +16,31 @@ open Krobot_types open Lwt (* +-----------------------------------------------------------------+ + | Battery monitoring | + +-----------------------------------------------------------------+ *) + +module Power = +struct + type t = { + obus : OBus_object.t; + card : Krobot_card.t; + } + + module OBus = OBus_object.Make(struct + type obj = t + let cast obj = obj.obus + end) + + module Unsafe = DBus_exports.Power(OBus)(struct let get dev = dev.card end) + + let make card path = + return { + obus = OBus.make ~interfaces:[Unsafe.interface] path; + card = card; + } +end + +(* +-----------------------------------------------------------------+ | Compass | +-----------------------------------------------------------------+ *) @@ -604,6 +629,7 @@ end let done_waiter, done_wakener = Lwt.wait () let quit = ref false let card_interface, set_card_interface = React.S.create None +let card_monitoring, set_card_monitoring = React.S.create None let card_sensor, set_card_sensor = React.S.create None let card_motor, set_card_motor = React.S.create None @@ -813,6 +839,17 @@ lwt () = (fun () -> OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "Compass"]; OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "AX12"]; + OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "LCD"]; + return ()) + end; + + ignore begin + monitor_card ~name:"monitoring" ~vendor_id:PcInterface.usb_vid ~product_id:PcInterface.usb_pid_battery_monitoring ~set:set_card_monitoring + (fun card -> + lwt () = Power.OBus.export bus =|< Power.make card ["fr"; "krobot"; "Devices"; "Power"] in + return ()) + (fun () -> + OBus_object.remove_by_path bus ["fr"; "krobot"; "Devices"; "Power"]; return ()) end; diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index 8101a76..d4be097 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -632,4 +632,31 @@ let interfaces = [ Arg("message", string)] (); ]); + + Module("Power", [ + request + ~name:"get-cell-voltage" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_cell_voltage)] + ~repl:[Arg("cell-voltage", array 8 uint16)] + (); + request + ~name:"get-current" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_current)] + ~repl:[Arg("current", uint32)] + (); + request + ~name:"get-power-state" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_power_state)] + ~repl:[Arg("power-state", uint8)] + (); + request + ~name:"get-battery-state" + ~code:PcInterface.cmd_get + ~args:[Cst(uint8, PcInterface.get_battery_state)] + ~repl:[Arg("battery-state", uint8)] + (); + ]); ] hooks/post-receive -- krobot |
From: Nicolas D. <Ba...@us...> - 2010-03-08 22:46:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via c654c37eb3a98e2e6178aea67ede87f45f06e2b5 (commit) from ccf8cfd83333c0cbaa929ed8290b564b9401ec7e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c654c37eb3a98e2e6178aea67ede87f45f06e2b5 Author: Nicolas Dandrimont <Nic...@cr...> Date: Mon Mar 8 23:45:24 2010 +0100 The robot actually has 6 current loops ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Battery_Monitoring/Firmware/monitor.h b/USB_Module/Battery_Monitoring/Firmware/monitor.h index 17c1d13..2502211 100644 --- a/USB_Module/Battery_Monitoring/Firmware/monitor.h +++ b/USB_Module/Battery_Monitoring/Firmware/monitor.h @@ -15,7 +15,7 @@ #define FULL_CHARGE_THRES 3300 ///< Seuil de charge pleine (en mV) #define LOW_CHARGE_THRES 2800 ///< Seuil de charge faible (en mV) -- si la tension d'une cellule est infeure e seuil, une alarme est dench #define ABSENT_CELL_THRES 100 ///< Seuil cellule suspectde ne pas e connect -#define CURRENT_LOOP 5.0 ///< Nombre de boucles de courant dans le capteur ffet Hall (forcnt un entier) +#define CURRENT_LOOP 6.0 ///< Nombre de boucles de courant dans le capteur ffet Hall (forcnt un entier) // Constantes calcul #define CURRENT_GAIN ((50.0/0.625)/CURRENT_LOOP) diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof index bbb4a7f..8c86a9f 100644 Binary files a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof and b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof differ diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex index 3ec1cb8..e123d32 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex @@ -444,7 +444,7 @@ :102330000D6A200E0E6E400E0F6E2AEC0FF007C0D5 :1023400018F008C019F009C01AF00AC01BF08DD8A7 :1023500007C014F008C015F009C016F00AC017F045 -:102360000C6A0D6A800E0E6E410E0F6EBDEC0EF003 +:10236000550E0C6E0D6E0E6E410E0F6EBDEC0EF026 :102370001DEF10F00001BA3504E2B9519008010ECA :10238000BA5501E3000C010CD9CFE6FFE1CFD9FF2C :10239000050EE126030E79D8DE6ADD6ADECF14F081 @@ -529,7 +529,7 @@ :10282000CF6ACE6A9E90DBAE02D09D8001D09D9093 :0E283000CD80E552E5CFDAFFE7CFD9FF1200E9 :02283E00323333 -:102840003A31313A34320020004D61722030382064 +:102840003A34313A31370020004D6172203038205F :10285000323031300042617474657279204D6F6E90 :1028600069746F72696E6720312E300A4F6C697619 :0C28700069657220424943484C45520003 diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map index d222b9d..87416a1 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Mon Mar 8 23:11:53 2010 +Linker Map File - Created Mon Mar 8 23:41:28 2010 Section Info Section Type Address Location Size(Bytes) hooks/post-receive -- krobot |
From: Nicolas D. <Ba...@us...> - 2010-03-08 22:16:06
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via ccf8cfd83333c0cbaa929ed8290b564b9401ec7e (commit) from a35db5cb7075a815e8b9d6b3d82529886dd5b70c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ccf8cfd83333c0cbaa929ed8290b564b9401ec7e Author: Nicolas Dandrimont <Nic...@cr...> Date: Mon Mar 8 23:14:35 2010 +0100 Silence the Battery Monitoring card while we're testing the robot. - Revert this commit when in production ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Battery_Monitoring/Firmware/main.c b/USB_Module/Battery_Monitoring/Firmware/main.c index 6676c44..c44b75a 100644 --- a/USB_Module/Battery_Monitoring/Firmware/main.c +++ b/USB_Module/Battery_Monitoring/Firmware/main.c @@ -235,7 +235,7 @@ char ResetSource(void); } interruptMonitor(); - interruptBuzzer(); + //interruptBuzzer(); // On rtorise l'interruption PIR1bits.TMR1IF = 0; diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof index 0aa081e..bbb4a7f 100644 Binary files a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof and b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof differ diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex index 38cfcff..3ec1cb8 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex @@ -1,13 +1,13 @@ :020000040000FA -:06000000A5EF14F0120050 +:06000000A4EF14F0120051 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000A5EF14F0120048 +:06080000A4EF14F0120049 :06080800D5EF09F012001B -:060818003FEF0AF01200A0 -:06082A000300CE290000CE -:100830008600000021000000BE290000BD0000006D -:1008400010000000A8290000A7000000160000000A +:060818003EEF0AF01200A1 +:06082A000300CC290000D0 +:100830008600000021000000BC290000BD0000006F +:1008400010000000A6290000A7000000160000000C :1008500027EC09F06A6A686A5AEC09F06D8C6E6AD6 :100860000AEC09F06D9CDF6A3BEC09F010E2DF5006 :10087000040DF3CFE9FFF4CFEAFF000EE926040EE2 @@ -86,11 +86,11 @@ :100D00005BDA880EEF6EDF7457DAC80EEF6E040EF2 :100D1000E15C02E2E16AE552E16E57D2800E040125 :100D2000205D3CE10001C00E736F04012351030AF2 -:100D30001EE0010A09E0030A2FE10001640E716F51 -:100D4000250E726F120E22D0C3DA120EF626260E70 +:100D30001EE0010A09E0030A2FE10001620E716F53 +:100D4000250E726F120E22D0C3DA100EF626260E72 :100D5000A2DA020E0001F76A7125F66E7251F722CF :100D60000900F5CF74F00A00F5CF75F01200030EFC -:100D7000225D0FE2ADDA140EF626260E8CDA71C073 +:100D7000225D0FE2ADDA120EF626260E8CDA71C075 :100D8000F6FF72C0F7FF0800F5500001746F756B35 :100D900012000001736B12000001736B120011DA74 :100DA0000401286B296B20511F0B020A11E0030A72 @@ -185,8 +185,8 @@ :101330001200680EE66E0F0EE66E16DFE552E552FD :10134000E552120049DF670EE926000E120044DF65 :101350006B0EE926000E1200D9CFE6FFE1CFD9FFD0 -:101360001200E66E93EC13F0146E050EE15E14505D -:101370001200BAEC0DF0146E060EE15E145012006D +:101360001200E66E92EC13F0146E050EE15E14505E +:101370001200B9EC0DF0146E060EE15E145012006E :10138000200EEE6E040EED6E120065C0E9FF66C021 :10139000EAFF120028DFC4DFC0EF09F004DFC0DF7E :0A13A0002AEF09F0F6DEE9EF08F08D @@ -195,378 +195,378 @@ :1013C000E4FFF5CFE4FFF3CFE4FFF4CFE4FFFACF7F :1013D000E4FF00EE00F0140EE80403E3EECFE4FFB8 :1013E000FBD700EE14F0140EE80403E3EECFE4FFA5 -:1013F000FBD72EEC0EF09EA015D038EC0EF00A0EA6 +:1013F000FBD72DEC0EF09EA014D037EC0EF00A0EA9 :101400000001C327000EC423E80EC35D030EC459B8 -:1014100005E3C36BC46BC52B000EC623DBEC10F0D9 -:1014200022DB9E9041EC0EF002E2E16AE552E16EB1 -:10143000E552E7CFD9FFE55200EE27F0140EE8049D -:1014400003E3E5CFEDFFFBD700EE13F0140EE80445 -:1014500003E3E5CFEDFFFBD7E5CFFAFFE5CFF4FFE0 -:10146000E5CFF3FFE5CFF5FFE5CFF7FFE5CFF6FFDB -:10147000E5CFEAFFE5CFE9FFE5CFDAFF1100D8CFEE -:10148000E4FFE0CFE4FFE46EDACFE4FFE2CFDAFF7F -:10149000F3CFE4FFF4CFE4FFE1DB41EC0EF002E236 -:1014A000E16AE552E16EE552E7CFD9FFE552E5CFBB -:1014B000F4FFE5CFF3FFE5CFDAFFE550E5CFE0FF3E -:1014C000E5CFD8FF100004D85EEC04F03AD8FCD782 -:1014D0000F0EC112958602D828EF04F0E2DBE65227 -:1014E000828493DB0001D76F070ED75D0EE1E66AB9 -:1014F000E9EC13F0E552DF6E000EDF80CADBE66A2E -:101500008EEC14F0E552DF70C4DBD08EF28EF28CDC -:101510009D80F50EE66EFFEC13F0E552A9DBFC0EA4 -:101520008B1694160001BD6BBE6BBF6BC06B010EBA -:10153000C16F30EC11F08294E552E552E7CFD9FF4C -:101540001200D9CFE6FFE1CFD9FF090EE126000155 -:10155000C15101E09FDA200E0001605D03E36D5090 -:10156000020B01E076D20001BF51C01102E1000E72 -:1015700008D0BFC0E9FFC0C0EAFFEF50800B01E018 -:10158000010E000947E10001A651EA6A860FE96EE3 -:10159000000EEA22EF5000083DE20501406B000119 -:1015A000C251C22B0501416F0501040E426F0001BB -:1015B000A651EA6A860FE96E000EEA22EFCF43F5E4 -:1015C000400EE66E400EE66E050EE66E010EE66E0D -:1015D000010EE66E80EC08F0146E050EE15E14500C -:1015E000F3CFBFF0F4CFC0F00001A651EA6A860F36 -:1015F000E96E000EEA22EF6A0001A651000803E23C -:101600000001A60707D00001A551000803E2000170 -:101610001F0EA66F0001BD51BE1102E1000E08D0E1 -:10162000BDC0E9FFBEC0EAFFEF50800B01E0010E34 -:10163000000901E00ED205010251060A01E164D160 -:10164000040A17E0030A05E0010A01E0C1D1FF0026 -:1016500000D2E66AE9EC13F0E552DF6E000EDB80A3 -:10166000DFCFE6FFE66AC9EC13F0E552E552FF0072 -:10167000F0D10001BF51C01102E1000E08D0BFC07F -:10168000E9FFC0C0EAFFEF50800B01E0010E000946 -:1016900001E039D100C540F50501416B0501030E9C -:1016A000426F0501436B050108510E0A01E1FCD0B0 -:1016B000030A01E1F4D0010A01E1D6D0070A01E1F1 -:1016C0007ED00F0A71E0070A64E0010A20E0030AF5 -:1016D00006E0010A01E0EDD0D7C048F5EDD00501E4 -:1016E000486B570E146E280E156E166A14C0E6FF6E -:1016F00015C0E6FF16C0E6FF480EE66E050EE66E64 -:10170000ADEC13F0176E050EE15E1750D5D0050154 -:10171000486B4B0E146E280E156E166A14C0E6FF49 -:1017200015C0E6FF16C0E6FF480EE66E050EE66E33 -:10173000ADEC13F0176E050EE15E1750490E146EF6 -:10174000280E156E166A14C0E6FF15C0E6FF16C017 -:10175000E6FF480EE66E050EE66EADEC13F0176E72 -:10176000050EE15E1750400E146E280E156E166AB7 -:1017700014C0E6FF15C0E6FF16C0E6FF480EE66E91 -:10178000050EE66EADEC13F0176E050EE15E175018 -:1017900093D092CF48F593CF49F594CF4AF595CFA2 -:1017A0004BF596CF4CF588D080CF48F581CF49F5E1 -:1017B00082CF4AF583CF4BF584CF4CF57DD0070E11 -:1017C000DB6A080EDB6A070EDBCF14F0080EDBCFF6 -:1017D00015F0D890155004E6080E145C000E15584C -:1017E00042E2070EDBCFE6FF3EEC11F0E552DE529F -:1017F000F3CFDEFFF4CFDDFFDD52020E086E096A83 -:10180000070EDBCF0DF0080EDBCF0EF0C2EC0FF0B1 -:1018100006C0E9FF07C0EAFF480EE926050EEA22E6 -:10182000020EDBCFEFFF020E086E096A070EDBCF58 -:101830000DF0080EDBCF0EF0C2EC0FF006C0E9FF92 -:1018400007C0EAFF010EE926000EEA22480EE9264B -:10185000050EEA22010EDBCFEFFF070EDB2A080E92 -:1018600001E3DB2AB0D728D078EC11F0030E06C0D4 -:10187000DBFF040E07C0DBFF050E08C0DBFF060E12 -:1018800009C0DBFF060EDBCF48F5050EDBCF49F5BF -:10189000040EDBCF4AF5030EDBCF4BF50DD0BBECCE -:1018A00011F00501486F08D0C5EC11F00501486F33 -:1018B00003D00501020E436F400EE66E400EE66E49 -:1018C000050EE66E010EE66E010EE66E80EC08F087 -:1018D000146E050EE15E1450F3CFBFF0F4CFC0F0EC -:1018E000400EE66E000EE66E050EE66EE66A010E2E -:1018F000E66E80EC08F0146E050EE15E1450F3CF36 -:10190000BDF0F4CFBEF0A5D005010851030A37E0C1 -:10191000010A25E0030A13E0010A01E040D00501B5 -:101920000951921205010A51931205010B519412AB -:1019300005010C51951205010D51961235D0050186 -:10194000091D921605010A1D931605010B1D94161B -:1019500005010C1D951605010D1D961625D00501D6 -:10196000091D891605010A1D8A1605010B1D8B1616 -:1019700005010C1D8C1605010D1D8D1615D00501D8 -:101980000951891205010A518A1205010B518B1266 -:1019900005010C518C1205010D518D1205D0030E5D -:1019A000E66E5BEC14F0E552400EE66E000EE66E5D -:1019B000050EE66EE66A010EE66E80EC08F0146E27 -:1019C000050EE15E1450F3CFBDF0F4CFBEF041D070 -:1019D0000001BF51C01102E1000E08D0BFC0E9FFF5 -:1019E000C0C0EAFFEF50800B01E0010E000931E1B9 -:1019F00000C540F50501416B0501030E426F05016D -:101A0000010E436F400EE66E400EE66E050EE66E6A -:101A1000010EE66E010EE66E80EC08F0146E050E07 -:101A2000E15E1450F3CFBFF0F4CFC0F0400EE66E8D -:101A3000000EE66E050EE66EE66A010EE66E80ECBE -:101A400008F0146E050EE15E1450F3CFBDF0F4CF34 -:101A5000BEF0090EE15C02E2E16AE552E16EE55298 -:101A6000E7CFD9FF12000001C951CA110FE1C5EC3F -:101A700011F0010A04E0010A04E1827403D08284B7 -:101A800001D08294320E0001C96FCA6BC907000EE3 -:101A9000CA5B12000001CB51CC1104E1100ECB6FD8 -:101AA000270ECC6FCB07000ECC5B6DA207D0CB51BD -:101AB000CC112EE18B728BB213D027D00001605174 -:101AC00002E18B9222D0600502E18B8209D0020EE6 -:101AD000605D02E18B8219D0040E605D03E18B92A0 -:101AE0008B801200100E605D06E10001CB51CC111D -:101AF0000FE18B720AD0200E605D0AE10001CB512C -:101B0000CC1106E18B728BA202D08B9012008B80DD -:101B1000120012001200120012004BEF12F012001D -:101B20001E0EE66E010EE66E4EEC08F0E552E55232 -:101B3000400EE66E000EE66E050EE66EE66A010EDB -:101B4000E66E80EC08F0146E050EE15E1450F3CFE3 -:101B5000BDF0F4CFBEF012006D840001080ED86F06 -:101B6000070ED96FD807000ED95BD851D911FAE109 -:101B70006D941200D9CFE6FFE1CFD9FFFD0EDBCF88 -:101B800008F0FE0EDBCF09F0010E081801E1095044 -:101B900033E0E868081802E1E86809182BE0030E52 -:101BA000081801E1095024E0040E081801E1095069 -:101BB0001DE0020E081801E1095016E0170E081882 -:101BC00001E109500FE0160E081801E1095008E084 -:101BD000150E081801E1095001E010D0A1DF0FD067 -:101BE0009EDF0DD09ADF0BD096DF09D092DF07D0B1 -:101BF00091DF05D091DF03D0000001D000D0010EAD -:101C000000D0E552E7CFD9FF12004BD8E652D0B250 -:101C100002D0010E15D0D0B802D0020E11D0D0B033 -:101C200002D0030E0DD0D0B602D0040E09D0FCAE07 -:101C300002D0050E05D0FCAC02D0060E01D0070E76 -:101C4000DF6ED088D086D084D082D080FC9EFC9C71 -:101C5000DF50E552E552E7CFD9FF1200E65221D816 -:101C6000020EE126F350DF6E010EF4CFDBFF12000F -:101C7000F00EE66ED80EE66E3FEC14F0E552E5523B -:101C80001200DF50F36E010EDB50F46E020EE15CC9 -:101C90001200DFCFE6FFE66AC9EC13F0E552E55229 -:0C1CA0001200D9CFE6FFE1CFD9FF1200FF -:041CAC00019E08D0BD -:101CB000019E09AE05D0086C091EE86A0922018E52 -:101CC00009C003F008C002F0136A126A8E0E046E97 -:101CD000056A71EF10F0016AADEC10F0C5EC10F080 -:101CE00001B655EF10F001A205D001BA55EF10F082 -:101CF0005CEF10F001BA68EF10F001A005D001B858 -:101D000055EF10F068EF10F001B85CEF10F0056AC5 -:101D10007F0E0A24046EE86A05220F50045EE86A0A -:101D2000055A1A0E106E0A6A126A136A026A036A68 -:101D30000C50075E0D50085A0E50095A000E0A5AF0 -:101D400009E70C5007260D5008220E500922000EFC -:101D50000A2201D0128AD8900736083609360A3688 -:101D6000D8901236133602360336102EE1D70950BA -:101D700008100710D8A4128A71EF10F0016AADECB8 -:101D800010F0C5EC10F001B655EF10F001A205D02F -:101D900001B855EF10F05CEF10F001AA05D001B0CA -:101DA00055EF10F05CEF10F001B002D001A802D0A6 -:101DB00068EF10F0056A0F500A24046EE86A0522E5 -:101DC0007E0E045EE86A055A126A136A026A036AA2 -:101DD0000E500902F4CF03F0F3CF02F00D500902C8 -:101DE000F3501326F4500222000E03220E50080274 -:101DF000F3501326F4500222000E03220C50090265 -:101E0000F3501226F4501322000E022203220D502A -:101E10000802F3501226F4501322000E022203226D -:101E20000E500702F3501226F4501322000E022225 -:101E300003220C500802F4501226000E1322022234 -:101E400003220D500702F4501226000E1322022224 -:101E5000032271EF10F00F7E016AADEC10F0C5ECBB -:101E600010F001B655EF10F001A20AD001AA03D07C -:101E700001BE55EF10F001A461EF10F05EEF10F01D -:101E800001AA05D001AC61EF10F05EEF10F001A0E7 -:101E90000AD001A808D001BE04D001A402D06AEF84 -:101EA00010F06EEF10F0126A056A0F500A5C116EA6 -:101EB00010E307C013F008C002F009C003F00AC025 -:101EC00010F00CC007F00DC008F00EC009F0013A88 -:101ED00009D00CC013F00DC002F00EC003F00FC00B -:101EE00010F0116C019E01BC018E10C004F001B015 -:101EF0009DEF10F01A0E11609DEF10F0046A0A6A4F -:101F000001A408D0076C081E091E0A1EE86A0822F0 -:101F100009220A2201AC08D0136C021E031E041E03 -:101F2000E86A022203220422066A115207E00A34F8 -:101F30000932083207320632112EF9D7075013261C -:101F400008500222095003220A50042206C012F04F -:101F5000019E04AE0BD0126C131E021E031E041E43 -:101F6000E86A1322022203220422018E04A006D072 -:101F7000D8800332023213321232102A10C004F019 -:101F800071EF10F009C013F008C012F008500D02F4 -:101F9000F4CF07F0F3CF06F009500E02F4CF09F0AA -:101FA000F3CF08F00D02F3500726F4500822E86A38 -:101FB000092212500E02F3500726F4500822E86A54 -:101FC00009220EAEE8EF0FF01250085E1350095AC6 -:101FD00013AE000C0D50085E0E50095A000C016A39 -:101FE000ADEC10F001B6F9EF0FF001A20ED001B484 -:101FF00005D07F0E096EFF0E086E1FD0800E096E91 -:10200000086A1BD0096A086A18D001B0FBD78F0E86 -:102010000A60EDD77E0E0A64F5D78E0E0A5C05E0E5 -:10202000D890093208320A2AF8D701A406D0086CE1 -:10203000091EE86A092209AEE5D71200016AADEC73 -:1020400010F001B628EF10F001A20FD001B407D0B4 -:102050007F0E096EFF0E086E076E066E25D0800E8D -:10206000096E01D0096A000EF6D701B0FBD7066AE7 -:102070009F0E0A60EBD77E0E0A64F4D79E0E0A5CB0 -:1020800007E0D89009320832073206320A2AF6D71A -:1020900001A40AD0066C071E081E091EE86A072262 -:1020A0000822092209AEDED712007F0E0A6EFF0E4B -:1020B000096E086E076E12007F0E01BEFF0E0A6EDB -:1020C00002D07F0E0A6E800E096E086A076AF3D787 -:1020D00001AE04D0800E0A6E096AF7D70A6A096A4F -:1020E000F4D70350021013101210F8E005BEF0D719 -:1020F00003BE0CD004500510EBE0D8901236133616 -:10210000023603360406D8A00506F2D70550D4E1FE -:102110000428D2E012AE11D07F0E121402E113A0F7 -:102120000CD0132AE86A0222032207E3D880033284 -:1021300002321332042A0428BFE00450C9E013C05D -:1021400007F002C008F00334096E04300A6E093249 -:102150000A9E01BE0A8E5BEF10F009360A3602E3D2 -:102160000184017E06E101800A6A096A086A076A39 -:1021700012000A2803E0D88009321200D8900932F0 -:1021800002E101821200018612000E360F3602E3D0 -:10219000018C017E06E101880F6A0E6A0D6A0C6AE5 -:1021A00012000F2803E0D8800E321200D8900E32B1 -:0621B000EAE1018A1200C1 -:0A21B6000001BB51010A32E0010AEA -:1021C0004DE1BC51090A24E0010A20E00F0A1CE09D -:1021D000010A18E0030A14E0010A10E0070A0CE003 -:1021E000010A08E0030A04E0010A17E1870E11D092 -:1021F0008F0E0FD0970E0DD09F0E0BD0A70E09D0CB -:10220000AF0E07D0B70E05D0BF0E03D0C70E01D05A -:10221000CF0EE66E76EC14F0E5520001010EBB6FB6 -:102220001200CEEC14F000091AE1BEEC14F0F3CF6A -:1022300014F0F4CF15F0BCC0E9FFEA6AE9BEEA6821 -:102240001DD914C0EEFF15C0EDFF090E0001BC5DE5 -:1022500002E1BC6B01D0BC2BBB6B1200BB6B12004C -:1022600094948294050EE66E7C0EE66EEF0EE66E9A -:102270005CEC13F0E552E552E5521200D9CFE6FFCF -:10228000E1CFD9FFFE0EDBCFE9FFEA6AE9BEEA68DB -:10229000F5D8EECF22F0EFCF23F022C008F023C014 -:1022A00009F058EC0EF007C01EF008C01FF009C07E -:1022B00020F00AC021F0D2D807C01AF008C01BF0E5 -:1022C00009C01CF00AC01DF0C0D807C016F008C035 -:1022D00017F009C018F00AC019F0C8D8EFEC0FF0D9 -:1022E00008C0F3FF09C0F4FFE552E7CFD9FF1200A1 -:1022F000B7C008F0B8C009F058EC0EF007C024F0E1 -:1023000008C025F009C026F00AC027F0A7D807C0EA -:1023100020F008C021F009C022F00AC023F095D8AF -:1023200007C01CF008C01DF009C01EF00AC01FF055 -:102330000C6A0D6A200E0E6E400E0F6E2BEC0FF025 -:1023400007C018F008C019F009C01AF00AC01BF045 -:102350008DD807C014F008C015F009C016F00AC0E7 -:1023600017F00C6A0D6A800E0E6E410E0F6EBEECF9 -:102370000EF01EEF10F00001BA3504E2B9519008DA -:10238000010EBA5501E3000C010CD9CFE6FFE1CFF5 -:10239000D9FF050EE126030E79D8DE6ADD6ADECFAD -:1023A00014F0DDCF15F0D890155004E6080E145C3B -:1023B000000E155833E2DFCFE6FF60DFE552020E74 -:1023C000F3CFDBFF030EF4CFDBFF36D804E6E40ED9 -:1023D000145C0C0E155806E2040EDB50020802E2F3 -:1023E000020E54D829D804E6F00E145C0A0E1558D3 -:1023F00006E2040EDB50010802E2010E47D81CD8A9 -:1024000004E6640E145C000E155803E2040EDB6A49 -:1024100005D0DF2A010EC3E3DB2AC1D7040EDB504F -:10242000146E050EE15C02E2E16AE552E16E1450C1 -:10243000E552E7CFD9FF1200020EDBCF14F0030EF6 -:10244000DBCF15F0D890155012000C6AC00E0D6E3F -:102450007F0E0E6E440E0F6E6BEF0EF00C6A0D6A5F -:10246000A00E0E6E400E0F6EBEEF0EF00C6A0D6ADF -:102470007A0E0E6E440E0F6EBEEF0EF0D890E93657 -:10248000EA36A70EE926000EEA221200F36E040EC9 -:06249000F3CFDBFF120098 -:0A249600040120511F0B010801E0B2 -:1024A0001200245101E01200060E215D21E12351AA -:1024B000230A1BE0010A0CE0030A1AE1000161058E -:1024C00017E10001880E716F250E726F090E09D099 -:1024D000000161050DE10001F50E716F250E726FAF -:1024E0001D0E746F756BC00E02D00001800E736FED -:1024F00004012051600BE842E842E842E842E84229 -:10250000010801E0120021510B0A26E0080A19E037 -:10251000090A11E0080A05E00B0A23E0080A21E095 -:1025200012000001DA0E716F000E726F010E746FEF -:10253000756BC10E0FD00001800E736F23C4DAF0EB -:1025400012000001DB0E716F000E726F010E746FCE -:10255000756B810E736F12000001800E736F22C4C1 -:04256000DBF012009A -:0C2564001201000200000008D80405006D -:1025700002000102000109022900010100C0320924 -:102580000400000203000000092111010001221DC6 -:102590000007058103400001070501034000010415 -:1025A0000309042C034D006F00620069006C006594 -:1025B00000200052006F0062006F00740020005085 -:1025C000006C006100740066006F0072006D0026F0 -:1025D00003420061007400740065007200790020FD -:1025E000004D006F006E00690074006F007200699A -:1025F000006E0067000600FF0901A10119012940D2 -:10260000150026FF007508954081001901294091A9 -:0A26100000C076259F25A325CF25E5 -:06261A002A0EF66E080E08 -:10262000F76E000EF86E00010900F550D26F090038 -:10263000F550D36F03E1D26701D03DD00900F550CA -:10264000CD6F0900F550CE6F0900F550CF6F09002E -:102650000900F550E96E0900F550EA6E090009001D -:102660000900F550D06F0900F550D16F090009003D -:10267000F6CFD4F0F7CFD5F0F8CFD6F0CDC0F6FF37 -:10268000CEC0F7FFCFC0F8FF0001D05302E1D15315 -:1026900007E00900F550EE6ED007F8E2D107F9D750 -:1026A000D4C0F6FFD5C0F7FFD6C0F8FF0001D207AF -:0826B000000ED35BBFD712003E -:0826B800D9CFE6FFDACFE6FFFF -:1026C000E1CFD9FFE2CFDAFFC26AC06AFC0EDB407D -:1026D0007F0B3C0BC26EFB0EDBCFE6FFFC0EDB3844 -:1026E000F00B300BE552E710C16EFD0EDB50040D10 -:1026F000F350380B156EFD0EDB380F0B070B146E05 -:10270000FD0EDB50800B14101510C06EFC0EDBAEFE -:1027100003D09E9C9D8CF28CC280E552E5CFDAFFFF -:06272000E7CFD9FF120013 -:0A272600FE0EE3CFE9FFFF0EE3CF44 -:10273000EAFFE9CFF3FFEACFF4FFFB0EE35003E13A -:10274000FC0EE35009E0FB0EE30602E2FC0EE3069A -:10275000FD0EE350EE6EF1D71200FB0EE3CFF6FF55 -:10276000FC0EE3CFF7FFFD0EE3CFF8FFFE0EE3CF45 -:10277000E9FFFF0EE3CFEAFFE9CFF3FFEACFF4FF73 -:10278000EE66FED7ED520900F5CFEFFFEE66FBD700 -:02279000120035 -:0E2792002DD8FD0EDB50A86EA69EA69CA68438 -:1027A000F250800B01E0010E0001DC6FF29E550E2D -:1027B000A76EAA0EA76EA682DC51E8B0F28EE8A042 -:1027C000F29EA6B2FED7A198A694E552E7CFD9FF14 -:1027D00012000DD8A69EA69CA680020EE66EB3EC53 -:1027E00014F0E552A850E552E7CFD9FF1200D9CF37 -:0E27F000E6FFE1CFD9FFFE0EDB50A96E12000E -:0227FE00D9CF31 -:10280000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E38 -:10281000DB507E0BCD6EFD0EDBAC02D0CD8E01D039 -:10282000CD9ECF6ACE6A9E90DBAE02D09D8001D055 -:102830009D90CD80E552E5CFDAFFE7CFD9FF1200BA -:1028400030313A31313A32330020004D617220305C -:102850003720323031300042617474657279204D16 -:102860006F6E69746F72696E6720312E300A4F6C1B -:0E287000697669657220424943484C45520022 -:02287E00D9CFB0 -:10288000E6FFDACFE6FFE1CFD9FFE2CFDAFFE6528B -:10289000E652FC0EDBCFDEFFDBCFDDFF010EDB50AF -:1028A000CF6EDF50CE6EE552E552E552E5CFDAFF4E -:0628B000E7CFD9FF120082 -:0A28B600D9CFE6FFE1CFD9FF000102 -:1028C0000ED8EF50000803E2A6291F0BA66F07D809 -:1028D000FE0EDBCFEFFFE552E7CFD9FF1200A65186 -:0C28E000EA6A860FE96E000EEA22120080 -:0428EC00D9CFE6FF5B -:1028F000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB4012 -:102900007F0B3C0B146EC30EC2141410C26EC28235 -:0C291000E552E5CFDAFFE7CFD9FF120057 -:04291C00FF0EE35077 -:10292000296EEF0E01D0F30EE76EE72E95EF14F04F -:102930000C0E286EE76AE72E9BEF14F0282E9AEF14 -:0A29400014F0292E93EF14F012009A -:06294A0013EE00F023EE85 -:1029500000F0F86A019C0DEC13F0D3EC14F063EC7A -:062960000AF0FBD7120093 -:0A296600FF0EE350E84E12000000DF -:0C29700000D000D000D0E82EFAD71200F2 -:04297C00C450176EBE -:0E298000166AC3501610F36E17C0F4FF120053 -:02298E0000EE59 -:0C29900000F00F0EEE6AEA62FDD71200A4 -:04299C00C250020B18 -:0629A00001E0010E12002F -:0229A60012001D -:0829A800000000000000000027 -:0E29B000000000000000000000000000000019 -:0229BE00000017 -:0E29C000000001000000000000000000000008 -:0229CE00000007 +:1014100005E3C36BC46BC52B000EC623DAEC10F0DA +:101420009E9040EC0EF002E2E16AE552E16EE55278 +:10143000E7CFD9FFE55200EE27F0140EE80403E3EE +:10144000E5CFEDFFFBD700EE13F0140EE80403E345 +:10145000E5CFEDFFFBD7E5CFFAFFE5CFF4FFE5CF12 +:10146000F3FFE5CFF5FFE5CFF7FFE5CFF6FFE5CFDB +:10147000EAFFE5CFE9FFE5CFDAFF1100D8CFE4FFBF +:10148000E0CFE4FFE46EDACFE4FFE2CFDAFFF3CFA0 +:10149000E4FFF4CFE4FFE1DB40EC0EF002E2E16AAE +:1014A000E552E16EE552E7CFD9FFE552E5CFF4FF13 +:1014B000E5CFF3FFE5CFDAFFE550E5CFE0FFE5CF7D +:1014C000D8FF100004D85EEC04F03AD8FCD70F0E19 +:1014D000C112958602D828EF04F0E2DBE65282843E +:1014E00093DB0001D76F070ED75D0EE1E66AE8ECEB +:1014F00013F0E552DF6E000EDF80CADBE66A8DEC8A +:1015000014F0E552DF70C4DBD08EF28EF28C9D8039 +:10151000F50EE66EFEEC13F0E552A9DBFC0E8B1621 +:1015200094160001BD6BBE6BBF6BC06B010EC16F2B +:101530002FEC11F08294E552E552E7CFD9FF12006B +:10154000D9CFE6FFE1CFD9FF090EE1260001C15155 +:1015500001E09FDA200E0001605D03E36D50020B95 +:1015600001E076D20001BF51C01102E1000E08D0A7 +:10157000BFC0E9FFC0C0EAFFEF50800B01E0010EE1 +:10158000000947E10001A651EA6A860FE96E000EE4 +:10159000EA22EF5000083DE20501406B0001C25114 +:1015A000C22B0501416F0501040E426F0001A651D7 +:1015B000EA6A860FE96E000EEA22EFCF43F5400E8D +:1015C000E66E400EE66E050EE66E010EE66E010E4C +:1015D000E66E80EC08F0146E050EE15E1450F3CF59 +:1015E000BFF0F4CFC0F00001A651EA6A860FE96EA1 +:1015F000000EEA22EF6A0001A651000803E2000192 +:10160000A60707D00001A551000803E200011F0E44 +:10161000A66F0001BD51BE1102E1000E08D0BDC091 +:10162000E9FFBEC0EAFFEF50800B01E0010E0009A8 +:1016300001E00ED205010251060A01E164D1040A5B +:1016400017E0030A05E0010A01E0C1D1FF0000D262 +:10165000E66AE8EC13F0E552DF6E000EDB80DFCFC8 +:10166000E6FFE66AC8EC13F0E552E552FF00F0D160 +:101670000001BF51C01102E1000E08D0BFC0E9FF58 +:10168000C0C0EAFFEF50800B01E0010E000901E04D +:1016900039D100C540F50501416B0501030E426FCC +:1016A0000501436B050108510E0A01E1FCD0030A54 +:1016B00001E1F4D0010A01E1D6D0070A01E17ED0B0 +:1016C0000F0A71E0070A64E0010A20E0030A06E05D +:1016D000010A01E0EDD0D7C048F5EDD00501486B17 +:1016E000550E146E280E156E166A14C0E6FF15C04E +:1016F000E6FF16C0E6FF480EE66E050EE66EACECA1 +:1017000013F0176E050EE15E1750D5D00501486B3A +:10171000490E146E280E156E166A14C0E6FF15C029 +:10172000E6FF16C0E6FF480EE66E050EE66EACEC70 +:1017300013F0176E050EE15E1750470E146E280E5B +:10174000156E166A14C0E6FF15C0E6FF16C0E6FF68 +:10175000480EE66E050EE66EACEC13F0176E050E45 +:10176000E15E17503E0E146E280E156E166A14C0F8 +:10177000E6FF15C0E6FF16C0E6FF480EE66E050E52 +:10178000E66EACEC13F0176E050EE15E175093D0C9 +:1017900092CF48F593CF49F594CF4AF595CF4BF5C5 +:1017A00096CF4CF588D080CF48F581CF49F582CFD0 +:1017B0004AF583CF4BF584CF4CF57DD0070EDB6A1D +:1017C000080EDB6A070EDBCF14F0080EDBCF15F036 +:1017D000D890155004E6080E145C000E155842E22D +:1017E000070EDBCFE6FF3DEC11F0E552DE52F3CF02 +:1017F000DEFFF4CFDDFFDD52020E086E096A070E30 +:10180000DBCF0DF0080EDBCF0EF0C1EC0FF006C001 +:10181000E9FF07C0EAFF480EE926050EEA22020E9C +:10182000DBCFEFFF020E086E096A070EDBCF0DF06B +:10183000080EDBCF0EF0C1EC0FF006C0E9FF07C0C9 +:10184000EAFF010EE926000EEA22480EE926050EFF +:10185000EA22010EDBCFEFFF070EDB2A080E01E3C1 +:10186000DB2AB0D728D077EC11F0030E06C0DBFFDF +:10187000040E07C0DBFF050E08C0DBFF060E09C023 +:10188000DBFF060EDBCF48F5050EDBCF49F5040E76 +:10189000DBCF4AF5030EDBCF4BF50DD0BAEC11F0E0 +:1018A0000501486F08D0C4EC11F00501486F03D062 +:1018B0000501020E436F400EE66E400EE66E050E09 +:1018C000E66E010EE66E010EE66E80EC08F0146E18 +:1018D000050EE15E1450F3CFBFF0F4CFC0F0400E20 +:1018E000E66E000EE66E050EE66EE66A010EE66E28 +:1018F00080EC08F0146E050EE15E1450F3CFBDF0DD +:10190000F4CFBEF0A5D005010851030A37E0010A63 +:1019100025E0030A13E0010A01E040D00501095166 +:10192000921205010A51931205010B5194120501FF +:101930000C51951205010D51961235D00501091D66 +:10194000921605010A1D931605010B1D941605013B +:101950000C1D951605010D1D961625D00501091DB6 +:10196000891605010A1D8A1605010B1D8B16050136 +:101970000C1D8C1605010D1D8D1615D00501095184 +:10198000891205010A518A1205010B518B120501BA +:101990000C518C1205010D518D1205D0030EE66E0F +:1019A0005AEC14F0E552400EE66E000EE66E050E9F +:1019B000E66EE66A010EE66E80EC08F0146E050E27 +:1019C000E15E1450F3CFBDF0F4CFBEF041D0000182 +:1019D000BF51C01102E1000E08D0BFC0E9FFC0C076 +:1019E000EAFFEF50800B01E0010E000931E100C574 +:1019F00040F50501416B0501030E426F0501010E23 +:101A0000436F400EE66E400EE66E050EE66E010E6A +:101A1000E66E010EE66E80EC08F0146E050EE15ED7 +:101A20001450F3CFBFF0F4CFC0F0400EE66E000EBE +:101A3000E66E050EE66EE66A010EE66E80EC08F0D4 +:101A4000146E050EE15E1450F3CFBDF0F4CFBEF07E +:101A5000090EE15C02E2E16AE552E16EE552E7CF90 +:101A6000D9FF12000001C951CA110FE1C4EC11F0F5 +:101A7000010A04E0010A04E1827403D0828401D0E7 +:101A80008294320E0001C96FCA6BC907000ECA5B8F +:101A900012000001CB51CC1104E1100ECB6F270EC8 +:101AA000CC6FCB07000ECC5B6DA207D0CB51CC1115 +:101AB0002EE18B728BB213D027D00001605102E16E +:101AC0008B9222D0600502E18B8209D0020E605D0C +:101AD00002E18B8219D0040E605D03E18B928B8052 +:101AE0001200100E605D06E10001CB51CC110FE138 +:101AF0008B720AD0200E605D0AE10001CB51CC113F +:101B000006E18B728BA202D08B9012008B801200A8 +:101B100012001200120012004AEF12F012001E0E04 +:101B2000E66E010EE66E4EEC08F0E552E552400E10 +:101B3000E66E000EE66E050EE66EE66A010EE66ED5 +:101B400080EC08F0146E050EE15E1450F3CFBDF08A +:101B5000F4CFBEF012006D840001080ED86F070E9E +:101B6000D96FD807000ED95BD851D911FAE16D941D +:101B70001200D9CFE6FFE1CFD9FFFD0EDBCF08F091 +:101B8000FE0EDBCF09F0010E081801E1095033E029 +:101B9000E868081802E1E86809182BE0030E081845 +:101BA00001E1095024E0040E081801E109501DE08C +:101BB000020E081801E1095016E0170E081801E19D +:101BC00009500FE0160E081801E1095008E0150E43 +:101BD000081801E1095001E010D0A1DF0FD09EDF0D +:101BE0000DD09ADF0BD096DF09D092DF07D091DFBE +:101BF00005D091DF03D0000001D000D0010E00D04D +:101C0000E552E7CFD9FF12004BD8E652D0B202D04E +:101C1000010E15D0D0B802D0020E11D0D0B002D033 +:101C2000030E0DD0D0B602D0040E09D0FCAE02D007 +:101C3000050E05D0FCAC02D0060E01D0070EDF6EFB +:101C4000D088D086D084D082D080FC9EFC9CDF508F +:101C5000E552E552E7CFD9FF1200E65221D8020E35 +:101C6000E126F350DF6E010EF4CFDBFF1200F00E21 +:101C7000E66ED80EE66E3EEC14F0E552E552120028 +:101C8000DF50F36E010EDB50F46E020EE15C1200C9 +:101C9000DFCFE6FFE66AC8EC13F0E552E55212002A +:0A1CA000D9CFE6FFE1CFD9FF120013 +:061CAA00019E08D0019E1E +:101CB00009AE05D0086C091EE86A0922018E09C028 +:101CC00003F008C002F0136A126A8E0E046E056AF1 +:101CD00070EF10F0016AACEC10F0C4EC10F001B63B +:101CE00054EF10F001A205D001BA54EF10F05BEFF1 +:101CF00010F001BA67EF10F001A005D001B854EF61 +:101D000010F067EF10F001B85BEF10F0056A7F0E7E +:101D10000A24046EE86A05220F50045EE86A055A38 +:101D20001A0E106E0A6A126A136A026A036A0C506B +:101D3000075E0D50085A0E50095A000E0A5A09E75C +:101D40000C5007260D5008220E500922000E0A22C0 +:101D500001D0128AD8900736083609360A36D8904C +:101D60001236133602360336102EE1D7095008100A +:101D70000710D8A4128A70EF10F0016AACEC10F0D2 +:101D8000C4EC10F001B654EF10F001A205D001B878 +:101D900054EF10F05BEF10F001AA05D001B054EF42 +:101DA00010F05BEF10F001B002D001A802D067EF95 +:101DB00010F0056A0F500A24046EE86A05227E0EB0 +:101DC000045EE86A055A126A136A026A036A0E50D0 +:101DD0000902F4CF03F0F3CF02F00D500902F350E3 +:101DE0001326F4500222000E03220E500802F35074 +:101DF0001326F4500222000E03220C500902F35065 +:101E00001226F4501322000E022203220D50080263 +:101E1000F3501226F4501322000E022203220E5019 +:101E20000702F3501226F4501322000E022203225E +:101E30000C500802F4501226000E13220222032234 +:101E40000D500702F4501226000E13220222032224 +:101E500070EF10F00F7E016AACEC10F0C4EC10F0E3 +:101E600001B654EF10F001A20AD001AA03D001BEBE +:101E700054EF10F001A460EF10F05DEF10F001AA34 +:101E800005D001AC60EF10F05DEF10F001A00AD0BA +:101E900001A808D001BE04D001A402D069EF10F05F +:101EA0006DEF10F0126A056A0F500A5C116E10E3B4 +:101EB00007C013F008C002F009C003F00AC010F018 +:101EC0000CC007F00DC008F00EC009F0013A09D0AF +:101ED0000CC013F00DC002F00EC003F00FC010F0E4 +:101EE000116C019E01BC018E10C004F001B09CEF8A +:101EF00010F01A0E11609CEF10F0046A0A6A01A437 +:101F000008D0076C081E091E0A1EE86A082209226A +:101F10000A2201AC08D0136C021E031E041EE86ADC +:101F2000022203220422066A115207E00A3409320F +:101F3000083207320632112EF9D7075013260850FF +:101F40000222095003220A50042206C012F0019E08 +:101F500004AE0BD0126C131E021E031E041EE86A90 +:101F60001322022203220422018E04A006D0D8806C +:101F70000332023213321232102A10C004F070EF12 +:101F800010F009C013F008C012F008500D02F4CF91 +:101F900007F0F3CF06F009500E02F4CF09F0F3CFAB +:101FA00008F00D02F3500726F4500822E86A0922CF +:101FB00012500E02F3500726F4500822E86A092254 +:101FC0000EAEE7EF0FF01250085E1350095A13AE31 +:101FD000000C0D50085E0E50095A000C016AACEC62 +:101FE00010F001B6F8EF0FF001A20ED001B405D049 +:101FF0007F0E096EFF0E086E1FD0800E096E086AF4 +:102000001BD0096A086A18D001B0FBD78F0E0A608E +:10201000EDD77E0E0A64F5D78E0E0A5C05E0D890E7 +:10202000093208320A2AF8D701A406D0086C091E22 +:10203000E86A092209AEE5D71200016AACEC10F09B +:1020400001B627EF10F001A20FD001B407D07F0E28 +:10205000096EFF0E086E076E066E25D0800E096EA3 +:1020600001D0096A000EF6D701B0FBD7066A9F0EB1 +:102070000A60EBD77E0E0A64F4D79E0E0A5C07E076 +:10208000D89009320832073206320A2AF6D701A45C +:102090000AD0066C071E081E091EE86A07220822DD +:1020A000092209AEDED712007F0E0A6EFF0E096EFE +:1020B000086E076E12007F0E01BEFF0E0A6E02D080 +:1020C0007F0E0A6E800E096E086A076AF3D701AEAA +:1020D00004D0800E0A6E096AF7D70A6A096AF4D733 +:1020E0000350021013101210F8E005BEF0D703BE23 +:1020F0000CD004500510EBE0D8901236133602369F +:1021000003360406D8A00506F2D70550D4E104280A +:10211000D2E012AE11D07F0E121402E113A00CD047 +:10212000132AE86A0222032207E3D880033202322C +:102130001332042A0428BFE00450C9E013C007F09A +:1021400002C008F00334096E04300A6E09320A9E98 +:1021500001BE0A8E5AEF10F009360A3602E30184F6 +:10216000017E06E101800A6A096A086A076A1200AC +:102170000A2803E0D88009321200D890093202E11F +:1021800001821200018612000E360F3602E3018C26 +:10219000017E06E101880F6A0E6A0D6A0C6A120060 +:1021A0000F2803E0D8800E321200D8900E32EAE1F8 +:0421B000018A12008E +:0C21B4000001BB51010A32E0010A4DE1BC +:1021C000BC51090A24E0010A20E00F0A1CE0010AC0 +:1021D00018E0030A14E0010A10E0070A0CE0010A03 +:1021E00008E0030A04E0010A17E1870E11D08F0E00 +:1021F0000FD0970E0DD09F0E0BD0A70E09D0AF0EAB +:1022000007D0B70E05D0BF0E03D0C70E01D0CF0E3A +:10221000E66E75EC14F0E5520001010EBB6F120082 +:10222000CDEC14F000091AE1BDEC14F0F3CF14F07A +:10223000F4CF15F0BCC0E9FFEA6AE9BEEA681DD92F +:1022400014C0EEFF15C0EDFF090E0001BC5D02E1F8 +:10225000BC6B01D0BC2BBB6B1200BB6B1200949407 +:102260008294050EE66E7C0EE66EEF0EE66E5BEC7B +:1022700013F0E552E552E5521200D9CFE6FFE1CF67 +:10228000D9FFFE0EDBCFE9FFEA6AE9BEEA68F5D8BE +:10229000EECF22F0EFCF23F022C008F023C009F0E8 +:1022A00057EC0EF007C01EF008C01FF009C020F068 +:1022B0000AC021F0D2D807C01AF008C01BF009C02C +:1022C0001CF00AC01DF0C0D807C016F008C017F0F7 +:1022D00009C018F00AC019F0C8D8EEEC0FF008C019 +:1022E000F3FF09C0F4FFE552E7CFD9FF1200B7C0F2 +:1022F00008F0B8C009F057EC0EF007C024F008C091 +:1023000025F009C026F00AC027F0A7D807C020F0A2 +:1023100008C021F009C022F00AC023F095D807C0F8 +:102320001CF008C01DF009C01EF00AC01FF00C6AA6 +:102330000D6A200E0E6E400E0F6E2AEC0FF007C0D5 +:1023400018F008C019F009C01AF00AC01BF08DD8A7 +:1023500007C014F008C015F009C016F00AC017F045 +:102360000C6A0D6A800E0E6E410E0F6EBDEC0EF003 +:102370001DEF10F00001BA3504E2B9519008010ECA +:10238000BA5501E3000C010CD9CFE6FFE1CFD9FF2C +:10239000050EE126030E79D8DE6ADD6ADECF14F081 +:1023A000DDCF15F0D890155004E6080E145C000E31 +:1023B000155833E2DFCFE6FF60DFE552020EF3CFC0 +:1023C000DBFF030EF4CFDBFF36D804E6E40E145C2B +:1023D0000C0E155806E2040EDB50020802E2020E53 +:1023E00054D829D804E6F00E145C0A0E155806E2FB +:1023F000040EDB50010802E2010E47D81CD804E6A7 +:10240000640E145C000E155803E2040EDB6A05D05E +:10241000DF2A010EC3E3DB2AC1D7040EDB50146EA2 +:10242000050EE15C02E2E16AE552E16E1450E5520C +:10243000E7CFD9FF1200020EDBCF14F0030EDBCF83 +:1024400015F0D890155012000C6AC00E0D6E7F0E5C +:102450000E6E440E0F6E6AEF0EF00C6A0D6AA00E3F +:102460000E6E400E0F6EBDEF0EF00C6A0D6A7A0E06 +:102470000E6E440E0F6EBDEF0EF0D890E936EA36C0 +:10248000A70EE926000EEA221200F36E040EF3CF27 +:04249000DBFF12005C +:0C249400040120511F0B010801E01200A0 +:1024A000245101E01200060E215D21E12351230A8F +:1024B0001BE0010A0CE0030A1AE10001610517E1C3 +:1024C0000001860E716F250E726F090E09D0000192 +:1024D00061050DE10001F30E716F250E726F1D0E87 +:1024E000746F756BC00E02D00001800E736F040113 +:1024F0002051600BE842E842E842E842E842010825 +:1025000001E0120021510B0A26E0080A19E0090A2D +:1025100011E0080A05E00B0A23E0080A21E0120096 +:102520000001DA0E716F000E726F010E746F756B21 +:10253000C10E0FD00001800E736F23C4DAF01200B9 +:102540000001DB0E716F000E726F010E746F756B00 +:10255000810E736F12000001800E736F22C4DBF0D6 +:02256000120067 +:0E2562001201000200000008D804050002006B +:102570000102000109022900010100C03209040022 +:10258000000203000000092111010001221D0007C3 +:102590000581034000010705010340000104030910 +:1025A000042C034D006F00620069006C0065002080 +:1025B0000052006F0062006F007400200050006C39 +:1025C000006100740066006F0072006D0026034217 +:1025D0000061007400740065007200790020004DF5 +:1025E000006F006E00690074006F00720069006E79 +:1025F0000067000600FF0901A1011901294015002B +:1026000026FF00750895408100190129409100C0FE +:0826100074259D25A125CD25AF +:082618002A0EF66E080EF76EA3 +:10262000000EF86E00010900F550D26F0900F55058 +:10263000D36F03E1D26701D03DD00900F550CD6FD3 +:102640000900F550CE6F0900F550CF6F0900090061 +:10265000F550E96E0900F550EA6E0900090009001D +:10266000F550D06F0900F550D16F09000900F6CF81 +:10267000D4F0F7CFD5F0F8CFD6F0CDC0F6FFCEC06E +:10268000F7FFCFC0F8FF0001D05302E1D15307E0BC +:102690000900F550EE6ED007F8E2D107F9D7D4C0A3 +:1026A000F6FFD5C0F7FFD6C0F8FF0001D207000E35 +:0626B000D35BBFD712004E +:0A26B600D9CFE6FFDACFE6FFE1CF4F +:1026C000D9FFE2CFDAFFC26AC06AFC0EDB407F0BA3 +:1026D0003C0BC26EFB0EDBCFE6FFFC0EDB38F00BD3 +:1026E000300BE552E710C16EFD0EDB50040DF350C8 +:1026F000380B156EFD0EDB380F0B070B146EFD0E3D +:10270000DB50800B14101510C06EFC0EDBAE03D036 +:102710009E9C9D8CF28CC280E552E5CFDAFFE7CF1C +:04272000D9FF1200CB +:0C272400FE0EE3CFE9FFFF0EE3CFEAFF5B +:10273000E9CFF3FFEACFF4FFFB0EE35003E1FC0E19 +:10274000E35009E0FB0EE30602E2FC0EE306FD0E99 +:10275000E350EE6EF1D71200FB0EE3CFF6FFFC0E56 +:10276000E3CFF7FFFD0EE3CFF8FFFE0EE3CFE9FF67 +:10277000FF0EE3CFEAFFE9CFF3FFEACFF4FFEE6607 +:10278000FED7ED520900F5CFEFFFEE66FBD7120042 +:102790002DD8FD0EDB50A86EA69EA69CA684F250F6 +:1027A000800B01E0010E0001DC6FF29E550EA76E5A +:1027B000AA0EA76EA682DC51E8B0F28EE8A0F29EC7 +:1027C000A6B2FED7A198A694E552E7CFD9FF120092 +:1027D0000DD8A69EA69CA680020EE66EB2EC14F062 +:1027E000E552A850E552E7CFD9FF1200D9CFE6FF56 +:0C27F000E1CFD9FFFE0EDB50A96E1200F5 +:0427FC00D9CFE6FF4C +:10280000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB50F2 +:102810007E0BCD6EFD0EDBAC02D0CD8E01D0CD9EF9 +:10282000CF6ACE6A9E90DBAE02D09D8001D09D9093 +:0E283000CD80E552E5CFDAFFE7CFD9FF1200E9 +:02283E00323333 +:102840003A31313A34320020004D61722030382064 +:10285000323031300042617474657279204D6F6E90 +:1028600069746F72696E6720312E300A4F6C697619 +:0C28700069657220424943484C45520003 +:04287C00D9CFE6FFCB +:10288000DACFE6FFE1CFD9FFE2CFDAFFE652E65238 +:10289000FC0EDBCFDEFFDBCFDDFF010EDB50CF6EAA +:1028A000DF50CE6EE552E552E552E5CFDAFFE7CFD5 +:0428B000D9FF12003A +:0C28B400D9CFE6FFE1CFD9FF00010ED81C +:1028C000EF50000803E2A6291F0BA66F07D8FE0EE3 +:1028D000DBCFEFFFE552E7CFD9FF1200A651EA6A3E +:0A28E000860FE96E000EEA221200D6 +:0628EA00D9CFE6FFDACFB2 +:1028F000E6FFE1CFD9FFE2CFDAFFFD0EDB407F0B31 +:102900003C0B146EC30EC2141410C26EC282E55288 +:0A291000E5CFDAFFE7CFD9FF120090 +:06291A00FF0EE350296EE0 +:10292000EF0E01D0F30EE76EE72E94EF14F00C0ECD +:10293000286EE76AE72E9AEF14F0282E99EF14F02C +:08294000292E92EF14F01200A1 +:0829480013EE00F023EE00F095 +:10295000F86A019C0CEC13F0D2EC14F062EC0AF073 +:04296000FBD712008F +:0C296400FF0EE350E84E1200000000D00F +:0A29700000D000D0E82EFAD71200C4 +:06297A00C450176E166A3E +:0C298000C3501610F36E17C0F4FF1200D5 +:04298C0000EE00F069 +:0A2990000F0EEE6AEA62FDD7120096 +:06299A00C250020B01E037 +:0429A000010E120012 +:0229A40012001F +:0A29A6000000000000000000000027 +:0C29B0000000000000000000000000001B +:0429BC000000000017 +:0C29C0000100000000000000000000000A +:0429CC000000000007 :1029D00000000000000000000000000000000000F7 -:0F29E000000000000000000000000000000000E8 +:0D29E00000000000000000000000000000EA :00000001FF diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map index dd14bcb..d222b9d 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sun Mar 7 01:11:35 2010 +Linker Map File - Created Mon Mar 8 23:11:53 2010 Section Info Section Type Address Location Size(Bytes) @@ -12,58 +12,58 @@ REMAPPED_HIGH_INTERRUPT_VECTOR code 0x000808 program 0x000006 REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .cinit romdata 0x00082a program 0x000026 .code_usb_device.o code 0x000850 program 0x000b5a - .code_main.o code 0x0013aa program 0x000902 - PROG code 0x001cac program 0x00050a - .code_monitor.o code 0x0021b6 program 0x0002e0 - .code_usb_function_hid.o code 0x002496 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x002564 program 0x0000b6 - _cinit_scn code 0x00261a program 0x00009e - .code_adcopen.o code 0x0026b8 program 0x00006e - STRING code 0x002726 program 0x00006c - .code_eeprom.o code 0x002792 program 0x00006c - .code_t1open.o code 0x0027fe program 0x000042 - .stringtable romdata 0x002840 program 0x00003e - .code_t1write.o code 0x00287e program 0x000038 - .code_error.o code 0x0028b6 program 0x000036 - .code_adcselchconv.o code 0x0028ec program 0x000030 - D10KTCYXCODE code 0x00291c program 0x00002e - _startup_scn code 0x00294a program 0x00001c - D10TCYXCODE code 0x002966 program 0x000016 - .code_adcread.o code 0x00297c program 0x000012 - .code code 0x00298e program 0x00000e - .code_adcbusy.o code 0x00299c program 0x00000a - .code___init.o code 0x0029a6 program 0x000002 - .romdata_adcread.o romdata 0x0029a8 program 0x000000 - .romdata_adcselchconv.o romdata 0x0029a8 program 0x000000 - .romdata_t1open.o romdata 0x0029a8 program 0x000000 - .idata_t1write.o_i romdata 0x0029a8 program 0x000000 - .idata_t1open.o_i romdata 0x0029a8 program 0x000000 - .romdata_t1write.o romdata 0x0029a8 program 0x000000 - .romdata___init.o romdata 0x0029a8 program 0x000000 - .romdata_adcopen.o romdata 0x0029a8 program 0x000000 - .romdata_c018i.o romdata 0x0029a8 program 0x000000 -.idata_usb_descriptors.o_i romdata 0x0029a8 program 0x000000 - .romdata_main.o romdata 0x0029a8 program 0x000000 - .romdata_eeprom.o romdata 0x0029a8 program 0x000000 - .idata_usb_device.o_i romdata 0x0029a8 program 0x000000 - .romdata_usb_device.o romdata 0x0029a8 program 0x000000 -.idata_usb_function_hid.o_i romdata 0x0029a8 program 0x000000 -.romdata_usb_function_hid.o romdata 0x0029a8 program 0x000000 - .romdata_error.o romdata 0x0029a8 program 0x000000 - .idata_monitor.o_i romdata 0x0029a8 program 0x000016 - .romdata_monitor.o romdata 0x0029a8 program 0x000000 - .romdata_adcbusy.o romdata 0x0029a8 program 0x000000 - .idata_main.o_i romdata 0x0029be program 0x000010 - .idata_error.o_i romdata 0x0029ce program 0x000021 - .idata_adcread.o_i romdata 0x0029ef program 0x000000 - .idata_adcselchconv.o_i romdata 0x0029ef program 0x000000 - .idata_adcopen.o_i romdata 0x0029ef program 0x000000 - .idata_eeprom.o_i romdata 0x0029ef program 0x000000 - .idata___init.o_i romdata 0x0029ef program 0x000000 - .idata_adcbusy.o_i romdata 0x0029ef program 0x000000 - .idata_c018i.o_i romdata 0x0029ef program 0x000000 - .code_usb_descriptors.o code 0x0029f0 program 0x000000 - .code_c018i.o code 0x0029f0 program 0x000000 + .code_main.o code 0x0013aa program 0x000900 + PROG code 0x001caa program 0x00050a + .code_monitor.o code 0x0021b4 program 0x0002e0 + .code_usb_function_hid.o code 0x002494 program 0x0000ce +.romdata_usb_descriptors.o romdata 0x002562 program 0x0000b6 + _cinit_scn code 0x002618 program 0x00009e + .code_adcopen.o code 0x0026b6 program 0x00006e + STRING code 0x002724 program 0x00006c + .code_eeprom.o code 0x002790 program 0x00006c + .code_t1open.o code 0x0027fc program 0x000042 + .stringtable romdata 0x00283e program 0x00003e + .code_t1write.o code 0x00287c program 0x000038 + .code_error.o code 0x0028b4 program 0x000036 + .code_adcselchconv.o code 0x0028ea program 0x000030 + D10KTCYXCODE code 0x00291a program 0x00002e + _startup_scn code 0x002948 program 0x00001c + D10TCYXCODE code 0x002964 program 0x000016 + .code_adcread.o code 0x00297a program 0x000012 + .code code 0x00298c program 0x00000e + .code_adcbusy.o code 0x00299a program 0x00000a + .code___init.o code 0x0029a4 program 0x000002 + .romdata_adcread.o romdata 0x0029a6 program 0x000000 + .romdata_adcselchconv.o romdata 0x0029a6 program 0x000000 + .romdata_t1open.o romdata 0x0029a6 program 0x000000 + .idata_t1write.o_i romdata 0x0029a6 program 0x000000 + .idata_t1open.o_i romdata 0x0029a6 program 0x000000 + .romdata_t1write.o romdata 0x0029a6 program 0x000000 + .romdata___init.o romdata 0x0029a6 program 0x000000 + .romdata_adcopen.o romdata 0x0029a6 program 0x000000 + .romdata_c018i.o romdata 0x0029a6 program 0x000000 +.idata_usb_descriptors.o_i romdata 0x0029a6 program 0x000000 + .romdata_main.o romdata 0x0029a6 program 0x000000 + .romdata_eeprom.o romdata 0x0029a6 program 0x000000 + .idata_usb_device.o_i romdata 0x0029a6 program 0x000000 + .romdata_usb_device.o romdata 0x0029a6 program 0x000000 +.idata_usb_function_hid.o_i romdata 0x0029a6 program 0x000000 +.romdata_usb_function_hid.o romdata 0x0029a6 program 0x000000 + .romdata_error.o romdata 0x0029a6 program 0x000000 + .idata_monitor.o_i romdata 0x0029a6 program 0x000016 + .romdata_monitor.o romdata 0x0029a6 program 0x000000 + .romdata_adcbusy.o romdata 0x0029a6 program 0x000000 + .idata_main.o_i romdata 0x0029bc program 0x000010 + .idata_error.o_i romdata 0x0029cc program 0x000021 + .idata_adcread.o_i romdata 0x0029ed program 0x000000 + .idata_adcselchconv.o_i romdata 0x0029ed program 0x000000 + .idata_adcopen.o_i romdata 0x0029ed program 0x000000 + .idata_eeprom.o_i romdata 0x0029ed program 0x000000 + .idata___init.o_i romdata 0x0029ed program 0x000000 + .idata_adcbusy.o_i romdata 0x0029ed program 0x000000 + .idata_c018i.o_i romdata 0x0029ed program 0x000000 + .code_usb_descriptors.o code 0x0029ee program 0x000000 + .code_c018i.o code 0x0029ee program 0x000000 MATH_DATA udata 0x000000 data 0x000014 .tmpdata udata 0x000014 data 0x000014 DELAYDAT2 udata 0x000028 data 0x000001 @@ -114,54 +114,54 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 0x000800 0x000805 0x000808 0x00080d 0x000818 0x00081d - 0x00082a 0x0029ee - 8681 out of 33048 program addresses used, program memory utilization is 26% + 0x00082a 0x0029ec + 8679 out of 33048 program addresses used, program memory utilization is 26% Symbols - Sorted by Name Name Address Location Storage File --------- --------- --------- --------- --------- - BlinkUSBStatus 0x001a94 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - BusyADC 0x00299c program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c - D10K_1 0x002928 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kl 0x002934 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kx 0x002926 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10_1 0x002976 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - D10x 0x00296e program static C:\MCC18\src\traditional\delays\d10tcyx.asm - Delay10KTCYx 0x00291c program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm - Delay10TCYx 0x002966 program extern C:\MCC18\src\traditional\delays\d10tcyx.asm - FLO1632S 0x001cb0 program extern C:\MCC18\src\traditional\math\cast16FP.asm - FLO1632U 0x001cac program extern C:\MCC18\src\traditional\math\cast16FP.asm - FPA32 0x001e58 program extern C:\MCC18\src\traditional\math\addFP.asm - FPD32 0x001cd6 program extern C:\MCC18\src\traditional\math\divFP.asm - FPM32 0x001d7c program extern C:\MCC18\src\traditional\math\mulFP.asm - FPS32 0x001e56 program extern C:\MCC18\src\traditional\math\addFP.asm - FXM1616S 0x001f84 program extern C:\MCC18\src\traditional\math\fxm1616s.asm + BlinkUSBStatus 0x001a92 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + BusyADC 0x00299a program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c + D10K_1 0x002926 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kl 0x002932 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10Kx 0x002924 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm + D10_1 0x002974 program static C:\MCC18\src\traditional\delays\d10tcyx.asm + D10x 0x00296c program static C:\MCC18\src\traditional\delays\d10tcyx.asm + Delay10KTCYx 0x00291a program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm + Delay10TCYx 0x002964 program extern C:\MCC18\src\traditional\delays\d10tcyx.asm + FLO1632S 0x001cae program extern C:\MCC18\src\traditional\math\cast16FP.asm + FLO1632U 0x001caa program extern C:\MCC18\src\traditional\math\cast16FP.asm + FPA32 0x001e56 program extern C:\MCC18\src\traditional\math\addFP.asm + FPD32 0x001cd4 program extern C:\MCC18\src\traditional\math\divFP.asm + FPM32 0x001d7a program extern C:\MCC18\src\traditional\math\mulFP.asm + FPS32 0x001e54 program extern C:\MCC18\src\traditional\math\addFP.asm + FXM1616S 0x001f82 program extern C:\MCC18\src\traditional\math\fxm1616s.asm High_ISR 0x000008 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - INT3216 0x001fde program extern C:\MCC18\src\traditional\math\castFP16.asm - INT3232 0x00203c program extern C:\MCC18\src\traditional\math\castFP32.asm - InitializeSystem 0x0014d0 program static Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + INT3216 0x001fdc program extern C:\MCC18\src\traditional\math\castFP16.asm + INT3232 0x00203a program extern C:\MCC18\src\traditional\math\castFP32.asm + InitializeSystem 0x0014ce program static Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c Low_ISR 0x000018 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - OpenADC 0x0026b8 program extern C:\MCC18\src\pmc_common\ADC\adcopen.c - OpenTimer1 0x0027fe program extern C:\MCC18\src\pmc_common\Timers\t1open.c - ProcessIO 0x001542 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - ReadADC 0x00297c program extern C:\MCC18\src\pmc_common\ADC\adcread.c - ReadEEPROM 0x0027d2 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c + OpenADC 0x0026b6 program extern C:\MCC18\src\pmc_common\ADC\adcopen.c + OpenTimer1 0x0027fc program extern C:\MCC18\src\pmc_common\Timers\t1open.c + ProcessIO 0x001540 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + ReadADC 0x00297a program extern C:\MCC18\src\pmc_common\ADC\adcread.c + ReadEEPROM 0x0027d0 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c Remapped_High_ISR 0x000808 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c Remapped_Low_ISR 0x000818 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - ResetSource 0x001c0a program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - SelChanConvADC 0x0028ec program extern C:\MCC18\src\pmc_common\ADC\adcselchconv.c - TSIGN1616A 0x001fd0 program static C:\MCC18\src\traditional\math\fxm1616s.asm - USBCBCheckOtherReq 0x001b1a program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBErrorHandler 0x001b18 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBInitEP 0x001b20 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBSendResume 0x001b58 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBStdSetDscHandler 0x001b1e program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBSuspend 0x001b12 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBWakeFromSuspend 0x001b14 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCB_SOF_Handler 0x001b16 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCheckHIDRequest 0x002496 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_function_hid.c + ResetSource 0x001c08 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + SelChanConvADC 0x0028ea program extern C:\MCC18\src\pmc_common\ADC\adcselchconv.c + TSIGN1616A 0x001fce program static C:\MCC18\src\traditional\math\fxm1616s.asm + USBCBCheckOtherReq 0x001b18 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBErrorHandler 0x001b16 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBInitEP 0x001b1e program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBSendResume 0x001b56 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBStdSetDscHandler 0x001b1c program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBSuspend 0x001b10 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCBWakeFromSuspend 0x001b12 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCB_SOF_Handler 0x001b14 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + USBCheckHIDRequest 0x002494 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_function_hid.c USBCheckStdRequest 0x000bb2 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c USBClearInterruptFlag 0x001168 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c USBConfigureEndpoint 0x001024 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c @@ -185,105 +185,105 @@ USBPrepareForNextSetupTrf 0x000b6a program extern Z:\home\nicolasd\code USBSuspend 0x000a12 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c USBTransferOnePacket 0x001100 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c USBWakeFromSuspend 0x000a24 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USB_CD_Ptr 0x002612 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c - USB_SD_Ptr 0x002614 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c -USER_USB_CALLBACK_EVENT_HANDLER 0x001b74 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - UserInit 0x0014dc program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - WriteEEPROM 0x002792 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c - WriteTimer1 0x00287e program extern C:\MCC18\src\pmc_common\Timers\t1write.c + USB_CD_Ptr 0x002610 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c + USB_SD_Ptr 0x002612 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c +USER_USB_CALLBACK_EVENT_HANDLER 0x001b72 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + UserInit 0x0014da program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c + WriteEEPROM 0x002790 program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c + WriteTimer1 0x00287c program extern C:\MCC18\src\pmc_common\Timers\t1write.c YourHighPriorityISRCode 0x0013aa program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - YourLowPriorityISRCode 0x00147e program extern Z:\home\nicolasd\code\krobot\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - _2jContinue 0x002746 program static C:\MCC18\src\traditional\stdclib\memset.asm - _3jEnd 0x002750 program static C:\MCC18\src\traditional\stdclib\memset.asm - _D10KTCYXCODE_0010 0x00292c program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - _D10KTCYXCODE_001C 0x002938 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - _D10TCYXCODE_000A 0x002970 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - _D10TCYXCODE_000C 0x002972 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - _D10TCYXCODE_000E 0x002974 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - __FpExit 0x0020b6 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpPack 0x0020e2 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNaN 0x0020aa program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNegInf 0x0020bc program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNegZero 0x0020d4 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnPosInf 0x0020c2 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnPosZero 0x0020dc program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnSignInf 0x0020b8 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnSignZero 0x0020d0 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnW 0x00213a program extern C:\MCC18\src\traditional\math\packFP.asm - __FpUnPackA 0x00215a program extern C:\MCC18\src\traditional\math\UnpackFP.asm - __FpUnPackB 0x00218a program extern C:\MCC18\src\traditional\math\UnpackFP.asm - ___?:_lbl00019 0x001582 program static - ___?:_lbl00020 0x001572 program static - ___?:_lbl00026 0x001630 program static - _... [truncated message content] |
From: Nicolas D. <Ba...@us...> - 2010-03-08 22:09:35
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via a35db5cb7075a815e8b9d6b3d82529886dd5b70c (commit) from d329a635dc981f9c3cfc984f950dc8eaa9a1fbce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a35db5cb7075a815e8b9d6b3d82529886dd5b70c Author: Nicolas Dandrimont <Nic...@cr...> Date: Mon Mar 8 23:05:08 2010 +0100 Make Battery Monitoring card beep at a regular interval - Adds an interrupt function to update the BUZZER variable. ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Battery_Monitoring/Firmware/main.c b/USB_Module/Battery_Monitoring/Firmware/main.c index d420f65..6676c44 100644 --- a/USB_Module/Battery_Monitoring/Firmware/main.c +++ b/USB_Module/Battery_Monitoring/Firmware/main.c @@ -123,6 +123,7 @@ UP ToSendDataBuffer; void BlinkUSBStatus(void); static void InitializeSystem(void); void ProcessIO(void); +void interruptBuzzer(void); void UserInit(void); void YourHighPriorityISRCode(); void YourLowPriorityISRCode(); @@ -234,6 +235,7 @@ char ResetSource(void); } interruptMonitor(); + interruptBuzzer(); // On rtorise l'interruption PIR1bits.TMR1IF = 0; @@ -570,30 +572,6 @@ void ProcessIO(void) { DWORD_VAL dword; int i; - if (buzzer_count == 0) { - switch (getBatteryState()) { - case 0: - // Au moins une cellule n'est pas connect - // /!\ d'autres peuvent e sous le seuil de tension faible - // SIRENE INTERMITTENTE - BUZZER = !BUZZER; - break; - - case 1: - // Au moins une cellule est sous le seuil de tension faible - // SIRENE CONTINUE - BUZZER = 1; - break; - - default: - BUZZER = 0; - } - - buzzer_count = 10000U; - } - - buzzer_count--; - //Blink the LEDs according to the USB device status if(blinkStatusValid) { BlinkUSBStatus(); @@ -761,6 +739,37 @@ void ProcessIO(void) { } }//end ProcessIO +/** + * Fonction d'interruption du buzzer + */ +void interruptBuzzer(void) { + static WORD buzzer_count = 0; + + if (buzzer_count == 0) { + switch (getBatteryState()) { + case 0: + // Au moins une cellule n'est pas connect + // /!\ d'autres peuvent e sous le seuil de tension faible + // SIRENE INTERMITTENTE + BUZZER = !BUZZER; + break; + + case 1: + // Au moins une cellule est sous le seuil de tension faible + // SIRENE CONTINUE + BUZZER = 1; + break; + + default: + BUZZER = 0; + } + + buzzer_count = 50U; + } + + buzzer_count--; +} + /******************************************************************** * Function: void BlinkUSBStatus(void) * diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof index fa2a48b..0aa081e 100644 Binary files a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof and b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.cof differ diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex index 61e1cc2..38cfcff 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.hex @@ -1,13 +1,13 @@ :020000040000FA -:06000000A6EF14F012004F +:06000000A5EF14F0120050 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000A6EF14F0120047 +:06080000A5EF14F0120048 :06080800D5EF09F012001B -:060818003EEF0AF01200A1 +:060818003FEF0AF01200A0 :06082A000300CE290000CE -:100830008600000021000000C0290000BD0000006B -:100840000E000000AA290000A7000000160000000A +:100830008600000021000000BE290000BD0000006D +:1008400010000000A8290000A7000000160000000A :1008500027EC09F06A6A686A5AEC09F06D8C6E6AD6 :100860000AEC09F06D9CDF6A3BEC09F010E2DF5006 :10087000040DF3CFE9FFF4CFEAFF000EE926040EE2 @@ -86,11 +86,11 @@ :100D00005BDA880EEF6EDF7457DAC80EEF6E040EF2 :100D1000E15C02E2E16AE552E16E57D2800E040125 :100D2000205D3CE10001C00E736F04012351030AF2 -:100D30001EE0010A09E0030A2FE10001660E716F4F -:100D4000250E726F120E22D0C3DA140EF626260E6E +:100D30001EE0010A09E0030A2FE10001640E716F51 +:100D4000250E726F120E22D0C3DA120EF626260E70 :100D5000A2DA020E0001F76A7125F66E7251F722CF :100D60000900F5CF74F00A00F5CF75F01200030EFC -:100D7000225D0FE2ADDA160EF626260E8CDA71C071 +:100D7000225D0FE2ADDA140EF626260E8CDA71C073 :100D8000F6FF72C0F7FF0800F5500001746F756B35 :100D900012000001736B12000001736B120011DA74 :100DA0000401286B296B20511F0B020A11E0030A72 @@ -185,8 +185,8 @@ :101330001200680EE66E0F0EE66E16DFE552E552FD :10134000E552120049DF670EE926000E120044DF65 :101350006B0EE926000E1200D9CFE6FFE1CFD9FFD0 -:101360001200E66E94EC13F0146E050EE15E14505C -:101370001200BBEC0DF0146E060EE15E145012006C +:101360001200E66E93EC13F0146E050EE15E14505D +:101370001200BAEC0DF0146E060EE15E145012006D :10138000200EEE6E040EED6E120065C0E9FF66C021 :10139000EAFF120028DFC4DFC0EF09F004DFC0DF7E :0A13A0002AEF09F0F6DEE9EF08F08D @@ -195,374 +195,377 @@ :1013C000E4FFF5CFE4FFF3CFE4FFF4CFE4FFFACF7F :1013D000E4FF00EE00F0140EE80403E3EECFE4FFB8 :1013E000FBD700EE14F0140EE80403E3EECFE4FFA5 -:1013F000FBD72FEC0EF09EA014D039EC0EF00A0EA5 +:1013F000FBD72EEC0EF09EA015D038EC0EF00A0EA6 :101400000001C327000EC423E80EC35D030EC459B8 -:1014100005E3C36BC46BC52B000EC623DCEC10F0D8 -:101420009E9042EC0EF002E2E16AE552E16EE55276 -:10143000E7CFD9FFE55200EE27F0140EE80403E3EE -:10144000E5CFEDFFFBD700EE13F0140EE80403E345 -:10145000E5CFEDFFFBD7E5CFFAFFE5CFF4FFE5CF12 -:10146000F3FFE5CFF5FFE5CFF7FFE5CFF6FFE5CFDB -:10147000EAFFE5CFE9FFE5CFDAFF1100D8CFE4FFBF -:10148000E0CFE4FFE46EDACFE4FFE2CFDAFFF3CFA0 -:10149000E4FFF4CFE4FFE3DB42EC0EF002E2E16AAA -:1014A000E552E16EE552E7CFD9FFE552E5CFF4FF13 -:1014B000E5CFF3FFE5CFDAFFE550E5CFE0FFE5CF7D -:1014C000D8FF100004D85EEC04F03AD8FCD70F0E19 -:1014D000C112958602D828EF04F0E4DBE65282843C -:1014E00095DB0001D56F070ED55D0EE1E66AEAECEB -:1014F00013F0E552DF6E000EDF80CCDBE66A8FEC86 -:1015000014F0E552DF70C6DBD08EF28EF28C9D8037 -:10151000F50EE66E00EC14F0E552ABDBFC0E8B161C -:1015200094160001BD6BBE6BBF6BC06B010EC16F2B -:1015300031EC11F08294E552E552E7CFD9FF120069 -:10154000D9CFE6FFE1CFD9FF090EE1260001C7514F -:10155000C81111E1C6EC11F0010A05E0010A01E031 -:1015600004D0827403D0828401D082940001100ED2 -:10157000C76F270EC86F0001C707000EC85B0001C8 -:10158000C15101E088DA200E0001605D03E36D5077 -:10159000020B01E076D20001BF51C01102E1000E42 -:1015A00008D0BFC0E9FFC0C0EAFFEF50800B01E0E8 -:1015B000010E000947E10001A651EA6A860FE96EB3 -:1015C000000EEA22EF5000083DE20501406B0001E9 -:1015D000C251C22B0501416F0501040E426F00018B -:1015E000A651EA6A860FE96E000EEA22EFCF43F5B4 -:1015F000400EE66E400EE66E050EE66E010EE66EDD -:10160000010EE66E80EC08F0146E050EE15E1450DB -:10161000F3CFBFF0F4CFC0F00001A651EA6A860F05 -:10162000E96E000EEA22EF6A0001A651000803E20B -:101630000001A60707D00001A551000803E2000140 -:101640001F0EA66F0001BD51BE1102E1000E08D0B1 -:10165000BDC0E9FFBEC0EAFFEF50800B01E0010E04 -:10166000000901E00ED205010251060A01E164D130 -:10167000040A17E0030A05E0010A01E0C1D1FF00F6 -:1016800000D2E66AEAEC13F0E552DF6E000EDB8072 -:10169000DFCFE6FFE66ACAEC13F0E552E552FF0041 -:1016A000F0D10001BF51C01102E1000E08D0BFC04F -:1016B000E9FFC0C0EAFFEF50800B01E0010E000916 -:1016C00001E039D100C540F50501416B0501030E6C -:1016D000426F0501436B050108510E0A01E1FCD080 -:1016E000030A01E1F4D0010A01E1D6D0070A01E1C1 -:1016F0007ED00F0A71E0070A64E0010A20E0030AC5 -:1017000006E0010A01E0EDD0D5C048F5EDD00501B5 -:10171000486B590E146E280E156E166A14C0E6FF3B +:1014100005E3C36BC46BC52B000EC623DBEC10F0D9 +:1014200022DB9E9041EC0EF002E2E16AE552E16EB1 +:10143000E552E7CFD9FFE55200EE27F0140EE8049D +:1014400003E3E5CFEDFFFBD700EE13F0140EE80445 +:1014500003E3E5CFEDFFFBD7E5CFFAFFE5CFF4FFE0 +:10146000E5CFF3FFE5CFF5FFE5CFF7FFE5CFF6FFDB +:10147000E5CFEAFFE5CFE9FFE5CFDAFF1100D8CFEE +:10148000E4FFE0CFE4FFE46EDACFE4FFE2CFDAFF7F +:10149000F3CFE4FFF4CFE4FFE1DB41EC0EF002E236 +:1014A000E16AE552E16EE552E7CFD9FFE552E5CFBB +:1014B000F4FFE5CFF3FFE5CFDAFFE550E5CFE0FF3E +:1014C000E5CFD8FF100004D85EEC04F03AD8FCD782 +:1014D0000F0EC112958602D828EF04F0E2DBE65227 +:1014E000828493DB0001D76F070ED75D0EE1E66AB9 +:1014F000E9EC13F0E552DF6E000EDF80CADBE66A2E +:101500008EEC14F0E552DF70C4DBD08EF28EF28CDC +:101510009D80F50EE66EFFEC13F0E552A9DBFC0EA4 +:101520008B1694160001BD6BBE6BBF6BC06B010EBA +:10153000C16F30EC11F08294E552E552E7CFD9FF4C +:101540001200D9CFE6FFE1CFD9FF090EE126000155 +:10155000C15101E09FDA200E0001605D03E36D5090 +:10156000020B01E076D20001BF51C01102E1000E72 +:1015700008D0BFC0E9FFC0C0EAFFEF50800B01E018 +:10158000010E000947E10001A651EA6A860FE96EE3 +:10159000000EEA22EF5000083DE20501406B000119 +:1015A000C251C22B0501416F0501040E426F0001BB +:1015B000A651EA6A860FE96E000EEA22EFCF43F5E4 +:1015C000400EE66E400EE66E050EE66E010EE66E0D +:1015D000010EE66E80EC08F0146E050EE15E14500C +:1015E000F3CFBFF0F4CFC0F00001A651EA6A860F36 +:1015F000E96E000EEA22EF6A0001A651000803E23C +:101600000001A60707D00001A551000803E2000170 +:101610001F0EA66F0001BD51BE1102E1000E08D0E1 +:10162000BDC0E9FFBEC0EAFFEF50800B01E0010E34 +:10163000000901E00ED205010251060A01E164D160 +:10164000040A17E0030A05E0010A01E0C1D1FF0026 +:1016500000D2E66AE9EC13F0E552DF6E000EDB80A3 +:10166000DFCFE6FFE66AC9EC13F0E552E552FF0072 +:10167000F0D10001BF51C01102E1000E08D0BFC07F +:10168000E9FFC0C0EAFFEF50800B01E0010E000946 +:1016900001E039D100C540F50501416B0501030E9C +:1016A000426F0501436B050108510E0A01E1FCD0B0 +:1016B000030A01E1F4D0010A01E1D6D0070A01E1F1 +:1016C0007ED00F0A71E0070A64E0010A20E0030AF5 +:1016D00006E0010A01E0EDD0D7C048F5EDD00501E4 +:1016E000486B570E146E280E156E166A14C0E6FF6E +:1016F00015C0E6FF16C0E6FF480EE66E050EE66E64 +:10170000ADEC13F0176E050EE15E1750D5D0050154 +:10171000486B4B0E146E280E156E166A14C0E6FF49 :1017200015C0E6FF16C0E6FF480EE66E050EE66E33 -:10173000AEEC13F0176E050EE15E1750D5D0050123 -:10174000486B4D0E146E280E156E166A14C0E6FF17 -:1017500015C0E6FF16C0E6FF480EE66E050EE66E03 -:10176000AEEC13F0176E050EE15E17504B0E146EC3 -:10177000280E156E166A14C0E6FF15C0E6FF16C0E7 -:10178000E6FF480EE66E050EE66EAEEC13F0176E41 -:10179000050EE15E1750420E146E280E156E166A85 -:1017A00014C0E6FF15C0E6FF16C0E6FF480EE66E61 -:1017B000050EE66EAEEC13F0176E050EE15E1750E7 -:1017C00093D092CF48F593CF49F594CF4AF595CF72 -:1017D0004BF596CF4CF588D080CF48F581CF49F5B1 -:1017E00082CF4AF583CF4BF584CF4CF57DD0070EE1 -:1017F000DB6A080EDB6A070EDBCF14F0080EDBCFC6 -:1018000015F0D890155004E6080E145C000E15581B -:1018100042E2070EDBCFE6FF3FEC11F0E552DE526D -:10182000F3CFDEFFF4CFDDFFDD52020E086E096A52 -:10183000070EDBCF0DF0080EDBCF0EF0C3EC0FF080 -:1018400006C0E9FF07C0EAFF480EE926050EEA22B6 -:10185000020EDBCFEFFF020E086E096A070EDBCF28 -:101860000DF0080EDBCF0EF0C3EC0FF006C0E9FF61 -:1018700007C0EAFF010EE926000EEA22480EE9261B -:10188000050EEA22010EDBCFEFFF070EDB2A080E62 -:1018900001E3DB2AB0D728D079EC11F0030E06C0A3 -:1018A000DBFF040E07C0DBFF050E08C0DBFF060EE2 -:1018B00009C0DBFF060EDBCF48F5050EDBCF49F58F -:1018C000040EDBCF4AF5030EDBCF4BF50DD0BCEC9D -:1018D00011F00501486F08D0C6EC11F00501486F02 -:1018E00003D00501020E436F400EE66E400EE66E19 -:1018F000050EE66E010EE66E010EE66E80EC08F057 -:10190000146E050EE15E1450F3CFBFF0F4CFC0F0BB -:10191000400EE66E000EE66E050EE66EE66A010EFD -:10192000E66E80EC08F0146E050EE15E1450F3CF05 -:10193000BDF0F4CFBEF0A5D005010851030A37E091 -:10194000010A25E0030A13E0010A01E040D0050185 -:101950000951921205010A51931205010B5194127B -:1019600005010C51951205010D51961235D0050156 -:10197000091D921605010A1D931605010B1D9416EB -:1019800005010C1D951605010D1D961625D00501A6 -:10199000091D891605010A1D8A1605010B1D8B16E6 -:1019A00005010C1D8C1605010D1D8D1615D00501A8 -:1019B0000951891205010A518A1205010B518B1236 -:1019C00005010C518C1205010D518D1205D0030E2D -:1019D000E66E5CEC14F0E552400EE66E000EE66E2C -:1019E000050EE66EE66A010EE66E80EC08F0146EF7 -:1019F000050EE15E1450F3CFBDF0F4CFBEF041D040 -:101A00000001BF51C01102E1000E08D0BFC0E9FFC4 -:101A1000C0C0EAFFEF50800B01E0010E000931E188 -:101A200000C540F50501416B0501030E426F05013C -:101A3000010E436F400EE66E400EE66E050EE66E3A -:101A4000010EE66E010EE66E80EC08F0146E050ED7 -:101A5000E15E1450F3CFBFF0F4CFC0F0400EE66E5D -:101A6000000EE66E050EE66EE66A010EE66E80EC8E -:101A700008F0146E050EE15E1450F3CFBDF0F4CF04 -:101A8000BEF0090EE15C02E2E16AE552E16EE55268 -:101A9000E7CFD9FF12000001C951CA1104E1100EAD -:101AA000C96F270ECA6FC907000ECA5B6DA207D0A7 -:101AB000C951CA112EE18B728BB213D027D000010D -:101AC000605102E18B9222D0600502E18B8209D045 -:101AD000020E605D02E18B8219D0040E605D03E1AD -:101AE0008B928B801200100E605D06E10001C951DF -:101AF000CA110FE18B720AD0200E605D0AE100016D -:101B0000C951CA1106E18B728BA202D08B901200D0 -:101B10008B80120012001200120012004CEF12F023 -:101B200012001E0EE66E010EE66E4EEC08F0E55257 -:101B3000E552400EE66E000EE66E050EE66EE66AB3 -:101B4000010EE66E80EC08F0146E050EE15E145096 -:101B5000F3CFBDF0F4CFBEF012006D840001080E8B -:101B6000D66F070ED76FD607000ED75BD651D711A9 -:101B7000FAE16D941200D9CFE6FFE1CFD9FFFD0E57 -:101B8000DBCF08F0FE0EDBCF09F0010E081801E1F3 -:101B9000095033E0E868081802E1E86809182BE00A -:101BA000030E081801E1095024E0040E081801E1B1 -:101BB00009501DE0020E081801E1095016E0170E49 -:101BC000081801E109500FE0160E081801E109504C -:101BD00008E0150E081801E1095001E010D0A1DF5E -:101BE0000FD09EDF0DD09ADF0BD096DF09D092DFA9 -:101BF00007D091DF05D091DF03D0000001D000D0E5 -:101C0000010E00D0E552E7CFD9FF12004BD8E652C3 -:101C1000D0B202D0010E15D0D0B802D0020E11D031 -:101C2000D0B002D0030E0DD0D0B602D0040E09D031 -:101C3000FCAE02D0050E05D0FCAC02D0060E01D0E1 -:101C4000070EDF6ED088D086D084D082D080FC9EF4 -:101C5000FC9CDF50E552E552E7CFD9FF1200E65277 -:101C600021D8020EE126F350DF6E010EF4CFDBFF28 -:101C70001200F00EE66ED80EE66E40EC14F0E5525F -:101C8000E5521200DF50F36E010EDB50F46E020ECF -:101C9000E15C1200DFCFE6FFE66ACAEC13F0E55222 -:0E1CA000E5521200D9CFE6FFE1CFD9FF1200C6 -:021CAE00019E95 -:101CB00008D0019E09AE05D0086C091EE86A092209 -:101CC000018E09C003F008C002F0136A126A8E0E7A -:101CD000046E056A72EF10F0016AAEEC10F0C6EC0B -:101CE00010F001B656EF10F001A205D001BA56EF80 -:101CF00010F05DEF10F001BA69EF10F001A005D00F -:101D000001B856EF10F069EF10F001B85DEF10F078 -:101D1000056A7F0E0A24046EE86A05220F50045EED -:101D2000E86A055A1A0E106E0A6A126A136A026A83 -:101D3000036A0C50075E0D50085A0E50095A000EE7 -:101D40000A5A09E70C5007260D5008220E500922A6 -:101D5000000E0A2201D0128AD890073608360936BA -:101D60000A36D8901236133602360336102EE1D7D3 -:101D7000095008100710D8A4128A72EF10F0016AF7 -:101D8000AEEC10F0C6EC10F001B656EF10F001A268 -:101D900005D001B856EF10F05DEF10F001AA05D0A4 -:101DA00001B056EF10F05DEF10F001B002D001A8C5 -:101DB00002D069EF10F0056A0F500A24046EE86A39 -:101DC00005227E0E045EE86A055A126A136A026AE8 -:101DD000036A0E500902F4CF03F0F3CF02F00D5066 -:101DE0000902F3501326F4500222000E03220E5073 -:101DF0000802F3501326F4500222000E03220C5066 -:101E00000902F3501226F4501322000E022203227C -:101E10000D500802F3501226F4501322000E022235 -:101E200003220E500702F3501226F4501322000E24 -:101E3000022203220C500802F4501226000E132234 -:101E4000022203220D500702F4501226000E132224 -:101E50000222032272EF10F00F7E016AAEEC10F046 -:101E6000C6EC10F001B656EF10F001A20AD001AA9C -:101E700003D001BE56EF10F001A462EF10F05FEF47 -:101E800010F001AA05D001AC62EF10F05FEF10F086 -:101E900001A00AD001A808D001BE04D001A402D03C -:101EA0006BEF10F06FEF10F0126A056A0F500A5CCA -:101EB000116E10E307C013F008C002F009C003F070 -:101EC0000AC010F00CC007F00DC008F00EC009F0F9 -:101ED000013A09D00CC013F00DC002F00EC003F09F -:101EE0000FC010F0116C019E01BC018E10C004F0F7 -:101EF00001B09EEF10F01A0E11609EEF10F0046A10 -:101F00000A6A01A408D0076C081E091E0A1EE86AA6 -:101F1000082209220A2201AC08D0136C021E031EFB -:101F2000041EE86A022203220422066A115207E014 -:101F30000A340932083207320632112EF9D7075017 -:101F4000132608500222095003220A50042206C018 -:101F500012F0019E04AE0BD0126C131E021E031E63 -:101F6000041EE86A1322022203220422018E04A026 -:101F700006D0D8800332023213321232102A10C037 -:101F800004F072EF10F009C013F008C012F008500E -:101F90000D02F4CF07F0F3CF06F009500E02F4CF94 -:101FA00009F0F3CF08F00D02F3500726F450082291 -:101FB000E86A092212500E02F3500726F450082254 -:101FC000E86A09220EAEE9EF0FF01250085E1350D6 -:101FD000095A13AE000C0D50085E0E50095A000C41 -:101FE000016AAEEC10F001B6FAEF0FF001A20ED0CC -:101FF00001B405D07F0E096EFF0E086E1FD0800E53 -:10200000096E086A1BD0096A086A18D001B0FBD7AC -:102010008F0E0A60EDD77E0E0A64F5D78E0E0A5C2D -:1020200005E0D890093208320A2AF8D701A406D070 -:10203000086C091EE86A092209AEE5D71200016A98 -:10204000AEEC10F001B629EF10F001A20FD001B4F0 -:1020500007D07F0E096EFF0E086E076E066E25D044 -:10206000800E096E01D0096A000EF6D701B0FBD7C9 -:10207000066A9F0E0A60EBD77E0E0A64F4D79E0EA6 -:102080000A5C07E0D89009320832073206320A2A81 -:10209000F6D701A40AD0066C071E081E091EE86ABE -:1020A00007220822092209AEDED712007F0E0A6E2F -:1020B000FF0E096E086E076E12007F0E01BEFF0E46 -:1020C0000A6E02D07F0E0A6E800E096E086A076AD9 -:1020D000F3D701AE04D0800E0A6E096AF7D70A6AF8 -:1020E000096AF4D70350021013101210F8E005BE6D -:1020F000F0D703BE0CD004500510EBE0D890123698 -:102100001336023603360406D8A00506F2D705506A -:10211000D4E10428D2E012AE11D07F0E121402E1F5 -:1021200013A00CD0132AE86A0222032207E3D88006 -:10213000033202321332042A0428BFE00450C9E0FB -:1021400013C007F002C008F00334096E04300A6EB1 -:1021500009320A9E01BE0A8E5CEF10F009360A367B -:1021600002E30184017E06E101800A6A096A086AC5 -:10217000076A12000A2803E0D88009321200D890BA -:10218000093202E101821200018612000E360F367A -:1021900002E3018C017E06E101880F6A0E6A0D6A76 -:1021A0000C6A12000F2803E0D8800E321200D8907B -:0821B0000E32EAE1018A12007F -:0821B8000001BB51010A32E0F5 -:1021C000010A4DE1BC51090A24E0010A20E00F0A8E -:1021D0001CE0010A18E0030A14E0010A10E0070AF3 -:1021E0000CE0010A08E0030A04E0010A17E1870E87 -:1021F00011D08F0E0FD0970E0DD09F0E0BD0A70EC3 -:1022000009D0AF0E07D0B70E05D0BF0E03D0C70E52 -:1022100001D0CF0EE66E77EC14F0E5520001010E0E -:10222000BB6F1200CFEC14F000091AE1BFEC14F000 -:10223000F3CF14F0F4CF15F0BCC0E9FFEA6AE9BEB1 -:10224000EA681DD914C0EEFF15C0EDFF090E0001AC -:10225000BC5D02E1BC6B01D0BC2BBB6B1200BB6B45 -:10226000120094948294050EE66E7C0EE66EEF0EDC -:10227000E66E5DEC13F0E552E552E5521200D9CF5F -:10228000E6FFE1CFD9FFFE0EDBCFE9FFEA6AE9BE48 -:10229000EA68F5D8EECF22F0EFCF23F022C008F0A5 -:1022A00023C009F059EC0EF007C01EF008C01FF063 -:1022B00009C020F00AC021F0D2D807C01AF008C027 -:1022C0001BF009C01CF00AC01DF0C0D807C016F0F2 -:1022D00008C017F009C018F00AC019F0C8D8F0EC0F -:1022E0000FF008C0F3FF09C0F4FFE552E7CFD9FFB4 -:1022F0001200B7C008F0B8C009F059EC0EF007C0E2 -:1023000024F008C025F009C026F00AC027F0A7D89D -:1023100007C020F008C021F009C022F00AC023F055 -:1023200095D807C01CF008C01DF009C01EF00AC0F7 -:102330001FF00C6A0D6A200E0E6E400E0F6E2CEC14 -:102340000FF007C018F008C019F009C01AF00AC051 -:102350001BF08DD807C014F008C015F009C016F0A6 -:102360000AC017F00C6A0D6A800E0E6E410E0F6ED9 -:10237000BFEC0EF01FEF10F00001BA3504E2B951C6 -:102380009008010EBA5501E3000C010CD9CFE6FF0D -:10239000E1CFD9FF050EE126030E79D8DE6ADD6AAA -:1023A000DECF14F0DDCF15F0D890155004E6080EFE -:1023B000145C000E155833E2DFCFE6FF60DFE55214 -:1023C000020EF3CFDBFF030EF4CFDBFF36D804E6BB -:1023D000E40E145C0C0E155806E2040EDB500208E5 -:1023E00002E2020E54D829D804E6F00E145C0A0E5C -:1023F000155806E2040EDB50010802E2010E47D830 -:102400001CD804E6640E145C000E155803E2040E9A -:10241000DB6A05D0DF2A010EC3E3DB2AC1D7040E35 -:10242000DB50146E050EE15C02E2E16AE552E16EFA -:102430001450E552E7CFD9FF1200020EDBCF14F0A3 -:10244000030EDBCF15F0D890155012000C6AC00EA9 -:102450000D6E7F0E0E6E440E0F6E6CEF0EF00C6A5A -:102460000D6AA00E0E6E400E0F6EBFEF0EF00C6ADE -:102470000D6A7A0E0E6E440E0F6EBFEF0EF0D890FE -:10248000E936EA36A70EE926000EEA221200F36EBC -:08249000040EF3CFDBFF120084 -:08249800040120511F0B010893 -:1024A00001E01200245101E01200060E215D21E13D -:1024B0002351230A1BE0010A0CE0030A1AE1000180 -:1024C000610517E100018A0E716F250E726F090E0A -:1024D00009D0000161050DE10001F70E716F250EB5 -:1024E000726F1D0E746F756BC00E02D00001800EEE -:1024F000736F04012051600BE842E842E842E84271 -:10250000E842010801E0120021510B0A26E0080A06 -:1025100019E0090A11E0080A05E00B0A23E0080A9D -:1025200021E012000001D80E716F000E726F010ED3 -:10253000746F756BC10E0FD00001800E736F23C4D2 -:10254000D8F012000001D90E716F000E726F010EEB -:10255000746F756B810E736F12000001800E736FC4 -:0625600022C4D9F01200B4 -:0A2566001201000200000008D80472 -:10257000050002000102000109022900010100C05A -:1025800032090400000203000000092111010001CA -:10259000221D0007058103400001070501034000DB -:1025A00001040309042C034D006F00620069006CF4 -:1025B000006500200052006F0062006F0074002070 -:1025C0000050006C006100740066006F0072006DC6 -:1025D00000260342006100740074006500720079F7 -:1025E0000020004D006F006E00690074006F0072E3 -:1025F0000069006E0067000600FF0901A1011901D2 -:102600002940150026FF0075089540810019012911 -:0C261000409100C07825A125A525D1250A -:04261C002A0EF66E1E -:10262000080EF76E000EF86E00010900F550D06F2D -:102630000900F550D16F03E1D06701D03DD009000A -:10264000F550CB6F0900F550CC6F0900F550CD6FF8 -:1026500009000900F550E96E0900F550EA6E09001D -:1026600009000900F550CE6F0900F550CF6F090041 -:102670000900F6CFD2F0F7CFD3F0F8CFD4F0CBC02B -:10268000F6FFCCC0F7FFCDC0F8FF0001CE5302E14A -:10269000CF5307E00900F550EE6ECE07F8E2CF0702 -:1026A000F9D7D2C0F6FFD3C0F7FFD4C0F8FF0001BE -:0A26B000D007000ED15BBFD7120067 -:0626BA00D9CFE6FFDACFE4 -:1026C000E6FFE1CFD9FFE2CFDAFFC26AC06AFC0EB3 -:1026D000DB407F0B3C0BC26EFB0EDBCFE6FFFC0E3C -:1026E000DB38F00B300BE552E710C16EFD0EDB500E -:1026F000040DF350380B156EFD0EDB380F0B070B76 -:10270000146EFD0EDB50800B14101510C06EFC0E05 -:10271000DBAE03D09E9C9D8CF28CC280E552E5CF4F -:08272000DAFFE7CFD9FF120038 -:08272800FE0EE3CFE9FFFF0EF6 -:10273000E3CFEAFFE9CFF3FFEACFF4FFFB0EE3506C -:1027400003E1FC0EE35009E0FB0EE30602E2FC0E9F -:10275000E306FD0EE350EE6EF1D71200FB0EE3CF61 -:10276000F6FFFC0EE3CFF7FFFD0EE3CFF8FFFE0E02 -:10277000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFB4 -:10278000F4FFEE66FED7ED520900F5CFEFFFEE66DF -:04279000FBD7120061 -:0C2794002DD8FD0EDB50A86EA69EA69C62 -:1027A000A684F250800B01E0010E0001DA6FF29E68 -:1027B000550EA76EAA0EA76EA682DA51E8B0F28E69 -:1027C000E8A0F29EA6B2FED7A198A694E552E7CF64 -:1027D000D9FF12000DD8A69EA69CA680020EE66E1A -:1027E000B4EC14F0E552A850E552E7CFD9FF12003F -:1027F000D9CFE6FFE1CFD9FFFE0EDB50A96E120064 -:10280000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF9B -:10281000FD0EDB507E0BCD6EFD0EDBAC02D0CD8EFF -:1028200001D0CD9ECF6ACE6A9E90DBAE02D09D8055 -:1028300001D09D90CD80E552E5CFDAFFE7CFD9FFFB -:02284000120084 -:0E28420031343A35303A35300020004F63749F -:102850002031382032303039004261747465727929 -:10286000204D6F6E69746F72696E6720312E300A69 -:102870004F6C697669657220424943484C45520065 -:10288000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF1B -:10289000E652E652FC0EDBCFDEFFDBCFDDFF010EA2 -:1028A000DB50CF6EDF50CE6EE552E552E552E5CFFC -:0828B000DAFFE7CFD9FF1200A7 -:0828B800D9CFE6FFE1CFD9FF03 -:1028C00000010ED8EF50000803E2A6291F0BA66FE7 -:1028D00007D8FE0EDBCFEFFFE552E7CFD9FF12009E -:0E28E000A651EA6A860FE96E000EEA22120087 -:0228EE00D9CF40 -:1028F000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E48 -:10290000DB407F0B3C0B146EC30EC2141410C26E5E -:0E291000C282E552E5CFDAFFE7CFD9FF120011 -:02291E00FF0EAA -:10292000E350296EEF0E01D0F30EE76EE72E96EF1F -:1029300014F00C0E286EE76AE72E9CEF14F0282E98 -:0C2940009BEF14F0292E94EF14F012000D -:04294C0013EE00F096 -:1029500023EE00F0F86A019C0EEC13F0D4EC14F0B6 -:0829600062EC0AF0FBD7120043 -:08296800FF0EE350E84E1200DF -:0E297000000000D000D000D0E82EFAD71200F0 -:02297E00C45043 -:10298000176E166AC3501610F36E17C0F4FF1200CC -:0E29900000EE00F00F0EEE6AEA62FDD71200B4 -:02299E00C25025 -:0829A000020B01E0010E120020 -:0229A80012001B -:0629AA0000000000000027 -:1029B0000000000000000000000000000000000017 -:0E29C000000000000100000000000000000008 +:10173000ADEC13F0176E050EE15E1750490E146EF6 +:10174000280E156E166A14C0E6FF15C0E6FF16C017 +:10175000E6FF480EE66E050EE66EADEC13F0176E72 +:10176000050EE15E1750400E146E280E156E166AB7 +:1017700014C0E6FF15C0E6FF16C0E6FF480EE66E91 +:10178000050EE66EADEC13F0176E050EE15E175018 +:1017900093D092CF48F593CF49F594CF4AF595CFA2 +:1017A0004BF596CF4CF588D080CF48F581CF49F5E1 +:1017B00082CF4AF583CF4BF584CF4CF57DD0070E11 +:1017C000DB6A080EDB6A070EDBCF14F0080EDBCFF6 +:1017D00015F0D890155004E6080E145C000E15584C +:1017E00042E2070EDBCFE6FF3EEC11F0E552DE529F +:1017F000F3CFDEFFF4CFDDFFDD52020E086E096A83 +:10180000070EDBCF0DF0080EDBCF0EF0C2EC0FF0B1 +:1018100006C0E9FF07C0EAFF480EE926050EEA22E6 +:10182000020EDBCFEFFF020E086E096A070EDBCF58 +:101830000DF0080EDBCF0EF0C2EC0FF006C0E9FF92 +:1018400007C0EAFF010EE926000EEA22480EE9264B +:10185000050EEA22010EDBCFEFFF070EDB2A080E92 +:1018600001E3DB2AB0D728D078EC11F0030E06C0D4 +:10187000DBFF040E07C0DBFF050E08C0DBFF060E12 +:1018800009C0DBFF060EDBCF48F5050EDBCF49F5BF +:10189000040EDBCF4AF5030EDBCF4BF50DD0BBECCE +:1018A00011F00501486F08D0C5EC11F00501486F33 +:1018B00003D00501020E436F400EE66E400EE66E49 +:1018C000050EE66E010EE66E010EE66E80EC08F087 +:1018D000146E050EE15E1450F3CFBFF0F4CFC0F0EC +:1018E000400EE66E000EE66E050EE66EE66A010E2E +:1018F000E66E80EC08F0146E050EE15E1450F3CF36 +:10190000BDF0F4CFBEF0A5D005010851030A37E0C1 +:10191000010A25E0030A13E0010A01E040D00501B5 +:101920000951921205010A51931205010B519412AB +:1019300005010C51951205010D51961235D0050186 +:10194000091D921605010A1D931605010B1D94161B +:1019500005010C1D951605010D1D961625D00501D6 +:10196000091D891605010A1D8A1605010B1D8B1616 +:1019700005010C1D8C1605010D1D8D1615D00501D8 +:101980000951891205010A518A1205010B518B1266 +:1019900005010C518C1205010D518D1205D0030E5D +:1019A000E66E5BEC14F0E552400EE66E000EE66E5D +:1019B000050EE66EE66A010EE66E80EC08F0146E27 +:1019C000050EE15E1450F3CFBDF0F4CFBEF041D070 +:1019D0000001BF51C01102E1000E08D0BFC0E9FFF5 +:1019E000C0C0EAFFEF50800B01E0010E000931E1B9 +:1019F00000C540F50501416B0501030E426F05016D +:101A0000010E436F400EE66E400EE66E050EE66E6A +:101A1000010EE66E010EE66E80EC08F0146E050E07 +:101A2000E15E1450F3CFBFF0F4CFC0F0400EE66E8D +:101A3000000EE66E050EE66EE66A010EE66E80ECBE +:101A400008F0146E050EE15E1450F3CFBDF0F4CF34 +:101A5000BEF0090EE15C02E2E16AE552E16EE55298 +:101A6000E7CFD9FF12000001C951CA110FE1C5EC3F +:101A700011F0010A04E0010A04E1827403D08284B7 +:101A800001D08294320E0001C96FCA6BC907000EE3 +:101A9000CA5B12000001CB51CC1104E1100ECB6FD8 +:101AA000270ECC6FCB07000ECC5B6DA207D0CB51BD +:101AB000CC112EE18B728BB213D027D00001605174 +:101AC00002E18B9222D0600502E18B8209D0020EE6 +:101AD000605D02E18B8219D0040E605D03E18B92A0 +:101AE0008B801200100E605D06E10001CB51CC111D +:101AF0000FE18B720AD0200E605D0AE10001CB512C +:101B0000CC1106E18B728BA202D08B9012008B80DD +:101B1000120012001200120012004BEF12F012001D +:101B20001E0EE66E010EE66E4EEC08F0E552E55232 +:101B3000400EE66E000EE66E050EE66EE66A010EDB +:101B4000E66E80EC08F0146E050EE15E1450F3CFE3 +:101B5000BDF0F4CFBEF012006D840001080ED86F06 +:101B6000070ED96FD807000ED95BD851D911FAE109 +:101B70006D941200D9CFE6FFE1CFD9FFFD0EDBCF88 +:101B800008F0FE0EDBCF09F0010E081801E1095044 +:101B900033E0E868081802E1E86809182BE0030E52 +:101BA000081801E1095024E0040E081801E1095069 +:101BB0001DE0020E081801E1095016E0170E081882 +:101BC00001E109500FE0160E081801E1095008E084 +:101BD000150E081801E1095001E010D0A1DF0FD067 +:101BE0009EDF0DD09ADF0BD096DF09D092DF07D0B1 +:101BF00091DF05D091DF03D0000001D000D0010EAD +:101C000000D0E552E7CFD9FF12004BD8E652D0B250 +:101C100002D0010E15D0D0B802D0020E11D0D0B033 +:101C200002D0030E0DD0D0B602D0040E09D0FCAE07 +:101C300002D0050E05D0FCAC02D0060E01D0070E76 +:101C4000DF6ED088D086D084D082D080FC9EFC9C71 +:101C5000DF50E552E552E7CFD9FF1200E65221D816 +:101C6000020EE126F350DF6E010EF4CFDBFF12000F +:101C7000F00EE66ED80EE66E3FEC14F0E552E5523B +:101C80001200DF50F36E010EDB50F46E020EE15CC9 +:101C90001200DFCFE6FFE66AC9EC13F0E552E55229 +:0C1CA0001200D9CFE6FFE1CFD9FF1200FF +:041CAC00019E08D0BD +:101CB000019E09AE05D0086C091EE86A0922018E52 +:101CC00009C003F008C002F0136A126A8E0E046E97 +:101CD000056A71EF10F0016AADEC10F0C5EC10F080 +:101CE00001B655EF10F001A205D001BA55EF10F082 +:101CF0005CEF10F001BA68EF10F001A005D001B858 +:101D000055EF10F068EF10F001B85CEF10F0056AC5 +:101D10007F0E0A24046EE86A05220F50045EE86A0A +:101D2000055A1A0E106E0A6A126A136A026A036A68 +:101D30000C50075E0D50085A0E50095A000E0A5AF0 +:101D400009E70C5007260D5008220E500922000EFC +:101D50000A2201D0128AD8900736083609360A3688 +:101D6000D8901236133602360336102EE1D70950BA +:101D700008100710D8A4128A71EF10F0016AADECB8 +:101D800010F0C5EC10F001B655EF10F001A205D02F +:101D900001B855EF10F05CEF10F001AA05D001B0CA +:101DA00055EF10F05CEF10F001B002D001A802D0A6 +:101DB00068EF10F0056A0F500A24046EE86A0522E5 +:101DC0007E0E045EE86A055A126A136A026A036AA2 +:101DD0000E500902F4CF03F0F3CF02F00D500902C8 +:101DE000F3501326F4500222000E03220E50080274 +:101DF000F3501326F4500222000E03220C50090265 +:101E0000F3501226F4501322000E022203220D502A +:101E10000802F3501226F4501322000E022203226D +:101E20000E500702F3501226F4501322000E022225 +:101E300003220C500802F4501226000E1322022234 +:101E400003220D500702F4501226000E1322022224 +:101E5000032271EF10F00F7E016AADEC10F0C5ECBB +:101E600010F001B655EF10F001A20AD001AA03D07C +:101E700001BE55EF10F001A461EF10F05EEF10F01D +:101E800001AA05D001AC61EF10F05EEF10F001A0E7 +:101E90000AD001A808D001BE04D001A402D06AEF84 +:101EA00010F06EEF10F0126A056A0F500A5C116EA6 +:101EB00010E307C013F008C002F009C003F00AC025 +:101EC00010F00CC007F00DC008F00EC009F0013A88 +:101ED00009D00CC013F00DC002F00EC003F00FC00B +:101EE00010F0116C019E01BC018E10C004F001B015 +:101EF0009DEF10F01A0E11609DEF10F0046A0A6A4F +:101F000001A408D0076C081E091E0A1EE86A0822F0 +:101F100009220A2201AC08D0136C021E031E041E03 +:101F2000E86A022203220422066A115207E00A34F8 +:101F30000932083207320632112EF9D7075013261C +:101F400008500222095003220A50042206C012F04F +:101F5000019E04AE0BD0126C131E021E031E041E43 +:101F6000E86A1322022203220422018E04A006D072 +:101F7000D8800332023213321232102A10C004F019 +:101F800071EF10F009C013F008C012F008500D02F4 +:101F9000F4CF07F0F3CF06F009500E02F4CF09F0AA +:101FA000F3CF08F00D02F3500726F4500822E86A38 +:101FB000092212500E02F3500726F4500822E86A54 +:101FC00009220EAEE8EF0FF01250085E1350095AC6 +:101FD00013AE000C0D50085E0E50095A000C016A39 +:101FE000ADEC10F001B6F9EF0FF001A20ED001B484 +:101FF00005D07F0E096EFF0E086E1FD0800E096E91 +:10200000086A1BD0096A086A18D001B0FBD78F0E86 +:102010000A60EDD77E0E0A64F5D78E0E0A5C05E0E5 +:10202000D890093208320A2AF8D701A406D0086CE1 +:10203000091EE86A092209AEE5D71200016AADEC73 +:1020400010F001B628EF10F001A20FD001B407D0B4 +:102050007F0E096EFF0E086E076E066E25D0800E8D +:10206000096E01D0096A000EF6D701B0FBD7066AE7 +:102070009F0E0A60EBD77E0E0A64F4D79E0E0A5CB0 +:1020800007E0D89009320832073206320A2AF6D71A +:1020900001A40AD0066C071E081E091EE86A072262 +:1020A0000822092209AEDED712007F0E0A6EFF0E4B +:1020B000096E086E076E12007F0E01BEFF0E0A6EDB +:1020C00002D07F0E0A6E800E096E086A076AF3D787 +:1020D00001AE04D0800E0A6E096AF7D70A6A096A4F +:1020E000F4D70350021013101210F8E005BEF0D719 +:1020F00003BE0CD004500510EBE0D8901236133616 +:10210000023603360406D8A00506F2D70550D4E1FE +:102110000428D2E012AE11D07F0E121402E113A0F7 +:102120000CD0132AE86A0222032207E3D880033284 +:1021300002321332042A0428BFE00450C9E013C05D +:1021400007F002C008F00334096E04300A6E093249 +:102150000A9E01BE0A8E5BEF10F009360A3602E3D2 +:102160000184017E06E101800A6A096A086A076A39 +:1021700012000A2803E0D88009321200D8900932F0 +:1021800002E101821200018612000E360F3602E3D0 +:10219000018C017E06E101880F6A0E6A0D6A0C6AE5 +:1021A00012000F2803E0D8800E321200D8900E32B1 +:0621B000EAE1018A1200C1 +:0A21B6000001BB51010A32E0010AEA +:1021C0004DE1BC51090A24E0010A20E00F0A1CE09D +:1021D000010A18E0030A14E0010A10E0070A0CE003 +:1021E000010A08E0030A04E0010A17E1870E11D092 +:1021F0008F0E0FD0970E0DD09F0E0BD0A70E09D0CB +:10220000AF0E07D0B70E05D0BF0E03D0C70E01D05A +:10221000CF0EE66E76EC14F0E5520001010EBB6FB6 +:102220001200CEEC14F000091AE1BEEC14F0F3CF6A +:1022300014F0F4CF15F0BCC0E9FFEA6AE9BEEA6821 +:102240001DD914C0EEFF15C0EDFF090E0001BC5DE5 +:1022500002E1BC6B01D0BC2BBB6B1200BB6B12004C +:1022600094948294050EE66E7C0EE66EEF0EE66E9A +:102270005CEC13F0E552E552E5521200D9CFE6FFCF +:10228000E1CFD9FFFE0EDBCFE9FFEA6AE9BEEA68DB +:10229000F5D8EECF22F0EFCF23F022C008F023C014 +:1022A00009F058EC0EF007C01EF008C01FF009C07E +:1022B00020F00AC021F0D2D807C01AF008C01BF0E5 +:1022C00009C01CF00AC01DF0C0D807C016F008C035 +:1022D00017F009C018F00AC019F0C8D8EFEC0FF0D9 +:1022E00008C0F3FF09C0F4FFE552E7CFD9FF1200A1 +:1022F000B7C008F0B8C009F058EC0EF007C024F0E1 +:1023000008C025F009C026F00AC027F0A7D807C0EA +:1023100020F008C021F009C022F00AC023F095D8AF +:1023200007C01CF008C01DF009C01EF00AC01FF055 +:102330000C6A0D6A200E0E6E400E0F6E2BEC0FF025 +:1023400007C018F008C019F009C01AF00AC01BF045 +:102350008DD807C014F008C015F009C016F00AC0E7 +:1023600017F00C6A0D6A800E0E6E410E0F6EBEECF9 +:102370000EF01EEF10F00001BA3504E2B9519008DA +:10238000010EBA5501E3000C010CD9CFE6FFE1CFF5 +:10239000D9FF050EE126030E79D8DE6ADD6ADECFAD +:1023A00014F0DDCF15F0D890155004E6080E145C3B +:1023B000000E155833E2DFCFE6FF60DFE552020E74 +:1023C000F3CFDBFF030EF4CFDBFF36D804E6E40ED9 +:1023D000145C0C0E155806E2040EDB50020802E2F3 +:1023E000020E54D829D804E6F00E145C0A0E1558D3 +:1023F00006E2040EDB50010802E2010E47D81CD8A9 +:1024000004E6640E145C000E155803E2040EDB6A49 +:1024100005D0DF2A010EC3E3DB2AC1D7040EDB504F +:10242000146E050EE15C02E2E16AE552E16E1450C1 +:10243000E552E7CFD9FF1200020EDBCF14F0030EF6 +:10244000DBCF15F0D890155012000C6AC00E0D6E3F +:102450007F0E0E6E440E0F6E6BEF0EF00C6A0D6A5F +:10246000A00E0E6E400E0F6EBEEF0EF00C6A0D6ADF +:102470007A0E0E6E440E0F6EBEEF0EF0D890E93657 +:10248000EA36A70EE926000EEA221200F36E040EC9 +:06249000F3CFDBFF120098 +:0A249600040120511F0B010801E0B2 +:1024A0001200245101E01200060E215D21E12351AA +:1024B000230A1BE0010A0CE0030A1AE1000161058E +:1024C00017E10001880E716F250E726F090E09D099 +:1024D000000161050DE10001F50E716F250E726FAF +:1024E0001D0E746F756BC00E02D00001800E736FED +:1024F00004012051600BE842E842E842E842E84229 +:10250000010801E0120021510B0A26E0080A19E037 +:10251000090A11E0080A05E00B0A23E0080A21E095 +:1025200012000001DA0E716F000E726F010E746FEF +:10253000756BC10E0FD00001800E736F23C4DAF0EB +:1025400012000001DB0E716F000E726F010E746FCE +:10255000756B810E736F12000001800E736F22C4C1 +:04256000DBF012009A +:0C2564001201000200000008D80405006D +:1025700002000102000109022900010100C0320924 +:102580000400000203000000092111010001221DC6 +:102590000007058103400001070501034000010415 +:1025A0000309042C034D006F00620069006C006594 +:1025B00000200052006F0062006F00740020005085 +:1025C000006C006100740066006F0072006D0026F0 +:1025D00003420061007400740065007200790020FD +:1025E000004D006F006E00690074006F007200699A +:1025F000006E0067000600FF0901A10119012940D2 +:10260000150026FF007508954081001901294091A9 +:0A26100000C076259F25A325CF25E5 +:06261A002A0EF66E080E08 +:10262000F76E000EF86E00010900F550D26F090038 +:10263000F550D36F03E1D26701D03DD00900F550CA +:10264000CD6F0900F550CE6F0900F550CF6F09002E +:102650000900F550E96E0900F550EA6E090009001D +:102660000900F550D06F0900F550D16F090009003D +:10267000F6CFD4F0F7CFD5F0F8CFD6F0CDC0F6FF37 +:10268000CEC0F7FFCFC0F8FF0001D05302E1D15315 +:1026900007E00900F550EE6ED007F8E2D107F9D750 +:1026A000D4C0F6FFD5C0F7FFD6C0F8FF0001D207AF +:0826B000000ED35BBFD712003E +:0826B800D9CFE6FFDACFE6FFFF +:1026C000E1CFD9FFE2CFDAFFC26AC06AFC0EDB407D +:1026D0007F0B3C0BC26EFB0EDBCFE6FFFC0EDB3844 +:1026E000F00B300BE552E710C16EFD0EDB50040D10 +:1026F000F350380B156EFD0EDB380F0B070B146E05 +:10270000FD0EDB50800B14101510C06EFC0EDBAEFE +:1027100003D09E9C9D8CF28CC280E552E5CFDAFFFF +:06272000E7CFD9FF120013 +:0A272600FE0EE3CFE9FFFF0EE3CF44 +:10273000EAFFE9CFF3FFEACFF4FFFB0EE35003E13A +:10274000FC0EE35009E0FB0EE30602E2FC0EE3069A +:10275000FD0EE350EE6EF1D71200FB0EE3CFF6FF55 +:10276000FC0EE3CFF7FFFD0EE3CFF8FFFE0EE3CF45 +:10277000E9FFFF0EE3CFEAFFE9CFF3FFEACFF4FF73 +:10278000EE66FED7ED520900F5CFEFFFEE66FBD700 +:02279000120035 +:0E2792002DD8FD0EDB50A86EA69EA69CA68438 +:1027A000F250800B01E0010E0001DC6FF29E550E2D +:1027B000A76EAA0EA76EA682DC51E8B0F28EE8A042 +:1027C000F29EA6B2FED7A198A694E552E7CFD9FF14 +:1027D00012000DD8A69EA69CA680020EE66EB3EC53 +:1027E00014F0E552A850E552E7CFD9FF1200D9CF37 +:0E27F000E6FFE1CFD9FFFE0EDB50A96E12000E +:0227FE00D9CF31 +:10280000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E38 +:10281000DB507E0BCD6EFD0EDBAC02D0CD8E01D039 +:10282000CD9ECF6ACE6A9E90DBAE02D09D8001D055 +:102830009D90CD80E552E5CFDAFFE7CFD9FF1200BA +:1028400030313A31313A32330020004D617220305C +:102850003720323031300042617474657279204D16 +:102860006F6E69746F72696E6720312E300A4F6C1B +:0E287000697669657220424943484C45520022 +:02287E00D9CFB0 +:10288000E6FFDACFE6FFE1CFD9FFE2CFDAFFE6528B +:10289000E652FC0EDBCFDEFFDBCFDDFF010EDB50AF +:1028A000CF6EDF50CE6EE552E552E552E5CFDAFF4E +:0628B000E7CFD9FF120082 +:0A28B600D9CFE6FFE1CFD9FF000102 +:1028C0000ED8EF50000803E2A6291F0BA66F07D809 +:1028D000FE0EDBCFEFFFE552E7CFD9FF1200A65186 +:0C28E000EA6A860FE96E000EEA22120080 +:0428EC00D9CFE6FF5B +:1028F000DACFE6FFE1CFD9FFE2CFDAFFFD0EDB4012 +:102900007F0B3C0B146EC30EC2141410C26EC28235 +:0C291000E552E5CFDAFFE7CFD9FF120057 +:04291C00FF0EE35077 +:10292000296EEF0E01D0F30EE76EE72E95EF14F04F +:102930000C0E286EE76AE72E9BEF14F0282E9AEF14 +:0A29400014F0292E93EF14F012009A +:06294A0013EE00F023EE85 +:1029500000F0F86A019C0DEC13F0D3EC14F063EC7A +:062960000AF0FBD7120093 +:0A296600FF0EE350E84E12000000DF +:0C29700000D000D000D0E82EFAD71200F2 +:04297C00C450176EBE +:0E298000166AC3501610F36E17C0F4FF120053 +:02298E0000EE59 +:0C29900000F00F0EEE6AEA62FDD71200A4 +:04299C00C250020B18 +:0629A00001E0010E12002F +:0229A60012001D +:0829A800000000000000000027 +:0E29B000000000000000000000000000000019 +:0229BE00000017 +:0E29C000000001000000000000000000000008 :0229CE00000007 :1029D00000000000000000000000000000000000F7 :0F29E000000000000000000000000000000000E8 diff --git a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map index d96c391..dd14bcb 100644 --- a/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map +++ b/USB_Module/Battery_Monitoring/Firmware/output/Battery_Monitoring.map @@ -1,5 +1,5 @@ MPLINK 4.21, Linker -Linker Map File - Created Sun Oct 18 14:50:54 2009 +Linker Map File - Created Sun Mar 7 01:11:35 2010 Section Info Section Type Address Location Size(Bytes) @@ -12,48 +12,48 @@ REMAPPED_HIGH_INTERRUPT_VECTOR code 0x000808 program 0x000006 REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .cinit romdata 0x00082a program 0x000026 .code_usb_device.o code 0x000850 program 0x000b5a - .code_main.o code 0x0013aa program 0x000904 - PROG code 0x001cae program 0x00050a - .code_monitor.o code 0x0021b8 program 0x0002e0 - .code_usb_function_hid.o code 0x002498 program 0x0000ce -.romdata_usb_descriptors.o romdata 0x002566 program 0x0000b6 - _cinit_scn code 0x00261c program 0x00009e - .code_adcopen.o code 0x0026ba program 0x00006e - STRING code 0x002728 program 0x00006c - .code_eeprom.o code 0x002794 program 0x00006c - .code_t1open.o code 0x002800 program 0x000042 - .stringtable romdata 0x002842 program 0x00003e - .code_t1write.o code 0x002880 program 0x000038 - .code_error.o code 0x0028b8 program 0x000036 - .code_adcselchconv.o code 0x0028ee program 0x000030 - D10KTCYXCODE code 0x00291e program 0x00002e - _startup_scn code 0x00294c program 0x00001c - D10TCYXCODE code 0x002968 program 0x000016 - .code_adcread.o code 0x00297e program 0x000012 - .code code 0x002990 program 0x00000e - .code_adcbusy.o code 0x00299e program 0x00000a - .code___init.o code 0x0029a8 program 0x000002 - .romdata_adcread.o romdata 0x0029aa program 0x000000 - .romdata_adcselchconv.o romdata 0x0029aa program 0x000000 - .romdata_t1open.o romdata 0x0029aa program 0x000000 - .idata_t1write.o_i romdata 0x0029aa program 0x000000 - .idata_t1open.o_i romdata 0x0029aa program 0x000000 - .romdata_t1write.o romdata 0x0029aa program 0x000000 - .romdata___init.o romdata 0x0029aa program 0x000000 - .romdata_adcopen.o romdata 0x0029aa program 0x000000 - .romdata_c018i.o romdata 0x0029aa program 0x000000 -.idata_usb_descriptors.o_i romdata 0x0029aa program 0x000000 - .romdata_main.o romdata 0x0029aa program 0x000000 - .romdata_eeprom.o romdata 0x0029aa program 0x000000 - .idata_usb_device.o_i romdata 0x0029aa program 0x000000 - .romdata_usb_device.o romdata 0x0029aa program 0x000000 -.idata_usb_function_hid.o_i romdata 0x0029aa program 0x000000 -.romdata_usb_function_hid.o romdata 0x0029aa program 0x000000 - .romdata_error.o romdata 0x0029aa program 0x000000 - .idata_monitor.o_i romdata 0x0029aa program 0x000016 - .romdata_monitor.o romdata 0x0029aa program 0x000000 - .romdata_adcbusy.o romdata 0x0029aa program 0x000000 - .idata_main.o_i romdata 0x0029c0 program 0x00000e + .code_main.o code 0x0013aa program 0x000902 + PROG code 0x001cac program 0x00050a + .code_monitor.o code 0x0021b6 program 0x0002e0 + .code_usb_function_hid.o code 0x002496 program 0x0000ce +.romdata_usb_descriptors.o romdata 0x002564 program 0x0000b6 + _cinit_scn code 0x00261a program 0x00009e + .code_adcopen.o code 0x0026b8 program 0x00006e + STRING code 0x002726 program 0x00006c + .code_eeprom.o code 0x002792 program 0x00006c + .code_t1open.o code 0x0027fe program 0x000042 + .stringtable romdata 0x002840 program 0x00003e + .code_t1write.o code 0x00287e program 0x000038 + .code_error.o code 0x0028b6 program 0x000036 + .code_adcselchconv.o code 0x0028ec program 0x000030 + D10KTCYXCODE code 0x00291c program 0x00002e + _startup_scn code 0x00294a program 0x00001c + D10TCYXCODE code 0x002966 program 0x000016 + .code_adcread.o code 0x00297c program 0x000012 + .code code 0x00298e program 0x00000e + .code_adcbusy.o code 0x00299c program 0x00000a + .code___init.o code 0x0029a6 program 0x000002 + .romdata_adcread.o romdata 0x0029a8 program 0x000000 + .romdata_adcselchconv.o romdata 0x0029a8 program 0x000000 + .romdata_t1open.o romdata 0x0029a8 program 0x000000 + .idata_t1write.o_i romdata 0x0029a8 program 0x000000 + .idata_t1open.o_i romdata 0x0029a8 program 0x000000 + .romdata_t1write.o romdata 0x0029a8 program 0x000000 + .romdata___init.o romdata 0x0029a8 program 0x000000 + .romdata_adcopen.o romdata 0x0029a8 program 0x000000 + .romdata_c018i.o romdata 0x0029a8 program 0x000000 +.idata_usb_descriptors.o_i romdata 0x0029a8 program 0x000000 + .romdata_main.o romdata 0x0029a8 program 0x000000 + .romdata_eeprom.o romdata 0x0029a8 program 0x000000 + .idata_usb_device.o_i romdata 0x0029a8 program 0x000000 + .romdata_usb_device.o romdata 0x0029a8 program 0x000000 +.idata_usb_function_hid.o_i romdata 0x0029a8 program 0x000000 +.romdata_usb_function_hid.o romdata 0x0029a8 program 0x000000 + .romdata_error.o romdata 0x0029a8 program 0x000000 + .idata_monitor.o_i romdata 0x0029a8 program 0x000016 + .romdata_monitor.o romdata 0x0029a8 program 0x000000 + .romdata_adcbusy.o romdata 0x0029a8 program 0x000000 + .idata_main.o_i romdata 0x0029be program 0x000010 .idata_error.o_i romdata 0x0029ce program 0x000021 .idata_adcread.o_i romdata 0x0029ef program 0x000000 .idata_adcselchconv.o_i romdata 0x0029ef program 0x000000 @@ -71,33 +71,33 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 .udata_usb_device.o udata 0x000060 data 0x000026 .idata_error.o idata 0x000086 data 0x000021 .idata_monitor.o idata 0x0000a7 data 0x000016 - .idata_main.o idata 0x0000bd data 0x00000e - .udata_c018i.o udata 0x0000cb data 0x00000a - .udata_main.o udata 0x0000d5 data 0x000003 -.udata_usb_function_hid.o udata 0x0000d8 data 0x000002 - .udata_eeprom.o udata 0x0000da data 0x000001 - .udata___init.o udata 0x0000db data 0x000000 - .idata_t1write.o idata 0x0000db data 0x000000 - .udata_t1write.o udata 0x0000db data 0x000000 - .idata_adcselchconv.o idata 0x0000db data 0x000000 - .udata_adcselchconv.o udata 0x0000db data 0x000000 - .idata_adcread.o idata 0x0000db data 0x000000 - .udata_adcread.o udata 0x0000db data 0x000000 - .idata_t1open.o idata 0x0000db data 0x000000 - .udata_t1open.o udata 0x0000db data 0x000000 - .idata_adcopen.o idata 0x0000db data 0x000000 - .udata_adcopen.o udata 0x0000db data 0x000000 - .idata___init.o idata 0x0000db data 0x000000 - .idata_c018i.o idata 0x0000db data 0x000000 - .idata_adcbusy.o idata 0x0000db data 0x000000 - .udata_adcbusy.o udata 0x0000db data 0x000000 - .udata_usb_descriptors.o udata 0x0000db data 0x000000 - .udata_monitor.o udata 0x0000db data 0x000000 - .idata_usb_descriptors.o idata 0x0000db data 0x000000 - .udata_error.o udata 0x0000db data 0x000000 -.idata_usb_function_hid.o idata 0x0000db data 0x000000 - .idata_usb_device.o idata 0x0000db data 0x000000 - .idata_eeprom.o idata 0x0000db data 0x000000 + .idata_main.o idata 0x0000bd data 0x000010 + .udata_c018i.o udata 0x0000cd data 0x00000a + .udata_main.o udata 0x0000d7 data 0x000003 +.udata_usb_function_hid.o udata 0x0000da data 0x000002 + .udata_eeprom.o udata 0x0000dc data 0x000001 + .udata___init.o udata 0x0000dd data 0x000000 + .idata_t1write.o idata 0x0000dd data 0x000000 + .udata_t1write.o udata 0x0000dd data 0x000000 + .idata_adcselchconv.o idata 0x0000dd data 0x000000 + .udata_adcselchconv.o udata 0x0000dd data 0x000000 + .idata_adcread.o idata 0x0000dd data 0x000000 + .udata_adcread.o udata 0x0000dd data 0x000000 + .idata_t1open.o idata 0x0000dd data 0x000000 + .udata_t1open.o udata 0x0000dd data 0x000000 + .idata_adcopen.o idata 0x0000dd data 0x000000 + .udata_adcopen.o udata 0x0000dd data 0x000000 + .idata___init.o idata 0x0000dd data 0x000000 + .idata_c018i.o idata 0x0000dd data 0x000000 + .idata_adcbusy.o idata 0x0000dd data 0x000000 + .udata_adcbusy.o udata 0x0000dd data 0x000000 + .udata_usb_descriptors.o udata 0x0000dd data 0x000000 + .udata_monitor.o udata 0x0000dd data 0x000000 + .idata_usb_descriptors.o idata 0x0000dd data 0x000000 + .udata_error.o udata 0x0000dd data 0x000000 +.idata_usb_function_hid.o idata 0x0000dd data 0x000000 + .idata_usb_device.o idata 0x0000dd data 0x000000 + .idata_eeprom.o idata 0x0000dd data 0x000000 .stack udata 0x000300 data 0x000100 USB_BDT udata 0x000400 data 0x000036 USB_VARIABLES udata 0x000500 data 0x000080 @@ -122,326 +122,322 @@ REMAPPED_LOW_INTERRUPT_VECTOR code 0x000818 program 0x000006 Symbols - Sorted by Name Name Address Location Storage File --------- --------- --------- --------- --------- - BlinkUSBStatus 0x001a96 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - BusyADC 0x00299e program extern C:\MCC18\src\pmc_common\ADC\adcbusy.c - D10K_1 0x00292a program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kl 0x002936 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10Kx 0x002928 program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - D10_1 0x002978 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - D10x 0x002970 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - Delay10KTCYx 0x00291e program extern C:\MCC18\src\traditional\delays\d10ktcyx.asm - Delay10TCYx 0x002968 program extern C:\MCC18\src\traditional\delays\d10tcyx.asm - FLO1632S 0x001cb2 program extern C:\MCC18\src\traditional\math\cast16FP.asm - FLO1632U 0x001cae program extern C:\MCC18\src\traditional\math\cast16FP.asm - FPA32 0x001e5a program extern C:\MCC18\src\traditional\math\addFP.asm - FPD32 0x001cd8 program extern C:\MCC18\src\traditional\math\divFP.asm - FPM32 0x001d7e program extern C:\MCC18\src\traditional\math\mulFP.asm - FPS32 0x001e58 program extern C:\MCC18\src\traditional\math\addFP.asm - FXM1616S 0x001f86 program extern C:\MCC18\src\traditional\math\fxm1616s.asm - High_ISR 0x000008 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - INT3216 0x001fe0 program extern C:\MCC18\src\traditional\math\castFP16.asm - INT3232 0x00203e program extern C:\MCC18\src\traditional\math\castFP32.asm - InitializeSystem 0x0014ce program static C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - Low_ISR 0x000018 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - OpenADC 0x0026ba program extern C:\MCC18\src\pmc_common\ADC\adcopen.c - OpenTimer1 0x002800 program extern C:\MCC18\src\pmc_common\Timers\t1open.c - ProcessIO 0x001540 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - ReadADC 0x00297e program extern C:\MCC18\src\pmc_common\ADC\adcread.c - ReadEEPROM 0x0027d4 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c - Remapped_High_ISR 0x000808 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - Remapped_Low_ISR 0x000818 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - ResetSource 0x001c0c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - SelChanConvADC 0x0028ee program extern C:\MCC18\src\pmc_common\ADC\adcselchconv.c - TSIGN1616A 0x001fd2 program static C:\MCC18\src\traditional\math\fxm1616s.asm - USBCBCheckOtherReq 0x001b1c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBErrorHandler 0x001b1a program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBInitEP 0x001b22 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBSendResume 0x001b5a program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBStdSetDscHandler 0x001b20 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBSuspend 0x001b14 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCBWakeFromSuspend 0x001b16 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCB_SOF_Handler 0x001b18 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - USBCheckHIDRequest 0x002498 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_function_hid.c - USBCheckStdRequest 0x000bb2 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBClearInterruptFlag 0x001168 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBConfigureEndpoint 0x001024 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlEPService 0x000a3c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlEPServiceComplete 0x000e1c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlTrfInHandler 0x000b10 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlTrfOutHandler 0x000af4 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlTrfRxService 0x000f36 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlTrfSetupHandler 0x000ad0 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBCtrlTrfTxService 0x000e90 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBDeviceInit 0x000850 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBDeviceTasks 0x0008bc program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBEnableEndpoint 0x00109c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c -USBPrepareForNextSetupTrf 0x000b6a program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStallEndpoint 0x0010d6 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStallHandler 0x0009ec program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStdFeatureReqHandler 0x000c5a program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStdGetDscHandler 0x000d1c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStdGetStatusHandler 0x000d9e program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBStdSetCfgHandler 0x000fee program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBSuspend 0x000a12 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBTransferOnePacket 0x001100 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USBWakeFromSuspend 0x000a24 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_device.c - USB_CD_Ptr 0x002614 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c - USB_SD_Ptr 0x002616 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\usb_descriptors.c -USER_USB_CALLBACK_EVENT_HANDLER 0x001b76 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - UserInit 0x0014da program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - WriteEEPROM 0x002794 program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\eeprom.c - WriteTimer1 0x002880 program extern C:\MCC18\src\pmc_common\Timers\t1write.c - YourHighPriorityISRCode 0x0013aa program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - YourLowPriorityISRCode 0x00147c program extern C:\krobot\USB_Module\Battery_Monitoring\Firmware\main.c - _2jContinue 0x002748 program static C:\MCC18\src\traditional\stdclib\memset.asm - _3jEnd 0x002752 program static C:\MCC18\src\traditional\stdclib\memset.asm - _D10KTCYXCODE_0010 0x00292e program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - _D10KTCYXCODE_001C 0x00293a program static C:\MCC18\src\traditional\delays\d10ktcyx.asm - _D10TCYXCODE_000A 0x002972 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - _D10TCYXCODE_000C 0x002974 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - _D10TCYXCODE_000E 0x002976 program static C:\MCC18\src\traditional\delays\d10tcyx.asm - __FpExit 0x0020b8 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpPack 0x0020e4 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNaN 0x0020ac program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNegInf 0x0020be program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnNegZero 0x0020d6 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnPosInf 0x0020c4 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnPosZero 0x0020de program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnSignInf 0x0020ba program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnSignZero 0x0020d2 program extern C:\MCC18\src\traditional\math\packFP.asm - __FpReturnW 0x00213c program extern C:\MCC18\src\traditional\math\packFP.asm - __FpUnPackA 0x00215c program extern C:... [truncated message content] |
From: Xavier L. <Ba...@us...> - 2010-03-08 22:04:34
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via d329a635dc981f9c3cfc984f950dc8eaa9a1fbce (commit) from 94e87a11b68b9753ed5725e75bec5b8298cbe67b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d329a635dc981f9c3cfc984f950dc8eaa9a1fbce Author: Xavier Lagorce <Xav...@cr...> Date: Mon Mar 8 13:32:01 2010 +0100 When the motor controller card loose USB communication, it deactivates the motors ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Motor_Controller/Firmware/main.c b/USB_Module/Motor_Controller/Firmware/main.c index 1b2ade5..387f8ce 100644 --- a/USB_Module/Motor_Controller/Firmware/main.c +++ b/USB_Module/Motor_Controller/Firmware/main.c @@ -1284,6 +1284,10 @@ void USBCBSuspend(void) //cleared inside the usb_device.c file. Clearing USBActivityIF here will cause //things to not work as intended. + // Si on perd la communication avec la carte m, un probl est certainement arriv+ // Pour rire les risques on arr les moteurs (en roue libre) + stop(MOTOR_BOTH, LM_LTRJ_MOTOR_OFF); + #if defined(__C30__) #if 0 U1EIR = 0xFFFF; diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof index 9577f82..03d6dfa 100644 Binary files a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof and b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof differ diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex index c1942b2..f676229 100644 --- a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex +++ b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex @@ -1,14 +1,14 @@ :020000040000FA -:06000000DBEF30F01200FE +:06000000E5EF30F01200F4 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000DBEF30F01200F6 +:06080000E5EF30F01200EC :0608080088EF10F0120061 :06081800F0EF10F01200E9 -:06082A0004004962000019 -:100830002601000021000000416200005F0100006D -:100840000800000033620000470100000E000000B5 -:0C085000306200006A010000030000009C +:06082A0004005D62000005 +:100830002601000021000000556200005F01000059 +:100840000800000047620000470100000E000000A1 +:0C085000446200006A0100000300000088 :04085C0025EC0DF08A :10086000FE0EDB5006E1F80E96163C0E9416959897 :1008700008D0FE0EDB0405E1070E9612C30E94129B @@ -103,7 +103,7 @@ :100E0000E5522AEF0DF025EC0DF01D0EAFEC0CF0C5 :100E1000000E92EC0FF02AEF0DF025EC0DF068ECCF :100E20000DF084080DE068EC0DF0C40809E0E66AF6 -:100E300080EC0FF011EC0EF0AEEC30F0E552EFD795 +:100E300080EC0FF011EC0EF0B8EC30F0E552EFD78B :100E40001C0EAFEC0CF00A0E92EC0FF015EC0EF04D :100E500068EC0DF0800804E068EC0DF0C008E7E1F4 :100E600068EC0DF0C00802E115EC0EF01E0EAFECC0 @@ -181,21 +181,21 @@ :1012E0000EF065DB59EF0FF07DEC0FF0F60EDB50E2 :1012F00020E0006A800E016E010E026E430E036E46 :1013000064EC10F07FEC10F0436A446AC80E456E3E -:10131000420E466EAEEC22F0D9EC0FF0EADA38EC71 -:1013200010F06EEC23F0F70E3FC0DBFFF80E40C06C -:10133000DBFFC9EC0EF017EC22F020EC0FF0CDDB58 -:10134000386E0D0EE15E3850C9EC0EF018EC22F04C +:10131000420E466EB8EC22F0D9EC0FF0EADA38EC67 +:1013200010F078EC23F0F70E3FC0DBFFF80E40C062 +:10133000DBFFC9EC0EF021EC22F020EC0FF0CDDB4E +:10134000386E0D0EE15E3850C9EC0EF022EC22F042 :1013500020EC0FF02CDB010EE66E29DE386E0D0E50 :10136000E15E385032EC10F075D36FDB3C0EE126B5 :101370001AEC0FF0CCEC0FF01AEC0FF01CEC10F0A4 :1013800008C03EF009C03FF00AC040F00BC041F079 -:1013900001EC23F0D9EC0FF082EC10F002EC10F02D +:101390000BEC23F0D9EC0FF082EC10F002EC10F023 :1013A00082EC10F0FDEC0DF0A4DA14C03EF015C094 -:1013B0003FF016C040F017C041F001EC23F085EC7F -:1013C00010F03ADB18EC22F0CEDA436A446A800E61 +:1013B0003FF016C040F017C041F00BEC23F085EC75 +:1013C00010F03ADB22EC22F0CEDA436A446A800E57 :1013D000456ED0DB380E3EC0DBFF390E3FC0DBFF71 :1013E0003A0E40C0DBFF3B0E41C0DBFF1AEC0FF0B2 -:1013F000BADA77DB6DEC0FF0F8DA73DB60EC2BF028 +:1013F000BADA77DB6DEC0FF0F8DA73DB6AEC2BF01E :10140000086E080EE15E0850080E3DC0DBFF090EB5 :101410003EC0DBFF0A0E3FC0DBFF0B0E40C0DBFF10 :101420007DDBF60EDB5007E0D950F40F96EC0FF0A1 @@ -209,11 +209,11 @@ :1014A000060EE15E0A50D2D1380EDBCF04F0390EC1 :1014B000DBCF05F03A0EDBCF06F03B0EDBCF07F0BB :1014C000A5DBE6DA85EC10F072EC10F0E1DA95DBE2 -:1014D0008DEC0FF035EC0FF018EC22F0140E3EC03E +:1014D0008DEC0FF035EC0FF022EC22F0140E3EC034 :1014E000DBFF150E3FC0DBFF160E40C0DBFF170E03 -:1014F000CEDB1AEC0FF035EC0FF001EC23F0180EF8 +:1014F000CEDB1AEC0FF035EC0FF00BEC23F0180EEE :101500003EC0DBFF190E3FC0DBFF1A0E40C0DBFF01 -:101510001B0EBDDB82EC10F035EC0FF001EC23F07C +:101510001B0EBDDB82EC10F035EC0FF00BEC23F072 :101520001C0E3EC0DBFF1D0E3FC0DBFF1E0E40C089 :10153000DBFF1F0E41C0DBFF1C0EDBCF00F01D0EDA :10154000DBCF01F01E0EDBCF02F01F0EDBCF03F06E @@ -230,35 +230,35 @@ :1015F000DBFF2D0E3FC0DBFF2E0E40C0DBFF2F0EAA :1016000041C0DBFF2C0EDBCF04F02D0EDBCF05F04D :101610002E0EDBCF06F02F0EDBCF07F019DB0CDA36 -:1016200001EC23F043EC0FF0300E3EC0DBFF310E37 +:101620000BEC23F043EC0FF0300E3EC0DBFF310E2D :101630003FC0DBFF320E40C0DBFF330E41C0DBFF9B :10164000280EDBCF3EF0290EDBCF3FF02A0EDBCF9A :1016500040F02B0EDBCF41F043EC0FF0340E3EC0D8 :10166000DBFF350E3FC0DBFF360E40C0DBFF370E21 :1016700041C0DBFFD950300FDAD9D950340FD7D958 -:1016800060EC2BF0006E080EE15E00500C0E3DC0C9 +:101680006AEC2BF0006E080EE15E00500C0E3DC0BF :10169000DBFF0D0E3EC0DBFF0E0E3FC0DBFF0F0E6B :1016A00040C0DBFF006A016A026A400E036E00C0A0 :1016B000E6FF01C0E6FF02C0E6FFE66E91DBCCEC80 :1016C0000FF00FDA51EC10F03DC014F03EC015F0F1 -:1016D0003FC016F040C017F0C8EC0FF060EC2BF0E4 +:1016D0003FC016F040C017F0C8EC0FF06AEC2BF0DA :1016E000186E080EE15E1850E552E7CF03F0E552A0 :1016F000E7CF02F0E552E7CF01F0E552E7CF00F087 :101700003DC004F03EC005F03FC006F040C007F009 :1017100017DA38EC10F0100E3EC0DBFF110E3FC0A0 :10172000DBFF120E40C0DBFF130E41C0DBFFF60EE5 -:10173000DB5002081DE1F4EC0FF017EC22F02BEC6B -:1017400010F018EC22F044D919DA060E3FC0DBFF86 +:10173000DB5002081DE1F4EC0FF021EC22F02BEC61 +:1017400010F022EC22F044D919DA060E3FC0DBFF7C :10175000070E40C0DBFFBFEC0FF047D9020EDBCF16 :101760003FF0030E5FDB040E3FC0DBFF050E4FD0E2 :101770003E6A3F6A406A400E416E080EDBCF43F07E :10178000090EDBCF44F00A0EDBCF45F00B0E3BEC2D :1017900010F0E9D80C0EDBCF04F00D0EDBCF05F016 :1017A0000E0EDBCF06F00F0EDBCF07F004C043F0C8 -:1017B00005C044F006C045F007C046F017EC22F023 +:1017B00005C044F006C045F007C046F021EC22F019 :1017C0000C0E3EC0DBFF0D0E3FC0DBFF0E0E40C017 -:1017D000DBFF0F0E41C0DBFFF4EC0FF018EC22F042 -:1017E0002BEC10F017EC22F0F3D8C8D9040E3FC050 +:1017D000DBFF0F0E41C0DBFFF4EC0FF022EC22F038 +:1017E0002BEC10F021EC22F0F3D8C8D9040E3FC046 :1017F000DBFF050E40C0DBFF020EDBCF3FF0030E28 :10180000F4D8BDDB0FDB060E3FC0DBFF070E40C088 :10181000DBFF4FD8B1D8040EDBCF3FF0050E1FDA47 @@ -284,16 +284,16 @@ :1019500002C0DBFF030E03C0DBFF56EF10F0E66EA4 :10196000CFDA9BEF0FF03EC000F03FC001F040C067 :1019700002F041C003F01200A7DBB1EF0EF002C08D -:101980003EF0EEDA17EC22F0ADDA92DC126E060EC3 -:10199000E15E12501200466E01EC23F03EC020F0D2 +:101980003EF0EEDA21EC22F0ADDA92DC126E060EB9 +:10199000E15E12501200466E0BEC23F03EC020F0C8 :1019A0003FC021F040C022F041C023F01200000EE1 :1019B000186C191E19221A1E1A221B1E1B2218C06F :1019C000E6FF19C0E6FF1AC0E6FF1BC0E6FF1200E3 :1019D000100EDBCF43F0110EDBCF44F0120EDBCF45 -:1019E00045F0130E48DB6EEF23F0DFDAD9EF0FF08E +:1019E00045F0130E48DB78EF23F0DFDAD9EF0FF084 :1019F000C1DAE76E12004058096E06C03DF007C01C -:101A00003EF008C03FF0406EFEEC21F03EC002F018 -:101A10003FC003F040C004F041C005F0DCDAAEEC9A +:101A00003EF008C03FF0406E08EC22F03EC002F00D +:101A10003FC003F040C004F041C005F0DCDAB8EC90 :101A200022F04BDB3FC0F3FF40C0F4FF1200E96E31 :101A3000DACFEAFF84EF0FF004C03EF005C03FF0BC :101A400006C040F007C041F01200D9CFE6FFE1CF59 @@ -314,8 +314,8 @@ :101B3000DBCF01F0060EDBCF02F0070EA0EF0FF0B7 :101B40003DC043F03EC044F03FC045F040C046F0C9 :101B50001200080EDBCFE6FF090EDBCFE6FF120016 -:101B6000CFD9C4EF0FF073EC27F0E552E552E55200 -:101B7000E5521200400E466EAEEF22F0020E3FC05C +:101B6000CFD9C4EF0FF07DEC27F0E552E552E552F6 +:101B7000E5521200400E466EB8EF22F0020E3FC052 :101B8000DBFF030E40C0DBFFA4DADBCF40F0120026 :101B9000010EE66E53EF0FF0D950080FE96EDACF61 :101BA000EAFFEE52ED881200FE0EDB500208120032 @@ -330,7 +330,7 @@ :101C3000E55212000DEC07F0006E090EE15E005057 :101C40001200020EF3CFDBFF030EF4CFDBFF120016 :101C5000436A446A800E456EBF0E466E1200A5D9D7 -:101C6000D1D9B9D901EC23F0ADD9BD0E436E370EF1 +:101C6000D1D9B9D90BEC23F0ADD9BD0E436E370EE7 :101C7000446E860E456E410E466E30DA3DC00CF065 :101C80003EC00DF03FC00EF040C00FF0120041C04A :101C9000DBFF046A056A800E066E3F0E076EB6DF34 @@ -342,30 +342,30 @@ :101CF0003DC010F03EC011F03FC012F040C013F0E4 :101D00001FDF72EF10F0DBCF11F0436A446A340E2C :101D10004FDF0EC03EF00FC03FF010C040F011C0CA -:101D200041F001EC23F03EC00AF03FC00BF040C090 +:101D200041F00BEC23F03EC00AF03FC00BF040C086 :101D30000CF041C00DF0DB0E436E0F0E446E490EE9 :101D4000456E18DFD2DED5DDBFEF0CF0B6DD8EDEDE -:101D500096D921DE45DF810E2BDF01EC23F065EF04 -:101D60000CF0CDD938D901EC23F023D9CC0E436E39 +:101D500096D921DE45DF810E2BDF0BEC23F065EFFA +:101D60000CF0CDD938D90BEC23F023D9CC0E436E2F :101D7000BC0E446E8C0E456E3B0E466EAFD93DC018 :101D800000F03EC001F03FC002F040C003F0C8EFD9 :101D90000FF093DD3EC028F03FC029F040C02AF08C -:101DA00041C02BF06CD9466E01EC23F05FDE436A34 +:101DA00041C02BF06CD9466E0BEC23F05FDE436A2A :101DB000446A456A400EEFDD306A800E316E010ED6 :101DC000326E430E336E80D9F0D83EC034F03FC03F :101DD00035F040C036F041C037F08BDDF4EF0DF048 :101DE000140EDBCF0CF0150EDBCF0DF0160EDBCF93 -:101DF0000EF0170EDBCF0FF04BDE87D940DE17EF6A +:101DF0000EF0170EDBCF0FF04BDE87D940DE21EF60 :101E000022F0140EDBCF00F0150EDBCF01F0160E22 :101E1000DBCF02F0170EDBCF03F0E2DE010EC8DEEF :101E200085EF0CF06CD9F7D854D9BFD805D920D993 -:101E30006EEF23F0FD0EDBCF3FF0FE0ED5EF0FF07F +:101E300078EF23F0FD0EDBCF3FF0FE0ED5EF0FF075 :101E40003EC02CF03FC02DF040C02EF041C02FF01E :101E500050DD20C03EF021C03FF022C040F023C042 -:101E600041F001EC23F065EF0CF0CCD842DD85EFBA +:101E600041F00BEC23F065EF0CF0CCD842DD85EFB0 :101E70000CF0DBCFE6FF82EF0CF0FDD88DD839DD1A -:101E800044DD17EF22F0140EDBCF43F0150EDBCF4D -:101E900044F0160EDBCF45F0170EDBCF46F0AEEC6C +:101E800044DD21EF22F0140EDBCF43F0150EDBCF43 +:101E900044F0160EDBCF45F0170EDBCF46F0B8EC62 :101EA00022F0B3EF0CF0FDEC04F0E552E552E55200 :101EB0001200010EE66ED7EC07F0AEDED3D8CAD51D :101EC000F70EDBCFE6FFF80EDBCFE6FFF90EDBCF38 @@ -379,62 +379,62 @@ :101F4000DBCF03F0005001100210031012007DDD02 :101F5000040EE126D4EF0DF002DD02DE21EF0EF0DB :101F600003C03FF004C040F005C041F012001DD88E -:101F700065EF0CF0E66ECDEC2FF0E5521200000E8E +:101F700065EF0CF0E66ED7EC2FF0E5521200000E84 :101F8000DFCF3FF0010E1200E2EC05F0E552120047 :101F90003DC0E6FF78EF10F03EC008F03FC009F00A -:101FA00040C00AF041C00BF01200DBCF40F0E9EF77 +:101FA00040C00AF041C00BF01200DBCF40F0F3EF6D :101FB00021F03EC004F03FC005F040C006F041C033 :101FC00007F012003EC010F03FC011F040C012F008 :101FD00041C013F01200330E436EE20E446EC20E87 :101FE000456E420E466E120039DD0C0EDBCF0EF050 :101FF0000D0EDBCF0FF00E0EDBCF10F00F0E83DED9 :1020000001EF0FF03EC014F03FC015F040C016F0D5 -:1020100041C017F012006DDC0FDDAEEC22F0B3EF23 +:1020100041C017F012006DDC0FDDB8EC22F0B3EF19 :102020000CF0060EDBCFE6FF070E23DF040EDBCF3E :10203000E6FF050E39EF0FF03EC00CF03FC00DF08B :1020400040C00EF041C00FF079EF0CF0CEDC65DF40 :102050008ADCF0EF0EF0BCDC3FC0DEFF40C0DDFFED :1020600001EF0FF0020EE66EC8EC08F0E552120028 -:102070004CDC01EF23F0DBCF46F001EF23F0350E0F +:102070004CDC0BEF23F0DBCF46F00BEF23F0350EFB :10208000436EFA0E446E0E0E456E3C0E1200FC0EB0 :10209000DBCFE6FFFD0E39EF0FF02FDF0EDC65EF33 :1020A0000CF0D950380FC3DCB3EF0DF0020EDBCFCC -:1020B000E6FF030EDBCFE6FF12006EEC23F03FC01D +:1020B000E6FF030EDBCFE6FF120078EC23F03FC013 :1020C00000F040C001F01200F70EDBCF3FF0F80E39 -:1020D0001200F90EDBCF3FF0FA0E120001EC23F0F4 -:1020E0009DEF23F0CCDC01EC23F056DF0BEF10F07A +:1020D0001200F90EDBCF3FF0FA0E12000BEC23F0EA +:1020E000A7EF23F0CCDC0BEC23F056DF0BEF10F066 :1020F0003EC0E6FF3FC0E6FF40C0E6FF120055DFEE :10210000CCEF0FF0EADED5EF0FF05CDF79EF0CF0EB :10211000DACFE4FFE2CFDAFFE9CFE4FFEACFE4FF72 :10212000F6CFE4FFF7CFE4FFF5CFE4FFF3CFE4FF12 :10213000F4CFE4FFFACFE4FF00EE39F0140EE80428 :1021400003E3EECFE4FFFBD700EE00F0390EE80426 -:1021500003E3EECFE4FFFBD719EC1CF09EA013D0F5 -:1021600023EC1CF001014D2B000E4E23E80E4D5DBB +:1021500003E3EECFE4FFFBD723EC1CF09EA013D0EB +:102160002DEC1CF001014D2B000E4E23E80E4D5DB1 :10217000030E4E5905E34D6B4E6B4F2B000E502353 -:1021800094EC29F09E902CEC1CF002E2E16AE552FE +:102180009EEC29F09E9036EC1CF002E2E16AE552EA :10219000E16EE552E7CFD9FFE55200EE38F0390E97 :1021A000E80403E3E5CFEDFFFBD700EE4CF0140E9F :1021B000E80403E3E5CFEDFFFBD7E5CFFAFFE5CF7A :1021C000F4FFE5CFF3FFE5CFF5FFE5CFF7FFE5CF70 :1021D000F6FFE5CFEAFFE5CFE9FFE5CFDAFF110033 :1021E000D8CFE4FFE0CFE4FFE46EDACFE4FFE2CF44 -:1021F000DAFFF3CFE4FFF4CFE4FF19EC1CF02CEC92 +:1021F000DAFFF3CFE4FFF4CFE4FF23EC1CF036EC7E :102200001CF002E2E16AE552E16EE552E7CFD9FF48 :10221000E552E5CFF4FFE5CFF3FFE5CFDAFFE55078 -:10222000E5CFE0FFE5CFD8FF100004D877EC1CF035 -:1022300060D8FCD70F0EC11202D841EF1CF03CEC65 -:102240001CF0E652F0EC1BF00101676F070E675DB2 -:1022500010E1E66ACDEC2FF0E552DF6E000EDF8074 -:1022600034EC1CF0E66AAEEC30F0E552DF7034EC92 +:10222000E5CFE0FFE5CFD8FF100004D881EC1CF02B +:1022300060D8FCD70F0EC11202D84BEF1CF046EC51 +:102240001CF0E652FAEC1BF00101676F070E675DA8 +:1022500010E1E66AD7EC2FF0E552DF6E000EDF806A +:102260003EEC1CF0E66AB8EC30F0E552DF703EEC74 :102270001CF0D08EF28EF28CF30E8C1695160101A6 :10228000476B486B496B4A6B010E4B6F929480947D :10229000939881980D0EE66E7C0EE66EE10EE66E6A -:1022A00040EC2FF0E552E552E552C70E9216949499 +:1022A0004AEC2FF0E552E552E552C70E921694948F :1022B0003F0E9516010EE66E2EEC04F0E552838C6F :1022C000808A82848088838E80868294010EE66E66 -:1022D000E9EC30F0E55282849D80C50EE66E3EEC5E -:1022E00030F0E55223EC1CF0E552E552E7CFD9FF80 +:1022D000F3EC30F0E55282849D80C50EE66E48EC4A +:1022E00030F0E5522DEC1CF0E552E552E7CFD9FF76 :1022F0001200D9CFE6FFE1CFD9FF0F0EE126010191 :102300004B5102E035EC1BF0200E0101005D03E3B0 :102310006D50020B02E02BEF1BF0010149514A11F5 @@ -444,7 +444,7 @@ :10235000406B01014C514C2B0501416F0501040EEE :10236000426F01014651EA6A260FE96E010EEA2228 :10237000EFCF43F5400EE66E400EE66E050EE66EBC -:10238000010EE66E010EE66E92EC20F0006E050E78 +:10238000010EE66E010EE66E9CEC20F0006E050E6E :10239000E15E0050F3CF49F1F4CF4AF1010146511B :1023A000EA6A260FE96E010EEA22EF6A0101465140 :1023B000000803E20101460707D00101455100086A @@ -454,13 +454,13 @@ :1023F0000CF0000925E00501406B01014C514C2B0C :102400000501416F05010A0E426F0501436B05018D :10241000010E486F400EE66E400EE66E050EE66E4B -:10242000010EE66E010EE66E92EC20F0006E050ED7 +:10242000010EE66E010EE66E9CEC20F0006E050ECD :10243000E15E0050F3CF49F1F4CF4AF10101526B54 :10244000020EE66EE66AF0EC06F0E552E55200098F :102450000AE1020EE66E010EE66EF0EC06F0E552C1 -:10246000E55200090AE00A0EE66E7BEC30F0E55218 +:10246000E55200090AE00A0EE66E85EC30F0E5520E :10247000020EE66E03EC07F0E55201015151020A2B -:1024800010E0030A01E021D0020EE66EE0EC2AF033 +:1024800010E0030A01E021D0020EE66EEAEC2AF029 :10249000E55255EC07F0000903E00101020E516F0F :1024A00016D0200EE66E030EE66EC80EE66EE66AE5 :1024B000E80EE66E030EE66E4AEC09F0006E060EBC @@ -470,8 +470,8 @@ :1024F0001BF005010251070A02E18CEF1AF00D0AE8 :1025000001E156D2010A01E126D20D0A01E1BED154 :10251000040A1AE0030A07E0010A02E0EAEF1AF0EF -:10252000FF002BEF1BF0E66ACDEC2FF0E552DF6EDB -:10253000000EDB80DFCFE6FFE66AADEC2FF0E55260 +:10252000FF002BEF1BF0E66AD7EC2FF0E552DF6ED1 +:10253000000EDB80DFCFE6FFE66AB7EC2FF0E55256 :10254000E552FF002BEF1BF0010149514A1102E156 :10255000000E08D049C1E9FF4AC1EAFFEF50800BE5 :1025600001E0010E000901E08FD100C540F5050131 @@ -479,25 +479,25 @@ :10258000100A01E135D11F0A01E1F8D0080A01E182 :10259000BBD0010A01E17ED0020A71E0070A64E0C3 :1025A000010A20E0030A06E0010A01E043D167C105 -:1025B00048F543D10501486B570E006E600E016E61 +:1025B00048F543D10501486B6B0E006E600E016E4D :1025C000026A00C0E6FF01C0E6FF02C0E6FF480E57 -:1025D000E66E050EE66E91EC2FF0036E050EE15EE1 -:1025E00003502BD10501486B4B0E006E600E016E3F +:1025D000E66E050EE66E9BEC2FF0036E050EE15ED7 +:1025E00003502BD10501486B5F0E006E600E016E2B :1025F000026A00C0E6FF01C0E6FF02C0E6FF480E27 -:10260000E66E050EE66E91EC2FF0036E050EE15EB0 -:102610000350490E006E600E016E026A00C0E6FFB4 +:10260000E66E050EE66E9BEC2FF0036E050EE15EA6 +:1026100003505D0E006E600E016E026A00C0E6FFA0 :1026200001C0E6FF02C0E6FF480EE66E050EE66E4C -:1026300091EC2FF0036E050EE15E0350400E006E2C +:102630009BEC2FF0036E050EE15E0350540E006E0E :10264000600E016E026A00C0E6FF01C0E6FF02C034 -:10265000E6FF480EE66E050EE66E91EC2FF0036E77 +:10265000E6FF480EE66E050EE66E9BEC2FF0036E6D :10266000050EE15E0350E9D092CF48F593CF49F5CE :1026700094CF4AF595CF4BF596CF4CF5DED080CF71 :1026800048F581CF49F582CF4AF583CF4BF584CF0A -:102690004CF5D3D0E66A3AEC2AF0E552010E3DC083 +:102690004CF5D3D0E66A44EC2AF0E552010E3DC079 :1026A000DBFF020E3EC0DBFF030E3FC0DBFF040E6C :1026B00040C0DBFF040EDBCF48F5030EDBCF49F54E :1026C000020EDBCF4AF5010EDBCF4BF5010EE66EB5 -:1026D0003AEC2AF0E552010E3DC0DBFF020E3EC08F +:1026D00044EC2AF0E552010E3DC0DBFF020E3EC085 :1026E000DBFF030E3FC0DBFF040E40C0DBFF040E28 :1026F000DBCF4CF5030EDBCF4DF5020EDBCF4EF5F5 :10270000010EDBCF4FF599D0E66A0DEC09F0E552EA @@ -520,10 +520,10 @@ :10281000010EE66E3EEC09F0E552050EF3CFDBFF4C :10282000060EF4CFDBFF060EDBCF4AF5050EDBCF3D :102830004BF503D00501020E436F400EE66E400ECD -:10284000E66E050EE66E010EE66E010EE66E92EC89 +:10284000E66E050EE66E010EE66E010EE66E9CEC7F :1028500020F0006E050EE15E0050F3CF49F1F4CF99 :102860004AF1400EE66E000EE66E050EE66EE66A72 -:10287000010EE66E92EC20F0006E050EE15E005057 +:10287000010EE66E9CEC20F0006E050EE15E00504D :10288000F3CF47F1F4CF48F12BEF1BF005010851CE :10289000030A37E0010A25E0030A13E0010A01E018 :1028A00040D005010951921205010A519312050108 @@ -534,14 +534,14 @@ :1028F0000B1D8B1605010C1D8C1605010D1D8D166B :1029000015D005010951891205010A518A120501E4 :102910000B518B1205010C518C1205010D518D12BA -:1029200005D0030EE66E7BEC30F0E552400EE66E0D -:10293000000EE66E050EE66EE66A010EE66E92EC9D +:1029200005D0030EE66E85EC30F0E552400EE66E03 +:10293000000EE66E050EE66EE66A010EE66E9CEC93 :1029400020F0006E050EE15E0050F3CF47F1F4CFAA :1029500048F12BEF1BF005010851020A09E0030AB8 -:1029600001E00CD009C5E6FFE0EC2AF0E5520BD0FF -:1029700009C5E6FFF0EC2AF0E55205D0010EE66E3F -:102980007BEC30F0E552400EE66E000EE66E050E72 -:10299000E66EE66A010EE66E92EC20F0006E050E21 +:1029600001E00CD009C5E6FFEAEC2AF0E5520BD0F5 +:1029700009C5E6FFFAEC2AF0E55205D0010EE66E35 +:1029800085EC30F0E552400EE66E000EE66E050E68 +:10299000E66EE66A010EE66E9CEC20F0006E050E17 :1029A000E15E0050F3CF47F1F4CF48F12BEF1BF07D :1029B00005010851060A02E14BEF1AF0080A02E18C :1029C00011EF1AF0030A02E108EF1AF0070A02E118 @@ -551,56 +551,56 @@ :102A0000010A01E1D7D1030A01E1A6D1010A01E1DE :102A1000A0D10C0A01E126D1030A01E194D0040AF5 :102A200002E073EF1AF00501095104E0020E0501FE -:102A3000095D40E10AC5E6FF010EE66EADEC2FF040 -:102A4000E552E5520BC5E6FF020EE66EADEC2FF047 -:102A5000E552E5520CC5E6FF030EE66EADEC2FF035 -:102A6000E552E5520DC5E6FF040EE66EADEC2FF023 -:102A7000E552E5520EC5E6FF050EE66EADEC2FF011 -:102A8000E552E5520FC5E6FF060EE66EADEC2FF0FF -:102A9000E552E55210C5E6FF070EE66EADEC2FF0ED -:102AA000E552E55211C5E6FF080EE66EADEC2FF0DB +:102A3000095D40E10AC5E6FF010EE66EB7EC2FF036 +:102A4000E552E5520BC5E6FF020EE66EB7EC2FF03D +:102A5000E552E5520CC5E6FF030EE66EB7EC2FF02B +:102A6000E552E5520DC5E6FF040EE66EB7EC2FF019 +:102A7000E552E5520EC5E6FF050EE66EB7EC2FF007 +:102A8000E552E5520FC5E6FF060EE66EB7EC2FF0F5 +:102A9000E552E55210C5E6FF070EE66EB7EC2FF0E3 +:102AA000E552E55211C5E6FF080EE66EB7EC2FF0D1 :102AB000E552E5520501090504E0020E0501095D34 -:102AC00040E10AC5E6FF090EE66EADEC2FF0E552D7 -:102AD000E5520BC5E6FF0A0EE66EADEC2FF0E552AF -:102AE000E5520CC5E6FF0B0EE66EADEC2FF0E5529D -:102AF000E5520DC5E6FF0C0EE66EADEC2FF0E5528B -:102B0000E5520EC5E6FF0D0EE66EADEC2FF0E55278 -:102B1000E5520FC5E6FF0E0EE66EADEC2FF0E55266 -:102B2000E55210C5E6FF0F0EE66EADEC2FF0E55254 -:102B3000E55211C5E6FF100EE66EADEC2FF0E55242 +:102AC00040E10AC5E6FF090EE66EB7EC2FF0E552CD +:102AD000E5520BC5E6FF0A0EE66EB7EC2FF0E552A5 +:102AE000E5520CC5E6FF0B0EE66EB7EC2FF0E55293 +:102AF000E5520DC5E6FF0C0EE66EB7EC2FF0E55281 +:102B0000E5520EC5E6FF0D0EE66EB7EC2FF0E5526E +:102B1000E5520FC5E6FF0E0EE66EB7EC2FF0E5525C +:102B2000E55210C5E6FF0F0EE66EB7EC2FF0E5524A +:102B3000E55211C5E6FF100EE66EB7EC2FF0E55238 :102B4000E55278EF1AF000C540F50501416B05012B -:102B5000030E426F0501436B010EE66ECDEC2FF0C4 -:102B6000E5520501486F020EE66ECDEC2FF0E552FE -:102B70000501496F030EE66ECDEC2FF0E55205011D -:102B80004A6F040EE66ECDEC2FF0E55205014B6F57 -:102B9000050EE66ECDEC2FF0E55205014C6F060EEA -:102BA000E66ECDEC2FF0E55205014D6F070EE66E97 -:102BB000CDEC2FF0E55205014E6F080EE66ECDEC20 -:102BC0002FF0E55205014F6F090EE66ECDEC2FF0A8 -:102BD000E5520501506F0A0EE66ECDEC2FF0E5527E -:102BE0000501516F0B0EE66ECDEC2FF0E55205019D -:102BF000526F0C0EE66ECDEC2FF0E5520501536FCF -:102C00000D0EE66ECDEC2FF0E5520501546F0E0E61 -:102C1000E66ECDEC2FF0E5520501556F0F0EE66E16 -:102C2000CDEC2FF0E5520501566F100EE66ECDEC9F +:102B5000030E426F0501436B010EE66ED7EC2FF0BA +:102B6000E5520501486F020EE66ED7EC2FF0E552F4 +:102B70000501496F030EE66ED7EC2FF0E552050113 +:102B80004A6F040EE66ED7EC2FF0E55205014B6F4D +:102B9000050EE66ED7EC2FF0E55205014C6F060EE0 +:102BA000E66ED7EC2FF0E55205014D6F070EE66E8D +:102BB000D7EC2FF0E55205014E6F080EE66ED7EC0C +:102BC0002FF0E55205014F6F090EE66ED7EC2FF09E +:102BD000E5520501506F0A0EE66ED7EC2FF0E55274 +:102BE0000501516F0B0EE66ED7EC2FF0E552050193 +:102BF000526F0C0EE66ED7EC2FF0E5520501536FC5 +:102C00000D0EE66ED7EC2FF0E5520501546F0E0E57 +:102C1000E66ED7EC2FF0E5520501556F0F0EE66E0C +:102C2000D7EC2FF0E5520501566F100EE66ED7EC8B :102C30002FF0E5520501576F400EE66E400EE66E2E -:102C4000050EE66E010EE66E010EE66E92EC20F0C9 +:102C4000050EE66E010EE66E010EE66E9CEC20F0BF :102C5000006E050EE15E0050F3CF49F1F4CF4AF16A -:102C600078EF1AF0E66A010EE66EADEC2FF0E55251 -:102C7000E552010EE66E020EE66EADEC2FF0E55267 -:102C8000E552E66A030EE66EADEC2FF0E552E55232 -:102C9000E66A040EE66EADEC2FF0E552E552E66A08 -:102CA000050EE66EADEC2FF0E552E552E66A060E33 -:102CB000E66EADEC2FF0E552E552270EE66E070EFC -:102CC000E66EADEC2FF0E552E552100EE66E080E02 -:102CD000E66EADEC2FF0E552E552E66A090EE66EBF -:102CE000ADEC2FF0E552E552010EE66E0A0EE66EEF -:102CF000ADEC2FF0E552E552E66A0B0EE66EADEC58 -:102D00002FF0E552E552E66A0C0EE66EADEC2FF0C0 -:102D1000E552E552E66A0D0EE66EADEC2FF0E55297 -:102D2000E552E66A0E0EE66EADEC2FF0E552E55286 -:102D3000270EE66E0F0EE66EADEC2FF0E552E55273 -:102D4000100EE66E100EE66EADEC2FF0E552E55279 +:102C600078EF1AF0E66A010EE66EB7EC2FF0E55247 +:102C7000E552010EE66E020EE66EB7EC2FF0E5525D +:102C8000E552E66A030EE66EB7EC2FF0E552E55228 +:102C9000E66A040EE66EB7EC2FF0E552E552E66AFE +:102CA000050EE66EB7EC2FF0E552E552E66A060E29 +:102CB000E66EB7EC2FF0E552E552270EE66E070EF2 +:102CC000E66EB7EC2FF0E552E552100EE66E080EF8 +:102CD000E66EB7EC2FF0E552E552E66A090EE66EB5 +:102CE000B7EC2FF0E552E552010EE66E0A0EE66EE5 +:102CF000B7EC2FF0E552E552E66A0B0EE66EB7EC44 +:102D00002FF0E552E552E66A0C0EE66EB7EC2FF0B6 +:102D1000E552E552E66A0D0EE66EB7EC2FF0E5528D +:102D2000E552E66A0E0EE66EB7EC2FF0E552E5527C +:102D3000270EE66E0F0EE66EB7EC2FF0E552E55269 +:102D4000100EE66E100EE66EB7EC2FF0E552E5526F :102D5000CFD355EC07F0CCD3060E09C5DBFF050E2B :102D60000AC5DBFF080E0BC5DBFF070E0CC5DBFF3A :102D70000A0E0DC5DBFF090E0EC5DBFF090EDBCF0A @@ -647,65 +647,65 @@ :103000000BC5DBFF080E0CC5DBFF070E0DC5DBFF94 :103010000A0E0EC5DBFF090E0FC5DBFF09C5E6FF73 :1030200003EC07F0E552090EDBCF3FF00A0EDBCFD1 -:1030300040F0E7EC21F03EC008F03FC009F040C08E +:1030300040F0F1EC21F03EC008F03FC009F040C084 :103040000AF041C00BF0330E436EE20E446EC20E26 :10305000456E420E466E08C03EF009C03FF00AC001 -:1030600040F00BC041F001EC23F03EC004F03FC043 +:1030600040F00BC041F00BEC23F03EC004F03FC039 :1030700005F040C006F041C007F0CC0E436EBC0E18 :10308000446E8C0E456E3B0E466E04C03EF005C08D -:103090003FF006C040F007C041F001EC23F09DEC8A +:103090003FF006C040F007C041F00BEC23F0A7EC76 :1030A00023F03DC000F03EC001F03FC002F040C040 :1030B00003F000C0E6FF01C0E6FF02C0E6FF03C068 -:1030C000E6FF070EDBCF3FF0080EDBCF40F0E7EC6A +:1030C000E6FF070EDBCF3FF0080EDBCF40F0F1EC60 :1030D00021F03EC014F03FC015F040C016F041C0D2 :1030E00017F0330E436EE20E446EC20E456E420E72 :1030F000466E14C03EF015C03FF016C040F017C039 -:1031000041F001EC23F03EC010F03FC011F040C090 +:1031000041F00BEC23F03EC010F03FC011F040C086 :1031100012F041C013F0BD0E436E370E446E860EA2 :10312000456E410E466E10C03EF011C03FF012C019 -:1031300040F013C041F001EC23F09DEC23F03DC0C2 +:1031300040F013C041F00BEC23F0A7EC23F03DC0AE :103140000CF03EC00DF03FC00EF040C00FF00CC0C0 :10315000E6FF0DC0E6FF0EC0E6FF0FC0E6FF050E5E -:10316000DBCF3FF0060EDBCF40F0E7EC21F03EC0B6 +:10316000DBCF3FF0060EDBCF40F0F1EC21F03EC0AC :103170001CF03FC01DF040C01EF041C01FF0330ED8 :10318000436EE20E446EC20E456E420E466E1CC089 -:103190003EF01DC03FF01EC040F01FC041F001ECEA -:1031A00023F09DEC23F03DC018F03EC019F03FC065 +:103190003EF01DC03FF01EC040F01FC041F00BECE0 +:1031A00023F0A7EC23F03DC018F03EC019F03FC05B :1031B0001AF040C01BF018C0E6FF19C0E6FF1AC0A5 :1031C000E6FF1BC0E6FF09C5E6FFD7EC07F0206E5F :1031D0000D0EE15E20508CD1060E0AC5DBFF050EF8 :1031E0000BC5DBFF080E0CC5DBFF070E0DC5DBFFB3 :1031F00009C5E6FF03EC07F0E5520EC5E6FF070E32 -:10320000DBCF3FF0080EDBCF40F0E7EC21F03EC013 +:10320000DBCF3FF0080EDBCF40F0F1EC21F03EC009 :1032100008F03FC009F040C00AF041C00BF0330E87 :10322000436EE20E446EC20E456E420E466E08C0FC -:103230003EF009C03FF00AC040F00BC041F001EC85 +:103230003EF009C03FF00AC040F00BC041F00BEC7B :1032400023F03EC004F03FC005F040C006F041C08E :1032500007F0CC0E436EBC0E446E8C0E456E3B0EDA :10326000466E04C03EF005C03FF006C040F007C007 -:1032700041F001EC23F09DEC23F03DC000F03EC096 +:1032700041F00BEC23F0A7EC23F03DC000F03EC082 :1032800001F03FC002F040C003F000C0E6FF01C003 :10329000E6FF02C0E6FF03C0E6FF050EDBCF3FF00E -:1032A000060EDBCF40F0E7EC21F03EC014F03FC04B +:1032A000060EDBCF40F0F1EC21F03EC014F03FC041 :1032B00015F040C016F041C017F0330E436EE20E19 :1032C000446EC20E456E420E466E14C03EF015C0EE -:1032D0003FF016C040F017C041F001EC23F03EC0B3 +:1032D0003FF016C040F017C041F00BEC23F03EC0A9 :1032E00010F03FC011F040C012F041C013F0BD0E0D :1032F000436E370E446E860E456E410E466E10C00C -:103300003EF011C03FF012C040F013C041F001EC9C -:1033100023F09DEC23F03DC00CF03EC00DF03FC00B +:103300003EF011C03FF012C040F013C041F00BEC92 +:1033100023F0A7EC23F03DC00CF03EC00DF03FC001 :103320000EF040C00FF00CC0E6FF0DC0E6FF0EC06F :10333000E6FF0FC0E6FF09C5E6FF42EC08F0186E95 :103340000A0EE15E1850D4D0060E0AC5DBFF050E4A :103350000BC5DBFF09C5E6FF03EC07F0E5520CC522 -:10336000E6FF050EDBCF3FF0060EDBCF40F0E7ECCB +:10336000E6FF050EDBCF3FF0060EDBCF40F0F1ECC1 :1033700021F03EC008F03FC009F040C00AF041C053 :103380000BF0330E436EE20E446EC20E456E420EDB :10339000466E08C03EF009C03FF00AC040F00BC0C6 -:1033A00041F001EC23F03EC004F03FC005F040C006 +:1033A00041F00BEC23F03EC004F03FC005F040C0FC :1033B00006F041C007F0BD0E436E370E446E860E18 :1033C000456E410E466E04C03EF005C03FF006C09B -:1033D00040F007C041F001EC23F09DEC23F03DC02C +:1033D00040F007C041F00BEC23F0A7EC23F03DC018 :1033E00000F03EC001F03FC002F040C003F000C05A :1033F000E6FF01C0E6FF02C0E6FF03C0E6FF09C525 :10340000E6FFB0EC08F00C6E060EE15E0C5070D0DA @@ -716,35 +716,35 @@ :103450000501436B060EDBCF48F5050EDBCF49F5C2 :10346000080EDBCF4AF5070EDBCF4BF5400EE66EBC :10347000400EE66E050EE66E010EE66E010EE66E7D -:1034800092EC20F0006E050EE15E0050F3CF49F1A2 +:103480009CEC20F0006E050EE15E0050F3CF49F198 :10349000F4CF4AF12DD000C540F50501416B05017F :1034A000030E426F0501436B4CEC0CF0000904E085 :1034B0000501010E486F02D00501486B400EE66E13 :1034C000400EE66E050EE66E010EE66E010EE66E2D -:1034D00092EC20F0006E050EE15E0050F3CF49F152 -:1034E000F4CF4AF105D0010EE66E7BEC30F0E552E8 +:1034D0009CEC20F0006E050EE15E0050F3CF49F148 +:1034E000F4CF4AF105D0010EE66E85EC30F0E552DE :1034F000400EE66E000EE66E050EE66EE66A010E02 -:10350000E66E92EC20F0006E050EE15E0050F3CF07 +:10350000E66E9CEC20F0006E050EE15E0050F3CFFD :1035100047F1F4CF48F19FD0010149514A1102E12E :10352000000E08D049C1E9FF4AC1EAFFEF50800B05 :1035300001E0010E00094DE10101010E516F05018D :10354000406B01014C514C2B0501416F0501050EEB -:10355000426F0501436B0501486B2C0E006E600E37 +:10355000426F0501436B0501486B400E006E600E23 :10356000016E026A00C0E6FF01C0E6FF02C0E6FF8E -:10357000480EE66E050EE66E91EC2FF0036E050E1A +:10357000480EE66E050EE66E9BEC2FF0036E050E10 :10358000E15E0350400EE66E400EE66E050EE66EFE -:10359000010EE66E010EE66E92EC20F0006E050E56 +:10359000010EE66E010EE66E9CEC20F0006E050E4C :1035A000E15E0050F3CF49F1F4CF4AF1400EE66EF0 -:1035B000000EE66E050EE66EE66A010EE66E92EC11 +:1035B000000EE66E050EE66EE66A010EE66E9CEC07 :1035C00020F0006E050EE15E0050F3CF47F1F4CF1E :1035D00048F141D0010149514A1102E1000E08D0E1 :1035E00049C1E9FF4AC1EAFFEF50800B01E0010E3B :1035F000000931E100C540F50501416B0501030EED :10360000426F0501010E436F400EE66E400EE66EFE -:10361000050EE66E010EE66E010EE66E92EC20F0EF +:10361000050EE66E010EE66E010EE66E9CEC20F0E5 :10362000006E050EE15E0050F3CF49F1F4CF4AF190 :10363000400EE66E000EE66E050EE66EE66A010EC0 -:10364000E66E92EC20F0006E050EE15E0050F3CFC6 +:10364000E66E9CEC20F0006E050EE15E0050F3CFBC :1036500047F1F4CF48F10F0EE15C02E2E16AE55276 :10366000E16EE552E7CFD9FF120001015351541129 :1036700004E1100E536F270E546F5307000E545B76 @@ -754,731 +754,731 @@ :1036B000005D03E18C948C861200100E005D06E123 :1036C0000101535154110FE18C740AD0200E005D9A :1036D0000AE101015351541106E18C748CA402D00B -:1036E0008C9612008C86120012001200120012003A -:1036F00031EF2EF012001E0EE66E010EE66E60EC4B -:1037000020F0E552E552400EE66E000EE66E050E24 -:10371000E66EE66A010EE66E92EC20F0006E050E93 -:10372000E15E0050F3CF47F1F4CF48F112006D8411 -:103730000101080E686F070E696F6807000E695B6C -:1037400068516911FAE16D941200D9CFE6FFE1CF1B -:10375000D9FFFD0EDBCF3FF0FE0EDBCF40F0010EB8 -:103760003F1801E1405033E0E8683F1802E1E868A3 -:1037700040182BE0030E3F1801E1405024E0040EF6 -:103780003F1801E140501DE0020E3F1801E140509A -:1037900016E0170E3F1801E140500FE0160E3F18DB -:1037A00001E1405008E0150E3F1801E1405001E0F2 -:1037B00010D0A1DF0FD09EDF0DD09ADF0BD096DFA7 -:1037C00009D092DF07D091DF05D091DF03D0000050 -:1037D00001D000D0010E00D0E552E7CFD9FF120092 -:1037E0004BD8E652D0B202D0010E15D0D0B802D0DC -:1037F000020E11D0D0B002D0030E0DD0D0B602D040 -:10380000040E09D0FCAE02D0050E05D0FCAC02D0EF -:10381000060E01D0070EDF6ED088D086D084D0820D -:10382000D080FC9EFC9CDF50E552E552E7CFD9FFEB -:103830001200E65221D8020EE126F350DF6E010E8F -:10384000F4CFDBFF1200C00EE66EE00EE66E5FEC1A -:1038500030F0E552E5521200DF50F36E010EDB50FE -:10386000F46E020EE15C1200DFCFE6FFE66AADEC1B -:103870002FF0E552E5521200D9CFE6FFE1CFD9FF94 -:02388000120034 -:0E38820039EC21F06A6A686A6CEC21F06D8CFA -:103890006E6A1CEC21F06D9CDF6A4DEC21F010E2A9 -:1038A000DF50040DF3CFE9FFF4CFEAFF000EE92665 -:1038B000040EEA22EE6AEE6AEE6AEE6ADF2AEDD7BD -:1038C000160E706E68A604D0030EE2EC20F0FAD754 -:1038D0000101136B186B196B1A6B6D98080E0B6F47 -:1038E000040E0C6F016B006BE552F7EF20F039EC22 -:1038F00021F0010100510BE16D6A696A6CEC21F065 -:103900006DB602D06D86FCD70101010E006F000577 -:1039100008E16DBA06D0686A696A69806988020E32 -:10392000006F6850040B07E06950040B04E0020EBE -:10393000E2EC20F089D86DB247D06850010B14E05A -:103940006950010B11E09DDF0101040E006F0401BD -:10395000200E026F040E036F080E016F006B8C0EB9 -:103960000013E66AABEC21F06850100B07E06950D9 -:10397000100B04E060D8040EE2EC20F06850400B1D -:103980000BE06950400B08E073EC21F0020EEAEC0A -:1039900020F0060EE2EC20F06850200B04E06950A5 -:1039A000200B01E035D86850020B0AE06950020B89 -:1039B00007E073EC21F0E668E668CBEC21F06A6A78 -:1039C000040E0101005D02E2A19A1FD069A61CD07D -:1039D000DF6A040EDF5C18E268A616D06CCF20F117 -:1039E000030EE2EC20F0780E0101201502E138D838 -:1039F00009D0000EE66EE66A200EE66E010EE66E57 -:103A0000010EE8DBDF2AE5D7A19AE552F7EF20F0B7 -:103A100070A00ED005EC21F0EF50800808E1D5DB56 -:103A2000EF50840804E105EC21F08C0EEF6E7090ED -:103A3000050EE2EF20F06984040EC4DB6D8225ECF4 -:103A400021F0040EEAEF20F025EC21F0030EC2DB9A -:103A50006D92699468A403D0020EB4DBFBD7120008 -:103A600039EC21F0FD0E010120153DE17E0E2015FF -:103A7000E8407F0B040DF3CF03F1F4CF04F1000E07 -:103A80000327040E042303C105F104C106F10575E3 -:103A9000BCDBEF503C0BE842E8420D0822E1B5DB0D -:103AA000A2EC21F0EECF00F0EFCF01F0280E0018CD -:103AB00016E1040E011813E1DCEC21F0DF6AEDDB06 -:103AC0000EE2DF5055EC21F0DF50EA6A200FE96E7C -:103AD000040EEA22E552E750EF6EDF2AF0D70AD84B -:103AE00007D01AD805D0FD0E2015040801E122D810 -:103AF000E5527DD36ADBEF50800B02E066DBEF6AB4 -:103B000001010F6B106B146B156B136B64D89DDB8D -:103B1000170E60DB20EF1FF0020E0101105D02E1C5 -:103B2000ADEF1FF034D80101215102E1A7EF21F0E0 -:103B3000216B12009EDB49DBEF50400B01E0010ED0 -:103B4000DF6E01010B75080E005D09E122C46EFFF6 -:103B50006E50000802E2100E01D0040E006F100536 -:103B600013E1E0EC21F0A6D9020E01010F5D03E1A3 -:103B70002CDB840E07D0DF5003E127DBC80E02D018 -:103B800024DB880EEF6E01D002D8E55230D32BDB58 -:103B90000101106B1ADBEF6A040E0B19006E0CC1E9 -:103BA00001F0DE6E0CC1DDFF19DBEF6A18AF0CD03F -:103BB0001B511C1107E005D01CC1FAFF01011B516C -:103BC000F96EFADF0101189F020EE15C02E2E16A80 -:103BD000E552E16E0CD304012051600BE842E8424B -:103BE000E842E842E842000901E0120021510C0AD3 -:103BF00045E00B0A3FE00C0A31E0010A22E00B0A23 -:103C00001EE0020A1CE0030A18E0080A10E0010A9C -:103C10000CE00F0A08E0030A01E012000101138F13 -:103C2000080E006F1200A0EF1EF009EF20F0010156 -:103C3000010E116F010E126F0CD0E1EF1EF03FEF7D -:103C40001EF024510101116F126B020E1127010E9B -:103C500012231381010E146F138F12000101138FB1 -:103C600004012451EA6A020FE96E010EEA2222C41D -:103C7000EFFF1200EADA160EEAEF20F012007EDB08 -:103C8000040EE1260401220510E120511F0B00095A -:103C90000CE10101138F030E0401215D04E1010118 -:103CA000010E1F6F02D001011F6B0401225141E17F -:103CB00020511F0B02083DE124510F0B000939E090 -:103CC0000101138F040124BF05D0A4DA070EE926F1 -:103CD000010E04D09FDA0B0EE926010ED2DA030E94 -:103CE000215D03E17BDA840E23D024510F0B016A9E -:103CF000700F006E0F0E0122020E00C0DBFF030EDC -:103D000001C0DBFF020EDBCFE9FF030EDBCFEAFFD2 -:103D1000EE90ED5224AF06D061DAEF6ADF745EDA1E -:103D2000400E06D05BDA880EEF6EDF7457DAC80EED -:103D3000EF6E040EE15C02E2E16AE552E16E57D2F9 -:103D4000800E0401205D3CE10101C00E136F0401EF -:103D50002351030A1EE0010A09E0030A2FE10101D1 -:103D6000300E116F5D0E126F120E22D0C3DADA0E12 -:103D7000F6265D0EA2DA020E0101F76A1125F66E33 -:103D80001251F7220900F5CF14F10A00F5CF15F111 -:103D90001200030E225D0FE2ADDADC0EF6265D0E98 -:103DA0008CDA11C1F6FF12C1F7FF0800F5500101CE -:103DB000146F156B12000101136B12000101136BDC -:103DC000120011DA0401286B296B20511F0B020A23 -:103DD00011E0030A0CE0010A22E10101138F040142 -:103DE000288101011F051BE10401288318D001016E -:103DF000138F15D00101138F040124BF05D00ADAF7 -:103E0000070EE926010E04D005DA0B0EE926010E95 -:103E100038DAE4D9EF50040B02E0010E286F0101FB -:103E200013AF07D0280E116F040E126F1381020E0C -:103E3000146F020EE15C02E2E16AE552E16ED7D155 -:103E40006D98010113BF08D018AF02D061DA2AD0F3 -:103E50007EDABBD9840E27D018BF2BD0040120AF47 -:103E600024D0010114510401265D01011551040102 -:103E7000275904E226C414F127C415F11BD8010107 -:103E8000010E106FA1DA800EEF6E216BBED9EE52DB -:103E9000080EEF6E91DAB9D9840EEF6E010E216F24 -:103EA0008FDA93D9C80EEF6E1200010131DAC80E15 -:103EB000EF6E120098D90101080E145D000E15591D -:103EC0000DE214C1DEFF15C1DDFF0F5102E1010E4D -:103ED00003D00F0506E1020E0F6F03D0080EDE6E51 -:103EE000DD6A73D9EF9271D9EF906FD9010EDB5073 -:103EF000EF126BD9EE52DFCFEFFF000EDB50145FF5 -:103F0000010EDB50155B280E1D6F040E1E6F13B1E2 -:103F10000FD0F7D91BE011C1F6FF12C1F7FF112B2B -:103F2000000E12230800F55096D9F3E2DB06F1D714 -:103F3000E8D90CE011C1E9FF12C1EAFF112B000E14 -:103F40001223EF5088D9F4E2DB06F2D7020EE15CCF -:103F500002E2E16AE552E16E4AD145D956D9EE5204 -:103F6000EFCFDFFFDFCF00F000500101195D000E41 -:103F70001A5903E219C1DFFF09D0DF50006E016A50 -:103F8000E850195D196F01501A591A6F010EDB6A5A -:103F9000DF50F36E010EDBCFF4FFF350F45C10E260 -:103FA000010EDB5082D916C1E9FF17C1EAFF162BBB -:103FB000000E1723E552E750EF6E010EDB2AE8D71B -:103FC000000ED8801955000E1A550DE2F4D854D9B8 -:103FD0001CD9EF50400B03E1EAD9C80E02D0E7D953 -:103FE000880EEF6E0FD0F0D9840EEF6E1B511C11AE -:103FF00007E005D01CC1FAFF01011B51F96EFADF81 -:104000000101189F020EE15C02E2E16AE552E16EF5 -:10401000EED00101138F10D9010EE66EE66AE66A52 -:10402000020EE66E010EAFD922C401F10401225145 -:1040300004E10101100E006F12000101200E006F5B -:1040400004D9150EEAEF20F0CED8000EDE6E040E75 -:10405000DD6EE8D8040DF350006E016A020E0F0BFE -:1040600005E0D89001320032E806FBE1D890003636 -:104070000136D89000360136D9CFE9FFDACFEAFF12 -:104080000050EE260150ED22A9D8EF9EFD0EDB5028 -:1040900002E16AD901D06DD9EA22DECFEEFFDDCF91 -:1040A000EDFF9CD8EF9C9AD8040EE926000EEA2278 -:1040B000EF8C020EE15C02E2E16AE552E16E97D01C -:1040C00092D8FE0EDB50016A700F006E0F0EDFD823 -:1040D00085D8FD0EDBCFEFFFDBA402D0E66AF5D872 -:1040E000FD0EDBA203D0010EE66EEFD8020EE15CFE -:1040F00002E2E16AE552E16E7AD075D8FE0EDB503D -:1041000005E125D962D8840EEF6E05D08BD80CD985 -:1041100089D8010F09D9020EE15C02E2E16AE55299 -:10412000E16E65D060D8FD0EDB5002E022D901D0EF -:104130001BD9A7D853D806D9FB0EDBCFEEFFFC0E58 -:10414000DBCFEDFF4BD8EE52FA0EDBCFEFFF400E88 -:1041500045D8E850EF16880E41D8E850EF12FD0E12 -:10416000DB5002E006D901D0FFD8EA22EF74DECF9F -:1041700000F0DDCF01F000C0F3FF01C0F4FF020E3C -:10418000E15C02E2E16AE552E16E31D0F7D8010E5E -:10419000F36EFC0EDB5004E0D890F336E806FCE149 -:1041A000F31C006EFD0EDBCFE9FFFE0EDBCFEAFF56 -:1041B0000050EF161CD0FBD8EE52080EEF6EF7D869 -:1041C000A2EF21F0E66EABEF21F00BC1E9FF0CC1CD -:1041D000EAFF1200E66EE66ACBEF21F0DECFE9FFE0 -:1041E000DDCFEAFF1200CAD8020EE1261200E55226 -:1041F000E7CFD9FF1200D6D8D7EF21F0FE0EEA6A3A -:10420000DB34FE0BEA36E96E120003C1E9FF04C19C -:10421000EAFF120024510F0BE96EEA6AD890E936E2 -:10422000EA361200FD0EDB50E824026EFE0EDB5073 -:10423000040DF35002241200000EE66EE66AE66AF0 -:10424000710EE66E0F0EC3EF21F0000EE66EE66A09 -:10425000E66EE66A1200E66E1DC1E9FF1EC1EAFFC6 -:104260001D2B000E1E23E552E750EF6EDF06010EF8 -:10427000120084D8E6521200280EEE6E040EED6E87 -:104280001200EA22EECFDEFFEDCFDDFF12000122A9 -:1042900000C0DEFF01C0DDFF1200DF50006E016ACA -:1042A000080E005C000E01581200EA6A280FE96E41 -:1042B000040EEA22EF50E66E1200F7220900F5CF55 -:1042C00011F10A00F5CF12F11200FE0EDBCFE6FF6E -:1042D000BBDEE552E5521200160E6F6E9F0E6B6E3E -:1042E0007B0E696E1200010EE66EE66A000EE66E47 -:1042F000E66A12002251F66EF76AD890F636F73663 -:104300001200D9CFE9FFDACFEAFFEE50ED1012002C -:10431000020E106F5ADFEE52EF6A57DFC80EEF6ED3 -:104320004ADFAADFD7EF21F0040DF3CF00F0F4CF7E -:1043300001F0000E0026040EAADF840E4FDFE850C5 -:10434000EF121200020EE926000EEA2212003CD8FB -:104350008C0EEF6E1200680EE66E0F0EE66E16DF24 -:10436000E552E552E552120049DF070EE926010E3B -:10437000120044DF0B0EE926010E1200D9CFE6FF32 -:10438000E1CFD9FF1200E66E77EC2FF0006E050E3C -:10439000E15E00501200A5EC1BF0006E060EE15E1F -:1043A00000501200200EEE6E040EED6E120005C1DC -:1043B000E9FF06C1EAFF120028DFC4DFD2EF21F0D7 -:0E43C00004DFC0DF3CEF21F0F6DEFBEF20F063 -:0243CE00489E07 -:1043D00008D0489E40AE05D03F6C401EE86A40229F -:1043E000488E40C03AF03FC039F04C6A4B6A8E0E9E -:1043F0003B6E3C6AF0EF23F0489E0CD0489E40AEE6 -:1044000009D03D6C3E1E3F1E401EE86A3E223F2200 -:104410004022488E40C03AF03FC039F03EC04CF0D8 -:104420003DC04BF09E0E3B6E3C6AF0EF23F0467EA3 -:10443000486A2CEC24F044EC24F048B6D4EF23F086 -:1044400048A20AD048AA03D048BED4EF23F048A41B -:10445000E0EF23F0DDEF23F048AA05D048ACE0EF11 -:1044600023F0DDEF23F048A00AD048A808D048BECA -:1044700004D048A402D0E9EF23F0EDEF23F04B6A1B -:104480003C6A4650415C4A6E10E33EC04CF03FC06F -:1044900039F040C03AF041C049F043C03EF044C05A -:1044A0003FF045C040F0483A09D043C04CF044C00A -:1044B00039F045C03AF046C049F04A6C489E48BCC5 -:1044C000488E49C03BF048B01CEF24F01A0E4A60F9 -:1044D0001CEF24F03B6A416A48A408D03E6C3F1EA2 -:1044E000401E411EE86A3F224022412248AC08D0CB -:1044F0004C6C391E3A1E3B1EE86A39223A223B2296 -:104500003D6A4A5207E0413440323F323E323D324A -:104510004A2EF9D73E504C263F50392240503A227D -:1045200041503B223DC04BF0489E3BAE0BD04B6C04 -:104530004C1E391E3A1E3B1EE86A4C2239223A2292 -:104540003B22488E3BA006D0D8803A3239324C32DA -:104550004B32492A49C03BF0F0EF23F0486A2CEC7B -:1045600024F044EC24F048B6D4EF23F048A205D060 -:1045700048BAD4EF23F0DBEF23F048BAE7EF23F09B -:1045800048A005D048B8D4EF23F0E7EF23F048B8AF -:10459000DBEF23F03C6A7F0E41243B6EE86A3C224D -:1045A00046503B5EE86A3C5A1A0E496E416A4B6AB5 -:1045B0004C6A396A3A6A43503E5E44503F5A45500D -:1045C000405A000E415A09E743503E2644503F22CC -:1045D00045504022000E412201D04B8AD8903E36F1 -:1045E0003F3640364136D8904B364C3639363A361F -:1045F000492EE1D740503F103E10D8A44B8AF0EF2F -:1046000023F0486A2CEC24F044EC24F048B6D4EFB4 -:1046100023F048A205D048B8D4EF23F0DBEF23F015 -:1046200048AA05D048B0D4EF23F0DBEF23F048B020 -:1046300002D048A802D0E7EF23F03C6A465041245C -:104640003B6EE86A3C227E0E3B5EE86A3C5A4B6A4F -:104650004C6A396A3A6A45504002F4CF3AF0F3CFD7 -:1046600039F044504002F3504C26F4503922000EE9 -:104670003A2245503F02F3504C26F4503922000EA6 -:104680003A2243504002F3504B26F4504C22000E85 -:1046900039223A2244503F02F3504B26F4504C2228 -:1046A000000E39223A2245503E02F3504B26F45078 -:1046B0004C22000E39223A2243503F02F4504B263E -:1046C000000E4C2239223A2244503E02F4504B262E -:1046D000000E4C2239223A22F0EF23F0486A2CECEB -:1046E00024F048B678EF23F048A20ED048B405D0A5 -:1046F0007F0E406EFF0E3F6E1FD0800E406E3F6AF1 -:104700001BD0406A3F6A18D048B0FBD78F0E41607B -:10471000EDD77E0E4164F5D78E0E415C05E0D89052 -:1047200040323F32412AF8D748A406D03F6C401EA1 -:10473000E86A402240AEE5D71200486A2CEC24F02B -:1047400048B6A7EF23F048A20FD048B407D07F0E99 -:10475000406EFF0E3F6E3E6E3D6E25D0800E406E69 -:1047600001D0406A000EF6D748B0FBD73D6A9F0ED5 -:104770004160EBD77E0E4164F4D79E0E415C07E0AA -:10478000D89040323F323E323D32412AF6D748A4DB -:104790000AD03D6C3E1E3F1E401EE86A3E223F226C -:1047A000402240AEDED712007F0E416EFF0E406EFB -:1047B0003F6E3E6E12007F0E48BEFF0E416E02D06D -:1047C0007F0E416E800E406E3F6A3E6AF3D748AE60 -:1047D00004D0800E416E406AF7D7416A406AF4D730 -:1047E0003A5039104C104B10F8E03CBEF0D73ABEAE -:1047F0000CD03B503C10EBE0D8904B364C36393661 -:104800003A363B06D8A03C06F2D73C50D4E13B28D0 -:10481000D2E04BAE11D07F0E4B1402E14CA00CD075 -:104820004C2AE86A39223A2207E3D8803A323932F0 -:104830004C323B2A3B28BFE03B50C9E04CC03EF025 -:1048400039C03FF03A34406E3B30416E4032419EB9 -:1048500048BE418EDAEF23F04036413602E3488409 -:10486000487E06E14880416A406A3F6A3E6A12001B -:10487000412803E0D88040321200D890403202E153 -:1048800048821200488612004536463602E3488CBC -:10489000487E06E14888466A456A446A436A1200CF -:1048A000462803E0D88045321200D8904532EAE12C -:1048B000488A12006CEC24F048B6000C48B0000C9A -:1048C00048B4000C010C6CEC24F048B6000C48B065 -:1048D000000C48A4000C010C486A2CEC24F044ECB9 -:1048E00024F048B6120048AE08D048A004D048A82A -:1048F00002D048801200489012004650415C0BE103 -:104900004550405C08E144503F5C05E143503E5C4B -:1049100002E148801200D8A002D0488E10D0415049 -:1049200046C041F0466E405045C040F0456E3F5095 -:1049300044C03FF0446E3E5043C03EF0436E46508C -:10494000415C10E0FF0F09E0489048B403D048AE46 -:104950004884120048AE48941200462AD890453246 -:104960004432433243503E5E44503F5A4550405AD1 -:1049700040BEEAD7D8903E363F364036412EF8D773 -:10498000C8D7476A45AECAEF24F0446C451EE86AB2 -:104990004522471E40AED2EF24F03F6C401EE86A2D -:1049A0004022471EC5EC30F040BEE2EF24F047AE97 -:1049B000000C3F6C401EE86A40223B6C3C1EE86ADB -:0E49C0003C22000C47BED9EF24F04888FF0CC3 -:0249CE00D9CF3F -:1049D000E6FFDACFE6FFE1CFD9FFE2CFDAFF1D0E27 -:1049E000E12402E3E168E652E16E67DAFA0EDBCF1A -:1049F000EEFFFB0EDBCFEEFFFC0EDBCFEEFFFD0E7E -:104A0000DBCFEEFFD950040FE66E000EDA20E66E23 -:104A10000BDA16EC2DF0006E060EE15C02E2E16AA4 -:104A2000E552E16E0050E76E0B0EE7CFDBFFDB5087 -:104A3000800807E10A0EDB6ADE68DE68DE687F0E4A -:104A400013D00B0EDB0405E1DE6ADE6ADE6ADD6A86 -:104A5000A6D10B0EDB50040809E1DB0EDE6E0F0E53 -:104A6000DE6EC90EDE6E3F0EDD6E99D1DDD91EDA27 -:104A70003DC0DEFF3EC0DEFF3FC0DEFF40C0DDFFC9 -:104A8000DD52DD52DBD90DDA3F0E20DA23E13E6A3A -:104A90003F6A800E406E3F0E416EDECF43F0DECFA8 -:104AA00044F0DECF45F0DDCF46F0DD52DD52AEEC16 -:104AB00022F03EC0DFFF010E3FC0DBFF020E40C010 -:104AC000DBFF030E41C0DBFF020EF36E0C0EF3CFD3 -:104AD000DBFF02D00C0EDB6AB1D9A30E436E300EA1 -:104AE000446E890E456E3E0EF1D96CE1AF0E3E6EFE -:104AF000670E3F6E3B0E406E3F0E416EB2D93EC018 -:104B000008F03FC009F040C00AF041C00BF0C9D91D -:104B10003F0E466E17EC22F03EC004F03FC005F099 -:104B200040C006F041C007F0C8D9EECF0CF0EECF80 -:104B30000DF0EECF0EF0EFCF0FF00CC043F00DC034 -:104B400044F00EC045F00FC046F018EC22F080D9BA -:104B5000D70E146EB30E156EDD0E166E3F0E176E69 -:104B6000ACD9EECF18F0EECF19F0EECF1AF0EFCFB0 -:104B70001BF018C043F019C044F01AC045F01BC028 -:104B800046F014C03EF015C03FF016C040F0416E34 -:104B900018EC22F03EC010F03FC011F040C012F0FF -:104BA00041C013F03EC043F03FC044F040C045F068 -:104BB00041C046F035D9AEEC22F05FD9DD52DD526E -:104BC0000C0EDB2A31D972D93DC000F03EC001F095 -:104BD0003FC002F040C003F064D9390E466E3DC0BC -:104BE0003EF07AD963EC24F0010A01E1B5D04ED948 -:104BF00038D90D0E3EC0DBFF0E0E3FC0DBFF0F0E9F -:104C000040C0DBFF100E41C0DBFF910E3E6E860EF2 -:104C10003F6E500E406EBD0E416E0D0EDBCF43F069 -:104C20000E0EDBCF44F00F0EDBCF45F0100E4AD94D -:104C30000FD9F60E436E100E446EF10E456EBE0E89 -:104C4000466E18EC22F0110E3EC0DBFF120E3FC084 -:104C5000DBFF130E40C0DBFF140E41C0DBFF0D0E67 -:104C6000DBCF00F00E0EDBCF01F00F0EDBCF02F03A -:104C7000100EDBCF03F0D30E436ECC0E446EB40E99 -:104C8000456E3F0E466ECCD818EC22F0150E3EC095 -:104C9000DBFF160E3FC0DBFF170E40C0DBFF180E18 -:104CA00041C0DBFF0D0EDBCF3EF00E0EDBCF3FF041 -:104CB0000F0EDBCF40F0100EDBCF41F0110EDBCF3B -:104CC00043F0120EDBCF44F0130EDBCF45F0140E91 -:104CD000F9D8150EDBCF43F0160EDBCF44F0170EDC -:104CE000DBCF45F0180EDBCF46F0AEEC22F0B0D8AB -:104CF000190E3EC0DBFF1A0E3FC0DBFF1B0E40C08B -:104D0000DBFF1C0E41C0DBFFC1D8190EDBCF43F027 -:104D10001A0EDBCF44F01B0EDBCF45F01C0ED2D8B1 -:104D200097D8CBD8EECF3EF0EECF3FF0EECF40F0AD -:104D3000EFCF41F000C043F001C044F002C045F0A5 -:104D400003C046F018EC22F041C0EDFF40C0EDFF7B -:104D50003FC0EDFF3EC0EFFF0C0EDB0409E1920EF9 -:104D6000006E0A0E016E060E3FD818EC22F016D027 -:104D70000C0EDB50020806E1DB0E006E0F0E016E1A -:104D8000C90E09D00C0EDB5003080BE1920E006E29 -:104D90000A0E016E860E28D817EC22F06ED8DD526E -:104DA000DD520A0EDB500AE049D87BD8BF0E466EB2 -:104DB00037D801EC23F061D8DD52DD52DECF3DF073 -:104DC000DECF3EF0DECF3FF0DDCF40F0DD52DD52F2 -:104DD0001D0EE15C02E2E16AE552E16EE552E5CFCB -:104DE000DAFFE7CFD9FF1200026E3F0E036E65D8DF -:104DF000EECF04F0EECF05F0EECF06F0EFCF07F0E8 -:104E000004C043F005C044F006C045F007C046F0BA -:104E100000C03EF001C03FF002C040F0416E120001 -:104E200000C03EF06CEF27F048D8EECFE6FFEECFA3 -:104E3000E6FFEECFE6FFEFCFE6FF12003ED8EECF63 -:104E400000F0EECF01F0EECF02F0EFCF03F0120052 -:104E50003EC000F03FC001F040C002F041C003F08E -:104E60001200000EDFCF43F0010EDBCF44F0020E44 -:104E7000DBCF45F0030E62EF27F03EC0DEFF3FC000 -:104E8000DEFF40C0DEFF41C0DDFF1200DECF3EF09E -:104E9000DECF3FF0DECF40F0DDCF41F0DD52DD521E -:104EA0001200436A446A800E456E1200E3EC2FF054 -:104EB000E552E552E552E5521200D9CFE9FFDACFCB -:104EC000EAFF1200DBCF46F001EF23F0466EA8DFC9 -:104ED0005AEC24F0010A120001C03FF002C040F079 -:064EE00003C041F01200C6 -:0A4EE600D9CFE6FFDACFE6FFE1CFF7 -:104EF000D9FFE2CFDAFF240EE12402E3E168E652B3 -:104F0000E16ED950FA0FE96EFF0EDA20EA6E020E5A -:104F1000EECFDBFF030EEECFDBFF040EEECFDBFFA9 -:104F2000050EEECFDBFFE8D9F2D916EC2DF0006EBE -:104F3000060EE15C02E2E16AE552E16E0050E76EC6 -:104F40000D0EE7CFDBFFDB50800815E0A0D9436AE8 -:104F5000446A456A466A00C03EF001C03FF002C0A4 -:104F600040F003C041F063EC24F0010A10E1210E8F -:104F70000101466F476B020EDB68030EDB68040E0F -:104F8000DB687F0EF36E050EF3CFDBFF66D10D0EEF -:104F9000DB50050B01E061D10A0EDBCF00F00B0EF8 -:104FA000DBCF01F0830E0026FF0E012200C0DEFFE2 -:104FB00001C0DDFFD950060F65D976D9DF50010B4E -:104FC0000FE0DF06010E01E2DB06D950180F5AD9B7 -:104FD000D890EF36010EEB36020EEB36030EEB36B1 -:104FE000D9CFE9FFDACFEAFF020E446E456AEECF71 -:104FF0003FF0EDCF40F0C1EC24F03FC0EEFF40C0E9 -:10500000EDFF140EDB6A150EDB6A160EDB6A170E57 -:10501000DB6A1C0EDB6A1D0EDB6A1E0EDB6A010EEC -:10502000F36E1F0EF3CFDBFF010EF36E0E0EF3CF08 -:10503000DBFF0F0EDB6A0E0EDBCF00F00F0EDBCFB7 -:1050400001F0D890015004E61A0E005C000E0158E1 -:1050500001E398D0180EDBCF00F0190EDBCF01F082 -:105060001A0EDBCF02F01B0EDBCF03F0010E1F0B7D -:1050700007E0D8900036013602360336E806F9E13B -:10508000180E00C0DBFF190E01C0DBFF1A0E02C0B4 -:10509000DBFF1B0E03C0DBFF140EDBCF08F0150E89 -:1050A000DBCF09F0160EDBCF0AF0170EDBCF0BF0CB -:1050B000010E1F0B07E0D890083609360A360B366A -:1050C000E806F9E1D9501C0FDDD80850EE24046E33 -:1050D0000950EE20056E0A50EE20066E0B50EE20B1 -:1050E000076ED950180FCED80450EE5C006E0550F4 -:1050F000EE58016E0650EE58026E0750EE58036EE1 -:10510000200E00C0DBFF210E01C0DBFF220E02C01B -:10511000DBFF230E03C0DBFF200EDBCF3EF0210EB2 -:10512000DBCF3FF0220EDBCF40F0230EDBCF41F090 -:105130004134000E411809E6D880000E3E54000E9E -:105140003F54000E4054000E415411E2D950200F3C -:1051500099D8AAD8D8D81C0EDB50EE121D0EDB5001 -:10516000EE121E0EDB50EE121F0EDB50EE12D95067 -:105170001C0F88D8AFD80E0EDB2A0F0E01E25BD7CA -:10518000DB2A59D7C9D8100E00C0DBFF110E01C0B1 -:10519000DBFF180EDBCF3FF0190EDBCF40F0120E15 -:1051A0003FC0DBFF130E40C0DBFFADD893D8D95012 -:1051B000100F68D8EE50ED1012E0D950120F62D8DF -:1051C000EE50ED1006E1A8D80050011002100310B7 -:1051D00006E099D8EE2A000EEE22EE22EE220C0E08 -:1051E000DB6A91D8060EEECFDBFF070EEECFDBFFBA -:1051F000080EEECFDBFF090EEECFDBFF7E0EF36E67 -:105200000A0EF3CFDBFF0B0EDB6AD950020FE66EFE -:10521000000EDA20E66E70D8A4EC2DF0E552E552CF -:10522000E552E552DECFE6FFDDCFE6FF70D87AEC3F -:105230002CF0006E060EE15C02E2E16AE552E16EDE -:105240000050020E3DC0DBFF030E3EC0DBFF040E2C -:105250003FC0DBFF050E40C0DBFF19D800C03DF0AA -:1052600001C03EF002C03FF003C040F0240EE15CFC -:1052700002E2E16AE552E16EE552E5CFDAFFE7CFFF -:10528000D9FF1200E96E000EDA20EA6E1200020E5B -:10529000DBCF00F0030EDBCF01F0040EDBCF02F01A -:1052A000050EDBCF03F01200180EEECFDBFF190E58 -:1052B000EECFDBFF1A0EEECFDBFF1B0EEECFDBFFD8 -:1052C0001200EECFE6FFEECFE6FFEECFE6FFEFCF28 -:1052D000E6FF1200D890030EEB32020EEB32010E05 -:1052E000EB32EF321200EE500016EE500116EE5087 -:1052F0000216EE5003161200D950060FE66E000E8D -:10530000DA20E66E1200D950140F42EF29F0D9507E -:10531000020FB8DF61EF29F0010E006E016A026A28 -:08532000036AF1DF73EF29F0CD -:08532800A5D9E65201016A510A -:10533000040A45E0070A2DE0010A23E0030A0BE016 -:10534000010A01E094D0870EE66E96EC30F0E5524B -:105350000101010E32D012EC31F0000901E088D0D9 -:1053600072D901AE02D0026803686BC1E9FFEA6A34 -:10537000E9BEEA6845D9B00EE926000E56D9020EFC -:105380001CD08F0EE66E96EC30F0E5520101030E54 -:1053900014D012EC31F000096BE155D901AE02D006 -:1053A000026803686BC1E9FFEA6AE9BEEA6828D9C6 -:1053B000D80EE926000E39D9040E6A6F59D06B2B2E -:1053C0000A0EE76E6B19E8AE02D0E73402D0E75060 -:1053D0006B5D4BE36B6B6CC1E9FFEA6AE9BEEA689F -:1053E00065D9EA22EE6AEE6AEE6AEE6A6CC1E9FFFE -:1053F000EA6AE9BEEA685FD9EA22EE6AEE6AEE6A14 -:10540000EE6ADF6A31D9E8AE02D0E73402D0E75065 -:10541000005C1EE2DFCFE9FFEA6AE9BEEA68F0D885 -:10542000B00EE926000EFCD8E9BEEA683FD908D9DB -:10543000DFCFE9FFEA6AE9BEEA68E2D8D80EE926DA -:10544000000EEED8E9BEEA6836D9FAD8DF2ADAD7F4 -:1054500001016C2B0A0EE76E6C19E8AE02D0E7343E -:1054600002D0E7506C5D01E36C6B6A6B01D06A6B34 -:10547000E55205D1FFD8050EE126010EDB6A020ECA -:10548000DB6A030EDB6A040EDB6AFE0EDB5011E101 -:10549000DF6AEAD8E8AE02D0E73402D0E750005C19 -:1054A0001CE2DFCFE9FFEA6AE9BEEA68FFD8AFD8BD -:1054B000F0D7FE0EDB0411E1DF6AD6D8E8AE02D0E9 -:1054C000E73402D0E750005C08E2DFCFE9FFEA6A88 -:1054D000E9BEEA68F0D89BD8F0D7010EDBCF18F010 -:1054E000020EDBCF19F0030EDBCF1AF0040EDBCF78 -:1054F0001BF018C03DF019C03EF01AC03FF01BC0B1 -:1055000040F0FEEC21F03EC014F03FC015F040C06A -:1055100016F041C017F0A0D83EC010F03FC011F007 -:1055200040C012F041C013F097D83EC00CF03FC00D -:105530000DF040C00EF041C00FF0436A446AA00E67 -:10554000456E400E466E01EC23F03EC008F03FC0B1 -:1055500009F040C00AF041C00BF0436AC00E446E2F -:105560007F0E456E440E466EAEEC22F03EC004F057 -:105570003FC005F040C006F041C007F0436A446AEE -:10558000200E456E400E466E17EC22F03EC000F035 -:105590003FC001F040C002F041C003F0436A500E2A -:1055A000446E430E456E460E466E01EC23F09DECB4 -:1055B00023F0050EE15C02E2E16AE552E16E5FD0A4 -:1055C00059D8FE0EDB5002E1808409D0FE0EDB04C8 -:1055D00005E0FE0EDB50020802E1808481884FD096 -:1055E00049D8FE0EDB5002E1809409D0FE0EDB04A8 -:1055F00005E0FE0EDB50020802E1809481983FD066 -:10560000D890E936EA36D890E936EA3612003BD827 -:10561000D950010FE96EDACFEAFF3FD8DF2A120036 -:1056200032D86CC1E9FFEA6A1200EA2200C0EEFF3C -:1056300001C0EEFF02C0EEFF03C0EEFF0101120049 -:10564000EA224DEF2BF002EC31F0F3CF00F0F4CF73 -:1056500001F0026A036A1200436A446A200E456E32 -:10566000410E466EAEEF22F0DFCF00F00A0EE76E7D -:1056700000181200D9CFE6FFE1CFD9FF1200E552A2 -:10568000E7CFD9FF1200EA22EECF00F0EECF01F013 -:10569000EECF02F0EFCF03F012000050EE260150E3 -:1056A000EE220250EE220350EE221200A9DF600E1D -:1056B000E926000E1200A4DF880EE926000E120073 -:1056C000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFAD -:1056D000140EE12402E3E168E652E16ED950040FB2 -:1056E000E66E000EDA20E66ED950F60FDAD802E246 -:1056F000E16AE552E16E0050E76E120EE7CFDBFF84 -:10570000D9500B0FE66E000EDA20E66ED950FA0F74 -:10571000C8D802E2E16AE552E16E0050E76E130E6E -:10572000E7CFDBFFDBCFE6FF120EDB50E552E710E1 -:10573000800B0EE1120EDB50040804E1130EDB5067 -:10574000040806E0120EDB040DE1130EDB040AE18F -:10575000210E0101466F476BDE68DE68DE687F0E52 -:10576000DD6E87D0FA0EDBCF3EF0FB0EDBCF3FF0D5 -:10577000FC0EDBCF40F0FD0EDBCF41F0F60EDBCFB1 -:1057800043F0F70EDBCF44F0F80EDBCF45F0F90E17 -:10579000DBCF46F0AEEC22F03EC004F03FC005F097 -:1057A00040C006F041C007F097D841C0E6FFE3ECE7 -:1057B0002FF0E552E552E552E5523DC000F03EC003 -:1057C00001F03FC002F040C003F03DC0E6FF84D8C6 -:1057D000E7EC24F0E552E552E552E5523DC0DEFF2C -:1057E0003EC0DEFF3FC0DEFF40C0DDFFDD52DD52C8 -:1057F0000A0EDB5023E0DB0E006E0F0E016E490E29 -:10580000026E400E036ED9CFE9FFDACFEAFFEECF8A -:1058100004F0EECF05F0EECF06F0EFCF07F004C0B6 -:1058200043F005C044F006C045F007C046F05BD821 -:10583000416E17EC22F047D8DD52DD52110EDB50DD -:105840001AE0D9CFE9FFDACFEAFFEECF00F0EECFD2 -:1058500001F0EECF02F0EFCF03F0436A446A800E0E -:10586000456EBF0E466E3FD803C041F001EC23F0F9 -:105870002AD8DD52DD52DECF3DF0DECF3EF0DECF66 -:105880003FF0DDCF40F0DD52DD52140EE15C02E26C -:10589000E16AE552E16EE552E5CFDAFFE7CFD9FFE5 -:1058A0001200E96EFF0EDA20EA6EEECFE6FFEECFD1 -:1058B000E6FFEECFE6FFEFCFE6FF16EC2DF0006E31 -:1058C000060EE15C12003EC0DEFF3FC0DEFF40C0BE -:1058D000DEFF41C0DDFF12003EC0E6FF3FC0E6FF35 -:1058E00040C0E6FF120000C03EF001C03FF002C021 -:0458F00040F0120072 -:0C58F40096D8E1CFD9FFE2CFDAFF0C0E0E -:10590000E12402E3E168E652E16ED950FA0FE96E54 -:10591000FF0EDA20EA6E080EEECFDBFF090EEECFA7 -:10592000DBFF0A0EEECFDBFF0B0EEECFDBFF79D8ED -:10593000D950080FE96E000EDA20EA6EEECFE6FFCE -:10594000EECFE6FFEECFE6FFEFCFE6FF16EC2DF051 -:10595000006E060EE15C02E2E16AE552E16E005083 -:10596000E76E070EE7CFDBFFDB50840B3AE1070E53 -:10597000DB041AE1060EDB5006E0006A016A026AE7 -:10598000800E036E04D0006A016A026A036A080E80 -:1059900000C0DBFF090E01C0DBFF0A0E02C0DBFF07 -:1059A0000B0E03C0DBFF1DD0F80EDBCF00F0F90EAD -:1059B000DBCF01F0D950040FE96E000EDA20EA6E59 -:1059C0000050EE260150ED22D950080FE66E000E71 -:1059D000DA20E66E26D8A4EC2DF0E552E552E55229 -:1059E000E552080EDBCF00F0090EDBCF01F00A0E06 -:1059F000DBCF02F00B0EDBCF03F000C03DF001C0A7 -:105A00003EF002C03FF003C040F00C0EE15C02E249 -:105A1000E16AE552E16EE552E5CFDAFFE7CFD9FF63 -:0C5A20001200D9CFE6FFDACFE6FF12003B -:045A2C00D9CFE6FFE9 -:105A3000DACFE6FFE1CFD9FFE2CFDAFFE652006826 -:105A400001687F0E026E036AD950FA0FE96EFF0EED -:105A5000DA20EA6EEE500016EE500116EE500216F5 -:105A6000EE5003166AD800C0EEFF01C0EEFF02C080 -:105A7000EEFF03C0EEFFFD0EDB50800B02E0010ED7 -:105A800001D0000EE66E59D8060EE926000EEA2275 -:105A9000E552E750EF6EFC0EDBCF00F0FD0EDBCFE2 -:105AA00001F0D89000360136FC0E00C0DBFFFD0E81 -:105AB00001C0DBFFDB50E66E40D8040EE926000E85 -:105AC000EA22E552E750EE6EED6AFD0EDB50006E05 -:105AD000016AFF0E001818E1015016E12ED8EECF32 -:105AE00000F0EECF01F0EECF02F0EFCF03F0005068 -:105AF00001100210031006E0210E0101466F476BF2 -:105B0000800E0BD0040E09D0FD0EDB5008E115D835 -:105B1000EE6AEE6AEE6AEE6A010EDF6E06D0020EE3 -:105B2000DF6E0BD8EE52EE52EE8EDF50E552E552AC -:105B3000E5CFDAFFE7CFD9FF1200F80EDBCFE9FFA0 -:085B4000F90EDBCFEAFF1200B1 -:085B4800D9CFE6FFDACFE6FF3A -:105B5000E1CFD9FFE2CFDAFF5BD8013411E2005088 -:105B6000FE08000E01540CE276D805E06CD8800ED9 -:105B7000EE6EEE6847D067D8800EEE6E7F0E0ED0C8 -:105B800047D8D890015004E6010E005C000E015881 -:105B90000BE261D805E057D8EE6A800EEE6E32D087 -:105BA00052D8EE6AEE6A2ED047D8EECF00F0EECF94 -:105BB00001F0EECF02F0EFCF03F032D800C0EEFFDD -:105BC00001C0EEFF02C0EEFF03C0EEFF21D800507F -:105BD000010B05E025D8020E3AD8EF8E04D020D86C -:105BE000020E35D8EF9E14D8D8900132003218D862 -:105BF000030E2DD800C0EFFF1AD804E011D8030E11 -:105C000026D8EF8EE552E5CFDAFFE7CFD9FF1200B5 -:105C100013D8040E1CD8EECF00F0EFCF01F0120025 -:105C2000FA0EDBCFE9FFFB0EDBCFEAFF120004D850 -:105C3000060E0DD8EF501200FC0EDBCFE9FFFD0E73 -:105C4000DBCFEAFF1200ECDFEE6AEE6A1200E92613 -:105C5000000EEA221200220E0101466F476B17EF79 -:025C60002EF024 -:0E5C6200040120511F0B010801E01200245123 -:105C700001E01200060E215D21E12351230A1BE001 -:105C8000010A0CE0030A1AE10101010517E1010113 -:105C9000540E116F5D0E126F090E09D0010101053E -:105CA0000DE10101BD0E116F5D0E126F1D0E146F1F -:105CB000156BC00E02D00101800E136F040120513C -:105CC000600BE842E842E842E842E842010801E0AD -:105CD000120021510B0A26E0080A19E0090A11E016 -:105CE000080A05E00B0A23E0080A21E0120001017E -:105CF0006D0E116F010E126F010E146F156BC10E38 -:105D00000FD00101800E136F23C46DF11200010149 -:105D10006E0E116F010E126F010E146F156B810E56 -:105D2000136F12000101800E136F22C46EF1120076 -:105D30001201000200000008D80403000200010262 -:105D4000000109022900010100C03209040000021B -:105D500003000000092111010001221D0007058137 -:105D60000340000107050103400001040309042C5E -:105D7000034D006F00620069006C00650020005256 -:105D8000006F0062006F007400200050006C006122 -:105D900000740066006F0072006D0022034D006FFA -:105DA0000074006F007200200043006F006E0074EA -:105DB0000072006F006C006C00650072000600FF4E -:105DC0000901A10119012940150026FF0075089558 -:105DD000408100190129409100C0425D6B5D6F5DFB -:025DE0009B5DC9 -:0E5DE2002A0EF66E080EF76E000EF86E010126 -:105DF0000900F5505A6F0900F5505B6F03E15A67CF -:105E000001D03DD00900F550556F0900F550566F8F -:105E10000900F550576F09000900F550E96E0900B7 -:105E2000F550EA6E090009000900F550586F0900A5 -:105E3000F550596F09000900F6CF5CF1F7CF5DF11D -:105E4000F8CF5EF155C1F6FF56C1F7FF57C1F8FF15 -:105E50000101585302E1595307E00900F550EE6E75 -:105E60005807F8E25907F9D75CC1F6FF5DC1F7FFA3 -:105E70005EC1F8FF01015A07000E5B5BBFD712003D -:105E8000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFE5 -:105E9000C26AC06AFC0EDB407F0B3C0BC26EFB0E7D -:105EA000DBCFE6FFFC0EDB38F00B300BE552E710E2 -:105EB000C16EFD0EDB50040DF350380B016EFD0E6C -:105EC000DB380F0B070B006EFD0EDB50800B001054 -:105ED0000110C06EFC0EDBAE03D09E9C9D8CF28C3C -:0E5EE000C280E552E5CFDAFFE7CFD9FF12000E -:025EEE00FE0EA6 -:105EF000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFFD -:105F0000F4FFFB0EE35003E1FC0EE35009E0FB0E4F -:105F1000E30602E2FC0EE306FD0EE350EE6EF1D75F -:105F20001200FB0EE3CFF6FFFC0EE3CFF7FFFD0EF2 -:105F3000E3CFF8FFFE0EE3CFE9FFFF0EE3CFEAFF6A -:105F4000E9CFF3FFEACFF4FFEE66FED7ED5209008A -:0A5F5000F5CFEFFFEE66FBD712005D -:065F5A002DD8FD0EDB5006 -:105F6000A86EA69EA69CA684F250800B01E0010EAE -:105F700001016F6FF29E550EA76EAA0EA76EA68244 -:105F80006F51E8B0F28EE8A0F29EA6B2FED7A198BB -:105F9000A694E552E7CFD9FF12000DD8A69EA69C85 -:105FA000A680020EE66EF7EC30F0E552A850E552FE -:105FB000E7CFD9FF1200D9CFE6FFE1CFD9FFFE0E20 -:065FC000DB50A96E120087 -:0A5FC600D9CFE6FFDACFE6FFE1CF06 -:105FD000D9FFE2CFDAFFE652E652D950FD0F006E4C -:105FE000FF0EDA2000C0DEFFDD6EDECFE9FFDDCF81 -:105FF000EAFFEF9EFA0EDBCF00F0FB0EDBCF01F0E5 ... [truncated message content] |
From: Jérémie D. <Ba...@us...> - 2010-03-08 10:50:13
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 94e87a11b68b9753ed5725e75bec5b8298cbe67b (commit) from 1d5ebfa1823c3bccc8dbd250c9b231aaedaa7887 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 94e87a11b68b9753ed5725e75bec5b8298cbe67b Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 11:44:14 2010 +0100 Use LCD commands instead of the send function ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 121618b..7988333 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -84,20 +84,21 @@ struct OL_method SetLCD : string list -> unit = fun dev lines -> if List.length lines > 4 || List.exists (fun line -> String.length line > 20) lines then invalid_arg "SetLCD" - else - match lines with + else begin + lwt () = Unsafe.clear dev in + lwt () = Unsafe.cursor_off dev in + let rec loop i = function | [] -> return () | line :: lines -> - lwt () = Unsafe.send dev ("\x1b\x43\x1b\x73" ^ line) in - let rec loop i = function - | [] -> - return () - | line :: lines -> - lwt () = Unsafe.send dev (String.make 1 (char_of_int i) ^ line) in - loop (i + 1) lines - in - loop 2 lines + lwt () = Unsafe.write_line dev i line in + loop (i + 1) lines + in + loop 1 lines + end + + OL_method BacklightOn : unit = Unsafe.backlight_on + OL_method BacklightOff : unit = Unsafe.backlight_off let make card path = let dev = { diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index 7f3940d..cd5fbec 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -164,6 +164,8 @@ module LCD = Make_device(struct let name = "LCD" end) OP_interface(LCD) "fr.krobot.Device.LCD" OP_method SetLCD : string list -> unit +OP_method BacklightOn : unit +OP_method BacklightOff : unit (* +-----------------------------------------------------------------+ | Range finders | diff --git a/PC_Mainboard/lib_krobot/krobot.mli b/PC_Mainboard/lib_krobot/krobot.mli index 3dc8a9a..47c2a13 100644 --- a/PC_Mainboard/lib_krobot/krobot.mli +++ b/PC_Mainboard/lib_krobot/krobot.mli @@ -35,6 +35,12 @@ val set_lcd : t -> string list -> unit Lwt.t (** [set_lcd lines] set the lines displayed on the LCD. [lines] may contains at most 4 lines, of maximum length 20. *) +val backlight_on : t -> unit Lwt.t + (** Turn on the LCD backlight *) + +val backlight_off : t -> unit Lwt.t + (** Turn off the LCD backlight *) + (** {6 Compass} *) val compass : t -> int React.signal hooks/post-receive -- krobot |
From: Xavier L. <Ba...@us...> - 2010-03-07 23:44:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 1d5ebfa1823c3bccc8dbd250c9b231aaedaa7887 (commit) from 2a834df76aa8ddbca0617408865686f18f99dbab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1d5ebfa1823c3bccc8dbd250c9b231aaedaa7887 Author: Xavier Lagorce <Xav...@cr...> Date: Mon Mar 8 00:43:14 2010 +0100 Added automatic display of status messages when the card is plugged/unplugged from USB ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Robot_Interface/Firmware/main.c b/USB_Module/Robot_Interface/Firmware/main.c index 2243d8b..58072c2 100644 --- a/USB_Module/Robot_Interface/Firmware/main.c +++ b/USB_Module/Robot_Interface/Firmware/main.c @@ -1330,9 +1330,20 @@ void USBCBSuspend(void) //IMPORTANT NOTE: Do not clear the USBActivityIF (ACTVIF) bit here. This bit is //cleared inside the usb_device.c file. Clearing USBActivityIF here will cause //things to not work as intended. + + unsigned char msg1[] = "[Kro]bot Wally"; + unsigned char msg2[] = "!!!!!!!!!!!!!!!!!!!!"; + unsigned char msg3[] = "Perte connectivite "; + unsigned char msg4[] = " carte mere"; - // Turn off LCD backlight + // Turn off LCD backlight and display status + //lcd_clear(ADD_LCD); + lcd_set_cursor(ADD_LCD, FALSE); lcd_set_backlight(ADD_LCD, FALSE); + lcd_write_line(ADD_LCD, 1, msg1); + lcd_write_line(ADD_LCD, 2, msg2); + lcd_write_line(ADD_LCD, 3, msg3); + lcd_write_line(ADD_LCD, 4, msg4); #if defined(__C30__) #if 0 @@ -1416,8 +1427,20 @@ void USBCBWakeFromSuspend(void) // clocking (IE: 48MHz clock must be available to SIE for full speed USB // operation). - // Turn on LCD backlight + unsigned char msg1[] = "[Kro]bot Wally"; + unsigned char msg2[] = "--------------------"; + unsigned char msg3[] = "Connexion etablie "; + unsigned char msg4[] = " avec la carte mere"; + + + // Turn on LCD backlight and display status + lcd_clear(ADD_LCD); + lcd_set_cursor(ADD_LCD, FALSE); lcd_set_backlight(ADD_LCD, TRUE); + lcd_write_line(ADD_LCD, 1, msg1); + lcd_write_line(ADD_LCD, 2, msg2); + lcd_write_line(ADD_LCD, 3, msg3); + lcd_write_line(ADD_LCD, 4, msg4); } /******************************************************************** diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof index 1f92449..a919e04 100644 Binary files a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof and b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof differ diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex index 9e6f00d..ede7787 100644 --- a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex +++ b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex @@ -1,948 +1,979 @@ :020000040000FA -:06000000D0EF1FF012001A +:06000000B1EF20F0120038 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000D0EF1FF0120012 +:06080000B1EF20F0120030 :0608080034EF04F01200C1 -:0608180074EF04F0120071 -:06082A000500364000004D -:10083000860000002400000015400000CB000000EE -:10084000210000000D40000013010000080000001E -:10085000FD3F0000EC00000010000000F43F00002D +:0608180072EF04F0120073 +:06082A000500F84100008A +:100830008600000024000000D7410000CB0000002B +:1008400021000000CF41000013010000080000005B +:10085000BF410000EC00000010000000B6410000A5 :080860000A010000090000007C -:08086800A5EC0CF000EE22F0FB +:0808680044EC0DF000EE22F05B :10087000140EE80403E3EECFE4FFFBD700EE00F034 -:10088000220EE80403E3EECFE4FFFBD7CDEC0CF03F -:10089000A1A203D066EC19F0A1929EAA03D0A5EC08 -:1008A00012F09E9A9EA003D022EC18F09E90D7ECF6 -:1008B0000CF002E2E16AE552E16EE552E7CFD9FFC2 -:1008C000E55200EE21F0220EE80403E3E5CFEDFF50 -:1008D000FBD700EE35F0140EE80403E3E5CFEDFF9F -:1008E000FBD7BAEC0CF01100D8CFE4FFE0CFE4FF67 -:1008F000E46EA5EC0CF000EE22F0140EE80403E325 -:10090000EECFE4FFFBD700EE00F0220EE80403E395 -:10091000EECFE4FFFBD7CDEC0CF0F2A403D009EC52 -:1009200018F0F294D7EC0CF002E2E16AE552E16EC5 -:10093000E552E7CFD9FFE55200EE21F0220EE804A0 -:1009400003E3E5CFEDFFFBD700EE35F0140EE8042E -:1009500003E3E5CFEDFFFBD7BAEC0CF0E550E5CFB4 -:10096000E0FFE5CFD8FF100004D828EC0DF05AD8EE -:10097000FCD70F0EC11202D8F2EF0CF0EDEC0CF028 -:10098000E6527CEC0CF00001FC6F070EFC5D10E100 -:10099000E66A66EC1DF0E552DF6E000EDF80DFECEC -:1009A0000CF0E66AA2EC1FF0E552DF70DFEC0CF011 -:1009B00093809382948C948ED08EF28EF28C770EEC -:1009C000C86EE66A16EC1BF0E5523F0E8A169316C7 -:1009D0000101136B146B156B166B010E176F98ECFE -:1009E00012F0E30E951692929492A082FD0EE66E9E -:1009F0002AEC1EF0E552000EE66EE66AC9EC1EF027 -:100A0000E552E55283948396839880928292E66AB7 -:100A1000CBEC17F0E55282EC1AF0E552E552E7CF45 -:100A2000D9FF1200D9CFE6FFE1CFD9FF170EE1269B -:100A3000160EDB6A0101175102E0BEEC0BF0200E2E -:100A40000001605D03E36D50020B02E0B4EF0BF0B8 -:100A5000160EDB5036E0CBEC18F0000932E0010155 -:100A60001551161102E1000E08D015C1E9FF16C19B -:100A7000EAFFEF50800B01E0010E000922E10501C1 -:100A8000406B01011851182B0501416F05010C0E37 -:100A9000426F0501436B400EE66E400EE66E050E9A -:100AA000E66E010EE66E010EE66E43EC11F0006E8E -:100AB000050EE15E0050F3CF15F1F4CF16F1160EDE -:100AC000DB6A01011551161102E1000E08D015C1B3 -:100AD000E9FF16C1EAFFEF50800B01E0010E0009AB -:100AE00047E10001EB51EA6ACB0FE96E000EEA2202 -:100AF000EF5000083DE20501406B01011851182B31 -:100B00000501416F0501040E426F0001EB51EA6AD5 -:100B1000CB0FE96E000EEA22EFCF43F5400EE66EF2 -:100B2000400EE66E050EE66E010EE66E010EE66EF6 -:100B300043EC11F0006E050EE15E0050F3CF15F1AD -:100B4000F4CF16F10001EB51EA6ACB0FE96E000E0B -:100B5000EA22EF6A0001EB51000803E20001EB0713 -:100B600007D00001EA51000803E200011F0EEB6FFD -:100B700001011351141102E1000E08D013C1E9FF65 -:100B800014C1EAFFEF50800B01E0010E000902E002 -:100B9000B4EF0BF005010251070A02E11AEF0BF066 -:100BA000020A02E1ECEF0AF00E0A02E193EF0AF00A -:100BB000060A02E1F4EF09F0040A01E110D20F0A7B -:100BC00001E165D1040A1AE0030A07E0010A02E024 -:100BD00073EF0BF0FF00B4EF0BF0E66A66EC1DF06C -:100BE000E552DF6E000EDB80DFCFE6FFE66A46EC03 -:100BF0001DF0E552E552FF00B4EF0BF00101155175 -:100C0000161102E1000E08D015C1E9FF16C1EAFF76 -:100C1000EF50800B01E0010E000901E036D100C564 -:100C200040F50501416B0501030E426F0501436B61 -:100C3000050108510A0A01E17ED00E0A71E0070A97 -:100C400064E0010A20E0030A06E0010A01E0F3D0B3 -:100C5000FCC048F5F3D00501486B6D0E006E3D0EEB -:100C6000016E026A00C0E6FF01C0E6FF02C0E6FFB7 -:100C7000480EE66E050EE66E2AEC1DF0036E050EBC -:100C8000E15E0350DBD00501486B610E006E3D0E46 -:100C9000016E026A00C0E6FF01C0E6FF02C0E6FF87 -:100CA000480EE66E050EE66E2AEC1DF0036E050E8C -:100CB000E15E03505F0E006E3D0E016E026A00C0E1 -:100CC000E6FF01C0E6FF02C0E6FF480EE66E050E35 -:100CD000E66E2AEC1DF0036E050EE15E0350560E23 -:100CE000006E3D0E016E026A00C0E6FF01C0E6FF25 -:100CF00002C0E6FF480EE66E050EE66E2AEC1DF019 -:100D0000036E050EE15E035099D092CF48F593CF64 -:100D100049F594CF4AF595CF4BF596CF4CF58ED04B -:100D200080CF48F581CF49F582CF4AF583CF4BF587 -:100D300084CF4CF583D0800EE66E080EE66E54EC40 -:100D40001FF0E552E552C580E9EC1FF0C00EE66EDB -:100D50008DEC1EF0E552E66A8DEC1EF0E552C58280 -:100D6000E9EC1FF0C10EE66E8DEC1EF0E552010EAF -:100D7000DB6A020EDB6A010EDBCF00F0020EDBCF76 -:100D800001F0040E005C000E01584FE2010EF36EFC -:100D9000150EF3CFDBFFC586130EDB6A140EDB6A7C -:100DA000130EDBCF00F0140EDBCF01F0E80E005C79 -:100DB000030E015817E2C7A00FD0010EDBCFE9FFE9 -:100DC000020EDBCFEAFF480EE926050EEA22C9CF64 -:100DD000EFFF150EDB6A06D0130EDB2A140E01E3BB -:100DE000DB2ADED7150EDB5008E00501080E436F45 -:100DF000C58AC588E9EC1FF018D0010EDBCF00F0E2 -:100E0000020EDBCF01F0030E005C000E015803E27E -:100E1000C59AC58802D0C58AC588E9EC1FF0010EC5 -:100E2000DB2A020E01E3DB2AA6D7C584E9EC1FF01A -:100E3000F7EC1FF003D00501020E436F400EE66E83 -:100E4000400EE66E050EE66E010EE66E010EE66ED3 -:100E500043EC11F0006E050EE15E0050F3CF15F18A -:100E6000F4CF16F1400EE66E000EE66E050EE66E4D -:100E7000E66A010EE66E43EC11F0006E050EE15ECF -:100E80000050F3CF13F1F4CF14F1B4EF0BF00501E0 -:100E90000851050A54E0010A49E0070A37E0010A4F -:100EA00025E0030A13E0010A01E080D005010951A1 -:100EB000921205010A51931205010B51941205017A -:100EC0000C51951205010D51961275D00501091DA1 -:100ED000921605010A1D931605010B1D94160501B6 -:100EE0000C1D951605010D1D961665D00501091DF1 -:100EF000891605010A1D8A1605010B1D8B160501B1 -:100F00000C1D8C1605010D1D8D1655D005010951BE -:100F1000891205010A518A1205010B518B12050134 -:100F20000C518C1205010D518D1245D0050109514E -:100F300001010F1B05010A5101010F133CD00501EE -:100F400009A107D00AC5E6FFE66AFEEC19F0E552F2 -:100F5000E552050109A308D00BC5E6FF010EE66EB8 -:100F6000FEEC19F0E552E552050109A508D00CC5C3 -:100F7000E6FF020EE66EFEEC19F0E552E5520501C1 -:100F800009A708D00DC5E6FF030EE66EFEEC19F0CA -:100F9000E552E552050109A908D00EC5E6FF040E89 -:100FA000E66EFEEC19F0E552E55205D0030EE66E52 -:100FB0006FEC1FF0E552400EE66E000EE66E050E79 -:100FC000E66EE66A010EE66E43EC11F0006E050E69 -:100FD000E15E0050F3CF13F1F4CF14F1C5D301015A -:100FE0001551161102E1000E08D015C1E9FF16C116 -:100FF000EAFFEF50800B01E0010E000901E0F3D1A0 -:1010000000C540F50501416B0501030E426F050166 -:10101000436B05010851110A01E1B5D1010A01E153 -:10102000ACD1190A01E183D1010A01E1E3D00F0A31 -:1010300001E1C5D0010A01E1AAD0030A01E18FD084 -:10104000010A6AE0070A42E0010A11E0030A01E02E -:10105000A0D105010A51E66EE66A09C5E6FFA6ECD5 -:1010600013F0E552E552E5520501486F95D10501AF -:101070000B051BE105010C51E66EE66A0AC5E6FFA9 -:1010800009C5E6FF63EC14F0E552E552E552E5527E -:101090000F0EF3CFDBFF100EF4CFDBFF100EDBCF14 -:1010A00048F50F0EDBCF49F510D005010C51E66E67 -:1010B000E66A0AC5E6FF09C5E6FF00EC14F0E55252 -:1010C000E552E552E5520501486F66D105010B0571 -:1010D00017E1100E0CC5DBFF0F0E0DC5DBFF0F0E69 -:1010E000DBCFE6FF100EDBCFE6FF0AC5E6FF09C542 -:1010F000E6FFF9EC13F0E552E552E552E5520BD06C -:101100000CC5E6FF0AC5E6FF09C5E6FFF5EC13F0DE -:10111000E552E552E55240D1100E0AC5DBFF0F0E35 -:101120000BC5DBFF120E0CC5DBFF110E0DC5DBFF7F -:101130000EC5E6FF110EDBCFE6FF120EDBCFE6FF9A -:101140000F0EDBCFE6FF100EDBCFE6FF09C5E6FF93 -:10115000E4EC14F0006E060EE15E00501DD10501B6 -:101160000A51E66EE66A09C5E6FF07EC15F0E5529E -:10117000E552E5520F0EF3CFDBFF100EF4CFDBFF8D -:10118000100EDBCF48F50F0EDBCF49F505D1050179 -:101190000A51E66EE66A09C5E6FF0AEC15F0E5526B -:1011A000E552E5520F0EF3CFDBFF100EF4CFDBFF5D -:1011B000100EDBCF48F50F0EDBCF49F5EDD0050162 -:1011C0000A51E66EE66A280EE66E09C5E6FF63EC94 -:1011D00014F0E552E552E552E5520F0EF3CFDBFF76 -:1011E000100EF4CFDBFF100EDBCF48F50F0EDBCF78 -:1011F00049F5D2D005010A51E66EE66A09C5E6FF57 -:1012000007EC15F0E552E552E5520F0EF3CFDBFF88 -:10121000100EF4CFDBFF100EDBCF48F50F0EDBCF47 -:1012200049F505010A51E66EE66A09C5E6FF0AECD2 -:1012300015F0E552E552E5520F0EF3CFDBFF100E2D -:10124000F4CFDBFF100EDBCF4AF50F0EDBCF4BF5F3 -:1012500005010A51E66EE66A280EE66E09C5E6FF4C -:1012600063EC14F0E552E552E552E5520F0EF3CF70 -:10127000DBFF100EF4CFDBFF100EDBCF4CF50F0EB3 -:10128000DBCF4DF505010A51E66EE66A2A0EE66EE1 -:1012900009C5E6FF00EC14F0E552E552E552E552CF -:1012A00005014E6F05010A51E66EE66A2B0EE66EE9 -:1012B00009C5E6FF00EC14F0E552E552E552E552AF -:1012C00005014F6F05010A51E66EE66A060EE66EED -:1012D00009C5E6FF63EC14F0E552E552E552E5522C -:1012E0000F0EF3CFDBFF100EF4CFDBFF100EDBCFC2 -:1012F00050F50F0EDBCF51F505010A51E66EE66A97 -:10130000080EE66E09C5E6FF63EC14F0E552E552FF -:10131000E552E5520F0EF3CFDBFF100EF4CFDBFFEB -:10132000100EDBCF52F50F0EDBCF53F535D0050194 -:101330000B0517E1100E0CC5DBFF0F0E0DC5DBFF13 -:101340000F0EDBCFE6FF100EDBCFE6FF0AC5E6FF90 -:1013500009C5E6FFD7EC14F0E552E552E552E55237 -:101360000BD00CC5E6FF0AC5E6FF09C5E6FFD3ECC6 -:1013700014F0E552E552E5520FD009C5E6FFDFEC67 -:1013800014F0E55209D009C5E6FFF0EC13F0E55280 -:1013900003D00501010E436F400EE66E400EE66E6F -:1013A000050EE66E010EE66E010EE66E43EC11F0E0 -:1013B000006E050EE15E0050F3CF15F1F4CF16F18B -:1013C000400EE66E000EE66E050EE66EE66A010E53 -:1013D000E66E43EC11F0006E050EE15E0050F3CFB7 -:1013E00013F1F4CF14F1C0D101011551161102E12E -:1013F000000E08D015C1E9FF16C1EAFFEF50800BBF -:1014000001E0010E000901E08DD000C540F50501A5 -:10141000416B0501030E426F0501436B0501085145 -:10142000070A48E0010A3BE0030A2EE0010A25E032 -:10143000070A1BE0010A12E0030A08E0010A01E0C2 -:1014400047D0E66A1DEC1BF0E55245D0010EE66E72 -:10145000E66A20EC1BF0E552E5523DD0E66AE66A0A -:1014600020EC1BF0E552E55236D0010EE66EE66A3E -:1014700028EC1BF0E552E5522ED0E66AE66A28EC2D -:101480001BF0E552E55227D00AC5E6FF09C5E6FF85 -:10149000E66A33EC1BF0E552E552E5521CD0090E2A -:1014A000E66E050EE66EE66A40EC1BF0E552E5528C -:1014B000E55211D00A0EE66E050EE66E09C5E6FF8E -:1014C000E66A46EC1BF0E552E552E552E55203D0E0 -:1014D0000501010E436F400EE66E400EE66E050EEE -:1014E000E66E010EE66E010EE66E43EC11F0006E44 -:1014F000050EE15E0050F3CF15F1F4CF16F1400E6A -:10150000E66E000EE66E050EE66EE66A010EE66E0B -:1015100043EC11F0006E050EE15E0050F3CF13F1C5 -:10152000F4CF14F121D105010851030A11E0010A99 -:1015300009E0030A01E037D009C5E6FF3BEC18F0EB -:10154000E55236D009C5E6FF49EC18F0E55230D037 -:101550000E0E0CC5DBFF0D0E0DC5DBFF0C0E0EC510 -:10156000DBFF0B0E0FC5DBFFD9500B0FE96EDACF97 -:10157000EAFFEECFE6FFEECFE6FFEECFE6FFEFCFDE -:10158000E6FF0BC5E6FF0AC5E6FF09C5E6FF57EC17 -:1015900018F0006E070EE15E0050010EF36E160E9D -:1015A000F3CFDBFF05D0010EE66E6FEC1FF0E552C6 -:1015B000400EE66E000EE66E050EE66EE66A010E61 -:1015C000E66E43EC11F0006E050EE15E0050F3CFC5 -:1015D00013F1F4CF14F1C8D0800EE66E080EE66E5B -:1015E00054EC1FF0E552E552C580E9EC1FF0E66AC5 -:1015F0008DEC1EF0E552080EE66E050EE66ED5EC9B -:101600001CF0E552E552C584F7EC1FF0400EE66E83 -:10161000000EE66E050EE66EE66A010EE66E43EC1F -:1016200011F0006E050EE15E0050F3CF13F1F4CF20 -:1016300014F19AD04F0EAB16AC9ACF0E9D16020E37 -:10164000E66EE66A7C0EE66E90EC1CF0E552E55222 -:10165000E552040EE66EE66A94EC13F0E552E552AC -:10166000100EE66E010EE66E94EC13F0E552E552B4 -:10167000020EE66E030EE66E010EE66E0FEC13F040 -:10168000E552E552E552040EE66EE66A94EC13F07C -:10169000E552E552100EE66E010EE66E94EC13F084 -:1016A000E552E552020EE66E030EE66E010EE66EA0 -:1016B0000FEC13F0E552E552E55298EC12F0400EB3 -:1016C000E66E000EE66E050EE66EE66A010EE66E4A -:1016D00043EC11F0006E050EE15E0050F3CF13F104 -:1016E000F4CF14F141D001011551161102E1000EA1 -:1016F00008D015C1E9FF16C1EAFFEF50800B01E0E9 -:10170000010E000931E100C540F50501416B0501FD -:10171000030E426F0501010E436F400EE66E400E50 -:10172000E66E050EE66E010EE66E010EE66E43EC09 -:1017300011F0006E050EE15E0050F3CF15F1F4CF0D -:1017400016F1400EE66E000EE66E050EE66EE66AD7 -:10175000010EE66E43EC11F0006E050EE15E0050E6 -:10176000F3CF13F1F4CF14F1170EE15C02E2E16A5A -:10177000E552E16EE552E7CFD9FF120001011951A0 -:101780001A1104E1100E196F270E1A6F1907000EB7 -:101790001A5B6DA207D019511A112EE18A7C8ABCFE -:1017A00013D027D00001605102E18A9C22D060054D -:1017B00002E18A8C09D0020E605D02E18A8C19D0A8 -:1017C000040E605D03E18A9C8A8E1200100E605D3B -:1017D00006E1010119511A110FE18A7C0AD0200E8D -:1017E000605D0AE1010119511A1106E18A7C8AAC97 -:1017F00002D08A9E12008A8E1200E66AE8D0010E9C -:10180000E66EE5D01200120082EF1BF012001E0EF1 -:10181000E66E010EE66E11EC11F0E552E552400E57 -:10182000E66E000EE66E050EE66EE66A010EE66EE8 -:1018300043EC11F0006E050EE15E0050F3CF13F1A2 -:10184000F4CF14F112006D840001080EFD6F070E35 -:10185000FE6FFD07000EFE5BFD51FE11FAE16D9477 -:101860001200D9CFE6FFE1CFD9FFFD0EDBCF2AF082 -:10187000FE0EDBCF2BF0010E2A1801E12B5033E0D6 -:10188000E8682A1802E1E8682B182BE0030E2A18F2 -:1018900001E12B5024E0040E2A1801E12B501DE039 -:1018A000020E2A1801E12B5016E0170E2A1801E14A -:1018B0002B500FE0160E2A1801E12B5008E0150EF0 -:1018C0002A1801E12B5001E010D0A1DF0FD09EDFDC -:1018D0000DD09ADF0BD096DF09D08FDF07D08FDFD6 -:1018E00005D091DF03D0000001D000D0010E00D060 -:1018F000E552E7CFD9FF120070D8E652D0B202D03D -:10190000010E15D0D0B802D0020E11D0D0B002D046 -:10191000030E0DD0D0B602D0040E09D0FCAE02D01A -:10192000050E05D0FCAC02D0060E01D0070EDF6E0E -:10193000D088D086D084D082D080FC9EFC9CDF50A2 -:10194000E552E552E7CFD9FF1200DACFE4FFE2CF4C -:10195000DAFFE9CFE4FFEACFE4FFF6CFE4FFF7CF09 -:10196000E4FFF5CFE4FFF3CFE4FFF4CFE4FFFACFD9 -:10197000E4FF1200E5CFFAFFE5CFF4FFE5CFF3FF78 -:10198000E5CFF5FFE5CFF7FFE5CFF6FFE5CFEAFFBF -:10199000E5CFE9FFE5CFDAFF1200E6521ED8020ECE -:1019A000E126F350DF6E010EF4CFDBFF1200DF50B3 -:1019B000F36E010EDB50F46E020EE15C1200DFCF1D -:1019C000E6FFE66A46EC1DF0E552E5521200E66AD3 -:1019D00028EC1BF0E552E5521200D9CFE6FFE1CF2B -:0419E000D9FF120019 -:0C19E400EAEC11F06A6A686A1DEC12F06F -:1019F0006D8C6E6ACDEC11F06D9CDF6AFEEC11F01F -:101A000010E2DF50040DF3CFE9FFF4CFEAFF000E40 -:101A1000E926040EEA22EE6AEE6AEE6AEE6ADF2A30 -:101A2000EDD7160E706E68A604D0030E93EC11F07D -:101A3000FAD70001736B786B796B7A6B6D98080E2F -:101A40006B6F040E6C6F616B606BE552A8EF11F069 -:101A5000EAEC11F0000160510BE16D6A696A1DEC5E -:101A600012F06DB602D06D86FCD70001010E606FDA -:101A7000600508E16DBA06D0686A696A698069889C -:101A8000020E606F6850040B07E06950040B04E01D -:101A9000020E93EC11F089D86DB247D06850010B5B -:101AA00014E06950010B11E09DDF0001040E606F2E -:101AB0000401200E026F040E036F080E016F006B0D -:101AC0008C0E0013E66A5CEC12F06850100B07E015 -:101AD0006950100B04E060D8040E93EC11F06850CC -:101AE000400B0BE06950400B08E024EC12F0020EB2 -:101AF0009BEC11F0060E93EC11F06850200B04E003 -:101B00006950200B01E035D86850020B0AE069509B -:101B1000020B07E024EC12F0E668E6687CEC12F0B9 -:101B20006A6A040E0001605D02E2A19A1FD069A6F4 -:101B30001CD0DF6A040EDF5C18E268A616D06CCFFA -:101B400080F0030E93EC11F0780E0001801502E195 -:101B500038D809D0000EE66EE66A800EE66E000EFA -:101B6000E66E010EE8DBDF2AE5D7A19AE552A8EF81 -:101B700011F070A00ED0B6EC11F0EF50800808E123 -:101B8000D5DBEF50840804E1B6EC11F08C0EEF6E5B -:101B90007090050E93EF11F06984040EC4DB6D8222 -:101BA000D6EC11F0040E9BEF11F0D6EC11F0030E01 -:101BB000C2DB6D92699468A403D0020EB4DBFBD73C -:101BC0001200EAEC11F0FD0E000180153DE17E0EE1 -:101BD0008015E8407F0B040DF3CF63F0F4CF64F081 -:101BE000000E6327040E642363C065F064C066F0D2 -:101BF0006575BCDBEF503C0BE842E8420D0822E182 -:101C0000B5DB53EC12F0EECF00F0EFCF01F0280E71 -:101C1000001816E1040E011813E18DEC12F0DF6AD2 -:101C2000EDDB0EE2DF5006EC12F0DF50EA6A200F27 -:101C3000E96E040EEA22E552E750EF6EDF2AF0D794 -:101C40000AD807D01AD805D0FD0E8015040801E186 -:101C500022D8E5527DD36ADBEF50800B02E066DBD1 -:101C6000EF6A00016F6B706B746B756B736B64D88C -:101C70009DDB170E60DBD1EF0FF0020E0001705DEF -:101C800002E15EEF10F034D80001815102E158EF1B -:101C900012F0816B12009EDB49DBEF50400B01E03C -:101CA000010EDF6E00016B75080E605D09E122C454 -:101CB0006EFF6E50000802E2100E01D0040E606F3D -:101CC000700513E191EC12F0A6D9020E00016F5DD0 -:101CD00003E12CDB840E07D0DF5003E127DBC80EC5 -:101CE00002D024DB880EEF6E01D002D8E55230D34B -:101CF0002BDB0001706B1ADBEF6A040E6B19006EB0 -:101D00006CC001F0DE6E6CC0DDFF19DBEF6A78AFEE -:101D10000CD07B517C1107E005D07CC0FAFF00019C -:101D20007B51F96EFADF0001789F020EE15C02E25E -:101D3000E16AE552E16E0CD304012051600BE842E8 -:101D4000E842E842E842E842000901E0120021517D -:101D50000C0A45E00B0A3FE00C0A31E0010A22E0E0 -:101D60000B0A1EE0020A1CE0030A18E0080A10E051 -:101D7000010A0CE00F0A08E0030A01E0120000016A -:101D8000738F080E606F120051EF0FF0BAEF10F072 -:101D90000001610E716F000E726F0CD092EF0FF0A8 -:101DA000F0EF0EF024510001716F726B620E71271B -:101DB000000E72237381010E746F738F1200000185 -:101DC000738F04012451EA6A620FE96E000EEA2261 -:101DD00022C4EFFF1200EADA160E9BEF11F0120098 -:101DE0007EDB040EE1260401220510E120511F0BC9 -:101DF00000090CE10001738F030E0401215D04E171 -:101E00000001010E7F6F02D000017F6B040122519F -:101E100041E120511F0B02083DE124510F0B000945 -:101E200039E00001738F040124BF05D0A4DA670EE6 -:101E3000E926000E04D09FDA6B0EE926000ED2DAF6 -:101E4000030E215D03E17BDA840E23D024510F0BB6 -:101E5000016A700F006E0F0E0122020E00C0DBFF40 -:101E6000030E01C0DBFF020EDBCFE9FF030EDBCF69 -:101E7000EAFFEE90ED5224AF06D061DAEF6ADF742C -:101E80005EDA400E06D05BDA880EEF6EDF7457DA4A -:101E9000C80EEF6E040EE15C02E2E16AE552E16E0B -:101EA00057D2800E0401205D3CE10001C00E736F2B -:101EB00004012351030A1EE0010A09E0030A2FE18D -:101EC0000001D20E716F370E726F120E22D0C3DA7C -:101ED0007A0EF626380EA2DA020E0001F76A712594 -:101EE000F66E7251F7220900F5CF74F00A00F5CFB3 -:101EF00075F01200030E225D0FE2ADDA7C0EF626BD -:101F0000380E8CDA71C0F6FF72C0F7FF0800F5508A -:101F10000001746F756B12000001736B12000001F9 -:101F2000736B120011DA0401286B296B20511F0B0F -:101F3000020A11E0030A0CE0010A22E10001738F9A -:101F40000401288100017F051BE10401288318D0CA -:101F50000001738F15D00001738F040124BF05D0D9 -:101F60000ADA670EE926000E04D005DA6B0EE926C0 -:101F7000000E38DAE4D9EF50040B02E0010E286FAE -:101F8000000173AF07D0280E716F040E726F73815A -:101F9000020E746F020EE15C02E2E16AE552E16E4C -:101FA000D7D16D98000173BF08D078AF02D061DA45 -:101FB0002AD07EDABBD9840E27D078BF2BD004017B -:101FC00020AF24D0000174510401265D0001755139 -:101FD0000401275904E226C474F027C475F01BD805 -:101FE0000001010E706FA1DA800EEF6E816BBED919 -:101FF000EE52080EEF6E91DAB9D9840EEF6E010E33 -:10200000816F8FDA93D9C80EEF6E1200000131DABA -:10201000C80EEF6E120098D90001080E745D000E14 -:1020200075590DE274C0DEFF75C0DDFF6F5102E12E -:10203000010E03D06F0506E1020E6F6F03D0080E8C -:10204000DE6EDD6A73D9EF9271D9EF906FD9010E10 -:10205000DB50EF126BD9EE52DFCFEFFF000EDB50FB -:10206000745F010EDB50755B280E7D6F040E7E6F72 -:1020700073B10FD0F7D91BE071C0F6FF72C0F7FF44 -:10208000712B000E72230800F55096D9F3E2DB069F -:10209000F1D7E8D90CE071C0E9FF72C0EAFF712BFB -:1020A000000E7223EF5088D9F4E2DB06F2D7020E5D -:1020B000E15C02E2E16AE552E16E4AD145D956D9C6 -:1020C000EE52EFCFDFFFDFCF00F000500001795D6F -:1020D000000E7A5903E279C0DFFF09D0DF50006EAD -:1020E000016AE850795D796F01507A597A6F010E73 -:1020F000DB6ADF50F36E010EDBCFF4FFF350F45CCC -:1021000010E2010EDB5082D976C0E9FF77C0EAFF0A -:10211000762B000E7723E552E750EF6E010EDB2A97 -:10212000E8D7000ED8807955000E7A550DE2F4D824 -:1021300054D91CD9EF50400B03E1EAD9C80E02D0A4 -:10214000E7D9880EEF6E0FD0F0D9840EEF6E7B5179 -:102150007C1107E005D07CC0FAFF00017B51F96ECD -:10216000FADF0001789F020EE15C02E2E16AE552CB -:10217000E16EEED00001738F10D9010EE66EE66AB3 -:10218000E66A620EE66E000EAFD922C461F0040169 -:10219000225104E10001100E606F12000001200EB8 -:1021A000606F04D9150E9BEF11F0CED8000EDE6ED5 -:1021B000040EDD6EE8D8040DF350006E016A020EC5 -:1021C0000F0B05E0D89001320032E806FBE1D89011 -:1021D00000360136D89000360136D9CFE9FFDACF84 -:1021E000EAFF0050EE260150ED22A9D8EF9EFD0E29 -:1021F000DB5002E16AD901D06DD9EA22DECFEEFFD1 -:10220000DDCFEDFF9CD8EF9C9AD8040EE926000E96 -:10221000EA22EF8C020EE15C02E2E16AE552E16E35 -:1022200097D092D8FE0EDB50016A700F006E0F0E31 -:10223000DFD885D8FD0EDBCFEFFFDBA402D0E66A46 -:10224000F5D8FD0EDBA203D0010EE66EEFD8020E2C -:10225000E15C02E2E16AE552E16E7AD075D8FE0EE9 -:10226000DB5005E125D962D8840EEF6E05D08BD8FE -:102270000CD989D8010F09D9020EE15C02E2E16AAA -:10228000E552E16E65D060D8FD0EDB5002E022D948 -:1022900001D01BD9A7D853D806D9FB0EDBCFEEFF50 -:1022A000FC0EDBCFEDFF4BD8EE52FA0EDBCFEFFF8B -:1022B000400E45D8E850EF16880E41D8E850EF128E -:1022C000FD0EDB5002E006D901D0FFD8EA22EF7400 -:1022D000DECF00F0DDCF01F000C0F3FF01C0F4FF5E -:1022E000020EE15C02E2E16AE552E16E31D0F7D81C -:1022F000010EF36EFC0EDB5004E0D890F336E806D6 -:10230000FCE1F31C006EFD0EDBCFE9FFFE0EDBCF20 -:10231000EAFF0050EF161CD0FBD8EE52080EEF6E0D -:10232000F7D853EF12F0E66E5CEF12F06BC0E9FFE6 -:102330006CC0EAFF1200E66EE66A7CEF12F0DECFB8 -:10234000E9FFDDCFEAFF1200CAD8020EE126120033 -:10235000E552E7CFD9FF1200D6D888EF12F0FE0E73 -:10236000EA6ADB34FE0BEA36E96E120063C0E9FF6D -:1023700064C0EAFF120024510F0BE96EEA6AD8909C -:10238000E936EA361200FD0EDB50E824026EFE0E3E -:10239000DB50040DF35002241200000EE66EE66AD4 -:1023A000E66A710EE66E0F0E74EF12F0000EE66E26 -:1023B000E66AE66EE66A1200E66E7DC0E9FF7EC060 -:1023C000EAFF7D2B000E7E23E552E750EF6EDF061D -:1023D000010E120084D8E6521200280EEE6E040E92 -:1023E000ED6E1200EA22EECFDEFFEDCFDDFF120030 -:1023F000012200C0DEFF01C0DDFF1200DF50006ED1 -:10240000016A080E005C000E01581200EA6A280FEB -:10241000E96E040EEA22EF50E66E1200F722090080 -:10242000F5CF71F00A00F5CF72F01200FE0EDBCF8F -:10243000E6FFBBDEE552E5521200160E6F6E9F0EF0 -:102440006B6E7B0E696E1200010EE66EE66A000E80 -:10245000E66EE66A12002251F66EF76AD890F636FA -:10246000F7361200D9CFE9FFDACFEAFFEE50ED10D0 -:102470001200020E706F5ADFEE52EF6A57DFC80E7D -:10248000EF6E4ADFAADF88EF12F0040DF3CF00F001 -:10249000F4CF01F0000E0026040EAADF840E4FDFF9 -:1024A000E850EF121200020EE926000EEA22120096 -:1024B0003CD88C0EEF6E1200680EE66E0F0EE66EC4 -:1024C00016DFE552E552E552120049DF670EE926B4 -:1024D000000E120044DF6B0EE926000E1200D9CF69 -:1024E000E6FFE1CFD9FF1200E66E10EC1DF0006EA2 -:1024F000050EE15E0050120031EC0CF0006E060E8D -:10250000E15E00501200200EEE6E040EED6E120021 -:1025100065C0E9FF66C0EAFF120028DFC4DF83EF71 -:1025200012F004DFC0DFEDEF11F0F6DEACEF11F0DA -:10253000959A838A190EE66EE66A7C0EE66E90EC3A -:102540001CF0E552E552E5521200B0DA030EE12626 -:10255000ACA2FED76EEC1EF0DF6E0001A85104E1C4 -:10256000865102E1010EA96FA90552E1A85189DA4D -:10257000DFCFEFFF020EA85D08E2FF0EDF5C05E093 -:10258000050E8CDA0001A96BA86B030EA85D04E1AF -:10259000030EDF240001CA6F030E0001A85D37E3BC -:1025A0000001CA510001A85D32E18B5102E0060E24 -:1025B00075DA010EDB6A020EDB6E0001CA51F36EA2 -:1025C000020EDBCFF4FFF350F45C0EE2020EDB50A0 -:1025D00058DA010EDBCFE7FFEF50E726010EE7CF19 -:1025E000DBFF020EDB2AE9D7CA514BDAEFCF00F04E -:1025F000010EDB1C005C05E0070E50DA0001866B63 -:1026000003D00001010E866FA96BA86B01D0A82B27 -:10261000030EE15C02E2E16AE552E16E16D246DAAF -:10262000220EE126010EDB68020EDB68FE0EDB5097 -:10263000E76E030EE7CFDBFFFC0EDB50020FE76E09 -:10264000040EE7CFDBFFFD0EDB50E76E050EE7CF94 -:10265000DBFFDF6AFC0EDB50DF5C13E2DF50EA6A6F -:10266000AA0FE96E000EEA22EF50E66ED950010F74 -:10267000006E050EDF24F7D9E552E750EF6EDF2A32 -:10268000E9D7210EDB6A020EDF6EFC0EDB50050F70 -:10269000DF5C0FE2D950010F006EDF50E4D9210E4C -:1026A000DBCFE7FFEF50E726210EE7CFDBFFDF2A86 -:1026B000ECD7210EDB1CE66ED950010F006EFC0E2C -:1026C000DB50050FD0D9E552E750EF6E839ADF6AF1 -:1026D000FC0EDB50060FDF5C11E2ACA2FED7D95036 -:1026E000010F006EDACF01F0DF500F01BCD9EF50BF -:1026F000E66EB9EC1FF0E552DF2AEAD7ACA2FED7AE -:10270000838A0001866B220EE15C02E2E16AE552F7 -:10271000E16E9BD10001865112000001A751120009 -:1027200000018651FDE01200C1D9FE0EDB50EA6ABD -:10273000AA0FE96E000EEA22FD0EDBCFEFFF85D176 -:102740000001865102E08B511200000CD9CFE6FF48 -:10275000E1CFD9FF020EE126E66A010EE66EFE0E1B -:10276000DBCFE6FF5CDFE552E552E552DE6ADD6A6B -:10277000DECF00F0DDCF01F0FC0EDBCF02F0FD0E6E -:10278000DBCF03F00250005C0350015818E2000157 -:10279000865104E00001A76B010E16D00000000076 -:1027A0000000000000000000000000000000000029 -:1027B00000000000DF2A010E01E3DB2AD9D7000167 -:1027C000010EA76F000E00D0006E020EE15C02E267 -:1027D000E16AE552E16E0050E552E7CFD9FF120001 -:1027E00065D9E66A060E19D930D133D9030E15D949 -:1027F0002CD11CD970D902E2E16AE552E16E25D1F3 -:10280000D9CFE6FFE1CFD9FF020EE126FD0EDBCFE7 -:10281000E6FFE66A89DFE552E552010EE66E010E3B -:10282000E66E82DFE552E552020EE66E020EE66EBD -:10283000FE0EDBCFE6FFF3DEE552E552E552DE6A3F -:10284000DD6ADECF00F0DDCF01F00A0E2A6E2B6AC2 -:10285000FB0EDBCF2FF0FC0EDBCF30F0F8EC16F0E8 -:1028600028C002F029C003F00250005C0350015858 -:1028700019E20001865105E00001A76B00018C51AF -:1028800016D0000000000000000000000000000062 -:1028900000000000000000000000DF2A010E01E33C -:1028A000DB2ACFD70001010EA76F000E00D0006E0B -:1028B000020EE15C02E2E16AE552E16E0050E5528F -:1028C000E7CFD9FF1200D9CFE6FFE1CFD9FF040E41 -:1028D000E126FD0EDBCFE6FFE66A26DFE552E55294 -:1028E000020EE66E010EE66E1FDFE552E552020EA5 -:1028F000E66E020EE66EFE0EDBCFE6FF90DEE552E0 -:10290000E552E552DE6ADD6ADECF00F0DDCF01F090 -:102910000A0E2A6E2B6AFB0EDBCF2FF0FC0EDBCFEC -:1029200030F0F8EC16F028C002F029C003F0025095 -:10293000005C0350015827E20001865113E00001BA -:10294000A76B030E8DC0DBFF020E8CC0DBFF020EF7 -:10295000DBCF00F0030EDBCF01F000C0F3FF01C0BE -:10296000F4FF17D00000000000000000000000008D -:10297000000000000000000000000000DF2A010E3F -:1029800001E3DB2AC1D70001010EA76FF36AF46AE5 -:1029900000D0040EE15C02E2E16AE552E16EE5522C -:1029A000E7CFD9FF120055D8040E37D84ED03ED805 -:1029B000040E91D802E2E16AE552E16E46D076D883 -:1029C000E66A050E2AD841D071D8020EE1261E0E05 -:1029D000E66EE66A8CD8FC0E5AD881D8FA0E57D823 -:1029E000030E61D8010EDBCFE6FF040E5CD8F90EB2 -:1029F000DB5004E1050EE66E030E03D0050EE66E15 -:102A0000040E69D802E2E16AE552E16E1ED031D8C7 -:102A1000240E51D02ED8260E4ED0E66EFE0EDBCF01 -:102A2000E6FFFDDDE552E552E55212003FD8020E09 -:102A3000E126FB0EDBCFDEFFDBCFDDFF46D8DFCFAD -:102A4000E6FF4DD8030EE66E1200E552E7CFD9FF40 -:102A500012002CD83AD8FC0EDBCFE6FF010E23D8AB -:102A6000020EE66E12000024E96E000EDA20EA6E15 -:102A700012001CD8FC0EDBCFE6FFFD0EDBCFE6FF1D -:102A80001200EA6A870FE96E000EEA221200DBCF1D -:102A9000DEFFDBCFDDFFDFCFE6FF1200E66E6FEC7F -:102AA0001FF0E5521200E66E77EF15F0D9CFE6FF82 -:102AB000E1CFD9FF1200E66EFE0EDBCFE6FF03DFAB -:102AC000E552E552E552E552C0D7FD0EDBCFE6FFF9 -:102AD000E66A77EF15F0A1DF020EE15C1200010E4D -:102AE000E2DF010EDBCFE6FF020E53EF15F01CDE36 -:062AF000E552E552120060 -:0A2AF600239E05D0239E2BAE02D0D4 -:102B00002B6C238E2BC025F0246A356A346A860E1E -:102B1000266E276A61EF17F0239E08D0239E2BAE06 -:102B200005D02A6C2B1EE86A2B22238E2BC025F0A1 -:102B30002AC024F0356A346A8E0E266E276A61EF49 -:102B400017F0317E236A9DEC17F0B5EC17F023B631 -:102B500045EF17F023A20AD023AA03D023BE45EFE6 -:102B600017F023A451EF17F04EEF17F023AA05D06A -:102B700023AC51EF17F04EEF17F023A00AD023A893 -:102B800008D023BE04D023A402D05AEF17F05EEF82 -:102B900017F0346A276A31502C5C336E10E329C079 -:102BA00035F02AC024F02BC025F02CC032F02EC006 -:102BB00029F02FC02AF030C02BF0233A09D02EC0C4 -:102BC00035F02FC024F030C025F031C032F0336C26 -:102BD000239E23BC238E32C026F023B08DEF17F046 -:102BE0001A0E33608DEF17F0266A2C6A23A408D0E2 -:102BF000296C2A1E2B1E2C1EE86A2A222B222C222C -:102C000023AC08D0356C241E251E261EE86A24221B -:102C100025222622286A335207E02C342B322A320E -:102C200029322832332EF9D7295035262A5024222A -:102C30002B5025222C50262228C034F0239E26AE6D -:102C40000BD0346C351E241E251E261EE86A352244 -:102C5000242225222622238E26A006D0D8802532A3 -:102C6000243235323432322A32C026F061EF17F086 -:102C7000236A9DEC17F0B5EC17F023B645EF17F07B -:102C800023A205D023BA45EF17F04CEF17F023BA73 -:102C900058EF17F023A005D023B845EF17F058EFF1 -:102CA00017F023B84CEF17F0276A7F0E2C24266EFE -:102CB000E86A27223150265EE86A275A1A0E326ED9 -:102CC0002C6A346A356A246A256A2E50295E2F5090 -:102CD0002A5A30502B5A000E2C5A09E72E5029261A -:102CE0002F502A2230502B22000E2C2201D0348A61 -:102CF000D89029362A362B362C36D89034363536AD -:102D000024362536322EE1D72B502A102910D8A48C -:102D1000348A61EF17F0236A9DEC17F0B5EC17F0D9 -:102D200023B645EF17F023A205D023B845EF17F0DF -:102D30004CEF17F023AA05D023B045EF17F04CEF66 -:102D400017F023B002D023A802D058EF17F0276A5B -:102D500031502C24266EE86A27227E0E265EE86A11 -:102D6000275A346A356A246A256A30502B02F4CF18 -:102D700025F0F3CF24F02F502B02F3503526F450DA -:102D80002422000E252230502A02F3503526F4501A -:102D90002422000E25222E502B02F3503426F4500C -:102DA0003522000E242225222F502A02F3503426E9 -:102DB000F4503522000E2422252230502902F350EF -:102DC0003426F4503522000E242225222E502A02C9 -:102DD000F4503426000E3522242225222F502902B9 -:102DE000F4503426000E35222422252261EF17F0FC -:102DF0002AC034F02A502F02F4CF29F0F3CF28F064 -:102E00002B503002F4CF2BF0F3CF2AF02F02F350E7 -:102E10002926F4502A22E86A2B2234503002F3503B -:102E20002926F4502A22E86A2B22000C236A9DEC02 -:102E300017F023B620EF17F023A20ED023B405D04D -:102E40007F0E2B6EFF0E2A6E1FD0800E2B6E2A6A0D -:102E50001BD02B6A2A6A18D023B0FBD78F0E2C60A8 -:102E6000EDD77E0E2C64F5D78E0E2C5C05E0D89045 -:102E70002B322A322C2AF8D723A406D02A6C2B1EF8 -:102E8000E86A2B222BAEE5D712007F0E2C6EFF0EC8 -:102E90002B6E2A6E296E12007F0E23BEFF0E2C6E43 -:102EA00002D07F0E2C6E800E2B6E2A6A296AF3D711 -:102EB00023AE04D0800E2C6E2B6AF7D72C6A2B6AB7 -:102EC000F4D72550241035103410F8E027BEF0D781 -:102ED00025BE0CD026502710EBE0D890343635367E -:102EE000243625362606D8A02706F2D72750D4E167 -:102EF0002628D2E034AE11D07F0E341402E135A082 -:102F00000CD0352AE86A2422252207E3D88025320E -:102F100024323532262A2628BFE02650C9E035C0A3 -:102F200029F024C02AF025342B6E26302C6E2B324B -:102F30002C9E23BE2C8E4BEF17F02B362C3602E343 -:102F40002384237E06E123802C6A2B6A2A6A296A5D -:102F500012002C2803E0D8802B321200D8902B329C -:102F600002E123821200238612003036313602E35A -:102F7000238C237E06E12388316A306A2F6A2E6A09 -:102F80001200312803E0D88030321200D89030325D -:062F9000EAE1238A1200B1 -:0A2F9600D9CFE6FFE1CFD9FF9290FA -:102FA000C30E93169494060EE66E39EC1FF0E552AC -:102FB000FE0EDB50000B0CE0AF0EE66E1DEC1FF0BA -:102FC000E552000EE66EE66A01EC1FF0E55204D011 -:102FD000820EE66E1DEC1FF0E552F194FE0EDBA0B2 -:102FE0000CD0C70EE66E4DEC1EF0E552000EE66EFC -:102FF000E66AE5EC1EF0E55204D0F50EE66E4DEC07 -:103000001EF0E5528194819A8090819882948196F5 -:1030100059D146D9D880000E0001F455000EF5555F -:10302000000EF655000EF7550CE2F407000EF55BA6 -:10303000F65BF75BF451F511F611F71102E1BD6A89 -:103040008294120036D9D880000E0001F855000E87 -:10305000F955000EFA55000EFB550CE2F807000E6C -:10306000F95BFA5BFB5BF851F911FA11FB1102E114 -:10307000BA6A819612000DD902E1818409D0FE0E50 -:10308000DB0405E0FE0EDB50020802E18184818A48 -:1030900019D1FFD802E1819409D0FE0EDB0405E0CE -:1030A000FE0EDB50020802E18194819A0BD1F1D827 -:1030B00004E0FE0EDB50020833E1F80EDBCFF4F043 -:1030C000F90EDBCFF5F0FA0EDBCFF6F0FB0EDBCF1F -:1030D000F7F0280E2D6E2E6A2F6A306AF4C028F0A1 -:1030E000F5C029F0F6C02AF0F7C02BF006EC1EF070 -:1030F00028C0F4F029C0F5F02AC0F6F02BC0F7F094 -:10310000CFD8FD0EDB50E8B08080E8A080904A0E5A -:10311000E66E8AEC1FF054D8ABEC1DF0E552E55298 -:10312000FE0EDB0404E0FE0EDB50020833E1F80E75 -:10313000DBCFF8F0F90EDBCFF9F0FA0EDBCFFAF0C7 -:10314000FB0EDBCFFBF0280E2D6E2E6A2F6A306A45 -:10315000F8C028F0F9C029F0FAC02AF0FBC02BF023 -:1031600006EC1EF028C0F8F029C0F9F02AC0FAF0E9 -:103170002BC0FBF09ED8FD0EDB50E8B08188E8A0A4 -:1031800081984A0EE66EDAEC1DF01AD87CEC1DF040 -:10319000E552E55297D08050010B03E08350400B7D -:1031A00006E08050010B0BE18350800B08E1BD6A03 -:1031B00082940001F46BF56BF66BF76B010C000C5D -:1031C000E552FC0EDBCF16F016C02BF07BEC15F0B1 -:1031D00029C012F02AC013F02BC014F02CC015F037 -:1031E0002E6A2F6A7F0E306E430E316E38EC16F069 -:1031F00029C00EF02AC00FF02BC010F02CC011F027 -:103200002E6A2F6A200E306E3F0E316E8BEC16F058 -:1032100029C00AF02AC00BF02BC00CF02CC00DF016 -:103220002E6A1B0E2F6E370E306E4C0E316E8BECED -:1032300016F029C006F02AC007F02BC008F02CC0F9 -:1032400009F02E6A400E2F6E1C0E306E460E316E47 -:1032500038EC16F016EC17F08CEC15F029C002F0E3 -:103260002AC003F02BC004F02CC005F02E6A2F6A90 -:10327000800E306E410E316E38EC16F016EC17F001 -:103280002AC000F02BC001F02AC0E6FF2BC0E6FFE9 -:103290001200D9CFE6FFE1CFD9FFFE0EDB501200BE -:1032A000A00EE66E150EE66E01EC1FF0E552E5523B -:1032B0001200A00EE66E150EE66EE5EC1EF0E5526D -:0C32C000E5521200E552E7CFD9FF1200E2 -:0432CC0083948396CE -:1032D000839880928292050E0101105D0EE2010E2C -:1032E00010C1E7FFE75204E0E846FE0BE706FCE109 -:1032F00001010F1502E1102BEED7050E105D60E203 -:103300001051040A10E0070A0CE0010A08E0030A61 -:1033100004E0010A09E1838407D0838605D083880D -:1033200003D0808201D082821051D9D8EFCF02F031 -:10333000036A02BE03680A0E2A6E2B6A02C02FF0CF -:1033400003C030F0F8EC16F028C000F029C001F0FE -:10335000DC0E0026050E012200500101112701504C -:103360001223A9D8800E126EBB0E136E440E146E7B -:10337000196A1A6A200E1B6E410E1C6E1051AFD8CE -:10338000EFCF21F021C02BF07DEC15F029C01DF00E -:103390002AC01EF02BC01FF02CC020F0AAD819C0E4 -:1033A00029F01AC02AF01BC02BF01CC02CF08BECAB -:1033B00016F06FD8A2EC15F040D80101102B1200C6 -:1033C000106B200E115D4E0E125915E274D8400E8E -:1033D000126E9C0E136E460E146E11C12AF012C1AD -:1033E0002BF08CEC15F055D8A1EC15F026D8010186 -:1033F000116B126B1200116B126B6DD7D9CFE6FFF8 -:10340000E1CFD9FFFE0EDB506AD8FD0EDBCFEFFF18 -:103410006CD05CD804E0D890F336E806FCE1F350B9 -:1034200001010F1362D052D804E0D890F336E806B9 -:10343000FCE1F35001010F1B58D029C00DF02AC048 -:103440000EF02BC00FF02CC010F053D809C029F09B -:103450000AC02AF00BC02BF00CC02CF08BEC16F03D -:1034600016EC17F02AC006F02BC007F0086A2A50A5 -:10347000035C006E2B500458016E08500558026E14 -:1034800000C0E6FF01C0E6FFC9EC1EF0E552E552C0 -:10349000120029C015F02AC016F02BC017F02CC05E -:1034A00018F027D811C029F012C02AF013C02BF051 -:1034B00014C02CF0120003680468056A096A0A6ADD -:1034C000C00E0B6E3F0E0C6E116A1200D9CFE6FFD4 -:1034D000E1CFD9FF010EF36EFE0EDB501200EA6A57 -:1034E0000A0FE96E010EEA221200E552E7CFD9FF7A -:1034F000120029C02EF02AC02FF02BC030F02CC0B3 -:0435000031F0120094 -:0C350400050EE66E060E8CD8070E8AD865 -:10351000080E88D8090E7ED80A0E80D80B0E7AD8ED -:103520000C0E7CD80D0E76D80E0E78D80F0E72D8F1 -:10353000100E74D8110EEEEF1AF0D9CFE6FFE1CFDE -:10354000D9FF51D8FD0EDBCFE6FF8DEC1EF0E55222 -:10355000C584F7EC1FF0E552E7CFD9FF1200D9CFB1 -:10356000E6FFE1CFD9FF030EE126020EDB6A3BD86E -:10357000C582E9EC1FF0E90EE66E8DEC1EF0E55217 -:10358000C586DE6ADD6ADECF00F0DDCF01F0E80E31 -:10359000005C030E01580BE2C7A004D0020EC9CF95 -:1035A000DBFF05D0DF2A010EEEE3DB2AECD7C58A6C -:1035B000C588E9EC1FF0C584E9EC1FF0F7EC1FF0BB -:1035C000020EDB50006E030EE15C02E2E16AE5529E -:1035D000E16E0050E552E7CFD9FF1200E66EADDF95 -:1035E000E552E5521200800EE66E080EE66E54ECCF -:1035F0001FF0E552E552C580E9EC1FF0E80EE66EDB -:103600008DEC1EF0E552FE0EDBCFE6FF8DEC1EF0DA -:10361000E5521200E3DFC40EE66E1200DFDF090E92 -:0C362000E66E1200DBDF050EE66E120005 -:04362C0036D857D85D -:1036300056D855D84DD8430E54D057D8430E51D0F4 -:1036400054D8FD0EDB5002E0530E01D0730E49D06A -:103650004CD8FD0EDB5002E0420E01D0620E41D08C -:1036600044D8480E3ED041D84C0EE66E8DEC1EF08C -:10367000E55231D8FC0EDBCFE6FF8DEC1EF020D0FA -:103680000CD8FC0EDBCFE6FFFD0E36D006D823D8D3 -:10369000FB0EDBCFE6FFFC0E2FD0D9CFE6FFE1CF4C -:1036A000D9FF800EE66E080EE66E54EC1FF0E55270 -:1036B000E552C580E9EC1FF0FE0EDBCFE6FF18D027 -:1036C000E552C584F7EC1FF0E552E7CFD9FF1200B1 -:1036D0001B0EE66E0DD0FD0EDBCFE6FF09D0E66ACD -:1036E00007D0E66E8DEC1EF0EBD7D7DF68EF1BF04E -:1036F0008DEC1EF0E5521200DBCFE6FFD5EC1CF09E -:04370000E552DED7D9 -:0C370400040120511F0B010801E012001D -:10371000245101E01200060E215D21E12351230A0C -:103720001BE0010A0CE0030A1AE10001610517E140 -:103730000001F60E716F370E726F090E09D000018D -:1037400061050DE100015D0E716F380E726F1D0E87 -:10375000746F756BC00E02D00001800E736F040190 -:103760002051600BE842E842E842E842E8420108A2 -:1037700001E0120021510B0A26E0080A19E0090AAB -:1037800011E0080A05E00B0A23E0080A21E0120014 -:1037900000011B0E716F010E726F010E746F756B5D -:1037A000C10E0FD00001800E736F23C41BF11200F5 -:1037B00000011C0E716F010E726F010E746F756B3C -:1037C000810E736F12000001800E736F22C41CF112 -:0237D0001200E5 -:0E37D2001201000200000008D80404000200EA -:1037E0000102000109022900010100C032090400A0 -:1037F000000203000000092111010001221D000741 -:10380000058103400001070501034000010403098D -:10381000042C034D006F00620069006C00650020FD -:103820000052006F0062006F007400200050006CB6 -:10383000006100740066006F0072006D002003528A -:10384000006F0062006F007400200049006E007479 -:10385000006500720066006100630065000600FFFD -:103860000901A10119012940150026FF00750895DD -:10387000408100190129409100C0E4370D3811380A -:023880003D38D1 -:0E3882002A0EF66E080EF76E000EF86E0101AB -:103890000900F550056F0900F550066F03E1056753 -:1038A00001D03DD00900F550006F0900F550016FBF -:1038B0000900F550026F09000900F550E96E090092 -:1038C000F550EA6E090009000900F550036F090080 -:1038D000F550046F09000900F6CF07F1F7CF08F1A2 -:1038E000F8CF09F100C1F6FF01C1F7FF02C1F8FFEF -:1038F0000101035302E1045307E00900F550EE6EA5 -:103900000307F8E20407F9D707C1F6FF08C1F7FF7C -:1039100009C1F8FF01010507000E065BBFD71200C1 -:10392000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF6A -:10393000AC6AAB6AFD0EDBB0AC88DBA202D0AC8C0B -:10394000AB8CDBB4AC8EDBA602D0AB8801D0AB8AEB -:10395000DBB8AC849E98DBBAAC86DBAC02D09D8A27 -:1039600001D09D9A9E9ADBAE02D09D8801D09D9891 -:10397000FB0EDB50AF6EFB0EFC0EDBCF01F001C087 -:1039800000F0016A0050B06EAC8AAB8E949C948EAD -:10399000AC50100B04E0AC50800B01E1948CE5526C -:0A39A000E5CFDAFFE7CFD9FF1200F0 -:0639AA00D9CFE6FFDACFE1 -:1039B000E6FFE1CFD9FFE2CFDAFFE65229D820E0D7 -:1039C000C6A60AD025D8E66E8DEC1EF0E552DF6E55 -:1039D000DF5010E0DF5015D09E961AD8C96EC68809 -:1039E0009EA6FED7C750040B05E1C750010B02E1AC -:1039F000FE0E07D0FC0EDB2AFD0EE0E3DB2ADED74D -:103A0000000EE552E552E5CFDAFFE7CFD9FF12000D -:103A1000FC0EDBCFE9FFFD0EDBCFEAFFEF5012001B -:103A2000FE0EE3CFE9FFFF0EE3CFEAFFE9CFF3FF9E -:103A3000EACFF4FFFB0EE35003E1FC0EE35009E094 -:103A4000FB0EE30602E2FC0EE306FD0EE350EE6E13 -:103A5000F1D71200FB0EE3CFF6FFFC0EE3CFF7FF2A -:103A6000FD0EE3CFF8FFFE0EE3CFE9FFFF0EE3CF3D -:103A7000EAFFE9CFF3FFEACFF4FFEE66FED7ED529F -:0C3A80000900F5CFEFFFEE66FBD7120047 -:043A8C002DD8FD0E26 -:103A9000DB50A86EA69EA69CA684F250800B01E087 -:103AA000010E01011D6FF29E550EA76EAA0EA76EA4 -:103AB000A6821D51E8B0F28EE8A0F29EA6B2FED713 -:103AC000A198A694E552E7CFD9FF12000DD8A69E83 -:103AD000A69CA680020EE66EDEEC1FF0E552A85012 -:103AE000E552E7CFD9FF1200D9CFE6FFE1CFD9FFEA -:083AF000FE0EDB50A96E12006E -:083AF800D9CFE6FFDACFE6FFAB -:103B0000E1CFD9FFE2CFDAFFE652E652FC0EDBCF7F -:103B100000F0FD0EDBCF01F0060ED8900036013626 -:103B2000E804FBE100C0DEFF01C0DDFF010EDB5059 -:103B3000BB6EDF50E840E8403F0B300B006ECF0E0D -:103B4000BA140010BA6EE552E552E552E5CFDAFF3D -:063B5000E7CFD9FF1200CF -:0A3B5600D9CFE6FFDACFE6FFE1CF9A -:103B6000D9FFE2CFDAFFE652E652FC0EDBCF00F0DF -:103B7000FD0EDBCF01F0060ED89000360136E804CA -:103B8000FBE100C0DEFF01C0DDFF010EDB50BE6EB9 -:103B9000DF50E840E8403F0B300B006ECF0EBD1405 -:103BA0000010BD6EE552E552E552E5CFDAFFE7CFF2 -:043BB000D9FF120027 -:0C3BB400D9CFE6FFDACFE6FFE1CFD9FF62 -:103BC000E2CFDAFFE652E6520C0EBA6E050EF66E42 -:103BD000F76A300EF86E0800F550010B03E0010E95 -:103BE000DB6802D0010EDB6ADB5002E0949201D068 -:103BF0009396CA94FD0EDB50CB6ECA84E552E55213 -:0C3C0000E552E5CFDAFFE7CFD9FF120054 -:043C0C00276A266A93 -:103C1000256A246A200EE76ED890283629362A367F -:103C20002B3624362536263627362D50245C2E504A -:103C300025582F5026583050275809E32D50245E20 -:103C40002E50255A2F50265A3050275A282AE72E10 -:043C5000E4D71200A3 -:0C3C5400D9CFE6FFDACFE6FFE1CFD9FFC1 -:103C6000E2CFDAFFFD0EDB50360BB16EB36AB26AFB -:103C7000A192FD0EDBAE02D0A08201D0A092DBB2F9 -:103C8000CD86DBA002D0B18E01D0B19EB180E552CD -:0A3C9000E5CFDAFFE7CFD9FF1200FD -:063C9A00D9CFE6FFDACFEE -:103CA000E6FFE1CFD9FFE2CFDAFFFD0EDB507E0B5E -:103CB000CD6EFD0EDBAC02D0CD8E01D0CD9ECF6A95 -:103CC000CE6A9E90DBAE02D09D8001D09D90CD80CB -:0C3CD000E552E5CFDAFFE7CFD9FF120084 -:043CDC00D9CFE6FF57 -:103CE000DACFE6FFE1CFD9FFE2CFDAFFE652F20EFC -:103CF0000001FF17ABAC03D0FF91ABB0FF81ABB4B9 -:103D0000FF85ABB2FF87AE50DF6EDF50E552E55264 -:0A3D1000E5CFDAFFE7CFD9FF12007C -:063D1A00D9CFE6FFDACF6D -:103D2000E6FFE1CFD9FFE2CFDAFFFD0EDB50C96E2F -:103D3000C6AE02D0FF0E09D0C7B0FED7E9EC1FF027 -:103D4000C5AC02D0FE0E01D0000EE552E5CFDAFF81 -:063D5000E7CFD9FF1200CD -:0A3D560032333A35363A313400209A -:103D6000004D6172203037203230313000526F62A6 -:103D70006F7420496E7465726661636520312E3000 -:103D80000A4F6C697669657220424943484C455236 -:013D90000032 -:0E3D9200D9CFE6FFDACFE6FFE1CFD9FFE2CFCF -:103DA000DAFFE652E652FC0EDBCFDEFFDBCFDDFFB3 -:103DB000010EDB50B36EDF50B26EE552E552E552B4 -:0A3DC000E5CFDAFFE7CFD9FF1200CC -:063DCA00D9CFE6FFDACFBD -:103DD000E6FFE1CFD9FFE2CFDAFFE652E652FC0E72 -:103DE000DBCFDEFFDBCFDDFF010EDB50CF6EDF5020 -:103DF000CE6EE552E552E552E5CFDAFFE7CFD9FFC7 -:023E00001200AE -:0E3E0200D9CFE6FFDACFE6FFE1CFD9FFE2CF5E -:103E1000DAFFE652E652FC0EDBCFDEFFDBCFDDFF42 -:103E2000010EDB50D76EDF50D66EE552E552E552FB -:0A3E3000E5CFDAFFE7CFD9FF12005B -:063E3A00D9CFE6FFDACF4C -:103E4000E6FFE1CFD9FFE2CFDAFFFD0EDB507F0BBB -:103E5000D56ED76AD66AF294FD0EDBAE02D0F28A36 -:103E600001D0F29AD58EE552E5CFDAFFE7CFD9FF40 -:023E700012003E -:0E3E7200D9CFE6FFDACFE6FFE1CFD9FFE2CFEE -:103E8000DAFFFD0EDB50FB0BCA6ECC6A9E92FD0E74 -:103E9000DBAE02D09D8201D09D92CA84E552E5CF6F -:083EA000DAFFE7CFD9FF1200A1 -:083EA800D9CFE6FFDACFE6FFF7 -:103EB000E1CFD9FFE2CFDAFF3F0EC716C66AC56A67 -:103EC000FD0EDB50C612FC0EDB50C71293829380AE -:0E3ED000C68AE552E5CFDAFFE7CFD9FF120030 -:023EDE00D9CF3A -:103EE000E6FFE1CFD9FF00010ED8EF50000803E252 -:103EF000EB291F0BEB6F07D8FE0EDBCFEFFFE55270 -:103F0000E7CFD9FF1200EB51EA6ACB0FE96E000E42 -:043F1000EA2212008F -:0C3F1400D9CFE6FFDACFE6FFE1CFD9FFFE -:103F2000E2CFDAFF0C0EBD129494CA94FD0EDB5062 -:103F3000CB6ECA84E552E5CFDAFFE7CFD9FF120096 -:043F40009494120043 -:0C3F4400FF0EE350376EEF0E01D0F30EBD -:103F5000E76EE72EA9EF1FF00C0E366EE76AE72E2C -:103F6000AFEF1FF0362EAEEF1FF0372EA7EF1FF08A -:023F700012003D -:0E3F7200D9CFE6FFDACFE6FFE1CFD9FFE2CFED -:103F8000DAFFACAC04D0AC900001FFB3AC80FD0E06 -:103F9000DB50AD6EE552E5CFDAFFE7CFD9FF120077 -:103FA00013EE00F023EE00F0F86A239C41EC1CF0C5 -:0C3FB000F9EC1FF0B4EC04F0FBD7120099 -:043FBC00FF0EE350C1 -:103FC000E84E1200000000D000D000D0E82EFAD752 -:023FD0001200DD -:0E3FD2001F0EC514FDE1C750040BFAE11200EA -:0E3FE00000EE00F00F0EEE6AEA62FDD712004E -:023FEE00C69A71 -:023FF0001200BD -:023FF2001200BB -:093FF400000000000000000000C4 -:033FFD00000000C1 -:0D40000000000000000000000000000000B3 -:03400D00000000B0 -:054010000001000000AA -:0B4015000000000000000000000000A0 -:104020000000000000000000000000000000000090 -:064030000000000000008A -:0A4036000000000000000000000080 -:104040000000000000000000000000000000000070 -:0A4050000000000000000000000066 +:10088000220EE80403E3EECFE4FFFBD76CEC0DF09F +:10089000A1A203D047EC1AF0A1929EAA03D086EC45 +:1008A00013F09E9A9EA003D003EC19F09E907FEC6B +:1008B0000DF002E2E16AE5527DEC0DF0E55200EE4A +:1008C00021F0220EE80403E3E5CFEDFFFBD700EEB5 +:1008D00035F0140EE80403E3E5CFEDFFFBD759EC48 +:1008E0000DF01100D8CFE4FFE0CFE4FFE46E44EC5C +:1008F0000DF000EE22F0140EE80403E3EECFE4FF67 +:10090000FBD700EE00F0220EE80403E3EECFE4FF95 +:10091000FBD76CEC0DF0F2A403D0EAEC18F0F294E3 +:100920007FEC0DF002E2E16AE5527DEC0DF0E5525C +:1009300000EE21F0220EE80403E3E5CFEDFFFBD744 +:1009400000EE35F0140EE80403E3E5CFEDFFFBD72E +:1009500059EC0DF0E550E5CFE0FFE5CFD8FF1000F2 +:1009600004D809EC0EF058D8FCD70F0EC11202D8EB +:10097000D3EF0DF0AEEC0DF0E652CBEC0CF0000135 +:10098000FC6F070EFC5D10E1E66A47EC1EF0E552D5 +:10099000DF6E000EDF8087EC0DF0E66A83EC20F05E +:1009A000E552DF7087EC0DF093809382948C948EE7 +:1009B000D08EF28EF28C770EC86EE66AF7EC1BF0E2 +:1009C000E5523F0E8A1693160101136B146B156BDB +:1009D000166B010E176F79EC13F0E30E95169292D9 +:1009E0009492A082FD0EE66E0BEC1FF0E552000E15 +:1009F000E66EE66AAAEC1FF0E552E5528394839610 +:100A0000839880928292E66AACEC18F0E55263EC2F +:100A10001BF0E552BFEF0DF0D9CFE6FFE1CFD9FFD4 +:100A2000170EE126160EDB6A0101175102E0B8EC41 +:100A30000BF0200E0001605D03E36D50020B02E03D +:100A4000AEEF0BF0160EDB5036E0ACEC19F00009FF +:100A500032E001011551161102E1000E08D015C156 +:100A6000E9FF16C1EAFFEF50800B01E0010E00091B +:100A700022E10501406B01011851182B0501416F5E +:100A800005010C0E426F0501436B400EE66E400EF1 +:100A9000E66E050EE66E010EE66E010EE66E24ECC5 +:100AA00012F0006E050EE15E0050F3CF15F1F4CFA9 +:100AB00016F1160EDB6A01011551161102E1000E46 +:100AC00008D015C1E9FF16C1EAFFEF50800B01E025 +:100AD000010E000947E10001EB51EA6ACB0FE96E14 +:100AE000000EEA22EF5000083DE20501406B0101D3 +:100AF0001851182B0501416F0501040E426F0001CA +:100B0000EB51EA6ACB0FE96E000EEA22EFCF43F514 +:100B1000400EE66E400EE66E050EE66E010EE66EC7 +:100B2000010EE66E24EC12F0006E050EE15E005040 +:100B3000F3CF15F1F4CF16F10001EB51EA6ACB0FB8 +:100B4000E96E000EEA22EF6A0001EB51000803E2B1 +:100B50000001EB0707D00001EA51000803E20001A1 +:100B60001F0EEB6F01011351141102E1000E08D0AA +:100B700013C1E9FF14C1EAFFEF50800B01E0010E41 +:100B8000000902E0AEEF0BF005010251070A02E195 +:100B900014EF0BF0020A02E1E6EF0AF00E0A02E19E +:100BA0008DEF0AF0060A02E1EEEF09F0040A01E116 +:100BB00010D20F0A01E165D1040A1AE0030A07E026 +:100BC000010A02E06DEF0BF0FF00AEEF0BF0E66AFA +:100BD00047EC1EF0E552DF6E000EDB80DFCFE6FF54 +:100BE000E66A27EC1EF0E552E552FF00AEEF0BF08F +:100BF00001011551161102E1000E08D015C1E9FFDF +:100C000016C1EAFFEF50800B01E0010E000901E080 +:100C100036D100C540F50501416B0501030E426F59 +:100C20000501436B050108510A0A01E17ED00E0A55 +:100C300071E0070A64E0010A20E0030A06E0010A05 +:100C400001E0F3D0FCC048F5F3D00501486B2F0E4E +:100C5000006E3F0E016E026A00C0E6FF01C0E6FFB3 +:100C600002C0E6FF480EE66E050EE66E0BEC1EF0C7 +:100C7000036E050EE15E0350DBD00501486B230EC9 +:100C8000006E3F0E016E026A00C0E6FF01C0E6FF83 +:100C900002C0E6FF480EE66E050EE66E0BEC1EF097 +:100CA000036E050EE15E0350210E006E3F0E016ED5 +:100CB000026A00C0E6FF01C0E6FF02C0E6FF480E80 +:100CC000E66E050EE66E0BEC1EF0036E050EE15EA1 +:100CD0000350180E006E3F0E016E026A00C0E6FF60 +:100CE00001C0E6FF02C0E6FF480EE66E050EE66EA6 +:100CF0000BEC1EF0036E050EE15E035099D092CF0F +:100D000048F593CF49F594CF4AF595CF4BF596CF5B +:100D10004CF58ED080CF48F581CF49F582CF4AF58A +:100D200083CF4BF584CF4CF583D0800EE66E080E52 +:100D3000E66E35EC20F0E552E552C580CAEC20F0B5 +:100D4000C00EE66E6EEC1FF0E552E66A6EEC1FF028 +:100D5000E552C582CAEC20F0C10EE66E6EEC1FF0C3 +:100D6000E552010EDB6A020EDB6A010EDBCF00F0FA +:100D7000020EDBCF01F0040E005C000E01584FE2C2 +:100D8000010EF36E150EF3CFDBFFC586130EDB6A83 +:100D9000140EDB6A130EDBCF00F0140EDBCF01F074 +:100DA000E80E005C030E015817E2C7A00FD0010E39 +:100DB000DBCFE9FF020EDBCFEAFF480EE926050E86 +:100DC000EA22C9CFEFFF150EDB6A06D0130EDB2A2D +:100DD000140E01E3DB2ADED7150EDB5008E0050117 +:100DE000080E436FC58AC588CAEC20F018D0010EE2 +:100DF000DBCF00F0020EDBCF01F0030E005C000E33 +:100E0000015803E2C59AC58802D0C58AC588CAECD4 +:100E100020F0010EDB2A020E01E3DB2AA6D7C584EF +:100E2000CAEC20F0D8EC20F003D00501020E436F8D +:100E3000400EE66E400EE66E050EE66E010EE66EA4 +:100E4000010EE66E24EC12F0006E050EE15E00501D +:100E5000F3CF15F1F4CF16F1400EE66E000EE66EFC +:100E6000050EE66EE66A010EE66E24EC12F0006EE8 +:100E7000050EE15E0050F3CF13F1F4CF14F1AEEFA5 +:100E80000BF005010851050A54E0010A49E0070A80 +:100E900037E0010A25E0030A13E0010A01E080D0EF +:100EA00005010951921205010A51931205010B51D6 +:100EB000941205010C51951205010D51961275D031 +:100EC0000501091D921605010A1D931605010B1D4A +:100ED000941605010C1D951605010D1D961665D07D +:100EE0000501091D891605010A1D8A1605010B1D3C +:100EF0008B1605010C1D8C1605010D1D8D1655D088 +:100F000005010951891205010A518A1205010B5187 +:100F10008B1205010C518C1205010D518D1245D01B +:100F20000501095101010F1B05010A5101010F13B0 +:100F30003CD0050109A107D00AC5E6FFE66ADFEC4F +:100F40001AF0E552E552050109A308D00BC5E6FFEA +:100F5000010EE66EDFEC1AF0E552E552050109A537 +:100F600008D00CC5E6FF020EE66EDFEC1AF0E55283 +:100F7000E552050109A708D00DC5E6FF030EE66E90 +:100F8000DFEC1AF0E552E552050109A908D00EC5BB +:100F9000E6FF040EE66EDFEC1AF0E552E55205D0EE +:100FA000030EE66E50EC20F0E552400EE66E000EA9 +:100FB000E66E050EE66EE66A010EE66E24EC12F0B1 +:100FC000006E050EE15E0050F3CF13F1F4CF14F183 +:100FD000C5D301011551161102E1000E08D015C14B +:100FE000E9FF16C1EAFFEF50800B01E0010E000996 +:100FF00001E0F3D100C540F50501416B0501030E89 +:10100000426F0501436B05010851110A01E1B5D199 +:10101000010A01E1ACD1190A01E183D1010A01E120 +:10102000E3D00F0A01E1C5D0010A01E1AAD0030A09 +:1010300001E18FD0010A6AE0070A42E0010A11E0EB +:10104000030A01E0A0D105010A51E66EE66A09C56E +:10105000E6FF87EC14F0E552E552E5520501486FD2 +:1010600095D105010B051BE105010C51E66EE66A01 +:101070000AC5E6FF09C5E6FF44EC15F0E552E55266 +:10108000E552E5520F0EF3CFDBFF100EF4CFDBFF7E +:10109000100EDBCF48F50F0EDBCF49F510D0050160 +:1010A0000C51E66EE66A0AC5E6FF09C5E6FFE1EC0B +:1010B00014F0E552E552E552E5520501486F66D15C +:1010C00005010B0517E1100E0CC5DBFF0F0E0DC55A +:1010D000DBFF0F0EDBCFE6FF100EDBCFE6FF0AC50E +:1010E000E6FF09C5E6FFDAEC14F0E552E552E552F9 +:1010F000E5520BD00CC5E6FF0AC5E6FF09C5E6FFC1 +:10110000D6EC14F0E552E552E55240D1100E0AC576 +:10111000DBFF0F0E0BC5DBFF120E0CC5DBFF110E44 +:101120000DC5DBFF0EC5E6FF110EDBCFE6FF120E8D +:10113000DBCFE6FF0F0EDBCFE6FF100EDBCFE6FFC7 +:1011400009C5E6FFC5EC15F0006E060EE15E005025 +:101150001DD105010A51E66EE66A09C5E6FFE8EC15 +:1011600015F0E552E552E5520F0EF3CFDBFF100EFE +:10117000F4CFDBFF100EDBCF48F50F0EDBCF49F5C8 +:1011800005D105010A51E66EE66A09C5E6FFEBECFA +:1011900015F0E552E552E5520F0EF3CFDBFF100ECE +:1011A000F4CFDBFF100EDBCF48F50F0EDBCF49F598 +:1011B000EDD005010A51E66EE66A280EE66E09C515 +:1011C000E6FF44EC15F0E552E552E552E5520F0E0C +:1011D000F3CFDBFF100EF4CFDBFF100EDBCF48F5B3 +:1011E0000F0EDBCF49F5D2D005010A51E66EE66A53 +:1011F00009C5E6FFE8EC15F0E552E552E5520F0EA1 +:10120000F3CFDBFF100EF4CFDBFF100EDBCF48F582 +:101210000F0EDBCF49F505010A51E66EE66A09C5F6 +:10122000E6FFEBEC15F0E552E552E5520F0EF3CF79 +:10123000DBFF100EF4CFDBFF100EDBCF4AF50F0EF5 +:10124000DBCF4BF505010A51E66EE66A280EE66E25 +:1012500009C5E6FF44EC15F0E552E552E552E552CA +:101260000F0EF3CFDBFF100EF4CFDBFF100EDBCF42 +:101270004CF50F0EDBCF4DF505010A51E66EE66A1F +:101280002A0EE66E09C5E6FFE1EC14F0E552E552E0 +:10129000E552E55205014E6F05010A51E66EE66A18 +:1012A0002B0EE66E09C5E6FFE1EC14F0E552E552BF +:1012B000E552E55205014F6F05010A51E66EE66AF7 +:1012C000060EE66E09C5E6FF44EC15F0E552E55260 +:1012D000E552E5520F0EF3CFDBFF100EF4CFDBFF2C +:1012E000100EDBCF50F50F0EDBCF51F505010A5183 +:1012F000E66EE66A080EE66E09C5E6FF44EC15F0F8 +:10130000E552E552E552E5520F0EF3CFDBFF100E2A +:10131000F4CFDBFF100EDBCF52F50F0EDBCF53F512 +:1013200035D005010B0517E1100E0CC5DBFF0F0EC4 +:101330000DC5DBFF0F0EDBCFE6FF100EDBCFE6FFA8 +:101340000AC5E6FF09C5E6FFB8EC15F0E552E5521F +:10135000E552E5520BD00CC5E6FF0AC5E6FF09C50C +:10136000E6FFB4EC15F0E552E552E5520FD009C5A1 +:10137000E6FFC0EC15F0E55209D009C5E6FFD1EC57 +:1013800014F0E55203D00501010E436F400EE66EE6 +:10139000400EE66E050EE66E010EE66E010EE66E7E +:1013A00024EC12F0006E050EE15E0050F3CF15F153 +:1013B000F4CF16F1400EE66E000EE66E050EE66EF8 +:1013C000E66A010EE66E24EC12F0006E050EE15E98 +:1013D0000050F3CF13F1F4CF14F1C0D10101155136 +:1013E000161102E1000E08D015C1E9FF16C1EAFF8F +:1013F000EF50800B01E0010E000901E08DD000C527 +:1014000040F50501416B0501030E426F0501436B79 +:1014100005010851070A48E0010A3BE0030A2EE0F3 +:10142000010A25E0070A1BE0010A12E0030A08E0AE +:10143000010A01E047D0E66AFEEC1BF0E55245D018 +:10144000010EE66EE66A01EC1CF0E552E5523DD075 +:10145000E66AE66A01EC1CF0E552E55236D0010E70 +:10146000E66EE66A09EC1CF0E552E5522ED0E66A1B +:10147000E66A09EC1CF0E552E55227D00AC5E6FF02 +:1014800009C5E6FFE66A14EC1CF0E552E552E552A8 +:101490001CD0090EE66E050EE66EE66A21EC1CF025 +:1014A000E552E552E55211D00A0EE66E050EE66EE3 +:1014B00009C5E6FFE66A27EC1CF0E552E552E55265 +:1014C000E55203D00501010E436F400EE66E400E5B +:1014D000E66E050EE66E010EE66E010EE66E24EC7B +:1014E00012F0006E050EE15E0050F3CF15F1F4CF5F +:1014F00016F1400EE66E000EE66E050EE66EE66A2A +:10150000010EE66E24EC12F0006E050EE15E005056 +:10151000F3CF13F1F4CF14F121D105010851030ADF +:1015200011E0010A09E0030A01E037D009C5E6FF2E +:101530001CEC19F0E55236D009C5E6FF2AEC19F08B +:10154000E55230D00E0E0CC5DBFF0D0E0DC5DBFFD6 +:101550000C0E0EC5DBFF0B0E0FC5DBFFD9500B0FBA +:10156000E96EDACFEAFFEECFE6FFEECFE6FFEECF91 +:10157000E6FFEFCFE6FF0BC5E6FF0AC5E6FF09C5AC +:10158000E6FF38EC19F0006E070EE15E0050010E28 +:10159000F36E160EF3CFDBFF05D0010EE66E50ECB6 +:1015A00020F0E552400EE66E000EE66E050EE66E89 +:1015B000E66A010EE66E24EC12F0006E050EE15EA6 +:1015C0000050F3CF13F1F4CF14F1C8D0800EE66EC3 +:1015D000080EE66E35EC20F0E552E552C580CAEC07 +:1015E00020F0E66A6EEC1FF0E552080EE66E050E7E +:1015F000E66EB6EC1DF0E552E552C584D8EC20F05D +:10160000400EE66E000EE66E050EE66EE66A010E10 +:10161000E66E24EC12F0006E050EE15E0050F3CF92 +:1016200013F1F4CF14F19AD04F0EAB16AC9ACF0E43 +:101630009D16020EE66EE66A7C0EE66E71EC1DF0FB +:10164000E552E552E552040EE66EE66A75EC14F0DA +:10165000E552E552100EE66E010EE66E75EC14F0E2 +:10166000E552E552020EE66E030EE66E010EE66EE0 +:10167000F0EC13F0E552E552E552040EE66EE66A30 +:1016800075EC14F0E552E552100EE66E010EE66EB2 +:1016900075EC14F0E552E552020EE66E030EE66EAE +:1016A000010EE66EF0EC13F0E552E552E55279ECEE +:1016B00013F0400EE66E000EE66E050EE66EE66A6C +:1016C000010EE66E24EC12F0006E050EE15E005095 +:1016D000F3CF13F1F4CF14F141D0010115511611DC +:1016E00002E1000E08D015C1E9FF16C1EAFFEF5074 +:1016F000800B01E0010E000931E100C540F5050154 +:10170000416B0501030E426F0501010E436F400E50 +:10171000E66E400EE66E050EE66E010EE66E010EFA +:10172000E66E24EC12F0006E050EE15E0050F3CF81 +:1017300015F1F4CF16F1400EE66E000EE66E050EC2 +:10174000E66EE66A010EE66E24EC12F0006E050EFF +:10175000E15E0050F3CF13F1F4CF14F1170EE15C0A +:1017600002E2E16AE552E16EE552E7CFD9FF1200ED +:10177000010119511A1104E1100E196F270E1A6F89 +:101780001907000E1A5B6DA207D019511A112EE12C +:101790008A7C8ABC13D027D00001605102E18A9C68 +:1017A00022D0600502E18A8C09D0020E605D02E160 +:1017B0008A8C19D0040E605D03E18A9C8A8E120027 +:1017C000100E605D06E1010119511A110FE18A7CCA +:1017D0000AD0200E605D0AE1010119511A1106E1DB +:1017E0008A7C8AAC02D08A9E12008A8E120016D998 +:1017F000210EC1D9500EA8D9CFD9630E77D9630E67 +:10180000EE6E740EEE6E690EEE6E760EEE6E690E74 +:10181000EE6E740E8BD9A7D92AD92CD9E66A01ECC1 +:101820001CF0E552E552E66ADCD802E2E16AE552D4 +:101830007DEF0DF0F3D82D0E9ED9430E57D9780EBB +:10184000EE6E690EEE6E6F0EEE6E6E0EEE6E200E8A +:101850007BD9740E9DD9620EEE6E6C0EEE6E690E23 +:1018600065D9EE6E80D9EE6E93D9760E6DD9630E82 +:10187000EE6E200EEE6E6C0E8BD9200EEE6EFAD848 +:10188000FEEC1BF0E552E66AE66A01EC1CF0E5525C +:10189000E552010EE66EA5D802E2E16AE5527DEF5F +:1018A0000DF01200120063EF1CF012001E0EE66E27 +:1018B000010EE66EF2EC11F0E552E552400EE66ED6 +:1018C000000EE66E050EE66EE66A010EE66E24EC8C +:1018D00012F0006E050EE15E0050F3CF13F1F4CF6D +:1018E00014F112006D840001080EFD6F070EFE6FEB +:1018F000FD07000EFE5BFD51FE11FAE16D94120032 +:10190000D9CFE6FFE1CFD9FFFD0EDBCF2AF0FE0EE7 +:10191000DBCF2BF0010E2A1801E12B5033E0E868F1 +:101920002A1802E1E8682B182BE0030E2A1801E1BF +:101930002B5024E0040E2A1801E12B501DE0020E6A +:101940002A1801E12B5016E0170E2A1801E12B503E +:101950000FE0160E2A1801E12B5008E0150E2A1888 +:1019600001E12B5001E010D0A1DF0FD09EDF0DD0A0 +:101970009ADF0BD096DF09D03ADF07D05BDF05D0C6 +:1019800091DF03D0000001D000D0010E00D0E5525D +:10199000E7CFD9FF1200E2D8E652D0B202D0010E52 +:1019A00015D0D0B802D0020E11D0D0B002D0030EA4 +:1019B0000DD0D0B602D0040E09D0FCAE02D0050E78 +:1019C00005D0FCAC02D0060E01D0070EDF6ED08829 +:1019D000D086D084D082D080FC9EFC9CDF50E55223 +:1019E000CED0E66A09EC1CF0E552E552D9CFE6FF0D +:1019F000DACFE6FF010E9FD8D950150FC4D8020EDA +:101A00009AD8D9502A0FBFD8030E95D8D9503F0F76 +:101A1000BAD8040E90D8540EE15C12009FD8540E30 +:101A2000E126D9CFE9FFDACFEAFF5B0EEE6E4B0E6F +:101A3000EE6E720EEE6E6F0EEE6E5D0EEE6E620E5E +:101A4000EE6E6F0EEE6E740EEE6E200E81D8EE6EA0 +:101A5000EE6E570E9DD86C0EEE6EEE6E790EEE6E3B +:101A6000EE6AD950150FE96EDACFEAFF120070D88E +:101A7000A8EF0DF0630E8CD88FD86D0E65D8720E5E +:101A800063D8EE6AE66A1200DACFE4FFE2CFDAFF4B +:101A9000E9CFE4FFEACFE4FFF6CFE4FFF7CFE4FFBE +:101AA000F5CFE4FFF3CFE4FFF4CFE4FFFACFE4FF98 +:101AB0001200E5CFFAFFE5CFF4FFE5CFF3FFE5CF66 +:101AC000F5FFE5CFF7FFE5CFF6FFE5CFEAFFE5CF7E +:101AD000E9FFE5CFDAFF1200E65240D8020EE12618 +:101AE000F350DF6E010EF4CFDBFF1200EE6E6F0ECF +:101AF000EE6E6E0EEE6EA4EF0DF0E16E40D0DF5094 +:101B0000F36E010EDB50F46E020EE15C1200DFCFCB +:101B1000E6FFE66A27EC1EF0E552E5521200EE6A97 +:101B2000D9502A0FE96EDACFEAFF12000DD8200E45 +:101B3000EE6EEE6E1200E66EE66A27EC1CF0E552E1 +:101B4000E552E552E5521200EE6E650EEE6E1200A1 +:101B5000EE6EEE6EEE6EEE6EEE6E1200D9CFE6FF1A +:101B6000E1CFD9FF1200EE6AD9503F0FE96EDACF0C +:101B7000EAFF200E12007BDF7ADF8FEF0DF0E552D7 +:101B8000E7CFD9FF1200E66E000EDA20E66E1200F3 +:101B9000EE6E610EEE6E1200720EEE6E740ED4DFFB +:061BA000200EEE6E1200A3 +:0A1BA600CBEC12F06A6A686AFEECEC +:101BB00012F06D8C6E6AAEEC12F06D9CDF6ADFEC99 +:101BC00012F010E2DF50040DF3CFE9FFF4CFEAFF8B +:101BD000000EE926040EEA22EE6AEE6AEE6AEE6A6A +:101BE000DF2AEDD7160E706E68A604D0030E74ECD3 +:101BF00012F0FAD70001736B786B796B7A6B6D9882 +:101C0000080E6B6F040E6C6F616B606BE55289EFB1 +:101C100012F0CBEC12F0000160510BE16D6A696AC1 +:101C2000FEEC12F06DB602D06D86FCD70001010EFD +:101C3000606F600508E16DBA06D0686A696A6980FC +:101C40006988020E606F6850040B07E06950040B4E +:101C500004E0020E74EC12F089D86DB247D06850DF +:101C6000010B14E06950010B11E09DDF0001040E2F +:101C7000606F0401200E026F040E036F080E016FE7 +:101C8000006B8C0E0013E66A3DEC13F06850100BED +:101C900007E06950100B04E060D8040E74EC12F0F9 +:101CA0006850400B0BE06950400B08E005EC13F066 +:101CB000020E7CEC12F0060E74EC12F0685... [truncated message content] |
From: Jérémie D. <Ba...@us...> - 2010-03-07 23:12:27
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 2a834df76aa8ddbca0617408865686f18f99dbab (commit) from 64de58caa3d4bfea3fb420871ae0f090080b694a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 2a834df76aa8ddbca0617408865686f18f99dbab Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 00:12:11 2010 +0100 typos ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index c9b0c38..8101a76 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -622,13 +622,14 @@ let interfaces = [ ~name:"write" ~code:PcInterface.cmd_lcd ~args:[Cst(uint8, PcInterface.lcd_write); - Arg("message", uint8)] + Arg("message", string)] (); command ~name:"write-line" ~code:PcInterface.cmd_lcd ~args:[Cst(uint8, PcInterface.lcd_write_line); - Arg("message", uint8)] + Arg("line", uint8); + Arg("message", string)] (); ]); ] hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 23:09:13
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 64de58caa3d4bfea3fb420871ae0f090080b694a (commit) from 61f9eb71c06e9e9f33994eef5a47029db8a07baa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 64de58caa3d4bfea3fb420871ae0f090080b694a Author: Jérémie Dimino <je...@di...> Date: Mon Mar 8 00:08:11 2010 +0100 add more functions for the LCD ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index d260e89..c9b0c38 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -586,5 +586,49 @@ let interfaces = [ ~code:PcInterface.cmd_send ~args:[Arg("message", string)] (); + command + ~name:"clear" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_clear)] + (); + command + ~name:"cursor-on" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_cursor_on)] + (); + command + ~name:"cursor-off" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_cursor_off)] + (); + command + ~name:"backlight-on" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_backlight_on)] + (); + command + ~name:"backlight-off" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_backlight_off)] + (); + command + ~name:"goto" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_goto_pos); + Arg("x", uint8); + Arg("y", uint8)] + (); + command + ~name:"write" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_write); + Arg("message", uint8)] + (); + command + ~name:"write-line" + ~code:PcInterface.cmd_lcd + ~args:[Cst(uint8, PcInterface.lcd_write_line); + Arg("message", uint8)] + (); ]); ] hooks/post-receive -- krobot |
From: Xavier L. <Ba...@us...> - 2010-03-07 22:59:31
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 61f9eb71c06e9e9f33994eef5a47029db8a07baa (commit) from 898dd1a410781431143f0c21e6158de5c4b7624c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 61f9eb71c06e9e9f33994eef5a47029db8a07baa Author: Xavier Lagorce <Xav...@cr...> Date: Sun Mar 7 23:57:53 2010 +0100 Adding a Library to manage the I2C LCD screen + USB interface ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Robot_Interface/Firmware/lcd.c b/USB_Module/Robot_Interface/Firmware/lcd.c new file mode 100644 index 0000000..555c44e --- /dev/null +++ b/USB_Module/Robot_Interface/Firmware/lcd.c @@ -0,0 +1,164 @@ +/** + * @file lcd.c + * Bibliothe de gestion de l'afficheur LCD CLDC204 +*/ + +#include "lcd.h" + +/** + * Initialise et efface l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C +*/ +void lcd_init(BYTE address) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(0); // Les 3 write suivants servent nitialiser correctement l'afficheur + WriteI2C(0); + WriteI2C(0); + WriteI2C(CMD_HEAD); + WriteI2C(CMD_CLEAR); + StopI2C(); + CloseI2C(); +} + +/** + * Efface l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C +*/ +void lcd_clear(BYTE address) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(CMD_HEAD); + WriteI2C(CMD_CLEAR); + StopI2C(); + CloseI2C(); +} + +/** + * Re l'affichage du curseur sur l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C + * @param activate_cursor mode du curseur :@n + * @TRUE : active le curseur@n + * @FALSE : dctive le curseur +*/ +void lcd_set_cursor(BYTE address, BOOL activate_cursor) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(CMD_HEAD); + if (activate_cursor) + WriteI2C(CMD_CURSOR_ON); + else + WriteI2C(CMD_CURSOR_OFF); + StopI2C(); + CloseI2C(); +} + +/** + * Re l'activation du ro-airage sur l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C + * @param activate_backlight mode du curseur :@n + * @TRUE : active le ro-airage@n + * @FALSE : dctive le ro-airage +*/ +void lcd_set_backlight(BYTE address, BOOL activate_backlight) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(CMD_HEAD); + if (activate_backlight) + WriteI2C(CMD_BACKLIGHT_ON); + else + WriteI2C(CMD_BACKLIGHT_OFF); + StopI2C(); + CloseI2C(); +} + +/** + * Dace le curseur vers l'origine de l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C +*/ +void lcd_goto_origin(BYTE address) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(CMD_HEAD); + WriteI2C(CMD_GOTO_ORIGIN); + StopI2C(); + CloseI2C(); +} + +/** + * Positionne le curseur ne position donnsur l'an LCD + * + * @param address adresse de l'an LCD sur le bus I2C + * @param xx coordonnx du curseur + * @param yy coordonny du curseur +*/ +void lcd_goto(BYTE address, BYTE xx, BYTE yy) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(CMD_HEAD); + WriteI2C(CMD_GOTO_POS); + WriteI2C(xx); + WriteI2C(yy); + StopI2C(); + CloseI2C(); +} + +/** + * Ecrit une suite de caract sur l'an LCD a position courante du curseur + * + * @param address adresse de l'an LCD sur le bus I2C + * @param msg cha de caracts crire (se termine par NULL) +*/ +void lcd_write(BYTE address, unsigned char *msg) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + putsI2C(msg); + StopI2C(); + CloseI2C(); +} + +/** + * Ecrit une suite de caract sur l'an LCD a ligne indiqu + * Attention : le dssement ne sera pas test+ * + * @param address adresse de l'an LCD sur le bus I2C + * @param line num de la ligne sur laquelle ire + * @param msg cha de caracts crire (se termine par NULL) +*/ +void lcd_write_line(BYTE address, BYTE line, unsigned char *msg) +{ + OpenI2C(MASTER, SLEW_OFF); + StartI2C(); + IdleI2C(); // Absolument nssaire + WriteI2C(address); + WriteI2C(line); + putsI2C(msg); + StopI2C(); + CloseI2C(); +} diff --git a/USB_Module/Robot_Interface/Firmware/lcd.h b/USB_Module/Robot_Interface/Firmware/lcd.h new file mode 100644 index 0000000..0e459d8 --- /dev/null +++ b/USB_Module/Robot_Interface/Firmware/lcd.h @@ -0,0 +1,34 @@ +/** + * @file lcd.h + * Bibliothe de gestion de l'afficheur LCD CLDC204 +*/ + +#ifndef LCD_H +#define LCD_H + +#include "GenericTypeDefs.h" +#include "Compiler.h" +#include "HardwareProfile.h" +#include <i2c.h> + +// Commandes de l'afficheur LCD +#define CMD_HEAD 0x1B +#define CMD_CLEAR 0x43 +#define CMD_CURSOR_ON 0x53 +#define CMD_CURSOR_OFF 0x73 +#define CMD_BACKLIGHT_ON 0x42 +#define CMD_BACKLIGHT_OFF 0x62 +#define CMD_GOTO_ORIGIN 0x48 +#define CMD_GOTO_POS 0x4C + +void lcd_init(BYTE address); +void lcd_clear(BYTE address); +void lcd_set_cursor(BYTE address, BOOL activate_cursor); +void lcd_set_backlight(BYTE address, BOOL activate_backlight); +void lcd_goto_origin(BYTE address); +void lcd_goto(BYTE address, BYTE xx, BYTE yy); +void lcd_write(BYTE address, unsigned char* msg); +void lcd_write_line(BYTE address, BYTE line, unsigned char *msg); + + +#endif \ No newline at end of file diff --git a/USB_Module/Robot_Interface/Firmware/main.c b/USB_Module/Robot_Interface/Firmware/main.c index 0461899..2243d8b 100644 --- a/USB_Module/Robot_Interface/Firmware/main.c +++ b/USB_Module/Robot_Interface/Firmware/main.c @@ -91,6 +91,10 @@ #include "servo.h" #include "mcc.h" #include "adjd-s371.h" +#include "lcd.h" + + +#define ADD_LCD 0x00 /* VARIABLES ******************************************************/ #pragma udata @@ -556,17 +560,7 @@ void UserInit(void) SSPADD = 119; // Vitesse de l'I2C = 100 KHz ( = FOSC/[4*(SSPADD+1)] ) // Initialisation et effacement de l'afficheur LCD - OpenI2C(MASTER, SLEW_OFF); - StartI2C(); - IdleI2C(); // Absolument nssaire - WriteI2C(0x00); - WriteI2C(0); // Les 3 write suivants servent nitialiser correctement l'afficheur - WriteI2C(0); - WriteI2C(0); - WriteI2C(0x1B); - WriteI2C(0x43); - StopI2C(); - CloseI2C(); + lcd_init(ADD_LCD); //Initialize all of the LED pins mInitAllLEDs(); @@ -994,6 +988,55 @@ void ProcessIO(void) { } break; + case CMD_LCD: + if (!HIDTxHandleBusy(USBInHandle)) { + ToSendDataBuffer.HSEQ = ReceivedDataBuffer.HSEQ; // Num sence PC + ToSendDataBuffer.DSEQ = 0; // Num sence PIC + ToSendDataBuffer.CMD = CMD_RESPOND; // Type requ + ToSendDataBuffer.ERR = 0; // Erreur + + switch (ReceivedDataBuffer.DATA[0]) { + case LCD_CLEAR: + lcd_clear(ADD_LCD); + break; + + case LCD_CURSOR_ON: + lcd_set_cursor(ADD_LCD, TRUE); + break; + + case LCD_CURSOR_OFF: + lcd_set_cursor(ADD_LCD, FALSE); + break; + + case LCD_BACKLIGHT_ON: + lcd_set_backlight(ADD_LCD, TRUE); + break; + + case LCD_BACKLIGHT_OFF: + lcd_set_backlight(ADD_LCD, FALSE); + break; + + case LCD_GOTO_POS: + lcd_goto(ADD_LCD, ReceivedDataBuffer.DATA[1], ReceivedDataBuffer.DATA[2]); + break; + + case LCD_WRITE: + lcd_write(ADD_LCD, &ReceivedDataBuffer.DATA[1]); + break; + + case LCD_WRITE_LINE: + lcd_write_line(ADD_LCD, ReceivedDataBuffer.DATA[1], &ReceivedDataBuffer.DATA[2]); + break; + + default: + ToSendDataBuffer.ERR = ERR_UNKNOWN_CMD; + } + + USBInHandle = HIDTxPacket(HID_EP, (BYTE*) &ToSendDataBuffer, 64); + USBOutHandle = HIDRxPacket(HID_EP,(BYTE*)&ReceivedDataBuffer,64); // Re-arm the OUT endpoint for the next packet + } + break; + case CMD_MOTOR: switch (ReceivedDataBuffer.DATA[0]) { case MOTOR_ENABLE: @@ -1289,14 +1332,7 @@ void USBCBSuspend(void) //things to not work as intended. // Turn off LCD backlight - OpenI2C(MASTER, SLEW_OFF); - StartI2C(); - IdleI2C(); // Absolument nssaire - WriteI2C(0x00); - WriteI2C(0x1B); - WriteI2C(0x62); - StopI2C(); - CloseI2C(); + lcd_set_backlight(ADD_LCD, FALSE); #if defined(__C30__) #if 0 @@ -1381,14 +1417,7 @@ void USBCBWakeFromSuspend(void) // operation). // Turn on LCD backlight - OpenI2C(MASTER, SLEW_OFF); - StartI2C(); - IdleI2C(); // Absolument nssaire - WriteI2C(0x00); - WriteI2C(0x1B); - WriteI2C(0x42); - StopI2C(); - CloseI2C(); + lcd_set_backlight(ADD_LCD, TRUE); } /******************************************************************** diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof index afa6b37..1f92449 100644 Binary files a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof and b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof differ diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex index 6f525bf..9e6f00d 100644 --- a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex +++ b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex @@ -1,915 +1,948 @@ :020000040000FA -:06000000E7EF1EF0120004 +:06000000D0EF1FF012001A :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000E7EF1EF01200FC +:06080000D0EF1FF0120012 :0608080034EF04F01200C1 :0608180074EF04F0120071 -:06082A000500643E000021 -:100830008600000024000000433E0000CB000000C2 -:10084000210000003B3E00001301000008000000F2 -:100850002B3E0000EC00000010000000223E0000D3 +:06082A000500364000004D +:10083000860000002400000015400000CB000000EE +:10084000210000000D40000013010000080000001E +:10085000FD3F0000EC00000010000000F43F00002D :080860000A010000090000007C -:080868001CEC0CF000EE22F084 +:08086800A5EC0CF000EE22F0FB :10087000140EE80403E3EECFE4FFFBD700EE00F034 -:10088000220EE80403E3EECFE4FFFBD744EC0CF0C8 -:10089000A1A203D0E9EC18F0A1929EAA03D028EC03 -:1008A00012F09E9A9EA003D0A5EC17F09E905BECF0 +:10088000220EE80403E3EECFE4FFFBD7CDEC0CF03F +:10089000A1A203D066EC19F0A1929EAA03D0A5EC08 +:1008A00012F09E9A9EA003D022EC18F09E90D7ECF6 :1008B0000CF002E2E16AE552E16EE552E7CFD9FFC2 :1008C000E55200EE21F0220EE80403E3E5CFEDFF50 :1008D000FBD700EE35F0140EE80403E3E5CFEDFF9F -:1008E000FBD731EC0CF01100D8CFE4FFE0CFE4FFF0 -:1008F000E46E1CEC0CF000EE22F0140EE80403E3AE +:1008E000FBD7BAEC0CF01100D8CFE4FFE0CFE4FF67 +:1008F000E46EA5EC0CF000EE22F0140EE80403E325 :10090000EECFE4FFFBD700EE00F0220EE80403E395 -:10091000EECFE4FFFBD744EC0CF0F2A403D08CEC58 -:1009200017F0F2945BEC0CF002E2E16AE552E16E42 +:10091000EECFE4FFFBD7CDEC0CF0F2A403D009EC52 +:1009200018F0F294D7EC0CF002E2E16AE552E16EC5 :10093000E552E7CFD9FFE55200EE21F0220EE804A0 :1009400003E3E5CFEDFFFBD700EE35F0140EE8042E -:1009500003E3E5CFEDFFFBD731EC0CF0E550E5CF3D -:10096000E0FFE5CFD8FF100004D8ABEC0CF063D863 -:10097000FCD70F0EC11202D875EF0CF070EC0CF022 -:10098000E652E6EC0BF00001FC6F070EFC5D10E197 -:10099000E66A7DEC1CF0E552DF6E000EDF8063EC52 -:1009A0000CF0E66AB9EC1EF0E552DF7063EC0CF077 +:1009500003E3E5CFEDFFFBD7BAEC0CF0E550E5CFB4 +:10096000E0FFE5CFD8FF100004D828EC0DF05AD8EE +:10097000FCD70F0EC11202D8F2EF0CF0EDEC0CF028 +:10098000E6527CEC0CF00001FC6F070EFC5D10E100 +:10099000E66A66EC1DF0E552DF6E000EDF80DFECEC +:1009A0000CF0E66AA2EC1FF0E552DF70DFEC0CF011 :1009B00093809382948C948ED08EF28EF28C770EEC -:1009C000C86E0FEC0CF06BEC0CF06BEC0CF06BECFD -:1009D0000CF055EC0CF0430E4EEC0CF03F0E8A166A -:1009E00093160101136B146B156B166B010E176FC9 -:1009F0001BEC12F0E30E951692929492A082FD0EDB -:100A0000E66E41EC1DF0E552000EE66EE66AE0ECA3 -:100A10001DF0E552E55283948396839880928292EA -:100A2000E66A4EEC17F0E55205EC1AF0E552E55295 -:100A3000E7CFD9FF1200D9CFE6FFE1CFD9FF170EDC -:100A4000E126160EDB6A0101175102E023EC0BF0E0 -:100A5000200E0001605D03E36D50020B02E019EF10 -:100A60000BF0160EDB5036E04EEC18F0000932E0C9 -:100A700001011551161102E1000E08D015C1E9FF60 -:100A800016C1EAFFEF50800B01E0010E000922E1E0 -:100A90000501406B01011851182B0501416F05013B -:100AA0000C0E426F0501436B400EE66E400EE66E83 -:100AB000050EE66E010EE66E010EE66EC6EC10F057 -:100AC000006E050EE15E0050F3CF15F1F4CF16F184 -:100AD000160EDB6A01011551161102E1000E08D055 -:100AE00015C1E9FF16C1EAFFEF50800B01E0010ECE -:100AF000000947E10001EB51EA6ACB0FE96E000EF5 -:100B0000EA22EF5000083DE20501406B0101185157 -:100B1000182B0501416F0501040E426F0001EB51D6 -:100B2000EA6ACB0FE96E000EEA22EFCF43F5400EE2 -:100B3000E66E400EE66E050EE66E010EE66E010EE6 -:100B4000E66EC6EC10F0006E050EE15E0050F3CFCD -:100B500015F1F4CF16F10001EB51EA6ACB0FE96E03 -:100B6000000EEA22EF6A0001EB51000803E20001E7 -:100B7000EB0707D00001EA51000803E200011F0E55 -:100B8000EB6F01011351141102E1000E08D013C1E3 -:100B9000E9FF14C1EAFFEF50800B01E0010E0009EC -:100BA00002E019EF0BF005010251070A02E17FEFA5 -:100BB0000AF0020A02E151EF0AF00E0A02E1F8EF30 -:100BC00009F0020A01E10FD20F0A01E164D1040A1F -:100BD0001AE0030A07E0010A02E0D8EF0AF0FF007A -:100BE00019EF0BF0E66A7DEC1CF0E552DF6E000EAB -:100BF000DB80DFCFE6FFE66A5DEC1CF0E552E552F4 -:100C0000FF0019EF0BF001011551161102E1000E62 -:100C100008D015C1E9FF16C1EAFFEF50800B01E0D3 -:100C2000010E000901E036D100C540F50501416B18 -:100C30000501030E426F0501436B050108510A0AC5 -:100C400001E17ED00E0A71E0070A64E0010A20E0AB -:100C5000030A06E0010A01E0F3D0FCC048F5F3D036 -:100C60000501486B9B0E006E3B0E016E026A00C0D0 -:100C7000E6FF01C0E6FF02C0E6FF480EE66E050E85 -:100C8000E66E41EC1CF0036E050EE15E0350DBD016 -:100C90000501486B8F0E006E3B0E016E026A00C0AC -:100CA000E6FF01C0E6FF02C0E6FF480EE66E050E55 -:100CB000E66E41EC1CF0036E050EE15E03508D0EF6 -:100CC000006E3B0E016E026A00C0E6FF01C0E6FF47 -:100CD00002C0E6FF480EE66E050EE66E41EC1CF023 -:100CE000036E050EE15E0350840E006E3B0E016E36 -:100CF000026A00C0E6FF01C0E6FF02C0E6FF480E40 -:100D0000E66E050EE66E41EC1CF0036E050EE15E2C -:100D1000035099D092CF48F593CF49F594CF4AF537 -:100D200095CF4BF596CF4CF58ED080CF48F581CF3F -:100D300049F582CF4AF583CF4BF584CF4CF583D06C -:100D4000800EE66E080EE66E6BEC1EF0E552E55284 -:100D5000C58000EC1FF0C00EE66EA4EC1DF0E5525D -:100D6000E66AA4EC1DF0E552C58200EC1FF0C10E4E -:100D7000E66EA4EC1DF0E552010EDB6A020EDB6AA2 -:100D8000010EDBCF00F0020EDBCF01F0040E005CA1 -:100D9000000E01584FE2010EF36E150EF3CFDBFF8C -:100DA000C586130EDB6A140EDB6A130EDBCF00F070 -:100DB000140EDBCF01F0E80E005C030E015817E2C1 -:100DC000C7A00FD0010EDBCFE9FF020EDBCFEAFF99 -:100DD000480EE926050EEA22C9CFEFFF150EDB6AA1 -:100DE00006D0130EDB2A140E01E3DB2ADED7150E24 -:100DF000DB5008E00501080E436FC58AC58800EC8A -:100E00001FF018D0010EDBCF00F0020EDBCF01F097 -:100E1000030E005C000E015803E2C59AC58802D09B -:100E2000C58AC58800EC1FF0010EDB2A020E01E323 -:100E3000DB2AA6D7C58400EC1FF00EEC1FF003D010 -:100E40000501020E436F400EE66E400EE66E050E83 -:100E5000E66E010EE66E010EE66EC6EC10F0006E58 -:100E6000050EE15E0050F3CF15F1F4CF16F1400E00 -:100E7000E66E000EE66E050EE66EE66A010EE66EA2 -:100E8000C6EC10F0006E050EE15E0050F3CF13F1DA -:100E9000F4CF14F1CED305010851050A54E0010A3C -:100EA00049E0070A37E0010A25E0030A13E0010AD6 -:100EB00001E080D005010951921205010A519312F7 -:100EC00005010B51941205010C51951205010D51AC -:100ED000961275D00501091D921605010A1D93167B -:100EE00005010B1D941605010C1D951605010D1D20 -:100EF000961665D00501091D891605010A1D8A1679 -:100F000005010B1D8B1605010C1D8C1605010D1D11 -:100F10008D1655D005010951891205010A518A1211 -:100F200005010B518B1205010C518C1205010D515D -:100F30008D1245D00501095101010F1B05010A5110 -:100F400001010F133CD0050109A107D00AC5E6FF36 -:100F5000E66A81EC19F0E552E552050109A308D0D3 -:100F60000BC5E6FF010EE66E81EC19F0E552E55285 -:100F7000050109A508D00CC5E6FF020EE66E81EC5E -:100F800019F0E552E552050109A708D00DC5E6FFA5 -:100F9000030EE66E81EC19F0E552E552050109A950 -:100FA00008D00EC5E6FF040EE66E81EC19F0E5529E -:100FB000E55205D0030EE66E86EC1EF0E552400EBB -:100FC000E66E000EE66E050EE66EE66A010EE66E51 -:100FD000C6EC10F0006E050EE15E0050F3CF13F189 -:100FE000F4CF14F126D301011551161102E1000EC0 -:100FF00008D015C1E9FF16C1EAFFEF50800B01E0F0 -:10100000010E000901E0F3D100C540F50501416B77 -:101010000501030E426F0501436B05010851110ADA -:1010200001E1B5D1010A01E1ACD1190A01E183D195 -:10103000010A01E1E3D00F0A01E1C5D0010A01E193 -:10104000AAD0030A01E18FD0010A6AE0070A42E050 -:10105000010A11E0030A01E0A0D105010A51E66E80 -:10106000E66A09C5E6FF29EC13F0E552E552E552C0 -:101070000501486F95D105010B051BE105010C51D8 -:10108000E66EE66A0AC5E6FF09C5E6FFE6EC13F080 -:10109000E552E552E552E5520F0EF3CFDBFF100E9D -:1010A000F4CFDBFF100EDBCF48F50F0EDBCF49F599 -:1010B00010D005010C51E66EE66A0AC5E6FF09C5C7 -:1010C000E6FF83EC13F0E552E552E552E5520501E7 -:1010D000486F66D105010B0517E1100E0CC5DBFF4B -:1010E0000F0E0DC5DBFF0F0EDBCFE6FF100EDBCFC3 -:1010F000E6FF0AC5E6FF09C5E6FF7CEC13F0E55202 -:10110000E552E552E5520BD00CC5E6FF0AC5E6FFF5 -:1011100009C5E6FF78EC13F0E552E552E55240D1FF -:10112000100E0AC5DBFF0F0E0BC5DBFF120E0CC540 -:10113000DBFF110E0DC5DBFF0EC5E6FF110EDBCF89 -:10114000E6FF120EDBCFE6FF0F0EDBCFE6FF100E41 -:10115000DBCFE6FF09C5E6FF67EC14F0006E060E74 -:10116000E15E00501DD105010A51E66EE66A09C52F -:10117000E6FF8AEC14F0E552E552E5520F0EF3CF8C -:10118000DBFF100EF4CFDBFF100EDBCF48F50F0EA8 -:10119000DBCF49F505D105010A51E66EE66A09C5BE -:1011A000E6FF8DEC14F0E552E552E5520F0EF3CF59 -:1011B000DBFF100EF4CFDBFF100EDBCF48F50F0E78 -:1011C000DBCF49F5EDD005010A51E66EE66A280E3F -:1011D000E66E09C5E6FFE6EC13F0E552E552E5528E -:1011E000E5520F0EF3CFDBFF100EF4CFDBFF100E36 -:1011F000DBCF48F50F0EDBCF49F5D2D005010A5100 -:10120000E66EE66A09C5E6FF8AEC14F0E552E5529F -:10121000E5520F0EF3CFDBFF100EF4CFDBFF100E05 -:10122000DBCF48F50F0EDBCF49F505010A51E66E1D -:10123000E66A09C5E6FF8DEC14F0E552E552E55289 -:101240000F0EF3CFDBFF100EF4CFDBFF100EDBCF62 -:101250004AF50F0EDBCF4BF505010A51E66EE66A43 -:10126000280EE66E09C5E6FFE6EC13F0E552E552FE -:10127000E552E5520F0EF3CFDBFF100EF4CFDBFF8C -:10128000100EDBCF4CF50F0EDBCF4DF505010A51EB -:10129000E66EE66A2A0EE66E09C5E6FF83EC13F0F9 -:1012A000E552E552E552E55205014E6F05010A513E -:1012B000E66EE66A2B0EE66E09C5E6FF83EC13F0D8 -:1012C000E552E552E552E55205014F6F05010A511D -:1012D000E66EE66A060EE66E09C5E6FFE6EC13F07A -:1012E000E552E552E552E5520F0EF3CFDBFF100E4B -:1012F000F4CFDBFF100EDBCF50F50F0EDBCF51F537 -:1013000005010A51E66EE66A080EE66E09C5E6FFBB -:10131000E6EC13F0E552E552E552E5520F0EF3CF3D -:10132000DBFF100EF4CFDBFF100EDBCF52F50F0EFC -:10133000DBCF53F535D005010B0517E1100E0CC5B9 -:10134000DBFF0F0E0DC5DBFF0F0EDBCFE6FF100E30 -:10135000DBCFE6FF0AC5E6FF09C5E6FF5AEC14F04D -:10136000E552E552E552E5520BD00CC5E6FF0AC541 -:10137000E6FF09C5E6FF56EC14F0E552E552E552EA -:101380000FD009C5E6FF62EC14F0E55209D009C59B -:10139000E6FF73EC13F0E55203D00501010E436F35 -:1013A000400EE66E400EE66E050EE66E010EE66E2F -:1013B000010EE66EC6EC10F0006E050EE15E005008 -:1013C000F3CF15F1F4CF16F1400EE66E000EE66E87 -:1013D000050EE66EE66A010EE66EC6EC10F0006ED3 -:1013E000050EE15E0050F3CF13F1F4CF14F121D1DB -:1013F00005010851030A11E0010A09E0030A01E0AE -:1014000037D009C5E6FFBEEC17F0E55236D009C566 -:10141000E6FFCCEC17F0E55230D00E0E0CC5DBFF2A -:101420000D0E0DC5DBFF0C0E0EC5DBFF0B0E0FC541 -:10143000DBFFD9500B0FE96EDACFEAFFEECFE6FF04 -:10144000EECFE6FFEECFE6FFEFCFE6FF0BC5E6FF00 -:101450000AC5E6FF09C5E6FFDAEC17F0006E070ED5 -:10146000E15E0050010EF36E160EF3CFDBFF05D0E8 -:10147000010EE66E86EC1EF0E552400EE66E000EA2 -:10148000E66E050EE66EE66A010EE66EC6EC10F03C -:10149000006E050EE15E0050F3CF13F1F4CF14F1AE -:1014A000C8D0800EE66E080EE66E6BEC1EF0E552BC -:1014B000E552C58000EC1FF0E66AA4EC1DF0E55291 -:1014C000080EE66E050EE66EECEC1BF0E552E552FA -:1014D000C5840EEC1FF0400EE66E000EE66E050EA3 -:1014E000E66EE66A010EE66EC6EC10F0006E050EC2 -:1014F000E15E0050F3CF13F1F4CF14F19AD04F0E08 -:10150000AB16AC9ACF0E9D16020EE66EE66A7C0E06 -:10151000E66EA7EC1BF0E552E552E552040EE66ECE -:10152000E66A17EC13F0E552E552100EE66E010E76 -:10153000E66E17EC13F0E552E552020EE66E030E6E -:10154000E66E010EE66E92EC12F0E552E552E552BF -:10155000040EE66EE66A17EC13F0E552E552100E43 -:10156000E66E010EE66E17EC13F0E552E552020E40 -:10157000E66E030EE66E010EE66E92EC12F0E55298 -:10158000E552E5521BEC12F0400EE66E000EE66EE0 -:10159000050EE66EE66A010EE66EC6EC10F0006E11 -:1015A000050EE15E0050F3CF13F1F4CF14F141D0FA -:1015B00001011551161102E1000E08D015C1E9FF15 -:1015C00016C1EAFFEF50800B01E0010E000931E186 -:1015D00000C540F50501416B0501030E426F050191 -:1015E000010E436F400EE66E400EE66E050EE66E8F -:1015F000010EE66E010EE66EC6EC10F0006E050EF2 -:10160000E15E0050F3CF15F1F4CF16F1400EE66E17 -:10161000000EE66E050EE66EE66A010EE66EC6EC9C -:1016200010F0006E050EE15E0050F3CF13F1F4CF21 -:1016300014F1170EE15C02E2E16AE552E16EE55257 -:10164000E7CFD9FF1200010119511A1104E1100E60 -:10165000196F270E1A6F1907000E1A5B6DA207D0BB -:1016600019511A112EE18A7C8ABC13D027D00001AF -:10167000605102E18A9C22D0600502E18A8C09D087 -:10168000020E605D02E18A8C19D0040E605D03E1F8 -:101690008A9C8A8E1200100E605D06E101011951CC -:1016A0001A110FE18A7C0AD0200E605D0AE1010167 -:1016B00019511A1106E18A7C8AAC02D08A9E120066 -:1016C0008A8E1200ACD8F1D8620E4EEF0CF0A7D87B -:1016D000ECD8420E4EEF0CF01200120099EF1AF007 -:1016E00012001E0EE66E010EE66E94EC10F0E5524E -:1016F000E552400EE66E000EE66E050EE66EE66AF8 -:10170000010EE66EC6EC10F0006E050EE15E0050B4 -:10171000F3CF13F1F4CF14F112006D840001080E21 -:10172000FD6F070EFE6FFD07000EFE5BFD51FE1103 -:10173000FAE16D941200D9CFE6FFE1CFD9FFFD0E9B -:10174000DBCF2AF0FE0EDBCF2BF0010E2A1801E1D1 -:101750002B5033E0E8682A1802E1E8682B182BE0E8 -:10176000030E2A1801E12B5024E0040E2A1801E18F -:101770002B501DE0020E2A1801E12B5016E0170E27 -:101780002A1801E12B500FE0160E2A1801E12B5008 -:1017900008E0150E2A1801E12B5001E010D0A1DF5E -:1017A0000FD09EDF0DD09ADF0BD096DF09D08ADFF5 -:1017B00007D08DDF05D091DF03D0000001D000D02D -:1017C000010E00D0E552E7CFD9FF120089D8E652CA -:1017D000D0B202D0010E15D0D0B802D0020E11D076 -:1017E000D0B002D0030E0DD0D0B602D0040E09D076 -:1017F000FCAE02D0050E05D0FCAC02D0060E01D026 -:10180000070EDF6ED088D086D084D082D080FC9E38 -:10181000FC9CDF50E552E552E7CFD9FF1200800E65 -:10182000E66E080EE66E6BEC1EF0E552E552C580E2 -:1018300000EC1FF06BEF0CF0DACFE4FFE2CFDAFF41 -:10184000E9CFE4FFEACFE4FFF6CFE4FFF7CFE4FF10 -:10185000F5CFE4FFF3CFE4FFF4CFE4FFFACFE4FFEA -:101860001200E5CFFAFFE5CFF4FFE5CFF3FFE5CFB8 -:10187000F5FFE5CFF7FFE5CFF6FFE5CFEAFFE5CFD0 -:10188000E9FFE5CFDAFF1200E6522AD8020EE12680 -:10189000F350DF6E010EF4CFDBFF1200E66EA4EC16 -:1018A0001DF0E552C5840EEF1FF01B0EE66EA4EC92 -:1018B0001DF0E5521200DF50F36E010EDB50F46EA6 -:1018C000020EE15C1200DFCFE6FFE66A5DEC1CF081 -:1018D000E552E5521200E66AA4EC1DF0E552120052 -:0A18E000D9CFE6FFE1CFD9FF1200D7 -:0618EA006DEC11F06A6ACA -:1018F000686AA0EC11F06D8C6E6A50EC11F06D9C72 -:10190000DF6A81EC11F010E2DF50040DF3CFE9FF44 -:10191000F4CFEAFF000EE926040EEA22EE6AEE6A30 -:10192000EE6AEE6ADF2AEDD7160E706E68A604D056 -:10193000030E16EC11F0FAD70001736B786B796B1C -:101940007A6B6D98080E6B6F040E6C6F616B606B39 -:10195000E5522BEF11F06DEC11F0000160510BE13D -:101960006D6A696AA0EC11F06DB602D06D86FCD785 -:101970000001010E606F600508E16DBA06D0686A6B -:10198000696A69806988020E606F6850040B07E01D -:101990006950040B04E0020E16EC11F089D86DB208 -:1019A00047D06850010B14E06950010B11E09DDF36 -:1019B0000001040E606F0401200E026F040E036F1D -:1019C000080E016F006B8C0E0013E66ADFEC11F05D -:1019D0006850100B07E06950100B04E060D8040E4B -:1019E00016EC11F06850400B0BE06950400B08E01A -:1019F000A7EC11F0020E1EEC11F0060E16EC11F021 -:101A00006850200B04E06950200B01E035D8685085 -:101A1000020B0AE06950020B07E0A7EC11F0E66840 -:101A2000E668FFEC11F06A6A040E0001605D02E2F4 -:101A3000A19A1FD069A61CD0DF6A040EDF5C18E2F1 -:101A400068A616D06CCF80F0030E16EC11F0780E5D -:101A50000001801502E138D809D0000EE66EE66A72 -:101A6000800EE66E000EE66E010EE8DBDF2AE5D79B -:101A7000A19AE5522BEF11F070A00ED039EC11F0C5 -:101A8000EF50800808E1D5DBEF50840804E139EC21 -:101A900011F08C0EEF6E7090050E16EF11F0698448 -:101AA000040EC4DB6D8259EC11F0040E1EEF11F030 -:101AB00059EC11F0030EC2DB6D92699468A403D057 -:101AC000020EB4DBFBD712006DEC11F0FD0E00012D -:101AD00080153DE17E0E8015E8407F0B040DF3CFAD -:101AE00063F0F4CF64F0000E6327040E642363C038 -:101AF00065F064C066F06575BCDBEF503C0BE842F6 -:101B0000E8420D0822E1B5DBD6EC11F0EECF00F093 -:101B1000EFCF01F0280E001816E1040E011813E1B2 -:101B200010EC12F0DF6AEDDB0EE2DF5089EC11F011 -:101B3000DF50EA6A200FE96E040EEA22E552E75010 -:101B4000EF6EDF2AF0D70AD807D01AD805D0FD0EDD -:101B50008015040801E122D8E5527DD36ADBEF50FD -:101B6000800B02E066DBEF6A00016F6B706B746BD9 -:101B7000756B736B64D89DDB170E60DB54EF0FF051 -:101B8000020E0001705D02E1E1EF0FF034D80001B8 -:101B9000815102E1DBEF11F0816B12009EDB49DB2A -:101BA000EF50400B01E0010EDF6E00016B75080E77 -:101BB000605D09E122C46EFF6E50000802E2100E63 -:101BC00001D0040E606F700513E114EC12F0A6D979 -:101BD000020E00016F5D03E12CDB840E07D0DF50A5 -:101BE00003E127DBC80E02D024DB880EEF6E01D0A4 -:101BF00002D8E55230D32BDB0001706B1ADBEF6AA1 -:101C0000040E6B19006E6CC001F0DE6E6CC0DDFF5F -:101C100019DBEF6A78AF0CD07B517C1107E005D05F -:101C20007CC0FAFF00017B51F96EFADF0001789F5A -:101C3000020EE15C02E2E16AE552E16E0CD30401BE -:101C40002051600BE842E842E842E842E8420009DD -:101C500001E0120021510C0A45E00B0A3FE00C0A9A -:101C600031E0010A22E00B0A1EE0020A1CE0030A2E -:101C700018E0080A10E0010A0CE00F0A08E0030A65 -:101C800001E012000001738F080E606F1200D4EFA4 -:101C90000EF03DEF10F00001610E716F000E726FDB -:101CA0000CD015EF0FF073EF0EF024510001716F9F -:101CB000726B620E7127000E72237381010E746FB6 -:101CC000738F12000001738F04012451EA6A620FBE -:101CD000E96E000EEA2222C4EFFF1200EADA160EC5 -:101CE0001EEF11F012007EDB040EE1260401220536 -:101CF00010E120511F0B00090CE10001738F030E4E -:101D00000401215D04E10001010E7F6F02D000019A -:101D10007F6B0401225141E120511F0B02083DE17C -:101D200024510F0B000939E00001738F040124BF17 -:101D300005D0A4DA670EE926000E04D09FDA6B0EF8 -:101D4000E926000ED2DA030E215D03E17BDA840E70 -:101D500023D024510F0B016A700F006E0F0E012269 -:101D6000020E00C0DBFF030E01C0DBFF020EDBCF63 -:101D7000E9FF030EDBCFEAFFEE90ED5224AF06D071 -:101D800061DAEF6ADF745EDA400E06D05BDA880E45 -:101D9000EF6EDF7457DAC80EEF6E040EE15C02E2FC -:101DA000E16AE552E16E57D2800E0401205D3CE10C -:101DB0000001C00E736F04012351030A1EE0010AE3 -:101DC00009E0030A2FE10001000E716F360E726FF9 -:101DD000120E22D0C3DAA80EF626360EA2DA020EB2 -:101DE0000001F76A7125F66E7251F7220900F5CFEE -:101DF00074F00A00F5CF75F01200030E225D0FE2B9 -:101E0000ADDAAA0EF626360E8CDA71C0F6FF72C075 -:101E1000F7FF0800F5500001746F756B12000001A8 -:101E2000736B12000001736B120011DA0401286B4E -:101E3000296B20511F0B020A11E0030A0CE0010A72 -:101E400022E10001738F0401288100017F051BE15D -:101E50000401288318D00001738F15D00001738FFF -:101E6000040124BF05D00ADA670EE926000E04D06B -:101E700005DA6B0EE926000E38DAE4D9EF50040BD0 -:101E800002E0010E286F000173AF07D0280E716FBA -:101E9000040E726F7381020E746F020EE15C02E237 -:101EA000E16AE552E16ED7D16D98000173BF08D0A9 -:101EB00078AF02D061DA2AD07EDABBD9840E27D07F -:101EC00078BF2BD0040120AF24D00001745104014D -:101ED000265D000175510401275904E226C474F0FF -:101EE00027C475F01BD80001010E706FA1DA800EB7 -:101EF000EF6E816BBED9EE52080EEF6E91DAB9D952 -:101F0000840EEF6E010E816F8FDA93D9C80EEF6EDB -:101F10001200000131DAC80EEF6E120098D90001EC -:101F2000080E745D000E75590DE274C0DEFF75C0B9 -:101F3000DDFF6F5102E1010E03D06F0506E1020ED5 -:101F40006F6F03D0080EDE6EDD6A73D9EF9271D920 -:101F5000EF906FD9010EDB50EF126BD9EE52DFCF4D -:101F6000EFFF000EDB50745F010EDB50755B280E37 -:101F70007D6F040E7E6F73B10FD0F7D91BE071C077 -:101F8000F6FF72C0F7FF712B000E72230800F550A8 -:101F900096D9F3E2DB06F1D7E8D90CE071C0E9FF8E -:101FA00072C0EAFF712B000E7223EF5088D9F4E261 -:101FB000DB06F2D7020EE15C02E2E16AE552E16E75 -:101FC0004AD145D956D9EE52EFCFDFFFDFCF00F02F -:101FD00000500001795D000E7A5903E279C0DFFFFD -:101FE00009D0DF50006E016AE850795D796F0150C9 -:101FF0007A597A6F010EDB6ADF50F36E010EDBCF88 -:10200000F4FFF350F45C10E2010EDB5082D976C08D -:10201000E9FF77C0EAFF762B000E7723E552E75001 -:10202000EF6E010EDB2AE8D7000ED8807955000E3E -:102030007A550DE2F4D854D91CD9EF50400B03E186 -:10204000EAD9C80E02D0E7D9880EEF6E0FD0F0D9CA -:10205000840EEF6E7B517C1107E005D07CC0FAFF47 -:1020600000017B51F96EFADF0001789F020EE15CFE -:1020700002E2E16AE552E16EEED00001738F10D901 -:10208000010EE66EE66AE66A620EE66E000EAFD9F3 -:1020900022C461F00401225104E10001100E606FBE -:1020A00012000001200E606F04D9150E1EEF11F012 -:1020B000CED8000EDE6E040EDD6EE8D8040DF350AF -:1020C000006E016A020E0F0B05E0D890013200325B -:1020D000E806FBE1D89000360136D890003601368C -:1020E000D9CFE9FFDACFEAFF0050EE260150ED220A -:1020F000A9D8EF9EFD0EDB5002E16AD901D06DD95F -:10210000EA22DECFEEFFDDCFEDFF9CD8EF9C9AD820 -:10211000040EE926000EEA22EF8C020EE15C02E2D8 -:10212000E16AE552E16E97D092D8FE0EDB50016A6B -:10213000700F006E0F0EDFD885D8FD0EDBCFEFFFDE -:10214000DBA402D0E66AF5D8FD0EDBA203D0010EB7 -:10215000E66EEFD8020EE15C02E2E16AE552E16E62 -:102160007AD075D8FE0EDB5005E125D962D8840EF1 -:10217000EF6E05D08BD80CD989D8010F09D9020E82 -:10218000E15C02E2E16AE552E16E65D060D8FD0EE5 -:10219000DB5002E022D901D01BD9A7D853D806D9E9 -:1021A000FB0EDBCFEEFFFC0EDBCFEDFF4BD8EE528C -:1021B000FA0EDBCFEFFF400E45D8E850EF16880E41 -:1021C00041D8E850EF12FD0EDB5002E006D901D0F5 -:1021D000FFD8EA22EF74DECF00F0DDCF01F000C0BF -:1021E000F3FF01C0F4FF020EE15C02E2E16AE55296 -:1021F000E16E31D0F7D8010EF36EFC0EDB5004E037 -:10220000D890F336E806FCE1F31C006EFD0EDBCF40 -:10221000E9FFFE0EDBCFEAFF0050EF161CD0FBD823 -:10222000EE52080EEF6EF7D8D6EF11F0E66EDFEF44 -:1022300011F06BC0E9FF6CC0EAFF1200E66EE66ABF -:10224000FFEF11F0DECFE9FFDDCFEAFF1200CAD8C1 -:10225000020EE1261200E552E7CFD9FF1200D6D8D0 -:102260000BEF12F0FE0EEA6ADB34FE0BEA36E96E83 -:10227000120063C0E9FF64C0EAFF120024510F0B93 -:10228000E96EEA6AD890E936EA361200FD0EDB50B4 -:10229000E824026EFE0EDB50040DF35002241200FF -:1022A000000EE66EE66AE66A710EE66E0F0EF7EF56 -:1022B00011F0000EE66EE66AE66EE66A1200E66E61 -:1022C0007DC0E9FF7EC0EAFF7D2B000E7E23E55234 -:1022D000E750EF6EDF06010E120084D8E6521200BE -:1022E000280EEE6E040EED6E1200EA22EECFDEFF37 -:1022F000EDCFDDFF1200012200C0DEFF01C0DDFFD7 -:102300001200DF50006E016A080E005C000E0158DA -:102310001200EA6A280FE96E040EEA22EF50E66E18 -:102320001200F7220900F5CF71F00A00F5CF72F024 -:102330001200FE0EDBCFE6FFBBDEE552E5521200D7 -:10234000160E6F6E9F0E6B6E7B0E696E1200010E85 -:10235000E66EE66A000EE66EE66A12002251F66E3E -:10236000F76AD890F636F7361200D9CFE9FFDACF00 -:10237000EAFFEE50ED101200020E706F5ADFEE52BF -:10238000EF6A57DFC80EEF6E4ADFAADF0BEF12F0DD -:10239000040DF3CF00F0F4CF01F0000E0026040E80 -:1023A000AADF840E4FDFE850EF121200020EE9267A -:1023B000000EEA2212003CD88C0EEF6E1200680E5E -:1023C000E66E0F0EE66E16DFE552E552E55212009C -:1023D00049DF670EE926000E120044DF6B0EE92686 -:1023E000000E1200D9CFE6FFE1CFD9FF1200E66E52 -:1023F00027EC1CF0006E050EE15E005012009BEC15 -:102400000BF0006E060EE15E00501200200EEE6E24 -:10241000040EED6E120065C0E9FF66C0EAFF12000F -:1024200028DFC4DF06EF12F004DFC0DF70EF11F029 -:06243000F6DE2FEF11F0B3 -:0A243600959A838A190EE66EE66A95 -:102440007C0EE66EA7EC1BF0E552E552E552120059 -:10245000B0DA030EE126ACA2FED785EC1DF0DF6EEC -:102460000001A85104E1865102E1010EA96FA905FE -:1024700052E1A85189DADFCFEFFF020EA85D08E232 -:10248000FF0EDF5C05E0050E8CDA0001A96BA86B7E -:10249000030EA85D04E1030EDF240001CA6F030EE2 -:1024A0000001A85D37E30001CA510001A85D32E1D7 -:1024B0008B5102E0060E75DA010EDB6A020EDB6E4E -:1024C0000001CA51F36E020EDBCFF4FFF350F45C4F -:1024D0000EE2020EDB5058DA010EDBCFE7FFEF50C1 -:1024E000E726010EE7CFDBFF020EDB2AE9D7CA5150 -:1024F0004BDAEFCF00F0010EDB1C005C05E0070EAD -:1025000050DA0001866B03D00001010E866FA96BC3 -:10251000A86B01D0A82B030EE15C02E2E16AE55250 -:10252000E16E16D246DA220EE126010EDB68020EBB -:10253000DB68FE0EDB50E76E030EE7CFDBFFFC0E21 -:10254000DB50020FE76E040EE7CFDBFFFD0EDB5022 -:10255000E76E050EE7CFDBFFDF6AFC0EDB50DF5CCA -:1025600013E2DF50EA6AAA0FE96E000EEA22EF508A -:10257000E66ED950010F006E050EDF24F7D9E55243 -:10258000E750EF6EDF2AE9D7210EDB6A020EDF6E1D -:10259000FC0EDB50050FDF5C0FE2D950010F006E1F -:1025A000DF50E4D9210EDBCFE7FFEF50E726210E05 -:1025B000E7CFDBFFDF2AECD7210EDB1CE66ED9501C -:1025C000010F006EFC0EDB50050FD0D9E552E7502D -:1025D000EF6E839ADF6AFC0EDB50060FDF5C11E2C0 -:1025E000ACA2FED7D950010F006EDACF01F0DF5058 -:1025F0000F01BCD9EF50E66ED0EC1EF0E552DF2A99 -:10260000EAD7ACA2FED7838A0001866B220EE15C7A -:1026100002E2E16AE552E16E9BD1000186511200AF -:102620000001A751120000018651FDE01200C1D93E -:10263000FE0EDB50EA6AAA0FE96E000EEA22FD0EDA -:10264000DBCFEFFF85D10001865102E08B511200F4 -:10265000000CD9CFE6FFE1CFD9FF020EE126E66AF2 -:10266000010EE66EFE0EDBCFE6FF5CDFE552E552C3 -:10267000E552DE6ADD6ADECF00F0DDCF01F0FC0E50 -:10268000DBCF02F0FD0EDBCF03F00250005C035005 -:10269000015818E20001865104E00001A76B010E09 -:1026A00016D0000000000000000000000000000044 -:1026B00000000000000000000000DF2A010E01E31E -:1026C000DB2AD9D70001010EA76F000E00D0006EE3 -:1026D000020EE15C02E2E16AE552E16E0050E55271 -:1026E000E7CFD9FF120065D9E66A060E19D930D1B5 -:1026F00033D9030E15D92CD11CD970D902E2E16A65 -:10270000E552E16E25D1D9CFE6FFE1CFD9FF020E28 -:10271000E126FD0EDBCFE6FFE66A89DFE552E552F2 -:10272000010EE66E010EE66E82DFE552E552020E04 -:10273000E66E020EE66EFE0EDBCFE6FFF3DEE5523E -:10274000E552E552DE6ADD6ADECF00F0DDCF01F052 -:102750000A0E2A6E2B6AFB0EDBCF2FF0FC0EDBCFAE -:1027600030F07BEC16F028C002F029C003F00250D4 -:10277000005C0350015819E20001865105E0000198 -:10278000A76B00018C5116D0000000000000000073 -:102790000000000000000000000000000000000039 -:1027A000DF2A010E01E3DB2ACFD70001010EA76F5C -:1027B000000E00D0006E020EE15C02E2E16AE5521A -:1027C000E16E0050E552E7CFD9FF1200D9CFE6FF06 -:1027D000E1CFD9FF040EE126FD0EDBCFE6FFE66A6E -:1027E00026DFE552E552020EE66E010EE66E1FDFB1 -:1027F000E552E552020EE66E020EE66EFE0EDBCFED -:10280000E6FF90DEE552E552E552DE6ADD6ADECF94 -:1028100000F0DDCF01F00A0E2A6E2B6AFB0EDBCF33 -:102820002FF0FC0EDBCF30F07BEC16F028C002F06E -:1028300029C003F00250005C0350015827E2000158 -:10284000865113E00001A76B030E8DC0DBFF020E63 -:102850008CC0DBFF020EDBCF00F0030EDBCF01F0FC -:1028600000C0F3FF01C0F4FF17D00000000000001B -:102870000000000000000000000000000000000058 -:102880000000DF2A010E01E3DB2AC1D70001010E9F -:10289000A76FF36AF46A00D0040EE15C02E2E16A19 -:1028A000E552E16EE552E7CFD9FF120055D8040E8C -:1028B00037D84ED03ED8040E91D802E2E16AE552F4 -:1028C000E16E46D076D8E66A050E2AD841D071D896 -:1028D000020EE1261E0EE66EE66A8CD8FC0E5AD871 -:1028E00081D8FA0E57D8030E61D8010EDBCFE6FF70 -:1028F000040E5CD8F90EDB5004E1050EE66E030E03 -:1029000003D0050EE66E040E69D802E2E16AE552D4 -:10291000E16E1ED031D8240E51D02ED8260E4ED0C6 -:10292000E66EFE0EDBCFE6FFFDDDE552E552E55239 -:1029300012003FD8020EE126FB0EDBCFDEFFDBCF1D -:10294000DDFF46D8DFCFE6FF4DD8030EE66E12005E -:10295000E552E7CFD9FF12002CD83AD8FC0EDBCFD6 -:10296000E6FF010E23D8020EE66E12000024E96E87 -:10297000000EDA20EA6E12001CD8FC0EDBCFE6FF58 -:10298000FD0EDBCFE6FF1200EA6A870FE96E000E4C -:10299000EA221200DBCFDEFFDBCFDDFFDFCFE6FF79 -:1029A0001200E66E86EC1EF0E5521200E66EFAEFBB -:1029B00014F0D9CFE6FFE1CFD9FF1200E66EFE0E8C -:1029C000DBCFE6FF03DFE552E552E552E552C0D723 -:1029D000FD0EDBCFE6FFE66AFAEF14F0A1DF020E90 -:1029E000E15C1200010EE2DF010EDBCFE6FF020E1A -:0C29F000D6EF14F01CDEE552E552120098 -:0429FC00239E05D041 -:102A0000239E2BAE02D02B6C238E2BC025F0246A84 -:102A1000356A346A860E266E276AE4EF16F0239E26 -:102A200008D0239E2BAE05D02A6C2B1EE86A2B22E1 -:102A3000238E2BC025F02AC024F0356A346A8E0E0E -:102A4000266E276AE4EF16F0317E236A20EC17F039 -:102A500038EC17F023B6C8EF16F023A20AD023AA49 -:102A600003D023BEC8EF16F023A4D4EF16F0D1EFA5 -:102A700016F023AA05D023ACD4EF16F0D1EF16F050 -:102A800023A00AD023A808D023BE04D023A402D0B8 -:102A9000DDEF16F0E1EF16F0346A276A31502C5C56 -:102AA000336E10E329C035F02AC024F02BC025F086 -:102AB0002CC032F02EC029F02FC02AF030C02BF0ED -:102AC000233A09D02EC035F02FC024F030C025F0B5 -:102AD00031C032F0336C239E23BC238E32C026F0EB -:102AE00023B010EF17F01A0E336010EF17F0266ABC -:102AF0002C6A23A408D0296C2A1E2B1E2C1EE86ADF -:102B00002A222B222C2223AC08D0356C241E251E11 -:102B1000261EE86A242225222622286A335207E04C -:102B20002C342B322A3229322832332EF9D729502D -:102B300035262A5024222B5025222C50262228C00C -:102B400034F0239E26AE0BD0346C351E241E251E79 -:102B5000261EE86A3522242225222622238E26A03C -:102B600006D0D8802532243235323432322A32C06F -:102B700026F0E4EF16F0236A20EC17F038EC17F09B -:102B800023B6C8EF16F023A205D023BAC8EF16F07B -:102B9000CFEF16F023BADBEF16F023A005D023B851 -:102BA000C8EF16F0DBEF16F023B8CFEF16F0276A68 -:102BB0007F0E2C24266EE86A27223150265EE86AB2 -:102BC000275A1A0E326E2C6A346A356A246A256ACC -:102BD0002E50295E2F502A5A30502B5A000E2C5A54 -:102BE00009E72E5029262F502A2230502B22000E82 -:102BF0002C2201D0348AD89029362A362B362C360E -:102C0000D8903436353624362536322EE1D72B503F -:102C10002A102910D8A4348AE4EF16F0236A20EC95 -:102C200017F038EC17F023B6C8EF16F023A205D042 -:102C300023B8C8EF16F0CFEF16F023AA05D023B0C3 -:102C4000C8EF16F0CFEF16F023B002D023A802D0C1 -:102C5000DBEF16F0276A31502C24266EE86A272213 -:102C60007E0E265EE86A275A346A356A246A256A27 -:102C700030502B02F4CF25F0F3CF24F02F502B024D -:102C8000F3503526F4502422000E252230502A021B -:102C9000F3503526F4502422000E25222E502B020C -:102CA000F3503426F4503522000E242225222F50D2 -:102CB0002A02F3503426F4503522000E2422252215 -:102CC00030502902F3503426F4503522000E2422CD -:102CD00025222E502A02F4503426000E35222422BA -:102CE00025222F502902F4503426000E35222422AA -:102CF0002522E4EF16F02AC034F02A502F02F4CF38 -:102D000029F0F3CF28F02B503002F4CF2BF0F3CF83 -:102D10002AF02F02F3502926F4502A22E86A2B22A7 -:102D200034503002F3502926F4502A22E86A2B222C -:102D3000000C236A20EC17F023B6A3EF16F023A2B1 -:102D40000ED023B405D07F0E2B6EFF0E2A6E1FD03F -:102D5000800E2B6E2A6A1BD02B6A2A6A18D023B0E9 -:102D6000FBD78F0E2C60EDD77E0E2C64F5D78E0E20 -:102D70002C5C05E0D8902B322A322C2AF8D723A4D9 -:102D800006D02A6C2B1EE86A2B222BAEE5D7120048 -:102D90007F0E2C6EFF0E2B6E2A6E296E12007F0E98 -:102DA00023BEFF0E2C6E02D07F0E2C6E800E2B6E7B -:102DB0002A6A296AF3D723AE04D0800E2C6E2B6AC0 -:102DC000F7D72C6A2B6AF4D725502410351034100D -:102DD000F8E027BEF0D725BE0CD026502710EBE038 -:102DE000D89034363536243625362606D8A0270620 -:102DF000F2D72750D4E12628D2E034AE11D07F0E8E -:102E0000341402E135A00CD0352AE86A24222522A8 -:102E100007E3D880253224323532262A2628BFE01F -:102E20002650C9E035C029F024C02AF025342B6E85 -:102E300026302C6E2B322C9E23BE2C8ECEEF16F01D -:102E40002B362C3602E32384237E06E123802C6A72 -:102E50002B6A2A6A296A12002C2803E0D8802B32B8 -:102E60001200D8902B3202E1238212002386120036 -:102E70003036313602E3238C237E06E12388316A23 -:102E8000306A2F6A2E6A1200312803E0D88030326F -:0C2E90001200D8903032EAE1238A1200D0 -:042E9C00D9CFE6FFA5 -:102EA000E1CFD9FF9290C30E93169494060EE66E6E -:102EB00050EC1EF0E552FE0EDB50000B0CE0AF0EA6 -:102EC000E66E34EC1EF0E552000EE66EE66A18EC93 -:102ED0001EF0E55204D0820EE66E34EC1EF0E55290 -:102EE000F194FE0EDBA00CD0C70EE66E64EC1DF074 -:102EF000E552000EE66EE66AFCEC1DF0E55204D0E9 -:102F0000F50EE66E64EC1DF0E5528194819A809096 -:102F100081988294819659D146D9D880000E0001BB -:102F2000F455000EF555000EF655000EF7550CE25F -:102F3000F407000EF55BF65BF75BF451F511F61143 -:102F4000F71102E1BD6A8294120036D9D880000ED2 -:102F50000001F855000EF955000EFA55000EFB550C -:102F60000CE2F807000EF95BFA5BFB5BF851F91114 -:102F7000FA11FB1102E1BA6A819612000DD902E141 -:102F8000818409D0FE0EDB0405E0FE0EDB50020852 -:102F900002E18184818A19D1FFD802E1819409D0AC -:102FA000FE0EDB0405E0FE0EDB50020802E1819418 -:102FB000819A0BD1F1D804E0FE0EDB50020833E118 -:102FC000F80EDBCFF4F0F90EDBCFF5F0FA0EDBCF25 -:102FD000F6F0FB0EDBCFF7F0280E2D6E2E6A2F6A6F -:102FE000306AF4C028F0F5C029F0F6C02AF0F7C026 -:102FF0002BF01DEC1DF028C0F4F029C0F5F02AC01C -:10300000F6F02BC0F7F0CFD8FD0EDB50E8B0808093 -:10301000E8A080904A0EE66EA1EC1EF054D8C2ECF7 -:103020001CF0E552E552FE0EDB0404E0FE0EDB5020 -:10303000020833E1F80EDBCFF8F0F90EDBCFF9F040 -:10304000FA0EDBCFFAF0FB0EDBCFFBF0280E2D6E75 -:103050002E6A2F6A306AF8C028F0F9C029F0FAC049 -:103060002AF0FBC02BF01DEC1DF028C0F8F029C0A1 -:10307000F9F02AC0FAF02BC0FBF09ED8FD0EDB5011 -:10308000E8B08188E8A081984A0EE66EF1EC1CF069 -:103090001AD893EC1CF0E552E55297D08050010B02 -:1030A00003E08350400B06E08050010B0BE183509E -:1030B000800B08E1BD6A82940001F46BF56BF66B3E -:1030C000F76B010C000CE552FC0EDBCF16F016C0BE -:1030D0002BF0FEEC14F029C012F02AC013F02BC024 -:1030E00014F02CC015F02E6A2F6A7F0E306E430E3E -:1030F000316EBBEC15F029C00EF02AC00FF02BC0CA -:1031000010F02CC011F02E6A2F6A200E306E3F0E88 -:10311000316E0EEC16F029C00AF02AC00BF02BC05D -:103120000CF02CC00DF02E6A1B0E2F6E370E306E79 -:103130004C0E316E0EEC16F029C006F02AC007F0D6 -:103140002BC008F02CC009F02E6A400E2F6E1C0E0A -:10315000306E460E316EBBEC15F099EC16F00FECAC -:1031600015F029C002F02AC003F02BC004F02CC0D7 -:1031700005F02E6A2F6A800E306E410E316EBBEC68 -:1031800015F099EC16F02AC000F02BC001F02AC00F -:10319000E6FF2BC0E6FF1200D9CFE6FFE1CFD9FF53 -:1031A000FE0EDB501200A00EE66E150EE66E18EC59 -:1031B0001EF0E552E5521200A00EE66E150EE66E08 -:1031C000FCEC1DF0E552E5521200E552E7CFD9FFC5 -:0231D0001200EB -:0E31D20083948396839880928292050E010169 -:1031E000105D0EE2010E10C1E7FFE75204E0E84671 -:1031F000FE0BE706FCE101010F1502E1102BEED7F3 -:10320000050E105D60E21051040A10E0070A0CE0A0 -:10321000010A08E0030A04E0010A09E1838407D0F7 -:10322000838605D0838803D0808201D082821051AA -:10323000D9D8EFCF02F0036A02BE03680A0E2A6EE5 -:103240002B6A02C02FF003C030F07BEC16F028C0D0 -:1032500000F029C001F0DC0E0026050E012200500E -:103260000101112701501223A9D8800E126EBB0E46 -:10327000136E440E146E196A1A6A200E1B6E410EEC -:103280001C6E1051AFD8EFCF21F021C02BF000EC15 -:1032900015F029C01DF02AC01EF02BC01FF02CC055 -:1032A00020F0AAD819C029F01AC02AF01BC02BF0B0 -:1032B0001CC02CF00EEC16F06FD825EC15F040D8A1 -:1032C0000101102B1200106B200E115D4E0E1259D1 -:1032D00015E274D8400E126E9C0E136E460E146EDC -:1032E00011C12AF012C12BF00FEC15F055D824ECC7 -:1032F00015F026D80101116B126B1200116B126BC5 -:103300006DD7D9CFE6FFE1CFD9FFFE0EDB506AD8EB -:10331000FD0EDBCFEFFF6CD05CD804E0D890F33625 -:10332000E806FCE1F35001010F1362D052D804E02B -:10333000D890F336E806FCE1F35001010F1B58D09A -:1033400029C00DF02AC00EF02BC00FF02CC010F0D9 -:1033500053D809C029F00AC02AF00BC02BF00CC0CA -:103360002CF00EEC16F099EC16F02AC006F02BC0EB -:1033700007F0086A2A50035C006E2B500458016E57 -:1033800008500558026E00C0E6FF01C0E6FFE0EC01 -:103390001DF0E552E552120029C015F02AC016F0C2 -:1033A0002BC017F02CC018F027D811C029F012C07C -:1033B0002AF013C02BF014C02CF01200036804682C -:1033C000056A096A0A6AC00E0B6E3F0E0C6E116A1E -:1033D0001200D9CFE6FFE1CFD9FF010EF36EFE0E4A -:1033E000DB501200EA6A0A0FE96E010EEA221200AF -:1033F000E552E7CFD9FF120029C02EF02AC02FF0E6 -:0A3400002BC030F02CC031F0120098 -:06340A00050EE66E060E41 -:103410008CD8070E8AD8080E88D8090E7ED80A0ED6 -:1034200080D80B0E7AD80C0E7CD80D0E76D80E0EE6 -:1034300078D80F0E72D8100E74D8110E71EF1AF0E2 -:10344000D9CFE6FFE1CFD9FF51D8FD0EDBCFE6FFA4 -:10345000A4EC1DF0E552C5840EEC1FF0E552E7CF59 -:10346000D9FF1200D9CFE6FFE1CFD9FF030EE12645 -:10347000020EDB6A3BD8C58200EC1FF0E90EE66E57 -:10348000A4EC1DF0E552C586DE6ADD6ADECF00F0F1 -:10349000DDCF01F0E80E005C030E01580BE2C7A07F -:1034A00004D0020EC9CFDBFF05D0DF2A010EEEE308 -:1034B000DB2AECD7C58AC58800EC1FF0C58400EC78 -:1034C0001FF00EEC1FF0020EDB50006E030EE15CED -:1034D00002E2E16AE552E16E0050E552E7CFD9FF22 -:1034E0001200E66EADDFE552E5521200800EE66E88 -:1034F000080EE66E6BEC1EF0E552E552C58000EC5E -:103500001FF0E80EE66EA4EC1DF0E552FE0EDBCFD8 -:10351000E6FFA4EC1DF0E5521200E3DFC40EE66EF8 -:103520001200DFDF090EE66E1200DBDF050EE66E2D -:02353000120087 -:0E353200040120511F0B010801E0120024517A -:1035400001E01200060E215D21E12351230A1BE058 -:10355000010A0CE0030A1AE10001610517E100010C -:10356000240E716F360E726F090E09D000016105CD -:103570000DE100018B0E716F360E726F1D0E746FB0 -:10358000756BC00E02D00001800E736F04012051D4 -:10359000600BE842E842E842E842E842010801E004 -:1035A000120021510B0A26E0080A19E0090A11E06D -:1035B000080A05E00B0A23E0080A21E012000001D6 -:1035C0001B0E716F010E726F010E746F756BC10E61 -:1035D0000FD00001800E736F23C41BF11200000195 -:1035E0001C0E716F010E726F010E746F756B810E80 -:1035F000736F12000001800E736F22C41CF1120061 -:103600001201000200000008D804040002000102B8 -:10361000000109022900010100C032090400000272 -:1036200003000000092111010001221D000705818E -:103630000340000107050103400001040309042CB5 -:10364000034D006F00620069006C006500200052AD -:10365000006F0062006F007400200050006C006179 -:1036600000740066006F0072006D00200352006F4E -:103670000062006F007400200049006E0074006555 -:1036800000720066006100630065000600FF09012A -:10369000A10119012940150026FF007508954081F8 -:1036A00000190129409100C012363B363F366B3677 -:1036B0002A0EF66E080EF76E000EF86E0101090074 -:1036C000F550056F0900F550066F03E1056701D05D -:1036D0003DD00900F550006F0900F550016F090059 -:1036E000F550026F09000900F550E96E0900F55028 -:1036F000EA6E090009000900F550036F0900F55052 -:10370000046F09000900F6CF07F1F7CF08F1F8CFF1 -:1037100009F100C1F6FF01C1F7FF02C1F8FF010185 -:10372000035302E1045307E00900F550EE6E03076E -:10373000F8E20407F9D707C1F6FF08C1F7FF09C18E -:0E374000F8FF01010507000E065BBFD712005F -:02374E00D9CFD1 -:10375000E6FFDACFE6FFE1CFD9FFE2CFDAFFAC6ACE -:10376000AB6AFD0EDBB0AC88DBA202D0AC8CAB8CBC -:10377000DBB4AC8EDBA602D0AB8801D0AB8ADBB861 -:10378000AC849E98DBBAAC86DBAC02D09D8A01D0BB -:103790009D9A9E9ADBAE02D09D8801D09D98FB0E2B -:1037A000DB50AF6EFB0EFC0EDBCF01F001C000F072 -:1037B000016A0050B06EAC8AAB8E949C948EAC5073 -:1037C000100B04E0AC50800B01E1948CE552E5CF86 -:0837D000DAFFE7CFD9FF120078 -:0837D800D9CFE6FFDACFE6FFCE -:1037E000E1CFD9FFE2CFDAFFE65229D820E0C6A622 -:1037F0000AD025D8E66EA4EC1DF0E552DF6EDF504E -:1038000010E0DF5015D09E961AD8C96EC6889EA6C5 -:10381000FED7C750040B05E1C750010B02E1FE0EB5 -:1038200007D0FC0EDB2AFD0EE0E3DB2ADED7000E1C -:10383000E552E552E5CFDAFFE7CFD9FF1200FC0EE3 -:0E384000DBCFE9FFFD0EDBCFEAFFEF501200F9 -:02384E00FE0E6C -:10385000E3CFE9FFFF0EE3CFEAFFE9CFF3FFEACFC3 -:10386000F4FFFB0EE35003E1FC0EE35009E0FB0E16 -:10387000E30602E2FC0EE306FD0EE350EE6EF1D726 -:103880001200FB0EE3CFF6FFFC0EE3CFF7FFFD0EB9 -:10389000E3CFF8FFFE0EE3CFE9FFFF0EE3CFEAFF31 -:1038A000E9CFF3FFEACFF4FFEE66FED7ED52090051 -:0A38B000F5CFEFFFEE66FBD7120024 -:0638BA002DD8FD0EDB50CD -:1038C000A86EA69EA69CA684F250800B01E0010E75 -:1038D00001011D6FF29E550EA76EAA0EA76EA6825D -:1038E0001D51E8B0F28EE8A0F29EA6B2FED7A198D4 -:1038F000A694E552E7CFD9FF12000DD8A69EA69C4C -:10390000A680020EE66EF5EC1EF0E552A850E552D8 -:10391000E7CFD9FF1200D9CFE6FFE1CFD9FFFE0EE6 -:06392000DB50A96E12004D -:0A392600D9CFE6FFDACFE6FFE1CFCC -:10393000D9FFE2CFDAFFE652E652FC0EDBCF00F011 -:10394000FD0EDBCF01F0060ED89000360136E804FC -:10395000FBE100C0DEFF01C0DDFF010EDB50BB6EEE -:10396000DF50E840E8403F0B300B006ECF0EBA143A -:103970000010BA6EE552E552E552E5CFDAFFE7CF27 -:04398000D9FF120059 -:0C398400D9CFE6FFDACFE6FFE1CFD9FF94 -:10399000E2CFDAFFE652E652FC0EDBCF00F0FD0E7E -:1039A000DBCF01F0060ED89000360136E804FBE1CB -:1039B00000C0DEFF01C0DDFF010EDB50BE6EDF5038 -:1039C000E840E8403F0B300B006ECF0EBD140010F6 -:1039D000BD6EE552E552E552E5CFDAFFE7CFD9FFFC -:0239E0001200D3 -:0E39E200D9CFE6FFDACFE6FFE1CFD9FFE2CF83 -:1039F000DAFFE652E6520C0EBA6E050EF66EF76A64 -:103A0000300EF86E0800F550010B03E0010EDB6884 -:103A100002D0010EDB6ADB5002E0949201D0939653 -:103A2000CA94FD0EDB50CB6ECA84E552E552E552D6 -:0A3A3000E5CFDAFFE7CFD9FF12005F -:063A3A00276A266A256AD6 -:103A4000246A200EE76ED890283629362A362B367F -:103A500024362536263627362D50245C2E50255800 -:103A60002F5026583050275809E32D50245E2E50F1 -:103A7000255A2F50265A3050275A282AE72EE4D7A5 -:023A8000120032 -:0E3A8200D9CFE6FFDACFE6FFE1CFD9FFE2CFE2 -:103A9000DAFFFD0EDB50360BB16EB36AB26AA1924B -:103AA000FD0EDBAE02D0A08201D0A092DBB2CD86AB -:103AB000DBA002D0B18E01D0B19EB180E552E5CF3E -:083AC000DAFFE7CFD9FF120085 -:083AC800D9CFE6FFDACFE6FFDB -:103AD000E1CFD9FFE2CFDAFFFD0EDB507E0BCD6EDA -:103AE000FD0EDBAC02D0CD8E01D0CD9ECF6ACE6A6A -:103AF0009E90DBAE02D09D8001D09D90CD80E5529E -:0A3B0000E5CFDAFFE7CFD9FF12008E -:063B0A00D9CFE6FFDACF7F -:103B1000E6FFE1CFD9FFE2CFDAFFE652F20E000175 -:103B2000FF17ABAC03D0FF91ABB0FF81ABB4FF8507 -:103B3000ABB2FF87AE50DF6EDF50E552E552E5CF06 -:083B4000DAFFE7CFD9FF120004 -:083B4800D9CFE6FFDACFE6FF5A -:103B5000E1CFD9FFE2CFDAFFFD0EDB50C96EC6AE72 -:103B600002D0FF0E09D0C7B0FED700EC1FF0C5ACE5 -:103B700002D0FE0E01D0000EE552E5CFDAFFE7CF0E -:043B8000D9FF120057 -:0C3B840032323A30393A30390020004D1E -:103B90006172203037203230313000526F626F74E2 -:103BA00020496E7465726661636520312E300A4F5C -:0F3BB0006C697669657220424943484C45520062 -:103BC000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFC8 -:103BD000E652E652FC0EDBCFDEFFDBCFDDFF010E4F -:103BE000DB50B36EDF50B26EE552E552E552E5CFE1 -:083BF000DAFFE7CFD9FF120054 -:083BF800D9CFE6FFDACFE6FFAA -:103C0000E1CFD9FFE2CFDAFFE652E652FC0EDBCF7E -:103C1000DEFFDBCFDDFF010EDB50CF6EDF50CE6E5F -:103C2000E552E552E552E5CFDAFFE7CFD9FF1200C2 -:103C3000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF57 -:103C4000E652E652FC0EDBCFDEFFDBCFDDFF010EDE -:103C5000DB50D76EDF50D66EE552E552E552E5CF28 -:083C6000DAFFE7CFD9FF1200E3 -:083C6800D9CFE6FFDACFE6FF39 -:103C7000E1CFD9FFE2CFDAFFFD0EDB507F0BD56E2F -:103C8000D76AD66AF294FD0EDBAE02D0F28A01D07A -:103C9000F29AD58EE552E5CFDAFFE7CFD9FF1200D1 -:103CA000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFE7 -:103CB000FD0EDB50FB0BCA6ECC6A9E92FD0EDBAE96 -:103CC00002D09D8201D09D92CA84E552E5CFDAFFF1 -:063CD000E7CFD9FF12004E -:0A3CD600D9CFE6FFDACFE6FFE1CF19 -:103CE000D9FFE2CFDAFF3F0EC716C66AC56AFD0EDE -:103CF000DB50C612FC0EDB50C71293829380C68A3B -:0C3D0000E552E5CFDAFFE7CFD9FF120053 -:043D0C00D9CFE6FF26 -:103D1000E1CFD9FF00010ED8EF50000803E2EB29F4 -:103D20001F0BEB6F07D8FE0EDBCFEFFFE552E7CF9F -:103D3000D9FF1200EB51EA6ACB0FE96E000EEA22BE -:023D400012006F -:0E3D4200D9CFE6FFDACFE6FFE1CFD9FFE2CF1F -:103D5000DAFF0C0EBD129494CA94FD0EDB50CB6EAC -:103D6000CA84E552E5CFDAFFE7CFD9FF1200949479 -:023D700012003F -:0E3D7200FF0EE350376EEF0E01D0F30EE76E3A -:103D8000E72EC0EF1EF00C0E366EE76AE72EC6EF88 -:103D90001EF0362EC5EF1EF0372EBEEF1EF01200BD -:103DA000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFE6 -:103DB000ACAC04D0AC900001FFB3AC80FD0EDB5086 -:0E3DC000AD6EE552E5CFDAFFE7CFD9FF120076 -:023DCE0013EEF2 -:103DD00000F023EE00F0F86A239C58EC1BF010EC86 -:0A3DE0001FF0B4EC04F0FBD7120052 -:063DEA00FF0EE350E84E5D -:103DF0001200000000D000D000D0E82EFAD7120048 -:0E3E00001F0EC514FDE1C750040BFAE11200BD -:023E0E0000EEC4 -:0C3E100000F00F0EEE6AEA62FDD712000F -:043E1C00C69A120030 -:023E200012008E -:093E220000000000000000000097 -:053E2B00000000000092 -:0B3E3000000000000000000000000087 -:053E3B00000000000181 -:033E40000000007F -:0D3E43000000000000000000000000000072 -:103E50000000000000000000000000000000000062 -:043E6000000000005E -:0C3E640000000000000000000000000052 -:103E70000000000000000000000000000000000042 -:083E800000000000000000003A +:1009C000C86EE66A16EC1BF0E5523F0E8A169316C7 +:1009D0000101136B146B156B166B010E176F98ECFE +:1009E00012F0E30E951692929492A082FD0EE66E9E +:1009F0002AEC1EF0E552000EE66EE66AC9EC1EF027 +:100A0000E552E55283948396839880928292E66AB7 +:100A1000CBEC17F0E55282EC1AF0E552E552E7CF45 +:100A2000D9FF1200D9CFE6FFE1CFD9FF170EE1269B +:100A3000160EDB6A0101175102E0BEEC0BF0200E2E +:100A40000001605D03E36D50020B02E0B4EF0BF0B8 +:100A5000160EDB5036E0CBEC18F0000932E0010155 +:100A60001551161102E1000E08D015C1E9FF16C19B +:100A7000EAFFEF50800B01E0010E000922E10501C1 +:100A8000406B01011851182B0501416F05010C0E37 +:100A9000426F0501436B400EE66E400EE66E050E9A +:100AA000E66E010EE66E010EE66E43EC11F0006E8E +:100AB000050EE15E0050F3CF15F1F4CF16F1160EDE +:100AC000DB6A01011551161102E1000E08D015C1B3 +:100AD000E9FF16C1EAFFEF50800B01E0010E0009AB +:100AE00047E10001EB51EA6ACB0FE96E000EEA2202 +:100AF000EF5000083DE20501406B01011851182B31 +:100B00000501416F0501040E426F0001EB51EA6AD5 +:100B1000CB0FE96E000EEA22EFCF43F5400EE66EF2 +:100B2000400EE66E050EE66E010EE66E010EE66EF6 +:100B300043EC11F0006E050EE15E0050F3CF15F1AD +:100B4000F4CF16F10001EB51EA6ACB0FE96E000E0B +:100B5000EA22EF6A0001EB51000803E20001EB0713 +:100B600007D00001EA51000803E200011F0EEB6FFD +:100B700001011351141102E1000E08D013C1E9FF65 +:100B800014C1EAFFEF50800B01E0010E000902E002 +:100B9000B4EF0BF005010251070A02E11AEF0BF066 +:100BA000020A02E1ECEF0AF00E0A02E193EF0AF00A +:100BB000060A02E1F4EF09F0040A01E110D20F0A7B +:100BC00001E165D1040A1AE0030A07E0010A02E024 +:100BD00073EF0BF0FF00B4EF0BF0E66A66EC1DF06C +:100BE000E552DF6E000EDB80DFCFE6FFE66A46EC03 +:100BF0001DF0E552E552FF00B4EF0BF00101155175 +:100C0000161102E1000E08D015C1E9FF16C1EAFF76 +:100C1000EF50800B01E0010E000901E036D100C564 +:100C200040F50501416B0501030E426F0501436B61 +:100C3000050108510A0A01E17ED00E0A71E0070A97 +:100C400064E0010A20E0030A06E0010A01E0F3D0B3 +:100C5000FCC048F5F3D00501486B6D0E006E3D0EEB +:100C6000016E026A00C0E6FF01C0E6FF02C0E6FFB7 +:100C7000480EE66E050EE66E2AEC1DF0036E050EBC +:100C8000E15E0350DBD00501486B610E006E3D0E46 +:100C9000016E026A00C0E6FF01C0E6FF02C0E6FF87 +:100CA000480EE66E050EE66E2AEC1DF0036E050E8C +:100CB000E15E03505F0E006E3D0E016E026A00C0E1 +:100CC000E6FF01C0E6FF02C0E6FF480EE66E050E35 +:100CD000E66E2AEC1DF0036E050EE15E0350560E23 +:100CE000006E3D0E016E026A00C0E6FF01C0E6FF25 +:100CF00002C0E6FF480EE66E050EE66E2AEC1DF019 +:100D0000036E050EE15E035099D092CF48F593CF64 +:100D100049F594CF4AF595CF4BF596CF4CF58ED04B +:100D200080CF48F581CF49F582CF4AF583CF4BF587 +:100D300084CF4CF583D0800EE66E080EE66E54EC40 +:100D40001FF0E552E552C580E9EC1FF0C00EE66EDB +:100D50008DEC1EF0E552E66A8DEC1EF0E552C58280 +:100D6000E9EC1FF0C10EE66E8DEC1EF0E552010EAF +:100D7000DB6A020EDB6A010EDBCF00F0020EDBCF76 +:100D800001F0040E005C000E01584FE2010EF36EFC +:100D9000150EF3CFDBFFC586130EDB6A140EDB6A7C +:100DA000130EDBCF00F0140EDBCF01F0E80E005C79 +:100DB000030E015817E2C7A00FD0010EDBCFE9FFE9 +:100DC000020EDBCFEAFF480EE926050EEA22C9CF64 +:100DD000EFFF150EDB6A06D0130EDB2A140E01E3BB +:100DE000DB2ADED7150EDB5008E00501080E436F45 +:100DF000C58AC588E9EC1FF018D0010EDBCF00F0E2 +:100E0000020EDBCF01F0030E005C000E015803E27E +:100E1000C59AC58802D0C58AC588E9EC1FF0010EC5 +:100E2000DB2A020E01E3DB2AA6D7C584E9EC1FF01A +:100E3000F7EC1FF003D00501020E436F400EE66E83 +:100E4000400EE66E050EE66E010EE66E010EE66ED3 +:100E500043EC11F0006E050EE15E0050F3CF15F18A +:100E6000F4CF16F1400EE66E000EE66E050EE66E4D +:100E7000E66A010EE66E43EC11F0006E050EE15ECF +:100E80000050F3CF13F1F4CF14F1B4EF0BF00501E0 +:100E90000851050A54E0010A49E0070A37E0010A4F +:100EA00025E0030A13E0010A01E080D005010951A1 +:100EB000921205010A51931205010B51941205017A +:100EC0000C51951205010D51961275D00501091DA1 +:100ED000921605010A1D931605010B1D94160501B6 +:100EE0000C1D951605010D1D961665D00501091DF1 +:100EF000891605010A1D8A1605010B1D8B160501B1 +:100F00000C1D8C1605010D1D8D1655D005010951BE +:100F1000891205010A518A1205010B518B12050134 +:100F20000C518C1205010D518D1245D0050109514E +:100F300001010F1B05010A5101010F133CD00501EE +:100F400009A107D00AC5E6FFE66AFEEC19F0E552F2 +:100F5000E552050109A308D00BC5E6FF010EE66EB8 +:100F6000FEEC19F0E552E552050109A508D00CC5C3 +:100F7000E6FF020EE66EFEEC19F0E552E5520501C1 +:100F800009A708D00DC5E6FF030EE66EFEEC19F0CA +:100F9000E552E552050109A908D00EC5E6FF040E89 +:100FA000E66EFEEC19F0E552E55205D0030EE66E52 +:100FB0006FEC1FF0E552400EE66E000EE66E050E79 +:100FC000E66EE66A010EE66E43EC11F0006E050E69 +:100FD000E15E0050F3CF13F1F4CF14F1C5D301015A +:100FE0001551161102E1000E08D015C1E9FF16C116 +:100FF000EAFFEF50800B01E0010E000901E0F3D1A0 +:1010000000C540F50501416B0501030E426F050166 +:10101000436B05010851110A01E1B5D1010A01E153 +:10102000ACD1190A01E183D1010A01E1E3D00F0A31 +:1010300001E1C5D0010A01E1AAD0030A01E18FD084 +:10104000010A6AE0070A42E0010A11E0030A01E02E +:10105000A0D105010A51E66EE66A09C5E6FFA6ECD5 +:1010600013F0E552E552E5520501486F95D10501AF +:101070000B051BE105010C51E66EE66A0AC5E6FFA9 +:1010800009C5E6FF63EC14F0E552E552E552E5527E +:101090000F0EF3CFDBFF100EF4CFDBFF100EDBCF14 +:1010A00048F50F0EDBCF49F510D005010C51E66E67 +:1010B000E66A0AC5E6FF09C5E6FF00EC14F0E55252 +:1010C000E552E552E5520501486F66D105010B0571 +:1010D00017E1100E0CC5DBFF0F0E0DC5DBFF0F0E69 +:1010E000DBCFE6FF100EDBCFE6FF0AC5E6FF09C542 +:1010F000E6FFF9EC13F0E552E552E552E5520BD06C +:101100000CC5E6FF0AC5E6FF09C5E6FFF5EC13F0DE +:10111000E552E552E55240D1100E0AC5DBFF0F0E35 +:101120000BC5DBFF120E0CC5DBFF110E0DC5DBFF7F +:101130000EC5E6FF110EDBCFE6FF120EDBCFE6FF9A +:101140000F0EDBCFE6FF100EDBCFE6FF09C5E6FF93 +:10115000E4EC14F0006E060EE15E00501DD10501B6 +:101160000A51E66EE66A09C5E6FF07EC15F0E5529E +:10117000E552E5520F0EF3CFDBFF100EF4CFDBFF8D +:10118000100EDBCF48F50F0EDBCF49F505D1050179 +:101190000A51E66EE66A09C5E6FF0AEC15F0E5526B +:1011A000E552E5520F0EF3CFDBFF100EF4CFDBFF5D +:1011B000100EDBCF48F50F0EDBCF49F5EDD0050162 +:1011C0000A51E66EE66A280EE66E09C5E6FF63EC94 +:1011D00014F0E552E552E552E5520F0EF3CFDBFF76 +:1011E000100EF4CFDBFF100EDBCF48F50F0EDBCF78 +:1011F00049F5D2D005010A51E66EE66A09C5E6FF57 +:1012000007EC15F0E552E552E5520F0EF3CFDBFF88 +:10121000100EF4CFDBFF100EDBCF48F50F0EDBCF47 +:1012200049F505010A51E66EE66A09C5E6FF0AECD2 +:1012300015F0E552E552E5520F0EF3CFDBFF100E2D +:10124000F4CFDBFF100EDBCF4AF50F0EDBCF4BF5F3 +:1012500005010A51E66EE66A280EE66E09C5E6FF4C +:1012600063EC14F0E552E552E552E5520F0EF3CF70 +:10127000DBFF100EF4CFDBFF100EDBCF4CF50F0EB3 +:10128000DBCF4DF505010A51E66EE66A2A0EE66EE1 +:1012900009C5E6FF00EC14F0E552E552E552E552CF +:1012A00005014E6F05010A51E66EE66A2B0EE66EE9 +:1012B00009C5E6FF00EC14F0E552E552E552E552AF +:1012C00005014F6F05010A51E66EE66A060EE66EED +:1012D00009C5E6FF63EC14F0E552E552E552E5522C +:1012E0000F0EF3CFDBFF100EF4CFDBFF100EDBCFC2 +:1012F00050F50F0EDBCF51F505010A51E66EE66A97 +:10130000080EE66E09C5E6FF63EC14F0E552E552FF +:10131000E552E5520F0EF3CFDBFF100EF4CFDBFFEB +:10132000100EDBCF52F50F0EDBCF53F535D0050194 +:101330000B0517E1100E0CC5DBFF0F0E0DC5DBFF13 +:101340000F0EDBCFE6FF100EDBCFE6FF0AC5E6FF90 +:1013500009C5E6FFD7EC14F0E552E552E552E55237 +:101360000BD00CC5E6FF0AC5E6FF09C5E6FFD3ECC6 +:1013700014F0E552E552E5520FD009C5E6FFDFEC67 +:1013800014F0E55209D009C5E6FFF0EC13F0E55280 +:1013900003D00501010E436... [truncated message content] |
From: Jérémie D. <Ba...@us...> - 2010-03-07 22:57:56
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 898dd1a410781431143f0c21e6158de5c4b7624c (commit) from 8902813f33971db1de012160557c87b34a52e8c7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 898dd1a410781431143f0c21e6158de5c4b7624c Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 23:56:12 2010 +0100 add missing interface for the LCD ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index e1472f0..121618b 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -79,7 +79,7 @@ struct module Unsafe = DBus_exports.LCD(OBus)(struct let get dev = dev.card end) - OL_interface(OBus) "fr.krobot.Device.LCD" + OL_interface(OBus) "fr.krobot.Device.LCD" as interface OL_method SetLCD : string list -> unit = fun dev lines -> if List.length lines > 4 || List.exists (fun line -> String.length line > 20) lines then @@ -101,7 +101,7 @@ struct let make card path = let dev = { - obus = OBus.make ~interfaces:[Unsafe.interface] path; + obus = OBus.make ~interfaces:[Unsafe.interface; interface] path; card = card; } in return dev hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 22:48:45
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 8902813f33971db1de012160557c87b34a52e8c7 (commit) from ea6ee177b5f55f2c5c1c62c647962596786000a0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8902813f33971db1de012160557c87b34a52e8c7 Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 23:48:24 2010 +0100 add META ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/META b/PC_Mainboard/META new file mode 100644 index 0000000..3a4d1c1 --- /dev/null +++ b/PC_Mainboard/META @@ -0,0 +1,9 @@ +# -*- conf -*- +name = "krobot" +version = "0.1" +description = "Krobot client library" +requires = "obus" +archive(byte) = "krobot.cma" +archive(native) = "krobot.cmxa" +archive(plugin,byte) = "krobot.cma" +archive(plugin,native) = "krobot.cmxs" hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 22:46:30
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via ea6ee177b5f55f2c5c1c62c647962596786000a0 (commit) from 6c4e8c5630ad64620ea8228a0a4c56d50b02571f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ea6ee177b5f55f2c5c1c62c647962596786000a0 Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 23:45:43 2010 +0100 High level command for controlling the LCD ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index 82b5d48..e1472f0 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -79,6 +79,26 @@ struct module Unsafe = DBus_exports.LCD(OBus)(struct let get dev = dev.card end) + OL_interface(OBus) "fr.krobot.Device.LCD" + + OL_method SetLCD : string list -> unit = fun dev lines -> + if List.length lines > 4 || List.exists (fun line -> String.length line > 20) lines then + invalid_arg "SetLCD" + else + match lines with + | [] -> + return () + | line :: lines -> + lwt () = Unsafe.send dev ("\x1b\x43\x1b\x73" ^ line) in + let rec loop i = function + | [] -> + return () + | line :: lines -> + lwt () = Unsafe.send dev (String.make 1 (char_of_int i) ^ line) in + loop (i + 1) lines + in + loop 2 lines + let make card path = let dev = { obus = OBus.make ~interfaces:[Unsafe.interface] path; diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index 800683e..7f3940d 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -157,6 +157,15 @@ let jack krobot = React.S.map (fun ls -> ls.(15)) krobot.logic_sensors (* +-----------------------------------------------------------------+ + | LCD | + +-----------------------------------------------------------------+ *) + +module LCD = Make_device(struct let name = "LCD" end) +OP_interface(LCD) "fr.krobot.Device.LCD" + +OP_method SetLCD : string list -> unit + +(* +-----------------------------------------------------------------+ | Range finders | +-----------------------------------------------------------------+ *) diff --git a/PC_Mainboard/lib_krobot/krobot.mli b/PC_Mainboard/lib_krobot/krobot.mli index b5a56bf..3dc8a9a 100644 --- a/PC_Mainboard/lib_krobot/krobot.mli +++ b/PC_Mainboard/lib_krobot/krobot.mli @@ -29,6 +29,12 @@ val create : ?peer : OBus_peer.t -> unit -> t Lwt.t val peer : t -> OBus_peer.t (** Returns the driver peer *) +(** {6 LCD} *) + +val set_lcd : t -> string list -> unit Lwt.t + (** [set_lcd lines] set the lines displayed on the LCD. [lines] may + contains at most 4 lines, of maximum length 20. *) + (** {6 Compass} *) val compass : t -> int React.signal hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 22:29:06
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 6c4e8c5630ad64620ea8228a0a4c56d50b02571f (commit) from 19398dd4d385b2ce50f474cb573743d6ec7f70a6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6c4e8c5630ad64620ea8228a0a4c56d50b02571f Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 23:28:35 2010 +0100 build and install the krobot library ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/Makefile b/PC_Mainboard/Makefile index 96a8d60..026a6a4 100644 --- a/PC_Mainboard/Makefile +++ b/PC_Mainboard/Makefile @@ -24,6 +24,14 @@ clean: .PHONY: install install: + $(OF) install krobot META \ + lib_krobot/krobot.mli \ + $(wildcard _build/lib_krobot/*.cmi) \ + $(wildcard _build/lib_krobot/*.cmx) \ + $(wildcard _build/*.cma) \ + $(wildcard _build/*.cmxa) \ + $(wildcard _build/*.cmxs) \ + $(wildcard _build/*.a) install -m 0755 _build/card_tools/send_firmware.best $(PREFIX)/bin/krobot-send-firmware install -m 0755 _build/card_tools/dump_memory.best $(PREFIX)/bin/krobot-dump-memory install -m 0755 _build/tools/forward_dbus.best $(PREFIX)/bin/krobot-forward-dbus @@ -35,6 +43,7 @@ install: .PHONY: uninstall uninstall: + $(OF) remove krobot rm -vf $(PREFIX)/bin/krobot-* .PHONY: reinstall diff --git a/PC_Mainboard/_tags b/PC_Mainboard/_tags index 2b3245a..0d628c0 100644 --- a/PC_Mainboard/_tags +++ b/PC_Mainboard/_tags @@ -38,8 +38,8 @@ # | Common | # +------------------------------------------------------------------+ -<common/{types,util}.{ml,mli}>: syntax_camlp4o, pkg_obus.syntax, pkg_lwt.syntax -<common/{types,util}.*>: pkg_obus +<common/{krobot_types,util}.{ml,mli}>: syntax_camlp4o, pkg_obus.syntax, pkg_lwt.syntax +<common/{krobot_types,util}.*>: pkg_obus # +------------------------------------------------------------------+ # | Driver | diff --git a/PC_Mainboard/clients/init_position.ml b/PC_Mainboard/clients/init_position.ml index 0a4e6d9..4e74d75 100644 --- a/PC_Mainboard/clients/init_position.ml +++ b/PC_Mainboard/clients/init_position.ml @@ -28,7 +28,7 @@ lwt () = lwt () = move_backward_slowly krobot in lwt () = Log.notice "going to initial position on first axis" in - lwt _ = Krobot.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.move krobot ~distance:Krobot_config.initial_position ~velocity:400 ~acceleration:800 in lwt () = Log.notice "turning" in lwt _ = Krobot.turn krobot ~angle:(-90) ~velocity:400 ~acceleration:800 in @@ -36,7 +36,7 @@ lwt () = lwt () = move_backward_slowly krobot in lwt () = Log.notice "going to initial position on second axis" in - lwt _ = Krobot.move krobot ~distance:Config.initial_position ~velocity:400 ~acceleration:800 in + lwt _ = Krobot.move krobot ~distance:Krobot_config.initial_position ~velocity:400 ~acceleration:800 in lwt () = Log.notice "turning" in lwt _ = Krobot.turn krobot ~angle:45 ~velocity:400 ~acceleration:800 in diff --git a/PC_Mainboard/clients/script.ml b/PC_Mainboard/clients/script.ml index 64a5ed8..5c64cf6 100644 --- a/PC_Mainboard/clients/script.ml +++ b/PC_Mainboard/clients/script.ml @@ -274,7 +274,7 @@ let () = let id = int "id" and position = int "position" - and velocity = int ~default:Config.ax12_default_velocity "velocity" + and velocity = int ~default:Krobot_config.ax12_default_velocity "velocity" and timeout = int ~default:100 "timeout" and goto_mode = keyword ~default:`Now "mode" [("now", `Now); ("action", `Action)] in @@ -301,13 +301,13 @@ let () = register ~path:["ax12"] "get-stats" (f2 id timeout) (fun logger krobot id timeout -> lwt stats = Krobot_unsafe.AX12.get_stats krobot id timeout in - lwt () = logger [textf "ax12[%d] position = %d" id stats.Types.ax12_position] in - lwt () = logger [textf "ax12[%d] velocity = %d" id stats.Types.ax12_velocity] in - lwt () = logger [textf "ax12[%d] torque = %d" id stats.Types.ax12_torque] in - lwt () = logger [textf "ax12[%d] voltage = %d" id stats.Types.ax12_voltage] in - lwt () = logger [textf "ax12[%d] temperature = %d" id stats.Types.ax12_temperature] in - lwt () = logger [textf "ax12[%d] cw-angle-limit = %d" id stats.Types.ax12_cw_angle_limit] in - lwt () = logger [textf "ax12[%d] ccw-angle-limit = %d" id stats.Types.ax12_ccw_angle_limit] in + lwt () = logger [textf "ax12[%d] position = %d" id stats.Krobot_types.ax12_position] in + lwt () = logger [textf "ax12[%d] velocity = %d" id stats.Krobot_types.ax12_velocity] in + lwt () = logger [textf "ax12[%d] torque = %d" id stats.Krobot_types.ax12_torque] in + lwt () = logger [textf "ax12[%d] voltage = %d" id stats.Krobot_types.ax12_voltage] in + lwt () = logger [textf "ax12[%d] temperature = %d" id stats.Krobot_types.ax12_temperature] in + lwt () = logger [textf "ax12[%d] cw-angle-limit = %d" id stats.Krobot_types.ax12_cw_angle_limit] in + lwt () = logger [textf "ax12[%d] ccw-angle-limit = %d" id stats.Krobot_types.ax12_ccw_angle_limit] in return ()); register ~path:["ax12"] "action" (f1 (int ~default:254 "id")) (fun logger krobot id -> diff --git a/PC_Mainboard/clients/script_commands.ml b/PC_Mainboard/clients/script_commands.ml index 5741602..0c92b84 100644 --- a/PC_Mainboard/clients/script_commands.ml +++ b/PC_Mainboard/clients/script_commands.ml @@ -9,7 +9,7 @@ (* +-----------------------------------------------------------------+ - | Types | + | Krobot_types | +-----------------------------------------------------------------+ *) type logger = Lwt_term.styled_text -> unit Lwt.t diff --git a/PC_Mainboard/common/config.ml b/PC_Mainboard/common/config.ml deleted file mode 100644 index c05aaf8..0000000 --- a/PC_Mainboard/common/config.ml +++ /dev/null @@ -1,20 +0,0 @@ -(* - * config.ml - * --------- - * Copyright : (c) 2010, Jeremie Dimino <je...@di...> - * Licence : BSD3 - * - * This file is a part of [kro]bot. - *) - -let back_sensors = [3; 6; 7; 10] -let front_sensors = [0; 1; 2; 4; 5; 8; 9; 11; 12; 13; 14; 15] -let initial_position = 200 -let bus_address = "unix:abstract=krobot" -let update_delay = 0.05 -let reopen_delay = 1.0 - -let ax12_grip_up_down = 1 -let grip_up_position = 880 -let grip_down_position = 580 -let ax12_default_velocity = 50 diff --git a/PC_Mainboard/common/config.mli b/PC_Mainboard/common/config.mli deleted file mode 100644 index 66cd249..0000000 --- a/PC_Mainboard/common/config.mli +++ /dev/null @@ -1,33 +0,0 @@ -(* - * config.mli - * ---------- - * Copyright : (c) 2010, Jeremie Dimino <je...@di...> - * Licence : BSD3 - * - * This file is a part of [kro]bot. - *) - -(** Krobot parameters *) - -val front_sensors : int list - (** List of front sensors *) - -val back_sensors : int list - (** List of back sensors *) - -val initial_position : int - (** Position to borders at the beginning of the match *) - -val bus_address : string - (** Default address of the krobot dbus daemon *) - -val update_delay : float - (** Time to wait between updates *) - -val reopen_delay : float - (** Time to wait before retrying to open a card *) - -val ax12_grip_up_down : int -val grip_up_position : int -val grip_down_position : int -val ax12_default_velocity : int diff --git a/PC_Mainboard/common/krobot_config.ml b/PC_Mainboard/common/krobot_config.ml new file mode 100644 index 0000000..1895a58 --- /dev/null +++ b/PC_Mainboard/common/krobot_config.ml @@ -0,0 +1,20 @@ +(* + * krobot_config.ml + * ---------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +let back_sensors = [3; 6; 7; 10] +let front_sensors = [0; 1; 2; 4; 5; 8; 9; 11; 12; 13; 14; 15] +let initial_position = 200 +let bus_address = "unix:abstract=krobot" +let update_delay = 0.05 +let reopen_delay = 1.0 + +let ax12_grip_up_down = 1 +let grip_up_position = 880 +let grip_down_position = 580 +let ax12_default_velocity = 50 diff --git a/PC_Mainboard/common/krobot_config.mli b/PC_Mainboard/common/krobot_config.mli new file mode 100644 index 0000000..aa34719 --- /dev/null +++ b/PC_Mainboard/common/krobot_config.mli @@ -0,0 +1,33 @@ +(* + * krobot_config.mli + * ----------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +(** Krobot parameters *) + +val front_sensors : int list + (** List of front sensors *) + +val back_sensors : int list + (** List of back sensors *) + +val initial_position : int + (** Position to borders at the beginning of the match *) + +val bus_address : string + (** Default address of the krobot dbus daemon *) + +val update_delay : float + (** Time to wait between updates *) + +val reopen_delay : float + (** Time to wait before retrying to open a card *) + +val ax12_grip_up_down : int +val grip_up_position : int +val grip_down_position : int +val ax12_default_velocity : int diff --git a/PC_Mainboard/common/krobot_types.ml b/PC_Mainboard/common/krobot_types.ml new file mode 100644 index 0000000..0b5a297 --- /dev/null +++ b/PC_Mainboard/common/krobot_types.ml @@ -0,0 +1,68 @@ +(* + * krobot_types.ml + * --------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +open OBus_pervasives + +type move_result = [ `OK | `Stopped ] + +let obus_move_result = + OBus_type.mapping obus_int [(`OK, 0); (`Stopped, 1)] + +type motor = [ `Left | `Right | `Both ] + +let obus_motor = OBus_type.mapping obus_int + [(`Left, -1); + (`Both, 0); + (`Right, 1)] + +type stop_mode = [ `Off | `Abrupt | `Smooth ] + +let obus_stop_mode = OBus_type.mapping obus_int + [(`Off, 0); + (`Abrupt, 1); + (`Smooth, 2)] + +type card_state = [ `Present | `Absent ] + +let obus_card_state = OBus_type.mapping obus_int + [(`Present, 0); + (`Absent, 1)] + +type goto_mode = [ `Straight | `Curve_right | `Curve_left ] + +let obus_goto_mode = OBus_type.mapping obus_int + [(`Straight, 0); + (`Curve_right, 1); + (`Curve_left, 2)] + +type ax12_stats = { + ax12_position : int; + ax12_velocity : int; + ax12_torque : int; + ax12_voltage : int; + ax12_temperature : int; + ax12_cw_angle_limit : int; + ax12_ccw_angle_limit : int; +} with obus + +type exec_mode = [ `Now | `Action ] + +let obus_exec_mode = OBus_type.mapping obus_int + [(`Now, 0); (`Action, 1)] + +type direction = [ `Forward | `Backward ] + +let obus_direction = OBus_type.mapping obus_int + [(`Forward, 0); (`Backward, 1)] + +type ax12_action = { + aa_id : int; + aa_position : int; + aa_velocity : int; +} with obus diff --git a/PC_Mainboard/common/krobot_types.mli b/PC_Mainboard/common/krobot_types.mli new file mode 100644 index 0000000..c7c261f --- /dev/null +++ b/PC_Mainboard/common/krobot_types.mli @@ -0,0 +1,54 @@ +(* + * krobot_types.mli + * ---------------- + * Copyright : (c) 2010, Jeremie Dimino <je...@di...> + * Licence : BSD3 + * + * This file is a part of [kro]bot. + *) + +(** Common types with their obus type combinators *) + +(** This types are used by the driver and the client-side krobot + library. + + Putting in a module shared by the client and the server prevents + typos in conversions. *) + +type move_result = [ `OK | `Stopped ] with obus(basic) + (** Result of a movement started by [Krobot.move] or + [Krobot.turn] *) + +type motor = [ `Left | `Right | `Both ] with obus(basic) + (** Motors *) + +type stop_mode = [ `Off | `Abrupt | `Smooth ] with obus(basic) + (** Mode for stopping motors *) + +type direction = [ `Forward | `Backward ] with obus(basic) + +type card_state = [ `Present | `Absent ] with obus(basic) + (** State of a card *) + +type goto_mode = [ `Straight | `Curve_right | `Curve_left ] with obus(basic) + (** Form of the trajectory for the goto command *) + +type exec_mode = [ `Now | `Action ] with obus(basic) + (** Mode of execution of the goto command for ax12 *) + +type ax12_stats = { + ax12_position : int; + ax12_velocity : int; + ax12_torque : int; + ax12_voltage : int; + ax12_temperature : int; + ax12_cw_angle_limit : int; + ax12_ccw_angle_limit : int; +} with obus(sequence) + +(** Action on an AX12: *) +type ax12_action = { + aa_id : int; + aa_position : int; + aa_velocity : int; +} with obus(sequence) diff --git a/PC_Mainboard/common/types.ml b/PC_Mainboard/common/types.ml deleted file mode 100644 index 3f970ca..0000000 --- a/PC_Mainboard/common/types.ml +++ /dev/null @@ -1,68 +0,0 @@ -(* - * types.ml - * -------- - * Copyright : (c) 2010, Jeremie Dimino <je...@di...> - * Licence : BSD3 - * - * This file is a part of [kro]bot. - *) - -open OBus_pervasives - -type move_result = [ `OK | `Stopped ] - -let obus_move_result = - OBus_type.mapping obus_int [(`OK, 0); (`Stopped, 1)] - -type motor = [ `Left | `Right | `Both ] - -let obus_motor = OBus_type.mapping obus_int - [(`Left, -1); - (`Both, 0); - (`Right, 1)] - -type stop_mode = [ `Off | `Abrupt | `Smooth ] - -let obus_stop_mode = OBus_type.mapping obus_int - [(`Off, 0); - (`Abrupt, 1); - (`Smooth, 2)] - -type card_state = [ `Present | `Absent ] - -let obus_card_state = OBus_type.mapping obus_int - [(`Present, 0); - (`Absent, 1)] - -type goto_mode = [ `Straight | `Curve_right | `Curve_left ] - -let obus_goto_mode = OBus_type.mapping obus_int - [(`Straight, 0); - (`Curve_right, 1); - (`Curve_left, 2)] - -type ax12_stats = { - ax12_position : int; - ax12_velocity : int; - ax12_torque : int; - ax12_voltage : int; - ax12_temperature : int; - ax12_cw_angle_limit : int; - ax12_ccw_angle_limit : int; -} with obus - -type exec_mode = [ `Now | `Action ] - -let obus_exec_mode = OBus_type.mapping obus_int - [(`Now, 0); (`Action, 1)] - -type direction = [ `Forward | `Backward ] - -let obus_direction = OBus_type.mapping obus_int - [(`Forward, 0); (`Backward, 1)] - -type ax12_action = { - aa_id : int; - aa_position : int; - aa_velocity : int; -} with obus diff --git a/PC_Mainboard/common/types.mli b/PC_Mainboard/common/types.mli deleted file mode 100644 index 6fa04c8..0000000 --- a/PC_Mainboard/common/types.mli +++ /dev/null @@ -1,54 +0,0 @@ -(* - * types.mli - * --------- - * Copyright : (c) 2010, Jeremie Dimino <je...@di...> - * Licence : BSD3 - * - * This file is a part of [kro]bot. - *) - -(** Common types with their obus type combinators *) - -(** This types are used by the driver and the client-side krobot - library. - - Putting in a module shared by the client and the server prevents - typos in conversions. *) - -type move_result = [ `OK | `Stopped ] with obus(basic) - (** Result of a movement started by [Krobot.move] or - [Krobot.turn] *) - -type motor = [ `Left | `Right | `Both ] with obus(basic) - (** Motors *) - -type stop_mode = [ `Off | `Abrupt | `Smooth ] with obus(basic) - (** Mode for stopping motors *) - -type direction = [ `Forward | `Backward ] with obus(basic) - -type card_state = [ `Present | `Absent ] with obus(basic) - (** State of a card *) - -type goto_mode = [ `Straight | `Curve_right | `Curve_left ] with obus(basic) - (** Form of the trajectory for the goto command *) - -type exec_mode = [ `Now | `Action ] with obus(basic) - (** Mode of execution of the goto command for ax12 *) - -type ax12_stats = { - ax12_position : int; - ax12_velocity : int; - ax12_torque : int; - ax12_voltage : int; - ax12_temperature : int; - ax12_cw_angle_limit : int; - ax12_ccw_angle_limit : int; -} with obus(sequence) - -(** Action on an AX12: *) -type ax12_action = { - aa_id : int; - aa_position : int; - aa_velocity : int; -} with obus(sequence) diff --git a/PC_Mainboard/common/util.ml b/PC_Mainboard/common/util.ml index 705623f..1f3ca4f 100644 --- a/PC_Mainboard/common/util.ml +++ b/PC_Mainboard/common/util.ml @@ -13,7 +13,7 @@ let front_collide sensors = if Array.length sensors <> 16 then invalid_arg "Until.front_collide"; let rec loop = function | 16 -> false - | n -> (sensors.(n) && List.mem n Config.front_sensors) || loop (n + 1) + | n -> (sensors.(n) && List.mem n Krobot_config.front_sensors) || loop (n + 1) in loop 0 @@ -21,7 +21,7 @@ let back_collide sensors = if Array.length sensors <> 16 then invalid_arg "Until.back_collide"; let rec loop = function | 16 -> false - | n -> (sensors.(n) && List.mem n Config.back_sensors) || loop (n + 1) + | n -> (sensors.(n) && List.mem n Krobot_config.back_sensors) || loop (n + 1) in loop 0 diff --git a/PC_Mainboard/driver/bus.conf b/PC_Mainboard/driver/bus.conf index 9808b8e..0fb7c62 100644 --- a/PC_Mainboard/driver/bus.conf +++ b/PC_Mainboard/driver/bus.conf @@ -1,5 +1,5 @@ -<!-- Configuration for the dbus daemon --> -<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" +<!-- Krobot_configuration for the dbus daemon --> +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Krobot_configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <keep_umask/> diff --git a/PC_Mainboard/driver/driver.ml b/PC_Mainboard/driver/driver.ml index a7f256e..82b5d48 100644 --- a/PC_Mainboard/driver/driver.ml +++ b/PC_Mainboard/driver/driver.ml @@ -12,7 +12,7 @@ module Log = Lwt_log.Make(struct let section = "driver" end) open OBus_pervasives -open Types +open Krobot_types open Lwt (* +-----------------------------------------------------------------+ @@ -44,10 +44,10 @@ struct if data <> dev.data then begin dev.data <- data; lwt () = value dev data in - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev end else - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev let make card path = @@ -107,7 +107,7 @@ struct OL_interface(OBus) "fr.krobot.Device.AX12" as interface - OL_method SetAX12 : Types.ax12_action structure list -> unit = fun dev actions -> + OL_method SetAX12 : Krobot_types.ax12_action structure list -> unit = fun dev actions -> lwt () = Lwt_list.iter_p (fun action -> @@ -122,10 +122,10 @@ struct USB_commands.AX12.action dev.card ~id:0xfe OL_method GripUp : unit = fun dev -> - set_ax12 dev [{ aa_id = Config.ax12_grip_up_down; aa_position = Config.grip_up_position; aa_velocity = Config.ax12_default_velocity }] + set_ax12 dev [{ aa_id = Krobot_config.ax12_grip_up_down; aa_position = Krobot_config.grip_up_position; aa_velocity = Krobot_config.ax12_default_velocity }] OL_method GripDown : unit = fun dev -> - set_ax12 dev [{ aa_id = Config.ax12_grip_up_down; aa_position = Config.grip_down_position; aa_velocity = Config.ax12_default_velocity }] + set_ax12 dev [{ aa_id = Krobot_config.ax12_grip_up_down; aa_position = Krobot_config.grip_down_position; aa_velocity = Krobot_config.ax12_default_velocity }] let make card path = return { @@ -163,10 +163,10 @@ struct if data <> dev.data then begin dev.data <- data; lwt () = value dev data in - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev end else - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev let make card path = @@ -217,10 +217,10 @@ struct if data <> dev.data then begin dev.data <- data; lwt () = value dev data in - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev end else - lwt () = Lwt_unix.sleep Config.update_delay in + lwt () = Lwt_unix.sleep Krobot_config.update_delay in loop dev let make card path = @@ -437,9 +437,9 @@ struct return (if trajectory.stopped then `Stopped else `OK) end - OL_method Turn : int -> int -> int -> Types.move_result - OL_method Move : int -> int -> int -> Types.move_result - OL_method Goto : int -> int -> int -> int -> Types.goto_mode -> int -> Types.move_result + OL_method Turn : int -> int -> int -> Krobot_types.move_result + OL_method Move : int -> int -> int -> Krobot_types.move_result + OL_method Goto : int -> int -> int -> int -> Krobot_types.goto_mode -> int -> Krobot_types.move_result (* +---------------------------------------------------------------+ | Manually sets the velocity and acceleration of each motor | @@ -517,7 +517,7 @@ struct let static = { velocity = 0; acceleration = 0; direction = `Forward } in _set_velocities dev (return ()) (static, static) velocities accelerations duration - OL_method StopMotors : Types.stop_mode -> unit + OL_method StopMotors : Krobot_types.stop_mode -> unit OL_method SetVelocities : int * int -> int * int -> float -> unit (* +---------------------------------------------------------------+ @@ -596,7 +596,7 @@ struct | Some card -> Krobot_card.close card - OL_method CardStates : OBus_connection.t -> Types.card_state * Types.card_state * Types.card_state = fun manager connection -> + OL_method CardStates : OBus_connection.t -> Krobot_types.card_state * Krobot_types.card_state * Krobot_types.card_state = fun manager connection -> let state card = match React.S.value card with | Some _ -> `Present | None -> `Absent @@ -649,7 +649,7 @@ struct OL_property_r Name : string = fun dev -> return (Krobot_card.name (get_card dev)) - OL_method GetState : Types.card_state = fun dev -> + OL_method GetState : Krobot_types.card_state = fun dev -> match React.S.value dev.card with | None -> return `Absent @@ -671,7 +671,7 @@ struct OL_method Test : unit = fun dev -> USB_commands.Card.test (get_card dev) - OL_signal StateChanged : Types.card_state + OL_signal StateChanged : Krobot_types.card_state let make name card path = let dev = { @@ -730,7 +730,7 @@ and restart_card ~name ~vendor_id ~product_id ~set on_up on_down = if !quit then return () else begin - lwt () = Lwt_unix.sleep Config.reopen_delay in + lwt () = Lwt_unix.sleep Krobot_config.reopen_delay in monitor_card ~name ~vendor_id ~product_id ~set on_up on_down end @@ -748,7 +748,7 @@ lwt () = Arg.parse args ignore usage_msg; (* Open the krobot message bus *) - lwt bus = OBus_bus.of_addresses (OBus_address.of_string Config.bus_address) in + lwt bus = OBus_bus.of_addresses (OBus_address.of_string Krobot_config.bus_address) in lwt () = try_lwt diff --git a/PC_Mainboard/generators/gen_dbus_exports.ml b/PC_Mainboard/generators/gen_dbus_exports.ml index 134edef..fc99314 100644 --- a/PC_Mainboard/generators/gen_dbus_exports.ml +++ b/PC_Mainboard/generators/gen_dbus_exports.ml @@ -78,10 +78,10 @@ let rec print path indent = function printf "%send\n" indent | Enum enum -> - printf "%stype %s = Types.%s with obus\n" indent (Name.lid enum.enum_name) (Name.lid enum.enum_name) + printf "%stype %s = Krobot_types.%s with obus\n" indent (Name.lid enum.enum_name) (Name.lid enum.enum_name) | Record record -> - printf "%stype %s = Types.%s with obus\n" indent (Name.lid record.rec_name) (Name.lid record.rec_name) + printf "%stype %s = Krobot_types.%s with obus\n" indent (Name.lid record.rec_name) (Name.lid record.rec_name) let () = printf "open OBus_pervasives\n"; diff --git a/PC_Mainboard/generators/gen_dbus_imports.ml b/PC_Mainboard/generators/gen_dbus_imports.ml index 2f62ba9..09eac87 100644 --- a/PC_Mainboard/generators/gen_dbus_imports.ml +++ b/PC_Mainboard/generators/gen_dbus_imports.ml @@ -60,10 +60,10 @@ let rec print indent = function printf "%send\n" indent | Enum enum -> - printf "%stype %s = Types.%s with obus\n" indent (Name.lid enum.enum_name) (Name.lid enum.enum_name) + printf "%stype %s = Krobot_types.%s with obus\n" indent (Name.lid enum.enum_name) (Name.lid enum.enum_name) | Record record -> - printf "%stype %s = Types.%s with obus\n" indent (Name.lid record.rec_name) (Name.lid record.rec_name) + printf "%stype %s = Krobot_types.%s with obus\n" indent (Name.lid record.rec_name) (Name.lid record.rec_name) let () = print_string "\ diff --git a/PC_Mainboard/generators/gen_script_commands.ml b/PC_Mainboard/generators/gen_script_commands.ml index 8ee4f3e..be2da55 100644 --- a/PC_Mainboard/generators/gen_script_commands.ml +++ b/PC_Mainboard/generators/gen_script_commands.ml @@ -80,7 +80,7 @@ let rec print is_card path caml_path = function printf " \"{\" ^ (String.concat \"; \" ["; List.iter (fun (name, typ) -> - printf "\"%s = \" ^ %s; " name (typ.print (sprintf "x.Types.%s%s" record.rec_prefix (Name.lid name)))) + printf "\"%s = \" ^ %s; " name (typ.print (sprintf "x.Krobot_types.%s%s" record.rec_prefix (Name.lid name)))) record.rec_args; printf "]) ^ \"}\" in\n"; printf " let _ = print_%s in\n" (Name.lid record.rec_name) diff --git a/PC_Mainboard/generators/gen_usb_commands.ml b/PC_Mainboard/generators/gen_usb_commands.ml index 70bfb92..2c457dd 100644 --- a/PC_Mainboard/generators/gen_usb_commands.ml +++ b/PC_Mainboard/generators/gen_usb_commands.ml @@ -78,7 +78,7 @@ let rec print indent = function printf "%slet put_%s writer value =\n" indent (Name.lid record.rec_name); List.iter (fun (name, typ) -> - printf "%s %s;\n" indent (typ.writer ("value.Types." ^ record.rec_prefix ^ Name.lid name))) + printf "%s %s;\n" indent (typ.writer ("value.Krobot_types." ^ record.rec_prefix ^ Name.lid name))) record.rec_args; printf "%s ()\n" indent; @@ -92,7 +92,7 @@ let rec print indent = function (List.map (fun (name, typ) -> let name = Name.lid name in - sprintf "Types.%s%s = %s" record.rec_prefix (Name.lid name) name) + sprintf "Krobot_types.%s%s = %s" record.rec_prefix (Name.lid name) name) record.rec_args)) | Module(name, items) -> printf "%smodule %s = struct\n" indent (Name.uid name); diff --git a/PC_Mainboard/krobot.mllib b/PC_Mainboard/krobot.mllib new file mode 100644 index 0000000..6116255 --- /dev/null +++ b/PC_Mainboard/krobot.mllib @@ -0,0 +1,4 @@ +lib_krobot/Krobot +lib_krobot/Krobot_unsafe +common/Krobot_types +common/Krobot_config diff --git a/PC_Mainboard/lib_krobot/krobot.ml b/PC_Mainboard/lib_krobot/krobot.ml index 7a845d7..800683e 100644 --- a/PC_Mainboard/lib_krobot/krobot.ml +++ b/PC_Mainboard/lib_krobot/krobot.ml @@ -11,16 +11,16 @@ module Log = Lwt_log.Make(struct let section = "krobot" end) open OBus_pervasives open Lwt -open Types +open Krobot_types (* +-----------------------------------------------------------------+ - | Types | + | Krobot_types | +-----------------------------------------------------------------+ *) type team = Team_red | Team_green type card = { - card_state : Types.card_state React.signal; + card_state : Krobot_types.card_state React.signal; } type t = { @@ -106,7 +106,7 @@ let bus = lazy( | None -> try_lwt lwt () = Log.info "connecting to the krobot with the local krobot bus" in - OBus_bus.of_addresses (OBus_address.of_string Config.bus_address) + OBus_bus.of_addresses (OBus_address.of_string Krobot_config.bus_address) with exn -> lwt () = Log.exn exn "failed to connect to the local krobot bus" in fail exn @@ -125,9 +125,9 @@ let create ?peer () = and range_finders = make_dev_signal peer "RangeFinders" "Get" "Value" <:obus_type< int array >> (Array.make 8 0) and inhibited_forward_until = make_dev_signal peer "Motors" "InhibitedForward" "InhibitedForwardChanged" <:obus_type< float >> 0. and inhibited_backward_until = make_dev_signal peer "Motors" "InhibitedBackward" "InhibitedBackwardChanged" <:obus_type< float >> 0. - and card_interface = make_card_signal peer "Interface" "GetState" "StateChanged" <:obus_type< Types.card_state >> `Absent - and card_sensor = make_card_signal peer "Sensor" "GetState" "StateChanged" <:obus_type< Types.card_state >> `Absent - and card_motor = make_card_signal peer "Motor" "GetState" "StateChanged" <:obus_type< Types.card_state >> `Absent in + and card_interface = make_card_signal peer "Interface" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent + and card_sensor = make_card_signal peer "Sensor" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent + and card_motor = make_card_signal peer "Motor" "GetState" "StateChanged" <:obus_type< Krobot_types.card_state >> `Absent in return { peer = peer; compass = compass; @@ -175,7 +175,7 @@ OP_method CalibrationContinue : unit module AX12 = Make_device(struct let name = "AX12" end) OP_interface(AX12) "fr.krobot.Device.AX12" -OP_method SetAX12 : Types.ax12_action structure list -> unit +OP_method SetAX12 : Krobot_types.ax12_action structure list -> unit OP_method GripUp : unit OP_method GripDown : unit @@ -186,10 +186,10 @@ OP_method GripDown : unit module Motors = Make_device(struct let name = "Motors" end) OP_interface(Motors) "fr.krobot.Device.Motors" -OP_method Turn : angle : int -> velocity : int -> acceleration : int -> Types.move_result -OP_method Move : distance : int -> velocity : int -> acceleration : int -> Types.move_result -OP_method Goto : x : int -> y : int -> velocity : int -> acceleration : int -> mode : Types.goto_mode -> bypass_distance : int -> Types.move_result -OP_method StopMotors : mode : Types.stop_mode -> unit +OP_method Turn : angle : int -> velocity : int -> acceleration : int -> Krobot_types.move_result +OP_method Move : distance : int -> velocity : int -> acceleration : int -> Krobot_types.move_result +OP_method Goto : x : int -> y : int -> velocity : int -> acceleration : int -> mode : Krobot_types.goto_mode -> bypass_distance : int -> Krobot_types.move_result +OP_method StopMotors : mode : Krobot_types.stop_mode -> unit OP_method SetVelocities : velocities : int * int -> accelerations : int * int -> duration : float -> unit OP_method InhibitForward : float -> unit OP_method InhibitBackward : float -> unit diff --git a/PC_Mainboard/lib_krobot/krobot.mli b/PC_Mainboard/lib_krobot/krobot.mli index 19b8c34..b5a56bf 100644 --- a/PC_Mainboard/lib_krobot/krobot.mli +++ b/PC_Mainboard/lib_krobot/krobot.mli @@ -64,7 +64,7 @@ val calibration_stop : t -> unit Lwt.t (** {6 AX12s} *) -val set_ax12 : t -> Types.ax12_action list -> unit Lwt.t +val set_ax12 : t -> Krobot_types.ax12_action list -> unit Lwt.t (** [set_ax12 krobot actions] move all given ax12 at the same time. *) @@ -76,16 +76,16 @@ val grip_down : t -> unit Lwt.t val motors_state : t -> string Lwt.t (** Return a string describing the current state of motors *) -val turn : t -> angle : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t -val move : t -> distance : int -> velocity : int -> acceleration : int -> Types.move_result Lwt.t +val turn : t -> angle : int -> velocity : int -> acceleration : int -> Krobot_types.move_result Lwt.t +val move : t -> distance : int -> velocity : int -> acceleration : int -> Krobot_types.move_result Lwt.t val goto : t -> x : int -> y : int -> velocity : int -> acceleration : int -> - mode : Types.goto_mode -> - bypass_distance : int -> Types.move_result Lwt.t + mode : Krobot_types.goto_mode -> + bypass_distance : int -> Krobot_types.move_result Lwt.t -val stop_motors : t -> mode : Types.stop_mode -> unit Lwt.t +val stop_motors : t -> mode : Krobot_types.stop_mode -> unit Lwt.t (** [stop_motorw t mode] stop the two motors. *) val set_velocities : t -> @@ -121,7 +121,7 @@ module Card : sig val name : card -> string (** Returns the name of a card *) - val state : t * card -> Types.card_state React.signal + val state : t * card -> Krobot_types.card_state React.signal (** Returns the status of one of the card of the krobot *) val bootloader : t * card -> unit Lwt.t diff --git a/PC_Mainboard/myocamlbuild.ml b/PC_Mainboard/myocamlbuild.ml index 3cedd3f..578fb43 100644 --- a/PC_Mainboard/myocamlbuild.ml +++ b/PC_Mainboard/myocamlbuild.ml @@ -61,8 +61,9 @@ let targets = List.filter_opt (function (true, target) -> Some target | (false, (have_lwt_unix && have_usb, "card_tools/dump_memory.best"); (* Krobot client library *) - (have_lwt_unix && have_obus, "lib_krobot/krobot.cma"); - (have_lwt_unix && have_obus && have_native, "lib_krobot/krobot.cmxa"); + (have_lwt_unix && have_obus, "krobot.cma"); + (have_lwt_unix && have_obus && have_native, "krobot.cmxa"); + (have_lwt_unix && have_obus && have_native, "krobot.cmxs"); (* Tools *) (have_lwt_unix && have_obus, "tools/forward_dbus.best"); @@ -148,6 +149,10 @@ let _ = | After_rules -> + rule "shared libraries (cmxs)" + ~dep:"%.cmxa" ~prod:"%.cmxs" + (fun env _ -> Cmd(S[!(Options.ocamlopt); A"-shared"; A"-linkall"; A(env "%.cmxa"); A"-o"; A(env "%.cmxs")])); + (* +---------------------------------------------------------+ | Autogenerated files | +---------------------------------------------------------+ *) diff --git a/PC_Mainboard/tools/forward_dbus.ml b/PC_Mainboard/tools/forward_dbus.ml index 7c85c84..8685578 100644 --- a/PC_Mainboard/tools/forward_dbus.ml +++ b/PC_Mainboard/tools/forward_dbus.ml @@ -15,7 +15,7 @@ let rec copy ta tb = copy ta tb lwt () = - let addresses = OBus_address.of_string Config.bus_address in + let addresses = OBus_address.of_string Krobot_config.bus_address in lwt (_, ta) = OBus_transport.of_addresses addresses in let tb = OBus_transport.make diff --git a/PC_Mainboard/www/krobot.ml b/PC_Mainboard/www/krobot.ml index 2636c6e..5fe7dae 100644 --- a/PC_Mainboard/www/krobot.ml +++ b/PC_Mainboard/www/krobot.ml @@ -65,7 +65,7 @@ let bottom sp = ( let side_menu cur_menu sp = Eliom_tools.menu ~classe:["mainmenu"] (serv_home, [pcdata "Home"]) [ - (serv_config, [pcdata "Config"]); + (serv_config, [pcdata "Krobot_config"]); (serv_sensors, [pcdata "Sensors"]); (serv_control, [pcdata "Control"]) ] ~service:cur_menu ~sp @@ -227,7 +227,7 @@ let config_handler sp posted = div_with_id "page" [ div_with_id "content" [ h1 [pcdata "Mobile Robot Platform"]; - h2 [pcdata "Config"]; + h2 [pcdata "Krobot_config"]; (res); (form); (bottom sp) hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 22:09:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 19398dd4d385b2ce50f474cb573743d6ec7f70a6 (commit) from 34e5436fb905872556fa9d0c2f83be2c5764f9d6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 19398dd4d385b2ce50f474cb573743d6ec7f70a6 Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 23:06:27 2010 +0100 send a string in the lcd.send command ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/clients/script_commands.ml b/PC_Mainboard/clients/script_commands.ml index b7369a4..5741602 100644 --- a/PC_Mainboard/clients/script_commands.ml +++ b/PC_Mainboard/clients/script_commands.ml @@ -18,6 +18,7 @@ type logger = Lwt_term.styled_text -> unit Lwt.t type arg_type = | Int | Float + | String | Keyword of string list type command = { @@ -130,6 +131,13 @@ let int ?default name = { a_default = default; } +let string ?default name = { + a_name = name; + a_type = String; + a_cast = (fun str -> str); + a_default = default; +} + let float ?default name = { a_name = name; a_type = Float; diff --git a/PC_Mainboard/generators/gen_script_commands.ml b/PC_Mainboard/generators/gen_script_commands.ml index 8e48838..8ee4f3e 100644 --- a/PC_Mainboard/generators/gen_script_commands.ml +++ b/PC_Mainboard/generators/gen_script_commands.ml @@ -20,6 +20,8 @@ let print_common is_card path caml_path name args repl = List.iter (function | Arg(name, { caml_type = "int" }) -> printf " (int \"%s\")" name + | Arg(name, { caml_type = "string" }) -> + printf " (string \"%s\")" name | Arg(name, { caml_type = "bool" }) -> printf " (keyword \"%s\" [(\"false\", false); (\"true\", true)])" name | Arg(name, { caml_type = caml_type }) -> diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index a730840..d260e89 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -584,7 +584,7 @@ let interfaces = [ command ~name:"send" ~code:PcInterface.cmd_send - ~args:[Arg("cmd", uint8)] + ~args:[Arg("message", string)] (); ]); ] hooks/post-receive -- krobot |
From: Xavier L. <Ba...@us...> - 2010-03-07 21:10:42
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 34e5436fb905872556fa9d0c2f83be2c5764f9d6 (commit) from c0fdebb20f076b97225e3f4ceeb12a25e8895a12 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 34e5436fb905872556fa9d0c2f83be2c5764f9d6 Author: Xavier Lagorce <Xav...@cr...> Date: Sun Mar 7 22:09:57 2010 +0100 Update of the binary firmware for the Robot Interface card. This firmwares adds the AX12_RESET USB call ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof index 8a3a01b..afa6b37 100644 Binary files a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof and b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.cof differ diff --git a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex index 5e4fbd6..6f525bf 100644 --- a/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex +++ b/USB_Module/Robot_Interface/Firmware/output/Robot_Interface.hex @@ -1,53 +1,53 @@ :020000040000FA -:06000000DEEF1EF012000D +:06000000E7EF1EF0120004 :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:06080000DEEF1EF0120005 +:06080000E7EF1EF01200FC :0608080034EF04F01200C1 :0608180074EF04F0120071 -:06082A000500523E000033 -:100830008600000024000000313E0000CB000000D4 -:1008400021000000293E0000130100000800000004 -:10085000193E0000EC00000010000000103E0000F7 +:06082A000500643E000021 +:100830008600000024000000433E0000CB000000C2 +:10084000210000003B3E00001301000008000000F2 +:100850002B3E0000EC00000010000000223E0000D3 :080860000A010000090000007C -:0808680013EC0CF000EE22F08D +:080868001CEC0CF000EE22F084 :10087000140EE80403E3EECFE4FFFBD700EE00F034 -:10088000220EE80403E3EECFE4FFFBD73BEC0CF0D1 -:10089000A1A203D0E0EC18F0A1929EAA03D01FEC15 -:1008A00012F09E9A9EA003D09CEC17F09E9052EC02 +:10088000220EE80403E3EECFE4FFFBD744EC0CF0C8 +:10089000A1A203D0E9EC18F0A1929EAA03D028EC03 +:1008A00012F09E9A9EA003D0A5EC17F09E905BECF0 :1008B0000CF002E2E16AE552E16EE552E7CFD9FFC2 :1008C000E55200EE21F0220EE80403E3E5CFEDFF50 :1008D000FBD700EE35F0140EE80403E3E5CFEDFF9F -:1008E000FBD728EC0CF01100D8CFE4FFE0CFE4FFF9 -:1008F000E46E13EC0CF000EE22F0140EE80403E3B7 +:1008E000FBD731EC0CF01100D8CFE4FFE0CFE4FFF0 +:1008F000E46E1CEC0CF000EE22F0140EE80403E3AE :10090000EECFE4FFFBD700EE00F0220EE80403E395 -:10091000EECFE4FFFBD73BEC0CF0F2A403D083EC6A -:1009200017F0F29452EC0CF002E2E16AE552E16E4B +:10091000EECFE4FFFBD744EC0CF0F2A403D08CEC58 +:1009200017F0F2945BEC0CF002E2E16AE552E16E42 :10093000E552E7CFD9FFE55200EE21F0220EE804A0 :1009400003E3E5CFEDFFFBD700EE35F0140EE8042E -:1009500003E3E5CFEDFFFBD728EC0CF0E550E5CF46 -:10096000E0FFE5CFD8FF100004D8A2EC0CF063D86C -:10097000FCD70F0EC11202D86CEF0CF067EC0CF034 -:10098000E652DDEC0BF00001FC6F070EFC5D10E1A0 -:10099000E66A74EC1CF0E552DF6E000EDF805AEC64 -:1009A0000CF0E66AB0EC1EF0E552DF705AEC0CF089 +:1009500003E3E5CFEDFFFBD731EC0CF0E550E5CF3D +:10096000E0FFE5CFD8FF100004D8ABEC0CF063D863 +:10097000FCD70F0EC11202D875EF0CF070EC0CF022 +:10098000E652E6EC0BF00001FC6F070EFC5D10E197 +:10099000E66A7DEC1CF0E552DF6E000EDF8063EC52 +:1009A0000CF0E66AB9EC1EF0E552DF7063EC0CF077 :1009B00093809382948C948ED08EF28EF28C770EEC -:1009C000C86E06EC0CF062EC0CF062EC0CF062EC21 -:1009D0000CF04CEC0CF0430E45EC0CF03F0E8A167C +:1009C000C86E0FEC0CF06BEC0CF06BEC0CF06BECFD +:1009D0000CF055EC0CF0430E4EEC0CF03F0E8A166A :1009E00093160101136B146B156B166B010E176FC9 -:1009F00012EC12F0E30E951692929492A082FD0EE4 -:100A0000E66E38EC1DF0E552000EE66EE66AD7ECB5 +:1009F0001BEC12F0E30E951692929492A082FD0EDB +:100A0000E66E41EC1DF0E552000EE66EE66AE0ECA3 :100A10001DF0E552E55283948396839880928292EA -:100A2000E66A45EC17F0E552FCEC19F0E552E552A8 +:100A2000E66A4EEC17F0E55205EC1AF0E552E55295 :100A3000E7CFD9FF1200D9CFE6FFE1CFD9FF170EDC -:100A4000E126160EDB6A0101175102E01AEC0BF0E9 -:100A5000200E0001605D03E36D50020B02E010EF19 -:100A60000BF0160EDB5036E045EC18F0000932E0D2 +:100A4000E126160EDB6A0101175102E023EC0BF0E0 +:100A5000200E0001605D03E36D50020B02E019EF10 +:100A60000BF0160EDB5036E04EEC18F0000932E0C9 :100A700001011551161102E1000E08D015C1E9FF60 :100A800016C1EAFFEF50800B01E0010E000922E1E0 :100A90000501406B01011851182B0501416F05013B :100AA0000C0E426F0501436B400EE66E400EE66E83 -:100AB000050EE66E010EE66E010EE66EBDEC10F060 +:100AB000050EE66E010EE66E010EE66EC6EC10F057 :100AC000006E050EE15E0050F3CF15F1F4CF16F184 :100AD000160EDB6A01011551161102E1000E08D055 :100AE00015C1E9FF16C1EAFFEF50800B01E0010ECE @@ -56,42 +56,42 @@ :100B1000182B0501416F0501040E426F0001EB51D6 :100B2000EA6ACB0FE96E000EEA22EFCF43F5400EE2 :100B3000E66E400EE66E050EE66E010EE66E010EE6 -:100B4000E66EBDEC10F0006E050EE15E0050F3CFD6 +:100B4000E66EC6EC10F0006E050EE15E0050F3CFCD :100B500015F1F4CF16F10001EB51EA6ACB0FE96E03 :100B6000000EEA22EF6A0001EB51000803E20001E7 :100B7000EB0707D00001EA51000803E200011F0E55 :100B8000EB6F01011351141102E1000E08D013C1E3 :100B9000E9FF14C1EAFFEF50800B01E0010E0009EC -:100BA00002E010EF0BF005010251070A02E176EFB7 -:100BB0000AF0020A02E148EF0AF00E0A02E1EFEF42 +:100BA00002E019EF0BF005010251070A02E17FEFA5 +:100BB0000AF0020A02E151EF0AF00E0A02E1F8EF30 :100BC00009F0020A01E10FD20F0A01E164D1040A1F -:100BD0001AE0030A07E0010A02E0CFEF0AF0FF0083 -:100BE00010EF0BF0E66A74EC1CF0E552DF6E000EBD -:100BF000DB80DFCFE6FFE66A54EC1CF0E552E552FD -:100C0000FF0010EF0BF001011551161102E1000E6B +:100BD0001AE0030A07E0010A02E0D8EF0AF0FF007A +:100BE00019EF0BF0E66A7DEC1CF0E552DF6E000EAB +:100BF000DB80DFCFE6FFE66A5DEC1CF0E552E552F4 +:100C0000FF0019EF0BF001011551161102E1000E62 :100C100008D015C1E9FF16C1EAFFEF50800B01E0D3 :100C2000010E000901E036D100C540F50501416B18 :100C30000501030E426F0501436B050108510A0AC5 :100C400001E17ED00E0A71E0070A64E0010A20E0AB :100C5000030A06E0010A01E0F3D0FCC048F5F3D036 -:100C60000501486B890E006E3B0E016E026A00C0E2 +:100C60000501486B9B0E006E3B0E016E026A00C0D0 :100C7000E6FF01C0E6FF02C0E6FF480EE66E050E85 -:100C8000E66E38EC1CF0036E050EE15E0350DBD01F -:100C90000501486B7D0E006E3B0E016E026A00C0BE +:100C8000E66E41EC1CF0036E050EE15E0350DBD016 +:100C90000501486B8F0E006E3B0E016E026A00C0AC :100CA000E6FF01C0E6FF02C0E6FF480EE66E050E55 -:100CB000E66E38EC1CF0036E050EE15E03507B0E11 +:100CB000E66E41EC1CF0036E050EE15E03508D0EF6 :100CC000006E3B0E016E026A00C0E6FF01C0E6FF47 -:100CD00002C0E6FF480EE66E050EE66E38EC1CF02C -:100CE000036E050EE15E0350720E006E3B0E016E48 +:100CD00002C0E6FF480EE66E050EE66E41EC1CF023 +:100CE000036E050EE15E0350840E006E3B0E016E36 :100CF000026A00C0E6FF01C0E6FF02C0E6FF480E40 -:100D0000E66E050EE66E38EC1CF0036E050EE15E35 +:100D0000E66E050EE66E41EC1CF0036E050EE15E2C :100D1000035099D092CF48F593CF49F594CF4AF537 :100D200095CF4BF596CF4CF58ED080CF48F581CF3F :100D300049F582CF4AF583CF4BF584CF4CF583D06C -:100D4000800EE66E080EE66E62EC1EF0E552E5528D -:100D5000C580F7EC1EF0C00EE66E9BEC1DF0E55270 -:100D6000E66A9BEC1DF0E552C582F7EC1EF0C10E61 -:100D7000E66E9BEC1DF0E552010EDB6A020EDB6AAB +:100D4000800EE66E080EE66E6BEC1EF0E552E55284 +:100D5000C58000EC1FF0C00EE66EA4EC1DF0E5525D +:100D6000E66AA4EC1DF0E552C58200EC1FF0C10E4E +:100D7000E66EA4EC1DF0E552010EDB6A020EDB6AA2 :100D8000010EDBCF00F0020EDBCF01F0040E005CA1 :100D9000000E01584FE2010EF36E150EF3CFDBFF8C :100DA000C586130EDB6A140EDB6A130EDBCF00F070 @@ -99,17 +99,17 @@ :100DC000C7A00FD0010EDBCFE9FF020EDBCFEAFF99 :100DD000480EE926050EEA22C9CFEFFF150EDB6AA1 :100DE00006D0130EDB2A140E01E3DB2ADED7150E24 -:100DF000DB5008E00501080E436FC58AC588F7EC93 -:100E00001EF018D0010EDBCF00F0020EDBCF01F098 +:100DF000DB5008E00501080E436FC58AC58800EC8A +:100E00001FF018D0010EDBCF00F0020EDBCF01F097 :100E1000030E005C000E015803E2C59AC58802D09B -:100E2000C58AC588F7EC1EF0010EDB2A020E01E32D -:100E3000DB2AA6D7C584F7EC1EF005EC1FF003D023 +:100E2000C58AC58800EC1FF0010EDB2A020E01E323 +:100E3000DB2AA6D7C58400EC1FF00EEC1FF003D010 :100E40000501020E436F400EE66E400EE66E050E83 -:100E5000E66E010EE66E010EE66EBDEC10F0006E61 +:100E5000E66E010EE66E010EE66EC6EC10F0006E58 :100E6000050EE15E0050F3CF15F1F4CF16F1400E00 :100E7000E66E000EE66E050EE66EE66A010EE66EA2 -:100E8000BDEC10F0006E050EE15E0050F3CF13F1E3 -:100E9000F4CF14F1C5D305010851050A54E0010A45 +:100E8000C6EC10F0006E050EE15E0050F3CF13F1DA +:100E9000F4CF14F1CED305010851050A54E0010A3C :100EA00049E0070A37E0010A25E0030A13E0010AD6 :100EB00001E080D005010951921205010A519312F7 :100EC00005010B51941205010C51951205010D51AC @@ -121,795 +121,795 @@ :100F200005010B518B1205010C518C1205010D515D :100F30008D1245D00501095101010F1B05010A5110 :100F400001010F133CD0050109A107D00AC5E6FF36 -:100F5000E66A78EC19F0E552E552050109A308D0DC -:100F60000BC5E6FF010EE66E78EC19F0E552E5528E -:100F7000050109A508D00CC5E6FF020EE66E78EC67 +:100F5000E66A81EC19F0E552E552050109A308D0D3 +:100F60000BC5E6FF010EE66E81EC19F0E552E55285 +:100F7000050109A508D00CC5E6FF020EE66E81EC5E :100F800019F0E552E552050109A708D00DC5E6FFA5 -:100F9000030EE66E78EC19F0E552E552050109A959 -:100FA00008D00EC5E6FF040EE66E78EC19F0E552A7 -:100FB000E55205D0030EE66E7DEC1EF0E552400EC4 +:100F9000030EE66E81EC19F0E552E552050109A950 +:100FA00008D00EC5E6FF040EE66E81EC19F0E5529E +:100FB000E55205D0030EE66E86EC1EF0E552400EBB :100FC000E66E000EE66E050EE66EE66A010EE66E51 -:100FD000BDEC10F0006E050EE15E0050F3CF13F192 -:100FE000F4CF14F11DD301011551161102E1000EC9 +:100FD000C6EC10F0006E050EE15E0050F3CF13F189 +:100FE000F4CF14F126D301011551161102E1000EC0 :100FF00008D015C1E9FF16C1EAFFEF50800B01E0F0 -:10100000010E000901E0EAD100C540F50501416B80 -:101010000501030E426F0501436B05010851100ADB -:1010200001E1ACD1190A01E183D1010A01E1E3D068 -:101030000F0A01E1C5D0010A01E1AAD0030A01E1CA -:101040008FD0010A6AE0070A42E0010A11E0030AB0 -:1010500001E09AD105010A51E66EE66A09C5E6FF8C -:1010600020EC13F0E552E552E5520501486F8FD1AF -:1010700005010B051BE105010C51E66EE66A0AC588 -:10108000E6FF09C5E6FFDDEC13F0E552E552E55257 -:10109000E5520F0EF3CFDBFF100EF4CFDBFF100E87 -:1010A000DBCF48F50F0EDBCF49F510D005010C5111 -:1010B000E66EE66A0AC5E6FF09C5E6FF7AEC13F0BC -:1010C000E552E552E552E5520501486F60D1050150 -:1010D0000B0517E1100E0CC5DBFF0F0E0DC5DBFF76 -:1010E0000F0EDBCFE6FF100EDBCFE6FF0AC5E6FFF3 -:1010F00009C5E6FF73EC13F0E552E552E552E552FF -:101100000BD00CC5E6FF0AC5E6FF09C5E6FF6FEC8C -:1011100013F0E552E552E5523AD1100E0AC5DBFF55 -:101120000F0E0BC5DBFF120E0CC5DBFF110E0DC53C -:10113000DBFF0EC5E6FF110EDBCFE6FF120EDBCFA5 -:10114000E6FF0F0EDBCFE6FF100EDBCFE6FF09C593 -:10115000E6FF5EEC14F0006E060EE15E005017D163 -:1011600005010A51E66EE66A09C5E6FF81EC14F056 -:10117000E552E552E5520F0EF3CFDBFF100EF4CF30 -:10118000DBFF100EDBCF48F50F0EDBCF49F5FFD0AC -:1011900005010A51E66EE66A09C5E6FF84EC14F023 -:1011A000E552E552E5520F0EF3CFDBFF100EF4CF00 -:1011B000DBFF100EDBCF48F50F0EDBCF49F5E7D094 -:1011C00005010A51E66EE66A280EE66E09C5E6FFDD -:1011D000DDEC13F0E552E552E552E5520F0EF3CF88 -:1011E000DBFF100EF4CFDBFF100EDBCF48F50F0E48 -:1011F000DBCF49F5CCD005010A51E66EE66A09C598 -:10120000E6FF81EC14F0E552E552E5520F0EF3CF04 -:10121000DBFF100EF4CFDBFF100EDBCF48F50F0E17 -:10122000DBCF49F505010A51E66EE66A09C5E6FF1E -:1012300084EC14F0E552E552E5520F0EF3CFDBFFDC -:10124000100EF4CFDBFF100EDBCF4AF50F0EDBCF15 -:101250004BF505010A51E66EE66A280EE66E09C5F1 -:10126000E6FFDDEC13F0E552E552E552E5520F0ED4 -:10127000F3CFDBFF100EF4CFDBFF100EDBCF4CF50E -:101280000F0EDBCF4DF505010A51E66EE66A2A0E18 -:10129000E66E09C5E6FF7AEC13F0E552E552E55239 -:1012A000E55205014E6F05010A51E66EE66A2B0E06 -:1012B000E66E09C5E6FF7AEC13F0E552E552E55219 -:1012C000E55205014F6F05010A51E66EE66A060E0A -:1012D000E66E09C5E6FFDDEC13F0E552E552E55296 -:1012E000E5520F0EF3CFDBFF100EF4CFDBFF100E35 -:1012F000DBCF50F50F0EDBCF51F505010A51E66E3D -:10130000E66A080EE66E09C5E6FFDDEC13F0E5526D -:10131000E552E552E5520F0EF3CFDBFF100EF4CF8E -:10132000DBFF100EDBCF52F50F0EDBCF53F52FD0C6 -:1013300005010B0517E1100E0CC5DBFF0F0E0DC5E7 -:10134000DBFF0F0EDBCFE6FF100EDBCFE6FF0AC59B -:10135000E6FF09C5E6FF51EC14F0E552E552E5520F -:10136000E5520BD00CC5E6FF0AC5E6FF09C5E6FF4E -:101370004DEC14F0E552E552E55209D009C5E6FFFF -:1013800059EC14F0E55203D00501010E436F400EF5 -:10139000E66E400EE66E050EE66E010EE66E010E7E -:1013A000E66EBDEC10F0006E050EE15E0050F3CF6E -:1013B00015F1F4CF16F1400EE66E000EE66E050E46 -:1013C000E66EE66A010EE66EBDEC10F0006E050EEC -:1013D000E15E0050F3CF13F1F4CF14F121D10501F8 -:1013E0000851030A11E0010A09E0030A01E037D0BD -:1013F00009C5E6FFB5EC17F0E55236D009C5E6FFA2 -:10140000C3EC17F0E55230D00E0E0CC5DBFF0D0E0D -:101410000DC5DBFF0C0E0EC5DBFF0B0E0FC5DBFF92 -:10142000D9500B0FE96EDACFEAFFEECFE6FFEECF31 -:10143000E6FFEECFE6FFEFCFE6FF0BC5E6FF0AC5FE -:10144000E6FF09C5E6FFD1EC17F0006E070EE15E7E -:101450000050010EF36E160EF3CFDBFF05D0010E28 -:10146000E66E7DEC1EF0E552400EE66E000EE66E76 -:10147000050EE66EE66A010EE66EBDEC10F0006E3B -:10148000050EE15E0050F3CF13F1F4CF14F1C8D094 -:10149000800EE66E080EE66E62EC1EF0E552E55236 -:1014A000C580F7EC1EF0E66A9BEC1DF0E552080ED5 -:1014B000E66E050EE66EE3EC1BF0E552E552C584E0 -:1014C00005EC1FF0400EE66E000EE66E050EE66EB1 -:1014D000E66A010EE66EBDEC10F0006E050EE15EF0 -:1014E0000050F3CF13F1F4CF14F19AD04F0EAB1696 -:1014F000AC9ACF0E9D16020EE66EE66A7C0EE66E84 -:101500009EEC1BF0E552E552E552040EE66EE66AEB -:101510000EEC13F0E552E552100EE66E010EE66E8B -:101520000EEC13F0E552E552020EE66E030EE66E87 -:10153000010EE66E89EC12F0E552E552E552040E1A -:10154000E66EE66A0EEC13F0E552E552100EE66E1A -:10155000010EE66E0EEC13F0E552E552020EE66E59 -:10156000030EE66E010EE66E89EC12F0E552E552CE -:10157000E55212EC12F0400EE66E000EE66E050E1D -:10158000E66EE66A010EE66EBDEC10F0006E050E2A -:10159000E15E0050F3CF13F1F4CF14F141D001011B -:1015A0001551161102E1000E08D015C1E9FF16C150 -:1015B000EAFFEF50800B01E0010E000931E100C5A8 -:1015C00040F50501416B0501030E426F0501010E57 -:1015D000436F400EE66E400EE66E050EE66E010E9F -:1015E000E66E010EE66EBDEC10F0006E050EE15EDB -:1015F0000050F3CF15F1F4CF16F1400EE66E000E59 -:10160000E66E050EE66EE66A010EE66EBDEC10F0C3 -:10161000006E050EE15E0050F3CF13F1F4CF14F12C -:10162000170EE15C02E2E16AE552E16EE552E7CFB6 -:10163000D9FF1200010119511A1104E1100E196F9E -:10164000270E1A6F1907000E1A5B6DA207D01951E9 -:101650001A112EE18A7C8ABC13D027D00001605178 -:1016600002E18A9C22D0600502E18A8C09D0020E38 -:10167000605D02E18A8C19D0040E605D03E18A9CF2 -:101680008A8E1200100E605D06E1010119511A11D7 -:101690000FE18A7C0AD0200E605D0AE10101195138 -:1016A0001A1106E18A7C8AAC02D08A9E12008A8EC8 -:1016B0001200ACD8F1D8620E45EF0CF0A7D8ECD8E8 -:1016C000420E45EF0CF01200120090EF1AF01200DB -:1016D0001E0EE66E010EE66E8BEC10F0E552E55242 -:1016E000400EE66E000EE66E050EE66EE66A010E30 -:1016F000E66EBDEC10F0006E050EE15E0050F3CF1B -:1017000013F1F4CF14F112006D840001080EFD6F87 -:10171000070EFE6FFD07000EFE5BFD51FE11FAE1A4 -:101720006D941200D9CFE6FFE1CFD9FFFD0EDBCFDC -:101730002AF0FE0EDBCF2BF0010E2A1801E12B5010 -:1017400033E0E8682A1802E1E8682B182BE0030E62 -:101750002A1801E12B5024E0040E2A1801E12B5035 -:101760001DE0020E2A1801E12B5016E0170E2A1870 -:1017700001E12B500FE0160E2A1801E12B5008E072 -:10178000150E2A1801E12B5001E010D0A1DF0FD077 -:101790009EDF0DD09ADF0BD096DF09D08ADF07D00D -:1017A0008DDF05D091DF03D0000001D000D0010E05 -:1017B00000D0E552E7CFD9FF120089D8E652D0B267 -:1017C00002D0010E15D0D0B802D0020E11D0D0B088 -:1017D00002D0030E0DD0D0B602D0040E09D0FCAE5C -:1017E00002D0050E05D0FCAC02D0060E01D0070ECB -:1017F000DF6ED088D086D084D082D080FC9EFC9CC6 -:10180000DF50E552E552E7CFD9FF1200800EE66EB9 -:10181000080EE66E62EC1EF0E552E552C580F7EC6C -:101820001EF062EF0CF0DACFE4FFE2CFDAFFE9CF8F -:10183000E4FFEACFE4FFF6CFE4FFF7CFE4FFF5CF14 -:10184000E4FFF3CFE4FFF4CFE4FFFACFE4FF1200AC -:10185000E5CFFAFFE5CFF4FFE5CFF3FFE5CFF5FFE6 -:10186000E5CFF7FFE5CFF6FFE5CFEAFFE5CFE9FFEC -:10187000E5CFDAFF1200E6522AD8020EE126F35035 -:10188000DF6E010EF4CFDBFF1200E66E9BEC1DF065 -:10189000E552C58405EF1FF01B0EE66E9BEC1DF0B4 -:1018A000E5521200DF50F36E010EDB50F46E020EB3 -:1018B000E15C1200DFCFE6FFE66A54EC1CF0E55273 -:1018C000E5521200E66A9BEC1DF0E5521200D9CFFA -:0818D000E6FFE1CFD9FF120091 -:0818D80064EC11F06A6A686A11 -:1018E00097EC11F06D8C6E6A47EC11F06D9CDF6A1D -:1018F00078EC11F010E2DF50040DF3CFE9FFF4CFE4 -:10190000EAFF000EE926040EEA22EE6AEE6AEE6AAB -:10191000EE6ADF2AEDD7160E706E68A604D0030EAD -:101920000DEC11F0FAD70001736B786B796B7A6B61 -:101930006D98080E6B6F040E6C6F616B606BE552F7 -:1019400022EF11F064EC11F0000160510BE16D6ABF -:10195000696A97EC11F06DB602D06D86FCD7000174 -:10196000010E606F600508E16DBA06D0686A696AA9 -:1019700069806988020E606F6850040B07E0695047 -:10198000040B04E0020E0DEC11F089D86DB247D0C3 -:101990006850010B14E06950010B11E09DDF00015C -:1019A000040E606F0401200E026F040E036F080E18 -:1019B000016F006B8C0E0013E66AD6EC11F06850D4 -:1019C000100B07E06950100B04E060D8040E0DEC1A -:1019D00011F06850400B0BE06950400B08E09EECA2 -:1019E00011F0020E15EC11F0060E0DEC11F068501E -:1019F000200B04E06950200B01E035D86850020B41 -:101A00000AE06950020B07E09EEC11F0E668E66818 -:101A1000F6EC11F06A6A040E0001605D02E2A19A20 -:101A20001FD069A61CD0DF6A040EDF5C18E268A62E -:101A300016D06CCF80F0030E0DEC11F0780E000183 -:101A4000801502E138D809D0000EE66EE66A800EF5 -:101A5000E66E000EE66E010EE8DBDF2AE5D7A19AFE -:101A6000E55222EF11F070A00ED030EC11F0EF50E3 -:101A7000800808E1D5DBEF50840804E130EC11F078 -:101A80008C0EEF6E7090050E0DEF11F06984040E50 -:101A9000C4DB6D8250EC11F0040E15EF11F050EC28 -:101AA00011F0030EC2DB6D92699468A403D0020E9C -:101AB000B4DBFBD7120064EC11F0FD0E00018015C1 -:101AC0003DE17E0E8015E8407F0B040DF3CF63F0FF -:101AD000F4CF64F0000E6327040E642363C065F046 -:101AE00064C066F06575BCDBEF503C0BE842E84231 -:101AF0000D0822E1B5DBCDEC11F0EECF00F0EFCF19 -:101B000001F0280E001816E1040E011813E107EC8D -:101B100012F0DF6AEDDB0EE2DF5080EC11F0DF50F7 -:101B2000EA6A200FE96E040EEA22E552E750EF6EF2 -:101B3000DF2AF0D70AD807D01AD805D0FD0E8015B5 -:101B4000040801E122D8E5527DD36ADBEF50800B17 -:101B500002E066DBEF6A00016F6B706B746B756B94 -:101B6000736B64D89DDB170E60DB4BEF0FF0020E3A -:101B70000001705D02E1D8EF0FF034D8000181510F -:101B800002E1D2EF11F0816B12009EDB49DBEF50D6 -:101B9000400B01E0010EDF6E00016B75080E605D09 -:101BA00009E122C46EFF6E50000802E2100E01D05F -:101BB000040E606F700513E10BEC12F0A6D9020E53 -:101BC00000016F5D03E12CDB840E07D0DF5003E1E1 -:101BD00027DBC80E02D024DB880EEF6E01D002D8BE -:101BE000E55230D32BDB0001706B1ADBEF6A040E79 -:101BF0006B19006E6CC001F0DE6E6CC0DDFF19DB8E -:101C0000EF6A78AF0CD07B517C1107E005D07CC027 -:101C1000FAFF00017B51F96EFADF0001789F020E96 -:101C2000E15C02E2E16AE552E16E0CD3040120516D -:101C3000600BE842E842E842E842E842000901E07D -:101C4000120021510C0A45E00B0A3FE00C0A31E07A -:101C5000010A22E00B0A1EE0020A1CE0030A18E057 -:101C6000080A10E0010A0CE00F0A08E0030A01E08C -:101C700012000001738F080E606F1200CBEF0EF0A0 -:101C800034EF10F00001610E716F000E726F0CD016 -:101C90000CEF0FF06AEF0EF024510001716F726BC0 -:101CA000620E7127000E72237381010E746F738FA1 -:101CB00012000001738F04012451EA6A620FE96E79 -:101CC000000EEA2222C4EFFF1200EADA160E15EF28 -:101CD00011F012007EDB040EE1260401220510E162 -:101CE00020511F0B00090CE10001738F030E04014A -:101CF000215D04E10001010E7F6F02D000017F6BC6 -:101D00000401225141E120511F0B02083DE1245101 -:101D10000F0B000939E00001738F040124BF05D0C7 -:101D2000A4DA670EE926000E04D09FDA6B0EE926CE -:101D3000000ED2DA030E215D03E17BDA840E23D09C -:101D400024510F0B016A700F006E0F0E0122020E5C -:101D500000C0DBFF030E01C0DBFF020EDBCFE9FF9B -:101D6000030EDBCFEAFFEE90ED5224AF06D061DA2E -:101D7000EF6ADF745EDA400E06D05BDA880EEF6E33 -:101D8000DF7457DAC80EEF6E040EE15C02E2E16A1E -:101D9000E552E16E57D2800E0401205D3CE1000166 -:101DA000C00E736F04012351030A1EE0010A09E00B -:101DB000030A2FE10001EE0E716F350E726F120EE5 -:101DC00022D0C3DA960EF626360EA2DA020E0001F3 -:101DD000F76A7125F66E7251F7220900F5CF74F09B -:101DE0000A00F5CF75F01200030E225D0FE2ADDAA6 -:101DF000980EF626360E8CDA71C0F6FF72C0F7FF29 -:101E00000800F5500001746F756B12000001736BD0 -:101E100012000001736B120011DA0401286B296BA8 -:101E200020511F0B020A11E0030A0CE0010A22E113 -:101E30000001738F0401288100017F051BE104016B -:101E4000288318D00001738F15D00001738F04010F -:101E500024BF05D00ADA670EE926000E04D005DAA1 -:101E60006B0EE926000E38DAE4D9EF50040B02E0DD -:101E7000010E286F000173AF07D0280E716F040E9A -:101E8000726F7381020E746F020EE15C02E2E16A0E -:101E9000E552E16ED7D16D98000173BF08D078AFDD -:101EA00002D061DA2AD07EDABBD9840E27D078BF7F -:101EB0002BD0040120AF24D0000174510401265D11 -:101EC000000175510401275904E226C474F027C4A7 -:101ED00075F01BD80001010E706FA1DA800EEF6E55 -:101EE000816BBED9EE52080EEF6E91DAB9D9840E2D -:101EF000EF6E010E816F8FDA93D9C80EEF6E12006C -:101F0000000131DAC80EEF6E120098D90001080EF8 -:101F1000745D000E75590DE274C0DEFF75C0DDFF03 -:101F20006F5102E1010E03D06F0506E1020E6F6FE3 -:101F300003D0080EDE6EDD6A73D9EF9271D9EF908F -:101F40006FD9010EDB50EF126BD9EE52DFCFEFFFEE -:101F5000000EDB50745F010EDB50755B280E7D6F49 -:101F6000040E7E6F73B10FD0F7D91BE071C0F6FF7E -:101F700072C0F7FF712B000E72230800F55096D93E -:101F8000F3E2DB06F1D7E8D90CE071C0E9FF72C0DB -:101F9000EAFF712B000E7223EF5088D9F4E2DB06C2 -:101FA000F2D7020EE15C02E2E16AE552E16E4AD14B -:101FB00045D956D9EE52EFCFDFFFDFCF00F000500A -:101FC0000001795D000E7A5903E279C0DFFF09D084 -:101FD000DF50006E016AE850795D796F01507A59DF -:101FE0007A6F010EDB6ADF50F36E010EDBCFF4FF78 -:101FF000F350F45C10E2010EDB5082D976C0E9FFA9 -:1020000077C0EAFF762B000E7723E552E750EF6E9C -:10201000010EDB2AE8D7000ED8807955000E7A55DC -:102020000DE2F4D854D91CD9EF50400B03E1EAD9A2 -:10203000C80E02D0E7D9880EEF6E0FD0F0D9840E0B -:10204000EF6E7B517C1107E005D07CC0FAFF0001E8 -:102050007B51F96EFADF0001789F020EE15C02E22B -:10206000E16AE552E16EEED00001738F10D9010EE6 -:10207000E66EE66AE66A620EE66E000EAFD922C42C -:1020800061F00401225104E10001100E606F1200A2 -:102090000001200E606F04D9150E15EF11F0CED897 -:1020A000000EDE6E040EDD6EE8D8040DF350006EF7 -:1020B000016A020E0F0B05E0D89001320032E806EB -:1020C000FBE1D89000360136D89000360136D9CFE2 -:1020D000E9FFDACFEAFF0050EE260150ED22A9D841 -:1020E000EF9EFD0EDB5002E16AD901D06DD9EA22E4 -:1020F000DECFEEFFDDCFEDFF9CD8EF9C9AD8040E2B -:10210000E926000EEA22EF8C020EE15C02E2E16AAF -:10211000E552E16E97D092D8FE0EDB50016A700F47 -:10212000006E0F0EDFD885D8FD0EDBCFEFFFDBA4EE -:1021300002D0E66AF5D8FD0EDBA203D0010EE66EF2 -:10214000EFD8020EE15C02E2E16AE552E16E7AD07C -:1021500075D8FE0EDB5005E125D962D8840EEF6EEE -:1021600005D08BD80CD989D8010F09D9020EE15CB2 -:1021700002E2E16AE552E16E65D060D8FD0EDB5007 -:1021800002E022D901D01BD9A7D853D806D9FB0E1B -:10219000DBCFEEFFFC0EDBCFEDFF4BD8EE52FA0E9D -:1021A000DBCFEFFF400E45D8E850EF16880E41D840 -:1021B000E850EF12FD0EDB5002E006D901D0FFD847 -:1021C000EA22EF74DECF00F0DDCF01F000C0F3FFB4 -:1021D00001C0F4FF020EE15C02E2E16AE552E16E49 -:1021E00031D0F7D8010EF36EFC0EDB5004E0D8902E -:1021F000F336E806FCE1F31C006EFD0EDBCFE9FFD1 -:10220000FE0EDBCFEAFF0050EF161CD0FBD8EE52DB -:10221000080EEF6EF7D8CDEF11F0E66ED6EF11F0A5 -:102220006BC0E9FF6CC0EAFF1200E66EE66AF6EFEB -:1022300011F0DECFE9FFDDCFEAFF1200CAD8020EAF -:10224000E1261200E552E7CFD9FF1200D6D802EFFF -:1022500012F0FE0EEA6ADB34FE0BEA36E96E12007B -:1022600063C0E9FF64C0EAFF120024510F0BE96E5E -:10227000EA6AD890E936EA361200FD0EDB50E8240F -:10228000026EFE0EDB50040DF35002241200000E0D -:10229000E66EE66AE66A710EE66E0F0EEEEF11F07C -:1022A000000EE66EE66AE66EE66A1200E66E7DC035 -:1022B000E9FF7EC0EAFF7D2B000E7E23E552E7504A -:1022C000EF6EDF06010E120084D8E6521200280ECF -:1022D000EE6E040EED6E1200EA22EECFDEFFEDCFC1 -:1022E000DDFF1200012200C0DEFF01C0DDFF120091 -:1022F000DF50006E016A080E005C000E01581200EB -:10230000EA6A280FE96E040EEA22EF50E66E120028 -:10231000F7220900F5CF71F00A00F5CF72F0120034 -:10232000FE0EDBCFE6FFBBDEE552E5521200160ED5 -:102330006F6E9F0E6B6E7B0E696E1200010EE66E65 -:10234000E66A000EE66EE66A12002251F66EF76A41 -:10235000D890F636F7361200D9CFE9FFDACFEAFF88 -:10236000EE50ED101200020E706F5ADFEE52EF6A5F -:1023700057DFC80EEF6E4ADFAADF02EF12F0040D3E -:10238000F3CF00F0F4CF01F0000E0026040EAADF18 -:10239000840E4FDFE850EF121200020EE926000E05 -:1023A000EA2212003CD88C0EEF6E1200680EE66E28 -:1023B0000F0EE66E16DFE552E552E552120049DFD8 -:1023C000670EE926000E120044DF6B0EE926000EB0 -:1023D0001200D9CFE6FFE1CFD9FF1200E66E1EEC66 -:1023E0001CF0006E050EE15E0050120092EC0BF046 -:1023F000006E060EE15E00501200200EEE6E040E1E -:10240000ED6E120065C0E9FF66C0EAFF120028DF2A -:10241000C4DFFDEF11F004DFC0DF67EF11F0F6DE7F -:0424200026EF11F0A2 -:0C242400959A838A190EE66EE66A7C0E1B -:10243000E66E9EEC1BF0E552E552E5521200B0DA72 -:10244000030EE126ACA2FED77CEC1DF0DF6E00018E -:10245000A85104E1865102E1010EA96FA90552E1DC -:10246000A85189DADFCFEFFF020EA85D08E2FF0E68 -:10247000DF5C05E0050E8CDA0001A96BA86B030E8A -:10248000A85D04E1030EDF240001CA6F030E000102 -:10249000A85D37E30001CA510001A85D32E18B510C -:1024A00002E0060E75DA010EDB6A020EDB6E000139 -:1024B000CA51F36E020EDBCFF4FFF350F45C0EE270 -:1024C000020EDB5058DA010EDBCFE7FFEF50E726B4 -:1024D000010EE7CFDBFF020EDB2AE9D7CA514BDA48 -:1024E000EFCF00F0010EDB1C005C05E0070E50DAB8 -:1024F0000001866B03D00001010E866FA96BA86BEB -:1025000001D0A82B030EE15C02E2E16AE552E16E24 -:1025100016D246DA220EE126010EDB68020EDB68D7 -:10252000FE0EDB50E76E030EE7CFDBFFFC0EDB5049 -:10253000020FE76E040EE7CFDBFFFD0EDB50E76E08 -:10254000050EE7CFDBFFDF6AFC0EDB50DF5C13E23A -:10255000DF50EA6AAA0FE96E000EEA22EF50E66E3B -:10256000D950010F006E050EDF24F7D9E552E75070 -:10257000EF6EDF2AE9D7210EDB6A020EDF6EFC0E5A -:10258000DB50050FDF5C0FE2D950010F006EDF500A -:10259000E4D9210EDBCFE7FFEF50E726210EE7CF8E -:1025A000DBFFDF2AECD7210EDB1CE66ED950010FD2 -:1025B000006EFC0EDB50050FD0D9E552E750EF6EF0 -:1025C000839ADF6AFC0EDB50060FDF5C11E2ACA2DF -:1025D000FED7D950010F006EDACF01F0DF500F01A6 -:1025E000BCD9EF50E66EC7EC1EF0E552DF2AEAD701 -:1025F000ACA2FED7838A0001866B220EE15C02E268 -:10260000E16AE552E16E9BD10001865112000001A2 -:10261000A751120000018651FDE01200C1D9FE0E43 -:10262000DB50EA6AAA0FE96E000EEA22FD0EDBCF4C -:10263000EFFF85D10001865102E08B511200000CA2 -:10264000D9CFE6FFE1CFD9FF020EE126E66A010EFF -:10265000E66EFE0EDBCFE6FF5CDFE552E552E552AB -:10266000DE6ADD6ADECF00F0DDCF01F0FC0EDBCFED -:1026700002F0FD0EDBCF03F00250005C0350015866 -:1026800018E20001865104E00001A76B010E16D08C -:10269000000000000000000000000000000000003A -:1026A0000000000000000000DF2A010E01E3DB2A29 -:1026B000D9D70001010EA76F000E00D0006E020EE8 -:1026C000E15C02E2E16AE552E16E0050E552E7CFDB -:1026D000D9FF120065D9E66A060E19D930D133D96F -:1026E000030E15D92CD11CD970D902E2E16AE5524A -:1026F000E16E25D1D9CFE6FFE1CFD9FF020EE12669 -:10270000FD0EDBCFE6FFE66A89DFE552E552010EFA -:10271000E66E010EE66E82DFE552E552020EE66ECF -:10272000020EE66EFE0EDBCFE6FFF3DEE552E5526B -:10273000E552DE6ADD6ADECF00F0DDCF01F00A0E81 -:102740002A6E2B6AFB0EDBCF2FF0FC0EDBCF30F0B6 -:1027500072EC16F028C002F029C003F00250005CB1 -:102760000350015819E20001865105E00001A76BF2 -:1027700000018C5116D00000000000000000000095 -:102780000000000000000000000000000000DF2A40 -:10279000010E01E3DB2ACFD70001010EA76F000E67 -:1027A00000D0006E020EE15C02E2E16AE552E16EE9 -:1027B0000050E552E7CFD9FF1200D9CFE6FFE1CFB5 -:1027C000D9FF040EE126FD0EDBCFE6FFE66A26DF29 -:1027D000E552E552020EE66E010EE66E1FDFE5528F -:1027E000E552020EE66E020EE66EFE0EDBCFE6FF4F -:1027F00090DEE552E552E552DE6ADD6ADECF00F09A -:10280000DDCF01F00A0E2A6E2B6AFB0EDBCF2FF014 -:10281000FC0EDBCF30F072EC16F028C002F029C0BD -:1028200003F00250005C0350015827E2000186517A -:1028300013E00001A76B030E8DC0DBFF020E8CC0FE -:10284000DBFF020EDBCF00F0030EDBCF01F000C098 -:10285000F3FF01C0F4FF17D00000000000000000EB -:102860000000000000000000000000000000000068 -:10287000DF2A010E01E3DB2AC1D70001010EA76F99 -:10288000F36AF46A00D0040EE15C02E2E16AE55208 -:10289000E16EE552E7CFD9FF120055D8040E37D8C4 -:1028A0004ED03ED8040E91D802E2E16AE552E16EC4 -:1028B00046D076D8E66A050E2AD841D071D8020EE5 -:1028C000E1261E0EE66EE66A8CD8FC0E5AD881D838 -:1028D000FA0E57D8030E61D8010EDBCFE6FF040EC7 -:1028E0005CD8F90EDB5004E1050EE66E030E03D052 -:1028F000050EE66E040E69D802E2E16AE552E16E69 -:102900001ED031D8240E51D02ED8260E4ED0E66ED1 -:10291000FE0EDBCFE6FFFDDDE552E552E55212008B -:102920003FD8020EE126FB0EDBCFDEFFDBCFDDFF63 -:1029300046D8DFCFE6FF4DD8030EE66E1200E55213 -:10294000E7CFD9FF12002CD83AD8FC0EDBCFE6FF38 -:10295000010E23D8020EE66E12000024E96E000E6E -:10296000DA20EA6E12001CD8FC0EDBCFE6FFFD0E6B -:10297000DBCFE6FF1200EA6A870FE96E000EEA225B -:102980001200DBCFDEFFDBCFDDFFDFCFE6FF120083 -:10299000E66E7DEC1EF0E5521200E66EF1EF14F0EB -:1029A000D9CFE6FFE1CFD9FF1200E66EFE0EDBCFF6 -:1029B000E6FF03DFE552E552E552E552C0D7FD0ED2 -:1029C000DBCFE6FFE66AF1EF14F0A1DF020EE15C77 -:1029D0001200010EE2DF010EDBCFE6FF020ECDEFAB -:0A29E00014F01CDEE552E55212006F -:0629EA00239E05D0239E90 -:1029F0002BAE02D02B6C238E2BC025F0246A356AB7 -:102A0000346A860E266E276ADBEF16F0239E08D006 -:102A1000239E2BAE05D02A6C2B1EE86A2B22238E18 -:102A20002BC025F02AC024F0356A346A8E0E266E3B -:102A3000276ADBEF16F0317E236A17EC17F02FECD4 -:102A400017F023B6BFEF16F023A20AD023AA03D0B3 -:102A500023BEBFEF16F023A4CBEF16F0C8EF16F09D -:102A600023AA05D023ACCBEF16F0C8EF16F023A0B5 -:102A70000AD023A808D023BE04D023A402D0D4EFC8 -:102A800016F0D8EF16F0346A276A31502C5C336E9A -:102A900010E329C035F02AC024F02BC025F02CC04B -:102AA00032F02EC029F02FC02AF030C02BF0233A8C -:102AB00009D02EC035F02FC024F030C025F031C031 -:102AC00032F0336C239E23BC238E32C026F023B019 -:102AD00007EF17F01A0E336007EF17F0266A2C6A1B -:102AE00023A408D0296C2A1E2B1E2C1EE86A2A2239 -:102AF0002B222C2223AC08D0356C241E251E261E2A -:102B0000E86A242225222622286A335207E02C3440 -:102B10002B322A3229322832332EF9D72950352642 -:102B20002A5024222B5025222C50262228C034F053 -:102B3000239E26AE0BD0346C351E241E251E261E69 -:102B4000E86A3522242225222622238E26A006D0BA -:102B5000D8802532243235323432322A32C026F03F -:102B6000DBEF16F0236A17EC17F02FEC17F023B603 -:102B7000BFEF16F023A205D023BABFEF16F0C6EFC1 -:102B800016F023BAD2EF16F023A005D023B8BFEF7A -:102B900016F0D2EF16F023B8C6EF16F0276A7F0EB4 -:102BA0002C24266EE86A27223150265EE86A275ACE -:102BB0001A0E326E2C6A346A356A246A256A2E50DF -:102BC000295E2F502A5A30502B5A000E2C5A09E7F2 -:102BD0002E5029262F502A2230502B22000E2C2234 -:102BE00001D0348AD89029362A362B362C36D89004 -:102BF0003436353624362536322EE1D72B502A107E -:102C00002910D8A4348ADBEF16F0236A17EC17F0EA -:102C10002FEC17F023B6BFEF16F023A205D023B890 -:102C2000BFEF16F0C6EF16F023AA05D023B0BFEF12 -:102C300016F0C6EF16F023B002D023A802D0D2EFD0 -:102C400016F0276A31502C24266EE86A27227E0E61 -:102C5000265EE86A275A346A356A246A256A305043 -:102C60002B02F4CF25F0F3CF24F02F502B02F3509A -:102C70003526F4502422000E252230502A02F3502B -:102C80003526F4502422000E25222E502B02F3501C -:102C90003426F4503522000E242225222F502A02F9 -:102CA000F3503426F4503522000E242225223050D1 -:102CB0002902F3503426F4503522000E2422252216 -:102CC0002E502A02F4503426000E352224222522CA -:102CD0002F502902F4503426000E352224222522BA -:102CE000DBEF16F02AC034F02A502F02F4CF29F07F -:102CF000F3CF28F02B503002F4CF2BF0F3CF2AF093 -:102D00002F02F3502926F4502A22E86A2B2234504D -:102D10003002F3502926F4502A22E86A2B22000CB4 -:102D2000236A17EC17F023B69AEF16F023A20ED001 -:102D300023B405D07F0E2B6EFF0E2A6E1FD0800E9F -:102D40002B6E2A6A1BD02B6A2A6A18D023B0FBD7B5 -:102D50008F0E2C60EDD77E0E2C64F5D78E0E2C5C7A -:102D600005E0D8902B322A322C2AF8D723A406D09B -:102D70002A6C2B1EE86A2B222BAEE5D712007F0EA1 -:102D80002C6EFF0E2B6E2A6E296E12007F0E23BE54 -:102D9000FF0E2C6E02D07F0E2C6E800E2B6E2A6AD8 -:102DA000296AF3D723AE04D0800E2C6E2B6AF7D796 -:102DB0002C6A2B6AF4D72550241035103410F8E013 -:102DC00027BEF0D725BE0CD026502710EBE0D890B8 -:102DD00034363536243625362606D8A02706F2D7CF -:102DE0002750D4E12628D2E034AE11D07F0E34141F -:102DF00002E135A00CD0352AE86A2422252207E317 -:102E0000D880253224323532262A2628BFE02650A3 -:102E1000C9E035C029F024C02AF025342B6E2630B5 -:102E20002C6E2B322C9E23BE2C8EC5EF16F02B362B -:102E30002C3602E32384237E06E123802C6A2B6A4E -:102E40002A6A296A12002C2803E0D8802B3212004B -:102E5000D8902B3202E123821200238612003036F2 -:102E6000313602E3238C237E06E12388316A306AFF -:102E70002F6A2E6A1200312803E0D8803032120007 -:0A2E8000D8903032EAE1238A1200F4 -:062E8A00D9CFE6FFE1CF05 -:102E9000D9FF9290C30E93169494060EE66E47ECFB -:102EA0001EF0E552FE0EDB50000B0CE0AF0EE66E9E -:102EB0002BEC1EF0E552000EE66EE66A0FEC1EF0FB -:102EC000E55204D0820EE66E2BEC1EF0E552F19432 -:102ED000FE0EDBA00CD0C70EE66E5BEC1DF0E552DB -:102EE000000EE66EE66AF3EC1DF0E55204D0F50E36 -:102EF000E66E5BEC1DF0E5528194819A809081989A -:102F00008294819659D146D9D880000E0001F4559B -:102F1000000EF555000EF655000EF7550CE2F407BD -:102F2000000EF55BF65BF75BF451F511F611F71146 -:102F300002E1BD6A8294120036D9D880000E0001E9 -:102F4000F855000EF955000EFA55000EFB550CE22F -:102F5000F807000EF95BFA5BFB5BF851F911FA1107 -:102F6000FB1102E1BA6A819612000DD902E1818457 -:102F700009D0FE0EDB0405E0FE0EDB50020802E184 -:102F80008184818A19D1FFD802E1819409D0FE0E93 -:102F9000DB0405E0FE0EDB50020802E18194819A19 -:102FA0000BD1F1D804E0FE0EDB50020833E1F80E3D -:102FB000DBCFF4F0F90EDBCFF5F0FA0EDBCFF6F055 -:102FC000FB0EDBCFF7F0280E2D6E2E6A2F6A306ACB -:102FD000F4C028F0F5C029F0F6C02AF0F7C02BF0B5 -:102FE00014EC1DF028C0F4F029C0F5F02AC0F6F06A -:102FF0002BC0F7F0CFD8FD0EDB50E8B08080E8A002 -:1030000080904A0EE66E98EC1EF054D8B9EC1CF095 -:10301000E552E552FE0EDB0404E0FE0EDB50020832 -:1030200033E1F80EDBCFF8F0F90EDBCFF9F0FA0E52 -:10303000DBCFFAF0FB0EDBCFFBF0280E2D6E2E6AF5 -:103040002F6A306AF8C028F0F9C029F0FAC02AF0D7 -:10305000FBC02BF014EC1DF028C0F8F029C0F9F0EB -:103060002AC0FAF02BC0FBF09ED8FD0EDB50E8B072 -:103070008188E8A081984A0EE66EE8EC1CF01AD828 -:103080008AEC1CF0E552E55297D08050010B03E02A -:103090008350400B06E08050010B0BE18350800B06 -:1030A00008E1BD6A82940001F46BF56BF66BF76B77 -:1030B000010C000CE552FC0EDBCF16F016C02BF015 -:1030C000F5EC14F029C012F02AC013F02BC014F054 -:1030D0002CC015F02E6A2F6A7F0E306E430E316EB3 -:1030E000B2EC15F029C00EF02AC00FF02BC010F082 -:1030F0002CC011F02E6A2F6A200E306E3F0E316EFA -:1031000005EC16F029C00AF02AC00BF02BC00CF019 -:103110002CC00DF02E6A1B0E2F6E370E306E4C0E2B -:10312000316E05EC16F029C006F02AC007F02BC05E -:1031300008F02CC009F02E6A400E2F6E1C0E306E67 -:10314000460E316EB2EC15F090EC16F006EC15F070 -:1031500029C002F02AC003F02BC004F02CC005F0F7 -:103160002E6A2F6A800E306E410E316EB2EC15F071 -:1031700090EC16F02AC000F02BC001F02AC0E6FF48 -:103180002BC0E6FF1200D9CFE6FFE1CFD9FFFE0E3C -:10319000DB501200A00EE66E150EE66E0FEC1EF070 -:1031A000E552E5521200A00EE66E150EE66EF3EC47 -:1031B0001DF0E552E5521200E552E7CFD9FF1200AB -:1031C00083948396839880928292050E0101105D0C -:1031D0000EE2010E10C1E7FFE75204E0E846FE0BE5 -:1031E000E706FCE101010F1502E1102BEED7050EF9 -:1031F000105D60E21051040A10E0070A0CE0010AB9 -:1032000008E0030A04E0010A09E1838407D0838609 -:1032100005D0838803D0808201D082821051D9D812 -:10322000EFCF02F0036A02BE03680A0E2A6E2B6A11 -:1032300002C02FF003C030F072EC16F028C000F08E -:1032400029C001F0DC0E0026050E0122005001010C -:10325000112701501223A9D8800E126EBB0E136ED7 -:10326000440E146E196A1A6A200E1B6E410E1C6EF3 -:103270001051AFD8EFCF21F021C02BF0F7EC14F0B4 -:1032800029C01DF02AC01EF02BC01FF02CC020F05A -:10329000AAD819C029F01AC02AF01BC02BF01CC0F4 -:1032A0002CF005EC16F06FD81CEC15F040D801019D -:1032B000102B1200106B200E115D4E0E125915E2EC -:1032C00074D8400E126E9C0E136E460E146E11C111 -:1032D0002AF012C12BF006EC15F055D81BEC15F0B6 -:1032E00026D80101116B126B1200116B126B6DD796 -:1032F000D9CFE6FFE1CFD9FFFE0EDB506AD8FD0E35 -:10330000DBCFEFFF6CD05CD804E0D890F336E80652 -:10331000FCE1F35001010F1362D052D804E0D890C1 -:10332000F336E806FCE1F35001010F1B58D029C029 -:103330000DF02AC00EF02BC00FF02CC010F053D8A7 -:1033400009C029F00AC02AF00BC02BF00CC02CF0E9 -:1033500005EC16F090EC16F02AC006F02BC007F032 -:10336000086A2A50035C006E2B500458016E085006 -:103370000558026E00C0E6FF01C0E6FFD7EC1DF065 -:10338000E552E552120029C015F02AC016F02BC0F4 -:1033900017F02CC018F027D811C029F012C02AF05D -:1033A00013C02BF014C02CF0120003680468056AE7 -:1033B000096A0A6AC00E0B6E3F0E0C6E116A12008B -:1033C000D9CFE6FFE1CFD9FF010EF36EFE0EDB5041 -:1033D0001200EA6A0A0FE96E010EEA221200E552B3 -:1033E000E7CFD9FF120029C02EF02AC02FF02BC042 -:0833F00030F02CC031F0120096 -:0833F800050EE66E060E8CD8EE -:10340000070E8AD8080E88D8090E7ED80A0E80D8F2 -:103410000B0E7AD80C0E7CD80D0E76D80E0E78D8FE -:103420000F0E72D8100E74D8110E68EF1AF0D9CFA3 -:10343000E6FFE1CFD9FF51D8FD0EDBCFE6FF9BECD5 -:103440001DF0E552C58405EC1FF0E552E7CFD9FF2A -:103450001200D9CFE6FFE1CFD9FF030EE126020E1D -:10346000DB6A3BD8C582F7EC1EF0E90EE66E9BECFA -:103470001DF0E552C586DE6ADD6ADECF00F0DDCFE5 -:1034800001F0E80E005C030E01580BE2C7A004D067 -:10349000020EC9CFDBFF05D0DF2A010EEEE3DB2AE7 -:1034A000ECD7C58AC588F7EC1EF0C584F7EC1EF092 -:1034B00005EC1FF0020EDB50006E030EE15C02E231 -:1034C000E16AE552E16E0050E552E7CFD9FF120004 -:1034D000E66EADDFE552E5521200800EE66E080E94 -:1034E000E66E62EC1EF0E552E552C580F7EC1EF088 -:1034F000E80EE66E9BEC1DF0E552FE0EDBCFE6FF1C -:103500009BEC1DF0E5521200E3DFC40EE66E1200E4 -:10351000DFDF090EE66E1200DBDF050EE66E12003D -:10352000040120511F0B010801E01200245101E0A9 -:103530001200060E215D21E12351230A1BE0010A3E -:103540000CE0030A1AE10001610517E10001120E07 -:10355000716F360E726F090E09D0000161050DE121 -:103560000001790E716F360E726F1D0E746F756BE0 -:10357000C00E02D00001800E736F04012051600B59 -:10358000E842E842E842E842E842010801E012006D -:1035900021510B0A26E0080A19E0090A11E0080A7D -:1035A00005E00B0A23E0080A21E0120000011B0ECF -:1035B000716F010E726F010E746F756BC10E0FD0BB -:1035C0000001800E736F23C41BF1120000011C0E5A -:1035D000716F010E726F010E746F756B810E736FD8 -:0E35E00012000001800E736F22C41CF1120055 -:0235EE001201C8 -:1035F000000200000008D8040400020001020001DB -:1036000009022900010100C0320904000002030080 -:103610000000092111010001221D0007058103405E -:10362000000107050103400001040309042C034DB8 -:10363000006F00620069006C006500200052006F9E -:103640000062006F007400200050006C0061007484 -:103650000066006F0072006D00200352006F006270 -:10366000006F007400200049006E00740065007255 -:103670000066006100630065000600FF0901A1010A -:1036800019012940150026FF007508954081001991 -:0E3690000129409100C0003629362D365936EA -:02369E002A0EF2 -:1036A000F66E080EF76E000EF86E01010900F55077 -:1036B000056F0900F550066F03E1056701D03DD0A5 -:1036C0000900F550006F0900F550016F0900F55031 -:1036D000026F09000900F550E96E0900F550EA6E25 -:1036E000090009000900F550036F0900F550046F47 -:1036F00009000900F6CF07F1F7CF08F1F8CF09F17B -:1037000000C1F6FF01C1F7FF02C1F8FF0101035339 -:1037100002E1045307E00900F550EE6E0307F8E2FA -:103720000407F9D707C1F6FF08C1F7FF09C1F8FF81 -:0C37300001010507000E065BBFD7120068 -:04373C00D9CFE6FFFC -:10374000DACFE6FFE1CFD9FFE2CFDAFFAC6AAB6AAE -:10375000FD0EDBB0AC88DBA202D0AC8CAB8CDBB452 -:10376000AC8EDBA602D0AB8801D0AB8ADBB8AC84D0 -:103770009E98DBBAAC86DBAC02D09D8A01D09D9AC4 -:103780009E9ADBAE02D09D8801D09D98FB0EDB5047 -:10379000AF6EFB0EFC0EDBCF01F001C000F0016A42 -:1037A0000050B06EAC8AAB8E949C948EAC50100BD3 -:1037B00004E0AC50800B01E1948CE552E5CFDAFFD8 -:0637C000E7CFD9FF120063 -:0A37C600D9CFE6FFDACFE6FFE1CF2E -:1037D000D9FFE2CFDAFFE65229D820E0C6A60AD008 -:1037E00025D8E66E9BEC1DF0E552DF6EDF5010E051 -:1037F000DF5015D09E961AD8C96EC6889EA6FED7F1 -:10380000C750040B05E1C750010B02E1FE0E07D0C3 -:10381000FC0EDB2AFD0EE0E3DB2ADED7000EE552CC -:10382000E552E5CFDAFFE7CFD9FF1200FC0EDBCF80 -:0C383000E9FFFD0EDBCFEAFFEF501200B5 -:04383C00FE0EE3CFCA -:10384000E9FFFF0EE3CFEAFFE9CFF3FFEACFF4FF92 -:10385000FB0EE35003E1FC0EE35009E0FB0EE30630 -:1038600002E2FC0EE306FD0EE350EE6EF1D712000D -:10387000FB0EE3CFF6FFFC0EE3CFF7FFFD0EE3CF29 -:10388000F8FFFE0EE3CFE9FFFF0EE3CFEAFFE9CF3B -:10389000F3FFEACFF4FFEE66FED7ED520900F5CF55 -:0838A000EFFFEE66FBD71200FA -:0838A8002DD8FD0EDB50A86EC7 -:1038B000A69EA69CA684F250800B01E0010E010199 -:1038C0001D6FF29E550EA76EAA0EA76EA6821D5101 -:1038D000E8B0F28EE8A0F29EA6B2FED7A198A69418 -:1038E000E552E7CFD9FF12000DD8A69EA69CA68070 -:1038F000020EE66EECEC1EF0E552A850E552E7CF62 -:10390000D9FF1200D9CFE6FFE1CFD9FFFE0EDB5081 -:04391000A96E12008A -:0C391400D9CFE6FFDACFE6FFE1CFD9FF04 -:10392000E2CFDAFFE652E652FC0EDBCF00F0FD0EEE -:10393000DBCF01F0060ED89000360136E804FBE13B -:1039400000C0DEFF01C0DDFF010EDB50BB6EDF50AB -:10395000E840E8403F0B300B006ECF0EBA14001069 -:10396000BA6EE552E552E552E5CFDAFFE7CFD9FF6F -:02397000120043 -:0E397200D9CFE6FFDACFE6FFE1CFD9FFE2CFF3 -:10398000DAFFE652E652FC0EDBCF00F0FD0EDBCF95 -:1039900001F0060ED89000360136E804FBE100C0C5 -:1039A000DEFF01C0DDFF010EDB50BE6EDF50E840E0 -:1039B000E8403F0B300B006ECF0EBD140010BD6E03 -:1039C000E552E552E552E5CFDAFFE7CFD9FF120025 -:1039D000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFFBA -:1039E000E652E6520C0EBA6E050EF66EF76A300E0F -:1039F000F86E0800F550010B03E0010EDB6802D001 -:103A0000010EDB6ADB5002E0949201D09396CA94D7 -:103A1000FD0EDB50CB6ECA84E552E552E552E5CF90 -:083A2000DAFFE7CFD9FF120025 -:083A2800276A266A256A246A58 -:103A3000200EE76ED890283629362A362B362436C3 -:103A40002536263627362D50245C2E5025582F50EB -:103A500026583050275809E32D50245E2E50255A01 -:103A60002F50265A3050275A282AE72EE4D7120022 -:103A7000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF19 -:103A8000FD0EDB50360BB16EB36AB26AA192FD0E29 -:103A9000DBAE02D0A08201D0A092DBB2CD86DBA04B -:103AA00002D0B18E01D0B19EB180E552E5CFDAFFF0 -:063AB000E7CFD9FF120070 -:0A3AB600D9CFE6FFDACFE6FFE1CF3B -:103AC000D9FFE2CFDAFFFD0EDB507E0BCD6EFD0E8F -:103AD000DBAC02D0CD8E01D0CD9ECF6ACE6A9E9057 -:103AE000DBAE02D09D8001D09D90CD80E552E5CF28 -:083AF000DAFFE7CFD9FF120055 -:083AF800D9CFE6FFDACFE6FFAB -:103B0000E1CFD9FFE2CFDAFFE652F20E0001FF1754 -:103B1000ABAC03D0FF91ABB0FF81ABB4FF85ABB2D0 -:103B2000FF87AE50DF6EDF50E552E552E5CFDAFF9A -:063B3000E7CFD9FF1200EF -:0A3B3600D9CFE6FFDACFE6FFE1CFBA -:103B4000D9FFE2CFDAFFFD0EDB50C96EC6AE02D060 -:103B5000FF0E09D0C7B0FED7F7EC1EF0C5AC02D0FF -:103B6000FE0E01D0000EE552E5CFDAFFE7CFD9FF18 -:023B7000120041 -:0E3B720032333A35323A33380020004D61725A -:103B8000203036203230313000526F626F7420495D -:103B90006E7465726661636520312E300A4F6C6900 -:0D3BA0007669657220424943484C45520049 -:023BAE00D9CF6D -:103BB000E6FFDACFE6FFE1CFD9FFE2CFDAFFE65248 -:103BC000E652FC0EDBCFDEFFDBCFDDFF010EDB506C -:103BD000B36EDF50B26EE552E552E552E5CFDAFF43 -:063BE000E7CFD9FF12003F -:0A3BE600D9CFE6FFDACFE6FFE1CF0A -:103BF000D9FFE2CFDAFFE652E652FC0EDBCFDEFF62 -:103C0000DBCFDDFF010EDB50CF6EDF50CE6EE55215 -:0E3C1000E552E552E5CFDAFFE7CFD9FF12000B -:023C1E00D9CFFC -:103C2000E6FFDACFE6FFE1CFD9FFE2CFDAFFE652D7 -:103C3000E652FC0EDBCFDEFFDBCFDDFF010EDB50FB -:103C4000D76EDF50D66EE552E552E552E5CFDAFF8A -:063C5000E7CFD9FF1200CE -:0A3C5600D9CFE6FFDACFE6FFE1CF99 -:103C6000D9FFE2CFDAFFFD0EDB507F0BD56ED76AAE -:103C7000D66AF294FD0EDBAE02D0F28A01D0F29A3F -:0E3C8000D58EE552E5CFDAFFE7CFD9FF12006F -:023C8E00D9CF8C -:103C9000E6FFDACFE6FFE1CFD9FFE2CFDAFFFD0E94 -:103CA000DB50FB0BCA6ECC6A9E92FD0EDBAE02D0DF -:103CB0009D8201D09D92CA84E552E5CFDAFFE7CF1D -:043CC000D9FF120016 -:0C3CC400D9CFE6FFDACFE6FFE1CFD9FF51 -:103CD000E2CFDAFF3F0EC716C66AC56AFD0EDB509B -:103CE000C612FC0EDB50C71293829380C68AE5523F -:0A3CF000E5CFDAFFE7CFD9FF12009D -:063CFA00D9CFE6FFE1CF87 -:103D0000D9FF00010ED8EF50000803E2EB291F0B8A -:103D1000EB6F07D8FE0EDBCFEFFFE552E7CFD9FF01 -:103D20001200EB51EA6ACB0FE96E000EEA22120094 -:103D3000D9CFE6FFDACFE6FFE1CFD9FFE2CFDAFF56 -:103D40000C0EBD129494CA94FD0EDB50CB6ECA8447 -:103D5000E552E5CFDAFFE7CFD9FF120094941200C5 -:103D6000FF0EE350376EEF0E01D0F30EE76EE72E35 -:103D7000B7EF1EF00C0E366EE76AE72EBDEF1EF0B1 -:0E3D8000362EBCEF1EF0372EB5EF1EF01200EF -:023D8E00D9CF8B -:103D9000E6FFDACFE6FFE1CFD9FFE2CFDAFFACAC46 -:103DA00004D0AC900001FFB3AC80FD0EDB50AD6ED3 -:0C3DB000E552E5CFDAFFE7CFD9FF1200A3 -:043DBC0013EE00F012 -:103DC00023EE00F0F86A239C4FEC1BF007EC1FF089 -:083DD000B4EC04F0FBD7120073 -:083DD800FF0EE350E84E12005B -:0E3DE000000000D000D000D0E82EFAD712006C -:023DEE001F0EA6 -:0C3DF000C514FDE1C750040BFAE11200FD -:043DFC0000EE00F0E5 -:0A3E00000F0EEE6AEA62FDD7120011 -:043E0A00C69A120042 -:023E0E001200A0 -:093E1000000000000000000000A9 -:073E190000000000000000A2 -:093E200000000000000000000099 -:073E29000000000001000091 -:013E30000091 -:0F3E310000000000000000000000000000000082 -:103E40000000000000000000000000000000000072 -:023E5000000070 -:0E3E5200000000000000000000000000000062 -:103E60000000000000000000000000000000000052 -:063E70000000000000004C +:10100000010E000901E0F3D100C540F50501416B77 +:101010000501030E426F0501436B05010851110ADA +:1010200001E1B5D1010A01E1ACD1190A01E183D195 +:10103000010A01E1E3D00F0A01E1C5D0010A01E193 +:10104000AAD0030A01E18FD0010A6AE0070A42E050 +:10105000010A11E0030A01E0A0D105010A51E66E80 +:10106000E66A09C5E6FF29EC13F0E552E552E552C0 +:101070000501486F95D105010B051BE105010C51D8 +:10108000E66EE66A0AC5E6FF09C5E6FFE6EC13F080 +:10109000E552E552E552E5520F0EF3CFDBFF100E9D +:1010A000F4CFDBFF100EDBCF48F50F0EDBCF49F599 +:1010B00010D005010C51E66EE66A0AC5E6FF09C5C7 +:1010C000E6FF83EC13F0E552E552E552E5520501E7 +:1010D000486F66D105010B0517E1100E0CC5DBFF4B +:1010E0000F0E0DC5DBFF0F0EDBCFE6FF100EDBCFC3 +:1010F000E6FF0AC5E6FF09C5E6FF7CEC13F0E55202 +:10110000E552E552E5520BD00CC5E6FF0AC5E6FFF5 +:1011100009C5E6FF78EC13F0E552E552E55240D1FF +:10112000100E0AC5DBFF0F0E0BC5DBFF120E0CC540 +:10113000DBFF110E0DC5DBFF0EC5E6FF110EDBCF89 +:10114000E6FF120EDBCFE6FF0F0EDBCFE6FF100E41 +:10115000DBCFE6FF09C5E6FF67EC14F0006E060E74 +:10116000E15E00501DD105010A51E66EE66A09C52F +:10117000E6FF8AEC14F0E552E552E5520F0EF3CF8C +:10118000DBFF100EF4CFDBFF100EDBCF48F50F0EA8 +:10119000DBCF49F505D105010A51E66EE66A09C5BE +:1011A000E6FF8DEC14F0E552E552E5520F0EF3CF59 +:1011B000DBFF100EF4CFDBFF100EDBCF48F50F0E78 +:1011C000DBCF49F5EDD005010A51E66EE66A280E3F +:1011D000E66E09C5E6FFE6EC13F0E552E552E5528E +:1011E000E5520F0EF3CFDBFF100EF4CFDBFF100E36 +:1011F000DBCF48F50F0EDBCF49F5D2D005010A5100 +:10120000E66EE66A09C5E6FF8AEC14F0E552E5529F +:10121000E5520F0EF3CFDBFF100EF4CFDBFF100E05 +:10122000DBCF48F50F0EDBCF49F505010A51E66E1D +:10123000E66A09C5E6FF8DEC14F0E552E552E55289 +:101240000F0EF3CFDBFF100EF4CFDBFF100EDBCF62 +:101250004AF50F0EDBCF4BF505010A51E66EE66A43 +:10126000280EE66E09C5E6FFE6EC13F0E552E552FE +:10127000E552E5520F0EF3CFDBFF100EF4CFDBFF8C +:10128000100EDBCF4CF50F0EDBCF4DF505010A51EB +:10129000E66EE66A2A0EE66E09C5E6FF83EC13F0F9 +:1012A000E552E552E552E55205014E6F05010A513E +:1012B000E66EE66A2B0EE66E09C5E6FF83EC13F0D8 +:1012C000E552E552E552E55205014F6F05010A511D +:1012D000E66EE66A060EE66E09C5E6FFE6EC13F07A +:1012E000E552E552E552E5520F0EF3CFDBFF100E4B +:1012F000F4CFDBFF100EDBCF50F50F0EDBCF51F537 +:1013000005010A51E66EE66A080EE66E09C5E6FFBB +:10131000E6EC13F0E552E552E552E5520F0EF3CF3D +:10132000DBFF100EF4CFDBFF100EDBCF52F50F0EFC +:10133000DBCF53F535D005010B0517E1100E0CC5B9 +:10134000DBFF0F0E0DC5DBFF0F0EDBCFE6FF100E30 +:10135000DBCFE6FF0AC5E6FF09C5E6FF5AEC14F04D +:10136000E552E552E552E5520BD00CC5E6FF0AC541 +:10137000E6FF09C5E6FF56EC14F0E552E552E552EA +:101380000FD009C5E6FF62EC14F0E55209D009C59B +:10139000E6FF73EC13F0E55203D00501010E436F35 +:1013A000400EE66E400EE66E050EE66E010EE66E2F +:1013B000010EE66EC6EC10F0006E050EE15E005008 +:1013C000F3CF15F1F4CF16F1400EE66E000EE66E87 +:1013D000050EE66EE66A010EE66EC6EC10F0006ED3 +:1013E000050EE15E0050F3CF13F1F4CF14F121D1DB +:1013F00005010851030A11E0010A09E0030A01E0AE +:1014000037D009C5E6FFBEEC17F0E55236D009C566 +:10141000E6FFCCEC17F0E55230D00E0E0CC5DBFF2A +:101420000D0E0DC5DBFF0C0E0EC5DBFF0B0E0FC541 +:10143000DBFFD9500B0FE96EDACFEAFFEECFE6FF04 +:10144000EECFE6FFEECFE6FFEFCFE6FF0BC5E6FF00 +:101450000AC5E6FF09C5E6FFDAEC17F0006E070ED5 +:10146000E15E0050010EF36E160EF3CFDBFF05D0E8 +:10147000010EE66E86EC1EF0E552400EE66E000EA2 +:10148000E66E050EE66EE66A010EE66EC6EC10F03C +:10149000006E050EE15E0050F3CF13F1F4CF14F1AE +:1014A000C8D0800EE66E080EE66E6BEC1EF0E552BC +:1014B000E552C58000EC1FF0E66AA4EC1DF0E55291 +:1014C000080EE66E050EE66EECEC1BF0E552E552FA +:1014D000C5840EEC1FF0400EE66E000EE66E050EA3 +:1014E000E66EE66A010EE66EC6EC10F0006E050EC2 +:1014F000E15E0050F3CF13F1F4CF14F19AD04F0E08 +:10150000AB16AC9ACF0E9D16020EE66EE66A7C0E06 +:10151000E66EA7EC1BF0E552E552E552040EE66ECE +:10152000E66A17EC13F0E552E552100EE66E010E76 +:10153000E66E17EC13F0E552E552020EE66E030E6E +:10154000E66E010EE66E92EC12F0E552E552E552BF +:10155000040EE66EE66A17EC13F0E552E552100E43 +:10156000E66E010EE66E17EC13F0E552E552020E40 +:10157000E66E030EE66E010EE66E92EC12F0E55298 +:10158000E552E5521BEC12F0400EE66E000EE66EE0 +:10159000050EE66EE66A010EE66EC6EC10F0006E11 +:1015A000050EE15E0050F3CF13F1F4CF14F141D0FA +:1015B00001011551161102E1000E08D015C1E9FF15 +:1015C00016C1EAFFEF50800B01E0010E000931E186 +:1015D00000C540F50501416B0501030E426F050191 +:1015E000010E436F400EE66E400EE66E050EE66E8F +:1015F000010EE66E010EE66EC6EC10F0006E050EF2 +:10160000E15E0050F3CF15F1F4CF16F1400EE66E17 +:10161000000EE66E050EE66EE66A010EE66EC6EC9C +:1016200010F0006E050EE15E0050F3CF13F1F4CF21 +:1016300014F1170EE15C02E2E16AE552E16EE55257 +:10164000E7CFD9FF1200010119511A1104E1100E60 +:10165000196F270E1A6F1907000E1A5B6DA207D0BB +:1016600019511A112EE18A7C8ABC13D027D00001AF +:10167000605102E18A9C22D0600502E18A8C09D087 +:10168000020E605D02E18A8C19D0040E605D03E1F8 +:101690008A9C8A8E1200100E605D06E101011951CC +:1016A0001A110FE18A7C0AD0200E605D0AE1010167 +:1016B00019511A1106E18A7C8AAC02D08A9E120066 +:1016C0008A8E1200ACD8F1D8620E4EEF0CF0A7D87B +:1016D000ECD8420E4EEF0CF01200120099EF1AF007 +:1016E00012001E0EE66E010EE66E94EC10F0E5524E +:1016F000E552400EE66E000EE66E050EE66EE66AF8 +:10170000010EE66EC6EC10F0006E050EE15E0050B4 +:10171000F3CF13F1F4CF14F112006D840001080E21 +:10172000FD6F070EFE6FFD07000EFE5BFD51FE1103 +:10173000FAE16D941200D9CFE6FFE1CFD9FFFD0E9B +:10174000DBCF2AF0FE0EDBCF2BF0010E2A1801E1D1 +:101750002B5033E0E8682A1802E1E8682B182BE0E8 +:10176000030E2A1801E12B5024E0040E2A1801E18F +:101770002B501DE0020E2A1801E12B5016E0170E27 +:101780002A1801E12B500FE0160E2A1801E12B5008 +:1017900008E0150E2A1801E12B5001E010D0A1DF5E +:1017A0000FD09EDF0DD09ADF0BD096DF09D08ADFF5 +:1017B00007D08DDF05D091DF03D0000001D000D02D +:1017C000010E00D0E552E7CFD9FF120089D8E652CA +:1017D000D0B202D0010E15D0D0B802D0020E11D076 +:1017E000D0B002D0030E0DD0D0B602D0040E09D076 +:1017F000FCAE02D0050E05D0FCAC02D0060E01D026 +:10180000070EDF6ED088D086D084D082D080FC9E38 +:10181000FC9CDF50E552E552E7CFD9FF1200800E65 +:10182000E66E080EE66E6BEC1EF0E552E552C580E2 +:1018300000EC1FF06BEF0CF0DACFE4FFE2CFDAFF41 +:10184000E9CFE4FFEACFE4FFF6CFE4FFF7CFE4FF10 +:10185000F5CFE4FFF3CFE4FFF4CFE4FFFACFE4FFEA +:101860001200E5CFFAFFE5CFF4FFE5CFF3FFE5CFB8 +:10187000F5FFE5CFF7FFE5CFF6FFE5CFEAFFE5CFD0 +:10188000E9FFE5CFDAFF1200E6522AD8020EE12680 +:10189000F350DF6E010EF4CFDBFF1200E66EA4EC16 +:1018A0001DF0E552C5840EEF1FF01B0EE66EA4EC92 +:1018B0001DF0E5521200DF50F36E010EDB50F46EA6 +:1018C000020EE15C1200DFCFE6FFE66A5DEC1CF081 +:1018D000E552E5521200E66AA4EC1DF0E552120052 +:0A18E000D9CFE6FFE1CFD9FF1200D7 +:0618EA006DEC11F06A6ACA +:1018F000686AA0EC11F06D8C6E6A50EC11F06D9C72 +:10190000DF6A81EC11F010E2DF50040DF3CFE9FF44 +:10191000F4CFEAFF000EE926040EEA22EE6AEE6A30 +:10192000EE6AEE6ADF2AEDD7160E706E68A604D056 +:10193000030E16EC11F0FAD70001736B786B796B1C +:101940007A6B6D98080E6B6F040E6C6F616B606B39 +:10195000E5522BEF11F06DEC11F0000160510BE13D +:101960006D6A696AA0EC11F06DB602D06D86FCD785 +:101970000001010E606F600508E16DBA06D0686A6B +:10198000696A69806988020E606F6850040B07E01D +:101990006950040B04E0020E16EC11F089D86DB208 +:1019A00047D06850010B14E06950010B11E09DDF36 +:1019B0000001040E606F0401200E026F040E036F1D +:1019C000080E016F006B8C0E0013E66ADFEC11F05D +:1019D0006850100B07E06950100B04E060D8040E4B +:1019E00016EC11F06850400B0BE06950400B08E01A +:1019F000A7EC11F0020E1EEC11F0060E16EC11F021 +:101A00006850200B04E06950200B01E035D8685085 +:101A1000020B0AE06950020B07E0A7EC11F0E66840 +:101A2000E668FFEC11F06A6A040E0001605D02E2F4 +:101A3000A19A1FD069A61CD0DF6A040EDF5C18E2F1 +:101A400068A616D06CCF80F0030E16EC11F0780E5D +:101A50000001801502E138D809D0000EE66EE66A72 +:101A6000800EE66E000EE66E010EE8DBDF2AE5D79B +:101A7000A19AE5522BEF11F070A00ED039EC11F0C5 +:101A8000EF50800808E1D5DBEF50840804E139EC21 +:101A900011F08C0EEF6E7090050E16EF11F0698448 +:101AA000040EC4DB6D8259EC11F0040E1EEF11F030 +:101AB00059EC11F0030EC2DB6D92699468A403D057 +:101AC000020EB4DBFBD712006DEC11F0FD0E00012D +:101AD00080153DE17E0E8015E8407F0B040DF3CFAD +:101AE00063F0F4CF64F0000E6327040E642363C038 +:101AF00065F064C066F06575BCDBEF503C0BE842F6 +:101B0000E8420D0822E1B5DBD6EC11F0EECF00F093 +:101B1000EFCF01F0280E001816E1040E011813E1B2 +:101B200010EC12F0DF6AEDDB0EE2DF5089EC11F011 +:101B3000DF50EA6A200FE96E040EEA22E552E75010 +:101B4000EF6EDF2AF0D70AD807D01AD805D0FD0EDD +:101B50008015040801E122D8E5527DD36ADBEF50FD +:101B6000800B02E066DBEF6A00016F6B706B746BD9 +:101B7000756B736B64D89DDB170E60DB54EF0FF051 +:101B8000020E0001705D02E1E1EF0FF034D80001B8 +:101B9000815102E1DBEF11F0816B12009EDB49DB2A +:101BA000EF50400B01E0010EDF6E00016B75080E77 +:101BB000605D09E122C46EFF6E50000802E2100E63 +:101BC00001D0040E606F700513E114EC12F0A6D979 +:101BD000020E00016F5D03E12CDB840E07D0DF50A5 +:101BE00003E127DBC80E02D024DB880EEF6E01D0A4 +:101BF00002D8E55230D32BDB0001706B1ADBEF6AA1 +:101C0000040E6B19006E6CC001F0DE6E6CC0DDFF5F +:101C100019DBEF6A78AF0CD07B517C1107E005D05F +:101C20007CC0FAFF00017B51F96EFADF0001789F5A +:101C3000020EE15C02E2E16AE552E16E0CD30401BE +:101C40002051600BE842E842E842E842E8420009DD +:101C500001E0120021510C0A45E00B0A3FE00C0A9A +:101C600031E0010A22E00B0A1EE0020A1CE0030A2E +:101C700018E0080A10E0010A0CE00F0A08E0030A65 +:101C800001E012000001738F080E606F1200D4EFA4 +:101C90000EF03DEF10F00001610E716F000E726FDB +:101CA0000CD015EF0FF073EF0EF024510001716F9F +:101CB000726B620E7127000E72237381010E746FB6 +:101CC000738F12000001738F04012451EA6A620FBE +:101CD000E96E000EEA2222C4EFFF1200EADA160EC5 +:101CE0001EEF11F012007EDB040EE1260401220536 +:101CF00010E120511F0B00090CE10001738F030E4E +:101D00000401215D04E10001010E7F6F02D000019A +:101D10007F6B0401225141E120511F0B02083DE17C +:101D200024510F0B000939E00001738F040124BF17 +:101D300005D0A4DA670EE926000E04D09FDA6B0EF8 +:101D4000E926000ED2DA030E215D03E17BDA840E70 +:101D500023D024510F0B016A700F006E0F0E012269 +:101D6000020E00C0DBFF030E01C0DBFF020EDBCF63 +:101D7000E9FF030EDBCFEAFFEE90ED5224AF06D071 +:101D800061DAEF6ADF745EDA400E06D05BDA880E45 +:101D9000EF6EDF7457DAC80EEF6E040EE15C02E2FC +:101DA000E16AE552E16E57D2800E0401205D3CE10C +:101DB0000001C00E736F04012351030A1EE0010AE3 +:101DC00009E0030A2FE10001000E716F360E726FF9 +:101DD000120E22D0C3DAA80EF626360EA2DA020EB2 +:101DE0000001F76A7125F66E7251F7220900F5CFEE +:101DF00074F00A00F5CF75F01200030E225D0FE2B9 +:101E0000ADDAAA0EF626360E8CDA71C0F6FF72C075 +:101E1000F7FF0800F5500001746F756B12000001A8 +:101E2000736B12000001736B120011DA0401286B4E +:101E3000296B20511F0B020A11E0030A0CE0010A72 +:101E400022E10001738F0401288100017F051BE15D +:101E50000401288318D00001738F15D00001738FFF +:101E6000040124BF05D00ADA670EE926000E04D06B +:101E700005DA6B0EE926000E38DAE4D9EF50040BD0 +:101E800002E0010E286F000173AF07D0280E716FBA +:101E9000040E726F7381020E746F020EE15C02E237 +:101EA000E16AE552E16ED7D16D98000173BF08D0A9 +:101EB00078AF02D061DA2AD07EDABBD9840E27D07F +:101EC00078BF2BD0040120AF24D00001745104014D +:101ED000265D000175510401275904E226C474F0FF +:101EE00027C475F01BD80001010E706FA1DA800EB7 +:101EF000EF6E816BBED9EE52080EEF6E91DAB9D952 +:101F0000840EEF6E010E816F8FDA93D9C80EEF6EDB +:101F10001200000131DAC80EEF6E120098D90001EC +:101F2000080E745D000E75590DE274C0DEFF75C0B9 +:101F3000DDFF6F5102E1010E03D06F0506E1020ED5 +:101F40006F6F03D0080EDE6EDD6A73D9EF9271D920 +:101F5000EF906FD9010EDB50EF126BD9EE52DFCF4D +:101F6000EFFF000EDB50745F010EDB50755B280E37 +:101F70007D6F040E7E6F73B10FD0F7D91BE071C077 +:101F8000F6FF72C0F7FF712B000E72230800F550A8 +:101F900096D9F3E2DB06F1D7E8D90CE071C0E9FF8E +:101FA00072C0EAFF712B000E7223EF5088D9F4E261 +:101FB000DB06F2D7020EE15C02E2E16AE552E16E75 +:101FC0004AD145D956D9EE52EFCFDFFFDFCF00F02F +:101FD00000500001795D000E7A5903E279C0DFFFFD +:101FE00009D0DF50006E016AE850795D796F0150C9 +:101FF0007A597A6F010EDB6ADF50F36E010EDBCF88 +:10200000F4FFF350F45C10E2010EDB5082D976C08D +:10201000E9FF77C0EAFF762B000E7723E552E75001 +:10202000EF6E010EDB2AE8D7000ED8807955000E3E +:102030007A550DE2F4D854D91CD9EF50400B03E186 +:10204000EAD9C80E02D0E7D9880EEF6E0FD0F0D9CA +:10205000840EEF6E7B517C1107E005D07CC0FAFF47 +:1020600000017B51F96EFADF0001789F020EE15CFE +:1020700002E2E16AE552E16EEED00001738F10D901 +:10208000010EE66EE66AE66A620EE66E000EAFD9F3 +:1020900022C461F00401225104E10001100E606FBE +:1020A00012000001200E606F04D9150E1EEF11F012 +:1020B000CED8000EDE6E040EDD6EE8D8040DF350AF +:1020C000006E016A020E0F0B05E0D890013200325B +:1020D000E806FBE1D89000360136D890003601368C +:1020E000D9CFE9FFDACFEAFF0050EE260150ED220A +:1020F000A9D8EF9EFD0EDB5002E16AD901D06DD95F +:10210000EA22DECFEEFFDDCFEDFF9CD8EF9C9AD820 +:10211000040EE926000EEA22EF8C020EE15C02E2D8 +:10212000E16AE552E16E97D092D8FE0EDB50016A6B +:10213000700F006E0F0EDFD885D8FD0EDBCFEFFFDE +:10214000DBA402D0E66AF5D8FD0EDBA203D0010EB7 +:10215000E66EEFD8020EE15C02E2E16AE552E16E62 +:102160007AD075D8FE0EDB5005E125D962D8840EF1 +:10217000EF6E05D08BD80CD989D8010F09D9020E82 +:10218000E15C02E2E16AE552E16E65D060D8FD0EE5 +:10219000DB5002E022D901D01BD9A7D853D806D9E9 +:1021A000FB0EDBCFEEFFFC0EDBCFEDFF4BD8EE528C +:1021B000FA0EDBCFEFFF400E45D8E850EF16880E41 +:1021C00041D8E850EF12FD0EDB5002E006D901D0F5 +:1021D000FFD8EA22EF74DECF00F0DDCF01F000C0BF +:1021E000F3FF01C0F4FF020EE15C02E2E16AE55296 +:1021F000E16E31D0F7D8010EF36EFC0EDB5004E037 +:10220000D890F336E806FCE1F31C006EFD0EDBCF40 +:10221000E9FFFE0EDBCFEAFF0050EF161CD0FBD823 +:10222000EE52080EEF6EF7D8D6EF11F0E66EDFEF44 +:1022300011F06BC0E9FF6CC0EAFF1200E66EE66ABF +:10224000FFEF11F0DECFE9FFDDCFEAFF1200CAD8C1 +:10225000020EE1261200E552E7CFD9FF1200D6D8D0 +:102260000BEF12F0FE0EEA6ADB34FE0BEA36E96E83 +:10227000120063C0E9FF64C0EAFF120024510F0B93 +:10228000E96EEA6AD890E936EA361200FD0EDB50B4 +:10229000E824026EFE0EDB50040DF35002241200FF +:1022A000000EE66EE66AE66A710EE66E0F0EF7EF56 +:1022B00011F0000EE66EE66AE66EE66A1200E66E61 +:1022C0007DC0E9FF7EC0EAFF7D2B000E7E23E55234 +:1022D000E750EF6EDF06010E120084D8E6521200BE +:1022E000280EEE6E040EED6E1200EA22EECFDEFF37 +:1022F000EDCFDDFF1200012200C0DEFF01C0DDFFD7 +:102300001200DF50006E016A080E005C000E0158DA +:102310001200EA6A280FE96E040EEA22EF50E66E18 +:102320001200F7220900F5CF71F00A00F5CF72F024 +:102330001200FE0EDBCFE6FFBBDEE552E5521200D7 +:10234000160E6F6E9F0E6B6E7B0E696E1200010E85 +:10235000E66EE66A000EE66EE66A12002251F66E3E +:10236000F76AD890F636F7361200D9CFE9FFDACF00 +:10237000EAFFEE50ED101200020E706F5ADFEE52BF +:10238000EF6A57DFC80EEF6E4ADFAADF0BEF12F0DD +:10239000040DF3CF00F0F4CF01F0000E0026040E80 +:1023A000AADF840E4FDFE850EF121200020EE9267A +:1023B000000EEA2212003CD88C0EEF6E1200680E5E +:1023C000E66E0F0EE66E16DFE552E552E55212009C +:1023D00049DF670EE926000E120044DF6B0EE92686 +:1023E000000E1200D9CFE6FFE1CFD9FF1200E66E52 +:1023F00027EC1CF0006E050EE15E005012009BEC15 +:102400000BF0006E060EE15E00501200200EEE6E24 +:10241000040EED6E120065C0E9FF66C0EAFF12000F +:1024200028DFC4DF06EF12F004DFC0DF70EF11F029 +:06243000F6DE2FEF11F0B3 +:0A243600959A838A190EE66EE66A95 +:102440007C0EE66EA7EC1BF0E552E552E552120059 +:10245000B0DA030EE126ACA2FED785EC1DF0DF6EEC +:102460000001A85104E1865102E1010EA96FA905FE +:1024700052E1A85189DADFCFEFFF020EA85D08E232 +:10248000FF0EDF5C05E0050E8CDA0001A96BA86B7E +:10249000030EA85D04E1030EDF240001CA6F030EE2 +:1024A0000001A85D37E30001CA510001A85D32E1D7 +:1024B0008B5102E0060E75DA010EDB6A020EDB6E4E +:1024C0000001CA51F36E020EDBCFF4FFF350F45C4F +:1024D0000EE2020EDB5058DA010EDBCFE7FFEF50C1 +:1024E000E726010EE7CFDBFF020EDB2AE9D7CA5150 +:1024F0004BDAEFCF00F0010EDB1C005C05E0070EAD +:1025000050DA0001866B03D00001010E866FA96BC3 +:10251000A86B01D0A82B030EE15C02E2E16AE55250 +:10252000E16E16D246DA220EE126010EDB68020EBB +:10253000DB68FE0EDB50E76E030EE7CFDBFFFC0E21 +:10254000DB50020FE76E040EE7CFDBFFFD0EDB5022 +:10255000E76E050EE7CFDBFFDF6AFC0EDB50DF5CCA +:1025600013E2DF50EA6AAA0FE96E000EEA22EF508A +:10257000E66ED950010F006E050EDF24F7D9E55243 +:10258000E750EF6EDF2AE9D7210EDB6A020EDF6E1D +:10259000FC0EDB50050FDF5C0FE2D950010F006E1F +:1025A000DF50E4D9210EDBCFE7FFEF50E726210E05 +:1025B000E7CFDBFFDF2AECD7210EDB1CE66ED950... [truncated message content] |
From: Xavier L. <Ba...@us...> - 2010-03-07 21:08:27
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via c0fdebb20f076b97225e3f4ceeb12a25e8895a12 (commit) from 8cc04bff36432dd8189d7c78585e8dd3bfead7aa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c0fdebb20f076b97225e3f4ceeb12a25e8895a12 Author: Xavier Lagorce <Xav...@cr...> Date: Sun Mar 7 22:08:06 2010 +0100 Correcting typos in main.c ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Robot_Interface/Firmware/main.c b/USB_Module/Robot_Interface/Firmware/main.c index b81a33b..0461899 100644 --- a/USB_Module/Robot_Interface/Firmware/main.c +++ b/USB_Module/Robot_Interface/Firmware/main.c @@ -982,7 +982,8 @@ void ProcessIO(void) { break; case AX12_RESET: - resetAX12(ReceivedDataBuffer.DATA[1]) + resetAX12(ReceivedDataBuffer.DATA[1]); + break; default: ToSendDataBuffer.ERR = ERR_UNKNOWN_CMD; hooks/post-receive -- krobot |
From: Jérémie D. <Ba...@us...> - 2010-03-07 21:00:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 8cc04bff36432dd8189d7c78585e8dd3bfead7aa (commit) from a6e8536a3b19b3d0de30a97cf8ea60ccfddce72e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8cc04bff36432dd8189d7c78585e8dd3bfead7aa Author: Jérémie Dimino <je...@di...> Date: Sun Mar 7 21:59:41 2010 +0100 add a command to reset an AX12 ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/clients/script.ml b/PC_Mainboard/clients/script.ml index 55dfb13..64a5ed8 100644 --- a/PC_Mainboard/clients/script.ml +++ b/PC_Mainboard/clients/script.ml @@ -312,6 +312,9 @@ let () = register ~path:["ax12"] "action" (f1 (int ~default:254 "id")) (fun logger krobot id -> Krobot_unsafe.AX12.action krobot id); + register ~path:["ax12"] "reset" (f1 (int ~default:254 "id")) + (fun logger krobot id -> + Krobot_unsafe.AX12.reset krobot id); (* +---------------------------------------------------------------+ | Grip | diff --git a/PC_Mainboard/common/PcInterface.h b/PC_Mainboard/common/PcInterface.h index fa7faca..04a05cb 100644 --- a/PC_Mainboard/common/PcInterface.h +++ b/PC_Mainboard/common/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/PC_Mainboard/interface/interface.ml b/PC_Mainboard/interface/interface.ml index 91f115d..a730840 100644 --- a/PC_Mainboard/interface/interface.ml +++ b/PC_Mainboard/interface/interface.ml @@ -365,6 +365,12 @@ let interfaces = [ ~args:[Cst(uint8, PcInterface.ax12_action); Arg("id", uint8)] (); + request + ~name:"reset" + ~code:PcInterface.cmd_ax12 + ~args:[Cst(uint8, PcInterface.ax12_reset); + Arg("id", uint8)] + (); ]); Module("logic-sensors", [ diff --git a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h index fa7faca..04a05cb 100644 --- a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h +++ b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/PC_Mainboard/python/dev/User_Interface/PcInterface.h b/PC_Mainboard/python/dev/User_Interface/PcInterface.h index fa7faca..04a05cb 100644 --- a/PC_Mainboard/python/dev/User_Interface/PcInterface.h +++ b/PC_Mainboard/python/dev/User_Interface/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Dev_Board/Firmware/PcInterface.h b/USB_Dev_Board/Firmware/PcInterface.h index fa7faca..04a05cb 100644 --- a/USB_Dev_Board/Firmware/PcInterface.h +++ b/USB_Dev_Board/Firmware/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h index fa7faca..04a05cb 100644 --- a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h +++ b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Module/Motor_Controller/Firmware/PcInterface.h b/USB_Module/Motor_Controller/Firmware/PcInterface.h index fa7faca..04a05cb 100644 --- a/USB_Module/Motor_Controller/Firmware/PcInterface.h +++ b/USB_Module/Motor_Controller/Firmware/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Module/Proximity_Sensor/Firmware/PcInterface.h b/USB_Module/Proximity_Sensor/Firmware/PcInterface.h index fa7faca..04a05cb 100644 --- a/USB_Module/Proximity_Sensor/Firmware/PcInterface.h +++ b/USB_Module/Proximity_Sensor/Firmware/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Module/Robot_Interface/Firmware/PcInterface.h b/USB_Module/Robot_Interface/Firmware/PcInterface.h index fa7faca..04a05cb 100644 --- a/USB_Module/Robot_Interface/Firmware/PcInterface.h +++ b/USB_Module/Robot_Interface/Firmware/PcInterface.h @@ -131,7 +131,8 @@ typedef struct _UP { #define AX12_GET_LOAD 0x07 #define AX12_GET_STATS 0x08 #define AX12_WRITE_REG 0x09 -#define AX12_ACTION 0x10 +#define AX12_ACTION 0x10 // <-- ou la loose, bibich sait pas compter en hexa -- dim +#define AX12_RESET 0x11 #define AX12_VALUE8 0x00 #define AX12_VALUE16 0x01 diff --git a/USB_Module/Robot_Interface/Firmware/main.c b/USB_Module/Robot_Interface/Firmware/main.c index a994ee1..b81a33b 100644 --- a/USB_Module/Robot_Interface/Firmware/main.c +++ b/USB_Module/Robot_Interface/Firmware/main.c @@ -981,6 +981,9 @@ void ProcessIO(void) { actionAX12(ReceivedDataBuffer.DATA[1]); break; + case AX12_RESET: + resetAX12(ReceivedDataBuffer.DATA[1]) + default: ToSendDataBuffer.ERR = ERR_UNKNOWN_CMD; } hooks/post-receive -- krobot |
From: Olivier B. <Ba...@us...> - 2010-03-07 16:20:39
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via a6e8536a3b19b3d0de30a97cf8ea60ccfddce72e (commit) from 3f23696522eefa513a92a375459c998e5899df2d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a6e8536a3b19b3d0de30a97cf8ea60ccfddce72e Author: Olivier BICHLER <oli...@gm...> Date: Sun Mar 7 17:20:06 2010 +0100 Added getIntegrationSum() function and added LM command error reporting ----------------------------------------------------------------------- Changes: diff --git a/PC_Mainboard/common/PcInterface.h b/PC_Mainboard/common/PcInterface.h index eaebb09..fa7faca 100644 --- a/PC_Mainboard/common/PcInterface.h +++ b/PC_Mainboard/common/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h index eaebb09..fa7faca 100644 --- a/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h +++ b/PC_Mainboard/python/dev/USB_Com_Layer/src/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/PC_Mainboard/python/dev/User_Interface/PcInterface.h b/PC_Mainboard/python/dev/User_Interface/PcInterface.h index eaebb09..fa7faca 100644 --- a/PC_Mainboard/python/dev/User_Interface/PcInterface.h +++ b/PC_Mainboard/python/dev/User_Interface/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Dev_Board/Firmware/PcInterface.h b/USB_Dev_Board/Firmware/PcInterface.h index eaebb09..fa7faca 100644 --- a/USB_Dev_Board/Firmware/PcInterface.h +++ b/USB_Dev_Board/Firmware/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h index eaebb09..fa7faca 100644 --- a/USB_Module/Battery_Monitoring/Firmware/PcInterface.h +++ b/USB_Module/Battery_Monitoring/Firmware/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Motor_Controller/Firmware/PcInterface.h b/USB_Module/Motor_Controller/Firmware/PcInterface.h index eaebb09..fa7faca 100644 --- a/USB_Module/Motor_Controller/Firmware/PcInterface.h +++ b/USB_Module/Motor_Controller/Firmware/PcInterface.h @@ -80,6 +80,7 @@ typedef struct _UP { #define GET_POWER_STATE 13 ///< Etat de l'alimentation de puissance (On/Off) [Battery Monitoring] #define GET_BATTERY_STATE 14 ///< Etat des batteries (Pleine charge/Charge moyenne/Charge faible) [Battery Monitoring] #define GET_CURRENT_SPEED 15 ///< Demande au PIC la valeur actuelle d'un moteur [Carte d'asservissement] +#define GET_INTEGRATION_SUM 16 ///< Demande au PIC la valeur actuelle du terme integration de l'asservissement [Carte d'asservissement] // CMD_ERR arguments #define ERR_UNKNOWN_CMD 1 ///< Commande inconnue @@ -91,6 +92,7 @@ typedef struct _UP { #define ERR_AX12_CHKSUM 7 #define ERR_CMP03_NOT_RESPONDING 8 #define ERR_ADJD_S371_NOT_RESPONDING 9 +#define ERR_LM_COMMAND_ERROR 10 // CMD_SET arguments #define SET_PORTS_CONFIG_INPUTS 0x00 ///< Dnir les entr du PIC diff --git a/USB_Module/Motor_Controller/Firmware/lm629.c b/USB_Module/Motor_Controller/Firmware/lm629.c index 2745ac4..491d96d 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.c +++ b/USB_Module/Motor_Controller/Firmware/lm629.c @@ -603,7 +603,7 @@ void stop(char axis, WORD type) { } /** - * Rp la position vtable des moteurs drminpar les LMs + * Rp la position vtable des moteurs drminpar les LMs. * * @param axis l'axe moteur correspondant au LM, peut valoir : @n * #MOTOR_RIGHT le moteur de droite uniquement @n @@ -624,7 +624,7 @@ DWORD getRealPosition(char axis) { } /** - * Rp la vitesse vtable des moteurs drminpar les LMs + * Rp la vitesse vtable des moteurs drminpar les LMs. * * @param axis l'axe moteur correspondant au LM, peut valoir : @n * #MOTOR_RIGHT le moteur de droite uniquement @n @@ -645,6 +645,23 @@ DWORD getRealVelocity(char axis) { } /** + * Rp la valeur du terme d'intation. + * + * @param axis l'axe moteur correspondant au LM, peut valoir : @n + * #MOTOR_RIGHT le moteur de droite uniquement @n + * #MOTOR_LEFT le moteur de gauche uniquement @n + * (spfier les #MOTOR_BOTH est bien demment impossible) +*/ +WORD getIntegrationSum(char axis) { + if (axis == MOTOR_BOTH) + return 0; + else { + writeCommand(axis, LM_CMD_RDSUM); + return readDataWord(axis); + } +} + +/** * Avance. * * @param pos position tteindre, en mm, sur 16 bits diff --git a/USB_Module/Motor_Controller/Firmware/lm629.h b/USB_Module/Motor_Controller/Firmware/lm629.h index 2107c1c..a604630 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.h +++ b/USB_Module/Motor_Controller/Firmware/lm629.h @@ -216,6 +216,7 @@ void initLM(char axis, WORD kp, WORD ki, WORD kd, WORD il); // Fonctions de rptions des grandeurs actuelles DWORD getRealPosition(char axis); DWORD getRealVelocity(char axis); +WORD getIntegrationSum(char axis); // Fonctions de gration des trajectoires void newPosition(char axis, DWORD pos, DWORD vel, DWORD acc); diff --git a/USB_Module/Motor_Controller/Firmware/main.c b/USB_Module/Motor_Controller/Firmware/main.c index 385678c..1b2ade5 100644 --- a/USB_Module/Motor_Controller/Firmware/main.c +++ b/USB_Module/Motor_Controller/Firmware/main.c @@ -605,56 +605,41 @@ void ProcessIO(void) { } } - if (state > 0) { - switch (state) { - case 1: - enableMotor(MOTOR_BOTH); - - if (initLMs()) - state = 2; - else - state = -1; - break; + if (readStatusBit(MOTOR_RIGHT, LM_COMMAND_ERROR) || readStatusBit(MOTOR_LEFT, LM_COMMAND_ERROR)) { + error(ERR_LM_COMMAND_ERROR); + resetInterrupt(MOTOR_BOTH); // Nssaire car sinon en cas d'erreur on flood l'USB + } - case 2: - moveForward(1000, 200, 800); // Avance de 10 m - state = 0; - break; -/* - case 3: - if (isTrajComplete()) { - moveBackward(1000, 200, 150); // Recule de 10 m (itesse rite) - state = 4; - } - break; + // Machine d't pour la commande CMD_TEST + switch (state) { + case 1: + enableMotor(MOTOR_BOTH); - case 4: - if (isTrajComplete()) { - moveForward(500, 1000, 1000); // Avance de 500 cm - state = 5; - } - break; + if (initLMs()) + state = 2; + break; - case 5: - if (isTrajComplete()) { - if (!HIDTxHandleBusy(USBInHandle)) { - ToSendDataBuffer.HSEQ = 0; // Num sence PC - ToSendDataBuffer.DSEQ = (UPClientSeq++); // Num sence PIC - ToSendDataBuffer.CMD = CMD_SEND; // Type requ - ToSendDataBuffer.ERR = 0; // Erreur + case 2: + moveForward(1000, 200, 800); // Avance de 10 m + state = 0; + break; +/* + case 3: + if (isTrajComplete()) { + moveBackward(1000, 200, 150); // Recule de 10 m (itesse rite) + state = 4; + } + break; - ToSendDataBuffer.DATA[0] = '\0'; - strcatpgm2ram((char *) &ToSendDataBuffer.DATA[0], (const rom far char *) "Trajectoire comple"); - - USBInHandle = HIDTxPacket(HID_EP, (BYTE*) &ToSendDataBuffer, 64); + case 4: + if (isTrajComplete()) { + moveForward(500, 1000, 1000); // Avance de 500 cm + state = 5; + } + break; - // disableMotor(MOTOR_BOTH); - state = 0; - } - } - break; -*/ - case -1: + case 5: + if (isTrajComplete()) { if (!HIDTxHandleBusy(USBInHandle)) { ToSendDataBuffer.HSEQ = 0; // Num sence PC ToSendDataBuffer.DSEQ = (UPClientSeq++); // Num sence PIC @@ -662,19 +647,18 @@ void ProcessIO(void) { ToSendDataBuffer.ERR = 0; // Erreur ToSendDataBuffer.DATA[0] = '\0'; - strcatpgm2ram((char *) &ToSendDataBuffer.DATA[0], (const rom far char *) "Erreur de commande sur les LMs"); - + strcatpgm2ram((char *) &ToSendDataBuffer.DATA[0], (const rom far char *) "Trajectoire comple"); + USBInHandle = HIDTxPacket(HID_EP, (BYTE*) &ToSendDataBuffer, 64); + + // disableMotor(MOTOR_BOTH); state = 0; } - break; - - default: - state = 0; - } - - if (readStatusBit(MOTOR_RIGHT, LM_COMMAND_ERROR) || readStatusBit(MOTOR_LEFT, LM_COMMAND_ERROR)) - state = -1; + } + break; +*/ + default: + state = 0; } if(!HIDRxHandleBusy(USBOutHandle)) { @@ -783,6 +767,16 @@ void ProcessIO(void) { ToSendDataBuffer.DATA[7] = dword.byte.LB; break; + case GET_INTEGRATION_SUM: + word1.Val = getIntegrationSum(MOTOR_RIGHT); + ToSendDataBuffer.DATA[0] = word1.byte.HB; + ToSendDataBuffer.DATA[1] = word1.byte.LB; + + word1.Val = getIntegrationSum(MOTOR_LEFT); + ToSendDataBuffer.DATA[2] = word1.byte.HB; + ToSendDataBuffer.DATA[3] = word1.byte.LB; + break; + default: ToSendDataBuffer.ERR = ERR_UNKNOWN_GET; } diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof index cbcaeca..9577f82 100644 Binary files a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof and b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof differ diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex index aa7754f..c1942b2 100644 --- a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex +++ b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex @@ -1,18 +1,18 @@ :020000040000FA -:060000000AEF31F01200CE +:06000000DBEF30F01200FE :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:060800000AEF31F01200C6 -:0608080079EF10F0120070 -:06081800E1EF10F01200F8 -:06082A000400A7620000BB -:1008300026010000210000009F6200005F0100000F -:100840000800000091620000470100000E00000057 -:0C0850008E6200006A010000030000003E -:04085C001BEC0DF094 +:06080000DBEF30F01200F6 +:0608080088EF10F0120061 +:06081800F0EF10F01200E9 +:06082A0004004962000019 +:100830002601000021000000416200005F0100006D +:100840000800000033620000470100000E000000B5 +:0C085000306200006A010000030000009C +:04085C0025EC0DF08A :10086000FE0EDB5006E1F80E96163C0E9416959897 :1008700008D0FE0EDB0405E1070E9612C30E94129B -:10088000958820EF0DF0D9CFE6FFE1CFD9FFE652F2 +:1008800095882AEF0DF0D9CFE6FFE1CFD9FFE652E8 :10089000010EE66EE3DFE5528098FE0EDB5004E0C9 :1008A000FE0EDB5002080FE1839C808A0000839ECD :1008B0000000000000008450010BDF6E838E0000FA @@ -98,1394 +98,1387 @@ :100DB000F3CF00F08250400B01E0010E800DF350A4 :100DC0000010011002100310041005100610DF6E51 :100DD000838EDF5000D0E552E552E7CFD9FF1200F5 -:100DE0001BEC0DF0E652DF6A5EEC0DF0DF6EFD0EDF +:100DE00025EC0DF0E652DF6A68EC0DF0DF6EFD0ECB :100DF000DB50DF14DF6EDF5002E0010E01D0000E89 -:100E0000E55220EF0DF01BEC0DF01D0EB1EC0CF0D7 -:100E1000000E87EC0FF020EF0DF01BEC0DF05EECF8 -:100E20000DF084080DE05EEC0DF0C40809E0E66A00 -:100E300067EC0FF00DEC0EF0DDEC30F0E552EFD783 -:100E40001C0EB1EC0CF00A0E87EC0FF011EC0EF05A -:100E50005EEC0DF0800804E05EEC0DF0C008E7E108 -:100E60005EEC0DF0C00802E111EC0EF01E0EB1ECCC -:100E70000CF00F0E87EC0FF038EC10F0FA0EDBCF11 -:100E8000E6FFFB0E2EEC0FF0F80EDBCFE6FFF90EBF -:100E90002EEC0FF0F60EDBCFE6FFF70E2EEC0FF088 -:100EA000040EB1EC0CF020EF0DF01BEC0DF0080E71 -:100EB000E126010EEEEC0CF0010EE7CFDBFF020E97 -:100EC000AFEC0FF0DF6E030EEEEC0CF0030EE7CF8D -:100ED000DBFF040EEEEC0CF0020EE7CFDBFF050E9D -:100EE000EEEC0CF0050EE7CFDBFF060EEEEC0CF09F -:100EF000040EE7CFDBFF070EEEEC0CF0070EE7CF9A -:100F0000DBFF080EEEEC0CF044EC0DF0E66A16EC9C -:100F10000EF0090EEEEC0CF0010EE7CFDBFF0A0E2F -:100F2000AFEC0FF0DF6E0B0EEEEC0CF0030EE7CF24 -:100F3000DBFF0C0EEEEC0CF0020EE7CFDBFF0D0E2C -:100F4000EEEC0CF0050EE7CFDBFF0E0EEEEC0CF036 -:100F5000040EE7CFDBFF0F0EEEEC0CF0070EE7CF31 -:100F6000DBFF100EEEEC0CF044EC0DF0010EE66E23 -:100F700016EC0EF0020EE66EE66E0DEC0EF0E66A72 -:100F8000D4EC0DF007E1020EE66E010EE66ED4EC35 +:100E0000E5522AEF0DF025EC0DF01D0EAFEC0CF0C5 +:100E1000000E92EC0FF02AEF0DF025EC0DF068ECCF +:100E20000DF084080DE068EC0DF0C40809E0E66AF6 +:100E300080EC0FF011EC0EF0AEEC30F0E552EFD795 +:100E40001C0EAFEC0CF00A0E92EC0FF015EC0EF04D +:100E500068EC0DF0800804E068EC0DF0C008E7E1F4 +:100E600068EC0DF0C00802E115EC0EF01E0EAFECC0 +:100E70000CF00F0E92EC0FF047EC10F0FA0EDBCFF7 +:100E8000E6FFFB0E39EC0FF0F80EDBCFE6FFF90EB4 +:100E900039EC0FF0F60EDBCFE6FFF70E39EC0FF072 +:100EA000040EAFEC0CF02AEF0DF025EC0DF0080E5F +:100EB000E126010EF8EC0CF0010EE7CFDBFF020E8D +:100EC000BAEC0FF0DF6E030EF8EC0CF0030EE7CF78 +:100ED000DBFF040EF8EC0CF0020EE7CFDBFF050E93 +:100EE000F8EC0CF0050EE7CFDBFF060EF8EC0CF08B +:100EF000040EE7CFDBFF070EF8EC0CF0070EE7CF90 +:100F0000DBFF080EF8EC0CF04EEC0DF0E66A1AEC84 +:100F10000EF0090EF8EC0CF0010EE7CFDBFF0A0E25 +:100F2000BAEC0FF0DF6E0B0EF8EC0CF0030EE7CF0F +:100F3000DBFF0C0EF8EC0CF0020EE7CFDBFF0D0E22 +:100F4000F8EC0CF0050EE7CFDBFF0E0EF8EC0CF022 +:100F5000040EE7CFDBFF0F0EF8EC0CF0070EE7CF27 +:100F6000DBFF100EF8EC0CF04EEC0DF0010EE66E0F +:100F70001AEC0EF0020EE66EE66E11EC0EF0E66A6A +:100F8000DCEC0DF007E1020EE66E010EE66EDCEC25 :100F90000DF002E0000E01D0010E006E080EE15CC3 -:100FA00002E2E16AE552E16E005020EF0DF01BEC29 -:100FB0000DF00C0EE12674EC0DF0D950F20F8BEC15 +:100FA00002E2E16AE552E16E00502AEF0DF025EC15 +:100FB0000DF00C0EE1267EEC0DF0D950F20F96EC00 :100FC0000FF0080EEECFDBFF090EEECFDBFF0A0EAF -:100FD000EECFDBFF0B0EEECFDBFF1F0EB1EC0CF004 +:100FD000EECFDBFF0B0EEECFDBFF1F0EAFEC0CF006 :100FE000080EDBCF00F0090EDBCF01F00A0EDBCFDD -:100FF00002F00B0E99EC0FF00CE02B0E87EC0FF0CB -:101000000A0EDBCFE6FF0B0E2EEC0FF09FEC0DF07F -:1010100003D00B0EE66EE66A78EC0CF002EC10F0F2 -:10102000DAEC0DF009E184EC0CF078EC0CF071ECEA -:101030000FF067EC0FF01CD0DAEC0DF003E0FE0EC1 -:10104000DB0408E184EC0CF0C4EC0DF071EC0FF063 -:10105000C4EC0DF0DAEC0DF003E0FE0EDB500AE11B -:1010600084EC0CF0E66A48EC0FF071EC0FF0E66AE5 -:1010700048EC0FF00C0EE15C02E2E16AE552E16E31 -:1010800020EF0DF01BEC0DF00A0EE126D9CFE9FFA1 +:100FF00002F00B0EA0EC0FF00CE02B0E92EC0FF0B9 +:101000000A0EDBCFE6FF0B0E39EC0FF0A9EC0DF06A +:1010100003D00B0EE66EE66A82EC0CF011EC10F0D9 +:10102000D4EC0DF009E18EEC0CF082EC0CF078ECD5 +:101030000FF080EC0FF01CD0D4EC0DF003E0FE0EAE +:10104000DB0408E18EEC0CF0C8EC0DF078EC0FF04E +:10105000C8EC0DF0D4EC0DF003E0FE0EDB500AE11D +:101060008EEC0CF0E66A53EC0FF078EC0FF0E66AC9 +:1010700053EC0FF00C0EE15C02E2E16AE552E16E26 +:101080002AEF0DF025EC0DF00A0EE126D9CFE9FF8D :10109000DACFEAFFFA0EDBCFEEFFFB0EDBCFEEFF7F -:1010A000FC0EDBCFEEFFFD0EDBCFEEFF74EC0DF0A0 -:1010B000080EF36EDB6E090EF3CFDBFF1F0EB1ECF3 -:1010C0000CF08AEC0DF007E0D950080FE96EDACF8A -:1010D000EAFFEE8AED52DAEC0DF00BE1F50EDB5093 -:1010E000FF0802E1C8EC0DF09FEC0DF067EC0FF08B -:1010F0001FD0DAEC0DF003E0FE0EDB040AE1F50E82 -:10110000DB50FF0802E1C8EC0DF09FEC0DF0C4ECE1 -:101110000DF0DAEC0DF003E0FE0EDB500BE1F50E06 -:10112000DB50FF0802E1C8EC0DF09FEC0DF0E66A21 -:1011300048EC0FF08AEC0DF002E002EC10F0020E29 -:10114000DBCFE6FF030E2EEC0FF071EC0FF0D0DBDF -:101150000A0EE15C02E2E16AE552E16E20EF0DF079 -:101160001BEC0DF0F90EDBCFE6FFE66AE66AE66AF5 -:10117000E66AD950FA0F8BEC0FF079EC0FF067ECC0 -:101180000FF080DF006E0A0EE15E005020EF0DF0E0 -:101190001BEC0DF0FE0EDB5003E0DAEC0DF013E17A -:1011A0000A0EE66EE66A90EC0FF0E66A95EC0FF038 -:1011B000F3CF61F1F4CF62F1E66A95EC0FF0F3CF73 -:1011C0005FF1F4CF60F1FE0EDB0403E0DAEC0DF02A -:1011D00016E10A0EE66E010EE66E90EC0FF0010EBF -:1011E000E66E95EC0FF0F3CF65F1F4CF66F1010EEA -:1011F000E66E95EC0FF0F3CF63F1F4CF64F1010EDE -:10120000B0DB20EF0DF01BEC0DF01F0EAADB38EC6D -:1012100010F0010EA6DB20EF0DF0A0EC0FF005E1C1 -:101220003D6A3E6A3F6A406A0ED00A0E9ADBB1EC14 -:101230000DF067EC0FF095EC0FF0F3CFDEFFF4CF7D -:10124000DDFFDEEC0DF0040EE15C02E2E16AE55246 -:10125000E16EF6D3A0EC0FF005E13D6A3E6A3F6A0D -:10126000406A08D00B0E7DDBB1EC0DF0DE6ADD6A62 -:10127000DEEC0DF0040EE15C02E2E16AE552E16EA3 -:10128000DFD33EEC10F0E9EC0DF055EC0DF0D8D3C7 -:101290003EEC10F082DB020E55EC0DF0D1D376EC73 -:1012A0000FF09BEC0EF079DBE66A81DE08EC0EF0C5 -:1012B0009BEC0EF0B9EC0FF04EEF0FF076EC0FF068 -:1012C0009BEC0EF063EC0DF008EC0EF09BEC0EF0D6 -:1012D00064DB4EEF0FF076EC0FF0F60EDB5020E003 -:1012E000006A800E016E010E026E430E036E55EC15 -:1012F00010F070EC10F0436A446AC80E456E420E5E -:10130000466ECEEC22F0CAEC0FF0E9DA29EC10F0D0 -:101310008EEC23F0F70E3FC0DBFFF80E40C0DBFF82 -:10132000BEEC0EF037EC22F015EC0FF0CCDB386E93 -:101330000D0EE15E3850BEEC0EF038EC22F015ECEC -:101340000FF02BDB010EE66E32DE386E0D0EE15E25 -:10135000385023EC10F074D36EDB3C0EE1260FEC1A -:101360000FF0BDEC0FF00FEC0FF00DEC10F008C01B -:101370003EF009C03FF00AC040F00BC041F021EC44 -:1013800023F0CAEC0FF073EC10F0F3EC0FF073ECF9 -:1013900010F0F9EC0DF0A3DA14C03EF015C03FF0E8 -:1013A00016C040F017C041F021EC23F076EC10F0AD -:1013B00039DB38EC22F0C9DA436A446A800E456EA4 -:1013C000CCDB380E3EC0DBFF390E3FC0DBFF3A0EF0 -:1013D00040C0DBFF3B0E41C0DBFF0FEC0FF0B5DA86 -:1013E00076DB62EC0FF0F7DA72DB80EC2BF0086E44 -:1013F000080EE15E0850080E3DC0DBFF090E3EC03E -:10140000DBFF0A0E3FC0DBFF0B0E40C0DBFF7CDBC7 -:10141000F60EDB5007E0D950F40F8BEC0FF0EE50D6 -:10142000ED1039E111DB080EDBCF0EF0090EDBCF3A -:101430000FF00A0EDBCF10F00B0E78EC0EF030DA66 -:1014400055EC0FF03E6A3F6A800E406E400E416ED2 -:10145000380EDBCF43F0390EDBCF44F03A0EDBCF52 -:1014600045F03B0E2CEC10F036DB31DB6FDB3DC082 -:1014700002F03EC003F03FC004F040C005F03DC0A4 -:101480003EF0A5EC0FF06BEC0FF0FBDE0A6E060EE3 -:10149000E15E0A50D2D1380EDBCF04F0390EDBCF3B -:1014A00005F03A0EDBCF06F03B0EDBCF07F0AADBF0 -:1014B000E5DA76EC10F063EC10F0E0DA9ADB82EC1F -:1014C0000FF02AEC0FF038EC22F0140E3EC0DBFFD8 -:1014D000150E3FC0DBFF160E40C0DBFF170ECCDB46 -:1014E0000FEC0FF02AEC0FF021EC23F0180E3EC0A9 -:1014F000DBFF190E3FC0DBFF1A0E40C0DBFF1B0EE7 -:10150000BBDB73EC10F02AEC0FF021EC23F01C0E87 -:101510003EC0DBFF1D0E3FC0DBFF1E0E40C0DBFFE9 -:101520001F0E41C0DBFF1C0EDBCF00F01D0EDBCF1A -:1015300001F01E0EDBCF02F01F0EDBCF03F07DDBD0 -:1015400029EC10F0200E3EC0DBFF210E3FC0DBFF78 -:10155000220E40C0DBFF230E41C0DBFFD950180F25 -:10156000E96EDACFEAFF240EEECFDBFF250EEECFD9 -:10157000DBFF260EEECFDBFF270EEECFDBFFFD0EEF -:10158000DBCF3FF0FE0E17EC10F0200EDBCF43F068 -:10159000210EDBCF44F0220EDBCF45F0230E32ECE0 -:1015A0000FF0280E3EC0DBFF290E3FC0DBFF2A0EE6 -:1015B00040C0DBFF2B0E41C0DBFF62EC0FF017ECED -:1015C00010F0240EDBCF43F0250EDBCF44F0260EC7 -:1015D000DBCF45F0270E32EC0FF02C0E3EC0DBFFC8 -:1015E0002D0E3FC0DBFF2E0E40C0DBFF2F0E41C093 -:1015F000DBFF2C0EDBCF04F02D0EDBCF05F02E0E23 -:10160000DBCF06F02F0EDBCF07F017DB0BDA21EC78 -:1016100023F038EC0FF0300E3EC0DBFF310E3FC040 -:10162000DBFF320E40C0DBFF330E41C0DBFF280E74 -:10163000DBCF3EF0290EDBCF3FF02A0EDBCF40F0B0 -:101640002B0EDBCF41F038EC0FF0340E3EC0DBFF49 -:10165000350E3FC0DBFF360E40C0DBFF370E41C00A -:10166000DBFFD950300FD9D9D950340FD6D980ECFF -:101670002BF0006E080EE15E00500C0E3DC0DBFF4B -:101680000D0E3EC0DBFF0E0E3FC0DBFF0F0E40C055 -:10169000DBFF006A016A026A400E036E00C0E6FFCB -:1016A00001C0E6FF02C0E6FFE66E8FDBBDEC0FF087 -:1016B0000EDA42EC10F03DC014F03EC015F03FC011 -:1016C00016F040C017F0B9EC0FF080EC2BF0186E5C -:1016D000080EE15E1850E552E7CF03F0E552E7CF80 -:1016E00002F0E552E7CF01F0E552E7CF00F03DC050 -:1016F00004F03EC005F03FC006F040C007F016DA27 -:1017000029EC10F0100E3EC0DBFF110E3FC0DBFFD6 -:10171000120E40C0DBFF130E41C0DBFFF60EDB50A4 -:1017200002081DE1E5EC0FF037EC22F01CEC10F0A4 -:1017300038EC22F043D91EDA060E3FC0DBFF070E5D -:1017400040C0DBFFB4EC0FF046D9020EDBCF3FF018 -:10175000030E5DDB040E3FC0DBFF050E4FD03E6A7B -:101760003F6A406A400E416E080EDBCF43F0090E1F -:10177000DBCF44F00A0EDBCF45F00B0E2CEC10F063 -:10178000E4D80C0EDBCF04F00D0EDBCF05F00E0E0F -:10179000DBCF06F00F0EDBCF07F004C043F005C02F -:1017A00044F006C045F007C046F037EC22F00C0EBE -:1017B0003EC0DBFF0D0E3FC0DBFF0E0E40C0DBFF67 -:1017C0000F0E41C0DBFFE5EC0FF038EC22F01CEC13 -:1017D00010F037EC22F0F2D8CDD9040E3FC0DBFF79 -:1017E000050E40C0DBFF020EDBCF3FF0030EF3D847 -:1017F000BBDB0DDB060E3FC0DBFF070E40C0DBFF8F -:101800004FD8ACD8040EDBCF3FF0050E1DDAB1DBAC -:10181000ABDBA2DB58D9206E0D0EE15E20509ED8C6 -:10182000060EDBCF3FF0070E0FDAD3D9DBCF3FF048 -:10183000030E92DB9EDB010E38D93C0EE15C02E226 -:10184000E16AE552E16EFCD0E66AE7DCE5520101AF -:101850005F513D5C066E60513E58076E61513F58C6 -:10186000086E6251BED0010EE66ED7DCE552010172 -:1018700063513D5C066E64513E58076E65513F589A -:10188000086E6651AED0040EE66EE66A8DD906E0AB -:10189000040EE66E010EE66E87D901E1000C010C24 -:1018A000F2DF0009FDE012005AEC10F04FDA0ADB1B -:1018B000CBD95FDB0FEF0FF03EC01CF03FC01DF037 -:1018C00040C01EF041C01FF077DBF9DB3DC018F0CF -:1018D0003EC019F03FC01AF040C01BF012003EC0DD -:1018E00043F03FC044F040C045F041C046F0120014 -:1018F000EEDA48EF0FF000C03EF001C03FF002C04A -:1019000040F003C041F01200FA0EDBCF00F0FB0EF6 -:10191000DBCF01F0FC0EDBCF02F0FD0EDBCF03F0DE -:10192000000E006C011E0122021E0222031E032271 -:1019300000C0DFFF010E01C0DBFF020E02C0DBFFB3 -:10194000030E03C0DBFF47EF10F03EC000F03FC0C6 -:1019500001F040C002F041C003F01200A6DBA6EF88 -:101960000EF0E66EB4DA90EF0FF002C03EF0EDDA62 -:1019700037EC22F0B0DA93DC126E060EE15E125004 -:101980001200466E21EC23F03EC020F03FC021F053 -:1019900040C022F041C023F01200000E186C191E46 -:1019A00019221A1E1A221B1E1B2218C0E6FF19C07C -:1019B000E6FF1AC0E6FF1BC0E6FF1200100EDBCFE9 -:1019C00043F0110EDBCF44F0120EDBCF45F0130EC7 -:1019D00043DB8EEF23F0DADACAEF0FF0C0DAE76EFE -:1019E00012004058096E06C03DF007C03EF008C026 -:1019F0003FF0406E1EEC22F03EC002F03FC003F00C -:101A000040C004F041C005F0D7DACEEC22F046DB4E -:101A10003FC0F3FF40C0F4FF1200E96EDACFEAFFE7 -:101A200079EF0FF004C03EF005C03FF006C040F073 -:101A300007C041F01200D9CFE6FFE1CFD9FF120075 -:101A4000E552E7CFD9FF120030DA026A036AB40E1A -:101A5000046E420E056E12003EC024F03FC025F019 -:101A600040C026F041C027F012000CC03EF00DC06F -:101A70003FF00EC040F00FC041F01200F40EDBCF7B -:101A80003FF0F50EC6EF0FF0060EE7CFDBFFDBCF22 -:101A9000E6FF070EDBCFE6FF040EDBCFE6FF050E09 -:101AA000DBCFE6FFF4DA71EF0FF0E66ED7EC07F06C -:101AB000206E0D0EE15E205023EF10F008DA90EC5E -:101AC00006F0E552120055DAE66AD7EF07F001DBBF -:101AD00041C0E6FF12003EC006F03FC007F040C024 -:101AE00008F041C009F01200D950F60F14DA040EC4 -:101AF000EECFDBFF050EEECFDBFF060EEECFDBFFFA -:101B0000070EEECFDBFF1200020EE66E03EC07F0CD -:101B1000E5521200040EDBCF00F0050EDBCF01F022 -:101B2000060EDBCF02F0070E99EF0FF03DC043F039 -:101B30003EC044F03FC045F040C046F01200080EE1 -:101B4000DBCFE6FF090EDBCFE6FF120093EC27F0B8 -:101B5000E552E552E552E5521200400E466ECEEFD8 -:101B600022F0B5D9E2D9020EF3CFDBFF030EF4CF9A -:101B7000DBFF1200020E3FC0DBFF030E40C0DBFFA5 -:101B800099DADBCF40F01200010EE66E48EF0FF05D -:101B9000D950080FE96EDACFEAFFEE52ED88120055 -:101BA000456E430E466E1200F0EC06F0E552E5522B -:101BB00000091200FE0EDB5002081200DECF3DF0DD -:101BC000DECF3EF0DECF3FF0DDCF40F0DD52DD5224 -:101BD0001200CFD9020E1200436A800E446E12002A -:101BE00030C03EF031C03FF032C040F033C041F071 -:101BF00012003EC018F03FC019F040C01AF041C0BA -:101C00001BF012000C6A0D6A0E6A400E0F6E120075 -:101C1000286E0D0EE15E2850120082D9020EE66E8B -:101C2000120055D903EC07F0E55212000DEC07F055 -:101C3000006E090EE15E00501200436A446A800E95 -:101C4000456EBF0E466E1200A1D9CDD9B5D921EC93 -:101C500023F0A9D9BD0E436E370E446E860E456E35 -:101C6000410E466E2CDA3DC00CF03EC00DF03FC078 -:101C70000EF040C00FF0120041C0DBFF046A056A9D -:101C8000800E066E3F0E076EBDDF04C0E6FF05C086 -:101C9000E6FF06C0E6FF07C0E6FF0CC0E6FF0DC08A -:101CA000E6FF0EC0E6FFE66EEDD9E552E7CF0FF096 -:101CB000E552E7CF0EF0E552E7CF0DF0E552E7CF62 -:101CC0000CF0E552E7CF07F0E552E7CF06F0E5521A -:101CD000E7CF05F0E552E7CF04F03DC010F03EC07D -:101CE00011F03FC012F040C013F020DF63EF10F09E -:101CF000DBCF11F0436A446A340E52DF0EC03EF06F -:101D00000FC03FF010C040F011C041F021EC23F0B3 -:101D10003EC00AF03FC00BF040C00CF041C00DF0D7 -:101D2000DB0E436E0F0E446E490E456E16DFD3DE9A -:101D3000D6DDB5EF0CF0B8DD8FDE92D922DE4CDFB8 -:101D4000810E2EDF21EC23F05CEF0CF0C9D934D9E1 -:101D500021EC23F01FD9CC0E436EBC0E446E8C0ECA -:101D6000456E3B0E466EABD93DC000F03EC001F063 -:101D70003FC002F040C003F0B9EF0FF095DD3EC068 -:101D800028F03FC029F040C02AF041C02BF068D9AC -:101D9000466E21EC23F060DE436A446A456A400ED9 -:101DA000F0DD306A800E316E010E326E430E336EFE -:101DB0007CD9ECD83EC034F03FC035F040C036F09E -:101DC00041C037F08CDDF0EF0DF0140EDBCF0CF0DE -:101DD000150EDBCF0DF0160EDBCF0EF0170EDBCF9E -:101DE0000FF04CDE83D941DE37EF22F0140EDBCF4B -:101DF00000F0150EDBCF01F0160EDBCF02F0170E50 -:101E0000DBCF03F0E9DE010ECBDE7BEF0CF068D90F -:101E1000F3D850D9BBD801D91CD98EEF23F0FD0ED1 -:101E2000DBCF3FF0FE0EC6EF0FF03EC02CF03FC000 -:101E30002DF040C02EF041C02FF051DD20C03EF00B -:101E400021C03FF022C040F023C041F021EC23F03C -:101E50005CEF0CF0C8D843DD7BEF0CF0DBCFE6FF86 -:101E600078EF0CF0F9D889D83ADD45DD37EF22F06C -:101E7000140EDBCF43F0150EDBCF44F0160EDBCF94 -:101E800045F0170EDBCF46F0CEEC22F0A5EF0CF0BC -:101E9000FDEC04F0E552E552E5521200010EE66E4B -:101EA000D7EC07F0B5DECFD8CBD5F70EDBCFE6FF0A -:101EB000F80EDBCFE6FFF90EDBCFE6FFFA0EDBCF45 -:101EC000E6FF1200FB0EDBCF3FF0FC0E1200FE0E11 -:101ED000DBCFE6FF1200E2D83FC0E6FF40C0E6FFDE -:101EE0001200DECFE6FFDDCFE6FF1200A4DD84EFB7 -:101EF0000DF0EECFE6FFEECFE6FFEECFE6FFEFCF41 -:101F0000E6FF1200436A446A456AADEF0DF0E66EE3 -:101F1000E66A78EF0CF0E96EFF0EDA20EA6E120046 -:101F20007EEC04F0E552E5521200E2EC05F0E552D9 -:101F30001200DBCF03F0005001100210031012005A -:101F40007ADD040EE126DAEF0DF003C03FF004C0A5 -:101F500040F005C041F0120019D85CEF0CF0E66EBD -:101F600024EC30F0E5521200000EDFCF3FF0010EFE -:101F700012003DC0E6FF69EF10F03EC008F03FC020 -:101F800009F040C00AF041C00BF01200DBCF40F076 -:101F900009EF22F03EC004F03FC005F040C006F05B -:101FA00041C007F012003EC010F03FC011F040C029 -:101FB00012F041C013F01200330E436EE20E446E75 -:101FC000C20E456E420E466E12003EDD0C0EDBCF99 -:101FD0000EF00D0EDBCF0FF00E0EDBCF10F00F0E5C -:101FE00087DEF6EF0EF03EC014F03FC015F040C0A3 -:101FF00016F041C017F0120072DC14DDCEEC22F0B6 -:10200000A5EF0CF0060EDBCFE6FF070E27DF040E70 -:10201000DBCFE6FF050E2EEF0FF03EC00CF03FC009 -:102020000DF040C00EF041C00FF06FEF0CF0D3DCAC -:1020300069DF8BDCE5EF0EF0C1DC3FC0DEFF40C0A6 -:10204000DDFFF6EF0EF0020EE66EC8EC08F0E5528A -:10205000120051DC21EF23F0DBCF46F021EF23F01B -:10206000350E436EFA0E446E0E0E456E3C0E120097 -:10207000FC0EDBCFE6FFFD0E2EEF0FF037DF14DC9A -:102080005CEF0CF0D950380FC8DCA6EF0DF0020E53 -:10209000DBCFE6FF030EDBCFE6FF12008EEC23F072 -:1020A0003FC000F040C001F01200F70EDBCF3FF060 -:1020B000F80E1200F90EDBCF3FF0FA0E120021EC01 -:1020C00023F0BDEF23F0D1DC21EC23F056DFFCEF51 -:1020D0000FF03EC0E6FF3FC0E6FF40C0E6FF120043 -:1020E00055DFBDEF0FF0EEDEC6EF0FF05CDF6FEFF8 -:0220F0000CF0F2 -:0E20F200DACFE4FFE2CFDAFFE9CFE4FFEACF76 -:10210000E4FFF6CFE4FFF7CFE4FFF5CFE4FFF3CF32 -:10211000E4FFF4CFE4FFFACFE4FF00EE39F0140E51 -:10212000E80403E3EECFE4FFFBD700EE00F0390E46 -:10213000E80403E3EECFE4FFFBD739EC1CF09EA0EC -:1021400013D043EC1CF001014D2B000E4E23E80E82 -:102150004D5D030E4E5905E34D6B4E6B4F2B000E3C -:102160005023B4EC29F09E904CEC1CF002E2E16AA2 -:10217000E552E16EE552E7CFD9FFE55200EE38F0C7 -:10218000390EE80403E3E5CFEDFFFBD700EE4CF09A -:10219000140EE80403E3E5CFEDFFFBD7E5CFFAFF2C -:1021A000E5CFF4FFE5CFF3FFE5CFF5FFE5CFF7FF90 -:1021B000E5CFF6FFE5CFEAFFE5CFE9FFE5CFDAFFB0 -:1021C0001100D8CFE4FFE0CFE4FFE46EDACFE4FF04 -:1021D000E2CFDAFFF3CFE4FFF4CFE4FF39EC1CF0F9 -:1021E0004CEC1CF002E2E16AE552E16EE552E7CF09 -:1021F000D9FFE552E5CFF4FFE5CFF3FFE5CFDAFFF6 -:10220000E550E5CFE0FFE5CFD8FF100004D897EC0C -:102210001CF060D8FCD70F0EC11202D861EF1CF081 -:102220005CEC1CF0E65210EC1CF00101676F070E2D -:10223000675D10E1E66A24EC30F0E552DF6E000ED7 -:10224000DF8054EC1CF0E66ADDEC30F0E552DF7024 -:1022500054EC1CF0D08EF28EF28CF30E8C16951688 -:102260000101476B486B496B4A6B010E4B6F9294AF -:102270008094939881980D0EE66E7C0EE66EE10ECA -:10228000E66E97EC2FF0E552E552E552C70E921636 -:1022900094943F0E9516010EE66E2EEC04F0E55276 -:1022A000838C808A82848088838E80868294010ECB -:1022B000E66E18EC31F0E55282849D80C50EE66E24 -:1022C0006DEC30F0E55243EC1CF0E552E552E7CFFF -:1022D000D9FF1200D9CFE6FFE1CFD9FF0F0EE126DB -:1022E00001014B5102E055EC1BF0200E0101005D95 -:1022F00003E36D50020B02E04BEF1BF0010149516B -:102300004A1102E1000E08D049C1E9FF4AC1EAFFC3 -:10231000EF50800B01E0010E000947E10101465139 -:10232000EA6A260FE96E010EEA22EF5000083DE24C -:102330000501406B01014C514C2B0501416F05011A -:10234000040E426F01014651EA6A260FE96E010E42 -:10235000EA22EFCF43F5400EE66E400EE66E050E24 -:10236000E66E010EE66E010EE66EB2EC20F0006E37 -:10237000050EE15E0050F3CF49F1F4CF4AF10101BF -:102380004651EA6A260FE96E010EEA22EF6A010160 -:102390004651000803E20101460707D001014551FB -:1023A000000803E201011F0E466F010149514A1165 -:1023B00002E1000E08D049C1E9FF4AC1EAFFEF502F -:1023C000800B01E0010E00092CE10101520529E119 -:1023D00043EC0CF0000925E00501406B01014C5174 -:1023E0004C2B0501416F05010A0E426F0501436B3D -:1023F0000501010E486F400EE66E400EE66E050EBA -:10240000E66E010EE66E010EE66EB2EC20F0006E96 -:10241000050EE15E0050F3CF49F1F4CF4AF101011E -:10242000526B000E0101E76E5119E8AE02D0513532 -:1024300003D0E750D880515501E38ED001015151AE -:10244000FF0A29E0FD0A13E0030A01E06ED0020E44 -:10245000E66E00EC2BF0E55255EC07F0000904E0C5 -:102460000101020E516F02D00101516960D0200EAE -:10247000E66E030EE66EC80EE66EE66AE80EE66EDF -:10248000030EE66E41EC09F0006E060EE15E0050B0 -:102490000101516B4CD0010149514A1102E1000E7A -:1024A00008D049C1E9FF4AC1EAFFEF50800B01E0C3 -:1024B000010E000939E10501406B01014C514C2B23 -:1024C0000501416F0501050E426F0501436B0501D2 -:1024D000486B0F0E006E5F0E016E026A00C0E6FFD1 -:1024E00001C0E6FF02C0E6FF480EE66E050EE66E8E -:1024F000E8EC2FF0036E050EE15E0350400EE66E31 -:10250000400EE66E050EE66E010EE66E010EE66EFC -:10251000B2EC20F0006E050EE15E0050F3CF49F101 -:10252000F4CF4AF10101516B02D00101516B020E4F -:10253000E66EE66AF0EC06F0E552E55200090AE1C3 -:10254000020EE66E010EE66EF0EC06F0E552E55284 -:10255000000902E00101516901014751481102E1FE -:10256000000E08D047C1E9FF48C1EAFFEF50800BD9 -:1025700001E0010E000902E04BEF1BF005010251E2 -:10258000070A02E1ACEF1AF00D0A01E131D2010AAB -:1025900001E101D20D0A01E199D1040A1AE0030A0E -:1025A00007E0010A02E00AEF1BF0FF004BEF1BF00F -:1025B000E66A24EC30F0E552DF6E000EDB80DFCF00 -:1025C000E6FFE66A04EC30F0E552E552FF004BEF1F -:1025D0001BF0010149514A1102E1000E08D049C126 -:1025E000E9FF4AC1EAFFEF50800B01E0010E00094C -:1025F00001E06AD100C540F50501416B0501030EFC -:10260000426F0501436B050108510F0A01E1F8D043 -:10261000080A01E1BBD0010A01E17ED0020A71E0A3 -:10262000070A64E0010A20E0030A06E0010A01E06B -:1026300021D167C148F521D10501486BEB0E006E31 -:102640005E0E016E026A00C0E6FF01C0E6FF02C036 -:10265000E6FF480EE66E050EE66EE8EC2FF0036E20 -:10266000050EE15E035009D10501486BDF0E006ED7 -:102670005E0E016E026A00C0E6FF01C0E6FF02C006 -:10268000E6FF480EE66E050EE66EE8EC2FF0036EF0 -:10269000050EE15E0350DD0E006E5E0E016E026AF5 -:1026A00000C0E6FF01C0E6FF02C0E6FF480EE66E8E -:1026B000050EE66EE8EC2FF0036E050EE15E0350AA -:1026C000D40E006E5E0E016E026A00C0E6FF01C00D -:1026D000E6FF02C0E6FF480EE66E050EE66EE8EC89 -:1026E0002FF0036E050EE15E0350C7D092CF48F580 -:1026F00093CF49F594CF4AF595CF4BF596CF4CF54E -:10270000BCD080CF48F581CF49F582CF4AF583CF41 -:102710004BF584CF4CF5B1D0E66A5AEC2AF0E5527D -:10272000010E3DC0DBFF020E3EC0DBFF030E3FC0CB -:10273000DBFF040E40C0DBFF040EDBCF48F5030EC9 -:10274000DBCF49F5020EDBCF4AF5010EDBCF4BF5AF -:10275000010EE66E5AEC2AF0E552010E3DC0DBFF99 -:10276000020E3EC0DBFF030E3FC0DBFF040E40C085 -:10277000DBFF040EDBCF4CF5030EDBCF4DF5020E75 -:10278000DBCF4EF5010EDBCF4FF577D0E66A0DECCF -:1027900009F0E552010E3DC0DBFF020E3EC0DBFF3B -:1027A000030E3FC0DBFF040E40C0DBFF040EDBCF97 -:1027B00048F5030EDBCF49F5020EDBCF4AF5010EDB -:1027C000DBCF4BF5010EE66E0DEC09F0E552010E84 -:1027D0003DC0DBFF020E3EC0DBFF030E3FC0DBFF50 -:1027E000040E40C0DBFF040EDBCF4CF5030EDBCF45 -:1027F0004DF5020EDBCF4EF5010EDBCF4FF53DD090 -:10280000E66A2AEC09F0E552010E3DC0DBFF020E3C -:102810003EC0DBFF030E3FC0DBFF040E40C0DBFF0A -:10282000040EDBCF48F5030EDBCF49F5020EDBCFFC -:102830004AF5010EDBCF4BF5010EE66E2AEC09F0EE -:10284000E552010E3DC0DBFF020E3EC0DBFF030E72 -:102850003FC0DBFF040E40C0DBFF040EDBCF4CF5B6 -:10286000030EDBCF4DF5020EDBCF4EF5010EDBCFB5 -:102870004FF503D00501020E436F400EE66E400E89 -:10288000E66E050EE66E010EE66E010EE66EB2EC29 -:1028900020F0006E050EE15E0050F3CF49F1F4CF59 -:1028A0004AF1400EE66E000EE66E050EE66EE66A32 -:1028B000010EE66EB2EC20F0006E050EE15E0050F7 -:1028C000F3CF47F1F4CF48F14BEF1BF0050108516E -:1028D000030A37E0010A25E0030A13E0010A01E0D8 -:1028E00040D005010951921205010A5193120501C8 -:1028F0000B51941205010C51951205010D519612C0 -:1029000035D00501091D921605010A1D9316050112 -:102910000B1D941605010C1D951605010D1D96162F -:1029200025D00501091D891605010A1D8A16050114 -:102930000B1D8B1605010C1D8C1605010D1D8D162A -:1029400015D005010951891205010A518A120501A4 -:102950000B518B1205010C518C1205010D518D127A -:1029600005D0030EE66EAAEC30F0E552400EE66E9E -:10297000000EE66E050EE66EE66A010EE66EB2EC3D -:1029800020F0006E050EE15E0050F3CF47F1F4CF6A -:1029900048F14BEF1BF005010851020A09E0030A58 -:1029A00001E00CD009C5E6FF00EC2BF0E5520BD09E -:1029B00009C5E6FF10EC2BF0E55205D0010EE66EDE -:1029C000AAEC30F0E552400EE66E000EE66E050E03 -:1029D000E66EE66A010EE66EB2EC20F0006E050EC1 -:1029E000E15E0050F3CF47F1F4CF48F14BEF1BF01D -:1029F00005010851060A02E16BEF1AF0080A02E12C -:102A000031EF1AF0030A02E128EF1AF0070A02E197 -:102A1000C4EF19F0030A02E10CEF19F0010A01E119 -:102A20000BD30F0A01E1F4D2020A01E1A9D2150A7F -:102A300001E16AD2140A01E139D2070A01E108D2A0 -:102A4000010A01E1D7D1030A01E1A6D1010A01E19E -:102A5000A0D10C0A01E126D1030A01E194D0040AB5 -:102A600002E093EF1AF00501095104E0020E05019E -:102A7000095D40E10AC5E6FF010EE66E04EC30F0A8 -:102A8000E552E5520BC5E6FF020EE66E04EC30F0AF -:102A9000E552E5520CC5E6FF030EE66E04EC30F09D -:102AA000E552E5520DC5E6FF040EE66E04EC30F08B -:102AB000E552E5520EC5E6FF050EE66E04EC30F079 -:102AC000E552E5520FC5E6FF060EE66E04EC30F067 -:102AD000E552E55210C5E6FF070EE66E04EC30F055 -:102AE000E552E55211C5E6FF080EE66E04EC30F043 -:102AF000E552E5520501090504E0020E0501095DF4 -:102B000040E10AC5E6FF090EE66E04EC30F0E5523E -:102B1000E5520BC5E6FF0A0EE66E04EC30F0E55216 -:102B2000E5520CC5E6FF0B0EE66E04EC30F0E55204 -:102B3000E5520DC5E6FF0C0EE66E04EC30F0E552F2 -:102B4000E5520EC5E6FF0D0EE66E04EC30F0E552E0 -:102B5000E5520FC5E6FF0E0EE66E04EC30F0E552CE -:102B6000E55210C5E6FF0F0EE66E04EC30F0E552BC -:102B7000E55211C5E6FF100EE66E04EC30F0E552AA -:102B8000E55298EF1AF000C540F50501416B0501CB -:102B9000030E426F0501436B010EE66E24EC30F02C -:102BA000E5520501486F020EE66E24EC30F0E55266 -:102BB0000501496F030EE66E24EC30F0E552050185 -:102BC0004A6F040EE66E24EC30F0E55205014B6FBF -:102BD000050EE66E24EC30F0E55205014C6F060E52 -:102BE000E66E24EC30F0E55205014D6F070EE66EFF -:102BF00024EC30F0E55205014E6F080EE66E24EC31 -:102C000030F0E55205014F6F090EE66E24EC30F00E -:102C1000E5520501506F0A0EE66E24EC30F0E552E5 -:102C20000501516F0B0EE66E24EC30F0E552050104 -:102C3000526F0C0EE66E24EC30F0E5520501536F36 -:102C40000D0EE66E24EC30F0E5520501546F0E0EC9 -:102C5000E66E24EC30F0E5520501556F0F0EE66E7E -:102C600024EC30F0E5520501566F100EE66E24ECB0 -:102C700030F0E5520501576F400EE66E400EE66EED -:102C8000050EE66E010EE66E010EE66EB2EC20F069 -:102C9000006E050EE15E0050F3CF49F1F4CF4AF12A -:102CA00098EF1AF0E66A010EE66E04EC30F0E55299 -:102CB000E552010EE66E020EE66E04EC30F0E552CF -:102CC000E552E66A030EE66E04EC30F0E552E5529A -:102CD000E66A040EE66E04EC30F0E552E552E66A70 -:102CE000050EE66E04EC30F0E552E552E66A060E9B -:102CF000E66E04EC30F0E552E552270EE66E070E64 -:102D0000E66E04EC30F0E552E552100EE66E080E69 -:102D1000E66E04EC30F0E552E552E66A090EE66E26 -:102D200004EC30F0E552E552010EE66E0A0EE66E56 -:102D300004EC30F0E552E552E66A0B0EE66E04EC68 -:102D400030F0E552E552E66A0C0EE66E04EC30F027 -:102D5000E552E552E66A0D0EE66E04EC30F0E552FF -:102D6000E552E66A0E0EE66E04EC30F0E552E552EE -:102D7000270EE66E0F0EE66E04EC30F0E552E552DB -:102D8000100EE66E100EE66E04EC30F0E552E552E1 -:102D9000CFD355EC07F0CCD3060E09C5DBFF050EEB -:102DA0000AC5DBFF080E0BC5DBFF070E0CC5DBFFFA -:102DB0000A0E0DC5DBFF090E0EC5DBFF090EDBCFCA -:102DC000E6FF0A0EDBCFE6FF070EDBCFE6FF080EBD -:102DD000DBCFE6FF050EDBCFE6FF060EDBCFE6FF1F -:102DE00041EC09F0006E060EE15E00500101010E9B -:102DF000526F9ED3060E09C5DBFF050E0AC5DBFF29 -:102E0000080E0BC5DBFF070E0CC5DBFF0A0E0DC558 -:102E1000DBFF090E0EC5DBFF090EDBCFE6FF0A0E56 -:102E2000DBCFE6FF070EDBCFE6FF080EDBCFE6FFCA -:102E3000050EDBCFE6FF060EDBCFE6FF48EC09F020 -:102E4000006E060EE15E00500101010E526F70D35C -:102E5000060E09C5DBFF050E0AC5DBFF080E0BC514 -:102E6000DBFF070E0CC5DBFF0A0E0DC5DBFF090EED -:102E70000EC5DBFF090EDBCFE6FF0A0EDBCFE6FF58 -:102E8000070EDBCFE6FF080EDBCFE6FF050EDBCF3C -:102E9000E6FF060EDBCFE6FF4FEC09F0006E060EF4 -:102EA000E15E00500101010E526F42D3060E09C5CA -:102EB000DBFF050E0AC5DBFF080E0BC5DBFF070EA7 -:102EC0000CC5DBFF0A0E0DC5DBFF090E0EC5DBFFCF -:102ED000090EDBCFE6FF0A0EDBCFE6FF070EDBCFE6 -:102EE000E6FF080EDBCFE6FF050EDBCFE6FF060EA2 -:102EF000DBCFE6FF5EEC09F0006E060EE15E0050EF -:102F00000101010E526F14D3060E09C5DBFF050E39 -:102F10000AC5DBFF080E0BC5DBFF070E0CC5DBFF88 -:102F20000A0E0DC5DBFF090E0EC5DBFF0C0E0FC52B -:102F3000DBFF0B0E10C5DBFF11C5E6FF0B0EDBCF71 -:102F4000E6FF0C0EDBCFE6FF090EDBCFE6FF0A0E35 -:102F5000DBCFE6FF070EDBCFE6FF080EDBCFE6FF99 -:102F6000050EDBCFE6FF060EDBCFE6FF6BEC09F0CC -:102F7000006E090EE15E00500101010E526FD8D2C1 -:102F8000060E09C5DBFF050E0AC5DBFF080E0BC5E3 -:102F9000DBFF070E0CC5DBFF0A0E0DC5DBFF090EBC -:102FA0000EC5DBFF0C0E0FC5DBFF0B0E10C5DBFFE4 -:102FB0000E0E12C5DBFF0D0E13C5DBFF0D0EDBCFB2 -:102FC000E6FF0E0EDBCFE6FF11C5E6FF0B0EDBCFF3 -:102FD000E6FF0C0EDBCFE6FF090EDBCFE6FF0A0EA5 -:102FE000DBCFE6FF070EDBCFE6FF080EDBCFE6FF09 -:102FF000050EDBCFE6FF060EDBCFE6FFACEC09F0FB -:10300000006E0B0EE15E00500101010E526F90D276 -:10301000060E0AC5DBFF050E0BC5DBFF050EDBCF79 -:10302000E6FF060EDBCFE6FF09C5E6FF03EC09F07D -:10303000E552E552E5527CD2060E0AC5DBFF050ECD -:103040000BC5DBFF080E0CC5DBFF070E0DC5DBFF54 -:103050000A0E0EC5DBFF090E0FC5DBFF09C5E6FF33 -:1030600003EC07F0E552090EDBCF3FF00A0EDBCF91 -:1030700040F007EC22F03EC008F03FC009F040C02D -:103080000AF041C00BF0330E436EE20E446EC20EE6 -:10309000456E420E466E08C03EF009C03FF00AC0C1 -:1030A00040F00BC041F021EC23F03EC004F03FC0E3 -:1030B00005F040C006F041C007F0CC0E436EBC0ED8 -:1030C000446E8C0E456E3B0E466E04C03EF005C04D -:1030D0003FF006C040F007C041F021EC23F0BDEC0A -:1030E00023F03DC000F03EC001F03FC002F040C000 -:1030F00003F000C0E6FF01C0E6FF02C0E6FF03C028 -:10310000E6FF070EDBCF3FF0080EDBCF40F007EC09 -:1031100022F03EC014F03FC015F040C016F041C090 -:1031200017F0330E436EE20E446EC20E456E420E31 -:10313000466E14C03EF015C03FF016C040F017C0F8 -:1031400041F021EC23F03EC010F03FC011F040C030 -:1031500012F041C013F0BD0E436E370E446E860E62 -:10316000456E410E466E10C03EF011C03FF012C0D9 -:1031700040F013C041F021EC23F0BDEC23F03DC042 -:103180000CF03EC00DF03FC00EF040C00FF00CC080 -:10319000E6FF0DC0E6FF0EC0E6FF0FC0E6FF050E1E -:1031A000DBCF3FF0060EDBCF40F007EC22F03EC055 -:1031B0001CF03FC01DF040C01EF041C01FF0330E98 -:1031C000436EE20E446EC20E456E420E466E1CC049 -:1031D0003EF01DC03FF01EC040F01FC041F021EC8A -:1031E00023F0BDEC23F03DC018F03EC019F03FC005 -:1031F0001AF040C01BF018C0E6FF19C0E6FF1AC065 -:10320000E6FF1BC0E6FF09C5E6FFD7EC07F0206E1E -:103210000D0EE15E20508CD1060E0AC5DBFF050EB7 -:103220000BC5DBFF080E0CC5DBFF070E0DC5DBFF72 -:1032300009C5E6FF03EC07F0E5520EC5E6FF070EF1 -:10324000DBCF3FF0080EDBCF40F007EC22F03EC0B2 -:1032500008F03FC009F040C00AF041C00BF0330E47 -:10326000436EE20E446EC20E456E420E466E08C0BC -:103270003EF009C03FF00AC040F00BC041F021EC25 -:1032800023F03EC004F03FC005F040C006F041C04E -:1032900007F0CC0E436EBC0E446E8C0E456E3B0E9A -:1032A000466E04C03EF005C03FF006C040F007C0C7 -:1032B00041F021EC23F0BDEC23F03DC000F03EC016 -:1032C00001F03FC002F040C003F000C0E6FF01C0C3 -:1032D000E6FF02C0E6FF03C0E6FF050EDBCF3FF0CE -:1032E000060EDBCF40F007EC22F03EC014F03FC0EA -:1032F00015F040C016F041C017F0330E436EE20ED9 -:10330000446EC20E456E420E466E14C03EF015C0AD -:103310003FF016C040F017C041F021EC23F03EC052 -:1033200010F03FC011F040C012F041C013F0BD0ECC -:10333000436E370E446E860E456E410E466E10C0CB -:103340003EF011C03FF012C040F013C041F021EC3C -:1033500023F0BDEC23F03DC00CF03EC00DF03FC0AB -:103360000EF040C00FF00CC0E6FF0DC0E6FF0EC02F -:10337000E6FF0FC0E6FF09C5E6FF42EC08F0186E55 -:103380000A0EE15E1850D4D0060E0AC5DBFF050E0A -:103390000BC5DBFF09C5E6FF03EC07F0E5520CC5E2 -:1033A000E6FF050EDBCF3FF0060EDBCF40F007EC6B -:1033B00022F03EC008F03FC009F040C00AF041C012 -:1033C0000BF0330E436EE20E446EC20E456E420E9B -:1033D000466E08C03EF009C03FF00AC040F00BC086 -:1033E00041F021EC23F03EC004F03FC005F040C0A6 -:1033F00006F041C007F0BD0E436E370E446E860ED8 -:10340000456E410E466E04C03EF005C03FF006C05A -:1034100040F007C041F021EC23F0BDEC23F03DC0AB -:1034200000F03EC001F03FC002F040C003F000C019 -:10343000E6FF01C0E6FF02C0E6FF03C0E6FF09C5E4 -:10344000E6FFB0EC08F00C6E060EE15E0C5070D09A -:1034500009C5E6FFC8EC08F0E5520101010E526F04 -:1034600067D024EC0CF0050EF3CFDBFF060EF4CF93 -:10347000DBFF33EC0CF0070EF3CFDBFF080EF4CFCD -:10348000DBFF00C540F50501416B0501030E426FEE -:103490000501436B060EDBCF48F5050EDBCF49F582 -:1034A000080EDBCF4AF5070EDBCF4BF5400EE66E7C -:1034B000400EE66E050EE66E010EE66E010EE66E3D -:1034C000B2EC20F0006E050EE15E0050F3CF49F142 -:1034D000F4CF4AF12DD000C540F50501416B05013F -:1034E000030E426F0501436B43EC0CF0000904E04E -:1034F0000501010E486F02D00501486B400EE66ED3 -:10350000400EE66E050EE66E010EE66E010EE66EEC -:10351000B2EC20F0006E050EE15E0050F3CF49F1F1 -:10352000F4CF4AF105D0010EE66EAAEC30F0E55278 -:10353000400EE66E000EE66E050EE66EE66A010EC1 -:10354000E66EB2EC20F0006E050EE15E0050F3CFA7 -:1035500047F1F4CF48F19FD0010149514A1102E1EE -:10356000000E08D049C1E9FF4AC1EAFFEF50800BC5 -:1035700001E0010E00094DE10101010E516F05014D -:10358000406B01014C514C2B0501416F0501050EAB -:10359000426F0501436B0501486BC00E006E5E0E65 -:1035A000016E026A00C0E6FF01C0E6FF02C0E6FF4E -:1035B000480EE66E050EE66EE8EC2FF0036E050E83 -:1035C000E15E0350400EE66E400EE66E050EE66EBE -:1035D000010EE66E010EE66EB2EC20F0006E050EF6 -:1035E000E15E0050F3CF49F1F4CF4AF1400EE66EB0 -:1035F000000EE66E050EE66EE66A010EE66EB2ECB1 -:1036000020F0006E050EE15E0050F3CF47F1F4CFDD -:1036100048F141D0010149514A1102E1000E08D0A0 -:1036200049C1E9FF4AC1EAFFEF50800B01E0010EFA -:10363000000931E100C540F50501416B0501030EAC -:10364000426F0501010E436F400EE66E400EE66EBE -:10365000050EE66E010EE66E010EE66EB2EC20F08F -:10366000006E050EE15E0050F3CF49F1F4CF4AF150 -:10367000400EE66E000EE66E050EE66EE66A010E80 -:10368000E66EB2EC20F0006E050EE15E0050F3CF66 -:1036900047F1F4CF48F10F0EE15C02E2E16AE55236 -:1036A000E16EE552E7CFD9FF1200010153515411E9 -:1036B00004E1100E536F270E546F5307000E545B36 -:1036C0006DA207D0535154112EE18C748CB413D0D9 -:1036D00027D00101005102E18C9422D0000502E1C3 -:1036E0008C8409D0020E005D02E18C8419D0040E96 -:1036F000005D03E18C948C861200100E005D06E1E3 -:103700000101535154110FE18C740AD0200E005D59 -:103710000AE101015351541106E18C748CA402D0CA -:103720008C9612008C8612001200120012001200F9 -:1037300051EF2EF012001E0EE66E010EE66E80ECCA -:1037400020F0E552E552400EE66E000EE66E050EE4 -:10375000E66EE66A010EE66EB2EC20F0006E050E33 -:10376000E15E0050F3CF47F1F4CF48F112006D84D1 -:103770000101080E686F070E696F6807000E695B2C -:1037800068516911FAE16D941200D9CFE6FFE1CFDB -:10379000D9FFFD0EDBCF3FF0FE0EDBCF40F0010E78 -:1037A0003F1801E1405033E0E8683F1802E1E86863 -:1037B00040182BE0030E3F1801E1405024E0040EB6 -:1037C0003F1801E140501DE0020E3F1801E140505A -:1037D00016E0170E3F1801E140500FE0160E3F189B -:1037E00001E1405008E0150E3F1801E1405001E0B2 -:1037F00010D0A1DF0FD09EDF0DD09ADF0BD096DF67 -:1038000009D092DF07D091DF05D091DF03D000000F -:1038100001D000D0010E00D0E552E7CFD9FF120051 -:103820004BD8E652D0B202D0010E15D0D0B802D09B -:10383000020E11D0D0B002D0030E0DD0D0B602D0FF -:10384000040E09D0FCAE02D0050E05D0FCAC02D0AF -:10385000060E01D0070EDF6ED088D086D084D082CD -:10386000D080FC9EFC9CDF50E552E552E7CFD9FFAB -:103870001200E65221D8020EE126F350DF6E010E4F -:10388000F4CFDBFF1200C00EE66EE00EE66E8EECAB -:1038900030F0E552E5521200DF50F36E010EDB50BE -:1038A000F46E020EE15C1200DFCFE6FFE66A04EC84 -:1038B00030F0E552E5521200D9CFE6FFE1CFD9FF53 -:0238C0001200F4 -:0E38C20059EC21F06A6A686A8CEC21F06D8C7A -:1038D0006E6A3CEC21F06D9CDF6A6DEC21F010E229 -:1038E000DF50040DF3CFE9FFF4CFEAFF000EE92625 -:1038F000040EEA22EE6AEE6AEE6AEE6ADF2AEDD77D -:10390000160E706E68A604D0030E02EC21F0FAD7F2 -:103910000101136B186B196B1A6B6D98080E0B6F06 -:10392000040E0C6F016B006BE55217EF21F059ECA0 -:1039300021F0010100510BE16D6A696A8CEC21F004 -:103940006DB602D06D86FCD70101010E006F000537 -:1039500008E16DBA06D0686A696A69806988020EF2 -:10396000006F6850040B07E06950040B04E0020E7E -:1039700002EC21F089D86DB247D06850010B14E0F9 -:103980006950010B11E09DDF0101040E006F04017D -:10399000200E026F040E036F080E016F006B8C0E79 -:1039A0000013E66ACBEC21F06850100B07E0695079 -:1039B000100B04E060D8040E02EC21F06850400BBC -:1039C0000BE06950400B08E093EC21F0020E0AEC8A -:1039D00021F0060E02EC21F06850200B04E0695043 -:1039E000200B01E035D86850020B0AE06950020B49 -:1039F00007E093EC21F0E668E668EBEC21F06A6AF8 -:103A0000040E0101005D02E2A19A1FD069A61CD03C -:103A1000DF6A040EDF5C18E268A616D06CCF20F1D6 -:103A2000030E02EC21F0780E0101201502E138D8D6 -:103A300009D0000EE66EE66A200EE66E010EE66E16 -:103A4000010EE8DBDF2AE5D7A19AE55217EF21F056 -:103A500070A00ED025EC21F0EF50800808E1D5DBF6 -:103A6000EF50840804E125EC21F08C0EEF6E70908D -:103A7000050E02EF21F06984040EC4DB6D8245EC73 -:103A800021F0040E0AEF21F045EC21F0030EC2DB19 -:103A90006D92699468A403D0020EB4DBFBD71200C8 -:103AA00059EC21F0FD0E010120153DE17E0E20159F -:103AB000E8407F0B040DF3CF03F1F4CF04F1000EC7 -:103AC0000327040E042303C105F104C106F10575A3 -:103AD000BCDBEF503C0BE842E8420D0822E1B5DBCD -:103AE000C2EC21F0EECF00F0EFCF01F0280E00186D -:103AF00016E1040E011813E1FCEC21F0DF6AEDDBA6 -:103B00000EE2DF5075EC21F0DF50EA6A200FE96E1B -:103B1000040EEA22E552E750EF6EDF2AF0D70AD80A -:103B200007D01AD805D0FD0E2015040801E122D8CF -:103B3000E5527DD36ADBEF50800B02E066DBEF6A73 -:103B400001010F6B106B146B156B136B64D89DDB4D -:103B5000170E60DB40EF1FF0020E0101105D02E165 -:103B6000CDEF1FF034D80101215102E1C7EF21F060 -:103B7000216B12009EDB49DBEF50400B01E0010E90 -:103B8000DF6E01010B75080E005D09E122C46EFFB6 -:103B90006E50000802E2100E01D0040E006F1005F6 -:103BA00013E100EC22F0A6D9020E01010F5D03E142 -:103BB0002CDB840E07D0DF5003E127DBC80E02D0D8 -:103BC00024DB880EEF6E01D002D8E55230D32BDB18 -:103BD0000101106B1ADBEF6A040E0B19006E0CC1A9 -:103BE00001F0DE6E0CC1DDFF19DBEF6A18AF0CD0FF -:103BF0001B511C1107E005D01CC1FAFF01011B512C -:103C0000F96EFADF0101189F020EE15C02E2E16A3F -:103C1000E552E16E0CD304012051600BE842E8420A -:103C2000E842E842E842000901E0120021510C0A92 -:103C300045E00B0A3FE00C0A31E0010A22E00B0AE2 -:103C40001EE0020A1CE0030A18E0080A10E0010A5C -:103C50000CE00F0A08E0030A01E012000101138FD3 -:103C6000080E006F1200C0EF1EF029EF20F00101D6 -:103C7000010E116F010E126F0CD001EF1FF05FEFFC -:103C80001EF024510101116F126B020E1127010E5B -:103C900012231381010E146F138F12000101138F71 -:103CA00004012451EA6A020FE96E010EEA2222C4DD -:103CB000EFFF1200EADA160E0AEF21F012007EDBA7 -:103CC000040EE1260401220510E120511F0B00091A -:103CD0000CE10101138F030E0401215D04E10101D8 -:103CE000010E1F6F02D001011F6B0401225141E13F -:103CF00020511F0B02083DE124510F0B000939E050 -:103D00000101138F040124BF05D0A4DA070EE926B0 -:103D1000010E04D09FDA0B0EE926010ED2DA030E53 -:103D2000215D03E17BDA840E23D024510F0B016A5D -:103D3000700F006E0F0E0122020E00C0DBFF030E9B -:103D400001C0DBFF020EDBCFE9FF030EDBCFEAFF92 -:103D5000EE90ED5224AF06D061DAEF6ADF745EDADE -:103D6000400E06D05BDA880EEF6EDF7457DAC80EAD -:103D7000EF6E040EE15C02E2E16AE552E16E57D2B9 -:103D8000800E0401205D3CE10101C00E136F0401AF -:103D90002351030A1EE0010A09E0030A2FE1010191 -:103DA000700E116F5D0E126F120E22D0C3DA1A0E52 -:103DB000F6265E0EA2DA020E0101F76A1125F66EF2 -:103DC0001251F7220900F5CF14F10A00F5CF15F1D1 -:103DD0001200030E225D0FE2ADDA1C0EF6265E0E17 -:103DE0008CDA11C1F6FF12C1F7FF0800F55001018E -:103DF000146F156B12000101136B12000101136B9C -:103E0000120011DA0401286B296B20511F0B020AE2 -:103E100011E0030A0CE0010A22E10101138F040101 -:103E2000288101011F051BE10401288318D001012D -:103E3000138F15D00101138F040124BF05D00ADAB6 -:103E4000070EE926010E04D005DA0B0EE926010E55 -:103E500038DAE4D9EF50040B02E0010E286F0101BB -:103E600013AF07D0280E116F040E126F1381020ECC -:103E7000146F020EE15C02E2E16AE552E16ED7D115 -:103E80006D98010113BF08D018AF02D061DA2AD0B3 -:103E90007EDABBD9840E27D018BF2BD0040120AF07 -:103EA00024D0010114510401265D010115510401C2 -:103EB000275904E226C414F127C415F11BD80101C7 -:103EC000010E106FA1DA800EEF6E216BBED9EE529B -:103ED000080EEF6E91DAB9D9840EEF6E010E216FE4 -:103EE0008FDA93D9C80EEF6E1200010131DAC80ED5 -:103EF000EF6E120098D90101080E145D000E1559DD -:103F00000DE214C1DEFF15C1DDFF0F5102E1010E0C -:103F100003D00F0506E1020E0F6F03D0080EDE6E10 -:103F2000DD6A73D9EF9271D9EF906FD9010EDB5032 -:103F3000EF126BD9EE52DFCFEFFF000EDB50145FB4 -:103F4000010EDB50155B280E1D6F040E1E6F13B1A2 -:103F50000FD0F7D91BE011C1F6FF12C1F7FF112BEB -:103F6000000E12230800F55096D9F3E2DB06F1D7D4 -:103F7000E8D90CE011C1E9FF12C1EAFF112B000ED4 -:103F80001223EF5088D9F4E2DB06F2D7020EE15C8F -:103F900002E2E16AE552E16E4AD145D956D9EE52C4 -:103FA000EFCFDFFFDFCF00F000500101195D000E01 -:103FB0001A5903E219C1DFFF09D0DF50006E016A10 -:103FC000E850195D196F01501A591A6F010EDB6A1A -:103FD000DF50F36E010EDBCFF4FFF350F45C10E220 -:103FE000010EDB5082D916C1E9FF17C1EAFF162B7B -:103FF000000E1723E552E750EF6E010EDB2AE8D7DB -:10400000000ED8801955000E1A550DE2F4D854D977 -:104010001CD9EF50400B03E1EAD9C80E02D0E7D912 -:10402000880EEF6E0FD0F0D9840EEF6E1B511C116D -:1040300007E005D01CC1FAFF01011B51F96EFADF40 -:104040000101189F020EE15C02E2E16AE552E16EB5 -:10405000EED00101138F10D9010EE66EE66AE66A12 -:10406000020EE66E010EAFD922C401F10401225105 -:1040700004E10101100E006F12000101200E006F1B -:1040800004D9150E0AEF21F0CED8000EDE6E040E14 -:10409000DD6EE8D8040DF350006E016A020E0F0BBE -:1040A00005E0D89001320032E806FBE1D8900036F6 -:1040B0000136D89000360136D9CFE9FFDACFEAFFD2 -:1040C0000050EE260150ED22A9D8EF9EFD0EDB50E8 -:1040D00002E16AD901D06DD9EA22DECFEEFFDDCF51 -:1040E000EDFF9CD8EF9C9AD8040EE926000EEA2238 -:1040F000EF8C020EE15C02E2E16AE552E16E97D0DC -:1041000092D8FE0EDB50016A700F006E0F0EDFD8E2 -:1041100085D8FD0EDBCFEFFFDBA402D0E66AF5D831 -:10412000FD0EDBA203D0010EE66EEFD8020EE15CBD -:1041300002E2E16AE552E16E7AD075D8FE0EDB50FC -:1041400005E125D962D8840EEF6E05D08BD80CD945 -:1041500089D8010F09D9020EE15C02E2E16AE55259 -:10416000E16E65D060D8FD0EDB5002E022D901D0AF -:104170001BD9A7D853D806D9FB0EDBCFEEFFFC0E18 -:10418000DBCFEDFF4BD8EE52FA0EDBCFEFFF400E48 -:1041900045D8E850EF16880E41D8E850EF12FD0ED2 -:1041A000DB5002E006D901D0FFD8EA22EF74DECF5F -:1041B00000F0DDCF01F000C0F3FF01C0F4FF020EFC -:1041C000E15C02E2E16AE552E16E31D0F7D8010E1E -:1041D000F36EFC0EDB5004E0D890F336E806FCE109 -:1041E000F31C006EFD0EDBCFE9FFFE0EDBCFEAFF16 -:1041F0000050EF161CD0FBD8EE52080EEF6EF7D829 -:10420000C2EF21F0E66ECBEF21F00BC1E9FF0CC14C -:10421000EAFF1200E66EE66AEBEF21F0DECFE9FF7F -:10422000DDCFEAFF1200CAD8020EE1261200E552E5 -:10423000E7CFD9FF1200D6D8F7EF21F0FE0EEA6AD9 -:10424000DB34FE0BEA36E96E120003C1E9FF04C15C -:10425000EAFF120024510F0BE96EEA6AD890E936A2 -:10426000EA361200FD0EDB50E824026EFE0EDB5033 -:10427000040DF35002241200000EE66EE66AE66AB0 -:10428000710EE66E0F0EE3EF21F0000EE66EE66AA9 -:10429000E66EE66A1200E66E1DC1E9FF1EC1EAFF86 -:1042A0001D2B000E1E23E552E750EF6EDF06010EB8 -:1042B000120084D8E6521200280EEE6E040EED6E47 -:1042C0001200EA22EECFDEFFEDCFDDFF1200012269 -:1042D00000C0DEFF01C0DDFF1200DF50006E016A8A -:1042E000080E005C000E01581200EA6A280FE96E01 -:1042F000040EEA22EF50E66E1200F7220900F5CF15 -:1043000011F10A00F5CF12F11200FE0EDBCFE6FF2D -:10431000BBDEE552E5521200160E6F6E9F0E6B6EFD -:104320007B0E696E1200010EE66EE66A000EE66E06 -:10433000E66A12002251F66EF76AD890F636F73622 -:104340001200D9CFE9FFDACFEAFFEE50ED101200EC -:10435000020E106F5ADFEE52EF6A57DFC80EEF6E93 -:104360004ADFAADFF7EF21F0040DF3CF00F0F4CF1E -:1043700001F0000E0026040EAADF840E4FDFE85085 -:10438000EF121200020EE926000EEA2212003CD8BB -:104390008C0EEF6E1200680EE66E0F0EE66E16DFE4 -:1043A000E552E552E552120049DF070EE926010EFB -:1043B000120044DF0B0EE926010E1200D9CFE6FFF2 -:1043C000E1CFD9FF1200E66ECEEC2FF0006E050EA5 -:1043D000E15E00501200C5EC1BF0006E060EE15EBF -:1043E00000501200200EEE6E040EED6E120005C19C -:1043F000E9FF06C1EAFF120028DFC4DFF2EF21F077 -:0E44000004DFC0DF5CEF21F0F6DE1BEF21F0E1 -:02440E00489EC6 -:1044100008D0489E40AE05D03F6C401EE86A40225E -:10442000488E40C03AF03FC039F04C6A4B6A8E0E5D -:104430003B6E3C6A10EF24F0489E0CD0489E40AE84 -:1044400009D03D6C3E1E3F1E401EE86A3E223F22C0 -:104450004022488E40C03AF03FC039F03EC04CF098 -:104460003DC04BF09E0E3B6E3C6A10EF24F0467E42 -:10447000486A4CEC24F064EC24F048B6F4EF23F0E6 -:1044800048A20AD048AA03D048BEF4EF23F048A4BB -:1044900000EF24F0FDEF23F048AA05D048AC00EF70 -:1044A00024F0FDEF23F048A00AD048A808D048BE69 -:1044B00004D048A402D009EF24F00DEF24F04B6A99 -:1044C0003C6A4650415C4A6E10E33EC04CF03FC02F -:1044D00039F040C03AF041C049F043C03EF044C01A -:1044E0003FF045C040F0483A09D043C04CF044C0CA -:1044F00039F045C03AF046C049F04A6C489E48BC85 -:10450000488E49C03BF048B03CEF24F01A0E4A6098 -:104510003CEF24F03B6A416A48A408D03E6C3F1E41 -:10452000401E411EE86A3F224022412248AC08D08A -:104530004C6C391E3A1E3B1EE86A39223A223B2255 -:104540003D6A4A5207E0413440323F323E323D320A -:104550004A2EF9D73E504C263F50392240503A223D -:1045600041503B223DC04BF0489E3BAE0BD04B6CC4 -:104570004C1E391E3A1E3B1EE86A4C2239223A2252 -:104580003B22488E3BA006D0D8803A3239324C329A -:104590004B32492A49C03BF010EF24F0486A4CECFA -:1045A00024F064EC24F048B6F4EF23F048A205D0E0 -:1045B00048BAF4EF23F0FBEF23F048BA07EF24F0FA -:1045C00048A005D048B8F4EF23F007EF24F048B82E -:1045D000FBEF23F03C6A7F... [truncated message content] |
From: Olivier B. <Ba...@us...> - 2010-03-07 11:52:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "krobot". The branch, master has been updated via 3f23696522eefa513a92a375459c998e5899df2d (commit) from 47260998a8e90353bc2184ad640df1993da7c630 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3f23696522eefa513a92a375459c998e5899df2d Author: Olivier BICHLER <oli...@gm...> Date: Sun Mar 7 12:50:18 2010 +0100 Implemented getRealPosition() ----------------------------------------------------------------------- Changes: diff --git a/USB_Module/Motor_Controller/Firmware/lm629.c b/USB_Module/Motor_Controller/Firmware/lm629.c index 7bcdd54..2745ac4 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.c +++ b/USB_Module/Motor_Controller/Firmware/lm629.c @@ -603,6 +603,27 @@ void stop(char axis, WORD type) { } /** + * Rp la position vtable des moteurs drminpar les LMs + * + * @param axis l'axe moteur correspondant au LM, peut valoir : @n + * #MOTOR_RIGHT le moteur de droite uniquement @n + * #MOTOR_LEFT le moteur de gauche uniquement @n + * (spfier les #MOTOR_BOTH est bien demment impossible) +*/ +DWORD getRealPosition(char axis) { + DWORD_VAL posData; + + if (axis == MOTOR_BOTH) + return 0; + else { + writeCommand(axis, LM_CMD_RDRP); + posData.word.HW = readDataWord(axis); + posData.word.LW = readDataWord(axis); + return posData.Val; + } +} + +/** * Rp la vitesse vtable des moteurs drminpar les LMs * * @param axis l'axe moteur correspondant au LM, peut valoir : @n @@ -619,7 +640,6 @@ DWORD getRealVelocity(char axis) { writeCommand(axis, LM_CMD_RDRV); velData.word.HW = readDataWord(axis); velData.word.LW = 0; - return velData.Val; } } @@ -836,23 +856,11 @@ void goTo(short x, short y, short vel, short acc, BYTE mode, short d) { } WORD getRelPosRight() { - DWORD_VAL pos; - - writeCommand(MOTOR_RIGHT, LM_CMD_RDRP); - pos.word.HW = readDataWord(MOTOR_RIGHT); - pos.word.LW = readDataWord(MOTOR_RIGHT); - - return ((float) ((long) pos.Val - (long) posRight.Val) / (float) COEF_RIGHT_WHEEL); + return ((float) ((long) getRealPosition(MOTOR_RIGHT) - (long) posRight.Val) / (float) COEF_RIGHT_WHEEL); } WORD getRelPosLeft() { - DWORD_VAL pos; - - writeCommand(MOTOR_LEFT, LM_CMD_RDRP); - pos.word.HW = readDataWord(MOTOR_LEFT); - pos.word.LW = readDataWord(MOTOR_LEFT); - - return ((float) ((long) pos.Val - (long) posLeft.Val) / (float) COEF_LEFT_WHEEL); + return ((float) ((long) getRealPosition(MOTOR_LEFT) - (long) posLeft.Val) / (float) COEF_LEFT_WHEEL); } /** diff --git a/USB_Module/Motor_Controller/Firmware/lm629.h b/USB_Module/Motor_Controller/Firmware/lm629.h index 5792929..2107c1c 100644 --- a/USB_Module/Motor_Controller/Firmware/lm629.h +++ b/USB_Module/Motor_Controller/Firmware/lm629.h @@ -214,6 +214,7 @@ void resetInterrupt(char axis); void initLM(char axis, WORD kp, WORD ki, WORD kd, WORD il); // Fonctions de rptions des grandeurs actuelles +DWORD getRealPosition(char axis); DWORD getRealVelocity(char axis); // Fonctions de gration des trajectoires diff --git a/USB_Module/Motor_Controller/Firmware/main.c b/USB_Module/Motor_Controller/Firmware/main.c index 230b7b9..385678c 100644 --- a/USB_Module/Motor_Controller/Firmware/main.c +++ b/USB_Module/Motor_Controller/Firmware/main.c @@ -756,19 +756,13 @@ void ProcessIO(void) { break; case GET_CURRENT_POS: - writeCommand(MOTOR_RIGHT, LM_CMD_RDRP); - dword.word.HW = readDataWord(MOTOR_RIGHT); - dword.word.LW = readDataWord(MOTOR_RIGHT); - + dword.Val = getRealPosition(MOTOR_RIGHT); ToSendDataBuffer.DATA[0] = dword.byte.MB; ToSendDataBuffer.DATA[1] = dword.byte.UB; ToSendDataBuffer.DATA[2] = dword.byte.HB; ToSendDataBuffer.DATA[3] = dword.byte.LB; - writeCommand(MOTOR_LEFT, LM_CMD_RDRP); - dword.word.HW = readDataWord(MOTOR_LEFT); - dword.word.LW = readDataWord(MOTOR_LEFT); - + dword.Val = getRealPosition(MOTOR_LEFT); ToSendDataBuffer.DATA[4] = dword.byte.MB; ToSendDataBuffer.DATA[5] = dword.byte.UB; ToSendDataBuffer.DATA[6] = dword.byte.HB; @@ -781,6 +775,7 @@ void ProcessIO(void) { ToSendDataBuffer.DATA[1] = dword.byte.UB; ToSendDataBuffer.DATA[2] = dword.byte.HB; ToSendDataBuffer.DATA[3] = dword.byte.LB; + dword.Val = getRealVelocity(MOTOR_LEFT); ToSendDataBuffer.DATA[4] = dword.byte.MB; ToSendDataBuffer.DATA[5] = dword.byte.UB; diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof index 743ff8e..cbcaeca 100644 Binary files a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof and b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.cof differ diff --git a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex index 4faf3af..aa7754f 100644 --- a/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex +++ b/USB_Module/Motor_Controller/Firmware/output/Motor_controller.hex @@ -1,18 +1,18 @@ :020000040000FA -:0600000025EF31F01200B3 +:060000000AEF31F01200CE :0600080004EF04F01200F9 :060018000CEF04F01200E1 -:0608000025EF31F01200AB -:060808007CEF10F012006D -:06081800E4EF10F01200F5 -:06082A000400DD62000085 -:100830002601000021000000D56200005F010000D9 -:1008400008000000C7620000470100000E00000021 -:0C085000C46200006A0100000300000008 -:04085C0015EC0DF09A +:060800000AEF31F01200C6 +:0608080079EF10F0120070 +:06081800E1EF10F01200F8 +:06082A000400A7620000BB +:1008300026010000210000009F6200005F0100000F +:100840000800000091620000470100000E00000057 +:0C0850008E6200006A010000030000003E +:04085C001BEC0DF094 :10086000FE0EDB5006E1F80E96163C0E9416959897 :1008700008D0FE0EDB0405E1070E9612C30E94129B -:1008800095881AEF0DF0D9CFE6FFE1CFD9FFE652F8 +:10088000958820EF0DF0D9CFE6FFE1CFD9FFE652F2 :10089000010EE66EE3DFE5528098FE0EDB5004E0C9 :1008A000FE0EDB5002080FE1839C808A0000839ECD :1008B0000000000000008450010BDF6E838E0000FA @@ -98,1398 +98,1394 @@ :100DB000F3CF00F08250400B01E0010E800DF350A4 :100DC0000010011002100310041005100610DF6E51 :100DD000838EDF5000D0E552E552E7CFD9FF1200F5 -:100DE00015EC0DF0E652DF6A58EC0DF0DF6EFD0EEB +:100DE0001BEC0DF0E652DF6A5EEC0DF0DF6EFD0EDF :100DF000DB50DF14DF6EDF5002E0010E01D0000E89 -:100E0000E5521AEF0DF015EC0DF01D0EA9EC0CF0EB -:100E1000000E83EC0FF01AEF0DF015EC0DF058EC0E -:100E20000DF084080FE058EC0DF0C4080BE0E66A02 -:100E300071EC0FF064EC0FF0020EE66EF8EC30F09F -:100E4000E552EDD71C0EA9EC0CF00A0E83EC0FF066 -:100E500008EC0EF058EC0DF0800804E058EC0DF0B2 -:100E6000C008E5E158EC0DF0C00802E108EC0EF016 -:100E70001E0EA9EC0CF00F0E83EC0FF035EC10F009 -:100E8000FA0EDBCFE6FFFB0E25EC0FF0F80EDBCF02 -:100E9000E6FFF90E25EC0FF0F60EDBCFE6FFF70EBE -:100EA00025EC0FF0040EA9EC0CF01AEF0DF015EC88 -:100EB0000DF0080EE126010E04EC0DF0010EE7CF57 -:100EC000DBFF020EA8EC0FF0DF6E030E04EC0DF05A -:100ED000030EE7CFDBFF040E04EC0DF0020EE7CFAC -:100EE000DBFF050E04EC0DF0050EE7CFDBFF060E71 -:100EF00004EC0DF0040EE7CFDBFF070E04EC0DF061 -:100F0000070EE7CFDBFF080E04EC0DF03EEC0DF012 -:100F1000E66A0DEC0EF0090E04EC0DF0010EE7CFC1 -:100F2000DBFF0A0EA8EC0FF0DF6E0B0E04EC0DF0E9 -:100F3000030EE7CFDBFF0C0E04EC0DF0020EE7CF43 -:100F4000DBFF0D0E04EC0DF0050EE7CFDBFF0E0E00 -:100F500004EC0DF0040EE7CFDBFF0F0E04EC0DF0F8 -:100F6000070EE7CFDBFF100E04EC0DF03EEC0DF0AA -:100F7000010EE66E0DEC0EF0020EE66EFAEC0DF0D0 -:100F8000020EE66EE66AD7EC0DF007E1020EE66EA1 -:100F9000010EE66ED7EC0DF002E0000E01D0010E5E -:100FA000006E080EE15C02E2E16AE552E16E00507B -:100FB0001AEF0DF015EC0DF00C0EE1266EEC0DF0B5 -:100FC000D950F20F87EC0FF0080EEECFDBFF090EC1 -:100FD000EECFDBFF0A0EEECFDBFF0B0EEECFDBFF1B -:100FE0001F0EA9EC0CF0080EDBCF00F0090EDBCFD2 -:100FF00001F00A0EDBCF02F00B0E97EC0FF00CE0C5 -:101000002B0E83EC0FF00A0EDBCFE6FF0B0E25EC68 -:101010000FF0A1EC0DF003D00B0EE66EE66A70EC5B -:101020000CF0FFEC0FF0DDEC0DF009E17CEC0CF0C6 -:1010300070EC0CF069EC0FF071EC0FF01CD0DDECF3 -:101040000DF003E0FE0EDB0408E17CEC0CF0BDECDF -:101050000DF069EC0FF0BDEC0DF0DDEC0DF003E0F0 -:10106000FE0EDB500AE17CEC0CF0E66A3FEC0FF080 -:1010700069EC0FF0E66A3FEC0FF00C0EE15C02E267 -:10108000E16AE552E16E1AEF0DF015EC0DF00A0E73 -:10109000E126D9CFE9FFDACFEAFFFA0EDBCFEEFF88 -:1010A000FB0EDBCFEEFFFC0EDBCFEEFFFD0EDBCF4A -:1010B000EEFF6EEC0DF0080EF36EDB6E090EF3CF53 -:1010C000DBFF1F0EA9EC0CF084EC0DF007E0D9500B -:1010D000080FE96EDACFEAFFEE8AED52DDEC0DF093 -:1010E0000BE1F50EDB50FF0802E1C1EC0DF0A1ECC5 -:1010F0000DF071EC0FF01FD0DDEC0DF003E0FE0EF3 -:10110000DB040AE1F50EDB50FF0802E1C1EC0DF053 -:10111000A1EC0DF0BDEC0DF0DDEC0DF003E0FE0EEA -:10112000DB500BE1F50EDB50FF0802E1C1EC0DF0E6 -:10113000A1EC0DF0E66A3FEC0FF084EC0DF002E05C -:10114000FFEC0FF0020EDBCFE6FF030E25EC0FF0F5 -:1011500069EC0FF0C5DB0A0EE15C02E2E16AE552E0 -:10116000E16E1AEF0DF015EC0DF0F90EDBCFE6FF96 -:10117000E66AE66AE66AE66AD950FA0F87EC0FF08B -:1011800075EC0FF071EC0FF080DF006E0A0EE15E7F -:1011900000501AEF0DF015EC0DF0FE0EDB5003E0E1 -:1011A000DDEC0DF00FE13BEC10F093EC0FF0F3CF22 -:1011B00061F1F4CF62F1E66A93EC0FF0F3CF5FF1E7 -:1011C000F4CF60F1FE0EDB0403E0DDEC0DF010E186 -:1011D0008CEC0FF093EC0FF0F3CF65F1F4CF66F1E8 -:1011E000010EE66E93EC0FF0F3CF63F1F4CF64F1F0 -:1011F000010EAFDB1AEF0DF015EC0DF01F0EA9DBA1 -:1012000035EC10F0010EA5DB1AEF0DF0ADEC0FF090 -:10121000DDEC0DF005E13D6A3E6A3F6A406A12D09E -:101220000B0E97DB71EC0FF090EC0DF0DE6ADD6ACF -:10123000DECF3DF0DECF3EF0DECF3FF0DDCF40F041 -:10124000DD52DD52040EE15C02E2E16AE552E16E3C -:10125000F1D341EC10F0E1EC0DF04FEC0DF0EAD3DE -:1012600041EC10F092DB020E4FEC0DF0E3D36EEC8C -:101270000FF092EC0EF089DBE66A9CDE03EC0EF0D8 -:1012800092EC0EF0B6EC0FF045EF0FF06EEC0FF0B5 -:1012900092EC0EF05DEC0DF003EC0EF092EC0EF023 -:1012A00074DB45EF0FF06EEC0FF0F60EDB5020E034 -:1012B000006A800E016E010E026E430E036E58EC42 -:1012C00010F073EC10F0436A446AC80E456E420E8B -:1012D000466EE9EC22F0C7EC0FF0F9DA26EC10F0DC -:1012E000A9EC23F0F70E3FC0DBFFF80E40C0DBFF98 -:1012F000B5EC0EF052EC22F00CEC0FF0DEDB386EA9 -:101300000D0EE15E3850B5EC0EF053EC22F00CEC13 -:101310000FF03BDB010EE66E4DDE386E0D0EE15E2A -:10132000385020EC10F086D380DB3C0EE12606EC32 -:101330000FF0BAEC0FF006EC0FF00AEC10F008C05A -:101340003EF009C03FF00AC040F00BC041F03CEC59 -:1013500023F0C7EC0FF076EC10F0F0EC0FF076EC29 -:1013600010F0F1EC0DF0B3DA14C03EF015C03FF010 -:1013700016C040F017C041F03CEC23F079EC10F0BF -:101380004BDB53EC22F0D9DA436A446A800E456E97 -:10139000E6DB380E3EC0DBFF390E3FC0DBFF3A0E06 -:1013A00040C0DBFF3B0E41C0DBFF06EC0FF0C5DAAF -:1013B00088DB59EC0FF007DB84DB9BEC2BF0086E2D -:1013C000080EE15E0850080E3DC0DBFF090E3EC06E -:1013D000DBFF0A0E3FC0DBFF0B0E40C0DBFF8EDBE6 -:1013E000F60EDB5007E0D950F40F87EC0FF0EE500B -:1013F000ED1039E123DB080EDBCF0EF0090EDBCF59 -:101400000FF00A0EDBCF10F00B0E6FEC0EF03FDA90 -:101410004CEC0FF03E6A3F6A800E406E400E416E0B -:10142000380EDBCF43F0390EDBCF44F03A0EDBCF82 -:1014300045F03B0E29EC10F048DB43DB89DB3DC077 -:1014400002F03EC003F03FC004F040C005F03DC0D4 -:101450003EF09EEC0FF05EEC0FF0FBDE0A6E060E27 -:10146000E15E0A50D2D1380EDBCF04F0390EDBCF6B -:1014700005F03A0EDBCF06F03B0EDBCF07F0BDDB0D -:10148000F7DA79EC10F066EC10F0F2DAAADB7EEC19 -:101490000FF021EC0FF053EC22F0140E3EC0DBFFF6 -:1014A000150E3FC0DBFF160E40C0DBFF170EDBDB67 -:1014B00006EC0FF021EC0FF03CEC23F0180E3EC0D0 -:1014C000DBFF190E3FC0DBFF1A0E40C0DBFF1B0E17 -:1014D000CADB76EC10F021EC0FF03CEC23F01C0E94 -:1014E0003EC0DBFF1D0E3FC0DBFF1E0E40C0DBFF1A -:1014F0001F0E41C0DBFF1C0EDBCF00F01D0EDBCF4B -:1015000001F01E0EDBCF02F01F0EDBCF03F08CDBF1 -:1015100026EC10F0200E3EC0DBFF210E3FC0DBFFAB -:10152000220E40C0DBFF230E41C0DBFFD950180F55 -:10153000E96EDACFEAFF240EEECFDBFF250EEECF09 -:10154000DBFF260EEECFDBFF270EEECFDBFFFD0E1F -:10155000DBCF3FF0FE0E14EC10F0200EDBCF43F09B -:10156000210EDBCF44F0220EDBCF45F0230E29EC19 -:101570000FF0280E3EC0DBFF290E3FC0DBFF2A0E16 -:1015800040C0DBFF2B0E41C0DBFF59EC0FF014EC29 -:1015900010F0240EDBCF43F0250EDBCF44F0260EF7 -:1015A000DBCF45F0270E29EC0FF02C0E3EC0DBFF01 -:1015B0002D0E3FC0DBFF2E0E40C0DBFF2F0E41C0C3 -:1015C000DBFF2C0EDBCF04F02D0EDBCF05F02E0E53 -:1015D000DBCF06F02F0EDBCF07F026DB1DDA3CEC6D -:1015E00023F02FEC0FF0300E3EC0DBFF310E3FC07A -:1015F000DBFF320E40C0DBFF330E41C0DBFF280EA5 -:10160000DBCF3EF0290EDBCF3FF02A0EDBCF40F0E0 -:101610002B0EDBCF41F02FEC0FF0340E3EC0DBFF82 -:10162000350E3FC0DBFF360E40C0DBFF370E41C03A -:10163000DBFFD950300FEBD9D950340FE8D99BECF0 -:101640002BF0006E080EE15E00500C0E3DC0DBFF7B -:101650000D0E3EC0DBFF0E0E3FC0DBFF0F0E40C085 -:10166000DBFF006A016A026A400E036E00C0E6FFFB -:1016700001C0E6FF02C0E6FFE66E9EDBBAEC0FF0AB -:1016800020DA45EC10F03DC014F03EC015F03FC02C -:1016900016F040C017F0B6EC0FF09BEC2BF0186E74 -:1016A000080EE15E1850E552E7CF03F0E552E7CFB0 -:1016B00002F0E552E7CF01F0E552E7CF00F03DC080 -:1016C00004F03EC005F03FC006F040C007F030DA3D -:1016D00026EC10F0100E3EC0DBFF110E3FC0DBFF0A -:1016E000120E40C0DBFF130E41C0DBFFF60EDB50D5 -:1016F00002081DE1E2EC0FF052EC22F019EC10F0C0 -:1017000053EC22F053D92FDA060E3FC0DBFF070E51 -:1017100040C0DBFFB1EC0FF056D9020EDBCF3FF03B -:10172000030E6CDB040E3FC0DBFF050E4FD03E6A9C -:101730003F6A406A400E416E080EDBCF43F0090E4F -:10174000DBCF44F00A0EDBCF45F00B0E29EC10F096 -:10175000F4D80C0EDBCF04F00D0EDBCF05F00E0E2F -:10176000DBCF06F00F0EDBCF07F004C043F005C05F -:1017700044F006C045F007C046F052EC22F00C0ED3 -:101780003EC0DBFF0D0E3FC0DBFF0E0E40C0DBFF97 -:101790000F0E41C0DBFFE2EC0FF053EC22F019EC2E -:1017A00010F052EC22F002D9DED9040E3FC0DBFF6C -:1017B000050E40C0DBFF020EDBCF3FF0030E03D966 -:1017C000D0DB1CDB060E3FC0DBFF070E40C0DBFF9B -:1017D0005ED8BCD8040EDBCF3FF0050E2CDAC6DB9A -:1017E000C0DBB3DB6AD9206E0D0EE15E2050AED8AF -:1017F000060EDBCF3FF0070E1EDAE3D9DBCF3FF05A -:10180000030EA3DBB3DB010E4AD93C0EE15C02E21E -:10181000E16AE552E16E0ED1A0DB3BEC10F080D91D -:10182000E66ABBD901015F51EE5C066E6051EE586D -:10183000076E6151EE58086E6251C8D802E2E16A43 -:10184000E552E16EF7D089DB67DB6AD9010EE66EFF -:10185000A4D901016351EE5C066E6451EE58076E27 -:101860006551EE58086E6651B1D802E2E16AE55260 -:10187000E16EE0D0040EE66EE66A99D906E0040E49 -:10188000E66E010EE66E93D901E1000C010CF2DF69 -:101890000009FDE012005DEC10F04FDA0ADBCBD955 -:1018A00065DB06EF0FF03EC01CF03FC01DF040C0EE -:1018B0001EF041C01FF07DDB62EC10F03DC018F05F -:1018C0003EC019F03FC01AF040C01BF012003EC0ED -:1018D00043F03FC044F040C045F041C046F0120024 -:1018E00000DB3FEF0FF000C03EF001C03FF002C050 -:1018F00040F003C041F01200FA0EDBCF00F0FB0E07 -:10190000DBCF01F0FC0EDBCF02F0FD0EDBCF03F0EE -:10191000000E006C011E0122021E0222031E032281 -:1019200000C0DFFF010E01C0DBFF020E02C0DBFFC3 -:10193000030E03C0DBFF4AEF10F03EC000F03FC0D3 -:1019400001F040C002F041C003F01200B1DB9DEF96 -:101950000EF0E66EC6DA64EF0FF002C03EF0EEDA8B -:1019600052EC22F0ABDA83DC126E060EE15E12500E -:101970001200466E3CEC23F03EC020F03FC021F048 -:1019800040C022F041C023F01200000E186C191E56 -:1019900019221A1E1A221B1E1B2218C0E6FF19C08C -:1019A000E6FF1AC0E6FF1BC0E6FF1200100EDBCFF9 -:1019B00043F0110EDBCF44F0120EDBCF45F0130ED7 -:1019C00048DBA9EF23F0DFDAC7EF0FF0EE58096E1E -:1019D00006C03DF007C03EF008C03FF0406E39EC55 -:1019E00022F03EC002F03FC003F040C004F041C00E -:1019F00005F0DFDAE9EC22F054DB3FC0F3FF40C032 -:101A0000F4FF040EE15C1200A3DAE76E1200E96E47 -:101A1000DACFEAFF75EF0FF004C03EF005C03FF0EB -:101A200006C040F007C041F01200D9CFE6FFE1CF79 -:101A3000D9FF1200E552E7CFD9FF12002DDA026A72 -:101A4000036AB40E046E420E056E12003EC024F00E -:101A50003FC025F040C026F041C027F012000CC066 -:101A60003EF00DC03FF00EC040F00FC041F012003C -:101A7000F40EDBCF3FF0F50EC3EF0FF0060EE7CF0D -:101A8000DBFFDBCFE6FF070EDBCFE6FF040EDBCF8D -:101A9000E6FF050EDBCFE6FFFDDA69EF0FF0E66E3D -:101AA000DAEC07F0206E0D0EE15E205020EF10F012 -:101AB00018DA90EC06F0E552120058DAE66ADAEF2E -:101AC00007F00ADB41C0E6FF12003EC006F03FC04F -:101AD00007F040C008F041C009F01200D950F60FDD -:101AE00016DA040EEECFDBFF050EEECFDBFF060E9F -:101AF000EECFDBFF070EEECFDBFF1200020EE66E2D -:101B000003EC07F0E5521200040EDBCF00F0050EE7 -:101B1000DBCF01F0060EDBCF02F0070E97EF0FF0E0 -:101B200002DA020EF3CFDBFF030EF4CFDBFF12006D -:101B30003DC043F03EC044F03FC045F040C046F0D9 -:101B40001200080EDBCFE6FF090EDBCFE6FF120026 -:101B5000AEEC27F0E552E552E552E5521200400E98 -:101B6000466EE9EF22F0020E3FC0DBFF030E40C0DD -:101B7000DBFFA3DADBCF40F01200010EE66E3FEF91 -:101B80000FF0D950080FE96EDACFEAFFEE52ED8878 -:101B90001200456E430E466E1200C5D9F3CFDEFF2C -:101BA000F4CFDDFFD9CFE9FFDACFEAFF1200F0EC86 -:101BB00006F0E552E55200091200FE0EDB50020865 -:101BC0001200D4D9020E1200436A800E446E120035 -:101BD00030C03EF031C03FF032C040F033C041F081 -:101BE00012003EC018F03FC019F040C01AF041C0CA -:101BF0001BF01200E66E64EF0FF00C6A0D6A0E6ABD -:101C0000400E0F6E1200286E0D0EE15E285012007D -:101C100068D903EC07F0E55212000DEC07F0006EF6 -:101C2000090EE15E00501200436A446A800E456E60 -:101C3000BF0E466E1200A7D9D3D9BBD93CEC23F016 -:101C4000AFD9BD0E436E370E446E860E456E410E03 -:101C5000466E38DA3DC00CF03EC00DF03FC00EF0CD -:101C600040C00FF0120041C0DBFF046A056A800E1D -:101C7000066E3F0E076EC1DF04C0E6FF05C0E6FF3B -:101C800006C0E6FF07C0E6FF0CC0E6FF0DC0E6FF9A -:101C90000EC0E6FFE66EF9D9E552E7CF0FF0E55248 -:101CA000E7CF0EF0E552E7CF0DF0E552E7CF0CF0AD -:101CB000E552E7CF07F0E552E7CF06F0E552E7CF70 -:101CC00005F0E552E7CF04F03DC010F03EC011F042 -:101CD0003FC012F040C013F02BDF66EF10F0DBCFF7 -:101CE00011F0436A446A340E54DF0EC03EF00FC058 -:101CF0003FF010C040F011C041F03CEC23F03EC07A -:101D00000AF03FC00BF040C00CF041C00DF0DB0EFC -:101D1000436E0F0E446E490E456E21DFD6DED7DDD1 -:101D2000ADEF0CF0B8DD92DE98D923DE4DDF810EE9 -:101D300030DF3CEC23F053EF0CF0D5D93AD93CEC32 -:101D400023F025D9CC0E436EBC0E446E8C0E456E2E -:101D50003B0E466EB7D93DC000F03EC001F03FC01B -:101D600002F040C003F0B6EF0FF095DD3EC028F062 -:101D70003FC029F040C02AF041C02BF06ED9466E1A -:101D80003CEC23F063DE436A446A456A400EF1DDB1 -:101D9000306A800E316E010E326E430E336E88D97A -:101DA000F2D83EC034F03FC035F040C036F041C0FC -:101DB00037F08DDDE8EF0DF0140EDBCF0CF0150ED3 -:101DC000DBCF0DF0160EDBCF0EF0170EDBCF0FF0D2 -:101DD0004FDE8FD944DE52EF22F0140EDBCF00F03D -:101DE000150EDBCF01F0160EDBCF02F0170EDBCFA6 -:101DF00003F0EADE010ECDDE73EF0CF074D9F9D8F2 -:101E00005CD9C1D807D922D9A9EF23F0FD0EDBCFC9 -:101E10003FF0FE0EC3EF0FF03EC02CF03FC02DF0A0 -:101E200040C02EF041C02FF052DD20C03EF021C056 -:101E30003FF022C040F023C041F03CEC23F053EFD0 -:101E40000CF0CED844DD73EF0CF0DBCFE6FF70EF83 -:101E50000CF0FFD88FD83BDD46DD52EF22F0140E98 -:101E6000DBCF43F0150EDBCF44F0160EDBCF45F091 -:101E7000170EDBCF46F0E9EC22F09DEF0CF0FDEC05 -:101E800004F0E552E552E5521200010EE66EDAEC7E -:101E900007F0B9DED5D8CED5F70EDBCFE6FFF80ECA -:101EA000DBCFE6FFF90EDBCFE6FFFA0EDBCFE6FF76 -:101EB0001200FB0EDBCF3FF0FC0E1200F2D83FC049 -:101EC000E6FF40C0E6FF12007EEC04F0E552E5526A -:101ED0001200DECFE6FFDDCFE6FF1200A6DD7EEFCB -:101EE0000DF0FE0EDBCFE6FF1200EECFE6FFEECFE9 -:101EF000E6FFEECFE6FFEFCFE6FF1200436A446A4B -:101F0000456AAFEF0DF0E66EE66A70EF0CF0E96E31 -:101F1000FF0EDA20EA6E12000A0EE66E010E6ADE8D -:101F2000010EE66E1200E2EC05F0E5521200DBCF86 -:101F300003F00050011002100310120003C03FF024 -:101F400004C040F005C041F012001DD853EF0CF062 -:101F5000E66E3FEC30F0E552120067DD040EE1263C -:101F60001200000EDFCF3FF0010E12003DC0E6FF71 -:101F70006CEF10F03EC008F03FC009F040C00AF01E -:101F800041C00BF01200DBCF40F024EF22F03EC046 -:101F900004F03FC005F040C006F041C007F0120059 -:101FA0003EC010F03FC011F040C012F041C013F02D -:101FB0001200330E436EE20E446EC20E456E420EA8 -:101FC000466E12003BDD0C0EDBCF0EF00D0EDBCFAC -:101FD0000FF00E0EDBCF10F00F0E81DEEDEF0EF0E6 -:101FE0003EC014F03FC015F040C016F041C017F0DD -:101FF00012006DDC11DDE9EC22F09DEF0CF0060E15 -:10200000DBCFE6FF070E21DF040EDBCFE6FF050E78 -:1020100025EF0FF03EC00CF03FC00DF040C00EF0B9 -:1020200041C00FF067EF0CF0CEDC68DF86DCDCEF40 -:102030000EF0BCDC3FC0DEFF40C0DDFFEDEF0EF078 -:10204000020EE66ECBEC08F0E55212004CDC3CEFE1 -:1020500023F0DBCF46F03CEF23F0350E436EFA0E53 -:10206000446E0E0E456E3C0E1200FC0EDBCFE6FFFA -:10207000FD0E25EF0FF00A0EE66EE66A25DFE66A32 -:1020800012002CDF08DC53EF0CF0D950380FBFDC06 -:10209000A8EF0DF0020EDBCFE6FF030EDBCFE6FF6D -:1020A0001200A9EC23F03FC000F040C001F0120084 -:1020B000F70EDBCF3FF0F80E1200F90EDBCF3FF04A -:1020C000FA0E12003CEC23F0D8EF23F0C8DC3CEC15 -:1020D00023F050DFF9EF0FF03EC0E6FF3FC0E6FF10 -:1020E00040C0E6FF12004FDFBAEF0FF0E2DEC3EFB1 -:0820F0000FF056DF67EF0CF062 -:0820F800DACFE4FFE2CFDAFFCA -:10210000E9CFE4FFEACFE4FFF6CFE4FFF7CFE4FF47 -:10211000F5CFE4FFF3CFE4FFF4CFE4FFFACFE4FF21 -:1021200000EE39F0140EE80403E3EECFE4FFFBD732 -:1021300000EE00F0390EE80403E3EECFE4FFFBD736 -:1021400054EC1CF09EA013D05EEC1CF001014D2B52 -:10215000000E4E23E80E4D5D030E4E5905E34D6B08 -:102160004E6B4F2B000E5023CFEC29F09E9067EC66 -:102170001CF002E2E16AE552E16EE552E7CFD9FFD9 -:10218000E55200EE38F0390EE80403E3E5CFEDFF49 -:10219000FBD700EE4CF0140EE80403E3E5CFEDFFAF -:1021A000FBD7E5CFFAFFE5CFF4FFE5CFF3FFE5CFAF -:1021B000F5FFE5CFF7FFE5CFF6FFE5CFEAFFE5CF87 -:1021C000E9FFE5CFDAFF1100D8CFE4FFE0CFE4FF6D -:1021D000E46EDACFE4FFE2CFDAFFF3CFE4FFF4CF2F -:1021E000E4FF54EC1CF067EC1CF002E2E16AE552FB -:1021F000E16EE552E7CFD9FFE552E5CFF4FFE5CF39 -:10220000F3FFE5CFDAFFE550E5CFE0FFE5CFD8FFFC -:10221000100004D8B2EC1CF060D8FCD70F0EC1122D -:1022200002D87CEF1CF077EC1CF0E6522BEC1CF093 -:102230000101676F070E675D10E1E66A3FEC30F061 -:10224000E552DF6E000EDF806FEC1CF0E66AF8EC02 -:1022500030F0E552DF706FEC1CF0D08EF28EF28C15 -:10226000F30E8C1695160101476B486B496B4A6B50 -:10227000010E4B6F92948094939881980D0EE66EA8 -:102280007C0EE66EE10EE66EB2EC2FF0E552E55202 -:10229000E552C70E921694943F0E9516010EE66E07 -:1022A0002EEC04F0E552838C808A82848088838EB1 -:1022B00080868294010EE66E33EC31F0E552828422 -:1022C0009D80C50EE66E88EC30F0E5525EEC1CF0A9 -:1022D000E552E552E7CFD9FF1200D9CFE6FFE1CFB3 -:1022E000D9FF0F0EE12601014B5102E070EC1BF00B -:1022F000200E0101005D03E36D50020B02E066EF6A -:102300001BF0010149514A1102E1000E08D049C1F8 -:10231000E9FF4AC1EAFFEF50800B01E0010E00091E -:1023200047E101014651EA6A260FE96E010EEA22F1 -:10233000EF5000083DE20501406B01014C514C2B70 -:102340000501416F0501040E426F01014651EA6A21 -:10235000260FE96E010EEA22EFCF43F5400EE66E3E -:10236000400EE66E050EE66E010EE66E010EE66E9E -:10237000CDEC20F0006E050EE15E0050F3CF49F188 -:10238000F4CF4AF101014651EA6A260FE96E010EC7 -:10239000EA22EF6A01014651000803E20101460703 -:1023A00007D001014551000803E201011F0E466FED -:1023B000010149514A1102E1000E08D049C1E9FF6B -:1023C0004AC1EAFFEF50800B01E0010E00092CE149 -:1023D0000101520529E13AEC0CF0000925E0050164 -:1023E000406B01014C514C2B0501416F05010A0E58 -:1023F000426F0501436B0501010E486F400EE66E0A -:10240000400EE66E050EE66E010EE66E010EE66EFD -:10241000CDEC20F0006E050EE15E0050F3CF49F1E7 -:10242000F4CF4AF10101526B000E0101E76E511920 -:10243000E8AE02D0513503D0E750D880515501E3C2 -:102440008ED001015151FF0A29E0FD0A13E0030A71 -:1024500001E06ED0020EE66E1BEC2BF0E55257EC5D -:1024600007F0000904E00101020E516F02D00101E2 -:10247000516960D0200EE66E030EE66EC80EE66E61 -:10248000E66AE80EE66E030EE66E29EC09F0006ED1 -:10249000060EE15E00500101516B4CD00101495123 -:1024A0004A1102E1000E08D049C1E9FF4AC1EAFF22 -:1024B000EF50800B01E0010E000939E10501406B8E -:1024C00001014C514C2B0501416F0501050E426F76 -:1024D0000501436B0501486B450E006E5F0E016EF2 -:1024E000026A00C0E6FF01C0E6FF02C0E6FF480E38 -:1024F000E66E050EE66E03EC30F0036E050EE15E4F -:102500000350400EE66E400EE66E050EE66E010EBE -:10251000E66E010EE66ECDEC20F0006E050EE15E7B -:102520000050F3CF49F1F4CF4AF10101516B02D0D1 -:102530000101516B020EE66EE66AF0EC06F0E55220 -:10254000E55200090AE1020EE66E010EE66EF0ECBD -:1025500006F0E552E552000902E00101516901016E -:102560004751481102E1000E08D047C1E9FF48C1B8 -:10257000EAFFEF50800B01E0010E000902E066EF78 -:102580001BF005010251070A02E1C7EF1AF00D0A1C -:1025900001E149D2010A01E119D20D0A01E1B1D1EB -:1025A000040A1AE0030A07E0010A02E025EF1BF023 -:1025B000FF0066EF1BF0E66A3FEC30F0E552DF6E9D -:1025C000000EDB80DFCFE6FFE66A1FEC30F0E5525D -:1025D000E552FF0066EF1BF0010149514A1102E18B -:1025E000000E08D049C1E9FF4AC1EAFFEF50800B55 -:1025F00001E0010E000901E082D100C540F50501AE -:10260000416B0501030E426F0501436B0501085143 -:102610000F0A01E110D1080A01E1BBD0010A01E172 -:102620007ED0020A71E0070A64E0010A20E0030A92 -:1026300006E0010A01E039D167C148F539D1050149 -:10264000486B210E006E5F0E016E026A00C0E6FF4D -:1026500001C0E6FF02C0E6FF480EE66E050EE66E1C -:1026600003EC30F0036E050EE15E035021D105014D -:10267000486B150E006E5F0E016E026A00C0E6FF29 -:1026800001C0E6FF02C0E6FF480EE66E050EE66EEC -:1026900003EC30F0036E050EE15E0350130E006E86 -:1026A0005F0E016E026A00C0E6FF01C0E6FF02C0D5 -:1026B000E6FF480EE66E050EE66E03EC30F0036EA4 -:1026C000050EE15E03500A0E006E5F0E016E026A97 -:1026D00000C0E6FF01C0E6FF02C0E6FF480EE66E5E -:1026E000050EE66E03EC30F0036E050EE15E03505E -:1026F000DFD092CF48F593CF49F594CF4AF595CFE7 -:102700004BF596CF4CF5D4D080CF48F581CF49F525 -:1027100082CF4AF583CF4BF584CF4CF5C9D0E66A1A -:1027200075EC2AF0E552010E3DC0DBFF020E3EC003 -:10273000DBFF030E3FC0DBFF040E40C0DBFF040ED7 -:10274000DBCF48F5030EDBCF49F5020EDBCF4AF5B0 -:10275000010EDBCF4BF5010EE66E75EC2AF0E5526B -:10276000010E3DC0DBFF020E3EC0DBFF030E3FC08B -:10277000DBFF040E40C0DBFF040EDBCF4CF5030E85 -:10278000DBCF4DF5020EDBCF4EF5010EDBCF4FF563 -:102790008FD00A0EE66EE66A7EEC04F0E552E55252 -:1027A000E66AE2EC05F0E552030EF3CFDBFF040E20 -:1027B000F4CFDBFFE66AE2EC05F0E552DE52F3CF40 -:1027C000DEFFF4CFDDFFDD52040EDBCF48F5030E54 -:1027D000DBCF49F5020EDBCF4AF5010EDBCF4BF51F -:1027E0000A0EE66E010EE66E7EEC04F0E552E5524E -:1027F000010EE66EE2EC05F0E552030EF3CFDBFFCF -:10280000040EF4CFDBFF010EE66EE2EC05F0E552BC -:10281000DE52F3CFDEFFF4CFDDFFDD52040EDBCF5F -:102820004CF5030EDBCF4DF5020EDBCF4EF5010E5E -:10283000DBCF4FF53DD0E66A06EC09F0E552010E1C -:102840003DC0DBFF020E3EC0DBFF030E3FC0DBFFDF -:10285000040E40C0DBFF040EDBCF48F5030EDBCFD8 -:1028600049F5020EDBCF4AF5010EDBCF4BF5010E29 -:10287000E66E06EC09F0E552010E3DC0DBFF020EEC -:102880003EC0DBFF030E3FC0DBFF040E40C0DBFF9A -:10289000040EDBCF4CF5030EDBCF4DF5020EDBCF84 -:1028A0004EF5010EDBCF4FF503D00501020E436F4D -:1028B000400EE66E400EE66E050EE66E010EE66E0A -:1028C000010EE66ECDEC20F0006E050EE15E0050CC -:1028D000F3CF49F1F4CF4AF1400EE66E000EE66EFA -:1028E000050EE66EE66A010EE66ECDEC20F0006E97 -:1028F000050EE15E0050F3CF47F1F4CF48F166EFEB -:102900001BF005010851030A37E0010A25E0030A1C -:1029100013E0010A01E040D00501095192120501BE -:102920000A51931205010B51941205010C51951295 -:1029300005010D51961235D00501091D92160501AC -:102940000A1D931605010B1D941605010C1D951605 -:1029500005010D1D961625D00501091D89160501D5 -:102960000A1D8A1605010B1D8B1605010C1D8C1600 -:1029700005010D1D8D1615D005010951891205019E -:102980000A518A1205010B518B1205010C518C1250 -:1029900005010D518D1205D0030EE66EC5EC30F029 -:1029A000E552400EE66E000EE66E050EE66EE66A35 -:1029B000010EE66ECDEC20F0006E050EE15E0050DB -:1029C000F3CF47F1F4CF48F166EF1BF00501085152 -:1029D000020A09E0030A01E00CD009C5E6FF1BEC7E -:1029E0002BF0E5520BD009C5E6FF2BEC2BF0E5529E -:1029F00005D0010EE66EC5EC30F0E552400EE66EF5 -:102A0000000EE66E050EE66EE66A010EE66ECDEC91 -:102A100020F0006E050EE15E0050F3CF47F1F4CFD9 -:102A200048F166EF1BF005010851060A02E186EF46 -:102A30001AF0080A02E14CEF1AF0030A02E143EF30 -:102A40001AF0070A02E1DFEF19F0030A02E127EFAB -:102A500019F0010A01E10BD30F0A01E1F4D2020AD5 -:102A600001E1A9D2150A01E16AD2140A01E139D2C1 -:102A7000070A01E108D2010A01E1D7D1030A01E105 -:102A8000A6D1010A01E1A0D10C0A01E126D1030A75 -:102A900001E194D0040A02E0AEEF1AF005010951F9 -:102AA00004E0020E0501095D40E10AC5E6FF010EE2 -:102AB000E66E1FEC30F0E552E5520BC5E6FF020E64 -:102AC000E66E1FEC30F0E552E5520CC5E6FF030E52 -:102AD000E66E1FEC30F0E552E5520DC5E6FF040E40 -:102AE000E66E1FEC30F0E552E5520EC5E6FF050E2E -:102AF000E66E1FEC30F0E552E5520FC5E6FF060E1C -:102B0000E66E1FEC30F0E552E55210C5E6FF070E09 -:102B1000E66E1FEC30F0E552E55211C5E6FF080EF7 -:102B2000E66E1FEC30F0E552E5520501090504E0C0 -:102B3000020E0501095D40E10AC5E6FF090EE66ED9 -:102B40001FEC30F0E552E5520BC5E6FF0A0EE66ECB -:102B50001FEC30F0E552E5520CC5E6FF0B0EE66EB9 -:102B60001FEC30F0E552E5520DC5E6FF0C0EE66EA7 -:102B70001FEC30F0E552E5520EC5E6FF0D0EE66E95 -:102B80001FEC30F0E552E5520FC5E6FF0E0EE66E83 -:102B90001FEC30F0E552E55210C5E6FF0F0EE66E71 -:102BA0001FEC30F0E552E55211C5E6FF100EE66E5F -:102BB0001FEC30F0E552E552B3EF1AF000C540F5D6 -:102BC0000501416B0501030E426F0501436B010EC8 -:102BD000E66E3FEC30F0E5520501486F020EE66EFE -:102BE0003FEC30F0E5520501496F030EE66E3FEC15 -:102BF00030F0E55205014A6F040EE66E3FEC30F00E -:102C0000E55205014B6F050EE66E3FEC30F0E552E4 -:102C100005014C6F060EE66E3FEC30F0E552050103 -:102C20004D6F070EE66E3FEC30F0E55205014E6F3A -:102C3000080EE66E3FEC30F0E55205014F6F090ECD -:102C4000E66E3FEC30F0E5520501506F0A0EE66E7D -:102C50003FEC30F0E5520501516F0B0EE66E3FEC94 -:102C600030F0E5520501526F0C0EE66E3FEC30F08D -:102C7000E5520501536F0D0EE66E3FEC30F0E55264 -:102C80000501546F0E0EE66E3FEC30F0E552050183 -:102C9000556F0F0EE66E3FEC30F0E5520501566FB2 -:102CA000100EE66E3FEC30F0E5520501576F400E16 -:102CB000E66E400EE66E050EE66E010EE66E010E45 -:102CC000E66ECDEC20F0006E050EE15E0050F3CF15 -:102CD00049F1F4CF4AF1B3EF1AF0E66A010EE66E5D -:102CE0001FEC30F0E552E552010EE66E020EE66E84 -:102CF0001FEC30F0E552E552E66A030EE66E1FEC7B -:102D000030F0E552E552E66A040EE66E1FEC30F054 -:102D1000E552E552E66A050EE66E1FEC30F0E5522C -:102D2000E552E66A060EE66E1FEC30F0E552E5521B -:102D3000270EE66E070EE66E1FEC30F0E552E55208 -:102D4000100EE66E080EE66E1FEC30F0E552E5520E -:102D5000E66A090EE66E1FEC30F0E552E552010E10 -:102D6000E66E0A0EE66E1FEC30F0E552E552E66ABA -:102D70000B0EE66E1FEC30F0E552E552E66A0C0EE3 -:102D8000E66E1FEC30F0E552E552E66A0D0EE66E97 -:102D90001FEC30F0E552E552E66A0E0EE66E1FECCF -:102DA00030F0E552E552270EE66E0F0EE66E1FEC90 -:102DB00030F0E552E552100EE66E100EE66E1FEC96 -:102DC00030F0E552E552CFD357EC07F0CCD3060EE6 -:102DD00009C5DBFF050E0AC5DBFF080E0BC5DBFFCF -:102DE000070E0CC5DBFF0A0E0DC5DBFF090E0EC575 -:102DF000DBFF090EDBCFE6FF0A0EDBCFE6FF070E97 -:102E0000DBCFE6FF080EDBCFE6FF050EDBCFE6FFEC -:102E1000060EDBCFE6FF29EC09F0006E060EE15E40 -:102E200000500101010E526F9ED3060E09C5DBFF53 -:102E3000050E0AC5DBFF080E0BC5DBFF070E0CC530 -:102E4000DBFF0A0E0DC5DBFF090E0EC5DBFF090E09 -:102E5000DBCFE6FF0A0EDBCFE6FF070EDBCFE6FF98 -:102E6000080EDBCFE6FF050EDBCFE6FF060EDBCF5D -:102E7000E6FF30EC09F0006E060EE15E0050010145 -:102E8000010E526F70D3060E09C5DBFF050E0AC591 -:102E9000DBFF080E0BC5DBFF070E0CC5DBFF0A0EC0 -:102EA0000DC5DBFF090E0EC5DBFF090EDBCFE6FF0C -:102EB0000A0EDBCFE6FF070EDBCFE6FF080EDBCF07 -:102EC000E6FF050EDBCFE6FF060EDBCFE6FF37ECB5 -:102ED00009F0006E060EE15E00500101010E526F16 -:102EE00042D3060E09C5DBFF050E0AC5DBFF080E3F -:102EF0000BC5DBFF070E0CC5DBFF0A0E0DC5DBFFA4 -:102F0000090E0EC5DBFF090EDBCFE6FF0A0EDBCF95 -:102F1000E6FF070EDBCFE6FF080EDBCFE6FF050E70 -:102F2000DBCFE6FF060EDBCFE6FF46EC09F0006ED6 -:102F3000060EE15E00500101010E526F14D3060E21 -:102F400009C5DBFF050E0AC5DBFF080E0BC5DBFF5D -:102F5000070E0CC5DBFF0A0E0DC5DBFF090E0EC503 -:102F6000DBFF0C0E0FC5DBFF0B0E10C5DBFF11C521 -:102F7000E6FF0B0EDBCFE6FF0C0EDBCFE6FF090E04 -:102F8000DBCFE6FF0A0EDBCFE6FF070EDBCFE6FF67 -:102F9000080EDBCFE6FF050EDBCFE6FF060EDBCF2C -:102FA000E6FF53EC09F0006E090EE15E00500101EE -:102FB000010E526FD8D2060E09C5DBFF050E0AC5F9 -:102FC000DBFF080E0BC5DBFF070E0CC5DBFF0A0E8F -:102FD0000DC5DBFF090E0EC5DBFF0C0E0FC5DBFFB9 -:102FE0000B0E10C5DBFF0E0E12C5DBFF0D0E13C559 -:102FF000DBFF0D0EDBCFE6FF0E0EDBCFE6FF11C5CC -:10300000E6FF0B0EDBCFE6FF0C0EDBCFE6FF090E73 -:10301000DBCFE6FF0A0EDBCFE6FF070EDBCFE6FFD6 -:10302000080EDBCFE6FF050EDBCFE6FF060EDBCF9B -:10303000E6FF94EC09F0006E0B0EE15E005001011A -:10304000010E526F90D2060E0AC5DBFF050E0BC5AE -:10305000DBFF050EDBCFE6FF060EDBCFE6FF09C583 -:10306000E6FFFCEC08F0E552E552E5527CD2060E94 -:103070000AC5DBFF050E0BC5DBFF080E0CC5DBFF29 -:10308000070E0DC5DBFF0A0E0EC5DBFF090E0FC5CF -:10309000DBFF09C5E6FF03EC07F0E552090EDBCFC5 -:1030A0003FF00A0EDBCF40F022EC22F03EC008F0E9 -:1030B0003FC009F040C00AF041C00BF0330E436E30 -:1030C000E20E446EC20E456E420E466E08C03EF0E1 -:1030D00009C03FF00AC040F00BC041F03CEC23F0C7 -:1030E0003EC004F03FC005F040C006F041C007F00C -:1030F000CC0E436EBC0E446E8C0E456E3B0E466E7F -:1031000004C03EF005C03FF006C040F007C041F0EB -:103110003CEC23F0D8EC23F03DC000F03EC001F0C1 -:103120003FC002F040C003F000C0E6FF01C0E6FF70 -:1031300002C0E6FF03C0E6FF070EDBCF3FF0080E3C -:10314000DBCF40F022EC22F03EC014F03FC015F07F -:1031500040C016F041C017F0330E436EE20E446ECD -:10316000C20E456E420E466E14C03EF015C03FF0D2 -:1031700016C040F017C041F03CEC23F03EC010F008 -:103180003FC011F040C012F041C013F0BD0E436EBD -:10319000370E446E860E456E410E466E10C03EF0F0 -:1031A00011C03FF012C040F013C041F03CEC23F0DE -:1031B000D8EC23F03DC00CF03EC00DF03FC00EF047 -:1031C00040C00FF00CC0E6FF0DC0E6FF0EC0E6FFEA -:1031D0000FC0E6FF050EDBCF3FF0060EDBCF40F061 -:1031E00022EC22F03EC01CF03FC01DF040C01EF09B -:1031F00041C01FF0330E436EE20E446EC20E456EA8 -:10320000420E466E1CC03EF01DC03FF01EC040F096 -:103210001FC041F03CEC23F0D8EC23F03DC018F087 -:103220003EC019F03FC01AF040C01BF018C0E6FFC6 -:1032300019C0E6FF1AC0E6FF1BC0E6FF09C5E6FF9E -:10324000DAEC07F0206E0D0EE15E20508CD1060EF8 -:103250000AC5DBFF050E0BC5DBFF080E0CC5DBFF47 -:10326000070E0DC5DBFF09C5E6FF03EC07F0E552CD -:103270000EC5E6FF070EDBCF3FF0080EDBCF40F0B8 -:1032800022EC22F03EC008F03FC009F040C00AF036 -:1032900041C00BF0330E436EE20E446EC20E456E1B -:1032A000420E466E08C03EF009C03FF00AC040F032 -:1032B0000BC041F03CEC23F03EC004F03FC005F0F1 -:1032C00040C006F041C007F0CC0E436EBC0E446E09 -:1032D0008C0E456E3B0E466E04C03EF005C03FF0BE -:1032E00006C040F007C041F03CEC23F0D8EC23F0DE -:1032F0003DC000F03EC001F03FC002F040C003F00E -:1033000000C0E6FF01C0E6FF02C0E6FF03C0E6FF23 -:10331000050EDBCF3FF0060EDBCF40F022EC22F0B3 -:103320003EC014F03FC015F040C016F041C017F089 -:10333000330E436EE20E446EC20E456E420E466E72 -:1033400014C03EF015C03FF016C040F017C041F069 -:103350003CEC23F03EC010F03FC011F040C012F032 -:1033600041C013F0BD0E436E370E446E860E456E9F -:10337000410E466E10C03EF011C03FF012C040F04A -:1033800013C041F03CEC23F0D8EC23F03DC00CF02E -:103390003EC00DF03FC00EF040C00FF00CC0E6FF85 -:1033A0000DC0E6FF0EC0E6FF0FC0E6FF09C5E6FF51 -:1033B00045EC08F0186E0A0EE15E1850D4D0060EE7 -:1033C0000AC5DBFF050E0BC5DBFF09C5E6FF03ECF5 -:1033D00007F0E5520CC5E6FF050EDBCF3FF0060E09 -:1033E000DBCF40F022EC22F03EC008F03FC009F0F5 -:1033F00040C00AF041C00BF0330E436EE20E446E43 -:10340000C20E456E420E466E08C03EF009C03FF047 -:103410000AC040F00BC041F03CEC23F03EC004F089 -:103420003FC005F040C006F041C007F0BD0E436E3E -:10343000370E446E860E456E410E466E04C03EF059 -:1034400005C03FF006C040F007C041F03CEC23F05F -:10345000D8EC23F03DC000F03EC001F03FC002F0C8 -:1034600040C003F000C0E6FF01C0E6FF02C0E6FF77 -:1034700003C0E6FF09C5E6FFB3EC08F00C6E060ECC -:10348000E15E0C5070D009C5E6FFCBEC08F0E552C8 -:103490000101010E526F67D00CEC0CF0050EF3CF5A -:1034A000DBFF060EF4CFDBFF23EC0CF0070EF3CFAF -:1034B000DBFF080EF4CFDBFF00C540F50501416BD3 -:1034C0000501030E426F0501436B060EDBCF48F585 -:1034D000050EDBCF49F5080EDBCF4AF5070EDBCF33 -:1034E0004BF5400EE66E400EE66E050EE66E010EE2 -:1034F000E66E010EE66ECDEC20F0006E050EE15E8C -:103500000050F3CF49F1F4CF4AF12DD000C540F57A -:103510000501416B0501030E426F0501436B3AEC57 -:103520000CF0000904E00501010E486F02D005010E -:10353000486B400EE66E400EE66E050EE66E010E1E -:10354000E66E010EE66ECDEC20F0006E050EE15E3B -:103550000050F3CF49F1F4CF4AF105D0010EE66EE9 -:10356000C5EC30F0E552400EE66E000EE66E050E3C -:10357000E66EE66A010EE66ECDEC20F0006E050EFA -:10358000E15E0050F3CF47F1F4CF48F19FD0010145 -:1035900049514A1102E1000E08D049C1E9FF4AC170 -:1035A000EAFFEF50800B01E0010E00094DE101013F -:1035B000010E516F0501406B01014C514C2B05016F -:1035C000416F0501050E426F0501436B0501486B14 -:1035D000F60E006E5E0E016E026A00C0E6FF01C0CC -:1035E000E6FF02C0E6FF480EE66E050EE66E03EC4F -:1035F00030F0036E050EE15E0350400EE66E400EA5 -:10360000E66E050EE66E010EE66E010EE66ECDEC80 -:1036100020F0006E050EE15E0050F3CF49F1F4CFCB -:103620004AF1400EE66E000EE66E050EE66EE66AA4 -:10363000010EE66ECDEC20F0006E050EE15E00504E -:10364000F3CF47F1F4CF48F141D0010149514A117C -:1036500002E1000E08D049C1E9FF4AC1EAFFEF507C -:10366000800B01E0010E000931E100C540F50501C4 -:10367000416B0501030E426F0501010E436F400EC1 -:10368000E66E400EE66E050EE66E010EE66E010E6B -:10369000E66ECDEC20F0006E050EE15E0050F3CF3B -:1036A00049F1F4CF4AF1400EE66E000EE66E050ECB -:1036B000E66EE66A010EE66ECDEC20F0006E050EB9 -:1036C000E15E0050F3CF47F1F4CF48F10F0EE15C1B -:1036D00002E2E16AE552E16EE552E7CFD9FF12005E -:1036E00001015351541104E1100E536F270E546F12 -:1036F0005307000E545B6DA207D0535154112EE1B5 -:103700008C748CB413D027D00101005102E18C9449 -:1037100022D0000502E18C8409D0020E005D02E196 -:103720008C8419D0040E005D03E18C948C86120009 -:10373000100E005D06E10101535154110FE18C742C -:103740000AD0200E005D0AE101015351541106E137 -:103750008C748CA402D08C9612008C8612001200FD -:103760001200120012006CEF2EF012001E0EE66E18 -:10377000010EE66E9BEC20F0E552E552400EE66E3F -:10378000000EE66E050EE66EE66A010EE66ECDEC04 -:1037900020F0006E050EE15E0050F3CF47F1F4CF4C -:1037A00048F112006D840101080E686F070E696F01 -:1037B0006807000E695B68516911FAE16D941200A7 -:1037C000D9CFE6FFE1CFD9FFFD0EDBCF3FF0FE0EF4 -:1037D000DBCF40F0010E3F1801E1405033E0E868D4 -:1037E0003F1802E1E86840182BE0030E3F1801E1A2 -:1037F000405024E0040E3F1801E140501DE0020E4D -:103800003F1801E1405016E0170E3F1801E140500B -:103810000FE0160E3F1801E1405008E0150E3F186A -:1038200001E1405001E010D0A1DF0FD09EDF0DD0AC -:103830009ADF0BD096DF09D092DF07D091DF05D059 -:1038400091DF03D0000001D000D0010E00D0E5527E -:10385000E7CFD9FF12004BD8E652D0B202D0010E0A -:1038600015D0D0B802D0020E11D0D0B002D0030EC5 -:103870000DD0D0B602D0040E09D0FCAE02D0050E99 -:1038800005D0FCAC02D0060E01D0070EDF6ED0884A -:10389000D086D084D082D080FC9EFC9CDF50E55244 -:1038A000E552E7CFD9FF1200E65221D8020EE126F9 -:1038B000F350DF6E010EF4CFDBFF1200C00EE66E98 -:1038C000E00EE66EA9EC30F0E552E5521200DF5052 -:1038D000F36E010EDB50F46E020EE15C1200DFCFDE -:1038E000E6FFE66A1FEC30F0E552E5521200D9CF50 -:0838F000E6FFE1CFD9FF120051 -:0838F80074EC21F06A6A686AB1 -:10390000A7EC21F06D8C6E6A57EC21F06D9CDF6A9C -:1039100088EC21F010E2DF50040DF3CFE9FFF4CF83 -:10392000EAFF000EE926040EEA22EE6AEE6AEE6A6B -:10393000EE6ADF2AEDD7160E706E68A604D0030E6D -:103940001DEC21F0FAD70101136B186B196B1A6B80 -:103950006D98080E0B6F040E0C6F016B006BE55237 -:1039600032EF21F074EC21F0010100510BE16D6A9E -:10397000696AA7EC21F06DB602D06D86FCD7010113 -:10398000010E006F000508E16DBA06D0686A696A29 -:1039900069806988020E006F6850040B07E0695067 -:1039A000040B04E0020E1DEC21F089D86DB247D063 -:1039B0006850010B14E06950010B11E09DDF01011B -:1039C000040E006F0401200E026F040E036F080E38 -:1039D000016F006B8C0E0013E66AE6EC21F0685074 -:1039E000100B07E06950100B04E060D8040E1DECCA -:1039F00021F06850400B0BE06950400B08E0AEEC42 -:103A000021F0020E25EC21F0060E1DEC21F068508D -:103A1000200B04E06950200B01E035D86850020B00 -:103A20000AE06950020B07E0AEEC21F0E668E668B8 -:103A300006EC22F06A6A040E0101005D02E2A19A1E -:103A40001FD069A61CD0DF6A040EDF5C18E268A6EE -:103A500016D06CCF20F1030E1DEC21F0780E010181 -:103A6000201502E138D809D0000EE66EE66A200E75 -:103A7000E66E010EE66E010EE8DBDF2AE5D7A19ABD -:103A8000E55232EF21F070A00ED040EC21F0EF5063 -:103A9000800808E1D5DBEF50840804E140EC21F018 -:103AA0008C0EEF6E7090050E1DEF21F06984040EF0 -:103AB000C4DB6D8260EC21F0040E25EF21F060EC98 -:103AC00021F0030EC2DB6D92699468A403D0020E4C -:103AD000B4DBFBD7120074EC21F0FD0E01012015C0 -:103AE0003DE17E0E2015E8407F0B040DF3CF03F17E -:103AF000F4CF04F1000E0327040E042303C105F1E3 -:103B000004C106F10575BCDBEF503C0BE842E8420E -:103B10000D0822E1B5DBDDEC21F0EECF00F0EFCFB8 -:103B200001F0280E001816E1040E011813E117EC3D -:103B300022F0DF6AEDDB0EE2DF5090EC21F0DF5087 -:103B4000EA6A200FE96E040EEA22E552E750EF6EB2 -:103B5000DF2AF0D70AD807D01AD805D0FD0E2015D5 -:103B6000040801E122D8E5527DD36ADBEF50800BD7 -:103B700002E066DBEF6A01010F6B106B146B156BD3 -:103B8000136B64D89DDB170E60DB5BEF1FF0020E3A -:103B90000101105D02E1E8EF1FF034D8010121516D -:103BA00002E1E2EF21F0216B12009EDB49DBEF50D6 -:103BB000400B01E0010EDF6E01010B75080E005D88 -:103BC00009E122C46EFF6E50000802E2100E01D01F -:103BD000040E006F100513E11BEC22F0A6D9020EB3 -:103BE00001010F5D03E12CDB840E07D0DF5003E100 -:103BF00027DBC80E02D024DB880EEF6E01D002D87E -:103C0000E55230D32BDB0101106B1ADBEF6A040E97 -:103C10000B19006E0CC101F0DE6E0CC1DDFF19DB6B -:103C2000EF6A18AF0CD01B511C1107E005D01CC166 -:103C3000FAFF01011B51F96EFADF0101189F020E14 -:103C4000E15C02E2E16AE552E16E0CD3040120512D -:103C5000600BE842E842E842E842E842000901E03D -:103C6000120021510C0A45E00B0A3FE00C0A31E03A -:103C7000010A22E00B0A1EE0020A1CE0030A18E017 -:103C8000080A10E0010A0CE00F0A08E0030A01E04C -:103C900012000101138F080E006F1200DBEF1EF0FF -:103CA00044EF20F00101010E116F010E126F0CD0D4 -:103CB0001CEF1FF07AEF1EF024510101116F126BFF -:103CC000020E1127010E12231381010E146F138FA0 -:103CD00012000101138F04012451EA6A020FE96EF8 -:103CE000010EEA2222C4EFFF1200EADA160E25EFD7 -:103CF00021F012007EDB040EE1260401220510E112 -:103D000020511F0B00090CE10101138F030E040168 -:103D1000215D04E10101010E1F6F02D001011F6B43 -:103D20000401225141E120511F0B02083DE12451C1 -:103D30000F0B000939E00101138F040124BF05D0E6 -:103D4000A4DA070EE926010E04D09FDA0B0EE9264D -:103D5000010ED2DA030E215D03E17BDA840E23D05B -:103D600024510F0B016A700F006E0F0E0122020E1C -:103D700000C0DBFF030E01C0DBFF020EDBCFE9FF5B -:103D8000030EDBCFEAFFEE90ED5224AF06D061DAEE -:103D9000EF6ADF745EDA400E06D05BDA880EEF6EF3 -:103DA000DF7457DAC80EEF6E040EE15C02E2E16ADE -:103DB000E552E16E57D2800E0401205D3CE1010125 -:103DC000C00E136F04012351030A1EE0010A09E02B -:103DD000030A2FE10101A60E116F5D0E126F120E84 -:103DE00022D0C3DA500EF6265E0EA2DA020E0101D0 -:103DF000F76A1125F66E1251F7220900F5CF14F17A -:103E00000A00F5CF15F11200030E225D0FE2ADDAC4 -:103E1000520EF6265E0E8CDA11C1F6FF12C1F7FFC4 -:103E20000800F5500101146F156B12000101136BAE -:103E300012000101136B120011DA0401286B296BC7 -:103E400020511F0B020A11E0030A0CE0010A22E1D3 -:103E50000101138F0401288101011F051BE10401E9 -:103E6000288318D00101138F15D00101138F04018D -:103E700024BF05D00ADA070EE926010E04D005DAC0 -:103E80000B0EE926010E38DAE4D9EF50040B02E0FC -:103E9000010E286F010113AF07D0280E116F040E19 -:103EA000126F1381020E146F020EE15C02E2E16AEE -:103EB000E552E16ED7D16D98010113BF08D018AF5C -:103EC00002D061DA2AD07EDABBD9840E27D018BF9F -:103ED0002BD0040120AF24D0010114510401265D30 -:103EE000010115510401275904E226C414F127C425 -:103EF00015F11BD80101010E106FA1DA800EEF6ED3 -:103F0000216BBED9EE52080EEF6E91DAB9D9840E4C -:103F1000EF6E010E216F8FDA93D9C80EEF6E12008B -:103F2000010131DAC80EEF6E120098D90101080EB6 -:103F3000145D000E15590DE214C1DEFF15C1DDFF41 -:103F40000F5102E1010E03D00F0506E1020E0F6FC3 -:103F500003D0080EDE6EDD6A73D9EF9271D9EF904F -:103F60006FD9010EDB50EF126BD9EE52DFCFEFFFAE -:103F7000000EDB50145F010EDB50155B280E1D6F29 -:103F8000040E1E6F13B10FD0F7D91BE011C1F6FF5D -:103F900012C1F7FF112B000E12230800F55096D91D -:103FA000F3E2DB06F1D7E8D90CE011C1E9FF12C159 -:103FB000EAFF112B000E1223EF5088D9F4E2DB0642 -:103FC000F2D7020EE15C02E2E16AE552E16E4AD10B -:103FD00045D956D9EE52EFCFDFFFDFCF00F00050CA -:103FE0000101195D000E1A5903E219C1DFFF09D062 -:103FF000DF50006E016AE850195D196F01501A59BF -:104000001A6F010EDB6ADF50F36E010EDBCFF4FF97 -:10401000F350F45C10E2010EDB5082D916C1E9FFC7 -:1040200017C1EAFF162B000E1723E552E750EF6E7B -:10403000010EDB2AE8D7000ED8801955000E1A555C -:104040000DE2F4D854D91CD9EF50400B03E1EAD962 -:10405000C80E02D0E7D9880EEF6E0FD0F0D9840ECB -:10406000EF6E1B511C1107E005D01CC1FAFF0101C6 -:104070001B51F96EFADF0101189F020EE15C02E2AA -:10408000E16AE552E16EEED00101138F10D9010E05 -:10409000E66EE66AE66A020EE66E010EAFD922C44B -:1040A00001F10401225104E10101100E006F120020 -:1040B0000101200E006F04D9150E25EF21F0CED896 -:1040C000000EDE6E040EDD6EE8D8040DF350006EB7 -:1040D000016A020E0F0B05E0D89001320032E806AB -:1040E000FBE1D89000360136D89000360136D9CFA2 -:1040F000E9FFDACFEAFF0050EE260150ED22A9D801 -:10410000EF9EFD0EDB5002E16AD901D06DD9EA22A3 -:10411000DECFEEFFDDCFEDFF9CD8EF9C9AD8040EEA -:10412000E926000EEA22EF8C020EE15C02E2E16A6F -:10413000E552E16E97D092D8FE0EDB50016A700F07 -:10414000006E0F0EDFD885D8FD0EDBCFEFFFDBA4AE -:1041500002D0E66AF5D8FD0EDBA203D0010EE66EB2 -:10416000EFD8020EE15C02E2E16AE552E16E7AD03C -:1041700075D8FE0EDB5005E125D962D8840EEF6EAE -:1041800005D08BD80CD989D8010F09D9020EE15C72 -:1041900002E2E16AE552E16E65D060D8FD0EDB50C7 -:1041A00002E022D901D01BD9A7D853D806D9FB0EDB -:1041B000DBCFEEFFFC0EDBCFEDFF4BD8EE52FA0E5D -:1041C000DBCFEFFF400E45D8E850EF16880E41D800 -:1041D000E850EF12FD0EDB5002E006D901D0FFD807 -:1041E000EA22EF74DECF00F0DDCF01F000C0F3FF74 -:1041F00001C0F4FF020EE15C02E2E16AE552E16E09 -:1042000031D0F7D8010EF36EFC0EDB5004E0D890ED -:10421000F336E806FCE1F31C006EFD0EDBCFE9FF90 -:10422000FE0EDBCFEAFF0050EF161CD0FBD8EE529B -:10423000080EEF6EF7D8DDEF21F0E66EE6EF21F025 -:104240000BC1E9FF0CC1EAFF1200E66EE66A06EF59 -:1042500022F0DECFE9FFDDCFEAFF1200CAD8020E5E -:10426000E1261200E552E7CFD9FF1200D6D812EFAF -:1042700022F0FE0EEA6ADB34FE0BEA36E96E12002B -:1042800003C1E9FF04C1EAFF120024510F0BE96EDC -:10429000EA6AD890E936EA361200FD0EDB50E824CF -:1042A000026EFE0EDB50040DF35002241200000ECD -:1042B000E66EE66AE66A710EE66E0F0EFEEF21F01C -:1042C000000EE66EE66AE66EE66A1200E66E1DC154 -:1042D000E9FF1EC1EAFF1D2B000E1E23E552E75029 -:1042E000EF6EDF06010E120084D8E6521200280E8F -:1042F000EE6E040EED6E1200EA22EECFDEFFEDCF81 -:10430000DDFF1200012200C0DEFF01C0DDFF120050 -:10431000DF50006E016A080E005C000E01581200AA -:10432000EA6A280FE96E040EEA22EF50E66E1200E8 -:10433000F7220900F5CF11F10A00F5CF12F11200B2 -:10434000FE0EDBCFE6FFBBDEE552E5521200160E95 -:104350006F6E9F0E6B6E7B0E696E1200010EE66E25 -:10436000E66A000EE66EE66A12002251F66EF76A01 -:10437000D890F636F7361200D9CFE9FFDACFEAFF48 -:10438000EE50ED101200020E106F5ADFEE52EF6A7F -:1043900057DFC80EEF6E4ADFAADF12EF22F0040DDE -:1043A000F3CF00F0F4CF01F0000E0026040EAADFD8 -:1043B000840E4FDFE850EF121200020EE926000EC5 -:1043C000EA2212003CD88C0EEF6E1200680EE66EE8 -:1043D0000F0EE66E16DFE552E552E552120049DF98 -:1043E000070EE926010E120044DF0B0EE926010E2E -:1043F0001200D9CFE6FFE1CFD9FF1200E66EE9EC5B -:104400002FF0006E050EE15E00501200E0EC1BF094 -:10441000006E060EE15E00501200200EEE6E040EDD -:10442000ED6E120005C1E9FF06C1EAFF120028DFA8 -:10443000C4DF0DEF22F004DFC0DF77EF21F0F6DEFE -:0444400036EF21F042 -:0C444400489E08D0489E40AE05D03F6C5A -:10445000401EE86A4022488E40C03AF03FC039F022 -:104460004C6A4B6A8E0E3B6E3C6A2BEF24F0489EE2 -:104470000CD0489E40AE09D03D6C3E1E3F1E401EF3 -:10448000E86A3E223F224022488E40C03AF03FC0B8 -:1044900039F03EC04CF03DC04BF09E0E3B6E3C6A86 -:1044A0002BEF24F0467E486A67EC24F07FEC24F082 -:1044B00048B60FEF24F048A20AD048AA03D048BE5D -:1044C0000FEF24F048A41BEF24F018EF24F048AAC3 -:1044D00005D048AC1BEF24F018EF24F048A00AD018 -:1044E00048A808D048BE04D048A402D024EF24F045 -:1044F00028EF24F04B6A3C6A4650415C4A6E10E358 -:104500003EC04CF03FC039F040C03AF041C049F0E5 -:1045100043C03EF044C03FF045C040F0483A09D0A7 -:1045200043C04CF044C039F045C03AF046C049F0B1 -:104530004A6C489E48BC488E49C03BF048B057EF93 -:1045400024F01A0E4A6057EF24F03B6A416A48A4EF -:1045500008D03E6C3F1E401E411EE86A3F224022AA -:10456000412248AC08D04C6C391E3A1E3B1EE86A0A -:1045700039223A223B223D6A4A5207E04134403216 -:104580003F323E323D324A2EF9D73E504C263F5004 -:10459000392240503A2241503B223DC04BF0489EC8 -:1045A0003BAE0BD04B6C4C1E391E3A1E3B1EE86ACC -:1045B0004C2239223A223B22488E3BA006D0D8809A -:1045C0003A3239324C324B32492A49C03BF02BEF58 -:1045D00024F0486A67EC24F07FEC24F048B60FEF33 -:1045E00024F048A205D048BA0FEF24F016EF24F0CB -:1045F00048BA22EF24F048A005D048B80FEF24F0C5 -:1046000022EF24F048B816EF24F03C6A7F0E4124D4 -:104610003B6EE86A3C2246503B5EE86A3C5A1A0E02 -:10462000496E416A4B6A4C6A396A3A6A43503E5E47 -:1046300044503F5A4550405A000E415A09E74350F2 -:104640003E2644503F2245504022000E412201D0D8 -:104650004B8AD8903E363F3640364136D8904B365E -:104660004C3639363A36492EE1D740503F103E108D -:10467000D8A44B8A2BEF24F0486A67EC24F07FEC37 -:1046800024F048B60FEF24F048A205D048B80FEF49 -:1046900024F016EF24F048AA05D048B00FEF24F01C -:1046A00016EF24F048B002D048A802D022EF24F040 -:1046B0003C6A465041243B6EE86A3C227E0E3B5EDB -:1046C000E86A3C5A4B6A4C6A396A3A6A4550400279 -:1046D000F4CF3AF0F3CF39F044504002F3504C2677 -:1046E000F4503922000E3A2245503F02F3504C2636 -:1046F000F4503922000E3A2243504002F3504B2628 -:10470000F4504C22000E39223A2244503F02F3501A -:104710004B26F4504C22000E39223A2245503E02DC -:10472000F3504B26F4504C22000E39223A224350CB -:104730003F02F4504B26000E4C2239223A224450BC -:104740003E02F4504B26000E4C2239223A222BEF27 -:1047500024F0486A67EC24F048B6B3EF23F048A28F -:104760000ED048B405D07F0E406EFF0E3F6E1FD0B6 -:10477000800E406E3F6A1BD0406A3F6A18D048B036 -:10478000FBD78F0E4160EDD77E0E4164F5D78E0EBC -:10479000415C05E0D89040323F32412AF8D748A426 -:1047A00006D03F6C401EE86A402240AEE5D71200BA -:1047B000486A67EC24F048B6E2EF23F048A20FD035 -:1047C00048B407D07F0E406EFF0E3F6E3E6E3D6ECA -:1047D00025D0800E406E01D0406A000EF6D748B05A -:1047E000FBD73D6A9F0E4160EBD77E0E4164F4D744 -:1047F0009E0E415C07E0D89040323F323E323D325F -:10480000412AF6D748A40AD03D6C3E1E3F1E401EEA -:10481000E86A3E223F22402240AEDED712007F0EE1 -:10482000416EFF0E406E3F6E3E6E12007F0E48BE20 -:10483000FF0E416E02D07F0E416E800E406E3F6AC9 -:104840003E6AF3D748AE04D0800E416E406AF7D777 -:10485000416A406AF4D73A5039104C104B10F8E0D6 -:104860003CBEF0D73ABE0CD03B503C10EBE0D890A9 -:104870004B364C3639363A363B06D8A03C06F2D792 -:104880003C50D4E13B28D2E04BAE11D07F0E4B140C -:1048900002E14CA00CD04C2AE86A39223A2207E304 -:1048A000D8803A3239324C323B2A3B28BFE03B5069 -:1048B000C9E04CC03EF039C03FF03A34406E3B3066 -:1048C000416E4032419E48BE418E15EF24F0403685 -:1048D000413602E34884487E06E14880416A406AE6 -:1048E0003F6A3E6A1200412803E0D880403212003D -:1048F000D890403202E148821200488612004536C4 -:10490000463602E3488C487E06E14888466A456A96 -:10491000446A436A1200462803E0D88045321200F8 -:10492000D8904532EAE1488A1200A7EC24F048B654 -:10493000000C48B0000C48B4000C010CA7EC24F0AB -:1049400048B6000C48B0000C48A4000C010C486AA2 -:1049500067EC24F07FEC24F048B6120048AE08D093 -:1049600048A004D048A802D0488012004890120005 -:104970004650415C0BE14550405C08E144503F5CCF -:1049800005E143503E5C02E148801200D8A002D00D -:10499000488E10D0415046C041F0466E405045C050 -:1049A00040F0456E3F5044C03FF0446E3E5043C01F -:1049B0003EF0436E4650415C10E0FF0F09E0489026 -:1049C00048B403D048AE4884120048AE4894120060 -:1049D000462AD89045324432433243503E5E4450DA -:1049E0003F5A4550405A40BEEAD7D8903E363F36EF -:1049F0004036412EF8D7C8D7476A45AE05EF25F0B7 -:104A0000446C451EE86A4522471E40AE0DEF25F076 -:104A10003F6C401EE86A4022471E0FEC31F040BE5A -:104A20001DEF25F047AE000C3F6C401EE86A4022A7 -:104A30003B6C3C1EE86A3C22000C47BE14EF25F09C -:044A40004888FF0C97 -:0C4A4400D9CFE6FFDACFE6FFE1CFD9FFC3 -:104A5000E2CFDAFF1D0EE12402E3E168E652E16EE7 -:104A600067DAFA0EDBCFEEFFFB0EDBCFEEFFFC0EBC -:104A7000DBCFEEFFFD0EDBCFEEFFD950040FE66E6D -:104A8000000EDA20E66E0BDA51EC2DF0006E060E09 -:104A9000E15C02E2E16AE552E16E0050E76E0B0E66 -:104AA000E7CFDBFFDB50800807E10A0EDB6ADE6838 -:104AB000DE68DE687F0E13D00B0EDB0405E1DE6AD4 -:104AC000DE6ADE6ADD6AA6D10B0EDB50040809E15E -:104AD000DB0EDE6E0F0EDE6EC90EDE6E3F0EDD6E7D -:104AE00099D1DDD91EDA3DC0DEFF3EC0DEFF3FC0FA -:104AF000DEFF40C0DDFFDD52DD52DBD90DDA3F0EB7 -:104B000020DA23E13E6A3F6A800E406E3F0E416E1E -:104B1000DECF43F0DECF44F0DECF45F0DDCF46F010 -:104B2000DD52DD52E9EC22F03EC0DFFF010E3FC056 -:104B3000DBFF020E40C0DBFF030E41C0DBFF020EB5 -:104B4000F36E0C0EF3CFDBFF02D00C0EDB6AB1D993 -:104B5000A30E436E300E446E890E456E3E0EF1D9A3 -:104B60006CE1AF0E3E6E670E3F6E3B0E406E3F0E29 -:104B7000416EB2D93EC008F03FC009F040C00AF013 -:104B800041C00BF0C9D93F0E466E52EC22F03EC038 -:104B900004F03FC005F040C006F041C007F0C8D99E -:104BA000EECF0CF0EECF0DF0EECF0EF0EFCF0FF01A -:104BB0000CC043F00DC044F00EC045F00FC046F0ED -:104BC00053EC22F080D9D70E146EB30E156EDD0EA5 -:104BD000166E3F0E176EACD9EECF18F0EECF19F06F -:104BE000EECF1AF0EFCF1BF018C043F019C044F01D -:104BF0001AC045F01BC046F014C03EF015C03FF08F -:104C000016C040F0416E53EC22F03EC010F03FC0A1 -:104C100011F040C012F041C013F03EC043F03FC05D -:104C200044F040C045F041C046F035D9E9EC22F0EF -:104C30005FD9DD52DD520C0EDB2A31D972D93DC06D -:104C400000F03EC001F03FC002F040C003F064D964 -:104C5000390E466E3DC03EF07AD99EEC24F0010A32 -:104C600001E1B5D04ED938D90D0E3EC0DBFF0E0E96 -:104C70003FC0DBFF0F0E40C0DBFF100E41C0DBFF6B -:104C8000910E3E6E860E3F6E500E406EBD0E416E12 -:104C90000D0EDBCF43F00E0EDBCF44F00F0EDBCF5B -:104CA00045F0100E4AD90FD9F60E436E100E446E21 -:104CB000F10E456EBE0E466E53EC22F0110E3EC054 -:104CC000DBFF120E3FC0DBFF130E40C0DBFF140EF4 -:104CD00041C0DBFF0D0EDBCF00F00E0EDBCF01F08D -:104CE0000F0EDBCF02F0100EDBCF03F0D30E436EBE -:104CF000CC0E446EB40E456E3F0E466ECCD853ECCF -:104D000022F0150E3EC0DBFF160E3FC0DBFF170E74 -:104D100040C0DBFF180E41C0DBFF0D0EDBCF3EF0C5 -:104D20000E0EDBCF3FF00F0EDBCF40F0100EDBCFCF -:104D300041F0110EDBCF43F0120EDBCF44F0130E27 -:104D4000DBCF45F0140EF9D8150EDBCF43F0160E6D -:104D5000DBCF44F0170EDBCF45F0180EDBCF46F06B -:104D6000E9EC22F0B0D8190E3EC0DBFF1A0E3FC0AE -:104D7000DBFF1B0E40C0DBFF1C0E41C0DBFFC1D8B8 -:104D8000190EDBCF43F01A0EDBCF44F01B0EDBCF46 -:104D900045F01C0ED2D897D8CBD8EECF3EF0EECF50 -:104DA0003FF0EECF40F0EFCF41F000C043F001C044 -:104DB00044F002C045F003C046F053EC22F041C07D -:104DC000EDFF40C0EDFF3FC0EDFF3EC0EFFF0C0E1A -:104DD000DB0409E1920E006E0A0E016E060E3FD84A -:104DE00053EC22F016D00C0EDB50020806E1DB0E6D -:104DF000006E0F0E016EC90E09D00C0EDB500308B9 -:104E00000BE1920E006E0A0E016E860E28D852EC4F -:104E100022F06ED8DD52DD520A0EDB500AE049D88E -:104E20007BD8BF0E466E37D83CEC23F061D8DD52FC -:104E3000DD52DECF3DF0DECF3EF0DECF3FF0DDCF06 -:104E400040F0DD52DD521D0EE15C02E2E16AE55206 -:104E5000E16EE552E5CFDAFFE7CFD9FF1200026E2F -:104E60003F0E036E65D8EECF04F0EECF05F0EECF27 -:104E700006F0EFCF07F004C043F005C044F006C0D1 -:104E800045F007C046F000C03EF001C03FF002C050 -:104E900040F0416E120000C03EF0A7EF27F048D866 -:104EA000EECFE6FFEECFE6FFEECFE6FFEFCFE6FF79 -:104EB00012003ED8EECF00F0EECF01F0EECF02F0C0 -:104EC000EFCF03F012003EC000F03FC001F040C041 -:104ED00002F041C003F01200000EDFCF43F0010EDC -:104EE000DBCF44F0020EDBCF45F0030E9DEF27F041 -:104EF0003EC0DEFF3FC0DEFF40C0DEFF41C0DDFF41 -:104F00001200DECF3EF0DECF3FF0DECF40F0DDCF4F -:104F100041F0DD52DD521200436A446A800E456E54 -:104F2000120055EC30F0E552E552E552E552120020 -:104F3000D9CFE9FFDACFEAFF1200DBCF46F03CEF32 -:104F400023F0466EA8DF95EC24F0010A120001C0A0 -:0C4F50003FF002C040F003C041F012002E -:044F5C00D9CFE6FFC4 -:104F6000DACFE6FFE1CFD9FFE2CFDAFF240EE1246A -:104F700002E3E168E652E16ED950FA0FE96EFF0EE6 -:104F8000DA20EA6E020EEECFDBFF030EEECFDBFF80 -:104F9000040EEECFDBFF050EEECFDBFFE8D9F2D932 -:104FA00051EC2DF0006E060EE15C02E2E16AE55282 -:104FB000E16E0050E76E0D0EE7CFDBFFDB5080089F -:104FC00015E0A0D9436A446A456A466A00C03EF0CB -:104FD00001C03FF002C040F003C041F09EEC24F05D -:104FE000010A10E1210E0101466F476B020EDB68DA -:104FF000030EDB68040EDB687F0EF36E050EF3CF45 -:10500000DBFF66D10D0EDB50050B01E061D10A0E0E -:10501000DBCF00F00B0EDBCF01F0830E0026FF0E7E -:10502000012200C0DEFF01C0DDFFD950060F65D9A7 -:1050300076D9DF50010B0FE0DF06010E01E2DB063F -:10504000D950180F5AD9D890EF36010EEB36020E10 -:10505000EB36030EEB36D9CFE9FFDACFEAFF020ECB -:10506000446E456AEECF3FF0EDCF40F0FCEC24F00B -:105070003FC0EEFF40C0EDFF140EDB6A150EDB6A89 -:10508000160EDB6A170EDB6A1C0EDB6A1D0EDB6A6E -:105090001E0EDB6A010EF36E1F0EF3CFDBFF010E57 -:1050A000F36E0E0EF3CFDBFF0F0EDB6A0E0EDBCFBF -:1050B00000F00F0EDBCF01F0D890015004E61A0E7D -:1050C000005C000E015801E398D0180EDBCF00F011 -:1050D000190EDBCF01F01A0EDBCF02F01B0EDBCF77 -:1050E00003F0010E1F0B07E0D890003601360236A0 -:1050F0000336E806F9E1180E00C0DBFF190E01C007 -:10510000DBFF1A0E02C0DBFF1B0E03C0DBFF140E19 -:10511000DBCF08F0150EDBCF09F0160EDBCF0AF05F -:10512000170EDBCF0BF0010E1F0B07E0D8900836EF -:1051300009360A360B36E806F9E1D9501C0FDDD8DE -:105140000850EE24046E0950EE20056E0A50EE2041 -:10515000066E0B50EE20076ED950180FCED80450B3 -:10516000EE5C006E0550EE58016E0650EE58026E71 -:105170000750EE58036E200E00C0DBFF210E01C069 -:10518000DBFF220E02C0DBFF230E03C0DBFF200E7D -:10519000DBCF3EF0210EDBCF3FF0220EDBCF40F025 -:1051A000230EDBCF41F04134000E411809E6D880D0 -:1051B000000E3E54000E3F54000E4054000E415469 -:1051C00011E2D950200F99D8AAD8D8D81C0EDB509C -:1051D000EE121D0EDB50EE121E0EDB50EE121F0EF5 -:1051E000DB50EE12D9501C0F88D8AFD80E0EDB2A38 -:1051F0000F0E01E25BD7DB2A59D7C9D8100E00C0C9 -:10520000DBFF110E01C0DBFF180EDBCF3FF0190EE4 -:10521000DBCF40F0120E3FC0DBFF130E40C0DBFFC0 -:10522000ADD893D8D950100F68D8EE50ED1012E0D9 -:10523000D950120F62D8EE50ED1006E1A8D80050F8 -:1052400001100210031006E099D8EE2A000EEE229B -:10525000EE22EE220C0EDB6A91D8060EEECFDBFFBB -:10526000070EEECFDBFF080EEECFDBFF090EEECF11 -:10527000DBFF7E0EF36E0A0EF3CFDBFF0B0EDB6A55 -:10528000D950020FE66E000EDA20E66E70D8DFEC21 -:105290002DF0E552E552E552E552DECFE6FFDDCFD7 -:1052A000E6FF70D8B5EC2CF0006E060EE15C02E271 -:1052B000E16AE552E16E0050020E3DC0DBFF030ED5 -:1052C0003EC0DBFF040E3FC0DBFF050E40C0DBFF2E -:1052D00019D800C03DF001C03EF002C03FF003C04D -:1052E00040F0240EE15C02E2E16AE552E16EE55233 -:1052F000E5CFDAFFE7CFD9FF1200E96E000EDA2022 -:10530000EA6E1200020EDBCF00F0030EDBCF01F0DD -:10531000040EDBCF02F0050EDBCF03F01200180EF7 -:10532000EECFDBFF190EEECFDBFF1A0EEECFDBFF69 -:105330001B0EEECFDBFF1200EECFE6FFEECFE6FF57 -:10534000EECFE6FFEFCFE6FF1200D890030EEB3270 -:10535000020EEB32010EEB32EF321200EE5000166D -:10536000EE500116EE500216EE5003161200D95000 -:10537000060FE66E000EDA20E66E1200D950140F0A -:105380007DEF29F0D950020FB8DF9CEF29F0010E14 -:0E539000006E016A026A036AF1DFAEEF29F0D7 -:02539E00A5D98F -:1053A000E65201016A51040A45E0070A2DE0010AAC -:1053B00023E0030A0BE0010A01E094D0870EE66EB9 -:1053C000E0EC30F0E5520101010E32D05CEC31F03E -:1053D000000901E088D072D901AE02D002680368EA -:1053E0006BC1E9FFEA6AE9BEEA6845D9B00EE92671 -:1053F000000E56D9020E1CD08F0EE66EE0EC30F097 -:10540000E5520101030E14D05CEC31F000096BE1B0 -:1054100055D901AE02D0026803686BC1E9FFEA6AA0 -:10542000E9BEEA6828D9D80EE926000E39D9040E5B -:105430006A6F59D06B2B0A0EE76E6B19E8AE02D07B -:10544000E73402D0E7506B5D4BE36B6B6CC1E9FF57 -:10545000EA6AE9BEEA6865D9EA22EE6AEE6AEE6AAD -:10546000EE6A6CC1E9FFEA6AE9BEEA685FD9EA223E -:10547000EE6AEE6AEE6AEE6ADF6A31D9E8AE02D011 -:10548000E73402D0E750005C1EE2DFCFE9FFEA6AB2 -:10549000E9BEEA68F0D8B00EE926000EFCD8E9BEF5 -:1054A000EA683FD908D9DFCFE9FFEA6AE9BEEA68CE -:1054B000E2D8D80EE926000EEED8E9BEEA6836D961 -:1054C000FAD8DF2ADAD701016C2B0A0EE76E6C19C5 -:1054D000E8AE02D0E73402D0E7506C5D01E36C6BBC -:1054E0006A6B01D06A6BE55205D1FFD8050EE12643 -:1054F000010EDB6A020EDB6A030EDB6A040EDB6A56 -:10550000FE0EDB5011E1DF6AEAD8E8AE02D0E734E4 -:1055100002D0E750005C1CE2DFCFE9FFEA6AE9BE97 -:10552000EA68FFD8AFD8F0D7FE0EDB0411E1DF6ADE -:10553000D6D8E8AE02D0E73402D0E750005C08E2EB -:10554000DFCFE9FFEA6AE9BEEA68F0D89BD8F0D776 -:10555000010EDBCF18F0020EDBCF19F0030EDBCF0C -:105560001AF0040EDBCF1BF018C03DF019C03EF05E -:105570001AC03FF01BC040F039EC22F03EC014F0DE -:105580003FC015F040C016F041C017F0A0D83EC093 -:1055900010F03FC011F040C012F041C013F097D896 -:1055A0003EC00CF03FC00DF040C00EF041C00FF007 -:1055B000436A446AA00E456E400E466E3CEC23F0F2 -:1055C0003EC008F03FC009F040C00AF041C00BF0F7 -:1055D000436AC00E446E7F0E456E440E466EE9EC83 -:1055E00022F03EC004F03FC005F040C006F041C0CC -:1055F00007F0436A446A200E456E400E466E52EC38 -:1056000022F03EC000F03FC001F040C002F041C0B7 -:1056100003F0436A500E446E430E456E460E466ECE -:105620003CEC23F0D8EC23F0050EE15C02E2E16AE9 -:10563000E552E16E5FD059D8FE0EDB5002E1808466 -:1056400009D0FE0EDB0405E0FE0EDB50020802E18D -:10565000808481884FD049D8FE0EDB5002E18094CF -:1... [truncated message content] |