From fd6fe52dc7c2cd15fd35b989785ab03a9c334239 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 11 Jul 2024 11:32:28 +1000 Subject: [PATCH 001/232] mavlink: added MAV_CMD_SET_HAGL --- modules/mavlink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mavlink b/modules/mavlink index 2825252d6d13e..603e3c8e0c603 160000 --- a/modules/mavlink +++ b/modules/mavlink @@ -1 +1 @@ -Subproject commit 2825252d6d13eb347520f028b3c580ab29bd78e5 +Subproject commit 603e3c8e0c6031992da4206239681d13df5915be From d4f9843e55ef5c05236f584f86edd66dea916c40 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 11 Jul 2024 11:33:01 +1000 Subject: [PATCH 002/232] Plane: support MAV_CMD_SET_HAGL allow for external height above ground estimate --- ArduPlane/GCS_Mavlink.cpp | 6 +++ ArduPlane/Plane.h | 14 +++++++ ArduPlane/altitude.cpp | 72 ++++++++++++++++++++++++++++++++++++ ArduPlane/commands_logic.cpp | 15 ++------ 4 files changed, 96 insertions(+), 11 deletions(-) diff --git a/ArduPlane/GCS_Mavlink.cpp b/ArduPlane/GCS_Mavlink.cpp index 8ffa3f82972e8..855b9a62413a1 100644 --- a/ArduPlane/GCS_Mavlink.cpp +++ b/ArduPlane/GCS_Mavlink.cpp @@ -1083,6 +1083,12 @@ MAV_RESULT GCS_MAVLINK_Plane::handle_command_int_packet(const mavlink_command_in plane.set_mode(plane.mode_rtl, ModeReason::GCS_COMMAND); return MAV_RESULT_ACCEPTED; +#if AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + case MAV_CMD_SET_HAGL: + plane.handle_external_hagl(packet); + return MAV_RESULT_ACCEPTED; +#endif + default: return GCS_MAVLINK::handle_command_int_packet(packet, msg); } diff --git a/ArduPlane/Plane.h b/ArduPlane/Plane.h index 489276ded4592..b1af208397ff3 100644 --- a/ArduPlane/Plane.h +++ b/ArduPlane/Plane.h @@ -210,6 +210,20 @@ class Plane : public AP_Vehicle { AP_FixedWing::Rangefinder_State rangefinder_state; #endif +#if AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + struct { + // allow for external height above ground estimate + float hagl; + uint32_t last_update_ms; + uint32_t timeout_ms; + } external_hagl; + bool get_external_HAGL(float &height_agl); + void handle_external_hagl(const mavlink_command_int_t &packet); +#endif // AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + + float get_landing_height(bool &using_rangefinder); + + #if AP_RPM_ENABLED AP_RPM rpm_sensor; #endif diff --git a/ArduPlane/altitude.cpp b/ArduPlane/altitude.cpp index b20c1ffeb0336..8b7970e6315d1 100644 --- a/ArduPlane/altitude.cpp +++ b/ArduPlane/altitude.cpp @@ -115,6 +115,14 @@ int32_t Plane::get_RTL_altitude_cm() const */ float Plane::relative_ground_altitude(bool use_rangefinder_if_available, bool use_terrain_if_available) { +#if AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + float height_AGL; + // use external HAGL if available + if (get_external_HAGL(height_AGL)) { + return height_AGL; + } +#endif // AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + #if AP_RANGEFINDER_ENABLED if (use_rangefinder_if_available && rangefinder_state.in_range) { return rangefinder_state.height_estimate; @@ -810,3 +818,67 @@ bool Plane::terrain_enabled_in_mode(Mode::Number num) const return false; } #endif + +#if AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED +/* + handle a MAV_CMD_SET_HAGL request. The accuracy is ignored + */ +void Plane::handle_external_hagl(const mavlink_command_int_t &packet) +{ + auto &hagl = plane.external_hagl; + hagl.hagl = packet.param1; + hagl.last_update_ms = AP_HAL::millis(); + hagl.timeout_ms = uint32_t(packet.param3 * 1000); +} + +/* + get HAGL from external source if current + */ +bool Plane::get_external_HAGL(float &height_agl) +{ + auto &hagl = plane.external_hagl; + if (hagl.last_update_ms != 0) { + const uint32_t now_ms = AP_HAL::millis(); + if (now_ms - hagl.last_update_ms <= hagl.timeout_ms) { + height_agl = hagl.hagl; + return true; + } + hagl.last_update_ms = 0; + } + return false; +} +#endif // AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + +/* + get height for landing. Set using_rangefinder to true if a rangefinder + or external HAGL source is active + */ +float Plane::get_landing_height(bool &rangefinder_active) +{ + float height; + +#if AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED + // if external HAGL is active use that + if (get_external_HAGL(height)) { + // ensure no terrain correction is applied - that is the job + // of the external system if it is wanted + auto_state.terrain_correction = 0; + + // an external HAGL is considered to be a type of rangefinder + rangefinder_active = true; + return height; + } +#endif + + // get basic height above target + height = height_above_target(); + rangefinder_active = false; + +#if AP_RANGEFINDER_ENABLED + // possibly correct with rangefinder + height -= rangefinder_correction(); + rangefinder_active = g.rangefinder_landing && rangefinder_state.in_range; +#endif + + return height; +} diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index 47a588b861673..4766cea5c1fba 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -255,23 +255,16 @@ bool Plane::verify_command(const AP_Mission::Mission_Command& cmd) // Ret } else { // use rangefinder to correct if possible -#if AP_RANGEFINDER_ENABLED - float height = height_above_target() - rangefinder_correction(); -#else - float height = height_above_target(); -#endif + bool rangefinder_active = false; + float height = plane.get_landing_height(rangefinder_active); + // for flare calculations we don't want to use the terrain // correction as otherwise we will flare early on rising // ground height -= auto_state.terrain_correction; return landing.verify_land(prev_WP_loc, next_WP_loc, current_loc, height, auto_state.sink_rate, auto_state.wp_proportion, auto_state.last_flying_ms, arming.is_armed(), is_flying(), -#if AP_RANGEFINDER_ENABLED - g.rangefinder_landing && rangefinder_state.in_range -#else - false -#endif - ); + rangefinder_active); } case MAV_CMD_NAV_LOITER_UNLIM: From 42a17176767e6d89dabb332743da6c7cf0956d30 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 11 Jul 2024 17:36:12 +1000 Subject: [PATCH 003/232] AP_Scripting: added MAV_CMD_SET_HAGL example for external height source for fixed wing landing --- libraries/AP_Scripting/examples/land_hagl.lua | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 libraries/AP_Scripting/examples/land_hagl.lua diff --git a/libraries/AP_Scripting/examples/land_hagl.lua b/libraries/AP_Scripting/examples/land_hagl.lua new file mode 100644 index 0000000000000..3bdbc36329aea --- /dev/null +++ b/libraries/AP_Scripting/examples/land_hagl.lua @@ -0,0 +1,69 @@ +--[[ + demonstrate proving HAGL to plane code for landing +--]] + +local MAV_CMD_SET_HAGL = 43005 + +local ROTATION_PITCH_90 = 24 +local ROTATION_PITCH_270 = 25 + +-- for normal landing use PITCH_270, for inverted use PITCH_90 +local RANGEFINDER_ORIENT = ROTATION_PITCH_270 + +local MAV_SEVERITY = {EMERGENCY=0, ALERT=1, CRITICAL=2, ERROR=3, WARNING=4, NOTICE=5, INFO=6, DEBUG=7} + +local RNG_STATUS = { NotConnected = 0, NoData = 1, OutOfRangeLow = 2, OutOfRangeHigh = 3, Good = 4 } + + +--[[ + create a NaN value +--]] +local function NaN() + return 0/0 +end + +local last_active = false + +--[[ + send HAGL data +--]] +local function send_HAGL() + local status = rangefinder:status_orient(RANGEFINDER_ORIENT) + if status ~= RNG_STATUS.Good then + last_active = false + return + end + local rangefinder_dist = rangefinder:distance_cm_orient(RANGEFINDER_ORIENT)*0.01 + local correction = math.cos(ahrs:get_roll())*math.cos(ahrs:get_pitch()) + local rangefinder_corrected = rangefinder_dist * correction + if RANGEFINDER_ORIENT == ROTATION_PITCH_90 then + rangefinder_corrected = -rangefinder_corrected + end + if rangefinder_corrected < 0 then + last_active = false + return + end + + -- tell plane the height above ground level + local timeout_s = 0.2 + local accuracy = NaN() + gcs:run_command_int(MAV_CMD_SET_HAGL, { p1 = rangefinder_corrected, p2 = accuracy, p3=timeout_s }) + + if not last_active then + last_active = true + gcs:send_text(MAV_SEVERITY.INFO, string.format("HAGL Active %.1f", rangefinder_corrected)) + end + + -- log it + logger:write("HAGL", "RDist,HAGL", "ff", rangefinder_dist, rangefinder_corrected) +end + +local function update() + send_HAGL() + return update, 50 +end + +gcs:send_text(MAV_SEVERITY.INFO, "Loaded land_hagl") + +return update, 1000 + From 36d85c93497d23ac68b3a31fa2724ca57cb327de Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 16 Jul 2024 11:48:04 +1000 Subject: [PATCH 004/232] Tools: added build option for MAVLink HAGL command --- Tools/scripts/build_options.py | 1 + Tools/scripts/extract_features.py | 1 + 2 files changed, 2 insertions(+) diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index a5a112a220d8f..09d65181dd963 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -344,6 +344,7 @@ def __init__(self, Feature('MAVLink', 'MAV_MSG_SERIAL_CONTROL', 'AP_MAVLINK_MSG_SERIAL_CONTROL_ENABLED', 'Enable handling of Serial Control mavlink messages', 0, None), # noqa Feature('MAVLink', 'MAVLINK_MSG_MISSION_REQUEST', 'AP_MAVLINK_MSG_MISSION_REQUEST_ENABLED', 'Enable handling of MISSION_REQUEST mavlink messages', 0, None), # noqa Feature('MAVLink', 'AP_MAVLINK_FTP_ENABLED', 'AP_MAVLINK_FTP_ENABLED', 'Enable MAVLink FTP Protocol', 0, None), # noqa + Feature('MAVLink', 'MAV_CMD_SEY_HAGL', 'AP_MAVLINK_MAV_CMD_SEY_HAGL_ENABLED', 'Enable MAVLink HAGL command', 0, None), # noqa Feature('Developer', 'KILL_IMU', 'AP_INERTIALSENSOR_KILL_IMU_ENABLED', 'Allow IMUs to be disabled at runtime', 0, None), Feature('Developer', 'CRASHCATCHER', 'AP_CRASHDUMP_ENABLED', 'Enable CrashCatcher', 0, None), diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index 63a83863f05ec..6b3238f1f4e9d 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -238,6 +238,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('AP_MAVLINK_MSG_SERIAL_CONTROL_ENABLED', 'GCS_MAVLINK::handle_serial_control'), ('AP_MAVLINK_MSG_MISSION_REQUEST_ENABLED', 'GCS_MAVLINK::handle_mission_request\b'), ('AP_MAVLINK_FTP_ENABLED', 'GCS_MAVLINK::ftp_worker'), + ('AP_MAVLINK_MAV_CMD_SEY_HAGL_ENABLED', 'Plane::get_external_HAGL'), ('AP_DRONECAN_HIMARK_SERVO_SUPPORT', 'AP_DroneCAN::SRV_send_himark'), ('AP_DRONECAN_HOBBYWING_ESC_SUPPORT', 'AP_DroneCAN::hobbywing_ESC_update'), From 0179dc0a6850cf35765479c8846dbf00cf4e3708 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 16 Jul 2024 11:48:25 +1000 Subject: [PATCH 005/232] GCS_MAVLink: default MAVLink HAGL support off on low flash boards --- libraries/GCS_MAVLink/GCS_config.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/GCS_MAVLink/GCS_config.h b/libraries/GCS_MAVLink/GCS_config.h index e5d78fb8601e0..b26c727d35c4a 100644 --- a/libraries/GCS_MAVLink/GCS_config.h +++ b/libraries/GCS_MAVLink/GCS_config.h @@ -127,3 +127,7 @@ #ifndef AP_MAVLINK_MSG_HIGHRES_IMU_ENABLED #define AP_MAVLINK_MSG_HIGHRES_IMU_ENABLED (BOARD_FLASH_SIZE > 1024) && AP_INERTIALSENSOR_ENABLED #endif + +#ifndef AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED +#define AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED (BOARD_FLASH_SIZE > 1024) +#endif From 1de60a31b09725ad8958a4cdcc47488b8116f7ee Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 16 Jul 2024 17:13:21 +1000 Subject: [PATCH 006/232] autotest: rename do_reposition to send_do_reposition --- Tools/autotest/arducopter.py | 2 +- Tools/autotest/arduplane.py | 4 ++-- Tools/autotest/quadplane.py | 4 ++-- Tools/autotest/vehicle_test_suite.py | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 52018734633cb..21efa3ef5fac1 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -11517,7 +11517,7 @@ def Clamp(self): here = self.mav.location() loc = self.offset_location_ne(here, 10, 0) self.takeoff(5, mode='GUIDED') - self.do_reposition(loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL) + self.send_do_reposition(loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL) self.wait_location(loc, timeout=120) self.land_and_disarm() diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 30af3340ec7cf..0bec62b70ae7b 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -1895,7 +1895,7 @@ def terrain_wait_path(loc1, loc2, steps): self.install_message_hook_context(terrain_following_above_80m) self.change_mode("GUIDED") - self.do_reposition(guided_loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_TERRAIN_ALT) + self.send_do_reposition(guided_loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_TERRAIN_ALT) self.progress("Flying to guided location") self.wait_location( guided_loc, @@ -1918,7 +1918,7 @@ def terrain_wait_path(loc1, loc2, steps): # Fly back to guided location self.change_mode("GUIDED") - self.do_reposition(guided_loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_TERRAIN_ALT) + self.send_do_reposition(guided_loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_TERRAIN_ALT) self.progress("Flying to back to guided location") # Disable terrain following and re-load rally point with relative to terrain altitude diff --git a/Tools/autotest/quadplane.py b/Tools/autotest/quadplane.py index 98628a45d71b6..6b5730eba7fff 100644 --- a/Tools/autotest/quadplane.py +++ b/Tools/autotest/quadplane.py @@ -862,13 +862,13 @@ def QAssist(self): guided_loc = self.home_relative_loc_ne(0, 0) guided_loc.alt = 60 self.change_mode("GUIDED") - self.do_reposition(guided_loc) + self.send_do_reposition(guided_loc) self.wait_altitude(58, 62, relative=True) self.set_parameter("Q_ASSIST_ALT", 50) # Try and descent to 40m guided_loc.alt = 40 - self.do_reposition(guided_loc) + self.send_do_reposition(guided_loc) # Expect alt assist to kick in, eg "Alt assist 48.9m" self.wait_statustext(r"Alt assist \d*.\d*m", regex=True, timeout=100) diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index a121cd36dd020..5e78ab39d8f0f 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -7884,9 +7884,9 @@ def assert_rc_channel_value(self, channel, value): raise NotAchievedException("Expected %s to be %u got %u" % (channel, value, m_value)) - def do_reposition(self, - loc, - frame=mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT): + def send_do_reposition(self, + loc, + frame=mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT): '''send a DO_REPOSITION command for a location''' self.run_cmd_int( mavutil.mavlink.MAV_CMD_DO_REPOSITION, From 8dcd3986c70ded0f715a66e1c0017e49be1c9169 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 16 Jul 2024 17:31:13 +1000 Subject: [PATCH 007/232] autotest: correct uploading of exclusion circles --- Tools/autotest/arduplane.py | 45 ++- Tools/autotest/rover.py | 394 +++++++++++++-------------- Tools/autotest/vehicle_test_suite.py | 23 +- 3 files changed, 215 insertions(+), 247 deletions(-) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 0bec62b70ae7b..e57294be1121f 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -1608,18 +1608,14 @@ def FenceStatic(self): # Test arming outside inclusion zone self.progress("Test arming while vehicle outside of inclusion zone") self.set_parameter("FENCE_TYPE", 4) # Enables polygon fence types - locs = [ - mavutil.location(1.000, 1.000, 0, 0), - mavutil.location(1.000, 1.001, 0, 0), - mavutil.location(1.001, 1.001, 0, 0), - mavutil.location(1.001, 1.000, 0, 0) - ] - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - locs + self.upload_fences_from_locations([( + mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + mavutil.location(1.000, 1.000, 0, 0), + mavutil.location(1.000, 1.001, 0, 0), + mavutil.location(1.001, 1.001, 0, 0), + mavutil.location(1.001, 1.000, 0, 0) ] - ) + )]) self.delay_sim_time(10) # let fence check run so it loads-from-eeprom self.do_fence_enable() self.assert_fence_enabled() @@ -1637,12 +1633,9 @@ def FenceStatic(self): mavutil.location(home_loc.lat + 0.001, home_loc.lng + 0.001, 0, 0), mavutil.location(home_loc.lat + 0.001, home_loc.lng - 0.001, 0, 0), ] - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - locs - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, locs), + ]) self.delay_sim_time(10) # let fence check run so it loads-from-eeprom self.do_fence_enable() self.assert_fence_enabled() @@ -3720,12 +3713,9 @@ def FenceBreachedChangeMode(self): mavutil.location(home_loc.lat + 0.001, home_loc.lng + 0.001, 0, 0), mavutil.location(home_loc.lat + 0.001, home_loc.lng - 0.001, 0, 0), ] - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - locs - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, locs), + ]) self.delay_sim_time(1) self.wait_ready_to_arm() self.takeoff(alt=50) @@ -3783,12 +3773,9 @@ def FenceNoFenceReturnPoint(self): mavutil.location(home_loc.lat + 0.001, home_loc.lng + 0.003, 0, 0), mavutil.location(home_loc.lat + 0.001, home_loc.lng - 0.001, 0, 0), ] - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - locs - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, locs), + ]) self.delay_sim_time(1) self.wait_ready_to_arm() self.takeoff(alt=50) diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 78de37e40767d..8e62d685be7a7 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -4195,22 +4195,22 @@ def test_poly_fence_noarms_exclusion_polyfence(self, target_system=1, target_com here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # over the top of the vehicle - self.offset_location_ne(here, -50, -50), # bl - self.offset_location_ne(here, -50, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, -50), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, -50, -50), # bl + self.offset_location_ne(here, -50, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, -50), # tl, + ]), + ]) self.delay_sim_time(5) # ArduPilot only checks for breaches @1Hz self.drain_mav() self.assert_fence_breached() @@ -4231,22 +4231,22 @@ def test_poly_fence_noarms_inclusion_polyfence(self, target_system=1, target_com here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # over the top of the vehicle - self.offset_location_ne(here, -50, -50), # bl - self.offset_location_ne(here, -50, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, -50), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, -50, -50), # bl + self.offset_location_ne(here, -50, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, -50), # tl, + ]), + ]) self.delay_sim_time(5) # ArduPilot only checks for breaches @1Hz self.drain_mav() self.assert_fence_breached() @@ -4605,22 +4605,22 @@ def test_poly_fence_compatability(self, target_system=1, target_component=1): def test_poly_fence_reboot_survivability(self): here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # over the top of the vehicle - self.offset_location_ne(here, -50, -50), # bl - self.offset_location_ne(here, -50, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, -50), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, -50, -50), # bl + self.offset_location_ne(here, -50, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, -50), # tl, + ]), + ]) self.reboot_sitl() downloaded_items = self.download_using_mission_protocol(mavutil.mavlink.MAV_MISSION_TYPE_FENCE) downloaded_len = len(downloaded_items) @@ -4663,18 +4663,16 @@ def PolyFence(self): def test_poly_fence_inclusion_overlapping_inclusion_circles(self, here, target_system=1, target_component=1): self.start_subtest("Overlapping circular inclusion") - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION, - [ - { - "radius": 30, - "loc": self.offset_location_ne(here, -20, 0), - }, - { - "radius": 30, - "loc": self.offset_location_ne(here, 20, 0), - }, - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION, { + "radius": 30, + "loc": self.offset_location_ne(here, -20, 0), + }), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION, { + "radius": 30, + "loc": self.offset_location_ne(here, 20, 0), + }), + ]) if self.mavproxy is not None: # handy for getting pretty pictures self.mavproxy.send("fence list\n") @@ -4702,20 +4700,18 @@ def test_poly_fence_inclusion(self, here, target_system=1, target_component=1): target_system=target_system, target_component=target_component) - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ - self.offset_location_ne(here, -40, -20), # tl - self.offset_location_ne(here, 50, -20), # tr - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, -40, 20), # bl, - ], - { - "radius": 30, - "loc": self.offset_location_ne(here, -20, 0), - }, - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + self.offset_location_ne(here, -40, -20), # tl + self.offset_location_ne(here, 50, -20), # tr + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, -40, 20), # bl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION, { + "radius": 30, + "loc": self.offset_location_ne(here, -20, 0), + }), + ]) self.delay_sim_time(5) if self.mavproxy is not None: @@ -4735,22 +4731,20 @@ def test_poly_fence_inclusion(self, here, target_system=1, target_component=1): target_system=target_system, target_component=target_component) - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ - self.offset_location_ne(here, -20, -25), # tl - self.offset_location_ne(here, 50, -25), # tr - self.offset_location_ne(here, 50, 15), # br - self.offset_location_ne(here, -20, 15), # bl, - ], - [ - self.offset_location_ne(here, 20, -20), # tl - self.offset_location_ne(here, -50, -20), # tr - self.offset_location_ne(here, -50, 20), # br - self.offset_location_ne(here, 20, 20), # bl, - ], - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + self.offset_location_ne(here, -20, -25), # tl + self.offset_location_ne(here, 50, -25), # tr + self.offset_location_ne(here, 50, 15), # br + self.offset_location_ne(here, -20, 15), # bl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + self.offset_location_ne(here, 20, -20), # tl + self.offset_location_ne(here, -50, -20), # tr + self.offset_location_ne(here, -50, 20), # br + self.offset_location_ne(here, 20, 20), # bl, + ]), + ]) self.delay_sim_time(5) if self.mavproxy is not None: @@ -4772,24 +4766,26 @@ def test_poly_fence_inclusion(self, here, target_system=1, target_component=1): def test_poly_fence_exclusion(self, here, target_system=1, target_component=1): - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # west - self.offset_location_ne(here, -50, -20), # tl - self.offset_location_ne(here, 50, -20), # tr - self.offset_location_ne(here, 50, -40), # br - self.offset_location_ne(here, -50, -40), # bl, - ], { - "radius": 30, - "loc": self.offset_location_ne(here, -60, 0), - }, - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # west + self.offset_location_ne(here, -50, -20), # tl + self.offset_location_ne(here, 50, -20), # tr + self.offset_location_ne(here, 50, -40), # br + self.offset_location_ne(here, -50, -40), # bl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION, { + "radius": 30, + "loc": self.offset_location_ne(here, -60, 0), + }), + ]) self.delay_sim_time(5) if self.mavproxy is not None: self.mavproxy.send("fence list\n") @@ -5009,22 +5005,22 @@ def WheelEncoders(self): def test_poly_fence_object_avoidance_guided_two_squares(self, target_system=1, target_component=1): self.start_subtest("Ensure we can steer around obstacles in guided mode") here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 10), # tl - self.offset_location_ne(here, 50, 30), # tr - self.offset_location_ne(here, -50, 40), # br, - ], - [ # further east (and south - self.offset_location_ne(here, -60, 60), # bl - self.offset_location_ne(here, 40, 70), # tl - self.offset_location_ne(here, 40, 90), # tr - self.offset_location_ne(here, -60, 80), # br, - ], - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 10), # tl + self.offset_location_ne(here, 50, 30), # tr + self.offset_location_ne(here, -50, 40), # br, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # further east (and south + self.offset_location_ne(here, -60, 60), # bl + self.offset_location_ne(here, 40, 70), # tl + self.offset_location_ne(here, 40, 90), # tr + self.offset_location_ne(here, -60, 80), # br, + ]), + ]) if self.mavproxy is not None: self.mavproxy.send("fence list\n") self.context_push() @@ -5061,24 +5057,26 @@ def test_poly_fence_object_avoidance_guided_two_squares(self, target_system=1, t def test_poly_fence_avoidance_dont_breach_exclusion(self, target_system=1, target_component=1): self.start_subtest("Ensure we stop before breaching an exclusion fence") here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # west - self.offset_location_ne(here, -50, -20), # tl - self.offset_location_ne(here, 50, -20), # tr - self.offset_location_ne(here, 50, -40), # br - self.offset_location_ne(here, -50, -40), # bl, - ], { - "radius": 30, - "loc": self.offset_location_ne(here, -60, 0), - }, - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # west + self.offset_location_ne(here, -50, -20), # tl + self.offset_location_ne(here, 50, -20), # tr + self.offset_location_ne(here, 50, -40), # br + self.offset_location_ne(here, -50, -40), # bl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION, { + "radius": 30, + "loc": self.offset_location_ne(here, -60, 0), + }), + ]) if self.mavproxy is not None: self.mavproxy.send("fence list\n") self.set_parameters({ @@ -6631,22 +6629,22 @@ def MAV_CMD_DO_FENCE_ENABLE(self): '''ensure MAV_CMD_DO_FENCE_ENABLE mavlink command works''' here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, - [ - [ # east - self.offset_location_ne(here, -50, 20), # bl - self.offset_location_ne(here, 50, 20), # br - self.offset_location_ne(here, 50, 40), # tr - self.offset_location_ne(here, -50, 40), # tl, - ], [ # over the top of the vehicle - self.offset_location_ne(here, -50, -50), # bl - self.offset_location_ne(here, -50, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, -50), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # east + self.offset_location_ne(here, -50, 20), # bl + self.offset_location_ne(here, 50, 20), # br + self.offset_location_ne(here, 50, 40), # tr + self.offset_location_ne(here, -50, 40), # tl, + ]), + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, -50, -50), # bl + self.offset_location_ne(here, -50, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, -50), # tl, + ]), + ]) # enable: self.run_cmd(mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, p1=1) @@ -6847,17 +6845,15 @@ def MissionPolyEnabledPreArm(self): self.progress("Ensure we can arm when we have an inclusion fence we are inside of") here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ # over the top of the vehicle - self.offset_location_ne(here, -50, -50), # bl - self.offset_location_ne(here, -50, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, -50), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, -50, -50), # bl + self.offset_location_ne(here, -50, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, -50), # tl, + ]), + ]) self.delay_sim_time(5) self.wait_ready_to_arm() @@ -6869,17 +6865,15 @@ def MissionPolyEnabledPreArm(self): self.progress("Now create a fence we are in breach of") here = self.mav.location() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ # over the top of the vehicle - self.offset_location_ne(here, 20, 20), # bl - self.offset_location_ne(here, 20, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, 20), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, 20, 20), # bl + self.offset_location_ne(here, 20, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, 20), # tl, + ]), + ]) self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False) self.reboot_sitl() @@ -6890,34 +6884,30 @@ def MissionPolyEnabledPreArm(self): self.clear_fence() self.wait_ready_to_arm() - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ # over the top of the vehicle - self.offset_location_ne(here, 20, 20), # bl - self.offset_location_ne(here, 20, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, 20), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, 20, 20), # bl + self.offset_location_ne(here, 20, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, 20), # tl, + ]), + ]) self.reboot_sitl() self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) self.clear_fence() self.wait_ready_to_arm() self.progress("Ensure we can arm after clearing polygon fence type enabled") - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - [ # over the top of the vehicle - self.offset_location_ne(here, 20, 20), # bl - self.offset_location_ne(here, 20, 50), # br - self.offset_location_ne(here, 50, 50), # tr - self.offset_location_ne(here, 50, 20), # tl, - ] - ] - ) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + # over the top of the vehicle + self.offset_location_ne(here, 20, 20), # bl + self.offset_location_ne(here, 20, 50), # br + self.offset_location_ne(here, 50, 50), # tr + self.offset_location_ne(here, 50, 20), # tl, + ]), + ]) self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) self.set_parameter('FENCE_TYPE', 2) self.wait_ready_to_arm() diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index 5e78ab39d8f0f..ddb506b58518a 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -2106,11 +2106,9 @@ def load_fence(self, filename): locs2.append(copy.copy(locs2[1])) return self.roundtrip_fence_using_fencepoint_protocol(locs2) - self.upload_fences_from_locations( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, - [ - locs - ]) + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, locs), + ]) def send_reboot_command(self): self.mav.mav.command_long_send(self.sysid_thismav(), @@ -11884,26 +11882,19 @@ def initial_mode_switch_mode(self): '''return mode vehicle should start in with default RC inputs set''' return None - def upload_fences_from_locations(self, - vertex_type, - list_of_list_of_locs, - target_system=1, - target_component=1): + def upload_fences_from_locations(self, fences, target_system=1, target_component=1): seq = 0 items = [] - for locs in list_of_list_of_locs: + + for (vertex_type, locs) in fences: if isinstance(locs, dict): # circular fence - if vertex_type == mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION: - v = mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION - else: - v = mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION item = self.mav.mav.mission_item_int_encode( target_system, target_component, seq, # seq mavutil.mavlink.MAV_FRAME_GLOBAL, - v, + vertex_type, 0, # current 0, # autocontinue locs["radius"], # p1 From a3aa278589d7ac6d93018d96afe8e35ba5e9003b Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 13 Jul 2024 12:00:11 -0500 Subject: [PATCH 008/232] AP_HAL_SITL: improve periph simulation efficiency Removes busywait for simulation state packet, dramatically reducing CPU usage. The dominant wait time in AP_Periph is 1024 microseconds as this is the default value of HAL_PERIPH_LOOP_DELAY_US, so a 1ms wait is unlikely to be a problem. --- libraries/AP_HAL_SITL/SITL_Periph_State.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/AP_HAL_SITL/SITL_Periph_State.cpp b/libraries/AP_HAL_SITL/SITL_Periph_State.cpp index b455fcafb749c..c90b40218b3e3 100644 --- a/libraries/AP_HAL_SITL/SITL_Periph_State.cpp +++ b/libraries/AP_HAL_SITL/SITL_Periph_State.cpp @@ -124,10 +124,9 @@ void SITL_State::wait_clock(uint64_t wait_time_usec) { while (AP_HAL::micros64() < wait_time_usec) { struct sitl_input input {}; - sitl_model->update(input); + sitl_model->update(input); // delays up to 1 millisecond sim_update(); update_voltage_current(input, 0); - usleep(100); } } @@ -195,7 +194,7 @@ void SimMCast::multicast_read(void) printf("Waiting for multicast state\n"); } struct SITL::sitl_fdm state; - while (sock.recv((void*)&state, sizeof(state), 0) != sizeof(state)) { + while (sock.recv((void*)&state, sizeof(state), 1) != sizeof(state)) { // nop } if (_sitl->state.timestamp_us == 0) { From 63ab7bec69350fad9e6a674a4bdd604fac48405a Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 13 Jul 2024 11:49:47 -0500 Subject: [PATCH 009/232] AP_HAL_ESP32: use correct unformatted system ID length Avoids stuffing uninitialized data into the ID. --- libraries/AP_HAL_ESP32/Util.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/AP_HAL_ESP32/Util.cpp b/libraries/AP_HAL_ESP32/Util.cpp index 2eab971532339..7a3cf34587381 100644 --- a/libraries/AP_HAL_ESP32/Util.cpp +++ b/libraries/AP_HAL_ESP32/Util.cpp @@ -243,15 +243,13 @@ bool Util::get_system_id(char buf[50]) bool Util::get_system_id_unformatted(uint8_t buf[], uint8_t &len) { - len = MIN(12, len); - - uint8_t base_mac_addr[6] = {0}; esp_err_t ret = esp_efuse_mac_get_custom(base_mac_addr); if (ret != ESP_OK) { ret = esp_efuse_mac_get_default(base_mac_addr); } + len = MIN(len, ARRAY_SIZE(base_mac_addr)); memcpy(buf, (const void *)base_mac_addr, len); return true; From c137586374e6b974761412ae7a8c4dc8997c4c6f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 17 Jul 2024 08:42:53 +1000 Subject: [PATCH 010/232] Tools: fixed typo in HAGL feature thanks Peter :-) --- Tools/scripts/build_options.py | 2 +- Tools/scripts/extract_features.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index 09d65181dd963..1246995e8a959 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -344,7 +344,7 @@ def __init__(self, Feature('MAVLink', 'MAV_MSG_SERIAL_CONTROL', 'AP_MAVLINK_MSG_SERIAL_CONTROL_ENABLED', 'Enable handling of Serial Control mavlink messages', 0, None), # noqa Feature('MAVLink', 'MAVLINK_MSG_MISSION_REQUEST', 'AP_MAVLINK_MSG_MISSION_REQUEST_ENABLED', 'Enable handling of MISSION_REQUEST mavlink messages', 0, None), # noqa Feature('MAVLink', 'AP_MAVLINK_FTP_ENABLED', 'AP_MAVLINK_FTP_ENABLED', 'Enable MAVLink FTP Protocol', 0, None), # noqa - Feature('MAVLink', 'MAV_CMD_SEY_HAGL', 'AP_MAVLINK_MAV_CMD_SEY_HAGL_ENABLED', 'Enable MAVLink HAGL command', 0, None), # noqa + Feature('MAVLink', 'MAV_CMD_SET_HAGL', 'AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED', 'Enable MAVLink HAGL command', 0, None), # noqa Feature('Developer', 'KILL_IMU', 'AP_INERTIALSENSOR_KILL_IMU_ENABLED', 'Allow IMUs to be disabled at runtime', 0, None), Feature('Developer', 'CRASHCATCHER', 'AP_CRASHDUMP_ENABLED', 'Enable CrashCatcher', 0, None), diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index 6b3238f1f4e9d..bf21800c19e74 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -238,7 +238,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('AP_MAVLINK_MSG_SERIAL_CONTROL_ENABLED', 'GCS_MAVLINK::handle_serial_control'), ('AP_MAVLINK_MSG_MISSION_REQUEST_ENABLED', 'GCS_MAVLINK::handle_mission_request\b'), ('AP_MAVLINK_FTP_ENABLED', 'GCS_MAVLINK::ftp_worker'), - ('AP_MAVLINK_MAV_CMD_SEY_HAGL_ENABLED', 'Plane::get_external_HAGL'), + ('AP_MAVLINK_MAV_CMD_SET_HAGL_ENABLED', 'Plane::get_external_HAGL'), ('AP_DRONECAN_HIMARK_SERVO_SUPPORT', 'AP_DroneCAN::SRV_send_himark'), ('AP_DRONECAN_HOBBYWING_ESC_SUPPORT', 'AP_DroneCAN::hobbywing_ESC_update'), From 5190aee9aed19d6c92ee99fec5459ae18b6c6b50 Mon Sep 17 00:00:00 2001 From: Oleksiy Protas Date: Tue, 16 Jul 2024 18:47:05 +0300 Subject: [PATCH 011/232] AP_Camera: proper string formatting Incoming strings are 32 bytes and may not be null-terminated if the full width is used --- libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp b/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp index 7a1caa214fbb9..25027cf3b89d8 100644 --- a/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp +++ b/libraries/AP_Camera/AP_Camera_MAVLinkCamV2.cpp @@ -141,7 +141,7 @@ void AP_Camera_MAVLinkCamV2::handle_message(mavlink_channel_t chan, const mavlin const uint8_t fw_ver_build = (_cam_info.firmware_version & 0xFF000000) >> 24; // display camera info to user - gcs().send_text(MAV_SEVERITY_INFO, "Camera: %s.32 %s.32 fw:%u.%u.%u.%u", + gcs().send_text(MAV_SEVERITY_INFO, "Camera: %.32s %.32s fw:%u.%u.%u.%u", _cam_info.vendor_name, _cam_info.model_name, (unsigned)fw_ver_major, From 338e3474276ff1fc7fe6f5a3d61725b44b2b4147 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 10:11:27 +1000 Subject: [PATCH 012/232] AP_Notify: remove unused BUZZER_ON/OFF defines replaced by HAL_BUZZER_ON --- libraries/AP_Notify/AP_Notify.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/AP_Notify/AP_Notify.h b/libraries/AP_Notify/AP_Notify.h index f9f5e1fd0457f..5467dfc0df3de 100644 --- a/libraries/AP_Notify/AP_Notify.h +++ b/libraries/AP_Notify/AP_Notify.h @@ -25,8 +25,6 @@ #define RGB_LED_LOW 1 #define RGB_LED_MEDIUM 2 #define RGB_LED_HIGH 3 -#define BUZZER_ON 1 -#define BUZZER_OFF 0 #define NOTIFY_TEXT_BUFFER_SIZE 51 From 7a15b4aae570af118f9ea62bc024156f364927bd Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 11 Jul 2024 22:25:58 +1000 Subject: [PATCH 013/232] AP_Notify: add support for blinking 1 LED for notify --- libraries/AP_Notify/AP_Notify.cpp | 4 ++ libraries/AP_Notify/AP_Notify_config.h | 4 ++ libraries/AP_Notify/GPIO_LED_1.cpp | 77 ++++++++++++++++++++++++++ libraries/AP_Notify/GPIO_LED_1.h | 48 ++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 libraries/AP_Notify/GPIO_LED_1.cpp create mode 100644 libraries/AP_Notify/GPIO_LED_1.h diff --git a/libraries/AP_Notify/AP_Notify.cpp b/libraries/AP_Notify/AP_Notify.cpp index da5ebde379620..abfb047711baa 100644 --- a/libraries/AP_Notify/AP_Notify.cpp +++ b/libraries/AP_Notify/AP_Notify.cpp @@ -20,6 +20,7 @@ #include "Buzzer.h" #include "Display.h" #include "ExternalLED.h" +#include "GPIO_LED_1.h" #include "IS31FL3195.h" #include "PCA9685LED_I2C.h" #include "NavigatorLED.h" @@ -311,6 +312,9 @@ void AP_Notify::add_backends(void) ADD_BACKEND(NEW_NOTHROW AP_BoardLED()); #elif AP_NOTIFY_GPIO_LED_2_ENABLED ADD_BACKEND(NEW_NOTHROW AP_BoardLED2()); +#endif +#if AP_NOTIFY_GPIO_LED_1_ENABLED + ADD_BACKEND(NEW_NOTHROW GPIO_LED_1()); #endif break; #if AP_NOTIFY_TOSHIBALED_ENABLED diff --git a/libraries/AP_Notify/AP_Notify_config.h b/libraries/AP_Notify/AP_Notify_config.h index 23b7c6c8b1662..0bc83f19051ea 100644 --- a/libraries/AP_Notify/AP_Notify_config.h +++ b/libraries/AP_Notify/AP_Notify_config.h @@ -55,6 +55,10 @@ #define AP_NOTIFY_GPIO_LED_2_ENABLED 0 #endif +#ifndef AP_NOTIFY_GPIO_LED_1_ENABLED +#define AP_NOTIFY_GPIO_LED_1_ENABLED 0 +#endif + #ifndef AP_NOTIFY_GPIO_LED_RGB_ENABLED #define AP_NOTIFY_GPIO_LED_RGB_ENABLED 0 #endif diff --git a/libraries/AP_Notify/GPIO_LED_1.cpp b/libraries/AP_Notify/GPIO_LED_1.cpp new file mode 100644 index 0000000000000..950a1ce49cad2 --- /dev/null +++ b/libraries/AP_Notify/GPIO_LED_1.cpp @@ -0,0 +1,77 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +#include "AP_Notify_config.h" + +#if AP_NOTIFY_GPIO_LED_1_ENABLED + +#include "GPIO_LED_1.h" + +#include +#include "AP_Notify.h" + +#ifndef AP_NOTIFY_GPIO_LED_A_PIN +#error "define AP_NOTIFY_GPIO_LED_A_PIN" +#endif + +extern const AP_HAL::HAL& hal; + +bool GPIO_LED_1::init(void) +{ + // when HAL_GPIO_LED_ON is 0 then we must not use pinMode() + // as it could remove the OPENDRAIN attribute on the pin +#if HAL_GPIO_LED_ON != 0 + hal.gpio->pinMode(AP_NOTIFY_GPIO_LED_A_PIN, HAL_GPIO_OUTPUT); +#endif + hal.gpio->write(AP_NOTIFY_GPIO_LED_A_PIN, HAL_GPIO_LED_OFF); + return true; +} + +/* + main update function called at 50Hz + */ +void GPIO_LED_1::update(void) +{ + uint32_t new_pattern; + if (AP_Notify::flags.initialising) { + new_pattern = INITIALIZING; + } else if (AP_Notify::flags.armed) { + new_pattern = ARMED; + } else if (AP_Notify::flags.pre_arm_check) { + new_pattern = READY_TO_ARM; + } else { + new_pattern = NOT_READY_TO_ARM; + } + if (new_pattern != current_pattern) { + next_bit = 0; + current_pattern = new_pattern; + last_timestep_ms = 0; + } + + const uint32_t now_ms = AP_HAL::millis(); + if (now_ms - last_timestep_ms < 100) { + return; + } + last_timestep_ms = now_ms; + + const auto new_state = (current_pattern & (1U<write(AP_NOTIFY_GPIO_LED_A_PIN, new_state); + next_bit++; + if (next_bit > 31) { + next_bit = 0; + } +} + +#endif // AP_NOTIFY_GPIO_LED_1_ENABLED diff --git a/libraries/AP_Notify/GPIO_LED_1.h b/libraries/AP_Notify/GPIO_LED_1.h new file mode 100644 index 0000000000000..129e6cac52018 --- /dev/null +++ b/libraries/AP_Notify/GPIO_LED_1.h @@ -0,0 +1,48 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +#pragma once + +#include "AP_Notify_config.h" + +#if AP_NOTIFY_GPIO_LED_1_ENABLED + +#include +#include + +#include "NotifyDevice.h" + +class GPIO_LED_1 : public NotifyDevice +{ +public: + // initialise the LED driver + bool init(void) override; + + // should be called at 50Hz + void update(void) override; + +private: + + // left-to-right, each bit represents 100ms + static const uint32_t INITIALIZING = 0b10101010101010101010101010101010UL; + static const uint32_t NOT_READY_TO_ARM = 0b11111111000000001111111100000000UL; + static const uint32_t READY_TO_ARM = 0b11111111111111100000000000000000UL; + static const uint32_t ARMED = 0b11111111111111111111111111111111UL; + + uint32_t current_pattern = INITIALIZING; + uint32_t last_timestep_ms; + uint8_t next_bit; +}; + +#endif // AP_NOTIFY_GPIO_LED_1_ENABLED From 647048f7031b63788e9e04e9ae5ac29242befc53 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 11 Jul 2024 22:25:32 +1000 Subject: [PATCH 014/232] SITL: add simulator for 1-LED boards --- libraries/SITL/SIM_Aircraft.cpp | 3 ++ libraries/SITL/SIM_Aircraft.h | 4 +++ libraries/SITL/SIM_GPIO_LED_1.cpp | 31 +++++++++++++++++++++ libraries/SITL/SIM_GPIO_LED_1.h | 46 +++++++++++++++++++++++++++++++ libraries/SITL/SIM_LED_n.cpp | 1 + libraries/SITL/SIM_config.h | 6 +++- 6 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 libraries/SITL/SIM_GPIO_LED_1.cpp create mode 100644 libraries/SITL/SIM_GPIO_LED_1.h diff --git a/libraries/SITL/SIM_Aircraft.cpp b/libraries/SITL/SIM_Aircraft.cpp index 366ec909304ac..a6baf91eb9da2 100644 --- a/libraries/SITL/SIM_Aircraft.cpp +++ b/libraries/SITL/SIM_Aircraft.cpp @@ -1094,6 +1094,9 @@ void Aircraft::update_external_payload(const struct sitl_input &input) } #endif +#if AP_SIM_GPIO_LED_1_ENABLED + sim_led1.update(*this); +#endif #if AP_SIM_GPIO_LED_2_ENABLED sim_led2.update(*this); #endif diff --git a/libraries/SITL/SIM_Aircraft.h b/libraries/SITL/SIM_Aircraft.h index 4af43bb80cd09..90f07089ea60b 100644 --- a/libraries/SITL/SIM_Aircraft.h +++ b/libraries/SITL/SIM_Aircraft.h @@ -38,6 +38,7 @@ #include #include "SIM_JSON_Master.h" #include "ServoModel.h" +#include "SIM_GPIO_LED_1.h" #include "SIM_GPIO_LED_2.h" #include "SIM_GPIO_LED_3.h" #include "SIM_GPIO_LED_RGB.h" @@ -377,6 +378,9 @@ class Aircraft { #endif +#if AP_SIM_GPIO_LED_1_ENABLED + GPIO_LED_1 sim_led1{8}; // pin to match sitl.h +#endif #if AP_SIM_GPIO_LED_2_ENABLED GPIO_LED_2 sim_led2{13, 14}; // pins to match sitl.h #endif diff --git a/libraries/SITL/SIM_GPIO_LED_1.cpp b/libraries/SITL/SIM_GPIO_LED_1.cpp new file mode 100644 index 0000000000000..5ae8a40ef4d3d --- /dev/null +++ b/libraries/SITL/SIM_GPIO_LED_1.cpp @@ -0,0 +1,31 @@ +#include "SIM_config.h" + +#if AP_SIM_GPIO_LED_1_ENABLED + +#include "SIM_GPIO_LED_1.h" + +#include + +using namespace SITL; + +void GPIO_LED_1::init() +{ + leds.init(); +} + +void GPIO_LED_1::update(const class Aircraft &aircraft) +{ + if (!init_done) { + init(); + init_done = true; + } + + const uint16_t pin_mask = AP::sitl()->pin_mask.get(); + const bool new_led_states[1] { + ((pin_mask & uint16_t((1U<::LEDColour colours[1] { + SIM_LED_n<1>::LEDColour::RED, + }; + + SIM_LED_n<1> leds{"GPIO_LED_1", colours}; + + uint8_t LED_A_PIN; +}; + +} // namespace SITL + +#endif // AP_SIM_GPIO_LED_2_ENABLED diff --git a/libraries/SITL/SIM_LED_n.cpp b/libraries/SITL/SIM_LED_n.cpp index 30cd3b90efde9..df721612f7927 100644 --- a/libraries/SITL/SIM_LED_n.cpp +++ b/libraries/SITL/SIM_LED_n.cpp @@ -90,6 +90,7 @@ void SIM_LED_n::init() pthread_create(&thread, NULL, update_thread_start, this); } +template class SIM_LED_n<1>; template class SIM_LED_n<2>; template class SIM_LED_n<3>; diff --git a/libraries/SITL/SIM_config.h b/libraries/SITL/SIM_config.h index 99a53bfb0fd43..bd5d07e799c50 100644 --- a/libraries/SITL/SIM_config.h +++ b/libraries/SITL/SIM_config.h @@ -27,6 +27,10 @@ #define AP_SIM_LED_N_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) && defined(WITH_SITL_RGBLED) #endif +#ifndef AP_SIM_GPIO_LED_1_ENABLED +#define AP_SIM_GPIO_LED_1_ENABLED AP_SIM_LED_N_ENABLED && 0 +#endif + #ifndef AP_SIM_GPIO_LED_2_ENABLED #define AP_SIM_GPIO_LED_2_ENABLED AP_SIM_LED_N_ENABLED && 0 #endif @@ -36,7 +40,7 @@ #endif #ifndef AP_SIM_GPIO_LED_RGB_ENABLED -#define AP_SIM_GPIO_LED_RGB_ENABLED AP_SIM_LED_N_ENABLED +#define AP_SIM_GPIO_LED_RGB_ENABLED AP_SIM_LED_N_ENABLED && 0 #endif #ifndef AP_SIM_LOWEHEISER_ENABLED From fd80d331cbb0e216a861eed1f35020de89fd5324 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 11 Jul 2024 22:25:32 +1000 Subject: [PATCH 015/232] AP_HAL: add simulator for 1-LED boards --- libraries/AP_HAL/board/sitl.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/AP_HAL/board/sitl.h b/libraries/AP_HAL/board/sitl.h index a20951e0d06ca..0eae8e932a3c1 100644 --- a/libraries/AP_HAL/board/sitl.h +++ b/libraries/AP_HAL/board/sitl.h @@ -48,6 +48,9 @@ #define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 9 #define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 10 +// #define AP_NOTIFY_GPIO_LED_1_ENABLED 1 +#define AP_NOTIFY_GPIO_LED_A_PIN 8 // these are set in SIM_PIN_MASK + #define HAL_HAVE_BOARD_VOLTAGE 1 #define HAL_HAVE_SERVO_VOLTAGE 1 #define HAL_HAVE_SAFETY_SWITCH 1 From ceea189fa385fb13419729dc8ab23b0e957b0c85 Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Fri, 5 Jul 2024 12:20:35 +1000 Subject: [PATCH 016/232] AP_HAL_ChibiOS: enable heap allocation if flash space for bootloader is > 128K --- libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py index 7435c426000bf..e01e4283a45d3 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py +++ b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py @@ -1260,7 +1260,12 @@ def write_mcu_config(self, f): #endif #define STM32_FLASH_DISABLE_ISR 0 ''') - if not self.env_vars['EXT_FLASH_SIZE_MB'] and not args.signed_fw: + # get bootloader flash space, if larger than 128k we can enable Heap + flash_size = self.get_config('FLASH_USE_MAX_KB', type=int, default=0) + if flash_size == 0: + flash_size = self.get_config('FLASH_SIZE_KB', type=int) + flash_length = min(flash_size, self.get_config('FLASH_BOOTLOADER_LOAD_KB', type=int)) + if not self.env_vars['EXT_FLASH_SIZE_MB'] and not args.signed_fw and flash_length < 128: f.write(''' #ifndef CH_CFG_USE_MEMCORE #define CH_CFG_USE_MEMCORE FALSE From d466618b118aa7598cd77c15eab24b8c8761ec89 Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 26 Jun 2024 18:25:26 +1000 Subject: [PATCH 017/232] AP_HAL_ChibiOS: add flash ecc corrupt method --- libraries/AP_HAL_ChibiOS/hwdef/common/flash.c | 59 +++++++++++++++++++ libraries/AP_HAL_ChibiOS/hwdef/common/flash.h | 3 + 2 files changed, 62 insertions(+) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/flash.c b/libraries/AP_HAL_ChibiOS/hwdef/common/flash.c index 769eea6799370..74fcd2f0281fb 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/flash.c +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/flash.c @@ -452,6 +452,65 @@ bool stm32_flash_ispageerased(uint32_t page) static uint32_t last_erase_ms; #endif +#if defined(STM32H7) + +/* + corrupt a flash to trigger ECC fault +*/ +void stm32_flash_corrupt(uint32_t addr) +{ + stm32_flash_unlock(); + + volatile uint32_t *CR = &FLASH->CR1; + volatile uint32_t *CCR = &FLASH->CCR1; + volatile uint32_t *SR = &FLASH->SR1; +#if STM32_FLASH_NBANKS > 1 + if (addr - STM32_FLASH_BASE >= STM32_FLASH_FIXED_PAGE_PER_BANK * STM32_FLASH_FIXED_PAGE_SIZE * 1024) { + CR = &FLASH->CR2; + CCR = &FLASH->CCR2; + SR = &FLASH->SR2; + } +#endif + stm32_flash_wait_idle(); + + *CCR = ~0; + *CR |= FLASH_CR_PG; + + for (uint32_t i=0; i<2; i++) { + while (*SR & (FLASH_SR_BSY|FLASH_SR_QW)) ; + putreg32(0xAAAA5555, addr); + if (*SR & FLASH_SR_INCERR) { + // clear the error + *SR &= ~FLASH_SR_INCERR; + } + addr += 4; + } + + *CR |= FLASH_CR_FW; // force write + stm32_flash_wait_idle(); + + for (uint32_t i=0; i<2; i++) { + while (*SR & (FLASH_SR_BSY|FLASH_SR_QW)) ; + putreg32(0x5555AAAA, addr); + if (*SR & FLASH_SR_INCERR) { + // clear the error + *SR &= ~FLASH_SR_INCERR; + } + addr += 4; + } + + *CR |= FLASH_CR_FW; // force write + stm32_flash_wait_idle(); + __DSB(); + + stm32_flash_wait_idle(); + *CCR = ~0; + *CR &= ~FLASH_CR_PG; + + stm32_flash_lock(); +} +#endif + /* erase a page */ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/flash.h b/libraries/AP_HAL_ChibiOS/hwdef/common/flash.h index 7ec7c17031a2a..cbc7233aa6def 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/flash.h +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/flash.h @@ -30,6 +30,9 @@ bool stm32_flash_ispageerased(uint32_t page); void stm32_flash_protect_flash(bool bootloader, bool protect); void stm32_flash_unprotect_flash(void); void stm32_flash_set_NRST_MODE(uint8_t nrst_mode); +#if defined(STM32H7) +void stm32_flash_corrupt(uint32_t addr); +#endif #ifndef HAL_BOOTLOADER_BUILD bool stm32_flash_recent_erase(void); #endif From 39c5322133deddde507b87ba0803991d80b0343b Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Fri, 21 Jun 2024 14:14:54 +1000 Subject: [PATCH 018/232] AP_Bootloader: use malloc_dma to allocate dma safe memory for ecc check --- Tools/AP_Bootloader/support.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Tools/AP_Bootloader/support.cpp b/Tools/AP_Bootloader/support.cpp index 416e40d1e6c6f..a7873fcb18924 100644 --- a/Tools/AP_Bootloader/support.cpp +++ b/Tools/AP_Bootloader/support.cpp @@ -538,11 +538,19 @@ void port_setbaud(uint32_t baudrate) check if flash has any ECC errors and if it does then erase all of flash */ +#define ECC_CHECK_CHUNK_SIZE (32*sizeof(uint32_t)) void check_ecc_errors(void) { __disable_fault_irq(); + // stm32_flash_corrupt(0x8043200); auto *dma = dmaStreamAlloc(STM32_DMA_STREAM_ID(1, 1), 0, nullptr, nullptr); - uint32_t buf[32]; + + uint32_t *buf = (uint32_t*)malloc_dma(ECC_CHECK_CHUNK_SIZE); + + if (buf == nullptr) { + // DMA'ble memory not available + return; + } uint32_t ofs = 0; while (ofs < BOARD_FLASH_SIZE*1024) { if (FLASH->SR1 != 0) { @@ -556,9 +564,9 @@ void check_ecc_errors(void) dmaStartMemCopy(dma, STM32_DMA_CR_PL(0) | STM32_DMA_CR_PSIZE_BYTE | STM32_DMA_CR_MSIZE_BYTE, - ofs+(uint8_t*)FLASH_BASE, buf, sizeof(buf)); + ofs+(uint8_t*)FLASH_BASE, buf, ECC_CHECK_CHUNK_SIZE); dmaWaitCompletion(dma); - ofs += sizeof(buf); + ofs += ECC_CHECK_CHUNK_SIZE; } dmaStreamFree(dma); From 2ee760e114830dffe3bb5271c4909c84f5836cfe Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Fri, 5 Jul 2024 12:25:35 +1000 Subject: [PATCH 019/232] bootloaders: update Cube and Here bootloaders --- Tools/bootloaders/CubeBlack+_bl.bin | Bin 16272 -> 16108 bytes Tools/bootloaders/CubeBlack+_bl.hex | 1986 ++++--- Tools/bootloaders/CubeBlack_bl.bin | Bin 16372 -> 16108 bytes Tools/bootloaders/CubeBlack_bl.elf | Bin 493612 -> 161720 bytes Tools/bootloaders/CubeBlack_bl.hex | 1987 ++++--- Tools/bootloaders/CubeGreen-solo_bl.bin | Bin 16272 -> 16108 bytes Tools/bootloaders/CubeGreen-solo_bl.hex | 1986 ++++--- Tools/bootloaders/CubeOrange-ODID_bl.bin | Bin 17892 -> 40588 bytes Tools/bootloaders/CubeOrange-bdshot_bl.bin | Bin 17644 -> 40204 bytes Tools/bootloaders/CubeOrange-bdshot_bl.hex | 3616 +++++++++---- Tools/bootloaders/CubeOrange-joey_bl.bin | Bin 17644 -> 40196 bytes Tools/bootloaders/CubeOrange-joey_bl.hex | 3616 +++++++++---- .../CubeOrange-periph-heavy_bl.bin | Bin 33128 -> 34236 bytes .../CubeOrange-periph-heavy_bl.hex | 3595 ++++++------- Tools/bootloaders/CubeOrange-periph_bl.bin | Bin 33120 -> 34228 bytes Tools/bootloaders/CubeOrange-periph_bl.hex | 3594 ++++++------- .../bootloaders/CubeOrangePlus-bdshot_bl.bin | Bin 40100 -> 40140 bytes .../bootloaders/CubeOrangePlus-bdshot_bl.hex | 4182 +++++++-------- Tools/bootloaders/CubeOrangePlus_bl.bin | Bin 40092 -> 40132 bytes Tools/bootloaders/CubeOrangePlus_bl.elf | Bin 175792 -> 175864 bytes Tools/bootloaders/CubeOrangePlus_bl.hex | 4181 +++++++-------- Tools/bootloaders/CubeOrange_bl.bin | Bin 38800 -> 40196 bytes Tools/bootloaders/CubeOrange_bl.elf | Bin 176244 -> 175792 bytes Tools/bootloaders/CubeOrange_bl.hex | 4630 +++++++++-------- Tools/bootloaders/CubePilot-CANMod_bl.bin | Bin 32816 -> 34012 bytes Tools/bootloaders/CubePilot-CANMod_bl.hex | 3575 ++++++------- Tools/bootloaders/CubePilot-PPPGW_bl.bin | Bin 90876 -> 91212 bytes Tools/bootloaders/CubePurple_bl.bin | Bin 16264 -> 16108 bytes Tools/bootloaders/CubePurple_bl.hex | 1986 ++++--- Tools/bootloaders/CubeRedPrimary-PPPGW_bl.bin | Bin 94216 -> 94256 bytes Tools/bootloaders/CubeRedPrimary_bl.bin | Bin 29684 -> 29724 bytes Tools/bootloaders/CubeRedPrimary_bl.hex | 3222 ++++++------ Tools/bootloaders/CubeRedSecondary_bl.bin | Bin 12144 -> 13216 bytes Tools/bootloaders/CubeRedSecondary_bl.hex | 1189 +++-- Tools/bootloaders/CubeSolo_bl.bin | Bin 16264 -> 16100 bytes Tools/bootloaders/CubeSolo_bl.hex | 1986 ++++--- Tools/bootloaders/CubeYellow-bdshot_bl.bin | Bin 16600 -> 16732 bytes Tools/bootloaders/CubeYellow-bdshot_bl.hex | 2042 ++++---- Tools/bootloaders/CubeYellow_bl.bin | Bin 16528 -> 16732 bytes Tools/bootloaders/CubeYellow_bl.elf | Bin 495244 -> 162268 bytes Tools/bootloaders/CubeYellow_bl.hex | 2037 ++++---- Tools/bootloaders/Here4AP_bl.bin | Bin 22564 -> 23760 bytes Tools/bootloaders/Here4FC_bl.bin | Bin 26360 -> 27556 bytes Tools/bootloaders/Here4FC_bl.hex | 2759 +++++----- 44 files changed, 27702 insertions(+), 24467 deletions(-) diff --git a/Tools/bootloaders/CubeBlack+_bl.bin b/Tools/bootloaders/CubeBlack+_bl.bin index 3173b2f105d70bad9f194d32c4ac6938f28096b8..a7728c8ba1cb4e30a2938c999b34cb7069a255d2 100755 GIT binary patch literal 16108 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 J3;!Ly{|6aJ3-$m2 literal 16272 zcmb_@3w%`7wf8=cNhS}-BokmV2{4%n7zp4%f(8MZ%uG%m6AcpDi$Uv|4C;0Gzw20o@XsE?RD>d4JRv_qDBgR3n58K{$226iEt`$W)mehIziF5Ki-+!M;5N&V2 zd++Z{e*5g#+H3E<*4k^Yz4ji$6Uzq-(dTCn{Tzh*C*qqBUqJcQA+zwy`K#-`n!bM- z(Law6MHoYvcf)_b?If90V$-Rk^@a5X?hc9pb zKCL-+Nk+}C3E0V+TA7d!{$@zM`STSMZIUd(%h|hVD^|`O;pBzGwer{Ov#WBeA9Jn< zmnnSOa4fGX=c=5!%3Pi6X?NZjz6G^T1SLi+GpbBi!LahsFem$lvum<%`k9kEyH??I zcU26q=rd581vtEc}aHyYN%P z?zfcm$O-9bq35rL-94Yk-zT<~%bB|hg?$yo!pMIcXXGD^llRACflz+UW;vU)1vnd- z;|pw-S0&B1JskMEtc<*qHATRz@GWOdZim0_FAv-0d=USMVSuueGL zZSXwhG)I`?r<|s+PAI#ytAr0TbLePUdD`%lE+W6G5V>KD$mUUtK;$VyM1DyD1qwcm z@j_pW&WRz(hxH*Me{W=8zlB@pTvw*=Ne<~eY<}*pmlWR4>?iWaBi!NJ6@KKoJKu?@@q;LPJ4!4)pD5pF zv@ac(A!O0GkyUv@O6y|em&S?BP@Pd(JMf)*8MzTT%Bv|gHp$p!lbGc;(T9`|DW9nK zPI(#T8?YcT~NlcRYa^F73B-jK7&d{@qiB{}Uo}Q!}$?5Yv90 z&7qX6rv~e0n6+3inma~-H|37uhlf`K%cH}|!n!V+`r&X& zKa)ZV`=bkl0|L3m=lNlbv9T5#+AJTrQ8=gQ?LTrRowNhiH_X`kqWpCOF}8!uofW9_ z91y-CE)cFq-8V<3b&&<8Fu6vJUpu}YV_G%PbcifiHPCp7?MTSb%#kIa?z2OO`$_7t zOW$ZV%bd<3*EgdNOHyAd*XAUb>Y8643~ncvYMZ}SKILqJk`E8@t$YV5I(Et3yrP=# zcyTSW^t0HnG22UHiP@Gm&t8;y`j`C{ero-IwN9*#$MOjPV+^%*{!CyOVT6dyLZXS7W4b)xgw4YW%d8N;w4DrPfhe zSROCWJNbJ5?2N3_hIVF2Mr6Lsv8Ds5?lp>KLE7Ucfw!g|AoAlQsr`H^Cwv@REpTl_ z{^bzYk=FWI%(S1+cPKS0iTudW22H*EAL_VUGJEok`%2#RS4;@T9kPZI5FtkHR%wxq%M80O|79nl_6EVu!kU}}D zetz#ka5iK6K+{1=vD7|2IJ@feyR_bOG+g3A&@J`2J5s)C;Ddt>$j{OtK0mcJ6)R|5 z(f9NEer*-0aYlo$JgCOAwA7)4h7P7UJ)*Z74iL<@ zFPe6cKh_Bk|Cz2&_2W6h*vAWmyZ=nJ{#(GMz>{~1p36Tn> zFgcp)d0I&(EedI6sb>2gQ^GI!AX+;x9AIP_){Sbv6eD4}Q}2a*jzR{Ze=BHTiGGrV zn_Q&e%Y7Lp`r@zZi!angQ#`aEy5A-GxiHbs8(KfK^y+@>uOxfS+mbzXiq&D0-t+4` zslv|$Mz9F>H$?2=ljET@2!t5bFhLKN=7E3xeQydx$))tGG zP6e>XJc)S(5g0kxL;8tG27?YF!74!daYA#9oYq5#&SREz*iSpmEl&1~!Oh4&djq>s z1#L@ll!lUT;)O!Vf|{R>7IxEA&nKm5{n{I)=!e1?WRBBE4-b;=6mv_w=bu01?j#n$0eh)&AB+@xRitVTEzK?7e+Z- zes%gB-3Vv9U1}TBTb!2|?kQ(M#IlWW@ULVyk;rx|>;DIzg}G-C+Wy@bYdaZRWlg*3kFjFwg;<&OgIK-wqu8z14`U1F>~ziy zFlYAW)dw8rK#xfnfhEhI{~cuFX9!uI`dt_Wv)kErBs=ml#$lx6VB4ITbR38?=r|Bh ziSjmmHQU$1o!*97+Z6QtIeH$5aW+UBwa|d~HQ;0m*)Z#=9SE*z_iFSpu#Sl``O9TY zn60k!w+sa9>L?`O3?X7`b8?a2-S+lcrg$g@`-0d*?pfJGOh%d@cC`(W)ekzEeuhbk zn!Ay+1kLsy=7zt;$ozQJAlL!V3Y@UlY#d^8$-Locpn`RCLYtF~a0-(<977%wiV&b< zqw+}QR|!q8nO-^LrWrR+t0nRiqxpgn`^}r91yXipLsQ#E+W^MpW8|_Si(sfCa?cno zb!nxw10NI@iKO7`SgWt0pLx)Sr$*?S9E>WEsgG6={hnfC*@?dBT68!wh+!qsmxj_X zk~D3tq{7zL3F(m(4}td2wyN>xRGmoI4V6wJzj(B?XL9XK;u??P6cOq;{MqG{W*BDJ z4@LE}%eofM)4s92G4bEg2q2FGPKjut} zWGc+^l!A2*W<@;WxJfCdul!1W8*xCVl|_`>HpHc3>8wsCJauGBZ^DAC z9U%Aeb~XNcb@M>*zG5+9J0|LM*qyTFYq{bmwa818ruF7087JE5`b!Cs>xN08a8{pR zI8%+kq}G1E{l4Xn%M&=hlQgy0my|vMfAOB8rgkSAExLykT^mjG(yMGJI0d_Nam3(< zb}Tbh*piKrY+0X?9wzz0{PW3`;WF96JgdbH#z*6U;Jps;?_26~N%u**-XADpcA=01 zzV{55NY5SlNh~0~8M{VyB(LHP7}u(F%ImoJix_%n)`z%CHNH*l`9u#r_Q27+xx|tv z+cZ(O<>=1&lVuww%A})zT}00E*seRWLN z$mPoicIkO%*d`|vPEO`r7ad%i*tg3iJGhP`MsLx>E}229&RaIX*SX{ckSAtf-z_*N zh+Tuh%|@wCN)K;~NHI~<62Gsu?yCB9Y2c23y zjkWqUmi@7msv|KHUVt@D=|Rst#K1U6HbM`hqjaJ42>vO^l77)e@N*JD1FNua`Hm*NfXYmYJB5Z zr@zSE>78;u^UM;#gp!7_L%BByA4qn$8ozDqL+J+hv))c=eQu{%C@9eTwAJdd3(`li z7KyGL9y)QFFjvFv@Lvb)8A8%Y3bk^~2i!j3&I0b|`;zo(ym-thbmyFx)c7LccDfs` z;HDBtTUj;ShES@T6rAwlgdsY_o#I-jwi*1bP-je-imVocTUH`yg5edKUgAUaJ!_gjS(l zh$wljmbnk195!KEwy>egDl8KUF&Br*2~zhhNE3N2TK7j1IQRGQgwxKF^z_I@nASq! z*A-01Bf#;IdA6J4Iu}dK`GhyqO*AU(5E;y$@|4bEhLF%hiJ8!O`26*G4c=J+o4)~6 zpmXtkF&Fr*GIuFG%e0wHy)qN*E2PEm1iT?c>G_>2^xWai+crtf7LA(RIQA@!nuh=8 z{Qoxo#r)reh5kRA|5x>THZ-v-ObGZ{Ow%ioE=AluQAX1*BTeg45@m~Nnwx<0CCZji zxZ9DYwuTyiw&(g#hKGY*c8M+G36X(}a9gJdq%}=|{@+6SZ(}HySI5boBCUiUoN+G? z4G$Ssxx@Az2i7e0+whuXsqq72tj)GH!D(uDl!i|Dd0~o>+s)_ev8vkCc>>>`jrQ%} zL(*BxOxQSHx<9M&2g9X3U!AuxWp3l=O^fC~z|PBx=G>q4Fk^efVT9IU z4)Faogpt>c1J2EKCHqLP5%^W3U?p@ z2f8tG=LFpS3AiN`?mna=%ASJKkWtFPXmkP-VJxLR48}AZ&AR`#hZ#$&gLe!>b(kR| zFCSxZ!umAQtL#~eS>9JD`R^z41F(KddmJ0p_?Zbl(0zM*DC=rI%wgwdcywFgM{H%< zNdHb2_Rtd)2OV4AXo`nvWA`LV_(9tiN>fUMBV+vGK#v5TJUN5t-%%P)y zZj`o~^KH;`%rcW=VSt@e6IPlUzd78hxb2)Qa+ac;Xsc3g$)BGZvCfBn;ig6`^E0CQ z>K(ph>v11{KFQPKOSYZx5gWIG`ZrsACw%aoBE`TS1+Pl34<#gr7tB%0rx{ntPG*$! z*XRlb_2 zjHN6t4Xsx49sfDe2S!t1l-5x0ap$BC|LszF7oRVh)Oh1~VkI$hCOpS#{K$lVw6urv zkjN*)jExJ>m3_k7(!e#GXmB-fKCao-oZvA(p+m`>GVvFp&Rgz%&`acBsaU@Os^@_x zL}#rNR{PJ2Q-y57)Mc;|%ywvKpMNrad5F%f=aYZ~{Co}e=fkYbuxztai=EBH%6gsN z9bQIOUXxz|KEC4Nk0fT!bN+vGtaOz(+n{@%6@8-o1|u80F>DPcS%cZ2!RWpO^KXC& zgjo3Gp{WAkm6FwTEpG(=i&m zl2E$0A_?{s`s~qm;KJX-8}G5~QL62(i>&R#jcv}-@CDzVA-DbGjijhnws65qV?m1h zufY^6T3YCyP4X{ne0C$1h+DA&X-S|bG}yeI$X&tEpksSg1U`Z7M=@r>&J_JT`ifFx zx5+H`9O9q&{_LB(;Y7@FiSa${oOL=hcx?0XlcB+Vn>zvLw!e(jRITMs!O1l&Z8JQuMP3%I!QxOQ}zao{O;B`1i%G_aw$d zY)_;AN<*d`%%J?rV5UZ3Q>jd0QiP>mvqOsjdER$-Y$4*0eLmb-{hRukHV;y?eIWf1 z9k&tfRt9TBgk} z#cH&krZ&Fg^Rfn`b7s^y5S*3~?O1E3OyYah6yM-vf4;tvje^OnOp!%sFzhUgAWjXb{&;)azjf(e=hX zz!m8te9@FhQ8&%&dt83p8i~{fae3AFIjqY|vDQ!0iCJW&IuV{9@)g{tzlvMu$?@yA znj}^-i*=&O3*EkTJie!!j>{hM3QfOm9Z`GGJoukR*d z+LnipFxTG-J-FAo2i`ln`_ghlNRRtDi{C6+#kC@1wRz23)p)B4FAPrd2FG~(25rnc zMAph~C06HF?AlUi{{yT`NngPFUCN3DPJBxjBv-qXyamT4mtt7JS~*3(fZ&_FptIjZ z0u}jO!tSK>RpWnB39Jq^zIQ_7QCpqzFW0}$n_@Ix>Bht8~NBuV@ z+Ua|$x{^Fj%*-U#i$>8U@~Ev1(^FJpejMhT6fsMzxLUl`OKCLl=Hz}l1$O67Cy7F? zC7XDgSPou)JU$T9dAR;;+zz&TfoI8CFJu8HnFJk`5a%^}j*GW7nmuNLowr8GzN0kE z=KsK%B+M34qwBnTy?G5fv0Q8x^*OjN#Xj5JZEAc`Dln(#u%|vUFO>N6PdV9>)EoQ8 z(2LSj&Vkb#rTfIC;w*8K_=p#dq5oV;>43q92%cqG1u6HIwgB{v(peMgIuLT z7H<*Tov^c*w?r<|CN)cG?luv(%AP<)s?^{mmUd^I_-m1i(lSQg-rXkck~qNVt1XRd z8neu8&e)kJ&CI;L;kG=JI{~#t<2UV>+GW(=M(LHHD0nn4DZ(Kz^O7oYa|Q@qWuSta z-yY^GN#AkpoN^ERd=>;fY`Q?G{V?-VlAwn!%*Oun1IYP!eE-<7Bd)yl`ZR9(^qC21nOaS))h#0yVM;Z%ikn8#(Yke_wV@{gm5j36h6iGa9Q7>SH~eYr zDd^l|RQCcuU3c&iRpB1JUr*?{NZ0=xmhU%^lqxm;sHz+M%@!V#o>Y}sk1b&mzO57| zdeGpnz%hi744P2;M33{;czo{IFOOiSD&e-Jb(@4h&k|5*JkH_dc{z&JiSX%2ThIn7qcX8K!ex$I9=1wDLK+d;l%IWu&M}r8hHr%ST?n5}dXq(VIH$d;~ z6BdbK)Rn(;JFBpHIos$S%l5M@&2xF5MNK98rN4;H4KPcYlDA@yVy<+) z&md&r-XIrY57P9-3iWZG<3``5Yl^I39r{oTZZGcZR^zgYn-o8p9}Xu~*Nbfbt|j#% zG}Az^!7S=~UcUi49q=~h?s7f+$hq6v(B_XS{8aSz-ih0L34W|K=0qDUM*d4}XA}lP z#?xulX*I@ezV5V}v3k62#b)@rVq47=n~LVS<532;>uVJY0S_o2!gi}b`CQ*)cEUIjfNgdAKDLO$CV{B+%&-v-C;V?&u(6EashTiBg(Fi6xFD4 zw|d!jK~&?{sjwce;TAGyTHv!SsL2o6+tAL2F}PIi{YQ(< zZyRvjXY<yAhx=YI1CQu zns>JryYuc&!(Iq#-)9q9cghtkb`1;Wc!x`|tfp8d#uXqAiZ40DSQ+hR_n6A;O}y(d zLMm|AukOR{!yaI)=>H~q_xqMgy&MUh%7Gsp#EE+&#!7Eyw!)7(6S9UoHhS9>rs<^W zI*HP;PQ;Bzi&Wf#*J26H7pSm*M$S`T4&74?p7oM(fcQ+2{=XS+0PN0MIe4F2sacWc zIVZUl{fg)MC62bnd2qypUDK_sUSa6bd4^+Jd(e;GgHW7{u~(NMP`yv}zrH%flT!7F zlRuRLk9eC?cPdb^2K02{jo9TFzPSUjM_0j4#XGLa(9&cN5$n^EyD1Z|LsUE8=QJ`) ze&9Tzkem~W0YRUFbS}~e`n12Dtd$w#+e%)kz2{+u-W9-q=kbQV*bcSCQkL9`3 z+(T)sP5Pv@QBr&d>TBksDlF-3t8&fwAc9(U7T zXKr+!r+y>6=xn{OzDbMktZ(}2`=hD(F3WoVcw8Et<+&iv!fgX7B{qC-JZ7_ro0@6| zR^yab>?cK|XBk_uHyt#YKVIxVmz4;G-_)18QF>c3Nayg)M#z&q-Km~V zYR?q=;Kio51)XA`C&@!)na+!@Ge2 z2fmV0=*_!;w=lt5R~A$JjPtlc{0JM5gSQB2mrkZhjZJ-b`Wg&2qj$Q0x@<@qiBf+4 z4qh8lY8x2$(V2Ea!#Qj&*}!#rQ!r~oDMnqI>gj_8e$0jZay_NUa-{r-m-RJq{RS56 z)OhjE&IYB&0J=MZ#NcddRckRc`GwwobTZ!&sot&YU&pOyZg73L8h6i_ zH#eMq+35O-yBZ_P1FwFs7?$b!S8-(ivPkOghaY)d&&=Buu6DiE#N+n(>!z}ctn-(5 z&J*fIO3i;C$2jb{yImI_tefr9^;ZIS>(-Wu8+s6M0THy}Y1*u*J_)^Bo4(kSO7j?Qn z#0cm`f;@sAA>Dv?ne2|HEa~{2YCIo)({+noO;ybLb@Z_tvEva^`A_QL zF=Boz@-0Iwj_GJBoIO9k`j=xI0^NHs!gQ6|an39`L!i zVjJa4Ul}|HZ@X|S>N*DA7fBpSnWB^S;0-4nv(h)MqW6j=)VhX^WD<)$tDT?n^u_* zzV23cLKjoMQQq*EHa={-$Z{K-e+#cxzQ9(Z26v;hUR!gZO8|6nHQnQ%EB#rlX1;#Z z?1mrTa$GT_%$Hca(_-eQV%`|Hp6hdF8!&IIoRsXaLk_NX$YeFvLkeo>yi*)9@4&oM zPC@HYUgO1p>x5Eb3iN>Hi$HUWMYKqZcJIugEtwT&_bVfx4>&Hq?f7Mk-qXygEN{~F zxglqIKd9vIPoB}+i`95G+1N`!r8APpKO1xZq0@BoWG=bJEZ!j|W>4q7SN$I5UYtbR zP#xR}Z+~WloGUez*4KmcfCOtWu5JXUVNmoBY9Ssrl`#P0&%axm(rc`7l_B>pN(Cw zV|#a0(zb{Bbc{(~YLt^Q`Xt*xpe{Y^8Zgwk2KLqUiHno@ULQ1NTGzKK_f}kD>)(Bu zP49hISqp3W*FPrLKto;T4Q0<@9=+QX7w7PMyKZ85}zxXB`;~;`QZ^ zgGUA(*QQ44T4V-;x15tqjns?sjMIU3cCJ@3RT_Ig;MiVj2^<-J7AXd)m&Sca(U)=i z$FD((L#lK9o7~Rc^T`QVyZU3KC~T41fE0zDtJ;#c58ii(LR-{LvBZc?SB?0N;qQ&C zFaO~weV>Qwj(O~W!%9bLg*=gYWd5wPG6PKwgcHlRJDwfCWYGul%c z)7H%OUynVNtPiJ3$whm^Y=G;>i=c2;Dr5J@*kVwRrPNy^wfb2pqUet~q-XocRAMy< zKXhu;<>Alux8t_AU96X8xbF~G$FlHxPaoDxPn7QpKdRuI+Rv~%!z4AmpGl{FG%8=N zCa$k6GfFkY05QIWI8bq=Y}rKFva8CLLwo)m+(a4R>>=(cW(!};k8pENc=-;_NAh*r z?dMyf)62p?&o?+5nj79~aQUb%BG$6TGB4vjF79YJ-azkR#^Xof+u(4giT6Lz<5FrD zJyDxx;zaGw5s%~Sa9lj@H@bKDIWN8Obv1Hck`F&pn0nTx2p6Q~T@8NY%q*$1!RWrw zfOBe(?K{QYbO#uZ--}n7h%ODIYXYOo3wyGG+n9Kf5`aCK zxEp+^@kZF%zg2a(N1(phLYz@M8$WEsIdFYv1Kt*$qB~jdgeT@R;HRsX-uAW%PYRZ6 zs5T&TUJ%|@3J)K}&2dV!O7kW@t6I9~-7&p|P`>};#tV)6`*dmR%^i3J+aVn7cVy(A zDHfQ12TOm4KyA#&oI}yhMn|#Zy3Pj2(r3{E?@zSepHO!LQ+fI6leD*YVs@ck7>obQ zSZCvU_cz>~4Y#}DsU$cPXnf*E`1}*vY)>?B;1=HJ;=cZEjaSVYuUtNAo3o9_MQ0=B zAhCYIsXxEz^0T;mzKT!6YK32(rtNVWZHxZ_ZNaS`?5AJw%jP%Fe7503@ZhWbdJ;FR zSMzH^25$HVGH?~gaF)<`mUt`hVB^y6Oz`Dbs-Y|4b?$7O6`*`$irbu>4g9GO{1$;< zM$f8vp#iGV_W_h|Q-sIxJ^;5A`dug`b6*yI+E|PC0F=x7z%xo=yT-G9jj_f9eM#IZ z^E0rfXA6#NbI<7d9o*LxzQ}>_^aQ`at?Lrp`l8n#sFe3Nm!COFd-;#pJmCg#?Ej2* zHZFIs1jlZ4<6SRaOi((XkaDSK1pelcSW6=*QX>5F4)b8dD4xJ?2u_G6{APEHpY_uB z1KP>}RTvxImdhpG9DKp+d}c3eJxlo$rv5AjWm-;4uk%fo(=(1CG@}N4#prmPj0dgL zs_6Q8aE!6J6;nF5HOrG#eMZV3IPXp2Q_@pihN`pTZzNdrTYe)>tx83TVN*qe_3XDT z))vJI&oez!HN2|Fj!%84J9-{~56J;LReNj34eMn3KFvVRSE7v4e|F9LO0e}#KkjUk zVO#6Zz>6@q@dfEexlcG}o&r}=Uyy8#y-NCFqubU{Bpr3$A^xO~P4anvp`-^H{BEOF zr4%jnpRS;5;!gjIIE8<7@@%ZZ|GG0h@|a|6`1jl=#QhRmxFBpY?afQI;g$xBJy*uY5oGjIwVSKo^{}5 zrh}v-;GHGOMld1dAz0v3z;ATaA-vayCuW&KeF@|7G^|x^PVgx`o(%7JFDc0LCafGa zK7Yc#qy84>Ym{CF?TwV4O}vppeAkrf+)ZsbVc`Y2hkI}z76u4|}oycI!vwY6sA)z%vGUFJ<`)dtBi5DXYZ(`GW@2+()F zv%<9lLA&YhoV(#+fVZhmB=Wj$Z7lF>Eb+j9033^}YX=-VqXltQru zw*VWw8@KYKy)$q-@i;TuYpQM+Ih?&7wM<9Jbo?4^x+ga}y*g8xj$ffok2)^tvVhmq zj`l42Z-9nH(RUylXz$SLsLI=(lh+ISD@?%7+>iJY#w z4Y>$%3C$LM6ZD;+i}|X49&pxs8vsAO+Sr8FO?xYB$e~x{BFLTR`QD6b<0jN?+FS8s z(^nfeqi!?WA%|X(iy)Wib?242CFScwdh8&-9ZAYh#(Me{Vm;y$h*J=U z5vL+Pig*U%pCc}WKS%Evi+3HRx=W3hkB`N#86Jz*j*Z2at7GwuaWy`M6NetF{LCA$ z&jh^nEy7FcA~K)8Nz<^$cgYl}R=%W>8G% zdvjWE^pgsKk z-^bJNJ70t;cuzEhSckYD@p}mGAmkuVTg}9qqZEX4gvAIe5#}LGLtqeoj6mVEi6CZa z27gsKMBjzrz!lK~tfmzRlXYAIgbbpdCJhKRsHf>kJk%Cv7?xDtx$WB3TQ=Y2cirqF zu5UKn>Ac75+gP;FiRVUj;2nYkodrQZ8Yn$mX&SKu8A|&muYVIFB4YpBi#qC$rEuR|n&5|j!##J> zdP17#(;>cqKblij`o-TqN~px&-_@Zwn~=4%me$eqm3Al#`rBz&sN4O5<7;2Twu($3 zko@fc#@7rMX?5tYj3Mzve?d)1Xa)ZMQGbb=e_l5^;z`+?Z1c}zHL-Z~kRGxNGVou) F{$IYF^dbNN diff --git a/Tools/bootloaders/CubeBlack+_bl.hex b/Tools/bootloaders/CubeBlack+_bl.hex index 66e7d8baa7272..ebbd8d27cbcb3 100644 --- a/Tools/bootloaders/CubeBlack+_bl.hex +++ b/Tools/bootloaders/CubeBlack+_bl.hex @@ -1,1019 +1,1009 @@ :020000040800F2 -:1000000000040020E1010008210F0008250F00086E -:10001000790F0008250F00084D0F0008E3010008C4 -:10002000E3010008E3010008E301000811280008CB +:1000000000060020E1010008E3010008E301000808 +:10001000E3010008E3010008E3010008E301000830 +:10002000E3010008E3010008E301000801360008CD :10003000E3010008E3010008E3010008E301000810 :10004000E3010008E3010008E3010008E301000800 -:10005000E3010008E301000879390008A539000828 -:10006000D1390008FD390008293A0008E3010008E9 +:10005000E3010008E3010008B1380008D9380008BE +:10006000013900082939000851390008E301000866 :10007000E3010008E3010008E3010008E3010008D0 :10008000E3010008E3010008E3010008E3010008C0 -:10009000E3010008E3010008E3010008553A000805 +:10009000E3010008E3010008E301000879390008E2 :1000A000E3010008E3010008E3010008E3010008A0 :1000B000E3010008E3010008E3010008E301000890 :1000C000E3010008E3010008E3010008E301000880 -:1000D000E3010008E3010008291100083D110008B0 -:1000E000BD3A0008E3010008E3010008E30100084D +:1000D000E3010008E30100084D3A0008E3010008CD +:1000E000DD390008E3010008E3010008E30100082E :1000F000E3010008E3010008E3010008E301000850 -:10010000E3010008E301000889370008E301000863 +:10010000E3010008E3010008613A0008E301000888 :10011000E3010008E3010008E3010008E30100082F :10012000E3010008E3010008E3010008E30100081F :10013000E3010008E3010008E3010008E30100080F -:10014000E3010008E3010008E3010008FD2E0008B8 +:10014000E3010008E3010008E3010008A92D00080D :10015000E3010008E3010008E3010008E3010008EF :10016000E3010008E3010008E3010008E3010008DF :10017000E3010008E3010008E3010008E3010008CF -:10018000E3010008E301000851110008E301000841 +:10018000E3010008E3010008E3010008E3010008BF :10019000E3010008E3010008E3010008E3010008AF :1001A000E3010008E3010008E3010008E30100089F :1001B000E3010008E3010008E3010008E30100088F :1001C000E3010008E3010008E3010008E30100087F :1001D000E3010008E3010008E3010008E30100086F -:1001E00002E000F000F8FEE772B6394880F30888B4 -:1001F000384880F3098838484EF60851CEF200019D -:10020000086040F20000CCF200004EF63471CEF2ED -:1002100000010860BFF34F8FBFF36F8F40F2000003 -:10022000C0F2F0004EF68851CEF200010860BFF334 -:100230004F8FBFF36F8F4FF00000E1EE100A4EF6C4 -:100240003C71CEF200010860062080F31488BFF3F1 -:100250006F8F02F01BFB03F02DFA4FF055301F4952 -:100260001B4A91423CBF41F8040BFAE71C49194A6A -:1002700091423CBF41F8040BFAE71A491A4A1B4B5A -:100280009A423EBF51F8040B42F8040BF8E70020F5 -:100290001749184A91423CBF41F8040BFAE702F0B3 -:1002A000F9FA03F063FA144C144DAC4203DA54F833 -:1002B000041B8847F9E700F03FF8114C114DAC42A0 -:1002C00003DA54F8041B8847F9E702F0E1BA0000AA -:1002D000000400200024002000000008000000208E -:1002E00000040020683F000800240020282400208B -:1002F00028240020903D0020E0010008E0010008D3 -:10030000E0010008E00100082DE9F04F2DED108A12 -:10031000C1F80CD0C3689D46BDEC108ABDE8F08FD3 -:10032000002383F311882846A047002001F0EEFE49 -:1003300001F09EFE00DFFEE770B5214C6FF0140364 -:1003400023700323002563706FF03F061F23A57001 -:10035000E57025716571A571E57125726672A372EC -:10036000E57200F0FFFC20B10F2325726672A372C4 -:10037000E57202F01FFA044602F044FA0546D8B9C5 -:10038000104B9C421AD001339C4218BF054641F2E3 -:10039000883404BF01250024002002F015FA0DB1B5 -:1003A00000F0B6F800F062FD00F01AFC204600F004 -:1003B0000DF900F0ADF8F9E70024EDE70446EBE7AE -:1003C00028240020010007B008B500F087FBA0F149 -:1003D00020035842584108BD07B5054B02211B8830 -:1003E000ADF8043001A800F0E5FB03B05DF804FBB4 -:1003F000A43B0008064991F8243033B100230822B9 -:10040000086A81F8243000F00DBC0120704700BF5D -:10041000482400202DE9F84F234C94F82430054659 -:10042000884617468BBB2E46DFF87C90002F38D0CD -:1004300094F824A0BAF1000F05D12022FF214846EC -:10044000266200F001FDCAF10805BD4228BF3D4605 -:100450005FFA85FBAD0041462A4604EB8A0000F0B6 -:10046000C9FC94F82430A7EB0B079B445FFA8BFB85 -:10047000BBF1080F2E44A844FFB284F824B0D5D1B4 -:10048000FFF7B8FF0028D1D108E0266A06EB830603 -:10049000B042C9D0FFF7AEFF0028C4D10020BDE8AC -:1004A000F88F0120BDE8F88F4824002010B52023E4 -:1004B00083F311881248C3680BB101F0ADFE00232D -:1004C000104A0F484FF47A7101F06AFE002383F35B -:1004D00011880D4C236813B12368013B23606368C6 -:1004E00013B16368013B6360084B1B7833B96368E1 -:1004F00023B9022000F074FC3223636010BD00BFFA -:1005000034240020AD040008782500207024002049 -:1005100010B5254B254953F8042F013200D110BDE9 -:100520008B42F8D1224C234B22689A423AD9224B73 -:100530009B6803F1006303F580439A4232D20020A6 -:1005400000F068FB1D4B0220187000F03FFC1C4BB4 -:100550001A6C00221A64196E1A66196E596C5A6464 -:10056000596E5A665A6E5A6942F080025A615A6947 -:1005700022F080025A615A691A6942F000521A61E7 -:100580001A6922F000521A611B6972B60D4A0E4BAD -:1005900013601B682268202181F311889D4683F334 -:1005A0000888104710BD00BFFC3F00081C40000831 -:1005B00004400008FF3F0008282400207024002089 -:1005C0000038024008ED00E0004000082DE9F04F3F -:1005D00099B0B34C01902022FF2110A8A66800F02A -:1005E00033FCB04A1378A346A3B9AF480121C360D6 -:1005F0001170202383F31188C3680BB101F00CFE46 -:100600000023AA4AA8484FF47A7101F0C9FD0023DB -:1006100083F31188019B13B1A54B019A1A60A54A77 -:10062000A349019F0292002313704B6099461C4618 -:100630001D469846012000F0C9FB002F00F01282F1 -:100640009B4B1B68002B40F00D8219B0BDE8F08F6A -:100650000220FFF7B9FE002840F0FB81019BB9F1B1 -:10066000000F08BF1F46944B1B88ADF82C300221A9 -:100670000BA800F09FFADDE74FF47A7000F02EFA35 -:10068000031E0393EADB0220FFF79EFE824600284A -:10069000E4D0039B581E042800F2DD81DFE800F05F -:1006A000030E1114170018A8052340F8343D042147 -:1006B00000F080FA54464FF0000856E004217848D4 -:1006C000F6E704217D48F3E704217D48F0E71C2488 -:1006D000204600F0A1FA04340B9004210BA800F08E -:1006E00069FA2C2CF4D1E5E7002DB7D0002CB5D059 -:1006F0000220FFF769FE0546002800F0AF810120C7 -:100700006C4C00F087FA0220207000F05FFB4FF085 -:1007100000095FFA89FA504600F08CFA074658B192 -:10072000504600F097FA09F101090028F1D12C4652 -:10073000A9460027634B97E701230220237000F0AE -:100740003BFB3E46DBF808309E4206D2304600F0C6 -:1007500063FA0130EBD10436F4E7029B00261E70E9 -:10076000534BA9465E602C46374600F075FB15B129 -:10077000002C18BF0027FFF72FFE5BE7002D3FF48A -:100780006DAF002C3FF46AAF029B0220187000F09E -:100790001DFB322000F0A2F9B0F1000AC0F25E8128 -:1007A0001AF0030540F05A81DBF8082006EB0A0333 -:1007B000934200F25381BAF5807F00F24F81554594 -:1007C0000DDA4FF47A7000F089F90490049B002B45 -:1007D000C0F244813C4A049BAB540135EFE7C8208A -:1007E000FFF7F2FD0546002800F038811F2E11D8D2 -:1007F000C6F12004544528BF544610AB26F0030030 -:1008000022463149184400F0F5FA2246FF212E48CD -:1008100000F01AFB4FEAAA0A5FFA8AF22A49304628 -:10082000FFF7F8FD0446002800F01A8106EB8A065F -:1008300005469AE70220FFF7C7FD00283FF40EAFF8 -:10084000FFF7D8FD00283FF409AF4FF0000A5346E8 -:10085000DBF8082092451CD2BAF11F0F12D8109A6B -:1008600001320FD02AF0030218A90A4452F8202CB2 -:100870000B92184604220BA900F092FB0AF1040A1D -:100880000346E5E75046039300F0C6F9039B0B903F -:10089000EFE718A8042140F84C3D00F08BF964E71D -:1008A000282400207425002034240020AD040008F2 -:1008B0007825002070240020A63B00082C2400206E -:1008C00030240020A83B00087424002018A800232E -:1008D00040F8343D642100F039F900287FF4BEAEC1 -:1008E0000220FFF771FD00283FF4B8AE0B9800F02E -:1008F000C3F918AB43F8480D04211846CDE718A8F2 -:10090000002340F8343D642100F020F900287FF4F2 -:10091000A5AE0220FFF758FD00283FF49FAE0B98CC -:1009200000F0B8F918AB43F8440DE5E70220FFF7F3 -:100930004BFD00283FF492AE00F0B2F918AB43F83B -:10094000400DD9E70220FFF73FFD00283FF486AEB7 -:100950000BA9142000F0AAF9824618A8042140F837 -:100960003CAD00F027F951460BA896E7322000F085 -:10097000B5F8B0F1000AFFF671AE1AF0030F7FF47C -:100980006DAEDBF808200AEB080393423FF666AE33 -:100990000220FFF719FD00283FF460AE2AF0030A99 -:1009A000C244D0453FF4E1AE404600F035F90421A1 -:1009B0000A900AA800F0FEF808F10408F1E74FF4E5 -:1009C0007A70FFF701FD00283FF448AEFFF712FDF3 -:1009D00000283FF4AFAE109B01330CD0082210A9C1 -:1009E0000020FFF717FD00283FF4A4AE2022FF21CE -:1009F00010A800F029FAFFF7EFFC374801F08CFB54 -:100A000023E6002D3FF42AAE002C3FF427AE18A8B1 -:100A1000002340F8343D642100F098F88246002815 -:100A20007FF41CAE0220FFF7CFFC00283FF416AE87 -:100A30000390FFF7D1FC41F2883001F06DFB0B9879 -:100A400000F04EFA00F008FA039B57461C461D467C -:100A5000F0E5054689E64FF00008FFE52546FDE58F -:100A60002C4667E6002000F039F80490049B002B28 -:100A7000FFF6E3AD012000F09FF9049B213B122B10 -:100A80003FF6D8AD01A252F823F000BF510600088E -:100A900079060008E9060008350600083506000852 -:100AA000350600087D0700086D09000835080008B4 -:100AB000CD080008FF0800082D09000835060008C9 -:100AC0004509000835060008BF0900086B07000843 -:100AD00035060008030A0008A08601002DE9F34747 -:100AE00002AE00244FF47A7506F8014D144FDFF87A -:100AF0005880454397F900305A1C5FFA84F901D0B9 -:100B0000A34212D158F8240003680122D3F820A090 -:100B100031462B46D047012807D10A4B9DF80700E4 -:100B200083F8009002B0BDE8F0870134042CE1D1D5 -:100B30004FF4FA7001F0F0FA4FF0FF30F2E700BF27 -:100B40000024002098250020FC3B00082DE9F047F8 -:100B50004FF47A75144FDFF8588006464D43002451 -:100B600097F900305A1C5FFA84F901D0A34210D1E2 -:100B700058F8240003680422D3F820A031462B46FD -:100B8000D047042805D1094B83F800900020BDE828 -:100B9000F0870134042CE3D14FF4FA7001F0BCFA71 -:100BA0004FF0FF30BDE8F08700240020982500209A -:100BB000FC3B000830B4074B1A78074B53F822402F -:100BC0002368DD69054B0A46AC460146204630BC29 -:100BD000604700BF98250020FC3B0008A08601006C -:100BE00070B501F0E3FC094C094E20700025306817 -:100BF0002378834208D901F0D3FC336805440133DC -:100C0000B5F5804F3360F2D370BD00BF9925002049 -:100C10008025002001F080BD00F1006000F58040DB -:100C20000068704700F10060920000F5804001F01C -:100C30000BBD0000054B1A68054B1B789B1A8342BD -:100C400002D9104401F0ACBC002070478025002080 -:100C50009925002038B5074D04462868204401F046 -:100C6000A7FC28B928682044BDE8384001F0B8BC8A -:100C700038BD00BF8025002010F0030308D1B0F577 -:100C8000007F05D800F10050A0F5084000687047CB -:100C900000207047014BC058704700BF107AFF1FFB -:100CA000014B1868704700BF002004E070B52A4B64 -:100CB0001C68C4F30B03240C63B140F2134293424B -:100CC00031D040F2194293422FD040F22142934258 -:100CD0002DD10323214A0C2505FB03235D6893F9DD -:100CE000082042F201039C4224D0B4F5805F23D057 -:100CF00041F201039C4221D041F203039C421FD0E8 -:100D000041F207039C4208BF3122441E0C44013DBE -:100D10000B46A3421ED215F9016F581C96B103462B -:100D200000F8016CF5E70123D4E70223D2E73F2264 -:100D30000B4DD6E73322E3E74122E1E75A22E4E70D -:100D40005922E2E72C2584421D7001D9981C5A7063 -:100D5000401A70BD1846FBE7002004E0CC3B0008B9 -:100D6000AC3B0008124B5A8842F201018A4293B20E -:100D700014D0B3F5805F13D041F20102934211D039 -:100D800041F2030293420FD041F2070293420DD188 -:100D90000423084A02EB8303D87870470023F8E75E -:100DA0000123F6E70223F4E70323F2E7002070476C -:100DB000002004E0B83B0008022802BF024B4FF4B9 -:100DC00080529A61704700BF00100240022802BFA3 -:100DD000024B4FF080529A61704700BF00100240F2 -:100DE000022801BF024A536983F48053536170475C -:100DF0000010024010B50023934203D0CC5CC454D1 -:100E00000133F9E710BD000030B5441E14F9010F9D -:100E10000B4660B193F90050854201F1010106D102 -:100E20001AB993F90020801A30BD013AEEE7002A82 -:100E3000F7D1104630BD000002460346981A13F958 -:100E4000011B0029FAD1704702440346934202D0A5 -:100E500003F8011BFAE77047024B1A78024B1A702D -:100E6000704700BF9825002000240020F8B5164CDC -:100E70001648174D174E154F00F096FC21461348A3 -:100E800000F0BEFC24681448626D936B23F40023C9 -:100E9000936301F041F92046104900F0BDFD626DF9 -:100EA000936B43F4002393634FF4E1332B600024EE -:100EB00056F82400B84202D0294600F0D3FB013492 -:100EC000042CF5D1F8BD00BFE43C000894330020A9 -:100ED00084250020FC3B000840420F00103D000824 -:100EE00038B50B4B1A780B4B53F822400A4B9C42F7 -:100EF00005460CD0094B002118461422FFF7A4FF29 -:100F0000056001462046BDE8384000F0ABBB38BD67 -:100F100098250020FC3B0008943300208425002005 -:100F2000FEE7000000B59BB0EFF309816822684638 -:100F3000FFF760FFEFF30583034B9A6B9A6A9A6A97 -:100F40009A6A9A6A9B6AFEE700ED00E000B59BB0E2 -:100F5000EFF3098168226846FFF74CFFEFF3058342 -:100F6000044B9A6B9A6A9A6A9A6A9A6A9A6A9B6A14 -:100F7000FEE700BF00ED00E000B59BB0EFF3098194 -:100F800068226846FFF736FFEFF30583034B5A6B81 -:100F90009A6A9A6A9A6A9A6A9B6AFEE700ED00E08A -:100FA00030B5084D0A4491420BD011F8013B092499 -:100FB0005840013CF7D040F300032B4083EA500037 -:100FC000F7E730BD2083B8ED002304491A465A5094 -:100FD000C8180833802B4260F9D170479C25002047 -:100FE000026843681143016003B11847704700006D -:100FF000024AD36843F0C003D36070470044004006 -:10100000024AD36843F0C003D360704700480040F1 -:10101000024AD36843F0C003D360704700780040B1 -:101020002DE9F041D0F85C64F7683368DA050546CD -:101030009CB20DD5202383F311884FF40071043046 -:10104000FFF7CEFF6FF480733360002383F31188C2 -:10105000202383F3118805F1040814F02F0333D102 -:1010600083F31188380615D5210613D5202383F381 -:10107000118805F1380000F053FA002846DA0821FB -:10108000281DFFF7ADFF4FF67F733B40F360002351 -:1010900083F311887A060ED563060CD5202383F3DB -:1010A0001188EA6C2B6D9A4202D12B6C002B2FD148 -:1010B000002383F31188D5F86424D368002B31D042 -:1010C0001069BDE8F0411847230713D014F0080F4A -:1010D0000CBF00218021E00748BF41F02001A2079A -:1010E00048BF41F04001630748BF41F4807140466A -:1010F000FFF776FFA406736805D595F860142846B7 -:10110000194000F0BDFA3468A4B2A6E77060BEE7EB -:1011100027F040073F041021281D3F0CFFF760FF18 -:10112000F760C5E7BDE8F08108B50348FFF778FF31 -:10113000BDE8084001F07CBB1C26002008B5034830 -:10114000FFF76EFFBDE8084001F072BB842A002063 -:1011500008B50348FFF764FFBDE8084001F068BB2D -:10116000EC2E002010B50E4C0E4A2046002100F057 -:1011700057FA0D4BC4F85C340C4C0D4A2046002144 -:1011800000F04EFA0B4BC4F85C340B4C0B4A0021B8 -:10119000204600F045FA0A4BC4F85C3410BD00BF8D -:1011A0001C260020F10F000800440040842A002083 -:1011B0000110000800480040EC2E0020111000082B -:1011C0000078004038B5394D037C002918BF0D4622 -:1011D000012B0446C0F8645410D1354B984242D1DB -:1011E000344B1A6C42F400321A641A6E42F4003224 -:1011F0001A661B6E0B21262000F06AF82E4BD4F8DD -:101200005C249A422B6802D02C498A424BD12C494B -:1012100001EB5301B1FBF3F3A988080442BF23F0AB -:10122000070003F0070343EA40039360EB8843F0B1 -:1012300040039BB213612B8943F001039BB25361BE -:1012400041F4045343F02C03D36001F4A051002374 -:101250001360B1F5806F136853680CBF7F23FF23C1 -:1012600084F8603438BD174B98420CD1114B1A6C7E -:1012700042F480221A641A6E42F480221A661B6EAF -:101280000B212720B8E7104B9842B7D1094B1A6CB5 -:1012900042F080421A641A6E42F080421A661B6E57 -:1012A0000B215220A8E70949B2E700BF2C3C0008F7 -:1012B0001C260020003802400010014000140140AC -:1012C00000BD0105842A0020EC2E002080DE800273 -:1012D00000F1604300F01F02400903F5614309017A -:1012E0008000C9B200F1604083F8001300F561404E -:1012F00001239340C0F8803103607047F8B515466C -:1013000082680669AA420B46816938BF8568761AE9 -:10131000B542044607D218462A46FFF76BFDA3697B -:101320002B44A3610DE011D932461846FFF762FD48 -:10133000AF1B3A46E1683044FFF75CFDE2683A448F -:10134000A261A3685B1BA3602846F8BD18462A4625 -:10135000FFF750FDE368E4E783682DE9F0410446B8 -:1013600093421546266938BF85684069361AB542EA -:101370000F4606D22A46FFF73DFD63692B446361A1 -:101380000DE012D93246A5EB0608FFF733FD4246C1 -:10139000B919E068FFF72EFDE26842446261A36874 -:1013A0005B1BA3602846BDE8F0812A46FFF722FDBB -:1013B000E368E4E710B50A440024C361029B0060BF -:1013C00040608460C160816141610261036210BD5F -:1013D00008B582694369934201D1826882B9826803 -:1013E000013282605A1C42611970426903699A4253 -:1013F00001D3C3684361002100F0AAFE002008BDAC -:101400004FF0FF3008BD000070B5202304460E46A3 -:1014100083F31188A568A5B1A368A269013BA36005 -:10142000531CA36115782269934224BFE368A3612A -:10143000E3690BB120469847002383F311882846BF -:1014400070BD3146204600F073FE0028E2DA85F3D5 -:10145000118870BD2DE9F74F05460F4690469A4614 -:10146000D0F81C90202686F311884FF0000B14460C -:1014700064B1224639462846FFF740FF034668B963 -:101480005146284600F054FE0028F1D0002383F393 -:101490001188A8EB040003B0BDE8F08FB9F1000F8C -:1014A00003D001902846C847019B8BF31188E41AAA -:1014B0001F4486F31188DBE7C16081614161C3612C -:1014C0001144009B006040608260016103627047CC -:1014D000F8B504460E461746202383F31188A56805 -:1014E000A5B1A368013BA36063695A1C62611E70C9 -:1014F000236962699A4224BFE3686361E3690BB1BF -:1015000020469847002080F31188F8BD39462046D0 -:1015100000F00EFE0028E2DA85F31188F8BD000025 -:10152000836942699A4210B501D182687AB98268AA -:10153000013282605A1C82611C7803699A4201D38D -:10154000C3688361002100F003FE204610BD4FF008 -:10155000FF3010BD2DE9F74F05460F4690469A46DD -:10156000D0F81C90202686F311884FF0000B14460B -:1015700064B1224639462846FFF7EEFE034668B9B5 -:101580005146284600F0D4FD0028F1D0002383F313 -:101590001188A8EB040003B0BDE8F08FB9F1000F8B -:1015A00003D001902846C847019B8BF31188E41AA9 -:1015B0001F4486F31188DBE702684368114301602A -:1015C00003B11847704700001430FFF743BF000015 -:1015D0004FF0FF331430FFF73DBF00003830FFF706 -:1015E000B9BF00004FF0FF333830FFF7B3BF000042 -:1015F0001430FFF709BF00004FF0FF311430FFF740 -:1016000003BF00003830FFF763BF00004FF0FF3228 -:101610003830FFF75DBF000000207047FFF7A2BD24 -:1016200037B50F4B0360002343608360C360012321 -:1016300004460374154600900B464FF4007200F107 -:101640005C011430FFF7B6FE00942B464FF4007295 -:1016500004F5177104F13800FFF72EFF03B030BD19 -:10166000403C000810B52023044683F31188FFF79F -:10167000A9FD02232374002383F3118810BD000009 -:1016800038B5C36904460D461BB904210844FFF769 -:1016900093FF294604F11400FFF79AFE002806DAAA -:1016A000201D4FF48061BDE83840FFF785BF38BD8D -:1016B000026843681143016003B118477047000096 -:1016C00013B5446BD4F894341A681178042915D1F1 -:1016D000217C022912D11979128901238B401342EE -:1016E0000CD101A904F14C0001F058FED4F8944447 -:1016F000019B21790246206800F0DAF902B010BDA2 -:10170000143001F0DBBD00004FF0FF33143001F066 -:10171000D5BD00004C3001F0ADBE00004FF0FF33EE -:101720004C3001F0A7BE0000143001F0A9BD00004C -:101730004FF0FF31143001F0A3BD00004C3001F038 -:1017400079BE00004FF0FF324C3001F073BE000054 -:10175000D0F8942438B5136819780429054601D0C7 -:10176000012038BD017C0229FAD112795C8901205F -:1017700090400440F4D105F1140001F03BFD024615 -:101780000028EDD0D5F894544FF480732868697917 -:1017900000F07CF9204638BD406BFFF7D9BF000050 -:1017A00000207047704700007FB5124B0360002394 -:1017B00043608360C360012502260F4B0574044615 -:1017C0000290019300F18402294600964FF4807341 -:1017D000143001F0EBFC094B0193029400964FF496 -:1017E000807304F52372294604F14C0001F0B2FD28 -:1017F00004B070BD683C000899170008C1160008C5 -:101800000B68202282F311880A7903EB820290612F -:101810004A79093243F822008A7912B103EB820334 -:10182000986102230374C0F89414002383F3118891 -:101830007047000038B5037F044613B190F8543068 -:10184000ABB9201D01250221FFF732FF04F114007E -:1018500025776FF0010100F087FC84F8545004F103 -:101860004C006FF00101BDE8384000F07DBC38BD90 -:1018700010B5012104460430FFF71AFF0023237737 -:1018800084F8543010BD000038B5044600251430EB -:1018900001F0A4FC04F14C00257701F073FD201D3C -:1018A00084F854500121FFF703FF2046BDE838407B -:1018B000FFF74EBF90F8443003F06003202B19D19E -:1018C00090F84520212A0AD0222A4FF000030ED09A -:1018D000202A0FD1084A82630722C26304E0064B24 -:1018E00083630723C363002303640120704783637A -:1018F000C363F9E70020704701240020D0F8943436 -:1019000037B51A681178042904461AD1017C0229D6 -:1019100017D11979128901238B40134211D100F19B -:101920004C05284601F0EEFD58B101A9284601F00A -:1019300035FDD4F89444019B21790246206800F0DB -:10194000B7F803B030BD000000EB8103F7B59C6928 -:1019500005460E46F4B1202383F3118805EB860774 -:10196000201D0821FFF7A4FEFB685B691B684C344F -:1019700013B1204601F020FD01A9204601F00EFD23 -:10198000024648B1019B3146284600F091F80023F9 -:1019900083F3118803B0F0BDFB685A691268002A0E -:1019A000F5D01B8A013B1340F1D105F14402EAE76F -:1019B000093138B550F82140DCB1202383F3118878 -:1019C000D4F894241368527903EB8203DB689B6993 -:1019D0005D6845B104216018FFF76AFE294604F1ED -:1019E000140001F011FC2046FFF7B2FE002383F340 -:1019F000118838BD7047000000F0D2BF012303708A -:101A000000234360C36183620362C3624362036372 -:101A1000038143817047000038B50446202383F3D7 -:101A2000118800254160C56005614561856100F050 -:101A3000C7FF0223237085F3118838BD70B500EB12 -:101A4000810305465069DA600E46144618B110222B -:101A50000021FFF7F9F9A06918B110220021FFF762 -:101A6000F3F931462846BDE8704001F073B8000034 -:101A7000028902F001020281428902F001024281E0 -:101A8000002202614261826101F0F8B8F0B400EB1B -:101A900081044789E4680125A4698D403D4345815F -:101AA00023600023A2606360F0BC01F013B9000062 -:101AB000F0B400EB81040789E468012564698D4076 -:101AC0003D43058123600023A2606360F0BC01F008 -:101AD0008DB9000070B50223002504460370A0F8FC -:101AE0004C5080F84E5080F84F5005814581C560BC -:101AF00005614561856180F8345000F0C7FF636877 -:101B00001B6823B129462046BDE87040184770BDC8 -:101B1000436802781B6880F85020052202700BB1E0 -:101B20000421184770470000436890F850201B6854 -:101B300002700BB1052118477047000090F834304F -:101B400070B5044613B1002380F8343004F1440228 -:101B5000204601F0B5F863689B6863BB94F8445075 -:101B600015F0600615D194F8453005F07F0545EA7B -:101B7000032540F202339D4200F00E815BD8022D16 -:101B800000F0DC803FD8002D00F08780012D00F0B0 -:101B9000CF800021204601F0EBFA0021204601F021 -:101BA000DDFA63681B6813B10621204698470623B7 -:101BB00084F8343070BD204698470028CED094F881 -:101BC0004B2094F84A3043EA0223E26B934238BF39 -:101BD000E36394F94430E56B002B4FF0200380F26F -:101BE000FD80002D00F0EC80092284F8342083F37E -:101BF00011880021E36BA26B2046FFF759FF0023F9 -:101C000083F3118870BDB5F5817F00F0B180B5F523 -:101C1000407F49D0B5F5807FBBD194F84630012B89 -:101C2000B7D1B4F84C3023F00203A4F84C30A663CB -:101C3000E6632664C3E740F201639D421ED8B5F512 -:101C4000C06F3BD2B5F5A06FA3D1B4F84430B3F563 -:101C5000A06F0ED194F8463084F84E30204600F044 -:101C60006DFF63681B6813B1012120469847032369 -:101C700023700023A363E3632364A0E7B5F5106F2B -:101C800032D040F602439D4252D0B5F5006F80D16C -:101C900004F14F03A363012324E004F14C03A36385 -:101CA0000223E36325648AE794F84630012B7FF42E -:101CB00070AFB4F84C3043F00203B6E794F8492013 -:101CC000616894F848304D6894F8471043EA02235D -:101CD000204694F84620A84700283FF45AAF4368AE -:101CE000A3630368E363A4E72378042B10D12023C4 -:101CF00083F311882046FFF7BBFE86F311886368E3 -:101D000084F84F601B68032121700BB1204698476F -:101D100094F84630002BACD084F84F300423237065 -:101D200063681B68002BA4D0022120469847A0E7D7 -:101D3000374BA3630223E36300239DE794F8481025 -:101D400011F0800F204601F00F010ED000F0AAFF25 -:101D5000012806D002287FF41CAF2E4BA363E0635A -:101D600067E72D4BA363E56363E700F08DFFEFE7C3 -:101D700094F84630002B7FF40CAF94F8483013F001 -:101D80000F013FF476AF1A06204602D501F004FA9F -:101D90006FE701F0F7F96CE794F84630002B7FF419 -:101DA000F8AE94F8483013F00F013FF462AF1B0611 -:101DB000204602D501F0DCF95BE701F0CFF958E7E6 -:101DC000142284F8342083F311882B462A462946AE -:101DD0002046FFF75BFE85F3118870BD5DB11522CB -:101DE00084F8342083F311880021E36BA26B204632 -:101DF000FFF74CFE03E70B2284F8342083F31188AD -:101E00002B462A4629462046FFF752FEE3E700BF4D -:101E1000983C0008903C0008943C000838B590F8C5 -:101E200034300446152B29D8DFE803F03E28282853 -:101E300028283E28280B2939282828282828282817 -:101E40003E3E90F84B1090F84A20C36B42EA0122C4 -:101E50009A4214D9C268128AB3FBF2F502FB153517 -:101E60006DB9202383F311882B462A462946FFF7B4 -:101E70001FFE85F311880A2384F8343038BD1423FB -:101E800084F83430202383F3118800231A4619463E -:101E90002046FFF7FBFD002383F3118838BD036C58 -:101EA00003B198470023E7E7002101F061F9002121 -:101EB000204601F053F963681B6813B106212046E0 -:101EC00098470623D8E7000090F83420152A38B543 -:101ED000044622D80123934040F6416213421DD1AB -:101EE00013F480150FD19B0217D50B2380F83430E3 -:101EF000202383F311882B462A462946FFF7D8FD75 -:101F000085F3118838BDC3689B695B682BB9036C86 -:101F100003B19847002384F8343038BD002101F024 -:101F200027F90021204601F019F963681B6813B1F5 -:101F30000621204698470623EDE70000024B0022C9 -:101F40001B605B609A607047543300200023037469 -:101F50008268054B1B6899689142FBD25A680360FE -:101F600042601060586070475433002008B5202349 -:101F700083F31188037C032B05D0042B0DD02BB9E0 -:101F800083F3118808BD436900221A604FF0FF33C4 -:101F90004361FFF7DBFF0023F2E790E80C001A60D3 -:101FA00002685360F2E70000002303748268054B67 -:101FB0001B6899689142FBD85A68036042601060C0 -:101FC0005860704754330020054B1969087418682D -:101FD00002681A605360186101230374FEF794B914 -:101FE0005433002030B54B1C87B005460A4C10D046 -:101FF00023690A4A01A800F0D3F82846FFF7E4FF56 -:10200000049B13B101A800F007F92369586907B0D0 -:1020100030BDFFF7D9FFF8E7543300206D1F0008EB -:1020200038B50C4D41612B6981689A68914204462C -:1020300003D8BDE83840FFF789BF1846FFF786FF91 -:1020400001232C61014623742046BDE83840FEF789 -:102050005BB900BF54330020044B1A681B699068B9 -:102060009B68984294BF00200120704754330020A1 -:1020700010B5084C236820691A6822605460012258 -:1020800023611A74FFF790FF01462069BDE81040F4 -:10209000FEF73AB954330020826002220274002213 -:1020A000427470478368A3F17C0243F80C2C0269E8 -:1020B00043F83C2C426943F8382C074A43F81C2C5F -:1020C000C26843F8102C022203F8082C002203F8FF -:1020D000072CA3F1180070472103000810B5202336 -:1020E00083F31188FFF7DEFF00210446FFF798FF16 -:1020F000002383F31188204610BD0000024B1B69AA -:1021000058610F20FFF760BF54330020202383F372 -:102110001188FFF7F3BF000008B50146202383F3C1 -:1021200011880820FFF75EFF002383F3118808BDA4 -:1021300049B1064B42681B6918605A6013604360DE -:102140000420FFF74FBF4FF0FF307047543300209B -:102150000368984206D01A680260506059611846B8 -:10216000FFF7F4BE7047000038B504460D462068FE -:10217000844200D138BD036823605C604561FFF78D -:10218000E5FEF4E7054B03F114025A619A614FF042 -:10219000FF32DA6100221A62704700BF5433002018 -:1021A000F8B503611A4BC2605C6A1A4B1A460229E1 -:1021B00052F8145F38BF0221954206461F460AD1E5 -:1021C000586198611C620560456081600819BDE82E -:1021D000F84001F0B9B9186AAB68241A0C1902D397 -:1021E000E41A2D6804E09C4202D2204401F0BCF9BC -:1021F000AB689C42F4D86B68736035601E606E609B -:10220000B460A9684FF0FF33091BA960FB61F8BDFA -:10221000000C00405433002010B41A4C234653F8ED -:10222000141F814210D0416802680A600268516040 -:102230009A424FF00001C16003D0936881680B445B -:1022400093605DF8044B70470A68626100209A420F -:102250005360C86003D15DF8044B01F07FB9936807 -:10226000886803449360084A206A526A121A9342AB -:10227000E7D9991A012998BF931C18445DF8044BBB -:1022800001F072B954330020000C00400020704768 -:10229000FEE70000704700004FF0FF30704700007D -:1022A000022906D0032906D00129064818BF0020BC -:1022B000704705487047032A9ABF044800EBC200E4 -:1022C000002070476C3D0008203D000808240020D5 -:1022D00070B59AB001AD064608462946144600F08E -:1022E00095F82846FEF7A8FDC0B2431C5B0086E8BF -:1022F0001800237003236370002302341946DAB2F6 -:10230000904204F1020401D81AB070BDEA5C04F8EE -:10231000022C04F8011C0133F1E7000008B520236A -:1023200083F311880348FFF7E9FA002383F3118848 -:1023300008BD00BF9433002010B50446052916D807 -:10234000DFE801F016150316161D202383F311880C -:102350000E4A0121FFF772FB20460D4A0221FFF7CA -:102360006DFB0C48FFF790FA002383F3118810BD32 -:10237000202383F311880748FFF75CFAF4E7202352 -:1023800083F311880348FFF773FAEDE79C3C0008DC -:10239000C03C00089433002038B50C4D0C4C0D495E -:1023A0002A4604F10800FFF793FF05F1CA0204F181 -:1023B00010000949FFF78CFF05F5CA7204F11800F7 -:1023C0000649BDE83840FFF783BF00BF5C380020F6 -:1023D00008240020EC3C0008F93C0008073D0008F8 -:1023E00070B5044608460D46FEF726FDC6B22046E7 -:1023F000013403780BB9184670BD32462946FEF702 -:1024000003FD0028F3D1012070BD00002DE9F84F35 -:1024100005460C46FEF710FD2B49C6B22846FFF7CD -:10242000DFFF08B10336F6B228492846FFF7D8FF88 -:1024300008B11036F6B2632E0DD8DFF88C80DFF8C5 -:102440008C90234FDFF890A0DFF890B02E7846B93B -:102450002670BDE8F88F29462046BDE8F84F01F008 -:1024600099BB252E2CD1072241462846FEF7CCFCED -:1024700058B9DBF800302360DBF804306360BBF848 -:102480000830238107350A34E0E708224946284608 -:10249000FEF7BAFCA0B90F4BA21C13F8011F0909E3 -:1024A0005345C95D02F8021C197801F00F0102F1D1 -:1024B0000202C95D02F8031CEFD118340835C5E7E4 -:1024C000267001350134C1E78C3D0008073D000846 -:1024D0009F3D00080F7AFF1F1B7AFF1F943D0008E5 -:1024E000BFF34F8F024AD368DB03FCD4704700BFB1 -:1024F000003C024008B5094B1B7873B9FFF7F0FFA9 -:10250000074B1A69002ABFBF064A5A6002F1883297 -:102510005A601A6822F480621A6008BDBA3A002034 -:10252000003C02402301674508B50B4B1B7893B96B -:10253000FFF7D6FF094B1A6942F000421A611A6888 -:1025400042F480521A601A6822F480521A601A68A3 -:1025500042F480621A6008BDBA3A0020003C024092 -:10256000172870B513D80B4A0B4C137863B90B4E70 -:102570004FF0006144F8231056F823500133182B14 -:102580002944F7D10123137054F8200070BD0020B6 -:1025900070BD00BF1C3B0020BC3A0020B03D0008CD -:1025A000014B53F820007047B03D000818207047D9 -:1025B000172810B5044601D9002010BDFFF7D0FF41 -:1025C000064B53F824301844C21A0BB9012010BD31 -:1025D00012680132F0D1043BF6E700BFB03D0008BD -:1025E000172810B5044629D8FFF77AFFFFF782FFB6 -:1025F0001349F323CB600C23B0FBF3F203FB12006F -:10260000D30143EAC003DBB243F4007343F0020397 -:102610000B610B6943F480330B61FFF761FF2046C8 -:10262000FFF79EFF074B53F8241000F0DDF8FFF78B -:102630007BFF2046BDE81040FFF7BABF002010BD69 -:10264000003C0240B03D00082DE9F84312F00103C0 -:10265000154640D18218B2F1026F3CD22C4B1B6858 -:1026600013F0010337D02B4CFFF744FFF323E36053 -:10267000FFF736FF40F20127032D01D9830713D05E -:10268000244C0F46401A40F20118EB1B0B44012B5F -:1026900000EB0706236924D823F001032361FFF729 -:1026A00043FF0120BDE8F883236923F440732361CD -:1026B00023693B43236151F8046B0660BFF34F8FDE -:1026C000FFF70EFF03689E4208D0236923F0010341 -:1026D0002361FFF729FF0020BDE8F883043D0430A3 -:1026E000CAE723F440732361236943EA08032361A3 -:1026F000B94637F8023B3380BFF34F8FFFF7F0FE48 -:102700003688B9F80030B6B2B342BED0DDE700BFBC -:1027100000380240003C0240084908B50B7828B157 -:1027200053B9FFF7E7FE01230B7008BD23B1BDE8E5 -:1027300008400870FFF7F8BE08BD00BFBA3A002095 -:1027400010B50244064B0439D2B2904200D110BDFC -:10275000441C00B253F8200041F8040FE0B2F4E743 -:1027600050280040104B30B51C6F240407D41C6F58 -:1027700044F400741C671C6F44F400441C670B4C49 -:10278000236843F4807323600244094B0439D2B2B6 -:10279000904200D130BD441C00B251F8045F43F8B0 -:1027A0002050E0B2F4E700BF003802400070004063 -:1027B0005028004007B5012201A90020FFF7C0FF03 -:1027C000019803B05DF804FB13B50446FFF7F2FF70 -:1027D000A04206D002A9012241F8044D0020FFF7D3 -:1027E000C1FF02B010BD000070470000034B1B6822 -:1027F0009B0042BF024B01221A707047743802409E -:102800001D3B0020014B1878704700BF1D3B002086 -:10281000064A536823F001035360EFF309836833DA -:1028200083F30988002383F31188704730EF00E0B9 -:1028300010B5202383F31188104B5B6813F40063F9 -:1028400018D0F1EE103AEFF309844FF0807344F89A -:102850004C3C0B4BDB6844F8083CA4F1680383F361 -:102860000988FFF7F9FB18B1064B44F8503C10BD3E -:10287000054BFAE783F3118810BD00BF00ED00E0BF -:1028800030EF00E031030008340300087047000017 -:10289000FEE70000084A094B09498B4204D3094A64 -:1028A0000021934205D3704752F8040F43F8040BFC -:1028B000F3E743F8041BF4E78C3F0008903D002049 -:1028C000903D0020903D0020836D30B500229D6832 -:1028D000446D11464FF0FF3004EB42130132954234 -:1028E000C3F80019C3F81019C3F80809C3F8001B8E -:1028F000C3F8101BC3F8080BEED24FF00113C4F855 -:102900001C3830BD890141F02001016103699B063B -:10291000FCD4122000F0B4BE204B03EB80022DE962 -:10292000F047D2F80CE05D6DDEF81420461CD2F8BA -:1029300000C005EB063605EB4018516861450BD326 -:10294000D5F83428012303FA00F022EA0000C5F884 -:1029500034081846BDE8F087BEF81040ACEB010320 -:10296000A34228BF2346D8F81849A4B2B3EB840F7A -:1029700010D894681F46A4F1040959F804AFC6F8AA -:1029800000A0042F01D9043FF7E71C440B449460D6 -:102990005360D2E70020BDE8F08700BF203B002055 -:1029A00010B5054C2046FFF729F84FF0A0436365AA -:1029B000024BA36510BD00BF203B0020343E000841 -:1029C0000378012B70B5054650D12A4B446D9842CF -:1029D0001BD1294B5A6B42F080025A635A6D42F068 -:1029E00080025A655A6D5A6942F080025A615A69EA -:1029F00022F080025A610E2143205B69FEF768FCD9 -:102A00001E4BE3601E4BC4F800380023C4F8003EA0 -:102A1000C02323606E6D4FF45023A3633369002BF2 -:102A2000FCDA012333610C2000F02AFE3369DB0756 -:102A3000FCD4122000F024FE3369002BFCDA0026BF -:102A4000A6602846FFF740FF6B68C4F81068DB6893 -:102A5000C4F81468C4F81C684BB90A4BA3614FF062 -:102A6000FF336361A36843F00103A36070BD064BAD -:102A7000F4E700BF203B0020003802404014004033 -:102A800003002002003C30C0083C30C0F8B5446D63 -:102A9000054600212046FFF735FFA96D00234FF0C2 -:102AA00001128F68C4F834384FF00066C4F81C284F -:102AB0004FF0FF3004EB431201339F42C2F800692C -:102AC000C2F8006BC2F80809C2F8080BF2D20B6812 -:102AD0006A6DEB65636210231361166916F01006C8 -:102AE000FBD1122000F0CCFDD4F8003823F4FE63B3 -:102AF000C4F80038A36943F4402343F01003A361F2 -:102B00000923C4F81038C4F814380A4BEB604FF0AE -:102B1000C043C4F8103B084BC4F8003BC4F810692C -:102B2000C4F80039EB6D03F1100243F48013EA6539 -:102B3000A362F8BD103E000840800010426D90F87E -:102B40004E10D2F8003823F4FE6343EA0113C2F8B2 -:102B5000003870472DE9F0410EB200EB86080D46B3 -:102B6000D8F80C100F6807F00303022B50D0032B8A -:102B700050D03D4A3D4F012B18BF1746446D4FEAD8 -:102B8000451E04EB0E030022C3F8102B8A6905F1E1 -:102B9000100C002A40D04A8A05F158035B013A43E1 -:102BA000E2500123D4F81C2803FA0CF31343A64483 -:102BB0004A69C4F81C380023CEF8103905F13F03E8 -:102BC000002A39D00A8A898B9208012988BF4A4392 -:102BD000C16D04EB8303561841EA0242C6652946DB -:102BE0005A602046FFF78EFED8F80C301B8A43EA65 -:102BF00085531F4305F148035B01E7500123D4F8D7 -:102C00001C2803FA05F51543C4F81C58BDE8F081EB -:102C1000174FB3E7174FB1E704EB4613D3F8002B78 -:102C200022F40042C3F8002BD4F81C28012303FA35 -:102C30000CF322EA0303BAE704EB83030E4A5A605B -:102C400004EB461629462046FFF75CFED6F800390D -:102C500023F40043C6F80039D4F81C38012202FAE4 -:102C600005F523EA0505CFE7008000100080041079 -:102C70000080081000800C1000040002826D1268B1 -:102C8000C265FFF721BE00005831436D49015B5812 -:102C900013F4004004D013F4001F14BF01200220DD -:102CA000704700004831436D49015B5813F4004000 -:102CB00004D013F4001F14BF01200220704700004D -:102CC00000EB8101CB68196A0B6813604B68536095 -:102CD0007047000000EB810330B5DD68AA69136816 -:102CE000D36019B9402B84BF402313606B8A1468EA -:102CF000426D1C44013CB4FBF3F46343033323F003 -:102D0000030302EB411043EAC44343F0C043C0F85D -:102D1000103B2B6803F00303012B09B20ED1D2F84C -:102D2000083802EB411013F4807FD0F8003B14BF49 -:102D300043F0805343F00053C0F8003B02EB4112D4 -:102D4000D2F8003B43F00443C2F8003B30BD000022 -:102D50002DE9F041244D6E6D06EB40130446D3F887 -:102D6000087BC3F8087B38070AD5D6F8143819074A -:102D700006D505EB84032146DB6828465B68984747 -:102D8000FA072FD5D6F81438DB072BD505EB8403CB -:102D9000D968CCB98B69488A5E68B6FBF0F200FB53 -:102DA00012628AB91868DA6890420DD2121A83E862 -:102DB0001400202383F311880B482146FFF78AFF74 -:102DC00084F31188BDE8F081012303FA04F26B89D2 -:102DD00023EA02036B81CB6823B121460248BDE898 -:102DE000F0411847BDE8F081203B002000EB810353 -:102DF00070B5DD68436D6C692668E6604A0156BBB4 -:102E00001A444FF40020C2F810092A6802F00302A5 -:102E1000012A0AB20ED1D3F8080803EB421410F4C9 -:102E2000807FD4F8000914BF40F0805040F000507B -:102E3000C4F8000903EB4212D2F8000940F0044044 -:102E4000C2F80009D3F83408012202FA01F1014363 -:102E5000C3F8341870BD19B9402E84BF40202060DB -:102E600020682E8A841940F00050013C1A44B4FBBB -:102E7000F6F440EAC440C6E7F8B504461E48456D7E -:102E800005EB4413D3F80869C3F80869F10717D5AF -:102E9000D5F81038DA0713D500EB8403D9684B69ED -:102EA0001F68DA68974218D2D21B00271A605F6049 -:102EB000202383F311882146FFF798FF87F31188B9 -:102EC000330617D5D5F834280123A340134211D077 -:102ED0002046BDE8F840FFF71FBD012303FA04F2C6 -:102EE000038923EA020303818B68002BE8D0214683 -:102EF0009847E5E7F8BD00BF203B002096482DE944 -:102F0000F84F456D6E69AB691E4016F4805F6E61C7 -:102F1000044605D0FEF7DEFDBDE8F84FFFF788BC9C -:102F2000002E12DAD5F8003E8B489B071EBFD5F85D -:102F3000003E23F00303C5F8003ED5F8043823F023 -:102F40000103C5F80438FEF7EFFD370502D58248C6 -:102F5000FEF7DEFDB0040CD5D5F8083813F0060FE7 -:102F6000EB6823F470530CBF43F4105343F4A053A5 -:102F7000EB60310704D56368DB680BB1764898478E -:102F8000F2025AD4B3020CD5D4F85480DFF8C8A1A9 -:102F900000274FF00109A36D9B68F9B28B4280F0C6 -:102FA0008780F70619D5616D0A6AC2F30A1702F025 -:102FB0000F0302F4F012B2F5802F00F0A180B2F5F9 -:102FC000402F0AD104EB830301F58051DB68186AB6 -:102FD00000231A469F4240F087803003D5F81848F6 -:102FE00013D5E10302D50020FFF7B2FEA20302D5FC -:102FF0000120FFF7ADFE630302D50220FFF7A8FE14 -:10300000270302D50320FFF7A3FE750384D5E0074D -:1030100002D50020FFF730FFA10702D50120FFF7FE -:103020002BFF620702D50220FFF726FF23077FF55B -:1030300073AF0320FFF720FF6EE7D4F85480DFF86A -:1030400018A100274FF00109A36D9B685FFA87FB69 -:103050005B4597D308EB4B13D3F8002902F44022C9 -:10306000B2F5802F22D1D3F80029002A1EDAD3F836 -:10307000002942F09042C3F80029D3F80029002A21 -:10308000FBDB5946606DFFF73DFC228909FA0BF323 -:1030900022EA0303238104EB8B03DB689B6813B1F3 -:1030A0005946504698475846FFF736FC0137CBE75C -:1030B00008EB4112D2F8003B03F44023B3F5802F14 -:1030C00010D1D2F8003B002B0CDA628909FA01F327 -:1030D00022EA0303638104EB8103DB68DB680BB145 -:1030E00050469847013756E79C0708BF0A68072BE8 -:1030F00098BF027003F101039CBF120A013069E717 -:10310000023304EB830201F5805152689069026832 -:10311000D0F808C04068A2EB000E0022104697428B -:103120000AD104EB830463689B699A683A449A6005 -:103130005A6817445F6050E712F0030F08BF086831 -:10314000964588BF8CF8000002F1010284BF000A96 -:103150000CF1010CE3E700BF203B0020436D03EBC3 -:103160004111D1F8003B43F40013C1F8003B704714 -:10317000436D03EB4111D1F8003943F40013C1F85A -:1031800000397047436D03EB4111D1F8003B23F444 -:103190000013C1F8003B7047436D03EB4111D1F8B8 -:1031A000003923F40013C1F80039704730B5039C8F -:1031B0000172043304FB0325C361049B03630021F4 -:1031C000059B00604060C1604261026185610462EC -:1031D00042628162C162436330BD00000022416AE5 -:1031E00041610161C2608262C2626FF00101FEF75B -:1031F000BBBF000003694269934203D1C2680AB1B0 -:1032000000207047181D704703691960C2680132B9 -:10321000C260C269134482690361934224BF436A56 -:1032200003610021FEF794BF38B504460D46E368FC -:103230003BB16269131D1268A3621344E36200206C -:1032400038BD237A33B929462046FEF771FF00289E -:10325000EDDA38BD6FF00100FBE70000C368C2691A -:10326000013BC3604369134482694361934224BFB5 -:10327000436A436100238362036B03B118477047BD -:1032800070B52023044683F31188866A3EB9FFF7A0 -:10329000CBFF054618B186F31188284670BDA36A96 -:1032A000E26A13F8015BA362934202D32046FFF760 -:1032B000D5FF002383F31188EFE700002DE9F84FD5 -:1032C00004460E4690469946202787F3118800252C -:1032D000AA46D4F828B0BBF1000F09D149462046D0 -:1032E000FFF7A2FF20B18BF311882846BDE8F88FC5 -:1032F000A16AE36AA8EB050B5B1A9B4528BF9B46B6 -:10330000BBF1400F1BD9334601F1400251F8040BC9 -:1033100043F8040B9142F9D1A36A40334036A362CB -:103320004035A26AE36A9A4202D32046FFF796FF2D -:103330008AF311884545D8D287F31188C9E730460A -:103340005A46FDF757FDA36A5B445E44A3625D44A1 -:10335000E7E7000010B5029C0172043303FB04216F -:10336000C36100238362C362039B0363049B006009 -:103370004060C460426102618161046242624363F1 -:1033800010BD0000026AC260426A4261026100220E -:103390008262C2626FF00101FEF7E6BE4369026914 -:1033A0009A4203D1C2680AB100207047184650F80B -:1033B000043B0B6070470000C368C2690133C360FF -:1033C0004369134482694361934224BF436A436162 -:1033D0000021FEF7BDBE000038B504460D46E36887 -:1033E0003BB123691A1DA262E2691344E362002023 -:1033F00038BD237A33B929462046FEF799FE0028C6 -:10340000EDDA38BD6FF00100FBE7000003691960D9 -:10341000C268013AC260C26913448269036193427F -:1034200024BF436A036100238362036B03B118471F -:103430007047000070B5202304460E4683F31188C0 -:10344000856A35B91146FFF7C7FF10B185F31188BA -:1034500070BDA36A1E70A36AE26A01339342A3623D -:1034600004D3E16920460439FFF7D0FF002080F340 -:10347000118870BD2DE9F84F04460D4691469A46D5 -:103480004FF0200888F311880026B346A76A4FB989 -:1034900051462046FFF7A0FF20B187F31188304640 -:1034A000BDE8F88FA06AE76AA9EB06033F1A9F42BE -:1034B00028BF1F46402F1BD905F1400355F8042BA8 -:1034C00040F8042B9D42F9D1A36A4033A3624036F1 -:1034D000A26AE36A9A4204D3E16920460439FFF7FD -:1034E00095FF8BF311884E45D9D288F31188CDE72B -:1034F00029463A46FDF77EFCA36A3B443D44A3625D -:103500003E44E5E7026943699A4203D1C3681BB9A7 -:10351000184670470023FBE7836A002BF8D0043B72 -:103520009B1AF5D01360C368013BC360C3691A449A -:10353000836902619A4224BF436A03610023836264 -:103540000123E5E700F034B9034B002258631A6108 -:103550000222DA60704700BF000C0040014B0022DD -:10356000DA607047000C0040014B5863704700BFA1 -:10357000000C0040FEE7000010B5174CFEF7DEFC23 -:10358000FEF700FE802215492046FEF785FD012347 -:1035900044F8180C0374124B124AD96821F4E06104 -:1035A0000904090C0A431049DA60CA6842F08072C3 -:1035B000CA600E490A6842F001020A601022DA77F6 -:1035C000202283F82220002383F3118862B6084862 -:1035D000BDE81040FEF782BD7C330020403E00086D -:1035E00000ED00E00003FA05F0ED00E0001000E05F -:1035F000483E00082DE9F84F1F4CDFF880906569C0 -:1036000004F114074FF00008D9F82430266AAA689C -:103610009E1B96421DD34FF0200AAA68236AD5F854 -:103620000CB0134423622B68BB425F60A6EB02061A -:103630006361C5F80C8001D1FFF790FF88F3118812 -:103640002869D8478AF311886569AB689E42E4D23D -:10365000DAE76269BA420CD0916823628E1B9660E9 -:10366000A86802282CBF1818981CBDE8F84FFFF76F -:103670007BBFBDE8F88F00BF54330020000C004032 -:10368000034B59685A68521A9042FBD8704700BFE2 -:10369000001000E04B6843608B688360CB68C360B8 -:1036A0000B6943614B6903628B6943620B6803607A -:1036B0007047000008B5224B22481A6940F2FF11FA -:1036C0000A431A611A6922F4FF7222F001021A6198 -:1036D0001A691A6B0A431A631A6D0A431A651A4A61 -:1036E0001B6D1146FFF7D6FF184802F11C01FFF7CA -:1036F000D1FF174802F13801FFF7CCFF154802F15E -:103700005401FFF7C7FF144802F17001FFF7C2FF31 -:10371000124802F18C01FFF7BDFF114802F1A80128 -:10372000FFF7B8FF0F4802F1C401FFF7B3FF0E48DF -:1037300002F1E001FFF7AEFFBDE8084000F0A4B8D9 -:103740000038024000000240683E000800040240C9 -:1037500000080240000C0240001002400014024029 -:1037600000180240001C02400020024008B500F092 -:10377000FFF9FFF701FFFFF739F8BDE80840FEF752 -:103780000BBE000070470000084B1A69920710B585 -:1037900008D500241C61202383F31188FFF72AFF3A -:1037A00084F31188BDE81040FFF742B8000C0040D8 -:1037B000104B1A6C42F008021A641A6E42F00802AA -:1037C0001A660D4A1B6E936843F0080393600B4B17 -:1037D00053229A624FF0FF32DA6200229A615A63F2 -:1037E000DA605A6001225A6108211A603220FDF71E -:1037F0006FBD00BF00380240002004E0000C004014 -:103800001F4B1A696FEAC2526FEAD2521A611A69E3 -:10381000C2F308021A614FF0FF301A695A69586101 -:1038200000215A6959615A691A6A62F080521A6213 -:103830001A6A02F080521A621A6A5A6A58625A6AFE -:1038400059625A6A1A6C42F080521A641A6E42F037 -:1038500080521A661A6E0B4A106840F4807010602D -:10386000186F00F44070B0F5007F1EBF4FF4803039 -:1038700018671967536823F40073536000F058B950 -:103880000038024000700040324B4FF080521A6402 -:10389000314A4FF4404111601A6842F001021A6047 -:1038A0001A689207FCD59A6822F003029A60294BA5 -:1038B00019469A6812F00C02FBD1186800F0F90062 -:1038C00018609A601A6842F480321A600B689B0391 -:1038D000FCD54B6F43F001034B671E4B5A6F9007AB -:1038E000FCD51E4A5A601A6842F080721A601A4A61 -:1038F00053685904FCD5174B1A689201FCD5184A35 -:103900009A600322C3F88C20164B1A68164B9A4211 -:10391000164B1BD1164A1168164A914216D140F235 -:1039200005121A600B4B9A6842F002029A609A687C -:1039300002F00C02082AFAD15A6C42F480425A640E -:103940005A6E42F480425A665B6E704740F20572CE -:10395000E7E700BF003802400070004018544007FD -:1039600000948838002004E011640020003C0240EC -:1039700000ED00E041C20F41084A08B553691168E3 -:103980000B4003F00103536123B1054A13680BB1E7 -:1039900050689847BDE80840FEF74ABF003C014028 -:1039A0009C250020084A08B5536911680B4003F0B4 -:1039B0000203536123B1054A93680BB1D06898475D -:1039C000BDE80840FEF734BF003C01409C250020C4 -:1039D000084A08B5536911680B4003F004035361AA -:1039E00023B1054A13690BB150699847BDE80840F7 -:1039F000FEF71EBF003C01409C250020084A08B588 -:103A0000536911680B4003F00803536123B1054A61 -:103A100093690BB1D0699847BDE80840FEF708BF2D -:103A2000003C01409C250020084A08B553691168F4 -:103A30000B4003F01003536123B1054A136A0BB125 -:103A4000506A9847BDE80840FEF7F2BE003C0140CE -:103A50009C250020174B10B55C691A68144004F4CB -:103A600078725A61A30604D5134A936A0BB1D06ADF -:103A70009847600604D5104A136B0BB1506B9847FA -:103A8000210604D50C4A936B0BB1D06B9847E20525 -:103A900004D5094A136C0BB1506C9847A30504D5A3 -:103AA000054A936C0BB1D06C9847BDE81040FEF707 -:103AB000BFBE00BF003C01409C2500201A4B10B542 -:103AC0005C691A68144004F47C425A61620504D5AA -:103AD000164A136D0BB1506D9847230504D5134A50 -:103AE000936D0BB1D06D9847E00404D50F4A136E67 -:103AF0000BB1506E9847A10404D50C4A936E0BB1DC -:103B0000D06E9847620404D5084A136F0BB1506F0A -:103B10009847230404D5054A936F0BB1D06F98479B -:103B2000BDE81040FEF784BE003C01409C2500200B -:103B3000062108B50846FDF7CBFB06210720FDF757 -:103B4000C7FB06210820FDF7C3FB06210920FDF76E -:103B5000BFFB06210A20FDF7BBFB06211720FDF75E -:103B6000B7FB06212820BDE80840FDF7B1BB0000E7 -:103B700008B5FFF745FEFDF727FAFDF74FFDFDF706 -:103B80003BFFFDF70FFEFFF7FDFDBDE80840FFF727 -:103B9000D9BC0000034611F8012B03F8012B002AC1 -:103BA000F9D17047121012131211000053544D3303 -:103BB00032463F3F3F00000001203300001041012A -:103BC00001105A01031059010710310100000000D3 -:103BD000AC3B00083F000000130400000C3C000850 -:103BE0003F00000019040000163C00083F000000E0 -:103BF00021040000203C00083F0000009433002016 -:103C00001C260020842A0020EC2E002053544D3323 -:103C100032463430780053544D33324634327800D3 -:103C200053544D3332463434365858000096000011 -:103C30000000000000000000000000000000000084 -:103C400000000000E5150008D11500080D16000859 -:103C5000F915000805160008F1150008DD15000823 -:103C6000C915000819160008000000001D170008FB -:103C70000917000845170008311700083D1700080C -:103C8000291700081517000801170008A1170008D8 -:103C90000000000001000000000000000200000021 -:103CA0000000000049190008B11900084000400058 -:103CB0002C3800203C3800200200000000000000EA -:103CC0000300000000000000F519000800000000DB -:103CD000100000004C38002000000000010000002F -:103CE00000000000203B0020010102004865782F01 -:103CF00050726F6669434E430043756265426C6162 -:103D0000636B2B2D424C002553455249414C2500F5 -:103D100039230008A1220008B51800081D23000857 -:103D200043000000283D000809024300020100C0D2 -:103D300032090400000102020100052400100105FF -:103D40002401000104240202052406000107058263 -:103D5000030800FF09040100020A00000007050132 -:103D60000240000007058102400000001200000030 -:103D7000743D00081201100102000040AE2D011137 -:103D800000020102030100000403090425424F411F -:103D90005244250043756265426C61636B2B0030B1 -:103DA00031323334353637383941424344454600A1 -:103DB0000040000000400000004000000040000003 -:103DC00000000100000002000000020000000200EC -:103DD00000000200000002000000020000000200DB -:103DE00000400000004000000040000000400000D3 -:103DF00000000100000002000000020000000200BC -:103E000000000200000002000000020000000200AA -:103E1000000000003D1B00081D1E0008C91E000810 -:103E200040004000803B0020803B0020010000005B -:103E3000903B0020800000004001000003000000D3 -:103E40006D61696E00000000603E0008983B002034 -:103E5000903D0020010000007535000800000000C2 -:103E600069646C65000000000000812A0002000007 -:103E7000AAAAAAAA00000000FFFF0000000000009C -:103E800000A00A000000000000000000AAAAAAAAE0 -:103E900000000000FFFF0000000000000000000024 -:103EA0001400005400000000AAAAAAAA140000549A -:103EB000FFFF0000000000000000000080699A0180 -:103EC00000000000AAAA8AAA40555501FFFF000081 -:103ED0000070700777700000408102010000000050 -:103EE000AAAAAAAA00410100F7FF00000000008072 -:103EF000080000000000000000000000AAAAAAAA12 -:103F000000000000FFFF00000000000000000000B3 -:103F10000000000000000000AAAAAAAA00000000F9 -:103F2000FFFF000000000000000000000000000093 -:103F3000000000000A000000000000000300000074 -:103F40000000000000000000000000000000000071 -:103F50000000000000000000000000000000000061 -:103F60000000000000000000FF00960000000008B4 -:103F700004000000883D0008000000000000000070 -:103F80000000000000000000000000000000000031 +:1001E00002E000F000F8FEE772B6374880F30888B6 +:1001F000364880F3098836483649086040F20000E6 +:10020000CCF200004EF63471CEF200010860BFF36C +:100210004F8FBFF36F8F40F20000C0F2F0004EF638 +:100220008851CEF200010860BFF34F8FBFF36F8F8C +:100230004FF00000E1EE100A4EF63C71CEF20001E4 +:100240000860062080F31488BFF36F8F02F074FA01 +:1002500003F074F94FF055301F491B4A91423CBFDF +:1002600041F8040BFAE71D49184A91423CBF41F896 +:10027000040BFAE71A491B4A1B4B9A423EBF51F83E +:10028000040B42F8040BF8E700201849184A914281 +:100290003CBF41F8040BFAE702F052FA03F0A2F96E +:1002A000144C154DAC4203DA54F8041B8847F9E7A7 +:1002B00000F042F8114C124DAC4203DA54F8041B22 +:1002C0008847F9E702F03ABA000600200022002031 +:1002D0000000000808ED00E00000002000060020FB +:1002E000A03E0008002200204C22002050220020C6 +:1002F00020310020E0010008E0010008E0010008D2 +:10030000E00100082DE9F04F2DED108AC1F80CD066 +:10031000C3689D46BDEC108ABDE8F08F002383F3CF +:1003200011882846A047002001F098FDFEE701F063 +:1003300027FD00DFFEE7000038B500F0DFFB02F02C +:10034000CFF940B1164B6FF03F01002259720F21D7 +:100350001A729972DA7202F0A9F9054602F0E2F90E +:100360000446C8B90F4B9D4218D001339D4218BFB7 +:10037000044641F2883504BF01240025002002F024 +:100380009FF90CB100F076F800F018FD284600F057 +:10039000C1F800F06FF8F9E70025EFE70546EDE753 +:1003A00000220020010007B008B500F073FBA0F1A7 +:1003B00020035842584108BD07B541F212030221FB +:1003C00001A8ADF8043000F083FB03B05DF804FB36 +:1003D00038B5302383F31188174803680BB101F057 +:1003E00009FE164A144800234FF47A7101F0F8FD13 +:1003F000002383F31188124C236813B12368013B57 +:100400002360636813B16368013B63600D4D2B7813 +:1004100033B963687BB9022000F03AFC3223636091 +:100420002B78032B07D163682BB9022000F030FC36 +:100430004FF47A73636038BD50220020D103000866 +:100440007023002068220020084B187003280CD865 +:10045000DFE800F008050208022000F00FBC0220CF +:1004600000F002BC024B00225A6070476822002054 +:1004700070230020234B244A10B51C461968013113 +:100480003FD004339342F9D16268A24239D31F4B63 +:100490009B6803F1006303F580439A4231D2002048 +:1004A00000F046FB0220FFF7CFFF194B1A6C002229 +:1004B0001A64196E1A66196E596C5A64596E5A6626 +:1004C0005A6E5A6942F080025A615A6922F08002DB +:1004D0005A615A691A6942F000521A611A6922F087 +:1004E00000521A611B6972B64FF0E0233021C3F845 +:1004F000084DD4E9003281F311889D4683F30888C2 +:10050000104710BD004000082040000800220020D5 +:10051000003802402DE9F04F93B0AA4B0090202202 +:10052000FF210AA89D6800F0F3FBA74A1378A3B93E +:10053000A648012103601170302383F311880368FA +:100540000BB101F057FDA24AA04800234FF47A7185 +:1005500001F046FD002383F31188009B13B19D4BEE +:10056000009A1A609C4A009C1378032B1EBF00233C +:100570001370984A4FF0000A18BF5360D34656468E +:10058000D146012000F07AFB24B1924B1B68002B6E +:1005900000F01182002000F07DFA0390039B002BF5 +:1005A000F2DB012000F060FB039B213B162BE8D817 +:1005B00001A252F823F000BF150600083D0600080E +:1005C000D10600088305000883050008830500089C +:1005D0005B0700082B09000845080008A708000869 +:1005E000CF080008F508000883050008070900087F +:1005F0008305000879090008B5060008830500088E +:10060000BD09000821060008B5060008830500089A +:10061000A70800080220FFF7C7FE002840F0F58178 +:10062000009B0221BAF1000F08BF1C4605A841F249 +:100630001233ADF8143000F04BFAA2E74FF47A70A1 +:1006400000F028FA071EEBDB0220FFF7ADFE0028C2 +:10065000E6D0013F052F00F2DA81DFE807F0030A58 +:100660000D10133605230593042105A800F030FA78 +:1006700017E054480421F9E758480421F6E75848A0 +:100680000421F3E74FF01C08404600F053FA08F14C +:1006900004080590042105A800F01AFAB8F12C0FFF +:1006A000F2D1012000FA07F747EA0B0B5FFA8BFB48 +:1006B0004FF0000900F078FB26B10BF00B030B2B79 +:1006C00008BF0024FFF778FE5BE746480421CDE72A +:1006D000002EA5D00BF00B030B2BA1D10220FFF7AE +:1006E00063FE074600289BD0012000F021FA02207B +:1006F000FFF7AAFE00261FFA86F8404600F028FA07 +:10070000044690B10021404600F032FA013600283C +:10071000F1D1BA46044641F21213022105A8ADF800 +:1007200014303E4600F0D4F92BE70120FFF78CFE91 +:100730002546244B9B68AB4207D9284600F0FAF9BE +:10074000013040F067810435F3E7234B00251D702D +:10075000204BBA465D603E46ACE7002E3FF460AFEA +:100760000BF00B030B2B7FF45BAF0220FFF76CFE4B +:10077000322000F08FF9B0F10008FFF651AF18F009 +:1007800003077FF44DAF0F4A926808EB05039342CD +:100790003FF646AFB8F5807F3FF742AF124B01936B +:1007A000B84523DD4FF47A7000F074F90390039A92 +:1007B000002AFFF635AF019B039A03F8012B01379E +:1007C000EDE700BF002200206C2300205022002013 +:1007D000D10300087023002068220020042200209A +:1007E000082200200C2200206C220020C820FFF7E5 +:1007F000DBFD074600283FF413AF1F2D11D8C5F1CC +:10080000200242450AAB25F0030028BF4246834937 +:100810000192184400F056FA019A8048FF2100F036 +:1008200077FA4FEAA8037D490193C8F38702284667 +:1008300000F076FA064600283FF46DAF019B05EB09 +:10084000830537E70220FFF7AFFD00283FF4E8AE4D +:1008500000F0BAF900283FF4E3AE0027B846704B29 +:100860009B68BB4218D91F2F11D80A9B01330ED0A9 +:1008700027F0030312AA134453F8203C0593404683 +:10088000042205A900F0F6FA04378046E7E7384667 +:1008900000F050F90590F2E7CDF81480042105A886 +:1008A00000F016F906E70023642104A8049300F081 +:1008B00005F900287FF4B4AE0220FFF775FD00288B +:1008C0003FF4AEAE049800F067F90590E6E7002328 +:1008D000642104A8049300F0F1F800287FF4A0AE8E +:1008E0000220FFF761FD00283FF49AAE049800F063 +:1008F00063F9EAE70220FFF757FD00283FF490AEC6 +:1009000000F072F9E1E70220FFF74EFD00283FF406 +:1009100087AE05A9142000F06DF904210746049064 +:1009200004A800F0D5F83946B9E7322000F0B2F853 +:10093000071EFFF675AEBB077FF472AE384A9268A9 +:1009400007EB090393423FF66BAE0220FFF72CFD45 +:1009500000283FF465AE27F003074F44B9453FF444 +:10096000A9AE484600F0E6F80421059005A800F07D +:10097000AFF809F10409F1E74FF47A70FFF714FDBD +:1009800000283FF44DAE00F01FF9002844D00A9B28 +:1009900001330BD008220AA9002000F0C1F9002879 +:1009A0003AD02022FF210AA800F0B2F9FFF704FD97 +:1009B0001C4801F059FA13B0BDE8F08F002E3FF447 +:1009C0002FAE0BF00B030B2B7FF42AAE0023642118 +:1009D00005A8059300F072F8074600287FF420AEC2 +:1009E0000220FFF7E1FC804600283FF419AEFFF734 +:1009F000E3FC41F2883001F037FA059800F018FA6C +:100A0000464600F0D1F93C46BBE5064652E64FF0BB +:100A1000000905E6BA467EE637467CE66C220020F1 +:100A200000220020A08601002DE9F84F4FF47A73D0 +:100A3000DFF85880DFF8589006460D4602FB03F7B2 +:100A4000002498F900305A1C5FFA84FA01D0A342BE +:100A500012D159F8240003682A46D3F820B0314651 +:100A60003B46D847854207D1074B012083F800A0B9 +:100A7000BDE8F88F0124E4E7002CFBD04FF4FA70B6 +:100A800001F0F2F90020F3E7B82300201022002043 +:100A90001422002007B50023024601210DF10700B2 +:100AA0008DF80730FFF7C0FF20B19DF8070003B0B5 +:100AB0005DF804FB4FF0FF30F9E700000A4608B587 +:100AC0000421FFF7B1FF80F00100C0B2404208BD31 +:100AD00030B4074B0A461978064B53F82140236877 +:100AE000DD69054B0146AC46204630BC604700BF7F +:100AF000B823002014220020A086010070B501F068 +:100B0000D3FC094E094D3080002428683388834285 +:100B100008D901F0C3FC2B6804440133B4F5804FBD +:100B20002B60F2D370BD00BFBA23002078230020D1 +:100B300001F070BD00F1006000F580400068704772 +:100B400000F10060920000F5804001F0FBBC000065 +:100B5000054B1A68054B1B889B1A834202D9104427 +:100B600001F09CBC0020704778230020BA230020AD +:100B700038B5084D044629B128682044BDE83840FE +:100B800001F0ACBC2868204401F090FC0028F3D0B0 +:100B900038BD00BF7823002010F003030AD1B0F560 +:100BA000047F05D200F10050A0F51040D0F80038C5 +:100BB000184670470023FBE700F10050A0F51040F5 +:100BC000D0F8100A70470000064991F8243033B17C +:100BD0000023086A81F824300822FFF7B1BF012002 +:100BE000704700BF7C230020014B1868704700BF8E +:100BF000002004E070B5194B1D68194B0138C5F38E +:100C00000B0408442D0C04221E88A6420BD15C68FC +:100C10000A46013C824213460FD214F9016F4EB1CD +:100C200002F8016BF6E7013A03F10803ECD18142C7 +:100C30000B4602D22C2203F8012B0A4A05241688FF +:100C4000AE4204D1984284BF967803F8016B013C10 +:100C500002F10402F3D1581A70BD00BF002004E075 +:100C6000503B00083C3B0008022802BF024B4FF4F7 +:100C700080529A61704700BF00100240022802BFF4 +:100C8000024B4FF080529A61704700BF0010024043 +:100C9000022801BF024A536983F4805353617047AD +:100CA0000010024070B504464FF47A764CB1412CE6 +:100CB000254628BF412506FB05F001F0D5F8641B49 +:100CC000F4E770BD10B50023934203D0CC5CC4544C +:100CD0000133F9E710BD000010B5013810F9013FEC +:100CE0003BB191F900409C4203D11AB10131013A64 +:100CF000F4E71AB191F90020981A10BD1046FCE7EC +:100D000003460246D01A12F9011B0029FAD1704796 +:100D100002440346934202D003F8011BFAE77047EE +:100D20002DE9F8431F4D144695F8242007468846C0 +:100D300052BBDFF870909CB395F824302BB9202279 +:100D4000FF2148462F62FFF7E3FF95F82400C0F12A +:100D50000802A24228BF2246D6B24146920005EBC5 +:100D60008000FFF7AFFF95F82430A41B1E44F6B2B5 +:100D7000082E17449044E4B285F82460DBD1FFF7D5 +:100D800023FF0028D7D108E02B6A03EB82038342BC +:100D9000CFD0FFF719FF0028CBD10020BDE8F883A2 +:100DA0000120FBE77C230020024B1A78024B1A70CB +:100DB000704700BFB82300201022002038B5174C20 +:100DC000174D204600F0B6FB2946204600F0DEFB1A +:100DD0002D686A6D936B23F4002393634FF47A704C +:100DE000FFF760FF0F49284600F0D6FC6A6D0E4DF4 +:100DF000936B28680D4943F400239363A0424FF49A +:100E0000E1330B6001D000F0F5FA6868A04204D02D +:100E1000BDE83840054900F0EDBA38BD98280020FB +:100E20005C3C0008643C000814220020A42300203D +:100E300070B50C4B0C4D1E780C4B55F826209A4281 +:100E400004460DD00A4B002114221846FFF760FF1C +:100E50000460014655F82600BDE8704000F0CABAAB +:100E600070BD00BFB8230020142200209828002065 +:100E7000A423002030B5094D0A4491420DD011F849 +:100E8000013B5840082340F30004013B2C4013F081 +:100E9000FF0384EA5000F6D1EFE730BD2083B8EDC0 +:100EA000026843681143016003B1184770470000AE +:100EB000024AD36843F0C003D36070470044004047 +:100EC00010B5054C054A0021204600F071FA044A8D +:100ED000044BC4E9972310BDBC230020B10E0008C9 +:100EE0000044004080DE8002234A037C002918BFB2 +:100EF0000A46012B30B5C0F868220CD11F4B98422E +:100F000009D11F4B196C41F400311964196E41F479 +:100F1000003119661B6EB2F904501468D0F86032C3 +:100F2000D0F85C12002D03EB5403B3FBF4F3BEBF07 +:100F300023F0070503F0070343EA450394888B6019 +:100F4000D38843F040030B61138943F001034B61E5 +:100F500044F4045343F02C03CB6004F4A054002366 +:100F60000B60B4F5806F0B684B680CBF7F23FF23C9 +:100F700080F8643230BD00BF703B0008BC23002005 +:100F8000003802402DE9F041D0F85C62F768336820 +:100F9000DA0504469DB20DD5302383F311884FF452 +:100FA00080610430FFF77CFF6FF4807333600023AF +:100FB00083F31188302383F3118804F1040815F0BA +:100FC0002F033AD183F31188380615D5290613D596 +:100FD000302383F3118804F1380000F065F900280C +:100FE0004EDA0821201DFFF75BFF4FF67F733B4071 +:100FF000F360002383F311887A0616D56B0614D5A7 +:10100000302383F31188D4E913239A420AD1236C45 +:1010100043B127F040073F041021201D3F0CFFF78C +:101020003FFFF760002383F31188D4F86822D36868 +:1010300043B3BDE8F041106918472B0714D015F0F1 +:10104000080F0CBF00214FF48071E80748BF41F042 +:101050002001AA0748BF41F040016B0748BF41F09B +:1010600080014046FFF71CFFAD06736805D594F874 +:1010700064122046194000F0CBF93568ADB29EE706 +:101080007060B6E7BDE8F081F8B51546826806697C +:10109000AA420B46816938BF8568761AB542044674 +:1010A0000BD218462A46FFF70DFEA3692B44A36115 +:1010B000A3685B1BA3602846F8BD0CD918463246CE +:1010C000FFF700FEAF1BE1683A463044FFF7FAFD38 +:1010D000E3683B44EBE718462A46FFF7F3FDE36875 +:1010E000E5E7000083689342F7B51546044638BF2C +:1010F0008568D0E90460361AB5420BD22A46FFF75C +:10110000E1FD63692B446361A36828465B1BA36010 +:1011100003B0F0BD0DD932460191FFF7D3FD01991F +:10112000E068AF1B3A463144FFF7CCFDE3683B442F +:10113000E9E72A46FFF7C6FDE368E4E710B50A448D +:101140000024C361029B8460C0E90000C0E905116E +:10115000C1600261036210BD08B5D0E90532934257 +:1011600001D1826882B98268013282605A1C426170 +:101170001970D0E904329A4224BFC3684361002148 +:1011800000F08EFE002008BD4FF0FF30FBE70000AE +:1011900070B5302304460E4683F31188A568A5B1C7 +:1011A000A368A269013BA360531CA361157822695F +:1011B000934224BFE368A361E3690BB120469847DB +:1011C000002383F31188284607E03146204600F0CB +:1011D00057FE0028E2DA85F3118870BD2DE9F74F3C +:1011E00004460E4617469846D0F81C904FF0300A39 +:1011F0008AF311884FF0000B154665B12A46314637 +:101200002046FFF741FF034660B94146204600F003 +:1012100037FE0028F1D0002383F31188781B03B038 +:10122000BDE8F08FB9F1000F03D001902046C84708 +:10123000019B8BF31188ED1A1E448AF31188DCE7B9 +:10124000C0E90511C160C3611144009B8260C0E91F +:101250000000016103627047F8B504460D4616466A +:10126000302383F31188A768A7B1A368013BA3606B +:1012700063695A1C62611D70D4E904329A4224BF2A +:10128000E3686361E3690BB120469847002080F36F +:10129000118807E03146204600F0F2FD0028E2DA2E +:1012A00087F31188F8BD0000D0E905239A4210B5F4 +:1012B00001D182687AB98268013282605A1C8261E7 +:1012C0001C7803699A4224BFC3688361002100F03F +:1012D000E7FD204610BD4FF0FF30FBE72DE9F74F4B +:1012E00004460E4617469846D0F81C904FF0300A38 +:1012F0008AF311884FF0000B154665B12A46314636 +:101300002046FFF7EFFE034660B94146204600F055 +:10131000B7FD0028F1D0002383F31188781B03B0B8 +:10132000BDE8F08FB9F1000F03D001902046C84707 +:10133000019B8BF31188ED1A1E448AF31188DCE7B8 +:10134000026843681143016003B118477047000009 +:101350001430FFF743BF00004FF0FF331430FFF7A6 +:101360003DBF00003830FFF7B9BF00004FF0FF333A +:101370003830FFF7B3BF00001430FFF709BF00009B +:101380004FF0FF311430FFF703BF00003830FFF794 +:1013900063BF00004FF0FF323830FFF75DBF000041 +:1013A000012914BF6FF0130000207047FFF788BDBC +:1013B00037B515460E4A026000224260C0E902229B +:1013C0000122044602740B46009000F15C014FF4C8 +:1013D00080721430FFF7B2FE00942B464FF48072F7 +:1013E00004F5AE7104F13800FFF72AFF03B030BDF9 +:1013F000843B000810B53023044683F31188FFF7BF +:1014000073FD02232374002080F3118810BD0000B7 +:1014100038B5C36904460D461BB904210844FFF7DB +:101420008FFF294604F11400FFF796FE002806DA24 +:10143000201D4FF40061BDE83840FFF781BF38BD83 +:10144000026843681143016003B118477047000008 +:1014500013B5446BD4F894341A681178042915D163 +:10146000217C022912D11979128901238B40134260 +:101470000CD101A904F14C0001F016FFD4F89444FA +:10148000019B21790246206800F0D0F902B010BD1E +:10149000143001F099BE00004FF0FF33143001F01A +:1014A00093BE00004C3001F06BBF00004FF0FF33E3 +:1014B0004C3001F065BF0000143001F067BE000041 +:1014C0004FF0FF31143001F061BE00004C3001F0EC +:1014D00037BF00004FF0FF324C3001F031BF000049 +:1014E0000020704710B5D0F894341A681178042998 +:1014F000044617D1017C022914D15979528901235C +:101500008B4013420ED1143001F0FAFD024648B16F +:10151000D4F894444FF4807361792068BDE810409A +:1015200000F072B910BD0000406BFFF7DBBF000098 +:10153000704700007FB5124B036000234360C0E991 +:101540000233012502260F4B0574044602900193D5 +:1015500000F18402294600964FF48073143001F0A4 +:10156000ABFD094B0294CDE9006304F523724FF4FF +:101570008073294604F14C0001F072FE04B070BD86 +:10158000AC3B000829150008511400080B683022F4 +:1015900082F311880A7903EB820290614A79093259 +:1015A00043F822008A7912B103EB82039861022387 +:1015B000C0F894140374002080F311887047000071 +:1015C00038B5037F044613B190F85430ABB9201DF1 +:1015D00001250221FFF734FF04F1140025776FF095 +:1015E000010100F069FC84F8545004F14C006FF0E4 +:1015F0000101BDE8384000F05FBC38BD10B50121E5 +:1016000004460430FFF71CFF0023237784F854308E +:1016100010BD000038B504460025143001F064FD0B +:1016200004F14C00257701F033FE201D84F854505E +:101630000121FFF705FF2046BDE83840FFF752BF04 +:1016400090F8443003F06003202B07D190F8452038 +:10165000212A4FF0000303D81F2A06D80020704724 +:10166000222AFBD1C0E90E3303E0034A826307223A +:10167000C2630364012070471C22002037B5D0F8F4 +:1016800094341A681178042904461AD1017C02297D +:1016900017D11979128901238B40134211D100F11E +:1016A0004C05284601F0B4FE58B101A9284601F0C6 +:1016B000FBFDD4F89444019B21790246206800F098 +:1016C000B5F803B030BD0000F0B500EB810385B084 +:1016D0009E6904460D46FEB1302383F3118804EB66 +:1016E0008507301D0821FFF7ABFEFB685B691B68AF +:1016F00006F14C001BB1019001F0E4FD019803A933 +:1017000001F0D2FD024648B1039B2946204600F075 +:101710008DF8002383F3118805B0F0BDFB685A698A +:101720001268002AF5D01B8A013B1340F1D104F165 +:101730004402EAE7093138B550F82140DCB13023E2 +:1017400083F31188D4F894241368527903EB82034D +:10175000DB689B695D6845B104216018FFF770FE86 +:10176000294604F1140001F0D5FC2046FFF7BAFE2B +:10177000002383F3118838BD7047000001F034B8AE +:10178000012303700023C0E90133C3618362036254 +:10179000C36243620363704738B50446302383F362 +:1017A00011880025C0E90355C0E90555416001F0E5 +:1017B0002BF80223237085F31188284638BD0000DA +:1017C00070B500EB810305465069DA600E46144699 +:1017D00018B110220021FFF79BFAA06918B110225E +:1017E0000021FFF795FA31462846BDE8704001F028 +:1017F000D5B80000826802F0011282600022C0E9C0 +:101800000422826101F056B9F0B400EB81044789EB +:10181000E4680125A4698D403D4345812360002390 +:10182000A2606360F0BC01F071B90000F0B400EB9D +:1018300081040789E468012564698D403D43058181 +:1018400023600023A2606360F0BC01F0EBB90000EC +:1018500070B50223002504460370C0E90255C0E9B3 +:101860000455C564856180F8345001F033F863682D +:101870001B6823B129462046BDE87040184770BD5B +:101880000378052B10B504460AD080F850300523A4 +:10189000037043681B680BB1042198470023A360C1 +:1018A00010BD00000178052906D190F8502043684A +:1018B00002701B6803B118477047000070B590F8BC +:1018C0003430044613B1002380F8343004F144026C +:1018D000204601F011F963689B68B3B994F844306D +:1018E00013F0600535D00021204601F0B1FB002146 +:1018F000204601F0A3FB63681B6813B10621204654 +:101900009847062384F8343070BD20469847002855 +:10191000E4D0B4F84A30E26B9A4288BFE36394F9AA +:101920004430E56B002B4FF0300380F20381002D33 +:1019300000F0F280092284F8342083F3118800211A +:10194000D4E90E232046FFF771FF002383F31188AB +:10195000DAE794F8452003F07F0343EA022340F2DC +:101960000232934200F0C58021D8B3F5807F48D081 +:101970000DD8012B3FD0022B00F09380002BB2D169 +:1019800004F14C02A2630222E2632364C1E7B3F5CF +:10199000817F00F09B80B3F5407FA4D194F846305E +:1019A000012BA0D1B4F84C3043F0020332E0B3F580 +:1019B000006F4DD017D8B3F5A06F31D0A3F5C06339 +:1019C000012B90D8636894F846205E6894F847101D +:1019D000B4F848302046B047002884D04368A36359 +:1019E0000368E3631AE0B3F5106F36D040F60242A5 +:1019F00093427FF478AF5C4BA3630223E36300233D +:101A0000C3E794F84630012B7FF46DAFB4F84C3047 +:101A100023F00203C4E90E55A4F84C30256478E79E +:101A2000B4F84430B3F5A06F0ED194F8463084F882 +:101A30004E30204600F0A6FF63681B6813B10121F9 +:101A400020469847032323700023C4E90E339CE704 +:101A500004F14F03A3630123C3E72378042B10D1C0 +:101A6000302383F311882046FFF7C4FE85F31188E5 +:101A70000321636884F84F5021701B680BB1204626 +:101A8000984794F84630002BDED084F84F3004237A +:101A9000237063681B68002BD6D00221204698472C +:101AA000D2E794F848301D0603F00F0120460AD50E +:101AB00001F014F8012804D002287FF414AF2B4B56 +:101AC0009AE72B4B98E700F0FBFFF3E794F84630DA +:101AD000002B7FF408AF94F8483013F00F01B3D017 +:101AE0001A06204602D501F0C7FAADE701F0BAFAAE +:101AF000AAE794F84630002B7FF4F5AE94F848300E +:101B000013F00F01A0D01B06204602D501F0A0FA69 +:101B10009AE701F093FA97E7142284F8342083F3CC +:101B200011882B462A4629462046FFF76DFE85F38D +:101B30001188E9E65DB1152284F8342083F3118819 +:101B40000021D4E90E232046FFF75EFEFDE60B22BE +:101B500084F8342083F311882B462A4629462046F0 +:101B6000FFF764FEE3E700BFDC3B0008D43B00085E +:101B7000D83B000838B590F834300446002B3ED0EE +:101B8000063BDAB20F2A34D80F2B32D8DFE803F045 +:101B9000373131082232313131313131313137375A +:101BA000C56BB0F84A309D4214D2C3681B8AB5FB9E +:101BB000F3F203FB12556DB9302383F311882B46E2 +:101BC0002A462946FFF732FE85F311880A2384F856 +:101BD00034300EE0142384F83430302383F311883A +:101BE00000231A4619462046FFF70EFE002383F312 +:101BF000118838BD036C03B198470023E7E7002143 +:101C0000204601F025FA0021204601F017FA63680A +:101C10001B6813B10621204698470623D7E700002A +:101C200010B590F83430142B044629D017D8062B61 +:101C300005D001D81BB110BD093B022BFBD80021F8 +:101C4000204601F005FA0021204601F0F7F963680B +:101C50001B6813B1062120469847062319E0152B6F +:101C6000E9D10B2380F83430302383F3118800232B +:101C70001A461946FFF7DAFD002383F31188DAE7E5 +:101C8000C3689B695B68002BD5D1036C03B198478F +:101C9000002384F83430CEE700230375826803699B +:101CA0001B6899689142FBD25A68036042601060D9 +:101CB0005860704700230375826803691B68996840 +:101CC0009142FBD85A6803604260106058607047C8 +:101CD00008B50846302383F311880B7D032B05D00C +:101CE000042B0DD02BB983F3118808BD8B6900221A +:101CF0001A604FF0FF338361FFF7CEFF0023F2E756 +:101D0000D1E9003213605A60F3E70000FFF7C4BF67 +:101D1000054BD9680875186802681A60536001227B +:101D20000275D860FEF7EEBA2826002030B50C4BBD +:101D3000DD684B1C87B004460FD02B46094A684625 +:101D400000F04EF92046FFF7E3FF009B13B1684611 +:101D500000F050F9A86907B030BDFFF7D9FFF9E7E7 +:101D600028260020D11C0008044B1A68DB68906804 +:101D70009B68984294BF00200120704728260020CD +:101D8000084B10B51C68D86822681A60536001229D +:101D90002275DC60FFF78EFF01462046BDE810404B +:101DA000FEF7B0BA2826002038B5074C0749084886 +:101DB000012300252370656001F068FB0223237076 +:101DC00085F3118838BD00BF90280020E43B00084F +:101DD0002826002000F044B9034A516853685B1A72 +:101DE0009842FBD8704700BF001000E08B600223D0 +:101DF00008618B82084670478368A3F1840243F828 +:101E0000142C026943F8442C426943F8402C094AD7 +:101E100043F8242CC26843F8182C022203F80C2C37 +:101E2000002203F80B2C044A43F8102CA3F12000E5 +:101E3000704700BF1D0300082826002008B5FFF7E3 +:101E4000DBFFBDE80840FFF761BF0000024BDB6825 +:101E500098610F20FFF75CBF28260020302383F312 +:101E60001188FFF7F3BF000008B50146302383F364 +:101E700011880820FFF75AFF002383F3118808BD5B +:101E8000064BDB6839B1426818605A6013604360E2 +:101E90000420FFF74BBF4FF0FF307047282600208B +:101EA0000368984206D01A6802605060996118462B +:101EB000FFF72CBF7047000038B504460D46206878 +:101EC000844200D138BD036823605C608561FFF700 +:101ED0001DFFF4E710B503689C68A2420CD85C684B +:101EE0008A600B604C602160596099688A1A9A6018 +:101EF0004FF0FF33836010BD1B68121BECE700003E +:101F00000A2938BF0A2170B504460D460A26601911 +:101F100001F0B4FA01F09CFA041BA54203D8751C29 +:101F20002E460446F3E70A2E04D9BDE8704001208E +:101F300001F0ECBA70BD0000F8B5144B0D46D96144 +:101F400003F1100141600A2A1969826038BF0A2230 +:101F5000016048601861A818144601F07FFA0A274A +:101F600001F076FA431BA342064606D37C1C2819CF +:101F700001F084FA27463546F2E70A2F04D9BDE876 +:101F8000F840012001F0C2BAF8BD00BF28260020A9 +:101F9000F8B506460D4601F05BFA0F4A134653F8B2 +:101FA000107F9F4206D12A4601463046BDE8F840E0 +:101FB000FFF7C2BFD169BB68441A2C1928BF2C4651 +:101FC000A34202D92946FFF79BFF22463146034828 +:101FD000BDE8F840FFF77EBF282600203826002005 +:101FE00010B4C0E9032300235DF8044B4361FFF7FD +:101FF000CFBF000010B5194C236998420DD0D0E92D +:102000000032816813605A609A680A449A6000231B +:1020100003604FF0FF33A36110BD2346026843F80D +:10202000102F53600022026022699A4203D1BDE85A +:10203000104001F01DBA936881680B44936001F071 +:1020400007FA2269E1699268441AA242E4D911446C +:10205000BDE81040091AFFF753BF00BF2826002033 +:102060002DE9F047DFF8BC8008F110072C4ED8F8B6 +:10207000105001F0EDF9D8F81C40AA68031B9A42F1 +:102080003ED81444D5E900324FF00009C8F81C408E +:1020900013605A60C5F80090D8F81030B34201D1EF +:1020A00001F0E6F989F31188D5E90331284698470C +:1020B000302383F311886B69002BD8D001F0C8F965 +:1020C0006A69A0EB04094A4582460DD2022001F05C +:1020D0001DFA0022D8F81030B34208D151462846E4 +:1020E000BDE8F047FFF728BF121A2244F2E712EBCF +:1020F000090938BF4A4629463846FFF7EBFEB5E7DF +:10210000D8F81030B34208D01444211AC8F81C0083 +:10211000A960BDE8F047FFF7F3BEBDE8F08700BF58 +:10212000382600202826002000207047FEE7000007 +:10213000704700004FF0FF307047000002290CD0BC +:10214000032904D00129074818BF00207047032A3B +:1021500005D8054800EBC2007047044870470020CE +:10216000704700BFC03C00082C220020743C0008CF +:1021700070B59AB00546084601A9144600F0C2F8A9 +:1021800001A8FEF7BDFD431C5B00C5E90034002239 +:10219000237003236370C6B201AB02341046D1B280 +:1021A0008E4204F1020401D81AB070BD13F8011B6D +:1021B00004F8021C04F8010C0132F0E708B53023E2 +:1021C00083F311880348FFF759FA002383F311883A +:1021D00008BD00BF9828002090F8443003F01F028B +:1021E000012A07D190F845200B2A03D10023C0E92A +:1021F0000E3315E003F06003202B08D1B0F848300F +:102200002BB990F84520212A03D81F2A04D8FFF7BC +:1022100017BA222AEBD0FAE7034A82630722C26385 +:1022200003640120704700BF2322002007B5052961 +:1022300017D8DFE801F0191603191920302383F3AA +:102240001188104A01900121FFF7BAFA01980E4A4D +:102250000221FFF7B5FA0D48FFF7DCF9002383F3FD +:10226000118803B05DF804FB302383F3118807481D +:10227000FFF7A6F9F2E7302383F311880348FFF74D +:10228000BDF9EBE7143C0008383C00089828002012 +:1022900038B50C4D0C4C0D492A4604F10800FFF7E7 +:1022A00067FF05F1CA0204F110000949FFF760FF5A +:1022B00005F5CA7204F118000649BDE83840FFF779 +:1022C00057BF00BF602D00202C220020F03B0008EB +:1022D000FD3B0008083C000870B5044608460D4662 +:1022E000FEF70EFDC6B22046013403780BB918463E +:1022F00070BD32462946FEF7EFFC0028F3D10120DD +:10230000F6E700002DE9F84F05460C46FEF7F8FC0D +:102310002B49C6B22846FFF7DFFF08B10336F6B2F5 +:1023200028492846FFF7D8FF08B11036F6B2632EC9 +:102330000DD8DFF88C80DFF88C90234FDFF890A069 +:10234000DFF890B02E7846B92670BDE8F88F2946A0 +:102350002046BDE8F84F01F0D3BB252E2BD1072234 +:1023600041462846FEF7B8FC58B9DBF80030236038 +:10237000DBF804306360BBF80830238107350A348A +:10238000E0E7082249462846FEF7A6FC98B90F4B1D +:10239000A21C197809090232C95D02F8041C13F85D +:1023A000011B01F00F015345C95D02F8031CF0D178 +:1023B00018340835C6E704F8016B0135C2E700BFE1 +:1023C000E03C0008083C0008F33C0008107AFF1FBE +:1023D0001C7AFF1FE83C0008BFF34F8F024AD36806 +:1023E000DB03FCD4704700BF003C024008B5094B3A +:1023F0001B7873B9FFF7F0FF074B1A69002ABFBFBC +:10240000064A5A6002F188325A601A6822F48062E1 +:102410001A6008BDBE2F0020003C02402301674522 +:1024200008B50B4B1B7893B9FFF7D6FF094B1A6918 +:1024300042F000421A611A6842F480521A601A6827 +:1024400022F480521A601A6842F480621A6008BD51 +:10245000BE2F0020003C02401728F0B516D80C4CC7 +:102460000C4923787BB90C4D0E4618234FF00062BF +:1024700055F8047B46F8042B013B13F0FF033A4464 +:10248000F6D10123237051F82000F0BD0020FCE7B5 +:1024900020300020C02F0020043D0008014B53F8DD +:1024A00020007047043D000818207047172810B519 +:1024B000044601D9002010BDFFF7CEFF064B53F8AC +:1024C00024301844C21A0BB90120F4E71268013213 +:1024D000F0D1043BF6E700BF043D0008172838B5EB +:1024E000044628D81549FFF777FFFFF77FFFF3234E +:1024F000CB600C23B0FBF3F203FB1205D30143EADC +:10250000C503DBB243F4007343F002030B610B69B4 +:1025100043F480330B61FFF75FFFFFF79DFF084B2C +:1025200053F8241000F0DAF8FFF77AFF2046BDE8F0 +:102530003840FFF7BBBF002038BD00BF003C024061 +:10254000043D0008F8B512F00103144642D1821888 +:10255000B2F1026F57D82D4B1B6813F0010352D014 +:102560002B4DFFF743FFF323EB60FFF735FF40F2FE +:102570000127032C15D824F001046618244C401AB6 +:1025800040F20117B142236900EB010524D123F089 +:1025900001032361FFF744FF0120F8BD043C043030 +:1025A000E7E78307E7D12B6923F440732B612B699D +:1025B0003B432B6151F8046B0660BFF34F8FFFF76D +:1025C0000BFF03689E42E9D02B6923F001032B61C6 +:1025D000FFF726FF0020E0E723F44073236123691F +:1025E0003B4323610B882B80BFF34F8FFFF7F4FE33 +:1025F0002D8831F8023BADB2AB42C3D0236923F042 +:1026000001032361E4E71846C7E700BF0038024032 +:10261000003C0240084908B50B7828B11BB9FFF708 +:10262000E5FE01230B7008BD002BFCD0BDE808407F +:102630000870FFF7F5BE00BFBE2F002010B50244A2 +:10264000064BD2B2904200D110BD441C00B253F8E8 +:10265000200041F8040BE0B2F4E700BF502800402E +:102660000F4B30B51C6F240407D41C6F44F4007466 +:102670001C671C6F44F400441C670A4C236843F435 +:10268000807323600244084BD2B2904200D130BD27 +:10269000441C00B251F8045B43F82050E0B2F4E768 +:1026A00000380240007000405028004007B5012269 +:1026B00001A90020FFF7C2FF019803B05DF804FBF9 +:1026C00013B50446FFF7F2FFA04205D0012201A98D +:1026D00000200194FFF7C4FF02B010BD7047000056 +:1026E000094B5A88B2F5805F10460BD022F00203E6 +:1026F00041F20102934205D041F20703C31A584246 +:102700005841704701207047002004E0034B1A68CD +:102710001AB9034AD2F874281A607047243000208E +:102720000030024008B5FFF7F1FF024B1868C0F314 +:10273000407008BD2430002070470000FEE7000014 +:102740000A4B0B480B4A90420BD30B4BDA1C121A64 +:10275000C11E22F003028B4238BF00220021FEF787 +:10276000D7BA53F8041B40F8041BECE7EC3E000812 +:1027700020310020203100202031002070B5D0E928 +:1027800015439E6800224FF0FF3504EB42135101C0 +:10279000D3F800090028BEBFD3F8000940F08040FC +:1027A000C3F80009D3F8000B0028BEBFD3F8000B14 +:1027B00040F08040C3F8000B013263189642C3F822 +:1027C0000859C3F8085BE0D24FF00113C4F81C3875 +:1027D00070BD0000890141F02001016103699B0681 +:1027E000FCD41220FFF7F8BA10B5054C2046FEF7CE +:1027F000C7FF4FF0A0436365024BA36510BD00BF48 +:1028000028300020883D000870B50378012B05466C +:1028100050D12A4B446D98421BD1294B5A6B42F040 +:1028200080025A635A6D42F080025A655A6D5A69A5 +:1028300042F080025A615A6922F080025A610E21E8 +:1028400043205B6900F022FC1E4BE3601E4BC4F882 +:1028500000380023C4F8003EC02323606E6D4FF49F +:102860005023A3633369002BFCDA012333610C206E +:10287000FFF7B2FA3369DB07FCD41220FFF7ACFA9A +:102880003369002BFCDA0026A6602846FFF776FFA6 +:102890006B68C4F81068DB68C4F81468C4F81C6876 +:1028A0004BB90A4BA3614FF0FF336361A36843F058 +:1028B0000103A36070BD064BF4E700BF2830002081 +:1028C000003802404014004003002002003C30C0A9 +:1028D000083C30C0F8B5446D054600212046FFF79E +:1028E00079FFA96D00234FF001128F68C4F83438C6 +:1028F0004FF00066C4F81C284FF0FF3004EB431281 +:1029000001339F42C2F80069C2F8006BC2F808099F +:10291000C2F8080BF2D20B686A6DEB656362102394 +:102920001361166916F01006FBD11220FFF754FA56 +:10293000D4F8003823F4FE63C4F80038A36943F4E4 +:10294000402343F01003A3610923C4F81038C4F8EE +:1029500014380A4BEB604FF0C043C4F8103B084BEF +:10296000C4F8003BC4F81069C4F80039EB6D03F1FA +:10297000100243F48013EA65A362F8BD643D0008C9 +:1029800040800010426D90F84E10D2F8003823F4C9 +:10299000FE6343EA0113C2F8003870472DE9F8439B +:1029A00000EB8103456DDA68166806F00306731EB6 +:1029B000022B05EB41130C4680460FFA81F94FEAD2 +:1029C00041104FF00001C3F8101B4FF0010104F15A +:1029D000100398BFB60401FA03F391698EBF334E1A +:1029E00006F1805606F5004600293AD0578A04F1D0 +:1029F0005801490137436F50D5F81C180B43C5F8EF +:102A00001C382B180021C3F8101953690127611EC7 +:102A1000A7409BB3138A928B9B08012A88BF53431C +:102A2000D8F85C20981842EA034301F1400205EB14 +:102A30008202C8F85C00214653602846FFF7CAFEB0 +:102A400008EB8900C3681B8A43EA84534834640155 +:102A50001E432E51D5F81C381F43C5F81C78BDE81D +:102A6000F88305EB4917D7F8001B21F40041C7F89C +:102A7000001BD5F81C1821EA0303C0E704F13F034B +:102A800005EB83030A4A5A6028462146FFF7A2FE57 +:102A900005EB4910D0F8003923F40043C0F80039A1 +:102AA000D5F81C3823EA0707D7E700BF00800010DD +:102AB00000040002826D1268C265FFF75FBE00006D +:102AC0005831436D49015B5813F4004004D013F4AE +:102AD000001F0CBF02200120704700004831436DE9 +:102AE00049015B5813F4004004D013F4001F0CBFDD +:102AF000022001207047000000EB8101CB68196AB9 +:102B00000B6813604B6853607047000000EB810353 +:102B100030B5DD68AA691368D36019B9402B84BF4A +:102B2000402313606B8A1468426D1C44013CB4FB63 +:102B3000F3F46343033323F0030302EB411043EA4E +:102B4000C44343F0C043C0F8103B2B6803F00303B9 +:102B5000012B09B20ED1D2F8083802EB411013F460 +:102B6000807FD0F8003B14BF43F0805343F0005304 +:102B7000C0F8003B02EB4112D2F8003B43F00443A3 +:102B8000C2F8003B30BD00002DE9F041244D6E6DD0 +:102B900006EB40130446D3F8087BC3F8087B3807DC +:102BA0000AD5D6F81438190706D505EB8403214653 +:102BB000DB6828465B689847FA071FD5D6F81438B3 +:102BC000DB071BD505EB8403D968CCB98B69488A30 +:102BD0005A68B2FBF0F600FB16228AB91868DA6868 +:102BE00090420DD2121AC3E90024302383F31188D6 +:102BF0000B482146FFF78AFF84F31188BDE8F08176 +:102C0000012303FA04F26B8923EA02036B81CB6888 +:102C1000002BF3D021460248BDE8F041184700BF21 +:102C20002830002000EB810370B5DD68436D6C69CE +:102C30002668E6604A0156BB1A444FF40020C2F8E9 +:102C400010092A6802F00302012A0AB20ED1D3F851 +:102C5000080803EB421410F4807FD4F8000914BF75 +:102C600040F0805040F00050C4F8000903EB4212DD +:102C7000D2F8000940F00440C2F80009D3F8340843 +:102C8000012202FA01F10143C3F8341870BD19B9E9 +:102C9000402E84BF4020206020682E8A8419013C89 +:102CA000B4FBF6F440EAC44040F000501A44C6E7D2 +:102CB0002DE9F8433B4D6E6D06EB40130446D3F807 +:102CC0000889C3F8088918F0010F4FEA40171AD095 +:102CD000D6F81038DB0716D505EB8003D9684B69A9 +:102CE0001868DA68904230D2121A4FF000091A6060 +:102CF000C3F80490302383F3118821462846FFF758 +:102D000091FF89F3118818F0800F1CD0D6F8343861 +:102D10000126A640334216D005EB84036D6DD3F82F +:102D20000CC0DCF814200134E4B2D2F800E005EB6A +:102D300004342F445168714515D3D5F8343823EA4B +:102D40000606C5F83468BDE8F883012303FA04F2E7 +:102D50002B8923EA02032B818B68002BD3D02146D9 +:102D600028469847CFE7BCF81000AEEB010383423A +:102D700028BF0346D7F8180980B2B3EB800FE2D81A +:102D80009068A0F1040959F8048FC4F80080A0EB02 +:102D900009089844B8F1040FF5D818440B44906022 +:102DA0005360C7E7283000202DE9F74FA24C656D2E +:102DB0006E69AB691E4016F480586E6107D02046DC +:102DC000FEF746FD03B0BDE8F04F00F04DBC002E0D +:102DD00012DAD5F8003E98489B071EBFD5F8003E92 +:102DE00023F00303C5F8003ED5F8043823F00103AF +:102DF000C5F80438FEF756FD370505D58E48FFF7B0 +:102E0000BDFC8D48FEF73CFDB0040CD5D5F8083864 +:102E100013F0060FEB6823F470530CBF43F4105308 +:102E200043F4A053EB6031071BD56368DB681BB923 +:102E3000AB6923F00803AB612378052B0CD1D5F8DF +:102E4000003E7D489A071EBFD5F8003E23F00303DD +:102E5000C5F8003EFEF726FD6368DB680BB17648D7 +:102E60009847F30274D4B70227D5D4F85490DFF80A +:102E7000C8B100274FF0010A09EB4712D2F8003B16 +:102E800003F44023B3F5802F11D1D2F8003B002B7F +:102E90000DDA62890AFA07F322EA0303638104EB7D +:102EA0008703DB68DB6813B1394658469847A36D42 +:102EB00001379B68FFB29F42DED9F00617D5676DD8 +:102EC0003A6AC2F30A1002F00F0302F4F012B2F5EC +:102ED000802F00F08580B2F5402F08D104EB8303EA +:102EE0000022DB681B6A07F5805790426AD13003E5 +:102EF000D5F8184813D5E10302D50020FFF744FEAA +:102F0000A20302D50120FFF73FFE630302D5022092 +:102F1000FFF73AFE270302D50320FFF735FE7503BE +:102F20007FF550AFE00702D50020FFF7C1FEA107F3 +:102F300002D50120FFF7BCFE620702D50220FFF791 +:102F4000B7FE23077FF53EAF0320FFF7B1FE39E759 +:102F5000636DDFF8E4A0019300274FF00109A36D32 +:102F60009B685FFA87FB9B453FF67DAF019B03EBB8 +:102F70004B13D3F8001901F44021B1F5802F1FD174 +:102F8000D3F8001900291BDAD3F8001941F0904159 +:102F9000C3F80019D3F800190029FBDB5946606D0E +:102FA000FFF718FC218909FA0BF321EA03032381B7 +:102FB00004EB8B03DB689B6813B159465046984776 +:102FC0000137CCE7910708BFD7F80080072A98BFE0 +:102FD00003F8018B02F1010298BF4FEA182884E739 +:102FE000023304EB830207F580575268D2F818C009 +:102FF000DCF80820DCE9001CA1EB0C0C0021884265 +:103000000AD104EB830463689B699A6802449A605E +:103010005A6802445A606AE711F0030F08BFD7F8F4 +:1030200000808C4588BF02F8018B01F1010188BF47 +:103030004FEA1828E3E700BF28300020436D03EB78 +:103040004111D1F8003B43F40013C1F8003B704735 +:10305000436D03EB4111D1F8003943F40013C1F87B +:1030600000397047436D03EB4111D1F8003B23F465 +:103070000013C1F8003B7047436D03EB4111D1F8D9 +:10308000003923F40013C1F80039704700F16043A0 +:1030900003F561430901C9B283F80013012200F06E +:1030A0001F039A4043099B0003F1604303F561430A +:1030B000C3F880211A60704730B5039C0172043355 +:1030C00004FB0325C0E90653049B03630021059B11 +:1030D000C160C0E90000C0E90422C0E90842C0E9BB +:1030E0000A11436330BD0000416A0022C0E90411A7 +:1030F000C0E90A22C2606FF00101FEF7DDBE0000E8 +:10310000D0E90432934201D1C2680AB9181D704750 +:103110000020704703691960C2680132C260C26949 +:10312000134482690361934224BF436A036100210F +:10313000FEF7B6BE38B504460D46E3683BB162699A +:10314000131D1268A3621344E362002007E0237A90 +:1031500033B929462046FEF793FE0028EDDA38BD44 +:103160006FF00100FBE70000C368C269013BC36068 +:103170004369134482694361934224BF436A4361B4 +:1031800000238362036B03B11847704770B5302387 +:10319000044683F31188866A3EB9FFF7CBFF0546E4 +:1031A00018B186F31188284670BDA36AE26A13F845 +:1031B000015BA362934202D32046FFF7D5FF0023B1 +:1031C00083F31188EFE700002DE9F84F04460E461F +:1031D000174698464FF0300989F311880025AA4612 +:1031E000D4F828B0BBF1000F09D141462046FFF7C3 +:1031F000A1FF20B18BF311882846BDE8F88FD4E9F0 +:103200000A12A7EB050B521A934528BF9346BBF150 +:10321000400F1BD9334601F1400251F8040B43F82B +:10322000040B9142F9D1A36A40334036A362403582 +:10323000D4E90A239A4202D32046FFF795FF8AF386 +:103240001188BD42D8D289F31188C9E730465A4661 +:10325000FDF738FDA36A5B445E44A3625D44E7E783 +:1032600010B5029C0172043303FB0421C0E906136C +:103270000023C0E90A33039B0363049BC460C0E9D5 +:103280000000C0E90422C0E90842436310BD000009 +:10329000026AC260426AC0E904220022C0E90A222E +:1032A0006FF00101FEF708BED0E904239A4201D174 +:1032B000C26822B9184650F8043B0B6070470023DF +:1032C0001846FAE7C368C2690133C360436913440F +:1032D00082694361934224BF436A43610021FEF740 +:1032E000DFBD000038B504460D46E3683BB12369F5 +:1032F0001A1DA262E2691344E362002007E0237A08 +:1033000033B929462046FEF7BBFD0028EDDA38BD6B +:103310006FF00100FBE7000003691960C268013A21 +:10332000C260C269134482690361934224BF436A45 +:10333000036100238362036B03B1184770470000E9 +:1033400070B530230D460446114683F31188866A12 +:103350002EB9FFF7C7FF10B186F3118870BDA36ABD +:103360001D70A36AE26A01339342A36204D3E16948 +:1033700020460439FFF7D0FF002080F31188EDE7E5 +:103380002DE9F84F04460D46904699464FF0300A15 +:103390008AF311880026B346A76A4FB949462046EA +:1033A000FFF7A0FF20B187F311883046BDE8F88F02 +:1033B000D4E90A073A1AA8EB0607974228BF17462E +:1033C000402F1BD905F1400355F8042B40F8042B7E +:1033D0009D42F9D1A36A4033A3624036D4E90A235F +:1033E0009A4204D3E16920460439FFF795FF8BF335 +:1033F00011884645D9D28AF31188CDE729463A4645 +:10340000FDF760FCA36A3B443D44A3623E44E5E70C +:10341000D0E904239A4217D1C3689BB1836A8BB168 +:10342000043B9B1A0ED01360C368013BC360C369A1 +:103430001A44836902619A4224BF436A03610023EC +:1034400083620123184670470023FBE700F036B97A +:10345000014B586A704700BF000C0040034B00222C +:1034600058631A610222DA60704700BF000C004006 +:10347000014B0022DA607047000C0040014B58639A +:10348000704700BF000C0040FEE7000070B51B4B0A +:1034900001630025044686B0586085620E4600F040 +:1034A000BFF804F11003C4E904334FF0FF33C4E95B +:1034B0000635C4E90044A560E562FFF7C9FF2B4665 +:1034C0000246C4E9082304F134010D4A256580232E +:1034D0002046FEF78BFC0123E0600A4A0375009248 +:1034E00072680192B268CDE90223074B6846CDE9C4 +:1034F0000435FEF7A3FC06B070BD00BF9028002085 +:10350000943D0008993D000889340008024AD36AB6 +:103510001843D062704700BF282600204B684360E4 +:103520008B688360CB68C3600B6943614B6903623E +:103530008B6943620B6803607047000008B5264B37 +:1035400026481A6940F2FF110A431A611A6922F4E7 +:10355000FF7222F001021A611A691A6B0A431A6398 +:103560001A6D0A431A651E4A1B6D1146FFF7D6FFF6 +:1035700002F11C0100F58060FFF7D0FF02F1380175 +:1035800000F58060FFF7CAFF02F1540100F580608A +:10359000FFF7C4FF02F1700100F58060FFF7BEFF86 +:1035A00002F18C0100F58060FFF7B8FF02F1A8017D +:1035B00000F58060FFF7B2FF02F1C40100F5806002 +:1035C000FFF7ACFF02F1E00100F58060FFF7A6FF16 +:1035D000BDE8084000F0F0B80038024000000240AA +:1035E000A03D000808B500F06BFAFEF7DDFBFFF721 +:1035F0008DF8BDE80840FEF74BBE000070470000A4 +:10360000EFF3098305494A6B22F001024A636833EC +:1036100083F30988002383F31188704700EF00E0EB +:10362000302080F3118862B60C4B0D4AD96821F422 +:10363000E0610904090C0A43DA60D3F8FC20094967 +:1036400042F08072C3F8FC200A6842F001020A606E +:103650002022DA7783F82200704700BF00ED00E0F7 +:103660000003FA05001000E010B5302383F3118841 +:103670000E4B5B6813F4006314D0F1EE103AEFF3D5 +:103680000984683C4FF08073E361094BDB6B236670 +:1036900084F30988FEF768FB10B1064BA36110BDE7 +:1036A000054BFBE783F31188F9E700BF00ED00E06D +:1036B00000EF00E02F030008320300080E4B1A6CE5 +:1036C00042F008021A641A6E42F008021A660B4AA7 +:1036D0001B6E936843F008039360094B53229A6270 +:1036E0004FF0FF32DA6200229A615A63DA605A6060 +:1036F00001225A611A60704700380240002004E03D +:10370000000C0040094A08B51169D3680B40D9B2D2 +:10371000C9439B07116107D5302383F31188FEF756 +:1037200059FB002383F3118808BD00BF000C004043 +:103730001F4B1A696FEAC2526FEAD2521A611A69B4 +:10374000C2F308021A614FF0FF301A695A695861D2 +:1037500000215A6959615A691A6A62F080521A62E4 +:103760001A6A02F080521A621A6A5A6A58625A6ACF +:1037700059625A6A1A6C42F080521A641A6E42F008 +:1037800080521A661A6E0B4A106840F480701060FE +:10379000186F00F44070B0F5007F1EBF4FF480300A +:1037A00018671967536823F40073536000F060B919 +:1037B0000038024000700040344B4FF080521A64D1 +:1037C000334A4FF4404111601A6842F001021A6016 +:1037D0001A689107FCD59A6822F003029A602B4B75 +:1037E0009A6812F00C02FBD1196801F0F901196016 +:1037F0009A601A6842F480321A601A689203FCD503 +:103800005A6F42F001025A67204B5A6F9007FCD55D +:10381000204A5A601A6842F080721A601C4A536843 +:103820005904FCD5194B1A689201FCD51A4A9A60C2 +:103830000322C3F88C20194B1A68194B9A42194B72 +:1038400021D1194A1168194A91421CD140F205123E +:103850001A60144A136803F00F03052BFAD10B4BBF +:103860009A6842F002029A609A6802F00C02082AF2 +:10387000FAD15A6C42F480425A645A6E42F4804241 +:103880005A665B6E704740F20572E1E7003802400D +:10389000007000401854400700948838002004E06D +:1038A00011640020003C024000ED00E041C20F41E5 +:1038B000074A08B5536903F00103536123B1054A70 +:1038C00013680BB150689847BDE80840FFF7CCBEBD +:1038D000003C0140A0300020074A08B5536903F0BE +:1038E0000203536123B1054A93680BB1D06898472E +:1038F000BDE80840FFF7B8BE003C0140A030002002 +:10390000074A08B5536903F00403536123B1054A1C +:1039100013690BB150699847BDE80840FFF7A4BE92 +:10392000003C0140A0300020074A08B5536903F06D +:103930000803536123B1054A93690BB1D0699847D5 +:10394000BDE80840FFF790BE003C0140A0300020D9 +:10395000074A08B5536903F01003536123B1054AC0 +:10396000136A0BB1506A9847BDE80840FFF77CBE68 +:10397000003C0140A0300020164B10B55C6904F4F7 +:1039800078725A61A30604D5134A936A0BB1D06AC0 +:103990009847600604D5104A136B0BB1506B9847DB +:1039A000210604D50C4A936B0BB1D06B9847E20506 +:1039B00004D5094A136C0BB1506C9847A30504D584 +:1039C000054A936C0BB1D06C9847BDE81040FFF7E7 +:1039D0004BBE00BF003C0140A0300020194B10B589 +:1039E0005C6904F47C425A61620504D5164A136D81 +:1039F0000BB1506D9847230504D5134A936D0BB155 +:103A0000D06D9847E00404D50F4A136E0BB1506E89 +:103A10009847A10404D50C4A936E0BB1D06E984719 +:103A2000620404D5084A136F0BB1506F9847230402 +:103A300004D5054A936F0BB1D06F9847BDE810408D +:103A4000FFF712BE003C0140A030002008B503483B +:103A5000FDF798FABDE80840FFF706BEBC2300203A +:103A600008B5FFF74FFEBDE80840FFF7FDBD0000B9 +:103A7000062108B50846FFF709FB06210720FFF7D6 +:103A800005FB06210820FFF701FB06210920FFF7AF +:103A9000FDFA06210A20FFF7F9FA06211720FFF7A1 +:103AA000F5FA06212820FFF7F1FA07213220FFF767 +:103AB000EDFABDE808400C212620FFF7E7BA000028 +:103AC00008B5FFF735FE00F00DF8FDF76FFCFDF7C8 +:103AD00055FEFDF72DFDFFF791FDBDE80840FFF70E +:103AE000B5BC00000023054A19460133102BC2E97A +:103AF000001102F10802F8D1704700BFA030002089 +:103B0000034611F8012B03F8012B002AF9D1704765 +:103B100053544D3332463F3F3F0053544D333246AA +:103B20003430780053544D33324634327800535495 +:103B30004D333246343436585800000001203300EB +:103B40000010410001105A00031059000710310005 +:103B500000000000103B0008130400001A3B00089E +:103B600019040000243B0008210400002E3B00083B +:103B700000960000000000000000000000000000AF +:103B800000000000000000006D1300085913000839 +:103B900095130008811300088D130008791300089D +:103BA0006513000851130008A1130008000000006D +:103BB000AD14000899140008D5140008C1140008B9 +:103BC000CD140008B9140008A514000891140008C9 +:103BD000E1140008000000000100000000000000E7 +:103BE00063300000E03B0008802600209028002081 +:103BF0004865782F50726F6669434E430025424FE7 +:103C0000415244252D424C002553455249414C25F3 +:103C1000000000000200000000000000C9160008BB +:103C20003517000840004000302D0020402D0020B6 +:103C3000020000000000000003000000000000007F +:103C4000791700080000000010000000502D00202F +:103C500000000000010000000000000028300020EB +:103C6000010102002D2200083D210008D921000891 +:103C7000BD210008430000007C3C0008090243000D +:103C8000020100C032090400000102020100052403 +:103C9000001001052401000104240202052406008D +:103CA00001070582030800FF09040100020A000061 +:103CB00000070501024000000705810240000000E6 +:103CC00012000000C83C0008120110010200004070 +:103CD000AE2D0111000201020301000004030904DA +:103CE00025424F415244250043756265426C616331 +:103CF0006B2B00303132333435363738394142435B +:103D00004445460000400000004000000040000024 +:103D1000004000000000010000000200000002005E +:103D2000000002000000020000000200000002008B +:103D300000000200004000000040000000400000C1 +:103D4000004000000000010000000200000002002E +:103D5000000002000000020000000200000002005B +:103D60000000020000000000BD180008751B0008DC +:103D7000211C0008400040008830002088300020CE +:103D80000100000098300020800000004001000089 +:103D9000030000006D61696E0069646C65000000DD +:103DA0000000812A00020000AAAAAAAA000000249A +:103DB000FFFF00000000000000A00A00000000005B +:103DC00000000000AAAAAAAA00000000FFFF00004D +:103DD000000000000000000014000054000000007B +:103DE000AAAAAAAA14000054FFFF000000000000C5 +:103DF000000000008069100000000000AAAA8AAA42 +:103E000040561000FFFF0000007070070000000027 +:103E10004001000100000000AAAAAAAA00010000B7 +:103E2000F7FF00000000000000000000000000009C +:103E300000000000AAAAAAAA00000000FFFF0000DC +:103E40000000000000000000000000000000000072 +:103E5000AAAAAAAA00000000FFFF000000000000BC +:103E60000000000000000000000000000A00000048 +:103E7000000000000300000000000000000000003F +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA000EB0300000000000000C01F000000000045 +:103EB000FF00000098280020BC230020009600008E +:103EC0000000080096000000000800000400000048 +:103ED000DC3C0008000000000000000000000000C2 +:0C3EE000000000000000000000000000D6 :00000001FF diff --git a/Tools/bootloaders/CubeBlack_bl.bin b/Tools/bootloaders/CubeBlack_bl.bin index c103a92ad4f402520d34102448e2b00ec257e57d..7a800b227849065c7844e019dd8755c1c3e0177c 100755 GIT binary patch literal 16108 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 diff --git a/Tools/bootloaders/CubeBlack_bl.elf b/Tools/bootloaders/CubeBlack_bl.elf index 6048f8ee907957137be7ace6183fc0dea20f7b23..6eaf4225299f39c644f9103e313461f56f8aee72 100755 GIT binary patch literal 161720 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�o#R9ymHQ>WaAP%T20i78& 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 literal 493612 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 z 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

4HxkB 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 MUFgC@m(S<_7f%ief&c&j literal 16272 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 Tk76~kc=V7SvI{csAHn@!nY#75 diff --git a/Tools/bootloaders/CubeGreen-solo_bl.hex b/Tools/bootloaders/CubeGreen-solo_bl.hex index 62a0215be7206..a841e24a36805 100644 --- a/Tools/bootloaders/CubeGreen-solo_bl.hex +++ b/Tools/bootloaders/CubeGreen-solo_bl.hex @@ -1,1019 +1,1009 @@ :020000040800F2 -:1000000000040020E10100081D0F0008210F000876 -:10001000750F0008210F0008490F0008E3010008D0 -:10002000E3010008E3010008E301000811280008CB +:1000000000060020E1010008E3010008E301000808 +:10001000E3010008E3010008E3010008E301000830 +:10002000E3010008E3010008E301000801360008CD :10003000E3010008E3010008E3010008E301000810 :10004000E3010008E3010008E3010008E301000800 -:10005000E3010008E301000879390008A539000828 -:10006000D1390008FD390008293A0008E3010008E9 +:10005000E3010008E3010008B1380008D9380008BE +:10006000013900082939000851390008E301000866 :10007000E3010008E3010008E3010008E3010008D0 :10008000E3010008E3010008E3010008E3010008C0 -:10009000E3010008E3010008E3010008553A000805 +:10009000E3010008E3010008E301000879390008E2 :1000A000E3010008E3010008E3010008E3010008A0 :1000B000E3010008E3010008E3010008E301000890 :1000C000E3010008E3010008E3010008E301000880 -:1000D000E3010008E30100082511000839110008B8 -:1000E000BD3A0008E3010008E3010008E30100084D +:1000D000E3010008E30100084D3A0008E3010008CD +:1000E000DD390008E3010008E3010008E30100082E :1000F000E3010008E3010008E3010008E301000850 -:10010000E3010008E301000889370008E301000863 +:10010000E3010008E3010008613A0008E301000888 :10011000E3010008E3010008E3010008E30100082F :10012000E3010008E3010008E3010008E30100081F :10013000E3010008E3010008E3010008E30100080F -:10014000E3010008E3010008E3010008FD2E0008B8 +:10014000E3010008E3010008E3010008A92D00080D :10015000E3010008E3010008E3010008E3010008EF :10016000E3010008E3010008E3010008E3010008DF :10017000E3010008E3010008E3010008E3010008CF -:10018000E3010008E30100084D110008E301000845 +:10018000E3010008E3010008E3010008E3010008BF :10019000E3010008E3010008E3010008E3010008AF :1001A000E3010008E3010008E3010008E30100089F :1001B000E3010008E3010008E3010008E30100088F :1001C000E3010008E3010008E3010008E30100087F :1001D000E3010008E3010008E3010008E30100086F -:1001E00002E000F000F8FEE772B6394880F30888B4 -:1001F000384880F3098838484EF60851CEF200019D -:10020000086040F20000CCF200004EF63471CEF2ED -:1002100000010860BFF34F8FBFF36F8F40F2000003 -:10022000C0F2F0004EF68851CEF200010860BFF334 -:100230004F8FBFF36F8F4FF00000E1EE100A4EF6C4 -:100240003C71CEF200010860062080F31488BFF3F1 -:100250006F8F02F01BFB03F02DFA4FF055301F4952 -:100260001B4A91423CBF41F8040BFAE71C49194A6A -:1002700091423CBF41F8040BFAE71A491A4A1B4B5A -:100280009A423EBF51F8040B42F8040BF8E70020F5 -:100290001749184A91423CBF41F8040BFAE702F0B3 -:1002A000F9FA03F063FA144C144DAC4203DA54F833 -:1002B000041B8847F9E700F03FF8114C114DAC42A0 -:1002C00003DA54F8041B8847F9E702F0E1BA0000AA -:1002D000000400200024002000000008000000208E -:1002E00000040020683F000800240020282400208B -:1002F00028240020903D0020E0010008E0010008D3 -:10030000E0010008E00100082DE9F04F2DED108A12 -:10031000C1F80CD0C3689D46BDEC108ABDE8F08FD3 -:10032000002383F311882846A047002001F0ECFE4B -:1003300001F09CFE00DFFEE770B5204C092300258C -:1003400023706FF03F061F236570A570E57025715F -:100350006571A571E57125726672A372E57200F090 -:10036000FFFC20B10F2325726672A372E57202F0C2 -:1003700021FA044602F046FA0546D8B9104B9C42D1 -:100380001AD001339C4218BF054641F2883404BF9D -:1003900001250024002002F017FA0DB100F0B6F894 -:1003A00000F062FD00F01AFC204600F00DF900F0AC -:1003B000ADF8F9E70024EDE70446EBE72824002038 -:1003C000010007B008B500F087FBA0F120035842F8 -:1003D000584108BD07B5054B02211B88ADF8043014 -:1003E00001A800F0E5FB03B05DF804FBA43B0008A6 -:1003F000064991F8243033B100230822086A81F8B5 -:10040000243000F00DBC0120704700BF48240020BC -:100410002DE9F84F234C94F82430054688461746BA -:100420008BBB2E46DFF87C90002F38D094F824A0A8 -:10043000BAF1000F05D12022FF214846266200F0C4 -:1004400001FDCAF10805BD4228BF3D465FFA85FBA4 -:10045000AD0041462A4604EB8A0000F0C9FC94F83E -:100460002430A7EB0B079B445FFA8BFBBBF1080F13 -:100470002E44A844FFB284F824B0D5D1FFF7B8FFCA -:100480000028D1D108E0266A06EB8306B042C9D025 -:10049000FFF7AEFF0028C4D10020BDE8F88F01208F -:1004A000BDE8F88F4824002010B5202383F311887D -:1004B0001248C3680BB101F0ADFE0023104A0F488B -:1004C0004FF47A7101F06AFE002383F311880D4C1A -:1004D000236813B12368013B2360636813B1636829 -:1004E000013B6360084B1B7833B9636823B9022072 -:1004F00000F074FC3223636010BD00BF3424002080 -:10050000A9040008782500207024002010B5254B90 -:10051000254953F8042F013200D110BD8B42F8D188 -:10052000224C234B22689A423AD9224B9B6803F112 -:10053000006303F580439A4232D2002000F068FB4A -:100540001D4B0220187000F03FFC1C4B1A6C00225F -:100550001A64196E1A66196E596C5A64596E5A6685 -:100560005A6E5A6942F080025A615A6922F080023A -:100570005A615A691A6942F000521A611A6922F0E6 -:1005800000521A611B6972B60D4A0E4B13601B684C -:100590002268202181F311889D4683F30888104743 -:1005A00010BD00BFFC3F00081C40000804400008CC -:1005B000FF3F00082824002070240020003802405B -:1005C00008ED00E0004000082DE9F04F99B0B34C71 -:1005D00001902022FF2110A8A66800F033FCB04A49 -:1005E0001378A346A3B9AF480121C360117020233B -:1005F00083F31188C3680BB101F00CFE0023AA4AF3 -:10060000A8484FF47A7101F0C9FD002383F31188E3 -:10061000019B13B1A54B019A1A60A54AA349019FFA -:100620000292002313704B6099461C461D46984663 -:10063000012000F0C9FB002F00F012829B4B1B68C9 -:10064000002B40F00D8219B0BDE8F08F0220FFF7BB -:10065000B9FE002840F0FB81019BB9F1000F08BFF3 -:100660001F46944B1B88ADF82C3002210BA800F0DC -:100670009FFADDE74FF47A7000F02EFA031E039321 -:10068000EADB0220FFF79EFE82460028E4D0039BAF -:10069000581E042800F2DD81DFE800F0030E11147B -:1006A000170018A8052340F8343D042100F080FA13 -:1006B00054464FF0000856E004217848F6E704213C -:1006C0007D48F3E704217D48F0E71C24204600F034 -:1006D000A1FA04340B9004210BA800F069FA2C2C29 -:1006E000F4D1E5E7002DB7D0002CB5D00220FFF7FC -:1006F00069FE0546002800F0AF8101206C4C00F037 -:1007000087FA0220207000F05FFB4FF000095FFACB -:1007100089FA504600F08CFA074658B1504600F06E -:1007200097FA09F101090028F1D12C46A9460027C2 -:10073000634B97E701230220237000F03BFB3E460A -:10074000DBF808309E4206D2304600F063FA0130F2 -:10075000EBD10436F4E7029B00261E70534BA946EA -:100760005E602C46374600F075FB15B1002C18BFB3 -:100770000027FFF72FFE5BE7002D3FF46DAF002C45 -:100780003FF46AAF029B0220187000F01DFB32207C -:1007900000F0A2F9B0F1000AC0F25E811AF0030580 -:1007A00040F05A81DBF8082006EB0A03934200F27E -:1007B0005381BAF5807F00F24F8155450DDA4FF431 -:1007C0007A7000F089F90490049B002BC0F24481F8 -:1007D0003C4A049BAB540135EFE7C820FFF7F2FD1C -:1007E0000546002800F038811F2E11D8C6F12004DC -:1007F000544528BF544610AB26F003002246314929 -:10080000184400F0F5FA2246FF212E4800F01AFBAA -:100810004FEAAA0A5FFA8AF22A493046FFF7F8FD42 -:100820000446002800F01A8106EB8A0605469AE77E -:100830000220FFF7C7FD00283FF40EAFFFF7D8FDF9 -:1008400000283FF409AF4FF0000A5346DBF80820B8 -:1008500092451CD2BAF11F0F12D8109A01320FD054 -:100860002AF0030218A90A4452F8202C0B921846C9 -:1008700004220BA900F092FB0AF1040A0346E5E703 -:100880005046039300F0C6F9039B0B90EFE718A8BE -:10089000042140F84C3D00F08BF964E72824002047 -:1008A0007425002034240020A904000878250020A5 -:1008B00070240020A63B00082C24002030240020B7 -:1008C000A83B00087424002018A8002340F8343DF9 -:1008D000642100F039F900287FF4BEAE0220FFF752 -:1008E00071FD00283FF4B8AE0B9800F0C3F918ABC7 -:1008F00043F8480D04211846CDE718A8002340F816 -:10090000343D642100F020F900287FF4A5AE0220D8 -:10091000FFF758FD00283FF49FAE0B9800F0B8F9A0 -:1009200018AB43F8440DE5E70220FFF74BFD002824 -:100930003FF492AE00F0B2F918AB43F8400DD9E79E -:100940000220FFF73FFD00283FF486AE0BA91420DC -:1009500000F0AAF9824618A8042140F83CAD00F046 -:1009600027F951460BA896E7322000F0B5F8B0F110 -:10097000000AFFF671AE1AF0030F7FF46DAEDBF8DC -:1009800008200AEB080393423FF666AE0220FFF709 -:1009900019FD00283FF460AE2AF0030AC244D04596 -:1009A0003FF4E1AE404600F035F904210A900AA870 -:1009B00000F0FEF808F10408F1E74FF47A70FFF751 -:1009C00001FD00283FF448AEFFF712FD00283FF478 -:1009D000AFAE109B01330CD0082210A90020FFF706 -:1009E00017FD00283FF4A4AE2022FF2110A800F03C -:1009F00029FAFFF7EFFC374801F08CFB23E6002DC6 -:100A00003FF42AAE002C3FF427AE18A8002340F88C -:100A1000343D642100F098F8824600287FF41CAE33 -:100A20000220FFF7CFFC00283FF416AE0390FFF73B -:100A3000D1FC41F2883001F06DFB0B9800F04EFACA -:100A400000F008FA039B57461C461D46F0E5054694 -:100A500089E64FF00008FFE52546FDE52C4667E6F0 -:100A6000002000F039F80490049B002BFFF6E3AD62 -:100A7000012000F09FF9049B213B122B3FF6D8ADDB -:100A800001A252F823F000BF4D06000875060008C9 -:100A9000E5060008310600083106000831060008A6 -:100AA000790700086909000831080008C90800082A -:100AB000FB08000829090008310600084109000860 -:100AC00031060008BB090008670700083106000866 -:100AD000FF090008A08601002DE9F34702AE0024BB -:100AE0004FF47A7506F8014D144FDFF858804543EE -:100AF00097F900305A1C5FFA84F901D0A34212D151 -:100B000058F8240003680122D3F820A031462B4670 -:100B1000D047012807D10A4B9DF8070083F80090C1 -:100B200002B0BDE8F0870134042CE1D14FF4FA7033 -:100B300001F0F0FA4FF0FF30F2E700BF0024002090 -:100B400098250020FC3B00082DE9F0474FF47A750A -:100B5000144FDFF8588006464D43002497F90030C3 -:100B60005A1C5FFA84F901D0A34210D158F824002E -:100B700003680422D3F820A031462B46D04704282E -:100B800005D1094B83F800900020BDE8F0870134BF -:100B9000042CE3D14FF4FA7001F0BCFA4FF0FF30AF -:100BA000BDE8F0870024002098250020FC3B0008C9 -:100BB00030B4074B1A78074B53F822402368DD699D -:100BC000054B0A46AC460146204630BC604700BF94 -:100BD00098250020FC3B0008A086010070B501F0BC -:100BE000E5FC094C094E20700025306823788342CB -:100BF00008D901F0D5FC336805440133B5F5804FC1 -:100C00003360F2D370BD00BF9925002080250020FD -:100C100001F082BD00F1006000F58040006870477F -:100C200000F10060920000F5804001F00DBD000071 -:100C3000054B1A68054B1B789B1A834202D9104456 -:100C400001F0AEBC002070478025002099250020CF -:100C500038B5074D04462868204401F0A9FC28B99E -:100C600028682044BDE8384001F0BABC38BD00BF58 -:100C70008025002010F0030308D1B0F5007F05D8CF -:100C800000F10050A0F50840006870470020704750 -:100C9000014BC058704700BF107AFF1F014B186806 -:100CA000704700BF002004E070B52A4B1C68C4F3F5 -:100CB0000B03240C63B140F21342934231D040F253 -:100CC000194293422FD040F2214293422DD1032367 -:100CD000214A0C2505FB03235D6893F9082042F2A5 -:100CE00001039C4224D0B4F5805F23D041F201037C -:100CF0009C4221D041F203039C421FD041F20703E2 -:100D00009C4208BF3122441E0C44013D0B46A342C5 -:100D10001ED215F9016F581C96B1034600F8016CFC -:100D2000F5E70123D4E70223D2E73F220B4DD6E7B4 -:100D30003322E3E74122E1E75A22E4E75922E2E7DE -:100D40002C2584421D7001D9981C5A70401A70BD20 -:100D50001846FBE7002004E0CC3B0008AC3B000851 -:100D6000124B5A8842F201018A4293B214D0B3F571 -:100D7000805F13D041F20102934211D041F203028D -:100D800093420FD041F2070293420DD10423084A47 -:100D900002EB8303D87870470023F8E70123F6E7D6 -:100DA0000223F4E70323F2E700207047002004E069 -:100DB000B83B0008022802BF024B4FF480529A61F0 -:100DC000704700BF00100240022802BF024B4FF0E4 -:100DD00080529A61704700BF00100240022801BF94 -:100DE000024A536983F480535361704700100240F4 -:100DF00010B50023934203D0CC5CC4540133F9E70F -:100E000010BD000030B5441E14F9010F0B4660B14F -:100E100093F90050854201F1010106D11AB993F905 -:100E20000020801A30BD013AEEE7002AF7D11046C3 -:100E300030BD000002460346981A13F9011B002931 -:100E4000FAD1704702440346934202D003F8011BD3 -:100E5000FAE77047024B1A78024B1A70704700BFCE -:100E60009825002000240020F8B5164C1648174D90 -:100E7000174E154F00F096FC2146134800F0BEFCBB -:100E800024681448626D936B23F40023936301F08C -:100E900041F92046104900F0BDFD626D936B43F4AB -:100EA000002393634FF4E1332B60002456F82400B1 -:100EB000B84202D0294600F0D3FB0134042CF5D10E -:100EC000F8BD00BFE43C00089433002084250020D6 -:100ED000FC3B000840420F00103D000838B50B4BAA -:100EE0001A780B4B53F822400A4B9C4205460CD013 -:100EF000094B002118461422FFF7A4FF05600146A4 -:100F00002046BDE8384000F0ABBB38BD9825002036 -:100F1000FC3B00089433002084250020FEE70000FD -:100F200000B59BB0EFF3098168226846FFF760FFC8 -:100F3000EFF30583034B9A6B9A6A9A6A9A6A9A6AE4 -:100F40009B6AFEE700ED00E000B59BB0EFF309817E -:100F500068226846FFF74CFFEFF30583044B9A6B5A -:100F60009A6A9A6A9A6A9A6A9A6A9B6AFEE700BFC4 -:100F700000ED00E000B59BB0EFF309816822684600 -:100F8000FFF736FFEFF30583034B5A6B9A6A9A6AB1 -:100F90009A6A9A6A9B6AFEE700ED00E030B5084D58 -:100FA0000A4491420BD011F8013B09245840013CFE -:100FB000F7D040F300032B4083EA5000F7E730BD41 -:100FC0002083B8ED002304491A465A50C818083344 -:100FD000802B4260F9D170479C250020026843684D -:100FE0001143016003B1184770470000024AD368FB -:100FF00043F0C003D360704700440040024AD36806 -:1010000043F0C003D360704700480040024AD368F1 -:1010100043F0C003D3607047007800402DE9F041F1 -:10102000D0F85C64F7683368DA0505469CB20DD5E4 -:10103000202383F311884FF400710430FFF7CEFFB3 -:101040006FF480733360002383F31188202383F3CC -:10105000118805F1040814F02F0333D183F31188AC -:10106000380615D5210613D5202383F3118805F101 -:10107000380000F053FA002846DA0821281DFFF74F -:10108000ADFF4FF67F733B40F360002383F311887D -:101090007A060ED563060CD5202383F31188EA6CFB -:1010A0002B6D9A4202D12B6C002B2FD1002383F39E -:1010B0001188D5F86424D368002B31D01069BDE8BD -:1010C000F0411847230713D014F0080F0CBF00217C -:1010D0008021E00748BF41F02001A20748BF41F04E -:1010E0004001630748BF41F480714046FFF776FF37 -:1010F000A406736805D595F860142846194000F0D9 -:10110000BDFA3468A4B2A6E77060BEE727F04007D6 -:101110003F041021281D3F0CFFF760FFF760C5E773 -:10112000BDE8F08108B50348FFF778FFBDE8084047 -:1011300001F07EBB1C26002008B50348FFF76EFFB8 -:10114000BDE8084001F074BB842A002008B50348BC -:10115000FFF764FFBDE8084001F06ABBEC2E0020F9 -:1011600010B50E4C0E4A2046002100F057FA0D4BE8 -:10117000C4F85C340C4C0D4A2046002100F04EFAB5 -:101180000B4BC4F85C340B4C0B4A0021204600F09A -:1011900045FA0A4BC4F85C3410BD00BF1C26002081 -:1011A000ED0F000800440040842A0020FD0F0008D5 -:1011B00000480040EC2E00200D1000080078004090 -:1011C00038B5394D037C002918BF0D46012B044664 -:1011D000C0F8645410D1354B984242D1344B1A6C4C -:1011E00042F400321A641A6E42F400321A661B6E20 -:1011F0000B21262000F06AF82E4BD4F85C249A428A -:101200002B6802D02C498A424BD12C4901EB530167 -:10121000B1FBF3F3A988080442BF23F0070003F0F1 -:10122000070343EA40039360EB8843F040039BB21B -:1012300013612B8943F001039BB2536141F40453C2 -:1012400043F02C03D36001F4A05100231360B1F5E7 -:10125000806F136853680CBF7F23FF2384F86034CA -:1012600038BD174B98420CD1114B1A6C42F48022B6 -:101270001A641A6E42F480221A661B6E0B21272014 -:10128000B8E7104B9842B7D1094B1A6C42F0804234 -:101290001A641A6E42F080421A661B6E0B215220AD -:1012A000A8E70949B2E700BF2C3C00081C26002033 -:1012B00000380240001001400014014000BD01054B -:1012C000842A0020EC2E002080DE800200F16043A2 -:1012D00000F01F02400903F5614309018000C9B213 -:1012E00000F1604083F8001300F561400123934052 -:1012F000C0F8803103607047F8B51546826806690A -:10130000AA420B46816938BF8568761AB542044601 -:1013100007D218462A46FFF76BFDA3692B44A36149 -:101320000DE011D932461846FFF762FDAF1B3A4671 -:10133000E1683044FFF75CFDE2683A44A261A368CB -:101340005B1BA3602846F8BD18462A46FFF750FDF0 -:10135000E368E4E783682DE9F041044693421546CB -:10136000266938BF85684069361AB5420F4606D2ED -:101370002A46FFF73DFD63692B4463610DE012D9F6 -:101380003246A5EB0608FFF733FD4246B919E0687F -:10139000FFF72EFDE26842446261A3685B1BA36015 -:1013A0002846BDE8F0812A46FFF722FDE368E4E71E -:1013B00010B50A440024C361029B00604060846051 -:1013C000C160816141610261036210BD08B582693B -:1013D0004369934201D1826882B982680132826096 -:1013E0005A1C42611970426903699A4201D3C36869 -:1013F0004361002100F0AAFE002008BD4FF0FF303D -:1014000008BD000070B5202304460E4683F3118802 -:10141000A568A5B1A368A269013BA360531CA361A1 -:1014200015782269934224BFE368A361E3690BB195 -:1014300020469847002383F31188284670BD314623 -:10144000204600F073FE0028E2DA85F3118870BDB3 -:101450002DE9F74F05460F4690469A46D0F81C9066 -:10146000202686F311884FF0000B144664B1224603 -:1014700039462846FFF740FF034668B951462846DB -:1014800000F054FE0028F1D0002383F31188A8EB6C -:10149000040003B0BDE8F08FB9F1000F03D0019054 -:1014A0002846C847019B8BF31188E41A1F4486F332 -:1014B0001188DBE7C16081614161C3611144009B18 -:1014C000006040608260016103627047F8B50446C5 -:1014D0000E461746202383F31188A568A5B1A3689B -:1014E000013BA36063695A1C62611E7023696269D3 -:1014F0009A4224BFE3686361E3690BB120469847D1 -:10150000002080F31188F8BD3946204600F00EFE19 -:101510000028E2DA85F31188F8BD0000836942698A -:101520009A4210B501D182687AB98268013282602C -:101530005A1C82611C7803699A4201D3C368836193 -:10154000002100F003FE204610BD4FF0FF3010BD1B -:101550002DE9F74F05460F4690469A46D0F81C9065 -:10156000202686F311884FF0000B144664B1224602 -:1015700039462846FFF7EEFE034668B9514628462D -:1015800000F0D4FD0028F1D0002383F31188A8EBEC -:10159000040003B0BDE8F08FB9F1000F03D0019053 -:1015A0002846C847019B8BF31188E41A1F4486F331 -:1015B0001188DBE7026843681143016003B11847F3 -:1015C000704700001430FFF743BF00004FF0FF33B7 -:1015D0001430FFF73DBF00003830FFF7B9BF0000FF -:1015E0004FF0FF333830FFF7B3BF00001430FFF780 -:1015F00009BF00004FF0FF311430FFF703BF0000B8 -:101600003830FFF763BF00004FF0FF323830FFF78C -:101610005DBF000000207047FFF7A2BD37B50F4B3C -:101620000360002343608360C360012304460374A6 -:10163000154600900B464FF4007200F15C01143027 -:10164000FFF7B6FE00942B464FF4007204F51771B5 -:1016500004F13800FFF72EFF03B030BD403C000816 -:1016600010B52023044683F31188FFF7A9FD022358 -:101670002374002383F3118810BD000038B5C369BB -:1016800004460D461BB904210844FFF793FF294681 -:1016900004F11400FFF79AFE002806DA201D4FF42B -:1016A0008061BDE83840FFF785BF38BD02684368F8 -:1016B0001143016003B118477047000013B5446B34 -:1016C000D4F894341A681178042915D1217C0229A0 -:1016D00012D11979128901238B4013420CD101A92F -:1016E00004F14C0001F05AFED4F89444019B217996 -:1016F0000246206800F0DAF902B010BD143001F0A3 -:10170000DDBD00004FF0FF33143001F0D7BD000005 -:101710004C3001F0AFBE00004FF0FF334C3001F011 -:10172000A9BE0000143001F0ABBD00004FF0FF3146 -:10173000143001F0A5BD00004C3001F07BBE00006C -:101740004FF0FF324C3001F075BE0000D0F8942409 -:1017500038B5136819780429054601D0012038BD31 -:10176000017C0229FAD112795C8901209040044061 -:10177000F4D105F1140001F03DFD02460028EDD042 -:10178000D5F894544FF480732868697900F07CF997 -:10179000204638BD406BFFF7D9BF000000207047DE -:1017A000704700007FB5124B0360002343608360E5 -:1017B000C360012502260F4B057404460290019375 -:1017C00000F18402294600964FF48073143001F032 -:1017D000EDFC094B0193029400964FF4807304F5DD -:1017E0002372294604F14C0001F0B4FD04B070BD31 -:1017F000683C000895170008BD1600080B682022F9 -:1018000082F311880A7903EB820290614A790932E6 -:1018100043F822008A7912B103EB82039861022314 -:101820000374C0F89414002383F3118870470000F8 -:1018300038B5037F044613B190F85430ABB9201D7E -:1018400001250221FFF732FF04F1140025776FF024 -:10185000010100F087FC84F8545004F14C006FF053 -:101860000101BDE8384000F07DBC38BD10B5012154 -:1018700004460430FFF71AFF0023237784F854301E -:1018800010BD000038B504460025143001F0A6FC58 -:1018900004F14C00257701F075FD201D84F85450AB -:1018A0000121FFF703FF2046BDE83840FFF74EBF98 -:1018B00090F8443003F06003202B19D190F84520B4 -:1018C000212A0AD0222A4FF000030ED0202A0FD15D -:1018D000084A82630722C26304E0064B836307233E -:1018E000C36300230364012070478363C363F9E784 -:1018F0000020704701240020D0F8943437B51A68CE -:101900001178042904461AD1017C022917D11979CA -:10191000128901238B40134211D100F14C05284656 -:1019200001F0F0FD58B101A9284601F037FDD4F8C7 -:101930009444019B21790246206800F0B7F803B077 -:1019400030BD000000EB8103F7B59C6905460E46EB -:10195000F4B1202383F3118805EB8607201D0821AD -:10196000FFF7A4FEFB685B691B684C3413B120468B -:1019700001F022FD01A9204601F010FD024648B108 -:10198000019B3146284600F091F8002383F311882B -:1019900003B0F0BDFB685A691268002AF5D01B8AB3 -:1019A000013B1340F1D105F14402EAE7093138B5B2 -:1019B00050F82140DCB1202383F31188D4F894241B -:1019C0001368527903EB8203DB689B695D6845B15C -:1019D00004216018FFF76AFE294604F1140001F0A3 -:1019E00013FC2046FFF7B2FE002383F3118838BDB5 -:1019F0007047000000F0D4BF012303700023436050 -:101A0000C36183620362C3624362036303814381F0 -:101A10007047000038B50446202383F31188002561 -:101A20004160C56005614561856100F0C9FF022321 -:101A3000237085F3118838BD70B500EB810305462E -:101A40005069DA600E46144618B110220021FFF7E3 -:101A5000F9F9A06918B110220021FFF7F3F9314616 -:101A60002846BDE8704001F075B80000028902F018 -:101A700001020281428902F00102428100220261D8 -:101A80004261826101F0FAB8F0B400EB8104478949 -:101A9000E4680125A4698D403D434581236000230E -:101AA000A2606360F0BC01F015B90000F0B400EB77 -:101AB00081040789E468012564698D403D430581FF -:101AC00023600023A2606360F0BC01F08FB90000C6 -:101AD00070B50223002504460370A0F84C5080F82E -:101AE0004E5080F84F5005814581C56005614561C4 -:101AF000856180F8345000F0C9FF63681B6823B12A -:101B000029462046BDE87040184770BD43680278FA -:101B10001B6880F85020052202700BB10421184781 -:101B200070470000436890F850201B6802700BB1AA -:101B3000052118477047000090F8343070B504460E -:101B400013B1002380F8343004F14402204601F040 -:101B5000B7F863689B6863BB94F8445015F060065F -:101B600015D194F8453005F07F0545EA032540F28C -:101B700002339D4200F00E815BD8022D00F0DC8024 -:101B80003FD8002D00F08780012D00F0CF8000218C -:101B9000204601F0EDFA0021204601F0DFFA6368EB -:101BA0001B6813B1062120469847062384F8343079 -:101BB00070BD204698470028CED094F84B2094F86A -:101BC0004A3043EA0223E26B934238BFE36394F95D -:101BD0004430E56B002B4FF0200380F2FD80002D98 -:101BE00000F0EC80092284F8342083F3118800216E -:101BF000E36BA26B2046FFF759FF002383F31188A4 -:101C000070BDB5F5817F00F0B180B5F5407F49D05A -:101C1000B5F5807FBBD194F84630012BB7D1B4F82D -:101C20004C3023F00203A4F84C30A663E66326642C -:101C3000C3E740F201639D421ED8B5F5C06F3BD2A9 -:101C4000B5F5A06FA3D1B4F84430B3F5A06F0ED1B1 -:101C500094F8463084F84E30204600F06FFF6368F9 -:101C60001B6813B1012120469847032323700023EA -:101C7000A363E3632364A0E7B5F5106F32D040F6A9 -:101C800002439D4252D0B5F5006F80D104F14F035D -:101C9000A363012324E004F14C03A3630223E36361 -:101CA00025648AE794F84630012B7FF470AFB4F8CE -:101CB0004C3043F00203B6E794F84920616894F889 -:101CC00048304D6894F8471043EA0223204694F8C0 -:101CD0004620A84700283FF45AAF4368A36303682F -:101CE000E363A4E72378042B10D1202383F3118826 -:101CF0002046FFF7BBFE86F31188636884F84F60C7 -:101D00001B68032121700BB12046984794F8463098 -:101D1000002BACD084F84F300423237063681B6819 -:101D2000002BA4D0022120469847A0E7374BA3639D -:101D30000223E36300239DE794F8481011F0800F1D -:101D4000204601F00F010ED000F0ACFF012806D0B4 -:101D500002287FF41CAF2E4BA363E06367E72D4B93 -:101D6000A363E56363E700F08FFFEFE794F8463085 -:101D7000002B7FF40CAF94F8483013F00F013FF4C0 -:101D800076AF1A06204602D501F006FA6FE701F099 -:101D9000F9F96CE794F84630002B7FF4F8AE94F82C -:101DA000483013F00F013FF462AF1B06204602D506 -:101DB00001F0DEF95BE701F0D1F958E7142284F86D -:101DC000342083F311882B462A4629462046FFF704 -:101DD0005BFE85F3118870BD5DB1152284F8342057 -:101DE00083F311880021E36BA26B2046FFF74CFEC2 -:101DF00003E70B2284F8342083F311882B462A460C -:101E000029462046FFF752FEE3E700BF983C000852 -:101E1000903C0008943C000838B590F834300446F3 -:101E2000152B29D8DFE803F03E28282828283E284B -:101E3000280B293928282828282828283E3E90F8C9 -:101E40004B1090F84A20C36B42EA01229A4214D9FF -:101E5000C268128AB3FBF2F502FB15356DB9202377 -:101E600083F311882B462A462946FFF71FFE85F388 -:101E700011880A2384F8343038BD142384F83430B0 -:101E8000202383F3118800231A4619462046FFF7C2 -:101E9000FBFD002383F3118838BD036C03B1984721 -:101EA0000023E7E7002101F063F90021204601F05B -:101EB00055F963681B6813B106212046984706232D -:101EC000D8E7000090F83420152A38B5044622D807 -:101ED0000123934040F6416213421DD113F4801553 -:101EE0000FD19B0217D50B2380F83430202383F3C6 -:101EF00011882B462A462946FFF7D8FD85F311881D -:101F000038BDC3689B695B682BB9036C03B1984704 -:101F1000002384F8343038BD002101F029F9002174 -:101F2000204601F01BF963681B6813B106212046A7 -:101F300098470623EDE70000024B00221B605B6020 -:101F40009A60704754330020002303748268054B65 -:101F50001B6899689142FBD25A6803604260106026 -:101F6000586070475433002008B5202383F311884C -:101F7000037C032B05D0042B0DD02BB983F31188E0 -:101F800008BD436900221A604FF0FF334361FFF739 -:101F9000DBFF0023F2E790E80C001A600268536050 -:101FA000F2E70000002303748268054B1B68996800 -:101FB0009142FBD85A6803604260106058607047D5 -:101FC00054330020054B19690874186802681A60B8 -:101FD0005360186101230374FEF796B9543300204F -:101FE00030B54B1C87B005460A4C10D023690A4A0D -:101FF00001A800F0D3F82846FFF7E4FF049B13B1D3 -:1020000001A800F007F92369586907B030BDFFF750 -:10201000D9FFF8E754330020691F000838B50C4D8C -:1020200041612B6981689A689142044603D8BDE8F2 -:102030003840FFF789BF1846FFF786FF01232C6160 -:10204000014623742046BDE83840FEF75DB900BF65 -:1020500054330020044B1A681B6990689B689842AF -:1020600094BF0020012070475433002010B5084C65 -:10207000236820691A6822605460012223611A745F -:10208000FFF790FF01462069BDE81040FEF73CB91C -:10209000543300208260022202740022427470478E -:1020A0008368A3F17C0243F80C2C026943F83C2CB2 -:1020B000426943F8382C074A43F81C2CC26843F89D -:1020C000102C022203F8082C002203F8072CA3F19D -:1020D000180070472103000810B5202383F31188EE -:1020E000FFF7DEFF00210446FFF798FF002383F38C -:1020F0001188204610BD0000024B1B6958610F205B -:10210000FFF760BF54330020202383F31188FFF7CB -:10211000F3BF000008B50146202383F3118808208F -:10212000FFF75EFF002383F3118808BD49B1064B1A -:1021300042681B6918605A60136043600420FFF70F -:102140004FBF4FF0FF307047543300200368984270 -:1021500006D01A680260506059611846FFF7F4BE55 -:102160007047000038B504460D462068844200D10F -:1021700038BD036823605C604561FFF7E5FEF4E766 -:10218000054B03F114025A619A614FF0FF32DA6194 -:1021900000221A62704700BF54330020F8B5036173 -:1021A0001A4BC2605C6A1A4B1A46022952F8145F35 -:1021B00038BF0221954206461F460AD158619861F0 -:1021C0001C620560456081600819BDE8F84001F0B7 -:1021D000BBB9186AAB68241A0C1902D3E41A2D682B -:1021E00004E09C4202D2204401F0BEF9AB689C425C -:1021F000F4D86B68736035601E606E60B460A96867 -:102200004FF0FF33091BA960FB61F8BD000C0040D3 -:102210005433002010B41A4C234653F8141F814243 -:1022200010D0416802680A60026851609A424FF01B -:102230000001C16003D0936881680B4493605DF82E -:10224000044B70470A68626100209A425360C8607C -:1022500003D15DF8044B01F081B9936888680344A9 -:102260009360084A206A526A121A9342E7D9991A6F -:10227000012998BF931C18445DF8044B01F074B910 -:1022800054330020000C004000207047FEE700009F -:10229000704700004FF0FF3070470000022906D061 -:1022A000032906D00129064818BF002070470548B9 -:1022B0007047032A9ABF044800EBC2000020704711 -:1022C0006C3D0008203D00080824002070B59AB03D -:1022D00001AD064608462946144600F095F8284602 -:1022E000FEF7A8FDC0B2431C5B0086E8180023700F -:1022F00003236370002302341946DAB2904204F1DA -:10230000020401D81AB070BDEA5C04F8022C04F88B -:10231000011C0133F1E7000008B5202383F3118885 -:102320000348FFF7E9FA002383F3118808BD00BFD3 -:102330009433002010B50446052916D8DFE801F0D3 -:1023400016150316161D202383F311880E4A01214A -:10235000FFF772FB20460D4A0221FFF76DFB0C4888 -:10236000FFF790FA002383F3118810BD202383F335 -:1023700011880748FFF75CFAF4E7202383F31188FC -:102380000348FFF773FAEDE79C3C0008C03C0008E7 -:102390009433002038B50C4D0C4C0D492A4604F1FD -:1023A0000800FFF793FF05F1CA0204F11000094984 -:1023B000FFF78CFF05F5CA7204F118000649BDE865 -:1023C0003840FFF783BF00BF5C380020082400209E -:1023D000EC3C0008F93C0008063D000870B50446D6 -:1023E00008460D46FEF726FDC6B2204601340378A6 -:1023F0000BB9184670BD32462946FEF703FD00288A -:10240000F3D1012070BD00002DE9F04704460D46D0 -:10241000FEF710FD2C49C6B22046FFF7DFFF08B1DA -:102420000736F6B229492046FFF7D8FF08B1103623 -:10243000F6B2632E0BD8DFF89080DFF89090244F2F -:10244000DFF898A0267846B92E70BDE8F0872146BF -:102450002846BDE8F04701F09DBB252E2FD107226D -:1024600041462046FEF7CEFC70B91A4B2A4603F1CE -:102470000C0153F8040B42F8040B8B42F9D11B8872 -:10248000138007340E35DDE7082249462046FEF763 -:10249000B9FCA0B9104BAA1C13F8011F0909534538 -:1024A000C95D02F8021C197801F00F0102F1020265 -:1024B000C95D02F8031CEFD118350834C2E72E704D -:1024C00001340135BEE700BF8C3D0008063D000821 -:1024D000A33D0008943D00080F7AFF1F1B7AFF1FE1 -:1024E000BFF34F8F024AD368DB03FCD4704700BFB1 -:1024F000003C024008B5094B1B7873B9FFF7F0FFA9 -:10250000074B1A69002ABFBF064A5A6002F1883297 -:102510005A601A6822F480621A6008BDBA3A002034 -:10252000003C02402301674508B50B4B1B7893B96B -:10253000FFF7D6FF094B1A6942F000421A611A6888 -:1025400042F480521A601A6822F480521A601A68A3 -:1025500042F480621A6008BDBA3A0020003C024092 -:10256000172870B513D80B4A0B4C137863B90B4E70 -:102570004FF0006144F8231056F823500133182B14 -:102580002944F7D10123137054F8200070BD0020B6 -:1025900070BD00BF1C3B0020BC3A0020B43D0008C9 -:1025A000014B53F820007047B43D000818207047D5 -:1025B000172810B5044601D9002010BDFFF7D0FF41 -:1025C000064B53F824301844C21A0BB9012010BD31 -:1025D00012680132F0D1043BF6E700BFB43D0008B9 -:1025E000172810B5044629D8FFF77AFFFFF782FFB6 -:1025F0001349F323CB600C23B0FBF3F203FB12006F -:10260000D30143EAC003DBB243F4007343F0020397 -:102610000B610B6943F480330B61FFF761FF2046C8 -:10262000FFF79EFF074B53F8241000F0DDF8FFF78B -:102630007BFF2046BDE81040FFF7BABF002010BD69 -:10264000003C0240B43D00082DE9F84312F00103BC -:10265000154640D18218B2F1026F3CD22C4B1B6858 -:1026600013F0010337D02B4CFFF744FFF323E36053 -:10267000FFF736FF40F20127032D01D9830713D05E -:10268000244C0F46401A40F20118EB1B0B44012B5F -:1026900000EB0706236924D823F001032361FFF729 -:1026A00043FF0120BDE8F883236923F440732361CD -:1026B00023693B43236151F8046B0660BFF34F8FDE -:1026C000FFF70EFF03689E4208D0236923F0010341 -:1026D0002361FFF729FF0020BDE8F883043D0430A3 -:1026E000CAE723F440732361236943EA08032361A3 -:1026F000B94637F8023B3380BFF34F8FFFF7F0FE48 -:102700003688B9F80030B6B2B342BED0DDE700BFBC -:1027100000380240003C0240084908B50B7828B157 -:1027200053B9FFF7E7FE01230B7008BD23B1BDE8E5 -:1027300008400870FFF7F8BE08BD00BFBA3A002095 -:1027400010B50244064B0439D2B2904200D110BDFC -:10275000441C00B253F8200041F8040FE0B2F4E743 -:1027600050280040104B30B51C6F240407D41C6F58 -:1027700044F400741C671C6F44F400441C670B4C49 -:10278000236843F4807323600244094B0439D2B2B6 -:10279000904200D130BD441C00B251F8045F43F8B0 -:1027A0002050E0B2F4E700BF003802400070004063 -:1027B0005028004007B5012201A90020FFF7C0FF03 -:1027C000019803B05DF804FB13B50446FFF7F2FF70 -:1027D000A04206D002A9012241F8044D0020FFF7D3 -:1027E000C1FF02B010BD000070470000034B1B6822 -:1027F0009B0042BF024B01221A707047743802409E -:102800001D3B0020014B1878704700BF1D3B002086 -:10281000064A536823F001035360EFF309836833DA -:1028200083F30988002383F31188704730EF00E0B9 -:1028300010B5202383F31188104B5B6813F40063F9 -:1028400018D0F1EE103AEFF309844FF0807344F89A -:102850004C3C0B4BDB6844F8083CA4F1680383F361 -:102860000988FFF7F7FB18B1064B44F8503C10BD40 -:10287000054BFAE783F3118810BD00BF00ED00E0BF -:1028800030EF00E031030008340300087047000017 -:10289000FEE70000084A094B09498B4204D3094A64 -:1028A0000021934205D3704752F8040F43F8040BFC -:1028B000F3E743F8041BF4E78C3F0008903D002049 -:1028C000903D0020903D0020836D30B500229D6832 -:1028D000446D11464FF0FF3004EB42130132954234 -:1028E000C3F80019C3F81019C3F80809C3F8001B8E -:1028F000C3F8101BC3F8080BEED24FF00113C4F855 -:102900001C3830BD890141F02001016103699B063B -:10291000FCD4122000F0B4BE204B03EB80022DE962 -:10292000F047D2F80CE05D6DDEF81420461CD2F8BA -:1029300000C005EB063605EB4018516861450BD326 -:10294000D5F83428012303FA00F022EA0000C5F884 -:1029500034081846BDE8F087BEF81040ACEB010320 -:10296000A34228BF2346D8F81849A4B2B3EB840F7A -:1029700010D894681F46A4F1040959F804AFC6F8AA -:1029800000A0042F01D9043FF7E71C440B449460D6 -:102990005360D2E70020BDE8F08700BF203B002055 -:1029A00010B5054C2046FFF727F84FF0A0436365AC -:1029B000024BA36510BD00BF203B0020383E00083D -:1029C0000378012B70B5054650D12A4B446D9842CF -:1029D0001BD1294B5A6B42F080025A635A6D42F068 -:1029E00080025A655A6D5A6942F080025A615A69EA -:1029F00022F080025A610E2143205B69FEF766FCDB -:102A00001E4BE3601E4BC4F800380023C4F8003EA0 -:102A1000C02323606E6D4FF45023A3633369002BF2 -:102A2000FCDA012333610C2000F02AFE3369DB0756 -:102A3000FCD4122000F024FE3369002BFCDA0026BF -:102A4000A6602846FFF740FF6B68C4F81068DB6893 -:102A5000C4F81468C4F81C684BB90A4BA3614FF062 -:102A6000FF336361A36843F00103A36070BD064BAD -:102A7000F4E700BF203B0020003802404014004033 -:102A800003002002003C30C0083C30C0F8B5446D63 -:102A9000054600212046FFF735FFA96D00234FF0C2 -:102AA00001128F68C4F834384FF00066C4F81C284F -:102AB0004FF0FF3004EB431201339F42C2F800692C -:102AC000C2F8006BC2F80809C2F8080BF2D20B6812 -:102AD0006A6DEB65636210231361166916F01006C8 -:102AE000FBD1122000F0CCFDD4F8003823F4FE63B3 -:102AF000C4F80038A36943F4402343F01003A361F2 -:102B00000923C4F81038C4F814380A4BEB604FF0AE -:102B1000C043C4F8103B084BC4F8003BC4F810692C -:102B2000C4F80039EB6D03F1100243F48013EA6539 -:102B3000A362F8BD143E000840800010426D90F87A -:102B40004E10D2F8003823F4FE6343EA0113C2F8B2 -:102B5000003870472DE9F0410EB200EB86080D46B3 -:102B6000D8F80C100F6807F00303022B50D0032B8A -:102B700050D03D4A3D4F012B18BF1746446D4FEAD8 -:102B8000451E04EB0E030022C3F8102B8A6905F1E1 -:102B9000100C002A40D04A8A05F158035B013A43E1 -:102BA000E2500123D4F81C2803FA0CF31343A64483 -:102BB0004A69C4F81C380023CEF8103905F13F03E8 -:102BC000002A39D00A8A898B9208012988BF4A4392 -:102BD000C16D04EB8303561841EA0242C6652946DB -:102BE0005A602046FFF78EFED8F80C301B8A43EA65 -:102BF00085531F4305F148035B01E7500123D4F8D7 -:102C00001C2803FA05F51543C4F81C58BDE8F081EB -:102C1000174FB3E7174FB1E704EB4613D3F8002B78 -:102C200022F40042C3F8002BD4F81C28012303FA35 -:102C30000CF322EA0303BAE704EB83030E4A5A605B -:102C400004EB461629462046FFF75CFED6F800390D -:102C500023F40043C6F80039D4F81C38012202FAE4 -:102C600005F523EA0505CFE7008000100080041079 -:102C70000080081000800C1000040002826D1268B1 -:102C8000C265FFF721BE00005831436D49015B5812 -:102C900013F4004004D013F4001F14BF01200220DD -:102CA000704700004831436D49015B5813F4004000 -:102CB00004D013F4001F14BF01200220704700004D -:102CC00000EB8101CB68196A0B6813604B68536095 -:102CD0007047000000EB810330B5DD68AA69136816 -:102CE000D36019B9402B84BF402313606B8A1468EA -:102CF000426D1C44013CB4FBF3F46343033323F003 -:102D0000030302EB411043EAC44343F0C043C0F85D -:102D1000103B2B6803F00303012B09B20ED1D2F84C -:102D2000083802EB411013F4807FD0F8003B14BF49 -:102D300043F0805343F00053C0F8003B02EB4112D4 -:102D4000D2F8003B43F00443C2F8003B30BD000022 -:102D50002DE9F041244D6E6D06EB40130446D3F887 -:102D6000087BC3F8087B38070AD5D6F8143819074A -:102D700006D505EB84032146DB6828465B68984747 -:102D8000FA072FD5D6F81438DB072BD505EB8403CB -:102D9000D968CCB98B69488A5E68B6FBF0F200FB53 -:102DA00012628AB91868DA6890420DD2121A83E862 -:102DB0001400202383F311880B482146FFF78AFF74 -:102DC00084F31188BDE8F081012303FA04F26B89D2 -:102DD00023EA02036B81CB6823B121460248BDE898 -:102DE000F0411847BDE8F081203B002000EB810353 -:102DF00070B5DD68436D6C692668E6604A0156BBB4 -:102E00001A444FF40020C2F810092A6802F00302A5 -:102E1000012A0AB20ED1D3F8080803EB421410F4C9 -:102E2000807FD4F8000914BF40F0805040F000507B -:102E3000C4F8000903EB4212D2F8000940F0044044 -:102E4000C2F80009D3F83408012202FA01F1014363 -:102E5000C3F8341870BD19B9402E84BF40202060DB -:102E600020682E8A841940F00050013C1A44B4FBBB -:102E7000F6F440EAC440C6E7F8B504461E48456D7E -:102E800005EB4413D3F80869C3F80869F10717D5AF -:102E9000D5F81038DA0713D500EB8403D9684B69ED -:102EA0001F68DA68974218D2D21B00271A605F6049 -:102EB000202383F311882146FFF798FF87F31188B9 -:102EC000330617D5D5F834280123A340134211D077 -:102ED0002046BDE8F840FFF71FBD012303FA04F2C6 -:102EE000038923EA020303818B68002BE8D0214683 -:102EF0009847E5E7F8BD00BF203B002096482DE944 -:102F0000F84F456D6E69AB691E4016F4805F6E61C7 -:102F1000044605D0FEF7DCFDBDE8F84FFFF788BC9E -:102F2000002E12DAD5F8003E8B489B071EBFD5F85D -:102F3000003E23F00303C5F8003ED5F8043823F023 -:102F40000103C5F80438FEF7EDFD370502D58248C8 -:102F5000FEF7DCFDB0040CD5D5F8083813F0060FE9 -:102F6000EB6823F470530CBF43F4105343F4A053A5 -:102F7000EB60310704D56368DB680BB1764898478E -:102F8000F2025AD4B3020CD5D4F85480DFF8C8A1A9 -:102F900000274FF00109A36D9B68F9B28B4280F0C6 -:102FA0008780F70619D5616D0A6AC2F30A1702F025 -:102FB0000F0302F4F012B2F5802F00F0A180B2F5F9 -:102FC000402F0AD104EB830301F58051DB68186AB6 -:102FD00000231A469F4240F087803003D5F81848F6 -:102FE00013D5E10302D50020FFF7B2FEA20302D5FC -:102FF0000120FFF7ADFE630302D50220FFF7A8FE14 -:10300000270302D50320FFF7A3FE750384D5E0074D -:1030100002D50020FFF730FFA10702D50120FFF7FE -:103020002BFF620702D50220FFF726FF23077FF55B -:1030300073AF0320FFF720FF6EE7D4F85480DFF86A -:1030400018A100274FF00109A36D9B685FFA87FB69 -:103050005B4597D308EB4B13D3F8002902F44022C9 -:10306000B2F5802F22D1D3F80029002A1EDAD3F836 -:10307000002942F09042C3F80029D3F80029002A21 -:10308000FBDB5946606DFFF73DFC228909FA0BF323 -:1030900022EA0303238104EB8B03DB689B6813B1F3 -:1030A0005946504698475846FFF736FC0137CBE75C -:1030B00008EB4112D2F8003B03F44023B3F5802F14 -:1030C00010D1D2F8003B002B0CDA628909FA01F327 -:1030D00022EA0303638104EB8103DB68DB680BB145 -:1030E00050469847013756E79C0708BF0A68072BE8 -:1030F00098BF027003F101039CBF120A013069E717 -:10310000023304EB830201F5805152689069026832 -:10311000D0F808C04068A2EB000E0022104697428B -:103120000AD104EB830463689B699A683A449A6005 -:103130005A6817445F6050E712F0030F08BF086831 -:10314000964588BF8CF8000002F1010284BF000A96 -:103150000CF1010CE3E700BF203B0020436D03EBC3 -:103160004111D1F8003B43F40013C1F8003B704714 -:10317000436D03EB4111D1F8003943F40013C1F85A -:1031800000397047436D03EB4111D1F8003B23F444 -:103190000013C1F8003B7047436D03EB4111D1F8B8 -:1031A000003923F40013C1F80039704730B5039C8F -:1031B0000172043304FB0325C361049B03630021F4 -:1031C000059B00604060C1604261026185610462EC -:1031D00042628162C162436330BD00000022416AE5 -:1031E00041610161C2608262C2626FF00101FEF75B -:1031F000B9BF000003694269934203D1C2680AB1B2 -:1032000000207047181D704703691960C2680132B9 -:10321000C260C269134482690361934224BF436A56 -:1032200003610021FEF792BF38B504460D46E368FE -:103230003BB16269131D1268A3621344E36200206C -:1032400038BD237A33B929462046FEF76FFF0028A0 -:10325000EDDA38BD6FF00100FBE70000C368C2691A -:10326000013BC3604369134482694361934224BFB5 -:10327000436A436100238362036B03B118477047BD -:1032800070B52023044683F31188866A3EB9FFF7A0 -:10329000CBFF054618B186F31188284670BDA36A96 -:1032A000E26A13F8015BA362934202D32046FFF760 -:1032B000D5FF002383F31188EFE700002DE9F84FD5 -:1032C00004460E4690469946202787F3118800252C -:1032D000AA46D4F828B0BBF1000F09D149462046D0 -:1032E000FFF7A2FF20B18BF311882846BDE8F88FC5 -:1032F000A16AE36AA8EB050B5B1A9B4528BF9B46B6 -:10330000BBF1400F1BD9334601F1400251F8040BC9 -:1033100043F8040B9142F9D1A36A40334036A362CB -:103320004035A26AE36A9A4202D32046FFF796FF2D -:103330008AF311884545D8D287F31188C9E730460A -:103340005A46FDF755FDA36A5B445E44A3625D44A3 -:10335000E7E7000010B5029C0172043303FB04216F -:10336000C36100238362C362039B0363049B006009 -:103370004060C460426102618161046242624363F1 -:1033800010BD0000026AC260426A4261026100220E -:103390008262C2626FF00101FEF7E4BE4369026916 -:1033A0009A4203D1C2680AB100207047184650F80B -:1033B000043B0B6070470000C368C2690133C360FF -:1033C0004369134482694361934224BF436A436162 -:1033D0000021FEF7BBBE000038B504460D46E36889 -:1033E0003BB123691A1DA262E2691344E362002023 -:1033F00038BD237A33B929462046FEF797FE0028C8 -:10340000EDDA38BD6FF00100FBE7000003691960D9 -:10341000C268013AC260C26913448269036193427F -:1034200024BF436A036100238362036B03B118471F -:103430007047000070B5202304460E4683F31188C0 -:10344000856A35B91146FFF7C7FF10B185F31188BA -:1034500070BDA36A1E70A36AE26A01339342A3623D -:1034600004D3E16920460439FFF7D0FF002080F340 -:10347000118870BD2DE9F84F04460D4691469A46D5 -:103480004FF0200888F311880026B346A76A4FB989 -:1034900051462046FFF7A0FF20B187F31188304640 -:1034A000BDE8F88FA06AE76AA9EB06033F1A9F42BE -:1034B00028BF1F46402F1BD905F1400355F8042BA8 -:1034C00040F8042B9D42F9D1A36A4033A3624036F1 -:1034D000A26AE36A9A4204D3E16920460439FFF7FD -:1034E00095FF8BF311884E45D9D288F31188CDE72B -:1034F00029463A46FDF77CFCA36A3B443D44A3625F -:103500003E44E5E7026943699A4203D1C3681BB9A7 -:10351000184670470023FBE7836A002BF8D0043B72 -:103520009B1AF5D01360C368013BC360C3691A449A -:10353000836902619A4224BF436A03610023836264 -:103540000123E5E700F034B9034B002258631A6108 -:103550000222DA60704700BF000C0040014B0022DD -:10356000DA607047000C0040014B5863704700BFA1 -:10357000000C0040FEE7000010B5174CFEF7DCFC25 -:10358000FEF7FEFD802215492046FEF783FD01234C -:1035900044F8180C0374124B124AD96821F4E06104 -:1035A0000904090C0A431049DA60CA6842F08072C3 -:1035B000CA600E490A6842F001020A601022DA77F6 -:1035C000202283F82220002383F3118862B6084862 -:1035D000BDE81040FEF780BD7C330020443E00086B -:1035E00000ED00E00003FA05F0ED00E0001000E05F -:1035F0004C3E00082DE9F84F1F4CDFF880906569BC -:1036000004F114074FF00008D9F82430266AAA689C -:103610009E1B96421DD34FF0200AAA68236AD5F854 -:103620000CB0134423622B68BB425F60A6EB02061A -:103630006361C5F80C8001D1FFF790FF88F3118812 -:103640002869D8478AF311886569AB689E42E4D23D -:10365000DAE76269BA420CD0916823628E1B9660E9 -:10366000A86802282CBF1818981CBDE8F84FFFF76F -:103670007BBFBDE8F88F00BF54330020000C004032 -:10368000034B59685A68521A9042FBD8704700BFE2 -:10369000001000E04B6843608B688360CB68C360B8 -:1036A0000B6943614B6903628B6943620B6803607A -:1036B0007047000008B5224B22481A6940F2FF11FA -:1036C0000A431A611A6922F4FF7222F001021A6198 -:1036D0001A691A6B0A431A631A6D0A431A651A4A61 -:1036E0001B6D1146FFF7D6FF184802F11C01FFF7CA -:1036F000D1FF174802F13801FFF7CCFF154802F15E -:103700005401FFF7C7FF144802F17001FFF7C2FF31 -:10371000124802F18C01FFF7BDFF114802F1A80128 -:10372000FFF7B8FF0F4802F1C401FFF7B3FF0E48DF -:1037300002F1E001FFF7AEFFBDE8084000F0A4B8D9 -:1037400000380240000002406C3E000800040240C5 -:1037500000080240000C0240001002400014024029 -:1037600000180240001C02400020024008B500F092 -:10377000FFF9FFF701FFFFF739F8BDE80840FEF752 -:1037800009BE000070470000084B1A69920710B587 -:1037900008D500241C61202383F31188FFF72AFF3A -:1037A00084F31188BDE81040FFF742B8000C0040D8 -:1037B000104B1A6C42F008021A641A6E42F00802AA -:1037C0001A660D4A1B6E936843F0080393600B4B17 -:1037D00053229A624FF0FF32DA6200229A615A63F2 -:1037E000DA605A6001225A6108211A603220FDF71E -:1037F0006DBD00BF00380240002004E0000C004016 -:103800001F4B1A696FEAC2526FEAD2521A611A69E3 -:10381000C2F308021A614FF0FF301A695A69586101 -:1038200000215A6959615A691A6A62F080521A6213 -:103830001A6A02F080521A621A6A5A6A58625A6AFE -:1038400059625A6A1A6C42F080521A641A6E42F037 -:1038500080521A661A6E0B4A106840F4807010602D -:10386000186F00F44070B0F5007F1EBF4FF4803039 -:1038700018671967536823F40073536000F058B950 -:103880000038024000700040324B4FF080521A6402 -:10389000314A4FF4404111601A6842F001021A6047 -:1038A0001A689207FCD59A6822F003029A60294BA5 -:1038B00019469A6812F00C02FBD1186800F0F90062 -:1038C00018609A601A6842F480321A600B689B0391 -:1038D000FCD54B6F43F001034B671E4B5A6F9007AB -:1038E000FCD51E4A5A601A6842F080721A601A4A61 -:1038F00053685904FCD5174B1A689201FCD5184A35 -:103900009A600322C3F88C20164B1A68164B9A4211 -:10391000164B1BD1164A1168164A914216D140F235 -:1039200005121A600B4B9A6842F002029A609A687C -:1039300002F00C02082AFAD15A6C42F480425A640E -:103940005A6E42F480425A665B6E704740F20572CE -:10395000E7E700BF003802400070004018544007FD -:1039600000948838002004E011640020003C0240EC -:1039700000ED00E041C20F41084A08B553691168E3 -:103980000B4003F00103536123B1054A13680BB1E7 -:1039900050689847BDE80840FEF74ABF003C014028 -:1039A0009C250020084A08B5536911680B4003F0B4 -:1039B0000203536123B1054A93680BB1D06898475D -:1039C000BDE80840FEF734BF003C01409C250020C4 -:1039D000084A08B5536911680B4003F004035361AA -:1039E00023B1054A13690BB150699847BDE80840F7 -:1039F000FEF71EBF003C01409C250020084A08B588 -:103A0000536911680B4003F00803536123B1054A61 -:103A100093690BB1D0699847BDE80840FEF708BF2D -:103A2000003C01409C250020084A08B553691168F4 -:103A30000B4003F01003536123B1054A136A0BB125 -:103A4000506A9847BDE80840FEF7F2BE003C0140CE -:103A50009C250020174B10B55C691A68144004F4CB -:103A600078725A61A30604D5134A936A0BB1D06ADF -:103A70009847600604D5104A136B0BB1506B9847FA -:103A8000210604D50C4A936B0BB1D06B9847E20525 -:103A900004D5094A136C0BB1506C9847A30504D5A3 -:103AA000054A936C0BB1D06C9847BDE81040FEF707 -:103AB000BFBE00BF003C01409C2500201A4B10B542 -:103AC0005C691A68144004F47C425A61620504D5AA -:103AD000164A136D0BB1506D9847230504D5134A50 -:103AE000936D0BB1D06D9847E00404D50F4A136E67 -:103AF0000BB1506E9847A10404D50C4A936E0BB1DC -:103B0000D06E9847620404D5084A136F0BB1506F0A -:103B10009847230404D5054A936F0BB1D06F98479B -:103B2000BDE81040FEF784BE003C01409C2500200B -:103B3000062108B50846FDF7C9FB06210720FDF759 -:103B4000C5FB06210820FDF7C1FB06210920FDF772 -:103B5000BDFB06210A20FDF7B9FB06211720FDF762 -:103B6000B5FB06212820BDE80840FDF7AFBB0000EB -:103B700008B5FFF745FEFDF725FAFDF74DFDFDF70A -:103B800039FFFDF70DFEFFF7FDFDBDE80840FFF72B -:103B9000D9BC0000034611F8012B03F8012B002AC1 -:103BA000F9D17047121012131211000053544D3303 -:103BB00032463F3F3F00000001203300001041012A -:103BC00001105A01031059010710310100000000D3 -:103BD000AC3B00083F000000130400000C3C000850 -:103BE0003F00000019040000163C00083F000000E0 -:103BF00021040000203C00083F0000009433002016 -:103C00001C260020842A0020EC2E002053544D3323 -:103C100032463430780053544D33324634327800D3 -:103C200053544D3332463434365858000096000011 -:103C30000000000000000000000000000000000084 -:103C400000000000E1150008CD1500080916000865 -:103C5000F515000801160008ED150008D915000833 -:103C6000C515000815160008000000001917000807 -:103C700005170008411700082D170008391700081C -:103C80002517000811170008FD1600089D170008E9 -:103C90000000000001000000000000000200000021 -:103CA0000000000045190008AD1900084000400060 -:103CB0002C3800203C3800200200000000000000EA -:103CC0000300000000000000F119000800000000DF -:103CD000100000004C38002000000000010000002F -:103CE00000000000203B0020010102004865782F01 -:103CF00050726F6669434E430043756265426C6162 -:103D0000636B2D424C002553455249414C25000020 -:103D1000352300089D220008B11800081923000867 -:103D200043000000283D000809024300020100C0D2 -:103D300032090400000102020100052400100105FF -:103D40002401000104240202052406000107058263 -:103D5000030800FF09040100020A00000007050132 -:103D60000240000007058102400000001200000030 -:103D7000743D00081201100102000040AE2D011038 -:103D800000020102030100000403090425424F411F -:103D90005244250043756265477265656E2D736FE9 -:103DA0006C6F003031323334353637383941424365 -:103DB0004445460000400000004000000040000074 -:103DC00000400000000001000000020000000200AE -:103DD00000000200000002000000020000000200DB -:103DE0000000020000400000004000000040000011 -:103DF000004000000000010000000200000002007E -:103E000000000200000002000000020000000200AA -:103E10000000020000000000391B0008191E000805 -:103E2000C51E000840004000803B0020803B002071 -:103E300001000000903B00208000000040010000D5 -:103E4000030000006D61696E00000000643E000820 -:103E5000983B0020903D00200100000075350008CF -:103E60000000000069646C65000000000000812A09 -:103E700000020000AAAAAAAA00000000FFFF00009A -:103E80000000000000A00A00000000000000000088 -:103E9000AAAAAAAA00000000FFFF0000000000007C -:103EA000000000001400005400000000AAAAAAAA02 -:103EB00014000054FFFF000000000000000000009C -:103EC00080699A0100000000AAAA8AAA40555501FB -:103ED000FFFF000000707007777000004081020152 -:103EE00000000000AAAAAAAA00410100F7FF0000F2 -:103EF000000000800800000000000000000000003A -:103F0000AAAAAAAA00000000FFFF0000000000000B -:103F1000000000000000000000000000AAAAAAAAF9 -:103F200000000000FFFF0000000000000000000093 -:103F300000000000000000000A0000000000000077 -:103F4000030000000000000000000000000000006E -:103F50000000000000000000000000000000000061 -:103F60000000000000000000FF00960000000008B4 -:103F700004000000883D0008000000000000000070 -:103F80000000000000000000000000000000000031 +:1001E00002E000F000F8FEE772B6374880F30888B6 +:1001F000364880F3098836483649086040F20000E6 +:10020000CCF200004EF63471CEF200010860BFF36C +:100210004F8FBFF36F8F40F20000C0F2F0004EF638 +:100220008851CEF200010860BFF34F8FBFF36F8F8C +:100230004FF00000E1EE100A4EF63C71CEF20001E4 +:100240000860062080F31488BFF36F8F02F074FA01 +:1002500003F074F94FF055301F491B4A91423CBFDF +:1002600041F8040BFAE71D49184A91423CBF41F896 +:10027000040BFAE71A491B4A1B4B9A423EBF51F83E +:10028000040B42F8040BF8E700201849184A914281 +:100290003CBF41F8040BFAE702F052FA03F0A2F96E +:1002A000144C154DAC4203DA54F8041B8847F9E7A7 +:1002B00000F042F8114C124DAC4203DA54F8041B22 +:1002C0008847F9E702F03ABA000600200022002031 +:1002D0000000000808ED00E00000002000060020FB +:1002E000A03E0008002200204C22002050220020C6 +:1002F00020310020E0010008E0010008E0010008D2 +:10030000E00100082DE9F04F2DED108AC1F80CD066 +:10031000C3689D46BDEC108ABDE8F08F002383F3CF +:1003200011882846A047002001F098FDFEE701F063 +:1003300027FD00DFFEE7000038B500F0DFFB02F02C +:10034000CFF940B1164B6FF03F01002259720F21D7 +:100350001A729972DA7202F0A9F9054602F0E2F90E +:100360000446C8B90F4B9D4218D001339D4218BFB7 +:10037000044641F2883504BF01240025002002F024 +:100380009FF90CB100F076F800F018FD284600F057 +:10039000C1F800F06FF8F9E70025EFE70546EDE753 +:1003A00000220020010007B008B500F073FBA0F1A7 +:1003B00020035842584108BD07B541F212030221FB +:1003C00001A8ADF8043000F083FB03B05DF804FB36 +:1003D00038B5302383F31188174803680BB101F057 +:1003E00009FE164A144800234FF47A7101F0F8FD13 +:1003F000002383F31188124C236813B12368013B57 +:100400002360636813B16368013B63600D4D2B7813 +:1004100033B963687BB9022000F03AFC3223636091 +:100420002B78032B07D163682BB9022000F030FC36 +:100430004FF47A73636038BD50220020D103000866 +:100440007023002068220020084B187003280CD865 +:10045000DFE800F008050208022000F00FBC0220CF +:1004600000F002BC024B00225A6070476822002054 +:1004700070230020234B244A10B51C461968013113 +:100480003FD004339342F9D16268A24239D31F4B63 +:100490009B6803F1006303F580439A4231D2002048 +:1004A00000F046FB0220FFF7CFFF194B1A6C002229 +:1004B0001A64196E1A66196E596C5A64596E5A6626 +:1004C0005A6E5A6942F080025A615A6922F08002DB +:1004D0005A615A691A6942F000521A611A6922F087 +:1004E00000521A611B6972B64FF0E0233021C3F845 +:1004F000084DD4E9003281F311889D4683F30888C2 +:10050000104710BD004000082040000800220020D5 +:10051000003802402DE9F04F93B0AA4B0090202202 +:10052000FF210AA89D6800F0F3FBA74A1378A3B93E +:10053000A648012103601170302383F311880368FA +:100540000BB101F057FDA24AA04800234FF47A7185 +:1005500001F046FD002383F31188009B13B19D4BEE +:10056000009A1A609C4A009C1378032B1EBF00233C +:100570001370984A4FF0000A18BF5360D34656468E +:10058000D146012000F07AFB24B1924B1B68002B6E +:1005900000F01182002000F07DFA0390039B002BF5 +:1005A000F2DB012000F060FB039B213B162BE8D817 +:1005B00001A252F823F000BF150600083D0600080E +:1005C000D10600088305000883050008830500089C +:1005D0005B0700082B09000845080008A708000869 +:1005E000CF080008F508000883050008070900087F +:1005F0008305000879090008B5060008830500088E +:10060000BD09000821060008B5060008830500089A +:10061000A70800080220FFF7C7FE002840F0F58178 +:10062000009B0221BAF1000F08BF1C4605A841F249 +:100630001233ADF8143000F04BFAA2E74FF47A70A1 +:1006400000F028FA071EEBDB0220FFF7ADFE0028C2 +:10065000E6D0013F052F00F2DA81DFE807F0030A58 +:100660000D10133605230593042105A800F030FA78 +:1006700017E054480421F9E758480421F6E75848A0 +:100680000421F3E74FF01C08404600F053FA08F14C +:1006900004080590042105A800F01AFAB8F12C0FFF +:1006A000F2D1012000FA07F747EA0B0B5FFA8BFB48 +:1006B0004FF0000900F078FB26B10BF00B030B2B79 +:1006C00008BF0024FFF778FE5BE746480421CDE72A +:1006D000002EA5D00BF00B030B2BA1D10220FFF7AE +:1006E00063FE074600289BD0012000F021FA02207B +:1006F000FFF7AAFE00261FFA86F8404600F028FA07 +:10070000044690B10021404600F032FA013600283C +:10071000F1D1BA46044641F21213022105A8ADF800 +:1007200014303E4600F0D4F92BE70120FFF78CFE91 +:100730002546244B9B68AB4207D9284600F0FAF9BE +:10074000013040F067810435F3E7234B00251D702D +:10075000204BBA465D603E46ACE7002E3FF460AFEA +:100760000BF00B030B2B7FF45BAF0220FFF76CFE4B +:10077000322000F08FF9B0F10008FFF651AF18F009 +:1007800003077FF44DAF0F4A926808EB05039342CD +:100790003FF646AFB8F5807F3FF742AF124B01936B +:1007A000B84523DD4FF47A7000F074F90390039A92 +:1007B000002AFFF635AF019B039A03F8012B01379E +:1007C000EDE700BF002200206C2300205022002013 +:1007D000D10300087023002068220020042200209A +:1007E000082200200C2200206C220020C820FFF7E5 +:1007F000DBFD074600283FF413AF1F2D11D8C5F1CC +:10080000200242450AAB25F0030028BF4246834937 +:100810000192184400F056FA019A8048FF2100F036 +:1008200077FA4FEAA8037D490193C8F38702284667 +:1008300000F076FA064600283FF46DAF019B05EB09 +:10084000830537E70220FFF7AFFD00283FF4E8AE4D +:1008500000F0BAF900283FF4E3AE0027B846704B29 +:100860009B68BB4218D91F2F11D80A9B01330ED0A9 +:1008700027F0030312AA134453F8203C0593404683 +:10088000042205A900F0F6FA04378046E7E7384667 +:1008900000F050F90590F2E7CDF81480042105A886 +:1008A00000F016F906E70023642104A8049300F081 +:1008B00005F900287FF4B4AE0220FFF775FD00288B +:1008C0003FF4AEAE049800F067F90590E6E7002328 +:1008D000642104A8049300F0F1F800287FF4A0AE8E +:1008E0000220FFF761FD00283FF49AAE049800F063 +:1008F00063F9EAE70220FFF757FD00283FF490AEC6 +:1009000000F072F9E1E70220FFF74EFD00283FF406 +:1009100087AE05A9142000F06DF904210746049064 +:1009200004A800F0D5F83946B9E7322000F0B2F853 +:10093000071EFFF675AEBB077FF472AE384A9268A9 +:1009400007EB090393423FF66BAE0220FFF72CFD45 +:1009500000283FF465AE27F003074F44B9453FF444 +:10096000A9AE484600F0E6F80421059005A800F07D +:10097000AFF809F10409F1E74FF47A70FFF714FDBD +:1009800000283FF44DAE00F01FF9002844D00A9B28 +:1009900001330BD008220AA9002000F0C1F9002879 +:1009A0003AD02022FF210AA800F0B2F9FFF704FD97 +:1009B0001C4801F059FA13B0BDE8F08F002E3FF447 +:1009C0002FAE0BF00B030B2B7FF42AAE0023642118 +:1009D00005A8059300F072F8074600287FF420AEC2 +:1009E0000220FFF7E1FC804600283FF419AEFFF734 +:1009F000E3FC41F2883001F037FA059800F018FA6C +:100A0000464600F0D1F93C46BBE5064652E64FF0BB +:100A1000000905E6BA467EE637467CE66C220020F1 +:100A200000220020A08601002DE9F84F4FF47A73D0 +:100A3000DFF85880DFF8589006460D4602FB03F7B2 +:100A4000002498F900305A1C5FFA84FA01D0A342BE +:100A500012D159F8240003682A46D3F820B0314651 +:100A60003B46D847854207D1074B012083F800A0B9 +:100A7000BDE8F88F0124E4E7002CFBD04FF4FA70B6 +:100A800001F0F2F90020F3E7B82300201022002043 +:100A90001422002007B50023024601210DF10700B2 +:100AA0008DF80730FFF7C0FF20B19DF8070003B0B5 +:100AB0005DF804FB4FF0FF30F9E700000A4608B587 +:100AC0000421FFF7B1FF80F00100C0B2404208BD31 +:100AD00030B4074B0A461978064B53F82140236877 +:100AE000DD69054B0146AC46204630BC604700BF7F +:100AF000B823002014220020A086010070B501F068 +:100B0000D3FC094E094D3080002428683388834285 +:100B100008D901F0C3FC2B6804440133B4F5804FBD +:100B20002B60F2D370BD00BFBA23002078230020D1 +:100B300001F070BD00F1006000F580400068704772 +:100B400000F10060920000F5804001F0FBBC000065 +:100B5000054B1A68054B1B889B1A834202D9104427 +:100B600001F09CBC0020704778230020BA230020AD +:100B700038B5084D044629B128682044BDE83840FE +:100B800001F0ACBC2868204401F090FC0028F3D0B0 +:100B900038BD00BF7823002010F003030AD1B0F560 +:100BA000047F05D200F10050A0F51040D0F80038C5 +:100BB000184670470023FBE700F10050A0F51040F5 +:100BC000D0F8100A70470000064991F8243033B17C +:100BD0000023086A81F824300822FFF7B1BF012002 +:100BE000704700BF7C230020014B1868704700BF8E +:100BF000002004E070B5194B1D68194B0138C5F38E +:100C00000B0408442D0C04221E88A6420BD15C68FC +:100C10000A46013C824213460FD214F9016F4EB1CD +:100C200002F8016BF6E7013A03F10803ECD18142C7 +:100C30000B4602D22C2203F8012B0A4A05241688FF +:100C4000AE4204D1984284BF967803F8016B013C10 +:100C500002F10402F3D1581A70BD00BF002004E075 +:100C6000503B00083C3B0008022802BF024B4FF4F7 +:100C700080529A61704700BF00100240022802BFF4 +:100C8000024B4FF080529A61704700BF0010024043 +:100C9000022801BF024A536983F4805353617047AD +:100CA0000010024070B504464FF47A764CB1412CE6 +:100CB000254628BF412506FB05F001F0D5F8641B49 +:100CC000F4E770BD10B50023934203D0CC5CC4544C +:100CD0000133F9E710BD000010B5013810F9013FEC +:100CE0003BB191F900409C4203D11AB10131013A64 +:100CF000F4E71AB191F90020981A10BD1046FCE7EC +:100D000003460246D01A12F9011B0029FAD1704796 +:100D100002440346934202D003F8011BFAE77047EE +:100D20002DE9F8431F4D144695F8242007468846C0 +:100D300052BBDFF870909CB395F824302BB9202279 +:100D4000FF2148462F62FFF7E3FF95F82400C0F12A +:100D50000802A24228BF2246D6B24146920005EBC5 +:100D60008000FFF7AFFF95F82430A41B1E44F6B2B5 +:100D7000082E17449044E4B285F82460DBD1FFF7D5 +:100D800023FF0028D7D108E02B6A03EB82038342BC +:100D9000CFD0FFF719FF0028CBD10020BDE8F883A2 +:100DA0000120FBE77C230020024B1A78024B1A70CB +:100DB000704700BFB82300201022002038B5174C20 +:100DC000174D204600F0B6FB2946204600F0DEFB1A +:100DD0002D686A6D936B23F4002393634FF47A704C +:100DE000FFF760FF0F49284600F0D6FC6A6D0E4DF4 +:100DF000936B28680D4943F400239363A0424FF49A +:100E0000E1330B6001D000F0F5FA6868A04204D02D +:100E1000BDE83840054900F0EDBA38BD98280020FB +:100E20005C3C0008643C000814220020A42300203D +:100E300070B50C4B0C4D1E780C4B55F826209A4281 +:100E400004460DD00A4B002114221846FFF760FF1C +:100E50000460014655F82600BDE8704000F0CABAAB +:100E600070BD00BFB8230020142200209828002065 +:100E7000A423002030B5094D0A4491420DD011F849 +:100E8000013B5840082340F30004013B2C4013F081 +:100E9000FF0384EA5000F6D1EFE730BD2083B8EDC0 +:100EA000026843681143016003B1184770470000AE +:100EB000024AD36843F0C003D36070470044004047 +:100EC00010B5054C054A0021204600F071FA044A8D +:100ED000044BC4E9972310BDBC230020B10E0008C9 +:100EE0000044004080DE8002234A037C002918BFB2 +:100EF0000A46012B30B5C0F868220CD11F4B98422E +:100F000009D11F4B196C41F400311964196E41F479 +:100F1000003119661B6EB2F904501468D0F86032C3 +:100F2000D0F85C12002D03EB5403B3FBF4F3BEBF07 +:100F300023F0070503F0070343EA450394888B6019 +:100F4000D38843F040030B61138943F001034B61E5 +:100F500044F4045343F02C03CB6004F4A054002366 +:100F60000B60B4F5806F0B684B680CBF7F23FF23C9 +:100F700080F8643230BD00BF703B0008BC23002005 +:100F8000003802402DE9F041D0F85C62F768336820 +:100F9000DA0504469DB20DD5302383F311884FF452 +:100FA00080610430FFF77CFF6FF4807333600023AF +:100FB00083F31188302383F3118804F1040815F0BA +:100FC0002F033AD183F31188380615D5290613D596 +:100FD000302383F3118804F1380000F065F900280C +:100FE0004EDA0821201DFFF75BFF4FF67F733B4071 +:100FF000F360002383F311887A0616D56B0614D5A7 +:10100000302383F31188D4E913239A420AD1236C45 +:1010100043B127F040073F041021201D3F0CFFF78C +:101020003FFFF760002383F31188D4F86822D36868 +:1010300043B3BDE8F041106918472B0714D015F0F1 +:10104000080F0CBF00214FF48071E80748BF41F042 +:101050002001AA0748BF41F040016B0748BF41F09B +:1010600080014046FFF71CFFAD06736805D594F874 +:1010700064122046194000F0CBF93568ADB29EE706 +:101080007060B6E7BDE8F081F8B51546826806697C +:10109000AA420B46816938BF8568761AB542044674 +:1010A0000BD218462A46FFF70DFEA3692B44A36115 +:1010B000A3685B1BA3602846F8BD0CD918463246CE +:1010C000FFF700FEAF1BE1683A463044FFF7FAFD38 +:1010D000E3683B44EBE718462A46FFF7F3FDE36875 +:1010E000E5E7000083689342F7B51546044638BF2C +:1010F0008568D0E90460361AB5420BD22A46FFF75C +:10110000E1FD63692B446361A36828465B1BA36010 +:1011100003B0F0BD0DD932460191FFF7D3FD01991F +:10112000E068AF1B3A463144FFF7CCFDE3683B442F +:10113000E9E72A46FFF7C6FDE368E4E710B50A448D +:101140000024C361029B8460C0E90000C0E905116E +:10115000C1600261036210BD08B5D0E90532934257 +:1011600001D1826882B98268013282605A1C426170 +:101170001970D0E904329A4224BFC3684361002148 +:1011800000F08EFE002008BD4FF0FF30FBE70000AE +:1011900070B5302304460E4683F31188A568A5B1C7 +:1011A000A368A269013BA360531CA361157822695F +:1011B000934224BFE368A361E3690BB120469847DB +:1011C000002383F31188284607E03146204600F0CB +:1011D00057FE0028E2DA85F3118870BD2DE9F74F3C +:1011E00004460E4617469846D0F81C904FF0300A39 +:1011F0008AF311884FF0000B154665B12A46314637 +:101200002046FFF741FF034660B94146204600F003 +:1012100037FE0028F1D0002383F31188781B03B038 +:10122000BDE8F08FB9F1000F03D001902046C84708 +:10123000019B8BF31188ED1A1E448AF31188DCE7B9 +:10124000C0E90511C160C3611144009B8260C0E91F +:101250000000016103627047F8B504460D4616466A +:10126000302383F31188A768A7B1A368013BA3606B +:1012700063695A1C62611D70D4E904329A4224BF2A +:10128000E3686361E3690BB120469847002080F36F +:10129000118807E03146204600F0F2FD0028E2DA2E +:1012A00087F31188F8BD0000D0E905239A4210B5F4 +:1012B00001D182687AB98268013282605A1C8261E7 +:1012C0001C7803699A4224BFC3688361002100F03F +:1012D000E7FD204610BD4FF0FF30FBE72DE9F74F4B +:1012E00004460E4617469846D0F81C904FF0300A38 +:1012F0008AF311884FF0000B154665B12A46314636 +:101300002046FFF7EFFE034660B94146204600F055 +:10131000B7FD0028F1D0002383F31188781B03B0B8 +:10132000BDE8F08FB9F1000F03D001902046C84707 +:10133000019B8BF31188ED1A1E448AF31188DCE7B8 +:10134000026843681143016003B118477047000009 +:101350001430FFF743BF00004FF0FF331430FFF7A6 +:101360003DBF00003830FFF7B9BF00004FF0FF333A +:101370003830FFF7B3BF00001430FFF709BF00009B +:101380004FF0FF311430FFF703BF00003830FFF794 +:1013900063BF00004FF0FF323830FFF75DBF000041 +:1013A000012914BF6FF0130000207047FFF788BDBC +:1013B00037B515460E4A026000224260C0E902229B +:1013C0000122044602740B46009000F15C014FF4C8 +:1013D00080721430FFF7B2FE00942B464FF48072F7 +:1013E00004F5AE7104F13800FFF72AFF03B030BDF9 +:1013F000843B000810B53023044683F31188FFF7BF +:1014000073FD02232374002080F3118810BD0000B7 +:1014100038B5C36904460D461BB904210844FFF7DB +:101420008FFF294604F11400FFF796FE002806DA24 +:10143000201D4FF40061BDE83840FFF781BF38BD83 +:10144000026843681143016003B118477047000008 +:1014500013B5446BD4F894341A681178042915D163 +:10146000217C022912D11979128901238B40134260 +:101470000CD101A904F14C0001F016FFD4F89444FA +:10148000019B21790246206800F0D0F902B010BD1E +:10149000143001F099BE00004FF0FF33143001F01A +:1014A00093BE00004C3001F06BBF00004FF0FF33E3 +:1014B0004C3001F065BF0000143001F067BE000041 +:1014C0004FF0FF31143001F061BE00004C3001F0EC +:1014D00037BF00004FF0FF324C3001F031BF000049 +:1014E0000020704710B5D0F894341A681178042998 +:1014F000044617D1017C022914D15979528901235C +:101500008B4013420ED1143001F0FAFD024648B16F +:10151000D4F894444FF4807361792068BDE810409A +:1015200000F072B910BD0000406BFFF7DBBF000098 +:10153000704700007FB5124B036000234360C0E991 +:101540000233012502260F4B0574044602900193D5 +:1015500000F18402294600964FF48073143001F0A4 +:10156000ABFD094B0294CDE9006304F523724FF4FF +:101570008073294604F14C0001F072FE04B070BD86 +:10158000AC3B000829150008511400080B683022F4 +:1015900082F311880A7903EB820290614A79093259 +:1015A00043F822008A7912B103EB82039861022387 +:1015B000C0F894140374002080F311887047000071 +:1015C00038B5037F044613B190F85430ABB9201DF1 +:1015D00001250221FFF734FF04F1140025776FF095 +:1015E000010100F069FC84F8545004F14C006FF0E4 +:1015F0000101BDE8384000F05FBC38BD10B50121E5 +:1016000004460430FFF71CFF0023237784F854308E +:1016100010BD000038B504460025143001F064FD0B +:1016200004F14C00257701F033FE201D84F854505E +:101630000121FFF705FF2046BDE83840FFF752BF04 +:1016400090F8443003F06003202B07D190F8452038 +:10165000212A4FF0000303D81F2A06D80020704724 +:10166000222AFBD1C0E90E3303E0034A826307223A +:10167000C2630364012070471C22002037B5D0F8F4 +:1016800094341A681178042904461AD1017C02297D +:1016900017D11979128901238B40134211D100F11E +:1016A0004C05284601F0B4FE58B101A9284601F0C6 +:1016B000FBFDD4F89444019B21790246206800F098 +:1016C000B5F803B030BD0000F0B500EB810385B084 +:1016D0009E6904460D46FEB1302383F3118804EB66 +:1016E0008507301D0821FFF7ABFEFB685B691B68AF +:1016F00006F14C001BB1019001F0E4FD019803A933 +:1017000001F0D2FD024648B1039B2946204600F075 +:101710008DF8002383F3118805B0F0BDFB685A698A +:101720001268002AF5D01B8A013B1340F1D104F165 +:101730004402EAE7093138B550F82140DCB13023E2 +:1017400083F31188D4F894241368527903EB82034D +:10175000DB689B695D6845B104216018FFF770FE86 +:10176000294604F1140001F0D5FC2046FFF7BAFE2B +:10177000002383F3118838BD7047000001F034B8AE +:10178000012303700023C0E90133C3618362036254 +:10179000C36243620363704738B50446302383F362 +:1017A00011880025C0E90355C0E90555416001F0E5 +:1017B0002BF80223237085F31188284638BD0000DA +:1017C00070B500EB810305465069DA600E46144699 +:1017D00018B110220021FFF79BFAA06918B110225E +:1017E0000021FFF795FA31462846BDE8704001F028 +:1017F000D5B80000826802F0011282600022C0E9C0 +:101800000422826101F056B9F0B400EB81044789EB +:10181000E4680125A4698D403D4345812360002390 +:10182000A2606360F0BC01F071B90000F0B400EB9D +:1018300081040789E468012564698D403D43058181 +:1018400023600023A2606360F0BC01F0EBB90000EC +:1018500070B50223002504460370C0E90255C0E9B3 +:101860000455C564856180F8345001F033F863682D +:101870001B6823B129462046BDE87040184770BD5B +:101880000378052B10B504460AD080F850300523A4 +:10189000037043681B680BB1042198470023A360C1 +:1018A00010BD00000178052906D190F8502043684A +:1018B00002701B6803B118477047000070B590F8BC +:1018C0003430044613B1002380F8343004F144026C +:1018D000204601F011F963689B68B3B994F844306D +:1018E00013F0600535D00021204601F0B1FB002146 +:1018F000204601F0A3FB63681B6813B10621204654 +:101900009847062384F8343070BD20469847002855 +:10191000E4D0B4F84A30E26B9A4288BFE36394F9AA +:101920004430E56B002B4FF0300380F20381002D33 +:1019300000F0F280092284F8342083F3118800211A +:10194000D4E90E232046FFF771FF002383F31188AB +:10195000DAE794F8452003F07F0343EA022340F2DC +:101960000232934200F0C58021D8B3F5807F48D081 +:101970000DD8012B3FD0022B00F09380002BB2D169 +:1019800004F14C02A2630222E2632364C1E7B3F5CF +:10199000817F00F09B80B3F5407FA4D194F846305E +:1019A000012BA0D1B4F84C3043F0020332E0B3F580 +:1019B000006F4DD017D8B3F5A06F31D0A3F5C06339 +:1019C000012B90D8636894F846205E6894F847101D +:1019D000B4F848302046B047002884D04368A36359 +:1019E0000368E3631AE0B3F5106F36D040F60242A5 +:1019F00093427FF478AF5C4BA3630223E36300233D +:101A0000C3E794F84630012B7FF46DAFB4F84C3047 +:101A100023F00203C4E90E55A4F84C30256478E79E +:101A2000B4F84430B3F5A06F0ED194F8463084F882 +:101A30004E30204600F0A6FF63681B6813B10121F9 +:101A400020469847032323700023C4E90E339CE704 +:101A500004F14F03A3630123C3E72378042B10D1C0 +:101A6000302383F311882046FFF7C4FE85F31188E5 +:101A70000321636884F84F5021701B680BB1204626 +:101A8000984794F84630002BDED084F84F3004237A +:101A9000237063681B68002BD6D00221204698472C +:101AA000D2E794F848301D0603F00F0120460AD50E +:101AB00001F014F8012804D002287FF414AF2B4B56 +:101AC0009AE72B4B98E700F0FBFFF3E794F84630DA +:101AD000002B7FF408AF94F8483013F00F01B3D017 +:101AE0001A06204602D501F0C7FAADE701F0BAFAAE +:101AF000AAE794F84630002B7FF4F5AE94F848300E +:101B000013F00F01A0D01B06204602D501F0A0FA69 +:101B10009AE701F093FA97E7142284F8342083F3CC +:101B200011882B462A4629462046FFF76DFE85F38D +:101B30001188E9E65DB1152284F8342083F3118819 +:101B40000021D4E90E232046FFF75EFEFDE60B22BE +:101B500084F8342083F311882B462A4629462046F0 +:101B6000FFF764FEE3E700BFDC3B0008D43B00085E +:101B7000D83B000838B590F834300446002B3ED0EE +:101B8000063BDAB20F2A34D80F2B32D8DFE803F045 +:101B9000373131082232313131313131313137375A +:101BA000C56BB0F84A309D4214D2C3681B8AB5FB9E +:101BB000F3F203FB12556DB9302383F311882B46E2 +:101BC0002A462946FFF732FE85F311880A2384F856 +:101BD00034300EE0142384F83430302383F311883A +:101BE00000231A4619462046FFF70EFE002383F312 +:101BF000118838BD036C03B198470023E7E7002143 +:101C0000204601F025FA0021204601F017FA63680A +:101C10001B6813B10621204698470623D7E700002A +:101C200010B590F83430142B044629D017D8062B61 +:101C300005D001D81BB110BD093B022BFBD80021F8 +:101C4000204601F005FA0021204601F0F7F963680B +:101C50001B6813B1062120469847062319E0152B6F +:101C6000E9D10B2380F83430302383F3118800232B +:101C70001A461946FFF7DAFD002383F31188DAE7E5 +:101C8000C3689B695B68002BD5D1036C03B198478F +:101C9000002384F83430CEE700230375826803699B +:101CA0001B6899689142FBD25A68036042601060D9 +:101CB0005860704700230375826803691B68996840 +:101CC0009142FBD85A6803604260106058607047C8 +:101CD00008B50846302383F311880B7D032B05D00C +:101CE000042B0DD02BB983F3118808BD8B6900221A +:101CF0001A604FF0FF338361FFF7CEFF0023F2E756 +:101D0000D1E9003213605A60F3E70000FFF7C4BF67 +:101D1000054BD9680875186802681A60536001227B +:101D20000275D860FEF7EEBA2826002030B50C4BBD +:101D3000DD684B1C87B004460FD02B46094A684625 +:101D400000F04EF92046FFF7E3FF009B13B1684611 +:101D500000F050F9A86907B030BDFFF7D9FFF9E7E7 +:101D600028260020D11C0008044B1A68DB68906804 +:101D70009B68984294BF00200120704728260020CD +:101D8000084B10B51C68D86822681A60536001229D +:101D90002275DC60FFF78EFF01462046BDE810404B +:101DA000FEF7B0BA2826002038B5074C0749084886 +:101DB000012300252370656001F068FB0223237076 +:101DC00085F3118838BD00BF90280020E43B00084F +:101DD0002826002000F044B9034A516853685B1A72 +:101DE0009842FBD8704700BF001000E08B600223D0 +:101DF00008618B82084670478368A3F1840243F828 +:101E0000142C026943F8442C426943F8402C094AD7 +:101E100043F8242CC26843F8182C022203F80C2C37 +:101E2000002203F80B2C044A43F8102CA3F12000E5 +:101E3000704700BF1D0300082826002008B5FFF7E3 +:101E4000DBFFBDE80840FFF761BF0000024BDB6825 +:101E500098610F20FFF75CBF28260020302383F312 +:101E60001188FFF7F3BF000008B50146302383F364 +:101E700011880820FFF75AFF002383F3118808BD5B +:101E8000064BDB6839B1426818605A6013604360E2 +:101E90000420FFF74BBF4FF0FF307047282600208B +:101EA0000368984206D01A6802605060996118462B +:101EB000FFF72CBF7047000038B504460D46206878 +:101EC000844200D138BD036823605C608561FFF700 +:101ED0001DFFF4E710B503689C68A2420CD85C684B +:101EE0008A600B604C602160596099688A1A9A6018 +:101EF0004FF0FF33836010BD1B68121BECE700003E +:101F00000A2938BF0A2170B504460D460A26601911 +:101F100001F0B4FA01F09CFA041BA54203D8751C29 +:101F20002E460446F3E70A2E04D9BDE8704001208E +:101F300001F0ECBA70BD0000F8B5144B0D46D96144 +:101F400003F1100141600A2A1969826038BF0A2230 +:101F5000016048601861A818144601F07FFA0A274A +:101F600001F076FA431BA342064606D37C1C2819CF +:101F700001F084FA27463546F2E70A2F04D9BDE876 +:101F8000F840012001F0C2BAF8BD00BF28260020A9 +:101F9000F8B506460D4601F05BFA0F4A134653F8B2 +:101FA000107F9F4206D12A4601463046BDE8F840E0 +:101FB000FFF7C2BFD169BB68441A2C1928BF2C4651 +:101FC000A34202D92946FFF79BFF22463146034828 +:101FD000BDE8F840FFF77EBF282600203826002005 +:101FE00010B4C0E9032300235DF8044B4361FFF7FD +:101FF000CFBF000010B5194C236998420DD0D0E92D +:102000000032816813605A609A680A449A6000231B +:1020100003604FF0FF33A36110BD2346026843F80D +:10202000102F53600022026022699A4203D1BDE85A +:10203000104001F01DBA936881680B44936001F071 +:1020400007FA2269E1699268441AA242E4D911446C +:10205000BDE81040091AFFF753BF00BF2826002033 +:102060002DE9F047DFF8BC8008F110072C4ED8F8B6 +:10207000105001F0EDF9D8F81C40AA68031B9A42F1 +:102080003ED81444D5E900324FF00009C8F81C408E +:1020900013605A60C5F80090D8F81030B34201D1EF +:1020A00001F0E6F989F31188D5E90331284698470C +:1020B000302383F311886B69002BD8D001F0C8F965 +:1020C0006A69A0EB04094A4582460DD2022001F05C +:1020D0001DFA0022D8F81030B34208D151462846E4 +:1020E000BDE8F047FFF728BF121A2244F2E712EBCF +:1020F000090938BF4A4629463846FFF7EBFEB5E7DF +:10210000D8F81030B34208D01444211AC8F81C0083 +:10211000A960BDE8F047FFF7F3BEBDE8F08700BF58 +:10212000382600202826002000207047FEE7000007 +:10213000704700004FF0FF307047000002290CD0BC +:10214000032904D00129074818BF00207047032A3B +:1021500005D8054800EBC2007047044870470020CE +:10216000704700BFC03C00082C220020743C0008CF +:1021700070B59AB00546084601A9144600F0C2F8A9 +:1021800001A8FEF7BDFD431C5B00C5E90034002239 +:10219000237003236370C6B201AB02341046D1B280 +:1021A0008E4204F1020401D81AB070BD13F8011B6D +:1021B00004F8021C04F8010C0132F0E708B53023E2 +:1021C00083F311880348FFF759FA002383F311883A +:1021D00008BD00BF9828002090F8443003F01F028B +:1021E000012A07D190F845200B2A03D10023C0E92A +:1021F0000E3315E003F06003202B08D1B0F848300F +:102200002BB990F84520212A03D81F2A04D8FFF7BC +:1022100017BA222AEBD0FAE7034A82630722C26385 +:1022200003640120704700BF2322002007B5052961 +:1022300017D8DFE801F0191603191920302383F3AA +:102240001188104A01900121FFF7BAFA01980E4A4D +:102250000221FFF7B5FA0D48FFF7DCF9002383F3FD +:10226000118803B05DF804FB302383F3118807481D +:10227000FFF7A6F9F2E7302383F311880348FFF74D +:10228000BDF9EBE7143C0008383C00089828002012 +:1022900038B50C4D0C4C0D492A4604F10800FFF7E7 +:1022A00067FF05F1CA0204F110000949FFF760FF5A +:1022B00005F5CA7204F118000649BDE83840FFF779 +:1022C00057BF00BF602D00202C220020F03B0008EB +:1022D000FD3B0008083C000870B5044608460D4662 +:1022E000FEF70EFDC6B22046013403780BB918463E +:1022F00070BD32462946FEF7EFFC0028F3D10120DD +:10230000F6E700002DE9F04705460C46FEF7F8FC1D +:102310002B49C6B22846FFF7DFFF08B10736F6B2F1 +:1023200028492846FFF7D8FF08B11036F6B2632EC9 +:102330000BD8DFF88C80DFF88C90234FDFF894A067 +:102340002E7846B92670BDE8F08729462046BDE8BC +:10235000F04701F0D5BB252E2ED107224146284655 +:10236000FEF7BAFC70B9194B224603F10C0153F881 +:10237000040B42F8040B8B42F9D11B8813800735FC +:102380000E34DDE7082249462846FEF7A5FC98B939 +:102390000F4BA21C197809090232C95D02F8041C0E +:1023A00013F8011B01F00F015345C95D02F8031C2E +:1023B000F0D118340835C3E704F8016B0135BFE7E5 +:1023C000E03C0008083C0008F73C0008E83C000836 +:1023D000107AFF1F1C7AFF1FBFF34F8F024AD3688A +:1023E000DB03FCD4704700BF003C024008B5094B3A +:1023F0001B7873B9FFF7F0FF074B1A69002ABFBFBC +:10240000064A5A6002F188325A601A6822F48062E1 +:102410001A6008BDBE2F0020003C02402301674522 +:1024200008B50B4B1B7893B9FFF7D6FF094B1A6918 +:1024300042F000421A611A6842F480521A601A6827 +:1024400022F480521A601A6842F480621A6008BD51 +:10245000BE2F0020003C02401728F0B516D80C4CC7 +:102460000C4923787BB90C4D0E4618234FF00062BF +:1024700055F8047B46F8042B013B13F0FF033A4464 +:10248000F6D10123237051F82000F0BD0020FCE7B5 +:1024900020300020C02F0020083D0008014B53F8D9 +:1024A00020007047083D000818207047172810B515 +:1024B000044601D9002010BDFFF7CEFF064B53F8AC +:1024C00024301844C21A0BB90120F4E71268013213 +:1024D000F0D1043BF6E700BF083D0008172838B5E7 +:1024E000044628D81549FFF777FFFFF77FFFF3234E +:1024F000CB600C23B0FBF3F203FB1205D30143EADC +:10250000C503DBB243F4007343F002030B610B69B4 +:1025100043F480330B61FFF75FFFFFF79DFF084B2C +:1025200053F8241000F0DAF8FFF77AFF2046BDE8F0 +:102530003840FFF7BBBF002038BD00BF003C024061 +:10254000083D0008F8B512F00103144642D1821884 +:10255000B2F1026F57D82D4B1B6813F0010352D014 +:102560002B4DFFF743FFF323EB60FFF735FF40F2FE +:102570000127032C15D824F001046618244C401AB6 +:1025800040F20117B142236900EB010524D123F089 +:1025900001032361FFF744FF0120F8BD043C043030 +:1025A000E7E78307E7D12B6923F440732B612B699D +:1025B0003B432B6151F8046B0660BFF34F8FFFF76D +:1025C0000BFF03689E42E9D02B6923F001032B61C6 +:1025D000FFF726FF0020E0E723F44073236123691F +:1025E0003B4323610B882B80BFF34F8FFFF7F4FE33 +:1025F0002D8831F8023BADB2AB42C3D0236923F042 +:1026000001032361E4E71846C7E700BF0038024032 +:10261000003C0240084908B50B7828B11BB9FFF708 +:10262000E5FE01230B7008BD002BFCD0BDE808407F +:102630000870FFF7F5BE00BFBE2F002010B50244A2 +:10264000064BD2B2904200D110BD441C00B253F8E8 +:10265000200041F8040BE0B2F4E700BF502800402E +:102660000F4B30B51C6F240407D41C6F44F4007466 +:102670001C671C6F44F400441C670A4C236843F435 +:10268000807323600244084BD2B2904200D130BD27 +:10269000441C00B251F8045B43F82050E0B2F4E768 +:1026A00000380240007000405028004007B5012269 +:1026B00001A90020FFF7C2FF019803B05DF804FBF9 +:1026C00013B50446FFF7F2FFA04205D0012201A98D +:1026D00000200194FFF7C4FF02B010BD7047000056 +:1026E000094B5A88B2F5805F10460BD022F00203E6 +:1026F00041F20102934205D041F20703C31A584246 +:102700005841704701207047002004E0034B1A68CD +:102710001AB9034AD2F874281A607047243000208E +:102720000030024008B5FFF7F1FF024B1868C0F314 +:10273000407008BD2430002070470000FEE7000014 +:102740000A4B0B480B4A90420BD30B4BDA1C121A64 +:10275000C11E22F003028B4238BF00220021FEF787 +:10276000D7BA53F8041B40F8041BECE7EC3E000812 +:1027700020310020203100202031002070B5D0E928 +:1027800015439E6800224FF0FF3504EB42135101C0 +:10279000D3F800090028BEBFD3F8000940F08040FC +:1027A000C3F80009D3F8000B0028BEBFD3F8000B14 +:1027B00040F08040C3F8000B013263189642C3F822 +:1027C0000859C3F8085BE0D24FF00113C4F81C3875 +:1027D00070BD0000890141F02001016103699B0681 +:1027E000FCD41220FFF7F8BA10B5054C2046FEF7CE +:1027F000C7FF4FF0A0436365024BA36510BD00BF48 +:10280000283000208C3D000870B50378012B054668 +:1028100050D12A4B446D98421BD1294B5A6B42F040 +:1028200080025A635A6D42F080025A655A6D5A69A5 +:1028300042F080025A615A6922F080025A610E21E8 +:1028400043205B6900F022FC1E4BE3601E4BC4F882 +:1028500000380023C4F8003EC02323606E6D4FF49F +:102860005023A3633369002BFCDA012333610C206E +:10287000FFF7B2FA3369DB07FCD41220FFF7ACFA9A +:102880003369002BFCDA0026A6602846FFF776FFA6 +:102890006B68C4F81068DB68C4F81468C4F81C6876 +:1028A0004BB90A4BA3614FF0FF336361A36843F058 +:1028B0000103A36070BD064BF4E700BF2830002081 +:1028C000003802404014004003002002003C30C0A9 +:1028D000083C30C0F8B5446D054600212046FFF79E +:1028E00079FFA96D00234FF001128F68C4F83438C6 +:1028F0004FF00066C4F81C284FF0FF3004EB431281 +:1029000001339F42C2F80069C2F8006BC2F808099F +:10291000C2F8080BF2D20B686A6DEB656362102394 +:102920001361166916F01006FBD11220FFF754FA56 +:10293000D4F8003823F4FE63C4F80038A36943F4E4 +:10294000402343F01003A3610923C4F81038C4F8EE +:1029500014380A4BEB604FF0C043C4F8103B084BEF +:10296000C4F8003BC4F81069C4F80039EB6D03F1FA +:10297000100243F48013EA65A362F8BD683D0008C5 +:1029800040800010426D90F84E10D2F8003823F4C9 +:10299000FE6343EA0113C2F8003870472DE9F8439B +:1029A00000EB8103456DDA68166806F00306731EB6 +:1029B000022B05EB41130C4680460FFA81F94FEAD2 +:1029C00041104FF00001C3F8101B4FF0010104F15A +:1029D000100398BFB60401FA03F391698EBF334E1A +:1029E00006F1805606F5004600293AD0578A04F1D0 +:1029F0005801490137436F50D5F81C180B43C5F8EF +:102A00001C382B180021C3F8101953690127611EC7 +:102A1000A7409BB3138A928B9B08012A88BF53431C +:102A2000D8F85C20981842EA034301F1400205EB14 +:102A30008202C8F85C00214653602846FFF7CAFEB0 +:102A400008EB8900C3681B8A43EA84534834640155 +:102A50001E432E51D5F81C381F43C5F81C78BDE81D +:102A6000F88305EB4917D7F8001B21F40041C7F89C +:102A7000001BD5F81C1821EA0303C0E704F13F034B +:102A800005EB83030A4A5A6028462146FFF7A2FE57 +:102A900005EB4910D0F8003923F40043C0F80039A1 +:102AA000D5F81C3823EA0707D7E700BF00800010DD +:102AB00000040002826D1268C265FFF75FBE00006D +:102AC0005831436D49015B5813F4004004D013F4AE +:102AD000001F0CBF02200120704700004831436DE9 +:102AE00049015B5813F4004004D013F4001F0CBFDD +:102AF000022001207047000000EB8101CB68196AB9 +:102B00000B6813604B6853607047000000EB810353 +:102B100030B5DD68AA691368D36019B9402B84BF4A +:102B2000402313606B8A1468426D1C44013CB4FB63 +:102B3000F3F46343033323F0030302EB411043EA4E +:102B4000C44343F0C043C0F8103B2B6803F00303B9 +:102B5000012B09B20ED1D2F8083802EB411013F460 +:102B6000807FD0F8003B14BF43F0805343F0005304 +:102B7000C0F8003B02EB4112D2F8003B43F00443A3 +:102B8000C2F8003B30BD00002DE9F041244D6E6DD0 +:102B900006EB40130446D3F8087BC3F8087B3807DC +:102BA0000AD5D6F81438190706D505EB8403214653 +:102BB000DB6828465B689847FA071FD5D6F81438B3 +:102BC000DB071BD505EB8403D968CCB98B69488A30 +:102BD0005A68B2FBF0F600FB16228AB91868DA6868 +:102BE00090420DD2121AC3E90024302383F31188D6 +:102BF0000B482146FFF78AFF84F31188BDE8F08176 +:102C0000012303FA04F26B8923EA02036B81CB6888 +:102C1000002BF3D021460248BDE8F041184700BF21 +:102C20002830002000EB810370B5DD68436D6C69CE +:102C30002668E6604A0156BB1A444FF40020C2F8E9 +:102C400010092A6802F00302012A0AB20ED1D3F851 +:102C5000080803EB421410F4807FD4F8000914BF75 +:102C600040F0805040F00050C4F8000903EB4212DD +:102C7000D2F8000940F00440C2F80009D3F8340843 +:102C8000012202FA01F10143C3F8341870BD19B9E9 +:102C9000402E84BF4020206020682E8A8419013C89 +:102CA000B4FBF6F440EAC44040F000501A44C6E7D2 +:102CB0002DE9F8433B4D6E6D06EB40130446D3F807 +:102CC0000889C3F8088918F0010F4FEA40171AD095 +:102CD000D6F81038DB0716D505EB8003D9684B69A9 +:102CE0001868DA68904230D2121A4FF000091A6060 +:102CF000C3F80490302383F3118821462846FFF758 +:102D000091FF89F3118818F0800F1CD0D6F8343861 +:102D10000126A640334216D005EB84036D6DD3F82F +:102D20000CC0DCF814200134E4B2D2F800E005EB6A +:102D300004342F445168714515D3D5F8343823EA4B +:102D40000606C5F83468BDE8F883012303FA04F2E7 +:102D50002B8923EA02032B818B68002BD3D02146D9 +:102D600028469847CFE7BCF81000AEEB010383423A +:102D700028BF0346D7F8180980B2B3EB800FE2D81A +:102D80009068A0F1040959F8048FC4F80080A0EB02 +:102D900009089844B8F1040FF5D818440B44906022 +:102DA0005360C7E7283000202DE9F74FA24C656D2E +:102DB0006E69AB691E4016F480586E6107D02046DC +:102DC000FEF746FD03B0BDE8F04F00F04DBC002E0D +:102DD00012DAD5F8003E98489B071EBFD5F8003E92 +:102DE00023F00303C5F8003ED5F8043823F00103AF +:102DF000C5F80438FEF756FD370505D58E48FFF7B0 +:102E0000BDFC8D48FEF73CFDB0040CD5D5F8083864 +:102E100013F0060FEB6823F470530CBF43F4105308 +:102E200043F4A053EB6031071BD56368DB681BB923 +:102E3000AB6923F00803AB612378052B0CD1D5F8DF +:102E4000003E7D489A071EBFD5F8003E23F00303DD +:102E5000C5F8003EFEF726FD6368DB680BB17648D7 +:102E60009847F30274D4B70227D5D4F85490DFF80A +:102E7000C8B100274FF0010A09EB4712D2F8003B16 +:102E800003F44023B3F5802F11D1D2F8003B002B7F +:102E90000DDA62890AFA07F322EA0303638104EB7D +:102EA0008703DB68DB6813B1394658469847A36D42 +:102EB00001379B68FFB29F42DED9F00617D5676DD8 +:102EC0003A6AC2F30A1002F00F0302F4F012B2F5EC +:102ED000802F00F08580B2F5402F08D104EB8303EA +:102EE0000022DB681B6A07F5805790426AD13003E5 +:102EF000D5F8184813D5E10302D50020FFF744FEAA +:102F0000A20302D50120FFF73FFE630302D5022092 +:102F1000FFF73AFE270302D50320FFF735FE7503BE +:102F20007FF550AFE00702D50020FFF7C1FEA107F3 +:102F300002D50120FFF7BCFE620702D50220FFF791 +:102F4000B7FE23077FF53EAF0320FFF7B1FE39E759 +:102F5000636DDFF8E4A0019300274FF00109A36D32 +:102F60009B685FFA87FB9B453FF67DAF019B03EBB8 +:102F70004B13D3F8001901F44021B1F5802F1FD174 +:102F8000D3F8001900291BDAD3F8001941F0904159 +:102F9000C3F80019D3F800190029FBDB5946606D0E +:102FA000FFF718FC218909FA0BF321EA03032381B7 +:102FB00004EB8B03DB689B6813B159465046984776 +:102FC0000137CCE7910708BFD7F80080072A98BFE0 +:102FD00003F8018B02F1010298BF4FEA182884E739 +:102FE000023304EB830207F580575268D2F818C009 +:102FF000DCF80820DCE9001CA1EB0C0C0021884265 +:103000000AD104EB830463689B699A6802449A605E +:103010005A6802445A606AE711F0030F08BFD7F8F4 +:1030200000808C4588BF02F8018B01F1010188BF47 +:103030004FEA1828E3E700BF28300020436D03EB78 +:103040004111D1F8003B43F40013C1F8003B704735 +:10305000436D03EB4111D1F8003943F40013C1F87B +:1030600000397047436D03EB4111D1F8003B23F465 +:103070000013C1F8003B7047436D03EB4111D1F8D9 +:10308000003923F40013C1F80039704700F16043A0 +:1030900003F561430901C9B283F80013012200F06E +:1030A0001F039A4043099B0003F1604303F561430A +:1030B000C3F880211A60704730B5039C0172043355 +:1030C00004FB0325C0E90653049B03630021059B11 +:1030D000C160C0E90000C0E90422C0E90842C0E9BB +:1030E0000A11436330BD0000416A0022C0E90411A7 +:1030F000C0E90A22C2606FF00101FEF7DDBE0000E8 +:10310000D0E90432934201D1C2680AB9181D704750 +:103110000020704703691960C2680132C260C26949 +:10312000134482690361934224BF436A036100210F +:10313000FEF7B6BE38B504460D46E3683BB162699A +:10314000131D1268A3621344E362002007E0237A90 +:1031500033B929462046FEF793FE0028EDDA38BD44 +:103160006FF00100FBE70000C368C269013BC36068 +:103170004369134482694361934224BF436A4361B4 +:1031800000238362036B03B11847704770B5302387 +:10319000044683F31188866A3EB9FFF7CBFF0546E4 +:1031A00018B186F31188284670BDA36AE26A13F845 +:1031B000015BA362934202D32046FFF7D5FF0023B1 +:1031C00083F31188EFE700002DE9F84F04460E461F +:1031D000174698464FF0300989F311880025AA4612 +:1031E000D4F828B0BBF1000F09D141462046FFF7C3 +:1031F000A1FF20B18BF311882846BDE8F88FD4E9F0 +:103200000A12A7EB050B521A934528BF9346BBF150 +:10321000400F1BD9334601F1400251F8040B43F82B +:10322000040B9142F9D1A36A40334036A362403582 +:10323000D4E90A239A4202D32046FFF795FF8AF386 +:103240001188BD42D8D289F31188C9E730465A4661 +:10325000FDF738FDA36A5B445E44A3625D44E7E783 +:1032600010B5029C0172043303FB0421C0E906136C +:103270000023C0E90A33039B0363049BC460C0E9D5 +:103280000000C0E90422C0E90842436310BD000009 +:10329000026AC260426AC0E904220022C0E90A222E +:1032A0006FF00101FEF708BED0E904239A4201D174 +:1032B000C26822B9184650F8043B0B6070470023DF +:1032C0001846FAE7C368C2690133C360436913440F +:1032D00082694361934224BF436A43610021FEF740 +:1032E000DFBD000038B504460D46E3683BB12369F5 +:1032F0001A1DA262E2691344E362002007E0237A08 +:1033000033B929462046FEF7BBFD0028EDDA38BD6B +:103310006FF00100FBE7000003691960C268013A21 +:10332000C260C269134482690361934224BF436A45 +:10333000036100238362036B03B1184770470000E9 +:1033400070B530230D460446114683F31188866A12 +:103350002EB9FFF7C7FF10B186F3118870BDA36ABD +:103360001D70A36AE26A01339342A36204D3E16948 +:1033700020460439FFF7D0FF002080F31188EDE7E5 +:103380002DE9F84F04460D46904699464FF0300A15 +:103390008AF311880026B346A76A4FB949462046EA +:1033A000FFF7A0FF20B187F311883046BDE8F88F02 +:1033B000D4E90A073A1AA8EB0607974228BF17462E +:1033C000402F1BD905F1400355F8042B40F8042B7E +:1033D0009D42F9D1A36A4033A3624036D4E90A235F +:1033E0009A4204D3E16920460439FFF795FF8BF335 +:1033F00011884645D9D28AF31188CDE729463A4645 +:10340000FDF760FCA36A3B443D44A3623E44E5E70C +:10341000D0E904239A4217D1C3689BB1836A8BB168 +:10342000043B9B1A0ED01360C368013BC360C369A1 +:103430001A44836902619A4224BF436A03610023EC +:1034400083620123184670470023FBE700F036B97A +:10345000014B586A704700BF000C0040034B00222C +:1034600058631A610222DA60704700BF000C004006 +:10347000014B0022DA607047000C0040014B58639A +:10348000704700BF000C0040FEE7000070B51B4B0A +:1034900001630025044686B0586085620E4600F040 +:1034A000BFF804F11003C4E904334FF0FF33C4E95B +:1034B0000635C4E90044A560E562FFF7C9FF2B4665 +:1034C0000246C4E9082304F134010D4A256580232E +:1034D0002046FEF78BFC0123E0600A4A0375009248 +:1034E00072680192B268CDE90223074B6846CDE9C4 +:1034F0000435FEF7A3FC06B070BD00BF9028002085 +:10350000983D00089D3D000889340008024AD36AAE +:103510001843D062704700BF282600204B684360E4 +:103520008B688360CB68C3600B6943614B6903623E +:103530008B6943620B6803607047000008B5264B37 +:1035400026481A6940F2FF110A431A611A6922F4E7 +:10355000FF7222F001021A611A691A6B0A431A6398 +:103560001A6D0A431A651E4A1B6D1146FFF7D6FFF6 +:1035700002F11C0100F58060FFF7D0FF02F1380175 +:1035800000F58060FFF7CAFF02F1540100F580608A +:10359000FFF7C4FF02F1700100F58060FFF7BEFF86 +:1035A00002F18C0100F58060FFF7B8FF02F1A8017D +:1035B00000F58060FFF7B2FF02F1C40100F5806002 +:1035C000FFF7ACFF02F1E00100F58060FFF7A6FF16 +:1035D000BDE8084000F0F0B80038024000000240AA +:1035E000A43D000808B500F06BFAFEF7DDFBFFF71D +:1035F0008DF8BDE80840FEF74BBE000070470000A4 +:10360000EFF3098305494A6B22F001024A636833EC +:1036100083F30988002383F31188704700EF00E0EB +:10362000302080F3118862B60C4B0D4AD96821F422 +:10363000E0610904090C0A43DA60D3F8FC20094967 +:1036400042F08072C3F8FC200A6842F001020A606E +:103650002022DA7783F82200704700BF00ED00E0F7 +:103660000003FA05001000E010B5302383F3118841 +:103670000E4B5B6813F4006314D0F1EE103AEFF3D5 +:103680000984683C4FF08073E361094BDB6B236670 +:1036900084F30988FEF768FB10B1064BA36110BDE7 +:1036A000054BFBE783F31188F9E700BF00ED00E06D +:1036B00000EF00E02F030008320300080E4B1A6CE5 +:1036C00042F008021A641A6E42F008021A660B4AA7 +:1036D0001B6E936843F008039360094B53229A6270 +:1036E0004FF0FF32DA6200229A615A63DA605A6060 +:1036F00001225A611A60704700380240002004E03D +:10370000000C0040094A08B51169D3680B40D9B2D2 +:10371000C9439B07116107D5302383F31188FEF756 +:1037200059FB002383F3118808BD00BF000C004043 +:103730001F4B1A696FEAC2526FEAD2521A611A69B4 +:10374000C2F308021A614FF0FF301A695A695861D2 +:1037500000215A6959615A691A6A62F080521A62E4 +:103760001A6A02F080521A621A6A5A6A58625A6ACF +:1037700059625A6A1A6C42F080521A641A6E42F008 +:1037800080521A661A6E0B4A106840F480701060FE +:10379000186F00F44070B0F5007F1EBF4FF480300A +:1037A00018671967536823F40073536000F060B919 +:1037B0000038024000700040344B4FF080521A64D1 +:1037C000334A4FF4404111601A6842F001021A6016 +:1037D0001A689107FCD59A6822F003029A602B4B75 +:1037E0009A6812F00C02FBD1196801F0F901196016 +:1037F0009A601A6842F480321A601A689203FCD503 +:103800005A6F42F001025A67204B5A6F9007FCD55D +:10381000204A5A601A6842F080721A601C4A536843 +:103820005904FCD5194B1A689201FCD51A4A9A60C2 +:103830000322C3F88C20194B1A68194B9A42194B72 +:1038400021D1194A1168194A91421CD140F205123E +:103850001A60144A136803F00F03052BFAD10B4BBF +:103860009A6842F002029A609A6802F00C02082AF2 +:10387000FAD15A6C42F480425A645A6E42F4804241 +:103880005A665B6E704740F20572E1E7003802400D +:10389000007000401854400700948838002004E06D +:1038A00011640020003C024000ED00E041C20F41E5 +:1038B000074A08B5536903F00103536123B1054A70 +:1038C00013680BB150689847BDE80840FFF7CCBEBD +:1038D000003C0140A0300020074A08B5536903F0BE +:1038E0000203536123B1054A93680BB1D06898472E +:1038F000BDE80840FFF7B8BE003C0140A030002002 +:10390000074A08B5536903F00403536123B1054A1C +:1039100013690BB150699847BDE80840FFF7A4BE92 +:10392000003C0140A0300020074A08B5536903F06D +:103930000803536123B1054A93690BB1D0699847D5 +:10394000BDE80840FFF790BE003C0140A0300020D9 +:10395000074A08B5536903F01003536123B1054AC0 +:10396000136A0BB1506A9847BDE80840FFF77CBE68 +:10397000003C0140A0300020164B10B55C6904F4F7 +:1039800078725A61A30604D5134A936A0BB1D06AC0 +:103990009847600604D5104A136B0BB1506B9847DB +:1039A000210604D50C4A936B0BB1D06B9847E20506 +:1039B00004D5094A136C0BB1506C9847A30504D584 +:1039C000054A936C0BB1D06C9847BDE81040FFF7E7 +:1039D0004BBE00BF003C0140A0300020194B10B589 +:1039E0005C6904F47C425A61620504D5164A136D81 +:1039F0000BB1506D9847230504D5134A936D0BB155 +:103A0000D06D9847E00404D50F4A136E0BB1506E89 +:103A10009847A10404D50C4A936E0BB1D06E984719 +:103A2000620404D5084A136F0BB1506F9847230402 +:103A300004D5054A936F0BB1D06F9847BDE810408D +:103A4000FFF712BE003C0140A030002008B503483B +:103A5000FDF798FABDE80840FFF706BEBC2300203A +:103A600008B5FFF74FFEBDE80840FFF7FDBD0000B9 +:103A7000062108B50846FFF709FB06210720FFF7D6 +:103A800005FB06210820FFF701FB06210920FFF7AF +:103A9000FDFA06210A20FFF7F9FA06211720FFF7A1 +:103AA000F5FA06212820FFF7F1FA07213220FFF767 +:103AB000EDFABDE808400C212620FFF7E7BA000028 +:103AC00008B5FFF735FE00F00DF8FDF76FFCFDF7C8 +:103AD00055FEFDF72DFDFFF791FDBDE80840FFF70E +:103AE000B5BC00000023054A19460133102BC2E97A +:103AF000001102F10802F8D1704700BFA030002089 +:103B0000034611F8012B03F8012B002AF9D1704765 +:103B100053544D3332463F3F3F0053544D333246AA +:103B20003430780053544D33324634327800535495 +:103B30004D333246343436585800000001203300EB +:103B40000010410001105A00031059000710310005 +:103B500000000000103B0008130400001A3B00089E +:103B600019040000243B0008210400002E3B00083B +:103B700000960000000000000000000000000000AF +:103B800000000000000000006D1300085913000839 +:103B900095130008811300088D130008791300089D +:103BA0006513000851130008A1130008000000006D +:103BB000AD14000899140008D5140008C1140008B9 +:103BC000CD140008B9140008A514000891140008C9 +:103BD000E1140008000000000100000000000000E7 +:103BE00063300000E03B0008802600209028002081 +:103BF0004865782F50726F6669434E430025424FE7 +:103C0000415244252D424C002553455249414C25F3 +:103C1000000000000200000000000000C9160008BB +:103C20003517000840004000302D0020402D0020B6 +:103C3000020000000000000003000000000000007F +:103C4000791700080000000010000000502D00202F +:103C500000000000010000000000000028300020EB +:103C6000010102002D2200083D210008D921000891 +:103C7000BD210008430000007C3C0008090243000D +:103C8000020100C032090400000102020100052403 +:103C9000001001052401000104240202052406008D +:103CA00001070582030800FF09040100020A000061 +:103CB00000070501024000000705810240000000E6 +:103CC00012000000C83C0008120110010200004070 +:103CD000AE2D0110000201020301000004030904DB +:103CE00025424F4152442500437562654772656520 +:103CF0006E2D736F6C6F0030313233343536373898 +:103D00003941424344454600004000000040000065 +:103D10000040000000400000000001000000020020 +:103D2000000002000000020000000200000002008B +:103D300000000200000002000040000000400000FF +:103D400000400000004000000000010000000200F0 +:103D5000000002000000020000000200000002005B +:103D6000000002000000020000000000BD18000872 +:103D7000751B0008211C000840004000883000200E +:103D800088300020010000009830002080000000F2 +:103D900040010000030000006D61696E0069646C01 +:103DA000650000000000812A00020000AAAAAAAA59 +:103DB00000000024FFFF00000000000000A00A0037 +:103DC0000000000000000000AAAAAAAA000000004B +:103DD000FFFF00000000000000000000140000547D +:103DE00000000000AAAAAAAA14000054FFFF0000C5 +:103DF00000000000000000008069100000000000CA +:103E0000AAAA8AAA40561000FFFF0000007070079F +:103E1000000000004001000100000000AAAAAAAAB8 +:103E200000010000F7FF000000000000000000009B +:103E30000000000000000000AAAAAAAA00000000DA +:103E4000FFFF000000000000000000000000000074 +:103E500000000000AAAAAAAA00000000FFFF0000BC +:103E60000000000000000000000000000000000052 +:103E70000A00000000000000030000000000000035 +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA000090000000000000000C01F00000000002A +:103EB000FF00000098280020BC230020009600008E +:103EC0000000080096000000000800000400000048 +:103ED000DC3C0008000000000000000000000000C2 +:0C3EE000000000000000000000000000D6 :00000001FF diff --git a/Tools/bootloaders/CubeOrange-ODID_bl.bin b/Tools/bootloaders/CubeOrange-ODID_bl.bin index a63483ca2decfd06ad0810eeba89439efa94139a..056c1c1f15fb3abc08cdb54974bf069f44de31b2 100755 GIT binary patch literal 40588 zcmdqJeSA|z);K0dA5O(uSAN@=_^ENYhJSfbt?PqO2)}-IP{M0ky2I zq!iWyt^#FUXaT`0g6vXKsB6F)q`JE6x=${J-4@ohiV)lQazk5k`$F?Ob5mSh_xXPI z`SV-W>H?%( z1kYx8UW12+ryriwy#I{1@45e+|KHI1Sq)P5!Sf(I{~P?$k#;`@m~lJ)Gu$r$<~4YD zc<#WHmj9pO?zXWM%6|#ZiT?*&fAx=Xgzflo-d&vk*Z&*;0ssFM$Nyj8sZJyyaoD@z z&DnX59%aoe_zi>KS@}w<=@vqNfoJjU85MuMg|O1W_Uy|V%0x@Q3&mTYxhw6!qJO-FEU9r3;MlCc&|Tp;iw+>G8nR@|9|5 z%a_87NLSqxTchWWEI_PWINm?(l?%8ZeLCz#Xt}Gvh0>I6q)&Di3Bl>`7?H5a^?ScE z^3g8luSk%KpNLH7CtZ||Ic;A6Z7fh8Vz?JLWLU)SH1Fd|JDLWz-dg6w160pNKa1G` z?2jCvhURzE(fdqA-N|{H$aeUV5Q zECxC-dzeF0Iz0fp_!BSX3jUMuh0;yJUdK^iBnD0v01v}>A{*%(4D=`l<6=$Scz*OC zE!3EmzzfE-KbS>bssXGYIdZr#-~%89#h@zI(v2HQv{?X4W&X}|VilK$wbR;{V=*0u_p5&Z)@0XUXr z-v@3h2FGNArp%WQM)&L*kuGRT)|gAX%<&!6eZ`hPC34+}%koa;^qkBq=dRyWbK=dy z+!L2vK1#XP7a5JS8oV6W?Pa-rUK7WAJ>1h?D!bT{;Wct$UZOi@uYCb>XEkFXZU76d zgL0uLDB~0Yj8aZ@KCbYPS>wT(hs^VD)y!nvI0dC*K|91cQ7X+Mp;VmAkr6d780kbp zrHBRdAQCd}DB-O_)N@GC_rpj}{lY8bKKCLwMvBu)XzN7(5s=kN^UC?k7De;?Tcc=7 zgOC4SWQDP}KX2inu(va0K4Sm>#uIXNz;{ zY&ctIErC=Cq)Mz&iwu>St`ghRE{es%nt=>miPca^8x(wr%^>Bi8~{ukORQNfWG>+q zNV#8!*xis;7OL&EKC=DOFOi^>QA&bg_BryKevT?c+ErHj0s=?iMc}1=(CA!NNNW@A zNV~Lfl~rt6TDY_znM<(Y>7s|ptTp%ZYix^Qmh^WlDy+BBepEvDq0BmS*Chm4EBYxm z7>ksM55Gs#x;hCVmBZUqN0xRp#@*adA8+T#ipDOmf{xskEkcx%g(n!q(!7r>)Jg>F0h!}#PoFJhwLuNq9e(_f z4GYeGXF*(Lg9~d;=f&D-YX~dR8=3H%Akv+b^yWmKOxOl*L~l@iob&ZURF`Ny1~q8| z?LoRY`zr;@t*|bJql0bS102s`=%0J~Q=A72lWfRBZe1hg6Z+|T zP4)!Cm+knKWui_9i$Kch@VpPtitv9uKZ!)jNzq6-KME-u;Q0t1KRg76hJ5n>1pJ>E zspo?9Xh`3ECw0D$??0tUn?#!y4I{lt=&wTclty;^oFBy~-N_t`v&`R%@i4{|;vO&P zza0r*1Qp|b*GQdAsB_bU=gFp_TmP*3^hfK;j7@-PDZmLuiwjP zR^{D>-v{%0yhTE?(!?qKj1mh`BEasJ9Y@07f^YdJgBD;GHH(?_)2T`kE(Ha+D`Db=^^LNMG;4ESiXfe*{V1wBZQ@ zzYJ~+mk3Vj+3 zL=C6FNIYp)bdWi!DTs|G;pbJ%%pRDlw1wxm`?zuT35Bbz$AO}Gy$?5rXxh^IlSV?p zH+M2%?pqK%?MKSs?M01hfmUqk&2Nk;Q2J!_UR$ks-feT^TYZi#^8)uZjw*aB7uV`O z3CVkM5Ok*wr3Y_MZ=~z+Y+O%^*zh&zJ+W=}!JP8%^ASVlBzPi8IXoW%1*;{w%M}{e3@6g`Z3nXtXWgoU69z-DVE&#b7Psx}auD9u_oWQTK8B!=C4;XY%zNuEhc? z%0aU8dLM1X^)g?zEYnLkn|_DneQ^p2Ye9W&H1V%x*(ab~n< zl0eg=-iWg-7umV8S`)`;Wha=~SO|&^&g;zrnJR;_-M73Si}4PkJxKWLFy%$MwHoF) z1DezVy0)eF^eNJ2V2HHz#wlh$5+*>co8N;wA;BG#;I2z>FG+Aw!ETA(4k_<>pf@@A znUv#^a;i_sPQ*hWjSVU|M#Jo8fP!BS-^01Qr03QTE5-+JSDZQzz4q9ttOA8EY^2wI zF12(@!clw*xKtEbT)FdlUptk@h54BaK=OJVm4w8gJ>tMEke& zCQDS63^}A88+|GmST_Xgu~8=E56M7ke++WmT#)%Mg2!&ixy3ihh{HF}anIhI%{_CI z=nT=VBfr83*81-rm`CTMKF4f^8^dKk^N{O;O=V;)NVqY4!#2~>+=q&8SgH0gPN1>s zpDvlOMK1HJ5Yqh7?~t>W+f5nVRDkXsK4N41DrE+T{Kz_=Lw(377dk|v3+u8sb%KNt zHwCinzRLu;Bg-s&Msaitm z$E0*?lcTA@KcAANQ|+^}P?LQ@akk8`&;64uV^#p{coFK2=9C<*jm(F!K8(2ch5oW&)TPD$Or zphaX%KJTa`Dm|>@K@Lg~5+)6+UDOPH>Z?uv^s2!^nq#=v6K+U$ALZgwuShxJh8dnY z2FCpgmy!AxDTg(D=$Xh7=x{?K|AsG&Qu@L$bv!n;C|&O^(kg|i{jWgFay;hv-JI0^ zY}=SOs1w(0S={~w$GziIk9o5p&EzMQ?q7h}D3Fb$uWY|}_dcXN0&~?{AUEV!W71E* zI<4gJ9whh&SuPk@8MHd_0SYuee@LZe{7PtDDeMtX4>$xNibB(A?nA zN+;47IXn{yVRw`+#M)aZ7(3hVd;_*C%uCP{y&k5|F@t@^Az<_^^taIbr_*vlH9+)U z?Lw(~F8{R9Qp%<0(ZYk!D}{X8LYAY2YEch44sjCv{!-L%TKMmS@*BJzT9^ZRp>k>p zEmqo^X)|*5w*3oaFwUlW5{nY@?t%KBisb#Td_o=)bg<%NIn{*=02;&~c_RQ>JBcsr)4h z+LFI~8cL>GwslidJ2NdWlqy~#?I>P82_+LPTcuX+H_fmdU%c2tTDjYX)WUkD)PnNm zqyOH*`Y@@5u$K=m=0#)YeZYB^qvwZhtv}Y6vVgP}{!-DrN#C_K*YZE>BYsQTia7l1 zqS+Se@YoT)R+;8lb{0KlAzV%Pj-PBxQQ6xT!p}OwNn|AKJfH7oBG*|y74N_Jo`tmV z>UY@J0wr@VY|bb6i!HI=VGg%Ekx%eWwo|5U7h{I6?2iBOD zn$j%gi)f#J=}ZegoC+8)6K{IhG}&TXgnef%GcEGNqb*h443%gqFr`~c7BRkzjG313 z!{a2p5rEfVd1Mj6JJTZj0p3*--gTDmV|`!*YuFF4E*rth`~d4B32Uz9`?Thd(5gH< znb0a5ZCVYq=8j;c52q7aq5l^FttJWUy%vL{6SbBo&_07@?g*{&!)ZhYvQ*Owkil#T z?;^{;u%=qDuQ|7>TgEWmG*w_)WjWUOmO*(~2K=AA^-kISriUy#OZvhY&|8@sBMwJG zA5!>1lg2U;@@QYhQVQfrbZ((3)uLT!0emxa;|bN&dXv_Y(^>iI`oDkk*Oqr5_`?TZ zUbC|)jWN&krT_7{1#z75IQ|WHr+vSpv@u}W_0HcP-l2`%U8Yf<&0mu`{B7=g zKb`o-2XA(*R!#fc@^}kXb@OQZhl6e2n;(Cs`I};P>vK_8dcTfel`HGIenM>ccBq4T z{O47-E1uI9A9^%0>&Bhhiv4$XE=>RR3ptyQ)dIaT-v+Jha56|wMlUz%EH94m75+WG zb}d{e@pYH0$(EW$pf$c3pgE%@zSe-$w=KFCbb5n!9O((bWw1B^ipYooiIdT}8sz;9 zlEv1E-Bb1GUKEN<587%8SA2#Yj8eIatK&UN-es5Z{$g-xJ2}=V# z-qB5mD(fxXH3sYQtbz0r+}!Pgnp~^k~Zq-Ar_} zPev`3FwP_xqth(mhh6~R+iQJ}F$)(}SdQJUo<*=uv;a>%F{rDe`+ElJ47E~l25i|EqcIouLb%MM$q?Z%pAcL z0X=k==V>Dp(lA;9Bj{|J#W2Ec`r_0P+9q4V4iQXK32ibm<6`qp_Vwu~ zYmT+rmTYOY!5m|K*BTYFBHfnmcV0d5KmRPW7M{Otf7|`eAD^w)4@^4Rz1{fjW!bnI z<{r=GjvEKA-4vgBWx~1#e)pb5o7Vf=V0zB$x_u|_IZ`{+`rt$B_WmXEMSk_R?M2TX zf4uYNF?=#+J5B=E2OQoza}#We$#Rq`d*4_xV@{S z+S&kltyZMF(8XjDzY^Bv{(MT8m=n)Yr7|v>yN)jQyiY6!MZKCX*1B^_ab`~OsNSJ1 zIiu;Op7I2F#3gML@i{&2hcLf8F4;|s; zJ|^rf|GbzJJ|zzCFln>EbG2uPlppt-l(0`4`qq0i>~UcpmBmqm*ev%|#a;p1!QLEE ziv4PtoQvdId)}wJ)k~5c+V1;X{qrbA`h<3*LBezWX&kXVvWK#?NJI9C&-Uv|NuF+9 zNomQtU|{NyhEr*c(B@BuSZ*aiwR~we!T!S4>Yq&^%?&T`UPSy%axRKPDbyex_*7it zfM@sqeq?-PVB5f|WbA1$tM~`S6qFABS=!bnvZu4T_66I`GG0-L*=i9T0V%wQXE2km z^F_S_c1D2xJ=+WR!xx!|Re^0EPi%ahqM72bCd#iszZMn7VBkWKbsiEGDCAEger@o@ zp>Ws{DVu`>MyU^tQ~JYVc0N{$RjhV=OrHY#*9uu-K%bcCYaBY{Q=n> zARA}~r1v87CKFoEAtWnIw8;vSYU&fK%~XfVA`@1g0~>GwsY`HVfvu=ml;+giSWC;7 zStglaJx9_qp%dpudt7J(&oz?-@R^}VR_h)4-quCIc0FyMA$ z0_lDg>fk~(p~#I?=;4GyoJDJu7JKtJ+t|YQdm@-Ak>hKQnIrgzZQ&fAyVV@W#axQ- z$B!>|QX($9?ZtCwzmoonuQEq))TPNOO=pUhUZd#hU(#0 zCK9=jwo*Wzm0;&ldYY#Siv-8Ay5bNW)XI@O*kyb_kKw6;<)ziVj^)b5TeY-rH0 zCl@;BPfq3Z?)jGeWOI#qM6nfCnU;rH&xnf+c>3qm+c)vW5r^Rk_L z`jP3NndTFncsicb>rEs%?EXa9cX2~rnxi;R;;4R{gwh6h`vS^BbG2s51KcDHfY+Fe z>j{hEIR#h4{YFe-m!1DqwC_H62GT}@i|lvvxM^#Gf$KrYLG!r_ekCRIInXO+y<5xu zt!Xdp${Ih8tfQS-3)+$kv&oJmKKmRcqBSn>-w3teAs*MCJ-w z`0G1FAMTE?yST*WiZ_uCvx!^+M+wox4CjC`WCC5!^`KN;fn!opuc!RpiE*X6^Or=` z^oa91*k7aK16G}_9iB(vX%*20jV;2KBVanhN>Vyu{7CAWV(7B&X~)cBn;cFmV6Q(R z!rIQW(3X0byv2H8gfEU*grU`S{h2ilW?2UrZ+M1GXb^A18J|peu)p|CvUi42x9sjX zH#Ub`l#BKN$FU;LUTIS5Og)If*^^CiLXh6py#(Fnzx5hh*y^{w4m4*KlyNHCQrmit zZdK}L=FiGg2)p}XSE$eA!&5VVP&z$-DwI}9rTHGZ^h}>HA-Das_%oIH*1-*X%=7rP z0?I=9AI7`P_q08nt%F`UoEQwe8D#uxv4R8t1o)a7gAKNq&1w8~+kP|n9#c~~LzpJD z&)*fo!}4P#JSxDWZc}B)0-i&FXD{GUV>y>D;n@Xv4x1?n5B5Z*f}arfpET@0RjIFd zBU6ufBT^50k-G-Q_dkN;5b^nfEU?0qL;<+Ss@11xd$b17mKf@l= z8JUl@k>D-d1illslavRBy1h!+_d;*7MmzBYAvbB8&@mVEozU_Xq>sRV%vr>e^HDOt z(;Tur2>%h`*q&pLhzyIaw!aG_G&Y>F(-rgWv5}*qtLzu;iQ(po#K@%Rtre{mP!qMT zr|zM$cbTi*IXh4}9;A^pql49;(CvKkqbF(b)MNLk$nYmdg%>;lHT)46Y1?p4_cB@q zGw-s2>Yf_&)uujP#Swg}=J}PNPb{8Jaru}^ALDL#nAXz13z?K3Q{&zBO|)+by}xOX zS!gG7BV{Xa#&K~l!%aww>X?((&+kcwQ&JCEJM9ZbRT|U#dD!{G+5xLZrF}sb$Revb z3Vh9KR~W3o1~^Zm;iN$HBvzvIK2KH6)tWtKKfkh)5n_f^u-^K3oz3SZbxgOGO$WOO z&bxwoMF*Z7(Lsk(DK@*o&T?5TMkks);K3<+JNULz`oLcRzG+0}Tr?3@Hirx>mlvL_ zE<=U_&wddZ8ABnT37$67B)0Pped;X^;XOycT<*tmrJI`Vd5D^AaG^eS+1{q6KJ<80 zo6Mhx-}eV8a^|YBka2?aNO;2`vmln{+C>$+SJbJT=Js}EFbRhpslTVgx zB;|3NL7(t7xn^U;Wy+rgvpExd4^EkDca&7M?a)<`IT|F-^?F;&apq6??lPpCI&sB# zH8)zs6R?p@i}c9g-2H|oOwaHUhQn^J8fQMck^FAn7@_y^pQ#a>xAEw+D6NnODm;%1 zk#dF{nWWB2%2Y#t!^)K9nVPn%slWrCL7b3Ax5qvmWkw!0liv8X*9GSuG9I{IUf*;E zxQ=L30M{Q#T!%?qX9x3~3gDQURRugp8uveh^w;?;j?{#)L#bhQ)2Zv8JmPh7v$?Om z^K=bQVx7){GzXrHdzyBYY;5}ls^WG%<5i_bfX{iJ z4yQIe31?d5+K-fL%UTm_&E1z8D#7z+xXDu% zth0jVi36W`aq6d1`_<({b9R|ku$o>9T3uQW>tuk@25=W(eUV}yW?=SrYr&>shom}4 z$8fE77z3HrYlDGLKvN3&vtq%rg4-)}hs+8-LYtb;_!lC%a1{LC^E~^+g+?EosHror zHDSZl_7I$$S89_1?l8dpdN}XQS@9=E=#?$w`F-Mp#%s=1;}gwlz`M$L(z#E3*od>S zLDha%Tx~3Ko)sT4ZZXK)8GkwG*K>RY7r?m}QzYPU4rCBM!1Rvg_QMV$cGkN+ABKI=G#z#gcvdj* zXi)9M#4G*W0Zs;<)4jlr&K&Q?8l;(@8|Nu8;dxsjZ@Wkz@p;xFGJ|&WVSY^G6wsM4 z!qaE`-{CakA6}eBabj~MjP>Uoa$C>(T@a7(oFlUmXVV6BYpdhaFKK~F%PM4i_sg7R z;Q#ck&;$dMgDNMPam1F#li%-AN+o2+{}at`#DzMNDsS(?rXg0C{<&^m1%4AVP2bnST|@q3@X9;Y}>e z1MD4Eu$$iXdb$|nmCeh$5yqZ9Htbq`evgfs@+w4lMDaL#!wwU~tUMH+(|uw2nZa8< z2h2(B$sTL+YhHQ^#n+bZGK=kPrS+~5C8Vv3(AGZw2wFG`^$y#O(2{S66_Dw9=&haJ z$079`=$hCpw=u9+%B*Azkr0jJSXR`FM(s4?c8V2S{wyElx7u*YB^PCgYtP(q#qyTStkv8I?!HKhJA$3#lyr~ydWf1nn*R-Lby?QSZ3qC^8R(TTr5}fX*rQY`-GksKpWsdql}1{Kp|UY82(;QA zmlFm#Sm!M3v18vVs2@%0yZ+px47WHx=uwOf6T|IT*JIa95kU!JxbcG?dXi3vp(o@B zUeYSjlb$<->aRdkpjDtcxM{+QgaoKRsmM;|4RW>;4Klc18sUN%lNM|^=A&h-E#Cb` z@*J)-IT%uW7is59`O$#&pPoi9&OBLc z*i39?L&Y_3&*ojOv$nUv!lQIO6=%JK-e5pIjP(aPa+2SLlbmhlZ#~DowBZ9>#y?gu1cdVsghg}4xIK9XM zsV&nwSdI}k!0DjTspXJnZ8(}34CwpAI@c<{@#?s93G+EyC7gM{Dak}j*^a~J-ZnU~ z6-tL}I~+-B*a_3bgH(-YNoAL??p#8?RO25Yn;wtPizfPEG{C>42Vg4<5p6N^I5!Ot(!mj@kzE=QeSX zu^8T_!`otb%gi`hx=qZ`1_NIV6qho6(e_~A(}6W*+29qy8P>{I*3v?4Ftq|{t(CE0 zn>vFii%<`H5QKCvPIDrx+fT>98DKDwG$iQR)K_;fT_H2_rrjunuAU=60-qrQ9T3 za4`O#(2W0i3>M}?Xv)(Nf!7Z!-dR`&9a}cRI{20`%wPvu?t@is^#ECM$ExT15k7Bz z!Ux{eHpYJhN)`|76VDmh5^QL&KM1v4yXk?j{s{v+dP=I0VTs35$oP)~+?)Y9x8I!C zUY)$Agz>+MuETEJIDjBFjPV~t?};V{=*fV}0yS?PDUlCSJ#juIoeSR7m(3MEIK60_ z$}#@m0jALdoh9pBB|FZTH65Ro5x&v~suIZm-v;-)@T`)ATIkU#L%fHbNoL@^uL)L;D{a7#KdOEJd>??E>@7OwC zR}TKV%#yW7p*8Hg0yFE;L8SkL2R{>%gBKwf_^3Z8nfBnB$IV}P{^n&;-|Lbgc|ocj zrN-6VD8`xfO>vIvj#1vZV58p&2Dg~t|E|sP4oH2Cb)t*$+X2(DemO@hj)^4?j&HEz zw8nO@NS3UtLQ~%Gl#Wj`zYfr=9cm#a=2cPYI0A2vAT`t_wn$AsSS%`(_8X6UkRHZ9 zb#kx8n)^cA5nm)aZazKO*HhDWUtYC&dwbFCK6|zK(GEKG<>XlKn@7_06z`ffB}Yqi zYZn5}CymRymGqY0ipKLGmrB6Bs=u>@z7>pn)3<1c}wpTjT1m076QJE{{8U&Xd}dEE@%28VSJ_a zLnPXAHk0HRHC}gBnr`W~<@yU5}Oi z(dk=%#=PH+C!Q>AaG?}gC#)ZXSP!#iJ5FJV&-X=hG7>I1e4r1v+eri?p7^CVz0$Xy zNjC}Aj$?i*oXQ4UE}||MWq8<)^|Jv= ze+Fy=B2#KrVgudLy}lNF z4db~P9G*c|Kala%Ew?R=qy}m0_XFS!fLi88Y*c&Bntl9CFPiL?R$d~5VBnd-JQv~o zEf1lOrGL%1MD|;_J{?y9Hbj}9;k=7yOQd%jbN21 zl?2;d9%s%kt1h|6MJ&0WOqkJ*bPXj88{WBb2hNV`{)x`O2LnF^j%3_j3nH}c_j`$z zHm05I(!TH%OY_lR!S4AG_~`cJB!BI}(t5oNr0C_Z!>Z2E*DKN>Z(Yf7;N#$t60kzq zNhO@+W=We@!SY_QIT}_@pxqV>v<&Qb$+)9sL^eO~x4Gt2UN2+PlPV+mBzg1|SgECz zpa#~)uRM%i=~l4v&Km{{dLZz4X0!Pl@C?3NUYJb0GYsgwyleu0V-o19@@N^6-M#($ zUFj0eFn40*1Un^cp%U$|n{epL&X}Vvg;tuCfd8h1ANDmcJ~n_(U-J+T48aTQukA#c zyfhdX10FHfmH>4oIg>f2kyUtxL;_ACm1iJ|BaVJY}vo#dP&q7W3-bqiRJ$XU(STqwj#l# z3}GA^CK%5FM%M_&_a%%?62^Daf6u=K-ifeFa)_n=cf3kJt6Y$KwVgoJwHvwNz=YsN zI9=H1*$es=VMAI~Gi_zKi1pRh!u1!6TPt+nRot;2PMb2`g`H_MNV4&Ph z{5fJXZG#@0lw8UJHgWif9fkj_vJGiO4ywD`Jg!q39A~$-0RtESc zHx>4obKtk1H`qS4qp4mG;S%2m^Zsz>h|YulE9Ia$OiC_SbUV1&Sr+R;lQ()wI*A5x z68Eclp^UCXhQ~Z}Dw*_HemmS8$b|h~4^TZ8VoH#HA)j5E1Rj-n^qC522CTmLiyH`c%wu02JJyHL#GOq>yw?&qn>WpddSjWY;)ZKQ=V z7T^1I6N$wE-2&?z>0g4#*fS+(y(i5dd4j2a?_Y91^9*>WxP}9!VN)*VQOYqg=VkV+ zeZ|Y9eCgfvn^5cu(mZ#X;lNk5I~a)TcW`#s0m)C5$#;m6-~-(Zv3X?GS`G2$tkc1n zI0do5UhEK6#=7UvnFYR9)SWg>T%9W?HH?|!Xd^P*;JdwkIe`Jc)~x*xVPTO-O1E-Q zj#ZmjZZJny^r6x3mLNc znUz>W+LsCQWVkj;hwojTqb~&e&d{`~;!JRgtTwG(#W8!4&>t*Irgu}dxSmi7aZ*A0 zK$SU>XX>a!v7D?vsi4;UIiFd%O3qwKa7s|dhg`oLPkMvMsR(v32R#mMy|=~O0zCnd zx3`1#t>(`?BJ>6sEtPkcK&;|JjfC!Nin_}Y5O-yQTOTsv3e?@pF9L}$$^uxINgq{> z^wVy!@bm%bsU+cu%p};VOM5vx>{^#4}HM z|JFs{Z-Nt7GOn8jw(B6MMys=5&=m>qMlwFE+$OR{q#Ms2=6;gQh|~q4iOOI^MW@C& zQ;buE!ODBBDJJ~r{YsItQyG7k-{K+Pj%T51H~DQazf~vexf1(uVB+vLIK4vQ+r(6q z$0bM_3Q|=>`BmXb0*?9ZmkP8K9wf9mOwc-MxzPAF*JFFjFN>*zlHYwvqsby=DC!<% zeqKcEgB|nLMO+aa8KFS{xsnAeDO!OXZR9Lj%i0;wXxTF2E5xyr<#9@@j<&TN^ zrd@sVS$3705?4k-bgg!eS?&S<=SSehj(!`W?We<@VP2#njd-sFs+*_CQMeZN}; z@QUA6ZCY!Fz3*T%fT7YT~6y`UGWNG#y!d}Xu`E(OsR_txH;jIDx( zdfSg9{ru}*Gk3zffxGC{z-oKcmm51ANDC5NTY5J&f*w|8K|f>-;oV1JRvQj{Bx%T& z-k&vIFY9W;bwxr{mYhJx|xjgf=Yt!>=?C)=MixvD(hE;lR`V*URYtQClCho~yj4rfx$*6&Y`zm(hZnj@w9lE!{WC z_#!cp;oJ<+T*u~&|pv~a-quVNwuC17?Q?$Nt7vtW!GpC!%QNzgv ztnoz=m1I=z;HDX14n2)M4;#Yx0xqs{5A24g83y28gqaz4UK5jz4OZ|l6xU1h>v+Dw zcHMam^q-73-I{A~!de2qdSe6Z{~jKKvl;#U{5A04QxZ*+24VEkdq-%xUO{H*3E-Wa zS>=#qO7vOM`=a5%w0H8kh{_!to_?2t35Mt49F0lE)28upHB$}K!PlV`#~NXbz%KH6 z_f!q5foNz0oR%lu=5qyB#&UphNigvB5Rn@>b?`bEeFT3%P74fW^8dqu(vfi60j(2{ zL8$E)nbeQH)HI4;4sHC|vuFHs=R@tFX>dAKl_AEV1X$BpeZMEnH5K-nxdJWQJ>CeE zOapkW#mhc>Qv-jn}toLS9w-===-7ctoR@Re@C@ zr%&MH832D8ynQBttD@_RdY`v4wX{$_KqC8*V1hh|g4uu%v|E|uiN(PHMR2 zRF_i5JAsrSeGq99wQT7`cpDegm9pBzij-3Dr43*X&YNeD71RKCn3&^9rPZQ_4F=W@ zFx*Pl2^&5`!ESFjpuTg`M%O`Hd-n3;v(7B=y%i3?eLpzuWH~ii5uZCGjxojwu`woL z8~8~W`2Q39D`OgYx^B86?m%sMo|_X)@~*Wf*QzQR{RUoMe@GmwGOSV7t4fJBMC7D# zWoyRPp9FnabLSH=@(4;nTA6=|@|-A#naspNO!bkIa00nqG+MWd(@o`T-|vbhd-n}@ z0?y$k`SQys<+PU;CIMe)cijGHn0eh|+xK4_un0Jr@#($#SE35NR80CE;MHWnAux#z~25e3&|8-rz?R@ie^Sgj^MjKcL+tY<1A}t9BHI z<2mHCDAAO}FYQKj7=Ofu^-=9qDtLgGjCfyP)Rcp_Z|`uRWB}KF>&;1Kzz2d30fg~u zFS{1B;Hw~9C%t9Kwh;b-hm30p zX5i^PNbU2kDL-dU^Z*_hnNe4+lQW7YWV}iK+Wdn04G!Lw0ae(&q5#An_oH&UI;DTO~Je|9QY0B zT&Ii77~~FvjB9sN-^~@2G*^5z$iP|8q5kDSQTVm-&gmR={7&HOAc@@g1>Bh#bK2e_ zPYFOD!&xZcf9o^_*vYIk9QYYvSDp{eNGh0-mPxl9e&+ete58`vI0tPkaUBwO8TZRq zTuy*dc1YxmR~2&5Z_*A2?PNhaFd}NzFtX!$=7bvj5{^OnVFGzguDYy(_MVh>xi|O+ z&XW;z4X}Rdop2x+*g7Z&?;c%$wY156#gkHtG!tJ+Ii3Xj4($G39~r!{cw>dR{HOx z{r%fK>5)-D+aJJ6Zsygt%2l%I`M*_0W}pp|59O)mYO?t2`y4Td;6DM|Y-M=$Xq z9`;H+@KXQ$nxB0j%0G^d@=rn7A4P$L3aicFlPc`z)irpM%28igYd<6=8R>&p=@ov|M&x9FofLUojUP%m$Xcvcf#=*Y?h z+Xmu}AU+7W2^_&LG;1$SD5!3lkPmN<=-uI5{J0q+Gg-sE;jA^swapNzho^>r+q7(8 zd*5-h_NsDf7~DOV3$k$4sQ5AJ#AM`1oB{q0H7B&}Pec$yl$2QC6!5CD2fb`|zt@-@ z@Fr&Wd6k(x-X+<7Z$sbp<==Rj8EEQ9JoYW1K7jrHHrS6;{uaKc(X1#`6u`}N;a+^e zx*YCD?}qzHEng~4v~cJxh~-0+$pXGnWwWv{!L}oe!0p6!R#`zCz^dRLSP1sHAHjyf z{_$QM&Jft;rGWQ4*oq&)?ue4`$|Sr1t6F~-??XR;CA2;$(b{2Mz8-LX2e;q{aLU35 zzoYdkp%q|NWp{B-{}Jq6S_$m(GQj&CY|@Wl@6sya1z1)2UA(d%!2Uq4<$!YpjuQNC zkSlC#{uj9dtm@GaPD;4;BiOsN5?L*O6!3lr`~Ht$@6t+O+W=Pe*j>DhKY;y#Tpt6R z-@(=Y0PaU}1z6SNcX4k25$s)BCAmHhc)x>v{70~NX_e&qc%1W+=sRdX* zxqzRzu&5g)-_aRGKwgH0QqY@SDKHxl2}1^9;@`t(p5O(*HGy<3W+ zJ!3~;sPDm$bO`2t@Pg9dshvR6R+(+IfMtU`1E+%brqqJ3_7NL15ZOD|s!5SqEybgp z`=3U_pNEVj_QKfUmH312ArM|w&Bl~%@I?dgNsoNnAarlm0X04t!n)Dygm2_FUJ@CAPz@VZ&Nk z;q?-D)~Z@aOe(UYW$5gCO!92RCf|eD*7XrCRblHIdNVe}@-c<`&Cz@`@N}6q_c}6K z;lE8B8c7e4v@xd~X%p97U6W{CWnHy~_%G|A?HP5Ucw53N!Ik9sPjF!pej>BWtoD2O zL+KEH`vQqhz@uuml*{vjfwG|0sOymBbEGM_uvEm7<*s{qc&z}o<1wkgq((AZ?la<^DL0<)f4q<>YRsIqaDpy$( ztt1ZCT#nP0+jPCA9L7VX$voJ#9P)E|9XSKuoL-be?oa2G&xa`DI%|h@RoN){&=rT4 za4*Hs_SP)5l)qyA%vxL)E96pxo>xj@!B<0jz$Y8Ttg5BBRK+D&2fPq(`yXLt5-jxt z*p1C`5H}mm8MRwMd(GvS$}&jQ+jNtWe4pUUAzW_-4ybh(OD?X-EgRkIc!J@#10-fC zur~>0RSBtyr^-7b!S_eOPSg$(X>qF{QWK$#AY-tnQ}N#7vZE!b>u$i#^4(!P6=H4c z)452^UHI4B1Yd~H{r`c_c@pif4ii2#>j|Hql|E=aT6(}*T-pIrC-FP5H{OFD#V1Ha zAtkUwVhvEH`dlT}e^zZ#G;lG2c>9FR!@@o|5o7I0FbCaeZE{DvY&7n4Wfp?k7D2c59w% zD(oik0rpW!NPt-)6wz}xM>X_$dFa&giJ$-{>EC#joxwYV?g?B@Io=EOY*-B^w>4ad z&d1Ppp!0TL^Wd$%6*;Sc#w&MNCzc}IVYgrXEQL?7k7fX;Cn5S2>HVIPa$I*=T)4Y# z9flDU8aW~Q53kXcU6U7bE5Rd{r^nOGTvEp<={%!r_<{>|T&$`v&Q$LzDL3D$rASQN z)is~P*_<#8Cqk|aiKkp>>C~Xx8>{);8_J=CV}qZUha%`Af=wg*^vwTn`FV7NAEE<7 z)xY@J@jZTi$jh&xF9D9F}ugE_`4n zNBXCB@S<0(`NA9Ot>?eviR*xO;Me zjw3UW1(|;Ep7(F>mB=KAx${ew%7O16!ECJ3s34`nkeW{FQ!8gTPg*!>5m^QFcNmBr zLi?o1jSX?atqa-%`wV#ob_w_avV|MEVxZeknE;-#M`XlQ}kT`5atUmb1^e(Hp z_oa;_6#-v03T8&ESt^rV86~K+v7RQs;}Ml-o4D4P)e;Wv$UI~P`wMu<9i|W9s~ryZ zJ?|FXHxRr26|5_BVGShw5nc%G#NYYHM`he>TW_gGF=I`lCtgruHN+%3Dn5s`d_J62 zHzhb)E9W#Lys-)e%I#iZmPBPCEbjCkwg1y-5GXUoT2 zAvrRCRyZqHUD*M6mVhSwvLESZT~%sGP51C5h>FUDlMvF%W_kRTHS$p-*spZO>FUf% z-cX+DoFteODyhb?;n^e5*X8OfZ#))PdeXV16h_Yi^#anu#`Su**|t`dV1n=24DE!R z-qJU{r`Oa-sdHqUJ%_-}hWyqXtfl*kbNw>9J7J2rHkDJQHR(NIG2;k#QJX(fgd ztR-bo$5anDAd5}kgMn{)IW$P;5E0y-6`MzMTVYm?;NCE!OWSQnODC2-nb>TOxTJ<# zNJD|xp@vd}rJ-2QHP{|XY5V88T@$GSrTS~_r_oe;4S$MFS*qe)sew9CgD9p5buW%%;7q1(*d_f z!rkR1wf+q0FJS!-x1f~PVyb={+)Sp5=`|O+5W3JMi&eEKn>}5!j9N2>81Ahuh~v)K zYF(9VE>5r`4Mdw~)R|M2WiggnlIHq5B2??5Z1~hX=QzpL>@uxA*|FNF2MD> z0K?ab<1GZ!KfLc+TZ>WsRx9CM78`3J62Nd@lf+O*!MAoo`u@7@b>M{XQBt}pc}?*+ zJMpFx8Csf65MY_;NUI|#97Ox$atlWhWd>|sTEl* zSh}-9>x5>yVmq9lg1>(NX<057QZK+a|E_GHPb#Gq`@{gny#-Nsx)Qp+wTISWIA5ht z&X&sR2h^@t3+cKz(@D@NoC@Ew8K8i=*`LuTkv0UgV?gh!F94sLiJVuy?ttf*@K$3Ex2^ z`sV`Lkp5jb)z6}7DQ6kfbHTe>_DWe8uv^$8~DK$Sl~j8OW!ehR*Zgf^%om|#D#2e&}1>WalweI`VeS{rp`aYA$q z;G;HrsC4oTwd?B>DsdVT_Bkl{t#u&y-Qg%KBKY3ur%%q|p6rYTy0j(1z}f!$z4+cO zy{j7McrA<8PP7!WTv1d-yXu z9y(XA`1VRl;rGje(8djZ`ZHLF!7=y1NsMNLmvGqc#A#c4J5Ld=<^fl)l!f%>QHiF@ zr)Wt&o>TNmN*j`}RVw*lq@?u}84u)SL}*bK*}cl5$0Yj@If54ucF_p^frj)F*tt0T zuA;1}z@ht|v2Y~?s z>2gXgbcIXbez+fO2JlV5+)ZZgcVYK6OQhgTUsplqG~%PUTNVr~hp%~J?e#U<3Ih9M zTQVLjAPvlU#EK#5BuHn$|8Ga~NO}*XNtqYEAqH^MN%}KLld}0CxD1lchBQu#cRwz~ zNj5FqgF8p)2imRhJ*Q0IV-r}M?#ds~58oXel&IenqMqF4Yb_-+dXfvirvT^7uLaW} zT0R~H13Tf&M}CzZ2jilce60ZJbi-Z0f3uI{noVV>&vE}{@ztzETWlqh7SH2nsI*u< zVKdf^+Of+N2YrT5EHqN^4LN|ygReW(Yc{hsBz)RW!Ra&MmlD2y=dN5R!3${u?*@CF z$cm(0kS1{FLvSD$N@yN|+ZBS#AaLN%ljNal{vlOkC92~22Z5?(5>?SW!LewV;_{q? zuA*Mk#$uq0crPIOz@=(2l?4Of%S2=!u%&raAx>o`f^7>jmTf}*ZB&jmjU%#-ETneF z!+xJ&Krc~3@J?7Eb9!4xLe$E1p4IHtC7x)_y!9%$4URYHpe+bIl#yAR`FFe1wD$Sm6Xtv)l6?;xH#u-@qXh;7fxlzQE&sw z2=}|=(c|C|OMMCnpMdqh5N#9hUqW(7A3}WB+gYHq7@~w3&>}VXx^zzggpu?E`91|o zB~p14b{Y#&>Qf-kVRjtBfB`#(GoFwpEOGCKZ>Z9Om1e=h-z`?LNT*4s+b5*MDFW=U zwCRKVg|2a#bSGV4{<%WC_2;cWhcy!P(E|6aXOq5JapgOWNtF6#?DsS#mWTVH47tfK z3$Ap+J{?jEhoQ#zwC93I#yj>$&_eSPQ3tnXh#n6+L-J&N+ZD!fN}&4K@Su&{4Sc9H z$(H1Vb4g+5Fy2p}pah-N_jEn+KtTM-$hUaOOf_g*RXWN>?mqv2&3$=%R7Kiu)j6k^ zEI>n|WP{!k3?xElL4u%mx|1fP)dV6Ag3g>IAg4j46`jG)`96b02f-x@qX?+cxF9-8 z0+}&r3<5eTI@1B7A-KdflFZT}!9HZ^zR%m;L7ka<@9+M1)4xhBr%qL!+Us4OO5F@8 zZhJr0tQrBbAuJ)M0J)j%e;dmOt#e#`E;B({d?z71oKkjrZcvIFC9|9a8N*;?G$F51 znnCwR&jkgo)P~$&)XFhKGc!q9G1WG2IPe-`968PNs6Bq1Thc9sGBd~9h67IrX*XCp z8Xm>o$SC$Uv%U?Y##Qba?@Dxa$w`esQ!x(*?hn>`#@ri&q!~)ICGO9`xY?+f5J&X$ z1j>7(Y(Uz#BJBw6?v=Ov`*{XZl@{Fpp#2-=GUs!i;tf{x{AcBA+5aZ@zmGJ=;^?Ar zR(Lc&i*p5yoo19YLvp2CL@!2*x~V+gW>=-_hXa=)w_4R(&i(&ATCJoi)<$XvDj`nZ zt>Su3R#^7TSED{)(^y5X6LI2Due3LAkg0z7dd+m|eGizNir`IE#?I{C<~r4DqtQX9 z5V+8GRBJ1P)yhs~U&}W1-2}g^neAg(TLk|v&PD76=cpVBjar0mU!a9nm)GWP4e!P? zzwzx?@3TF-c86nATf?et=W1-vuVq~Zpv$-xu4QIae4~Y+?%7+ zI630dKtL{<~}+a{rEm0)>x)z_=u z?%8*C!`-C0zVEF4?&rXzzX$p#PR; z4dR-9sccg>8uqKTw!I5jX06YuRId`1hE*we&#?9qpZy2Hu@!rc^{-v;u3jZr8&)yv zVU(A0Ax#^~$BKNOgMH-mlqKJ;THmuDbx66550{2oax)Nle;A3>AP?7|XtjE&H&4mi z)g$$95vx~mq-zCN+|V8wr8FiE1nE>GnyZysbxXM!?HD-$QT{CJbDZwC*d(MxDYLAP zeYCgSzTgX& zT<}qWQIM0Px8&wT|K`lOckN#E$0r?$#||s0n?Z*?BMwhma&t?hUL(1X9xl~wY`7Qsf?iNE>Oc1UoOF1t*hr(Rr-w?5;doi+>9 z_|DWuLu(9nWy8?Rp!Z*nzQ6Nd-cRnnAnSB{TzG7bl_pY_k0ED7K0*{0Zd|$MCUbiYPl|gS-@{GsgbydFRicgC`t4yAqy~h;mC= z<9t~yl&ijV%WCjW!c?Y>*y+8Gv3sVc{WQx>054?#SVD&8RA8=%zFo>@Wt&4q-f?oN zJP}f~G#`Zmd)u_`lM2w8SdtapZoy(?wG z|IM)Aj~&r0)RqYT?h%{`z0{9@rO;*ovP&oWD&@=kH7#Q4BBerEp0eFB+)3*@Frm7) z$nI)p{h*TdX9{uEf;F~sOD(rxUpB*Zr4I1lrEhHa-#Xd~JLwd4fQplLrly-ifUMmt+WJ>fcz^u@@Y z5BUDkexgTBrblOSeXGWON-;Nz^7bkb;h+_UF;yaUD=Jx#t`y`X*AqxpeT%+Ji}-UJ z9ZC}NO^}_kgttcDio8X2D55R3z7$1}%cJjo8h(%VV&hyUrPjgP35~@nUoYQ_R6hz1 z_K4s}?oyy3-g&*US&oyhl+EaYPbiyHc0~FvdgG+jR0T9o7CXJ5E!OM}rxrU+P8R%N ztl=&bDfM~i(A|+Hxn=^BC3dEClF%Z&cEP{*O)vVg+MMVf=Zc+C=8x5#tQ3KIe2#ZJ*&HT{mbMbMO!fvoI@7Rm!3yao@X83oSX>U zHiJC|NJG4=gD(4OAj*^r{^>)VYMOnIBBtU_na;!_(B)z}P>%Ny zO8xI0XcHl(Z6By!g5Ls-=ZTv-PK!C2Sl1$baE*s$b@~LqG_=}N4|KqLT&2b1jtM5g z|K%{VMBdf6FADGI0O20UY@3u~DLT_LsV^pGI`kn6+DcJpeZl6QXk1@n5pstJ?MvX! z(i;PBh3UR+REP8(1nb58CN{*|WOtGMqZvy{k6S(N1DvMtS>4S*>xY`|l+Ks1rGsV-J zXO+U8L$tjQLpT}9z~bSdz`Id*0o(_p?rY#a5OsUu-XC>80Qaj=_ing%N8Lx@em3gv zhI?1kJp%V*A>r%;w^DwgKwXIYYez_~pw8m(bCkBua$MaOb#Jq1EQi(YrZT_0_^`Um zq$xeD)`PZ9{48+Dmi`Uv0o`d~WO|YAMOhQXx;0`zYM+`Memhe86kjWuEn&9=$qOkb z25XtauNP8evVjmRGykol%s+dW=5yw6Cb=X^KS?N|b&lGE>RABZk~m%R@#(q}!ZiX) z*9=XkriAq!V%`N(NhBs~^Y3E%YjD$6iR_<7~uVV*W!a-#ru<09p#OyxX*# z8C>t2X8BgHXch8-r9Pj(+}MnhS<)4B044Sg6_y!S>L`FJJ75aIx$Di%Ti}3aNX;c8GX=3 z{MWOx8|BwEYo<@e4v_nkFBFrLO_BM*P|D4`4s!PA_;$fOt`uvEIu0e88ZA)-D>D*T zR}u_-A3D<$@rm$-LVZ0&s22r>%3T1YzxXR5O#q&toV*`KqOghAe6@=bY>`f;k!*liTfg?Z`5D%L(_C1y%F}CzR>_*^~|`=FVs5Vjn>tr zmwlmbub;Wz)iTXXvqj{@=wBfC%?C1O+S+wtJd`2gySJpcEzlp1|C#=9@+RHvo$Dv$ zPpsMMJ=LSP5UR>h;AC)n%d=?{+{x>O+?bg6ZxA3Y8g6%-6e^0zFQ)n1lk)Ym-|hh( z1aL50dkjxTzBv zEfnYOQre-b8C$vx<9$=^GWoa~Z$1WzWGzOQWTr5(sc&7q0&nAeD_>QtZ=Q%W1|Sne zd59fd7(I5O3vW|inhr`OGUnpVp}^~qG@=+h9D|u?>#09^(6tgkcJl1Y*W6!C(EUQ_OwyC zGwri>3HKbG1ES4(XKG2>)i|*mQ{4q^N$6jynA>&|ckE0>$$3a8Ki?4)IR*Yji{HkQ$z~#c`!7ng+x73WWmS2dTD97Bi@dnXWv@(a}4CUk1184PSw4 zZ%?9`Esn=`CBhiUz)u*9*7cc)yQ^ zTuU1#`p0P#+e{X{WujjXeJjc5oGLmzK**fk&1TN=#q=Aw*>425n(K4QG|++lLjAB_ z)2okr16;yf-+IqM-K-O&aT!17^?vPyf%d0bGOt?b+MP^yv_y2Q=eC`7=`? z{zT7wjLSOILph8WhG9h9f&C%TGH(sjrV_8>>4{fk-OdHy(S&(pMB7(n;Q2E=OVoHH z_dhnO%|6>cC!=ie;5BqY`wAzjOyCpgu@5Cm+I_7@`i@Bava;S2z@NmvxsCFqyeLlz z`CNv4N}Q0{f~{}l{sB<_NP?PZTe|Sr$~>>_{~BhA$T_mN&D*@E5x3Hb3E;I)Xpgy) z7d@}sjM*VW+3gUI--x?SUUEn$#k~0ZNm>2v%mSpyR?3^!-%o-f_HiutV3Gq!XZlv# zN@jApkDn%dp@G5#=Wl)38;0zq%*rlO@lCWNzYIP#0IVcyBKBp|U2{v-KnKQUW#xS9 zA5`w$4-M1(!vjC?;R_1I;R{`^^v2dxb@4PdLU|J6~E}i9(t48ooNrMg6&CYusGA6 zR2eHTuxstT&hjS_N|=!L-fNk?_Z^eHx6lxgk}4aN48V_WqdKuWCa{`CoYh(5SS{*K zDAKu)HG#5$GZ!R7(^wO324Zw$WOvgb-YK`UrQ>maPg|QVX-=fAOF@h3b;>lIcsvNrt)wKw4W&vmQp&pW)3|(LUTP50yR2(S6l-6 zL@013R1Z0p$Wy+J_JPDDF*L78=ktl%1F4+sJ#nr(8)_Ap@M#4KW*8m{{3%2dz>d3c zQc=KXf?OHNY0XorD101u9D-G#g8Rc=Xebu#(rC!D zC|Z`6m4su-O zp93))H47C$2wSjjmsW4YO{tL`CsO(+>$ZitK~;Yo=N?~rQZWy9SH?&&@v+Xhg|r`l zR4{tSVc2@yg16T=Q7Hr$XrgSgbp2+dYGFtN?ass@&62;o@($5$#^mD0yO%2ogRDBy z*Z&X0r6@%$`q?^V{@0Z;?o(^5H`byY!NBW5L!;JBCuxm)xQFOxG_JyFqHME3qsfKw zHjnkVlu~BKoq3bS{1qN&_$IwE|JY4^kfEpB`EJMUd~ED?J_)*juHFrI(CvKk;-BBn zN9l~+>=*9YtyBg&znR^Z5=$w#0ggGx&F;6ScBSEz>=%VCKoVl$ehdZFb7`3Okh6_S z@qf$trhmzqavLlC&+h~DwqmVM1)n4JAnN3SrFozGXLg3&lKn%tz0Kg-K<4lIcBk8?)?rmx z+Fs}$Z(fPhUnhDa-Rc;T!H>AZ--^>jDNLHO z@r^0yzqA9Zu51X)8a80|N`?gC`|Sxdw_+59%Z*WVzT9yCtlaRQFZY-moYe`T@#d>c zPxWZsAN7Rm3+-u7WOk961UBDxkm^kjTWzMAg1m_tRH7Sck6{aSsM`#X3ib0z4=X60 z?TDIRfbwQaea=Zd?`g*&m3d&+Kwl&VChp9!I0ZFhdPm(3j0A%SqFpFREG^1Ep{u(>NHfwSWzEHIk6zl-3PkZK_~q4sQuYIxID1ub|6hq{{)P& z1f*|js8U;Zp{?yT40jXM;mo_4G%v#GJ9~Ko%2hz~To~gSTuHe6Y$M^TiYL{f~z4Vn~E>yICYBK+qC^P*K)dj)&uuh=3>(?_5EVA z)W4L^aW3R*%RAJxq&O!tzk?o~mBcT?+sQB5D?F7`ckWBr{OFdQdOl-QTZOX|CElLo z=oOtDNDgM#d+K%uS(LtegbMVCyMp?@`x)_1oV~RbCHYgGEBMSsNV@h_R+-Yh?= zB(IKB5@a{%{#5701t#vo9#4XDTuyGWXVtdZtqJm)&55{utIm`LyuLyMpC8kNo!nrx zQ_QnMU&GmZ#0d#!l-DpXOA!&mv&Od{Q}qQDJ7KWqZhXV?;+2SeLyi92t_W!_!FSKlKNm9C$Iv|NnN;!O*rAMe25hS-QA(G+2`F{hX zT!y4GYwjnVpfwwgf?qV?qd0h0n6!ZME9G9)2-WdTo@vT=^0jZI6ydaKI;0w6W+(zy z13n|RX*|yAdcD}^NHpMkFYz_)u zeiCMl7W+)pwh22G+;TH>b8Rx8zkm3LL3{5JJEih2)*~7dV|7%XmlUoioZ}CEiu*n>w|93bj}_aFJ=-^4AWCwI47xyFq(11pP1NHgAZJX$`}qZY z+6(qP$7CPXD$mEPP);d*(=@9HshKo=Qa-+;dy#T$apLg~#JBcpweP6;3iWlWO@2lU z*QU7PQ(*G4tajh_1%K^%6}X*mLMwD5G`>aGCu&kmP1C-KXbu+VV2c8T8`Il~za<#J5u(JN_jvO7D{p#g1^F z2L#rCpyp4)v<}>*QO7RA+!Pzrw;Ma-a}0nD0+QNret9(~pQu|v863+9FD4N~9l z(92Ijj)0^Rap&Ni6Ie+@O*?UC!)GV`+GI+R39Anc#7+ick|+%NC*j^jAi#W3({$E8 zD+c;=8%69-&eoKp?5iJl*!_DUY}278Eu9TEf!M)t-UTLGa1Y!(?6wEjz)hTS&^Cgz z;1HV=d5O2EzR}O)sK%-0aNBNx>h6jk3SL7CU}j;{g+aT8>db_33%Sb~X|x}j z?(o-P$HS&a!iG=Hbx}=+0>2x!oNpg%w0(A-Z=bk+9``}dBRbxWd9Fq`L+IxMP%2fv zrK~q8^9mrzpf%7IUCJ>v31d=k`t&qQ!%gz>%=|E<@k!!mhjJ;nOUv+onLNE`B6MFO zsXb7P8G_fg0XHa|+INt)S0C0l6ZQD^V1#p7bb$5;k+9X#uuBin{(xpJv9EAqJI%Df zpL`oO&GSDApBoLI`!C`1umb(Z_|foie9~3<)FfaAi_qsuS4F}OQ;O=U5Kja9j~v>e zRrwj}HnP(Ze&Rl^)-NCWM&~ zW$@*mi_% zM_AZK*mi_HfUpM;7Pb-g0K#@5Y!||I8Hkqw+cpxIITYbKeB46&ZqQIH6>iMQ<_gr% zAalhw)9{OoUe7ykF$ z`b71z6`7?eFkMxY-)_WD!~23ib8%CD=C97RmwssWO&!tuU6RtTdJ` zgW0h%*E+Q{K~BK#faJo5+Q*e9cu3bXp)$cE`U}J)gkj8<6Fm~;wTA-ju$ev5!;gX< ziT%%_Fh2+M4|b6G1(4w&F#(X1I(@E5X4OIrUoc*y|17SJn;^l7$A%a~H!N;|Z*iG_ zuS4H_3=&9?S;KutkVtBjpqmxfSRU2=4+WkE&uIUR41B5|$ok+@qC*LObd{r@4Z zbUtnZv@pt}y8pn5{SR^V=i_cgT;KV)H~fdVka!p?FLe6Lqx%2A$Ne#`)6k5bZVj4y{~ycIs=2%j&kCvUI=7X|zw%9G}_kwD1^^@1SeHi)Mi33H4_ z!rl$*n?=G3qG4~gk$zSrY-Tj9sg3lt^v%rQ8cppb&{MT$lI9r+JTs~_>r5koCt>Sh zKLI-i_U~cG!hQtyWY`bF&V+scXpH&4VBZTn2lj?hojDiwe~-qSr@_7x_C>JofV~(} z5qkSbU@gwgM5DO_JWA)tXkfv)(ZIJVu&9Pdf#(toG@he)%s>4AW42}~Pu#_C0~YVF znDI8`v9%S_PO)0EGonW%Sq`4oJ0M{`(OGRny3A6z`VeAC6A@-vi&M~OAcV64=@XHr z(IF+aC20y~c$^7DPqGX;3V1PxH~zXzH_Vr6=pbG2AG8t8m0A~ynUsm3Y~GbK!! zq%>3|6n$N#>$d(^URc+5G|&trufKN{v?3=)x=DwXL(oM!EIXs=Im78WD?w|j64yke zDoLh3A_ITl>dV1*I0}8;q{jQO_sj(4xncEJtHCi_zSYrCB^;++NJms+2KNKgzW2Po z66wFuj+JHX!Rnm3m$(Zt?WCgwY;@f8M_Ndd8D8o#a4QjeEr5#Q$^c4Xf>!*k{}G8mjOH^y4D=|2{-|Os$U2W0c$bJvP@e*SSEK z+OYbUMK=^JFKVdj0liSzCFSwk#9_&Ngjy+qxV5o)BHBv&Sz9@)iH0bwrnWgGI|!@S z!qAGbmeIhBx6n?=m)gk!ZfChF%_B`AW=(Pp^&Eyq6KXf_-)na?z|qD(wwD#{l``eo zs;|%rKX0$kMt|O3)CbT5F8%i&@Y5D!kiE58=~kzSVcmuMR?kGc{Ta8iP^(d!P4QB@ z@jPlZ>G+pG7nbHiz6uL8$rb-Syl*Edq&n9Vt}z`mHf^8l#nojk3&Sl|j}{|MuCVM5 zwV3YGl-+$=-QzeXOm^94rJmIE+eO?um-VCr)Ud2*Yn^YaA9MYEh+5uNeDWBz+ebaq zp$UF2AfUZ2E4mz5Rt;6((rqrN=gIAm4Q$-FdP}1;Z)eJQUxIuX8fb^*!=99)jgaCI zqN9Q8f};(nC59mhYJ{A);5SOw#^AO}>mU0T8Ozma<-n8}DC=D`nNZ0uYb#eTG9BqR zu>`x=t6}rn#36PjV@UFM+YL@X?)oMT8x4ADC*7`-nGD{dxAk(%Lg*%uKFKVLsk6E}a6jLA#G5>cxHcN3h&L2bERwI0l@lmIKY^zg0F{MgkpHN)~ z?1ehDgC*dO+XzpV`I8QC_tMq)k~S6(8WPYWmR6@!3YISFXW=l8u&@u$5tlFz!r_8j z#Lh$nm)X1E0nEt-phKc3n{@7l4ny{8q@SqJbb z&&$6_C7Q672@pi`;%&@7xrMcDL)-@+V)~;~^p`@DSG+D|af)I8F+EGieCMo{<85h> zdLjue+>!n|%?E+9OUgc)vI%tmq&A&PKclR-LxY>-EV}-9Hh&7RLF<@58?p^C{W|`B zKO1jxr7J61C~Tf`bRY5UzX#5W>jqYC{0UX6kMA8H50ppkE8rMQeeY_Y za(sF61?<$D`~EhetoLtmU7foeQ;tE(L3p{ip-&LXdcP8?YG|hxTDaXL3)mSrOVN%2wAuNEV>)9kEEAZNTlB{MRWz7=9@y z$o)N3AM3!20N+|u4vZ@xaL?CHiMQ$Uc-<*|5qwz3RLo@CpK_!q-1o90^H^--?;RP( zkXtrlXHSuN?lr1DP1AQs+X(r%tCid$yq6uTP>f$Hx2B=A{6XAWMX`BqF3uf@pPeET zm&=QF=<(MRTz^I13d=DyPj!J7k;|8iLB&lI1RS5_avj7L;A;HLsv zG?a(i&x($m*3J$E-U(*m_DrdNJ~z3J0L84vI<9o(D&UU|uT#3^xKa`0i#-X(< zB(#f|ClTJ-Aa5fH-$rfL1?}~#&5)#zNZ^hJE+1-Gy-V4rJPYa7zT?_%dIJ1I^sdo> z9nu3iIK^iVHCJh|YJ2UYfr0~~=RTQI&0BL=wpIJWa-Ki->$lGL>ty#yWg|E>hGtV# zHeK-WONGj&7D+j*)H~v;r}|3Q?1ZM}W|SQ_8HXh{Q`T&h56MZ@NywKCjRwlWZz4{J zp*0O0B+>UAq%;fKEUr_^mp%8$e((ZFmJauyu1Rv1hsP-S3!48qF!A0eTmCtqsXa2F zmu%MjMoMKgkUtWUyN&oR9wE9{K`Y5ej0UE?2|c7z!izOz9Xib>3h31lSrgiOO~lFN zdz@VKIITpG2qJESIUdqxhMeQj*VK#0tN(0?aqp-?yXSV{)Ucy+Sv5{HILR!lB<>XE z5aL!W8VoD)>;sJ)1{bbWl-P&GolPYx`5lYl3cqx%@hhzxiLdR&XP*jIi5w~o1 zi|cXsVp)TO`;t;2EoeJ~wZ&i9(D;7JLEvoi~)_gQL> zP{duE!@OMVO|HTj{Hj3D`%RGIMvRok&5-B_uMR*eU{<gtv2*4=o=O*h?Xx_Rv#x7@yRg{h**iBC6WuDfaNZ&s}R z%`KN@+%Y{CqrSmWUt>uclSyuME%a-53oJ)!e@#icq zE?&5BVPRqMqmP!Al`UCvUD=YdU1d)_UAVAp$@9;@@Z#>5_PqScA6|WJZ)4NG{dnQ^ zmIH6R+4@%7!M6_`KJrds;d}3YaP-5E{_@xM_DD(#Pj;R9^s|LulzoZh%D(&l`z1*8 zx_|uB-+yLc@azxhu|vZnqrngtHM*GbVVt_OsVHA1OA))-WKm^0F@$64dd|3w=W;Ed z%MHAg&*XQ)UBjbL7k`qQgr|8ue$V3f9DXnG7x89 zH}QLm2lzq$Hb2A<^CSEnm_PIPU_RhSVLn1hKjWM|#6Rbg_y8AKKOe+T<(b?fOv2O_ z!&YX`6Xpq*2{&e6A=rgN{9HmTuMq5P1HNX7K;N=dc$hB}>iG4-4Z<&lUjg{PQm7KP z@fE^K;YMMV@HoC}wNRCPlW?j#Uv1}W7#=zKpYg$ia&?}{LYC(_}L_r zSS}fKvSi_#rAzqR(s=$?iL--}4;Ot`YNkolC;xj2XVuwk>SMfq>N3uZdac2z)tX@2 zVC--&GV0iM#>K|v#%qi>7_T+{$|&QB*EpUXFuq}Y&-lLa1LIL+m+_QQHJ&r}8vBex z#$jU(;?%*^!|XLm>~&*{vB~(R@k1kLhmAg?pzVhF7QVk32k?Kyc(s|cT(j3~5NhGt zXoj4C#+E%xlCuTADqG9%fL)Wlg0qXK=?g^t@@8)QGQGi;chV;gAl|&hsxua4{37FqjAz;N%#e|ok)M&Bk(R+S z=4X7(4zpz$*JOAyZp@G~$}?`tc#ip*kA1+7viDdH|A_sC{gowU#Aj^EsLgnReaLDu zj5G>${WHJ7S_0D#b3Y8daSq|%!kDi|JeXt{4NO16K7+X!Zi+YY2Bsf{ zdoJt@m>ifXFflM^5nc?N;*FK78tcmmk`a&obz{#%`$EPx%%Gq>_=A-m3X%_h^;kTj zFGruTP$=?<{wK0M*OE=o64{b##-4rnVLX%>Qs@z$ZQf(J=7Pw3@m}3;5N6*XaCDYP zeubO`B58VQZ5#XhPx<}-^sHp%`dQ_-t-aCXyxPe!9A$-zi!v^DKyj<0c=5u*D>JC9 zpsj}ga(;z&hOuJ=9IOOC0cPwOrj795X*?$fs)cpqIl0H$jrbCr3vA*o=o9EWtuW8P zI1%TSU1)E?$xx#Qb7LgDB*3XjX9liG$9gHH3xXzH%eYQ+j|idi7|gf=nw9A^T(Fb1 zfh;x&1|)g?B&=5`oBh>`FT`->f`~#$VvH31MCQDsYGv7NmA9-~d2w0M!XjqN$<523 zeaW1HxrGjAQLzij(4UFEKKhO5br3)b2Lpv2E|ijj7^cf;9LdIN=t=mmfW92rGGm%? zDt?iFQ+{+)tl~=a{c5IvX+@-7Z^vGn482ziy9Tx$o^YBJh>9h*XT?n`VX>Plu`$e+ z3M8pOA8$xZGo@!tqj1JnpoYRFWY|9&GHv!OIw80}C%Ifo(HeG}-S qV|Z2+ekJY$*ob6)0lOUbO4ws*u<-n#AG5-_#XmXr`SkYB|Na*!JIBQU delta 10140 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≷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 cg-}+5^wMD*{T#P2BL#vcB*E`2YX_ diff --git a/Tools/bootloaders/CubeOrange-bdshot_bl.hex b/Tools/bootloaders/CubeOrange-bdshot_bl.hex index ac844a7f4858e..9ee5b7aa95800 100644 --- a/Tools/bootloaders/CubeOrange-bdshot_bl.hex +++ b/Tools/bootloaders/CubeOrange-bdshot_bl.hex @@ -1,1105 +1,2515 @@ :020000040800F2 -:1000000000060020A1020008FD0F00087D0F000877 -:10001000D50F00087D0F0008A90F0008A3020008F3 -:10002000A3020008A3020008A3020008DD290008BB -:10003000A3020008A3020008A3020008A30200080C -:10004000A3020008A3020008A3020008A3020008FC -:10005000A3020008A3020008653E0008913E0008C4 -:10006000BD3E0008E93E0008153F0008A302000855 -:10007000A3020008A3020008A3020008A3020008CC -:10008000A3020008A3020008A3020008A3020008BC -:10009000A3020008A3020008A3020008413F0008D1 -:1000A000A3020008A3020008A3020008A30200089C -:1000B000A3020008A3020008A3020008A30200088C -:1000C000A3020008A3020008A3020008A30200087C -:1000D000A3020008A3020008194000082D400008F0 -:1000E000A53F0008A3020008A3020008A30200081D -:1000F000A3020008A3020008A3020008A30200084C -:10010000A3020008A302000855400008A30200084B -:10011000A3020008A3020008A3020008A30200082B -:10012000A3020008A3020008A3020008A30200081B -:10013000A3020008A3020008A3020008A30200080B -:10014000A3020008A3020008A3020008A3020008FB -:10015000A3020008A3020008A3020008A3020008EB -:10016000A3020008A3020008A3020008A3020008DB -:10017000A302000849350008A3020008A3020008F2 -:10018000A3020008A302000841400008A3020008DF -:10019000A3020008A3020008A3020008A3020008AB -:1001A000A3020008A3020008A3020008A30200089B -:1001B000A3020008A3020008A3020008A30200088B -:1001C000A3020008A3020008A3020008A30200087B -:1001D000A302000835350008A3020008A3020008A6 -:1001E000A3020008A3020008A3020008A30200085B -:1001F000A3020008A3020008A3020008A30200084B -:10020000A3020008A3020008A3020008A30200083A -:10021000A3020008A3020008A3020008A30200082A -:10022000A3020008A3020008A3020008A30200081A -:10023000A3020008A3020008A3020008A30200080A -:10024000A3020008A3020008A3020008A3020008FA -:10025000A3020008A3020008A3020008A3020008EA -:10026000A3020008A3020008A3020008A3020008DA -:10027000A3020008A3020008A3020008A3020008CA -:10028000A3020008A3020008A3020008A3020008BA -:10029000A3020008A3020008A3020008A3020008AA -:1002A00002E000F000F8FEE772B63A4880F30888F2 -:1002B000394880F3098839484EF60851CEF20001DA -:1002C000086040F20000CCF200004EF63471CEF22D -:1002D00000010860BFF34F8FBFF36F8F40F2000043 -:1002E000C0F2F0004EF68851CEF200010860BFF374 -:1002F0004F8FBFF36F8F4FF00000E1EE100A4EF604 -:100300003C71CEF200010860062080F31488BFF330 -:100310006F8F02F021FC02F0C3FB03F05DFB4FF096 -:1003200055301F491B4A91423CBF41F8040BFAE784 -:100330001C49194A91423CBF41F8040BFAE71A499B -:100340001A4A1B4B9A423EBF51F8040B42F8040B69 -:10035000F8E700201749184A91423CBF41F8040BC6 -:10036000FAE702F0DBFB03F0BBFB144C144DAC428C -:1003700003DA54F8041B8847F9E700F041F8114C00 -:10038000114DAC4203DA54F8041B8847F9E702F038 -:10039000C3BB00000006002000220020000000086F -:1003A00000000020000600209044000800220020E9 -:1003B0005C22002060220020D44F0020A002000810 -:1003C000A0020008A0020008A00200082DE9F04FDA -:1003D0002DED108AC1F80CD0D0F80CD0BDEC108AED -:1003E000BDE8F08F002383F311882846A047002042 -:1003F00001F0DAFEFEE701F055FE00DFFEE7000047 -:1004000038B500F0D7FC30B1164B00220E211A721D -:100410005A729972DA7202F0A1FA054602F0D4FA21 -:100420000446D0B9104B9D4219D001339D4241F290 -:10043000883512BF044600250124002002F098FAF6 -:100440000CB100F059F800F039FD00F0F9FB284636 -:1004500000F004F900F050F8F9E70025EDE7054653 -:10046000EBE700BF00220020010007B008B500F054 -:10047000B3FBA0F120035842584108BD07B541F233 -:100480001203022101A8ADF8043000F0C3FB03B051 -:100490005DF804FB202310B583F311881248C3686C -:1004A0000BB101F007FF0023104A4FF47A710E4898 -:1004B00001F0C4FE002383F311880D4C236813B1AF -:1004C0002368013B2360636813B16368013B636089 -:1004D000084B1B7833B9636823B9022000F070FC25 -:1004E0003223636010BD00BF602200209504000825 -:1004F0007C23002074220020F8B5514B514A1C4641 -:100500001968013100F09B8004339342F8D162688E -:100510004D4B9A4240F293804C4B9B6803F1006331 -:1005200003F500339A4280F08A80002000F0A2FB9D -:100530000220474B187000F041FC464B0021D3F8D5 -:10054000E820C3F8E810D3F81021C3F81011D3F84D -:100550001021D3F8EC20C3F8EC10D3F81421C3F821 -:100560001411D3F81421D3F8F020C3F8F010D3F805 -:100570001821C3F81811D3F81821D3F8802042F0BD -:100580000062C3F88020D3F8802022F00062C3F814 -:100590008020D3F88020D3F8802042F00072C3F886 -:1005A0008020D3F8802022F00072C3F88020D3F896 -:1005B000803072B64FF0E023C3F8084DD4E9000450 -:1005C000BFF34F8FBFF36F8F234AC2F88410BFF37E -:1005D0004F8F536923F480335361BFF34F8FD2F8A9 -:1005E000803043F6E076C3F3C905C3F34E335B01B5 -:1005F00003EA060C29464CEA81770139C2F8747285 -:10060000F9D2203B13F1200FF2D1BFF34F8FBFF38C -:100610006F8FBFF34F8FBFF36F8F536923F4003396 -:1006200053610023C2F85032BFF34F8FBFF36F8F77 -:10063000202383F31188854680F308882047F8BD7E -:100640000000020820000208FFFF0108002200202D -:10065000742200200044025800ED00E02DE9F04F24 -:1006600093B0A94B2022FF2100900AA89D6800F0BA -:10067000CFFBA64A1378A3B90121A5481170C36026 -:10068000202383F31188C3680BB101F013FE00230C -:10069000A04A4FF47A719E4801F0D0FD002383F305 -:1006A0001188009B9C4A03B1136000239B49009C66 -:1006B00098469B461E469A460B705360012000F0F8 -:1006C0007DFB24B1944B1B68002B00F016820020A8 -:1006D00000F082FA0390039B002BF2DB012000F074 -:1006E0006BFB039B213B162BE8D801A252F823F0A9 -:1006F0004D0700087507000809080008BD06000836 -:10070000BD060008BD0600089D0800086F0A000825 -:1007100089090008EB090008130A0008390A0008D3 -:10072000BD0600084B0A0008BD060008BD0A000807 -:10073000ED070008BD060008010B00085907000876 -:10074000ED070008BD060008EB0900080220FFF7CE -:100750008DFE002840F0FB81009B022105A8B8F126 -:10076000000F08BF1C4641F21233ADF8143000F000 -:1007700051FAA3E74FF47A7000F02EFA071EEBDB74 -:100780000220FFF773FE0028E6D0013F052F00F29C -:10079000E081DFE807F0030A0D101336052304217A -:1007A00005A8059300F036FA17E004215648F9E74A -:1007B00004215B48F6E704215A48F3E74FF01C098F -:1007C000484609F1040900F057FA0421059005A8EC -:1007D00000F020FAB9F12C0FF2D101204FF0000AFD -:1007E00000FA07F747EA0B0B5FFA8BFB00F05CFBA4 -:1007F00026B10BF00B030B2B08BF0024FFF73EFEC6 -:100800005CE704214848CDE7002EA5D00BF00B0390 -:100810000B2BA1D10220FFF729FE074600289BD011 -:1008200001203E4E00F026FA4FF000080220307002 -:1008300000F0C4FA5FFA88F9484600F02BFA044643 -:1008400090B1484608F1010800F034FA0028F1D1CF -:10085000B846044641F21213022105A83E46ADF8FF -:10086000143000F0D7F929E7012325460220337020 -:1008700000F0A2FA244B9B68AB4207D9284600F04F -:10088000FBF9013040F068810435F3E70025234B84 -:10089000B8463E461D70204B5D60A7E7002E3FF432 -:1008A0005BAF0BF00B030B2B7FF456AF02201B4BFF -:1008B000187000F083FA322000F08EF9B0F10009D0 -:1008C000FFF64AAF19F003077FF446AF0E4A09EB73 -:1008D0000503926893423FF63FAFB9F5807F3FF73B -:1008E0003BAF124BB945019322DD4FF47A7000F013 -:1008F00073F90390039A002AFFF62EAF039A01378B -:10090000019B03F8012BEDE7002200207823002053 -:1009100060220020950400087C230020742200201F -:1009200004220020082200200C220020782200202F -:10093000C820FFF79BFD074600283FF40DAF1F2D91 -:1009400011D8C5F120020AAB25F0030084494A45BD -:10095000184428BF4A46019200F034FA019AFF2158 -:100960007F4800F055FA4FEAA903C9F387027C4992 -:100970002846019300F054FA064600283FF46AAF77 -:10098000019B05EB830531E70220FFF76FFD00288F -:100990003FF4E2AE00F0AAF900283FF4DDAE0027F4 -:1009A000B946704B9B68BB4218D91F2F11D80A9BC0 -:1009B00001330ED027F0030312AA134453F8203C4E -:1009C00005934846042205A9043700F019FB814627 -:1009D000E7E7384600F050F90590F2E7CDF81490BB -:1009E000042105A800F016F900E70023642104A8FB -:1009F000049300F005F900287FF4AEAE0220FFF763 -:100A000035FD00283FF4A8AE049800F065F9059084 -:100A1000E6E70023642104A8049300F0F1F800281D -:100A20007FF49AAE0220FFF721FD00283FF494AE38 -:100A3000049800F053F9EAE70220FFF717FD0028B9 -:100A40003FF48AAE00F062F9E1E70220FFF70EFD05 -:100A500000283FF481AE05A9142000F05DF9074697 -:100A60000421049004A800F0D5F83946B9E73220F3 -:100A700000F0B2F8071EFFF66FAEBB077FF46CAE56 -:100A8000384A07EB0A03926893423FF665AE0220AC -:100A9000FFF7ECFC00283FF45FAE27F00307574454 -:100AA000BA453FF4A3AE50460AF1040A00F0E4F858 -:100AB0000421059005A800F0ADF8F1E74FF47A7035 -:100AC000FFF7D4FC00283FF447AE00F00FF90028F0 -:100AD00044D00A9B01330BD008220AA9002000F061 -:100AE0009FF900283AD02022FF210AA800F090F9AF -:100AF000FFF7C4FC1C4801F05DFB13B0BDE8F08FAC -:100B0000002E3FF429AE0BF00B030B2B7FF424AE29 -:100B10000023642105A8059300F072F80746002819 -:100B20007FF41AAE0220FFF7A1FC814600283FF4B3 -:100B300013AEFFF7A3FC41F2883001F03BFB0598B0 -:100B400000F0FCF94E463C4600F0AEF9B6E506462C -:100B50004CE64FF0000AFFE5B8467BE6374679E6FB -:100B60007822002000220020A08601002DE9F84F05 -:100B70004FF47A7306460D46002402FB03F7DFF8B4 -:100B80005080DFF8509098F900305FFA84FA5A1CD0 -:100B900001D0A34210D159F824002A4631460368F7 -:100BA000D3F820B03B46D847854205D1074B0120FA -:100BB00083F800A0BDE8F88F0134042CE3D14FF492 -:100BC000FA7001F0F7FA0020F4E700BFC823002014 -:100BD0001022002058410008002307B502460121D9 -:100BE0000DF107008DF80730FFF7C0FF20B19DF829 -:100BF000070003B05DF804FB4FF0FF30F9E7000099 -:100C00000A46042108B5FFF7B1FF80F00100C0B229 -:100C1000404208BD074B0A4630B41978064B53F8DA -:100C20002140014623682046DD69044BAC4630BCB8 -:100C3000604700BFC823002058410008A08601007B -:100C400070B50A4E00240A4D01F060FD308028681E -:100C50003388834208D901F055FD2B6804440133E1 -:100C6000B4F5003F2B60F2D370BD00BFCA23002053 -:100C70008423002001F028BE00F1006000F5003060 -:100C80000068704700F10060920000F5003001F04C -:100C90009FBD0000054B1A68054B1B889B1A8342B9 -:100CA00002D9104401F02EBD00207047842300209B -:100CB000CA23002038B5074D04462868204401F0B7 -:100CC00027FD28B928682044BDE8384001F032BD2E -:100CD00038BD00BF842300200020704700F1FF5082 -:100CE00000F58F10D0F8000870470000064991F811 -:100CF000243033B100230822086A81F82430FFF73A -:100D0000C1BF0120704700BF88230020014B186835 -:100D1000704700BF0010005C244BF0B51A68044611 -:100D2000234BC2F30B06120C1F885868BE4293F97E -:100D3000085028D09F89BE4206D101200C2505FB12 -:100D40000033586893F9085041F201039A421CD0CD -:100D500041F203039A421AD042F201039A4218D098 -:100D600042F203039A4208BF5625621E0B46441EF8 -:100D70000A4493420FD214F9016F581C6EB1034616 -:100D800000F8016CF5E70020D8E75A25EDE7592572 -:100D9000EBE75825E9E7184605E02C2482421C7051 -:100DA00001D9981C5D70401AF0BD00BF0010005CB6 -:100DB0001422002000207047704700007047000098 -:100DC00070470000002310B5934203D0CC5CC4549C -:100DD0000133F9E710BD0000013810B510F9013FEB -:100DE0003BB191F900409C4203D11AB10131013A63 -:100DF000F4E71AB191F90020981A10BD1046FCE7EB -:100E000003460246D01A12F9011B0029FAD1704795 -:100E100002440346934202D003F8011BFAE77047ED -:100E20002DE9F8431F4D14460746884695F82420BF -:100E300052BBDFF870909CB395F824302BB9202278 -:100E4000FF2148462F62FFF7E3FF95F82400414653 -:100E5000C0F1080205EB8000A24228BF2246D6B2AC -:100E60009200FFF7AFFF95F82430A41B17441E44EF -:100E70009044E4B2F6B2082E85F82460DBD1FFF787 -:100E800035FF0028D7D108E02B6A03EB82038342A9 -:100E9000CFD0FFF72BFF0028CBD10020BDE8F8838F -:100EA0000120FBE788230020024B1A78024B1A70BE -:100EB000704700BFC823002010220020F8B5194C4D -:100EC000194800F079FC2146174800F0A1FC24687D -:100ED0001648D4F89020164ED2F80438154D43F039 -:100EE0000203114FC2F8043801F064F92046124998 -:100EF00000F09CFDD4F890200424D2F8043823F0AC -:100F00000203C2F804384FF4E133336055F8040BA0 -:100F1000B84202D0314600F0ADFB013C14F0FF04B2 -:100F2000F4D1F8BD70420008C832002040420F00E2 -:100F3000B0230020584100087842000838B50B4B18 -:100F400004461A780A4B53F822500A4B9D420CD0A3 -:100F5000094B002118221846FFF75AFF046001468A -:100F60002846BDE8384000F085BB38BDC8230020C6 -:100F700058410008C8320020B023002000B59BB0C3 -:100F8000EFF3098168226846FFF71CFFEFF3058342 -:100F9000044B9A6BDA6A9A6A9A6A9A6A9A6A9A6AA5 -:100FA0009B6AFEE700ED00E000B59BB0EFF309811E -:100FB00068226846FFF706FFEFF30583044B9A6B40 -:100FC0009A6A9A6A9A6A9A6A9A6A9B6AFEE700BF64 -:100FD00000ED00E000B59BB0EFF3098168226846A0 -:100FE000FFF7F0FEEFF30583034B5A6B9A6A9A6A98 -:100FF0009A6A9A6A9B6AFEE700ED00E0FEE700004D -:1010000030B50A44084D91420DD011F8013B5840CB -:10101000082340F30004013B2C4013F0FF0384EA53 -:101020005000F6D1EFE730BD2083B8ED0268436889 -:101030001143016003B1184770470000024A13686A -:1010400043F0C0031360704700440040024A136835 -:1010500043F0C0031360704700480040024A136821 -:1010600043F0C003136070470078004037B5274C49 -:10107000274D204600F0F2FA04F1140000940023FA -:101080004FF40072234900F0B3F94FF40072224983 -:1010900004F138000094214B00F02CFA204BC4E9F5 -:1010A0001735204C204600F0D9FA04F114000094C2 -:1010B00000234FF400721C4900F09AF94FF40072BB -:1010C0001A4904F138000094194B00F013FA194B37 -:1010D000C4E91735184C204600F0C0FA04F114009A -:1010E00000234FF400721549009400F081F9144B6D -:1010F0004FF40072134904F13800009400F0FAF93B -:10110000114BC4E9173503B030BD00BFCC2300201C -:1011100000E1F50510250020102B00203D100008EF -:10112000004400403824002010270020102D00200B -:101130004D10000800480040A42400201029002081 -:101140005D100008102F002000780040037C30B5AF -:10115000334C002918BF0C46012B18D1314B984253 -:101160000FD1314BD3F8E82042F40032C3F8E82025 -:10117000D3F8102142F40032C3F81021D3F8103113 -:1011800005E02A4B98422FD0294B984238D022684C -:10119000036EC16D03EB52038466B3FBF2F3626826 -:1011A000150442BF23F0070503F0070343EA450394 -:1011B000CB60A36843F040034B60E36843F0010356 -:1011C0008B6042F4967343F001030B604FF0FF33E2 -:1011D0000B62510505D512F010221DD0B2F1805FCF -:1011E0001CD080F8643030BD0F4BD3F8E82042F4B7 -:1011F0008022C3F8E820D3F8102142F48022BBE714 -:10120000094BD3F8E82042F08042C3F8E820D3F835 -:10121000102142F08042AFE77F23E2E73F23E0E77F -:1012200068410008CC2300200044025838240020E4 -:10123000A42400202DE9F047C66D05463768F469FF -:101240002107346219D014F0080118BF8021E20789 -:1012500048BF41F02001A3074FF0200348BF41F0F1 -:101260004001600748BF41F4807183F31188281D55 -:10127000FFF7DCFE002383F31188E2050AD5202363 -:1012800083F311884FF40071281DFFF7CFFE002370 -:1012900083F311884FF020094FF0000A14F0200862 -:1012A00038D13B0616D54FF0200905F1380A200643 -:1012B00010D589F31188504600F050F9002836DA2D -:1012C0000821281DFFF7B2FE27F0800333600023BA -:1012D00083F31188790614D5620612D5202383F38F -:1012E0001188D5E913239A4208D12B6C33B127F02A -:1012F00040071021281DFFF799FE3760002383F374 -:101300001188E30618D5AA6E1369ABB15069BDE820 -:10131000F047184789F31188736A284695F86410D6 -:10132000194000F0B5F98AF31188F469B6E7B062A4 -:1013300088F31188F469BAE7BDE8F087F8B5154677 -:10134000826804460B46AA4200D28568A1692669D4 -:10135000761AB5420BD218462A46FFF733FDA36929 -:101360002B44A3612846A3685B1BA360F8BD0CD97E -:10137000AF1B18463246FFF725FD3A46E168304478 -:10138000FFF720FDE3683B44EBE718462A46FFF7EA -:1013900019FDE368E5E7000083689342F7B504466A -:1013A000154600D28568D4E90460361AB5420BD2DE -:1013B0002A46FFF707FD63692B4463612846A3684B -:1013C0005B1BA36003B0F0BD0DD93246AF1B01918A -:1013D000FFF7F8FC01993A46E0683144FFF7F2FC68 -:1013E000E3683B44E9E72A46FFF7ECFCE368E4E7FF -:1013F00010B50A440024C361029B8460C16002618D -:101400000362C0E90000C0E9051110BD08B5D0E9CC -:101410000532934201D1826882B9826801328260CA -:101420005A1C426119700021D0E904329A4224BF4B -:10143000C368436100F0DAFE002008BD4FF0FF30C2 -:10144000FBE7000070B5202304460E4683F31188A5 -:10145000A568A5B1A368A269013BA360531CA36161 -:1014600015782269934224BFE368A361E3690BB155 -:1014700020469847002383F31188284607E0314629 -:10148000204600F0A3FE0028E2DA85F3118870BD43 -:101490002DE9F74F04460E4617469846D0F81C90A3 -:1014A0004FF0200A8AF311884FF0000B154665B102 -:1014B0002A4631462046FFF741FF034660B94146C0 -:1014C000204600F083FE0028F1D0002383F311882A -:1014D000781B03B0BDE8F08FB9F1000F03D0019085 -:1014E0002046C847019B8BF31188ED1A1E448AF3EE -:1014F0001188DCE7C160C361009B82600362C0E9C0 -:1015000005111144C0E9000001617047F8B50446B7 -:101510000D461646202383F31188A768A7B1A36858 -:10152000013BA36063695A1C62611D70D4E90432F7 -:101530009A4224BFE3686361E3690BB12046984790 -:10154000002080F3118807E03146204600F03EFE7F -:101550000028E2DA87F31188F8BD0000D0E90523FE -:1015600010B59A4201D182687AB9826800210132AD -:1015700082605A1C82611C7803699A4224BFC36846 -:10158000836100F033FE204610BD4FF0FF30FBE7D3 -:101590002DE9F74F04460E4617469846D0F81C90A2 -:1015A0004FF0200A8AF311884FF0000B154665B101 -:1015B0002A4631462046FFF7EFFE034660B9414612 -:1015C000204600F003FE0028F1D0002383F31188A9 -:1015D000781B03B0BDE8F08FB9F1000F03D0019084 -:1015E0002046C847019B8BF31188ED1A1E448AF3ED -:1015F0001188DCE7026843681143016003B11847B2 -:10160000704700001430FFF743BF00004FF0FF3376 -:101610001430FFF73DBF00003830FFF7B9BF0000BE -:101620004FF0FF333830FFF7B3BF00001430FFF73F -:1016300009BF00004FF0FF311430FFF703BF000077 -:101640003830FFF763BF00004FF0FF323830FFF74C -:101650005DBF000000207047FFF708BD044B03602A -:1016600000234360C0E9023301230374704700BFC5 -:101670008041000810B52023044683F31188FFF74A -:1016800065FD02232374002383F3118810BD00003D -:1016900038B5C36904460D461BB904210844FFF759 -:1016A000A9FF294604F11400FFF7B0FE002806DA6E -:1016B000201D4FF48061BDE83840FFF79BBF38BD67 -:1016C000026843681143016003B118477047000086 -:1016D00013B5406B00F58054D4F8A4381A6811781B -:1016E000042914D1017C022911D11979012312890D -:1016F0008B4013420BD101A94C3002F06DF8D4F8A5 -:10170000A4480246019B2179206800F0DFF902B06D -:1017100010BD0000143001F0EFBF00004FF0FF33A8 -:10172000143001F0E9BF00004C3002F0C1B80000F5 -:101730004FF0FF334C3002F0BBB80000143001F022 -:10174000BDBF00004FF0FF31143001F0B7BF000003 -:101750004C3002F08DB800004FF0FF324C3002F0F8 -:1017600087B800000020704710B500F58054D4F809 -:10177000A4381A681178042917D1017C022914D1E0 -:101780005979012352898B4013420ED1143001F054 -:101790004FFF024648B1D4F8A4484FF44073617932 -:1017A0002068BDE8104000F07FB910BD406BFFF726 -:1017B000DBBF0000704700007FB5124B01250426F7 -:1017C000044603600023057400F184024360294647 -:1017D000C0E902330C4B0290143001934FF4407374 -:1017E000009601F001FF094B04F69442294604F1EA -:1017F0004C000294CDE900634FF4407301F0C8FF40 -:1018000004B070BDA8410008AD170008D11600084B -:101810000A68202383F311880B790B3342F82300E5 -:101820004B79133342F823008B7913B10B3342F811 -:10183000230000F58053C3F8A41802230374002387 -:1018400083F311887047000038B5037F044613B155 -:1018500090F85430ABB90125201D0221FFF730FF6D -:1018600004F114006FF00101257700F0CBFC04F1C6 -:101870004C0084F854506FF00101BDE8384000F08E -:10188000C1BC38BD10B5012104460430FFF718FF74 -:101890000023237784F8543010BD000038B5044687 -:1018A0000025143001F0B8FE04F14C00257701F05A -:1018B00087FF201D84F854500121FFF701FF2046C7 -:1018C000BDE83840FFF750BF90F8803003F0600368 -:1018D000202B06D190F881200023212A03D81F2A2B -:1018E00006D800207047222AFBD1C0E91D3303E04F -:1018F000034A426707228267C3670120704700BF1F -:101900002C22002037B500F58055D5F8A4381A6888 -:10191000117804291AD1017C022917D119790123E0 -:1019200012898B40134211D100F14C04204602F081 -:1019300007F858B101A9204601F04EFFD5F8A44898 -:101940000246019B2179206800F0C0F803B030BD49 -:1019500001F10B03F0B550F8236085B004460D4645 -:10196000FEB1202383F3118804EB8507301D082185 -:10197000FFF7A6FEFB6806F14C005B691B681BB114 -:10198000019001F037FF019803A901F025FF0246FD -:1019900048B1039B2946204600F098F8002383F3C2 -:1019A000118805B0F0BDFB685A691268002AF5D0AD -:1019B0001B8A013B1340F1D104F18002EAE70000E9 -:1019C000133138B550F82140ECB1202383F311884E -:1019D00004F58053D3F8A4281368527903EB8203EB -:1019E000DB689B695D6845B104216018FFF768FEFC -:1019F000294604F1140001F025FE2046FFF7B4FE4D -:101A0000002383F3118838BD7047000001F018B936 -:101A100001234022002110B5044600F8303BFFF7B7 -:101A2000F7F90023C4E9013310BD000010B52023ED -:101A3000044683F311882422416000210C30FFF713 -:101A4000E7F9204601F01EF902232370002383F3F7 -:101A5000118810BD70B500EB8103054650690E4634 -:101A60001446DA6018B110220021FFF7D1F9A069FD -:101A700018B110220021FFF7CBF931462846BDE806 -:101A8000704001F011BA000083682022002103F0A9 -:101A9000011310B5044683601030FFF7B9F92046F2 -:101AA000BDE8104001F08CBAF0B4012500EB8104D0 -:101AB00047898D40E4683D43A46945812360002344 -:101AC000A2606360F0BC01F0A9BA0000F0B4012587 -:101AD00000EB810407898D40E4683D43646905811A -:101AE00023600023A2606360F0BC01F01FBB000014 -:101AF00070B5022300250446242203702946C0F84D -:101B000088500C3040F8045CFFF782F9204684F8D6 -:101B1000705001F05DF963681B6823B129462046C7 -:101B2000BDE87040184770BD037880F88C300523FD -:101B3000037043681B6810B504460BB10421984735 -:101B40000023A36010BD000090F88C204368027051 -:101B50001B680BB1052118477047000070B590F85D -:101B60007030044613B1002380F8703004F1800215 -:101B7000204601F049FA63689B68B3B994F8803055 -:101B800013F0600535D00021204601F0F3FC002160 -:101B9000204601F0E3FC63681B6813B10621204670 -:101BA0009847062384F8703070BD20469847002877 -:101BB000E4D0B4F88630A26F9A4288BFA36794F944 -:101BC0008030A56F002B4FF0200380F20381002DA1 -:101BD00000F0F280092284F8702083F3118800213C -:101BE0002046D4E91D23FFF771FF002383F31188FA -:101BF000DAE794F8812003F07F0343EA022340F2FE -:101C00000232934200F0C58021D8B3F5807F48D0DE -:101C10000DD8012B3FD0022B00F09380002BB2D1C6 -:101C200004F1880262670222A267E367C1E7B3F5A5 -:101C3000817F00F09B80B3F5407FA4D194F882307F -:101C4000012BA0D1B4F8883043F0020332E0B3F5A1 -:101C5000006F4DD017D8B3F5A06F31D0A3F5C06396 -:101C6000012B90D86368204694F882205E6894F82F -:101C70008310B4F88430B047002884D04368636789 -:101C80000368A3671AE0B3F5106F36D040F602423E -:101C900093427FF478AF5C4B63670223A367002312 -:101CA000C3E794F88230012B7FF46DAFB4F888302D -:101CB00023F00203A4F88830C4E91D55E56778E7EE -:101CC000B4F88030B3F5A06F0ED194F8823020467E -:101CD00084F88A3001F0DAF863681B6813B10121D7 -:101CE00020469847032323700023C4E91D339CE753 -:101CF00004F18B0363670123C3E72378042B10D11E -:101D0000202383F311882046FFF7BEFE85F3118858 -:101D10000321636884F88B5021701B680BB1204647 -:101D2000984794F88230002BDED084F88B3004235F -:101D3000237063681B68002BD6D002212046984789 -:101D4000D2E794F8843020461D0603F00F010AD52F -:101D500001F04CF9012804D002287FF414AF2B4B7A -:101D60009AE72B4B98E701F033F9F3E794F88230C8 -:101D7000002B7FF408AF94F8843013F00F01B3D038 -:101D80001A06204602D501F00DFCADE701F0FEFB7E -:101D9000AAE794F88230002B7FF4F5AE94F88430F3 -:101DA00013F00F01A0D01B06204602D501F0E2FB84 -:101DB0009AE701F0D3FB97E7142284F8702083F3AD -:101DC00011882B462A4629462046FFF76DFE85F3EB -:101DD0001188E9E65DB1152284F8702083F311883B -:101DE00000212046D4E91D23FFF75EFEFDE60B220D -:101DF00084F8702083F311882B462A462946204612 -:101E0000FFF764FEE3E700BFD8410008D0410008B7 -:101E1000D441000838B590F870300446002B3ED00D -:101E2000063BDAB20F2A34D80F2B32D8DFE803F0A2 -:101E300037313108223231313131313131313737B7 -:101E4000856FB0F886309D4214D2C3681B8AB5FBFB -:101E5000F3F203FB12556DB9202383F311882B464F -:101E60002A462946FFF732FE85F311880A2384F8B3 -:101E700070300EE0142384F87030202383F311882F -:101E8000002320461A461946FFF70EFE002383F36F -:101E9000118838BDC36F03B198470023E7E70021DD -:101EA000204601F067FB0021204601F057FB6368E4 -:101EB0001B6813B10621204698470623D7E7000088 -:101EC00010B590F870300446142B29D017D8062B83 -:101ED00005D001D81BB110BD093B022BFBD8002156 -:101EE000204601F047FB0021204601F037FB6368E4 -:101EF0001B6813B1062120469847062319E0152BCD -:101F0000E9D10B2380F87030202383F3118800235C -:101F10001A461946FFF7DAFD002383F31188DAE742 -:101F2000C3689B695B68002BD5D1C36F03B1984729 -:101F3000002384F87030CEE7024B0022C3E900335F -:101F40009A60704710310020002382680374054BAB -:101F50001B6899689142FBD25A6803604260106026 -:101F6000586070471031002008B5202383F3118892 -:101F7000037C032B05D0042B0DD02BB983F31188E0 -:101F800008BD436900221A604FF0FF334361FFF739 -:101F9000DBFF0023F2E7D0E9003213605A60F3E779 -:101FA000002382680374054B1B6899689142FBD833 -:101FB0005A6803604260106058607047103100201A -:101FC000054B196908741868026853601A60186133 -:101FD00001230374FEF7FAB9103100204B1C30B511 -:101FE000044687B00A4D10D02B6901A8094A00F0B9 -:101FF00025F92046FFF7E4FF049B13B101A800F088 -:1020000059F92B69586907B030BDFFF7D9FFF8E7D8 -:1020100010310020691F000838B50C4D044641619D -:102020002B6981689A68914203D8BDE83840FFF770 -:102030008BBF1846FFF7B4FF01232C6101462374C0 -:102040002046BDE83840FEF7C1B900BF103100207E -:10205000044B1A681B6990689B68984294BF0020E3 -:10206000012070471031002010B5084C236820690A -:102070001A6854602260012223611A74FFF790FFEE -:1020800001462069BDE81040FEF7A0B910310020DC -:1020900008B5FFF7DDFF18B1BDE80840FFF7E4BF62 -:1020A00008BD0000FFF7E0BFFEE7000010B50C4CD4 -:1020B000FFF742FF00F0B4F880220A49204600F002 -:1020C0003BF8012344F8180C037400F097FC00233C -:1020D00083F3118862B60448BDE8104000F04CB8A4 -:1020E00038310020DC410008EC41000800F01CB948 -:1020F000EFF3118020B9EFF30583202282F31188DA -:102100007047000010B530B9EFF30584C4F308043C -:1021100014B180F3118810BDFFF7BAFF84F3118862 -:10212000F9E70000034A516853685B1A9842FBD8EC -:10213000704700BF001000E08260022202827047F8 -:102140008368A3F17C0243F80C2C026943F83C2C11 -:10215000426943F8382C074A43F81C2CC268A3F1A3 -:10216000180043F8102C022203F8082C002203F870 -:10217000072C7047E503000810B5202383F311886E -:10218000FFF7DEFF00210446FFF746FF002383F33D -:102190001188204610BD0000024B1B6958610F20BA -:1021A000FFF70EBF10310020202383F31188FFF7C3 -:1021B000F3BF000008B50146202383F311880820EF -:1021C000FFF70CFF002383F3118808BD49B1064BCC -:1021D00042681B6918605A60136043600420FFF76F -:1021E000FDBE4FF0FF307047103100200368984269 -:1021F00006D01A680260506018465961FFF7A4BE05 -:102200007047000038B504460D462068844200D16E -:1022100038BD036823605C604561FFF795FEF4E715 -:10222000054B4FF0FF3103F11402C3E905220022F0 -:10223000C3E90712704700BF1031002070B51C4E73 -:1022400005460C46C0E9032301F0B0FB334653F8C2 -:10225000142F9A420DD130620A2C2CBF00190A307B -:102260002A60C5E90124C6E90555BDE8704001F0C2 -:1022700087BB316A431AE31838BF1C469368A342F0 -:1022800002D9081901F08CFB73699A6894420CD842 -:102290005A68AC602B606A6015609A685D60121BBA -:1022A0009A604FF0FF33F36170BDA41A1B68ECE72E -:1022B0001031002038B51B4C636998420DD08168FD -:1022C000D0E9003213605A600022C2609A680A4462 -:1022D0009A604FF0FF33E36138BD03682246002166 -:1022E00042F8143F93425A60C16003D1BDE83840C0 -:1022F00001F050BB9A688168256A0A449A6001F02F -:1023000055FB6369411B9A688A42E5D9AB181D1ACF -:10231000206A092D98BF01F10A02BDE83840104437 -:1023200001F03EBB103100202DE9F041184C002790 -:1023300004F11406656901F039FB236AAA68C11A21 -:102340008A4215D81344D5F80C802362D5E90032AF -:1023500013605A606369EF60B34201D101F01AFB68 -:1023600087F311882869C047202383F31188E1E7A8 -:102370006169B14209D013441B1ABDE8F0410A2B30 -:102380002CBFC0180A3001F00BBBBDE8F08100BFC4 -:102390001031002000207047FEE700007047000069 -:1023A0004FF0FF307047000002290CD0032904D001 -:1023B0000129074818BF00207047032A05D805489F -:1023C00000EBC2007047044870470020704700BF10 -:1023D000D44200083C2200208842000870B59AB020 -:1023E00005460846144601A900F0C2F801A8FEF708 -:1023F00007FD431C0022C6B25B001046C5E900344D -:1024000023700323023404F8013C01ABD1B202343F -:102410008E4201D81AB070BD13F8011B013204F8C6 -:10242000010C04F8021CF1E708B5202383F311889E -:102430000348FFF767FA002383F3118808BD00BF44 -:10244000C832002090F8803003F01F02012A07D123 -:1024500090F881200B2A03D10023C0E91D3315E039 -:1024600003F06003202B08D1B0F884302BB990F82A -:102470008120212A03D81F2A04D8FFF725BA222A4F -:10248000EBD0FAE7034A426707228267C36701205D -:10249000704700BF3322002007B5052917D8DFE8B1 -:1024A00001F0191603191920202383F31188104A0B -:1024B00001210190FFF7CEFA019802210D4AFFF7A2 -:1024C000C9FA0D48FFF7EAF9002383F3118803B036 -:1024D0005DF804FB202383F311880748FFF7B4F964 -:1024E000F2E7202383F311880348FFF7CBF9EBE7EA -:1024F000284200084C420008C832002038B50C4D74 -:102500000C4C2A460C4904F10800FFF767FF05F15F -:10251000CA0204F110000949FFF760FF05F5CA720D -:1025200004F118000649BDE83840FFF757BF00BF67 -:10253000A04B00203C220020044200081142000869 -:102540001C42000870B5044608460D46FEF758FCCC -:10255000C6B22046013403780BB9184670BD324626 -:102560002946FEF739FC0028F3D10120F6E70000E8 -:102570002DE9F04705460C46FEF742FC2B49C6B252 -:102580002846FFF7DFFF08B10A36F6B22849284689 -:10259000FFF7D8FF08B11036F6B2632E0BD8DFF87C -:1025A0008C80DFF88C90234FDFF894A02E7846B90A -:1025B0002670BDE8F08729462046BDE8F04701F0C7 -:1025C000B5BD252E2ED1072241462846FEF704FC34 -:1025D00070B9194B224603F1100153F8040B8B42DA -:1025E00042F8040BF9D11B78073511341370DDE77D -:1025F000082249462846FEF7EFFB98B9A21C0F4B6C -:10260000197802320909C95D02F8041C13F8011B8C -:1026100001F00F015345C95D02F8031CF0D11834D5 -:102620000835C3E7013504F8016BBFE7F442000841 -:102630001C4200080E430008FC42000800E8F11F9D -:102640000CE8F11FBFF34F8F044B1A695107FCD1FF -:10265000D3F810215207F8D1704700BF0020005274 -:1026600008B50D4B1B78ABB9FFF7ECFF0B4BDA68E5 -:10267000D10704D50A4A5A6002F188325A60D3F869 -:102680000C21D20706D5064AC3F8042102F188328C -:10269000C3F8042108BD00BFFE4D002000200052F9 -:1026A0002301674508B5114B1B78F3B9104B1A6924 -:1026B000510703D5DA6842F04002DA60D3F81021FE -:1026C000520705D5D3F80C2142F04002C3F80C2183 -:1026D000FFF7B8FF064BDA6842F00102DA60D3F880 -:1026E0000C2142F00102C3F80C2108BDFE4D002070 -:1026F000002000520F289ABF00F58060400400209F -:10270000704700004FF40030704700001020704701 -:102710000F2808B50BD8FFF7EDFF00F5003302686E -:10272000013204D104308342F9D1012008BD0020D8 -:10273000FCE700000F2870B5054645D8FFF7D8FC28 -:10274000224CFFF77FFF0646FFF78AFF4FF0FF336B -:10275000072D6361C4F8143120D82361FFF772FF9D -:102760002B0243F02403E360E36843F08003E3605B -:1027700023695A07FCD42846FFF764FF4FF4003161 -:10278000FFF7B8FF00F002F93046FFF78BFFFFF7C5 -:10279000B9FC2846BDE87040FFF7BABFC4F8103155 -:1027A000FFF750FFA5F108031B0243F02403C4F810 -:1027B0000C31D4F80C3143F08003C4F80C31D4F858 -:1027C00010315B07FBD4D6E7002070BD002000521B -:1027D0002DE9F84F40EA020305460C461746D80695 -:1027E00002D00020BDE8F88F27F01F07DFF8D4B033 -:1027F000FFF736FF2744BC4203D10120FFF752FF09 -:10280000F0E720222946204601F080FC10B920354F -:102810002034F0E72B4605F120021E68711CE0D140 -:1028200004339A42F9D1FFF763FC05F17843234A58 -:10283000B3F5801F224B28BF9A4603F1040338BF2B -:102840009046A2F1080228BF9846A3F108033ABFB8 -:102850009146DA469946FFF7F5FEC8F80060A5EB09 -:10286000040CD9F8002004F11C0142F00202C9F85E -:102870000020221FDAF8006016F00506FAD152F89F -:10288000043F8A424CF80230F4D1BFF34F8FFFF778 -:10289000D9FE4FF0FF32C8F80020D9F8002022F00E -:1028A0000202C9F80020FFF72DFC2022214628460D -:1028B00001F02CFC0028AAD030469FE714200052DB -:1028C000102100521020005210B5084C237828B176 -:1028D0001BB9FFF7C5FE0123237010BD002BFCD0F0 -:1028E0002070BDE81040FFF7DDBE00BFFE4D0020A8 -:1028F0000244074BD2B210B5904200D110BD441C27 -:1029000000B253F8200041F8040BE0B2F4E700BF36 -:10291000504000580E4B30B51C6F240405D41C6F7A -:102920001C671C6F44F400441C670A4C0244236873 -:10293000D2B243F480732360074B904200D130BD84 -:10294000441C51F8045B00B243F82050E0B2F4E7B5 -:1029500000440258004802585040005807B5012270 -:1029600001A90020FFF7C4FF019803B05DF804FB44 -:1029700013B50446FFF7F2FFA04205D0012201A9DA -:1029800000200194FFF7C6FF02B010BD0144BFF361 -:102990004F8F064B884204D3BFF34F8FBFF36F8F27 -:1029A0007047C3F85C022030F4E700BF00ED00E0A0 -:1029B000034B1A681AB9034AD2F8D0241A60704738 -:1029C000004E00200040025808B5FFF7F1FF024B0F -:1029D0001868C0F3806008BD004E0020EFF3098343 -:1029E000054968334A6B22F001024A6383F3098880 -:1029F000002383F31188704700EF00E0202080F36C -:102A0000118862B60D4B0E4AD96821F4E0610904C1 -:102A1000090C0A430B49DA60D3F8FC2042F08072BB -:102A2000C3F8FC20084AC2F8B01F116841F0010148 -:102A300011601022DA7783F82200704700ED00E081 -:102A40000003FA0555CEACC5001000E0202310B5F8 -:102A500083F311880E4B5B6813F4006314D0F1EE1E -:102A6000103AEFF309844FF08073683CE361094B3F -:102A7000DB6B236684F30988FFF7EAFA10B1064B93 -:102A8000A36110BD054BFBE783F31188F9E700BF95 -:102A900000ED00E000EF00E0F7030008FA03000893 -:102AA00070B5BFF34F8FBFF36F8F1A4A0021C2F882 -:102AB0005012BFF34F8FBFF36F8F536943F400334E -:102AC0005361BFF34F8FBFF36F8FC2F88410BFF312 -:102AD0004F8FD2F8803043F6E074C3F3C900C3F3DC -:102AE0004E335B0103EA0406014646EA817501396B -:102AF000C2F86052F9D2203B13F1200FF2D1BFF39C -:102B00004F8F536943F480335361BFF34F8FBFF34B -:102B10006F8F70BD00ED00E0FEE700000A4B0B4830 -:102B20000B4A90420BD30B4BC11EDA1C121A22F037 -:102B300003028B4238BF00220021FEF769B953F827 -:102B4000041B40F8041BECE7EC440008D44F0020C1 -:102B5000D44F0020D44F00207047000070B5D0E95A -:102B6000244300224FF0FF359E6804EB42135101CD -:102B7000D3F80009002805DAD3F8000940F08040B6 -:102B8000C3F80009D3F8000B002805DAD3F8000BCE -:102B900040F08040C3F8000B013263189642C3F83E -:102BA0000859C3F8085BE0D24FF00113C4F81C3891 -:102BB00070BD000000EB8103D3F80CC02DE9F04399 -:102BC000DCF814204E1CD0F89050D2F800E005EB51 -:102BD000063605EB4118506870450AD30122D5F836 -:102BE000343802FA01F123EA0101C5F83418BDE8CE -:102BF000F083AEEB0003BCF81040A34228BF23468D -:102C0000D8F81849A4B2B3EB840FF0D89468A4F1B3 -:102C1000040959F8047F3760A4EB09071F44042F07 -:102C2000F7D81C44034494605360D4E7890141F011 -:102C30002001016103699B06FCD41220FFF772BAE0 -:102C400010B50A4C2046FEF7E3FE094BC4F890305D -:102C5000084BC4F89430084C2046FEF7D9FE074BC9 -:102C6000C4F89030064BC4F8943010BD044E0020D8 -:102C70000000084044430008A04E0020000004402B -:102C80005043000870B503780546012B5DD1494BD0 -:102C9000D0F89040984259D1474B0E216520D3F887 -:102CA000D82042F00062C3F8D820D3F8002142F0C7 -:102CB0000062C3F80021D3F80021D3F8802042F04D -:102CC0000062C3F88020D3F8802022F00062C3F8AD -:102CD0008020D3F8803000F071FC384BE360384B33 -:102CE000C4F800380023D5F89060C4F8003EC02333 -:102CF00023604FF40413A3633369002BFCDA012330 -:102D00000C203361FFF70EFA3369DB07FCD4122085 -:102D1000FFF708FA3369002BFCDA00262846A66084 -:102D2000FFF71CFF6B68C4F81068DB68C4F8146810 -:102D3000C4F81C68002B3AD1224BA3614FF0FF333B -:102D40006361A36843F00103A36070BD1E4B98420A -:102D5000C8D1194B0E214D20D3F8D82042F0007273 -:102D6000C3F8D820D3F8002142F00072C3F8002144 -:102D7000D3F80021D3F8802042F00072C3F88020FD -:102D8000D3F8802022F00072C3F88020D3F880208E -:102D9000D3F8D82022F08062C3F8D820D3F80021DD -:102DA00022F08062C3F80021D3F8003193E7074B8B -:102DB000C3E700BF044E0020004402584014004006 -:102DC00003002002003C30C0A04E0020083C30C070 -:102DD000F8B5D0F89040054600214FF00066204637 -:102DE000FFF724FFD5F8941000234FF001128F68ED -:102DF0004FF0FF30C4F83438C4F81C2804EB4312F9 -:102E000001339F42C2F80069C2F8006BC2F808099A -:102E1000C2F8080BF2D20B68D5F89020C5F89830AC -:102E2000636210231361166916F01006FBD112209D -:102E3000FFF778F9D4F8003823F4FE63C4F80038BB -:102E4000A36943F4402343F01003A3610923C4F8AA -:102E50001038C4F814380B4BEB604FF0C043C4F883 -:102E6000103B094BC4F8003BC4F81069C4F80039A2 -:102E7000D5F8983003F1100243F48013C5F8982078 -:102E8000A362F8BD2043000840800010D0F89020D5 -:102E900090F88A10D2F8003823F4FE6343EA011355 -:102EA000C2F80038704700002DE9F84300EB8103B9 -:102EB000D0F890500C468046DA680FFA81F9480144 -:102EC000166806F00306731E022B05EB41134FF044 -:102ED000000194BFB604384EC3F8101B4FF0010137 -:102EE00004F1100398BF06F1805601FA03F39169CB -:102EF00098BF06F5004600293AD0578A04F15801D8 -:102F0000374349016F50D5F81C180B430021C5F811 -:102F10001C382B180127C3F81019A7405369611EEC -:102F20009BB3138A928B9B08012A88BF5343D8F81E -:102F30009820981842EA034301F140022146C8F85C -:102F40009800284605EB82025360FFF76FFE08EBFE -:102F50008900C3681B8A43EA845348341E436401D2 -:102F60002E51D5F81C381F43C5F81C78BDE8F883EE -:102F700005EB4917D7F8001B21F40041C7F8001BE7 -:102F8000D5F81C1821EA0303C0E704F13F030B4AFC -:102F90002846214605EB83035A60FFF747FE05EB01 -:102FA0004910D0F8003923F40043C0F80039D5F8AF -:102FB0001C3823EA0707D7E700800010000400024E -:102FC000D0F894201268C0F89820FFF7C7BD000021 -:102FD0005831D0F8903049015B5813F4004004D0C8 -:102FE00013F4001F0CBF0220012070474831D0F8B5 -:102FF000903049015B5813F4004004D013F4001FD3 -:103000000CBF02200120704700EB8101CB68196AD8 -:103010000B6813604B6853607047000000EB81033E -:1030200030B5DD68AA691368D36019B9402B84BF35 -:10303000402313606B8A1468D0F890201C4402EB84 -:103040004110013C09B2B4FBF3F46343033323F0B2 -:10305000030343EAC44343F0C043C0F8103B2B686A -:1030600003F00303012B0ED1D2F8083802EB411014 -:1030700013F4807FD0F8003B14BF43F0805343F03B -:103080000053C0F8003B02EB4112D2F8003B43F082 -:103090000443C2F8003B30BD2DE9F041D0F8906008 -:1030A00005460C4606EB4113D3F8087B3A07C3F8F4 -:1030B000087B08D5D6F814381B0704D500EB81032C -:1030C000DB685B689847FA071FD5D6F81438DB072A -:1030D0001BD505EB8403D968CCB98B69488A5A683B -:1030E000B2FBF0F600FB16228AB91868DA68904243 -:1030F0000DD2121AC3E90024202383F3118821463C -:103100002846FFF78BFF84F31188BDE8F081012387 -:1031100003FA04F26B8923EA02036B81CB68002B6C -:10312000F3D021462846BDE8F041184700EB810363 -:103130004A0170B5DD68D0F890306C692668E660A9 -:1031400056BB1A444FF40020C2F810092A6802F056 -:103150000302012A0AB20ED1D3F8080803EB421485 -:1031600010F4807FD4F8000914BF40F0805040F084 -:103170000050C4F8000903EB4212D2F8000940F0F5 -:103180000440C2F800090122D3F8340802FA01F120 -:103190000143C3F8341870BD19B9402E84BF4020D4 -:1031A000206020681A442E8A8419013CB4FBF6F48E -:1031B00040EAC44040F00050C6E700002DE9F0416D -:1031C000D0F8906004460D4606EB4113D3F8087919 -:1031D000C3F80879FB071CD5D6F81038DA0718D5DC -:1031E00000EB8103D3F80CC0DCF81430D3F800E016 -:1031F000DA6896451BD2A2EB0E024FF000081A6067 -:10320000C3F80480202383F31188FFF78FFF88F32E -:1032100011883B0618D50123D6F83428AB40134259 -:1032200012D029462046BDE8F041FFF7C3BC012378 -:1032300003FA01F2038923EA02030381DCF8083070 -:10324000002BE6D09847E4E7BDE8F0812DE9F84F80 -:10325000D0F8905004466E69AB691E4016F4805851 -:103260006E6103D0BDE8F84FFEF742BC002E12DAC3 -:10327000D5F8003E9F0705D0D5F8003E23F00303A4 -:10328000C5F8003ED5F80438204623F00103C5F800 -:103290000438FEF759FC300505D52046FFF75EFCE3 -:1032A0002046FEF741FCB1040CD5D5F8083813F0E0 -:1032B000060FEB6823F470530CBF43F4105343F430 -:1032C000A053EB60320704D56368DB680BB120467E -:1032D0009847F30200F1BA80B70226D5D4F890904F -:1032E00000274FF0010A09EB4712D2F8003B03F424 -:1032F0004023B3F5802F11D1D2F8003B002B0DDA1B -:1033000062890AFA07F322EA0303638104EB870365 -:10331000DB68DB6813B13946204698470137D4F89B -:103320009430FFB29B689F42DDD9F00619D5D4F8DE -:103330009000026AC2F30A1702F00F0302F4F012BF -:10334000B2F5802F00F0CC80B2F5402F09D104EB0C -:103350008303002200F58050DB681B6A974240F02F -:10336000B2803003D5F8185835D5E90303D50021CC -:103370002046FFF791FEAA0303D501212046FFF75F -:103380008BFE6B0303D502212046FFF785FE2F033A -:1033900003D503212046FFF77FFEE80203D5042171 -:1033A0002046FFF779FEA90203D505212046FFF745 -:1033B00073FE6A0203D506212046FFF76DFE2B023D -:1033C00003D507212046FFF767FEEF0103D508214B -:1033D0002046FFF761FE700340F1A980E90703D59D -:1033E00000212046FFF7EAFEAA0703D50121204667 -:1033F000FFF7E4FE6B0703D502212046FFF7DEFE50 -:103400002F0703D503212046FFF7D8FEEE0603D58C -:1034100004212046FFF7D2FEA80603D50521204649 -:10342000FFF7CCFE690603D506212046FFF7C6FE4E -:103430002A0603D507212046FFF7C0FEEB0576D507 -:1034400020460821BDE8F84FFFF7B8BED4F89090A9 -:1034500000274FF0010AD4F894305FFA87FB9B688D -:103460009B453FF639AF09EB4B13D3F8002902F423 -:103470004022B2F5802F24D1D3F80029002A20DA87 -:10348000D3F8002942F09042C3F80029D3F800296C -:10349000002AFBDB5946D4F89000FFF7C7FB2289CE -:1034A0000AFA0BF322EA0303238104EB8B03DB68A4 -:1034B0009B6813B159462046984759462046FFF766 -:1034C00079FB0137C7E7910701D1D0F80080072ABF -:1034D00002F101029CBF03F8018B4FEA18283DE777 -:1034E00004EB830300F58050DA68D2F818C0DCF8EA -:1034F0000820DCE9001CA1EB0C0C00218F4208D154 -:10350000DB689B699A683A449A605A683A445A6000 -:1035100027E711F0030F01D1D0F800808C4501F1AD -:10352000010184BF02F8018B4FEA1828E6E7BDE8E5 -:10353000F88F000008B50348FFF788FEBDE8084093 -:10354000FFF784BA044E002008B50348FFF77EFE5B -:10355000BDE80840FFF77ABAA04E0020D0F89030BE -:1035600003EB4111D1F8003B43F40013C1F8003BD9 -:1035700070470000D0F8903003EB4111D1F80039CA -:1035800043F40013C1F8003970470000D0F89030C0 -:1035900003EB4111D1F8003B23F40013C1F8003BC9 -:1035A00070470000D0F8903003EB4111D1F800399A -:1035B00023F40013C1F8003970470000090100F13D -:1035C0006043012203F56143C9B283F8001300F0A0 -:1035D0001F039A4043099B0003F1604303F56143D5 -:1035E000C3F880211A60704730B50433039C017220 -:1035F000002104FB0325C160C0E90653049B03635B -:10360000059BC0E90000C0E90422C0E90842C0E906 -:103610000A11436330BD00000022416AC260C0E964 -:103620000411C0E90A226FF00101FEF7EBBD0000B2 -:10363000D0E90432934201D1C2680AB9181D70471B -:1036400000207047036919600021C2680132C2601E -:10365000C269134482699342036124BF436A0361D0 -:10366000FEF7C4BD38B504460D46E3683BB1626958 -:103670000020131D1268A3621344E36207E0237A5B -:1036800033B929462046FEF7A1FD0028EDDA38BD02 -:103690006FF00100FBE70000C368C269013BC36033 -:1036A0004369134482699342436124BF436A43617F -:1036B00000238362036B03B11847704770B5202362 -:1036C000044683F31188866A3EB9FFF7CBFF0546AF -:1036D00018B186F31188284670BDA36AE26A13F810 -:1036E000015B9342A36202D32046FFF7D5FF00237C -:1036F00083F31188EFE700002DE9F84F04460E46EA -:10370000174698464FF0200989F311880025AA46EC -:10371000D4F828B0BBF1000F09D141462046FFF78D -:10372000A1FF20B18BF311882846BDE8F88FD4E9BA -:103730000A12A7EB050B521A934528BF9346BBF11B -:10374000400F1BD9334601F1400251F8040B91425E -:1037500043F8040BF9D1A36A403640354033A362E5 -:10376000D4E90A239A4202D32046FFF795FF8AF351 -:103770001188BD42D8D289F31188C9E730465A462C -:10378000FDF720FBA36A5E445D445B44A362E7E768 -:1037900010B5029C0433017204FB0321C460C0E92C -:1037A00006130023C0E90A33039B0363049BC0E9AB -:1037B0000000C0E90422C0E90842436310BD0000D4 -:1037C000026A6FF00101C260426AC0E9042200226D -:1037D000C0E90A22FEF716BDD0E904239A4201D1BE -:1037E000C26822B9184650F8043B0B6070470020AD -:1037F00070470000C3680021C2690133C360436998 -:10380000134482699342436124BF436A4361FEF7D4 -:10381000EDBC000038B504460D46E3683BB12369B2 -:1038200000201A1DA262E2691344E36207E0237AD2 -:1038300033B929462046FEF7C9FC0028EDDA38BD29 -:103840006FF00100FBE7000003691960C268013AEC -:10385000C260C269134482699342036124BF436A10 -:10386000036100238362036B03B1184770470000B4 -:1038700070B520230D460446114683F31188866AED -:103880002EB9FFF7C7FF10B186F3118870BDA36A88 -:103890001D70A36AE26A01339342A36204D3E16913 -:1038A00020460439FFF7D0FF002080F31188EDE7B0 -:1038B0002DE9F84F04460D46904699464FF0200AF0 -:1038C0008AF311880026B346A76A4FB949462046B5 -:1038D000FFF7A0FF20B187F311883046BDE8F88FCD -:1038E000D4E90A073A1AA8EB0607974228BF1746F9 -:1038F000402F1BD905F1400355F8042B9D4240F899 -:10390000042BF9D1A36A40364033A362D4E90A23D9 -:103910009A4204D3E16920460439FFF795FF8BF3FF -:1039200011884645D9D28AF31188CDE729463A460F -:10393000FDF748FAA36A3D443E443B44A362E5E7F1 -:10394000D0E904239A4217D1C3689BB1836A8BB133 -:10395000043B9B1A0ED01360C368013BC360C3696C -:103960001A4483699A42026124BF436A03610023B7 -:1039700083620123184670470023FBE700F0DAB8A2 -:10398000034B002258631A610222DA60704700BFBD -:10399000000C0040014B0022DA607047000C004030 -:1039A000014B5863704700BF000C0040014B586A40 -:1039B000704700BF000C00404B6843608B68836019 -:1039C000CB68C3600B6943614B6903628B694362D7 -:1039D0000B6803607047000008B53C4B40F2FF7174 -:1039E0003B48D3F888200A43C3F88820D3F88820BE -:1039F00022F4FF6222F00702C3F88820D3F888205F -:103A0000D3F8E0200A43C3F8E020D3F808210A43A2 -:103A1000C3F808212F4AD3F808311146FFF7CCFF2D -:103A200000F5806002F11C01FFF7C6FF00F5806021 -:103A300002F13801FFF7C0FF00F5806002F1540188 -:103A4000FFF7BAFF00F5806002F17001FFF7B4FFE5 -:103A500000F5806002F18C01FFF7AEFF00F5806099 -:103A600002F1A801FFF7A8FF00F5806002F1C40190 -:103A7000FFF7A2FF00F5806002F1E001FFF79CFF75 -:103A800000F5806002F1FC01FFF796FF02F58C71F2 -:103A900000F58060FFF790FF00F000F90E4BD3F8BF -:103AA000902242F00102C3F89022D3F8942242F00F -:103AB0000102C3F894220522C3F898204FF0605207 -:103AC000C3F89C20054AC3F8A02008BD0044025852 -:103AD000000002585C43000800ED00E01F000803EE -:103AE00008B500F0F3FAFEF7E1FA0F4BD3F8DC204B -:103AF00042F04002C3F8DC20D3F8042122F0400257 -:103B0000C3F80421D3F80431084B1A6842F00802C4 -:103B10001A601A6842F004021A60FEF749FFBDE815 -:103B20000840FEF7EBBC00BF0044025800180248F2 -:103B300070470000114BD3F8E82042F00802C3F8A8 -:103B4000E820D3F8102142F00802C3F810210C4AF3 -:103B5000D3F81031D36B43F00803D363C722094B6A -:103B60009A624FF0FF32DA6200229A615A63DA6099 -:103B70005A6001225A611A60704700BF004402581F -:103B80000010005C000C0040094A08B51169D368B8 -:103B90000B40D9B29B076FEA0101116107D52023C1 -:103BA00083F31188FEF7A2FA002383F3118808BD7E -:103BB000000C0040384B4FF0FF31D3F88020C3F8A1 -:103BC0008010D3F880200022C3F88020D3F8800032 -:103BD000D3F88400C3F88410D3F88400C3F8842099 -:103BE000D3F88400D86F40F0FF4040F4FF0040F469 -:103BF0003F5040F03F00D867D86F20F0FF4020F4DE -:103C0000FF0020F43F5020F03F00D867D86FD3F872 -:103C100088006FEA40506FEA5050C3F88800D3F82C -:103C20008800C0F30A00C3F88800D3F88800D3F8EE -:103C30009000C3F89010D3F89000C3F89020D3F808 -:103C40009000D3F89400C3F89410D3F89400C3F80C -:103C50009420D3F89400D3F89800C3F89810D3F8C0 -:103C60009800C3F89820D3F89800D3F88C00C3F8D4 -:103C70008C10D3F88C00C3F88C20D3F88C00D3F8C8 -:103C80009C00C3F89C10D3F89C10C3F89C20D3F878 -:103C90009C3000F0E7B900BF00440258614B01229C -:103CA000C3F80821604BD3F8F42042F00202C3F8B5 -:103CB000F420D3F81C2142F00202C3F81C21022296 -:103CC000D3F81C31594BDA605A689104FCD5584A34 -:103CD0001A6001229A60574ADA6000221A614FF492 -:103CE00040429A61514B9A699204FCD51A6842F499 -:103CF00080721A604C4B1A6F12F4407F04D04FF45C -:103D000080321A6700221A671A6842F001021A60AC -:103D1000454B1A685007FCD500221A611A6912F047 -:103D20003802FBD1012119604FF0804159605A6778 -:103D3000414ADA62414A1A611A6842F480321A60D2 -:103D4000394B1A689103FCD51A6842F480521A6004 -:103D50001A689204FCD53A4A3A499A6200225A6398 -:103D600019633949DA6399635A64384A1A64384ADC -:103D7000DA621A6842F0A8521A602B4B1A6802F0F5 -:103D80002852B2F1285FF9D148229A614FF4886233 -:103D9000DA6140221A622F4ADA644FF080521A65C3 -:103DA0002D4A5A652D4A9A6532232D4A13601368AD -:103DB00003F00F03022BFAD11B4B1A6942F00302E6 -:103DC0001A611A6902F03802182AFAD1D3F8DC20F5 -:103DD00042F00052C3F8DC20D3F8042142F0005234 -:103DE000C3F80421D3F80421D3F8DC2042F0804248 -:103DF000C3F8DC20D3F8042142F08042C3F8042148 -:103E0000D3F80421D3F8DC2042F00042C3F8DC20D0 -:103E1000D3F8042142F00042C3F80421D3F804315E -:103E2000704700BF0080005100440258004802580B -:103E300000C000F0020000010000FF0100889008AF -:103E400032206000630209011D02040047040508D6 -:103E5000FD0BFF01200000200010E0000001010028 -:103E6000002000524FF0B04208B5D2F8883003F07D -:103E70000103C2F8883023B1044A13680BB15068BB -:103E80009847BDE80840FEF7E1BD00BF544F002051 -:103E90004FF0B04208B5D2F8883003F00203C2F800 -:103EA000883023B1044A93680BB1D0689847BDE8C5 -:103EB0000840FEF7CBBD00BF544F00204FF0B0428A -:103EC00008B5D2F8883003F00403C2F8883023B173 -:103ED000044A13690BB150699847BDE80840FEF7E2 -:103EE000B5BD00BF544F00204FF0B04208B5D2F826 -:103EF000883003F00803C2F8883023B1044A93697C -:103F00000BB1D0699847BDE80840FEF79FBD00BFE0 -:103F1000544F00204FF0B04208B5D2F8883003F07B -:103F20001003C2F8883023B1044A136A0BB1506AF7 -:103F30009847BDE80840FEF789BD00BF544F0020F8 -:103F40004FF0B04310B5D3F8884004F47872C3F84A -:103F50008820A30604D5124A936A0BB1D06A984709 -:103F6000600604D50E4A136B0BB1506B98472106BF -:103F700004D50B4A936B0BB1D06B9847E20504D57F -:103F8000074A136C0BB1506C9847A30504D5044A3B -:103F9000936C0BB1D06C9847BDE81040FEF756BD4E -:103FA000544F00204FF0B04310B5D3F8884004F4CC -:103FB0007C42C3F88820620504D5164A136D0BB104 -:103FC000506D9847230504D5124A936D0BB1D06DFF -:103FD0009847E00404D50F4A136E0BB1506E984712 -:103FE000A10404D50B4A936E0BB1D06E98476204BE -:103FF00004D5084A136F0BB1506F9847230404D5BA -:10400000044A936F0BB1D06F9847BDE81040FEF79C -:104010001DBD00BF544F002008B50348FDF70AF945 -:10402000BDE80840FEF712BDCC23002008B50348C8 -:10403000FDF700F9BDE80840FEF708BD3824002070 -:1040400008B50348FDF7F6F8BDE80840FEF7FEBCEA -:10405000A424002008B5FFF797FDBDE80840FEF74F -:10406000F5BC0000062108B50846FFF7A7FA0621AF -:104070000720FFF7A3FA06210820FFF79FFA062181 -:104080000920FFF79BFA06210A20FFF797FA06217D -:104090001720FFF793FA06212820FFF78FFA09214E -:1040A0007A20FFF78BFA07213220FFF787FA0C21DD -:1040B0002620FFF783FA0C212720FFF77FFA0C2137 -:1040C0005220BDE80840FFF779BA000008B5FFF7B5 -:1040D00071FD00F00DF8FDF7BFFAFDF797FCFDF755 -:1040E00069FBFFF725FDBDE80840FFF747BC00006E -:1040F0000023054A19460133102BC2E9001102F1D1 -:104100000802F8D1704700BF544F002010B50139A4 -:104110000244904201D1002005E0037811F8014FDC -:10412000A34201D0181B10BD0130F2E7034611F87D -:10413000012B03F8012B002AF9D1704753544D335A -:104140003248373F3F3F0053544D333248373433C2 -:104150002F37353300000000C8320020CC23002068 -:1041600038240020A4240020009600000000000055 -:10417000000000000000000000000000000000003F -:1041800000000000211600080D160008491600085E -:1041900035160008411600082D16000819160008EB -:1041A0000516000855160008000000003117000829 -:1041B0001D17000859170008451700085117000877 -:1041C0003D17000829170008151700086517000893 -:1041D0000000000001000000000000006D61696E39 -:1041E0000000000069646C6500000000E441000804 -:1041F00050310020C832002001000000A920000832 -:10420000000000004865782F50726F6669434E4386 -:104210000025424F415244252D424C002553455222 -:1042200049414C2500000000020000000000000091 -:1042300051190008C119000840004000704B0020CF -:10424000804B00200200000000000000030000007E -:1042500000000000091A0008000000001000000023 -:10426000904B002000000000010000000000000052 -:10427000044E00200101020099240008A92300082F -:10428000452400082924000843000000904200084B -:1042900009024300020100C03209040000010202C9 -:1042A000010005240010010524010001042402027C -:1042B0000524060001070582030800FF0904010028 -:1042C000020A000000070501024000000705810204 -:1042D0004000000012000000DC4200081201100142 -:1042E00002000040AE2D1610000201020301000082 -:1042F0000403090425424F41524425004375626579 -:104300004F72616E67652D626473686F740030313F -:10431000323334353637383941424344454600005C -:10432000000000005D1B0008151E0008C11E0008EB -:10433000400040003C4F00203C4F002001000000A6 -:104340004C4F0020800000004001000008000000E9 -:104350000001000000040000080000000000812AA5 -:1043600000000000AAAAAAAA00000024FFFE000084 -:104370000000000000A00A00000100000000000092 -:10438000AAAAAAAA00000000FFFF00000000000087 -:10439000000000001400005400000000AAAAAAAA0D -:1043A00014000054FFFF00000000000000000000A7 -:1043B00000681A0000000000AAAA8AAA005415008A -:1043C000FFFF00000000700777000000408102003E -:1043D00000000000AAAAAAAA00410100F7FF0000FD -:1043E0000000007007000000000000000000000056 -:1043F000AAAAAAAA00000000FFFF00000000000017 -:10440000000000000000000000000000AAAAAAAA04 -:1044100000000000FFFF000000000000000000009E -:104420000000000000000000AAAAAAAA00000000E4 -:10443000FFFF00000000000000000000000000007E -:1044400000000000AAAAAAAA00000000FFFF0000C6 -:10445000000000000000000000000000000000005C -:10446000AAAAAAAA00000000FFFF000000000000A6 -:10447000000000000000000000000000AAAAAAAA94 -:1044800000000000FFFF000000000000000000002E -:104490008C0000000000000000001E000000000072 -:1044A000FF000000000000003C4100083F00000049 -:1044B00050040000474100083F0000000096000043 -:1044C0000000080096000000000800000400000042 -:1044D000F0420008000000000000000000000000A2 -:0C44E000000000000000000000000000D0 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E3020008E5760008A6 +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E3020008F18500081D8600089D +:100060004986000875860008A18600080146000838 +:10007000294600085546000881460008AD4600089C +:10008000D546000801470008E3020008E302000823 +:10009000E3020008E3020008E3020008CD8600083E +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008B9870008CD870008A2 +:1000E00031870008E3020008E3020008E302000889 +:1000F000E3020008E3020008E30200082D470008BD +:10010000E3020008A5870008F5870008E30200085D +:10011000E3020008E3020008E3020008E30200082B +:100120005947000881470008AD470008D947000833 +:1001300005480008E3020008E3020008E3020008A3 +:10014000E3020008E3020008E3020008E3020008FB +:100150002D4800085948000885480008E3020008B7 +:10016000E3020008E3020008E3020008E3020008DB +:10017000E3020008D1820008E3020008E30200085D +:10018000E3020008E3020008E1870008E302000838 +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E3020008BD820008E3020008E302000811 +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000E3020008E3020008E3020008E30200080A +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F07F02CFA43 +:1003500006F0A0FB4FF055301F491B4A91423CBFAD +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE707F044FA06F0FEFB15 +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F0C4F9114C124DAC4203DA54F8041B9E +:1003C0008847F9E707F02CBA000600200022002039 +:1003D0000000000808ED00E00000002000060020FA +:1003E000989C00080022002074220020782200201F +:1003F00034670020E0020008E0020008E002000884 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002006F016F9FEE706F0DE +:100430006FF800DFFEE7000053B94AB9002908BF92 +:1004400000281CBF4FF0FF314FF0FF3000F074B9AF +:10045000ADF1080C6DE904CE00F006F8DDF804E01B +:10046000DDE9022304B070472DE9F047089D0446FA +:100470008E46002B4DD18A42944669D9B2FA82F257 +:1004800052B101FA02F3C2F1200120FA01F10CFA93 +:1004900002FC41EA030E94404FEA1C48210CBEFBCB +:1004A000F8F61FFA8CF708FB16E341EA034306FB54 +:1004B00007F199420AD91CEB030306F1FF3080F0E3 +:1004C0001F81994240F21C81023E63445B1AA4B230 +:1004D000B3FBF8F008FB103344EA034400FB07F7D2 +:1004E000A7420AD91CEB040400F1FF3380F00A8113 +:1004F000A74240F207816444023840EA0640E41B08 +:1005000000261DB1D4400023C5E900433146BDE8B3 +:10051000F0878B4209D9002D00F0EF800026C5E955 +:10052000000130463146BDE8F087B3FA83F6002E6D +:100530004AD18B4202D3824200F2F980841A61EBE5 +:10054000030301209E46002DE0D0C5E9004EDDE703 +:1005500002B9FFDEB2FA82F2002A40F09280A1EBEB +:100560000C014FEA1C471FFA8CFE0126200CB1FB40 +:10057000F7F307FB131140EA01410EFB03F0884239 +:1005800008D91CEB010103F1FF3802D2884200F2C6 +:10059000CB804346091AA4B2B1FBF7F007FB101158 +:1005A00044EA01440EFB00FEA64508D91CEB0404F6 +:1005B00000F1FF3102D2A64500F2BB800846A4EB51 +:1005C0000E0440EA03409CE7C6F12007B34022FA3C +:1005D00007FC4CEA030C20FA07F401FA06F31C436B +:1005E000F9404FEA1C4900FA06F3B1FBF9F8200C78 +:1005F0001FFA8CFE09FB181140EA014108FB0EF0BE +:10060000884202FA06F20BD91CEB010108F1FF3A0D +:1006100080F08880884240F28580A8F10208614419 +:10062000091AA4B2B1FBF9F009FB101144EA014127 +:1006300000FB0EFE8E4508D91CEB010100F1FF34D2 +:100640006CD28E456AD90238614440EA0840A0FB6A +:100650000294A1EB0E01A142C846A64656D353D040 +:100660005DB1B3EB080261EB0E0101FA07F722FA64 +:1006700006F3F1401F43C5E9007100263146BDE88D +:10068000F087C2F12003D8400CFA02FC21FA03F3F0 +:10069000914001434FEA1C471FFA8CFEB3FBF7F071 +:1006A00007FB10360B0C43EA064300FB0EF69E4296 +:1006B00004FA02F408D91CEB030300F1FF382FD22F +:1006C0009E422DD9023863449B1B89B2B3FBF7F6D7 +:1006D00007FB163341EA034106FB0EF38B4208D9B0 +:1006E0001CEB010106F1FF3816D28B4214D9023EF1 +:1006F0006144C91A46EA004638E72E46284605E70F +:100700000646E3E61846F8E64B45A9D2B9EB0208DF +:1007100064EB0C0E0138A3E74646EAE7204694E76F +:100720004046D1E7D0467BE7023B614432E73046A2 +:1007300009E76444023842E7704700BF38B501F06A +:10074000FFF901F0AFFB06F0BBFE054606F0C0FF67 +:100750000446D0B90F4B9D4219D001339D4241F25E +:10076000883504BF01240025002006F0B3FE0CB13B +:1007700000F078F801F036FB00F026FD08B100F03B +:1007800071F8284600F01CF9F9E70025ECE705466A +:10079000EAE700BF010007B008B501F09DF9A0F13C +:1007A00020035842584108BD07B541F21203022107 +:1007B00001A8ADF8043001F0ADF903B05DF804FB19 +:1007C00038B5302383F31188174803680BB106F05E +:1007D00027F80023154A4FF47A71134806F016F8EB +:1007E000002383F31188124C236813B12368013B63 +:1007F0002360636813B16368013B63600D4D2B7820 +:1008000033B963687BB9022001F056FA3223636082 +:100810002B78032B07D163682BB9022001F04CFA27 +:100820004FF47A73636038BD78220020C107000856 +:100830009823002090220020084B187003280CD821 +:10084000DFE800F008050208022001F02BBA0220C0 +:1008500001F01EBA024B00225A607047902200201D +:1008600098230020F8B5504B504A1C4619680131B6 +:1008700000F0998004339342F8D162684C4B9A425D +:1008800040F291804B4B9B6803F1006303F500330A +:100890009A4280F08880002001F06CF90220FFF776 +:1008A000CBFF454B0021D3F8E820C3F8E810D3F87C +:1008B0001021C3F81011D3F81021D3F8EC20C3F89D +:1008C000EC10D3F81421C3F81411D3F81421D3F881 +:1008D000F020C3F8F010D3F81821C3F81811D3F89A +:1008E0001821D3F8802042F00062C3F88020D3F8AA +:1008F000802022F00062C3F88020D3F88020D3F853 +:10090000802042F00072C3F88020D3F8802022F0CB +:100910000072C3F88020D3F8803072B64FF0E02325 +:10092000C3F8084DD4E90004BFF34F8FBFF36F8FB6 +:10093000224AC2F88410BFF34F8F536923F48033E7 +:100940005361BFF34F8FD2F8803043F6E076C3F3A4 +:10095000C905C3F34E335B0103EA060C29464CEA92 +:1009600081770139C2F87472F9D2203B13F1200F5C +:10097000F2D1BFF34F8FBFF36F8FBFF34F8FBFF332 +:100980006F8F536923F4003353610023C2F8503250 +:10099000BFF34F8FBFF36F8F302383F311888546EA +:1009A00080F308882047F8BD0000020820000208F4 +:1009B000FFFF0108002200200044025800ED00E083 +:1009C0002DE9F04F93B0B44B2022FF2100900AA8EC +:1009D0009D6801F0B1F9B14A1378A3B90121B0487B +:1009E00011700360302383F3118803680BB105F0A5 +:1009F00017FF0023AB4A4FF47A71A94805F006FFB0 +:100A0000002383F31188009B13B1A74B009A1A604F +:100A1000A64A1378032B03D000231370A24A536015 +:100A20004FF0000A009CD3465646D146012001F003 +:100A300039F924B19C4B1B68002B00F02682002062 +:100A400001F04AF80390039B002BF2DB012001F038 +:100A50001FF9039B213B1F2BE8D801A252F823F07A +:100A6000E10A0008090B00089D0B00082D0A000888 +:100A70002D0A00082D0A00082F0C0008FF0D0008A1 +:100A8000190D00087B0D0008A30D0008C90D000812 +:100A90002D0A0008DB0D00082D0A00084D0E000885 +:100AA000810B00082D0A0008910E0008ED0A0008CD +:100AB000810B00082D0A00087B0D00082D0A000894 +:100AC0002D0A00082D0A00082D0A00082D0A00082A +:100AD0002D0A00082D0A00082D0A00089D0B0008A9 +:100AE0000220FFF759FE002840F0F981009B022107 +:100AF00005A8BAF1000F08BF1C4641F21233ADF849 +:100B0000143001F007F891E74FF47A7000F0E4FF39 +:100B1000071EEBDB0220FFF73FFE0028E6D0013F77 +:100B2000052F00F2DE81DFE807F0030A0D1013360F +:100B30000523042105A8059300F0ECFF17E004212C +:100B40005548F9E704215A48F6E704215948F3E7E4 +:100B50004FF01C08404608F1040801F00DF804218C +:100B6000059005A800F0D6FFB8F12C0FF2D10120B6 +:100B70004FF0000900FA07F747EA0B0B5FFA8BFB0F +:100B800001F026F926B10BF00B030B2B08BF002454 +:100B9000FFF70AFE4AE704214748CDE7002EA5D01B +:100BA0000BF00B030B2BA1D10220FFF7F5FD07463D +:100BB00000289BD00120002600F0DCFF0220FFF778 +:100BC0003BFE1FFA86F8404600F0E4FF0446B0B151 +:100BD000039940460136A1F140025142514100F0D3 +:100BE000E9FF0028EDD1BA46044641F21213022172 +:100BF00005A83E46ADF8143000F08CFF16E72546F8 +:100C00000120FFF719FE244B9B68AB4207D9284609 +:100C100000F0B2FF013040F067810435F3E70025B2 +:100C2000224BBA463E461D701F4B5D60A8E7002E62 +:100C30003FF45CAF0BF00B030B2B7FF457AF02209C +:100C4000FFF7FAFD322000F047FFB0F10008FFF691 +:100C50004DAF18F003077FF449AF0F4A08EB0503C7 +:100C6000926893423FF642AFB8F5807F3FF73EAFC0 +:100C7000124BB845019323DD4FF47A7000F02CFF3E +:100C80000390039A002AFFF631AF039A0137019BC4 +:100C900003F8012BEDE700BF002200209423002081 +:100CA00078220020C107000898230020902200200D +:100CB00004220020082200200C2200209422002080 +:100CC000C820FFF769FD074600283FF40FAF1F2D2E +:100CD00011D8C5F120020AAB25F003008449424532 +:100CE000184428BF4246019201F000F8019AFF2102 +:100CF0007F4801F021F84FEAA803C8F387027C4936 +:100D00002846019301F020F8064600283FF46DAF15 +:100D1000019B05EB830533E70220FFF73DFD00282B +:100D20003FF4E4AE00F064FF00283FF4DFAE00279C +:100D3000B846704B9B68BB4218D91F2F11D80A9B2D +:100D400001330ED027F0030312AA134453F8203CBA +:100D500005934046042205A9043701F0FFF88046B8 +:100D6000E7E7384600F008FF0590F2E7CDF8148079 +:100D7000042105A800F0CEFE02E70023642104A8A8 +:100D8000049300F0BDFE00287FF4B0AE0220FFF710 +:100D900003FD00283FF4AAAE049800F01FFF059061 +:100DA000E6E70023642104A8049300F0A9FE0028CC +:100DB0007FF49CAE0220FFF7EFFC00283FF496AED4 +:100DC000049800F00DFFEAE70220FFF7E5FC002899 +:100DD0003FF48CAE00F01CFFE1E70220FFF7DCFCE3 +:100DE00000283FF483AE05A9142000F017FF074642 +:100DF0000421049004A800F08DFE3946B9E73220A2 +:100E000000F06AFE071EFFF671AEBB077FF46EAE00 +:100E1000384A07EB0903926893423FF667AE022017 +:100E2000FFF7BAFC00283FF461AE27F003074F44F8 +:100E3000B9453FF4A5AE484609F1040900F09CFE0F +:100E40000421059005A800F065FEF1E74FF47A70E3 +:100E5000FFF7A2FC00283FF449AE00F0C9FE0028CD +:100E600044D00A9B01330BD008220AA9002000F0CD +:100E70006BFF00283AD02022FF210AA800F05CFF77 +:100E8000FFF792FC1C4805F0EDFB13B0BDE8F08FB6 +:100E9000002E3FF42BAE0BF00B030B2B7FF426AE92 +:100EA0000023642105A8059300F02AFE07460028C8 +:100EB0007FF41CAE0220FFF76FFC804600283FF451 +:100EC00015AEFFF771FC41F2883005F0CBFB0598B9 +:100ED00000F0C6FF46463C4600F07AFFA6E506460F +:100EE0004EE64FF0000901E6BA467EE637467CE65C +:100EF0009422002000220020A086010070470000FC +:100F000070470000704700002DE9F04100F5803780 +:100F1000044616463B7C5BB9C0681030204400F0A4 +:100F2000E5FEE5683544B5F5004FE56002D816B139 +:100F3000BDE8F081DEB905F07F0605F11000002163 +:100F4000C6F180062044F6B232462E4400F0F4FE8C +:100F5000A06804F11008324600F10060414600F537 +:100F6000003006F059F830B901233B74E0E74FF444 +:100F700000463546ECE7A26805F1100140463244D0 +:100F80002144A260E268521BE26000F0AFFE022042 +:100F9000BDE8F04100F090BE183000F0E9BC000060 +:100FA00010B5044600F0F6FF204610BD10B504460B +:100FB00000F0F0FF204610BDC3B280B2A3F14102A1 +:100FC000052A02D8373800B27047613B052B94BF21 +:100FD00057383038F7E70000F8B50446154608469C +:100FE00003220C4900F08CFE014688B908346F1CBE +:100FF00015F91100FFF7E0FF064617F9110001315E +:10100000FFF7DAFF102940EA061004F8010BEFD1D0 +:10101000F8BD00BF489200082DE9F04FADF53F7DC7 +:101020000746416801222AA802F096FE002840F0F7 +:1010300087800646824681461125DFF80C81DFF85D +:101040000CB101AB4FF4805241462AA802F0E4FFF4 +:10105000002875D1019AB2F5805F71D8002A65D059 +:101060000446019A9442ECD2282D0FD008DC132DAF +:101070002DD01E2D39D0112D13D00134A4B2F0E79C +:10108000322D2DD0372D2FD02D2DF6D13B68121BB0 +:1010900008EB040138461B692D259847BDF804402C +:1010A000EBE7121B022A09D9594608EB040000F0AD +:1010B00027FE18B902342825A4B2DEE718F8043058 +:1010C0003A2B3DD00A2B1CBFA1461325D5E718F8B3 +:1010D00004300A2B34D03A2B04BFA2463225CCE789 +:1010E00018F80430202BC8D0264618F804300A2BF4 +:1010F0001AD1AAEB090208EB090102A811254F2A0F +:1011000028BF4F2208F08CF8A21B08EB060116A896 +:101110004F2A28BF4F2208F083F83B6816AA02A97D +:10112000DB6838469847A8E71E25A6E73B6838469F +:1011300004491B69984701200DF53F7DBDE8F08FFC +:101140000020F9E74A930008A02300204C920008F1 +:1011500000F1180110B5044686B00846019100F070 +:10116000F1FB2046FFF758FF60B1019902A800F09B +:1011700049FC102204F1080102A808F011F8B0FAA5 +:1011800080F0400906B010BD70B504460025EEB2EF +:10119000304600F0FFFC58B100213046013500F028 +:1011A00009FD08B9002070BD022000F085FDEEE7C2 +:1011B0002046FFF731FF0028F4D004F58034207C6E +:1011C00080F00100EFE70000F0B5C9B006F090F93B +:1011D00000F0FCFE18B90025284649B0F0BD69466C +:1011E0002A4802F0DBFF00284BD1294C204603F0AF +:1011F00005F8284803F002F8274802F0FFFF2146CF +:10120000224803F077F80028E5D1702000F0BCFEFA +:10121000064610B1214B44600360336830469B683A +:101220009847054600282ED01A4F1948394603F032 +:1012300061F805460028CED1194800F0A5FE044605 +:1012400038B1184B4760036000F58033C0E90255A0 +:101250001D74236820469B689847054628B10E49AF +:101260000C4803F047F80028B5D1336830465B6876 +:1012700098471CB1236820465B68984700F08EFEB3 +:10128000AAE70025FAE70446EFE700BF50920008FE +:1012900060920008779200088D920008B0920008D2 +:1012A00014000100CC9200082DE9F04FD44A8DB013 +:1012B0000B68D0F804A001931A440368D14E1A4475 +:1012C000D1F81C90DFF8B4C3DFF8B4B3D0E902342E +:1012D000634003EA0A03634013444A6802920AEB3C +:1012E0007363029CC84A2244C468224484688AEA20 +:1012F00004051D40654015448A68039203EB35558B +:10130000039CC24A2244846822448AEA03042C4093 +:1013100084EA0A041444CA6805EBF43404921644BF +:1013200083EA0502224056445A4032440E6905962B +:1013300004EBB222059FB64E3E441E4485EA0403E8 +:1013400013406B4033444E69069602EB7363069F6D +:10135000B04E3E442E4484EA02051D4065403544AB +:101360008E69079603EB3555079FAB4E3E442644E6 +:1013700082EA03042C4054403444A84E4E4405EB0A +:10138000F434164483EA050222405A4032440E6A7D +:10139000089604EBB222089FA14E3E441E4485EA03 +:1013A000040313406B4033444E6A099602EB7363A7 +:1013B000099F9C4ED1F830E03E44D1F83880F34488 +:1013C0002E4484EA02051D40654035448E6AA6F528 +:1013D000244703EB35550A964F3F274482EA03041E +:1013E0002C4054403C44CF6A0B9705EBF4340B9EE1 +:1013F0008D4F3744029E174483EA050222405A402B +:101400003A448A4F774404EBB2221F4485EA04032E +:1014100013406B403B444F6BBC4402EB7363654429 +:1014200084EA020C0CEA030C8CEA040C6544DFF835 +:1014300054C2C44403EB3555A44482EA03042C404F +:1014400054406444D1F83CC0794905EBF43461441C +:10145000114483EA050222405A400A44754904EBCC +:10146000B2223144079E194484EA02032B406340B0 +:101470000B44714902EBF36331440B9E0D4482EA45 +:1014800003012140514029446C4D03EBF151354497 +:10149000019E254483EA010414405C402C44684DBD +:1014A00001EBB4443544069E154481EA04021A4017 +:1014B0004A402A44634D04EB323235440A9E1D44AF +:1014C00084EA02030B4063402B445F4D02EBF3635D +:1014D0003544059E0D4482EA0301214051402944D0 +:1014E0005A4D03EBF1516544254483EA010414404D +:1014F0005C402C44564D01EBB4443544099E1544E0 +:1015000081EA04021A404A402A44524D04EB323226 +:101510003544049E1D4484EA02030B4063402B447F +:101520004D4D02EBF36345440D4482EA0301214033 +:1015300051402944494D03EBF1513544089E2C4458 +:1015400083EA010515405D402C44454D01EBB44450 +:101550003544039E2A4481EA04051D404D402A4437 +:10156000404D04EB32323D442B4484EA020593445F +:101570000D4065402B443C4D02EBF3633544069E21 +:10158000294482EA0305254055402944374D03EBA1 +:10159000F1514D442C4483EA010515405D4025443A +:1015A00001EBB54581EA050404EA03024A405A44C6 +:1015B000A6F5B82B089E05EB3232ABF2BE6B544059 +:1015C0005B4423442A4C344402EB33730B9E0C449B +:1015D00085EA020159402144264C344403EB715101 +:1015E000029E254482EA03044C402544224C444494 +:1015F00001EB3545144483EA01026A40224443E08A +:1016000078A46AD7EECEBDC156B7C7E8DB702024F8 +:10161000AF0F7CF52AC68747134630A8019546FDD3 +:10162000D8988069AFF7448BBED75C892211906B44 +:101630002108B44962251EF640B340C0515A5E26C7 +:10164000AAC7B6E95D102FD65314440281E6A1D88B +:10165000C8FBD3E7E6CDE121D60737C3870DD5F424 +:10166000ED145A4505E9E3A9F8A3EFFCD9026F6729 +:1016700081F6718722619D6D0C38E5FD937198FDAF +:101680008A4C2A8D8E4379A6934C344405EB722202 +:10169000059E1C4481EA0503534023448F4C344487 +:1016A00002EB33730A9E0C4485EA0201594021443F +:1016B0008B4C4C4403EB7151254482EA03044C40AB +:1016C0002C44884D354401EB3444019E154483EA93 +:1016D000010262402A44844D3D4404EB72221D44C1 +:1016E00081EA040353402B44804D354402EB3373AD +:1016F000049E294484EA02055D4029447C4D35441A +:1017000003EB7151079E254482EA03044C402C44AC +:10171000784D354401EB3444099E2A4483EA01059F +:1017200065401544744A324404EB7525039E134406 +:1017300081EA04026A401A44704B734405EB32722A +:101740000B4484EA0501514019446D4B634402EB9C +:1017500071511C4485EA02034B401C44694B3344DD +:1017600001EB3444019E1D4482EA010363402B4493 +:10177000654D04EB73233544069E154463EA01026C +:1017800062402A44614D03EBB2624D4462EA0409AF +:1017900029445F4D89EA0309454449442C445D4D81 +:1017A00002EBB1513544049E61EA03081D4488EA06 +:1017B0000208444401EB744464EA02034B402B44A6 +:1017C000554D04EBF323754463EA010E15448EEA8C +:1017D000040E0EEB0502514D03EBB262354462EA92 +:1017E000040E29440A9D8EEA030EA5F580164C4D81 +:1017F0007144A6F6833602EBB151264461EA030434 +:1018000054403444029E01EB7444354464EA0206B9 +:101810001D444E407319089E424D04EBF32335449A +:1018200063EA01061544664072193F4D03EBB2624C +:10183000654462EA040629443C4D5E403144079EFB +:1018400002EBB151354461EA03062C44384D564051 +:101850003D443444059E1D4401EB744464EA020394 +:101860004B402B44334D04EBF32335440B9E15447E +:1018700063EA010262402A442F4D03EBB262354411 +:10188000039E0D4462EA0401594029442B4D02EBAA +:10189000B15135442A4E254461EA030454402C4496 +:1018A000099D01EB74442E4464EA02051E4485EA56 +:1018B00001039D1903681A440AEB040303EBF523A3 +:1018C0000260436083681C44C36819448460C1603B +:1018D0000DB0BDE8F08F00BF44EABEA4A9CFDE4B37 +:1018E000604BBBF670BCBFBEC67E9B28FA27A1EA40 +:1018F0008530EFD4051D880439D0D4D9E599DBE6CD +:10190000F87CA21F6556ACC4442229F497FF2A43F1 +:10191000A72394AB39A093FCC3595B6592CC0C8F81 +:10192000D15D84854F7EA86FE0E62CFE144301A3B1 +:10193000A111084E827E53F735F23ABDBBD2D72AA9 +:1019400091D386EB094B036003F18833436003F1C5 +:101950002943A3F59613A3F68B638360A3F1883321 +:10196000C3600023C0E90433704700BF012345670B +:101970002DE9F8431446026905460E46E300C2F31A +:10198000C50800F118079B18036122BF43690133A2 +:10199000436112F4FC7F436903EB5473436114D039 +:1019A000C8F1400907EB08004C4504D22246BDE8C7 +:1019B000F84307F005BC403C4A464E4407F000FCA3 +:1019C000444439462846FFF76FFCA04606EB04095D +:1019D000B8F13F0FA9EB08010AD94022384607F0B9 +:1019E000EFFB39462846A8F14008FFF75DFCEFE71A +:1019F000A1096FF03F02384602FB014206EB81115C +:101A0000D5E7000070B50B6901F1180506460C46D4 +:101A1000C3F3C503EA18501C8022EA54C3F13F0205 +:101A2000072A1FD8002100F087F929462046FFF732 +:101A30003BFC38220021284600F07EF92369294624 +:101A40002046236563696365FFF72EFC214610225B +:101A5000304607F0B5FB204658220021BDE8704013 +:101A600000F06AB9C3F137020021E5E72DE9F84F2C +:101A70004FF47A7306460D46002402FB03F7DFF8A5 +:101A80005080DFF8509098F900305FFA84FA5A1CC1 +:101A900001D0A34210D159F824002A4631460368E8 +:101AA000D3F820B03B46D847854205D1074B0120EB +:101AB00083F800A0BDE8F88F0134042CE3D14FF483 +:101AC000FA7004F0CFFD0020F4E700BFE4330020FB +:101AD0001022002014220020002307B50246012115 +:101AE0000DF107008DF80730FFF7C0FF20B19DF81A +:101AF000070003B05DF804FB4FF0FF30F9E700008A +:101B00000A46042108B5FFF7B1FF80F00100C0B21A +:101B1000404208BD074B0A4630B41978064B53F8CB +:101B20002140014623682046DD69044BAC4630BCA9 +:101B3000604700BFE433002014220020A08601008B +:101B400070B50A4E00240A4D05F00AFA3080286864 +:101B50003388834208D905F0FFF92B680444013328 +:101B6000B4F5003F2B60F2D370BD00BFE633002018 +:101B7000A033002005F0C2BA00F1006000F500308B +:101B80000068704700F10060920000F5003005F039 +:101B900043BA0000054B1A68054B1B889B1A834209 +:101BA00002D9104405F0D8B900207047A0330020B6 +:101BB000E633002038B50446074D29B12868204493 +:101BC000BDE8384005F0E0B92868204405F0CAF9BE +:101BD0000028F3D038BD00BFA0330020002070479C +:101BE00000F1FF5000F58F10D0F80008704700009A +:101BF000064991F8243033B100230822086A81F89D +:101C00002430FFF7BFBF0120704700BFA43300207E +:101C1000014B1868704700BF0010005C194B013879 +:101C20000322084470B51D68174BC5F30B042D0C37 +:101C30001E88A6420BD15C680A46013C82421346CC +:101C40000FD214F9016F4EB102F8016BF6E7013AB9 +:101C500003F10803ECD181420B4602D22C2203F897 +:101C6000012B0424094A1688AE4204D1984284BF4D +:101C7000967803F8016B013C02F10402F3D1581A83 +:101C800070BD00BF0010005C242200200C930008EF +:101C9000022803D1024B4FF080529A61704700BF77 +:101CA00000100258022803D1024B4FF480529A616F +:101CB000704700BF00100258022804D1024A53693D +:101CC00083F48053536170470010025870B5044686 +:101CD0004FF47A764CB1412C254628BF412506FBAE +:101CE00005F0641B04F0BEFCF4E770BD002310B5E2 +:101CF000934203D0CC5CC4540133F9E710BD00001B +:101D0000013810B510F9013F3BB191F900409C42F8 +:101D100003D11AB10131013AF4E71AB191F9002067 +:101D2000981A10BD1046FCE703460246D01A12F975 +:101D3000011B0029FAD1704702440346934202D0A6 +:101D400003F8011BFAE770472DE9F8431F4D1446CD +:101D50000746884695F8242052BBDFF870909CB364 +:101D600095F824302BB92022FF2148462F62FFF737 +:101D7000E3FF95F824004146C0F1080205EB80001E +:101D8000A24228BF2246D6B29200FFF7AFFF95F8D5 +:101D90002430A41B17441E449044E4B2F6B2082E2B +:101DA00085F82460DBD1FFF723FF0028D7D108E0B6 +:101DB0002B6A03EB82038342CFD0FFF719FF002881 +:101DC000CBD10020BDE8F8830120FBE7A43300203D +:101DD000024B1A78024B1A70704700BFE4330020A0 +:101DE00010220020F8B5194C194803F043FF214692 +:101DF000174803F06BFF24684FF47A70154ED4F83F +:101E00009020154DD2F80438114F43F00203C2F868 +:101E10000438FFF75BFF2046104904F065F8D4F85A +:101E200090200424D2F8043823F00203C2F80438C6 +:101E30004FF4E133336055F8040BB84202D0314619 +:101E400003F076FE013CF6D1F8BD00BF0C9B000804 +:101E500018490020CC33002014220020149B0008D5 +:101E60000C4B70B50C4D04461E780C4B55F82620D3 +:101E70009A420DD00A4B002118221846FFF75CFF4A +:101E80000460014655F82600BDE8704003F050BEDE +:101E900070BD00BFE4330020142200201849002048 +:101EA000CC330020F8B571B6002301201A4619463C +:101EB00002F090FD0446802005F0C0F9002845D0CE +:101EC0000025234A80274FF4D06C3D26136923BB9D +:101ED000D2F810310BBB236805F1006199602368CB +:101EE000D86023685F602368C3F800C021680B686E +:101EF00043F001030B6021680B6823F01E030B60A5 +:101F000021680B68DB07FCD4237B8035616806FA07 +:101F100003F3B5F5001F0B60D8D1204602F09AFDFF +:101F2000B5F5001F11D000240A4E0B4D012005F01D +:101F3000E5F83388A34205D928682044013405F028 +:101F400023F8F6E7002005F0D9F861B6F8BD00BF28 +:101F500000200052E6330020A033002030B50A44B0 +:101F6000084D91420DD011F8013B5840082340F331 +:101F70000004013B2C4013F0FF0384EA5000F6D12B +:101F8000EFE730BD2083B8ED0121884238BF084615 +:101F900005F08CB908B105F08DB9704710B5084C43 +:101FA00001220849002001F0B3FE23783BB1064826 +:101FB00003F036FD044803F069FD0023237010BDD3 +:101FC000E83300201C930008C83600201D482DE986 +:101FD000F041036D2BB901224FF48051503005F0D0 +:101FE000C9FA194E33780BB1FFF7D8FF0324174F06 +:101FF0004FF00008134D15492846C7F8048003F038 +:1020000037FD284603F070FB48B1013C284603F039 +:102010003DFD14F0FF04EED1204634700FE00C4972 +:1020200001220C4801F074FE014618B1284603F065 +:10203000F7FCEAE7084800F011F801203070BDE82D +:10204000F08100BFC8360020E83300203C22002089 +:102050001C930008EC330020209300080FB40020EC +:1020600004B07047006870470346006859687047BD +:102070000B0A017043700B0C090E8370C17070471E +:10208000110A027003714170110C120E8170C2703E +:102090001A0A42711A0C1B0E8271C371704700003C +:1020A000C36A0239023B8B4283BF4389006C01FB48 +:1020B0000300002070470000C2F307238A76CB7626 +:1020C0000378032B01BF120C0A75120A4A75704778 +:1020D00000F10B010022D30143EA520310F8012B57 +:1020E00052FA83F38842DAB2F5D110467047000005 +:1020F00010B5417804460020013102464901022A08 +:1021000016BFA35C032203EBC03302F101021EBF22 +:102110009BB203EB500398B29142F0D810BD00007F +:1021200002684AB1134613F8011B1F290DD93A2939 +:10213000F9D1911C8B4202D04FF0FF3070471278DA +:10214000302AF9D1036000207047014B187870479E +:102150003836002038B50D46044618B9092000234A +:102160002B6038BD0368002BF8D01A78002AF5D010 +:102170008188DA889142F1D1587804F00FFC10F090 +:102180000100EBD12368EBE738B50D4640F2523140 +:10219000144602F0B9F9FF2807D9012C0BD9030A1C +:1021A000022468702B70204638BD30B1002CFAD064 +:1021B00001242870F7E70024F5E70446F3E7000060 +:1021C0002DE9F8430026D0F8008005460C468E76AF +:1021D000836B002B4AD098F80030042B4BD1334648 +:1021E0003546402720E0B7F5187F80F0C480F90617 +:1021F00006F1010608BF0237D05B02372BB900F5A4 +:10220000205292B2B2F5006F0DD305F11A01C5F15B +:10221000FF0240EA03402144FFF7B6FF002800F028 +:10222000AA80054400200346D8F8102092F8231015 +:10223000B142D8D8002B40F09E80002D00F09B804A +:1022400000232544AB766373D8F81020137903F08C +:102250003701DB0621730BD402F13800FFF704FFCE +:10226000C4E9000193896381D3892381BDE8F883A0 +:1022700000200146F4E7C36C01335ED1EA6B002312 +:102280002E26551E184615F8011F013020290CD0A6 +:10229000052908BFE521092804D10B2B9EBFE718AB +:1022A00001337E73E718013379730B28EBD1E11802 +:1022B00000204873A17E00294BD1002B40D06FF045 +:1022C0000C0604F10D000825361B331810F8011B0D +:1022D000002938D02E298BB24AD0A3F14101192907 +:1022E00003D8117B0D4200D020330373EDE7B9F121 +:1022F000000F05D100F520539BB2B3F5006F0BD34F +:1023000007F11A01C7F1FF0240EA09402144FFF733 +:102310003BFF48B10744002002368146D8F80C3014 +:10232000985B0028E3D13846B9F1000F4FF0000266 +:1023300018BF002023189A76A0E7B1463746EDE78C +:102340003F23A3760123234400219976137B03B90D +:102350006373D37A02F11C0003F03F03237300235D +:10236000FFF780FE20606360D38A6381138B7CE774 +:1023700010250B46B9E73F230125A37660E700004F +:1023800038B50546002435F8020B08B9204638BD9B +:1023900002F0EEF86308C2B203EBC43312FA83F31F +:1023A0009AB2C0F3072303EB520303EBC2339CB290 +:1023B000E9E7000037B5C37804461BB90025284675 +:1023C00003B030BD00F14C01826C012340780191D3 +:1023D00004F00AFB054680B9A36BE070A06C226B89 +:1023E000C31A9342EAD2A3780199022BE6D10244A0 +:1023F0000123607804F0F8FAE1E70125DFE7000047 +:1024000038B5836C05460C468B4210D0FFF7D2FFDF +:1024100060B92246012305F14C01687804F0C0FA46 +:1024200000281CBF4FF0FF340120AC6438BD0020F1 +:10243000FCE7000038B500230446C3704FF0FF33BB +:102440008364FFF7DDFF00284BD1B4F84A524AF607 +:1024500055239D4207D10B22254904F14C0006F07B +:102460009FFE00283FD094F84C30EB2B03D018335C +:10247000DBB2012B2ED84AF655239D4206D1082205 +:102480001C4904F19E0006F08BFE48B3B4F85730A7 +:10249000B3F5007F1ED194F85930DBB15A1E1A42B1 +:1024A00018D1B4F85A30ABB194F85C30013B012B31 +:1024B00010D8B4F85D306BB1B4F85F307F2B06D81C +:1024C00004F16C00FFF7CEFDB0F5803F02D3B4F805 +:1024D000623053B94AF6552085420CBF02200320D2 +:1024E00038BD0420FCE70120FAE70020F8E700BF30 +:1024F0004C9300085893000802392DE9F04701F089 +:1025000007044FF0010A466C05460AFA04F4174620 +:10251000984606EB1136C1F3C809E4B231462846A5 +:102520000136FFF76DFF18B10120BDE8F08799462D +:1025300005EB090292F84C30234214BF012100211F +:10254000414513D06340013F82F84C3085F803A029 +:10255000EBD0640014F0FF04EAD109F10103012477 +:102560004FF00009B3F5007FE1D1D7E70220DCE7A7 +:1025700001290246F8B50C4640F28C800668F36AE1 +:102580008B4240F287803378013B032B00F282803C +:10259000DFE803F00229384B04EB5405B16B3046F9 +:1025A00001EB5521FFF72CFF10B14FF0FF30F8BDC4 +:1025B0006F1CC5F30805B16B3046354401EB57215C +:1025C00095F84C50FFF71CFF0028EED1C7F3080721 +:1025D000E3073E4496F84C0045EA00204CBF000952 +:1025E000C0F30B00E3E7B16B304601EB1421FFF7BA +:1025F00007FF0028D9D1640004F4FF742644B6F81C +:102600004C00D4E7B16B304601EBD411FFF7F8FE74 +:102610000028CAD1A40006F14C0004F4FE74204442 +:10262000FFF720FD20F07040C1E7D0E90430D579F4 +:1026300053EA000101D0916801B95DBB9168022D98 +:10264000A4EB01010DD1013B728940F1FF305B0A1F +:1026500043EAC053B3FBF2F399421BD81CD0601C71 +:10266000A5E7032D02D193698B42F8D8D3699BB9B2 +:10267000B16B304601EBD411FFF7C2FE002894D1B4 +:10268000A0004C3600F4FE703044FFF7EBFC20F065 +:1026900000408CE701208AE76FF0004087E70000E8 +:1026A000F8B5066804460D463378042B0CBF4FF08E +:1026B00080524FF400128A4201D80220F8BDCA06A7 +:1026C000FBD182680163D2B9022B13D83389B3EBF3 +:1026D000551FF2D9F36BA363A36B6263002BECD09D +:1026E00003EB55234C36C5F308050020A36335449E +:1026F000E563E3E7F36BC271002BE7D01A467789F5 +:102700007F02BD42114604D23046FFF7C9FCA063E8 +:10271000E2E72046FFF72CFF431C024606D00128C3 +:10272000CBD9F36A8342C8D9ED1BEAE70120C5E79C +:1027300001292DE9F04706460C46174608D9C36A19 +:102740008B4205D90378022B62D003D8012B22D00B +:10275000022552E0033B012BFAD8816B01EBD41127 +:10276000FFF74EFE0546002847D1A40006F14C03B2 +:1027700004F4FE741C443378042B07D0204627F061 +:102780007047FFF76FFC00F0704007433946204662 +:10279000FFF76EFC2FE001EB5108816B01EB582134 +:1027A000FFF72EFE054640BB14F0010406F14C096C +:1027B00008F1010AC8F3080808BFFBB230461FBF82 +:1027C00019F8083003F00F023B0103F0F00318BFC3 +:1027D000134309F808300123B16BF37001EB5A2160 +:1027E000FFF70EFE054640B9CAF3080A44B1C7F325 +:1027F000071709F80A700123F3702846BDE8F0872F +:1028000019F80A30C7F3032723F00F031F43F0E73B +:10281000816B01EB1421FFF7F3FD05460028ECD195 +:10282000640006F14C0304F4FF741F551919C7F333 +:1028300007274F70DFE70000F8B504460E4617463D +:10284000E3690BB91846F8BD012BA6EB0305206818 +:1028500014BFAA1C3A46691CFFF76AFF0028F2D190 +:10286000E369013BE361EBE701292DE9F843064603 +:102870000C461746056802D80220BDE8F883EB6ACB +:102880008B42F9D97AB9A14621463046A046FFF7D6 +:102890006FFE0446B0B92B78042B02D1002F43D130 +:1028A000F7710020E9E72B78042B02D1C379022BC2 +:1028B000E9D04FF0FF3239462846FFF739FF0028AC +:1028C000E1D0DAE70128D7D0421C01D10120D4E7BA +:1028D0002B78042B19D1EA6AAB69023A93421CD3D4 +:1028E00008F10102A2420CD02B78042B08D100235E +:1028F000A2EB090249462846FFF7FEFD0028BCD19D +:10290000A146EB6AA342BFD8C5E70022414628464C +:10291000FFF70EFF0028DED0AFE70133AB612B7964 +:1029200043F001032B71DBE7F3798BB9B468BC4248 +:1029300002D10223F371B4E721463046FFF718FEB7 +:10294000012899D9431CC1D001348442EFD0A8E7B3 +:10295000032BA6D1B368BB42A3D8B2691344BB42D0 +:102960009FD3E6E770B5C3790446032B06D181688F +:102970008369CD18A94203D10023E371002070BD03 +:102980004E1C20683246FFF7D3FE0028F7D13146AF +:10299000F0E700002DE9F74305460191FFF70AFD36 +:1029A0000446002849D105F14C09019928464FF405 +:1029B0000072FFF775FB2146A86407464846FFF7FB +:1029C000BBF96C896402B4F5004F28BF4FF4004492 +:1029D000B4F5007F2FD9204604F070FC804630B15A +:1029E00022460021640A0026FFF7A6F909E06408E0 +:1029F000EEE72346BA194146687803F0F5FF18B9A7 +:102A000026446B899E42F4D3404604F067FC6889F3 +:102A1000801B18BF012003B0BDE8F08301366B892D +:102A20009E42F4D20123BA194946687803F0DCFFCC +:102A30000028F3D0EBE70026F1E70120EBE70000E8 +:102A4000F8B50446FFF7B6FC0546002842D12378C6 +:102A5000032B37D12779012F34D104F14C060146DD +:102A60004FF400723046FFF767F955234122722177 +:102A700084F84A32AA2304F50D7084F84F2084F8B4 +:102A80004B32522384F8301284F84C3084F84D30A5 +:102A9000612384F8311284F84E3084F83332A1690E +:102AA00084F83222FFF7E4FA616904F50E70FFF74B +:102AB000DFFA626B3B46314601326078A26403F074 +:102AC00093FF257100226078114603F0B1FF0038B2 +:102AD00018BF0120F8BD000000232DE9F0430B6072 +:102AE00085B00F461546FFF71BFB061EC0F2B281EC +:102AF000804B53F82640002C00F0AE813C6005F07E +:102B0000FE0523786BB1607803F048FFC70708D44F +:102B10001DB110F0040500D00A25284605B0BDE817 +:102B2000F0830023F0B22370607003F023FFC1072D +:102B300000F194810DB14207EED400212046FFF749 +:102B400079FC022840F099806E4604F2122304F2C8 +:102B50005221324618461033FFF784FA42F8040B2C +:102B60008B42F7D1002556F8041B00297DD0204662 +:102B7000FFF760FC012879D80128A26C40F0C080E2 +:102B800004F1570304F18C0113F8015B002D7BD194 +:102B90008B42F9D1B4F8B430B3F5807F74D194F896 +:102BA000B830092B70D104F19400FFF75DFA4FF0B3 +:102BB000FF33171841F10001BB4275EB010363D3EA +:102BC00004F1A000FFF74EFA94F8BA302063012B0D +:102BD000A37059D194F8B99003FA09F91FFA89F34F +:102BE0006381002B50D0444B04F1A800FFF73AFA60 +:102BF0000646984248D8831C626304F1A400E3624D +:102C0000FFF730FA00EB020804F19C00C4F84080A2 +:102C1000FFF728FA10441FFA89F2A06306FB02F3BB +:102C200013EB080345EB05029F4271EB02032BD324 +:102C30002E4604F1AC00FFF715FAE06365B963892D +:102C4000B34221D9E16B2046FFF72AFA81192046C9 +:102C5000FFF7D6FB98B90136631993F84C30812BF6 +:102C600014D02035C5F30805E8E703200135042D0D +:102C70007FF479AF042807D101E0042801D10125B0 +:102C80004BE701287FF678AF0D2546E705F11400E4 +:102C900004F14C063044FFF7E5F901280546F3D965 +:102CA000E36A8342F0D96189821E236C02FB0133FF +:102CB0006364A16B204601EBD511FFF7A1FB00284F +:102CC000DDD105F07F0006EB8000FFF7CBF9431C58 +:102CD00003D00135A842ECD0D6E70425C4E90500AD +:102CE000064A257000251388E56101339BB21380E5 +:102CF000E38012E73C360020FDFFFF7F40360020D6 +:102D0000B4F85730B3F5007FBED1B4F8626026B98D +:102D100004F17000FFF7A6F9064694F85C302663CC +:102D2000591EA3700129AFD894F859506581002D20 +:102D3000AAD0691E2942A7D1B4F85D8018F00F0F00 +:102D4000A4F80880A0D1B4F85F0018B904F16C00B1 +:102D5000FFF788F9B4F85A10002995D006FB03FE56 +:102D600001EB181CF44460458ED3A0EB0C00A84284 +:102D7000B0FBF5F388D33E48834285D84FF6F57013 +:102D800083426DD903259F1C114402EB0C03032DD4 +:102D9000E7626263A16323644CD1B4F8763053EAEE +:102DA00008037FF471AFBB0004F17800FFF75AF914 +:102DB000E06303F2FF13B6EB532FFFF465AF4FF060 +:102DC000FF33032DC4E905334FF08003237187D10E +:102DD000B4F87C30012B83D1511C2046FFF710FB47 +:102DE00000287FF47DAFB4F84A224AF655232071BB +:102DF0009A427FF475AF1F4B04F14C00FFF732F994 +:102E000098427FF46DAF03F1FF5304F50C70FFF7A8 +:102E100029F903F50053203398427FF461AF04F59C +:102E20000D70FFF71FF9A06104F50E70FFF71AF996 +:102E3000606155E7B8F1000F3FF426AF7144022DF1 +:102E40004FEA4703E1631EBFD91907F0010303EB03 +:102E50005103AEE70B2560E60C255EE603255CE634 +:102E600040F6F575AB428CBF022501258BE700BF0C +:102E7000F5FFFF0F525261412DE9F84F07460568F3 +:102E8000884649B96E69C6B1EB6AB34298BF01265C +:102E9000AB69A3B9002405E0FFF76AFB01280446EB +:102EA00003D801242046BDE8F88F421C00F0D280F0 +:102EB000EB6A8342F6D84646EAE70126E8E72A7835 +:102EC000EB6A042A40F08380A6F1020A023B4FF02D +:102ED000010B9A4528BF4FF0000AD146696C28467D +:102EE00001EB1931FFF78CFA00283BD109F00703F9 +:102EF000EA6AC9F3C8010BFA03F3901EDBB26A1841 +:102F00004C4609F1010992F84C20814502EA03027E +:102F100033BF5B0000234FF40071DBB228BF99463A +:102F2000B2B90234631E0333BCD8012321462846BC +:102F30001A46FFF7E1FA0228B3D0012800F08A8090 +:102F4000B8F1000F13D10223FB710028A9D130E0A2 +:102F5000CA450AD0002BD2D10131B1F5007FBDD2D4 +:102F60000123CCE74FF0FF34DCE70024DAE7FB79FC +:102F7000022B07D1731CA342E7D0BB68F31ABB61D5 +:102F80000323FB7108F10102FB69A24205D113B1D1 +:102F90000133FB61D9E70223FBE70BB90123FB6196 +:102FA000224641463846FFF747FC00284FD101230F +:102FB000FB61EA6AAB69023A6C6193429CBF03F120 +:102FC000FF33AB612B7943F001032B716AE7464570 +:102FD00014D1741C3846A34298BF02242146FFF73F +:102FE000C7FA01283FF45DAF431C33D0E0B16B69F1 +:102FF000012B03D9EA6A934238BF1E463446013496 +:10300000EB6AA34203D8012E7FF644AF0224214687 +:103010003846FFF7ADFA48B101283FF442AF01301E +:1030200018D0B442EBD135E7002CE7D04FF0FF3297 +:1030300021462846FFF77CFB48B9B8F1000FB8D00D +:10304000224641462846FFF773FB0028B1D00128ED +:103050007FF427AF4FF0FF3424E700002DE9F84359 +:1030600006680446076B894633782037042B0CBF6B +:103070004FF080534FF40013BB429CBF0023836387 +:10308000836B73B1C7F30808B8F1000F3CD101336B +:10309000416B836339B93389B3EB571F34D80023AD +:1030A000A36304200AE07389013B13EA57232BD161 +:1030B000FFF75EFA0128054602D80220BDE8F88332 +:1030C000421C01D10120F9E7F36A834216D8B9F115 +:1030D000000FE4D0616B2046FFF7CEFE0546C8B175 +:1030E0000128EAD0431CEDD001463046FFF752FCE0 +:1030F0000028E7D1E37943F00403E3712946304621 +:103100006563FEF7CDFFA0634C360020276346447D +:10311000E663D3E70720D1E7F8B50E460021044661 +:103120000768FFF7BDFA98B90546A16B3846FFF767 +:1031300067F968B93A78E36B042A1B780CD11B064F +:103140000ED5054601212046FFF788FF0028ECD068 +:10315000042808BF072006E0E52B01D0002BF0D1A2 +:103160000135B542EED1F8BDC16C4B1C2DE9F041E3 +:1031700004460568066B1FD1E5274FF00108A16BD7 +:103180002846FFF73DF998B92A78E36B042A09BF6E +:103190001A781F7002F07F021A7085F80380236B83 +:1031A000B3420DD200212046FFF758FF0028E6D099 +:1031B000042808BF022003E0FFF772FA0028DBD0E2 +:1031C000BDE8F0812DE9F04105460068A96B06696C +:1031D000FFF716F9044620B9EB6B1A78852A03D05D +:1031E00002242046BDE8F081324603F1200153F865 +:1031F000040B8B4242F8040BF9D1777801377F0139 +:10320000A7F16003B3F5007FEAD800212846FFF755 +:1032100025FF04280446E3D00028E2D1A96B2868E2 +:10322000FFF7EEF804460028DBD1EB6B1A78C02AD2 +:10323000D6D106F1200203F1200153F8040B8B4292 +:1032400042F8040BF9D196F823300F222C33B3FB4C +:10325000F2F3B7EB431FC3D34FF0400800212846D9 +:10326000FFF7FCFE04280446BAD00028B9D1A96BA8 +:103270002868FFF7C5F804460028B2D1EB6B1A782E +:10328000C12AADD1B8F5187F09D206EB080203F1C7 +:10329000200153F8040B8B4242F8040BF9D108F1DA +:1032A00020084745DAD8B8F5187F9AD83046FEF797 +:1032B0001FFF7388834294D092E700000B680022BE +:1032C00010B5036004460B6A83604B6AC261C37128 +:1032D00023F0FF03896AC0E90432C164FFF7E0F913 +:1032E00020B92046BDE81040FFF76CBF10BD0000BC +:1032F000F8B50368054601271C692046FEF7F8FE6D +:10330000A070000A6678E0702846E96CFFF7C8F9FB +:1033100020B1022828BF0220C0B2F8BDA96B2868DE +:10332000FFF76EF80028F4D1EB6B04F1200254F89B +:10333000041B944243F8041BF9D12B68DF70002E64 +:10334000E7D000212846013EFFF788FEE0E70000B5 +:103350002DE9F8434FF0FF08064607680424454668 +:103360004FF6FF79B16B11B9002C73D063E038468A +:10337000FFF746F8044600285DD1F06B0378002B78 +:103380006ED03A78042A11D1852B4DD1336B30465B +:10339000F364FFF717FF044600284CD13B691B7903 +:1033A00003F03F03B3712046BDE8F883C27AE52BF2 +:1033B00002F03F02B27143D02E2B41D022F0200107 +:1033C00008293DD00F2A40D1590637D503F0BF0553 +:1033D000336B90F80D80F364437B434530D1428BCF +:1033E00072BB03780D21FC6823F04003DFF874E022 +:1033F000013B4B4301211EF801CB30F80CC009B34F +:10340000FF2B1DD824F813C06146013301320D2A69 +:10341000F1D10278520605D521B1FF2B10D8002238 +:1034200024F81320013DEDB200213046FFF716FECF +:103430000446002896D00023B363B4E7AB42CBD058 +:10344000FF25F1E7CC45E1D0FAE72DB9FEF740FEC4 +:10345000404501D10024A6E74FF0FF33F364A2E713 +:103460000424E8E7F49300082DE9F04F002187B029 +:103470000446D0F80090FFF713F9804670B999F828 +:103480000030042B33D1D9F80C00FEF779FF074642 +:103490002046FFF75DFF054620B18046404607B055 +:1034A000BDE8F08FD9F810309A8CBA42F0D193F879 +:1034B00023B040265D4506D1D9F80C3033F81530DD +:1034C000002BE5D1EAE7F106D9F8103008BF023643 +:1034D000985B01F04DF8D9F80C30824633F81500AE +:1034E00001F046F88245D3D102360135E2E74FF0CC +:1034F000FF0A4FF0FF3B5546C4F84CB0A16B48465D +:10350000FEF77EFF00285CD1E66B3778002F77D07E +:10351000F27AE52F02F03F03A37103D0120704D51E +:103520000F2B04D0C4F84CB04FE00F2B54D194F8BB +:103530004B3058063FD4790645D5236B07F0BF07BB +:1035400096F80DA0E364737B53453ED1738B002B3B +:103550003BD135780121D9F80C3005F03F050193B6 +:103560000D23013D5D43284B13F8012BB25A71B373 +:10357000FF2D059329D81046049200F0F9FF6B1C2B +:1035800003900293019B33F8150000F0F1FF0399BB +:1035900081421AD1049A029D1146059B1B4A93420F +:1035A000E2D133785A0604D519B1019B33F81530AE +:1035B0005BB97D1EEDB200212046FFF74FFD0028CC +:1035C0009CD080466AE7BD42BDD0FF25F3E74FF6A9 +:1035D000FF708242E2D0F8E72DB93046FEF778FD61 +:1035E00050453FF45BAF94F84B30DB079AD40B2285 +:1035F00004F14001304605F0D3FD002892D14DE79B +:103600004FF004084AE700BFF49300080194000853 +:103610002DE9F04F90F84BB099B004461BF0A0058F +:1036200040F068810668F26832F81530002B4AD104 +:103630003378042B40F087800F230E352046B5FBEE +:10364000F3F5A91CFFF768FD8146002877D1236BAD +:103650000135A3EB4515E3795A07E56435D523F029 +:1036600004032046E371FFF77DF950BB4FF0FF32B2 +:10367000616B2046FFF7E0F818BBA3682BB3214627 +:1036800004A8FFF71BFEE0B970894FF40071D4E97C +:103690000423E0FB01233069C4E904233830FEF73A +:1036A000EFFC3069D4E904232830FEF7E9FCE37924 +:1036B000326904A843F0010382F82130FFF718FEB5 +:1036C00018B181463BE00135AEE7D6E9035440220C +:1036D00000212046FEF730FB852301214022237084 +:1036E000C0234FF0C10C04EB010884F82030002304 +:1036F0001E469E46571C04F802C0F0B2023204F87F +:1037000007E021B135F8131009B10133DBB20F0A1C +:10371000A15408F802700232D706F2D135F81370BE +:103720000136002FE6D184F82330831C28466370CD +:10373000FEF726FE84F82400000A84F82500484697 +:1037400019B0BDE8F08F04F140070DF1100A1BF02D +:10375000010F97E807008AE8070000F0D3804023B4 +:103760004FF0010884F84B30BC46F368B8F1050F00 +:103770009AE80700ACE803002CF8022B4FEA12424B +:103780008CF8002059D9981E424630F8021F0029B3 +:1037900042D10DF10F0C072102F00F0E91461209D4 +:1037A0000EF13000392888BF0EF1370001390CF8CE +:1037B000010902D0B9F10F0FEED818AB7E205A18CC +:1037C00002F8580C38460022914206D010F801CB7E +:1037D00002F1010EBCF1200F31D104F13F0C072999 +:1037E00002F1010297BF18AB20205818013198BF91 +:1037F00010F8580C072A0CF80200F0D92046FFF701 +:1038000033FE8146002878D108F10108B8F1640F31 +:10381000AAD14FF0070992E74FF0100C01F0010E0A +:1038200049080EEB4202D30344BF82F4883282F08F +:103830002102BCF1010CF1D1A7E74246A9E772468B +:10384000C2E7216B2046A1EB4511FEF729FF814617 +:1038500000287FF474AF4FF6FF783846FEF738FC47 +:103860000190A16B3046FEF7CBFD814600287FF426 +:1038700066AFE36BE9B2019A4FF00D0CD6F80CE09D +:103880005A734FF00F02DFF8E0A0DA724A1E187385 +:103890000CFB02F284469876D87640451AF8019BD4 +:1038A0000CF1010C18BF3EF8120003EB090B18BF16 +:1038B000013203F809004FEA1029002808BF4046EA +:1038C000BCF10D0F8BF80190E7D1404502D03EF8D6 +:1038D00012200AB941F0400119700123002120464D +:1038E000F370FFF7BBFB814600287FF428AF013D52 +:1038F000B7D11BE04FF0060921E704287FF41FAF82 +:1039000084F84BB01BF0020F20461BBF0C350D2175 +:103910000125B5FBF1F518BF01352946FFF7FCFB82 +:10392000814600287FF40BAF013D8AD1A16B304660 +:10393000FEF766FD814600287FF401AF0146202294 +:10394000E06BFEF7F9F9E36B03CF18605960BA78C2 +:1039500039889A72198194F84B30E26B03F018039E +:1039600013730123F370EAE6F493000810B50446DC +:103970000A463430FEF776FB886004F13800FEF723 +:1039800073FBC2E9040194F8213003F00203D37100 +:103990000023D36110BD000003284B8B04BF8A8A2B +:1039A00043EA0243184670472DE9F04F0B7899B06F +:1039B000044689462F2BD0F800B001D05C2B09D1EA +:1039C0004A461378914601322F2BFAD05C2BF8D05F +:1039D000002301E0DBF81C30A3600023E3619BF8C7 +:1039E0000030042B1ED1A368E3B1DBF82030214660 +:1039F00004A82362DBF824306362DBF82830A3627A +:103A0000FFF75CFC0346002854D1DBF8102002F1DC +:103A10003800FEF727FBC4E9040392F8213003F0D5 +:103A20000203E37199F800301F2B00F235818023E7 +:103A30000021204684F84B3019B0BDE8F04FFEF766 +:103A40002FBE49460B78894601312F2BFAD05C2BCB +:103A5000F8D01F2B8CBF00250425012F2FD11388F0 +:103A60002E2B31D1002322F8173004F140029F425F +:103A70008CBF2E21202101330B2B02F8011BF6D124 +:103A800045F02005204684F84B50FFF7EDFC94F8F4 +:103A90004B30002800F0E78004280BD1990603F092 +:103AA000040240F1DC80002A00F0F6808023002030 +:103AB00084F84B3019B0BDE8F08F0425CDE7022F14 +:103AC00002D153882E2BCAD0911E87BB002322F827 +:103AD0001730002F00F0118132F81300194601331E +:103AE0002028F9D009B92E2801D145F00305901EF0 +:103AF00030F817302E2B01D0013FF9D14FF0203391 +:103B00004FF0000A6364D0462364C4F847300823AA +:103B1000481C32F811600090F6B1202E03D02E2EF2 +:103B20000DD1B84210D045F003050099F0E731F807 +:103B30001730202B01D02E2BC8D1013FC5E79A4565 +:103B400005D20099B9423BD10B2B30D101E00B2BB0 +:103B500027D145F003050B2394F84020E52A04BF44 +:103B6000052284F84020082B04BF4FEA88085FFA3A +:103B700088F808F00C030C2B03D008F00303032B88 +:103B800001D145F00205A8073FF57CAF18F0010F01 +:103B900018BF45F0100518F0040F18BF45F00805D0 +:103BA00070E70099B94202D045F00305D4D84FEA36 +:103BB00088080B234FF0080A00975FFA88F8B4E7EB +:103BC0007F2E15D9304640F25231CDE9022345F01F +:103BD0000203019300F098FC10F0800F0646DDE927 +:103BE000022316D000F07F0646498E5D019D46B344 +:103BF00031464548CDE9012305F0FCFADDE9012312 +:103C0000F8B9A6F1410189B219291ED848F0020875 +:103C100010E0FF28EAD9591E8A4503D345F0030571 +:103C20009A4682E704EB0A01000A0AF1010A019DA3 +:103C300081F8400004EB0A010AF1010A81F84060B2 +:103C400073E745F003055F26F4E7A6F1610189B249 +:103C500019299EBF203E48F00108B6B2EAE7002AC3 +:103C600008BF052026E75A073FF524AFA379DB06F6 +:103C700045D59BF80000042835D1A3682146E27998 +:103C800023622369DBF8100023F0FF031343636210 +:103C9000E36CA362FFF76AFE23680027DA6819F86D +:103CA000010B00283FF409AF40F25231009200F0BE +:103CB0004BFC054608B31F28009A7FF6FEAE2F285E +:103CC0003FF4BFAE5C283FF4BCAE7F2805D8014668 +:103CD0000E4805F08FFA009A78B9FF2F0DD022F820 +:103CE00017500137DBE7216B0BF14C03C1F30801DF +:103CF0001944FFF751FEA060CEE70620DAE6052062 +:103D0000D8E600BF749300086D9300086493000820 +:103D10001FB5CDE9001003A814460391FEF700FA81 +:103D2000002815DB0B4A52F820300BB10021197026 +:103D3000019B0BB10021197042F820302CB10022F8 +:103D400001A96846FEF7C8FE0446204604B010BD2F +:103D50000B24FAE73C3600202DE9F04798B0904656 +:103D600005460191002800F0528102F03F0603A9A8 +:103D700001A83246FEF7B0FE002840F04681039BC2 +:103D80004FF48C60049303F099FA0746002800F082 +:103D90004081039B00F500720199D86004A81A6164 +:103DA000FFF702FE044620B99DF95B30002BB8BF37 +:103DB000062418F01C0F00F0CD80002C4CD0042CF1 +:103DC00040D104A8FFF724FC044600283AD146F06D +:103DD0000806039B1A78042A40F083801869294654 +:103DE0002B60FFF7C3FD039B1E22002118690230E0 +:103DF000FDF7A2FF039C00211A2220692630FDF75F +:103E00009BFF236920221A71246903F091FA01466D +:103E1000012208342046FEF72BF9039B04A81B69F6 +:103E200083F82120FFF764FA044658B9A96801B362 +:103E300002462846FEF718FDAB68039A0446013B8C +:103E40005361B4B1384603F049FA0CB100232B603A +:103E5000204618B0BDE8F0879DF8163013F0110F1A +:103E600040F0848018F0040F40F0C98018F0080F6B +:103E7000AFD1039A31071399936C48BF46F04006BF +:103E8000E964AB641078042872D1069B9DF8171082 +:103E90002B62089B106923F0FF030B4329466B62DA +:103EA000179BAB62FFF762FDDDF80CA00024002237 +:103EB00005F15008BAF8063021464046C5F800A082 +:103EC000AB80002385F8306085F831406C64C5E92B +:103ED0000E234FF40072FDF72FFFB20653D40024D7 +:103EE000B0E703F025FA0146009013980E30FEF774 +:103EF000BFF8139800991630FEF7BAF8039C13998F +:103F00002078FFF749FD202300228046CB7220460F +:103F10001399FEF7D1F8139B002201211A775A77E3 +:103F20009A77DA77039BD970B8F1000FA1D0414698 +:103F300004A8D3F84890FEF797FC0446002881D1E6 +:103F400049460398FEF75CFA039B044608F1FF30EC +:103F5000586176E7002C7FF475AF9DF81630DC06CB +:103F60004FD418F0020F84D0D80782D5072469E710 +:103F7000FFF712FD0023A86001F11C00FEF772F8A4 +:103F80006B61286190E7D5E9046956EA0903A6D078 +:103F9000BAF80AA0A9684FEA4A2AC5E90E69B245EB +:103FA00074EB09031BD300242964002C7FF44AAF6F +:103FB000C6F30803002B92D0039C2046FEF770F84E +:103FC00008B3760A0123414646EAC95682196A6453 +:103FD000607802F0E5FC041E18BF012432E7284691 +:103FE000FEF7C6FAB6EB0A06014669F10009012898 +:103FF00003D9431CD3D10124D6E70224D4E70824F3 +:1040000020E704241EE702241CE704461EE70924D7 +:104010001EE711241CE700002DE9F04F994685B0FA +:104020000023884603A90446C9F800301646FEF767 +:1040300091F8054680BB94F831506DBB94F8303050 +:1040400013F00103009300F0A68004F1500AD4E9B4 +:104050000432D4E90E011B1A62EB0102B34272F181 +:10406000000238BF1E46BEB1D4E90E10C1F30803EA +:10407000002B40F08280039B5A894B0A013A43EAA5 +:10408000C0531A401BD151EA000309D1A06801288E +:104090000DD8022584F83150284605B0BDE8F08FD0 +:1040A000216C20460192FEF763FA019AEFE7431C68 +:1040B00004D10123009D84F83130EDE72064DDF860 +:1040C0000CB0216C5846FDF7EBFF0028E1D0B6F5A7 +:1040D000007F02EB000731D3BBF80A1002EB562039 +:1040E000730A88429BF8010088BF8B1A3A46414602 +:1040F000019302F055FC0028DBD194F93020019B9C +:10410000002A0BDA606CC01B984207D24FF4007291 +:10411000514608EB4020FDF7E9FD019B5F02D9F80D +:104120000030F61BB8443B44C9F80030D4E90E32E5 +:10413000DB1942F10002C4E90E3294E7626CBA4224 +:104140001AD094F93030002B0DDA012351469BF838 +:10415000010002F049FC0028ABD194F8303003F0A4 +:104160007F0384F83030039801233A465146407863 +:1041700002F016FC00289CD16764A16B4046C1F395 +:104180000801C1F500775144B74228BF37463A4687 +:10419000FDF7ACFDC3E707257EE7000070B596B0DC +:1041A0000E460022019002A901A8FEF795FC0446E4 +:1041B000E0B94FF48C6003F081F80546D8B1029B5A +:1041C00000F500720199D86002A81A61FFF7ECFBB4 +:1041D000044640B99DF95330002B0ADB1EB131462D +:1041E00002A8FDF7EDFF284603F078F8204616B048 +:1041F00070BD0624F7E71124F8E7000070B5B8B0E9 +:104200000222019003A901A8FEF766FC044608BB40 +:10421000039B4FF48C60109303F050F80546002880 +:1042200066D0039B00F500720199D86010A81A614E +:10423000FFF7BAFB044650B99DF88B30980655D469 +:10424000190653D49DF84630DA0706D507242846C8 +:1042500003F044F8204638B070BD039B04931878EF +:10426000042814D104A91869FFF780FB069E9DF865 +:104270004630DB0610D410A8FEF776FF044600286F +:10428000E5D156BB0398FEF7DBFB0446DFE71F9939 +:10429000FFF782FB0646EAE7039BDA69B242D5D014 +:1042A00024930021269624A81B78042B01BFDDE966 +:1042B0000823CDE928239DF817308DF89730FEF7B5 +:1042C000EFF904460028C2D124A8FFF741F80446BC +:1042D0000028BBD00428BAD1CDE70246314604A855 +:1042E000FEF7C2FA04460028B1D1CBE70624AEE7B8 +:1042F0001124AFE7F0B5BDB0CDE900106846FDF779 +:104300000FFF022203A901A8FEF7E6FB04460028DE +:1043100041D1039B4FF48C60149302F0CFFF05460C +:10432000002800F0EE80039B00F5007214AE0199A6 +:10433000D8601A613046FFF737FB044640BB9DF852 +:104340009B3013F0A00F40F0D880039B009F1A7899 +:10435000042A68D11B6904AC03F1400C18680833C7 +:1043600053F8041C2246634503C21446F6D150227A +:10437000314628A8FDF7BAFC394628A8FFF714FBF8 +:10438000044600284CD12A9A169B9A4206D008244B +:10439000284602F0A3FF20463DB0F0BD349A209B92 +:1043A0009A42F4D128A8FFF733F904460028EFD148 +:1043B000039B04AF1B6993F801E093F823C09C8C26 +:1043C0003A46083303CAB24243F8080C43F8041CC7 +:1043D0001746F5D1039B28A81B6983F801E0039BCE +:1043E0001A6982F823C01A6982F82440240A82F8E4 +:1043F00025401A691379D9065CBF43F02003137175 +:10440000FEF776FF04460028C2D13046FEF7ACFE28 +:1044100004460028BCD10398FEF712FB0446B7E718 +:104420000428B5D1BEE7239A04AB02F1200C106832 +:10443000083252F8041C1C46624503C42346F6D1D8 +:104440005022314628A8FDF751FC394628A8FFF72D +:10445000ABFA044600284CD12A9A169B9A4296D170 +:10446000349A209B9A4292D128A8FFF7D1F80446AB +:1044700000288DD137990DF11D030DF12D0001F1AB +:104480000D0253F8044B834242F8044BF9D11888CB +:10449000012710809B7893709DF81B30039CDA06EF +:1044A00058BF43F02003CB72E770CB7ADB06ACD564 +:1044B000169A2A9B9A42A8D02078FFF76DFA0146F7 +:1044C0002046FDF7EDFD0146C8B12046FDF798FFF7 +:1044D000044600287FF45CAF039890F86D302E2BD3 +:1044E00093D12A9A00F16C01FDF7E6FD039BDF7082 +:1044F0008BE704287FF44CAFB6E7062448E7022494 +:1045000046E7112447E700007F2810B501D880B2A4 +:1045100010BDB0F5803F13D240F2523399420FD113 +:104520000849002231F8024B93B2844203D103F1CF +:104530008000C0B2ECE70132802AF3D11346F6E7DF +:104540000020E5E7B49600087F280DD940F25233E9 +:10455000994208D1FF2806D800F10040034B80386B +:1045600033F8100070470020704700BFB496000871 +:10457000B0F5803FF0B522D21F4A83B21F49B0F593 +:10458000805F28BF0A46141D34F8042C2146AAB1C6 +:10459000934213D334F8025C2E0AEFB252FA85F537 +:1045A000A84222DA082E09D8DFE806F0050A101220 +:1045B0001416181A1C00801A34F810301846F0BD72 +:1045C000981A00F001001B1A9BB2F7E7103BFBE7BB +:1045D000203BF9E7303BF7E71A3BF5E70833F3E711 +:1045E000503BF1E7A3F5E353EEE70434002ECBD1C3 +:1045F00001EB4702C7E700BF04940008F8950008E4 +:1046000008B5074B074A196801F03D0199605368E6 +:104610000BB190689847BDE8084003F09BB800BF15 +:10462000000002404436002008B5084B196889098B +:1046300001F03D018A019A60054AD3680BB1106907 +:104640009847BDE8084003F085B800BF000002406D +:104650004436002008B5084B1968090C01F03D01EB +:104660000A049A60054A53690BB190699847BDE8FE +:10467000084003F06FB800BF00000240443600203D +:1046800008B5084B1968890D01F03D018A059A604B +:10469000054AD3690BB1106A9847BDE8084003F09A +:1046A00059B800BF000002404436002008B5074B4F +:1046B000074A596801F03D01D960536A0BB1906A0D +:1046C0009847BDE8084003F045B800BF000002402D +:1046D0004436002008B5084B5968890901F03D01AE +:1046E0008A01DA60054AD36A0BB1106B9847BDE8BE +:1046F000084003F02FB800BF0000024044360020FD +:1047000008B5084B5968090C01F03D010A04DA604C +:10471000054A536B0BB1906B9847BDE8084003F016 +:1047200019B800BF000002404436002008B5084B0D +:104730005968890D01F03D018A05DA60054AD36B9D +:104740000BB1106C9847BDE8084003F003B800BFF8 +:10475000000002404436002008B5074B074A19689C +:1047600001F03D019960536C0BB1906C9847BDE826 +:10477000084002F0EFBF00BF0004024044360020B2 +:1047800008B5084B1968890901F03D018A019A6052 +:10479000054AD36C0BB1106D9847BDE8084002F094 +:1047A000D9BF00BF000402404436002008B5084BC2 +:1047B0001968090C01F03D010A049A60054A536D1D +:1047C0000BB1906D9847BDE8084002F0C3BF00BF31 +:1047D000000402404436002008B5084B1968890DD2 +:1047E00001F03D018A059A60054AD36D0BB1106E48 +:1047F0009847BDE8084002F0ADBF00BF000402408A +:104800004436002008B5074B074A596801F03D01BE +:10481000D960536E0BB1906E9847BDE8084002F026 +:1048200099BF00BF000402404436002008B5084B81 +:104830005968890901F03D018A01DA60054AD36EA1 +:104840000BB1106F9847BDE8084002F083BF00BF6E +:10485000000402404436002008B5084B5968090C92 +:1048600001F03D010A04DA60054A536F0BB1906F05 +:104870009847BDE8084002F06DBF00BF0004024049 +:104880004436002008B5084B5968890D01F03D01F8 +:104890008A05DA60054AD36F13B1D2F880009847D1 +:1048A000BDE8084002F056BF000402404436002034 +:1048B00000230C4910B51A460B4C0B6054F823002A +:1048C000026001EB430004334260402BF6D1074AFB +:1048D0004FF0FF339360D360C2F80834C2F80C3451 +:1048E00010BD00BF44360020B4970008000002400D +:1048F0000F28F8B510D9102810D0112811D012287F +:1049000008D10F240720DFF8C8E00126DEF80050A8 +:10491000A04208D9002653E00446F4E70F24002003 +:10492000F1E70724FBE706FA00F73D424AD1264C9F +:104930004FEA001C3D4304EB00160EEBC000CEF81E +:104940000050C0E90123FBB273B12048D0F8D83041 +:1049500043F00103C0F8D830D0F8003143F0010330 +:10496000C0F80031D0F8003117F47F4F0ED017484F +:10497000D0F8D83043F00203C0F8D830D0F8003176 +:1049800043F00203C0F80031D0F8003154F80C00B5 +:10499000036823F01F030360056815F00105FBD1D0 +:1049A00004EB0C033D2493F80CC05F6804FA0CF48C +:1049B0003C6021240560446112B1987B00F0CAFC80 +:1049C0003046F8BD0130A3E7B49700080044025810 +:1049D0004436002010B5302484F31188FFF788FF97 +:1049E000002383F3118810BD10B50446807B00F0CE +:1049F000C7FC01231549627B03FA02F20B6823EA24 +:104A00000203DAB20B6072B9114AD2F8D81021F061 +:104A10000101C2F8D810D2F8001121F00101C2F84A +:104A20000011D2F8002113F47F4F0ED1084BD3F8B8 +:104A3000D82022F00202C3F8D820D3F8002122F0B7 +:104A40000202C3F80021D3F8003110BD4436002023 +:104A50000044025808B5302383F31188FFF7C4FFE0 +:104A6000002383F3118808BD836CC26A8B425068AF +:104A700010B506D95A1E4C0002EB4103B3FBF4F308 +:104A8000184410BD01F001038A0748BF43F0020338 +:104A90004A0748BF43F008030A0748BF43F004032E +:104AA000CA0648BF43F010038A06426B48BF43F072 +:104AB000200313434363704710B5074C204600F0B2 +:104AC000CBFF064B0022C4E91023054BA364054B22 +:104AD000E363054BE36410BDC8360020007000524C +:104AE00000B4C4041C3700201C390020C36A0BB971 +:104AF000104BC3620379012B11D10F4B98420ED199 +:104B00000E4BD3F8D42042F48032C3F8D420D3F82B +:104B1000FC2042F48032C3F8FC20D3F8FC30436C14 +:104B200000221A65DA621A605A605A624FF0FF3248 +:104B30009A637047B4980008C836002000440258B1 +:104B40000379012B1BD0436C00221A65DA621A60CC +:104B50005A605A624FF0FF329A63094B98420ED165 +:104B6000084BD3F8D42022F48032C3F8D420D3F8F1 +:104B7000FC2022F48032C3F8FC20D3F8FC307047CC +:104B8000C83600200044025810B5446C0649FFF7AF +:104B90006BFF6060236842F2107043F003032360F0 +:104BA000BDE8104001F05EBD801A06000129F8B58D +:104BB000466C0B4F09D175680A493D40FFF754FF19 +:104BC000054345F480557560F8BD746806493C405E +:104BD000FFF74AFF044344F480547460F4E700BFD5 +:104BE00000ECFFFF80F0FA0240787D01436C002268 +:104BF0005A601A6070470000426C0129536823F420 +:104C0000404304D0022905D001B95360704743F4F2 +:104C10008043FAE743F40043F7E70000436C41F4B4 +:104C200080519A60D9605A6B1206FCD580229A6333 +:104C30007047000010B541F48851446CA260E160F7 +:104C4000616B11F04502FBD0A26311F0040203D0A6 +:104C5000FFF718FF012010BD616910461960FAE7DF +:104C600010B541F48851446CA260E160616B11F0B1 +:104C70004502FBD0A26311F0050203D0FFF702FF4B +:104C8000012010BD616910461960FAE773B513463B +:104C900004460E46302282F31188426CD26B32B148 +:104CA0004FF0FF314030019301F0E8FC019B606C54 +:104CB00000220265C263C262456B15F4807504D19F +:104CC00085F31188012002B070BD4FF0FF31816380 +:104CD00082F31188012E06D90C21204602B0BDE8CE +:104CE0007040FFF7BDBF1046EDE7000073B5446CA0 +:104CF0000E4600250192616BA1632565E562FFF711 +:104D0000C1FE012E07D9019B2A460C2102B0BDE845 +:104D10007040FFF7A5BF02B070BD000010B541F4B0 +:104D20009851446CA260E160616B11F04502FBD0C8 +:104D3000A26311F03F0203D0FFF7A4FE012010BDD3 +:104D4000216A10461960E1695960A1699960616939 +:104D5000D960F4E72DE9F74304460191006D01A9FC +:104D60001746984602F01EFC064600284AD0626CA0 +:104D70002046DDF804905568C5F3090501356B0040 +:104D8000A56CB5FBF3F54FF47A73B5FBF3F55D4312 +:104D9000556200F027FE50BB636C4FF0FF320125D7 +:104DA0004146C3F8589020461D659A634FF49572AA +:104DB000DA6342F207029F62DA62E36C0A9AFFF753 +:104DC0004FFFA0B9E26C104B11680B407BB929462C +:104DD0002046FFF75BFF054648B92E463A46019943 +:104DE000206D02F017FC304603B0BDE8F0833A4670 +:104DF0000199206D02F00EFCE26C01212046FFF7C4 +:104E000075FFF0E70126EEE708E0FFFD2DE9F74327 +:104E10001F46436C01924FF47A725D6804468846DF +:104E2000C5F3090501356E00856CB5FBF6F5B5FBDC +:104E3000F2F555435D6200F0D5FD20B1012528460D +:104E400003B0BDE8F0837E0201A9206D324602F076 +:104E5000A9FB05460028F1D0636C019AD4F84C9068 +:104E60009A6501221A654FF0FF329A634FF49572EA +:104E7000DA639E62236BDB064B4658BF4FEA482835 +:104E8000012F42461BD912212046FFF7E9FEC0B987 +:104E9000D9F80020104B13409BB9636C42F2930287 +:104EA00039462046DA62E26CFFF7F0FE804640B9F0 +:104EB00032460199206D454602F0ACFBBFE7112157 +:104EC000E2E732460199206D02F0A4FBE26C39461C +:104ED0002046FFF70BFFB2E708E0FFFD2DE9F341A5 +:104EE0001F46436C01924FF47A725D68044688460F +:104EF000C5F3090501356E00856CB5FBF6F5B5FB0C +:104F0000F2F555435D6200F06DFD20B101252846A4 +:104F100002B0BDE8F0817E0201A9206D324602F0A8 +:104F200087FB05460028F1D0636C019A9A6501223F +:104F30001A654FF0FF329A634FF48D72DA639E6206 +:104F4000236BE66CDB06334658BF4FEA4828012F37 +:104F5000424619D919212046FFF782FEB0B93268BE +:104F60000F4B134093B9636C42F2910239462046CD +:104F7000DA62E26CFFF78AFE064638B901993546D7 +:104F8000206D02F091FBC2E71821E4E70199206D42 +:104F900002F08AFBE26C39462046FFF7A7FEB6E72F +:104FA00008E0FFFD12F0030F2DE9F04107460C4623 +:104FB00015461E4617D00E44B44202D10020BDE86B +:104FC000F0810123FA6B21463846FFF71FFF0028C6 +:104FD000F5D128464FF40072F96B05F500750134E0 +:104FE000FCF784FEE8E7BDE8F041FFF70FBF0000E3 +:104FF00012F0030F2DE9F04107460C4615461E46F8 +:1050000017D00E44B44202D10020BDE8F0812946F9 +:105010004FF40072F86B05F50075FCF767FE01238D +:10502000FA6B21463846FFF759FF0028EDD10134CD +:10503000E8E7BDE8F041FFF751BF000000207047EE +:10504000302310B583F311880024436C403021468F +:10505000DC6301F021FB84F3118810BD0268436812 +:105060001143016003B1184770470000024A1368FA +:1050700043F0C0031360704700440040024A1368C5 +:1050800043F0C0031360704700480040024A1368B1 +:1050900043F0C0031360704700780040064BD3F81C +:1050A000E8200243C3F8E820D3F810211043C3F8E6 +:1050B0001001D3F8103170470044025837B5274C1F +:1050C000274D204600F028FD04F114000094002331 +:1050D0004FF40072234900F0C3F94FF400722249E3 +:1050E00004F138000094214B00F03CFA204BC4E955 +:1050F0001735204C204600F00FFD04F114000094F9 +:1051000000234FF400721C4900F0AAF94FF400721A +:105110001A4904F138000094194B00F023FA194B96 +:10512000C4E91735184C204600F0F6FC04F11400D1 +:1051300000234FF400721549009400F091F9144BCC +:105140004FF40072134904F13800009400F00AFA99 +:10515000114BC4E9173503B030BD00BF2039002022 +:1051600000E1F505643A0020644000206D5000081D +:10517000004400408C390020643C00206442002040 +:105180007D50000800480040F8390020643E0020AF +:105190008D500008644400200078004038B5264D4A +:1051A0000446037C002918BF0D46012B06D1234B72 +:1051B000984230D14FF40030FFF770FF2A68236E19 +:1051C000E16D03EB5203A566B3FBF2F36A681004CA +:1051D00042BF23F0070003F0070343EA4003CB601C +:1051E000AB6843F040034B60EB6843F001038B6016 +:1051F00042F4967343F001030B604FF0FF330B62F0 +:10520000510505D512F0102211D0B2F1805F10D0F7 +:1052100084F8643038BD0A4B984205D0094B984257 +:10522000CCD14FF08040C7E74FF48020C4E77F2304 +:10523000EEE73F23ECE700BFBC98000820390020D0 +:105240008C390020F83900202DE9F047C66D05465D +:105250003768F469210734621AD014F0080118BFC6 +:105260004FF48071E20748BF41F02001A3074FF0DF +:10527000300348BF41F04001600748BF41F0800162 +:1052800083F31188281DFFF7E9FE002383F31188BB +:10529000E2050AD5302383F311884FF48061281D7D +:1052A000FFF7DCFE002383F311884FF030094FF045 +:1052B000000A14F0200838D13B0616D54FF030090B +:1052C00005F1380A200610D589F31188504600F000 +:1052D0007DF9002836DA0821281DFFF7BFFE27F0E8 +:1052E00080033360002383F31188790614D56206A6 +:1052F00012D5302383F31188D5E913239A4208D1BC +:105300002B6C33B127F040071021281DFFF7A6FEB4 +:105310003760002383F31188E30618D5AA6E13695A +:10532000ABB15069BDE8F047184789F31188736A3B +:10533000284695F86410194000F008FC8AF311889B +:10534000F469B6E7B06288F31188F469BAE7BDE89A +:10535000F0870000090100F16043012203F5614379 +:10536000C9B283F8001300F01F039A4043099B0061 +:1053700003F1604303F56143C3F880211A6070476D +:1053800000F01F0301229A40430900F160409B0096 +:1053900000F5614003F1604303F56143C3F88020E9 +:1053A000C3F88021002380F800337047F8B5154614 +:1053B000826804460B46AA4200D28568A169266924 +:1053C000761AB5420BD218462A46FCF78FFCA36921 +:1053D0002B44A3612846A3685B1BA360F8BD0CD9CE +:1053E000AF1B18463246FCF781FC3A46E168304470 +:1053F000FCF77CFCE3683B44EBE718462A46FCF7E5 +:1054000075FCE368E5E7000083689342F7B504465E +:10541000154600D28568D4E90460361AB5420BD22D +:105420002A46FCF763FC63692B4463612846A36842 +:105430005B1BA36003B0F0BD0DD93246AF1B0191D9 +:10544000FCF754FC01993A46E0683144FCF74EFC05 +:10545000E3683B44E9E72A46FCF748FCE368E4E7F5 +:1054600010B50A440024C361029B8460C1600261DC +:105470000362C0E90000C0E9051110BD08B5D0E91C +:105480000532934201D1826882B98268013282601A +:105490005A1C426119700021D0E904329A4224BF9B +:1054A000C368436101F012F9002008BD4FF0FF30DE +:1054B000FBE7000070B5302304460E4683F31188E5 +:1054C000A568A5B1A368A269013BA360531CA361B1 +:1054D00015782269934224BFE368A361E3690BB1A5 +:1054E00020469847002383F31188284607E0314679 +:1054F000204601F0DBF80028E2DA85F3118870BD60 +:105500002DE9F74F04460E4617469846D0F81C90F2 +:105510004FF0300A8AF311884FF0000B154665B141 +:105520002A4631462046FFF741FF034660B941460F +:10553000204601F0BBF80028F1D0002383F3118846 +:10554000781B03B0BDE8F08FB9F1000F03D00190D4 +:105550002046C847019B8BF31188ED1A1E448AF33D +:105560001188DCE7C160C361009B82600362C0E90F +:1055700005111144C0E9000001617047F8B5044607 +:105580000D461646302383F31188A768A7B1A36898 +:10559000013BA36063695A1C62611D70D4E9043247 +:1055A0009A4224BFE3686361E3690BB120469847E0 +:1055B000002080F3118807E03146204601F076F89C +:1055C0000028E2DA87F31188F8BD0000D0E905234E +:1055D00010B59A4201D182687AB9826800210132FD +:1055E00082605A1C82611C7803699A4224BFC36896 +:1055F000836101F06BF8204610BD4FF0FF30FBE7F0 +:105600002DE9F74F04460E4617469846D0F81C90F1 +:105610004FF0300A8AF311884FF0000B154665B140 +:105620002A4631462046FFF7EFFE034660B9414661 +:10563000204601F03BF80028F1D0002383F31188C5 +:10564000781B03B0BDE8F08FB9F1000F03D00190D3 +:105650002046C847019B8BF31188ED1A1E448AF33C +:105660001188DCE70379052B05BF836A0020012040 +:105670004B6004BF4FF400730B60704770B55D1E44 +:10568000866A04460D44B54205D9436B43F0800356 +:105690004363012070BD06250571FFF783FC0523D8 +:1056A0002371F7E770B55D1E866A04460D44B54266 +:1056B00005D9436B43F080034363012070BD072588 +:1056C0000571FFF795FC05232371F7E738B50579D8 +:1056D0000446052D05D108230371FFF7AFFC2571A2 +:1056E00038BD0120FCE700000323F0B5037185B04D +:1056F0000446FFF749FA002220461146FFF78EFACA +:105700004FF4D57203AB08212046FFF7A9FA0246F1 +:10571000B8B901232363039BC3F30323012B09D1EE +:1057200003AB37212046FFF79BFA18B9A44B039A25 +:105730001340ABB120460125FFF758FA022323712D +:1057400037E103AB002237212046FFF789FA28B959 +:105750009B4A039B1A40002A00F0A7800223236380 +:10576000236B03F00F03022B40F0A9806425954EB4 +:1057700042F2107000F076FF03AB32460121204662 +:10578000FFF758FA0028D5D1039B002B80F29380B5 +:105790005A0003D5236B43F010032363002204F166 +:1057A000080302212046FFF7B9FA02460028C1D1BA +:1057B00004F1380303212046FFF752FA0028B9D13B +:1057C00004F11805A26B092120462B46FFF7A6FA23 +:1057D0000028AFD102ABA26B07212046FFF740FAA9 +:1057E00006460028A6D1236B03F00F03022B40F0DE +:1057F0008F807E227F21284603F01AFA012840F28A +:105800008780E76B42F2107000F02CFF08234FF402 +:105810000072394620460096FFF79CFA002889D18D +:10582000384603F053FA236BA06203F00F03022BF8 +:1058300072D103AB644A06212046FFF711FA002813 +:1058400071D15F49039B1940B1FA81F149092046A2 +:10585000FFF7ACF902AB4FF4007210212046FFF7BE +:10586000FFF9054600287FF465AF554E029B334291 +:105870007FF460AF236B13F00E0F03F00F0273D0B1 +:10588000022A7FF457AFE36A1978012900F0948067 +:10589000022900F09380002900F089804B4F2046B8 +:1058A000FFF7AAF903AB3A4676E011462046226399 +:1058B000FFF7B4F954E7013D7FF45AAF3AE7444D9E +:1058C0006426444A3E4F012B18BF154603AB002205 +:1058D00037212046FFF7C4F900287FF42BAF039B44 +:1058E0003B427FF427AF03AB2A4629212046FFF72E +:1058F000A1F900287FF41EAF039B002BFFF648AFF1 +:10590000013E3FF417AF42F2107000F0ABFEDDE74E +:10591000284603F0AFF986E77E227F212846E66B12 +:1059200003F086F908B9002191E7002340223146AF +:10593000204600930623FFF70DFA0028F3D1B38920 +:105940005BBA9B07EFD5244B40223146204600939B +:105950000623FFF7FFF90028E5D1317C01F00F01A4 +:105960000F3918BF012172E7E36A1978F9B10129EB +:105970007FF4E0AE2046FFF73FF903ABA26B37217F +:105980002046FFF76DF900287FF4D4AE039B334225 +:105990007FF4D0AE03AB022206212046FFF760F968 +:1059A00000287FF4C7AE039B33427FF4C3AE0523C8 +:1059B0002371284605B0F0BD084F70E7084F6EE729 +:1059C00008E0FFFD0080FFC00001B9030000B7033D +:1059D0000080FF5000001080F1FFFF800001B7033E +:1059E0000002B70337B504460C4D01ABA26B0D2185 +:1059F0002046FFF735F978B9019B2B420BD1C3F351 +:105A00004323042B08D0053B022B04D84FF47A70B3 +:105A100000F028FEE9E7012003B030BD08E0FFFDFB +:105A200070B53023054683F3118803790024022BD7 +:105A300003D184F31188204670BD0423037184F3DD +:105A400011880226FFF7CEFF04462846FFF7CEF85E +:105A50002E71F0E7FFF730B8044B036001230371A8 +:105A600000234363C0E90A33704700BFD49800089D +:105A700010B53023044683F31188C162FFF736F86E +:105A800002230020237180F3118810BD10B530234C +:105A9000044683F31188FFF753F800230122E362E1 +:105AA000227183F3118810BD0268436811430160BD +:105AB00003B11847704700001430FFF721BD000004 +:105AC0004FF0FF331430FFF71BBD00003830FFF7F5 +:105AD00097BD00004FF0FF333830FFF791BD000055 +:105AE0001430FFF7E7BC00004FF0FF311430FFF730 +:105AF000E1BC00003830FFF741BD00004FF0FF323D +:105B00003830FFF73BBD0000012914BF6FF01300D0 +:105B100000207047FFF7D2BA044B036000234360B4 +:105B2000C0E9023301230374704700BFF8980008EE +:105B300010B53023044683F31188FFF72FFB0223AF +:105B40000020237480F3118810BD000038B5C369AC +:105B500004460D461BB904210844FFF7A5FF29465A +:105B600004F11400FFF78AFC002806DA201D4FF428 +:105B70000061BDE83840FFF797BF38BD0268436851 +:105B80001143016003B118477047000013B5406B23 +:105B900000F58054D4F8A4381A681178042914D177 +:105BA000017C022911D11979012312898B401342FA +:105BB0000BD101A94C3002F069FFD4F8A448024689 +:105BC000019B2179206800F0DFF902B010BD0000D0 +:105BD000143002F0EBBE00004FF0FF33143002F03F +:105BE000E5BE00004C3002F0BDBF00004FF0FF33B7 +:105BF0004C3002F0B7BF0000143002F0B9BE000014 +:105C00004FF0FF31143002F0B3BE00004C3002F010 +:105C100089BF00004FF0FF324C3002F083BF00001C +:105C20000020704710B500F58054D4F8A4381A68E5 +:105C30001178042917D1017C022914D15979012343 +:105C400052898B4013420ED1143002F04BFE0246B3 +:105C500048B1D4F8A4484FF4407361792068BDE896 +:105C6000104000F07FB910BD406BFFF7DBBF0000B4 +:105C7000704700007FB5124B0125042604460360DF +:105C80000023057400F1840243602946C0E9023311 +:105C90000C4B0290143001934FF44073009602F0C5 +:105CA000FDFD094B04F69442294604F14C00029490 +:105CB000CDE900634FF4407302F0C4FE04B070BD40 +:105CC00020990008695C00088D5B00080A68302391 +:105CD00083F311880B790B3342F823004B7913338C +:105CE00042F823008B7913B10B3342F8230000F5FF +:105CF0008053C3F8A41802230374002080F3118892 +:105D00007047000038B5037F044613B190F8543053 +:105D1000ABB90125201D0221FFF730FF04F114006B +:105D20006FF00101257700F0DDFC04F14C0084F8F0 +:105D300054506FF00101BDE8384000F0D3BC38BDCD +:105D400010B5012104460430FFF718FF0023237724 +:105D500084F8543010BD000038B5044600251430D6 +:105D600002F0B4FD04F14C00257702F083FE201D03 +:105D700084F854500121FFF701FF2046BDE8384068 +:105D8000FFF750BF90F8803003F06003202B06D15E +:105D900090F881200023212A03D81F2A06D800204A +:105DA0007047222AFBD1C0E91D3303E0034A426752 +:105DB00007228267C3670120704700BF442200208A +:105DC00037B500F58055D5F8A4381A68117804293C +:105DD0001AD1017C022917D11979012312898B402C +:105DE000134211D100F14C04204602F003FF58B1D8 +:105DF00001A9204602F04AFED5F8A4480246019BBC +:105E00002179206800F0C0F803B030BD01F10B0328 +:105E1000F0B550F8236085B004460D46FEB130233E +:105E200083F3118804EB8507301D0821FFF7A6FED8 +:105E3000FB6806F14C005B691B681BB1019002F026 +:105E400033FE019803A902F021FE024648B1039BEC +:105E50002946204600F098F8002383F3118805B006 +:105E6000F0BDFB685A691268002AF5D01B8A013B15 +:105E70001340F1D104F18002EAE70000133138B594 +:105E800050F82140ECB1302383F3118804F580539E +:105E9000D3F8A4281368527903EB8203DB689B696B +:105EA0005D6845B104216018FFF768FE294604F1DA +:105EB000140002F021FD2046FFF7B4FE002383F317 +:105EC000118838BD7047000001F042BD0123402217 +:105ED000002110B5044600F8303BFBF72DFF0023EE +:105EE000C4E9013310BD000010B53023044683F32C +:105EF00011882422416000210C30FBF71DFF204651 +:105F000001F048FD02230020237080F3118810BDAA +:105F100070B500EB8103054650690E461446DA6001 +:105F200018B110220021FBF707FFA06918B1102259 +:105F30000021FBF701FF31462846BDE8704001F023 +:105F40002FBE000083682022002103F0011310B54A +:105F5000044683601030FBF7EFFE2046BDE810409A +:105F600001F0AABEF0B4012500EB810447898D4001 +:105F7000E4683D43A469458123600023A260636017 +:105F8000F0BC01F0C7BE0000F0B4012500EB8104B5 +:105F900007898D40E4683D436469058123600023DF +:105FA000A2606360F0BC01F03DBF000070B5022349 +:105FB00000250446242203702946C0F888500C307E +:105FC00040F8045CFBF7B8FE204684F8705001F0FE +:105FD0007BFD63681B6823B129462046BDE87040FD +:105FE000184770BD0378052B10B504460AD080F819 +:105FF0008C300523037043681B680BB1042198475C +:106000000023A36010BD00000178052906D190F897 +:106010008C20436802701B6803B11847704700006A +:1060200070B590F87030044613B1002380F87030DA +:1060300004F18002204601F063FE63689B68B3B9F7 +:1060400094F8803013F0600535D00021204602F02E +:1060500055F90021204602F045F963681B6813B129 +:10606000062120469847062384F8703070BD2046EC +:1060700098470028E4D0B4F88630A26F9A4288BFCF +:10608000A36794F98030A56F002B4FF0300380F2A6 +:106090000381002D00F0F280092284F8702083F340 +:1060A000118800212046D4E91D23FFF76DFF00234E +:1060B00083F31188DAE794F8812003F07F0343EA41 +:1060C000022340F20232934200F0C58021D8B3F59A +:1060D000807F48D00DD8012B3FD0022B00F0938059 +:1060E000002BB2D104F1880262670222A267E36743 +:1060F000C1E7B3F5817F00F09B80B3F5407FA4D169 +:1061000094F88230012BA0D1B4F8883043F0020318 +:1061100032E0B3F5006F4DD017D8B3F5A06F31D092 +:10612000A3F5C063012B90D86368204694F88220C1 +:106130005E6894F88310B4F88430B047002884D0A7 +:10614000436863670368A3671AE0B3F5106F36D03E +:1061500040F6024293427FF478AF5C4B63670223C0 +:10616000A3670023C3E794F88230012B7FF46DAF5F +:10617000B4F8883023F00203A4F88830C4E91D5530 +:10618000E56778E7B4F88030B3F5A06F0ED194F8E6 +:106190008230204684F88A3001F0F4FC63681B6882 +:1061A00013B1012120469847032323700023C4E93B +:1061B0001D339CE704F18B0363670123C3E7237856 +:1061C000042B10D1302383F311882046FFF7BAFE49 +:1061D00085F311880321636884F88B5021701B6854 +:1061E0000BB12046984794F88230002BDED084F81B +:1061F0008B300423237063681B68002BD6D00221E8 +:1062000020469847D2E794F8843020461D0603F0D4 +:106210000F010AD501F066FD012804D002287FF4A1 +:1062200014AF2B4B9AE72B4B98E701F04DFDF3E7AA +:1062300094F88230002B7FF408AF94F8843013F088 +:106240000F01B3D01A06204602D502F06FF8ADE771 +:1062500002F060F8AAE794F88230002B7FF4F5AEE4 +:1062600094F8843013F00F01A0D01B06204602D50D +:1062700002F044F89AE702F035F897E7142284F820 +:10628000702083F311882B462A4629462046FFF7C3 +:1062900069FE85F31188E9E65DB1152284F8702066 +:1062A00083F3118800212046D4E91D23FFF75AFE0D +:1062B000FDE60B2284F8702083F311882B462A46D2 +:1062C00029462046FFF760FEE3E700BF509900082B +:1062D000489900084C99000838B590F87030044689 +:1062E000002B3ED0063BDAB20F2A34D80F2B32D81F +:1062F000DFE803F0373131082232313131313131C9 +:1063000031313737856FB0F886309D4214D2C3687B +:106310001B8AB5FBF3F203FB12556DB9302383F3EF +:1063200011882B462A462946FFF72EFE85F3118851 +:106330000A2384F870300EE0142384F87030302380 +:1063400083F31188002320461A461946FFF70AFEF8 +:10635000002383F3118838BDC36F03B1984700232E +:10636000E7E70021204601F0C9FF0021204601F0A7 +:10637000B9FF63681B6813B10621204698470623BE +:10638000D7E7000010B590F870300446142B29D0E0 +:1063900017D8062B05D001D81BB110BD093B022B25 +:1063A000FBD80021204601F0A9FF0021204601F082 +:1063B00099FF63681B6813B106212046984706239E +:1063C00019E0152BE9D10B2380F87030302383F3CB +:1063D000118800231A461946FFF7D6FD002383F3E0 +:1063E0001188DAE7C3689B695B68002BD5D1C36F5E +:1063F00003B19847002384F87030CEE70023826809 +:1064000080F8243083691B6899689142FBD25A68EE +:10641000036042601060586070470000002382688B +:1064200080F8243083691B6899689142FBD85A68C8 +:1064300003604260106058607047000008B508466D +:10644000302383F3118891F82430032B05D0042BDB +:106450000DD02BB983F3118808BD8B6A00221A6016 +:106460004FF0FF338362FFF7C9FF0023F2E7D1E962 +:10647000003213605A60F3E7034610B51B68984278 +:1064800003D09C688A689442F8D25A680B604A60CC +:106490001160596010BD0000FFF7B0BF064BD9680E +:1064A00081F824001868026853601A600122D860DD +:1064B00080F82420F9F7A6BF684600200C4B30B5C1 +:1064C000DD684B1C87B004460FD02B46094A68464E +:1064D00000F09CF92046FFF7E1FF009B13B16846EE +:1064E00000F09EF9A86A07B030BDFFF7D7FFF9E7C3 +:1064F000684600203D640008044B1A68DB68906819 +:106500009B68984294BF0020012070476846002095 +:10651000094B10B51C68D868226853601A600122C4 +:10652000DC6084F82420FFF779FF01462046BDE8AF +:106530001040F9F767BF00BF68460020044B1A6897 +:10654000DB6892689B689A4201D9FFF7E1BF704708 +:106550006846002038B50123084C0025237065608B +:1065600002F0E2FB02F008FC0549064802F0DEFCFE +:106570000223237085F3118838BD00BF1049002025 +:10658000589900086846002000F080B9034A516815 +:1065900053685B1A9842FBD8704700BF001000E0B8 +:1065A0008B604B630023CA6100F128020B63022356 +:1065B0000A618B840123886181F8263001F1100380 +:1065C000C26A4A611360C36201F12C030846CB62C0 +:1065D00070470000D0E90131026841F8183CA1F190 +:1065E0009C033839CB60036941F8243C436941F886 +:1065F000203C034B41F8043CC3680248FFF7D0BF7E +:106600001D0400086846002008B5FFF7E3FFBDE859 +:106610000840FFF741BF000038B50E4BDC6804F1BD +:106620002C05A062E06AA8420FD194F826303BB94D +:1066300094F825309B0702BFD4E9043213605A60F6 +:106640000F20BDE83840FFF729BF0368E362FFF77A +:1066500023FFE7E768460020302383F31188FFF724 +:10666000DBBF000008B50146302383F31188082002 +:10667000FFF724FF002383F3118808BD054BDB6877 +:1066800021B1036098620320FFF718BF4FF0FF307D +:10669000704700BF6846002003682BB100220260EB +:1066A00018469962FFF7F8BE70470000064BDB689A +:1066B00039B1426818605A60136043600420FFF7E4 +:1066C000FDBE4FF0FF3070476846002003689842D7 +:1066D00006D01A680260506018469962FFF7DCBE67 +:1066E0007047000038B504460D462068844200D14A +:1066F00038BD036823605C608562FFF7CDFEF4E778 +:10670000036810B59C68A2420CD85C688A600B6074 +:106710004C602160596099688A1A9A604FF0FF3383 +:10672000836010BD121B1B68ECE700000A2938BF0C +:106730000A2170B504460D460A26601902F0EEFAE9 +:1067400002F0D6FA041BA54203D8751C04462E4657 +:10675000F3E70A2E04D90120BDE8704002F0AEBC78 +:1067600070BD0000F8B5144B0D460A2A4FF00A0719 +:10677000D96103F11001826038BF0A2241601969B2 +:106780001446016048601861A81802F0B7FA02F0D8 +:10679000AFFA431B0646A34206D37C1C28192746A2 +:1067A000354602F0BBFAF2E70A2F04D90120BDE812 +:1067B000F84002F083BCF8BD68460020F8B50646F4 +:1067C0000D4602F095FA0F4A134653F8107F9F4288 +:1067D00006D12A4601463046BDE8F840FFF7C2BF61 +:1067E000D169BB68441A2C1928BF2C46A34202D990 +:1067F0002946FFF79BFF224631460348BDE8F84093 +:10680000FFF77EBF6846002078460020C0E90323DA +:10681000002310B45DF8044B4361FFF7CFBF0000C5 +:1068200010B5194C236998420DD08168D0E9003227 +:1068300013605A609A680A449A60002303604FF01C +:10684000FF33A36110BD0268234643F8102F536045 +:106850000022026022699A4203D1BDE8104002F092 +:1068600057BA936881680B44936002F041FA226939 +:10687000E1699268441AA242E4D91144BDE810408B +:10688000091AFFF753BF00BF684600202DE9F04703 +:10689000DFF8BC8008F110072C4ED8F8105002F039 +:1068A00027FAD8F81C40AA68031B9A423ED8144421 +:1068B0004FF00009D5E90032C8F81C4013605A6057 +:1068C000C5F80090D8F81030B34201D102F020FA98 +:1068D00089F31188D5E9033128469847302383F39B +:1068E00011886B69002BD8D002F002FA6A69A0EB1C +:1068F000040982464A450DD2022002F0DFFB002245 +:10690000D8F81030B34208D151462846BDE8F047C8 +:10691000FFF728BF121A2244F2E712EB09092946B1 +:10692000384638BF4A46FFF7EBFEB5E7D8F81030D7 +:10693000B34208D01444C8F81C00211AA960BDE86D +:10694000F047FFF7F3BEBDE8F08700BF78460020B0 +:106950006846002038B502F0CBF9054AD2E908456F +:10696000031B181945F10001C2E9080138BD00BF39 +:106970006846002010B560B9074804790368053CF3 +:106980009B6818BF0124984708B144F004042046CE +:1069900010BD0124FBE700BFC8360020FFF7EABFA7 +:1069A0002DE9F047884617469A460446B0B90D4E81 +:1069B0003579052D05D003240DE0013D15F0FF05C7 +:1069C0000ED03268534639463046D2F814904246CB +:1069D000C8470028F1D12046BDE8F0870424FAE733 +:1069E0000124F8E7C83600202DE9F047884617460D +:1069F0009A460446B0B90D4E3579052D05D00324CD +:106A00000DE0013D15F0FF050ED0326853463946C2 +:106A10003046D2F818904246C8470028F1D12046A7 +:106A2000BDE8F0870424FAE70124F8E7C83600201F +:106A300037B50C46154670B951B101290BD107483D +:106A4000694603681B6A984710B9019B04462B608E +:106A5000204603B030BD0424FAE700BFC83600204A +:106A600000207047FEE70000704700004FF0FF3045 +:106A7000704700004B6843608B688360CB68C360DD +:106A80000B6943614B6903628B6943620B68036066 +:106A90007047000008B53C4B40F2FF713B48D3F80B +:106AA00088200A43C3F88820D3F8882022F4FF62A4 +:106AB00022F00702C3F88820D3F88820D3F8E0201A +:106AC0000A43C3F8E020D3F808210A43C3F8082199 +:106AD0002F4AD3F808311146FFF7CCFF00F580604C +:106AE00002F11C01FFF7C6FF00F5806002F13801DA +:106AF000FFF7C0FF00F5806002F15401FFF7BAFF15 +:106B000000F5806002F17001FFF7B4FF00F58060CE +:106B100002F18C01FFF7AEFF00F5806002F1A801E1 +:106B2000FFF7A8FF00F5806002F1C401FFF7A2FFA4 +:106B300000F5806002F1E001FFF79CFF00F5806046 +:106B400002F1FC01FFF796FF02F58C7100F5806001 +:106B5000FFF790FF01F082FC0E4BD3F8902242F039 +:106B60000102C3F89022D3F8942242F00102C3F844 +:106B700094220522C3F898204FF06052C3F89C205D +:106B8000054AC3F8A02008BD00440258000002587E +:106B90006C99000800ED00E01F00080308B501F043 +:106BA00069FEFFF7D7FC104BD3F8DC2042F040021F +:106BB000C3F8DC20D3F8042122F04002C3F80421FA +:106BC000D3F80431094B1A6842F008021A601A68B7 +:106BD00042F004021A6000F06FFD00F033FBBDE8E4 +:106BE000084000F0B5B800BF004402580018024841 +:106BF00001207047002070477047000002290CD028 +:106C0000032904D00129074818BF00207047032A30 +:106C100005D8054800EBC2007047044870470020C3 +:106C2000704700BF709B000854220020249B00087E +:106C300070B59AB005460846144601A900F0C2F89E +:106C400001A8FBF771F8431C0022C6B25B00104696 +:106C5000C5E9003423700323023404F8013C01AB7E +:106C6000D1B202348E4201D81AB070BD13F8011BA4 +:106C7000013204F8010C04F8021CF1E708B53023D6 +:106C800083F311880348FFF79BF8002383F31188EF +:106C900008BD00BF1849002090F8803003F01F02A3 +:106CA000012A07D190F881200B2A03D10023C0E9E3 +:106CB0001D3315E003F06003202B08D1B0F88430B9 +:106CC0002BB990F88120212A03D81F2A04D8FFF776 +:106CD00059B8222AEBD0FAE7034A426707228267B3 +:106CE000C3670120704700BF4B22002007B505296C +:106CF00017D8DFE801F0191603191920302383F3A0 +:106D00001188104A01210190FFF702F90198022130 +:106D10000D4AFFF7FDF80D48FFF71EF8002383F337 +:106D2000118803B05DF804FB302383F31188074812 +:106D3000FEF7E8FFF2E7302383F311880348FEF7FC +:106D4000FFFFEBE7C49A0008E89A00081849002002 +:106D500038B50C4D0C4C2A460C4904F10800FFF7DD +:106D600067FF05F1CA0204F110000949FFF760FF4F +:106D700005F5CA7204F118000649BDE83840FFF76E +:106D800057BF00BFF061002054220020A09A0008E5 +:106D9000AD9A0008B89A000870B5044608460D463A +:106DA000FAF7C2FFC6B22046013403780BB9184681 +:106DB00070BD32462946FAF7A3FF0028F3D101201F +:106DC000F6E700002DE9F04705460C46FAF7ACFF60 +:106DD0002B49C6B22846FFF7DFFF08B10A36F6B2E4 +:106DE00028492846FFF7D8FF08B11036F6B2632EBF +:106DF0000BD8DFF88C80DFF88C90234FDFF894A05D +:106E00002E7846B92670BDE8F08729462046BDE8B1 +:106E1000F04702F0FDB9252E2ED107224146284623 +:106E2000FAF76EFF70B9194B224603F1100153F8BF +:106E3000040B8B4242F8040BF9D11B78073511344F +:106E40001370DDE7082249462846FAF759FF98B93A +:106E5000A21C0F4B197802320909C95D02F8041C03 +:106E600013F8011B01F00F015345C95D02F8031C23 +:106E7000F0D118340835C3E7013504F8016BBFE7DA +:106E8000909B0008B89A0008AA9B0008989B0008ED +:106E900000E8F11F0CE8F11FBFF34F8F044B1A6994 +:106EA0005107FCD1D3F810215207F8D1704700BF29 +:106EB0000020005208B50D4B1B78ABB9FFF7ECFF73 +:106EC0000B4BDA68D10704D50A4A5A6002F18832BE +:106ED0005A60D3F80C21D20706D5064AC3F804211C +:106EE00002F18832C3F8042108BD00BF4E640020BF +:106EF000002000522301674508B5114B1B78F3B9F8 +:106F0000104B1A69510703D5DA6842F04002DA6083 +:106F1000D3F81021520705D5D3F80C2142F04002D6 +:106F2000C3F80C21FFF7B8FF064BDA6842F0010204 +:106F3000DA60D3F80C2142F00102C3F80C2108BD3D +:106F40004E640020002000520F289ABF00F5806098 +:106F500040040020704700004FF4003070470000EC +:106F6000102070470F2808B50BD8FFF7EDFF00F58C +:106F700000330268013204D104308342F9D1012088 +:106F800008BD0020FCE700000F2838B505463FD8B3 +:106F9000FFF782FF1F4CFFF78DFF4FF0FF330728ED +:106FA0006361C4F814311DD82361FFF775FF030234 +:106FB00043F02403E360E36843F08003E360236964 +:106FC0005A07FCD42846FFF767FFFFF7BDFF4FF4D1 +:106FD000003100F0ABFA2846FFF78EFFBDE83840DD +:106FE000FFF7C0BFC4F81031FFF756FFA0F1080348 +:106FF0001B0243F02403C4F80C31D4F80C3143F0E5 +:107000008003C4F80C31D4F810315B07FBD4D9E706 +:10701000002038BD002000522DE9F84F05460C46EF +:10702000104645EA0203DE0602D00020BDE8F88FD4 +:1070300020F01F00DFF8BCB0DFF8BCA0FFF73AFF7C +:1070400004EB0008444503D10120FFF755FFEDE7AD +:1070500020222946204602F0A3F810B9203520341A +:10706000F0E72B4605F120021F68791CDDD10433BF +:107070009A42F9D105F178431B481C4EB3F5801FA5 +:107080001B4B38BF184603F1F80332BFD946D1462F +:107090001E46FFF701FF0760A5EB040C336804F1FF +:1070A0001C0143F002033360231FD9F8007017F06E +:1070B0000507FAD153F8042F8B424CF80320F4D182 +:1070C000BFF34F8FFFF7E8FE4FF0FF33202221463A +:1070D00003602846336823F00203336002F060F84F +:1070E0000028BBD03846B0E7142100520C200052D3 +:1070F00014200052102000521021005210B5084CEC +:10710000237828B11BB9FFF7D5FE0123237010BDEA +:10711000002BFCD02070BDE81040FFF7EDBE00BF93 +:107120004E6400202DE9F04F0D4685B0814658B1E0 +:1071300011F00D0614BF2022082211F0080301935C +:1071400004D0431E034269D0002435E0002E37D01E +:1071500009F11F0121F01F094FF00108314F05F01F +:107160000403DFF8CCA005EA080BBBF1000F32D016 +:107170007869C0072FD408F101080C37B8F1060F61 +:10718000F3D19EB9284D4946A819019201F016FE87 +:107190000446002839D12036019AA02EF3D1494661 +:1071A00001F00CFE044600282FD1019A49461F48E1 +:1071B00001F004FE044660BB204605B0BDE8F08F38 +:1071C0000029C9D101462846029201F0F7FD044684 +:1071D000D8B9029AC0E713B178694107CBD5AC079B +:1071E00002D578698007C6D5019911B17869010780 +:1071F000C1D549460AEB4810CDE9022301F0DEFD76 +:107200000446DDE902230028B5D04A460021204685 +:1072100001E04A460021FAF78FFDCDE70246002E35 +:1072200096D199E7BC9B0008906400205064002030 +:10723000706400200021FFF775BF00000121FFF7F7 +:1072400071BF000070B5144D0124144E40F2FF329E +:1072500000210120FAF770FD06EB441001342A6981 +:1072600055F80C1F01F096FD062CF5D137254FF48B +:10727000C0542046FFF7E2FF014628B122460848E5 +:10728000BDE8704001F086BDC4EBC404013D4FEA87 +:10729000D404EED170BD00BFBC9B00087064002018 +:1072A000506400200421FFF73DBF00004843FFF772 +:1072B000C1BF000008B101F0F3BD7047B0F5805FB9 +:1072C00010B5044607D8FFF7EDFF28B92046BDE802 +:1072D0001040FFF7AFBF002010BD0000FFF7EABF6E +:1072E00070B5AAB140EA010313F01F030FD1094C96 +:1072F0000144A5686D0706D52568A84203D36668D2 +:107300003544A94204D903330C34122BF1D10022A5 +:10731000104670BDBC9B000808B501F0D7FE034ABB +:10732000D2E90032C01842EB010108BD30650020EF +:10733000434BD3E900232DE9F34113437CD0FFF7FE +:10734000EBFF404A00230027F9F776F806460D4682 +:107350003D4A0023F9F770F80023144630462946C9 +:10736000394AF9F769F84FF461613C23ADF80170CF +:10737000B4FBF1F5B4FBF3F601FB154103FB164634 +:107380004624B1FBF3F1314BF6B28DF80040984240 +:107390003CD84FF0640C4FF4C87EA30704F26C7223 +:1073A00025D1B2FBFCF30CFB132313BBB2FBFEF3A2 +:1073B0000EFB1322B2FA82F35B0903F26D18621C12 +:1073C0008045D2B217D90FB18DF800400022204C71 +:1073D0004FF00C0C17460CFB0343D4B2013213F8E8 +:1073E00004C084450CD8A0EB0C000127F5E700236E +:1073F000E3E70123E1E7A0EB080014460127CCE70F +:107400000FB18DF80140431C8DF802309DF801004A +:10741000431C9DF800005038400640EA43509DF858 +:10742000023040EA034040EA560040EAC52040EA04 +:10743000411002B0BDE8F0814FF40410F9E700BF3D +:107440003065002040420F008051010090230B0066 +:10745000049C00080244074BD2B210B5904200D100 +:1074600010BD441C00B253F8200041F8040BE0B2F8 +:10747000F4E700BF504000580E4B30B51C6F240499 +:1074800005D41C6F1C671C6F44F400441C670A4C35 +:1074900002442368D2B243F480732360074B9042C6 +:1074A00000D130BD441C51F8045B00B243F82050B9 +:1074B000E0B2F4E700440258004802585040005837 +:1074C00007B5012201A90020FFF7C4FF019803B00E +:1074D0005DF804FB13B50446FFF7F2FFA04205D0A8 +:1074E000012201A900200194FFF7C6FF02B010BDE0 +:1074F00010B56424013C4FF47A70FFF7B3F814F030 +:10750000FF04F7D1084B4FF0807214249A6103F501 +:10751000805308229A61013C4FF47A70FFF7A2F879 +:1075200014F0FF04F7D110BD000002580144BFF36E +:107530004F8F064B884204D3BFF34F8FBFF36F8F3B +:107540007047C3F85C022030F4E700BF00ED00E0B4 +:107550000144BFF34F8F064B884204D3BFF34F8FD4 +:10756000BFF36F8F7047C3F870022030F4E700BF9D +:1075700000ED00E070B5054616460C4601201021CE +:10758000FFF794FE286046733CB1204636B1FFF702 +:1075900089FE2B68186000B19C6070BDFFF74EFE3D +:1075A000F7E70000F8B50F461546044648B905F15F +:1075B0001F010126386821F01F01FFF7B7FF304691 +:1075C000F8BD427B29463868FFF78AFE0646002848 +:1075D000EDD13B686360A368AB4210D213B1206861 +:1075E000FFF768FE637B28462BB1FFF75BFE206048 +:1075F00020B9A060E3E7FFF721FEF8E7A560206867 +:1076000005F11F01012621F01F013860FFF78EFFF1 +:107610002673D4E710B5044640B10068884205D10E +:10762000606808B1FAF762FB0023237310BD000005 +:10763000F8B50F461446054648B904F11F01012666 +:10764000386821F01F01FFF783FF3046F8BD427B09 +:1076500021463868FFF744FE06460028EDD1AB68A6 +:10766000A34210D213B12868FFF724FE6B7B20469B +:107670002BB1FFF717FE286020B9A860E5E7FFF7F8 +:10768000DDFDF8E7AC60396819B122462868FAF7E1 +:107690002DFB286804F11F01012621F01F0138602D +:1076A000FFF756FF2E73D0E720B103688B4204BF6B +:1076B0000023037370470000034B1A681AB9034A8A +:1076C000D2F8D0241A607047386500200040025874 +:1076D00008B5FFF7F1FF024B1868C0F3806008BDE2 +:1076E00038650020EFF30983054968334A6B22F0BF +:1076F00001024A6383F30988002383F311887047EA +:1077000000EF00E0302080F3118862B60D4B0E4A86 +:10771000D96821F4E0610904090C0A430B49DA60D5 +:10772000D3F8FC2042F08072C3F8FC20084AC2F86B +:10773000B01F116841F0010111602022DA7783F84F +:107740002200704700ED00E00003FA0555CEACC5FD +:10775000001000E0302310B583F311880E4B5B68F6 +:1077600013F4006314D0F1EE103AEFF309844FF0F4 +:107770008073683CE361094BDB6B236684F3098803 +:10778000FEF7BAFE10B1064BA36110BD054BFBE737 +:1077900083F31188F9E700BF00ED00E000EF00E09F +:1077A0002F0400083204000870B5BFF34F8FBFF3F9 +:1077B0006F8F1A4A0021C2F85012BFF34F8FBFF3E8 +:1077C0006F8F536943F400335361BFF34F8FBFF39F +:1077D0006F8FC2F88410BFF34F8FD2F8803043F61A +:1077E000E074C3F3C900C3F34E335B0103EA04063C +:1077F000014646EA81750139C2F86052F9D2203B50 +:1078000013F1200FF2D1BFF34F8F536943F480334C +:107810005361BFF34F8FBFF36F8F70BD00ED00E07A +:10782000FEE70000214B2248224A70B5904237D330 +:10783000214BC11EDA1C121A22F003028B4238BF00 +:1078400000220021FAF778FA1C4A0023C2F884309B +:10785000BFF34F8FD2F8803043F6E074C3F3C90012 +:10786000C3F34E335B0103EA0406014646EA817521 +:107870000139C2F86C52F9D2203B13F1200FF2D13A +:10788000BFF34F8FBFF36F8FBFF34F8FBFF36F8F78 +:107890000023C2F85032BFF34F8FBFF36F8F70BD1C +:1078A00053F8041B40F8041BC0E700BF0C9D000800 +:1078B00034670020346700203467002000ED00E0CA +:1078C000074BD3F8D81021EA0001C3F8D810D3F839 +:1078D000002122EA0002C3F80021D3F800317047EA +:1078E0000044025870B5D0E9244300224FF0FF3520 +:1078F0009E6804EB42135101D3F80009002805DA11 +:10790000D3F8000940F08040C3F80009D3F8000B19 +:10791000002805DAD3F8000B40F08040C3F8000BD4 +:10792000013263189642C3F80859C3F8085BE0D2E5 +:107930004FF00113C4F81C3870BD0000890141F0FC +:107940002001016103699B06FCD41220FEF71EBED4 +:1079500010B50A4C2046FEF7B9FA094BC4F890302E +:10796000084BC4F89430084C2046FEF7AFFA074B9A +:10797000C4F89030064BC4F8943010BD3C6500202C +:1079800000000840409C0008D8650020000004402A +:107990004C9C000870B503780546012B5CD1434B25 +:1079A000D0F89040984258D1414B0E216520D3F831 +:1079B000D82042F00062C3F8D820D3F8002142F06A +:1079C0000062C3F80021D3F80021D3F8802042F0F0 +:1079D0000062C3F88020D3F8802022F00062C3F850 +:1079E0008020D3F88030FDF7B5FC324BE360324B9A +:1079F000C4F800380023D5F89060C4F8003EC023D6 +:107A000023604FF40413A3633369002BFCDA0123D2 +:107A10000C203361FEF7BAFD3369DB07FCD412207A +:107A2000FEF7B4FD3369002BFCDA00262846A66079 +:107A3000FFF758FF6B68C4F81068DB68C4F8146877 +:107A4000C4F81C6883BB1D4BA3614FF0FF33636117 +:107A5000A36843F00103A36070BD194B9842C9D1DC +:107A6000134B4FF08060D3F8D82042F00072C3F877 +:107A7000D820D3F8002142F00072C3F80021D3F8D7 +:107A80000021D3F8802042F00072C3F88020D3F8A0 +:107A9000802022F00072C3F88020D3F88030FFF7F6 +:107AA0000FFF0E214D209EE7064BCDE73C650020E1 +:107AB000004402584014004003002002003C30C043 +:107AC000D8650020083C30C0F8B5D0F89040054695 +:107AD00000214FF000662046FFF730FFD5F89410E4 +:107AE00000234FF001128F684FF0FF30C4F8343894 +:107AF000C4F81C2804EB431201339F42C2F800690A +:107B0000C2F8006BC2F80809C2F8080BF2D20B6881 +:107B1000D5F89020C5F89830636210231361166978 +:107B200016F01006FBD11220FEF730FDD4F8003815 +:107B300023F4FE63C4F80038A36943F4402343F000 +:107B40001003A3610923C4F81038C4F814380B4B90 +:107B5000EB604FF0C043C4F8103B094BC4F8003B46 +:107B6000C4F81069C4F80039D5F8983003F1100250 +:107B700043F48013C5F89820A362F8BD1C9C00084C +:107B800040800010D0F8902090F88A10D2F8003889 +:107B900023F4FE6343EA0113C2F800387047000083 +:107BA0002DE9F84300EB8103D0F890500C46804655 +:107BB000DA680FFA81F94801166806F00306731EA9 +:107BC000022B05EB41134FF0000194BFB604384E71 +:107BD000C3F8101B4FF0010104F1100398BF06F128 +:107BE000805601FA03F3916998BF06F50046002913 +:107BF0003AD0578A04F15801374349016F50D5F8FC +:107C00001C180B430021C5F81C382B180127C3F89A +:107C10001019A7405369611E9BB3138A928B9B086E +:107C2000012A88BF5343D8F89820981842EA0343A2 +:107C300001F140022146C8F89800284605EB82026F +:107C40005360FFF77BFE08EB8900C3681B8A43EA99 +:107C5000845348341E4364012E51D5F81C381F4309 +:107C6000C5F81C78BDE8F88305EB4917D7F8001B69 +:107C700021F40041C7F8001BD5F81C1821EA0303C2 +:107C8000C0E704F13F030B4A2846214605EB830376 +:107C90005A60FFF753FE05EB4910D0F8003923F482 +:107CA0000043C0F80039D5F81C3823EA0707D7E7A6 +:107CB0000080001000040002D0F894201268C0F880 +:107CC0009820FFF70FBE00005831D0F890304901DE +:107CD0005B5813F4004004D013F4001F0CBF0220C3 +:107CE000012070474831D0F8903049015B5813F4B7 +:107CF000004004D013F4001F0CBF02200120704785 +:107D000000EB8101CB68196A0B6813604B68536004 +:107D10007047000000EB810330B5DD68AA69136885 +:107D2000D36019B9402B84BF402313606B8A146859 +:107D3000D0F890201C4402EB4110013C09B2B4FB86 +:107D4000F3F46343033323F0030343EAC44343F0F0 +:107D5000C043C0F8103B2B6803F00303012B0ED186 +:107D6000D2F8083802EB411013F4807FD0F8003BC2 +:107D700014BF43F0805343F00053C0F8003B02EBC4 +:107D80004112D2F8003B43F00443C2F8003B30BD3F +:107D90002DE9F041D0F8906005460C4606EB411302 +:107DA000D3F8087B3A07C3F8087B08D5D6F814380F +:107DB0001B0704D500EB8103DB685B689847FA0773 +:107DC0001FD5D6F81438DB071BD505EB8403D9681B +:107DD000CCB98B69488A5A68B2FBF0F600FB1622D0 +:107DE0008AB91868DA6890420DD2121AC3E90024E1 +:107DF000302383F3118821462846FFF78BFF84F355 +:107E00001188BDE8F081012303FA04F26B8923EAAB +:107E100002036B81CB68002BF3D021462846BDE8D6 +:107E2000F041184700EB81034A0170B5DD68D0F8D6 +:107E300090306C692668E66056BB1A444FF4002007 +:107E4000C2F810092A6802F00302012A0AB20ED110 +:107E5000D3F8080803EB421410F4807FD4F800092B +:107E600014BF40F0805040F00050C4F8000903EB0C +:107E70004212D2F8000940F00440C2F80009012281 +:107E8000D3F8340802FA01F10143C3F8341870BD85 +:107E900019B9402E84BF4020206020681A442E8AE1 +:107EA0008419013CB4FBF6F440EAC44040F00050B1 +:107EB000C6E700002DE9F843D0F8906005460C466F +:107EC0004F0106EB4113D3F8088918F0010FC3F8EE +:107ED00008891CD0D6F81038DB0718D500EB8103D1 +:107EE000D3F80CC0DCF81430D3F800E0DA6896451B +:107EF00030D2A2EB0E024FF000091A60C3F80490D2 +:107F0000302383F31188FFF78DFF89F3118818F070 +:107F1000800F1DD0D6F834380126A640334217D042 +:107F200005EB84030134D5F89050D3F80CC0E4B2CB +:107F30002F44DCF8142005EB0434D2F800E051683B +:107F4000714514D3D5F8343823EA0606C5F83468E9 +:107F5000BDE8F883012303FA01F2038923EA02034F +:107F60000381DCF80830002BD1D09847CFE7AEEB87 +:107F70000103BCF81000834228BF0346D7F8180954 +:107F800080B2B3EB800FE3D89068A0F1040959F8F0 +:107F9000048FC4F80080A0EB09089844B8F1040FDE +:107FA000F5D818440B4490605360C8E72DE9F84FAA +:107FB000D0F8905004466E69AB691E4016F48058A4 +:107FC0006E6103D0BDE8F84FFDF7F0BF002E12DA66 +:107FD000D5F8003E9B0705D0D5F8003E23F00303FB +:107FE000C5F8003ED5F80438204623F00103C5F853 +:107FF0000438FEF709F8370505D52046FFF772FC6F +:108000002046FDF7EFFFB0040CD5D5F8083813F083 +:10801000060FEB6823F470530CBF43F4105343F482 +:10802000A053EB6031071BD56368DB681BB9AB69F4 +:1080300023F00803AB612378052B0CD1D5F8003E63 +:108040009A0705D0D5F8003E23F00303C5F8003E9B +:108050002046FDF7D9FF6368DB680BB120469847DF +:10806000F30200F1BA80B70226D5D4F89090002729 +:108070004FF0010A09EB4712D2F8003B03F440230A +:10808000B3F5802F11D1D2F8003B002B0DDA6289B5 +:108090000AFA07F322EA0303638104EB8703DB6830 +:1080A000DB6813B13946204698470137D4F894303D +:1080B000FFB29B689F42DDD9F00619D5D4F8900035 +:1080C000026AC2F30A1702F00F0302F4F012B2F5CB +:1080D000802F00F0CA80B2F5402F09D104EB830352 +:1080E000002200F58050DB681B6A974240F0B080A8 +:1080F0003003D5F8185835D5E90303D500212046BB +:10810000FFF746FEAA0303D501212046FFF740FEF4 +:108110006B0303D502212046FFF73AFE2F0303D558 +:1081200003212046FFF734FEE80203D50421204650 +:10813000FFF72EFEA90203D505212046FFF728FEF2 +:108140006A0203D506212046FFF722FE2B0203D543 +:1081500007212046FFF71CFEEF0103D5082120462A +:10816000FFF716FE700340F1A780E90703D5002151 +:108170002046FFF79FFEAA0703D501212046FFF7FF +:1081800099FE6B0703D502212046FFF793FE2F07C8 +:1081900003D503212046FFF78DFEEE0603D504210B +:1081A0002046FFF787FEA80603D505212046FFF7E6 +:1081B00081FE690603D506212046FFF77BFE2A06CD +:1081C00003D507212046FFF775FEEB0574D5204641 +:1081D0000821BDE8F84FFFF76DBED4F890904FF03E +:1081E000000B4FF0010AD4F894305FFA8BF79B68CC +:1081F0009F423FF638AF09EB4713D3F8002902F44A +:108200004022B2F5802F20D1D3F80029002A1CDAB1 +:10821000D3F8002942F09042C3F80029D3F800298E +:10822000002AFBDB3946D4F89000FFF787FB228950 +:108230000AFA07F322EA0303238104EB8703DB68CE +:108240009B6813B13946204698470BF1010BCAE7EA +:10825000910701D1D0F80080072A02F101029CBFEA +:1082600003F8018B4FEA18283FE704EB830300F57E +:108270008050DA68D2F818C0DCF80820DCE9001C6D +:10828000A1EB0C0C00218F4208D1DB689B699A6836 +:108290003A449A605A683A445A6029E711F0030F49 +:1082A00001D1D0F800808C4501F1010184BF02F8B2 +:1082B000018B4FEA1828E6E7BDE8F88F08B50348B8 +:1082C000FFF774FEBDE80840FFF744BA3C650020A4 +:1082D00008B50348FFF76AFEBDE80840FFF73ABA61 +:1082E000D8650020D0F8903003EB4111D1F8003B65 +:1082F00043F40013C1F8003B70470000D0F8903001 +:1083000003EB4111D1F8003943F40013C1F80039EF +:1083100070470000D0F8903003EB4111D1F8003BDA +:1083200023F40013C1F8003B70470000D0F89030F0 +:1083300003EB4111D1F8003923F40013C1F80039DF +:1083400070470000064BD3F8DC200243C3F8DC2062 +:10835000D3F804211043C3F80401D3F80431704763 +:108360000044025808B53C4B4FF0FF31D3F8802051 +:1083700062F00042C3F88020D3F8802002F000426F +:10838000C3F88020D3F88020D3F88420C3F8841069 +:10839000D3F884200022C3F88420D3F88400D86F57 +:1083A00040F0FF4040F4FF0040F4DF4040F07F0029 +:1083B000D867D86F20F0FF4020F4FF0020F4DF40A2 +:1083C00020F07F00D867D86FD3F888006FEA40505C +:1083D0006FEA5050C3F88800D3F88800C0F30A0051 +:1083E000C3F88800D3F88800D3F89000C3F8901041 +:1083F000D3F89000C3F89020D3F89000D3F89400FD +:10840000C3F89410D3F89400C3F89420D3F89400E0 +:10841000D3F89800C3F89810D3F89800C3F89820C0 +:10842000D3F89800D3F88C00C3F88C10D3F88C00E4 +:10843000C3F88C20D3F88C00D3F89C00C3F89C10B0 +:10844000D3F89C10C3F89C20D3F89C30FCF730FA8A +:10845000BDE8084000F0D6B90044025808B5012232 +:10846000534BC3F80821534BD3F8F42042F00202D7 +:10847000C3F8F420D3F81C2142F00202C3F81C21F7 +:108480000222D3F81C314C4BDA605A689104FCD5B7 +:108490004A4A1A6001229A60494ADA6000221A6147 +:1084A0004FF440429A61444B9A699204FCD51A6891 +:1084B00042F480721A603F4B1A6F12F4407F04D06E +:1084C0004FF480321A6700221A671A6842F00102DC +:1084D0001A60384B1A685007FCD500221A611A69D5 +:1084E00012F03802FBD1012119604FF08041596030 +:1084F0005A67344ADA62344A1A611A6842F480329E +:108500001A602C4B1A689103FCD51A6842F4805209 +:108510001A601A689204FCD52C4A2D499A620022EE +:108520005A63196301F57C01DA6301F5E771996318 +:108530005A64284A1A64284ADA621A6842F0A85231 +:108540001A601C4B1A6802F02852B2F1285FF9D168 +:1085500048229A614FF48862DA6140221A621F4A07 +:10856000DA641F4A1A651F4A5A651F4A9A65322300 +:108570001E4A1360136803F00F03022BFAD10D4A51 +:10858000136943F003031361136903F03803182BD5 +:10859000FAD14FF00050FFF7D5FE4FF08040FFF7C3 +:1085A000D1FE4FF00040BDE80840FFF7CBBE00BF52 +:1085B00000800051004402580048025800C000F0FA +:1085C000020000010000FF010088900832206000D6 +:1085D00063020901470E0508DD0BBF0120000020E2 +:1085E000000001100910E0000001011000200052FD +:1085F0004FF0B04208B5D2F8883003F00103C2F85A +:10860000883023B1044A13680BB150689847BDE81D +:108610000840FFF79FB800BFB46600204FF0B0429B +:1086200008B5D2F8883003F00203C2F8883023B1CD +:10863000044A93680BB1D0689847BDE80840FFF73B +:1086400089B800BFB46600204FF0B04208B5D2F838 +:10865000883003F00403C2F8883023B1044A136958 +:108660000BB150699847BDE80840FFF773B800BFE9 +:10867000B46600204FF0B04208B5D2F8883003F05D +:108680000803C2F8883023B1044A93690BB1D0695A +:108690009847BDE80840FFF75DB800BFB46600200A +:1086A0004FF0B04208B5D2F8883003F01003C2F89A +:1086B000883023B1044A136A0BB1506A9847BDE869 +:1086C0000840FFF747B800BFB46600204FF0B04342 +:1086D00010B5D3F8884004F47872C3F88820A30654 +:1086E00004D5124A936A0BB1D06A9847600604D544 +:1086F0000E4A136B0BB1506B9847210604D50B4AF9 +:10870000936B0BB1D06B9847E20504D5074A136C05 +:108710000BB1506C9847A30504D5044A936C0BB178 +:10872000D06C9847BDE81040FFF714B8B46600203D +:108730004FF0B04310B5D3F8884004F47C42C3F83E +:108740008820620504D5164A136D0BB1506D984709 +:10875000230504D5124A936D0BB1D06D9847E00400 +:1087600004D50F4A136E0BB1506E9847A10404D57F +:108770000B4A936E0BB1D06E9847620404D5084A39 +:10878000136F0BB1506F9847230404D5044A936FBD +:108790000BB1D06F9847BDE81040FEF7DBBF00BFBC +:1087A000B466002008B50348FCF74AFCBDE8084061 +:1087B000FEF7D0BFC836002008B50348FCF744FDDB +:1087C000BDE80840FEF7C6BF2039002008B50348C1 +:1087D000FCF73AFDBDE80840FEF7BCBF8C3900202D +:1087E00008B50348FCF730FDBDE80840FEF7B2BF0E +:1087F000F839002008B500F0BDFCBDE80840FEF7E0 +:10880000A9BF0000062108B50846FCF7A3FD062114 +:108810000720FCF79FFD06210820FCF79BFD0621A1 +:108820000920FCF797FD06210A20FCF793FD06219D +:108830001720FCF78FFD06212820FCF78BFD09216E +:108840007A20FCF787FD09213120FCF783FD072101 +:108850003220FCF77FFD0C212620FCF77BFD0C214C +:108860002720FCF777FD0C215220BDE80840FCF7DB +:1088700071BD000008B5FFF775FD00F043FCFDF782 +:1088800049F9FDF7E7F8FDF71FFBFDF7F1F9FEF7F2 +:10889000B3F9BDE8084000F029BA000030B5043350 +:1088A000039C0172002104FB0325C160C0E906534B +:1088B000049B0363059BC0E90000C0E90422C0E9F2 +:1088C0000842C0E90A11436330BD00000022416A3A +:1088D000C260C0E90411C0E90A226FF00101FDF78E +:1088E00001BF0000D0E90432934201D1C2680AB945 +:1088F000181D704700207047036919600021C26885 +:108900000132C260C269134482699342036124BF89 +:10891000436A0361FDF7DABE38B504460D46E368E5 +:108920003BB162690020131D1268A3621344E36225 +:1089300007E0237A33B929462046FDF7B7FE002821 +:10894000EDDA38BD6FF00100FBE70000C368C269D3 +:10895000013BC3604369134482699342436124BF6E +:10896000436A436100238362036B03B11847704776 +:1089700070B53023044683F31188866A3EB9FFF749 +:10898000CBFF054618B186F31188284670BDA36A4F +:10899000E26A13F8015B9342A36202D32046FFF719 +:1089A000D5FF002383F31188EFE700002DE9F84F8E +:1089B00004460E46174698464FF0300989F3118851 +:1089C0000025AA46D4F828B0BBF1000F09D14146D2 +:1089D0002046FFF7A1FF20B18BF311882846BDE8A0 +:1089E000F88FD4E90A12A7EB050B521A934528BF5A +:1089F0009346BBF1400F1BD9334601F1400251F8B9 +:108A0000040B914243F8040BF9D1A36A4036403578 +:108A10004033A362D4E90A239A4202D32046FFF7E7 +:108A200095FF8AF31188BD42D8D289F31188C9E72E +:108A300030465A46F9F75AF9A36A5E445D445B44EE +:108A4000A362E7E710B5029C0433017203FB042123 +:108A5000C460C0E906130023C0E90A33039B036323 +:108A6000049BC0E90000C0E90422C0E90842436356 +:108A700010BD0000026A6FF00101C260426AC0E9E5 +:108A800004220022C0E90A22FDF72CBED0E904230B +:108A90009A4201D1C26822B9184650F8043B0B60D3 +:108AA000704700231846FAE7C3680021C269013302 +:108AB000C3604369134482699342436124BF436A9C +:108AC0004361FDF703BE000038B504460D46E36878 +:108AD0003BB1236900201A1DA262E2691344E362DC +:108AE00007E0237A33B929462046FDF7DFFD002849 +:108AF000EDDA38BD6FF00100FBE700000369196093 +:108B0000C268013AC260C269134482699342036138 +:108B100024BF436A036100238362036B03B11847D8 +:108B20007047000070B530230D460446114683F3AC +:108B30001188866A2EB9FFF7C7FF10B186F3118836 +:108B400070BDA36A1D70A36AE26A01339342A362F7 +:108B500004D3E16920460439FFF7D0FF002080F3F9 +:108B60001188EDE72DE9F84F04460D4690469946E9 +:108B70004FF0300A8AF311880026B346A76A4FB92E +:108B800049462046FFF7A0FF20B187F31188304601 +:108B9000BDE8F88FD4E90A073A1AA8EB060797420E +:108BA00028BF1746402F1BD905F1400355F8042B69 +:108BB0009D4240F8042BF9D1A36A40364033A362AA +:108BC000D4E90A239A4204D3E16920460439FFF725 +:108BD00095FF8BF311884645D9D28AF31188CDE7EA +:108BE00029463A46F9F782F8A36A3D443E443B449D +:108BF000A362E5E7D0E904239A4217D1C3689BB189 +:108C0000836A8BB1043B9B1A0ED01360C368013B8F +:108C1000C360C3691A4483699A42026124BF436AEC +:108C20000361002383620123184670470023FBE79A +:108C300001F01F03F0B502F01F0456095A1C01236E +:108C4000B6EB511F50F8265003FA02F34FEA5117C2 +:108C500003F1FF333DBF50F82720C4F1200013403B +:108C600003EA05003BBF03FA00F225FA04F0E040F6 +:108C70001043F0BD70B57E227F210546FFF7D8FF77 +:108C800018B1012819D0002070BD3E224921284684 +:108C9000FFF7CEFF2F22044631212846FFF7C8FFF9 +:108CA000064601345022023653212846B440FFF7CD +:108CB000BFFF093804FA00F0E6E7302245212846D4 +:108CC000FFF7B6FF01308002DEE7000090F8D630F3 +:108CD00090F8D7201B0403EB026390F8D42090F89F +:108CE000D500134403EB00207047000000F018BAD1 +:108CF000014B586A704700BF000C0040034B002234 +:108D000058631A610222DA60704700BF000C00400D +:108D1000014B0022DA607047000C0040014B5863A1 +:108D2000704700BF000C0040024B034A1A60034A20 +:108D30005A6070478C6600203867002000000220CF +:108D4000074B494210B55C68201A08401968821A1E +:108D50008A4203D3A24201D85A6010BD0020FCE72A +:108D60008C66002008B5302383F31188FFF7E8FFF5 +:108D7000002383F3118808BD0448054B03600023DA +:108D8000C0E901330C3000F017B900BF9466002031 +:108D9000658D0008CB1D083A23F00703591A521AB3 +:108DA00010B4D2080024C0E9004384600C301C6079 +:108DB0005A605DF8044B00F0FFB800002DE9F74F52 +:108DC000364FCD1D8846002818BF0746082A4FEAAF +:108DD000D50538BF082207F10C003C1D91460190D3 +:108DE00000F02CF9019809F10701C9F1000E2246A3 +:108DF000246864B900F02CF93B68CBB308224946DB +:108E0000E8009847044698B340E9027830E004EB64 +:108E1000010CD4F804A00CEA0E0C0AF10106ACF126 +:108E2000080304EBC6069E42E1D9A6EB0C0CB5EB99 +:108E3000EC0F4FEAEC0BDAD89C421DD204F1080289 +:108E4000AB45A3EB02024FEAE202626009D9691C5A +:108E5000ED4303EBC1025D445560256843F8315092 +:108E600022601C46C3F8048044F8087B00F0F0F848 +:108E7000204603B0BDE8F08FAA45216802D11160F9 +:108E80002346EEE7013504EBC50344F8351003F142 +:108E90000801761AF6105E601360F1E79466002010 +:108EA00073B50446A0F1080550F8080C54F8043CCA +:108EB000061D0C3007330190DB0844F8043C00F039 +:108EC000BDF8334601989E421A6801D0AB4228D2C1 +:108ED0000AB1954225D244F8082C54F8042C1D60A0 +:108EE000013254F8081C05EBC206B14206D14E68A7 +:108EF000324444F8042C0A6844F8082C5E68711C5B +:108F000003EBC1018D4207D154F8042C01323244E5 +:108F10005A6054F8082C1A6002B0BDE8704000F0A6 +:108F200097B81346CFE70000FEE7000070B51E4B70 +:108F30000025044686B058600E4605638163FEF73F +:108F4000E1FB04F12803A5606563C4E90A3304F179 +:108F50001003C4E904334FF0FF33C4E90044C4E90B +:108F60000635FFF7C5FE2B46024604F13C012046BC +:108F7000C4E9082380230D4A6567FDF711FB736878 +:108F8000E0600B4A03620123009280F824306846B7 +:108F9000F26801923269CDE90223064BCDE904352E +:108FA000FDF732FB06B070BD10490020609C000840 +:108FB000589C0008298F00080023C0E90000836046 +:108FC0000361704770B51C4B05468468DE685CB36E +:108FD000B44213D103690133036170BDA36094F8F7 +:108FE000243083B1062B15D1A06A2146D4E9003282 +:108FF00013605A60FDF740FAA36A9C68B368A268E0 +:109000009A42EBD306E0D4E90032204613605A605E +:10901000FDF742FA28463146FDF72EFAB5620620E2 +:10902000BDE87040FDF73ABA036986600133036119 +:10903000336BC3603063D0E76846002008B5302347 +:1090400083F31188FFF7BEFF002383F3118808BD67 +:10905000194BD96883688B4210B520D1302383F334 +:1090600011880269013A0261B2B90468C368A0427A +:109070000B631ED04A6B9BB901238A6003610368AE +:109080001A68026050601A6B8360C26018631846E9 +:10909000FDF702FAFDF752FA002383F3118810BDA1 +:1090A0001C68A34203D0A468A24238BF2246DB68F2 +:1090B000E1E78260F0E700BF68460020024A536B98 +:1090C00018435063704700BF6846002038B5EFF37F +:1090D00011859DB9EFF30584C4F30804302334B13E +:1090E00083F31188FDF736FC85F3118838BD83F3CF +:1090F0001188FDF72FFC84F3118838BDBDE8384096 +:10910000FDF728BC0023054A19460133102BC2E99C +:10911000001102F10802F8D1704700BFB4660020C8 +:10912000114BD3F8E82042F00802C3F8E820D3F846 +:10913000102142F00802C3F810210C4AD3F8103174 +:10914000D36B43F00803D363C722094B9A624FF0F5 +:10915000FF32DA6200229A615A63DA605A600122B1 +:109160005A611A60704700BF004402580010005C4A +:10917000000C0040094A08B51169D3680B40D9B208 +:109180009B076FEA0101116107D5302383F3118832 +:10919000FDF7FAF9002383F3118808BD000C0040A5 +:1091A00010B501390244904201D1002005E0037856 +:1091B00011F8014FA34201D0181B10BD0130F2E796 +:1091C000884210B501EB020402D98442234607D835 +:1091D000431EA14208D011F8012B03F8012FF8E734 +:1091E000024401468A4200D110BD13F8014D02F835 +:1091F000014DF7E7C9B2034610F8012B1AB18A42B4 +:10920000F9D118467047002918BF0023F9E700007C +:10921000034611F8012B03F8012B002AF9D17047FE +:1092200010B50139034632B111F8014F03F8014B73 +:10923000013A002CF7D11A440021934200D110BD0D +:1092400003F8011BF9E700004D4435002D2D0A00FD +:109250002F6172647570696C6F742E6162696E0043 +:109260002F6172647570696C6F742D7665726966B2 +:10927000792E6162696E002F6172647570696C6F1E +:10928000742D666C6173682E6162696E002F617265 +:10929000647570696C6F742D666C61736865642E9B +:1092A0006162696E00000000000000000000000024 +:1092B000050F0008A10F000851110008D90F000880 +:1092C000990F00080000000000000000010F0008D6 +:1092D000AD0F000889110008FD0E0008090F0008F5 +:1092E00053544D333248373F3F3F0053544D333290 +:1092F000483733782F3732780053544D333248375C +:1093000034332F3735332F373530000001105A00F2 +:109310000310590001205800032056002F000000C0 +:109320005375636365737366756C6C79206D6F75C7 +:109330006E746564205344436172642028736C6FBB +:1093400077646F776E3D2575290A0000EB769045AE +:1093500058464154202020004641543332202020DA +:10936000000000002A3A3C3E7C223F7F002B2C3B31 +:109370003D5B5D00435545414141414345454549BC +:10938000494941414592924F4F4F5555594F554F7D +:109390009C4F9E9F41494F55A5A5A6A7A8A9AAAB3A +:1093A000ACADAEAFB0B1B2B3B4414141B8B9BABBE4 +:1093B000BCBDBEBFC0C1C2C3C4C54141C8C9CACB80 +:1093C000CCCDCECFD1D145454549494949D9DADB44 +:1093D000DCDD49DF4FE14F4F4F4FE6E8E85555558B +:1093E0005959EEEFF0F1F2F3F4F5F6F7F8F9FAFB6C +:1093F000FCFDFEFF01030507090E10121416181CD0 +:109400001E00000061001A03E0001703F8000703C4 +:10941000FF0001007801000130013201060139012D +:1094200010014A012E017901060180014D0043021D +:109430008101820182018401840186018701870103 +:1094400089018A018B018B018D018E018F019001B1 +:109450009101910193019401F60196019701980100 +:1094600098013D029B019C019D0120029F01A001EA +:10947000A001A201A201A401A401A601A701A701C4 +:10948000A901AA01AB01AC01AC01AE01AF01AF0172 +:10949000B101B201B301B301B501B501B701B80122 +:1094A000B801BA01BB01BC01BC01BE01F701C0019A +:1094B000C101C201C301C401C501C401C701C80182 +:1094C000C701CA01CB01CA01CD011001DD010100B4 +:1094D0008E01DE011201F3010300F101F401F40138 +:1094E000F8012801220212013A020900652C3B0210 +:1094F0003B023D02662C3F0240024102410246020D +:109500000A015302400081018601550289018A0146 +:1095100058028F015A0290015C025D025E025F02F6 +:1095200093016102620294016402650266026702AD +:10953000970196016A02622C6C026D026E029C0118 +:10954000700271029D01730274029F01760277021C +:10955000780279027A027B027C02642C7E027F020E +:10956000A60181028202A901840285028602870285 +:10957000AE014402B101B20145028D028E028F029A +:1095800090029102B7017B030300FD03FE03FF037A +:10959000AC0304008603880389038A03B103110323 +:1095A000C2030200A303A303C4030803CC03030004 +:1095B0008C038E038F03D8031801F2030A00F9030A +:1095C000F303F403F503F603F703F703F903FA03D0 +:1095D000FA033004200350041007600422018A04B7 +:1095E0003601C1040E01CF040100C004D0044401BF +:1095F00061052604000000007D1D0100632C001E93 +:109600009601A01E5A01001F0806101F0606201F03 +:109610000806301F0806401F0606511F0700591F85 +:10962000521F5B1F541F5D1F561F5F1F601F0806E0 +:10963000701F0E00BA1FBB1FC81FC91FCA1FCB1F38 +:10964000DA1FDB1FF81FF91FEA1FEB1FFA1FFB1FB2 +:10965000801F0806901F0806A01F0806B01F040000 +:10966000B81FB91FB21FBC1FCC1F0100C31FD01FE2 +:109670000206E01F0206E51F0100EC1FF31F0100B8 +:10968000FC1F4E21010032217021100284210100B3 +:109690008321D0241A05302C2F04602C0201672C62 +:1096A0000601752C0201802C6401002D260841FF63 +:1096B0001A030000C700FC00E900E200E400E0003B +:1096C000E500E700EA00EB00E800EF00EE00EC0048 +:1096D000C400C500C900E600C600F400F600F200B0 +:1096E000FB00F900FF00D600DC00F800A300D80062 +:1096F000D7009201E100ED00F300FA00F100D10083 +:10970000AA00BA00BF00AE00AC00BD00BC00A100C2 +:10971000AB00BB0091259225932502252425C1008D +:10972000C200C000A9006325512557255D25A20070 +:10973000A5001025142534252C251C2500253C25A5 +:10974000E300C3005A255425692566256025502568 +:109750006C25A400F000D000CA00CB00C800310185 +:10976000CD00CE00CF0018250C2588258425A60025 +:10977000CC008025D300DF00D400D200F500D50056 +:10978000B500FE00DE00DA00DB00D900FD00DD00E0 +:10979000AF00B400AD00B1001720BE00B600A700B6 +:1097A000F700B800B000A800B700B900B300B200DD +:1097B000A025A0001000024008000240000802405E +:1097C00000000B002800024008000240040802408C +:1097D00006010C0040000240080002400808024058 +:1097E00010020D0058000240080002400C08024020 +:1097F00016030E00700002400C00024010080240E8 +:1098000000040F00880002400C00024014080240CF +:1098100006051000A00002400C000240180802409B +:1098200010061100B80002400C0002401C08024063 +:1098300016072F00100402400804024020080240CE +:1098400000083800280402400804024024080240AE +:10985000060939004004024008040240280802407A +:10986000100A3A0058040240080402402C08024042 +:10987000160B3B00700402400C040240300802400A +:10988000000C3C00880402400C04024034080240F2 +:10989000060D4400A00402400C04024038080240B7 +:1098A000100E4500B80402400C0402403C0802407F +:1098B000160F4600010000000000000000960000A6 +:1098C0000000000000000000000000000000000098 +:1098D0000000000000000000F16B0008F56B0008BC +:1098E000E9560008215A00087D560008A5560008D0 +:1098F000CD5600086556000800000000D55A000843 +:10990000C15A0008FD5A0008E95A0008F55A000833 +:10991000E15A0008CD5A0008B95A0008095B00084E +:1099200000000000ED5B0008D95B0008155C000832 +:10993000015C00080D5C0008F95B0008E55B0008AD +:10994000D15B0008215C000800000000010000005D +:10995000000000006330000054990008000000007F +:1099600000000000E0460020104900200000812A8D +:1099700000000000AAAAAAAA00000024FFFE00001E +:109980000000000000A00A0000010000000000002C +:10999000AAAAAAAA00000000FFFF00000000000021 +:1099A000000000001400AA5600000000AAAAAAAAFB +:1099B00014005554FFFF000000000000CCCC0C0048 +:1099C00020681A0000000000AAAA8AAA10541500F4 +:1099D000FFFF0000000C70077700000040810201CB +:1099E00000100000AAAAAAAA00410100F7FF000087 +:1099F00000000070070000000000000000000000F0 +:109A0000AAAAAAAA00000000FFFF000000000000B0 +:109A1000000000000000000000000000AAAAAAAA9E +:109A200000000000FFFF0000000000000000000038 +:109A30000000000000000000AAAAAAAA000000007E +:109A4000FFFF000000000000000000000000000018 +:109A500000000000AAAAAAAA00000000FFFF000060 +:109A600000000000000000000000000000000000F6 +:109A7000AAAAAAAA00000000FFFF00000000000040 +:109A8000000000000000000000000000AAAAAAAA2E +:109A900000000000FFFF00000000000000000000C8 +:109AA0004865782F50726F6669434E430025424FD8 +:109AB000415244252D424C002553455249414C25E5 +:109AC0000000000002000000000000000D5E000821 +:109AD0007D5E000840004000C0610020D061002091 +:109AE0000200000000000000030000000000000071 +:109AF000C55E00080000000010000000E0610020CA +:109B00000000000001000000000000003C65002093 +:109B100001010200ED6C0008FD6B0008996C000863 +:109B20007D6C0008430000002C9B000809024300E4 +:109B3000020100C0320904000001020201000524F4 +:109B4000001001052401000104240202052406007E +:109B500001070582030800FF09040100020A000052 +:109B600000070501024000000705810240000000D7 +:109B700012000000789B0008120110010200004052 +:109B8000AE2D1610000201020301000004030904B7 +:109B900025424F4152442500437562654F72616E04 +:109BA00067652D626473686F740030313233343509 +:109BB0003637383941424344454600000000002012 +:109BC000000002000200000000000030000004005D +:109BD000080000000000002400000800040000004D +:109BE0000004000000FC000002000000000004303F +:109BF00000800000080000000000003800000100A4 +:109C0000010000001F1C1F1E1F1E1F1F1E1F1E1FE6 +:109C10001F1D1F1E1F1E1F1F1E1F1E1F00000000D6 +:109C200021600008D96200088563000840004000F8 +:109C30007466002074660020010000008466002025 +:109C4000800000004001000008000000000100004A +:109C5000001000000800000069646C65000000004E +:109C60006D61696E002C0438040438080C10141C53 +:109C700020242526000000000000640401000400E8 +:109C800000000000000C001028303400DC67FF7F6B +:109C900001000000000000008C0000000000000037 +:109CA00000001E0000000000FF0000001849002016 +:109CB000203900208C390020F839002000000000F5 +:109CC000E092000883040000EB92000850040000BA +:109CD000F99200080100000000000000009600005A +:109CE00000000800960000000008000004000000CA +:109CF0008C9B000800000000000000000000000035 +:0C9D000000000000000000000000000057 :00000001FF diff --git a/Tools/bootloaders/CubeOrange-joey_bl.bin b/Tools/bootloaders/CubeOrange-joey_bl.bin index 3270f22c878bf9572b667474265acf5c19945c1e..02303d7edd0148068ea9782d79630c44ee038606 100755 GIT binary patch literal 40196 zcmdqJc|a6L_BdYE-E(jcg36`#%zzGz#|R!ok~j`Si=g5Wvqs})5Zw$yl0kFeCL0Hj z4QdV*H>(g`mBeVwilAg24H=_mlWcbPGwrbpy4jEzoxtSi5pbHr>F=u^$R?ZJ@Avcj z_xDFbP4%l+@4b5U>eZ`Pjg*M}oI>gw|BI*N>Hi%Z!PT<`skOgG>Ur?2hvyA=Fo)FX z@GOC+3ZCD?a}^#u`#^saqp zdcLzuT|Eu{hQZ%ybJRBTZG`>|&-^=6D*k#KVYSWORrHFx>xoy$n{&4XcvHRb$8U-R zgg*aP6F&dWy@PF(tg|b=nzT|06Z@3Hf&L<4iD}H71{CZf+fYEHrrekH-X zPr_3P&y+_I+YWmA!)HQ=P&DBi&9?W&NRJ1emajG2 zTD}rqLHbQyvDF6dz-+`Sg%Q0$uTpqIM4tt{2rYIMxKO&eGK<9hm7<1ZI<0!XQD;iNHuAlG@y?jO7X#}45jUVdSJ|)f@3n-trTA!C>6c7SVNBIt zi}`j+6?K1!b$Qb3O(*+BLEW#(vUbu|)UOJ>DMK?1@=IAxA-w8MfL2wlvQpXRPNn(F zWHfeE;}tW~f6#$)Cv(8{3)?MWZD;}#zH_3nP>W4msQzT%raNe20l(csUEXLxw|kwN zlZt^3%Z8hF8&_Dk8+rE0+Xi8GfA13my!Q1xqKt)18!-H(EY^9ZEO$7Jf#;XHKvtW(Xs z?u%y3owWHi?;riF>ZDoMry7{sNk_7Ms&3q;>`KY)C6b(jpxoHsE3%PSAk%mR=z&M9VDHA02#IrUhe=>6G$IFXydk zqq2*w=1#TwKtHwnpf4I9w0y)J<{rGf*t4SXq)$y1Lmlo@1$01%-#jK4WL1I2hU5xk zPq&)M$ZPxPuAOF_J0!7_AsI}Ih|KL&=0eYR_FI@fs+&lHrlI%jNtgCpCP42c*1F`a zF!q5vs{RpKpeeJI{n1_92c-*|l0D+mc1wI4b$_w-<0P&VaoOI9oPkq#mE4V637mMV zFz@Ikmyc4f@&tA<|{ zqJcv~N-xapw6DDi=oPs!Qk_r(?tQ%nKsHM)OJ}KDRL!$)52Gn9KJt5!F=65Nz4VC{ zBGaGUY?5c`$b8x!(Wn&0iAX=Zps4$o6><46XWMDN}yB%r4n1z zJY!{+tHl1Si(;|xU|*)b#Ad9djVivxZj|fh_5r4KCARDqVmsbfA@v?T*c2$M3lki) zA+q(euaKZtP-=p~c!vBPeTFJTx@9)UYywB%#pVTt3kp)WL_400guPBCtHvVoEA4Z^ z2AXg0bQTuY*=av2p?gqPt%YbH0zBot6e|Tjk@5mbeeMSv_E~J>tn@*uK8KZG2N+*Oy}ly zRy~97IWIoBw)Ya76X$1RZu3K!hW-;g2=E~Nd2vDJP;F>bw{T?5VrPpj2vKSl9!bKo zJx5k*DFQoBY$VNgHVo(#JUt6)d*FdKZpfyUabv@f?Oxxu-X^@wLKa zJ2HX>ZzSVXAksVNI%K?koxC5@OV??0#u&e9#fKJ&dg1eMqz;Qf>V5D`fb!5YDH5rr zD5Oq==UI5_;rSRI^8WhZ|9R2idkwbR3FU9#-Oz8+W(e1R`%n5LI`mKw8O%a&6{@4O ziX&(IC`Rp0;b1;x{a%cRxugnJ=PVHyZScnnnc(4F)&CdUe7fpP_6MA!y zCp7ikRdL8r=fNx*i-dnjq%J2ortjCH8EnXxV0%t9(tFJuo_5f0rWRTj&O$FON@cms?2c&|GanQ?;bn zaohVBG2ThE2MK=-QeLEArDcvVph+#DYa6;x94CF!a-VM;sZ*x+rd;KCF4z1+uGw^4aWo#rXr!d#7%j7d0SaCU-ov@PWaQQa zRimXl701uQs6Bo>yFld&8yvMq<(|&SIEs%0m#QMGD{p4^8^`mxFh3K9gx7*Y8ooN{ zm*^$7k(5xQlShaIm1J&RX9-bup|X`4Wxi2`ldhbgzR&I zh8d3!Y1r7~L`tFgmJuY{zo9!trs|0Sr#xcAk4u4y0a#~E3gMG}1xW3W635*OGXJG? z_@x zZ5D@mkVz>l7fmj#&v~*PB!sxB+}GYic4&>wT&7iPJ!JdBz9{(%8xk6V6btxa*6w&O z0cL2&y9jBT8Q|rP#B!RJP+5@67n+<+_5N9uB7S#@+6pWt*}C;Gc`o zZaAmrXkFwSnCn5zRlC$vo=6$q8;hhsyQJhsLJ3cn0@ox>I{3mGM#K@{@vzdk=k5aA z3hT=6duIMh#m%x~UB(egcojy|EWF@UavQlSE;j8mF|rDtMtrQO+qq~KM_|5$(S3@? zwM{+FM=DxT#%d44;o9AnuP+%U#CX*Ih?_9MGkU^3p4bU-9z5msCc&EtHPa_d@=Ta; zhtIJOOIG_BoXsVdPDtA`yG3NoKJTz(DkH4zAr9UkB#a9txTqe_?7#a5=E;H@Vat&+z$TOBB(BZ};{w-e^rS^qk>PT!_QHH@? zq*Dtoi-(|RB_45PsAh|pV;}Jrb@aMDo7*${h<9|_VQ&tUnK{X&duC%c3S=YeE8FXx zUxU;Kz*a2)xgmc7Cgb$$6KW3cM1sGc<)pw;$<~PXQlRm31~fXxuZG^$LY#P_&ncM0 zlqWPT4l>SZ-!_?Gw55TijYwu8~1?rgdHE%>BTU@}O#+r#uYr?AgC z1&qFf@fMmtKA{wL^&(*aB!too+?*3aODUI;PYKrnzK~C!%W|}!5DodXK#Aj^UXrw& z4t_l&BEwDI0X@7MRC1a|ZK2gh+p_E?uFk$^wgTqaL{CytV*WkQzE~u`|H>!kBjJr8 z!(}%n6wU@{m^)eLI;bV1p48jf!FGnm=sA&qe>UK6<_W&#fG-97P*yG>;pO04u*URx z84h@GKLGMu1<$ka?1bkOJn;x45Bw+kc%|T_6A^Zg$Q-~mNmkm<&rh=QV#q@BCJ}S^zFWPn1&Gv1bjAE2|wRyO8o1NZ8`=&0T zUpo(PH^bX)oisDvyty-+iMRgAuJCnFVRntMZt7G}I`f0pW#&w4bgAN1#@D1%{O+Ck z_ghC>w{$XeoVm=LWu0HDe3gQ}l)pOxZzftdcT#dcQ>`zTs$M1isD5`0-i)smAz{v{H!LN zL`K4n^2JUja<%m{@qzOft)z$7zsJ4`D7p9C`Z)xDu{HL4%;DCj<`BG-t*ZTr1P^UA zmzX206>}(GSIJ~+#QrFP18dC-&FR+id9=^JaHz5&I)y3@QAOS!*2&b+oTyAqDazIycvxX4TEL0=}tv@q}t> zjag^SZLfTN&ELQMYs>o&{^7%~t~=P&hM4DiGXD6&>^RPJ1pkJ++q%bD+7PgAfA8-P zZ`H-_DATG>%~_c?`i}Xe`P{-~KOg(nhwpT(&`kQ<;&>}nb?ad3NBx(*xBl|E_HU}` z7hZ_E+Wk%ZvOGn{jiX}ycLQzI6OUHisdzzGyzjBd?3;IMD)!vnHaFv?mvh%2t^s-# zzO_2V{uGd&f?jOaTVEOEEBpt1ZJ#?==4*(n@z&~jpf$cJpgF^3zE*YvmxeFc?KLw!~IES&#|Xo=T(l$H`i_ z#++nz6s`k$GuK7{HU(a2PP9H&SOPs%EKDI|Ko^=*tfhrngOrVeF~DGzjMmkl59{QUC}PD)M2@JZ_` zxeudt3E=C}KV=16(Zj7TcQVn@J_WT<#yFK=j83v0 ztQBxF#1c{a3C5`er*f2azIk1udcQ@+JC)#74!8coyf$&BjB_=?sZ0kA{<)dV>=1o` zNjct{J?}yDeO4Gpm_a|JF>4T41dPxS&yxlzq+zxKM$p-Gt8tLqjQMGUw2ilh?IV~b z6515R;$nJVB5hByhWi+r_Vwr~Tdr-BJ;i##4mQU2zAY-`MY^q>@4bHXfBso$D?EG0 z@vi&5KR#b)=o@#ibBpP_D~eIo%srkfZ8!H`za>6*Xw2#d-@a(orFZ{U%E*0Fzx&ud z2Wkc`JhXiEu0Kb$}Q?`$vGWUGg|3pS)b*TH0wcoEj;JvyO7%#G)$QUw>y-9YEN zJ|G^0sxE;p*12;_aaL~euRt1_ z1>AhAN}vX;)_Wk1B?X=sIKU}=OxS7v%$TD-H4bkx>#{i&_#fo`5x-e21y&4v=RFwq zgfNrJ=BR#bQTnQ4uY&L3XpShw{se`Ri{vhJeL#06EJ$(cIv=>;pGm1Q#h!BiN=sHtfr$fJPNOqHpMLRs+6$Jn`}Ms%DDA+9

Ws{shg!hqeMKZb4_Lo#M%nOIn$}cN@d|OnJ& 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%0DXvuHy&Tdg%}urPIbi9MMpW<1vKg{+DM!jL zOQtbldQ+W>z{JySMADvhk@>j(Yv5bzu8s1>L#G2m>>gT$jB*JV?{aT5^&nXyQ$|)l08BONF%e&EZrUw>g?fB8ta@LU=PGen4N{arf9g;QR{bB>>DIuE zbsn#|UR1U^q!!#f*U`Qz;@le#sL4syGlghrvM>%oMF#rgfFB|~A<4S6uTs`GQ}}m% zhE1Aq+w z7#&Ap>!JT`pJ}|34J^=j*=*_jNm{E7AR|G{)2W zPvf zaq;;q3EJW&jQWepoIxFOqyAAHb)caqy>$0MFC81zODBOB(AB+hJ?W*B7ync*9py8s z(=Ir&o2d?Te@k*(@+|ql1~}%NN^-w5xib;BWS=N(g(M*c?8l)07lVmd_fWEpYVm(7 zdCk9+Or?$1{->JoDw?s^Cjifp(26#Zo@08_VLEE4emdNaI*dt>ObNPl=>7v;dN;$_ zEJT-%zQI~i0a~LePG-RwVfOQi)Z>U=1WH0?U@4kTvhAR9Lka`j;5ZJ3MTWy7d3tH= z(+=D&Z-ZIhbrSn}^f5It3wsoMloMqeFBZ#oYA>ChU>@-&z73iuPz;Xv|1@ZDA5*Js zdi-y<>4RZ^7}N#Bw81cA^L!e!OmCl$HM1k=mh5?OS2O}^1De0v+njEXT8&*{X15)f3JOkon0O@}98 z{L%@mw74!vYgmWXD-INd@3%$M+KO2etT$%S<$A;YlX}B{x!$90U{=Qk#wOile%`Bf zf8-6e7y8p4!|Wn63v9lvmD)`YTWzG40=-ERphS1l8N(K6SGOBM73$*?o={Lb+c7mW z3-wKrdYlt@#tV)kDl3Co4So>=Oyq@=kqTPId|a)8j0B@Ky7Xk+7Tu{a{u#$*V80D&Tbt>ZqHxA_SD;2Fz z)UKN>q-uJyqw&prd&?iCteZh4n}9FoxOIv(E!y77TRCY~Era_abFpdHdVaP=>Rrm` zI2ZD@h3#r$Y^0MV9mj}HjpbJ%b=<4=qO#)2JNHL#d1~uUJ)ge0rO4TV8rQ@+xElSTrLJ>y910(vLM;YNyoZVGLd6|=)EBK5>$U6(#Ue&}6B<)kvvvA@k zDoaS}XW4&-O(iFFi()Gm_DcyLCEX zOwe9TVuDBAZl0jDqFxvyz@aV$r%knOAz!`}E3RGg;NL`2fC=W2_kVZ?+$=w##Fa-X z(XtzGe`<5W0uy#&Pg%5bN{(x?r&hJttT8^rs)z{Tsbkwts`@O79o=8~Aiii`4ER_oi<~}IgzuV%Hxtn7^B|MV zi5{P415KhY8)e9J_tK(g0nvKkS{>G&2lVY9V}vE(u1obhtB^jeL7gcWdRCXvuIZ@~ z&nO=@Z7s{&vP@|h@_o;SuC#1vid8z5YDf~B5P$SMn-YRvge19b4G;|v?*AJ>W|?AQfVUOulti%=V{DVwT%E#G=LJ_ol=^AXi(n63!e4fynk zhOxM->-A!fBgTmD#e6Zuv|uGIwEI{gW`O~3=zFo^N_Kp&fde|0sTZLAnFE5C8H-h; z$vy+EZN^CjnqFpXsfy$C4-9?ZZ|^>4r(E8}enfL(w2caQxRo9y2^wgpM-x3CV>X`E z#Rl66_xRRNq4N@JdsnCObgu2>i#=lnf+WYwfD2TI+Jo-f1U-(0g_P6Z8)oJpH?yWk%EWhcEmH2ujXBkh_||T%_PCm<&{(I|k}1$C(4y9*`P-DP{rCfl#5LWYeewjQsj`=x~6p79WRC${O+O)H$I1rZw{3OFKUt828&%)>`#d@F6v=`DD^y1!PE2s*h+Ng{j|56s^_ep?ahp^9m0_#0g z`6pp&JM>9Zv#YQ+MHqS(1V_Dy6%;Ulnd31_*gWE+FL^X#P}gU{x=^}N>iG>u`B~5r z5LF`d?#(%koixy}Q+dJh*%_ZUj&fu|`H{YeiIA8i3jMwb&^-tVFdtMlT(r+LfPZe2 zi1W$C%0kq={27Pcw-3ZN?P~1O*+3JB?F{!_$YdMY12+%4?IWwXT?RfL`KlYHy75NNRCvIcS{qQ`_C}eb$@k0jw-+n$T~zP@9=CZ$WoCJ(12s(;U8P zoOsx@P}tDfxh`tyfd4l`mdpKP4foH^%l#AC%OgMVKB?nvSm!Er(}i9xKuV>`w-$8A zrrZEYGUyHTMW=F7jm4bQn?F6z5}_qMiX}Y(YJ8&j*`Ztu?9wv)FO#Qv$AkAJl-pyu zSRr^-3*-g`bNd?9_UaS*MuHySHxj~J<{YB)K`5*|9Cqy?Iv>!gCH7>GZ=;nK@+aSc zP3!!R!smv==l)ChJnTUKF@88a7@v4mJ~azi!9wtP;#HAw!j!_iDumO(`C}HH&`Nv^ zZ5ul22tRV4Qma7kUxgEF6?Bxsg|l82>sV{|1?=|z0JHahf%We}*0HK%tr=lvgqaa$ z4u=6p!q#@%3)glR76M1Y$lux*!A9M{NWfi<{DU@fuST5h2-}XZppCHY2&+L@4Z?yp z!fFuq7{VSySkOk;V+h-Yuw4k-Wh7h%Y}+OOjKL7r;o~MccLRoEDRN^?PAWnR_2YC( z+@t-7n+OOhxf7EF>;Q?gZgh8|*PoOwwddy(u78KTFuxP{#Q0*+`#E+L=eT#2J%zWx zar9T-8!zABj$b>W-~OQFDFAn6{3^s;MfeX6{6`jUhK0II?UXvcY=SRK7;585aX6P% zX5S_+Ta}sLS(2HLca&Fpyqt#kPm1BZ7ZVS-t%nf zvK1-$@i3hwRNijHPegjbm$JB_H|4(u+VTKBDCpl@(phY`#Fv=zJ6D+U<5!yUm%;2< znQon&A1z1YbU<|BgKcB-qsxfbGrBmsO!Q@mu?WMQEhKm(>T3`9+h8+$XoQ~tJQC-h zML~QH;2*4&`2>LBKrsO!C)N6Nv&>2b179#!qyH?jg_}XaiPuJhu?rSA!ne4kFR#!Z80o1{Ah5>7lNz)_wb=a z_&o5Hz^BiT24{RBIODDGp+xvRK|Xn-9dc2CAEGj8O(UKf8U-Vu+aR27D9kY&3VS!m zZx#y63WvSbLi|~wuo>a7h8E)2(l;_+b2zux08iB>5jD>x|L=#jNjmc-|8ubQu%Cr( zfc-nz5wM?xJrVZfuv1_^I&4V#Z`cpRo&|g3ur4Vb_OFMdlBUAGANEzS*TY^6stCRP zl7B7k%><)a4;-cQ(y)KQz_9--b=W^?Xc+QbM*Q^y6p#6)9b(MZC}oJd_`Q(DJ0vE* z1A1(2k+f4R)$9!M5lNQT^Lhs;%*Q)RZOE5dvdfPkmNXt=mbJJA4f_MQ8xTJcaT*;_ zBAQ|+VTH$?KrD-s0Y?EY=7@X*()u3)=a5)DrNvn;77zP7-VV`?fLp4*q>P!PCrwc5 zN}_YlmFT*x|D6%!wH@|1LXy|FomtH&i4kwoQRN7Dk&epFaDL8Ue$HaRno7jgA*xEE zsSnY>KT>`@@D3-yuNzzc2+p1B7=n&{tuDCc5HpgXealLaKH>>l)=TV^jCLUM(+ZS{UrHTJ#ukas_F3sK<2I z#_#UY>Yl+pVWP`EGvSP;*DgZyTIzESK*LhQy>+>-ekk>K0qS{I?wOO+Zy$N5ffIbd zU#ZrWUzc+|WLedfd_~$^(9RRvKpR-UseEg_G;e48SWmQk6dY(r<)dZsIh#PmBZOxI zwFO5XP)`hj64V4balvPjZZ$w-qxFwHi%f;;)I!LV=qu=6G?Ao|U)NHoUS&SkYi7}Q zv0KCDwTOf4Lh_*G>#`f2KIpq94jT{B3x4h{{gJREdfK8G{}5kdu^87V4Ob&xUEw79P^`E{n%Emeqv6L#2%rv8nPFv z)piyQJ+C30Ec3-4;_jv8_>vYD1sD>fM=ULkFBUAFG|qxy9AQBp-Xku_JP3vhZV@LF z5m@Gm1&?7(&H@|~BiXETFLW3iZ&%FmdV8GmQ2Z8Pm0kqR!!n{|1ZJ1wj?y{+PkEXC zP0G`_MbJ?}f=EV`jrk@vv6k(KTlP59pO~b-7M#4|ZSjlajR#KZ*%YjI&MG;|mI$gR zqR@h#@Po7-_zSKn_-N8*!2M%ebT0k$g6?(=G|5?Xy-{rbB*+G>X1+AgHW+$!{QX`w z*5aC?tZ1UJdCH0Xgtz|&a#kc)&3^lNVS}v;vT~zNt5R)L_t+>%dDOlRjIq@7uJ(Dy zmuFtVNxiY>AL9zT{}I{QvCA>(B&ZyOy}5Ngf>6-?H=#r}oGDBE)+zS9Bixa*L{3(m zkmY8P6CuSws>}fdgZX^mJ`C|p?#WG3gtqar)%8!J1?V|0=BTrc&>+cw5&ymM=W?{% z>!tQs2V4a3)|x`dxPk=k`PxZQHeCjV``l2CK~)l_AQmix-_L5AwT}hA*nY-d|6&udJHQbLERuf6_P~* z8PI-~bL_l!cEEppBo!JYrQZ46>^cT1W|h`4`72jJ{@BnurAv;?7csxsQ$&rcxGpIC zsq`|!&I00jUYb1&dB$4M&jjg30WZ7-=ISRvCxMZ}*d|#7FKI<%qFdvtQa)F1-+#an z-6mq4M0j(Zyqzd~>$Ry@wAGd;fs#H%fjjKKez2~5m$F}Z5!9#Xvn_aWH_TmaG1K?msSSZ85yj*>sC@w>k94?oxRU7x1vSf5_9 zSu^VipEB&vycD9l4f(FVL~yUHW}=T6_D_8ad`S5uFV>iP7OkI_l^?udwM5s4LgdLmEuN&o6NFe!cJig zA)F<2ozl8v$OrXF8DwbL&ou1Rt?dRjsaV$@fWfCcpRn22fxlMtuDiP-6sFc1Rfj-WuavbcNHVvgre$xS{ezS9(2_iyYnjT9)Q- zi-*oT@Ld4Ai?9SrcT>)6cJP{bjwW{>3MT* zxZwsCc4lmtIVXL?s4p{P=A7ANY;;os2d?op#?4EaXug%rM8-wyOG{U-TX*OBHEZrS z-?euA-S@3rVJ^yX;xo-D>(;FO<%+exy!*Q3_0u8%HvUC*?owCwEoQTs!OBP{2Y%D9 zoqzqWEH^yJQq$&LxBL#~T#}oOpEEZ%cj3Z?+1a^IJylRpuw=u~Rn{C>DA`Ay6zY~&B&slxLJ{|%l;ArWpX zp2zub`4haFKZ$1>-_F11PxEJZ4W8?SoqQL6j+=!ScrBh6@w|lR75*xo*Z3a3m%onZ z4G7hKlh^YGz8_B`o;tglF(wbYR#~1Fm|{XnRM(n(_+(d(=DbuOt+f;%OvAXg=s81WIAkm z&-A|O1Jempr|GOoH4T`$O+BVT(~zkWajIczVfL9McF@#hYB0TJ`q0GLQIp3cXuDv( zg6|)uKKx%Y-JHZ(dQwG_QK*7zQxfp`8e7^-Nlp{^sx&QM54$pL1!q@J)n^CdMaKTj zF0u3MZ|v`^i+#nstef?)Z-B`EC;JCG#*VZ1+1Kn{*3Z6Y7uXORU;*|q`;@7yj&-n4 z*i-yVAddSW-no~xu|4b%7UwtE>#Ui*#eUEBvcv4j*hkd|Ku=m(3 z{t^2N`zwo0j!NE~T$TI^`;b*8pJHFI)9fUO0oz$48)2WbPIi`^VZ-b*_9i>P{=n+l zMDyG1kL*?EX9w9nwwwKlHL?Ayfz>A0VjB_cdKggJ*r5r9rNB*o34SfdrV;k*;Wr9n z*wU~+3jQm_v8)3AC>SH9m&UQpVSfyz*BDuC*dI&jwc}BPQ2aznubat?63T-yQ+j<#VYOj@7NsAX z%MOP9^C|r}7gnh7@99y;zuUd5nf@Zo`CFMjX&KZ18urUDAHl4Ip%m>1e+On5<~+If@y*=EDy!|7WNsKD{g0c4l@R30RFFF+F+94r~F3iRf@f2DbaF=e_c46(D{wA zjngS;4}P$w1V+e*UoAF|aN_Vg76^o1(SHovb1T{OE`}|+W%S*LA4Y-cAf8^~-IhJZ zTdoMDi>lE55@Gg@0>@wpm6y$#Ka^*ME|?=^m2#enz2jK0Hi5&Rv;dvc&TSQp-td$hj@Z@{_0 zzFmW{fHCtd>|et;5hrCQ#)05uXvx-egM>r^oSG@j$Td^2PfAk+K{G|mxK8ts2%>KT zR$2kw$#fbn*vZ;R7MlQbAM%=jeF}B6zj5`gn8sWXQ3**jNXd?Z?8Q0BjJ~(v-r~Dg zt-QJ%AIxmC(lat=Uo$6bZnndjlj}k@^fS}fhrbb{4Fp2LU`R=a3$>&mhGjAwN3yX> zdK3I*(U+rGW=b?o#uNIR^n;sXCCM1`B~1TtX{cTA!&#UNrK^Hn3EK`&Fi#3Z!;-sf z#hR6{*j>dq{G~}*l9Z*7GR7pDrzB6MaK=`kg@QF?INusmY?-WURp3F&f|@t x+Au^{ZwAbARMr%Q|NSYZ--Ni|!7hY744cvif5A0D&%#!)q|Ipe(bxZK|1Z*gF|z;w delta 10095 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 W7dsA)XRpBpM(jJ7{LHf~h5j1|x>-8_ diff --git a/Tools/bootloaders/CubeOrange-joey_bl.hex b/Tools/bootloaders/CubeOrange-joey_bl.hex index 6ad3df3385e27..81985fddaa5db 100644 --- a/Tools/bootloaders/CubeOrange-joey_bl.hex +++ b/Tools/bootloaders/CubeOrange-joey_bl.hex @@ -1,1105 +1,2515 @@ :020000040800F2 -:1000000000060020A1020008FD0F00087D0F000877 -:10001000D50F00087D0F0008A90F0008A3020008F3 -:10002000A3020008A3020008A3020008E1290008B7 -:10003000A3020008A3020008A3020008A30200080C -:10004000A3020008A3020008A3020008A3020008FC -:10005000A3020008A3020008693E0008953E0008BC -:10006000C13E0008ED3E0008193F0008A302000849 -:10007000A3020008A3020008A3020008A3020008CC -:10008000A3020008A3020008A3020008A3020008BC -:10009000A3020008A3020008A3020008453F0008CD -:1000A000A3020008A3020008A3020008A30200089C -:1000B000A3020008A3020008A3020008A30200088C -:1000C000A3020008A3020008A3020008A30200087C -:1000D000A3020008A30200081D40000831400008E8 -:1000E000A93F0008A3020008A3020008A302000819 -:1000F000A3020008A3020008A3020008A30200084C -:10010000A3020008A302000859400008A302000847 -:10011000A3020008A3020008A3020008A30200082B -:10012000A3020008A3020008A3020008A30200081B -:10013000A3020008A3020008A3020008A30200080B -:10014000A3020008A3020008A3020008A3020008FB -:10015000A3020008A3020008A3020008A3020008EB -:10016000A3020008A3020008A3020008A3020008DB -:10017000A30200084D350008A3020008A3020008EE -:10018000A3020008A302000845400008A3020008DB -:10019000A3020008A3020008A3020008A3020008AB -:1001A000A3020008A3020008A3020008A30200089B -:1001B000A3020008A3020008A3020008A30200088B -:1001C000A3020008A3020008A3020008A30200087B -:1001D000A302000839350008A3020008A3020008A2 -:1001E000A3020008A3020008A3020008A30200085B -:1001F000A3020008A3020008A3020008A30200084B -:10020000A3020008A3020008A3020008A30200083A -:10021000A3020008A3020008A3020008A30200082A -:10022000A3020008A3020008A3020008A30200081A -:10023000A3020008A3020008A3020008A30200080A -:10024000A3020008A3020008A3020008A3020008FA -:10025000A3020008A3020008A3020008A3020008EA -:10026000A3020008A3020008A3020008A3020008DA -:10027000A3020008A3020008A3020008A3020008CA -:10028000A3020008A3020008A3020008A3020008BA -:10029000A3020008A3020008A3020008A3020008AA -:1002A00002E000F000F8FEE772B63A4880F30888F2 -:1002B000394880F3098839484EF60851CEF20001DA -:1002C000086040F20000CCF200004EF63471CEF22D -:1002D00000010860BFF34F8FBFF36F8F40F2000043 -:1002E000C0F2F0004EF68851CEF200010860BFF374 -:1002F0004F8FBFF36F8F4FF00000E1EE100A4EF604 -:100300003C71CEF200010860062080F31488BFF330 -:100310006F8F02F023FC02F0C5FB03F05FFB4FF090 -:1003200055301F491B4A91423CBF41F8040BFAE784 -:100330001C49194A91423CBF41F8040BFAE71A499B -:100340001A4A1B4B9A423EBF51F8040B42F8040B69 -:10035000F8E700201749184A91423CBF41F8040BC6 -:10036000FAE702F0DDFB03F0BDFB144C144DAC4288 -:1003700003DA54F8041B8847F9E700F041F8114C00 -:10038000114DAC4203DA54F8041B8847F9E702F038 -:10039000C5BB00000006002000220020000000086D -:1003A00000000020000600209044000800220020E9 -:1003B0005C22002060220020D44F0020A002000810 -:1003C000A0020008A0020008A00200082DE9F04FDA -:1003D0002DED108AC1F80CD0D0F80CD0BDEC108AED -:1003E000BDE8F08F002383F311882846A047002042 -:1003F00001F0DAFEFEE701F055FE00DFFEE7000047 -:1004000038B500F0D7FC30B1164B00220E211A721D -:100410005A729972DA7202F0A3FA054602F0D6FA1D -:100420000446D0B9104B9D4219D001339D4241F290 -:10043000883512BF044600250124002002F09AFAF4 -:100440000CB100F059F800F039FD00F0F9FB284636 -:1004500000F004F900F050F8F9E70025EDE7054653 -:10046000EBE700BF00220020010007B008B500F054 -:10047000B3FBA0F120035842584108BD07B541F233 -:100480001203022101A8ADF8043000F0C3FB03B051 -:100490005DF804FB202310B583F311881248C3686C -:1004A0000BB101F007FF0023104A4FF47A710E4898 -:1004B00001F0C4FE002383F311880D4C236813B1AF -:1004C0002368013B2360636813B16368013B636089 -:1004D000084B1B7833B9636823B9022000F070FC25 -:1004E0003223636010BD00BF602200209504000825 -:1004F0007C23002074220020F8B5514B514A1C4641 -:100500001968013100F09B8004339342F8D162688E -:100510004D4B9A4240F293804C4B9B6803F1006331 -:1005200003F500339A4280F08A80002000F0A2FB9D -:100530000220474B187000F041FC464B0021D3F8D5 -:10054000E820C3F8E810D3F81021C3F81011D3F84D -:100550001021D3F8EC20C3F8EC10D3F81421C3F821 -:100560001411D3F81421D3F8F020C3F8F010D3F805 -:100570001821C3F81811D3F81821D3F8802042F0BD -:100580000062C3F88020D3F8802022F00062C3F814 -:100590008020D3F88020D3F8802042F00072C3F886 -:1005A0008020D3F8802022F00072C3F88020D3F896 -:1005B000803072B64FF0E023C3F8084DD4E9000450 -:1005C000BFF34F8FBFF36F8F234AC2F88410BFF37E -:1005D0004F8F536923F480335361BFF34F8FD2F8A9 -:1005E000803043F6E076C3F3C905C3F34E335B01B5 -:1005F00003EA060C29464CEA81770139C2F8747285 -:10060000F9D2203B13F1200FF2D1BFF34F8FBFF38C -:100610006F8FBFF34F8FBFF36F8F536923F4003396 -:1006200053610023C2F85032BFF34F8FBFF36F8F77 -:10063000202383F31188854680F308882047F8BD7E -:100640000000020820000208FFFF0108002200202D -:10065000742200200044025800ED00E02DE9F04F24 -:1006600093B0A94B2022FF2100900AA89D6800F0BA -:10067000CFFBA64A1378A3B90121A5481170C36026 -:10068000202383F31188C3680BB101F013FE00230C -:10069000A04A4FF47A719E4801F0D0FD002383F305 -:1006A0001188009B9C4A03B1136000239B49009C66 -:1006B00098469B461E469A460B705360012000F0F8 -:1006C0007DFB24B1944B1B68002B00F016820020A8 -:1006D00000F082FA0390039B002BF2DB012000F074 -:1006E0006BFB039B213B162BE8D801A252F823F0A9 -:1006F0004D0700087507000809080008BD06000836 -:10070000BD060008BD0600089D0800086F0A000825 -:1007100089090008EB090008130A0008390A0008D3 -:10072000BD0600084B0A0008BD060008BD0A000807 -:10073000ED070008BD060008010B00085907000876 -:10074000ED070008BD060008EB0900080220FFF7CE -:100750008DFE002840F0FB81009B022105A8B8F126 -:10076000000F08BF1C4641F21233ADF8143000F000 -:1007700051FAA3E74FF47A7000F02EFA071EEBDB74 -:100780000220FFF773FE0028E6D0013F052F00F29C -:10079000E081DFE807F0030A0D101336052304217A -:1007A00005A8059300F036FA17E004215648F9E74A -:1007B00004215B48F6E704215A48F3E74FF01C098F -:1007C000484609F1040900F057FA0421059005A8EC -:1007D00000F020FAB9F12C0FF2D101204FF0000AFD -:1007E00000FA07F747EA0B0B5FFA8BFB00F05CFBA4 -:1007F00026B10BF00B030B2B08BF0024FFF73EFEC6 -:100800005CE704214848CDE7002EA5D00BF00B0390 -:100810000B2BA1D10220FFF729FE074600289BD011 -:1008200001203E4E00F026FA4FF000080220307002 -:1008300000F0C4FA5FFA88F9484600F02BFA044643 -:1008400090B1484608F1010800F034FA0028F1D1CF -:10085000B846044641F21213022105A83E46ADF8FF -:10086000143000F0D7F929E7012325460220337020 -:1008700000F0A2FA244B9B68AB4207D9284600F04F -:10088000FBF9013040F068810435F3E70025234B84 -:10089000B8463E461D70204B5D60A7E7002E3FF432 -:1008A0005BAF0BF00B030B2B7FF456AF02201B4BFF -:1008B000187000F083FA322000F08EF9B0F10009D0 -:1008C000FFF64AAF19F003077FF446AF0E4A09EB73 -:1008D0000503926893423FF63FAFB9F5807F3FF73B -:1008E0003BAF124BB945019322DD4FF47A7000F013 -:1008F00073F90390039A002AFFF62EAF039A01378B -:10090000019B03F8012BEDE7002200207823002053 -:1009100060220020950400087C230020742200201F -:1009200004220020082200200C220020782200202F -:10093000C820FFF79BFD074600283FF40DAF1F2D91 -:1009400011D8C5F120020AAB25F0030084494A45BD -:10095000184428BF4A46019200F034FA019AFF2158 -:100960007F4800F055FA4FEAA903C9F387027C4992 -:100970002846019300F054FA064600283FF46AAF77 -:10098000019B05EB830531E70220FFF76FFD00288F -:100990003FF4E2AE00F0AAF900283FF4DDAE0027F4 -:1009A000B946704B9B68BB4218D91F2F11D80A9BC0 -:1009B00001330ED027F0030312AA134453F8203C4E -:1009C00005934846042205A9043700F019FB814627 -:1009D000E7E7384600F050F90590F2E7CDF81490BB -:1009E000042105A800F016F900E70023642104A8FB -:1009F000049300F005F900287FF4AEAE0220FFF763 -:100A000035FD00283FF4A8AE049800F065F9059084 -:100A1000E6E70023642104A8049300F0F1F800281D -:100A20007FF49AAE0220FFF721FD00283FF494AE38 -:100A3000049800F053F9EAE70220FFF717FD0028B9 -:100A40003FF48AAE00F062F9E1E70220FFF70EFD05 -:100A500000283FF481AE05A9142000F05DF9074697 -:100A60000421049004A800F0D5F83946B9E73220F3 -:100A700000F0B2F8071EFFF66FAEBB077FF46CAE56 -:100A8000384A07EB0A03926893423FF665AE0220AC -:100A9000FFF7ECFC00283FF45FAE27F00307574454 -:100AA000BA453FF4A3AE50460AF1040A00F0E4F858 -:100AB0000421059005A800F0ADF8F1E74FF47A7035 -:100AC000FFF7D4FC00283FF447AE00F00FF90028F0 -:100AD00044D00A9B01330BD008220AA9002000F061 -:100AE0009FF900283AD02022FF210AA800F090F9AF -:100AF000FFF7C4FC1C4801F05DFB13B0BDE8F08FAC -:100B0000002E3FF429AE0BF00B030B2B7FF424AE29 -:100B10000023642105A8059300F072F80746002819 -:100B20007FF41AAE0220FFF7A1FC814600283FF4B3 -:100B300013AEFFF7A3FC41F2883001F03BFB0598B0 -:100B400000F0FCF94E463C4600F0AEF9B6E506462C -:100B50004CE64FF0000AFFE5B8467BE6374679E6FB -:100B60007822002000220020A08601002DE9F84F05 -:100B70004FF47A7306460D46002402FB03F7DFF8B4 -:100B80005080DFF8509098F900305FFA84FA5A1CD0 -:100B900001D0A34210D159F824002A4631460368F7 -:100BA000D3F820B03B46D847854205D1074B0120FA -:100BB00083F800A0BDE8F88F0134042CE3D14FF492 -:100BC000FA7001F0F7FA0020F4E700BFC823002014 -:100BD000102200205C410008002307B502460121D5 -:100BE0000DF107008DF80730FFF7C0FF20B19DF829 -:100BF000070003B05DF804FB4FF0FF30F9E7000099 -:100C00000A46042108B5FFF7B1FF80F00100C0B229 -:100C1000404208BD074B0A4630B41978064B53F8DA -:100C20002140014623682046DD69044BAC4630BCB8 -:100C3000604700BFC82300205C410008A086010077 -:100C400070B50A4E00240A4D01F062FD308028681C -:100C50003388834208D901F057FD2B6804440133DF -:100C6000B4F5003F2B60F2D370BD00BFCA23002053 -:100C70008423002001F02ABE00F1006000F500305E -:100C80000068704700F10060920000F5003001F04C -:100C9000A1BD0000054B1A68054B1B889B1A8342B7 -:100CA00002D9104401F030BD002070478423002099 -:100CB000CA23002038B5074D04462868204401F0B7 -:100CC00029FD28B928682044BDE8384001F034BD2A -:100CD00038BD00BF842300200020704700F1FF5082 -:100CE00000F58F10D0F8000870470000064991F811 -:100CF000243033B100230822086A81F82430FFF73A -:100D0000C1BF0120704700BF88230020014B186835 -:100D1000704700BF0010005C244BF0B51A68044611 -:100D2000234BC2F30B06120C1F885868BE4293F97E -:100D3000085028D09F89BE4206D101200C2505FB12 -:100D40000033586893F9085041F201039A421CD0CD -:100D500041F203039A421AD042F201039A4218D098 -:100D600042F203039A4208BF5625621E0B46441EF8 -:100D70000A4493420FD214F9016F581C6EB1034616 -:100D800000F8016CF5E70020D8E75A25EDE7592572 -:100D9000EBE75825E9E7184605E02C2482421C7051 -:100DA00001D9981C5D70401AF0BD00BF0010005CB6 -:100DB0001422002000207047704700007047000098 -:100DC00070470000002310B5934203D0CC5CC4549C -:100DD0000133F9E710BD0000013810B510F9013FEB -:100DE0003BB191F900409C4203D11AB10131013A63 -:100DF000F4E71AB191F90020981A10BD1046FCE7EB -:100E000003460246D01A12F9011B0029FAD1704795 -:100E100002440346934202D003F8011BFAE77047ED -:100E20002DE9F8431F4D14460746884695F82420BF -:100E300052BBDFF870909CB395F824302BB9202278 -:100E4000FF2148462F62FFF7E3FF95F82400414653 -:100E5000C0F1080205EB8000A24228BF2246D6B2AC -:100E60009200FFF7AFFF95F82430A41B17441E44EF -:100E70009044E4B2F6B2082E85F82460DBD1FFF787 -:100E800035FF0028D7D108E02B6A03EB82038342A9 -:100E9000CFD0FFF72BFF0028CBD10020BDE8F8838F -:100EA0000120FBE788230020024B1A78024B1A70BE -:100EB000704700BFC823002010220020F8B5194C4D -:100EC000194800F079FC2146174800F0A1FC24687D -:100ED0001648D4F89020164ED2F80438154D43F039 -:100EE0000203114FC2F8043801F064F92046124998 -:100EF00000F09CFDD4F890200424D2F8043823F0AC -:100F00000203C2F804384FF4E133336055F8040BA0 -:100F1000B84202D0314600F0ADFB013C14F0FF04B2 -:100F2000F4D1F8BD6C420008C832002040420F00E6 -:100F3000B02300205C4100087442000838B50B4B18 -:100F400004461A780A4B53F822500A4B9D420CD0A3 -:100F5000094B002118221846FFF75AFF046001468A -:100F60002846BDE8384000F085BB38BDC8230020C6 -:100F70005C410008C8320020B023002000B59BB0BF -:100F8000EFF3098168226846FFF71CFFEFF3058342 -:100F9000044B9A6BDA6A9A6A9A6A9A6A9A6A9A6AA5 -:100FA0009B6AFEE700ED00E000B59BB0EFF309811E -:100FB00068226846FFF706FFEFF30583044B9A6B40 -:100FC0009A6A9A6A9A6A9A6A9A6A9B6AFEE700BF64 -:100FD00000ED00E000B59BB0EFF3098168226846A0 -:100FE000FFF7F0FEEFF30583034B5A6B9A6A9A6A98 -:100FF0009A6A9A6A9B6AFEE700ED00E0FEE700004D -:1010000030B50A44084D91420DD011F8013B5840CB -:10101000082340F30004013B2C4013F0FF0384EA53 -:101020005000F6D1EFE730BD2083B8ED0268436889 -:101030001143016003B1184770470000024A13686A -:1010400043F0C0031360704700440040024A136835 -:1010500043F0C0031360704700480040024A136821 -:1010600043F0C003136070470078004037B5274C49 -:10107000274D204600F0F2FA04F1140000940023FA -:101080004FF40072234900F0B3F94FF40072224983 -:1010900004F138000094214B00F02CFA204BC4E9F5 -:1010A0001735204C204600F0D9FA04F114000094C2 -:1010B00000234FF400721C4900F09AF94FF40072BB -:1010C0001A4904F138000094194B00F013FA194B37 -:1010D000C4E91735184C204600F0C0FA04F114009A -:1010E00000234FF400721549009400F081F9144B6D -:1010F0004FF40072134904F13800009400F0FAF93B -:10110000114BC4E9173503B030BD00BFCC2300201C -:1011100000E1F50510250020102B00203D100008EF -:10112000004400403824002010270020102D00200B -:101130004D10000800480040A42400201029002081 -:101140005D100008102F002000780040037C30B5AF -:10115000334C002918BF0C46012B18D1314B984253 -:101160000FD1314BD3F8E82042F40032C3F8E82025 -:10117000D3F8102142F40032C3F81021D3F8103113 -:1011800005E02A4B98422FD0294B984238D022684C -:10119000036EC16D03EB52038466B3FBF2F3626826 -:1011A000150442BF23F0070503F0070343EA450394 -:1011B000CB60A36843F040034B60E36843F0010356 -:1011C0008B6042F4967343F001030B604FF0FF33E2 -:1011D0000B62510505D512F010221DD0B2F1805FCF -:1011E0001CD080F8643030BD0F4BD3F8E82042F4B7 -:1011F0008022C3F8E820D3F8102142F48022BBE714 -:10120000094BD3F8E82042F08042C3F8E820D3F835 -:10121000102142F08042AFE77F23E2E73F23E0E77F -:101220006C410008CC2300200044025838240020E0 -:10123000A42400202DE9F047C66D05463768F469FF -:101240002107346219D014F0080118BF8021E20789 -:1012500048BF41F02001A3074FF0200348BF41F0F1 -:101260004001600748BF41F4807183F31188281D55 -:10127000FFF7DCFE002383F31188E2050AD5202363 -:1012800083F311884FF40071281DFFF7CFFE002370 -:1012900083F311884FF020094FF0000A14F0200862 -:1012A00038D13B0616D54FF0200905F1380A200643 -:1012B00010D589F31188504600F050F9002836DA2D -:1012C0000821281DFFF7B2FE27F0800333600023BA -:1012D00083F31188790614D5620612D5202383F38F -:1012E0001188D5E913239A4208D12B6C33B127F02A -:1012F00040071021281DFFF799FE3760002383F374 -:101300001188E30618D5AA6E1369ABB15069BDE820 -:10131000F047184789F31188736A284695F86410D6 -:10132000194000F0B5F98AF31188F469B6E7B062A4 -:1013300088F31188F469BAE7BDE8F087F8B5154677 -:10134000826804460B46AA4200D28568A1692669D4 -:10135000761AB5420BD218462A46FFF733FDA36929 -:101360002B44A3612846A3685B1BA360F8BD0CD97E -:10137000AF1B18463246FFF725FD3A46E168304478 -:10138000FFF720FDE3683B44EBE718462A46FFF7EA -:1013900019FDE368E5E7000083689342F7B504466A -:1013A000154600D28568D4E90460361AB5420BD2DE -:1013B0002A46FFF707FD63692B4463612846A3684B -:1013C0005B1BA36003B0F0BD0DD93246AF1B01918A -:1013D000FFF7F8FC01993A46E0683144FFF7F2FC68 -:1013E000E3683B44E9E72A46FFF7ECFCE368E4E7FF -:1013F00010B50A440024C361029B8460C16002618D -:101400000362C0E90000C0E9051110BD08B5D0E9CC -:101410000532934201D1826882B9826801328260CA -:101420005A1C426119700021D0E904329A4224BF4B -:10143000C368436100F0DAFE002008BD4FF0FF30C2 -:10144000FBE7000070B5202304460E4683F31188A5 -:10145000A568A5B1A368A269013BA360531CA36161 -:1014600015782269934224BFE368A361E3690BB155 -:1014700020469847002383F31188284607E0314629 -:10148000204600F0A3FE0028E2DA85F3118870BD43 -:101490002DE9F74F04460E4617469846D0F81C90A3 -:1014A0004FF0200A8AF311884FF0000B154665B102 -:1014B0002A4631462046FFF741FF034660B94146C0 -:1014C000204600F083FE0028F1D0002383F311882A -:1014D000781B03B0BDE8F08FB9F1000F03D0019085 -:1014E0002046C847019B8BF31188ED1A1E448AF3EE -:1014F0001188DCE7C160C361009B82600362C0E9C0 -:1015000005111144C0E9000001617047F8B50446B7 -:101510000D461646202383F31188A768A7B1A36858 -:10152000013BA36063695A1C62611D70D4E90432F7 -:101530009A4224BFE3686361E3690BB12046984790 -:10154000002080F3118807E03146204600F03EFE7F -:101550000028E2DA87F31188F8BD0000D0E90523FE -:1015600010B59A4201D182687AB9826800210132AD -:1015700082605A1C82611C7803699A4224BFC36846 -:10158000836100F033FE204610BD4FF0FF30FBE7D3 -:101590002DE9F74F04460E4617469846D0F81C90A2 -:1015A0004FF0200A8AF311884FF0000B154665B101 -:1015B0002A4631462046FFF7EFFE034660B9414612 -:1015C000204600F003FE0028F1D0002383F31188A9 -:1015D000781B03B0BDE8F08FB9F1000F03D0019084 -:1015E0002046C847019B8BF31188ED1A1E448AF3ED -:1015F0001188DCE7026843681143016003B11847B2 -:10160000704700001430FFF743BF00004FF0FF3376 -:101610001430FFF73DBF00003830FFF7B9BF0000BE -:101620004FF0FF333830FFF7B3BF00001430FFF73F -:1016300009BF00004FF0FF311430FFF703BF000077 -:101640003830FFF763BF00004FF0FF323830FFF74C -:101650005DBF000000207047FFF708BD044B03602A -:1016600000234360C0E9023301230374704700BFC5 -:101670008441000810B52023044683F31188FFF746 -:1016800065FD02232374002383F3118810BD00003D -:1016900038B5C36904460D461BB904210844FFF759 -:1016A000A9FF294604F11400FFF7B0FE002806DA6E -:1016B000201D4FF48061BDE83840FFF79BBF38BD67 -:1016C000026843681143016003B118477047000086 -:1016D00013B5406B00F58054D4F8A4381A6811781B -:1016E000042914D1017C022911D11979012312890D -:1016F0008B4013420BD101A94C3002F06FF8D4F8A3 -:10170000A4480246019B2179206800F0DFF902B06D -:1017100010BD0000143001F0F1BF00004FF0FF33A6 -:10172000143001F0EBBF00004C3002F0C3B80000F1 -:101730004FF0FF334C3002F0BDB80000143001F020 -:10174000BFBF00004FF0FF31143001F0B9BF0000FF -:101750004C3002F08FB800004FF0FF324C3002F0F6 -:1017600089B800000020704710B500F58054D4F807 -:10177000A4381A681178042917D1017C022914D1E0 -:101780005979012352898B4013420ED1143001F054 -:1017900051FF024648B1D4F8A4484FF44073617930 -:1017A0002068BDE8104000F07FB910BD406BFFF726 -:1017B000DBBF0000704700007FB5124B01250426F7 -:1017C000044603600023057400F184024360294647 -:1017D000C0E902330C4B0290143001934FF4407374 -:1017E000009601F003FF094B04F69442294604F1E8 -:1017F0004C000294CDE900634FF4407301F0CAFF3E -:1018000004B070BDAC410008AD170008D116000847 -:101810000A68202383F311880B790B3342F82300E5 -:101820004B79133342F823008B7913B10B3342F811 -:10183000230000F58053C3F8A41802230374002387 -:1018400083F311887047000038B5037F044613B155 -:1018500090F85430ABB90125201D0221FFF730FF6D -:1018600004F114006FF00101257700F0CBFC04F1C6 -:101870004C0084F854506FF00101BDE8384000F08E -:10188000C1BC38BD10B5012104460430FFF718FF74 -:101890000023237784F8543010BD000038B5044687 -:1018A0000025143001F0BAFE04F14C00257701F058 -:1018B00089FF201D84F854500121FFF701FF2046C5 -:1018C000BDE83840FFF750BF90F8803003F0600368 -:1018D000202B06D190F881200023212A03D81F2A2B -:1018E00006D800207047222AFBD1C0E91D3303E04F -:1018F000034A426707228267C3670120704700BF1F -:101900002C22002037B500F58055D5F8A4381A6888 -:10191000117804291AD1017C022917D119790123E0 -:1019200012898B40134211D100F14C04204602F081 -:1019300009F858B101A9204601F050FFD5F8A44894 -:101940000246019B2179206800F0C0F803B030BD49 -:1019500001F10B03F0B550F8236085B004460D4645 -:10196000FEB1202383F3118804EB8507301D082185 -:10197000FFF7A6FEFB6806F14C005B691B681BB114 -:10198000019001F039FF019803A901F027FF0246F9 -:1019900048B1039B2946204600F098F8002383F3C2 -:1019A000118805B0F0BDFB685A691268002AF5D0AD -:1019B0001B8A013B1340F1D104F18002EAE70000E9 -:1019C000133138B550F82140ECB1202383F311884E -:1019D00004F58053D3F8A4281368527903EB8203EB -:1019E000DB689B695D6845B104216018FFF768FEFC -:1019F000294604F1140001F027FE2046FFF7B4FE4B -:101A0000002383F3118838BD7047000001F01AB934 -:101A100001234022002110B5044600F8303BFFF7B7 -:101A2000F7F90023C4E9013310BD000010B52023ED -:101A3000044683F311882422416000210C30FFF713 -:101A4000E7F9204601F020F902232370002383F3F5 -:101A5000118810BD70B500EB8103054650690E4634 -:101A60001446DA6018B110220021FFF7D1F9A069FD -:101A700018B110220021FFF7CBF931462846BDE806 -:101A8000704001F013BA000083682022002103F0A7 -:101A9000011310B5044683601030FFF7B9F92046F2 -:101AA000BDE8104001F08EBAF0B4012500EB8104CE -:101AB00047898D40E4683D43A46945812360002344 -:101AC000A2606360F0BC01F0ABBA0000F0B4012585 -:101AD00000EB810407898D40E4683D43646905811A -:101AE00023600023A2606360F0BC01F021BB000012 -:101AF00070B5022300250446242203702946C0F84D -:101B000088500C3040F8045CFFF782F9204684F8D6 -:101B1000705001F05FF963681B6823B129462046C5 -:101B2000BDE87040184770BD037880F88C300523FD -:101B3000037043681B6810B504460BB10421984735 -:101B40000023A36010BD000090F88C204368027051 -:101B50001B680BB1052118477047000070B590F85D -:101B60007030044613B1002380F8703004F1800215 -:101B7000204601F04BFA63689B68B3B994F8803053 -:101B800013F0600535D00021204601F0F5FC00215E -:101B9000204601F0E5FC63681B6813B1062120466E -:101BA0009847062384F8703070BD20469847002877 -:101BB000E4D0B4F88630A26F9A4288BFA36794F944 -:101BC0008030A56F002B4FF0200380F20381002DA1 -:101BD00000F0F280092284F8702083F3118800213C -:101BE0002046D4E91D23FFF771FF002383F31188FA -:101BF000DAE794F8812003F07F0343EA022340F2FE -:101C00000232934200F0C58021D8B3F5807F48D0DE -:101C10000DD8012B3FD0022B00F09380002BB2D1C6 -:101C200004F1880262670222A267E367C1E7B3F5A5 -:101C3000817F00F09B80B3F5407FA4D194F882307F -:101C4000012BA0D1B4F8883043F0020332E0B3F5A1 -:101C5000006F4DD017D8B3F5A06F31D0A3F5C06396 -:101C6000012B90D86368204694F882205E6894F82F -:101C70008310B4F88430B047002884D04368636789 -:101C80000368A3671AE0B3F5106F36D040F602423E -:101C900093427FF478AF5C4B63670223A367002312 -:101CA000C3E794F88230012B7FF46DAFB4F888302D -:101CB00023F00203A4F88830C4E91D55E56778E7EE -:101CC000B4F88030B3F5A06F0ED194F8823020467E -:101CD00084F88A3001F0DCF863681B6813B10121D5 -:101CE00020469847032323700023C4E91D339CE753 -:101CF00004F18B0363670123C3E72378042B10D11E -:101D0000202383F311882046FFF7BEFE85F3118858 -:101D10000321636884F88B5021701B680BB1204647 -:101D2000984794F88230002BDED084F88B3004235F -:101D3000237063681B68002BD6D002212046984789 -:101D4000D2E794F8843020461D0603F00F010AD52F -:101D500001F04EF9012804D002287FF414AF2B4B78 -:101D60009AE72B4B98E701F035F9F3E794F88230C6 -:101D7000002B7FF408AF94F8843013F00F01B3D038 -:101D80001A06204602D501F00FFCADE701F000FC79 -:101D9000AAE794F88230002B7FF4F5AE94F88430F3 -:101DA00013F00F01A0D01B06204602D501F0E4FB82 -:101DB0009AE701F0D5FB97E7142284F8702083F3AB -:101DC00011882B462A4629462046FFF76DFE85F3EB -:101DD0001188E9E65DB1152284F8702083F311883B -:101DE00000212046D4E91D23FFF75EFEFDE60B220D -:101DF00084F8702083F311882B462A462946204612 -:101E0000FFF764FEE3E700BFDC410008D4410008AF -:101E1000D841000838B590F870300446002B3ED009 -:101E2000063BDAB20F2A34D80F2B32D8DFE803F0A2 -:101E300037313108223231313131313131313737B7 -:101E4000856FB0F886309D4214D2C3681B8AB5FBFB -:101E5000F3F203FB12556DB9202383F311882B464F -:101E60002A462946FFF732FE85F311880A2384F8B3 -:101E700070300EE0142384F87030202383F311882F -:101E8000002320461A461946FFF70EFE002383F36F -:101E9000118838BDC36F03B198470023E7E70021DD -:101EA000204601F069FB0021204601F059FB6368E0 -:101EB0001B6813B10621204698470623D7E7000088 -:101EC00010B590F870300446142B29D017D8062B83 -:101ED00005D001D81BB110BD093B022BFBD8002156 -:101EE000204601F049FB0021204601F039FB6368E0 -:101EF0001B6813B1062120469847062319E0152BCD -:101F0000E9D10B2380F87030202383F3118800235C -:101F10001A461946FFF7DAFD002383F31188DAE742 -:101F2000C3689B695B68002BD5D1C36F03B1984729 -:101F3000002384F87030CEE7024B0022C3E900335F -:101F40009A60704710310020002382680374054BAB -:101F50001B6899689142FBD25A6803604260106026 -:101F6000586070471031002008B5202383F3118892 -:101F7000037C032B05D0042B0DD02BB983F31188E0 -:101F800008BD436900221A604FF0FF334361FFF739 -:101F9000DBFF0023F2E7D0E9003213605A60F3E779 -:101FA000002382680374054B1B6899689142FBD833 -:101FB0005A6803604260106058607047103100201A -:101FC000054B196908741868026853601A60186133 -:101FD00001230374FEF7FAB9103100204B1C30B511 -:101FE000044687B00A4D10D02B6901A8094A00F0B9 -:101FF00025F92046FFF7E4FF049B13B101A800F088 -:1020000059F92B69586907B030BDFFF7D9FFF8E7D8 -:1020100010310020691F000838B50C4D044641619D -:102020002B6981689A68914203D8BDE83840FFF770 -:102030008BBF1846FFF7B4FF01232C6101462374C0 -:102040002046BDE83840FEF7C1B900BF103100207E -:10205000044B1A681B6990689B68984294BF0020E3 -:10206000012070471031002010B5084C236820690A -:102070001A6854602260012223611A74FFF790FFEE -:1020800001462069BDE81040FEF7A0B910310020DC -:1020900008B5FFF7DDFF18B1BDE80840FFF7E4BF62 -:1020A00008BD0000FFF7E0BFFEE7000010B50C4CD4 -:1020B000FFF742FF00F0B4F880220A49204600F002 -:1020C0003BF8012344F8180C037400F099FC00233A -:1020D00083F3118862B60448BDE8104000F04CB8A4 -:1020E00038310020E0410008F041000800F01CB940 -:1020F000EFF3118020B9EFF30583202282F31188DA -:102100007047000010B530B9EFF30584C4F308043C -:1021100014B180F3118810BDFFF7BAFF84F3118862 -:10212000F9E70000034A516853685B1A9842FBD8EC -:10213000704700BF001000E08260022202827047F8 -:102140008368A3F17C0243F80C2C026943F83C2C11 -:10215000426943F8382C074A43F81C2CC268A3F1A3 -:10216000180043F8102C022203F8082C002203F870 -:10217000072C7047E503000810B5202383F311886E -:10218000FFF7DEFF00210446FFF746FF002383F33D -:102190001188204610BD0000024B1B6958610F20BA -:1021A000FFF70EBF10310020202383F31188FFF7C3 -:1021B000F3BF000008B50146202383F311880820EF -:1021C000FFF70CFF002383F3118808BD49B1064BCC -:1021D00042681B6918605A60136043600420FFF76F -:1021E000FDBE4FF0FF307047103100200368984269 -:1021F00006D01A680260506018465961FFF7A4BE05 -:102200007047000038B504460D462068844200D16E -:1022100038BD036823605C604561FFF795FEF4E715 -:10222000054B4FF0FF3103F11402C3E905220022F0 -:10223000C3E90712704700BF1031002070B51C4E73 -:1022400005460C46C0E9032301F0B2FB334653F8C0 -:10225000142F9A420DD130620A2C2CBF00190A307B -:102260002A60C5E90124C6E90555BDE8704001F0C2 -:1022700089BB316A431AE31838BF1C469368A342EE -:1022800002D9081901F08EFB73699A6894420CD840 -:102290005A68AC602B606A6015609A685D60121BBA -:1022A0009A604FF0FF33F36170BDA41A1B68ECE72E -:1022B0001031002038B51B4C636998420DD08168FD -:1022C000D0E9003213605A600022C2609A680A4462 -:1022D0009A604FF0FF33E36138BD03682246002166 -:1022E00042F8143F93425A60C16003D1BDE83840C0 -:1022F00001F052BB9A688168256A0A449A6001F02D -:1023000057FB6369411B9A688A42E5D9AB181D1ACD -:10231000206A092D98BF01F10A02BDE83840104437 -:1023200001F040BB103100202DE9F041184C00278E -:1023300004F11406656901F03BFB236AAA68C11A1F -:102340008A4215D81344D5F80C802362D5E90032AF -:1023500013605A606369EF60B34201D101F01CFB66 -:1023600087F311882869C047202383F31188E1E7A8 -:102370006169B14209D013441B1ABDE8F0410A2B30 -:102380002CBFC0180A3001F00DBBBDE8F08100BFC2 -:102390001031002000207047FEE700007047000069 -:1023A0004FF0FF307047000002290CD0032904D001 -:1023B0000129074818BF00207047032A05D805489F -:1023C00000EBC2007047044870470020704700BF10 -:1023D000D04200083C2200208442000870B59AB028 -:1023E00005460846144601A900F0C2F801A8FEF708 -:1023F00007FD431C0022C6B25B001046C5E900344D -:1024000023700323023404F8013C01ABD1B202343F -:102410008E4201D81AB070BD13F8011B013204F8C6 -:10242000010C04F8021CF1E708B5202383F311889E -:102430000348FFF767FA002383F3118808BD00BF44 -:10244000C832002090F8803003F01F02012A07D123 -:1024500090F881200B2A03D10023C0E91D3315E039 -:1024600003F06003202B08D1B0F884302BB990F82A -:102470008120212A03D81F2A04D8FFF725BA222A4F -:10248000EBD0FAE7034A426707228267C36701205D -:10249000704700BF3322002007B5052917D8DFE8B1 -:1024A00001F0191603191920202383F31188104A0B -:1024B00001210190FFF7CEFA019802210D4AFFF7A2 -:1024C000C9FA0D48FFF7EAF9002383F3118803B036 -:1024D0005DF804FB202383F311880748FFF7B4F964 -:1024E000F2E7202383F311880348FFF7CBF9EBE7EA -:1024F0002442000848420008C832002038B50C4D7C -:102500000C4C2A460C4904F10800FFF767FF05F15F -:10251000CA0204F110000949FFF760FF05F5CA720D -:1025200004F118000649BDE83840FFF757BF00BF67 -:10253000A04B00203C220020084200081242000864 -:102540001A42000870B5044608460D46FEF758FCCE -:10255000C6B22046013403780BB9184670BD324626 -:102560002946FEF739FC0028F3D10120F6E70000E8 -:102570002DE9F04705460C46FEF742FC2C49C6B251 -:102580002846FFF7DFFF08B10836F6B2294928468A -:10259000FFF7D8FF08B11036F6B2632E0BD8DFF87C -:1025A0009080DFF89090244FDFF898A02E7846B9FD -:1025B0002670BDE8F08729462046BDE8F04701F0C7 -:1025C000B7BD252E30D1072241462846FEF704FC30 -:1025D00080B91A4B224603F10C0153F8040B8B42CD -:1025E00042F8040BF9D1198807359B780F34118014 -:1025F0009370DBE7082249462846FEF7EDFB98B9C1 -:10260000A21C0F4B197802320909C95D02F8041C9B -:1026100013F8011B01F00F015345C95D02F8031CBB -:10262000F0D118340835C1E7013504F8016BBDE776 -:10263000F04200081A42000808430008F842000867 -:1026400000E8F11F0CE8F11FBFF34F8F044B1A692C -:102650005107FCD1D3F810215207F8D1704700BFC1 -:102660000020005208B50D4B1B78ABB9FFF7ECFF0B -:102670000B4BDA68D10704D50A4A5A6002F1883256 -:102680005A60D3F80C21D20706D5064AC3F80421B4 -:1026900002F18832C3F8042108BD00BFFE4D0020BE -:1026A000002000522301674508B5114B1B78F3B990 -:1026B000104B1A69510703D5DA6842F04002DA601C -:1026C000D3F81021520705D5D3F80C2142F040026F -:1026D000C3F80C21FFF7B8FF064BDA6842F001029D -:1026E000DA60D3F80C2142F00102C3F80C2108BDD6 -:1026F000FE4D0020002000520F289ABF00F5806098 -:1027000040040020704700004FF400307047000084 -:10271000102070470F2808B50BD8FFF7EDFF00F524 -:1027200000330268013204D104308342F9D1012020 -:1027300008BD0020FCE700000F2870B5054645D80D -:10274000FFF7D6FC224CFFF77FFF0646FFF78AFF14 -:102750004FF0FF33072D6361C4F8143120D8236193 -:10276000FFF772FF2B0243F02403E360E36843F0BA -:102770008003E36023695A07FCD42846FFF764FF0F -:102780004FF40031FFF7B8FF00F002F93046FFF7D1 -:102790008BFFFFF7B7FC2846BDE87040FFF7BABFD4 -:1027A000C4F81031FFF750FFA5F108031B0243F0F6 -:1027B0002403C4F80C31D4F80C3143F08003C4F87E -:1027C0000C31D4F810315B07FBD4D6E7002070BD84 -:1027D000002000522DE9F84F40EA020305460C465E -:1027E0001746D80602D00020BDE8F88F27F01F0753 -:1027F000DFF8D4B0FFF736FF2744BC4203D10120F5 -:10280000FFF752FFF0E720222946204601F080FC26 -:1028100010B920352034F0E72B4605F120021E6860 -:10282000711CE0D104339A42F9D1FFF761FC05F144 -:102830007843234AB3F5801F224B28BF9A4603F101 -:10284000040338BF9046A2F1080228BF9846A3F1BE -:1028500008033ABF9146DA469946FFF7F5FEC8F8F5 -:102860000060A5EB040CD9F8002004F11C0142F033 -:102870000202C9F80020221FDAF8006016F00506EF -:10288000FAD152F8043F8A424CF80230F4D1BFF337 -:102890004F8FFFF7D9FE4FF0FF32C8F80020D9F86C -:1028A000002022F00202C9F80020FFF72BFC2022B2 -:1028B0002146284601F02CFC0028AAD030469FE78C -:1028C00014200052102100521020005210B5084C64 -:1028D000237828B11BB9FFF7C5FE0123237010BD73 -:1028E000002BFCD02070BDE81040FFF7DDBE00BF1C -:1028F000FE4D00200244074BD2B210B5904200D1E9 -:1029000010BD441C00B253F8200041F8040BE0B2A3 -:10291000F4E700BF504000580E4B30B51C6F240444 -:1029200005D41C6F1C671C6F44F400441C670A4CE0 -:1029300002442368D2B243F480732360074B904271 -:1029400000D130BD441C51F8045B00B243F8205064 -:10295000E0B2F4E7004402580048025850400058E2 -:1029600007B5012201A90020FFF7C4FF019803B0B9 -:102970005DF804FB13B50446FFF7F2FFA04205D053 -:10298000012201A900200194FFF7C6FF02B010BD8B -:102990000144BFF34F8F064B884204D3BFF34F8FE0 -:1029A000BFF36F8F7047C3F85C022030F4E700BFBD -:1029B00000ED00E0034B1A681AB9034AD2F8D0249C -:1029C0001A607047004E00200040025808B5FFF71B -:1029D000F1FF024B1868C0F3806008BD004E002074 -:1029E000EFF30983054968334A6B22F001024A6319 -:1029F00083F30988002383F31188704700EF00E018 -:102A0000202080F3118862B60D4B0E4AD96821F45C -:102A1000E0610904090C0A430B49DA60D3F8FC2091 -:102A200042F08072C3F8FC20084AC2F8B01F116857 -:102A300041F0010111601022DA7783F8220070471B -:102A400000ED00E00003FA0555CEACC5001000E033 -:102A5000202310B583F311880E4B5B6813F40063D9 -:102A600014D0F1EE103AEFF309844FF08073683C14 -:102A7000E361094BDB6B236684F30988FFF7E8FA0F -:102A800010B1064BA36110BD054BFBE783F3118822 -:102A9000F9E700BF00ED00E000EF00E0F7030008F9 -:102AA000FA03000870B5BFF34F8FBFF36F8F1A4A58 -:102AB0000021C2F85012BFF34F8FBFF36F8F5369DD -:102AC00043F400335361BFF34F8FBFF36F8FC2F8EE -:102AD0008410BFF34F8FD2F8803043F6E074C3F315 -:102AE000C900C3F34E335B0103EA0406014646EA1C -:102AF00081750139C2F86052F9D2203B13F1200FE1 -:102B0000F2D1BFF34F8F536943F480335361BFF366 -:102B10004F8FBFF36F8F70BD00ED00E0FEE7000048 -:102B20000A4B0B480B4A90420BD30B4BC11EDA1CCD -:102B3000121A22F003028B4238BF00220021FEF756 -:102B400067B953F8041B40F8041BECE7EC44000899 -:102B5000D44F0020D44F0020D44F002070470000F5 -:102B600070B5D0E9244300224FF0FF359E6804EB96 -:102B700042135101D3F80009002805DAD3F80009FF -:102B800040F08040C3F80009D3F8000B002805DAB4 -:102B9000D3F8000B40F08040C3F8000B01326318FB -:102BA0009642C3F80859C3F8085BE0D24FF001130E -:102BB000C4F81C3870BD000000EB8103D3F80CC0D2 -:102BC0002DE9F043DCF814204E1CD0F89050D2F8D8 -:102BD00000E005EB063605EB4118506870450AD356 -:102BE0000122D5F8343802FA01F123EA0101C5F8CF -:102BF0003418BDE8F083AEEB0003BCF81040A342EC -:102C000028BF2346D8F81849A4B2B3EB840FF0D8F4 -:102C10009468A4F1040959F8047F3760A4EB09070C -:102C20001F44042FF7D81C44034494605360D4E736 -:102C3000890141F02001016103699B06FCD4122047 -:102C4000FFF770BA10B50A4C2046FEF7E1FE094BBB -:102C5000C4F89030084BC4F89430084C2046FEF776 -:102C6000D7FE074BC4F89030064BC4F8943010BD23 -:102C7000044E00200000084040430008A04E002001 -:102C8000000004404C43000870B503780546012B52 -:102C90005DD1494BD0F89040984259D1474B0E2115 -:102CA0006520D3F8D82042F00062C3F8D820D3F8CA -:102CB000002142F00062C3F80021D3F80021D3F8CC -:102CC000802042F00062C3F88020D3F8802022F0F8 -:102CD0000062C3F88020D3F8803000F071FC384BDC -:102CE000E360384BC4F800380023D5F89060C4F88E -:102CF000003EC02323604FF40413A3633369002B09 -:102D0000FCDA01230C203361FFF70CFA3369DB078F -:102D1000FCD41220FFF706FA3369002BFCDA0026F8 -:102D20002846A660FFF71CFF6B68C4F81068DB68D4 -:102D3000C4F81468C4F81C68002B3AD1224BA36174 -:102D40004FF0FF336361A36843F00103A36070BDDC -:102D50001E4B9842C8D1194B0E214D20D3F8D820D4 -:102D600042F00072C3F8D820D3F8002142F000727C -:102D7000C3F80021D3F80021D3F8802042F000727C -:102D8000C3F88020D3F8802022F00072C3F880209E -:102D9000D3F88020D3F8D82022F08062C3F8D8205E -:102DA000D3F8002122F08062C3F80021D3F800316B -:102DB00093E7074BC3E700BF044E002000440258CE -:102DC0004014004003002002003C30C0A04E002010 -:102DD000083C30C0F8B5D0F89040054600214FF0CF -:102DE00000662046FFF724FFD5F8941000234FF02B -:102DF00001128F684FF0FF30C4F83438C4F81C2833 -:102E000004EB431201339F42C2F80069C2F8006B21 -:102E1000C2F80809C2F8080BF2D20B68D5F8902066 -:102E2000C5F89830636210231361166916F0100616 -:102E3000FBD11220FFF776F9D4F8003823F4FE63B3 -:102E4000C4F80038A36943F4402343F01003A3619E -:102E50000923C4F81038C4F814380B4BEB604FF05A -:102E6000C043C4F8103B094BC4F8003BC4F81069D8 -:102E7000C4F80039D5F8983003F1100243F48013F8 -:102E8000C5F89820A362F8BD1C43000840800010DC -:102E9000D0F8902090F88A10D2F8003823F4FE631E -:102EA00043EA0113C2F80038704700002DE9F843E7 -:102EB00000EB8103D0F890500C468046DA680FFA98 -:102EC00081F94801166806F00306731E022B05EB14 -:102ED00041134FF0000194BFB604384EC3F8101BE5 -:102EE0004FF0010104F1100398BF06F1805601FA7A -:102EF00003F3916998BF06F5004600293AD0578A36 -:102F000004F15801374349016F50D5F81C180B43A1 -:102F10000021C5F81C382B180127C3F81019A74049 -:102F20005369611E9BB3138A928B9B08012A88BF49 -:102F30005343D8F89820981842EA034301F140021D -:102F40002146C8F89800284605EB82025360FFF737 -:102F50006FFE08EB8900C3681B8A43EA8453483438 -:102F60001E4364012E51D5F81C381F43C5F81C7848 -:102F7000BDE8F88305EB4917D7F8001B21F40041A1 -:102F8000C7F8001BD5F81C1821EA0303C0E704F1B9 -:102F90003F030B4A2846214605EB83035A60FFF79F -:102FA00047FE05EB4910D0F8003923F40043C0F880 -:102FB0000039D5F81C3823EA0707D7E7008000104E -:102FC00000040002D0F894201268C0F89820FFF79F -:102FD000C7BD00005831D0F8903049015B5813F458 -:102FE000004004D013F4001F0CBF022001207047E2 -:102FF0004831D0F8903049015B5813F4004004D0B8 -:1030000013F4001F0CBF02200120704700EB810168 -:10301000CB68196A0B6813604B68536070470000F7 -:1030200000EB810330B5DD68AA691368D36019B974 -:10303000402B84BF402313606B8A1468D0F8902023 -:103040001C4402EB4110013C09B2B4FBF3F46343AE -:10305000033323F0030343EAC44343F0C043C0F8FF -:10306000103B2B6803F00303012B0ED1D2F8083874 -:1030700002EB411013F4807FD0F8003B14BF43F003 -:10308000805343F00053C0F8003B02EB4112D2F8EA -:10309000003B43F00443C2F8003B30BD2DE9F04152 -:1030A000D0F8906005460C4606EB4113D3F8087B38 -:1030B0003A07C3F8087B08D5D6F814381B0704D59F -:1030C00000EB8103DB685B689847FA071FD5D6F8E9 -:1030D0001438DB071BD505EB8403D968CCB98B69A1 -:1030E000488A5A68B2FBF0F600FB16228AB91868C3 -:1030F000DA6890420DD2121AC3E90024202383F328 -:10310000118821462846FFF78BFF84F31188BDE81C -:10311000F081012303FA04F26B8923EA02036B8135 -:10312000CB68002BF3D021462846BDE8F041184774 -:1031300000EB81034A0170B5DD68D0F890306C690E -:103140002668E66056BB1A444FF40020C2F8100906 -:103150002A6802F00302012A0AB20ED1D3F8080845 -:1031600003EB421410F4807FD4F8000914BF40F040 -:10317000805040F00050C4F8000903EB4212D2F82E -:10318000000940F00440C2F800090122D3F83408D5 -:1031900002FA01F10143C3F8341870BD19B9402E89 -:1031A00084BF4020206020681A442E8A8419013C84 -:1031B000B4FBF6F440EAC44040F00050C6E700001B -:1031C0002DE9F041D0F8906004460D4606EB41131E -:1031D000D3F80879C3F80879FB071CD5D6F810385E -:1031E000DA0718D500EB8103D3F80CC0DCF81430F3 -:1031F000D3F800E0DA6896451BD2A2EB0E024FF03E -:1032000000081A60C3F80480202383F31188FFF7B5 -:103210008FFF88F311883B0618D50123D6F8342890 -:10322000AB40134212D029462046BDE8F041FFF7DB -:10323000C3BC012303FA01F2038923EA02030381D9 -:10324000DCF80830002BE6D09847E4E7BDE8F081D1 -:103250002DE9F84FD0F8905004466E69AB691E40D6 -:1032600016F480586E6103D0BDE8F84FFEF740BCFD -:10327000002E12DAD5F8003E9F0705D0D5F8003EA3 -:1032800023F00303C5F8003ED5F80438204623F0A8 -:103290000103C5F80438FEF757FC300505D5204674 -:1032A000FFF75EFC2046FEF73FFCB1040CD5D5F8D5 -:1032B000083813F0060FEB6823F470530CBF43F487 -:1032C000105343F4A053EB60320704D56368DB6806 -:1032D0000BB120469847F30200F1BA80B70226D519 -:1032E000D4F8909000274FF0010A09EB4712D2F86A -:1032F000003B03F44023B3F5802F11D1D2F8003BFB -:10330000002B0DDA62890AFA07F322EA03036381CC -:1033100004EB8703DB68DB6813B139462046984726 -:103320000137D4F89430FFB29B689F42DDD9F00694 -:1033300019D5D4F89000026AC2F30A1702F00F03FD -:1033400002F4F012B2F5802F00F0CC80B2F5402FDD -:1033500009D104EB8303002200F58050DB681B6A6F -:10336000974240F0B2803003D5F8185835D5E903BC -:1033700003D500212046FFF791FEAA0303D50121C2 -:103380002046FFF78BFE6B0303D502212046FFF793 -:1033900085FE2F0303D503212046FFF77FFEE802B9 -:1033A00003D504212046FFF779FEA90203D50521A4 -:1033B0002046FFF773FE6A0203D506212046FFF779 -:1033C0006DFE2B0203D507212046FFF767FEEF01B4 -:1033D00003D508212046FFF761FE700340F1A98064 -:1033E000E90703D500212046FFF7EAFEAA0703D527 -:1033F00001212046FFF7E4FE6B0703D5022120469A -:10340000FFF7DEFE2F0703D503212046FFF7D8FE86 -:10341000EE0603D504212046FFF7D2FEA80603D509 -:1034200005212046FFF7CCFE690603D5062120467C -:10343000FFF7C6FE2A0603D507212046FFF7C0FE88 -:10344000EB0576D520460821BDE8F84FFFF7B8BE5A -:10345000D4F8909000274FF0010AD4F894305FFA26 -:1034600087FB9B689B453FF639AF09EB4B13D3F8BD -:10347000002902F44022B2F5802F24D1D3F800298C -:10348000002A20DAD3F8002942F09042C3F800293C -:10349000D3F80029002AFBDB5946D4F89000FFF747 -:1034A000C7FB22890AFA0BF322EA0303238104EB08 -:1034B0008B03DB689B6813B15946204698475946F1 -:1034C0002046FFF779FB0137C7E7910701D1D0F814 -:1034D0000080072A02F101029CBF03F8018B4FEA2A -:1034E00018283DE704EB830300F58050DA68D2F832 -:1034F00018C0DCF80820DCE9001CA1EB0C0C002152 -:103500008F4208D1DB689B699A683A449A605A688E -:103510003A445A6027E711F0030F01D1D0F8008038 -:103520008C4501F1010184BF02F8018B4FEA182894 -:10353000E6E7BDE8F88F000008B50348FFF788FE0E -:10354000BDE80840FFF784BA044E002008B50348E0 -:10355000FFF77EFEBDE80840FFF77ABAA04E0020D4 -:10356000D0F8903003EB4111D1F8003B43F4001345 -:10357000C1F8003B70470000D0F8903003EB4111D8 -:10358000D1F8003943F40013C1F800397047000046 -:10359000D0F8903003EB4111D1F8003B23F4001335 -:1035A000C1F8003B70470000D0F8903003EB4111A8 -:1035B000D1F8003923F40013C1F800397047000036 -:1035C000090100F16043012203F56143C9B283F8A8 -:1035D000001300F01F039A4043099B0003F160436E -:1035E00003F56143C3F880211A60704730B5043396 -:1035F000039C0172002104FB0325C160C0E906534E -:10360000049B0363059BC0E90000C0E90422C0E9F4 -:103610000842C0E90A11436330BD00000022416A3C -:10362000C260C0E90411C0E90A226FF00101FEF78F -:10363000E9BD0000D0E90432934201D1C2680AB961 -:10364000181D704700207047036919600021C26887 -:103650000132C260C269134482699342036124BF8C -:10366000436A0361FEF7C2BD38B504460D46E36800 -:103670003BB162690020131D1268A3621344E36228 -:1036800007E0237A33B929462046FEF79FFD00283C -:10369000EDDA38BD6FF00100FBE70000C368C269D6 -:1036A000013BC3604369134482699342436124BF71 -:1036B000436A436100238362036B03B11847704779 -:1036C00070B52023044683F31188866A3EB9FFF75C -:1036D000CBFF054618B186F31188284670BDA36A52 -:1036E000E26A13F8015B9342A36202D32046FFF71C -:1036F000D5FF002383F31188EFE700002DE9F84F91 -:1037000004460E46174698464FF0200989F3118863 -:103710000025AA46D4F828B0BBF1000F09D14146D4 -:103720002046FFF7A1FF20B18BF311882846BDE8A2 -:10373000F88FD4E90A12A7EB050B521A934528BF5C -:103740009346BBF1400F1BD9334601F1400251F8BB -:10375000040B914243F8040BF9D1A36A403640357B -:103760004033A362D4E90A239A4202D32046FFF7EA -:1037700095FF8AF31188BD42D8D289F31188C9E731 -:1037800030465A46FDF71EFBA36A5E445D445B4427 -:10379000A362E7E710B5029C0433017204FB032126 -:1037A000C460C0E906130023C0E90A33039B036326 -:1037B000049BC0E90000C0E90422C0E90842436359 -:1037C00010BD0000026A6FF00101C260426AC0E9E8 -:1037D00004220022C0E90A22FEF714BDD0E9042326 -:1037E0009A4201D1C26822B9184650F8043B0B60D6 -:1037F0007047002070470000C3680021C269013390 -:10380000C3604369134482699342436124BF436A9E -:103810004361FEF7EBBC000038B504460D46E36893 -:103820003BB1236900201A1DA262E2691344E362DE -:1038300007E0237A33B929462046FEF7C7FC002863 -:10384000EDDA38BD6FF00100FBE700000369196095 -:10385000C268013AC260C26913448269934203613B -:1038600024BF436A036100238362036B03B11847DB -:103870007047000070B520230D460446114683F3BF -:103880001188866A2EB9FFF7C7FF10B186F3118839 -:1038900070BDA36A1D70A36AE26A01339342A362FA -:1038A00004D3E16920460439FFF7D0FF002080F3FC -:1038B0001188EDE72DE9F84F04460D4690469946EC -:1038C0004FF0200A8AF311880026B346A76A4FB941 -:1038D00049462046FFF7A0FF20B187F31188304604 -:1038E000BDE8F88FD4E90A073A1AA8EB0607974211 -:1038F00028BF1746402F1BD905F1400355F8042B6C -:103900009D4240F8042BF9D1A36A40364033A362AC -:10391000D4E90A239A4204D3E16920460439FFF727 -:1039200095FF8BF311884645D9D28AF31188CDE7EC -:1039300029463A46FDF746FAA36A3D443E443B44D5 -:10394000A362E5E7D0E904239A4217D1C3689BB18B -:10395000836A8BB1043B9B1A0ED01360C368013B92 -:10396000C360C3691A4483699A42026124BF436AEF -:103970000361002383620123184670470023FBE79D -:1039800000F0DAB8034B002258631A610222DA60B1 -:10399000704700BF000C0040014B0022DA60704706 -:1039A000000C0040014B5863704700BF000C004002 -:1039B000014B586A704700BF000C00404B684360E1 -:1039C0008B688360CB68C3600B6943614B6903629A -:1039D0008B6943620B6803607047000008B53C4B7D -:1039E00040F2FF713B48D3F888200A43C3F888208F -:1039F000D3F8882022F4FF6222F00702C3F888205F -:103A0000D3F88820D3F8E0200A43C3F8E020D3F8A5 -:103A100008210A43C3F808212F4AD3F80831114678 -:103A2000FFF7CCFF00F5806002F11C01FFF7C6FF35 -:103A300000F5806002F13801FFF7C0FF00F58060FB -:103A400002F15401FFF7BAFF00F5806002F1700146 -:103A5000FFF7B4FF00F5806002F18C01FFF7AEFFC5 -:103A600000F5806002F1A801FFF7A8FF00F5806073 -:103A700002F1C401FFF7A2FF00F5806002F1E0014E -:103A8000FFF79CFF00F5806002F1FC01FFF796FF55 -:103A900002F58C7100F58060FFF790FF00F000F9EF -:103AA0000E4BD3F8902242F00102C3F89022D3F8D3 -:103AB000942242F00102C3F894220522C3F8982010 -:103AC0004FF06052C3F89C20054AC3F8A02008BDFF -:103AD00000440258000002585843000800ED00E07E -:103AE0001F00080308B500F0F3FAFEF7DFFA0F4BEA -:103AF000D3F8DC2042F04002C3F8DC20D3F80421E4 -:103B000022F04002C3F80421D3F80431084B1A68AC -:103B100042F008021A601A6842F004021A60FEF7C6 -:103B200049FFBDE80840FEF7E9BC00BF0044025869 -:103B30000018024870470000114BD3F8E82042F00B -:103B40000802C3F8E820D3F8102142F00802C3F8B5 -:103B500010210C4AD3F81031D36B43F00803D36320 -:103B6000C722094B9A624FF0FF32DA6200229A6153 -:103B70005A63DA605A6001225A611A60704700BFC6 -:103B8000004402580010005C000C0040094A08B5CF -:103B90001169D3680B40D9B29B076FEA010111612B -:103BA00007D5202383F31188FEF7A0FA002383F3BF -:103BB000118808BD000C0040384B4FF0FF31D3F89E -:103BC0008020C3F88010D3F880200022C3F8802022 -:103BD000D3F88000D3F88400C3F88410D3F88400AD -:103BE000C3F88420D3F88400D86F40F0FF4040F43D -:103BF000FF0040F43F5040F03F00D867D86F20F0FE -:103C0000FF4020F4FF0020F43F5020F03F00D86731 -:103C1000D86FD3F888006FEA40506FEA5050C3F86D -:103C20008800D3F88800C0F30A00C3F88800D3F8EE -:103C30008800D3F89000C3F89010D3F89000C3F830 -:103C40009020D3F89000D3F89400C3F89410D3F8E0 -:103C50009400C3F89420D3F89400D3F89800C3F8E4 -:103C60009810D3F89800C3F89820D3F89800D3F8A8 -:103C70008C00C3F88C10D3F88C00C3F88C20D3F8D8 -:103C80008C00D3F89C00C3F89C10D3F89C10C3F8A8 -:103C90009C20D3F89C3000F0E7B900BF00440258E4 -:103CA000614B0122C3F80821604BD3F8F42042F0A5 -:103CB0000202C3F8F420D3F81C2142F00202C3F838 -:103CC0001C210222D3F81C31594BDA605A68910446 -:103CD000FCD5584A1A6001229A60574ADA600022DD -:103CE0001A614FF440429A61514B9A699204FCD593 -:103CF0001A6842F480721A604C4B1A6F12F4407FBB -:103D000004D04FF480321A6700221A671A6842F012 -:103D100001021A60454B1A685007FCD500221A614F -:103D20001A6912F03802FBD1012119604FF080416D -:103D300059605A67414ADA62414A1A611A6842F484 -:103D400080321A60394B1A689103FCD51A6842F424 -:103D500080521A601A689204FCD53A4A3A499A622B -:103D600000225A6319633949DA6399635A64384AFD -:103D70001A64384ADA621A6842F0A8521A602B4B69 -:103D80001A6802F02852B2F1285FF9D148229A61EC -:103D90004FF48862DA6140221A622F4ADA644FF0E7 -:103DA00080521A652D4A5A652D4A9A6532232D4A4A -:103DB0001360136803F00F03022BFAD11B4B1A692F -:103DC00042F003021A611A6902F03802182AFAD185 -:103DD000D3F8DC2042F00052C3F8DC20D3F80421F1 -:103DE00042F00052C3F80421D3F80421D3F8DC20B8 -:103DF00042F08042C3F8DC20D3F8042142F0804234 -:103E0000C3F80421D3F80421D3F8DC2042F00042A7 -:103E1000C3F8DC20D3F8042142F00042C3F80421A7 -:103E2000D3F80431704700BF0080005100440258AD -:103E30000048025800C000F0020000010000FF012D -:103E40000088900832206000630209011D0204000E -:103E500047040508FD0BFF01200000200010E000D2 -:103E600000010100002000524FF0B04208B5D2F826 -:103E7000883003F00103C2F8883023B1044A136884 -:103E80000BB150689847BDE80840FEF7E1BD00BFA0 -:103E9000544F00204FF0B04208B5D2F8883003F0FC -:103EA0000203C2F8883023B1044A93680BB1D0688A -:103EB0009847BDE80840FEF7CBBD00BF544F002037 -:103EC0004FF0B04208B5D2F8883003F00403C2F8CE -:103ED000883023B1044A13690BB150699847BDE893 -:103EE0000840FEF7B5BD00BF544F00204FF0B04270 -:103EF00008B5D2F8883003F00803C2F8883023B13F -:103F0000044A93690BB1D0699847BDE80840FEF7B1 -:103F10009FBD00BF544F00204FF0B04208B5D2F80B -:103F2000883003F01003C2F8883023B1044A136AC2 -:103F30000BB1506A9847BDE80840FEF789BD00BF45 -:103F4000544F00204FF0B04310B5D3F8884004F42C -:103F50007872C3F88820A30604D5124A936A0BB17D -:103F6000D06A9847600604D50E4A136B0BB1506BAC -:103F70009847210604D50B4A936B0BB1D06B984739 -:103F8000E20504D5074A136C0BB1506C9847A305A2 -:103F900004D5044A936C0BB1D06C9847BDE810402F -:103FA000FEF756BD544F00204FF0B04310B5D3F884 -:103FB000884004F47C42C3F88820620504D5164A80 -:103FC000136D0BB1506D9847230504D5124A936DBC -:103FD0000BB1D06D9847E00404D50F4A136E0BB1B6 -:103FE000506E9847A10404D50B4A936E0BB1D06E66 -:103FF0009847620404D5084A136F0BB1506F984775 -:10400000230404D5044A936F0BB1D06F9847BDE8E1 -:104010001040FEF71DBD00BF544F002008B50348F7 -:10402000FDF708F9BDE80840FEF712BDCC230020DB -:1040300008B50348FDF7FEF8BDE80840FEF708BDE7 -:104040003824002008B50348FDF7F4F8BDE808401F -:10405000FEF7FEBCA424002008B5FFF797FDBDE8DD -:104060000840FEF7F5BC0000062108B50846FFF73A -:10407000A7FA06210720FFF7A3FA06210820FFF779 -:104080009FFA06210920FFF79BFA06210A20FFF775 -:1040900097FA06211720FFF793FA06212820FFF749 -:1040A0008FFA09217A20FFF78BFA07213220FFF7D8 -:1040B00087FA0C212620FFF783FA0C212720FFF72F -:1040C0007FFA0C215220BDE80840FFF779BA0000C2 -:1040D00008B5FFF771FD00F00DF8FDF7BDFAFDF72B -:1040E00095FCFDF767FBFFF725FDBDE80840FFF7EE -:1040F00047BC00000023054A19460133102BC2E9D2 -:10410000001102F10802F8D1704700BF544F00209F -:1041100010B501390244904201D1002005E0037836 -:1041200011F8014FA34201D0181B10BD0130F2E776 -:10413000034611F8012B03F8012B002AF9D170472F -:1041400053544D333248373F3F3F0053544D333281 -:10415000483734332F37353300000000C832002091 -:10416000CC23002038240020A42400200096000046 -:10417000000000000000000000000000000000003F -:104180000000000000000000211600080D160008C5 -:104190004916000835160008411600082D160008BB -:1041A0001916000805160008551600080000000042 -:1041B000311700081D170008591700084517000897 -:1041C000511700083D1700082917000815170008A7 -:1041D000651700080000000001000000000000005A -:1041E0006D61696E0000000069646C65000000008C -:1041F000E841000850310020C832002001000000D2 -:10420000A9200008000000004375626550696C6FCA -:1042100074004A6F65792D424C002553455249413F -:104220004C250000020000000000000051190008A9 -:10423000C119000840004000704B0020804B002056 -:104240000200000000000000030000000000000069 -:10425000091A00080000000010000000904B002028 -:10426000000000000100000000000000044E0020DB -:104270000101020099240008A92300084524000830 -:1042800029240008430000008C4200080902430072 -:10429000020100C0320904000001020201000524ED -:1042A0000010010524010001042402020524060077 -:1042B00001070582030800FF09040100020A00004B -:1042C00000070501024000000705810240000000D0 -:1042D00012000000D8420008120110010200004044 -:1042E000AE2D561000020102030100000403090470 -:1042F00025424F4152442500437562654F72616EFD -:1043000067652D6A6F657900303132333435363761 -:104310003839414243444546000000000000000097 -:104320005D1B0008151E0008C11E0008400040006B -:104330003C4F00203C4F0020010000004C4F00206B -:1043400080000000400100000800000000010000A3 -:1043500000040000080000000000812A00000000A6 -:10436000AAAAAAAA00000024FFFE00000000000084 -:1043700000A00A000001000000000000AAAAAAAAEA -:1043800000000000FFFF000000000000000000002F -:104390001400005400000000AAAAAAAA14000054A5 -:1043A000FFFF0000000000000000000000681A008D -:1043B00000000000AAAA8AAA00541500FFFF00000E -:1043C000000070077700000040810200000000003C -:1043D000AAAAAAAA00410100F7FF0000000000708D -:1043E000070000000000000000000000AAAAAAAA1E -:1043F00000000000FFFF00000000000000000000BF -:104400000000000000000000AAAAAAAA0000000004 -:10441000FFFF00000000000000000000000000009E -:1044200000000000AAAAAAAA00000000FFFF0000E6 -:10443000000000000000000000000000000000007C -:10444000AAAAAAAA00000000FFFF000000000000C6 -:10445000000000000000000000000000AAAAAAAAB4 -:1044600000000000FFFF000000000000000000004E -:104470000000000000000000AAAAAAAA0000000094 -:10448000FFFF00000000000000000000000000002E -:10449000090400000000000000001E0000000000F1 -:1044A000FF00000000000000404100083F00000045 -:1044B000500400004B4100083F000000009600003F -:1044C0000000080096000000000800000400000042 -:1044D000EC420008000000000000000000000000A6 -:0C44E000000000000000000000000000D0 +:1000000000060020E1020008E3020008E302000805 +:10001000E3020008E3020008E3020008E30200082C +:10002000E3020008E3020008E3020008E9760008A2 +:10003000E3020008E3020008E3020008E30200080C +:10004000E3020008E3020008E3020008E3020008FC +:10005000E3020008E3020008F58500082186000895 +:100060004D86000879860008A5860008014600082C +:10007000294600085546000881460008AD4600089C +:10008000D546000801470008E3020008E302000823 +:10009000E3020008E3020008E3020008D18600083A +:1000A000E3020008E3020008E3020008E30200089C +:1000B000E3020008E3020008E3020008E30200088C +:1000C000E3020008E3020008E3020008E30200087C +:1000D000E3020008E3020008BD870008D18700089A +:1000E00035870008E3020008E3020008E302000885 +:1000F000E3020008E3020008E30200082D470008BD +:10010000E3020008A9870008F9870008E302000855 +:10011000E3020008E3020008E3020008E30200082B +:100120005947000881470008AD470008D947000833 +:1001300005480008E3020008E3020008E3020008A3 +:10014000E3020008E3020008E3020008E3020008FB +:100150002D4800085948000885480008E3020008B7 +:10016000E3020008E3020008E3020008E3020008DB +:10017000E3020008D5820008E3020008E302000859 +:10018000E3020008E3020008E5870008E302000834 +:10019000E3020008E3020008E3020008E3020008AB +:1001A000E3020008E3020008E3020008E30200089B +:1001B000E3020008E3020008E3020008E30200088B +:1001C000E3020008E3020008E3020008E30200087B +:1001D000E3020008C1820008E3020008E30200080D +:1001E000E3020008E3020008E3020008E30200085B +:1001F000E3020008E3020008E3020008E30200084B +:10020000E3020008E3020008E3020008E30200083A +:10021000E3020008E3020008E3020008E30200082A +:10022000E3020008E3020008E3020008E30200081A +:10023000E3020008E3020008E3020008E30200080A +:10024000E3020008E3020008E3020008E3020008FA +:10025000E3020008E3020008E3020008E3020008EA +:10026000E3020008E3020008E3020008E3020008DA +:10027000E3020008E3020008E3020008E3020008CA +:10028000E3020008E3020008E3020008E3020008BA +:10029000E3020008E3020008E3020008E3020008AA +:1002A000E3020008E3020008E3020008E30200089A +:1002B000E3020008E3020008E3020008E30200088A +:1002C000E3020008E3020008E3020008E30200087A +:1002D000E3020008E3020008E3020008E30200086A +:1002E00002E000F000F8FEE772B6374880F30888B5 +:1002F000364880F3098836483649086040F20000E5 +:10030000CCF200004EF63471CEF200010860BFF36B +:100310004F8FBFF36F8F40F20000C0F2F0004EF637 +:100320008851CEF200010860BFF34F8FBFF36F8F8B +:100330004FF00000E1EE100A4EF63C71CEF20001E3 +:100340000860062080F31488BFF36F8F07F02EFA41 +:1003500006F0A0FB4FF055301F491B4A91423CBFAD +:1003600041F8040BFAE71D49184A91423CBF41F895 +:10037000040BFAE71A491B4A1B4B9A423EBF51F83D +:10038000040B42F8040BF8E700201849184A914280 +:100390003CBF41F8040BFAE707F046FA06F0FEFB13 +:1003A000144C154DAC4203DA54F8041B8847F9E7A6 +:1003B00000F0C4F9114C124DAC4203DA54F8041B9E +:1003C0008847F9E707F02EBA000600200022002037 +:1003D0000000000808ED00E00000002000060020FA +:1003E000909C000800220020742200207822002027 +:1003F00034670020E0020008E0020008E002000884 +:10040000E00200082DE9F04F2DED108AC1F80CD064 +:10041000D0F80CD0BDEC108ABDE8F08F002383F338 +:1004200011882846A047002006F016F9FEE706F0DE +:100430006FF800DFFEE7000053B94AB9002908BF92 +:1004400000281CBF4FF0FF314FF0FF3000F074B9AF +:10045000ADF1080C6DE904CE00F006F8DDF804E01B +:10046000DDE9022304B070472DE9F047089D0446FA +:100470008E46002B4DD18A42944669D9B2FA82F257 +:1004800052B101FA02F3C2F1200120FA01F10CFA93 +:1004900002FC41EA030E94404FEA1C48210CBEFBCB +:1004A000F8F61FFA8CF708FB16E341EA034306FB54 +:1004B00007F199420AD91CEB030306F1FF3080F0E3 +:1004C0001F81994240F21C81023E63445B1AA4B230 +:1004D000B3FBF8F008FB103344EA034400FB07F7D2 +:1004E000A7420AD91CEB040400F1FF3380F00A8113 +:1004F000A74240F207816444023840EA0640E41B08 +:1005000000261DB1D4400023C5E900433146BDE8B3 +:10051000F0878B4209D9002D00F0EF800026C5E955 +:10052000000130463146BDE8F087B3FA83F6002E6D +:100530004AD18B4202D3824200F2F980841A61EBE5 +:10054000030301209E46002DE0D0C5E9004EDDE703 +:1005500002B9FFDEB2FA82F2002A40F09280A1EBEB +:100560000C014FEA1C471FFA8CFE0126200CB1FB40 +:10057000F7F307FB131140EA01410EFB03F0884239 +:1005800008D91CEB010103F1FF3802D2884200F2C6 +:10059000CB804346091AA4B2B1FBF7F007FB101158 +:1005A00044EA01440EFB00FEA64508D91CEB0404F6 +:1005B00000F1FF3102D2A64500F2BB800846A4EB51 +:1005C0000E0440EA03409CE7C6F12007B34022FA3C +:1005D00007FC4CEA030C20FA07F401FA06F31C436B +:1005E000F9404FEA1C4900FA06F3B1FBF9F8200C78 +:1005F0001FFA8CFE09FB181140EA014108FB0EF0BE +:10060000884202FA06F20BD91CEB010108F1FF3A0D +:1006100080F08880884240F28580A8F10208614419 +:10062000091AA4B2B1FBF9F009FB101144EA014127 +:1006300000FB0EFE8E4508D91CEB010100F1FF34D2 +:100640006CD28E456AD90238614440EA0840A0FB6A +:100650000294A1EB0E01A142C846A64656D353D040 +:100660005DB1B3EB080261EB0E0101FA07F722FA64 +:1006700006F3F1401F43C5E9007100263146BDE88D +:10068000F087C2F12003D8400CFA02FC21FA03F3F0 +:10069000914001434FEA1C471FFA8CFEB3FBF7F071 +:1006A00007FB10360B0C43EA064300FB0EF69E4296 +:1006B00004FA02F408D91CEB030300F1FF382FD22F +:1006C0009E422DD9023863449B1B89B2B3FBF7F6D7 +:1006D00007FB163341EA034106FB0EF38B4208D9B0 +:1006E0001CEB010106F1FF3816D28B4214D9023EF1 +:1006F0006144C91A46EA004638E72E46284605E70F +:100700000646E3E61846F8E64B45A9D2B9EB0208DF +:1007100064EB0C0E0138A3E74646EAE7204694E76F +:100720004046D1E7D0467BE7023B614432E73046A2 +:1007300009E76444023842E7704700BF38B501F06A +:10074000FFF901F0AFFB06F0BDFE054606F0C2FF63 +:100750000446D0B90F4B9D4219D001339D4241F25E +:10076000883504BF01240025002006F0B5FE0CB139 +:1007700000F078F801F036FB00F026FD08B100F03B +:1007800071F8284600F01CF9F9E70025ECE705466A +:10079000EAE700BF010007B008B501F09DF9A0F13C +:1007A00020035842584108BD07B541F21203022107 +:1007B00001A8ADF8043001F0ADF903B05DF804FB19 +:1007C00038B5302383F31188174803680BB106F05E +:1007D00027F80023154A4FF47A71134806F016F8EB +:1007E000002383F31188124C236813B12368013B63 +:1007F0002360636813B16368013B63600D4D2B7820 +:1008000033B963687BB9022001F056FA3223636082 +:100810002B78032B07D163682BB9022001F04CFA27 +:100820004FF47A73636038BD78220020C107000856 +:100830009823002090220020084B187003280CD821 +:10084000DFE800F008050208022001F02BBA0220C0 +:1008500001F01EBA024B00225A607047902200201D +:1008600098230020F8B5504B504A1C4619680131B6 +:1008700000F0998004339342F8D162684C4B9A425D +:1008800040F291804B4B9B6803F1006303F500330A +:100890009A4280F08880002001F06CF90220FFF776 +:1008A000CBFF454B0021D3F8E820C3F8E810D3F87C +:1008B0001021C3F81011D3F81021D3F8EC20C3F89D +:1008C000EC10D3F81421C3F81411D3F81421D3F881 +:1008D000F020C3F8F010D3F81821C3F81811D3F89A +:1008E0001821D3F8802042F00062C3F88020D3F8AA +:1008F000802022F00062C3F88020D3F88020D3F853 +:10090000802042F00072C3F88020D3F8802022F0CB +:100910000072C3F88020D3F8803072B64FF0E02325 +:10092000C3F8084DD4E90004BFF34F8FBFF36F8FB6 +:10093000224AC2F88410BFF34F8F536923F48033E7 +:100940005361BFF34F8FD2F8803043F6E076C3F3A4 +:10095000C905C3F34E335B0103EA060C29464CEA92 +:1009600081770139C2F87472F9D2203B13F1200F5C +:10097000F2D1BFF34F8FBFF36F8FBFF34F8FBFF332 +:100980006F8F536923F4003353610023C2F8503250 +:10099000BFF34F8FBFF36F8F302383F311888546EA +:1009A00080F308882047F8BD0000020820000208F4 +:1009B000FFFF0108002200200044025800ED00E083 +:1009C0002DE9F04F93B0B44B2022FF2100900AA8EC +:1009D0009D6801F0B1F9B14A1378A3B90121B0487B +:1009E00011700360302383F3118803680BB105F0A5 +:1009F00017FF0023AB4A4FF47A71A94805F006FFB0 +:100A0000002383F31188009B13B1A74B009A1A604F +:100A1000A64A1378032B03D000231370A24A536015 +:100A20004FF0000A009CD3465646D146012001F003 +:100A300039F924B19C4B1B68002B00F02682002062 +:100A400001F04AF80390039B002BF2DB012001F038 +:100A50001FF9039B213B1F2BE8D801A252F823F07A +:100A6000E10A0008090B00089D0B00082D0A000888 +:100A70002D0A00082D0A00082F0C0008FF0D0008A1 +:100A8000190D00087B0D0008A30D0008C90D000812 +:100A90002D0A0008DB0D00082D0A00084D0E000885 +:100AA000810B00082D0A0008910E0008ED0A0008CD +:100AB000810B00082D0A00087B0D00082D0A000894 +:100AC0002D0A00082D0A00082D0A00082D0A00082A +:100AD0002D0A00082D0A00082D0A00089D0B0008A9 +:100AE0000220FFF759FE002840F0F981009B022107 +:100AF00005A8BAF1000F08BF1C4641F21233ADF849 +:100B0000143001F007F891E74FF47A7000F0E4FF39 +:100B1000071EEBDB0220FFF73FFE0028E6D0013F77 +:100B2000052F00F2DE81DFE807F0030A0D1013360F +:100B30000523042105A8059300F0ECFF17E004212C +:100B40005548F9E704215A48F6E704215948F3E7E4 +:100B50004FF01C08404608F1040801F00DF804218C +:100B6000059005A800F0D6FFB8F12C0FF2D10120B6 +:100B70004FF0000900FA07F747EA0B0B5FFA8BFB0F +:100B800001F026F926B10BF00B030B2B08BF002454 +:100B9000FFF70AFE4AE704214748CDE7002EA5D01B +:100BA0000BF00B030B2BA1D10220FFF7F5FD07463D +:100BB00000289BD00120002600F0DCFF0220FFF778 +:100BC0003BFE1FFA86F8404600F0E4FF0446B0B151 +:100BD000039940460136A1F140025142514100F0D3 +:100BE000E9FF0028EDD1BA46044641F21213022172 +:100BF00005A83E46ADF8143000F08CFF16E72546F8 +:100C00000120FFF719FE244B9B68AB4207D9284609 +:100C100000F0B2FF013040F067810435F3E70025B2 +:100C2000224BBA463E461D701F4B5D60A8E7002E62 +:100C30003FF45CAF0BF00B030B2B7FF457AF02209C +:100C4000FFF7FAFD322000F047FFB0F10008FFF691 +:100C50004DAF18F003077FF449AF0F4A08EB0503C7 +:100C6000926893423FF642AFB8F5807F3FF73EAFC0 +:100C7000124BB845019323DD4FF47A7000F02CFF3E +:100C80000390039A002AFFF631AF039A0137019BC4 +:100C900003F8012BEDE700BF002200209423002081 +:100CA00078220020C107000898230020902200200D +:100CB00004220020082200200C2200209422002080 +:100CC000C820FFF769FD074600283FF40FAF1F2D2E +:100CD00011D8C5F120020AAB25F003008449424532 +:100CE000184428BF4246019201F000F8019AFF2102 +:100CF0007F4801F021F84FEAA803C8F387027C4936 +:100D00002846019301F020F8064600283FF46DAF15 +:100D1000019B05EB830533E70220FFF73DFD00282B +:100D20003FF4E4AE00F064FF00283FF4DFAE00279C +:100D3000B846704B9B68BB4218D91F2F11D80A9B2D +:100D400001330ED027F0030312AA134453F8203CBA +:100D500005934046042205A9043701F0FFF88046B8 +:100D6000E7E7384600F008FF0590F2E7CDF8148079 +:100D7000042105A800F0CEFE02E70023642104A8A8 +:100D8000049300F0BDFE00287FF4B0AE0220FFF710 +:100D900003FD00283FF4AAAE049800F01FFF059061 +:100DA000E6E70023642104A8049300F0A9FE0028CC +:100DB0007FF49CAE0220FFF7EFFC00283FF496AED4 +:100DC000049800F00DFFEAE70220FFF7E5FC002899 +:100DD0003FF48CAE00F01CFFE1E70220FFF7DCFCE3 +:100DE00000283FF483AE05A9142000F017FF074642 +:100DF0000421049004A800F08DFE3946B9E73220A2 +:100E000000F06AFE071EFFF671AEBB077FF46EAE00 +:100E1000384A07EB0903926893423FF667AE022017 +:100E2000FFF7BAFC00283FF461AE27F003074F44F8 +:100E3000B9453FF4A5AE484609F1040900F09CFE0F +:100E40000421059005A800F065FEF1E74FF47A70E3 +:100E5000FFF7A2FC00283FF449AE00F0C9FE0028CD +:100E600044D00A9B01330BD008220AA9002000F0CD +:100E70006BFF00283AD02022FF210AA800F05CFF77 +:100E8000FFF792FC1C4805F0EDFB13B0BDE8F08FB6 +:100E9000002E3FF42BAE0BF00B030B2B7FF426AE92 +:100EA0000023642105A8059300F02AFE07460028C8 +:100EB0007FF41CAE0220FFF76FFC804600283FF451 +:100EC00015AEFFF771FC41F2883005F0CBFB0598B9 +:100ED00000F0C6FF46463C4600F07AFFA6E506460F +:100EE0004EE64FF0000901E6BA467EE637467CE65C +:100EF0009422002000220020A086010070470000FC +:100F000070470000704700002DE9F04100F5803780 +:100F1000044616463B7C5BB9C0681030204400F0A4 +:100F2000E5FEE5683544B5F5004FE56002D816B139 +:100F3000BDE8F081DEB905F07F0605F11000002163 +:100F4000C6F180062044F6B232462E4400F0F4FE8C +:100F5000A06804F11008324600F10060414600F537 +:100F6000003006F05BF830B901233B74E0E74FF442 +:100F700000463546ECE7A26805F1100140463244D0 +:100F80002144A260E268521BE26000F0AFFE022042 +:100F9000BDE8F04100F090BE183000F0E9BC000060 +:100FA00010B5044600F0F6FF204610BD10B504460B +:100FB00000F0F0FF204610BDC3B280B2A3F14102A1 +:100FC000052A02D8373800B27047613B052B94BF21 +:100FD00057383038F7E70000F8B50446154608469C +:100FE00003220C4900F08CFE014688B908346F1CBE +:100FF00015F91100FFF7E0FF064617F9110001315E +:10100000FFF7DAFF102940EA061004F8010BEFD1D0 +:10101000F8BD00BF4C9200082DE9F04FADF53F7DC3 +:101020000746416801222AA802F096FE002840F0F7 +:1010300087800646824681461125DFF80C81DFF85D +:101040000CB101AB4FF4805241462AA802F0E4FFF4 +:10105000002875D1019AB2F5805F71D8002A65D059 +:101060000446019A9442ECD2282D0FD008DC132DAF +:101070002DD01E2D39D0112D13D00134A4B2F0E79C +:10108000322D2DD0372D2FD02D2DF6D13B68121BB0 +:1010900008EB040138461B692D259847BDF804402C +:1010A000EBE7121B022A09D9594608EB040000F0AD +:1010B00027FE18B902342825A4B2DEE718F8043058 +:1010C0003A2B3DD00A2B1CBFA1461325D5E718F8B3 +:1010D00004300A2B34D03A2B04BFA2463225CCE789 +:1010E00018F80430202BC8D0264618F804300A2BF4 +:1010F0001AD1AAEB090208EB090102A811254F2A0F +:1011000028BF4F2208F08EF8A21B08EB060116A894 +:101110004F2A28BF4F2208F085F83B6816AA02A97B +:10112000DB6838469847A8E71E25A6E73B6838469F +:1011300004491B69984701200DF53F7DBDE8F08FFC +:101140000020F9E74E930008A023002050920008E9 +:1011500000F1180110B5044686B00846019100F070 +:10116000F1FB2046FFF758FF60B1019902A800F09B +:1011700049FC102204F1080102A808F013F8B0FAA3 +:1011800080F0400906B010BD70B504460025EEB2EF +:10119000304600F0FFFC58B100213046013500F028 +:1011A00009FD08B9002070BD022000F085FDEEE7C2 +:1011B0002046FFF731FF0028F4D004F58034207C6E +:1011C00080F00100EFE70000F0B5C9B006F092F939 +:1011D00000F0FCFE18B90025284649B0F0BD69466C +:1011E0002A4802F0DBFF00284BD1294C204603F0AF +:1011F00005F8284803F002F8274802F0FFFF2146CF +:10120000224803F077F80028E5D1702000F0BCFEFA +:10121000064610B1214B44600360336830469B683A +:101220009847054600282ED01A4F1948394603F032 +:1012300061F805460028CED1194800F0A5FE044605 +:1012400038B1184B4760036000F58033C0E90255A0 +:101250001D74236820469B689847054628B10E49AF +:101260000C4803F047F80028B5D1336830465B6876 +:1012700098471CB1236820465B68984700F08EFEB3 +:10128000AAE70025FAE70446EFE700BF54920008FA +:10129000649200087B92000891920008B4920008C2 +:1012A00014000100D09200082DE9F04FD44A8DB00F +:1012B0000B68D0F804A001931A440368D14E1A4475 +:1012C000D1F81C90DFF8B4C3DFF8B4B3D0E902342E +:1012D000634003EA0A03634013444A6802920AEB3C +:1012E0007363029CC84A2244C468224484688AEA20 +:1012F00004051D40654015448A68039203EB35558B +:10130000039CC24A2244846822448AEA03042C4093 +:1013100084EA0A041444CA6805EBF43404921644BF +:1013200083EA0502224056445A4032440E6905962B +:1013300004EBB222059FB64E3E441E4485EA0403E8 +:1013400013406B4033444E69069602EB7363069F6D +:10135000B04E3E442E4484EA02051D4065403544AB +:101360008E69079603EB3555079FAB4E3E442644E6 +:1013700082EA03042C4054403444A84E4E4405EB0A +:10138000F434164483EA050222405A4032440E6A7D +:10139000089604EBB222089FA14E3E441E4485EA03 +:1013A000040313406B4033444E6A099602EB7363A7 +:1013B000099F9C4ED1F830E03E44D1F83880F34488 +:1013C0002E4484EA02051D40654035448E6AA6F528 +:1013D000244703EB35550A964F3F274482EA03041E +:1013E0002C4054403C44CF6A0B9705EBF4340B9EE1 +:1013F0008D4F3744029E174483EA050222405A402B +:101400003A448A4F774404EBB2221F4485EA04032E +:1014100013406B403B444F6BBC4402EB7363654429 +:1014200084EA020C0CEA030C8CEA040C6544DFF835 +:1014300054C2C44403EB3555A44482EA03042C404F +:1014400054406444D1F83CC0794905EBF43461441C +:10145000114483EA050222405A400A44754904EBCC +:10146000B2223144079E194484EA02032B406340B0 +:101470000B44714902EBF36331440B9E0D4482EA45 +:1014800003012140514029446C4D03EBF151354497 +:10149000019E254483EA010414405C402C44684DBD +:1014A00001EBB4443544069E154481EA04021A4017 +:1014B0004A402A44634D04EB323235440A9E1D44AF +:1014C00084EA02030B4063402B445F4D02EBF3635D +:1014D0003544059E0D4482EA0301214051402944D0 +:1014E0005A4D03EBF1516544254483EA010414404D +:1014F0005C402C44564D01EBB4443544099E1544E0 +:1015000081EA04021A404A402A44524D04EB323226 +:101510003544049E1D4484EA02030B4063402B447F +:101520004D4D02EBF36345440D4482EA0301214033 +:1015300051402944494D03EBF1513544089E2C4458 +:1015400083EA010515405D402C44454D01EBB44450 +:101550003544039E2A4481EA04051D404D402A4437 +:10156000404D04EB32323D442B4484EA020593445F +:101570000D4065402B443C4D02EBF3633544069E21 +:10158000294482EA0305254055402944374D03EBA1 +:10159000F1514D442C4483EA010515405D4025443A +:1015A00001EBB54581EA050404EA03024A405A44C6 +:1015B000A6F5B82B089E05EB3232ABF2BE6B544059 +:1015C0005B4423442A4C344402EB33730B9E0C449B +:1015D00085EA020159402144264C344403EB715101 +:1015E000029E254482EA03044C402544224C444494 +:1015F00001EB3545144483EA01026A40224443E08A +:1016000078A46AD7EECEBDC156B7C7E8DB702024F8 +:10161000AF0F7CF52AC68747134630A8019546FDD3 +:10162000D8988069AFF7448BBED75C892211906B44 +:101630002108B44962251EF640B340C0515A5E26C7 +:10164000AAC7B6E95D102FD65314440281E6A1D88B +:10165000C8FBD3E7E6CDE121D60737C3870DD5F424 +:10166000ED145A4505E9E3A9F8A3EFFCD9026F6729 +:1016700081F6718722619D6D0C38E5FD937198FDAF +:101680008A4C2A8D8E4379A6934C344405EB722202 +:10169000059E1C4481EA0503534023448F4C344487 +:1016A00002EB33730A9E0C4485EA0201594021443F +:1016B0008B4C4C4403EB7151254482EA03044C40AB +:1016C0002C44884D354401EB3444019E154483EA93 +:1016D000010262402A44844D3D4404EB72221D44C1 +:1016E00081EA040353402B44804D354402EB3373AD +:1016F000049E294484EA02055D4029447C4D35441A +:1017000003EB7151079E254482EA03044C402C44AC +:10171000784D354401EB3444099E2A4483EA01059F +:1017200065401544744A324404EB7525039E134406 +:1017300081EA04026A401A44704B734405EB32722A +:101740000B4484EA0501514019446D4B634402EB9C +:1017500071511C4485EA02034B401C44694B3344DD +:1017600001EB3444019E1D4482EA010363402B4493 +:10177000654D04EB73233544069E154463EA01026C +:1017800062402A44614D03EBB2624D4462EA0409AF +:1017900029445F4D89EA0309454449442C445D4D81 +:1017A00002EBB1513544049E61EA03081D4488EA06 +:1017B0000208444401EB744464EA02034B402B44A6 +:1017C000554D04EBF323754463EA010E15448EEA8C +:1017D000040E0EEB0502514D03EBB262354462EA92 +:1017E000040E29440A9D8EEA030EA5F580164C4D81 +:1017F0007144A6F6833602EBB151264461EA030434 +:1018000054403444029E01EB7444354464EA0206B9 +:101810001D444E407319089E424D04EBF32335449A +:1018200063EA01061544664072193F4D03EBB2624C +:10183000654462EA040629443C4D5E403144079EFB +:1018400002EBB151354461EA03062C44384D564051 +:101850003D443444059E1D4401EB744464EA020394 +:101860004B402B44334D04EBF32335440B9E15447E +:1018700063EA010262402A442F4D03EBB262354411 +:10188000039E0D4462EA0401594029442B4D02EBAA +:10189000B15135442A4E254461EA030454402C4496 +:1018A000099D01EB74442E4464EA02051E4485EA56 +:1018B00001039D1903681A440AEB040303EBF523A3 +:1018C0000260436083681C44C36819448460C1603B +:1018D0000DB0BDE8F08F00BF44EABEA4A9CFDE4B37 +:1018E000604BBBF670BCBFBEC67E9B28FA27A1EA40 +:1018F0008530EFD4051D880439D0D4D9E599DBE6CD +:10190000F87CA21F6556ACC4442229F497FF2A43F1 +:10191000A72394AB39A093FCC3595B6592CC0C8F81 +:10192000D15D84854F7EA86FE0E62CFE144301A3B1 +:10193000A111084E827E53F735F23ABDBBD2D72AA9 +:1019400091D386EB094B036003F18833436003F1C5 +:101950002943A3F59613A3F68B638360A3F1883321 +:10196000C3600023C0E90433704700BF012345670B +:101970002DE9F8431446026905460E46E300C2F31A +:10198000C50800F118079B18036122BF43690133A2 +:10199000436112F4FC7F436903EB5473436114D039 +:1019A000C8F1400907EB08004C4504D22246BDE8C7 +:1019B000F84307F007BC403C4A464E4407F002FC9F +:1019C000444439462846FFF76FFCA04606EB04095D +:1019D000B8F13F0FA9EB08010AD94022384607F0B9 +:1019E000F1FB39462846A8F14008FFF75DFCEFE718 +:1019F000A1096FF03F02384602FB014206EB81115C +:101A0000D5E7000070B50B6901F1180506460C46D4 +:101A1000C3F3C503EA18501C8022EA54C3F13F0205 +:101A2000072A1FD8002100F087F929462046FFF732 +:101A30003BFC38220021284600F07EF92369294624 +:101A40002046236563696365FFF72EFC214610225B +:101A5000304607F0B7FB204658220021BDE8704011 +:101A600000F06AB9C3F137020021E5E72DE9F84F2C +:101A70004FF47A7306460D46002402FB03F7DFF8A5 +:101A80005080DFF8509098F900305FFA84FA5A1CC1 +:101A900001D0A34210D159F824002A4631460368E8 +:101AA000D3F820B03B46D847854205D1074B0120EB +:101AB00083F800A0BDE8F88F0134042CE3D14FF483 +:101AC000FA7004F0CFFD0020F4E700BFE4330020FB +:101AD0001022002014220020002307B50246012115 +:101AE0000DF107008DF80730FFF7C0FF20B19DF81A +:101AF000070003B05DF804FB4FF0FF30F9E700008A +:101B00000A46042108B5FFF7B1FF80F00100C0B21A +:101B1000404208BD074B0A4630B41978064B53F8CB +:101B20002140014623682046DD69044BAC4630BCA9 +:101B3000604700BFE433002014220020A08601008B +:101B400070B50A4E00240A4D05F00CFA3080286862 +:101B50003388834208D905F001FA2B680444013325 +:101B6000B4F5003F2B60F2D370BD00BFE633002018 +:101B7000A033002005F0C4BA00F1006000F5003089 +:101B80000068704700F10060920000F5003005F039 +:101B900045BA0000054B1A68054B1B889B1A834207 +:101BA00002D9104405F0DAB900207047A0330020B4 +:101BB000E633002038B50446074D29B12868204493 +:101BC000BDE8384005F0E2B92868204405F0CCF9BA +:101BD0000028F3D038BD00BFA0330020002070479C +:101BE00000F1FF5000F58F10D0F80008704700009A +:101BF000064991F8243033B100230822086A81F89D +:101C00002430FFF7BFBF0120704700BFA43300207E +:101C1000014B1868704700BF0010005C194B013879 +:101C20000322084470B51D68174BC5F30B042D0C37 +:101C30001E88A6420BD15C680A46013C82421346CC +:101C40000FD214F9016F4EB102F8016BF6E7013AB9 +:101C500003F10803ECD181420B4602D22C2203F897 +:101C6000012B0424094A1688AE4204D1984284BF4D +:101C7000967803F8016B013C02F10402F3D1581A83 +:101C800070BD00BF0010005C2422002010930008EB +:101C9000022803D1024B4FF080529A61704700BF77 +:101CA00000100258022803D1024B4FF480529A616F +:101CB000704700BF00100258022804D1024A53693D +:101CC00083F48053536170470010025870B5044686 +:101CD0004FF47A764CB1412C254628BF412506FBAE +:101CE00005F0641B04F0BEFCF4E770BD002310B5E2 +:101CF000934203D0CC5CC4540133F9E710BD00001B +:101D0000013810B510F9013F3BB191F900409C42F8 +:101D100003D11AB10131013AF4E71AB191F9002067 +:101D2000981A10BD1046FCE703460246D01A12F975 +:101D3000011B0029FAD1704702440346934202D0A6 +:101D400003F8011BFAE770472DE9F8431F4D1446CD +:101D50000746884695F8242052BBDFF870909CB364 +:101D600095F824302BB92022FF2148462F62FFF737 +:101D7000E3FF95F824004146C0F1080205EB80001E +:101D8000A24228BF2246D6B29200FFF7AFFF95F8D5 +:101D90002430A41B17441E449044E4B2F6B2082E2B +:101DA00085F82460DBD1FFF723FF0028D7D108E0B6 +:101DB0002B6A03EB82038342CFD0FFF719FF002881 +:101DC000CBD10020BDE8F8830120FBE7A43300203D +:101DD000024B1A78024B1A70704700BFE4330020A0 +:101DE00010220020F8B5194C194803F043FF214692 +:101DF000174803F06BFF24684FF47A70154ED4F83F +:101E00009020154DD2F80438114F43F00203C2F868 +:101E10000438FFF75BFF2046104904F065F8D4F85A +:101E200090200424D2F8043823F00203C2F80438C6 +:101E30004FF4E133336055F8040BB84202D0314619 +:101E400003F076FE013CF6D1F8BD00BF089B000808 +:101E500018490020CC33002014220020109B0008D9 +:101E60000C4B70B50C4D04461E780C4B55F82620D3 +:101E70009A420DD00A4B002118221846FFF75CFF4A +:101E80000460014655F82600BDE8704003F050BEDE +:101E900070BD00BFE4330020142200201849002048 +:101EA000CC330020F8B571B6002301201A4619463C +:101EB00002F090FD0446802005F0C2F9002845D0CC +:101EC0000025234A80274FF4D06C3D26136923BB9D +:101ED000D2F810310BBB236805F1006199602368CB +:101EE000D86023685F602368C3F800C021680B686E +:101EF00043F001030B6021680B6823F01E030B60A5 +:101F000021680B68DB07FCD4237B8035616806FA07 +:101F100003F3B5F5001F0B60D8D1204602F09AFDFF +:101F2000B5F5001F11D000240A4E0B4D012005F01D +:101F3000E7F83388A34205D928682044013405F026 +:101F400025F8F6E7002005F0DBF861B6F8BD00BF24 +:101F500000200052E6330020A033002030B50A44B0 +:101F6000084D91420DD011F8013B5840082340F331 +:101F70000004013B2C4013F0FF0384EA5000F6D12B +:101F8000EFE730BD2083B8ED0121884238BF084615 +:101F900005F08EB908B105F08FB9704710B5084C3F +:101FA00001220849002001F0B3FE23783BB1064826 +:101FB00003F036FD044803F069FD0023237010BDD3 +:101FC000E833002020930008C83600201D482DE982 +:101FD000F041036D2BB901224FF48051503005F0D0 +:101FE000CBFA194E33780BB1FFF7D8FF0324174F04 +:101FF0004FF00008134D15492846C7F8048003F038 +:1020000037FD284603F070FB48B1013C284603F039 +:102010003DFD14F0FF04EED1204634700FE00C4972 +:1020200001220C4801F074FE014618B1284603F065 +:10203000F7FCEAE7084800F011F801203070BDE82D +:10204000F08100BFC8360020E83300203C22002089 +:1020500020930008EC330020249300080FB40020E4 +:1020600004B07047006870470346006859687047BD +:102070000B0A017043700B0C090E8370C17070471E +:10208000110A027003714170110C120E8170C2703E +:102090001A0A42711A0C1B0E8271C371704700003C +:1020A000C36A0239023B8B4283BF4389006C01FB48 +:1020B0000300002070470000C2F307238A76CB7626 +:1020C0000378032B01BF120C0A75120A4A75704778 +:1020D00000F10B010022D30143EA520310F8012B57 +:1020E00052FA83F38842DAB2F5D110467047000005 +:1020F00010B5417804460020013102464901022A08 +:1021000016BFA35C032203EBC03302F101021EBF22 +:102110009BB203EB500398B29142F0D810BD00007F +:1021200002684AB1134613F8011B1F290DD93A2939 +:10213000F9D1911C8B4202D04FF0FF3070471278DA +:10214000302AF9D1036000207047014B187870479E +:102150003836002038B50D46044618B9092000234A +:102160002B6038BD0368002BF8D01A78002AF5D010 +:102170008188DA889142F1D1587804F00FFC10F090 +:102180000100EBD12368EBE738B50D4640F2523140 +:10219000144602F0B9F9FF2807D9012C0BD9030A1C +:1021A000022468702B70204638BD30B1002CFAD064 +:1021B00001242870F7E70024F5E70446F3E7000060 +:1021C0002DE9F8430026D0F8008005460C468E76AF +:1021D000836B002B4AD098F80030042B4BD1334648 +:1021E0003546402720E0B7F5187F80F0C480F90617 +:1021F00006F1010608BF0237D05B02372BB900F5A4 +:10220000205292B2B2F5006F0DD305F11A01C5F15B +:10221000FF0240EA03402144FFF7B6FF002800F028 +:10222000AA80054400200346D8F8102092F8231015 +:10223000B142D8D8002B40F09E80002D00F09B804A +:1022400000232544AB766373D8F81020137903F08C +:102250003701DB0621730BD402F13800FFF704FFCE +:10226000C4E9000193896381D3892381BDE8F883A0 +:1022700000200146F4E7C36C01335ED1EA6B002312 +:102280002E26551E184615F8011F013020290CD0A6 +:10229000052908BFE521092804D10B2B9EBFE718AB +:1022A00001337E73E718013379730B28EBD1E11802 +:1022B00000204873A17E00294BD1002B40D06FF045 +:1022C0000C0604F10D000825361B331810F8011B0D +:1022D000002938D02E298BB24AD0A3F14101192907 +:1022E00003D8117B0D4200D020330373EDE7B9F121 +:1022F000000F05D100F520539BB2B3F5006F0BD34F +:1023000007F11A01C7F1FF0240EA09402144FFF733 +:102310003BFF48B10744002002368146D8F80C3014 +:10232000985B0028E3D13846B9F1000F4FF0000266 +:1023300018BF002023189A76A0E7B1463746EDE78C +:102340003F23A3760123234400219976137B03B90D +:102350006373D37A02F11C0003F03F03237300235D +:10236000FFF780FE20606360D38A6381138B7CE774 +:1023700010250B46B9E73F230125A37660E700004F +:1023800038B50546002435F8020B08B9204638BD9B +:1023900002F0EEF86308C2B203EBC43312FA83F31F +:1023A0009AB2C0F3072303EB520303EBC2339CB290 +:1023B000E9E7000037B5C37804461BB90025284675 +:1023C00003B030BD00F14C01826C012340780191D3 +:1023D00004F00AFB054680B9A36BE070A06C226B89 +:1023E000C31A9342EAD2A3780199022BE6D10244A0 +:1023F0000123607804F0F8FAE1E70125DFE7000047 +:1024000038B5836C05460C468B4210D0FFF7D2FFDF +:1024100060B92246012305F14C01687804F0C0FA46 +:1024200000281CBF4FF0FF340120AC6438BD0020F1 +:10243000FCE7000038B500230446C3704FF0FF33BB +:102440008364FFF7DDFF00284BD1B4F84A524AF607 +:1024500055239D4207D10B22254904F14C0006F07B +:10246000A1FE00283FD094F84C30EB2B03D018335A +:10247000DBB2012B2ED84AF655239D4206D1082205 +:102480001C4904F19E0006F08DFE48B3B4F85730A5 +:10249000B3F5007F1ED194F85930DBB15A1E1A42B1 +:1024A00018D1B4F85A30ABB194F85C30013B012B31 +:1024B00010D8B4F85D306BB1B4F85F307F2B06D81C +:1024C00004F16C00FFF7CEFDB0F5803F02D3B4F805 +:1024D000623053B94AF6552085420CBF02200320D2 +:1024E00038BD0420FCE70120FAE70020F8E700BF30 +:1024F000509300085C93000802392DE9F04701F081 +:1025000007044FF0010A466C05460AFA04F4174620 +:10251000984606EB1136C1F3C809E4B231462846A5 +:102520000136FFF76DFF18B10120BDE8F08799462D +:1025300005EB090292F84C30234214BF012100211F +:10254000414513D06340013F82F84C3085F803A029 +:10255000EBD0640014F0FF04EAD109F10103012477 +:102560004FF00009B3F5007FE1D1D7E70220DCE7A7 +:1025700001290246F8B50C4640F28C800668F36AE1 +:102580008B4240F287803378013B032B00F282803C +:10259000DFE803F00229384B04EB5405B16B3046F9 +:1025A00001EB5521FFF72CFF10B14FF0FF30F8BDC4 +:1025B0006F1CC5F30805B16B3046354401EB57215C +:1025C00095F84C50FFF71CFF0028EED1C7F3080721 +:1025D000E3073E4496F84C0045EA00204CBF000952 +:1025E000C0F30B00E3E7B16B304601EB1421FFF7BA +:1025F00007FF0028D9D1640004F4FF742644B6F81C +:102600004C00D4E7B16B304601EBD411FFF7F8FE74 +:102610000028CAD1A40006F14C0004F4FE74204442 +:10262000FFF720FD20F07040C1E7D0E90430D579F4 +:1026300053EA000101D0916801B95DBB9168022D98 +:10264000A4EB01010DD1013B728940F1FF305B0A1F +:1026500043EAC053B3FBF2F399421BD81CD0601C71 +:10266000A5E7032D02D193698B42F8D8D3699BB9B2 +:10267000B16B304601EBD411FFF7C2FE002894D1B4 +:10268000A0004C3600F4FE703044FFF7EBFC20F065 +:1026900000408CE701208AE76FF0004087E70000E8 +:1026A000F8B5066804460D463378042B0CBF4FF08E +:1026B00080524FF400128A4201D80220F8BDCA06A7 +:1026C000FBD182680163D2B9022B13D83389B3EBF3 +:1026D000551FF2D9F36BA363A36B6263002BECD09D +:1026E00003EB55234C36C5F308050020A36335449E +:1026F000E563E3E7F36BC271002BE7D01A467789F5 +:102700007F02BD42114604D23046FFF7C9FCA063E8 +:10271000E2E72046FFF72CFF431C024606D00128C3 +:10272000CBD9F36A8342C8D9ED1BEAE70120C5E79C +:1027300001292DE9F04706460C46174608D9C36A19 +:102740008B4205D90378022B62D003D8012B22D00B +:10275000022552E0033B012BFAD8816B01EBD41127 +:10276000FFF74EFE0546002847D1A40006F14C03B2 +:1027700004F4FE741C443378042B07D0204627F061 +:102780007047FFF76FFC00F0704007433946204662 +:10279000FFF76EFC2FE001EB5108816B01EB582134 +:1027A000FFF72EFE054640BB14F0010406F14C096C +:1027B00008F1010AC8F3080808BFFBB230461FBF82 +:1027C00019F8083003F00F023B0103F0F00318BFC3 +:1027D000134309F808300123B16BF37001EB5A2160 +:1027E000FFF70EFE054640B9CAF3080A44B1C7F325 +:1027F000071709F80A700123F3702846BDE8F0872F +:1028000019F80A30C7F3032723F00F031F43F0E73B +:10281000816B01EB1421FFF7F3FD05460028ECD195 +:10282000640006F14C0304F4FF741F551919C7F333 +:1028300007274F70DFE70000F8B504460E4617463D +:10284000E3690BB91846F8BD012BA6EB0305206818 +:1028500014BFAA1C3A46691CFFF76AFF0028F2D190 +:10286000E369013BE361EBE701292DE9F843064603 +:102870000C461746056802D80220BDE8F883EB6ACB +:102880008B42F9D97AB9A14621463046A046FFF7D6 +:102890006FFE0446B0B92B78042B02D1002F43D130 +:1028A000F7710020E9E72B78042B02D1C379022BC2 +:1028B000E9D04FF0FF3239462846FFF739FF0028AC +:1028C000E1D0DAE70128D7D0421C01D10120D4E7BA +:1028D0002B78042B19D1EA6AAB69023A93421CD3D4 +:1028E00008F10102A2420CD02B78042B08D100235E +:1028F000A2EB090249462846FFF7FEFD0028BCD19D +:10290000A146EB6AA342BFD8C5E70022414628464C +:10291000FFF70EFF0028DED0AFE70133AB612B7964 +:1029200043F001032B71DBE7F3798BB9B468BC4248 +:1029300002D10223F371B4E721463046FFF718FEB7 +:10294000012899D9431CC1D001348442EFD0A8E7B3 +:10295000032BA6D1B368BB42A3D8B2691344BB42D0 +:102960009FD3E6E770B5C3790446032B06D181688F +:102970008369CD18A94203D10023E371002070BD03 +:102980004E1C20683246FFF7D3FE0028F7D13146AF +:10299000F0E700002DE9F74305460191FFF70AFD36 +:1029A0000446002849D105F14C09019928464FF405 +:1029B0000072FFF775FB2146A86407464846FFF7FB +:1029C000BBF96C896402B4F5004F28BF4FF4004492 +:1029D000B4F5007F2FD9204604F072FC804630B158 +:1029E00022460021640A0026FFF7A6F909E06408E0 +:1029F000EEE72346BA194146687803F0F5FF18B9A7 +:102A000026446B899E42F4D3404604F069FC6889F1 +:102A1000801B18BF012003B0BDE8F08301366B892D +:102A20009E42F4D20123BA194946687803F0DCFFCC +:102A30000028F3D0EBE70026F1E70120EBE70000E8 +:102A4000F8B50446FFF7B6FC0546002842D12378C6 +:102A5000032B37D12779012F34D104F14C060146DD +:102A60004FF400723046FFF767F955234122722177 +:102A700084F84A32AA2304F50D7084F84F2084F8B4 +:102A80004B32522384F8301284F84C3084F84D30A5 +:102A9000612384F8311284F84E3084F83332A1690E +:102AA00084F83222FFF7E4FA616904F50E70FFF74B +:102AB000DFFA626B3B46314601326078A26403F074 +:102AC00093FF257100226078114603F0B1FF0038B2 +:102AD00018BF0120F8BD000000232DE9F0430B6072 +:102AE00085B00F461546FFF71BFB061EC0F2B281EC +:102AF000804B53F82640002C00F0AE813C6005F07E +:102B0000FE0523786BB1607803F048FFC70708D44F +:102B10001DB110F0040500D00A25284605B0BDE817 +:102B2000F0830023F0B22370607003F023FFC1072D +:102B300000F194810DB14207EED400212046FFF749 +:102B400079FC022840F099806E4604F2122304F2C8 +:102B50005221324618461033FFF784FA42F8040B2C +:102B60008B42F7D1002556F8041B00297DD0204662 +:102B7000FFF760FC012879D80128A26C40F0C080E2 +:102B800004F1570304F18C0113F8015B002D7BD194 +:102B90008B42F9D1B4F8B430B3F5807F74D194F896 +:102BA000B830092B70D104F19400FFF75DFA4FF0B3 +:102BB000FF33171841F10001BB4275EB010363D3EA +:102BC00004F1A000FFF74EFA94F8BA302063012B0D +:102BD000A37059D194F8B99003FA09F91FFA89F34F +:102BE0006381002B50D0444B04F1A800FFF73AFA60 +:102BF0000646984248D8831C626304F1A400E3624D +:102C0000FFF730FA00EB020804F19C00C4F84080A2 +:102C1000FFF728FA10441FFA89F2A06306FB02F3BB +:102C200013EB080345EB05029F4271EB02032BD324 +:102C30002E4604F1AC00FFF715FAE06365B963892D +:102C4000B34221D9E16B2046FFF72AFA81192046C9 +:102C5000FFF7D6FB98B90136631993F84C30812BF6 +:102C600014D02035C5F30805E8E703200135042D0D +:102C70007FF479AF042807D101E0042801D10125B0 +:102C80004BE701287FF678AF0D2546E705F11400E4 +:102C900004F14C063044FFF7E5F901280546F3D965 +:102CA000E36A8342F0D96189821E236C02FB0133FF +:102CB0006364A16B204601EBD511FFF7A1FB00284F +:102CC000DDD105F07F0006EB8000FFF7CBF9431C58 +:102CD00003D00135A842ECD0D6E70425C4E90500AD +:102CE000064A257000251388E56101339BB21380E5 +:102CF000E38012E73C360020FDFFFF7F40360020D6 +:102D0000B4F85730B3F5007FBED1B4F8626026B98D +:102D100004F17000FFF7A6F9064694F85C302663CC +:102D2000591EA3700129AFD894F859506581002D20 +:102D3000AAD0691E2942A7D1B4F85D8018F00F0F00 +:102D4000A4F80880A0D1B4F85F0018B904F16C00B1 +:102D5000FFF788F9B4F85A10002995D006FB03FE56 +:102D600001EB181CF44460458ED3A0EB0C00A84284 +:102D7000B0FBF5F388D33E48834285D84FF6F57013 +:102D800083426DD903259F1C114402EB0C03032DD4 +:102D9000E7626263A16323644CD1B4F8763053EAEE +:102DA00008037FF471AFBB0004F17800FFF75AF914 +:102DB000E06303F2FF13B6EB532FFFF465AF4FF060 +:102DC000FF33032DC4E905334FF08003237187D10E +:102DD000B4F87C30012B83D1511C2046FFF710FB47 +:102DE00000287FF47DAFB4F84A224AF655232071BB +:102DF0009A427FF475AF1F4B04F14C00FFF732F994 +:102E000098427FF46DAF03F1FF5304F50C70FFF7A8 +:102E100029F903F50053203398427FF461AF04F59C +:102E20000D70FFF71FF9A06104F50E70FFF71AF996 +:102E3000606155E7B8F1000F3FF426AF7144022DF1 +:102E40004FEA4703E1631EBFD91907F0010303EB03 +:102E50005103AEE70B2560E60C255EE603255CE634 +:102E600040F6F575AB428CBF022501258BE700BF0C +:102E7000F5FFFF0F525261412DE9F84F07460568F3 +:102E8000884649B96E69C6B1EB6AB34298BF01265C +:102E9000AB69A3B9002405E0FFF76AFB01280446EB +:102EA00003D801242046BDE8F88F421C00F0D280F0 +:102EB000EB6A8342F6D84646EAE70126E8E72A7835 +:102EC000EB6A042A40F08380A6F1020A023B4FF02D +:102ED000010B9A4528BF4FF0000AD146696C28467D +:102EE00001EB1931FFF78CFA00283BD109F00703F9 +:102EF000EA6AC9F3C8010BFA03F3901EDBB26A1841 +:102F00004C4609F1010992F84C20814502EA03027E +:102F100033BF5B0000234FF40071DBB228BF99463A +:102F2000B2B90234631E0333BCD8012321462846BC +:102F30001A46FFF7E1FA0228B3D0012800F08A8090 +:102F4000B8F1000F13D10223FB710028A9D130E0A2 +:102F5000CA450AD0002BD2D10131B1F5007FBDD2D4 +:102F60000123CCE74FF0FF34DCE70024DAE7FB79FC +:102F7000022B07D1731CA342E7D0BB68F31ABB61D5 +:102F80000323FB7108F10102FB69A24205D113B1D1 +:102F90000133FB61D9E70223FBE70BB90123FB6196 +:102FA000224641463846FFF747FC00284FD101230F +:102FB000FB61EA6AAB69023A6C6193429CBF03F120 +:102FC000FF33AB612B7943F001032B716AE7464570 +:102FD00014D1741C3846A34298BF02242146FFF73F +:102FE000C7FA01283FF45DAF431C33D0E0B16B69F1 +:102FF000012B03D9EA6A934238BF1E463446013496 +:10300000EB6AA34203D8012E7FF644AF0224214687 +:103010003846FFF7ADFA48B101283FF442AF01301E +:1030200018D0B442EBD135E7002CE7D04FF0FF3297 +:1030300021462846FFF77CFB48B9B8F1000FB8D00D +:10304000224641462846FFF773FB0028B1D00128ED +:103050007FF427AF4FF0FF3424E700002DE9F84359 +:1030600006680446076B894633782037042B0CBF6B +:103070004FF080534FF40013BB429CBF0023836387 +:10308000836B73B1C7F30808B8F1000F3CD101336B +:10309000416B836339B93389B3EB571F34D80023AD +:1030A000A36304200AE07389013B13EA57232BD161 +:1030B000FFF75EFA0128054602D80220BDE8F88332 +:1030C000421C01D10120F9E7F36A834216D8B9F115 +:1030D000000FE4D0616B2046FFF7CEFE0546C8B175 +:1030E0000128EAD0431CEDD001463046FFF752FCE0 +:1030F0000028E7D1E37943F00403E3712946304621 +:103100006563FEF7CDFFA0634C360020276346447D +:10311000E663D3E70720D1E7F8B50E460021044661 +:103120000768FFF7BDFA98B90546A16B3846FFF767 +:1031300067F968B93A78E36B042A1B780CD11B064F +:103140000ED5054601212046FFF788FF0028ECD068 +:10315000042808BF072006E0E52B01D0002BF0D1A2 +:103160000135B542EED1F8BDC16C4B1C2DE9F041E3 +:1031700004460568066B1FD1E5274FF00108A16BD7 +:103180002846FFF73DF998B92A78E36B042A09BF6E +:103190001A781F7002F07F021A7085F80380236B83 +:1031A000B3420DD200212046FFF758FF0028E6D099 +:1031B000042808BF022003E0FFF772FA0028DBD0E2 +:1031C000BDE8F0812DE9F04105460068A96B06696C +:1031D000FFF716F9044620B9EB6B1A78852A03D05D +:1031E00002242046BDE8F081324603F1200153F865 +:1031F000040B8B4242F8040BF9D1777801377F0139 +:10320000A7F16003B3F5007FEAD800212846FFF755 +:1032100025FF04280446E3D00028E2D1A96B2868E2 +:10322000FFF7EEF804460028DBD1EB6B1A78C02AD2 +:10323000D6D106F1200203F1200153F8040B8B4292 +:1032400042F8040BF9D196F823300F222C33B3FB4C +:10325000F2F3B7EB431FC3D34FF0400800212846D9 +:10326000FFF7FCFE04280446BAD00028B9D1A96BA8 +:103270002868FFF7C5F804460028B2D1EB6B1A782E +:10328000C12AADD1B8F5187F09D206EB080203F1C7 +:10329000200153F8040B8B4242F8040BF9D108F1DA +:1032A00020084745DAD8B8F5187F9AD83046FEF797 +:1032B0001FFF7388834294D092E700000B680022BE +:1032C00010B5036004460B6A83604B6AC261C37128 +:1032D00023F0FF03896AC0E90432C164FFF7E0F913 +:1032E00020B92046BDE81040FFF76CBF10BD0000BC +:1032F000F8B50368054601271C692046FEF7F8FE6D +:10330000A070000A6678E0702846E96CFFF7C8F9FB +:1033100020B1022828BF0220C0B2F8BDA96B2868DE +:10332000FFF76EF80028F4D1EB6B04F1200254F89B +:10333000041B944243F8041BF9D12B68DF70002E64 +:10334000E7D000212846013EFFF788FEE0E70000B5 +:103350002DE9F8434FF0FF08064607680424454668 +:103360004FF6FF79B16B11B9002C73D063E038468A +:10337000FFF746F8044600285DD1F06B0378002B78 +:103380006ED03A78042A11D1852B4DD1336B30465B +:10339000F364FFF717FF044600284CD13B691B7903 +:1033A00003F03F03B3712046BDE8F883C27AE52BF2 +:1033B00002F03F02B27143D02E2B41D022F0200107 +:1033C00008293DD00F2A40D1590637D503F0BF0553 +:1033D000336B90F80D80F364437B434530D1428BCF +:1033E00072BB03780D21FC6823F04003DFF874E022 +:1033F000013B4B4301211EF801CB30F80CC009B34F +:10340000FF2B1DD824F813C06146013301320D2A69 +:10341000F1D10278520605D521B1FF2B10D8002238 +:1034200024F81320013DEDB200213046FFF716FECF +:103430000446002896D00023B363B4E7AB42CBD058 +:10344000FF25F1E7CC45E1D0FAE72DB9FEF740FEC4 +:10345000404501D10024A6E74FF0FF33F364A2E713 +:103460000424E8E7F89300082DE9F04F002187B025 +:103470000446D0F80090FFF713F9804670B999F828 +:103480000030042B33D1D9F80C00FEF779FF074642 +:103490002046FFF75DFF054620B18046404607B055 +:1034A000BDE8F08FD9F810309A8CBA42F0D193F879 +:1034B00023B040265D4506D1D9F80C3033F81530DD +:1034C000002BE5D1EAE7F106D9F8103008BF023643 +:1034D000985B01F04DF8D9F80C30824633F81500AE +:1034E00001F046F88245D3D102360135E2E74FF0CC +:1034F000FF0A4FF0FF3B5546C4F84CB0A16B48465D +:10350000FEF77EFF00285CD1E66B3778002F77D07E +:10351000F27AE52F02F03F03A37103D0120704D51E +:103520000F2B04D0C4F84CB04FE00F2B54D194F8BB +:103530004B3058063FD4790645D5236B07F0BF07BB +:1035400096F80DA0E364737B53453ED1738B002B3B +:103550003BD135780121D9F80C3005F03F050193B6 +:103560000D23013D5D43284B13F8012BB25A71B373 +:10357000FF2D059329D81046049200F0F9FF6B1C2B +:1035800003900293019B33F8150000F0F1FF0399BB +:1035900081421AD1049A029D1146059B1B4A93420F +:1035A000E2D133785A0604D519B1019B33F81530AE +:1035B0005BB97D1EEDB200212046FFF74FFD0028CC +:1035C0009CD080466AE7BD42BDD0FF25F3E74FF6A9 +:1035D000FF708242E2D0F8E72DB93046FEF778FD61 +:1035E00050453FF45BAF94F84B30DB079AD40B2285 +:1035F00004F14001304605F0D5FD002892D14DE799 +:103600004FF004084AE700BFF8930008059400084B +:103610002DE9F04F90F84BB099B004461BF0A0058F +:1036200040F068810668F26832F81530002B4AD104 +:103630003378042B40F087800F230E352046B5FBEE +:10364000F3F5A91CFFF768FD8146002877D1236BAD +:103650000135A3EB4515E3795A07E56435D523F029 +:1036600004032046E371FFF77DF950BB4FF0FF32B2 +:10367000616B2046FFF7E0F818BBA3682BB3214627 +:1036800004A8FFF71BFEE0B970894FF40071D4E97C +:103690000423E0FB01233069C4E904233830FEF73A +:1036A000EFFC3069D4E904232830FEF7E9FCE37924 +:1036B000326904A843F0010382F82130FFF718FEB5 +:1036C00018B181463BE00135AEE7D6E9035440220C +:1036D00000212046FEF730FB852301214022237084 +:1036E000C0234FF0C10C04EB010884F82030002304 +:1036F0001E469E46571C04F802C0F0B2023204F87F +:1037000007E021B135F8131009B10133DBB20F0A1C +:10371000A15408F802700232D706F2D135F81370BE +:103720000136002FE6D184F82330831C28466370CD +:10373000FEF726FE84F82400000A84F82500484697 +:1037400019B0BDE8F08F04F140070DF1100A1BF02D +:10375000010F97E807008AE8070000F0D3804023B4 +:103760004FF0010884F84B30BC46F368B8F1050F00 +:103770009AE80700ACE803002CF8022B4FEA12424B +:103780008CF8002059D9981E424630F8021F0029B3 +:1037900042D10DF10F0C072102F00F0E91461209D4 +:1037A0000EF13000392888BF0EF1370001390CF8CE +:1037B000010902D0B9F10F0FEED818AB7E205A18CC +:1037C00002F8580C38460022914206D010F801CB7E +:1037D00002F1010EBCF1200F31D104F13F0C072999 +:1037E00002F1010297BF18AB20205818013198BF91 +:1037F00010F8580C072A0CF80200F0D92046FFF701 +:1038000033FE8146002878D108F10108B8F1640F31 +:10381000AAD14FF0070992E74FF0100C01F0010E0A +:1038200049080EEB4202D30344BF82F4883282F08F +:103830002102BCF1010CF1D1A7E74246A9E772468B +:10384000C2E7216B2046A1EB4511FEF729FF814617 +:1038500000287FF474AF4FF6FF783846FEF738FC47 +:103860000190A16B3046FEF7CBFD814600287FF426 +:1038700066AFE36BE9B2019A4FF00D0CD6F80CE09D +:103880005A734FF00F02DFF8E0A0DA724A1E187385 +:103890000CFB02F284469876D87640451AF8019BD4 +:1038A0000CF1010C18BF3EF8120003EB090B18BF16 +:1038B000013203F809004FEA1029002808BF4046EA +:1038C000BCF10D0F8BF80190E7D1404502D03EF8D6 +:1038D00012200AB941F0400119700123002120464D +:1038E000F370FFF7BBFB814600287FF428AF013D52 +:1038F000B7D11BE04FF0060921E704287FF41FAF82 +:1039000084F84BB01BF0020F20461BBF0C350D2175 +:103910000125B5FBF1F518BF01352946FFF7FCFB82 +:10392000814600287FF40BAF013D8AD1A16B304660 +:10393000FEF766FD814600287FF401AF0146202294 +:10394000E06BFEF7F9F9E36B03CF18605960BA78C2 +:1039500039889A72198194F84B30E26B03F018039E +:1039600013730123F370EAE6F893000810B50446D8 +:103970000A463430FEF776FB886004F13800FEF723 +:1039800073FBC2E9040194F8213003F00203D37100 +:103990000023D36110BD000003284B8B04BF8A8A2B +:1039A00043EA0243184670472DE9F04F0B7899B06F +:1039B000044689462F2BD0F800B001D05C2B09D1EA +:1039C0004A461378914601322F2BFAD05C2BF8D05F +:1039D000002301E0DBF81C30A3600023E3619BF8C7 +:1039E0000030042B1ED1A368E3B1DBF82030214660 +:1039F00004A82362DBF824306362DBF82830A3627A +:103A0000FFF75CFC0346002854D1DBF8102002F1DC +:103A10003800FEF727FBC4E9040392F8213003F0D5 +:103A20000203E37199F800301F2B00F235818023E7 +:103A30000021204684F84B3019B0BDE8F04FFEF766 +:103A40002FBE49460B78894601312F2BFAD05C2BCB +:103A5000F8D01F2B8CBF00250425012F2FD11388F0 +:103A60002E2B31D1002322F8173004F140029F425F +:103A70008CBF2E21202101330B2B02F8011BF6D124 +:103A800045F02005204684F84B50FFF7EDFC94F8F4 +:103A90004B30002800F0E78004280BD1990603F092 +:103AA000040240F1DC80002A00F0F6808023002030 +:103AB00084F84B3019B0BDE8F08F0425CDE7022F14 +:103AC00002D153882E2BCAD0911E87BB002322F827 +:103AD0001730002F00F0118132F81300194601331E +:103AE0002028F9D009B92E2801D145F00305901EF0 +:103AF00030F817302E2B01D0013FF9D14FF0203391 +:103B00004FF0000A6364D0462364C4F847300823AA +:103B1000481C32F811600090F6B1202E03D02E2EF2 +:103B20000DD1B84210D045F003050099F0E731F807 +:103B30001730202B01D02E2BC8D1013FC5E79A4565 +:103B400005D20099B9423BD10B2B30D101E00B2BB0 +:103B500027D145F003050B2394F84020E52A04BF44 +:103B6000052284F84020082B04BF4FEA88085FFA3A +:103B700088F808F00C030C2B03D008F00303032B88 +:103B800001D145F00205A8073FF57CAF18F0010F01 +:103B900018BF45F0100518F0040F18BF45F00805D0 +:103BA00070E70099B94202D045F00305D4D84FEA36 +:103BB00088080B234FF0080A00975FFA88F8B4E7EB +:103BC0007F2E15D9304640F25231CDE9022345F01F +:103BD0000203019300F098FC10F0800F0646DDE927 +:103BE000022316D000F07F0646498E5D019D46B344 +:103BF00031464548CDE9012305F0FEFADDE9012310 +:103C0000F8B9A6F1410189B219291ED848F0020875 +:103C100010E0FF28EAD9591E8A4503D345F0030571 +:103C20009A4682E704EB0A01000A0AF1010A019DA3 +:103C300081F8400004EB0A010AF1010A81F84060B2 +:103C400073E745F003055F26F4E7A6F1610189B249 +:103C500019299EBF203E48F00108B6B2EAE7002AC3 +:103C600008BF052026E75A073FF524AFA379DB06F6 +:103C700045D59BF80000042835D1A3682146E27998 +:103C800023622369DBF8100023F0FF031343636210 +:103C9000E36CA362FFF76AFE23680027DA6819F86D +:103CA000010B00283FF409AF40F25231009200F0BE +:103CB0004BFC054608B31F28009A7FF6FEAE2F285E +:103CC0003FF4BFAE5C283FF4BCAE7F2805D8014668 +:103CD0000E4805F091FA009A78B9FF2F0DD022F81E +:103CE00017500137DBE7216B0BF14C03C1F30801DF +:103CF0001944FFF751FEA060CEE70620DAE6052062 +:103D0000D8E600BF78930008719300086893000814 +:103D10001FB5CDE9001003A814460391FEF700FA81 +:103D2000002815DB0B4A52F820300BB10021197026 +:103D3000019B0BB10021197042F820302CB10022F8 +:103D400001A96846FEF7C8FE0446204604B010BD2F +:103D50000B24FAE73C3600202DE9F04798B0904656 +:103D600005460191002800F0528102F03F0603A9A8 +:103D700001A83246FEF7B0FE002840F04681039BC2 +:103D80004FF48C60049303F09BFA0746002800F080 +:103D90004081039B00F500720199D86004A81A6164 +:103DA000FFF702FE044620B99DF95B30002BB8BF37 +:103DB000062418F01C0F00F0CD80002C4CD0042CF1 +:103DC00040D104A8FFF724FC044600283AD146F06D +:103DD0000806039B1A78042A40F083801869294654 +:103DE0002B60FFF7C3FD039B1E22002118690230E0 +:103DF000FDF7A2FF039C00211A2220692630FDF75F +:103E00009BFF236920221A71246903F093FA01466B +:103E1000012208342046FEF72BF9039B04A81B69F6 +:103E200083F82120FFF764FA044658B9A96801B362 +:103E300002462846FEF718FDAB68039A0446013B8C +:103E40005361B4B1384603F04BFA0CB100232B6038 +:103E5000204618B0BDE8F0879DF8163013F0110F1A +:103E600040F0848018F0040F40F0C98018F0080F6B +:103E7000AFD1039A31071399936C48BF46F04006BF +:103E8000E964AB641078042872D1069B9DF8171082 +:103E90002B62089B106923F0FF030B4329466B62DA +:103EA000179BAB62FFF762FDDDF80CA00024002237 +:103EB00005F15008BAF8063021464046C5F800A082 +:103EC000AB80002385F8306085F831406C64C5E92B +:103ED0000E234FF40072FDF72FFFB20653D40024D7 +:103EE000B0E703F027FA0146009013980E30FEF772 +:103EF000BFF8139800991630FEF7BAF8039C13998F +:103F00002078FFF749FD202300228046CB7220460F +:103F10001399FEF7D1F8139B002201211A775A77E3 +:103F20009A77DA77039BD970B8F1000FA1D0414698 +:103F300004A8D3F84890FEF797FC0446002881D1E6 +:103F400049460398FEF75CFA039B044608F1FF30EC +:103F5000586176E7002C7FF475AF9DF81630DC06CB +:103F60004FD418F0020F84D0D80782D5072469E710 +:103F7000FFF712FD0023A86001F11C00FEF772F8A4 +:103F80006B61286190E7D5E9046956EA0903A6D078 +:103F9000BAF80AA0A9684FEA4A2AC5E90E69B245EB +:103FA00074EB09031BD300242964002C7FF44AAF6F +:103FB000C6F30803002B92D0039C2046FEF770F84E +:103FC00008B3760A0123414646EAC95682196A6453 +:103FD000607802F0E5FC041E18BF012432E7284691 +:103FE000FEF7C6FAB6EB0A06014669F10009012898 +:103FF00003D9431CD3D10124D6E70224D4E70824F3 +:1040000020E704241EE702241CE704461EE70924D7 +:104010001EE711241CE700002DE9F04F994685B0FA +:104020000023884603A90446C9F800301646FEF767 +:1040300091F8054680BB94F831506DBB94F8303050 +:1040400013F00103009300F0A68004F1500AD4E9B4 +:104050000432D4E90E011B1A62EB0102B34272F181 +:10406000000238BF1E46BEB1D4E90E10C1F30803EA +:10407000002B40F08280039B5A894B0A013A43EAA5 +:10408000C0531A401BD151EA000309D1A06801288E +:104090000DD8022584F83150284605B0BDE8F08FD0 +:1040A000216C20460192FEF763FA019AEFE7431C68 +:1040B00004D10123009D84F83130EDE72064DDF860 +:1040C0000CB0216C5846FDF7EBFF0028E1D0B6F5A7 +:1040D000007F02EB000731D3BBF80A1002EB562039 +:1040E000730A88429BF8010088BF8B1A3A46414602 +:1040F000019302F055FC0028DBD194F93020019B9C +:10410000002A0BDA606CC01B984207D24FF4007291 +:10411000514608EB4020FDF7E9FD019B5F02D9F80D +:104120000030F61BB8443B44C9F80030D4E90E32E5 +:10413000DB1942F10002C4E90E3294E7626CBA4224 +:104140001AD094F93030002B0DDA012351469BF838 +:10415000010002F049FC0028ABD194F8303003F0A4 +:104160007F0384F83030039801233A465146407863 +:1041700002F016FC00289CD16764A16B4046C1F395 +:104180000801C1F500775144B74228BF37463A4687 +:10419000FDF7ACFDC3E707257EE7000070B596B0DC +:1041A0000E460022019002A901A8FEF795FC0446E4 +:1041B000E0B94FF48C6003F083F80546D8B1029B58 +:1041C00000F500720199D86002A81A61FFF7ECFBB4 +:1041D000044640B99DF95330002B0ADB1EB131462D +:1041E00002A8FDF7EDFF284603F07AF8204616B046 +:1041F00070BD0624F7E71124F8E7000070B5B8B0E9 +:104200000222019003A901A8FEF766FC044608BB40 +:10421000039B4FF48C60109303F052F8054600287E +:1042200066D0039B00F500720199D86010A81A614E +:10423000FFF7BAFB044650B99DF88B30980655D469 +:10424000190653D49DF84630DA0706D507242846C8 +:1042500003F046F8204638B070BD039B04931878ED +:10426000042814D104A91869FFF780FB069E9DF865 +:104270004630DB0610D410A8FEF776FF044600286F +:10428000E5D156BB0398FEF7DBFB0446DFE71F9939 +:10429000FFF782FB0646EAE7039BDA69B242D5D014 +:1042A00024930021269624A81B78042B01BFDDE966 +:1042B0000823CDE928239DF817308DF89730FEF7B5 +:1042C000EFF904460028C2D124A8FFF741F80446BC +:1042D0000028BBD00428BAD1CDE70246314604A855 +:1042E000FEF7C2FA04460028B1D1CBE70624AEE7B8 +:1042F0001124AFE7F0B5BDB0CDE900106846FDF779 +:104300000FFF022203A901A8FEF7E6FB04460028DE +:1043100041D1039B4FF48C60149302F0D1FF05460A +:10432000002800F0EE80039B00F5007214AE0199A6 +:10433000D8601A613046FFF737FB044640BB9DF852 +:104340009B3013F0A00F40F0D880039B009F1A7899 +:10435000042A68D11B6904AC03F1400C18680833C7 +:1043600053F8041C2246634503C21446F6D150227A +:10437000314628A8FDF7BAFC394628A8FFF714FBF8 +:10438000044600284CD12A9A169B9A4206D008244B +:10439000284602F0A5FF20463DB0F0BD349A209B90 +:1043A0009A42F4D128A8FFF733F904460028EFD148 +:1043B000039B04AF1B6993F801E093F823C09C8C26 +:1043C0003A46083303CAB24243F8080C43F8041CC7 +:1043D0001746F5D1039B28A81B6983F801E0039BCE +:1043E0001A6982F823C01A6982F82440240A82F8E4 +:1043F00025401A691379D9065CBF43F02003137175 +:10440000FEF776FF04460028C2D13046FEF7ACFE28 +:1044100004460028BCD10398FEF712FB0446B7E718 +:104420000428B5D1BEE7239A04AB02F1200C106832 +:10443000083252F8041C1C46624503C42346F6D1D8 +:104440005022314628A8FDF751FC394628A8FFF72D +:10445000ABFA044600284CD12A9A169B9A4296D170 +:10446000349A209B9A4292D128A8FFF7D1F80446AB +:1044700000288DD137990DF11D030DF12D0001F1AB +:104480000D0253F8044B834242F8044BF9D11888CB +:10449000012710809B7893709DF81B30039CDA06EF +:1044A00058BF43F02003CB72E770CB7ADB06ACD564 +:1044B000169A2A9B9A42A8D02078FFF76DFA0146F7 +:1044C0002046FDF7EDFD0146C8B12046FDF798FFF7 +:1044D000044600287FF45CAF039890F86D302E2BD3 +:1044E00093D12A9A00F16C01FDF7E6FD039BDF7082 +:1044F0008BE704287FF44CAFB6E7062448E7022494 +:1045000046E7112447E700007F2810B501D880B2A4 +:1045100010BDB0F5803F13D240F2523399420FD113 +:104520000849002231F8024B93B2844203D103F1CF +:104530008000C0B2ECE70132802AF3D11346F6E7DF +:104540000020E5E7B89600087F280DD940F25233E5 +:10455000994208D1FF2806D800F10040034B80386B +:1045600033F8100070470020704700BFB89600086D +:10457000B0F5803FF0B522D21F4A83B21F49B0F593 +:10458000805F28BF0A46141D34F8042C2146AAB1C6 +:10459000934213D334F8025C2E0AEFB252FA85F537 +:1045A000A84222DA082E09D8DFE806F0050A101220 +:1045B0001416181A1C00801A34F810301846F0BD72 +:1045C000981A00F001001B1A9BB2F7E7103BFBE7BB +:1045D000203BF9E7303BF7E71A3BF5E70833F3E711 +:1045E000503BF1E7A3F5E353EEE70434002ECBD1C3 +:1045F00001EB4702C7E700BF08940008FC950008DC +:1046000008B5074B074A196801F03D0199605368E6 +:104610000BB190689847BDE8084003F09DB800BF13 +:10462000000002404436002008B5084B196889098B +:1046300001F03D018A019A60054AD3680BB1106907 +:104640009847BDE8084003F087B800BF000002406B +:104650004436002008B5084B1968090C01F03D01EB +:104660000A049A60054A53690BB190699847BDE8FE +:10467000084003F071B800BF00000240443600203B +:1046800008B5084B1968890D01F03D018A059A604B +:10469000054AD3690BB1106A9847BDE8084003F09A +:1046A0005BB800BF000002404436002008B5074B4D +:1046B000074A596801F03D01D960536A0BB1906A0D +:1046C0009847BDE8084003F047B800BF000002402B +:1046D0004436002008B5084B5968890901F03D01AE +:1046E0008A01DA60054AD36A0BB1106B9847BDE8BE +:1046F000084003F031B800BF0000024044360020FB +:1047000008B5084B5968090C01F03D010A04DA604C +:10471000054A536B0BB1906B9847BDE8084003F016 +:104720001BB800BF000002404436002008B5084B0B +:104730005968890D01F03D018A05DA60054AD36B9D +:104740000BB1106C9847BDE8084003F005B800BFF6 +:10475000000002404436002008B5074B074A19689C +:1047600001F03D019960536C0BB1906C9847BDE826 +:10477000084002F0F1BF00BF0004024044360020B0 +:1047800008B5084B1968890901F03D018A019A6052 +:10479000054AD36C0BB1106D9847BDE8084002F094 +:1047A000DBBF00BF000402404436002008B5084BC0 +:1047B0001968090C01F03D010A049A60054A536D1D +:1047C0000BB1906D9847BDE8084002F0C5BF00BF2F +:1047D000000402404436002008B5084B1968890DD2 +:1047E00001F03D018A059A60054AD36D0BB1106E48 +:1047F0009847BDE8084002F0AFBF00BF0004024088 +:104800004436002008B5074B074A596801F03D01BE +:10481000D960536E0BB1906E9847BDE8084002F026 +:104820009BBF00BF000402404436002008B5084B7F +:104830005968890901F03D018A01DA60054AD36EA1 +:104840000BB1106F9847BDE8084002F085BF00BF6C +:10485000000402404436002008B5084B5968090C92 +:1048600001F03D010A04DA60054A536F0BB1906F05 +:104870009847BDE8084002F06FBF00BF0004024047 +:104880004436002008B5084B5968890D01F03D01F8 +:104890008A05DA60054AD36F13B1D2F880009847D1 +:1048A000BDE8084002F058BF000402404436002032 +:1048B00000230C4910B51A460B4C0B6054F823002A +:1048C000026001EB430004334260402BF6D1074AFB +:1048D0004FF0FF339360D360C2F80834C2F80C3451 +:1048E00010BD00BF44360020B89700080000024009 +:1048F0000F28F8B510D9102810D0112811D012287F +:1049000008D10F240720DFF8C8E00126DEF80050A8 +:10491000A04208D9002653E00446F4E70F24002003 +:10492000F1E70724FBE706FA00F73D424AD1264C9F +:104930004FEA001C3D4304EB00160EEBC000CEF81E +:104940000050C0E90123FBB273B12048D0F8D83041 +:1049500043F00103C0F8D830D0F8003143F0010330 +:10496000C0F80031D0F8003117F47F4F0ED017484F +:10497000D0F8D83043F00203C0F8D830D0F8003176 +:1049800043F00203C0F80031D0F8003154F80C00B5 +:10499000036823F01F030360056815F00105FBD1D0 +:1049A00004EB0C033D2493F80CC05F6804FA0CF48C +:1049B0003C6021240560446112B1987B00F0CAFC80 +:1049C0003046F8BD0130A3E7B8970008004402580C +:1049D0004436002010B5302484F31188FFF788FF97 +:1049E000002383F3118810BD10B50446807B00F0CE +:1049F000C7FC01231549627B03FA02F20B6823EA24 +:104A00000203DAB20B6072B9114AD2F8D81021F061 +:104A10000101C2F8D810D2F8001121F00101C2F84A +:104A20000011D2F8002113F47F4F0ED1084BD3F8B8 +:104A3000D82022F00202C3F8D820D3F8002122F0B7 +:104A40000202C3F80021D3F8003110BD4436002023 +:104A50000044025808B5302383F31188FFF7C4FFE0 +:104A6000002383F3118808BD836CC26A8B425068AF +:104A700010B506D95A1E4C0002EB4103B3FBF4F308 +:104A8000184410BD01F001038A0748BF43F0020338 +:104A90004A0748BF43F008030A0748BF43F004032E +:104AA000CA0648BF43F010038A06426B48BF43F072 +:104AB000200313434363704710B5074C204600F0B2 +:104AC000CBFF064B0022C4E91023054BA364054B22 +:104AD000E363054BE36410BDC8360020007000524C +:104AE00000B4C4041C3700201C390020C36A0BB971 +:104AF000104BC3620379012B11D10F4B98420ED199 +:104B00000E4BD3F8D42042F48032C3F8D420D3F82B +:104B1000FC2042F48032C3F8FC20D3F8FC30436C14 +:104B200000221A65DA621A605A605A624FF0FF3248 +:104B30009A637047B8980008C836002000440258AD +:104B40000379012B1BD0436C00221A65DA621A60CC +:104B50005A605A624FF0FF329A63094B98420ED165 +:104B6000084BD3F8D42022F48032C3F8D420D3F8F1 +:104B7000FC2022F48032C3F8FC20D3F8FC307047CC +:104B8000C83600200044025810B5446C0649FFF7AF +:104B90006BFF6060236842F2107043F003032360F0 +:104BA000BDE8104001F05EBD801A06000129F8B58D +:104BB000466C0B4F09D175680A493D40FFF754FF19 +:104BC000054345F480557560F8BD746806493C405E +:104BD000FFF74AFF044344F480547460F4E700BFD5 +:104BE00000ECFFFF80F0FA0240787D01436C002268 +:104BF0005A601A6070470000426C0129536823F420 +:104C0000404304D0022905D001B95360704743F4F2 +:104C10008043FAE743F40043F7E70000436C41F4B4 +:104C200080519A60D9605A6B1206FCD580229A6333 +:104C30007047000010B541F48851446CA260E160F7 +:104C4000616B11F04502FBD0A26311F0040203D0A6 +:104C5000FFF718FF012010BD616910461960FAE7DF +:104C600010B541F48851446CA260E160616B11F0B1 +:104C70004502FBD0A26311F0050203D0FFF702FF4B +:104C8000012010BD616910461960FAE773B513463B +:104C900004460E46302282F31188426CD26B32B148 +:104CA0004FF0FF314030019301F0E8FC019B606C54 +:104CB00000220265C263C262456B15F4807504D19F +:104CC00085F31188012002B070BD4FF0FF31816380 +:104CD00082F31188012E06D90C21204602B0BDE8CE +:104CE0007040FFF7BDBF1046EDE7000073B5446CA0 +:104CF0000E4600250192616BA1632565E562FFF711 +:104D0000C1FE012E07D9019B2A460C2102B0BDE845 +:104D10007040FFF7A5BF02B070BD000010B541F4B0 +:104D20009851446CA260E160616B11F04502FBD0C8 +:104D3000A26311F03F0203D0FFF7A4FE012010BDD3 +:104D4000216A10461960E1695960A1699960616939 +:104D5000D960F4E72DE9F74304460191006D01A9FC +:104D60001746984602F020FC064600284AD0626C9E +:104D70002046DDF804905568C5F3090501356B0040 +:104D8000A56CB5FBF3F54FF47A73B5FBF3F55D4312 +:104D9000556200F027FE50BB636C4FF0FF320125D7 +:104DA0004146C3F8589020461D659A634FF49572AA +:104DB000DA6342F207029F62DA62E36C0A9AFFF753 +:104DC0004FFFA0B9E26C104B11680B407BB929462C +:104DD0002046FFF75BFF054648B92E463A46019943 +:104DE000206D02F019FC304603B0BDE8F0833A466E +:104DF0000199206D02F010FCE26C01212046FFF7C2 +:104E000075FFF0E70126EEE708E0FFFD2DE9F74327 +:104E10001F46436C01924FF47A725D6804468846DF +:104E2000C5F3090501356E00856CB5FBF6F5B5FBDC +:104E3000F2F555435D6200F0D5FD20B1012528460D +:104E400003B0BDE8F0837E0201A9206D324602F076 +:104E5000ABFB05460028F1D0636C019AD4F84C9066 +:104E60009A6501221A654FF0FF329A634FF49572EA +:104E7000DA639E62236BDB064B4658BF4FEA482835 +:104E8000012F42461BD912212046FFF7E9FEC0B987 +:104E9000D9F80020104B13409BB9636C42F2930287 +:104EA00039462046DA62E26CFFF7F0FE804640B9F0 +:104EB00032460199206D454602F0AEFBBFE7112155 +:104EC000E2E732460199206D02F0A6FBE26C39461A +:104ED0002046FFF70BFFB2E708E0FFFD2DE9F341A5 +:104EE0001F46436C01924FF47A725D68044688460F +:104EF000C5F3090501356E00856CB5FBF6F5B5FB0C +:104F0000F2F555435D6200F06DFD20B101252846A4 +:104F100002B0BDE8F0817E0201A9206D324602F0A8 +:104F200089FB05460028F1D0636C019A9A6501223D +:104F30001A654FF0FF329A634FF48D72DA639E6206 +:104F4000236BE66CDB06334658BF4FEA4828012F37 +:104F5000424619D919212046FFF782FEB0B93268BE +:104F60000F4B134093B9636C42F2910239462046CD +:104F7000DA62E26CFFF78AFE064638B901993546D7 +:104F8000206D02F093FBC2E71821E4E70199206D40 +:104F900002F08CFBE26C39462046FFF7A7FEB6E72D +:104FA00008E0FFFD12F0030F2DE9F04107460C4623 +:104FB00015461E4617D00E44B44202D10020BDE86B +:104FC000F0810123FA6B21463846FFF71FFF0028C6 +:104FD000F5D128464FF40072F96B05F500750134E0 +:104FE000FCF784FEE8E7BDE8F041FFF70FBF0000E3 +:104FF00012F0030F2DE9F04107460C4615461E46F8 +:1050000017D00E44B44202D10020BDE8F0812946F9 +:105010004FF40072F86B05F50075FCF767FE01238D +:10502000FA6B21463846FFF759FF0028EDD10134CD +:10503000E8E7BDE8F041FFF751BF000000207047EE +:10504000302310B583F311880024436C403021468F +:10505000DC6301F021FB84F3118810BD0268436812 +:105060001143016003B1184770470000024A1368FA +:1050700043F0C0031360704700440040024A1368C5 +:1050800043F0C0031360704700480040024A1368B1 +:1050900043F0C0031360704700780040064BD3F81C +:1050A000E8200243C3F8E820D3F810211043C3F8E6 +:1050B0001001D3F8103170470044025837B5274C1F +:1050C000274D204600F028FD04F114000094002331 +:1050D0004FF40072234900F0C3F94FF400722249E3 +:1050E00004F138000094214B00F03CFA204BC4E955 +:1050F0001735204C204600F00FFD04F114000094F9 +:1051000000234FF400721C4900F0AAF94FF400721A +:105110001A4904F138000094194B00F023FA194B96 +:10512000C4E91735184C204600F0F6FC04F11400D1 +:1051300000234FF400721549009400F091F9144BCC +:105140004FF40072134904F13800009400F00AFA99 +:10515000114BC4E9173503B030BD00BF2039002022 +:1051600000E1F505643A0020644000206D5000081D +:10517000004400408C390020643C00206442002040 +:105180007D50000800480040F8390020643E0020AF +:105190008D500008644400200078004038B5264D4A +:1051A0000446037C002918BF0D46012B06D1234B72 +:1051B000984230D14FF40030FFF770FF2A68236E19 +:1051C000E16D03EB5203A566B3FBF2F36A681004CA +:1051D00042BF23F0070003F0070343EA4003CB601C +:1051E000AB6843F040034B60EB6843F001038B6016 +:1051F00042F4967343F001030B604FF0FF330B62F0 +:10520000510505D512F0102211D0B2F1805F10D0F7 +:1052100084F8643038BD0A4B984205D0094B984257 +:10522000CCD14FF08040C7E74FF48020C4E77F2304 +:10523000EEE73F23ECE700BFC098000820390020CC +:105240008C390020F83900202DE9F047C66D05465D +:105250003768F469210734621AD014F0080118BFC6 +:105260004FF48071E20748BF41F02001A3074FF0DF +:10527000300348BF41F04001600748BF41F0800162 +:1052800083F31188281DFFF7E9FE002383F31188BB +:10529000E2050AD5302383F311884FF48061281D7D +:1052A000FFF7DCFE002383F311884FF030094FF045 +:1052B000000A14F0200838D13B0616D54FF030090B +:1052C00005F1380A200610D589F31188504600F000 +:1052D0007DF9002836DA0821281DFFF7BFFE27F0E8 +:1052E00080033360002383F31188790614D56206A6 +:1052F00012D5302383F31188D5E913239A4208D1BC +:105300002B6C33B127F040071021281DFFF7A6FEB4 +:105310003760002383F31188E30618D5AA6E13695A +:10532000ABB15069BDE8F047184789F31188736A3B +:10533000284695F86410194000F008FC8AF311889B +:10534000F469B6E7B06288F31188F469BAE7BDE89A +:10535000F0870000090100F16043012203F5614379 +:10536000C9B283F8001300F01F039A4043099B0061 +:1053700003F1604303F56143C3F880211A6070476D +:1053800000F01F0301229A40430900F160409B0096 +:1053900000F5614003F1604303F56143C3F88020E9 +:1053A000C3F88021002380F800337047F8B5154614 +:1053B000826804460B46AA4200D28568A169266924 +:1053C000761AB5420BD218462A46FCF78FFCA36921 +:1053D0002B44A3612846A3685B1BA360F8BD0CD9CE +:1053E000AF1B18463246FCF781FC3A46E168304470 +:1053F000FCF77CFCE3683B44EBE718462A46FCF7E5 +:1054000075FCE368E5E7000083689342F7B504465E +:10541000154600D28568D4E90460361AB5420BD22D +:105420002A46FCF763FC63692B4463612846A36842 +:105430005B1BA36003B0F0BD0DD93246AF1B0191D9 +:10544000FCF754FC01993A46E0683144FCF74EFC05 +:10545000E3683B44E9E72A46FCF748FCE368E4E7F5 +:1054600010B50A440024C361029B8460C1600261DC +:105470000362C0E90000C0E9051110BD08B5D0E91C +:105480000532934201D1826882B98268013282601A +:105490005A1C426119700021D0E904329A4224BF9B +:1054A000C368436101F012F9002008BD4FF0FF30DE +:1054B000FBE7000070B5302304460E4683F31188E5 +:1054C000A568A5B1A368A269013BA360531CA361B1 +:1054D00015782269934224BFE368A361E3690BB1A5 +:1054E00020469847002383F31188284607E0314679 +:1054F000204601F0DBF80028E2DA85F3118870BD60 +:105500002DE9F74F04460E4617469846D0F81C90F2 +:105510004FF0300A8AF311884FF0000B154665B141 +:105520002A4631462046FFF741FF034660B941460F +:10553000204601F0BBF80028F1D0002383F3118846 +:10554000781B03B0BDE8F08FB9F1000F03D00190D4 +:105550002046C847019B8BF31188ED1A1E448AF33D +:105560001188DCE7C160C361009B82600362C0E90F +:1055700005111144C0E9000001617047F8B5044607 +:105580000D461646302383F31188A768A7B1A36898 +:10559000013BA36063695A1C62611D70D4E9043247 +:1055A0009A4224BFE3686361E3690BB120469847E0 +:1055B000002080F3118807E03146204601F076F89C +:1055C0000028E2DA87F31188F8BD0000D0E905234E +:1055D00010B59A4201D182687AB9826800210132FD +:1055E00082605A1C82611C7803699A4224BFC36896 +:1055F000836101F06BF8204610BD4FF0FF30FBE7F0 +:105600002DE9F74F04460E4617469846D0F81C90F1 +:105610004FF0300A8AF311884FF0000B154665B140 +:105620002A4631462046FFF7EFFE034660B9414661 +:10563000204601F03BF80028F1D0002383F31188C5 +:10564000781B03B0BDE8F08FB9F1000F03D00190D3 +:105650002046C847019B8BF31188ED1A1E448AF33C +:105660001188DCE70379052B05BF836A0020012040 +:105670004B6004BF4FF400730B60704770B55D1E44 +:10568000866A04460D44B54205D9436B43F0800356 +:105690004363012070BD06250571FFF783FC0523D8 +:1056A0002371F7E770B55D1E866A04460D44B54266 +:1056B00005D9436B43F080034363012070BD072588 +:1056C0000571FFF795FC05232371F7E738B50579D8 +:1056D0000446052D05D108230371FFF7AFFC2571A2 +:1056E00038BD0120FCE700000323F0B5037185B04D +:1056F0000446FFF749FA002220461146FFF78EFACA +:105700004FF4D57203AB08212046FFF7A9FA0246F1 +:10571000B8B901232363039BC3F30323012B09D1EE +:1057200003AB37212046FFF79BFA18B9A44B039A25 +:105730001340ABB120460125FFF758FA022323712D +:1057400037E103AB002237212046FFF789FA28B959 +:105750009B4A039B1A40002A00F0A7800223236380 +:10576000236B03F00F03022B40F0A9806425954EB4 +:1057700042F2107000F076FF03AB32460121204662 +:10578000FFF758FA0028D5D1039B002B80F29380B5 +:105790005A0003D5236B43F010032363002204F166 +:1057A000080302212046FFF7B9FA02460028C1D1BA +:1057B00004F1380303212046FFF752FA0028B9D13B +:1057C00004F11805A26B092120462B46FFF7A6FA23 +:1057D0000028AFD102ABA26B07212046FFF740FAA9 +:1057E00006460028A6D1236B03F00F03022B40F0DE +:1057F0008F807E227F21284603F01CFA012840F288 +:105800008780E76B42F2107000F02CFF08234FF402 +:105810000072394620460096FFF79CFA002889D18D +:10582000384603F055FA236BA06203F00F03022BF6 +:1058300072D103AB644A06212046FFF711FA002813 +:1058400071D15F49039B1940B1FA81F149092046A2 +:10585000FFF7ACF902AB4FF4007210212046FFF7BE +:10586000FFF9054600287FF465AF554E029B334291 +:105870007FF460AF236B13F00E0F03F00F0273D0B1 +:10588000022A7FF457AFE36A1978012900F0948067 +:10589000022900F09380002900F089804B4F2046B8 +:1058A000FFF7AAF903AB3A4676E011462046226399 +:1058B000FFF7B4F954E7013D7FF45AAF3AE7444D9E +:1058C0006426444A3E4F012B18BF154603AB002205 +:1058D00037212046FFF7C4F900287FF42BAF039B44 +:1058E0003B427FF427AF03AB2A4629212046FFF72E +:1058F000A1F900287FF41EAF039B002BFFF648AFF1 +:10590000013E3FF417AF42F2107000F0ABFEDDE74E +:10591000284603F0B1F986E77E227F212846E66B10 +:1059200003F088F908B9002191E7002340223146AD +:10593000204600930623FFF70DFA0028F3D1B38920 +:105940005BBA9B07EFD5244B40223146204600939B +:105950000623FFF7FFF90028E5D1317C01F00F01A4 +:105960000F3918BF012172E7E36A1978F9B10129EB +:105970007FF4E0AE2046FFF73FF903ABA26B37217F +:105980002046FFF76DF900287FF4D4AE039B334225 +:105990007FF4D0AE03AB022206212046FFF760F968 +:1059A00000287FF4C7AE039B33427FF4C3AE0523C8 +:1059B0002371284605B0F0BD084F70E7084F6EE729 +:1059C00008E0FFFD0080FFC00001B9030000B7033D +:1059D0000080FF5000001080F1FFFF800001B7033E +:1059E0000002B70337B504460C4D01ABA26B0D2185 +:1059F0002046FFF735F978B9019B2B420BD1C3F351 +:105A00004323042B08D0053B022B04D84FF47A70B3 +:105A100000F028FEE9E7012003B030BD08E0FFFDFB +:105A200070B53023054683F3118803790024022BD7 +:105A300003D184F31188204670BD0423037184F3DD +:105A400011880226FFF7CEFF04462846FFF7CEF85E +:105A50002E71F0E7FFF730B8044B036001230371A8 +:105A600000234363C0E90A33704700BFD898000899 +:105A700010B53023044683F31188C162FFF736F86E +:105A800002230020237180F3118810BD10B530234C +:105A9000044683F31188FFF753F800230122E362E1 +:105AA000227183F3118810BD0268436811430160BD +:105AB00003B11847704700001430FFF721BD000004 +:105AC0004FF0FF331430FFF71BBD00003830FFF7F5 +:105AD00097BD00004FF0FF333830FFF791BD000055 +:105AE0001430FFF7E7BC00004FF0FF311430FFF730 +:105AF000E1BC00003830FFF741BD00004FF0FF323D +:105B00003830FFF73BBD0000012914BF6FF01300D0 +:105B100000207047FFF7D2BA044B036000234360B4 +:105B2000C0E9023301230374704700BFFC980008EA +:105B300010B53023044683F31188FFF72FFB0223AF +:105B40000020237480F3118810BD000038B5C369AC +:105B500004460D461BB904210844FFF7A5FF29465A +:105B600004F11400FFF78AFC002806DA201D4FF428 +:105B70000061BDE83840FFF797BF38BD0268436851 +:105B80001143016003B118477047000013B5406B23 +:105B900000F58054D4F8A4381A681178042914D177 +:105BA000017C022911D11979012312898B401342FA +:105BB0000BD101A94C3002F06BFFD4F8A448024687 +:105BC000019B2179206800F0DFF902B010BD0000D0 +:105BD000143002F0EDBE00004FF0FF33143002F03D +:105BE000E7BE00004C3002F0BFBF00004FF0FF33B3 +:105BF0004C3002F0B9BF0000143002F0BBBE000010 +:105C00004FF0FF31143002F0B5BE00004C3002F00E +:105C10008BBF00004FF0FF324C3002F085BF000018 +:105C20000020704710B500F58054D4F8A4381A68E5 +:105C30001178042917D1017C022914D15979012343 +:105C400052898B4013420ED1143002F04DFE0246B1 +:105C500048B1D4F8A4484FF4407361792068BDE896 +:105C6000104000F07FB910BD406BFFF7DBBF0000B4 +:105C7000704700007FB5124B0125042604460360DF +:105C80000023057400F1840243602946C0E9023311 +:105C90000C4B0290143001934FF44073009602F0C5 +:105CA000FFFD094B04F69442294604F14C0002948E +:105CB000CDE900634FF4407302F0C6FE04B070BD3E +:105CC00024990008695C00088D5B00080A6830238D +:105CD00083F311880B790B3342F823004B7913338C +:105CE00042F823008B7913B10B3342F8230000F5FF +:105CF0008053C3F8A41802230374002080F3118892 +:105D00007047000038B5037F044613B190F8543053 +:105D1000ABB90125201D0221FFF730FF04F114006B +:105D20006FF00101257700F0DDFC04F14C0084F8F0 +:105D300054506FF00101BDE8384000F0D3BC38BDCD +:105D400010B5012104460430FFF718FF0023237724 +:105D500084F8543010BD000038B5044600251430D6 +:105D600002F0B6FD04F14C00257702F085FE201DFF +:105D700084F854500121FFF701FF2046BDE8384068 +:105D8000FFF750BF90F8803003F06003202B06D15E +:105D900090F881200023212A03D81F2A06D800204A +:105DA0007047222AFBD1C0E91D3303E0034A426752 +:105DB00007228267C3670120704700BF442200208A +:105DC00037B500F58055D5F8A4381A68117804293C +:105DD0001AD1017C022917D11979012312898B402C +:105DE000134211D100F14C04204602F005FF58B1D6 +:105DF00001A9204602F04CFED5F8A4480246019BBA +:105E00002179206800F0C0F803B030BD01F10B0328 +:105E1000F0B550F8236085B004460D46FEB130233E +:105E200083F3118804EB8507301D0821FFF7A6FED8 +:105E3000FB6806F14C005B691B681BB1019002F026 +:105E400035FE019803A902F023FE024648B1039BE8 +:105E50002946204600F098F8002383F3118805B006 +:105E6000F0BDFB685A691268002AF5D01B8A013B15 +:105E70001340F1D104F18002EAE70000133138B594 +:105E800050F82140ECB1302383F3118804F580539E +:105E9000D3F8A4281368527903EB8203DB689B696B +:105EA0005D6845B104216018FFF768FE294604F1DA +:105EB000140002F023FD2046FFF7B4FE002383F315 +:105EC000118838BD7047000001F044BD0123402215 +:105ED000002110B5044600F8303BFBF72DFF0023EE +:105EE000C4E9013310BD000010B53023044683F32C +:105EF00011882422416000210C30FBF71DFF204651 +:105F000001F04AFD02230020237080F3118810BDA8 +:105F100070B500EB8103054650690E461446DA6001 +:105F200018B110220021FBF707FFA06918B1102259 +:105F30000021FBF701FF31462846BDE8704001F023 +:105F400031BE000083682022002103F0011310B548 +:105F5000044683601030FBF7EFFE2046BDE810409A +:105F600001F0ACBEF0B4012500EB810447898D40FF +:105F7000E4683D43A469458123600023A260636017 +:105F8000F0BC01F0C9BE0000F0B4012500EB8104B3 +:105F900007898D40E4683D436469058123600023DF +:105FA000A2606360F0BC01F03FBF000070B5022347 +:105FB00000250446242203702946C0F888500C307E +:105FC00040F8045CFBF7B8FE204684F8705001F0FE +:105FD0007DFD63681B6823B129462046BDE87040FB +:105FE000184770BD0378052B10B504460AD080F819 +:105FF0008C300523037043681B680BB1042198475C +:106000000023A36010BD00000178052906D190F897 +:106010008C20436802701B6803B11847704700006A +:1060200070B590F87030044613B1002380F87030DA +:1060300004F18002204601F065FE63689B68B3B9F5 +:1060400094F8803013F0600535D00021204602F02E +:1060500057F90021204602F047F963681B6813B125 +:10606000062120469847062384F8703070BD2046EC +:1060700098470028E4D0B4F88630A26F9A4288BFCF +:10608000A36794F98030A56F002B4FF0300380F2A6 +:106090000381002D00F0F280092284F8702083F340 +:1060A000118800212046D4E91D23FFF76DFF00234E +:1060B00083F31188DAE794F8812003F07F0343EA41 +:1060C000022340F20232934200F0C58021D8B3F59A +:1060D000807F48D00DD8012B3FD0022B00F0938059 +:1060E000002BB2D104F1880262670222A267E36743 +:1060F000C1E7B3F5817F00F09B80B3F5407FA4D169 +:1061000094F88230012BA0D1B4F8883043F0020318 +:1061100032E0B3F5006F4DD017D8B3F5A06F31D092 +:10612000A3F5C063012B90D86368204694F88220C1 +:106130005E6894F88310B4F88430B047002884D0A7 +:10614000436863670368A3671AE0B3F5106F36D03E +:1061500040F6024293427FF478AF5C4B63670223C0 +:10616000A3670023C3E794F88230012B7FF46DAF5F +:10617000B4F8883023F00203A4F88830C4E91D5530 +:10618000E56778E7B4F88030B3F5A06F0ED194F8E6 +:106190008230204684F88A3001F0F6FC63681B6880 +:1061A00013B1012120469847032323700023C4E93B +:1061B0001D339CE704F18B0363670123C3E7237856 +:1061C000042B10D1302383F311882046FFF7BAFE49 +:1061D00085F311880321636884F88B5021701B6854 +:1061E0000BB12046984794F88230002BDED084F81B +:1061F0008B300423237063681B68002BD6D00221E8 +:1062000020469847D2E794F8843020461D0603F0D4 +:106210000F010AD501F068FD012804D002287FF49F +:1062200014AF2B4B9AE72B4B98E701F04FFDF3E7A8 +:1062300094F88230002B7FF408AF94F8843013F088 +:106240000F01B3D01A06204602D502F071F8ADE76F +:1062500002F062F8AAE794F88230002B7FF4F5AEE2 +:1062600094F8843013F00F01A0D01B06204602D50D +:1062700002F046F89AE702F037F897E7142284F81C +:10628000702083F311882B462A4629462046FFF7C3 +:1062900069FE85F31188E9E65DB1152284F8702066 +:1062A00083F3118800212046D4E91D23FFF75AFE0D +:1062B000FDE60B2284F8702083F311882B462A46D2 +:1062C00029462046FFF760FEE3E700BF5499000827 +:1062D0004C9900085099000838B590F87030044681 +:1062E000002B3ED0063BDAB20F2A34D80F2B32D81F +:1062F000DFE803F0373131082232313131313131C9 +:1063000031313737856FB0F886309D4214D2C3687B +:106310001B8AB5FBF3F203FB12556DB9302383F3EF +:1063200011882B462A462946FFF72EFE85F3118851 +:106330000A2384F870300EE0142384F87030302380 +:1063400083F31188002320461A461946FFF70AFEF8 +:10635000002383F3118838BDC36F03B1984700232E +:10636000E7E70021204601F0CBFF0021204601F0A5 +:10637000BBFF63681B6813B10621204698470623BC +:10638000D7E7000010B590F870300446142B29D0E0 +:1063900017D8062B05D001D81BB110BD093B022B25 +:1063A000FBD80021204601F0ABFF0021204601F080 +:1063B0009BFF63681B6813B106212046984706239C +:1063C00019E0152BE9D10B2380F87030302383F3CB +:1063D000118800231A461946FFF7D6FD002383F3E0 +:1063E0001188DAE7C3689B695B68002BD5D1C36F5E +:1063F00003B19847002384F87030CEE70023826809 +:1064000080F8243083691B6899689142FBD25A68EE +:10641000036042601060586070470000002382688B +:1064200080F8243083691B6899689142FBD85A68C8 +:1064300003604260106058607047000008B508466D +:10644000302383F3118891F82430032B05D0042BDB +:106450000DD02BB983F3118808BD8B6A00221A6016 +:106460004FF0FF338362FFF7C9FF0023F2E7D1E962 +:10647000003213605A60F3E7034610B51B68984278 +:1064800003D09C688A689442F8D25A680B604A60CC +:106490001160596010BD0000FFF7B0BF064BD9680E +:1064A00081F824001868026853601A600122D860DD +:1064B00080F82420F9F7A6BF684600200C4B30B5C1 +:1064C000DD684B1C87B004460FD02B46094A68464E +:1064D00000F09CF92046FFF7E1FF009B13B16846EE +:1064E00000F09EF9A86A07B030BDFFF7D7FFF9E7C3 +:1064F000684600203D640008044B1A68DB68906819 +:106500009B68984294BF0020012070476846002095 +:10651000094B10B51C68D868226853601A600122C4 +:10652000DC6084F82420FFF779FF01462046BDE8AF +:106530001040F9F767BF00BF68460020044B1A6897 +:10654000DB6892689B689A4201D9FFF7E1BF704708 +:106550006846002038B50123084C0025237065608B +:1065600002F0E4FB02F00AFC0549064802F0E0FCF8 +:106570000223237085F3118838BD00BF1049002025 +:106580005C9900086846002000F080B9034A516811 +:1065900053685B1A9842FBD8704700BF001000E0B8 +:1065A0008B604B630023CA6100F128020B63022356 +:1065B0000A618B840123886181F8263001F1100380 +:1065C000C26A4A611360C36201F12C030846CB62C0 +:1065D00070470000D0E90131026841F8183CA1F190 +:1065E0009C033839CB60036941F8243C436941F886 +:1065F000203C034B41F8043CC3680248FFF7D0BF7E +:106600001D0400086846002008B5FFF7E3FFBDE859 +:106610000840FFF741BF000038B50E4BDC6804F1BD +:106620002C05A062E06AA8420FD194F826303BB94D +:1066300094F825309B0702BFD4E9043213605A60F6 +:106640000F20BDE83840FFF729BF0368E362FFF77A +:1066500023FFE7E768460020302383F31188FFF724 +:10666000DBBF000008B50146302383F31188082002 +:10667000FFF724FF002383F3118808BD054BDB6877 +:1066800021B1036098620320FFF718BF4FF0FF307D +:10669000704700BF6846002003682BB100220260EB +:1066A00018469962FFF7F8BE70470000064BDB689A +:1066B00039B1426818605A60136043600420FFF7E4 +:1066C000FDBE4FF0FF3070476846002003689842D7 +:1066D00006D01A680260506018469962FFF7DCBE67 +:1066E0007047000038B504460D462068844200D14A +:1066F00038BD036823605C608562FFF7CDFEF4E778 +:10670000036810B59C68A2420CD85C688A600B6074 +:106710004C602160596099688A1A9A604FF0FF3383 +:10672000836010BD121B1B68ECE700000A2938BF0C +:106730000A2170B504460D460A26601902F0F0FAE7 +:1067400002F0D8FA041BA54203D8751C04462E4655 +:10675000F3E70A2E04D90120BDE8704002F0B0BC76 +:1067600070BD0000F8B5144B0D460A2A4FF00A0719 +:10677000D96103F11001826038BF0A2241601969B2 +:106780001446016048601861A81802F0B9FA02F0D6 +:10679000B1FA431B0646A34206D37C1C28192746A0 +:1067A000354602F0BDFAF2E70A2F04D90120BDE810 +:1067B000F84002F085BCF8BD68460020F8B50646F2 +:1067C0000D4602F097FA0F4A134653F8107F9F4286 +:1067D00006D12A4601463046BDE8F840FFF7C2BF61 +:1067E000D169BB68441A2C1928BF2C46A34202D990 +:1067F0002946FFF79BFF224631460348BDE8F84093 +:10680000FFF77EBF6846002078460020C0E90323DA +:10681000002310B45DF8044B4361FFF7CFBF0000C5 +:1068200010B5194C236998420DD08168D0E9003227 +:1068300013605A609A680A449A60002303604FF01C +:10684000FF33A36110BD0268234643F8102F536045 +:106850000022026022699A4203D1BDE8104002F092 +:1068600059BA936881680B44936002F043FA226935 +:10687000E1699268441AA242E4D91144BDE810408B +:10688000091AFFF753BF00BF684600202DE9F04703 +:10689000DFF8BC8008F110072C4ED8F8105002F039 +:1068A00029FAD8F81C40AA68031B9A423ED814441F +:1068B0004FF00009D5E90032C8F81C4013605A6057 +:1068C000C5F80090D8F81030B34201D102F022FA96 +:1068D00089F31188D5E9033128469847302383F39B +:1068E00011886B69002BD8D002F004FA6A69A0EB1A +:1068F000040982464A450DD2022002F0E1FB002243 +:10690000D8F81030B34208D151462846BDE8F047C8 +:10691000FFF728BF121A2244F2E712EB09092946B1 +:10692000384638BF4A46FFF7EBFEB5E7D8F81030D7 +:10693000B34208D01444C8F81C00211AA960BDE86D +:10694000F047FFF7F3BEBDE8F08700BF78460020B0 +:106950006846002038B502F0CDF9054AD2E908456D +:10696000031B181945F10001C2E9080138BD00BF39 +:106970006846002010B560B9074804790368053CF3 +:106980009B6818BF0124984708B144F004042046CE +:1069900010BD0124FBE700BFC8360020FFF7EABFA7 +:1069A0002DE9F047884617469A460446B0B90D4E81 +:1069B0003579052D05D003240DE0013D15F0FF05C7 +:1069C0000ED03268534639463046D2F814904246CB +:1069D000C8470028F1D12046BDE8F0870424FAE733 +:1069E0000124F8E7C83600202DE9F047884617460D +:1069F0009A460446B0B90D4E3579052D05D00324CD +:106A00000DE0013D15F0FF050ED0326853463946C2 +:106A10003046D2F818904246C8470028F1D12046A7 +:106A2000BDE8F0870424FAE70124F8E7C83600201F +:106A300037B50C46154670B951B101290BD107483D +:106A4000694603681B6A984710B9019B04462B608E +:106A5000204603B030BD0424FAE700BFC83600204A +:106A600000207047FEE70000704700004FF0FF3045 +:106A7000704700004B6843608B688360CB68C360DD +:106A80000B6943614B6903628B6943620B68036066 +:106A90007047000008B53C4B40F2FF713B48D3F80B +:106AA00088200A43C3F88820D3F8882022F4FF62A4 +:106AB00022F00702C3F88820D3F88820D3F8E0201A +:106AC0000A43C3F8E020D3F808210A43C3F8082199 +:106AD0002F4AD3F808311146FFF7CCFF00F580604C +:106AE00002F11C01FFF7C6FF00F5806002F13801DA +:106AF000FFF7C0FF00F5806002F15401FFF7BAFF15 +:106B000000F5806002F17001FFF7B4FF00F58060CE +:106B100002F18C01FFF7AEFF00F5806002F1A801E1 +:106B2000FFF7A8FF00F5806002F1C401FFF7A2FFA4 +:106B300000F5806002F1E001FFF79CFF00F5806046 +:106B400002F1FC01FFF796FF02F58C7100F5806001 +:106B5000FFF790FF01F084FC0E4BD3F8902242F037 +:106B60000102C3F89022D3F8942242F00102C3F844 +:106B700094220522C3F898204FF06052C3F89C205D +:106B8000054AC3F8A02008BD00440258000002587E +:106B90007099000800ED00E01F00080308B501F03F +:106BA0006BFEFFF7D7FC104BD3F8DC2042F040021D +:106BB000C3F8DC20D3F8042122F04002C3F80421FA +:106BC000D3F80431094B1A6842F008021A601A68B7 +:106BD00042F004021A6000F071FD00F035FBBDE8E0 +:106BE000084000F0B5B800BF004402580018024841 +:106BF00001207047002070477047000002290CD028 +:106C0000032904D00129074818BF00207047032A30 +:106C100005D8054800EBC2007047044870470020C3 +:106C2000704700BF6C9B000854220020209B000886 +:106C300070B59AB005460846144601A900F0C2F89E +:106C400001A8FBF771F8431C0022C6B25B00104696 +:106C5000C5E9003423700323023404F8013C01AB7E +:106C6000D1B202348E4201D81AB070BD13F8011BA4 +:106C7000013204F8010C04F8021CF1E708B53023D6 +:106C800083F311880348FFF79BF8002383F31188EF +:106C900008BD00BF1849002090F8803003F01F02A3 +:106CA000012A07D190F881200B2A03D10023C0E9E3 +:106CB0001D3315E003F06003202B08D1B0F88430B9 +:106CC0002BB990F88120212A03D81F2A04D8FFF776 +:106CD00059B8222AEBD0FAE7034A426707228267B3 +:106CE000C3670120704700BF4B22002007B505296C +:106CF00017D8DFE801F0191603191920302383F3A0 +:106D00001188104A01210190FFF702F90198022130 +:106D10000D4AFFF7FDF80D48FFF71EF8002383F337 +:106D2000118803B05DF804FB302383F31188074812 +:106D3000FEF7E8FFF2E7302383F311880348FEF7FC +:106D4000FFFFEBE7C09A0008E49A0008184900200A +:106D500038B50C4D0C4C2A460C4904F10800FFF7DD +:106D600067FF05F1CA0204F110000949FFF760FF4F +:106D700005F5CA7204F118000649BDE83840FFF76E +:106D800057BF00BFF061002054220020A49A0008E1 +:106D9000AE9A0008B69A000870B5044608460D463B +:106DA000FAF7C2FFC6B22046013403780BB9184681 +:106DB00070BD32462946FAF7A3FF0028F3D101201F +:106DC000F6E700002DE9F04705460C46FAF7ACFF60 +:106DD0002C49C6B22846FFF7DFFF08B10836F6B2E5 +:106DE00029492846FFF7D8FF08B11036F6B2632EBE +:106DF0000BD8DFF89080DFF89090244FDFF898A050 +:106E00002E7846B92670BDE8F08729462046BDE8B1 +:106E1000F04702F0FFB9252E30D10722414628461F +:106E2000FAF76EFF80B91A4B224603F10C0153F8B2 +:106E3000040B8B4242F8040BF9D1198807359B7873 +:106E40000F3411809370DBE7082249462846FAF791 +:106E500057FF98B9A21C0F4B197802320909C95D76 +:106E600002F8041C13F8011B01F00F015345C95D22 +:106E700002F8031CF0D118340835C1E7013504F8D5 +:106E8000016BBDE78C9B0008B69A0008A49B000824 +:106E9000949B000800E8F11F0CE8F11FBFF34F8F2F +:106EA000044B1A695107FCD1D3F810215207F8D1CD +:106EB000704700BF0020005208B50D4B1B78ABB9DE +:106EC000FFF7ECFF0B4BDA68D10704D50A4A5A608A +:106ED00002F188325A60D3F80C21D20706D5064A4F +:106EE000C3F8042102F18832C3F8042108BD00BFB1 +:106EF0004E640020002000522301674508B5114B65 +:106F00001B78F3B9104B1A69510703D5DA6842F0C0 +:106F10004002DA60D3F81021520705D5D3F80C21CE +:106F200042F04002C3F80C21FFF7B8FF064BDA68C5 +:106F300042F00102DA60D3F80C2142F00102C3F8FA +:106F40000C2108BD4E640020002000520F289ABF7B +:106F500000F5806040040020704700004FF40030CE +:106F600070470000102070470F2808B50BD8FFF7B6 +:106F7000EDFF00F500330268013204D10430834292 +:106F8000F9D1012008BD0020FCE700000F2838B52A +:106F900005463FD8FFF782FF1F4CFFF78DFF4FF0EC +:106FA000FF3307286361C4F814311DD82361FFF74C +:106FB00075FF030243F02403E360E36843F08003BA +:106FC000E36023695A07FCD42846FFF767FFFFF701 +:106FD000BDFF4FF4003100F0ABFA2846FFF78EFFFB +:106FE000BDE83840FFF7C0BFC4F81031FFF756FFC7 +:106FF000A0F108031B0243F02403C4F80C31D4F8B9 +:107000000C3143F08003C4F80C31D4F810315B0725 +:10701000FBD4D9E7002038BD002000522DE9F84FFD +:1070200005460C46104645EA0203DE0602D0002063 +:10703000BDE8F88F20F01F00DFF8BCB0DFF8BCA07F +:10704000FFF73AFF04EB0008444503D10120FFF7A6 +:1070500055FFEDE720222946204602F0A3F810B99B +:1070600020352034F0E72B4605F120021F68791CFB +:10707000DDD104339A42F9D105F178431B481C4E07 +:10708000B3F5801F1B4B38BF184603F1F80332BF1E +:10709000D946D1461E46FFF701FF0760A5EB040C59 +:1070A000336804F11C0143F002033360231FD9F855 +:1070B000007017F00507FAD153F8042F8B424CF8F3 +:1070C0000320F4D1BFF34F8FFFF7E8FE4FF0FF33FB +:1070D0002022214603602846336823F002033360F0 +:1070E00002F060F80028BBD03846B0E71421005207 +:1070F0000C20005214200052102000521021005287 +:1071000010B5084C237828B11BB9FFF7D5FE012331 +:10711000237010BD002BFCD02070BDE81040FFF79D +:10712000EDBE00BF4E6400202DE9F04F0D4685B046 +:10713000814658B111F00D0614BF2022082211F02B +:107140000803019304D0431E034269D0002435E0B4 +:10715000002E37D009F11F0121F01F094FF001085F +:10716000314F05F00403DFF8CCA005EA080BBBF1B2 +:10717000000F32D07869C0072FD408F101080C370E +:10718000B8F1060FF3D19EB9284D4946A8190192CE +:1071900001F016FE0446002839D12036019AA02EAF +:1071A000F3D1494601F00CFE044600282FD1019A84 +:1071B00049461F4801F004FE044660BB204605B066 +:1071C000BDE8F08F0029C9D101462846029201F09E +:1071D000F7FD0446D8B9029AC0E713B178694107B0 +:1071E000CBD5AC0702D578698007C6D5019911B116 +:1071F00078690107C1D549460AEB4810CDE9022359 +:1072000001F0DEFD0446DDE902230028B5D04A4640 +:107210000021204601E04A460021FAF78DFDCDE726 +:107220000246002E96D199E7B89B00089064002092 +:1072300050640020706400200021FFF775BF00003B +:107240000121FFF771BF000070B5144D0124144EE9 +:1072500040F2FF3200210120FAF76EFD06EB4410E8 +:1072600001342A6955F80C1F01F096FD062CF5D162 +:1072700037254FF4C0542046FFF7E2FF014628B1FE +:1072800022460848BDE8704001F086BDC4EBC40446 +:10729000013D4FEAD404EED170BD00BFB89B000899 +:1072A00070640020506400200421FFF73DBF0000FF +:1072B0004843FFF7C1BF000008B101F0F3BD7047BC +:1072C000B0F5805F10B5044607D8FFF7EDFF28B989 +:1072D0002046BDE81040FFF7AFBF002010BD000002 +:1072E000FFF7EABF70B5AAB140EA010313F01F032C +:1072F0000FD1094C0144A5686D0706D52568A84241 +:1073000003D366683544A94204D903330C34122BE5 +:10731000F1D10022104670BDB89B000808B501F0FD +:10732000D7FE034AD2E90032C01842EB010108BD82 +:1073300030650020434BD3E900232DE9F34113438B +:107340007CD0FFF7EBFF404A00230027F9F774F8E1 +:1073500006460D463D4A0023F9F76EF80023144611 +:1073600030462946394AF9F767F84FF461613C2302 +:10737000ADF80170B4FBF1F5B4FBF3F601FB154178 +:1073800003FB16464624B1FBF3F1314BF6B28DF800 +:10739000004098423CD84FF0640C4FF4C87EA307DD +:1073A00004F26C7225D1B2FBFCF30CFB132313BB6C +:1073B000B2FBFEF30EFB1322B2FA82F35B0903F277 +:1073C0006D18621C8045D2B217D90FB18DF80040FC +:1073D0000022204C4FF00C0C17460CFB0343D4B298 +:1073E000013213F804C084450CD8A0EB0C0001272F +:1073F000F5E70023E3E70123E1E7A0EB08001446EB +:107400000127CCE70FB18DF80140431C8DF8023005 +:107410009DF80100431C9DF800005038400640EAEA +:1074200043509DF8023040EA034040EA560040EAEB +:10743000C52040EA411002B0BDE8F0814FF40410CD +:10744000F9E700BF3065002040420F008051010085 +:1074500090230B00009C00080244074BD2B210B5E9 +:10746000904200D110BD441C00B253F8200041F8F6 +:10747000040BE0B2F4E700BF504000580E4B30B5AB +:107480001C6F240405D41C6F1C671C6F44F400445B +:107490001C670A4C02442368D2B243F48073236011 +:1074A000074B904200D130BD441C51F8045B00B240 +:1074B00043F82050E0B2F4E7004402580048025874 +:1074C0005040005807B5012201A90020FFF7C4FF72 +:1074D000019803B05DF804FB13B50446FFF7F2FF13 +:1074E000A04205D0012201A900200194FFF7C6FFA8 +:1074F00002B010BD10B56424013C4FF47A70FFF760 +:10750000B1F814F0FF04F7D1084B4FF08072142447 +:107510009A6103F5805308229A61013C4FF47A7016 +:10752000FFF7A0F814F0FF04F7D110BD00000258D7 +:107530000144BFF34F8F064B884204D3BFF34F8FF4 +:10754000BFF36F8F7047C3F85C022030F4E700BFD1 +:1075500000ED00E00144BFF34F8F064B884204D397 +:10756000BFF34F8FBFF36F8F7047C3F870022030A7 +:10757000F4E700BF00ED00E070B5054616460C4686 +:1075800001201021FFF794FE286046733CB120468D +:1075900036B1FFF789FE2B68186000B19C6070BDA2 +:1075A000FFF74EFEF7E70000F8B50F461546044614 +:1075B00048B905F11F010126386821F01F01FFF7C6 +:1075C000B7FF3046F8BD427B29463868FFF78AFE90 +:1075D00006460028EDD13B686360A368AB4210D239 +:1075E00013B12068FFF768FE637B28462BB1FFF7D5 +:1075F0005BFE206020B9A060E3E7FFF721FEF8E71B +:10760000A560206805F11F01012621F01F013860E7 +:10761000FFF78EFF2673D4E710B5044640B100682B +:10762000884205D1606808B1FAF760FB0023237334 +:1076300010BD0000F8B50F461446054648B904F1E0 +:107640001F010126386821F01F01FFF783FF304634 +:10765000F8BD427B21463868FFF744FE0646002805 +:10766000EDD1AB68A34210D213B12868FFF724FE16 +:107670006B7B20462BB1FFF717FE286020B9A8606E +:10768000E5E7FFF7DDFDF8E7AC60396819B12246A0 +:107690002868FAF72BFB286804F11F01012621F066 +:1076A0001F013860FFF756FF2E73D0E720B1036843 +:1076B0008B4204BF0023037370470000034B1A681A +:1076C0001AB9034AD2F8D0241A60704738650020EE +:1076D0000040025808B5FFF7F1FF024B1868C0F3ED +:1076E000806008BD38650020EFF3098305496833E1 +:1076F0004A6B22F001024A6383F30988002383F373 +:107700001188704700EF00E0302080F3118862B6E6 +:107710000D4B0E4AD96821F4E0610904090C0A43B3 +:107720000B49DA60D3F8FC2042F08072C3F8FC20E9 +:10773000084AC2F8B01F116841F00101116020220F +:10774000DA7783F82200704700ED00E00003FA05C5 +:1077500055CEACC5001000E0302310B583F311887E +:107760000E4B5B6813F4006314D0F1EE103AEFF3A4 +:1077700009844FF08073683CE361094BDB6B23663F +:1077800084F30988FEF7B8FE10B1064BA36110BD63 +:10779000054BFBE783F31188F9E700BF00ED00E03C +:1077A00000EF00E02F0400083204000870B5BFF3BA +:1077B0004F8FBFF36F8F1A4A0021C2F85012BFF3E8 +:1077C0004F8FBFF36F8F536943F400335361BFF39F +:1077D0004F8FBFF36F8FC2F88410BFF34F8FD2F873 +:1077E000803043F6E074C3F3C900C3F34E335B014A +:1077F00003EA0406014646EA81750139C2F860527F +:10780000F9D2203B13F1200FF2D1BFF34F8F536910 +:1078100043F480335361BFF34F8FBFF36F8F70BD5D +:1078200000ED00E0FEE70000214B2248224A70B53F +:10783000904237D3214BC11EDA1C121A22F00302E8 +:107840008B4238BF00220021FAF776FA1C4A002347 +:10785000C2F88430BFF34F8FD2F8803043F6E07423 +:10786000C3F3C900C3F34E335B0103EA04060146C8 +:1078700046EA81750139C2F86C52F9D2203B13F106 +:10788000200FF2D1BFF34F8FBFF36F8FBFF34F8F36 +:10789000BFF36F8F0023C2F85032BFF34F8FBFF397 +:1078A0006F8F70BD53F8041B40F8041BC0E700BF86 +:1078B000049D0008346700203467002034670020EE +:1078C00000ED00E0074BD3F8D81021EA0001C3F81F +:1078D000D810D3F8002122EA0002C3F80021D3F81F +:1078E000003170470044025870B5D0E924430022AB +:1078F0004FF0FF359E6804EB42135101D3F80009A5 +:10790000002805DAD3F8000940F08040C3F80009E8 +:10791000D3F8000B002805DAD3F8000B40F08040C4 +:10792000C3F8000B013263189642C3F80859C3F834 +:10793000085BE0D24FF00113C4F81C3870BD0000A2 +:10794000890141F02001016103699B06FCD41220EA +:10795000FEF71CBE10B50A4C2046FEF7B7FA094BDD +:10796000C4F89030084BC4F89430084C2046FEF719 +:10797000ADFA074BC4F89030064BC4F8943010BDF4 +:107980003C650020000008403C9C0008D8650020B1 +:1079900000000440489C000870B503780546012BA0 +:1079A0005CD1434BD0F89040984258D1414B0E21C6 +:1079B0006520D3F8D82042F00062C3F8D820D3F86D +:1079C000002142F00062C3F80021D3F80021D3F86F +:1079D000802042F00062C3F88020D3F8802022F09B +:1079E0000062C3F88020D3F88030FDF7B3FC324B3F +:1079F000E360324BC4F800380023D5F89060C4F837 +:107A0000003EC02323604FF40413A3633369002BAB +:107A1000FCDA01230C203361FEF7B8FD3369DB0784 +:107A2000FCD41220FEF7B2FD3369002BFCDA0026ED +:107A30002846A660FFF758FF6B68C4F81068DB683B +:107A4000C4F81468C4F81C6883BB1D4BA3614FF0D5 +:107A5000FF336361A36843F00103A36070BD194B5A +:107A60009842C9D1134B4FF08060D3F8D82042F030 +:107A70000072C3F8D820D3F8002142F00072C3F896 +:107A80000021D3F80021D3F8802042F00072C3F81F +:107A90008020D3F8802022F00072C3F88020D3F831 +:107AA0008030FFF70FFF0E214D209EE7064BCDE7FC +:107AB0003C650020004402584014004003002002AE +:107AC000003C30C0D8650020083C30C0F8B5D0F884 +:107AD0009040054600214FF000662046FFF730FF3A +:107AE000D5F8941000234FF001128F684FF0FF304B +:107AF000C4F83438C4F81C2804EB431201339F4205 +:107B0000C2F80069C2F8006BC2F80809C2F8080B95 +:107B1000F2D20B68D5F89020C5F898306362102334 +:107B20001361166916F01006FBD11220FEF72EFD28 +:107B3000D4F8003823F4FE63C4F80038A36943F492 +:107B4000402343F01003A3610923C4F81038C4F89C +:107B500014380B4BEB604FF0C043C4F8103B094B9B +:107B6000C4F8003BC4F81069C4F80039D5F898305F +:107B700003F1100243F48013C5F89820A362F8BD06 +:107B8000189C000840800010D0F8902090F88A10CF +:107B9000D2F8003823F4FE6343EA0113C2F8003838 +:107BA000704700002DE9F84300EB8103D0F89050B6 +:107BB0000C468046DA680FFA81F94801166806F02B +:107BC0000306731E022B05EB41134FF0000194BF17 +:107BD000B604384EC3F8101B4FF0010104F1100336 +:107BE00098BF06F1805601FA03F3916998BF06F534 +:107BF000004600293AD0578A04F158013743490119 +:107C00006F50D5F81C180B430021C5F81C382B18F1 +:107C10000127C3F81019A7405369611E9BB3138A4B +:107C2000928B9B08012A88BF5343D8F89820981854 +:107C300042EA034301F140022146C8F89800284671 +:107C400005EB82025360FFF77BFE08EB8900C368F7 +:107C50001B8A43EA845348341E4364012E51D5F8ED +:107C60001C381F43C5F81C78BDE8F88305EB49179D +:107C7000D7F8001B21F40041C7F8001BD5F81C18E9 +:107C800021EA0303C0E704F13F030B4A28462146DB +:107C900005EB83035A60FFF753FE05EB4910D0F85C +:107CA000003923F40043C0F80039D5F81C3823EA22 +:107CB0000707D7E70080001000040002D0F89420E6 +:107CC0001268C0F89820FFF70FBE00005831D0F8B6 +:107CD000903049015B5813F4004004D013F4001FA6 +:107CE0000CBF0220012070474831D0F89030490184 +:107CF0005B5813F4004004D013F4001F0CBF0220A3 +:107D00000120704700EB8101CB68196A0B68136092 +:107D10004B6853607047000000EB810330B5DD68AD +:107D2000AA691368D36019B9402B84BF402313603C +:107D30006B8A1468D0F890201C4402EB4110013C7F +:107D400009B2B4FBF3F46343033323F0030343EAC0 +:107D5000C44343F0C043C0F8103B2B6803F0030357 +:107D6000012B0ED1D2F8083802EB411013F4807FBA +:107D7000D0F8003B14BF43F0805343F00053C0F8E9 +:107D8000003B02EB4112D2F8003B43F00443C2F83F +:107D9000003B30BD2DE9F041D0F8906005460C461F +:107DA00006EB4113D3F8087B3A07C3F8087B08D5E4 +:107DB000D6F814381B0704D500EB8103DB685B6839 +:107DC0009847FA071FD5D6F81438DB071BD505EB03 +:107DD0008403D968CCB98B69488A5A68B2FBF0F63B +:107DE00000FB16228AB91868DA6890420DD2121A7E +:107DF000C3E90024302383F3118821462846FFF786 +:107E00008BFF84F31188BDE8F081012303FA04F2AB +:107E10006B8923EA02036B81CB68002BF3D02146E8 +:107E20002846BDE8F041184700EB81034A0170B5D0 +:107E3000DD68D0F890306C692668E66056BB1A445D +:107E40004FF40020C2F810092A6802F00302012A48 +:107E50000AB20ED1D3F8080803EB421410F4807F65 +:107E6000D4F8000914BF40F0805040F00050C4F82E +:107E7000000903EB4212D2F8000940F00440C2F8B6 +:107E800000090122D3F8340802FA01F10143C3F8D2 +:107E9000341870BD19B9402E84BF4020206020687E +:107EA0001A442E8A8419013CB4FBF6F440EAC4401B +:107EB00040F00050C6E700002DE9F843D0F890608C +:107EC00005460C464F0106EB4113D3F8088918F01C +:107ED000010FC3F808891CD0D6F81038DB0718D575 +:107EE00000EB8103D3F80CC0DCF81430D3F800E0C9 +:107EF000DA68964530D2A2EB0E024FF000091A6004 +:107F0000C3F80490302383F31188FFF78DFF89F3C2 +:107F1000118818F0800F1DD0D6F834380126A640FD +:107F2000334217D005EB84030134D5F89050D3F8D1 +:107F30000CC0E4B22F44DCF8142005EB0434D2F872 +:107F400000E05168714514D3D5F8343823EA0606A9 +:107F5000C5F83468BDE8F883012303FA01F2038908 +:107F600023EA02030381DCF80830002BD1D09847C4 +:107F7000CFE7AEEB0103BCF81000834228BF0346F5 +:107F8000D7F8180980B2B3EB800FE3D89068A0F15E +:107F9000040959F8048FC4F80080A0EB090898443C +:107FA000B8F1040FF5D818440B4490605360C8E74B +:107FB0002DE9F84FD0F8905004466E69AB691E4029 +:107FC00016F480586E6103D0BDE8F84FFDF7EEBFA0 +:107FD000002E12DAD5F8003E9B0705D0D5F8003EFA +:107FE00023F00303C5F8003ED5F80438204623F0FB +:107FF0000103C5F80438FEF707F8370505D5204614 +:10800000FFF772FC2046FDF7EDFFB0040CD5D5F864 +:10801000083813F0060FEB6823F470530CBF43F4D9 +:10802000105343F4A053EB6031071BD56368DB6842 +:108030001BB9AB6923F00803AB612378052B0CD186 +:10804000D5F8003E9A0705D0D5F8003E23F003038B +:10805000C5F8003E2046FDF7D7FF6368DB680BB12B +:1080600020469847F30200F1BA80B70226D5D4F82B +:10807000909000274FF0010A09EB4712D2F8003B1D +:1080800003F44023B3F5802F11D1D2F8003B002B2D +:108090000DDA62890AFA07F322EA0303638104EB2B +:1080A0008703DB68DB6813B1394620469847013700 +:1080B000D4F89430FFB29B689F42DDD9F00619D501 +:1080C000D4F89000026AC2F30A1702F00F0302F418 +:1080D000F012B2F5802F00F0CA80B2F5402F09D11E +:1080E00004EB8303002200F58050DB681B6A974293 +:1080F00040F0B0803003D5F8185835D5E90303D5E2 +:1081000000212046FFF746FEAA0303D501212046A1 +:10811000FFF740FE6B0303D502212046FFF73AFE2E +:108120002F0303D503212046FFF734FEE80203D5D1 +:1081300004212046FFF72EFEA90203D50521204683 +:10814000FFF728FE6A0203D506212046FFF722FE2C +:108150002B0203D507212046FFF71CFEEF0103D5B4 +:1081600008212046FFF716FE700340F1A780E907BB +:1081700003D500212046FFF79FFEAA0703D5012162 +:108180002046FFF799FE6B0703D502212046FFF733 +:1081900093FE2F0703D503212046FFF78DFEEE0641 +:1081A00003D504212046FFF787FEA80603D5052145 +:1081B0002046FFF781FE690603D506212046FFF71A +:1081C0007BFE2A0603D507212046FFF775FEEB0547 +:1081D00074D520460821BDE8F84FFFF76DBED4F8EE +:1081E00090904FF0000B4FF0010AD4F894305FFAF2 +:1081F0008BF79B689F423FF638AF09EB4713D3F8E4 +:10820000002902F44022B2F5802F20D1D3F80029B2 +:10821000002A1CDAD3F8002942F09042C3F8002962 +:10822000D3F80029002AFBDB3946D4F89000FFF789 +:1082300087FB22890AFA07F322EA0303238104EB6E +:108240008703DB689B6813B13946204698470BF1DA +:10825000010BCAE7910701D1D0F80080072A02F18B +:1082600001029CBF03F8018B4FEA18283FE704EB9B +:10827000830300F58050DA68D2F818C0DCF80820D3 +:10828000DCE9001CA1EB0C0C00218F4208D1DB685B +:108290009B699A683A449A605A683A445A6029E756 +:1082A00011F0030F01D1D0F800808C4501F10101DC +:1082B00084BF02F8018B4FEA1828E6E7BDE8F88F83 +:1082C00008B50348FFF774FEBDE80840FFF744BA5D +:1082D0003C65002008B50348FFF76AFEBDE808408A +:1082E000FFF73ABAD8650020D0F8903003EB41117F +:1082F000D1F8003B43F40013C1F8003B7047000085 +:10830000D0F8903003EB4111D1F8003943F4001359 +:10831000C1F8003970470000D0F8903003EB4111EC +:10832000D1F8003B23F40013C1F8003B7047000074 +:10833000D0F8903003EB4111D1F8003923F4001349 +:10834000C1F8003970470000064BD3F8DC20024327 +:10835000C3F8DC20D3F804211043C3F80401D3F898 +:10836000043170470044025808B53C4B4FF0FF31D0 +:10837000D3F8802062F00042C3F88020D3F8802038 +:1083800002F00042C3F88020D3F88020D3F8842084 +:10839000C3F88410D3F884200022C3F88420D3F8D3 +:1083A0008400D86F40F0FF4040F4FF0040F4DF400D +:1083B00040F07F00D867D86F20F0FF4020F4FF0026 +:1083C00020F4DF4020F07F00D867D86FD3F8880012 +:1083D0006FEA40506FEA5050C3F88800D3F8880025 +:1083E000C0F30A00C3F88800D3F88800D3F89000DF +:1083F000C3F89010D3F89000C3F89020D3F8900001 +:10840000D3F89400C3F89410D3F89400C3F89420E0 +:10841000D3F89400D3F89800C3F89810D3F89800D4 +:10842000C3F89820D3F89800D3F88C00C3F88C10C8 +:10843000D3F88C00C3F88C20D3F88C00D3F89C00C0 +:10844000C3F89C10D3F89C10C3F89C20D3F89C3040 +:10845000FCF72EFABDE8084000F0D6B900440258F7 +:1084600008B50122534BC3F80821534BD3F8F4202D +:1084700042F00202C3F8F420D3F81C2142F00202B9 +:10848000C3F81C210222D3F81C314C4BDA605A6825 +:108490009104FCD54A4A1A6001229A60494ADA607E +:1084A00000221A614FF440429A61444B9A69920447 +:1084B000FCD51A6842F480721A603F4B1A6F12F4AE +:1084C000407F04D04FF480321A6700221A671A687E +:1084D00042F001021A60384B1A685007FCD500229E +:1084E0001A611A6912F03802FBD1012119604FF0AC +:1084F000804159605A67344ADA62344A1A611A680C +:1085000042F480321A602C4B1A689103FCD51A6829 +:1085100042F480521A601A689204FCD52C4A2D4904 +:108520009A6200225A63196301F57C01DA6301F54E +:10853000E77199635A64284A1A64284ADA621A6809 +:1085400042F0A8521A601C4B1A6802F02852B2F18D +:10855000285FF9D148229A614FF48862DA6140229B +:108560001A621F4ADA641F4A1A651F4A5A651F4A6F +:108570009A6532231E4A1360136803F00F03022B1F +:10858000FAD10D4A136943F003031361136903F031 +:108590003803182BFAD14FF00050FFF7D5FE4FF0FB +:1085A0008040FFF7D1FE4FF00040BDE80840FFF7E4 +:1085B000CBBE00BF00800051004402580048025862 +:1085C00000C000F0020000010000FF0100889008D8 +:1085D0003220600063020901470E0508DD0BBF0170 +:1085E00020000020000001100910E000000101102F +:1085F000002000524FF0B04208B5D2F8883003F0A6 +:108600000103C2F8883023B1044A13680BB15068E3 +:108610009847BDE80840FFF79FB800BFB466002048 +:108620004FF0B04208B5D2F8883003F00203C2F828 +:10863000883023B1044A93680BB1D0689847BDE8ED +:108640000840FFF789B800BFB46600204FF0B04281 +:1086500008B5D2F8883003F00403C2F8883023B19B +:10866000044A13690BB150699847BDE80840FFF709 +:1086700073B800BFB46600204FF0B04208B5D2F81E +:10868000883003F00803C2F8883023B1044A9369A4 +:108690000BB1D0699847BDE80840FFF75DB800BF4F +:1086A000B46600204FF0B04208B5D2F8883003F02D +:1086B0001003C2F8883023B1044A136A0BB1506A20 +:1086C0009847BDE80840FFF747B800BFB4660020F0 +:1086D0004FF0B04310B5D3F8884004F47872C3F873 +:1086E0008820A30604D5124A936A0BB1D06A984732 +:1086F000600604D50E4A136B0BB1506B98472106E8 +:1087000004D50B4A936B0BB1D06B9847E20504D5A7 +:10871000074A136C0BB1506C9847A30504D5044A63 +:10872000936C0BB1D06C9847BDE81040FFF714B8BC +:10873000B46600204FF0B04310B5D3F8884004F47D +:108740007C42C3F88820620504D5164A136D0BB12C +:10875000506D9847230504D5124A936D0BB1D06D27 +:108760009847E00404D50F4A136E0BB1506E98473A +:10877000A10404D50B4A936E0BB1D06E98476204E6 +:1087800004D5084A136F0BB1506F9847230404D5E2 +:10879000044A936F0BB1D06F9847BDE81040FEF7C5 +:1087A000DBBF00BFB466002008B50348FCF748FCF7 +:1087B000BDE80840FEF7D0BFC836002008B5034822 +:1087C000FCF742FDBDE80840FEF7C6BF2039002097 +:1087D00008B50348FCF738FDBDE80840FEF7BCBF0C +:1087E0008C39002008B50348FCF72EFDBDE8084091 +:1087F000FEF7B2BFF839002008B500F0BDFCBDE8B7 +:108800000840FEF7A9BF0000062108B50846FCF79E +:10881000A1FD06210720FCF79DFD06210820FCF79D +:1088200099FD06210920FCF795FD06210A20FCF799 +:1088300091FD06211720FCF78DFD06212820FCF76D +:1088400089FD09217A20FCF785FD09213120FCF7FB +:1088500081FD07213220FCF77DFD0C212620FCF74D +:1088600079FD0C212720FCF775FD0C215220BDE875 +:108870000840FCF76FBD000008B5FFF775FD00F07C +:1088800043FCFDF747F9FDF7E5F8FDF71DFBFDF7A4 +:10889000EFF9FEF7B1F9BDE8084000F029BA000091 +:1088A00030B50433039C0172002104FB0325C16031 +:1088B000C0E90653049B0363059BC0E90000C0E9BF +:1088C0000422C0E90842C0E90A11436330BD000038 +:1088D0000022416AC260C0E90411C0E90A226FF0B7 +:1088E0000101FDF7FFBE0000D0E90432934201D13F +:1088F000C2680AB9181D70470020704703691960E3 +:108900000021C2680132C260C26913448269934285 +:10891000036124BF436A0361FDF7D8BE38B504463E +:108920000D46E3683BB162690020131D1268A36223 +:108930001344E36207E0237A33B929462046FDF762 +:10894000B5FE0028EDDA38BD6FF00100FBE700004E +:10895000C368C269013BC36043691344826993429F +:10896000436124BF436A436100238362036B03B105 +:108970001847704770B53023044683F31188866A20 +:108980003EB9FFF7CBFF054618B186F3118828469C +:1089900070BDA36AE26A13F8015B9342A36202D33B +:1089A0002046FFF7D5FF002383F31188EFE700008F +:1089B0002DE9F84F04460E46174698464FF0300909 +:1089C00089F311880025AA46D4F828B0BBF1000F1E +:1089D00009D141462046FFF7A1FF20B18BF3118852 +:1089E0002846BDE8F88FD4E90A12A7EB050B521A06 +:1089F000934528BF9346BBF1400F1BD9334601F185 +:108A0000400251F8040B914243F8040BF9D1A36AD8 +:108A1000403640354033A362D4E90A239A4202D358 +:108A20002046FFF795FF8AF31188BD42D8D289F31B +:108A30001188C9E730465A46F9F758F9A36A5E44E7 +:108A40005D445B44A362E7E710B5029C0433017206 +:108A500003FB0421C460C0E906130023C0E90A3304 +:108A6000039B0363049BC0E90000C0E90422C0E942 +:108A70000842436310BD0000026A6FF00101C2604A +:108A8000426AC0E904220022C0E90A22FDF72ABE98 +:108A9000D0E904239A4201D1C26822B9184650F89D +:108AA000043B0B60704700231846FAE7C3680021B7 +:108AB000C2690133C36043691344826993424361CD +:108AC00024BF436A4361FDF701BE000038B5044688 +:108AD0000D46E3683BB1236900201A1DA262E269DA +:108AE0001344E36207E0237A33B929462046FDF7B1 +:108AF000DDFD0028EDDA38BD6FF00100FBE7000076 +:108B000003691960C268013AC260C269134482698C +:108B10009342036124BF436A036100238362036BB2 +:108B200003B118477047000070B530230D46044666 +:108B3000114683F31188866A2EB9FFF7C7FF10B17B +:108B400086F3118870BDA36A1D70A36AE26A0133BF +:108B50009342A36204D3E16920460439FFF7D0FFB2 +:108B6000002080F31188EDE72DE9F84F04460D460B +:108B7000904699464FF0300A8AF311880026B34692 +:108B8000A76A4FB949462046FFF7A0FF20B187F3F7 +:108B900011883046BDE8F88FD4E90A073A1AA8EBE5 +:108BA0000607974228BF1746402F1BD905F14003FF +:108BB00055F8042B9D4240F8042BF9D1A36A4036A6 +:108BC0004033A362D4E90A239A4204D3E1692046E0 +:108BD0000439FFF795FF8BF311884645D9D28AF304 +:108BE0001188CDE729463A46F9F780F8A36A3D4453 +:108BF0003E443B44A362E5E7D0E904239A4217D1FF +:108C0000C3689BB1836A8BB1043B9B1A0ED013607F +:108C1000C368013BC360C3691A4483699A42026115 +:108C200024BF436A0361002383620123184670470F +:108C30000023FBE701F01F03F0B502F01F04560903 +:108C40005A1C0123B6EB511F50F8265003FA02F3C9 +:108C50004FEA511703F1FF333DBF50F82720C4F10D +:108C60002000134003EA05003BBF03FA00F225FA97 +:108C700004F0E0401043F0BD70B57E227F21054630 +:108C8000FFF7D8FF18B1012819D0002070BD3E228F +:108C900049212846FFF7CEFF2F22044631212846DE +:108CA000FFF7C8FF064601345022023653212846FA +:108CB000B440FFF7BFFF093804FA00F0E6E73022BE +:108CC00045212846FFF7B6FF01308002DEE70000AD +:108CD00090F8D63090F8D7201B0403EB026390F88D +:108CE000D42090F8D500134403EB00207047000017 +:108CF00000F018BA014B586A704700BF000C0040E2 +:108D0000034B002258631A610222DA60704700BFE9 +:108D1000000C0040014B0022DA607047000C00405C +:108D2000014B5863704700BF000C0040024B034AE0 +:108D30001A60034A5A6070478C660020386700202A +:108D400000000220074B494210B55C68201A084019 +:108D50001968821A8A4203D3A24201D85A6010BD10 +:108D60000020FCE78C66002008B5302383F31188CF +:108D7000FFF7E8FF002383F3118808BD0448054B83 +:108D800003600023C0E901330C3000F017B900BFC5 +:108D900094660020698D0008CB1D083A23F0070374 +:108DA000591A521A10B4D2080024C0E90043846052 +:108DB0000C301C605A605DF8044B00F0FFB80000F6 +:108DC0002DE9F74F364FCD1D8846002818BF0746BE +:108DD000082A4FEAD50538BF082207F10C003C1DD0 +:108DE0009146019000F02CF9019809F10701C9F1B1 +:108DF000000E2246246864B900F02CF93B68CBB31E +:108E000008224946E8009847044698B340E90278AA +:108E100030E004EB010CD4F804A00CEA0E0C0AF1CB +:108E20000106ACF1080304EBC6069E42E1D9A6EBAD +:108E30000C0CB5EBEC0F4FEAEC0BDAD89C421DD2D0 +:108E400004F10802AB45A3EB02024FEAE2026260C2 +:108E500009D9691CED4303EBC1025D4455602568E7 +:108E600043F8315022601C46C3F8048044F8087B64 +:108E700000F0F0F8204603B0BDE8F08FAA45216865 +:108E800002D111602346EEE7013504EBC50344F837 +:108E9000351003F10801761AF6105E601360F1E7F1 +:108EA0009466002073B50446A0F1080550F8080C3C +:108EB00054F8043C061D0C3007330190DB0844F8DD +:108EC000043C00F0BDF8334601989E421A6801D078 +:108ED000AB4228D20AB1954225D244F8082C54F866 +:108EE000042C1D60013254F8081C05EBC206B14287 +:108EF00006D14E68324444F8042C0A6844F8082C21 +:108F00005E68711C03EBC1018D4207D154F8042C3B +:108F1000013232445A6054F8082C1A6002B0BDE89D +:108F2000704000F097B81346CFE70000FEE700005E +:108F300070B51E4B0025044686B058600E4605638A +:108F40008163FEF7E1FB04F12803A5606563C4E9D2 +:108F50000A3304F11003C4E904334FF0FF33C4E9CA +:108F60000044C4E90635FFF7C5FE2B46024604F16E +:108F70003C012046C4E9082380230D4A6567FDF7BC +:108F80000FFB7368E0600B4A03620123009280F8D4 +:108F900024306846F26801923269CDE90223064B1B +:108FA000CDE90435FDF730FB06B070BD1049002057 +:108FB0005C9C0008549C00082D8F00080023C0E929 +:108FC000000083600361704770B51C4B05468468E0 +:108FD000DE685CB3B44213D103690133036170BD31 +:108FE000A36094F8243083B1062B15D1A06A2146E2 +:108FF000D4E9003213605A60FDF73EFAA36A9C6818 +:10900000B368A2689A42EBD306E0D4E90032204666 +:1090100013605A60FDF740FA28463146FDF72CFAF6 +:10902000B5620620BDE87040FDF738BA0369866076 +:1090300001330361336BC3603063D0E768460020BF +:1090400008B5302383F31188FFF7BEFF002383F3B5 +:10905000118808BD194BD96883688B4210B520D19F +:10906000302383F311880269013A0261B2B90468BE +:10907000C368A0420B631ED04A6B9BB901238A6070 +:10908000036103681A68026050601A6B8360C260F3 +:1090900018631846FDF700FAFDF750FA002383F332 +:1090A000118810BD1C68A34203D0A468A24238BF37 +:1090B0002246DB68E1E78260F0E700BF68460020F7 +:1090C000024A536B18435063704700BF6846002044 +:1090D00038B5EFF311859DB9EFF30584C4F30804A7 +:1090E000302334B183F31188FDF734FC85F3118804 +:1090F00038BD83F31188FDF72DFC84F3118838BD4A +:10910000BDE83840FDF726BC0023054A1946013367 +:10911000102BC2E9001102F10802F8D1704700BF1C +:10912000B4660020114BD3F8E82042F00802C3F8DF +:10913000E820D3F8102142F00802C3F810210C4AAD +:10914000D3F81031D36B43F00803D363C722094B24 +:109150009A624FF0FF32DA6200229A615A63DA6053 +:109160005A6001225A611A60704700BF00440258D9 +:109170000010005C000C0040094A08B51169D36872 +:109180000B40D9B29B076FEA0101116107D530236B +:1091900083F31188FDF7F8F9002383F3118808BDE4 +:1091A000000C004010B501390244904201D100206A +:1091B00005E0037811F8014FA34201D0181B10BD40 +:1091C0000130F2E7884210B501EB020402D9844273 +:1091D000234607D8431EA14208D011F8012B03F8FB +:1091E000012FF8E7024401468A4200D110BD13F86E +:1091F000014D02F8014DF7E7C9B2034610F8012B03 +:109200001AB18A42F9D118467047002918BF0023C5 +:10921000F9E70000034611F8012B03F8012B002A9F +:10922000F9D1704710B50139034632B111F8014F39 +:1092300003F8014B013A002CF7D11A440021934264 +:1092400000D110BD03F8011BF9E700004D443500C3 +:109250002D2D0A002F6172647570696C6F742E6118 +:1092600062696E002F6172647570696C6F742D761F +:1092700065726966792E6162696E002F617264752C +:1092800070696C6F742D666C6173682E6162696EB3 +:10929000002F6172647570696C6F742D666C6173F8 +:1092A0006865642E6162696E0000000000000000C5 +:1092B00000000000050F0008A10F00085111000870 +:1092C000D90F0008990F00080000000000000000FE +:1092D000010F0008AD0F000889110008FD0E0008FD +:1092E000090F000853544D333248373F3F3F005376 +:1092F000544D3332483733782F3732780053544D3A +:109300003332483734332F3735332F373530000079 +:1093100001105A0003105900012058000320560084 +:109320002F0000005375636365737366756C6C7909 +:10933000206D6F756E7465642053444361726420C0 +:1093400028736C6F77646F776E3D2575290A00006E +:10935000EB76904558464154202020004641543336 +:1093600032202020000000002A3A3C3E7C223F7F31 +:10937000002B2C3B3D5B5D00435545414141414342 +:1093800045454549494941414592924F4F4F5555B1 +:10939000594F554F9C4F9E9F41494F55A5A5A6A794 +:1093A000A8A9AAABACADAEAFB0B1B2B3B441414124 +:1093B000B8B9BABBBCBDBEBFC0C1C2C3C4C54141C0 +:1093C000C8C9CACBCCCDCECFD1D1454545494949F5 +:1093D00049D9DADBDCDD49DF4FE14F4F4F4FE6E89B +:1093E000E85555555959EEEFF0F1F2F3F4F5F6F76B +:1093F000F8F9FAFBFCFDFEFF01030507090E101248 +:109400001416181C1E00000061001A03E000170368 +:10941000F8000703FF00010078010001300132016C +:109420000601390110014A012E017901060180016E +:109430004D00430281018201820184018401860181 +:109440008701870189018A018B018B018D018E01C2 +:109450008F0190019101910193019401F601960110 +:109460009701980198013D029B019C019D012002FA +:109470009F01A001A001A201A201A401A401A601D3 +:10948000A701A701A901AA01AB01AC01AC01AE0182 +:10949000AF01AF01B101B201B301B301B501B50133 +:1094A000B701B801B801BA01BB01BC01BC01BE01E2 +:1094B000F701C001C101C201C301C401C501C4015A +:1094C000C701C801C701CA01CB01CA01CD01100102 +:1094D000DD0101008E01DE011201F3010300F10143 +:1094E000F401F401F8012801220212013A020900F4 +:1094F000652C3B023B023D02662C3F0240024102CA +:10950000410246020A0153024000810186015502D0 +:1095100089018A0158028F015A0290015C025D02A2 +:109520005E025F02930161026202940164026502BD +:1095300066026702970196016A02622C6C026D0254 +:109540006E029C01700271029D01730274029F0100 +:1095500076027702780279027A027B027C02642C1E +:109560007E027F02A60181028202A9018402850295 +:1095700086028702AE014402B101B20145028D02AA +:109580008E028F0290029102B7017B030300FD035C +:10959000FE03FF03AC0304008603880389038A03E8 +:1095A000B1031103C2030200A303A303C40308030E +:1095B000CC0303008C038E038F03D8031801F2033E +:1095C0000A00F903F303F403F503F603F703F703C3 +:1095D000F903FA03FA03300420035004100760046F +:1095E00022018A043601C1040E01CF040100C00427 +:1095F000D004440161052604000000007D1D010027 +:10960000632C001E9601A01E5A01001F0806101FA1 +:109610000606201F0806301F0806401F0606511FB9 +:109620000700591F521F5B1F541F5D1F561F5F1FEE +:10963000601F0806701F0E00BA1FBB1FC81FC91F7E +:10964000CA1FCB1FDA1FDB1FF81FF91FEA1FEB1F12 +:10965000FA1FFB1F801F0806901F0806A01F0806A0 +:10966000B01F0400B81FB91FB21FBC1FCC1F0100E0 +:10967000C31FD01F0206E01F0206E51F0100EC1FFA +:10968000F31F0100FC1F4E21010032217021100246 +:10969000842101008321D0241A05302C2F04602C52 +:1096A0000201672C0601752C0201802C6401002D3B +:1096B000260841FF1A030000C700FC00E900E20091 +:1096C000E400E000E500E700EA00EB00E800EF005E +:1096D000EE00EC00C400C500C900E600C600F400BE +:1096E000F600F200FB00F900FF00D600DC00F800F5 +:1096F000A300D800D7009201E100ED00F300FA00CA +:10970000F100D100AA00BA00BF00AE00AC00BD005D +:10971000BC00A100AB00BB0091259225932502253A +:109720002425C100C200C000A9006325512557258A +:109730005D25A200A5001025142534252C251C2507 +:1097400000253C25E300C3005A25542569256625DC +:10975000602550256C25A400F000D000CA00CB0085 +:10976000C8003101CD00CE00CF0018250C2588257A +:109770008425A600CC008025D300DF00D400D200D1 +:10978000F500D500B500FE00DE00DA00DB00D900F0 +:10979000FD00DD00AF00B400AD00B1001720BE0039 +:1097A000B600A700F700B800B000A800B700B900E5 +:1097B000B300B200A025A000100002400800024043 +:1097C0000008024000000B00280002400800024090 +:1097D0000408024006010C0040000240080002405C +:1097E0000808024010020D00580002400800024024 +:1097F0000C08024016030E00700002400C000240EC +:109800001008024000040F00880002400C000240D3 +:109810001408024006051000A00002400C0002409F +:109820001808024010061100B80002400C00024067 +:109830001C08024016072F001004024008040240D2 +:1098400020080240000838002804024008040240B2 +:10985000240802400609390040040240080402407E +:1098600028080240100A3A00580402400804024046 +:109870002C080240160B3B00700402400C0402400E +:1098800030080240000C3C00880402400C040240F6 +:1098900034080240060D4400A00402400C040240BB +:1098A00038080240100E4500B80402400C04024083 +:1098B0003C080240160F46000100000000000000B6 +:1098C0000096000000000000000000000000000002 +:1098D000000000000000000000000000F16B000824 +:1098E000F56B0008E9560008215A00087D5600086B +:1098F000A5560008CD560008655600080000000077 +:10990000D55A0008C15A0008FD5A0008E95A000853 +:10991000F55A0008E15A0008CD5A0008B95A000863 +:10992000095B000800000000ED5B0008D95B00083F +:10993000155C0008015C00080D5C0008F95B00087C +:10994000E55B0008D15B0008215C00080000000016 +:10995000010000000000000063300000589900087A +:109960000000000000000000E04600201049002038 +:109970000000812A00000000AAAAAAAA0000002470 +:10998000FFFE00000000000000A00A00000100002F +:1099900000000000AAAAAAAA00000000FFFF000021 +:1099A00000000000000000001400AA5600000000A3 +:1099B000AAAAAAAA14005554FFFF00000000000044 +:1099C000CCCC0C0020681A0000000000AAAA8AAAC9 +:1099D00010541500FFFF0000000C70077700000016 +:1099E0004081020100100000AAAAAAAA00410100B9 +:1099F000F7FF0000000000700700000000000000FA +:109A000000000000AAAAAAAA00000000FFFF0000B0 +:109A10000000000000000000000000000000000046 +:109A2000AAAAAAAA00000000FFFF00000000000090 +:109A3000000000000000000000000000AAAAAAAA7E +:109A400000000000FFFF0000000000000000000018 +:109A50000000000000000000AAAAAAAA000000005E +:109A6000FFFF0000000000000000000000000000F8 +:109A700000000000AAAAAAAA00000000FFFF000040 +:109A800000000000000000000000000000000000D6 +:109A9000AAAAAAAA00000000FFFF00000000000020 +:109AA000000000004375626550696C6F74004A6F76 +:109AB00065792D424C002553455249414C25000003 +:109AC00002000000000000000D5E00087D5E00083E +:109AD00040004000C0610020D06100200200000072 +:109AE000000000000300000000000000C55E000848 +:109AF0000000000010000000E061002000000000F5 +:109B000001000000000000003C650020010102008F +:109B1000ED6C0008FD6B0008996C00087D6C000876 +:109B200043000000289B000809024300020100C016 +:109B300032090400000102020100052400100105A1 +:109B40002401000104240202052406000107058205 +:109B5000030800FF09040100020A000000070501D4 +:109B600002400000070581024000000012000000D2 +:109B7000749B00081201100102000040AE2D561027 +:109B800000020102030100000403090425424F41C1 +:109B900052442500437562654F72616E67652D6A98 +:109BA0006F657900303132333435363738394142D8 +:109BB0004344454600000000000000200000020071 +:109BC0000200000000000030000004000800000057 +:109BD0000000002400000800040000000004000051 +:109BE00000FC0000020000000000043000800000C3 +:109BF0000800000000000038000001000100000023 +:109C00001F1C1F1E1F1E1F1F1E1F1E1F1F1D1F1E6E +:109C10001F1E1F1F1E1F1E1F0000000021600008C6 +:109C2000D962000885630008400040007466002087 +:109C3000746600200100000084660020800000009F +:109C400040010000080000000001000000100000BA +:109C50000800000069646C65000000006D61696EB9 +:109C6000002C0438040438080C10141C2024252669 +:109C70000000000000006404010004000000000077 +:109C8000000C001028303400E067FF7F0100000066 +:109C9000090400000000000000001E000000000099 +:109CA000FF00000018490020203900208C390020D6 +:109CB000F839002000000000E4920008830400004E +:109CC000EF92000850040000FD920008010000001F +:109CD0000000000000960000000008009600000050 +:109CE0000008000004000000889B0008000000003D +:109CF0000000000000000000000000000000000064 +:049D0000000000005F :00000001FF diff --git a/Tools/bootloaders/CubeOrange-periph-heavy_bl.bin b/Tools/bootloaders/CubeOrange-periph-heavy_bl.bin index cd09e9be90ed95ebf6a1dd7475da2c30ec26d3ad..f2ff58738835a2b9246c63928de8e634de4caa32 100755 GIT binary patch delta 7745 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 delta 6615 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%0D2oP{ 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 diff --git a/Tools/bootloaders/CubeOrange-periph_bl.hex b/Tools/bootloaders/CubeOrange-periph_bl.hex index c5edc23201427..4ea7db1fcae1e 100644 --- a/Tools/bootloaders/CubeOrange-periph_bl.hex +++ b/Tools/bootloaders/CubeOrange-periph_bl.hex @@ -1,34 +1,34 @@ :020000040800F2 -:1000000000070020F1020008A1330008593300085E -:10001000813300085933000879330008F3020008DF -:10002000F3020008F3020008F30200088543000809 +:1000000000070020F102000829340008E13300084D +:1000100009340008E133000801340008F302000845 +:10002000F3020008F3020008F30200081544000878 :10003000F3020008F3020008F3020008F3020008CC :10004000F3020008F3020008F3020008F3020008BC -:10005000F3020008F3020008FD7700082978000881 -:100060005578000881780008AD78000849440008F8 -:10007000714400089D440008C9440008F544000884 -:100080001D45000849450008F3020008093300082F -:10009000313300081D33000845330008D9780008C3 +:10005000F3020008F3020008C97C0008F57C0008E0 +:10006000217D00084D7D0008797D0008D9440008F5 +:10007000014500082D450008594500088545000840 +:10008000AD450008D9450008F30200089133000887 +:10009000B9330008A5330008CD330008A57D00085A :1000A000F3020008F3020008F3020008F30200085C :1000B000F3020008F3020008F3020008F30200084C :1000C000F3020008F3020008F3020008F30200083C :1000D000F3020008F3020008F3020008F30200082C -:1000E0003D790008F3020008F3020008F30200085B -:1000F000F3020008F3020008F30200087545000847 -:10010000F3020008F3020008C5790008F3020008B2 +:1000E000097E0008F3020008F3020008F30200088A +:1000F000F3020008F3020008F302000805460008B6 +:10010000F3020008F3020008917E0008F3020008E1 :10011000F3020008F3020008F3020008F3020008EB -:10012000A1450008C9450008F5450008214600081A -:100130004D460008F3020008F3020008F30200082D +:10012000314600085946000885460008B1460008D7 +:10013000DD460008F3020008F3020008F30200089D :10014000F3020008F3020008F3020008F3020008BB -:1001500075460008A1460008CD460008F3020008D5 +:1001500005470008314700085D470008F302000822 :10016000F3020008F3020008F3020008F30200089B -:10017000F30200087D6E0008F3020008F302000895 -:10018000F3020008F3020008B1790008F302000846 +:10017000F3020008D1700008F3020008F30200083F +:10018000F3020008F30200087D7E0008F302000875 :10019000F3020008F3020008F3020008F30200086B :1001A000F3020008F3020008F3020008F30200085B :1001B000F3020008F3020008F3020008F30200084B :1001C000F3020008F3020008F3020008F30200083B -:1001D000F3020008696E0008F3020008F302000849 +:1001D000F3020008BD700008F3020008F3020008F3 :1001E000F3020008F3020008F3020008F30200081B :1001F000F3020008F3020008F3020008F30200080B :10020000F3020008F3020008F3020008F3020008FA @@ -52,49 +52,49 @@ :100320004F8FBFF36F8F40F20000C0F2F0004EF627 :100330008851CEF200010860BFF34F8FBFF36F8F7B :100340004FF00000E1EE100A4EF63C71CEF20001D3 -:100350000860062080F31488BFF36F8F05F0FAFF62 -:1003600007F008F84FF055301F491B4A91423CBF37 +:100350000860062080F31488BFF36F8F06F024F93D +:1003600007F06CFA4FF055301F491B4A91423CBFD1 :1003700041F8040BFAE71D49184A91423CBF41F885 :10038000040BFAE71A491B4A1B4B9A423EBF51F82D :10039000040B42F8040BF8E700201849184A914270 -:1003A0003CBF41F8040BFAE706F012F807F066F8D4 +:1003A0003CBF41F8040BFAE706F03CF907F0CAFA43 :1003B000144C154DAC4203DA54F8041B8847F9E796 :1003C00000F042F8114C124DAC4203DA54F8041B11 -:1003D0008847F9E705F0FABF000700200023002056 +:1003D0008847F9E706F024B9000700200023002031 :1003E0000000000808ED00E00001002000070020E8 -:1003F0009080000800230020D0230020D02300207C -:10040000C8880020E0020008E4020008E4020008B6 +:1003F00048850008002300206C2300207023002083 +:1004000030890020E0020008E4020008E40200084D :10041000E40200082DE9F04F2DED108AC1F80CD050 :10042000D0F80CD0BDEC108ABDE8F08F002383F328 -:1004300011882846A047002005F070FAFEE705F075 -:10044000EFF900DFFEE70000F8B501F0E9F901F08F -:100450007FFB05F003FF074605F072FF0546A8BBCA +:1004300011882846A047002005F0DCFAFEE705F009 +:1004400057FA00DFFEE70000F8B501F0E9F901F026 +:100450007FFB06F02DF8074606F09CF80546A8BB82 :100460001F4B9F4232D001339F4232D027F0FF0210 :100470001C4B9A4230D12E4642F21074F8B200F072 -:100480009BFF00F09FFF08B10024264601F0A8FD65 +:100480009BFF00F09FFF08B10024264601F0E8FD25 :1004900020B10024032000F079F8264635B1124B34 -:1004A0009F4203D0002405F043FF2646002005F0BC -:1004B000DFFE0EB100F080F801F0E8FA00F0B6FFC0 +:1004A0009F4203D0002406F06DF82646002006F097 +:1004B00009F80EB100F080F801F0E8FA00F0B6FF9C :1004C000204600F037F900F077F8F9E72E460024CF :1004D000D7E704460126D4E7064641F28834D0E740 :1004E000010007B0000008B0263A09B008B501F0D5 :1004F00063F9A0F120035842584108BD07B541F205 :100500001203022101A8ADF8043001F073F903B021 :100510005DF804FB38B5302383F31188174803686E -:100520000BB105F0C7FA0023154A4FF47A7113484E -:1005300005F0B6FA002383F31188124C236813B137 +:100520000BB105F033FB0023154A4FF47A711348E1 +:1005300005F022FB002383F31188124C236813B1CA :100540002368013B2360636813B16368013B636008 :100550000D4D2B7833B963687BB9022001F008FA9E :10056000322363602B78032B07D163682BB90220F9 -:1005700001F0FEF94FF47A73636038BDD023002098 -:1005800015050008F0240020E8230020084B18700F +:1005700001F0FEF94FF47A73636038BD70230020F8 +:10058000150500089024002088230020084B1870CF :1005900003280CD8DFE800F008050208022001F06B :1005A000E5B9022001F0E0B9024B00225A60704721 -:1005B000E8230020F0240020F8B501F011FD30B14F +:1005B0008823002090240020F8B501F051FD30B1CF :1005C000544B03221A700022534B5A60F8BD534B10 :1005D000534A1C4619680131F8D004339342F9D1CB :1005E0006268504B9A42F1D94F4B9B6803F100630C -:1005F00003F500339A42E9D205F06EFE05F080FE65 +:1005F00003F500339A42E9D205F098FF05F0AAFF0F :10060000002001F027F90220FFF7C0FF474B00212F :10061000D3F8E820C3F8E810D3F81021C3F810117C :10062000D3F81021D3F8EC20C3F8EC10D3F8142140 @@ -112,13 +112,13 @@ :1006E000BFF36F8FBFF34F8FBFF36F8F536923F447 :1006F000003353610023C2F85032BFF34F8FBFF372 :100700006F8F302383F31188854680F30888204754 -:100710005CE700BFE8230020F0240020000002086E +:100710005CE700BF8823002090240020000002082E :1007200020000208FFFF01080023002000440258B7 :1007300000ED00E02DE9F04F93B0B74B2022FF21F0 :1007400000900AA89D6801F04BF9B44A1378A3B948 :100750000121B34811700360302383F311880368CB -:100760000BB105F0A7F90023AE4A4FF47A71AC48FB -:1007700005F096F9002383F31188009B13B1AA4B6F +:100760000BB105F013FA0023AE4A4FF47A71AC488E +:1007700005F002FA002383F31188009B13B1AA4B02 :10078000009A1A60A94A1378032B03D00023137030 :10079000A54A53604FF0000A009CD3465646D14606 :1007A000012001F0E3F824B19F4B1B68002B00F0FF @@ -160,9 +160,9 @@ :1009E000926893423FF642AFB8F5807F3FF73EAF43 :1009F000124BB845019323DD4FF47A7000F0DCFE12 :100A00000390039A002AFFF631AF039A0137019B46 -:100A100003F8012BEDE700BF00230020EC240020A9 -:100A2000D023002015050008F0240020E823002032 -:100A300004230020082300200C230020EC230020A6 +:100A100003F8012BEDE700BF002300208C24002009 +:100A20007023002015050008902400208823002052 +:100A300004230020082300200C2300208C23002006 :100A4000C820FFF753FD074600283FF40FAF1F2DC6 :100A500011D8C5F120020AAB25F0030084494245B4 :100A6000184428BF4246019200F094FF019AFF21EA @@ -172,7 +172,7 @@ :100AA0003FF4E4AE00F010FF00283FF4DFAE002773 :100AB000B846704B9B68BB4218D91F2F11D80A9BB0 :100AC00001330ED027F0030312AA134453F8203C3D -:100AD00005934046042205A9043701F06BFA8046CD +:100AD00005934046042205A9043701F0ABFA80468D :100AE000E7E7384600F0B8FE0590F2E7CDF814804D :100AF000042105A800F07EFE02E70023642104A87B :100B0000049300F06DFE00287FF4B0AE0220FFF7E2 @@ -191,14 +191,14 @@ :100BD000FFF78CFC00283FF449AE00F075FE0028BA :100BE00044D00A9B01330BD008220AA9002000F050 :100BF000FFFE00283AD02022FF210AA800F0F0FED4 -:100C0000FFF77CFC1C4804F08FFE13B0BDE8F08FAA +:100C0000FFF77CFC1C4804F0FBFE13B0BDE8F08F3E :100C1000002E3FF42BAE0BF00B030B2B7FF426AE14 :100C20000023642105A8059300F0DAFD074600289B :100C30007FF41CAE0220FFF759FC804600283FF4E9 -:100C400015AEFFF75BFC41F2883004F06DFE0598AD +:100C400015AEFFF75BFC41F2883004F0D9FE059841 :100C500000F05CFF46463C4600F00EFFA0E506466D :100C60004EE64FF0000901E6BA467EE637467CE6DE -:100C7000EC23002000230020A0860100094A49F24D +:100C70008C23002000230020A0860100094A49F2AD :100C80006900136899B21B0C00FB013344F25061F8 :100C90001360054B186882B2000C01FB020018605B :100CA00080B270471423002010230020002110225E @@ -206,51 +206,51 @@ :100CC0001868A06010BD00BF00E8F11F2DE9F041D9 :100CD000ADF5507D0D46002140F275126EAC074611 :100CE00010A80F9100F07CFE4FF4C4720021204642 -:100CF00000F076FE0DF13C0802F05AFB4FF47A72D8 +:100CF00000F076FE0DF13C0802F09EFB4FF47A7294 :100D0000264BB0FBF2F0186093E80700022384E85A :100D100007000DF5ED702382FFF7C8FF47F60503C6 -:100D20001F4907A8238406F0F1FE1F230DF2EB22D2 +:100D20001F4907A8238407F04DF91F230DF2EB227A :100D30000DF1340C84F8323107AB1E46083203CE75 :100D4000664542F8080C42F8041C3346F5D1306879 :100D500010602046B188B379918041469371012299 -:100D600000F04CFF002380B2E97E0393AB7E029338 +:100D600000F052FF002380B2E97E0393AB7E029332 :100D700005F1190301930123009306A3D3E900238E -:100D8000CDE90480384602F0D1FE0DF5507DBDE876 -:100D9000F08100BF9E6AC421818A46EEF8240020BB -:100DA0001C7B00082DE9F0412C4CDAB080460D4642 -:100DB000237A5BBB27A9284601F02EF807460028B6 +:100D8000CDE90480384602F015FF0DF5507DBDE831 +:100D9000F08100BF9E6AC421818A46EE982400201B +:100DA000D47F00082DE9F0412C4CDAB080460D4686 +:100DB000237A5BBB27A9284601F048F8074600289C :100DC00042D19DF89D60C82E3ED801464FF4A662E0 :100DD000204600F005FE4FF4807332460DF19E016F :100DE000C4F8F8314FF4007304F109002644C4F844 :100DF0000C334FF44073C4F8203400F0CBFD9DF861 :100E00009C30777223720BB9EB7E237206AC812281 :100E1000002127A800F0E4FD0122214627A801F0C7 -:100E200037F8002380B2E97E0393AB7E029305F18D +:100E20005BF8002380B2E97E0393AB7E029305F169 :100E3000190301932823CDE904400093404605A3FC -:100E4000D3E9002302F072FE5AB0BDE8F08100BF82 -:100E5000AFF3008026417272DF25D7B7C05E002055 +:100E4000D3E9002302F0B6FE5AB0BDE8F08100BF3E +:100E5000AFF3008026417272DF25D7B7605E0020B5 :100E6000F0B5254E4FF48A75F1B0002405FB0065FE :100E700096F8D830D822214685F8DC303AA885F893 :100E8000E84006AF00F0ACFD06F1090000F0A0FD5F :100E9000D5F8E430C2B206F109018DF8F0000DF189 :100EA000F100CDE93A3400F075FD394601223AA847 -:100EB00001F01AF8082380B2317ACDE904700127D5 +:100EB00001F048F8082380B2317ACDE904700127A7 :100EC0000E48CDE9023706F1D80301933023009391 -:100ED00007A3D3E9002302F029FEA04206DD02F0B9 -:100EE00067FAC5F8E000384671B0F0BD2046FBE770 -:100EF00078F6339F93CACD8DC05E00201035002058 +:100ED00007A3D3E9002302F06DFEA04206DD02F075 +:100EE000ABFAC5F8E000384671B0F0BD2046FBE72C +:100EF00078F6339F93CACD8D605E0020B034002019 :100F00002DE9F04F264F87B0DFF8A080254E3846F8 -:100F100002F038FE034600283AD00024224DADF8F6 +:100F100002F07CFE034600283AD00024224DADF8B2 :100F20001440A1460294A246CDE90344027B8DF809 :100F3000142003AA9968406803C21B6843F0004369 -:100F400002932B6804F5A664D3F810B002F032FACD +:100F400002932B6804F5A664D3F810B002F076FA89 :100F500010EB0802CDF800A0284605F5A65541F192 :100F6000000302A9D8470028C8BF49F00109B4F519 -:100F7000266FE6D1B9F1000F05D0384602F006FE23 +:100F7000266FE6D1B9F1000F05D0384602F04AFEDF :100F800086F800A0C3E73378072B04D80133337009 -:100F900007B0BDE8F08F024802F0F8FDF8E700BFA7 -:100FA00010350020F56300204035002040420F003E -:100FB00070B50D4614461E4602F014FD50B9022EBF +:100F900007B0BDE8F08F024802F03CFEF8E700BF62 +:100FA000B034002095630020E034002040420F0060 +:100FB00070B50D4614461E4602F058FD50B9022E7B :100FC00010D1012C0ED112A3D3E900230120C5E9D1 :100FD000002307E0282C10D005D8012C09D0052CBF :100FE0000FD0002070BD302CFBD10BA3D3E9002320 @@ -262,22 +262,22 @@ :10104000013500F02FFCA4F82C55B4F82C0500F065 :1010500011FC78B1B4F82C0500F01CFC014648B92D :10106000B4F82C0500F01EFCB4F82C350133A4F8BC -:101070002C35EAE738BD00BFC05E0020F8B50D4C46 +:101070002C35EAE738BD00BF605E0020F8B50D4CA6 :1010800002260D4FA4F5805343F8307C237E3BB9F4 -:1010900065692DB1284601F01DF8284606F0ECFCE4 -:1010A0002046A4F5A65401F015F8012E00D1F8BD94 -:1010B0000126E7E7305A0020DC7B00082DE9F04FDD -:1010C0008FB005460C4600AF02F08CFC002849D1D9 -:1010D000237E022B1BD1E38A012B18D102F068F981 +:1010900065692DB1284601F05DF8284601F096F902 +:1010A0002046A4F5A65401F055F8012E00D1F8BD54 +:1010B0000126E7E7D0590020948000082DE9F04F81 +:1010C0008FB005460C4600AF02F0D0FC002849D195 +:1010D000237E022B1BD1E38A012B18D102F0ACF93D :1010E0000646FFF7CBFD03464FF4C87006F51676AB :1010F000DFF8C082B3FBF0F202FB103316FA83F381 :10110000C8F80030E37E33B9A34B00221A703C3795 -:10111000BD46BDE8F08F07F12401204600F03AFEFD +:10111000BD46BDE8F08F07F12401204600F04AFEED :101120000028F4D107F11400FFF7C0FD97F826401E -:1011300007F1140107F12700224606F0B5FC00284C +:1011300007F1140107F12700224606F011FF0028ED :10114000E2D10F2C08D8944B1C70D8F80030A3F5CE :101150001673C8F80030DAE797F82410284602F032 -:1011600039FCD4E7E38A282B2BD010D8012B23D0CD +:101160007DFCD4E7E38A282B2BD010D8012B23D089 :10117000052BCCD1BFF34F8F8849894BCA6802F445 :10118000E0621343CB60BFF34F8F00BFFDE7302B0E :10119000BDD1844EE17E327A9142B8D1607E314633 @@ -297,14 +297,14 @@ :101270007260D6F8D42005EB0209C6F8D49000F0CD :10128000F9FA814509D396F8D220D6F8D400013274 :10129000001B86F8D220C6F8D400FF2D0FD80024FA -:1012A000347200F011FB204600F0D4FA00F098FEF2 +:1012A000347200F011FB204600F0D4FA00F0D8FEB2 :1012B0003D4B188108B9FFF77FF9C54627E7BB68A2 :1012C00096F8D9000AFB0362FB68D2F8E41082F8B2 :1012D000E83001F58061C2F8E030C2F8E410FFF7B1 :1012E000BFFDFFF70DFE96F8D920013202F0030290 :1012F00086F8D920B6E74FF48A7A20460AFB02F531 -:1013000005F1EA01314400F01BFEF86000287FF48B -:10131000FEAE0122354485F8E82002F049F8D5F800 +:1013000005F1EA01314400F04FFEF86000287FF457 +:10131000FEAE0122354485F8E82002F08DF8D5F8BC :10132000E020D6ED007A801A40F6B832B8EE677A3F :10133000DFED1E6A192838BF1920904228BF1046D9 :1013400007EE900AF8EEE77A67EEA67ADFED186A04 @@ -312,27 +312,27 @@ :10136000BB60BA6873680AFB02F4321992F8E8109D :1013700059B1D2F8E410E8468B423FF427AF002180 :1013800082F8E810C2F8E010C5467368064A9B0A66 -:1013900001331381BBE600BF0935002000ED00E0FA -:1013A0000400FA05C05E0020F8240020CDCCCC3D1E -:1013B0006666663F0C350020014B1870704700BF11 -:1013C0000425002038B54FF00054144B22689A428F +:1013900001331381BBE600BFA934002000ED00E05B +:1013A0000400FA05605E002098240020CDCCCC3DDE +:1013B0006666663FAC340020014B1870704700BF72 +:1013C000A424002038B54FF00054144B22689A42F0 :1013D00021D1627D0025124B12481A70C922237D4B :1013E0000930114900F8013C4FF48073C0F8DB501C :1013F000C0F8EF314FF40073C0F803334FF440737B :10140000C0F8173400F0C6FAE0222946204600F062 :10141000E7FA012038BD0020FCE700BF9AAD44C5C3 -:1014200004250020C05E00201600002037B500F023 -:10143000D7FD1F4C1F4D022301221F496B712368EA +:10142000A4240020605E00201600002037B500F0E4 +:1014300017FE1F4C1F4D022301221F496B712368A9 :10144000288120465B68984704F5805301221A4999 :10145000D3F8C03404F5A6505B68984700231749B9 :101460004FF480520193164B16480093164B02F02E -:1014700089FA164B197811B1124802F0ABFA01F053 -:1014800097FF0446FFF7FAFB4FF4C873B0FBF3F283 +:10147000CDFA164B197811B1124802F0EFFA01F0CB +:10148000DBFF0446FFF7FAFB4FF4C873B0FBF3F23F :1014900002FB130304F5167010FA83F00C4B18606E -:1014A00004F04EFF08B10F232B8103B030BD00BF05 -:1014B00040350020F824002040420F00082500207D -:1014C000B10F000810350020BD10000804250020D1 -:1014D0000C3500202DE9F04F00242DED028B93B048 +:1014A00005F078F808B10F232B8103B030BD00BFE1 +:1014B000E03400209824002040420F00A82400209F +:1014C000B10F0008B0340020BD100008A424002093 +:1014D000AC3400202DE9F04F00242DED028B93B0A9 :1014E0000DF12C084FF0010ADFF814B2FFF708FDE8 :1014F0000A94ADF834400B94C8F804409FED798B02 :1015000000267E4D37462B680DF11D0207A928469F @@ -341,63 +341,63 @@ :1015300000210EA800F054FA2B6808AA0AA95F69D6 :1015400028460DF11E03B8470FAB4F4698E803003D :1015500083E803009DF834300EA958468DF84430D6 -:101560000A9B0E93DDE9082302F0EEFC06F5A66661 +:101560000A9B0E93DDE9082302F032FD06F5A6661C :1015700005F5A655B6F5266FC5D1002FC0D1604838 -:1015800002F030FA00283FD15E4E01F011FF3368BF -:10159000984239D301F00CFF0546FFF76FFB4FF47B +:1015800002F074FA00283FD15E4E01F055FF336837 +:10159000984239D301F050FF0546FFF76FFB4FF437 :1015A000C8738DF82870B0FBF3F202FB130305F546 :1015B000167010FA83F03060534E377817B9012354 :1015C0008DF82830C7F110050EA8FFF76FFB0EABA2 :1015D000EDB20DF12900D919062D28BF06252A469E :1015E000013500F0D7F90AABEDB245480393182353 :1015F00004950293454B0193012300933BA3D3E948 -:10160000002302F035FA347001F0D2FE404A414D19 -:101610001368C31AB3F57A7F2FD3106001F0CAFEA6 -:1016200002460B46364802F0BBFA354802F0DAF9BA +:10160000002302F079FA347001F016FF404A414D90 +:101610001368C31AB3F57A7F2FD3106001F00EFF61 +:1016200002460B46364802F0FFFA354802F01EFA31 :1016300018B32B7A0EAF384E002B14BF03230223AE -:10164000737101F0B5FE4FF47A7301223946B0FB95 -:10165000F3F03060304600F075FB182380B202933F +:10164000737101F0F9FE4FF47A7301223946B0FB51 +:10165000F3F03060304600F085FB182380B202932F :101660002E4B019340F25513CDE9037000932448AB -:1016700020A3D3E9002302F0FBF92B7A93B101F008 -:1016800097FE002607464FF48A7895F8D900304433 +:1016700020A3D3E9002302F03FFA2B7A93B101F0C3 +:10168000DBFE002607464FF48A7895F8D9003044EF :1016900000F0030008FB005393F8E82072B1013614 -:1016A000042EF2D1C82004F03FF92B7A002B7FF4EE +:1016A000042EF2D1C82004F0ABF92B7A002B7FF482 :1016B00017AF13B0BDEC028BBDE8F08FD3F8E0207C :1016C00042B12B68BA1AFA2B38BFFA230533B2EBB2 :1016D000430FE4D3FFF7C4FB0028E0D1E2E700BFEB :1016E000AFF300800000000000000000401DA120BA -:1016F00026812A0BF1C6A7C1D068080F403500200B -:10170000103500200C350020093500200835002058 -:10171000F0630020C05E0020F8240020F463002065 -:1017200010B5074C204601F007F904F5A65001F06A -:1017300003F9044A04490020BDE8104006F096B9B8 -:1017400040350020506400207D1000082DE9F84F3E +:1016F00026812A0BF1C6A7C1D068080FE03400206C +:10170000B0340020AC340020A9340020A8340020DC +:1017100090630020605E00209824002094630020E5 +:1017200010B5074C204601F04BF904F5A65001F026 +:1017300047F9044A04490020BDE8104006F0FCBB0C +:10174000E0340020F06300207D1000082DE9F84F00 :101750004FF47A7306460D46002402FB03F7DFF8C8 :101760005080DFF8509098F900305FFA84FA5A1CE4 :1017700001D0A34212D159F824002A463146036809 :10178000D3F820B03B46D847854207D1074B01200C :1017900083F800A0BDE8F88F0124E4E7002CFBD01B -:1017A0004FF4FA7004F0C0F80020F3E73C64002026 +:1017A0004FF4FA7004F02CF90020F3E7DC6300201A :1017B000182300201C230020002307B50246012126 :1017C0000DF107008DF80730FFF7C0FF20B19DF83D :1017D000070003B05DF804FB4FF0FF30F9E70000AD :1017E0000A46042108B5FFF7B1FF80F00100C0B23E :1017F000404208BD074B0A4630B41978064B53F8EF :101800002140014623682046DD69044BAC4630BCCC -:10181000604700BF3C6400201C230020A08601001C -:1018200070B50A4E00240A4D04F0AAFB30802868E7 -:101830003388834208D904F09FFB2B6804440133AA -:10184000B4F5003F2B60F2D370BD00BF3E640020B2 -:10185000F863002004F062BC00F1006000F5003085 +:10181000604700BFDC6300201C230020A08601007D +:1018200070B50A4E00240A4D04F016FC308028687A +:101830003388834208D904F00BFC2B68044401333D +:10184000B4F5003F2B60F2D370BD00BFDE63002013 +:101850009863002004F0CEBC00F1006000F5003079 :101860000068704700F10060920000F5003004F05D -:10187000E3BB0000054B1A68054B1B889B1A83428B -:1018800002D9104404F078BB00207047F8630020B0 -:101890003E640020024B1B68184404F073BB00BF79 -:1018A000F8630020024B1B68184404F07DBB00BFA6 -:1018B000F86300200020704700F1FF5000F58F1002 +:101870004FBC0000054B1A68054B1B889B1A83421E +:1018800002D9104404F0E4BB0020704798630020A4 +:10189000DE630020024B1B68184404F0DFBB00BF6E +:1018A00098630020024B1B68184404F0E9BB00BF9A +:1018B000986300200020704700F1FF5000F58F1062 :1018C000D0F8000870470000064991F8243033B181 :1018D00000230822086A81F82430FFF7C3BF0120E3 -:1018E000704700BFFC630020014B1868704700BFC1 +:1018E000704700BF9C630020014B1868704700BF21 :1018F0000010005C194B01380322084470B51D68C4 :10190000174BC5F30B042D0C1E88A6420BD15C6847 :101910000A46013C824213460FD214F9016F4EB1C0 @@ -405,9 +405,9 @@ :101930000B4602D22C2203F8012B0424094A1688F4 :10194000AE4204D1984284BF967803F8016B013C03 :1019500002F10402F3D1581A70BD00BF0010005C00 -:1019600024230020687B00087047000070470000B7 +:1019600024230020208000087047000070470000FA :101970007047000070B504464FF47A764CB1412CA4 -:10198000254628BF412506FB05F0641B03F0CCFF6C +:10198000254628BF412506FB05F0641B04F038F806 :10199000F4E770BD002310B5934203D0CC5CC4546F :1019A0000133F9E710BD0000013810B510F9013F0F :1019B0003BB191F900409C4203D11AB10131013A87 @@ -422,1651 +422,1721 @@ :101A40009044E4B2F6B2082E85F82460DBD1FFF7AB :101A50003BFF0028D7D108E02B6A03EB82038342C7 :101A6000CFD0FFF731FF0028CBD10020BDE8F883AD -:101A70000120FBE7FC630020024B1A78024B1A702E -:101A8000704700BF3C6400201823002038B51A4C72 -:101A90001A4D204603F08CFA2946204603F0B4FA8A +:101A70000120FBE79C630020024B1A78024B1A708E +:101A8000704700BFDC6300201823002038B51A4CD3 +:101A90001A4D204603F0D4FA2946204603F0FCFAFA :101AA0002D684FF47A70D5F89020D2F8043843F0BE :101AB0000203C2F80438FFF75DFF1149284603F01E -:101AC000B1FBD5F890200F4DD2F80438286823F0E8 +:101AC000F9FBD5F890200F4DD2F80438286823F0A0 :101AD00002030D49A042C2F804384FF4E1330B6011 -:101AE00001D003F0C3F96868A04204D00649BDE8FC -:101AF000384003F0BBB938BDB86B0020287E000821 -:101B0000307E00081C230020246400200C4B70B59C +:101AE00001D003F00BFA6868A04204D00649BDE8B3 +:101AF000384003F003BA38BD586B0020E08200087C +:101B0000E88200081C230020C46300200C4B70B541 :101B10000C4D04461E780C4B55F826209A420DD0E9 :101B20000A4B002118221846FFF75AFF04600146AD -:101B300055F82600BDE8704003F098B970BD00BFAD -:101B40003C6400201C230020B86B0020246400208B -:101B5000F0B5A1B071B600230120002480261A46FA -:101B6000194602F05BFE4FF4D067214A3D25136908 -:101B700023BBD2F810310BBB036804F100619960FC -:101B80000368C3F80CD003685E6003681F600168D7 -:101B90000B6843F001030B6001680B6823F01E0320 -:101BA0000B6001680B68DB07FCD4037B8034416861 -:101BB00005FA03F3B4F5001F0B60D8D102F06EFEF6 -:101BC000B4F5001F11D000240A4E0B4D012004F083 -:101BD000A5FA3388A34205D928682044013404F0CB -:101BE000E3F9F6E7002004F099FA61B621B0F0BD00 -:101BF000002000523E640020F86300202DE9F047E9 -:101C00000D46044600219046284640F27912FFF71F -:101C1000E7FE234620220021284604F1220702F095 -:101C200035F9231D022220212846C02602F02EF974 -:101C3000631D03222221284602F028F9A31D032256 -:101C40002521284602F022F904F108031022282158 -:101C5000284602F01BF904F1100308223821284617 -:101C600002F014F904F1110308224021284602F081 -:101C70000DF904F1120308224821284602F006F962 -:101C800004F1140320225021284602F0FFF804F149 -:101C9000180340227021284602F0F8F804F12003CE -:101CA0000822B021284602F0F1F804F121030822AD -:101CB000B821284602F0EAF8314608363B460822A9 -:101CC0002846013702F0E2F8B6F5A07FF4D10027EC -:101CD00004F1330A04F1320308223146284602F0A7 -:101CE000D5F894F832304FEAC7099F4209F5A47637 -:101CF00015D3B8F1000F08D1314609F24F1604F59B -:101D000099730722284602F0C1F827463B1B94F836 -:101D1000322193420CD3F01DC008BDE8F0870AEBD6 -:101D20000703082231462846013702F0AFF8D8E70A -:101D300007F233133146082228460836013702F0ED -:101D4000A5F8E3E713B50446084600212022234600 -:101D500001900160C0F8031002F098F8231D01986B -:101D60000222202102F092F8631D01980322222111 -:101D700002F08CF8A31D01980322252102F086F8B9 -:101D8000019804F108031022282102F07FF80720AF -:101D900002B010BD0023F7B50E46047F0722009164 -:101DA0001946054601F036FF731C012207210093F6 -:101DB0002846002301F02EFFC4B9B31C05220821D8 -:101DC0002846009323460D2401F024FF3746BB1B11 -:101DD000B278934211D307342B7FA88AE408BBB9A9 -:101DE000844294BF0020012003B0F0BDAB8A0824D8 -:101DF000DB00083BDB08B370E8E7FB1C2146082248 -:101E00002846009300230834013701F003FFDEE782 -:101E1000201A18BF0120E7E70023F7B50E46047F1C -:101E2000082200911946054601F0F4FE731CC4B95E -:101E300008220093234610241146284601F0EAFEAA -:101E400001235F1C7278013B934211D307342B7F2F -:101E5000A88AE408BBB9844294BF0020012003B0E3 -:101E6000F0BDAB8A0824DB00083BDB087370E7E7B2 -:101E7000F3192146082228460093002301F0CAFEE8 -:101E800008343B46DDE7201A18BF0120E7E70000D1 -:101E9000F8B50E4605461446002181223046FFF76C -:101EA0009FFD2B4608220021304601F0EFFF7CB950 -:101EB0000F246B1C07220821304601F0E7FF0123A5 -:101EC0005F1C6A78013B934204D3E01DC008F8BD53 -:101ED0000824F4E7EB1921460822304601F0D6FF2A -:101EE00008343B46ECE70000F8B50E4605461446BC -:101EF0000021CE223046FFF773FD2B462822002119 -:101F0000304601F0C3FF7CB9302405F108030822F4 -:101F10002821304601F0BAFF2F467B1B2A7A9342D4 -:101F200004D3E01DC008F8BD2824F5E707F1090334 -:101F30002146082230460834013701F0A7FFECE7BC -:101F4000F7B5047F0E4600910123102200210546BB -:101F500001F060FEC4B9B31C092210212846009389 -:101F60002346192401F056FE37467288BB1B9A425D -:101F700011D807342B7FA88AE408BBB9844294BFE8 -:101F80000020012003B0F0BDAB8A1024DB00103B21 -:101F9000DB087380E8E73B1D2146082228460093B2 -:101FA00000230834013701F035FEDEE7201A18BFA0 -:101FB0000120E7E730B50A44084D91420DD011F8F1 -:101FC000013B5840082340F30004013B2C4013F030 -:101FD000FF0384EA5000F6D1EFE730BD2083B8ED6F -:101FE000F7B5364A6B46106851686A4603C3082342 -:101FF0003349344805F068FD044690BB0A25324A4F -:102000006B46106851686A4603C308232F492D4860 -:1020100005F05AFD0446002847D00369B3F5F01FC8 -:1020200043D8B0F86620B2F5AF6F3ED1284A0244DB -:1020300002F15C018B4238D35C3B224900209E1A9E -:10204000FFF7B8FF04F16401074632460020FFF7AE -:10205000B1FFA3689F4228D1E368984208BF0025DA -:1020600023E00369B3F5F01F26D8428BB2F5AF6FBA -:1020700020D1174A024402F110018B4218D3103BC1 -:10208000104900209D1AFFF795FF04F1180106463C -:102090002A460020FFF78EFFA3689E4202D1E36824 -:1020A000984201D00D25AAE70025284603B0F0BDCF -:1020B0001025A4E70C25A2E70B25A0E7787B0008F4 -:1020C000DCFF1D0000000208817B000890FF1D005E -:1020D0000800FEF710B5037C044613B9006805F04C -:1020E000DBFC204610BD00000023BFF35B8FC36004 -:1020F000BFF35B8FBFF35B8F8360BFF35B8F704772 -:10210000BFF35B8F0068BFF35B8F704770B5054608 -:102110000C30FFF7F5FF044605F108063046FFF7DF -:10212000EFFFA04206D96D683046FFF7E9FF25446E -:10213000281A70BD3046FFF7E3FF201AF9E70000C8 -:1021400070B505464068A0B105F10C0605F1080020 -:10215000FFF7D6FF04463046FFF7D2FF844204F172 -:10216000FF34304694BF6D680025FFF7C9FF2C444B -:10217000201A70BD38B50C460546FFF7C7FFA042D0 -:1021800010D305F10800FFF7BBFF04446868BFF3F4 -:102190005B8FB4FBF0F100FB11440120AC60BFF396 -:1021A0005B8F38BD0020FCE72DE9F041144607465F -:1021B0000D46FFF7C5FF844228BF0446D4B1B84698 -:1021C00058F80C6B4046FFF79BFF304428604046B0 -:1021D0007E68FFF795FF331A9C4203D801206C609C -:1021E000BDE8F081A41B6B603B682044AB60E860F5 -:1021F0000220F5E72046F3E738B50C460546FFF721 -:102200009FFFA04210D305F10C00FFF779FF0444B3 -:102210006868BFF35B8FB4FBF0F100FB1144012051 -:10222000EC60BFF35B8F38BD0020FCE72DE9FF4178 -:102230008846694607466C46FFF7B6FF002506B29A -:1022400004EBC606B4420AD0626808EB05012068B8 -:102250000834FFF79FFB54F8043C1D44F2E729467D -:102260003846FFF7C9FF284604B0BDE8F0810000FA -:10227000F8B505460C300F46FFF742FF05F108069A -:1022800004463046FFF73CFFA042304688BF6C68EA -:10229000FFF736FF201A386020B12C683046FFF770 -:1022A0002FFF2044F8BD000073B5144606460D46C6 -:1022B000FFF72CFF8442019028BF0446DCB101A93E -:1022C0003046FFF7D5FF019B33B93268C5E90233C9 -:1022D000C5E9002401200CE09C42286038BF01942D -:1022E000019884426860F5D93368241A0220AB60F3 -:1022F000EC6002B070BD2046FBE700002DE9FF4115 -:102300000F4669466C46FFF7CFFF00B2002604EB8C -:10231000C005AC4209D0D4F80480B81954F8081BA1 -:1023200042464644FFF736FBF3E7304604B0BDE8CB -:10233000F081000038B50546FFF7E0FF044601468E -:102340002846FFF717FF204638BD00007047000001 -:1023500010B41346026814680022A4465DF8044BCA -:102360006047000000F5805090F859047047000065 -:1023700000F5805090F852047047000000F580503E -:1023800090F95804704700004E207047302383F3C3 -:10239000118800F58052D2F89C34D2F89804184481 -:1023A000D2F894341844D2F87C341844D2F88C34DF -:1023B0001844D2F888341844002383F311887047F6 -:1023C00000F58050C0F85414012070472DE9F04FFB -:1023D0000C4600F5805185B01F4691F852340546F1 -:1023E0009046BDF838909BB1D1F878340133C1F8EC -:1023F00078342368980006D4237B082B0BD9627BA2 -:102400000AB10F2B07D9D1F87C340133C1F87C34E1 -:102410004FF0FF3010E0302383F31188EB6AD3F8DC -:10242000C42012F4001B0AD0D1F8803400200133FC -:10243000C1F8803480F3118805B0BDE8F08F2068C2 -:102440004822D3F8C4300028C3F3044A6B6AB4BFEF -:1024500040F08040800412FB0A334FEA4A161860AD -:10246000226852004FEA0A6244BF40F000501860F0 -:10247000207B42EA00425A60607B10B342F4401273 -:102480005A60D1F8B0240132C1F8B024AA1902F57B -:102490008352117B41F020011173207B039300F0E4 -:1024A000E3FF0330039B80105FFA8BF20BF1010B0B -:1024B00082420DDA04EB820103EB820249689160EB -:1024C000F2E7AA1902F58352117B60F34511E3E7A5 -:1024D0000122EB6A05EB4A1102FA0AF201F5825178 -:1024E000C3F8D020AB19183104F10C0203F5825364 -:1024F000C3E90487234653F8040B934241F8040BC5 -:10250000F9D11B882E440B8041F2680346F803A0E2 -:1025100006F5805609F0030396F86C2043F010038B -:1025200022F01F02134386F86C30002383F31188D6 -:1025300042463B4621462846CDF8009000F05AFF1F -:10254000012079E72DE9F04700F58056044696F81A -:102550005254002D40F00381037C032B40F0948003 -:1025600028462B462F465FFA80FC944510DA01EB93 -:10257000CC0E51F83CC0BCF1000F04DBDEF804C007 -:10258000BCF1000F02DB01370130ECE70133FBE760 -:10259000302080F31188E06AF3B9D0F8803043F03E -:1025A0000203C0F880304E23E06A002F6FD1D0F8CC -:1025B000803043F00103C0F880306A4B6A4A1B68E0 -:1025C00003F1805303F52C539B009342A36240F226 -:1025D000B080664800F0E6FE4D2B42D8DFF88481DB -:1025E0004FEA034EDFF88891D8F800C04EEA8C0E0F -:1025F000C0F884E00CF1805000F52C508000606140 -:1026000003EB0C00D4F82CC0C3F14E03C8F8000053 -:10261000DCF8800040F03000CCF880004FF0000C77 -:10262000D4F81480E6465FFA8CF08242BCDD01EB00 -:10263000C00A51F83000002810DBDAF804A0BAF123 -:10264000000F0BDA09EA00400AF07F0A40EA0A00AC -:1026500040F0084048F82E000EF1010E0CF1010C7C -:10266000E1E7836923F00103836100F0A1FE0646E0 -:10267000E36A9B69D90704D500F09AFE831BFA2B05 -:10268000F6D9002383F311882846BDE8F087B7EB1D -:10269000530F3DD2DFF8CCE04FEA074CDEF80030B4 -:1026A0004CEA830CC0F888C003F1805003EB470369 -:1026B000002700F52C50CEF80030BC468000A06109 -:1026C000E06AD0F8803043F00C03C0F88030D4F8D2 -:1026D00018E0FBB29A427FF770AF51F8330001EB7C -:1026E000C3080028D8F8043001DB002B0EDB20F0F3 -:1026F000604023F0604340F0005043F000434EF848 -:102700003C000EEBCC000CF1010C43600137E0E71C -:10271000836923F00103836100F04AFE0646E36A01 -:102720009B69DA07ADD500F043FE831BFA2BF6D97F -:10273000A7E7E26A936923F00103936100F038FE92 -:102740000746E36A9B69DB0705D500F031FEC31B32 -:10275000FA2BF6D995E7012586F8525491E7002522 -:1027600092E700BF4C640020FCB500408C7B000861 -:102770000000FF0713B500F580540191606CFFF76E -:10278000DFFC1F280AD920220199606CFFF74EFD5B -:10279000A0F120035842584102B010BD0020FBE7D1 -:1027A00008B5302383F3118800F58050406CFFF7A3 -:1027B0009BFC002383F3118808BD00000022026007 -:1027C00082814260826070470022002310B5C0E918 -:1027D0000023002304460C3020F8043CFFF7EEFFF2 -:1027E000204610BD2DE9F0479A4688B00746884636 -:1027F0009146302383F3118807F580546846FFF72C -:10280000E3FF606CFFF782FC1F282ED92022694667 -:10281000606CFFF78FFD202827D194F8523423B342 -:1028200003AD444605AB2E46083403CE9E4244F821 -:10283000080C44F8041C3546F5D130682060B38894 -:10284000A380DDE90023C9E90023BDF80830AAF818 -:102850000030002383F3118853464A4641463846E8 -:1028600008B0BDE8F04700F0B3BD002080F3118848 -:1028700008B0BDE8F08700002DE9F84F00230646B8 -:1028800000F58154054688461034C0E90133274BD2 -:1028900046F8303B374638462037FFF795FFA742CA -:1028A000F9D105F580544FF4805305F5A3594FF045 -:1028B000000A26630026676405F5835709F11009AD -:1028C0004FF0000B1037E663C4E90D36012384F89E -:1028D000403084F84830A7F11800203747E910ABA2 -:1028E000FFF76CFF47F8286C4F45F4D1B8F1010FA2 -:1028F00084F85884A4F85A64A4F85C64A4F85E646C -:1029000084F86064A4F86264A4F86464A4F866645B -:1029100084F8686402D9064800F044FD054B284657 -:1029200053F82830EB62BDE8F88F00BFDC7B00086D -:10293000B07B0008CC7B0008044B10B51978044626 -:102940004A1C1A70FFF798FF204610BD496400200A -:102950002DE9F04300295AD02E4E2F48B6FBF1F452 -:1029600081428CBF0A201120431EB4FBF0F700FB0C -:102970001740DDB220B1022B1846F5D8002032E016 -:102980007B1EB3F5806F2ED2C5EBC5084FF47A736A -:1029900008F103044FEAE40EC4F3C7040EF1010981 -:1029A000281B0EFB033E5FFA80FC59FA80F0BEFB49 -:1029B000F0F0B0F5617F18DC83B2601C5CFA80F047 -:1029C0007843B6FBF0F08142D8D1611E0F29D5D8EB -:1029D0000CF1FF310729D1D80120138057801071E5 -:1029E000547182F806C0BDE8F08308F1FF34E010AE -:1029F000C4F3C70400F1010E2D1B00FB03335FFA83 -:102A000085FC5EFA85F5B3FBF5F39BB2D5E7084686 -:102A1000E9E700BF00B4C4043F420F0030B50D4BDE -:102A200005200D4D1C786C438C420ED15978012045 -:102A3000518099785171D9789171197911715B79B7 -:102A400003EB83035B00138030BD013803F1060301 -:102A5000E8D1F9E71C7C000840420F0038B540F28D -:102A60007772C36A154CC3F8BC200722C36AC3F847 -:102A7000C8202268C16A930043F4C023C1F8A03083 -:102A800002F1805302F16C01C56A03F52C53EA325E -:102A900089009B00226041F0E061094AC361C5F8EA -:102AA000C01003F5D87103F56A73416293428362E3 -:102AB00002D9044800F076FC38BD00BF4C64002009 -:102AC000FCB500408C7B00082DE9F04F00F58055E7 -:102AD0001F4689B0044695F8583489469046022B23 -:102AE00004D90026304609B0BDE8F08FA84A52F854 -:102AF000231009B942F82300A648C4F80C900178C5 -:102B00002774C9B9302383F31188A34BD3F8EC2081 -:102B100042F48072C3F8EC20D3F8942042F480721F -:102B2000C3F89420D3F8942022F48072C3F8942040 -:102B30000123037081F3118895F851347BB9302358 -:102B400083F31188954A95F85834D35C0BB3012B65 -:102B500028D0012385F85134002383F311883023D2 -:102B600083F31188E26A936923F01003936100F004 -:102B70001FFC8246E36A9E6916F0080619D000F031 -:102B800017FCA0EB0A03FA2BF4D9002686F3118870 -:102B9000A8E70321132001F09DFF0321152001F078 -:102BA00099FFD6E70321142001F094FF032116209A -:102BB000F5E79A6942F001029A6100F0F9FB82465A -:102BC000E36A9A69D00706D400F0F2FBA0EB0A038F -:102BD000FA2BF5D9D9E79A694FF0000A42F00202C0 -:102BE0009A61E36AC3F854A08AF3118804F5825B02 -:102BF000686CFFF779FA0BF1100B20220021684670 -:102C0000FEF7EEFE02A8FFF7D9FD6A460BEB0603BE -:102C10000DF1180ECDF818A094460833BCE8030057 -:102C2000F44543F8080C43F8041C6246F4D1DCF880 -:102C3000000020361860B6F5806F9CF804201A71E9 -:102C4000DBD1002304F5A252494620461A3285F80A -:102C5000503485F85334FFF77BFE064690B9E26A9C -:102C6000936923F00103936100F0A2FB0546E36A38 -:102C70009B69D9077FF535AF00F09AFB431BFA2B10 -:102C8000F5D92EE795F85E34C5F86C94591E95F881 -:102C90005F34E26A013B1B0243EA416395F860142A -:102CA00001390B43B5F85C14013943EA0143D361A0 -:102CB000B8F1000F36D004F5A35241462046023247 -:102CC000FFF7ACFE90B9E26A936923F001039361C8 -:102CD00000F06EFB0546E36A9B69DA077FF501AFFA -:102CE00000F066FB431BFA2BF5D9FAE695F867244A -:102CF000C5F87084511E95F86824E36A013A120100 -:102D000042EA012295F8661401390A43B5F86414C1 -:102D1000013942EA014242F40002DA604FF42062D3 -:102D2000E36A9A64E36A4FF000082046C3F8BC8067 -:102D3000FFF794FE85F859846FF04042E36A1A6504 -:102D4000174AE36A5A654FF00222E36A9A654FF028 -:102D5000FF32E36AC3F8E0200322E36A9742DA65B0 -:102D60003FF4C0AEE26A936923F00103936100F07F -:102D70001FFB0746E36A9B69DB0705D500F018FBDC -:102D8000C31BFA2BF6D9ACE6012385F85234A9E629 -:102D9000406400204864002000440258C47B0008BE -:102DA000550200022DE9F04F054689B0904699463C -:102DB000002741F2680A00F58056EB6AD3F8D83054 -:102DC000FB40D80751D505EB47124FEA471B524449 -:102DD0001379190749D4D6F884340133C6F88434FA -:102DE00005F5A553C3E9008913799A0605EB0B0293 -:102DF00048BFD6F8B434524444BF0133C6F8B434A3 -:102E0000137943F008031371DB0723D596F8533485 -:102E100003B305F582546846FFF7D6FC03AB1834BC -:102E20005C4404F1080C2068083454F8041C1A4669 -:102E3000644503C21346F6D12068694610602846EF -:102E4000A2889A800123ADF808302B68CDE900896B -:102E5000DB6B9847D6F8A834D6F854040133C6F88B -:102E6000A83410B103681B6998470137202FA4D1FB -:102E700009B0BDE8F08F00002DE9F04F0F468DB08E -:102E8000044600F097FA82468946002F5BD1E36A38 -:102E9000D3F8A02012F4FE0F03D100200DB0BDE83E -:102EA000F08FD3F8A420920141BF04F58051D1F8EE -:102EB00098240132C1F89824D3F8A4205606ECD007 -:102EC000D3F8A450E669C5F305254823E8464FF03A -:102ED000000B03FB05664046FFF770FC32685100AB -:102EE0004ABF22F06043C2F38A4343F0004392009A -:102EF00048BF43F080430093736813F400131BBF73 -:102F0000012304F580528DF80D308DF80D301EBF71 -:102F1000D2F8B8340133C2F8B834F38803F00F03A1 -:102F20008DF80C309DF80C0000F09EFA5FFA8BF3E0 -:102F3000984225D9F2180CA90BF1010B127A0B4417 -:102F400003F82C2CEEE7012FA7D1E36AD3F8B020C9 -:102F500012F4FE0FA1D0D3F8B420950141BF04F5BF -:102F60008051D1F898240132C1F89824D3F8B420C4 -:102F7000500692D0D3F8B450266AC5F30525A4E7CD -:102F8000EFB9E36AC3F8A85004A807ADFFF71CFC2B -:102F900098E80F0007C52B800023204604A9ADF850 -:102FA0001830236804F58054DB6BCDE904A99847F9 -:102FB00058B1D4F890340133C4F890346EE7012F3F -:102FC000E2D1E36AC3F8B850DEE7D4F894340120C4 -:102FD0000133C4F8943461E72DE9F04105460F460A -:102FE00000F58054012639462846FFF745FF10B109 -:102FF00084F85364F7E7D4F8A834D4F854040133C0 -:10300000C4F8A83420B10368BDE8F0411B69184733 -:10301000BDE8F081C36AF0B51A6C12F47F0F2BD0B3 -:103020001B6C00F5805441F268054FF0010CC4F8A8 -:10303000AC340023471900EB43125E012A44117996 -:1030400011F0020F15D0490713D4B959C66A0CFA0A -:1030500001F1D6F8CCE011EA0E0F0AD0C6F8D41070 -:10306000117941F004011171D4F88C240132C4F8B3 -:103070008C240133202BDED1F0BD00002B4B70B52A -:103080001E561B5C012B30D8294D2A4A55F8233097 -:1030900052F8264013B349B3236D9A0510D54FF467 -:1030A0000073236500F086F950EA01020B4602D056 -:1030B000013861F10003024655F82600FFF772FE61 -:1030C000236D9B012CD54FF0007255F826302265F8 -:1030D00003F58053012283F8592421E0012323655D -:1030E000102323654FF48053236570BD236DDA07E9 -:1030F00002D4236D5B0706D50523002155F8260071 -:103100002365FFF769FF236DD80602D4236D5906A6 -:1031100006D55023012155F826002365FFF75CFFF3 -:1031200055F82600BDE87040FFF774BFC87B000863 -:1031300040640020CC7B000808B5302383F311885D -:10314000FFF768FF002383F3118808BDC36AD3F833 -:10315000C00010F07C5005D0D3F8C40080F40010FB -:10316000C0F340507047000008B5302383F3118846 -:1031700000F58050406CFEF7C9FF002383F31188EF -:1031800043090CBF0120002008BD000000F580535A -:1031900093F8592462B1C16A8A6922F001028A61F6 -:1031A000D3F89C240132C3F89C24002283F85924CC -:1031B000704700002DE9F743302181F3118800F5B5 -:1031C0008251002541F2680E4FF00108103100F5E0 -:1031D000805C00EB45147444267977071CD4F6060E -:1031E0001AD58E69D0F82C9008FA06F6D9F8CC706A -:1031F0003E4211D04F6801970F689742019F9F414F -:103200000AD2C9F8D460267946F004062671DCF8A3 -:1032100088440134CCF8884401352031202DD8D1A0 -:10322000002383F3118803B0BDE8F083F8B51E4690 -:1032300000230F46054613701446FFF795FF80F0F4 -:10324000010038701EB12846FFF780FF2070F8BDDE -:103250002DE9F04F85B099460D468046164691F807 -:1032600000B0DDE90EA302931378019300F0A2F8F9 -:103270002B7804460F4613B93378002B41D02246F1 -:103280003B464046FFF796FFFFF756FFFFF77EFFEE -:103290004B4632462946FFF7C9FF2B7833B1BBF1C5 -:1032A000000F03D0012005B0BDE8F08F337813B1D3 -:1032B000019B002BF6D108F5805303935445029BE4 -:1032C00077EB03031DD2039BD3F85404C8B1036802 -:1032D000AAEB04011B6898474B46324629464046F4 -:1032E000FFF7A4FF2B7813B1BBF1000FDAD13378CD -:1032F00013B1019B002BD5D100F05CF804460F46BA -:10330000DCE70020CFE70000002108B50846FFF702 -:10331000B5FEBDE8084001F06DB8000008B5012118 -:103320000020FFF7ABFEBDE8084001F063B80000E5 -:1033300008B500210120FFF7A1FEBDE8084001F01B -:1033400059B80000012108B50846FFF797FEBDE80F -:10335000084001F04FB8000000B59BB0EFF30981C1 -:1033600068226846FEF716FBEFF30583014B9B6B63 -:10337000FEE700BF00ED00E008B5FFF7EDFF00003D -:1033800000B59BB0EFF3098168226846FEF702FBA7 -:10339000EFF30583014B5B6BFEE700BF00ED00E040 -:1033A000FEE700000FB408B5029802F063FAFEE7EA -:1033B00002F0F6BE02F0D8BE13B56C46031D84E8D9 -:1033C000060094E8030083E80500012002B010BD68 -:1033D00073B58568019155B11B885B0707D4D0E9A7 -:1033E00000369B6B9847019AC1B23046A84701202E -:1033F00002B070BDF0B5866889B005460C465EB176 -:10340000BDF838305B070AD4D0E900379B6B98478A -:103410002246C1B23846B047012009B0F0BD0022B3 -:10342000002301F10806CDE9002300230A46ADF888 -:10343000083003AB1068083252F8041C1C46B24234 -:1034400003C42346F6D1106820609288A280FFF75B -:10345000B1FF0423ADF808302B68CDE90001DB6B28 -:10346000694628469847D7E7082817D909280CD075 -:103470000A280CD00B280CD00C280CD00D280CD00E -:103480000E2814BF4020302070470C2070471020B9 -:1034900070471420704718207047202070470000A4 -:1034A0002DE9F041456A15B94162BDE8F0814B68EC -:1034B000AC4623F06047C3F38A464FEAD37EC3F39A -:1034C000807816EA230638BF3E462B465A68BEEB84 -:1034D000D27F22F060440AD0002A18DAA40CB44249 -:1034E00017D19D420FD10D60DEE71346EEE7A742EC -:1034F00007D102F08044C2F3807242450BD054B130 -:10350000EFE708D2EDE7CCF800100B60CDE7B4424E -:1035100001D0B442E5D81A689C46002AE5D119606A -:10352000C3E700002DE9F047089D01F0070400EB18 -:10353000D1004FF47F494FEAD508224405F0070532 -:10354000944201D1BDE8F08704F0070705F0070AAF -:10355000111B08EBD50E57453E4613F80EC038BF79 -:103560005646C6F108068E4228BF0E46E108415C69 -:1035700034443544B94029FA06F721FA0AF1FFB27A -:103580008CEA010147FA0AF739408CEA010C03F88A -:103590000EC0D5E780EA0120082341F2210201B2E2 -:1035A000013B4000002980B2B8BF504013F0FF0338 -:1035B000F5D1704738B50C468D18A54200D138BDFD -:1035C00014F8011BFFF7E6FFF7E7000042684AB175 -:1035D000136881894360438901339BB299424381D7 -:1035E00038BF83811046704770B588B004462022EA -:1035F0000D4668460021FEF7F3F920460495FFF7D3 -:10360000E5FF024660B16B46054608AE1C4608352C -:1036100003CCB44245F8080C45F8041C2346F5D108 -:10362000104608B070BD0000082817D909280CD032 -:103630000A280CD00B280CD00C280CD00D280CD04C -:103640000E2814BF4020302070470C2070471020F7 -:1036500070471420704718207047202070470000E2 -:10366000082817D90C280CD910280CD914280CD9E3 -:1036700018280CD920280CD930288CBF0F200E20F8 -:103680007047092070470A2070470B2070470C20B4 -:1036900070470D20704700002DE9F843078C044661 -:1036A000072F1ED900254FF6FF73D0E90298C5F108 -:1036B0002006A5F1200029FA05F1083508FA06F6DA -:1036C00028FA00F0314301431846C9B2FFF762FF00 -:1036D000402D0346EBD13A46E169BDE8F843FFF7D8 -:1036E00069BF4FF6FF70BDE8F883000010B54B6866 -:1036F00023B9CA8A63F30902CA8210BD04691A6831 -:103700001C600361C38A013BC3824A60EFE700008B -:103710002DE9F84F1D46CB8A0F468146C3F30901B8 -:10372000924605290B4630D00020AAB207F11A04B0 -:103730009EB21FFA80F8042E0FD8904503F10103C2 -:1037400006D30A44FB8A62F309030120FB821AE0D4 -:103750001AF800600130E654EAE79045F1D2A1F191 -:10376000050B1C237C68BBFBF3F203FB12BB1FFAA7 -:103770008BF6002C45D14846FFF728FF044638B9A0 -:1037800078606FF00200BDE8F88F4FF00008E6E7C0 -:10379000002606607860ADB24FF0000B454510D9A9 -:1037A0000AEB0803221D13F8011B08F101089155CB -:1037B000B1B21FFA88F81B292BD0454506F1010646 -:1037C000F1D8FB8AC3F30902154465F30903BCE78A -:1037D00001321C4692B22368002BF9D16B1F0B44B7 -:1037E0001C21B3FBF1F301339BB29A42D3D2BBF15C -:1037F000000FD0D14846FFF7E9FE20B9C4F800B069 -:10380000BFE70122E7E7C0F800B05E46206004464B -:10381000C1E74545D5D94846FFF7D8FE08B920602D -:10382000AFE7C0F800B0002620600446B6E700000D -:103830002DE9F04F1C46074688462DED028B83B0DC -:103840005B690192002B00F09A80238C2BB1E26916 -:10385000002A00F09480072B35D807F10C00FFF701 -:10386000B5FE054638B96FF00205284603B0BDEC39 -:10387000028BBDE8F08F14220021FEF7B1F8228CF4 -:10388000E16905F10800FEF785F8208C48F0004159 -:10389000013080B2FFF7E4FEFFF7C6FE013880B2C8 -:1038A00020840130287438466369228C1B782A44AE -:1038B00003F01F0363F03F03137269602946FFF7AB -:1038C000EFFD0125D1E74FF0000900F10C034FF0A7 -:1038D000800A4E464D4608EE103A18EE100AFFF7E1 -:1038E00075FE83460028BED014220021FEF778F82A -:1038F000002E3AD1019B0222ABF808300BF1080EE2 -:103900001FFA82FC218C0CF10100BCF1060F80B281 -:1039100001D88E422BD3FFF7A3FE8E4208BF4FF093 -:10392000400AFFF781FE62690138013512781BFAFF -:1039300080F1013002F01F022DB242EA491289F0F3 -:1039400001094AEA020A48F0004281F808A05946F3 -:103950008BF810003846CBF804204FF0000AFFF730 -:103960009FFD238CB342B8D17FE70022C6E7E1690F -:10397000895D01360EF80210B6B20132C0E76FF071 -:10398000010572E7F8B515460E46302200210446BF -:103990001F46FEF725F8069BB5F5001FA76063607C -:1039A00004F11000079B34BF6A094FF6FF72E6610D -:1039B000A362002397B29A4206D800230360A7822D -:1039C000E3822383E360F8BD06600133304620368E -:1039D000F1E7000003781BB94BB2002BC8BF0170A0 -:1039E0007047000000787047F8B50C46C969074673 -:1039F00011B9238C002B37D1257E1F2D34D8387870 -:103A000028BB228C072A2CD8268A36F003032BD118 -:103A10004FF6FF70FFF7CEFD20F0010031024FF6A8 -:103A2000FF72400441EA0561400C41EA402523460B -:103A300029463846FFF7FCFE002807DD6269137847 -:103A40000133DBB21F2B88BF00231370F8BD218A1E -:103A50002D0645EA012505432046FFF71DFE0246D7 -:103A6000E5E76FF00300F1E76FF00100EEE700001B -:103A700070B58AB0044616460021282268461D46C5 -:103A8000FDF7AEFFBDF8383069462046ADF810307E -:103A90000F9B05939DF840308DF81830119B0793CC -:103AA000BDF84830CDE90265ADF82030FFF79CFF46 -:103AB0000AB070BD2DE9F041D36905460C461646A3 -:103AC0000BB9138C5BBB377E1F2F28D895F800806D -:103AD000B8F1000F26D03046FFF7DEFD3378210223 -:103AE0000246284641EAC331338A41EA080141EAE5 -:103AF000076141EA0341334641F08001FFF798FE38 -:103B000000280ADD3378012B07D17269137801335D -:103B1000DBB21F2B88BF00231370BDE8F0816FF06C -:103B20000100FAE76FF00300F7E70000F0B58BB093 -:103B300004460D4617460021282268461E46FDF71A -:103B40004FFF9DF84C30294620465A1E53425341A0 -:103B50006A468DF800309DF84030ADF81030119B6A -:103B600005939DF848308DF81830149B0793BDF8E5 -:103B70005430CDE90276ADF82030FFF79BFF0BB053 -:103B8000F0BD0000406A00B104307047436A1A6813 -:103B9000426202691A600361C38A013BC3827047B3 -:103BA0002DE9F041D0F8208014461D46184E4146BC -:103BB000002709B9BDE8F081D1E90223A21A65EB1B -:103BC0000303964277EB03031ED2036A8B420DD1A7 -:103BD000FFF78CFD036A1B68036203690B60C38AED -:103BE0000161013B016AC3828846E2E7FFF77EFD7F -:103BF0000B68C8F8003003690B60C38A0161013BA0 -:103C0000C382D8F80010D4E788460968D1E700BF1E -:103C100080841E002DE9F04F8BB00D4614469B4664 -:103C2000DDF850908046002800F01881B9F1000FAF -:103C300000F01481531E3F2B00F21081012A03D1A2 -:103C4000BBF1000F40F00A810023CDE90833B8F83A -:103C50001430B5EBC30F4FEAC30703D300200BB0FA -:103C6000BDE8F08F2B199F42D8F80C3036BF7F1B70 -:103C70002746FFB21BB9D8F81030002B7AD0272D79 -:103C80004DD8C5F1280600232946B742009308AB5A -:103C9000D8F808002CBFF6B23E46A7EB060A35441A -:103CA00032465FFA8AFAFFF73DFCB8F81430282153 -:103CB00003F10053053BDB000493D8F80C30039369 -:103CC000039B13B1BAF1000F2CD1D8F8100040B10A -:103CD000BAF1000F05D008AB5246691A0096FFF7FB -:103CE00021FC38B2002FB9D066070AD00AAB624275 -:103CF00003EBD40102F0070211F8083C134101F86C -:103D0000083C082C3DD9102C40F2B580202C40F204 -:103D1000B780BBF1000F00F09C80082335E0BA4665 -:103D20000026C2E7049BE02B28BFE02306930B4448 -:103D3000AB42059315D95A1B0398691A0096924510 -:103D400008AB00F1040034BF5246D2B20792FFF72D -:103D5000E9FB079A1644AAEB020A1544F6B25FFA89 -:103D60008AFA049B069A05999B1A0493039B1B6885 -:103D70000393A5E700933A4608AB2946D8F8080014 -:103D8000ADE7BBF1000F13D00123B4EBC30F6BD031 -:103D9000082C12D89DF82030621E23FA02F2D507B3 -:103DA00006D54FF0FF3202FA04F423438DF8203099 -:103DB0009DF8203089F8003051E7102C12D8BDF85A -:103DC0002030621E23FA02F2D10706D54FF0FF32EF -:103DD00002FA04F42343ADF82030BDF82030A9F8EE -:103DE00000303CE7202C0FD80899631E21FA03F31A -:103DF000DA0705D54FF0FF3202FA04F40C430894B9 -:103E0000089BC9F800302AE7402C2AD0611EC4F173 -:103E10002102A4F12103DDE9086526FA01F105FA82 -:103E200002F225FA03F311431943CB0711D50122FE -:103E3000A4F12003C4F1200102FA03F322FA01F1F4 -:103E4000A2400B43524263EB430332432B43CDE981 -:103E50000823DDE90823C9E9002300E76FF001002A -:103E6000FDE66FF00800FAE6082CA1D9102CB4D9B1 -:103E7000202CEED8C4E7BBF1000FAED0022384E7BC -:103E8000BBF1000FBCD004237FE70000012A30B54E -:103E9000144638BF012485B00025402C28BF40249B -:103EA000012ACDE9025518D81B788DF80830630730 -:103EB0000AD004AB624203EBD40502F0070215F806 -:103EC000083C934005F8083C034600912246002137 -:103ED00002A8FFF727FB05B030BD082AE4D9102A55 -:103EE00003D81B88ADF80830E1E7202A95BF1B688E -:103EF000D3E900230293CDE90223D8E710B5CB68BC -:103F00001BB98B600B618B8210BD04691A681C6041 -:103F10000361C38A013BC382CA60F0E703064CBF5A -:103F2000C0F3C0300220704708B50246FFF7F6FF25 -:103F3000022806D15306C2F30F2001D100F003007E -:103F400008BDC2F30740FBE72DE9F04F93B00446EC -:103F50000D46CDE903230A681046FFF7DFFF02286C -:103F6000824614BFC2F306260026002A80F2F3819F -:103F700012F0C04940F0EF81097B002900F0EB818D -:103F8000022803D02378B34240F0E881C2F30463EF -:103F900010462944069302F07F030593FFF7C4FF00 -:103FA000059B002283464FEA8348002348EA0A48DB -:103FB00048EA4668CE78CDE90823F30948EA0008C4 -:103FC000029368D0059B024608A9204600935346F9 -:103FD0006768B847002800F0C481276A4FB9414696 -:103FE00004F10C00FFF700FB074690B96FF00200E8 -:103FF00055E03B6998450DD03F68002FF9D1414607 -:1040000004F10C00FFF7F0FA07460028EED0236A0F -:104010003B60276297F817C006F01F08CCF3840CAA -:10402000ACEB0800A8EB0C031FFA80FE0028B8BF19 -:104030000EF120001FFA83FEB8BF00B2002B0793D9 -:10404000B8BF0EF12003D7E90221BCBF1BB2079312 -:1040500052EA010338D0039B4FF0000CDFF820E355 -:104060009A1A049B63EB010196457CEB01032BD369 -:104070006B7B97F81AE0734519D1029B002B78D01F -:10408000012821DC7868F8B9DFF8F0C2944570EBBC -:10409000010316D337E0276A27B96FF00C0013B07D -:1040A000BDE8F08F3B699845B4D03F68F4E7B3486A -:1040B00090427CEB010301D30020F0E7029B002B30 -:1040C000FAD0079B0F2B17DCFA7DB3003946204648 -:1040D00002F0030203F07C031343FB75FFF706FBBA -:1040E0006B7BBB76029B3BB9FB7DC3F38402013241 -:1040F00062F38603FB75D0E76A7BBB7E9A42DBD115 -:10410000029B002B35D0B309022B32D0039B142223 -:1041100000210DA8BB60049BFB60FDF761FC039BC5 -:104120000AA920460A93049BADF83EB00B932B1DC1 -:104130008DF840A00C932B7B8DF84180013BDBB2C6 -:10414000ADF83C30069B8DF84230059B8DF843302E -:1041500094F82C3083F001038DF84430A36898471D -:10416000FB7DC3F38403013303F01F039B02FB8237 -:10417000A2E7FB7DC6F34012B2EBD31F40F0F48000 -:10418000C3F38403434540F0F280029AB6092B7BC7 -:10419000002A4DD0F2075DD4032B40F2EB80039B45 -:1041A000AE1D394604F10C00BB603246049BFB6037 -:1041B0002B7B033BDBB2FFF7ABFA00280CDA394666 -:1041C0002046FFF793FAFB7DC3F38403013303F02A -:1041D0001F039B02FB8209E7AB88DDE908843B8370 -:1041E0004FF6FF73C9F12000A9F1200228FA09F166 -:1041F00009F1080904FA00F024FA02F20143184612 -:104200001143C9B2FFF7C6F9B9F1400F0346E9D12E -:10421000B88231462A7B033AD2B2FFF7CBF9FB7D55 -:10422000B882DA43C2F3C01262F3C713FB7543E7E7 -:1042300086B92E1D013B394604F10C00DBB2324633 -:10424000FFF766FA0028BADB2A7B3146B88A013AC2 -:10425000D2B2E2E7F98A013BC1F30901DAB20429DB -:104260005BD8281D002307F11B069A4208D910F8D5 -:1042700001CB013306F801C00131DBB20529F4D1CD -:10428000039993420A9138BF043304992CBF002349 -:1042900055FA83F30B9107F11B010C9179680E938A -:1042A0000D91291DFB8AADF83EB0C3F309038DF8CB -:1042B00040A08DF841801A44069B8DF84230059B42 -:1042C000ADF83C208DF8433094F82C3083F0010396 -:1042D0008DF844300023B88A7B602A7B013AFFF7CF -:1042E00069F93B8BB882834203D1A3680AA92046AF -:1042F000984720460AA9FFF701FEFB7DBA8AC3F35F -:104300008403013303F01F039B02FB823B8B9A4221 -:104310000CBF00206FF01000C1E67B68002BAFD00F -:10432000052001E01C3033461E68002EFAD1091A20 -:104330002E1D081D184401EB090C5FFA89F3BCF12E -:104340001B0F9DD89A429BD916F8013B09F1010930 -:1043500000F8013BEFE76FF00900A0E66FF00A00FC -:104360009DE66FF00B009AE66FF00D0097E66FF098 -:104370000E0094E66FF00F0091E600BF40420F0080 -:1043800080841E00EFF30983054968334A6B22F0ED -:1043900001024A6383F30988002383F3118870477D -:1043A00000EF00E0302080F3118862B60D4B0E4A1A -:1043B000D96821F4E0610904090C0A430B49DA6069 -:1043C000D3F8FC2042F08072C3F8FC20084AC2F8FF -:1043D000B01F116841F0010111602022DA7783F8E3 -:1043E0002200704700ED00E00003FA0555CEACC591 -:1043F000001000E0302310B583F311880E4B5B688A -:1044000013F4006314D0F1EE103AEFF309844FF087 -:104410008073683CE361094BDB6B236684F3098896 -:1044200001F0F2F910B1064BA36110BD054BFBE79B -:1044300083F31188F9E700BF00ED00E000EF00E032 -:104440003F0400084204000808B5074B074A1968F2 -:1044500001F03D01996053680BB190689847BDE841 -:104460000840FFF7C7BF00BF0000024054640020AF -:1044700008B5084B1968890901F03D018A019A6065 -:10448000054AD3680BB110699847BDE80840FFF7AB -:10449000B1BF00BF000002405464002008B5084BC3 -:1044A0001968090C01F03D010A049A60054A536934 -:1044B0000BB190699847BDE80840FFF79BBF00BF6C -:1044C000000002405464002008B5084B1968890DAB -:1044D00001F03D018A059A60054AD3690BB1106A63 -:1044E0009847BDE80840FFF785BF00BF00000240C5 -:1044F0005464002008B5074B074A596801F03D0194 -:10450000D960536A0BB1906A9847BDE80840FFF73D -:1045100071BF00BF000002405464002008B5084B82 -:104520005968890901F03D018A01DA60054AD36AB8 -:104530000BB1106B9847BDE80840FFF75BBF00BFA9 -:10454000000002405464002008B5084B5968090C6B -:1045500001F03D010A04DA60054A536B0BB1906B20 -:104560009847BDE80840FFF745BF00BF0000024084 -:104570005464002008B5084B5968890D01F03D01CD -:104580008A05DA60054AD36B0BB1106C9847BDE819 -:104590000840FFF72FBF00BF000002405464002016 -:1045A00008B5074B074A196801F03D019960536C43 -:1045B0000BB1906C9847BDE80840FFF71BBF00BFE8 -:1045C000000402405464002008B5084B19688909AA -:1045D00001F03D018A019A60054AD36C0BB1106D60 -:1045E0009847BDE80840FFF705BF00BF0004024040 -:1045F0005464002008B5084B1968090C01F03D010E -:104600000A049A60054A536D0BB1906D9847BDE856 -:104610000840FFF7EFBE00BF0004024054640020D2 -:1046200008B5084B1968890D01F03D018A059A60AB -:10463000054AD36D0BB1106E9847BDE80840FFF7EF -:10464000D9BE00BF000402405464002008B5074BE7 -:10465000074A596801F03D01D960536E0BB1906E65 -:104660009847BDE80840FFF7C5BE00BF0004024000 -:104670005464002008B5084B5968890901F03D01D0 -:104680008A01DA60054AD36E0BB1106F9847BDE816 -:104690000840FFF7AFBE00BF000402405464002092 -:1046A00008B5084B5968090C01F03D010A04DA60AD -:1046B000054A536F0BB1906F9847BDE80840FFF76C -:1046C00099BE00BF000402405464002008B5084BA6 -:1046D0005968890D01F03D018A05DA60054AD36FFA -:1046E00013B1D2F880009847BDE80840FFF782BEBA -:1046F000000402405464002000230C4910B51A46FF -:104700000B4C0B6054F82300026001EB43000433B0 -:104710004260402BF6D1074A4FF0FF339360D360DD -:10472000C2F80834C2F80C3410BD00BF5464002035 -:104730003C7C0008000002400F28F8B510D9102872 -:1047400010D0112811D0122808D10F240720DFF82B -:10475000C8E00126DEF80050A04208D9002653E048 -:104760000446F4E70F240020F1E70724FBE706FAEC -:1047700000F73D424AD1264C4FEA001C3D4304EB72 -:1047800000160EEBC000CEF80050C0E90123FBB2CA -:1047900073B12048D0F8D83043F00103C0F8D830C6 -:1047A000D0F8003143F00103C0F80031D0F80031F7 -:1047B00017F47F4F0ED01748D0F8D83043F00203DB -:1047C000C0F8D830D0F8003143F00203C0F800310F -:1047D000D0F8003154F80C00036823F01F03036085 -:1047E000056815F00105FBD104EB0C033D2493F89B -:1047F0000CC05F6804FA0CF43C602124056044613D -:1048000012B1987B00F066F93046F8BD0130A3E79D -:104810003C7C0008004402585464002010B5302449 -:1048200084F31188FFF788FF002383F3118810BDFC -:1048300010B50446807B00F063F901231549627BC3 -:1048400003FA02F20B6823EA0203DAB20B6072B9D0 -:10485000114AD2F8D81021F00101C2F8D810D2F8CC -:10486000001121F00101C2F80011D2F8002113F467 -:104870007F4F0ED1084BD3F8D82022F00202C3F8A4 -:10488000D820D3F8002122F00202C3F80021D3F887 -:10489000003110BD546400200044025808B5302394 -:1048A00083F31188FFF7C4FF002383F3118808BD49 -:1048B000026843681143016003B118477047000064 -:1048C000024A136843F0C003136070470078004049 -:1048D00013B50E4C204600F0BDFA04F1140000237D -:1048E0004FF400720A49009400F07AF9094B4FF432 -:1048F0000072094904F13800009400F0F3F9074A06 -:10490000074BC4E9172302B010BD00BFD8640020D4 -:1049100044650020C148000844670020007800403A -:1049200000E1F505037C30B5244C002918BF0C4686 -:10493000012B11D1224B98420ED1224BD3F8E82003 -:1049400042F08042C3F8E820D3F8102142F08042C0 -:10495000C3F81021D3F810312268036EC16D03EB48 -:1049600052038466B3FBF2F36268150442BF23F07E -:10497000070503F0070343EA4503CB60A36843F050 -:1049800040034B60E36843F001038B6042F496738D -:1049900043F001030B604FF0FF330B62510505D567 -:1049A00012F0102205D0B2F1805F04D080F864309C -:1049B00030BD7F23FAE73F23F8E700BF3C7D0008C6 -:1049C000D8640020004402582DE9F047C66D054622 -:1049D0003768F469210734621AD014F0080118BF4F -:1049E0004FF48071E20748BF41F02001A3074FF068 -:1049F000300348BF41F04001600748BF41F08001EB -:104A000083F31188281DFFF753FF002383F31188D8 -:104A1000E2050AD5302383F311884FF48061281D05 -:104A2000FFF746FF002383F311884FF030094FF062 -:104A3000000A14F0200838D13B0616D54FF0300993 -:104A400005F1380A200610D589F31188504600F088 -:104A50007DF9002836DA0821281DFFF729FF27F005 -:104A600080033360002383F31188790614D562062E -:104A700012D5302383F31188D5E913239A4208D144 -:104A80002B6C33B127F040071021281DFFF710FFD2 -:104A90003760002383F31188E30618D5AA6E1369E3 -:104AA000ABB15069BDE8F047184789F31188736AC4 -:104AB000284695F86410194000F0E6F98AF3118849 -:104AC000F469B6E7B06288F31188F469BAE7BDE823 -:104AD000F0870000090100F16043012203F5614302 -:104AE000C9B283F8001300F01F039A4043099B00EA -:104AF00003F1604303F56143C3F880211A607047F6 -:104B000000F01F0301229A40430900F160409B001E -:104B100000F5614003F1604303F56143C3F8802071 -:104B2000C3F88021002380F800337047F8B515469C -:104B3000826804460B46AA4200D28568A1692669AC -:104B4000761AB5420BD218462A46FCF723FFA36912 -:104B50002B44A3612846A3685B1BA360F8BD0CD956 -:104B6000AF1B18463246FCF715FF3A46E168304461 -:104B7000FCF710FFE3683B44EBE718462A46FCF7D6 -:104B800009FFE368E5E7000083689342F7B5044650 -:104B9000154600D28568D4E90460361AB5420BD2B6 -:104BA0002A46FCF7F7FE63692B4463612846A36835 -:104BB0005B1BA36003B0F0BD0DD93246AF1B019162 -:104BC000FCF7E8FE01993A46E0683144FCF7E2FE62 -:104BD000E3683B44E9E72A46FCF7DCFEE368E4E7E8 -:104BE00010B50A440024C361029B8460C160026165 -:104BF0000362C0E90000C0E9051110BD08B5D0E9A5 -:104C00000532934201D1826882B9826801328260A2 -:104C10005A1C426119700021D0E904329A4224BF23 -:104C2000C368436100F09CFE002008BD4FF0FF30D8 -:104C3000FBE7000070B5302304460E4683F311886D -:104C4000A568A5B1A368A269013BA360531CA36139 -:104C500015782269934224BFE368A361E3690BB12D -:104C600020469847002383F31188284607E0314601 -:104C7000204600F065FE0028E2DA85F3118870BD59 -:104C80002DE9F74F04460E4617469846D0F81C907B -:104C90004FF0300A8AF311884FF0000B154665B1CA -:104CA0002A4631462046FFF741FF034660B9414698 -:104CB000204600F045FE0028F1D0002383F3118840 -:104CC000781B03B0BDE8F08FB9F1000F03D001905D -:104CD0002046C847019B8BF31188ED1A1E448AF3C6 -:104CE0001188DCE7C160C361009B82600362C0E998 -:104CF00005111144C0E9000001617047F8B5044690 -:104D00000D461646302383F31188A768A7B1A36820 -:104D1000013BA36063695A1C62611D70D4E90432CF -:104D20009A4224BFE3686361E3690BB12046984768 -:104D3000002080F3118807E03146204600F000FE95 -:104D40000028E2DA87F31188F8BD0000D0E90523D6 -:104D500010B59A4201D182687AB982680021013285 -:104D600082605A1C82611C7803699A4224BFC3681E -:104D7000836100F0F5FD204610BD4FF0FF30FBE7EA -:104D80002DE9F74F04460E4617469846D0F81C907A -:104D90004FF0300A8AF311884FF0000B154665B1C9 -:104DA0002A4631462046FFF7EFFE034660B94146EA -:104DB000204600F0C5FD0028F1D0002383F31188C0 -:104DC000781B03B0BDE8F08FB9F1000F03D001905C -:104DD0002046C847019B8BF31188ED1A1E448AF3C5 -:104DE0001188DCE7026843681143016003B118478A -:104DF000704700001430FFF743BF00004FF0FF334F -:104E00001430FFF73DBF00003830FFF7B9BF000096 -:104E10004FF0FF333830FFF7B3BF00001430FFF717 -:104E200009BF00004FF0FF311430FFF703BF00004F -:104E30003830FFF763BF00004FF0FF323830FFF724 -:104E40005DBF0000012914BF6FF013000020704700 -:104E5000FFF73EBD044B036000234360C0E902330B -:104E600001230374704700BF547D000810B5302340 -:104E7000044683F31188FFF755FD022300202374B5 -:104E800080F3118810BD000038B5C36904460D4693 -:104E90001BB904210844FFF7A5FF294604F11400BB -:104EA000FFF7ACFE002806DA201D4FF40061BDE8D4 -:104EB0003840FFF797BF38BD02684368114301606F -:104EC00003B118477047000013B5406B00F58054DC -:104ED000D4F8A4381A681178042914D1017C022965 -:104EE00011D11979012312898B4013420BD101A9E9 -:104EF0004C3002F0F5F8D4F8A4480246019B217921 -:104F0000206800F0DFF902B010BD0000143002F09C -:104F100077B800004FF0FF33143002F071B8000092 -:104F20004C3002F049B900004FF0FF334C3002F032 -:104F300043B90000143002F045B800004FF0FF31D3 -:104F4000143002F03FB800004C3002F015B90000F8 -:104F50004FF0FF324C3002F00FB9000000207047D4 -:104F600010B500F58054D4F8A4381A6811780429D3 -:104F700017D1017C022914D15979012352898B4020 -:104F800013420ED1143001F0D7FF024648B1D4F8D5 -:104F9000A4484FF4407361792068BDE8104000F0E8 -:104FA0007FB910BD406BFFF7DBBF0000704700000A -:104FB0007FB5124B012504260446036000230574C7 -:104FC00000F1840243602946C0E902330C4B029091 -:104FD000143001934FF44073009601F089FF094BA0 -:104FE00004F69442294604F14C000294CDE9006392 -:104FF0004FF4407302F050F804B070BD7C7D00089F -:10500000A54F0008C94E00080A68302383F31188B1 -:105010000B790B3342F823004B79133342F823000A -:105020008B7913B10B3342F8230000F58053C3F89A -:10503000A41802230374002080F311887047000035 -:1050400038B5037F044613B190F85430ABB901254D -:10505000201D0221FFF730FF04F114006FF0010161 -:10506000257700F089FC04F14C0084F854506FF06F -:105070000101BDE8384000F07FBC38BD10B501210A -:1050800004460430FFF718FF0023237784F85430D8 -:1050900010BD000038B504460025143001F040FF73 -:1050A00004F14C00257702F00FF8201D84F85450CD -:1050B0000121FFF701FF2046BDE83840FFF750BF50 -:1050C00090F8803003F06003202B06D190F8812007 -:1050D0000023212A03D81F2A06D800207047222A3D -:1050E000FBD1C0E91D3303E0034A42670722826710 -:1050F000C3670120704700BF3C23002037B500F58F -:105100008055D5F8A4381A68117804291AD1017C81 -:10511000022917D11979012312898B40134211D129 -:1051200000F14C04204602F08FF858B101A9204646 -:1051300001F0D6FFD5F8A4480246019B21792068EA -:1051400000F0C0F803B030BD01F10B03F0B550F82A -:10515000236085B004460D46FEB1302383F31188E9 -:1051600004EB8507301D0821FFF7A6FEFB6806F15A -:105170004C005B691B681BB1019001F0BFFF0198F7 -:1051800003A901F0ADFF024648B1039B2946204622 -:1051900000F098F8002383F3118805B0F0BDFB6898 -:1051A0005A691268002AF5D01B8A013B1340F1D1DD -:1051B00004F18002EAE70000133138B550F82140CD -:1051C000ECB1302383F3118804F58053D3F8A4287D -:1051D0001368527903EB8203DB689B695D6845B114 -:1051E00004216018FFF768FE294604F1140001F05D -:1051F000ADFE2046FFF7B4FE002383F3118838BDCF -:105200007047000001F07AB901234022002110B557 -:10521000044600F8303BFCF7E3FB0023C4E901330C -:1052200010BD000010B53023044683F311882422FA -:10523000416000210C30FCF7D3FB204601F080F9DF -:1052400002230020237080F3118810BD70B500EB9D -:105250008103054650690E461446DA6018B11022E3 -:105260000021FCF7BDFBA06918B110220021FCF75A -:10527000B7FB31462846BDE8704001F067BA000030 -:1052800083682022002103F0011310B504468360D7 -:105290001030FCF7A5FB2046BDE8104001F0E2BA53 -:1052A000F0B4012500EB810447898D40E4683D435B -:1052B000A469458123600023A2606360F0BC01F013 -:1052C000FFBA0000F0B4012500EB810407898D408E -:1052D000E4683D436469058123600023A260636044 -:1052E000F0BC01F075BB000070B502230025044638 -:1052F000242203702946C0F888500C3040F8045C22 -:10530000FCF76EFB204684F8705001F0B3F9636837 -:105310001B6823B129462046BDE87040184770BD80 -:105320000378052B10B504460AD080F88C3005238D -:10533000037043681B680BB1042198470023A360E6 -:1053400010BD00000178052906D190F88C20436833 -:1053500002701B6803B118477047000070B590F8E1 -:105360007030044613B1002380F8703004F18002DD -:10537000204601F09BFA63689B68B3B994F88030CB -:1053800013F0600535D00021204601F08DFD00218D -:10539000204601F07DFD63681B6813B1062120469D -:1053A0009847062384F8703070BD2046984700283F -:1053B000E4D0B4F88630A26F9A4288BFA36794F90C -:1053C0008030A56F002B4FF0300380F20381002D59 -:1053D00000F0F280092284F8702083F31188002104 -:1053E0002046D4E91D23FFF76DFF002383F31188C6 -:1053F000DAE794F8812003F07F0343EA022340F2C6 -:105400000232934200F0C58021D8B3F5807F48D0A6 -:105410000DD8012B3FD0022B00F09380002BB2D18E -:1054200004F1880262670222A267E367C1E7B3F56D -:10543000817F00F09B80B3F5407FA4D194F8823047 -:10544000012BA0D1B4F8883043F0020332E0B3F569 -:10545000006F4DD017D8B3F5A06F31D0A3F5C0635E -:10546000012B90D86368204694F882205E6894F8F7 -:105470008310B4F88430B047002884D04368636751 -:105480000368A3671AE0B3F5106F36D040F6024206 -:1054900093427FF478AF5C4B63670223A3670023DA -:1054A000C3E794F88230012B7FF46DAFB4F88830F5 -:1054B00023F00203A4F88830C4E91D55E56778E7B6 -:1054C000B4F88030B3F5A06F0ED194F88230204646 -:1054D00084F88A3001F02CF963681B6813B101214C -:1054E00020469847032323700023C4E91D339CE71B -:1054F00004F18B0363670123C3E72378042B10D1E6 -:10550000302383F311882046FFF7BAFE85F3118814 -:105510000321636884F88B5021701B680BB120460F -:10552000984794F88230002BDED084F88B30042327 -:10553000237063681B68002BD6D002212046984751 -:10554000D2E794F8843020461D0603F00F010AD5F7 -:1055500001F09EF9012804D002287FF414AF2B4BF0 -:105560009AE72B4B98E701F085F9F3E794F882303E -:10557000002B7FF408AF94F8843013F00F01B3D000 -:105580001A06204602D501F0A7FCADE701F098FC11 -:10559000AAE794F88230002B7FF4F5AE94F88430BB -:1055A00013F00F01A0D01B06204602D501F07CFCB1 -:1055B0009AE701F06DFC97E7142284F8702083F3DA -:1055C00011882B462A4629462046FFF769FE85F3B7 -:1055D0001188E9E65DB1152284F8702083F3118803 -:1055E00000212046D4E91D23FFF75AFEFDE60B22D9 -:1055F00084F8702083F311882B462A4629462046DA -:10560000FFF760FEE3E700BFAC7D0008A47D000863 -:10561000A87D000838B590F870300446002B3ED0C5 -:10562000063BDAB20F2A34D80F2B32D8DFE803F06A -:10563000373131082232313131313131313137377F -:10564000856FB0F886309D4214D2C3681B8AB5FBC3 -:10565000F3F203FB12556DB9302383F311882B4607 -:105660002A462946FFF72EFE85F311880A2384F87F -:1056700070300EE0142384F87030302383F31188E7 -:10568000002320461A461946FFF70AFE002383F33B -:10569000118838BDC36F03B198470023E7E70021A5 -:1056A000204601F001FC0021204601F0F1FB636877 -:1056B0001B6813B10621204698470623D7E7000050 -:1056C00010B590F870300446142B29D017D8062B4B -:1056D00005D001D81BB110BD093B022BFBD800211E -:1056E000204601F0E1FB0021204601F0D1FB636878 -:1056F0001B6813B1062120469847062319E0152B95 -:10570000E9D10B2380F87030302383F31188002314 -:105710001A461946FFF7D6FD002383F31188DAE70E -:10572000C3689B695B68002BD5D1C36F03B19847F1 -:10573000002384F87030CEE7002382680375036984 -:105740001B6899689142FBD25A68036042601060FE -:105750005860704700238268037503691B68996865 -:105760009142FBD85A6803604260106058607047ED -:1057700008B50846302383F311880B7D032B05D031 -:10578000042B0DD02BB983F3118808BD8B6900223F -:105790001A604FF0FF338361FFF7CEFF0023F2E77B -:1057A000D1E9003213605A60F3E70000FFF7C4BF8D -:1057B000054BD96808751868026853601A600122A1 -:1057C000D8600275FAF726BE486900200C4B30B548 -:1057D000DD684B1C87B004460FD02B46094A68464B -:1057E00000F05EF92046FFF7E3FF009B13B1684627 -:1057F00000F060F9A86907B030BDFFF7D9FFF9E7FD -:105800004869002071570008044B1A68DB689068EB -:105810009B68984294BF002001207047486900208F -:10582000084B10B51C68D868226853601A600122C2 -:10583000DC602275FFF78EFF01462046BDE8104070 -:10584000FAF7E8BD4869002038B5074C0123002568 -:10585000064907482370656001F034FD0223237078 -:1058600085F3118838BD00BFB06B0020B47D0008FF -:105870004869002008B572B6044B186500F062FC58 -:1058800000F028FD024B03221A70FEE74869002051 -:10589000B06B002000F044B9034A516853685B1AAA -:1058A0009842FBD8704700BF001000E08B600223D5 -:1058B000086108468B8270478368A3F1840243F82D -:1058C000142C026943F8442C426943F8402C094ADD -:1058D00043F8242CC268A3F1200043F8182C0222BC -:1058E00003F80C2C002203F80B2C034A43F8102C6D -:1058F000704700BF2D0400084869002008B5FFF775 -:10590000DBFFBDE80840FFF751BF0000024BDB683A -:1059100098610F20FFF74CBF48690020302383F3C4 -:105920001188FFF7F3BF000008B50146302383F369 -:1059300011880820FFF74AFF002383F3118808BD70 -:10594000064BDB6839B1426818605A6013604360E7 -:105950000420FFF73BBF4FF0FF307047486900203D -:105960000368984206D01A68026050601846996130 -:10597000FFF71CBF7047000038B504460D4620688D -:10598000844200D138BD036823605C608561FFF705 -:105990000DFFF4E7036810B59C68A2420CD85C6860 -:1059A0008A600B604C602160596099688A1A9A601D -:1059B0004FF0FF33836010BD121B1B68ECE7000043 -:1059C0000A2938BF0A2170B504460D460A26601917 -:1059D00001F070FC01F058FC041BA54203D8751CB3 -:1059E00004462E46F3E70A2E04D90120BDE8704094 -:1059F00001F0A8BC70BD0000F8B5144B0D460A2A92 -:105A00004FF00A07D96103F11001826038BF0A2202 -:105A1000416019691446016048601861A81801F0D6 -:105A200039FC01F031FC431B0646A34206D37C1C23 -:105A300028192746354601F03DFCF2E70A2F04D924 -:105A40000120BDE8F84001F07DBCF8BD48690020A8 -:105A5000F8B506460D4601F017FC0F4A134653F8F9 -:105A6000107F9F4206D12A4601463046BDE8F840E5 -:105A7000FFF7C2BFD169BB68441A2C1928BF2C4656 -:105A8000A34202D92946FFF79BFF2246314603482D -:105A9000BDE8F840FFF77EBF486900205869002044 -:105AA000C0E90323002310B45DF8044B4361FFF702 -:105AB000CFBF000010B5194C236998420DD0816802 -:105AC000D0E9003213605A609A680A449A60002351 -:105AD00003604FF0FF33A36110BD0268234643F813 -:105AE000102F53600022026022699A4203D1BDE860 -:105AF000104001F0D9BB936881680B44936001F0BA -:105B0000C3FB2269E1699268441AA242E4D91144B4 -:105B1000BDE81040091AFFF753BF00BF48690020D5 -:105B20002DE9F047DFF8BC8008F110072C4ED8F8BB -:105B3000105001F0A9FBD8F81C40AA68031B9A4238 -:105B40003ED814444FF00009D5E90032C8F81C4093 -:105B500013605A60C5F80090D8F81030B34201D1F4 -:105B600001F0A2FB89F31188D5E903312846984753 -:105B7000302383F311886B69002BD8D001F084FBAC -:105B80006A69A0EB040982464A450DD2022001F061 -:105B9000D9FB0022D8F81030B34208D1514628462C -:105BA000BDE8F047FFF728BF121A2244F2E712EBD4 -:105BB00009092946384638BF4A46FFF7EBFEB5E7E4 -:105BC000D8F81030B34208D01444C8F81C00211A89 -:105BD000A960BDE8F047FFF7F3BEBDE8F08700BF5E -:105BE000586900204869002038B501F04DFB054A8E -:105BF000D2E90845031B181945F10001C2E9080163 -:105C000038BD00BF4869002000207047FEE7000053 -:105C1000704700004FF0FF307047000002290CD0A1 -:105C2000032904D00129074818BF00207047032A20 -:105C300005D8054800EBC2007047044870470020B3 -:105C4000704700BF8C7E00084C230020407E000877 -:105C500070B59AB005460846144601A900F0C2F88E -:105C600001A8FBF7B5FE431C0022C6B25B0010463C -:105C7000C5E9003423700323023404F8013C01AB6E -:105C8000D1B202348E4201D81AB070BD13F8011B94 -:105C9000013204F8010C04F8021CF1E708B53023C6 -:105CA00083F311880348FFF729FA002383F311884F -:105CB00008BD00BFB86B002090F8803003F01F02D1 -:105CC000012A07D190F881200B2A03D10023C0E9D3 -:105CD0001D3315E003F06003202B08D1B0F88430A9 -:105CE0002BB990F88120212A03D81F2A04D8FFF766 -:105CF000E7B9222AEBD0FAE7034A42670722826714 -:105D0000C3670120704700BF4323002007B5052962 -:105D100017D8DFE801F0191603191920302383F38F -:105D20001188104A01210190FFF790FA0198022191 -:105D30000D4AFFF78BFA0D48FFF7ACF9002383F308 -:105D4000118803B05DF804FB302383F31188074802 -:105D5000FFF776F9F2E7302383F311880348FFF762 -:105D60008DF9EBE7E07D0008047E0008B86B0020A9 -:105D700038B50C4D0C4C2A460C4904F10800FFF7CD -:105D800067FF05F1CA0204F110000949FFF760FF3F -:105D900005F5CA7204F118000649BDE83840FFF75E -:105DA00057BF00BF908400204C230020C07D000816 -:105DB000CA7D0008D57D000870B5044608460D462A -:105DC000FBF706FEC6B22046013403780BB918462D -:105DD00070BD32462946FBF7E7FD0028F3D10120CC -:105DE000F6E700002DE9F04705460C46FBF7F0FD0D -:105DF0002B49C6B22846FFF7DFFF08B10A36F6B2D4 -:105E000028492846FFF7D8FF08B11036F6B2632EAE -:105E10000BD8DFF88C80DFF88C90234FDFF894A04C -:105E20002E7846B92670BDE8F08729462046BDE8A1 -:105E3000F04701F06BBE252E2ED1072241462846A1 -:105E4000FBF7B2FD70B9194B224603F1100153F86C -:105E5000040B8B4242F8040BF9D11B78073511343F -:105E60001370DDE7082249462846FBF79DFD98B9E7 -:105E7000A21C0F4B197802320909C95D02F8041CF3 -:105E800013F8011B01F00F015345C95D02F8031C13 -:105E9000F0D118340835C3E7013504F8016BBFE7CA -:105EA000AC7E0008D57D0008B47E00082A7B00087F -:105EB00000E8F11F0CE8F11FBFF34F8F044B1A6984 -:105EC0005107FCD1D3F810215207F8D1704700BF19 -:105ED0000020005208B50D4B1B78ABB9FFF7ECFF63 -:105EE0000B4BDA68D10704D50A4A5A6002F18832AE -:105EF0005A60D3F80C21D20706D5064AC3F804210C -:105F000002F18832C3F8042108BD00BFEE860020EC -:105F1000002000522301674508B5114B1B78F3B9E7 -:105F2000104B1A69510703D5DA6842F04002DA6073 -:105F3000D3F81021520705D5D3F80C2142F04002C6 -:105F4000C3F80C21FFF7B8FF064BDA6842F00102F4 -:105F5000DA60D3F80C2142F00102C3F80C2108BD2D -:105F6000EE860020002000520F289ABF00F58060C6 -:105F700040040020704700004FF4003070470000DC -:105F8000102070470F2808B50BD8FFF7EDFF00F57C -:105F900000330268013204D104308342F9D1012078 -:105FA00008BD0020FCE700000F2838B505463FD8A3 -:105FB000FFF782FF1F4CFFF78DFF4FF0FF330728DD -:105FC0006361C4F814311DD82361FFF775FF030224 -:105FD00043F02403E360E36843F08003E360236954 -:105FE0005A07FCD42846FFF767FFFFF7BDFF4FF4C1 -:105FF000003100F04BF92846FFF78EFFBDE838402E -:10600000FFF7C0BFC4F81031FFF756FFA0F1080337 -:106010001B0243F02403C4F80C31D4F80C3143F0D4 -:106020008003C4F80C31D4F810315B07FBD4D9E7F6 -:10603000002038BD002000522DE9F84F05460C46DF -:10604000104645EA0203DE0602D00020BDE8F88FC4 -:1060500020F01F00DFF8BCB0DFF8BCA0FFF73AFF6C -:1060600004EB0008444503D10120FFF755FFEDE79D -:1060700020222946204601F017FD10B92035203492 -:10608000F0E72B4605F120021F68791CDDD10433AF -:106090009A42F9D105F178431B481C4EB3F5801F95 -:1060A0001B4B38BF184603F1F80332BFD946D1461F -:1060B0001E46FFF701FF0760A5EB040C336804F1EF -:1060C0001C0143F002033360231FD9F8007017F05E -:1060D0000507FAD153F8042F8B424CF80320F4D172 -:1060E000BFF34F8FFFF7E8FE4FF0FF33202221462A -:1060F00003602846336823F00203336001F0D4FCC8 -:106100000028BBD03846B0E7142100520C200052C2 -:1061100014200052102000521021005210B5084CDB -:10612000237828B11BB9FFF7D5FE0123237010BDDA -:10613000002BFCD02070BDE81040FFF7EDBE00BF83 -:10614000EE86002038B5054D00240334696855F803 -:106150000C0B00F0ADF8122CF7D138BDC87E00084A -:10616000084601F099BC000038B5EFF311859DB9E0 -:10617000EFF30584C4F30804302334B183F31188AA -:10618000FFF732FD85F3118838BD83F31188FFF7DF -:106190002BFD84F3118838BDBDE83840FFF724BDDE -:1061A00010B5FFF7E1FF104CC008104A002340EA89 -:1061B0004170C908A0FB04ECA0FB020E1CEB000020 -:1061C000A1FB044CA1FB02125B41001943EB0C0044 -:1061D00011EB0E0142F10002411842F100000909E1 -:1061E00041EA007010BD00BFCFF753E3A59BC42068 -:1061F0000244074BD2B210B5904200D110BD441CEE -:1062000000B253F8200041F8040BE0B2F4E700BFFD -:10621000504000580E4B30B51C6F240405D41C6F41 -:106220001C671C6F44F400441C670A4C024423683A -:10623000D2B243F480732360074B904200D130BD4B -:10624000441C51F8045B00B243F82050E0B2F4E77C -:1062500000440258004802585040005807B5012237 -:1062600001A90020FFF7C4FF019803B05DF804FB0B -:1062700013B50446FFF7F2FFA04205D0012201A9A1 -:1062800000200194FFF7C6FF02B010BD0144BFF328 -:106290004F8F064B884204D3BFF34F8FBFF36F8FEE -:1062A0007047C3F85C022030F4E700BF00ED00E067 -:1062B0000144BFF34F8F064B884204D3BFF34F8F87 -:1062C000BFF36F8F7047C3F870022030F4E700BF50 -:1062D00000ED00E070470000074B45F255521A6090 -:1062E00002225A6040F6FF729A604CF6CC421A6065 -:1062F0000122024B1A70704700480058F4860020B3 -:10630000034B1B781BB1034B4AF6AA221A60704755 -:10631000F486002000480058034B1A681AB9034A53 -:10632000D2F8D0241A607047F0860020004002584E -:10633000024B4FF48032C3F8D0247047004002581B -:1063400008B5FFF7E9FF024B1868C0F3806008BD8D -:10635000F086002070B5BFF34F8FBFF36F8F1A4ADE -:106360000021C2F85012BFF34F8FBFF36F8F5369F4 -:1063700043F400335361BFF34F8FBFF36F8FC2F805 -:106380008410BFF34F8FD2F8803043F6E074C3F32C -:10639000C900C3F34E335B0103EA0406014646EA33 -:1063A00081750139C2F86052F9D2203B13F1200FF8 -:1063B000F2D1BFF34F8F536943F480335361BFF37E -:1063C0004F8FBFF36F8F70BD00ED00E0FEE7000060 -:1063D000214B2248224A70B5904237D3214BC11E2F -:1063E000DA1C121A22F003028B4238BF002200216D -:1063F000FBF7F6FA1C4A0023C2F88430BFF34F8F34 -:10640000D2F8803043F6E074C3F3C900C3F34E33CF -:106410005B0103EA0406014646EA81750139C2F8C8 -:106420006C52F9D2203B13F1200FF2D1BFF34F8F02 -:10643000BFF36F8FBFF34F8FBFF36F8F0023C2F88F -:106440005032BFF34F8FBFF36F8F70BD53F8041BF3 -:1064500040F8041BC0E700BF60810008C888002026 -:10646000C8880020C888002000ED00E0074BD3F862 -:10647000D81021EA0001C3F8D810D3F8002122EA8D -:106480000002C3F80021D3F80031704700440258DD -:1064900070B5D0E9244300224FF0FF359E6804EB2D -:1064A00042135101D3F80009002805DAD3F8000996 -:1064B00040F08040C3F80009D3F8000B002805DA4B -:1064C000D3F8000B40F08040C3F8000B0132631892 -:1064D0009642C3F80859C3F8085BE0D24FF00113A5 -:1064E000C4F81C3870BD0000890141F02001016131 -:1064F00003699B06FCD41220FFF7CEB910B50A4CF5 -:106500002046FEF781FE094BC4F89030084BC4F8D2 -:106510009430084C2046FEF777FE074BC4F89030C5 -:10652000064BC4F8943010BDF886002000000840E7 -:10653000347F00089487002000000440407F00085A -:1065400070B503780546012B5CD1434BD0F89040E1 -:10655000984258D1414B0E216520D3F8D82042F003 -:106560000062C3F8D820D3F8002142F00062C3F8DB -:106570000021D3F80021D3F8802042F00062C3F854 -:106580008020D3F8802022F00062C3F88020D3F866 -:106590008030FEF79FFA324BE360324BC4F800388C -:1065A0000023D5F89060C4F8003EC02323604FF468 -:1065B0000413A3633369002BFCDA01230C2033613D -:1065C000FFF76AF93369DB07FCD41220FFF764F99F -:1065D0003369002BFCDA00262846A660FFF758FF37 -:1065E0006B68C4F81068DB68C4F81468C4F81C68E9 -:1065F00083BB1D4BA3614FF0FF336361A36843F07E -:106600000103A36070BD194B9842C9D1134B4FF0E1 -:106610008060D3F8D82042F00072C3F8D820D3F8B5 -:10662000002142F00072C3F80021D3F80021D3F812 -:10663000802042F00072C3F88020D3F8802022F03E -:106640000072C3F88020D3F88030FFF70FFF0E21CF -:106650004D209EE7064BCDE7F88600200044025807 -:106660004014004003002002003C30C0948700200A -:10667000083C30C0F8B5D0F89040054600214FF0F6 -:1066800000662046FFF730FFD5F8941000234FF046 -:1066900001128F684FF0FF30C4F83438C4F81C285A -:1066A00004EB431201339F42C2F80069C2F8006B49 -:1066B000C2F80809C2F8080BF2D20B68D5F890208E -:1066C000C5F89830636210231361166916F010063E -:1066D000FBD11220FFF7E0F8D4F8003823F4FE6372 -:1066E000C4F80038A36943F4402343F01003A361C6 -:1066F0000923C4F81038C4F814380B4BEB604FF082 -:10670000C043C4F8103B094BC4F8003BC4F81069FF -:10671000C4F80039D5F8983003F1100243F480131F -:10672000C5F89820A362F8BD107F000840800010D3 -:10673000D0F8902090F88A10D2F8003823F4FE6345 -:1067400043EA0113C2F80038704700002DE9F8430E -:1067500000EB8103D0F890500C468046DA680FFABF -:1067600081F94801166806F00306731E022B05EB3B -:1067700041134FF0000194BFB604384EC3F8101B0C -:106780004FF0010104F1100398BF06F1805601FAA1 -:1067900003F3916998BF06F5004600293AD0578A5D -:1067A00004F15801374349016F50D5F81C180B43C9 -:1067B0000021C5F81C382B180127C3F81019A74071 -:1067C0005369611E9BB3138A928B9B08012A88BF71 -:1067D0005343D8F89820981842EA034301F1400245 -:1067E0002146C8F89800284605EB82025360FFF75F -:1067F0007BFE08EB8900C3681B8A43EA8453483454 -:106800001E4364012E51D5F81C381F43C5F81C786F -:10681000BDE8F88305EB4917D7F8001B21F40041C8 -:10682000C7F8001BD5F81C1821EA0303C0E704F1E0 -:106830003F030B4A2846214605EB83035A60FFF7C6 -:1068400053FE05EB4910D0F8003923F40043C0F89B -:106850000039D5F81C3823EA0707D7E70080001075 -:1068600000040002D0F894201268C0F89820FFF7C6 -:106870000FBE00005831D0F8903049015B5813F436 -:10688000004004D013F4001F0CBF02200120704709 -:106890004831D0F8903049015B5813F4004004D0DF -:1068A00013F4001F0CBF02200120704700EB810190 -:1068B000CB68196A0B6813604B685360704700001F -:1068C00000EB810330B5DD68AA691368D36019B99C -:1068D000402B84BF402313606B8A1468D0F890204B -:1068E0001C4402EB4110013C09B2B4FBF3F46343D6 -:1068F000033323F0030343EAC44343F0C043C0F827 -:10690000103B2B6803F00303012B0ED1D2F808389B -:1069100002EB411013F4807FD0F8003B14BF43F02A -:10692000805343F00053C0F8003B02EB4112D2F811 -:10693000003B43F00443C2F8003B30BD2DE9F04179 -:10694000D0F8906005460C4606EB4113D3F8087B5F -:106950003A07C3F8087B08D5D6F814381B0704D5C6 -:1069600000EB8103DB685B689847FA071FD5D6F810 -:106970001438DB071BD505EB8403D968CCB98B69C8 -:10698000488A5A68B2FBF0F600FB16228AB91868EA -:10699000DA6890420DD2121AC3E90024302383F33F -:1069A000118821462846FFF78BFF84F31188BDE844 -:1069B000F081012303FA04F26B8923EA02036B815D -:1069C000CB68002BF3D021462846BDE8F04118479C -:1069D00000EB81034A0170B5DD68D0F890306C6936 -:1069E0002668E66056BB1A444FF40020C2F810092E -:1069F0002A6802F00302012A0AB20ED1D3F808086D -:106A000003EB421410F4807FD4F8000914BF40F067 -:106A1000805040F00050C4F8000903EB4212D2F855 -:106A2000000940F00440C2F800090122D3F83408FC -:106A300002FA01F10143C3F8341870BD19B9402EB0 -:106A400084BF4020206020681A442E8A8419013CAB -:106A5000B4FBF6F440EAC44040F00050C6E7000042 -:106A60002DE9F843D0F8906005460C464F0106EB3F -:106A70004113D3F8088918F0010FC3F808891CD016 -:106A8000D6F81038DB0718D500EB8103D3F80CC01B -:106A9000DCF81430D3F800E0DA68964530D2A2EB87 -:106AA0000E024FF000091A60C3F80490302383F3FC -:106AB0001188FFF78DFF89F3118818F0800F1DD022 -:106AC000D6F834380126A640334217D005EB8403AC -:106AD0000134D5F89050D3F80CC0E4B22F44DCF860 -:106AE000142005EB0434D2F800E05168714514D34A -:106AF000D5F8343823EA0606C5F83468BDE8F883CB -:106B0000012303FA01F2038923EA02030381DCF87B -:106B10000830002BD1D09847CFE7AEEB0103BCF88B -:106B20001000834228BF0346D7F8180980B2B3EBA0 -:106B3000800FE3D89068A0F1040959F8048FC4F8D5 -:106B40000080A0EB09089844B8F1040FF5D8184468 -:106B50000B4490605360C8E72DE9F84FD0F890508F -:106B600004466E69AB691E4016F480586E6103D00E -:106B7000BDE8F84FFEF7B8BB002E12DAD5F8003E9C -:106B80009B0705D0D5F8003E23F00303C5F8003E6F -:106B9000D5F80438204623F00103C5F80438FEF781 -:106BA000D1FB370505D52046FFF772FC2046FEF7DE -:106BB000B7FBB0040CD5D5F8083813F0060FEB6816 -:106BC00023F470530CBF43F4105343F4A053EB6011 -:106BD00031071BD56368DB681BB9AB6923F0080379 -:106BE000AB612378052B0CD1D5F8003E9A0705D070 -:106BF000D5F8003E23F00303C5F8003E2046FEF71B -:106C0000A1FB6368DB680BB120469847F30200F1F3 -:106C1000BA80B70226D5D4F8909000274FF0010A29 -:106C200009EB4712D2F8003B03F44023B3F5802F61 -:106C300011D1D2F8003B002B0DDA62890AFA07F372 -:106C400022EA0303638104EB8703DB68DB6813B18B -:106C50003946204698470137D4F89430FFB29B68F4 -:106C60009F42DDD9F00619D5D4F89000026AC2F32C -:106C70000A1702F00F0302F4F012B2F5802F00F0B1 -:106C8000CA80B2F5402F09D104EB8303002200F53E -:106C90008050DB681B6A974240F0B0803003D5F823 -:106CA000185835D5E90303D500212046FFF746FEE5 -:106CB000AA0303D501212046FFF740FE6B0303D54D -:106CC00002212046FFF73AFE2F0303D50321204679 -:106CD000FFF734FEE80203D504212046FFF72EFE1D -:106CE000A90203D505212046FFF728FE6A0203D535 -:106CF00006212046FFF722FE2B0203D5072120465E -:106D0000FFF71CFEEF0103D508212046FFF716FE12 -:106D1000700340F1A780E90703D500212046FFF763 -:106D20009FFEAA0703D501212046FFF799FE6B07B6 -:106D300003D502212046FFF793FE2F0703D5032139 -:106D40002046FFF78DFEEE0603D504212046FFF70F -:106D500087FEA80603D505212046FFF781FE6906B8 -:106D600003D506212046FFF77BFE2A0603D507211F -:106D70002046FFF775FEEB0574D520460821BDE8D7 -:106D8000F84FFFF76DBED4F890904FF0000B4FF026 -:106D9000010AD4F894305FFA8BF79B689F423FF664 -:106DA00038AF09EB4713D3F8002902F44022B2F5BB -:106DB000802F20D1D3F80029002A1CDAD3F800292B -:106DC00042F09042C3F80029D3F80029002AFBDBE7 -:106DD0003946D4F89000FFF787FB22890AFA07F3B7 -:106DE00022EA0303238104EB8703DB689B6813B16A -:106DF0003946204698470BF1010BCAE7910701D1AC -:106E0000D0F80080072A02F101029CBF03F8018B31 -:106E10004FEA18283FE704EB830300F58050DA6857 -:106E2000D2F818C0DCF80820DCE9001CA1EB0C0C3F -:106E300000218F4208D1DB689B699A683A449A60C6 -:106E40005A683A445A6029E711F0030F01D1D0F88B -:106E500000808C4501F1010184BF02F8018B4FEAEB -:106E60001828E6E7BDE8F88F08B50348FFF774FE79 -:106E7000BDE80840FDF7BEBAF886002008B5034813 -:106E8000FFF76AFEBDE80840FDF7B4BA948700201A -:106E9000D0F8903003EB4111D1F8003B43F40013DC -:106EA000C1F8003B70470000D0F8903003EB41116F -:106EB000D1F8003943F40013C1F8003970470000DD -:106EC000D0F8903003EB4111D1F8003B23F40013CC -:106ED000C1F8003B70470000D0F8903003EB41113F -:106EE000D1F8003923F40013C1F8003970470000CD -:106EF00030B50433039C0172002104FB0325C160FB -:106F0000C0E90653049B0363059BC0E90000C0E988 -:106F10000422C0E90842C0E90A11436330BD000001 -:106F20000022416AC260C0E90411C0E90A226FF080 -:106F30000101FEF721BD0000D0E90432934201D1E6 -:106F4000C2680AB9181D70470020704703691960AC -:106F50000021C2680132C260C2691344826993424F -:106F6000036124BF436A0361FEF7FABC38B50446E7 -:106F70000D46E3683BB162690020131D1268A362ED -:106F80001344E36207E0237A33B929462046FEF72B -:106F9000D7FC0028EDDA38BD6FF00100FBE70000F8 -:106FA000C368C269013BC360436913448269934269 -:106FB000436124BF436A436100238362036B03B1CF -:106FC0001847704770B53023044683F31188866AEA -:106FD0003EB9FFF7CBFF054618B186F31188284666 -:106FE00070BDA36AE26A13F8015B9342A36202D305 -:106FF0002046FFF7D5FF002383F31188EFE7000059 -:107000002DE9F84F04460E46174698464FF03009D2 -:1070100089F311880025AA46D4F828B0BBF1000FE7 -:1070200009D141462046FFF7A1FF20B18BF311881B -:107030002846BDE8F88FD4E90A12A7EB050B521ACF -:10704000934528BF9346BBF1400F1BD9334601F14E -:10705000400251F8040B914243F8040BF9D1A36AA2 -:10706000403640354033A362D4E90A239A4202D322 -:107070002046FFF795FF8AF31188BD42D8D289F3E5 -:107080001188C9E730465A46FAF784FCA36A5E4481 -:107090005D445B44A362E7E710B5029C04330172D0 -:1070A00003FB0421C460C0E906130023C0E90A33CE -:1070B000039B0363049BC0E90000C0E90422C0E90C -:1070C0000842436310BD0000026A6FF00101C26014 -:1070D000426AC0E904220022C0E90A22FEF74CBC41 -:1070E000D0E904239A4201D1C26822B9184650F867 -:1070F000043B0B60704700231846FAE7C368002181 -:10710000C2690133C3604369134482699342436196 -:1071100024BF436A4361FEF723BC000038B5044630 -:107120000D46E3683BB1236900201A1DA262E269A3 -:107130001344E36207E0237A33B929462046FEF779 -:10714000FFFB0028EDDA38BD6FF00100FBE700001F -:1071500003691960C268013AC260C2691344826956 -:107160009342036124BF436A036100238362036B7C -:1071700003B118477047000070B530230D46044630 -:10718000114683F31188866A2EB9FFF7C7FF10B145 -:1071900086F3118870BDA36A1D70A36AE26A013389 -:1071A0009342A36204D3E16920460439FFF7D0FF7C -:1071B000002080F31188EDE72DE9F84F04460D46D5 -:1071C000904699464FF0300A8AF311880026B3465C -:1071D000A76A4FB949462046FFF7A0FF20B187F3C1 -:1071E00011883046BDE8F88FD4E90A073A1AA8EBAF -:1071F0000607974228BF1746402F1BD905F14003C9 -:1072000055F8042B9D4240F8042BF9D1A36A40366F -:107210004033A362D4E90A239A4204D3E1692046A9 -:107220000439FFF795FF8BF311884645D9D28AF3CD -:107230001188CDE729463A46FAF7ACFBA36A3D44EC -:107240003E443B44A362E5E7D0E904239A4217D1C8 -:10725000C3689BB1836A8BB1043B9B1A0ED0136049 -:10726000C368013BC360C3691A4483699A420261DF -:1072700024BF436A036100238362012318467047D9 -:107280000023FBE700F024B9014B586A704700BFA8 -:10729000000C0040034B002258631A610222DA609E -:1072A000704700BF000C0040014B0022DA607047BD -:1072B000000C0040014B5863704700BF000C0040B9 -:1072C000FEE7000070B51B4B0025044686B05860F1 -:1072D0000E4685620163FDF765F804F11003A560B1 -:1072E000E562C4E904334FF0FF33C4E90044C4E964 -:1072F0000635FFF7C9FF2B46024604F1340120464C -:10730000C4E9082380230C4A2565FEF7CFFA012340 -:107310000A4AE06000920375684672680192B2689A -:10732000CDE90223064BCDE90435FEF7E7FA06B0B6 -:1073300070BD00BFB06B00204C7F0008517F00087B -:10734000C1720008024AD36A1843D062704700BF76 -:10735000486900204B6843608B688360CB68C360DA -:107360000B6943614B6903628B6943620B6803607D -:107370007047000008B53C4B40F2FF713B48D3F822 -:1073800088200A43C3F88820D3F8882022F4FF62BB -:1073900022F00702C3F88820D3F88820D3F8E02031 -:1073A0000A43C3F8E020D3F808210A43C3F80821B0 -:1073B0002F4AD3F808311146FFF7CCFF00F5806063 -:1073C00002F11C01FFF7C6FF00F5806002F13801F1 -:1073D000FFF7C0FF00F5806002F15401FFF7BAFF2C -:1073E00000F5806002F17001FFF7B4FF00F58060E6 -:1073F00002F18C01FFF7AEFF00F5806002F1A801F9 -:10740000FFF7A8FF00F5806002F1C401FFF7A2FFBB -:1074100000F5806002F1E001FFF79CFF00F580605D -:1074200002F1FC01FFF796FF02F58C7100F5806018 -:10743000FFF790FF00F018F90E4BD3F8902242F0BE -:107440000102C3F89022D3F8942242F00102C3F85B -:1074500094220522C3F898204FF06052C3F89C2074 -:10746000054AC3F8A02008BD004402580000025895 -:10747000587F000800ED00E01F00080308B500F089 -:10748000D5FAFEF7E1F90F4BD3F8DC2042F04002C9 -:10749000C3F8DC20D3F8042122F04002C3F8042111 -:1074A000D3F80431084B1A6842F008021A601A68CF -:1074B00042F004021A60FEF72FFFBDE80840FEF715 -:1074C00057BC00BF00440258001802487047000033 -:1074D000114BD3F8E82042F00802C3F8E820D3F8B3 -:1074E000102142F00802C3F810210C4AD3F81031E1 -:1074F000D36B43F00803D363C722094B9A624FF062 -:10750000FF32DA6200229A615A63DA605A6001221D -:107510005A611A60704700BF004402580010005CB6 -:10752000000C0040094A08B51169D3680B40D9B274 -:107530009B076FEA0101116107D5302383F311889E -:10754000FEF7A8F9002383F3118808BD000C004062 -:10755000064BD3F8DC200243C3F8DC20D3F8042127 -:107560001043C3F80401D3F80431704700440258B3 -:1075700008B53C4B4FF0FF31D3F8802062F0004259 -:10758000C3F88020D3F8802002F00042C3F88020A6 -:10759000D3F88020D3F88420C3F88410D3F8842053 -:1075A0000022C3F88420D3F88400D86F40F0FF4055 -:1075B00040F4FF0040F4DF4040F07F00D867D86F10 -:1075C00020F0FF4020F4FF0020F4DF4020F07F0097 -:1075D000D867D86FD3F888006FEA40506FEA5050F0 -:1075E000C3F88800D3F88800C0F30A00C3F8880005 -:1075F000D3F88800D3F89000C3F89010D3F8900027 -:10760000C3F89020D3F89000D3F89400C3F89410F6 -:10761000D3F89400C3F89420D3F89400D3F89800DA -:10762000C3F89810D3F89800C3F89820D3F89800BE -:10763000D3F88C00C3F88C10D3F88C00C3F88C20DE -:10764000D3F88C00D3F89C00C3F89C10D3F89C109E -:10765000C3F89C20D3F89C30FDF74EF8BDE80840F5 -:1076600000F0B8B90044025808B50122534BC3F8E2 -:107670000821534BD3F8F42042F00202C3F8F4205F -:10768000D3F81C2142F00202C3F81C210222D3F8D5 -:107690001C314C4BDA605A689104FCD54A4A1A6096 -:1076A00001229A60494ADA6000221A614FF440428E -:1076B0009A61444B9A699204FCD51A6842F480722C -:1076C0001A603F4B1A6F12F4407F04D04FF480329F -:1076D0001A6700221A671A6842F001021A60384BD2 -:1076E0001A685007FCD500221A611A6912F0380294 -:1076F000FBD1012119604FF0804159605A67344A2B -:10770000DA62344A1A611A6842F480321A602C4BE9 -:107710001A689103FCD51A6842F480521A601A68FC -:107720009204FCD52C4A2D499A6200225A631963AF -:1077300001F57C01DA6301F5E77199635A64284A1F -:107740001A64284ADA621A6842F0A8521A601C4B7E -:107750001A6802F02852B2F1285FF9D148229A61E2 -:107760004FF48862DA6140221A621F4ADA641F4AC3 -:107770001A651F4A5A651F4A9A6532231E4A1360CA -:10778000136803F00F03022BFAD10D4A136943F07B -:1077900003031361136903F03803182BFAD14FF078 -:1077A0000050FFF7D5FE4FF08040FFF7D1FE4FF0BD -:1077B0000040BDE80840FFF7CBBE00BF008000518D -:1077C000004402580048025800C000F002000001C6 -:1077D0000000FF0100889008322060006302090168 -:1077E000470E0508DD0BBF0120000020000001103E -:1077F0000910E00000010110002000524FF0B042DB -:1078000008B5D2F8883003F00103C2F8883023B1FC -:10781000044A13680BB150689847BDE80840FCF76C -:10782000E9BD00BF488800204FF0B04208B5D2F84B -:10783000883003F00203C2F8883023B1044A936809 -:107840000BB1D0689847BDE80840FCF7D3BD00BF36 -:10785000488800204FF0B04208B5D2F8883003F0D5 -:107860000403C2F8883023B1044A13690BB150698C -:107870009847BDE80840FCF7BDBD00BF4888002020 -:107880004FF0B04208B5D2F8883003F00803C2F8D0 -:10789000883023B1044A93690BB1D0699847BDE899 -:1078A0000840FCF7A7BD00BF488800204FF0B04259 -:1078B00008B5D2F8883003F01003C2F8883023B13D -:1078C000044A136A0BB1506A9847BDE80840FCF7B8 -:1078D00091BD00BF488800204FF0B04310B5D3F8E9 -:1078E000884004F47872C3F88820A30604D5124AAD -:1078F000936A0BB1D06A9847600604D50E4A136BA1 -:107900000BB1506B9847210604D50B4A936B0BB112 -:10791000D06B9847E20504D5074A136C0BB1506C45 -:107920009847A30504D5044A936C0BB1D06C9847D3 -:10793000BDE81040FCF75EBD488800204FF0B04322 -:1079400010B5D3F8884004F47C42C3F8882062055F -:1079500004D5164A136D0BB1506D9847230504D515 -:10796000124A936D0BB1D06D9847E00404D50F4ACD -:10797000136E0BB1506E9847A10404D50B4A936E59 -:107980000BB1D06E9847620404D5084A136F0BB14F -:10799000506F9847230404D5044A936F0BB1D06FFE -:1079A0009847BDE81040FCF725BD00BF488800207F -:1079B00008B50348FDF708F8BDE80840FCF71ABD14 -:1079C000D864002008B5FFF7ADFDBDE80840FCF71E -:1079D00011BD0000062108B50846FDF77BF8062119 -:1079E0000720FDF777F806210820FDF773F8062138 -:1079F0000920FDF76FF806210A20FDF76BF8062134 -:107A00001720FDF767F806212820FDF763F8092104 -:107A10007A20FDF75FF807213220FDF75BF80C2193 -:107A20005220BDE80840FDF755B8000008B5FFF743 -:107A30009FFD00F00DF8FDF70BFAFDF7E3FBFDF7F6 -:107A4000B5FAFFF743FDBDE80840FFF71BBC000097 -:107A50000023054A19460133102BC2E9001102F137 -:107A60000802F8D1704700BF488800200B46014645 -:107A7000184600F003B8000000F00EB810B5054C31 -:107A800013462CB10A4601460220AFF3008010BD18 -:107A90002046FCE700000000024B01461868FEF794 -:107AA0005FBB00BF6C23002010B501390244904237 -:107AB00001D1002005E0037811F8014FA34201D065 -:107AC000181B10BD0130F2E72DE9F041A3B1C91A2E -:107AD00017780144044603F1FF3C8C42204601D94B -:107AE000002009E00578BD4204F10104F5D10CEB5A -:107AF0000405D618A54201D1BDE8F08115F8018D25 -:107B000016F801EDF045F5D0E7E70000034611F85F -:107B1000012B03F8012B002AF9D170476F72672EF1 -:107B20006172647570696C6F742E437562654F7213 -:107B3000616E67652D7065726970680053544D33CE -:107B40003248373F3F3F0053544D33324837337844 -:107B50002F3732780053544D3332483734332F3770 -:107B600035332F373530000001105A00031059000B -:107B7000012058000320560040A2E4F164689106F9 -:107B80000041A3E5F26569920700000043414E46BB -:107B90004449666163653A204D657373616765208A -:107BA00052414D204F766572666C6F772100000060 -:107BB0004261642043414E496661636520696E6499 -:107BC00065782E00000100000001FF0000A00040C9 -:107BD00000A400400000000000000000C92A0008C6 -:107BE0005123000851320008C1230008CD230008AA -:107BF000E527000845250008892300088D23000893 -:107C0000652300084D230008A12700087123000800 -:107C1000B93300087D2300087527000801040E050C -:107C2000054B02020E05054B04010E05054B05012F -:107C30000B04044B08010603034600001000024039 -:107C4000080002400008024000000B00280002402B -:107C5000080002400408024006010C0040000240F7 -:107C6000080002400808024010020D0058000240BF -:107C7000080002400C08024016030E00700002408B -:107C80000C0002401008024000040F00880002406F -:107C90000C0002401408024006051000A00002403B -:107CA0000C0002401808024010061100B800024003 -:107CB0000C0002401C08024016072F00100402406E -:107CC000080402402008024000083800280402404E -:107CD000080402402408024006093900400402401A -:107CE0000804024028080240100A3A0058040240E2 -:107CF000080402402C080240160B3B0070040240AE -:107D00000C04024030080240000C3C008804024091 -:107D10000C04024034080240060D4400A004024056 -:107D20000C04024038080240100E4500B80402401E -:107D30000C0402403C080240160F4600009600006A -:107D40000000000000000000000000000000000033 -:107D50000000000000000000114E0008FD4D00086A -:107D6000394E0008254E0008314E00081D4E00080F -:107D7000094E0008F54D0008454E000800000000BF -:107D8000294F0008154F0008514F00083D4F0008CB -:107D9000494F0008354F0008214F00080D4F0008DB -:107DA0005D4F00080000000001000000000000001E -:107DB00063300000B07D0008A0690020B06B002097 -:107DC0004172647550696C6F740025424F41524492 -:107DD000252D424C002553455249414C25000000B9 -:107DE000020000000000000049510008B9510008DD -:107DF00040004000608400207084002002000000E9 -:107E00000000000003000000000000000152000814 -:107E1000000000001000000080840020000000002E -:107E20000100000000000000F886002001010200AF -:107E30000D5D00081D5C0008B95C00089D5C000831 -:107E400043000000487E000809024300020100C010 -:107E5000320904000001020201000524001001059E -:107E60002401000104240202052406000107058202 -:107E7000030800FF09040100020A000000070501D1 -:107E800002400000070581024000000012000000CF -:107E9000947E0008120110010200004009124157AF -:107EA00000020102030100000403090425424F41BE -:107EB0005244250030313233343536373839414277 -:107EC00043444546000000000001002000FF01007F -:107ED0000200000000000030000004000800000064 -:107EE000000000240000080004000000000400005E -:107EF00000FC0000020000000000043000800000D0 -:107F0000080000000000003800000100010000002F -:107F1000000000005D53000815560008C156000817 -:107F20004000400030880020308800200100000020 -:107F30004088002080000000400100000800000090 -:107F40000001000000100000080000006D61696E73 -:107F50000069646C650000000000802A00000000D9 -:107F6000AAAAAAAA00000024FFFF00000000000047 -:107F700000A00A000021000200000000AAAAAAAA8C -:107F800000000000FFFF00000000000900000900E1 -:107F90001400005400000000AAAAAAAA1400005469 -:107FA000FFFF000000000000000000000A40100079 -:107FB00000000000AAAA8AAA00401000FFFF0000EB -:107FC0009900000000000000008102000000000095 -:107FD000AAAAAAAA00410100FFFF00000000007049 -:107FE000070000000000000000000000AAAAAAAAE2 -:107FF00000000000FFFF0000000000000000000083 -:108000000000000000000000AAAAAAAA00000000C8 -:10801000FFFF000000000000000000000000000062 -:1080200000000000AAAAAAAA00000000FFFF0000AA -:108030000000000000000000000000000000000040 -:10804000AAAAAAAA00000000FFFF0000000000008A -:10805000000000000000000000000000AAAAAAAA78 -:1080600000000000FFFF0000000000000000000012 -:108070000000000000000000AAAAAAAA0000000058 -:10808000FFFF0000000000000000000000000000F2 -:10809000780500000000000000001E000000000045 -:1080A000FE2A0100D2040000FF000000B86B00208F -:1080B000D8640020000000003C7B0008830400001E -:1080C000477B000850040000557B00080096000024 -:1080D00000000800960000000008000004000000F6 -:1080E000A87E000800000000000000000000000062 -:1080F00000000000000000000000000070230020CD -:10810000000000000000000000000000000000006F -:10811000000000000000000000000000000000005F -:10812000000000000000000000000000000000004F -:10813000000000000000000000000000000000003F -:10814000000000000000000000000000000000002F -:10815000000000000000000000000000000000001F +:101B300055F82600BDE8704003F0E0B970BD00BF65 +:101B4000DC6300201C230020586B0020C4630020AD +:101B5000F8B571B6002301201A46194602F0A6FE18 +:101B60000446802004F0E4FB002845D00025234AE9 +:101B700080274FF4D06C3D26136923BBD2F8103177 +:101B80000BBB236805F1006199602368D860236866 +:101B90005F602368C3F800C021680B6843F001034D +:101BA0000B6021680B6823F01E030B6021680B6833 +:101BB000DB07FCD4237B8035616806FA03F3B5F5B7 +:101BC000001F0B60D8D1204602F0B0FEB5F5001F13 +:101BD00011D000240A4E0B4D012004F00BFB33887A +:101BE000A34205D928682044013404F049FAF6E7F5 +:101BF000002004F0FFFA61B6F8BD00BF00200052DB +:101C0000DE630020986300202DE9F8430D4604466A +:101C100000219046284640F27912FFF7E1FE234664 +:101C200020220021284604F1220702F073F9231D27 +:101C3000022220212846C02602F06CF9631D0322EF +:101C40002221284602F066F9A31D032225212846F9 +:101C500002F060F904F1080310222821284602F05E +:101C600059F904F1100308223821284602F052F9EC +:101C700004F1110308224021284602F04BF904F137 +:101C8000120308224821284602F044F904F1140303 +:101C900020225021284602F03DF904F11803402289 +:101CA0007021284602F036F904F120030822B02101 +:101CB000284602F02FF904F121030822B821284612 +:101CC00002F028F9314608363B46082228460137FB +:101CD00002F020F9B6F5A07FF4D1314604F13203C9 +:101CE0000822284602F016F9002794F8326004F121 +:101CF0003309F900BE4201F5A4711FD8F70007F5BA +:101D0000A476B8F1000F08D1314607F24F1604F55A +:101D100099730722284602F0FDF894F83201B04684 +:101D2000502828BF5020074604EB0009A1450DD1DB +:101D300006EBC7000730C008BDE8F88309EB0703CE +:101D400008222846013702F0E5F8D2E704F23313FF +:101D500041460822284608F10808013402F0DAF862 +:101D6000E4E7000013B5044608460021202223467C +:101D700001900160C0F8031002F0CCF8231D019817 +:101D80000222202102F0C6F8631D019803222221BD +:101D900002F0C0F8A31D01980322252102F0BAF831 +:101DA000019804F108031022282102F0B3F807205B +:101DB00002B010BDF7B5047F05460E462CB1838AEC +:101DC000122B02D9012003B0F0BD002307222846C0 +:101DD0000096194601F062FF731C0122072100934F +:101DE0002846002301F05AFFD4B9B31C052208216C +:101DF0002846009323460D2401F050FFB378102BA2 +:101E0000E0D83746BB1BB278934210D307342B7F00 +:101E1000A88AE408B3B9844294BF00200120D2E725 +:101E2000AB8A0824DB00083BDB08B370E6E7FB1C49 +:101E3000214608222846009300230834013701F088 +:101E40002DFFDFE7201A18BF0120BCE7F7B5047F9C +:101E500005460E462CB1838ACA2B02D9012003B055 +:101E6000F0BD0023082228460096194601F016FF0F +:101E7000731CD4B908220093234610241146284627 +:101E800001F00CFF7378C82BE8D801235F1C72782F +:101E9000013B934210D307342B7FA88AE408B3B9DF +:101EA000844294BF00200120D9E7AB8A0824DB00DC +:101EB000083BDB087370E5E7F31921460822284642 +:101EC0000093002301F0EAFE08343B46DEE7201AC7 +:101ED00018BF0120C3E700002DE9F8430D46044672 +:101EE0001646002181222846FFF77AFD2346082264 +:101EF0000021284602F00EF8C6B90F26631C0722FF +:101F00000821284602F006F894F90130B0466778B7 +:101F1000002BB8BF7F2704EB07094C4508D10736D3 +:101F2000082010FB0760C008BDE8F8830826EBE72F +:101F3000A31C41460822284608F10808013401F094 +:101F4000E9FFEAE72DE9F0410D4604461646002177 +:101F5000CE222846FFF744FD2346282200212846AA +:101F600001F0D8FFBEB9302604F108030822282169 +:101F7000284601F0CFFF14F8080F0027C82828BF13 +:101F8000C8208046B84506EBC70106D806EBC80056 +:101F9000C008BDE8F0812826EDE701370822284671 +:101FA000E31901F0B7FFEDE7F7B5047F05460E46EC +:101FB00034B1838AB3F5827F02D9012003B0F0BD2A +:101FC0000123102200212846009601F067FEDCB9AB +:101FD000B31C09221021284600932346192401F03E +:101FE0005DFE7388B3F5807FE7D83746BB1B7288E8 +:101FF000934210D307342B7FA88AE408B3B98442F4 +:1020000094BF00200120D9E7AB8A1024DB00103BED +:10201000DB087380E5E73B1D214608222846009334 +:1020200000230834013701F039FEDFE7201A18BF1A +:102030000120C3E730B50A44084D91420DD011F894 +:10204000013B5840082340F30004013B2C4013F0AF +:10205000FF0384EA5000F6D1EFE730BD2083B8EDEE +:10206000F7B5364A6B46106851686A4603C30823C1 +:102070003349344805F084FF044690BB0A25324AB0 +:102080006B46106851686A4603C308232F492D48E0 +:1020900005F076FF0446002847D00369B3F5F01F2A +:1020A00043D8B0F86620B2F5AF6F3ED1284A02445B +:1020B00002F15C018B4238D35C3B224900209E1A1E +:1020C000FFF7B8FF04F16401074632460020FFF72E +:1020D000B1FFA3689F4228D1E368984208BF00255A +:1020E00023E00369B3F5F01F26D8428BB2F5AF6F3A +:1020F00020D1174A024402F110018B4218D3103B41 +:10210000104900209D1AFFF795FF04F118010646BB +:102110002A460020FFF78EFFA3689E4202D1E368A3 +:10212000984201D00D25AAE70025284603B0F0BD4E +:102130001025A4E70C25A2E70B25A0E730800008B6 +:10214000DCFF1D00000002083980000890FF1D0020 +:102150000800FEF710B5037C044613B9006804F0CC +:102160001BF9204610BD00000023BFF35B8FC36046 +:10217000BFF35B8FBFF35B8F8360BFF35B8F7047F1 +:10218000BFF35B8F0068BFF35B8F704770B5054688 +:102190000C30FFF7F5FF044605F108063046FFF75F +:1021A000EFFFA04206D96D683046FFF7E9FF2544EE +:1021B000281A70BD3046FFF7E3FF201AF9E7000048 +:1021C00070B505464068A0B105F10C0605F10800A0 +:1021D000FFF7D6FF04463046FFF7D2FF844204F1F2 +:1021E000FF34304694BF6D680025FFF7C9FF2C44CB +:1021F000201A70BD38B50C460546FFF7C7FFA04250 +:1022000010D305F10800FFF7BBFF04446868BFF373 +:102210005B8FB4FBF0F100FB11440120AC60BFF315 +:102220005B8F38BD0020FCE72DE9F04114460746DE +:102230000D46FFF7C5FF844228BF0446D4B1B84617 +:1022400058F80C6B4046FFF79BFF3044286040462F +:102250007E68FFF795FF331A9C4203D801206C601B +:10226000BDE8F081A41B6B603B682044AB60E86074 +:102270000220F5E72046F3E738B50C460546FFF7A0 +:102280009FFFA04210D305F10C00FFF779FF044433 +:102290006868BFF35B8FB4FBF0F100FB11440120D1 +:1022A000EC60BFF35B8F38BD0020FCE72DE9FF41F8 +:1022B0008846694607466C46FFF7B6FF002506B21A +:1022C00004EBC606B4420AD0626808EB0501206838 +:1022D0000834FFF75FFB54F8043C1D44F2E729463D +:1022E0003846FFF7C9FF284604B0BDE8F08100007A +:1022F000F8B505460C300F46FFF742FF05F108061A +:1023000004463046FFF73CFFA042304688BF6C6869 +:10231000FFF736FF201A386020B12C683046FFF7EF +:102320002FFF2044F8BD000073B5144606460D4645 +:10233000FFF72CFF8442019028BF0446DCB101A9BD +:102340003046FFF7D5FF019B33B93268C5E9023348 +:10235000C5E9002401200CE09C42286038BF0194AC +:10236000019884426860F5D93368241A0220AB6072 +:10237000EC6002B070BD2046FBE700002DE9FF4194 +:102380000F4669466C46FFF7CFFF00B2002604EB0C +:10239000C005AC4209D0D4F80480B81954F8081B21 +:1023A00042464644FFF7F6FAF3E7304604B0BDE88C +:1023B000F081000038B50546FFF7E0FF044601460E +:1023C0002846FFF717FF204638BD000008B103F08C +:1023D000E3BF70477047000010B4134602681468EA +:1023E0000022A4465DF8044B6047000000F58050D1 +:1023F00090F859047047000000F5805090F852049E +:102400007047000000F5805090F9580470470000B4 +:102410004E207047302383F3118800F58052D2F8A4 +:102420009C34D2F898041844D2F894341844D2F862 +:102430007C341844D2F88C341844D2F888341844C8 +:10244000002383F31188704700F58050C0F85414BE +:10245000012070472DE9F04F0C4600F5805185B002 +:102460001F4691F8523405469046BDF838909BB10E +:10247000D1F878340133C1F878342368980006D451 +:10248000237B082B0BD9627B0AB10F2B07D9D1F81C +:102490007C340133C1F87C344FF0FF3010E030233E +:1024A00083F31188EB6AD3F8C42012F4001B0AD01E +:1024B000D1F8803400200133C1F8803480F31188D2 +:1024C00005B0BDE8F08F20684822D3F8C43000285A +:1024D000C3F3044A6B6AB4BF40F08040800412FB2F +:1024E0000A334FEA4A161860226852004FEA0A621D +:1024F00044BF40F000501860207B42EA00425A601E +:10250000607B10B342F440125A60D1F8B02401321B +:10251000C1F8B024AA1902F58352117B41F02001C1 +:102520001173207B039300F0E3FF0330039B8010C3 +:102530005FFA8BF20BF1010B82420DDA04EB8201A0 +:1025400003EB820249689160F2E7AA1902F583520F +:10255000117B60F34511E3E70122EB6A05EB4A11B9 +:1025600002FA0AF201F58251C3F8D020AB191831F2 +:1025700004F10C0203F58253C3E90487234653F8A0 +:10258000040B934241F8040BF9D11B882E440B80B5 +:1025900041F2680346F803A006F5805609F00303EC +:1025A00096F86C2043F0100322F01F02134386F8C4 +:1025B0006C30002383F3118842463B46214628466F +:1025C000CDF8009000F05AFF012079E72DE9F0479F +:1025D00000F58056044696F85254002D40F00381D1 +:1025E000037C032B40F0948028462B462F465FFA4D +:1025F00080FC944510DA01EBCC0E51F83CC0BCF1E4 +:10260000000F04DBDEF804C0BCF1000F02DB013771 +:102610000130ECE70133FBE7302080F31188E06AFA +:10262000F3B9D0F8803043F00203C0F880304E2375 +:10263000E06A002F6FD1D0F8803043F00103C0F87A +:1026400080306A4B6A4A1B6803F1805303F52C53B0 +:102650009B009342A36240F2B080664800F0E6FE21 +:102660004D2B42D8DFF884814FEA034EDFF8889182 +:10267000D8F800C04EEA8C0EC0F884E00CF180500F +:1026800000F52C508000606103EB0C00D4F82CC0E6 +:10269000C3F14E03C8F80000DCF8800040F03000C1 +:1026A000CCF880004FF0000CD4F81480E6465FFAB6 +:1026B0008CF08242BCDD01EBC00A51F830000028EA +:1026C00010DBDAF804A0BAF1000F0BDA09EA0040D7 +:1026D0000AF07F0A40EA0A0040F0084048F82E005D +:1026E0000EF1010E0CF1010CE1E7836923F0010307 +:1026F000836100F0A1FE0646E36A9B69D90704D511 +:1027000000F09AFE831BFA2BF6D9002383F311887D +:102710002846BDE8F087B7EB530F3DD2DFF8CCE099 +:102720004FEA074CDEF800304CEA830CC0F888C052 +:1027300003F1805003EB4703002700F52C50CEF83F +:102740000030BC468000A061E06AD0F8803043F0E1 +:102750000C03C0F88030D4F818E0FBB29A427FF73F +:1027600070AF51F8330001EBC3080028D8F80430EB +:1027700001DB002B0EDB20F0604023F0604340F0D3 +:10278000005043F000434EF83C000EEBCC000CF13F +:10279000010C43600137E0E7836923F001038361A3 +:1027A00000F04AFE0646E36A9B69DA07ADD500F001 +:1027B00043FE831BFA2BF6D9A7E7E26A936923F05D +:1027C0000103936100F038FE0746E36A9B69DB076B +:1027D00005D500F031FEC31BFA2BF6D995E701258C +:1027E00086F8525491E7002592E700BFEC63002081 +:1027F000FCB50040448000080000FF0713B500F559 +:1028000080540191606CFFF7DBFC1F280AD920225D +:102810000199606CFFF74AFDA0F12003584258412E +:1028200002B010BD0020FBE708B5302383F3118808 +:1028300000F58050406CFFF797FC002383F311886C +:1028400008BD000000220260828142608260704701 +:102850000022002310B5C0E90023002304460C30F9 +:1028600020F8043CFFF7EEFF204610BD2DE9F047AD +:102870009A4688B0074688469146302383F31188EC +:1028800007F580546846FFF7E3FF606CFFF77EFCB6 +:102890001F282ED920226946606CFFF78BFD202867 +:1028A00027D194F8523423B303AD444605AB2E46EA +:1028B000083403CE9E4244F8080C44F8041C354604 +:1028C000F5D130682060B388A380DDE90023C9E931 +:1028D0000023BDF80830AAF80030002383F31188E4 +:1028E00053464A464146384608B0BDE8F04700F036 +:1028F000B3BD002080F3118808B0BDE8F087000068 +:102900002DE9F84F0023064600F581540546884618 +:102910001034C0E90133274B46F8303B3746384680 +:102920002037FFF795FFA742F9D105F580544FF402 +:10293000805305F5A3594FF0000A2663002667640B +:1029400005F5835709F110094FF0000B1037E663C6 +:10295000C4E90D36012384F8403084F84830A7F1EB +:102960001800203747E910ABFFF76CFF47F8286CD9 +:102970004F45F4D1B8F1010F84F85884A4F85A6493 +:10298000A4F85C64A4F85E6484F86064A4F86264EB +:10299000A4F86464A4F8666484F8686402D90648FC +:1029A00000F044FD054B284653F82830EB62BDE8A3 +:1029B000F88F00BF948000086880000884800008B9 +:1029C000044B10B5197804464A1C1A70FFF798FF9B +:1029D000204610BDE96300202DE9F04300295AD0BC +:1029E0002E4E2F48B6FBF1F481428CBF0A201120F5 +:1029F000431EB4FBF0F700FB1740DDB220B1022B01 +:102A00001846F5D8002032E07B1EB3F5806F2ED239 +:102A1000C5EBC5084FF47A7308F103044FEAE40EDE +:102A2000C4F3C7040EF10109281B0EFB033E5FFA35 +:102A300080FC59FA80F0BEFBF0F0B0F5617F18DC45 +:102A400083B2601C5CFA80F07843B6FBF0F0814200 +:102A5000D8D1611E0F29D5D80CF1FF310729D1D863 +:102A60000120138057801071547182F806C0BDE8B0 +:102A7000F08308F1FF34E010C4F3C70400F1010E45 +:102A80002D1B00FB03335FFA85FC5EFA85F5B3FB73 +:102A9000F5F39BB2D5E70846E9E700BF00B4C404EC +:102AA0003F420F0030B50D4B05200D4D1C786C4397 +:102AB0008C420ED159780120518099785171D97882 +:102AC0009171197911715B7903EB83035B001380BA +:102AD00030BD013803F10603E8D1F9E7D4800008DE +:102AE00040420F0038B540F27772C36A154CC3F804 +:102AF000BC200722C36AC3F8C8202268C16A9300B9 +:102B000043F4C023C1F8A03002F1805302F16C01FC +:102B1000C56A03F52C53EA3289009B00226041F01C +:102B2000E061094AC361C5F8C01003F5D87103F527 +:102B30006A7341629342836202D9044800F076FCD2 +:102B400038BD00BFEC630020FCB5004044800008A5 +:102B50002DE9F04F00F580551F4689B0044695F8E1 +:102B6000583489469046022B04D90026304609B0D5 +:102B7000BDE8F08FA84A52F8231009B942F82300A3 +:102B8000A648C4F80C9001782774C9B9302383F3A0 +:102B90001188A34BD3F8EC2042F48072C3F8EC20E8 +:102BA000D3F8942042F48072C3F89420D3F8942090 +:102BB00022F48072C3F894200123037081F31188FA +:102BC00095F851347BB9302383F31188954A95F8F1 +:102BD0005834D35C0BB3012B28D0012385F8513432 +:102BE000002383F31188302383F31188E26A936909 +:102BF00023F01003936100F01FFC8246E36A9E6994 +:102C000016F0080619D000F017FCA0EB0A03FA2B07 +:102C1000F4D9002686F31188A8E70321132001F0D8 +:102C2000A1FF0321152001F09DFFD6E70321142009 +:102C300001F098FF03211620F5E79A6942F001029E +:102C40009A6100F0F9FB8246E36A9A69D00706D4DC +:102C500000F0F2FBA0EB0A03FA2BF5D9D9E79A6949 +:102C60004FF0000A42F002029A61E36AC3F854A0EE +:102C70008AF3118804F5825B686CFFF775FA0BF133 +:102C8000100B202200216846FEF7AAFE02A8FFF7DB +:102C9000D9FD6A460BEB06030DF1180ECDF818A00E +:102CA00094460833BCE80300F44543F8080C43F8A5 +:102CB000041C6246F4D1DCF8000020361860B6F53A +:102CC000806F9CF804201A71DBD1002304F5A25216 +:102CD000494620461A3285F8503485F85334FFF7B8 +:102CE0007BFE064690B9E26A936923F00103936183 +:102CF00000F0A2FB0546E36A9B69D9077FF535AF73 +:102D000000F09AFB431BFA2BF5D92EE795F85E34B9 +:102D1000C5F86C94591E95F85F34E26A013B1B02BA +:102D200043EA416395F8601401390B43B5F85C142C +:102D3000013943EA0143D361B8F1000F36D004F5FD +:102D4000A352414620460232FFF7ACFE90B9E26A38 +:102D5000936923F00103936100F06EFB0546E36A7B +:102D60009B69DA077FF501AF00F066FB431BFA2B86 +:102D7000F5D9FAE695F86724C5F87084511E95F8E0 +:102D80006824E36A013A120142EA012295F86614C6 +:102D900001390A43B5F86414013942EA014242F4A8 +:102DA0000002DA604FF42062E36A9A64E36A4FF04B +:102DB00000082046C3F8BC80FFF794FE85F85984CC +:102DC0006FF04042E36A1A65174AE36A5A654FF0AA +:102DD0000222E36A9A654FF0FF32E36AC3F8E0200B +:102DE0000322E36A9742DA653FF4C0AEE26A936970 +:102DF00023F00103936100F01FFB0746E36A9B6920 +:102E0000DB0705D500F018FBC31BFA2BF6D9ACE69F +:102E1000012385F85234A9E6E0630020E86300202E +:102E2000004402587C800008550200022DE9F04F52 +:102E3000054689B090469946002741F2680A00F598 +:102E40008056EB6AD3F8D830FB40D80751D505EB54 +:102E500047124FEA471B52441379190749D4D6F851 +:102E600084340133C6F8843405F5A553C3E90089D9 +:102E700013799A0605EB0B0248BFD6F8B4345244D6 +:102E800044BF0133C6F8B434137943F00803137117 +:102E9000DB0723D596F8533403B305F5825468460F +:102EA000FFF7D6FC03AB18345C4404F1080C20682F +:102EB000083454F8041C1A46644503C21346F6D17C +:102EC0002068694610602846A2889A800123ADF8E0 +:102ED00008302B68CDE90089DB6B9847D6F8A83419 +:102EE000D6F854040133C6F8A83410B103681B693E +:102EF00098470137202FA4D109B0BDE8F08F00001A +:102F00002DE9F04F0F468DB0044600F097FA824647 +:102F10008946002F5BD1E36AD3F8A02012F4FE0F9C +:102F200003D100200DB0BDE8F08FD3F8A4209201AA +:102F300041BF04F58051D1F898240132C1F898249A +:102F4000D3F8A4205606ECD0D3F8A450E669C5F314 +:102F500005254823E8464FF0000B03FB0566404675 +:102F6000FFF770FC326851004ABF22F06043C2F3A1 +:102F70008A4343F00043920048BF43F080430093EC +:102F8000736813F400131BBF012304F580528DF8FE +:102F90000D308DF80D301EBFD2F8B8340133C2F8B1 +:102FA000B834F38803F00F038DF80C309DF80C0053 +:102FB00000F09EFA5FFA8BF3984225D9F2180CA91B +:102FC0000BF1010B127A0B4403F82C2CEEE7012FC6 +:102FD000A7D1E36AD3F8B02012F4FE0FA1D0D3F842 +:102FE000B420950141BF04F58051D1F898240132F5 +:102FF000C1F89824D3F8B420500692D0D3F8B45036 +:10300000266AC5F30525A4E7EFB9E36AC3F8A8501B +:1030100004A807ADFFF71CFC98E80F0007C52B803C +:103020000023204604A9ADF81830236804F5805425 +:10303000DB6BCDE904A9984758B1D4F8903401333B +:10304000C4F890346EE7012FE2D1E36AC3F8B850B8 +:10305000DEE7D4F8943401200133C4F8943461E7F6 +:103060002DE9F04105460F4600F58054012639460A +:103070002846FFF745FF10B184F85364F7E7D4F80A +:10308000A834D4F854040133C4F8A83420B1036838 +:10309000BDE8F0411B691847BDE8F081C36AF0B58F +:1030A0001A6C12F47F0F2BD01B6C00F5805441F288 +:1030B00068054FF0010CC4F8AC340023471900EB4D +:1030C00043125E012A44117911F0020F15D049070D +:1030D00013D4B959C66A0CFA01F1D6F8CCE011EA5A +:1030E0000E0F0AD0C6F8D410117941F00401117105 +:1030F000D4F88C240132C4F88C240133202BDED187 +:10310000F0BD00002B4B70B51E561B5C012B30D858 +:10311000294D2A4A55F8233052F8264013B349B3B3 +:10312000236D9A0510D54FF40073236500F086F9DE +:1031300050EA01020B4602D0013861F10003024659 +:1031400055F82600FFF772FE236D9B012CD54FF03A +:10315000007255F82630226503F58053012283F86A +:10316000592421E001232365102323654FF4805364 +:10317000236570BD236DDA0702D4236D5B0706D586 +:103180000523002155F826002365FFF769FF236D0D +:10319000D80602D4236D590606D55023012155F8CF +:1031A00026002365FFF75CFF55F82600BDE8704058 +:1031B000FFF774BF80800008E0630020848000086F +:1031C00008B5302383F31188FFF768FF002383F3EA +:1031D000118808BDC36AD3F8C00010F07C5005D038 +:1031E000D3F8C40080F40010C0F3405070470000D2 +:1031F00008B5302383F3118800F58050406CFEF74A +:10320000C5FF002383F3118843090CBF0120002070 +:1032100008BD000000F5805393F8592462B1C16ADB +:103220008A6922F001028A61D3F89C240132C3F832 +:103230009C24002283F85924704700002DE9F743AD +:10324000302181F3118800F58251002541F2680E8A +:103250004FF00108103100F5805C00EB4514744418 +:10326000267977071CD4F6061AD58E69D0F82C90EB +:1032700008FA06F6D9F8CC703E4211D04F68019793 +:103280000F689742019F9F410AD2C9F8D4602679FE +:1032900046F004062671DCF888440134CCF88844F2 +:1032A00001352031202DD8D1002383F3118803B0BC +:1032B000BDE8F083F8B51E4600230F46054613709F +:1032C0001446FFF795FF80F0010038701EB12846C4 +:1032D000FFF780FF2070F8BD2DE9F04F85B09946CB +:1032E0000D468046164691F800B0DDE90EA3029324 +:1032F0001378019300F0A2F82B7804460F4613B917 +:103300003378002B41D022463B464046FFF796FFDC +:10331000FFF756FFFFF77EFF4B4632462946FFF781 +:10332000C9FF2B7833B1BBF1000F03D0012005B0EA +:10333000BDE8F08F337813B1019B002BF6D108F56F +:10334000805303935445029B77EB03031DD2039BE9 +:10335000D3F85404C8B10368AAEB04011B6898476A +:103360004B46324629464046FFF7A4FF2B7813B15F +:10337000BBF1000FDAD1337813B1019B002BD5D10B +:1033800000F05CF804460F46DCE70020CFE70000C1 +:10339000002108B50846FFF7B5FEBDE8084001F07A +:1033A00071B8000008B501210020FFF7ABFEBDE8B1 +:1033B000084001F067B8000008B500210120FFF7C0 +:1033C000A1FEBDE8084001F05DB80000012108B58C +:1033D0000846FFF797FEBDE8084001F053B800002B +:1033E00000B59BB0EFF3098168226846FEF7D2FA78 +:1033F000EFF30583014B9B6BFEE700BF00ED00E0A0 +:1034000008B5FFF7EDFF000000B59BB0EFF30981B1 +:1034100068226846FEF7BEFAEFF30583014B5B6B4B +:10342000FEE700BF00ED00E0FEE700000FB408B5C6 +:10343000029802F08BFAFEE702F0DCBF02F0BEBF9A +:1034400013B56C46031D84E8060094E8030083E886 +:103450000500012002B010BD73B58568019155B11A +:103460001B885B0707D4D0E900369B6B9847019A0D +:10347000C1B23046A847012002B070BDF0B58668E1 +:1034800089B005460C465EB1BDF838305B070AD4FA +:10349000D0E900379B6B98472246C1B23846B04707 +:1034A000012009B0F0BD0022002301F10806CDE99A +:1034B000002300230A46ADF8083003AB1068083239 +:1034C00052F8041C1C46B24203C42346F6D11068CD +:1034D00020609288A280FFF7B1FF0423ADF8083086 +:1034E0002B68CDE90001DB6B694628469847D7E792 +:1034F000082817D909280CD00A280CD00B280CD082 +:103500000C280CD00D280CD00E2814BF40203020E1 +:1035100070470C2070471020704714207047182007 +:1035200070472020704700002DE9F041456A15B929 +:103530004162BDE8F0814B68AC4623F06047C3F3BD +:103540008A464FEAD37EC3F3807816EA230638BF53 +:103550003E462B465A68BEEBD27F22F060440AD02A +:10356000002A18DAA40CB44217D19D420FD10D6085 +:10357000DEE71346EEE7A74207D102F08044C2F32C +:10358000807242450BD054B1EFE708D2EDE7CCF89A +:1035900000100B60CDE7B44201D0B442E5D81A6800 +:1035A0009C46002AE5D11960C3E700002DE9F047E9 +:1035B000089D01F0070400EBD1004FF47F494FEA6A +:1035C000D508224405F00705944201D1BDE8F087F3 +:1035D00004F0070705F0070A111B08EBD50E574545 +:1035E0003E4613F80EC038BF5646C6F108068E4256 +:1035F00028BF0E46E108415C34443544B94029FAFD +:1036000006F721FA0AF1FFB28CEA010147FA0AF73C +:1036100039408CEA010C03F80EC0D5E780EA01209E +:10362000082341F2210201B2013B4000002980B28F +:10363000B8BF504013F0FF03F5D1704738B50C46C2 +:103640008D18A54200D138BD14F8011BFFF7E6FF25 +:10365000F7E7000042684AB11368818943604389F3 +:1036600001339BB29942438138BF83811046704732 +:1036700070B588B0044620220D4668460021FEF74A +:10368000AFF920460495FFF7E5FF024660B16B46AF +:10369000054608AE1C46083503CCB44245F8080C74 +:1036A00045F8041C2346F5D1104608B070BD000053 +:1036B000082817D909280CD00A280CD00B280CD0C0 +:1036C0000C280CD00D280CD00E2814BF4020302020 +:1036D00070470C2070471020704714207047182046 +:1036E0007047202070470000082817D90C280CD9F3 +:1036F00010280CD914280CD918280CD920280CD93A +:1037000030288CBF0F200E207047092070470A20F8 +:1037100070470B2070470C2070470D207047000049 +:103720002DE9F843078C0446072F1ED900254FF6D4 +:10373000FF73D0E90298C5F12006A5F1200029FA0F +:1037400005F1083508FA06F628FA00F0314301437E +:103750001846C9B2FFF762FF402D0346EBD13A4647 +:10376000E169BDE8F843FFF769BF4FF6FF70BDE8B8 +:10377000F883000010B54B6823B9CA8A63F30902C5 +:10378000CA8210BD04691A681C600361C38A013BC8 +:10379000C3824A60EFE700002DE9F84F1D46CB8A4F +:1037A0000F468146C3F30901924605290B4630D0E6 +:1037B0000020AAB207F11A049EB21FFA80F8042E64 +:1037C0000FD8904503F1010306D30A44FB8A62F344 +:1037D00009030120FB821AE01AF800600130E65468 +:1037E000EAE79045F1D2A1F1050B1C237C68BBFBF5 +:1037F000F3F203FB12BB1FFA8BF6002C45D14846AF +:10380000FFF728FF044638B978606FF00200BDE882 +:10381000F88F4FF00008E6E7002606607860ADB24A +:103820004FF0000B454510D90AEB0803221D13F891 +:10383000011B08F101089155B1B21FFA88F81B2944 +:103840002BD0454506F10106F1D8FB8AC3F30902E6 +:10385000154465F30903BCE701321C4692B22368A4 +:10386000002BF9D16B1F0B441C21B3FBF1F3013387 +:103870009BB29A42D3D2BBF1000FD0D14846FFF79A +:10388000E9FE20B9C4F800B0BFE70122E7E7C0F8BD +:1038900000B05E4620600446C1E74545D5D948469C +:1038A000FFF7D8FE08B92060AFE7C0F800B00026E7 +:1038B00020600446B6E700002DE9F04F1C4607469D +:1038C00088462DED028B83B05B690192002B00F0DE +:1038D0009A80238C2BB1E269002A00F09480072B98 +:1038E00035D807F10C00FFF7B5FE054638B96FF083 +:1038F0000205284603B0BDEC028BBDE8F08F142210 +:103900000021FEF76DF8228CE16905F10800FEF751 +:1039100041F8208C48F00041013080B2FFF7E4FE0E +:10392000FFF7C6FE013880B2208401302874384683 +:103930006369228C1B782A4403F01F0363F03F0362 +:10394000137269602946FFF7EFFD0125D1E74FF0BB +:10395000000900F10C034FF0800A4E464D4608EE78 +:10396000103A18EE100AFFF775FE83460028BED005 +:1039700014220021FEF734F8002E3AD1019B0222D6 +:10398000ABF808300BF1080E1FFA82FC218C0CF109 +:103990000100BCF1060F80B201D88E422BD3FFF795 +:1039A000A3FE8E4208BF4FF0400AFFF781FE626916 +:1039B0000138013512781BFA80F1013002F01F0244 +:1039C0002DB242EA491289F001094AEA020A48F096 +:1039D000004281F808A059468BF810003846CBF811 +:1039E00004204FF0000AFFF79FFD238CB342B8D1AB +:1039F0007FE70022C6E7E169895D01360EF8021013 +:103A0000B6B20132C0E76FF0010572E7F8B51546AE +:103A10000E463022002104461F46FDF7E1FF069BBB +:103A2000B5F5001FA760636004F11000079B34BF69 +:103A30006A094FF6FF72E661A362002397B29A42C9 +:103A400006D800230360A782E3822383E360F8BDE6 +:103A50000660013330462036F1E7000003781BB9D9 +:103A60004BB2002BC8BF0170704700000078704750 +:103A7000F8B50C46C969074611B9238C002B37D11C +:103A8000257E1F2D34D8387828BB228C072A2CD8C5 +:103A9000268A36F003032BD14FF6FF70FFF7CEFDD9 +:103AA00020F0010031024FF6FF72400441EA056147 +:103AB000400C41EA4025234629463846FFF7FCFEE4 +:103AC000002807DD626913780133DBB21F2B88BF42 +:103AD00000231370F8BD218A2D0645EA0125054310 +:103AE0002046FFF71DFE0246E5E76FF00300F1E711 +:103AF0006FF00100EEE7000070B58AB0044616468C +:103B00000021282268461D46FDF76AFFBDF83830BF +:103B100069462046ADF810300F9B05939DF8403064 +:103B20008DF81830119B0793BDF84830CDE9026538 +:103B3000ADF82030FFF79CFF0AB070BD2DE9F041D1 +:103B4000D36905460C4616460BB9138C5BBB377E12 +:103B50001F2F28D895F80080B8F1000F26D03046E6 +:103B6000FFF7DEFD337821020246284641EAC331E1 +:103B7000338A41EA080141EA076141EA03413346D9 +:103B800041F08001FFF798FE00280ADD3378012B11 +:103B900007D1726913780133DBB21F2B88BF002372 +:103BA0001370BDE8F0816FF00100FAE76FF00300D9 +:103BB000F7E70000F0B58BB004460D46174600212C +:103BC000282268461E46FDF70BFF9DF84C3029461B +:103BD00020465A1E534253416A468DF800309DF8E4 +:103BE0004030ADF81030119B05939DF848308DF8AA +:103BF0001830149B0793BDF85430CDE90276ADF828 +:103C00002030FFF79BFF0BB0F0BD0000406A00B111 +:103C100004307047436A1A68426202691A6003619D +:103C2000C38A013BC38270472DE9F041D0F8208060 +:103C300014461D46184E4146002709B9BDE8F081DB +:103C4000D1E90223A21A65EB0303964277EB030343 +:103C50001ED2036A8B420DD1FFF78CFD036A1B68ED +:103C6000036203690B60C38A0161013B016AC3827D +:103C70008846E2E7FFF77EFD0B68C8F8003003696D +:103C80000B60C38A0161013BC382D8F80010D4E7FE +:103C900088460968D1E700BF80841E002DE9F04FF7 +:103CA0008BB00D4614469B46DDF8509080460028A8 +:103CB00000F01881B9F1000F00F01481531E3F2B62 +:103CC00000F21081012A03D1BBF1000F40F00A81FC +:103CD0000023CDE90833B8F81430B5EBC30F4FEA31 +:103CE000C30703D300200BB0BDE8F08F2B199F4210 +:103CF000D8F80C3036BF7F1B2746FFB21BB9D8F867 +:103D00001030002B7AD0272D4DD8C5F1280600237E +:103D10002946B742009308ABD8F808002CBFF6B28A +:103D20003E46A7EB060A354432465FFA8AFAFFF7A9 +:103D30003DFCB8F81430282103F10053053BDB00AB +:103D40000493D8F80C300393039B13B1BAF1000F1E +:103D50002CD1D8F8100040B1BAF1000F05D008AB53 +:103D60005246691A0096FFF721FC38B2002FB9D0ED +:103D700066070AD00AAB624203EBD40102F00702E5 +:103D800011F8083C134101F8083C082C3DD9102CCF +:103D900040F2B580202C40F2B780BBF1000F00F05C +:103DA0009C80082335E0BA460026C2E7049BE02B3E +:103DB00028BFE02306930B44AB42059315D95A1B49 +:103DC0000398691A0096924508AB00F1040034BFCD +:103DD0005246D2B20792FFF7E9FB079A1644AAEBC4 +:103DE000020A1544F6B25FFA8AFA049B069A05990C +:103DF0009B1A0493039B1B680393A5E700933A4621 +:103E000008AB2946D8F80800ADE7BBF1000F13D086 +:103E10000123B4EBC30F6BD0082C12D89DF82030CF +:103E2000621E23FA02F2D50706D54FF0FF3202FADE +:103E300004F423438DF820309DF8203089F80030B9 +:103E400051E7102C12D8BDF82030621E23FA02F27E +:103E5000D10706D54FF0FF3202FA04F42343ADF840 +:103E60002030BDF82030A9F800303CE7202C0FD8D6 +:103E70000899631E21FA03F3DA0705D54FF0FF32E4 +:103E800002FA04F40C430894089BC9F800302AE7AE +:103E9000402C2AD0611EC4F12102A4F12103DDE9E6 +:103EA000086526FA01F105FA02F225FA03F3114337 +:103EB0001943CB0711D50122A4F12003C4F120013D +:103EC00002FA03F322FA01F1A2400B43524263EBE0 +:103ED000430332432B43CDE90823DDE90823C9E935 +:103EE000002300E76FF00100FDE66FF00800FAE63E +:103EF000082CA1D9102CB4D9202CEED8C4E7BBF1E2 +:103F0000000FAED0022384E7BBF1000FBCD0042326 +:103F10007FE70000012A30B5144638BF012485B080 +:103F20000025402C28BF4024012ACDE9025518D88D +:103F30001B788DF8083063070AD004AB624203EBAC +:103F4000D40502F0070215F8083C934005F8083C38 +:103F5000034600912246002102A8FFF727FB05B087 +:103F600030BD082AE4D9102A03D81B88ADF80830E0 +:103F7000E1E7202A95BF1B68D3E900230293CDE92E +:103F80000223D8E710B5CB681BB98B600B618B821D +:103F900010BD04691A681C600361C38A013BC382B7 +:103FA000CA60F0E703064CBFC0F3C0300220704780 +:103FB00008B50246FFF7F6FF022806D15306C2F302 +:103FC0000F2001D100F0030008BDC2F30740FBE75A +:103FD0002DE9F04F93B004460D46CDE903230A685E +:103FE0001046FFF7DFFF0228824614BFC2F3062601 +:103FF0000026002A80F2F88112F0C04940F0F481D6 +:10400000097B002900F0F081022803D02378B34215 +:1040100040F0ED81C2F3046310462944069302F098 +:104020007F030593FFF7C4FF059B002283464FEAF9 +:104030008348002348EA0A4848EA4668CE78CDE932 +:104040000823F30948EA0008029368D0059B02465A +:1040500008A92046009353466768B847002800F037 +:10406000C981276A4FB9414604F10C00FFF700FBF4 +:10407000074690B96FF0020055E03B6998450DD0B6 +:104080003F68002FF9D1414604F10C00FFF7F0FA28 +:1040900007460028EED0236A3B60276297F817C0D6 +:1040A00006F01F08CCF3840CACEB0800A8EB0C0363 +:1040B0001FFA80FE0028B8BF0EF120001FFA83FE11 +:1040C000B8BF00B2002B0793B8BF0EF12003D7E9A9 +:1040D0000221BCBF1BB2079352EA010338D0039BF5 +:1040E0004FF0000CDFF81CE39A1A049B63EB01010C +:1040F00096457CEB01032BD36B7B97F81AE0734555 +:1041000019D1029B002B78D0012821DC7868F8B9FE +:10411000DFF8ECC2944570EB010316D337E0276A51 +:1041200027B96FF00C0013B0BDE8F08F3B699845DC +:10413000B4D03F68F4E7B24890427CEB010301D36E +:104140000020F0E7029B002BFAD0079B0F2B17DC17 +:10415000FA7DB3003946204602F0030203F07C03E7 +:104160001343FB75FFF706FB6B7BBB76029B3BB9EA +:10417000FB7DC3F38402013262F38603FB75D0E753 +:104180006A7BBB7E9A42DBD1029B002B35D0B30900 +:10419000022B32D0039B142200210DA8BB60049B8C +:1041A000FB60FDF71DFC039B0AA920460A93049BB4 +:1041B000ADF83EB00B932B1D8DF840A00C932B7BDC +:1041C0008DF84180013BDBB2ADF83C30069B8DF8A9 +:1041D0004230059B8DF8433094F82C3083F0010376 +:1041E0008DF84430A3689847FB7DC3F38403013303 +:1041F00003F01F039B02FB82A2E7FB7DC6F3401284 +:10420000B2EBD31F40F0F980C3F38403434540F081 +:10421000FB80029AB6092B7B002A52D016F00106C9 +:1042200061D1032B40F2F380039B394604F10C006B +:10423000BB60049BFB60FB8A66F30903AE1DFB8237 +:1042400032462B7B033BDBB2FFF7A6FA00280CDAE1 +:1042500039462046FFF78EFAFB7DC3F38403013312 +:1042600003F01F039B02FB8204E7AB88DDE90884AF +:104270003B834FF6FF73C9F12000A9F1200228FA11 +:1042800009F109F1080904FA00F024FA02F20143E5 +:1042900018461143C9B2FFF7C1F9B9F1400F0346FF +:1042A000E9D1B88231462A7B033AD2B2FFF7C6F988 +:1042B000FB7DB882DA43C2F3C01262F3C713FB7509 +:1042C0003EE786B92E1D013B394604F10C00DBB2F6 +:1042D0003246FFF761FA0028BADB2A7B3146B88AFA +:1042E000013AD2B2E2E7F98A013BC1F30901DAB23D +:1042F00004295BD8281D002307F11B069A4208D920 +:1043000010F801CB013306F801C00131DBB20529F9 +:10431000F4D1039993420A9138BF043304992CBF16 +:10432000002355FA83F30B9107F11B010C91796877 +:104330000E930D91291DFB8AADF83EB0C3F309031E +:104340008DF840A08DF841801A44069B8DF84230CC +:10435000059BADF83C208DF8433094F82C3083F069 +:1043600001038DF844300023B88A7B602A7B013A30 +:10437000FFF764F93B8BB882834203D1A3680AA993 +:104380002046984720460AA9FFF7FCFDFB7DBA8A24 +:10439000C3F38403013303F01F039B02FB823B8BB7 +:1043A0009A420CBF00206FF01000BCE67B68002B27 +:1043B000AFD0052001E01C3033461E68002EFAD134 +:1043C000091A2E1D081D184401EB090C5FFA89F328 +:1043D000BCF11B0F9DD89A429BD916F8013B09F1FD +:1043E000010900F8013BEFE76FF009009BE66FF071 +:1043F0000A0098E66FF00B0095E66FF00D0092E66C +:1044000040420F0080841E006FF00E008BE66FF0BC +:104410000F0088E6EFF30983054968334A6B22F001 +:1044200001024A6383F30988002383F311887047EC +:1044300000EF00E0302080F3118862B60D4B0E4A89 +:10444000D96821F4E0610904090C0A430B49DA60D8 +:10445000D3F8FC2042F08072C3F8FC20084AC2F86E +:10446000B01F116841F0010111602022DA7783F852 +:104470002200704700ED00E00003FA0555CEACC500 +:10448000001000E0302310B583F311880E4B5B68F9 +:1044900013F4006314D0F1EE103AEFF309844FF0F7 +:1044A0008073683CE361094BDB6B236684F3098806 +:1044B00001F012FA10B1064BA36110BD054BFBE7EA +:1044C00083F31188F9E700BF00ED00E000EF00E0A2 +:1044D0003F0400084204000808B5074B074A196862 +:1044E00001F03D01996053680BB190689847BDE8B1 +:1044F0000840FFF7C7BF00BF00000240F463002080 +:1045000008B5084B1968890901F03D018A019A60D4 +:10451000054AD3680BB110699847BDE80840FFF71A +:10452000B1BF00BF00000240F463002008B5084B93 +:104530001968090C01F03D010A049A60054A5369A3 +:104540000BB190699847BDE80840FFF79BBF00BFDB +:1045500000000240F463002008B5084B1968890D7B +:1045600001F03D018A059A60054AD3690BB1106AD2 +:104570009847BDE80840FFF785BF00BF0000024034 +:10458000F463002008B5074B074A596801F03D0164 +:10459000D960536A0BB1906A9847BDE80840FFF7AD +:1045A00071BF00BF00000240F463002008B5084B53 +:1045B0005968890901F03D018A01DA60054AD36A28 +:1045C0000BB1106B9847BDE80840FFF75BBF00BF19 +:1045D00000000240F463002008B5084B5968090C3C +:1045E00001F03D010A04DA60054A536B0BB1906B90 +:1045F0009847BDE80840FFF745BF00BF00000240F4 +:10460000F463002008B5084B5968890D01F03D019D +:104610008A05DA60054AD36B0BB1106C9847BDE888 +:104620000840FFF72FBF00BF00000240F4630020E6 +:1046300008B5074B074A196801F03D019960536CB2 +:104640000BB1906C9847BDE80840FFF71BBF00BF57 +:1046500000040240F463002008B5084B196889097A +:1046600001F03D018A019A60054AD36C0BB1106DCF +:104670009847BDE80840FFF705BF00BF00040240AF +:10468000F463002008B5084B1968090C01F03D01DE +:104690000A049A60054A536D0BB1906D9847BDE8C6 +:1046A0000840FFF7EFBE00BF00040240F4630020A3 +:1046B00008B5084B1968890D01F03D018A059A601B +:1046C000054AD36D0BB1106E9847BDE80840FFF75F +:1046D000D9BE00BF00040240F463002008B5074BB8 +:1046E000074A596801F03D01D960536E0BB1906ED5 +:1046F0009847BDE80840FFF7C5BE00BF0004024070 +:10470000F463002008B5084B5968890901F03D01A0 +:104710008A01DA60054AD36E0BB1106F9847BDE885 +:104720000840FFF7AFBE00BF00040240F463002062 +:1047300008B5084B5968090C01F03D010A04DA601C +:10474000054A536F0BB1906F9847BDE80840FFF7DB +:1047500099BE00BF00040240F463002008B5084B76 +:104760005968890D01F03D018A05DA60054AD36F69 +:1047700013B1D2F880009847BDE80840FFF782BE29 +:1047800000040240F463002000230C4910B51A46CF +:104790000B4C0B6054F82300026001EB4300043320 +:1047A0004260402BF6D1074A4FF0FF339360D3604D +:1047B000C2F80834C2F80C3410BD00BFF463002006 +:1047C000F4800008000002400F28F8B510D9102826 +:1047D00010D0112811D0122808D10F240720DFF89B +:1047E000C8E00126DEF80050A04208D9002653E0B8 +:1047F0000446F4E70F240020F1E70724FBE706FA5C +:1048000000F73D424AD1264C4FEA001C3D4304EBE1 +:1048100000160EEBC000CEF80050C0E90123FBB239 +:1048200073B12048D0F8D83043F00103C0F8D83035 +:10483000D0F8003143F00103C0F80031D0F8003166 +:1048400017F47F4F0ED01748D0F8D83043F002034A +:10485000C0F8D830D0F8003143F00203C0F800317E +:10486000D0F8003154F80C00036823F01F030360F4 +:10487000056815F00105FBD104EB0C033D2493F80A +:104880000CC05F6804FA0CF43C60212405604461AC +:1048900012B1987B00F066F93046F8BD0130A3E70D +:1048A000F480000800440258F463002010B530245E +:1048B00084F31188FFF788FF002383F3118810BD6C +:1048C00010B50446807B00F063F901231549627B33 +:1048D00003FA02F20B6823EA0203DAB20B6072B940 +:1048E000114AD2F8D81021F00101C2F8D810D2F83C +:1048F000001121F00101C2F80011D2F8002113F4D7 +:104900007F4F0ED1084BD3F8D82022F00202C3F813 +:10491000D820D3F8002122F00202C3F80021D3F8F6 +:10492000003110BDF46300200044025808B5302364 +:1049300083F31188FFF7C4FF002383F3118808BDB8 +:10494000026843681143016003B1184770470000D3 +:10495000024A136843F0C0031360704700780040B8 +:1049600013B50E4C204600F0BDFA04F114000023EC +:104970004FF400720A49009400F07AF9094B4FF4A1 +:104980000072094904F13800009400F0F3F9074A75 +:10499000074BC4E9172302B010BD00BF78640020A4 +:1049A000E464002051490008E466002000780040DB +:1049B00000E1F505037C30B5244C002918BF0C46F6 +:1049C000012B11D1224B98420ED1224BD3F8E82073 +:1049D00042F08042C3F8E820D3F8102142F0804230 +:1049E000C3F81021D3F810312268036EC16D03EBB8 +:1049F00052038466B3FBF2F36268150442BF23F0EE +:104A0000070503F0070343EA4503CB60A36843F0BF +:104A100040034B60E36843F001038B6042F49673FC +:104A200043F001030B604FF0FF330B62510505D5D6 +:104A300012F0102205D0B2F1805F04D080F864300B +:104A400030BD7F23FAE73F23F8E700BFF481000879 +:104A500078640020004402582DE9F047C66D0546F1 +:104A60003768F469210734621AD014F0080118BFBE +:104A70004FF48071E20748BF41F02001A3074FF0D7 +:104A8000300348BF41F04001600748BF41F080015A +:104A900083F31188281DFFF753FF002383F3118848 +:104AA000E2050AD5302383F311884FF48061281D75 +:104AB000FFF746FF002383F311884FF030094FF0D2 +:104AC000000A14F0200838D13B0616D54FF0300903 +:104AD00005F1380A200610D589F31188504600F0F8 +:104AE0007DF9002836DA0821281DFFF729FF27F075 +:104AF00080033360002383F31188790614D562069E +:104B000012D5302383F31188D5E913239A4208D1B3 +:104B10002B6C33B127F040071021281DFFF710FF41 +:104B20003760002383F31188E30618D5AA6E136952 +:104B3000ABB15069BDE8F047184789F31188736A33 +:104B4000284695F86410194000F0E6F98AF31188B8 +:104B5000F469B6E7B06288F31188F469BAE7BDE892 +:104B6000F0870000090100F16043012203F5614371 +:104B7000C9B283F8001300F01F039A4043099B0059 +:104B800003F1604303F56143C3F880211A60704765 +:104B900000F01F0301229A40430900F160409B008E +:104BA00000F5614003F1604303F56143C3F88020E1 +:104BB000C3F88021002380F800337047F8B515460C +:104BC000826804460B46AA4200D28568A16926691C +:104BD000761AB5420BD218462A46FCF7DBFEA369CB +:104BE0002B44A3612846A3685B1BA360F8BD0CD9C6 +:104BF000AF1B18463246FCF7CDFE3A46E16830441A +:104C0000FCF7C8FEE3683B44EBE718462A46FCF78E +:104C1000C1FEE368E5E7000083689342F7B5044608 +:104C2000154600D28568D4E90460361AB5420BD225 +:104C30002A46FCF7AFFE63692B4463612846A368EC +:104C40005B1BA36003B0F0BD0DD93246AF1B0191D1 +:104C5000FCF7A0FE01993A46E0683144FCF79AFE61 +:104C6000E3683B44E9E72A46FCF794FEE368E4E79F +:104C700010B50A440024C361029B8460C1600261D4 +:104C80000362C0E90000C0E9051110BD08B5D0E914 +:104C90000532934201D1826882B982680132826012 +:104CA0005A1C426119700021D0E904329A4224BF93 +:104CB000C368436100F0C0FE002008BD4FF0FF3024 +:104CC000FBE7000070B5302304460E4683F31188DD +:104CD000A568A5B1A368A269013BA360531CA361A9 +:104CE00015782269934224BFE368A361E3690BB19D +:104CF00020469847002383F31188284607E0314671 +:104D0000204600F089FE0028E2DA85F3118870BDA4 +:104D10002DE9F74F04460E4617469846D0F81C90EA +:104D20004FF0300A8AF311884FF0000B154665B139 +:104D30002A4631462046FFF741FF034660B9414607 +:104D4000204600F069FE0028F1D0002383F311888B +:104D5000781B03B0BDE8F08FB9F1000F03D00190CC +:104D60002046C847019B8BF31188ED1A1E448AF335 +:104D70001188DCE7C160C361009B82600362C0E907 +:104D800005111144C0E9000001617047F8B50446FF +:104D90000D461646302383F31188A768A7B1A36890 +:104DA000013BA36063695A1C62611D70D4E904323F +:104DB0009A4224BFE3686361E3690BB120469847D8 +:104DC000002080F3118807E03146204600F024FEE1 +:104DD0000028E2DA87F31188F8BD0000D0E9052346 +:104DE00010B59A4201D182687AB9826800210132F5 +:104DF00082605A1C82611C7803699A4224BFC3688E +:104E0000836100F019FE204610BD4FF0FF30FBE734 +:104E10002DE9F74F04460E4617469846D0F81C90E9 +:104E20004FF0300A8AF311884FF0000B154665B138 +:104E30002A4631462046FFF7EFFE034660B9414659 +:104E4000204600F0E9FD0028F1D0002383F311880B +:104E5000781B03B0BDE8F08FB9F1000F03D00190CB +:104E60002046C847019B8BF31188ED1A1E448AF334 +:104E70001188DCE7026843681143016003B11847F9 +:104E8000704700001430FFF743BF00004FF0FF33BE +:104E90001430FFF73DBF00003830FFF7B9BF000006 +:104EA0004FF0FF333830FFF7B3BF00001430FFF787 +:104EB00009BF00004FF0FF311430FFF703BF0000BF +:104EC0003830FFF763BF00004FF0FF323830FFF794 +:104ED0005DBF0000012914BF6FF013000020704770 +:104EE000FFF73EBD044B036000234360C0E902337B +:104EF00001230374704700BF0C82000810B53023F3 +:104F0000044683F31188FFF755FD02230020237424 +:104F100080F3118810BD000038B5C36904460D4602 +:104F20001BB904210844FFF7A5FF294604F114002A +:104F3000FFF7ACFE002806DA201D4FF40061BDE843 +:104F40003840FFF797BF38BD0268436811430160DE +:104F500003B118477047000013B5406B00F580544B +:104F6000D4F8A4381A681178042914D1017C0229D4 +:104F700011D11979012312898B4013420BD101A958 +:104F80004C3002F0D7F9D4F8A4480246019B2179AD +:104F9000206800F0DFF902B010BD0000143002F00C +:104FA00059B900004FF0FF33143002F053B900003C +:104FB0004C3002F02BBA00004FF0FF334C3002F0BF +:104FC00025BA0000143002F027B900004FF0FF317D +:104FD000143002F021B900004C3002F0F7B90000A3 +:104FE0004FF0FF324C3002F0F1B900000020704762 +:104FF00010B500F58054D4F8A4381A681178042943 +:1050000017D1017C022914D15979012352898B408F +:1050100013420ED1143002F0B9F8024648B1D4F868 +:10502000A4484FF4407361792068BDE8104000F057 +:105030007FB910BD406BFFF7DBBF00007047000079 +:105040007FB5124B01250426044603600023057436 +:1050500000F1840243602946C0E902330C4B029000 +:10506000143001934FF44073009602F06BF8094B33 +:1050700004F69442294604F14C000294CDE9006301 +:105080004FF4407302F032F904B070BD348200086E +:1050900035500008594F00080A68302383F31188FF +:1050A0000B790B3342F823004B79133342F823007A +:1050B0008B7913B10B3342F8230000F58053C3F80A +:1050C000A41802230374002080F3118870470000A5 +:1050D00038B5037F044613B190F85430ABB90125BD +:1050E000201D0221FFF730FF04F114006FF00101D1 +:1050F000257700F0ADFC04F14C0084F854506FF0BB +:105100000101BDE8384000F0A3BC38BD10B5012155 +:1051100004460430FFF718FF0023237784F8543047 +:1051200010BD000038B504460025143002F022F806 +:1051300004F14C00257702F0F1F8201D84F854505A +:105140000121FFF701FF2046BDE83840FFF750BFBF +:1051500090F8803003F06003202B06D190F8812076 +:105160000023212A03D81F2A06D800207047222AAC +:10517000FBD1C0E91D3303E0034A4267072282677F +:10518000C3670120704700BF3C23002037B500F5FE +:105190008055D5F8A4381A68117804291AD1017CF1 +:1051A000022917D11979012312898B40134211D199 +:1051B00000F14C04204602F071F958B101A92046D3 +:1051C00002F0B8F8D5F8A4480246019B217920687E +:1051D00000F0C0F803B030BD01F10B03F0B550F89A +:1051E000236085B004460D46FEB1302383F3118859 +:1051F00004EB8507301D0821FFF7A6FEFB6806F1CA +:105200004C005B691B681BB1019002F0A1F801988A +:1052100003A902F08FF8024648B1039B29462046B5 +:1052200000F098F8002383F3118805B0F0BDFB6807 +:105230005A691268002AF5D01B8A013B1340F1D14C +:1052400004F18002EAE70000133138B550F821403C +:10525000ECB1302383F3118804F58053D3F8A428EC +:105260001368527903EB8203DB689B695D6845B183 +:1052700004216018FFF768FE294604F1140001F0CC +:105280008FFF2046FFF7B4FE002383F3118838BD5B +:105290007047000001F05CBA01234022002110B5E4 +:1052A000044600F8303BFCF79BFB0023C4E90133C4 +:1052B00010BD000010B53023044683F3118824226A +:1052C000416000210C30FCF78BFB204601F062FAB4 +:1052D00002230020237080F3118810BD70B500EB0D +:1052E0008103054650690E461446DA6018B1102253 +:1052F0000021FCF775FBA06918B110220021FCF712 +:105300006FFB31462846BDE8704001F049BB000004 +:1053100083682022002103F0011310B50446836046 +:105320001030FCF75DFB2046BDE8104001F0C4BB27 +:10533000F0B4012500EB810447898D40E4683D43CA +:10534000A469458123600023A2606360F0BC01F082 +:10535000E1BB0000F0B4012500EB810407898D401A +:10536000E4683D436469058123600023A2606360B3 +:10537000F0BC01F057BC000070B5022300250446C4 +:10538000242203702946C0F888500C3040F8045C91 +:10539000FCF726FB204684F8705001F095FA63680C +:1053A0001B6823B129462046BDE87040184770BDF0 +:1053B0000378052B10B504460AD080F88C300523FD +:1053C000037043681B680BB1042198470023A36056 +:1053D00010BD00000178052906D190F88C204368A3 +:1053E00002701B6803B118477047000070B590F851 +:1053F0007030044613B1002380F8703004F180024D +:10540000204601F07DFB63689B68B3B994F8803057 +:1054100013F0600535D00021204601F06FFE002119 +:10542000204601F05FFE63681B6813B10621204629 +:105430009847062384F8703070BD204698470028AE +:10544000E4D0B4F88630A26F9A4288BFA36794F97B +:105450008030A56F002B4FF0300380F20381002DC8 +:1054600000F0F280092284F8702083F31188002173 +:105470002046D4E91D23FFF76DFF002383F3118835 +:10548000DAE794F8812003F07F0343EA022340F235 +:105490000232934200F0C58021D8B3F5807F48D016 +:1054A0000DD8012B3FD0022B00F09380002BB2D1FE +:1054B00004F1880262670222A267E367C1E7B3F5DD +:1054C000817F00F09B80B3F5407FA4D194F88230B7 +:1054D000012BA0D1B4F8883043F0020332E0B3F5D9 +:1054E000006F4DD017D8B3F5A06F31D0A3F5C063CE +:1054F000012B90D86368204694F882205E6894F867 +:105500008310B4F88430B047002884D043686367C0 +:105510000368A3671AE0B3F5106F36D040F6024275 +:1055200093427FF478AF5C4B63670223A367002349 +:10553000C3E794F88230012B7FF46DAFB4F8883064 +:1055400023F00203A4F88830C4E91D55E56778E725 +:10555000B4F88030B3F5A06F0ED194F882302046B5 +:1055600084F88A3001F00EFA63681B6813B10121D8 +:1055700020469847032323700023C4E91D339CE78A +:1055800004F18B0363670123C3E72378042B10D155 +:10559000302383F311882046FFF7BAFE85F3118884 +:1055A0000321636884F88B5021701B680BB120467F +:1055B000984794F88230002BDED084F88B30042397 +:1055C000237063681B68002BD6D0022120469847C1 +:1055D000D2E794F8843020461D0603F00F010AD567 +:1055E00001F080FA012804D002287FF414AF2B4B7D +:1055F0009AE72B4B98E701F067FAF3E794F88230CB +:10560000002B7FF408AF94F8843013F00F01B3D06F +:105610001A06204602D501F089FDADE701F07AFDBA +:10562000AAE794F88230002B7FF4F5AE94F884302A +:1056300013F00F01A0D01B06204602D501F05EFD3D +:105640009AE701F04FFD97E7142284F8702083F366 +:1056500011882B462A4629462046FFF769FE85F326 +:105660001188E9E65DB1152284F8702083F3118872 +:1056700000212046D4E91D23FFF75AFEFDE60B2248 +:1056800084F8702083F311882B462A462946204649 +:10569000FFF760FEE3E700BF648200085C82000859 +:1056A0006082000838B590F870300446002B3ED078 +:1056B000063BDAB20F2A34D80F2B32D8DFE803F0DA +:1056C00037313108223231313131313131313737EF +:1056D000856FB0F886309D4214D2C3681B8AB5FB33 +:1056E000F3F203FB12556DB9302383F311882B4677 +:1056F0002A462946FFF72EFE85F311880A2384F8EF +:1057000070300EE0142384F87030302383F3118856 +:10571000002320461A461946FFF70AFE002383F3AA +:10572000118838BDC36F03B198470023E7E7002114 +:10573000204601F0E3FC0021204601F0D3FC636821 +:105740001B6813B10621204698470623D7E70000BF +:1057500010B590F870300446142B29D017D8062BBA +:1057600005D001D81BB110BD093B022BFBD800218D +:10577000204601F0C3FC0021204601F0B3FC636821 +:105780001B6813B1062120469847062319E0152B04 +:10579000E9D10B2380F87030302383F31188002384 +:1057A0001A461946FFF7D6FD002383F31188DAE77E +:1057B000C3689B695B68002BD5D1C36F03B1984761 +:1057C000002384F87030CEE70023826803750369F4 +:1057D0001B6899689142FBD25A680360426010606E +:1057E0005860704700238268037503691B689968D5 +:1057F0009142FBD85A68036042601060586070475D +:1058000008B50846302383F311880A7D0023052A52 +:1058100006D8DFE802F00B050503120E826913605B +:105820004FF0FF338361FFF7CFFF002383F311882D +:1058300008BD8269936801339360D0E90032136038 +:105840005A60EDE7FFF7C0BF054BD96808751868C7 +:10585000026853601A600122D8600275FAF7DABD57 +:10586000E86800200C4B30B5DD684B1C87B004465F +:105870000FD02B46094A684600F07EF92046FFF714 +:10588000E3FF009B13B1684600F080F9A86907B0F8 +:1058900030BDFFF7D9FFF9E7E8680020015800089C +:1058A00038B50C4D04468161EB6881689A68914275 +:1058B00003D8BDE83840FFF787BF1846FFF792FFCF +:1058C00001230146EC6020462375BDE83840FAF715 +:1058D000A1BD00BFE8680020044B1A68DB6890682F +:1058E0009B68984294BF002001207047E868002020 +:1058F000084B10B51C68D868226853601A600122F2 +:10590000DC602275FFF76EFF01462046BDE81040BF +:10591000FAF780BDE868002038B50123084C00255F +:105920002370656001F0F6FD01F01CFE0549064894 +:1059300001F0F0FE0223237085F3118838BD00BF0B +:10594000506B00206C820008E868002008B572B631 +:10595000044B186500F024FD00F0E6FD024B032225 +:105960001A70FEE7E8680020506B002000F044B990 +:10597000034A516853685B1A9842FBD8704700BFCE +:10598000001000E08B600223086108468B8270479C +:105990008368A3F1840243F8142C026943F8442C71 +:1059A000426943F8402C094A43F8242CC268A3F109 +:1059B000200043F8182C022203F80C2C002203F8D4 +:1059C0000B2C034A43F8102C704700BF2D0400082D +:1059D000E868002008B5FFF7DBFFBDE80840FFF7E7 +:1059E00031BF0000024BDB6898610F20FFF72CBF2E +:1059F000E8680020302383F31188FFF7F3BF00002D +:105A000008B50146302383F311880820FFF72AFFE9 +:105A1000002383F3118808BD064BDB6839B1426867 +:105A200018605A60136043600420FFF71BBF4FF0FB +:105A3000FF307047E86800200368984206D01A6873 +:105A40000260506018469961FFF7FCBE7047000085 +:105A500038B504460D462068844200D138BD03683D +:105A600023605C608561FFF7EDFEF4E7036810B525 +:105A70009C68A2420CD85C688A600B604C60216014 +:105A8000596099688A1A9A604FF0FF33836010BD9D +:105A9000121B1B68ECE700000A2938BF0A2170B509 +:105AA00004460D460A26601901F02EFD01F016FD90 +:105AB000041BA54203D8751C04462E46F3E70A2EA4 +:105AC00004D90120BDE8704001F064BE70BD000043 +:105AD000F8B5144B0D460A2A4FF00A07D96103F1B5 +:105AE0001001826038BF0A224160196914460160C2 +:105AF00048601861A81801F0F7FC01F0EFFC431BA7 +:105B00000646A34206D37C1C28192746354601F0D9 +:105B1000FBFCF2E70A2F04D90120BDE8F84001F0B0 +:105B200039BEF8BDE8680020F8B506460D4601F01C +:105B3000D5FC0F4A134653F8107F9F4206D12A46E0 +:105B400001463046BDE8F840FFF7C2BFD169BB68E7 +:105B5000441A2C1928BF2C46A34202D92946FFF724 +:105B60009BFF224631460348BDE8F840FFF77EBF61 +:105B7000E8680020F8680020C0E90323002310B47F +:105B80005DF8044B4361FFF7CFBF000010B5194C1F +:105B9000236998420DD08168D0E9003213605A60C1 +:105BA0009A680A449A60002303604FF0FF33A361B0 +:105BB00010BD0268234643F8102F53600022026094 +:105BC00022699A4203D1BDE8104001F097BC936866 +:105BD00081680B44936001F081FC2269E16992685D +:105BE000441AA242E4D91144BDE81040091AFFF753 +:105BF00053BF00BFE86800202DE9F047DFF8BC8004 +:105C000008F110072C4ED8F8105001F067FCD8F8B6 +:105C10001C40AA68031B9A423ED814444FF0000966 +:105C2000D5E90032C8F81C4013605A60C5F80090EE +:105C3000D8F81030B34201D101F060FC89F311882B +:105C4000D5E9033128469847302383F311886B69DF +:105C5000002BD8D001F042FC6A69A0EB040982460F +:105C60004A450DD2022001F095FD0022D8F81030EF +:105C7000B34208D151462846BDE8F047FFF728BF98 +:105C8000121A2244F2E712EB09092946384638BFB6 +:105C90004A46FFF7EBFEB5E7D8F81030B34208D01C +:105CA0001444C8F81C00211AA960BDE8F047FFF7AA +:105CB000F3BEBDE8F08700BFF8680020E868002068 +:105CC00038B501F00BFC054AD2E90845031B181949 +:105CD00045F10001C2E9080138BD00BFE8680020B5 +:105CE00000207047FEE70000704700004FF0FF30D3 +:105CF0007047000002290CD0032904D0012907486D +:105D000018BF00207047032A05D8054800EBC200E1 +:105D10007047044870470020704700BF4483000864 +:105D20004C230020F882000870B59AB0054608465A +:105D3000144601A900F0C2F801A8FBF749FE431C74 +:105D40000022C6B25B001046C5E90034237003236D +:105D5000023404F8013C01ABD1B202348E4201D8C6 +:105D60001AB070BD13F8011B013204F8010C04F8DD +:105D7000021CF1E708B5302383F311880348FFF7CD +:105D800005FA002383F3118808BD00BF586B00207B +:105D900090F8803003F01F02012A07D190F881208B +:105DA0000B2A03D10023C0E91D3315E003F0600383 +:105DB000202B08D1B0F884302BB990F88120212A0B +:105DC00003D81F2A04D8FFF7C3B9222AEBD0FAE779 +:105DD000034A426707228267C3670120704700BFFA +:105DE0004323002007B5052917D8DFE801F019166D +:105DF00003191920302383F31188104A01210190DF +:105E0000FFF76CFA019802210D4AFFF767FA0D4877 +:105E1000FFF788F9002383F3118803B05DF804FBD2 +:105E2000302383F311880748FFF752F9F2E7302354 +:105E300083F311880348FFF769F9EBE798820008BC +:105E4000BC820008586B002038B50C4D0C4C2A461B +:105E50000C4904F10800FFF767FF05F1CA0204F1DD +:105E600010000949FFF760FF05F5CA7204F1180038 +:105E70000649BDE83840FFF757BF00BF3084002017 +:105E80004C23002078820008828200088D8200085E +:105E900070B5044608460D46FBF79AFDC6B220468B +:105EA000013403780BB9184670BD32462946FBF71A +:105EB0007BFD0028F3D10120F6E700002DE9F04733 +:105EC00005460C46FBF784FD2B49C6B22846FFF772 +:105ED000DFFF08B10A36F6B228492846FFF7D8FF97 +:105EE00008B11036F6B2632E0BD8DFF88C80DFF8DD +:105EF0008C90234FDFF894A02E7846B92670BDE829 +:105F0000F08729462046BDE8F04702F05BB8252E11 +:105F10002ED1072241462846FBF746FD70B9194BA2 +:105F2000224603F1100153F8040B8B4242F8040B94 +:105F3000F9D11B78073511341370DDE70822494683 +:105F40002846FBF731FD98B9A21C0F4B1978023295 +:105F50000909C95D02F8041C13F8011B01F00F01C7 +:105F60005345C95D02F8031CF0D118340835C3E766 +:105F7000013504F8016BBFE7648300088D820008D7 +:105F80006C830008E27F000800E8F11F0CE8F11FB5 +:105F9000BFF34F8F044B1A695107FCD1D3F810217E +:105FA0005207F8D1704700BF0020005208B50D4BD2 +:105FB0001B78ABB9FFF7ECFF0B4BDA68D10704D5C0 +:105FC0000A4A5A6002F188325A60D3F80C21D2078B +:105FD00006D5064AC3F8042102F18832C3F8042129 +:105FE00008BD00BF8E8600200020005223016745B7 +:105FF00008B5114B1B78F3B9104B1A69510703D53B +:10600000DA6842F04002DA60D3F81021520705D571 +:10601000D3F80C2142F04002C3F80C21FFF7B8FF7F +:10602000064BDA6842F00102DA60D3F80C2142F044 +:106030000102C3F80C2108BD8E860020002000520A +:106040000F289ABF00F580604004002070470000D0 +:106050004FF4003070470000102070470F2808B53B +:106060000BD8FFF7EDFF00F500330268013204D1D1 +:1060700004308342F9D1012008BD0020FCE7000074 +:106080000F2838B505463FD8FFF782FF1F4CFFF7B2 +:106090008DFF4FF0FF3307286361C4F814311DD81A +:1060A0002361FFF775FF030243F02403E360E36815 +:1060B00043F08003E36023695A07FCD42846FFF7C6 +:1060C00067FFFFF7BDFF4FF4003100F009FA2846E3 +:1060D000FFF78EFFBDE83840FFF7C0BFC4F81031AE +:1060E000FFF756FFA0F108031B0243F02403C4F896 +:1060F0000C31D4F80C3143F08003C4F80C31D4F8DF +:1061000010315B07FBD4D9E7002038BD00200052D6 +:106110002DE9F84F05460C46104645EA0203DE0617 +:1061200002D00020BDE8F88F20F01F00DFF8BCB0DF +:10613000DFF8BCA0FFF73AFF04EB0008444503D1A9 +:106140000120FFF755FFEDE720222946204601F008 +:1061500007FF10B920352034F0E72B4605F1200267 +:106160001F68791CDDD104339A42F9D105F17843D7 +:106170001B481C4EB3F5801F1B4B38BF184603F15C +:10618000F80332BFD946D1461E46FFF701FF07602C +:10619000A5EB040C336804F11C0143F002033360E7 +:1061A000231FD9F8007017F00507FAD153F8042F10 +:1061B0008B424CF80320F4D1BFF34F8FFFF7E8FE7A +:1061C0004FF0FF332022214603602846336823F036 +:1061D0000203336001F0C4FE0028BBD03846B0E7AC +:1061E000142100520C2000521420005210200052A2 +:1061F0001021005210B5084C237828B11BB9FFF7C5 +:10620000D5FE0123237010BD002BFCD02070BDE80B +:106210001040FFF7EDBE00BF8E8600202DE9F04F45 +:106220000D4685B0814658B111F00D0614BF2022ED +:10623000082211F00803019304D0431E03426AD0E0 +:10624000002435E0002E37D009F11F0121F01F098D +:106250004FF00108324F05F00403DFF8D0A005EA43 +:10626000080BBBF1000F32D07869C0072FD408F1BA +:1062700001080C37B8F1060FF3D19EB9294D4946F4 +:10628000A819019201F090F9044600283AD1183675 +:10629000019A782EF3D1494601F086F90446002888 +:1062A00030D1019A4946204801F07EF9044668BB86 +:1062B000204605B0BDE8F08F0029C9D10146284627 +:1062C000029201F071F90446E0B9029AC0E713B1F5 +:1062D00078694107CBD5AC0702D578698007C6D568 +:1062E000019911B178690107C1D51820494600FB11 +:1062F00008A0CDE9022301F057F90446DDE90223A5 +:106300000028B4D04A460021204601E04A46002138 +:10631000FBF766FBCCE70246002E95D198E700BF5D +:1063200080830008C086002090860020A886002078 +:106330000121FFF773BF0000F8B5144D01241827A1 +:10634000134E40F2FF3200210120FBF749FB07FB0F +:10635000046001342A6955F80C1F01F011F9062C6C +:10636000F5D137254FF4C0542046FFF7E1FF014631 +:1063700028B122460748BDE8F84001F001B9C4EB56 +:10638000C404013D4FEAD404EED1F8BD8083000877 +:10639000A88600209086002008B101F077B97047E8 +:1063A00038B5054D00240334696855F80C0B00F02E +:1063B000A9F8122CF7D138BD8083000838B5EFF367 +:1063C00011859DB9EFF30584C4F30804302334B17B +:1063D00083F31188FFF774FC85F3118838BD83F3CC +:1063E0001188FFF76DFC84F3118838BDBDE8384093 +:1063F000FFF766BC10B5FFF7E1FF104CC008104A6C +:10640000002340EA4170C908A0FB04ECA0FB020E87 +:106410001CEB0000A1FB044CA1FB02125B41001924 +:1064200043EB0C0011EB0E0142F10002411842F166 +:106430000000090941EA007010BD00BFCFF753E327 +:10644000A59BC4200244074BD2B210B5904200D1A4 +:1064500010BD441C00B253F8200041F8040BE0B218 +:10646000F4E700BF504000580E4B30B51C6F2404B9 +:1064700005D41C6F1C671C6F44F400441C670A4C55 +:1064800002442368D2B243F480732360074B9042E6 +:1064900000D130BD441C51F8045B00B243F82050D9 +:1064A000E0B2F4E700440258004802585040005857 +:1064B00007B5012201A90020FFF7C4FF019803B02E +:1064C0005DF804FB13B50446FFF7F2FFA04205D0C8 +:1064D000012201A900200194FFF7C6FF02B010BD00 +:1064E0000144BFF34F8F064B884204D3BFF34F8F55 +:1064F000BFF36F8F7047C3F85C022030F4E700BF32 +:1065000000ED00E00144BFF34F8F064B884204D3F7 +:10651000BFF34F8FBFF36F8F7047C3F87002203007 +:10652000F4E700BF00ED00E070470000074B45F2C4 +:1065300055521A6002225A6040F6FF729A604CF679 +:10654000CC421A600122024B1A7070470048005872 +:106550003C870020034B1B781BB1034B4AF6AA2251 +:106560001A6070473C87002000480058034B1A68A7 +:106570001AB9034AD2F8D0241A607047388700202D +:1065800000400258024B4FF48032C3F8D0247047C9 +:106590000040025808B5FFF7E9FF024B1868C0F346 +:1065A000806008BD3887002070B5BFF34F8FBFF300 +:1065B0006F8F1A4A0021C2F85012BFF34F8FBFF3FA +:1065C0006F8F536943F400335361BFF34F8FBFF3B1 +:1065D0006F8FC2F88410BFF34F8FD2F8803043F62C +:1065E000E074C3F3C900C3F34E335B0103EA04064E +:1065F000014646EA81750139C2F86052F9D2203B62 +:1066000013F1200FF2D1BFF34F8F536943F480335E +:106610005361BFF34F8FBFF36F8F70BD00ED00E08C +:10662000FEE70000214B2248224A70B5904237D342 +:10663000214BC11EDA1C121A22F003028B4238BF12 +:1066400000220021FBF7CCF91C4A0023C2F8843059 +:10665000BFF34F8FD2F8803043F6E074C3F3C90024 +:10666000C3F34E335B0103EA0406014646EA817533 +:106670000139C2F86C52F9D2203B13F1200FF2D14C +:10668000BFF34F8FBFF36F8FBFF34F8FBFF36F8F8A +:106690000023C2F85032BFF34F8FBFF36F8F70BD2E +:1066A00053F8041B40F8041BC0E700BFB485000882 +:1066B00030890020308900203089002000ED00E082 +:1066C000074BD3F8D81021EA0001C3F8D810D3F84B +:1066D000002122EA0002C3F80021D3F800317047FC +:1066E0000044025870B5D0E9244300224FF0FF3532 +:1066F0009E6804EB42135101D3F80009002805DA23 +:10670000D3F8000940F08040C3F80009D3F8000B2B +:10671000002805DAD3F8000B40F08040C3F8000BE6 +:10672000013263189642C3F80859C3F8085BE0D2F7 +:106730004FF00113C4F81C3870BD0000890141F00E +:106740002001016103699B06FCD41220FFF710B9F8 +:1067500010B50A4C2046FEF79FFD094BC4F8903057 +:10676000084BC4F89430084C2046FEF795FD074BC3 +:10677000C4F89030064BC4F8943010BD4087002018 +:1067800000000840EC830008DC8700200000044083 +:10679000F883000870B503780546012B5CD1434BA4 +:1067A000D0F89040984258D1414B0E216520D3F843 +:1067B000D82042F00062C3F8D820D3F8002142F07C +:1067C0000062C3F80021D3F80021D3F8802042F002 +:1067D0000062C3F88020D3F8802022F00062C3F862 +:1067E0008020D3F88030FEF7BDF9324BE360324BA6 +:1067F000C4F800380023D5F89060C4F8003EC023E8 +:1068000023604FF40413A3633369002BFCDA0123E4 +:106810000C203361FFF7ACF83369DB07FCD412209E +:10682000FFF7A6F83369002BFCDA00262846A6609D +:10683000FFF758FF6B68C4F81068DB68C4F8146889 +:10684000C4F81C6883BB1D4BA3614FF0FF33636129 +:10685000A36843F00103A36070BD194B9842C9D1EE +:10686000134B4FF08060D3F8D82042F00072C3F889 +:10687000D820D3F8002142F00072C3F80021D3F8E9 +:106880000021D3F8802042F00072C3F88020D3F8B2 +:10689000802022F00072C3F88020D3F88030FFF708 +:1068A0000FFF0E214D209EE7064BCDE740870020CD +:1068B000004402584014004003002002003C30C055 +:1068C000DC870020083C30C0F8B5D0F89040054681 +:1068D00000214FF000662046FFF730FFD5F89410F6 +:1068E00000234FF001128F684FF0FF30C4F83438A6 +:1068F000C4F81C2804EB431201339F42C2F800691C +:10690000C2F8006BC2F80809C2F8080BF2D20B6893 +:10691000D5F89020C5F8983063621023136116698A +:1069200016F01006FBD11220FFF722F8D4F8003839 +:1069300023F4FE63C4F80038A36943F4402343F012 +:106940001003A3610923C4F81038C4F814380B4BA2 +:10695000EB604FF0C043C4F8103B094BC4F8003B58 +:10696000C4F81069C4F80039D5F8983003F1100262 +:1069700043F48013C5F89820A362F8BDC8830008CB +:1069800040800010D0F8902090F88A10D2F800389B +:1069900023F4FE6343EA0113C2F800387047000095 +:1069A0002DE9F84300EB8103D0F890500C46804667 +:1069B000DA680FFA81F94801166806F00306731EBB +:1069C000022B05EB41134FF0000194BFB604384E83 +:1069D000C3F8101B4FF0010104F1100398BF06F13A +:1069E000805601FA03F3916998BF06F50046002925 +:1069F0003AD0578A04F15801374349016F50D5F80E +:106A00001C180B430021C5F81C382B180127C3F8AC +:106A10001019A7405369611E9BB3138A928B9B0880 +:106A2000012A88BF5343D8F89820981842EA0343B4 +:106A300001F140022146C8F89800284605EB820281 +:106A40005360FFF77BFE08EB8900C3681B8A43EAAB +:106A5000845348341E4364012E51D5F81C381F431B +:106A6000C5F81C78BDE8F88305EB4917D7F8001B7B +:106A700021F40041C7F8001BD5F81C1821EA0303D4 +:106A8000C0E704F13F030B4A2846214605EB830388 +:106A90005A60FFF753FE05EB4910D0F8003923F494 +:106AA0000043C0F80039D5F81C3823EA0707D7E7B8 +:106AB0000080001000040002D0F894201268C0F892 +:106AC0009820FFF70FBE00005831D0F890304901F0 +:106AD0005B5813F4004004D013F4001F0CBF0220D5 +:106AE000012070474831D0F8903049015B5813F4C9 +:106AF000004004D013F4001F0CBF02200120704797 +:106B000000EB8101CB68196A0B6813604B68536016 +:106B10007047000000EB810330B5DD68AA69136897 +:106B2000D36019B9402B84BF402313606B8A14686B +:106B3000D0F890201C4402EB4110013C09B2B4FB98 +:106B4000F3F46343033323F0030343EAC44343F002 +:106B5000C043C0F8103B2B6803F00303012B0ED198 +:106B6000D2F8083802EB411013F4807FD0F8003BD4 +:106B700014BF43F0805343F00053C0F8003B02EBD6 +:106B80004112D2F8003B43F00443C2F8003B30BD51 +:106B90002DE9F041D0F8906005460C4606EB411314 +:106BA000D3F8087B3A07C3F8087B08D5D6F8143821 +:106BB0001B0704D500EB8103DB685B689847FA0785 +:106BC0001FD5D6F81438DB071BD505EB8403D9682D +:106BD000CCB98B69488A5A68B2FBF0F600FB1622E2 +:106BE0008AB91868DA6890420DD2121AC3E90024F3 +:106BF000302383F3118821462846FFF78BFF84F367 +:106C00001188BDE8F081012303FA04F26B8923EABD +:106C100002036B81CB68002BF3D021462846BDE8E8 +:106C2000F041184700EB81034A0170B5DD68D0F8E8 +:106C300090306C692668E66056BB1A444FF4002019 +:106C4000C2F810092A6802F00302012A0AB20ED122 +:106C5000D3F8080803EB421410F4807FD4F800093D +:106C600014BF40F0805040F00050C4F8000903EB1E +:106C70004212D2F8000940F00440C2F80009012293 +:106C8000D3F8340802FA01F10143C3F8341870BD97 +:106C900019B9402E84BF4020206020681A442E8AF3 +:106CA0008419013CB4FBF6F440EAC44040F00050C3 +:106CB000C6E700002DE9F843D0F8906005460C4681 +:106CC0004F0106EB4113D3F8088918F0010FC3F800 +:106CD00008891CD0D6F81038DB0718D500EB8103E3 +:106CE000D3F80CC0DCF81430D3F800E0DA6896452D +:106CF00030D2A2EB0E024FF000091A60C3F80490E4 +:106D0000302383F31188FFF78DFF89F3118818F082 +:106D1000800F1DD0D6F834380126A640334217D054 +:106D200005EB84030134D5F89050D3F80CC0E4B2DD +:106D30002F44DCF8142005EB0434D2F800E051684D +:106D4000714514D3D5F8343823EA0606C5F83468FB +:106D5000BDE8F883012303FA01F2038923EA020361 +:106D60000381DCF80830002BD1D09847CFE7AEEB99 +:106D70000103BCF81000834228BF0346D7F8180966 +:106D800080B2B3EB800FE3D89068A0F1040959F802 +:106D9000048FC4F80080A0EB09089844B8F1040FF0 +:106DA000F5D818440B4490605360C8E72DE9F84FBC +:106DB000D0F8905004466E69AB691E4016F48058B6 +:106DC0006E6103D0BDE8F84FFEF7D6BA002E12DA96 +:106DD000D5F8003E9B0705D0D5F8003E23F003030D +:106DE000C5F8003ED5F80438204623F00103C5F865 +:106DF0000438FEF7EFFA370505D52046FFF772FC99 +:106E00002046FEF7D5FAB0040CD5D5F8083813F0B3 +:106E1000060FEB6823F470530CBF43F4105343F494 +:106E2000A053EB6031071BD56368DB681BB9AB6906 +:106E300023F00803AB612378052B0CD1D5F8003E75 +:106E40009A0705D0D5F8003E23F00303C5F8003EAD +:106E50002046FEF7BFFA6368DB680BB1204698470F +:106E6000F30200F1BA80B70226D5D4F8909000273B +:106E70004FF0010A09EB4712D2F8003B03F440231C +:106E8000B3F5802F11D1D2F8003B002B0DDA6289C7 +:106E90000AFA07F322EA0303638104EB8703DB6842 +:106EA000DB6813B13946204698470137D4F894304F +:106EB000FFB29B689F42DDD9F00619D5D4F8900047 +:106EC000026AC2F30A1702F00F0302F4F012B2F5DD +:106ED000802F00F0CA80B2F5402F09D104EB830364 +:106EE000002200F58050DB681B6A974240F0B080BA +:106EF0003003D5F8185835D5E90303D500212046CD +:106F0000FFF746FEAA0303D501212046FFF740FE06 +:106F10006B0303D502212046FFF73AFE2F0303D56A +:106F200003212046FFF734FEE80203D50421204662 +:106F3000FFF72EFEA90203D505212046FFF728FE04 +:106F40006A0203D506212046FFF722FE2B0203D555 +:106F500007212046FFF71CFEEF0103D5082120463C +:106F6000FFF716FE700340F1A780E90703D5002163 +:106F70002046FFF79FFEAA0703D501212046FFF711 +:106F800099FE6B0703D502212046FFF793FE2F07DA +:106F900003D503212046FFF78DFEEE0603D504211D +:106FA0002046FFF787FEA80603D505212046FFF7F8 +:106FB00081FE690603D506212046FFF77BFE2A06DF +:106FC00003D507212046FFF775FEEB0574D5204653 +:106FD0000821BDE8F84FFFF76DBED4F890904FF050 +:106FE000000B4FF0010AD4F894305FFA8BF79B68DE +:106FF0009F423FF638AF09EB4713D3F8002902F45C +:107000004022B2F5802F20D1D3F80029002A1CDAC3 +:10701000D3F8002942F09042C3F80029D3F80029A0 +:10702000002AFBDB3946D4F89000FFF787FB228962 +:107030000AFA07F322EA0303238104EB8703DB68E0 +:107040009B6813B13946204698470BF1010BCAE7FC +:10705000910701D1D0F80080072A02F101029CBFFC +:1070600003F8018B4FEA18283FE704EB830300F590 +:107070008050DA68D2F818C0DCF80820DCE9001C7F +:10708000A1EB0C0C00218F4208D1DB689B699A6848 +:107090003A449A605A683A445A6029E711F0030F5B +:1070A00001D1D0F800808C4501F1010184BF02F8C4 +:1070B000018B4FEA1828E6E7BDE8F88F08B50348CA +:1070C000FFF774FEBDE80840FDF7DCB940870020FB +:1070D00008B50348FFF76AFEBDE80840FDF7D2B9DE +:1070E000DC870020D0F8903003EB4111D1F8003B51 +:1070F00043F40013C1F8003B70470000D0F8903013 +:1071000003EB4111D1F8003943F40013C1F8003901 +:1071100070470000D0F8903003EB4111D1F8003BEC +:1071200023F40013C1F8003B70470000D0F8903002 +:1071300003EB4111D1F8003923F40013C1F80039F1 +:107140007047000030B50433039C0172002104FB3A +:107150000325C160C0E90653049B0363059BC0E996 +:107160000000C0E90422C0E90842C0E90A114363F3 +:1071700030BD00000022416AC260C0E90411C0E9CC +:107180000A226FF00101FEF763BC0000D0E904326F +:10719000934201D1C2680AB9181D70470020704798 +:1071A000036919600021C2680132C260C2691344D8 +:1071B00082699342036124BF436A0361FEF73CBCCA +:1071C00038B504460D46E3683BB162690020131DE3 +:1071D0001268A3621344E36207E0237A33B92946B5 +:1071E0002046FEF719FC0028EDDA38BD6FF00100EB +:1071F000FBE70000C368C269013BC36043691344F5 +:1072000082699342436124BF436A436100238362DE +:10721000036B03B11847704770B53023044683F3FE +:107220001188866A3EB9FFF7CBFF054618B186F391 +:107230001188284670BDA36AE26A13F8015B934285 +:10724000A36202D32046FFF7D5FF002383F3118802 +:10725000EFE700002DE9F84F04460E461746984622 +:107260004FF0300989F311880025AA46D4F828B0D8 +:10727000BBF1000F09D141462046FFF7A1FF20B125 +:107280008BF311882846BDE8F88FD4E90A12A7EBE2 +:10729000050B521A934528BF9346BBF1400F1BD9EB +:1072A000334601F1400251F8040B914243F8040BBC +:1072B000F9D1A36A403640354033A362D4E90A23AA +:1072C0009A4202D32046FFF795FF8AF31188BD4208 +:1072D000D8D289F31188C9E730465A46FAF75AFBE3 +:1072E000A36A5E445D445B44A362E7E710B5029C79 +:1072F0000433017203FB0421C460C0E906130023B8 +:10730000C0E90A33039B0363049BC0E90000C0E9A2 +:107310000422C0E90842436310BD0000026A6FF016 +:107320000101C260426AC0E904220022C0E90A22C7 +:10733000FEF78EBBD0E904239A4201D1C26822B97C +:10734000184650F8043B0B60704700231846FAE7D4 +:10735000C3680021C2690133C36043691344826971 +:107360009342436124BF436A4361FEF765BB00005B +:1073700038B504460D46E3683BB1236900201A1D69 +:10738000A262E2691344E36207E0237A33B9294633 +:107390002046FEF741FB0028EDDA38BD6FF0010012 +:1073A000FBE7000003691960C268013AC260C26964 +:1073B000134482699342036124BF436A036100233B +:1073C0008362036B03B118477047000070B5302328 +:1073D0000D460446114683F31188866A2EB9FFF7DD +:1073E000C7FF10B186F3118870BDA36A1D70A36A30 +:1073F000E26A01339342A36204D3E169204604396F +:10740000FFF7D0FF002080F31188EDE72DE9F84F5A +:1074100004460D46904699464FF0300A8AF311888B +:107420000026B346A76A4FB949462046FFF7A0FF9A +:1074300020B187F311883046BDE8F88FD4E90A07F8 +:107440003A1AA8EB0607974228BF1746402F1BD9C8 +:1074500005F1400355F8042B9D4240F8042BF9D167 +:10746000A36A40364033A362D4E90A239A4204D384 +:10747000E16920460439FFF795FF8BF311884645F3 +:10748000D9D28AF31188CDE729463A46FAF782FA2B +:10749000A36A3D443E443B44A362E5E7D0E90423AC +:1074A0009A4217D1C3689BB1836A8BB1043B9B1A84 +:1074B0000ED01360C368013BC360C3691A4483697B +:1074C0009A42026124BF436A03610023836201235D +:1074D000184670470023FBE700F060BA014B586A7A +:1074E000704700BF000C0040034B002258631A6134 +:1074F0000222DA60704700BF000C0040014B0022FE +:10750000DA607047000C0040014B5863704700BFC1 +:10751000000C0040024B034A1A60034A5A6070474D +:10752000908800203089002000000220074B49424B +:1075300010B55C68201A08401968821A8A4203D381 +:10754000A24201D85A6010BD0020FCE790880020BC +:1075500008B5302383F31188FFF7E8FF002383F396 +:10756000118808BD04480121044B03600023C0E9D1 +:1075700001330C3000F016B99888002051750008CE +:10758000CB1D083A23F00703591A521A012110B4EF +:10759000D2080024C0E9004384600C301C605A60AB +:1075A0005DF8044B00F0FEB82DE9F84F364ECD1DC6 +:1075B0000F46002818BF0646082A4FEAD50538BFEF +:1075C000082206F10C08341D9146404600F006F9E9 +:1075D00009F10701C9F1000E224624686CB9404642 +:1075E00000F006F93368CBB308224946E800984713 +:1075F000044698B340E9026730E004EB010CD4F88C +:1076000004A00CEA0E0C0AF10100ACF1080304EB33 +:10761000C0009842E0D9A0EB0C0CB5EBEC0F4FEAA0 +:10762000EC0BD9D89C421CD204F10802AB45A3EB69 +:1076300002024FEAE202626009D9691CED43206848 +:1076400003EBC1025D44556043F8310022601C46E3 +:107650005F60404644F8086B00F0CAF82046BDE879 +:10766000F88FAA45216802D111602346EFE7013562 +:1076700004EBC50344F8351003F10801401AC010AB +:1076800058601360F1E700BF98880020F8B550F803 +:10769000043C044650F8085CA0F1080607332F1D8F +:1076A0000C35DB0840F8043C284600F097F83B46D0 +:1076B0009F421A6801D0B34228D20AB1964225D21D +:1076C00044F8082C54F8042C1E60013254F8081CAD +:1076D00006EBC200814206D14868024444F8042CFB +:1076E0000A6844F8082C5868411C03EBC1018E421B +:1076F00007D154F8042C013202445A6054F8082C83 +:107700001A602846BDE8F84000F072B81346CFE78B +:10771000FEE7000070B51B4B0025044686B058609C +:107720000E4685620163FCF785FE04F11003A56037 +:10773000E562C4E904334FF0FF33C4E90044C4E90F +:107740000635FFF7CBFE2B46024604F134012046F6 +:10775000C4E9082380230C4A2565FEF713F90123A9 +:107760000A4AE06000920375684672680192B26846 +:10777000CDE90223064BCDE90435FEF72BF906B01F +:1077800070BD00BF506B002004840008098400080D +:1077900011770008024AD36A1843D062704700BFCD +:1077A000E8680020C0E90000816070478368013B01 +:1077B000002B10B583600CDA074BDC684368A061CE +:1077C000206063601C6044600520FEF73DF8A069FE +:1077D00010BD0020FCE700BFE868002008B530239A +:1077E00083F31188FFF7E2FF002383F3118808BDBC +:1077F00008B5302383F3118883680133002B83603D +:1078000007DC036800211A68026050601846FEF722 +:1078100047F8002383F3118808BD00004B684360DC +:107820008B688360CB68C3600B6943614B690362FB +:107830008B6943620B6803607047000008B53C4BDE +:1078400040F2FF713B48D3F888200A43C3F88820F0 +:10785000D3F8882022F4FF6222F00702C3F88820C0 +:10786000D3F88820D3F8E0200A43C3F8E020D3F807 +:1078700008210A43C3F808212F4AD3F808311146DA +:10788000FFF7CCFF00F5806002F11C01FFF7C6FF97 +:1078900000F5806002F13801FFF7C0FF00F580605D +:1078A00002F15401FFF7BAFF00F5806002F17001A8 +:1078B000FFF7B4FF00F5806002F18C01FFF7AEFF27 +:1078C00000F5806002F1A801FFF7A8FF00F58060D5 +:1078D00002F1C401FFF7A2FF00F5806002F1E001B0 +:1078E000FFF79CFF00F5806002F1FC01FFF796FFB7 +:1078F00002F58C7100F58060FFF790FF00F01AF937 +:107900000E4BD3F8902242F00102C3F89022D3F834 +:10791000942242F00102C3F894220522C3F8982071 +:107920004FF06052C3F89C20054AC3F8A02008BD60 +:1079300000440258000002581084000800ED00E0E6 +:107940001F00080308B500F0D7FAFDF7E5FF104B5C +:10795000D3F8DC2042F04002C3F8DC20D3F8042145 +:1079600022F04002C3F80421D3F80431094B1A680D +:1079700042F008021A601A6842F004021A60FEF728 +:10798000F5FDFEF7D9FCBDE80840FEF75DBA00BF83 +:10799000004402580018024870470000114BD3F809 +:1079A000E82042F00802C3F8E820D3F8102142F0A2 +:1079B0000802C3F810210C4AD3F81031D36B43F0FE +:1079C0000803D363C722094B9A624FF0FF32DA6291 +:1079D00000229A615A63DA605A6001225A611A6081 +:1079E000704700BF004402580010005C000C0040CB +:1079F000094A08B51169D3680B40D9B29B076FEAF1 +:107A00000101116107D5302383F31188FDF7AEFF23 +:107A1000002383F3118808BD000C0040064BD3F807 +:107A2000DC200243C3F8DC20D3F804211043C3F860 +:107A30000401D3F8043170470044025808B53C4BA8 +:107A40004FF0FF31D3F8802062F00042C3F880206D +:107A5000D3F8802002F00042C3F88020D3F88020C1 +:107A6000D3F88420C3F88410D3F884200022C3F80C +:107A70008420D3F88400D86F40F0FF4040F4FF002A +:107A800040F4DF4040F07F00D867D86F20F0FF401F +:107A900020F4FF0020F4DF4020F07F00D867D86F8B +:107AA000D3F888006FEA40506FEA5050C3F888005E +:107AB000D3F88800C0F30A00C3F88800D3F8880020 +:107AC000D3F89000C3F89010D3F89000C3F890203A +:107AD000D3F89000D3F89400C3F89410D3F894002E +:107AE000C3F89420D3F89400D3F89800C3F8981002 +:107AF000D3F89800C3F89820D3F89800D3F88C00F6 +:107B0000C3F88C10D3F88C00C3F88C20D3F88C0009 +:107B1000D3F89C00C3F89C10D3F89C10C3F89C20A9 +:107B2000D3F89C30FCF730FEBDE8084000F0B8B94F +:107B30000044025808B50122534BC3F80821534BA7 +:107B4000D3F8F42042F00202C3F8F420D3F81C2149 +:107B500042F00202C3F81C210222D3F81C314C4B24 +:107B6000DA605A689104FCD54A4A1A6001229A6088 +:107B7000494ADA6000221A614FF440429A61444B4C +:107B80009A699204FCD51A6842F480721A603F4BDD +:107B90001A6F12F4407F04D04FF480321A6700222B +:107BA0001A671A6842F001021A60384B1A685007C7 +:107BB000FCD500221A611A6912F03802FBD10121AA +:107BC00019604FF0804159605A67344ADA62344A8A +:107BD0001A611A6842F480321A602C4B1A689103B9 +:107BE000FCD51A6842F480521A601A689204FCD5D7 +:107BF0002C4A2D499A6200225A63196301F57C01CF +:107C0000DA6301F5E77199635A64284A1A64284ACD +:107C1000DA621A6842F0A8521A601C4B1A6802F025 +:107C20002852B2F1285FF9D148229A614FF4886254 +:107C3000DA6140221A621F4ADA641F4A1A651F4A33 +:107C40005A651F4A9A6532231E4A1360136803F06F +:107C50000F03022BFAD10D4A136943F0030313619A +:107C6000136903F03803182BFAD14FF00050FFF7D7 +:107C7000D5FE4FF08040FFF7D1FE4FF00040BDE849 +:107C80000840FFF7CBBE00BF0080005100440258FF +:107C90000048025800C000F0020000010000FF018F +:107CA000008890083220600063020901470E050831 +:107CB000DD0BBF0120000020000001100910E000D2 +:107CC00000010110002000524FF0B04208B5D2F878 +:107CD000883003F00103C2F8883023B1044A1368E6 +:107CE0000BB150689847BDE80840FCF7CBBB00BF1C +:107CF000B08800204FF0B04208B5D2F8883003F0C9 +:107D00000203C2F8883023B1044A93680BB1D068EB +:107D10009847BDE80840FCF7B5BB00BFB08800201D +:107D20004FF0B04208B5D2F8883003F00403C2F82F +:107D3000883023B1044A13690BB150699847BDE8F4 +:107D40000840FCF79FBB00BFB08800204FF0B04256 +:107D500008B5D2F8883003F00803C2F8883023B1A0 +:107D6000044A93690BB1D0699847BDE80840FCF715 +:107D700089BB00BFB08800204FF0B04208B5D2F8F0 +:107D8000883003F01003C2F8883023B1044A136A24 +:107D90000BB1506A9847BDE80840FCF773BB00BFC1 +:107DA000B08800204FF0B04310B5D3F8884004F4F9 +:107DB0007872C3F88820A30604D5124A936A0BB1DF +:107DC000D06A9847600604D50E4A136B0BB1506B0E +:107DD0009847210604D50B4A936B0BB1D06B98479B +:107DE000E20504D5074A136C0BB1506C9847A30504 +:107DF00004D5044A936C0BB1D06C9847BDE8104091 +:107E0000FCF740BBB08800204FF0B04310B5D3F86A +:107E1000884004F47C42C3F88820620504D5164AE1 +:107E2000136D0BB1506D9847230504D5124A936D1D +:107E30000BB1D06D9847E00404D50F4A136E0BB117 +:107E4000506E9847A10404D50B4A936E0BB1D06EC7 +:107E50009847620404D5084A136F0BB1506F9847D6 +:107E6000230404D5044A936F0BB1D06F9847BDE843 +:107E70001040FCF707BB00BFB088002008B50348DE +:107E8000FCF7EAFDBDE80840FCF7FCBA7864002086 +:107E900008B5FFF7ADFDBDE80840FCF7F3BA0000F8 +:107EA000062108B50846FCF75DFE06210720FCF711 +:107EB00059FE06210820FCF755FE06210920FCF793 +:107EC00051FE06210A20FCF74DFE06211720FCF783 +:107ED00049FE06212820FCF745FE09217A20FCF7FF +:107EE00041FE07213220FCF73DFE0C215220BDE867 +:107EF0000840FCF737BE000008B5FFF79FFD00F013 +:107F00000DF8FCF7EDFFFDF7C5F9FDF797F8FFF762 +:107F100043FDBDE80840FFF7DFBA00000023054A33 +:107F200019460133102BC2E9001102F10802F8D101 +:107F3000704700BFB08800200B460146184600F08D +:107F400001B8000010B5054C13462CB10A46014695 +:107F50000220AFF3008010BD2046FCE700000000C7 +:107F600010B501390244904201D1002005E00378A8 +:107F700011F8014FA34201D0181B10BD0130F2E7E8 +:107F80002DE9F041A3B1C91A17780144044603F161 +:107F9000FF3C8C42204601D9002009E00578BD4213 +:107FA00004F10104F5D10CEB0405D618A54201D16A +:107FB000BDE8F08115F8018D16F801EDF045F5D01A +:107FC000E7E70000034611F8012B03F8012B002A14 +:107FD000F9D170476F72672E6172647570696C6F4A +:107FE000742E437562654F72616E67652D706572A0 +:107FF0006970680053544D333248373F3F3F005358 +:10800000544D3332483733782F3732780053544D3C +:108010003332483734332F3735332F37353000007C +:1080200001105A0003105900012058000320560087 +:1080300040A2E4F1646891060041A3E5F26569920B +:108040000700000043414E464449666163653A209B +:108050004D6573736167652052414D204F7665729F +:10806000666C6F77210000004261642043414E49F5 +:108070006661636520696E6465782E00000100000A +:108080000001FF0000A0004000A40040000000002C +:1080900000000000512B0008D9230008D932000845 +:1080A00049240008552400086D280008CD25000843 +:1080B0001124000815240008ED230008D52300082A +:1080C00029280008F9230008413400080524000885 +:1080D000FD27000801040E05054B02020E05054BA5 +:1080E00004010E05054B05010B04044B08010603B2 +:1080F0000346000010000240080002400008024051 +:1081000000000B0028000240080002400408024062 +:1081100006010C004000024008000240080802402E +:1081200010020D0058000240080002400C080240F6 +:1081300016030E00700002400C00024010080240BE +:1081400000040F00880002400C00024014080240A6 +:1081500006051000A00002400C0002401808024072 +:1081600010061100B80002400C0002401C0802403A +:1081700016072F00100402400804024020080240A5 +:108180000008380028040240080402402408024085 +:108190000609390040040240080402402808024051 +:1081A000100A3A0058040240080402402C08024019 +:1081B000160B3B00700402400C04024030080240E1 +:1081C000000C3C00880402400C04024034080240C9 +:1081D000060D4400A00402400C040240380802408E +:1081E000100E4500B80402400C0402403C08024056 +:1081F000160F46000096000000000000000000007E +:10820000000000000000000000000000000000006E +:10821000A14E00088D4E0008C94E0008B54E00085A +:10822000C14E0008AD4E0008994E0008854E00086A +:10823000D54E000800000000B94F0008A54F000807 +:10824000E14F0008CD4F0008D94F0008C54F000886 +:10825000B14F00089D4F0008ED4F000800000000DE +:108260000100000000000000633000006882000888 +:1082700040690020506B00204172647550696C6F3A +:10828000740025424F415244252D424C0025534550 +:108290005249414C2500000002000000000000008F +:1082A000D9510008495200084000400000840020D5 +:1082B0001084002002000000000000000300000005 +:1082C00000000000915200080000000010000000B3 +:1082D00020840020000000000100000000000000D9 +:1082E0004087002001010200E55D0008F55C000800 +:1082F000915D0008755D00084300000000830008E0 +:1083000009024300020100C0320904000001020218 +:1083100001000524001001052401000104240202CB +:108320000524060001070582030800FF0904010077 +:10833000020A000000070501024000000705810253 +:1083400040000000120000004C83000812011001E0 +:10835000020000400912415700020102030100001F +:108360000403090425424F41524425003031323381 +:108370003435363738394142434445460000000021 +:108380000001002000FF010002000000000000309A +:1083900000000400080000000000002400000800A5 +:1083A000040000000004000000FC000002000000C7 +:1083B00000000430008000000800000000000038C9 +:1083C000000001000100000000000000ED53000863 +:1083D000A55600085157000840004000788800204A +:1083E00078880020010000008888002080000000BC +:1083F0004001000008000000000100000010000023 +:10840000080000006D61696E0069646C6500000021 +:108410000000802A00000000AAAAAAAA00000024E6 +:10842000FFFF00000000000000A00A000021000281 +:1084300000000000AAAAAAAA00000000FFFF000096 +:1084400000000009000009001400005400000000B2 +:10845000AAAAAAAA14000054FFFF0000000000000E +:10846000000000000A40100000000000AAAA8AAA2A +:1084700000401000FFFF0000990000000000000015 +:108480000081020000000000AAAAAAAA004101007F +:10849000FFFF000000000070070000000000000067 +:1084A00000000000AAAAAAAA00000000FFFF000026 +:1084B00000000000000000000000000000000000BC +:1084C000AAAAAAAA00000000FFFF00000000000006 +:1084D000000000000000000000000000AAAAAAAAF4 +:1084E00000000000FFFF000000000000000000008E +:1084F0000000000000000000AAAAAAAA00000000D4 +:10850000FFFF00000000000000000000000000006D +:1085100000000000AAAAAAAA00000000FFFF0000B5 +:10852000000000000000000000000000000000004B +:10853000AAAAAAAA00000000FFFF00000000000095 +:1085400000000000000000007805000000000000AE +:1085500000001E0000000000FE2A0100D2040000FE +:10856000FF000000586B002078640020000000002D +:10857000F47F000883040000FF7F0008500400001F +:108580000D80000800960000000008009600000022 +:1085900000080000040000006083000800000000E4 +:1085A00000000000000000000000000000000000CB +:0485B00000000000C7 :00000001FF diff --git a/Tools/bootloaders/CubeOrangePlus-bdshot_bl.bin b/Tools/bootloaders/CubeOrangePlus-bdshot_bl.bin index a2281bddfe649696298906a6dd270c418c06ce69..c3f9a3742bdfd822e13b79a6fdd03f7c6d81cc2d 100755 GIT binary patch delta 4124 zcmY*cdt4OP^}l!aH47pTL|)>~vLK6yF5-&_DbL|0q9HcM=c1ysA__i!5v_%U7%|2w z9!=$8B(WN;@e|30M$`?VF|{t z{k@3#vz&hCF2Xh-JlGx`oI}|A3}Gu#(YXuF0@G1rLmWbMB7THKYVZlpMK_4@-1^bs zW6!)g+)L^CU!2(m|EBp&!>jgxQ-;=aEZk+*YoZ6V;$|pT4weDZG+6U`k(QLMNDXkfgL4-mG+M7U80U`F6%>VeY0`RVKWiRku*wv!k$pLbSt*!YRL zjCe~X=7OHMIUKJNH7;|mN@QHIsF!6UABC-#UBvutPX$NBiy#FW{YqRKo|ymM6P8QF z;}G*qEX{$!XToBC=l!FT#0)sq{6i<{2*9Cph?$5&L%EzK<@XrR4K- zvvlGQ@Lrga-h!^MP4pc|4c|aNfHUDc{lDwC)R={&y4no(rbfI4=@F6iZCD-=7GgM0 zh^8Q1&=f?}HHFt^FgF9TG~!3FFT$X|*lrd$Y@L9QBOLS!Y#H|wecS$zaT=;O;e0}H zJ_T?)GL~k8W_(PK zTjigKiE`n57|)2Wd(?alrxBa`i8;HQ#F+AHVvC-1uS=Z}WHVj3>Iz8oyx~|6$eGd# z>?YAZbA1aby6to&)g8;w+*IaGr>SwCAL6%Oy>WKW+4G`Pb<%m;c3okgOW&BtK)2*1?{ zz0

#crQb&d`1^CY#VYJGq{r58&(BH|ch0O_|~|4J{K8(E#74Y@=JCG}RXIuB>V% z#_%Z4Ho@YNnq-rWiwdudwyDH&=uMqXV<6_aeSTBq54FYDNc35!N~HGA=aLxO3s2Lk z==-oCJ%%oYL+Oe11-P6(g-!w~eJ15#N=6r+!2XPv4Cmd+y!oUojTyw#XP(nDv2kou zV}`byjW*+|S3_l{oz91ttUe^WZr0Bp8LX2zZe1g1Fpx zS_uns6X+tS%}qy_pXYu-H{0v;iYSVE`Ed+=4txuD1kH3?c-2|Q1F`m5o;Gmhj5ryZ z3SXjK@U+ktcxAA|8EE{EbLz;uOR!)@ZAp~i2V!@d3pGmDC73+yUN zrnUCYq8u6%IghX;i=@4oOt@7khz!CdD7svd=2CRe5iS)H=D$aOW4}HhC>~y0aYWcV z?q~UXf+fo>HM{Q%v$Oh~q5MSNEgga*#U{KlJBuU3HoIxVv;18l5v|q_S@k*<8^JCW zA64NV{r<%`S_+*nKJ@SGf8F`psA{8`|E^3W9=3NZ%%k)m=ofX+bI`SDPw95~n(Gg_ z3{RVkRh&S?JN?Yr00$vsER5*+gpeXpPExppd=AQgbPVeh-i2Iw_r4|cy39k|3AIzvlWiJhcUq|A?$Q0UDDwD7mxbU91`=g(m}tp z+BaBU*h)_+XLkv}(mZ{(mmXG~V#Fl)c4-+##{6Z$K`R{8lomydLwCQ+GJ8-egsNo* zT`Fb-DhhCPSxi{0++quD4M3|w$tWlCX5R6jB8`f9aC=#ZuRmHk9t2?f63EMp^d1Som5-{ zT_pzHZr2$nBW{C-$d|bqkrzSmiejID2F$F8Q4O$h#R2_&S@|#(zXHFNGxeX1wCwi6 zl^RN~Lh-6p`YqJ2`V|G}S(U&&8Dzw8wi#xQzKECuK z)ey9L0C!eL&`)7-bwYC203&t|WJYNDV;S17elyM-7Ryh^S$#S1v(sma`X=QZ4_s-u zTNhmpfhU}+P0Rb?`}d$^O_QJPJP5A{zFA;p#A473Ni-Q!g#UYe$)Cu zUY5FL^0davJQ_!3>2D)^7V=9Y`~~EnjPMHN=SKLO$Uhw6Cy~ED!Y?5|F~aX6ZyDk4 zvDj#onWt}7Dh_4opiISPcOZPdHa3yX|IF2btH7oa@$p5{L9&>Igdnn+g_Cf%2-ZRd z!m8LdDpq-A={jsFi=%JB(Xu?frHQaFV7mMU9+ibqjQDk#co!C~%Teyzb;*I+etMWO z`sK?K?f1)-r6{Oh=X?#*?@910&&;$UTZ^bdRA4Q{;%*E` z-^qXZ5JP2}YO8O1C|}{2%EzJhGL|lndnkt)k6@jYqv1!Pwi}>4+u!ee%;d>Ex~OzK zDFf00aF)l>9T2!a$!{KxS^4^Ulnd?i*MC8&9U?1s(h4|M@j==ouaW|id$<|2v1Rh( zo;-}us3F~y9@?148*-@_j&17&j@Kx+?miON)kDz@bAXC|UN}%`iG6}a!R=l=dFHn6 ze9V|Q_PdH4knEl>oeWPVztz*=tbyLj#K40dZC_RZoi@?7z%|N1#rGk8qamo-ajEZ; znx+Uk5Y!zz|xHdM*j)?cH<&_4Gvz}kRRdR#)OCyE+uGF^NFcnYH<e^aR}BydW&F;D2q;Gvlu}+PZb>>;CzT7=>9=8?C+& zSr%hs^1revRY*k+;mGr|Cx+oxX!xv z;gF>XUJ19u)#lF!^J+e~UGvC5>4aH=Q8Zu>?vpLN%aO4?j-MsS(hAtOB_un|yK=jk zkH;@1c{wZB-eSG)l%;-;%X!?&VdbRsS9;IFz+Ej**mTXQT$E|8M5xQq^jHP9bwFAM zeOru+7ms}1IP~>#UM=qAk3FY_V;KQggIdk#(d{YQ&JFo`=rNT~2Bf$_v!MQeeka44|G9%fpY!r(n2CM2mSS;PxwRq7iv_z6*3Mq3VL)GS$+h3Y z;`5+|9n$R^&<*LdL%IM*N-3@dl}B&fhH?waM3j{topCD4a?dE^1e7+Eu_#MX zK0kEdxTWQoq}etZ`w}tJ?U82o<7`|W$#2l3mG1O=r6Z77S41DeD|OQ`ia)N4p~vBN zT|X7z>)pjP9OB%qQaFjvHuOp~c}= zq5cpq{>{x{VaS_K6^@t;g-H0uS5=1LPu{*Swu&*E-h*O9* z#5;(+h$=)ELb0RD1Ai+mL`B9l*nc{_k!sqOqH`#1G|+O`*=P#hyAB=Uz>-l$A~LbV z58!AlptC^V^nt!>IXYXR6y=>wD>b2lTumXNIXuqUG)%)q4(UDOb9meUgK2Crn=dOU`ck_M!{?}f6 zoweV4t$f?Veb~e8egQgLQ<5jNHZhHzaF-DFHq&GguH`X}N?;ljp^VT%=ptMbTE{*I zHLd+ottWZyl5I>=LvT=itTvx%ZgNbMM~e5hky%I@Y03yKglo&X&MO@9Bw(Gz_E3d&D+-lX>AwO|7mMHR7@g)6-hZG4>W4~a2 zjAt;^IK)1_j+qELOy<#qar88(wLT%kVbRSACL2WVDD!+Thxt_*r4GecOB z`QfIz&;pfs%l0?*AOzj_GQ;r^WhW_b*qquj1q|Bq0+Rv$jCEsk;3MoF`#$7jaZpyE zDDy(FJ-AybF!3L_Kd2)7udPgza#u8;cr<&nTFA0OOwut<+>N2Z2DpyXfT%QNv)ltT1@r7qe{<9CjT z0wx~9xMva|3yYtLNND!{r<27EIhDdsPS$&ihW?NcKm*YeatY5eU>4iXXM)rLe>t5w zvq+eis}}zUk4EU>9G;I@2Rkq$at(CiiO8lP*I?=vqjhp~W47k1O1y_zQPFS`%cCN~ zOAK94AT@B7viC^QcD4q7Z9;20~+UNLLlpPM^hVe^apY8kcD$qvL ze8Ooyd3Y^40cNA>`M9Y0UYPmV;j**d!|hBnu8{HHPGsi;B z3kvHiBX|4C3=oq`#=$mlX9|res-FLy8Bd9x+|OG|LqSC%*0RRYESX zSpRte#lWk?tFFn-9oed@zPZ8_l^E`N>|~_xb5(q*r;Wwwx@`599!-}@+=^Ru$+U1M zbWvc(^SU+Kle826q#2#EW$|hy)MH_60<6Hg*cE;^d`)|7*JJ-%nf%AWRV~Xo>e)=^ z>LJS|sbS((UQmk5-CKmzt{8#om;1ALS^6DbOw>auK1wWw8ry=TVJ$SXDAfhAKWLvM#ntAvWQoj2V!DrdhiJ)8tS5N-nY3 zlTL*gVe6YUnS-AYvNpmeSf3RK8}LY$30C37tcj3|itK4H9cN^phqI{4Spt8+@|qAC2f8yq%|mU8oY0VI!KTti&=Zi?KyWfOPC4*?`xm z3`A{yqLLG(UYwdA4>z$aKNZn{?O>r9i0&07axekIi#LZRxKjniN&6kK@kIgJ_!>@p9*-6;fgXf;RUuyv_c}xL ze|JuL(sl~#=PjZsIp$Rc9U1zvo>x|q1=QtsW^!u^1!~iYWR}vku$qj8U3OB4KvRXf4b=T>$ zS#47+Jfwi}*zs~AEW*B*e+udveB1d(OoQGi{8+6Jn{D4LE(EY**wS8j2QM$(K}V;e zG^+648OF?_Jo(vFPIQtym$NcOdz9l! ziLysKNBMYfcA}uXKbLWP`|h$z^TW(_ocOg@d9v1iY9Gb8UouT1*8Q?A;8Ty!D(*F( zkFc_a0F}JB3p#!8>s&lkR;W$$!ahYOCmQg6S#_ep!wa%>ib6%>gOKLw_S$^LKzzv# zhRhhI9|;Gp)EUE42{yf=Q|C~S0C6!Me2O9In@)b~n z{pI1>@Hh%l2q5%05RRp2djDXIFjDd{~_?;6U9@)J6; z{Vx7yyfGp{NTbo)hkkbYPgGt7-hRiGNxSl;%Wf4I@9Opw0;&CdtXZ)?aLE^F-D(ZU zMGGh9V3>6>Bx0d8Wn#=w3-x{ZuEJy#_T{IJ>{4|VOTKb}6O}_Ns}2t+wQmYVd4WH0 zJSX9hak zf_=h@=T*~3m#Z?!0rAzY9&e58JY6J3sb1?Nq6n=rwlj>)2nGbC-nvo(qIgxsr{92iTp@OjTBe!-Tq`Wv9sWN=Lry~z!=A7?7P zl%g5a9sE>iKRn@qqmT~vkjJN+=z#V@L016c&s4XZ<^`4So!-R~&pUv+;r4)d+k>m? zQsG-XR2LC=#M9^G1UBJ69Bs~pc&^SA@}|dcAU7DMBvmbPjnRSl7OL0kLf6~B8u&^H z8RmanQvS=~OG*}E`dS^=Z^xx;mueT%Kz-YB4()4GqV~Fc=Q^W^83v_yX@Q>=QfV>L ziw31_s9HAw2k`#7<8TNMuGho6*t>pFa&5Otc#f6^_+Y&(?e!Wh!n&DVyfC#(mRh{Y z)^Qfrb-+?#xFxc<}YMfU#$SyZtEx_DY?YwJ|jQ(2#o0SFYWuepK#F4YtpG zl@2}AWL}|lzA_>!GjHw3O&jM?wt9YJO5pE3lSgjNGrU(iW>aiZ(9}>}zW`3zmedz3 z;YU2$kQgG%(^RUwk@vVh{sQ_=H1dkVhwQ{v6lEfVt?XR z;&9@f#75#4k5<2lxQW9L(VXT>?3&}C8?`Ni@CGWjmp~G}ygi+RGq`7a zJY2(`?St@Jn{7uYfXY_3a{#!YVJzAe8=5-oN72>y=DTR+MZ$U9x+}{xYp7%80jtgW zfwet*;G*A+OLy5MUI?`;wRoh=A){cT#eHF@dzl{%w>HxwO~(hjs#R>rBhAOk-R9^i z?$LPSi?|*s#r@Vubg|!=PPXy*{q9Ea+DcmU)D7L$Ow&VX`UU;5UBWaG#94$Y0ubmw zBCA_U|4j*PgeF2OVKbqMu!!&x!DrV}$}}4YU4(;#PQrVHt%Mqao#3+rUqQdhRHk5e z_Squa)`F_Dj5^2Gb{*x2UG0Xju2oF)M;cfeaTXzmKKKLPZJz^UFm3^czje>Biq00000 diff --git a/Tools/bootloaders/CubeOrangePlus-bdshot_bl.hex b/Tools/bootloaders/CubeOrangePlus-bdshot_bl.hex index 14c08d15d9167..656a4dede44fa 100644 --- a/Tools/bootloaders/CubeOrangePlus-bdshot_bl.hex +++ b/Tools/bootloaders/CubeOrangePlus-bdshot_bl.hex @@ -1,34 +1,34 @@ :020000040800F2 :1000000000060020E1020008E3020008E302000805 :10001000E3020008E3020008E3020008E30200082C -:10002000E3020008E3020008E3020008A9760008E2 +:10002000E3020008E3020008E3020008D5760008B6 :10003000E3020008E3020008E3020008E30200080C :10004000E3020008E3020008E3020008E3020008FC -:10005000E3020008E302000891850008BD8500085E -:10006000E98500081586000841860008DD4500087E -:1000700005460008314600085D460008894600082C -:10008000B1460008DD460008E3020008E30200086C -:10009000E3020008E3020008E30200086D8600089E +:10005000E3020008E3020008BD850008E985000806 +:1000600015860008418600086D860008E9450008ED +:10007000114600083D4600086946000895460008FC +:10008000BD460008E9460008E3020008E302000854 +:10009000E3020008E3020008E30200089986000872 :1000A000E3020008E3020008E3020008E30200089C :1000B000E3020008E3020008E3020008E30200088C :1000C000E3020008E3020008E3020008E30200087C -:1000D000E3020008E3020008598700086D87000862 -:1000E000D1860008E3020008E3020008E3020008EA -:1000F000E3020008E3020008E302000809470008E1 -:10010000E30200084587000895870008E30200081D +:1000D000E3020008E302000885870008998700080A +:1000E000FD860008E3020008E3020008E3020008BE +:1000F000E3020008E3020008E302000815470008D5 +:10010000E302000871870008C1870008E3020008C5 :10011000E3020008E3020008E3020008E30200082B -:10012000354700085D47000889470008B5470008C3 -:10013000E1470008E3020008E3020008E3020008C8 +:10012000414700086947000895470008C147000893 +:10013000ED470008E3020008E3020008E3020008BC :10014000E3020008E3020008E3020008E3020008FB -:10015000094800083548000861480008E302000823 +:1001500015480008414800086D480008E3020008FF :10016000E3020008E3020008E3020008E3020008DB -:10017000E302000881820008E3020008E3020008AD -:10018000E3020008E302000881870008E302000898 +:10017000E3020008AD820008E3020008E302000881 +:10018000E3020008E3020008AD870008E30200086C :10019000E3020008E3020008E3020008E3020008AB :1001A000E3020008E3020008E3020008E30200089B :1001B000E3020008E3020008E3020008E30200088B :1001C000E3020008E3020008E3020008E30200087B -:1001D000E30200086D820008E3020008E302000861 +:1001D000E302000899820008E3020008E302000835 :1001E000E3020008E3020008E3020008E30200085B :1001F000E3020008E3020008E3020008E30200084B :10020000E3020008E3020008E3020008E30200083A @@ -51,22 +51,22 @@ :100310004F8FBFF36F8F40F20000C0F2F0004EF637 :100320008851CEF200010860BFF34F8FBFF36F8F8B :100330004FF00000E1EE100A4EF63C71CEF20001E3 -:100340000860062080F31488BFF36F8F07F00EFA61 -:1003500006F06EFB4FF055301F491B4A91423CBFDF +:100340000860062080F31488BFF36F8F07F024FA4B +:1003500006F074FB4FF055301F491B4A91423CBFD9 :1003600041F8040BFAE71D49184A91423CBF41F895 :10037000040BFAE71A491B4A1B4B9A423EBF51F83D :10038000040B42F8040BF8E700201849184A914280 -:100390003CBF41F8040BFAE707F026FA06F0E6FB4B +:100390003CBF41F8040BFAE707F03CFA06F0D4FB47 :1003A000144C154DAC4203DA54F8041B8847F9E7A6 :1003B00000F0C4F9114C124DAC4203DA54F8041B9E -:1003C0008847F9E707F00EBA000600200022002057 +:1003C0008847F9E707F024BA000600200022002041 :1003D0000000000808ED00E00000002000060020FA -:1003E000309C000800220020742200207822002087 +:1003E000589C00080022002074220020782200205F :1003F00034670020E0020008E0020008E002000884 :10040000E00200082DE9F04F2DED108AC1F80CD064 :10041000D0F80CD0BDEC108ABDE8F08F002383F338 -:1004200011882846A047002006F0E4F8FEE706F011 -:100430003DF800DFFEE7000053B94AB9002908BFC4 +:1004200011882846A047002006F0EAF8FEE706F00B +:1004300043F800DFFEE7000053B94AB9002908BFBE :1004400000281CBF4FF0FF314FF0FF3000F074B9AF :10045000ADF1080C6DE904CE00F006F8DDF804E01B :10046000DDE9022304B070472DE9F047089D0446FA @@ -115,16 +115,16 @@ :1007100064EB0C0E0138A3E74646EAE7204694E76F :100720004046D1E7D0467BE7023B614432E73046A2 :1007300009E76444023842E7704700BF38B501F06A -:10074000F3F901F0A3FB06F09DFE054606F0A2FFBB +:10074000F3F901F0A3FB06F08BFE054606F0B8FFB7 :100750000446D0B90F4B9D4219D001339D4241F25E -:10076000883504BF01240025002006F095FE0CB159 +:10076000883504BF01240025002006F083FE0CB16B :1007700000F078F801F02AFB00F01AFD08B100F053 :1007800071F8284600F010F9F9E70025ECE7054676 :10079000EAE700BF010007B008B501F091F9A0F148 :1007A00020035842584108BD07B541F21203022107 :1007B00001A8ADF8043001F0A1F903B05DF804FB25 :1007C00038B5302383F31188174803680BB105F05F -:1007D000F5FF0023154A4FF47A71134805F0E4FF42 +:1007D000FBFF0023154A4FF47A71134805F0EAFF36 :1007E000002383F31188124C236813B12368013B63 :1007F0002360636813B16368013B63600D4D2B7820 :1008000033B963687BB9022001F04AFA322363608E @@ -156,8 +156,8 @@ :1009A0000044025800ED00E02DE9F04F93B0B44B45 :1009B0002022FF2100900AA89D6801F0B1F9B14AF8 :1009C0001378A3B90121B04811700360302383F379 -:1009D000118803680BB105F0F1FE0023AB4A4FF418 -:1009E0007A71A94805F0E0FE002383F31188009B8B +:1009D000118803680BB105F0F7FE0023AB4A4FF412 +:1009E0007A71A94805F0E6FE002383F31188009B85 :1009F00013B1A74B009A1A60A64A1378032B03D0B1 :100A000000231370A24A53604FF0000A009CD346A3 :100A10005646D146012001F039F924B19C4B1B68A0 @@ -211,7 +211,7 @@ :100D100000283FF4DFAE0027B846704B9B68BB420B :100D200018D91F2F11D80A9B01330ED027F00303C7 :100D300012AA134453F8203C05934046042205A907 -:100D4000043701F0F9F88046E7E7384600F008FF7D +:100D4000043701F0FFF88046E7E7384600F008FF77 :100D50000590F2E7CDF81480042105A800F0CEFE3E :100D600002E70023642104A8049300F0BDFE0028DC :100D70007FF4B0AE0220FFF70FFD00283FF4AAAECB @@ -230,11 +230,11 @@ :100E400049AE00F0C9FE002844D00A9B01330BD004 :100E500008220AA9002000F06BFF00283AD02022C7 :100E6000FF210AA800F05CFFFFF79EFC1C4805F07C -:100E7000C7FB13B0BDE8F08F002E3FF42BAE0BF094 +:100E7000CDFB13B0BDE8F08F002E3FF42BAE0BF08E :100E80000B030B2B7FF426AE0023642105A80593EA :100E900000F02AFE074600287FF41CAE0220FFF770 :100EA0007BFC804600283FF415AEFFF77DFC41F245 -:100EB000883005F0A5FB059800F0C6FF46463C4685 +:100EB000883005F0ABFB059800F0C6FF46463C467F :100EC00000F07AFFA6E506464EE64FF0000901E67F :100ED000BA467EE637467CE69422002000220020B7 :100EE000A0860100704700007047000070470000B6 @@ -243,22 +243,22 @@ :100F1000004FE56002D816B1BDE8F081DEB905F0FA :100F20007F0605F110000021C6F180062044F6B2CC :100F300032462E4400F0F4FEA06804F11008324658 -:100F400000F10060414600F5003006F047F830B986 +:100F400000F10060414600F5003006F035F830B998 :100F500001233B74E0E74FF400463546ECE7A26816 :100F600005F11001404632442144A260E268521B60 :100F7000E26000F0AFFE0220BDE8F04100F090BE5C -:100F8000183000F0E9BC000010B5044600F0F0FF96 -:100F9000204610BD10B5044600F0EAFF204610BD03 +:100F8000183000F0E9BC000010B5044600F0F6FF90 +:100F9000204610BD10B5044600F0F0FF204610BDFD :100FA000C3B280B2A3F14102052A02D8373800B299 :100FB0007047613B052B94BF57383038F7E7000086 :100FC000F8B504461546084603220C4900F08CFE8D :100FD000014688B908346F1C15F91100FFF7E0FFCE :100FE000064617F911000131FFF7DAFF102940EA30 -:100FF000061004F8010BEFD1F8BD00BFDC9100082A +:100FF000061004F8010BEFD1F8BD00BF08920008FD :101000002DE9F04FADF53F7D0746416801222AA842 -:1010100002F090FE002840F0878006468246814616 +:1010100002F096FE002840F0878006468246814610 :101020001125DFF80C81DFF80CB101AB4FF48052D1 -:1010300041462AA802F0DEFF002875D1019AB2F5D8 +:1010300041462AA802F0E4FF002875D1019AB2F5D2 :10104000805F71D8002A65D00446019A9442ECD2A0 :10105000282D0FD008DC132D2DD01E2D39D0112DA9 :1010600013D00134A4B2F0E7322D2DD0372D2FD07C @@ -269,33 +269,33 @@ :1010B000A1461325D5E718F804300A2B34D03A2B73 :1010C00004BFA2463225CCE718F80430202BC8D044 :1010D000264618F804300A2B1AD1AAEB090208EBAD -:1010E000090102A811254F2A28BF4F2208F062F8F3 +:1010E000090102A811254F2A28BF4F2208F078F8DD :1010F000A21B08EB060116A84F2A28BF4F2208F0B2 -:1011000059F83B6816AA02A9DB6838469847A8E751 +:101100006FF83B6816AA02A9DB6838469847A8E73B :101110001E25A6E73B68384604491B69984701200D -:101120000DF53F7DBDE8F08F0020F9E7DE92000865 -:10113000A0230020E091000800F1180110B504463A +:101120000DF53F7DBDE8F08F0020F9E70A93000838 +:10113000A02300200C92000800F1180110B504460D :1011400086B00846019100F0F1FB2046FFF758FFFA :1011500060B1019902A800F049FC102204F10801D5 -:1011600002A807F0E7FFB0FA80F0400906B010BD12 +:1011600002A807F0FDFFB0FA80F0400906B010BDFC :1011700070B504460025EEB2304600F0FFFC58B1D1 :1011800000213046013500F009FD08B9002070BD8E :10119000022000F085FDEEE72046FFF731FF002832 :1011A000F4D004F58034207C80F00100EFE70000EB -:1011B000F0B5C9B006F07EF900F0F6FE18B90025CA -:1011C000284649B0F0BD69462A4802F0D5FF0028FC -:1011D0004BD1294C204602F0FFFF284802F0FCFFCB -:1011E000274802F0F9FF2146224803F071F8002851 -:1011F000E5D1702000F0B6FE064610B1214B4460E8 +:1011B000F0B5C9B006F06CF900F0FCFE18B90025D6 +:1011C000284649B0F0BD69462A4802F0DBFF0028F6 +:1011D0004BD1294C204603F005F8284803F002F8CB +:1011E000274802F0FFFF2146224803F077F8002845 +:1011F000E5D1702000F0BCFE064610B1214B4460E2 :101200000360336830469B689847054600282ED017 -:101210001A4F1948394603F05BF805460028CED12D -:10122000194800F09FFE044638B1184B4760036030 +:101210001A4F1948394603F061F805460028CED127 +:10122000194800F0A5FE044638B1184B476003602A :1012300000F58033C0E902551D74236820469B6881 -:101240009847054628B10E490C4803F041F800289C +:101240009847054628B10E490C4803F047F8002896 :10125000B5D1336830465B6898471CB12368204697 -:101260005B68984700F088FEAAE70025FAE7044685 -:10127000EFE700BFE4910008F49100080B9200082A -:1012800021920008449200081400010060920008B6 +:101260005B68984700F08EFEAAE70025FAE704467F +:10127000EFE700BF109200082092000837920008A4 +:101280004D92000870920008140001008C92000832 :101290002DE9F04FD44A8DB00B68D0F804A001932B :1012A0001A440368D14E1A44D1F81C90DFF8B4C335 :1012B000DFF8B4B3D0E90234634003EA0A036340C1 @@ -408,24 +408,24 @@ :1019600005460E46E300C2F3C50800F118079B18B0 :10197000036122BF43690133436112F4FC7F436971 :1019800003EB5473436114D0C8F1400907EB08001E -:101990004C4504D22246BDE8F84307F0DBBB403C8F -:1019A0004A464E4407F0D6FB444439462846FFF7E2 +:101990004C4504D22246BDE8F84307F0F1BB403C79 +:1019A0004A464E4407F0ECFB444439462846FFF7CC :1019B0006FFCA04606EB0409B8F13F0FA9EB080144 -:1019C0000AD94022384607F0C5FB39462846A8F117 +:1019C0000AD94022384607F0DBFB39462846A8F101 :1019D0004008FFF75DFCEFE7A1096FF03F023846D2 :1019E00002FB014206EB8111D5E7000070B50B69DF :1019F00001F1180506460C46C3F3C503EA18501C4E :101A00008022EA54C3F13F02072A1FD8002100F0C8 :101A100087F929462046FFF73BFC3822002128465B :101A200000F07EF9236929462046236563696365D2 -:101A3000FFF72EFC21461022304607F08BFB204694 +:101A3000FFF72EFC21461022304607F0A1FB20467E :101A400058220021BDE8704000F06AB9C3F13702A6 :101A50000021E5E72DE9F84F4FF47A7306460D466D :101A6000002402FB03F7DFF85080DFF8509098F96C :101A700000305FFA84FA5A1C01D0A34210D159F801 :101A800024002A4631460368D3F820B03B46D847A5 :101A9000854205D1074B012083F800A0BDE8F88FEF -:101AA0000134042CE3D14FF4FA7004F0A9FD0020B6 +:101AA0000134042CE3D14FF4FA7004F0AFFD0020B0 :101AB000F4E700BFE43300201022002014220020AD :101AC000002307B5024601210DF107008DF807300C :101AD000FFF7C0FF20B19DF8070003B05DF804FBDD @@ -434,15 +434,15 @@ :101B000030B41978064B53F821400146236820462B :101B1000DD69044BAC4630BC604700BFE4330020B5 :101B200014220020A086010070B50A4E00240A4D40 -:101B300005F0F8F9308028683388834208D905F029 -:101B4000EDF92B6804440133B4F5003F2B60F2D368 -:101B500070BD00BFE6330020A033002005F0B0BA0E +:101B300005F0E6F9308028683388834208D905F03B +:101B4000DBF92B6804440133B4F5003F2B60F2D37A +:101B500070BD00BFE6330020A033002005F09EBA20 :101B600000F1006000F500300068704700F100608F -:101B7000920000F5003005F031BA0000054B1A68FC -:101B8000054B1B889B1A834202D9104405F0C6B945 +:101B7000920000F5003005F01FBA0000054B1A680E +:101B8000054B1B889B1A834202D9104405F0B4B957 :101B900000207047A0330020E633002038B504460B -:101BA000074D29B128682044BDE8384005F0CEB97A -:101BB0002868204405F0B8F90028F3D038BD00BFEC +:101BA000074D29B128682044BDE8384005F0BCB98C +:101BB0002868204405F0A6F90028F3D038BD00BFFE :101BC000A03300200020704700F1FF5000F58F1077 :101BD000D0F8000870470000064991F8243033B16E :101BE00000230822086A81F82430FFF7BFBF0120D4 @@ -454,12 +454,12 @@ :101C40000B4602D22C2203F8012B0424094A1688E1 :101C5000AE4204D1984284BF967803F8016B013CF0 :101C600002F10402F3D1581A70BD00BF0010005CED -:101C700024220020A0920008022803D1024B4FF03A +:101C700024220020CC920008022803D1024B4FF00E :101C800080529A61704700BF00100258022803D1A9 :101C9000024B4FF480529A61704700BF0010025807 :101CA000022804D1024A536983F480535361704778 :101CB0000010025870B504464FF47A764CB1412CAE -:101CC000254628BF412506FB05F0641B04F098FC5F +:101CC000254628BF412506FB05F0641B04F09EFC59 :101CD000F4E770BD002310B5934203D0CC5CC4542C :101CE0000133F9E710BD0000013810B510F9013FCC :101CF0003BB191F900409C4203D11AB10131013A44 @@ -476,2034 +476,2036 @@ :101DA000CFD0FFF719FF0028CBD10020BDE8F88382 :101DB0000120FBE7A4330020024B1A78024B1A7073 :101DC000704700BFE433002010220020F8B5194C02 -:101DD000194803F01DFF2146174803F045FF24680A +:101DD000194803F023FF2146174803F04BFF2468FE :101DE0004FF47A70154ED4F89020154DD2F804387F :101DF000114F43F00203C2F80438FFF75BFF20469F -:101E0000104904F03FF8D4F890200424D2F80438A4 +:101E0000104904F045F8D4F890200424D2F804389E :101E100023F00203C2F804384FF4E133336055F87D -:101E2000040BB84202D0314603F050FE013CF6D11B -:101E3000F8BD00BFA09A000818490020CC3300204C -:101E400014220020A89A00080C4B70B50C4D0446D3 +:101E2000040BB84202D0314603F056FE013CF6D115 +:101E3000F8BD00BFCC9A000818490020CC33002020 +:101E400014220020D49A00080C4B70B50C4D0446A7 :101E50001E780C4B55F826209A420DD00A4B0021D3 :101E600018221846FFF75CFF0460014655F826006B -:101E7000BDE8704003F02ABE70BD00BFE43300200F -:101E80001422002018490020CC330020F0B5A1B066 -:101E900071B600230120002480261A46194602F05C -:101EA0007DFD4FF4D067214A3D25136923BBD2F84D -:101EB00010310BBB036804F1006199600368C3F83B -:101EC0000CD003685E6003681F6001680B6843F014 -:101ED00001030B6001680B6823F01E030B600168AF -:101EE0000B68DB07FCD4037B8034416805FA03F3FD -:101EF000B4F5001F0B60D8D102F086FDB4F5001FC9 -:101F000011D000240A4E0B4D012005F0D9F833887A -:101F1000A34205D928682044013405F017F8F6E7F4 -:101F2000002005F0CDF861B621B0F0BD00200052D0 -:101F3000E6330020A033002030B50A44084D91421A -:101F40000DD011F8013B5840082340F30004013B39 -:101F50002C4013F0FF0384EA5000F6D1EFE730BDC8 -:101F60002083B8ED0121884238BF084605F080B9CA -:101F700008B105F081B9704710B5084C0122084935 -:101F8000002001F0B3FE23783BB1064803F016FDB4 -:101F9000044803F049FD0023237010BDE8330020FE -:101FA000B0920008C83600201D482DE9F041036DAD -:101FB0002BB901224FF48051503005F0BDFA194E73 -:101FC00033780BB1FFF7D8FF0324174F4FF0000809 -:101FD000134D15492846C7F8048003F017FD28461D -:101FE00003F050FB48B1013C284603F01DFD14F0FE -:101FF000FF04EED1204634700FE00C4901220C485A -:1020000001F074FE014618B1284603F0D7FCEAE758 -:10201000084800F011F801203070BDE8F08100BFE1 -:10202000C8360020E83300203C220020B09200088F -:10203000EC330020B49200080FB4002004B07047C5 -:102040000068704703460068596870470B0A0170C2 -:1020500043700B0C090E8370C1707047110A027037 -:1020600003714170110C120E8170C2701A0A427114 -:102070001A0C1B0E8271C37170470000C36A0239CB -:10208000023B8B4283BF4389006C01FB03000020AD -:1020900070470000C2F307238A76CB760378032BC0 -:1020A00001BF120C0A75120A4A75704700F10B0144 -:1020B0000022D30143EA520310F8012B52FA83F3B2 -:1020C0008842DAB2F5D110467047000010B5417869 -:1020D00004460020013102464901022A16BFA35CD2 -:1020E000032203EBC03302F101021EBF9BB203EBDC -:1020F000500398B29142F0D810BD000002684AB176 -:10210000134613F8011B1F290DD93A29F9D1911C47 -:102110008B4202D04FF0FF3070471278302AF9D14D -:10212000036000207047014B187870473836002054 -:1021300038B50D46044618B9092000232B6038BD78 -:102140000368002BF8D01A78002AF5D08188DA8845 -:102150009142F1D1587804F0EFFB10F00100EBD17F -:102160002368EBE738B50D4640F25231144602F0D1 -:10217000B9F9FF2807D9012C0BD9030A022468708A -:102180002B70204638BD30B1002CFAD001242870C5 -:10219000F7E70024F5E70446F3E700002DE9F843EC -:1021A0000026D0F8008005460C468E76836B002B07 -:1021B0004AD098F80030042B4BD13346354640279F -:1021C00020E0B7F5187F80F0C480F90606F101061B -:1021D00008BF0237D05B02372BB900F5205292B20C -:1021E000B2F5006F0DD305F11A01C5F1FF0240EA07 -:1021F00003402144FFF7B6FF002800F0AA80054401 -:1022000000200346D8F8102092F82310B142D8D805 -:10221000002B40F09E80002D00F09B800023254481 -:10222000AB766373D8F81020137903F03701DB061F -:1022300021730BD402F13800FFF704FFC4E9000159 -:1022400093896381D3892381BDE8F8830020014607 -:10225000F4E7C36C01335ED1EA6B00232E26551ED2 -:10226000184615F8011F013020290CD0052908BF98 -:10227000E521092804D10B2B9EBFE71801337E739B -:10228000E718013379730B28EBD1E118002048736C -:10229000A17E00294BD1002B40D06FF00C0604F139 -:1022A0000D000825361B331810F8011B002938D003 -:1022B0002E298BB24AD0A3F14101192903D8117BF1 -:1022C0000D4200D020330373EDE7B9F1000F05D1C3 -:1022D00000F520539BB2B3F5006F0BD307F11A0141 -:1022E000C7F1FF0240EA09402144FFF73BFF48B134 -:1022F0000744002002368146D8F80C30985B00284D -:10230000E3D13846B9F1000F4FF0000218BF0020AA -:1023100023189A76A0E7B1463746EDE73F23A37628 -:102320000123234400219976137B03B96373D37A85 -:1023300002F11C0003F03F0323730023FFF780FE2C -:1023400020606360D38A6381138B7CE710250B4682 -:10235000B9E73F230125A37660E7000038B50546BD -:10236000002435F8020B08B9204638BD02F0EEF81B -:102370006308C2B203EBC43312FA83F39AB2C0F318 -:10238000072303EB520303EBC2339CB2E9E70000DF -:1023900037B5C37804461BB90025284603B030BDC5 -:1023A00000F14C01826C01234078019104F0EAFABB -:1023B000054680B9A36BE070A06C226BC31A9342F0 -:1023C000EAD2A3780199022BE6D102440123607876 -:1023D00004F0D8FAE1E70125DFE7000038B5836CA7 -:1023E00005460C468B4210D0FFF7D2FF60B922465B -:1023F000012305F14C01687804F0A0FA00281CBF05 -:102400004FF0FF340120AC6438BD0020FCE7000031 -:1024100038B500230446C3704FF0FF338364FFF7E1 -:10242000DDFF00284BD1B4F84A524AF655239D42AD -:1024300007D10B22254904F14C0006F07BFE002851 -:102440003FD094F84C30EB2B03D01833DBB2012B88 -:102450002ED84AF655239D4206D108221C4904F184 -:102460009E0006F067FE48B3B4F85730B3F5007F1E -:102470001ED194F85930DBB15A1E1A4218D1B4F863 -:102480005A30ABB194F85C30013B012B10D8B4F852 -:102490005D306BB1B4F85F307F2B06D804F16C006F -:1024A000FFF7CEFDB0F5803F02D3B4F8623053B9E8 -:1024B0004AF6552085420CBF0220032038BD042077 -:1024C000FCE70120FAE70020F8E700BFE0920008EF -:1024D000EC92000802392DE9F04701F007044FF0B3 -:1024E000010A466C05460AFA04F41746984606EBBC -:1024F0001136C1F3C809E4B2314628460136FFF768 -:102500006DFF18B10120BDE8F087994605EB09027F -:1025100092F84C30234214BF01210021414513D0D1 -:102520006340013F82F84C3085F803A0EBD0640093 -:1025300014F0FF04EAD109F1010301244FF000096E -:10254000B3F5007FE1D1D7E70220DCE7012902469D -:10255000F8B50C4640F28C800668F36A8B4240F274 -:1025600087803378013B032B00F28280DFE803F0A1 -:102570000229384B04EB5405B16B304601EB552171 -:10258000FFF72CFF10B14FF0FF30F8BD6F1CC5F303 -:102590000805B16B3046354401EB572195F84C5096 -:1025A000FFF71CFF0028EED1C7F30807E3073E44FE -:1025B00096F84C0045EA00204CBF0009C0F30B0020 -:1025C000E3E7B16B304601EB1421FFF707FF00286A -:1025D000D9D1640004F4FF742644B6F84C00D4E763 -:1025E000B16B304601EBD411FFF7F8FE0028CAD1D9 -:1025F000A40006F14C0004F4FE742044FFF720FD13 -:1026000020F07040C1E7D0E90430D57953EA0001E9 -:1026100001D0916801B95DBB9168022DA4EB010165 -:102620000DD1013B728940F1FF305B0A43EAC05390 -:10263000B3FBF2F399421BD81CD0601CA5E7032D15 -:1026400002D193698B42F8D8D3699BB9B16B3046FC -:1026500001EBD411FFF7C2FE002894D1A0004C3644 -:1026600000F4FE703044FFF7EBFC20F000408CE7F4 -:1026700001208AE76FF0004087E70000F8B50668A0 -:1026800004460D463378042B0CBF4FF080524FF4B4 -:1026900000128A4201D80220F8BDCA06FBD1826826 -:1026A0000163D2B9022B13D83389B3EB551FF2D98A -:1026B000F36BA363A36B6263002BECD003EB552396 -:1026C0004C36C5F308050020A3633544E563E3E712 -:1026D000F36BC271002BE7D01A4677897F02BD42A7 -:1026E000114604D23046FFF7C9FCA063E2E720465A -:1026F000FFF72CFF431C024606D00128CBD9F36A12 -:102700008342C8D9ED1BEAE70120C5E701292DE97D -:10271000F04706460C46174608D9C36A8B4205D9CE -:102720000378022B62D003D8012B22D0022552E07D -:10273000033B012BFAD8816B01EBD411FFF74EFE5E -:102740000546002847D1A40006F14C0304F4FE74AA -:102750001C443378042B07D0204627F07047FFF73E -:102760006FFC00F07040074339462046FFF76EFCCF -:102770002FE001EB5108816B01EB5821FFF72EFE92 -:10278000054640BB14F0010406F14C0908F1010AAA -:10279000C8F3080808BFFBB230461FBF19F808305D -:1027A00003F00F023B0103F0F00318BF134309F8D5 -:1027B00008300123B16BF37001EB5A21FFF70EFED5 -:1027C000054640B9CAF3080A44B1C7F3071709F828 -:1027D0000A700123F3702846BDE8F08719F80A3023 -:1027E000C7F3032723F00F031F43F0E7816B01EBCF -:1027F0001421FFF7F3FD05460028ECD1640006F133 -:102800004C0304F4FF741F551919C7F307274F70C1 -:10281000DFE70000F8B504460E461746E3690BB93A -:102820001846F8BD012BA6EB0305206814BFAA1CAF -:102830003A46691CFFF76AFF0028F2D1E369013BC1 -:10284000E361EBE701292DE9F84306460C461746FC -:10285000056802D80220BDE8F883EB6A8B42F9D9FB -:102860007AB9A14621463046A046FFF76FFE0446DE -:10287000B0B92B78042B02D1002F43D1F77100207F -:10288000E9E72B78042B02D1C379022BE9D04FF072 -:10289000FF3239462846FFF739FF0028E1D0DAE752 -:1028A0000128D7D0421C01D10120D4E72B78042B7A -:1028B00019D1EA6AAB69023A93421CD308F10102CA -:1028C000A2420CD02B78042B08D10023A2EB0902E2 -:1028D00049462846FFF7FEFD0028BCD1A146EB6A19 -:1028E000A342BFD8C5E7002241462846FFF70EFFA6 -:1028F0000028DED0AFE70133AB612B7943F0010351 -:102900002B71DBE7F3798BB9B468BC4202D10223A7 -:10291000F371B4E721463046FFF718FE012899D934 -:10292000431CC1D001348442EFD0A8E7032BA6D1C9 -:10293000B368BB42A3D8B2691344BB429FD3E6E756 -:1029400070B5C3790446032B06D181688369CD181D -:10295000A94203D10023E371002070BD4E1C206802 -:102960003246FFF7D3FE0028F7D13146F0E70000EA -:102970002DE9F74305460191FFF70AFD04460028BB -:1029800049D105F14C09019928464FF40072FFF72F -:1029900075FB2146A86407464846FFF7C1F96C89D4 -:1029A0006402B4F5004F28BF4FF40044B4F5007F33 -:1029B0002FD9204604F064FC804630B12246002125 -:1029C000640A0026FFF7ACF909E06408EEE7234645 -:1029D000BA194146687803F0D5FF18B926446B89C7 -:1029E0009E42F4D3404604F05BFC6889801B18BF0C -:1029F000012003B0BDE8F08301366B899E42F4D21A -:102A00000123BA194946687803F0BCFF0028F3D0C7 -:102A1000EBE70026F1E70120EBE70000F8B50446FC -:102A2000FFF7B6FC0546002842D12378032B37D1A7 -:102A30002779012F34D104F14C0601464FF400727E -:102A40003046FFF76DF955234122722184F84A324E -:102A5000AA2304F50D7084F84F2084F84B325223DA -:102A600084F8301284F84C3084F84D30612384F8B7 -:102A7000311284F84E3084F83332A16984F832225E -:102A8000FFF7E4FA616904F50E70FFF7DFFA626B95 -:102A90003B46314601326078A26403F073FF257132 -:102AA00000226078114603F091FF003818BF012022 -:102AB000F8BD000000232DE9F0430B6085B00F4600 -:102AC0001546FFF71BFB061EC0F2B281804B53F880 -:102AD0002640002C00F0AE813C6005F0FE05237816 -:102AE0006BB1607803F028FFC70708D41DB110F060 -:102AF000040500D00A25284605B0BDE8F083002370 -:102B0000F0B22370607003F003FFC10700F19481FD -:102B10000DB14207EED400212046FFF779FC0228D0 -:102B200040F099806E4604F2122304F2522132469C -:102B300018461033FFF784FA42F8040B8B42F7D1A2 -:102B4000002556F8041B00297DD02046FFF760FCC5 -:102B5000012879D80128A26C40F0C08004F1570305 -:102B600004F18C0113F8015B002D7BD18B42F9D16C -:102B7000B4F8B430B3F5807F74D194F8B830092B31 -:102B800070D104F19400FFF75DFA4FF0FF3317188E -:102B900041F10001BB4275EB010363D304F1A000D6 -:102BA000FFF74EFA94F8BA302063012BA37059D185 -:102BB00094F8B99003FA09F91FFA89F36381002B9D -:102BC00050D0444B04F1A800FFF73AFA0646984269 -:102BD00048D8831C626304F1A400E362FFF730FA73 -:102BE00000EB020804F19C00C4F84080FFF728FACB -:102BF00010441FFA89F2A06306FB02F313EB0803EB -:102C000045EB05029F4271EB02032BD32E4604F1E4 -:102C1000AC00FFF715FAE06365B96389B34221D9C7 -:102C2000E16B2046FFF72AFA81192046FFF7D6FB11 -:102C300098B90136631993F84C30812B14D02035A4 -:102C4000C5F30805E8E703200135042D7FF479AFCB -:102C5000042807D101E0042801D101254BE7012810 -:102C60007FF678AF0D2546E705F1140004F14C0618 -:102C70003044FFF7E5F901280546F3D9E36A8342BA -:102C8000F0D96189821E236C02FB01336364A16B5E -:102C9000204601EBD511FFF7A1FB0028DDD105F09F -:102CA0007F0006EB8000FFF7CBF9431C03D0013512 -:102CB000A842ECD0D6E70425C4E90500064A2570F1 -:102CC00000251388E56101339BB21380E38012E78E -:102CD0003C360020FDFFFF7F40360020B4F857301F -:102CE000B3F5007FBED1B4F8626026B904F170007C -:102CF000FFF7A6F9064694F85C302663591EA370C8 -:102D00000129AFD894F859506581002DAAD0691EC9 -:102D10002942A7D1B4F85D8018F00F0FA4F80880FD -:102D2000A0D1B4F85F0018B904F16C00FFF788F97E -:102D3000B4F85A10002995D006FB03FE01EB181CCD -:102D4000F44460458ED3A0EB0C00A842B0FBF5F331 -:102D500088D33E48834285D84FF6F57083426DD9BB -:102D600003259F1C114402EB0C03032DE7626263F1 -:102D7000A16323644CD1B4F8763053EA08037FF49E -:102D800071AFBB0004F17800FFF75AF9E06303F27A -:102D9000FF13B6EB532FFFF465AF4FF0FF33032D56 -:102DA000C4E905334FF08003237187D1B4F87C3038 -:102DB000012B83D1511C2046FFF710FB00287FF424 -:102DC0007DAFB4F84A224AF6552320719A427FF427 -:102DD00075AF1F4B04F14C00FFF732F998427FF4B6 -:102DE0006DAF03F1FF5304F50C70FFF729F903F5FC -:102DF0000053203398427FF461AF04F50D70FFF764 -:102E00001FF9A06104F50E70FFF71AF9606155E72C -:102E1000B8F1000F3FF426AF7144022D4FEA47038B -:102E2000E1631EBFD91907F0010303EB5103AEE7BD -:102E30000B2560E60C255EE603255CE640F6F5759D -:102E4000AB428CBF022501258BE700BFF5FFFF0FCA -:102E5000525261412DE9F84F07460568884649B945 -:102E60006E69C6B1EB6AB34298BF0126AB69A3B9DC -:102E7000002405E0FFF76AFB0128044603D801247B -:102E80002046BDE8F88F421C00F0D280EB6A8342F6 -:102E9000F6D84646EAE70126E8E72A78EB6A042AEC -:102EA00040F08380A6F1020A023B4FF0010B9A45E5 -:102EB00028BF4FF0000AD146696C284601EB193152 -:102EC000FFF78CFA00283BD109F00703EA6AC9F33F -:102ED000C8010BFA03F3901EDBB26A184C4609F1E5 -:102EE000010992F84C20814502EA030233BF5B00DE -:102EF00000234FF40071DBB228BF9946B2B9023407 -:102F0000631E0333BCD80123214628461A46FFF727 -:102F1000E1FA0228B3D0012800F08A80B8F1000F4E -:102F200013D10223FB710028A9D130E0CA450AD091 -:102F3000002BD2D10131B1F5007FBDD20123CCE706 -:102F40004FF0FF34DCE70024DAE7FB79022B07D1EE -:102F5000731CA342E7D0BB68F31ABB610323FB7168 -:102F600008F10102FB69A24205D113B10133FB61F3 -:102F7000D9E70223FBE70BB90123FB612246414657 -:102F80003846FFF747FC00284FD10123FB61EA6A6E -:102F9000AB69023A6C6193429CBF03F1FF33AB61B2 -:102FA0002B7943F001032B716AE7464514D1741C59 -:102FB0003846A34298BF02242146FFF7C7FA0128EA -:102FC0003FF45DAF431C33D0E0B16B69012B03D9F3 -:102FD000EA6A934238BF1E4634460134EB6AA34284 -:102FE00003D8012E7FF644AF022421463846FFF76E -:102FF000ADFA48B101283FF442AF013018D0B442D5 -:10300000EBD135E7002CE7D04FF0FF3221462846C0 -:10301000FFF77CFB48B9B8F1000FB8D02246414613 -:103020002846FFF773FB0028B1D001287FF427AFB3 -:103030004FF0FF3424E700002DE9F843066804460A -:10304000076B894633782037042B0CBF4FF0805331 -:103050004FF40013BB429CBF00238363836B73B1A7 -:10306000C7F30808B8F1000F3CD10133416B83630B -:1030700039B93389B3EB571F34D80023A363042035 -:103080000AE07389013B13EA57232BD1FFF75EFA5D -:103090000128054602D80220BDE8F883421C01D170 -:1030A0000120F9E7F36A834216D8B9F1000FE4D0A2 -:1030B000616B2046FFF7CEFE0546C8B10128EAD075 -:1030C000431CEDD001463046FFF752FC0028E7D103 -:1030D000E37943F00403E371294630466563FEF764 -:1030E000CDFFA0634C36002027634644E663D3E758 -:1030F0000720D1E7F8B50E46002104460768FFF720 -:10310000BDFA98B90546A16B3846FFF767F968B96B -:103110003A78E36B042A1B780CD11B060ED50546C2 -:1031200001212046FFF788FF0028ECD0042808BFC3 -:10313000072006E0E52B01D0002BF0D10135B54288 -:10314000EED1F8BDC16C4B1C2DE9F0410446056879 -:10315000066B1FD1E5274FF00108A16B2846FFF74A -:103160003DF998B92A78E36B042A09BF1A781F70D1 -:1031700002F07F021A7085F80380236BB3420DD2F0 -:1031800000212046FFF758FF0028E6D0042808BF9A -:10319000022003E0FFF772FA0028DBD0BDE8F081DF -:1031A0002DE9F04105460068A96B0669FFF716F99D -:1031B000044620B9EB6B1A78852A03D002242046F6 -:1031C000BDE8F081324603F1200153F8040B8B4235 -:1031D00042F8040BF9D1777801377F01A7F160033A -:1031E000B3F5007FEAD800212846FFF725FF042821 -:1031F0000446E3D00028E2D1A96B2868FFF7EEF877 -:1032000004460028DBD1EB6B1A78C02AD6D106F130 -:10321000200203F1200153F8040B8B4242F8040B07 -:10322000F9D196F823300F222C33B3FBF2F3B7EB2E -:10323000431FC3D34FF0400800212846FFF7FCFE90 -:1032400004280446BAD00028B9D1A96B2868FFF732 -:10325000C5F804460028B2D1EB6B1A78C12AADD16B -:10326000B8F5187F09D206EB080203F1200153F8E4 -:10327000040B8B4242F8040BF9D108F120084745B2 -:10328000DAD8B8F5187F9AD83046FEF71FFF738852 -:10329000834294D092E700000B68002210B50360CF -:1032A00004460B6A83604B6AC261C37123F0FF035B -:1032B000896AC0E90432C164FFF7E0F920B9204609 -:1032C000BDE81040FFF76CBF10BD0000F8B5036803 -:1032D000054601271C692046FEF7F8FEA070000A8B -:1032E0006678E0702846E96CFFF7C8F920B102283B -:1032F00028BF0220C0B2F8BDA96B2868FFF76EF89E -:103300000028F4D1EB6B04F1200254F8041B944222 -:1033100043F8041BF9D12B68DF70002EE7D00021A1 -:103320002846013EFFF788FEE0E700002DE9F8435C -:103330004FF0FF0806460768042445464FF6FF791C -:10334000B16B11B9002C73D063E03846FFF746F833 -:10335000044600285DD1F06B0378002B6ED03A78DC -:10336000042A11D1852B4DD1336B3046F364FFF71E -:1033700017FF044600284CD13B691B7903F03F033B -:10338000B3712046BDE8F883C27AE52B02F03F0214 -:10339000B27143D02E2B41D022F0200108293DD01C -:1033A0000F2A40D1590637D503F0BF05336B90F88B -:1033B0000D80F364437B434530D1428B72BB03786D -:1033C0000D21FC6823F04003DFF874E0013B4B4320 -:1033D00001211EF801CB30F80CC009B3FF2B1DD81A -:1033E00024F813C06146013301320D2AF1D102786D -:1033F000520605D521B1FF2B10D8002224F8132046 -:10340000013DEDB200213046FFF716FE04460028CC -:1034100096D00023B363B4E7AB42CBD0FF25F1E7EE -:10342000CC45E1D0FAE72DB9FEF740FE404501D189 -:103430000024A6E74FF0FF33F364A2E70424E8E793 -:10344000889300082DE9F04F002187B00446D0F89A -:103450000090FFF713F9804670B999F80030042BFB -:1034600033D1D9F80C00FEF779FF07462046FFF765 -:103470005DFF054620B18046404607B0BDE8F08FAD -:10348000D9F810309A8CBA42F0D193F823B0402684 -:103490005D4506D1D9F80C3033F81530002BE5D155 -:1034A000EAE7F106D9F8103008BF0236985B01F060 -:1034B0004DF8D9F80C30824633F8150001F046F883 -:1034C0008245D3D102360135E2E74FF0FF0A4FF0D3 -:1034D000FF3B5546C4F84CB0A16B4846FEF77EFF53 -:1034E00000285CD1E66B3778002F77D0F27AE52F91 -:1034F00002F03F03A37103D0120704D50F2B04D0B1 -:10350000C4F84CB04FE00F2B54D194F84B30580610 -:103510003FD4790645D5236B07F0BF0796F80DA079 -:10352000E364737B53453ED1738B002B3BD13578DD -:103530000121D9F80C3005F03F0501930D23013D21 -:103540005D43284B13F8012BB25A71B3FF2D05933D -:1035500029D81046049200F0F9FF6B1C03900293E7 -:10356000019B33F8150000F0F1FF039981421AD155 -:10357000049A029D1146059B1B4A9342E2D133787F -:103580005A0604D519B1019B33F815305BB97D1E7D -:10359000EDB200212046FFF74FFD00289CD0804669 -:1035A0006AE7BD42BDD0FF25F3E74FF6FF708242C8 -:1035B000E2D0F8E72DB93046FEF778FD50453FF4EC -:1035C0005BAF94F84B30DB079AD40B2204F1400137 -:1035D000304605F0AFFD002892D14DE74FF00408CA -:1035E0004AE700BF88930008959300082DE9F04F43 -:1035F00090F84BB099B004461BF0A00540F06881EC -:103600000668F26832F81530002B4AD13378042B63 -:1036100040F087800F230E352046B5FBF3F5A91C3B -:10362000FFF768FD8146002877D1236B0135A3EBB6 -:103630004515E3795A07E56435D523F004032046A0 -:10364000E371FFF77DF950BB4FF0FF32616B20460D -:10365000FFF7E0F818BBA3682BB3214604A8FFF7D7 -:103660001BFEE0B970894FF40071D4E90423E0FB3C -:1036700001233069C4E904233830FEF7EFFC3069D8 -:10368000D4E904232830FEF7E9FCE379326904A881 -:1036900043F0010382F82130FFF718FE18B181468C -:1036A0003BE00135AEE7D6E9035440220021204635 -:1036B000FEF736FB8523012140222370C0234FF003 -:1036C000C10C04EB010884F8203000231E469E46FE -:1036D000571C04F802C0F0B2023204F807E021B12E -:1036E00035F8131009B10133DBB20F0AA15408F801 -:1036F00002700232D706F2D135F813700136002F6E -:10370000E6D184F82330831C28466370FEF726FE3A -:1037100084F82400000A84F82500484619B0BDE862 -:10372000F08F04F140070DF1100A1BF0010F97E82C -:1037300007008AE8070000F0D38040234FF001081B -:1037400084F84B30BC46F368B8F1050F9AE80700DF -:10375000ACE803002CF8022B4FEA12428CF8002050 -:1037600059D9981E424630F8021F002942D10DF166 -:103770000F0C072102F00F0E914612090EF13000D6 -:10378000392888BF0EF1370001390CF8010902D041 -:10379000B9F10F0FEED818AB7E205A1802F8580C6A -:1037A00038460022914206D010F801CB02F1010EFA -:1037B000BCF1200F31D104F13F0C072902F10102C5 -:1037C00097BF18AB20205818013198BF10F8580C3B -:1037D000072A0CF80200F0D92046FFF733FE814695 -:1037E000002878D108F10108B8F1640FAAD14FF090 -:1037F000070992E74FF0100C01F0010E49080EEB9B -:103800004202D30344BF82F4883282F02102BCF129 -:10381000010CF1D1A7E74246A9E77246C2E7216B46 -:103820002046A1EB4511FEF729FF814600287FF4D1 -:1038300074AF4FF6FF783846FEF738FC0190A16B65 -:103840003046FEF7CBFD814600287FF466AFE36B80 -:10385000E9B2019A4FF00D0CD6F80CE05A734FF014 -:103860000F02DFF8E0A0DA724A1E18730CFB02F2B6 -:1038700084469876D87640451AF8019B0CF1010CE5 -:1038800018BF3EF8120003EB090B18BF013203F812 -:1038900009004FEA1029002808BF4046BCF10D0F6F -:1038A0008BF80190E7D1404502D03EF812200AB9CA -:1038B00041F040011970012300212046F370FFF709 -:1038C000BBFB814600287FF428AF013DB7D11BE048 -:1038D0004FF0060921E704287FF41FAF84F84BB0AE -:1038E0001BF0020F20461BBF0C350D210125B5FB37 -:1038F000F1F518BF01352946FFF7FCFB814600288A -:103900007FF40BAF013D8AD1A16B3046FEF766FD17 -:10391000814600287FF401AF01462022E06BFEF7CC -:10392000FFF9E36B03CF18605960BA7839889A724F -:10393000198194F84B30E26B03F0180313730123E1 -:10394000F370EAE68893000810B504460A4634305E -:10395000FEF776FB886004F13800FEF773FBC2E9DE -:10396000040194F8213003F00203D3710023D361E2 -:1039700010BD000003284B8B04BF8A8A43EA024330 -:10398000184670472DE9F04F0B7899B004468946E8 -:103990002F2BD0F800B001D05C2B09D14A46137808 -:1039A000914601322F2BFAD05C2BF8D0002301E096 -:1039B000DBF81C30A3600023E3619BF80030042B8C -:1039C0001ED1A368E3B1DBF82030214604A82362AE -:1039D000DBF824306362DBF82830A362FFF75CFC7D -:1039E0000346002854D1DBF8102002F13800FEF71E -:1039F00027FBC4E9040392F8213003F00203E371CA -:103A000099F800301F2B00F23581802300212046D9 -:103A100084F84B3019B0BDE8F04FFEF72FBE494691 -:103A20000B78894601312F2BFAD05C2BF8D01F2B55 -:103A30008CBF00250425012F2FD113882E2B31D1C7 -:103A4000002322F8173004F140029F428CBF2E2140 -:103A5000202101330B2B02F8011BF6D145F0200584 -:103A6000204684F84B50FFF7EDFC94F84B300028CB -:103A700000F0E78004280BD1990603F0040240F11E -:103A8000DC80002A00F0F6808023002084F84B3090 -:103A900019B0BDE8F08F0425CDE7022F02D153887D -:103AA0002E2BCAD0911E87BB002322F81730002F7F -:103AB00000F0118132F81300194601332028F9D0A3 -:103AC00009B92E2801D145F00305901E30F81730B2 -:103AD0002E2B01D0013FF9D14FF020334FF0000AD7 -:103AE0006364D0462364C4F847300823481C32F886 -:103AF00011600090F6B1202E03D02E2E0DD1B842C9 -:103B000010D045F003050099F0E731F81730202B6D -:103B100001D02E2BC8D1013FC5E79A4505D20099A7 -:103B2000B9423BD10B2B30D101E00B2B27D145F013 -:103B300003050B2394F84020E52A04BF052284F8EE -:103B40004020082B04BF4FEA88085FFA88F808F085 -:103B50000C030C2B03D008F00303032B01D145F019 -:103B60000205A8073FF57CAF18F0010F18BF45F01C -:103B7000100518F0040F18BF45F0080570E700990C -:103B8000B94202D045F00305D4D84FEA88080B2388 -:103B90004FF0080A00975FFA88F8B4E77F2E15D92E -:103BA000304640F25231CDE9022345F00203019341 -:103BB00000F098FC10F0800F0646DDE9022316D0D5 -:103BC00000F07F0646498E5D019D46B3314645486B -:103BD000CDE9012305F0D8FADDE90123F8B9A6F112 -:103BE000410189B219291ED848F0020810E0FF28C7 -:103BF000EAD9591E8A4503D345F003059A4682E760 -:103C000004EB0A01000A0AF1010A019D81F8400053 -:103C100004EB0A010AF1010A81F8406073E745F0FC -:103C200003055F26F4E7A6F1610189B219299EBF59 -:103C3000203E48F00108B6B2EAE7002A08BF052096 -:103C400026E75A073FF524AFA379DB0645D59BF855 -:103C50000000042835D1A3682146E2792362236954 -:103C6000DBF8100023F0FF0313436362E36CA362ED -:103C7000FFF76AFE23680027DA6819F8010B0028AD -:103C80003FF409AF40F25231009200F04BFC054680 -:103C900008B31F28009A7FF6FEAE2F283FF4BFAE70 -:103CA0005C283FF4BCAE7F2805D801460E4805F0DD -:103CB0006BFA009A78B9FF2F0DD022F81750013710 -:103CC000DBE7216B0BF14C03C1F308011944FFF74B -:103CD00051FEA060CEE70620DAE60520D8E600BF58 -:103CE0000893000801930008F89200081FB5CDE979 -:103CF000001003A814460391FEF700FA002815DB14 -:103D00000B4A52F820300BB100211970019B0BB106 -:103D10000021197042F820302CB1002201A9684618 -:103D2000FEF7C8FE0446204604B010BD0B24FAE797 -:103D30003C3600202DE9F04798B0904605460191A9 -:103D4000002800F0528102F03F0603A901A8324684 -:103D5000FEF7B0FE002840F04681039B4FF48C60D4 -:103D6000049303F08DFA0746002800F04081039B7E -:103D700000F500720199D86004A81A61FFF702FEED -:103D8000044620B99DF95B30002BB8BF062418F01B -:103D90001C0F00F0CD80002C4CD0042C40D104A886 -:103DA000FFF724FC044600283AD146F00806039B9E -:103DB0001A78042A40F08380186929462B60FFF79F -:103DC000C3FD039B1E22002118690230FDF7A8FFE6 -:103DD000039C00211A2220692630FDF7A1FF2369E8 -:103DE00020221A71246903F085FA01460122083461 -:103DF0002046FEF72BF9039B04A81B6983F82120BA -:103E0000FFF764FA044658B9A96801B30246284688 -:103E1000FEF718FDAB68039A0446013B5361B4B149 -:103E2000384603F03DFA0CB100232B60204618B051 -:103E3000BDE8F0879DF8163013F0110F40F0848034 -:103E400018F0040F40F0C98018F0080FAFD1039AA2 -:103E500031071399936C48BF46F04006E964AB64A0 -:103E60001078042872D1069B9DF817102B62089BCE -:103E7000106923F0FF030B4329466B62179BAB626B -:103E8000FFF762FDDDF80CA00024002205F15008C8 -:103E9000BAF8063021464046C5F800A0AB800023A2 -:103EA00085F8306085F831406C64C5E90E234FF425 -:103EB0000072FDF735FFB20653D40024B0E703F0DB -:103EC00019FA0146009013980E30FEF7BFF81398C8 -:103ED00000991630FEF7BAF8039C13992078FFF783 -:103EE00049FD202300228046CB7220461399FEF71D -:103EF000D1F8139B002201211A775A779A77DA7743 -:103F0000039BD970B8F1000FA1D0414604A8D3F8A3 -:103F10004890FEF797FC0446002881D14946039853 -:103F2000FEF75CFA039B044608F1FF30586176E720 -:103F3000002C7FF475AF9DF81630DC064FD418F0D6 -:103F4000020F84D0D80782D5072469E7FFF712FD56 -:103F50000023A86001F11C00FEF772F86B61286174 -:103F600090E7D5E9046956EA0903A6D0BAF80AA091 -:103F7000A9684FEA4A2AC5E90E69B24574EB0903FC -:103F80001BD300242964002C7FF44AAFC6F3080336 -:103F9000002B92D0039C2046FEF770F808B3760AF7 -:103FA0000123414646EAC95682196A64607802F0E4 -:103FB000C5FC041E18BF012432E72846FEF7C6FAE6 -:103FC000B6EB0A06014669F10009012803D9431C32 -:103FD000D3D10124D6E70224D4E7082420E704241F -:103FE0001EE702241CE704461EE709241EE71124ED -:103FF0001CE700002DE9F04F994685B00023884664 -:1040000003A90446C9F800301646FEF791F80546A4 -:1040100080BB94F831506DBB94F8303013F001033D -:10402000009300F0A68004F1500AD4E90432D4E9E8 -:104030000E011B1A62EB0102B34272F1000238BF9B -:104040001E46BEB1D4E90E10C1F30803002B40F0A8 -:104050008280039B5A894B0A013A43EAC0531A40B3 -:104060001BD151EA000309D1A06801280DD802250F -:1040700084F83150284605B0BDE8F08F216C204609 -:104080000192FEF763FA019AEFE7431C04D1012382 -:10409000009D84F83130EDE72064DDF80CB0216C30 -:1040A0005846FDF7EBFF0028E1D0B6F5007F02EBA4 -:1040B000000731D3BBF80A1002EB5620730A88427E -:1040C0009BF8010088BF8B1A3A464146019302F0E3 -:1040D00035FC0028DBD194F93020019B002A0BDA53 -:1040E000606CC01B984207D24FF40072514608EB37 -:1040F0004020FDF7EFFD019B5F02D9F80030F61B71 -:10410000B8443B44C9F80030D4E90E32DB1942F11F -:104110000002C4E90E3294E7626CBA421AD094F9F4 -:104120003030002B0DDA012351469BF8010002F0DC -:1041300029FC0028ABD194F8303003F07F0384F8D9 -:104140003030039801233A465146407802F0F6FB9E -:1041500000289CD16764A16B4046C1F30801C1F5FA -:1041600000775144B74228BF37463A46FDF7B2FDC3 -:10417000C3E707257EE7000070B596B00E46002223 -:10418000019002A901A8FEF795FC0446E0B94FF49E -:104190008C6003F075F80546D8B1029B00F50072FB -:1041A0000199D86002A81A61FFF7ECFB044640B9F8 -:1041B0009DF95330002B0ADB1EB1314602A8FDF7F2 -:1041C000EDFF284603F06CF8204616B070BD0624BB -:1041D000F7E71124F8E7000070B5B8B002220190AB -:1041E00003A901A8FEF766FC044608BB039B4FF435 -:1041F0008C60109303F044F80546002866D0039BBA -:1042000000F500720199D86010A81A61FFF7BAFB97 -:10421000044650B99DF88B30980655D4190653D4EE -:104220009DF84630DA0706D50724284603F038F80B -:10423000204638B070BD039B04931878042814D12D -:1042400004A91869FFF780FB069E9DF84630DB063F -:1042500010D410A8FEF776FF04460028E5D156BB1F -:104260000398FEF7DBFB0446DFE71F99FFF782FBAD -:104270000646EAE7039BDA69B242D5D024930021CF -:10428000269624A81B78042B01BFDDE90823CDE97D -:1042900028239DF817308DF89730FEF7EFF9044684 -:1042A0000028C2D124A8FFF741F804460028BBD05B -:1042B0000428BAD1CDE70246314604A8FEF7C2FA77 -:1042C00004460028B1D1CBE70624AEE71124AFE7BE -:1042D000F0B5BDB0CDE900106846FDF70FFF022232 -:1042E00003A901A8FEF7E6FB0446002841D1039B81 -:1042F0004FF48C60149302F0C3FF0546002800F0D1 -:10430000EE80039B00F5007214AE0199D8601A612B -:104310003046FFF737FB044640BB9DF89B3013F057 -:10432000A00F40F0D880039B009F1A78042A68D120 -:104330001B6904AC03F1400C1868083353F8041CE3 -:104340002246634503C21446F6D15022314628A8BE -:10435000FDF7C0FC394628A8FFF714FB04460028E7 -:104360004CD12A9A169B9A4206D00824284602F07D -:1043700097FF20463DB0F0BD349A209B9A42F4D17D -:1043800028A8FFF733F904460028EFD1039B04AFB8 -:104390001B6993F801E093F823C09C8C3A460833DC -:1043A00003CAB24243F8080C43F8041C1746F5D17F -:1043B000039B28A81B6983F801E0039B1A6982F814 -:1043C00023C01A6982F82440240A82F825401A6919 -:1043D0001379D9065CBF43F020031371FEF776FF13 -:1043E00004460028C2D13046FEF7ACFE0446002841 -:1043F000BCD10398FEF712FB0446B7E70428B5D1F9 -:10440000BEE7239A04AB02F1200C1068083252F880 -:10441000041C1C46624503C42346F6D15022314693 -:1044200028A8FDF757FC394628A8FFF7ABFA044641 -:1044300000284CD12A9A169B9A4296D1349A209BF6 -:104440009A4292D128A8FFF7D1F8044600288DD1CE -:1044500037990DF11D030DF12D0001F10D0253F8F7 -:10446000044B834242F8044BF9D11888012710808D -:104470009B7893709DF81B30039CDA0658BF43F07D -:104480002003CB72E770CB7ADB06ACD5169A2A9B59 -:104490009A42A8D02078FFF76DFA01462046FDF732 -:1044A000EDFD0146C8B12046FDF798FF04460028FF -:1044B0007FF45CAF039890F86D302E2B93D12A9A3D -:1044C00000F16C01FDF7E6FD039BDF708BE704282C -:1044D0007FF44CAFB6E7062448E7022446E71124F0 -:1044E00047E700007F2810B501D880B210BDB0F5B5 -:1044F000803F13D240F2523399420FD10849002233 -:1045000031F8024B93B2844203D103F18000C0B270 -:10451000ECE70132802AF3D11346F6E70020E5E705 -:10452000489600087F280DD940F25233994208D1AD -:10453000FF2806D800F10040034B803833F8100004 -:1045400070470020704700BF48960008B0F5803FD4 -:10455000F0B522D21F4A83B21F49B0F5805F28BF51 -:104560000A46141D34F8042C2146AAB1934213D3F1 -:1045700034F8025C2E0AEFB252FA85F5A84222DA2C -:10458000082E09D8DFE806F0050A10121416181ACA -:104590001C00801A34F810301846F0BD981A00F04C -:1045A00001001B1A9BB2F7E7103BFBE7203BF9E742 -:1045B000303BF7E71A3BF5E70833F3E7503BF1E709 -:1045C000A3F5E353EEE70434002ECBD101EB470211 -:1045D000C7E700BF989300088C95000808B5074B03 -:1045E000074A196801F03D01996053680BB1906862 -:1045F0009847BDE8084003F08FB800BF00000240B4 -:104600004436002008B5084B1968890901F03D01BE -:104610008A019A60054AD3680BB110699847BDE8D2 -:10462000084003F079B800BF000002404436002083 -:1046300008B5084B1968090C01F03D010A049A609D -:10464000054A53690BB190699847BDE8084003F0EB -:1046500063B800BF000002404436002008B5084B94 -:104660001968890D01F03D018A059A60054AD369F0 -:104670000BB1106A9847BDE8084003F04DB800BF81 -:10468000000002404436002008B5074B074A59682D -:1046900001F03D01D960536A0BB1906A9847BDE8BB -:1046A000084003F039B800BF000002404436002043 -:1046B00008B5084B5968890901F03D018A01DA60A3 -:1046C000054AD36A0BB1106B9847BDE8084003F068 -:1046D00023B800BF000002404436002008B5084B54 -:1046E0005968090C01F03D010A04DA60054A536B70 -:1046F0000BB1906B9847BDE8084003F00DB800BFC0 -:10470000000002404436002008B5084B5968890D66 -:1047100001F03D018A05DA60054AD36B0BB1106CDC -:104720009847BDE8084002F0F7BF00BF0000024014 -:104730004436002008B5074B074A196801F03D01CF -:104740009960536C0BB1906C9847BDE8084002F03B -:10475000E3BF00BF000402404436002008B5084B08 -:104760001968890901F03D018A019A60054AD36CF4 -:104770000BB1106D9847BDE8084002F0CDBF00BFF7 -:10478000000402404436002008B5084B1968090CA3 -:1047900001F03D010A049A60054A536D0BB1906D1A -:1047A0009847BDE8084002F0B7BF00BF00040240D0 -:1047B0004436002008B5084B1968890D01F03D0109 -:1047C0008A059A60054AD36D0BB1106E9847BDE813 -:1047D000084002F0A1BF00BF0004024044360020A0 -:1047E00008B5074B074A596801F03D01D960536E7F -:1047F0000BB1906E9847BDE8084002F08DBF00BF36 -:10480000000402404436002008B5084B5968890965 -:1048100001F03D018A01DA60054AD36E0BB1106FD9 -:104820009847BDE8084002F077BF00BF000402408F -:104830004436002008B5084B5968090C01F03D01C9 -:104840000A04DA60054A536F0BB1906F9847BDE8D0 -:10485000084002F061BF00BF00040240443600205F -:1048600008B5084B5968890D01F03D018A05DA60E9 -:10487000054AD36F13B1D2F880009847BDE80840CD -:1048800002F04ABF000402404436002000230C49D5 -:1048900010B51A460B4C0B6054F82300026001EB74 -:1048A000430004334260402BF6D1074A4FF0FF33F8 -:1048B0009360D360C2F80834C2F80C3410BD00BF56 -:1048C0004436002048970008000002400F28F8B541 -:1048D00010D9102810D0112811D0122808D10F2477 -:1048E0000720DFF8B4E00126DEF80050A04208D926 -:1048F000002649E00446F4E70F240020F1E70724EE -:10490000FBE706FA00F73D4240D1214C4FEA001C7C -:104910003D4304EB00160EEBC000CEF80050C0E99A -:104920000123FBB24BB11B48836B43F0010383634C -:10493000036E43F001030366036E17F47F4F09D043 -:104940001448836B43F002038363036E43F0020356 -:104950000366036E54F80C00036823F01F03036022 -:10496000056815F00105FBD104EB0C033D2493F819 -:104970000CC05F6804FA0CF43C60212405604461BB -:1049800012B1987B00F0B4FC3046F8BD0130ADE7C1 -:1049900048970008004502584436002010B53024DE -:1049A00084F31188FFF792FF002383F3118810BD71 -:1049B00010B50446807B00F0B1FC01231049627BF6 -:1049C00003FA02F20B6823EA0203DAB20B604AB977 -:1049D0000C4A916B21F001019163116E21F00101EC -:1049E0001166126E13F47F4F09D1064B9A6B22F0B9 -:1049F00002029A631A6E22F002021A661B6E10BD42 -:104A0000443600200045025808B5302383F311884E -:104A1000FFF7CEFF002383F3118808BD836CC26AC1 -:104A20008B42506810B506D95A1E4C0002EB410368 -:104A3000B3FBF4F3184410BD01F001038A0748BF2B -:104A400043F002034A0748BF43F008030A0748BF80 -:104A500043F00403CA0648BF43F010038A06426BC2 -:104A600048BF43F0200313434363704710B5074C1E -:104A7000204600F0BFFF064B0022C4E91023054B7F -:104A8000A364054BE363054BE36410BDC836002007 -:104A90000070005200B4C4041C3700201C390020F0 -:104AA000C36A0BB90E4BC3620379012B0CD10D4BBA -:104AB000984209D10C4B5A6B42F480325A63DA6D3A -:104AC00042F48032DA65DB6D436C00221A65DA62EB -:104AD0001A605A605A624FF0FF329A63704700BF03 -:104AE00048980008C8360020004502580379012B79 -:104AF00016D0436C00221A65DA621A605A605A6254 -:104B00004FF0FF329A63074B984209D1064B5A6B1C -:104B100022F480325A63DA6D22F48032DA65DB6D7A -:104B2000704700BFC83600200045025810B5446CDD -:104B30000649FFF773FF6060236842F2107043F08C -:104B400003032360BDE8104001F05ABD801A06003F -:104B50000129F8B5466C0B4F09D175680A493D40EB -:104B6000FFF75CFF054345F480557560F8BD746838 -:104B700006493C40FFF752FF044344F480547460FC -:104B8000F4E700BF00ECFFFF80F0FA0240787D01FF -:104B9000436C00225A601A6070470000426C012981 -:104BA000536823F4404304D0022905D001B953606F -:104BB000704743F48043FAE743F40043F7E700000B -:104BC000436C41F480519A60D9605A6B1206FCD54F -:104BD00080229A637047000010B541F48851446CFC -:104BE000A260E160616B11F04502FBD0A26311F09D -:104BF000040203D0FFF720FF012010BD61691046B9 -:104C00001960FAE710B541F48851446CA260E16084 -:104C1000616B11F04502FBD0A26311F0050203D0D5 -:104C2000FFF70AFF012010BD616910461960FAE71D -:104C300073B5134604460E46302282F31188426C47 -:104C4000D26B32B14FF0FF314030019301F0E4FC00 -:104C5000019B606C00220265C263C262456B15F461 -:104C6000807504D185F31188012002B070BD4FF02A -:104C7000FF31816382F31188012E06D90C21204671 -:104C800002B0BDE87040FFF7BDBF1046EDE7000081 -:104C900073B5446C0E4600250192616BA1632565D6 -:104CA000E562FFF7C9FE012E07D9019B2A460C21B8 -:104CB00002B0BDE87040FFF7A5BF02B070BD0000B4 -:104CC00010B541F49851446CA260E160616B11F041 -:104CD0004502FBD0A26311F03F0203D0FFF7ACFE08 -:104CE000012010BD216A10461960E1695960A1696F -:104CF00099606169D960F4E72DE9F74304460191B1 -:104D0000006D01A91746984602F02EFC06460028C1 -:104D10004AD0626C2046DDF804905568C5F3090559 -:104D200001356B00A56CB5FBF3F54FF47A73B5FB59 -:104D3000F3F55D43556200F023FE50BB636C4FF00A -:104D4000FF3201254146C3F8589020461D659A63FD -:104D50004FF49572DA6342F207029F62DA62E36C03 -:104D60000A9AFFF74FFFA0B9E26C104B11680B4095 -:104D70007BB929462046FFF75BFF054648B92E461A -:104D80003A460199206D02F027FC304603B0BDE899 -:104D9000F0833A460199206D02F01EFCE26C01217D -:104DA0002046FFF775FFF0E70126EEE708E0FFFD7C -:104DB0002DE9F7431F46436C01924FF47A725D6808 -:104DC00004468846C5F3090501356E00856CB5FBC0 -:104DD000F6F5B5FBF2F555435D6200F0D1FD20B16B -:104DE0000125284603B0BDE8F0837E0201A9206DAD -:104DF000324602F0B9FB05460028F1D0636C019AF7 -:104E0000D4F84C909A6501221A654FF0FF329A63EC -:104E10004FF49572DA639E62236BDB064B4658BFF4 -:104E20004FEA4828012F42461BD912212046FFF79E -:104E3000E9FEC0B9D9F80020104B13409BB9636C50 -:104E400042F2930239462046DA62E26CFFF7F0FE46 -:104E5000804640B932460199206D454602F0BCFBC0 -:104E6000BFE71121E2E732460199206D02F0B4FB61 -:104E7000E26C39462046FFF70BFFB2E708E0FFFD82 -:104E80002DE9F3411F46436C01924FF47A725D683D -:104E900004468846C5F3090501356E00856CB5FBEF -:104EA000F6F5B5FBF2F555435D6200F069FD20B102 -:104EB0000125284602B0BDE8F0817E0201A9206DDF -:104EC000324602F097FB05460028F1D0636C019A48 -:104ED0009A6501221A654FF0FF329A634FF48D7282 -:104EE000DA639E62236BE66CDB06334658BF4FEAFB -:104EF0004828012F424619D919212046FFF782FE82 -:104F0000B0B932680F4B134093B9636C42F291020F -:104F100039462046DA62E26CFFF78AFE064638B967 -:104F200001993546206D02F0A1FBC2E71821E4E7A4 -:104F30000199206D02F09AFBE26C39462046FFF79A -:104F4000A7FEB6E708E0FFFD12F0030F2DE9F041E0 -:104F500007460C4615461E4617D00E44B44202D1F1 -:104F60000020BDE8F0810123FA6B21463846FFF7A7 -:104F70001FFF0028F5D128464FF40072F96B05F5A4 -:104F800000750134FCF7A6FEE8E7BDE8F041FFF745 -:104F90000FBF000012F0030F2DE9F04107460C4649 -:104FA00015461E4617D00E44B44202D10020BDE87B -:104FB000F08129464FF40072F86B05F50075FCF797 -:104FC00089FE0123FA6B21463846FFF759FF002876 -:104FD000EDD10134E8E7BDE8F041FFF751BF000033 -:104FE00000207047302310B583F311880024436CF0 -:104FF00040302146DC6301F01DFB84F3118810BDB5 -:10500000026843681143016003B11847704700000C -:10501000024A136843F0C003136070470044004025 -:10502000024A136843F0C003136070470048004011 -:10503000024A136843F0C0031360704700780040D1 -:10504000044B9A6C02439A641A6F104318671B6FE3 -:10505000704700BF0045025837B5274C274D204602 -:1050600000F028FD04F11400009400234FF40072B6 -:10507000234900F0C3F94FF40072224904F13800CB -:105080000094214B00F03CFA204BC4E91735204C2A -:10509000204600F00FFD04F11400009400234FF4AB -:1050A00000721C4900F0AAF94FF400721A4904F189 -:1050B00038000094194B00F023FA194BC4E9173556 -:1050C000184C204600F0F6FC04F1140000234FF4C5 -:1050D00000721549009400F091F9144B4FF40072DE -:1050E000134904F13800009400F00AFA114BC4E9A6 -:1050F000173503B030BD00BF2039002000E1F505B1 -:10510000643A002064400020115000080044004030 -:105110008C390020643C00206442002021500008AB -:1051200000480040F8390020643E0020315000085B -:10513000644400200078004038B5264D0446037CC6 -:10514000002918BF0D46012B06D1234B984230D1C0 -:105150004FF40030FFF774FF2A68236EE16D03EB14 -:105160005203A566B3FBF2F36A68100442BF23F052 -:10517000070003F0070343EA4003CB60AB6843F04A -:1051800040034B60EB6843F001038B6042F496737D -:1051900043F001030B604FF0FF330B62510505D55F -:1051A00012F0102211D0B2F1805F10D084F8643078 -:1051B00038BD0A4B984205D0094B9842CCD14FF0EC -:1051C0008040C7E74FF48020C4E77F23EEE73F230A -:1051D000ECE700BF50980008203900208C390020EF -:1051E000F83900202DE9F047C66D05463768F469A7 -:1051F000210734621AD014F0080118BF4FF48071EF -:10520000E20748BF41F02001A3074FF0300348BF39 -:1052100041F04001600748BF41F0800183F31188ED -:10522000281DFFF7EDFE002383F31188E2050AD560 -:10523000302383F311884FF48061281DFFF7E0FECF -:10524000002383F311884FF030094FF0000A14F067 -:10525000200838D13B0616D54FF0300905F1380A41 -:10526000200610D589F31188504600F07DF90028FA -:1052700036DA0821281DFFF7C3FE27F080033360CC -:10528000002383F31188790614D5620612D53023E2 -:1052900083F31188D5E913239A4208D12B6C33B1DB -:1052A00027F040071021281DFFF7AAFE37600023D2 -:1052B00083F31188E30618D5AA6E1369ABB1506960 -:1052C000BDE8F047184789F31188736A284695F8B6 -:1052D0006410194000F008FC8AF31188F469B6E7FD -:1052E000B06288F31188F469BAE7BDE8F08700007E -:1052F000090100F16043012203F56143C9B283F85B -:10530000001300F01F039A4043099B0003F1604320 -:1053100003F56143C3F880211A60704700F01F0352 -:1053200001229A40430900F160409B0000F5614072 -:1053300003F1604303F56143C3F88020C3F8802183 -:10534000002380F800337047F8B51546826804469C -:105350000B46AA4200D28568A1692669761AB54231 -:105360000BD218462A46FCF7B5FCA3692B44A3616F -:105370002846A3685B1BA360F8BD0CD9AF1B184679 -:105380003246FCF7A7FC3A46E1683044FCF7A2FC41 -:10539000E3683B44EBE718462A46FCF79BFCE368CE -:1053A000E5E7000083689342F7B50446154600D24E -:1053B0008568D4E90460361AB5420BD22A46FCF758 -:1053C00089FC63692B4463612846A3685B1BA36067 -:1053D00003B0F0BD0DD93246AF1B0191FCF77AFC4A -:1053E00001993A46E0683144FCF774FCE3683B44B9 -:1053F000E9E72A46FCF76EFCE368E4E710B50A44E7 -:105400000024C361029B8460C16002610362C0E941 -:105410000000C0E9051110BD08B5D0E9053293427E -:1054200001D1826882B98268013282605A1C42616D -:1054300019700021D0E904329A4224BFC368436145 -:1054400001F012F9002008BD4FF0FF30FBE700002B -:1054500070B5302304460E4683F31188A568A5B1C4 -:10546000A368A269013BA360531CA361157822695C -:10547000934224BFE368A361E3690BB120469847D8 -:10548000002383F31188284607E03146204601F0C7 -:10549000DBF80028E2DA85F3118870BD2DE9F74FBB -:1054A00004460E4617469846D0F81C904FF0300A36 -:1054B0008AF311884FF0000B154665B12A46314634 -:1054C0002046FFF741FF034660B94146204601F000 -:1054D000BBF80028F1D0002383F31188781B03B0B8 -:1054E000BDE8F08FB9F1000F03D001902046C84706 -:1054F000019B8BF31188ED1A1E448AF31188DCE7B7 -:10550000C160C361009B82600362C0E90511114460 -:10551000C0E9000001617047F8B504460D46164623 -:10552000302383F31188A768A7B1A368013BA36068 -:1055300063695A1C62611D70D4E904329A4224BF27 -:10554000E3686361E3690BB120469847002080F36C -:10555000118807E03146204601F076F80028E2DAAB -:1055600087F31188F8BD0000D0E9052310B59A42F1 -:1055700001D182687AB982680021013282605A1CA6 -:1055800082611C7803699A4224BFC368836101F079 -:105590006BF8204610BD4FF0FF30FBE72DE9F74FC9 -:1055A00004460E4617469846D0F81C904FF0300A35 -:1055B0008AF311884FF0000B154665B12A46314633 -:1055C0002046FFF7EFFE034660B94146204601F052 -:1055D0003BF80028F1D0002383F31188781B03B037 -:1055E000BDE8F08FB9F1000F03D001902046C84705 -:1055F000019B8BF31188ED1A1E448AF31188DCE7B6 -:105600000379052B05BF836A002001204B6004BF8E -:105610004FF400730B60704770B55D1E866A0446D8 -:105620000D44B54205D9436B43F080034363012029 -:1056300070BD06250571FFF787FC05232371F7E789 -:1056400070B55D1E866A04460D44B54205D9436BAC -:1056500043F080034363012070BD07250571FFF708 -:1056600099FC05232371F7E738B505790446052D24 -:1056700005D108230371FFF7B3FC257138BD012064 -:10568000FCE700000323F0B5037185B00446FFF783 -:105690004DFA002220461146FFF792FA4FF4D572D8 -:1056A00003AB08212046FFF7ADFA0246B8B9012343 -:1056B0002363039BC3F30323012B09D103AB3721DE -:1056C0002046FFF79FFA18B9A44B039A1340ABB1D9 -:1056D00020460125FFF75CFA0223237137E103AB73 -:1056E000002237212046FFF78DFA28B99B4A039BF9 -:1056F0001A40002A00F0A78002232363236B03F0E3 -:105700000F03022B40F0A9806425954E42F21070E1 -:1057100000F076FF03AB324601212046FFF75CFA2A -:105720000028D5D1039B002B80F293805A0003D52B -:10573000236B43F010032363002204F108030221CA -:105740002046FFF7BDFA02460028C1D104F1380314 -:1057500003212046FFF756FA0028B9D104F11805B5 -:10576000A26B092120462B46FFF7AAFA0028AFD1E9 -:1057700002ABA26B07212046FFF744FA0646002839 -:10578000A6D1236B03F00F03022B40F08F807E2203 -:105790007F21284603F01CFA012840F28780E76B3E -:1057A00042F2107000F02CFF08234FF400723946CB -:1057B00020460096FFF7A0FA002889D1384603F06A -:1057C00055FA236BA06203F00F03022B72D103ABD7 -:1057D000644A06212046FFF715FA002871D15F4977 -:1057E000039B1940B1FA81F149092046FFF7B0F94E -:1057F00002AB4FF4007210212046FFF703FA054672 -:1058000000287FF465AF554E029B33427FF460AFB2 -:10581000236B13F00E0F03F00F0273D0022A7FF4F4 -:1058200057AFE36A1978012900F09480022900F04B -:105830009380002900F089804B4F2046FFF7AEF996 -:1058400003AB3A4676E0114620462263FFF7B8F9EB -:1058500054E7013D7FF45AAF3AE7444D6426444A89 -:105860003E4F012B18BF154603AB002237212046BF -:10587000FFF7C8F900287FF42BAF039B3B427FF46E -:1058800027AF03AB2A4629212046FFF7A5F90028B8 -:105890007FF41EAF039B002BFFF648AF013E3FF4A1 -:1058A00017AF42F2107000F0ABFEDDE7284603F0C0 -:1058B000B1F986E77E227F212846E66B03F088F95E -:1058C00008B9002191E70023402231462046009389 -:1058D0000623FFF711FA0028F3D1B3895BBA9B07BF -:1058E000EFD5244B40223146204600930623FFF794 -:1058F00003FA0028E5D1317C01F00F010F3918BF00 -:10590000012172E7E36A1978F9B101297FF4E0AE69 -:105910002046FFF743F903ABA26B37212046FFF780 -:1059200071F900287FF4D4AE039B33427FF4D0AEEC -:1059300003AB022206212046FFF764F900287FF41A -:10594000C7AE039B33427FF4C3AE052323712846C1 -:1059500005B0F0BD084F70E7084F6EE708E0FFFDA7 -:105960000080FFC00001B9030000B7030080FF50B2 -:1059700000001080F1FFFF800001B7030002B703B1 -:1059800037B504460C4D01ABA26B0D212046FFF745 -:1059900039F978B9019B2B420BD1C3F34323042B74 -:1059A00008D0053B022B04D84FF47A7000F028FE93 -:1059B000E9E7012003B030BD08E0FFFD70B53023FA -:1059C000054683F3118803790024022B03D184F365 -:1059D0001188204670BD0423037184F311880226C8 -:1059E000FFF7CEFF04462846FFF7D2F82E71F0E706 -:1059F000FFF73CB8044B03600123037100234363AA -:105A0000C0E90A33704700BF6898000810B530231A -:105A1000044683F31188C162FFF742F80223002095 -:105A2000237180F3118810BD10B53023044683F331 -:105A30001188FFF75BF800230122E362227183F3F0 -:105A4000118810BD026843681143016003B1184713 -:105A5000704700001430FFF721BD00004FF0FF3306 -:105A60001430FFF71BBD00003830FFF797BD000072 -:105A70004FF0FF333830FFF791BD00001430FFF7CF -:105A8000E7BC00004FF0FF311430FFF7E1BC00002D -:105A90003830FFF741BD00004FF0FF323830FFF7DC -:105AA0003BBD0000012914BF6FF0130000207047B8 -:105AB000FFF7D2BA044B036000234360C0E902330E -:105AC00001230374704700BF8C98000810B5302381 -:105AD000044683F31188FFF72FFB02230020237471 -:105AE00080F3118810BD000038B5C36904460D4627 -:105AF0001BB904210844FFF7A5FF294604F114004F -:105B0000FFF78AFC002806DA201D4FF40061BDE88B -:105B10003840FFF797BF38BD026843681143016002 -:105B200003B118477047000013B5406B00F580546F -:105B3000D4F8A4381A681178042914D1017C0229F8 -:105B400011D11979012312898B4013420BD101A97C -:105B50004C3002F06BFFD4F8A4480246019B217937 -:105B6000206800F0DFF902B010BD0000143002F030 -:105B7000EDBE00004FF0FF33143002F0E7BE00002E -:105B80004C3002F0BFBF00004FF0FF334C3002F04A -:105B9000B9BF0000143002F0BBBE00004FF0FF316F -:105BA000143002F0B5BE00004C3002F08BBF000094 -:105BB0004FF0FF324C3002F085BF000000207047EC -:105BC00010B500F58054D4F8A4381A681178042967 -:105BD00017D1017C022914D15979012352898B40B4 -:105BE00013420ED1143002F04DFE024648B1D4F8F3 -:105BF000A4484FF4407361792068BDE8104000F07C -:105C00007FB910BD406BFFF7DBBF0000704700009D -:105C10007FB5124B0125042604460360002305745A -:105C200000F1840243602946C0E902330C4B029024 -:105C3000143001934FF44073009602F0FFFD094BBE -:105C400004F69442294604F14C000294CDE9006325 -:105C50004FF4407302F0C6FE04B070BDB498000863 -:105C6000055C0008295B00080A68302383F311886B -:105C70000B790B3342F823004B79133342F823009E -:105C80008B7913B10B3342F8230000F58053C3F82E -:105C9000A41802230374002080F3118870470000C9 -:105CA00038B5037F044613B190F85430ABB90125E1 -:105CB000201D0221FFF730FF04F114006FF00101F5 -:105CC000257700F0DDFC04F14C0084F854506FF0AF -:105CD0000101BDE8384000F0D3BC38BD10B501214A -:105CE00004460430FFF718FF0023237784F854306C -:105CF00010BD000038B504460025143002F0B6FD92 -:105D000004F14C00257702F085FE201D84F85450E4 -:105D10000121FFF701FF2046BDE83840FFF750BFE3 -:105D200090F8803003F06003202B06D190F881209A -:105D30000023212A03D81F2A06D800207047222AD0 -:105D4000FBD1C0E91D3303E0034A426707228267A3 -:105D5000C3670120704700BF4422002037B500F51B -:105D60008055D5F8A4381A68117804291AD1017C15 -:105D7000022917D11979012312898B40134211D1BD -:105D800000F14C04204602F005FF58B101A920465D -:105D900002F04CFED5F8A4480246019B2179206808 -:105DA00000F0C0F803B030BD01F10B03F0B550F8BE -:105DB000236085B004460D46FEB1302383F311887D -:105DC00004EB8507301D0821FFF7A6FEFB6806F1EE -:105DD0004C005B691B681BB1019002F035FE019815 -:105DE00003A902F023FE024648B1039B2946204640 -:105DF00000F098F8002383F3118805B0F0BDFB682C -:105E00005A691268002AF5D01B8A013B1340F1D170 -:105E100004F18002EAE70000133138B550F8214060 -:105E2000ECB1302383F3118804F58053D3F8A42810 -:105E30001368527903EB8203DB689B695D6845B1A7 -:105E400004216018FFF768FE294604F1140002F0EF -:105E500023FD2046FFF7B4FE002383F3118838BDED -:105E60007047000001F052BD01234022002110B50F -:105E7000044600F8303BFBF753FF0023C4E901332D -:105E800010BD000010B53023044683F3118824228E -:105E9000416000210C30FBF743FF204601F058FD24 -:105EA00002230020237080F3118810BD70B500EB31 -:105EB0008103054650690E461446DA6018B1102277 -:105EC0000021FBF72DFFA06918B110220021FBF77C -:105ED00027FF31462846BDE8704001F039BE00007A -:105EE00083682022002103F0011310B5044683606B -:105EF0001030FBF715FF2046BDE8104001F0B4BE9E -:105F0000F0B4012500EB810447898D40E4683D43EE -:105F1000A469458123600023A2606360F0BC01F0A6 -:105F2000D1BE0000F0B4012500EB810407898D404B -:105F3000E4683D436469058123600023A2606360D7 -:105F4000F0BC01F047BF000070B5022300250446F5 -:105F5000242203702946C0F888500C3040F8045CB5 -:105F6000FBF7DEFE204684F8705001F085FD636883 -:105F70001B6823B129462046BDE87040184770BD14 -:105F80000378052B10B504460AD080F88C30052321 -:105F9000037043681B680BB1042198470023A3607A -:105FA00010BD00000178052906D190F88C204368C7 -:105FB00002701B6803B118477047000070B590F875 -:105FC0007030044613B1002380F8703004F1800271 -:105FD000204601F06DFE63689B68B3B994F8803089 -:105FE00013F0600535D00021204602F05FF9002152 -:105FF000204602F04FF963681B6813B10621204662 -:106000009847062384F8703070BD204698470028D2 -:10601000E4D0B4F88630A26F9A4288BFA36794F99F -:106020008030A56F002B4FF0300380F20381002DEC -:1060300000F0F280092284F8702083F31188002197 -:106040002046D4E91D23FFF76DFF002383F3118859 -:10605000DAE794F8812003F07F0343EA022340F259 -:106060000232934200F0C58021D8B3F5807F48D03A -:106070000DD8012B3FD0022B00F09380002BB2D122 -:1060800004F1880262670222A267E367C1E7B3F501 -:10609000817F00F09B80B3F5407FA4D194F88230DB -:1060A000012BA0D1B4F8883043F0020332E0B3F5FD -:1060B000006F4DD017D8B3F5A06F31D0A3F5C063F2 -:1060C000012B90D86368204694F882205E6894F88B -:1060D0008310B4F88430B047002884D043686367E5 -:1060E0000368A3671AE0B3F5106F36D040F602429A -:1060F00093427FF478AF5C4B63670223A36700236E -:10610000C3E794F88230012B7FF46DAFB4F8883088 -:1061100023F00203A4F88830C4E91D55E56778E749 -:10612000B4F88030B3F5A06F0ED194F882302046D9 -:1061300084F88A3001F0FEFC63681B6813B101210A -:1061400020469847032323700023C4E91D339CE7AE -:1061500004F18B0363670123C3E72378042B10D179 -:10616000302383F311882046FFF7BAFE85F31188A8 -:106170000321636884F88B5021701B680BB12046A3 -:10618000984794F88230002BDED084F88B300423BB -:10619000237063681B68002BD6D0022120469847E5 -:1061A000D2E794F8843020461D0603F00F010AD58B -:1061B00001F070FD012804D002287FF414AF2B4BAE -:1061C0009AE72B4B98E701F057FDF3E794F88230FC -:1061D000002B7FF408AF94F8843013F00F01B3D094 -:1061E0001A06204602D502F079F8ADE702F06AF807 -:1061F000AAE794F88230002B7FF4F5AE94F884304F -:1062000013F00F01A0D01B06204602D502F04EF875 -:106210009AE702F03FF897E7142284F8702083F39E -:1062200011882B462A4629462046FFF769FE85F34A -:106230001188E9E65DB1152284F8702083F3118896 -:1062400000212046D4E91D23FFF75AFEFDE60B226C -:1062500084F8702083F311882B462A46294620466D -:10626000FFF760FEE3E700BFE4980008DC98000851 -:10627000E098000838B590F870300446002B3ED006 -:10628000063BDAB20F2A34D80F2B32D8DFE803F0FE -:106290003731310822323131313131313131373713 -:1062A000856FB0F886309D4214D2C3681B8AB5FB57 -:1062B000F3F203FB12556DB9302383F311882B469B -:1062C0002A462946FFF72EFE85F311880A2384F813 -:1062D00070300EE0142384F87030302383F311887B -:1062E000002320461A461946FFF70AFE002383F3CF -:1062F000118838BDC36F03B198470023E7E7002139 -:10630000204601F0D3FF0021204601F0C3FF63685F -:106310001B6813B10621204698470623D7E70000E3 -:1063200010B590F870300446142B29D017D8062BDE -:1063300005D001D81BB110BD093B022BFBD80021B1 -:10634000204601F0B3FF0021204601F0A3FF63685F -:106350001B6813B1062120469847062319E0152B28 -:10636000E9D10B2380F87030302383F311880023A8 -:106370001A461946FFF7D6FD002383F31188DAE7A2 -:10638000C3689B695B68002BD5D1C36F03B1984785 -:10639000002384F87030CEE70023826880F8243030 -:1063A00083691B6899689142FBD25A680360426016 -:1063B00010605860704700000023826880F8243025 -:1063C00083691B6899689142FBD85A6803604260F0 -:1063D000106058607047000008B50846302383F30A -:1063E000118891F82430032B05D0042B0DD02BB944 -:1063F00083F3118808BD8B6A00221A604FF0FF33C7 -:106400008362FFF7C9FF0023F2E7D1E9003213608E -:106410005A60F3E7034610B51B68984203D09C68A6 -:106420008A689442F8D25A680B604A6011605960D9 -:1064300010BD0000FFF7B0BF064BD96881F82400FB -:106440001868026853601A600122D86080F824201E -:10645000F9F7D8BF684600200C4B30B5DD684B1CFF -:1064600087B004460FD02B46094A684600F09CF9D5 -:106470002046FFF7E1FF009B13B1684600F09EF94C -:10648000A86A07B030BDFFF7D7FFF9E768460020DC -:10649000D9630008044B1A68DB6890689B689842CF -:1064A00094BF00200120704768460020094B10B5BA -:1064B0001C68D868226853601A600122DC6084F886 -:1064C0002420FFF779FF01462046BDE81040F9F788 -:1064D00099BF00BF68460020044B1A68DB689268C9 -:1064E0009B689A4201D9FFF7E1BF704768460020D8 -:1064F00038B50123084C00252370656002F0E4FBE9 -:1065000002F00AFC0549064802F0E0FC0223237071 -:1065100085F3118838BD00BF10490020EC980008B1 -:106520006846002000F080B9034A516853685B1A3E -:106530009842FBD8704700BF001000E08B604B63AF -:106540000023CA6100F128020B6302230A618B84D5 -:106550000123886181F8263001F11003C26A4A6183 -:106560001360C36201F12C030846CB627047000040 -:10657000D0E90131026841F8183CA1F19C03383997 -:10658000CB60036941F8243C436941F8203C034B4C -:1065900041F8043CC3680248FFF7D0BF1D0400085F -:1065A0006846002008B5FFF7E3FFBDE80840FFF7A5 -:1065B00041BF000038B50E4BDC6804F12C05A06229 -:1065C000E06AA8420FD194F826303BB994F8253000 -:1065D0009B0702BFD4E9043213605A600F20BDE864 -:1065E0003840FFF729BF0368E362FFF723FFE7E7BF -:1065F00068460020302383F31188FFF7DBBF0000DB -:1066000008B50146302383F311880820FFF724FFE3 -:10661000002383F3118808BD054BDB6821B10360BB -:1066200098620320FFF718BF4FF0FF30704700BF9C -:106630006846002003682BB1002202601846996268 -:10664000FFF7F8BE70470000064BDB6839B14268BF -:1066500018605A60136043600420FFF7FDBE4FF0DE -:10666000FF307047684600200368984206D01A68D9 -:106670000260506018469962FFF7DCBE7047000068 -:1066800038B504460D462068844200D138BD036801 -:1066900023605C608562FFF7CDFEF4E7036810B508 -:1066A0009C68A2420CD85C688A600B604C602160D8 -:1066B000596099688A1A9A604FF0FF33836010BD61 -:1066C000121B1B68ECE700000A2938BF0A2170B5CD -:1066D00004460D460A26601902F0F0FA02F0D8FAD4 -:1066E000041BA54203D8751C04462E46F3E70A2E68 -:1066F00004D90120BDE8704002F0B0BC70BD0000BC -:10670000F8B5144B0D460A2A4FF00A07D96103F178 -:106710001001826038BF0A22416019691446016085 -:1067200048601861A81802F0B9FA02F0B1FA431BE8 -:106730000646A34206D37C1C28192746354602F09C -:10674000BDFAF2E70A2F04D90120BDE8F84002F0B3 -:1067500085BCF8BD68460020F8B506460D4602F037 -:1067600097FA0F4A134653F8107F9F4206D12A46E4 -:1067700001463046BDE8F840FFF7C2BFD169BB68AB -:10678000441A2C1928BF2C46A34202D92946FFF7E8 -:106790009BFF224631460348BDE8F840FFF77EBF25 -:1067A0006846002078460020C0E90323002310B487 -:1067B0005DF8044B4361FFF7CFBF000010B5194CE3 -:1067C000236998420DD08168D0E9003213605A6085 -:1067D0009A680A449A60002303604FF0FF33A36174 -:1067E00010BD0268234643F8102F53600022026058 -:1067F00022699A4203D1BDE8104002F059BA936869 -:1068000081680B44936002F043FA2269E16992685F -:10681000441AA242E4D91144BDE81040091AFFF716 -:1068200053BF00BF684600202DE9F047DFF8BC8069 -:1068300008F110072C4ED8F8105002F029FAD8F8B9 -:106840001C40AA68031B9A423ED814444FF000092A -:10685000D5E90032C8F81C4013605A60C5F80090B2 -:10686000D8F81030B34201D102F022FA89F311882E -:10687000D5E9033128469847302383F311886B69A3 -:10688000002BD8D002F004FA6A69A0EB0409824612 -:106890004A450DD2022002F0E1FB0022D8F8103068 -:1068A000B34208D151462846BDE8F047FFF728BF5C -:1068B000121A2244F2E712EB09092946384638BF7A -:1068C0004A46FFF7EBFEB5E7D8F81030B34208D0E0 -:1068D0001444C8F81C00211AA960BDE8F047FFF76E -:1068E000F3BEBDE8F08700BF784600206846002070 -:1068F00038B502F0CDF9054AD2E90845031B18194D -:1069000045F10001C2E9080138BD00BF684600201A -:1069100010B560B9074804790368053C9B6818BF47 -:106920000124984708B144F00404204610BD012416 -:10693000FBE700BFC8360020FFF7EABF2DE9F047AC -:10694000884617469A460446B0B90D4E3579052D4E -:1069500005D003240DE0013D15F0FF050ED032688F -:10696000534639463046D2F814904246C84700286C -:10697000F1D12046BDE8F0870424FAE70124F8E7C6 -:10698000C83600202DE9F047884617469A46044647 -:10699000B0B90D4E3579052D05D003240DE0013D2C -:1069A00015F0FF050ED03268534639463046D2F80E -:1069B00018904246C8470028F1D12046BDE8F0872C -:1069C0000424FAE70124F8E7C836002037B50C465E -:1069D000154670B951B101290BD1074869460368C2 -:1069E0001B6A984710B9019B04462B60204603B0F0 -:1069F00030BD0424FAE700BFC836002000207047ED -:106A0000FEE70000704700004FF0FF3070470000C5 -:106A10004B6843608B688360CB68C3600B694361DC -:106A20004B6903628B6943620B6803607047000027 -:106A300008B5464B40F2FF714548D3F888200A4319 -:106A4000C3F88820D3F8882022F4FF6222F00702DE -:106A5000C3F88820D3F888303E4B1A6C0A431A6476 -:106A60009A6E0A433C499A669B6EFFF7D1FF1C3130 -:106A700000F58060FFF7CCFF1C3100F58060FFF768 -:106A8000C7FF1C3100F58060FFF7C2FF1C3100F525 -:106A90008060FFF7BDFF1C3100F58060FFF7B8FF95 -:106AA0001C3100F58060FFF7B3FF1C3100F58060FA -:106AB000FFF7AEFF1C3100F58060FFF7A9FF1C3126 -:106AC00000F58060FFF7A4FF1C3100F58060FFF740 -:106AD0009FFF01F097FC214BD3F8902242F0010276 -:106AE000C3F89022D3F8942242F00102C3F8942212 -:106AF0000522C3F898204FF06052C3F89C20184A32 -:106B0000C3F8A020174BDA6952021ED59A69D00744 -:106B100004D5154A9A6002F144329A60114BDA6941 -:106B2000D107FCD41A6A22F480021A629A6942F0F0 -:106B300002029A61DA69D207FCD49A6942F0010232 -:106B40009A61084AD369DB07FCD408BD00440258A7 -:106B500000000258004502580099000800ED00E0CE -:106B60001F000803002000523B2A190808B501F055 -:106B700051FEFFF7BDFC0D4BDA6B42F04002DA63C9 -:106B80005A6E22F040025A665B6E094B1A6842F058 -:106B900008021A601A6842F004021A6000F06EFDE2 -:106BA00000F032FBBDE8084000F0B4B800450258E0 -:106BB000001802480120704700207047704700000D -:106BC00002290CD0032904D00129074818BF00204E -:106BD0007047032A05D8054800EBC20070470448F7 -:106BE00070470020704700BF049B0008542200201B -:106BF000B89A000870B59AB005460846144601A92F -:106C000000F0C2F801A8FBF783F8431C0022C6B2CB -:106C10005B001046C5E9003423700323023404F8F6 -:106C2000013C01ABD1B202348E4201D81AB070BD22 -:106C300013F8011B013204F8010C04F8021CF1E7FF -:106C400008B5302383F311880348FFF787F8002342 -:106C500083F3118808BD00BF1849002090F88030E8 -:106C600003F01F02012A07D190F881200B2A03D1DB -:106C70000023C0E91D3315E003F06003202B08D189 -:106C8000B0F884302BB990F88120212A03D81F2A2C -:106C900004D8FFF745B8222AEBD0FAE7034A426747 -:106CA00007228267C3670120704700BF4B22002084 -:106CB00007B5052917D8DFE801F0191603191920BF -:106CC000302383F31188104A01210190FFF7EEF879 -:106CD000019802210D4AFFF7E9F80D48FFF70AF87D -:106CE000002383F3118803B05DF804FB302383F3A2 -:106CF00011880748FEF7D4FFF2E7302383F31188A9 -:106D00000348FEF7EBFFEBE7589A00087C9A00086F -:106D10001849002038B50C4D0C4C2A460C4904F19A -:106D20000800FFF767FF05F1CA0204F110000949E6 -:106D3000FFF760FF05F5CA7204F118000649BDE8C7 -:106D40003840FFF757BF00BFF061002054220020F9 -:106D5000349A00083E9A00084D9A000870B504461F -:106D600008460D46FAF7D4FFC6B220460134037830 -:106D70000BB9184670BD32462946FAF7B5FF002810 -:106D8000F3D10120F6E700002DE9F04705460C4657 -:106D9000FAF7BEFF2B49C6B22846FFF7DFFF08B15E -:106DA0000E36F6B228492846FFF7D8FF08B110364C -:106DB000F6B2632E0BD8DFF88C80DFF88C90234F6F -:106DC000DFF894A02E7846B92670BDE8F0872946F2 -:106DD0002046BDE8F04702F0E5B9252E2ED1072266 -:106DE00041462846FAF780FF70B9194B224603F155 -:106DF000140153F8040B8B4242F8040BF9D11B78B1 -:106E0000073515341370DDE7082249462846FAF79E -:106E10006BFF98B9A21C0F4B197802320909C95DA2 -:106E200002F8041C13F8011B01F00F015345C95D62 -:106E300002F8031CF0D118340835C3E7013504F813 -:106E4000016BBFE7249B00084D9A0008429B000895 -:106E50002C9B000800E8F11F0CE8F11FBFF34F8FD7 -:106E6000044B1A695107FCD1D3F810215207F8D10D -:106E7000704700BF0020005208B50D4B1B78ABB91E -:106E8000FFF7ECFF0B4BDA68D10704D50A4A5A60CA -:106E900002F188325A60D3F80C21D20706D5064A8F -:106EA000C3F8042102F18832C3F8042108BD00BFF1 -:106EB0004E640020002000522301674508B5114BA5 -:106EC0001B78F3B9104B1A69510703D5DA6842F001 -:106ED0004002DA60D3F81021520705D5D3F80C210F -:106EE00042F04002C3F80C21FFF7B8FF064BDA6806 -:106EF00042F00102DA60D3F80C2142F00102C3F83B -:106F00000C2108BD4E640020002000520F289ABFBB -:106F100000F5806040040020704700004FF400300E -:106F200070470000102070470F2808B50BD8FFF7F6 -:106F3000EDFF00F500330268013204D104308342D2 -:106F4000F9D1012008BD0020FCE700000F2838B56A -:106F500005463FD8FFF782FF1F4CFFF78DFF4FF02C -:106F6000FF3307286361C4F814311DD82361FFF78C -:106F700075FF030243F02403E360E36843F08003FA -:106F8000E36023695A07FCD42846FFF767FFFFF741 -:106F9000BDFF4FF4003100F0ABFA2846FFF78EFF3B -:106FA000BDE83840FFF7C0BFC4F81031FFF756FF07 -:106FB000A0F108031B0243F02403C4F80C31D4F8F9 -:106FC0000C3143F08003C4F80C31D4F810315B0766 -:106FD000FBD4D9E7002038BD002000522DE9F84F3E -:106FE00005460C46104645EA0203DE0602D00020A4 -:106FF000BDE8F88F20F01F00DFF8BCB0DFF8BCA0C0 -:10700000FFF73AFF04EB0008444503D10120FFF7E6 -:1070100055FFEDE720222946204602F08BF810B9F3 -:1070200020352034F0E72B4605F120021F68791C3B -:10703000DDD104339A42F9D105F178431B481C4E47 -:10704000B3F5801F1B4B38BF184603F1F80332BF5E -:10705000D946D1461E46FFF701FF0760A5EB040C99 -:10706000336804F11C0143F002033360231FD9F895 -:10707000007017F00507FAD153F8042F8B424CF833 -:107080000320F4D1BFF34F8FFFF7E8FE4FF0FF333B -:107090002022214603602846336823F00203336030 -:1070A00002F048F80028BBD03846B0E7142100525F -:1070B0000C200052142000521020005210210052C7 -:1070C00010B5084C237828B11BB9FFF7D5FE012372 -:1070D000237010BD002BFCD02070BDE81040FFF7DE -:1070E000EDBE00BF4E6400202DE9F04F0D4685B087 -:1070F000814658B111F00D0614BF2022082211F06C -:107100000803019304D0431E034269D0002435E0F4 -:10711000002E37D009F11F0121F01F094FF001089F -:10712000314F05F00403DFF8CCA005EA080BBBF1F2 -:10713000000F32D07869C0072FD408F101080C374E -:10714000B8F1060FF3D19EB9284D4946A81901920E -:1071500001F004FE0446002839D12036019AA02E01 -:10716000F3D1494601F0FAFD044600282FD1019AD7 -:1071700049461F4801F0F2FD044660BB204605B0B9 -:10718000BDE8F08F0029C9D101462846029201F0DE -:10719000E5FD0446D8B9029AC0E713B17869410702 -:1071A000CBD5AC0702D578698007C6D5019911B156 -:1071B00078690107C1D549460AEB4810CDE9022399 -:1071C00001F0CCFD0446DDE902230028B5D04A4693 -:1071D0000021204601E04A460021FAF7A1FDCDE753 -:1071E0000246002E96D199E7549B00089064002037 -:1071F00050640020706400200021FFF775BF00007C -:107200000121FFF771BF000070B5144D0124144E29 -:1072100040F2FF3200210120FAF782FD06EB441014 -:1072200001342A6955F80C1F01F084FD062CF5D1B4 -:1072300037254FF4C0542046FFF7E2FF014628B13E -:1072400022460848BDE8704001F074BDC4EBC40498 -:10725000013D4FEAD404EED170BD00BF549B00083D -:1072600070640020506400200421FFF73DBF00003F -:107270004843FFF7C1BF000008B101F0E1BD70470E -:10728000B0F5805F10B5044607D8FFF7EDFF28B9C9 -:107290002046BDE81040FFF7AFBF002010BD000042 -:1072A000FFF7EABF70B5AAB140EA010313F01F036C -:1072B0000FD1094C0144A5686D0706D52568A84281 -:1072C00003D366683544A94204D903330C34122B26 -:1072D000F1D10022104670BD549B000808B501F0A2 -:1072E000C5FE034AD2E90032C01842EB010108BDD5 -:1072F00030650020434BD3E900232DE9F3411343CC -:107300007CD0FFF7EBFF404A00230027F9F794F801 -:1073100006460D463D4A0023F9F78EF80023144631 -:1073200030462946394AF9F787F84FF461613C2322 -:10733000ADF80170B4FBF1F5B4FBF3F601FB1541B8 -:1073400003FB16464624B1FBF3F1314BF6B28DF840 -:10735000004098423CD84FF0640C4FF4C87EA3071D -:1073600004F26C7225D1B2FBFCF30CFB132313BBAC -:10737000B2FBFEF30EFB1322B2FA82F35B0903F2B7 -:107380006D18621C8045D2B217D90FB18DF800403C -:107390000022204C4FF00C0C17460CFB0343D4B2D8 -:1073A000013213F804C084450CD8A0EB0C0001276F -:1073B000F5E70023E3E70123E1E7A0EB080014462B -:1073C0000127CCE70FB18DF80140431C8DF8023046 -:1073D0009DF80100431C9DF800005038400640EA2B -:1073E00043509DF8023040EA034040EA560040EA2C -:1073F000C52040EA411002B0BDE8F0814FF404100E -:10740000F9E700BF3065002040420F0080510100C5 -:1074100090230B009C9B00080244074BD2B210B58E -:10742000904200D110BD441C00B253F8200041F836 -:10743000040BE0B2F4E700BF504000580E4B30B5EB -:107440001C6F240405D41C6F1C671C6F44F400449B -:107450001C670A4C02442368D2B243F48073236051 -:10746000074B904200D130BD441C51F8045B00B280 -:1074700043F82050E0B2F4E70044025800480258B4 -:107480005040005807B5012201A90020FFF7C4FFB2 -:10749000019803B05DF804FB13B50446FFF7F2FF53 -:1074A000A04205D0012201A900200194FFF7C6FFE8 -:1074B00002B010BD10B56424013C4FF47A70FFF7A0 -:1074C0009FF814F0FF04F7D1084B4FF0807214249A -:1074D0009A6103F5805308229A61013C4FF47A7057 -:1074E000FFF78EF814F0FF04F7D110BD000002582A +:101E7000BDE8704003F030BE70BD00BFE433002009 +:101E80001422002018490020CC330020F8B571B688 +:101E9000002301201A46194602F086FD04468020E0 +:101EA00005F09CF9002845D00025234A80274FF4EF +:101EB000D06C3D26136923BBD2F810310BBB2368CD +:101EC00005F1006199602368D86023685F6023682A +:101ED000C3F800C021680B6843F001030B60216860 +:101EE0000B6823F01E030B6021680B68DB07FCD432 +:101EF000237B8035616806FA03F3B5F5001F0B609C +:101F0000D8D1204602F086FDB5F5001F11D000247F +:101F10000A4E0B4D012005F0C1F83388A34205D9C4 +:101F200028682044013404F0FFFFF6E7002005F0A4 +:101F3000B5F861B6F8BD00BF00200052E6330020BE +:101F4000A033002030B50A44084D91420DD011F85D +:101F5000013B5840082340F30004013B2C4013F0A0 +:101F6000FF0384EA5000F6D1EFE730BD2083B8EDDF +:101F70000121884238BF084605F068B908B105F06C +:101F800069B9704710B5084C01220849002001F0DA +:101F9000B3FE23783BB1064803F016FD044803F076 +:101FA00049FD0023237010BDE8330020DC920008B7 +:101FB000C83600201D482DE9F041036D2BB90122E0 +:101FC0004FF48051503005F0CDFA194E33780BB1F3 +:101FD000FFF7D8FF0324174F4FF00008134D1549A2 +:101FE0002846C7F8048003F017FD284603F050FB8D +:101FF00048B1013C284603F01DFD14F0FF04EED16A +:10200000204634700FE00C4901220C4801F074FEA8 +:10201000014618B1284603F0D7FCEAE7084800F06B +:1020200011F801203070BDE8F08100BFC8360020F3 +:10203000E83300203C220020DC920008EC33002032 +:10204000E09200080FB4002004B0704700687047A9 +:1020500003460068596870470B0A017043700B0C07 +:10206000090E8370C1707047110A027003714170CC +:10207000110C120E8170C2701A0A42711A0C1B0EDA +:102080008271C37170470000C36A0239023B8B4200 +:1020900083BF4389006C01FB0300002070470000F0 +:1020A000C2F307238A76CB760378032B01BF120C89 +:1020B0000A75120A4A75704700F10B010022D3011C +:1020C00043EA520310F8012B52FA83F38842DAB242 +:1020D000F5D110467047000010B541780446002045 +:1020E000013102464901022A16BFA35C032203EB19 +:1020F000C03302F101021EBF9BB203EB500398B242 +:102100009142F0D810BD000002684AB1134613F89E +:10211000011B1F290DD93A29F9D1911C8B4202D0FC +:102120004FF0FF3070471278302AF9D10360002059 +:102130007047014B187870473836002038B50D4687 +:10214000044618B9092000232B6038BD0368002B12 +:10215000F8D01A78002AF5D08188DA889142F1D136 +:10216000587804F0EFFB10F00100EBD12368EBE7A7 +:1021700038B50D4640F25231144602F0B9F9FF2845 +:1021800007D9012C0BD9030A022468702B70204652 +:1021900038BD30B1002CFAD001242870F7E70024B4 +:1021A000F5E70446F3E700002DE9F8430026D0F8F0 +:1021B000008005460C468E76836B002B4AD098F83B +:1021C0000030042B4BD133463546402720E0B7F58D +:1021D000187F80F0C480F90606F1010608BF0237B7 +:1021E000D05B02372BB900F5205292B2B2F5006FE6 +:1021F0000DD305F11A01C5F1FF0240EA0340214465 +:10220000FFF7B6FF002800F0AA800544002003462F +:10221000D8F8102092F82310B142D8D8002B40F003 +:102220009E80002D00F09B8000232544AB766373D5 +:10223000D8F81020137903F03701DB0621730BD493 +:1022400002F13800FFF704FFC4E9000193896381BC +:10225000D3892381BDE8F88300200146F4E7C36CED +:1022600001335ED1EA6B00232E26551E184615F861 +:10227000011F013020290CD0052908BFE5210928BC +:1022800004D10B2B9EBFE71801337E73E71801338F +:1022900079730B28EBD1E11800204873A17E002947 +:1022A0004BD1002B40D06FF00C0604F10D00082537 +:1022B000361B331810F8011B002938D02E298BB299 +:1022C0004AD0A3F14101192903D8117B0D4200D056 +:1022D00020330373EDE7B9F1000F05D100F520536A +:1022E0009BB2B3F5006F0BD307F11A01C7F1FF02E0 +:1022F00040EA09402144FFF73BFF48B10744002072 +:1023000002368146D8F80C30985B0028E3D1384675 +:10231000B9F1000F4FF0000218BF002023189A7681 +:10232000A0E7B1463746EDE73F23A37601232344D8 +:1023300000219976137B03B96373D37A02F11C00F1 +:1023400003F03F0323730023FFF780FE20606360E8 +:10235000D38A6381138B7CE710250B46B9E73F23B3 +:102360000125A37660E7000038B50546002435F85E +:10237000020B08B9204638BD02F0EEF86308C2B27D +:1023800003EBC43312FA83F39AB2C0F3072303EBCF +:10239000520303EBC2339CB2E9E7000037B5C378C0 +:1023A00004461BB90025284603B030BD00F14C019E +:1023B000826C01234078019104F0EAFA054680B965 +:1023C000A36BE070A06C226BC31A9342EAD2A3788D +:1023D0000199022BE6D102440123607804F0D8FA77 +:1023E000E1E70125DFE7000038B5836C05460C46C0 +:1023F0008B4210D0FFF7D2FF60B92246012305F1CE +:102400004C01687804F0A0FA00281CBF4FF0FF349C +:102410000120AC6438BD0020FCE7000038B5002383 +:102420000446C3704FF0FF338364FFF7DDFF0028DD +:102430004BD1B4F84A524AF655239D4207D10B229C +:10244000254904F14C0006F08BFE00283FD094F89B +:102450004C30EB2B03D01833DBB2012B2ED84AF6CD +:1024600055239D4206D108221C4904F19E0006F026 +:1024700077FE48B3B4F85730B3F5007F1ED194F817 +:102480005930DBB15A1E1A4218D1B4F85A30ABB1E8 +:1024900094F85C30013B012B10D8B4F85D306BB17F +:1024A000B4F85F307F2B06D804F16C00FFF7CEFD47 +:1024B000B0F5803F02D3B4F8623053B94AF65520E4 +:1024C00085420CBF0220032038BD0420FCE7012018 +:1024D000FAE70020F8E700BF0C9300081893000803 +:1024E00002392DE9F04701F007044FF0010A466C6C +:1024F00005460AFA04F41746984606EB1136C1F36E +:10250000C809E4B2314628460136FFF76DFF18B11D +:102510000120BDE8F087994605EB090292F84C309E +:10252000234214BF01210021414513D06340013FE4 +:1025300082F84C3085F803A0EBD0640014F0FF045F +:10254000EAD109F1010301244FF00009B3F5007F3E +:10255000E1D1D7E70220DCE701290246F8B50C46B5 +:1025600040F28C800668F36A8B4240F287803378B1 +:10257000013B032B00F28280DFE803F00229384B95 +:1025800004EB5405B16B304601EB5521FFF72CFFEE +:1025900010B14FF0FF30F8BD6F1CC5F30805B16BEB +:1025A0003046354401EB572195F84C50FFF71CFF9E +:1025B0000028EED1C7F30807E3073E4496F84C0025 +:1025C00045EA00204CBF0009C0F30B00E3E7B16B04 +:1025D000304601EB1421FFF707FF0028D9D1640032 +:1025E00004F4FF742644B6F84C00D4E7B16B3046CF +:1025F00001EBD411FFF7F8FE0028CAD1A40006F1C0 +:102600004C0004F4FE742044FFF720FD20F07040DD +:10261000C1E7D0E90430D57953EA000101D09168CF +:1026200001B95DBB9168022DA4EB01010DD1013B05 +:10263000728940F1FF305B0A43EAC053B3FBF2F307 +:1026400099421BD81CD0601CA5E7032D02D19369C9 +:102650008B42F8D8D3699BB9B16B304601EBD411EA +:10266000FFF7C2FE002894D1A0004C3600F4FE70A3 +:102670003044FFF7EBFC20F000408CE701208AE7B4 +:102680006FF0004087E70000F8B5066804460D4685 +:102690003378042B0CBF4FF080524FF400128A4263 +:1026A00001D80220F8BDCA06FBD182680163D2B905 +:1026B000022B13D83389B3EB551FF2D9F36BA36305 +:1026C000A36B6263002BECD003EB55234C36C5F3B0 +:1026D00008050020A3633544E563E3E7F36BC271AB +:1026E000002BE7D01A4677897F02BD42114604D2FB +:1026F0003046FFF7C9FCA063E2E72046FFF72CFF56 +:10270000431C024606D00128CBD9F36A8342C8D9BC +:10271000ED1BEAE70120C5E701292DE9F047064650 +:102720000C46174608D9C36A8B4205D90378022B99 +:1027300062D003D8012B22D0022552E0033B012BAB +:10274000FAD8816B01EBD411FFF74EFE0546002845 +:1027500047D1A40006F14C0304F4FE741C44337802 +:10276000042B07D0204627F07047FFF76FFC00F0DE +:102770007040074339462046FFF76EFC2FE001EB1F +:102780005108816B01EB5821FFF72EFE054640BB37 +:1027900014F0010406F14C0908F1010AC8F3080815 +:1027A00008BFFBB230461FBF19F8083003F00F0214 +:1027B0003B0103F0F00318BF134309F8083001236D +:1027C000B16BF37001EB5A21FFF70EFE054640B9DD +:1027D000CAF3080A44B1C7F3071709F80A700123BE +:1027E000F3702846BDE8F08719F80A30C7F30327CD +:1027F00023F00F031F43F0E7816B01EB1421FFF778 +:10280000F3FD05460028ECD1640006F14C0304F406 +:10281000FF741F551919C7F307274F70DFE7000032 +:10282000F8B504460E461746E3690BB91846F8BDDD +:10283000012BA6EB0305206814BFAA1C3A46691CAD +:10284000FFF76AFF0028F2D1E369013BE361EBE7A0 +:1028500001292DE9F84306460C461746056802D8BB +:102860000220BDE8F883EB6A8B42F9D97AB9A14618 +:1028700021463046A046FFF76FFE0446B0B92B78DC +:10288000042B02D1002F43D1F7710020E9E72B7808 +:10289000042B02D1C379022BE9D04FF0FF32394625 +:1028A0002846FFF739FF0028E1D0DAE70128D7D022 +:1028B000421C01D10120D4E72B78042B19D1EA6AFC +:1028C000AB69023A93421CD308F10102A2420CD038 +:1028D0002B78042B08D10023A2EB09024946284695 +:1028E000FFF7FEFD0028BCD1A146EB6AA342BFD88A +:1028F000C5E7002241462846FFF70EFF0028DED03C +:10290000AFE70133AB612B7943F001032B71DBE7B8 +:10291000F3798BB9B468BC4202D10223F371B4E7F6 +:1029200021463046FFF718FE012899D9431CC1D033 +:1029300001348442EFD0A8E7032BA6D1B368BB4291 +:10294000A3D8B2691344BB429FD3E6E770B5C379FD +:102950000446032B06D181688369CD18A94203D1AF +:102960000023E371002070BD4E1C20683246FFF743 +:10297000D3FE0028F7D13146F0E700002DE9F743F8 +:1029800005460191FFF70AFD0446002849D105F1EB +:102990004C09019928464FF40072FFF775FB214658 +:1029A000A86407464846FFF7BBF96C896402B4F592 +:1029B000004F28BF4FF40044B4F5007F2FD92046C4 +:1029C00004F04CFC804630B122460021640A002607 +:1029D000FFF7A6F909E06408EEE72346BA19414675 +:1029E000687803F0D5FF18B926446B899E42F4D36A +:1029F000404604F043FC6889801B18BF012003B0E7 +:102A0000BDE8F08301366B899E42F4D20123BA19E6 +:102A10004946687803F0BCFF0028F3D0EBE70026B6 +:102A2000F1E70120EBE70000F8B50446FFF7B6FC3C +:102A30000546002842D12378032B37D12779012F6F +:102A400034D104F14C0601464FF400723046FFF7D2 +:102A500067F955234122722184F84A32AA2304F5EA +:102A60000D7084F84F2084F84B32522384F83012D2 +:102A700084F84C3084F84D30612384F8311284F8A6 +:102A80004E3084F83332A16984F83222FFF7E4FA39 +:102A9000616904F50E70FFF7DFFA626B3B46314661 +:102AA00001326078A26403F073FF25710022607820 +:102AB000114603F091FF003818BF0120F8BD000057 +:102AC00000232DE9F0430B6085B00F461546FFF754 +:102AD0001BFB061EC0F2B281804B53F82640002C2F +:102AE00000F0AE813C6005F0FE0523786BB16078A4 +:102AF00003F028FFC70708D41DB110F0040500D06B +:102B00000A25284605B0BDE8F0830023F0B2237003 +:102B1000607003F003FFC10700F194810DB142071B +:102B2000EED400212046FFF779FC022840F099807E +:102B30006E4604F2122304F2522132461846103334 +:102B4000FFF784FA42F8040B8B42F7D1002556F8C0 +:102B5000041B00297DD02046FFF760FC012879D8AE +:102B60000128A26C40F0C08004F1570304F18C01ED +:102B700013F8015B002D7BD18B42F9D1B4F8B4304E +:102B8000B3F5807F74D194F8B830092B70D104F17B +:102B90009400FFF75DFA4FF0FF33171841F1000181 +:102BA000BB4275EB010363D304F1A000FFF74EFABB +:102BB00094F8BA302063012BA37059D194F8B990DE +:102BC00003FA09F91FFA89F36381002B50D0444BB3 +:102BD00004F1A800FFF73AFA0646984248D8831C49 +:102BE000626304F1A400E362FFF730FA00EB02082D +:102BF00004F19C00C4F84080FFF728FA10441FFA43 +:102C000089F2A06306FB02F313EB080345EB050210 +:102C10009F4271EB02032BD32E4604F1AC00FFF769 +:102C200015FAE06365B96389B34221D9E16B2046A7 +:102C3000FFF72AFA81192046FFF7D6FB98B901362B +:102C4000631993F84C30812B14D02035C5F3080557 +:102C5000E8E703200135042D7FF479AF042807D17C +:102C600001E0042801D101254BE701287FF678AF68 +:102C70000D2546E705F1140004F14C063044FFF73A +:102C8000E5F901280546F3D9E36A8342F0D9618961 +:102C9000821E236C02FB01336364A16B204601EBAF +:102CA000D511FFF7A1FB0028DDD105F07F0006EB71 +:102CB0008000FFF7CBF9431C03D00135A842ECD0CC +:102CC000D6E70425C4E90500064A257000251388C7 +:102CD000E56101339BB21380E38012E73C360020AC +:102CE000FDFFFF7F40360020B4F85730B3F5007F7A +:102CF000BED1B4F8626026B904F17000FFF7A6F9FE +:102D0000064694F85C302663591EA3700129AFD89B +:102D100094F859506581002DAAD0691E2942A7D187 +:102D2000B4F85D8018F00F0FA4F80880A0D1B4F8B3 +:102D30005F0018B904F16C00FFF788F9B4F85A1075 +:102D4000002995D006FB03FE01EB181CF4446045F6 +:102D50008ED3A0EB0C00A842B0FBF5F388D33E481D +:102D6000834285D84FF6F57083426DD903259F1CA9 +:102D7000114402EB0C03032DE7626263A163236439 +:102D80004CD1B4F8763053EA08037FF471AFBB003E +:102D900004F17800FFF75AF9E06303F2FF13B6EB92 +:102DA000532FFFF465AF4FF0FF33032DC4E9053314 +:102DB0004FF08003237187D1B4F87C30012B83D18D +:102DC000511C2046FFF710FB00287FF47DAFB4F8BC +:102DD0004A224AF6552320719A427FF475AF1F4B61 +:102DE00004F14C00FFF732F998427FF46DAF03F124 +:102DF000FF5304F50C70FFF729F903F50053203356 +:102E000098427FF461AF04F50D70FFF71FF9A061E0 +:102E100004F50E70FFF71AF9606155E7B8F1000F7D +:102E20003FF426AF7144022D4FEA4703E1631EBF12 +:102E3000D91907F0010303EB5103AEE70B2560E658 +:102E40000C255EE603255CE640F6F575AB428CBFCB +:102E5000022501258BE700BFF5FFFF0F52526141AC +:102E60002DE9F84F07460568884649B96E69C6B12D +:102E7000EB6AB34298BF0126AB69A3B9002405E011 +:102E8000FFF76AFB0128044603D801242046BDE869 +:102E9000F88F421C00F0D280EB6A8342F6D8464697 +:102EA000EAE70126E8E72A78EB6A042A40F0838003 +:102EB000A6F1020A023B4FF0010B9A4528BF4FF0E2 +:102EC000000AD146696C284601EB1931FFF78CFAEC +:102ED00000283BD109F00703EA6AC9F3C8010BFADD +:102EE00003F3901EDBB26A184C4609F1010992F80F +:102EF0004C20814502EA030233BF5B0000234FF4FC +:102F00000071DBB228BF9946B2B90234631E0333A5 +:102F1000BCD80123214628461A46FFF7E1FA0228C9 +:102F2000B3D0012800F08A80B8F1000F13D102233A +:102F3000FB710028A9D130E0CA450AD0002BD2D1BC +:102F40000131B1F5007FBDD20123CCE74FF0FF3452 +:102F5000DCE70024DAE7FB79022B07D1731CA342DC +:102F6000E7D0BB68F31ABB610323FB7108F10102D0 +:102F7000FB69A24205D113B10133FB61D9E70223FA +:102F8000FBE70BB90123FB61224641463846FFF7B8 +:102F900047FC00284FD10123FB61EA6AAB69023A82 +:102FA0006C6193429CBF03F1FF33AB612B7943F01B +:102FB00001032B716AE7464514D1741C3846A342BD +:102FC00098BF02242146FFF7C7FA01283FF45DAFFE +:102FD000431C33D0E0B16B69012B03D9EA6A9342F9 +:102FE00038BF1E4634460134EB6AA34203D8012E93 +:102FF0007FF644AF022421463846FFF7ADFA48B1C8 +:1030000001283FF442AF013018D0B442EBD135E78C +:10301000002CE7D04FF0FF3221462846FFF77CFB1B +:1030200048B9B8F1000FB8D0224641462846FFF70C +:1030300073FB0028B1D001287FF427AF4FF0FF3495 +:1030400024E700002DE9F84306680446076B89462B +:1030500033782037042B0CBF4FF080534FF400130C +:10306000BB429CBF00238363836B73B1C7F3080823 +:10307000B8F1000F3CD10133416B836339B9338917 +:10308000B3EB571F34D80023A36304200AE07389ED +:10309000013B13EA57232BD1FFF75EFA01280546BF +:1030A00002D80220BDE8F883421C01D10120F9E7D3 +:1030B000F36A834216D8B9F1000FE4D0616B204661 +:1030C000FFF7CEFE0546C8B10128EAD0431CEDD07B +:1030D00001463046FFF752FC0028E7D1E37943F080 +:1030E0000403E371294630466563FEF7CDFFA06314 +:1030F0004C36002027634644E663D3E70720D1E738 +:10310000F8B50E46002104460768FFF7BDFA98B9E6 +:103110000546A16B3846FFF767F968B93A78E36B63 +:10312000042A1B780CD11B060ED50546012120462A +:10313000FFF788FF0028ECD0042808BF072006E02E +:10314000E52B01D0002BF0D10135B542EED1F8BD11 +:10315000C16C4B1C2DE9F04104460568066B1FD17C +:10316000E5274FF00108A16B2846FFF73DF998B914 +:103170002A78E36B042A09BF1A781F7002F07F02D5 +:103180001A7085F80380236BB3420DD200212046CC +:10319000FFF758FF0028E6D0042808BF022003E00C +:1031A000FFF772FA0028DBD0BDE8F0812DE9F0418D +:1031B00005460068A96B0669FFF716F9044620B9B1 +:1031C000EB6B1A78852A03D002242046BDE8F081F3 +:1031D000324603F1200153F8040B8B4242F8040BF2 +:1031E000F9D1777801377F01A7F16003B3F5007F4C +:1031F000EAD800212846FFF725FF04280446E3D03B +:103200000028E2D1A96B2868FFF7EEF804460028F1 +:10321000DBD1EB6B1A78C02AD6D106F1200203F17C +:10322000200153F8040B8B4242F8040BF9D196F8B5 +:1032300023300F222C33B3FBF2F3B7EB431FC3D37E +:103240004FF0400800212846FFF7FCFE0428044602 +:10325000BAD00028B9D1A96B2868FFF7C5F8044691 +:103260000028B2D1EB6B1A78C12AADD1B8F5187F1E +:1032700009D206EB080203F1200153F8040B8B423C +:1032800042F8040BF9D108F120084745DAD8B8F51F +:10329000187F9AD83046FEF71FFF7388834294D078 +:1032A00092E700000B68002210B5036004460B6A29 +:1032B00083604B6AC261C37123F0FF03896AC0E96E +:1032C0000432C164FFF7E0F920B92046BDE81040A0 +:1032D000FFF76CBF10BD0000F8B503680546012775 +:1032E0001C692046FEF7F8FEA070000A6678E070C0 +:1032F0002846E96CFFF7C8F920B1022828BF022050 +:10330000C0B2F8BDA96B2868FFF76EF80028F4D1A9 +:10331000EB6B04F1200254F8041B944243F8041BA5 +:10332000F9D12B68DF70002EE7D000212846013E3E +:10333000FFF788FEE0E700002DE9F8434FF0FF08B3 +:1033400006460768042445464FF6FF79B16B11B96C +:10335000002C73D063E03846FFF746F80446002897 +:103360005DD1F06B0378002B6ED03A78042A11D12E +:10337000852B4DD1336B3046F364FFF717FF0446BE +:1033800000284CD13B691B7903F03F03B371204601 +:10339000BDE8F883C27AE52B02F03F02B27143D058 +:1033A0002E2B41D022F0200108293DD00F2A40D1F8 +:1033B000590637D503F0BF05336B90F80D80F364E1 +:1033C000437B434530D1428B72BB03780D21FC68AF +:1033D00023F04003DFF874E0013B4B4301211EF86A +:1033E00001CB30F80CC009B3FF2B1DD824F813C053 +:1033F0006146013301320D2AF1D10278520605D51A +:1034000021B1FF2B10D8002224F81320013DEDB28A +:1034100000213046FFF716FE0446002896D0002310 +:10342000B363B4E7AB42CBD0FF25F1E7CC45E1D0A5 +:10343000FAE72DB9FEF740FE404501D10024A6E78A +:103440004FF0FF33F364A2E70424E8E7B4930008E5 +:103450002DE9F04F002187B00446D0F80090FFF727 +:1034600013F9804670B999F80030042B33D1D9F89C +:103470000C00FEF779FF07462046FFF75DFF054683 +:1034800020B18046404607B0BDE8F08FD9F8103033 +:103490009A8CBA42F0D193F823B040265D4506D10C +:1034A000D9F80C3033F81530002BE5D1EAE7F106F6 +:1034B000D9F8103008BF0236985B01F04DF8D9F802 +:1034C0000C30824633F8150001F046F88245D3D11E +:1034D00002360135E2E74FF0FF0A4FF0FF3B554659 +:1034E000C4F84CB0A16B4846FEF77EFF00285CD1C3 +:1034F000E66B3778002F77D0F27AE52F02F03F03A2 +:10350000A37103D0120704D50F2B04D0C4F84CB01C +:103510004FE00F2B54D194F84B3058063FD4790626 +:1035200045D5236B07F0BF0796F80DA0E364737BC6 +:1035300053453ED1738B002B3BD135780121D9F80F +:103540000C3005F03F0501930D23013D5D43284BF1 +:1035500013F8012BB25A71B3FF2D059329D81046E9 +:10356000049200F0F9FF6B1C03900293019B33F867 +:10357000150000F0F1FF039981421AD1049A029DCF +:103580001146059B1B4A9342E2D133785A0604D573 +:1035900019B1019B33F815305BB97D1EEDB20021E6 +:1035A0002046FFF74FFD00289CD080466AE7BD42C9 +:1035B000BDD0FF25F3E74FF6FF708242E2D0F8E777 +:1035C0002DB93046FEF778FD50453FF45BAF94F8D7 +:1035D0004B30DB079AD40B2204F14001304605F052 +:1035E000BFFD002892D14DE74FF004084AE700BF25 +:1035F000B4930008C19300082DE9F04F90F84BB048 +:1036000099B004461BF0A00540F068810668F26896 +:1036100032F81530002B4AD13378042B40F08780E4 +:103620000F230E352046B5FBF3F5A91CFFF768FD07 +:103630008146002877D1236B0135A3EB4515E3794B +:103640005A07E56435D523F004032046E371FFF7FC +:103650007DF950BB4FF0FF32616B2046FFF7E0F879 +:1036600018BBA3682BB3214604A8FFF71BFEE0B9E3 +:1036700070894FF40071D4E90423E0FB0123306921 +:10368000C4E904233830FEF7EFFC3069D4E90423A1 +:103690002830FEF7E9FCE379326904A843F001031E +:1036A00082F82130FFF718FE18B181463BE0013562 +:1036B000AEE7D6E90354402200212046FEF730FB56 +:1036C0008523012140222370C0234FF0C10C04EB5D +:1036D000010884F8203000231E469E46571C04F83B +:1036E00002C0F0B2023204F807E021B135F813103D +:1036F00009B10133DBB20F0AA15408F8027002329B +:10370000D706F2D135F813700136002FE6D184F8D0 +:103710002330831C28466370FEF726FE84F82400BD +:10372000000A84F82500484619B0BDE8F08F04F17E +:1037300040070DF1100A1BF0010F97E807008AE817 +:10374000070000F0D38040234FF0010884F84B308D +:10375000BC46F368B8F1050F9AE80700ACE803002F +:103760002CF8022B4FEA12428CF8002059D9981EEF +:10377000424630F8021F002942D10DF10F0C0721FB +:1037800002F00F0E914612090EF13000392888BF61 +:103790000EF1370001390CF8010902D0B9F10F0F11 +:1037A000EED818AB7E205A1802F8580C3846002282 +:1037B000914206D010F801CB02F1010EBCF1200FAE +:1037C00031D104F13F0C072902F1010297BF18AB78 +:1037D00020205818013198BF10F8580C072A0CF80F +:1037E0000200F0D92046FFF733FE8146002878D149 +:1037F00008F10108B8F1640FAAD14FF0070992E768 +:103800004FF0100C01F0010E49080EEB4202D303F9 +:1038100044BF82F4883282F02102BCF1010CF1D164 +:10382000A7E74246A9E77246C2E7216B2046A1EB13 +:103830004511FEF729FF814600287FF474AF4FF64B +:10384000FF783846FEF738FC0190A16B3046FEF752 +:10385000CBFD814600287FF466AFE36BE9B2019AA5 +:103860004FF00D0CD6F80CE05A734FF00F02DFF852 +:10387000E0A0DA724A1E18730CFB02F284469876B6 +:10388000D87640451AF8019B0CF1010C18BF3EF8A0 +:10389000120003EB090B18BF013203F809004FEACD +:1038A0001029002808BF4046BCF10D0F8BF801908D +:1038B000E7D1404502D03EF812200AB941F040015C +:1038C0001970012300212046F370FFF7BBFB8146EE +:1038D00000287FF428AF013DB7D11BE04FF0060967 +:1038E00021E704287FF41FAF84F84BB01BF0020FD0 +:1038F00020461BBF0C350D210125B5FBF1F518BF86 +:1039000001352946FFF7FCFB814600287FF40BAF09 +:10391000013D8AD1A16B3046FEF766FD8146002845 +:103920007FF401AF01462022E06BFEF7F9F9E36B6B +:1039300003CF18605960BA7839889A72198194F85F +:103940004B30E26B03F0180313730123F370EAE6C4 +:10395000B493000810B504460A463430FEF776FBEF +:10396000886004F13800FEF773FBC2E9040194F8A3 +:10397000213003F00203D3710023D36110BD000096 +:1039800003284B8B04BF8A8A43EA024318467047D8 +:103990002DE9F04F0B7899B0044689462F2BD0F8CB +:1039A00000B001D05C2B09D14A4613789146013210 +:1039B0002F2BFAD05C2BF8D0002301E0DBF81C3071 +:1039C000A3600023E3619BF80030042B1ED1A368A1 +:1039D000E3B1DBF82030214604A82362DBF8243071 +:1039E0006362DBF82830A362FFF75CFC0346002823 +:1039F00054D1DBF8102002F13800FEF727FBC4E9B0 +:103A0000040392F8213003F00203E37199F80030C7 +:103A10001F2B00F2358180230021204684F84B3093 +:103A200019B0BDE8F04FFEF72FBE49460B78894626 +:103A300001312F2BFAD05C2BF8D01F2B8CBF002527 +:103A40000425012F2FD113882E2B31D1002322F8EA +:103A5000173004F140029F428CBF2E2120210133F8 +:103A60000B2B02F8011BF6D145F02005204684F807 +:103A70004B50FFF7EDFC94F84B30002800F0E78046 +:103A800004280BD1990603F0040240F1DC80002ADF +:103A900000F0F6808023002084F84B3019B0BDE898 +:103AA000F08F0425CDE7022F02D153882E2BCAD0E8 +:103AB000911E87BB002322F81730002F00F01181E0 +:103AC00032F81300194601332028F9D009B92E28FD +:103AD00001D145F00305901E30F817302E2B01D090 +:103AE000013FF9D14FF020334FF0000A6364D04614 +:103AF0002364C4F847300823481C32F81160009052 +:103B0000F6B1202E03D02E2E0DD1B84210D045F0A4 +:103B100003050099F0E731F81730202B01D02E2B48 +:103B2000C8D1013FC5E79A4505D20099B9423BD1BA +:103B30000B2B30D101E00B2B27D145F003050B23D4 +:103B400094F84020E52A04BF052284F84020082B81 +:103B500004BF4FEA88085FFA88F808F00C030C2BC2 +:103B600003D008F00303032B01D145F00205A80799 +:103B70003FF57CAF18F0010F18BF45F0100518F0A5 +:103B8000040F18BF45F0080570E70099B94202D04C +:103B900045F00305D4D84FEA88080B234FF0080AF4 +:103BA00000975FFA88F8B4E77F2E15D9304640F2C7 +:103BB0005231CDE9022345F00203019300F098FC55 +:103BC00010F0800F0646DDE9022316D000F07F06D4 +:103BD00046498E5D019D46B331464548CDE90123F6 +:103BE00005F0E8FADDE90123F8B9A6F1410189B24F +:103BF00019291ED848F0020810E0FF28EAD9591EFA +:103C00008A4503D345F003059A4682E704EB0A018F +:103C1000000A0AF1010A019D81F8400004EB0A0143 +:103C20000AF1010A81F8406073E745F003055F2659 +:103C3000F4E7A6F1610189B219299EBF203E48F040 +:103C40000108B6B2EAE7002A08BF052026E75A07AE +:103C50003FF524AFA379DB0645D59BF80000042887 +:103C600035D1A3682146E27923622369DBF810008D +:103C700023F0FF0313436362E36CA362FFF76AFE62 +:103C800023680027DA6819F8010B00283FF409AF10 +:103C900040F25231009200F04BFC054608B31F2859 +:103CA000009A7FF6FEAE2F283FF4BFAE5C283FF4AB +:103CB000BCAE7F2805D801460E4805F07BFA009A75 +:103CC00078B9FF2F0DD022F817500137DBE7216BB1 +:103CD0000BF14C03C1F308011944FFF751FEA0603A +:103CE000CEE70620DAE60520D8E600BF34930008C8 +:103CF0002D930008249300081FB5CDE9001003A8F8 +:103D000014460391FEF700FA002815DB0B4A52F81F +:103D100020300BB100211970019B0BB100211970EB +:103D200042F820302CB1002201A96846FEF7C8FEF7 +:103D30000446204604B010BD0B24FAE73C360020B0 +:103D40002DE9F04798B0904605460191002800F013 +:103D5000528102F03F0603A901A83246FEF7B0FEE9 +:103D6000002840F04681039B4FF48C60049303F0DD +:103D700075FA0746002800F04081039B00F50072A9 +:103D80000199D86004A81A61FFF702FE044620B921 +:103D90009DF95B30002BB8BF062418F01C0F00F013 +:103DA000CD80002C4CD0042C40D104A8FFF724FC7B +:103DB000044600283AD146F00806039B1A78042AE4 +:103DC00040F08380186929462B60FFF7C3FD039BF1 +:103DD0001E22002118690230FDF7A2FF039C00217A +:103DE0001A2220692630FDF79BFF236920221A71D1 +:103DF000246903F06DFA0146012208342046FEF7DB +:103E00002BF9039B04A81B6983F82120FFF764FAB0 +:103E1000044658B9A96801B302462846FEF718FDC2 +:103E2000AB68039A0446013B5361B4B1384603F0D2 +:103E300025FA0CB100232B60204618B0BDE8F087AE +:103E40009DF8163013F0110F40F0848018F0040F25 +:103E500040F0C98018F0080FAFD1039A31071399C9 +:103E6000936C48BF46F04006E964AB6410780428C0 +:103E700072D1069B9DF817102B62089B106923F0E6 +:103E8000FF030B4329466B62179BAB62FFF762FD92 +:103E9000DDF80CA00024002205F15008BAF8063025 +:103EA00021464046C5F800A0AB80002385F830606D +:103EB00085F831406C64C5E90E234FF40072FDF7BC +:103EC0002FFFB20653D40024B0E703F001FA0146F5 +:103ED000009013980E30FEF7BFF813980099163033 +:103EE000FEF7BAF8039C13992078FFF749FD2023C9 +:103EF00000228046CB7220461399FEF7D1F8139B1F +:103F0000002201211A775A779A77DA77039BD970C2 +:103F1000B8F1000FA1D0414604A8D3F84890FEF7AD +:103F200097FC0446002881D149460398FEF75CFAC5 +:103F3000039B044608F1FF30586176E7002C7FF4BC +:103F400075AF9DF81630DC064FD418F0020F84D000 +:103F5000D80782D5072469E7FFF712FD0023A86080 +:103F600001F11C00FEF772F86B61286190E7D5E95A +:103F7000046956EA0903A6D0BAF80AA0A9684FEA6C +:103F80004A2AC5E90E69B24574EB09031BD3002424 +:103F90002964002C7FF44AAFC6F30803002B92D0AB +:103FA000039C2046FEF770F808B3760A01234146C9 +:103FB00046EAC95682196A64607802F0C5FC041E9C +:103FC00018BF012432E72846FEF7C6FAB6EB0A0608 +:103FD000014669F10009012803D9431CD3D101240A +:103FE000D6E70224D4E7082420E704241EE70224AD +:103FF0001CE704461EE709241EE711241CE7000005 +:104000002DE9F04F994685B00023884603A9044660 +:10401000C9F800301646FEF791F8054680BB94F8C3 +:1040200031506DBB94F8303013F00103009300F071 +:10403000A68004F1500AD4E90432D4E90E011B1A17 +:1040400062EB0102B34272F1000238BF1E46BEB1FC +:10405000D4E90E10C1F30803002B40F08280039BCB +:104060005A894B0A013A43EAC0531A401BD151EA1C +:10407000000309D1A06801280DD8022584F8315029 +:10408000284605B0BDE8F08F216C20460192FEF76E +:1040900063FA019AEFE7431C04D10123009D84F8E1 +:1040A0003130EDE72064DDF80CB0216C5846FDF7A7 +:1040B000EBFF0028E1D0B6F5007F02EB000731D31B +:1040C000BBF80A1002EB5620730A88429BF80100E5 +:1040D00088BF8B1A3A464146019302F035FC00280E +:1040E000DBD194F93020019B002A0BDA606CC01BF5 +:1040F000984207D24FF40072514608EB4020FDF77A +:10410000E9FD019B5F02D9F80030F61BB8443B443F +:10411000C9F80030D4E90E32DB1942F10002C4E9DB +:104120000E3294E7626CBA421AD094F93030002B08 +:104130000DDA012351469BF8010002F029FC00280A +:10414000ABD194F8303003F07F0384F8303003981B +:1041500001233A465146407802F0F6FB00289CD1F4 +:104160006764A16B4046C1F30801C1F50077514473 +:10417000B74228BF37463A46FDF7ACFDC3E70725EF +:104180007EE7000070B596B00E460022019002A9AD +:1041900001A8FEF795FC0446E0B94FF48C6003F0EB +:1041A0005DF80546D8B1029B00F500720199D86010 +:1041B00002A81A61FFF7ECFB044640B99DF95330A1 +:1041C000002B0ADB1EB1314602A8FDF7EDFF2846A1 +:1041D00003F054F8204616B070BD0624F7E711240A +:1041E000F8E7000070B5B8B00222019003A901A859 +:1041F000FEF766FC044608BB039B4FF48C601093EB +:1042000003F02CF80546002866D0039B00F50072E9 +:104210000199D86010A81A61FFF7BAFB044650B99B +:104220009DF88B30980655D4190653D49DF8463026 +:10423000DA0706D50724284603F020F8204638B0D0 +:1042400070BD039B04931878042814D104A918693D +:10425000FFF780FB069E9DF84630DB0610D410A8C1 +:10426000FEF776FF04460028E5D156BB0398FEF71B +:10427000DBFB0446DFE71F99FFF782FB0646EAE710 +:10428000039BDA69B242D5D024930021269624A854 +:104290001B78042B01BFDDE90823CDE928239DF815 +:1042A00017308DF89730FEF7EFF904460028C2D199 +:1042B00024A8FFF741F804460028BBD00428BAD14F +:1042C000CDE70246314604A8FEF7C2FA04460028AC +:1042D000B1D1CBE70624AEE71124AFE7F0B5BDB00E +:1042E000CDE900106846FDF70FFF022203A901A8DF +:1042F000FEF7E6FB0446002841D1039B4FF48C6097 +:10430000149302F0ABFF0546002800F0EE80039BFB +:1043100000F5007214AE0199D8601A613046FFF7BB +:1043200037FB044640BB9DF89B3013F0A00F40F0D4 +:10433000D880039B009F1A78042A68D11B6904ACBB +:1043400003F1400C1868083353F8041C22466345F7 +:1043500003C21446F6D15022314628A8FDF7BAFC14 +:10436000394628A8FFF714FB044600284CD12A9AA6 +:10437000169B9A4206D00824284602F07FFF20466A +:104380003DB0F0BD349A209B9A42F4D128A8FFF7A3 +:1043900033F904460028EFD1039B04AF1B6993F85F +:1043A00001E093F823C09C8C3A46083303CAB2421A +:1043B00043F8080C43F8041C1746F5D1039B28A8C2 +:1043C0001B6983F801E0039B1A6982F823C01A690C +:1043D00082F82440240A82F825401A691379D90604 +:1043E0005CBF43F020031371FEF776FF04460028FC +:1043F000C2D13046FEF7ACFE04460028BCD103987B +:10440000FEF712FB0446B7E70428B5D1BEE7239AAE +:1044100004AB02F1200C1068083252F8041C1C4650 +:10442000624503C42346F6D15022314628A8FDF741 +:1044300051FC394628A8FFF7ABFA044600284CD1B6 +:104440002A9A169B9A4296D1349A209B9A4292D1EC +:1044500028A8FFF7D1F8044600288DD137990DF12F +:104460001D030DF12D0001F10D0253F8044B8342A1 +:1044700042F8044BF9D11888012710809B7893707B +:104480009DF81B30039CDA0658BF43F02003CB7223 +:10449000E770CB7ADB06ACD5169A2A9B9A42A8D055 +:1044A0002078FFF76DFA01462046FDF7EDFD014645 +:1044B000C8B12046FDF798FF044600287FF45CAFA2 +:1044C000039890F86D302E2B93D12A9A00F16C014D +:1044D000FDF7E6FD039BDF708BE704287FF44CAF0C +:1044E000B6E7062448E7022446E7112447E7000020 +:1044F0007F2810B501D880B210BDB0F5803F13D22F +:1045000040F2523399420FD10849002231F8024B50 +:1045100093B2844203D103F18000C0B2ECE70132D0 +:10452000802AF3D11346F6E70020E5E774960008E9 +:104530007F280DD940F25233994208D1FF2806D87E +:1045400000F10040034B803833F810007047002022 +:10455000704700BF74960008B0F5803FF0B522D2D6 +:104560001F4A83B21F49B0F5805F28BF0A46141D59 +:1045700034F8042C2146AAB1934213D334F8025CD8 +:104580002E0AEFB252FA85F5A84222DA082E09D88F +:10459000DFE806F0050A10121416181A1C00801A1B +:1045A00034F810301846F0BD981A00F001001B1ABC +:1045B0009BB2F7E7103BFBE7203BF9E7303BF7E71F +:1045C0001A3BF5E70833F3E7503BF1E7A3F5E35374 +:1045D000EEE70434002ECBD101EB4702C7E700BF62 +:1045E000C4930008B895000808B5074B074A196836 +:1045F00001F03D01996053680BB190689847BDE8A0 +:10460000084003F09FB800BF00000240443600207D +:1046100008B5084B1968890901F03D018A019A60C3 +:10462000054AD3680BB110699847BDE8084003F00C +:1046300089B800BF000002404436002008B5084B8E +:104640001968090C01F03D010A049A60054A536992 +:104650000BB190699847BDE8084003F073B800BFFC +:10466000000002404436002008B5084B1968890D47 +:1046700001F03D018A059A60054AD3690BB1106AC1 +:104680009847BDE8084003F05DB800BF0000024055 +:104690004436002008B5074B074A596801F03D0130 +:1046A000D960536A0BB1906A9847BDE8084003F09F +:1046B00049B800BF000002404436002008B5084B4E +:1046C0005968890901F03D018A01DA60054AD36A17 +:1046D0000BB1106B9847BDE8084003F033B800BF3A +:1046E000000002404436002008B5084B5968090C08 +:1046F00001F03D010A04DA60054A536B0BB1906B7F +:104700009847BDE8084003F01DB800BF0000024014 +:104710004436002008B5084B5968890D01F03D0169 +:104720008A05DA60054AD36B0BB1106C9847BDE877 +:10473000084003F007B800BF0000024044360020E4 +:1047400008B5074B074A196801F03D019960536CA1 +:104750000BB1906C9847BDE8084002F0F3BF00BF72 +:10476000000402404436002008B5084B1968890946 +:1047700001F03D018A019A60054AD36C0BB1106DBE +:104780009847BDE8084002F0DDBF00BF00040240CA +:104790004436002008B5084B1968090C01F03D01AA +:1047A0000A049A60054A536D0BB1906D9847BDE8B5 +:1047B000084002F0C7BF00BF00040240443600209A +:1047C00008B5084B1968890D01F03D018A059A600A +:1047D000054AD36D0BB1106E9847BDE8084002F052 +:1047E000B1BF00BF000402404436002008B5074BAB +:1047F000074A596801F03D01D960536E0BB1906EC4 +:104800009847BDE8084002F09DBF00BF0004024089 +:104810004436002008B5084B5968890901F03D016C +:104820008A01DA60054AD36E0BB1106F9847BDE874 +:10483000084002F087BF00BF000402404436002059 +:1048400008B5084B5968090C01F03D010A04DA600B +:10485000054A536F0BB1906F9847BDE8084002F0CE +:1048600071BF00BF000402404436002008B5084B69 +:104870005968890D01F03D018A05DA60054AD36F58 +:1048800013B1D2F880009847BDE8084002F05ABF43 +:10489000000402404436002000230C4910B51A469B +:1048A0000B4C0B6054F82300026001EB430004330F +:1048B0004260402BF6D1074A4FF0FF339360D3603C +:1048C000C2F80834C2F80C3410BD00BF44360020D2 +:1048D00074970008000002400F28F8B510D910287E +:1048E00010D0112811D0122808D10F240720DFF88A +:1048F000B4E00126DEF80050A04208D9002649E0C5 +:104900000446F4E70F240020F1E70724FBE706FA4A +:1049100000F73D4240D1214C4FEA001C3D4304EBDF +:1049200000160EEBC000CEF80050C0E90123FBB228 +:104930004BB11B48836B43F001038363036E43F069 +:1049400001030366036E17F47F4F09D01448836B8D +:1049500043F002038363036E43F002030366036EB6 +:1049600054F80C00036823F01F030360056815F07A +:104970000105FBD104EB0C033D2493F80CC05F68E8 +:1049800004FA0CF43C6021240560446112B1987B68 +:1049900000F0B4FC3046F8BD0130ADE77497000874 +:1049A000004502584436002010B5302484F31188A5 +:1049B000FFF792FF002383F3118810BD10B5044662 +:1049C000807B00F0B1FC01231049627B03FA02F204 +:1049D0000B6823EA0203DAB20B604AB90C4A916B06 +:1049E00021F001019163116E21F001011166126E37 +:1049F00013F47F4F09D1064B9A6B22F002029A639F +:104A00001A6E22F002021A661B6E10BD4436002098 +:104A10000045025808B5302383F31188FFF7CEFF15 +:104A2000002383F3118808BD836CC26A8B425068EF +:104A300010B506D95A1E4C0002EB4103B3FBF4F348 +:104A4000184410BD01F001038A0748BF43F0020378 +:104A50004A0748BF43F008030A0748BF43F004036E +:104A6000CA0648BF43F010038A06426B48BF43F0B2 +:104A7000200313434363704710B5074C204600F0F2 +:104A8000BFFF064B0022C4E91023054BA364054B6E +:104A9000E363054BE36410BDC8360020007000528C +:104AA00000B4C4041C3700201C390020C36A0BB9B1 +:104AB0000E4BC3620379012B0CD10D4B984209D1E7 +:104AC0000C4B5A6B42F480325A63DA6D42F48032F6 +:104AD000DA65DB6D436C00221A65DA621A605A608F +:104AE0005A624FF0FF329A63704700BF7498000813 +:104AF000C8360020004502580379012B16D0436CBC +:104B000000221A65DA621A605A605A624FF0FF3268 +:104B10009A63074B984209D1064B5A6B22F48032B4 +:104B20005A63DA6D22F48032DA65DB6D704700BFBC +:104B3000C83600200045025810B5446C0649FFF7FE +:104B400073FF6060236842F2107043F00303236038 +:104B5000BDE8104001F05ABD801A06000129F8B5E1 +:104B6000466C0B4F09D175680A493D40FFF75CFF61 +:104B7000054345F480557560F8BD746806493C40AE +:104B8000FFF752FF044344F480547460F4E700BF1D +:104B900000ECFFFF80F0FA0240787D01436C0022B8 +:104BA0005A601A6070470000426C0129536823F470 +:104BB000404304D0022905D001B95360704743F443 +:104BC0008043FAE743F40043F7E70000436C41F405 +:104BD00080519A60D9605A6B1206FCD580229A6384 +:104BE0007047000010B541F48851446CA260E16048 +:104BF000616B11F04502FBD0A26311F0040203D0F7 +:104C0000FFF720FF012010BD616910461960FAE727 +:104C100010B541F48851446CA260E160616B11F001 +:104C20004502FBD0A26311F0050203D0FFF70AFF93 +:104C3000012010BD616910461960FAE773B513468B +:104C400004460E46302282F31188426CD26B32B198 +:104C50004FF0FF314030019301F0E4FC019B606CA8 +:104C600000220265C263C262456B15F4807504D1EF +:104C700085F31188012002B070BD4FF0FF318163D0 +:104C800082F31188012E06D90C21204602B0BDE81E +:104C90007040FFF7BDBF1046EDE7000073B5446CF0 +:104CA0000E4600250192616BA1632565E562FFF761 +:104CB000C9FE012E07D9019B2A460C2102B0BDE88E +:104CC0007040FFF7A5BF02B070BD000010B541F401 +:104CD0009851446CA260E160616B11F04502FBD019 +:104CE000A26311F03F0203D0FFF7ACFE012010BD1C +:104CF000216A10461960E1695960A169996061698A +:104D0000D960F4E72DE9F74304460191006D01A94C +:104D10001746984602F03EFC064600284AD0626CD0 +:104D20002046DDF804905568C5F3090501356B0090 +:104D3000A56CB5FBF3F54FF47A73B5FBF3F55D4362 +:104D4000556200F023FE50BB636C4FF0FF3201252B +:104D50004146C3F8589020461D659A634FF49572FA +:104D6000DA6342F207029F62DA62E36C0A9AFFF7A3 +:104D70004FFFA0B9E26C104B11680B407BB929467C +:104D80002046FFF75BFF054648B92E463A46019993 +:104D9000206D02F037FC304603B0BDE8F0833A46A0 +:104DA0000199206D02F02EFCE26C01212046FFF7F4 +:104DB00075FFF0E70126EEE708E0FFFD2DE9F74378 +:104DC0001F46436C01924FF47A725D680446884630 +:104DD000C5F3090501356E00856CB5FBF6F5B5FB2D +:104DE000F2F555435D6200F0D1FD20B10125284662 +:104DF00003B0BDE8F0837E0201A9206D324602F0C7 +:104E0000C9FB05460028F1D0636C019AD4F84C9098 +:104E10009A6501221A654FF0FF329A634FF495723A +:104E2000DA639E62236BDB064B4658BF4FEA482885 +:104E3000012F42461BD912212046FFF7E9FEC0B9D7 +:104E4000D9F80020104B13409BB9636C42F29302D7 +:104E500039462046DA62E26CFFF7F0FE804640B940 +:104E600032460199206D454602F0CCFBBFE7112187 +:104E7000E2E732460199206D02F0C4FBE26C39464C +:104E80002046FFF70BFFB2E708E0FFFD2DE9F341F5 +:104E90001F46436C01924FF47A725D68044688465F +:104EA000C5F3090501356E00856CB5FBF6F5B5FB5C +:104EB000F2F555435D6200F069FD20B101252846F9 +:104EC00002B0BDE8F0817E0201A9206D324602F0F9 +:104ED000A7FB05460028F1D0636C019A9A65012270 +:104EE0001A654FF0FF329A634FF48D72DA639E6257 +:104EF000236BE66CDB06334658BF4FEA4828012F88 +:104F0000424619D919212046FFF782FEB0B932680E +:104F10000F4B134093B9636C42F29102394620461D +:104F2000DA62E26CFFF78AFE064638B90199354627 +:104F3000206D02F0B1FBC2E71821E4E70199206D72 +:104F400002F0AAFBE26C39462046FFF7A7FEB6E75F +:104F500008E0FFFD12F0030F2DE9F04107460C4673 +:104F600015461E4617D00E44B44202D10020BDE8BB +:104F7000F0810123FA6B21463846FFF71FFF002816 +:104F8000F5D128464FF40072F96B05F50075013430 +:104F9000FCF7A0FEE8E7BDE8F041FFF70FBF000017 +:104FA00012F0030F2DE9F04107460C4615461E4648 +:104FB00017D00E44B44202D10020BDE8F08129464A +:104FC0004FF40072F86B05F50075FCF783FE0123C2 +:104FD000FA6B21463846FFF759FF0028EDD101341E +:104FE000E8E7BDE8F041FFF751BF0000002070473F +:104FF000302310B583F311880024436C40302146E0 +:10500000DC6301F01DFB84F3118810BD0268436866 +:105010001143016003B1184770470000024A13684A +:1050200043F0C0031360704700440040024A136815 +:1050300043F0C0031360704700480040024A136801 +:1050400043F0C0031360704700780040044B9A6C33 +:1050500002439A641A6F104318671B6F704700BFB2 +:105060000045025837B5274C274D204600F028FD53 +:1050700004F11400009400234FF40072234900F05F +:10508000C3F94FF40072224904F138000094214B17 +:1050900000F03CFA204BC4E91735204C204600F0C4 +:1050A0000FFD04F11400009400234FF400721C491A +:1050B00000F0AAF94FF400721A4904F13800009484 +:1050C000194B00F023FA194BC4E91735184C204648 +:1050D00000F0F6FC04F1140000234FF400721549AF +:1050E000009400F091F9144B4FF40072134904F14D +:1050F0003800009400F00AFA114BC4E9173503B0E8 +:1051000030BD00BF2039002000E1F505643A0020E1 +:10511000644000201D500008004400408C390020ED +:10512000643C0020644200202D50000800480040EC +:10513000F8390020643E00203D50000864440020FF +:105140000078004038B5264D0446037C002918BF7E +:105150000D46012B06D1234B984230D14FF400303D +:10516000FFF774FF2A68236EE16D03EB5203A56617 +:10517000B3FBF2F36A68100442BF23F0070003F0A8 +:10518000070343EA4003CB60AB6843F040034B6046 +:10519000EB6843F001038B6042F4967343F0010324 +:1051A0000B604FF0FF330B62510505D512F0102252 +:1051B00011D0B2F1805F10D084F8643038BD0A4B52 +:1051C000984205D0094B9842CCD14FF08040C7E7B8 +:1051D0004FF48020C4E77F23EEE73F23ECE700BFD6 +:1051E0007C980008203900208C390020F8390020F4 +:1051F0002DE9F047C66D05463768F469210734622A +:105200001AD014F0080118BF4FF48071E20748BFAC +:1052100041F02001A3074FF0300348BF41F04001A7 +:10522000600748BF41F0800183F31188281DFFF714 +:10523000EDFE002383F31188E2050AD5302383F3C2 +:1052400011884FF48061281DFFF7E0FE002383F3EF +:1052500011884FF030094FF0000A14F0200838D1BF +:105260003B0616D54FF0300905F1380A200610D557 +:1052700089F31188504600F07DF9002836DA0821BC +:10528000281DFFF7C3FE27F080033360002383F35C +:105290001188790614D5620612D5302383F311885C +:1052A000D5E913239A4208D12B6C33B127F040077C +:1052B0001021281DFFF7AAFE3760002383F3118811 +:1052C000E30618D5AA6E1369ABB15069BDE8F04783 +:1052D000184789F31188736A284695F864101940B5 +:1052E00000F008FC8AF31188F469B6E7B06288F32D +:1052F0001188F469BAE7BDE8F0870000090100F100 +:105300006043012203F56143C9B283F8001300F042 +:105310001F039A4043099B0003F1604303F5614377 +:10532000C3F880211A60704700F01F0301229A40E1 +:10533000430900F160409B0000F5614003F16043C8 +:1053400003F56143C3F88020C3F88021002380F86F +:1053500000337047F8B51546826804460B46AA42EA +:1053600000D28568A1692669761AB5420BD2184623 +:105370002A46FCF7AFFCA3692B44A3612846A36827 +:105380005B1BA360F8BD0CD9AF1B18463246FCF777 +:10539000A1FC3A46E1683044FCF79CFCE3683B44DE +:1053A000EBE718462A46FCF795FCE368E5E70000C2 +:1053B00083689342F7B50446154600D28568D4E960 +:1053C0000460361AB5420BD22A46FCF783FC6369A7 +:1053D0002B4463612846A3685B1BA36003B0F0BD48 +:1053E0000DD93246AF1B0191FCF774FC01993A4686 +:1053F000E0683144FCF76EFCE3683B44E9E72A4689 +:10540000FCF768FCE368E4E710B50A440024C361D4 +:10541000029B8460C16002610362C0E90000C0E9D0 +:10542000051110BD08B5D0E90532934201D182685B +:1054300082B98268013282605A1C4261197000216F +:10544000D0E904329A4224BFC368436101F012F9E3 +:10545000002008BD4FF0FF30FBE7000070B530239F +:1054600004460E4683F31188A568A5B1A368A26916 +:10547000013BA360531CA36115782269934224BFAA +:10548000E368A361E3690BB120469847002383F3E7 +:105490001188284607E03146204601F0DBF8002855 +:1054A000E2DA85F3118870BD2DE9F74F04460E4608 +:1054B00017469846D0F81C904FF0300A8AF31188AE +:1054C0004FF0000B154665B12A4631462046FFF7DE +:1054D00041FF034660B94146204601F0BBF8002871 +:1054E000F1D0002383F31188781B03B0BDE8F08F5F +:1054F000B9F1000F03D001902046C847019B8BF300 +:105500001188ED1A1E448AF31188DCE7C160C3617B +:10551000009B82600362C0E905111144C0E90000EC +:1055200001617047F8B504460D461646302383F3F3 +:105530001188A768A7B1A368013BA36063695A1CDF +:1055400062611D70D4E904329A4224BFE36863614A +:10555000E3690BB120469847002080F3118807E0EB +:105560003146204601F076F80028E2DA87F3118808 +:10557000F8BD0000D0E9052310B59A4201D1826838 +:105580007AB982680021013282605A1C82611C78DB +:1055900003699A4224BFC368836101F06BF8204617 +:1055A00010BD4FF0FF30FBE72DE9F74F04460E46E4 +:1055B00017469846D0F81C904FF0300A8AF31188AD +:1055C0004FF0000B154665B12A4631462046FFF7DD +:1055D000EFFE034660B94146204601F03BF8002843 +:1055E000F1D0002383F31188781B03B0BDE8F08F5E +:1055F000B9F1000F03D001902046C847019B8BF3FF +:105600001188ED1A1E448AF31188DCE70379052B13 +:1056100005BF836A002001204B6004BF4FF4007374 +:105620000B60704770B55D1E866A04460D44B54236 +:1056300005D9436B43F080034363012070BD062509 +:105640000571FFF787FC05232371F7E770B55D1E31 +:10565000866A04460D44B54205D9436B43F0800386 +:105660004363012070BD07250571FFF799FC0523F1 +:105670002371F7E738B505790446052D05D10823D0 +:105680000371FFF7B3FC257138BD0120FCE7000072 +:105690000323F0B5037185B00446FFF74DFA0022ED +:1056A00020461146FFF792FA4FF4D57203AB08215A +:1056B0002046FFF7ADFA0246B8B901232363039BE6 +:1056C000C3F30323012B09D103AB37212046FFF796 +:1056D0009FFA18B9A44B039A1340ABB12046012599 +:1056E000FFF75CFA0223237137E103AB0022372175 +:1056F0002046FFF78DFA28B99B4A039B1A40002ADF +:1057000000F0A78002232363236B03F00F03022B17 +:1057100040F0A9806425954E42F2107000F076FFAB +:1057200003AB324601212046FFF75CFA0028D5D1B1 +:10573000039B002B80F293805A0003D5236B43F028 +:1057400010032363002204F1080302212046FFF71F +:10575000BDFA02460028C1D104F1380303212046D6 +:10576000FFF756FA0028B9D104F11805A26B0921F8 +:1057700020462B46FFF7AAFA0028AFD102ABA26B56 +:1057800007212046FFF744FA06460028A6D1236BDE +:1057900003F00F03022B40F08F807E227F212846EA +:1057A00003F02CFA012840F28780E76B42F2107078 +:1057B00000F02CFF08234FF4007239462046009673 +:1057C000FFF7A0FA002889D1384603F065FA236B69 +:1057D000A06203F00F03022B72D103AB644A0621CF +:1057E0002046FFF715FA002871D15F49039B194045 +:1057F000B1FA81F149092046FFF7B0F902AB4FF445 +:10580000007210212046FFF703FA054600287FF4B6 +:1058100065AF554E029B33427FF460AF236B13F0AC +:105820000E0F03F00F0273D0022A7FF457AFE36A22 +:105830001978012900F09480022900F09380002952 +:1058400000F089804B4F2046FFF7AEF903AB3A4694 +:1058500076E0114620462263FFF7B8F954E7013D90 +:105860007FF45AAF3AE7444D6426444A3E4F012B39 +:1058700018BF154603AB002237212046FFF7C8F9B1 +:1058800000287FF42BAF039B3B427FF427AF03AB91 +:105890002A4629212046FFF7A5F900287FF41EAFEC +:1058A000039B002BFFF648AF013E3FF417AF42F2D7 +:1058B000107000F0ABFEDDE7284603F0C1F986E783 +:1058C0007E227F212846E66B03F098F908B9002173 +:1058D00091E7002340223146204600930623FFF73C +:1058E00011FA0028F3D1B3895BBA9B07EFD5244B9B +:1058F00040223146204600930623FFF703FA002892 +:10590000E5D1317C01F00F010F3918BF012172E799 +:10591000E36A1978F9B101297FF4E0AE2046FFF778 +:1059200043F903ABA26B37212046FFF771F900283A +:105930007FF4D4AE039B33427FF4D0AE03AB02229C +:1059400006212046FFF764F900287FF4C7AE039BC9 +:1059500033427FF4C3AE05232371284605B0F0BD62 +:10596000084F70E7084F6EE708E0FFFD0080FFC0BA +:105970000001B9030000B7030080FF500000108051 +:10598000F1FFFF800001B7030002B70337B50446FB +:105990000C4D01ABA26B0D212046FFF739F978B908 +:1059A000019B2B420BD1C3F34323042B08D0053BAF +:1059B000022B04D84FF47A7000F028FEE9E70120AA +:1059C00003B030BD08E0FFFD70B53023054683F31A +:1059D000118803790024022B03D184F31188204617 +:1059E00070BD0423037184F311880226FFF7CEFFF4 +:1059F00004462846FFF7D2F82E71F0E7FFF73CB8CF +:105A0000044B03600123037100234363C0E90A339D +:105A1000704700BF9498000810B53023044683F304 +:105A20001188C162FFF742F802230020237180F33E +:105A3000118810BD10B53023044683F31188FFF799 +:105A40005BF800230122E362227183F3118810BD09 +:105A5000026843681143016003B1184770470000B2 +:105A60001430FFF721BD00004FF0FF331430FFF773 +:105A70001BBD00003830FFF797BD00004FF0FF332B +:105A80003830FFF791BD00001430FFF7E7BC00008D +:105A90004FF0FF311430FFF7E1BC00003830FFF762 +:105AA00041BD00004FF0FF323830FFF73BBD000032 +:105AB000012914BF6FF0130000207047FFF7D2BA1E +:105AC000044B036000234360C0E9023301230374E5 +:105AD000704700BFB898000810B53023044683F320 +:105AE0001188FFF72FFB02230020237480F3118815 +:105AF00010BD000038B5C36904460D461BB904212A +:105B00000844FFF7A5FF294604F11400FFF78AFCBB +:105B1000002806DA201D4FF40061BDE83840FFF789 +:105B200097BF38BD026843681143016003B118474D +:105B30007047000013B5406B00F58054D4F8A438CA +:105B40001A681178042914D1017C022911D119791C +:105B5000012312898B4013420BD101A94C3002F072 +:105B60007BFFD4F8A4480246019B2179206800F00D +:105B7000DFF902B010BD0000143002F0FDBE0000DD +:105B80004FF0FF33143002F0F7BE00004C3002F04B +:105B9000CFBF00004FF0FF334C3002F0C9BF000010 +:105BA000143002F0CBBE00004FF0FF31143002F091 +:105BB000C5BE00004C3002F09BBF00004FF0FF322A +:105BC0004C3002F095BF00000020704710B500F582 +:105BD0008054D4F8A4381A681178042917D1017CAC +:105BE000022914D15979012352898B4013420ED1D5 +:105BF000143002F05DFE024648B1D4F8A4484FF4D8 +:105C0000407361792068BDE8104000F07FB910BD95 +:105C1000406BFFF7DBBF0000704700007FB5124B01 +:105C200001250426044603600023057400F1840264 +:105C300043602946C0E902330C4B029014300193B3 +:105C40004FF44073009602F00FFE094B04F69442A5 +:105C5000294604F14C000294CDE900634FF44073EF +:105C600002F0D6FE04B070BDE0980008115C000898 +:105C7000355B00080A68302383F311880B790B33F6 +:105C800042F823004B79133342F823008B7913B188 +:105C90000B3342F8230000F58053C3F8A418022305 +:105CA0000374002080F311887047000038B5037F2B +:105CB000044613B190F85430ABB90125201D0221E0 +:105CC000FFF730FF04F114006FF00101257700F0B9 +:105CD000DDFC04F14C0084F854506FF00101BDE884 +:105CE000384000F0D3BC38BD10B501210446043063 +:105CF000FFF718FF0023237784F8543010BD00000D +:105D000038B504460025143002F0C6FD04F14C00FD +:105D1000257702F095FE201D84F854500121FFF7ED +:105D200001FF2046BDE83840FFF750BF90F88030B3 +:105D300003F06003202B06D190F881200023212A54 +:105D400003D81F2A06D800207047222AFBD1C0E9B9 +:105D50001D3303E0034A426707228267C3670120BD +:105D6000704700BF4422002037B500F58055D5F8B4 +:105D7000A4381A68117804291AD1017C022917D194 +:105D80001979012312898B40134211D100F14C047F +:105D9000204602F015FF58B101A9204602F05CFE32 +:105DA000D5F8A4480246019B2179206800F0C0F88C +:105DB00003B030BD01F10B03F0B550F8236085B09E +:105DC00004460D46FEB1302383F3118804EB8507AA +:105DD000301D0821FFF7A6FEFB6806F14C005B6949 +:105DE0001B681BB1019002F045FE019803A902F067 +:105DF00033FE024648B1039B2946204600F098F83E +:105E0000002383F3118805B0F0BDFB685A6912685E +:105E1000002AF5D01B8A013B1340F1D104F1800226 +:105E2000EAE70000133138B550F82140ECB13023D7 +:105E300083F3118804F58053D3F8A42813685279AA +:105E400003EB8203DB689B695D6845B10421601840 +:105E5000FFF768FE294604F1140002F033FD2046E6 +:105E6000FFF7B4FE002383F3118838BD70470000AC +:105E700001F062BD01234022002110B5044600F864 +:105E8000303BFBF74DFF0023C4E9013310BD000098 +:105E900010B53023044683F3118824224160002189 +:105EA0000C30FBF73DFF204601F068FD0223002087 +:105EB000237080F3118810BD70B500EB8103054697 +:105EC00050690E461446DA6018B110220021FBF723 +:105ED00027FFA06918B110220021FBF721FF3146EE +:105EE0002846BDE8704001F049BE000083682022CA +:105EF000002103F0011310B5044683601030FBF756 +:105F00000FFF2046BDE8104001F0C4BEF0B40125EB +:105F100000EB810447898D40E4683D43A4694581D5 +:105F200023600023A2606360F0BC01F0E1BE0000CA +:105F3000F0B4012500EB810407898D40E4683D43FE +:105F40006469058123600023A2606360F0BC01F0F6 +:105F500057BF000070B502230025044624220370B9 +:105F60002946C0F888500C3040F8045CFBF7D8FE96 +:105F7000204684F8705001F095FD63681B6823B1DA +:105F800029462046BDE87040184770BD0378052BB0 +:105F900010B504460AD080F88C300523037043689E +:105FA0001B680BB1042198470023A36010BD0000BB +:105FB0000178052906D190F88C20436802701B688F +:105FC00003B118477047000070B590F87030044670 +:105FD00013B1002380F8703004F18002204601F0F4 +:105FE0007DFE63689B68B3B994F8803013F0600558 +:105FF00035D00021204602F06FF90021204602F042 +:106000005FF963681B6813B1062120469847062391 +:1060100084F8703070BD204698470028E4D0B4F86A +:106020008630A26F9A4288BFA36794F98030A56F2B +:10603000002B4FF0300380F20381002D00F0F2803E +:10604000092284F8702083F3118800212046D4E9C6 +:106050001D23FFF76DFF002383F31188DAE794F81F +:10606000812003F07F0343EA022340F2023293428D +:1060700000F0C58021D8B3F5807F48D00DD8012B22 +:106080003FD0022B00F09380002BB2D104F18802A4 +:1060900062670222A267E367C1E7B3F5817F00F080 +:1060A0009B80B3F5407FA4D194F88230012BA0D11E +:1060B000B4F8883043F0020332E0B3F5006F4DD0FE +:1060C00017D8B3F5A06F31D0A3F5C063012B90D8DA +:1060D0006368204694F882205E6894F88310B4F8D0 +:1060E0008430B047002884D0436863670368A3679F +:1060F0001AE0B3F5106F36D040F6024293427FF4B7 +:1061000078AF5C4B63670223A3670023C3E794F86F +:106110008230012B7FF46DAFB4F8883023F0020396 +:10612000A4F88830C4E91D55E56778E7B4F88030F5 +:10613000B3F5A06F0ED194F88230204684F88A30EF +:1061400001F00EFD63681B6813B1012120469847DA +:10615000032323700023C4E91D339CE704F18B0360 +:1061600063670123C3E72378042B10D1302383F323 +:1061700011882046FFF7BAFE85F311880321636872 +:1061800084F88B5021701B680BB12046984794F817 +:106190008230002BDED084F88B30042323706368B8 +:1061A0001B68002BD6D0022120469847D2E794F8EE +:1061B000843020461D0603F00F010AD501F080FD52 +:1061C000012804D002287FF414AF2B4B9AE72B4B05 +:1061D00098E701F067FDF3E794F88230002B7FF435 +:1061E00008AF94F8843013F00F01B3D01A0620469C +:1061F00002D502F089F8ADE702F07AF8AAE794F840 +:106200008230002B7FF4F5AE94F8843013F00F0148 +:10621000A0D01B06204602D502F05EF89AE702F0F5 +:106220004FF897E7142284F8702083F311882B46E7 +:106230002A4629462046FFF769FE85F31188E9E6DC +:106240005DB1152284F8702083F311880021204667 +:10625000D4E91D23FFF75AFEFDE60B2284F87020D7 +:1062600083F311882B462A4629462046FFF760FE15 +:10627000E3E700BF10990008089900080C9900088E +:1062800038B590F870300446002B3ED0063BDAB2A9 +:106290000F2A34D80F2B32D8DFE803F0373131081A +:1062A000223231313131313131313737856FB0F808 +:1062B00086309D4214D2C3681B8AB5FBF3F203FB00 +:1062C00012556DB9302383F311882B462A4629468F +:1062D000FFF72EFE85F311880A2384F870300EE054 +:1062E000142384F87030302383F311880023204670 +:1062F0001A461946FFF70AFE002383F3118838BDBA +:10630000C36F03B198470023E7E70021204601F05F +:10631000E3FF0021204601F0D3FF63681B6813B13F +:106320000621204698470623D7E7000010B590F8CD +:1063300070300446142B29D017D8062B05D001D86D +:106340001BB110BD093B022BFBD80021204601F0F8 +:10635000C3FF0021204601F0B3FF63681B6813B13F +:10636000062120469847062319E0152BE9D10B2377 +:1063700080F87030302383F3118800231A461946C1 +:10638000FFF7D6FD002383F31188DAE7C3689B6922 +:106390005B68002BD5D1C36F03B19847002384F805 +:1063A0007030CEE70023826880F8243083691B6850 +:1063B00099689142FBD25A6803604260106058604D +:1063C000704700000023826880F8243083691B68CE +:1063D00099689142FBD85A68036042601060586027 +:1063E0007047000008B50846302383F3118891F800 +:1063F0002430032B05D0042B0DD02BB983F3118847 +:1064000008BD8B6A00221A604FF0FF338362FFF7EA +:10641000C9FF0023F2E7D1E9003213605A60F3E7C5 +:10642000034610B51B68984203D09C688A68944262 +:10643000F8D25A680B604A601160596010BD0000C4 +:10644000FFF7B0BF064BD96881F8240018680268CE +:1064500053601A600122D86080F82420F9F7D2BF77 +:10646000684600200C4B30B5DD684B1C87B00446F5 +:106470000FD02B46094A684600F09CF92046FFF7EA +:10648000E1FF009B13B1684600F09EF9A86A07B0CF +:1064900030BDFFF7D7FFF9E768460020E563000845 +:1064A000044B1A68DB6890689B68984294BF002090 +:1064B0000120704768460020094B10B51C68D86859 +:1064C000226853601A600122DC6084F82420FFF700 +:1064D00079FF01462046BDE81040F9F793BF00BFA1 +:1064E00068460020044B1A68DB6892689B689A42F1 +:1064F00001D9FFF7E1BF70476846002038B5012396 +:10650000084C00252370656002F0F4FB02F01AFCD1 +:106510000549064802F0F0FC0223237085F3118838 +:1065200038BD00BF104900201899000868460020B7 +:1065300000F080B9034A516853685B1A9842FBD84F +:10654000704700BF001000E08B604B630023CA61FE +:1065500000F128020B6302230A618B840123886106 +:1065600081F8263001F11003C26A4A611360C362E8 +:1065700001F12C030846CB6270470000D0E90131DD +:10658000026841F8183CA1F19C033839CB600369DB +:1065900041F8243C436941F8203C034B41F8043C5A +:1065A000C3680248FFF7D0BF1D04000868460020FA +:1065B00008B5FFF7E3FFBDE80840FFF741BF000063 +:1065C00038B50E4BDC6804F12C05A062E06AA842E5 +:1065D0000FD194F826303BB994F825309B0702BFC1 +:1065E000D4E9043213605A600F20BDE83840FFF749 +:1065F00029BF0368E362FFF723FFE7E7684600204F +:10660000302383F31188FFF7DBBF000008B5014694 +:10661000302383F311880820FFF724FF002383F33E +:10662000118808BD054BDB6821B103609862032027 +:10663000FFF718BF4FF0FF30704700BF68460020DB +:1066400003682BB10022026018469962FFF7F8BE7A +:1066500070470000064BDB6839B1426818605A6029 +:10666000136043600420FFF7FDBE4FF0FF3070471A +:10667000684600200368984206D01A68026050609D +:1066800018469962FFF7DCBE7047000038B5044633 +:106690000D462068844200D138BD036823605C60E9 +:1066A0008562FFF7CDFEF4E7036810B59C68A2424F +:1066B0000CD85C688A600B604C60216059609968F6 +:1066C0008A1A9A604FF0FF33836010BD121B1B685B +:1066D000ECE700000A2938BF0A2170B504460D46D0 +:1066E0000A26601902F000FB02F0E8FA041BA5423A +:1066F00003D8751C04462E46F3E70A2E04D9012060 +:10670000BDE8704002F0C0BC70BD0000F8B5144B8D +:106710000D460A2A4FF00A07D96103F11001826081 +:1067200038BF0A2241601969144601604860186147 +:10673000A81802F0C9FA02F0C1FA431B0646A342A8 +:1067400006D37C1C28192746354602F0CDFAF2E71D +:106750000A2F04D90120BDE8F84002F095BCF8BD2D +:1067600068460020F8B506460D4602F0A7FA0F4A23 +:10677000134653F8107F9F4206D12A460146304601 +:10678000BDE8F840FFF7C2BFD169BB68441A2C19B5 +:1067900028BF2C46A34202D92946FFF79BFF224679 +:1067A00031460348BDE8F840FFF77EBF6846002049 +:1067B00078460020C0E90323002310B45DF8044BA1 +:1067C0004361FFF7CFBF000010B5194C2369984211 +:1067D0000DD08168D0E9003213605A609A680A448B +:1067E0009A60002303604FF0FF33A36110BD02687D +:1067F000234643F8102F53600022026022699A4218 +:1068000003D1BDE8104002F069BA936881680B4477 +:10681000936002F053FA2269E1699268441AA24235 +:10682000E4D91144BDE81040091AFFF753BF00BF77 +:10683000684600202DE9F047DFF8BC8008F110071A +:106840002C4ED8F8105002F039FAD8F81C40AA683B +:10685000031B9A423ED814444FF00009D5E9003298 +:10686000C8F81C4013605A60C5F80090D8F8103082 +:10687000B34201D102F032FA89F31188D5E903312C +:1068800028469847302383F311886B69002BD8D0B2 +:1068900002F014FA6A69A0EB040982464A450DD257 +:1068A000022002F0F1FB0022D8F81030B34208D1E8 +:1068B00051462846BDE8F047FFF728BF121A224488 +:1068C000F2E712EB09092946384638BF4A46FFF776 +:1068D000EBFEB5E7D8F81030B34208D01444C8F83E +:1068E0001C00211AA960BDE8F047FFF7F3BEBDE820 +:1068F000F08700BF784600206846002038B502F0D7 +:10690000DDF9054AD2E90845031B181945F10001D4 +:10691000C2E9080138BD00BF6846002010B560B963 +:10692000074804790368053C9B6818BF0124984711 +:1069300008B144F00404204610BD0124FBE700BF69 +:10694000C8360020FFF7EABF2DE9F0478846174612 +:106950009A460446B0B90D4E3579052D05D003246D +:106960000DE0013D15F0FF050ED032685346394663 +:106970003046D2F814904246C8470028F1D120464C +:10698000BDE8F0870424FAE70124F8E7C8360020C0 +:106990002DE9F047884617469A460446B0B90D4E91 +:1069A0003579052D05D003240DE0013D15F0FF05D7 +:1069B0000ED03268534639463046D2F818904246D7 +:1069C000C8470028F1D12046BDE8F0870424FAE743 +:1069D0000124F8E7C836002037B50C46154670B9D3 +:1069E00051B101290BD10748694603681B6A9847D2 +:1069F00010B9019B04462B60204603B030BD04242F +:106A0000FAE700BFC836002000207047FEE700000C +:106A1000704700004FF0FF30704700004B68436044 +:106A20008B688360CB68C3600B6943614B69036209 +:106A30008B6943620B6803607047000008B53C4BEC +:106A400040F2FF713B48D3F888200A43C3F88820FE +:106A5000D3F8882022F4FF6222F00702C3F88820CE +:106A6000D3F88830344B1A6C0A431A649A6E0A437E +:106A70009A66324A9B6E1146FFF7D0FF00F58060A0 +:106A800002F11C01FFF7CAFF00F5806002F1380136 +:106A9000FFF7C4FF00F5806002F15401FFF7BEFF6D +:106AA00000F5806002F17001FFF7B8FF00F580602B +:106AB00002F18C01FFF7B2FF00F5806002F1A8013E +:106AC000FFF7ACFF00F5806002F1C401FFF7A6FFFD +:106AD00000F5806002F1E001FFF7A0FF00F58060A3 +:106AE00002F1FC01FFF79AFF02F58C7100F580605E +:106AF000FFF794FF01F09CFC114BD3F8902242F079 +:106B00000102C3F89022D3F8942242F00102C3F8A4 +:106B100094220522C3F898204FF06052C3F89C20BD +:106B2000084AC3F8A020BDE8084000F0F3BC00BF4D +:106B30000044025800000258004502582C990008F1 +:106B400000ED00E01F00080308B501F079FEFFF733 +:106B5000D5FC0D4BDA6B42F04002DA635A6E22F03C +:106B600040025A665B6E094B1A6842F008021A60CE +:106B70001A6842F004021A6000F096FD00F032FB41 +:106B8000BDE8084000F0B4B80045025800180248BB +:106B900001207047002070477047000002290CD088 +:106BA000032904D00129074818BF00207047032A91 +:106BB00005D8054800EBC200704704487047002024 +:106BC000704700BF309B000854220020E49A000860 +:106BD00070B59AB005460846144601A900F0C2F8FF +:106BE00001A8FBF795F8431C0022C6B25B001046D3 +:106BF000C5E9003423700323023404F8013C01ABDF +:106C0000D1B202348E4201D81AB070BD13F8011B04 +:106C1000013204F8010C04F8021CF1E708B5302336 +:106C200083F311880348FFF79FF8002383F311884B +:106C300008BD00BF1849002090F8803003F01F0203 +:106C4000012A07D190F881200B2A03D10023C0E943 +:106C50001D3315E003F06003202B08D1B0F8843019 +:106C60002BB990F88120212A03D81F2A04D8FFF7D6 +:106C70005DB8222AEBD0FAE7034A4267072282670F +:106C8000C3670120704700BF4B22002007B50529CC +:106C900017D8DFE801F0191603191920302383F300 +:106CA0001188104A01210190FFF706F9019802218D +:106CB0000D4AFFF701F90D48FFF722F8002383F38F +:106CC000118803B05DF804FB302383F31188074873 +:106CD000FEF7ECFFF2E7302383F311880348FFF758 +:106CE00003F8EBE7849A0008A89A000818490020E6 +:106CF00038B50C4D0C4C2A460C4904F10800FFF73E +:106D000067FF05F1CA0204F110000949FFF760FFAF +:106D100005F5CA7204F118000649BDE83840FFF7CE +:106D200057BF00BFF061002054220020609A000885 +:106D30006A9A0008799A000870B5044608460D461C +:106D4000FAF7E6FFC6B22046013403780BB91846BD +:106D500070BD32462946FAF7C7FF0028F3D101205B +:106D6000F6E700002DE9F04705460C46FAF7D0FF9C +:106D70002B49C6B22846FFF7DFFF08B10E36F6B240 +:106D800028492846FFF7D8FF08B11036F6B2632E1F +:106D90000BD8DFF88C80DFF88C90234FDFF894A0BD +:106DA0002E7846B92670BDE8F08729462046BDE812 +:106DB000F04702F00DBA252E2ED107224146284673 +:106DC000FAF792FF70B9194B224603F1140153F8F8 +:106DD000040B8B4242F8040BF9D11B7807351534AC +:106DE0001370DDE7082249462846FAF77DFF98B977 +:106DF000A21C0F4B197802320909C95D02F8041C64 +:106E000013F8011B01F00F015345C95D02F8031C83 +:106E1000F0D118340835C3E7013504F8016BBFE73A +:106E2000509B0008799A00086E9B0008589B000848 +:106E300000E8F11F0CE8F11FBFF34F8F044B1A69F4 +:106E40005107FCD1D3F810215207F8D1704700BF89 +:106E50000020005208B50D4B1B78ABB9FFF7ECFFD3 +:106E60000B4BDA68D10704D50A4A5A6002F188321E +:106E70005A60D3F80C21D20706D5064AC3F804217C +:106E800002F18832C3F8042108BD00BF4E6400201F +:106E9000002000522301674508B5114B1B78F3B958 +:106EA000104B1A69510703D5DA6842F04002DA60E4 +:106EB000D3F81021520705D5D3F80C2142F0400237 +:106EC000C3F80C21FFF7B8FF064BDA6842F0010265 +:106ED000DA60D3F80C2142F00102C3F80C2108BD9E +:106EE0004E640020002000520F289ABF00F58060F9 +:106EF00040040020704700004FF40030704700004D +:106F0000102070470F2808B50BD8FFF7EDFF00F5EC +:106F100000330268013204D104308342F9D10120E8 +:106F200008BD0020FCE700000F2838B505463FD813 +:106F3000FFF782FF1F4CFFF78DFF4FF0FF3307284D +:106F40006361C4F814311DD82361FFF775FF030294 +:106F500043F02403E360E36843F08003E3602369C4 +:106F60005A07FCD42846FFF767FFFFF7BDFF4FF431 +:106F7000003100F0ABFA2846FFF78EFFBDE838403D +:106F8000FFF7C0BFC4F81031FFF756FFA0F10803A8 +:106F90001B0243F02403C4F80C31D4F80C3143F045 +:106FA0008003C4F80C31D4F810315B07FBD4D9E767 +:106FB000002038BD002000522DE9F84F05460C4650 +:106FC000104645EA0203DE0602D00020BDE8F88F35 +:106FD00020F01F00DFF8BCB0DFF8BCA0FFF73AFFDD +:106FE00004EB0008444503D10120FFF755FFEDE70E +:106FF00020222946204602F0B3F810B9203520346B +:10700000F0E72B4605F120021F68791CDDD104331F +:107010009A42F9D105F178431B481C4EB3F5801F05 +:107020001B4B38BF184603F1F80332BFD946D1468F +:107030001E46FFF701FF0760A5EB040C336804F15F +:107040001C0143F002033360231FD9F8007017F0CE +:107050000507FAD153F8042F8B424CF80320F4D1E2 +:10706000BFF34F8FFFF7E8FE4FF0FF33202221469A +:1070700003602846336823F00203336002F070F89F +:107080000028BBD03846B0E7142100520C20005233 +:1070900014200052102000521021005210B5084C4C +:1070A000237828B11BB9FFF7D5FE0123237010BD4B +:1070B000002BFCD02070BDE81040FFF7EDBE00BFF4 +:1070C0004E6400202DE9F04F0D4685B0814658B141 +:1070D00011F00D0614BF2022082211F008030193BD +:1070E00004D0431E034269D0002435E0002E37D07F +:1070F00009F11F0121F01F094FF00108314F05F080 +:107100000403DFF8CCA005EA080BBBF1000F32D076 +:107110007869C0072FD408F101080C37B8F1060FC1 +:10712000F3D19EB9284D4946A819019201F02CFED1 +:107130000446002839D12036019AA02EF3D14946C1 +:1071400001F022FE044600282FD1019A49461F482B +:1071500001F01AFE044660BB204605B0BDE8F08F82 +:107160000029C9D101462846029201F00DFE0446CD +:10717000D8B9029AC0E713B178694107CBD5AC07FB +:1071800002D578698007C6D5019911B178690107E0 +:10719000C1D549460AEB4810CDE9022301F0F4FDC0 +:1071A0000446DDE902230028B5D04A4600212046E6 +:1071B00001E04A460021FAF7B3FDCDE70246002E72 +:1071C00096D199E7809B00089064002050640020CD +:1071D000706400200021FFF775BF00000121FFF758 +:1071E00071BF000070B5144D0124144E40F2FF32FF +:1071F00000210120FAF794FD06EB441001342A69BE +:1072000055F80C1F01F0ACFD062CF5D137254FF4D5 +:10721000C0542046FFF7E2FF014628B12246084845 +:10722000BDE8704001F09CBDC4EBC404013D4FEAD1 +:10723000D404EED170BD00BF809B000870640020B4 +:10724000506400200421FFF73DBF00004843FFF7D2 +:10725000C1BF000008B101F009BE7047B0F5805F02 +:1072600010B5044607D8FFF7EDFF28B92046BDE862 +:107270001040FFF7AFBF002010BD0000FFF7EABFCE +:1072800070B5AAB140EA010313F01F030FD1094CF6 +:107290000144A5686D0706D52568A84203D3666832 +:1072A0003544A94204D903330C34122BF1D1002206 +:1072B000104670BD809B000808B501F0EDFE034A42 +:1072C000D2E90032C01842EB010108BD3065002050 +:1072D000434BD3E900232DE9F34113437CD0FFF75F +:1072E000EBFF404A00230027F9F7A6F806460D46B3 +:1072F0003D4A0023F9F7A0F80023144630462946FA +:10730000394AF9F799F84FF461613C23ADF80170FF +:10731000B4FBF1F5B4FBF3F601FB154103FB164694 +:107320004624B1FBF3F1314BF6B28DF800409842A0 +:107330003CD84FF0640C4FF4C87EA30704F26C7283 +:1073400025D1B2FBFCF30CFB132313BBB2FBFEF302 +:107350000EFB1322B2FA82F35B0903F26D18621C72 +:107360008045D2B217D90FB18DF800400022204CD1 +:107370004FF00C0C17460CFB0343D4B2013213F848 +:1073800004C084450CD8A0EB0C000127F5E70023CE +:10739000E3E70123E1E7A0EB080014460127CCE76F +:1073A0000FB18DF80140431C8DF802309DF80100AB +:1073B000431C9DF800005038400640EA43509DF8B9 +:1073C000023040EA034040EA560040EAC52040EA65 +:1073D000411002B0BDE8F0814FF40410F9E700BF9E +:1073E0003065002040420F008051010090230B00C7 +:1073F000C89B00080244074BD2B210B5904200D19E +:1074000010BD441C00B253F8200041F8040BE0B258 +:10741000F4E700BF504000580E4B30B51C6F2404F9 +:1074200005D41C6F1C671C6F44F400441C670A4C95 +:1074300002442368D2B243F480732360074B904226 +:1074400000D130BD441C51F8045B00B243F8205019 +:10745000E0B2F4E700440258004802585040005897 +:1074600007B5012201A90020FFF7C4FF019803B06E +:107470005DF804FB13B50446FFF7F2FFA04205D008 +:10748000012201A900200194FFF7C6FF02B010BD40 +:1074900010B56424013C4FF47A70FFF7B7F814F08C +:1074A000FF04F7D1084B4FF0807214249A6103F562 +:1074B000805308229A61013C4FF47A70FFF7A6F8D6 +:1074C00014F0FF04F7D110BD000002580144BFF3CF +:1074D0004F8F064B884204D3BFF34F8FBFF36F8F9C +:1074E0007047C3F85C022030F4E700BF00ED00E015 :1074F0000144BFF34F8F064B884204D3BFF34F8F35 -:10750000BFF36F8F7047C3F85C022030F4E700BF11 -:1075100000ED00E00144BFF34F8F064B884204D3D7 -:10752000BFF34F8FBFF36F8F7047C3F870022030E7 -:10753000F4E700BF00ED00E070B5054616460C46C6 -:1075400001201021FFF794FE286046733CB12046CD -:1075500036B1FFF789FE2B68186000B19C6070BDE2 -:10756000FFF74EFEF7E70000F8B50F461546044654 -:1075700048B905F11F010126386821F01F01FFF706 -:10758000B7FF3046F8BD427B29463868FFF78AFED0 -:1075900006460028EDD13B686360A368AB4210D279 -:1075A00013B12068FFF768FE637B28462BB1FFF715 -:1075B0005BFE206020B9A060E3E7FFF721FEF8E75B -:1075C000A560206805F11F01012621F01F01386028 -:1075D000FFF78EFF2673D4E710B5044640B100686C -:1075E000884205D1606808B1FAF774FB0023237361 -:1075F00010BD0000F8B50F461446054648B904F121 -:107600001F010126386821F01F01FFF783FF304674 -:10761000F8BD427B21463868FFF744FE0646002845 -:10762000EDD1AB68A34210D213B12868FFF724FE56 -:107630006B7B20462BB1FFF717FE286020B9A860AE -:10764000E5E7FFF7DDFDF8E7AC60396819B12246E0 -:107650002868FAF73FFB286804F11F01012621F092 -:107660001F013860FFF756FF2E73D0E720B1036883 -:107670008B4204BF0023037370470000034B1A685A -:107680001AB9034AD2F8D0241A607047386500202E -:107690000040025808B5FFF7F1FF024B1868C0F32D -:1076A000806008BD38650020EFF309830549683321 -:1076B0004A6B22F001024A6383F30988002383F3B3 -:1076C0001188704700EF00E0302080F3118862B627 -:1076D0000D4B0E4AD96821F4E0610904090C0A43F4 -:1076E0000B49DA60D3F8FC2042F08072C3F8FC202A -:1076F000084AC2F8B01F116841F001011160202250 -:10770000DA7783F82200704700ED00E00003FA0505 -:1077100055CEACC5001000E0302310B583F31188BE -:107720000E4B5B6813F4006314D0F1EE103AEFF3E4 -:1077300009844FF08073683CE361094BDB6B23667F -:1077400084F30988FEF7A6FE10B1064BA36110BDB5 -:10775000054BFBE783F31188F9E700BF00ED00E07C -:1077600000EF00E02F0400083204000870B5BFF3FA -:107770004F8FBFF36F8F1A4A0021C2F85012BFF328 -:107780004F8FBFF36F8F536943F400335361BFF3DF -:107790004F8FBFF36F8FC2F88410BFF34F8FD2F8B3 -:1077A000803043F6E074C3F3C900C3F34E335B018A -:1077B00003EA0406014646EA81750139C2F86052BF -:1077C000F9D2203B13F1200FF2D1BFF34F8F536951 -:1077D00043F480335361BFF34F8FBFF36F8F70BD9E -:1077E00000ED00E0FEE70000214B2248224A70B580 -:1077F000904237D3214BC11EDA1C121A22F0030229 -:107800008B4238BF00220021FAF78AFA1C4A002373 -:10781000C2F88430BFF34F8FD2F8803043F6E07463 -:10782000C3F3C900C3F34E335B0103EA0406014608 -:1078300046EA81750139C2F86C52F9D2203B13F146 -:10784000200FF2D1BFF34F8FBFF36F8FBFF34F8F76 -:10785000BFF36F8F0023C2F85032BFF34F8FBFF3D7 -:107860006F8F70BD53F8041B40F8041BC0E700BFC6 -:10787000A49C00083467002034670020346700208F -:1078800000ED00E0054B996B21EA000199631A6E47 -:1078900022EA00021A661B6E704700BF00450258BC -:1078A00070B5D0E9244300224FF0FF359E6804EB09 -:1078B00042135101D3F80009002805DAD3F8000972 -:1078C00040F08040C3F80009D3F8000B002805DA27 -:1078D000D3F8000B40F08040C3F8000B013263186E -:1078E0009642C3F80859C3F8085BE0D24FF0011381 -:1078F000C4F81C3870BD0000890141F0200101610D -:1079000003699B06FCD41220FEF70EBE10B50A4C8C -:107910002046FEF7A9FA094BC4F89030084BC4F88A -:107920009430084C2046FEF79FFA074BC4F890307D -:10793000064BC4F8943010BD3C65002000000840A0 -:10794000D89B0008D865002000000440E49B000894 -:1079500070B503780546012B58D13F4BD0F89040C5 -:10796000984254D13D4B0E2165209A6B42F0006243 -:107970009A631A6E42F000621A661B6E384BD3F897 -:10798000802042F00062C3F88020D3F8802022F0EB -:107990000062C3F88020D3F88030FDF7A9FC314B9A -:1079A000E360314BC4F800380023D5F89060C4F888 -:1079B000003EC02323604FF40413A3633369002BFC -:1079C000FCDA01230C203361FEF7AEFD3369DB07DF -:1079D000FCD41220FEF7A8FD3369002BFCDA002648 -:1079E0002846A660FFF75CFF6B68C4F81068DB6888 -:1079F000C4F81468C4F81C6863BB1C4BA3614FF047 -:107A0000FF336361A36843F00103A36070BD184BAB -:107A10009842C9D1114B4FF080609A6B42F00072CE -:107A20009A631A6E42F000721A661B6E0C4BD3F802 -:107A3000802042F00072C3F88020D3F8802022F02A -:107A40000072C3F88020D3F88030FFF71BFF0E21AF -:107A50004D20A2E7074BD1E73C65002000450258C6 -:107A6000004402584014004003002002003C30C093 -:107A7000D8650020083C30C0F8B5D0F890400546E5 -:107A800000214FF000662046FFF736FFD5F894102E -:107A900000234FF001128F684FF0FF30C4F83438E4 -:107AA000C4F81C2804EB431201339F42C2F800695A -:107AB000C2F8006BC2F80809C2F8080BF2D20B68D2 -:107AC000D5F89020C5F898306362102313611669C9 -:107AD00016F01006FBD11220FEF726FDD4F8003870 -:107AE00023F4FE63C4F80038A36943F4402343F051 -:107AF0001003A3610923C4F81038C4F814380B4BE1 -:107B0000EB604FF0C043C4F8103B094BC4F8003B96 -:107B1000C4F81069C4F80039D5F8983003F11002A0 -:107B200043F48013C5F89820A362F8BDB49B000805 -:107B300040800010D0F8902090F88A10D2F80038D9 -:107B400023F4FE6343EA0113C2F8003870470000D3 -:107B50002DE9F84300EB8103D0F890500C468046A5 -:107B6000DA680FFA81F94801166806F00306731EF9 -:107B7000022B05EB41134FF0000194BFB604384EC1 -:107B8000C3F8101B4FF0010104F1100398BF06F178 -:107B9000805601FA03F3916998BF06F50046002963 -:107BA0003AD0578A04F15801374349016F50D5F84C -:107BB0001C180B430021C5F81C382B180127C3F8EB -:107BC0001019A7405369611E9BB3138A928B9B08BF -:107BD000012A88BF5343D8F89820981842EA0343F3 -:107BE00001F140022146C8F89800284605EB8202C0 -:107BF0005360FFF781FE08EB8900C3681B8A43EAE4 -:107C0000845348341E4364012E51D5F81C381F4359 -:107C1000C5F81C78BDE8F88305EB4917D7F8001BB9 -:107C200021F40041C7F8001BD5F81C1821EA030312 -:107C3000C0E704F13F030B4A2846214605EB8303C6 -:107C40005A60FFF759FE05EB4910D0F8003923F4CC -:107C50000043C0F80039D5F81C3823EA0707D7E7F6 -:107C60000080001000040002D0F894201268C0F8D0 -:107C70009820FFF715BE00005831D0F89030490128 -:107C80005B5813F4004004D013F4001F0CBF022013 -:107C9000012070474831D0F8903049015B5813F407 -:107CA000004004D013F4001F0CBF022001207047D5 -:107CB00000EB8101CB68196A0B6813604B68536055 -:107CC0007047000000EB810330B5DD68AA691368D6 -:107CD000D36019B9402B84BF402313606B8A1468AA -:107CE000D0F890201C4402EB4110013C09B2B4FBD7 -:107CF000F3F46343033323F0030343EAC44343F041 -:107D0000C043C0F8103B2B6803F00303012B0ED1D6 -:107D1000D2F8083802EB411013F4807FD0F8003B12 -:107D200014BF43F0805343F00053C0F8003B02EB14 -:107D30004112D2F8003B43F00443C2F8003B30BD8F -:107D40002DE9F041D0F8906005460C4606EB411352 -:107D5000D3F8087B3A07C3F8087B08D5D6F814385F -:107D60001B0704D500EB8103DB685B689847FA07C3 -:107D70001FD5D6F81438DB071BD505EB8403D9686B -:107D8000CCB98B69488A5A68B2FBF0F600FB162220 -:107D90008AB91868DA6890420DD2121AC3E9002431 -:107DA000302383F3118821462846FFF78BFF84F3A5 -:107DB0001188BDE8F081012303FA04F26B8923EAFC -:107DC00002036B81CB68002BF3D021462846BDE827 -:107DD000F041184700EB81034A0170B5DD68D0F827 -:107DE00090306C692668E66056BB1A444FF4002058 -:107DF000C2F810092A6802F00302012A0AB20ED161 -:107E0000D3F8080803EB421410F4807FD4F800097B -:107E100014BF40F0805040F00050C4F8000903EB5C -:107E20004212D2F8000940F00440C2F800090122D1 -:107E3000D3F8340802FA01F10143C3F8341870BDD5 -:107E400019B9402E84BF4020206020681A442E8A31 -:107E50008419013CB4FBF6F440EAC44040F0005001 -:107E6000C6E700002DE9F843D0F8906005460C46BF -:107E70004F0106EB4113D3F8088918F0010FC3F83E -:107E800008891CD0D6F81038DB0718D500EB810321 -:107E9000D3F80CC0DCF81430D3F800E0DA6896456B -:107EA00030D2A2EB0E024FF000091A60C3F8049022 -:107EB000302383F31188FFF78DFF89F3118818F0C1 -:107EC000800F1DD0D6F834380126A640334217D093 -:107ED00005EB84030134D5F89050D3F80CC0E4B21C -:107EE0002F44DCF8142005EB0434D2F800E051688C -:107EF000714514D3D5F8343823EA0606C5F834683A -:107F0000BDE8F883012303FA01F2038923EA02039F -:107F10000381DCF80830002BD1D09847CFE7AEEBD7 -:107F20000103BCF81000834228BF0346D7F81809A4 -:107F300080B2B3EB800FE3D89068A0F1040959F840 -:107F4000048FC4F80080A0EB09089844B8F1040F2E -:107F5000F5D818440B4490605360C8E72DE9F84FFA -:107F6000D0F8905004466E69AB691E4016F48058F4 -:107F70006E6103D0BDE8F84FFDF7E6BF002E12DAC0 -:107F8000D5F8003E9B0705D0D5F8003E23F003034B -:107F9000C5F8003ED5F80438204623F00103C5F8A3 -:107FA0000438FDF7FFFF370505D52046FFF778FCBD -:107FB0002046FDF7E5FFB0040CD5D5F8083813F0DE -:107FC000060FEB6823F470530CBF43F4105343F4D3 -:107FD000A053EB6031071BD56368DB681BB9AB6945 -:107FE00023F00803AB612378052B0CD1D5F8003EB4 -:107FF0009A0705D0D5F8003E23F00303C5F8003EEC -:108000002046FDF7CFFF6368DB680BB12046984739 -:10801000F30200F1BA80B70226D5D4F89090002779 -:108020004FF0010A09EB4712D2F8003B03F440235A -:10803000B3F5802F11D1D2F8003B002B0DDA628905 -:108040000AFA07F322EA0303638104EB8703DB6880 -:10805000DB6813B13946204698470137D4F894308D -:10806000FFB29B689F42DDD9F00619D5D4F8900085 -:10807000026AC2F30A1702F00F0302F4F012B2F51B -:10808000802F00F0CA80B2F5402F09D104EB8303A2 -:10809000002200F58050DB681B6A974240F0B080F8 -:1080A0003003D5F8185835D5E90303D5002120460B -:1080B000FFF746FEAA0303D501212046FFF740FE45 -:1080C0006B0303D502212046FFF73AFE2F0303D5A9 -:1080D00003212046FFF734FEE80203D504212046A1 -:1080E000FFF72EFEA90203D505212046FFF728FE43 -:1080F0006A0203D506212046FFF722FE2B0203D594 -:1081000007212046FFF71CFEEF0103D5082120467A -:10811000FFF716FE700340F1A780E90703D50021A1 -:108120002046FFF79FFEAA0703D501212046FFF74F -:1081300099FE6B0703D502212046FFF793FE2F0718 -:1081400003D503212046FFF78DFEEE0603D504215B -:108150002046FFF787FEA80603D505212046FFF736 -:1081600081FE690603D506212046FFF77BFE2A061D -:1081700003D507212046FFF775FEEB0574D5204691 -:108180000821BDE8F84FFFF76DBED4F890904FF08E -:10819000000B4FF0010AD4F894305FFA8BF79B681C -:1081A0009F423FF638AF09EB4713D3F8002902F49A -:1081B0004022B2F5802F20D1D3F80029002A1CDA02 -:1081C000D3F8002942F09042C3F80029D3F80029DF -:1081D000002AFBDB3946D4F89000FFF78DFB22899B -:1081E0000AFA07F322EA0303238104EB8703DB681F -:1081F0009B6813B13946204698470BF1010BCAE73B -:10820000910701D1D0F80080072A02F101029CBF3A -:1082100003F8018B4FEA18283FE704EB830300F5CE -:108220008050DA68D2F818C0DCF80820DCE9001CBD -:10823000A1EB0C0C00218F4208D1DB689B699A6886 -:108240003A449A605A683A445A6029E711F0030F99 -:1082500001D1D0F800808C4501F1010184BF02F802 -:10826000018B4FEA1828E6E7BDE8F88F08B5034808 -:10827000FFF774FEBDE80840FFF74EBA3C650020EA -:1082800008B50348FFF76AFEBDE80840FFF744BAA7 -:10829000D8650020D0F8903003EB4111D1F8003BB5 -:1082A00043F40013C1F8003B70470000D0F8903051 -:1082B00003EB4111D1F8003943F40013C1F8003940 -:1082C00070470000D0F8903003EB4111D1F8003B2B -:1082D00023F40013C1F8003B70470000D0F8903041 -:1082E00003EB4111D1F8003923F40013C1F8003930 -:1082F00070470000044BDA6B0243DA635A6E104396 -:1083000058665B6E704700BF0045025808B53C4B8D -:108310004FF0FF31D3F8802062F00042C3F8802094 -:10832000D3F8802002F00042C3F88020D3F88020E8 -:10833000D3F88420C3F88410D3F884200022C3F833 -:108340008420D3F88400D86F40F0FF4040F4FF0051 -:1083500040F4DF4040F07F00D867D86F20F0FF4046 -:1083600020F4FF0020F4DF4020F07F00D867D86FB2 -:10837000D3F888006FEA40506FEA5050C3F8880085 -:10838000D3F88800C0F30A00C3F88800D3F8880047 -:10839000D3F89000C3F89010D3F89000C3F8902061 -:1083A000D3F89000D3F89400C3F89410D3F8940055 -:1083B000C3F89420D3F89400D3F89800C3F8981029 -:1083C000D3F89800C3F89820D3F89800D3F88C001D -:1083D000C3F88C10D3F88C00C3F88C20D3F88C0031 -:1083E000D3F89C00C3F89C10D3F89C10C3F89C20D1 -:1083F000D3F89C30FCF74AFABDE8084000F0D2B947 -:108400000044025808B50122504BC3F80821504BD4 -:108410005A6D42F002025A65DA6F42F00202DA67E0 -:108420000422DB6F4B4BDA605A689104FCD54A4A50 -:108430001A6001229A60494ADA6000221A614FF4F8 -:1084400040429A61434B9A699204FCD51A6842F4FF -:1084500080721A60424B1A6F12F4407F04D04FF4BE -:1084600080321A6700221A671A6842F001021A6005 -:108470003B4B1A685007FCD500221A611A6912F0AA -:108480003802FBD1012119604FF0804159605A67D1 -:10849000344ADA62344A1A611A6842F480321A6045 -:1084A0002F4B1A689103FCD51A6842F480521A6067 -:1084B0001A689204FCD52D4A2D499A6200225A630B -:1084C000196301F57C01DA6301F5E77199635A6478 -:1084D000284A1A64284ADA621A6842F0A8521A60D6 -:1084E0001F4B1A6802F02852B2F1285FF9D14822D6 -:1084F0009A614FF48862DA6140221A621F4ADA6494 -:108500001F4A1A651F4A5A651F4A9A6532231F4A35 -:108510001360136803F00F03022BFAD1104A13699A -:1085200043F003031361136903F03803182BFAD1E6 -:108530004FF00050FFF7DEFE4FF08040FFF7DAFE0D -:108540004FF00040BDE80840FFF7D4BE0080005166 -:10855000004502580048025800C000F00400000125 -:10856000004402580000FF0100889008322060009B -:1085700063020901470E0508DD0BBF012000002042 -:10858000000001100910E00000010110002000525D -:108590004FF0B04208B5D2F8883003F00103C2F8BA -:1085A000883023B1044A13680BB150689847BDE87E -:1085B0000840FFF7B1B800BFB46600204FF0B042EA -:1085C00008B5D2F8883003F00203C2F8883023B12E -:1085D000044A93680BB1D0689847BDE80840FFF79C -:1085E0009BB800BFB46600204FF0B04208B5D2F887 -:1085F000883003F00403C2F8883023B1044A1369B9 -:108600000BB150699847BDE80840FFF785B800BF37 +:10750000BFF36F8F7047C3F870022030F4E700BFFD +:1075100000ED00E0114BDA6952021ED59A69D007DE +:1075200004D50F4A9A6002F144329A600B4BDA6933 +:10753000D107FCD41A6A22F480021A629A6942F0D6 +:1075400002029A61DA69D207FCD49A6942F0010218 +:107550009A61024AD369DB07FCD4704700200052CD +:107560003B2A190870B5054616460C460120102125 +:10757000FFF76CFE286046733CB1204636B1FFF73A +:1075800061FE2B68186000B19C6070BDFFF726FE9D +:10759000F7E70000F8B50F461546044648B905F16F +:1075A0001F010126386821F01F01FFF78FFF3046C9 +:1075B000F8BD427B29463868FFF762FE0646002880 +:1075C000EDD13B686360A368AB4210D213B1206871 +:1075D000FFF740FE637B28462BB1FFF733FE2060A8 +:1075E00020B9A060E3E7FFF7F9FDF8E7A5602068A0 +:1075F00005F11F01012621F01F013860FFF766FF2A +:107600002673D4E710B5044640B10068884205D11E +:10761000606808B1FAF75EFB0023237310BD000019 +:10762000F8B50F461446054648B904F11F01012676 +:10763000386821F01F01FFF75BFF3046F8BD427B41 +:1076400021463868FFF71CFE06460028EDD1AB68DE +:10765000A34210D213B12868FFF7FCFD6B7B2046D4 +:107660002BB1FFF7EFFD286020B9A860E5E7FFF731 +:10767000B5FDF8E7AC60396819B122462868FAF719 +:1076800029FB286804F11F01012621F01F01386041 +:10769000FFF72EFF2E73D0E720B103688B4204BFA3 +:1076A0000023037370470000034B1A681AB9034A9A +:1076B000D2F8D0241A607047386500200040025884 +:1076C00008B5FFF7F1FF024B1868C0F3806008BDF2 +:1076D00038650020EFF30983054968334A6B22F0CF +:1076E00001024A6383F30988002383F311887047FA +:1076F00000EF00E0302080F3118862B60D4B0E4A97 +:10770000D96821F4E0610904090C0A430B49DA60E5 +:10771000D3F8FC2042F08072C3F8FC20084AC2F87B +:10772000B01F116841F0010111602022DA7783F85F +:107730002200704700ED00E00003FA0555CEACC50D +:10774000001000E0302310B583F311880E4B5B6806 +:1077500013F4006314D0F1EE103AEFF309844FF004 +:107760008073683CE361094BDB6B236684F3098813 +:10777000FEF796FE10B1064BA36110BD054BFBE76B +:1077800083F31188F9E700BF00ED00E000EF00E0AF +:107790002F0400083204000870B5BFF34F8FBFF309 +:1077A0006F8F1A4A0021C2F85012BFF34F8FBFF3F8 +:1077B0006F8F536943F400335361BFF34F8FBFF3AF +:1077C0006F8FC2F88410BFF34F8FD2F8803043F62A +:1077D000E074C3F3C900C3F34E335B0103EA04064C +:1077E000014646EA81750139C2F86052F9D2203B60 +:1077F00013F1200FF2D1BFF34F8F536943F480335D +:107800005361BFF34F8FBFF36F8F70BD00ED00E08A +:10781000FEE70000214B2248224A70B5904237D340 +:10782000214BC11EDA1C121A22F003028B4238BF10 +:1078300000220021FAF774FA1C4A0023C2F88430AF +:10784000BFF34F8FD2F8803043F6E074C3F3C90022 +:10785000C3F34E335B0103EA0406014646EA817531 +:107860000139C2F86C52F9D2203B13F1200FF2D14A +:10787000BFF34F8FBFF36F8FBFF34F8FBFF36F8F88 +:107880000023C2F85032BFF34F8FBFF36F8F70BD2C +:1078900053F8041B40F8041BC0E700BFCC9C000851 +:1078A00034670020346700203467002000ED00E0DA +:1078B000054B996B21EA000199631A6E22EA0002D6 +:1078C0001A661B6E704700BF0045025870B5D0E9BC +:1078D000244300224FF0FF359E6804EB4213510110 +:1078E000D3F80009002805DAD3F8000940F08040F9 +:1078F000C3F80009D3F8000B002805DAD3F8000B11 +:1079000040F08040C3F8000B013263189642C3F880 +:107910000859C3F8085BE0D24FF00113C4F81C38D3 +:1079200070BD0000890141F02001016103699B06DF +:10793000FCD41220FEF7FEBD10B50A4C2046FEF71F +:1079400099FA094BC4F89030084BC4F89430084CAD +:107950002046FEF78FFA074BC4F89030064BC4F868 +:10796000943010BD3C65002000000840049C0008D5 +:10797000D865002000000440109C000870B5037812 +:107980000546012B58D13F4BD0F89040984254D136 +:107990003D4B0E2165209A6B42F000629A631A6E8D +:1079A00042F000621A661B6E384BD3F8802042F01A +:1079B0000062C3F88020D3F8802022F00062C3F870 +:1079C0008020D3F88030FDF799FC314BE360314BD8 +:1079D000C4F800380023D5F89060C4F8003EC023F6 +:1079E00023604FF40413A3633369002BFCDA0123F3 +:1079F0000C203361FEF79EFD3369DB07FCD41220B7 +:107A0000FEF798FD3369002BFCDA00262846A660B5 +:107A1000FFF75CFF6B68C4F81068DB68C4F8146893 +:107A2000C4F81C6863BB1C4BA3614FF0FF33636158 +:107A3000A36843F00103A36070BD184B9842C9D1FD +:107A4000114B4FF080609A6B42F000729A631A6E8D +:107A500042F000721A661B6E0C4BD3F8802042F085 +:107A60000072C3F88020D3F8802022F00072C3F89F +:107A70008020D3F88030FFF71BFF0E214D20A2E7B6 +:107A8000074BD1E73C6500200045025800440258EE +:107A90004014004003002002003C30C0D8650020A4 +:107AA000083C30C0F8B5D0F89040054600214FF0B2 +:107AB00000662046FFF736FFD5F8941000234FF0FC +:107AC00001128F684FF0FF30C4F83438C4F81C2816 +:107AD00004EB431201339F42C2F80069C2F8006B05 +:107AE000C2F80809C2F8080BF2D20B68D5F890204A +:107AF000C5F89830636210231361166916F01006FA +:107B0000FBD11220FEF716FDD4F8003823F4FE63F3 +:107B1000C4F80038A36943F4402343F01003A36181 +:107B20000923C4F81038C4F814380B4BEB604FF03D +:107B3000C043C4F8103B094BC4F8003BC4F81069BB +:107B4000C4F80039D5F8983003F1100243F48013DB +:107B5000C5F89820A362F8BDE09B000840800010A3 +:107B6000D0F8902090F88A10D2F8003823F4FE6301 +:107B700043EA0113C2F80038704700002DE9F843CA +:107B800000EB8103D0F890500C468046DA680FFA7B +:107B900081F94801166806F00306731E022B05EBF7 +:107BA00041134FF0000194BFB604384EC3F8101BC8 +:107BB0004FF0010104F1100398BF06F1805601FA5D +:107BC00003F3916998BF06F5004600293AD0578A19 +:107BD00004F15801374349016F50D5F81C180B4385 +:107BE0000021C5F81C382B180127C3F81019A7402D +:107BF0005369611E9BB3138A928B9B08012A88BF2D +:107C00005343D8F89820981842EA034301F1400200 +:107C10002146C8F89800284605EB82025360FFF71A +:107C200081FE08EB8900C3681B8A43EA8453483409 +:107C30001E4364012E51D5F81C381F43C5F81C782B +:107C4000BDE8F88305EB4917D7F8001B21F4004184 +:107C5000C7F8001BD5F81C1821EA0303C0E704F19C +:107C60003F030B4A2846214605EB83035A60FFF782 +:107C700059FE05EB4910D0F8003923F40043C0F851 +:107C80000039D5F81C3823EA0707D7E70080001031 +:107C900000040002D0F894201268C0F89820FFF782 +:107CA00015BE00005831D0F8903049015B5813F4EC +:107CB000004004D013F4001F0CBF022001207047C5 +:107CC0004831D0F8903049015B5813F4004004D09B +:107CD00013F4001F0CBF02200120704700EB81014C +:107CE000CB68196A0B6813604B68536070470000DB +:107CF00000EB810330B5DD68AA691368D36019B958 +:107D0000402B84BF402313606B8A1468D0F8902006 +:107D10001C4402EB4110013C09B2B4FBF3F4634391 +:107D2000033323F0030343EAC44343F0C043C0F8E2 +:107D3000103B2B6803F00303012B0ED1D2F8083857 +:107D400002EB411013F4807FD0F8003B14BF43F0E6 +:107D5000805343F00053C0F8003B02EB4112D2F8CD +:107D6000003B43F00443C2F8003B30BD2DE9F04135 +:107D7000D0F8906005460C4606EB4113D3F8087B1B +:107D80003A07C3F8087B08D5D6F814381B0704D582 +:107D900000EB8103DB685B689847FA071FD5D6F8CC +:107DA0001438DB071BD505EB8403D968CCB98B6984 +:107DB000488A5A68B2FBF0F600FB16228AB91868A6 +:107DC000DA6890420DD2121AC3E90024302383F3FB +:107DD000118821462846FFF78BFF84F31188BDE800 +:107DE000F081012303FA04F26B8923EA02036B8119 +:107DF000CB68002BF3D021462846BDE8F041184758 +:107E000000EB81034A0170B5DD68D0F890306C69F1 +:107E10002668E66056BB1A444FF40020C2F81009E9 +:107E20002A6802F00302012A0AB20ED1D3F8080828 +:107E300003EB421410F4807FD4F8000914BF40F023 +:107E4000805040F00050C4F8000903EB4212D2F811 +:107E5000000940F00440C2F800090122D3F83408B8 +:107E600002FA01F10143C3F8341870BD19B9402E6C +:107E700084BF4020206020681A442E8A8419013C67 +:107E8000B4FBF6F440EAC44040F00050C6E70000FE +:107E90002DE9F843D0F8906005460C464F0106EBFB +:107EA0004113D3F8088918F0010FC3F808891CD0D2 +:107EB000D6F81038DB0718D500EB8103D3F80CC0D7 +:107EC000DCF81430D3F800E0DA68964530D2A2EB43 +:107ED0000E024FF000091A60C3F80490302383F3B8 +:107EE0001188FFF78DFF89F3118818F0800F1DD0DE +:107EF000D6F834380126A640334217D005EB840368 +:107F00000134D5F89050D3F80CC0E4B22F44DCF81B +:107F1000142005EB0434D2F800E05168714514D305 +:107F2000D5F8343823EA0606C5F83468BDE8F88386 +:107F3000012303FA01F2038923EA02030381DCF837 +:107F40000830002BD1D09847CFE7AEEB0103BCF847 +:107F50001000834228BF0346D7F8180980B2B3EB5C +:107F6000800FE3D89068A0F1040959F8048FC4F891 +:107F70000080A0EB09089844B8F1040FF5D8184424 +:107F80000B4490605360C8E72DE9F84FD0F890504B +:107F900004466E69AB691E4016F480586E6103D0CA +:107FA000BDE8F84FFDF7D6BF002E12DAD5F8003E37 +:107FB0009B0705D0D5F8003E23F00303C5F8003E2B +:107FC000D5F80438204623F00103C5F80438FDF73E +:107FD000EFFF370505D52046FFF778FC2046FDF773 +:107FE000D5FFB0040CD5D5F8083813F0060FEB68B0 +:107FF00023F470530CBF43F4105343F4A053EB60CD +:1080000031071BD56368DB681BB9AB6923F0080334 +:10801000AB612378052B0CD1D5F8003E9A0705D02B +:10802000D5F8003E23F00303C5F8003E2046FDF7D7 +:10803000BFFF6368DB680BB120469847F30200F18D +:10804000BA80B70226D5D4F8909000274FF0010AE5 +:1080500009EB4712D2F8003B03F44023B3F5802F1D +:1080600011D1D2F8003B002B0DDA62890AFA07F32E +:1080700022EA0303638104EB8703DB68DB6813B147 +:108080003946204698470137D4F89430FFB29B68B0 +:108090009F42DDD9F00619D5D4F89000026AC2F3E8 +:1080A0000A1702F00F0302F4F012B2F5802F00F06D +:1080B000CA80B2F5402F09D104EB8303002200F5FA +:1080C0008050DB681B6A974240F0B0803003D5F8DF +:1080D000185835D5E90303D500212046FFF746FEA1 +:1080E000AA0303D501212046FFF740FE6B0303D509 +:1080F00002212046FFF73AFE2F0303D50321204635 +:10810000FFF734FEE80203D504212046FFF72EFED8 +:10811000A90203D505212046FFF728FE6A0203D5F0 +:1081200006212046FFF722FE2B0203D50721204619 +:10813000FFF71CFEEF0103D508212046FFF716FECE +:10814000700340F1A780E90703D500212046FFF71F +:108150009FFEAA0703D501212046FFF799FE6B0772 +:1081600003D502212046FFF793FE2F0703D50321F5 +:108170002046FFF78DFEEE0603D504212046FFF7CB +:1081800087FEA80603D505212046FFF781FE690674 +:1081900003D506212046FFF77BFE2A0603D50721DB +:1081A0002046FFF775FEEB0574D520460821BDE893 +:1081B000F84FFFF76DBED4F890904FF0000B4FF0E2 +:1081C000010AD4F894305FFA8BF79B689F423FF620 +:1081D00038AF09EB4713D3F8002902F44022B2F577 +:1081E000802F20D1D3F80029002A1CDAD3F80029E7 +:1081F00042F09042C3F80029D3F80029002AFBDBA3 +:108200003946D4F89000FFF78DFB22890AFA07F36C +:1082100022EA0303238104EB8703DB689B6813B125 +:108220003946204698470BF1010BCAE7910701D167 +:10823000D0F80080072A02F101029CBF03F8018BED +:108240004FEA18283FE704EB830300F58050DA6813 +:10825000D2F818C0DCF80820DCE9001CA1EB0C0CFB +:1082600000218F4208D1DB689B699A683A449A6082 +:108270005A683A445A6029E711F0030F01D1D0F847 +:1082800000808C4501F1010184BF02F8018B4FEAA7 +:108290001828E6E7BDE8F88F08B50348FFF774FE35 +:1082A000BDE80840FFF74EBA3C65002008B503481A +:1082B000FFF76AFEBDE80840FFF744BAD865002022 +:1082C000D0F8903003EB4111D1F8003B43F4001398 +:1082D000C1F8003B70470000D0F8903003EB41112B +:1082E000D1F8003943F40013C1F800397047000099 +:1082F000D0F8903003EB4111D1F8003B23F4001388 +:10830000C1F8003B70470000D0F8903003EB4111FA +:10831000D1F8003923F40013C1F800397047000088 +:10832000044BDA6B0243DA635A6E104358665B6E95 +:10833000704700BF0045025808B53C4B4FF0FF3175 +:10834000D3F8802062F00042C3F88020D3F8802068 +:1083500002F00042C3F88020D3F88020D3F88420B4 +:10836000C3F88410D3F884200022C3F88420D3F803 +:108370008400D86F40F0FF4040F4FF0040F4DF403D +:1083800040F07F00D867D86F20F0FF4020F4FF0056 +:1083900020F4DF4020F07F00D867D86FD3F8880042 +:1083A0006FEA40506FEA5050C3F88800D3F8880055 +:1083B000C0F30A00C3F88800D3F88800D3F890000F +:1083C000C3F89010D3F89000C3F89020D3F8900031 +:1083D000D3F89400C3F89410D3F89400C3F8942011 +:1083E000D3F89400D3F89800C3F89810D3F8980005 +:1083F000C3F89820D3F89800D3F88C00C3F88C10F9 +:10840000D3F88C00C3F88C20D3F88C00D3F89C00F0 +:10841000C3F89C10D3F89C10C3F89C20D3F89C3070 +:10842000FCF73AFABDE8084000F0D2B9004402581F +:1084300008B50122504BC3F80821504B5A6D42F049 +:1084400002025A65DA6F42F00202DA670422DB6F39 +:108450004B4BDA605A689104FCD54A4A1A600122F3 +:108460009A60494ADA6000221A614FF440429A61E8 +:10847000434B9A699204FCD51A6842F480721A60E0 +:10848000424B1A6F12F4407F04D04FF480321A67C7 +:1084900000221A671A6842F001021A603B4B1A6800 +:1084A0005007FCD500221A611A6912F03802FBD17C +:1084B000012119604FF0804159605A67344ADA62ED +:1084C000344A1A611A6842F480321A602F4B1A68D3 +:1084D0009103FCD51A6842F480521A601A6892041B +:1084E000FCD52D4A2D499A6200225A63196301F581 +:1084F0007C01DA6301F5E77199635A64284A1A64CA +:10850000284ADA621A6842F0A8521A601F4B1A68A9 +:1085100002F02852B2F1285FF9D148229A614FF453 +:108520008862DA6140221A621F4ADA641F4A1A65B9 +:108530001F4A5A651F4A9A6532231F4A13601368FF +:1085400003F00F03022BFAD1104A136943F003031F +:108550001361136903F03803182BFAD14FF0005060 +:10856000FFF7DEFE4FF08040FFF7DAFE4FF00040ED +:10857000BDE80840FFF7D4BE008000510045025816 +:108580000048025800C000F00400000100440258F6 +:108590000000FF010088900832206000630209019A +:1085A000470E0508DD0BBF01200000200000011070 +:1085B0000910E00000010110002000524FF0B0420D +:1085C00008B5D2F8883003F00103C2F8883023B12F +:1085D000044A13680BB150689847BDE80840FFF79C +:1085E000B1B800BFB46600204FF0B04208B5D2F871 +:1085F000883003F00203C2F8883023B1044A93683C +:108600000BB1D0689847BDE80840FFF79BB800BFA2 :10861000B46600204FF0B04208B5D2F8883003F0BD -:108620000803C2F8883023B1044A93690BB1D069BA -:108630009847BDE80840FFF76FB800BFB466002058 -:108640004FF0B04208B5D2F8883003F01003C2F8FA -:10865000883023B1044A136A0BB1506A9847BDE8C9 -:108660000840FFF759B800BFB46600204FF0B04390 -:1086700010B5D3F8884004F47872C3F88820A306B4 -:1086800004D5124A936A0BB1D06A9847600604D5A4 -:108690000E4A136B0BB1506B9847210604D50B4A59 -:1086A000936B0BB1D06B9847E20504D5074A136C66 -:1086B0000BB1506C9847A30504D5044A936C0BB1D9 -:1086C000D06C9847BDE81040FFF726B8B46600208C -:1086D0004FF0B04310B5D3F8884004F47C42C3F89F -:1086E0008820620504D5164A136D0BB1506D98476A -:1086F000230504D5124A936D0BB1D06D9847E00461 -:1087000004D50F4A136E0BB1506E9847A10404D5DF -:108710000B4A936E0BB1D06E9847620404D5084A99 -:10872000136F0BB1506F9847230404D5044A936F1D -:108730000BB1D06F9847BDE81040FEF7EDBF00BF0A -:10874000B466002008B50348FCF74CFCBDE80840BF -:10875000FEF7E2BFC836002008B50348FCF742FD2B -:10876000BDE80840FEF7D8BF2039002008B503480F -:10877000FCF738FDBDE80840FEF7CEBF8C3900207D -:1087800008B50348FCF72EFDBDE80840FEF7C4BF5E -:10879000F839002008B500F0B7FCBDE80840FEF746 -:1087A000BBBF0000062108B50846FCF7A1FD062165 -:1087B0000720FCF79DFD06210820FCF799FD062106 -:1087C0000920FCF795FD06210A20FCF791FD062102 -:1087D0001720FCF78DFD06212820FCF789FD0921D3 -:1087E0007A20FCF785FD09213120FCF781FD072166 -:1087F0003220FCF77DFD0C212620FCF779FD0C21B1 -:108800002720FCF775FD0C215220BDE80840FCF73D -:108810006FBD000008B5FFF779FD00F043FCFDF7E0 -:1088200047F9FDF7E5F8FDF71DFBFDF7EFF9FEF75A -:10883000C5F9BDE8084000F029BA000030B504339E -:10884000039C0172002104FB0325C160C0E90653AB -:10885000049B0363059BC0E90000C0E90422C0E952 -:108860000842C0E90A11436330BD00000022416A9A -:10887000C260C0E90411C0E90A226FF00101FDF7EE -:10888000FFBE0000D0E90432934201D1C2680AB9A8 -:10889000181D704700207047036919600021C268E5 -:1088A0000132C260C269134482699342036124BFEA -:1088B000436A0361FDF7D8BE38B504460D46E36848 -:1088C0003BB162690020131D1268A3621344E36286 -:1088D00007E0237A33B929462046FDF7B5FE002884 -:1088E000EDDA38BD6FF00100FBE70000C368C26934 -:1088F000013BC3604369134482699342436124BFCF -:10890000436A436100238362036B03B118477047D6 -:1089100070B53023044683F31188866A3EB9FFF7A9 -:10892000CBFF054618B186F31188284670BDA36AAF -:10893000E26A13F8015B9342A36202D32046FFF779 -:10894000D5FF002383F31188EFE700002DE9F84FEE -:1089500004460E46174698464FF0300989F31188B1 -:108960000025AA46D4F828B0BBF1000F09D1414632 -:108970002046FFF7A1FF20B18BF311882846BDE800 -:10898000F88FD4E90A12A7EB050B521A934528BFBA -:108990009346BBF1400F1BD9334601F1400251F819 -:1089A000040B914243F8040BF9D1A36A40364035D9 -:1089B0004033A362D4E90A239A4202D32046FFF748 -:1089C00095FF8AF31188BD42D8D289F31188C9E78F -:1089D00030465A46F9F77EF9A36A5E445D445B442B -:1089E000A362E7E710B5029C0433017203FB042184 -:1089F000C460C0E906130023C0E90A33039B036384 -:108A0000049BC0E90000C0E90422C0E908424363B6 -:108A100010BD0000026A6FF00101C260426AC0E945 -:108A200004220022C0E90A22FDF72ABED0E904236D -:108A30009A4201D1C26822B9184650F8043B0B6033 -:108A4000704700231846FAE7C3680021C269013362 -:108A5000C3604369134482699342436124BF436AFC -:108A60004361FDF701BE000038B504460D46E368DA -:108A70003BB1236900201A1DA262E2691344E3623C -:108A800007E0237A33B929462046FDF7DDFD0028AB -:108A9000EDDA38BD6FF00100FBE7000003691960F3 -:108AA000C268013AC260C269134482699342036199 -:108AB00024BF436A036100238362036B03B1184739 -:108AC0007047000070B530230D460446114683F30D -:108AD0001188866A2EB9FFF7C7FF10B186F3118897 -:108AE00070BDA36A1D70A36AE26A01339342A36258 -:108AF00004D3E16920460439FFF7D0FF002080F35A -:108B00001188EDE72DE9F84F04460D469046994649 -:108B10004FF0300A8AF311880026B346A76A4FB98E -:108B200049462046FFF7A0FF20B187F31188304661 -:108B3000BDE8F88FD4E90A073A1AA8EB060797426E -:108B400028BF1746402F1BD905F1400355F8042BC9 -:108B50009D4240F8042BF9D1A36A40364033A3620A -:108B6000D4E90A239A4204D3E16920460439FFF785 -:108B700095FF8BF311884645D9D28AF31188CDE74A -:108B800029463A46F9F7A6F8A36A3D443E443B44D9 -:108B9000A362E5E7D0E904239A4217D1C3689BB1E9 -:108BA000836A8BB1043B9B1A0ED01360C368013BF0 -:108BB000C360C3691A4483699A42026124BF436A4D -:108BC0000361002383620123184670470023FBE7FB -:108BD00001F01F03F0B502F01F0456095A1C0123CF -:108BE000B6EB511F50F8265003FA02F34FEA511723 -:108BF00003F1FF333DBF50F82720C4F1200013409C -:108C000003EA05003BBF03FA00F225FA04F0E04056 -:108C10001043F0BD70B57E227F210546FFF7D8FFD7 -:108C200018B1012819D0002070BD3E2249212846E4 -:108C3000FFF7CEFF2F22044631212846FFF7C8FF59 -:108C4000064601345022023653212846B440FFF72D -:108C5000BFFF093804FA00F0E6E730224521284634 -:108C6000FFF7B6FF01308002DEE7000090F8D63053 -:108C700090F8D7201B0403EB026390F8D42090F8FF -:108C8000D500134403EB00207047000000F018BA31 -:108C9000014B586A704700BF000C0040034B002294 -:108CA00058631A610222DA60704700BF000C00406E -:108CB000014B0022DA607047000C0040014B586302 -:108CC000704700BF000C0040024B034A1A60034A81 -:108CD0005A6070478C660020386700200000022030 -:108CE000074B494210B55C68201A08401968821A7F -:108CF0008A4203D3A24201D85A6010BD0020FCE78B -:108D00008C66002008B5302383F31188FFF7E8FF55 -:108D1000002383F3118808BD0448054B036000233A -:108D2000C0E901330C3000F017B900BF9466002091 -:108D3000058D0008CB1D083A23F00703591A521A73 -:108D400010B4D2080024C0E9004384600C301C60D9 -:108D50005A605DF8044B00F0FFB800002DE9F74FB2 -:108D6000364FCD1D8846002818BF0746082A4FEA0F -:108D7000D50538BF082207F10C003C1D9146019033 -:108D800000F02CF9019809F10701C9F1000E224603 -:108D9000246864B900F02CF93B68CBB3082249463B -:108DA000E8009847044698B340E9027830E004EBC5 -:108DB000010CD4F804A00CEA0E0C0AF10106ACF187 -:108DC000080304EBC6069E42E1D9A6EB0C0CB5EBFA -:108DD000EC0F4FEAEC0BDAD89C421DD204F10802EA -:108DE000AB45A3EB02024FEAE202626009D9691CBB -:108DF000ED4303EBC1025D445560256843F83150F3 -:108E000022601C46C3F8048044F8087B00F0F0F8A8 -:108E1000204603B0BDE8F08FAA45216802D1116059 -:108E20002346EEE7013504EBC50344F8351003F1A2 -:108E30000801761AF6105E601360F1E79466002070 -:108E400073B50446A0F1080550F8080C54F8043C2A -:108E5000061D0C3007330190DB0844F8043C00F099 -:108E6000BDF8334601989E421A6801D0AB4228D221 -:108E70000AB1954225D244F8082C54F8042C1D6000 -:108E8000013254F8081C05EBC206B14206D14E6807 -:108E9000324444F8042C0A6844F8082C5E68711CBB -:108EA00003EBC1018D4207D154F8042C0132324446 -:108EB0005A6054F8082C1A6002B0BDE8704000F007 -:108EC00097B81346CFE70000FEE7000070B51E4BD1 -:108ED0000025044686B058600E4605638163FEF7A0 -:108EE000F3FB04F12803A5606563C4E90A3304F1C8 -:108EF0001003C4E904334FF0FF33C4E90044C4E96C -:108F00000635FFF7C5FE2B46024604F13C0120461C -:108F1000C4E9082380230D4A6567FDF70FFB7368DA -:108F2000E0600B4A03620123009280F82430684617 -:108F3000F26801923269CDE90223064BCDE904358E -:108F4000FDF730FB06B070BD10490020F89B00080B -:108F5000F09B0008C98E00080023C0E90000836070 -:108F60000361704770B51C4B05468468DE685CB3CE -:108F7000B44213D103690133036170BDA36094F857 -:108F8000243083B1062B15D1A06A2146D4E90032E2 -:108F900013605A60FDF73EFAA36A9C68B368A26842 -:108FA0009A42EBD306E0D4E90032204613605A60BF -:108FB000FDF740FA28463146FDF72CFAB562062047 -:108FC000BDE87040FDF738BA03698660013303617C -:108FD000336BC3603063D0E76846002008B53023A8 -:108FE00083F31188FFF7BEFF002383F3118808BDC8 -:108FF000194BD96883688B4210B520D1302383F395 -:1090000011880269013A0261B2B90468C368A042DA -:109010000B631ED04A6B9BB901238A60036103680E -:109020001A68026050601A6B8360C2601863184649 -:10903000FDF700FAFDF750FA002383F3118810BD05 -:109040001C68A34203D0A468A24238BF2246DB6852 -:10905000E1E78260F0E700BF68460020024A536BF8 -:1090600018435063704700BF6846002038B5EFF3DF -:1090700011859DB9EFF30584C4F30804302334B19E -:1090800083F31188FDF734FC85F3118838BD83F331 -:109090001188FDF72DFC84F3118838BDBDE83840F8 -:1090A000FDF726BC0023054A19460133102BC2E9FF -:1090B000001102F10802F8D1704700BFB466002029 -:1090C0000E4B9A6C42F008029A641A6F42F0080242 -:1090D0001A670B4A1B6FD36B43F00803D363C72295 -:1090E000084B9A624FF0FF32DA6200229A615A63AB -:1090F000DA605A6001225A611A60704700450258CE -:109100000010005C000C0040094A08B51169D368E2 -:109110000B40D9B29B076FEA0101116107D53023DB -:1091200083F31188FDF7FEF9002383F3118808BD4E -:10913000000C004010B501390244904201D10020DA -:1091400005E0037811F8014FA34201D0181B10BDB0 -:109150000130F2E7884210B501EB020402D98442E3 -:10916000234607D8431EA14208D011F8012B03F86B -:10917000012FF8E7024401468A4200D110BD13F8DE -:10918000014D02F8014DF7E7C9B2034610F8012B73 -:109190001AB18A42F9D118467047002918BF002336 -:1091A000F9E70000034611F8012B03F8012B002A10 -:1091B000F9D1704710B50139034632B111F8014FAA -:1091C00003F8014B013A002CF7D11A4400219342D5 -:1091D00000D110BD03F8011BF9E700004D44350034 -:1091E0002D2D0A002F6172647570696C6F742E6189 -:1091F00062696E002F6172647570696C6F742D7690 -:1092000065726966792E6162696E002F617264759C -:1092100070696C6F742D666C6173682E6162696E23 -:10922000002F6172647570696C6F742D666C617368 -:109230006865642E6162696E000000000000000035 -:1092400000000000ED0E0008890F00083911000829 -:10925000C10F0008810F000800000000000000009E -:10926000E90E0008950F000871110008E50E0008CE -:10927000F10E000853544D333248373F3F3F0053FF -:10928000544D3332483733782F3732780053544DAA -:109290003332483734332F3735332F3735300000EA -:1092A00001105A00031059000120580003205600F5 -:1092B0002F0000005375636365737366756C6C797A -:1092C000206D6F756E746564205344436172642031 -:1092D00028736C6F77646F776E3D2575290A0000DF -:1092E000EB769045584641542020200046415433A7 -:1092F00032202020000000002A3A3C3E7C223F7FA2 -:10930000002B2C3B3D5B5D004355454141414143B2 -:1093100045454549494941414592924F4F4F555521 -:10932000594F554F9C4F9E9F41494F55A5A5A6A704 -:10933000A8A9AAABACADAEAFB0B1B2B3B441414194 -:10934000B8B9BABBBCBDBEBFC0C1C2C3C4C5414130 -:10935000C8C9CACBCCCDCECFD1D145454549494965 -:1093600049D9DADBDCDD49DF4FE14F4F4F4FE6E80B -:10937000E85555555959EEEFF0F1F2F3F4F5F6F7DB -:10938000F8F9FAFBFCFDFEFF01030507090E1012B8 -:109390001416181C1E00000061001A03E0001703D9 -:1093A000F8000703FF0001007801000130013201DD -:1093B0000601390110014A012E01790106018001DF -:1093C0004D004302810182018201840184018601F2 -:1093D0008701870189018A018B018B018D018E0133 -:1093E0008F0190019101910193019401F601960181 -:1093F0009701980198013D029B019C019D0120026B -:109400009F01A001A001A201A201A401A401A60143 -:10941000A701A701A901AA01AB01AC01AC01AE01F2 -:10942000AF01AF01B101B201B301B301B501B501A3 -:10943000B701B801B801BA01BB01BC01BC01BE0152 -:10944000F701C001C101C201C301C401C501C401CA -:10945000C701C801C701CA01CB01CA01CD01100172 -:10946000DD0101008E01DE011201F3010300F101B3 -:10947000F401F401F8012801220212013A02090064 -:10948000652C3B023B023D02662C3F02400241023A -:10949000410246020A015302400081018601550241 -:1094A00089018A0158028F015A0290015C025D0213 -:1094B0005E025F029301610262029401640265022E -:1094C00066026702970196016A02622C6C026D02C5 -:1094D0006E029C01700271029D01730274029F0171 -:1094E00076027702780279027A027B027C02642C8F -:1094F0007E027F02A60181028202A9018402850206 -:1095000086028702AE014402B101B20145028D021A -:109510008E028F0290029102B7017B030300FD03CC -:10952000FE03FF03AC0304008603880389038A0358 -:10953000B1031103C2030200A303A303C40308037E -:10954000CC0303008C038E038F03D8031801F203AE -:109550000A00F903F303F403F503F603F703F70333 -:10956000F903FA03FA0330042003500410076004DF -:1095700022018A043601C1040E01CF040100C00497 -:10958000D004440161052604000000007D1D010097 -:10959000632C001E9601A01E5A01001F0806101F12 -:1095A0000606201F0806301F0806401F0606511F2A -:1095B0000700591F521F5B1F541F5D1F561F5F1F5F -:1095C000601F0806701F0E00BA1FBB1FC81FC91FEF -:1095D000CA1FCB1FDA1FDB1FF81FF91FEA1FEB1F83 -:1095E000FA1FFB1F801F0806901F0806A01F080611 -:1095F000B01F0400B81FB91FB21FBC1FCC1F010051 -:10960000C31FD01F0206E01F0206E51F0100EC1F6A -:10961000F31F0100FC1F4E210100322170211002B6 -:10962000842101008321D0241A05302C2F04602CC2 -:109630000201672C0601752C0201802C6401002DAB -:10964000260841FF1A030000C700FC00E900E20001 -:10965000E400E000E500E700EA00EB00E800EF00CE -:10966000EE00EC00C400C500C900E600C600F4002E -:10967000F600F200FB00F900FF00D600DC00F80065 -:10968000A300D800D7009201E100ED00F300FA003A -:10969000F100D100AA00BA00BF00AE00AC00BD00CE -:1096A000BC00A100AB00BB009125922593250225AB -:1096B0002425C100C200C000A900632551255725FB -:1096C0005D25A200A5001025142534252C251C2578 -:1096D00000253C25E300C3005A255425692566254D -:1096E000602550256C25A400F000D000CA00CB00F6 -:1096F000C8003101CD00CE00CF0018250C258825EB -:109700008425A600CC008025D300DF00D400D20041 -:10971000F500D500B500FE00DE00DA00DB00D90060 -:10972000FD00DD00AF00B400AD00B1001720BE00A9 -:10973000B600A700F700B800B000A800B700B90055 -:10974000B300B200A025A0001000024008000240B3 -:109750000008024000000B00280002400800024000 -:109760000408024006010C004000024008000240CC -:109770000808024010020D00580002400800024094 -:109780000C08024016030E00700002400C0002405C -:109790001008024000040F00880002400C00024044 -:1097A0001408024006051000A00002400C00024010 -:1097B0001808024010061100B80002400C000240D8 -:1097C0001C08024016072F00100402400804024043 -:1097D0002008024000083800280402400804024023 -:1097E00024080240060939004004024008040240EF -:1097F00028080240100A3A005804024008040240B7 -:109800002C080240160B3B00700402400C0402407E -:1098100030080240000C3C00880402400C04024066 -:1098200034080240060D4400A00402400C0402402B -:1098300038080240100E4500B80402400C040240F3 -:109840003C080240160F4600010000000000000026 -:109850000096000000000000000000000000000072 -:10986000000000000000000000000000B56B0008D0 -:10987000B96B000885560008BD5900081956000844 -:109880004156000869560008015600080000000013 -:10989000715A00085D5A0008995A0008855A000854 -:1098A000915A00087D5A0008695A0008555A000864 -:1098B000A55A000800000000895B0008755B0008DD -:1098C000B15B00089D5B0008A95B0008955B000880 -:1098D000815B00086D5B0008BD5B000800000000B4 -:1098E000010000000000000063300000E89800085C -:1098F0000000000000000000E046002010490020A9 -:109900000000812A00000000AAAAAAAA00000024E0 -:10991000FFFE00000000000000A00A00000100009F -:1099200000000000AAAAAAAA00000000FFFF000091 -:1099300000000000000000001400AA560000000013 -:10994000AAAAAAAA14005554FFFF000000000000B4 -:10995000CCCC0C0020681A0000000000AAAA8AAA39 -:1099600010541500FFFF0000000C70077700000086 -:109970004081020100100000AAAAAAAA0041010029 -:10998000F7FF00000000007007000000000000006A -:1099900000000000AAAAAAAA00000000FFFF000021 -:1099A00000000000000000000000000000000000B7 -:1099B000AAAAAAAA00000000FFFF00000000000001 -:1099C000000000000000000000000000AAAAAAAAEF -:1099D00000000000FFFF0000000000000000000089 -:1099E0000000000000000000AAAAAAAA00000000CF -:1099F000FFFF000000000000000000000000000069 -:109A000000000000AAAAAAAA00000000FFFF0000B0 -:109A10000000000000000000000000000000000046 -:109A2000AAAAAAAA00000000FFFF00000000000090 -:109A3000000000004375626550696C6F74004375E7 -:109A400062654F72616E67652B2D424C0025534550 -:109A50005249414C250000000200000000000000B7 -:109A6000A95D0008195E000840004000C0610020A8 -:109A7000D061002002000000000000000300000090 -:109A800000000000615E00080000000010000000FF -:109A9000E061002000000000010000000000000064 -:109AA0003C65002001010200B16C0008C16B000898 -:109AB0005D6C0008416C000843000000C09A00087B -:109AC00009024300020100C0320904000001020241 -:109AD00001000524001001052401000104240202F4 -:109AE0000524060001070582030800FF09040100A0 -:109AF000020A00000007050102400000070581027C -:109B000040000000120000000C9B00081201100130 -:109B100002000040AE2D58100002010203010000B7 -:109B20000403090425424F415244250043756265F0 -:109B30004F72616E6765506C75732D626473686FE8 -:109B4000740030313233343536373839414243448A -:109B50004546000000000020000002000200000056 -:109B60000000003000000400080000000000002495 -:109B700000000800040000000004000000FC0000D9 -:109B80000200000000000430008000000800000017 -:109B90000000003800000100010000001F1C1F1E13 -:109BA0001F1E1F1F1E1F1E1F1F1D1F1E1F1E1F1FCC -:109BB0001E1F1E1F00000000BD5F00087562000828 -:109BC0002163000840004000746600207466002095 -:109BD00001000000846600208000000040010000B9 -:109BE0000800000000010000001000000800000054 -:109BF00069646C65000000006D61696E002C0438BA -:109C0000040438080C10141C202425260000000031 -:109C1000000064040100040000000000000C0010BB -:109C2000283034004468FF7F01000000000000007D -:109C3000270400000000000000001E0000000000DB -:109C4000FF00000018490020203900208C39002036 -:109C5000F83900200000000074920008830400001E -:109C60007F920008500400008D920008010000005F -:109C700000000000009600000000080096000000B0 -:109C80000008000004000000209B00080000000005 -:109C900000000000000000000000000000000000C4 -:049CA00000000000C0 +:108620000403C2F8883023B1044A13690BB15069BE +:108630009847BDE80840FFF785B800BFB466002042 +:108640004FF0B04208B5D2F8883003F00803C2F802 +:10865000883023B1044A93690BB1D0699847BDE8CB +:108660000840FFF76FB800BFB46600204FF0B0427B +:1086700008B5D2F8883003F01003C2F8883023B16F +:10868000044A136A0BB1506A9847BDE80840FFF7E7 +:1086900059B800BFB46600204FF0B04310B5D3F80E +:1086A000884004F47872C3F88820A30604D5124ADF +:1086B000936A0BB1D06A9847600604D50E4A136BD3 +:1086C0000BB1506B9847210604D50B4A936B0BB145 +:1086D000D06B9847E20504D5074A136C0BB1506C78 +:1086E0009847A30504D5044A936C0BB1D06C984706 +:1086F000BDE81040FFF726B8B46600204FF0B04345 +:1087000010B5D3F8884004F47C42C3F88820620591 +:1087100004D5164A136D0BB1506D9847230504D547 +:10872000124A936D0BB1D06D9847E00404D50F4AFF +:10873000136E0BB1506E9847A10404D50B4A936E8B +:108740000BB1D06E9847620404D5084A136F0BB181 +:10875000506F9847230404D5044A936F0BB1D06F30 +:108760009847BDE81040FEF7EDBF00BFB46600209B +:1087700008B50348FCF73CFCBDE80840FEF7E2BF43 +:10878000C836002008B50348FCF732FDBDE80840B4 +:10879000FEF7D8BF2039002008B50348FCF728FDB4 +:1087A000BDE80840FEF7CEBF8C39002008B503486D +:1087B000FCF71EFDBDE80840FEF7C4BFF8390020F5 +:1087C00008B500F0B7FCBDE80840FEF7BBBF0000ED +:1087D000062108B50846FCF791FD06210720FCF7A5 +:1087E0008DFD06210820FCF789FD06210920FCF7F4 +:1087F00085FD06210A20FCF781FD06211720FCF7E4 +:108800007DFD06212820FCF779FD09217A20FCF75F +:1088100075FD09213120FCF771FD07213220FCF79D +:108820006DFD0C212620FCF769FD0C212720FCF7AB +:1088300065FD0C215220BDE80840FCF75FBD00003B +:1088400008B5FFF779FD00F043FCFDF737F9FDF7B8 +:10885000D5F8FDF70DFBFDF7DFF9FEF79DF9BDE853 +:10886000084000F029BA000030B50433039C0172BF +:10887000002104FB0325C160C0E90653049B036388 +:10888000059BC0E90000C0E90422C0E90842C0E934 +:108890000A11436330BD00000022416AC260C0E992 +:1088A0000411C0E90A226FF00101FDF7EFBE0000DC +:1088B000D0E90432934201D1C2680AB9181D704749 +:1088C00000207047036919600021C2680132C2604C +:1088D000C269134482699342036124BF436A0361FE +:1088E000FDF7C8BE38B504460D46E3683BB1626982 +:1088F0000020131D1268A3621344E36207E0237A89 +:1089000033B929462046FDF7A5FE0028EDDA38BD2B +:108910006FF00100FBE70000C368C269013BC36060 +:108920004369134482699342436124BF436A4361AC +:1089300000238362036B03B11847704770B530237F +:10894000044683F31188866A3EB9FFF7CBFF0546DC +:1089500018B186F31188284670BDA36AE26A13F83D +:10896000015B9342A36202D32046FFF7D5FF0023A9 +:1089700083F31188EFE700002DE9F84F04460E4617 +:10898000174698464FF0300989F311880025AA460A +:10899000D4F828B0BBF1000F09D141462046FFF7BB +:1089A000A1FF20B18BF311882846BDE8F88FD4E9E8 +:1089B0000A12A7EB050B521A934528BF9346BBF149 +:1089C000400F1BD9334601F1400251F8040B91428C +:1089D00043F8040BF9D1A36A403640354033A36213 +:1089E000D4E90A239A4202D32046FFF795FF8AF37F +:1089F0001188BD42D8D289F31188C9E730465A465A +:108A0000F9F768F9A36A5E445D445B44A362E7E753 +:108A100010B5029C0433017203FB0421C460C0E959 +:108A200006130023C0E90A33039B0363049BC0E9D8 +:108A30000000C0E90422C0E90842436310BD000001 +:108A4000026A6FF00101C260426AC0E9042200229A +:108A5000C0E90A22FDF71ABED0E904239A4201D1E7 +:108A6000C26822B9184650F8043B0B6070470023D7 +:108A70001846FAE7C3680021C2690133C36043693D +:108A8000134482699342436124BF436A4361FDF703 +:108A9000F1BD000038B504460D46E3683BB12369DB +:108AA00000201A1DA262E2691344E36207E0237A00 +:108AB00033B929462046FDF7CDFD0028EDDA38BD53 +:108AC0006FF00100FBE7000003691960C268013A1A +:108AD000C260C269134482699342036124BF436A3E +:108AE000036100238362036B03B1184770470000E2 +:108AF00070B530230D460446114683F31188866A0B +:108B00002EB9FFF7C7FF10B186F3118870BDA36AB5 +:108B10001D70A36AE26A01339342A36204D3E16940 +:108B200020460439FFF7D0FF002080F31188EDE7DD +:108B30002DE9F84F04460D46904699464FF0300A0D +:108B40008AF311880026B346A76A4FB949462046E2 +:108B5000FFF7A0FF20B187F311883046BDE8F88FFA +:108B6000D4E90A073A1AA8EB0607974228BF174626 +:108B7000402F1BD905F1400355F8042B9D4240F8C6 +:108B8000042BF9D1A36A40364033A362D4E90A2307 +:108B90009A4204D3E16920460439FFF795FF8BF32D +:108BA00011884645D9D28AF31188CDE729463A463D +:108BB000F9F790F8A36A3D443E443B44A362E5E7DD +:108BC000D0E904239A4217D1C3689BB1836A8BB161 +:108BD000043B9B1A0ED01360C368013BC360C3699A +:108BE0001A4483699A42026124BF436A03610023E5 +:108BF00083620123184670470023FBE701F01F033F +:108C0000F0B502F01F0456095A1C0123B6EB511FA0 +:108C100050F8265003FA02F34FEA511703F1FF33DD +:108C20003DBF50F82720C4F12000134003EA05009F +:108C30003BBF03FA00F225FA04F0E0401043F0BD18 +:108C400070B57E227F210546FFF7D8FF18B10128B5 +:108C500019D0002070BD3E2249212846FFF7CEFFE3 +:108C60002F22044631212846FFF7C8FF064601346B +:108C70005022023653212846B440FFF7BFFF09387F +:108C800004FA00F0E6E7302245212846FFF7B6FF58 +:108C900001308002DEE7000090F8D63090F8D7204F +:108CA0001B0403EB026390F8D42090F8D500134422 +:108CB00003EB00207047000000F018BA014B586A1F +:108CC000704700BF000C0040034B002258631A613C +:108CD0000222DA60704700BF000C0040014B002206 +:108CE000DA607047000C0040014B5863704700BFCA +:108CF000000C0040024B034A1A60034A5A60704756 +:108D00008C6600203867002000000220074B494293 +:108D100010B55C68201A08401968821A8A4203D389 +:108D2000A24201D85A6010BD0020FCE78C660020EA +:108D300008B5302383F31188FFF7E8FF002383F39E +:108D4000118808BD0448054B03600023C0E90133C6 +:108D50000C3000F017B900BF94660020318D000878 +:108D6000CB1D083A23F00703591A521A10B4D2083F +:108D70000024C0E9004384600C301C605A605DF838 +:108D8000044B00F0FFB800002DE9F74F364FCD1D22 +:108D90008846002818BF0746082A4FEAD50538BF7D +:108DA000082207F10C003C1D9146019000F02CF9BF +:108DB000019809F10701C9F1000E2246246864B93F +:108DC00000F02CF93B68CBB308224946E8009847ED +:108DD000044698B340E9027830E004EB010CD4F883 +:108DE00004A00CEA0E0C0AF10106ACF1080304EB36 +:108DF000C6069E42E1D9A6EB0C0CB5EBEC0F4FEA90 +:108E0000EC0BDAD89C421DD204F10802AB45A3EB6F +:108E100002024FEAE202626009D9691CED4303EBEA +:108E2000C1025D445560256843F8315022601C46FC +:108E3000C3F8048044F8087B00F0F0F8204603B043 +:108E4000BDE8F08FAA45216802D111602346EEE704 +:108E5000013504EBC50344F8351003F10801761A17 +:108E6000F6105E601360F1E79466002073B5044667 +:108E7000A0F1080550F8080C54F8043C061D0C300D +:108E800007330190DB0844F8043C00F0BDF833469A +:108E900001989E421A6801D0AB4228D20AB195428D +:108EA00025D244F8082C54F8042C1D60013254F8E3 +:108EB000081C05EBC206B14206D14E68324444F8A4 +:108EC000042C0A6844F8082C5E68711C03EBC1018D +:108ED0008D4207D154F8042C013232445A6054F8C0 +:108EE000082C1A6002B0BDE8704000F097B8134635 +:108EF000CFE70000FEE7000070B51E4B00250446DA +:108F000086B058600E4605638163FEF7F3FB04F1FB +:108F10002803A5606563C4E90A3304F11003C4E9BA +:108F200004334FF0FF33C4E90044C4E90635FFF7CA +:108F3000C5FE2B46024604F13C012046C4E9082345 +:108F400080230D4A6567FDF7FFFA7368E0600B4AFE +:108F500003620123009280F824306846F26801928F +:108F60003269CDE90223064BCDE90435FDF720FB3C +:108F700006B070BD10490020249C00081C9C00080D +:108F8000F58E00080023C0E900008360036170478C +:108F900070B51C4B05468468DE685CB3B44213D1DF +:108FA00003690133036170BDA36094F8243083B179 +:108FB000062B15D1A06A2146D4E9003213605A600D +:108FC000FDF72EFAA36A9C68B368A2689A42EBD3B5 +:108FD00006E0D4E90032204613605A60FDF730FA0B +:108FE00028463146FDF71CFAB5620620BDE8704000 +:108FF000FDF728BA0369866001330361336BC360F0 +:109000003063D0E76846002008B5302383F3118829 +:10901000FFF7BEFF002383F3118808BD194BD96801 +:1090200083688B4210B520D1302383F31188026905 +:10903000013A0261B2B90468C368A0420B631ED052 +:109040004A6B9BB901238A60036103681A68026056 +:1090500050601A6B8360C26018631846FDF7F0F920 +:10906000FDF740FA002383F3118810BD1C68A3426A +:1090700003D0A468A24238BF2246DB68E1E78260E1 +:10908000F0E700BF68460020024A536B1843506364 +:10909000704700BF6846002038B5EFF311859DB9D1 +:1090A000EFF30584C4F30804302334B183F311884B +:1090B000FDF724FC85F3118838BD83F31188FDF793 +:1090C0001DFC84F3118838BDBDE83840FDF716BC9F +:1090D0000023054A19460133102BC2E9001102F1A1 +:1090E0000802F8D1704700BFB46600200E4B9A6C9E +:1090F00042F008029A641A6F42F008021A670B4A9B +:109100001B6FD36B43F00803D363C722084B9A62EB +:109110004FF0FF32DA6200229A615A63DA605A60D5 +:1091200001225A611A607047004502580010005C25 +:10913000000C0040094A08B51169D3680B40D9B248 +:109140009B076FEA0101116107D5302383F3118872 +:10915000FDF7EEF9002383F3118808BD000C0040F1 +:1091600010B501390244904201D1002005E0037896 +:1091700011F8014FA34201D0181B10BD0130F2E7D6 +:10918000884210B501EB020402D98442234607D875 +:10919000431EA14208D011F8012B03F8012FF8E774 +:1091A000024401468A4200D110BD13F8014D02F875 +:1091B000014DF7E7C9B2034610F8012B1AB18A42F4 +:1091C000F9D118467047002918BF0023F9E70000BD +:1091D000034611F8012B03F8012B002AF9D170473F +:1091E00010B50139034632B111F8014F03F8014BB4 +:1091F000013A002CF7D11A440021934200D110BD4E +:1092000003F8011BF9E700004D4435002D2D0A003D +:109210002F6172647570696C6F742E6162696E0083 +:109220002F6172647570696C6F742D7665726966F2 +:10923000792E6162696E002F6172647570696C6F5E +:10924000742D666C6173682E6162696E002F6172A5 +:10925000647570696C6F742D666C61736865642EDB +:109260006162696E00000000000000000000000064 +:10927000ED0E0008890F000839110008C10F000821 +:10928000810F00080000000000000000E90E000847 +:10929000950F000871110008E50E0008F10E000896 +:1092A00053544D333248373F3F3F0053544D3332D0 +:1092B000483733782F3732780053544D333248379C +:1092C00034332F3735332F373530000001105A0033 +:1092D0000310590001205800032056002F00000001 +:1092E0005375636365737366756C6C79206D6F7508 +:1092F0006E746564205344436172642028736C6FFC +:1093000077646F776E3D2575290A0000EB769045EE +:10931000584641542020200046415433322020201A +:10932000000000002A3A3C3E7C223F7F002B2C3B71 +:109330003D5B5D00435545414141414345454549FC +:10934000494941414592924F4F4F5555594F554FBD +:109350009C4F9E9F41494F55A5A5A6A7A8A9AAAB7A +:10936000ACADAEAFB0B1B2B3B4414141B8B9BABB24 +:10937000BCBDBEBFC0C1C2C3C4C54141C8C9CACBC0 +:10938000CCCDCECFD1D145454549494949D9DADB84 +:10939000DCDD49DF4FE14F4F4F4FE6E8E8555555CB +:1093A0005959EEEFF0F1F2F3F4F5F6F7F8F9FAFBAC +:1093B000FCFDFEFF01030507090E10121416181C10 +:1093C0001E00000061001A03E0001703F800070305 +:1093D000FF0001007801000130013201060139016E +:1093E00010014A012E017901060180014D0043025E +:1093F0008101820182018401840186018701870144 +:1094000089018A018B018B018D018E018F019001F1 +:109410009101910193019401F60196019701980140 +:1094200098013D029B019C019D0120029F01A0012A +:10943000A001A201A201A401A401A601A701A70104 +:10944000A901AA01AB01AC01AC01AE01AF01AF01B2 +:10945000B101B201B301B301B501B501B701B80162 +:10946000B801BA01BB01BC01BC01BE01F701C001DA +:10947000C101C201C301C401C501C401C701C801C2 +:10948000C701CA01CB01CA01CD011001DD010100F4 +:109490008E01DE011201F3010300F101F401F40178 +:1094A000F8012801220212013A020900652C3B0250 +:1094B0003B023D02662C3F0240024102410246024D +:1094C0000A015302400081018601550289018A0187 +:1094D00058028F015A0290015C025D025E025F0237 +:1094E00093016102620294016402650266026702EE +:1094F000970196016A02622C6C026D026E029C0159 +:10950000700271029D01730274029F01760277025C +:10951000780279027A027B027C02642C7E027F024E +:10952000A60181028202A9018402850286028702C5 +:10953000AE014402B101B20145028D028E028F02DA +:1095400090029102B7017B030300FD03FE03FF03BA +:10955000AC0304008603880389038A03B103110363 +:10956000C2030200A303A303C4030803CC03030044 +:109570008C038E038F03D8031801F2030A00F9034A +:10958000F303F403F503F603F703F703F903FA0310 +:10959000FA033004200350041007600422018A04F7 +:1095A0003601C1040E01CF040100C004D0044401FF +:1095B00061052604000000007D1D0100632C001ED3 +:1095C0009601A01E5A01001F0806101F0606201F44 +:1095D0000806301F0806401F0606511F0700591FC6 +:1095E000521F5B1F541F5D1F561F5F1F601F080621 +:1095F000701F0E00BA1FBB1FC81FC91FCA1FCB1F79 +:10960000DA1FDB1FF81FF91FEA1FEB1FFA1FFB1FF2 +:10961000801F0806901F0806A01F0806B01F040040 +:10962000B81FB91FB21FBC1FCC1F0100C31FD01F22 +:109630000206E01F0206E51F0100EC1FF31F0100F8 +:10964000FC1F4E21010032217021100284210100F3 +:109650008321D0241A05302C2F04602C0201672CA2 +:109660000601752C0201802C6401002D260841FFA3 +:109670001A030000C700FC00E900E200E400E0007B +:10968000E500E700EA00EB00E800EF00EE00EC0088 +:10969000C400C500C900E600C600F400F600F200F0 +:1096A000FB00F900FF00D600DC00F800A300D800A2 +:1096B000D7009201E100ED00F300FA00F100D100C3 +:1096C000AA00BA00BF00AE00AC00BD00BC00A10003 +:1096D000AB00BB0091259225932502252425C100CE +:1096E000C200C000A9006325512557255D25A200B1 +:1096F000A5001025142534252C251C2500253C25E6 +:10970000E300C3005A2554256925662560255025A8 +:109710006C25A400F000D000CA00CB00C8003101C5 +:10972000CD00CE00CF0018250C2588258425A60065 +:10973000CC008025D300DF00D400D200F500D50096 +:10974000B500FE00DE00DA00DB00D900FD00DD0020 +:10975000AF00B400AD00B1001720BE00B600A700F6 +:10976000F700B800B000A800B700B900B300B2001D +:10977000A025A0001000024008000240000802409E +:1097800000000B00280002400800024004080240CC +:1097900006010C0040000240080002400808024098 +:1097A00010020D0058000240080002400C08024060 +:1097B00016030E00700002400C0002401008024028 +:1097C00000040F00880002400C0002401408024010 +:1097D00006051000A00002400C00024018080240DC +:1097E00010061100B80002400C0002401C080240A4 +:1097F00016072F001004024008040240200802400F +:1098000000083800280402400804024024080240EE +:1098100006093900400402400804024028080240BA +:10982000100A3A0058040240080402402C08024082 +:10983000160B3B00700402400C040240300802404A +:10984000000C3C00880402400C0402403408024032 +:10985000060D4400A00402400C04024038080240F7 +:10986000100E4500B80402400C0402403C080240BF +:10987000160F4600010000000000000000960000E6 +:1098800000000000000000000000000000000000D8 +:109890000000000000000000916B0008956B0008BC +:1098A00091560008C9590008255600084D56000871 +:1098B000755600080D560008000000007D5A00088B +:1098C000695A0008A55A0008915A00089D5A0008D4 +:1098D000895A0008755A0008615A0008B15A0008F0 +:1098E00000000000955B0008815B0008BD5B00087C +:1098F000A95B0008B55B0008A15B00088D5B000850 +:10990000795B0008C95B000800000000010000004E +:1099100000000000633000001499000800000000FF +:1099200000000000E0460020104900200000812ACD +:1099300000000000AAAAAAAA00000024FFFE00005E +:109940000000000000A00A0000010000000000006C +:10995000AAAAAAAA00000000FFFF00000000000061 +:10996000000000001400AA5600000000AAAAAAAA3B +:1099700014005554FFFF000000000000CCCC0C0088 +:1099800020681A0000000000AAAA8AAA1054150034 +:10999000FFFF0000000C700777000000408102010B +:1099A00000100000AAAAAAAA00410100F7FF0000C7 +:1099B0000000007007000000000000000000000030 +:1099C000AAAAAAAA00000000FFFF000000000000F1 +:1099D000000000000000000000000000AAAAAAAADF +:1099E00000000000FFFF0000000000000000000079 +:1099F0000000000000000000AAAAAAAA00000000BF +:109A0000FFFF000000000000000000000000000058 +:109A100000000000AAAAAAAA00000000FFFF0000A0 +:109A20000000000000000000000000000000000036 +:109A3000AAAAAAAA00000000FFFF00000000000080 +:109A4000000000000000000000000000AAAAAAAA6E +:109A500000000000FFFF0000000000000000000008 +:109A60004375626550696C6F7400437562654F722F +:109A7000616E67652B2D424C002553455249414C80 +:109A8000250000000200000000000000B55D000895 +:109A9000255E000840004000C0610020D061002029 +:109AA00002000000000000000300000000000000B1 +:109AB0006D5E00080000000010000000E061002062 +:109AC0000000000001000000000000003C650020D4 +:109AD000010102008D6C00089D6B0008396C0008C4 +:109AE0001D6C000843000000EC9A000809024300C6 +:109AF000020100C032090400000102020100052435 +:109B000000100105240100010424020205240600BE +:109B100001070582030800FF09040100020A000092 +:109B20000007050102400000070581024000000017 +:109B300012000000389B00081201100102000040D2 +:109B4000AE2D5810000201020301000004030904B5 +:109B500025424F4152442500437562654F72616E44 +:109B60006765506C75732D626473686F7400303173 +:109B700032333435363738394142434445460000A4 +:109B80000000002000000200020000000000003081 +:109B9000000004000800000000000024000008008D +:109BA000040000000004000000FC000002000000AF +:109BB00000000430008000000800000000000038B1 +:109BC00000000100010000001F1C1F1E1F1E1F1FA0 +:109BD0001E1F1E1F1F1D1F1E1F1E1F1F1E1F1E1F9D +:109BE00000000000C95F0008816200082D630008C2 +:109BF00040004000746600207466002001000000F0 +:109C00008466002080000000400100000800000081 +:109C100000010000001000000800000069646C658D +:109C2000000000006D61696E002C043804043808DF +:109C30000C10141C202425260000000000006404E1 +:109C40000100040000000000000C00102830340067 +:109C50001868FF7F010000002704000000000000DA +:109C600000001E0000000000FF0000001849002056 +:109C7000203900208C390020F83900200000000035 +:109C8000A092000883040000AB920008500400007A +:109C9000B9920008010000000000000000960000DA +:109CA000000008009600000000080000040000000A +:109CB0004C9B0008000000000000000000000000B5 +:0C9CC00000000000000000000000000098 :00000001FF diff --git a/Tools/bootloaders/CubeOrangePlus_bl.bin b/Tools/bootloaders/CubeOrangePlus_bl.bin index 8008bd1af3db49f2a81d2a94e107397222b93867..f0efa27c5db11b81ad8b36ae0e7c6ec9e568472e 100755 GIT binary patch delta 4115 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 delta 4052 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 s;qCTv?E%%+nENpw}b-we_at-=l}o! diff --git a/Tools/bootloaders/CubeOrangePlus_bl.elf b/Tools/bootloaders/CubeOrangePlus_bl.elf index 9a40a5a353032a6dbddd9fbf414cba1e878bcee6..322ae2abeb45dfccb515031d932bc3c46ad56007 100755 GIT binary patch delta 21468 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 delta 21255 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 C1v1V6 delta 15148 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 Ijv4cR0Q_~LS^xk5 diff --git a/Tools/bootloaders/CubePurple_bl.bin b/Tools/bootloaders/CubePurple_bl.bin index 10a70fa49000fd27a6f097134d185525127a81c6..ef7c5653123065abf0693a8b33af8865f817d6fe 100755 GIT binary patch literal 16108 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%0D(Ll#l$3jhn$KFCL7sE3q4Ba1aY&X>- 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 TzN8?9kRtLPWMQJo-^c$Kk2MQV literal 16264 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 NLvqMY@c%!9{J&~;^kM)2 diff --git a/Tools/bootloaders/CubePurple_bl.hex b/Tools/bootloaders/CubePurple_bl.hex index 1c01087082333..3c36448102e62 100644 --- a/Tools/bootloaders/CubePurple_bl.hex +++ b/Tools/bootloaders/CubePurple_bl.hex @@ -1,1019 +1,1009 @@ :020000040800F2 -:1000000000040020E10100081D0F0008210F000876 -:10001000750F0008210F0008490F0008E3010008D0 -:10002000E3010008E3010008E30100080D280008CF +:1000000000060020E1010008E3010008E301000808 +:10001000E3010008E3010008E3010008E301000830 +:10002000E3010008E3010008E301000801360008CD :10003000E3010008E3010008E3010008E301000810 :10004000E3010008E3010008E3010008E301000800 -:10005000E3010008E301000875390008A139000830 -:10006000CD390008F9390008253A0008E3010008F5 +:10005000E3010008E3010008B1380008D9380008BE +:10006000013900082939000851390008E301000866 :10007000E3010008E3010008E3010008E3010008D0 :10008000E3010008E3010008E3010008E3010008C0 -:10009000E3010008E3010008E3010008513A000809 +:10009000E3010008E3010008E301000879390008E2 :1000A000E3010008E3010008E3010008E3010008A0 :1000B000E3010008E3010008E3010008E301000890 :1000C000E3010008E3010008E3010008E301000880 -:1000D000E3010008E30100082511000839110008B8 -:1000E000B93A0008E3010008E3010008E301000851 +:1000D000E3010008E30100084D3A0008E3010008CD +:1000E000DD390008E3010008E3010008E30100082E :1000F000E3010008E3010008E3010008E301000850 -:10010000E3010008E301000885370008E301000867 +:10010000E3010008E3010008613A0008E301000888 :10011000E3010008E3010008E3010008E30100082F :10012000E3010008E3010008E3010008E30100081F :10013000E3010008E3010008E3010008E30100080F -:10014000E3010008E3010008E3010008F92E0008BC +:10014000E3010008E3010008E3010008A92D00080D :10015000E3010008E3010008E3010008E3010008EF :10016000E3010008E3010008E3010008E3010008DF :10017000E3010008E3010008E3010008E3010008CF -:10018000E3010008E30100084D110008E301000845 +:10018000E3010008E3010008E3010008E3010008BF :10019000E3010008E3010008E3010008E3010008AF :1001A000E3010008E3010008E3010008E30100089F :1001B000E3010008E3010008E3010008E30100088F :1001C000E3010008E3010008E3010008E30100087F :1001D000E3010008E3010008E3010008E30100086F -:1001E00002E000F000F8FEE772B6394880F30888B4 -:1001F000384880F3098838484EF60851CEF200019D -:10020000086040F20000CCF200004EF63471CEF2ED -:1002100000010860BFF34F8FBFF36F8F40F2000003 -:10022000C0F2F0004EF68851CEF200010860BFF334 -:100230004F8FBFF36F8F4FF00000E1EE100A4EF6C4 -:100240003C71CEF200010860062080F31488BFF3F1 -:100250006F8F02F019FB03F02BFA4FF055301F4956 -:100260001B4A91423CBF41F8040BFAE71C49194A6A -:1002700091423CBF41F8040BFAE71A491A4A1B4B5A -:100280009A423EBF51F8040B42F8040BF8E70020F5 -:100290001749184A91423CBF41F8040BFAE702F0B3 -:1002A000F7FA03F061FA144C144DAC4203DA54F837 -:1002B000041B8847F9E700F03FF8114C114DAC42A0 -:1002C00003DA54F8041B8847F9E702F0DFBA0000AC -:1002D000000400200024002000000008000000208E -:1002E00000040020603F0008002400202824002093 -:1002F00028240020903D0020E0010008E0010008D3 -:10030000E0010008E00100082DE9F04F2DED108A12 -:10031000C1F80CD0C3689D46BDEC108ABDE8F08FD3 -:10032000002383F311882846A047002001F0ECFE4B -:1003300001F09CFE00DFFEE770B5204C092300258C -:1003400023706FF03F061F236570A570E57025715F -:100350006571A571E57125726672A372E57200F090 -:10036000FFFC20B10F2325726672A372E57202F0C2 -:100370001FFA044602F044FA0546D8B9104B9C42D5 -:100380001AD001339C4218BF054641F2883404BF9D -:1003900001250024002002F015FA0DB100F0B6F896 -:1003A00000F062FD00F01AFC204600F00DF900F0AC -:1003B000ADF8F9E70024EDE70446EBE72824002038 -:1003C000010007B008B500F087FBA0F120035842F8 -:1003D000584108BD07B5054B02211B88ADF8043014 -:1003E00001A800F0E5FB03B05DF804FBA03B0008AA -:1003F000064991F8243033B100230822086A81F8B5 -:10040000243000F00DBC0120704700BF48240020BC -:100410002DE9F84F234C94F82430054688461746BA -:100420008BBB2E46DFF87C90002F38D094F824A0A8 -:10043000BAF1000F05D12022FF214846266200F0C4 -:1004400001FDCAF10805BD4228BF3D465FFA85FBA4 -:10045000AD0041462A4604EB8A0000F0C9FC94F83E -:100460002430A7EB0B079B445FFA8BFBBBF1080F13 -:100470002E44A844FFB284F824B0D5D1FFF7B8FFCA -:100480000028D1D108E0266A06EB8306B042C9D025 -:10049000FFF7AEFF0028C4D10020BDE8F88F01208F -:1004A000BDE8F88F4824002010B5202383F311887D -:1004B0001248C3680BB101F0ADFE0023104A0F488B -:1004C0004FF47A7101F06AFE002383F311880D4C1A -:1004D000236813B12368013B2360636813B1636829 -:1004E000013B6360084B1B7833B9636823B9022072 -:1004F00000F074FC3223636010BD00BF3424002080 -:10050000A9040008782500207024002010B5254B90 -:10051000254953F8042F013200D110BD8B42F8D188 -:10052000224C234B22689A423AD9224B9B6803F112 -:10053000006303F580439A4232D2002000F068FB4A -:100540001D4B0220187000F03FFC1C4B1A6C00225F -:100550001A64196E1A66196E596C5A64596E5A6685 -:100560005A6E5A6942F080025A615A6922F080023A -:100570005A615A691A6942F000521A611A6922F0E6 -:1005800000521A611B6972B60D4A0E4B13601B684C -:100590002268202181F311889D4683F30888104743 -:1005A00010BD00BFFC3F00081C40000804400008CC -:1005B000FF3F00082824002070240020003802405B -:1005C00008ED00E0004000082DE9F04F99B0B34C71 -:1005D00001902022FF2110A8A66800F033FCB04A49 -:1005E0001378A346A3B9AF480121C360117020233B -:1005F00083F31188C3680BB101F00CFE0023AA4AF3 -:10060000A8484FF47A7101F0C9FD002383F31188E3 -:10061000019B13B1A54B019A1A60A54AA349019FFA -:100620000292002313704B6099461C461D46984663 -:10063000012000F0C9FB002F00F012829B4B1B68C9 -:10064000002B40F00D8219B0BDE8F08F0220FFF7BB -:10065000B9FE002840F0FB81019BB9F1000F08BFF3 -:100660001F46944B1B88ADF82C3002210BA800F0DC -:100670009FFADDE74FF47A7000F02EFA031E039321 -:10068000EADB0220FFF79EFE82460028E4D0039BAF -:10069000581E042800F2DD81DFE800F0030E11147B -:1006A000170018A8052340F8343D042100F080FA13 -:1006B00054464FF0000856E004217848F6E704213C -:1006C0007D48F3E704217D48F0E71C24204600F034 -:1006D000A1FA04340B9004210BA800F069FA2C2C29 -:1006E000F4D1E5E7002DB7D0002CB5D00220FFF7FC -:1006F00069FE0546002800F0AF8101206C4C00F037 -:1007000087FA0220207000F05FFB4FF000095FFACB -:1007100089FA504600F08CFA074658B1504600F06E -:1007200097FA09F101090028F1D12C46A9460027C2 -:10073000634B97E701230220237000F03BFB3E460A -:10074000DBF808309E4206D2304600F063FA0130F2 -:10075000EBD10436F4E7029B00261E70534BA946EA -:100760005E602C46374600F075FB15B1002C18BFB3 -:100770000027FFF72FFE5BE7002D3FF46DAF002C45 -:100780003FF46AAF029B0220187000F01DFB32207C -:1007900000F0A2F9B0F1000AC0F25E811AF0030580 -:1007A00040F05A81DBF8082006EB0A03934200F27E -:1007B0005381BAF5807F00F24F8155450DDA4FF431 -:1007C0007A7000F089F90490049B002BC0F24481F8 -:1007D0003C4A049BAB540135EFE7C820FFF7F2FD1C -:1007E0000546002800F038811F2E11D8C6F12004DC -:1007F000544528BF544610AB26F003002246314929 -:10080000184400F0F5FA2246FF212E4800F01AFBAA -:100810004FEAAA0A5FFA8AF22A493046FFF7F8FD42 -:100820000446002800F01A8106EB8A0605469AE77E -:100830000220FFF7C7FD00283FF40EAFFFF7D8FDF9 -:1008400000283FF409AF4FF0000A5346DBF80820B8 -:1008500092451CD2BAF11F0F12D8109A01320FD054 -:100860002AF0030218A90A4452F8202C0B921846C9 -:1008700004220BA900F092FB0AF1040A0346E5E703 -:100880005046039300F0C6F9039B0B90EFE718A8BE -:10089000042140F84C3D00F08BF964E72824002047 -:1008A0007425002034240020A904000878250020A5 -:1008B00070240020A23B00082C24002030240020BB -:1008C000A43B00087424002018A8002340F8343DFD -:1008D000642100F039F900287FF4BEAE0220FFF752 -:1008E00071FD00283FF4B8AE0B9800F0C3F918ABC7 -:1008F00043F8480D04211846CDE718A8002340F816 -:10090000343D642100F020F900287FF4A5AE0220D8 -:10091000FFF758FD00283FF49FAE0B9800F0B8F9A0 -:1009200018AB43F8440DE5E70220FFF74BFD002824 -:100930003FF492AE00F0B2F918AB43F8400DD9E79E -:100940000220FFF73FFD00283FF486AE0BA91420DC -:1009500000F0AAF9824618A8042140F83CAD00F046 -:1009600027F951460BA896E7322000F0B5F8B0F110 -:10097000000AFFF671AE1AF0030F7FF46DAEDBF8DC -:1009800008200AEB080393423FF666AE0220FFF709 -:1009900019FD00283FF460AE2AF0030AC244D04596 -:1009A0003FF4E1AE404600F035F904210A900AA870 -:1009B00000F0FEF808F10408F1E74FF47A70FFF751 -:1009C00001FD00283FF448AEFFF712FD00283FF478 -:1009D000AFAE109B01330CD0082210A90020FFF706 -:1009E00017FD00283FF4A4AE2022FF2110A800F03C -:1009F00029FAFFF7EFFC374801F08CFB23E6002DC6 -:100A00003FF42AAE002C3FF427AE18A8002340F88C -:100A1000343D642100F098F8824600287FF41CAE33 -:100A20000220FFF7CFFC00283FF416AE0390FFF73B -:100A3000D1FC41F2883001F06DFB0B9800F04EFACA -:100A400000F008FA039B57461C461D46F0E5054694 -:100A500089E64FF00008FFE52546FDE52C4667E6F0 -:100A6000002000F039F80490049B002BFFF6E3AD62 -:100A7000012000F09FF9049B213B122B3FF6D8ADDB -:100A800001A252F823F000BF4D06000875060008C9 -:100A9000E5060008310600083106000831060008A6 -:100AA000790700086909000831080008C90800082A -:100AB000FB08000829090008310600084109000860 -:100AC00031060008BB090008670700083106000866 -:100AD000FF090008A08601002DE9F34702AE0024BB -:100AE0004FF47A7506F8014D144FDFF858804543EE -:100AF00097F900305A1C5FFA84F901D0A34212D151 -:100B000058F8240003680122D3F820A031462B4670 -:100B1000D047012807D10A4B9DF8070083F80090C1 -:100B200002B0BDE8F0870134042CE1D14FF4FA7033 -:100B300001F0F0FA4FF0FF30F2E700BF0024002090 -:100B400098250020F83B00082DE9F0474FF47A750E -:100B5000144FDFF8588006464D43002497F90030C3 -:100B60005A1C5FFA84F901D0A34210D158F824002E -:100B700003680422D3F820A031462B46D04704282E -:100B800005D1094B83F800900020BDE8F0870134BF -:100B9000042CE3D14FF4FA7001F0BCFA4FF0FF30AF -:100BA000BDE8F0870024002098250020F83B0008CD -:100BB00030B4074B1A78074B53F822402368DD699D -:100BC000054B0A46AC460146204630BC604700BF94 -:100BD00098250020F83B0008A086010070B501F0C0 -:100BE000E3FC094C094E20700025306823788342CD -:100BF00008D901F0D3FC336805440133B5F5804FC3 -:100C00003360F2D370BD00BF9925002080250020FD -:100C100001F080BD00F1006000F580400068704781 -:100C200000F10060920000F5804001F00BBD000073 -:100C3000054B1A68054B1B789B1A834202D9104456 -:100C400001F0ACBC002070478025002099250020D1 -:100C500038B5074D04462868204401F0A7FC28B9A0 -:100C600028682044BDE8384001F0B8BC38BD00BF5A -:100C70008025002010F0030308D1B0F5007F05D8CF -:100C800000F10050A0F50840006870470020704750 -:100C9000014BC058704700BF107AFF1F014B186806 -:100CA000704700BF002004E070B52A4B1C68C4F3F5 -:100CB0000B03240C63B140F21342934231D040F253 -:100CC000194293422FD040F2214293422DD1032367 -:100CD000214A0C2505FB03235D6893F9082042F2A5 -:100CE00001039C4224D0B4F5805F23D041F201037C -:100CF0009C4221D041F203039C421FD041F20703E2 -:100D00009C4208BF3122441E0C44013D0B46A342C5 -:100D10001ED215F9016F581C96B1034600F8016CFC -:100D2000F5E70123D4E70223D2E73F220B4DD6E7B4 -:100D30003322E3E74122E1E75A22E4E75922E2E7DE -:100D40002C2584421D7001D9981C5A70401A70BD20 -:100D50001846FBE7002004E0C83B0008A83B000859 -:100D6000124B5A8842F201018A4293B214D0B3F571 -:100D7000805F13D041F20102934211D041F203028D -:100D800093420FD041F2070293420DD10423084A47 -:100D900002EB8303D87870470023F8E70123F6E7D6 -:100DA0000223F4E70323F2E700207047002004E069 -:100DB000B43B0008022802BF024B4FF480529A61F4 -:100DC000704700BF00100240022802BF024B4FF0E4 -:100DD00080529A61704700BF00100240022801BF94 -:100DE000024A536983F480535361704700100240F4 -:100DF00010B50023934203D0CC5CC4540133F9E70F -:100E000010BD000030B5441E14F9010F0B4660B14F -:100E100093F90050854201F1010106D11AB993F905 -:100E20000020801A30BD013AEEE7002AF7D11046C3 -:100E300030BD000002460346981A13F9011B002931 -:100E4000FAD1704702440346934202D003F8011BD3 -:100E5000FAE77047024B1A78024B1A70704700BFCE -:100E60009825002000240020F8B5164C1648174D90 -:100E7000174E154F00F096FC2146134800F0BEFCBB -:100E800024681448626D936B23F40023936301F08C -:100E900041F92046104900F0BDFD626D936B43F4AB -:100EA000002393634FF4E1332B60002456F82400B1 -:100EB000B84202D0294600F0D3FB0134042CF5D10E -:100EC000F8BD00BFE03C00089433002084250020DA -:100ED000F83B000840420F000C3D000838B50B4BB2 -:100EE0001A780B4B53F822400A4B9C4205460CD013 -:100EF000094B002118461422FFF7A4FF05600146A4 -:100F00002046BDE8384000F0ABBB38BD9825002036 -:100F1000F83B00089433002084250020FEE7000001 -:100F200000B59BB0EFF3098168226846FFF760FFC8 -:100F3000EFF30583034B9A6B9A6A9A6A9A6A9A6AE4 -:100F40009B6AFEE700ED00E000B59BB0EFF309817E -:100F500068226846FFF74CFFEFF30583044B9A6B5A -:100F60009A6A9A6A9A6A9A6A9A6A9B6AFEE700BFC4 -:100F700000ED00E000B59BB0EFF309816822684600 -:100F8000FFF736FFEFF30583034B5A6B9A6A9A6AB1 -:100F90009A6A9A6A9B6AFEE700ED00E030B5084D58 -:100FA0000A4491420BD011F8013B09245840013CFE -:100FB000F7D040F300032B4083EA5000F7E730BD41 -:100FC0002083B8ED002304491A465A50C818083344 -:100FD000802B4260F9D170479C250020026843684D -:100FE0001143016003B1184770470000024AD368FB -:100FF00043F0C003D360704700440040024AD36806 -:1010000043F0C003D360704700480040024AD368F1 -:1010100043F0C003D3607047007800402DE9F041F1 -:10102000D0F85C64F7683368DA0505469CB20DD5E4 -:10103000202383F311884FF400710430FFF7CEFFB3 -:101040006FF480733360002383F31188202383F3CC -:10105000118805F1040814F02F0333D183F31188AC -:10106000380615D5210613D5202383F3118805F101 -:10107000380000F053FA002846DA0821281DFFF74F -:10108000ADFF4FF67F733B40F360002383F311887D -:101090007A060ED563060CD5202383F31188EA6CFB -:1010A0002B6D9A4202D12B6C002B2FD1002383F39E -:1010B0001188D5F86424D368002B31D01069BDE8BD -:1010C000F0411847230713D014F0080F0CBF00217C -:1010D0008021E00748BF41F02001A20748BF41F04E -:1010E0004001630748BF41F480714046FFF776FF37 -:1010F000A406736805D595F860142846194000F0D9 -:10110000BDFA3468A4B2A6E77060BEE727F04007D6 -:101110003F041021281D3F0CFFF760FFF760C5E773 -:10112000BDE8F08108B50348FFF778FFBDE8084047 -:1011300001F07CBB1C26002008B50348FFF76EFFBA -:10114000BDE8084001F072BB842A002008B50348BE -:10115000FFF764FFBDE8084001F068BBEC2E0020FB -:1011600010B50E4C0E4A2046002100F057FA0D4BE8 -:10117000C4F85C340C4C0D4A2046002100F04EFAB5 -:101180000B4BC4F85C340B4C0B4A0021204600F09A -:1011900045FA0A4BC4F85C3410BD00BF1C26002081 -:1011A000ED0F000800440040842A0020FD0F0008D5 -:1011B00000480040EC2E00200D1000080078004090 -:1011C00038B5394D037C002918BF0D46012B044664 -:1011D000C0F8645410D1354B984242D1344B1A6C4C -:1011E00042F400321A641A6E42F400321A661B6E20 -:1011F0000B21262000F06AF82E4BD4F85C249A428A -:101200002B6802D02C498A424BD12C4901EB530167 -:10121000B1FBF3F3A988080442BF23F0070003F0F1 -:10122000070343EA40039360EB8843F040039BB21B -:1012300013612B8943F001039BB2536141F40453C2 -:1012400043F02C03D36001F4A05100231360B1F5E7 -:10125000806F136853680CBF7F23FF2384F86034CA -:1012600038BD174B98420CD1114B1A6C42F48022B6 -:101270001A641A6E42F480221A661B6E0B21272014 -:10128000B8E7104B9842B7D1094B1A6C42F0804234 -:101290001A641A6E42F080421A661B6E0B215220AD -:1012A000A8E70949B2E700BF283C00081C26002037 -:1012B00000380240001001400014014000BD01054B -:1012C000842A0020EC2E002080DE800200F16043A2 -:1012D00000F01F02400903F5614309018000C9B213 -:1012E00000F1604083F8001300F561400123934052 -:1012F000C0F8803103607047F8B51546826806690A -:10130000AA420B46816938BF8568761AB542044601 -:1013100007D218462A46FFF76BFDA3692B44A36149 -:101320000DE011D932461846FFF762FDAF1B3A4671 -:10133000E1683044FFF75CFDE2683A44A261A368CB -:101340005B1BA3602846F8BD18462A46FFF750FDF0 -:10135000E368E4E783682DE9F041044693421546CB -:10136000266938BF85684069361AB5420F4606D2ED -:101370002A46FFF73DFD63692B4463610DE012D9F6 -:101380003246A5EB0608FFF733FD4246B919E0687F -:10139000FFF72EFDE26842446261A3685B1BA36015 -:1013A0002846BDE8F0812A46FFF722FDE368E4E71E -:1013B00010B50A440024C361029B00604060846051 -:1013C000C160816141610261036210BD08B582693B -:1013D0004369934201D1826882B982680132826096 -:1013E0005A1C42611970426903699A4201D3C36869 -:1013F0004361002100F0AAFE002008BD4FF0FF303D -:1014000008BD000070B5202304460E4683F3118802 -:10141000A568A5B1A368A269013BA360531CA361A1 -:1014200015782269934224BFE368A361E3690BB195 -:1014300020469847002383F31188284670BD314623 -:10144000204600F073FE0028E2DA85F3118870BDB3 -:101450002DE9F74F05460F4690469A46D0F81C9066 -:10146000202686F311884FF0000B144664B1224603 -:1014700039462846FFF740FF034668B951462846DB -:1014800000F054FE0028F1D0002383F31188A8EB6C -:10149000040003B0BDE8F08FB9F1000F03D0019054 -:1014A0002846C847019B8BF31188E41A1F4486F332 -:1014B0001188DBE7C16081614161C3611144009B18 -:1014C000006040608260016103627047F8B50446C5 -:1014D0000E461746202383F31188A568A5B1A3689B -:1014E000013BA36063695A1C62611E7023696269D3 -:1014F0009A4224BFE3686361E3690BB120469847D1 -:10150000002080F31188F8BD3946204600F00EFE19 -:101510000028E2DA85F31188F8BD0000836942698A -:101520009A4210B501D182687AB98268013282602C -:101530005A1C82611C7803699A4201D3C368836193 -:10154000002100F003FE204610BD4FF0FF3010BD1B -:101550002DE9F74F05460F4690469A46D0F81C9065 -:10156000202686F311884FF0000B144664B1224602 -:1015700039462846FFF7EEFE034668B9514628462D -:1015800000F0D4FD0028F1D0002383F31188A8EBEC -:10159000040003B0BDE8F08FB9F1000F03D0019053 -:1015A0002846C847019B8BF31188E41A1F4486F331 -:1015B0001188DBE7026843681143016003B11847F3 -:1015C000704700001430FFF743BF00004FF0FF33B7 -:1015D0001430FFF73DBF00003830FFF7B9BF0000FF -:1015E0004FF0FF333830FFF7B3BF00001430FFF780 -:1015F00009BF00004FF0FF311430FFF703BF0000B8 -:101600003830FFF763BF00004FF0FF323830FFF78C -:101610005DBF000000207047FFF7A2BD37B50F4B3C -:101620000360002343608360C360012304460374A6 -:10163000154600900B464FF4007200F15C01143027 -:10164000FFF7B6FE00942B464FF4007204F51771B5 -:1016500004F13800FFF72EFF03B030BD3C3C00081A -:1016600010B52023044683F31188FFF7A9FD022358 -:101670002374002383F3118810BD000038B5C369BB -:1016800004460D461BB904210844FFF793FF294681 -:1016900004F11400FFF79AFE002806DA201D4FF42B -:1016A0008061BDE83840FFF785BF38BD02684368F8 -:1016B0001143016003B118477047000013B5446B34 -:1016C000D4F894341A681178042915D1217C0229A0 -:1016D00012D11979128901238B4013420CD101A92F -:1016E00004F14C0001F058FED4F89444019B217998 -:1016F0000246206800F0DAF902B010BD143001F0A3 -:10170000DBBD00004FF0FF33143001F0D5BD000009 -:101710004C3001F0ADBE00004FF0FF334C3001F013 -:10172000A7BE0000143001F0A9BD00004FF0FF314A -:10173000143001F0A3BD00004C3001F079BE000070 -:101740004FF0FF324C3001F073BE0000D0F894240B -:1017500038B5136819780429054601D0012038BD31 -:10176000017C0229FAD112795C8901209040044061 -:10177000F4D105F1140001F03BFD02460028EDD044 -:10178000D5F894544FF480732868697900F07CF997 -:10179000204638BD406BFFF7D9BF000000207047DE -:1017A000704700007FB5124B0360002343608360E5 -:1017B000C360012502260F4B057404460290019375 -:1017C00000F18402294600964FF48073143001F032 -:1017D000EBFC094B0193029400964FF4807304F5DF -:1017E0002372294604F14C0001F0B2FD04B070BD33 -:1017F000643C000895170008BD1600080B682022FD -:1018000082F311880A7903EB820290614A790932E6 -:1018100043F822008A7912B103EB82039861022314 -:101820000374C0F89414002383F3118870470000F8 -:1018300038B5037F044613B190F85430ABB9201D7E -:1018400001250221FFF732FF04F1140025776FF024 -:10185000010100F087FC84F8545004F14C006FF053 -:101860000101BDE8384000F07DBC38BD10B5012154 -:1018700004460430FFF71AFF0023237784F854301E -:1018800010BD000038B504460025143001F0A4FC5A -:1018900004F14C00257701F073FD201D84F85450AD -:1018A0000121FFF703FF2046BDE83840FFF74EBF98 -:1018B00090F8443003F06003202B19D190F84520B4 -:1018C000212A0AD0222A4FF000030ED0202A0FD15D -:1018D000084A82630722C26304E0064B836307233E -:1018E000C36300230364012070478363C363F9E784 -:1018F0000020704701240020D0F8943437B51A68CE -:101900001178042904461AD1017C022917D11979CA -:10191000128901238B40134211D100F14C05284656 -:1019200001F0EEFD58B101A9284601F035FDD4F8CB -:101930009444019B21790246206800F0B7F803B077 -:1019400030BD000000EB8103F7B59C6905460E46EB -:10195000F4B1202383F3118805EB8607201D0821AD -:10196000FFF7A4FEFB685B691B684C3413B120468B -:1019700001F020FD01A9204601F00EFD024648B10C -:10198000019B3146284600F091F8002383F311882B -:1019900003B0F0BDFB685A691268002AF5D01B8AB3 -:1019A000013B1340F1D105F14402EAE7093138B5B2 -:1019B00050F82140DCB1202383F31188D4F894241B -:1019C0001368527903EB8203DB689B695D6845B15C -:1019D00004216018FFF76AFE294604F1140001F0A3 -:1019E00011FC2046FFF7B2FE002383F3118838BDB7 -:1019F0007047000000F0D2BF012303700023436052 -:101A0000C36183620362C3624362036303814381F0 -:101A10007047000038B50446202383F31188002561 -:101A20004160C56005614561856100F0C7FF022323 -:101A3000237085F3118838BD70B500EB810305462E -:101A40005069DA600E46144618B110220021FFF7E3 -:101A5000F9F9A06918B110220021FFF7F3F9314616 -:101A60002846BDE8704001F073B80000028902F01A -:101A700001020281428902F00102428100220261D8 -:101A80004261826101F0F8B8F0B400EB810447894B -:101A9000E4680125A4698D403D434581236000230E -:101AA000A2606360F0BC01F013B90000F0B400EB79 -:101AB00081040789E468012564698D403D430581FF -:101AC00023600023A2606360F0BC01F08DB90000C8 -:101AD00070B50223002504460370A0F84C5080F82E -:101AE0004E5080F84F5005814581C56005614561C4 -:101AF000856180F8345000F0C7FF63681B6823B12C -:101B000029462046BDE87040184770BD43680278FA -:101B10001B6880F85020052202700BB10421184781 -:101B200070470000436890F850201B6802700BB1AA -:101B3000052118477047000090F8343070B504460E -:101B400013B1002380F8343004F14402204601F040 -:101B5000B5F863689B6863BB94F8445015F0600661 -:101B600015D194F8453005F07F0545EA032540F28C -:101B700002339D4200F00E815BD8022D00F0DC8024 -:101B80003FD8002D00F08780012D00F0CF8000218C -:101B9000204601F0EBFA0021204601F0DDFA6368EF -:101BA0001B6813B1062120469847062384F8343079 -:101BB00070BD204698470028CED094F84B2094F86A -:101BC0004A3043EA0223E26B934238BFE36394F95D -:101BD0004430E56B002B4FF0200380F2FD80002D98 -:101BE00000F0EC80092284F8342083F3118800216E -:101BF000E36BA26B2046FFF759FF002383F31188A4 -:101C000070BDB5F5817F00F0B180B5F5407F49D05A -:101C1000B5F5807FBBD194F84630012BB7D1B4F82D -:101C20004C3023F00203A4F84C30A663E66326642C -:101C3000C3E740F201639D421ED8B5F5C06F3BD2A9 -:101C4000B5F5A06FA3D1B4F84430B3F5A06F0ED1B1 -:101C500094F8463084F84E30204600F06DFF6368FB -:101C60001B6813B1012120469847032323700023EA -:101C7000A363E3632364A0E7B5F5106F32D040F6A9 -:101C800002439D4252D0B5F5006F80D104F14F035D -:101C9000A363012324E004F14C03A3630223E36361 -:101CA00025648AE794F84630012B7FF470AFB4F8CE -:101CB0004C3043F00203B6E794F84920616894F889 -:101CC00048304D6894F8471043EA0223204694F8C0 -:101CD0004620A84700283FF45AAF4368A36303682F -:101CE000E363A4E72378042B10D1202383F3118826 -:101CF0002046FFF7BBFE86F31188636884F84F60C7 -:101D00001B68032121700BB12046984794F8463098 -:101D1000002BACD084F84F300423237063681B6819 -:101D2000002BA4D0022120469847A0E7374BA3639D -:101D30000223E36300239DE794F8481011F0800F1D -:101D4000204601F00F010ED000F0AAFF012806D0B6 -:101D500002287FF41CAF2E4BA363E06367E72D4B93 -:101D6000A363E56363E700F08DFFEFE794F8463087 -:101D7000002B7FF40CAF94F8483013F00F013FF4C0 -:101D800076AF1A06204602D501F004FA6FE701F09B -:101D9000F7F96CE794F84630002B7FF4F8AE94F82E -:101DA000483013F00F013FF462AF1B06204602D506 -:101DB00001F0DCF95BE701F0CFF958E7142284F871 -:101DC000342083F311882B462A4629462046FFF704 -:101DD0005BFE85F3118870BD5DB1152284F8342057 -:101DE00083F311880021E36BA26B2046FFF74CFEC2 -:101DF00003E70B2284F8342083F311882B462A460C -:101E000029462046FFF752FEE3E700BF943C000856 -:101E10008C3C0008903C000838B590F834300446FB -:101E2000152B29D8DFE803F03E28282828283E284B -:101E3000280B293928282828282828283E3E90F8C9 -:101E40004B1090F84A20C36B42EA01229A4214D9FF -:101E5000C268128AB3FBF2F502FB15356DB9202377 -:101E600083F311882B462A462946FFF71FFE85F388 -:101E700011880A2384F8343038BD142384F83430B0 -:101E8000202383F3118800231A4619462046FFF7C2 -:101E9000FBFD002383F3118838BD036C03B1984721 -:101EA0000023E7E7002101F061F90021204601F05D -:101EB00053F963681B6813B106212046984706232F -:101EC000D8E7000090F83420152A38B5044622D807 -:101ED0000123934040F6416213421DD113F4801553 -:101EE0000FD19B0217D50B2380F83430202383F3C6 -:101EF00011882B462A462946FFF7D8FD85F311881D -:101F000038BDC3689B695B682BB9036C03B1984704 -:101F1000002384F8343038BD002101F027F9002176 -:101F2000204601F019F963681B6813B106212046A9 -:101F300098470623EDE70000024B00221B605B6020 -:101F40009A60704754330020002303748268054B65 -:101F50001B6899689142FBD25A6803604260106026 -:101F6000586070475433002008B5202383F311884C -:101F7000037C032B05D0042B0DD02BB983F31188E0 -:101F800008BD436900221A604FF0FF334361FFF739 -:101F9000DBFF0023F2E790E80C001A600268536050 -:101FA000F2E70000002303748268054B1B68996800 -:101FB0009142FBD85A6803604260106058607047D5 -:101FC00054330020054B19690874186802681A60B8 -:101FD0005360186101230374FEF796B9543300204F -:101FE00030B54B1C87B005460A4C10D023690A4A0D -:101FF00001A800F0D3F82846FFF7E4FF049B13B1D3 -:1020000001A800F007F92369586907B030BDFFF750 -:10201000D9FFF8E754330020691F000838B50C4D8C -:1020200041612B6981689A689142044603D8BDE8F2 -:102030003840FFF789BF1846FFF786FF01232C6160 -:10204000014623742046BDE83840FEF75DB900BF65 -:1020500054330020044B1A681B6990689B689842AF -:1020600094BF0020012070475433002010B5084C65 -:10207000236820691A6822605460012223611A745F -:10208000FFF790FF01462069BDE81040FEF73CB91C -:10209000543300208260022202740022427470478E -:1020A0008368A3F17C0243F80C2C026943F83C2CB2 -:1020B000426943F8382C074A43F81C2CC26843F89D -:1020C000102C022203F8082C002203F8072CA3F19D -:1020D000180070472103000810B5202383F31188EE -:1020E000FFF7DEFF00210446FFF798FF002383F38C -:1020F0001188204610BD0000024B1B6958610F205B -:10210000FFF760BF54330020202383F31188FFF7CB -:10211000F3BF000008B50146202383F3118808208F -:10212000FFF75EFF002383F3118808BD49B1064B1A -:1021300042681B6918605A60136043600420FFF70F -:102140004FBF4FF0FF307047543300200368984270 -:1021500006D01A680260506059611846FFF7F4BE55 -:102160007047000038B504460D462068844200D10F -:1021700038BD036823605C604561FFF7E5FEF4E766 -:10218000054B03F114025A619A614FF0FF32DA6194 -:1021900000221A62704700BF54330020F8B5036173 -:1021A0001A4BC2605C6A1A4B1A46022952F8145F35 -:1021B00038BF0221954206461F460AD158619861F0 -:1021C0001C620560456081600819BDE8F84001F0B7 -:1021D000B9B9186AAB68241A0C1902D3E41A2D682D -:1021E00004E09C4202D2204401F0BCF9AB689C425E -:1021F000F4D86B68736035601E606E60B460A96867 -:102200004FF0FF33091BA960FB61F8BD000C0040D3 -:102210005433002010B41A4C234653F8141F814243 -:1022200010D0416802680A60026851609A424FF01B -:102230000001C16003D0936881680B4493605DF82E -:10224000044B70470A68626100209A425360C8607C -:1022500003D15DF8044B01F07FB9936888680344AB -:102260009360084A206A526A121A9342E7D9991A6F -:10227000012998BF931C18445DF8044B01F072B912 -:1022800054330020000C004000207047FEE700009F -:10229000704700004FF0FF3070470000022906D061 -:1022A000032906D00129064818BF002070470548B9 -:1022B0007047032A9ABF044800EBC2000020704711 -:1022C000683D00081C3D00080824002070B59AB045 -:1022D00001AD064608462946144600F095F8284602 -:1022E000FEF7A8FDC0B2431C5B0086E8180023700F -:1022F00003236370002302341946DAB2904204F1DA -:10230000020401D81AB070BDEA5C04F8022C04F88B -:10231000011C0133F1E7000008B5202383F3118885 -:102320000348FFF7E9FA002383F3118808BD00BFD3 -:102330009433002010B50446052916D8DFE801F0D3 -:1023400016150316161D202383F311880E4A01214A -:10235000FFF772FB20460D4A0221FFF76DFB0C4888 -:10236000FFF790FA002383F3118810BD202383F335 -:1023700011880748FFF75CFAF4E7202383F31188FC -:102380000348FFF773FAEDE7983C0008BC3C0008EF -:102390009433002038B50C4D0C4C0D492A4604F1FD -:1023A0000800FFF793FF05F1CA0204F11000094984 -:1023B000FFF78CFF05F5CA7204F118000649BDE865 -:1023C0003840FFF783BF00BF5C380020082400209E -:1023D000E83C0008F53C0008033D000870B50446E1 -:1023E00008460D46FEF726FDC6B2204601340378A6 -:1023F0000BB9184670BD32462946FEF703FD00288A -:10240000F3D1012070BD00002DE9F84F05460C46C0 -:10241000FEF710FD2B49C6B22846FFF7DFFF08B1D3 -:102420000336F6B228492846FFF7D8FF08B1103620 -:10243000F6B2632E0DD8DFF88C80DFF88C90234F36 -:10244000DFF890A0DFF890B02E7846B92670BDE88E -:10245000F88F29462046BDE8F84F01F099BB252E9C -:102460002CD1072241462846FEF7CCFC58B9DBF8B0 -:1024700000302360DBF804306360BBF80830238150 -:1024800007350A34E0E7082249462846FEF7BAFC39 -:10249000A0B90F4BA21C13F8011F09095345C95DD0 -:1024A00002F8021C197801F00F0102F10202C95D65 -:1024B00002F8031CEFD118340835C5E72670013542 -:1024C0000134C1E7883D0008033D00089B3D00083A -:1024D0000F7AFF1F1B7AFF1F903D0008BFF34F8F3D -:1024E000024AD368DB03FCD4704700BF003C0240C3 -:1024F00008B5094B1B7873B9FFF7F0FF074B1A6952 -:10250000002ABFBF064A5A6002F188325A601A6830 -:1025100022F480621A6008BDBA3A0020003C0240F2 -:102520002301674508B50B4B1B7893B9FFF7D6FF1E -:10253000094B1A6942F000421A611A6842F480524B -:102540001A601A6822F480521A601A6842F4806293 -:102550001A6008BDBA3A0020003C0240172870B546 -:1025600013D80B4A0B4C137863B90B4E4FF0006134 -:1025700044F8231056F823500133182B2944F7D17F -:102580000123137054F8200070BD002070BD00BFFF -:102590001C3B0020BC3A0020AC3D0008014B53F826 -:1025A00020007047AC3D000818207047172810B570 -:1025B000044601D9002010BDFFF7D0FF064B53F8A9 -:1025C00024301844C21A0BB9012010BD1268013220 -:1025D000F0D1043BF6E700BFAC3D0008172810B56A -:1025E000044629D8FFF77AFFFFF782FF1349F32348 -:1025F000CB600C23B0FBF3F203FB1200D30143EAE0 -:10260000C003DBB243F4007343F002030B610B69B8 -:1026100043F480330B61FFF761FF2046FFF79EFF15 -:10262000074B53F8241000F0DDF8FFF77BFF20463E -:10263000BDE81040FFF7BABF002010BD003C0240CB -:10264000AC3D00082DE9F84312F00103154640D1D6 -:102650008218B2F1026F3CD22C4B1B6813F00103BD -:1026600037D02B4CFFF744FFF323E360FFF736FF2F -:1026700040F20127032D01D9830713D0244C0F46C4 -:10268000401A40F20118EB1B0B44012B00EB07062C -:10269000236924D823F001032361FFF743FF0120BE -:1026A000BDE8F883236923F44073236123693B4326 -:1026B000236151F8046B0660BFF34F8FFFF70EFFE5 -:1026C00003689E4208D0236923F001032361FFF7CA -:1026D00029FF0020BDE8F883043D0430CAE723F455 -:1026E00040732361236943EA08032361B94637F83D -:1026F000023B3380BFF34F8FFFF7F0FE3688B9F807 -:102700000030B6B2B342BED0DDE700BF00380240B1 -:10271000003C0240084908B50B7828B153B9FFF7CF -:10272000E7FE01230B7008BD23B1BDE80840087027 -:10273000FFF7F8BE08BD00BFBA3A002010B502444A -:10274000064B0439D2B2904200D110BD441C00B2F5 -:1027500053F8200041F8040FE0B2F4E7502800409D -:10276000104B30B51C6F240407D41C6F44F4007464 -:102770001C671C6F44F400441C670B4C236843F433 -:10278000807323600244094B0439D2B2904200D1D5 -:1027900030BD441C00B251F8045F43F82050E0B251 -:1027A000F4E700BF003802400070004050280040AD -:1027B00007B5012201A90020FFF7C0FF019803B06F -:1027C0005DF804FB13B50446FFF7F2FFA04206D004 -:1027D00002A9012241F8044D0020FFF7C1FF02B019 -:1027E00010BD000070470000034B1B689B0042BFF8 -:1027F000024B01221A707047743802401D3B0020C2 -:10280000014B1878704700BF1D3B0020064A5368F3 -:1028100023F001035360EFF30983683383F30988DE -:10282000002383F31188704730EF00E010B52023B8 -:1028300083F31188104B5B6813F4006318D0F1EE3A -:10284000103AEFF309844FF0807344F84C3C0B4B83 -:10285000DB6844F8083CA4F1680383F30988FFF7B8 -:10286000F9FB18B1064B44F8503C10BD054BFAE794 -:1028700083F3118810BD00BF00ED00E030EF00E0F1 -:10288000310300083403000870470000FEE7000031 -:10289000084A094B09498B4204D3094A0021934253 -:1028A00005D3704752F8040F43F8040BF3E743F8DD -:1028B000041BF4E7843F0008903D0020903D002079 -:1028C000903D0020836D30B500229D68446D114617 -:1028D0004FF0FF3004EB421301329542C3F8001968 -:1028E000C3F81019C3F80809C3F8001BC3F8101B7C -:1028F000C3F8080BEED24FF00113C4F81C3830BDFA -:10290000890141F02001016103699B06FCD412207A -:1029100000F0B4BE204B03EB80022DE9F047D2F863 -:102920000CE05D6DDEF81420461CD2F800C005EB0B -:10293000063605EB4018516861450BD3D5F83428AD -:10294000012303FA00F022EA0000C5F83408184613 -:10295000BDE8F087BEF81040ACEB0103A34228BFEE -:102960002346D8F81849A4B2B3EB840F10D8946862 -:102970001F46A4F1040959F804AFC6F800A0042FBB -:1029800001D9043FF7E71C440B4494605360D2E73D -:102990000020BDE8F08700BF203B002010B5054CAB -:1029A0002046FFF729F84FF0A0436365024BA3656B -:1029B00010BD00BF203B0020303E00080378012BF3 -:1029C00070B5054650D12A4B446D98421BD1294B16 -:1029D0005A6B42F080025A635A6D42F080025A6587 -:1029E0005A6D5A6942F080025A615A6922F0800297 -:1029F0005A610E2143205B69FEF768FC1E4BE360C1 -:102A00001E4BC4F800380023C4F8003EC0232360E6 -:102A10006E6D4FF45023A3633369002BFCDA01235E -:102A200033610C2000F02AFE3369DB07FCD412204E -:102A300000F024FE3369002BFCDA0026A66028464D -:102A4000FFF740FF6B68C4F81068DB68C4F81468CF -:102A5000C4F81C684BB90A4BA3614FF0FF336361A4 -:102A6000A36843F00103A36070BD064BF4E700BF09 -:102A7000203B0020003802404014004003002002A8 -:102A8000003C30C0083C30C0F8B5446D054600211C -:102A90002046FFF735FFA96D00234FF001128F6824 -:102AA000C4F834384FF00066C4F81C284FF0FF30EB -:102AB00004EB431201339F42C2F80069C2F8006B75 -:102AC000C2F80809C2F8080BF2D20B686A6DEB6510 -:102AD000636210231361166916F01006FBD11220F1 -:102AE00000F0CCFDD4F8003823F4FE63C4F80038BD -:102AF000A36943F4402343F01003A3610923C4F8FE -:102B00001038C4F814380A4BEB604FF0C043C4F8D7 -:102B1000103B084BC4F8003BC4F81069C4F80039F6 -:102B2000EB6D03F1100243F48013EA65A362F8BD74 -:102B30000C3E000840800010426D90F84E10D2F814 -:102B4000003823F4FE6343EA0113C2F800387047EB -:102B50002DE9F0410EB200EB86080D46D8F80C10B6 -:102B60000F6807F00303022B50D0032B50D03D4ACF -:102B70003D4F012B18BF1746446D4FEA451E04EB2D -:102B80000E030022C3F8102B8A6905F1100C002AED -:102B900040D04A8A05F158035B013A43E2500123D1 -:102BA000D4F81C2803FA0CF31343A6444A69C4F86A -:102BB0001C380023CEF8103905F13F03002A39D024 -:102BC0000A8A898B9208012988BF4A43C16D04EBA8 -:102BD0008303561841EA0242C66529465A602046D8 -:102BE000FFF78EFED8F80C301B8A43EA85531F434B -:102BF00005F148035B01E7500123D4F81C2803FAD0 -:102C000005F51543C4F81C58BDE8F081174FB3E72C -:102C1000174FB1E704EB4613D3F8002B22F4004220 -:102C2000C3F8002BD4F81C28012303FA0CF322EA82 -:102C30000303BAE704EB83030E4A5A6004EB46161B -:102C400029462046FFF75CFED6F8003923F40043FE -:102C5000C6F80039D4F81C38012202FA05F523EA37 -:102C60000505CFE7008000100080041000800810E8 -:102C700000800C1000040002826D1268C265FFF72C -:102C800021BE00005831436D49015B5813F40040E8 -:102C900004D013F4001F14BF01200220704700006D -:102CA0004831436D49015B5813F4004004D013F4DC -:102CB000001F14BF012002207047000000EB8101BB -:102CC000CB68196A0B6813604B685360704700004B -:102CD00000EB810330B5DD68AA691368D36019B9C8 -:102CE000402B84BF402313606B8A1468426D1C44E0 -:102CF000013CB4FBF3F46343033323F0030302EB1F -:102D0000411043EAC44343F0C043C0F8103B2B6872 -:102D100003F00303012B09B20ED1D2F8083802EBFD -:102D2000411013F4807FD0F8003B14BF43F0805370 -:102D300043F00053C0F8003B02EB4112D2F8003BD5 -:102D400043F00443C2F8003B30BD00002DE9F041E0 -:102D5000244D6E6D06EB40130446D3F8087BC3F890 -:102D6000087B38070AD5D6F81438190706D505EBBD -:102D700084032146DB6828465B689847FA072FD50D -:102D8000D6F81438DB072BD505EB8403D968CCB90A -:102D90008B69488A5E68B6FBF0F200FB12628AB962 -:102DA0001868DA6890420DD2121A83E814002023C2 -:102DB00083F311880B482146FFF78AFF84F31188BB -:102DC000BDE8F081012303FA04F26B8923EA0203D0 -:102DD0006B81CB6823B121460248BDE8F04118471A -:102DE000BDE8F081203B002000EB810370B5DD6879 -:102DF000436D6C692668E6604A0156BB1A444FF47D -:102E00000020C2F810092A6802F00302012A0AB25F -:102E10000ED1D3F8080803EB421410F4807FD4F8E5 -:102E2000000914BF40F0805040F00050C4F8000981 -:102E300003EB4212D2F8000940F00440C2F8000946 -:102E4000D3F83408012202FA01F10143C3F834181F -:102E500070BD19B9402E84BF4020206020682E8AA2 -:102E6000841940F00050013C1A44B4FBF6F440EAE7 -:102E7000C440C6E7F8B504461E48456D05EB44134B -:102E8000D3F80869C3F80869F10717D5D5F81038E1 -:102E9000DA0713D500EB8403D9684B691F68DA6839 -:102EA000974218D2D21B00271A605F60202383F359 -:102EB00011882146FFF798FF87F31188330617D54D -:102EC000D5F834280123A340134211D02046BDE891 -:102ED000F840FFF71FBD012303FA04F2038923EA38 -:102EE000020303818B68002BE8D021469847E5E771 -:102EF000F8BD00BF203B002096482DE9F84F456DF6 -:102F00006E69AB691E4016F4805F6E61044605D0A1 -:102F1000FEF7DEFDBDE8F84FFFF788BC002E12DAA1 -:102F2000D5F8003E8B489B071EBFD5F8003E23F026 -:102F30000303C5F8003ED5F8043823F00103C5F8B3 -:102F40000438FEF7EFFD370502D58248FEF7DEFDB7 -:102F5000B0040CD5D5F8083813F0060FEB6823F44D -:102F600070530CBF43F4105343F4A053EB6031078C -:102F700004D56368DB680BB176489847F2025AD4EF -:102F8000B3020CD5D4F85480DFF8C8A100274FF065 -:102F90000109A36D9B68F9B28B4280F08780F70628 -:102FA00019D5616D0A6AC2F30A1702F00F0302F421 -:102FB000F012B2F5802F00F0A180B2F5402F0AD1B7 -:102FC00004EB830301F58051DB68186A00231A467D -:102FD0009F4240F087803003D5F8184813D5E103AD -:102FE00002D50020FFF7B2FEA20302D50120FFF7B1 -:102FF000ADFE630302D50220FFF7A8FE270302D52A -:103000000320FFF7A3FE750384D5E00702D5002057 -:10301000FFF730FFA10702D50120FFF72BFF620762 -:1030200002D50220FFF726FF23077FF573AF0320A9 -:10303000FFF720FF6EE7D4F85480DFF818A10027CF -:103040004FF00109A36D9B685FFA87FB5B4597D33F -:1030500008EB4B13D3F8002902F44022B2F5802F7D -:1030600022D1D3F80029002A1EDAD3F8002942F031 -:103070009042C3F80029D3F80029002AFBDB594607 -:10308000606DFFF73DFC228909FA0BF322EA030386 -:10309000238104EB8B03DB689B6813B159465046D0 -:1030A00098475846FFF736FC0137CBE708EB41124B -:1030B000D2F8003B03F44023B3F5802F10D1D2F8AF -:1030C000003B002B0CDA628909FA01F322EA0303C0 -:1030D000638104EB8103DB68DB680BB150469847E2 -:1030E000013756E79C0708BF0A68072B98BF027094 -:1030F00003F101039CBF120A013069E7023304EBBC -:10310000830201F58051526890690268D0F808C0C6 -:103110004068A2EB000E0022104697420AD104EB51 -:10312000830463689B699A683A449A605A681744B2 -:103130005F6050E712F0030F08BF0868964588BF2C -:103140008CF8000002F1010284BF000A0CF1010CAE -:10315000E3E700BF203B0020436D03EB4111D1F8B2 -:10316000003B43F40013C1F8003B7047436D03EB91 -:103170004111D1F8003943F40013C1F80039704708 -:10318000436D03EB4111D1F8003B23F40013C1F868 -:10319000003B7047436D03EB4111D1F8003923F434 -:1031A0000013C1F80039704730B5039C0172043335 -:1031B00004FB0325C361049B03630021059B00609E -:1031C0004060C16042610261856104624262816265 -:1031D000C162436330BD00000022416A4161016168 -:1031E000C2608262C2626FF00101FEF7BBBF0000E5 -:1031F00003694269934203D1C2680AB10020704753 -:10320000181D704703691960C2680132C260C26943 -:10321000134482690361934224BF436A036100211E -:10322000FEF794BF38B504460D46E3683BB16269CA -:10323000131D1268A3621344E362002038BD237A91 -:1032400033B929462046FEF771FF0028EDDA38BD74 -:103250006FF00100FBE70000C368C269013BC36077 -:103260004369134482694361934224BF436A4361C3 -:1032700000238362036B03B11847704770B52023A6 -:10328000044683F31188866A3EB9FFF7CBFF0546F3 -:1032900018B186F31188284670BDA36AE26A13F854 -:1032A000015BA362934202D32046FFF7D5FF0023C0 -:1032B00083F31188EFE700002DE9F84F04460E462E -:1032C00090469946202787F311880025AA46D4F80E -:1032D00028B0BBF1000F09D149462046FFF7A2FFF5 -:1032E00020B18BF311882846BDE8F88FA16AE36A04 -:1032F000A8EB050B5B1A9B4528BF9B46BBF1400F13 -:103300001BD9334601F1400251F8040B43F8040B7A -:103310009142F9D1A36A40334036A3624035A26A94 -:10332000E36A9A4202D32046FFF796FF8AF3118898 -:103330004545D8D287F31188C9E730465A46FDF78C -:1033400057FDA36A5B445E44A3625D44E7E7000067 -:1033500010B5029C0172043303FB0421C3610023F6 -:103360008362C362039B0363049B00604060C4608C -:1033700042610261816104624262436310BD0000E8 -:10338000026AC260426A4261026100228262C262D3 -:103390006FF00101FEF7E6BE436902699A4203D16C -:1033A000C2680AB100207047184650F8043B0B6011 -:1033B00070470000C368C2690133C36043691344A6 -:1033C00082694361934224BF436A43610021FEF74F -:1033D000BDBE000038B504460D46E3683BB1236925 -:1033E0001A1DA262E2691344E362002038BD237A09 -:1033F00033B929462046FEF799FE0028EDDA38BD9C -:103400006FF00100FBE7000003691960C268013A30 -:10341000C260C269134482690361934224BF436A54 -:10342000036100238362036B03B1184770470000F8 -:1034300070B5202304460E4683F31188856A35B99A -:103440001146FFF7C7FF10B185F3118870BDA36A5D -:103450001E70A36AE26A01339342A36204D3E16956 -:1034600020460439FFF7D0FF002080F3118870BD9B -:103470002DE9F84F04460D4691469A464FF0200834 -:1034800088F311880026B346A76A4FB951462046F3 -:10349000FFF7A0FF20B187F311883046BDE8F88F11 -:1034A000A06AE76AA9EB06033F1A9F4228BF1F469E -:1034B000402F1BD905F1400355F8042B40F8042B8D -:1034C0009D42F9D1A36A4033A3624036A26AE36AFF -:1034D0009A4204D3E16920460439FFF795FF8BF344 -:1034E00011884E45D9D288F31188CDE729463A464E -:1034F000FDF77EFCA36A3B443D44A3623E44E5E7FE -:10350000026943699A4203D1C3681BB918467047E0 -:103510000023FBE7836A002BF8D0043B9B1AF5D00D -:103520001360C368013BC360C3691A4483690261C5 -:103530009A4224BF436A0361002383620123E5E7C3 -:1035400000F034B9034B002258631A610222DA609A -:10355000704700BF000C0040014B0022DA6070474A -:10356000000C0040014B5863704700BF000C004046 -:10357000FEE7000010B5174CFEF7DEFCFEF700FE7C -:10358000802215492046FEF785FD012344F8180CDA -:103590000374124B124AD96821F4E0610904090C42 -:1035A0000A431049DA60CA6842F08072CA600E4964 -:1035B0000A6842F001020A601022DA77202283F8BA -:1035C0002220002383F3118862B60848BDE810402A -:1035D000FEF782BD7C3300203C3E000800ED00E099 -:1035E0000003FA05F0ED00E0001000E0443E0008A2 -:1035F0002DE9F84F1F4CDFF88090656904F114073E -:103600004FF00008D9F82430266AAA689E1B96421B -:103610001DD34FF0200AAA68236AD5F80CB01344D2 -:1036200023622B68BB425F60A6EB02066361C5F8AC -:103630000C8001D1FFF790FF88F311882869D847E3 -:103640008AF311886569AB689E42E4D2DAE7626961 -:10365000BA420CD0916823628E1B9660A86802283B -:103660002CBF1818981CBDE8F84FFFF77BBFBDE8CA -:10367000F88F00BF54330020000C0040034B596802 -:103680005A68521A9042FBD8704700BF001000E001 -:103690004B6843608B688360CB68C3600B69436190 -:1036A0004B6903628B6943620B68036070470000DB -:1036B00008B5224B22481A6940F2FF110A431A61E9 -:1036C0001A6922F4FF7222F001021A611A691A6B58 -:1036D0000A431A631A6D0A431A651A4A1B6D11468A -:1036E000FFF7D6FF184802F11C01FFF7D1FF17487A -:1036F00002F13801FFF7CCFF154802F15401FFF742 -:10370000C7FF144802F17001FFF7C2FF124802F12F -:103710008C01FFF7BDFF114802F1A801FFF7B8FFC8 -:103720000F4802F1C401FFF7B3FF0E4802F1E001B8 -:10373000FFF7AEFFBDE8084000F0A4B80038024033 -:1037400000000240643E00080004024000080240FD -:10375000000C024000100240001402400018024019 -:10376000001C02400020024008B500F0FFF9FFF7FE -:1037700001FFFFF739F8BDE80840FEF70BBE000077 -:1037800070470000084B1A69920710B508D500244D -:103790001C61202383F31188FFF72AFF84F311882B -:1037A000BDE81040FFF742B8000C0040104B1A6C07 -:1037B00042F008021A641A6E42F008021A660D4AB4 -:1037C0001B6E936843F0080393600B4B53229A627D -:1037D0004FF0FF32DA6200229A615A63DA605A606F -:1037E00001225A6108211A603220FDF76FBD00BF27 -:1037F00000380240002004E0000C00401F4B1A6912 -:103800006FEAC2526FEAD2521A611A69C2F3080211 -:103810001A614FF0FF301A695A69586100215A69DC -:1038200059615A691A6A62F080521A621A6A02F081 -:1038300080521A621A6A5A6A58625A6A59625A6AF5 -:103840001A6C42F080521A641A6E42F080521A6664 -:103850001A6E0B4A106840F480701060186F00F404 -:103860004070B0F5007F1EBF4FF4803018671967B5 -:10387000536823F40073536000F058B900380240D5 -:1038800000700040324B4FF080521A64314A4FF4BE -:10389000404111601A6842F001021A601A689207EA -:1038A000FCD59A6822F003029A60294B19469A685F -:1038B00012F00C02FBD1186800F0F90018609A6051 -:1038C0001A6842F480321A600B689B03FCD54B6F78 -:1038D00043F001034B671E4B5A6F9007FCD51E4AFD -:1038E0005A601A6842F080721A601A4A5368590482 -:1038F000FCD5174B1A689201FCD5184A9A6003222E -:10390000C3F88C20164B1A68164B9A42164B1BD1E3 -:10391000164A1168164A914216D140F205121A60F1 -:103920000B4B9A6842F002029A609A6802F00C020D -:10393000082AFAD15A6C42F480425A645A6E42F410 -:1039400080425A665B6E704740F20572E7E700BF3F -:103950000038024000700040185440070094883836 -:10396000002004E011640020003C024000ED00E073 -:1039700041C20F41084A08B5536911680B4003F072 -:103980000103536123B1054A13680BB1506898478E -:10399000BDE80840FEF74ABF003C01409C250020DE -:1039A000084A08B5536911680B4003F002035361DC -:1039B00023B1054A93680BB1D0689847BDE8084029 -:1039C000FEF734BF003C01409C250020084A08B5A2 -:1039D000536911680B4003F00403536123B1054A96 -:1039E00013690BB150699847BDE80840FEF71EBF48 -:1039F000003C01409C250020084A08B55369116825 -:103A00000B4003F00803536123B1054A93690BB1DE -:103A1000D0699847BDE80840FEF708BF003C014068 -:103A20009C250020084A08B5536911680B4003F033 -:103A30001003536123B1054A136A0BB1506A9847CA -:103A4000BDE80840FEF7F2BE003C01409C25002086 -:103A5000174B10B55C691A68144004F478725A6107 -:103A6000A30604D5134A936A0BB1D06A984760063F -:103A700004D5104A136B0BB1506B9847210604D53F -:103A80000C4A936B0BB1D06B9847E20504D5094AF9 -:103A9000136C0BB1506C9847A30504D5054A936C81 -:103AA0000BB1D06C9847BDE81040FEF7BFBE00BF19 -:103AB000003C01409C2500201A4B10B55C691A6837 -:103AC000144004F47C425A61620504D5164A136D11 -:103AD0000BB1506D9847230504D5134A936D0BB174 -:103AE000D06D9847E00404D50F4A136E0BB1506EA9 -:103AF0009847A10404D50C4A936E0BB1D06E984739 -:103B0000620404D5084A136F0BB1506F9847230421 -:103B100004D5054A936F0BB1D06F9847BDE81040AC -:103B2000FEF784BE003C01409C250020062108B51C -:103B30000846FDF7CBFB06210720FDF7C7FB062152 -:103B40000820FDF7C3FB06210920FDF7BFFB062176 -:103B50000A20FDF7BBFB06211720FDF7B7FB062166 -:103B60002820BDE80840FDF7B1BB000008B5FFF70D -:103B700045FEFDF727FAFDF74FFDFDF73BFFFDF78B -:103B80000FFEFFF7FDFDBDE80840FFF7D9BC0000C0 -:103B9000034611F8012B03F8012B002AF9D17047D5 -:103BA000121012131211000053544D3332463F3F8E -:103BB0003F000000012033000010410101105A01B4 -:103BC000031059010710310100000000A83B000854 -:103BD0003F00000013040000083C00083F00000004 -:103BE00019040000123C00083F00000021040000FE -:103BF0001C3C00083F000000943300201C260020DD -:103C0000842A0020EC2E002053544D3332463430A9 -:103C1000780053544D3332463432780053544D3388 -:103C20003246343436585800009600000000000038 -:103C30000000000000000000000000000000000084 -:103C4000E1150008CD15000809160008F515000853 -:103C500001160008ED150008D9150008C515000863 -:103C600015160008000000001917000805170008C5 -:103C7000411700082D1700083917000825170008FC -:103C800011170008FD1600089D170008000000002D -:103C90000100000000000000020000000000000021 -:103CA00045190008AD190008400040002C380020DC -:103CB0003C3800200200000000000000030000006B -:103CC00000000000F11900080000000010000000D2 -:103CD0004C3800200000000001000000000000003F -:103CE000203B0020010102004865782F50726F666A -:103CF00069434E430043756265507572706C652D63 -:103D0000424C002553455249414C250035230008BB -:103D10009D220008B1180008192300084300000084 -:103D2000243D000809024300020100C032090400DA -:103D30000001020201000524001001052401000118 -:103D4000042402020524060001070582030800FF7F -:103D500009040100020A00000007050102400000FA -:103D6000070581024000000012000000703D0008BD -:103D70001201100102000040AE2D051000020102E8 -:103D8000030100000403090425424F415244250069 -:103D900043756265507572706C6500303132333432 -:103DA000353637383941424344454600004000002B -:103DB0000040000000400000004000000000010042 -:103DC00000000200000002000000020000000200EB -:103DD000000002000000020000000200004000009D -:103DE0000040000000400000004000000000010012 -:103DF00000000200000002000000020000000200BB -:103E000000000200000002000000020000000000AC -:103E1000391B0008191E0008C51E0008400040009C -:103E2000803B0020803B002001000000903B0020F0 -:103E30008000000040010000030000006D61696E19 -:103E4000000000005C3E0008983B0020903D0020F0 -:103E500001000000713500080000000069646C6515 -:103E6000000000000500802A00020000AAAAAAAAF9 -:103E70000A000000FCFF00000000000000A00A0093 -:103E80000004050000000000AAAAAAAA00080A006F -:103E9000DFFC0000000000000000000014000054DF -:103EA00000000000AAAAAAAA14000054FFFF000004 -:103EB000000000000000000080699A01000000007E -:103EC000AAAA8AAA40555501FFFF0000007070079A -:103ED000777000000081020100000000AAAAAAAACF -:103EE00000410100FFFF000000000080080000000A -:103EF0000000000000000000AAAAAAAA000000001A -:103F0000FFFF0000000000000000000000000000B3 -:103F100000000000AAAAAAAA00000000FFFF0000FB -:103F20000000000000000000000000000000000091 -:103F30000A00000000000000030000000000000074 -:103F40000000000000000000000000000000000071 -:103F50000000000000000000000000000000000061 -:103F6000FF0096000000000804000000843D0008E7 -:103F70000000000000000000000000000000000041 -:083F8000000000000000000039 +:1001E00002E000F000F8FEE772B6374880F30888B6 +:1001F000364880F3098836483649086040F20000E6 +:10020000CCF200004EF63471CEF200010860BFF36C +:100210004F8FBFF36F8F40F20000C0F2F0004EF638 +:100220008851CEF200010860BFF34F8FBFF36F8F8C +:100230004FF00000E1EE100A4EF63C71CEF20001E4 +:100240000860062080F31488BFF36F8F02F074FA01 +:1002500003F074F94FF055301F491B4A91423CBFDF +:1002600041F8040BFAE71D49184A91423CBF41F896 +:10027000040BFAE71A491B4A1B4B9A423EBF51F83E +:10028000040B42F8040BF8E700201849184A914281 +:100290003CBF41F8040BFAE702F052FA03F0A2F96E +:1002A000144C154DAC4203DA54F8041B8847F9E7A7 +:1002B00000F042F8114C124DAC4203DA54F8041B22 +:1002C0008847F9E702F03ABA000600200022002031 +:1002D0000000000808ED00E00000002000060020FB +:1002E000A03E0008002200204C22002050220020C6 +:1002F00020310020E0010008E0010008E0010008D2 +:10030000E00100082DE9F04F2DED108AC1F80CD066 +:10031000C3689D46BDEC108ABDE8F08F002383F3CF +:1003200011882846A047002001F098FDFEE701F063 +:1003300027FD00DFFEE7000038B500F0DFFB02F02C +:10034000CFF940B1164B6FF03F01002259720F21D7 +:100350001A729972DA7202F0A9F9054602F0E2F90E +:100360000446C8B90F4B9D4218D001339D4218BFB7 +:10037000044641F2883504BF01240025002002F024 +:100380009FF90CB100F076F800F018FD284600F057 +:10039000C1F800F06FF8F9E70025EFE70546EDE753 +:1003A00000220020010007B008B500F073FBA0F1A7 +:1003B00020035842584108BD07B541F212030221FB +:1003C00001A8ADF8043000F083FB03B05DF804FB36 +:1003D00038B5302383F31188174803680BB101F057 +:1003E00009FE164A144800234FF47A7101F0F8FD13 +:1003F000002383F31188124C236813B12368013B57 +:100400002360636813B16368013B63600D4D2B7813 +:1004100033B963687BB9022000F03AFC3223636091 +:100420002B78032B07D163682BB9022000F030FC36 +:100430004FF47A73636038BD50220020D103000866 +:100440007023002068220020084B187003280CD865 +:10045000DFE800F008050208022000F00FBC0220CF +:1004600000F002BC024B00225A6070476822002054 +:1004700070230020234B244A10B51C461968013113 +:100480003FD004339342F9D16268A24239D31F4B63 +:100490009B6803F1006303F580439A4231D2002048 +:1004A00000F046FB0220FFF7CFFF194B1A6C002229 +:1004B0001A64196E1A66196E596C5A64596E5A6626 +:1004C0005A6E5A6942F080025A615A6922F08002DB +:1004D0005A615A691A6942F000521A611A6922F087 +:1004E00000521A611B6972B64FF0E0233021C3F845 +:1004F000084DD4E9003281F311889D4683F30888C2 +:10050000104710BD004000082040000800220020D5 +:10051000003802402DE9F04F93B0AA4B0090202202 +:10052000FF210AA89D6800F0F3FBA74A1378A3B93E +:10053000A648012103601170302383F311880368FA +:100540000BB101F057FDA24AA04800234FF47A7185 +:1005500001F046FD002383F31188009B13B19D4BEE +:10056000009A1A609C4A009C1378032B1EBF00233C +:100570001370984A4FF0000A18BF5360D34656468E +:10058000D146012000F07AFB24B1924B1B68002B6E +:1005900000F01182002000F07DFA0390039B002BF5 +:1005A000F2DB012000F060FB039B213B162BE8D817 +:1005B00001A252F823F000BF150600083D0600080E +:1005C000D10600088305000883050008830500089C +:1005D0005B0700082B09000845080008A708000869 +:1005E000CF080008F508000883050008070900087F +:1005F0008305000879090008B5060008830500088E +:10060000BD09000821060008B5060008830500089A +:10061000A70800080220FFF7C7FE002840F0F58178 +:10062000009B0221BAF1000F08BF1C4605A841F249 +:100630001233ADF8143000F04BFAA2E74FF47A70A1 +:1006400000F028FA071EEBDB0220FFF7ADFE0028C2 +:10065000E6D0013F052F00F2DA81DFE807F0030A58 +:100660000D10133605230593042105A800F030FA78 +:1006700017E054480421F9E758480421F6E75848A0 +:100680000421F3E74FF01C08404600F053FA08F14C +:1006900004080590042105A800F01AFAB8F12C0FFF +:1006A000F2D1012000FA07F747EA0B0B5FFA8BFB48 +:1006B0004FF0000900F078FB26B10BF00B030B2B79 +:1006C00008BF0024FFF778FE5BE746480421CDE72A +:1006D000002EA5D00BF00B030B2BA1D10220FFF7AE +:1006E00063FE074600289BD0012000F021FA02207B +:1006F000FFF7AAFE00261FFA86F8404600F028FA07 +:10070000044690B10021404600F032FA013600283C +:10071000F1D1BA46044641F21213022105A8ADF800 +:1007200014303E4600F0D4F92BE70120FFF78CFE91 +:100730002546244B9B68AB4207D9284600F0FAF9BE +:10074000013040F067810435F3E7234B00251D702D +:10075000204BBA465D603E46ACE7002E3FF460AFEA +:100760000BF00B030B2B7FF45BAF0220FFF76CFE4B +:10077000322000F08FF9B0F10008FFF651AF18F009 +:1007800003077FF44DAF0F4A926808EB05039342CD +:100790003FF646AFB8F5807F3FF742AF124B01936B +:1007A000B84523DD4FF47A7000F074F90390039A92 +:1007B000002AFFF635AF019B039A03F8012B01379E +:1007C000EDE700BF002200206C2300205022002013 +:1007D000D10300087023002068220020042200209A +:1007E000082200200C2200206C220020C820FFF7E5 +:1007F000DBFD074600283FF413AF1F2D11D8C5F1CC +:10080000200242450AAB25F0030028BF4246834937 +:100810000192184400F056FA019A8048FF2100F036 +:1008200077FA4FEAA8037D490193C8F38702284667 +:1008300000F076FA064600283FF46DAF019B05EB09 +:10084000830537E70220FFF7AFFD00283FF4E8AE4D +:1008500000F0BAF900283FF4E3AE0027B846704B29 +:100860009B68BB4218D91F2F11D80A9B01330ED0A9 +:1008700027F0030312AA134453F8203C0593404683 +:10088000042205A900F0F6FA04378046E7E7384667 +:1008900000F050F90590F2E7CDF81480042105A886 +:1008A00000F016F906E70023642104A8049300F081 +:1008B00005F900287FF4B4AE0220FFF775FD00288B +:1008C0003FF4AEAE049800F067F90590E6E7002328 +:1008D000642104A8049300F0F1F800287FF4A0AE8E +:1008E0000220FFF761FD00283FF49AAE049800F063 +:1008F00063F9EAE70220FFF757FD00283FF490AEC6 +:1009000000F072F9E1E70220FFF74EFD00283FF406 +:1009100087AE05A9142000F06DF904210746049064 +:1009200004A800F0D5F83946B9E7322000F0B2F853 +:10093000071EFFF675AEBB077FF472AE384A9268A9 +:1009400007EB090393423FF66BAE0220FFF72CFD45 +:1009500000283FF465AE27F003074F44B9453FF444 +:10096000A9AE484600F0E6F80421059005A800F07D +:10097000AFF809F10409F1E74FF47A70FFF714FDBD +:1009800000283FF44DAE00F01FF9002844D00A9B28 +:1009900001330BD008220AA9002000F0C1F9002879 +:1009A0003AD02022FF210AA800F0B2F9FFF704FD97 +:1009B0001C4801F059FA13B0BDE8F08F002E3FF447 +:1009C0002FAE0BF00B030B2B7FF42AAE0023642118 +:1009D00005A8059300F072F8074600287FF420AEC2 +:1009E0000220FFF7E1FC804600283FF419AEFFF734 +:1009F000E3FC41F2883001F037FA059800F018FA6C +:100A0000464600F0D1F93C46BBE5064652E64FF0BB +:100A1000000905E6BA467EE637467CE66C220020F1 +:100A200000220020A08601002DE9F84F4FF47A73D0 +:100A3000DFF85880DFF8589006460D4602FB03F7B2 +:100A4000002498F900305A1C5FFA84FA01D0A342BE +:100A500012D159F8240003682A46D3F820B0314651 +:100A60003B46D847854207D1074B012083F800A0B9 +:100A7000BDE8F88F0124E4E7002CFBD04FF4FA70B6 +:100A800001F0F2F90020F3E7B82300201022002043 +:100A90001422002007B50023024601210DF10700B2 +:100AA0008DF80730FFF7C0FF20B19DF8070003B0B5 +:100AB0005DF804FB4FF0FF30F9E700000A4608B587 +:100AC0000421FFF7B1FF80F00100C0B2404208BD31 +:100AD00030B4074B0A461978064B53F82140236877 +:100AE000DD69054B0146AC46204630BC604700BF7F +:100AF000B823002014220020A086010070B501F068 +:100B0000D3FC094E094D3080002428683388834285 +:100B100008D901F0C3FC2B6804440133B4F5804FBD +:100B20002B60F2D370BD00BFBA23002078230020D1 +:100B300001F070BD00F1006000F580400068704772 +:100B400000F10060920000F5804001F0FBBC000065 +:100B5000054B1A68054B1B889B1A834202D9104427 +:100B600001F09CBC0020704778230020BA230020AD +:100B700038B5084D044629B128682044BDE83840FE +:100B800001F0ACBC2868204401F090FC0028F3D0B0 +:100B900038BD00BF7823002010F003030AD1B0F560 +:100BA000047F05D200F10050A0F51040D0F80038C5 +:100BB000184670470023FBE700F10050A0F51040F5 +:100BC000D0F8100A70470000064991F8243033B17C +:100BD0000023086A81F824300822FFF7B1BF012002 +:100BE000704700BF7C230020014B1868704700BF8E +:100BF000002004E070B5194B1D68194B0138C5F38E +:100C00000B0408442D0C04221E88A6420BD15C68FC +:100C10000A46013C824213460FD214F9016F4EB1CD +:100C200002F8016BF6E7013A03F10803ECD18142C7 +:100C30000B4602D22C2203F8012B0A4A05241688FF +:100C4000AE4204D1984284BF967803F8016B013C10 +:100C500002F10402F3D1581A70BD00BF002004E075 +:100C6000503B00083C3B0008022802BF024B4FF4F7 +:100C700080529A61704700BF00100240022802BFF4 +:100C8000024B4FF080529A61704700BF0010024043 +:100C9000022801BF024A536983F4805353617047AD +:100CA0000010024070B504464FF47A764CB1412CE6 +:100CB000254628BF412506FB05F001F0D5F8641B49 +:100CC000F4E770BD10B50023934203D0CC5CC4544C +:100CD0000133F9E710BD000010B5013810F9013FEC +:100CE0003BB191F900409C4203D11AB10131013A64 +:100CF000F4E71AB191F90020981A10BD1046FCE7EC +:100D000003460246D01A12F9011B0029FAD1704796 +:100D100002440346934202D003F8011BFAE77047EE +:100D20002DE9F8431F4D144695F8242007468846C0 +:100D300052BBDFF870909CB395F824302BB9202279 +:100D4000FF2148462F62FFF7E3FF95F82400C0F12A +:100D50000802A24228BF2246D6B24146920005EBC5 +:100D60008000FFF7AFFF95F82430A41B1E44F6B2B5 +:100D7000082E17449044E4B285F82460DBD1FFF7D5 +:100D800023FF0028D7D108E02B6A03EB82038342BC +:100D9000CFD0FFF719FF0028CBD10020BDE8F883A2 +:100DA0000120FBE77C230020024B1A78024B1A70CB +:100DB000704700BFB82300201022002038B5174C20 +:100DC000174D204600F0B6FB2946204600F0DEFB1A +:100DD0002D686A6D936B23F4002393634FF47A704C +:100DE000FFF760FF0F49284600F0D6FC6A6D0E4DF4 +:100DF000936B28680D4943F400239363A0424FF49A +:100E0000E1330B6001D000F0F5FA6868A04204D02D +:100E1000BDE83840054900F0EDBA38BD98280020FB +:100E20005C3C0008643C000814220020A42300203D +:100E300070B50C4B0C4D1E780C4B55F826209A4281 +:100E400004460DD00A4B002114221846FFF760FF1C +:100E50000460014655F82600BDE8704000F0CABAAB +:100E600070BD00BFB8230020142200209828002065 +:100E7000A423002030B5094D0A4491420DD011F849 +:100E8000013B5840082340F30004013B2C4013F081 +:100E9000FF0384EA5000F6D1EFE730BD2083B8EDC0 +:100EA000026843681143016003B1184770470000AE +:100EB000024AD36843F0C003D36070470044004047 +:100EC00010B5054C054A0021204600F071FA044A8D +:100ED000044BC4E9972310BDBC230020B10E0008C9 +:100EE0000044004080DE8002234A037C002918BFB2 +:100EF0000A46012B30B5C0F868220CD11F4B98422E +:100F000009D11F4B196C41F400311964196E41F479 +:100F1000003119661B6EB2F904501468D0F86032C3 +:100F2000D0F85C12002D03EB5403B3FBF4F3BEBF07 +:100F300023F0070503F0070343EA450394888B6019 +:100F4000D38843F040030B61138943F001034B61E5 +:100F500044F4045343F02C03CB6004F4A054002366 +:100F60000B60B4F5806F0B684B680CBF7F23FF23C9 +:100F700080F8643230BD00BF703B0008BC23002005 +:100F8000003802402DE9F041D0F85C62F768336820 +:100F9000DA0504469DB20DD5302383F311884FF452 +:100FA00080610430FFF77CFF6FF4807333600023AF +:100FB00083F31188302383F3118804F1040815F0BA +:100FC0002F033AD183F31188380615D5290613D596 +:100FD000302383F3118804F1380000F065F900280C +:100FE0004EDA0821201DFFF75BFF4FF67F733B4071 +:100FF000F360002383F311887A0616D56B0614D5A7 +:10100000302383F31188D4E913239A420AD1236C45 +:1010100043B127F040073F041021201D3F0CFFF78C +:101020003FFFF760002383F31188D4F86822D36868 +:1010300043B3BDE8F041106918472B0714D015F0F1 +:10104000080F0CBF00214FF48071E80748BF41F042 +:101050002001AA0748BF41F040016B0748BF41F09B +:1010600080014046FFF71CFFAD06736805D594F874 +:1010700064122046194000F0CBF93568ADB29EE706 +:101080007060B6E7BDE8F081F8B51546826806697C +:10109000AA420B46816938BF8568761AB542044674 +:1010A0000BD218462A46FFF70DFEA3692B44A36115 +:1010B000A3685B1BA3602846F8BD0CD918463246CE +:1010C000FFF700FEAF1BE1683A463044FFF7FAFD38 +:1010D000E3683B44EBE718462A46FFF7F3FDE36875 +:1010E000E5E7000083689342F7B51546044638BF2C +:1010F0008568D0E90460361AB5420BD22A46FFF75C +:10110000E1FD63692B446361A36828465B1BA36010 +:1011100003B0F0BD0DD932460191FFF7D3FD01991F +:10112000E068AF1B3A463144FFF7CCFDE3683B442F +:10113000E9E72A46FFF7C6FDE368E4E710B50A448D +:101140000024C361029B8460C0E90000C0E905116E +:10115000C1600261036210BD08B5D0E90532934257 +:1011600001D1826882B98268013282605A1C426170 +:101170001970D0E904329A4224BFC3684361002148 +:1011800000F08EFE002008BD4FF0FF30FBE70000AE +:1011900070B5302304460E4683F31188A568A5B1C7 +:1011A000A368A269013BA360531CA361157822695F +:1011B000934224BFE368A361E3690BB120469847DB +:1011C000002383F31188284607E03146204600F0CB +:1011D00057FE0028E2DA85F3118870BD2DE9F74F3C +:1011E00004460E4617469846D0F81C904FF0300A39 +:1011F0008AF311884FF0000B154665B12A46314637 +:101200002046FFF741FF034660B94146204600F003 +:1012100037FE0028F1D0002383F31188781B03B038 +:10122000BDE8F08FB9F1000F03D001902046C84708 +:10123000019B8BF31188ED1A1E448AF31188DCE7B9 +:10124000C0E90511C160C3611144009B8260C0E91F +:101250000000016103627047F8B504460D4616466A +:10126000302383F31188A768A7B1A368013BA3606B +:1012700063695A1C62611D70D4E904329A4224BF2A +:10128000E3686361E3690BB120469847002080F36F +:10129000118807E03146204600F0F2FD0028E2DA2E +:1012A00087F31188F8BD0000D0E905239A4210B5F4 +:1012B00001D182687AB98268013282605A1C8261E7 +:1012C0001C7803699A4224BFC3688361002100F03F +:1012D000E7FD204610BD4FF0FF30FBE72DE9F74F4B +:1012E00004460E4617469846D0F81C904FF0300A38 +:1012F0008AF311884FF0000B154665B12A46314636 +:101300002046FFF7EFFE034660B94146204600F055 +:10131000B7FD0028F1D0002383F31188781B03B0B8 +:10132000BDE8F08FB9F1000F03D001902046C84707 +:10133000019B8BF31188ED1A1E448AF31188DCE7B8 +:10134000026843681143016003B118477047000009 +:101350001430FFF743BF00004FF0FF331430FFF7A6 +:101360003DBF00003830FFF7B9BF00004FF0FF333A +:101370003830FFF7B3BF00001430FFF709BF00009B +:101380004FF0FF311430FFF703BF00003830FFF794 +:1013900063BF00004FF0FF323830FFF75DBF000041 +:1013A000012914BF6FF0130000207047FFF788BDBC +:1013B00037B515460E4A026000224260C0E902229B +:1013C0000122044602740B46009000F15C014FF4C8 +:1013D00080721430FFF7B2FE00942B464FF48072F7 +:1013E00004F5AE7104F13800FFF72AFF03B030BDF9 +:1013F000843B000810B53023044683F31188FFF7BF +:1014000073FD02232374002080F3118810BD0000B7 +:1014100038B5C36904460D461BB904210844FFF7DB +:101420008FFF294604F11400FFF796FE002806DA24 +:10143000201D4FF40061BDE83840FFF781BF38BD83 +:10144000026843681143016003B118477047000008 +:1014500013B5446BD4F894341A681178042915D163 +:10146000217C022912D11979128901238B40134260 +:101470000CD101A904F14C0001F016FFD4F89444FA +:10148000019B21790246206800F0D0F902B010BD1E +:10149000143001F099BE00004FF0FF33143001F01A +:1014A00093BE00004C3001F06BBF00004FF0FF33E3 +:1014B0004C3001F065BF0000143001F067BE000041 +:1014C0004FF0FF31143001F061BE00004C3001F0EC +:1014D00037BF00004FF0FF324C3001F031BF000049 +:1014E0000020704710B5D0F894341A681178042998 +:1014F000044617D1017C022914D15979528901235C +:101500008B4013420ED1143001F0FAFD024648B16F +:10151000D4F894444FF4807361792068BDE810409A +:1015200000F072B910BD0000406BFFF7DBBF000098 +:10153000704700007FB5124B036000234360C0E991 +:101540000233012502260F4B0574044602900193D5 +:1015500000F18402294600964FF48073143001F0A4 +:10156000ABFD094B0294CDE9006304F523724FF4FF +:101570008073294604F14C0001F072FE04B070BD86 +:10158000AC3B000829150008511400080B683022F4 +:1015900082F311880A7903EB820290614A79093259 +:1015A00043F822008A7912B103EB82039861022387 +:1015B000C0F894140374002080F311887047000071 +:1015C00038B5037F044613B190F85430ABB9201DF1 +:1015D00001250221FFF734FF04F1140025776FF095 +:1015E000010100F069FC84F8545004F14C006FF0E4 +:1015F0000101BDE8384000F05FBC38BD10B50121E5 +:1016000004460430FFF71CFF0023237784F854308E +:1016100010BD000038B504460025143001F064FD0B +:1016200004F14C00257701F033FE201D84F854505E +:101630000121FFF705FF2046BDE83840FFF752BF04 +:1016400090F8443003F06003202B07D190F8452038 +:10165000212A4FF0000303D81F2A06D80020704724 +:10166000222AFBD1C0E90E3303E0034A826307223A +:10167000C2630364012070471C22002037B5D0F8F4 +:1016800094341A681178042904461AD1017C02297D +:1016900017D11979128901238B40134211D100F11E +:1016A0004C05284601F0B4FE58B101A9284601F0C6 +:1016B000FBFDD4F89444019B21790246206800F098 +:1016C000B5F803B030BD0000F0B500EB810385B084 +:1016D0009E6904460D46FEB1302383F3118804EB66 +:1016E0008507301D0821FFF7ABFEFB685B691B68AF +:1016F00006F14C001BB1019001F0E4FD019803A933 +:1017000001F0D2FD024648B1039B2946204600F075 +:101710008DF8002383F3118805B0F0BDFB685A698A +:101720001268002AF5D01B8A013B1340F1D104F165 +:101730004402EAE7093138B550F82140DCB13023E2 +:1017400083F31188D4F894241368527903EB82034D +:10175000DB689B695D6845B104216018FFF770FE86 +:10176000294604F1140001F0D5FC2046FFF7BAFE2B +:10177000002383F3118838BD7047000001F034B8AE +:10178000012303700023C0E90133C3618362036254 +:10179000C36243620363704738B50446302383F362 +:1017A00011880025C0E90355C0E90555416001F0E5 +:1017B0002BF80223237085F31188284638BD0000DA +:1017C00070B500EB810305465069DA600E46144699 +:1017D00018B110220021FFF79BFAA06918B110225E +:1017E0000021FFF795FA31462846BDE8704001F028 +:1017F000D5B80000826802F0011282600022C0E9C0 +:101800000422826101F056B9F0B400EB81044789EB +:10181000E4680125A4698D403D4345812360002390 +:10182000A2606360F0BC01F071B90000F0B400EB9D +:1018300081040789E468012564698D403D43058181 +:1018400023600023A2606360F0BC01F0EBB90000EC +:1018500070B50223002504460370C0E90255C0E9B3 +:101860000455C564856180F8345001F033F863682D +:101870001B6823B129462046BDE87040184770BD5B +:101880000378052B10B504460AD080F850300523A4 +:10189000037043681B680BB1042198470023A360C1 +:1018A00010BD00000178052906D190F8502043684A +:1018B00002701B6803B118477047000070B590F8BC +:1018C0003430044613B1002380F8343004F144026C +:1018D000204601F011F963689B68B3B994F844306D +:1018E00013F0600535D00021204601F0B1FB002146 +:1018F000204601F0A3FB63681B6813B10621204654 +:101900009847062384F8343070BD20469847002855 +:10191000E4D0B4F84A30E26B9A4288BFE36394F9AA +:101920004430E56B002B4FF0300380F20381002D33 +:1019300000F0F280092284F8342083F3118800211A +:10194000D4E90E232046FFF771FF002383F31188AB +:10195000DAE794F8452003F07F0343EA022340F2DC +:101960000232934200F0C58021D8B3F5807F48D081 +:101970000DD8012B3FD0022B00F09380002BB2D169 +:1019800004F14C02A2630222E2632364C1E7B3F5CF +:10199000817F00F09B80B3F5407FA4D194F846305E +:1019A000012BA0D1B4F84C3043F0020332E0B3F580 +:1019B000006F4DD017D8B3F5A06F31D0A3F5C06339 +:1019C000012B90D8636894F846205E6894F847101D +:1019D000B4F848302046B047002884D04368A36359 +:1019E0000368E3631AE0B3F5106F36D040F60242A5 +:1019F00093427FF478AF5C4BA3630223E36300233D +:101A0000C3E794F84630012B7FF46DAFB4F84C3047 +:101A100023F00203C4E90E55A4F84C30256478E79E +:101A2000B4F84430B3F5A06F0ED194F8463084F882 +:101A30004E30204600F0A6FF63681B6813B10121F9 +:101A400020469847032323700023C4E90E339CE704 +:101A500004F14F03A3630123C3E72378042B10D1C0 +:101A6000302383F311882046FFF7C4FE85F31188E5 +:101A70000321636884F84F5021701B680BB1204626 +:101A8000984794F84630002BDED084F84F3004237A +:101A9000237063681B68002BD6D00221204698472C +:101AA000D2E794F848301D0603F00F0120460AD50E +:101AB00001F014F8012804D002287FF414AF2B4B56 +:101AC0009AE72B4B98E700F0FBFFF3E794F84630DA +:101AD000002B7FF408AF94F8483013F00F01B3D017 +:101AE0001A06204602D501F0C7FAADE701F0BAFAAE +:101AF000AAE794F84630002B7FF4F5AE94F848300E +:101B000013F00F01A0D01B06204602D501F0A0FA69 +:101B10009AE701F093FA97E7142284F8342083F3CC +:101B200011882B462A4629462046FFF76DFE85F38D +:101B30001188E9E65DB1152284F8342083F3118819 +:101B40000021D4E90E232046FFF75EFEFDE60B22BE +:101B500084F8342083F311882B462A4629462046F0 +:101B6000FFF764FEE3E700BFDC3B0008D43B00085E +:101B7000D83B000838B590F834300446002B3ED0EE +:101B8000063BDAB20F2A34D80F2B32D8DFE803F045 +:101B9000373131082232313131313131313137375A +:101BA000C56BB0F84A309D4214D2C3681B8AB5FB9E +:101BB000F3F203FB12556DB9302383F311882B46E2 +:101BC0002A462946FFF732FE85F311880A2384F856 +:101BD00034300EE0142384F83430302383F311883A +:101BE00000231A4619462046FFF70EFE002383F312 +:101BF000118838BD036C03B198470023E7E7002143 +:101C0000204601F025FA0021204601F017FA63680A +:101C10001B6813B10621204698470623D7E700002A +:101C200010B590F83430142B044629D017D8062B61 +:101C300005D001D81BB110BD093B022BFBD80021F8 +:101C4000204601F005FA0021204601F0F7F963680B +:101C50001B6813B1062120469847062319E0152B6F +:101C6000E9D10B2380F83430302383F3118800232B +:101C70001A461946FFF7DAFD002383F31188DAE7E5 +:101C8000C3689B695B68002BD5D1036C03B198478F +:101C9000002384F83430CEE700230375826803699B +:101CA0001B6899689142FBD25A68036042601060D9 +:101CB0005860704700230375826803691B68996840 +:101CC0009142FBD85A6803604260106058607047C8 +:101CD00008B50846302383F311880B7D032B05D00C +:101CE000042B0DD02BB983F3118808BD8B6900221A +:101CF0001A604FF0FF338361FFF7CEFF0023F2E756 +:101D0000D1E9003213605A60F3E70000FFF7C4BF67 +:101D1000054BD9680875186802681A60536001227B +:101D20000275D860FEF7EEBA2826002030B50C4BBD +:101D3000DD684B1C87B004460FD02B46094A684625 +:101D400000F04EF92046FFF7E3FF009B13B1684611 +:101D500000F050F9A86907B030BDFFF7D9FFF9E7E7 +:101D600028260020D11C0008044B1A68DB68906804 +:101D70009B68984294BF00200120704728260020CD +:101D8000084B10B51C68D86822681A60536001229D +:101D90002275DC60FFF78EFF01462046BDE810404B +:101DA000FEF7B0BA2826002038B5074C0749084886 +:101DB000012300252370656001F068FB0223237076 +:101DC00085F3118838BD00BF90280020E43B00084F +:101DD0002826002000F044B9034A516853685B1A72 +:101DE0009842FBD8704700BF001000E08B600223D0 +:101DF00008618B82084670478368A3F1840243F828 +:101E0000142C026943F8442C426943F8402C094AD7 +:101E100043F8242CC26843F8182C022203F80C2C37 +:101E2000002203F80B2C044A43F8102CA3F12000E5 +:101E3000704700BF1D0300082826002008B5FFF7E3 +:101E4000DBFFBDE80840FFF761BF0000024BDB6825 +:101E500098610F20FFF75CBF28260020302383F312 +:101E60001188FFF7F3BF000008B50146302383F364 +:101E700011880820FFF75AFF002383F3118808BD5B +:101E8000064BDB6839B1426818605A6013604360E2 +:101E90000420FFF74BBF4FF0FF307047282600208B +:101EA0000368984206D01A6802605060996118462B +:101EB000FFF72CBF7047000038B504460D46206878 +:101EC000844200D138BD036823605C608561FFF700 +:101ED0001DFFF4E710B503689C68A2420CD85C684B +:101EE0008A600B604C602160596099688A1A9A6018 +:101EF0004FF0FF33836010BD1B68121BECE700003E +:101F00000A2938BF0A2170B504460D460A26601911 +:101F100001F0B4FA01F09CFA041BA54203D8751C29 +:101F20002E460446F3E70A2E04D9BDE8704001208E +:101F300001F0ECBA70BD0000F8B5144B0D46D96144 +:101F400003F1100141600A2A1969826038BF0A2230 +:101F5000016048601861A818144601F07FFA0A274A +:101F600001F076FA431BA342064606D37C1C2819CF +:101F700001F084FA27463546F2E70A2F04D9BDE876 +:101F8000F840012001F0C2BAF8BD00BF28260020A9 +:101F9000F8B506460D4601F05BFA0F4A134653F8B2 +:101FA000107F9F4206D12A4601463046BDE8F840E0 +:101FB000FFF7C2BFD169BB68441A2C1928BF2C4651 +:101FC000A34202D92946FFF79BFF22463146034828 +:101FD000BDE8F840FFF77EBF282600203826002005 +:101FE00010B4C0E9032300235DF8044B4361FFF7FD +:101FF000CFBF000010B5194C236998420DD0D0E92D +:102000000032816813605A609A680A449A6000231B +:1020100003604FF0FF33A36110BD2346026843F80D +:10202000102F53600022026022699A4203D1BDE85A +:10203000104001F01DBA936881680B44936001F071 +:1020400007FA2269E1699268441AA242E4D911446C +:10205000BDE81040091AFFF753BF00BF2826002033 +:102060002DE9F047DFF8BC8008F110072C4ED8F8B6 +:10207000105001F0EDF9D8F81C40AA68031B9A42F1 +:102080003ED81444D5E900324FF00009C8F81C408E +:1020900013605A60C5F80090D8F81030B34201D1EF +:1020A00001F0E6F989F31188D5E90331284698470C +:1020B000302383F311886B69002BD8D001F0C8F965 +:1020C0006A69A0EB04094A4582460DD2022001F05C +:1020D0001DFA0022D8F81030B34208D151462846E4 +:1020E000BDE8F047FFF728BF121A2244F2E712EBCF +:1020F000090938BF4A4629463846FFF7EBFEB5E7DF +:10210000D8F81030B34208D01444211AC8F81C0083 +:10211000A960BDE8F047FFF7F3BEBDE8F08700BF58 +:10212000382600202826002000207047FEE7000007 +:10213000704700004FF0FF307047000002290CD0BC +:10214000032904D00129074818BF00207047032A3B +:1021500005D8054800EBC2007047044870470020CE +:10216000704700BFC03C00082C220020743C0008CF +:1021700070B59AB00546084601A9144600F0C2F8A9 +:1021800001A8FEF7BDFD431C5B00C5E90034002239 +:10219000237003236370C6B201AB02341046D1B280 +:1021A0008E4204F1020401D81AB070BD13F8011B6D +:1021B00004F8021C04F8010C0132F0E708B53023E2 +:1021C00083F311880348FFF759FA002383F311883A +:1021D00008BD00BF9828002090F8443003F01F028B +:1021E000012A07D190F845200B2A03D10023C0E92A +:1021F0000E3315E003F06003202B08D1B0F848300F +:102200002BB990F84520212A03D81F2A04D8FFF7BC +:1022100017BA222AEBD0FAE7034A82630722C26385 +:1022200003640120704700BF2322002007B5052961 +:1022300017D8DFE801F0191603191920302383F3AA +:102240001188104A01900121FFF7BAFA01980E4A4D +:102250000221FFF7B5FA0D48FFF7DCF9002383F3FD +:10226000118803B05DF804FB302383F3118807481D +:10227000FFF7A6F9F2E7302383F311880348FFF74D +:10228000BDF9EBE7143C0008383C00089828002012 +:1022900038B50C4D0C4C0D492A4604F10800FFF7E7 +:1022A00067FF05F1CA0204F110000949FFF760FF5A +:1022B00005F5CA7204F118000649BDE83840FFF779 +:1022C00057BF00BF602D00202C220020F03B0008EB +:1022D000FD3B0008083C000870B5044608460D4662 +:1022E000FEF70EFDC6B22046013403780BB918463E +:1022F00070BD32462946FEF7EFFC0028F3D10120DD +:10230000F6E700002DE9F84F05460C46FEF7F8FC0D +:102310002B49C6B22846FFF7DFFF08B10336F6B2F5 +:1023200028492846FFF7D8FF08B11036F6B2632EC9 +:102330000DD8DFF88C80DFF88C90234FDFF890A069 +:10234000DFF890B02E7846B92670BDE8F88F2946A0 +:102350002046BDE8F84F01F0D3BB252E2BD1072234 +:1023600041462846FEF7B8FC58B9DBF80030236038 +:10237000DBF804306360BBF80830238107350A348A +:10238000E0E7082249462846FEF7A6FC98B90F4B1D +:10239000A21C197809090232C95D02F8041C13F85D +:1023A000011B01F00F015345C95D02F8031CF0D178 +:1023B00018340835C6E704F8016B0135C2E700BFE1 +:1023C000E03C0008083C0008F33C0008107AFF1FBE +:1023D0001C7AFF1FE83C0008BFF34F8F024AD36806 +:1023E000DB03FCD4704700BF003C024008B5094B3A +:1023F0001B7873B9FFF7F0FF074B1A69002ABFBFBC +:10240000064A5A6002F188325A601A6822F48062E1 +:102410001A6008BDBE2F0020003C02402301674522 +:1024200008B50B4B1B7893B9FFF7D6FF094B1A6918 +:1024300042F000421A611A6842F480521A601A6827 +:1024400022F480521A601A6842F480621A6008BD51 +:10245000BE2F0020003C02401728F0B516D80C4CC7 +:102460000C4923787BB90C4D0E4618234FF00062BF +:1024700055F8047B46F8042B013B13F0FF033A4464 +:10248000F6D10123237051F82000F0BD0020FCE7B5 +:1024900020300020C02F0020043D0008014B53F8DD +:1024A00020007047043D000818207047172810B519 +:1024B000044601D9002010BDFFF7CEFF064B53F8AC +:1024C00024301844C21A0BB90120F4E71268013213 +:1024D000F0D1043BF6E700BF043D0008172838B5EB +:1024E000044628D81549FFF777FFFFF77FFFF3234E +:1024F000CB600C23B0FBF3F203FB1205D30143EADC +:10250000C503DBB243F4007343F002030B610B69B4 +:1025100043F480330B61FFF75FFFFFF79DFF084B2C +:1025200053F8241000F0DAF8FFF77AFF2046BDE8F0 +:102530003840FFF7BBBF002038BD00BF003C024061 +:10254000043D0008F8B512F00103144642D1821888 +:10255000B2F1026F57D82D4B1B6813F0010352D014 +:102560002B4DFFF743FFF323EB60FFF735FF40F2FE +:102570000127032C15D824F001046618244C401AB6 +:1025800040F20117B142236900EB010524D123F089 +:1025900001032361FFF744FF0120F8BD043C043030 +:1025A000E7E78307E7D12B6923F440732B612B699D +:1025B0003B432B6151F8046B0660BFF34F8FFFF76D +:1025C0000BFF03689E42E9D02B6923F001032B61C6 +:1025D000FFF726FF0020E0E723F44073236123691F +:1025E0003B4323610B882B80BFF34F8FFFF7F4FE33 +:1025F0002D8831F8023BADB2AB42C3D0236923F042 +:1026000001032361E4E71846C7E700BF0038024032 +:10261000003C0240084908B50B7828B11BB9FFF708 +:10262000E5FE01230B7008BD002BFCD0BDE808407F +:102630000870FFF7F5BE00BFBE2F002010B50244A2 +:10264000064BD2B2904200D110BD441C00B253F8E8 +:10265000200041F8040BE0B2F4E700BF502800402E +:102660000F4B30B51C6F240407D41C6F44F4007466 +:102670001C671C6F44F400441C670A4C236843F435 +:10268000807323600244084BD2B2904200D130BD27 +:10269000441C00B251F8045B43F82050E0B2F4E768 +:1026A00000380240007000405028004007B5012269 +:1026B00001A90020FFF7C2FF019803B05DF804FBF9 +:1026C00013B50446FFF7F2FFA04205D0012201A98D +:1026D00000200194FFF7C4FF02B010BD7047000056 +:1026E000094B5A88B2F5805F10460BD022F00203E6 +:1026F00041F20102934205D041F20703C31A584246 +:102700005841704701207047002004E0034B1A68CD +:102710001AB9034AD2F874281A607047243000208E +:102720000030024008B5FFF7F1FF024B1868C0F314 +:10273000407008BD2430002070470000FEE7000014 +:102740000A4B0B480B4A90420BD30B4BDA1C121A64 +:10275000C11E22F003028B4238BF00220021FEF787 +:10276000D7BA53F8041B40F8041BECE7EC3E000812 +:1027700020310020203100202031002070B5D0E928 +:1027800015439E6800224FF0FF3504EB42135101C0 +:10279000D3F800090028BEBFD3F8000940F08040FC +:1027A000C3F80009D3F8000B0028BEBFD3F8000B14 +:1027B00040F08040C3F8000B013263189642C3F822 +:1027C0000859C3F8085BE0D24FF00113C4F81C3875 +:1027D00070BD0000890141F02001016103699B0681 +:1027E000FCD41220FFF7F8BA10B5054C2046FEF7CE +:1027F000C7FF4FF0A0436365024BA36510BD00BF48 +:1028000028300020883D000870B50378012B05466C +:1028100050D12A4B446D98421BD1294B5A6B42F040 +:1028200080025A635A6D42F080025A655A6D5A69A5 +:1028300042F080025A615A6922F080025A610E21E8 +:1028400043205B6900F022FC1E4BE3601E4BC4F882 +:1028500000380023C4F8003EC02323606E6D4FF49F +:102860005023A3633369002BFCDA012333610C206E +:10287000FFF7B2FA3369DB07FCD41220FFF7ACFA9A +:102880003369002BFCDA0026A6602846FFF776FFA6 +:102890006B68C4F81068DB68C4F81468C4F81C6876 +:1028A0004BB90A4BA3614FF0FF336361A36843F058 +:1028B0000103A36070BD064BF4E700BF2830002081 +:1028C000003802404014004003002002003C30C0A9 +:1028D000083C30C0F8B5446D054600212046FFF79E +:1028E00079FFA96D00234FF001128F68C4F83438C6 +:1028F0004FF00066C4F81C284FF0FF3004EB431281 +:1029000001339F42C2F80069C2F8006BC2F808099F +:10291000C2F8080BF2D20B686A6DEB656362102394 +:102920001361166916F01006FBD11220FFF754FA56 +:10293000D4F8003823F4FE63C4F80038A36943F4E4 +:10294000402343F01003A3610923C4F81038C4F8EE +:1029500014380A4BEB604FF0C043C4F8103B084BEF +:10296000C4F8003BC4F81069C4F80039EB6D03F1FA +:10297000100243F48013EA65A362F8BD643D0008C9 +:1029800040800010426D90F84E10D2F8003823F4C9 +:10299000FE6343EA0113C2F8003870472DE9F8439B +:1029A00000EB8103456DDA68166806F00306731EB6 +:1029B000022B05EB41130C4680460FFA81F94FEAD2 +:1029C00041104FF00001C3F8101B4FF0010104F15A +:1029D000100398BFB60401FA03F391698EBF334E1A +:1029E00006F1805606F5004600293AD0578A04F1D0 +:1029F0005801490137436F50D5F81C180B43C5F8EF +:102A00001C382B180021C3F8101953690127611EC7 +:102A1000A7409BB3138A928B9B08012A88BF53431C +:102A2000D8F85C20981842EA034301F1400205EB14 +:102A30008202C8F85C00214653602846FFF7CAFEB0 +:102A400008EB8900C3681B8A43EA84534834640155 +:102A50001E432E51D5F81C381F43C5F81C78BDE81D +:102A6000F88305EB4917D7F8001B21F40041C7F89C +:102A7000001BD5F81C1821EA0303C0E704F13F034B +:102A800005EB83030A4A5A6028462146FFF7A2FE57 +:102A900005EB4910D0F8003923F40043C0F80039A1 +:102AA000D5F81C3823EA0707D7E700BF00800010DD +:102AB00000040002826D1268C265FFF75FBE00006D +:102AC0005831436D49015B5813F4004004D013F4AE +:102AD000001F0CBF02200120704700004831436DE9 +:102AE00049015B5813F4004004D013F4001F0CBFDD +:102AF000022001207047000000EB8101CB68196AB9 +:102B00000B6813604B6853607047000000EB810353 +:102B100030B5DD68AA691368D36019B9402B84BF4A +:102B2000402313606B8A1468426D1C44013CB4FB63 +:102B3000F3F46343033323F0030302EB411043EA4E +:102B4000C44343F0C043C0F8103B2B6803F00303B9 +:102B5000012B09B20ED1D2F8083802EB411013F460 +:102B6000807FD0F8003B14BF43F0805343F0005304 +:102B7000C0F8003B02EB4112D2F8003B43F00443A3 +:102B8000C2F8003B30BD00002DE9F041244D6E6DD0 +:102B900006EB40130446D3F8087BC3F8087B3807DC +:102BA0000AD5D6F81438190706D505EB8403214653 +:102BB000DB6828465B689847FA071FD5D6F81438B3 +:102BC000DB071BD505EB8403D968CCB98B69488A30 +:102BD0005A68B2FBF0F600FB16228AB91868DA6868 +:102BE00090420DD2121AC3E90024302383F31188D6 +:102BF0000B482146FFF78AFF84F31188BDE8F08176 +:102C0000012303FA04F26B8923EA02036B81CB6888 +:102C1000002BF3D021460248BDE8F041184700BF21 +:102C20002830002000EB810370B5DD68436D6C69CE +:102C30002668E6604A0156BB1A444FF40020C2F8E9 +:102C400010092A6802F00302012A0AB20ED1D3F851 +:102C5000080803EB421410F4807FD4F8000914BF75 +:102C600040F0805040F00050C4F8000903EB4212DD +:102C7000D2F8000940F00440C2F80009D3F8340843 +:102C8000012202FA01F10143C3F8341870BD19B9E9 +:102C9000402E84BF4020206020682E8A8419013C89 +:102CA000B4FBF6F440EAC44040F000501A44C6E7D2 +:102CB0002DE9F8433B4D6E6D06EB40130446D3F807 +:102CC0000889C3F8088918F0010F4FEA40171AD095 +:102CD000D6F81038DB0716D505EB8003D9684B69A9 +:102CE0001868DA68904230D2121A4FF000091A6060 +:102CF000C3F80490302383F3118821462846FFF758 +:102D000091FF89F3118818F0800F1CD0D6F8343861 +:102D10000126A640334216D005EB84036D6DD3F82F +:102D20000CC0DCF814200134E4B2D2F800E005EB6A +:102D300004342F445168714515D3D5F8343823EA4B +:102D40000606C5F83468BDE8F883012303FA04F2E7 +:102D50002B8923EA02032B818B68002BD3D02146D9 +:102D600028469847CFE7BCF81000AEEB010383423A +:102D700028BF0346D7F8180980B2B3EB800FE2D81A +:102D80009068A0F1040959F8048FC4F80080A0EB02 +:102D900009089844B8F1040FF5D818440B44906022 +:102DA0005360C7E7283000202DE9F74FA24C656D2E +:102DB0006E69AB691E4016F480586E6107D02046DC +:102DC000FEF746FD03B0BDE8F04F00F04DBC002E0D +:102DD00012DAD5F8003E98489B071EBFD5F8003E92 +:102DE00023F00303C5F8003ED5F8043823F00103AF +:102DF000C5F80438FEF756FD370505D58E48FFF7B0 +:102E0000BDFC8D48FEF73CFDB0040CD5D5F8083864 +:102E100013F0060FEB6823F470530CBF43F4105308 +:102E200043F4A053EB6031071BD56368DB681BB923 +:102E3000AB6923F00803AB612378052B0CD1D5F8DF +:102E4000003E7D489A071EBFD5F8003E23F00303DD +:102E5000C5F8003EFEF726FD6368DB680BB17648D7 +:102E60009847F30274D4B70227D5D4F85490DFF80A +:102E7000C8B100274FF0010A09EB4712D2F8003B16 +:102E800003F44023B3F5802F11D1D2F8003B002B7F +:102E90000DDA62890AFA07F322EA0303638104EB7D +:102EA0008703DB68DB6813B1394658469847A36D42 +:102EB00001379B68FFB29F42DED9F00617D5676DD8 +:102EC0003A6AC2F30A1002F00F0302F4F012B2F5EC +:102ED000802F00F08580B2F5402F08D104EB8303EA +:102EE0000022DB681B6A07F5805790426AD13003E5 +:102EF000D5F8184813D5E10302D50020FFF744FEAA +:102F0000A20302D50120FFF73FFE630302D5022092 +:102F1000FFF73AFE270302D50320FFF735FE7503BE +:102F20007FF550AFE00702D50020FFF7C1FEA107F3 +:102F300002D50120FFF7BCFE620702D50220FFF791 +:102F4000B7FE23077FF53EAF0320FFF7B1FE39E759 +:102F5000636DDFF8E4A0019300274FF00109A36D32 +:102F60009B685FFA87FB9B453FF67DAF019B03EBB8 +:102F70004B13D3F8001901F44021B1F5802F1FD174 +:102F8000D3F8001900291BDAD3F8001941F0904159 +:102F9000C3F80019D3F800190029FBDB5946606D0E +:102FA000FFF718FC218909FA0BF321EA03032381B7 +:102FB00004EB8B03DB689B6813B159465046984776 +:102FC0000137CCE7910708BFD7F80080072A98BFE0 +:102FD00003F8018B02F1010298BF4FEA182884E739 +:102FE000023304EB830207F580575268D2F818C009 +:102FF000DCF80820DCE9001CA1EB0C0C0021884265 +:103000000AD104EB830463689B699A6802449A605E +:103010005A6802445A606AE711F0030F08BFD7F8F4 +:1030200000808C4588BF02F8018B01F1010188BF47 +:103030004FEA1828E3E700BF28300020436D03EB78 +:103040004111D1F8003B43F40013C1F8003B704735 +:10305000436D03EB4111D1F8003943F40013C1F87B +:1030600000397047436D03EB4111D1F8003B23F465 +:103070000013C1F8003B7047436D03EB4111D1F8D9 +:10308000003923F40013C1F80039704700F16043A0 +:1030900003F561430901C9B283F80013012200F06E +:1030A0001F039A4043099B0003F1604303F561430A +:1030B000C3F880211A60704730B5039C0172043355 +:1030C00004FB0325C0E90653049B03630021059B11 +:1030D000C160C0E90000C0E90422C0E90842C0E9BB +:1030E0000A11436330BD0000416A0022C0E90411A7 +:1030F000C0E90A22C2606FF00101FEF7DDBE0000E8 +:10310000D0E90432934201D1C2680AB9181D704750 +:103110000020704703691960C2680132C260C26949 +:10312000134482690361934224BF436A036100210F +:10313000FEF7B6BE38B504460D46E3683BB162699A +:10314000131D1268A3621344E362002007E0237A90 +:1031500033B929462046FEF793FE0028EDDA38BD44 +:103160006FF00100FBE70000C368C269013BC36068 +:103170004369134482694361934224BF436A4361B4 +:1031800000238362036B03B11847704770B5302387 +:10319000044683F31188866A3EB9FFF7CBFF0546E4 +:1031A00018B186F31188284670BDA36AE26A13F845 +:1031B000015BA362934202D32046FFF7D5FF0023B1 +:1031C00083F31188EFE700002DE9F84F04460E461F +:1031D000174698464FF0300989F311880025AA4612 +:1031E000D4F828B0BBF1000F09D141462046FFF7C3 +:1031F000A1FF20B18BF311882846BDE8F88FD4E9F0 +:103200000A12A7EB050B521A934528BF9346BBF150 +:10321000400F1BD9334601F1400251F8040B43F82B +:10322000040B9142F9D1A36A40334036A362403582 +:10323000D4E90A239A4202D32046FFF795FF8AF386 +:103240001188BD42D8D289F31188C9E730465A4661 +:10325000FDF738FDA36A5B445E44A3625D44E7E783 +:1032600010B5029C0172043303FB0421C0E906136C +:103270000023C0E90A33039B0363049BC460C0E9D5 +:103280000000C0E90422C0E90842436310BD000009 +:10329000026AC260426AC0E904220022C0E90A222E +:1032A0006FF00101FEF708BED0E904239A4201D174 +:1032B000C26822B9184650F8043B0B6070470023DF +:1032C0001846FAE7C368C2690133C360436913440F +:1032D00082694361934224BF436A43610021FEF740 +:1032E000DFBD000038B504460D46E3683BB12369F5 +:1032F0001A1DA262E2691344E362002007E0237A08 +:1033000033B929462046FEF7BBFD0028EDDA38BD6B +:103310006FF00100FBE7000003691960C268013A21 +:10332000C260C269134482690361934224BF436A45 +:10333000036100238362036B03B1184770470000E9 +:1033400070B530230D460446114683F31188866A12 +:103350002EB9FFF7C7FF10B186F3118870BDA36ABD +:103360001D70A36AE26A01339342A36204D3E16948 +:1033700020460439FFF7D0FF002080F31188EDE7E5 +:103380002DE9F84F04460D46904699464FF0300A15 +:103390008AF311880026B346A76A4FB949462046EA +:1033A000FFF7A0FF20B187F311883046BDE8F88F02 +:1033B000D4E90A073A1AA8EB0607974228BF17462E +:1033C000402F1BD905F1400355F8042B40F8042B7E +:1033D0009D42F9D1A36A4033A3624036D4E90A235F +:1033E0009A4204D3E16920460439FFF795FF8BF335 +:1033F00011884645D9D28AF31188CDE729463A4645 +:10340000FDF760FCA36A3B443D44A3623E44E5E70C +:10341000D0E904239A4217D1C3689BB1836A8BB168 +:10342000043B9B1A0ED01360C368013BC360C369A1 +:103430001A44836902619A4224BF436A03610023EC +:1034400083620123184670470023FBE700F036B97A +:10345000014B586A704700BF000C0040034B00222C +:1034600058631A610222DA60704700BF000C004006 +:10347000014B0022DA607047000C0040014B58639A +:10348000704700BF000C0040FEE7000070B51B4B0A +:1034900001630025044686B0586085620E4600F040 +:1034A000BFF804F11003C4E904334FF0FF33C4E95B +:1034B0000635C4E90044A560E562FFF7C9FF2B4665 +:1034C0000246C4E9082304F134010D4A256580232E +:1034D0002046FEF78BFC0123E0600A4A0375009248 +:1034E00072680192B268CDE90223074B6846CDE9C4 +:1034F0000435FEF7A3FC06B070BD00BF9028002085 +:10350000943D0008993D000889340008024AD36AB6 +:103510001843D062704700BF282600204B684360E4 +:103520008B688360CB68C3600B6943614B6903623E +:103530008B6943620B6803607047000008B5264B37 +:1035400026481A6940F2FF110A431A611A6922F4E7 +:10355000FF7222F001021A611A691A6B0A431A6398 +:103560001A6D0A431A651E4A1B6D1146FFF7D6FFF6 +:1035700002F11C0100F58060FFF7D0FF02F1380175 +:1035800000F58060FFF7CAFF02F1540100F580608A +:10359000FFF7C4FF02F1700100F58060FFF7BEFF86 +:1035A00002F18C0100F58060FFF7B8FF02F1A8017D +:1035B00000F58060FFF7B2FF02F1C40100F5806002 +:1035C000FFF7ACFF02F1E00100F58060FFF7A6FF16 +:1035D000BDE8084000F0F0B80038024000000240AA +:1035E000A03D000808B500F06BFAFEF7DDFBFFF721 +:1035F0008DF8BDE80840FEF74BBE000070470000A4 +:10360000EFF3098305494A6B22F001024A636833EC +:1036100083F30988002383F31188704700EF00E0EB +:10362000302080F3118862B60C4B0D4AD96821F422 +:10363000E0610904090C0A43DA60D3F8FC20094967 +:1036400042F08072C3F8FC200A6842F001020A606E +:103650002022DA7783F82200704700BF00ED00E0F7 +:103660000003FA05001000E010B5302383F3118841 +:103670000E4B5B6813F4006314D0F1EE103AEFF3D5 +:103680000984683C4FF08073E361094BDB6B236670 +:1036900084F30988FEF768FB10B1064BA36110BDE7 +:1036A000054BFBE783F31188F9E700BF00ED00E06D +:1036B00000EF00E02F030008320300080E4B1A6CE5 +:1036C00042F008021A641A6E42F008021A660B4AA7 +:1036D0001B6E936843F008039360094B53229A6270 +:1036E0004FF0FF32DA6200229A615A63DA605A6060 +:1036F00001225A611A60704700380240002004E03D +:10370000000C0040094A08B51169D3680B40D9B2D2 +:10371000C9439B07116107D5302383F31188FEF756 +:1037200059FB002383F3118808BD00BF000C004043 +:103730001F4B1A696FEAC2526FEAD2521A611A69B4 +:10374000C2F308021A614FF0FF301A695A695861D2 +:1037500000215A6959615A691A6A62F080521A62E4 +:103760001A6A02F080521A621A6A5A6A58625A6ACF +:1037700059625A6A1A6C42F080521A641A6E42F008 +:1037800080521A661A6E0B4A106840F480701060FE +:10379000186F00F44070B0F5007F1EBF4FF480300A +:1037A00018671967536823F40073536000F060B919 +:1037B0000038024000700040344B4FF080521A64D1 +:1037C000334A4FF4404111601A6842F001021A6016 +:1037D0001A689107FCD59A6822F003029A602B4B75 +:1037E0009A6812F00C02FBD1196801F0F901196016 +:1037F0009A601A6842F480321A601A689203FCD503 +:103800005A6F42F001025A67204B5A6F9007FCD55D +:10381000204A5A601A6842F080721A601C4A536843 +:103820005904FCD5194B1A689201FCD51A4A9A60C2 +:103830000322C3F88C20194B1A68194B9A42194B72 +:1038400021D1194A1168194A91421CD140F205123E +:103850001A60144A136803F00F03052BFAD10B4BBF +:103860009A6842F002029A609A6802F00C02082AF2 +:10387000FAD15A6C42F480425A645A6E42F4804241 +:103880005A665B6E704740F20572E1E7003802400D +:10389000007000401854400700948838002004E06D +:1038A00011640020003C024000ED00E041C20F41E5 +:1038B000074A08B5536903F00103536123B1054A70 +:1038C00013680BB150689847BDE80840FFF7CCBEBD +:1038D000003C0140A0300020074A08B5536903F0BE +:1038E0000203536123B1054A93680BB1D06898472E +:1038F000BDE80840FFF7B8BE003C0140A030002002 +:10390000074A08B5536903F00403536123B1054A1C +:1039100013690BB150699847BDE80840FFF7A4BE92 +:10392000003C0140A0300020074A08B5536903F06D +:103930000803536123B1054A93690BB1D0699847D5 +:10394000BDE80840FFF790BE003C0140A0300020D9 +:10395000074A08B5536903F01003536123B1054AC0 +:10396000136A0BB1506A9847BDE80840FFF77CBE68 +:10397000003C0140A0300020164B10B55C6904F4F7 +:1039800078725A61A30604D5134A936A0BB1D06AC0 +:103990009847600604D5104A136B0BB1506B9847DB +:1039A000210604D50C4A936B0BB1D06B9847E20506 +:1039B00004D5094A136C0BB1506C9847A30504D584 +:1039C000054A936C0BB1D06C9847BDE81040FFF7E7 +:1039D0004BBE00BF003C0140A0300020194B10B589 +:1039E0005C6904F47C425A61620504D5164A136D81 +:1039F0000BB1506D9847230504D5134A936D0BB155 +:103A0000D06D9847E00404D50F4A136E0BB1506E89 +:103A10009847A10404D50C4A936E0BB1D06E984719 +:103A2000620404D5084A136F0BB1506F9847230402 +:103A300004D5054A936F0BB1D06F9847BDE810408D +:103A4000FFF712BE003C0140A030002008B503483B +:103A5000FDF798FABDE80840FFF706BEBC2300203A +:103A600008B5FFF74FFEBDE80840FFF7FDBD0000B9 +:103A7000062108B50846FFF709FB06210720FFF7D6 +:103A800005FB06210820FFF701FB06210920FFF7AF +:103A9000FDFA06210A20FFF7F9FA06211720FFF7A1 +:103AA000F5FA06212820FFF7F1FA07213220FFF767 +:103AB000EDFABDE808400C212620FFF7E7BA000028 +:103AC00008B5FFF735FE00F00DF8FDF76FFCFDF7C8 +:103AD00055FEFDF72DFDFFF791FDBDE80840FFF70E +:103AE000B5BC00000023054A19460133102BC2E97A +:103AF000001102F10802F8D1704700BFA030002089 +:103B0000034611F8012B03F8012B002AF9D1704765 +:103B100053544D3332463F3F3F0053544D333246AA +:103B20003430780053544D33324634327800535495 +:103B30004D333246343436585800000001203300EB +:103B40000010410001105A00031059000710310005 +:103B500000000000103B0008130400001A3B00089E +:103B600019040000243B0008210400002E3B00083B +:103B700000960000000000000000000000000000AF +:103B800000000000000000006D1300085913000839 +:103B900095130008811300088D130008791300089D +:103BA0006513000851130008A1130008000000006D +:103BB000AD14000899140008D5140008C1140008B9 +:103BC000CD140008B9140008A514000891140008C9 +:103BD000E1140008000000000100000000000000E7 +:103BE00063300000E03B0008802600209028002081 +:103BF0004865782F50726F6669434E430025424FE7 +:103C0000415244252D424C002553455249414C25F3 +:103C1000000000000200000000000000C9160008BB +:103C20003517000840004000302D0020402D0020B6 +:103C3000020000000000000003000000000000007F +:103C4000791700080000000010000000502D00202F +:103C500000000000010000000000000028300020EB +:103C6000010102002D2200083D210008D921000891 +:103C7000BD210008430000007C3C0008090243000D +:103C8000020100C032090400000102020100052403 +:103C9000001001052401000104240202052406008D +:103CA00001070582030800FF09040100020A000061 +:103CB00000070501024000000705810240000000E6 +:103CC00012000000C83C0008120110010200004070 +:103CD000AE2D0510000201020301000004030904D7 +:103CE00025424F41524425004375626550757270FC +:103CF0006C65003031323334353637383941424320 +:103D00004445460000400000004000000040000024 +:103D1000004000000000010000000200000002005E +:103D2000000002000000020000000200000002008B +:103D300000000200004000000040000000400000C1 +:103D4000004000000000010000000200000002002E +:103D5000000002000000020000000200000002005B +:103D60000000020000000000BD180008751B0008DC +:103D7000211C0008400040008830002088300020CE +:103D80000100000098300020800000004001000089 +:103D9000030000006D61696E0069646C65000000DD +:103DA0000500802A00020000AAAAAAAA0A0000248C +:103DB000FCFF00000000000000A00A000004050055 +:103DC00000000000AAAAAAAA00080A00DFFC00005E +:103DD000000000000000000014000054000000007B +:103DE000AAAAAAAA14000054FFFF000000000000C5 +:103DF000000000008069100000000000AAAA8AAA42 +:103E000040561000FFFF0000007070070000000027 +:103E10000001000100000000AAAAAAAA00010000F7 +:103E2000FFFF000000000000000000000000000094 +:103E300000000000AAAAAAAA00000000FFFF0000DC +:103E40000000000000000000000000000000000072 +:103E5000AAAAAAAA00000000FFFF000000000000BC +:103E60000000000000000000000000000A00000048 +:103E7000000000000300000000000000000000003F +:103E80000000000000000000000000000000000032 +:103E90000000000000000000000000000000000022 +:103EA000090000000000000000C01F00000000002A +:103EB000FF00000098280020BC230020009600008E +:103EC0000000080096000000000800000400000048 +:103ED000DC3C0008000000000000000000000000C2 +:0C3EE000000000000000000000000000D6 :00000001FF diff --git a/Tools/bootloaders/CubeRedPrimary-PPPGW_bl.bin b/Tools/bootloaders/CubeRedPrimary-PPPGW_bl.bin index 505fd171958b86193f1437cf3b28a5026329436b..660e745e57f220f8bc287f0c8261647ed69d8f13 100755 GIT binary patch delta 9364 zcma)CeOOf0*57Mp4x9mo4-sKNWQJh`L5>$lfhd+mMp z*V%iY*>amXew!IZoQbMOLfC=^!pafR12P=tW7Pi{c{@i%Wc;87mKhFgG-5VlE8_gm zgnfum{zBLcL>ZzIaULNCXweh)E}|V_LNx5`4A^;GB|jJn4!e@pLx7@Zz+2352{pb$ z0`FivL>Xc~;u7LW*Ur)YET+ohRj(2T149I%#M?M~m1tM1vrNWgn8;1dyXHmG(%p zov+($T^_<=IziUz{G!E~^Aw&^XC@9ZXfmUfe_+ePLF8VL%lr{@d5KaBVhq8_Y8m;w8}FGUZu^R z-)W9nTZ~CjBRKM|jJj7jXGy7_=5jYI*Klq^s>!(qgb!(hS43u|HH?!BtVzYa-}}LI z5O!K&G-)@s!0@iF>RCj!stDLo-9rA`#~IFzBXw@VMI#BzZrA)(5)sh;%bO74*X|-5 zqM?IQU?yESC{V&!=o^EAVTHbSP#(ZNYVa{YptLLUw(Np!I% z=Zw$u)}8g&_r6v>;;Lt{T#(o$oGTZD(RyuT@c&?&P#^J{OI_S#5;3?{s*z}xm&t{P zbf>R(&;;YC+=@?A9~BO|+)YYV2iv;|*bTQW5wFpDxzIt+`r`bc_kC-X@wS;^vQP2_ zkc73)RH?b`#-l`2Lxj8ZsNdN5Emjrh+2YyYHc5qzxW*{!{a}jAB)RYxqdbSG8y>64uFO>GGfksm@Oag0IyxxP${iYXMG@WjCy_ zGskBeW#(!ew?PeV+@wcS#z3u0mO>b6)-}b}zqA!<=I9i{Y*UEN&;>OL;TZi`8C33P zu4&4Da^{s5BkKu5qg}>@7602i|6ktMji6$VN3{@@xr?-xF2Px*#?GD~;|?5WIaV0o zH%~=`k1c9le%A145d18~i?W*YvOxIG41(U`ydxKRJMyCzc1JeyuaSRPZjtZM=v->K ztl=>(R3Uuamys*~$hlUflhCwWpg6TD`?0f-W|DBF^{H8MVTl!lZ5ZzMA`rG`$%!e6OJ zfEprcbU;8xmF<_V1Z;s>XiMe3>#D&XIEA=~=s<{V)w7?lW3dN+#&ldPVV6Eb*woxf zqzB~|wAa&}0a|dOjREoS1^qoB1&-0kp~>EL*dGixPXob<9%qQc{$^?UQ0-Xf@#0jo zW9zF_tgz3_aGv!<4Z<4Jl;F_pFfKIzma(P+usH{-!!TFefJ~-0hh~<~H75m6;1ann zx(P>iq&_uzx(nOwsgH7kakT>}j@b^oYLTk`>|)JJ?t)vNv8!L#j6F}1fxW9DEWx!_ zM*0{Q(`jKNj}5_V`Z{VFgi;xG0HZVZ?Iq@qm4!EU**%B|Gq5e0~oh**SxvuP79X?6o=bK+8h6SJ{4 zLa@;}cwBZA*5jtBttkPSr*O|&Q|}e!DU7kIISChrIehF3{Fh$7mlQU?6hl=?^$%-~1>tixk##3HD9Ja_aGU4sJxo;gi=NHOUpQAAgo zDe`xSm~s~y>4adP&`HfiRhqePK2iM>A;}HU`K7xHna!kC)cuhzpzDGg!9wFSg^-|s zOQQzg9(y!4v_eqg;^`**YWKqiQV4_S*$_2&(7PcKKHApOmZ()kb#5-OZ99nS85@SXgWn2Xgr;a`nmeEGEnw*Nz z{3mTol81YjXqvw@dPci8YjjKxnNwM;(S4725pmW?zEJC2b!h@fU5iDg5rz%0ADt~7 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%0AI$%AZ z8qff!0^|dXfHpGJtis=u)6E%p7I8J}lnvSNDTipS8mJdoAJiMIiP6Oz^j{211n38J zLH`#>zjY68BKa*}hP36vSott{w&-V@G3jh&ABu$a-%2AC3vw|?V-q>rI-Bl*)0I>; H$6)k7|97vy delta 4652 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 a!qi{PP6e9viE}A3i5y8I0Ul* delta 2226 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 literal 16264 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 C2Aq1b&#A5nV8&R-eikO(4AC9c1LixUhXyU& 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 MA2O2w^iO{N2c8b+4*&oF literal 16528 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

eOyA#HH4q;B?#dvz1k0^F;g zGEP#z6|z6b(-1t)*v;itkZ&y#45!|aPd{F$N zxL5dUZbcbUaIdgv5#V0Q^Gg*y&a&YnRI*vc`9vRlk~JP@b@VvPc2zv60G4{FZ_$#E zd!;S;xL0JHDj)ZXPXxXtJ!b&~iXLa#(drOd>YAOPc!t7Waj#l%M-FhW$mk`nS{GRX~27k z!$e*-2}?q))_}ht;D(}Q{lx^Nkpr$_4N7Em6y&oEo?iPhMx+vt#g=4_W+iht#hUqO z%ff>F2vSA^Fmnf@dUWO#HfJM6Q(ANGcly|akR5YyvvSF-G1H6s1y6a(-_5xT@MLrb@4 zHXWa#=oZ0vB5%3{d<*oSH0u3Dqyxj!sD48~0oha|^BejF$V3ORr5afqQjJk7${K5n zu^M;Zhh_nXYTN{GSY3^~S&c6v;&6dx+07Sx3%4<;)svwnwR%5d{*tx&{ZC*(YSoBL zts36cs^Lwo*25_Oq~frRMSLjiA03D!q~eT-6=&#D#TkjIIK!KY8|YiNTAzUF*Ndjo z*uCCYGyQsDdHnlxlvU97bG#YZS6`1Ps36qK(-4l3zJE3AMa>xbJ@kQ_Om27eeh@5Y znqfxP?Xd7s%I>0e{1;4(qU8^f8LRz61|KLl`H=-c-mC(m*@3*3?Ov-7&Ndm`)dyH=1ZrXTPGx(0V&9oVAzy z*%hB4do|47NE)~>FmRGFFp>rihXH19B(t}J)~?t~ezdhEZ12Hrw~oNt+s4{pTKm3O zLysBE9`gn{w3|eUBP)XrLcD+8MRZC$#L1>Ng|#+FiL-|EkO54ITRx<34qy*iL=GuQ zlw+6@4vYDWE+Hw6KOIltfQcGQb*bNPA(qZX+Ft1qnn_P|5_@{4AR}@k2MTlNUwx%>QCo`uE=D%6i)WxVs z{s2QYm9A9$r3R>}v!Kf#z*45(fN=imy4h3dr^{bzn3`&ymQ(%JRN|fTSJz}ueH(e< zuddOaN>^6?QUlf07Z8uXRJ)o=|2_Uvt!gS=zxhjzP}cM4LXLGPT!ws?iAymTzl^dB zW?}I6l_L6>Q?}~x4OZm(eWCUrmkCtDe_SRKyuIiJr=;^Amx+U|iXDoFuxZe%ik)g0 zrW5}dp31{`pZJfl^+fCH;GlkQ%z;fS?X z>S)rNw`6pG%+f)Cru0Tdhbh+8qBl0%FcDa8107OEoVLh+hT2ex*(mGRKUa zC1iOV&(uSCu$=Y|shPY9w0MWqOwmQ4QT9E`A33^bSd1bpvCHcS!nLCgGn)l)i2^0&1xD0e$Y-7to9D6+xiQ{)!rd>Tlt`%0e0#_06TSCe+3=iI|T49v{9P{no9~|@eTo) z3!`d)oy?=cXn>u}lfr0#oy;$U(EvM{=M+nzy+blD%IEL2RW}`GGB2q+5fr6;@eavU z+C3oEJI(;6Ic!$)jD|v_1g}g)R*3D#3s^EDq_1sb?ZvrA$7((WCBu;In0Cc4(SY9yhE}P^)_hj9pYW7K0u!m z?-1`AHGr?QRs2ZjU9Yy|g-LsdcsI!^i3Zs5ZV^TU?BGPGOQ5E`L%biT?|{+XAvhw6 zjP?$}8Bv>HT6>3hkH|8M_73sF06X5(>d#Qq-XY$z>W46(0d~9>BvB2p!Rd<5t=_m*AZU;cCzgu?~v?RStjw8u8Axz)x1FP8+ILfhh*oeo}$u^D(yz4nq5eHhh!HEQdP{EMU7>F z21}&9L$Zge!y%428*mlxkQ0oS_72IeRcDLBb}DeM8-J1)?HIBfrm7#p1x7xE-9j%W=sylhyz`x!$BTz)r3YX$`QG>qlAx&*TP>*1$8l7SbAEC)Y~a zKaVKaw!2!=9Qt*pN$-%{Fox^xI=K;~HNZ}8BxwzHlWQlf0d{huN&9JzA*}&+a$`wr zu$$a?(*Aiwxe2|I7RouL5}zl;J0v%i;eMLaNo#-a;r&efSueL(i&hVcQ|Pcu#-E2 zv@TYk-~HdK;gFw0B7ENXji$&+~|K8$;e9xy>1BY44ES7EyERc^*;j z%VZpjk~@(h?M^+0 zHFpLX*RAJyM7cA`#NB$HN0j?2nWS6K^N4b1lS#YvJdY@ME}5)b&+~|K=aDJ6^}l5a zwv#Ek^#`!jUnkSmt><|}xeLg2ck2&g$VFtD-Flu!l)HpXKewLe5#@G}X?5#)9#QTx zGK1ZEo=24X2ASb*JtTq_0M zAv+-w?~vTCT9~PgdlB_V$izFub7ZE|06SipFdAUTiwfgn4nzZa<>~>%i85ks(u*tN zI|#sz7Y5kz!rmcX*gM4A!#l+5sw!XrmU^gjX^Gw;UKn7<3j^$UZSq8*y+gcqnX`QF z5O1`aO-o(9391JsaPbcDCi|tL7r8f2b*@I^R&g7Mw@4W69pWt!Mtg^NE9D771MGOK zh0y>z-deG&y+gcBsxOk!06SjTJH#t_hp=*D4htsUA>N7VQqa*hL`0EKQ&@b_-XY#u zinFBl4)M-Yoa(f9hz+N z9d{Dxqez#zC*ut%e>CZ+c0U;abx9y%MQ+ENRQ{OPkfeTjC`|7_Xy)6{kX=b$=oG&35*T@VC|v$seEHXJ4}~jAZx4klXgKNG$W7sj z-{S_EcAuu5E8Yh^rDD}Gkh>A}#D*gbd8S>@2id|E4?}*wgL_$FF+r`|3u$DzJlnYE zkUp5tFOJItzzTUq?D>MHVro^~_|H2Fi~_VE4lLH_#YQ94%~bMy4%!!Y^zu zJ>eI&m;ApA+e=UQh3%y${KEFq6MkWP=?TBEz4U}%*j{?VFKqYyzlpgObC?J53SuGU zmQW7-2&XH!#F$$Y6K{bvqOVvm5Lp-epyH7K&8^0qdr_ zEEzWlvO^D9Gj6ci;jEtDV622aCx@ju@M;HN`+G^$gha)WCM&U|m#|rXSQqd4J9dKC zR1z`9N{m}!qPN6&O);?;Ec9U$WC7G(V2TTa@$urb|g(1HB1be`;Fu%-hIRg9=q#}R)UqK2}kOFQo zzyq+?F$EVIMy87PfRQ0SdAS-eBg9vqrBg8a@FI{DHkuS#hr@a&q;fh;x6!A@X@d_< ztJOLl0qO48ENBAK2%u}rKpK0!(N{;tV$Q*6-=42P(Y{q(<5}(@kg6T+7}~mmZgDX94j0SF26)b5fxsIYLk}0!^%sLHAB`Tkg*ZYU11Gm3WE_s z&5gLuv^Sv$J^Qeie@%5DbP{;A;}JH3ROHvBA}1jyL+EJn0s@Af4m}J->-%6>_gDIL zzeYFARnjmgB1-Gm{G5E(&xua++%?v)EBu^T15X7tHpmlh3UtF_I&!bZnl3XloaZds z8^nPvjR+GZn+dod=)ST+`pOlou$~W4b&>jg)&QQJN;N6XA}P)D%-RPCo`Ga1B2X$W zZMFUlvJS`&(6Y#epF$BgRH^$-Mp62De`^Hu;rD30DBiQ2DNj|8!3<^=)Z=|Y%2Orf z8Ym2W9>Hu(N!2%I^(4@pJy4yGz~K`2ShySLTo07E{SkNMjfi(WROm$m%!_W&X?YMb zy6d#u1>y{*a3?el@vC%$j6fdgB$4k%P?3>Gs)J2r&UX^|9uOlQDMc3FmMQEej6aYG z@0oG%mBtN(|7 zXq2Jd)ENjJkn_z^2LGyd{1dm%(cKUrcSa+Df0f*O4R7v@M!a4PZqZ5h_~d8N;KZrL2ZG6}`nT>i|~e z>9FS_Q?{+78V%2CG<2yNjl@)=;Y~Gu)l{Rd2C#p8Ma8+8W%|6z`Jre(%vdEv{oe9ddH()T#K>RaGZ5N7sX4&2%*M}lo`+v-m zJOTJp|3PHZtrXl`gi^Z{jYsWGUWSuK?3=j)@G`RBgj?-*`MhSIyJ4)9`WBWtf_sb% zCstScez3s1;1ro7f7l<5QwN3CDUfqc7zw+6cVm{%-CzyF1FB34@SN$yo_5V2A&5#Y zP7ZQ$4Rg^7OFHFinetq)Q~w5K-UY2`;=^~mJd!<%c+=@zcRU}wX2=8C@x!4sU7p88 zI#Y`96&jkwspUn)Df#e`leUKsAFa(6AHJhm{3Sv54%`=&#AJ?UG8>Sc$@Jlqg_bMG zp~fT%Pl+EdK77Z}8I4DwjyMQrF3=6AefUrx^xk)tNQq-Y@;#R+jiYV$&AIF$8~l_c%66u7GUEO7E+HvR zdx`_Jjcb;Qv&;+`Lv0*Gb7a5|~s(N z4K8Fm--P;_h&-zuuOYnUV~8U4m}<&U!1kvRh}zZSaS#WRFI@=jgCJ=IYKQv(2G!3Y z;AFHB4+kGW_9SHfWC9D;!uMFI_;c`6JNTm25vO;x9E;b>Lyp;xBu!-SHKK^Ou^bI{G7=zf_y*;A;+lsWIw+(s@lC zAz#OiB9h@R)uK9{!GHczqgBUbnBXrpN_7ynn7`C?)xq}~{@_2^@gV;5mzt_NmLeX1 z@O$jQGqlBDcBO4SgO4GOC5w9MVhpDEkI;xOqY7q}u`(>{JE(~NmHv%{B#!PClDNG2 zEM#0DiOWln#EyX^E-yh6mzN-k%Rd8>xV!{OTpofXF5mSo(()mR%S({N2XlGt6$R5c{A8-gTuKR+a~TY@BZLy*MoX0eQeNtYu94N2?2YlGwdn z6bVV}h9HUE5G1i1f+TiBki_m?jG7flVmAay?1mtT-4G2nlGr^U1WD|MA&K2EB(WQYBzD7)#BLap*bPGxyJ1LTHw;Pah9QaF zFeI@Xh9q{wki>2nlGqJH61!nYV)tK%B!(kFtBW-=LK3@SNMiT%LlV0oNMbhxN$mbx zAc@@&B(WQUB(BIVzzwzpNnBBaB(7*afis7VhkrRhvf}R`i7QHw#FZsT;>r>vab*dT zxUvLET={p9#IX=0al8ac91lSf$3u|B@pGr(VOv8I$3u|B@c@!I9#Oa9!Q4MUGWPe7 z#IX=0al8ac91lSf$HS1su@EG2JOoJ`4?_~i!;r-BWlHiWki_vlAcF{ki_v}!e~h1co>p69)={2?*U013qcacLy*MrNny)V!j{93#PK~KiDMy1 z;&=#>IKBrYaV!K$91lSf$HS1s@h~KDJPb)3-}z4=i6al;i%Qkk8_+fX89MP(@UDO%-*g|JU68|gF zi4R651>32>5y!V=93dG8EyDgrSZz7=p#M2K@d{{YbmE)XmrLlxWDPno(HR4DVln|b zF_{3Jm`s39OeR1lCKI3&lL^p?$pq-cWCCICO{`96QC253DAkj z7<6LN2A!C+K_@0{(1}SKbYjv5otSihPE001CnjUiiAgWP12}89!inGi1}am~iQ^@7 z;&=(2I9@_0j=xM@MBNjeIPRkp^F(5LHhAiRXa+M|5IJ_li!u z7y&@v#kI>?Tr#{s;NhR36F&mNpc9kE(M!k)(21V{^RJ>4a~SW5PP_@$k~~{K_9`xa z#?Ra)-T-aTi76MX-$pngX^dW>nvpLUd=Hfob>avUrAdL3P`(oV5u#3iD)G?n)qxTN z5Hin%9A`oxTx*1v8Q~u2#3z~HJAz<2x;yGz$q=Ued=L`k*dPzzZFDU7K?>FC6L5bC27F9&JRiJu4UqZ5CEZ#M>=nB&2q6Vt9iCni{xK_@1hvOy;< z!>5VQLMM(vXD{f)?MU|j2c4KD_!M;F-!q8z4LUJ#nGHIzPYXJ+;5GZ`#5`JMFX+U* z&>IXoF|i^HI`L}I2A!Bg$e*4e zQD+KhgHF5;sxUw&ZopS%gHF5zbbwC$8$6qQ4s_zzpcbGLe*z{zCngi16W<5Z0Xi|q z#EiY76Yq~VlK`E#8jC7l6rGqw2+)bUz(9ab+z96LpcB)=7eXiQg9tvdu&2&s?0HDa zYFdo)tES2L=xUqr2E}^#7to7oHb5_?m&Ct-Ui=tr2zoI$fvkrvV% zO6c%^7kcs0I?X8y@ag~Gg>a)MY=ju};`2cV=*9HEwf?W77xQH;Krbc}pcj)d=*7EP1wMN5L!=FQvDD38(TiV$ zT7X_$hFdmv3&`ss`-40!VYdLgxd_?(BE)Wixkkvg5+QaAtTsY6lL)a}fG(6V-ifX> zLLa@D*%Bq}7GPM6w+?1pgizwJ=IWr~iC)Yc3y<9b43ms8=UOR1FMbPQK6)|T7zDj| zJk-7@dT}k{BpFfAi?`FlXQCH#KKT^%;`!QA5A`A~aks!fMK9(P!>6DZ(|t+Mi#KDw z-79+W8q5L#dNG**y_n4BKrg1{0KNEFFndQYW+sc65Lr3E2FBH(7ry~Ic>*E|dhrv? zDE+^HUd&lCKriN07oZn&b_~#q`CL>&FFqdzlC%CtUcGrYCyw*_0BKi;qwu z_0fy@L?k@Xiz_9cvv4)&#hl9JlhOpEr>rE;lj=1I7uAd6vdAHDCGXXNXsTHYmQe6> zq^Wvq!3qePyHW7n$lxy6z=lHN@G|&~h~Fuse0I31Ui&D6W2 zHvvS&dyb{P7wLky{m%`_BDHq^2SR+!8LIy?AwG42-T&n#Q9NfU|9`B>k$K( z6)3F?SSnU}b5Azb+Q^xmEq51+u6FE19(7Z!m8LipJl(~i#HRQO*g*m?y)MG{@Xq`C zO>+|h`t5_v-3(KF^;erB#~1OO-y5IAOX~Tf`+whVg1@^-aOc_pzT+I~N z4~@)}!SJRGhBsvhc)tuc1}U%~M%ln9k~%F?fhv|V7?~-9;Y}F~Z^{txei`mFDYUS3 z?1z0}I_NEb-w#_D|3PTY3Tvr;=&ZcVMn7yzLuFYIY_)U-&#t;rWYSfeSQ2#AvjR20 zs}4Xwka*Bl*`cJXR$57R%I5F!uHi(k&s*+GHoNM=?xw3c(pBk0C|%W&u6k5g(^bo) zt6lc0dGUrgk|{Q6pr{9+=JjomLdE16)YEbHcM?e7{&*5 zg6KJfwLAfN8fBRasm{7J5S~z>V)TdGHHSmPGoq~i2~m5L~kLN@;8#5Xf+a$fpFZI?lK*&f0HR?9sQ7E!r3 z2LaaT7a(hfti?i)9Sq{pP+%0Yu?*}Eg1zp|P+%X(hMC2<_)UD#nf>!bQpjCW6Xcfczt&%a7Cby@<5h_`k8+nB(aEdW9(=3KJ z&0=`dECKH~OLLF{JJvvyUCJ;%G9Cd^1|u_NFuW;);Y}F=-Y-LYkOF(wc%%?zEgcxS zhAFTNMrO)jcvA+$n=%BvUxv9s3M|7MQwI2t!<$daU}UBYhBsv}yeUJ#`(;?QM+$39 z3LTL(CIuriDHz_QV0e>4!22m|H7T^*kGstbbk0*?+T7*f5&t~8D;~3?yY37H$*nTQ zo`E>K|1O}dGXfsjLpacC!yN9u5D2Xn_6gq9KMG|2!vZUs_wjvj<1|_Mho_E~6~5NM zuomv|`yGP-+Wpk1Rx|QvsdsJoNeZB`+VM3Q(T@}F+I+G*5A`zU8U(`#-C>!tHryr0 z^5*`Ky$vDI!p;3BLBxk7;tv=R@3Y~Et%!IjQ@p^&8<^WJ5u19L6fcm7Zy@5JRhGI? z_AmBEowOVdy>aJfCb&##Dm`7BRggFnzL^J`Kjkjz%BlpIZj) z)9nG%z+a7k{U|&H5n0m8$I8KtJ42qfY<|4rAKWxi(w_!a*NWBeBeH(tviZctR+NX| z=b&ws3Akj#~xtR&5i8^Wy5|GR|R&~~~l=1W5RqKYM<`I689U?rh((36DN z1@}ydL6T6?O43|2yl!&9f_ySw-jHk`k^dA*~gDWB1eX^)J%s~^<(u%Y=zXRbJEeN|5#FA2m?~Y zA4}>-k(Jc%S9~YCggjEeUsAsd+@K?v`U8sZau$jbRLJ-oQa^5w)c?TNyjcAbsTZZ} z+k@0EmehN|0K48LYB<8>Ig4*GS3zw&^L$3woIIa1Na{CjC26g>ifL?CS3-M$q%jmv z-MWOEC5?-bhLmu#l<;v@|7{#hTNGdX-V2wZ%IDe=_8FPwy5ElC1 z8j=AtT;9}ZojL#wmp3)T12kOTqb`J1{`FhrN0vEmrFsF7hrQpH!r&SoGaMh?_$`# z&#$8m5J)d)QKXK5be5&7{u^(f@PwGK)b9k3ke2AYchUU=Dloc4=bGa^HP5m;hv@1TOYmIhlSd*@& zyoKuoiud+uh|$8E#gs!fTdGyo52hcDMvXjTN7w;pd=JTiktOPx++PvFvCA{LzXE{1 zk(u0I5yAe7nFd~Zrh%89$^8{I*k3V|`zva&zhXMKQV>>}!$S5~lokE`6*IZNf(X(x zxxXTX{S`C0zaoYG6*CQT^i1xrAae9{?ytZW`3UEV8Qfn1Mv$XtUxMQCm!DzJ{vmSC zUw*nhdmUu_ndnkfF=XH`5%QtMn21o)7YtU-@+7}^D3O=g+?WaI@s@!PV5!D$FIBCn-PV+-n z!ww)&adkSwaQV2SL6#3fE?oPBouJ)?s8Rbw>RB#vq3x4MJ18+qST5%%#$TXG`#{Y8 zSQ(QHE>@DmD#_szC0VSLEG|=$M**$2S1B4x;(I#Gm(Tno7#xv^YoY?VspbV|E;%hs zYF-{(Sqzu>lgNA89->x*sgev1RSS^^ja+RH6GkIf+rw2G>cp)|W7uJ5II|e9T)T8V zfo*6Xi4(cHe9=Z)K8^|6`>Wdn%ag*Er-Us}^DVy$`vBPK$*Q*;B3G9$`4Nr1%`R-O zRllOKzffz7TFGo$4$=3@SN@(_JLBln_Bj&2s;UuM=PTB{RW%kN_JvZ)bmfX=fbrQO z8Pmrw+fag9cgyJxW%n@YKSR)3?w3hMoO0a4EJ3cWX!w8Zy$P5U)ww=iRbAa(y;OJ4 z(lgyX-OUU$zyKpVvJEioAj6J`vJI<%fb3#a+!xdsTu6+Ph&yi4M2+h;F>Z0!=#5)k zLX0tqQDf8?*Z=!|r>gs4ZlcNmx%c_~?(^e$rug3PeCIn$ovJ!r=dJHV`9+KDTpev^ zYSlG3tV5Nm+i*x4!G-uwcCL<2rCQR@@zcXba68jUJB&`F+O9*1cQwDd;w}7=J)~uY9D6sSZSvA zVFrat9_W`s|CnD%<(lM%RbEUwIa(t%<*+1%RbEUBSn^dn88P- zBiV;JzCmQQ4|9B@0JRTue3Jm#hdI7kT2`#>;1OsP$UCKP#%iwN!WHW;|?%S-iGSZNaJd0{4^G zX@W#^g!K_T6jB&Vmm{%AWv4vQT|kCW{}Buy!v!9Pz5(yl*MreyHyF-oFfkgRDZ)kG z>W#!EDW)LB7`c;JlTT10FA0dd_rOHeUn5D)xQnBUlZ!2CSCXuu=%R_8zlZ5Rp!NJ?k4KGzOP}vrtW#tOQA-m>-v6%`D;(N z8$AadI^LRt6P4qm(fqko9mFGeslxrP8%z2nO7BeJN_3f#`xA@YZSF*IgMrQ6T%c=S z$KKv8ZLCGbo8@cK-6jXZp}?vSz9;F|19#_dm+O(S$F=ao_H705+E;&*r#rK(>-jV2 z*k;&xpT2VJ(1qMR;zp45=<+dZca)Sn8#!8~hP*qsV0D8juR`+c__OFl32%c=QpUYwj0cu!NALS$49IqiA9rz&yk}2oC%I1v+d>(klc# z&$D-qjoeK<9}VVU=+PG#JiOl2S!$58R0Fqa+;o;s7z5mgSMdmBLE{bls`(l6$h9*E zi39uuxqjA3tvXMKvAS07VS%Q&%0O8!g~s7;AUj$mnA7W)0$5^oB0R`I&BMs3;&`JZ z<1J+bnf1UY>GVb3WbQ^!DxV9HFo-@yZ%!XfmoL%g3g6?pl1ED7F^1&OVoXCTYXvxnlxbE>jp6*65y#Jr;ry8q$Ip!6{FxEQ_AkTvGb4_l8KeBq zxOuild!KQ0nqZ6>g=+9G{uguXRQ%7s#N@GmKu_^6F~wjQE!(&qz?-PQ+MvEduE$M* z|1KSfs%g8dgr6S-t*z$lwwklsYR+z}IeUO}cBkh;nyERvt>)~unzIKuXLqJ-7dOEo z24sM9c4yj7<(PB!0O#z^s>`TRbM^q|?2!zA2?VdfA;39%q=hs85T{4p$3v$QKTOPt zd!$un{hYW*dq^%$+@n23^;{0Qvfx44=pq;_>tLrXpt$^l-YZz!<2f; z>^-!^l#0siJ+#WCvy>574fnAbF6&`e;h12Rl00DcF8im%=JW(o6Zg;%^BVv%aSshO zuS2uc#62`jfSS06TFr6j6E$%U4VT)fiF;@y;vGo2oVds4ol4Kgv#ii0^P!UGgLKdB zy635$XHMKhbIhUadLzJzd#vLZbS4w`(0bYPL?-T`ZRTyPrV-%8J+}NKTFJycv{UlS z#65I@$xc@j_t1sXN;Pp0?UstEiF;^|$@AvzpAwXrv+SP|JeorZ7e;B~9`78zA1ax+ zyX{P^x&?>rsB!gl958WThyP^a?oOpz(mA)3bWGeiTbGHuJB{ip{t~>$PdD*v)mJ{_ zD+5MIekOASCzi9T1DxU~*1mwOYKouO0ot)l@e^mx#C;LHu@|F$S@KXkm2n|#>U*G( zoM%1{muiZioG(C4@skS#s40GOp#U|-Pc9OmrufMY0cwh$Tr5CM@smpgs40GOsQ@*_ zPc9RnrufO_0@M^gxk5l`-w@WVv~LK3n&Kx{iJ6+>CszxQDSmQ|$TG!Gt`%9P_{nu5 z%M?F(q{uSGPp%hPrufMXBC9EWa-#q>#ZPV$AXEJ0W|2E^5wUmE9jOmY-h!g?+0}<8 z&m2KNBlTASwmY-|qy8fSj@wcX@HYYR=q!8<_OZyR=(q_0p9rXSkEYe90y6IL1fL1W zyHh#?d@i6qI%eu@BlU%Vrs(upV{n;UtUz;g)J%9Y1++wG@~bmTK%eLsf`G+=G{9X+ z*S4gLjgDnXP{2fYBFhO0Xpc@qLRjSK?y1b;2$=0Q(kfzcsLnNNX0xGDYc2*?tsQ#s zN_0zxKYc=v2Qf-B{OJ>VRz&{v3BANoo8eEN&_3FtOL-5D+4a!J?E9b!@udo$F7ngo zZpc~u^a(vA*L>A)kn+4tC)%uWX6ATfbIVbxY#R;>LUw08|JBjo8YO_Na*VNKvDl! zyf%FUshFE!T`bU$;?IwR8xV90Z(BS2DUEsH#%?$iU&DcFHZt%7li^T1{TaGma3}Um zX!;DAQ7pjd@*a%6Fpx2ukCOZ|X*k~;_$dOFL#Gr)tM$X~)^X(hg>k zc5Dr7W5H|(-`1;kJc!g39Uc|v#CAN2lum5PTM#)Dsu(gF>B zjywxvuPxoC@oaQR{q{gz&w_U^!HrLykq&9eNaSmlUpO5BKEaL#?jAv{uRsk8|JWjPY~Xp6Sy5VYS7f<$pVh;Ei?mKo zD zM*M7LLHT!Cd|HaHL>6;*117<$bJJ4%rKRH2QvBn8S3IvIDLx~`{|yFRp_2GO`02T; z0d7CFczN=lx{$wJD&%E7d~ItElwKwkKJ$Xo(|dKz1EkdA z`C41eyRE&*-+!idEmv+Euuy|lN1)HX?I~p7{D<`z@(lb5bOUeZfdPb#;z6EYUcu%) z7M~HF4uP&2tp2q${zK5 zi)}Ekv<^farMGtZy~TvD=q>5#t5t7F=YH)w>)ujtac#~#%Q^#351v1B_ffc!s@^(F zdgpGKN)Me46RGVttv69y=^W(?PqMQpP*WMq4pdb ztnNwEQ85`JOp```%j)dQLrK&{ffi45!aO)%Fmup%^>3+kG8vhKi!o>a= zxYKKr++P>){wg|_dW?Ty@>%!<9LW>zLwS!N z?c4yH9@~(`f3A%5+%rMkM~xsI<#*S^=ga1?u*Fjx?%yuCe_7mr0{7BoG?6C1YVsps z=`vsEk9i;aV?KW%e4;9+A#W`*d6O30|1o(q%wwd+v|#(q-49gp5sIOw67cI+oi^6G zbgzFNl`xMpJ78P7*Hfq8>xun3OjC8(|FoT8-iZAF#%Wuoys7*45L6pY!uJZeIL$t2 z){$)1m{POaq*?hinspSJRAc0o%QpCEW)y#5-v7T#+^rsXth^+82)M8wq_D9jf8o4I z$iTM1{FRf&dq0^bjgxW)0?J8mK{5Le?nBMfs=wyoo(M1a*Zo2Ks^P!eQLwqn{4w%( z;_l-Mklu+qJ*=mIpp(WK5X!S#c^a-YgQ$b_DslOCM32F=Yc`|e>j39foTZ~smM*0BPz9OdYZmQuBBCjQ5Qoa$MrL(eP_!OY@(NuplcQdbr zGa1dk&L7P__D9m&s+Ka6aNAT@Ll5(BY_pHcZT2;On|= z=f(VoQw={fA1WRAJo|4jd<^3y`2x+%>8<{h3**Bu-*^KiU+d<1sA_GiKZlg;Zw^3V zGF%ADT?e3kT79GZV~7@h*R4~|)No;i{cbac+**%nUCp{yqX%hc?*3t^NmsK;CqX-$ zP1;Md%Yo$bxffO=9>k#!GVVcf=DjlV?}LGi{I@A^0oNiF9K}~0=3Ktw7}brHocl4oj6SgeZv(C|0|PTyCg2+h0KSnJ!?zKTd5h=m zJ#ej@aM|mA9Bi3S)qzOrP-O(^WpppP{Dv9W05I-a1^8P?@}3AK4OCtt$&0lcnvXvQ z^$(<^sKA6e*i~-g96d0aRICb6v3UMVjwICWL{hOTK*gGP0WycKuma<+s)z7x>jl^b zY_&W)i7PRog)*lI@OQj4778|&4Gb-kG-LEglp3021^D`93=`%^g0i0@_Qs^=S;7ES zLVL;E0E;rNle0`P=JR5_0^m6K;E=xN+HLAVN5i#%rex@AT%EwVAGmPVh;`|-es%q5ne%R6pmsbu3I z4mbw`4!^uGQh8Z6aEO`H8+fxdXUGujJp`$fxlqTy(9`B*E)w%E^sG6V%h~)3{iivZ zOOpHxJ!4MhQa=Ae&zqBd+F0n9W_#rO;dMu@TfBC;VSI#_8Mg5h`$mPn{RrYd6xPPM z8vb3{T3&SeDt1`#E7)Pdzhj35|Bf9N{5y77=u7Od(3jX@Az_Dw?m=aRA{HuB#KL8Y zSh!3P3zsQk;W9MOkTzocjs}fLdvaT=P2g zYNaW1!wZnP(i91p9k|v#ikLIxNcf4_yqbj~=8QW5qFQ8%oO~r@S!9ZwLOZp{6gic$ zM-g+{Zvs$@Op%4=djPV?6j@|S4P}uj(qT#!Wsxbe#FRS9B2#3QNoO8K%$e~SK+FzU zcOH1wa641Y0|aF4s$ei zSVUuoMGn$Ex9gsDc35OTc9^5F!y+0xEV9kKn$=Y7Fh^sDMKpF;FxeSX5(&#lC_a7W)czSWMVqRlEgpVM$ikvB>m&$fD%Jk|?pr zbTee(k;Rv@tA$4vU;6~Iszs*wjt^l$9$Ea%(U^2%6v-l!d#Fh$i%jl3^XD*9i%jl( z0cw%ST_8X$GPw%{s6{4skpQ*G$mFgQSr(bxBSn@) zCU?EavdH9a5LqoUxf=zjMJ9KX09j;mH;deXi-^6O?nr!KGSrkTG9^BgP4v_vQ{t}z z)FM;jBLQlWDe*S}vdEP9SY)-xl=wt|T4YLmDnKnVB|a0N7MT*C3s8$pi7y1GMW%#d zapi5Oh9cI3fb=oVRIiagF4k1R4po)wXcOp%v3YGsirvX8dtQr>>CDi3|k zz8R{}r8xNfy6YixktyQw>$pz#1a#gaQ?l0N`{_E;D$Hlj=xjKf;nUoGD`w7lQcKKd zco&$DSI-dr`E69V!G0!gK>2f)AUB83FkNKeQHX72qFp)Vy zH?s>Pvo(AO#cv_t4!|y9wdD?g_wQ_49T_F&q7UyKCde~I*qzWXE#H@Kj}_3 zM!FO4Mc8wFZ(!YrzmJ(&9yaFgew+)ZHnEX`ew@)5_8%o7 z@FFcSPJG3n-_=8YOWYVk+F;4Qin&960vrBS96F>O8va!rVjPc`Dz@>TU2s%$zis$| zvJX}7KtJ-|oo%S0#w45Ba?Od@OAD$xl0-|{{yAfd=w zbrKW2j{p>@$x`!6%lqtrdm98gUjwtCeIt&c?Nm%a9ql~J30#e4*!3d5No|XWk5cTn zg9fM5;J^_S>)6Vn<0u|a?Qjv7(sq)F?@~K=Aq{>*zldMQ!R6*o z$c}AaH5V66B*5go2T;5d$@VqW8qq;Gtb`QfA%G4MB1+t`FW(7;do4|`WDO0MpWfKl z4uRU+KEb|@)3gBNRM|IvA0`Pq(3h2eRH{kpRVc%^B*~j;N9t9mr5!kRA2C0d2=$R> zkn#{}Jqk&Io;ZY?51}{-jdM2KLh%|j+1dINibqg;R@!1;^YZ|lW3J~XDF>D_@nVzi ze^2p-T8cZE`-iVFcLDWtZv7+06REx9LyC{n_MZQw_#U;7$C<4^ZGW*BVg=(9L{eu; zp)9&$KGGulMC^skk>9Y7D&8rJua!lY;&0_NZ@}x9Xw53vR`NARCfd7809`u{akL>$vWs!zrg+?tdH|LAly3QXWY; zsjOb*zmmD!CrbGiL0dE<*rK6he+USa_^+gBZot7c4yJ&qbEXcsamvUi4lE*KKnpM z&7Ne<217>Go}&L&_k7wvb2{wX++HmA+3!FeQ?+Of@;=ABW8K+J(7#CgcK2s^tVdts z{bjma*A?!{zKc=Mx$af${nvTBnD3s#6DUJ{nNdp@G|$L^jmq$X$xx5p zd>KheCS^~Bw`My!#A0J}AG40bEV0UQ&+KTM^)?dh+~6{Ba&NN=DkYx#kaZX>c~ZGv zbTGzxDuR)kJA^eFFDZR;XA?}YI5ioNW7MwbBuN>ZyMuWqTOT5&HTNN1PqlbGw&h+Y zm?mapb6Mt@E-4dp5A#IKus%he_FR}|v&C$B?nkWX!4_LPJNIjXZPpK9Hn)yrIC`wb zaXZnh+rUzfvuvPtvo1*&Ct7Y4F>?7>3SaGG z+_r>Il04i5!uMS!5-;qvKTwp%yxD&d4?Snb2I)A+Vq)! z0L~K8k!E*1<8!yLv)e>Aa_i|}lz>of8M|h*IS$_9MwI{Yizu&#g{Pv2T0_zGxd&-B z&*DST$Q?~@^W_BDxeo~zh?SG$hV9XX7H^hjkM2PtX07DT}T5 zQO~)#?=ocxzURW7A$KXuSt?+CF2|H*0=DJeVmZq#^7K#0RTHeR4g)wN_YImIF6HdW zZDkEsN}eln_Y$lUaDA?gV6}i-atG7F5d!YcMd)CSfctYF5v&z&j~P)u7g?lqNLFE% zDmbk0Y9H4cg?FPHt#g2LL+ECU$VTow7QNN_J`(W2;f;l&_$U}rb}GlWhl}q<50T5S z6R+&(I*TWy(*VjxSu9JH`kJ2u8>#&Og#~SD>Uj;y$b;gKkb^ca#Cl#9{wS@29JDPQ zqZ}#SAxP1d(J+}O=5vepm4>mDzp$Q%9329?cGz_`lB4inMW_q%R8v#&twxCH9jI1C zpb3NMqC+VD4chp{)JAz7f736+G%7mL>ifq*Q~43ZR<~|L3=fMJAiIU(FgDyCaPJno zLAKl~%AHn0w%zM#Q@q}~+x< zW0Y09H`As+E1GdXqkaJOd3QMFfz;Q#HIxsezRA6x_JgQzc4tyQ_zUP;+%41(c^`5g z_X)~F*^~iBl%^*_lzuhwP8}wR9x{HuNc%d-A1jU?nOV zw}548{s-s_9veP6q!xaH_6x7!Yee%>t4uoci15i7R{{j>>u{|9 zF%B6%?J$GHpi9oV7mEBd$W)ygVx}+)&PmONnjfJ(xEDc_8YaNb@fUrn)qDv$C&%ws zQ^Tch@kajQO^r0^7^RX1pPW|*v;6UJl1fc77nD37qnK z-N^4(Q@f>NO}X!2e5Cf6JYgOUzGAHm9Nru%j;7e~J&2W^qfbDtI1eqXYNtAS4-PJd zhm6Ifk^BsGsCWP!S~ZnwNk70(4;#q>buJ$!br}Gl#>7V33iXFTe&EY@`4gH~jhp)Q zG17|!qyYNjjhldKfPO}Lv49LfeCGZ{;EG`HI(F*8_t2RU zvbR%@UxpJCA$vRZtcZNEmU@Y2CqnjiY9DQpmG_LG&8w+t=}IH@kc`RbL^!O*QdnoB z;Vq1inp!gg)a6#()69c!hLa$C;HAkkR6MW)qSNTT^xAzmEW52=waiNxhIcB>n^u9V zAa>Xlw)=M*k?W^6a^O~gHz_@S&>PjNG)jt#;iBiS@W#WugTC>pUCW!yb2IN9pW@{W z8iRaYFQM`}n(&`e{)WZlwbgZeIL&9_D^L|NLfKtEWR3UuSPRiMdHUJO3x%crAq){ke04IkP{vZ7^ry3*c@%kKaSHy;o4&o^Kzr z-;SFW{|y|6hrRaATi|Fw2;2&&gbLG@NCsNNa{wbxa4&!sd|ud9Myu!^g2ChQ@{ zGC_NDWluRrJeI$Kv#0G5jl8)EsJInBqDK1$E|{4Mjr!(oFZ>3}duat*PDYabEDrKc zCaCt(dYxFsvACKdCjg-ycTnU6Ak3r)th-%T&*_ozV7A>7~^B4(g(bBml3cXsibZ+4&^ zJcLVRF?$$}G9d_$`!PhdXz85%5@cDlbWV|_G>L2BoJ!f75QN*`08opT&O);pZIl^{ zv&fVh%9O?FFr|vJXz465rH-;_>8z49I&VS{p3xuqWA+dn6WsJT$%Fr8TzJk5Ahl@e z3;~*!gg1kNP& zF&ifv&Oy58cHQ$-&oie4&K!K|fc%Dh85i!5Z{B1|;H)>RkRo5kIor&~Sxq%12rn-( zi%bceoswU^jB_q9+39N0(z#GtslJSJc1y+7mvPP>lc&s^5=7R@P~wyzax_I;IpAfe zkQP|9d=;{M85e73YSsNXT!G?cPvxW$x&X3#85f&MwWQzgrz1Qv-v!B+aj|Jsr!(v8}2Ohe*AU;c69nEq}-vFs@+rZ=!)MdfO|~=+$A6t9Zv^$3#c|~ z4#9Yj|A+Z3i)cZBkf&4;eT}$fzr%d;Nmo1|zy|1V#BBjibTq!TiU$S6-G%6gct}9X z-NXXJ0;;1kXTZ!6kcm#hr(f}ifP8cks}dDZADuZCASR$GI-4LapxLPT6Dk#V?Lqjj zij{f`g7hPH()yLJG;tAnoooLYN|{T!%Q@s^F6FL$A6eDnt-E6YthspWo_T@{5Vd%l zIMgJR#oNR@GXx{Gc$=6nKrP-T76?#_w~2)U)Z%SokpQ)Lo9Gar7H<=a1*pZ_#1a8& z@iwtkfLgpwEEAv>ZxhP}sKwjF3IS^IHgUKBwRoFYDL^gWCRPbhi?@l@0%Y+vu|{NB zyiKeXSr%^->qM5t+r*I~%i?Wfy~wh7o7f<-TD(nc6rdJw6PpCc;%#EH$Q`(uuy<>1 z=fS(snX*XfJYJ7WM;0laXGP>(%6W-rM;0laeY8bZ-fm;|c<5vH3sBh);ef{t-<*ej z0hx=G&O>sIS5=^#_n|8gBIhd=-B@e9ZmaUOPB)YtLZ%}wg%?wu5gDmc7fj(_ouxYfKe63H`SRbzGr zX>~k1GfGBGK+14GWrd#ts8sAq+Db?7|eWh>1 z4OPBWVc+Iq+OWPM+{Kg)Co&?T0)IlXzroh#I^0f27Ws5P9pd21$qzzyhT=?BPE*hI z8k)?CQ|%mK9S2c8;TdDdmjw3gy-8%zR|YI-_zO#d_z$ zE>LfzNmGOq!^)#5H%B%fxgNjjD7QGjL;Wj{XKng8zedkhp3I>*0P9QiIsR!R#O&vA zOzguU$paKs_%DEQZ&dCOF~^FXBVss?0W&m$!4;kdPfb;mw?cLXqp4LA5zBB!VN6y{ zVe=g4T9jWkm34_bS5TftIps{ph^d-Ex!QS~`k9n7&TlEtqRYJVD(YJ`oAs^7YZcU{ zYSf8Hh}oy(m^crIBo9!0&iX#Wnk^QQdx=%86_Esw>I*mv$vf2-y#RY&oz++VfH~ze z)aq+k1ZF=^;}WU9?hYhW(e8cxc~?ZmW)zVAqxm{i1#>BK*39jM78m;=i&316;>_Z) zP*_G_5&o;0Z{R3*6T5;UIUrebdwR9fPxWKN{*bI#OxxgvI~PP6ENR_ z9H+c3dxiNvPO`j~%kDM%@imCce$HNR?!vD|+wFrc&E6z@9>?7cSJ_(xM5D{sFEz5a zn-{|@?mmx<*`Js{1ZZ-(HDvZd0fXHf^E_g1h3j^A4yu}c!sInE-QB^IUzjb(I@{fg z^O^mn`3cPCy7%D+c=ko}UU-}D^4ECw6)AL?%iyoseRB6-;TD+Z4FQL{>oJb9e~>1u zj2^l9a3lMk$+f&SZVG*p{m^_4V7o)_Oj*F}n>F<7F-xiF0t z8S|#PI3IH#0mz-?xbc@navolL9w2MF%RRJKX)8t&b!=~$D`3)`rTQI0!J=-XT$$|>jPC^^@UaIJf1SjyoD8>Z~)3eJKLjpS%D3~p_;;UugqzbZRb4d zr&IRIoJl$E+`;zGqU@D_r?mWugT0%MHw6Z&vQm%HU;hg7|QO-EOqR-`&^A2wc zxx*>fJN@Zr73C)9S3FItDK|T_=w}V(7Ux3B>nQheuBCh=BgTS#HE@vx_C5YP%Tj=dLf|T9xG~0AMLABk`j}1SOAY(U7VamxZC?{_>e23+n z!jv|*Mj>Ua-Ff9wBX|0E$VRY%uUc|vkfvdT8$!&ogIPe?@5knxNnkq-@3Ak= zB5<6Bb7*!pLELHh9S7Do2~tkOERL3M5mY-3QwYu_$T$rQk(E22An!E%mi634Q13J> zV5`4P(Bw2+N3-t`G&>C|nDSkM7N_AtmUA&dAE#j_Q+5*!a2ht!+xH0uI}O(oTtd+5 zG)!i{M6~ZYPpfS{0MeIr1O!GuQ-Nstl=|u+Lh8b zZo>yWA6L<_k!bi9yJIhxeeFa;SJv#B+n6V%eid^($ZQCEg>jfyF&j_6D6v;q7_umN zu0)Bw!t%b7r%9C9E37Y-yc01}gea3LC#xkGdxbHrink6{+&AK7O(ukoSqIiwF!l;# zn$&?cS4NFn@%;EAVAy-0lD)!m*QVhn9nS{LkDzmh!b#SaC!OIwh?A8K3b5TS=$~vz zfP-fsdNvz2A3~lGGp1A7xJhb_%MgIsl=lc3h7**n76AS*#!EIM&lAV($&^M(i5oS; z>8{C)zyUmUH_xRf?iH3j!1Ht#-S+i7@i$s_pv(w7Pi?-Z*Ktm>qs&?K)RdiIcEL&E6;`<9^OY9Vcdam$Rzu$x_LBJayPPF`EsmnMiM^nBRjO8i*=)A?4lw~h5$HPI0USjr69ILLw zfq!!9gV2tmmeYGqkwj}7ReUgV#v?cktGjVFW44XDRcv7~Lo7bZ)kME;nuEz>aSndI z8O7^xG>hEQ4io(v)S+(H@8Kx$EsArCFl?fDp+-`vSezwWZ~Ouz0j zI!4SN{I;sQ>`nAswS!>wkpBX?J+f*E#O26(O6Mbe@ocMslg_%!wnBe_jr&gBBC?PsQ%DSuV4ClIIuc^`H*xGD1XEH;3oYlMzQX=2Y@}F2_Ge(Z z$=~d?cHydLV4flSv#@tBMY2B&*HCLzaTfF&NHQV<=+?sJHaf&1?Xz%Y7o_6-4$3cF zdkd^Q+GpW9W)a$F;l^Vj#%#Vp3Xt1atl5J+Vc|9wdvB*NGJlGFDH;)Q8;kwu784+< zMRpu=8nga&dOi&I%=%p%BbEY2VRw^6Q5en>A3>0~r1Zewx5 z#q=j#wveLXklR>X#8PdC+{WVKOKIY;0>ve4_!;ONx~lpi4*c_c#_Zbwx`u_@Slse5 zfJ1I$aVte^UlW9Ulz4^*4uvr94l9eda_5T3qV@RHKrAERHWqIa!w9&I#oH<3_C;TJ ztcHxa9BXzb$Gl@5avO^;(!Sjxx3T!rc^JUc9da9suk=K_XFKFJ7WXA_qUJi}HWpv! zH8I~Ix3TzJ=3QoxqixVUDF-$x$(Kb*>d~7AA}PeAZi?Gj9AdGtF1d}xVJc3I%cpj+ z&Ei&!wo7iK2OO8&Mi0bYavO`IB~QvFx3M_J%GTpFyW}<&$4g2dm-n>d1gjTP2Ds!l z7AHx{V3*v+;$&+iQd(Vd8;esdUXN`qxsAnXVm8(#x3M@~QYO0OHWp`C&T8fuE*@)f+)gx`H?Y*>tOY>rW;3~s#S^VL@b@dL zncT+WY1XIclGm(eavO`MTT74zZXqvSFcJDI;h1LDGEEH;{bajt}VTd81(aina7AVph71-XpH&n@0ZD#&Fleqr^6 zTzM!)Tc@S+a(WBI`tFxaFZOTc{bQVI4x*=su2$;*|KJu z$w_JF;rKf1=XmCv1CtOQC{`LI{tS>?d=t*vo0~(Ui?`ch!s<-<6M#D)&8vj7U2}Bxa3BHfS7FEJrzk~ry z8P*LP7jwEAN(j4j09#))&CzJ|AZc__8a;^b_L0DMdKDarW+#(F(HML$!Sj4whmPV7 zW$3c=kb8*aex5ys^I{A=pAKH&c{gVaJ%->#0W*g#BY5dyrpz*its;8dX~LGw;;R~M zYRv&scm$47U2C&5(3}wr+>H}9P`2nbTAMwSw|$e8m^`dZ0$cD>b@))vMp`@(<4{bV zQzpSc^H8haFh-oj8r<22)*K`?xCR9eS;}VKN%1FW&B#q;LEXuR*UN-U0Qf2^G6Gk_ z4w~M5BTNJ5o_&0qu%zyhwoV^~U6bykI2wknGf~8NoPY~qiYg(R;tW)X0cQrxMbZp) zZq!~@HZLi;S8`y;1+&x`%}tF`*wkn=H#JIOQ=`$0RGvhn^3jY`o_CyV+`XDd-#OtW0F@~dmFDlakVD9E{>0f|q zG3wvHJA~^XjJ*>EMHm#&bE5s6$+W8+iP#f<^7w(!^yOtj4f@V7yO{T*NV!yeoqwtL z*uPXt*t=Bvz%~E1{v6KcqhfEslMD_VXPA94Fw`x`8xlS^Ra))m9Tfojq_?MO@9pzrRjrA?x846_jP{L zee5^AguSL8syoDhR}M#-DYQTw`a0jCk9~(F>^WTL_vKq~wh3Ok?bjCrK8AYxekx-^ zFZ>+mU)}8!9!Ep?SKoiackv(p8oEs6l#hRz#nyy}V939^A5R#T#iwletGi`F7#jZ7 z-D+Hn`;p8X{zp8X{zp51yioCy;zSZ3k{%S^mrFJ6g4#SfO5 zc)@NO_w}adgRK?}~u;xY3z-(XU|QMLi~7tjxrV=}f$s z&cuu9OuU%R#Ea=nyx4wByqM3#i)l=}n9jtD=}bJl5q$?OQcS#<&cuu9OuU%R#Ea=n zyqM0!i|I_fn9jtD?Z?E6{aZ}Dc$tY8*O++m5)&`J9}^E@R89zaOgw~9DKqg9Mungh zMunghMunghMunghMuk8z@eoFZpcF=hpcF=hKr!(UMunghMunghMunghMunghMuk8z z@eoFZpcF=hzz?HBS(tbTqe9saqe9saqe9saqe9saqe8h9MunghMuor+qe8iZKjrX$ ztsO2i@xo;$UbxJ}3zwOA;eUyV7yhrAc!^rG#KcQ#OuS^7iI*%h@sb)7FR3%}lK-5E zm(rMcDV>Rz(wTTEor#yynRqFkiI@6^OuW?BV&bL#9}~~St3*s}zM6?wp)v6)%1pcp zjfq#GG4U!iCSHZc#H-MlcoiBGucFMvtI(Ku6&e$-LSy1pXiU5cjfq#GGw~|El8IMQ zX5v+pnRt~N6R)z&#H-Ypc$HHI@h&b*yh@FUSE(`aDm5lvrN+do)R=gcIuoz*E17te zWhP!_nTc2BG4ZNOOuQ7i&OuV$l#7k>TytKx|OY2O$8lQ<*qcQPnbS7Sn&cv(HnRqoi6R$>R;??ZO z#H)GjOH8~Pjfq#IG4X12CSJPC#7k>TytKx|OKVKLw8q3sYfQYf#>7i&OuY1l^4eco zW8$U11{1GVXX0fvCSFEo;$?IuUPfo)WppN9MrYz>bS7R#XX0gaCSFEo;$?IuUPfo) zWppN9MrYz>_L+Qxp_q6Xor#yxnRpqUiI>rtc$xi}c(pncul8SM;??R*Jj6lRiq{|i zDig0(XX4fVdrZ7qpNUtiG4X2KJn{pXc(wa6@oK-!#H;;kCSL7VGVyA^l8IOQRZP6v zf1Qb!Ei>`58WS(8G4Zk*6ECYV@v<5dFRL-}vi&(*S4_OD&cw@lOuTHFiI>%wcv+2! zm(`efS&fO8)tGo$jfs~XtI8x3FRL^0vK|vJTV~>AH6~tGW8!5sCSF!!;$>&iw_@UD zH6~tGW8!6XCSJD8#LJeMcv+2!mt91ciiwxin0Q%@iI>%wcv+2!mtCfsN+w=bW8!5s zCSF!!;$<}^URGn`Wi=*VR%7C2H6~tGW8!5sCSGtHA*URGz~WpyTAR%ha6btYa` zXX0gbCSF!&;$@F#IUW-)t26PkIukE@3e7wwURGn`WpyTAR%ha6btYa`XX0gbCSF!& z;$?LvURGz~WpyTA_I%dHW8!6XCSF!&;$?LvURGz~WpyTAR%ha6btYc+5|-mJ@v=G- zFRL^0vKkXFt1@riI>@r ziI>rscp06E2iiG_Op1w@(V2Le{g`+epNW^zn0OhTiI>rtcp06E=ds5@OCu96<1_Ix z8WS(0Gx0zVFEjBnIukF`p)v6?IukFWGx0$ECdW@P@iICSFQYT@GXIc?m)Vbrm(iGb z8J&rj(V2J|or#y(kBOK0?_%O*bS7TzpEB`sWhP!uXX53`OuU@N#LH<+yqw0w%V|u! zT$zcND>Lzw=rQqfWhP#(%*4xSOuU@N#LH<+yqwO&%YB)Nmn$>zavBpar!nzz8WS(4 zG4XO56ECMR@p2jyFQ+l_avBpa_pdSW>i$b6UcSu4%a@sWme0h?mzj9^G7~TVkC=G* zG7~SaG4b*`6E9z8;^n{0#4FV7!S%10c!e?(uTW;<6*MNEk`)tA$%=`mWMSeJz6KMo zP-fy4G$vj_W8xJ^6Tr`MGVux;6R)5#@d_Ffub?sU3K|oyus;*8P-fy4G$vj_W8xKb zCSKtyn0SRU6R)5#@d_Ffub?sU3SXazS12>_3K|oy@Lw?T3MD39q0Gc9l$m%1jfq## zn0N(^iC55=cm<7#SJ0Sv1&xVU(3p4yjfq##n0N(^iC55=cm<7#SJ0Sv1&xVU(3p4y zjfq##n0N(^iC55=cm<7#SNJ!Xcm<7#SJ0Vw1)YiK0ma1gfMVhmbS7RwXW|ufCSE~j z;uUlzUO{K#6?7(EL1*F>bS7RwXW|ufCSE~j;uUlzUSU5bUSU5bUSU5bUSU5bUg7^t zCSE~j;uSO|UO{K#6?7(E;U6>c3K|oypfm9bIuoz(kC}J{jfq##nRo@AiC55>cmcmc!jUe#4Bh_yn@EWEBucz@d_Ffub?sUie)BVr!o_-Q<;g^Nip%rdN2nc z3trLlcmkTc;u-(Y&yFK`Hg{yV(c7;dhS4m13{+Rg5wNp8;�LB^nH7nNL2I$Dwj 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�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 Da|94c diff --git a/Tools/bootloaders/CubeYellow_bl.hex b/Tools/bootloaders/CubeYellow_bl.hex index 01d3405d8630e..8f48aec0b86e5 100644 --- a/Tools/bootloaders/CubeYellow_bl.hex +++ b/Tools/bootloaders/CubeYellow_bl.hex @@ -1,29 +1,29 @@ :020000040800F2 -:100000000004022001020008450F0008490F000803 -:100010009D0F0008490F0008710F00080302000837 -:100020000302000803020008030200087128000808 +:1000000000060220010200080302000803020008A3 +:1000100003020008030200080302000803020008AC +:100020000302000803020008030200084D3800081C :10003000030200080302000803020008030200088C :10004000030200080302000803020008030200087C -:100050000302000803020008813A0008AD3A0008D4 -:10006000D93A0008053B0008313B000803020008AC +:100050000302000803020008F13A0008193B0008F7 +:10006000413B0008693B0008913B0008030200087F :10007000030200080302000803020008030200084C :10008000030200080302000803020008030200083C -:100090000302000803020008030200085D3B000899 +:10009000030200080302000803020008B93B00083D :1000A000030200080302000803020008030200081C -:1000B000A538000803020008030200080302000834 +:1000B000C93C00080302000803020008030200080C :1000C00003020008030200080302000803020008FC -:1000D000030200080302000851110008651100081E -:1000E000C53B0008030200080302000803020008E1 +:1000D00003020008030200088D3C0008A13C000850 +:1000E0001D3C000803020008030200080302000888 :1000F00003020008030200080302000803020008CC :1001000003020008030200080302000803020008BB :1001100003020008030200080302000803020008AB :10012000030200080302000803020008030200089B :10013000030200080302000803020008030200088B -:10014000030200080302000803020008DD2F000874 +:10014000030200080302000803020008C52F00088C :10015000030200080302000803020008030200086B :10016000030200080302000803020008030200085B :10017000030200080302000803020008030200084B -:1001800003020008030200087911000803020008B6 +:100180000302000803020008B53C0008030200084F :10019000030200080302000803020008030200082B :1001A000030200080302000803020008030200081B :1001B000030200080302000803020008030200080B @@ -31,1005 +31,1018 @@ :1001D00003020008030200080302000803020008EB :1001E00003020008030200080302000803020008DB :1001F00003020008030200080302000803020008CB -:1002000002E000F000F8FEE772B6394880F3088893 -:10021000384880F3098838484EF60851CEF200017C -:10022000086040F20000CCF200004EF63471CEF2CD -:1002300000010860BFF34F8FBFF36F8F40F20000E3 -:10024000C0F2F0004EF68851CEF200010860BFF314 -:100250004F8FBFF36F8F4FF00000E1EE100A4EF6A4 -:100260003C71CEF200010860062080F31488BFF3D1 -:100270006F8F02F03BFB03F09DFA4FF055301F49A2 -:100280001B4A91423CBF41F8040BFAE71C49194A4A -:1002900091423CBF41F8040BFAE71A491A4A1B4B3A -:1002A0009A423EBF51F8040B42F8040BF8E70020D5 -:1002B0001749184A91423CBF41F8040BFAE702F093 -:1002C00059FB03F0E1FA144C144DAC4203DA54F834 -:1002D000041B8847F9E700F03FF8114C114DAC4280 -:1002E00003DA54F8041B8847F9E702F041BB000029 -:1002F0000004022000240220000000080000022068 -:100300000004022040400008002402205024022063 -:1003100050240220B03D0220000200080002000824 -:1003200000020008000200082DE9F04F2DED108AB0 -:10033000C1F80CD0D0F80CD0BDEC108ABDE8F08F1D -:10034000002383F311882846A047002001F016FF00 -:1003500001F0C6FE00DFFEE770B578231F4C0025D4 -:100360006FF07F0623701E236570A570E570257100 -:100370006571A571E57125726672A372E57200F070 -:100380002BFD20B10E2325726672A372E57202F076 -:1003900031FA044602F066FA0546D0B9104B9C4289 -:1003A00019D001339C4241F2883412BF0546002423 -:1003B0000125002002F028FA0DB100F0B7F800F096 -:1003C00063FD00F05DFC204600F050F900F0AEF84F -:1003D000F9E70024EDE70446EBE700BF50240220D4 -:1003E000010007B008B500F0C9FBA0F12003584296 -:1003F000584108BD054B07B51B88022101A8ADF87F -:10040000043000F027FC03B05DF804FBAC3C0008AE -:10041000064991F8243033B100230822086A81F894 -:10042000243000F051BC0120704700BF702402202E -:100430002DE9F84F234C05468846174694F824309A -:100440008BBB2E46DFF87C90002F38D094F824A088 -:10045000BAF1000F05D12022FF214846266200F0A4 -:1004600001FDCAF10805414604EB8A00BD4228BFE0 -:100470003D465FFA85FBAD00A7EB0B072A462E44ED -:1004800000F0C8FC94F82430A844FFB29B445FFA03 -:100490008BFBBBF1080F84F824B0D5D1FFF7B8FF70 -:1004A0000028D1D108E0266A06EB8306B042C9D005 -:1004B000FFF7AEFF0028C4D10020BDE8F88F01206F -:1004C000BDE8F88F7024022010B5202383F3118833 -:1004D0001248C3680BB101F0D7FE0023104A4FF455 -:1004E0007A710E4801F094FE002383F311880D4CBD -:1004F000236813B12368013B2360636813B1636809 -:10050000013B6360084B1B7833B9636823B9022051 -:1005100000F07EFC3223636010BD00BF5C2402202B -:10052000C9040008A025022098240220454B464912 -:100530002DE9F04153F8042F013201D1BDE8F081DB -:100540008B42F7D1414C424B22689A4278D9414BB9 -:100550009B6803F1006303F5C0339A4270D2002018 -:1005600000F0AAFB02203C4B187000F04FFC3B4B04 -:100570001A6C00221A64196E1A66196E596C5A6444 -:10058000596E5A66596E596941F08001596159692D -:1005900021F0800159615969196941F000511961CF -:1005A000196921F0005119611B6972B62C4B2D4954 -:1005B0000B601D682468BFF34F8FBFF36F8F2A4B0A -:1005C000C3F88420BFF34F8F5A6922F480325A61F6 -:1005D000BFF34F8FD3F8802043F6E07EC2F3C90605 -:1005E000C2F34E32B707520102EA0E0838463146CE -:1005F000013948EA000C00F14040B1F1FF3FC3F877 -:1006000074C2F5D1203A12F1200FEDD1BFF34F8F14 -:10061000BFF36F8FBFF34F8FBFF36F8F5A6922F411 -:1006200000325A610022C3F85022BFF34F8FBFF34C -:100630006F8F202383F31188AD4685F30888204708 -:10064000BDE8F081FC7F01081C80010804800108DE -:10065000FF7F010850240220982402200038024025 -:100660000080010808ED00E000ED00E02DE9F04F0A -:1006700099B0B34C2022FF21019010A8A66800F089 -:10068000F1FBB04AA3461378A3B90121AE4811701B -:10069000C360202383F31188C3680BB101F0F4FD1C -:1006A0000023AA4A4FF47A71A74801F0B1FD002354 -:1006B00083F31188019B13B1A54B019A1A600023A3 -:1006C000A44AA349019F99461C461D4698461370AB -:1006D0004B600292012000F099FB002F00F0128283 -:1006E0009B4B1B68002B40F00D8219B0BDE8F08FCA -:1006F0000220FFF777FE002840F0FB81019BB9F153 -:10070000000F08BF1F46944B1B8802210BA8ADF8B1 -:100710002C3000F09FFADDE74FF47A7000F02EFAEB -:10072000031E0393EADB0220FFF75CFE82460028EB -:10073000E4D0039B581E042800F2DD81DFE800F0BE -:10074000030E1114170018A80523042140F8343DA6 -:1007500000F080FA54464FF0000856E00421784833 -:10076000F6E704217D48F3E704217D48F0E71C24E7 -:100770002046043400F0A2FA04210B900BA800F0EC -:1007800069FA2C2CF4D1E5E7002DB7D0002CB5D0B8 -:100790000220FFF727FE0546002800F0AF81012068 -:1007A0006C4C00F089FA4FF000090220207000F034 -:1007B0002DFB5FFA89FA504600F08EFA074658B1D1 -:1007C000504609F1010900F097FA0028F1D12C46B2 -:1007D000A9460027634B97E701233E46022023707A -:1007E00000F012FBDBF808309E4206D2304600F0E3 -:1007F00065FA0130EBD10436F4E70026029BA946E6 -:100800002C461E703746524B5E6000F033FB15B12C -:10081000002C18BF0027FFF7EDFD5BE7002D3FF42C -:100820006DAF002C3FF46AAF0220029B187000F0FD -:10083000EDFA322000F0A2F9B0F1000AC0F25E81B8 -:100840001AF0030540F05A8106EB0A03DBF8082092 -:10085000934200F25381BAF5807F00F24F815545F3 -:100860000DDA4FF47A7000F089F90490049B002BA4 -:10087000C0F24481049B3C4AAB540135EFE7C820E9 -:10088000FFF7B0FD0546002800F038811F2E11D873 -:10089000C6F1200410AB26F0030033495445184438 -:1008A00028BF5446224600F0B5FA2246FF212E48C2 -:1008B00000F0D8FA4FEAAA0A2B4930465FFA8AF2CA -:1008C000FFF7B6FD0446002800F01A8106EB8A0601 -:1008D00005469AE70220FFF785FD00283FF40EAF9A -:1008E000FFF796FD00283FF409AF4FF0000A53468A -:1008F000DBF8082092451CD2BAF11F0F12D8109ACB -:1009000001320FD02AF0030218A90A4452F8202C11 -:100910000B92184604220BA90AF1040A00F052FBBC -:100920000346E5E75046039300F0C8F9039B0B909C -:10093000EFE718A8042140F84C3D00F08BF964E77C -:10094000502402209C2502205C240220C9040008B7 -:10095000A025022098240220AE3C00085424022046 -:1009600058240220B03C00089C24022018A8002330 -:10097000642140F8343D00F039F900287FF4BEAE20 -:100980000220FFF72FFD00283FF4B8AE0B9800F0CF -:10099000C5F918AB43F8480D04211846CDE718A84F -:1009A0000023642140F8343D00F020F900287FF452 -:1009B000A5AE0220FFF716FD00283FF49FAE0B986E -:1009C00000F0BAF918AB43F8440DE5E70220FFF751 -:1009D00009FD00283FF492AE00F0B4F918AB43F8DB -:1009E000400DD9E70220FFF7FDFC00283FF486AE5A -:1009F0000BA9142000F0ACF9824618A8042140F895 -:100A00003CAD00F027F951460BA896E7322000F0E4 -:100A1000B5F8B0F1000AFFF671AE1AF0030F7FF4DB -:100A20006DAE0AEB0803DBF8082093423FF666AE92 -:100A30000220FFF7D7FC00283FF460AE2AF0030A3B -:100A4000C244D0453FF4E1AE404608F1040800F04E -:100A500035F904210A900AA800F0FCF8F1E74FF4F8 -:100A60007A70FFF7BFFC00283FF448AEFFF7D0FCD8 -:100A700000283FF4AFAE109B01330CD0082210A920 -:100A80000020FFF7D5FC00283FF4A4AE2022FF2170 -:100A900010A800F0E7F9FFF7ADFC374801F074FB50 -:100AA00023E6002D3FF42AAE002C3FF427AE18A811 -:100AB0000023642140F8343D00F098F88246002875 -:100AC0007FF41CAE0220FFF78DFC00283FF416AE29 -:100AD0000390FFF78FFC41F28830574601F054FB3A -:100AE0000B9800F00FFA00F0C5F9039B1C461D4659 -:100AF000F0E5054689E64FF00008FFE52546FDE5EF -:100B00002C4667E6002000F039F80490049B002B87 -:100B1000FFF6E3AD012000F077F9049B213B122B97 -:100B20003FF6D8AD01A252F823F000BFF10600084D -:100B30001907000889070008D5060008D50600082F -:100B4000D50600081D0800080D0A0008D508000891 -:100B50006D0900089F090008CD090008D5060008A6 -:100B6000E5090008D50600085F0A00080B08000820 -:100B7000D5060008A30A0008A08601002DE9F34766 -:100B80004FF47A75002402AE154F4543DFF85880C4 -:100B900006F8014D97F900305FFA84F95A1C01D02C -:100BA000A34212D158F82400012231460368D3F839 -:100BB00020A02B46D047012807D10A4B9DF80700FB -:100BC00083F8009002B0BDE8F0870134042CE1D135 -:100BD0004FF4FA7001F0D8FA4FF0FF30F2E700BF9F -:100BE00000240220C4250220BC3C00082DE9F04767 -:100BF0004FF47A7506460024134F4D43DFF85080BA -:100C000097F900305FFA84F95A1C01D0A34210D141 -:100C100058F82400042231460368D3F820A02B465C -:100C2000D047042805D1094B002083F80090BDE887 -:100C3000F0870134042CE3D14FF4FA7001F0A4FAE8 -:100C40004FF0FF30BDE8F08700240220C4250220C9 -:100C5000BC3C0008074B30B41A78074B53F82240CD -:100C60000A46014623682046DD69044BAC4630BC89 -:100C7000604700BFC4250220BC3C0008A0860100DC -:100C8000F8B50A4C00250A4E01F0BAFC094F207055 -:100C900030682378834207D901F0ACFC33680544FF -:100CA0000133BD423360F3D9F8BD00BFC525022032 -:100CB000A8250220FF7F010001F04EBD00F1006079 -:100CC00000F5C0300068704700F10060920000F548 -:100CD000C03001F0DBBC0000054B1A68054B1B78E7 -:100CE0009B1A834202D9104401F084BC0020704753 -:100CF000A8250220C525022038B5074D04462868DE -:100D0000204401F07FFC28B928682044BDE8384021 -:100D100001F090BC38BD00BFA825022010F00303ED -:100D200008D1B0F5806F05D800F10050A0F5712012 -:100D30000068704700207047014BC058704700BFE3 -:100D400020F4F01F014B1868704700BF002004E03A -:100D50001F4BF0B51E681F4BC6F30B02360C1F88E5 -:100D60005D68BA4293F9084022D09F89BA4221D0E7 -:100D70001F8BBA4206D102220C2404FB02335D68A9 -:100D800093F90840B6F5805F16D041F201039E4208 -:100D900008BF5A24421E013D0B460A44934215D215 -:100DA00015F9016F581C4EB1034600F8016CF5E7C8 -:100DB0000022E1E70122DFE74124EBE72C25824214 -:100DC0001D7001D9981C5C70401AF0BD1846FBE7F5 -:100DD000002004E004240220094B5B88B3F5805F07 -:100DE00009D041F20102934207D10122054B03EBE6 -:100DF0008203D87870470022F8E70020704700BFD0 -:100E0000002004E0B43C0008704700007047000078 -:100E100070470000002310B5934203D0CC5CC4544B -:100E20000133F9E710BD000030B5441E14F9010F7D -:100E30000B4658B193F900500131854206D11AB9D9 -:100E400093F90020801A30BD013AEFE7002AF7D16C -:100E5000104630BD02460346981A13F9011B0029BB -:100E6000FAD1704702440346934202D003F8011BB3 -:100E7000FAE77047024B1A78024B1A70704700BFAE -:100E8000C425022000240220F8B5184C184800F0B0 -:100E9000BBFC2146164800F0E3FC24681548E26ECE -:100EA000154DD2F80438154E43F00203104FC2F826 -:100EB000043801F069F92046114900F0DFFDE26EC7 -:100EC0000024D2F8043823F00203C2F804384FF4A7 -:100ED000E1332B6056F82400B84202D0294600F0D6 -:100EE000F1FB0134042CF5D1F8BD00BFB43D00087E -:100EF000CC33022040420F00AC250220BC3C00084D -:100F0000E03D000838B50B4B05461A780A4B53F8FC -:100F100022400A4B9C420CD0094B00211822184653 -:100F2000FFF7A0FF056001462046BDE8384000F00D -:100F3000C9BB38BDC4250220BC3C0008CC3302200C -:100F4000AC250220FEE7000000B59BB0EFF309815D -:100F500068226846FFF75EFFEFF30583034B9A6B49 -:100F60009A6A9A6A9A6A9A6A9B6AFEE700ED00E0BA -:100F700000B59BB0EFF3098168226846FFF74AFF8E -:100F8000EFF30583044B9A6B9A6A9A6A9A6A9A6A93 -:100F90009A6A9B6AFEE700BF00ED00E000B59BB0D7 -:100FA000EFF3098168226846FFF734FFEFF305830A -:100FB000034B5A6B9A6A9A6A9A6A9A6A9B6AFEE724 -:100FC00000ED00E030B50A44074D91420BD011F816 -:100FD000013B09245840013CF7D040F300032B406B -:100FE00083EA5000F7E730BD2083B8ED00230449C1 -:100FF0001A465A50C81808334260802BF9D17047FE -:10100000C8250220026843681143016003B11847F4 -:1010100070470000024A136843F0C0031360704732 -:1010200000440040024A136843F0C0031360704755 -:1010300000480040024A136843F0C0031360704741 -:10104000007800402DE9F047C66D05463768F46921 -:10105000200734621AD014F0080F0CBF0021802141 -:10106000E20748BF41F02001A3074FF0200348BF2B -:1010700041F04001600748BF41F4807183F311885B -:10108000281DFFF7BFFF002383F31188E2050AD56F -:10109000202383F311884FF40071281DFFF7B2FF5E -:1010A000002383F311884FF020094FF0000A14F059 -:1010B000200831D13B0616D54FF0200905F1380A3A -:1010C000200610D589F31188504600F06FFA0028E9 -:1010D0002FDA0821281DFFF795FF27F080033360E2 -:1010E000002383F3118879060DD562060BD52023E2 -:1010F00083F31188EA6C2B6D9A4201D12B6CEBB90A -:10110000002383F31188E30620D5AA6E1369EBB19F -:101110005069BDE8F047184789F31188736A28467B -:1011200095F86410194000F0DBFA8AF31188F4692D -:10113000BDE7B06288F31188F469C1E727F0400782 -:101140001021281DFFF75EFF3760D9E7BDE8F08763 -:1011500008B50348FFF776FFBDE8084001F098BBEB -:101160004826022008B50348FFF76CFFBDE8084099 -:1011700001F08EBBB426022008B50348FFF762FFDA -:10118000BDE8084001F084BB2027022037B52D4C74 -:101190002D4D204600F08AFA009404F1140000233B -:1011A0004FF40072294900F04BF94FF4007200949B -:1011B00004F13800264B274900F0C4F9264B256678 -:1011C0000B21E3652620254C00F0C4F8204600F0F2 -:1011D0006DFA009404F1140000234FF400722049CA -:1011E00000F02EF94FF40072009404F138001D4B0A -:1011F0001D4900F0A7F91D4B25660B21E36527204B -:101200001B4C00F0A7F8204600F050FA04F114003F -:10121000009400234FF40072164900F011F904F114 -:10122000380000944FF40072134B144900F08AF90F -:10123000134B0B215220E365256603B0BDE8304017 -:1012400000F088B84826022080F937038C27022056 -:10125000151000088C2D022000440040B426022006 -:101260008C290220251000088C2F02200048004005 -:10127000202702208C2B0220351000088C31022000 -:10128000007800402E4B002908BF1946037C012B33 -:10129000816630B50CD12B4B984235D12A4B1A6C54 -:1012A00042F400321A641A6E42F400321A661B6E5F -:1012B0000A68036EC46D03EB5203B3FBF2F34A6892 -:1012C000150442BF23F0070503F0070343EA450373 -:1012D000E3608B6843F040036360CB68510543F0E3 -:1012E0000103A36042F4967343F0010323604FF0BF -:1012F000FF33236205D512F010221DD0B2F1805FBA -:101300001CD080F8643030BD104B984208D10E4B91 -:101310001A6C42F480221A641A6E42F48022C5E7E5 -:101320000B4B9842C4D1084B1A6C42F080421A64AD -:101330001A6E42F08042B9E77F23E2E73F23E0E7FD -:10134000F83C00084826022000380240B42602205B -:101350002027022000F1604300F01F02090140092C -:1013600003F56143C9B2800083F80013012300F143 -:101370006040934000F56140C0F8803103607047E1 -:10138000F8B51546826804460B46AA4200D2856825 -:10139000A1692669761AB54207D218462A46FFF790 -:1013A00039FDA3692B44A3610DE011D9AF1B32466F -:1013B0001846FFF72FFD3A46E1683044FFF72AFD53 -:1013C000E2683A44A261A36828465B1BA360F8BDAB -:1013D00018462A46FFF71EFDE368E4E78368934258 -:1013E0002DE9F04104460F46154600D28568606934 -:1013F0002669361AB54207D22A463946FFF70AFD52 -:1014000063692B4463610EE013D9A5EB06083246ED -:101410003946FFF7FFFC4246B919E068FFF7FAFCCE -:10142000E26842446261A36828465B1BA360BDE892 -:10143000F0812A463946FFF7EDFCE368E2E7000059 -:1014400010B50A440024C361029B006040608460C0 -:10145000C160816141610261036210BD08B58269AA -:101460004369934201D1826882B982680132826005 -:101470005A1C42611970426903699A4201D3C368D8 -:101480004361002100F09CFE002008BD4FF0FF30BA -:1014900008BD000070B5202304460E4683F3118872 -:1014A000A568A5B1A368A269013BA360531CA36111 -:1014B00015782269934224BFE368A361E3690BB105 -:1014C00020469847002383F31188284670BD314693 -:1014D000204600F065FE0028E2DA85F3118870BD31 -:1014E0002DE9F74F05460F4690469A46D0F81C90D6 -:1014F000202686F311884FF0000B144664B1224673 -:1015000039462846FFF73CFF034668B9514628464E -:1015100000F046FE0028F1D0002383F31188A8EBE9 -:10152000040003B0BDE8F08FB9F1000F03D00190C3 -:101530002846C847019B8BF31188E41A1F4486F3A1 -:101540001188DBE7C160816141611144C361009B87 -:10155000006040608260016103627047F8B5044634 -:101560000E461746202383F31188A568A5B1A3680A -:10157000013BA36063695A1C62611E702369626942 -:101580009A4224BFE3686361E3690BB12046984740 -:10159000002080F31188F8BD3946204600F000FE97 -:1015A0000028E2DA85F31188F8BD000083694269FA -:1015B0009A4210B501D182687AB98268013282609C -:1015C0005A1C82611C7803699A4201D3C368836103 -:1015D000002100F0F5FD204610BD4FF0FF3010BD9A -:1015E0002DE9F74F05460F4690469A46D0F81C90D5 -:1015F000202686F311884FF0000B144664B1224672 -:1016000039462846FFF7EAFE034668B951462846A0 -:1016100000F0C6FD0028F1D0002383F31188A8EB69 -:10162000040003B0BDE8F08FB9F1000F03D00190C2 -:101630002846C847019B8BF31188E41A1F4486F3A0 -:101640001188DBE7026843681143016003B1184762 -:10165000704700001430FFF743BF00004FF0FF3326 -:101660001430FFF73DBF00003830FFF7B9BF00006E -:101670004FF0FF333830FFF7B3BF00001430FFF7EF -:1016800009BF00004FF0FF311430FFF703BF000027 -:101690003830FFF763BF00004FF0FF323830FFF7FC -:1016A0005DBF000000207047FFF770BD044B036072 -:1016B000002343608360C36001230374704700BF4D -:1016C000103D000810B52023044683F31188FFF76E -:1016D000D9FD02232374002383F3118810BD000079 -:1016E00038B5C36904460D461BB904210844FFF709 -:1016F000A9FF294604F11400FFF7B0FE002806DA1E -:10170000201D4FF48061BDE83840FFF79BBF38BD16 -:10171000026843681143016003B118477047000035 -:1017200013B5446BD4F894341A681178042915D190 -:10173000217C022912D11979012312898B4013428D -:101740000CD101A904F14C0001F0AAFED4F8944494 -:101750000246019B2179206800F0E0F902B010BD3B -:10176000143001F02DBE00004FF0FF33143001F0B3 -:1017700027BE00004C3001F0FFBE00004FF0FF33E9 -:101780004C3001F0F9BE0000143001F0FBBD000048 -:101790004FF0FF31143001F0F5BD00004C3001F086 -:1017A000CBBE00004FF0FF324C3001F0C5BE000050 -:1017B000D0F8942438B5136805461978042901D067 -:1017C000012038BD017C0229FAD1127901205C89FF -:1017D00090400440F4D105F1140001F08DFD024663 -:1017E0000028EDD0D5F894544FF4807328686979B7 -:1017F00000F082F9204638BD406BFFF7D9BF0000EA -:1018000000207047704700007FB5124B012502266B -:10181000044603600023057400F1840243602946F6 -:101820008360C3600C4B0290143001934FF48073BB -:10183000009601F03DFD094B04F523722946019302 -:1018400004F14C004FF480730294009601F004FE02 -:1018500004B070BD383D0008F917000821170008D2 -:101860000B68202282F311880A7903EB820210624E -:101870004A790D3243F822008A7912B103EB8203D0 -:1018800018620223C0F894140374002383F31188B0 -:101890007047000038B5037F044613B190F8543008 -:1018A000ABB90125201D0221FFF732FF04F114001E -:1018B00025776FF0010100F08FFC84F8545004F19B -:1018C0004C006FF00101BDE8384000F085BC38BD28 -:1018D00010B5012104460430FFF71AFF00232377D7 -:1018E00084F8543010BD000038B50446002514308B -:1018F00001F0F6FC04F14C00257701F0C5FD201D38 -:1019000084F854500121FFF703FF2046BDE838401A -:10191000FFF74EBF90F85C3003F06003202B19D125 -:1019200090F85D20212A0AD0222A4FF000030ED021 -:10193000202A0FD1084A02650722426504E0064BBF -:101940000365072343650023836501207047036512 -:101950004365F9E70020704728240220D0F894342A -:1019600037B51A680446117804291AD1017C022976 -:1019700017D11979012312898B40134211D100F13B -:101980004C05284601F040FE58B101A9284601F057 -:1019900087FDD4F894440246019B2179206800F029 -:1019A000BDF803B030BD000000EB8103F7B51C6A41 -:1019B00005460E46F4B1202383F3118805EB860714 -:1019C000201D08214C34FFF7A3FEFB685B691B68F0 -:1019D00013B1204601F072FD01A9204601F060FD1F -:1019E000024648B1019B3146284600F097F8002393 -:1019F00083F3118803B0F0BDFB685A691268002AAE -:101A0000F5D01B8A013B1340F1D105F15C02EAE7F6 -:101A10000D3138B550F82140DCB1202383F3118813 -:101A2000D4F894241368527903EB8203DB689B6932 -:101A30005D6845B104216018FFF76AFE294604F18C -:101A4000140001F063FC2046FFF7B2FE002383F38D -:101A5000118838BD7047000001F012B8012300F171 -:101A6000240200F1380103700023436042F8043B74 -:101A70008A421361FAD103814381704738B5044625 -:101A8000202383F3118800254160C560056145610D -:101A90008561C561056201F003F80223237085F3B7 -:101AA000118838BD70B500EB8103054650690E46BC -:101AB0001446DA6018B110220021FFF7D3F9A069AB -:101AC00018B110220021FFF7CDF931462846BDE8B4 -:101AD000704001F0AFB80000028902F001020281FB -:101AE000428902F001024281002202614261826168 -:101AF000C261026201F032B9F0B4012500EB810449 -:101B000047898D40E4683D43A469458123600023F3 -:101B1000A2606360F0BC01F04DB90000F0B4012593 -:101B200000EB810407898D40E4683D4364690581C9 -:101B300023600023A2606360F0BC01F0C7B900001D -:101B400070B50223002504460370A0F8645080F8A5 -:101B5000665080F8675005814581C5600561456123 -:101B60008561C561056280F84C5000F0FFFF636835 -:101B70001B6823B129462046BDE87040184770BD58 -:101B80000278436880F8682005221B6802700BB158 -:101B90000421184770470000436890F868201B68CC -:101BA00002700BB1052118477047000090F84C30C7 -:101BB00070B5044613B1002380F84C3004F15C0288 -:101BC000204601F0EDF863689B6863BB94F85C50B5 -:101BD00015F0600615D194F85D3005F07F0545EAF3 -:101BE000032540F202339D4200F00E815BD8022DA6 -:101BF00000F0DC803FD8002D00F08780012D00F040 -:101C0000CF800021204601F035FB0021204601F065 -:101C100027FB63681B6813B10621204698470623FB -:101C200084F84C3070BD204698470028CED094F8F8 -:101C3000632094F8623043EA0223626D934238BF16 -:101C4000636594F95C30656D002B4FF0200380F2E2 -:101C5000FD80002D00F0EC80092284F84C2083F3F5 -:101C600011880021636D226D2046FFF757FF002386 -:101C700083F3118870BDB5F5817F00F0B180B5F5B3 -:101C8000407F49D0B5F5807FBBD194F85E30012B01 -:101C9000B7D1B4F8643023F00203A4F864302665A9 -:101CA0006665A665C3E740F201639D421ED8B5F59F -:101CB000C06F3BD2B5F5A06FA3D1B4F85C30B3F5DB -:101CC000A06F0ED194F85E30204684F8663000F0A4 -:101CD000A5FF63681B6813B10121204698470323C1 -:101CE0002370002323656365A365A0E7B5F5106F36 -:101CF00032D040F602439D4252D0B5F5006F80D1FC -:101D000004F167032365012324E004F16403A5655E -:101D10002365022363658AE794F85E30012B7FF424 -:101D200070AFB4F8643043F00203B6E794F8612072 -:101D30002046616894F860304D6843EA022394F8C5 -:101D40005F1094F85E20A84700283FF45AAF43681C -:101D5000236503686365A4E72378042B10D120234F -:101D600083F311882046FFF7B7FE86F31188636876 -:101D7000032184F867601B6821700BB120469847E7 -:101D800094F85E30002BACD084F8673004232370C5 -:101D900063681B68002BA4D0022120469847A0E767 -:101DA000374B23650223636500239DE794F8601099 -:101DB000204611F0800F01F00F010ED000F0E2FF7D -:101DC000012806D002287FF41CAF2E4B60652365E6 -:101DD00067E72D4B6565236563E700F0C5FFEFE717 -:101DE00094F85E30002B7FF40CAF94F8603013F061 -:101DF0000F013FF476AF1A06204602D501F04EFAE5 -:101E00006FE701F041FA6CE794F85E30002B7FF445 -:101E1000F8AE94F8603013F00F013FF462AF1B0688 -:101E2000204602D501F026FA5BE701F019FA58E7DF -:101E3000142284F84C2083F311882B462A46294625 -:101E40002046FFF759FE85F3118870BD5DB115225C -:101E500084F84C2083F311880021636D226D2046A5 -:101E6000FFF74AFE03E70B2284F84C2083F3118826 -:101E70002B462A4629462046FFF750FEE3E700BFDF -:101E8000683D0008603D0008643D000838B590F8E2 -:101E90004C300446152B29D8DFE803F03E282828CB -:101EA00028283E28280B29392828282828282828A7 -:101EB0003E3E90F8631090F86220436D42EA0122A2 -:101EC0009A4214D9C268128AB3FBF2F502FB1535A7 -:101ED0006DB9202383F311882B462A462946FFF744 -:101EE0001DFE85F311880A2384F84C3038BD142375 -:101EF00084F84C30202383F31188002320461A46AF -:101F00001946FFF7F9FD002383F3118838BD836D6F -:101F100003B198470023E7E7002101F0ABF9002166 -:101F2000204601F09DF963681B6813B10621204625 -:101F300098470623D8E7000090F84C20152A38B5BA -:101F4000044622D80123934040F6416213421DD13A -:101F500013F480150FD19B0217D50B2380F84C305A -:101F6000202383F311882B462A462946FFF7D6FD06 -:101F700085F3118838BDC3689B695B682BB9836D95 -:101F800003B19847002384F84C3038BD002101F09C -:101F900071F90021204601F063F963681B6813B1F1 -:101FA0000621204698470623EDE70000024B002259 -:101FB0001B605B609A6070478C330220002382684C -:101FC0000374054B1B6899689142FBD25A68036001 -:101FD00042601060586070478C33022008B520239F -:101FE00083F31188037C032B05D0042B0DD02BB970 -:101FF00083F3118808BD436900221A604FF0FF3354 -:102000004361FFF7DBFF0023F2E790E80C001A6062 -:1020100002685360F2E70000002382680374054BF6 -:102020001B6899689142FBD85A680360426010604F -:10203000586070478C330220054B19690874186882 -:10204000026853601A60186101230374FEF76CB9CB -:102050008C3302204B1C30B5054687B00A4C10D09B -:10206000236901A8094A00F0D3F82846FFF7E4FFE6 -:10207000049B13B101A800F007F92369586907B060 -:1020800030BDFFF7D9FFF8E78C330220DD1F0008D1 -:1020900038B50C4D044641612B6981689A689142BC -:1020A00003D8BDE83840FFF789BF1846FFF786FF21 -:1020B00001232C61014623742046BDE83840FEF719 -:1020C00033B900BF8C330220044B1A681B69906837 -:1020D0009B68984294BF0020012070478C330220F7 -:1020E00010B5084C236820691A68546022600122E8 -:1020F00023611A74FFF790FF01462069BDE8104084 -:10210000FEF712B98C330220826002220274002290 -:10211000427470478368A3F17C0243F80C2C026977 -:1021200043F83C2C426943F8382C074A43F81C2CEE -:10213000C268A3F1180043F8102C022203F8082CFF -:10214000002203F8072C70474103000810B5202334 -:1021500083F31188FFF7DEFF00210446FFF798FFA5 -:10216000002383F31188204610BD0000024B1B6939 -:1021700058610F20FFF760BF8C330220202383F3C8 -:102180001188FFF7F3BF000008B50146202383F351 -:1021900011880820FFF75EFF002383F3118808BD34 -:1021A00049B1064B42681B6918605A60136043606E -:1021B0000420FFF74FBF4FF0FF3070478C330220F1 -:1021C0000368984206D01A68026050601846596148 -:1021D000FFF7F4BE7047000038B504460D4620688E -:1021E000844200D138BD036823605C604561FFF71D -:1021F000E5FEF4E7054B03F114025A619A614FF0D2 -:10220000FF32DA6100221A62704700BF8C3302206D -:10221000F8B503614FF08043C26002295C6A06464C -:10222000184B38BF02211A461F4652F8145F9542D8 -:102230000AD1586198611C62056045608160081987 -:10224000BDE8F84001F002BA186AAB68241A0C190C -:1022500002D3E41A2D6804E09C4202D2204401F02B -:1022600003FAAB689C42F4D86B68356073601E60FB -:102270004FF0FF336E60B460A968091BA960FB6171 -:10228000F8BD00BF8C33022010B41B4C234653F81A -:10229000141F814210D0416802680A6002685160D0 -:1022A0009A424FF00001C16003D0936881680B44EB -:1022B00093605DF8044B70470A6800209A4262619F -:1022C0005360C86003D15DF8044B01F0C7B993684F -:1022D00088680344206A93604FF08042526A121A61 -:1022E0009342E6D9991A5DF8044B012998BF931CD3 -:1022F000184401F0B9B900BF8C33022000207047A8 -:10230000FEE70000704700004FF0FF30704700000C -:10231000022906D0032906D00129064818BF00204B -:10232000704705487047032A9ABF044800EBC20073 -:10233000002070473C3E0008F03D00083024022099 -:1023400070B59AB006460846144601AD294600F01D -:1023500095F82846FEF77EFDC0B2431C5B0086E878 -:10236000180023700323023404F8013C00231946AB -:10237000DAB20234904201D81AB070BDEA5C01337F -:1023800004F8011C04F8022CF2E7000008B5202331 -:1023900083F311880348FFF7E1FA002383F31188E0 -:1023A00008BD00BFCC33022010B50446052916D85D -:1023B000DFE801F016150316161D202383F311889C -:1023C0000E4A0121FFF76EFB20460D4A0221FFF75E -:1023D00069FB0C48FFF788FA002383F3118810BDCE -:1023E000202383F311880748FFF754FAF4E72023EA -:1023F00083F311880348FFF76BFAEDE76C3D0008A3 -:10240000903D0008CC33022038B50C4D0C4C2A46C8 -:102410000C4904F10800FFF793FF05F1CA0204F12B -:1024200010000949FFF78CFF05F5CA7204F1180086 -:102430000649BDE83840FFF783BF00BF943802204B -:1024400030240220BC3D0008C93D0008D73D0008EB -:1024500070B5044608460D46FEF7FCFCC6B22046A1 -:10246000013403780BB9184670BD32462946FEF791 -:10247000DBFC0028F3D1012070BD00002DE9F84FEE -:1024800005460C46FEF7E6FC2C49C6B22846FFF787 -:10249000DFFF08B10336F6B229492846FFF7D8FF17 -:1024A00008B11036F6B2632E0DD8DFF89080DFF851 -:1024B0009090244FDFF894A0DFF894B02E7846B9BE -:1024C0002670BDE8F88F29462046BDE8F84F01F098 -:1024D000E5BB252E2ED1072241462846FEF7A4FC57 -:1024E00070B9DBF8003007350A3444F80A3CDBF8F1 -:1024F000043044F8063CBBF8083024F8023CDDE721 -:10250000082249462846FEF78FFC98B9A21C0E4BBC -:1025100013F8011F023209095345C95D02F8041C72 -:10252000197801F00F01C95D02F8031CF0D11834CD -:102530000835C3E7267001350134BFE75C3E00086B -:10254000D73D00086F3E00081FF4F01F2BF4F01F6A -:10255000643E0008BFF34F8F024AD368DB03FCD40C -:10256000704700BF003C024008B5074B1B7853B9C9 -:10257000FFF7F0FF054B1A69002A04DA044A5A6093 -:1025800002F188325A6008BDF23A0220003C024053 -:102590002301674508B5054B1B7833B9FFF7DAFF10 -:1025A000034A136943F00043136108BDF23A022065 -:1025B000003C02400B2870B513D80B4A0B4C137823 -:1025C00063B94FF000610A4E44F8231056F82350C7 -:1025D00001330C2B2944F7D10123137054F8200048 -:1025E00070BD002070BD00BF243B0220F43A0220E1 -:1025F000803E0008014B53F820007047803E0008E1 -:102600000C2070470B2810B5044601D9002010BDDE -:10261000FFF7D0FF064B53F824301844C21A0BB909 -:10262000012010BD12680132F0D1043BF6E700BF73 -:10263000803E00080B2810B5044621D8FFF78AFF1A -:10264000FFF792FF0F4AF323D360C300DBB243F4DA -:10265000007343F002031361136943F48033136181 -:10266000FFF778FFFFF7A6FF074B53F8241000F0A1 -:10267000DBF8FFF78FFF2046BDE81040FFF7C2BF31 -:10268000002010BD003C0240803E00082DE9F843C8 -:1026900012F0010315463FD18218B2F1026F3BD20E -:1026A0002B4B1B6813F0010336D0FFF75DFF294C5D -:1026B000F32340F20127E360FFF74CFF032D01D91C -:1026C000830712D00F46401A224C40F20118EB1B30 -:1026D000C6190B44012B236924D823F0010323617D -:1026E000FFF758FF0120BDE8F883236923F4407306 -:1026F000236123693B43236151F8046B0660BFF3F8 -:102700004F8FFFF727FF03689E4208D0236923F00D -:1027100001032361FFF73EFF0020BDE8F883043D7D -:102720000430CBE723F44073B9462361236943EABD -:102730000803236137F8023B3380BFF34F8FFFF765 -:1027400009FF3688B6B2B9F80030B342BFD0DDE732 -:1027500000380240003C0240084908B50B7828B117 -:1027600053B9FFF701FF01230B7008BD23B10870B7 -:10277000BDE80840FFF70EBF08BD00BFF23A0220D7 -:1027800002440439064BD2B210B5904200D110BDBC -:10279000441C00B253F8200041F8040FE0B2F4E703 -:1027A00050280040104B30B51C6F240407D41C6F18 -:1027B00044F400741C671C6F44F400441C670B4C09 -:1027C000024404392368D2B243F480732360084B77 -:1027D000904200D130BD441C51F8045F00B243F870 -:1027E0002050E0B2F4E700BF003802400070004023 -:1027F0005028004007B5012201A90020FFF7C0FFC3 -:10280000019803B05DF804FB13B50446FFF7F2FF2F -:10281000A04206D002A90122002041F8044DFFF792 -:10282000C1FF02B010BD00000144BFF34F8F064B43 -:10283000884204D3BFF34F8FBFF36F8F7047C3F845 -:102840005C022030F4E700BF00ED00E0034B1B68A2 -:102850009B0042BF0122024B1A707047743802403D -:10286000253B0220014B1878704700BF253B022012 -:10287000064A536823F001035360EFF3098368337A -:1028800083F30988002383F31188704730EF00E059 -:1028900010B5202383F31188104B5B6813F4006399 -:1028A00018D0F1EE103AEFF309844FF0807344F83A -:1028B0004C3C0B4BDB6844F8083CA4F1680383F301 -:1028C0000988FFF701FC18B1064B44F8503C10BDD5 -:1028D000054BFAE783F3118810BD00BF00ED00E05F -:1028E00030EF00E05103000854030008F0B5BFF3D7 -:1028F0004F8FBFF36F8F1D4B0021C3F85012BFF3F2 -:102900004F8FBFF36F8F5A6942F400325A61BFF3A1 -:102910004F8FBFF36F8FC3F88410BFF34F8FD3F87F -:10292000802043F6E076C2F3C904C2F34E32A50715 -:10293000520102EA060E284621464EEA00070139F6 -:1029400000F14040C3F860724F1CF6D1203A12F1FA -:10295000200FEED1BFF34F8F5A6942F480325A6193 -:10296000BFF34F8FBFF36F8FF0BD00BF00ED00E0EE -:10297000FEE70000084A094B09498B4204D3094A83 -:102980000021934205D3704752F8040F43F8040B1B -:10299000F3E743F8041BF4E78C400008B03D022045 -:1029A000B03D0220B03D0220036F002230B5114639 -:1029B000C46E9D684FF0FF3004EB42130132954224 -:1029C000C3F80019C3F81019C3F80809C3F8001BAD -:1029D000C3F8101BC3F8080BEED24FF00113C4F874 -:1029E0001C3830BD890141F02001016103699B065B -:1029F000FCD4122000F0C4BE204B03EB80022DE972 -:102A0000F047D2F80CE0461CDD6EDEF8142005EB32 -:102A10000636D2F800C005EB4018516861450BD36B -:102A20000123D5F8342803FA00F022EA0000C5F8A3 -:102A300034081846BDE8F087ACEB0103BEF810403F -:102A4000A34228BF2346D8F81849A4B2B3EB840F99 -:102A500010D894681F46A4F1040959F804AF042F54 -:102A6000C6F800A001D9043FF7E71C440B4494606A -:102A70005360D2E70020BDE8F08700BF283B02206A -:102A800010B5054C2046FEF7E9FF4FF0A043E36682 -:102A9000024B236710BD00BF283B0220D43E000834 -:102AA0000378012B70B5054650D12A4BC46E98426D -:102AB0001BD1294B0E2143205A6B42F080025A63EE -:102AC0005A6D42F080025A655A6D5A6942F080028E -:102AD0005A615A6922F080025A615B69FEF73AFC3A -:102AE0001E4BE3601E4BC4F800380023EE6EC4F8A2 -:102AF000003EC02323604FF40413A3633369002B0B -:102B0000FCDA01230C20336100F03AFE3369DB0765 -:102B1000FCD4122000F034FE3369002BFCDA0026CE -:102B20002846A660FFF740FF6B68C4F81068DB68B2 -:102B3000C4F81468C4F81C684BB90A4BA3614FF081 -:102B4000FF336361A36843F00103A36070BD064BCC -:102B5000F4E700BF283B0220003802404014004048 -:102B600003002002003C30C0083C30C0F8B5C46E01 -:102B7000054600214FF000662046FFF733FF296F1E -:102B800000234FF001128F684FF0FF30C4F8343843 -:102B9000C4F81C2804EB431201339F42C2F80069B9 -:102BA000C2F8006BC2F80809C2F8080BF2D20B6831 -:102BB000EA6E6B67636210231361166916F01006E4 -:102BC000FBD1122000F0DCFDD4F8003823F4FE63C2 -:102BD000C4F80038A36943F4402343F01003A36111 -:102BE0000923C4F81038C4F814380A4BEB604FF0CE -:102BF000C043C4F8103B084BC4F8003BC4F810694C -:102C0000C4F800396B6F03F1100243F480136A6754 -:102C1000A362F8BDB03E000840800010C26E90F87C -:102C20006610D2F8003823F4FE6343EA0113C2F8B9 -:102C3000003870472DE9F0410EB20D4600EB8608D2 -:102C4000D8F80C100F6807F00303022B50D0032BA9 -:102C500050D03D4A3D4F012B18BF1746C46E4FEA76 -:102C6000451E002205F1100C04EB0E03C3F8102BD7 -:102C70008A69002A40D04A8A05F158033A435B0129 -:102C8000E2500123D4F81C2803FA0CF31343C4F8D0 -:102C90001C38A64400234A69CEF8103905F13F03D9 -:102CA000002A39D00A8A04EB8303898B9208012910 -:102CB00088BF4A43416F561841EA02422946466797 -:102CC00020465A60FFF78EFED8F80C301B8A43EA84 -:102CD00085531F4305F148035B01E7500123D4F8F6 -:102CE0001C2803FA05F51543C4F81C58BDE8F0810B -:102CF000174FB3E7174FB1E704EB4613D3F8002B98 -:102D000022F40042C3F8002B0123D4F81C2803FA54 -:102D10000CF322EA0303BAE704EB83030E4A04EB45 -:102D2000461629465A602046FFF75CFED6F8003961 -:102D3000012223F4004302FA05F5C6F80039D4F85D -:102D40001C3823EA0505CFE700800010008004103E -:102D50000080081000800C1000040002026F12684E -:102D60004267FFF721BE00005831C36E49015B582E -:102D700013F4004004D013F4001F14BF01200220FC -:102D8000704700004831C36E49015B5813F400409E -:102D900004D013F4001F14BF01200220704700006C -:102DA00000EB8101CB68196A0B6813604B685360B4 -:102DB0007047000000EB810330B5DD68AA69136835 -:102DC000D36019B9402B84BF402313606B8A146809 -:102DD000C26E1C4402EB4110013C09B2B4FBF3F497 -:102DE0006343033323F0030343EAC44343F0C04384 -:102DF000C0F8103B2B6803F00303012B0ED1D2F86F -:102E0000083802EB411013F4807FD0F8003B14BF68 -:102E100043F0805343F00053C0F8003B02EB4112F3 -:102E2000D2F8003B43F00443C2F8003B30BD000041 -:102E30002DE9F041244D0446EE6E06EB4013D3F825 -:102E4000087B3807C3F8087B0AD5D6F81438190769 -:102E500006D505EB840321462846DB685B68984766 -:102E6000FA072FD5D6F81438DB072BD505EB8403EA -:102E7000D968CCB98B69488A5E68B6FBF0F200FB72 -:102E800012628AB91868DA6890420DD2121A83E881 -:102E90001400202383F311880B482146FFF78AFF93 -:102EA00084F31188BDE8F081012303FA04F26B89F1 -:102EB00023EA02036B81CB6823B121460248BDE8B7 -:102EC000F0411847BDE8F081283B022000EB810368 -:102ED0004A0170B5DD68C36E6C692668E66056BB52 -:102EE0001A444FF40020C2F810092A6802F00302C5 -:102EF000012A0AB20ED1D3F8080803EB421410F4E9 -:102F0000807FD4F8000914BF40F0805040F000509A -:102F1000C4F8000903EB4212D2F8000940F0044063 -:102F2000C2F800090122D3F8340802FA01F1014382 -:102F3000C3F8341870BD19B9402E84BF40202060FA -:102F400020681A442E8A841940F00050013CB4FBDA -:102F5000F6F440EAC440C6E7F8B504461E48C56E1C -:102F600005EB4413D3F80869F107C3F8086917D5CE -:102F7000D5F81038DA0713D500EB8403D9684B690C -:102F80001F68DA68974218D2D21B00271A605F6068 -:102F9000202383F311882146FFF798FF87F31188D8 -:102FA000330617D50123D5F83428A340134211D096 -:102FB0002046BDE8F840FFF71FBD012303FA04F2E5 -:102FC000038923EA020303818B68002BE8D02146A2 -:102FD0009847E5E7F8BD00BF283B02209F482DE950 -:102FE000F84FC56E04466E69AB691E4016F4805FEB -:102FF0006E6105D0FEF7A4FDBDE8F84FFFF748BCB1 -:10300000002E12DAD5F8003E9B0705D0D5F8003E19 -:1030100023F00303C5F8003ED5F804388F4823F0A9 -:103020000103C5F80438FEF7B7FD370502D58B4814 -:10303000FEF7A6FDB0040CD5D5F8083813F0060F3E -:10304000EB6823F470530CBF43F4105343F4A053C4 -:10305000EB60310704D56368DB680BB17F489847A4 -:10306000F2026FD4B3020CD5D4F86C8000274FF075 -:103070000109DFF8E8A1236FF9B29B688B4280F069 -:103080009C80F70619D5E16E0A6AC2F30A1702F0AE -:103090000F0302F4F012B2F5802F00F0B580B2F504 -:1030A000402F0AD104EB830301F58051DB68186AD5 -:1030B00000231A469F4240F09C803303D5F81848FD -:1030C0001DD5E70302D50020FFF7B2FEA50302D508 -:1030D0000120FFF7ADFE600302D50220FFF7A8FE36 -:1030E000210302D50320FFF7A3FEE20202D504204C -:1030F000FFF79EFEA30202D50520FFF799FE770396 -:103100007FF57AAFE60702D50020FFF725FFA50778 -:1031100002D50120FFF720FF600702D50220FFF74C -:103120001BFF210702D50320FFF716FFE20602D599 -:103130000420FFF711FFA3067FF55EAF0520FFF720 -:103140000BFF59E7D4F86C8000274FF00109DFF836 -:103150000CA1236F5FFA87FB9B685B4582D308EB6A -:103160004B13D3F8002902F44022B2F5802F22D16C -:10317000D3F80029002A1EDAD3F8002942F0904241 -:10318000C3F80029D3F80029002AFBDB5946E06E7A -:10319000FFF728FC228909FA0BF322EA03032381B3 -:1031A00004EB8B03DB689B6813B159465046984784 -:1031B0005846FFF721FC0137CBE708EB4112D2F864 -:1031C000003B03F44023B3F5802F10D1D2F8003B2D -:1031D000002B0CDA628909FA01F322EA0303638106 -:1031E00004EB8103DB68DB680BB15046984701377D -:1031F00041E79C0700D10A68072B03F101039EBF3A -:103200000270120A013055E7023301F5805104EBD8 -:103210008302526890690268D0F808C04068A2EB47 -:10322000000E0022104697420AD104EB8304636823 -:103230009B699A683A449A605A6817445F603CE711 -:1032400012F0030F00D10868964502F1010282BF17 -:103250008CF80000000A0CF1010CE4E7283B022086 -:10326000C36E03EB4111D1F8003B43F40013C1F8E6 -:10327000003B7047C36E03EB4111D1F8003943F4B2 -:103280000013C1F800397047C36E03EB4111D1F848 -:10329000003B23F40013C1F8003B7047C36E03EBFF -:1032A0004111D1F8003923F40013C1F800397047F7 -:1032B00030B50433039C0172002104FB0325C36174 -:1032C000049B00600363059B4060C1604261026132 -:1032D0008561046242628162C162436330BD000065 -:1032E0000022416AC260416101616FF001018262A6 -:1032F000C262FEF771BF000003694269934203D1C5 -:10330000C2680AB100207047181D70470369196030 -:103310000021C2680132C260C269134482699342CB -:10332000036124BF436A0361FEF74ABF38B5044610 -:103330000D46E3683BB162690020131D1268A36269 -:103340001344E36238BD237A33B929462046FEF799 -:1033500027FF0028EDDA38BD6FF00100FBE7000021 -:10336000C368C269013BC3604369134482699342E5 -:10337000436124BF436A436100238362036B03B14B -:103380001847704770B52023044683F31188866A76 -:103390003EB9FFF7CBFF054618B186F311882846E2 -:1033A00070BDA36AE26A13F8015B9342A36202D381 -:1033B0002046FFF7D5FF002383F31188EFE70000D5 -:1033C0002DE9F84F04460E4690469946202787F38C -:1033D00011880025AA46D4F828B0BBF1000F09D106 -:1033E00049462046FFF7A2FF20B18BF311882846FB -:1033F000BDE8F88FA16AA8EB050BE36A5B1A9B4551 -:1034000028BF9B46BBF1400F1BD9334601F1400258 -:1034100051F8040B914243F8040BF9D1A36A4036EA -:1034200040354033A362A26AE36A9A4202D320463F -:10343000FFF796FF8AF311884545D8D287F31188A4 -:10344000C9E730465A46FDF7E5FCA36A5E445D4491 -:103450005B44A362E7E7000010B5029C04330172ED -:10346000C36103FB0421002300608362C362039BEA -:1034700040600363049BC460426102618161046235 -:103480004262436310BD0000026A6FF00101C26036 -:10349000426A4261026100228262C262FEF79CBE01 -:1034A000436902699A4203D1C2680AB10020704799 -:1034B000184650F8043B0B6070470000C3680021B9 -:1034C000C2690133C3604369134482699342436113 -:1034D00024BF436A4361FEF773BE000038B504465B -:1034E0000D46E3683BB1236900201A1DA262E26920 -:1034F0001344E36238BD237A33B929462046FEF7E8 -:103500004FFE0028EDDA38BD6FF00100FBE7000048 -:1035100003691960C268013AC260C26913448269D2 -:103520009342036124BF436A036100238362036BF8 -:1035300003B118477047000070B5202304460E46BB -:1035400083F31188856A35B91146FFF7C7FF10B1BB -:1035500085F3118870BDA36A1E70A36AE26A013305 -:103560009342A36204D3E16920460439FFF7D0FFF8 -:10357000002080F3118870BD2DE9F84F04460D46F8 -:1035800091469A464FF0200888F311880026B346EA -:10359000A76A4FB951462046FFF7A0FF20B187F335 -:1035A00011883046BDE8F88FA06AA9EB0603E76AE8 -:1035B0003F1A9F4228BF1F46402F1BD905F14003E9 -:1035C00055F8042B9D4240F8042BF9D1A36A4036EC -:1035D0004033A362A26AE36A9A4204D3E1692046B7 -:1035E0000439FFF795FF8BF311884E45D9D288F344 -:1035F0001188CDE729463A46FDF70CFCA36A3D4405 -:103600003E443B44A362E5E7026943699A4203D121 -:10361000C3681BB9184670470023FBE7836A002B79 -:10362000F8D0043B9B1AF5D01360C368013BC3601C -:10363000C3691A4483699A42026124BF436A0361E1 -:10364000002383620123E5E700F040B94FF0804397 -:10365000002258631A610222DA60704700224FF09C -:103660008043DA60704700004FF080435863704732 -:10367000FEE7000010B5194CFEF798FCFEF7BAFD06 -:10368000802217492046FEF73FFD012344F8180C1D -:103690000374144B144AD96821F4E0610904090C3D -:1036A0000A431249DA60CA6842F08072CA60104A5E -:1036B0001049C2F8B01F116841F0010111601022D9 -:1036C000DA77202283F82220002383F3118862B660 -:1036D0000948BDE81040FEF739BD00BFB4330220F1 -:1036E000E03E000800ED00E00003FA05F0ED00E028 -:1036F000001000E055CEACC5E83E00082DE9F84FBB -:103700001E4C4FF00008656904F11407C1464FF0E4 -:103710008043266AAA685B6A9E1B96421CD34FF0C0 -:10372000200AAA68236AD5F80CB0B61A134423629B -:103730002B68BB425F606361C5F80C8001D1FFF765 -:103740008DFF89F311882869D8478AF31188656944 -:10375000AB689E42E5D2DAE76269BA420CD0916862 -:1037600023628E1B9660A86802282CBF1818981C2C -:10377000BDE8F84FFFF778BFBDE8F88F8C33022023 -:10378000034B59685A68521A9042FBD8704700BFE1 -:10379000001000E04B6843608B688360CB68C360B7 -:1037A0000B6943614B6903628B6943620B68036079 -:1037B0007047000008B5274B40F2FF7126481A6990 -:1037C0000A431A611A6922F4FF6222F007021A61A1 -:1037D0001A691A6B0A431A631A6D0A431A651F4A5B -:1037E0001B6D1146FFF7D6FF1D4802F11C01FFF7C4 -:1037F000D1FF1C4802F13801FFF7CCFF1A4802F153 -:103800005401FFF7C7FF194802F17001FFF7C2FF2B -:10381000174802F18C01FFF7BDFF164802F1A8011D -:10382000FFF7B8FF144802F1C401FFF7B3FF1348D4 -:1038300002F1E001FFF7AEFF114802F1FC01FFF7D2 -:10384000A9FF104802F58C71FFF7A4FFBDE80840FE -:1038500000F09EB80038024000000240083F000817 -:103860000004024000080240000C02400010024028 -:103870000014024000180240001C024000200240D8 -:10388000002402400028024008B500F0F5F9FFF7D7 -:10389000F1FEFEF7DBFFBDE80840FEF7B5BD000016 -:1038A000704700004FF080431A69920710B508D5A1 -:1038B00000241C61202383F31188FFF71FFF84F38A -:1038C0001188BDE81040FEF7E3BF0000104B08214F -:1038D0001C201A6C42F001021A641A6E42F00102B6 -:1038E0001A660C4A1B6E936843F0010393604FF015 -:1038F00080436B229A624FF0FF32DA6200229A61B3 -:103900005A63DA605A6001225A611A60FDF722BDDB -:1039100000380240002004E01B4B4FF0FF30002134 -:103920001A696FEA42526FEA52521A611A69C2F377 -:103930000A021A611A695A6958615A6959615A69C1 -:103940001A6A62F080521A621A6A02F080521A628F -:103950001A6A5A6A58625A6A59625A6A0B4A106855 -:1039600040F480701060186F00F44070B0F5007F74 -:1039700003D04FF4803018671967536823F400733D -:10398000536000F059B900BF003802400070004099 -:10399000354B4FF44041354A1A64354A11601A6874 -:1039A00042F001021A601A689207FCD59A6822F068 -:1039B00003029A602C4B19469A6812F00C02FBD154 -:1039C000186800F0F90018609A601A6842F48032B2 -:1039D0001A600B689B03FCD54B6F43F001034B67E8 -:1039E000214B5A6F9007FCD5224A5A601A6842F060 -:1039F00080721A601E4B1A4659684904FCD5196832 -:103A000041F4803119605368D803FCD5136843F43E -:103A100000331360164A53689903FCD5124B1A6899 -:103A20009201FCD5144A40F207319A6040F201122B -:103A3000C3F88C200022C3F89020104A11609A68C5 -:103A400042F002029A60084B9A6802F00C02082ABF -:103A5000FAD15A6C42F480425A645A6E42F480425F -:103A60005A665B6E704700BF0038024000040010C9 -:103A700000700040186C400900948838003C0240F7 -:103A8000084A08B5536911680B4003F001035361FC -:103A900023B1054A13680BB150689847BDE8084048 -:103AA000FEF7F6BE003C0140C8250220084A08B5D2 -:103AB000536911680B4003F00203536123B1054AB7 -:103AC00093680BB1D0689847BDE80840FEF7E0BEA8 -:103AD000003C0140C8250220084A08B55369116816 -:103AE0000B4003F00403536123B1054A13690BB182 -:103AF00050699847BDE80840FEF7CABE003C014047 -:103B0000C8250220084A08B5536911680B4003F024 -:103B10000803536123B1054A93690BB1D0699847F3 -:103B2000BDE80840FEF7B4BE003C0140C8250220B5 -:103B3000084A08B5536911680B4003F0100353613C -:103B400023B1054A136A0BB1506A9847BDE8084093 -:103B5000FEF79EBE003C0140C8250220174B10B561 -:103B60005C691A68144004F478725A61A30604D59B -:103B7000134A936A0BB1D06A9847600604D5104A7D -:103B8000136B0BB1506B9847210604D50C4A936B0D -:103B90000BB1D06B9847E20504D5094A136C0BB101 -:103BA000506C9847A30504D5054A936C0BB1D06CB3 -:103BB0009847BDE81040FEF76BBE00BF003C0140D7 -:103BC000C82502201A4B10B55C691A68144004F429 -:103BD0007C425A61620504D5164A136D0BB1506DD3 -:103BE0009847230504D5134A936D0BB1D06D9847C0 -:103BF000E00404D50F4A136E0BB1506E9847A10430 -:103C000004D50C4A936E0BB1D06E9847620404D56C -:103C1000084A136F0BB1506F9847230404D5054A27 -:103C2000936F0BB1D06F9847BDE81040FEF730BEE0 -:103C3000003C0140C8250220062108B50846FDF7D2 -:103C400089FB06210720FDF785FB06210820FDF7EB -:103C500081FB06210920FDF77DFB06210A20FDF7E7 -:103C600079FB06211720FDF775FB06212820BDE80A -:103C70000840FDF76FBB000008B5FFF74DFEFDF7EC -:103C8000B5F9FDF711FDFDF7E7FEFDF7BBFDFFF709 -:103C900007FEBDE80840FFF7D7BC0000034611F857 -:103CA000012B03F8012B002AF9D1704712101213CF -:103CB000121100000010410001105A00CC33022004 -:103CC00048260220B42602202027022053544D33D8 -:103CD00032463F3F3F3F3F3F0053544D333246371C -:103CE0005B347C355D780053544D333246375B3658 -:103CF0007C375D78000000000096000000000000A6 -:103D000000000000000000000000000000000000B3 -:103D100000000000711600085D16000899160008E2 -:103D200085160008911600087D160008691600081F -:103D300055160008A5160008000000007D170008B1 -:103D400069170008A5170008911700089D170008BB -:103D50008917000875170008611700080118000886 -:103D60000000000001000000000000000200000050 -:103D700000000000A9190008111A000840004000C6 -:103D800064380220743802200200000000000000A5 -:103D90000300000000000000551A000800000000A9 -:103DA0001000000084380220000000000100000024 -:103DB00000000000283B0220010102004865782F26 -:103DC00050726F6669434E43004375626559656C76 -:103DD0006C6F772D424C002553455249414C2500CC -:103DE000A923000811230008151900088D230008D5 -:103DF00043000000F83D000809024300020100C032 -:103E0000320904000001020201000524001001052E -:103E10002401000104240202052406000107058292 -:103E2000030800FF09040100020A00000007050161 -:103E3000024000000705810240000000120000005F -:103E4000443E00081201100102000040AE2D021095 -:103E500000020102030100000403090425424F414E -:103E6000524425004375626559656C6C6F7700306C -:103E700031323334353637383941424344454600D0 -:103E80000080000000800000008000000080000032 -:103E90000000020000000400000004000000040014 -:103EA0000000040000000400000004000000040002 -:103EB00000000000AD1B00088D1E0008391F00081F -:103EC00040004000A03B0220A03B02200100000077 -:103ED000B03B02208000000040010000050000000F -:103EE0006D61696E00000000003F0008B83B0220D1 -:103EF000B03D022001000000713600080000000003 -:103F000069646C65000000000000802A0000000069 -:103F1000AAAAAAAA00000000FFFF000000000000FB -:103F200000A00A000001000000000000AAAAAAAA3E -:103F300000000000FFFF0000000000000000000083 -:103F40001400005400000000AAAAAAAA14000054F9 -:103F5000FFFF0000000000000000000080699A01DF -:103F600000000000AAAA8AAA40555501FFFF0000E0 -:103F700000707007777000000081020000000000F0 -:103F8000AAAAAAAA00410100FFFF000000000080C9 -:103F9000080000000000000000000000AAAAAAAA71 -:103FA00000000000FFFF0000000000000000000013 -:103FB0000000000000000000AAAAAAAA0000000059 -:103FC000FFFF0000000000000000000000000000F3 -:103FD00000000000AAAAAAAA00000000FFFF00003B -:103FE00000000000000000000000000000000000D1 -:103FF000AAAAAAAA00000000FFFF0000000000001B -:1040000000000000000000000000000000000000B0 -:1040100000000000000000000000000000000000A0 -:104020000000000000000000000000000000000090 -:104030000000000000000000000000000000000080 -:10404000FF00000000000000CC3C00083F00000022 -:1040500049040000D93C00083F0000005104000062 -:10406000E73C00083F000000009600000000080048 -:1040700004000000583E000800000000000000009E -:104080000000000000000000000000000000000030 +:1002000002E000F000F8FEE772B6374880F3088895 +:10021000364880F3098836483649086040F20000C5 +:10022000CCF200004EF63471CEF200010860BFF34C +:100230004F8FBFF36F8F40F20000C0F2F0004EF618 +:100240008851CEF200010860BFF34F8FBFF36F8F6C +:100250004FF00000E1EE100A4EF63C71CEF20001C4 +:100260000860062080F31488BFF36F8F02F008FB4C +:1002700003F07EFA4FF055301F491B4A91423CBFB4 +:1002800041F8040BFAE71D49184A91423CBF41F876 +:10029000040BFAE71A491B4A1B4B9A423EBF51F81E +:1002A000040B42F8040BF8E700201849184A914261 +:1002B0003CBF41F8040BFAE702F020FB03F0B8FA68 +:1002C000144C154DAC4203DA54F8041B8847F9E787 +:1002D00000F042F8114C124DAC4203DA54F8041B02 +:1002E0008847F9E702F008BB00060220002202203E +:1002F0000000000808ED00E00000022000060220D7 +:10030000F0400008002202206C220220702202200D +:10031000183A02200002000800020008000200084B +:10032000000200082DE9F04F2DED108AC1F80CD025 +:10033000D0F80CD0BDEC108ABDE8F08F002383F319 +:1003400011882846A047002001F048FEFEE701F092 +:10035000D7FD00DFFEE7000038B500F01FFC02F01B +:100360004FFA054602F082FA0446C0B90E4B9D4290 +:1003700017D001339D4241F2883512BF0446002553 +:100380000124002002F046FA0CB100F075F800F0EC +:1003900055FD284600F0FAF800F06EF8F9E7002560 +:1003A000EFE70546EDE700BF010007B008B500F034 +:1003B000C1FBA0F120035842584108BD07B541F2E6 +:1003C0001203022101A8ADF8043000F0D1FB03B004 +:1003D0005DF804FB38B5302383F3118817480368B0 +:1003E0000BB101F0C7FE0023154A4FF47A71134890 +:1003F00001F0B6FE002383F31188124C236813B179 +:100400002368013B2360636813B16368013B636049 +:100410000D4D2B7833B963687BB9022000F080FC66 +:10042000322363602B78032B07D163682BB902203A +:1004300000F076FC4FF47A73636038BD70220220BE +:10044000D50300089023022088220220084B187050 +:1004500003280CD8DFE800F008050208022000F0AD +:100460005DBC022000F058BC024B00225A6070476D +:100470008822022090230220F8B53F4B3F4A1C46B9 +:100480001968013177D004339342F9D16268A242EE +:1004900071D33B4B9B6803F1006303F5C0339A4271 +:1004A00069D2002000F094FB0220FFF7CFFF354B0C +:1004B00000211A6C19641A6E19661A6E5A6C596406 +:1004C0005A6E59665A6E5A6942F080025A615A69E8 +:1004D00022F080025A615A691A6942F000521A6188 +:1004E0001A6922F000521A611B6972B64FF0E023BC +:1004F000C3F8084DD4E90004BFF34F8FBFF36F8FEB +:10050000214AC2F88410BFF34F8F536923F480331C +:100510005361BFF34F8FD2F8803043F6E076C3F3D8 +:10052000C905C3F34E335B0103EA060C29464CEAC6 +:1005300081770139C2F87472F9D2203B13F1200F90 +:10054000F2D1BFF34F8FBFF36F8FBFF34F8FBFF366 +:100550006F8F536923F4003353610023C2F8503284 +:10056000BFF34F8FBFF36F8F302383F3118885461E +:1005700080F308882047F8BD00800108208001082A +:10058000002202200038024000ED00E02DE9F04F8B +:1005900093B0B44B2022FF2100900AA89D6800F080 +:1005A000F7FBB14A1378A3B90121B0481170036079 +:1005B000302383F3118803680BB101F0DBFD0023C6 +:1005C000AB4A4FF47A71A94801F0CAFD002383F3C6 +:1005D0001188009B13B1A74B009A1A60A64A1378A2 +:1005E000032B03D000231370A24A53604FF0000A7C +:1005F000009CD3465646D146012000F08FFB24B123 +:100600009C4B1B68002B00F02682002000F092FA21 +:100610000390039B002BF2DB012000F07DFB039B8A +:10062000213B1F2BE8D801A252F823F0AD060008A9 +:10063000D506000869070008F9050008F905000853 +:10064000F9050008FB070008CB090008E5080008C9 +:10065000470900086F09000895090008F905000816 +:10066000A7090008F9050008190A00084D07000845 +:10067000F90500085D0A0008B90600084D070008E2 +:10068000F905000847090008F9050008F905000800 +:10069000F9050008F9050008F9050008F905000842 +:1006A000F9050008F9050008690700080220FFF7AE +:1006B0007DFE002840F0F981009B022105A8BAF1D7 +:1006C000000F08BF1C4641F21233ADF8143000F0A1 +:1006D0004FFA91E74FF47A7000F02CFA071EEBDB2B +:1006E0000220FFF763FE0028E6D0013F052F00F24D +:1006F000DE81DFE807F0030A0D101336052304211D +:1007000005A8059300F034FA17E004215548F9E7ED +:1007100004215A48F6E704215948F3E74FF01C0832 +:10072000404608F1040800F055FA0421059005A898 +:1007300000F01EFAB8F12C0FF2D101204FF00009A1 +:1007400000FA07F747EA0B0B5FFA8BFB00F06CFB34 +:1007500026B10BF00B030B2B08BF0024FFF72EFE76 +:100760004AE704214748CDE7002EA5D00BF00B0344 +:100770000B2BA1D10220FFF719FE074600289BD0C2 +:100780000120002600F024FA0220FFF75FFE1FFA86 +:1007900086F8404600F02CFA0446B0B10399404672 +:1007A0000136A1F140025142514100F031FA0028D6 +:1007B000EDD1BA46044641F21213022105A83E4685 +:1007C000ADF8143000F0D4F916E725460120FFF704 +:1007D0003DFE244B9B68AB4207D9284600F0FAF94E +:1007E000013040F067810435F3E70025224BBA461B +:1007F0003E461D701F4B5D60A8E7002E3FF45CAFC6 +:100800000BF00B030B2B7FF457AF0220FFF71EFEFC +:10081000322000F08FF9B0F10008FFF64DAF18F06C +:1008200003077FF449AF0F4A08EB05039268934230 +:100830003FF642AFB8F5807F3FF73EAF124BB84569 +:10084000019323DD4FF47A7000F074F90390039A5A +:10085000002AFFF631AF039A0137019B03F8012B01 +:10086000EDE700BF002202208C230220702202202C +:10087000D5030008902302208822022004220220AF +:10088000082202200C2202208C220220C820FFF71E +:100890008DFD074600283FF40FAF1F2D11D8C5F17D +:1008A00020020AAB25F0030084494245184428BFC2 +:1008B0004246019200F046FA019AFF217F4800F07B +:1008C00067FA4FEAA803C8F387027C4928460193D8 +:1008D00000F066FA064600283FF46DAF019B05EB79 +:1008E000830533E70220FFF761FD00283FF4E4AE03 +:1008F00000F0BAF900283FF4DFAE0027B846704B8D +:100900009B68BB4218D91F2F11D80A9B01330ED008 +:1009100027F0030312AA134453F8203C05934046E2 +:10092000042205A9043700F0E7FA8046E7E73846D5 +:1009300000F050F90590F2E7CDF81480042105A8E5 +:1009400000F016F902E70023642104A8049300F0E4 +:1009500005F900287FF4B0AE0220FFF727FD00283C +:100960003FF4AAAE049800F067F90590E6E700238B +:10097000642104A8049300F0F1F800287FF49CAEF1 +:100980000220FFF713FD00283FF496AE049800F014 +:1009900063F9EAE70220FFF709FD00283FF48CAE77 +:1009A00000F072F9E1E70220FFF700FD00283FF4B4 +:1009B00083AE05A9142000F06DF9074604210490C8 +:1009C00004A800F0D5F83946B9E7322000F0B2F8B3 +:1009D000071EFFF671AEBB077FF46EAE384A07EB19 +:1009E0000903926893423FF667AE0220FFF7DEFCF0 +:1009F00000283FF461AE27F003074F44B9453FF4A8 +:100A0000A5AE484609F1040900F0E4F80421059078 +:100A100005A800F0ADF8F1E74FF47A70FFF7C6FCD7 +:100A200000283FF449AE00F01FF9002844D00A9B8B +:100A300001330BD008220AA9002000F0B1F90028E8 +:100A40003AD02022FF210AA800F0A2F9FFF7B6FC55 +:100A50001C4801F0C9FA13B0BDE8F08F002E3FF436 +:100A60002BAE0BF00B030B2B7FF426AE002364217F +:100A700005A8059300F072F8074600287FF41CAE25 +:100A80000220FFF793FC804600283FF415AEFFF7E5 +:100A900095FC41F2883001F0A7FA059800F00AFAB7 +:100AA00046463C4600F0C0F9A6E506464EE64FF045 +:100AB000000901E6BA467EE637467CE68C22022033 +:100AC00000220220A08601002DE9F84F4FF47A732E +:100AD00006460D46002402FB03F7DFF85080DFF8DE +:100AE000509098F900305FFA84FA5A1C01D0A34262 +:100AF00010D159F824002A4631460368D3F820B0B3 +:100B00003B46D847854205D1074B012083F800A01A +:100B1000BDE8F88F0134042CE3D14FF4FA7001F0F2 +:100B200063FA0020F4E700BFDC2302201022022039 +:100B300014220220002307B5024601210DF107000F +:100B40008DF80730FFF7C0FF20B19DF8070003B014 +:100B50005DF804FB4FF0FF30F9E700000A4604217E +:100B600008B5FFF7B1FF80F00100C0B2404208BDF8 +:100B7000074B0A4630B41978064B53F8214001461A +:100B800023682046DD69044BAC4630BC604700BF9B +:100B9000DC23022014220220A086010070B50A4E38 +:100BA00000240A4D01F032FD3080286833888342EA +:100BB00008D901F025FD2B6804440133B4F5C03F8A +:100BC0002B60F2D370BD00BFDE23022098230220E9 +:100BD00001F0CABD00F1006000F5C0300068704748 +:100BE00000F10060920000F5C03001F055BD00003A +:100BF000054B1A68054B1B889B1A834202D9104487 +:100C000001F0FEBC0020704798230220DE23022062 +:100C100038B50446074D29B128682044BDE838405E +:100C200001F00EBD2868204401F0F2FC0028F3D04A +:100C300038BD00BF9823022010F0030309D1B0F59E +:100C4000846F04D200F10050A0F5712003681846AB +:100C500070470023FBE7000000F10050A0F5712071 +:100C6000D0F8200470470000064991F8243033B1D1 +:100C700000230822086A81F82430FFF7B1BF012061 +:100C8000704700BF9C230220014B1868704700BFCB +:100C9000002004E01E4B0138F0B51D680A1803233C +:100CA0001C482E0CC5F30B0435460788A7420BD110 +:100CB00044680B46013C934218461BD214F9010FBD +:100CC00048B103F8010BF6E7013B00F10800ECD155 +:100CD00091420ED20B4618462C24B6F5805F00F8E0 +:100CE000014B0AD1824202D94122981C5A70401A03 +:100CF000F0BD0846B6F5805FF9D041F201039D4290 +:100D0000F5D18242F3D95A2300F8013BEFE700BF47 +:100D1000002004E0242202207047000070470000F9 +:100D20007047000070B504464FF47A764CB1412C00 +:100D3000254628BF412506FB05F0641B01F054F948 +:100D4000F4E770BD002310B5934203D0CC5CC454CB +:100D50000133F9E710BD0000013810B510F9013F6B +:100D60003BB191F900409C4203D11AB10131013AE3 +:100D7000F4E71AB191F90020981A10BD1046FCE76B +:100D800003460246D01A12F9011B0029FAD1704716 +:100D900002440346934202D003F8011BFAE770476E +:100DA0002DE9F8431F4D14460746884695F8242040 +:100DB00052BBDFF870909CB395F824302BB92022F9 +:100DC000FF2148462F62FFF7E3FF95F824004146D4 +:100DD000C0F1080205EB8000A24228BF2246D6B22D +:100DE0009200FFF7AFFF95F82430A41B17441E4470 +:100DF0009044E4B2F6B2082E85F82460DBD1FFF708 +:100E000033FF0028D7D108E02B6A03EB820383422B +:100E1000CFD0FFF729FF0028CBD10020BDE8F88311 +:100E20000120FBE79C230220024B1A78024B1A7028 +:100E3000704700BFDC23022010220220F8B5184CB6 +:100E4000184800F02FFC2146164800F057FC246893 +:100E50004FF47A70144EE26E144DD2F80438114FEC +:100E600043F00203C2F80438FFF75CFF2046104944 +:100E700000F04CFDE26E0424D2F8043823F00203A3 +:100E8000C2F804384FF4E133336055F8040BB8422C +:100E900002D0314600F066FB013CF6D1F8BD00BF40 +:100EA000A43E0008982D0220C42302201422022010 +:100EB000AC3E00080C4B70B50C4D04461E780C4B34 +:100EC00055F826209A420DD00A4B002118221846C8 +:100ED000FFF75EFF0460014655F82600BDE870404C +:100EE00000F040BB70BD00BFDC23022014220220B2 +:100EF000982D0220C423022030B50A44084D9142A7 +:100F00000DD011F8013B5840082340F30004013B89 +:100F10002C4013F0FF0384EA5000F6D1EFE730BD18 +:100F20002083B8ED026843681143016003B118479C +:100F300070470000024A136843F0C0031360704713 +:100F400000440040024A136843F0C0031360704736 +:100F500000480040024A136843F0C0031360704722 +:100F60000078004037B5274C274D204600F0EEFAB8 +:100F700004F11400009400234FF48072234900F020 +:100F8000ABF94FF48072224904F138000094214BF0 +:100F900000F024FA204BC4E91735204C204600F01D +:100FA000D5FA04F11400009400234FF480721C4918 +:100FB00000F092F94FF480721A4904F1380000945D +:100FC000194B00F00BFA194BC4E91735184C2046A1 +:100FD00000F0BCFA04F1140000234FF480721549AC +:100FE000009400F079F9144B4FF48072134904F126 +:100FF0003800009400F0F2F9114BC4E9173503B042 +:1010000030BD00BFE023022080F9370324250220F1 +:1010100024280220350F0008004400404C24022000 +:101020002426022024290220450F00080048004001 +:10103000B824022024270220550F0008242A022069 +:1010400000780040037C30B52E4C002918BF0C46B8 +:10105000012B13D12C4B98420AD12C4B1A6C42F421 +:1010600000321A641A6E42F400321A661B6E05E0F2 +:10107000274B98422FD0274B984235D02268036ED9 +:10108000C16D03EB52038466B3FBF2F3626815048F +:1010900042BF23F0070503F0070343EA4503CB6093 +:1010A000A36843F040034B60E36843F001038B60A7 +:1010B00042F4967343F001030B604FF0FF330B6271 +:1010C000510505D512F0102217D0B2F1805F16D06D +:1010D00080F8643030BD0D4B1A6C42F480221A64E3 +:1010E0001A6E42F48022C0E7084B1A6C42F080422C +:1010F0001A641A6E42F08042B7E77F23E8E73F2385 +:10110000E6E700BFB43D0008E023022000380240BB +:101110004C240220B82402202DE9F047C66D054674 +:101120003768F469210734621AD014F0080118BF37 +:101130004FF48071E20748BF41F02001A3074FF050 +:10114000300348BF41F04001600748BF41F08001D3 +:1011500083F31188281DFFF7E5FE002383F3118830 +:10116000E2050AD5302383F311884FF48061281DEE +:10117000FFF7D8FE002383F311884FF030094FF0BA +:10118000000A14F0200838D13B0616D54FF030097C +:1011900005F1380A200610D589F31188504600F071 +:1011A00051F9002836DA0821281DFFF7BBFE27F089 +:1011B00080033360002383F31188790614D5620617 +:1011C00012D5302383F31188D5E913239A4208D12D +:1011D0002B6C33B127F040071021281DFFF7A2FE2A +:1011E0003760002383F31188E30618D5AA6E1369CC +:1011F000ABB15069BDE8F047184789F31188736AAD +:10120000284695F86410194000F0BAF98AF311885D +:10121000F469B6E7B06288F31188F469BAE7BDE80B +:10122000F0870000F8B51546826804460B46AA42CE +:1012300000D28568A1692669761AB5420BD2184694 +:101240002A46FFF77FFDA3692B44A3612846A368C4 +:101250005B1BA360F8BD0CD9AF1B18463246FFF7E5 +:1012600071FD3A46E1683044FFF76CFDE3683B44AA +:10127000EBE718462A46FFF765FDE368E5E700005F +:1012800083689342F7B50446154600D28568D4E9D1 +:101290000460361AB5420BD22A46FFF753FD636944 +:1012A0002B4463612846A3685B1BA36003B0F0BDB9 +:1012B0000DD93246AF1B0191FFF744FD01993A4623 +:1012C000E0683144FFF73EFDE3683B44E9E72A4626 +:1012D000FFF738FDE368E4E710B50A440024C36172 +:1012E000029B8460C16002610362C0E90000C0E942 +:1012F000051110BD08B5D0E90532934201D18268CD +:1013000082B98268013282605A1C426119700021E0 +:10131000D0E904329A4224BFC368436100F080FEE2 +:10132000002008BD4FF0FF30FBE7000070B5302310 +:1013300004460E4683F31188A568A5B1A368A26987 +:10134000013BA360531CA36115782269934224BF1B +:10135000E368A361E3690BB120469847002383F358 +:101360001188284607E03146204600F049FE002853 +:10137000E2DA85F3118870BD2DE9F74F04460E4679 +:1013800017469846D0F81C904FF0300A8AF311881F +:101390004FF0000B154665B12A4631462046FFF74F +:1013A00041FF034660B94146204600F029FE00286F +:1013B000F1D0002383F31188781B03B0BDE8F08FD0 +:1013C000B9F1000F03D001902046C847019B8BF371 +:1013D0001188ED1A1E448AF31188DCE7C160C361ED +:1013E000009B82600362C0E905111144C0E900005E +:1013F00001617047F8B504460D461646302383F365 +:101400001188A768A7B1A368013BA36063695A1C50 +:1014100062611D70D4E904329A4224BFE3686361BB +:10142000E3690BB120469847002080F3118807E05C +:101430003146204600F0E4FD0028E2DA87F3118807 +:10144000F8BD0000D0E9052310B59A4201D18268A9 +:101450007AB982680021013282605A1C82611C784C +:1014600003699A4224BFC368836100F0D9FD204616 +:1014700010BD4FF0FF30FBE72DE9F74F04460E4655 +:1014800017469846D0F81C904FF0300A8AF311881E +:101490004FF0000B154665B12A4631462046FFF74E +:1014A000EFFE034660B94146204600F0A9FD002842 +:1014B000F1D0002383F31188781B03B0BDE8F08FCF +:1014C000B9F1000F03D001902046C847019B8BF370 +:1014D0001188ED1A1E448AF31188DCE7026843681C +:1014E0001143016003B11847704700001430FFF743 +:1014F00043BF00004FF0FF331430FFF73DBF000043 +:101500003830FFF7B9BF00004FF0FF333830FFF736 +:10151000B3BF00001430FFF709BF00004FF0FF31E8 +:101520001430FFF703BF00003830FFF763BF00003F +:101530004FF0FF323830FFF75DBF0000012914BFC4 +:101540006FF0130000207047FFF70CBD044B0360E1 +:1015500000234360C0E9023301230374704700BFD6 +:10156000CC3D000810B53023044683F31188FFF703 +:1015700069FD02230020237480F3118810BD000050 +:1015800038B5C36904460D461BB904210844FFF76A +:10159000A5FF294604F11400FFF7ACFE002806DA87 +:1015A000201D4FF40061BDE83840FFF797BF38BDFC +:1015B000026843681143016003B118477047000097 +:1015C00013B5446BD4F8A4381A681178042915D1DE +:1015D000217C022912D11979012312898B401342EF +:1015E0000CD101A904F14C0001F07EFFD4F8A4480D +:1015F0000246019B2179206800F0D6F902B010BDA7 +:10160000143001F001BF00004FF0FF33143001F03F +:10161000FBBE00004C3001F0D3BF00004FF0FF33A1 +:101620004C3001F0CDBF0000143001F0CFBE0000FF +:101630004FF0FF31143001F0C9BE00004C3001F012 +:101640009FBF00004FF0FF324C3001F099BF000007 +:1016500000207047D0F8A4381A6810B511780446F5 +:10166000042917D1017C022914D159790123528907 +:101670008B4013420ED1143001F062FE024648B195 +:10168000D4F8A4484FF4807361792068BDE8104015 +:1016900000F078B910BD0000406BFFF7DBBF000021 +:1016A000704700007FB5124B0125042604460360F5 +:1016B0000023057400F1840243602946C0E9023327 +:1016C0000C4B0290143001934FF48073009601F09C +:1016D00013FE094B04F29442294604F14C00029493 +:1016E000CDE900634FF4807301F0DAFE04B070BD01 +:1016F000F43D000899160008C11500080B68302257 +:1017000082F311880A7903EB820210624A790D3262 +:1017100043F822008A7912B103EB82031862022394 +:10172000C0F8A4180374002080F3118870470000EB +:1017300038B5037F044613B190F85430ABB9012596 +:10174000201D0221FFF734FF04F114006FF00101A6 +:10175000257700F071FC04F14C0084F854506FF0D0 +:101760000101BDE8384000F067BC38BD10B501216B +:1017700004460430FFF71CFF0023237784F854301D +:1017800010BD000038B504460025143001F0CCFD32 +:1017900004F14C00257701F09BFE201D84F8545085 +:1017A0000121FFF705FF2046BDE83840FFF752BF93 +:1017B00090F85C3003F06003202B06D190F85D2098 +:1017C0000023212A03D81F2A06D800207047222A86 +:1017D000FBD1C0E9143303E0034A026507224265E6 +:1017E00083650120704700BF3C220220D0F8A43856 +:1017F00037B51A680446117804291AD1017C0229E8 +:1018000017D11979012312898B40134211D100F1AC +:101810004C05284601F01CFF58B101A9284601F0EB +:1018200063FED4F8A4480246019B2179206800F0A9 +:10183000BBF803B030BD000000EB8103F0B51E6AB9 +:1018400085B004460D46FEB1302383F3118804EBC6 +:101850008507301D0821FFF7ABFEFB6806F14C0041 +:101860005B691B681BB1019001F04CFE019803A954 +:1018700001F03AFE024648B1039B2946204600F09B +:1018800093F8002383F3118805B0F0BDFB685A6913 +:101890001268002AF5D01B8A013B1340F1D104F1F4 +:1018A0005C02EAE70D3138B550F82140DCB1302355 +:1018B00083F31188D4F8A4281368527903EB8203C8 +:1018C000DB689B695D6845B104216018FFF770FE15 +:1018D000294604F1140001F03DFD2046FFF7BAFE51 +:1018E000002383F3118838BD7047000001F08AB8E7 +:1018F00001232822002110B5044600F8243BFFF7FD +:1019000047FA0023C4E9013310BD000038B504468E +:10191000302383F3118800254160C0E90355C0E9F5 +:101920000555C0E9075501F07DF80223237085F3C2 +:101930001188284638BD000070B500EB81030546CC +:1019400050690E461446DA6018B110220021FFF7E4 +:101950001FFAA06918B110220021FFF719FA3146C9 +:101960002846BDE8704001F027B90000826802F007 +:10197000011282600022C0E90422C0E9062202624C +:1019800001F0A6B9F0B4012500EB810447898D4030 +:10199000E4683D43A469458123600023A26063603D +:1019A000F0BC01F0C1B90000F0B4012500EB8104E6 +:1019B00007898D40E4683D43646905812360002305 +:1019C000A2606360F0BC01F03BBA000070B5022376 +:1019D0000025044603704566056280F84C50C0E956 +:1019E0000255C0E90455C0E9065501F081F8636865 +:1019F0001B6823B129462046BDE87040184770BDDA +:101A00000378052B10B504460AD080F8683005230A +:101A1000037043681B680BB1042198470023A3603F +:101A200010BD00000178052906D190F868204368B0 +:101A300002701B6803B118477047000070B590F83A +:101A40004C30044613B1002380F84C3004F15C02A2 +:101A5000204601F05FF963689B68B3B994F85C3085 +:101A600013F0600535D00021204601F011FC002163 +:101A7000204601F003FC63681B6813B10621204671 +:101A80009847062384F84C3070BD204698470028BC +:101A9000E4D0B4F86230626D9A4288BF636594F90D +:101AA0005C30656D002B4FF0300380F20381002D18 +:101AB00000F0F280092284F84C2083F31188002181 +:101AC0002046D4E91423FFF76FFF002383F3118826 +:101AD000DAE794F85D2003F07F0343EA022340F243 +:101AE0000232934200F0C58021D8B3F5807F48D000 +:101AF0000DD8012B3FD0022B00F09380002BB2D1E8 +:101B000004F16402226502226265A365C1E7B3F5B0 +:101B1000817F00F09B80B3F5407FA4D194F85E30C4 +:101B2000012BA0D1B4F8643043F0020332E0B3F5E6 +:101B3000006F4DD017D8B3F5A06F31D0A3F5C063B7 +:101B4000012B90D86368204694F85E205E6894F874 +:101B50005F10B4F86030B047002884D04368236534 +:101B6000036863651AE0B3F5106F36D040F60242A1 +:101B700093427FF478AF5C4B2365022363650023B7 +:101B8000C3E794F85E30012B7FF46DAFB4F8643096 +:101B900023F00203A4F86430C4E91455A56578E77E +:101BA000B4F85C30B3F5A06F0ED194F85E302046E7 +:101BB00084F8663000F0F4FF63681B6813B10121FC +:101BC00020469847032323700023C4E914339CE77D +:101BD00004F1670323650123C3E72378042B10D1A5 +:101BE000302383F311882046FFF7C0FE85F3118868 +:101BF0000321636884F8675021701B680BB120468D +:101C0000984794F85E30002BDED084F867300423C8 +:101C1000237063681B68002BD6D0022120469847AA +:101C2000D2E794F8603020461D0603F00F010AD574 +:101C300001F062F8012804D002287FF414AF2B4B86 +:101C40009AE72B4B98E701F049F8F3E794F85E30F8 +:101C5000002B7FF408AF94F8603013F00F01B3D07D +:101C60001A06204602D501F027FBADE701F01AFB6A +:101C7000AAE794F85E30002B7FF4F5AE94F860305C +:101C800013F00F01A0D01B06204602D501F000FB87 +:101C90009AE701F0F3FA97E7142284F84C2083F3D3 +:101CA00011882B462A4629462046FFF76BFE85F30E +:101CB0001188E9E65DB1152284F84C2083F3118880 +:101CC00000212046D4E91423FFF75CFEFDE60B2239 +:101CD00084F84C2083F311882B462A462946204657 +:101CE000FFF762FEE3E700BF243E00081C3E000849 +:101CF000203E000838B590F84C300446002B3ED00A +:101D0000063BDAB20F2A34D80F2B32D8DFE803F0C3 +:101D100037313108223231313131313131313737D8 +:101D2000456DB0F862309D4214D2C3681B8AB5FB82 +:101D3000F3F203FB12556DB9302383F311882B4660 +:101D40002A462946FFF730FE85F311880A2384F8D6 +:101D50004C300EE0142384F84C30302383F3118888 +:101D6000002320461A461946FFF70CFE002383F392 +:101D7000118838BD836D03B198470023E7E7002140 +:101D8000204601F085FA0021204601F077FA6368C9 +:101D90001B6813B10621204698470623D7E70000A9 +:101DA00010B590F84C300446142B29D017D8062BC8 +:101DB00005D001D81BB110BD093B022BFBD8002177 +:101DC000204601F065FA0021204601F057FA6368C9 +:101DD0001B6813B1062120469847062319E0152BEE +:101DE000E9D10B2380F84C30302383F31188002392 +:101DF0001A461946FFF7D8FD002383F31188DAE766 +:101E0000C3689B695B68002BD5D1836D03B198478C +:101E1000002384F84C30CEE7002382680375036901 +:101E20001B6899689142FBD25A6803604260106057 +:101E30005860704700238268037503691B689968BE +:101E40009142FBD85A680360426010605860704746 +:101E500008B50846302383F311880B7D032B05D08A +:101E6000042B0DD02BB983F3118808BD8B69002298 +:101E70001A604FF0FF338361FFF7CEFF0023F2E7D4 +:101E8000D1E9003213605A60F3E70000FFF7C4BFE6 +:101E9000054BD96808751868026853601A600122FA +:101EA000D8600275FEF73EBA282B02200C4B30B5E5 +:101EB000DD684B1C87B004460FD02B46094A6846A4 +:101EC00000F04EF92046FFF7E3FF009B13B1684690 +:101ED00000F050F9A86907B030BDFFF7D9FFF9E766 +:101EE000282B0220511E0008044B1A68DB689068FA +:101EF0009B68984294BF002001207047282B022045 +:101F0000084B10B51C68D868226853601A6001221B +:101F1000DC602275FFF78EFF01462046BDE81040C9 +:101F2000FEF700BA282B022038B5074C0123002504 +:101F3000064907482370656001F0C2FB0223237045 +:101F400085F3118838BD00BF902D02202C3E00087B +:101F5000282B022000F044B9034A516853685B1AE9 +:101F60009842FBD8704700BF001000E08B6002234E +:101F7000086108468B8270478368A3F1840243F8A6 +:101F8000142C026943F8442C426943F8402C094A56 +:101F900043F8242CC268A3F1200043F8182C022235 +:101FA00003F80C2C002203F80B2C034A43F8102CE6 +:101FB000704700BF3D030008282B022008B5FFF73B +:101FC000DBFFBDE80840FFF761BF0000024BDB68A4 +:101FD00098610F20FFF75CBF282B0220302383F38A +:101FE0001188FFF7F3BF000008B50146302383F3E3 +:101FF00011880820FFF75AFF002383F3118808BDDA +:10200000064BDB6839B1426818605A601360436060 +:102010000420FFF74BBF4FF0FF307047282B022002 +:102020000368984206D01A680260506018469961A9 +:10203000FFF72CBF7047000038B504460D462068F6 +:10204000844200D138BD036823605C608561FFF77E +:102050001DFFF4E7036810B59C68A2420CD85C68C9 +:102060008A600B604C602160596099688A1A9A6096 +:102070004FF0FF33836010BD121B1B68ECE70000BC +:102080000A2938BF0A2170B504460D460A26601990 +:1020900001F010FB01F0FCFA041BA54203D8751CEB +:1020A00004462E46F3E70A2E04D90120BDE870400D +:1020B00001F046BB70BD0000F8B5144B0D460A2A6E +:1020C0004FF00A07D96103F11001826038BF0A227C +:1020D000416019691446016048601861A81801F050 +:1020E000DBFA01F0D5FA431B0646A34206D37C1C5B +:1020F00028192746354601F0DDFAF2E70A2F04D900 +:102100000120BDE8F84001F01BBBF8BD282B0220E0 +:10211000F8B506460D4601F0BBFA0F4A134653F8D0 +:10212000107F9F4206D12A4601463046BDE8F8405E +:10213000FFF7C2BFD169BB68441A2C1928BF2C46CF +:10214000A34202D92946FFF79BFF224631460348A6 +:10215000BDE8F840FFF77EBF282B0220382B022075 +:10216000C0E90323002310B45DF8044B4361FFF77B +:10217000CFBF000010B5194C236998420DD081687B +:10218000D0E9003213605A609A680A449A600023CA +:1021900003604FF0FF33A36110BD0268234643F88C +:1021A000102F53600022026022699A4203D1BDE8D9 +:1021B000104001F079BA936881680B44936001F094 +:1021C00067FA2269E1699268441AA242E4D911448B +:1021D000BDE81040091AFFF753BF00BF282B0220AB +:1021E0002DE9F047DFF8BC8008F110072C4ED8F835 +:1021F000105001F04DFAD8F81C40AA68031B9A420F +:102200003ED814444FF00009D5E90032C8F81C400C +:1022100013605A60C5F80090D8F81030B34201D16D +:1022200001F042FA89F31188D5E90331284698472D +:10223000302383F311886B69002BD8D001F028FA82 +:102240006A69A0EB040982464A450DD2022001F0DA +:1022500077FA0022D8F81030B34208D15146284608 +:10226000BDE8F047FFF728BF121A2244F2E712EB4D +:1022700009092946384638BF4A46FFF7EBFEB5E75D +:10228000D8F81030B34208D01444C8F81C00211A02 +:10229000A960BDE8F047FFF7F3BEBDE8F08700BFD7 +:1022A000382B0220282B022000207047FEE7000078 +:1022B000704700004FF0FF307047000002290CD03B +:1022C000032904D00129074818BF00207047032ABA +:1022D00005D8054800EBC20070470448704700204D +:1022E000704700BF083F00084C220220BC3E000897 +:1022F00070B59AB005460846144601A900F0C2F828 +:1023000001A8FEF73DFD431C0022C6B25B0010464B +:10231000C5E9003423700323023404F8013C01AB07 +:10232000D1B202348E4201D81AB070BD13F8011B2D +:10233000013204F8010C04F8021CF1E708B530235F +:1023400083F311880348FFF751FA002383F31188C0 +:1023500008BD00BF982D022090F85C3003F01F02EA +:10236000012A07D190F85D200B2A03D10023C0E990 +:10237000143315E003F06003202B08D1B0F860306F +:102380002BB990F85D20212A03D81F2A04D8FFF723 +:102390000FBA222AEBD0FAE7034A02650722426508 +:1023A00083650120704700BF4322022007B505293D +:1023B00017D8DFE801F0191603191920302383F329 +:1023C0001188104A01210190FFF7B6FA0198022105 +:1023D0000D4AFFF7B1FA0D48FFF7D4F9002383F354 +:1023E000118803B05DF804FB302383F3118807489C +:1023F000FFF79EF9F2E7302383F311880348FFF7D4 +:10240000B5F9EBE75C3E0008803E0008982D0220FD +:1024100038B50C4D0C4C2A460C4904F10800FFF766 +:1024200067FF05F1CA0204F110000949FFF760FFD8 +:1024300005F5CA7204F118000649BDE83840FFF7F7 +:1024400057BF00BF703602204C220220383E0008E1 +:10245000453E0008503E000870B5044608460D464B +:10246000FEF78EFCC6B22046013403780BB918463D +:1024700070BD32462946FEF76FFC0028F3D10120DB +:10248000F6E700002DE9F84F05460C46FEF778FC0C +:102490002C49C6B22846FFF7DFFF08B10336F6B273 +:1024A00029492846FFF7D8FF08B11036F6B2632E47 +:1024B0000DD8DFF89080DFF89090244FDFF894A0DB +:1024C000DFF894B02E7846B92670BDE8F88F29461B +:1024D0002046BDE8F84F01F04FBC252E2ED1072233 +:1024E00041462846FEF738FC70B9DBF80030073566 +:1024F0000A3444F80A3CDBF8043044F8063CBBF8E4 +:10250000083024F8023CDDE7082249462846FEF759 +:1025100023FC98B9A21C0E4B197802320909C95D37 +:1025200002F8041C13F8011B01F00F015345C95DAB +:1025300002F8031CF0D118340835C3E7013504F85C +:10254000016BBFE7283F0008503E00083B3F0008F2 +:1025500020F4F01F2CF4F01F303F0008BFF34F8F22 +:10256000024AD368DB03FCD4704700BF003C024042 +:1025700008B5074B1B7853B9FFF7F0FF054B1A69F5 +:10258000002A04DA044A5A6002F188325A6008BD0F +:10259000CE380220003C02402301674508B5054BB8 +:1025A0001B7833B9FFF7DAFF034A136943F000439E +:1025B000136108BDCE380220003C02400B28F0B564 +:1025C00016D80C4C0C4923787BB90E460B4D0C23C6 +:1025D0004FF00062013B55F8047B46F8042B13F0E2 +:1025E000FF033A44F6D10123237051F82000F0BDD7 +:1025F0000020FCE700390220D03802204C3F0008C0 +:10260000014B53F8200070474C3F00080C207047E6 +:102610000B2810B5044601D9002010BDFFF7CEFFEE +:10262000064B53F824301844C21A0BB90120F4E7C2 +:1026300012680132F0D1043BF6E700BF4C3F0008BE +:102640000B2810B5044621D8FFF788FFFFF790FF4D +:102650000F4AF323D360C300DBB243F4007343F0AB +:1026600002031361136943F480331361FFF776FFAC +:10267000FFF7A4FF074B53F8241000F0D9F82046C9 +:10268000FFF78CFFBDE81040FFF7C2BF002010BD70 +:10269000003C02404C3F0008F8B512F0010314461C +:1026A00042D18218B2F1026F57D82D4B1B6813F03C +:1026B000010352D0FFF75CFF2A4DF32340F20127BC +:1026C000EB60FFF74BFF032C15D824F00104401AF0 +:1026D00040F201176618234CB14200EB0105236953 +:1026E00024D123F0010301202361FFF757FFF8BD38 +:1026F000043C0430E7E78307E7D12B6923F44073F8 +:102700002B612B693B432B6151F8046B0660BFF3CF +:102710004F8FFFF723FF03689E42E9D02B6923F018 +:1027200001032B61FFF73AFF0020E0E723F4407339 +:10273000236123693B4323610B882B80BFF34F8FB9 +:10274000FFF70CFF2D88ADB231F8023BAB42C3D08E +:10275000236923F001032361E4E71846C7E700BFBC +:1027600000380240003C0240084908B50B7828B107 +:102770001BB9FFF7FDFE01230B7008BD002BFCD039 +:102780000870BDE80840FFF709BF00BFCE3802203F +:102790000244074BD2B210B5904200D110BD441C88 +:1027A00000B253F8200041F8040BE0B2F4E700BF98 +:1027B000502800400F4B30B51C6F240407D41C6F09 +:1027C00044F400741C671C6F44F400441C670A4CFA +:1027D00002442368D2B243F480732360074B9042D3 +:1027E00000D130BD441C51F8045B00B243F82050C6 +:1027F000E0B2F4E70038024000700040502800408A +:1028000007B5012201A90020FFF7C2FF019803B01C +:102810005DF804FB13B50446FFF7F2FFA04205D0B4 +:10282000012201A900200194FFF7C4FF02B010BDEE +:102830000144BFF34F8F064B884204D3BFF34F8F41 +:10284000BFF36F8F7047C3F85C022030F4E700BF1E +:1028500000ED00E0034B1A681AB9034AD2F8742855 +:102860001A607047043902200030024008B5FFF7B3 +:10287000F1FF024B1868C0F3407008BD0439022014 +:1028800070B5BFF34F8FBFF36F8F1A4A0021C2F8A4 +:102890005012BFF34F8FBFF36F8F536943F4003370 +:1028A0005361BFF34F8FBFF36F8FC2F88410BFF334 +:1028B0004F8FD2F8803043F6E074C3F3C900C3F3FE +:1028C0004E335B0103EA0406014646EA817501398D +:1028D000C2F86052F9D2203B13F1200FF2D1BFF3BE +:1028E0004F8F536943F480335361BFF34F8FBFF36E +:1028F0006F8F70BD00ED00E0FEE70000214B224825 +:10290000224A70B5904237D3214BC11EDA1C121AED +:1029100022F003028B4238BF00220021FEF738FA72 +:102920001C4A0023C2F88430BFF34F8FD2F88030A6 +:1029300043F6E074C3F3C900C3F34E335B0103EA0B +:102940000406014646EA81750139C2F86C52F9D293 +:10295000203B13F1200FF2D1BFF34F8FBFF36F8FE6 +:10296000BFF34F8FBFF36F8F0023C2F85032BFF316 +:102970004F8FBFF36F8F70BD53F8041B40F8041BDB +:10298000C0E700BF5C410008183A0220183A022054 +:10299000183A022000ED00E070B5D0E91B43002298 +:1029A0004FF0FF359E6804EB42135101D3F8000944 +:1029B000002805DAD3F8000940F08040C3F8000988 +:1029C000D3F8000B002805DAD3F8000B40F0804064 +:1029D000C3F8000B013263189642C3F80859C3F8D4 +:1029E000085BE0D24FF00113C4F81C3870BD000042 +:1029F000890141F02001016103699B06FCD412208A +:102A0000FFF7AABA10B5054C2046FEF771FF4FF04C +:102A1000A043E366024B236710BD00BF08390220C4 +:102A2000A03F000870B503780546012B50D12A4B12 +:102A3000C46E98421BD1294B0E2143205A6B42F0A1 +:102A400080025A635A6D42F080025A655A6D5A6983 +:102A500042F080025A615A6922F080025A615B6931 +:102A600000F034FC1E4BE3601E4BC4F8003800231A +:102A7000EE6EC4F8003EC02323604FF40413A3633A +:102A80003369002BFCDA01230C203361FFF764FA71 +:102A90003369DB07FCD41220FFF75EFA3369002BA1 +:102AA000FCDA00262846A660FFF776FF6B68C4F8BC +:102AB0001068DB68C4F81468C4F81C684BB90A4B8A +:102AC000A3614FF0FF336361A36843F00103A36088 +:102AD00070BD064BF4E700BF083902200038024001 +:102AE0004014004003002002003C30C0083C30C0CD +:102AF000F8B5C46E054600214FF000662046FFF78A +:102B000077FF296F00234FF001128F684FF0FF30DD +:102B1000C4F83438C4F81C2804EB431201339F4234 +:102B2000C2F80069C2F8006BC2F80809C2F8080BC5 +:102B3000F2D20B68EA6E6B67636210231361166949 +:102B400016F01006FBD11220FFF706FAD4F8003871 +:102B500023F4FE63C4F80038A36943F4402343F030 +:102B60001003A3610923C4F81038C4F814380A4BC1 +:102B7000EB604FF0C043C4F8103B084BC4F8003B77 +:102B8000C4F81069C4F800396B6F03F1100243F404 +:102B900080136A67A362F8BD7C3F00084080001084 +:102BA000C26E90F86610D2F8003823F4FE6343EA50 +:102BB0000113C2F8003870472DE9F84300EB810398 +:102BC000C56E0C468046DA680FFA81F9480116682E +:102BD00006F00306731E022B05EB41134FF00001B4 +:102BE00094BFB604384EC3F8101B4FF0010104F136 +:102BF000100398BF06F1805601FA03F3916998BF5C +:102C000006F5004600293AD0578A04F158013743A7 +:102C100049016F50D5F81C180B430021C5F81C382A +:102C20002B180127C3F81019A7405369611E9BB3E5 +:102C3000138A928B9B08012A88BF5343D8F87420CB +:102C4000981842EA034301F140022146C8F8740093 +:102C5000284605EB82025360FFF7CAFE08EB8900A5 +:102C6000C3681B8A43EA845348341E4364012E51CF +:102C7000D5F81C381F43C5F81C78BDE8F88305EB70 +:102C80004917D7F8001B21F40041C7F8001BD5F8FD +:102C90001C1821EA0303C0E704F13F030B4A28464E +:102CA000214605EB83035A60FFF7A2FE05EB4910AE +:102CB000D0F8003923F40043C0F80039D5F81C38A7 +:102CC00023EA0707D7E700BF0080001000040002D6 +:102CD000026F12684267FFF75FBE00005831C36E93 +:102CE00049015B5813F4004004D013F4001F0CBFDB +:102CF00002200120704700004831C36E49015B5833 +:102D000013F4004004D013F4001F0CBF0220012074 +:102D10007047000000EB8101CB68196A0B681360F3 +:102D20004B6853607047000000EB810330B5DD68ED +:102D3000AA691368D36019B9402B84BF402313607C +:102D40006B8A1468C26E1C4402EB4110013C09B24C +:102D5000B4FBF3F46343033323F0030343EAC443B4 +:102D600043F0C043C0F8103B2B6803F00303012B72 +:102D70000ED1D2F8083802EB411013F4807FD0F85E +:102D8000003B14BF43F0805343F00053C0F8003BB6 +:102D900002EB4112D2F8003B43F00443C2F8003B7F +:102DA00030BD00002DE9F041244D0446EE6E06EBE7 +:102DB0004013D3F8087B3807C3F8087B0AD5D6F848 +:102DC0001438190706D505EB840321462846DB682D +:102DD0005B689847FA071FD5D6F81438DB071BD570 +:102DE00005EB8403D968CCB98B69488A5A68B2FB71 +:102DF000F0F600FB16228AB91868DA6890420DD204 +:102E0000121AC3E90024302383F311880B482146AA +:102E1000FFF78AFF84F31188BDE8F081012303FAEC +:102E200004F26B8923EA02036B81CB68002BF3D099 +:102E300021460248BDE8F041184700BF083902208A +:102E400000EB81034A0170B5DD68C36E6C692668CA +:102E5000E66056BB1A444FF40020C2F810092A68F5 +:102E600002F00302012A0AB20ED1D3F8080803EBDC +:102E7000421410F4807FD4F8000914BF40F0805051 +:102E800040F00050C4F8000903EB4212D2F80009E8 +:102E900040F00440C2F800090122D3F8340802FAD5 +:102EA00001F10143C3F8341870BD19B9402E84BF35 +:102EB0004020206020681A442E8A8419013CB4FB0B +:102EC000F6F440EAC44040F00050C6E72DE9F8436C +:102ED0003B4D04464701EE6E06EB4013D3F80889DC +:102EE00018F0010FC3F808891AD0D6F81038DB079C +:102EF00016D505EB8003D9684B691868DA689042EB +:102F000030D2121A4FF000091A60C3F8049030232F +:102F100083F3118821462846FFF792FF89F3118831 +:102F200018F0800F1CD0D6F834380126A640334262 +:102F300016D005EB84030134ED6ED3F80CC0E4B277 +:102F40002F44DCF8142005EB0434D2F800E051687B +:102F5000714515D3D5F8343823EA0606C5F8346828 +:102F6000BDE8F883012303FA04F22B8923EA020364 +:102F70002B818B68002BD3D0214628469847CFE77A +:102F8000AEEB0103BCF81000834228BF0346D7F81C +:102F9000180980B2B3EB800FE2D89068A0F1040961 +:102FA00059F8048FC4F80080A0EB09089844B8F1E0 +:102FB000040FF5D818440B4490605360C7E700BF76 +:102FC000083902202DE9F74FA44CE56E6E69AB6914 +:102FD0001E4016F480586E6107D02046FEF7F6FCBE +:102FE00003B0BDE8F04F00F069BC002E12DAD5F84E +:102FF000003E9B0705D0D5F8003E23F00303C5F83B +:10300000003ED5F80438954823F00103C5F804388C +:10301000FEF708FD370505D59048FFF7BDFC8F4842 +:10302000FEF7EEFCB0040CD5D5F8083813F0060F07 +:10303000EB6823F470530CBF43F4105343F4A053D4 +:10304000EB6031071BD56368DB681BB9AB6923F004 +:103050000803AB612378052B0CD1D5F8003E9A0705 +:1030600005D0D5F8003E23F00303C5F8003E7B48A9 +:10307000FEF7D8FC6368DB680BB178489847F30229 +:1030800000F18980B70227D5D4F86C9000274FF063 +:10309000010ADFF8C8B109EB4712D2F8003B03F48C +:1030A0004023B3F5802F11D1D2F8003B002B0DDA6D +:1030B00062890AFA07F322EA0303638104EB8703B8 +:1030C000DB68DB6813B13946584698470137236FF0 +:1030D000FFB29B689F42DED9F00617D5E76E3A6AC9 +:1030E000C2F30A1002F00F0302F4F012B2F5802FBF +:1030F00000F09880B2F5402F08D104EB8303002242 +:1031000007F58057DB681B6A90427ED13303D5F800 +:1031100018481DD5E70302D50020FFF743FEA5039D +:1031200002D50120FFF73EFE600302D50220FFF723 +:1031300039FE210302D50320FFF734FEE20202D557 +:103140000420FFF72FFEA30202D50520FFF72AFE79 +:1031500077037FF545AFE60702D50020FFF7B6FEFF +:10316000A50702D50120FFF7B1FE600702D50220B6 +:10317000FFF7ACFE210702D50320FFF7A7FEE2060A +:1031800002D50420FFF7A2FEA3067FF529AF052094 +:10319000FFF79CFE24E7E36E00274FF00109DFF8FC +:1031A000BCA00193236F5FFA87FB9B689B453FF6AA +:1031B00069AF019B03EB4B13D3F8001901F44021D5 +:1031C000B1F5802F1FD1D3F8001900291BDAD3F8ED +:1031D000001941F09041C3F80019D3F800190029F3 +:1031E000FBDB5946E06EFFF703FC218909FA0BF37C +:1031F00021EA0303238104EB8B03DB689B6813B193 +:103200005946504698470137CCE7910701D1D7F886 +:103210000080072A02F101029CBF03F8018B4FEAEC +:10322000182871E7023307F5805704EB83025268D0 +:10323000D2F818C0DCF80820DCE9001CA1EB0C0C6B +:10324000002188420CD104EB830463689B699A686F +:1032500002449A605A6802445A6057E708390220CB +:1032600011F0030F01D1D7F800808C4501F1010165 +:1032700084BF02F8018B4FEA1828E2E7C36E03EB24 +:103280004111D1F8003B43F40013C1F8003B7047F3 +:10329000C36E03EB4111D1F8003943F40013C1F8B8 +:1032A00000397047C36E03EB4111D1F8003B23F4A2 +:1032B0000013C1F8003B7047C36E03EB4111D1F816 +:1032C000003923F40013C1F800397047090100F1F7 +:1032D0006043012203F56143C9B283F8001300F093 +:1032E0001F039A4043099B0003F1604303F56143C8 +:1032F000C3F880211A60704730B50433039C017213 +:10330000002104FB0325C160C0E90653049B03634D +:10331000059BC0E90000C0E90422C0E90842C0E9F9 +:103320000A11436330BD00000022416AC260C0E957 +:103330000411C0E90A226FF00101FEF77DBE000012 +:10334000D0E90432934201D1C2680AB9181D70470E +:1033500000207047036919600021C2680132C26011 +:10336000C269134482699342036124BF436A0361C3 +:10337000FEF756BE38B504460D46E3683BB16269B8 +:103380000020131D1268A3621344E36207E0237A4E +:1033900033B929462046FEF733FE0028EDDA38BD62 +:1033A0006FF00100FBE70000C368C269013BC36026 +:1033B0004369134482699342436124BF436A436172 +:1033C00000238362036B03B11847704770B5302345 +:1033D000044683F31188866A3EB9FFF7CBFF0546A2 +:1033E00018B186F31188284670BDA36AE26A13F803 +:1033F000015B9342A36202D32046FFF7D5FF00236F +:1034000083F31188EFE700002DE9F84F04460E46DC +:10341000174698464FF0300989F311880025AA46CF +:10342000D4F828B0BBF1000F09D141462046FFF780 +:10343000A1FF20B18BF311882846BDE8F88FD4E9AD +:103440000A12A7EB050B521A934528BF9346BBF10E +:10345000400F1BD9334601F1400251F8040B914251 +:1034600043F8040BF9D1A36A403640354033A362D8 +:10347000D4E90A239A4202D32046FFF795FF8AF344 +:103480001188BD42D8D289F31188C9E730465A461F +:10349000FDF758FCA36A5E445D445B44A362E7E722 +:1034A00010B5029C0433017203FB0421C460C0E91F +:1034B00006130023C0E90A33039B0363049BC0E99E +:1034C0000000C0E90422C0E90842436310BD0000C7 +:1034D000026A6FF00101C260426AC0E90422002260 +:1034E000C0E90A22FEF7A8BDD0E904239A4201D11F +:1034F000C26822B9184650F8043B0B60704700239D +:103500001846FAE7C3680021C2690133C360436902 +:10351000134482699342436124BF436A4361FEF7C7 +:103520007FBD000038B504460D46E3683BB1236912 +:1035300000201A1DA262E2691344E36207E0237AC5 +:1035400033B929462046FEF75BFD0028EDDA38BD89 +:103550006FF00100FBE7000003691960C268013ADF +:10356000C260C269134482699342036124BF436A03 +:10357000036100238362036B03B1184770470000A7 +:1035800070B530230D460446114683F31188866AD0 +:103590002EB9FFF7C7FF10B186F3118870BDA36A7B +:1035A0001D70A36AE26A01339342A36204D3E16906 +:1035B00020460439FFF7D0FF002080F31188EDE7A3 +:1035C0002DE9F84F04460D46904699464FF0300AD3 +:1035D0008AF311880026B346A76A4FB949462046A8 +:1035E000FFF7A0FF20B187F311883046BDE8F88FC0 +:1035F000D4E90A073A1AA8EB0607974228BF1746EC +:10360000402F1BD905F1400355F8042B9D4240F88B +:10361000042BF9D1A36A40364033A362D4E90A23CC +:103620009A4204D3E16920460439FFF795FF8BF3F2 +:1036300011884645D9D28AF31188CDE729463A4602 +:10364000FDF780FBA36A3D443E443B44A362E5E7AB +:10365000D0E904239A4217D1C3689BB1836A8BB126 +:10366000043B9B1A0ED01360C368013BC360C3695F +:103670001A4483699A42026124BF436A03610023AA +:1036800083620123184670470023FBE700F040B92E +:103690004FF08043586A70474FF0804300225863D0 +:1036A0001A610222DA6070474FF080430022DA602C +:1036B000704700004FF0804358637047FEE70000FA +:1036C00070B51B4B0025044686B058600E468562D7 +:1036D000016300F0CBF804F11003A560E562C4E9D2 +:1036E00004334FF0FF33C4E90044C4E90635FFF763 +:1036F000CFFF2B46024604F134012046C4E90823DB +:1037000080230C4A2565FEF731FC01230A4AE0605C +:1037100000920375684672680192B268CDE902238F +:10372000064BCDE90435FEF749FC06B070BD00BF7D +:10373000902D0220AC3F0008B13F0008BD360008C4 +:10374000024AD36A1843D062704700BF282B022078 +:103750004B6843608B688360CB68C3600B694361CF +:103760004B6903628B6943620B680360704700001A +:1037700008B52C4B40F2FF712B481A690A431A61B5 +:103780001A6922F4FF6222F007021A611A691A6BA1 +:103790000A431A631A6D0A431A65244A1B6D1146BF +:1037A000FFF7D6FF00F5806002F11C01FFF7D0FFA4 +:1037B00000F5806002F13801FFF7CAFF00F5806074 +:1037C00002F15401FFF7C4FF00F5806002F17001BF +:1037D000FFF7BEFF00F5806002F18C01FFF7B8FF34 +:1037E00000F5806002F1A801FFF7B2FF00F58060EC +:1037F00002F1C401FFF7ACFF00F5806002F1E001C7 +:10380000FFF7A6FF00F5806002F1FC01FFF7A0FFC3 +:1038100002F58C7100F58060FFF79AFFBDE8084063 +:1038200000F0ECB80038024000000240B83F000849 +:1038300008B500F081FAFEF777FBFFF70BF8BDE85B +:103840000840FEF7E5BD000070470000EFF3098374 +:10385000054968334A6B22F001024A6383F3098801 +:10386000002383F31188704700EF00E0302080F3DD +:10387000118862B60D4B0E4AD96821F4E061090443 +:10388000090C0A430B49DA60D3F8FC2042F080723D +:10389000C3F8FC20084AC2F8B01F116841F00101CA +:1038A00011602022DA7783F82200704700ED00E0F3 +:1038B0000003FA0555CEACC5001000E0302310B56A +:1038C00083F311880E4B5B6813F4006314D0F1EEA0 +:1038D000103AEFF309844FF08073683CE361094BC1 +:1038E000DB6B236684F30988FEF7FEFA10B1064B02 +:1038F000A36110BD054BFBE783F31188F9E700BF17 +:1039000000ED00E000EF00E04F0300085203000864 +:103910000F4B1A6C42F001021A641A6E42F0010257 +:103920001A660C4A1B6E936843F0010393604FF0D4 +:1039300080436B229A624FF0FF32DA6200229A6172 +:103940005A63DA605A6001225A611A60704700BFF8 +:1039500000380240002004E04FF0804208B51169B1 +:10396000D3680B40D9B29B076FEA0101116107D5FB +:10397000302383F31188FEF7EDFA002383F31188D7 +:1039800008BD00001B4B4FF0FF3000211A696FEAA1 +:1039900042526FEA52521A611A69C2F30A021A615C +:1039A0001A695A6958615A6959615A691A6A62F002 +:1039B00080521A621A6A02F080521A621A6A5A6AAD +:1039C00058625A6A59625A6A0B4A106840F4807009 +:1039D0001060186F00F44070B0F5007F03D04FF412 +:1039E000803018671967536823F40073536000F040 +:1039F00073B900BF0038024000700040364B4FF4EE +:103A00004041364A1A64364A11601A6842F001028F +:103A10001A601A689207FCD59A6822F003029A602D +:103A20002D4B9A6812F00C02FBD1196801F0F901D4 +:103A300019609A601A6842F480321A601A6890031A +:103A4000FCD55A6F42F001025A67234B5A6F910717 +:103A5000FCD5244A5A601A6842F080721A60204BE2 +:103A60005A685204FCD51A6842F480321A605A68C7 +:103A7000D003FCD51A6842F400321A60184A536821 +:103A80009903FCD5144B1A689201FCD5164A9A602A +:103A900040F20112C3F88C200022C3F8902040F2BB +:103AA0000733124A1360136803F00F03072BFAD190 +:103AB000094B9A6842F002029A609A6802F00C027E +:103AC000082AFAD15A6C42F480425A645A6E42F47F +:103AD00080425A665B6E7047003802400004001056 +:103AE00000700040186C400900948838003C024087 +:103AF000074A08B5536903F00103536123B1054A2E +:103B000013680BB150689847BDE80840FFF7D6BE70 +:103B1000003C014098390220074A08B5536903F078 +:103B20000203536123B1054A93680BB1D0689847EB +:103B3000BDE80840FFF7C2BE003C014098390220B2 +:103B4000074A08B5536903F00403536123B1054ADA +:103B500013690BB150699847BDE80840FFF7AEBE46 +:103B6000003C014098390220074A08B5536903F028 +:103B70000803536123B1054A93690BB1D069984793 +:103B8000BDE80840FFF79ABE003C0140983902208A +:103B9000074A08B5536903F01003536123B1054A7E +:103BA000136A0BB1506A9847BDE80840FFF786BE1C +:103BB000003C014098390220164B10B55C6904F4B2 +:103BC00078725A61A30604D5134A936A0BB1D06A7E +:103BD0009847600604D5104A136B0BB1506B984799 +:103BE000210604D50C4A936B0BB1D06B9847E205C4 +:103BF00004D5094A136C0BB1506C9847A30504D542 +:103C0000054A936C0BB1D06C9847BDE81040FFF7A4 +:103C100055BE00BF003C014098390220194B10B539 +:103C20005C6904F47C425A61620504D5164A136D3E +:103C30000BB1506D9847230504D5134A936D0BB112 +:103C4000D06D9847E00404D50F4A136E0BB1506E47 +:103C50009847A10404D50C4A936E0BB1D06E9847D7 +:103C6000620404D5084A136F0BB1506F98472304C0 +:103C700004D5054A936F0BB1D06F9847BDE810404B +:103C8000FFF71CBE003C01409839022008B50348EC +:103C9000FDF742FABDE80840FFF710BEE02302201E +:103CA00008B50348FDF738FABDE80840FFF706BE3F +:103CB0004C24022008B50348FDF72EFABDE8084061 +:103CC000FFF7FCBDB824022008B5FFF745FEBDE8AC +:103CD0000840FFF7F3BD0000062108B50846FFF7CE +:103CE000F5FA06210720FFF7F1FA06210820FFF771 +:103CF000EDFA06210920FFF7E9FA06210A20FFF76D +:103D0000E5FA06211720FFF7E1FA06212820FFF740 +:103D1000DDFA07211C20FFF7D9FA0C212620FFF736 +:103D2000D5FA0C212720FFF7D1FA0C215220BDE84B +:103D30000840FFF7CBBA000008B5FFF723FE00F0FC +:103D40000DF8FDF701FCFDF7D1FDFDF7A9FCFFF72C +:103D50007BFDBDE80840FFF799BC00000023054A41 +:103D600019460133102BC2E9001102F10802F8D103 +:103D7000704700BF98390220034611F8012B03F861 +:103D8000012B002AF9D1704753544D3332463F3F3F +:103D90003F3F3F3F0053544D333246375B347C3511 +:103DA0005D780053544D333246375B367C375D784F +:103DB000000000000096000000000000000000006D +:103DC00000000000000000000000000000000000F3 +:103DD00009150008F5140008311500081D15000824 +:103DE000291500081515000801150008ED14000834 +:103DF0003D150008000000001D1600080916000807 +:103E000045160008311600083D160008291600085E +:103E100015160008011600085116000800000000E1 +:103E2000010000000000000063300000283E000890 +:103E3000802B0220902D02204865782F50726F66EB +:103E400069434E430025424F415244252D424C00C8 +:103E50002553455249414C25000000000200000056 +:103E60000000000039180008A518000840004000B4 +:103E70004036022050360220020000000000000000 +:103E80000300000000000000E91800080000000026 +:103E90001000000060360220000000000100000059 +:103EA000000000000839022001010200AD230008D3 +:103EB000BD220008592300083D23000843000000EC +:103EC000C43E000809024300020100C03209040098 +:103ED0000001020201000524001001052401000177 +:103EE000042402020524060001070582030800FFDE +:103EF00009040100020A0000000705010240000059 +:103F0000070581024000000012000000103F000879 +:103F10001201100102000040AE2D02100002010249 +:103F2000030100000403090425424F4152442500C7 +:103F30004375626559656C6C6F770030313233348C +:103F40003536373839414243444546000080000049 +:103F500000800000008000000080000000000200DF +:103F60000000040000000400000004000000040041 +:103F70000000040000000400000004000000000035 +:103F80003D1A0008F51C0008A11D00084000400073 +:103F9000803902208039022001000000903902207F +:103FA0008000000040010000050000006D61696EA6 +:103FB0000069646C650000000000802A00000000B9 +:103FC000AAAAAAAA00000024FFFF00000000000027 +:103FD00000A00A000001000000000000AAAAAAAA8E +:103FE00000000000FFFF00000000000000000000D3 +:103FF0001400005400000000AAAAAAAA1400005449 +:10400000FFFF0000000000000000000080699A012E +:1040100000000000AAAA8AAA40565502FFFF00002D +:10402000007070077770000000810200000000003F +:10403000AAAAAAAA00410100FFFF00000000008018 +:10404000080000000000000000000000AAAAAAAAC0 +:1040500000000000FFFF0000000000000000000062 +:104060000000000000000000AAAAAAAA00000000A8 +:10407000FFFF000000000000000000000000000042 +:1040800000000000AAAAAAAA00000000FFFF00008A +:104090000000000000000000000000000000000020 +:1040A000AAAAAAAA00000000FFFF0000000000006A +:1040B000000000000000000000000000AAAAAAAA58 +:1040C00000000000FFFF00000000000000000000F2 +:1040D0000000000000000000AAAA0000000000008C +:1040E000FF000000000000000000000000000000D1 +:1040F000780000000000000000801E0000000000AA +:10410000FF000000982D0220E02302204C24022012 +:10411000B824022000000000883D00084904000087 +:10412000953D000851040000A33D000800960000E2 +:1041300000000800960000000008000004000000D5 +:10414000243F000800000000000000000000000004 +:0C41500000000000000000000000000063 :00000001FF diff --git a/Tools/bootloaders/Here4AP_bl.bin b/Tools/bootloaders/Here4AP_bl.bin index be76f1f4814ac1a003cf983e321bd0b0460b8304..de968a7c65db7efa5a2270af00ef04689e0b1f2f 100755 GIT binary patch delta 5991 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 delta 4790 zcmcIIX;f54x>fhy?!L|1h$1vwFDxzX!r}rV(l&5eS}-a^G+VndO&m?D$9b*+Tqce& zj-OqRx{FDXE#H|YDm+vqrd-Z}5j^f_OB zOI3YeeM{A?>W)_Yb__9SIg?;HYGyl73P+>-X#&!4^t3PH45GyzL_Zi}=r8;-;Yur_zM(k} zH`-achIDb`@Io@o6^2U&w*z>bn3j@qS%G}LkE6SMWVh^sEZ9jZDFdTA4C|7ZX;9(nPKwrQ8}<8IKGSxxpRV)111u3|YZAmMy! z?B?M`El&og&04eOPU>GiseO)A@YPsDj`FF>oZ(|;`E7=-CSUPm<7=NonzwV1X2Lx> zCvDCvEq6S}8dIxs1%{f5$mio3BwslRtH=svyp|dExKO(^`n4rU(+${Ujzo56xG-8s zf*DEVU1b{s#_B?nO4CIHM6+>7BfLF$vKrB35z4O9(}vSru0Pfy%?H(pmyG_pMJ9v^ z=p%;y#*Yl;o%)v09>WSwmAWX;*Zw3mM0i6&j@ zw1U>@USufje7*|P_&|rSpE~_1b8yhBdsjQgZ z7-ob}VJgi2y>|+<-+5vk#*GmlBbjZ!r`aV|>_`t&$N*f>ew_^`{~#?rmM92>}TBw3F2 z`>tNs1z6Eu0G3vtM}5fpIzoeuz}@;3A(=&OlUd?-9#U^JGd-$ec09FziZu38X@WG7 zvBcYAi&?tjQ`9cW9`oxYo-7`fjQ5eIQI{L`K_7J9Gc-G^VMAI4Jd+z?_F2 zKhsteq(;~4&tLbbvO>?ZHm(mXK44{Smpx$}tnGQAlC9VlYAd3c4GmIyn)Haer5L)w zZfcx7%O>-&1HT(Y$)VP6sQBjt5*-CcO-NN}LnQ`}Hu!ROo-oUL3^q+Mp3Kruy#I7b zey{W`KC5k^ZBXd*9!CSVRB5=t2}rwFFbJmp4WmT&d{HlGbVv&uvQMXAXr5P}$mle{ zUrJ+Wws&bFtJ49;(DB|AK&J-jG%wfJz_TiyA;=~Jt73UwZjg%wE($nPkc$Ft6mVrh zE(EyItVZ`#kYj<1WlcJJkQ?%FeHs|q666Mf(*k!c$o=Ta68Ne40^;x7u4pGG zH1H5ejZQD%z1Vum!>SnirbnNM_et-ympRZ0}Z7tk_mP`#~epkei}p;DHPMo8qs7ith{?1;Zo7Ux4Dw6d9xfavM~A zQJf@fiqF{iM6V%b(52{8veNQ1g^`H8FFtU&om@jhgn*i{UIpr;d@Tz|`BCarkMa`- z=~)z*Cal?cKK`INs{8*+j|$SGg7mCy>~-ZQK8e$avAn>O^kh0iiuuZBb9hIT2j|z4 z{MamxrT-iz_E zTZ5VSA@XN+2mYA68=va95g*GLufdr%*U^k{VW zfW%diu^KHtMDjE>kz1i>BJ|V?QqQj)hc#nyi1ZO}1bDNWT-3(ktB!B93d}sHCV$h_ zg*>rCs`S^R2Lr5j41AvZ0)KX~+R;EgAUP@JksExWeX3CDe6k4v_tTD7Q(nUnmtc*5 z1VF`1?Y?S9TG}2qWIq^^$xp^~{4yCkJ~7Pc54bS>!$nL_U38enn;86z zqiNzcCL+$O+x_=?s3R0`V=oz%wG7`S|CRL)evKq%-{%7E7!L`{xqv@$T+NxlB@Q%= zqL<1|^rt4}CNvJw`%R32?a;4xm`${oMCVrGD`au*4!DrHa*ddh=sZ1kkZE}<@m2Cp z-r|K18!r!RXNyWqw7-!#cvflLgfc2S`W4UJV2!5!`;F|O4-@m?Fb_lLt=R&1$Zs`n zV)Ji(EV|$KAw$^BJV66K6Q6&JqzC7)G?_ib__r!a{q#xW{@`uxGexq(z0Px6vxJOI z?DXp}^G{y?mUCNg7JWW&Y1EQ|FQWbHipXcvqj4SiX8K`uy*K~Wb6dBW+0GNTkoPpg z{!)z)@}B6%0kS(k34cc3&!3fX?1z_V2s#XHC^`sjIQlKL5ojN@k*N6x)GpnT8n-7Q zGJ3`lTudA@%JB^{Ji`cW)65uBSTF{tnt~u-kPb91j3Mno={G?so+2hS(bh%Q0XTz1 z_my^;rN_pvi?uPf`Bt?R>$yjppF(aOX%gim?UfUtK9*!LP_R?9Afl(`wnm;7cQ%&I=IF?jd)2n?_6`1v&1e( z^sW!a`56nVQ`-YUyQVr4Q9MsOGE8*e5~VFAx}RxBh_T$V?Oz-T8|~@#Zqiho2rreR z#ijC?Aw&ay@}OAFR9zr^$@uAa{D}U=UlcDFPMGCgn-dIi>B1E7^ILzvD`XPagW=}r zF(InI;AxXAd7N?~9Qxb*WL3#bnI!5ZXG#`~YdBAAO}5Zt0{+zdb@hL*f8AEBe#`t_ zPgJqwy;2RAoOZa1lPqB@GsjOVgz=eW{$GL9-`r!f3{b9_dMT4D>XEU#10wH#vHsY7 zPPtX6C<(vLXb^4ilaoSKYA@K7?B>E7V8ADVdG=tO8OA~{2q^`7Ae@~lOj)EF4ak+e+Fy& zt}1tG0E*Y{jJKdvPWWX@tu;c}u>>y-xQ~m{ZSNiH_e-wa<8q|Jzj6;1U%4lrBD$}N zBx!C8Gv809&P_6`@XK55k1A^!I8_f&J{$2&Mc0e5MIB3|H0`&P%VAS6ucS)9`K5@edVOEA3P}D3;cq zjNoey={e&Q-K%|}mYXZg)WqCex@eUS@S?hBRw*DTX38^atAshgBh_oVNS>X)h7o*@ zj`<7FfBDFTkX; z3syC32+E}WB)Z#&B~trZUj6=RA{qdi%9w+VdF{q&kP6LuLeZ-@}M2jU3vjUp-=$}u~18_^l_sR=SWL! zf{L+#&?dUyffr4z9^!wkmKI#qA$~6073O9j{xiT|0elYuElEWDuYi6HU^ze~z;TeT o2HXn&+-w27&f#5{jzhvA4VlZ}xm)MRc;+NtmH@iJ?0@w4zXuHQdH?_b diff --git a/Tools/bootloaders/Here4FC_bl.bin b/Tools/bootloaders/Here4FC_bl.bin index b84daeaa0e02db07f858d7362f93a7227d2f0796..38c901b2b7465b0dac3550f9696f3531c90dbf66 100755 GIT binary patch delta 6618 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 a2<-s80Prh-^{`IT)t*QWx3m8jVDvv&z1Fh; diff --git a/Tools/bootloaders/Here4FC_bl.hex b/Tools/bootloaders/Here4FC_bl.hex index 3d421f5cea170..00797101cad3e 100644 --- a/Tools/bootloaders/Here4FC_bl.hex +++ b/Tools/bootloaders/Here4FC_bl.hex @@ -1,29 +1,29 @@ :020000040800F2 -:1000000000070020F102000849330008013300080E -:10001000293300080133000821330008F3020008E7 -:10002000F3020008F3020008F30200082D43000861 +:1000000000070020F1020008D133000889330008FE +:10001000B133000889330008A9330008F30200084F +:10002000F3020008F3020008F3020008BD430008D1 :10003000F3020008F3020008F3020008F3020008CC :10004000F3020008F3020008F3020008F3020008BC -:10005000F3020008F30200084D5F0008795F000812 -:10006000A55F0008D15F0008FD5F0008F1430008AC -:100070001944000845440008714400089D440008E4 -:10008000C5440008F1440008F3020008B13200083A -:10009000D9320008C5320008ED3200082960000896 +:10005000F3020008F3020008716400089D640008C0 +:10006000C9640008F564000821650008814400089F +:10007000A9440008D5440008014500082D450008A2 +:100080005545000881450008F3020008393300088F +:10009000613300084D330008753300084D650008D2 :1000A000F3020008F3020008F3020008F30200085C :1000B000F3020008F3020008F3020008F30200084C :1000C000F3020008F3020008F3020008F30200083C -:1000D000F302000801610008F3020008F3020008BF -:1000E0008D600008F3020008F3020008F302000824 -:1000F000F3020008F3020008F30200081D4500089F -:10010000F3020008F302000829610008F302000866 +:1000D000F302000825660008F3020008F302000896 +:1000E000B1650008F3020008F3020008F3020008FB +:1000F000F3020008F3020008F3020008AD4500080F +:10010000F3020008F30200084D660008F30200083D :10011000F3020008F3020008F3020008F3020008EB -:1001200049450008714500089D450008C94500087B -:10013000F5450008F3020008F3020008F302000886 +:10012000D9450008014600082D4600085946000838 +:1001300085460008F3020008F3020008F3020008F5 :10014000F3020008F3020008F3020008F3020008BB -:100150001D4600084946000875460008F3020008DD +:10015000AD460008D946000805470008F30200082C :10016000F3020008F3020008F3020008F30200089B :10017000F3020008F3020008F3020008F30200088B -:10018000F3020008F3020008F302000815610008FA +:10018000F3020008F3020008F302000839660008D1 :10019000F3020008F3020008F3020008F30200086B :1001A000F3020008F3020008F3020008F30200085B :1001B000F3020008F3020008F3020008F30200084B @@ -52,50 +52,50 @@ :100320004F8FBFF36F8F40F20000C0F2F0004EF627 :100330008851CEF200010860BFF34F8FBFF36F8F7B :100340004FF00000E1EE100A4EF63C71CEF20001D3 -:100350000860062080F31488BFF36F8F05F0C6FA9B -:1003600005F0C8FB4FF055301F491B4A91423CBF76 +:100350000860062080F31488BFF36F8F05F018FC47 +:1003600005F054FE4FF055301F491B4A91423CBFE7 :1003700041F8040BFAE71D49184A91423CBF41F885 :10038000040BFAE71A491B4A1B4B9A423EBF51F82D :10039000040B42F8040BF8E700201849184A914270 -:1003A0003CBF41F8040BFAE705F0DEFA05F024FC47 +:1003A0003CBF41F8040BFAE705F030FC05F0B4FE61 :1003B000144C154DAC4203DA54F8041B8847F9E796 :1003C00000F042F8114C124DAC4203DA54F8041B11 -:1003D0008847F9E705F0C6BA00070020002300208F +:1003D0008847F9E705F018BC00070020002300203B :1003E0000000000808ED00E00001002000070020E8 -:1003F0005866000800230020A0230020A02300202E -:100400007C700020E0020008E4020008E40200081A +:1003F000686B0008002300203C23002040230020DD +:10040000E4700020E0020008E4020008E4020008B2 :10041000E40200082DE9F04F2DED108AC1F80CD050 :10042000D0F80CD0BDEC108ABDE8F08F002383F328 -:1004300011882846A047002004F098FEFEE704F04B -:1004400021FE00DFFEE70000F8B501F055F901F0EC -:1004500003FA01F04DFB05F0CDF9074605F03CFA33 +:1004300011882846A047002004F004FFFEE704F0DE +:1004400089FE00DFFEE70000F8B501F055F901F084 +:1004500003FA01F04DFB05F0F7FA074605F08EFBB5 :100460000546A8BB1F4B9F4232D001339F4232D07A :1004700027F0FF021C4B9A4230D12E4642F21074F4 :10048000F8B200F06FFF00F073FF08B100242646B9 -:1004900001F076FD20B10024032000F079F8264613 -:1004A00035B1124B9F4203D0002405F00DFA2646C9 -:1004B000002005F0A9F90EB100F080F801F0EAFA89 +:1004900001F0B6FD20B10024032000F079F82646D3 +:1004A00035B1124B9F4203D0002405F05FFB264676 +:1004B000002005F0D3FA0EB100F080F801F0EAFA5E :1004C00000F08AFF204600F00BF900F077F8F9E71A :1004D0002E460024D7E704460126D4E7064641F21B :1004E0008834D0E7010007B0000008B0263A09B010 :1004F00008B501F07DF9A0F120035842584108BD2C :1005000007B541F21203022101A8ADF8043001F051 :100510008DF903B05DF804FB38B5302383F31188FF -:10052000174803680BB104F0DFFE0023154A4FF4AF -:100530007A71134804F0CEFE002383F31188124C25 +:10052000174803680BB104F04BFF0023154A4FF442 +:100530007A71134804F03AFF002383F31188124CB8 :10054000236813B12368013B2360636813B16368B8 :10055000013B63600D4D2B7833B963687BB9022092 :1005600001F02EFA322363602B78032B07D16368E6 :100570002BB9022001F024FA4FF47A73636038BD7E -:10058000A023002019050008C0240020B823002063 +:100580004023002019050008602400205823002083 :10059000084B187003280CD8DFE800F008050208A3 :1005A000022001F00BBA022001F006BA024B002231 -:1005B0005A607047B8230020C0240020F8B501F02D -:1005C000DFFC30B13E4B03221A7000223D4B5A60D3 +:1005B0005A6070475823002060240020F8B501F0ED +:1005C0001FFD30B13E4B03221A7000223D4B5A6092 :1005D000F8BD3D4B3D4A1C4619680131F8D0043343 :1005E0009342F9D162683A4B9A42F1D9394B9B68F0 -:1005F00003F1006303F580239A42E9D205F038F94C -:1006000005F04AF9002001F04DF90220FFF7C0FF84 +:1005F00003F1006303F580239A42E9D205F08AFAF9 +:1006000005F09CFA002001F04DF90220FFF7C0FF31 :10061000314B00219A6C99641A6F19671A6FDA6C62 :10062000D9645A6F59675A6F1A6D19659A6F99672D :100630009B6F72B64FF0E023C3F8084DD4E9000475 @@ -107,12 +107,12 @@ :100690006F8FBFF34F8FBFF36F8F536923F4003316 :1006A00053610023C2F85032BFF34F8FBFF36F8FF7 :1006B000302383F31188854680F30888204787E735 -:1006C000B8230020C02400200000040820000408F3 +:1006C00058230020602400200000040820000408B3 :1006D000FFFF0308002300200045025800ED00E062 :1006E0002DE9F04F93B0B74B2022FF2100900AA8CC :1006F0009D6801F079F9B44A1378A3B90121B34890 :1007000011700360302383F3118803680BB104F088 -:10071000EBFD0023AE4A4FF47A71AC4804F0DAFDE9 +:1007100057FE0023AE4A4FF47A71AC4804F046FE0F :10072000002383F31188009B13B1AA4B009A1A602F :10073000A94A1378032B03D000231370A54A5360F2 :100740004FF0000A009CD3465646D146012001F0E6 @@ -155,9 +155,9 @@ :100990003FF642AFB8F5807F3FF73EAF124BB84508 :1009A000019323DD4FF47A7000F022FF0390039A45 :1009B000002AFFF631AF039A0137019B03F8012BA0 -:1009C000EDE700BF00230020BC240020A02300206E -:1009D00019050008C0240020B823002004230020AB -:1009E000082300200C230020BC230020C820FFF790 +:1009C000EDE700BF002300205C240020402300202E +:1009D000190500086024002058230020042300206B +:1009E000082300200C2300205C230020C820FFF7F0 :1009F0007FFD074600283FF40FAF1F2D11D8C5F12A :100A000020020AAB25F0030084494245184428BF60 :100A10004246019200F0D6FF019AFF217F4800F084 @@ -167,7 +167,7 @@ :100A500000F062FF00283FF4DFAE0027B846704B7D :100A60009B68BB4218D91F2F11D80A9B01330ED0A7 :100A700027F0030312AA134453F8203C0593404681 -:100A8000042205A9043701F065FA8046E7E73846F5 +:100A8000042205A9043701F0A5FA8046E7E73846B5 :100A900000F00AFF0590F2E7CDF81480042105A8C4 :100AA00000F0C4FE02E70023642104A8049300F0D0 :100AB000B3FE00287FF4B0AE0220FFF719FD002836 @@ -186,13 +186,13 @@ :100B800000283FF449AE00F0C7FE002844D00A9B7D :100B900001330BD008220AA9002000F02DFF002805 :100BA0003AD02022FF210AA800F01EFFFFF7A8FC80 -:100BB0001C4804F0E1FA13B0BDE8F08F002E3FF4BA +:100BB0001C4804F04DFB13B0BDE8F08F002E3FF44D :100BC0002BAE0BF00B030B2B7FF426AE002364211E :100BD00005A8059300F020FE074600287FF41CAE10 :100BE0000220FFF785FC804600283FF415AEFFF792 -:100BF00087FC41F2883004F0BFFA059800F05EFFF0 +:100BF00087FC41F2883004F02BFB059800F05EFF83 :100C000046463C4600F03CFFA0E506464EE64FF067 -:100C1000000901E6BA467EE637467CE6BC230020A2 +:100C1000000901E6BA467EE637467CE65C23002002 :100C200000230020A0860100094A49F269001368E8 :100C300099B21B0C00FB013344F250611360054B69 :100C4000186882B2000C01FB0200186080B2704785 @@ -201,51 +201,51 @@ :100C700010BD00BF00E8F11F2DE9F041ADF54E7D3C :100C80000D46002140F275126CAC07460EA80D917E :100C900000F0AAFE4FF4C4720021204600F0A4FE2A -:100CA0000DF1340802F058FB4FF47A72264BB0FB7A +:100CA0000DF1340802F09CFB4FF47A72264BB0FB36 :100CB000F2F0186093E80700022384E807000DF5BE :100CC000E9702382FFF7C8FF41F204331F4907A8E8 -:100CD000238405F0BFFA15230DF2E3220DF12C0C4D +:100CD000238405F047FD15230DF2E3220DF12C0CC2 :100CE00084F8323107AB1E46083203CE664542F81F :100CF000080C42F8041C3346F5D1306841461060B8 -:100D0000204633791371012200F048FF002380B29E +:100D0000204633791371012200F04EFF002380B298 :100D1000E97E0393AB7E029305F11903019301234E :100D2000009307A3D3E90023CDE90480384602F0FD -:100D3000D1FE0DF54E7DBDE8F08100BFAFF3008020 -:100D40009E6AC421818A46EEC8240020646200089D +:100D300015FF0DF54E7DBDE8F08100BFAFF30080DB +:100D40009E6AC421818A46EE6824002074670008E8 :100D50002DE9F0412C4CDAB080460D46237A5BBB7E -:100D600027A9284601F028F80746002842D19DF817 +:100D600027A9284601F042F80746002842D19DF8FD :100D70009D60C82E3ED801464FF4A662204600F082 :100D800033FE4FF4807332460DF19E01C4F8F83102 :100D90004FF4007304F109002644C4F80C334FF4F7 :100DA0004073C4F8203400F00DFE9DF89C3077723B :100DB00023720BB9EB7E237206AC8122002127A897 -:100DC00000F012FE0122214627A801F031F800238D +:100DC00000F012FE0122214627A801F055F8002369 :100DD00080B2E97E0393AB7E029305F11903019380 :100DE0002823CDE904400093404605A3D3E900231E -:100DF00002F070FE5AB0BDE8F08100BFAFF3008092 -:100E000026417272DF25D7B7905E0020F0B5254EDF +:100DF00002F0B4FE5AB0BDE8F08100BFAFF300804E +:100E000026417272DF25D7B7305E0020F0B5254E3F :100E10004FF48A75F1B0002405FB006596F8D830D0 :100E2000D822214685F8DC303AA885F8E84006AF9C :100E300000F0DAFD06F1090000F0CEFDD5F8E4304F :100E4000C2B206F109018DF8F0000DF1F100CDE913 -:100E50003A3400F0B7FD394601223AA801F014F8FF +:100E50003A3400F0B7FD394601223AA801F042F8D1 :100E6000082380B2317ACDE9047001270E48CDE91C :100E7000023706F1D80301933023009307A3D3E987 -:100E8000002302F027FEA04206DD02F065FAC5F855 +:100E8000002302F06BFEA04206DD02F0A9FAC5F8CD :100E9000E000384671B0F0BD2046FBE778F6339F9E -:100EA00093CACD8D905E0020E03400202DE9F04FF4 -:100EB000264F87B0DFF8A080254E384602F036FE78 +:100EA00093CACD8D305E0020803400202DE9F04FB4 +:100EB000264F87B0DFF8A080254E384602F07AFE34 :100EC000034600283AD00024224DADF81440A14634 :100ED0000294A246CDE90344027B8DF8142003AAB4 :100EE0009968406803C21B6843F0004302932B6873 -:100EF00004F5A664D3F810B002F030FA10EB080243 +:100EF00004F5A664D3F810B002F074FA10EB0802FF :100F0000CDF800A0284605F5A65541F1000302A939 :100F1000D8470028C8BF49F00109B4F5266FE6D1CB -:100F2000B9F1000F05D0384602F004FE86F800A0A3 +:100F2000B9F1000F05D0384602F048FE86F800A05F :100F3000C3E73378072B04D80133337007B0BDE81B -:100F4000F08F024802F0F6FDF8E700BFE034002021 -:100F5000C56300201035002040420F0070B50D46DB -:100F600014461E4602F012FD50B9022E10D1012C7B +:100F4000F08F024802F03AFEF8E700BF803400203C +:100F500065630020B034002040420F0070B50D469C +:100F600014461E4602F056FD50B9022E10D1012C37 :100F70000ED112A3D3E900230120C5E9002307E025 :100F8000282C10D005D8012C09D0052C0FD000201A :100F900070BD302CFBD10BA3D3E90023ECE70BA3EE @@ -257,21 +257,21 @@ :100FF00081FCA4F82C55B4F82C0500F063FC78B102 :10100000B4F82C0500F06EFC014648B9B4F82C0584 :1010100000F070FCB4F82C350133A4F82C35EAE765 -:1010200038BD00BF905E0020F8B50D4C02260D4F74 +:1010200038BD00BF305E0020F8B50D4C02260D4FD4 :10103000A4F5805343F8307C237E3BB965692DB11C -:10104000284601F01BF8284605F0BAF82046A4F51A -:10105000A65401F013F8012E00D1F8BD0126E7E7F0 -:10106000005A00201C6300082DE9F04F8FB00546A0 -:101070000C4600AF02F08AFC002849D1237E022BE7 -:101080001BD1E38A012B18D102F066F90646FFF75F +:10104000284601F05BF8284601F094F92046A4F503 +:10105000A65401F053F8012E00D1F8BD0126E7E7B0 +:10106000A05900202C6800082DE9F04F8FB00546EC +:101070000C4600AF02F0CEFC002849D1237E022BA3 +:101080001BD1E38A012B18D102F0AAF90646FFF71B :10109000CBFD03464FF4C87006F51676DFF8C08224 :1010A000B3FBF0F202FB103316FA83F3C8F80030FA :1010B000E37E33B9A34B00221A703C37BD46BDE82E -:1010C000F08F07F12401204600F034FE0028F4D10F +:1010C000F08F07F12401204600F044FE0028F4D1FF :1010D00007F11400FFF7C0FD97F8264007F114014F -:1010E00007F12700224605F083F80028E2D10F2CF3 +:1010E00007F12700224605F00BFB0028E2D10F2C68 :1010F00008D8944B1C70D8F80030A3F51673C8F8C4 -:101100000030DAE797F82410284602F037FCD4E7DD +:101100000030DAE797F82410284602F07BFCD4E799 :10111000E38A282B2BD010D8012B23D0052BCCD140 :10112000BFF34F8F8849894BCA6802F4E0621343CA :10113000CB60BFF34F8F00BFFDE7302BBDD1844E96 @@ -292,14 +292,14 @@ :10122000D42005EB0209C6F8D49000F04BFB8145B1 :1012300009D396F8D220D6F8D4000132001B86F8E4 :10124000D220C6F8D400FF2D0FD80024347200F04D -:1012500063FB204600F026FB00F092FE3D4B188118 +:1012500063FB204600F026FB00F0D2FE3D4B1881D8 :1012600008B9FFF7ABF9C54627E7BB6896F8D90080 :101270000AFB0362FB68D2F8E41082F8E83001F55B :101280008061C2F8E030C2F8E410FFF7BFFDFFF75D :101290000DFE96F8D920013202F0030286F8D9201B :1012A000B6E74FF48A7A20460AFB02F505F1EA0117 -:1012B000314400F015FEF86000287FF4FEAE0122F4 -:1012C000354485F8E82002F047F8D5F8E020D6ED5F +:1012B000314400F049FEF86000287FF4FEAE0122C0 +:1012C000354485F8E82002F08BF8D5F8E020D6ED1B :1012D000007A801A40F6B832B8EE677ADFED1E6AFF :1012E000192838BF1920904228BF104607EE900AEF :1012F000F8EEE77A67EEA67ADFED186AE7EE267A6F @@ -307,26 +307,26 @@ :1013100073680AFB02F4321992F8E81059B1D2F856 :10132000E410E8468B423FF427AF002182F8E81032 :10133000C2F8E010C5467368064A9B0A0133138160 -:10134000BBE600BFD934002000ED00E00400FA0540 -:10135000905E0020C8240020CDCCCC3D6666663F60 -:10136000DC340020014B1870704700BFD4240020EB +:10134000BBE600BF7934002000ED00E00400FA05A0 +:10135000305E002068240020CDCCCC3D6666663F20 +:101360007C340020014B1870704700BF74240020AB :1013700038B54FF00054144B22689A4221D1627D57 :101380000025124B12481A70C922237D09301149D9 :1013900000F8013C4FF48073C0F8DB50C0F8EF3127 :1013A0004FF40073C0F803334FF44073C0F81734A0 :1013B00000F008FBE0222946204600F015FB012042 -:1013C00038BD0020FCE700BF9AAD44C5D4240020FE -:1013D000905E00201600002037B500F0D1FD1F4CB4 +:1013C00038BD0020FCE700BF9AAD44C5742400205E +:1013D000305E00201600002037B500F011FE1F4CD3 :1013E0001F4D022301221F496B712368288120466B :1013F0005B68984704F5805301221A49D3F8C0343A :1014000004F5A6505B689847002317494FF48052B3 -:101410000193164B16480093164B02F087FA164BB1 -:10142000197811B1124802F0A9FA01F095FF0446AB +:101410000193164B16480093164B02F0CBFA164B6D +:10142000197811B1124802F0EDFA01F0D9FF044623 :10143000FFF7FAFB4FF4C873B0FBF3F202FB1303A0 -:1014400004F5167010FA83F00C4B186004F044FA9F -:1014500008B10F232B8103B030BD00BF1035002031 -:10146000C824002040420F00D82400205D0F00084F -:10147000E034002069100008D4240020DC3400206F +:1014400004F5167010FA83F00C4B186004F096FB4C +:1014500008B10F232B8103B030BD00BFB034002092 +:101460006824002040420F00782400205D0F00080F +:101470008034002069100008742400207C3400208F :101480002DE9F04F00242DED028B93B00DF12C08C7 :101490004FF0010ADFF814B2FFF708FD0A94ADF827 :1014A00034400B94C8F804409FED798B00267E4DA4 @@ -336,73 +336,73 @@ :1014E00000F082FA2B6808AA0AA95F6928460DF164 :1014F0001E03B8470FAB4F4698E8030083E803008C :101500009DF834300EA958468DF844300A9B0E934E -:10151000DDE9082302F0ECFC06F5A66605F5A65504 -:10152000B6F5266FC5D1002FC0D1604802F02EFA63 -:1015300000283FD15E4E01F00FFF3368984239D347 -:1015400001F00AFF0546FFF76FFB4FF4C8738DF8F3 +:10151000DDE9082302F030FD06F5A66605F5A655BF +:10152000B6F5266FC5D1002FC0D1604802F072FA1F +:1015300000283FD15E4E01F053FF3368984239D303 +:1015400001F04EFF0546FFF76FFB4FF4C8738DF8AF :101550002870B0FBF3F202FB130305F5167010FAC6 :1015600083F03060534E377817B901238DF8283057 :10157000C7F110050EA8FFF76FFB0EABEDB20DF132 :101580002900D919062D28BF06252A46013500F065 :1015900019FA0AABEDB24548039318230495029358 :1015A000454B0193012300933BA3D3E9002302F0B1 -:1015B00033FA347001F0D0FE404A414D1368C31A2B -:1015C000B3F57A7F2FD3106001F0C8FE02460B46B8 -:1015D000364802F0B9FA354802F0D8F918B32B7A38 +:1015B00077FA347001F014FF404A414D1368C31AA2 +:1015C000B3F57A7F2FD3106001F00CFF02460B4673 +:1015D000364802F0FDFA354802F01CFA18B32B7AAF :1015E0000EAF384E002B14BF03230223737101F09A -:1015F000B3FE4FF47A7301223946B0FBF3F030604A -:10160000304600F06FFB182380B202932E4B0193FB +:1015F000F7FE4FF47A7301223946B0FBF3F0306006 +:10160000304600F07FFB182380B202932E4B0193EB :1016100040F25513CDE903700093244820A3D3E989 -:10162000002302F0F9F92B7A93B101F095FE002620 +:10162000002302F03DFA2B7A93B101F0D9FE002697 :1016300007464FF48A7895F8D900304400F003004B :1016400008FB005393F8E82072B10136042EF2D162 -:10165000C82003F091FD2B7A002B7FF417AF13B055 +:10165000C82003F0FDFD2B7A002B7FF417AF13B0E9 :10166000BDEC028BBDE8F08FD3F8E02042B12B68CF :10167000BA1AFA2B38BFFA230533B2EB430FE4D37F :10168000FFF7C4FB0028E0D1E2E700BFAFF3008022 :101690000000000000000000401DA12026812A0B50 -:1016A000F1C6A7C1D068080F10350020E034002033 -:1016B000DC340020D9340020D8340020C06300205E -:1016C000905E0020C8240020C463002010B5074CA1 -:1016D000204601F005F904F5A65001F001F9044A8D -:1016E00004490020BDE8104004F064BD103500201E -:1016F0002064002029100008F8B50A25204C01229A -:101700004FF400712046192703F0A0F8204601226B -:101710004FF4807103F09AF84FF480766520013819 +:1016A000F1C6A7C1D068080FB034002080340020F4 +:1016B0007C340020793400207834002060630020DE +:1016C000305E0020682400206463002010B5074CC1 +:1016D000204601F049F904F5A65001F045F9044A05 +:1016E00004490020BDE8104004F0F6BFB0340020EB +:1016F000C063002029100008F8B50A25204C0122FB +:101700004FF400712046192703F0E8F82046012223 +:101710004FF4807103F0E2F84FF4807665200138D1 :1017200025D00822A2F10801B646332905D84FF08A :10173000000C66834FF000730DE0A1F13403668363 :10174000B3FBF7FC07FB1C33002B0CBF4FF0010C65 :101750004FF0000CEED1013143EA4C238A42A361E1 :10176000A4F818E0E1D10832A02AD8D0DAE7013D88 -:1017700042F2107003F000FD15F0FF05BFD1F8BD77 +:1017700042F2107003F06CFD15F0FF05BFD1F8BD0B :10178000000402582DE9F84F4FF47A7306460D46CF :10179000002402FB03F7DFF85080DFF8509098F93F :1017A00000305FFA84FA5A1C01D0A34212D159F8D2 :1017B00024002A4631460368D3F820B03B46D84778 :1017C000854207D1074B012083F800A0BDE8F88FC0 -:1017D0000124E4E7002CFBD04FF4FA7003F0CCFCBA -:1017E0000020F3E70C640020182300201C230020B5 +:1017D0000124E4E7002CFBD04FF4FA7003F038FD4D +:1017E0000020F3E7AC630020182300201C23002016 :1017F000002307B5024601210DF107008DF80730DF :10180000FFF7C0FF20B19DF8070003B05DF804FBAF :101810004FF0FF30F9E700000A46042108B5FFF752 :10182000B1FF80F00100C0B2404208BD074B0A463C :1018300030B41978064B53F82140014623682046FE -:10184000DD69044BAC4630BC604700BF0C6400202F +:10184000DD69044BAC4630BC604700BFAC63002090 :101850001C230020A086010070B5104C0025104EFE -:1018600003F05AFE20803068238883420CD800257C -:101870002088013803F04CFE23880544013BB5F570 -:10188000802F2380F4D370BD03F042FE33680544FB -:101890000133B5F5802F3360E5D3E8E70E6400200F -:1018A000C863002003F006BF00F1006000F580204F +:1018600003F0C6FE20803068238883420CD8002510 +:101870002088013803F0B8FE23880544013BB5F504 +:10188000802F2380F4D370BD03F0AEFE336805448F +:101890000133B5F5802F3360E5D3E8E7AE63002070 +:1018A0006863002003F072BF00F1006000F5802043 :1018B0000068704700F10060920000F5802003F09E -:1018C00087BE0000054B1A68054B1B889B1A834294 -:1018D00002D9104403F01CBE00207047C8630020EA -:1018E0000E640020024B1B68184403F017BE00BFB3 -:1018F000C8630020024B1B68184403F021BE00BFE0 -:10190000C86300200020704700F1FF5000F58F10E1 +:1018C000F3BE0000054B1A68054B1B889B1A834228 +:1018D00002D9104403F088BE0020704768630020DE +:1018E000AE630020024B1B68184403F083BE00BFA8 +:1018F00068630020024B1B68184403F08DBE00BFD4 +:10190000686300200020704700F1FF5000F58F1041 :10191000D0F8000870470000064991F8243033B130 :1019200000230822086A81F82430FFF7C3BF012092 -:10193000704700BFCC630020014B1868704700BFA0 +:10193000704700BF6C630020014B1868704700BF00 :101940000010005C194B01380322084470B51D6873 :10195000174BC5F30B042D0C1E88A6420BD15C68F7 :101960000A46013C824213460FD214F9016F4EB170 @@ -410,7 +410,7 @@ :101980000B4602D22C2203F8012B0424094A1688A4 :10199000AE4204D1984284BF967803F8016B013CB3 :1019A00002F10402F3D1581A70BD00BF0010005CB0 -:1019B00024230020A8620008704700007047000040 +:1019B00024230020B867000870470000704700002B :1019C00070470000002310B5934203D0CC5CC45490 :1019D0000133F9E710BD000003460246D01A12F9A0 :1019E000011B0029FAD1704702440346934202D0FA @@ -422,1229 +422,1304 @@ :101A40002430A41B17441E449044E4B2F6B2082E7E :101A500085F82460DBD1FFF75FFF0028D7D108E0CD :101A60002B6A03EB82038342CFD0FFF755FF002898 -:101A7000CBD10020BDE8F8830120FBE7CC63002038 -:101A8000024B1A78024B1A70704700BF0C6400209A +:101A7000CBD10020BDE8F8830120FBE76C63002098 +:101A8000024B1A78024B1A70704700BFAC630020FB :101A90001823002010B5074C4FF4E13306492068A5 -:101AA0000B6003F055FA60680349BDE8104003F08D -:101AB0004FBA00BF1C230020F4630020094B1822FA +:101AA0000B6003F09DFA60680349BDE8104003F045 +:101AB00097BA00BF1C23002094630020094B182212 :101AC000002110B504461846FFF78EFF064A074B63 :101AD00001461278046053F82200BDE8104003F07C -:101AE00037BA00BFF46300200C6400201C230020E0 -:101AF000F0B5A1B071B600230120002480261A465B -:101B0000194602F055FE4FF4D067214A3D2513696E -:101B100023BBD2F810310BBB036804F1006199605C -:101B20000368C3F80CD003685E6003681F60016837 -:101B30000B6843F001030B6001680B6823F01E0380 -:101B40000B6001680B68DB07FCD4037B80344168C1 -:101B500005FA03F3B4F5001F0B60D8D102F05EFE66 -:101B6000B4F5001F11D000240A4E0B4D012003F0E4 -:101B7000A1FD3388A34205D928682044013403F02D -:101B8000DFFCF6E7002003F095FD61B621B0F0BD63 -:101B9000002000520E640020C86300202DE9F047A9 -:101BA0000D46044600219046284640F27912FFF780 -:101BB0001BFF234620220021284604F1220702F0C1 -:101BC00039F9231D022220212846C02602F032F9CD -:101BD000631D03222221284602F02CF9A31D0322B3 -:101BE0002521284602F026F904F1080310222821B5 -:101BF000284602F01FF904F1100308223821284674 -:101C000002F018F904F1110308224021284602F0DD -:101C100011F904F1120308224821284602F00AF9BA -:101C200004F1140320225021284602F003F904F1A4 -:101C3000180340227021284602F0FCF804F120032A -:101C40000822B021284602F0F5F804F12103082209 -:101C5000B821284602F0EEF8314608363B46082205 -:101C60002846013702F0E6F8B6F5A07FF4D1002748 -:101C700004F1330A04F1320308223146284602F007 -:101C8000D9F894F832304FEAC7099F4209F5A47693 -:101C900015D3B8F1000F08D1314609F24F1604F5FB -:101CA00099730722284602F0C5F827463B1B94F893 -:101CB000322193420CD3F01DC008BDE8F0870AEB37 -:101CC0000703082231462846013702F0B3F8D8E767 -:101CD00007F233133146082228460836013702F04E -:101CE000A9F8E3E713B5044608460021202223465D -:101CF00001900160C0F8031002F09CF8231D0198C8 -:101D00000222202102F096F8631D0198032222216D -:101D100002F090F8A31D01980322252102F08AF811 -:101D2000019804F108031022282102F083F807200B -:101D300002B010BD0023F7B50E46047F07220091C4 -:101D40001946054601F03AFF731C01220721009352 -:101D50002846002301F032FFC4B9B31C0522082134 -:101D60002846009323460D2401F028FF3746BB1B6D -:101D7000B278934211D307342B7FA88AE408BBB909 -:101D8000844294BF0020012003B0F0BDAB8A082438 -:101D9000DB00083BDB08B370E8E7FB1C21460822A8 -:101DA0002846009300230834013701F007FFDEE7DF -:101DB000201A18BF0120E7E70023F7B50E46047F7D -:101DC000082200911946054601F0F8FE731CC4B9BB -:101DD00008220093234610241146284601F0EEFE07 -:101DE00001235F1C7278013B934211D307342B7F90 -:101DF000A88AE408BBB9844294BF0020012003B044 -:101E0000F0BDAB8A0824DB00083BDB087370E7E712 -:101E1000F3192146082228460093002301F0CEFE44 -:101E200008343B46DDE7201A18BF0120E7E7000031 -:101E3000F8B50E4605461446002181223046FFF7CC -:101E4000D3FD2B4608220021304601F0F3FF7CB978 -:101E50000F246B1C07220821304601F0EBFF012301 -:101E60005F1C6A78013B934204D3E01DC008F8BDB3 -:101E70000824F4E7EB1921460822304601F0DAFF86 -:101E800008343B46ECE70000F8B50E46054614461C -:101E90000021CE223046FFF7A7FD2B462822002145 -:101EA000304601F0C7FF7CB9302405F10803082251 -:101EB0002821304601F0BEFF2F467B1B2A7A934231 -:101EC00004D3E01DC008F8BD2824F5E707F1090395 -:101ED0002146082230460834013701F0ABFFECE719 -:101EE000F7B5047F0E46009101231022002105461C -:101EF00001F064FEC4B9B31C0922102128460093E6 -:101F00002346192401F05AFE37467288BB1B9A42B9 -:101F100011D807342B7FA88AE408BBB9844294BF48 -:101F20000020012003B0F0BDAB8A1024DB00103B81 -:101F3000DB087380E8E73B1D214608222846009312 -:101F400000230834013701F039FEDEE7201A18BFFC -:101F50000120E7E730B50A44084D91420DD011F851 -:101F6000013B5840082340F30004013B2C4013F090 -:101F7000FF0384EA5000F6D1EFE730BD2083B8EDCF -:101F8000F7B5384A6B46106851686A4603C30823A0 -:101F90003549364804F03CF90446002833D10A2577 -:101FA000334A6B46106851686A4603C308233149B7 -:101FB0002E4804F02DF90446002849D00369B3F5F2 -:101FC000E01F45D8B0F8661040F2134291423FD16D -:101FD000294A024402F15C018B4239D35C3B23491C -:101FE00000209E1AFFF7B6FF04F16401074632464F -:101FF0000020FFF7AFFFA3689F4229D1E368984212 -:1020000008BF002524E00369B3F5E01F27D8418B02 -:1020100040F21342914220D1174A024402F11001CA -:102020008B4218D3103B114900209D1AFFF792FFF5 -:1020300004F1180106462A460020FFF78BFFA3682B -:102040009E4202D1E368984201D00D25A8E7002501 -:10205000284603B0F0BD1025A2E70C25A0E70B250C -:102060009EE700BFB8620008DCFF1B000000040808 -:10207000C162000890FF1B000800FCF710B5037C4C -:10208000044613B9006804F0ABF8204610BD000008 -:102090000023BFF35B8FC360BFF35B8FBFF35B8F26 -:1020A0008360BFF35B8F7047BFF35B8F0068BFF344 -:1020B0005B8F704770B505460C30FFF7F5FF04469F -:1020C00005F108063046FFF7EFFFA04206D96D681C -:1020D0003046FFF7E9FF2544281A70BD3046FFF768 -:1020E000E3FF201AF9E7000070B505464068A0B18B -:1020F00005F10C0605F10800FFF7D6FF044630464F -:10210000FFF7D2FF844204F1FF34304694BF6D687C -:102110000025FFF7C9FF2C44201A70BD38B50C46C6 -:102120000546FFF7C7FFA04210D305F10800FFF7EF -:10213000BBFF04446868BFF35B8FB4FBF0F100FBA6 -:1021400011440120AC60BFF35B8F38BD0020FCE779 -:102150002DE9F041144607460D46FFF7C5FF8442BE -:1021600028BF0446D4B1B84658F80C6B4046FFF778 -:102170009BFF3044286040467E68FFF795FF331A86 -:102180009C4203D801206C60BDE8F081A41B6B6009 -:102190003B682044AB60E8600220F5E72046F3E7A7 -:1021A00038B50C460546FFF79FFFA04210D305F156 -:1021B0000C00FFF779FF04446868BFF35B8FB4FB42 -:1021C000F0F100FB11440120EC60BFF35B8F38BDE0 -:1021D0000020FCE72DE9FF418846694607466C462A -:1021E000FFF7B6FF002506B204EBC606B4420AD0DC -:1021F000626808EB050120680834FFF7E3FB54F838 -:10220000043C1D44F2E729463846FFF7C9FF28463B -:1022100004B0BDE8F0810000F8B505460C300F466B -:10222000FFF742FF05F1080604463046FFF73CFF82 -:10223000A042304688BF6C68FFF736FF201A38602E -:1022400020B12C683046FFF72FFF2044F8BD000076 -:1022500073B5144606460D46FFF72CFF84420190E5 -:1022600028BF0446DCB101A93046FFF7D5FF019B2A -:1022700033B93268C5E90233C5E9002401200CE016 -:102280009C42286038BF0194019884426860F5D967 -:102290003368241A0220AB60EC6002B070BD2046A7 -:1022A000FBE700002DE9FF410F4669466C46FFF74A -:1022B000CFFF00B2002604EBC005AC4209D0D4F831 -:1022C0000480B81954F8081B42464644FFF77AFBCD -:1022D000F3E7304604B0BDE8F081000038B50546AC -:1022E000FFF7E0FF044601462846FFF717FF2046A8 -:1022F00038BD00007047000010B41346026814682F -:102300000022A4465DF8044B6047000000F58050B1 -:1023100090F859047047000000F5805090F852047E -:102320007047000000F5805090F958047047000095 -:102330004E207047302383F3118800F58052D2F885 -:102340009C34D2F898041844D2F894341844D2F843 -:102350007C341844D2F88C341844D2F888341844A9 -:10236000002383F31188704700F58050C0F854149F -:10237000012070472DE9F04F0C4600F5805185B0E3 -:102380001F4691F8523405469046BDF838909BB1EF -:10239000D1F878340133C1F878342368980006D432 -:1023A000237B082B0BD9627B0AB10F2B07D9D1F8FD -:1023B0007C340133C1F87C344FF0FF3010E030231F -:1023C00083F31188EB6AD3F8C42012F4001B0AD0FF -:1023D000D1F8803400200133C1F8803480F31188B3 -:1023E00005B0BDE8F08F20684822D3F8C43000283B -:1023F000C3F3044A6B6AB4BF40F08040800412FB10 -:102400000A334FEA4A161860226852004FEA0A62FD -:1024100044BF40F000501860207B42EA00425A60FE -:10242000607B10B342F440125A60D1F8B0240132FC -:10243000C1F8B024AA1902F58352117B41F02001A2 -:102440001173207B039300F0E3FF0330039B8010A4 -:102450005FFA8BF20BF1010B82420DDA04EB820181 -:1024600003EB820249689160F2E7AA1902F58352F0 -:10247000117B60F34511E3E70122EB6A05EB4A119A -:1024800002FA0AF201F58251C3F8D020AB191831D3 -:1024900004F10C0203F58253C3E90487234653F881 -:1024A000040B934241F8040BF9D11B882E440B8096 -:1024B00041F2680346F803A006F5805609F00303CD -:1024C00096F86C2043F0100322F01F02134386F8A5 -:1024D0006C30002383F3118842463B462146284650 -:1024E000CDF8009000F05AFF012079E72DE9F04780 -:1024F00000F58056044696F85254002D40F00381B2 -:10250000037C032B40F0948028462B462F465FFA2D -:1025100080FC944510DA01EBCC0E51F83CC0BCF1C4 -:10252000000F04DBDEF804C0BCF1000F02DB013752 -:102530000130ECE70133FBE7302080F31188E06ADB -:10254000F3B9D0F8803043F00203C0F880304E2356 -:10255000E06A002F6FD1D0F8803043F00103C0F85B -:1025600080306A4B6A4A1B6803F1805303F52C5391 -:102570009B009342A36240F2B080664800F0E6FE02 -:102580004D2B42D8DFF884814FEA034EDFF8889163 -:10259000D8F800C04EEA8C0EC0F884E00CF18050F0 -:1025A00000F52C508000606103EB0C00D4F82CC0C7 -:1025B000C3F14E03C8F80000DCF8800040F03000A2 -:1025C000CCF880004FF0000CD4F81480E6465FFA97 -:1025D0008CF08242BCDD01EBC00A51F830000028CB -:1025E00010DBDAF804A0BAF1000F0BDA09EA0040B8 -:1025F0000AF07F0A40EA0A0040F0084048F82E003E -:102600000EF1010E0CF1010CE1E7836923F00103E7 -:10261000836100F0A1FE0646E36A9B69D90704D5F1 -:1026200000F09AFE831BFA2BF6D9002383F311885E -:102630002846BDE8F087B7EB530F3DD2DFF8CCE07A -:102640004FEA074CDEF800304CEA830CC0F888C033 -:1026500003F1805003EB4703002700F52C50CEF820 -:102660000030BC468000A061E06AD0F8803043F0C2 -:102670000C03C0F88030D4F818E0FBB29A427FF720 -:1026800070AF51F8330001EBC3080028D8F80430CC -:1026900001DB002B0EDB20F0604023F0604340F0B4 -:1026A000005043F000434EF83C000EEBCC000CF120 -:1026B000010C43600137E0E7836923F00103836184 -:1026C00000F04AFE0646E36A9B69DA07ADD500F0E2 -:1026D00043FE831BFA2BF6D9A7E7E26A936923F03E -:1026E0000103936100F038FE0746E36A9B69DB074C -:1026F00005D500F031FEC31BFA2BF6D995E701256D -:1027000086F8525491E7002592E700BF1C64002030 -:10271000FCB50040CC6200080000FF0713B500F5CF -:1027200080540191606CFFF7DFFC1F280AD920223A -:102730000199606CFFF74EFDA0F12003584258410B -:1027400002B010BD0020FBE708B5302383F31188E9 -:1027500000F58050406CFFF79BFC002383F3118849 -:1027600008BD0000002202608281426082607047E2 -:102770000022002310B5C0E90023002304460C30DA -:1027800020F8043CFFF7EEFF204610BD2DE9F0478E -:102790009A4688B0074688469146302383F31188CD -:1027A00007F580546846FFF7E3FF606CFFF782FC93 -:1027B0001F282ED920226946606CFFF78FFD202844 -:1027C00027D194F8523423B303AD444605AB2E46CB -:1027D000083403CE9E4244F8080C44F8041C3546E5 -:1027E000F5D130682060B388A380DDE90023C9E912 -:1027F0000023BDF80830AAF80030002383F31188C5 -:1028000053464A464146384608B0BDE8F04700F016 -:10281000B3BD002080F3118808B0BDE8F087000048 -:102820002DE9F84F0023064600F5815405468846F9 -:102830001034C0E90133274B46F8303B3746384661 -:102840002037FFF795FFA742F9D105F580544FF4E3 -:10285000805305F5A3594FF0000A266300266764EC -:1028600005F5835709F110094FF0000B1037E663A7 -:10287000C4E90D36012384F8403084F84830A7F1CC -:102880001800203747E910ABFFF76CFF47F8286CBA -:102890004F45F4D1B8F1010F84F85884A4F85A6474 -:1028A000A4F85C64A4F85E6484F86064A4F86264CC -:1028B000A4F86464A4F8666484F8686402D90648DD -:1028C00000F044FD054B284653F82830EB62BDE884 -:1028D000F88F00BF1C630008F06200080C6300085A -:1028E000044B10B5197804464A1C1A70FFF798FF7C -:1028F000204610BD196400202DE9F04300295AD06C -:102900002E4E2F48B6FBF1F481428CBF0A201120D5 -:10291000431EB4FBF0F700FB1740DDB220B1022BE1 -:102920001846F5D8002032E07B1EB3F5806F2ED21A -:10293000C5EBC5084FF47A7308F103044FEAE40EBF -:10294000C4F3C7040EF10109281B0EFB033E5FFA16 -:1029500080FC59FA80F0BEFBF0F0B0F5617F18DC26 -:1029600083B2601C5CFA80F07843B6FBF0F08142E1 -:10297000D8D1611E0F29D5D80CF1FF310729D1D844 -:102980000120138057801071547182F806C0BDE891 -:10299000F08308F1FF34E010C4F3C70400F1010E26 -:1029A0002D1B00FB03335FFA85FC5EFA85F5B3FB54 -:1029B000F5F39BB2D5E70846E9E700BF00B4C404CD -:1029C0003F420F0030B50D4B05200D4D1C786C4378 -:1029D0008C420ED159780120518099785171D97863 -:1029E0009171197911715B7903EB83035B0013809B -:1029F00030BD013803F10603E8D1F9E75C63000854 -:102A000040420F0038B540F27772C36A154CC3F8E4 -:102A1000BC200722C36AC3F8C8202268C16A930099 -:102A200043F4C023C1F8A03002F1805302F16C01DD -:102A3000C56A03F52C53EA3289009B00226041F0FD -:102A4000E061094AC361C5F8C01003F5D87103F508 -:102A50006A7341629342836202D9044800F076FCB3 -:102A600038BD00BF1C640020FCB50040CC620008EB -:102A70002DE9F04F00F580551F4689B0044695F8C2 -:102A8000583489469046022B04D90026304609B0B6 -:102A9000BDE8F08FA84A52F8231009B942F8230084 -:102AA000A648C4F80C9001782774C9B9302383F381 -:102AB0001188A34BD3F8EC2042F48072C3F8EC20C9 -:102AC000D3F8942042F48072C3F89420D3F8942071 -:102AD00022F48072C3F894200123037081F31188DB -:102AE00095F851347BB9302383F31188954A95F8D2 -:102AF0005834D35C0BB3012B28D0012385F8513413 -:102B0000002383F31188302383F31188E26A9369E9 -:102B100023F01003936100F01FFC8246E36A9E6974 -:102B200016F0080619D000F017FCA0EB0A03FA2BE8 -:102B3000F4D9002686F31188A8E70321132002F0B8 -:102B40003BF80321152002F037F8D6E703211420C3 -:102B500002F032F803211620F5E79A6942F00102EB -:102B60009A6100F0F9FB8246E36A9A69D00706D4BD -:102B700000F0F2FBA0EB0A03FA2BF5D9D9E79A692A -:102B80004FF0000A42F002029A61E36AC3F854A0CF -:102B90008AF3118804F5825B686CFFF779FA0BF110 -:102BA000100B202200216846FEF71EFF02A8FFF747 -:102BB000D9FD6A460BEB06030DF1180ECDF818A0EF -:102BC00094460833BCE80300F44543F8080C43F886 -:102BD000041C6246F4D1DCF8000020361860B6F51B -:102BE000806F9CF804201A71DBD1002304F5A252F7 -:102BF000494620461A3285F8503485F85334FFF799 -:102C00007BFE064690B9E26A936923F00103936163 -:102C100000F0A2FB0546E36A9B69D9077FF535AF53 -:102C200000F09AFB431BFA2BF5D92EE795F85E349A -:102C3000C5F86C94591E95F85F34E26A013B1B029B -:102C400043EA416395F8601401390B43B5F85C140D -:102C5000013943EA0143D361B8F1000F36D004F5DE -:102C6000A352414620460232FFF7ACFE90B9E26A19 -:102C7000936923F00103936100F06EFB0546E36A5C -:102C80009B69DA077FF501AF00F066FB431BFA2B67 -:102C9000F5D9FAE695F86724C5F87084511E95F8C1 -:102CA0006824E36A013A120142EA012295F86614A7 -:102CB00001390A43B5F86414013942EA014242F489 -:102CC0000002DA604FF42062E36A9A64E36A4FF02C -:102CD00000082046C3F8BC80FFF794FE85F85984AD -:102CE0006FF04042E36A1A65174AE36A5A654FF08B -:102CF0000222E36A9A654FF0FF32E36AC3F8E020EC -:102D00000322E36A9742DA653FF4C0AEE26A936950 -:102D100023F00103936100F01FFB0746E36A9B6900 -:102D2000DB0705D500F018FBC31BFA2BF6D9ACE680 -:102D3000012385F85234A9E61064002018640020AD -:102D40000044025804630008550200022DE9F04FC8 -:102D5000054689B090469946002741F2680A00F579 -:102D60008056EB6AD3F8D830FB40D80751D505EB35 -:102D700047124FEA471B52441379190749D4D6F832 -:102D800084340133C6F8843405F5A553C3E90089BA -:102D900013799A0605EB0B0248BFD6F8B4345244B7 -:102DA00044BF0133C6F8B434137943F008031371F8 -:102DB000DB0723D596F8533403B305F582546846F0 -:102DC000FFF7D6FC03AB18345C4404F1080C206810 -:102DD000083454F8041C1A46644503C21346F6D15D -:102DE0002068694610602846A2889A800123ADF8C1 -:102DF00008302B68CDE90089DB6B9847D6F8A834FA -:102E0000D6F854040133C6F8A83410B103681B691E -:102E100098470137202FA4D109B0BDE8F08F0000FA -:102E20002DE9F04F0F468DB0044600F097FA824628 -:102E30008946002F5BD1E36AD3F8A02012F4FE0F7D -:102E400003D100200DB0BDE8F08FD3F8A42092018B -:102E500041BF04F58051D1F898240132C1F898247B -:102E6000D3F8A4205606ECD0D3F8A450E669C5F3F5 -:102E700005254823E8464FF0000B03FB0566404656 -:102E8000FFF770FC326851004ABF22F06043C2F382 -:102E90008A4343F00043920048BF43F080430093CD -:102EA000736813F400131BBF012304F580528DF8DF -:102EB0000D308DF80D301EBFD2F8B8340133C2F892 -:102EC000B834F38803F00F038DF80C309DF80C0034 -:102ED00000F09EFA5FFA8BF3984225D9F2180CA9FC -:102EE0000BF1010B127A0B4403F82C2CEEE7012FA7 -:102EF000A7D1E36AD3F8B02012F4FE0FA1D0D3F823 -:102F0000B420950141BF04F58051D1F898240132D5 -:102F1000C1F89824D3F8B420500692D0D3F8B45016 -:102F2000266AC5F30525A4E7EFB9E36AC3F8A850FC -:102F300004A807ADFFF71CFC98E80F0007C52B801D -:102F40000023204604A9ADF81830236804F5805406 -:102F5000DB6BCDE904A9984758B1D4F8903401331C -:102F6000C4F890346EE7012FE2D1E36AC3F8B85099 -:102F7000DEE7D4F8943401200133C4F8943461E7D7 -:102F80002DE9F04105460F4600F5805401263946EB -:102F90002846FFF745FF10B184F85364F7E7D4F8EB -:102FA000A834D4F854040133C4F8A83420B1036819 -:102FB000BDE8F0411B691847BDE8F081C36AF0B570 -:102FC0001A6C12F47F0F2BD01B6C00F5805441F269 -:102FD00068054FF0010CC4F8AC340023471900EB2E -:102FE00043125E012A44117911F0020F15D04907EE -:102FF00013D4B959C66A0CFA01F1D6F8CCE011EA3B -:103000000E0F0AD0C6F8D410117941F004011171E5 -:10301000D4F88C240132C4F88C240133202BDED167 -:10302000F0BD00002B4B70B51E561B5C012B30D839 -:10303000294D2A4A55F8233052F8264013B349B394 -:10304000236D9A0510D54FF40073236500F086F9BF -:1030500050EA01020B4602D0013861F1000302463A -:1030600055F82600FFF772FE236D9B012CD54FF01B -:10307000007255F82630226503F58053012283F84B -:10308000592421E001232365102323654FF4805345 -:10309000236570BD236DDA0702D4236D5B0706D567 -:1030A0000523002155F826002365FFF769FF236DEE -:1030B000D80602D4236D590606D55023012155F8B0 -:1030C00026002365FFF75CFF55F82600BDE8704039 -:1030D000FFF774BF08630008106400200C63000849 -:1030E00008B5302383F31188FFF768FF002383F3CB -:1030F000118808BDC36AD3F8C00010F07C5005D019 -:10310000D3F8C40080F40010C0F3405070470000B2 -:1031100008B5302383F3118800F58050406CFEF72A -:10312000C9FF002383F3118843090CBF012000204D -:1031300008BD000000F5805393F8592462B1C16ABC -:103140008A6922F001028A61D3F89C240132C3F813 -:103150009C24002283F85924704700002DE9F7438E -:10316000302181F3118800F58251002541F2680E6B -:103170004FF00108103100F5805C00EB45147444F9 -:10318000267977071CD4F6061AD58E69D0F82C90CC -:1031900008FA06F6D9F8CC703E4211D04F68019774 -:1031A0000F689742019F9F410AD2C9F8D4602679DF -:1031B00046F004062671DCF888440134CCF88844D3 -:1031C00001352031202DD8D1002383F3118803B09D -:1031D000BDE8F083F8B51E4600230F460546137080 -:1031E0001446FFF795FF80F0010038701EB12846A5 -:1031F000FFF780FF2070F8BD2DE9F04F85B09946AC -:103200000D468046164691F800B0DDE90EA3029304 -:103210001378019300F0A2F82B7804460F4613B9F7 -:103220003378002B41D022463B464046FFF796FFBD -:10323000FFF756FFFFF77EFF4B4632462946FFF762 -:10324000C9FF2B7833B1BBF1000F03D0012005B0CB -:10325000BDE8F08F337813B1019B002BF6D108F550 -:10326000805303935445029B77EB03031DD2039BCA -:10327000D3F85404C8B10368AAEB04011B6898474B -:103280004B46324629464046FFF7A4FF2B7813B140 -:10329000BBF1000FDAD1337813B1019B002BD5D1EC -:1032A00000F05CF804460F46DCE70020CFE70000A2 -:1032B000002108B50846FFF7B5FEBDE8084001F05B -:1032C0006DB8000008B501210020FFF7ABFEBDE896 -:1032D000084001F063B8000008B500210120FFF7A5 -:1032E000A1FEBDE8084001F059B80000012108B571 -:1032F0000846FFF797FEBDE8084001F04FB8000010 -:1033000000B59BB0EFF3098168226846FEF75AFBCF -:10331000EFF30583014B9B6BFEE700BF00ED00E080 -:1033200008B5FFF7EDFF000000B59BB0EFF3098192 -:1033300068226846FEF746FBEFF30583014B5B6BA3 -:10334000FEE700BF00ED00E0FEE700000FB408B5A7 -:10335000029801F0C1FEFEE702F0EEB902F0D0B92A -:1033600013B56C46031D84E8060094E8030083E867 -:103370000500012002B010BD73B58568019155B1FB -:103380001B885B0707D4D0E900369B6B9847019AEE -:10339000C1B23046A847012002B070BDF0B58668C2 -:1033A00089B005460C465EB1BDF838305B070AD4DB -:1033B000D0E900379B6B98472246C1B23846B047E8 -:1033C000012009B0F0BD0022002301F10806CDE97B -:1033D000002300230A46ADF8083003AB106808321A -:1033E00052F8041C1C46B24203C42346F6D11068AE -:1033F00020609288A280FFF7B1FF0423ADF8083067 -:103400002B68CDE90001DB6B694628469847D7E772 -:10341000082817D909280CD00A280CD00B280CD062 -:103420000C280CD00D280CD00E2814BF40203020C2 -:1034300070470C20704710207047142070471820E8 -:1034400070472020704700002DE9F041456A15B90A -:103450004162BDE8F0814B68AC4623F06047C3F39E -:103460008A464FEAD37EC3F3807816EA230638BF34 -:103470003E462B465A68BEEBD27F22F060440AD00B -:10348000002A18DAA40CB44217D19D420FD10D6066 -:10349000DEE71346EEE7A74207D102F08044C2F30D -:1034A000807242450BD054B1EFE708D2EDE7CCF87B -:1034B00000100B60CDE7B44201D0B442E5D81A68E1 -:1034C0009C46002AE5D11960C3E700002DE9F047CA -:1034D000089D01F0070400EBD1004FF47F494FEA4B -:1034E000D508224405F00705944201D1BDE8F087D4 -:1034F00004F0070705F0070A111B08EBD50E574526 -:103500003E4613F80EC038BF5646C6F108068E4236 -:1035100028BF0E46E108415C34443544B94029FADD -:1035200006F721FA0AF1FFB28CEA010147FA0AF71D -:1035300039408CEA010C03F80EC0D5E780EA01207F -:10354000082341F2210201B2013B4000002980B270 -:10355000B8BF504013F0FF03F5D1704738B50C46A3 -:103560008D18A54200D138BD14F8011BFFF7E6FF06 -:10357000F7E7000042684AB11368818943604389D4 -:1035800001339BB29942438138BF83811046704713 -:1035900070B588B0044620220D4668460021FEF72B -:1035A00023FA20460495FFF7E5FF024660B16B461B -:1035B000054608AE1C46083503CCB44245F8080C55 -:1035C00045F8041C2346F5D1104608B070BD000034 -:1035D000082817D909280CD00A280CD00B280CD0A1 -:1035E0000C280CD00D280CD00E2814BF4020302001 -:1035F00070470C2070471020704714207047182027 -:103600007047202070470000082817D90C280CD9D3 -:1036100010280CD914280CD918280CD920280CD91A -:1036200030288CBF0F200E207047092070470A20D9 -:1036300070470B2070470C2070470D20704700002A -:103640002DE9F843078C0446072F1ED900254FF6B5 -:10365000FF73D0E90298C5F12006A5F1200029FAF0 -:1036600005F1083508FA06F628FA00F0314301435F -:103670001846C9B2FFF762FF402D0346EBD13A4628 -:10368000E169BDE8F843FFF769BF4FF6FF70BDE899 -:10369000F883000010B54B6823B9CA8A63F30902A6 -:1036A000CA8210BD04691A681C600361C38A013BA9 -:1036B000C3824A60EFE700002DE9F84F1D46CB8A30 -:1036C0000F468146C3F30901924605290B4630D0C7 -:1036D0000020AAB207F11A049EB21FFA80F8042E45 -:1036E0000FD8904503F1010306D30A44FB8A62F325 -:1036F00009030120FB821AE01AF800600130E65449 -:10370000EAE79045F1D2A1F1050B1C237C68BBFBD5 -:10371000F3F203FB12BB1FFA8BF6002C45D148468F -:10372000FFF728FF044638B978606FF00200BDE863 -:10373000F88F4FF00008E6E7002606607860ADB22B -:103740004FF0000B454510D90AEB0803221D13F872 -:10375000011B08F101089155B1B21FFA88F81B2925 -:103760002BD0454506F10106F1D8FB8AC3F30902C7 -:10377000154465F30903BCE701321C4692B2236885 -:10378000002BF9D16B1F0B441C21B3FBF1F3013368 -:103790009BB29A42D3D2BBF1000FD0D14846FFF77B -:1037A000E9FE20B9C4F800B0BFE70122E7E7C0F89E -:1037B00000B05E4620600446C1E74545D5D948467D -:1037C000FFF7D8FE08B92060AFE7C0F800B00026C8 -:1037D00020600446B6E700002DE9F04F1C4607467E -:1037E00088462DED028B83B05B690192002B00F0BF -:1037F0009A80238C2BB1E269002A00F09480072B79 -:1038000035D807F10C00FFF7B5FE054638B96FF063 -:103810000205284603B0BDEC028BBDE8F08F1422F0 -:103820000021FEF7E1F8228CE16905F10800FEF7BE -:10383000C9F8208C48F00041013080B2FFF7E4FE67 -:10384000FFF7C6FE013880B2208401302874384664 -:103850006369228C1B782A4403F01F0363F03F0343 -:10386000137269602946FFF7EFFD0125D1E74FF09C -:10387000000900F10C034FF0800A4E464D4608EE59 -:10388000103A18EE100AFFF775FE83460028BED0E6 -:1038900014220021FEF7A8F8002E3AD1019B022243 -:1038A000ABF808300BF1080E1FFA82FC218C0CF1EA -:1038B0000100BCF1060F80B201D88E422BD3FFF776 -:1038C000A3FE8E4208BF4FF0400AFFF781FE6269F7 -:1038D0000138013512781BFA80F1013002F01F0225 -:1038E0002DB242EA491289F001094AEA020A48F077 -:1038F000004281F808A059468BF810003846CBF8F2 -:1039000004204FF0000AFFF79FFD238CB342B8D18B -:103910007FE70022C6E7E169895D01360EF80210F3 -:10392000B6B20132C0E76FF0010572E7F8B515468F -:103930000E463022002104461F46FEF755F8069B2E -:10394000B5F5001FA760636004F11000079B34BF4A -:103950006A094FF6FF72E661A362002397B29A42AA -:1039600006D800230360A782E3822383E360F8BDC7 -:103970000660013330462036F1E7000003781BB9BA -:103980004BB2002BC8BF0170704700000078704731 -:10399000F8B50C46C969074611B9238C002B37D1FD -:1039A000257E1F2D34D8387828BB228C072A2CD8A6 -:1039B000268A36F003032BD14FF6FF70FFF7CEFDBA -:1039C00020F0010031024FF6FF72400441EA056128 -:1039D000400C41EA4025234629463846FFF7FCFEC5 -:1039E000002807DD626913780133DBB21F2B88BF23 -:1039F00000231370F8BD218A2D0645EA01250543F1 -:103A00002046FFF71DFE0246E5E76FF00300F1E7F1 -:103A10006FF00100EEE7000070B58AB0044616466C -:103A20000021282268461D46FDF7DEFFBDF838302C -:103A300069462046ADF810300F9B05939DF8403045 -:103A40008DF81830119B0793BDF84830CDE9026519 -:103A5000ADF82030FFF79CFF0AB070BD2DE9F041B2 -:103A6000D36905460C4616460BB9138C5BBB377EF3 -:103A70001F2F28D895F80080B8F1000F26D03046C7 -:103A8000FFF7DEFD337821020246284641EAC331C2 -:103A9000338A41EA080141EA076141EA03413346BA -:103AA00041F08001FFF798FE00280ADD3378012BF2 -:103AB00007D1726913780133DBB21F2B88BF002353 -:103AC0001370BDE8F0816FF00100FAE76FF00300BA -:103AD000F7E70000F0B58BB004460D46174600210D -:103AE000282268461E46FDF77FFF9DF84C30294688 -:103AF00020465A1E534253416A468DF800309DF8C5 -:103B00004030ADF81030119B05939DF848308DF88A -:103B10001830149B0793BDF85430CDE90276ADF808 -:103B20002030FFF79BFF0BB0F0BD0000406A00B1F2 -:103B300004307047436A1A68426202691A6003617E -:103B4000C38A013BC38270472DE9F041D0F8208041 -:103B500014461D46184E4146002709B9BDE8F081BC -:103B6000D1E90223A21A65EB0303964277EB030324 -:103B70001ED2036A8B420DD1FFF78CFD036A1B68CE -:103B8000036203690B60C38A0161013B016AC3825E -:103B90008846E2E7FFF77EFD0B68C8F8003003694E -:103BA0000B60C38A0161013BC382D8F80010D4E7DF -:103BB00088460968D1E700BF80841E002DE9F04FD8 -:103BC0008BB00D4614469B46DDF850908046002889 -:103BD00000F01881B9F1000F00F01481531E3F2B43 -:103BE00000F21081012A03D1BBF1000F40F00A81DD -:103BF0000023CDE90833B8F81430B5EBC30F4FEA12 -:103C0000C30703D300200BB0BDE8F08F2B199F42F0 -:103C1000D8F80C3036BF7F1B2746FFB21BB9D8F847 -:103C20001030002B7AD0272D4DD8C5F1280600235F -:103C30002946B742009308ABD8F808002CBFF6B26B -:103C40003E46A7EB060A354432465FFA8AFAFFF78A -:103C50003DFCB8F81430282103F10053053BDB008C -:103C60000493D8F80C300393039B13B1BAF1000FFF -:103C70002CD1D8F8100040B1BAF1000F05D008AB34 -:103C80005246691A0096FFF721FC38B2002FB9D0CE -:103C900066070AD00AAB624203EBD40102F00702C6 -:103CA00011F8083C134101F8083C082C3DD9102CB0 -:103CB00040F2B580202C40F2B780BBF1000F00F03D -:103CC0009C80082335E0BA460026C2E7049BE02B1F -:103CD00028BFE02306930B44AB42059315D95A1B2A -:103CE0000398691A0096924508AB00F1040034BFAE -:103CF0005246D2B20792FFF7E9FB079A1644AAEBA5 -:103D0000020A1544F6B25FFA8AFA049B069A0599EC -:103D10009B1A0493039B1B680393A5E700933A4601 -:103D200008AB2946D8F80800ADE7BBF1000F13D067 -:103D30000123B4EBC30F6BD0082C12D89DF82030B0 -:103D4000621E23FA02F2D50706D54FF0FF3202FABF -:103D500004F423438DF820309DF8203089F800309A -:103D600051E7102C12D8BDF82030621E23FA02F25F -:103D7000D10706D54FF0FF3202FA04F42343ADF821 -:103D80002030BDF82030A9F800303CE7202C0FD8B7 -:103D90000899631E21FA03F3DA0705D54FF0FF32C5 -:103DA00002FA04F40C430894089BC9F800302AE78F -:103DB000402C2AD0611EC4F12102A4F12103DDE9C7 -:103DC000086526FA01F105FA02F225FA03F3114318 -:103DD0001943CB0711D50122A4F12003C4F120011E -:103DE00002FA03F322FA01F1A2400B43524263EBC1 -:103DF000430332432B43CDE90823DDE90823C9E916 -:103E0000002300E76FF00100FDE66FF00800FAE61E -:103E1000082CA1D9102CB4D9202CEED8C4E7BBF1C2 -:103E2000000FAED0022384E7BBF1000FBCD0042307 -:103E30007FE70000012A30B5144638BF012485B061 -:103E40000025402C28BF4024012ACDE9025518D86E -:103E50001B788DF8083063070AD004AB624203EB8D -:103E6000D40502F0070215F8083C934005F8083C19 -:103E7000034600912246002102A8FFF727FB05B068 -:103E800030BD082AE4D9102A03D81B88ADF80830C1 -:103E9000E1E7202A95BF1B68D3E900230293CDE90F -:103EA0000223D8E710B5CB681BB98B600B618B82FE -:103EB00010BD04691A681C600361C38A013BC38298 -:103EC000CA60F0E703064CBFC0F3C0300220704761 -:103ED00008B50246FFF7F6FF022806D15306C2F3E3 -:103EE0000F2001D100F0030008BDC2F30740FBE73B -:103EF0002DE9F04F93B004460D46CDE903230A683F -:103F00001046FFF7DFFF0228824614BFC2F30626E1 -:103F10000026002A80F2F38112F0C04940F0EF81C0 -:103F2000097B002900F0EB81022803D02378B342FB -:103F300040F0E881C2F3046310462944069302F07E -:103F40007F030593FFF7C4FF059B002283464FEADA -:103F50008348002348EA0A4848EA4668CE78CDE913 -:103F60000823F30948EA0008029368D0059B02463B -:103F700008A92046009353466768B847002800F018 -:103F8000C481276A4FB9414604F10C00FFF700FBDA -:103F9000074690B96FF0020055E03B6998450DD097 -:103FA0003F68002FF9D1414604F10C00FFF7F0FA09 -:103FB00007460028EED0236A3B60276297F817C0B7 -:103FC00006F01F08CCF3840CACEB0800A8EB0C0344 -:103FD0001FFA80FE0028B8BF0EF120001FFA83FEF2 -:103FE000B8BF00B2002B0793B8BF0EF12003D7E98A -:103FF0000221BCBF1BB2079352EA010338D0039BD6 -:104000004FF0000CDFF820E39A1A049B63EB0101E8 -:1040100096457CEB01032BD36B7B97F81AE0734535 -:1040200019D1029B002B78D0012821DC7868F8B9DF -:10403000DFF8F0C2944570EB010316D337E0276A2E -:1040400027B96FF00C0013B0BDE8F08F3B699845BD -:10405000B4D03F68F4E7B34890427CEB010301D34E -:104060000020F0E7029B002BFAD0079B0F2B17DCF8 -:10407000FA7DB3003946204602F0030203F07C03C8 -:104080001343FB75FFF706FB6B7BBB76029B3BB9CB -:10409000FB7DC3F38402013262F38603FB75D0E734 -:1040A0006A7BBB7E9A42DBD1029B002B35D0B309E1 -:1040B000022B32D0039B142200210DA8BB60049B6D -:1040C000FB60FDF791FC039B0AA920460A93049B21 -:1040D000ADF83EB00B932B1D8DF840A00C932B7BBD -:1040E0008DF84180013BDBB2ADF83C30069B8DF88A -:1040F0004230059B8DF8433094F82C3083F0010357 -:104100008DF84430A3689847FB7DC3F384030133E3 -:1041100003F01F039B02FB82A2E7FB7DC6F3401264 -:10412000B2EBD31F40F0F480C3F38403434540F067 -:10413000F280029AB6092B7B002A4DD0F2075DD49B -:10414000032B40F2EB80039BAE1D394604F10C00BB -:10415000BB603246049BFB602B7B033BDBB2FFF76B -:10416000ABFA00280CDA39462046FFF793FAFB7DBC -:10417000C3F38403013303F01F039B02FB8209E7AF -:10418000AB88DDE908843B834FF6FF73C9F120005B -:10419000A9F1200228FA09F109F1080904FA00F04E -:1041A00024FA02F2014318461143C9B2FFF7C6F9D7 -:1041B000B9F1400F0346E9D1B88231462A7B033A70 -:1041C000D2B2FFF7CBF9FB7DB882DA43C2F3C0125B -:1041D00062F3C713FB7543E786B92E1D013B3946D1 -:1041E00004F10C00DBB23246FFF766FA0028BADBB6 -:1041F0002A7B3146B88A013AD2B2E2E7F98A013B1A -:10420000C1F30901DAB204295BD8281D002307F1A4 -:104210001B069A4208D910F801CB013306F801C0F9 -:104220000131DBB20529F4D1039993420A9138BFD9 -:10423000043304992CBF002355FA83F30B9107F143 -:104240001B010C9179680E930D91291DFB8AADF825 -:104250003EB0C3F309038DF840A08DF841801A44A5 -:10426000069B8DF84230059BADF83C208DF843301D -:1042700094F82C3083F001038DF844300023B88A81 -:104280007B602A7B013AFFF769F93B8BB882834256 -:1042900003D1A3680AA92046984720460AA9FFF738 -:1042A00001FEFB7DBA8AC3F38403013303F01F03CD -:1042B0009B02FB823B8B9A420CBF00206FF01000E8 -:1042C000C1E67B68002BAFD0052001E01C303346EF -:1042D0001E68002EFAD1091A2E1D081D184401EB84 -:1042E000090C5FFA89F3BCF11B0F9DD89A429BD948 -:1042F00016F8013B09F1010900F8013BEFE76FF007 -:104300000900A0E66FF00A009DE66FF00B009AE648 -:104310006FF00D0097E66FF00E0094E66FF00F005F -:1043200091E600BF40420F0080841E00EFF3098336 -:10433000054968334A6B22F001024A6383F3098816 -:10434000002383F31188704700EF00E0302080F3F2 -:10435000118862B60D4B0E4AD96821F4E061090458 -:10436000090C0A430B49DA60D3F8FC2042F0807252 -:10437000C3F8FC20084AC2F8B01F116841F00101DF -:1043800011602022DA7783F82200704700ED00E008 -:104390000003FA0555CEACC5001000E0302310B57F -:1043A00083F311880E4B5B6813F4006314D0F1EEB5 -:1043B000103AEFF309844FF08073683CE361094BD6 -:1043C000DB6B236684F3098800F050FE10B1064BC6 -:1043D000A36110BD054BFBE783F31188F9E700BF2C -:1043E00000ED00E000EF00E03F0400084204000898 -:1043F00008B5074B074A196801F03D0199605368F9 -:104400000BB190689847BDE80840FFF7C7BF00BFF1 -:10441000000002402464002008B5084B196889098F -:1044200001F03D018A019A60054AD3680BB1106919 -:104430009847BDE80840FFF7B1BF00BF0000024049 -:104440002464002008B5084B1968090C01F03D01EF -:104450000A049A60054A53690BB190699847BDE810 -:104460000840FFF79BBF00BF00000240246400200B -:1044700008B5084B1968890D01F03D018A059A605D -:10448000054AD3690BB1106A9847BDE80840FFF7A9 -:1044900085BF00BF000002402464002008B5074B20 -:1044A000074A596801F03D01D960536A0BB1906A1F -:1044B0009847BDE80840FFF771BF00BF0000024009 -:1044C0002464002008B5084B5968890901F03D01B2 -:1044D0008A01DA60054AD36A0BB1106B9847BDE8D0 -:1044E0000840FFF75BBF00BF0000024024640020CB -:1044F00008B5084B5968090C01F03D010A04DA605F -:10450000054A536B0BB1906B9847BDE80840FFF725 -:1045100045BF00BF000002402464002008B5084BDE -:104520005968890D01F03D018A05DA60054AD36BAF -:104530000BB1106C9847BDE80840FFF72FBF00BFD4 -:10454000000002402464002008B5074B074A1968A0 -:1045500001F03D019960536C0BB1906C9847BDE838 -:104560000840FFF71BBF00BF000402402464002086 -:1045700008B5084B1968890901F03D018A019A6064 -:10458000054AD36C0BB1106D9847BDE80840FFF7A2 -:1045900005BF00BF000402402464002008B5084B9A -:1045A0001968090C01F03D010A049A60054A536D2F -:1045B0000BB1906D9847BDE80840FFF7EFBE00BF14 -:1045C000000402402464002008B5084B1968890DD6 -:1045D00001F03D018A059A60054AD36D0BB1106E5A -:1045E0009847BDE80840FFF7D9BE00BF000402406D -:1045F0002464002008B5074B074A596801F03D01C3 -:10460000D960536E0BB1906E9847BDE80840FFF734 -:10461000C5BE00BF000402402464002008B5084B5A -:104620005968890901F03D018A01DA60054AD36EB3 -:104630000BB1106F9847BDE80840FFF7AFBE00BF51 -:10464000000402402464002008B5084B5968090C96 -:1046500001F03D010A04DA60054A536F0BB1906F17 -:104660009847BDE80840FFF799BE00BF000402402C -:104670002464002008B5084B5968890D01F03D01FC -:104680008A05DA60054AD36F13B1D2F880009847E3 -:10469000BDE80840FFF782BE000402402464002009 -:1046A00000230C4910B51A460B4C0B6054F823003C -:1046B000026001EB430004334260402BF6D1074A0D -:1046C0004FF0FF339360D360C2F80834C2F80C3463 -:1046D00010BD00BF246400207C630008000002407D -:1046E0000F28F8B510D9102810D0112811D0122891 -:1046F00008D10F240720DFF8B4E00126DEF80050CF -:10470000A04208D9002649E00446F4E70F2400201F -:10471000F1E70724FBE706FA00F73D4240D1214CC0 -:104720004FEA001C3D4304EB00160EEBC000CEF830 -:104730000050C0E90123FBB24BB11B48836B43F02F -:1047400001038363036E43F001030366036E17F4F2 -:104750007F4F09D01448836B43F002038363036ED9 -:1047600043F002030366036E54F80C00036823F061 -:104770001F030360056815F00105FBD104EB0C0372 -:104780003D2493F80CC05F6804FA0CF43C602124CB -:104790000560446112B1987B00F00EFA3046F8BD16 -:1047A0000130ADE77C630008004502582464002016 -:1047B00010B5302484F31188FFF792FF002383F3B0 -:1047C000118810BD10B50446807B00F00BFA012360 -:1047D0001049627B03FA02F20B6823EA0203DAB2A1 -:1047E0000B604AB90C4A916B21F001019163116E83 -:1047F00021F001011166126E13F47F4F09D1064BAF -:104800009A6B22F002029A631A6E22F002021A6672 -:104810001B6E10BD246400200045025808B53023EB -:1048200083F31188FFF7CEFF002383F3118808BDBF -:104830000023054A19460133102BC2E9001102F189 -:104840000802F8D1704700BFA86400202DE9F74F97 -:1048500002F0030AC2F3C313C2F38009C2F3C10812 -:10486000C2F3411E574600224FF00F0B0193CB07B6 -:1048700033D502F00703019C012556009B00BAF1D5 -:10488000020F05FA02F504FA03FC44680BFA03F37D -:1048900024EA05046FEA030344EA090444604FF084 -:1048A0000304856804FA06F625EA06056FEA06049D -:1048B00045EA08058560C56825EA060545EA0E054E -:1048C000C5601BD1072A13D8056A2B4043EA0C03A5 -:1048D000036203681C403C430460490822D04FEA4D -:1048E000490901324FEA88084FEA8E0EBF00BEE741 -:1048F000456A2B4043EA0C034362EAE70568072A4E -:1049000004EA050444EA0704046005D8046A234065 -:1049100043EA0C030362E0E7446A234043EA0C03E2 -:104920004362DAE703B0BDE8F08F00000268436835 -:104930001143016003B1184770470000024A136831 -:1049400043F0C0031360704700100140024A13682F -:1049500043F0C00313607047007C004037B51A4C29 -:104960001A4D204600F0E8FA04F1140000940023E8 -:104970004FF40072164900F0A5F94FF40072154982 -:1049800004F138000094144B00F01EFA134BC4E9F4 -:104990001735134C204600F0CFFA04F11400002321 -:1049A0004FF400720F49009400F08CF90E4B4FF455 -:1049B00000720E4904F13800009400F005FA0C4B27 -:1049C000C4E9173503B030BD2865002000E1F505C6 -:1049D00000660020006A00203D49000800100140E8 -:1049E00094650020006800204D490008006C0020FC -:1049F000007C0040037C30B5284C002918BF0C46D1 -:104A0000012B0CD1264B984236D1264B1A6D42F021 -:104A100010021A659A6F42F010029A679B6F226823 -:104A2000036EC16D03EB52038466B3FBF2F362685D -:104A3000150442BF23F0070503F0070343EA4503CB -:104A4000CB60A36843F040034B60E36843F001038D -:104A50008B6042F4967343F001030B604FF0FF3319 -:104A60000B62510505D512F0102213D0B2F1805F10 -:104A700012D080F8643030BD0B4B9842CFD1094B37 -:104A80009A6C42F000429A641A6F42F000421A6730 -:104A90001B6FC4E77F23ECE73F23EAE77C64000851 -:104AA0002865002000450258946500202DE9F04754 -:104AB000C66D05463768F469210734621AD014F0D0 -:104AC000080118BF4FF48071E20748BF41F0200190 -:104AD000A3074FF0300348BF41F04001600748BFD3 -:104AE00041F0800183F31188281DFFF71FFF002389 -:104AF00083F31188E2050AD5302383F311884FF43C -:104B00008061281DFFF712FF002383F311884FF007 -:104B100030094FF0000A14F0200838D13B0616D5B2 -:104B20004FF0300905F1380A200610D589F31188B5 -:104B3000504600F07DF9002836DA0821281DFFF7DD -:104B4000F5FE27F080033360002383F31188790694 -:104B500014D5620612D5302383F31188D5E91323C7 -:104B60009A4208D12B6C33B127F040071021281D41 -:104B7000FFF7DCFE3760002383F31188E30618D5C6 -:104B8000AA6E1369ABB15069BDE8F047184789F3C5 -:104B90001188736A284695F86410194000F0E6F908 -:104BA0008AF31188F469B6E7B06288F31188F46972 -:104BB000BAE7BDE8F0870000090100F16043012277 -:104BC00003F56143C9B283F8001300F01F039A4054 -:104BD00043099B0003F1604303F56143C3F880215F -:104BE0001A60704700F01F0301229A40430900F148 -:104BF00060409B0000F5614003F1604303F56143B1 -:104C0000C3F88020C3F88021002380F80033704768 -:104C1000F8B51546826804460B46AA4200D285685C -:104C2000A1692669761AB5420BD218462A46FCF7C6 -:104C3000C9FEA3692B44A3612846A3685B1BA3603C -:104C4000F8BD0CD9AF1B18463246FCF7BBFE3A46FE -:104C5000E1683044FCF7B6FEE3683B44EBE71846F6 -:104C60002A46FCF7AFFEE368E5E70000836893425D -:104C7000F7B50446154600D28568D4E90460361AB3 -:104C8000B5420BD22A46FCF79DFE63692B44636153 -:104C90002846A3685B1BA36003B0F0BD0DD9324664 -:104CA000AF1B0191FCF78EFE01993A46E068314452 -:104CB000FCF788FEE3683B44E9E72A46FCF782FEFE -:104CC000E368E4E710B50A440024C361029B8460F2 -:104CD000C16002610362C0E90000C0E9051110BDB6 -:104CE00008B5D0E90532934201D1826882B9826861 -:104CF000013282605A1C426119700021D0E90432ED -:104D00009A4224BFC368436100F052FA002008BDF4 -:104D10004FF0FF30FBE7000070B5302304460E462D -:104D200083F31188A568A5B1A368A269013BA360BC -:104D3000531CA36115782269934224BFE368A361E1 -:104D4000E3690BB120469847002383F31188284676 -:104D500007E03146204600F01BFA0028E2DA85F32E -:104D6000118870BD2DE9F74F04460E461746984648 -:104D7000D0F81C904FF0300A8AF311884FF0000BE6 -:104D8000154665B12A4631462046FFF741FF0346E6 -:104D900060B94146204600F0FBF90028F1D000231D -:104DA00083F31188781B03B0BDE8F08FB9F1000FD1 -:104DB00003D001902046C847019B8BF31188ED1A60 -:104DC0001E448AF31188DCE7C160C361009B8260E6 -:104DD0000362C0E905111144C0E900000161704798 -:104DE000F8B504460D461646302383F31188A768AC -:104DF000A7B1A368013BA36063695A1C62611D707F -:104E0000D4E904329A4224BFE3686361E3690BB1D9 -:104E100020469847002080F3118807E0314620465D -:104E200000F0B6F90028E2DA87F31188F8BD000037 -:104E3000D0E9052310B59A4201D182687AB9826817 -:104E40000021013282605A1C82611C7803699A42F7 -:104E500024BFC368836100F0ABF9204610BD4FF05A -:104E6000FF30FBE72DE9F74F04460E4617469846FC -:104E7000D0F81C904FF0300A8AF311884FF0000BE5 -:104E8000154665B12A4631462046FFF7EFFE034638 -:104E900060B94146204600F07BF90028F1D000239C -:104EA00083F31188781B03B0BDE8F08FB9F1000FD0 -:104EB00003D001902046C847019B8BF31188ED1A5F -:104EC0001E448AF31188DCE70268436811430160DD -:104ED00003B11847704700001430FFF743BF0000CC -:104EE0004FF0FF331430FFF73DBF00003830FFF7BD -:104EF000B9BF00004FF0FF333830FFF7B3BF0000F9 -:104F00001430FFF709BF00004FF0FF311430FFF7F6 -:104F100003BF00003830FFF763BF00004FF0FF32DF -:104F20003830FFF75DBF0000012914BF6FF0130098 -:104F300000207047FFF712BD044B0360002343605D -:104F4000C0E9023301230374704700BF9464000872 -:104F500010B53023044683F31188FFF74BFD02237D -:104F60000020237480F3118810BD000038B5C36998 -:104F700004460D461BB904210844FFF7A5FF294646 -:104F800004F11400FFF7ACFE002806DA201D4FF4F0 -:104F90000061BDE83840FFF797BF38BD0023826845 -:104FA000037503691B6899689142FBD25A680360D4 -:104FB000426010605860704700238268037503697F -:104FC0001B6899689142FBD85A6803604260106080 -:104FD0005860704708B50846302383F311880B7D6D -:104FE000032B05D0042B0DD02BB983F3118808BDFA -:104FF0008B6900221A604FF0FF338361FFF7CEFF09 -:105000000023F2E7D1E9003213605A60F3E70000B1 -:10501000FFF7C4BF054BD96808751868026853606C -:105020001A600122D8600275FBF7F4B9006E002007 -:105030000C4B30B5DD684B1C87B004460FD02B46B7 -:10504000094A684600F046F92046FFF7E3FF009B57 -:1050500013B1684600F048F9A86907B030BDFFF702 -:10506000D9FFF9E7006E0020D54F0008044B1A68FD -:10507000DB6890689B68984294BF002001207047CD -:10508000006E0020084B10B51C68D8682268536079 -:105090001A600122DC602275FFF78EFF0146204670 -:1050A000BDE81040FBF7B6B9006E002038B5074CDC -:1050B00001230025064907482370656000F0C2FC03 -:1050C0000223237085F3118838BD00BF687000206B -:1050D000C0640008006E002008B572B6044B186565 -:1050E00000F0FCFA00F0C2FB024B03221A70FEE74C -:1050F000006E00206870002000F02CB98B60022345 -:10510000086108468B8270478368A3F1840243F8E4 -:10511000142C026943F8442C426943F8402C094A94 -:1051200043F8242CC268A3F1200043F8182C022273 -:1051300003F80C2C002203F80B2C034A43F8102C24 -:10514000704700BF2D040008006E002008B5FFF76F -:10515000DBFFBDE80840FFF75BBF0000024BDB68E8 -:1051600098610F20FFF756BF006E0020302383F3B5 -:105170001188FFF7F3BF000008B50146302383F321 -:1051800011880820FFF754FF002383F3118808BD1E -:10519000064BDB6839B1426818605A60136043609F -:1051A0000420FFF745BF4FF0FF307047006E00202E -:1051B0000368984206D01A680260506018469961E8 -:1051C000FFF726BF70470000036810B59C68A24235 -:1051D0000CD85C688A600B604C60216059609968EB -:1051E0008A1A9A604FF0FF33836010BD121B1B6850 -:1051F000ECE700000A2938BF0A2170B504460D46C5 -:105200000A26601900F016FC00F0FEFB041BA54204 -:1052100003D8751C04462E46F3E70A2E04D9012054 -:10522000BDE8704000F04EBC70BD0000F8B5144BF6 -:105230000D460A2A4FF00A07D96103F11001826076 -:1052400038BF0A224160196914460160486018613C -:10525000A81800F0DFFB00F0D7FB431B0646A34273 -:1052600006D37C1C28192746354600F0E3FBF2E7FD -:105270000A2F04D90120BDE8F84000F023BCF8BD96 -:10528000006E0020F8B506460D4600F0BDFB0F4A43 -:10529000134653F8107F9F4206D12A4601463046F6 -:1052A000BDE8F840FFF7C2BFD169BB68441A2C19AA -:1052B00028BF2C46A34202D92946FFF79BFF22466E -:1052C00031460348BDE8F840FFF77EBF006E00207E -:1052D000106E0020C0E90323002310B45DF8044BD6 -:1052E0004361FFF7CFBF000010B5194C2369984206 -:1052F0000DD08168D0E9003213605A609A680A4480 -:105300009A60002303604FF0FF33A36110BD026871 -:10531000234643F8102F53600022026022699A420C -:1053200003D1BDE8104000F07FBB936881680B4457 -:10533000936000F069FB2269E1699268441AA24215 -:10534000E4D91144BDE81040091AFFF753BF00BF6C -:10535000006E00202DE9F047DFF8BC8008F110074F -:105360002C4ED8F8105000F04FFBD8F81C40AA681B -:10537000031B9A423ED814444FF00009D5E900328D -:10538000C8F81C4013605A60C5F80090D8F8103077 -:10539000B34201D100F048FB89F31188D5E903310C -:1053A00028469847302383F311886B69002BD8D0A7 -:1053B00000F02AFB6A69A0EB040982464A450DD237 -:1053C000022000F07FFB0022D8F81030B34208D151 -:1053D00051462846BDE8F047FFF728BF121A22447D -:1053E000F2E712EB09092946384638BF4A46FFF76B -:1053F000EBFEB5E7D8F81030B34208D01444C8F833 -:105400001C00211AA960BDE8F047FFF7F3BEBDE814 -:10541000F08700BF106E0020006E002038B500F04D -:10542000F3FA054AD2E90845031B181945F10001B2 -:10543000C2E9080138BD00BF006E0020002070479F -:10544000FEE70000704700004FF0FF30704700009B -:10545000BFF34F8F044B1A695107FCD1D3F81021C9 -:105460005207F8D1704700BF0020005208B50D4B1D -:105470001B78ABB9FFF7ECFF0B4BDA68D10704D50B -:105480000A4A5A6002F188325A60D3F80C21D207D6 -:1054900006D5064AC3F8042102F18832C3F8042174 -:1054A00008BD00BF70700020002000522301674536 -:1054B00008B5114B1B78F3B9104B1A69510703D586 -:1054C000DA6842F04002DA60D3F81021520705D5BD -:1054D000D3F80C2142F04002C3F80C21FFF7B8FFCB -:1054E000064BDA6842F00102DA60D3F80C2142F090 -:1054F0000102C3F80C2108BD70700020002000528A -:105500000F289ABF00F5806040040020704700001B -:105510004FF4003070470000102070470F2808B586 -:105520000BD8FFF7EDFF00F500330268013204D11C -:1055300004308342F9D1012008BD0020FCE70000BF -:105540000F2838B505463FD8FFF782FF1F4CFFF7FD -:105550008DFF4FF0FF3307286361C4F814311DD865 -:105560002361FFF775FF030243F02403E360E36860 -:1055700043F08003E36023695A07FCD42846FFF711 -:1055800067FFFFF7BDFF4FF4003100F04BF92846ED -:10559000FFF78EFFBDE83840FFF7C0BFC4F81031F9 -:1055A000FFF756FFA0F108031B0243F02403C4F8E1 -:1055B0000C31D4F80C3143F08003C4F80C31D4F82A -:1055C00010315B07FBD4D9E7002038BD0020005222 -:1055D0002DE9F84F05460C46104645EA0203DE0663 -:1055E00002D00020BDE8F88F20F01F00DFF8BCB02B -:1055F000DFF8BCA0FFF73AFF04EB0008444503D1F5 -:105600000120FFF755FFEDE720222946204600F054 -:10561000EFFD10B920352034F0E72B4605F12002CC -:105620001F68791CDDD104339A42F9D105F1784322 -:105630001B481C4EB3F5801F1B4B38BF184603F1A7 -:10564000F80332BFD946D1461E46FFF701FF076077 -:10565000A5EB040C336804F11C0143F00203336032 -:10566000231FD9F8007017F00507FAD153F8042F5B -:105670008B424CF80320F4D1BFF34F8FFFF7E8FEC5 -:105680004FF0FF332022214603602846336823F081 -:105690000203336000F0ACFD0028BBD03846B0E711 -:1056A000142100520C2000521420005210200052ED -:1056B0001021005210B5084C237828B11BB9FFF710 -:1056C000D5FE0123237010BD002BFCD02070BDE857 -:1056D0001040FFF7EDBE00BF7070002038B5054DDB -:1056E00000240334696855F80C0B00F0ADF8122C57 -:1056F000F7D138BDCC640008084600F071BD000049 -:1057000038B5EFF311859DB9EFF30584C4F30804B0 -:10571000302334B183F31188FFF780FE85F31188BD -:1057200038BD83F31188FFF779FE84F3118838BD03 -:10573000BDE83840FFF772BE10B5FFF7E1FF104C2F -:10574000C008104A002340EA4170C908A0FB04ECDD -:10575000A0FB020E1CEB0000A1FB044CA1FB0212FB -:105760005B41001943EB0C0011EB0E0142F100020A -:10577000411842F10000090941EA007010BD00BF64 -:10578000CFF753E3A59BC4200244074BD2B210B518 -:10579000904200D110BD441C00B253F8200041F8E3 -:1057A000040BE0B2F4E700BF504000580E4B30B598 -:1057B0001C6F240405D41C6F1C671C6F44F4004448 -:1057C0001C670A4C02442368D2B243F480732360FE -:1057D000074B904200D130BD441C51F8045B00B22D -:1057E00043F82050E0B2F4E7004402580048025861 -:1057F0005040005807B5012201A90020FFF7C4FF5F -:10580000019803B05DF804FB13B50446FFF7F2FFFF -:10581000A04205D0012201A900200194FFF7C6FF94 -:1058200002B010BD0144BFF34F8F064B884204D332 -:10583000BFF34F8FBFF36F8F7047C3F85C02203008 -:10584000F4E700BF00ED00E00144BFF34F8F064BCB -:10585000884204D3BFF34F8FBFF36F8F7047C3F8F5 -:1058600070022030F4E700BF00ED00E07047000058 -:10587000074B45F255521A6002225A6040F6FF72F9 -:105880009A604CF6CC421A600122024B1A707047A3 -:105890000048005878700020034B1B781BB1034B65 -:1058A0004AF6AA221A607047787000200048005813 -:1058B000034B1A681AB9034AD2F8D0241A60704709 -:1058C0007470002000400258024B4FF48032C3F83D -:1058D000D02470470040025808B5FFF7E9FF024B9B -:1058E0001868C0F3806008BD7470002070B5BFF305 -:1058F0004F8FBFF36F8F1A4A0021C2F85012BFF3C7 -:105900004F8FBFF36F8F536943F400335361BFF37D -:105910004F8FBFF36F8FC2F88410BFF34F8FD2F851 -:10592000803043F6E074C3F3C900C3F34E335B0128 -:1059300003EA0406014646EA81750139C2F860525D -:10594000F9D2203B13F1200FF2D1BFF34F8F5369EF -:1059500043F480335361BFF34F8FBFF36F8F70BD3C -:1059600000ED00E0FEE70000214B2248224A70B51E -:10597000904237D3214BC11EDA1C121A22F00302C7 -:105980008B4238BF00220021FCF72EF81C4A00236E -:10599000C2F88430BFF34F8FD2F8803043F6E07402 -:1059A000C3F3C900C3F34E335B0103EA04060146A7 -:1059B00046EA81750139C2F86C52F9D2203B13F1E5 -:1059C000200FF2D1BFF34F8FBFF36F8FBFF34F8F15 -:1059D000BFF36F8F0023C2F85032BFF34F8FBFF376 -:1059E0006F8F70BD53F8041B40F8041BC0E700BF65 -:1059F000F86600087C7000207C7000207C7000201D -:105A000000ED00E000F01AB9014B586A704700BF82 -:105A1000000C0040034B002258631A610222DA6036 -:105A2000704700BF000C0040014B0022DA60704755 -:105A3000000C0040014B5863704700BF000C004051 -:105A4000FEE7000070B51B4B0025044686B0586089 -:105A50000E4685620163FEF779FC04F11003A56030 -:105A6000E562C4E904334FF0FF33C4E90044C4E9FC -:105A70000635FFF7C9FF2B46024604F134012046E4 -:105A8000C4E9082380230C4A2565FFF737FB01236F -:105A90000A4AE06000920375684672680192B26833 -:105AA000CDE90223064BCDE90435FFF74FFB06B0E5 -:105AB00070BD00BF687000201465000819650008FB -:105AC000415A0008024AD36A1843D062704700BFA7 -:105AD000006E00204B6843608B688360CB68C360B6 -:105AE0000B6943614B6903628B6943620B68036016 -:105AF0007047000008B53A4B40F2FF713948D3F8BF -:105B000088200A43C3F88820D3F8882022F4FF6253 -:105B100022F00702C3F88820D3F88830324B1A6C81 -:105B20000A431A649A6E0A439A66304A9B6E11467B -:105B3000FFF7D0FF00F5806002F11C01FFF7CAFFFC -:105B400000F5806002F13801FFF7C4FF00F58060C6 -:105B500002F15401FFF7BEFF00F5806002F1700111 -:105B6000FFF7B8FF00F5806002F18C01FFF7B2FF8C -:105B700000F5806002F1A801FFF7ACFF00F580603E -:105B800002F1C401FFF7A6FF00F5806002F1E00119 -:105B9000FFF7A0FF00F5806002F1FC01FFF79AFF1C -:105BA00002F58C7100F58060FFF794FF00F008F9B2 -:105BB0000F4BD3F8902242F00102C3F89022D3F8A1 -:105BC000942242F00102C3F894220522C3F89820DF -:105BD0004FF06052C3F89C20064AC3F8A02008BDCD -:105BE0000044025800000258004502582065000891 -:105BF00000ED00E01F00080308B500F0CDFAFFF744 -:105C000055FA0B4BDA6B42F04002DA635A6E22F01F -:105C100040025A665B6E074B1A6842F008021A602F -:105C20001A6842F004021A60BDE80840FFF740BE5F -:105C30000045025800180248704700000E4B9A6C4D -:105C400042F008029A641A6F42F008021A670B4A7F -:105C50001B6FD36B43F00803D363C722084B9A62D0 -:105C60004FF0FF32DA6200229A615A63DA605A60BA -:105C700001225A611A607047004502580010005C0A -:105C8000000C0040094A08B51169D3680B40D9B22D -:105C90009B076FEA0101116107D5302383F3118857 -:105CA000FFF72AFA002383F3118808BD000C004097 -:105CB000044BDA6B0243DA635A6E104358665B6E2C -:105CC000704700BF0045025808B53C4B4FF0FF310C -:105CD000D3F8802062F00042C3F88020D3F88020FF -:105CE00002F00042C3F88020D3F88020D3F884204B -:105CF000C3F88410D3F884200022C3F88420D3F89A -:105D00008400D86F40F0FF4040F4FF0040F4DF40D3 -:105D100040F07F00D867D86F20F0FF4020F4FF00EC -:105D200020F4DF4020F07F00D867D86FD3F88800D8 -:105D30006FEA40506FEA5050C3F88800D3F88800EB -:105D4000C0F30A00C3F88800D3F88800D3F89000A5 -:105D5000C3F89010D3F89000C3F89020D3F89000C7 -:105D6000D3F89400C3F89410D3F89400C3F89420A7 -:105D7000D3F89400D3F89800C3F89810D3F898009B -:105D8000C3F89820D3F89800D3F88C00C3F88C108F -:105D9000D3F88C00C3F88C20D3F88C00D3F89C0087 -:105DA000C3F89C10D3F89C10C3F89C20D3F89C3007 -:105DB000FEF776FCBDE8084000F0BEB9004402588A -:105DC00008B50122504BC3F80821504B5A6D42F0E0 -:105DD00002025A65DA6F42F00202DA670422DB6FD0 -:105DE0004B4BDA605A689104FCD54A4A1A6001228A -:105DF0009A60494ADA6000221A614FF440429A617F -:105E0000434B9A699204FCD51A6842F480721A6076 -:105E1000424B1A6F12F4407F04D04FF480321A675D -:105E200000221A671A6842F001021A603B4B1A6896 -:105E30005007FCD500221A611A6912F03802FBD112 -:105E4000012119604FF0804159605A67344ADA6283 -:105E5000344A1A611A6842F480321A602F4B1A6869 -:105E60009103FCD51A6842F480521A601A689204B1 -:105E7000FCD52D4A2D499A6200225A63196301F517 -:105E80007C01DA6301F5E77199635A64284A1A6460 -:105E9000284ADA621A6842F0A8521A601F4B1A6840 -:105EA00002F02852B2F1285FF9D148229A614FF4EA -:105EB0008862DA6140221A621F4ADA641F4A1A6550 -:105EC0001F4A5A651F4A9A6532231F4A1360136896 -:105ED00003F00F03022BFAD1104A136943F00303B6 -:105EE0001361136903F03803182BFAD14FF00050F7 -:105EF000FFF7DEFE4FF08040FFF7DAFE4FF0004084 -:105F0000BDE80840FFF7D4BE0080005100450258AC -:105F10000048025800C000F004000001004402588C -:105F20000000FF0100889008322060006302090130 -:105F3000470E0508DD0BBF01200000200000011006 -:105F40000910E00000010110002000524FF0B042A3 -:105F500008B5D2F8883003F00103C2F8883023B1C5 -:105F6000044A13680BB150689847BDE80840FEF733 -:105F700015BA00BFA86400204FF0B04208B5D2F8AF -:105F8000883003F00203C2F8883023B1044A9368D2 -:105F90000BB1D0689847BDE80840FEF7FFB900BFD5 -:105FA000A86400204FF0B04208B5D2F8883003F062 -:105FB0000403C2F8883023B1044A13690BB1506955 -:105FC0009847BDE80840FEF7E9B900BFA864002083 -:105FD0004FF0B04208B5D2F8883003F00803C2F899 -:105FE000883023B1044A93690BB1D0699847BDE862 -:105FF0000840FEF7D3B900BFA86400204FF0B042BC -:1060000008B5D2F8883003F01003C2F8883023B105 -:10601000044A136A0BB1506A9847BDE80840FEF77E -:10602000BDB900BFA86400204FF0B04310B5D3F84D -:10603000884004F47872C3F88820A30604D5124A75 -:10604000936A0BB1D06A9847600604D50E4A136B69 -:106050000BB1506B9847210604D50B4A936B0BB1DB -:10606000D06B9847E20504D5074A136C0BB1506C0E -:106070009847A30504D5044A936C0BB1D06C98479C -:10608000BDE81040FEF78AB9A86400204FF0B04385 -:1060900010B5D3F8884004F47C42C3F88820620528 -:1060A00004D5164A136D0BB1506D9847230504D5DE -:1060B000124A936D0BB1D06D9847E00404D50F4A96 -:1060C000136E0BB1506E9847A10404D50B4A936E22 -:1060D0000BB1D06E9847620404D5084A136F0BB118 -:1060E000506F9847230404D5044A936F0BB1D06FC7 -:1060F0009847BDE81040FEF751B900BFA8640020E2 -:1061000008B50348FEF7D2FCBDE80840FEF746B9E3 -:106110002865002008B50348FEF7C8FCBDE8084024 -:10612000FEF73CB99465002008B5FFF7ABFDBDE86C -:106130000840FEF733B90000062108B50846FEF70F -:106140003BFD06210720FEF737FD06210820FEF75C -:1061500033FD06210920FEF72FFD06210A20FEF758 -:106160002BFD06211720FEF727FD06212820FEF72C -:1061700023FD09217A20FEF71FFD07213220FEF7BB -:106180001BFD0C212520FEF717FD0C215320BDE837 -:106190000840FEF711BD000008B5FFF795FDFEF7BA -:1061A00047FBFEF7C7FEFFF747FDBDE80840FFF7D6 -:1061B00029BC00000B460146184600F003B8000059 -:1061C00000F00EB810B5054C13462CB10A46014636 -:1061D0000220AFF3008010BD2046FCE70000000065 -:1061E000024B01461868FFF787BA00BF3C23002026 -:1061F00010B501390244904201D1002005E0037836 -:1062000011F8014FA34201D0181B10BD0130F2E775 -:106210002DE9F041A3B1C91A17780144044603F1EE -:10622000FF3C8C42204601D9002009E00578BD42A0 -:1062300004F10104F5D10CEB0405D618A54201D1F7 -:10624000BDE8F08115F8018D16F801EDF045F5D0A7 -:10625000E7E70000034611F8012B03F8012B002AA1 -:10626000F9D17047636F6D2E6375626570696C6FED -:10627000742E6865726534666300000053544D33B4 -:106280003248373F3F3F0053544D3332483733781D -:106290002F3732780053544D3332483734332F3749 -:1062A00035332F373530000001105A0003105900E4 -:1062B000012058000320560040A2E4F164689106D2 -:1062C0000041A3E5F26569920700000043414E4694 -:1062D0004449666163653A204D6573736167652063 -:1062E00052414D204F766572666C6F772100000039 -:1062F0004261642043414E496661636520696E6472 -:1063000065782E00000100000001FF0000A00040A1 -:1063100000A400400000000000000000712A0008F6 -:10632000F9220008F93100086923000875230008E4 -:106330008D270008ED2400083123000835230008CC -:106340000D230008F522000849270008192300083A -:1063500061330008252300081D27000801040E05ED -:10636000054B02020E05054B04010E05054B050108 -:106370000B04044B08010603034600001000024012 -:10638000080002400008024000000B002800024004 -:10639000080002400408024006010C0040000240D0 -:1063A000080002400808024010020D005800024098 -:1063B000080002400C08024016030E007000024064 -:1063C0000C0002401008024000040F008800024048 -:1063D0000C0002401408024006051000A000024014 -:1063E0000C0002401808024010061100B8000240DC -:1063F0000C0002401C08024016072F001004024047 -:106400000804024020080240000838002804024026 -:1064100008040240240802400609390040040240F2 -:106420000804024028080240100A3A0058040240BA -:10643000080402402C080240160B3B007004024086 -:106440000C04024030080240000C3C00880402406A -:106450000C04024034080240060D4400A00402402F -:106460000C04024038080240100E4500B8040240F7 -:106470000C0402403C080240160F46000096000043 -:10648000000000000000000000000000000000000C -:106490000000000000000000F54E0008E14E00087A -:1064A0001D4F0008094F0008154F0008014F000854 -:1064B000ED4E0008D94E0008294F00086330000057 -:1064C000BC640008586E00206870002000010020A5 -:1064D00000FF010002000000000000300000040086 -:1064E0000800000000000024000008000400000074 -:1064F0000004000000FC0000020000000000043066 -:1065000000800000080000000000003800000100CA -:10651000010000006D61696E0069646C6500000037 -:106520000000002800000000AAAAAAAA0000002477 -:10653000FFFF0000000000000000000000A0550A5E -:1065400000000000AAAA9AAA00500000FFF2000072 -:10655000000000770000990000000000000000002B -:10656000AAAAAAAA00000000FFFF00000000000085 -:10657000000000005A000000000000009AAAAAAA29 -:1065800000000000F3FF0000990000000000000080 -:106590000A00000000000000AAAAAAAA0500000044 -:1065A000FFFF000088000000000000000000000065 -:1065B00000000000AAAAAAAA00000000FFFF000035 -:1065C00000000000000000000000000000000000CB -:1065D000AAAAAAAA00000000FFFF00000000000015 -:1065E000000000000000000000000000AAAAAAAA03 -:1065F00000000000FFFF000000000000000000009D -:106600000000000000000000AAAAAAAA00000000E2 -:10661000FFFF00000000000000000000000000007C -:1066200000000000AAAAAAAA00000000FFFF0000C4 -:10663000000000000000000000000000000000005A -:10664000AAAAAAAA00000000FFFF000000000000A4 -:106650000000000000000000130400000000000023 -:106660000000180000000000FE2A0100D204000013 -:10667000FF00000028650020946500200000000055 -:106680007C62000883040000876200085004000058 -:106690009562000840230020000000000000000078 -:1066A00000000000000000000000000000000000EA -:1066B00000000000000000000000000000000000DA -:1066C00000000000000000000000000000000000CA -:1066D00000000000000000000000000000000000BA -:1066E00000000000000000000000000000000000AA -:0866F0000000000000000000A2 +:101AE0007FBA00BF94630020AC6300201C23002059 +:101AF000F8B571B6002301201A46194602F0A0FE7F +:101B00000446802003F0E0FE002845D00025234A4B +:101B100080274FF4D06C3D26136923BBD2F81031D7 +:101B20000BBB236805F1006199602368D8602368C6 +:101B30005F602368C3F800C021680B6843F00103AD +:101B40000B6021680B6823F01E030B6021680B6893 +:101B5000DB07FCD4237B8035616806FA03F3B5F517 +:101B6000001F0B60D8D1204602F0A0FEB5F5001F83 +:101B700011D000240A4E0B4D012003F007FE3388DC +:101B8000A34205D928682044013403F045FDF6E757 +:101B9000002003F0FBFD61B6F8BD00BF002000523D +:101BA000AE630020686300202DE9F8430D4604462B +:101BB00000219046284640F27912FFF715FF234690 +:101BC00020220021284604F1220702F077F9231D84 +:101BD000022220212846C02602F070F9631D03224C +:101BE0002221284602F06AF9A31D03222521284656 +:101BF00002F064F904F1080310222821284602F0BB +:101C00005DF904F1100308223821284602F056F944 +:101C100004F1110308224021284602F04FF904F193 +:101C2000120308224821284602F048F904F114035F +:101C300020225021284602F041F904F118034022E5 +:101C40007021284602F03AF904F120030822B0215D +:101C5000284602F033F904F121030822B82128466E +:101C600002F02CF9314608363B4608222846013757 +:101C700002F024F9B6F5A07FF4D1314604F1320325 +:101C80000822284602F01AF9002794F8326004F17D +:101C90003309F900BE4201F5A4711FD8F70007F51A +:101CA000A476B8F1000F08D1314607F24F1604F5BB +:101CB00099730722284602F001F994F83201B046E0 +:101CC000502828BF5020074604EB0009A1450DD13C +:101CD00006EBC7000730C008BDE8F88309EB07032F +:101CE00008222846013702F0E9F8D2E704F233135C +:101CF00041460822284608F10808013402F0DEF8BF +:101D0000E4E7000013B504460846002120222346DC +:101D100001900160C0F8031002F0D0F8231D019873 +:101D20000222202102F0CAF8631D01980322222119 +:101D300002F0C4F8A31D01980322252102F0BEF889 +:101D4000019804F108031022282102F0B7F80720B7 +:101D500002B010BDF7B5047F05460E462CB1838A4C +:101D6000122B02D9012003B0F0BD00230722284620 +:101D70000096194601F066FF731C012207210093AB +:101D80002846002301F05EFFD4B9B31C05220821C8 +:101D90002846009323460D2401F054FFB378102BFE +:101DA000E0D83746BB1BB278934210D307342B7F61 +:101DB000A88AE408B3B9844294BF00200120D2E786 +:101DC000AB8A0824DB00083BDB08B370E6E7FB1CAA +:101DD000214608222846009300230834013701F0E9 +:101DE00031FFDFE7201A18BF0120BCE7F7B5047FF9 +:101DF00005460E462CB1838ACA2B02D9012003B0B6 +:101E0000F0BD0023082228460096194601F01AFF6B +:101E1000731CD4B908220093234610241146284687 +:101E200001F010FF7378C82BE8D801235F1C72788B +:101E3000013B934210D307342B7FA88AE408B3B93F +:101E4000844294BF00200120D9E7AB8A0824DB003C +:101E5000083BDB087370E5E7F319214608222846A2 +:101E60000093002301F0EEFE08343B46DEE7201A23 +:101E700018BF0120C3E700002DE9F8430D460446D2 +:101E80001646002181222846FFF7AEFD2346082290 +:101E90000021284602F012F8C6B90F26631C07225B +:101EA0000821284602F00AF894F90130B046677814 +:101EB000002BB8BF7F2704EB07094C4508D1073634 +:101EC000082010FB0760C008BDE8F8830826EBE790 +:101ED000A31C41460822284608F10808013401F0F5 +:101EE000EDFFEAE72DE9F0410D46044616460021D4 +:101EF000CE222846FFF778FD2346282200212846D7 +:101F000001F0DCFFBEB9302604F1080308222821C5 +:101F1000284601F0D3FF14F8080F0027C82828BF6F +:101F2000C8208046B84506EBC70106D806EBC800B6 +:101F3000C008BDE8F0812826EDE7013708222846D1 +:101F4000E31901F0BBFFEDE7F7B5047F05460E4648 +:101F500034B1838AB3F5827F02D9012003B0F0BD8A +:101F60000123102200212846009601F06BFEDCB907 +:101F7000B31C09221021284600932346192401F09E +:101F800061FE7388B3F5807FE7D83746BB1B728844 +:101F9000934210D307342B7FA88AE408B3B9844254 +:101FA00094BF00200120D9E7AB8A1024DB00103B4E +:101FB000DB087380E5E73B1D214608222846009395 +:101FC00000230834013701F03DFEDFE7201A18BF77 +:101FD0000120C3E730B50A44084D91420DD011F8F5 +:101FE000013B5840082340F30004013B2C4013F010 +:101FF000FF0384EA5000F6D1EFE730BD2083B8ED4F +:10200000F7B5384A6B46106851686A4603C308231F +:102010003549364804F084FB0446002833D10A25AC +:10202000334A6B46106851686A4603C30823314936 +:102030002E4804F075FB0446002849D00369B3F527 +:10204000E01F45D8B0F8661040F2134291423FD1EC +:10205000294A024402F15C018B4239D35C3B23499B +:1020600000209E1AFFF7B6FF04F1640107463246CE +:102070000020FFF7AFFFA3689F4229D1E368984291 +:1020800008BF002524E00369B3F5E01F27D8418B82 +:1020900040F21342914220D1174A024402F110014A +:1020A0008B4218D3103B114900209D1AFFF792FF75 +:1020B00004F1180106462A460020FFF78BFFA368AB +:1020C0009E4202D1E368984201D00D25A8E7002581 +:1020D000284603B0F0BD1025A2E70C25A0E70B258C +:1020E0009EE700BFC8670008DCFF1B000000040873 +:1020F000D167000890FF1B000800FCF710B5037CB7 +:10210000044613B9006803F013FC204610BD00001C +:102110000023BFF35B8FC360BFF35B8FBFF35B8FA5 +:102120008360BFF35B8F7047BFF35B8F0068BFF3C3 +:102130005B8F704770B505460C30FFF7F5FF04461E +:1021400005F108063046FFF7EFFFA04206D96D689B +:102150003046FFF7E9FF2544281A70BD3046FFF7E7 +:10216000E3FF201AF9E7000070B505464068A0B10A +:1021700005F10C0605F10800FFF7D6FF04463046CE +:10218000FFF7D2FF844204F1FF34304694BF6D68FC +:102190000025FFF7C9FF2C44201A70BD38B50C4646 +:1021A0000546FFF7C7FFA04210D305F10800FFF76F +:1021B000BBFF04446868BFF35B8FB4FBF0F100FB26 +:1021C00011440120AC60BFF35B8F38BD0020FCE7F9 +:1021D0002DE9F041144607460D46FFF7C5FF84423E +:1021E00028BF0446D4B1B84658F80C6B4046FFF7F8 +:1021F0009BFF3044286040467E68FFF795FF331A06 +:102200009C4203D801206C60BDE8F081A41B6B6088 +:102210003B682044AB60E8600220F5E72046F3E726 +:1022200038B50C460546FFF79FFFA04210D305F1D5 +:102230000C00FFF779FF04446868BFF35B8FB4FBC1 +:10224000F0F100FB11440120EC60BFF35B8F38BD5F +:102250000020FCE72DE9FF418846694607466C46A9 +:10226000FFF7B6FF002506B204EBC606B4420AD05B +:10227000626808EB050120680834FFF7A3FB54F8F7 +:10228000043C1D44F2E729463846FFF7C9FF2846BB +:1022900004B0BDE8F0810000F8B505460C300F46EB +:1022A000FFF742FF05F1080604463046FFF73CFF02 +:1022B000A042304688BF6C68FFF736FF201A3860AE +:1022C00020B12C683046FFF72FFF2044F8BD0000F6 +:1022D00073B5144606460D46FFF72CFF8442019065 +:1022E00028BF0446DCB101A93046FFF7D5FF019BAA +:1022F00033B93268C5E90233C5E9002401200CE096 +:102300009C42286038BF0194019884426860F5D9E6 +:102310003368241A0220AB60EC6002B070BD204626 +:10232000FBE700002DE9FF410F4669466C46FFF7C9 +:10233000CFFF00B2002604EBC005AC4209D0D4F8B0 +:102340000480B81954F8081B42464644FFF73AFB8C +:10235000F3E7304604B0BDE8F081000038B505462B +:10236000FFF7E0FF044601462846FFF717FF204627 +:1023700038BD000008B103F0DBBA704770470000B9 +:1023800010B41346026814680022A4465DF8044B9A +:102390006047000000F5805090F859047047000035 +:1023A00000F5805090F852047047000000F580500E +:1023B00090F95804704700004E207047302383F393 +:1023C000118800F58052D2F89C34D2F89804184451 +:1023D000D2F894341844D2F87C341844D2F88C34AF +:1023E0001844D2F888341844002383F311887047C6 +:1023F00000F58050C0F85414012070472DE9F04FCB +:102400000C4600F5805185B01F4691F852340546C0 +:102410009046BDF838909BB1D1F878340133C1F8BB +:1024200078342368980006D4237B082B0BD9627B71 +:102430000AB10F2B07D9D1F87C340133C1F87C34B1 +:102440004FF0FF3010E0302383F31188EB6AD3F8AC +:10245000C42012F4001B0AD0D1F8803400200133CC +:10246000C1F8803480F3118805B0BDE8F08F206892 +:102470004822D3F8C4300028C3F3044A6B6AB4BFBF +:1024800040F08040800412FB0A334FEA4A1618607D +:10249000226852004FEA0A6244BF40F000501860C0 +:1024A000207B42EA00425A60607B10B342F4401243 +:1024B0005A60D1F8B0240132C1F8B024AA1902F54B +:1024C0008352117B41F020011173207B039300F0B4 +:1024D000E3FF0330039B80105FFA8BF20BF1010BDB +:1024E00082420DDA04EB820103EB820249689160BB +:1024F000F2E7AA1902F58352117B60F34511E3E775 +:102500000122EB6A05EB4A1102FA0AF201F5825147 +:10251000C3F8D020AB19183104F10C0203F5825333 +:10252000C3E90487234653F8040B934241F8040B94 +:10253000F9D11B882E440B8041F2680346F803A0B2 +:1025400006F5805609F0030396F86C2043F010035B +:1025500022F01F02134386F86C30002383F31188A6 +:1025600042463B4621462846CDF8009000F05AFFEF +:10257000012079E72DE9F04700F58056044696F8EA +:102580005254002D40F00381037C032B40F09480D3 +:1025900028462B462F465FFA80FC944510DA01EB63 +:1025A000CC0E51F83CC0BCF1000F04DBDEF804C0D7 +:1025B000BCF1000F02DB01370130ECE70133FBE730 +:1025C000302080F31188E06AF3B9D0F8803043F00E +:1025D0000203C0F880304E23E06A002F6FD1D0F89C +:1025E000803043F00103C0F880306A4B6A4A1B68B0 +:1025F00003F1805303F52C539B009342A36240F2F6 +:10260000B080664800F0E6FE4D2B42D8DFF88481AA +:102610004FEA034EDFF88891D8F800C04EEA8C0EDE +:10262000C0F884E00CF1805000F52C50800060610F +:1026300003EB0C00D4F82CC0C3F14E03C8F8000023 +:10264000DCF8800040F03000CCF880004FF0000C47 +:10265000D4F81480E6465FFA8CF08242BCDD01EBD0 +:10266000C00A51F83000002810DBDAF804A0BAF1F3 +:10267000000F0BDA09EA00400AF07F0A40EA0A007C +:1026800040F0084048F82E000EF1010E0CF1010C4C +:10269000E1E7836923F00103836100F0A1FE0646B0 +:1026A000E36A9B69D90704D500F09AFE831BFA2BD5 +:1026B000F6D9002383F311882846BDE8F087B7EBED +:1026C000530F3DD2DFF8CCE04FEA074CDEF8003084 +:1026D0004CEA830CC0F888C003F1805003EB470339 +:1026E000002700F52C50CEF80030BC468000A061D9 +:1026F000E06AD0F8803043F00C03C0F88030D4F8A2 +:1027000018E0FBB29A427FF770AF51F8330001EB4B +:10271000C3080028D8F8043001DB002B0EDB20F0C2 +:10272000604023F0604340F0005043F000434EF817 +:102730003C000EEBCC000CF1010C43600137E0E7EC +:10274000836923F00103836100F04AFE0646E36AD1 +:102750009B69DA07ADD500F043FE831BFA2BF6D94F +:10276000A7E7E26A936923F00103936100F038FE62 +:102770000746E36A9B69DB0705D500F031FEC31B02 +:10278000FA2BF6D995E7012586F8525491E70025F2 +:1027900092E700BFBC630020FCB50040DC67000886 +:1027A0000000FF0713B500F580540191606CFFF73E +:1027B000DBFC1F280AD920220199606CFFF74AFD33 +:1027C000A0F120035842584102B010BD0020FBE7A1 +:1027D00008B5302383F3118800F58050406CFFF773 +:1027E00097FC002383F3118808BD000000220260DB +:1027F00082814260826070470022002310B5C0E9E8 +:102800000023002304460C3020F8043CFFF7EEFFC1 +:10281000204610BD2DE9F0479A4688B00746884605 +:102820009146302383F3118807F580546846FFF7FB +:10283000E3FF606CFFF77EFC1F282ED9202269463B +:10284000606CFFF78BFD202827D194F8523423B316 +:1028500003AD444605AB2E46083403CE9E4244F8F1 +:10286000080C44F8041C3546F5D130682060B38864 +:10287000A380DDE90023C9E90023BDF80830AAF8E8 +:102880000030002383F3118853464A4641463846B8 +:1028900008B0BDE8F04700F0B3BD002080F3118818 +:1028A00008B0BDE8F08700002DE9F84F0023064688 +:1028B00000F58154054688461034C0E90133274BA2 +:1028C00046F8303B374638462037FFF795FFA7429A +:1028D000F9D105F580544FF4805305F5A3594FF015 +:1028E000000A26630026676405F5835709F110097D +:1028F0004FF0000B1037E663C4E90D36012384F86E +:10290000403084F84830A7F11800203747E910AB71 +:10291000FFF76CFF47F8286C4F45F4D1B8F1010F71 +:1029200084F85884A4F85A64A4F85C64A4F85E643B +:1029300084F86064A4F86264A4F86464A4F866642B +:1029400084F8686402D9064800F044FD054B284627 +:1029500053F82830EB62BDE8F88F00BF2C68000800 +:10296000006800081C680008044B10B5197804467C +:102970004A1C1A70FFF798FF204610BDB96300206B +:102980002DE9F04300295AD02E4E2F48B6FBF1F422 +:1029900081428CBF0A201120431EB4FBF0F700FBDC +:1029A0001740DDB220B1022B1846F5D8002032E0E6 +:1029B0007B1EB3F5806F2ED2C5EBC5084FF47A733A +:1029C00008F103044FEAE40EC4F3C7040EF1010951 +:1029D000281B0EFB033E5FFA80FC59FA80F0BEFB19 +:1029E000F0F0B0F5617F18DC83B2601C5CFA80F017 +:1029F0007843B6FBF0F08142D8D1611E0F29D5D8BB +:102A00000CF1FF310729D1D80120138057801071B4 +:102A1000547182F806C0BDE8F08308F1FF34E0107D +:102A2000C4F3C70400F1010E2D1B00FB03335FFA52 +:102A300085FC5EFA85F5B3FBF5F39BB2D5E7084656 +:102A4000E9E700BF00B4C4043F420F0030B50D4BAE +:102A500005200D4D1C786C438C420ED15978012015 +:102A6000518099785171D9789171197911715B7987 +:102A700003EB83035B00138030BD013803F10603D1 +:102A8000E8D1F9E76C68000840420F0038B540F221 +:102A90007772C36A154CC3F8BC200722C36AC3F817 +:102AA000C8202268C16A930043F4C023C1F8A03053 +:102AB00002F1805302F16C01C56A03F52C53EA322E +:102AC00089009B00226041F0E061094AC361C5F8BA +:102AD000C01003F5D87103F56A73416293428362B3 +:102AE00002D9044800F076FC38BD00BFBC6300206A +:102AF000FCB50040DC6700082DE9F04F00F580557B +:102B00001F4689B0044695F8583489469046022BF2 +:102B100004D90026304609B0BDE8F08FA84A52F823 +:102B2000231009B942F82300A648C4F80C90017894 +:102B30002774C9B9302383F31188A34BD3F8EC2051 +:102B400042F48072C3F8EC20D3F8942042F48072EF +:102B5000C3F89420D3F8942022F48072C3F8942010 +:102B60000123037081F3118895F851347BB9302328 +:102B700083F31188954A95F85834D35C0BB3012B35 +:102B800028D0012385F85134002383F311883023A2 +:102B900083F31188E26A936923F01003936100F0D4 +:102BA0001FFC8246E36A9E6916F0080619D000F001 +:102BB00017FCA0EB0A03FA2BF4D9002686F3118840 +:102BC000A8E70321132002F03FF80321152002F0AB +:102BD0003BF8D6E70321142002F036F80321162033 +:102BE000F5E79A6942F001029A6100F0F9FB82462A +:102BF000E36A9A69D00706D400F0F2FBA0EB0A035F +:102C0000FA2BF5D9D9E79A694FF0000A42F002028F +:102C10009A61E36AC3F854A08AF3118804F5825BD1 +:102C2000686CFFF775FA0BF1100B20220021684643 +:102C3000FEF7DAFE02A8FFF7D9FD6A460BEB0603A2 +:102C40000DF1180ECDF818A094460833BCE8030027 +:102C5000F44543F8080C43F8041C6246F4D1DCF850 +:102C6000000020361860B6F5806F9CF804201A71B9 +:102C7000DBD1002304F5A252494620461A3285F8DA +:102C8000503485F85334FFF77BFE064690B9E26A6C +:102C9000936923F00103936100F0A2FB0546E36A08 +:102CA0009B69D9077FF535AF00F09AFB431BFA2BE0 +:102CB000F5D92EE795F85E34C5F86C94591E95F851 +:102CC0005F34E26A013B1B0243EA416395F86014FA +:102CD00001390B43B5F85C14013943EA0143D36170 +:102CE000B8F1000F36D004F5A35241462046023217 +:102CF000FFF7ACFE90B9E26A936923F00103936198 +:102D000000F06EFB0546E36A9B69DA077FF501AFC9 +:102D100000F066FB431BFA2BF5D9FAE695F8672419 +:102D2000C5F87084511E95F86824E36A013A1201CF +:102D300042EA012295F8661401390A43B5F8641491 +:102D4000013942EA014242F40002DA604FF42062A3 +:102D5000E36A9A64E36A4FF000082046C3F8BC8037 +:102D6000FFF794FE85F859846FF04042E36A1A65D4 +:102D7000174AE36A5A654FF00222E36A9A654FF0F8 +:102D8000FF32E36AC3F8E0200322E36A9742DA6580 +:102D90003FF4C0AEE26A936923F00103936100F04F +:102DA0001FFB0746E36A9B69DB0705D500F018FBAC +:102DB000C31BFA2BF6D9ACE6012385F85234A9E6F9 +:102DC000B0630020B8630020004402581468000873 +:102DD000550200022DE9F04F054689B0904699460C +:102DE000002741F2680A00F58056EB6AD3F8D83024 +:102DF000FB40D80751D505EB47124FEA471B524419 +:102E00001379190749D4D6F884340133C6F88434C9 +:102E100005F5A553C3E9008913799A0605EB0B0262 +:102E200048BFD6F8B434524444BF0133C6F8B43472 +:102E3000137943F008031371DB0723D596F8533455 +:102E400003B305F582546846FFF7D6FC03AB18348C +:102E50005C4404F1080C2068083454F8041C1A4639 +:102E6000644503C21346F6D12068694610602846BF +:102E7000A2889A800123ADF808302B68CDE900893B +:102E8000DB6B9847D6F8A834D6F854040133C6F85B +:102E9000A83410B103681B6998470137202FA4D1CB +:102EA00009B0BDE8F08F00002DE9F04F0F468DB05E +:102EB000044600F097FA82468946002F5BD1E36A08 +:102EC000D3F8A02012F4FE0F03D100200DB0BDE80E +:102ED000F08FD3F8A420920141BF04F58051D1F8BE +:102EE00098240132C1F89824D3F8A4205606ECD0D7 +:102EF000D3F8A450E669C5F305254823E8464FF00A +:102F0000000B03FB05664046FFF770FC326851007A +:102F10004ABF22F06043C2F38A4343F00043920069 +:102F200048BF43F080430093736813F400131BBF42 +:102F3000012304F580528DF80D308DF80D301EBF41 +:102F4000D2F8B8340133C2F8B834F38803F00F0371 +:102F50008DF80C309DF80C0000F09EFA5FFA8BF3B0 +:102F6000984225D9F2180CA90BF1010B127A0B44E7 +:102F700003F82C2CEEE7012FA7D1E36AD3F8B02099 +:102F800012F4FE0FA1D0D3F8B420950141BF04F58F +:102F90008051D1F898240132C1F89824D3F8B42094 +:102FA000500692D0D3F8B450266AC5F30525A4E79D +:102FB000EFB9E36AC3F8A85004A807ADFFF71CFCFB +:102FC00098E80F0007C52B800023204604A9ADF820 +:102FD0001830236804F58054DB6BCDE904A99847C9 +:102FE00058B1D4F890340133C4F890346EE7012F0F +:102FF000E2D1E36AC3F8B850DEE7D4F89434012094 +:103000000133C4F8943461E72DE9F04105460F46D9 +:1030100000F58054012639462846FFF745FF10B1D8 +:1030200084F85364F7E7D4F8A834D4F8540401338F +:10303000C4F8A83420B10368BDE8F0411B69184703 +:10304000BDE8F081C36AF0B51A6C12F47F0F2BD083 +:103050001B6C00F5805441F268054FF0010CC4F878 +:10306000AC340023471900EB43125E012A44117966 +:1030700011F0020F15D0490713D4B959C66A0CFADA +:1030800001F1D6F8CCE011EA0E0F0AD0C6F8D41040 +:10309000117941F004011171D4F88C240132C4F883 +:1030A0008C240133202BDED1F0BD00002B4B70B5FA +:1030B0001E561B5C012B30D8294D2A4A55F8233067 +:1030C00052F8264013B349B3236D9A0510D54FF437 +:1030D0000073236500F086F950EA01020B4602D026 +:1030E000013861F10003024655F82600FFF772FE31 +:1030F000236D9B012CD54FF0007255F826302265C8 +:1031000003F58053012283F8592421E0012323652C +:10311000102323654FF48053236570BD236DDA07B8 +:1031200002D4236D5B0706D50523002155F8260040 +:103130002365FFF769FF236DD80602D4236D590676 +:1031400006D55023012155F826002365FFF75CFFC3 +:1031500055F82600BDE87040FFF774BF18680008F6 +:10316000B06300201C68000808B5302383F3118881 +:10317000FFF768FF002383F3118808BDC36AD3F803 +:10318000C00010F07C5005D0D3F8C40080F40010CB +:10319000C0F340507047000008B5302383F3118816 +:1031A00000F58050406CFEF7C5FF002383F31188C3 +:1031B00043090CBF0120002008BD000000F580532A +:1031C00093F8592462B1C16A8A6922F001028A61C6 +:1031D000D3F89C240132C3F89C24002283F859249C +:1031E000704700002DE9F743302181F3118800F585 +:1031F0008251002541F2680E4FF00108103100F5B0 +:10320000805C00EB45147444267977071CD4F606DD +:103210001AD58E69D0F82C9008FA06F6D9F8CC7039 +:103220003E4211D04F6801970F689742019F9F411E +:103230000AD2C9F8D460267946F004062671DCF873 +:1032400088440134CCF8884401352031202DD8D170 +:10325000002383F3118803B0BDE8F083F8B51E4660 +:1032600000230F46054613701446FFF795FF80F0C4 +:10327000010038701EB12846FFF780FF2070F8BDAE +:103280002DE9F04F85B099460D468046164691F8D7 +:1032900000B0DDE90EA302931378019300F0A2F8C9 +:1032A0002B7804460F4613B93378002B41D02246C1 +:1032B0003B464046FFF796FFFFF756FFFFF77EFFBE +:1032C0004B4632462946FFF7C9FF2B7833B1BBF195 +:1032D000000F03D0012005B0BDE8F08F337813B1A3 +:1032E000019B002BF6D108F5805303935445029BB4 +:1032F00077EB03031DD2039BD3F85404C8B10368D2 +:10330000AAEB04011B6898474B46324629464046C3 +:10331000FFF7A4FF2B7813B1BBF1000FDAD133789C +:1033200013B1019B002BD5D100F05CF804460F4689 +:10333000DCE70020CFE70000002108B50846FFF7D2 +:10334000B5FEBDE8084001F071B8000008B50121E4 +:103350000020FFF7ABFEBDE8084001F067B80000B1 +:1033600008B500210120FFF7A1FEBDE8084001F0EB +:103370005DB80000012108B50846FFF797FEBDE8DB +:10338000084001F053B8000000B59BB0EFF309818D +:1033900068226846FEF716FBEFF30583014B9B6B33 +:1033A000FEE700BF00ED00E008B5FFF7EDFF00000D +:1033B00000B59BB0EFF3098168226846FEF702FB77 +:1033C000EFF30583014B5B6BFEE700BF00ED00E010 +:1033D000FEE700000FB408B5029801F0E9FEFEE731 +:1033E00002F0D4BA02F0B6BA13B56C46031D84E8F5 +:1033F000060094E8030083E80500012002B010BD38 +:1034000073B58568019155B11B885B0707D4D0E976 +:1034100000369B6B9847019AC1B23046A8470120FD +:1034200002B070BDF0B5866889B005460C465EB145 +:10343000BDF838305B070AD4D0E900379B6B98475A +:103440002246C1B23846B047012009B0F0BD002283 +:10345000002301F10806CDE9002300230A46ADF858 +:10346000083003AB1068083252F8041C1C46B24204 +:1034700003C42346F6D1106820609288A280FFF72B +:10348000B1FF0423ADF808302B68CDE90001DB6BF8 +:10349000694628469847D7E7082817D909280CD045 +:1034A0000A280CD00B280CD00C280CD00D280CD0DE +:1034B0000E2814BF4020302070470C207047102089 +:1034C0007047142070471820704720207047000074 +:1034D0002DE9F041456A15B94162BDE8F0814B68BC +:1034E000AC4623F06047C3F38A464FEAD37EC3F36A +:1034F000807816EA230638BF3E462B465A68BEEB54 +:10350000D27F22F060440AD0002A18DAA40CB44218 +:1035100017D19D420FD10D60DEE71346EEE7A742BB +:1035200007D102F08044C2F3807242450BD054B1FF +:10353000EFE708D2EDE7CCF800100B60CDE7B4421E +:1035400001D0B442E5D81A689C46002AE5D119603A +:10355000C3E700002DE9F047089D01F0070400EBE8 +:10356000D1004FF47F494FEAD508224405F0070502 +:10357000944201D1BDE8F08704F0070705F0070A7F +:10358000111B08EBD50E57453E4613F80EC038BF49 +:103590005646C6F108068E4228BF0E46E108415C39 +:1035A00034443544B94029FA06F721FA0AF1FFB24A +:1035B0008CEA010147FA0AF739408CEA010C03F85A +:1035C0000EC0D5E780EA0120082341F2210201B2B2 +:1035D000013B4000002980B2B8BF504013F0FF0308 +:1035E000F5D1704738B50C468D18A54200D138BDCD +:1035F00014F8011BFFF7E6FFF7E7000042684AB145 +:10360000136881894360438901339BB299424381A6 +:1036100038BF83811046704770B588B004462022B9 +:103620000D4668460021FEF7DFF920460495FFF7B6 +:10363000E5FF024660B16B46054608AE1C460835FC +:1036400003CCB44245F8080C45F8041C2346F5D1D8 +:10365000104608B070BD0000082817D909280CD002 +:103660000A280CD00B280CD00C280CD00D280CD01C +:103670000E2814BF4020302070470C2070471020C7 +:1036800070471420704718207047202070470000B2 +:10369000082817D90C280CD910280CD914280CD9B3 +:1036A00018280CD920280CD930288CBF0F200E20C8 +:1036B0007047092070470A2070470B2070470C2084 +:1036C00070470D20704700002DE9F843078C044631 +:1036D000072F1ED900254FF6FF73D0E90298C5F1D8 +:1036E0002006A5F1200029FA05F1083508FA06F6AA +:1036F00028FA00F0314301431846C9B2FFF762FFD0 +:10370000402D0346EBD13A46E169BDE8F843FFF7A7 +:1037100069BF4FF6FF70BDE8F883000010B54B6835 +:1037200023B9CA8A63F30902CA8210BD04691A6800 +:103730001C600361C38A013BC3824A60EFE700005B +:103740002DE9F84F1D46CB8A0F468146C3F3090188 +:10375000924605290B4630D00020AAB207F11A0480 +:103760009EB21FFA80F8042E0FD8904503F1010392 +:1037700006D30A44FB8A62F309030120FB821AE0A4 +:103780001AF800600130E654EAE79045F1D2A1F161 +:10379000050B1C237C68BBFBF3F203FB12BB1FFA77 +:1037A0008BF6002C45D14846FFF728FF044638B970 +:1037B00078606FF00200BDE8F88F4FF00008E6E790 +:1037C000002606607860ADB24FF0000B454510D979 +:1037D0000AEB0803221D13F8011B08F1010891559B +:1037E000B1B21FFA88F81B292BD0454506F1010616 +:1037F000F1D8FB8AC3F30902154465F30903BCE75A +:1038000001321C4692B22368002BF9D16B1F0B4486 +:103810001C21B3FBF1F301339BB29A42D3D2BBF12B +:10382000000FD0D14846FFF7E9FE20B9C4F800B038 +:10383000BFE70122E7E7C0F800B05E46206004461B +:10384000C1E74545D5D94846FFF7D8FE08B92060FD +:10385000AFE7C0F800B0002620600446B6E70000DD +:103860002DE9F04F1C46074688462DED028B83B0AC +:103870005B690192002B00F09A80238C2BB1E269E6 +:10388000002A00F09480072B35D807F10C00FFF7D1 +:10389000B5FE054638B96FF00205284603B0BDEC09 +:1038A000028BBDE8F08F14220021FEF79DF8228CD8 +:1038B000E16905F10800FEF785F8208C48F0004129 +:1038C000013080B2FFF7E4FEFFF7C6FE013880B298 +:1038D00020840130287438466369228C1B782A447E +:1038E00003F01F0363F03F03137269602946FFF77B +:1038F000EFFD0125D1E74FF0000900F10C034FF077 +:10390000800A4E464D4608EE103A18EE100AFFF7B0 +:1039100075FE83460028BED014220021FEF764F80D +:10392000002E3AD1019B0222ABF808300BF1080EB1 +:103930001FFA82FC218C0CF10100BCF1060F80B251 +:1039400001D88E422BD3FFF7A3FE8E4208BF4FF063 +:10395000400AFFF781FE62690138013512781BFACF +:1039600080F1013002F01F022DB242EA491289F0C3 +:1039700001094AEA020A48F0004281F808A05946C3 +:103980008BF810003846CBF804204FF0000AFFF700 +:103990009FFD238CB342B8D17FE70022C6E7E169DF +:1039A000895D01360EF80210B6B20132C0E76FF041 +:1039B000010572E7F8B515460E463022002104468F +:1039C0001F46FEF711F8069BB5F5001FA760636060 +:1039D00004F11000079B34BF6A094FF6FF72E661DD +:1039E000A362002397B29A4206D800230360A782FD +:1039F000E3822383E360F8BD06600133304620365E +:103A0000F1E7000003781BB94BB2002BC8BF01706F +:103A10007047000000787047F8B50C46C969074642 +:103A200011B9238C002B37D1257E1F2D34D838783F +:103A300028BB228C072A2CD8268A36F003032BD1E8 +:103A40004FF6FF70FFF7CEFD20F0010031024FF678 +:103A5000FF72400441EA0561400C41EA40252346DB +:103A600029463846FFF7FCFE002807DD6269137817 +:103A70000133DBB21F2B88BF00231370F8BD218AEE +:103A80002D0645EA012505432046FFF71DFE0246A7 +:103A9000E5E76FF00300F1E76FF00100EEE70000EB +:103AA00070B58AB0044616460021282268461D4695 +:103AB000FDF79AFFBDF8383069462046ADF8103062 +:103AC0000F9B05939DF840308DF81830119B07939C +:103AD000BDF84830CDE90265ADF82030FFF79CFF16 +:103AE0000AB070BD2DE9F041D36905460C46164673 +:103AF0000BB9138C5BBB377E1F2F28D895F800803D +:103B0000B8F1000F26D03046FFF7DEFD33782102F2 +:103B10000246284641EAC331338A41EA080141EAB4 +:103B2000076141EA0341334641F08001FFF798FE07 +:103B300000280ADD3378012B07D17269137801332D +:103B4000DBB21F2B88BF00231370BDE8F0816FF03C +:103B50000100FAE76FF00300F7E70000F0B58BB063 +:103B600004460D4617460021282268461E46FDF7EA +:103B70003BFF9DF84C30294620465A1E5342534184 +:103B80006A468DF800309DF84030ADF81030119B3A +:103B900005939DF848308DF81830149B0793BDF8B5 +:103BA0005430CDE90276ADF82030FFF79BFF0BB023 +:103BB000F0BD0000406A00B104307047436A1A68E3 +:103BC000426202691A600361C38A013BC382704783 +:103BD0002DE9F041D0F8208014461D46184E41468C +:103BE000002709B9BDE8F081D1E90223A21A65EBEB +:103BF0000303964277EB03031ED2036A8B420DD177 +:103C0000FFF78CFD036A1B68036203690B60C38ABC +:103C10000161013B016AC3828846E2E7FFF77EFD4E +:103C20000B68C8F8003003690B60C38A0161013B6F +:103C3000C382D8F80010D4E788460968D1E700BFEE +:103C400080841E002DE9F04F8BB00D4614469B4634 +:103C5000DDF850908046002800F01881B9F1000F7F +:103C600000F01481531E3F2B00F21081012A03D172 +:103C7000BBF1000F40F00A810023CDE90833B8F80A +:103C80001430B5EBC30F4FEAC30703D300200BB0CA +:103C9000BDE8F08F2B199F42D8F80C3036BF7F1B40 +:103CA0002746FFB21BB9D8F81030002B7AD0272D49 +:103CB0004DD8C5F1280600232946B742009308AB2A +:103CC000D8F808002CBFF6B23E46A7EB060A3544EA +:103CD00032465FFA8AFAFFF73DFCB8F81430282123 +:103CE00003F10053053BDB000493D8F80C30039339 +:103CF000039B13B1BAF1000F2CD1D8F8100040B1DA +:103D0000BAF1000F05D008AB5246691A0096FFF7CA +:103D100021FC38B2002FB9D066070AD00AAB624244 +:103D200003EBD40102F0070211F8083C134101F83B +:103D3000083C082C3DD9102C40F2B580202C40F2D4 +:103D4000B780BBF1000F00F09C80082335E0BA4635 +:103D50000026C2E7049BE02B28BFE02306930B4418 +:103D6000AB42059315D95A1B0398691A00969245E0 +:103D700008AB00F1040034BF5246D2B20792FFF7FD +:103D8000E9FB079A1644AAEB020A1544F6B25FFA59 +:103D90008AFA049B069A05999B1A0493039B1B6855 +:103DA0000393A5E700933A4608AB2946D8F80800E4 +:103DB000ADE7BBF1000F13D00123B4EBC30F6BD001 +:103DC000082C12D89DF82030621E23FA02F2D50783 +:103DD00006D54FF0FF3202FA04F423438DF8203069 +:103DE0009DF8203089F8003051E7102C12D8BDF82A +:103DF0002030621E23FA02F2D10706D54FF0FF32BF +:103E000002FA04F42343ADF82030BDF82030A9F8BD +:103E100000303CE7202C0FD80899631E21FA03F3E9 +:103E2000DA0705D54FF0FF3202FA04F40C43089488 +:103E3000089BC9F800302AE7402C2AD0611EC4F143 +:103E40002102A4F12103DDE9086526FA01F105FA52 +:103E500002F225FA03F311431943CB0711D50122CE +:103E6000A4F12003C4F1200102FA03F322FA01F1C4 +:103E7000A2400B43524263EB430332432B43CDE951 +:103E80000823DDE90823C9E9002300E76FF00100FA +:103E9000FDE66FF00800FAE6082CA1D9102CB4D981 +:103EA000202CEED8C4E7BBF1000FAED0022384E78C +:103EB000BBF1000FBCD004237FE70000012A30B51E +:103EC000144638BF012485B00025402C28BF40246B +:103ED000012ACDE9025518D81B788DF80830630700 +:103EE0000AD004AB624203EBD40502F0070215F8D6 +:103EF000083C934005F8083C034600912246002107 +:103F000002A8FFF727FB05B030BD082AE4D9102A24 +:103F100003D81B88ADF80830E1E7202A95BF1B685D +:103F2000D3E900230293CDE90223D8E710B5CB688B +:103F30001BB98B600B618B8210BD04691A681C6011 +:103F40000361C38A013BC382CA60F0E703064CBF2A +:103F5000C0F3C0300220704708B50246FFF7F6FFF5 +:103F6000022806D15306C2F30F2001D100F003004E +:103F700008BDC2F30740FBE72DE9F04F93B00446BC +:103F80000D46CDE903230A681046FFF7DFFF02283C +:103F9000824614BFC2F306260026002A80F2F8816A +:103FA00012F0C04940F0F481097B002900F0F08153 +:103FB000022803D02378B34240F0ED81C2F30463BA +:103FC00010462944069302F07F030593FFF7C4FFD0 +:103FD000059B002283464FEA8348002348EA0A48AB +:103FE00048EA4668CE78CDE90823F30948EA000894 +:103FF000029368D0059B024608A9204600935346C9 +:104000006768B847002800F0C981276A4FB9414660 +:1040100004F10C00FFF700FB074690B96FF00200B7 +:1040200055E03B6998450DD03F68002FF9D14146D6 +:1040300004F10C00FFF7F0FA07460028EED0236ADF +:104040003B60276297F817C006F01F08CCF3840C7A +:10405000ACEB0800A8EB0C031FFA80FE0028B8BFE9 +:104060000EF120001FFA83FEB8BF00B2002B0793A9 +:10407000B8BF0EF12003D7E90221BCBF1BB20793E2 +:1040800052EA010338D0039B4FF0000CDFF81CE329 +:104090009A1A049B63EB010196457CEB01032BD339 +:1040A0006B7B97F81AE0734519D1029B002B78D0EF +:1040B000012821DC7868F8B9DFF8ECC2944570EB90 +:1040C000010316D337E0276A27B96FF00C0013B04D +:1040D000BDE8F08F3B699845B4D03F68F4E7B2483B +:1040E00090427CEB010301D30020F0E7029B002B00 +:1040F000FAD0079B0F2B17DCFA7DB3003946204618 +:1041000002F0030203F07C031343FB75FFF706FB89 +:104110006B7BBB76029B3BB9FB7DC3F38402013210 +:1041200062F38603FB75D0E76A7BBB7E9A42DBD1E4 +:10413000029B002B35D0B309022B32D0039B1422F3 +:1041400000210DA8BB60049BFB60FDF74DFC039BA9 +:104150000AA920460A93049BADF83EB00B932B1D91 +:104160008DF840A00C932B7B8DF84180013BDBB296 +:10417000ADF83C30069B8DF84230059B8DF84330FE +:1041800094F82C3083F001038DF84430A3689847ED +:10419000FB7DC3F38403013303F01F039B02FB8207 +:1041A000A2E7FB7DC6F34012B2EBD31F40F0F980CB +:1041B000C3F38403434540F0FB80029AB6092B7B8E +:1041C000002A52D016F0010661D1032B40F2F38091 +:1041D000039B394604F10C00BB60049BFB60FB8A27 +:1041E00066F30903AE1DFB8232462B7B033BDBB239 +:1041F000FFF7A6FA00280CDA39462046FFF78EFAB8 +:10420000FB7DC3F38403013303F01F039B02FB8296 +:1042100004E7AB88DDE908843B834FF6FF73C9F1FF +:104220002000A9F1200228FA09F109F1080904FA8D +:1042300000F024FA02F2014318461143C9B2FFF715 +:10424000C1F9B9F1400F0346E9D1B88231462A7B62 +:10425000033AD2B2FFF7C6F9FB7DB882DA43C2F364 +:10426000C01262F3C713FB753EE786B92E1D013BF2 +:10427000394604F10C00DBB23246FFF761FA002840 +:10428000BADB2A7B3146B88A013AD2B2E2E7F98A30 +:10429000013BC1F30901DAB204295BD8281D0023D0 +:1042A00007F11B069A4208D910F801CB013306F832 +:1042B00001C00131DBB20529F4D1039993420A917F +:1042C00038BF043304992CBF002355FA83F30B91B4 +:1042D00007F11B010C9179680E930D91291DFB8A42 +:1042E000ADF83EB0C3F309038DF840A08DF84180CE +:1042F0001A44069B8DF84230059BADF83C208DF8A2 +:10430000433094F82C3083F001038DF844300023BF +:10431000B88A7B602A7B013AFFF764F93B8BB8824D +:10432000834203D1A3680AA92046984720460AA9D8 +:10433000FFF7FCFDFB7DBA8AC3F38403013303F06E +:104340001F039B02FB823B8B9A420CBF00206FF045 +:104350001000BCE67B68002BAFD0052001E01C30CC +:1043600033461E68002EFAD1091A2E1D081D184466 +:1043700001EB090C5FFA89F3BCF11B0F9DD89A423F +:104380009BD916F8013B09F1010900F8013BEFE761 +:104390006FF009009BE66FF00A0098E66FF00B00E3 +:1043A00095E66FF00D0092E640420F0080841E00FB +:1043B0006FF00E008BE66FF00F0088E6EFF30983D5 +:1043C000054968334A6B22F001024A6383F3098886 +:1043D000002383F31188704700EF00E0302080F362 +:1043E000118862B60D4B0E4AD96821F4E0610904C8 +:1043F000090C0A430B49DA60D3F8FC2042F08072C2 +:10440000C3F8FC20084AC2F8B01F116841F001014E +:1044100011602022DA7783F82200704700ED00E077 +:104420000003FA0555CEACC5001000E0302310B5EE +:1044300083F311880E4B5B6813F4006314D0F1EE24 +:10444000103AEFF309844FF08073683CE361094B45 +:10445000DB6B236684F3098800F070FE10B1064B15 +:10446000A36110BD054BFBE783F31188F9E700BF9B +:1044700000ED00E000EF00E03F0400084204000807 +:1044800008B5074B074A196801F03D019960536868 +:104490000BB190689847BDE80840FFF7C7BF00BF61 +:1044A00000000240C463002008B5084B1968890960 +:1044B00001F03D018A019A60054AD3680BB1106989 +:1044C0009847BDE80840FFF7B1BF00BF00000240B9 +:1044D000C463002008B5084B1968090C01F03D01C0 +:1044E0000A049A60054A53690BB190699847BDE880 +:1044F0000840FFF79BBF00BF00000240C4630020DC +:1045000008B5084B1968890D01F03D018A059A60CC +:10451000054AD3690BB1106A9847BDE80840FFF718 +:1045200085BF00BF00000240C463002008B5074BF0 +:10453000074A596801F03D01D960536A0BB1906A8E +:104540009847BDE80840FFF771BF00BF0000024078 +:10455000C463002008B5084B5968890901F03D0182 +:104560008A01DA60054AD36A0BB1106B9847BDE83F +:104570000840FFF75BBF00BF00000240C46300209B +:1045800008B5084B5968090C01F03D010A04DA60CE +:10459000054A536B0BB1906B9847BDE80840FFF795 +:1045A00045BF00BF00000240C463002008B5084BAF +:1045B0005968890D01F03D018A05DA60054AD36B1F +:1045C0000BB1106C9847BDE80840FFF72FBF00BF44 +:1045D00000000240C463002008B5074B074A196871 +:1045E00001F03D019960536C0BB1906C9847BDE8A8 +:1045F0000840FFF71BBF00BF00040240C463002057 +:1046000008B5084B1968890901F03D018A019A60D3 +:10461000054AD36C0BB1106D9847BDE80840FFF711 +:1046200005BF00BF00040240C463002008B5084B6A +:104630001968090C01F03D010A049A60054A536D9E +:104640000BB1906D9847BDE80840FFF7EFBE00BF83 +:1046500000040240C463002008B5084B1968890DA6 +:1046600001F03D018A059A60054AD36D0BB1106EC9 +:104670009847BDE80840FFF7D9BE00BF00040240DC +:10468000C463002008B5074B074A596801F03D0193 +:10469000D960536E0BB1906E9847BDE80840FFF7A4 +:1046A000C5BE00BF00040240C463002008B5084B2B +:1046B0005968890901F03D018A01DA60054AD36E23 +:1046C0000BB1106F9847BDE80840FFF7AFBE00BFC1 +:1046D00000040240C463002008B5084B5968090C67 +:1046E00001F03D010A04DA60054A536F0BB1906F87 +:1046F0009847BDE80840FFF799BE00BF000402409C +:10470000C463002008B5084B5968890D01F03D01CC +:104710008A05DA60054AD36F13B1D2F88000984752 +:10472000BDE80840FFF782BE00040240C4630020D9 +:1047300000230C4910B51A460B4C0B6054F82300AB +:10474000026001EB430004334260402BF6D1074A7C +:104750004FF0FF339360D360C2F80834C2F80C34D2 +:1047600010BD00BFC46300208C6800080000024038 +:104770000F28F8B510D9102810D0112811D0122800 +:1047800008D10F240720DFF8B4E00126DEF800503E +:10479000A04208D9002649E00446F4E70F2400208F +:1047A000F1E70724FBE706FA00F73D4240D1214C30 +:1047B0004FEA001C3D4304EB00160EEBC000CEF8A0 +:1047C0000050C0E90123FBB24BB11B48836B43F09F +:1047D00001038363036E43F001030366036E17F462 +:1047E0007F4F09D01448836B43F002038363036E49 +:1047F00043F002030366036E54F80C00036823F0D1 +:104800001F030360056815F00105FBD104EB0C03E1 +:104810003D2493F80CC05F6804FA0CF43C6021243A +:104820000560446112B1987B00F00EFA3046F8BD85 +:104830000130ADE78C68000800450258C4630020D1 +:1048400010B5302484F31188FFF792FF002383F31F +:10485000118810BD10B50446807B00F00BFA0123CF +:104860001049627B03FA02F20B6823EA0203DAB210 +:104870000B604AB90C4A916B21F001019163116EF2 +:1048800021F001011166126E13F47F4F09D1064B1E +:104890009A6B22F002029A631A6E22F002021A66E2 +:1048A0001B6E10BDC46300200045025808B53023BC +:1048B00083F31188FFF7CEFF002383F3118808BD2F +:1048C0000023054A19460133102BC2E9001102F1F9 +:1048D0000802F8D1704700BF486400202DE9F74F67 +:1048E00002F0030AC2F3C313C2F38009C2F3C10882 +:1048F000C2F3411E574600224FF00F0B0193CB0726 +:1049000033D502F00703019C012556009B00BAF144 +:10491000020F05FA02F504FA03FC44680BFA03F3EC +:1049200024EA05046FEA030344EA090444604FF0F3 +:104930000304856804FA06F625EA06056FEA06040C +:1049400045EA08058560C56825EA060545EA0E05BD +:10495000C5601BD1072A13D8056A2B4043EA0C0314 +:10496000036203681C403C430460490822D04FEABC +:10497000490901324FEA88084FEA8E0EBF00BEE7B0 +:10498000456A2B4043EA0C034362EAE70568072ABD +:1049900004EA050444EA0704046005D8046A2340D5 +:1049A00043EA0C030362E0E7446A234043EA0C0352 +:1049B0004362DAE703B0BDE8F08F000002684368A5 +:1049C0001143016003B1184770470000024A1368A1 +:1049D00043F0C0031360704700100140024A13689F +:1049E00043F0C00313607047007C004037B51A4C99 +:1049F0001A4D204600F0E8FA04F114000094002358 +:104A00004FF40072164900F0A5F94FF400721549F1 +:104A100004F138000094144B00F01EFA134BC4E963 +:104A20001735134C204600F0CFFA04F11400002390 +:104A30004FF400720F49009400F08CF90E4B4FF4C4 +:104A400000720E4904F13800009400F005FA0C4B96 +:104A5000C4E9173503B030BDC864002000E1F50596 +:104A6000A0650020A0690020CD4900080010014089 +:104A700034650020A0670020DD490008A06B0020FD +:104A8000007C0040037C30B5284C002918BF0C4640 +:104A9000012B0CD1264B984236D1264B1A6D42F091 +:104AA00010021A659A6F42F010029A679B6F226893 +:104AB000036EC16D03EB52038466B3FBF2F36268CD +:104AC000150442BF23F0070503F0070343EA45033B +:104AD000CB60A36843F040034B60E36843F00103FD +:104AE0008B6042F4967343F001030B604FF0FF3389 +:104AF0000B62510505D512F0102213D0B2F1805F80 +:104B000012D080F8643030BD0B4B9842CFD1094BA6 +:104B10009A6C42F000429A641A6F42F000421A679F +:104B20001B6FC4E77F23ECE73F23EAE78C690008AB +:104B3000C864002000450258346500202DE9F04784 +:104B4000C66D05463768F469210734621AD014F03F +:104B5000080118BF4FF48071E20748BF41F02001FF +:104B6000A3074FF0300348BF41F04001600748BF42 +:104B700041F0800183F31188281DFFF71FFF0023F8 +:104B800083F31188E2050AD5302383F311884FF4AB +:104B90008061281DFFF712FF002383F311884FF077 +:104BA00030094FF0000A14F0200838D13B0616D522 +:104BB0004FF0300905F1380A200610D589F3118825 +:104BC000504600F07DF9002836DA0821281DFFF74D +:104BD000F5FE27F080033360002383F31188790604 +:104BE00014D5620612D5302383F31188D5E9132337 +:104BF0009A4208D12B6C33B127F040071021281DB1 +:104C0000FFF7DCFE3760002383F31188E30618D535 +:104C1000AA6E1369ABB15069BDE8F047184789F334 +:104C20001188736A284695F86410194000F0E6F977 +:104C30008AF31188F469B6E7B06288F31188F469E1 +:104C4000BAE7BDE8F0870000090100F160430122E6 +:104C500003F56143C9B283F8001300F01F039A40C3 +:104C600043099B0003F1604303F56143C3F88021CE +:104C70001A60704700F01F0301229A40430900F1B7 +:104C800060409B0000F5614003F1604303F5614320 +:104C9000C3F88020C3F88021002380F800337047D8 +:104CA000F8B51546826804460B46AA4200D28568CC +:104CB000A1692669761AB5420BD218462A46FCF736 +:104CC00081FEA3692B44A3612846A3685B1BA360F4 +:104CD000F8BD0CD9AF1B18463246FCF773FE3A46B6 +:104CE000E1683044FCF76EFEE3683B44EBE71846AE +:104CF0002A46FCF767FEE368E5E700008368934215 +:104D0000F7B50446154600D28568D4E90460361A22 +:104D1000B5420BD22A46FCF755FE63692B4463610A +:104D20002846A3685B1BA36003B0F0BD0DD93246D3 +:104D3000AF1B0191FCF746FE01993A46E068314409 +:104D4000FCF740FEE3683B44E9E72A46FCF73AFEFD +:104D5000E368E4E710B50A440024C361029B846061 +:104D6000C16002610362C0E90000C0E9051110BD25 +:104D700008B5D0E90532934201D1826882B98268D0 +:104D8000013282605A1C426119700021D0E904325C +:104D90009A4224BFC368436100F076FA002008BD40 +:104DA0004FF0FF30FBE7000070B5302304460E469D +:104DB00083F31188A568A5B1A368A269013BA3602C +:104DC000531CA36115782269934224BFE368A36151 +:104DD000E3690BB120469847002383F311882846E6 +:104DE00007E03146204600F03FFA0028E2DA85F37A +:104DF000118870BD2DE9F74F04460E4617469846B8 +:104E0000D0F81C904FF0300A8AF311884FF0000B55 +:104E1000154665B12A4631462046FFF741FF034655 +:104E200060B94146204600F01FFA0028F1D0002367 +:104E300083F31188781B03B0BDE8F08FB9F1000F40 +:104E400003D001902046C847019B8BF31188ED1ACF +:104E50001E448AF31188DCE7C160C361009B826055 +:104E60000362C0E905111144C0E900000161704707 +:104E7000F8B504460D461646302383F31188A7681B +:104E8000A7B1A368013BA36063695A1C62611D70EE +:104E9000D4E904329A4224BFE3686361E3690BB149 +:104EA00020469847002080F3118807E031462046CD +:104EB00000F0DAF90028E2DA87F31188F8BD000083 +:104EC000D0E9052310B59A4201D182687AB9826887 +:104ED0000021013282605A1C82611C7803699A4267 +:104EE00024BFC368836100F0CFF9204610BD4FF0A6 +:104EF000FF30FBE72DE9F74F04460E46174698466C +:104F0000D0F81C904FF0300A8AF311884FF0000B54 +:104F1000154665B12A4631462046FFF7EFFE0346A7 +:104F200060B94146204600F09FF90028F1D00023E7 +:104F300083F31188781B03B0BDE8F08FB9F1000F3F +:104F400003D001902046C847019B8BF31188ED1ACE +:104F50001E448AF31188DCE702684368114301604C +:104F600003B11847704700001430FFF743BF00003B +:104F70004FF0FF331430FFF73DBF00003830FFF72C +:104F8000B9BF00004FF0FF333830FFF7B3BF000068 +:104F90001430FFF709BF00004FF0FF311430FFF766 +:104FA00003BF00003830FFF763BF00004FF0FF324F +:104FB0003830FFF75DBF0000012914BF6FF0130008 +:104FC00000207047FFF712BD044B036000234360CD +:104FD000C0E9023301230374704700BFA4690008CD +:104FE00010B53023044683F31188FFF74BFD0223ED +:104FF0000020237480F3118810BD000038B5C36908 +:1050000004460D461BB904210844FFF7A5FF2946B5 +:1050100004F11400FFF7ACFE002806DA201D4FF45F +:105020000061BDE83840FFF797BF38BD00238268B4 +:10503000037503691B6899689142FBD25A68036043 +:1050400042601060586070470023826803750369EE +:105050001B6899689142FBD85A68036042601060EF +:105060005860704708B50846302383F311880A7DDD +:105070000023052A06D8DFE802F00B050503120E0F +:10508000826913604FF0FF338361FFF7CFFF002386 +:1050900083F3118808BD8269936801339360D0E976 +:1050A000003213605A60EDE7FFF7C0BF054BD968C7 +:1050B00008751868026853601A600122D86002758A +:1050C000FBF7A8B9A06D00200C4B30B5DD684B1C78 +:1050D00087B004460FD02B46094A684600F066F9AF +:1050E0002046FFF7E3FF009B13B1684600F068F924 +:1050F000A86907B030BDFFF7D9FFF9E7A06D002020 +:105100006550000838B50C4D04468161EB68816834 +:105110009A68914203D8BDE83840FFF787BF184628 +:10512000FFF792FF01230146EC6020462375BDE89E +:105130003840FBF76FB900BFA06D0020044B1A6820 +:10514000DB6890689B68984294BF002001207047FC +:10515000A06D0020084B10B51C68D8682268536009 +:105160001A600122DC602275FFF76EFF01462046BF +:10517000BDE81040FBF74EB9A06D002038B5012303 +:10518000084C00252370656000F0ACFD00F0D2FDF6 +:105190000549064800F0A6FE0223237085F3118816 +:1051A00038BD00BF08700020D0690008A06D002045 +:1051B00008B572B6044B186500F0BEFB00F080FC29 +:1051C000024B03221A70FEE7A06D00200870002039 +:1051D00000F02CB98B600223086108468B8270476F +:1051E0008368A3F1840243F8142C026943F8442C29 +:1051F000426943F8402C094A43F8242CC268A3F1C1 +:10520000200043F8182C022203F80C2C002203F88B +:105210000B2C034A43F8102C704700BF2D040008E4 +:10522000A06D002008B5FFF7DBFFBDE80840FFF7E1 +:105230003BBF0000024BDB6898610F20FFF736BFD1 +:10524000A06D0020302383F31188FFF7F3BF000027 +:1052500008B50146302383F311880820FFF734FF97 +:10526000002383F3118808BD064BDB6839B142681F +:1052700018605A60136043600420FFF725BF4FF0A9 +:10528000FF307047A06D00200368984206D01A686E +:105290000260506018469961FFF706BF7047000032 +:1052A000036810B59C68A2420CD85C688A600B60E9 +:1052B0004C602160596099688A1A9A604FF0FF33F8 +:1052C000836010BD121B1B68ECE700000A2938BF81 +:1052D0000A2170B504460D460A26601900F0FCFC50 +:1052E00000F0E4FC041BA54203D8751C04462E46BE +:1052F000F3E70A2E04D90120BDE8704000F032BE69 +:1053000070BD0000F8B5144B0D460A2A4FF00A078D +:10531000D96103F11001826038BF0A224160196926 +:105320001446016048601861A81800F0C5FC00F040 +:10533000BDFC431B0646A34206D37C1C2819274606 +:10534000354600F0C9FCF2E70A2F04D90120BDE878 +:10535000F84000F007BEF8BDA06D0020F8B5064685 +:105360000D4600F0A3FC0F4A134653F8107F9F42EE +:1053700006D12A4601463046BDE8F840FFF7C2BFD5 +:10538000D169BB68441A2C1928BF2C46A34202D904 +:105390002946FFF79BFF224631460348BDE8F84007 +:1053A000FFF77EBFA06D0020B06D0020C0E9032391 +:1053B000002310B45DF8044B4361FFF7CFBF00003A +:1053C00010B5194C236998420DD08168D0E900329C +:1053D00013605A609A680A449A60002303604FF091 +:1053E000FF33A36110BD0268234643F8102F5360BA +:1053F0000022026022699A4203D1BDE8104000F009 +:1054000065BC936881680B44936000F04FFC22698F +:10541000E1699268441AA242E4D91144BDE81040FF +:10542000091AFFF753BF00BFA06D00202DE9F04718 +:10543000DFF8BC8008F110072C4ED8F8105000F0AF +:1054400035FCD8F81C40AA68031B9A423ED8144485 +:105450004FF00009D5E90032C8F81C4013605A60CB +:10546000C5F80090D8F81030B34201D100F02EFCFE +:1054700089F31188D5E9033128469847302383F30F +:1054800011886B69002BD8D000F010FC6A69A0EB82 +:10549000040982464A450DD2022000F063FD002235 +:1054A000D8F81030B34208D151462846BDE8F0473D +:1054B000FFF728BF121A2244F2E712EB0909294626 +:1054C000384638BF4A46FFF7EBFEB5E7D8F810304C +:1054D000B34208D01444C8F81C00211AA960BDE8E2 +:1054E000F047FFF7F3BEBDE8F08700BFB06D0020C6 +:1054F000A06D002038B500F0D9FB054AD2E9084577 +:10550000031B181945F10001C2E9080138BD00BFAD +:10551000A06D002000207047FEE7000070470000EB +:105520004FF0FF3070470000BFF34F8F044B1A69F4 +:105530005107FCD1D3F810215207F8D1704700BFB2 +:105540000020005208B50D4B1B78ABB9FFF7ECFFFC +:105550000B4BDA68D10704D50A4A5A6002F1883247 +:105560005A60D3F80C21D20706D5064AC3F80421A5 +:1055700002F18832C3F8042108BD00BF107000207A +:10558000002000522301674508B5114B1B78F3B981 +:10559000104B1A69510703D5DA6842F04002DA600D +:1055A000D3F81021520705D5D3F80C2142F0400260 +:1055B000C3F80C21FFF7B8FF064BDA6842F001028E +:1055C000DA60D3F80C2142F00102C3F80C2108BDC7 +:1055D00010700020002000520F289ABF00F5806054 +:1055E00040040020704700004FF400307047000076 +:1055F000102070470F2808B50BD8FFF7EDFF00F516 +:1056000000330268013204D104308342F9D1012011 +:1056100008BD0020FCE700000F2838B505463FD83C +:10562000FFF782FF1F4CFFF78DFF4FF0FF33072876 +:105630006361C4F814311DD82361FFF775FF0302BD +:1056400043F02403E360E36843F08003E3602369ED +:105650005A07FCD42846FFF767FFFFF7BDFF4FF45A +:10566000003100F009FA2846FFF78EFFBDE8384008 +:10567000FFF7C0BFC4F81031FFF756FFA0F10803D1 +:105680001B0243F02403C4F80C31D4F80C3143F06E +:105690008003C4F80C31D4F810315B07FBD4D9E790 +:1056A000002038BD002000522DE9F84F05460C4679 +:1056B000104645EA0203DE0602D00020BDE8F88F5E +:1056C00020F01F00DFF8BCB0DFF8BCA0FFF73AFF06 +:1056D00004EB0008444503D10120FFF755FFEDE737 +:1056E00020222946204601F00BF810B9203520343D +:1056F000F0E72B4605F120021F68791CDDD1043349 +:105700009A42F9D105F178431B481C4EB3F5801F2E +:105710001B4B38BF184603F1F80332BFD946D146B8 +:105720001E46FFF701FF0760A5EB040C336804F188 +:105730001C0143F002033360231FD9F8007017F0F7 +:105740000507FAD153F8042F8B424CF80320F4D10B +:10575000BFF34F8FFFF7E8FE4FF0FF3320222146C3 +:1057600003602846336823F00203336000F0C8FF6B +:105770000028BBD03846B0E7142100520C2000525C +:1057800014200052102000521021005210B5084C75 +:10579000237828B11BB9FFF7D5FE0123237010BD74 +:1057A000002BFCD02070BDE81040FFF7EDBE00BF1D +:1057B000107000202DE9F04F0D4685B0814658B19C +:1057C00011F00D0614BF2022082211F008030193E6 +:1057D00004D0431E03426AD0002435E0002E37D0A7 +:1057E00009F11F0121F01F094FF00108324F05F0A8 +:1057F0000403DFF8D0A005EA080BBBF1000F32D09C +:105800007869C0072FD408F101080C37B8F1060FEA +:10581000F3D19EB9294D4946A819019200F0ACFA7E +:10582000044600283AD11836019A782EF3D1494619 +:1058300000F0A2FA0446002830D1019A49462048D7 +:1058400000F09AFA044668BB204605B0BDE8F08F28 +:105850000029C9D101462846029200F08DFA04467B +:10586000E0B9029AC0E713B178694107CBD5AC071C +:1058700002D578698007C6D5019911B17869010709 +:10588000C1D51820494600FB08A0CDE9022300F04D +:1058900073FA0446DDE902230028B4D04A46002109 +:1058A000204601E04A460021FCF79EF8CCE702467C +:1058B000002E95D198E700BFDC69000844700020F5 +:1058C000147000202C7000200121FFF773BF00002E +:1058D000F8B5144D01241827134E40F2FF32002171 +:1058E0000120FCF781F807FB046001342A6955F8B0 +:1058F0000C1F00F02DFA062CF5D137254FF4C054BB +:105900002046FFF7E1FF014628B122460748BDE8DF +:10591000F84000F01DBAC4EBC404013D4FEAD404C2 +:10592000EED1F8BDDC6900082C7000201470002056 +:1059300008B100F093BA704738B5054D0024033420 +:10594000696855F80C0B00F0A9F8122CF7D138BD96 +:10595000DC69000838B5EFF311859DB9EFF30584D4 +:10596000C4F30804302334B183F31188FFF7C2FD78 +:1059700085F3118838BD83F31188FFF7BBFD84F3ED +:10598000118838BDBDE83840FFF7B4BD10B5FFF74A +:10599000E1FF104CC008104A002340EA4170C908DA +:1059A000A0FB04ECA0FB020E1CEB0000A1FB044CCE +:1059B000A1FB02125B41001943EB0C0011EB0E013D +:1059C00042F10002411842F10000090941EA007069 +:1059D00010BD00BFCFF753E3A59BC4200244074B83 +:1059E000D2B210B5904200D110BD441C00B253F8A1 +:1059F000200041F8040BE0B2F4E700BF504000582B +:105A00000E4B30B51C6F240405D41C6F1C671C6F33 +:105A100044F400441C670A4C02442368D2B243F4A5 +:105A200080732360074B904200D130BD441C51F875 +:105A3000045B00B243F82050E0B2F4E7004402589F +:105A4000004802585040005807B5012201A9002023 +:105A5000FFF7C4FF019803B05DF804FB13B50446DB +:105A6000FFF7F2FFA04205D0012201A90020019416 +:105A7000FFF7C6FF02B010BD0144BFF34F8F064BC6 +:105A8000884204D3BFF34F8FBFF36F8F7047C3F8C3 +:105A90005C022030F4E700BF00ED00E00144BFF3FA +:105AA0004F8F064B884204D3BFF34F8FBFF36F8FE6 +:105AB0007047C3F870022030F4E700BF00ED00E04B +:105AC00070470000114BDA6952021ED59A69D0075F +:105AD00004D50F4A9A6002F144329A600B4BDA699E +:105AE000D107FCD41A6A22F480021A629A6942F041 +:105AF00002029A61DA69D207FCD49A6942F0010283 +:105B00009A61024AD369DB07FCD470470020005237 +:105B10003B2A1908074B45F255521A6002225A6077 +:105B200040F6FF729A604CF6CC421A600122024B9A +:105B30001A70704700480058C0700020034B1B7853 +:105B40001BB1034B4AF6AA221A607047C0700020AE +:105B500000480058034B1A681AB9034AD2F8D024F7 +:105B60001A607047BC70002000400258024B4FF48E +:105B70008032C3F8D02470470040025808B5FFF7C0 +:105B8000E9FF024B1868C0F3806008BDBC700020BC +:105B900070B5BFF34F8FBFF36F8F1A4A0021C2F861 +:105BA0005012BFF34F8FBFF36F8F536943F400332D +:105BB0005361BFF34F8FBFF36F8FC2F88410BFF3F1 +:105BC0004F8FD2F8803043F6E074C3F3C900C3F3BB +:105BD0004E335B0103EA0406014646EA817501394A +:105BE000C2F86052F9D2203B13F1200FF2D1BFF37B +:105BF0004F8F536943F480335361BFF34F8FBFF32B +:105C00006F8F70BD00ED00E0FEE70000214B2248E1 +:105C1000224A70B5904237D3214BC11EDA1C121AAA +:105C200022F003028B4238BF00220021FBF7DCFE8A +:105C30001C4A0023C2F88430BFF34F8FD2F8803063 +:105C400043F6E074C3F3C900C3F34E335B0103EAC8 +:105C50000406014646EA81750139C2F86C52F9D250 +:105C6000203B13F1200FF2D1BFF34F8FBFF36F8FA3 +:105C7000BFF34F8FBFF36F8F0023C2F85032BFF3D3 +:105C80004F8FBFF36F8F70BD53F8041B40F8041B98 +:105C9000C0E700BFA46B0008E4700020E47000209F +:105CA000E470002000ED00E000F05ABA014B586AA1 +:105CB000704700BF000C0040034B002258631A617C +:105CC0000222DA60704700BF000C0040014B002246 +:105CD000DA607047000C0040014B5863704700BF0A +:105CE000000C0040024B034A1A60034A5A60704796 +:105CF000C4700020E870002000000220074B4942D9 +:105D000010B55C68201A08401968821A8A4203D3C9 +:105D1000A24201D85A6010BD0020FCE7C4700020E8 +:105D200008B5302383F31188FFF7E8FF002383F3DE +:105D3000118808BD04480121044B03600023C0E919 +:105D400001330C3000F016B9CC700020215D000842 +:105D5000CB1D083A23F00703591A521A012110B437 +:105D6000D2080024C0E9004384600C301C605A60F3 +:105D70005DF8044B00F0FEB82DE9F84F364ECD1D0E +:105D80000F46002818BF0646082A4FEAD50538BF37 +:105D9000082206F10C08341D9146404600F006F931 +:105DA00009F10701C9F1000E224624686CB940468A +:105DB00000F006F93368CBB308224946E80098475B +:105DC000044698B340E9026730E004EB010CD4F8D4 +:105DD00004A00CEA0E0C0AF10100ACF1080304EB7C +:105DE000C0009842E0D9A0EB0C0CB5EBEC0F4FEAE9 +:105DF000EC0BD9D89C421CD204F10802AB45A3EBB2 +:105E000002024FEAE202626009D9691CED43206890 +:105E100003EBC1025D44556043F8310022601C462B +:105E20005F60404644F8086B00F0CAF82046BDE8C1 +:105E3000F88FAA45216802D111602346EFE70135AA +:105E400004EBC50344F8351003F10801401AC010F3 +:105E500058601360F1E700BFCC700020F8B550F82F +:105E6000043C044650F8085CA0F1080607332F1DD7 +:105E70000C35DB0840F8043C284600F097F83B4618 +:105E80009F421A6801D0B34228D20AB1964225D265 +:105E900044F8082C54F8042C1E60013254F8081CF5 +:105EA00006EBC200814206D14868024444F8042C43 +:105EB0000A6844F8082C5868411C03EBC1018E4263 +:105EC00007D154F8042C013202445A6054F8082CCB +:105ED0001A602846BDE8F84000F072B81346CFE7D4 +:105EE000FEE7000070B51B4B0025044686B05860E5 +:105EF0000E4685620163FEF771FA04F11003A56096 +:105F0000E562C4E904334FF0FF33C4E90044C4E957 +:105F10000635FFF7CBFE2B46024604F1340120463E +:105F2000C4E9082380230C4A2565FFF753F90123B0 +:105F30000A4AE06000920375684672680192B2688E +:105F4000CDE90223064BCDE90435FFF76BF906B026 +:105F500070BD00BF08700020246A0008296A00088C +:105F6000E15E0008024AD36A1843D062704700BF5E +:105F7000A06D0020C0E90000816070478368013B8C +:105F8000002B10B583600CDA074BDC684368A06116 +:105F9000206063601C6044600520FFF787F8A069FB +:105FA00010BD0020FCE700BFA06D002008B5302325 +:105FB00083F31188FFF7E2FF002383F3118808BD04 +:105FC00008B5302383F3118883680133002B836085 +:105FD00007DC036800211A68026050601846FFF76A +:105FE00091F8002383F3118808BD00004B684360DB +:105FF0008B688360CB68C3600B6943614B69036244 +:106000008B6943620B6803607047000008B53C4B26 +:1060100040F2FF713B48D3F888200A43C3F8882038 +:10602000D3F8882022F4FF6222F00702C3F8882008 +:10603000D3F88830344B1A6C0A431A649A6E0A43B8 +:106040009A66324A9B6E1146FFF7D0FF00F58060DA +:1060500002F11C01FFF7CAFF00F5806002F1380170 +:10606000FFF7C4FF00F5806002F15401FFF7BEFFA7 +:1060700000F5806002F17001FFF7B8FF00F5806065 +:1060800002F18C01FFF7B2FF00F5806002F1A80178 +:10609000FFF7ACFF00F5806002F1C401FFF7A6FF37 +:1060A00000F5806002F1E001FFF7A0FF00F58060DD +:1060B00002F1FC01FFF79AFF02F58C7100F5806098 +:1060C000FFF794FF00F00EF9114BD3F8902242F045 +:1060D0000102C3F89022D3F8942242F00102C3F8DF +:1060E00094220522C3F898204FF06052C3F89C20F8 +:1060F000084AC3F8A020BDE80840FFF7E3BC00BF92 +:10610000004402580000025800450258306A000856 +:1061100000ED00E01F00080308B500F0CFFAFFF71C +:106120002DF80C4BDA6B42F04002DA635A6E22F023 +:1061300040025A665B6E084B1A6842F008021A6009 +:106140001A6842F004021A60FFF704FDBDE8084037 +:10615000FFF7BEBB00450258001802487047000018 +:106160000E4B9A6C42F008029A641A6F42F00802D1 +:106170001A670B4A1B6FD36B43F00803D363C72224 +:10618000084B9A624FF0FF32DA6200229A615A633A +:10619000DA605A6001225A611A607047004502585D +:1061A0000010005C000C0040094A08B51169D36872 +:1061B0000B40D9B29B076FEA0101116107D530236B +:1061C00083F31188FFF704F8002383F3118808BDD7 +:1061D000000C0040044BDA6B0243DA635A6E104342 +:1061E00058665B6E704700BF0045025808B53C4BCF +:1061F0004FF0FF31D3F8802062F00042C3F88020D6 +:10620000D3F8802002F00042C3F88020D3F8802029 +:10621000D3F88420C3F88410D3F884200022C3F874 +:106220008420D3F88400D86F40F0FF4040F4FF0092 +:1062300040F4DF4040F07F00D867D86F20F0FF4087 +:1062400020F4FF0020F4DF4020F07F00D867D86FF3 +:10625000D3F888006FEA40506FEA5050C3F88800C6 +:10626000D3F88800C0F30A00C3F88800D3F8880088 +:10627000D3F89000C3F89010D3F89000C3F89020A2 +:10628000D3F89000D3F89400C3F89410D3F8940096 +:10629000C3F89420D3F89400D3F89800C3F898106A +:1062A000D3F89800C3F89820D3F89800D3F88C005E +:1062B000C3F88C10D3F88C00C3F88C20D3F88C0072 +:1062C000D3F89C00C3F89C10D3F89C10C3F89C2012 +:1062D000D3F89C30FEF72CFABDE8084000F0BEB9B8 +:1062E0000044025808B50122504BC3F80821504B16 +:1062F0005A6D42F002025A65DA6F42F00202DA6722 +:106300000422DB6F4B4BDA605A689104FCD54A4A91 +:106310001A6001229A60494ADA6000221A614FF439 +:1063200040429A61434B9A699204FCD51A6842F440 +:1063300080721A60424B1A6F12F4407F04D04FF4FF +:1063400080321A6700221A671A6842F001021A6046 +:106350003B4B1A685007FCD500221A611A6912F0EB +:106360003802FBD1012119604FF0804159605A6712 +:10637000344ADA62344A1A611A6842F480321A6086 +:106380002F4B1A689103FCD51A6842F480521A60A8 +:106390001A689204FCD52D4A2D499A6200225A634C +:1063A000196301F57C01DA6301F5E77199635A64B9 +:1063B000284A1A64284ADA621A6842F0A8521A6017 +:1063C0001F4B1A6802F02852B2F1285FF9D1482217 +:1063D0009A614FF48862DA6140221A621F4ADA64D5 +:1063E0001F4A1A651F4A5A651F4A9A6532231F4A77 +:1063F0001360136803F00F03022BFAD1104A1369DC +:1064000043F003031361136903F03803182BFAD127 +:106410004FF00050FFF7DEFE4FF08040FFF7DAFE4E +:106420004FF00040BDE80840FFF7D4BE00800051A7 +:10643000004502580048025800C000F00400000166 +:10644000004402580000FF010088900832206000DC +:1064500063020901470E0508DD0BBF012000002083 +:10646000000001100910E00000010110002000529E +:106470004FF0B04208B5D2F8883003F00103C2F8FB +:10648000883023B1044A13680BB150689847BDE8BF +:106490000840FDF7CBBF00BF486400204FF0B0427A +:1064A00008B5D2F8883003F00203C2F8883023B16F +:1064B000044A93680BB1D0689847BDE80840FDF7DF +:1064C000B5BF00BF486400204FF0B04208B5D2F815 +:1064D000883003F00403C2F8883023B1044A1369FA +:1064E0000BB150699847BDE80840FDF79FBF00BF5A +:1064F000486400204FF0B04208B5D2F8883003F06D +:106500000803C2F8883023B1044A93690BB1D069FB +:106510009847BDE80840FDF789BF00BF48640020E8 +:106520004FF0B04208B5D2F8883003F01003C2F83B +:10653000883023B1044A136A0BB1506A9847BDE80A +:106540000840FDF773BF00BF486400204FF0B04320 +:1065500010B5D3F8884004F47872C3F88820A306F5 +:1065600004D5124A936A0BB1D06A9847600604D5E5 +:106570000E4A136B0BB1506B9847210604D50B4A9A +:10658000936B0BB1D06B9847E20504D5074A136CA7 +:106590000BB1506C9847A30504D5044A936C0BB11A +:1065A000D06C9847BDE81040FDF740BF486400201C +:1065B0004FF0B04310B5D3F8884004F47C42C3F8E0 +:1065C0008820620504D5164A136D0BB1506D9847AB +:1065D000230504D5124A936D0BB1D06D9847E004A2 +:1065E00004D50F4A136E0BB1506E9847A10404D521 +:1065F0000B4A936E0BB1D06E9847620404D5084ADB +:10660000136F0BB1506F9847230404D5044A936F5E +:106610000BB1D06F9847BDE81040FDF707BF00BF32 +:106620004864002008B50348FEF788FABDE8084032 +:10663000FDF7FCBEC864002008B50348FEF77EFAEB +:10664000BDE80840FDF7F2BE3465002008B5FFF74D +:10665000ABFDBDE80840FDF7E9BE0000062108B526 +:106660000846FEF7F1FA06210720FEF7EDFA0621AB +:106670000820FEF7E9FA06210920FEF7E5FA0621CF +:106680000A20FEF7E1FA06211720FEF7DDFA0621BF +:106690002820FEF7D9FA09217A20FEF7D5FA07213A +:1066A0003220FEF7D1FA0C212520FEF7CDFA0C217D +:1066B0005320BDE80840FEF7C7BA000008B5FFF751 +:1066C00095FDFEF7FDF8FEF77DFCFFF747FDBDE801 +:1066D0000840FFF7E9BA00000B460146184600F0F3 +:1066E00001B8000010B5054C13462CB10A4601460E +:1066F0000220AFF3008010BD2046FCE70000000040 +:1067000010B501390244904201D1002005E0037820 +:1067100011F8014FA34201D0181B10BD0130F2E760 +:106720002DE9F041A3B1C91A17780144044603F1D9 +:10673000FF3C8C42204601D9002009E00578BD428B +:1067400004F10104F5D10CEB0405D618A54201D1E2 +:10675000BDE8F08115F8018D16F801EDF045F5D092 +:10676000E7E70000034611F8012B03F8012B002A8C +:10677000F9D17047636F6D2E6375626570696C6FD8 +:10678000742E6865726534666300000053544D339F +:106790003248373F3F3F0053544D33324837337808 +:1067A0002F3732780053544D3332483734332F3734 +:1067B00035332F373530000001105A0003105900CF +:1067C000012058000320560040A2E4F164689106BD +:1067D0000041A3E5F26569920700000043414E467F +:1067E0004449666163653A204D657373616765204E +:1067F00052414D204F766572666C6F772100000024 +:106800004261642043414E496661636520696E645C +:1068100065782E00000100000001FF0000A000408C +:1068200000A400400000000000000000F92A000859 +:106830008123000881320008F1230008FD230008AD +:106840001528000875250008B9230008BD23000895 +:10685000952300087D230008D1270008A123000804 +:10686000E9330008AD230008A527000801040E0540 +:10687000054B02020E05054B04010E05054B0501F3 +:106880000B04044B080106030346000010000240FD +:10689000080002400008024000000B0028000240EF +:1068A000080002400408024006010C0040000240BB +:1068B000080002400808024010020D005800024083 +:1068C000080002400C08024016030E00700002404F +:1068D0000C0002401008024000040F008800024033 +:1068E0000C0002401408024006051000A0000240FF +:1068F0000C0002401808024010061100B8000240C7 +:106900000C0002401C08024016072F001004024031 +:106910000804024020080240000838002804024011 +:1069200008040240240802400609390040040240DD +:106930000804024028080240100A3A0058040240A5 +:10694000080402402C080240160B3B007004024071 +:106950000C04024030080240000C3C008804024055 +:106960000C04024034080240060D4400A00402401A +:106970000C04024038080240100E4500B8040240E2 +:106980000C0402403C080240160F4600009600002E +:1069900000000000000000000000000000000000F7 +:1069A0000000000000000000854F0008714F000843 +:1069B000AD4F0008994F0008A54F0008914F0008FF +:1069C0007D4F0008694F0008B94F00086330000090 +:1069D000CC690008F86D002008700020000100203C +:1069E00000FF010002000000000000300000040071 +:1069F000080000000000002400000800040000005F +:106A00000004000000FC0000020000000000043050 +:106A100000800000080000000000003800000100B5 +:106A2000010000006D61696E0069646C6500000022 +:106A30000000002800000000AAAAAAAA0000002462 +:106A4000FFFF0000000000000000000000A0550A49 +:106A500000000000AAAA9AAA00500000FFF200005D +:106A60000000007700009900000000000000000016 +:106A7000AAAAAAAA00000000FFFF00000000000070 +:106A8000000000005A000000000000009AAAAAAA14 +:106A900000000000F3FF000099000000000000006B +:106AA0000A00000000000000AAAAAAAA050000002F +:106AB000FFFF000088000000000000000000000050 +:106AC00000000000AAAAAAAA00000000FFFF000020 +:106AD00000000000000000000000000000000000B6 +:106AE000AAAAAAAA00000000FFFF00000000000000 +:106AF000000000000000000000000000AAAAAAAAEE +:106B000000000000FFFF0000000000000000000087 +:106B10000000000000000000AAAAAAAA00000000CD +:106B2000FFFF000000000000000000000000000067 +:106B300000000000AAAAAAAA00000000FFFF0000AF +:106B40000000000000000000000000000000000045 +:106B5000AAAAAAAA00000000FFFF0000000000008F +:106B6000000000000000000013040000000000000E +:106B70000000180000000000FE2A0100D2040000FE +:106B8000FF000000C8640020346500200000000001 +:106B90008C67000883040000976700085004000019 +:046BA000A5670008DD :00000001FF From 9a1a99fd611539dbdd8b3ea8895b266c0e27ae76 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 16 Jul 2024 15:26:47 +1000 Subject: [PATCH 020/232] AP_HAL_Boards: stop users specifying HAL_GPIO_LED_ON as the default value --- libraries/AP_HAL/AP_HAL_Boards.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/AP_HAL/AP_HAL_Boards.h b/libraries/AP_HAL/AP_HAL_Boards.h index e0771435494b2..49d513663f0bf 100644 --- a/libraries/AP_HAL/AP_HAL_Boards.h +++ b/libraries/AP_HAL/AP_HAL_Boards.h @@ -378,6 +378,8 @@ #ifndef HAL_GPIO_LED_ON #define HAL_GPIO_LED_ON 0 +#elif HAL_GPIO_LED_ON == 0 +#error "Do not specify HAL_GPIO_LED_ON if you are setting it to the default, 0" #endif #ifdef HAL_GPIO_LED_OFF From d4adb1923a695e32359112b85a7d0729cbdc98e7 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 16 Jul 2024 15:29:53 +1000 Subject: [PATCH 021/232] hwdef: stop hwdefs defining HAL_GPIO_LED_ON to 0 --- libraries/AP_HAL_ChibiOS/hwdef/AIRLink/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/ARKV6X/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/Durandal/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/JFB100/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/JFB110/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/PixC4-Jetson/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/Pixhawk5X/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/SIYI_N7/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/fmuv5/hwdef.dat | 1 - libraries/AP_HAL_ChibiOS/hwdef/modalai_fc-v1/hwdef.dat | 1 - 15 files changed, 15 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/AIRLink/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/AIRLink/hwdef.dat index 4325bdebf584c..88db88f3b7e5e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/AIRLink/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/AIRLink/hwdef.dat @@ -232,7 +232,6 @@ PE3 LED_BLUE OUTPUT GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ARKV6X/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/ARKV6X/hwdef.dat index 16edc411c3af3..0c2038deb060e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/ARKV6X/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/ARKV6X/hwdef.dat @@ -272,7 +272,6 @@ PE5 LED_BLUE OUTPUT OPENDRAIN GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 90 define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 91 define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 92 -define HAL_GPIO_LED_ON 0 define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/hwdef.dat index d80f0a185ddb2..222aa5f835510 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/hwdef.dat @@ -299,7 +299,6 @@ PC7 LED_BLUE OUTPUT GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat index ffa4b6e275c83..2dbc063a53ddc 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerF405v2/hwdef.dat @@ -130,7 +130,6 @@ define HAL_GPIO_A_LED_PIN 90 PA14 LED1 OUTPUT LOW GPIO(91) define HAL_GPIO_B_LED_PIN 91 -define HAL_GPIO_LED_ON 0 # Dataflash setup SPIDEV dataflash SPI2 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/JFB100/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/JFB100/hwdef.dat index 3dee658979f79..efa1c9bd79b98 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/JFB100/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/JFB100/hwdef.dat @@ -291,7 +291,6 @@ PB1 LED_RED OUTPUT OPENDRAIN GPIO(92) define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage diff --git a/libraries/AP_HAL_ChibiOS/hwdef/JFB110/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/JFB110/hwdef.dat index 7f74dedc1866d..531d1327d2f3b 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/JFB110/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/JFB110/hwdef.dat @@ -320,7 +320,6 @@ define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 72 define HAL_GPIO_B_LED_PIN 70 #define HAL_GPIO_C_LED_PIN 71 -define HAL_GPIO_LED_ON 0 # PWM output for buzzer PF9 TIM14_CH1 TIM14 GPIO(73) ALARM SPEED_VERYLOW diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat index 6bb27b3f66438..c9b710a755d6b 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat @@ -32,7 +32,6 @@ define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 0 define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 1 define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 2 -define HAL_GPIO_LED_ON 0 define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 # only one I2C bus diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat index 2a3f3a29e2ccc..0146c856a1134 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat @@ -102,7 +102,6 @@ define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 0 define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 1 define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 2 -define HAL_GPIO_LED_ON 0 define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 # ADC for Power diff --git a/libraries/AP_HAL_ChibiOS/hwdef/PixC4-Jetson/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/PixC4-Jetson/hwdef.dat index 20194f8a3dece..5d25f1ae4f588 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/PixC4-Jetson/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/PixC4-Jetson/hwdef.dat @@ -281,7 +281,6 @@ PC7 LED_BLUE OUTPUT GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk5X/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk5X/hwdef.dat index 6a91c4242986a..6ce6a1bd9f493 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk5X/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk5X/hwdef.dat @@ -254,7 +254,6 @@ PE5 LED_BLUE OUTPUT OPENDRAIN GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # ID pins PG0 HW_VER_REV_DRIVE OUTPUT LOW diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat index f064f81460c3f..9ca280db8bd26 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6C/hwdef.dat @@ -199,7 +199,6 @@ PD11 LED_BLUE OUTPUT OPENDRAIN GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # ID pins PE12 HW_VER_REV_DRIVE OUTPUT LOW diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat index 9c39d199a76bc..aa427cb17592d 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/Pixhawk6X/hwdef.dat @@ -268,7 +268,6 @@ PE5 LED_BLUE OUTPUT OPENDRAIN GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 90 define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 91 define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 92 -define HAL_GPIO_LED_ON 0 define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SIYI_N7/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SIYI_N7/hwdef.dat index 918705e024744..69c02d554710b 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/SIYI_N7/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/SIYI_N7/hwdef.dat @@ -192,7 +192,6 @@ PC7 LED_BLUE OUTPUT GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/fmuv5/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/fmuv5/hwdef.dat index 7d086bd284a15..a40aaeda38268 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/fmuv5/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/fmuv5/hwdef.dat @@ -282,7 +282,6 @@ PC7 LED_BLUE OUTPUT GPIO(92) HIGH define AP_NOTIFY_GPIO_LED_2_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage diff --git a/libraries/AP_HAL_ChibiOS/hwdef/modalai_fc-v1/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/modalai_fc-v1/hwdef.dat index fe362e816acf9..06e6a353cab35 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/modalai_fc-v1/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/modalai_fc-v1/hwdef.dat @@ -262,7 +262,6 @@ define AP_NOTIFY_GPIO_LED_3_ENABLED 1 define HAL_GPIO_A_LED_PIN 90 define HAL_GPIO_B_LED_PIN 92 define HAL_GPIO_C_LED_PIN 91 -define HAL_GPIO_LED_ON 0 # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 From d5ff3ed35a5ba6eaa438e43885549127ccdebf37 Mon Sep 17 00:00:00 2001 From: BLash Date: Fri, 5 Jul 2024 11:40:20 -0500 Subject: [PATCH 022/232] AP_ExternalAHRS: VectorNav: Add response validation to all sent commands Expands wait_register_response (and renames to send_command_blocking) to accept any arbitrary command, and uses the new method for all sent commands --- .../AP_ExternalAHRS_VectorNav.cpp | 70 ++++++++++--------- .../AP_ExternalAHRS_VectorNav.h | 11 +-- 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index f43ac8598d6e5..98279e154ae18 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -286,21 +286,18 @@ bool AP_ExternalAHRS_VectorNav::check_uart() return true; } -// Send command to read given register number and wait for response +// Send command and wait for response // Only run from thread! This blocks until a response is received #define READ_REQUEST_RETRY_MS 500 -void AP_ExternalAHRS_VectorNav::wait_register_responce(const uint8_t register_num) +void AP_ExternalAHRS_VectorNav::send_command_blocking() { - nmea.register_number = register_num; - uint32_t request_sent = 0; while (true) { hal.scheduler->delay(1); const uint32_t now = AP_HAL::millis(); if (now - request_sent > READ_REQUEST_RETRY_MS) { - // Send request to read - nmea_printf(uart, "$%s%u", "VNRRG,", nmea.register_number); + nmea_printf(uart, "$%s", message_to_send); request_sent = now; } @@ -371,57 +368,58 @@ bool AP_ExternalAHRS_VectorNav::decode(char c) } // decode the most recently consumed term -// returns true if new sentence has just passed checksum test and is validated +// returns true if new term is valid bool AP_ExternalAHRS_VectorNav::decode_latest_term() { + // Check the first two terms (In most cases header + reg number) that they match the sent + // message. If not, the response is invalid. switch (nmea.term_number) { case 0: - if (strcmp(nmea.term, "VNRRG") != 0) { + if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { // ignore sync byte in comparison return false; + } else if (strncmp(nmea.term, "VNERR", nmea.term_offset) == 0) { + AP_HAL::panic("VectorNav received VN error response"); } break; - - case 1: - if (nmea.register_number != strtoul(nmea.term, nullptr, 10)) { + case 1: + if (strncmp(nmea.term, message_to_send + 6, + nmea.term_offset) != 0) { // Start after "VNXXX," return false; } break; - - case 2: - strncpy(model_name, nmea.term, sizeof(model_name)); + case 2: + if (strncmp(nmea.term, "VN-", 3) == 0) { + // This term is the model number + strncpy(model_name, nmea.term, sizeof(model_name)); + break; + } break; - default: - return false; + break; } return true; } -void AP_ExternalAHRS_VectorNav::update_thread() -{ +void AP_ExternalAHRS_VectorNav::initialize() { // Open port in the thread uart->begin(baudrate, 1024, 512); - // Reset and wait for module to reboot - // VN_100 takes 1.25 seconds - //nmea_printf(uart, "$VNRST"); - //hal.scheduler->delay(3000); - - // Stop NMEA Async Outputs (this UART only) - nmea_printf(uart, "$VNWRG,6,0"); + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,0"); + send_command_blocking(); - // Detect version // Read Model Number Register, ID 1 - wait_register_responce(1); + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNRRG,01"); + send_command_blocking(); // Setup for messages respective model types (on both UARTs) if (strncmp(model_name, "VN-1", 4) == 0) { - // VN-100 + // VN-1X0 type = TYPE::VN_AHRS; // This assumes unit is still configured at its default rate of 800hz - nmea_printf(uart, "$VNWRG,75,3,%u,14,073E,0004", unsigned(800/get_rate())); - + hal.util->snprintf(message_to_send, sizeof(message_to_send), + "VNWRG,75,3,%u,14,073E,0004", unsigned(800 / get_rate())); + send_command_blocking(); } else { // Default to setup for sensors other than VN-100 or VN-110 // This assumes unit is still configured at its default IMU rate of 400hz for VN-300, 800hz for others @@ -432,11 +430,19 @@ void AP_ExternalAHRS_VectorNav::update_thread() if (strncmp(model_name, "VN-3", 4) == 0) { has_dual_gnss = true; } - nmea_printf(uart, "$VNWRG,75,3,%u,34,072E,0106,0612", unsigned(imu_rate/get_rate())); - nmea_printf(uart, "$VNWRG,76,3,%u,4E,0002,0010,20B8,0018", unsigned(imu_rate/5)); + hal.util->snprintf(message_to_send, sizeof(message_to_send), + "VNWRG,75,3,%u,34,072E,0106,0612", unsigned(imu_rate / get_rate())); + send_command_blocking(); + hal.util->snprintf(message_to_send, sizeof(message_to_send), + "VNWRG,76,3,%u,4E,0002,0010,20B8,0018", unsigned(imu_rate / 5)); + send_command_blocking(); } setup_complete = true; +} + +void AP_ExternalAHRS_VectorNav::update_thread() { + initialize(); while (true) { if (!check_uart()) { hal.scheduler->delay(1); diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index 05c4a01fae682..b6f4216b55a73 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -61,10 +61,12 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { void update_thread(); bool check_uart(); + void initialize(); + void process_ins_packet1(const uint8_t *b); void process_ins_packet2(const uint8_t *b); void process_ahrs_packet(const uint8_t *b); - void wait_register_responce(const uint8_t register_num); + void send_command_blocking(); uint8_t *pktbuf; uint16_t pktoffset; @@ -83,22 +85,21 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { bool has_dual_gnss = false; - char model_name[25]; + char model_name[20]; + char message_to_send[50]; // NMEA parsing for setup bool decode(char c); bool decode_latest_term(); struct NMEA_parser { - char term[25]; // buffer for the current term within the current sentence + char term[20]; // buffer for the current term within the current sentence uint8_t term_offset; // offset within the _term buffer where the next character should be placed uint8_t term_number; // term index within the current sentence uint8_t checksum; // checksum accumulator bool term_is_checksum; // current term is the checksum bool sentence_valid; // is current sentence valid so far bool sentence_done; // true if this sentence has already been decoded - uint8_t register_number; // VectorNAV register number were reading } nmea; - }; #endif // AP_EXTERNAL_AHRS_VECTORNAV_ENABLED From 024d50ed09fff9b315224113a6f78f89f50b551b Mon Sep 17 00:00:00 2001 From: BLash Date: Fri, 5 Jul 2024 11:40:51 -0500 Subject: [PATCH 023/232] AP_ExternalAHRS: VectorNav: Disable ASCII messages on both ports, rather than just active port This change prevents a commonly seen baudrate overflow error on the unused port. Also pause asynchronous communications during initial configuration. --- .../AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index 98279e154ae18..c8fbeed119fd0 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -404,7 +404,15 @@ void AP_ExternalAHRS_VectorNav::initialize() { // Open port in the thread uart->begin(baudrate, 1024, 512); - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,0"); + // Pause asynchronous communications to simplify packet finding + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNASY,0"); + send_command_blocking(); + + // Stop ASCII async outputs for both UARTs. If only active UART is disabled, we get a baudrate + // overflow on the other UART when configuring binary outputs (reg 75 and 76) to both UARTs + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,1"); + send_command_blocking(); + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,2"); send_command_blocking(); // Read Model Number Register, ID 1 @@ -438,6 +446,9 @@ void AP_ExternalAHRS_VectorNav::initialize() { send_command_blocking(); } + // Resume asynchronous communications + hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNASY,1"); + send_command_blocking(); setup_complete = true; } From 1288810c709fe3c342ffcf0459cc9197234e5b5a Mon Sep 17 00:00:00 2001 From: BLash Date: Mon, 8 Jul 2024 18:38:49 -0500 Subject: [PATCH 024/232] AP_ExternalAHRS_VectorNav: Handle VNERR responses Print received VNERR response to console and continually retry sending the configuration message, instead of panicing --- .../AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp | 11 ++++++++++- libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index c8fbeed119fd0..a815a53de7cca 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -305,6 +305,10 @@ void AP_ExternalAHRS_VectorNav::send_command_blocking() while (nbytes-- > 0) { char c = uart->read(); if (decode(c)) { + if (nmea.error_response) { + // Received a valid VNERR. Try to resend after the timeout length + break; + } return; } } @@ -353,6 +357,7 @@ bool AP_ExternalAHRS_VectorNav::decode(char c) nmea.checksum = 0; nmea.term_is_checksum = false; nmea.sentence_done = false; + nmea.error_response = false; return false; } @@ -378,10 +383,14 @@ bool AP_ExternalAHRS_VectorNav::decode_latest_term() if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { // ignore sync byte in comparison return false; } else if (strncmp(nmea.term, "VNERR", nmea.term_offset) == 0) { - AP_HAL::panic("VectorNav received VN error response"); + nmea.error_response = true; // Message will be printed on next term } break; case 1: + if (nmea.error_response) { + GCS_SEND_TEXT(MAV_SEVERITY_CRITICAL, "VectorNav received VNERR code: %s", nmea.term); + break; + } if (strncmp(nmea.term, message_to_send + 6, nmea.term_offset) != 0) { // Start after "VNXXX," return false; diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index b6f4216b55a73..d3b9ab26dd230 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -99,6 +99,7 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { bool term_is_checksum; // current term is the checksum bool sentence_valid; // is current sentence valid so far bool sentence_done; // true if this sentence has already been decoded + bool error_response; // true if received a VNERR response } nmea; }; From ed6ee517836fd9e0aa8dbc5ff0def95c9e43d767 Mon Sep 17 00:00:00 2001 From: BLash Date: Tue, 9 Jul 2024 10:53:16 -0500 Subject: [PATCH 025/232] AP_ExternalAHRS_VectorNav: Minor code clarity improvements Add clarity to send_command_blocking by improving comment and directly returning instead of breaking --- .../AP_ExternalAHRS_VectorNav.cpp | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index a815a53de7cca..d14a61f6e4cba 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -287,7 +287,7 @@ bool AP_ExternalAHRS_VectorNav::check_uart() } // Send command and wait for response -// Only run from thread! This blocks until a response is received +// Only run from thread! This blocks and retries until a non-error response is received #define READ_REQUEST_RETRY_MS 500 void AP_ExternalAHRS_VectorNav::send_command_blocking() { @@ -380,33 +380,30 @@ bool AP_ExternalAHRS_VectorNav::decode_latest_term() // message. If not, the response is invalid. switch (nmea.term_number) { case 0: - if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { // ignore sync byte in comparison + if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { return false; - } else if (strncmp(nmea.term, "VNERR", nmea.term_offset) == 0) { + } + if (strncmp(nmea.term, "VNERR", nmea.term_offset) == 0) { nmea.error_response = true; // Message will be printed on next term } - break; + return true; case 1: if (nmea.error_response) { GCS_SEND_TEXT(MAV_SEVERITY_CRITICAL, "VectorNav received VNERR code: %s", nmea.term); - break; - } - if (strncmp(nmea.term, message_to_send + 6, - nmea.term_offset) != 0) { // Start after "VNXXX," + } else if (strncmp(nmea.term, message_to_send + 6, + nmea.term_offset) != 0) { // Start after "VNXXX," return false; } - break; + return true; case 2: if (strncmp(nmea.term, "VN-", 3) == 0) { // This term is the model number strncpy(model_name, nmea.term, sizeof(model_name)); - break; } - break; + return true; default: - break; + return true; } - return true; } void AP_ExternalAHRS_VectorNav::initialize() { From 34031cc6b68d2ea1f8a8232cf54aeec80d0a14bd Mon Sep 17 00:00:00 2001 From: BLash Date: Wed, 10 Jul 2024 12:19:17 -0500 Subject: [PATCH 026/232] AP_ExternalAHRS_VectorNav: Bugfixes and review comment address "VNERR" does not match beginning of message_to_send, so have to prevent it from returning due to the string compare. Also must prevent exiting the decode before the sentence has completed so that we can go on to print the error code term. Fix bug preventing disabling of ASCII measurements Instead of snprintf the command to message_to_send then executing run_command, allow run_command to accept a string and format spec Add check to ensure message_to_send is greater than length 6 before attempting to read past 6 --- .../AP_ExternalAHRS_VectorNav.cpp | 46 ++++++++----------- .../AP_ExternalAHRS_VectorNav.h | 2 +- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index d14a61f6e4cba..aef7fe26528a9 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -289,8 +289,14 @@ bool AP_ExternalAHRS_VectorNav::check_uart() // Send command and wait for response // Only run from thread! This blocks and retries until a non-error response is received #define READ_REQUEST_RETRY_MS 500 -void AP_ExternalAHRS_VectorNav::send_command_blocking() +void AP_ExternalAHRS_VectorNav::run_command(const char * fmt, ...) { + va_list ap; + + va_start(ap, fmt); + hal.util->vsnprintf(message_to_send, sizeof(message_to_send), fmt, ap); + va_end(ap); + uint32_t request_sent = 0; while (true) { hal.scheduler->delay(1); @@ -305,7 +311,7 @@ void AP_ExternalAHRS_VectorNav::send_command_blocking() while (nbytes-- > 0) { char c = uart->read(); if (decode(c)) { - if (nmea.error_response) { + if (nmea.error_response && nmea.sentence_done) { // Received a valid VNERR. Try to resend after the timeout length break; } @@ -380,18 +386,17 @@ bool AP_ExternalAHRS_VectorNav::decode_latest_term() // message. If not, the response is invalid. switch (nmea.term_number) { case 0: - if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { - return false; - } if (strncmp(nmea.term, "VNERR", nmea.term_offset) == 0) { nmea.error_response = true; // Message will be printed on next term + } else if (strncmp(nmea.term, message_to_send, nmea.term_offset) != 0) { + return false; } return true; case 1: if (nmea.error_response) { GCS_SEND_TEXT(MAV_SEVERITY_CRITICAL, "VectorNav received VNERR code: %s", nmea.term); - } else if (strncmp(nmea.term, message_to_send + 6, - nmea.term_offset) != 0) { // Start after "VNXXX," + } else if (strlen(message_to_send) > 6 && + strncmp(nmea.term, &message_to_send[6], nmea.term_offset != 0)) { // Start after "VNXXX," return false; } return true; @@ -411,19 +416,15 @@ void AP_ExternalAHRS_VectorNav::initialize() { uart->begin(baudrate, 1024, 512); // Pause asynchronous communications to simplify packet finding - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNASY,0"); - send_command_blocking(); + run_command("VNASY,0"); // Stop ASCII async outputs for both UARTs. If only active UART is disabled, we get a baudrate // overflow on the other UART when configuring binary outputs (reg 75 and 76) to both UARTs - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,1"); - send_command_blocking(); - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNWRG,06,2"); - send_command_blocking(); + run_command("VNWRG,06,0,1"); + run_command("VNWRG,06,0,2"); // Read Model Number Register, ID 1 - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNRRG,01"); - send_command_blocking(); + run_command("VNRRG,01"); // Setup for messages respective model types (on both UARTs) if (strncmp(model_name, "VN-1", 4) == 0) { @@ -431,9 +432,7 @@ void AP_ExternalAHRS_VectorNav::initialize() { type = TYPE::VN_AHRS; // This assumes unit is still configured at its default rate of 800hz - hal.util->snprintf(message_to_send, sizeof(message_to_send), - "VNWRG,75,3,%u,14,073E,0004", unsigned(800 / get_rate())); - send_command_blocking(); + run_command("VNWRG,75,3,%u,14,073E,0004", unsigned(800 / get_rate())); } else { // Default to setup for sensors other than VN-100 or VN-110 // This assumes unit is still configured at its default IMU rate of 400hz for VN-300, 800hz for others @@ -444,17 +443,12 @@ void AP_ExternalAHRS_VectorNav::initialize() { if (strncmp(model_name, "VN-3", 4) == 0) { has_dual_gnss = true; } - hal.util->snprintf(message_to_send, sizeof(message_to_send), - "VNWRG,75,3,%u,34,072E,0106,0612", unsigned(imu_rate / get_rate())); - send_command_blocking(); - hal.util->snprintf(message_to_send, sizeof(message_to_send), - "VNWRG,76,3,%u,4E,0002,0010,20B8,0018", unsigned(imu_rate / 5)); - send_command_blocking(); + run_command("VNWRG,75,3,%u,34,072E,0106,0612", unsigned(imu_rate / get_rate())); + run_command("VNWRG,76,3,%u,4E,0002,0010,20B8,0018", unsigned(imu_rate / 5)); } // Resume asynchronous communications - hal.util->snprintf(message_to_send, sizeof(message_to_send), "VNASY,1"); - send_command_blocking(); + run_command("VNASY,1"); setup_complete = true; } diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index d3b9ab26dd230..db73138befe34 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -66,7 +66,7 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { void process_ins_packet1(const uint8_t *b); void process_ins_packet2(const uint8_t *b); void process_ahrs_packet(const uint8_t *b); - void send_command_blocking(); + void run_command(const char *fmt, ...); uint8_t *pktbuf; uint16_t pktoffset; From b3961ec2ebbdda794a99699c0b05570e59d5e828 Mon Sep 17 00:00:00 2001 From: BLash Date: Tue, 16 Jul 2024 00:48:01 -0500 Subject: [PATCH 027/232] AP_ExternalAHRS_VectorNav: Update VectorNav sim to respond to received commands Aside from the RRG,1 call, the simulation should reply with exactly what was received as a receipt confirmation to allow the driver to proceed past init --- libraries/SITL/SIM_VectorNav.cpp | 12 +++++++----- libraries/SITL/SIM_VectorNav.h | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index 2c7d54953c02a..09bce92994624 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -213,11 +213,13 @@ void VectorNav::update(void) send_packet2(); } - // Strictly we should send this in responce to the request - // but sending it occasionally acheaves the same thing - if (now - last_type_us >= 1000000) { - last_type_us = now; - nmea_printf("$VNRRG,01,VN-300-SITL"); + const ssize_t n = read_from_autopilot(&receive_buf[0], ARRAY_SIZE(receive_buf)); + if (n > 0) { + if (strncmp(receive_buf, "$VNRRG,01", 9) == 0) { + nmea_printf("$VNRRG,01,VN-300-SITL"); + } else { + nmea_printf("$%s", receive_buf); + } } } diff --git a/libraries/SITL/SIM_VectorNav.h b/libraries/SITL/SIM_VectorNav.h index 589539e5d9a8f..b9f7e3962d0dd 100644 --- a/libraries/SITL/SIM_VectorNav.h +++ b/libraries/SITL/SIM_VectorNav.h @@ -45,6 +45,8 @@ class VectorNav : public SerialDevice { uint32_t last_pkt2_us; uint32_t last_type_us; + char receive_buf[50]; + void send_packet1(); void send_packet2(); void nmea_printf(const char *fmt, ...); From 3f00280628c5ef364ae554d5474c7336effbba76 Mon Sep 17 00:00:00 2001 From: BLash Date: Tue, 16 Jul 2024 16:18:22 -0500 Subject: [PATCH 028/232] AP_ExternalAHRS_VectorNav: Move allocation to local scope Move receive_buf to method scope allocation rather than class scope --- libraries/SITL/SIM_VectorNav.cpp | 1 + libraries/SITL/SIM_VectorNav.h | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index 09bce92994624..ed4c1bcaedd53 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -213,6 +213,7 @@ void VectorNav::update(void) send_packet2(); } + char receive_buf[50]; const ssize_t n = read_from_autopilot(&receive_buf[0], ARRAY_SIZE(receive_buf)); if (n > 0) { if (strncmp(receive_buf, "$VNRRG,01", 9) == 0) { diff --git a/libraries/SITL/SIM_VectorNav.h b/libraries/SITL/SIM_VectorNav.h index b9f7e3962d0dd..589539e5d9a8f 100644 --- a/libraries/SITL/SIM_VectorNav.h +++ b/libraries/SITL/SIM_VectorNav.h @@ -45,8 +45,6 @@ class VectorNav : public SerialDevice { uint32_t last_pkt2_us; uint32_t last_type_us; - char receive_buf[50]; - void send_packet1(); void send_packet2(); void nmea_printf(const char *fmt, ...); From 7e722eeb94bc0c32434cfe9fea385f1d3a93dd6c Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 09:27:06 +1000 Subject: [PATCH 029/232] hwdef: prune out redundant lines these have been merged with bad lines in them --- libraries/AP_HAL_ChibiOS/hwdef/ACNS-CM4Pilot/hwdef.dat | 3 --- libraries/AP_HAL_ChibiOS/hwdef/ACNS-F405AIO/hwdef.dat | 3 --- libraries/AP_HAL_ChibiOS/hwdef/CSKY405/hwdef.dat | 2 -- libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat | 2 -- libraries/AP_HAL_ChibiOS/hwdef/MicoAir405v2/hwdef.dat | 2 -- libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat | 2 -- libraries/AP_HAL_ChibiOS/hwdef/NxtPX4v2/hwdef.dat | 2 -- libraries/AP_HAL_ChibiOS/hwdef/PixFlamingo-F767/hwdef.dat | 4 ---- libraries/AP_HAL_ChibiOS/hwdef/PixPilot-C3/hwdef.dat | 4 ---- libraries/AP_HAL_ChibiOS/hwdef/QioTekAdeptF407/hwdef.dat | 4 ---- libraries/AP_HAL_ChibiOS/hwdef/RadiolinkPIX6/hwdef.dat | 3 --- libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE/hwdef.dat | 3 --- libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE_H743/hwdef.dat | 3 --- libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6Ultra/hwdef.dat | 3 --- 14 files changed, 40 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ACNS-CM4Pilot/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/ACNS-CM4Pilot/hwdef.dat index 5d22cf051a370..3d92193527e5e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/ACNS-CM4Pilot/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/ACNS-CM4Pilot/hwdef.dat @@ -164,9 +164,6 @@ COMPASS LIS3MDL SPI:lis3mdl false ROTATION_ROLL_180_YAW_270 define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # define default battery setup define HAL_BATT_MONITOR_DEFAULT 4 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/ACNS-F405AIO/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/ACNS-F405AIO/hwdef.dat index 8a8cac7dbbb7b..b46ceda16840a 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/ACNS-F405AIO/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/ACNS-F405AIO/hwdef.dat @@ -169,9 +169,6 @@ COMPASS LIS3MDL SPI:lis3mdl false ROTATION_ROLL_180_YAW_90 define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # define default battery setup define HAL_BATT_MONITOR_DEFAULT 4 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CSKY405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CSKY405/hwdef.dat index 262dbd9dcf046..74bf4d5e3cdae 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CSKY405/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CSKY405/hwdef.dat @@ -140,8 +140,6 @@ SPIDEV sdcard SPI2 DEVID3 SDCARD_CS MODE3 104*MHZ 104*MHZ #define HAL_LOGGING_DATAFLASH_ENABLED 1 define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" # ----------------- I2C compass & Baro ----------------- # no built-in compass, but probe the i2c bus for all possible diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat index c9b710a755d6b..3a2b63426c714 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405Mini/hwdef.dat @@ -136,8 +136,6 @@ SPIDEV osd SPI1 DEVID4 AT7456E_CS MODE0 10*MHZ 10*MHZ # filesystem setup on sdcard define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" # setup for OSD define OSD_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405v2/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405v2/hwdef.dat index 53d5e1d1339de..4f24d3a9c1f7a 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405v2/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir405v2/hwdef.dat @@ -143,8 +143,6 @@ SPIDEV sdcard SPI3 DEVID5 SDCARD_CS MODE0 400*KHZ 25*MHZ # filesystem setup on sdcard define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" # setup for OSD define OSD_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat index 0146c856a1134..538baec0ef860 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MicoAir743/hwdef.dat @@ -157,8 +157,6 @@ IMU BMI270 SPI:bmi270 ROTATION_ROLL_180 # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" # setup for OSD define OSD_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/NxtPX4v2/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/NxtPX4v2/hwdef.dat index 0109985406bdd..326d2c65fd70d 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/NxtPX4v2/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/NxtPX4v2/hwdef.dat @@ -159,5 +159,3 @@ IMU BMI088 SPI:imu1_a SPI:imu1_g ROTATION_ROLL_180_YAW_90 # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" diff --git a/libraries/AP_HAL_ChibiOS/hwdef/PixFlamingo-F767/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/PixFlamingo-F767/hwdef.dat index 8bd9ffb161ab8..b4e6704450b4c 100755 --- a/libraries/AP_HAL_ChibiOS/hwdef/PixFlamingo-F767/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/PixFlamingo-F767/hwdef.dat @@ -157,10 +157,6 @@ SPIDEV dps310 SPI1 DEVID3 BARO_CS MODE3 5*MHZ 5*MHZ # enable FAT filesystem define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - - # pixracer has 3 LEDs, Red, Green, Blue define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/PixPilot-C3/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/PixPilot-C3/hwdef.dat index b70af30b66b65..f2a44efb12f52 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/PixPilot-C3/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/PixPilot-C3/hwdef.dat @@ -183,10 +183,6 @@ BARO BMP388 SPI:BMP388_ext define HAL_PROBE_EXTERNAL_I2C_COMPASSES define HAL_I2C_INTERNAL_MASK 0 - -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - define HAL_STORAGE_SIZE 16384 define HAL_WITH_RAMTRON 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/QioTekAdeptF407/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/QioTekAdeptF407/hwdef.dat index b592c18a31c9e..66dde13ae2afb 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/QioTekAdeptF407/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/QioTekAdeptF407/hwdef.dat @@ -111,10 +111,6 @@ PD2 SDIO_CMD SDIO # enable FAT filesystem support define HAL_OS_FATFS_IO 1 -# now some defines for logging and terrain data files -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # define the order that I2C buses I2C_ORDER I2C1 I2C2 PB8 I2C1_SCL I2C1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/RadiolinkPIX6/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/RadiolinkPIX6/hwdef.dat index 73f9a5050699f..ca35a3cb6c9b9 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/RadiolinkPIX6/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/RadiolinkPIX6/hwdef.dat @@ -227,9 +227,6 @@ DMA_PRIORITY SDMMC* UART8* ADC* USART3_RX TIM1_UP USART2_RX USART1_RX TIM1_CH3 S # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_lowpolh.bin # setup for OSD diff --git a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE/hwdef.dat index d0e8e141025f8..b621c4973af08 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE/hwdef.dat @@ -227,9 +227,6 @@ PD2 SDMMC1_CMD SDMMC1 # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 define HAL_WITH_RAMTRON 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE_H743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE_H743/hwdef.dat index d60d4c6d9aa4c..8b97b5cceb808 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE_H743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6SE_H743/hwdef.dat @@ -226,9 +226,6 @@ PD2 SDMMC1_CMD SDMMC1 # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 define HAL_WITH_RAMTRON 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6Ultra/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6Ultra/hwdef.dat index 5bdf58f776317..0f643b86b9f46 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6Ultra/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/YJUAV_A6Ultra/hwdef.dat @@ -242,9 +242,6 @@ PD2 SDMMC1_CMD SDMMC1 # enable FAT filesystem support (needs a microSD defined via SDMMC) define HAL_OS_FATFS_IO 1 -define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" -define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" - # enable RAMTROM parameter storage define HAL_STORAGE_SIZE 32768 define HAL_WITH_RAMTRON 1 From 5f9abc0406f3d5cbf17a2bf53c3af24bde024d3f Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 10:33:25 +1000 Subject: [PATCH 030/232] Copter: add and use private ModeAuto::option_is_enabled method --- ArduCopter/mode.h | 3 ++- ArduCopter/mode_auto.cpp | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ArduCopter/mode.h b/ArduCopter/mode.h index c064900808583..721cef3f0ad21 100644 --- a/ArduCopter/mode.h +++ b/ArduCopter/mode.h @@ -596,12 +596,13 @@ class ModeAuto : public Mode { private: - enum class Options : int32_t { + enum class Option : int32_t { AllowArming = (1 << 0U), AllowTakeOffWithoutRaisingThrottle = (1 << 1U), IgnorePilotYaw = (1 << 2U), AllowWeatherVaning = (1 << 7U), }; + bool option_is_enabled(Option option) const; // Enter auto rtl pseudo mode bool enter_auto_rtl(ModeReason reason); diff --git a/ArduCopter/mode_auto.cpp b/ArduCopter/mode_auto.cpp index b5e9a62eec325..3ac943f06dbc5 100644 --- a/ArduCopter/mode_auto.cpp +++ b/ArduCopter/mode_auto.cpp @@ -202,15 +202,23 @@ void ModeAuto::set_submode(SubMode new_submode) } } +bool ModeAuto::option_is_enabled(Option option) const +{ + return ((copter.g2.auto_options & (uint32_t)option) != 0); +} + bool ModeAuto::allows_arming(AP_Arming::Method method) const { - return ((copter.g2.auto_options & (uint32_t)Options::AllowArming) != 0) && !auto_RTL; -}; + if (auto_RTL) { + return false; + } + return option_is_enabled(Option::AllowArming); +} #if WEATHERVANE_ENABLED == ENABLED bool ModeAuto::allows_weathervaning() const { - return (copter.g2.auto_options & (uint32_t)Options::AllowWeatherVaning) != 0; + return option_is_enabled(Option::AllowWeatherVaning); } #endif @@ -638,7 +646,7 @@ void PayloadPlace::start_descent() // returns true if pilot's yaw input should be used to adjust vehicle's heading bool ModeAuto::use_pilot_yaw(void) const { - const bool allow_yaw_option = (copter.g2.auto_options.get() & uint32_t(Options::IgnorePilotYaw)) == 0; + const bool allow_yaw_option = !option_is_enabled(Option::IgnorePilotYaw); const bool rtl_allow_yaw = (_mode == SubMode::RTL) && copter.mode_rtl.use_pilot_yaw(); const bool landing = _mode == SubMode::LAND; return allow_yaw_option || rtl_allow_yaw || landing; @@ -1039,7 +1047,7 @@ void ModeAuto::takeoff_run() { // if the user doesn't want to raise the throttle we can set it automatically // note that this can defeat the disarm check on takeoff - if ((copter.g2.auto_options & (int32_t)Options::AllowTakeOffWithoutRaisingThrottle) != 0) { + if (option_is_enabled(Option::AllowTakeOffWithoutRaisingThrottle)) { copter.set_auto_armed(true); } auto_takeoff.run(); From 5a54d9a2ecbff9a32d26aa7feee72f0056a01027 Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 17 Jul 2024 14:42:10 +1000 Subject: [PATCH 031/232] AP_Networking: allow reconnection to TCP server or client --- libraries/AP_Networking/AP_Networking_port.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/AP_Networking/AP_Networking_port.cpp b/libraries/AP_Networking/AP_Networking_port.cpp index 832e96de1c064..d552da12bf17f 100644 --- a/libraries/AP_Networking/AP_Networking_port.cpp +++ b/libraries/AP_Networking/AP_Networking_port.cpp @@ -13,6 +13,7 @@ #include #include #include +#include extern const AP_HAL::HAL& hal; @@ -413,6 +414,14 @@ bool AP_Networking::Port::send_receive(void) WITH_SEMAPHORE(sem); writebuffer->advance(ret); active = true; + } else if (errno == ENOTCONN && + (type == NetworkPortType::TCP_CLIENT || type == NetworkPortType::TCP_SERVER)) { + // close socket and mark as disconnected, so we can reconnect with another client or when server comes back + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "TCP[%u]: disconnected", unsigned(state.idx)); + sock->close(); + delete sock; + sock = nullptr; + connected = false; } } From a4bfab8cdc762609ff6df03a0d07450ad657d22f Mon Sep 17 00:00:00 2001 From: Eric Katzfey Date: Mon, 15 Jul 2024 17:32:17 -0700 Subject: [PATCH 032/232] Tools: Added default parameter file for ModalAI D0013 drone --- Tools/Frame_params/ModalAI/D0013.parm | 109 ++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 Tools/Frame_params/ModalAI/D0013.parm diff --git a/Tools/Frame_params/ModalAI/D0013.parm b/Tools/Frame_params/ModalAI/D0013.parm new file mode 100644 index 0000000000000..1d3fcf65139cb --- /dev/null +++ b/Tools/Frame_params/ModalAI/D0013.parm @@ -0,0 +1,109 @@ +# parameters for the Stinger drone + +# flight modes +FLTMODE1 5 +FLTMODE4 2 +FLTMODE_CH 6 + +# enable PID logging +LOG_BITMASK 65535 + +# mag field varies quite a lot between batteries +ARMING_MAGTHRESH 200 + +# IMU orientation +# 4 = YAW 180 +AHRS_ORIENTATION 4 + +# Forced external compass +COMPASS_EXTERNAL 2 +# compass orientation +# 2 = YAW 90 +COMPASS_ORIENT 8 + +# filtering +INS_GYRO_FILTER 40 +INS_HNTCH_ENABLE 1 +INS_HNTCH_ATT 40.0 +INS_HNTCH_BW 50.0 +INS_HNTCH_FM_RAT 1.0 +INS_HNTCH_FREQ 100.0 +INS_HNTCH_HMNCS 7 +INS_HNTCH_MODE 3 +INS_HNTCH_OPTS 2 +INS_HNTCH_REF 1.0 + +# run IMU at 2kHz +INS_GYRO_RATE 1 + +# a bit more agressive loiter +PILOT_SPEED_UP 500 +LOIT_BRK_ACCEL 500 +LOIT_BRK_JERK 1000 +LOIT_BRK_DELAY 0.200000 + +# Tune parameters from Quik Tune +ATC_ACCEL_Y_MAX 30000.0 +ATC_ACCEL_R_MAX 125000.0 +ATC_ACCEL_P_MAX 125000.0 +ATC_RAT_PIT_D 0.002856164472177625 +ATC_RAT_PIT_FLTD 40.0 +ATC_RAT_PIT_FLTT 40.0 +ATC_RAT_PIT_I 0.124929137527942657 +ATC_RAT_PIT_P 0.124929137527942657 +ATC_RAT_PIT_SMAX 50.0 +ATC_RAT_RLL_D 0.001519999350421131 +ATC_RAT_RLL_FLTD 40.0 +ATC_RAT_RLL_FLTT 40.0 +ATC_RAT_RLL_I 0.075611755251884460 +ATC_RAT_RLL_P 0.075611755251884460 +ATC_RAT_RLL_SMAX 50.0 +ATC_RAT_YAW_D 0.010000008158385754 +ATC_RAT_YAW_FLTD 40.0 +ATC_RAT_YAW_FLTE 2.0 +ATC_RAT_YAW_FLTT 40.0 +ATC_RAT_YAW_I 0.050000030547380447 +ATC_RAT_YAW_P 0.500000298023223877 +ATC_RAT_YAW_SMAX 50.0 + +# battery setup +BATT_LOW_VOLT 14.2 +BATT_OPTIONS 64 +BATT_VOLT_PIN 1 +BATT_CURR_PIN 2 +BATT_VOLT_MULT 1 +BATT_AMP_PERVLT 1 +BATT_AMP_OFFSET 0.0 + +# 4S battery range +MOT_BAT_VOLT_MAX 16.800000 +MOT_BAT_VOLT_MIN 13.200000 + +# Learned hover thrust +MOT_THST_EXPO 0.550000011920928955 +MOT_THST_HOVER 0.130549192428588867 + +# quad-X +FRAME_CLASS 1 + +# tweak R/C inputs +RC1_MIN 1000 +RC1_MAX 2000 +RC1_DZ 40 +RC2_MIN 1000 +RC2_MAX 2000 +RC2_REVERSED 1 +RC3_MIN 1000 +RC3_MAX 2000 +RC4_MIN 1000 +RC4_MAX 2000 +RC4_DZ 40 + +# add arming on right switch +RC7_OPTION 153 + +# Motor mappings +SERVO1_FUNCTION 33 +SERVO2_FUNCTION 36 +SERVO3_FUNCTION 34 +SERVO4_FUNCTION 35 From 2f0f7aa669ef6495c1b4a400c7760ace97fc7210 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 19 Jul 2024 16:58:05 +1000 Subject: [PATCH 033/232] autotest: tidy Copter flip test --- Tools/autotest/arducopter.py | 68 +++++++++++++++--------------------- 1 file changed, 29 insertions(+), 39 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 21efa3ef5fac1..1766e6ac77d74 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -2266,46 +2266,36 @@ def MagFail(self): def ModeFlip(self): '''Fly Flip Mode''' - ex = None - try: - self.set_message_rate_hz(mavutil.mavlink.MAVLINK_MSG_ID_ATTITUDE, 100) + self.context_set_message_rate_hz(mavutil.mavlink.MAVLINK_MSG_ID_ATTITUDE, 100) - self.takeoff(20) - self.hover() - old_speedup = self.get_parameter("SIM_SPEEDUP") - self.set_parameter('SIM_SPEEDUP', 1) - self.progress("Flipping in roll") - self.set_rc(1, 1700) - self.send_cmd_do_set_mode('FLIP') # don't wait for success - self.wait_attitude(despitch=0, desroll=45, tolerance=30) - self.wait_attitude(despitch=0, desroll=90, tolerance=30) - self.wait_attitude(despitch=0, desroll=-45, tolerance=30) - self.progress("Waiting for level") - self.set_rc(1, 1500) # can't change quickly enough! - self.wait_attitude(despitch=0, desroll=0, tolerance=5) - - self.progress("Regaining altitude") - self.change_mode('ALT_HOLD') - self.wait_altitude(19, 60, relative=True) - - self.progress("Flipping in pitch") - self.set_rc(2, 1700) - self.send_cmd_do_set_mode('FLIP') # don't wait for success - self.wait_attitude(despitch=45, desroll=0, tolerance=30) - # can't check roll here as it flips from 0 to -180.. - self.wait_attitude(despitch=90, tolerance=30) - self.wait_attitude(despitch=-45, tolerance=30) - self.progress("Waiting for level") - self.set_rc(2, 1500) # can't change quickly enough! - self.wait_attitude(despitch=0, desroll=0, tolerance=5) - self.set_parameter('SIM_SPEEDUP', old_speedup) - self.do_RTL() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.set_message_rate_hz(mavutil.mavlink.MAVLINK_MSG_ID_ATTITUDE, 0) - if ex is not None: - raise ex + self.takeoff(20) + + self.progress("Flipping in roll") + self.set_rc(1, 1700) + self.send_cmd_do_set_mode('FLIP') # don't wait for success + self.wait_attitude(despitch=0, desroll=45, tolerance=30) + self.wait_attitude(despitch=0, desroll=90, tolerance=30) + self.wait_attitude(despitch=0, desroll=-45, tolerance=30) + self.progress("Waiting for level") + self.set_rc(1, 1500) # can't change quickly enough! + self.wait_attitude(despitch=0, desroll=0, tolerance=5) + + self.progress("Regaining altitude") + self.change_mode('ALT_HOLD') + self.wait_altitude(19, 60, relative=True) + + self.progress("Flipping in pitch") + self.set_rc(2, 1700) + self.send_cmd_do_set_mode('FLIP') # don't wait for success + self.wait_attitude(despitch=45, desroll=0, tolerance=30) + # can't check roll here as it flips from 0 to -180.. + self.wait_attitude(despitch=90, tolerance=30) + self.wait_attitude(despitch=-45, tolerance=30) + self.progress("Waiting for level") + self.set_rc(2, 1500) # can't change quickly enough! + self.wait_attitude(despitch=0, desroll=0, tolerance=5) + + self.do_RTL() def configure_EKFs_to_use_optical_flow_instead_of_GPS(self): '''configure EKF to use optical flow instead of GPS''' From 1626611e0b70c5443ffbd855b11ed52632760c9b Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 19 Jul 2024 09:45:57 +1000 Subject: [PATCH 034/232] SITL: add documentation for SIM_ACC?_RND parameters --- libraries/SITL/SITL.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libraries/SITL/SITL.cpp b/libraries/SITL/SITL.cpp index 49c344b6e7fb0..a21e744c349b5 100644 --- a/libraries/SITL/SITL.cpp +++ b/libraries/SITL/SITL.cpp @@ -924,11 +924,21 @@ const AP_Param::GroupInfo SIM::var_ins[] = { #if INS_MAX_INSTANCES > 2 AP_GROUPINFO("GYR3_RND", 10, SIM, gyro_noise[2], 0), #endif + // @Param: ACC1_RND + // @DisplayName: Accel 1 motor noise factor + // @Description: scaling factor for simulated vibration from motors + // @User: Advanced AP_GROUPINFO("ACC1_RND", 11, SIM, accel_noise[0], 0), #if INS_MAX_INSTANCES > 1 + // @Param: ACC2_RND + // @DisplayName: Accel 2 motor noise factor + // @CopyFieldsFrom: SIM_ACC1_RND AP_GROUPINFO("ACC2_RND", 12, SIM, accel_noise[1], 0), #endif #if INS_MAX_INSTANCES > 2 + // @Param: ACC3_RND + // @DisplayName: Accel 3 motor noise factor + // @CopyFieldsFrom: SIM_ACC1_RND AP_GROUPINFO("ACC3_RND", 13, SIM, accel_noise[2], 0), #endif // @Param: GYR1_SCALE @@ -1106,6 +1116,9 @@ const AP_Param::GroupInfo SIM::var_ins[] = { // @Vector3Parameter: 1 AP_GROUPINFO("GYR4_SCALE", 36, SIM, gyro_scale[3], 0), + // @Param: ACC4_RND + // @DisplayName: Accel 4 motor noise factor + // @CopyFieldsFrom: SIM_ACC1_RND AP_GROUPINFO("ACC4_RND", 37, SIM, accel_noise[3], 0), AP_GROUPINFO("GYR4_RND", 38, SIM, gyro_noise[3], 0), @@ -1156,6 +1169,9 @@ const AP_Param::GroupInfo SIM::var_ins[] = { // @Vector3Parameter: 1 AP_GROUPINFO("GYR5_SCALE", 43, SIM, gyro_scale[4], 0), + // @Param: ACC5_RND + // @DisplayName: Accel 5 motor noise factor + // @CopyFieldsFrom: SIM_ACC1_RND AP_GROUPINFO("ACC5_RND", 44, SIM, accel_noise[4], 0), AP_GROUPINFO("GYR5_RND", 45, SIM, gyro_noise[4], 0), From 9c10e641682d443a158d58292421b0238b73a939 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 19 Jul 2024 09:45:57 +1000 Subject: [PATCH 035/232] Tools: add documentation for SIM_ACC?_RND parameters --- Tools/autotest/vehicle_test_suite.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index ddb506b58518a..4677be0ab8afc 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -2384,11 +2384,6 @@ def test_adsb_send_threatening_adsb_message(self, here, offset_ne=None): def get_sim_parameter_documentation_get_whitelist(self): # common parameters ret = set([ - "SIM_ACC1_RND", - "SIM_ACC2_RND", - "SIM_ACC3_RND", - "SIM_ACC4_RND", - "SIM_ACC5_RND", "SIM_ACC_FILE_RW", "SIM_ACC_TRIM_X", "SIM_ACC_TRIM_Y", From 6eeaa10b7ef228e5c872333a107642f7e70d47f9 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 11:52:36 +1000 Subject: [PATCH 036/232] Tools: add test for final-yaw behaviour in Auto mode RTL --- Tools/autotest/arducopter.py | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 1766e6ac77d74..f733d92183720 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -11620,6 +11620,58 @@ def AutoContinueOnRCFailsafe(self): self.wait_groundspeed(0, 0.1, minimum_duration=30, timeout=450) self.do_RTL() + def MissionRTLYawBehaviour(self): + '''check end-of-mission yaw behaviour''' + self.set_parameters({ + "AUTO_OPTIONS": 3, + }) + + self.start_subtest("behaviour with WP_YAW_BEHAVE set to next-waypoint-except-RTL") + self.upload_simple_relhome_mission([ + # N E U + (mavutil.mavlink.MAV_CMD_NAV_TAKEOFF, 0, 0, 10), + (mavutil.mavlink.MAV_CMD_NAV_WAYPOINT, 20, 0, 10), + (mavutil.mavlink.MAV_CMD_NAV_RETURN_TO_LAUNCH, 0, 0, 0), + ]) + self.change_mode('AUTO') + self.wait_ready_to_arm() + original_heading = self.get_heading() + if abs(original_heading) < 5: + raise NotAchievedException(f"Bad original heading {original_heading}") + self.arm_vehicle() + self.wait_current_waypoint(3) + self.wait_rtl_complete() + self.wait_disarmed() + if abs(self.get_heading()) > 5: + raise NotAchievedException("Should have yaw zero without option") + + # must change out of auto and back in again to reset state machine: + self.change_mode('LOITER') + self.change_mode('AUTO') + + self.start_subtest("behaviour with WP_YAW_BEHAVE set to next-waypoint") + self.upload_simple_relhome_mission([ + # N E U + (mavutil.mavlink.MAV_CMD_NAV_TAKEOFF, 0, 0, 10), + (mavutil.mavlink.MAV_CMD_NAV_WAYPOINT, 0, 20, 20), + (mavutil.mavlink.MAV_CMD_NAV_RETURN_TO_LAUNCH, 0, 0, 0), + ]) + self.set_parameters({ + "WP_YAW_BEHAVIOR": 1, # look at next waypoint (including in RTL) + }) + self.change_mode('AUTO') + self.wait_ready_to_arm() + original_heading = self.get_heading() + if abs(original_heading) > 1: + raise NotAchievedException("Bad original heading") + self.arm_vehicle() + self.wait_current_waypoint(3) + self.wait_rtl_complete() + self.wait_disarmed() + new_heading = self.get_heading() + if abs(new_heading - original_heading) > 5: + raise NotAchievedException(f"Should return to original heading want={original_heading} got={new_heading}") + def tests2b(self): # this block currently around 9.5mins here '''return list of all tests''' ret = ([ @@ -11714,6 +11766,7 @@ def tests2b(self): # this block currently around 9.5mins here self.GripperReleaseOnThrustLoss, self.REQUIRE_POSITION_FOR_ARMING, self.LoggingFormat, + self.MissionRTLYawBehaviour, ]) return ret From 887a890c4a74df19ef5ff959d9ead9e244959766 Mon Sep 17 00:00:00 2001 From: Stephen Dade Date: Tue, 16 Jul 2024 20:53:20 +1000 Subject: [PATCH 037/232] SITL: Add skid steering motorboat --- libraries/SITL/SIM_Sailboat.cpp | 40 +++++++++++++++++++++++++-------- libraries/SITL/SIM_Sailboat.h | 1 + 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/libraries/SITL/SIM_Sailboat.cpp b/libraries/SITL/SIM_Sailboat.cpp index 7d3dba67457ad..846f077f43f96 100644 --- a/libraries/SITL/SIM_Sailboat.cpp +++ b/libraries/SITL/SIM_Sailboat.cpp @@ -32,6 +32,8 @@ namespace SITL { #define STEERING_SERVO_CH 0 // steering controlled by servo output 1 #define MAINSAIL_SERVO_CH 3 // main sail controlled by servo output 4 #define THROTTLE_SERVO_CH 2 // throttle controlled by servo output 3 +#define MOTORLEFT_SERVO_CH 0 // skid-steering left motor controlled by servo output 1 +#define MOTORRIGHT_SERVO_CH 2 // skid-steering right motor controlled by servo output 3 #define DIRECT_WING_SERVO_CH 4 // very roughly sort of a stability factors for waves @@ -45,6 +47,7 @@ Sailboat::Sailboat(const char *frame_str) : sail_area(1.0) { motor_connected = (strcmp(frame_str, "sailboat-motor") == 0); + skid_steering = strstr(frame_str, "skid") != nullptr; lock_step_scheduled = true; } @@ -97,13 +100,19 @@ float Sailboat::get_turn_circle(float steering) const // return yaw rate in deg/sec given a steering input (in the range -1 to +1) and speed in m/s float Sailboat::get_yaw_rate(float steering, float speed) const { - if (is_zero(steering) || is_zero(speed)) { - return 0; + float rate = 0.0f; + if (is_zero(steering) || (!skid_steering && is_zero(speed))) { + return rate; + } + + if (is_zero(speed) && skid_steering) { + rate = steering * M_PI * 5; + } else { + float d = get_turn_circle(steering); + float c = M_PI * d; + float t = c / speed; + rate = 360.0f / t; } - float d = get_turn_circle(steering); - float c = M_PI * d; - float t = c / speed; - float rate = 360.0f / t; return rate; } @@ -179,7 +188,14 @@ void Sailboat::update(const struct sitl_input &input) update_wind(input); // in sailboats the steering controls the rudder, the throttle controls the main sail position - float steering = 2*((input.servos[STEERING_SERVO_CH]-1000)/1000.0f - 0.5f); + float steering = 0.0f; + if (skid_steering) { + float steering_left = 2.0f*((input.servos[MOTORLEFT_SERVO_CH]-1000)/1000.0f - 0.5f); + float steering_right = 2.0f*((input.servos[MOTORRIGHT_SERVO_CH]-1000)/1000.0f - 0.5f); + steering = steering_left - steering_right; + } else { + steering = 2*((input.servos[STEERING_SERVO_CH]-1000)/1000.0f - 0.5f); + } // calculate apparent wind in earth-frame (this is the direction the wind is coming from) // Note than the SITL wind direction is defined as the direction the wind is travelling to @@ -257,8 +273,14 @@ void Sailboat::update(const struct sitl_input &input) // gives throttle force == hull drag at 10m/s float throttle_force = 0.0f; if (motor_connected) { - const uint16_t throttle_out = constrain_int16(input.servos[THROTTLE_SERVO_CH], 1000, 2000); - throttle_force = (throttle_out-1500) * 0.1f; + if (skid_steering) { + const uint16_t throttle_left = constrain_int16(input.servos[MOTORLEFT_SERVO_CH], 1000, 2000); + const uint16_t throttle_right = constrain_int16(input.servos[MOTORRIGHT_SERVO_CH], 1000, 2000); + throttle_force = (0.5f*(throttle_left + throttle_right)-1500) * 0.1f; + } else { + const uint16_t throttle_out = constrain_int16(input.servos[THROTTLE_SERVO_CH], 1000, 2000); + throttle_force = (throttle_out-1500) * 0.1f; + } } // accel in body frame due acceleration from sail and deceleration from hull friction diff --git a/libraries/SITL/SIM_Sailboat.h b/libraries/SITL/SIM_Sailboat.h index 4cb70e0448309..e17d2c05dcd42 100644 --- a/libraries/SITL/SIM_Sailboat.h +++ b/libraries/SITL/SIM_Sailboat.h @@ -41,6 +41,7 @@ class Sailboat : public Aircraft { protected: bool motor_connected; // true if this frame has a motor + bool skid_steering; // true if this vehicle is a skid-steering vehicle float sail_area; // 1.0 for normal area private: From 8674bb84a6ab666bb42f75d0a52a945b9b813764 Mon Sep 17 00:00:00 2001 From: Stephen Dade Date: Tue, 16 Jul 2024 20:53:34 +1000 Subject: [PATCH 038/232] Tools: Add skid steering motorboat --- Tools/autotest/pysim/vehicleinfo.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Tools/autotest/pysim/vehicleinfo.py b/Tools/autotest/pysim/vehicleinfo.py index 3682dbb01ac11..73349731a3f92 100644 --- a/Tools/autotest/pysim/vehicleinfo.py +++ b/Tools/autotest/pysim/vehicleinfo.py @@ -407,6 +407,12 @@ def __init__(self): "default_params_filename": ["default_params/rover.parm", "default_params/motorboat.parm"], }, + "motorboat-skid": { + "waf_target": "bin/ardurover", + "default_params_filename": ["default_params/rover.parm", + "default_params/motorboat.parm", + "default_params/rover-skid.parm"], + }, "sailboat": { "waf_target": "bin/ardurover", "default_params_filename": ["default_params/rover.parm", From 5919ef69cbb948ee01d3669b648d039afd68692d Mon Sep 17 00:00:00 2001 From: Rhys Mainwaring Date: Tue, 4 Jun 2024 18:22:20 +0100 Subject: [PATCH 039/232] AP_DDS: add param DDS_DOMAIN_ID - Require reboot. - Set DDS_DOMAIN_ID range: 0 to 232.. Signed-off-by: Rhys Mainwaring --- libraries/AP_DDS/AP_DDS_Client.cpp | 11 +++++++++-- libraries/AP_DDS/AP_DDS_Client.h | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libraries/AP_DDS/AP_DDS_Client.cpp b/libraries/AP_DDS/AP_DDS_Client.cpp index 76df6f2bca508..eb54a54eff09f 100644 --- a/libraries/AP_DDS/AP_DDS_Client.cpp +++ b/libraries/AP_DDS/AP_DDS_Client.cpp @@ -74,6 +74,14 @@ const AP_Param::GroupInfo AP_DDS_Client::var_info[] { #endif + // @Param: _DOMAIN_ID + // @DisplayName: DDS DOMAIN ID + // @Description: Set the ROS_DOMAIN_ID + // @Range: 0 232 + // @RebootRequired: True + // @User: Standard + AP_GROUPINFO("_DOMAIN_ID", 4, AP_DDS_Client, domain_id, 0), + AP_GROUPEND }; @@ -819,9 +827,8 @@ bool AP_DDS_Client::create() .type = UXR_PARTICIPANT_ID }; const char* participant_name = "ardupilot_dds"; - const uint16_t domain_id = 0; const auto participant_req_id = uxr_buffer_create_participant_bin(&session, reliable_out, participant_id, - domain_id, participant_name, UXR_REPLACE); + static_cast(domain_id), participant_name, UXR_REPLACE); //Participant requests constexpr uint8_t nRequestsParticipant = 1; diff --git a/libraries/AP_DDS/AP_DDS_Client.h b/libraries/AP_DDS/AP_DDS_Client.h index e796b78edb3fd..ac11e53e572aa 100644 --- a/libraries/AP_DDS/AP_DDS_Client.h +++ b/libraries/AP_DDS/AP_DDS_Client.h @@ -213,6 +213,9 @@ class AP_DDS_Client //! @brief Parameter storage static const struct AP_Param::GroupInfo var_info[]; + //! @brief ROS_DOMAIN_ID + AP_Int32 domain_id; + //! @brief Enum used to mark a topic as a data reader or writer enum class Topic_rw : uint8_t { DataReader = 0, From 218724a3fe72da511cc7e7911482bd6d2530a057 Mon Sep 17 00:00:00 2001 From: rushyam Date: Fri, 21 Jun 2024 11:27:31 +0530 Subject: [PATCH 040/232] Tools: ros2: correct ros_ws to ros2_ws ros_ws -> ros2_ws --- Tools/ros2/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Tools/ros2/README.md b/Tools/ros2/README.md index 8c13f6275f11b..83014df4d52a8 100644 --- a/Tools/ros2/README.md +++ b/Tools/ros2/README.md @@ -38,7 +38,7 @@ The packages depend on: #### 1. Create a workspace folder ```bash -mkdir -p ~/ros_ws/src && cd ~/ros_ws/src +mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src ``` The ROS 2 tutorials contain more details regarding [ROS 2 workspaces](https://docs.ros.org/en/humble/Tutorials/Workspace/Creating-A-Workspace.html). @@ -54,7 +54,7 @@ vcs import --recursive < ros2.repos #### 3. Update dependencies ```bash -cd ~/ros_ws +cd ~/ros2_ws source /opt/ros/humble/setup.bash sudo apt update rosdep update @@ -72,7 +72,7 @@ ROS_DISTRO=humble ``` ```bash -cd ~/ros_ws +cd ~/ros2_ws colcon build --cmake-args -DBUILD_TESTING=ON ``` @@ -92,7 +92,7 @@ must be built from source and additional compiler flags are needed. #### 1. Create a workspace folder ```bash -mkdir -p ~/ros_ws/src && cd ~/ros_ws/src +mkdir -p ~/ros2_ws/src && cd ~/ros2_ws/src ``` #### 2. Get the `ros2_macos.repos` file @@ -108,7 +108,7 @@ vcs import --recursive < ros2_macos.repos #### 3. Update dependencies ```bash -cd ~/ros_ws +cd ~/ros2_ws source /{path_to_your_ros_distro_workspace}/install/setup.zsh ``` From aab1ae4018a23e3d0bb9e2883f6eca82115d38dc Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 18 Jul 2024 09:42:46 +1000 Subject: [PATCH 041/232] autotest: test Solo mount --- Tools/autotest/arducopter.py | 100 ++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 49 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index f733d92183720..ade0324672ec4 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -5245,6 +5245,7 @@ def constrained_mount_pitch(self, pitch_angle_deg, mount_instance=1): def test_mount_pitch(self, despitch, despitch_tolerance, mount_mode, timeout=10, hold=0, constrained=True): tstart = self.get_sim_time() success_start = 0 + while True: now = self.get_sim_time_cached() if now - tstart > timeout: @@ -5257,7 +5258,7 @@ def test_mount_pitch(self, despitch, despitch_tolerance, mount_mode, timeout=10, '''retrieve latest angles from GIMBAL_DEVICE_ATTITUDE_STATUS''' mount_roll, mount_pitch, mount_yaw = self.get_mount_roll_pitch_yaw_deg() - self.progress("despitch=%f roll=%f pitch=%f yaw=%f" % (despitch, mount_roll, mount_pitch, mount_yaw)) + # self.progress("despitch=%f roll=%f pitch=%f yaw=%f" % (despitch, mount_roll, mount_pitch, mount_yaw)) if abs(despitch - mount_pitch) > despitch_tolerance: self.progress("Mount pitch incorrect: got=%f want=%f (+/- %f)" % (mount_pitch, despitch, despitch_tolerance)) @@ -5333,9 +5334,9 @@ def set_mount_mode(self, mount_mode): p3=0, # stabilize pitch (unsupported) ) - def test_mount_rc_targetting(self): + def test_mount_rc_targetting(self, pitch_rc_neutral=1500, do_rate_tests=True): '''called in multipleplaces to make sure that mount RC targetting works''' - try: + if True: self.context_push() self.set_parameters({ 'RC6_OPTION': 0, @@ -5395,6 +5396,13 @@ def test_mount_rc_targetting(self): self.set_rc(12, 1500) + if do_rate_tests: + self.test_mount_rc_targetting_rate_control() + + self.context_pop() + + def test_mount_rc_targetting_rate_control(self, pitch_rc_neutral=1500): + if True: self.progress("Testing RC rate control") self.set_parameter('MNT1_RC_RATE', 10) self.test_mount_pitch(0, 1, mavutil.mavlink.MAV_MOUNT_MODE_RC_TARGETING) @@ -5417,46 +5425,21 @@ def test_mount_rc_targetting(self): self.set_rc(12, 1500) self.test_mount_pitch(0, 0.1, mavutil.mavlink.MAV_MOUNT_MODE_RC_TARGETING) - self.context_pop() - - except Exception as e: - self.print_exception_caught(e) - self.context_pop() - raise e - - def Mount(self): - '''Test Camera/Antenna Mount''' - ex = None - self.context_push() - old_srcSystem = self.mav.mav.srcSystem - self.mav.mav.srcSystem = 250 - self.set_parameter("DISARM_DELAY", 0) - try: - '''start by disabling GCS failsafe, otherwise we immediately disarm - due to (apparently) not receiving traffic from the GCS for - too long. This is probably a function of --speedup''' - self.set_parameter("FS_GCS_ENABLE", 0) - - # setup mount parameters - self.setup_servo_mount() - self.reboot_sitl() # to handle MNT_TYPE changing - + def mount_test_body(self, pitch_rc_neutral=1500, do_rate_tests=True, constrain_sysid_target=True): + '''Test Camera/Antenna Mount - assumes a camera is set up and ready to go''' + if True: # make sure we're getting gimbal device attitude status - self.assert_receive_message('GIMBAL_DEVICE_ATTITUDE_STATUS', timeout=5) + self.assert_receive_message('GIMBAL_DEVICE_ATTITUDE_STATUS', timeout=5, very_verbose=True) # change mount to neutral mode (point forward, not stabilising) self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_NEUTRAL) - # test pitch is not stabilising + # test pitch is not neutral to start with mount_roll_deg, mount_pitch_deg, mount_yaw_deg = self.get_mount_roll_pitch_yaw_deg() if mount_roll_deg != 0 or mount_pitch_deg != 0 or mount_yaw_deg != 0: - raise NotAchievedException("Mount stabilising when not requested") - - self.change_mode('GUIDED') - self.wait_ready_to_arm() - self.arm_vehicle() + raise NotAchievedException("Mount not neutral") - self.user_takeoff() + self.takeoff(30, mode='GUIDED') # pitch vehicle back and confirm gimbal is still not stabilising despitch = 10 @@ -5474,7 +5457,7 @@ def Mount(self): # center RC tilt control and change mount to RC_TARGETING mode self.progress("Gimbal to RC Targetting mode") - self.set_rc(6, 1500) + self.set_rc(6, pitch_rc_neutral) self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_RC_TARGETING) # pitch vehicle back and confirm gimbal is stabilising @@ -5520,7 +5503,10 @@ def Mount(self): self.progress("Testing mount RC targetting") self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_RC_TARGETING) - self.test_mount_rc_targetting() + self.test_mount_rc_targetting( + pitch_rc_neutral=pitch_rc_neutral, + do_rate_tests=do_rate_tests, + ) self.progress("Testing mount ROI behaviour") self.test_mount_pitch(0, 0.1, mavutil.mavlink.MAV_MOUNT_MODE_RC_TARGETING) @@ -5658,24 +5644,39 @@ def Mount(self): 0, # vz 0 # heading ) - self.test_mount_pitch(68, 5, mavutil.mavlink.MAV_MOUNT_MODE_SYSID_TARGET, hold=2) + self.test_mount_pitch( + 68, + 5, + mavutil.mavlink.MAV_MOUNT_MODE_SYSID_TARGET, + hold=2, + constrained=constrain_sysid_target, + ) self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_NEUTRAL) self.test_mount_pitch(0, 0.1, mavutil.mavlink.MAV_MOUNT_MODE_NEUTRAL) - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.mav.mav.srcSystem = old_srcSystem - self.disarm_vehicle(force=True) - - self.context_pop() + self.disarm_vehicle(force=True) - self.reboot_sitl() # to handle MNT1_TYPE changing + def Mount(self): + '''test servo mount''' + self.setup_servo_mount() + self.reboot_sitl() # to handle MNT_TYPE changing + self.mount_test_body() - if ex is not None: - raise ex + def MountSolo(self): + '''test type=2, a "Solo" mount''' + self.set_parameters({ + "MNT1_TYPE": 2, + "RC6_OPTION": 213, # MOUNT1_PITCH + }) + self.customise_SITL_commandline([ + "--gimbal" # connects on port 5762 + ]) + self.mount_test_body( + pitch_rc_neutral=1818, + do_rate_tests=False, # solo can't do rate control (yet?) + constrain_sysid_target=False, # not everything constrains all angles + ) def assert_mount_rpy(self, r, p, y, tolerance=1): '''assert mount atttiude in degrees''' @@ -11730,6 +11731,7 @@ def tests2b(self): # this block currently around 9.5mins here self.TerrainDBPreArm, self.ThrottleGainBoost, self.ScriptMountPOI, + self.MountSolo, self.FlyMissionTwice, self.FlyMissionTwiceWithReset, self.MissionIndexValidity, From 70729df4c0891a88c285c7b08d79b9868f1ac8d5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 18 Jul 2024 10:46:34 +1000 Subject: [PATCH 042/232] AP_HAL: enable Solo Gimbal in SITL --- libraries/AP_HAL/board/sitl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/AP_HAL/board/sitl.h b/libraries/AP_HAL/board/sitl.h index 0eae8e932a3c1..2710a78ff4ccb 100644 --- a/libraries/AP_HAL/board/sitl.h +++ b/libraries/AP_HAL/board/sitl.h @@ -90,3 +90,5 @@ #ifndef AP_FILTER_ENABLED #define AP_FILTER_ENABLED 1 #endif + +#define HAL_SOLO_GIMBAL_ENABLED 1 From 16a9e53bdb5933de2995bec1d07123deb3374682 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 18 Jul 2024 10:48:29 +1000 Subject: [PATCH 043/232] AP_Mount: tidy Solo defines --- libraries/AP_Mount/AP_Mount_SoloGimbal.cpp | 5 ++++- libraries/AP_Mount/AP_Mount_SoloGimbal.h | 6 ++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_SoloGimbal.cpp b/libraries/AP_Mount/AP_Mount_SoloGimbal.cpp index b188f945a2f23..02c8c3f2475c1 100644 --- a/libraries/AP_Mount/AP_Mount_SoloGimbal.cpp +++ b/libraries/AP_Mount/AP_Mount_SoloGimbal.cpp @@ -1,6 +1,9 @@ -#include "AP_Mount_SoloGimbal.h" +#include "AP_Mount_config.h" + #if HAL_SOLO_GIMBAL_ENABLED +#include "AP_Mount_SoloGimbal.h" + #include "SoloGimbal.h" #include #include diff --git a/libraries/AP_Mount/AP_Mount_SoloGimbal.h b/libraries/AP_Mount/AP_Mount_SoloGimbal.h index 4e64233284a9f..ed32e6697bef6 100644 --- a/libraries/AP_Mount/AP_Mount_SoloGimbal.h +++ b/libraries/AP_Mount/AP_Mount_SoloGimbal.h @@ -3,18 +3,16 @@ */ #pragma once +#include "AP_Mount_config.h" -#include +#if HAL_SOLO_GIMBAL_ENABLED #include "AP_Mount_Backend.h" -#if HAL_SOLO_GIMBAL_ENABLED #include #include #include -#include #include "SoloGimbal.h" - class AP_Mount_SoloGimbal : public AP_Mount_Backend { From 2584cfd786305962eac462278b9541ed379014dc Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 18 Jul 2024 11:22:56 +1000 Subject: [PATCH 044/232] SITL: use distinct source system for gimbal gimbal was sending mavlink into ArduPilot with the target system's own sysid/compid tuple. ArduPilot was simply discarding these as its own messages being looped back to it --- libraries/SITL/SIM_Gimbal.cpp | 6 +++--- libraries/SITL/SIM_Gimbal.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/SITL/SIM_Gimbal.cpp b/libraries/SITL/SIM_Gimbal.cpp index 5aede11b3b40a..649159da9fea0 100644 --- a/libraries/SITL/SIM_Gimbal.cpp +++ b/libraries/SITL/SIM_Gimbal.cpp @@ -237,7 +237,7 @@ void Gimbal::param_send(const struct gimbal_param *p) param_value.param_type = MAV_PARAM_TYPE_REAL32; uint16_t len = mavlink_msg_param_value_encode_status(vehicle_system_id, - vehicle_component_id, + gimbal_component_id, &mavlink.status, &msg, ¶m_value); @@ -364,7 +364,7 @@ void Gimbal::send_report(void) heartbeat.custom_mode = 0; len = mavlink_msg_heartbeat_encode_status(vehicle_system_id, - vehicle_component_id, + gimbal_component_id, &mavlink.status, &msg, &heartbeat); @@ -394,7 +394,7 @@ void Gimbal::send_report(void) gimbal_report.joint_az = joint_angles.z; len = mavlink_msg_gimbal_report_encode_status(vehicle_system_id, - vehicle_component_id, + gimbal_component_id, &mavlink.status, &msg, &gimbal_report); diff --git a/libraries/SITL/SIM_Gimbal.h b/libraries/SITL/SIM_Gimbal.h index 2cedd3a1cf9c3..f77547af0105a 100644 --- a/libraries/SITL/SIM_Gimbal.h +++ b/libraries/SITL/SIM_Gimbal.h @@ -113,6 +113,9 @@ class Gimbal { uint32_t param_send_last_ms; uint8_t param_send_idx; + // component ID we send from: + const uint8_t gimbal_component_id = 154; // MAV_COMP_ID_GIMBAL + void send_report(void); void param_send(const struct gimbal_param *p); struct gimbal_param *param_find(const char *name); From dcf342d7e3c765f811a2d7c1ed523413e665b786 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 18 Jul 2024 13:30:39 +1000 Subject: [PATCH 045/232] SITL: add instructions on testing simulated mavlink gimbal --- libraries/SITL/SIM_Gimbal.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libraries/SITL/SIM_Gimbal.h b/libraries/SITL/SIM_Gimbal.h index f77547af0105a..e69c6f25916b3 100644 --- a/libraries/SITL/SIM_Gimbal.h +++ b/libraries/SITL/SIM_Gimbal.h @@ -14,6 +14,11 @@ */ /* gimbal simulator class + +./Tools/autotest/sim_vehicle.py -D -G -v ArduCopter --mavlink-gimbal +param set MNT1_TYPE 2 +param set RC6_OPTION 213 # MOUNT1_PITCH +rc 6 1818 # for neutral pitch input */ #pragma once From 9c1fe4e1c982a56867c9e3d94a5dda8b6f87be34 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 19 Jul 2024 12:30:56 +1000 Subject: [PATCH 046/232] SIM_VectorNav: stop using nmea_printf on buffer data can't use nmea_printf here as the buffer data won't be null-terminated --- libraries/SITL/SIM_VectorNav.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index ed4c1bcaedd53..b3f9ecf6a4d89 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -214,14 +214,24 @@ void VectorNav::update(void) } char receive_buf[50]; - const ssize_t n = read_from_autopilot(&receive_buf[0], ARRAY_SIZE(receive_buf)); - if (n > 0) { - if (strncmp(receive_buf, "$VNRRG,01", 9) == 0) { + ssize_t n = read_from_autopilot(&receive_buf[0], ARRAY_SIZE(receive_buf)); + if (n <= 0) { + return; + } + + // avoid parsing the NMEA stream here by making assumptions about + // how we receive configuration strings. Generally we can just + // echo back the configuration string to make the driver happy. + if (n >= 9) { + // intercept device-version query, respond with simulated version: + const char *ver_query_string = "$VNRRG,01"; + if (strncmp(receive_buf, ver_query_string, strlen(ver_query_string)) == 0) { nmea_printf("$VNRRG,01,VN-300-SITL"); - } else { - nmea_printf("$%s", receive_buf); + // consume the query so we don't "respond" twice: + memmove(&receive_buf[0], &receive_buf[strlen(ver_query_string)], n - strlen(ver_query_string)); + n -= strlen(ver_query_string); } } - + write_to_autopilot(receive_buf, n); } From aca9940534b451a3ce59aa36d6195d264e8b132c Mon Sep 17 00:00:00 2001 From: Willian Galvani Date: Sat, 20 Jul 2024 16:41:48 -0300 Subject: [PATCH 047/232] AP_Scripting: add Readme.md for generating message definitions --- libraries/AP_Scripting/modules/MAVLink/Readme.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 libraries/AP_Scripting/modules/MAVLink/Readme.md diff --git a/libraries/AP_Scripting/modules/MAVLink/Readme.md b/libraries/AP_Scripting/modules/MAVLink/Readme.md new file mode 100644 index 0000000000000..97924a1c33a07 --- /dev/null +++ b/libraries/AP_Scripting/modules/MAVLink/Readme.md @@ -0,0 +1,6 @@ +These .lua definition for messages can be generated using pymavlink with the following command: +(change the last path acoordingly to place the files where you need them) +``` +cd ardupilot/modules/mavlink +python ./pymavlink/tools/mavgen.py --lang Lua ./message_definitions/v1.0/all.xml --out ./modules/MAVLink +``` \ No newline at end of file From ae4254bba870cf1f3f225f6c2f947d4b5af2c8ac Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 14:47:48 +1000 Subject: [PATCH 048/232] SITL: rename SIM_Gimbal files to SIM_SoloGimbal --- libraries/SITL/{SIM_Gimbal.cpp => SIM_SoloGimbal.cpp} | 0 libraries/SITL/{SIM_Gimbal.h => SIM_SoloGimbal.h} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename libraries/SITL/{SIM_Gimbal.cpp => SIM_SoloGimbal.cpp} (100%) rename libraries/SITL/{SIM_Gimbal.h => SIM_SoloGimbal.h} (100%) diff --git a/libraries/SITL/SIM_Gimbal.cpp b/libraries/SITL/SIM_SoloGimbal.cpp similarity index 100% rename from libraries/SITL/SIM_Gimbal.cpp rename to libraries/SITL/SIM_SoloGimbal.cpp diff --git a/libraries/SITL/SIM_Gimbal.h b/libraries/SITL/SIM_SoloGimbal.h similarity index 100% rename from libraries/SITL/SIM_Gimbal.h rename to libraries/SITL/SIM_SoloGimbal.h From 1ce6aa7e38d022c46f6f555e3f457888c19b4f11 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 16:46:42 +1000 Subject: [PATCH 049/232] AP_HAL: adjust for renaming of Gimbal to SoloGimbal --- libraries/AP_HAL/SIMState.cpp | 2 +- libraries/AP_HAL/SIMState.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/AP_HAL/SIMState.cpp b/libraries/AP_HAL/SIMState.cpp index 46d7ea4796eba..f5c4783422004 100644 --- a/libraries/AP_HAL/SIMState.cpp +++ b/libraries/AP_HAL/SIMState.cpp @@ -131,7 +131,7 @@ void SIMState::fdm_input_local(void) // output JSON state to ride along flight controllers // ride_along.send(_sitl->state,sitl_model->get_position_relhome()); -#if HAL_SIM_GIMBAL_ENABLED +#if AP_SIM_SOLOGIMBAL_ENABLED if (gimbal != nullptr) { gimbal->update(); } diff --git a/libraries/AP_HAL/SIMState.h b/libraries/AP_HAL/SIMState.h index 0c84791f91ea3..f4343475715d2 100644 --- a/libraries/AP_HAL/SIMState.h +++ b/libraries/AP_HAL/SIMState.h @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include @@ -109,10 +109,10 @@ class AP_HAL::SIMState { // internal SITL model SITL::Aircraft *sitl_model; -#if HAL_SIM_GIMBAL_ENABLED +#if AP_SIM_SOLOGIMBAL_ENABLED // simulated gimbal bool enable_gimbal; - SITL::Gimbal *gimbal; + SITL::SoloGimbal *gimbal; #endif #if HAL_SIM_ADSB_ENABLED From 9b3809c89ff1c5c3f726dd81ed86b465725ae928 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 16:46:42 +1000 Subject: [PATCH 050/232] AP_HAL_SITL: adjust for renaming of Gimbal to SoloGimbal --- libraries/AP_HAL_SITL/SITL_State.cpp | 4 +++- libraries/AP_HAL_SITL/SITL_State_common.cpp | 2 +- libraries/AP_HAL_SITL/SITL_State_common.h | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/libraries/AP_HAL_SITL/SITL_State.cpp b/libraries/AP_HAL_SITL/SITL_State.cpp index 2d49bb606b07c..dcb11bb79543f 100644 --- a/libraries/AP_HAL_SITL/SITL_State.cpp +++ b/libraries/AP_HAL_SITL/SITL_State.cpp @@ -79,9 +79,11 @@ void SITL_State::_sitl_setup() if (_sitl != nullptr) { // setup some initial values _update_airspeed(0); +#if AP_SIM_SOLOGIMBAL_ENABLED if (enable_gimbal) { - gimbal = NEW_NOTHROW SITL::Gimbal(_sitl->state); + gimbal = NEW_NOTHROW SITL::SoloGimbal(_sitl->state); } +#endif sitl_model->set_buzzer(&_sitl->buzzer_sim); sitl_model->set_sprayer(&_sitl->sprayer_sim); diff --git a/libraries/AP_HAL_SITL/SITL_State_common.cpp b/libraries/AP_HAL_SITL/SITL_State_common.cpp index 1a45ed97d97b6..cf143e28bd3c7 100644 --- a/libraries/AP_HAL_SITL/SITL_State_common.cpp +++ b/libraries/AP_HAL_SITL/SITL_State_common.cpp @@ -332,7 +332,7 @@ SITL::SerialDevice *SITL_State_Common::create_serial_sim(const char *name, const */ void SITL_State_Common::sim_update(void) { -#if HAL_SIM_GIMBAL_ENABLED +#if AP_SIM_SOLOGIMBAL_ENABLED if (gimbal != nullptr) { gimbal->update(); } diff --git a/libraries/AP_HAL_SITL/SITL_State_common.h b/libraries/AP_HAL_SITL/SITL_State_common.h index 7bb4c04348f55..95ef129c1cce7 100644 --- a/libraries/AP_HAL_SITL/SITL_State_common.h +++ b/libraries/AP_HAL_SITL/SITL_State_common.h @@ -9,7 +9,7 @@ #define SITL_SERVO_PORT 20722 #include -#include +#include #include #include #include @@ -104,11 +104,11 @@ class HALSITL::SITL_State_Common { bool new_rc_input; uint16_t pwm_output[SITL_NUM_CHANNELS]; bool output_ready = false; - -#if HAL_SIM_GIMBAL_ENABLED + +#if AP_SIM_SOLOGIMBAL_ENABLED // simulated gimbal bool enable_gimbal; - SITL::Gimbal *gimbal; + SITL::SoloGimbal *gimbal; #endif #if HAL_SIM_ADSB_ENABLED From fc28e2d7b8537889ebf3f75d8fef00d256c6e2b8 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 16:46:42 +1000 Subject: [PATCH 051/232] SITL: adjust for renaming of Gimbal to SoloGimbal --- libraries/SITL/SIM_SoloGimbal.cpp | 26 ++++++++++++-------------- libraries/SITL/SIM_SoloGimbal.h | 19 ++++++++----------- libraries/SITL/SIM_config.h | 4 ++++ 3 files changed, 24 insertions(+), 25 deletions(-) diff --git a/libraries/SITL/SIM_SoloGimbal.cpp b/libraries/SITL/SIM_SoloGimbal.cpp index 649159da9fea0..123469344beba 100644 --- a/libraries/SITL/SIM_SoloGimbal.cpp +++ b/libraries/SITL/SIM_SoloGimbal.cpp @@ -16,16 +16,14 @@ gimbal simulator class for MAVLink gimbal */ -#include "SIM_Gimbal.h" +#include "SIM_SoloGimbal.h" -#if HAL_SIM_GIMBAL_ENABLED +#if AP_SIM_SOLOGIMBAL_ENABLED #include #include "SIM_Aircraft.h" -#include - extern const AP_HAL::HAL& hal; #define GIMBAL_DEBUG 0 @@ -38,7 +36,7 @@ extern const AP_HAL::HAL& hal; namespace SITL { -Gimbal::Gimbal(const struct sitl_fdm &_fdm) : +SoloGimbal::SoloGimbal(const struct sitl_fdm &_fdm) : fdm(_fdm), target_address("127.0.0.1"), target_port(5762), @@ -58,7 +56,7 @@ Gimbal::Gimbal(const struct sitl_fdm &_fdm) : /* update the gimbal state */ -void Gimbal::update(void) +void SoloGimbal::update(void) { // calculate delta time in seconds uint32_t now_us = AP_HAL::micros(); @@ -213,7 +211,7 @@ static struct gimbal_param { /* find a parameter structure */ -struct gimbal_param *Gimbal::param_find(const char *name) +struct gimbal_param *SoloGimbal::param_find(const char *name) { for (uint8_t i=0; i +#include "SIM_config.h" -#ifndef HAL_SIM_GIMBAL_ENABLED -#define HAL_SIM_GIMBAL_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) && !defined(HAL_BUILD_AP_PERIPH) -#endif - -#if HAL_SIM_GIMBAL_ENABLED +#if AP_SIM_SOLOGIMBAL_ENABLED +#include +#include #include -#include "SIM_Aircraft.h" - namespace SITL { -class Gimbal { +class SoloGimbal { public: - Gimbal(const struct sitl_fdm &_fdm); + SoloGimbal(const struct sitl_fdm &_fdm); void update(void); private: @@ -128,4 +124,5 @@ class Gimbal { } // namespace SITL -#endif // HAL_SIM_GIMBAL_ENABLED +#endif // AP_SIM_SOLOGIMBAL_ENABLED + diff --git a/libraries/SITL/SIM_config.h b/libraries/SITL/SIM_config.h index bd5d07e799c50..21986735f8923 100644 --- a/libraries/SITL/SIM_config.h +++ b/libraries/SITL/SIM_config.h @@ -121,3 +121,7 @@ #ifndef AP_SIM_GLIDER_ENABLED #define AP_SIM_GLIDER_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) #endif + +#ifndef AP_SIM_SOLOGIMBAL_ENABLED +#define AP_SIM_SOLOGIMBAL_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) +#endif From ed3aeb39fd61d0b9c420956b936e1e65de47a045 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 16:52:20 +1000 Subject: [PATCH 052/232] AP_HAL_SITL: split MAVLink and physical gimbal simulations --- libraries/AP_HAL_SITL/SITL_State.cpp | 2 +- libraries/AP_HAL_SITL/SITL_State_common.cpp | 2 +- libraries/AP_HAL_SITL/SITL_cmdline.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/AP_HAL_SITL/SITL_State.cpp b/libraries/AP_HAL_SITL/SITL_State.cpp index dcb11bb79543f..af55acaa1f844 100644 --- a/libraries/AP_HAL_SITL/SITL_State.cpp +++ b/libraries/AP_HAL_SITL/SITL_State.cpp @@ -81,7 +81,7 @@ void SITL_State::_sitl_setup() _update_airspeed(0); #if AP_SIM_SOLOGIMBAL_ENABLED if (enable_gimbal) { - gimbal = NEW_NOTHROW SITL::SoloGimbal(_sitl->state); + gimbal = NEW_NOTHROW SITL::SoloGimbal(); } #endif diff --git a/libraries/AP_HAL_SITL/SITL_State_common.cpp b/libraries/AP_HAL_SITL/SITL_State_common.cpp index cf143e28bd3c7..54a530bc447b1 100644 --- a/libraries/AP_HAL_SITL/SITL_State_common.cpp +++ b/libraries/AP_HAL_SITL/SITL_State_common.cpp @@ -334,7 +334,7 @@ void SITL_State_Common::sim_update(void) { #if AP_SIM_SOLOGIMBAL_ENABLED if (gimbal != nullptr) { - gimbal->update(); + gimbal->update(*sitl_model); } #endif #if HAL_SIM_ADSB_ENABLED diff --git a/libraries/AP_HAL_SITL/SITL_cmdline.cpp b/libraries/AP_HAL_SITL/SITL_cmdline.cpp index 30cea03245060..042bb2ce7f212 100644 --- a/libraries/AP_HAL_SITL/SITL_cmdline.cpp +++ b/libraries/AP_HAL_SITL/SITL_cmdline.cpp @@ -439,9 +439,11 @@ void SITL_State::_parse_command_line(int argc, char * const argv[]) case 'v': vehicle_str = gopt.optarg; break; +#if AP_SIM_SOLOGIMBAL_ENABLED case CMDLINE_GIMBAL: enable_gimbal = true; break; +#endif case CMDLINE_FGVIEW: _use_fg_view = true; break; From ba135b90080dd1ec5d596dad66382eb1b0591dcb Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 16:52:20 +1000 Subject: [PATCH 053/232] SITL: split MAVLink and physical gimbal simulations --- libraries/SITL/SIM_Gimbal.cpp | 184 ++++++++++++++++++++++++++++++ libraries/SITL/SIM_Gimbal.h | 96 ++++++++++++++++ libraries/SITL/SIM_SoloGimbal.cpp | 163 +++----------------------- libraries/SITL/SIM_SoloGimbal.h | 62 ++-------- libraries/SITL/SIM_config.h | 7 +- 5 files changed, 313 insertions(+), 199 deletions(-) create mode 100644 libraries/SITL/SIM_Gimbal.cpp create mode 100644 libraries/SITL/SIM_Gimbal.h diff --git a/libraries/SITL/SIM_Gimbal.cpp b/libraries/SITL/SIM_Gimbal.cpp new file mode 100644 index 0000000000000..a905a38d731d0 --- /dev/null +++ b/libraries/SITL/SIM_Gimbal.cpp @@ -0,0 +1,184 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +/* + gimbal simulator class for gimbal +*/ + +#include "SIM_Gimbal.h" + +#if AP_SIM_GIMBAL_ENABLED + +#include + +#include "SIM_Aircraft.h" + +extern const AP_HAL::HAL& hal; + +#define GIMBAL_DEBUG 0 + +#if GIMBAL_DEBUG +#define debug(fmt, args...) do { printf("GIMBAL: " fmt, ##args); } while(0) +#else +#define debug(fmt, args...) do { } while(0) +#endif + +namespace SITL { + +/* + update the gimbal state +*/ +void Gimbal::update(const class Aircraft &aircraft) +{ + // calculate delta time in seconds + uint32_t now_us = AP_HAL::micros(); + + float delta_t = (now_us - last_update_us) * 1.0e-6f; + last_update_us = now_us; + + const Matrix3f &vehicle_dcm = aircraft.get_dcm(); + if (!init_done) { + dcm = vehicle_dcm; + } + + const Vector3f &vehicle_gyro = AP::ins().get_gyro(); + const Vector3f &vehicle_accel_body = AP::ins().get_accel(); + + // take a copy of the demanded rates to bypass the limiter function for testing + Vector3f demRateRaw = demanded_angular_rate; + + // 1) Rotate the copters rotation rates into the gimbals frame of reference + // copterAngRate_G = transpose(DCMgimbal)*DCMcopter*copterAngRate + Vector3f copterAngRate_G = dcm.transposed()*vehicle_dcm*vehicle_gyro; + + // 2) Subtract the copters body rates to obtain a copter relative rotational + // rate vector (X,Y,Z) in gimbal sensor frame + // relativeGimbalRate(X,Y,Z) = gimbalRateDemand - copterAngRate_G + Vector3f relativeGimbalRate = demanded_angular_rate - copterAngRate_G; + + // calculate joint angles (euler312 order) + // calculate copter -> gimbal rotation matrix + Matrix3f rotmat_copter_gimbal = dcm.transposed() * vehicle_dcm; + + joint_angles = rotmat_copter_gimbal.transposed().to_euler312(); + + /* 4) For each of the three joints, calculate upper and lower rate limits + from the corresponding angle limits and current joint angles + + upperRatelimit = (jointAngle - lowerAngleLimit) * travelLimitGain + lowerRatelimit = (jointAngle - upperAngleLimit) * travelLimitGain + + travelLimitGain is equal to the inverse of the bump stop time constant and + should be set to something like 20 initially. If set too high it can cause + the rates to 'ring' when they the limiter is in force, particularly given + we are using a first order numerical integration. + */ + Vector3f upperRatelimit = -(joint_angles - upper_joint_limits) * travelLimitGain; + Vector3f lowerRatelimit = -(joint_angles - lower_joint_limits) * travelLimitGain; + + /* + 5) Calculate the gimbal joint rates (roll, elevation, azimuth) + + gimbalJointRates(roll, elev, azimuth) = Matrix*relativeGimbalRate(X,Y,Z) + + where matrix = + +- -+ + | cos(elevAngle), 0, sin(elevAngle) | + | | + | sin(elevAngle) tan(rollAngle), 1, -cos(elevAngle) tan(rollAngle) | + | | + | sin(elevAngle) cos(elevAngle) | + | - --------------, 0, -------------- | + | cos(rollAngle) cos(rollAngle) | + +- -+ + */ + float rollAngle = joint_angles.x; + float elevAngle = joint_angles.y; + Matrix3f matrix = Matrix3f(Vector3f(cosf(elevAngle), 0, sinf(elevAngle)), + Vector3f(sinf(elevAngle)*tanf(rollAngle), 1, -cosf(elevAngle)*tanf(rollAngle)), + Vector3f(-sinf(elevAngle)/cosf(rollAngle), 0, cosf(elevAngle)/cosf(rollAngle))); + Vector3f gimbalJointRates = matrix * relativeGimbalRate; + + // 6) Apply the rate limits from 4) + gimbalJointRates.x = constrain_float(gimbalJointRates.x, lowerRatelimit.x, upperRatelimit.x); + gimbalJointRates.y = constrain_float(gimbalJointRates.y, lowerRatelimit.y, upperRatelimit.y); + gimbalJointRates.z = constrain_float(gimbalJointRates.z, lowerRatelimit.z, upperRatelimit.z); + /* + 7) Convert the modified gimbal joint rates to body rates (still copter + relative) + relativeGimbalRate(X,Y,Z) = Matrix * gimbalJointRates(roll, elev, azimuth) + + where Matrix = + + +- -+ + | cos(elevAngle), 0, -cos(rollAngle) sin(elevAngle) | + | | + | 0, 1, sin(rollAngle) | + | | + | sin(elevAngle), 0, cos(elevAngle) cos(rollAngle) | + +- -+ + */ + matrix = Matrix3f(Vector3f(cosf(elevAngle), 0, -cosf(rollAngle)*sinf(elevAngle)), + Vector3f(0, 1, sinf(rollAngle)), + Vector3f(sinf(elevAngle), 0, cosf(elevAngle)*cosf(rollAngle))); + relativeGimbalRate = matrix * gimbalJointRates; + + // 8) Add to the result from step 1) to obtain the demanded gimbal body rates + // in an inertial frame of reference + // demandedGimbalRatesInertial(X,Y,Z) = relativeGimbalRate(X,Y,Z) + copterAngRate_G + // Vector3f demandedGimbalRatesInertial = relativeGimbalRate + copterAngRate_G; + + // for the moment we will set gyros equal to demanded_angular_rate + gimbal_angular_rate = demRateRaw; // demandedGimbalRatesInertial + true_gyro_bias - supplied_gyro_bias + + // update rotation of the gimbal + dcm.rotate(gimbal_angular_rate*delta_t); + dcm.normalize(); + + // calculate copter -> gimbal rotation matrix + rotmat_copter_gimbal = dcm.transposed() * vehicle_dcm; + + // calculate joint angles (euler312 order) + joint_angles = rotmat_copter_gimbal.transposed().to_euler312(); + + // update observed gyro + gyro = gimbal_angular_rate + true_gyro_bias; + + // update delta_angle (integrate) + delta_angle += gyro * delta_t; + + // calculate accel in gimbal body frame + Vector3f copter_accel_earth = vehicle_dcm * vehicle_accel_body; + Vector3f accel = dcm.transposed() * copter_accel_earth; + + // integrate velocity + delta_velocity += accel * delta_t; +} + +void Gimbal::get_deltas(Vector3f &_delta_angle, Vector3f &_delta_velocity, uint32_t &_delta_time_us) +{ + const uint32_t now_us = AP_HAL::micros(); + + _delta_angle = delta_angle; + _delta_velocity = delta_velocity; + _delta_time_us = now_us - delta_start_us; + + delta_angle.zero(); + delta_velocity.zero(); + delta_start_us = now_us; +} + +} // namespace SITL + +#endif // AP_SIM_GIMBAL_ENABLED diff --git a/libraries/SITL/SIM_Gimbal.h b/libraries/SITL/SIM_Gimbal.h new file mode 100644 index 0000000000000..d3814383b69ba --- /dev/null +++ b/libraries/SITL/SIM_Gimbal.h @@ -0,0 +1,96 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +/* + gimbal simulator class +*/ + +#pragma once + +#include "SIM_config.h" + +#if AP_SIM_GIMBAL_ENABLED + +#include +#include + +namespace SITL { + +class Gimbal { +public: + + void update(const class Aircraft &aircraft); + void set_demanded_rates(const Vector3f &rates) { + demanded_angular_rate = rates; + } + + void get_deltas(Vector3f &_delta_angle, Vector3f &_delta_velocity, uint32_t &_delta_time_us); + void get_joint_angles(Vector3f &_angles) { _angles = joint_angles; } + +private: + + // rotation matrix (gimbal body -> earth) + Matrix3f dcm; + bool init_done; + + // time of last update + uint32_t last_update_us; + + // true angular rate of gimbal in body frame (rad/s) + Vector3f gimbal_angular_rate; + + // observed angular rate (including biases) + Vector3f gyro; + + /* joint angles, in radians. in yaw/roll/pitch order. Relative to fwd. + So 0,0,0 points forward. + Pi/2,0,0 means pointing right + 0, Pi/2, 0 means pointing fwd, but rolled 90 degrees to right + 0, 0, -Pi/2, means pointing down + */ + Vector3f joint_angles; + + // physical constraints on joint angles in (roll, pitch, azimuth) order + Vector3f lower_joint_limits{radians(-40), radians(-135), radians(-7.5)}; + Vector3f upper_joint_limits{radians(40), radians(45), radians(7.5)}; + + const float travelLimitGain = 20; + + // true gyro bias + Vector3f true_gyro_bias; + + // time since delta angles/velocities returned + uint32_t delta_start_us; + + // integral of gyro vector over last time interval. In radians + Vector3f delta_angle; + + // integral of accel vector over last time interval. In m/s + Vector3f delta_velocity; + + /* + control variables from the vehicle + */ + // angular rate in rad/s. In body frame of gimbal + Vector3f demanded_angular_rate; + + // gyro bias provided by EKF on vehicle. In rad/s. + // Should be subtracted from the gyro readings to get true body + // rotatation rates + // Vector3f supplied_gyro_bias; +}; + +} // namespace SITL + +#endif // AP_SIM_GIMBAL_ENABLED diff --git a/libraries/SITL/SIM_SoloGimbal.cpp b/libraries/SITL/SIM_SoloGimbal.cpp index 123469344beba..dccf15727249e 100644 --- a/libraries/SITL/SIM_SoloGimbal.cpp +++ b/libraries/SITL/SIM_SoloGimbal.cpp @@ -36,149 +36,12 @@ extern const AP_HAL::HAL& hal; namespace SITL { -SoloGimbal::SoloGimbal(const struct sitl_fdm &_fdm) : - fdm(_fdm), - target_address("127.0.0.1"), - target_port(5762), - lower_joint_limits(radians(-40), radians(-135), radians(-7.5)), - upper_joint_limits(radians(40), radians(45), radians(7.5)), - travelLimitGain(20), - reporting_period_ms(10), - seen_heartbeat(false), - seen_gimbal_control(false), - mav_socket(false) -{ - memset(&mavlink, 0, sizeof(mavlink)); - fdm.quaternion.rotation_matrix(dcm); -} - - /* update the gimbal state */ -void SoloGimbal::update(void) +void SoloGimbal::update(const Aircraft &aircraft) { - // calculate delta time in seconds - uint32_t now_us = AP_HAL::micros(); - - float delta_t = (now_us - last_update_us) * 1.0e-6f; - last_update_us = now_us; - - Matrix3f vehicle_dcm; - fdm.quaternion.rotation_matrix(vehicle_dcm); - - const Vector3f &vehicle_gyro = AP::ins().get_gyro(); - const Vector3f &vehicle_accel_body = AP::ins().get_accel(); - - // take a copy of the demanded rates to bypass the limiter function for testing - Vector3f demRateRaw = demanded_angular_rate; - - // 1) Rotate the copters rotation rates into the gimbals frame of reference - // copterAngRate_G = transpose(DCMgimbal)*DCMcopter*copterAngRate - Vector3f copterAngRate_G = dcm.transposed()*vehicle_dcm*vehicle_gyro; - - // 2) Subtract the copters body rates to obtain a copter relative rotational - // rate vector (X,Y,Z) in gimbal sensor frame - // relativeGimbalRate(X,Y,Z) = gimbalRateDemand - copterAngRate_G - Vector3f relativeGimbalRate = demanded_angular_rate - copterAngRate_G; - - // calculate joint angles (euler312 order) - // calculate copter -> gimbal rotation matrix - Matrix3f rotmat_copter_gimbal = dcm.transposed() * vehicle_dcm; - - joint_angles = rotmat_copter_gimbal.transposed().to_euler312(); - - /* 4) For each of the three joints, calculate upper and lower rate limits - from the corresponding angle limits and current joint angles - - upperRatelimit = (jointAngle - lowerAngleLimit) * travelLimitGain - lowerRatelimit = (jointAngle - upperAngleLimit) * travelLimitGain - - travelLimitGain is equal to the inverse of the bump stop time constant and - should be set to something like 20 initially. If set too high it can cause - the rates to 'ring' when they the limiter is in force, particularly given - we are using a first order numerical integration. - */ - Vector3f upperRatelimit = -(joint_angles - upper_joint_limits) * travelLimitGain; - Vector3f lowerRatelimit = -(joint_angles - lower_joint_limits) * travelLimitGain; - - /* - 5) Calculate the gimbal joint rates (roll, elevation, azimuth) - - gimbalJointRates(roll, elev, azimuth) = Matrix*relativeGimbalRate(X,Y,Z) - - where matrix = - +- -+ - | cos(elevAngle), 0, sin(elevAngle) | - | | - | sin(elevAngle) tan(rollAngle), 1, -cos(elevAngle) tan(rollAngle) | - | | - | sin(elevAngle) cos(elevAngle) | - | - --------------, 0, -------------- | - | cos(rollAngle) cos(rollAngle) | - +- -+ - */ - float rollAngle = joint_angles.x; - float elevAngle = joint_angles.y; - Matrix3f matrix = Matrix3f(Vector3f(cosf(elevAngle), 0, sinf(elevAngle)), - Vector3f(sinf(elevAngle)*tanf(rollAngle), 1, -cosf(elevAngle)*tanf(rollAngle)), - Vector3f(-sinf(elevAngle)/cosf(rollAngle), 0, cosf(elevAngle)/cosf(rollAngle))); - Vector3f gimbalJointRates = matrix * relativeGimbalRate; - - // 6) Apply the rate limits from 4) - gimbalJointRates.x = constrain_float(gimbalJointRates.x, lowerRatelimit.x, upperRatelimit.x); - gimbalJointRates.y = constrain_float(gimbalJointRates.y, lowerRatelimit.y, upperRatelimit.y); - gimbalJointRates.z = constrain_float(gimbalJointRates.z, lowerRatelimit.z, upperRatelimit.z); - /* - 7) Convert the modified gimbal joint rates to body rates (still copter - relative) - relativeGimbalRate(X,Y,Z) = Matrix * gimbalJointRates(roll, elev, azimuth) - - where Matrix = - - +- -+ - | cos(elevAngle), 0, -cos(rollAngle) sin(elevAngle) | - | | - | 0, 1, sin(rollAngle) | - | | - | sin(elevAngle), 0, cos(elevAngle) cos(rollAngle) | - +- -+ - */ - matrix = Matrix3f(Vector3f(cosf(elevAngle), 0, -cosf(rollAngle)*sinf(elevAngle)), - Vector3f(0, 1, sinf(rollAngle)), - Vector3f(sinf(elevAngle), 0, cosf(elevAngle)*cosf(rollAngle))); - relativeGimbalRate = matrix * gimbalJointRates; - - // 8) Add to the result from step 1) to obtain the demanded gimbal body rates - // in an inertial frame of reference - // demandedGimbalRatesInertial(X,Y,Z) = relativeGimbalRate(X,Y,Z) + copterAngRate_G - // Vector3f demandedGimbalRatesInertial = relativeGimbalRate + copterAngRate_G; - - // for the moment we will set gyros equal to demanded_angular_rate - gimbal_angular_rate = demRateRaw; // demandedGimbalRatesInertial + true_gyro_bias - supplied_gyro_bias - - // update rotation of the gimbal - dcm.rotate(gimbal_angular_rate*delta_t); - dcm.normalize(); - - // calculate copter -> gimbal rotation matrix - rotmat_copter_gimbal = dcm.transposed() * vehicle_dcm; - - // calculate joint angles (euler312 order) - joint_angles = rotmat_copter_gimbal.transposed().to_euler312(); - - // update observed gyro - gyro = gimbal_angular_rate + true_gyro_bias; - - // update delta_angle (integrate) - delta_angle += gyro * delta_t; - - // calculate accel in gimbal body frame - Vector3f copter_accel_earth = vehicle_dcm * vehicle_accel_body; - Vector3f accel = dcm.transposed() * copter_accel_earth; - - // integrate velocity - delta_velocity += accel * delta_t; + gimbal.update(aircraft); // see if we should do a report send_report(); @@ -306,11 +169,9 @@ void SoloGimbal::send_report(void) } mavlink_gimbal_control_t pkt; mavlink_msg_gimbal_control_decode(&msg, &pkt); - demanded_angular_rate = Vector3f(pkt.demanded_rate_x, - pkt.demanded_rate_y, - pkt.demanded_rate_z); - // no longer supply a bias - supplied_gyro_bias.zero(); + gimbal.set_demanded_rates(Vector3f(pkt.demanded_rate_x, + pkt.demanded_rate_y, + pkt.demanded_rate_z)); seen_gimbal_control = true; break; } @@ -375,12 +236,20 @@ void SoloGimbal::send_report(void) */ uint32_t now_us = AP_HAL::micros(); if (now_us - last_report_us > reporting_period_ms*1000UL) { - mavlink_gimbal_report_t gimbal_report; - float delta_time = (now_us - last_report_us) * 1.0e-6f; last_report_us = now_us; + + uint32_t delta_time_us; + Vector3f delta_angle; + Vector3f delta_velocity; + gimbal.get_deltas(delta_angle, delta_velocity, delta_time_us); + + Vector3f joint_angles; + gimbal.get_joint_angles(joint_angles); + + mavlink_gimbal_report_t gimbal_report; gimbal_report.target_system = vehicle_system_id; gimbal_report.target_component = vehicle_component_id; - gimbal_report.delta_time = delta_time; + gimbal_report.delta_time = delta_time_us * 1e-6; gimbal_report.delta_angle_x = delta_angle.x; gimbal_report.delta_angle_y = delta_angle.y; gimbal_report.delta_angle_z = delta_angle.z; diff --git a/libraries/SITL/SIM_SoloGimbal.h b/libraries/SITL/SIM_SoloGimbal.h index e8600bbacd8d0..d3fdb6d2d2188 100644 --- a/libraries/SITL/SIM_SoloGimbal.h +++ b/libraries/SITL/SIM_SoloGimbal.h @@ -27,6 +27,8 @@ rc 6 1818 # for neutral pitch input #if AP_SIM_SOLOGIMBAL_ENABLED +#include "SIM_Gimbal.h" + #include #include #include @@ -35,65 +37,23 @@ namespace SITL { class SoloGimbal { public: - SoloGimbal(const struct sitl_fdm &_fdm); - void update(void); - -private: - const struct sitl_fdm &fdm; - const char *target_address; - const uint16_t target_port; - - // rotation matrix (gimbal body -> earth) - Matrix3f dcm; - - // time of last update - uint32_t last_update_us; - - // true angular rate of gimbal in body frame (rad/s) - Vector3f gimbal_angular_rate; - // observed angular rate (including biases) - Vector3f gyro; + SoloGimbal() {} + void update(const Aircraft &aicraft); - /* joint angles, in radians. in yaw/roll/pitch order. Relative to fwd. - So 0,0,0 points forward. - Pi/2,0,0 means pointing right - 0, Pi/2, 0 means pointing fwd, but rolled 90 degrees to right - 0, 0, -Pi/2, means pointing down - */ - Vector3f joint_angles; - - // physical constraints on joint angles in (roll, pitch, azimuth) order - Vector3f lower_joint_limits; - Vector3f upper_joint_limits; +private: - const float travelLimitGain; + const char *target_address = "127.0.0.1"; + const uint16_t target_port = 5762; - // true gyro bias - Vector3f true_gyro_bias; + // physic simulation of gimbal: + Gimbal gimbal; // reporting variables. gimbal pushes these to vehicle code over // MAVLink at approx 100Hz // reporting period in ms - const float reporting_period_ms; - - // integral of gyro vector over last time interval. In radians - Vector3f delta_angle; - - // integral of accel vector over last time interval. In m/s - Vector3f delta_velocity; - - /* - control variables from the vehicle - */ - // angular rate in rad/s. In body frame of gimbal - Vector3f demanded_angular_rate; - - // gyro bias provided by EKF on vehicle. In rad/s. - // Should be subtracted from the gyro readings to get true body - // rotatation rates - Vector3f supplied_gyro_bias; + const float reporting_period_ms = 10; uint32_t last_report_us; uint32_t last_heartbeat_ms; @@ -102,7 +62,7 @@ class SoloGimbal { uint8_t vehicle_system_id; uint8_t vehicle_component_id; - SocketAPM_native mav_socket; + SocketAPM_native mav_socket{false}; struct { // socket to telem2 on aircraft bool connected; diff --git a/libraries/SITL/SIM_config.h b/libraries/SITL/SIM_config.h index 21986735f8923..c83e83d44767d 100644 --- a/libraries/SITL/SIM_config.h +++ b/libraries/SITL/SIM_config.h @@ -123,5 +123,10 @@ #endif #ifndef AP_SIM_SOLOGIMBAL_ENABLED -#define AP_SIM_SOLOGIMBAL_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) +#define AP_SIM_SOLOGIMBAL_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL && HAL_MAVLINK_BINDINGS_ENABLED) #endif + +#ifndef AP_SIM_GIMBAL_ENABLED +#define AP_SIM_GIMBAL_ENABLED (AP_SIM_SOLOGIMBAL_ENABLED) +#endif + From 57d681512483f52723a2a916b89f6c0428ee80de Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 25 Mar 2023 18:04:38 +1100 Subject: [PATCH 054/232] autotest: add Mount test for relative yaw --- Tools/autotest/arducopter.py | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index ade0324672ec4..ccd8147ec045f 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -5256,7 +5256,7 @@ def test_mount_pitch(self, despitch, despitch_tolerance, mount_mode, timeout=10, despitch = self.constrained_mount_pitch(despitch) '''retrieve latest angles from GIMBAL_DEVICE_ATTITUDE_STATUS''' - mount_roll, mount_pitch, mount_yaw = self.get_mount_roll_pitch_yaw_deg() + mount_roll, mount_pitch, mount_yaw, mount_yaw_is_absolute = self.get_mount_roll_pitch_yaw_deg() # self.progress("despitch=%f roll=%f pitch=%f yaw=%f" % (despitch, mount_roll, mount_pitch, mount_yaw)) if abs(despitch - mount_pitch) > despitch_tolerance: @@ -5314,10 +5314,11 @@ def get_mount_roll_pitch_yaw_deg(self): # wait for gimbal attitude message m = self.assert_receive_message('GIMBAL_DEVICE_ATTITUDE_STATUS', timeout=5) + yaw_is_absolute = m.flags & mavutil.mavlink.GIMBAL_DEVICE_FLAGS_YAW_LOCK # convert quaternion to euler angles and return q = quaternion.Quaternion(m.q) euler = q.euler - return math.degrees(euler[0]), math.degrees(euler[1]), math.degrees(euler[2]) + return math.degrees(euler[0]), math.degrees(euler[1]), math.degrees(euler[2]), yaw_is_absolute def set_mount_mode(self, mount_mode): '''set mount mode''' @@ -5435,7 +5436,7 @@ def mount_test_body(self, pitch_rc_neutral=1500, do_rate_tests=True, constrain_s self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_NEUTRAL) # test pitch is not neutral to start with - mount_roll_deg, mount_pitch_deg, mount_yaw_deg = self.get_mount_roll_pitch_yaw_deg() + mount_roll_deg, mount_pitch_deg, mount_yaw_deg, mount_yaw_is_absolute = self.get_mount_roll_pitch_yaw_deg() if mount_roll_deg != 0 or mount_pitch_deg != 0 or mount_yaw_deg != 0: raise NotAchievedException("Mount not neutral") @@ -5451,7 +5452,7 @@ def mount_test_body(self, pitch_rc_neutral=1500, do_rate_tests=True, constrain_s self.wait_pitch(despitch, despitch_tolerance) # check gimbal is still not stabilising - mount_roll_deg, mount_pitch_deg, mount_yaw_deg = self.get_mount_roll_pitch_yaw_deg() + mount_roll_deg, mount_pitch_deg, mount_yaw_deg, mount_yaw_is_absolute = self.get_mount_roll_pitch_yaw_deg() if mount_roll_deg != 0 or mount_pitch_deg != 0 or mount_yaw_deg != 0: raise NotAchievedException("Mount stabilising when not requested") @@ -5657,6 +5658,28 @@ def mount_test_body(self, pitch_rc_neutral=1500, do_rate_tests=True, constrain_s self.disarm_vehicle(force=True) + self.test_mount_body_yaw() + + def test_mount_body_yaw(self): + '''check reporting of yaw''' + # change mount to neutral mode (point forward, not stabilising) + self.takeoff(10, mode='GUIDED') + + self.set_mount_mode(mavutil.mavlink.MAV_MOUNT_MODE_NEUTRAL) + + for heading in 30, 45, 150: + self.guided_achieve_heading(heading) + + r, p , y, yaw_is_absolute = self.get_mount_roll_pitch_yaw_deg() + + if yaw_is_absolute: + raise NotAchievedException("Expected a relative yaw") + + if y > 1: + raise NotAchievedException("Bad yaw (y=%f)") + + self.do_RTL() + def Mount(self): '''test servo mount''' self.setup_servo_mount() @@ -5680,7 +5703,7 @@ def MountSolo(self): def assert_mount_rpy(self, r, p, y, tolerance=1): '''assert mount atttiude in degrees''' - got_r, got_p, got_y = self.get_mount_roll_pitch_yaw_deg() + got_r, got_p, got_y, yaw_is_absolute = self.get_mount_roll_pitch_yaw_deg() for (want, got, name) in (r, got_r, "roll"), (p, got_p, "pitch"), (y, got_y, "yaw"): if abs(want - got) > tolerance: raise NotAchievedException("%s incorrect; want=%f got=%f" % From e94ebe4d1a398072e408ee00564b86686ff229bf Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 13:07:50 +1000 Subject: [PATCH 055/232] AP_Scripting: add battery resistance to bindings --- libraries/AP_Scripting/generator/description/bindings.desc | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_Scripting/generator/description/bindings.desc b/libraries/AP_Scripting/generator/description/bindings.desc index 5528b04cf80b9..dbeca52779958 100644 --- a/libraries/AP_Scripting/generator/description/bindings.desc +++ b/libraries/AP_Scripting/generator/description/bindings.desc @@ -94,6 +94,7 @@ singleton AP_BattMonitor depends AP_BATTERY_ENABLED singleton AP_BattMonitor method num_instances uint8_t singleton AP_BattMonitor method healthy boolean uint8_t 0 ud->num_instances() singleton AP_BattMonitor method voltage float uint8_t 0 ud->num_instances() +singleton AP_BattMonitor method get_resistance float uint8_t 0 ud->num_instances() singleton AP_BattMonitor method voltage_resting_estimate float uint8_t 0 ud->num_instances() singleton AP_BattMonitor method current_amps boolean float'Null uint8_t 0 ud->num_instances() singleton AP_BattMonitor method consumed_mah boolean float'Null uint8_t 0 ud->num_instances() From 6514a3522bb1292b1a9bc69c125a6e43dd24a66f Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 13:08:09 +1000 Subject: [PATCH 056/232] AP_Scripting: add battery-resistance-checking example --- .../battery_internal_resistance_check.lua | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 libraries/AP_Scripting/examples/battery_internal_resistance_check.lua diff --git a/libraries/AP_Scripting/examples/battery_internal_resistance_check.lua b/libraries/AP_Scripting/examples/battery_internal_resistance_check.lua new file mode 100644 index 0000000000000..63a811e2e2a57 --- /dev/null +++ b/libraries/AP_Scripting/examples/battery_internal_resistance_check.lua @@ -0,0 +1,35 @@ +--[[ + script implementing pre-arm check that internal resistance is sensible +--]] + +local MAX_RESISTANCE = 0.03 -- Ohms + +local auth_id = assert(arming:get_aux_auth_id()) + +local warning_last_sent_ms = uint32_t() -- time we last sent a warning message to the user +warning_interval_ms = 10000 + +function update() + local num_batts = battery:num_instances() + local ok = true + for i=0,num_batts do + local resistance = battery:get_resistance(i) + failed = resistance > MAX_RESISTANCE + if failed then + msg = string.format("Batt[%u] high internal resistance %.5f Ohms", i+1, resistance) + if millis() - warning_last_sent_ms > warning_interval_ms then + gcs:send_text(0, msg) + warning_last_sent_ms = millis() + end + arming:set_aux_auth_failed(auth_id, msg) + ok = false + end + end + + if ok then + arming:set_aux_auth_passed(auth_id) + end + return update, 500 +end + +return update() From 56773f09b422ece063b3531213e32618d04b1319 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 17 Jul 2024 18:02:51 +1000 Subject: [PATCH 057/232] AP_Scripting: docs for get_resistance --- libraries/AP_Scripting/docs/docs.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libraries/AP_Scripting/docs/docs.lua b/libraries/AP_Scripting/docs/docs.lua index afd113d5f4c01..5fe0593f11139 100644 --- a/libraries/AP_Scripting/docs/docs.lua +++ b/libraries/AP_Scripting/docs/docs.lua @@ -3147,6 +3147,11 @@ function battery:current_amps(instance) end ---@return number -- resting voltage function battery:voltage_resting_estimate(instance) end +-- Returns the estimated internal battery resistance in Ohms +---@param instance integer -- battery instance +---@return number -- estimated internal resistance in Ohms +function battery:get_resistance(instance) end + -- Returns the voltage of the selected battery instance. ---@param instance integer -- battery instance ---@return number -- voltage From 7b5c1f16c1bbc986244dd83c690801790d6bc680 Mon Sep 17 00:00:00 2001 From: Willian Galvani Date: Fri, 19 Jul 2024 23:54:59 -0300 Subject: [PATCH 058/232] tools: firmware_version_decoder.py: fix detection for BETA+n firmware --- Tools/scripts/firmware_version_decoder.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Tools/scripts/firmware_version_decoder.py b/Tools/scripts/firmware_version_decoder.py index cf3321701490d..3ef137f4e30c1 100755 --- a/Tools/scripts/firmware_version_decoder.py +++ b/Tools/scripts/firmware_version_decoder.py @@ -18,6 +18,18 @@ class FirmwareVersionType(enum.Enum): Official = 255 EnumEnd = 256 + @staticmethod + def get_release(version: int) -> str: + """ + Return the closest release type for a given version type, going down. + This is required because it is common in ardupilot to increase the version type + for successive betas, such as here: + https://github.com/ArduPilot/ardupilot/blame/8890c44370a7cf27d5efc872ef6da288ae3bc41f/ArduCopter/version.h#L12 + """ + for release in reversed(FirmwareVersionType): + if version >= release.value: + return release + return "Unknown" class VehicleType(enum.Enum): Rover = 1 @@ -193,7 +205,7 @@ def unpack_fwversion(self) -> None: self.fwversion.major = self.unpack("B") self.fwversion.minor = self.unpack("B") self.fwversion.patch = self.unpack("B") - self.fwversion.firmware_type = FirmwareVersionType(self.unpack("B")) + self.fwversion.firmware_type = FirmwareVersionType.get_release(self.unpack("B")) self.fwversion.os_software_version = self.unpack("I") self.fwversion.firmware_string = self.unpack_string_from_pointer() From fc8147ead0935677f4e10049d10a26042eeec555 Mon Sep 17 00:00:00 2001 From: chiara-septentrio Date: Tue, 25 Jun 2024 09:02:14 +0200 Subject: [PATCH 059/232] AP_GPS:Septentrio constellation choice --- libraries/AP_GPS/AP_GPS_SBF.cpp | 17 +++++++++++++++++ libraries/AP_GPS/AP_GPS_SBF.h | 1 + 2 files changed, 18 insertions(+) diff --git a/libraries/AP_GPS/AP_GPS_SBF.cpp b/libraries/AP_GPS/AP_GPS_SBF.cpp index e5a102998bf96..4a18a3295526a 100644 --- a/libraries/AP_GPS/AP_GPS_SBF.cpp +++ b/libraries/AP_GPS/AP_GPS_SBF.cpp @@ -138,6 +138,19 @@ AP_GPS_SBF::read(void) config_string = nullptr; } break; + case Config_State::Constellation: + if ((params.gnss_mode&0x6F)!=0) { + //IMES not taken into account by Septentrio receivers + if (asprintf(&config_string, "sst, %s%s%s%s%s%s\n", (params.gnss_mode&(1U<<0))!=0 ? "GPS" : "", + (params.gnss_mode&(1U<<1))!=0 ? ((params.gnss_mode&0x01)==0 ? "SBAS" : "+SBAS") : "", + (params.gnss_mode&(1U<<2))!=0 ? ((params.gnss_mode&0x03)==0 ? "GALILEO" : "+GALILEO") : "", + (params.gnss_mode&(1U<<3))!=0 ? ((params.gnss_mode&0x07)==0 ? "BEIDOU" : "+BEIDOU") : "", + (params.gnss_mode&(1U<<5))!=0 ? ((params.gnss_mode&0x0F)==0 ? "QZSS" : "+QZSS") : "", + (params.gnss_mode&(1U<<6))!=0 ? ((params.gnss_mode&0x2F)==0 ? "GLONASS" : "+GLONASS") : "") == -1) { + config_string=nullptr; + } + } + break; case Config_State::Blob: if (asprintf(&config_string, "%s\n", _initialisation_blob[_init_blob_index]) == -1) { config_string = nullptr; @@ -364,6 +377,9 @@ AP_GPS_SBF::parse(uint8_t temp) config_step = Config_State::SSO; break; case Config_State::SSO: + config_step = Config_State::Constellation; + break; + case Config_State::Constellation: config_step = Config_State::Blob; break; case Config_State::Blob: @@ -699,4 +715,5 @@ bool AP_GPS_SBF::prepare_for_arming(void) { return is_logging; } + #endif diff --git a/libraries/AP_GPS/AP_GPS_SBF.h b/libraries/AP_GPS/AP_GPS_SBF.h index 8817653f42ed7..b4e1bb28c62b1 100644 --- a/libraries/AP_GPS/AP_GPS_SBF.h +++ b/libraries/AP_GPS/AP_GPS_SBF.h @@ -76,6 +76,7 @@ class AP_GPS_SBF : public AP_GPS_Backend Blob, SBAS, SGA, + Constellation, Complete }; Config_State config_step; From 50eac0ef31b24a23f7ffbcb74659940fbede3f22 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sun, 30 Jun 2024 17:09:18 -0500 Subject: [PATCH 060/232] AP_Scripting: keep enum definitions in flash Saves ~100B of statically allocated RAM. --- libraries/AP_Scripting/generator/src/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c index b2f4e300103d4..f94dc7220d5a8 100644 --- a/libraries/AP_Scripting/generator/src/main.c +++ b/libraries/AP_Scripting/generator/src/main.c @@ -2381,7 +2381,7 @@ void emit_methods(struct userdata *node) { } void emit_enum(struct userdata * data) { - fprintf(source, "struct userdata_enum %s_enums[] = {\n", data->sanatized_name); + fprintf(source, "const struct userdata_enum %s_enums[] = {\n", data->sanatized_name); struct userdata_enum *ud_enum = data->enums; while (ud_enum != NULL) { fprintf(source, " {\"%s\", %s::%s},\n", ud_enum->name, data->name, ud_enum->name); From 8e303675fee148ccab3b9b9eda0a04b7ec566c50 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 15 Jun 2024 15:29:12 -0500 Subject: [PATCH 061/232] AP_Scripting: don't put userdata and ap_objects into globals They are never accessed from globals. Only their metatables are accessed, using luaL_getmetatable. Saves ~2.9K of Lua heap. --- libraries/AP_Scripting/generator/src/main.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c index f94dc7220d5a8..f48f4d72dc28e 100644 --- a/libraries/AP_Scripting/generator/src/main.c +++ b/libraries/AP_Scripting/generator/src/main.c @@ -2504,46 +2504,31 @@ void emit_loaders(void) { fprintf(source, " // userdata metatables\n"); fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(userdata_fun); i++) {\n"); fprintf(source, " luaL_newmetatable(L, userdata_fun[i].name);\n"); - fprintf(source, " lua_pushcclosure(L, userdata_fun[i].func, 0);\n"); + fprintf(source, " lua_pushcfunction(L, userdata_fun[i].func);\n"); fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); fprintf(source, " if (userdata_fun[i].operators != nullptr) {\n"); fprintf(source, " luaL_setfuncs(L, userdata_fun[i].operators, 0);\n"); fprintf(source, " }\n"); - fprintf(source, " lua_pushstring(L, \"__call\");\n"); - fprintf(source, " lua_pushvalue(L, -2);\n"); - fprintf(source, " lua_settable(L, -3);\n"); - fprintf(source, " lua_pop(L, 1);\n"); - fprintf(source, " lua_newuserdata(L, 0);\n"); - fprintf(source, " luaL_getmetatable(L, userdata_fun[i].name);\n"); - fprintf(source, " lua_setmetatable(L, -2);\n"); - fprintf(source, " lua_setglobal(L, userdata_fun[i].name);\n"); fprintf(source, " }\n"); fprintf(source, "\n"); fprintf(source, " // ap object metatables\n"); fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(ap_object_fun); i++) {\n"); fprintf(source, " luaL_newmetatable(L, ap_object_fun[i].name);\n"); - fprintf(source, " lua_pushcclosure(L, ap_object_fun[i].func, 0);\n"); + fprintf(source, " lua_pushcfunction(L, ap_object_fun[i].func);\n"); fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); - fprintf(source, " lua_pushstring(L, \"__call\");\n"); - fprintf(source, " lua_pushvalue(L, -2);\n"); - fprintf(source, " lua_settable(L, -3);\n"); fprintf(source, " lua_pop(L, 1);\n"); - fprintf(source, " lua_newuserdata(L, 0);\n"); - fprintf(source, " luaL_getmetatable(L, ap_object_fun[i].name);\n"); - fprintf(source, " lua_setmetatable(L, -2);\n"); - fprintf(source, " lua_setglobal(L, ap_object_fun[i].name);\n"); fprintf(source, " }\n"); fprintf(source, "\n"); fprintf(source, " // singleton metatables\n"); fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(singleton_fun); i++) {\n"); fprintf(source, " luaL_newmetatable(L, singleton_fun[i].name);\n"); - fprintf(source, " lua_pushcclosure(L, singleton_fun[i].func, 0);\n"); + fprintf(source, " lua_pushcfunction(L, singleton_fun[i].func);\n"); fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); fprintf(source, " lua_pushstring(L, \"__call\");\n"); fprintf(source, " lua_pushvalue(L, -2);\n"); From 9cbec043d0565b0881fb95f321e0a1cb198666f8 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Fri, 28 Jun 2024 13:31:09 -0500 Subject: [PATCH 062/232] AP_Scripting: remove __call metamethod from singleton metatables The __call metamethod was set to the metatable itself. With __call not present, Lua will try to call the metatable (and fail), which is the same behavior as with the __call metamethod set to the metatable. Saves ~2K Lua heap. --- libraries/AP_Scripting/generator/src/main.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c index f48f4d72dc28e..1ddefb351e3e7 100644 --- a/libraries/AP_Scripting/generator/src/main.c +++ b/libraries/AP_Scripting/generator/src/main.c @@ -2527,16 +2527,11 @@ void emit_loaders(void) { fprintf(source, " // singleton metatables\n"); fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(singleton_fun); i++) {\n"); + fprintf(source, " lua_newuserdata(L, 0);\n"); fprintf(source, " luaL_newmetatable(L, singleton_fun[i].name);\n"); fprintf(source, " lua_pushcfunction(L, singleton_fun[i].func);\n"); fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); - fprintf(source, " lua_pushstring(L, \"__call\");\n"); - fprintf(source, " lua_pushvalue(L, -2);\n"); - fprintf(source, " lua_settable(L, -3);\n"); - fprintf(source, " lua_pop(L, 1);\n"); - fprintf(source, " lua_newuserdata(L, 0);\n"); - fprintf(source, " luaL_getmetatable(L, singleton_fun[i].name);\n"); fprintf(source, " lua_setmetatable(L, -2);\n"); fprintf(source, " lua_setglobal(L, singleton_fun[i].name);\n"); fprintf(source, " }\n"); From 059af2117d0e52b50c4cb879c582ed5527371662 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 15 Jun 2024 15:51:21 -0500 Subject: [PATCH 063/232] AP_Scripting: place bindings into global table The global table is then used as the __index metamethod of each state's environment table. Avoids the overhead of loading binding objects into each state. The binding objects are immutable from Lua so sandboxing is not violated. Does have the slight downside that a script can no longer know all the binding names by enumerating _ENV. Saves ~700B of memory per loaded script. --- libraries/AP_Scripting/generator/src/main.c | 32 ++++++++++----------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c index 1ddefb351e3e7..ad817c0ac4585 100644 --- a/libraries/AP_Scripting/generator/src/main.c +++ b/libraries/AP_Scripting/generator/src/main.c @@ -2535,12 +2535,19 @@ void emit_loaders(void) { fprintf(source, " lua_setmetatable(L, -2);\n"); fprintf(source, " lua_setglobal(L, singleton_fun[i].name);\n"); fprintf(source, " }\n"); + fprintf(source, "\n"); + fprintf(source, " // userdata creation funcs\n"); + fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(new_userdata); i++) {\n"); + fprintf(source, " lua_pushcfunction(L, new_userdata[i].fun);\n"); + fprintf(source, " lua_setglobal(L, new_userdata[i].name);\n"); + fprintf(source, " }\n"); fprintf(source, "\n"); + fprintf(source, "}\n\n"); } -void emit_sandbox(void) { +void emit_userdata_new_funcs(void) { struct userdata *data = parsed_userdata; fprintf(source, "const struct userdata {\n"); fprintf(source, " const char *name;\n"); @@ -2589,23 +2596,14 @@ void emit_sandbox(void) { } } fprintf(source, "};\n\n"); +} +void emit_sandbox(void) { fprintf(source, "void load_generated_sandbox(lua_State *L) {\n"); - // load the singletons - fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(singleton_fun); i++) {\n"); - fprintf(source, " lua_pushstring(L, singleton_fun[i].name);\n"); - fprintf(source, " lua_getglobal(L, singleton_fun[i].name);\n"); - fprintf(source, " lua_settable(L, -3);\n"); - fprintf(source, " }\n"); - - // load the userdata allactors and globals - fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(new_userdata); i++) {\n"); - fprintf(source, " lua_pushstring(L, new_userdata[i].name);\n"); - fprintf(source, " lua_pushcfunction(L, new_userdata[i].fun);\n"); - fprintf(source, " lua_settable(L, -3);\n"); - fprintf(source, " }\n"); - - fprintf(source, "\n"); + fprintf(source, " lua_createtable(L, 0, 1);\n"); + fprintf(source, " lua_pushglobaltable(L);\n"); + fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); + fprintf(source, " lua_setmetatable(L, -2);\n"); fprintf(source, "}\n"); } @@ -3149,7 +3147,7 @@ int main(int argc, char **argv) { emit_methods(parsed_ap_objects); emit_index(parsed_ap_objects); - + emit_userdata_new_funcs(); emit_loaders(); emit_sandbox(); From b64ed6ca565dcaefd9b166ccb32b777ff7a59488 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Fri, 28 Jun 2024 15:16:44 -0500 Subject: [PATCH 064/232] AP_Scripting: dynamically load some binding objects Only create the binding object (singleton metatable/userdata or C function reference) once the user first references a particular singleton or userdata creation function. Once created, the object is stored into the script's environment so it doesn't get recreated on the next reference and there isn't any further overhead. The userdatas are no longer shared between scripts which imposes a slight memory penalty for multiple scripts using the same singleton but this avoids an additional lookup time cost. Userdata and ap_objects aren't eligible for this optimization as the C++ code might want a particular metatable at any time. Saves ~9.3K Lua heap. --- libraries/AP_Scripting/generator/src/main.c | 58 ++++++++++++++------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/libraries/AP_Scripting/generator/src/main.c b/libraries/AP_Scripting/generator/src/main.c index ad817c0ac4585..d9c530978328c 100644 --- a/libraries/AP_Scripting/generator/src/main.c +++ b/libraries/AP_Scripting/generator/src/main.c @@ -2499,6 +2499,43 @@ void emit_loaders(void) { emit_type_index(parsed_singletons, "singleton"); emit_type_index(parsed_ap_objects, "ap_object"); + fprintf(source, "static int binding_index(lua_State *L) {\n"); + fprintf(source, " const char * name = luaL_checkstring(L, 2);\n"); + fprintf(source, "\n"); + fprintf(source, " bool found = false;\n"); + fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(singleton_fun); i++) {\n"); + fprintf(source, " if (strcmp(name, singleton_fun[i].name) == 0) {\n"); + fprintf(source, " lua_newuserdata(L, 0);\n"); + fprintf(source, " if (luaL_newmetatable(L, name)) { // need to create metatable\n"); + fprintf(source, " lua_pushcfunction(L, singleton_fun[i].func);\n"); + fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); + fprintf(source, " }\n"); + fprintf(source, " lua_setmetatable(L, -2);\n"); + fprintf(source, " found = true;\n"); + fprintf(source, " break;\n"); + fprintf(source, " }\n"); + fprintf(source, " }\n"); + fprintf(source, " if (!found) {\n"); + fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(new_userdata); i++) {\n"); + fprintf(source, " if (strcmp(name, new_userdata[i].name) == 0) {\n"); + fprintf(source, " lua_pushcfunction(L, new_userdata[i].fun);\n"); + fprintf(source, " found = true;\n"); + fprintf(source, " break;\n"); + fprintf(source, " }\n"); + fprintf(source, " }\n"); + fprintf(source, " }\n"); + fprintf(source, " if (!found) {\n"); + fprintf(source, " return 0;\n"); + fprintf(source, " }\n"); + fprintf(source, "\n"); + fprintf(source, " // store found value to avoid a re-index\n"); + fprintf(source, " lua_pushvalue(L, -2);\n"); + fprintf(source, " lua_pushvalue(L, -2);\n"); + fprintf(source, " lua_settable(L, -5);\n"); + fprintf(source, "\n"); + fprintf(source, " return 1;\n"); + fprintf(source, "}\n\n"); + fprintf(source, "void load_generated_bindings(lua_State *L) {\n"); fprintf(source, " luaL_checkstack(L, 5, \"Out of stack\");\n"); // this is more stack space then we need, but should never fail fprintf(source, " // userdata metatables\n"); @@ -2525,24 +2562,7 @@ void emit_loaders(void) { fprintf(source, " }\n"); fprintf(source, "\n"); - fprintf(source, " // singleton metatables\n"); - fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(singleton_fun); i++) {\n"); - fprintf(source, " lua_newuserdata(L, 0);\n"); - fprintf(source, " luaL_newmetatable(L, singleton_fun[i].name);\n"); - fprintf(source, " lua_pushcfunction(L, singleton_fun[i].func);\n"); - fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); - - fprintf(source, " lua_setmetatable(L, -2);\n"); - fprintf(source, " lua_setglobal(L, singleton_fun[i].name);\n"); - fprintf(source, " }\n"); - fprintf(source, "\n"); - - fprintf(source, " // userdata creation funcs\n"); - fprintf(source, " for (uint32_t i = 0; i < ARRAY_SIZE(new_userdata); i++) {\n"); - fprintf(source, " lua_pushcfunction(L, new_userdata[i].fun);\n"); - fprintf(source, " lua_setglobal(L, new_userdata[i].name);\n"); - fprintf(source, " }\n"); - fprintf(source, "\n"); + fprintf(source, " // singletons and userdata creation funcs are loaded dynamically\n"); fprintf(source, "}\n\n"); } @@ -2601,7 +2621,7 @@ void emit_userdata_new_funcs(void) { void emit_sandbox(void) { fprintf(source, "void load_generated_sandbox(lua_State *L) {\n"); fprintf(source, " lua_createtable(L, 0, 1);\n"); - fprintf(source, " lua_pushglobaltable(L);\n"); + fprintf(source, " lua_pushcfunction(L, binding_index);\n"); fprintf(source, " lua_setfield(L, -2, \"__index\");\n"); fprintf(source, " lua_setmetatable(L, -2);\n"); fprintf(source, "}\n"); From 5005809e74b6249bf3b32fd7fcefd63327db4b0a Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Tue, 9 Jul 2024 09:45:15 -0700 Subject: [PATCH 065/232] AP_Vehicle: add stall speed parameter for plane --- libraries/AP_Vehicle/AP_FixedWing.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_Vehicle/AP_FixedWing.h b/libraries/AP_Vehicle/AP_FixedWing.h index 7aee38d5c5b35..df3692a61b655 100644 --- a/libraries/AP_Vehicle/AP_FixedWing.h +++ b/libraries/AP_Vehicle/AP_FixedWing.h @@ -14,6 +14,7 @@ struct AP_FixedWing { AP_Int16 airspeed_min; AP_Int16 airspeed_max; AP_Float airspeed_cruise; + AP_Float airspeed_stall; AP_Float min_groundspeed; AP_Int8 crash_detection_enable; AP_Float roll_limit; From 80277e6da0e21b4fcc3753a2db8a9840c6c4730e Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Tue, 9 Jul 2024 09:30:06 -0700 Subject: [PATCH 066/232] ArduPlane: Add a stall speed parameter --- ArduPlane/Parameters.cpp | 8 ++++++++ ArduPlane/Parameters.h | 1 + 2 files changed, 9 insertions(+) diff --git a/ArduPlane/Parameters.cpp b/ArduPlane/Parameters.cpp index 941dcba774ac0..19288615a6205 100644 --- a/ArduPlane/Parameters.cpp +++ b/ArduPlane/Parameters.cpp @@ -296,6 +296,14 @@ const AP_Param::Info Plane::var_info[] = { // @User: Standard ASCALAR(airspeed_max, "AIRSPEED_MAX", AIRSPEED_FBW_MAX), + // @Param: AIRSPEED_STALL + // @DisplayName: Stall airspeed + // @Description: If stall prevention is enabled this speed is used to calculate the minimum airspeed while banking. If this is set to 0 then the stall speed is assumed to be the minimum airspeed speed. Typically set slightly higher then true stall speed. Value is as an indicated (calibrated/apparent) airspeed. + // @Units: m/s + // @Range: 5 75 + // @User: Standard + ASCALAR(airspeed_stall, "AIRSPEED_STALL", 0), + // @Param: FBWB_ELEV_REV // @DisplayName: Fly By Wire elevator reverse // @Description: Reverse sense of elevator in FBWB and CRUISE modes. When set to 0 up elevator (pulling back on the stick) means to lower altitude. When set to 1, up elevator means to raise altitude. diff --git a/ArduPlane/Parameters.h b/ArduPlane/Parameters.h index ba89c45772811..de514b891532c 100644 --- a/ArduPlane/Parameters.h +++ b/ArduPlane/Parameters.h @@ -343,6 +343,7 @@ class Parameters { k_param_mixing_offset, k_param_dspoiler_rud_rate, + k_param_airspeed_stall, k_param_logger = 253, // Logging Group From edaddc043166189938aa7654e9a6e72c06a0b6d0 Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Wed, 3 Jul 2024 10:33:57 -0700 Subject: [PATCH 067/232] AP_TECS: Use aircraft stall speed When stall prevention is enabled we were scaling from the aircraft's minimum flight speed. However this is normally already picked as being above the stall speed, and for a variety of reasons we may want to pin the aircraft at a higher minimum speed. But if the aircraft was commanded to fly to close to that minimum speed as soon as it banked for a pattern it would command a increase in speed to keep it away from stalling. However if your minimum speed is far from stalling this increase was incorrect. To make it worse what this actually results in happening is an aircraft diving for more speed (over 10 m/s on some aircraft) as well as descending to gain that speed resulting in over 200 foot deviations in altitude control. --- libraries/AP_TECS/AP_TECS.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/AP_TECS/AP_TECS.cpp b/libraries/AP_TECS/AP_TECS.cpp index 9307502caaf0b..55fb024043b1d 100644 --- a/libraries/AP_TECS/AP_TECS.cpp +++ b/libraries/AP_TECS/AP_TECS.cpp @@ -415,7 +415,11 @@ void AP_TECS::_update_speed(float DT) if (aparm.stall_prevention) { // when stall prevention is active we raise the minimum // airspeed based on aerodynamic load factor - _TASmin *= _load_factor; + if (is_positive(aparm.airspeed_stall)) { + _TASmin = MAX(_TASmin, aparm.airspeed_stall*EAS2TAS*_load_factor); + } else { + _TASmin *= _load_factor; + } } if (_TASmax < _TASmin) { From 7731fc09e23da3fec6202a020277669d815fca96 Mon Sep 17 00:00:00 2001 From: muramura Date: Wed, 17 Jul 2024 07:20:26 +0900 Subject: [PATCH 068/232] AP_HAL_SITL: If HAL_CAN_WITH_SOCKETCAN is undefined, treat it as NONE --- libraries/AP_HAL_SITL/CANSocketIface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/AP_HAL_SITL/CANSocketIface.cpp b/libraries/AP_HAL_SITL/CANSocketIface.cpp index e64253b79bc88..7011c2206b616 100644 --- a/libraries/AP_HAL_SITL/CANSocketIface.cpp +++ b/libraries/AP_HAL_SITL/CANSocketIface.cpp @@ -219,11 +219,11 @@ bool CANIface::init(const uint32_t bitrate, const OperatingMode mode) case SITL::SIM::CANTransport::MulticastUDP: transport = NEW_NOTHROW CAN_Multicast(); break; - case SITL::SIM::CANTransport::SocketCAN: #if HAL_CAN_WITH_SOCKETCAN + case SITL::SIM::CANTransport::SocketCAN: transport = NEW_NOTHROW CAN_SocketCAN(); -#endif break; +#endif case SITL::SIM::CANTransport::None: default: // if user supplies an invalid value for the parameter transport = nullptr; From 858aff5f4fe47d89226e5adf2ca683b7aa6a6f2c Mon Sep 17 00:00:00 2001 From: xiaozhou <3177821352@qq.com> Date: Mon, 15 Jul 2024 16:20:28 +0900 Subject: [PATCH 069/232] AP_Mount: Topotek handles new version format Co-authored-by: Randy Mackay --- libraries/AP_Mount/AP_Mount_Topotek.cpp | 51 +++++++++++++++++-------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_Topotek.cpp b/libraries/AP_Mount/AP_Mount_Topotek.cpp index 853f5e24dd07c..b785a8d746828 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.cpp +++ b/libraries/AP_Mount/AP_Mount_Topotek.cpp @@ -770,7 +770,7 @@ void AP_Mount_Topotek::request_track_status() // request gimbal version void AP_Mount_Topotek::request_gimbal_version() { - // sample command: #TPPD2rVSN00 + // sample command: #TPUD2rVSN00 send_fixedlen_packet(AddressByte::SYSTEM_AND_IMAGE, AP_MOUNT_TOPOTEK_ID3CHAR_GET_VERSION, false, 0); } @@ -1024,29 +1024,50 @@ void AP_Mount_Topotek::gimbal_dist_info_analyse() // gimbal basic information analysis void AP_Mount_Topotek::gimbal_version_analyse() { - uint8_t major_ver = 0; - uint8_t minor_ver = 0; - uint8_t patch_ver = 0; + // version array with index 0=major, 1=minor, 2=patch + uint8_t version[3] {}; // extract firmware version + // the version can be in the format "1.2.3" or "123" const uint8_t data_buf_len = char_to_hex(_msg_buff[5]); - if (data_buf_len >= 1) { - major_ver = char_to_hex(_msg_buff[10]); - } - if (data_buf_len >= 2) { - minor_ver = char_to_hex(_msg_buff[11]); + + // check for "." + bool constains_period = false; + for (uint8_t i = 0; i < data_buf_len; i++) { + constains_period |= _msg_buff[10 + i] == '.'; } - if (data_buf_len >= 3) { - patch_ver = char_to_hex(_msg_buff[12]); + + // if contains period, extract version number + uint32_t ver_num = 0; + uint8_t ver_count = 0; + if (constains_period) { + for (uint8_t i = 0; i < data_buf_len; i++) { + if (_msg_buff[10 + i] != '.') { + ver_num = ver_num * 10 + char_to_hex(_msg_buff[10 + i]); + } else { + version[ver_count++] = ver_num; + ver_num = 0; + } + } + } else { + if (data_buf_len >= 1) { + version[0] = char_to_hex(_msg_buff[10]); + } + if (data_buf_len >= 2) { + version[1] = char_to_hex(_msg_buff[11]); + } + if (data_buf_len >= 3) { + version[2] = char_to_hex(_msg_buff[12]); + } } - _firmware_ver = (patch_ver << 16) | (minor_ver << 8) | (major_ver); + _firmware_ver = (version[2] << 16) | (version[1] << 8) | (version[0]); // display gimbal model and firmware version to user GCS_SEND_TEXT(MAV_SEVERITY_INFO, "%s v%u.%u.%u", send_message_prefix, - major_ver, - minor_ver, - patch_ver); + version[0], // major version + version[1], // minor version + version[2]); // patch version _got_gimbal_version = true; } From 69e4005bb60723f955096684aa83ab679316788e Mon Sep 17 00:00:00 2001 From: xiaozhou <3177821352@qq.com> Date: Tue, 16 Jul 2024 19:56:19 +0900 Subject: [PATCH 070/232] AP_Mount: Topotek retrieves model name Co-authored-by: Randy Mackay --- libraries/AP_Mount/AP_Mount_Topotek.cpp | 34 +++++++++++++++++++++++-- libraries/AP_Mount/AP_Mount_Topotek.h | 11 +++++++- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_Topotek.cpp b/libraries/AP_Mount/AP_Mount_Topotek.cpp index b785a8d746828..7d95fbd663a9c 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.cpp +++ b/libraries/AP_Mount/AP_Mount_Topotek.cpp @@ -35,6 +35,7 @@ extern const AP_HAL::HAL& hal; # define AP_MOUNT_TOPOTEK_ID3CHAR_SD_CARD "SDC" // get SD card state, data bytes: 00:get remaining capacity, 01:get total capacity # define AP_MOUNT_TOPOTEK_ID3CHAR_TIME "UTC" // set time and date, data bytes: HHMMSSDDMMYY # define AP_MOUNT_TOPOTEK_ID3CHAR_GET_VERSION "VSN" // get firmware version, data bytes always 00 +# define AP_MOUNT_TOPOTEK_ID3CHAR_GET_MODEL_NAME "PA2" // get model name, data bytes always 00 # define AP_MOUNT_TOPOTEK_ID3CHAR_GIMBAL_MODE "PTZ" // set gimbal mode, data bytes: 00:stop, 01:up, 02:down, 03:left, 04:right, 05:home position, 06:lock, 07:follow, 08:lock/follow toggle, 09:calibration, 0A:one button down # define AP_MOUNT_TOPOTEK_ID3CHAR_YPR_RATE "YPR" // set the rate yaw, pitch and roll targets of the gimbal yaw in range -99 ~ +99 # define AP_MOUNT_TOPOTEK_ID3CHAR_YAW_ANGLE "GIY" // set the yaw angle target in the range -150 ~ 150, speed 0 ~ 99 (0.1deg/sec) @@ -111,6 +112,12 @@ void AP_Mount_Topotek::update() request_track_status(); } break; + case 8: + // get gimbal model name + if (!_got_gimbal_model_name) { + request_gimbal_model_name(); + } + break; } // change to RC_TARGETING mode if RC input has changed @@ -510,6 +517,11 @@ void AP_Mount_Topotek::send_camera_information(mavlink_channel_t chan) const static uint8_t model_name[32] {}; const char cam_definition_uri[140] {}; + // copy model name if available + if (_got_gimbal_model_name) { + strncpy((char*)model_name, (const char*)_model_name, ARRAY_SIZE(model_name)); + } + // capability flags const uint32_t flags = CAMERA_CAP_FLAGS_CAPTURE_VIDEO | CAMERA_CAP_FLAGS_CAPTURE_IMAGE | @@ -675,8 +687,8 @@ void AP_Mount_Topotek::read_incoming_packets() case ParseState::WAITING_FOR_ID1: case ParseState::WAITING_FOR_ID2: case ParseState::WAITING_FOR_ID3: - // sanity check all capital letters. eg 'GAC' - if (b >= 'A' && b <= 'Z') { + // check all uppercase letters and numbers. eg 'GAC' + if ((b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9')) { // advance to next state _parser.state = (ParseState)((uint8_t)_parser.state+1); break; @@ -774,6 +786,13 @@ void AP_Mount_Topotek::request_gimbal_version() send_fixedlen_packet(AddressByte::SYSTEM_AND_IMAGE, AP_MOUNT_TOPOTEK_ID3CHAR_GET_VERSION, false, 0); } +// request gimbal model name +void AP_Mount_Topotek::request_gimbal_model_name() +{ + // sample command: #TPUG2rPA200 + send_fixedlen_packet(AddressByte::GIMBAL, AP_MOUNT_TOPOTEK_ID3CHAR_GET_MODEL_NAME, false, 0); +} + // send angle target in radians to gimbal void AP_Mount_Topotek::send_angle_target(const MountTarget& angle_rad) { @@ -1072,6 +1091,17 @@ void AP_Mount_Topotek::gimbal_version_analyse() _got_gimbal_version = true; } +// gimbal model name message analysis +void AP_Mount_Topotek::gimbal_model_name_analyse() +{ + strncpy((char *)_model_name, (const char *)_msg_buff + 10, char_to_hex(_msg_buff[5])); + + // display gimbal model name to user + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "%s %s", send_message_prefix, _model_name); + + _got_gimbal_model_name = true; +} + // calculate checksum uint8_t AP_Mount_Topotek::calculate_crc(const uint8_t *cmd, uint8_t len) const { diff --git a/libraries/AP_Mount/AP_Mount_Topotek.h b/libraries/AP_Mount/AP_Mount_Topotek.h index c1f3e08dc8fa1..cbc62ca839f85 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.h +++ b/libraries/AP_Mount/AP_Mount_Topotek.h @@ -27,7 +27,7 @@ #include #define AP_MOUNT_TOPOTEK_PACKETLEN_MAX 36 // maximum number of bytes in a packet sent to or received from the gimbal -#define AP_MOUNT_RECV_GIMBAL_CMD_CATEGORIES_NUM 6 // parse the number of gimbal command types +#define AP_MOUNT_RECV_GIMBAL_CMD_CATEGORIES_NUM 7 // parse the number of gimbal command types class AP_Mount_Topotek : public AP_Mount_Backend_Serial { @@ -168,6 +168,9 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial // request gimbal version void request_gimbal_version(); + // request gimbal model name + void request_gimbal_model_name(); + // send angle target in radians to gimbal void send_angle_target(const MountTarget& angle_rad); @@ -195,6 +198,9 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial // gimbal basic information analysis void gimbal_version_analyse(); + // gimbal model name message analysis + void gimbal_model_name_analyse(); + // gimbal distance information analysis void gimbal_dist_info_analyse(); @@ -229,8 +235,10 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial bool _sdcard_status; // memory card status (received from gimbal) bool _last_lock; // last lock mode sent to gimbal bool _got_gimbal_version; // true if gimbal's version has been received + bool _got_gimbal_model_name; // true if gimbal's model name has been received bool _last_zoom_stop; // true if zoom has been stopped (used to re-send in order to handle lost packets) bool _last_focus_stop; // true if focus has been stopped (used to re-sent in order to handle lost packets) + uint8_t _model_name[16]; // gimbal model name uint8_t _sent_time_count; // count of current time messages sent to gimbal uint32_t _firmware_ver; // firmware version Vector3f _current_angle_rad; // current angles in radians received from gimbal (x=roll, y=pitch, z=yaw) @@ -260,6 +268,7 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial {{"LRF"}, &AP_Mount_Topotek::gimbal_dist_info_analyse}, {{"TRC"}, &AP_Mount_Topotek::gimbal_track_analyse}, {{"VSN"}, &AP_Mount_Topotek::gimbal_version_analyse}, + {{"PA2"}, &AP_Mount_Topotek::gimbal_model_name_analyse} }; }; From e2cb4ba232deb815e12d8d75c0de56309d4febb7 Mon Sep 17 00:00:00 2001 From: xiaozhou <3177821352@qq.com> Date: Tue, 16 Jul 2024 19:57:52 +0900 Subject: [PATCH 071/232] AP_Mount: Topotek image tracking fix Co-authored-by: Randy Mackay --- libraries/AP_Mount/AP_Mount_Topotek.cpp | 45 +++++++++++++++---------- libraries/AP_Mount/AP_Mount_Topotek.h | 9 ++++- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_Topotek.cpp b/libraries/AP_Mount/AP_Mount_Topotek.cpp index 7d95fbd663a9c..9487e202af65f 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.cpp +++ b/libraries/AP_Mount/AP_Mount_Topotek.cpp @@ -108,9 +108,7 @@ void AP_Mount_Topotek::update() break; case 6: // request tracking info - if (_is_tracking) { - request_track_status(); - } + request_track_status(); break; case 8: // get gimbal model name @@ -127,11 +125,10 @@ void AP_Mount_Topotek::update() if (_is_tracking) { // cancel tracking if mode has changed if (_last_mode != _mode) { + _last_mode = _mode; cancel_tracking(); - } else { - // image tracking is active so we do not send attitude targets - return; } + return; } _last_mode = _mode; @@ -395,6 +392,11 @@ bool AP_Mount_Topotek::set_tracking(TrackingType tracking_type, const Vector2f& } if (send_tracking_cmd) { + // set the gimbal to the ready-to-track state when the gimbal tracking status is stopped + if (_last_tracking_state == TrackingStatus::STOPPED_TRACKING) { + send_fixedlen_packet(AddressByte::SYSTEM_AND_IMAGE, AP_MOUNT_TOPOTEK_ID3CHAR_TRACKING, true, 2); + } + // prepare data bytes uint8_t databuff[10]; databuff[0] = HIGHBYTE(track_center_x); @@ -406,7 +408,7 @@ bool AP_Mount_Topotek::set_tracking(TrackingType tracking_type, const Vector2f& databuff[6] = HIGHBYTE(track_height); databuff[7] = LOWBYTE(track_height); databuff[8] = 0; - databuff[9] = 0; + databuff[9] = (tracking_type == TrackingType::TRK_POINT) ? 9 : 1; // when tracking point, enable fuzzy click function // send tracking command bool res = send_variablelen_packet(HeaderType::VARIABLE_LEN, @@ -414,7 +416,12 @@ bool AP_Mount_Topotek::set_tracking(TrackingType tracking_type, const Vector2f& AP_MOUNT_TOPOTEK_ID3CHAR_START_TRACKING, true, (uint8_t*)databuff, ARRAY_SIZE(databuff)); - _is_tracking |= res; + + // display error message on failure + if (!res) { + GCS_SEND_TEXT(MAV_SEVERITY_ERROR, "%s tracking failed", send_message_prefix); + } + return res; } @@ -431,11 +438,11 @@ bool AP_Mount_Topotek::cancel_tracking() return false; } + // if gimbal is tracking-in-progress change to waiting state, otherwise stop + const uint8_t track_set = _last_tracking_state == TrackingStatus::TRACKING_IN_PROGRESS ? 1 : 0; + // send tracking command - if (send_fixedlen_packet(AddressByte::SYSTEM_AND_IMAGE, AP_MOUNT_TOPOTEK_ID3CHAR_TRACKING, true, 1)) { - return true; - } - return false; + return send_fixedlen_packet(AddressByte::SYSTEM_AND_IMAGE, AP_MOUNT_TOPOTEK_ID3CHAR_TRACKING, true, track_set); } // set camera picture-in-picture mode @@ -1001,7 +1008,7 @@ void AP_Mount_Topotek::gimbal_sdcard_analyse() void AP_Mount_Topotek::gimbal_track_analyse() { // ignore tracking state if unchanged - uint8_t tracking_state = _msg_buff[11]; + TrackingStatus tracking_state = (TrackingStatus)_msg_buff[11]; if (tracking_state == _last_tracking_state) { return; } @@ -1010,15 +1017,17 @@ void AP_Mount_Topotek::gimbal_track_analyse() // inform user const char* tracking_str = "tracking"; switch (tracking_state) { - case '0': - GCS_SEND_TEXT(MAV_SEVERITY_WARNING, "%s %s error", send_message_prefix, tracking_str); - break; - case '1': + case TrackingStatus::STOPPED_TRACKING: GCS_SEND_TEXT(MAV_SEVERITY_INFO, "%s %s stopped", send_message_prefix, tracking_str); _is_tracking = false; break; - case '2': + case TrackingStatus::WAITING_FOR_TRACKING: + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "%s %s waiting", send_message_prefix, tracking_str); + _is_tracking = false; + break; + case TrackingStatus::TRACKING_IN_PROGRESS: GCS_SEND_TEXT(MAV_SEVERITY_INFO, "%s %s started", send_message_prefix, tracking_str); + _is_tracking = true; break; } } diff --git a/libraries/AP_Mount/AP_Mount_Topotek.h b/libraries/AP_Mount/AP_Mount_Topotek.h index cbc62ca839f85..bcabd3d4e2735 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.h +++ b/libraries/AP_Mount/AP_Mount_Topotek.h @@ -147,6 +147,13 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial WAITING_FOR_CRC_HIGH, }; + // tracking status + enum class TrackingStatus : uint8_t { + STOPPED_TRACKING = 0x30, // not tracking + WAITING_FOR_TRACKING = 0x31, // wait to track command status + TRACKING_IN_PROGRESS = 0x32 // the status is being tracked. + }; + // identifier bytes typedef char Identifier[3]; @@ -230,7 +237,7 @@ class AP_Mount_Topotek : public AP_Mount_Backend_Serial // members bool _recording; // recording status (received from gimbal) bool _is_tracking; // whether to enable the tracking state - uint8_t _last_tracking_state; // last tracking state received from gimbal + TrackingStatus _last_tracking_state = TrackingStatus::STOPPED_TRACKING; // last tracking state received from gimbal uint8_t _last_mode; // mode during latest update, used to detect mode changes and cancel tracking bool _sdcard_status; // memory card status (received from gimbal) bool _last_lock; // last lock mode sent to gimbal From c771440ea4e8a8d0f709cc485109a74db76846c6 Mon Sep 17 00:00:00 2001 From: James O'Shannessy <12959316+joshanne@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:42:23 +1000 Subject: [PATCH 072/232] AP_InertialSensor: Fix persistent storing of IMU Z Scale Fixes INSn_ACCSCAL_Z not being stored in persistent storage when bootloader is flashed. --- libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp b/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp index 17d89f15ac1cd..bb71172dc9b00 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor_tempcal.cpp @@ -526,6 +526,7 @@ void AP_InertialSensor::get_persistent_params(ExpandingString &str) const str.printf("INS%u_ACCOFFS_Z=%f\n", imu, aoff.z); str.printf("INS%u_ACCSCAL_X=%f\n", imu, ascl.x); str.printf("INS%u_ACCSCAL_Y=%f\n", imu, ascl.y); + str.printf("INS%u_ACCSCAL_Z=%f\n", imu, ascl.z); str.printf("INS%u_ACC_CALTEMP=%.2f\n", imu, params[i].caltemp_accel.get()); } #endif From ce0ae33c5bd51b72db28d2338f5f1b2bae277202 Mon Sep 17 00:00:00 2001 From: James O'Shannessy <12959316+joshanne@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:37:39 +1000 Subject: [PATCH 073/232] AP_HAL_ChibiOS: Capture the case where the persistent parameter is the newer format INSn_ACC_ID This fixes the handling of the newer INSn_* parameters when loading those stored in persistent memory. --- libraries/AP_HAL_ChibiOS/Util.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/Util.cpp b/libraries/AP_HAL_ChibiOS/Util.cpp index 6775192d2ad7e..a6d802ea6429b 100644 --- a/libraries/AP_HAL_ChibiOS/Util.cpp +++ b/libraries/AP_HAL_ChibiOS/Util.cpp @@ -641,8 +641,11 @@ void Util::apply_persistent_params(void) const been done by whether the IDs are configured in storage */ - if (strncmp(pname, "INS_ACC", 7) == 0 && - strcmp(pname+strlen(pname)-3, "_ID") == 0) { + bool legacy_acc_id = strncmp(pname, "INS_ACC", 7) == 0 && + strcmp(pname+strlen(pname)-3, "_ID") == 0; + bool new_acc_id = strncmp(pname, "INS", 3) == 0 && + strcmp(pname+strlen(pname)-6, "ACC_ID") == 0; + if (legacy_acc_id || new_acc_id) { enum ap_var_type ptype; AP_Int32 *ap = (AP_Int32 *)AP_Param::find(pname, &ptype); if (ap && ptype == AP_PARAM_INT32) { From b6adb4c7e72d421b2d115bf617b4187eb38a6570 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sun, 21 Jul 2024 22:01:20 -0500 Subject: [PATCH 074/232] DroneCAN: update DSDL compiler Fixes the following issues: * Compound array elements subject to tail array optimization could be decoded incorrectly, causing a decode failure. * Invalid array lengths could be sent over the wire if a longer-than-max array was encoded (though only the max number of elements was sent). * Lengths were not validated when decoding arrays of compound elements using TAO, causing memory corruption if an invalid length was received. * Union tags were not validated, causing undefined behavior if an invalid tag was received. --- modules/DroneCAN/dronecan_dsdlc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/DroneCAN/dronecan_dsdlc b/modules/DroneCAN/dronecan_dsdlc index 2465ace6c8cb0..43d8a9ed909e1 160000 --- a/modules/DroneCAN/dronecan_dsdlc +++ b/modules/DroneCAN/dronecan_dsdlc @@ -1 +1 @@ -Subproject commit 2465ace6c8cb0148e3ff5865aa9e4dd17d691a71 +Subproject commit 43d8a9ed909e18f169c001a0f418edc72269b36b From 0a9a8d9178d90d1c2314db4ef134f4033546d453 Mon Sep 17 00:00:00 2001 From: Ben Butterworth <24711048+ben-xD@users.noreply.github.com> Date: Mon, 22 Jul 2024 13:08:12 +0100 Subject: [PATCH 075/232] Tools: install-prereqs-ubuntu.sh: fix script after setuptools==71.0.0 release Use newest `packaging` to avoid packaging incompatibility with `setuptools>=71.0` As https://github.com/pypa/setuptools/issues/4496#issuecomment-2240322375 mentions: > setuptools>=71.0 does not work with packaging<24.0, but will not upgrade it if packaging is already installed Also relevant: https://github.com/pypa/setuptools/issues/4496 --- Tools/environment_install/install-prereqs-arch.sh | 2 +- .../install-prereqs-openSUSE-Tumbleweed.sh | 2 +- Tools/environment_install/install-prereqs-ubuntu.sh | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Tools/environment_install/install-prereqs-arch.sh b/Tools/environment_install/install-prereqs-arch.sh index 394d9ae3b8d3f..8bba1d360876b 100755 --- a/Tools/environment_install/install-prereqs-arch.sh +++ b/Tools/environment_install/install-prereqs-arch.sh @@ -26,7 +26,7 @@ BASE_PKGS="base-devel ccache git gsfonts tk wget gcc" SITL_PKGS="python-pip python-setuptools python-wheel python-wxpython opencv python-numpy python-scipy" PX4_PKGS="lib32-glibc zip zlib ncurses" -PYTHON_PKGS="future lxml pymavlink MAVProxy pexpect argparse matplotlib pyparsing geocoder pyserial empy==3.3.4 dronecan setuptools wheel" +PYTHON_PKGS="future lxml pymavlink MAVProxy pexpect argparse matplotlib pyparsing geocoder pyserial empy==3.3.4 dronecan packaging setuptools wheel" # GNU Tools for ARM Embedded Processors # (see https://launchpad.net/gcc-arm-embedded/) diff --git a/Tools/environment_install/install-prereqs-openSUSE-Tumbleweed.sh b/Tools/environment_install/install-prereqs-openSUSE-Tumbleweed.sh index 5895dbdeb5b2b..acc86a9f4090c 100755 --- a/Tools/environment_install/install-prereqs-openSUSE-Tumbleweed.sh +++ b/Tools/environment_install/install-prereqs-openSUSE-Tumbleweed.sh @@ -105,7 +105,7 @@ if ! grep -Fxq "$SOURCE_LINE" ~/.bashrc; then fi fi -$PIP3 install -U pip setuptools wheel +$PIP3 install -U pip packaging setuptools wheel $PIP3 install -U attrdict3 $PIP3 install -U $PYTHON_PKGS diff --git a/Tools/environment_install/install-prereqs-ubuntu.sh b/Tools/environment_install/install-prereqs-ubuntu.sh index 0aea76a53b838..76ea0c3098543 100755 --- a/Tools/environment_install/install-prereqs-ubuntu.sh +++ b/Tools/environment_install/install-prereqs-ubuntu.sh @@ -399,8 +399,8 @@ if [ -n "$PYTHON_VENV_PACKAGE" ]; then fi fi -# try update setuptools and wheel before installing pip package that may need compilation -$PIP install $PIP_USER_ARGUMENT -U pip setuptools wheel +# try update packaging, setuptools and wheel before installing pip package that may need compilation +$PIP install $PIP_USER_ARGUMENT -U pip packaging setuptools wheel if [ "$GITHUB_ACTIONS" == "true" ]; then PIP_USER_ARGUMENT+=" --progress-bar off" From 0272f59d0c3ae479d94081c922b31e8ccdf884d8 Mon Sep 17 00:00:00 2001 From: Rhys Mainwaring Date: Tue, 16 Jul 2024 13:38:01 +0100 Subject: [PATCH 076/232] Tools: autotest: add rover-omni3mecanum - Add frame rover-omni3mecanum. - Remove params with default values. Signed-off-by: Rhys Mainwaring --- .../default_params/rover-omni3mecanum.parm | 25 +++++++++++++++++++ Tools/autotest/pysim/vehicleinfo.py | 5 ++++ 2 files changed, 30 insertions(+) create mode 100644 Tools/autotest/default_params/rover-omni3mecanum.parm diff --git a/Tools/autotest/default_params/rover-omni3mecanum.parm b/Tools/autotest/default_params/rover-omni3mecanum.parm new file mode 100644 index 0000000000000..3b5bfb1feb9fa --- /dev/null +++ b/Tools/autotest/default_params/rover-omni3mecanum.parm @@ -0,0 +1,25 @@ +ACRO_TURN_RATE 300.000000 +ATC_SPEED_P 0.200000 +ATC_SPEED_D 0.000010 +ATC_STR_RAT_D 0.000010 +ATC_STR_RAT_FF 0.100000 +ATC_STR_RAT_I 0.010000 +ATC_STR_RAT_MAX 360.000000 +ATC_STR_RAT_P 0.030000 +CRUISE_SPEED 1.0 +CRUISE_THROTTLE 42.0 +FRAME_TYPE 4 +PSC_VEL_P 0.500000 +RC2_MAX 2000 +RC2_MIN 1000 +RC4_MAX 2000 +RC4_MIN 1000 +SERVO1_FUNCTION 33 +SERVO2_FUNCTION 34 +SERVO2_MAX 2000 +SERVO2_MIN 1000 +SERVO3_FUNCTION 35 +WP_PIVOT_RATE 120.0 +WP_SPEED 1.0 + + diff --git a/Tools/autotest/pysim/vehicleinfo.py b/Tools/autotest/pysim/vehicleinfo.py index 73349731a3f92..ca07c51b8f19d 100644 --- a/Tools/autotest/pysim/vehicleinfo.py +++ b/Tools/autotest/pysim/vehicleinfo.py @@ -391,6 +391,11 @@ def __init__(self): "default_params_filename": ["default_params/rover.parm", "default_params/rover-skid.parm"], }, + "rover-omni3mecanum": { + "waf_target": "bin/ardurover", + "default_params_filename": ["default_params/rover.parm", + "default_params/rover-omni3mecanum.parm"], + }, "rover-vectored": { "waf_target": "bin/ardurover", "default_params_filename": ["default_params/rover.parm", From 4354072d34c99b5b30fedc0c8ab2411d93c6a733 Mon Sep 17 00:00:00 2001 From: Rhys Mainwaring Date: Wed, 17 Jul 2024 16:13:40 +0100 Subject: [PATCH 077/232] SITL: SIM_Rover: add simulation for omni3 mecanum rover Signed-off-by: Rhys Mainwaring --- libraries/SITL/SIM_Rover.cpp | 142 ++++++++++++++++++++++++++++------- libraries/SITL/SIM_Rover.h | 9 +++ 2 files changed, 125 insertions(+), 26 deletions(-) diff --git a/libraries/SITL/SIM_Rover.cpp b/libraries/SITL/SIM_Rover.cpp index c1a7afb608f44..3182700dd9ad0 100644 --- a/libraries/SITL/SIM_Rover.cpp +++ b/libraries/SITL/SIM_Rover.cpp @@ -21,6 +21,8 @@ #include #include +#include + namespace SITL { SimRover::SimRover(const char *frame_str) : @@ -41,10 +43,14 @@ SimRover::SimRover(const char *frame_str) : if (vectored_thrust) { printf("Vectored Thrust Rover Simulation Started\n"); } - lock_step_scheduled = true; -} + omni3 = strstr(frame_str, "omni3mecanum") != nullptr; + if (omni3) { + printf("Omni3 Mecanum Rover Simulation Started\n"); + } + lock_step_scheduled = true; +} /* return turning circle (diameter) in meters for steering angle proportion in degrees @@ -92,6 +98,50 @@ float SimRover::calc_lat_accel(float steering_angle, float speed) update the rover simulation by one time step */ void SimRover::update(const struct sitl_input &input) +{ + // how much time has passed? + float delta_time = frame_time_us * 1.0e-6f; + + // update gyro and accel_body according to frame type + if (omni3) { + update_omni3(input, delta_time); + } else { + update_ackermann_or_skid(input, delta_time); + } + + // common to all rovers + + // now in earth frame + Vector3f accel_earth = dcm * accel_body; + accel_earth += Vector3f(0, 0, GRAVITY_MSS); + + // we are on the ground, so our vertical accel is zero + accel_earth.z = 0; + + // work out acceleration as seen by the accelerometers. It sees the kinematic + // acceleration (ie. real movement), plus gravity + accel_body = dcm.transposed() * (accel_earth + Vector3f(0, 0, -GRAVITY_MSS)); + + // new velocity vector + velocity_ef += accel_earth * delta_time; + + // new position vector + position += (velocity_ef * delta_time).todouble(); + + update_external_payload(input); + + // update lat/lon/altitude + update_position(); + time_advance(); + + // update magnetic field + update_mag_field_bf(); +} + +/* + update the ackermann or skid rover simulation by one time step + */ +void SimRover::update_ackermann_or_skid(const struct sitl_input &input, float delta_time) { float steering, throttle; @@ -113,9 +163,6 @@ void SimRover::update(const struct sitl_input &input) } } - // how much time has passed? - float delta_time = frame_time_us * 1.0e-6f; - // speed in m/s in body frame Vector3f velocity_body = dcm.transposed() * velocity_ef; @@ -137,37 +184,80 @@ void SimRover::update(const struct sitl_input &input) dcm.rotate(gyro * delta_time); dcm.normalize(); - // accel in body frame due to motor + // accel in body frame due to motor (excluding gravity) accel_body = Vector3f(accel, 0, 0); // add in accel due to direction change accel_body.y += radians(yaw_rate) * speed; +} - // now in earth frame - Vector3f accel_earth = dcm * accel_body; - accel_earth += Vector3f(0, 0, GRAVITY_MSS); - - // we are on the ground, so our vertical accel is zero - accel_earth.z = 0; - - // work out acceleration as seen by the accelerometers. It sees the kinematic - // acceleration (ie. real movement), plus gravity - accel_body = dcm.transposed() * (accel_earth + Vector3f(0, 0, -GRAVITY_MSS)); +/* + update the omni3 rover simulation by one time step + */ +void SimRover::update_omni3(const struct sitl_input &input, float delta_time) +{ + // in omni3 mode the first three servos are motor speeds + float motor1 = 2*((input.servos[0]-1000)/1000.0f - 0.5f); + float motor2 = 2*((input.servos[1]-1000)/1000.0f - 0.5f); + float motor3 = 2*((input.servos[2]-1000)/1000.0f - 0.5f); + + // use forward kinematics to calculate body frame velocity + Vector3f wheel_ang_vel( + motor1 * omni3_wheel_max_ang_vel, + motor2 * omni3_wheel_max_ang_vel, + motor3 * omni3_wheel_max_ang_vel + ); + + // derivation of forward kinematics for an Omni3Mecanum rover + // A. Gfrerrer. "Geometry and kinematics of the Mecanum wheel", + // Computer Aided Geometric Design 25 (2008) 784–791. + // Retrieved from https://www.geometrie.tugraz.at/gfrerrer/publications/MecanumWheel.pdf. + // + // the frame is equilateral triangle + // + // d[i] = 0.18 m is distance from frame centre to each wheel + // r_w = 0.04725 m is the wheel radius. + // delta = radians(-45) is angle of the roller to the direction of forward rotation + // alpha[i] is the angle the wheel axis is rotated about the body z-axis + // c[i] = cos(alpha[i] + delta) + // s[i] = sin(alpha[i] + delta) + // + // wheel d[i] alpha[i] a_x[i] a_y[i] c[i] s[i] + // 1 0.18 1.04719 0.09 0.15588 0.965925 0.258819 + // 2 0.18 3.14159 -0.18 0.0 -0.707106 0.707106 + // 3 0.18 5.23598 0.09 -0.15588 -0.258819 -0.965925 + // + // k = 1/(r_w * sin(delta)) = -29.930445 is a scale factor + // + // inverse kinematic matrix + // M[i, 0] = k * c[i] + // M[i, 1] = k * s[i] + // M[i, 2] = k * (a_x[i] s[i] - a_y[i] c[i]) + // + // forward kinematics matrix: Minv = M^-1 + constexpr Matrix3f Minv( + -0.0215149, 0.01575, 0.0057649, + -0.0057649, -0.01575, 0.0215149, + 0.0875, 0.0875, 0.0875); + + // twist - this is the target linear and angular velocity + Vector3f twist = Minv * wheel_ang_vel; - // new velocity vector - velocity_ef += accel_earth * delta_time; + // speed in m/s in body frame + Vector3f velocity_body = dcm.transposed() * velocity_ef; - // new position vector - position += (velocity_ef * delta_time).todouble(); + // linear acceleration in m/s/s - very crude model + float accel_x = omni3_max_accel * (twist.x - velocity_body.x) / omni3_max_speed; + float accel_y = omni3_max_accel * (twist.y - velocity_body.y) / omni3_max_speed; - update_external_payload(input); + gyro = Vector3f(0, 0, twist.z); - // update lat/lon/altitude - update_position(); - time_advance(); + // update attitude + dcm.rotate(gyro * delta_time); + dcm.normalize(); - // update magnetic field - update_mag_field_bf(); + // accel in body frame due to motors (excluding gravity) + accel_body = Vector3f(accel_x, accel_y, 0); } } // namespace SITL diff --git a/libraries/SITL/SIM_Rover.h b/libraries/SITL/SIM_Rover.h index 42009a48a177f..113bc55dfc1a8 100644 --- a/libraries/SITL/SIM_Rover.h +++ b/libraries/SITL/SIM_Rover.h @@ -51,6 +51,15 @@ class SimRover : public Aircraft { float vectored_angle_max = 90.0f; // maximum angle (in degrees) to which thrust can be turned float vectored_turn_rate_max = 90.0f; // maximum turn rate (in deg/sec) with full throttle angled at 90deg + // omni3 Mecanum related members + bool omni3; // true if vehicle is omni-directional with 3 Mecanum wheels + float omni3_max_speed = 2.3625f; // omni vehicle's maximum forward speed in m/s + float omni3_max_accel = 1.0f; // omni vehicle's maximum forward acceleration in m/s/s + float omni3_wheel_max_ang_vel = 50.0f; // omni vehicle's wheel maximum angular velocity in rad/s + + void update_ackermann_or_skid(const struct sitl_input &input, float delta_time); + void update_omni3(const struct sitl_input &input, float delta_time); + float turn_circle(float steering) const; float calc_yaw_rate(float steering, float speed); float calc_lat_accel(float steering_angle, float speed); From 0190e70da4cdbd7609676703953ab86ce2205ccd Mon Sep 17 00:00:00 2001 From: Alex P Date: Tue, 23 Jul 2024 06:10:35 +0300 Subject: [PATCH 078/232] Tools: Reserving board id for Stellar F4 in board_types.txt --- Tools/AP_Bootloader/board_types.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/AP_Bootloader/board_types.txt b/Tools/AP_Bootloader/board_types.txt index 171f4f1249e10..ed687c3241f95 100644 --- a/Tools/AP_Bootloader/board_types.txt +++ b/Tools/AP_Bootloader/board_types.txt @@ -312,6 +312,8 @@ AP_HW_LongbowF405 1422 AP_HW_MountainEagleH743 1444 +AP_HW_StellarF4 1500 + AP_HW_SakuraRC-H743 2714 # IDs 4200-4220 reserved for HAKRC From 03bdbea77cf2a9e775fa0566755fa4dcaf8d4b81 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 23 Jul 2024 08:42:28 +1000 Subject: [PATCH 079/232] hwdef: enable relay support in MatekL431-DShot fw the PWM expansion boards can also be used for relay control, often combined with PWM output --- libraries/AP_HAL_ChibiOS/hwdef/MatekL431-DShot/hwdef.dat | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/MatekL431-DShot/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/MatekL431-DShot/hwdef.dat index 5c27d1c9e6756..d74ef0f7cb173 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/MatekL431-DShot/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/MatekL431-DShot/hwdef.dat @@ -32,3 +32,7 @@ define HAL_PERIPH_ENABLE_NOTIFY define HAL_SERIAL_ESC_COMM_ENABLED 1 define HAL_SUPPORT_RCOUT_SERIAL 1 define HAL_WITH_ESC_TELEM 1 + +# also enable relay output via hardpoint msgs +define HAL_PERIPH_ENABLE_RELAY +define AP_RELAY_ENABLED 1 From 230269bed8ca5e0a4cfc17589646e22d0511629c Mon Sep 17 00:00:00 2001 From: Bob Long Date: Fri, 16 Feb 2024 13:31:14 -0500 Subject: [PATCH 080/232] HAL_ChibiOS: add adjustable wdg timeout for hwdefs This allows the watchdog timeout to be adjusted in the hwdef.dat file, so that critical nodes like ESCs can recover more quickly. --- Tools/AP_Periph/AP_Periph.cpp | 2 ++ .../AP_HAL_ChibiOS/hwdef/common/watchdog.c | 19 +++++++++++++++---- .../AP_HAL_ChibiOS/hwdef/common/watchdog.h | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Tools/AP_Periph/AP_Periph.cpp b/Tools/AP_Periph/AP_Periph.cpp index 976dbc5834bcb..b952d7ae2495c 100644 --- a/Tools/AP_Periph/AP_Periph.cpp +++ b/Tools/AP_Periph/AP_Periph.cpp @@ -608,7 +608,9 @@ void AP_Periph_FW::prepare_reboot() // delay to give the ACK a chance to get out, the LEDs to flash, // the IO board safety to be forced on, the parameters to flush, + hal.scheduler->expect_delay_ms(100); hal.scheduler->delay(40); + hal.scheduler->expect_delay_ms(0); } /* diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.c b/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.c index c1a5eeb0493a9..689f9e4acc1c8 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.c +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.c @@ -22,6 +22,16 @@ #error "Unsupported IWDG RCC MCU config" #endif +/* + define for controlling how long the watchdog is set for. +*/ +#ifndef STM32_WDG_TIMEOUT_MS +#define STM32_WDG_TIMEOUT_MS 2048 +#endif +#if STM32_WDG_TIMEOUT_MS > 4096 || STM32_WDG_TIMEOUT_MS < 20 +#error "Watchdog timeout out of range" +#endif + /* defines for working out if the reset was from the watchdog */ @@ -68,16 +78,17 @@ static bool watchdog_enabled; */ void stm32_watchdog_init(void) { - // setup for 2s reset + // setup the watchdog timeout + // t = 4 * 2^PR * (RLR+1) / 32KHz IWDGD.KR = 0x5555; - IWDGD.PR = 2; // div16 - IWDGD.RLR = 0xFFF; + IWDGD.PR = 3; // changing this would change the definition of STM32_WDG_TIMEOUT_MS + IWDGD.RLR = STM32_WDG_TIMEOUT_MS - 1; IWDGD.KR = 0xCCCC; watchdog_enabled = true; } /* - pat the dog, to prevent a reset. If not called for 1s + pat the dog, to prevent a reset. If not called for STM32_WDG_TIMEOUT_MS after stm32_watchdog_init() then MCU will reset */ void stm32_watchdog_pat(void) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.h b/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.h index f015dee9c1a13..de8e3941494b0 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.h +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/watchdog.h @@ -10,7 +10,7 @@ extern "C" { void stm32_watchdog_init(void); /* - pat the dog, to prevent a reset. If not called for 1s + pat the dog, to prevent a reset. If not called for STM32_WDG_TIMEOUT_MS after stm32_watchdog_init() then MCU will reset */ void stm32_watchdog_pat(void); From 738586342c3d5fc478d969fa70074c3c8440cc38 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Tue, 2 Jan 2024 19:47:43 +0000 Subject: [PATCH 081/232] Copter: notify when fence breach has cleared output fence breach type when switching mode without a fence action do not go into manual recovery only recover if there is a fence action implement auto-takeoff fence options output user-friendly fence names auto-enable fences on auto-takeoff use fence enable_configured() simplify message printing --- ArduCopter/fence.cpp | 5 +++-- ArduCopter/mode.cpp | 10 ++++++---- ArduCopter/mode_auto.cpp | 4 ++-- ArduCopter/mode_guided.cpp | 3 +++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 3bfe085c2b869..aba1ecce5bb84 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -24,7 +24,7 @@ void Copter::fence_check() if (new_breaches) { if (!copter.ap.land_complete) { - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence Breached"); + fence.print_fence_message("breached", new_breaches); } // if the user wants some kind of response and motors are armed @@ -81,7 +81,8 @@ void Copter::fence_check() LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode(new_breaches)); - } else if (orig_breaches) { + } else if (orig_breaches && fence.get_breaches() == 0) { + GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence breach cleared"); // record clearing of breach LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode::ERROR_RESOLVED); } diff --git a/ArduCopter/mode.cpp b/ArduCopter/mode.cpp index ce191b0c1ef08..69cda906803ec 100644 --- a/ArduCopter/mode.cpp +++ b/ArduCopter/mode.cpp @@ -371,10 +371,12 @@ bool Copter::set_mode(Mode::Number mode, ModeReason reason) #endif #if AP_FENCE_ENABLED - // pilot requested flight mode change during a fence breach indicates pilot is attempting to manually recover - // this flight mode change could be automatic (i.e. fence, battery, GPS or GCS failsafe) - // but it should be harmless to disable the fence temporarily in these situations as well - fence.manual_recovery_start(); + if (fence.get_action() != AC_FENCE_ACTION_REPORT_ONLY) { + // pilot requested flight mode change during a fence breach indicates pilot is attempting to manually recover + // this flight mode change could be automatic (i.e. fence, battery, GPS or GCS failsafe) + // but it should be harmless to disable the fence temporarily in these situations as well + fence.manual_recovery_start(); + } #endif #if AP_CAMERA_ENABLED diff --git a/ArduCopter/mode_auto.cpp b/ArduCopter/mode_auto.cpp index 3ac943f06dbc5..9a6b684cf1e8a 100644 --- a/ArduCopter/mode_auto.cpp +++ b/ArduCopter/mode_auto.cpp @@ -791,10 +791,10 @@ bool ModeAuto::start_command(const AP_Mission::Mission_Command& cmd) case MAV_CMD_DO_FENCE_ENABLE: #if AP_FENCE_ENABLED if (cmd.p1 == 0) { //disable - copter.fence.enable(false); + copter.fence.enable_configured(false); gcs().send_text(MAV_SEVERITY_INFO, "Fence Disabled"); } else { //enable fence - copter.fence.enable(true); + copter.fence.enable_configured(true); gcs().send_text(MAV_SEVERITY_INFO, "Fence Enabled"); } #endif //AP_FENCE_ENABLED diff --git a/ArduCopter/mode_guided.cpp b/ArduCopter/mode_guided.cpp index a771c0fdaa0ef..f22501e47fb70 100644 --- a/ArduCopter/mode_guided.cpp +++ b/ArduCopter/mode_guided.cpp @@ -685,6 +685,9 @@ void ModeGuided::takeoff_run() auto_takeoff.run(); if (auto_takeoff.complete && !takeoff_complete) { takeoff_complete = true; +#if AP_FENCE_ENABLED + copter.fence.auto_enable_fence_after_takeoff(); +#endif #if AP_LANDINGGEAR_ENABLED // optionally retract landing gear copter.landinggear.retract_after_takeoff(); From f73154349bb7b73c8853ce25802f718643d8e539 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 13 Jan 2024 18:02:54 +0000 Subject: [PATCH 082/232] GCS_MAVLink: use bitmask based enablement for fences --- libraries/GCS_MAVLink/GCS_Fence.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/libraries/GCS_MAVLink/GCS_Fence.cpp b/libraries/GCS_MAVLink/GCS_Fence.cpp index d6dad1a76990c..b3bfb78a37194 100644 --- a/libraries/GCS_MAVLink/GCS_Fence.cpp +++ b/libraries/GCS_MAVLink/GCS_Fence.cpp @@ -16,20 +16,24 @@ MAV_RESULT GCS_MAVLINK::handle_command_do_fence_enable(const mavlink_command_int return MAV_RESULT_UNSUPPORTED; } - switch ((uint16_t)packet.param1) { - case 0: // disable fence - fence->enable(false); + uint8_t fences = AC_FENCE_ALL_FENCES; + if (uint8_t(packet.param2)) { + fences = uint8_t(packet.param2); + } + + switch (AC_Fence::MavlinkFenceActions(packet.param1)) { + case AC_Fence::MavlinkFenceActions::DISABLE_FENCE: + fence->enable(false, fences); return MAV_RESULT_ACCEPTED; - case 1: // enable fence - if (!fence->present()) - { + case AC_Fence::MavlinkFenceActions::ENABLE_FENCE: + if (!(fence->present() & fences)) { return MAV_RESULT_FAILED; } - - fence->enable(true); + + fence->enable(true, fences); return MAV_RESULT_ACCEPTED; - case 2: // disable fence floor only - fence->disable_floor(); + case AC_Fence::MavlinkFenceActions::DISABLE_ALT_MIN_FENCE: + fence->enable(false, AC_FENCE_TYPE_ALT_MIN); return MAV_RESULT_ACCEPTED; default: return MAV_RESULT_FAILED; @@ -82,7 +86,7 @@ void GCS_MAVLINK::send_fence_status() const mavlink_breach_type = FENCE_BREACH_BOUNDARY; } - // report on Avoidance liminting + // report on Avoidance limiting uint8_t breach_mitigation = FENCE_MITIGATE_UNKNOWN; #if AP_AVOIDANCE_ENABLED && !APM_BUILD_TYPE(APM_BUILD_ArduPlane) const AC_Avoid* avoid = AC_Avoid::get_singleton(); From 95b39f64e3cdbf02f0969e816391f96157af5fca Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 13 Jan 2024 18:03:19 +0000 Subject: [PATCH 083/232] AP_Mission: add comment about new fence API --- libraries/AP_Mission/AP_Mission.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index ff42107ff6418..c11b574e8338f 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -1233,7 +1233,8 @@ MAV_MISSION_RESULT AP_Mission::mavlink_int_to_mission_cmd(const mavlink_mission_ break; case MAV_CMD_DO_FENCE_ENABLE: // MAV ID: 207 - cmd.p1 = packet.param1; // action 0=disable, 1=enable + cmd.p1 = packet.param1; // action 0=disable, 1=enable, 2=disable floor + // packet.param2; // bitmask see FENCE_TYPE enum break; case MAV_CMD_DO_AUX_FUNCTION: @@ -1746,7 +1747,7 @@ bool AP_Mission::mission_cmd_to_mavlink_int(const AP_Mission::Mission_Command& c break; case MAV_CMD_DO_FENCE_ENABLE: // MAV ID: 207 - packet.param1 = cmd.p1; // action 0=disable, 1=enable + packet.param1 = cmd.p1; // action 0=disable, 1=enable, 2=disable floor, 3=enable except floor break; case MAV_CMD_DO_PARACHUTE: // MAV ID: 208 From 8287d4f2d076c27d1c2a920455df4e63c32fa54d Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 15 Jan 2024 19:35:03 +0000 Subject: [PATCH 084/232] AC_Avoidance: take into account minimum altitude fence when calculating climb rate --- libraries/AC_Avoidance/AC_Avoid.cpp | 40 +++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/libraries/AC_Avoidance/AC_Avoid.cpp b/libraries/AC_Avoidance/AC_Avoid.cpp index 8adc6d7c6dc4a..2756e4b8fddd8 100644 --- a/libraries/AC_Avoidance/AC_Avoid.cpp +++ b/libraries/AC_Avoidance/AC_Avoid.cpp @@ -379,29 +379,53 @@ void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_c return; } - // do not adjust climb_rate if level or descending - if (climb_rate_cms <= 0.0f) { + // do not adjust climb_rate if level + if (is_zero(climb_rate_cms)) { return; } + const AP_AHRS &_ahrs = AP::ahrs(); // limit acceleration const float accel_cmss_limited = MIN(accel_cmss, AC_AVOID_ACCEL_CMSS_MAX); + // if descending, adjust for minimum altitude as necessary + if (climb_rate_cms < 0.0f) { +#if AP_FENCE_ENABLED + // calculate distance below fence + AC_Fence *fence = AP::fence(); + if ((_enabled & AC_AVOID_STOP_AT_FENCE) > 0 && fence + && (fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) > 0) { + // calculate distance from vehicle to safe altitude + float veh_alt; + _ahrs.get_relative_position_D_home(veh_alt); + // fence.get_safe_alt_min() is UP, veh_alt is DOWN: + const float alt_min = -(fence->get_safe_alt_min() + veh_alt); + + if (alt_min <= 0.0f) { + climb_rate_cms = MAX(climb_rate_cms, 0.0f); + // also calculate backup speed that will get us back to safe altitude + backup_speed = get_max_speed(kP, accel_cmss_limited, -alt_min*100.0f, dt); + } + } +#endif + return; + } + bool limit_alt = false; float alt_diff = 0.0f; // distance from altitude limit to vehicle in metres (positive means vehicle is below limit) - const AP_AHRS &_ahrs = AP::ahrs(); - #if AP_FENCE_ENABLED // calculate distance below fence AC_Fence *fence = AP::fence(); - if ((_enabled & AC_AVOID_STOP_AT_FENCE) > 0 && fence && (fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MAX) > 0) { + if ((_enabled & AC_AVOID_STOP_AT_FENCE) > 0 && fence) { // calculate distance from vehicle to safe altitude float veh_alt; _ahrs.get_relative_position_D_home(veh_alt); - // _fence.get_safe_alt_max() is UP, veh_alt is DOWN: - alt_diff = fence->get_safe_alt_max() + veh_alt; - limit_alt = true; + if ((fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MAX) > 0) { + // fence.get_safe_alt_max() is UP, veh_alt is DOWN: + alt_diff = fence->get_safe_alt_max() + veh_alt; + limit_alt = true; + } } #endif From 3dbcbe00267ebf30ed65dbc5b2cfc96137e0ce77 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 19 Jan 2024 12:30:46 +0000 Subject: [PATCH 085/232] AP_Arming: do not enable minimim altitude fence on arming call appropriate fence method for auto-enablement --- libraries/AP_Arming/AP_Arming.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index fa8cc8aab0e62..83e7cac17447f 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -1797,11 +1797,7 @@ bool AP_Arming::arm(AP_Arming::Method method, const bool do_arming_checks) if (armed) { auto *fence = AP::fence(); if (fence != nullptr) { - // If a fence is set to auto-enable, turn on the fence - if (fence->auto_enabled() == AC_Fence::AutoEnable::ONLY_WHEN_ARMED) { - fence->enable(true); - GCS_SEND_TEXT(MAV_SEVERITY_INFO, "Fence: auto-enabled"); - } + fence->auto_enable_fence_on_arming(); } } #endif @@ -1845,7 +1841,7 @@ bool AP_Arming::disarm(const AP_Arming::Method method, bool do_disarm_checks) AC_Fence *fence = AP::fence(); if (fence != nullptr) { if(fence->auto_enabled() == AC_Fence::AutoEnable::ONLY_WHEN_ARMED) { - fence->enable(false); + fence->enable_configured(false); } } #endif From 8c2f686bfa1859f23edc1b4b4e66b4c1d794ddb9 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 19 Jan 2024 20:43:45 +0000 Subject: [PATCH 086/232] Plane: output user-friendly fence messages --- ArduPlane/fence.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index 33062460df6b0..bef88306ebc58 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -50,7 +50,7 @@ void Plane::fence_check() } if (new_breaches) { - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence Breached"); + fence.print_fence_message("breached", new_breaches); // if the user wants some kind of response and motors are armed const uint8_t fence_act = fence.get_action(); From 0c6ea4790dd6ad4101ac3c76172075e44833c106 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 27 Jan 2024 16:36:35 +0000 Subject: [PATCH 087/232] AP_Common: fix initialization of ExpandingString so that it can be used on the stack zero out passed in buffers for ExpandingString --- libraries/AP_Common/ExpandingString.cpp | 7 +++++++ libraries/AP_Common/ExpandingString.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/libraries/AP_Common/ExpandingString.cpp b/libraries/AP_Common/ExpandingString.cpp index 9be2b3a91abf1..a3e7a8b401958 100644 --- a/libraries/AP_Common/ExpandingString.cpp +++ b/libraries/AP_Common/ExpandingString.cpp @@ -25,6 +25,13 @@ extern const AP_HAL::HAL& hal; #define EXPAND_INCREMENT 512 +ExpandingString::ExpandingString(char* s, uint32_t total_len) : buf(0) +{ + set_buffer(s, total_len, 0); + memset(buf, 0, buflen); +} + + /* expand the string buffer */ diff --git a/libraries/AP_Common/ExpandingString.h b/libraries/AP_Common/ExpandingString.h index 2561332f3e89d..d92882e1b3af6 100644 --- a/libraries/AP_Common/ExpandingString.h +++ b/libraries/AP_Common/ExpandingString.h @@ -24,6 +24,8 @@ class ExpandingString { public: + ExpandingString() : buf(0), buflen(0), used(0), allocation_failed(false), external_buffer(false) {} + ExpandingString(char* s, uint32_t total_len); const char *get_string(void) const { return buf; From d16615923d6da1602bb9d7b7fe40c5317ffe5012 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 8 Feb 2024 14:44:25 +0000 Subject: [PATCH 088/232] AP_Frsky_Telem: use fence enable_configured() --- libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp b/libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp index 623ad0184f748..afc1f8b7f1a63 100644 --- a/libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp +++ b/libraries/AP_Frsky_Telem/AP_Frsky_MAVliteMsgHandler.cpp @@ -153,10 +153,10 @@ MAV_RESULT AP_Frsky_MAVliteMsgHandler::handle_command_do_fence_enable(const mavl switch ((uint16_t)mav_command_long.param1) { case 0: - fence->enable(false); + fence->enable_configured(false); return MAV_RESULT_ACCEPTED; case 1: - fence->enable(true); + fence->enable_configured(true); return MAV_RESULT_ACCEPTED; default: return MAV_RESULT_FAILED; From 0288e1e79c632fa7f1469a6a7f7e9fb5fab65e22 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 8 Feb 2024 14:44:48 +0000 Subject: [PATCH 089/232] RC_Channel: use fence enable_configured() --- libraries/RC_Channel/RC_Channel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/RC_Channel/RC_Channel.cpp b/libraries/RC_Channel/RC_Channel.cpp index a2de561a77923..8d27aeb426eb1 100644 --- a/libraries/RC_Channel/RC_Channel.cpp +++ b/libraries/RC_Channel/RC_Channel.cpp @@ -1139,7 +1139,7 @@ void RC_Channel::do_aux_function_fence(const AuxSwitchPos ch_flag) return; } - fence->enable(ch_flag == AuxSwitchPos::HIGH); + fence->enable_configured(ch_flag == AuxSwitchPos::HIGH); } #endif From 559bd1e252e3e74d47866ed30faab9893c5520c1 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 8 Feb 2024 14:46:01 +0000 Subject: [PATCH 090/232] Plane: use fence enable_configured() avoid fence breach clearing spam --- ArduPlane/commands_logic.cpp | 4 ++-- ArduPlane/fence.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index 4766cea5c1fba..fc87bb4ad63b2 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -147,10 +147,10 @@ bool Plane::start_command(const AP_Mission::Mission_Command& cmd) case MAV_CMD_DO_FENCE_ENABLE: #if AP_FENCE_ENABLED if (cmd.p1 == 0) { // disable fence - plane.fence.enable(false); + plane.fence.enable_configured(false); gcs().send_text(MAV_SEVERITY_INFO, "Fence disabled"); } else if (cmd.p1 == 1) { // enable fence - plane.fence.enable(true); + plane.fence.enable_configured(true); gcs().send_text(MAV_SEVERITY_INFO, "Fence enabled"); } else if (cmd.p1 == 2) { // disable fence floor only plane.fence.disable_floor(); diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index bef88306ebc58..9615082244736 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -115,7 +115,8 @@ void Plane::fence_check() } LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode(new_breaches)); - } else if (orig_breaches) { + } else if (orig_breaches && fence.get_breaches() == 0) { + GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence breach cleared"); // record clearing of breach LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode::ERROR_RESOLVED); } From 4fc59ae67d0d8550ac22d4b40b2577569c62de21 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 8 Feb 2024 17:09:19 +0000 Subject: [PATCH 091/232] Rover: use fence enable_configured() --- Rover/mode_auto.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rover/mode_auto.cpp b/Rover/mode_auto.cpp index fa1ea8ece212c..f18ab0a8f9db9 100644 --- a/Rover/mode_auto.cpp +++ b/Rover/mode_auto.cpp @@ -596,10 +596,10 @@ bool ModeAuto::start_command(const AP_Mission::Mission_Command& cmd) case MAV_CMD_DO_FENCE_ENABLE: #if AP_FENCE_ENABLED if (cmd.p1 == 0) { //disable - rover.fence.enable(false); + rover.fence.enable_configured(false); gcs().send_text(MAV_SEVERITY_INFO, "Fence Disabled"); } else { //enable fence - rover.fence.enable(true); + rover.fence.enable_configured(true); gcs().send_text(MAV_SEVERITY_INFO, "Fence Enabled"); } #endif From a6300e35d0b66224f01cf1961f1313875c858d6f Mon Sep 17 00:00:00 2001 From: Henry Wurzburg Date: Fri, 16 Feb 2024 14:54:56 -0600 Subject: [PATCH 092/232] Plane: prevent Mode Takeoff calling fence autoenable more than once --- ArduPlane/Plane.h | 3 +++ ArduPlane/mode_takeoff.cpp | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ArduPlane/Plane.h b/ArduPlane/Plane.h index b1af208397ff3..443f2d56a1fb4 100644 --- a/ArduPlane/Plane.h +++ b/ArduPlane/Plane.h @@ -250,6 +250,9 @@ class Plane : public AP_Vehicle { // are we currently in long failsafe but have postponed it in MODE TAKEOFF until min level alt is reached bool long_failsafe_pending; + + //flag that we have already called autoenable fences once in MODE TAKEOFF + bool have_autoenabled_fences; // GCS selection GCS_Plane _gcs; // avoid using this; use gcs() diff --git a/ArduPlane/mode_takeoff.cpp b/ArduPlane/mode_takeoff.cpp index 37d0203fcf413..0854e512450a9 100644 --- a/ArduPlane/mode_takeoff.cpp +++ b/ArduPlane/mode_takeoff.cpp @@ -63,6 +63,7 @@ ModeTakeoff::ModeTakeoff() : bool ModeTakeoff::_enter() { takeoff_mode_setup = false; + plane.have_autoenabled_fences = false; return true; } @@ -154,7 +155,10 @@ void ModeTakeoff::update() } else { if ((altitude_cm >= alt * 100 - 200)) { //within 2m of TKOFF_ALT ,or above and loitering #if AP_FENCE_ENABLED - plane.fence.auto_enable_fence_after_takeoff(); + if (!plane.have_autoenabled_fences) { + plane.fence.auto_enable_fence_after_takeoff(); + plane.have_autoenabled_fences = true; + } #endif plane.calc_nav_roll(); plane.calc_nav_pitch(); From 370b0d7b9c8de98cd33d73e41198925ada84bf8c Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 17 Feb 2024 19:55:22 +0000 Subject: [PATCH 093/232] AP_Logger: add events for all fence types --- libraries/AP_Logger/AP_Logger.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libraries/AP_Logger/AP_Logger.h b/libraries/AP_Logger/AP_Logger.h index d4c605bcced53..e8a91d62da63d 100644 --- a/libraries/AP_Logger/AP_Logger.h +++ b/libraries/AP_Logger/AP_Logger.h @@ -79,8 +79,15 @@ enum class LogEvent : uint8_t { STANDBY_ENABLE = 74, STANDBY_DISABLE = 75, - FENCE_FLOOR_ENABLE = 80, - FENCE_FLOOR_DISABLE = 81, + // Fence events + FENCE_ALT_MAX_ENABLE = 76, + FENCE_ALT_MAX_DISABLE = 77, + FENCE_CIRCLE_ENABLE = 78, + FENCE_CIRCLE_DISABLE = 79, + FENCE_ALT_MIN_ENABLE = 80, + FENCE_ALT_MIN_DISABLE = 81, + FENCE_POLYGON_ENABLE = 82, + FENCE_POLYGON_DISABLE = 83, // if the EKF's source input set is changed (e.g. via a switch or // a script), we log an event: From f0f8187c7f2ec0d62ffca11c6cffb98bb9104357 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 4 Dec 2023 16:58:40 +0000 Subject: [PATCH 094/232] AC_Fence: add ability to auto-enable fence floor while doing fence checks control copter floor fence with autoenable autoenable floor fence with a margin check for manual recovery only after having checked the fences make auto-disabling for minimum altitude fence an option output message when fence floor auto-enabled re-use fence floor auto-enable/disable from plane auto-disable on landing do not update enable parameter when controlling through mavlink make sure get_enabled_fences() actually returns enabled fences. make current fences enabled internal state rather than persistent implement auto options correctly and on copter add fence names utility use ExpandingString for constructing fence names correctly check whether fences are enabled or not and disable min alt for landing in all auto modes add enable_configured() for use by mavlink and rc add events for all fence types make sure that auto fences are no longer candidates after manual updates add fence debug make sure rc switch is the ultimate authority on fences reset auto mask when enabling or disabling fencing ensure auto-enable on arming works as intended simplify printing fence notices reset autofences when auot-enablement is changed --- libraries/AC_Fence/AC_Fence.cpp | 333 +++++++++++++++++++++++--------- libraries/AC_Fence/AC_Fence.h | 61 ++++-- 2 files changed, 287 insertions(+), 107 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 04a238196f58f..1ba6cc27bfac5 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -40,22 +40,24 @@ extern const AP_HAL::HAL& hal; #define AC_FENCE_CIRCLE_RADIUS_BACKUP_DISTANCE 20.0 // after fence is broken we recreate the fence 20m further out #endif +//#define AC_FENCE_DEBUG const AP_Param::GroupInfo AC_Fence::var_info[] = { + // @Param: ENABLE // @DisplayName: Fence enable/disable - // @Description: Allows you to enable (1) or disable (0) the fence functionality + // @Description: Allows you to enable (1) or disable (0) the fence functionality. Fences can still be enabled and disabled via mavlink or an RC option, but these changes are not persisted. // @Values: 0:Disabled,1:Enabled // @User: Standard AP_GROUPINFO("ENABLE", 0, AC_Fence, _enabled, 0), // @Param: TYPE // @DisplayName: Fence Type - // @Description: Enabled fence types held as bitmask + // @Description: Configured fence types held as bitmask. Max altitide, Circle and Polygon fences will be immediately enabled if configured. Min altitude fence will only be enabled once the minimum altitude is reached. // @Bitmask{Rover}: 1:Circle Centered on Home,2:Inclusion/Exclusion Circles+Polygons // @Bitmask{Copter, Plane, Sub}: 0:Max altitude,1:Circle Centered on Home,2:Inclusion/Exclusion Circles+Polygons,3:Min altitude // @User: Standard - AP_GROUPINFO("TYPE", 1, AC_Fence, _enabled_fences, AC_FENCE_TYPE_DEFAULT), + AP_GROUPINFO("TYPE", 1, AC_Fence, _configured_fences, AC_FENCE_TYPE_DEFAULT), // @Param: ACTION // @DisplayName: Fence Action @@ -126,18 +128,18 @@ const AP_Param::GroupInfo AC_Fence::var_info[] = { // @User: Standard AP_GROUPINFO_FRAME("RET_ALT", 9, AC_Fence, _ret_altitude, 0.0f, AP_PARAM_FRAME_PLANE), - // @Param{Plane}: AUTOENABLE + // @Param{Plane, Copter}: AUTOENABLE // @DisplayName: Fence Auto-Enable - // @Description: Auto-enable of fences. AutoEnableOnTakeoff enables all configured fences after autotakeoffs reach altitude. During autolandings the fences will be disabled. AutoEnableDisableFloorOnLanding enables all configured fences after autotakeoffs reach altitude. During autolandings only the Minimum Altitude fence will be disabled. AutoEnableOnlyWhenArmed enables all configured fences, but no fences are disabled during autolandings. However, fence breaches are ignored while executing prior breach recovery actions which may include autolandings. - // @Values: 0:AutoEnableOff,1:AutoEnableOnTakeoff,2:AutoEnableDisableFloorOnLanding,3:AutoEnableOnlyWhenArmed + // @Description: Auto-enable of fences. AutoEnableOnTakeoff enables all configured fences, except the minimum altitude fence (which is enabled when the minimum altitude is reached), after autotakeoffs reach altitude. During autolandings the fences will be disabled. AutoEnableDisableFloorOnLanding enables all configured fences, except the minimum altitude fence (which is enabled when the minimum altitude is reached), after autotakeoffs reach altitude. During autolandings only the Minimum Altitude fence will be disabled. AutoEnableOnlyWhenArmed enables all configured fences on arming, except the minimum altitude fence (which is enabled when the minimum altitude is reached), but no fences are disabled during autolandings. However, fence breaches are ignored while executing prior breach recovery actions which may include autolandings. + // @Values{Plane, Copter}: 0:AutoEnableOff,1:AutoEnableOnTakeoff,2:AutoEnableDisableFloorOnLanding,3:AutoEnableOnlyWhenArmed // @Range: 0 3 // @Increment: 1 // @User: Standard - AP_GROUPINFO_FRAME("AUTOENABLE", 10, AC_Fence, _auto_enabled, static_cast(AutoEnable::ALWAYS_DISABLED), AP_PARAM_FRAME_PLANE), + AP_GROUPINFO_FRAME("AUTOENABLE", 10, AC_Fence, _auto_enabled, static_cast(AutoEnable::ALWAYS_DISABLED), AP_PARAM_FRAME_PLANE | AP_PARAM_FRAME_COPTER | AP_PARAM_FRAME_TRICOPTER | AP_PARAM_FRAME_HELI), // @Param{Plane}: OPTIONS // @DisplayName: Fence options - // @Description: 0:Disable mode change following fence action until fence breach is cleared. When bit 1 is set the allowable flight areas is the union of all polygon and circle fence areas instead of the intersection, which means a fence breach occurs only if you are outside all of the fence areas. + // @Description: When bit 0 is set sisable mode change following fence action until fence breach is cleared. When bit 1 is set the allowable flight areas is the union of all polygon and circle fence areas instead of the intersection, which means a fence breach occurs only if you are outside all of the fence areas. // @Bitmask: 0:Disable mode change following fence action until fence breach is cleared, 1:Allow union of inclusion areas // @User: Standard AP_GROUPINFO_FRAME("OPTIONS", 11, AC_Fence, _options, static_cast(OPTIONS::DISABLE_MODE_CHANGE), AP_PARAM_FRAME_PLANE), @@ -155,49 +157,156 @@ AC_Fence::AC_Fence() #endif _singleton = this; AP_Param::setup_object_defaults(this, var_info); + if (_enabled) { + _enabled_fences = _configured_fences.get() & ~AC_FENCE_TYPE_ALT_MIN; + } +} + +// get a user-friendly list of fences +void AC_Fence::get_fence_names(uint8_t fences, ExpandingString& msg) +{ + if (!fences) { + return; + } + static const char* FENCE_NAMES[] = { + "Max Alt", + "Circle", + "Polygon", + "Min Alt", + }; + uint8_t i = 0; + uint8_t nfences = 0; + while (fences !=0) { + if (fences & 0x1) { + if (nfences > 0) { + if (!(fences & ~1U)) { + msg.printf(" and "); + } else { + msg.printf(", "); + } + } + msg.printf("%s", FENCE_NAMES[i]); + nfences++; + } + fences >>= 1; + i++; + } + msg.printf(" fence"); + if (nfences>1) { + msg.printf("s"); + } +} + +// print a message about the passed in fences +void AC_Fence::print_fence_message(const char* message, uint8_t fences) const +{ + if (!fences) { + return; + } + + char msg[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1]; + ExpandingString e(msg, MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1); + AC_Fence::get_fence_names(fences, e); + GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "%s %s", e.get_writeable_string(), message); +} + +// should be called @10Hz to handle loading from eeprom +void AC_Fence::update() +{ + _poly_loader.update(); + // if someone changes the parameter we want to enable or disable everything + if (_enabled != _last_enabled || _auto_enabled != _last_auto_enabled) { + // reset the auto mask since we just reconfigured all of fencing + _auto_enable_mask = AC_FENCE_ALL_FENCES; + _last_enabled = _enabled; + _last_auto_enabled = _auto_enabled; + if (_enabled) { + _enabled_fences = _configured_fences.get() & ~AC_FENCE_TYPE_ALT_MIN; + } else { + _enabled_fences = 0; + } + } +#ifdef AC_FENCE_DEBUG + static uint32_t last_msg_count = 0; + if (get_enabled_fences() && last_msg_count++ % 10 == 0) { + print_fence_message("fences active", get_enabled_fences()); + } +#endif } /// enable the Fence code generally; a master switch for all fences -void AC_Fence::enable(bool value) +uint8_t AC_Fence::enable(bool value, uint8_t fence_types, bool update_auto_mask) { + uint8_t fences = _configured_fences.get() & fence_types; + uint8_t enabled_fences = _enabled_fences; + if (value) { + enabled_fences |= fences; + } else { + enabled_fences &= ~fences; + } + + // fences that were manually changed are no longer eligible for auto-enablement or disablement + if (update_auto_mask) { + // if we are explicitly enabling or disabling the alt min fence and it was auto-enabled then make sure + // it doesn't get re-enabled or disabled + if (fence_types & _auto_enable_mask & AC_FENCE_TYPE_ALT_MIN) { + _floor_disabled_for_landing = !value; + } + _auto_enable_mask &= ~fences; + } + + uint8_t fences_to_change = _enabled_fences ^ enabled_fences; + + if (!fences_to_change) { + return 0; + } #if HAL_LOGGING_ENABLED - if (_enabled && !value) { - AP::logger().Write_Event(LogEvent::FENCE_DISABLE); - } else if (!_enabled && value) { - AP::logger().Write_Event(LogEvent::FENCE_ENABLE); + AP::logger().Write_Event(value ? LogEvent::FENCE_ENABLE : LogEvent::FENCE_DISABLE); + if (fences_to_change & AC_FENCE_TYPE_ALT_MAX) { + AP::logger().Write_Event(value ? LogEvent::FENCE_ALT_MAX_ENABLE : LogEvent::FENCE_ALT_MAX_DISABLE); + } + if (fences_to_change & AC_FENCE_TYPE_CIRCLE) { + AP::logger().Write_Event(value ? LogEvent::FENCE_CIRCLE_ENABLE : LogEvent::FENCE_CIRCLE_DISABLE); + } + if (fences_to_change & AC_FENCE_TYPE_ALT_MIN) { + AP::logger().Write_Event(value ? LogEvent::FENCE_ALT_MIN_ENABLE : LogEvent::FENCE_ALT_MIN_DISABLE); + } + if (fences_to_change & AC_FENCE_TYPE_POLYGON) { + AP::logger().Write_Event(value ? LogEvent::FENCE_POLYGON_ENABLE : LogEvent::FENCE_POLYGON_DISABLE); } #endif - _enabled.set(value); + + _enabled_fences = enabled_fences; + if (!value) { - clear_breach(AC_FENCE_TYPE_ALT_MIN | AC_FENCE_TYPE_ALT_MAX | AC_FENCE_TYPE_CIRCLE | AC_FENCE_TYPE_POLYGON); - disable_floor(); - } else { - enable_floor(); + clear_breach(fences_to_change); } + + return fences_to_change; } /// enable/disable fence floor only void AC_Fence::enable_floor() { -#if HAL_LOGGING_ENABLED - if (!_floor_enabled) { - // Floor is currently disabled, enable it - AP::logger().Write_Event(LogEvent::FENCE_FLOOR_ENABLE); - } -#endif - _floor_enabled = true; + enable(true, AC_FENCE_TYPE_ALT_MIN); } void AC_Fence::disable_floor() { -#if HAL_LOGGING_ENABLED - if (_floor_enabled) { - // Floor is currently enabled, disable it - AP::logger().Write_Event(LogEvent::FENCE_FLOOR_DISABLE); + enable(false, AC_FENCE_TYPE_ALT_MIN); +} + +/* + called on arming +*/ +void AC_Fence::auto_enable_fence_on_arming(void) +{ + if (auto_enabled() != AC_Fence::AutoEnable::ONLY_WHEN_ARMED) { + return; } -#endif - _floor_enabled = false; - clear_breach(AC_FENCE_TYPE_ALT_MIN); + + const uint8_t fences = enable(true, _auto_enable_mask & ~AC_FENCE_TYPE_ALT_MIN, false); + print_fence_message("auto-enabled", fences); } /* @@ -205,15 +314,18 @@ void AC_Fence::disable_floor() */ void AC_Fence::auto_enable_fence_after_takeoff(void) { - if (_enabled) { - return; - } switch(auto_enabled()) { - case AC_Fence::AutoEnable::ALWAYS_ENABLED: + case AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF: case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: - enable(true); - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence enabled (auto enabled)"); + case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: { + // auto-enable fences that aren't currently auto-enabled + if (_auto_enable_mask & AC_FENCE_TYPE_ALT_MIN) { + _floor_disabled_for_landing = false; + } + const uint8_t fences = enable(true, _auto_enable_mask, false); + print_fence_message("auto-enabled", fences); break; + } default: // fence does not auto-enable in other takeoff conditions break; @@ -226,13 +338,20 @@ void AC_Fence::auto_enable_fence_after_takeoff(void) void AC_Fence::auto_disable_fence_for_landing(void) { switch (auto_enabled()) { - case AC_Fence::AutoEnable::ALWAYS_ENABLED: - enable(false); - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence disabled (auto disable)"); + case AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF: { + // disable only those fences which are allowed to be disabled + if (_auto_enable_mask & _enabled_fences & AC_FENCE_TYPE_ALT_MIN) { + _floor_disabled_for_landing = true; + } + const uint8_t fences = enable(false, _auto_enable_mask & _enabled_fences, false); + print_fence_message("auto-disabled", fences); break; + } case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: + case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: disable_floor(); - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence floor disabled (auto disable)"); + _floor_disabled_for_landing = true; + GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Min Alt fence auto-disabled"); break; default: // fence does not auto-disable in other landing conditions @@ -240,36 +359,26 @@ void AC_Fence::auto_disable_fence_for_landing(void) } } -bool AC_Fence::present() const +uint8_t AC_Fence::present() const { - const auto enabled_fences = _enabled_fences.get(); - // A fence is present if any of the conditions are true. - // * tin can (circle) is enabled - // * min or max alt is enabled - // * polygon fences are enabled and any fence has been uploaded - if (enabled_fences & AC_FENCE_TYPE_CIRCLE || - enabled_fences & AC_FENCE_TYPE_ALT_MIN || - enabled_fences & AC_FENCE_TYPE_ALT_MAX || - ((enabled_fences & AC_FENCE_TYPE_POLYGON) && _poly_loader.total_fence_count() > 0)) { - return true; + uint8_t mask = AC_FENCE_TYPE_CIRCLE | AC_FENCE_TYPE_ALT_MIN | AC_FENCE_TYPE_ALT_MAX; + if (_poly_loader.total_fence_count() > 0) { + mask |= AC_FENCE_TYPE_POLYGON; } - return false; + return _configured_fences.get() & mask; } /// get_enabled_fences - returns bitmask of enabled fences uint8_t AC_Fence::get_enabled_fences() const { - if (!_enabled && !_auto_enabled) { - return 0; - } - return _enabled_fences; + return _enabled_fences & present(); } // additional checks for the polygon fence: bool AC_Fence::pre_arm_check_polygon(const char* &fail_msg) const { - if (!(_enabled_fences & AC_FENCE_TYPE_POLYGON)) { + if (!(_configured_fences & AC_FENCE_TYPE_POLYGON)) { // not enabled; all good return true; } @@ -324,20 +433,20 @@ bool AC_Fence::pre_arm_check(const char* &fail_msg) const fail_msg = nullptr; // if fences are enabled but none selected fail pre-arm check - if (enabled() && !present()) { + if (_enabled && !present()) { fail_msg = "Fences enabled, but none selected"; return false; } // if not enabled or not fence set-up always return true - if ((!_enabled && !_auto_enabled) || !_enabled_fences) { + if ((!enabled() && !_auto_enabled) || !_configured_fences) { return true; } // if we have horizontal limits enabled, check we can get a // relative position from the AHRS - if ((_enabled_fences & AC_FENCE_TYPE_CIRCLE) || - (_enabled_fences & AC_FENCE_TYPE_POLYGON)) { + if ((_configured_fences & AC_FENCE_TYPE_CIRCLE) || + (_configured_fences & AC_FENCE_TYPE_POLYGON)) { Vector2f position; if (!AP::ahrs().get_relative_position_NE_home(position)) { fail_msg = "Fence requires position"; @@ -389,13 +498,14 @@ bool AC_Fence::pre_arm_check(const char* &fail_msg) const bool AC_Fence::check_fence_alt_max() { // altitude fence check - if (!(_enabled_fences & AC_FENCE_TYPE_ALT_MAX)) { + if (!(get_enabled_fences() & AC_FENCE_TYPE_ALT_MAX)) { // not enabled; no breach return false; } - AP::ahrs().get_relative_position_D_home(_curr_alt); - _curr_alt = -_curr_alt; // translate Down to Up + float alt; + AP::ahrs().get_relative_position_D_home(alt); + _curr_alt = -alt; // translate Down to Up // check if we are over the altitude fence if (_curr_alt >= _alt_max) { @@ -437,13 +547,14 @@ bool AC_Fence::check_fence_alt_max() bool AC_Fence::check_fence_alt_min() { // altitude fence check - if (!(_enabled_fences & AC_FENCE_TYPE_ALT_MIN)) { + if (!(get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN)) { // not enabled; no breach return false; } - AP::ahrs().get_relative_position_D_home(_curr_alt); - _curr_alt = -_curr_alt; // translate Down to Up + float alt; + AP::ahrs().get_relative_position_D_home(alt); + _curr_alt = -alt; // translate Down to Up // check if we are under the altitude fence if (_curr_alt <= _alt_min) { @@ -479,13 +590,37 @@ bool AC_Fence::check_fence_alt_min() return false; } + +/// auto enable fence floor +bool AC_Fence::auto_enable_fence_floor() +{ + // altitude fence check + if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) || !_enabled) { + // not enabled + return false; + } + + float alt; + AP::ahrs().get_relative_position_D_home(alt); + _curr_alt = -alt; // translate Down to Up + + // check if we are over the altitude fence + if (!floor_enabled() && !_floor_disabled_for_landing && _curr_alt >= _alt_min + _margin) { + enable(true, AC_FENCE_TYPE_ALT_MIN); + gcs().send_text(MAV_SEVERITY_NOTICE, "Min Alt fence enabled (auto enable)"); + return true; + } + + return false; +} + // check_fence_polygon - returns true if the poly fence is freshly // breached. That includes being inside exclusion zones and outside // inclusions zones bool AC_Fence::check_fence_polygon() { const bool was_breached = _breached_fences & AC_FENCE_TYPE_POLYGON; - const bool breached = ((_enabled_fences & AC_FENCE_TYPE_POLYGON) && + const bool breached = ((_configured_fences & AC_FENCE_TYPE_POLYGON) && _poly_loader.breached()); if (breached) { if (!was_breached) { @@ -506,7 +641,7 @@ bool AC_Fence::check_fence_polygon() /// fence is breached. bool AC_Fence::check_fence_circle() { - if (!(_enabled_fences & AC_FENCE_TYPE_CIRCLE)) { + if (!(get_enabled_fences() & AC_FENCE_TYPE_CIRCLE)) { // not enabled; no breach return false; } @@ -554,34 +689,29 @@ uint8_t AC_Fence::check() uint8_t ret = 0; // clear any breach from a non-enabled fence - clear_breach(~_enabled_fences); + clear_breach(~_configured_fences); // return immediately if disabled - if ((!_enabled && !_auto_enabled) || !_enabled_fences) { + if ((!enabled() && !_auto_enabled && !(_configured_fences & AC_FENCE_TYPE_ALT_MIN)) || !_configured_fences) { return 0; } - // check if pilot is attempting to recover manually - if (_manual_recovery_start_ms != 0) { - // we ignore any fence breaches during the manual recovery period which is about 10 seconds - if ((AP_HAL::millis() - _manual_recovery_start_ms) < AC_FENCE_MANUAL_RECOVERY_TIME_MIN) { - return 0; - } - // recovery period has passed so reset manual recovery time - // and continue with fence breach checks - _manual_recovery_start_ms = 0; - } - // maximum altitude fence check if (check_fence_alt_max()) { ret |= AC_FENCE_TYPE_ALT_MAX; } - // minimum altitude fence check - if (_floor_enabled && check_fence_alt_min()) { + // minimum altitude fence check, do this before auto-disabling (e.g. because falling) + // so that any action can be taken + if (floor_enabled() && check_fence_alt_min()) { ret |= AC_FENCE_TYPE_ALT_MIN; } + // auto enable floor unless auto enable has been set (which means other behaviour is required) + if (auto_enabled() != AutoEnable::ENABLE_ON_AUTO_TAKEOFF && (_configured_fences & AC_FENCE_TYPE_ALT_MIN)) { + auto_enable_fence_floor(); + } + // circle fence check if (check_fence_circle()) { ret |= AC_FENCE_TYPE_CIRCLE; @@ -592,6 +722,18 @@ uint8_t AC_Fence::check() ret |= AC_FENCE_TYPE_POLYGON; } + // check if pilot is attempting to recover manually + // this is done last so that _breached_fences is correct + if (_manual_recovery_start_ms != 0) { + // we ignore any fence breaches during the manual recovery period which is about 10 seconds + if ((AP_HAL::millis() - _manual_recovery_start_ms) < AC_FENCE_MANUAL_RECOVERY_TIME_MIN) { + return 0; + } + // recovery period has passed so reset manual recovery time + // and continue with fence breach checks + _manual_recovery_start_ms = 0; + } + // return any new breaches that have occurred return ret; } @@ -695,6 +837,8 @@ void AC_Fence::manual_recovery_start() // record time pilot began manual recovery _manual_recovery_start_ms = AP_HAL::millis(); + + gcs().send_text(MAV_SEVERITY_INFO, "Manual recovery started"); } // methods for mavlink SYS_STATUS message (send_sys_status) @@ -712,7 +856,7 @@ bool AC_Fence::sys_status_enabled() const return false; } // Fence is only enabled when the flag is enabled - return _enabled; + return enabled(); } bool AC_Fence::sys_status_failed() const @@ -742,14 +886,17 @@ const AP_Param::GroupInfo AC_Fence::var_info[] = { AP_GROUPEND }; AC_Fence::AC_Fence() {}; -void AC_Fence::enable(bool value) {}; +uint8_t AC_Fence::enable(bool value, uint8_t fence_types, bool update_auto_enable) { return 0; } -void AC_Fence::disable_floor() {}; +void AC_Fence::enable_floor() {} +void AC_Fence::disable_floor() {} +void AC_Fence::update() {} -void AC_Fence::auto_enable_fence_after_takeoff() {}; -void AC_Fence::auto_disable_fence_for_landing() {}; +void AC_Fence::auto_enable_fence_after_takeoff() {} +void AC_Fence::auto_disable_fence_for_landing() {} +void AC_Fence::auto_enable_fence_on_arming() {} -bool AC_Fence::present() const { return false; } +uint8_t AC_Fence::present() const { return 0; } uint8_t AC_Fence::get_enabled_fences() const { return 0; } @@ -758,6 +905,8 @@ bool AC_Fence::pre_arm_check(const char* &fail_msg) const { return true; } uint8_t AC_Fence::check() { return 0; } bool AC_Fence::check_destination_within_fence(const Location& loc) { return true; } float AC_Fence::get_breach_distance(uint8_t fence_type) const { return 0.0; } +void AC_Fence::get_fence_names(uint8_t fences, ExpandingString& msg) { } +void AC_Fence::print_fence_message(const char* msg, uint8_t fences) const {} void AC_Fence::manual_recovery_start() {} diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index e8eb88943e133..23a57312ef072 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -15,6 +16,8 @@ #define AC_FENCE_TYPE_CIRCLE 2 // circular horizontal fence (usually initiates an RTL) #define AC_FENCE_TYPE_POLYGON 4 // polygon horizontal fence #define AC_FENCE_TYPE_ALT_MIN 8 // low alt fence which usually initiates an RTL +#define AC_FENCE_ARMING_FENCES (AC_FENCE_TYPE_ALT_MAX | AC_FENCE_TYPE_CIRCLE | AC_FENCE_TYPE_POLYGON) +#define AC_FENCE_ALL_FENCES (AC_FENCE_ARMING_FENCES | AC_FENCE_TYPE_ALT_MIN) // valid actions should a fence be breached #define AC_FENCE_ACTION_REPORT_ONLY 0 // report to GCS that boundary has been breached but take no further action @@ -34,12 +37,19 @@ class AC_Fence public: friend class AC_PolyFence_loader; - enum class AutoEnable + enum class AutoEnable : uint8_t { ALWAYS_DISABLED = 0, - ALWAYS_ENABLED = 1, - ENABLE_DISABLE_FLOOR_ONLY = 2, - ONLY_WHEN_ARMED = 3 + ENABLE_ON_AUTO_TAKEOFF = 1, // enable on auto takeoff + ENABLE_DISABLE_FLOOR_ONLY = 2, // enable on takeoff but disable floor on landing + ONLY_WHEN_ARMED = 3 // enable on arming + }; + + enum class MavlinkFenceActions : uint16_t + { + DISABLE_FENCE = 0, + ENABLE_FENCE = 1, + DISABLE_ALT_MIN_FENCE = 2 }; AC_Fence(); @@ -55,7 +65,12 @@ class AC_Fence static AC_Fence *get_singleton() { return _singleton; } /// enable - allows fence to be enabled/disabled. - void enable(bool value); + /// returns a bitmask of fences that were changed + uint8_t enable(bool value, uint8_t fence_types, bool update_auto_mask = true); + + /// enable_configured - allows configured fences to be enabled/disabled. + /// returns a bitmask of fences that were changed + uint8_t enable_configured(bool value) { return enable(value, _configured_fences, true); } /// auto_enabled - automaticaly enable/disable fence depending of flight status AutoEnable auto_enabled() { return static_cast(_auto_enabled.get()); } @@ -72,19 +87,23 @@ class AC_Fence /// auto_disable_fence_for_landing - auto disables respective fence. Called prior to landing. void auto_disable_fence_for_landing(); - /// enabled - returns true if fence is enabled - bool enabled() const { return _enabled; } + /// auto_enable_fences_on_arming - auto enables all applicable fences on arming + void auto_enable_fence_on_arming(); + + /// auto_enable_fence_floor - auto enables fence floor once desired altitude has been reached. + bool auto_enable_fence_floor(); - /// present - returns true if fence is present - bool present() const; + /// enabled - returns whether fencing is enabled or not + bool enabled() const { return _enabled_fences; } + + /// present - returns true if any of the provided types is present + uint8_t present() const; /// get_enabled_fences - returns bitmask of enabled fences uint8_t get_enabled_fences() const; // should be called @10Hz to handle loading from eeprom - void update() { - _poly_loader.update(); - } + void update(); /// pre_arm_check - returns true if all pre-takeoff checks have completed successfully bool pre_arm_check(const char* &fail_msg) const; @@ -133,6 +152,12 @@ class AC_Fence /// get_return_rally - returns whether returning to fence return point or rally point float get_return_altitude() const { return _ret_altitude; } + /// get a user-friendly list of fences + static void get_fence_names(uint8_t fences, ExpandingString& msg); + + // print a message about the fences to the GCS + void print_fence_message(const char* msg, uint8_t fences) const; + /// manual_recovery_start - caller indicates that pilot is re-taking manual control so fence should be disabled for 10 seconds /// should be called whenever the pilot changes the flight mode /// has no effect if no breaches have occurred @@ -190,11 +215,16 @@ class AC_Fence bool pre_arm_check_polygon(const char* &fail_msg) const; bool pre_arm_check_circle(const char* &fail_msg) const; bool pre_arm_check_alt(const char* &fail_msg) const; + // fence floor is enabled + bool floor_enabled() const { return _enabled_fences & AC_FENCE_TYPE_ALT_MIN; } // parameters - AP_Int8 _enabled; // fence enable/disable control + uint8_t _enabled_fences; // fences that are currently enabled/disabled + bool _last_enabled; // value of enabled last time we checked + AP_Int8 _enabled; // overall feature control AP_Int8 _auto_enabled; // top level flag for auto enabling fence - AP_Int8 _enabled_fences; // bit mask holding which fences are enabled + uint8_t _last_auto_enabled; // value of auto_enabled last time we checked + AP_Int8 _configured_fences; // bit mask holding which fences are enabled AP_Int8 _action; // recovery action specified by user AP_Float _alt_max; // altitude upper limit in meters AP_Float _alt_min; // altitude lower limit in meters @@ -216,7 +246,8 @@ class AC_Fence float _circle_breach_distance; // distance beyond the circular fence // other internal variables - bool _floor_enabled; // fence floor is enabled + bool _floor_disabled_for_landing; // fence floor is disabled for landing + uint8_t _auto_enable_mask = AC_FENCE_ALL_FENCES; // fences that can be auto-enabled or auto-disabled float _home_distance; // distance from home in meters (provided by main code) float _curr_alt; From 174d5f07bb145b224c0f8362d48745d180dae00e Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 11 Mar 2024 12:40:31 +0000 Subject: [PATCH 095/232] AC_Fence: ensure fence enablement on arming is inverted on disarming correct detection of polyfence --- libraries/AC_Fence/AC_Fence.cpp | 28 +++++++++++++++++++++++----- libraries/AC_Fence/AC_Fence.h | 3 +++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 1ba6cc27bfac5..b88befe0403c1 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -229,7 +229,8 @@ void AC_Fence::update() #ifdef AC_FENCE_DEBUG static uint32_t last_msg_count = 0; if (get_enabled_fences() && last_msg_count++ % 10 == 0) { - print_fence_message("fences active", get_enabled_fences()); + print_fence_message("active", get_enabled_fences()); + print_fence_message("breached", get_breaches()); } #endif } @@ -309,6 +310,19 @@ void AC_Fence::auto_enable_fence_on_arming(void) print_fence_message("auto-enabled", fences); } +/* + called on disarming +*/ +void AC_Fence::auto_disable_fence_on_disarming(void) +{ + if (auto_enabled() != AC_Fence::AutoEnable::ONLY_WHEN_ARMED) { + return; + } + + const uint8_t fences = enable(false, _auto_enable_mask, false); + print_fence_message("auto-disabled", fences); +} + /* called when an auto-takeoff is complete */ @@ -349,7 +363,7 @@ void AC_Fence::auto_disable_fence_for_landing(void) } case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: - disable_floor(); + enable(false, AC_FENCE_TYPE_ALT_MIN, false); _floor_disabled_for_landing = true; GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Min Alt fence auto-disabled"); break; @@ -619,10 +633,13 @@ bool AC_Fence::auto_enable_fence_floor() // inclusions zones bool AC_Fence::check_fence_polygon() { + if (!(get_enabled_fences() & AC_FENCE_TYPE_POLYGON)) { + // not enabled; no breach + return false; + } + const bool was_breached = _breached_fences & AC_FENCE_TYPE_POLYGON; - const bool breached = ((_configured_fences & AC_FENCE_TYPE_POLYGON) && - _poly_loader.breached()); - if (breached) { + if (_poly_loader.breached()) { if (!was_breached) { record_breach(AC_FENCE_TYPE_POLYGON); return true; @@ -895,6 +912,7 @@ void AC_Fence::update() {} void AC_Fence::auto_enable_fence_after_takeoff() {} void AC_Fence::auto_disable_fence_for_landing() {} void AC_Fence::auto_enable_fence_on_arming() {} +void AC_Fence::auto_disable_fence_on_disarming() {} uint8_t AC_Fence::present() const { return 0; } diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index 23a57312ef072..ed933f450feee 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -90,6 +90,9 @@ class AC_Fence /// auto_enable_fences_on_arming - auto enables all applicable fences on arming void auto_enable_fence_on_arming(); + /// auto_disable_fences_on_disarming - auto disables all applicable fences on disarming + void auto_disable_fence_on_disarming(); + /// auto_enable_fence_floor - auto enables fence floor once desired altitude has been reached. bool auto_enable_fence_floor(); From 3fabec4158e23691d3f1f06de3dc020b5d002312 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 11 Mar 2024 12:40:57 +0000 Subject: [PATCH 096/232] AP_Arming: ensure fence enablement on arming is inverted on disarming --- libraries/AP_Arming/AP_Arming.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index 83e7cac17447f..2be3a1011fe6e 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -1840,9 +1840,7 @@ bool AP_Arming::disarm(const AP_Arming::Method method, bool do_disarm_checks) #if AP_FENCE_ENABLED AC_Fence *fence = AP::fence(); if (fence != nullptr) { - if(fence->auto_enabled() == AC_Fence::AutoEnable::ONLY_WHEN_ARMED) { - fence->enable_configured(false); - } + fence->auto_disable_fence_on_disarming(); } #endif #if defined(HAL_ARM_GPIO_PIN) From a4c781911762cadfe95c7494ac5bd0b0140fad8a Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sun, 19 May 2024 17:39:50 +1000 Subject: [PATCH 097/232] AC_Fence: clear breach of disabled fence skip breach checks if no fences correct initialisation of _num_fences in the case of no fences in eeprom --- libraries/AC_Fence/AC_Fence.cpp | 1 + libraries/AC_Fence/AC_PolyFence_loader.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index b88befe0403c1..36fb7fbb32694 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -635,6 +635,7 @@ bool AC_Fence::check_fence_polygon() { if (!(get_enabled_fences() & AC_FENCE_TYPE_POLYGON)) { // not enabled; no breach + clear_breach(AC_FENCE_TYPE_POLYGON); return false; } diff --git a/libraries/AC_Fence/AC_PolyFence_loader.cpp b/libraries/AC_Fence/AC_PolyFence_loader.cpp index 509e039a843bb..b97334476e053 100644 --- a/libraries/AC_Fence/AC_PolyFence_loader.cpp +++ b/libraries/AC_Fence/AC_PolyFence_loader.cpp @@ -227,7 +227,7 @@ bool AC_PolyFence_loader::breached() const // returns true if location is outside the boundary bool AC_PolyFence_loader::breached(const Location& loc) const { - if (!loaded()) { + if (!loaded() || total_fence_count() == 0) { return false; } @@ -493,13 +493,15 @@ bool AC_PolyFence_loader::index_eeprom() if (!count_eeprom_fences()) { return false; } + + void_index(); + if (_eeprom_fence_count == 0) { + _num_fences = 0; _load_attempted = false; return true; } - void_index(); - Debug("Fence: Allocating %u bytes for index", (unsigned)(_eeprom_fence_count*sizeof(FenceIndex))); _index = NEW_NOTHROW FenceIndex[_eeprom_fence_count]; From cedccdb8fe14ba467ffd5f191a99ab7507e41967 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 22 Dec 2023 09:36:34 +0000 Subject: [PATCH 098/232] autotest: add test for auto-disabling min alt fence breaches on disarming clean-up fence manipulation functions and add test for auto-enablement on copter update tests to have some FENCE_ENABLE tests add avoidance minimum and maximum altitude fence add fence switch test while flying add FenceAutoEnableDisableSwitch for auto mode 2 add more scenarios for plane fence auto-enable validate fence rc switch behaviour check fence autoenable by taking off in guided mode more FENCE_AUTOENABLE tests add FenceEnableDisableAux and FenceMinAltAutoEnableAbort --- .../autotest/Generic_Missions/CMAC-fence.txt | 6 + Tools/autotest/arducopter.py | 140 +++++++- Tools/autotest/arduplane.py | 331 ++++++++++++++++++ Tools/autotest/rover.py | 6 + Tools/autotest/vehicle_test_suite.py | 23 +- 5 files changed, 492 insertions(+), 14 deletions(-) create mode 100644 Tools/autotest/Generic_Missions/CMAC-fence.txt diff --git a/Tools/autotest/Generic_Missions/CMAC-fence.txt b/Tools/autotest/Generic_Missions/CMAC-fence.txt new file mode 100644 index 0000000000000..a6169e4e3cbcf --- /dev/null +++ b/Tools/autotest/Generic_Missions/CMAC-fence.txt @@ -0,0 +1,6 @@ +-35.363720 149.163651 +-35.358738 149.165070 +-35.359295 149.154434 +-35.372292 149.157135 +-35.368290 149.166809 +-35.358738 149.165070 diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index ccd8147ec045f..e0eda4cdae5de 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -1605,6 +1605,7 @@ def MaxAltFence(self): "FENCE_ENABLE": 1, "AVOID_ENABLE": 0, "FENCE_TYPE": 1, + "FENCE_ENABLE" : 1, }) self.change_alt(10) @@ -1692,6 +1693,7 @@ def MinAltFence(self): # enable fence, disable avoidance self.set_parameters({ "AVOID_ENABLE": 0, + "FENCE_ENABLE" : 1, "FENCE_TYPE": 8, "FENCE_ALT_MIN": 20, }) @@ -1737,6 +1739,7 @@ def FenceFloorEnabledLanding(self): self.progress("Test Landing while fence floor enabled") self.set_parameters({ "AVOID_ENABLE": 0, + "FENCE_ENABLE" : 1, "FENCE_TYPE": 15, "FENCE_ALT_MIN": 10, "FENCE_ALT_MAX": 20, @@ -1757,16 +1760,100 @@ def FenceFloorEnabledLanding(self): self.set_rc(3, 1800) self.wait_mode('RTL', timeout=120) + self.wait_landed_and_disarmed() self.assert_fence_enabled() - # Assert fence is not healthy + # Assert fence is not healthy since it was enabled manually self.assert_sensor_state(fence_bit, healthy=False) # Disable the fence using mavlink command to ensure cleaned up SITL state self.do_fence_disable() self.assert_fence_disabled() + def FenceFloorAutoDisableLanding(self): + """Ensures we can initiate and complete an RTL while the fence is enabled""" + + fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE + + self.progress("Test Landing while fence floor enabled") + self.set_parameters({ + "AVOID_ENABLE": 0, + "FENCE_TYPE": 11, + "FENCE_ALT_MIN": 10, + "FENCE_ALT_MAX": 20, + "FENCE_AUTOENABLE" : 1, + }) + + self.change_mode("GUIDED") + self.wait_ready_to_arm() + self.arm_vehicle() + self.takeoff(alt_min=15, mode="GUIDED") + + # Check fence is enabled + self.assert_fence_enabled() + + # Change to RC controlled mode + self.change_mode('LOITER') + + self.set_rc(3, 1800) + + self.wait_mode('RTL', timeout=120) + # Assert fence is not healthy now that we are in RTL + self.assert_sensor_state(fence_bit, healthy=False) + + self.wait_landed_and_disarmed(0) + # the breach should have cleared since we auto-disable the + # fence on landing + self.assert_fence_disabled() + + # Assert fences have gone now that we have landed and disarmed + self.assert_sensor_state(fence_bit, present=True, enabled=False) + + def FenceFloorAutoEnableOnArming(self): + """Ensures we can auto-enable fences on arming and still takeoff and land""" + + fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE + + self.set_parameters({ + "AVOID_ENABLE": 0, + "FENCE_TYPE": 11, + "FENCE_ALT_MIN": 10, + "FENCE_ALT_MAX": 20, + "FENCE_AUTOENABLE" : 3, + }) + + self.change_mode("GUIDED") + # Check fence is not enabled + self.assert_fence_disabled() + + self.wait_ready_to_arm() + self.arm_vehicle() + self.takeoff(alt_min=15, mode="GUIDED") + + # Check fence is enabled + self.assert_fence_enabled() + + # Change to RC controlled mode + self.change_mode('LOITER') + + self.set_rc(3, 1800) + + self.wait_mode('RTL', timeout=120) + # Assert fence is not healthy now that we are in RTL + self.assert_sensor_state(fence_bit, healthy=False) + + self.wait_landed_and_disarmed(0) + # the breach should have cleared since we auto-disable the + # fence on landing + self.assert_fence_disabled() + + # Assert fences have gone now that we have landed and disarmed + self.assert_sensor_state(fence_bit, present=True, enabled=False) + + # Disable the fence using mavlink command to ensure cleaned up SITL state + self.assert_fence_disabled() + def GPSGlitchLoiter(self, timeout=30, max_distance=20): """fly_gps_glitch_loiter_test. Fly south east in loiter and test reaction to gps glitch.""" @@ -7631,6 +7718,54 @@ def AC_Avoidance_Fence(self): self.set_parameter("FENCE_ENABLE", 1) self.check_avoidance_corners() + def AvoidanceAltFence(self): + '''Test fence avoidance at minimum and maximum altitude''' + ex = None + try: + self.set_parameters({ + "FENCE_ENABLE": 1, + "FENCE_TYPE": 9, # min and max alt fence + "FENCE_ALT_MIN": 10, + "FENCE_ALT_MAX": 30, + }) + + self.change_mode('LOITER') + self.wait_ekf_happy() + + tstart = self.get_sim_time() + self.takeoff(15, mode='LOITER') + self.progress("Increasing throttle, vehicle should stay below 30m") + self.set_rc(3, 1920) + + tstart = self.get_sim_time() + while True: + if self.get_sim_time_cached() - tstart > 20: + break + alt = self.get_altitude(relative=True) + self.progress("Altitude %s" % alt) + if alt > 30: + raise NotAchievedException("Breached maximum altitude (%s)" % (str(alt),)) + + self.progress("Decreasing, vehicle should stay above 10m") + self.set_rc(3, 1080) + tstart = self.get_sim_time() + while True: + if self.get_sim_time_cached() - tstart > 20: + break + alt = self.get_altitude(relative=True) + self.progress("Altitude %s" % alt) + if alt < 10: + raise NotAchievedException("Breached minimum altitude (%s)" % (str(alt),)) + + except Exception as e: + self.progress("Caught exception: %s" % + self.get_exception_stacktrace(e)) + ex = e + self.land_and_disarm() + self.disarm_vehicle(force=True) + if ex is not None: + raise ex + def ModeFollow(self): '''Fly follow mode''' foll_ofs_x = 30 # metres @@ -10509,6 +10644,7 @@ def tests1c(self): self.AC_Avoidance_Proximity_AVOID_ALT_MIN, self.AC_Avoidance_Fence, self.AC_Avoidance_Beacon, + self.AvoidanceAltFence, self.BaroWindCorrection, self.SetpointGlobalPos, self.ThrowDoubleDrop, @@ -10528,6 +10664,8 @@ def tests1d(self): self.MaxAltFenceAvoid, self.MinAltFence, self.FenceFloorEnabledLanding, + self.FenceFloorAutoDisableLanding, + self.FenceFloorAutoEnableOnArming, self.AutoTuneSwitch, self.GPSGlitchLoiter, self.GPSGlitchLoiter2, diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index e57294be1121f..49d13661894a2 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -3698,6 +3698,332 @@ def FenceAltCeilFloor(self): self.fly_home_land_and_disarm(timeout=150) + def FenceMinAltAutoEnable(self): + '''Tests autoenablement of the alt min fence and fences on arming''' + self.set_parameters({ + "FENCE_TYPE": 9, # Set fence type to min alt and max alt + "FENCE_ACTION": 1, # Set action to RTL + "FENCE_ALT_MIN": 25, + "FENCE_ALT_MAX": 100, + "FENCE_AUTOENABLE": 3, + "FENCE_ENABLE" : 0, + "RTL_AUTOLAND" : 2, + }) + + # check we can takeoff again + for i in [1, 2]: + # Grab Home Position + self.mav.recv_match(type='HOME_POSITION', blocking=True) + self.homeloc = self.mav.location() + + self.wait_ready_to_arm() + self.arm_vehicle() + # max alt fence should now be enabled + if i == 1: + self.assert_fence_enabled() + + self.takeoff(alt=50, mode='TAKEOFF') + self.change_mode("FBWA") + self.set_rc(3, 1100) # lower throttle + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + self.fly_home_land_and_disarm() + self.change_mode("FBWA") + self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) + self.set_current_waypoint(0, check_afterwards=False) + self.set_rc(3, 1000) # lower throttle + + def FenceMinAltAutoEnableAbort(self): + '''Tests autoenablement of the alt min fence and fences on arming''' + self.set_parameters({ + "FENCE_TYPE": 9, # Set fence type to min alt and max alt + "FENCE_ACTION": 1, # Set action to RTL + "FENCE_ALT_MIN": 25, + "FENCE_ALT_MAX": 100, + "FENCE_AUTOENABLE": 3, + "FENCE_ENABLE" : 0, + "RTL_AUTOLAND" : 2, + }) + + # Grab Home Position + self.mav.recv_match(type='HOME_POSITION', blocking=True) + self.homeloc = self.mav.location() + + self.wait_ready_to_arm() + self.arm_vehicle() + # max alt fence should now be enabled + self.assert_fence_enabled() + + self.takeoff(alt=50, mode='TAKEOFF') + self.change_mode("FBWA") + self.set_rc(3, 1100) # lower throttle + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + + self.load_generic_mission("flaps.txt") + self.change_mode("AUTO") + self.wait_distance_to_waypoint(8, 100, 10000000) + self.set_current_waypoint(8) + # abort the landing + self.wait_altitude(10, 20, timeout=200, relative=True) + self.change_mode("CRUISE") + self.set_rc(2, 1200) + # self.set_rc(3, 1600) # raise throttle + self.wait_altitude(30, 40, timeout=200, relative=True) + + self.change_mode("AUTO") + self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) + self.fly_home_land_and_disarm(timeout=150) + self.wait_disarmed() + + def FenceAutoEnableDisableSwitch(self): + '''Tests autoenablement of regular fences and manual disablement''' + self.set_parameters({ + "FENCE_TYPE": 11, # Set fence type to min alt + "FENCE_ACTION": 1, # Set action to RTL + "FENCE_ALT_MIN": 50, + "FENCE_ALT_MAX": 100, + "FENCE_AUTOENABLE": 2, + "FENCE_OPTIONS" : 1, + "FENCE_ENABLE" : 1, + "FENCE_RADIUS" : 300, + "FENCE_RET_ALT" : 0, + "FENCE_RET_RALLY" : 0, + "FENCE_TOTAL" : 0, + "TKOFF_ALT" : 75, + "RC7_OPTION" : 11, # AC_Fence uses Aux switch functionality + }) + fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE + # Grab Home Position + self.mav.recv_match(type='HOME_POSITION', blocking=True) + self.homeloc = self.mav.location() + self.set_rc_from_map({7: 1000}) # Turn fence off with aux function + + self.wait_ready_to_arm() + cruise_alt = 75 + self.takeoff(cruise_alt, mode='TAKEOFF') + + self.progress("Fly above ceiling and check there is no breach") + self.set_rc(3, 2000) + self.change_altitude(self.homeloc.alt + cruise_alt + 80) + m = self.mav.recv_match(type='SYS_STATUS', blocking=True) + self.progress("Got (%s)" % str(m)) + if (not (m.onboard_control_sensors_health & fence_bit)): + raise NotAchievedException("Fence Ceiling breached") + + self.progress("Return to cruise alt") + self.set_rc(3, 1500) + self.change_altitude(self.homeloc.alt + cruise_alt) + + self.progress("Fly below floor and check for no breach") + self.change_altitude(self.homeloc.alt + 25) + m = self.mav.recv_match(type='SYS_STATUS', blocking=True) + self.progress("Got (%s)" % str(m)) + if (not (m.onboard_control_sensors_health & fence_bit)): + raise NotAchievedException("Fence Ceiling breached") + + self.progress("Fly above floor and check fence is not re-enabled") + self.set_rc(3, 2000) + self.change_altitude(self.homeloc.alt + 75) + m = self.mav.recv_match(type='SYS_STATUS', blocking=True) + self.progress("Got (%s)" % str(m)) + if (m.onboard_control_sensors_enabled & fence_bit): + raise NotAchievedException("Fence Ceiling re-enabled") + + self.progress("Return to cruise alt") + self.set_rc(3, 1500) + self.change_altitude(self.homeloc.alt + cruise_alt) + self.fly_home_land_and_disarm(timeout=250) + + def FenceEnableDisableSwitch(self): + '''Tests enablement and disablement of fences on a switch''' + fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE + + self.set_parameters({ + "FENCE_TYPE": 4, # Set fence type to polyfence + "FENCE_ACTION": 6, # Set action to GUIDED + "FENCE_ALT_MIN": 10, + "FENCE_ENABLE" : 0, + "RC7_OPTION" : 11, # AC_Fence uses Aux switch functionality + }) + + self.progress("Checking fence is not present before being configured") + m = self.mav.recv_match(type='SYS_STATUS', blocking=True) + self.progress("Got (%s)" % str(m)) + if (m.onboard_control_sensors_enabled & fence_bit): + raise NotAchievedException("Fence enabled before being configured") + + self.wait_ready_to_arm() + # takeoff at a lower altitude to avoid immediately breaching polyfence + self.takeoff(alt=25) + self.change_mode("FBWA") + + self.load_fence("CMAC-fence.txt") + + self.set_rc_from_map({ + 3: 1500, + 7: 2000, + }) # Turn fence on with aux function + + m = self.mav.recv_match(type='FENCE_STATUS', blocking=True, timeout=2) + self.progress("Got (%s)" % str(m)) + if m is None: + raise NotAchievedException("Got FENCE_STATUS unexpectedly") + + self.progress("Checking fence is initially OK") + self.wait_sensor_state(mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE, + present=True, + enabled=True, + healthy=True, + verbose=False, + timeout=30) + + self.progress("Waiting for GUIDED") + tstart = self.get_sim_time() + mode = "GUIDED" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + # check we are in breach + self.assert_fence_enabled() + + self.set_rc_from_map({ + 7: 1000, + }) # Turn fence off with aux function + + # wait to no longer be in breach + self.delay_sim_time(5) + self.assert_fence_disabled() + + self.fly_home_land_and_disarm(timeout=250) + self.do_fence_disable() # Ensure the fence is disabled after test + + def FenceEnableDisableAux(self): + '''Tests enablement and disablement of fences via aux command''' + fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE + + enable = 0 + self.set_parameters({ + "FENCE_TYPE": 12, # Set fence type to polyfence + AltMin + "FENCE_ALT_MIN": 10, + "FENCE_ENABLE" : enable, + }) + + if not enable: + self.progress("Checking fence is not present before being configured") + m = self.mav.recv_match(type='SYS_STATUS', blocking=True) + self.progress("Got (%s)" % str(m)) + if (m.onboard_control_sensors_enabled & fence_bit): + raise NotAchievedException("Fence enabled before being configured") + + self.load_fence("CMAC-fence.txt") + + self.wait_ready_to_arm() + # takeoff at a lower altitude to avoid immediately breaching polyfence + self.takeoff(alt=25) + self.change_mode("CRUISE") + self.wait_distance(150, accuracy=20) + + self.run_auxfunc( + 11, + 2, + want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED + ) + + m = self.mav.recv_match(type='FENCE_STATUS', blocking=True, timeout=2) + self.progress("Got (%s)" % str(m)) + if m is None: + raise NotAchievedException("Got FENCE_STATUS unexpectedly") + + self.progress("Checking fence is initially OK") + self.wait_sensor_state(mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE, + present=True, + enabled=True, + healthy=True, + verbose=False, + timeout=30) + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + # check we are in breach + self.assert_fence_enabled() + self.assert_fence_sys_status(True, True, False) + + # wait until we get home + self.wait_distance_to_home(50, 100, timeout=200) + # now check we are now not in breach + self.assert_fence_sys_status(True, True, True) + # Turn fence off with aux function + self.run_auxfunc( + 11, + 0, + want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED + ) + # switch back to cruise + self.change_mode("CRUISE") + self.wait_distance(150, accuracy=20) + + # re-enable the fences + self.run_auxfunc( + 11, + 2, + want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED + ) + + m = self.mav.recv_match(type='FENCE_STATUS', blocking=True, timeout=2) + self.progress("Got (%s)" % str(m)) + if m is None: + raise NotAchievedException("Got FENCE_STATUS unexpectedly") + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + + # wait to no longer be in breach + self.wait_distance_to_home(50, 100, timeout=200) + self.assert_fence_sys_status(True, True, True) + + # fly home and land with fences still enabled + self.fly_home_land_and_disarm(timeout=250) + self.do_fence_disable() # Ensure the fence is disabled after test + def FenceBreachedChangeMode(self): '''Tests manual mode change after fence breach, as set with FENCE_OPTIONS''' """ Attempts to change mode while a fence is breached. @@ -5447,6 +5773,11 @@ def tests(self): self.FenceRTLRally, self.FenceRetRally, self.FenceAltCeilFloor, + self.FenceMinAltAutoEnable, + self.FenceMinAltAutoEnableAbort, + self.FenceAutoEnableDisableSwitch, + self.FenceEnableDisableSwitch, + self.FenceEnableDisableAux, self.FenceBreachedChangeMode, self.FenceNoFenceReturnPoint, self.FenceNoFenceReturnPointInclusion, diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 8e62d685be7a7..22c38c5c50b52 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -4061,6 +4061,9 @@ def test_poly_fence_noarms(self, target_system=1, target_component=1): self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_FENCE, target_system=target_system, target_component=target_component) + self.set_parameters({ + "FENCE_TYPE": 2, # circle only + }) self.delay_sim_time(5) # let breaches clear # FIXME: should we allow this? self.progress("Ensure we can arm with no poly in place") @@ -4068,6 +4071,9 @@ def test_poly_fence_noarms(self, target_system=1, target_component=1): self.wait_ready_to_arm() self.arm_vehicle() self.disarm_vehicle() + self.set_parameters({ + "FENCE_TYPE": 6, # polyfence + circle + }) self.test_poly_fence_noarms_exclusion_circle(target_system=target_system, target_component=target_component) diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index 4677be0ab8afc..f3458fee9d957 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -2080,6 +2080,8 @@ def roundtrip_fence_using_fencepoint_protocol(self, loc_list, target_system=1, t def load_fence(self, filename): filepath = os.path.join(testdir, self.current_test_name_directory, filename) + if not os.path.exists(filepath): + filepath = self.generic_mission_filepath_for_filename(filename) self.progress("Loading fence from (%s)" % str(filepath)) locs = [] for line in open(filepath, 'rb'): @@ -6994,22 +6996,17 @@ def do_set_relay_mavproxy(self, relay_num, on_off): self.mavproxy.expect("Loaded module relay") self.mavproxy.send("relay set %d %d\n" % (relay_num, on_off)) - def do_fence_en_or_dis_able(self, value, want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED): - if value: - p1 = 1 - else: - p1 = 0 - self.run_cmd( - mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, - p1=p1, # param1 - want_result=want_result, - ) - def do_fence_enable(self, want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED): - self.do_fence_en_or_dis_able(True, want_result=want_result) + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, p1=1, want_result=want_result) def do_fence_disable(self, want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED): - self.do_fence_en_or_dis_able(False, want_result=want_result) + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, p1=0, want_result=want_result) + + def do_fence_disable_floor(self, want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED): + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, p1=0, p2=8, want_result=want_result) + + def do_fence_enable_except_floor(self, want_result=mavutil.mavlink.MAV_RESULT_ACCEPTED): + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_FENCE_ENABLE, p1=1, p2=7, want_result=want_result) ################################################# # WAIT UTILITIES From d5c6f3fe0683df05bbc3d1d938b849fe0a1bda58 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 08:20:13 +0100 Subject: [PATCH 099/232] AC_Fence: add reset_fence_floor_enable() and use it in plane when landing is aborted --- libraries/AC_Fence/AC_Fence.cpp | 30 ++++++++++++++++++++++++++++-- libraries/AC_Fence/AC_Fence.h | 3 +++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 36fb7fbb32694..e38789c876fd9 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -609,7 +609,9 @@ bool AC_Fence::check_fence_alt_min() bool AC_Fence::auto_enable_fence_floor() { // altitude fence check - if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) || !_enabled) { + if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) + || (get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) + || (!_enabled && (auto_enabled() != AC_Fence::AutoEnable::ONLY_WHEN_ARMED))) { // not enabled return false; } @@ -620,7 +622,7 @@ bool AC_Fence::auto_enable_fence_floor() // check if we are over the altitude fence if (!floor_enabled() && !_floor_disabled_for_landing && _curr_alt >= _alt_min + _margin) { - enable(true, AC_FENCE_TYPE_ALT_MIN); + enable(true, AC_FENCE_TYPE_ALT_MIN, false); gcs().send_text(MAV_SEVERITY_NOTICE, "Min Alt fence enabled (auto enable)"); return true; } @@ -628,6 +630,30 @@ bool AC_Fence::auto_enable_fence_floor() return false; } +/// reset fence floor auto-enablement +bool AC_Fence::reset_fence_floor_enable() +{ + // altitude fence check + if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) || (!_enabled && !_auto_enabled)) { + // not enabled + return false; + } + + float alt; + AP::ahrs().get_relative_position_D_home(alt); + _curr_alt = -alt; // translate Down to Up + + // check if we are under the altitude fence + if ((floor_enabled() || _floor_disabled_for_landing) && _curr_alt <= _alt_min - _margin) { + enable(false, AC_FENCE_TYPE_ALT_MIN, false); + _floor_disabled_for_landing = false; + gcs().send_text(MAV_SEVERITY_NOTICE, "Min Alt fence disabled (auto disable)"); + return true; + } + + return false; +} + // check_fence_polygon - returns true if the poly fence is freshly // breached. That includes being inside exclusion zones and outside // inclusions zones diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index ed933f450feee..c346474e27d2a 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -96,6 +96,9 @@ class AC_Fence /// auto_enable_fence_floor - auto enables fence floor once desired altitude has been reached. bool auto_enable_fence_floor(); + /// reset_fence_floor_enable - auto disables the fence floor if below the desired altitude. + bool reset_fence_floor_enable(); + /// enabled - returns whether fencing is enabled or not bool enabled() const { return _enabled_fences; } From ee7742ac403c0b815bac89e8dd44103c439b78f2 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 08:21:07 +0100 Subject: [PATCH 100/232] Plane: use reset_fence_floor_enable() --- ArduPlane/mode_auto.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ArduPlane/mode_auto.cpp b/ArduPlane/mode_auto.cpp index 3153d7de31e06..e6381b62df25e 100644 --- a/ArduPlane/mode_auto.cpp +++ b/ArduPlane/mode_auto.cpp @@ -54,6 +54,10 @@ void ModeAuto::_exit() } #endif if (restart) { +#if AP_FENCE_ENABLED + // no longer landing to re-enable the possiblity of the fence floor + plane.fence.reset_fence_floor_enable(); +#endif plane.landing.restart_landing_sequence(); } } From c216536a94c935ef7ac90ae123e4a80ecb75b4bc Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 08:21:30 +0100 Subject: [PATCH 101/232] autotest: test aborted landing with fence correctly --- Tools/autotest/arduplane.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 49d13661894a2..24821c55eac4e 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -3745,7 +3745,7 @@ def FenceMinAltAutoEnable(self): def FenceMinAltAutoEnableAbort(self): '''Tests autoenablement of the alt min fence and fences on arming''' self.set_parameters({ - "FENCE_TYPE": 9, # Set fence type to min alt and max alt + "FENCE_TYPE": 8, # Set fence type to min alt "FENCE_ACTION": 1, # Set action to RTL "FENCE_ALT_MIN": 25, "FENCE_ALT_MAX": 100, @@ -3760,11 +3760,11 @@ def FenceMinAltAutoEnableAbort(self): self.wait_ready_to_arm() self.arm_vehicle() - # max alt fence should now be enabled - self.assert_fence_enabled() self.takeoff(alt=50, mode='TAKEOFF') self.change_mode("FBWA") + # min alt fence should now be enabled + self.assert_fence_enabled() self.set_rc(3, 1100) # lower throttle self.progress("Waiting for RTL") @@ -3788,6 +3788,8 @@ def FenceMinAltAutoEnableAbort(self): self.set_rc(2, 1200) # self.set_rc(3, 1600) # raise throttle self.wait_altitude(30, 40, timeout=200, relative=True) + # min alt fence should now be re-enabled + self.assert_fence_enabled() self.change_mode("AUTO") self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) From 04dd7de1ed467f4f84e3ba898145fa5f0fda8ed6 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 14:12:38 +0100 Subject: [PATCH 102/232] AC_Fence: disable fences for landing by suppressing in the fence check rather than using a state machine simplify takeoff auto-enablement --- libraries/AC_Fence/AC_Fence.cpp | 111 +++++++++++--------------------- libraries/AC_Fence/AC_Fence.h | 14 ++-- 2 files changed, 43 insertions(+), 82 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index e38789c876fd9..e28ad0b6e2396 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -248,11 +248,6 @@ uint8_t AC_Fence::enable(bool value, uint8_t fence_types, bool update_auto_mask) // fences that were manually changed are no longer eligible for auto-enablement or disablement if (update_auto_mask) { - // if we are explicitly enabling or disabling the alt min fence and it was auto-enabled then make sure - // it doesn't get re-enabled or disabled - if (fence_types & _auto_enable_mask & AC_FENCE_TYPE_ALT_MIN) { - _floor_disabled_for_landing = !value; - } _auto_enable_mask &= ~fences; } @@ -328,49 +323,30 @@ void AC_Fence::auto_disable_fence_on_disarming(void) */ void AC_Fence::auto_enable_fence_after_takeoff(void) { - switch(auto_enabled()) { - case AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF: - case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: - case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: { - // auto-enable fences that aren't currently auto-enabled - if (_auto_enable_mask & AC_FENCE_TYPE_ALT_MIN) { - _floor_disabled_for_landing = false; - } - const uint8_t fences = enable(true, _auto_enable_mask, false); - print_fence_message("auto-enabled", fences); - break; - } - default: - // fence does not auto-enable in other takeoff conditions - break; + if (auto_enabled() != AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF) { + return; } + + const uint8_t fences = enable(true, _auto_enable_mask, false); + print_fence_message("auto-enabled", fences); } -/* - called when performing an auto landing - */ -void AC_Fence::auto_disable_fence_for_landing(void) +// return fences that should be auto-disabled when requested +uint8_t AC_Fence::get_auto_disable_fences(void) const { + uint8_t auto_disable = 0; switch (auto_enabled()) { - case AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF: { - // disable only those fences which are allowed to be disabled - if (_auto_enable_mask & _enabled_fences & AC_FENCE_TYPE_ALT_MIN) { - _floor_disabled_for_landing = true; - } - const uint8_t fences = enable(false, _auto_enable_mask & _enabled_fences, false); - print_fence_message("auto-disabled", fences); + case AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF: + auto_disable = _auto_enable_mask; break; - } case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: - enable(false, AC_FENCE_TYPE_ALT_MIN, false); - _floor_disabled_for_landing = true; - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Min Alt fence auto-disabled"); + auto_disable = _auto_enable_mask & AC_FENCE_TYPE_ALT_MIN; break; default: - // fence does not auto-disable in other landing conditions break; } + return auto_disable; } uint8_t AC_Fence::present() const @@ -609,9 +585,11 @@ bool AC_Fence::check_fence_alt_min() bool AC_Fence::auto_enable_fence_floor() { // altitude fence check - if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) - || (get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) - || (!_enabled && (auto_enabled() != AC_Fence::AutoEnable::ONLY_WHEN_ARMED))) { + if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) // not configured + || (get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) // already enabled + || !(_auto_enable_mask & AC_FENCE_TYPE_ALT_MIN) // has been manually disabled + || (!_enabled && (auto_enabled() == AC_Fence::AutoEnable::ALWAYS_DISABLED + || auto_enabled() == AutoEnable::ENABLE_ON_AUTO_TAKEOFF))) { // not enabled return false; } @@ -621,7 +599,7 @@ bool AC_Fence::auto_enable_fence_floor() _curr_alt = -alt; // translate Down to Up // check if we are over the altitude fence - if (!floor_enabled() && !_floor_disabled_for_landing && _curr_alt >= _alt_min + _margin) { + if (!floor_enabled() && _curr_alt >= _alt_min + _margin) { enable(true, AC_FENCE_TYPE_ALT_MIN, false); gcs().send_text(MAV_SEVERITY_NOTICE, "Min Alt fence enabled (auto enable)"); return true; @@ -630,30 +608,6 @@ bool AC_Fence::auto_enable_fence_floor() return false; } -/// reset fence floor auto-enablement -bool AC_Fence::reset_fence_floor_enable() -{ - // altitude fence check - if (!(_configured_fences & AC_FENCE_TYPE_ALT_MIN) || (!_enabled && !_auto_enabled)) { - // not enabled - return false; - } - - float alt; - AP::ahrs().get_relative_position_D_home(alt); - _curr_alt = -alt; // translate Down to Up - - // check if we are under the altitude fence - if ((floor_enabled() || _floor_disabled_for_landing) && _curr_alt <= _alt_min - _margin) { - enable(false, AC_FENCE_TYPE_ALT_MIN, false); - _floor_disabled_for_landing = false; - gcs().send_text(MAV_SEVERITY_NOTICE, "Min Alt fence disabled (auto disable)"); - return true; - } - - return false; -} - // check_fence_polygon - returns true if the poly fence is freshly // breached. That includes being inside exclusion zones and outside // inclusions zones @@ -728,41 +682,53 @@ bool AC_Fence::check_fence_circle() /// check - returns bitmask of fence types breached (if any) -uint8_t AC_Fence::check() +uint8_t AC_Fence::check(bool disable_auto_fences) { uint8_t ret = 0; + uint8_t disabled_fences = disable_auto_fences ? get_auto_disable_fences() : 0; + uint8_t fences_to_disable = disabled_fences & _enabled_fences; // clear any breach from a non-enabled fence clear_breach(~_configured_fences); + // clear any breach from disabled fences + clear_breach(fences_to_disable); + + // report on any fences that were auto-disabled + if (fences_to_disable) { + print_fence_message("auto-disabled", fences_to_disable); + } // return immediately if disabled if ((!enabled() && !_auto_enabled && !(_configured_fences & AC_FENCE_TYPE_ALT_MIN)) || !_configured_fences) { return 0; } + // disable the (temporarily) disabled fences + enable(false, disabled_fences, false); + // maximum altitude fence check - if (check_fence_alt_max()) { + if (!(disabled_fences & AC_FENCE_TYPE_ALT_MAX) && check_fence_alt_max()) { ret |= AC_FENCE_TYPE_ALT_MAX; } // minimum altitude fence check, do this before auto-disabling (e.g. because falling) // so that any action can be taken - if (floor_enabled() && check_fence_alt_min()) { + if (!(disabled_fences & AC_FENCE_TYPE_ALT_MIN) && check_fence_alt_min()) { ret |= AC_FENCE_TYPE_ALT_MIN; } - // auto enable floor unless auto enable has been set (which means other behaviour is required) - if (auto_enabled() != AutoEnable::ENABLE_ON_AUTO_TAKEOFF && (_configured_fences & AC_FENCE_TYPE_ALT_MIN)) { + // auto enable floor unless auto enable on auto takeoff has been set (which means other behaviour is required) + if (!(disabled_fences & AC_FENCE_TYPE_ALT_MIN)) { auto_enable_fence_floor(); } // circle fence check - if (check_fence_circle()) { + if (!(disabled_fences & AC_FENCE_TYPE_CIRCLE) && check_fence_circle()) { ret |= AC_FENCE_TYPE_CIRCLE; } // polygon fence check - if (check_fence_polygon()) { + if (!(disabled_fences & AC_FENCE_TYPE_POLYGON) && check_fence_polygon()) { ret |= AC_FENCE_TYPE_POLYGON; } @@ -937,7 +903,6 @@ void AC_Fence::disable_floor() {} void AC_Fence::update() {} void AC_Fence::auto_enable_fence_after_takeoff() {} -void AC_Fence::auto_disable_fence_for_landing() {} void AC_Fence::auto_enable_fence_on_arming() {} void AC_Fence::auto_disable_fence_on_disarming() {} @@ -947,7 +912,7 @@ uint8_t AC_Fence::get_enabled_fences() const { return 0; } bool AC_Fence::pre_arm_check(const char* &fail_msg) const { return true; } -uint8_t AC_Fence::check() { return 0; } +uint8_t AC_Fence::check(bool disable_auto_fences) { return 0; } bool AC_Fence::check_destination_within_fence(const Location& loc) { return true; } float AC_Fence::get_breach_distance(uint8_t fence_type) const { return 0.0; } void AC_Fence::get_fence_names(uint8_t fences, ExpandingString& msg) { } diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index c346474e27d2a..aa5c4c254d3c2 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -73,7 +73,7 @@ class AC_Fence uint8_t enable_configured(bool value) { return enable(value, _configured_fences, true); } /// auto_enabled - automaticaly enable/disable fence depending of flight status - AutoEnable auto_enabled() { return static_cast(_auto_enabled.get()); } + AutoEnable auto_enabled() const { return static_cast(_auto_enabled.get()); } /// enable_floor - allows fence floor to be enabled/disabled. Note this does not update the eeprom saved value void enable_floor(); @@ -84,21 +84,17 @@ class AC_Fence /// auto_enable_fence_on_takeoff - auto enables the fence. Called after takeoff conditions met void auto_enable_fence_after_takeoff(); - /// auto_disable_fence_for_landing - auto disables respective fence. Called prior to landing. - void auto_disable_fence_for_landing(); - /// auto_enable_fences_on_arming - auto enables all applicable fences on arming void auto_enable_fence_on_arming(); /// auto_disable_fences_on_disarming - auto disables all applicable fences on disarming void auto_disable_fence_on_disarming(); + uint8_t get_auto_disable_fences(void) const; + /// auto_enable_fence_floor - auto enables fence floor once desired altitude has been reached. bool auto_enable_fence_floor(); - /// reset_fence_floor_enable - auto disables the fence floor if below the desired altitude. - bool reset_fence_floor_enable(); - /// enabled - returns whether fencing is enabled or not bool enabled() const { return _enabled_fences; } @@ -119,7 +115,8 @@ class AC_Fence /// /// check - returns the fence type that has been breached (if any) - uint8_t check(); + /// disabled_fences can be used to disable fences for certain conditions (e.g. landing) + uint8_t check(bool disable_auto_fence = false); // returns true if the destination is within fence (used to reject waypoints outside the fence) bool check_destination_within_fence(const class Location& loc); @@ -252,7 +249,6 @@ class AC_Fence float _circle_breach_distance; // distance beyond the circular fence // other internal variables - bool _floor_disabled_for_landing; // fence floor is disabled for landing uint8_t _auto_enable_mask = AC_FENCE_ALL_FENCES; // fences that can be auto-enabled or auto-disabled float _home_distance; // distance from home in meters (provided by main code) float _curr_alt; From 46d6d0bf03ed6e5f7512bd1ad387e298b68ea054 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 14:13:32 +0100 Subject: [PATCH 103/232] Plane: disable fences for landing by suppressing in the fence check rather than using a state machine --- ArduPlane/commands_logic.cpp | 4 ---- ArduPlane/fence.cpp | 10 +++++++++- ArduPlane/mode_auto.cpp | 4 ---- ArduPlane/mode_qland.cpp | 3 --- ArduPlane/quadplane.cpp | 3 --- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index fc87bb4ad63b2..7c57daf81530b 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -434,10 +434,6 @@ void Plane::do_land(const AP_Mission::Mission_Command& cmd) // if we were in an abort we need to explicitly move out of the abort state, as it's sticky set_flight_stage(AP_FixedWing::FlightStage::LAND); } - -#if AP_FENCE_ENABLED - plane.fence.auto_disable_fence_for_landing(); -#endif } #if HAL_QUADPLANE_ENABLED diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index 9615082244736..0217cbebe4703 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -9,8 +9,16 @@ void Plane::fence_check() { const uint8_t orig_breaches = fence.get_breaches(); + uint16_t mission_id = plane.mission.get_current_nav_cmd().id; + bool is_in_landing = plane.flight_stage == AP_FixedWing::FlightStage::LAND +#if HAL_QUADPLANE_ENABLED + || control_mode->mode_number() == Mode::Number::QLAND + || control_mode->mode_number() == Mode::Number::QRTL +#endif + || (plane.is_land_command(mission_id) && plane.mission.state() == AP_Mission::MISSION_RUNNING); + // check for new breaches; new_breaches is bitmask of fence types breached - const uint8_t new_breaches = fence.check(); + const uint8_t new_breaches = fence.check(is_in_landing); if (!fence.enabled()) { // Switch back to the chosen control mode if still in diff --git a/ArduPlane/mode_auto.cpp b/ArduPlane/mode_auto.cpp index e6381b62df25e..3153d7de31e06 100644 --- a/ArduPlane/mode_auto.cpp +++ b/ArduPlane/mode_auto.cpp @@ -54,10 +54,6 @@ void ModeAuto::_exit() } #endif if (restart) { -#if AP_FENCE_ENABLED - // no longer landing to re-enable the possiblity of the fence floor - plane.fence.reset_fence_floor_enable(); -#endif plane.landing.restart_landing_sequence(); } } diff --git a/ArduPlane/mode_qland.cpp b/ArduPlane/mode_qland.cpp index 4205960f871c3..f3a08aabde762 100644 --- a/ArduPlane/mode_qland.cpp +++ b/ArduPlane/mode_qland.cpp @@ -16,9 +16,6 @@ bool ModeQLand::_enter() #if AP_LANDINGGEAR_ENABLED plane.g2.landing_gear.deploy_for_landing(); #endif -#if AP_FENCE_ENABLED - plane.fence.auto_disable_fence_for_landing(); -#endif return true; } diff --git a/ArduPlane/quadplane.cpp b/ArduPlane/quadplane.cpp index 05a7948457730..c0c69937fa9e4 100644 --- a/ArduPlane/quadplane.cpp +++ b/ArduPlane/quadplane.cpp @@ -3554,9 +3554,6 @@ bool QuadPlane::verify_vtol_land(void) poscontrol.pilot_correction_done = false; pos_control->set_lean_angle_max_cd(0); poscontrol.xy_correction.zero(); -#if AP_FENCE_ENABLED - plane.fence.auto_disable_fence_for_landing(); -#endif #if AP_LANDINGGEAR_ENABLED plane.g2.landing_gear.deploy_for_landing(); #endif From eaf001c52fdbf55693aa3e22dd5b1d30d53876c5 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 14:13:43 +0100 Subject: [PATCH 104/232] Copter: disable fences for landing by suppressing in the fence check rather than using a state machine --- ArduCopter/fence.cpp | 6 +++++- ArduCopter/mode_auto.cpp | 5 ----- ArduCopter/mode_land.cpp | 5 ----- ArduCopter/mode_rtl.cpp | 10 ---------- 4 files changed, 5 insertions(+), 21 deletions(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index aba1ecce5bb84..7cae5dda8dfa8 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -10,8 +10,12 @@ void Copter::fence_check() { const uint8_t orig_breaches = fence.get_breaches(); + bool is_in_landing = flightmode->mode_number() == Mode::Number::LAND + || flightmode->mode_number() == Mode::Number::RTL + || flightmode->mode_number() == Mode::Number::SMART_RTL; + // check for new breaches; new_breaches is bitmask of fence types breached - const uint8_t new_breaches = fence.check(); + const uint8_t new_breaches = fence.check(is_in_landing); // we still don't do anything when disarmed, but we do check for fence breaches. // fence pre-arm check actually checks if any fence has been breached diff --git a/ArduCopter/mode_auto.cpp b/ArduCopter/mode_auto.cpp index 9a6b684cf1e8a..b672ba4d54df5 100644 --- a/ArduCopter/mode_auto.cpp +++ b/ArduCopter/mode_auto.cpp @@ -488,11 +488,6 @@ void ModeAuto::land_start() copter.landinggear.deploy_for_landing(); #endif -#if AP_FENCE_ENABLED - // disable the fence on landing - copter.fence.auto_disable_fence_for_landing(); -#endif - // reset flag indicating if pilot has applied roll or pitch inputs during landing copter.ap.land_repo_active = false; diff --git a/ArduCopter/mode_land.cpp b/ArduCopter/mode_land.cpp index 1f34e20fbf338..2b5b6e8879260 100644 --- a/ArduCopter/mode_land.cpp +++ b/ArduCopter/mode_land.cpp @@ -41,11 +41,6 @@ bool ModeLand::init(bool ignore_checks) copter.landinggear.deploy_for_landing(); #endif -#if AP_FENCE_ENABLED - // disable the fence on landing - copter.fence.auto_disable_fence_for_landing(); -#endif - #if AC_PRECLAND_ENABLED // initialise precland state machine copter.precland_statemachine.init(); diff --git a/ArduCopter/mode_rtl.cpp b/ArduCopter/mode_rtl.cpp index d3250e4265642..cfee04ff72024 100644 --- a/ArduCopter/mode_rtl.cpp +++ b/ArduCopter/mode_rtl.cpp @@ -255,11 +255,6 @@ void ModeRTL::descent_start() // optionally deploy landing gear copter.landinggear.deploy_for_landing(); #endif - -#if AP_FENCE_ENABLED - // disable the fence on landing - copter.fence.auto_disable_fence_for_landing(); -#endif } // rtl_descent_run - implements the final descent to the RTL_ALT @@ -347,11 +342,6 @@ void ModeRTL::land_start() // optionally deploy landing gear copter.landinggear.deploy_for_landing(); #endif - -#if AP_FENCE_ENABLED - // disable the fence on landing - copter.fence.auto_disable_fence_for_landing(); -#endif } bool ModeRTL::is_landing() const From 255fac215faa44469a9c1f4a210dc903620a3793 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 15:18:59 +0100 Subject: [PATCH 105/232] AP_Mission: generic fence handling in missions --- libraries/AP_Mission/AP_Mission.cpp | 5 ++++ libraries/AP_Mission/AP_Mission.h | 1 + libraries/AP_Mission/AP_Mission_Commands.cpp | 27 ++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index c11b574e8338f..438b816176df6 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -16,6 +16,7 @@ #include #include #include +#include const AP_Param::GroupInfo AP_Mission::var_info[] = { @@ -447,6 +448,10 @@ bool AP_Mission::start_command(const Mission_Command& cmd) case MAV_CMD_VIDEO_START_CAPTURE: case MAV_CMD_VIDEO_STOP_CAPTURE: return start_command_camera(cmd); +#endif +#if AP_FENCE_ENABLED + case MAV_CMD_DO_FENCE_ENABLE: + return start_command_fence(cmd); #endif case MAV_CMD_DO_PARACHUTE: return start_command_parachute(cmd); diff --git a/libraries/AP_Mission/AP_Mission.h b/libraries/AP_Mission/AP_Mission.h index e76c3a638f548..69f8fe2b46b97 100644 --- a/libraries/AP_Mission/AP_Mission.h +++ b/libraries/AP_Mission/AP_Mission.h @@ -936,6 +936,7 @@ class AP_Mission bool start_command_do_sprayer(const AP_Mission::Mission_Command& cmd); bool start_command_do_scripting(const AP_Mission::Mission_Command& cmd); bool start_command_do_gimbal_manager_pitchyaw(const AP_Mission::Mission_Command& cmd); + bool start_command_fence(const AP_Mission::Mission_Command& cmd); /* handle format conversion of storage format to allow us to update diff --git a/libraries/AP_Mission/AP_Mission_Commands.cpp b/libraries/AP_Mission/AP_Mission_Commands.cpp index d44b62e674686..f296c0c268c80 100644 --- a/libraries/AP_Mission/AP_Mission_Commands.cpp +++ b/libraries/AP_Mission/AP_Mission_Commands.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #if AP_RC_CHANNEL_ENABLED bool AP_Mission::start_command_do_aux_function(const AP_Mission::Mission_Command& cmd) @@ -347,4 +348,30 @@ bool AP_Mission::start_command_do_gimbal_manager_pitchyaw(const AP_Mission::Miss return false; } +bool AP_Mission::start_command_fence(const AP_Mission::Mission_Command& cmd) +{ +#if AP_FENCE_ENABLED + AC_Fence* fence = AP::fence(); + + if (fence == nullptr) { + return false; + } + + if (cmd.p1 == 0) { // disable fence + uint8_t fences = fence->enable_configured(false); + fence->print_fence_message("disabled", fences); + return true; + } else if (cmd.p1 == 1) { // enable fence + uint8_t fences = fence->enable_configured(true); + fence->print_fence_message("enabled", fences); + return true; + } else if (cmd.p1 == 2) { // disable fence floor only + fence->disable_floor(); + fence->print_fence_message("disabled", AC_FENCE_TYPE_ALT_MIN); + return true; + } +#endif // AP_FENCE_ENABLED + return false; +} + #endif // AP_MISSION_ENABLED From a11cc6ea6665c6ed9518416f9b9bf2f0ca4142b8 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 15:19:26 +0100 Subject: [PATCH 106/232] Plane: use generic fence handling in missions --- ArduPlane/commands_logic.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index 7c57daf81530b..57969f17ce8a4 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -144,21 +144,6 @@ bool Plane::start_command(const AP_Mission::Mission_Command& cmd) case MAV_CMD_DO_LAND_START: break; - case MAV_CMD_DO_FENCE_ENABLE: -#if AP_FENCE_ENABLED - if (cmd.p1 == 0) { // disable fence - plane.fence.enable_configured(false); - gcs().send_text(MAV_SEVERITY_INFO, "Fence disabled"); - } else if (cmd.p1 == 1) { // enable fence - plane.fence.enable_configured(true); - gcs().send_text(MAV_SEVERITY_INFO, "Fence enabled"); - } else if (cmd.p1 == 2) { // disable fence floor only - plane.fence.disable_floor(); - gcs().send_text(MAV_SEVERITY_INFO, "Fence floor disabled"); - } -#endif - break; - case MAV_CMD_DO_AUTOTUNE_ENABLE: autotune_enable(cmd.p1); break; From 823ffb6c9e153d29be8e93d7ef34270e53fd3276 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 15:19:36 +0100 Subject: [PATCH 107/232] Copter: use generic fence handling in missions --- ArduCopter/mode_auto.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/ArduCopter/mode_auto.cpp b/ArduCopter/mode_auto.cpp index b672ba4d54df5..4c4ab35ac2763 100644 --- a/ArduCopter/mode_auto.cpp +++ b/ArduCopter/mode_auto.cpp @@ -782,18 +782,6 @@ bool ModeAuto::start_command(const AP_Mission::Mission_Command& cmd) // point the camera to a specified angle do_mount_control(cmd); break; - - case MAV_CMD_DO_FENCE_ENABLE: -#if AP_FENCE_ENABLED - if (cmd.p1 == 0) { //disable - copter.fence.enable_configured(false); - gcs().send_text(MAV_SEVERITY_INFO, "Fence Disabled"); - } else { //enable fence - copter.fence.enable_configured(true); - gcs().send_text(MAV_SEVERITY_INFO, "Fence Enabled"); - } -#endif //AP_FENCE_ENABLED - break; #if AC_NAV_GUIDED == ENABLED case MAV_CMD_DO_GUIDED_LIMITS: // 220 accept guided mode limits From 685fb7e34f9196e49aa2f24a563d809bf8f207f5 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 15:19:45 +0100 Subject: [PATCH 108/232] Rover: use generic fence handling in missions --- Rover/mode_auto.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Rover/mode_auto.cpp b/Rover/mode_auto.cpp index f18ab0a8f9db9..6e97b0a1d24a3 100644 --- a/Rover/mode_auto.cpp +++ b/Rover/mode_auto.cpp @@ -593,18 +593,6 @@ bool ModeAuto::start_command(const AP_Mission::Mission_Command& cmd) do_set_reverse(cmd); break; - case MAV_CMD_DO_FENCE_ENABLE: -#if AP_FENCE_ENABLED - if (cmd.p1 == 0) { //disable - rover.fence.enable_configured(false); - gcs().send_text(MAV_SEVERITY_INFO, "Fence Disabled"); - } else { //enable fence - rover.fence.enable_configured(true); - gcs().send_text(MAV_SEVERITY_INFO, "Fence Enabled"); - } -#endif - break; - case MAV_CMD_DO_GUIDED_LIMITS: do_guided_limits(cmd); break; From f0456f29dd4e008930bb4d856f03c38e4c2ee24c Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 22 Jun 2024 12:02:21 +0100 Subject: [PATCH 109/232] AC_Fence: always disable Min Alt fence on landing allow precise pre-arm messages --- libraries/AC_Fence/AC_Fence.cpp | 48 ++++++++++++++++----------------- libraries/AC_Fence/AC_Fence.h | 8 +++--- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index e28ad0b6e2396..df03fd493b9ba 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -341,10 +341,9 @@ uint8_t AC_Fence::get_auto_disable_fences(void) const break; case AC_Fence::AutoEnable::ENABLE_DISABLE_FLOOR_ONLY: case AC_Fence::AutoEnable::ONLY_WHEN_ARMED: + default: // when auto disable is not set we still need to disable the altmin fence on landing auto_disable = _auto_enable_mask & AC_FENCE_TYPE_ALT_MIN; break; - default: - break; } return auto_disable; } @@ -366,7 +365,7 @@ uint8_t AC_Fence::get_enabled_fences() const } // additional checks for the polygon fence: -bool AC_Fence::pre_arm_check_polygon(const char* &fail_msg) const +bool AC_Fence::pre_arm_check_polygon(char *failure_msg, const uint8_t failure_msg_len) const { if (!(_configured_fences & AC_FENCE_TYPE_POLYGON)) { // not enabled; all good @@ -374,12 +373,12 @@ bool AC_Fence::pre_arm_check_polygon(const char* &fail_msg) const } if (! _poly_loader.loaded()) { - fail_msg = "Fences invalid"; + hal.util->snprintf(failure_msg, failure_msg_len, "Polygon fence(s) invalid"); return false; } if (!_poly_loader.check_inclusion_circle_margin(_margin)) { - fail_msg = "Margin is less than inclusion circle radius"; + hal.util->snprintf(failure_msg, failure_msg_len, "Polygon fence margin is less than inclusion circle radius"); return false; } @@ -387,14 +386,14 @@ bool AC_Fence::pre_arm_check_polygon(const char* &fail_msg) const } // additional checks for the circle fence: -bool AC_Fence::pre_arm_check_circle(const char* &fail_msg) const +bool AC_Fence::pre_arm_check_circle(char *failure_msg, const uint8_t failure_msg_len) const { if (_circle_radius < 0) { - fail_msg = "Invalid FENCE_RADIUS value"; + hal.util->snprintf(failure_msg, failure_msg_len, "Invalid Circle FENCE_RADIUS value"); return false; } if (_circle_radius < _margin) { - fail_msg = "FENCE_MARGIN is less than FENCE_RADIUS"; + hal.util->snprintf(failure_msg, failure_msg_len, "Circle FENCE_MARGIN is less than FENCE_RADIUS"); return false; } @@ -402,15 +401,15 @@ bool AC_Fence::pre_arm_check_circle(const char* &fail_msg) const } // additional checks for the alt fence: -bool AC_Fence::pre_arm_check_alt(const char* &fail_msg) const +bool AC_Fence::pre_arm_check_alt(char *failure_msg, const uint8_t failure_msg_len) const { if (_alt_max < 0.0f) { - fail_msg = "Invalid FENCE_ALT_MAX value"; + hal.util->snprintf(failure_msg, failure_msg_len, "Invalid FENCE_ALT_MAX value"); return false; } if (_alt_min < -100.0f) { - fail_msg = "Invalid FENCE_ALT_MIN value"; + hal.util->snprintf(failure_msg, failure_msg_len, "Invalid FENCE_ALT_MIN value"); return false; } return true; @@ -418,13 +417,11 @@ bool AC_Fence::pre_arm_check_alt(const char* &fail_msg) const /// pre_arm_check - returns true if all pre-takeoff checks have completed successfully -bool AC_Fence::pre_arm_check(const char* &fail_msg) const +bool AC_Fence::pre_arm_check(char *failure_msg, const uint8_t failure_msg_len) const { - fail_msg = nullptr; - // if fences are enabled but none selected fail pre-arm check if (_enabled && !present()) { - fail_msg = "Fences enabled, but none selected"; + hal.util->snprintf(failure_msg, failure_msg_len, "Fences enabled, but none selected"); return false; } @@ -439,42 +436,45 @@ bool AC_Fence::pre_arm_check(const char* &fail_msg) const (_configured_fences & AC_FENCE_TYPE_POLYGON)) { Vector2f position; if (!AP::ahrs().get_relative_position_NE_home(position)) { - fail_msg = "Fence requires position"; + hal.util->snprintf(failure_msg, failure_msg_len, "Fence requires position"); return false; } } - if (!pre_arm_check_polygon(fail_msg)) { + if (!pre_arm_check_polygon(failure_msg, failure_msg_len)) { return false; } - if (!pre_arm_check_circle(fail_msg)) { + if (!pre_arm_check_circle(failure_msg, failure_msg_len)) { return false; } - if (!pre_arm_check_alt(fail_msg)) { + if (!pre_arm_check_alt(failure_msg, failure_msg_len)) { return false; } // check no limits are currently breached if (_breached_fences) { - fail_msg = "vehicle outside fence"; + char msg[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1]; + ExpandingString e(msg, MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1); + AC_Fence::get_fence_names(_breached_fences, e); + hal.util->snprintf(failure_msg, failure_msg_len, "vehicle outside %s", e.get_writeable_string()); return false; } // validate FENCE_MARGIN parameter range if (_margin < 0.0f) { - fail_msg = "Invalid FENCE_MARGIN value"; + hal.util->snprintf(failure_msg, failure_msg_len, "Invalid FENCE_MARGIN value"); return false; } if (_alt_max < _alt_min) { - fail_msg = "FENCE_ALT_MAX < FENCE_ALT_MIN"; + hal.util->snprintf(failure_msg, failure_msg_len, "FENCE_ALT_MAX < FENCE_ALT_MIN"); return false; } if (_alt_max - _alt_min <= 2.0f * _margin) { - fail_msg = "FENCE_MARGIN too big"; + hal.util->snprintf(failure_msg, failure_msg_len, "FENCE_MARGIN too big"); return false; } @@ -910,7 +910,7 @@ uint8_t AC_Fence::present() const { return 0; } uint8_t AC_Fence::get_enabled_fences() const { return 0; } -bool AC_Fence::pre_arm_check(const char* &fail_msg) const { return true; } +bool AC_Fence::pre_arm_check(char *failure_msg, const uint8_t failure_msg_len) const { return true; } uint8_t AC_Fence::check(bool disable_auto_fences) { return 0; } bool AC_Fence::check_destination_within_fence(const Location& loc) { return true; } diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index aa5c4c254d3c2..3165d7b73d4d3 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -108,7 +108,7 @@ class AC_Fence void update(); /// pre_arm_check - returns true if all pre-takeoff checks have completed successfully - bool pre_arm_check(const char* &fail_msg) const; + bool pre_arm_check(char *failure_msg, const uint8_t failure_msg_len) const; /// /// methods to check we are within the boundaries and recover @@ -215,9 +215,9 @@ class AC_Fence void clear_breach(uint8_t fence_type); // additional checks for the different fence types: - bool pre_arm_check_polygon(const char* &fail_msg) const; - bool pre_arm_check_circle(const char* &fail_msg) const; - bool pre_arm_check_alt(const char* &fail_msg) const; + bool pre_arm_check_polygon(char *failure_msg, const uint8_t failure_msg_len) const; + bool pre_arm_check_circle(char *failure_msg, const uint8_t failure_msg_len) const; + bool pre_arm_check_alt(char *failure_msg, const uint8_t failure_msg_len) const; // fence floor is enabled bool floor_enabled() const { return _enabled_fences & AC_FENCE_TYPE_ALT_MIN; } From 37e0923ec25745d7e6de1944d8e75c9fc96b5dba Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 22 Jun 2024 16:52:43 +0100 Subject: [PATCH 110/232] AP_Arming: allow precise wording of fence pre-arm messages --- libraries/AP_Arming/AP_Arming.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index 2be3a1011fe6e..41ec47659d650 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -1280,16 +1280,12 @@ bool AP_Arming::fence_checks(bool display_failure) } // check fence is ready - const char *fail_msg = nullptr; - if (fence->pre_arm_check(fail_msg)) { + char fail_msg[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN+1]; + if (fence->pre_arm_check(fail_msg, ARRAY_SIZE(fail_msg))) { return true; } - if (fail_msg == nullptr) { - check_failed(display_failure, "Check fence"); - } else { - check_failed(display_failure, "%s", fail_msg); - } + check_failed(display_failure, "%s", fail_msg); #if AP_SDCARD_STORAGE_ENABLED if (fence->failed_sdcard_storage() || StorageManager::storage_failed()) { From f8304e12d110f70de7e71646227c1b8dd2ba2b3e Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 22 Jun 2024 16:53:07 +0100 Subject: [PATCH 111/232] Copter: don't breach auto-fences when landed --- ArduCopter/fence.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 7cae5dda8dfa8..54b363ec16e98 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -12,7 +12,8 @@ void Copter::fence_check() bool is_in_landing = flightmode->mode_number() == Mode::Number::LAND || flightmode->mode_number() == Mode::Number::RTL - || flightmode->mode_number() == Mode::Number::SMART_RTL; + || flightmode->mode_number() == Mode::Number::SMART_RTL + || ap.land_complete || !motors->armed(); // check for new breaches; new_breaches is bitmask of fence types breached const uint8_t new_breaches = fence.check(is_in_landing); From e30dc2c53675b81fdebc331c99461689c99f6b7f Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Fri, 31 May 2024 17:12:10 +0100 Subject: [PATCH 112/232] autotest: fix fence autotests add Plane.FenceMinAltEnableAutoland test that vehicle can be landed manually after descending below fence floor --- Tools/autotest/arducopter.py | 28 ++++++++++++-------- Tools/autotest/arduplane.py | 50 +++++++++++++++++++++++++++++++++--- Tools/autotest/rover.py | 10 ++++---- 3 files changed, 70 insertions(+), 18 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index e0eda4cdae5de..84303118b7e0a 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -1454,7 +1454,7 @@ def fly_fence_avoid_test_radius_check(self, timeout=180, avoid_behave=avoid_beha self.wait_altitude(10, 100, relative=True) self.set_rc(3, 1500) self.set_rc(2, 1400) - self.wait_distance_to_home(12, 20) + self.wait_distance_to_home(12, 20, timeout=30) tstart = self.get_sim_time() push_time = 70 # push against barrier for 60 seconds failed_max = False @@ -1513,7 +1513,7 @@ def HorizontalFence(self, timeout=180): self.load_fence("fence-in-middle-of-nowhere.txt") self.delay_sim_time(5) # let fence check run so it loads-from-eeprom - self.assert_prearm_failure("vehicle outside fence") + self.assert_prearm_failure("vehicle outside Polygon fence") self.progress("Failed to arm outside fence (good!)") self.clear_fence() self.delay_sim_time(5) # let fence breach clear @@ -1523,7 +1523,7 @@ def HorizontalFence(self, timeout=180): self.start_subtest("ensure we can't arm with bad radius") self.context_push() self.set_parameter("FENCE_RADIUS", -1) - self.assert_prearm_failure("Invalid FENCE_RADIUS value") + self.assert_prearm_failure("Invalid Circle FENCE_RADIUS value") self.context_pop() self.progress("Failed to arm with bad radius") self.drain_mav() @@ -1741,14 +1741,14 @@ def FenceFloorEnabledLanding(self): "AVOID_ENABLE": 0, "FENCE_ENABLE" : 1, "FENCE_TYPE": 15, - "FENCE_ALT_MIN": 10, - "FENCE_ALT_MAX": 20, + "FENCE_ALT_MIN": 20, + "FENCE_ALT_MAX": 30, }) self.change_mode("GUIDED") self.wait_ready_to_arm() self.arm_vehicle() - self.user_takeoff(alt_min=15) + self.user_takeoff(alt_min=25) # Check fence is enabled self.do_fence_enable() @@ -1760,8 +1760,19 @@ def FenceFloorEnabledLanding(self): self.set_rc(3, 1800) self.wait_mode('RTL', timeout=120) + # center throttle + self.set_rc(3, 1500) - self.wait_landed_and_disarmed() + # wait until we are below the fence floor and re-enter loiter + self.wait_altitude(5, 15, relative=True) + self.change_mode('LOITER') + # wait for manual recovery to expire + self.delay_sim_time(15) + + # lower throttle and try and land + self.set_rc(3, 1300) + self.wait_altitude(0, 2, relative=True) + self.wait_disarmed() self.assert_fence_enabled() # Assert fence is not healthy since it was enabled manually @@ -1799,8 +1810,6 @@ def FenceFloorAutoDisableLanding(self): self.set_rc(3, 1800) self.wait_mode('RTL', timeout=120) - # Assert fence is not healthy now that we are in RTL - self.assert_sensor_state(fence_bit, healthy=False) self.wait_landed_and_disarmed(0) # the breach should have cleared since we auto-disable the @@ -12005,7 +12014,6 @@ def tests(self): def disabled_tests(self): return { "Parachute": "See https://github.com/ArduPilot/ardupilot/issues/4702", - "HorizontalAvoidFence": "See https://github.com/ArduPilot/ardupilot/issues/11525", "AltEstimation": "See https://github.com/ArduPilot/ardupilot/issues/15191", "GroundEffectCompensation_takeOffExpected": "Flapping", "GroundEffectCompensation_touchDownExpected": "Flapping", diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 24821c55eac4e..6e4122eaf3bd8 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -1601,7 +1601,7 @@ def FenceStatic(self): self.delay_sim_time(2) # Allow breach to propagate self.assert_fence_enabled() - self.try_arm(False, "vehicle outside fence") + self.try_arm(False, "vehicle outside Min Alt fence") self.do_fence_disable() self.set_parameter("FENCE_ALT_MIN", default_fence_alt_min) @@ -1620,7 +1620,7 @@ def FenceStatic(self): self.do_fence_enable() self.assert_fence_enabled() self.delay_sim_time(2) # Allow breach to propagate - self.try_arm(False, "vehicle outside fence") + self.try_arm(False, "vehicle outside Polygon fence") self.do_fence_disable() self.clear_fence() @@ -1640,7 +1640,7 @@ def FenceStatic(self): self.do_fence_enable() self.assert_fence_enabled() self.delay_sim_time(2) # Allow breach to propagate - self.try_arm(False, "vehicle outside fence") + self.try_arm(False, "vehicle outside Polygon fence") self.do_fence_disable() self.clear_fence() @@ -3742,6 +3742,49 @@ def FenceMinAltAutoEnable(self): self.set_current_waypoint(0, check_afterwards=False) self.set_rc(3, 1000) # lower throttle + def FenceMinAltEnableAutoland(self): + '''Tests autolanding when alt min fence is enabled''' + self.set_parameters({ + "FENCE_TYPE": 12, # Set fence type to min alt and max alt + "FENCE_ACTION": 1, # Set action to RTL + "FENCE_ALT_MIN": 20, + "FENCE_AUTOENABLE": 0, + "FENCE_ENABLE" : 1, + "RTL_AUTOLAND" : 2, + }) + + # Grab Home Position + self.mav.recv_match(type='HOME_POSITION', blocking=True) + self.homeloc = self.mav.location() + + self.wait_ready_to_arm() + self.arm_vehicle() + + self.takeoff(alt=50, mode='TAKEOFF') + self.change_mode("FBWA") + self.set_rc(3, 1100) # lower throttle + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + # switch to FBWA + self.change_mode("FBWA") + self.set_rc(3, 1500) # raise throttle + self.wait_altitude(25, 35, timeout=50, relative=True) + self.set_rc(3, 1000) # lower throttle + # Now check we can land + self.fly_home_land_and_disarm() + self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) + self.set_current_waypoint(0, check_afterwards=False) + self.set_rc(3, 1000) # lower throttle + def FenceMinAltAutoEnableAbort(self): '''Tests autoenablement of the alt min fence and fences on arming''' self.set_parameters({ @@ -5776,6 +5819,7 @@ def tests(self): self.FenceRetRally, self.FenceAltCeilFloor, self.FenceMinAltAutoEnable, + self.FenceMinAltEnableAutoland, self.FenceMinAltAutoEnableAbort, self.FenceAutoEnableDisableSwitch, self.FenceEnableDisableSwitch, diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 22c38c5c50b52..941ae2f76695b 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -6881,10 +6881,10 @@ def MissionPolyEnabledPreArm(self): ]), ]) - self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False) + self.assert_prearm_failure('vehicle outside Polygon fence', other_prearm_failures_fatal=False) self.reboot_sitl() - self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) + self.assert_prearm_failure('vehicle outside Polygon fence', other_prearm_failures_fatal=False, timeout=120) self.progress("Ensure we can arm when a polyfence fence is cleared when we've previously been in breach") self.clear_fence() @@ -6900,7 +6900,7 @@ def MissionPolyEnabledPreArm(self): ]), ]) self.reboot_sitl() - self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) + self.assert_prearm_failure('vehicle outside Polygon fence', other_prearm_failures_fatal=False, timeout=120) self.clear_fence() self.wait_ready_to_arm() @@ -6914,11 +6914,11 @@ def MissionPolyEnabledPreArm(self): self.offset_location_ne(here, 50, 20), # tl, ]), ]) - self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) + self.assert_prearm_failure('vehicle outside Polygon fence', other_prearm_failures_fatal=False, timeout=120) self.set_parameter('FENCE_TYPE', 2) self.wait_ready_to_arm() self.set_parameter('FENCE_TYPE', 6) - self.assert_prearm_failure('vehicle outside fence', other_prearm_failures_fatal=False, timeout=120) + self.assert_prearm_failure('vehicle outside Polygon fence', other_prearm_failures_fatal=False, timeout=120) def OpticalFlow(self): '''lightly test OpticalFlow''' From 29a320b31051fd4f0194d0f745644bfa11694259 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 24 Jun 2024 20:46:22 +0100 Subject: [PATCH 113/232] AC_Avoidance: correctly set back away speed for minimum alt fences --- libraries/AC_Avoidance/AC_Avoid.cpp | 96 +++++++++++++++++------------ libraries/AC_Avoidance/AC_Avoid.h | 9 +-- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/libraries/AC_Avoidance/AC_Avoid.cpp b/libraries/AC_Avoidance/AC_Avoid.cpp index 2756e4b8fddd8..6169ad161d1fe 100644 --- a/libraries/AC_Avoidance/AC_Avoid.cpp +++ b/libraries/AC_Avoidance/AC_Avoid.cpp @@ -369,6 +369,19 @@ void AC_Avoid::adjust_speed(float kP, float accel, float heading, float &speed, } } +// adjust vertical climb rate so vehicle does not break the vertical fence +void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_cms, float dt) { + float backup_speed = 0.0f; + adjust_velocity_z(kP, accel_cmss, climb_rate_cms, backup_speed, dt); + if (!is_zero(backup_speed)) { + if (is_negative(backup_speed)) { + climb_rate_cms = MIN(climb_rate_cms, backup_speed); + } else { + climb_rate_cms = MAX(climb_rate_cms, backup_speed); + } + } +} + // adjust vertical climb rate so vehicle does not break the vertical fence void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_cms, float& backup_speed, float dt) { @@ -388,32 +401,10 @@ void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_c // limit acceleration const float accel_cmss_limited = MIN(accel_cmss, AC_AVOID_ACCEL_CMSS_MAX); - // if descending, adjust for minimum altitude as necessary - if (climb_rate_cms < 0.0f) { -#if AP_FENCE_ENABLED - // calculate distance below fence - AC_Fence *fence = AP::fence(); - if ((_enabled & AC_AVOID_STOP_AT_FENCE) > 0 && fence - && (fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) > 0) { - // calculate distance from vehicle to safe altitude - float veh_alt; - _ahrs.get_relative_position_D_home(veh_alt); - // fence.get_safe_alt_min() is UP, veh_alt is DOWN: - const float alt_min = -(fence->get_safe_alt_min() + veh_alt); - - if (alt_min <= 0.0f) { - climb_rate_cms = MAX(climb_rate_cms, 0.0f); - // also calculate backup speed that will get us back to safe altitude - backup_speed = get_max_speed(kP, accel_cmss_limited, -alt_min*100.0f, dt); - } - } -#endif - return; - } - - bool limit_alt = false; - float alt_diff = 0.0f; // distance from altitude limit to vehicle in metres (positive means vehicle is below limit) - + bool limit_min_alt = false; + bool limit_max_alt = false; + float max_alt_diff = 0.0f; // distance from altitude limit to vehicle in metres (positive means vehicle is below limit) + float min_alt_diff = 0.0f; #if AP_FENCE_ENABLED // calculate distance below fence AC_Fence *fence = AP::fence(); @@ -421,10 +412,15 @@ void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_c // calculate distance from vehicle to safe altitude float veh_alt; _ahrs.get_relative_position_D_home(veh_alt); + if ((fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MIN) > 0) { + // fence.get_safe_alt_max() is UP, veh_alt is DOWN: + min_alt_diff = -(fence->get_safe_alt_min() + veh_alt); + limit_min_alt = true; + } if ((fence->get_enabled_fences() & AC_FENCE_TYPE_ALT_MAX) > 0) { // fence.get_safe_alt_max() is UP, veh_alt is DOWN: - alt_diff = fence->get_safe_alt_max() + veh_alt; - limit_alt = true; + max_alt_diff = fence->get_safe_alt_max() + veh_alt; + limit_max_alt = true; } } #endif @@ -437,9 +433,9 @@ void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_c _ahrs.get_relative_position_D_origin(curr_alt)) { // alt_limit is UP, curr_alt is DOWN: const float ctrl_alt_diff = alt_limit + curr_alt; - if (!limit_alt || ctrl_alt_diff < alt_diff) { - alt_diff = ctrl_alt_diff; - limit_alt = true; + if (!limit_max_alt || ctrl_alt_diff < max_alt_diff) { + max_alt_diff = ctrl_alt_diff; + limit_max_alt = true; } } @@ -449,34 +445,52 @@ void AC_Avoid::adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_c AP_Proximity *proximity = AP::proximity(); if (proximity && proximity_avoidance_enabled() && proximity->get_upward_distance(proximity_alt_diff)) { proximity_alt_diff -= _margin; - if (!limit_alt || proximity_alt_diff < alt_diff) { - alt_diff = proximity_alt_diff; - limit_alt = true; + if (!limit_max_alt || proximity_alt_diff < max_alt_diff) { + max_alt_diff = proximity_alt_diff; + limit_max_alt = true; } } #endif // limit climb rate - if (limit_alt) { + if (limit_max_alt || limit_min_alt) { + const float max_back_spd_cms = _backup_speed_z_max * 100.0; // do not allow climbing if we've breached the safe altitude - if (alt_diff <= 0.0f) { + if (max_alt_diff <= 0.0f && limit_max_alt) { climb_rate_cms = MIN(climb_rate_cms, 0.0f); // also calculate backup speed that will get us back to safe altitude - const float max_back_spd_cms = _backup_speed_z_max * 100.0; if (is_positive(max_back_spd_cms)) { - backup_speed = -1*(get_max_speed(kP, accel_cmss_limited, -alt_diff*100.0f, dt)); + backup_speed = -1*(get_max_speed(kP, accel_cmss_limited, -max_alt_diff*100.0f, dt)); // Constrain to max backup speed backup_speed = MAX(backup_speed, -max_back_spd_cms); } return; + // do not allow descending if we've breached the safe altitude + } else if (min_alt_diff <= 0.0f && limit_min_alt) { + climb_rate_cms = MAX(climb_rate_cms, 0.0f); + // also calculate backup speed that will get us back to safe altitude + if (is_positive(max_back_spd_cms)) { + backup_speed = get_max_speed(kP, accel_cmss_limited, -min_alt_diff*100.0f, dt); + + // Constrain to max backup speed + backup_speed = MIN(backup_speed, max_back_spd_cms); + } + return; } // limit climb rate - const float max_speed = get_max_speed(kP, accel_cmss_limited, alt_diff*100.0f, dt); - climb_rate_cms = MIN(max_speed, climb_rate_cms); + if (limit_max_alt) { + const float max_alt_max_speed = get_max_speed(kP, accel_cmss_limited, max_alt_diff*100.0f, dt); + climb_rate_cms = MIN(max_alt_max_speed, climb_rate_cms); + } + + if (limit_min_alt) { + const float max_alt_min_speed = get_max_speed(kP, accel_cmss_limited, min_alt_diff*100.0f, dt); + climb_rate_cms = MAX(-max_alt_min_speed, climb_rate_cms); + } } -# endif +#endif } // adjust roll-pitch to push vehicle away from objects diff --git a/libraries/AC_Avoidance/AC_Avoid.h b/libraries/AC_Avoidance/AC_Avoid.h index 2321d74989951..aae55725ec1a1 100644 --- a/libraries/AC_Avoidance/AC_Avoid.h +++ b/libraries/AC_Avoidance/AC_Avoid.h @@ -68,14 +68,7 @@ class AC_Avoid { // adjust vertical climb rate so vehicle does not break the vertical fence void adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_cms, float& backup_speed, float dt); - void adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_cms, float dt) { - float backup_speed = 0.0f; - adjust_velocity_z(kP, accel_cmss, climb_rate_cms, backup_speed, dt); - if (!is_zero(backup_speed)) { - climb_rate_cms = MIN(climb_rate_cms, backup_speed); - } - } - + void adjust_velocity_z(float kP, float accel_cmss, float& climb_rate_cms, float dt); // adjust roll-pitch to push vehicle away from objects // roll and pitch value are in centi-degrees From b7ce3ff2860aea550f369d30d716dd1686e5f9aa Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 24 Jun 2024 20:46:49 +0100 Subject: [PATCH 114/232] autotest: add test for minimum altitude avoidance fence --- Tools/autotest/arducopter.py | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 84303118b7e0a..f41d11fbe736b 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -1730,6 +1730,59 @@ def MinAltFence(self): self.zero_throttle() + # MinAltFenceAvoid - fly down and make sure fence action does not trigger + # Also check that the vehicle will not try and ascend too fast when trying to backup from a min alt fence due to avoidance + def MinAltFenceAvoid(self): + '''Test Min Alt Fence Avoidance''' + self.takeoff(30, mode="LOITER") + """Hold loiter position.""" + + # enable fence, only min altitude + # No action, rely on avoidance to prevent the breach + self.set_parameters({ + "FENCE_ENABLE": 1, + "FENCE_TYPE": 8, + "FENCE_ALT_MIN": 20, + "FENCE_ACTION": 0, + }) + + # Try and fly past the fence + self.set_rc(3, 1120) + + # Avoid should prevent the vehicle flying past the fence, so the altitude wait should timeouts + try: + self.wait_altitude(10, 15, timeout=90, relative=True) + raise NotAchievedException("Avoid should prevent reaching altitude") + except AutoTestTimeoutException: + pass + except Exception as e: + raise e + + # Check ascent is not too fast, allow 10% above the configured backup speed + max_ascent_rate = self.get_parameter("AVOID_BACKUP_SPD") * 1.1 + + def get_climb_rate(mav, m): + m_type = m.get_type() + if m_type != 'VFR_HUD': + return + if m.climb > max_ascent_rate: + raise NotAchievedException("Ascending too fast want %f got %f" % (max_ascent_rate, m.climb)) + + self.context_push() + self.install_message_hook_context(get_climb_rate) + + # Reduce fence alt, this will result in a fence breach, but there is no action. + # Avoid should then backup the vehicle to be over the new fence alt. + self.set_parameters({ + "FENCE_ALT_MIN": 30, + }) + self.wait_altitude(30, 40, timeout=90, relative=True) + + self.context_pop() + + self.set_rc(3, 1500) + self.do_RTL() + def FenceFloorEnabledLanding(self): """Ensures we can initiate and complete an RTL while the fence is enabled. @@ -10672,6 +10725,7 @@ def tests1d(self): self.MaxAltFence, self.MaxAltFenceAvoid, self.MinAltFence, + self.MinAltFenceAvoid, self.FenceFloorEnabledLanding, self.FenceFloorAutoDisableLanding, self.FenceFloorAutoEnableOnArming, From 8c0c84b7abf3fc69545107361db72f68ba8e7c3c Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Tue, 25 Jun 2024 17:06:56 +0100 Subject: [PATCH 115/232] Copter: only disable fences when in landing phase --- ArduCopter/fence.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 54b363ec16e98..242dbef0cbad0 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -10,10 +10,7 @@ void Copter::fence_check() { const uint8_t orig_breaches = fence.get_breaches(); - bool is_in_landing = flightmode->mode_number() == Mode::Number::LAND - || flightmode->mode_number() == Mode::Number::RTL - || flightmode->mode_number() == Mode::Number::SMART_RTL - || ap.land_complete || !motors->armed(); + bool is_in_landing = flightmode->is_landing() || ap.land_complete || !motors->armed(); // check for new breaches; new_breaches is bitmask of fence types breached const uint8_t new_breaches = fence.check(is_in_landing); From e4cbee133b2ec40583d165e495dcd3e0c3bd36e7 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Tue, 25 Jun 2024 17:07:13 +0100 Subject: [PATCH 116/232] Plane: only disable fences when in landing phase --- ArduPlane/fence.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index 0217cbebe4703..5bc3ab93ffa0b 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -13,7 +13,7 @@ void Plane::fence_check() bool is_in_landing = plane.flight_stage == AP_FixedWing::FlightStage::LAND #if HAL_QUADPLANE_ENABLED || control_mode->mode_number() == Mode::Number::QLAND - || control_mode->mode_number() == Mode::Number::QRTL + || quadplane.in_vtol_land_descent() #endif || (plane.is_land_command(mission_id) && plane.mission.state() == AP_Mission::MISSION_RUNNING); From c40b80b10047d75dc37e766d8545d747ebd79432 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Tue, 25 Jun 2024 17:11:46 +0100 Subject: [PATCH 117/232] Copter: don't print fence cleared messages when sitting on the ground --- ArduCopter/fence.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 242dbef0cbad0..5ad1ccb1844c6 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -84,7 +84,9 @@ void Copter::fence_check() LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode(new_breaches)); } else if (orig_breaches && fence.get_breaches() == 0) { - GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence breach cleared"); + if (!copter.ap.land_complete) { + GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence breach cleared"); + } // record clearing of breach LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode::ERROR_RESOLVED); } From 5bc372714553baff403d7ec1c3949df72fcad49a Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Wed, 26 Jun 2024 10:09:08 +0100 Subject: [PATCH 118/232] AC_Fence: support FENCE_OPTIONS on copter --- libraries/AC_Fence/AC_Fence.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index df03fd493b9ba..808f926fa80cc 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -36,8 +36,10 @@ extern const AP_HAL::HAL& hal; #if APM_BUILD_TYPE(APM_BUILD_ArduPlane) #define AC_FENCE_CIRCLE_RADIUS_BACKUP_DISTANCE 100.0 // after fence is broken we recreate the fence 100m further out +#define AC_FENCE_OPTIONS_DEFAULT OPTIONS::DISABLE_MODE_CHANGE #else #define AC_FENCE_CIRCLE_RADIUS_BACKUP_DISTANCE 20.0 // after fence is broken we recreate the fence 20m further out +#define AC_FENCE_OPTIONS_DEFAULT 0 #endif //#define AC_FENCE_DEBUG @@ -137,12 +139,12 @@ const AP_Param::GroupInfo AC_Fence::var_info[] = { // @User: Standard AP_GROUPINFO_FRAME("AUTOENABLE", 10, AC_Fence, _auto_enabled, static_cast(AutoEnable::ALWAYS_DISABLED), AP_PARAM_FRAME_PLANE | AP_PARAM_FRAME_COPTER | AP_PARAM_FRAME_TRICOPTER | AP_PARAM_FRAME_HELI), - // @Param{Plane}: OPTIONS + // @Param{Plane, Copter}: OPTIONS // @DisplayName: Fence options // @Description: When bit 0 is set sisable mode change following fence action until fence breach is cleared. When bit 1 is set the allowable flight areas is the union of all polygon and circle fence areas instead of the intersection, which means a fence breach occurs only if you are outside all of the fence areas. // @Bitmask: 0:Disable mode change following fence action until fence breach is cleared, 1:Allow union of inclusion areas // @User: Standard - AP_GROUPINFO_FRAME("OPTIONS", 11, AC_Fence, _options, static_cast(OPTIONS::DISABLE_MODE_CHANGE), AP_PARAM_FRAME_PLANE), + AP_GROUPINFO_FRAME("OPTIONS", 11, AC_Fence, _options, static_cast(AC_FENCE_OPTIONS_DEFAULT), AP_PARAM_FRAME_PLANE | AP_PARAM_FRAME_COPTER), AP_GROUPEND }; From 2877472f273e6387fa15b91179933b002419edbb Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Wed, 26 Jun 2024 10:09:26 +0100 Subject: [PATCH 119/232] Copter: support FENCE_OPTIONS on copter --- ArduCopter/mode.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ArduCopter/mode.cpp b/ArduCopter/mode.cpp index 69cda906803ec..97bac5da02ffd 100644 --- a/ArduCopter/mode.cpp +++ b/ArduCopter/mode.cpp @@ -347,6 +347,20 @@ bool Copter::set_mode(Mode::Number mode, ModeReason reason) return false; } +#if AP_FENCE_ENABLED + // may not be allowed to change mode if recovering from fence breach + if (!ignore_checks && + fence.enabled() && + fence.option_enabled(AC_Fence::OPTIONS::DISABLE_MODE_CHANGE) && + fence.get_breaches() && + !flightmode->is_landing() && + get_control_mode_reason() == ModeReason::FENCE_BREACHED && + !ap.land_complete) { + mode_change_failed(new_flightmode, "in fence recovery"); + return false; + } +#endif + if (!new_flightmode->init(ignore_checks)) { mode_change_failed(new_flightmode, "init failed"); return false; From e4f76cd27da17911e4d3001e5fe039e09272d66b Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Tue, 16 Jul 2024 18:41:09 +0200 Subject: [PATCH 120/232] Plane: reject guided destinations outside the fence --- ArduPlane/GCS_Mavlink.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ArduPlane/GCS_Mavlink.cpp b/ArduPlane/GCS_Mavlink.cpp index 855b9a62413a1..5dcfcdfa72e6c 100644 --- a/ArduPlane/GCS_Mavlink.cpp +++ b/ArduPlane/GCS_Mavlink.cpp @@ -841,6 +841,14 @@ MAV_RESULT GCS_MAVLINK_Plane::handle_command_int_do_reposition(const mavlink_com return MAV_RESULT_DENIED; } +#if AP_FENCE_ENABLED + // reject destination if outside the fence + if (!plane.fence.check_destination_within_fence(requested_position)) { + LOGGER_WRITE_ERROR(LogErrorSubsystem::NAVIGATION, LogErrorCode::DEST_OUTSIDE_FENCE); + return MAV_RESULT_DENIED; + } +#endif + // location is valid load and set if (((int32_t)packet.param2 & MAV_DO_REPOSITION_FLAGS_CHANGE_MODE) || (plane.control_mode == &plane.mode_guided)) { From 68f259308967a8a72704e4f7f2470538f1a4f858 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 18 Jul 2024 08:00:11 +1000 Subject: [PATCH 121/232] AC_Fence: fixed FENCE_AUTOENABLE=2 needs to auto-enable on takeoff complete --- libraries/AC_Fence/AC_Fence.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 808f926fa80cc..7cfa677c5097a 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -325,7 +325,8 @@ void AC_Fence::auto_disable_fence_on_disarming(void) */ void AC_Fence::auto_enable_fence_after_takeoff(void) { - if (auto_enabled() != AC_Fence::AutoEnable::ENABLE_ON_AUTO_TAKEOFF) { + if (auto_enabled() != AutoEnable::ENABLE_ON_AUTO_TAKEOFF && + auto_enabled() != AutoEnable::ENABLE_DISABLE_FLOOR_ONLY) { return; } From 5d46e0c64e010382c51e1fd5230098d0e540fc69 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 19 Jul 2024 07:33:48 +1000 Subject: [PATCH 122/232] Plane: reset previous mode fence breach when disarmed when we are disarmed or we are not in fence breach and we are not flying then reset the previous mode fence reason state so that a new flight will get the correct fence breach action behaviour --- ArduPlane/fence.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index 5bc3ab93ffa0b..930a348440eec 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -39,10 +39,23 @@ void Plane::fence_check() return; } + const bool armed = arming.is_armed(); + + /* + if we are either disarmed or we are currently not in breach and + we are not flying then clear the state associated with the + previous mode breach handling. This allows the fence state + machine to reset at the end of a fence breach action such as an + RTL and autoland + */ + if (!armed || (new_breaches == 0 && !plane.is_flying())) { + plane.previous_mode_reason = ModeReason::UNKNOWN; + } + // we still don't do anything when disarmed, but we do check for fence breaches. // fence pre-arm check actually checks if any fence has been breached // that's not ever going to be true if we don't call check on AP_Fence while disarmed - if (!arming.is_armed()) { + if (!armed) { return; } From 0b6a1f4fe73b09bc00157c9123681a4a38815c18 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 18 Jul 2024 19:00:19 +0200 Subject: [PATCH 123/232] autotest: test for circle exclusion fence using AUTOENABLE=2 --- Tools/autotest/arduplane.py | 45 +++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 6e4122eaf3bd8..6f90634470327 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -3898,6 +3898,50 @@ def FenceAutoEnableDisableSwitch(self): self.change_altitude(self.homeloc.alt + cruise_alt) self.fly_home_land_and_disarm(timeout=250) + def FenceCircleExclusionAutoEnable(self): + '''Tests autolanding when alt min fence is enabled''' + self.set_parameters({ + "FENCE_TYPE": 2, # Set fence type to circle + "FENCE_ACTION": 1, # Set action to RTL + "FENCE_AUTOENABLE": 2, + "FENCE_ENABLE" : 0, + "RTL_AUTOLAND" : 2, + }) + + # Grab Home Position + self.mav.recv_match(type='HOME_POSITION', blocking=True) + self.homeloc = self.mav.location() + + fence_loc = self.home_position_as_mav_location() + self.location_offset_ne(fence_loc, 300, 0) + + self.upload_fences_from_locations([( + mavutil.mavlink.MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION, { + "radius" : 100, + "loc" : fence_loc + } + )]) + + self.wait_ready_to_arm() + self.arm_vehicle() + + self.takeoff(alt=50, mode='TAKEOFF') + self.change_mode("FBWA") + self.set_rc(3, 1100) # lower throttle + + self.progress("Waiting for RTL") + tstart = self.get_sim_time() + mode = "RTL" + while not self.mode_is(mode, drain_mav=False): + self.mav.messages['HEARTBEAT'].custom_mode + self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( + self.mav.flightmode, mode, self.get_altitude(relative=True))) + if (self.get_sim_time_cached() > tstart + 120): + raise WaitModeTimeout("Did not change mode") + self.progress("Got mode %s" % mode) + # Now check we can land + self.fly_home_land_and_disarm() + def FenceEnableDisableSwitch(self): '''Tests enablement and disablement of fences on a switch''' fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE @@ -5822,6 +5866,7 @@ def tests(self): self.FenceMinAltEnableAutoland, self.FenceMinAltAutoEnableAbort, self.FenceAutoEnableDisableSwitch, + Test(self.FenceCircleExclusionAutoEnable, speedup=20), self.FenceEnableDisableSwitch, self.FenceEnableDisableAux, self.FenceBreachedChangeMode, From d845af9bc342ac6ce7c25a9f21c4474c75998ff6 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 21 Jul 2024 08:49:28 +1000 Subject: [PATCH 124/232] Plane: fixed re-enable of fence for FENCE_AUTOENABLE=1 the is an adjustment to the previous fix which only worked when we had at least one fence element enabled when we were not flying or disarmed --- ArduPlane/fence.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index 930a348440eec..db8bafc496b53 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -20,6 +20,21 @@ void Plane::fence_check() // check for new breaches; new_breaches is bitmask of fence types breached const uint8_t new_breaches = fence.check(is_in_landing); + const bool armed = arming.is_armed(); + + /* + if we are either disarmed or we are currently not in breach and + we are not flying then clear the state associated with the + previous mode breach handling. This allows the fence state + machine to reset at the end of a fence breach action such as an + RTL and autoland + */ + if (plane.previous_mode_reason == ModeReason::FENCE_BREACHED) { + if (!armed || ((new_breaches == 0 && orig_breaches == 0) && !plane.is_flying())) { + plane.previous_mode_reason = ModeReason::UNKNOWN; + } + } + if (!fence.enabled()) { // Switch back to the chosen control mode if still in // GUIDED to the return point @@ -39,19 +54,6 @@ void Plane::fence_check() return; } - const bool armed = arming.is_armed(); - - /* - if we are either disarmed or we are currently not in breach and - we are not flying then clear the state associated with the - previous mode breach handling. This allows the fence state - machine to reset at the end of a fence breach action such as an - RTL and autoland - */ - if (!armed || (new_breaches == 0 && !plane.is_flying())) { - plane.previous_mode_reason = ModeReason::UNKNOWN; - } - // we still don't do anything when disarmed, but we do check for fence breaches. // fence pre-arm check actually checks if any fence has been breached // that's not ever going to be true if we don't call check on AP_Fence while disarmed From 55075961b2beadf6454660b320c32ad109835414 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 21 Jul 2024 13:29:21 +0200 Subject: [PATCH 125/232] AP_Mission: address minor review comments --- libraries/AP_Mission/AP_Mission.cpp | 1 - libraries/AP_Mission/AP_Mission_Commands.cpp | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index 438b816176df6..3e138e7cacb40 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -1239,7 +1239,6 @@ MAV_MISSION_RESULT AP_Mission::mavlink_int_to_mission_cmd(const mavlink_mission_ case MAV_CMD_DO_FENCE_ENABLE: // MAV ID: 207 cmd.p1 = packet.param1; // action 0=disable, 1=enable, 2=disable floor - // packet.param2; // bitmask see FENCE_TYPE enum break; case MAV_CMD_DO_AUX_FUNCTION: diff --git a/libraries/AP_Mission/AP_Mission_Commands.cpp b/libraries/AP_Mission/AP_Mission_Commands.cpp index f296c0c268c80..bc0374232050d 100644 --- a/libraries/AP_Mission/AP_Mission_Commands.cpp +++ b/libraries/AP_Mission/AP_Mission_Commands.cpp @@ -357,15 +357,15 @@ bool AP_Mission::start_command_fence(const AP_Mission::Mission_Command& cmd) return false; } - if (cmd.p1 == 0) { // disable fence + if (cmd.p1 == uint8_t(AC_Fence::MavlinkFenceActions::DISABLE_FENCE)) { // disable fence uint8_t fences = fence->enable_configured(false); fence->print_fence_message("disabled", fences); return true; - } else if (cmd.p1 == 1) { // enable fence + } else if (cmd.p1 == uint8_t(AC_Fence::MavlinkFenceActions::ENABLE_FENCE)) { // enable fence uint8_t fences = fence->enable_configured(true); fence->print_fence_message("enabled", fences); return true; - } else if (cmd.p1 == 2) { // disable fence floor only + } else if (cmd.p1 == uint8_t(AC_Fence::MavlinkFenceActions::DISABLE_ALT_MIN_FENCE)) { // disable fence floor only fence->disable_floor(); fence->print_fence_message("disabled", AC_FENCE_TYPE_ALT_MIN); return true; From ccfbfddf7e4c1916f263ea9c715f74c4410f764a Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 21 Jul 2024 13:29:04 +0200 Subject: [PATCH 126/232] AC_Fence: address minor review comments --- ArduCopter/fence.cpp | 2 +- libraries/AC_Fence/AC_Fence.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 5ad1ccb1844c6..103ccc556ae72 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -84,7 +84,7 @@ void Copter::fence_check() LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_FENCE, LogErrorCode(new_breaches)); } else if (orig_breaches && fence.get_breaches() == 0) { - if (!copter.ap.land_complete) { + if (!copter.ap.land_complete) { GCS_SEND_TEXT(MAV_SEVERITY_NOTICE, "Fence breach cleared"); } // record clearing of breach diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 7cfa677c5097a..743877cc1e7f8 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -144,7 +144,7 @@ const AP_Param::GroupInfo AC_Fence::var_info[] = { // @Description: When bit 0 is set sisable mode change following fence action until fence breach is cleared. When bit 1 is set the allowable flight areas is the union of all polygon and circle fence areas instead of the intersection, which means a fence breach occurs only if you are outside all of the fence areas. // @Bitmask: 0:Disable mode change following fence action until fence breach is cleared, 1:Allow union of inclusion areas // @User: Standard - AP_GROUPINFO_FRAME("OPTIONS", 11, AC_Fence, _options, static_cast(AC_FENCE_OPTIONS_DEFAULT), AP_PARAM_FRAME_PLANE | AP_PARAM_FRAME_COPTER), + AP_GROUPINFO_FRAME("OPTIONS", 11, AC_Fence, _options, static_cast(AC_FENCE_OPTIONS_DEFAULT), AP_PARAM_FRAME_PLANE | AP_PARAM_FRAME_COPTER | AP_PARAM_FRAME_TRICOPTER | AP_PARAM_FRAME_HELI), AP_GROUPEND }; @@ -237,7 +237,9 @@ void AC_Fence::update() #endif } -/// enable the Fence code generally; a master switch for all fences +// enable or disable configured fences present in fence_types +// also updates the bitmask of auto enabled fences if update_auto_mask is true +// returns a bitmask of fences that were changed uint8_t AC_Fence::enable(bool value, uint8_t fence_types, bool update_auto_mask) { uint8_t fences = _configured_fences.get() & fence_types; From 51304848fcc42e97670090c8c0d964cc7e8dcde4 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 21 Jul 2024 16:54:12 +0200 Subject: [PATCH 127/232] Copter: address minor review comments --- ArduCopter/fence.cpp | 4 ++-- ArduCopter/mode.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ArduCopter/fence.cpp b/ArduCopter/fence.cpp index 103ccc556ae72..2685f89431be6 100644 --- a/ArduCopter/fence.cpp +++ b/ArduCopter/fence.cpp @@ -10,10 +10,10 @@ void Copter::fence_check() { const uint8_t orig_breaches = fence.get_breaches(); - bool is_in_landing = flightmode->is_landing() || ap.land_complete || !motors->armed(); + bool is_landing_or_landed = flightmode->is_landing() || ap.land_complete || !motors->armed(); // check for new breaches; new_breaches is bitmask of fence types breached - const uint8_t new_breaches = fence.check(is_in_landing); + const uint8_t new_breaches = fence.check(is_landing_or_landed); // we still don't do anything when disarmed, but we do check for fence breaches. // fence pre-arm check actually checks if any fence has been breached diff --git a/ArduCopter/mode.cpp b/ArduCopter/mode.cpp index 97bac5da02ffd..89bfbc3235f3a 100644 --- a/ArduCopter/mode.cpp +++ b/ArduCopter/mode.cpp @@ -354,6 +354,7 @@ bool Copter::set_mode(Mode::Number mode, ModeReason reason) fence.option_enabled(AC_Fence::OPTIONS::DISABLE_MODE_CHANGE) && fence.get_breaches() && !flightmode->is_landing() && + motors->armed() && get_control_mode_reason() == ModeReason::FENCE_BREACHED && !ap.land_complete) { mode_change_failed(new_flightmode, "in fence recovery"); From f8e5c7c1c48d592fbfa94cf6d5e70837671c81d4 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 21 Jul 2024 16:54:23 +0200 Subject: [PATCH 128/232] Plane: address minor review comments --- ArduPlane/fence.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ArduPlane/fence.cpp b/ArduPlane/fence.cpp index db8bafc496b53..1890e709d25b0 100644 --- a/ArduPlane/fence.cpp +++ b/ArduPlane/fence.cpp @@ -8,9 +8,11 @@ void Plane::fence_check() { const uint8_t orig_breaches = fence.get_breaches(); + const bool armed = arming.is_armed(); uint16_t mission_id = plane.mission.get_current_nav_cmd().id; - bool is_in_landing = plane.flight_stage == AP_FixedWing::FlightStage::LAND + bool landing_or_landed = plane.flight_stage == AP_FixedWing::FlightStage::LAND + || !armed #if HAL_QUADPLANE_ENABLED || control_mode->mode_number() == Mode::Number::QLAND || quadplane.in_vtol_land_descent() @@ -18,9 +20,7 @@ void Plane::fence_check() || (plane.is_land_command(mission_id) && plane.mission.state() == AP_Mission::MISSION_RUNNING); // check for new breaches; new_breaches is bitmask of fence types breached - const uint8_t new_breaches = fence.check(is_in_landing); - - const bool armed = arming.is_armed(); + const uint8_t new_breaches = fence.check(landing_or_landed); /* if we are either disarmed or we are currently not in breach and From a371a3eb894666934de5d7d3669a869f300b26da Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 23 Jul 2024 09:59:50 +1000 Subject: [PATCH 129/232] Copter: fully honour FENCE_OPTION to disable mode changes when the user has chosen to disallow mode change during fence breach it should be fully implemented, without a landing exception. as requested by Pete, and discussed on dev call --- ArduCopter/mode.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/ArduCopter/mode.cpp b/ArduCopter/mode.cpp index 89bfbc3235f3a..19de3725dbbeb 100644 --- a/ArduCopter/mode.cpp +++ b/ArduCopter/mode.cpp @@ -353,7 +353,6 @@ bool Copter::set_mode(Mode::Number mode, ModeReason reason) fence.enabled() && fence.option_enabled(AC_Fence::OPTIONS::DISABLE_MODE_CHANGE) && fence.get_breaches() && - !flightmode->is_landing() && motors->armed() && get_control_mode_reason() == ModeReason::FENCE_BREACHED && !ap.land_complete) { From 1afa801b196c21a36761d18e8a7274a3653af4d6 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 130/232] AP_LTM_Telem: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- libraries/AP_LTM_Telem/AP_LTM_Telem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/AP_LTM_Telem/AP_LTM_Telem.cpp b/libraries/AP_LTM_Telem/AP_LTM_Telem.cpp index 5d3bdc2f41558..ebc44a3937d55 100644 --- a/libraries/AP_LTM_Telem/AP_LTM_Telem.cpp +++ b/libraries/AP_LTM_Telem/AP_LTM_Telem.cpp @@ -142,10 +142,12 @@ void AP_LTM_Telem::send_Sframe(void) const uint8_t flightmode = AP_Notify::flags.flight_mode; // flight mode uint8_t rssi = 0; // radio RSSI (%a) +#if AP_RSSI_ENABLED AP_RSSI *ap_rssi = AP_RSSI::get_singleton(); if (ap_rssi) { rssi = ap_rssi->read_receiver_rssi_uint8(); } +#endif const uint8_t armstat = AP_Notify::flags.armed; // 0: disarmed, 1: armed const uint8_t failsafe = AP_Notify::flags.failsafe_radio; // 0: normal, 1: failsafe From cc190f537f937e615521efa91658ad13817c4fec Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 131/232] AP_OSD: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- libraries/AP_OSD/AP_OSD_Screen.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/AP_OSD/AP_OSD_Screen.cpp b/libraries/AP_OSD/AP_OSD_Screen.cpp index 0c1aa5bfe80e2..e95363f1febc8 100644 --- a/libraries/AP_OSD/AP_OSD_Screen.cpp +++ b/libraries/AP_OSD/AP_OSD_Screen.cpp @@ -2584,8 +2584,10 @@ void AP_OSD_Screen::draw(void) DRAW_SETTING(avgcellvolt); DRAW_SETTING(avgcellrestvolt); DRAW_SETTING(restvolt); +#if AP_RSSI_ENABLED DRAW_SETTING(rssi); DRAW_SETTING(link_quality); +#endif DRAW_SETTING(current); DRAW_SETTING(batused); DRAW_SETTING(bat2used); From 6dac230ccb6548c07ee5f31ad5c463138e14cb0d Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 132/232] ArduCopter: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- ArduCopter/Copter.cpp | 2 ++ ArduCopter/Parameters.cpp | 4 +++- ArduCopter/system.cpp | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ArduCopter/Copter.cpp b/ArduCopter/Copter.cpp index b02628b1bd64a..86fc3b0e61a78 100644 --- a/ArduCopter/Copter.cpp +++ b/ArduCopter/Copter.cpp @@ -583,9 +583,11 @@ void Copter::ten_hz_logging_loop() } if (should_log(MASK_LOG_RCIN)) { logger.Write_RCIN(); +#if AP_RSSI_ENABLED if (rssi.enabled()) { logger.Write_RSSI(); } +#endif } if (should_log(MASK_LOG_RCOUT)) { logger.Write_RCOUT(); diff --git a/ArduCopter/Parameters.cpp b/ArduCopter/Parameters.cpp index a1dd234b0cf36..105b660a8e94e 100644 --- a/ArduCopter/Parameters.cpp +++ b/ArduCopter/Parameters.cpp @@ -634,10 +634,12 @@ const AP_Param::Info Copter::var_info[] = { GOBJECTN(mode_auto.mission, mission, "MIS_", AP_Mission), #endif +#if AP_RSSI_ENABLED // @Group: RSSI_ // @Path: ../libraries/AP_RSSI/AP_RSSI.cpp GOBJECT(rssi, "RSSI_", AP_RSSI), - +#endif + #if AP_RANGEFINDER_ENABLED // @Group: RNGFND // @Path: ../libraries/AP_RangeFinder/AP_RangeFinder.cpp diff --git a/ArduCopter/system.cpp b/ArduCopter/system.cpp index 864b1569f8bb0..1d133932fa40a 100644 --- a/ArduCopter/system.cpp +++ b/ArduCopter/system.cpp @@ -27,9 +27,11 @@ void Copter::init_ardupilot() // initialise battery monitor battery.init(); +#if AP_RSSI_ENABLED // Init RSSI rssi.init(); - +#endif + barometer.init(); // setup telem slots with serial ports From c451518bdd470ef7664874a93bcdc9f439481637 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 133/232] ArduPlane: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- ArduPlane/Log.cpp | 2 ++ ArduPlane/Parameters.cpp | 2 ++ ArduPlane/system.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/ArduPlane/Log.cpp b/ArduPlane/Log.cpp index a73c6dc552ce4..2fdfcd618bba1 100644 --- a/ArduPlane/Log.cpp +++ b/ArduPlane/Log.cpp @@ -255,9 +255,11 @@ void Plane::Log_Write_RC(void) { logger.Write_RCIN(); logger.Write_RCOUT(); +#if AP_RSSI_ENABLED if (rssi.enabled()) { logger.Write_RSSI(); } +#endif Log_Write_AETR(); } diff --git a/ArduPlane/Parameters.cpp b/ArduPlane/Parameters.cpp index 19288615a6205..65198d9cb5324 100644 --- a/ArduPlane/Parameters.cpp +++ b/ArduPlane/Parameters.cpp @@ -975,9 +975,11 @@ const AP_Param::Info Plane::var_info[] = { GOBJECT(rpm_sensor, "RPM", AP_RPM), #endif +#if AP_RSSI_ENABLED // @Group: RSSI_ // @Path: ../libraries/AP_RSSI/AP_RSSI.cpp GOBJECT(rssi, "RSSI_", AP_RSSI), +#endif // @Group: NTF_ // @Path: ../libraries/AP_Notify/AP_Notify.cpp diff --git a/ArduPlane/system.cpp b/ArduPlane/system.cpp index d931ac158d62f..dafe5e8bd7e1c 100644 --- a/ArduPlane/system.cpp +++ b/ArduPlane/system.cpp @@ -45,7 +45,9 @@ void Plane::init_ardupilot() // initialise battery monitoring battery.init(); +#if AP_RSSI_ENABLED rssi.init(); +#endif #if AP_RPM_ENABLED rpm_sensor.init(); From 3e54ecfecec70b5db4e7c1624a3320593e6920d7 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 134/232] Blimp: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- Blimp/Blimp.cpp | 2 ++ Blimp/Parameters.cpp | 2 ++ Blimp/system.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/Blimp/Blimp.cpp b/Blimp/Blimp.cpp index 1273636c2662c..83f8e6207394b 100644 --- a/Blimp/Blimp.cpp +++ b/Blimp/Blimp.cpp @@ -165,9 +165,11 @@ void Blimp::ten_hz_logging_loop() } if (should_log(MASK_LOG_RCIN)) { logger.Write_RCIN(); +#if AP_RSSI_ENABLED if (rssi.enabled()) { logger.Write_RSSI(); } +#endif } if (should_log(MASK_LOG_RCOUT)) { logger.Write_RCOUT(); diff --git a/Blimp/Parameters.cpp b/Blimp/Parameters.cpp index 91a1cc017ed0a..7a1d34c239f36 100644 --- a/Blimp/Parameters.cpp +++ b/Blimp/Parameters.cpp @@ -382,9 +382,11 @@ const AP_Param::Info Blimp::var_info[] = { GOBJECTN(ahrs.EKF3, NavEKF3, "EK3_", NavEKF3), #endif +#if AP_RSSI_ENABLED // @Group: RSSI_ // @Path: ../libraries/AP_RSSI/AP_RSSI.cpp GOBJECT(rssi, "RSSI_", AP_RSSI), +#endif // @Group: NTF_ // @Path: ../libraries/AP_Notify/AP_Notify.cpp diff --git a/Blimp/system.cpp b/Blimp/system.cpp index e32fa10a04c3d..9c1df237c8265 100644 --- a/Blimp/system.cpp +++ b/Blimp/system.cpp @@ -21,8 +21,10 @@ void Blimp::init_ardupilot() // initialise battery monitor battery.init(); +#if AP_RSSI_ENABLED // Init RSSI rssi.init(); +#endif barometer.init(); From 3def5f743373b5a4bab123303d21ed3dc1c0d3e5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 20:51:07 +1000 Subject: [PATCH 135/232] Rover: correct compilation with AP_RRSI_ENABLED false Co-authored-by: David Buzz --- Rover/GCS_Mavlink.cpp | 7 ++++++- Rover/Log.cpp | 2 ++ Rover/Parameters.cpp | 2 ++ Rover/system.cpp | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Rover/GCS_Mavlink.cpp b/Rover/GCS_Mavlink.cpp index 6189b2d281ef9..e718273703ce6 100644 --- a/Rover/GCS_Mavlink.cpp +++ b/Rover/GCS_Mavlink.cpp @@ -142,7 +142,12 @@ void GCS_MAVLINK_Rover::send_servo_out() 0, 0, 0, - receiver_rssi()); +#if AP_RSSI_ENABLED + receiver_rssi() +#else + 255 +#endif + ); } int16_t GCS_MAVLINK_Rover::vfr_hud_throttle() const diff --git a/Rover/Log.cpp b/Rover/Log.cpp index 6a3edb0184767..3490e2a703d33 100644 --- a/Rover/Log.cpp +++ b/Rover/Log.cpp @@ -237,9 +237,11 @@ void Rover::Log_Write_RC(void) { logger.Write_RCIN(); logger.Write_RCOUT(); +#if AP_RSSI_ENABLED if (rssi.enabled()) { logger.Write_RSSI(); } +#endif } void Rover::Log_Write_Vehicle_Startup_Messages() diff --git a/Rover/Parameters.cpp b/Rover/Parameters.cpp index 49c1f9a0be637..0c740105e5c4f 100644 --- a/Rover/Parameters.cpp +++ b/Rover/Parameters.cpp @@ -358,9 +358,11 @@ const AP_Param::Info Rover::var_info[] = { // @Path: ../libraries/AP_Mission/AP_Mission.cpp GOBJECTN(mode_auto.mission, mission, "MIS_", AP_Mission), +#if AP_RSSI_ENABLED // @Group: RSSI_ // @Path: ../libraries/AP_RSSI/AP_RSSI.cpp GOBJECT(rssi, "RSSI_", AP_RSSI), +#endif // @Group: NTF_ // @Path: ../libraries/AP_Notify/AP_Notify.cpp diff --git a/Rover/system.cpp b/Rover/system.cpp index 451df4614e092..02b93ab644f86 100644 --- a/Rover/system.cpp +++ b/Rover/system.cpp @@ -18,7 +18,9 @@ void Rover::init_ardupilot() rpm_sensor.init(); #endif +#if AP_RSSI_ENABLED rssi.init(); +#endif g2.windvane.init(serial_manager); From 7f1b7182fbbd60a2f19b1a24c36f700cd3d3d6d1 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 21:54:46 +1000 Subject: [PATCH 136/232] Tools: add AP_RSSI_ENABLED to build_options.py --- Tools/scripts/build_options.py | 1 + Tools/scripts/extract_features.py | 1 + 2 files changed, 2 insertions(+) diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index 1246995e8a959..bb19e6b4c69bf 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -213,6 +213,7 @@ def __init__(self, Feature('RC', 'RC_SUMD', 'AP_RCPROTOCOL_SUMD_ENABLED', "Enable SUMD RC Protocol", 0, "RC_Protocol"), # NOQA: E501 Feature('RC', 'RC_GHST', 'AP_RCPROTOCOL_GHST_ENABLED', "Enable Ghost RC Protocol", 0, "RC_Protocol"), # NOQA: E501 Feature('RC', 'RC_MAVLINK_RADIO', 'AP_RCPROTOCOL_MAVLINK_RADIO_ENABLED', "Enable MAVLink RC Protocol", 0, "RC_Protocol"), # NOQA: E501 + Feature('RC', 'RSSI', 'AP_RSSI_ENABLED', 'Enable RSSI handling library', 0, None), Feature('Rangefinder', 'RANGEFINDER', 'AP_RANGEFINDER_ENABLED', "Enable Rangefinders", 0, None), # NOQA: E501 Feature('Rangefinder', 'RANGEFINDER_ANALOG', 'AP_RANGEFINDER_ANALOG_ENABLED', "Enable Rangefinder - Analog", 0, "RANGEFINDER"), # NOQA: E501 diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index bf21800c19e74..c1f3aa86b6cb5 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -257,6 +257,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('HAL_ENABLE_DRONECAN_DRIVERS', r'AP_DroneCAN::init'), ('AP_MAVLINK_MSG_HIL_GPS_ENABLED', r'mavlink_msg_hil_gps_decode'), ('AP_BARO_PROBE_EXTERNAL_I2C_BUSES', r'AP_Compass::_probe_external_i2c_compasses'), + ('AP_RSSI_ENABLED', r'AP_RSSI::init'), ] def progress(self, msg): From a4577685a77148676be03783606f0926f6a35ba7 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 22:18:41 +1000 Subject: [PATCH 137/232] AP_HAL_ChibiOS: rename LED_1 pin define to AP_NOTIFY_GPIO_LED_1_PIN --- libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/BlitzF745/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/CBU-H7-Stamp/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/F35Lightning/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/FlywooF405Pro/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/FlywooF405S-AIO/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/FoxeerH743v1/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/JHEM_JHEF405/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/OmnibusNanoV6/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/SuccexF4/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/airbotf4/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/omnibusf4v6/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v3/hwdef.dat | 2 +- libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v4/hwdef.dat | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/hwdef.dat index 67443a0e65c39..8e451e2bed4fc 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/hwdef.dat @@ -101,7 +101,7 @@ PA2 TIM2_CH3 TIM2 PWM(4) GPIO(53) # M4 # LEDs define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PB5 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # LED strip PB6 TIM4_CH1 TIM4 PWM(5) GPIO(56) # M7 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/BlitzF745/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/BlitzF745/hwdef.dat index 2d5fa82e437fc..f4f12ed84fd98 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/BlitzF745/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/BlitzF745/hwdef.dat @@ -124,7 +124,7 @@ PC9 TIM8_CH4 TIM8 PWM(9) GPIO(58) # M9 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PD15 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CBU-H7-Stamp/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CBU-H7-Stamp/hwdef.dat index 0131fd18e1868..474e761991cb7 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CBU-H7-Stamp/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CBU-H7-Stamp/hwdef.dat @@ -189,7 +189,7 @@ PF5 SAFETY_IN INPUT PULLDOWN PE3 LED_RED OUTPUT HIGH GPIO(90) define AP_NOTIFY_GPIO_LED_1_ENABLED 1 -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 define HAL_GPIO_LED_ON 1 # barometers diff --git a/libraries/AP_HAL_ChibiOS/hwdef/F35Lightning/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/F35Lightning/hwdef.dat index a6141f55d57b9..3b2655f8123ff 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/F35Lightning/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/F35Lightning/hwdef.dat @@ -72,7 +72,7 @@ define BOARD_RSSI_ANA_PIN 13 # LED define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC10 LED OUTPUT HIGH GPIO(57) -define HAL_GPIO_A_LED_PIN 57 +define AP_NOTIFY_GPIO_LED_1_PIN 57 # SPI PA5 SPI1_SCK SPI1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405Pro/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405Pro/hwdef.dat index a403ff33727a9..d3cd91aeb33f1 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405Pro/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405Pro/hwdef.dat @@ -120,7 +120,7 @@ PA9 TIM1_CH2 TIM1 PWM(9) GPIO(58) # M9 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC14 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405S-AIO/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405S-AIO/hwdef.dat index 93ae7491d42ed..6c06ea552a8ea 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405S-AIO/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF405S-AIO/hwdef.dat @@ -108,7 +108,7 @@ PA9 TIM1_CH2 TIM1 PWM(5) GPIO(54) # M5 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC14 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerH743v1/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerH743v1/hwdef.dat index 075a3f8cd537a..97e2b86c68c14 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FoxeerH743v1/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FoxeerH743v1/hwdef.dat @@ -138,7 +138,7 @@ PA8 TIM1_CH1 TIM1 PWM(9) GPIO(58) # M9 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC13 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/JHEM_JHEF405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/JHEM_JHEF405/hwdef.dat index d1dde0be96500..e55d72117bb2e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/JHEM_JHEF405/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/JHEM_JHEF405/hwdef.dat @@ -110,7 +110,7 @@ PA9 TIM1_CH2 TIM1 PWM(9) GPIO(58) # LED define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC14 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/OmnibusNanoV6/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/OmnibusNanoV6/hwdef.dat index 1446c3fe34464..1e068c119b4e5 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/OmnibusNanoV6/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/OmnibusNanoV6/hwdef.dat @@ -139,7 +139,7 @@ define BOARD_RSSI_ANA_PIN 0 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 -define HAL_GPIO_A_LED_PIN 41 +define AP_NOTIFY_GPIO_LED_1_PIN 41 define OSD_ENABLED 1 define HAL_OSD_TYPE_DEFAULT 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat index 8c5885570b81d..292c0777d674a 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405Mini/hwdef.dat @@ -115,7 +115,7 @@ PA8 TIM1_CH1 TIM1 PWM(5) GPIO(54) # M5 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC13 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # Dataflash setup SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SuccexF4/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SuccexF4/hwdef.dat index b8bf257959422..75965031cbb94 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/SuccexF4/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/SuccexF4/hwdef.dat @@ -77,7 +77,7 @@ PA14 JTCK-SWCLK SWD PB4 TIM3_CH1 TIM3 GPIO(56) ALARM define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PB5 LED OUTPUT HIGH GPIO(57) -define HAL_GPIO_A_LED_PIN 57 +define AP_NOTIFY_GPIO_LED_1_PIN 57 PA11 OTG_FS_DM OTG1 PA12 OTG_FS_DP OTG1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/airbotf4/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/airbotf4/hwdef.dat index 347b49385328b..e1c7ddacac9e3 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/airbotf4/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/airbotf4/hwdef.dat @@ -99,7 +99,7 @@ define HAL_BATT_VOLT_SCALE 11 define HAL_BATT_CURR_SCALE 18.2 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 -define HAL_GPIO_A_LED_PIN 57 +define AP_NOTIFY_GPIO_LED_1_PIN 57 # 64kB FLASH_RESERVE_START_KB means we're lacking a lot of space: include ../include/minimize_features.inc diff --git a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4v6/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4v6/hwdef.dat index d695fb7b8ab26..946c15584de5d 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4v6/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4v6/hwdef.dat @@ -143,7 +143,7 @@ define HAL_BATT_CURR_SCALE 18.2 define BOARD_RSSI_ANA_PIN 0 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 -define HAL_GPIO_A_LED_PIN 41 +define AP_NOTIFY_GPIO_LED_1_PIN 41 define OSD_ENABLED 1 #font for the osd diff --git a/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v3/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v3/hwdef.dat index 478a827bb62a8..752745b392247 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v3/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v3/hwdef.dat @@ -25,7 +25,7 @@ SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 UART5 USART6 PC8 LED_BLUE OUTPUT LOW GPIO(0) define AP_NOTIFY_GPIO_LED_1_ENABLED 1 -define HAL_GPIO_A_LED_PIN 0 +define AP_NOTIFY_GPIO_LED_1_PIN 0 # buzzer PC5 BUZZER OUTPUT GPIO(80) LOW diff --git a/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v4/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v4/hwdef.dat index 15de93a140a2e..80e58d65d90f0 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v4/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/speedybeef4v4/hwdef.dat @@ -123,7 +123,7 @@ PA8 TIM1_CH1 TIM1 PWM(9) GPIO(58) # M9 define AP_NOTIFY_GPIO_LED_1_ENABLED 1 PC13 LED0 OUTPUT LOW GPIO(90) -define HAL_GPIO_A_LED_PIN 90 +define AP_NOTIFY_GPIO_LED_1_PIN 90 # OSD setup SPIDEV osd SPI2 DEVID1 OSD1_CS MODE0 10*MHZ 10*MHZ From 478d26d69c19a2ef30593e191857f8efec2f02c8 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 22:18:41 +1000 Subject: [PATCH 138/232] AP_Notify: rename LED_1 pin define to AP_NOTIFY_GPIO_LED_1_PIN --- libraries/AP_Notify/GPIO_LED_1.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/AP_Notify/GPIO_LED_1.cpp b/libraries/AP_Notify/GPIO_LED_1.cpp index 950a1ce49cad2..6ea0bd16c9aa0 100644 --- a/libraries/AP_Notify/GPIO_LED_1.cpp +++ b/libraries/AP_Notify/GPIO_LED_1.cpp @@ -22,8 +22,8 @@ #include #include "AP_Notify.h" -#ifndef AP_NOTIFY_GPIO_LED_A_PIN -#error "define AP_NOTIFY_GPIO_LED_A_PIN" +#ifndef AP_NOTIFY_GPIO_LED_1_PIN +#error "define AP_NOTIFY_GPIO_LED_1_PIN" #endif extern const AP_HAL::HAL& hal; @@ -33,9 +33,9 @@ bool GPIO_LED_1::init(void) // when HAL_GPIO_LED_ON is 0 then we must not use pinMode() // as it could remove the OPENDRAIN attribute on the pin #if HAL_GPIO_LED_ON != 0 - hal.gpio->pinMode(AP_NOTIFY_GPIO_LED_A_PIN, HAL_GPIO_OUTPUT); + hal.gpio->pinMode(AP_NOTIFY_GPIO_LED_1_PIN, HAL_GPIO_OUTPUT); #endif - hal.gpio->write(AP_NOTIFY_GPIO_LED_A_PIN, HAL_GPIO_LED_OFF); + hal.gpio->write(AP_NOTIFY_GPIO_LED_1_PIN, HAL_GPIO_LED_OFF); return true; } @@ -67,7 +67,7 @@ void GPIO_LED_1::update(void) last_timestep_ms = now_ms; const auto new_state = (current_pattern & (1U<write(AP_NOTIFY_GPIO_LED_A_PIN, new_state); + hal.gpio->write(AP_NOTIFY_GPIO_LED_1_PIN, new_state); next_bit++; if (next_bit > 31) { next_bit = 0; From bedc76e0e80e407efdb40232857b40d1d16bc0a4 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 23 Jul 2024 10:18:22 +1000 Subject: [PATCH 139/232] autotest: tidy various tests to take account of new framework capabilities autotest: simplify AutoDock test autotest: tidy AP_Proximity_MAV test autotest: tidy DriveSquare test autotest: tidy BatteryFailsafe test autotest: tidy GPSViconSwitching test autotest: tidy RangeFinder test --- Tools/autotest/arducopter.py | 227 +++++++++++---------------- Tools/autotest/rover.py | 293 +++++++++++++++-------------------- 2 files changed, 222 insertions(+), 298 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index f41d11fbe736b..17b500367509f 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -961,21 +961,6 @@ def CustomController(self, timeout=300): # Tests all actions and logic behind the battery failsafe def BatteryFailsafe(self, timeout=300): '''Fly Battery Failsafe''' - self.context_push() - ex = None - try: - self.test_battery_failsafe(timeout=timeout) - except Exception as e: - self.print_exception_caught(e) - self.disarm_vehicle(force=True) - ex = e - self.context_pop() - self.reboot_sitl() - - if ex is not None: - raise ex - - def test_battery_failsafe(self, timeout=300): self.progress("Configure battery failsafe parameters") self.set_parameters({ 'SIM_SPEEDUP': 4, @@ -3730,82 +3715,68 @@ def InvalidJumpTags(self): def GPSViconSwitching(self): """Fly GPS and Vicon switching test""" - self.customise_SITL_commandline(["--serial5=sim:vicon:"]) - """Setup parameters including switching to EKF3""" - self.context_push() - ex = None - try: - self.set_parameters({ - "VISO_TYPE": 2, # enable vicon - "SERIAL5_PROTOCOL": 2, - "EK3_ENABLE": 1, - "EK3_SRC2_POSXY": 6, # External Nav - "EK3_SRC2_POSZ": 6, # External Nav - "EK3_SRC2_VELXY": 6, # External Nav - "EK3_SRC2_VELZ": 6, # External Nav - "EK3_SRC2_YAW": 6, # External Nav - "RC7_OPTION": 80, # RC aux switch 7 set to Viso Align - "RC8_OPTION": 90, # RC aux switch 8 set to EKF source selector - "EK2_ENABLE": 0, - "AHRS_EKF_TYPE": 3, - }) - self.reboot_sitl() - - # switch to use GPS - self.set_rc(8, 1000) + self.set_parameters({ + "VISO_TYPE": 2, # enable vicon + "SERIAL5_PROTOCOL": 2, + "EK3_ENABLE": 1, + "EK3_SRC2_POSXY": 6, # External Nav + "EK3_SRC2_POSZ": 6, # External Nav + "EK3_SRC2_VELXY": 6, # External Nav + "EK3_SRC2_VELZ": 6, # External Nav + "EK3_SRC2_YAW": 6, # External Nav + "RC7_OPTION": 80, # RC aux switch 7 set to Viso Align + "RC8_OPTION": 90, # RC aux switch 8 set to EKF source selector + "EK2_ENABLE": 0, + "AHRS_EKF_TYPE": 3, + }) + self.customise_SITL_commandline(["--serial5=sim:vicon:"]) - # ensure we can get a global position: - self.poll_home_position(timeout=120) + # switch to use GPS + self.set_rc(8, 1000) - # record starting position - old_pos = self.get_global_position_int() - print("old_pos=%s" % str(old_pos)) + # ensure we can get a global position: + self.poll_home_position(timeout=120) - # align vicon yaw with ahrs heading - self.set_rc(7, 2000) + # record starting position + old_pos = self.get_global_position_int() + print("old_pos=%s" % str(old_pos)) - # takeoff to 10m in Loiter - self.progress("Moving to ensure location is tracked") - self.takeoff(10, mode="LOITER", require_absolute=True, timeout=720) + # align vicon yaw with ahrs heading + self.set_rc(7, 2000) - # fly forward in Loiter - self.set_rc(2, 1300) + # takeoff to 10m in Loiter + self.progress("Moving to ensure location is tracked") + self.takeoff(10, mode="LOITER", require_absolute=True, timeout=720) - # disable vicon - self.set_parameter("SIM_VICON_FAIL", 1) + # fly forward in Loiter + self.set_rc(2, 1300) - # ensure vehicle remain in Loiter for 15 seconds - tstart = self.get_sim_time() - while self.get_sim_time() - tstart < 15: - if not self.mode_is('LOITER'): - raise NotAchievedException("Expected to stay in loiter for >15 seconds") + # disable vicon + self.set_parameter("SIM_VICON_FAIL", 1) - # re-enable vicon - self.set_parameter("SIM_VICON_FAIL", 0) + # ensure vehicle remain in Loiter for 15 seconds + tstart = self.get_sim_time() + while self.get_sim_time() - tstart < 15: + if not self.mode_is('LOITER'): + raise NotAchievedException("Expected to stay in loiter for >15 seconds") - # switch to vicon, disable GPS and wait 10sec to ensure vehicle remains in Loiter - self.set_rc(8, 1500) - self.set_parameter("GPS1_TYPE", 0) + # re-enable vicon + self.set_parameter("SIM_VICON_FAIL", 0) - # ensure vehicle remain in Loiter for 15 seconds - tstart = self.get_sim_time() - while self.get_sim_time() - tstart < 15: - if not self.mode_is('LOITER'): - raise NotAchievedException("Expected to stay in loiter for >15 seconds") + # switch to vicon, disable GPS and wait 10sec to ensure vehicle remains in Loiter + self.set_rc(8, 1500) + self.set_parameter("GPS1_TYPE", 0) - # RTL and check vehicle arrives within 10m of home - self.set_rc(2, 1500) - self.do_RTL() + # ensure vehicle remain in Loiter for 15 seconds + tstart = self.get_sim_time() + while self.get_sim_time() - tstart < 15: + if not self.mode_is('LOITER'): + raise NotAchievedException("Expected to stay in loiter for >15 seconds") - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.disarm_vehicle(force=True) - self.reboot_sitl() - if ex is not None: - raise ex + # RTL and check vehicle arrives within 10m of home + self.set_rc(2, 1500) + self.do_RTL() def RTLSpeed(self): """Test RTL Speed parameters""" @@ -3885,9 +3856,6 @@ def NavDelay(self): def RangeFinder(self): '''Test RangeFinder Basic Functionality''' - ex = None - self.context_push() - self.progress("Making sure we don't ordinarily get RANGEFINDER") m = self.mav.recv_match(type='RANGEFINDER', blocking=True, @@ -3903,68 +3871,59 @@ def RangeFinder(self): if self.current_onboard_log_contains_message("RFND"): raise NotAchievedException("Found unexpected RFND message") - try: - self.set_analog_rangefinder_parameters() - self.set_parameter("RC9_OPTION", 10) # rangefinder - self.set_rc(9, 2000) - - self.reboot_sitl() + self.set_analog_rangefinder_parameters() + self.set_parameter("RC9_OPTION", 10) # rangefinder + self.set_rc(9, 2000) - self.progress("Making sure we now get RANGEFINDER messages") - m = self.assert_receive_message('RANGEFINDER', timeout=10) + self.reboot_sitl() - self.progress("Checking RangeFinder is marked as enabled in mavlink") - m = self.mav.recv_match(type='SYS_STATUS', - blocking=True, - timeout=10) - flags = m.onboard_control_sensors_enabled - if not flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: - raise NotAchievedException("Laser not enabled in SYS_STATUS") - self.progress("Disabling laser using switch") - self.set_rc(9, 1000) - self.delay_sim_time(1) - self.progress("Checking RangeFinder is marked as disabled in mavlink") - m = self.mav.recv_match(type='SYS_STATUS', - blocking=True, - timeout=10) - flags = m.onboard_control_sensors_enabled - if flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: - raise NotAchievedException("Laser enabled in SYS_STATUS") + self.progress("Making sure we now get RANGEFINDER messages") + m = self.assert_receive_message('RANGEFINDER', timeout=10) - self.progress("Re-enabling rangefinder") - self.set_rc(9, 2000) - self.delay_sim_time(1) - m = self.mav.recv_match(type='SYS_STATUS', - blocking=True, - timeout=10) - flags = m.onboard_control_sensors_enabled - if not flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: - raise NotAchievedException("Laser not enabled in SYS_STATUS") + self.progress("Checking RangeFinder is marked as enabled in mavlink") + m = self.mav.recv_match(type='SYS_STATUS', + blocking=True, + timeout=10) + flags = m.onboard_control_sensors_enabled + if not flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: + raise NotAchievedException("Laser not enabled in SYS_STATUS") + self.progress("Disabling laser using switch") + self.set_rc(9, 1000) + self.delay_sim_time(1) + self.progress("Checking RangeFinder is marked as disabled in mavlink") + m = self.mav.recv_match(type='SYS_STATUS', + blocking=True, + timeout=10) + flags = m.onboard_control_sensors_enabled + if flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: + raise NotAchievedException("Laser enabled in SYS_STATUS") - self.takeoff(10, mode="LOITER") + self.progress("Re-enabling rangefinder") + self.set_rc(9, 2000) + self.delay_sim_time(1) + m = self.mav.recv_match(type='SYS_STATUS', + blocking=True, + timeout=10) + flags = m.onboard_control_sensors_enabled + if not flags & mavutil.mavlink.MAV_SYS_STATUS_SENSOR_LASER_POSITION: + raise NotAchievedException("Laser not enabled in SYS_STATUS") - m_r = self.mav.recv_match(type='RANGEFINDER', - blocking=True) - m_p = self.mav.recv_match(type='GLOBAL_POSITION_INT', - blocking=True) + self.takeoff(10, mode="LOITER") - if abs(m_r.distance - m_p.relative_alt/1000) > 1: - raise NotAchievedException( - "rangefinder/global position int mismatch %0.2f vs %0.2f" % - (m_r.distance, m_p.relative_alt/1000)) + m_r = self.mav.recv_match(type='RANGEFINDER', + blocking=True) + m_p = self.mav.recv_match(type='GLOBAL_POSITION_INT', + blocking=True) - self.land_and_disarm() + if abs(m_r.distance - m_p.relative_alt/1000) > 1: + raise NotAchievedException( + "rangefinder/global position int mismatch %0.2f vs %0.2f" % + (m_r.distance, m_p.relative_alt/1000)) - if not self.current_onboard_log_contains_message("RFND"): - raise NotAchievedException("Did not see expected RFND message") + self.land_and_disarm() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.reboot_sitl() - if ex is not None: - raise ex + if not self.current_onboard_log_contains_message("RFND"): + raise NotAchievedException("Did not see expected RFND message") def SplineTerrain(self): '''Test Splines and Terrain''' diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 941ae2f76695b..b11920ead0361 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -86,86 +86,76 @@ def get_stick_arming_channel(self): def DriveSquare(self, side=50): """Learn/Drive Square with Ch7 option""" - self.context_push() - ex = None - try: - self.progress("TEST SQUARE") - self.set_parameters({ - "RC7_OPTION": 7, - "RC9_OPTION": 58, - }) + self.progress("TEST SQUARE") + self.set_parameters({ + "RC7_OPTION": 7, + "RC9_OPTION": 58, + }) - self.change_mode('MANUAL') + self.change_mode('MANUAL') - self.wait_ready_to_arm() - self.arm_vehicle() + self.wait_ready_to_arm() + self.arm_vehicle() - self.clear_wp(9) - - # first aim north - self.progress("\nTurn right towards north") - self.reach_heading_manual(10) - # save bottom left corner of box as home AND waypoint - self.progress("Save HOME") - self.save_wp() - - self.progress("Save WP") - self.save_wp() - - # pitch forward to fly north - self.progress("\nGoing north %u meters" % side) - self.reach_distance_manual(side) - # save top left corner of square as waypoint - self.progress("Save WP") - self.save_wp() - - # roll right to fly east - self.progress("\nGoing east %u meters" % side) - self.reach_heading_manual(100) - self.reach_distance_manual(side) - # save top right corner of square as waypoint - self.progress("Save WP") - self.save_wp() - - # pitch back to fly south - self.progress("\nGoing south %u meters" % side) - self.reach_heading_manual(190) - self.reach_distance_manual(side) - # save bottom right corner of square as waypoint - self.progress("Save WP") - self.save_wp() - - # roll left to fly west - self.progress("\nGoing west %u meters" % side) - self.reach_heading_manual(280) - self.reach_distance_manual(side) - # save bottom left corner of square (should be near home) as waypoint - self.progress("Save WP") - self.save_wp() - - self.progress("Checking number of saved waypoints") - mavproxy = self.start_mavproxy() - num_wp = self.save_mission_to_file_using_mavproxy( - mavproxy, - os.path.join(testdir, "ch7_mission.txt")) - self.stop_mavproxy(mavproxy) - expected = 7 # home + 6 toggled in - if num_wp != expected: - raise NotAchievedException("Did not get %u waypoints; got %u" % - (expected, num_wp)) + self.clear_wp(9) + + # first aim north + self.progress("\nTurn right towards north") + self.reach_heading_manual(10) + # save bottom left corner of box as home AND waypoint + self.progress("Save HOME") + self.save_wp() + + self.progress("Save WP") + self.save_wp() + + # pitch forward to fly north + self.progress("\nGoing north %u meters" % side) + self.reach_distance_manual(side) + # save top left corner of square as waypoint + self.progress("Save WP") + self.save_wp() + + # roll right to fly east + self.progress("\nGoing east %u meters" % side) + self.reach_heading_manual(100) + self.reach_distance_manual(side) + # save top right corner of square as waypoint + self.progress("Save WP") + self.save_wp() + + # pitch back to fly south + self.progress("\nGoing south %u meters" % side) + self.reach_heading_manual(190) + self.reach_distance_manual(side) + # save bottom right corner of square as waypoint + self.progress("Save WP") + self.save_wp() + + # roll left to fly west + self.progress("\nGoing west %u meters" % side) + self.reach_heading_manual(280) + self.reach_distance_manual(side) + # save bottom left corner of square (should be near home) as waypoint + self.progress("Save WP") + self.save_wp() + + self.progress("Checking number of saved waypoints") + mavproxy = self.start_mavproxy() + num_wp = self.save_mission_to_file_using_mavproxy( + mavproxy, + os.path.join(testdir, "ch7_mission.txt")) + self.stop_mavproxy(mavproxy) + expected = 7 # home + 6 toggled in + if num_wp != expected: + raise NotAchievedException("Did not get %u waypoints; got %u" % + (expected, num_wp)) - # TODO: actually drive the mission + # TODO: actually drive the mission - self.clear_wp(9) - except Exception as e: - self.print_exception_caught(e) - ex = e + self.clear_wp(9) self.disarm_vehicle() - self.context_pop() - - if ex: - raise ex def drive_left_circuit(self): """Drive a left circuit, 50m on a side.""" @@ -5592,65 +5582,55 @@ def send_obstacle_distances_expect_distance_sensor_messages(self, obstacle_dista def AP_Proximity_MAV(self): '''Test MAV proximity backend''' - self.context_push() - ex = None - try: - self.set_parameters({ - "PRX1_TYPE": 2, # AP_Proximity_MAV - "OA_TYPE": 2, # dijkstra - "OA_DB_OUTPUT": 3, # send all items - }) - self.reboot_sitl() - - # 1 laser pointing straight forward: - self.send_obstacle_distances_expect_distance_sensor_messages( - { - "distances": [234], - "increment_f": 10, - "angle_offset": 0.0, - "min_distance": 0, - "max_distance": 1000, # cm - }, [ - {"orientation": 0, "distance": 234}, - ]) - - # 5 lasers at front of vehicle, spread over 40 degrees: - self.send_obstacle_distances_expect_distance_sensor_messages( - { - "distances": [111, 222, 333, 444, 555], - "increment_f": 10, - "angle_offset": -20.0, - "min_distance": 0, - "max_distance": 1000, # cm - }, [ - {"orientation": 0, "distance": 111}, - ]) - - # lots of dense readings (e.g. vision camera: - distances = [0] * 72 - for i in range(0, 72): - distances[i] = 1000 + 10*abs(36-i) - - self.send_obstacle_distances_expect_distance_sensor_messages( - { - "distances": distances, - "increment_f": 90/72.0, - "angle_offset": -45.0, - "min_distance": 0, - "max_distance": 2000, # cm - }, [ - {"orientation": 0, "distance": 1000}, - {"orientation": 1, "distance": 1190}, - {"orientation": 7, "distance": 1190}, - ]) - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() + self.set_parameters({ + "PRX1_TYPE": 2, # AP_Proximity_MAV + "OA_TYPE": 2, # dijkstra + "OA_DB_OUTPUT": 3, # send all items + }) self.reboot_sitl() - if ex is not None: - raise ex + + # 1 laser pointing straight forward: + self.send_obstacle_distances_expect_distance_sensor_messages( + { + "distances": [234], + "increment_f": 10, + "angle_offset": 0.0, + "min_distance": 0, + "max_distance": 1000, # cm + }, [ + {"orientation": 0, "distance": 234}, + ]) + + # 5 lasers at front of vehicle, spread over 40 degrees: + self.send_obstacle_distances_expect_distance_sensor_messages( + { + "distances": [111, 222, 333, 444, 555], + "increment_f": 10, + "angle_offset": -20.0, + "min_distance": 0, + "max_distance": 1000, # cm + }, [ + {"orientation": 0, "distance": 111}, + ]) + + # lots of dense readings (e.g. vision camera: + distances = [0] * 72 + for i in range(0, 72): + distances[i] = 1000 + 10*abs(36-i) + + self.send_obstacle_distances_expect_distance_sensor_messages( + { + "distances": distances, + "increment_f": 90/72.0, + "angle_offset": -45.0, + "min_distance": 0, + "max_distance": 2000, # cm + }, [ + {"orientation": 0, "distance": 1000}, + {"orientation": 1, "distance": 1190}, + {"orientation": 7, "distance": 1190}, + ]) def SendToComponents(self): '''Test ArduPilot send_to_components function''' @@ -6295,8 +6275,6 @@ def StickMixingAuto(self): def AutoDock(self): '''Test automatic docking of rover for multiple FOVs of simulated beacon''' - self.context_push() - self.set_parameters({ "PLND_ENABLED": 1, "PLND_TYPE": 4, @@ -6322,40 +6300,27 @@ def AutoDock(self): }) for type in range(0, 3): # CYLINDRICAL FOV, CONICAL FOV, SPHERICAL FOV - ex = None - try: - self.set_parameter("SIM_PLD_TYPE", type) - self.reboot_sitl() - self.change_mode('GUIDED') - self.wait_ready_to_arm() - self.arm_vehicle() - initial_position = self.offset_location_ne(target, -20, -2) - self.drive_to_location(initial_position) - self.change_mode(8) # DOCK mode - max_delta = 1 - self.wait_distance_to_location(target, 0, max_delta, timeout=180) - self.disarm_vehicle() - self.assert_receive_message('GLOBAL_POSITION_INT') - new_pos = self.mav.location() - delta = abs(self.get_distance(target, new_pos) - stopping_dist) - self.progress("Docked %f metres from stopping point" % delta) - if delta > max_delta: - raise NotAchievedException("Did not dock close enough to stopping point (%fm > %fm" % (delta, max_delta)) - - if not self.current_onboard_log_contains_message("PL"): - raise NotAchievedException("Did not see expected PL message") - - except Exception as e: - self.print_exception_caught(e) - ex = e - break - - self.context_pop() + self.set_parameter("SIM_PLD_TYPE", type) + self.reboot_sitl() + self.change_mode('GUIDED') + self.wait_ready_to_arm() + self.arm_vehicle() + initial_position = self.offset_location_ne(target, -20, -2) + self.drive_to_location(initial_position) + self.change_mode(8) # DOCK mode + max_delta = 1 + self.wait_distance_to_location(target, 0, max_delta, timeout=180) + self.disarm_vehicle() + self.assert_receive_message('GLOBAL_POSITION_INT') + new_pos = self.mav.location() + delta = abs(self.get_distance(target, new_pos) - stopping_dist) + self.progress("Docked %f metres from stopping point" % delta) + if delta > max_delta: + raise NotAchievedException("Did not dock close enough to stopping point (%fm > %fm" % (delta, max_delta)) - if ex is not None: - raise ex + if not self.current_onboard_log_contains_message("PL"): + raise NotAchievedException("Did not see expected PL message") - self.reboot_sitl() self.progress("All done") def PrivateChannel(self): From e170710de9ba36ff5341070a7bc7c724d4b59823 Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Thu, 18 Jul 2024 09:54:02 +0200 Subject: [PATCH 140/232] SITL: Glider improvements Fixed balloon going below ground. Enabled glider torque logging. --- libraries/SITL/SIM_Aircraft.cpp | 2 +- libraries/SITL/SIM_Glider.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/SITL/SIM_Aircraft.cpp b/libraries/SITL/SIM_Aircraft.cpp index a6baf91eb9da2..3e519576e4317 100644 --- a/libraries/SITL/SIM_Aircraft.cpp +++ b/libraries/SITL/SIM_Aircraft.cpp @@ -181,7 +181,7 @@ void Aircraft::update_position(void) uint32_t now = AP_HAL::millis(); if (now - last_one_hz_ms >= 1000) { // shift origin of position at 1Hz to current location - // this prevents sperical errors building up in the GPS data + // this prevents spherical errors building up in the GPS data last_one_hz_ms = now; Vector2d diffNE = origin.get_distance_NE_double(location); position.xy() -= diffNE; diff --git a/libraries/SITL/SIM_Glider.cpp b/libraries/SITL/SIM_Glider.cpp index c86535b83cc5d..a1334aac6168c 100644 --- a/libraries/SITL/SIM_Glider.cpp +++ b/libraries/SITL/SIM_Glider.cpp @@ -231,7 +231,7 @@ void Glider::calculate_forces(const struct sitl_input &input, Vector3f &rot_acce float aileron = 0.5*(filtered_servo_angle(input, 1) + filtered_servo_angle(input, 4)); float elevator = filtered_servo_angle(input, 2); float rudder = filtered_servo_angle(input, 3); - float balloon = filtered_servo_range(input, 5); + float balloon = MAX(0.0f, filtered_servo_range(input, 5)); // Don't let the balloon receive downwards commands. float balloon_cut = filtered_servo_range(input, 9); // Move balloon upwards using balloon velocity from channel 6 @@ -241,7 +241,7 @@ void Glider::calculate_forces(const struct sitl_input &input, Vector3f &rot_acce balloon_velocity = Vector3f(-wind_ef.x, -wind_ef.y, -wind_ef.z -balloon_rate * balloon); balloon_position += balloon_velocity * (1.0e-6 * (float)frame_time_us); const float height_AMSL = 0.01f * (float)home.alt - position.z; - // release at burst height or when channel 9 goes high + // release at burst height or when balloon cut output goes high if (hal.scheduler->is_system_initialized() && (height_AMSL > balloon_burst_amsl || balloon_cut > 0.8)) { GCS_SEND_TEXT(MAV_SEVERITY_INFO, "pre-release at %i m AMSL\n", (int)height_AMSL); @@ -380,7 +380,7 @@ bool Glider::update_balloon(float balloon, Vector3f &force, Vector3f &rot_accel) // NED unit vector pointing from tether attachment on plane to attachment on balloon Vector3f tether_unit_vec_ef = relative_position.normalized(); - // NED velocity of attahment point on plane + // NED velocity of attachment point on plane Vector3f attachment_velocity_ef = velocity_ef + dcm * (gyro % tether_pos_bf); // NED velocity of attachment point on balloon as seen by observer on attachemnt point on plane From cb044d4718491c4c57ecb23e989fd9f3b41475af Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Thu, 18 Jul 2024 11:53:13 +0200 Subject: [PATCH 141/232] Tools: Optionally include AP_SIM_GLIDER_ENABLED on SIH --- Tools/scripts/sitl-on-hardware/sitl-on-hw.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/scripts/sitl-on-hardware/sitl-on-hw.py b/Tools/scripts/sitl-on-hardware/sitl-on-hw.py index 291005a7a7373..16707043a929d 100755 --- a/Tools/scripts/sitl-on-hardware/sitl-on-hw.py +++ b/Tools/scripts/sitl-on-hardware/sitl-on-hw.py @@ -66,6 +66,8 @@ def sohw_path(fname): defaults_write(open(args.defaults,"r").read() + "\n") if args.simclass: + if args.simclass == 'Glider': + hwdef_write("define AP_SIM_GLIDER_ENABLED 1\n") hwdef_write("define AP_SIM_FRAME_CLASS %s\n" % args.simclass) if args.frame: hwdef_write('define AP_SIM_FRAME_STRING "%s"\n' % args.frame) From 5c2b758f4288cc924d54ca350c74c88a5e9fba10 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Mon, 8 Jul 2024 19:50:02 +0900 Subject: [PATCH 142/232] SITL: add SlungPayload --- libraries/SITL/SIM_SlungPayload.cpp | 458 ++++++++++++++++++++++++++++ libraries/SITL/SIM_SlungPayload.h | 102 +++++++ 2 files changed, 560 insertions(+) create mode 100644 libraries/SITL/SIM_SlungPayload.cpp create mode 100644 libraries/SITL/SIM_SlungPayload.h diff --git a/libraries/SITL/SIM_SlungPayload.cpp b/libraries/SITL/SIM_SlungPayload.cpp new file mode 100644 index 0000000000000..03b5363300d7c --- /dev/null +++ b/libraries/SITL/SIM_SlungPayload.cpp @@ -0,0 +1,458 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +/* + simulate a slung payload +*/ + +#include "SIM_config.h" + +#if AP_SIM_SLUNGPAYLOAD_ENABLED + +#include "SIM_SlungPayload.h" +#include "SITL.h" +#include +#include "SIM_Aircraft.h" +#include +#include +#include + +using namespace SITL; + +// SlungPayloadSim parameters +const AP_Param::GroupInfo SlungPayloadSim::var_info[] = { + // @Param: ENABLE + // @DisplayName: Slung Payload Sim enable/disable + // @Description: Slung Payload Sim enable/disable + // @Values: 0:Disabled,1:Enabled + // @User: Advanced + AP_GROUPINFO_FLAGS("ENABLE", 1, SlungPayloadSim, enable, 0, AP_PARAM_FLAG_ENABLE), + + // @Param: WEIGHT + // @DisplayName: Slung Payload weight + // @Description: Slung Payload weight in kg + // @Units: kg + // @Range: 0 15 + // @User: Advanced + AP_GROUPINFO("WEIGHT", 2, SlungPayloadSim, weight_kg, 1.0), + + // @Param: LINELEN + // @DisplayName: Slung Payload line length + // @Description: Slung Payload line length in meters + // @Units: m + // @Range: 0 100 + // @User: Advanced + AP_GROUPINFO("LINELEN", 3, SlungPayloadSim, line_length, 30.0), + + // @Param: DRAG + // @DisplayName: Slung Payload drag coefficient + // @Description: Slung Payload drag coefficient. Higher values increase drag and slow the payload more quickly + // @Units: m + // @Range: 0 10 + // @User: Advanced + AP_GROUPINFO("DRAG", 4, SlungPayloadSim, drag_coef, 1), + + // @Param: SYSID + // @DisplayName: Slung Payload MAVLink system ID + // @Description: Slung Payload MAVLink system id to distinguish it from others on the same network + // @Range: 0 255 + // @User: Advanced + AP_GROUPINFO("SYSID", 5, SlungPayloadSim, sys_id, 2), + + AP_GROUPEND +}; + +// SlungPayloadSim handles interaction with main vehicle +SlungPayloadSim::SlungPayloadSim() +{ + AP_Param::setup_object_defaults(this, var_info); +} + +// update the SlungPayloadSim's state using the vehicle's earth-frame position, velocity and acceleration +void SlungPayloadSim::update(const Vector3p& veh_pos, const Vector3f& veh_vel_ef, const Vector3f& veh_accel_ef) +{ + if (!enable) { + return; + } + + // initialise slung payload location + const uint32_t now_us = AP_HAL::micros(); + if (!initialised) { + // capture EKF origin + auto *sitl = AP::sitl(); + const Location ekf_origin = sitl->state.home; + if (ekf_origin.lat == 0 && ekf_origin.lng == 0) { + return; + } + + // more initialisation + last_update_us = now_us; + initialised = true; + } + + // calculate dt and update slung payload + const float dt = (now_us - last_update_us)*1.0e-6; + last_update_us = now_us; + update_payload(veh_pos, veh_vel_ef, veh_accel_ef, dt); + + // send payload location to GCS at 5hz + const uint32_t now_ms = AP_HAL::millis(); + if (now_ms - last_report_ms >= reporting_period_ms) { + last_report_ms = now_ms; + send_report(); + write_log(); + } +} + +// get earth-frame forces on the vehicle from slung payload +// returns true on success and fills in forces_ef argument, false on failure +bool SlungPayloadSim::get_forces_on_vehicle(Vector3f& forces_ef) const +{ + if (!enable) { + return false; + } + + forces_ef = veh_forces_ef; + return true; +} + +// send a report to the vehicle control code over MAVLink +void SlungPayloadSim::send_report(void) +{ + if (!mavlink_connected && mav_socket.connect(target_address, target_port)) { + ::printf("SlungPayloadSim connected to %s:%u\n", target_address, (unsigned)target_port); + mavlink_connected = true; + } + if (!mavlink_connected) { + return; + } + + // get current time + uint32_t now_ms = AP_HAL::millis(); + + // send heartbeat at 1hz + const uint8_t component_id = MAV_COMP_ID_USER11; + if (now_ms - last_heartbeat_ms >= 1000) { + last_heartbeat_ms = now_ms; + + const mavlink_heartbeat_t heartbeat{ + custom_mode: 0, + type : MAV_TYPE_AIRSHIP, + autopilot : MAV_AUTOPILOT_INVALID, + base_mode: 0, + system_status: 0, + mavlink_version: 0, + }; + + mavlink_message_t msg; + mavlink_msg_heartbeat_encode_status( + sys_id.get(), + component_id, + &mav_status, + &msg, + &heartbeat); + uint8_t buf[300]; + const uint16_t len = mavlink_msg_to_send_buffer(buf, &msg); + mav_socket.send(buf, len); + } + + // send a GLOBAL_POSITION_INT messages + { + Location payload_loc; + int32_t alt_amsl_cm, alt_rel_cm; + if (!get_payload_location(payload_loc) || + !payload_loc.get_alt_cm(Location::AltFrame::ABSOLUTE, alt_amsl_cm) || + !payload_loc.get_alt_cm(Location::AltFrame::ABOVE_HOME, alt_rel_cm)) { + return; + } + const mavlink_global_position_int_t global_position_int{ + time_boot_ms: now_ms, + lat: payload_loc.lat, + lon: payload_loc.lng, + alt: alt_amsl_cm * 10, // amsl alt in mm + relative_alt: alt_rel_cm * 10, // relative alt in mm + vx: int16_t(velocity_NED.x * 100), // velocity in cm/s + vy: int16_t(velocity_NED.y * 100), // velocity in cm/s + vz: int16_t(velocity_NED.z * 100), // velocity in cm/s + hdg: 0 // heading in centi-degrees + }; + mavlink_message_t msg; + mavlink_msg_global_position_int_encode_status(sys_id, component_id, &mav_status, &msg, &global_position_int); + uint8_t buf[300]; + const uint16_t len = mavlink_msg_to_send_buffer(buf, &msg); + if (len > 0) { + mav_socket.send(buf, len); + } + } + + // send ATTITUDE so MissionPlanner can display orientation + { + const mavlink_attitude_t attitude{ + time_boot_ms: now_ms, + roll: 0, + pitch: 0, + yaw: 0, // heading in radians + rollspeed: 0, + pitchspeed: 0, + yawspeed: 0 + }; + mavlink_message_t msg; + mavlink_msg_attitude_encode_status( + sys_id, + component_id, + &mav_status, + &msg, + &attitude); + uint8_t buf[300]; + const uint16_t len = mavlink_msg_to_send_buffer(buf, &msg); + if (len > 0) { + mav_socket.send(buf, len); + } + } +} + +// write onboard log +void SlungPayloadSim::write_log() +{ +#if HAL_LOGGING_ENABLED + // write log of slung payload state + // @LoggerMessage: SLUP + // @Description: Slung payload + // @Field: TimeUS: Time since system startup + // @Field: Land: 1 if payload is landed, 0 otherwise + // @Field: Tens: Tension ratio, 1 if line is taut, 0 if slack + // @Field: Len: Line length + // @Field: PN: Payload position as offset from vehicle in North direction + // @Field: PE: Payload position as offset from vehicle in East direction + // @Field: PD: Payload position as offset from vehicle in Down direction + // @Field: VN: Payload velocity in North direction + // @Field: VE: Payload velocity in East direction + // @Field: VD: Payload velocity in Down direction + // @Field: AN: Payload acceleration in North direction + // @Field: AE: Payload acceleration in East direction + // @Field: AD: Payload acceleration in Down direction + // @Field: VFN: Force on vehicle in North direction + // @Field: VFE: Force on vehicle in East direction + // @Field: VFD: Force on vehicle in Down direction + AP::logger().WriteStreaming("SLUP", + "TimeUS,Land,Tens,Len,PN,PE,PD,VN,VE,VD,AN,AE,AD,VFN,VFE,VFD", // labels + "s-%mmmmnnnooo---", // units + "F-20000000000000", // multipliers + "Qbffffffffffffff", // format + AP_HAL::micros64(), + (uint8_t)landed, + (float)tension_ratio, + (float)payload_to_veh.length(), + (double)-payload_to_veh.x, + (double)-payload_to_veh.y, + (double)-payload_to_veh.z, + (double)velocity_NED.x, + (double)velocity_NED.y, + (double)velocity_NED.z, + (double)accel_NED.x, + (double)accel_NED.y, + (double)accel_NED.z, + (double)veh_forces_ef.x, + (double)veh_forces_ef.y, + (double)veh_forces_ef.z); +#endif +} + +// returns true on success and fills in payload_loc argument, false on failure +bool SlungPayloadSim::get_payload_location(Location& payload_loc) const +{ + // get EKF origin + auto *sitl = AP::sitl(); + if (sitl == nullptr) { + return false; + } + const Location ekf_origin = sitl->state.home; + if (ekf_origin.lat == 0 && ekf_origin.lng == 0) { + return false; + } + + // calculate location + payload_loc = ekf_origin; + payload_loc.offset(position_NED); + return true; +} + +// update the slung payloads position, velocity, acceleration +// vehicle position, velocity and acceleration should be in earth-frame NED frame +void SlungPayloadSim::update_payload(const Vector3p& veh_pos, const Vector3f& veh_vel_ef, const Vector3f& veh_accel_ef, float dt) +{ + // how we calculate the payload's position, velocity and acceleration + // 1. update the payload's position, velocity using the previous iterations acceleration + // 2. check that the payload does not fall below the terrain + // 3. check if the line is taught and that the payload does not move more than the line length from the vehicle + // 4. calculate gravity and drag forces on the payload + // 5. calculate the tension force between the payload and vehicle including force countering gravity, drag and centripetal force + // 6. update the payload's acceleration using the sum of the above forces + + // initialise position_NED from vehicle position + if (position_NED.is_zero()) { + if (!veh_pos.is_zero()) { + position_NED = veh_pos; + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "SlungPayload: initialised at %f %f %f", position_NED.x, position_NED.y, position_NED.z); + } + return; + } + + // integrate previous iterations acceleration into velocity and position + velocity_NED += accel_NED * dt; + position_NED += (velocity_NED * dt).todouble(); + + // calculate distance from payload to vehicle + payload_to_veh = veh_pos - position_NED; + float payload_to_veh_length = payload_to_veh.length(); + + // update landed state by checking if payload has dropped below terrain + Location payload_loc; + if (get_payload_location(payload_loc)) { + int32_t alt_terrain_cm; + bool landed_orig = landed; + if (payload_loc.get_alt_cm(Location::AltFrame::ABOVE_TERRAIN, alt_terrain_cm)) { + + // landed if below terrain + if (alt_terrain_cm <= 0) { + landed = true; + + // raise payload to match terrain + position_NED.z += (alt_terrain_cm * 0.01); + + // zero out velocity and acceleration in horizontal and downward direction + velocity_NED.xy().zero(); + velocity_NED.z = MIN(velocity_NED.z, 0); + accel_NED.xy().zero(); + accel_NED.z = MIN(accel_NED.z, 0); + + // zero out forces on vehicle + veh_forces_ef.zero(); + } + + // not landed if above terrain + if (landed && (alt_terrain_cm > 1)) { + landed = false; + } + } + + // inform user if landed state has changed + if (landed != landed_orig) { + if (landed) { + // get payload location again in case it has moved + get_payload_location(payload_loc); + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "SlungPayload: landed lat:%f lon:%f alt:%4.1f", + (double)payload_loc.lat * 1e-7, + (double)payload_loc.lng * 1e-7, + (double)payload_loc.alt * 1e-2); + } else { + GCS_SEND_TEXT(MAV_SEVERITY_INFO, "SlungPayload: liftoff"); + } + } + } + + // calculate forces of gravity + Vector3f force_gravity_NED = Vector3f(0.0f, 0.0f, GRAVITY_MSS * weight_kg); + + // tension force on payload (resists gravity, drag, centripetal force) + Vector3f tension_force_NED; + + // tension ratio to smooth transition from line being taut to slack + tension_ratio = 0; + + // calculate drag force (0.5 * drag_coef * air_density * velocity^2 * surface area) + Vector3f force_drag_NED; + if (drag_coef > 0 && !velocity_NED.is_zero()) { + const float air_density = 1.225; // 1.225 kg/m^3 (standard sea-level density) + const float surface_area_m2 = 0.07; // 30cm diameter sphere + const float drag_force = 0.5 * drag_coef * air_density * velocity_NED.length_squared() * surface_area_m2; + force_drag_NED = -velocity_NED.normalized() * drag_force; + } + + // sanity check payload distance from vehicle and calculate tension force + if (is_positive(payload_to_veh_length)) { + + // calculate unit vector from payload to vehicle + const Vector3f payload_to_veh_norm = payload_to_veh.normalized().tofloat(); + + // ensure payload is no more than line_length from vehicle + if (payload_to_veh_length > line_length) { + payload_to_veh *= (line_length / payload_to_veh_length); + position_NED = veh_pos - payload_to_veh; + } + + // calculate tension ratio as value between 0 and 1 + // tension ratio is 0 when payload-to-vehicle distance is 10cm less than line length + // tension ratio is 1 when payload-to-vehicle distance is equal to line length + tension_ratio = constrain_float(1.0 - (line_length - payload_to_veh_length) * 10, 0, 1); + + // calculate tension forces when line is taut + if (is_positive(tension_ratio)) { + + // tension resists gravity if vehicle is above payload + if (is_negative(payload_to_veh_norm.z)) { + tension_force_NED += -force_gravity_NED.projected(payload_to_veh_norm); + } + + // calculate tension force resulting from velocity difference between vehicle and payload + // use time constant to convert velocity to acceleration + const float velocity_to_accel_TC = 2.0; + Vector3f velocity_diff_NED = (veh_vel_ef - velocity_NED).projected(payload_to_veh_norm); + + // add to tension force if the vehicle is moving faster than the payload + if (vectors_same_direction(velocity_diff_NED, payload_to_veh_norm)) { + tension_force_NED += velocity_diff_NED / velocity_to_accel_TC * weight_kg; + } + + // tension force resisting payload drag + tension_force_NED += -force_drag_NED.projected(payload_to_veh_norm); + + // calculate centripetal force + const Vector3f velocity_parallel = velocity_NED.projected(payload_to_veh_norm); + const Vector3f velocity_perpendicular = velocity_NED - velocity_parallel; + const float tension_force_centripetal = velocity_perpendicular.length_squared() * weight_kg / line_length; + const Vector3f tension_force_centripetal_NED = payload_to_veh_norm * tension_force_centripetal; + + // add centripetal force to tension force + tension_force_NED += tension_force_centripetal_NED; + + // scale tension force by tension ratio + tension_force_NED *= tension_ratio; + } + } + + // force on vehicle is opposite to tension force on payload + veh_forces_ef = -tension_force_NED; + + // convert force to acceleration (f=m*a => a=f/m) + accel_NED = (force_gravity_NED + force_drag_NED + tension_force_NED) / weight_kg; + + // if slung payload is landed we zero out downward (e.g positive) acceleration + if (landed) { + accel_NED.z = MIN(accel_NED.z, 0); + // should probably zero out forces_ef vertical component as well? + } +} + +// returns true if the two vectors point in the same direction, false if perpendicular or opposite +bool SlungPayloadSim::vectors_same_direction(const Vector3f& v1, const Vector3f& v2) const +{ + // check both vectors are non-zero + if (v1.is_zero() || v2.is_zero()) { + return false; + } + return v1.dot(v2) > 0; +} + +#endif diff --git a/libraries/SITL/SIM_SlungPayload.h b/libraries/SITL/SIM_SlungPayload.h new file mode 100644 index 0000000000000..3f668af547294 --- /dev/null +++ b/libraries/SITL/SIM_SlungPayload.h @@ -0,0 +1,102 @@ +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +/* + simulate a payload slung from a line under a vehicle +*/ + +#pragma once + +#include "SIM_config.h" + +#if AP_SIM_SLUNGPAYLOAD_ENABLED + +#include +#include +#include +#include + +namespace SITL { + +// SlungPayloadSim handles interaction with main vehicle +class SlungPayloadSim { +public: + friend class SlungPayload; + + // constructor + SlungPayloadSim(); + + // update the SlungPayloadSim's state using thevehicle's earth-frame position, velocity and acceleration + void update(const Vector3p& veh_pos, const Vector3f& veh_vel_ef, const Vector3f& veh_accel_ef); + + // get earth-frame forces on the vehicle from slung payload + // returns true on success and fills in forces_ef argument, false on failure + bool get_forces_on_vehicle(Vector3f& forces_ef) const; + + // parameter table + static const struct AP_Param::GroupInfo var_info[]; + +private: + + // parameters + AP_Int8 enable; // enable parameter + AP_Float weight_kg; // payload weight in kg + AP_Float line_length; // line length in meters + AP_Int8 sys_id; // mavlink system id for reporting to GCS + AP_Float drag_coef; // drag coefficient (spheres=0.5, cubes=1.05, barrels=0.8~1.2) + + // send MAVLink messages to GCS + void send_report(); + + // write onboard log + void write_log(); + + // get payload location + // returns true on success and fills in payload_loc argument, false on failure + bool get_payload_location(Location& payload_loc) const; + + // update the slung payload's position, velocity, acceleration + // vehicle position, velocity and acceleration should be in earth-frame NED frame + void update_payload(const Vector3p& veh_pos, const Vector3f& veh_vel_ef, const Vector3f& veh_accel_ef, float dt); + + // returns true if the two vectors point in the same direction, false if perpendicular or opposite + bool vectors_same_direction(const Vector3f& v1, const Vector3f& v2) const; + + // socket connection variables + const char *target_address = "127.0.0.1"; + const uint16_t target_port = 5763; + SocketAPM_native mav_socket { false }; + bool initialised; // true if this class has been initialised + uint32_t last_update_us; // system time of last update + + // mavlink reporting variables + const float reporting_period_ms = 200; // reporting period in ms + uint32_t last_report_ms; // system time of last MAVLink report sent to GCS + uint32_t last_heartbeat_ms; // system time of last MAVLink heartbeat sent to GCS + bool mavlink_connected; // true if a mavlink connection has been established + mavlink_status_t mav_status; // reported mavlink status + + // payload variables + bool landed = true; // true if the payload is on the ground + float tension_ratio; // 0 if line is loose, 1 if completely taut + Vector3p payload_to_veh;// distance vector (in meters in NED frame) from payload to vehicle (used for reporting purposes) + Vector3p position_NED; // payload's position (as an offset from EKF origin? offset from vehicle?) in meters + Vector3f velocity_NED; // payload velocity + Vector3f accel_NED; // payload's acceleration + Vector3f veh_forces_ef; // earth-frame forces on the vehicle caused by the payload +}; + +} // namespace SITL + +#endif // AP_SIM_SLUNGPAYLOAD_ENABLED From a1579bc31e9a50a4b427e7b18791808cb650cbbd Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Fri, 12 Jul 2024 15:18:16 +0900 Subject: [PATCH 143/232] SITL: integrate SlungPayload --- libraries/SITL/SIM_Aircraft.cpp | 18 ++++++++++++++++++ libraries/SITL/SIM_Aircraft.h | 5 +++++ libraries/SITL/SIM_Multicopter.cpp | 5 +++++ libraries/SITL/SIM_config.h | 4 ++++ libraries/SITL/SITL.cpp | 6 ++++++ libraries/SITL/SITL.h | 4 ++++ 6 files changed, 42 insertions(+) diff --git a/libraries/SITL/SIM_Aircraft.cpp b/libraries/SITL/SIM_Aircraft.cpp index 3e519576e4317..9ca985a14591a 100644 --- a/libraries/SITL/SIM_Aircraft.cpp +++ b/libraries/SITL/SIM_Aircraft.cpp @@ -796,6 +796,11 @@ void Aircraft::update_dynamics(const Vector3f &rot_accel) } } + // update slung payload +#if AP_SIM_SLUNGPAYLOAD_ENABLED + sitl->models.slung_payload_sim.update(get_position_relhome(), velocity_ef, accel_earth); +#endif + // allow for changes in physics step adjust_frame_time(constrain_float(sitl->loop_rate_hz, rate_hz-1, rate_hz+1)); } @@ -1227,6 +1232,19 @@ void Aircraft::add_twist_forces(Vector3f &rot_accel) } } +#if AP_SIM_SLUNGPAYLOAD_ENABLED +// add body-frame force due to slung payload +void Aircraft::add_slungpayload_forces(Vector3f &body_accel) +{ + Vector3f forces_ef; + sitl->models.slung_payload_sim.get_forces_on_vehicle(forces_ef); + + // convert ef forces to body-frame accelerations (acceleration = force / mass) + const Vector3f accel_bf = dcm.transposed() * forces_ef / mass; + body_accel += accel_bf; +} +#endif + /* get position relative to home */ diff --git a/libraries/SITL/SIM_Aircraft.h b/libraries/SITL/SIM_Aircraft.h index 90f07089ea60b..e84a078ac8faf 100644 --- a/libraries/SITL/SIM_Aircraft.h +++ b/libraries/SITL/SIM_Aircraft.h @@ -322,6 +322,11 @@ class Aircraft { void add_shove_forces(Vector3f &rot_accel, Vector3f &body_accel); void add_twist_forces(Vector3f &rot_accel); +#if AP_SIM_SLUNGPAYLOAD_ENABLED + // add body-frame force due to slung payload + void add_slungpayload_forces(Vector3f &body_accel); +#endif + // get local thermal updraft float get_local_updraft(const Vector3d ¤tPos); diff --git a/libraries/SITL/SIM_Multicopter.cpp b/libraries/SITL/SIM_Multicopter.cpp index a866762593e05..4e019dde9b4de 100644 --- a/libraries/SITL/SIM_Multicopter.cpp +++ b/libraries/SITL/SIM_Multicopter.cpp @@ -48,6 +48,11 @@ void MultiCopter::calculate_forces(const struct sitl_input &input, Vector3f &rot add_shove_forces(rot_accel, body_accel); add_twist_forces(rot_accel); + +#if AP_SIM_SLUNGPAYLOAD_ENABLED + // add forces from slung payload + add_slungpayload_forces(body_accel); +#endif } /* diff --git a/libraries/SITL/SIM_config.h b/libraries/SITL/SIM_config.h index c83e83d44767d..8ec2d7ff42c48 100644 --- a/libraries/SITL/SIM_config.h +++ b/libraries/SITL/SIM_config.h @@ -51,6 +51,10 @@ #define AP_SIM_SHIP_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) #endif +#ifndef AP_SIM_SLUNGPAYLOAD_ENABLED +#define AP_SIM_SLUNGPAYLOAD_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) +#endif + #ifndef AP_SIM_TSYS03_ENABLED #define AP_SIM_TSYS03_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) #endif diff --git a/libraries/SITL/SITL.cpp b/libraries/SITL/SITL.cpp index a21e744c349b5..681d5d3dbf440 100644 --- a/libraries/SITL/SITL.cpp +++ b/libraries/SITL/SITL.cpp @@ -1249,6 +1249,12 @@ const AP_Param::GroupInfo SIM::ModelParm::var_info[] = { AP_SUBGROUPPTR(glider_ptr, "GLD_", 3, SIM::ModelParm, Glider), #endif +#if AP_SIM_SLUNGPAYLOAD_ENABLED + // @Group: SLUP_ + // @Path: ./SIM_SlungPayload.cpp + AP_SUBGROUPINFO(slung_payload_sim, "SLUP_", 4, SIM::ModelParm, SlungPayloadSim), +#endif + AP_GROUPEND }; diff --git a/libraries/SITL/SITL.h b/libraries/SITL/SITL.h index 3b197fe8469e5..d3ad9ebbd962a 100644 --- a/libraries/SITL/SITL.h +++ b/libraries/SITL/SITL.h @@ -27,6 +27,7 @@ #include "SIM_FETtecOneWireESC.h" #include "SIM_IntelligentEnergy24.h" #include "SIM_Ship.h" +#include "SIM_SlungPayload.h" #include "SIM_GPS.h" #include "SIM_DroneCANDevice.h" #include "SIM_ADSB_Sagetech_MXS.h" @@ -322,6 +323,9 @@ class SIM { #endif #if AP_SIM_GLIDER_ENABLED Glider *glider_ptr; +#endif +#if AP_SIM_SLUNGPAYLOAD_ENABLED + SlungPayloadSim slung_payload_sim; #endif }; ModelParm models; From 76abc6850f55adad9118976fdc38e8cfd35a4279 Mon Sep 17 00:00:00 2001 From: Henry Wurzburg Date: Thu, 11 Jul 2024 15:49:36 -0500 Subject: [PATCH 144/232] Filter: add "source" to option 5 --- libraries/Filter/HarmonicNotchFilter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Filter/HarmonicNotchFilter.cpp b/libraries/Filter/HarmonicNotchFilter.cpp index 835e53192abfd..ea42cf249e14f 100644 --- a/libraries/Filter/HarmonicNotchFilter.cpp +++ b/libraries/Filter/HarmonicNotchFilter.cpp @@ -125,7 +125,7 @@ const AP_Param::GroupInfo HarmonicNotchFilterParams::var_info[] = { // @Param: OPTS // @DisplayName: Harmonic Notch Filter options // @Description: Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect. - // @Bitmask: 0:Double notch,1:Multi-Source,2:Update at loop rate,3:EnableOnAllIMUs,4:Triple notch, 5:Use min freq on RPM failure + // @Bitmask: 0:Double notch,1:Multi-Source,2:Update at loop rate,3:EnableOnAllIMUs,4:Triple notch, 5:Use min freq on RPM source failure // @User: Advanced // @RebootRequired: True AP_GROUPINFO("OPTS", 8, HarmonicNotchFilterParams, _options, 0), From 1b77751aefab6c41fee364dcbc452ed792e6231b Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Tue, 23 Jul 2024 21:42:25 +0900 Subject: [PATCH 145/232] AP_SmartRTL: add point made public --- libraries/AP_SmartRTL/AP_SmartRTL.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/AP_SmartRTL/AP_SmartRTL.h b/libraries/AP_SmartRTL/AP_SmartRTL.h index 0d83372cf3f88..d2c5b439e04c9 100644 --- a/libraries/AP_SmartRTL/AP_SmartRTL.h +++ b/libraries/AP_SmartRTL/AP_SmartRTL.h @@ -41,6 +41,9 @@ class AP_SmartRTL { // get a point on the path const Vector3f& get_point(uint16_t index) const { return _path[index]; } + // add point to end of path. returns true on success, false on failure (due to failure to take the semaphore) + bool add_point(const Vector3f& point); + // get next point on the path to home, returns true on success bool pop_point(Vector3f& point); @@ -109,9 +112,6 @@ class AP_SmartRTL { IgnorePilotYaw = (1U << 2), }; - // add point to end of path - bool add_point(const Vector3f& point); - // routine cleanup attempts to remove 10 points (see SMARTRTL_CLEANUP_POINT_MIN definition) by simplification or loop pruning void routine_cleanup(uint16_t path_points_count, uint16_t path_points_complete_limit); From efc7a9071ab2eb6f8ecb234fe86936af634fabc3 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Tue, 23 Jul 2024 21:43:59 +0900 Subject: [PATCH 146/232] Copter: SmartRTL mode restores point if interrupted --- ArduCopter/mode.h | 4 ++++ ArduCopter/mode_smart_rtl.cpp | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ArduCopter/mode.h b/ArduCopter/mode.h index 721cef3f0ad21..25b1b0702770a 100644 --- a/ArduCopter/mode.h +++ b/ArduCopter/mode.h @@ -1541,6 +1541,10 @@ class ModeSmartRTL : public ModeRTL { // point while following our path home. If we take too long we // may choose to land the vehicle. uint32_t path_follow_last_pop_fail_ms; + + // backup last popped point so that it can be restored to the path + // if vehicle exits SmartRTL mode before reaching home. invalid if zero + Vector3f dest_NED_backup; }; diff --git a/ArduCopter/mode_smart_rtl.cpp b/ArduCopter/mode_smart_rtl.cpp index dacd7cc5f29ab..8c2b1988c3089 100644 --- a/ArduCopter/mode_smart_rtl.cpp +++ b/ArduCopter/mode_smart_rtl.cpp @@ -35,6 +35,14 @@ bool ModeSmartRTL::init(bool ignore_checks) // perform cleanup required when leaving smart_rtl void ModeSmartRTL::exit() { + // restore last point if we hadn't reached it + if (smart_rtl_state == SubMode::PATH_FOLLOW && !dest_NED_backup.is_zero()) { + if (!g2.smart_rtl.add_point(dest_NED_backup)) { + GCS_SEND_TEXT(MAV_SEVERITY_ERROR, "SmartRTL: lost one point"); + } + } + dest_NED_backup.zero(); + g2.smart_rtl.cancel_request_for_thorough_cleanup(); } @@ -83,10 +91,16 @@ void ModeSmartRTL::path_follow_run() { // if we are close to current target point, switch the next point to be our target. if (wp_nav->reached_wp_destination()) { - Vector3f dest_NED; + + // clear destination backup so that it cannot be restored + dest_NED_backup.zero(); + // this pop_point can fail if the IO task currently has the // path semaphore. + Vector3f dest_NED; if (g2.smart_rtl.pop_point(dest_NED)) { + // backup destination in case we exit smart_rtl mode and need to restore it to the path + dest_NED_backup = dest_NED; path_follow_last_pop_fail_ms = 0; if (g2.smart_rtl.get_num_points() == 0) { // this is the very last point, add 2m to the target alt and move to pre-land state From cfd1e98333bbf6bdacd8edb16a57824044666968 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Tue, 23 Jul 2024 16:51:42 +0900 Subject: [PATCH 147/232] AP_Mount: topotek safely parses version --- libraries/AP_Mount/AP_Mount_Topotek.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/AP_Mount/AP_Mount_Topotek.cpp b/libraries/AP_Mount/AP_Mount_Topotek.cpp index 9487e202af65f..3aa8f43c05ca6 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.cpp +++ b/libraries/AP_Mount/AP_Mount_Topotek.cpp @@ -1076,6 +1076,9 @@ void AP_Mount_Topotek::gimbal_version_analyse() version[ver_count++] = ver_num; ver_num = 0; } + if (ver_count >= ARRAY_SIZE(version)) { + break; + } } } else { if (data_buf_len >= 1) { From 2b64787099e2ef869969aee69a0a49469797c76c Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Tue, 23 Jul 2024 16:52:33 +0900 Subject: [PATCH 148/232] AP_Mount: topotek spelling fix --- libraries/AP_Mount/AP_Mount_Topotek.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_Topotek.cpp b/libraries/AP_Mount/AP_Mount_Topotek.cpp index 3aa8f43c05ca6..e82a3f217cb6c 100755 --- a/libraries/AP_Mount/AP_Mount_Topotek.cpp +++ b/libraries/AP_Mount/AP_Mount_Topotek.cpp @@ -1060,15 +1060,15 @@ void AP_Mount_Topotek::gimbal_version_analyse() const uint8_t data_buf_len = char_to_hex(_msg_buff[5]); // check for "." - bool constains_period = false; + bool contains_period = false; for (uint8_t i = 0; i < data_buf_len; i++) { - constains_period |= _msg_buff[10 + i] == '.'; + contains_period |= _msg_buff[10 + i] == '.'; } // if contains period, extract version number uint32_t ver_num = 0; uint8_t ver_count = 0; - if (constains_period) { + if (contains_period) { for (uint8_t i = 0; i < data_buf_len; i++) { if (_msg_buff[10 + i] != '.') { ver_num = ver_num * 10 + char_to_hex(_msg_buff[10 + i]); From 3e8b5ccee43fb9d7ef65eb53614cb8daad3ae7d6 Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 24 Jul 2024 09:54:15 +1000 Subject: [PATCH 149/232] AP_Bootloader: fix build for STM32H7 without heap disables ecc check for those boards as well --- Tools/AP_Bootloader/AP_Bootloader.cpp | 2 +- Tools/AP_Bootloader/support.cpp | 4 ++-- Tools/AP_Bootloader/support.h | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Tools/AP_Bootloader/AP_Bootloader.cpp b/Tools/AP_Bootloader/AP_Bootloader.cpp index 79fdb759b03ac..5c1efea998d3e 100644 --- a/Tools/AP_Bootloader/AP_Bootloader.cpp +++ b/Tools/AP_Bootloader/AP_Bootloader.cpp @@ -74,7 +74,7 @@ int main(void) flash_init(); -#ifdef STM32H7 +#if defined(STM32H7) && CH_CFG_USE_HEAP check_ecc_errors(); #endif diff --git a/Tools/AP_Bootloader/support.cpp b/Tools/AP_Bootloader/support.cpp index a7873fcb18924..d3046a228adff 100644 --- a/Tools/AP_Bootloader/support.cpp +++ b/Tools/AP_Bootloader/support.cpp @@ -533,7 +533,7 @@ void port_setbaud(uint32_t baudrate) } #endif // BOOTLOADER_DEV_LIST -#ifdef STM32H7 +#if defined(STM32H7) && CH_CFG_USE_HEAP /* check if flash has any ECC errors and if it does then erase all of flash @@ -580,5 +580,5 @@ void check_ecc_errors(void) } __enable_fault_irq(); } -#endif // STM32H7 +#endif // defined(STM32H7) && CH_CFG_USE_HEAP diff --git a/Tools/AP_Bootloader/support.h b/Tools/AP_Bootloader/support.h index 5dda7a38b2682..8928ff9442ae4 100644 --- a/Tools/AP_Bootloader/support.h +++ b/Tools/AP_Bootloader/support.h @@ -51,7 +51,9 @@ void thread_sleep_ms(uint32_t ms); void custom_startup(void); +#if defined(STM32H7) && CH_CFG_USE_HEAP void check_ecc_errors(void); +#endif // printf to debug uart (or USB) extern "C" { From 3ab33887527c4f16e805d1cd8bb1498476485797 Mon Sep 17 00:00:00 2001 From: rishabsingh3003 Date: Tue, 23 Jul 2024 10:24:26 -0400 Subject: [PATCH 150/232] AP_ESC_Telem: Add ifndef before defining ESC_TELEM_MAX_ESCS --- libraries/AP_ESC_Telem/AP_ESC_Telem.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/AP_ESC_Telem/AP_ESC_Telem.h b/libraries/AP_ESC_Telem/AP_ESC_Telem.h index d25fe5be3d3fc..65b61fdf30359 100644 --- a/libraries/AP_ESC_Telem/AP_ESC_Telem.h +++ b/libraries/AP_ESC_Telem/AP_ESC_Telem.h @@ -7,7 +7,9 @@ #if HAL_WITH_ESC_TELEM -#define ESC_TELEM_MAX_ESCS NUM_SERVO_CHANNELS +#ifndef ESC_TELEM_MAX_ESCS + #define ESC_TELEM_MAX_ESCS NUM_SERVO_CHANNELS +#endif static_assert(ESC_TELEM_MAX_ESCS > 0, "Cannot have 0 ESC telemetry instances"); #define ESC_TELEM_DATA_TIMEOUT_MS 5000UL From e499c2d39f47f9fc46e927706dc1d3b2eddb35cb Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Mon, 22 Jul 2024 10:47:40 +1000 Subject: [PATCH 151/232] AP_Bootloader: fix stuck in bl on reboot from firmware with network and CAN bootlaoders --- Tools/AP_Bootloader/can.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/AP_Bootloader/can.cpp b/Tools/AP_Bootloader/can.cpp index 0026ffc9c5bbc..80c6c0bb02d34 100644 --- a/Tools/AP_Bootloader/can.cpp +++ b/Tools/AP_Bootloader/can.cpp @@ -747,7 +747,7 @@ bool can_check_update(void) bool ret = false; #if HAL_RAM_RESERVE_START >= 256 struct app_bootloader_comms *comms = (struct app_bootloader_comms *)HAL_RAM0_START; - if (comms->magic == APP_BOOTLOADER_COMMS_MAGIC) { + if (comms->magic == APP_BOOTLOADER_COMMS_MAGIC && comms->my_node_id != 0) { can_set_node_id(comms->my_node_id); fw_update.node_id = comms->server_node_id; for (uint8_t i=0; i Date: Mon, 22 Jul 2024 10:50:29 +1000 Subject: [PATCH 152/232] bootloaders: update PPPGW bootloaders --- Tools/bootloaders/CubePilot-PPPGW_bl.bin | Bin 91212 -> 91212 bytes Tools/bootloaders/CubeRedPrimary-PPPGW_bl.bin | Bin 94256 -> 94256 bytes Tools/bootloaders/Pixhawk6X-PPPGW_bl.bin | Bin 94092 -> 94364 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Tools/bootloaders/CubePilot-PPPGW_bl.bin b/Tools/bootloaders/CubePilot-PPPGW_bl.bin index 785e416ab5b6b1669a629af80f2eed50ecf07b4a..7d19a35945cbd838b94a7c968be1e58eb7e62047 100755 GIT binary patch delta 92 zcmV-i0HgoR$OX*E1+efGA|laXefY5wO8_OwA`wX#a1lr&eF-qY_}fqb_yIgm^ni1d y5ET|8@&4ca$+W`lDyf^g! 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 AqW}N^ delta 15716 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 From 07b6c57173b8251346060af8457601dc9a2b6faf Mon Sep 17 00:00:00 2001 From: rishabsingh3003 Date: Tue, 23 Jul 2024 11:39:18 -0400 Subject: [PATCH 153/232] AP_TemperatureSensor: Extend analog sensor backend to 5th order polynomial --- .../AP_TemperatureSensor_Analog.cpp | 17 +++++++++++------ .../AP_TemperatureSensor_Analog.h | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.cpp b/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.cpp index f255e7e8b29e6..91a7686f1d958 100644 --- a/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.cpp +++ b/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.cpp @@ -33,29 +33,34 @@ const AP_Param::GroupInfo AP_TemperatureSensor_Analog::var_info[] = { // @Param: A0 // @DisplayName: Temperature sensor analog 0th polynomial coefficient - // @Description: a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // @Description: a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 AP_GROUPINFO("A0", 2, AP_TemperatureSensor_Analog, _a[0], 0), // @Param: A1 // @DisplayName: Temperature sensor analog 1st polynomial coefficient - // @Description: a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // @Description: a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 AP_GROUPINFO("A1", 3, AP_TemperatureSensor_Analog, _a[1], 0), // @Param: A2 // @DisplayName: Temperature sensor analog 2nd polynomial coefficient - // @Description: a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // @Description: a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 AP_GROUPINFO("A2", 4, AP_TemperatureSensor_Analog, _a[2], 0), // @Param: A3 // @DisplayName: Temperature sensor analog 3rd polynomial coefficient - // @Description: a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // @Description: a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 AP_GROUPINFO("A3", 5, AP_TemperatureSensor_Analog, _a[3], 0), // @Param: A4 // @DisplayName: Temperature sensor analog 4th polynomial coefficient - // @Description: a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // @Description: a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 AP_GROUPINFO("A4", 6, AP_TemperatureSensor_Analog, _a[4], 0), + // @Param: A5 + // @DisplayName: Temperature sensor analog 5th polynomial coefficient + // @Description: a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 + AP_GROUPINFO("A5", 7, AP_TemperatureSensor_Analog, _a[5], 0), + AP_GROUPEND }; @@ -81,7 +86,7 @@ void AP_TemperatureSensor_Analog::update() const float voltage = _analog_source->voltage_average_ratiometric(); // Evaluate polynomial - // temperature (deg) = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + // temperature (deg) = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5 float temp = 0.0; float poly = 1.0; for (uint8_t i = 0; i < ARRAY_SIZE(_a); i++) { diff --git a/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.h b/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.h index a342c165332e9..99c3ba4ed1200 100644 --- a/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.h +++ b/libraries/AP_TemperatureSensor/AP_TemperatureSensor_Analog.h @@ -35,10 +35,10 @@ class AP_TemperatureSensor_Analog : public AP_TemperatureSensor_Backend { AP_HAL::AnalogSource *_analog_source; // Pin used to measure voltage - AP_Int8 _pin; + AP_Int8 _pin; // Polynomial coefficients to calculate temperature from voltage - AP_Float _a[5]; + AP_Float _a[6]; }; From f9bc2471213d726cf0595d642886207b58350a75 Mon Sep 17 00:00:00 2001 From: muramura Date: Sun, 2 Jun 2024 17:09:24 +0900 Subject: [PATCH 154/232] Copter: correct comment about scope of is_landing and is_taking_off --- ArduCopter/Copter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ArduCopter/Copter.cpp b/ArduCopter/Copter.cpp index 86fc3b0e61a78..7c9a0e91b3402 100644 --- a/ArduCopter/Copter.cpp +++ b/ArduCopter/Copter.cpp @@ -474,13 +474,13 @@ bool Copter::update_target_location(const Location &old_loc, const Location &new #endif // AP_SCRIPTING_ENABLED -// returns true if vehicle is landing. Only used by Lua scripts +// returns true if vehicle is landing. bool Copter::is_landing() const { return flightmode->is_landing(); } -// returns true if vehicle is taking off. Only used by Lua scripts +// returns true if vehicle is taking off. bool Copter::is_taking_off() const { return flightmode->is_taking_off(); From 05d8b0db8a3d3b48da49b20a4bfbd84bfa0385af Mon Sep 17 00:00:00 2001 From: muramura Date: Wed, 19 Jun 2024 21:20:23 +0900 Subject: [PATCH 155/232] Copter: Clearly show the preprocessor --- ArduCopter/AP_Arming.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ArduCopter/AP_Arming.cpp b/ArduCopter/AP_Arming.cpp index 12d037f07653c..c711b06f5197e 100644 --- a/ArduCopter/AP_Arming.cpp +++ b/ArduCopter/AP_Arming.cpp @@ -601,11 +601,11 @@ bool AP_Arming_Copter::arm_checks(AP_Arming::Method method) // check throttle if (check_enabled(ARMING_CHECK_RC)) { - #if FRAME_CONFIG == HELI_FRAME +#if FRAME_CONFIG == HELI_FRAME const char *rc_item = "Collective"; - #else +#else const char *rc_item = "Throttle"; - #endif +#endif // check throttle is not too high - skips checks if arming from GCS/scripting in Guided,Guided_NoGPS or Auto if (!((AP_Arming::method_is_GCS(method) || method == AP_Arming::Method::SCRIPTING) && (copter.flightmode->mode_number() == Mode::Number::GUIDED || copter.flightmode->mode_number() == Mode::Number::GUIDED_NOGPS || copter.flightmode->mode_number() == Mode::Number::AUTO))) { // above top of deadband is too always high @@ -614,12 +614,12 @@ bool AP_Arming_Copter::arm_checks(AP_Arming::Method method) return false; } // in manual modes throttle must be at zero - #if FRAME_CONFIG != HELI_FRAME +#if FRAME_CONFIG != HELI_FRAME if ((copter.flightmode->has_manual_throttle() || copter.flightmode->mode_number() == Mode::Number::DRIFT) && copter.channel_throttle->get_control_in() > 0) { check_failed(ARMING_CHECK_RC, true, "%s too high", rc_item); return false; } - #endif +#endif } } From 4904c718a553479d22f7da6d25992b61c31097ed Mon Sep 17 00:00:00 2001 From: Paul Riseborough Date: Thu, 25 Jul 2024 05:42:46 +0930 Subject: [PATCH 156/232] AP_NavEKF3: Fix yaw alignment bug When the yaw is aligned to the GPS yaw, the recordYawResetsCompleted() function should be called the same as for any other yaw reset. --- libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp b/libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp index 390dfceb8705a..67ac2a57943a4 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp +++ b/libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp @@ -294,6 +294,7 @@ void NavEKF3_core::SelectMagFusion() have_fused_gps_yaw = true; lastSynthYawTime_ms = imuSampleTime_ms; last_gps_yaw_fuse_ms = imuSampleTime_ms; + recordYawResetsCompleted(); } else if (tiltAlignComplete && yawAlignComplete) { have_fused_gps_yaw = fuseEulerYaw(yawFusionMethod::GPS); if (have_fused_gps_yaw) { From 25a406e63370d59998c4efdfa55e3dd86755a7f7 Mon Sep 17 00:00:00 2001 From: mduclehcm Date: Mon, 22 Jul 2024 11:48:07 +0700 Subject: [PATCH 157/232] AP_Mount: Conditionally define `serial_instance` to fix unused variable compile error - Wrapped the definition of `serial_instance` with preprocessor directives to ensure it is only defined when necessary. - This resolves the compile error caused by the unused variable when no features requiring `serial_instance` are enabled. --- libraries/AP_Mount/AP_Mount.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/AP_Mount/AP_Mount.cpp b/libraries/AP_Mount/AP_Mount.cpp index 777256cb050a9..f3225bbd63880 100644 --- a/libraries/AP_Mount/AP_Mount.cpp +++ b/libraries/AP_Mount/AP_Mount.cpp @@ -46,7 +46,7 @@ AP_Mount::AP_Mount() } _singleton = this; - AP_Param::setup_object_defaults(this, var_info); + AP_Param::setup_object_defaults(this, var_info); } // init - detect and initialise all mounts @@ -184,6 +184,8 @@ void AP_Mount::init() set_mode_to_default(instance); } } + + (void)serial_instance; } // update - give mount opportunity to update servos. should be called at 10hz or higher From 025077b6f49e246c1a421b792e9b2e57338a881c Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 17 Jul 2024 16:39:52 +1000 Subject: [PATCH 158/232] AP_HAL_ChibiOS: add support for recording UART Rx errors --- libraries/AP_HAL_ChibiOS/UARTDriver.cpp | 40 ++++++++++++++++++++++++- libraries/AP_HAL_ChibiOS/UARTDriver.h | 8 +++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/libraries/AP_HAL_ChibiOS/UARTDriver.cpp b/libraries/AP_HAL_ChibiOS/UARTDriver.cpp index da4ae589df661..fcf29a854578f 100644 --- a/libraries/AP_HAL_ChibiOS/UARTDriver.cpp +++ b/libraries/AP_HAL_ChibiOS/UARTDriver.cpp @@ -70,6 +70,9 @@ static const eventmask_t EVT_PARITY = EVENT_MASK(11); // event for transmit end for half-duplex static const eventmask_t EVT_TRANSMIT_END = EVENT_MASK(12); +// event for framing error +static const eventmask_t EVT_ERROR = EVENT_MASK(13); + // events for dma tx, thread per UART so can be from 0 static const eventmask_t EVT_TRANSMIT_DMA_START = EVENT_MASK(0); static const eventmask_t EVT_TRANSMIT_DMA_COMPLETE = EVENT_MASK(1); @@ -495,6 +498,16 @@ void UARTDriver::_begin(uint32_t b, uint16_t rxS, uint16_t txS) vprintf_console_hook = hal_console_vprintf; #endif } + +#if HAL_UART_STATS_ENABLED && CH_CFG_USE_EVENTS == TRUE + if (!err_listener_initialised) { + chEvtRegisterMaskWithFlags(chnGetEventSource((SerialDriver*)sdef.serial), + &err_listener, + EVT_ERROR, + SD_FRAMING_ERROR | SD_OVERRUN_ERROR | SD_NOISE_ERROR); + err_listener_initialised = true; + } +#endif } #ifndef HAL_UART_NODMA @@ -1091,6 +1104,22 @@ void UARTDriver::_rx_timer_tick(void) _in_rx_timer = true; +#if HAL_UART_STATS_ENABLED && CH_CFG_USE_EVENTS == TRUE + if (!sdef.is_usb) { + const auto err_flags = chEvtGetAndClearFlags(&err_listener); + // count the number of errors + if (err_flags & SD_FRAMING_ERROR) { + _rx_stats_framing_errors++; + } + if (err_flags & SD_OVERRUN_ERROR) { + _rx_stats_overrun_errors++; + } + if (err_flags & SD_NOISE_ERROR) { + _rx_stats_noise_errors++; + } + } +#endif + #ifndef HAL_UART_NODMA if (rx_dma_enabled && rxdma) { chSysLock(); @@ -1748,13 +1777,22 @@ void UARTDriver::uart_info(ExpandingString &str, StatsTracker &stats, const uint } else { str.printf("UART%u ", unsigned(sdef.instance)); } - str.printf("TX%c=%8u RX%c=%8u TXBD=%6u RXBD=%6u FlowCtrl=%u\n", + str.printf("TX%c=%8u RX%c=%8u TXBD=%6u RXBD=%6u" +#if CH_CFG_USE_EVENTS == TRUE + " FE=%lu OE=%lu NE=%lu" +#endif + " FlowCtrl=%u\n", tx_dma_enabled ? '*' : ' ', unsigned(tx_bytes), rx_dma_enabled ? '*' : ' ', unsigned(rx_bytes), unsigned((tx_bytes * 10000) / dt_ms), unsigned((rx_bytes * 10000) / dt_ms), +#if CH_CFG_USE_EVENTS == TRUE + _rx_stats_framing_errors, + _rx_stats_overrun_errors, + _rx_stats_noise_errors, +#endif _flow_control); } #endif diff --git a/libraries/AP_HAL_ChibiOS/UARTDriver.h b/libraries/AP_HAL_ChibiOS/UARTDriver.h index f21c1d7aa8be4..2315192f9e90b 100644 --- a/libraries/AP_HAL_ChibiOS/UARTDriver.h +++ b/libraries/AP_HAL_ChibiOS/UARTDriver.h @@ -79,6 +79,7 @@ class ChibiOS::UARTDriver : public AP_HAL::UARTDriver { uint8_t get_index(void) const { return uint8_t(this - &_serial_tab[0]); } + bool low_noise_line; }; bool wait_timeout(uint16_t n, uint32_t timeout_ms) override; @@ -282,6 +283,13 @@ class ChibiOS::UARTDriver : public AP_HAL::UARTDriver { // Getters for cumulative tx and rx counts uint32_t get_total_tx_bytes() const override { return _tx_stats_bytes; } uint32_t get_total_rx_bytes() const override { return _rx_stats_bytes; } +#if CH_CFG_USE_EVENTS == TRUE + uint32_t _rx_stats_framing_errors; + uint32_t _rx_stats_overrun_errors; + uint32_t _rx_stats_noise_errors; + event_listener_t err_listener; + bool err_listener_initialised; +#endif #endif }; From 993d694fbbe6d35d057a8171d07ccaa8e536466c Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 17 Jul 2024 16:40:30 +1000 Subject: [PATCH 159/232] AP_HAL_ChibiOS: allow setup for low noise clock mismatch tolerant UART line --- libraries/AP_HAL_ChibiOS/UARTDriver.cpp | 7 ++++ libraries/AP_HAL_ChibiOS/UARTDriver.h | 7 ++++ .../hwdef/scripts/chibios_hwdef.py | 33 ++++++++++++++++--- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/UARTDriver.cpp b/libraries/AP_HAL_ChibiOS/UARTDriver.cpp index fcf29a854578f..86689cfdba30b 100644 --- a/libraries/AP_HAL_ChibiOS/UARTDriver.cpp +++ b/libraries/AP_HAL_ChibiOS/UARTDriver.cpp @@ -455,6 +455,13 @@ void UARTDriver::_begin(uint32_t b, uint16_t rxS, uint16_t txS) sercfg.cr3 |= USART_CR3_DMAT; } sercfg.irq_cb = rx_irq_cb; +#if HAL_HAVE_LOW_NOISE_UART + if (sdef.low_noise_line) { + // we can mark UART to sample on one bit instead of default 3 bits + // this allows us to be slightly less sensitive to clock differences + sercfg.cr3 |= USART_CR3_ONEBIT; + } +#endif #endif // HAL_UART_NODMA if (!(sercfg.cr2 & USART_CR2_STOP2_BITS)) { sercfg.cr2 |= USART_CR2_STOP1_BITS; diff --git a/libraries/AP_HAL_ChibiOS/UARTDriver.h b/libraries/AP_HAL_ChibiOS/UARTDriver.h index 2315192f9e90b..c549b8eebd542 100644 --- a/libraries/AP_HAL_ChibiOS/UARTDriver.h +++ b/libraries/AP_HAL_ChibiOS/UARTDriver.h @@ -28,6 +28,10 @@ // enough for serial0 to serial9, plus IOMCU #define UART_MAX_DRIVERS 11 +#ifndef HAL_HAVE_LOW_NOISE_UART +#define HAL_HAVE_LOW_NOISE_UART 0 +#endif + class ChibiOS::UARTDriver : public AP_HAL::UARTDriver { public: UARTDriver(uint8_t serial_num); @@ -79,7 +83,10 @@ class ChibiOS::UARTDriver : public AP_HAL::UARTDriver { uint8_t get_index(void) const { return uint8_t(this - &_serial_tab[0]); } + +#if HAL_HAVE_LOW_NOISE_UART bool low_noise_line; +#endif }; bool wait_timeout(uint16_t n, uint32_t timeout_ms) override; diff --git a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py index e01e4283a45d3..e59b850f75eac 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py +++ b/libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py @@ -1865,6 +1865,7 @@ def write_UART_config(self, f): OTG2_index = None devlist = [] have_rts_cts = False + have_low_noise = False crash_uart = None # write config for CrashCatcher UART @@ -1878,6 +1879,14 @@ def write_UART_config(self, f): f.write('#define IRQ_DISABLE_HAL_CRASH_SERIAL_PORT() nvicDisableVector(STM32_%s_NUMBER)\n' % crash_uart) f.write('#define RCC_RESET_HAL_CRASH_SERIAL_PORT() rccReset%s(); rccEnable%s(true)\n' % (crash_uart, crash_uart)) f.write('#define HAL_CRASH_SERIAL_PORT_CLOCK STM32_%sCLK\n' % crash_uart) + # check if we have a UART with a low noise RX pin + for num, dev in enumerate(serial_list): + if not dev.startswith('UART') and not dev.startswith('USART'): + continue + rx_port = dev + '_RX' + if rx_port in self.bylabel and self.bylabel[rx_port].has_extra('LOW_NOISE'): + have_low_noise = True + break for num, dev in enumerate(serial_list): if dev.startswith('UART'): n = int(dev[4:]) @@ -1904,12 +1913,20 @@ def write_UART_config(self, f): if dev.startswith('OTG2'): f.write( - '#define HAL_%s_CONFIG {(BaseSequentialStream*) &SDU2, 2, true, false, 0, 0, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, UINT8_MAX}\n' % dev) # noqa + '#define HAL_%s_CONFIG {(BaseSequentialStream*) &SDU2, 2, true, false, 0, 0, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, UINT8_MAX,' % dev) # noqa + if have_low_noise: + f.write('false}\n') + else: + f.write('}\n') OTG2_index = serial_list.index(dev) self.dual_USB_enabled = True elif dev.startswith('OTG'): f.write( - '#define HAL_%s_CONFIG {(BaseSequentialStream*) &SDU1, 1, true, false, 0, 0, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, UINT8_MAX}\n' % dev) # noqa + '#define HAL_%s_CONFIG {(BaseSequentialStream*) &SDU1, 1, true, false, 0, 0, false, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, UINT8_MAX,' % dev) # noqa + if have_low_noise: + f.write('false}\n') + else: + f.write('}\n') else: need_uart_driver = True f.write( @@ -1948,9 +1965,17 @@ def get_RTS_alt_function(): if s not in lib.AltFunction_map: return "UINT8_MAX" return lib.AltFunction_map[s] + if have_low_noise: + low_noise = 'false' + rx_port = dev + '_RX' + if rx_port in self.bylabel and self.bylabel[rx_port].has_extra('LOW_NOISE'): + low_noise = 'true' + f.write("%s, %s}\n" % (get_RTS_alt_function(), low_noise)) + else: + f.write("%s}\n" % get_RTS_alt_function()) - f.write("%s}\n" % get_RTS_alt_function()) - + if have_low_noise: + f.write('#define HAL_HAVE_LOW_NOISE_UART 1\n') if have_rts_cts: f.write('#define AP_FEATURE_RTSCTS 1\n') if OTG2_index is not None: From 4909ad4e4f887dfd7e9eef9155da2293a44d607a Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 17 Jul 2024 16:41:16 +1000 Subject: [PATCH 160/232] AP_Networking: add debug code for PPP --- libraries/AP_Networking/AP_Networking_PPP.cpp | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/libraries/AP_Networking/AP_Networking_PPP.cpp b/libraries/AP_Networking/AP_Networking_PPP.cpp index 6bcf3651bba09..5d1128a781f2a 100644 --- a/libraries/AP_Networking/AP_Networking_PPP.cpp +++ b/libraries/AP_Networking/AP_Networking_PPP.cpp @@ -25,6 +25,9 @@ extern const AP_HAL::HAL& hal; #define LWIP_TCPIP_UNLOCK() #endif +#define PPP_DEBUG_TX 0 +#define PPP_DEBUG_RX 0 + /* output some data to the uart */ @@ -34,6 +37,27 @@ uint32_t AP_Networking_PPP::ppp_output_cb(ppp_pcb *pcb, const void *data, uint32 LWIP_UNUSED_ARG(pcb); uint32_t remaining = len; const uint8_t *ptr = (const uint8_t *)data; +#if PPP_DEBUG_TX + bool flag_end = false; + if (ptr[len-1] == 0x7E) { + flag_end = true; + remaining--; + } + if (ptr[0] == 0x7E) { + // send byte size + if (pkt_size > 0) { + printf("PPP: tx[%lu] %u\n", tx_index++, pkt_size); + } + // dump the packet + if (!(tx_index % 10)) { + for (uint32_t i = 0; i < pkt_size; i++) { + printf(" %02X", tx_bytes[i]); + } + printf("\n"); + } + pkt_size = 0; + } +#endif while (remaining > 0) { const auto n = driver.uart->write(ptr, remaining); if (n > 0) { @@ -43,6 +67,22 @@ uint32_t AP_Networking_PPP::ppp_output_cb(ppp_pcb *pcb, const void *data, uint32 hal.scheduler->delay_microseconds(100); } } +#if PPP_DEBUG_TX + memcpy(&tx_bytes[pkt_size], data, len); + pkt_size += len; + if (flag_end) { + driver.uart->write(0x7E); + printf("PPP: tx[%lu] %u\n", tx_index++, pkt_size); + // dump the packet + if (!(tx_index % 10)) { + for (uint32_t i = 0; i < pkt_size; i++) { + printf(" %02X", tx_bytes[i]); + } + printf("\n"); + } + pkt_size = 0; + } +#endif return len; } @@ -224,6 +264,25 @@ void AP_Networking_PPP::ppp_loop(void) } else { hal.scheduler->delay_microseconds(200); } +#if PPP_DEBUG_RX + auto pppos = (pppos_pcb *)ppp->link_ctx_cb; + for (uint32_t i = 0; i < n; i++) { + if (buf[i] == 0x7E && last_ppp_frame_size != 1) { + // dump the packet + if (pppos->bad_pkt) { + printf("PPP: rx[%lu] %u\n", rx_index, last_ppp_frame_size); + for (uint32_t j = 0; j < last_ppp_frame_size; j++) { + printf("0x%02X,", rx_bytes[j]); + } + printf("\n"); + hal.scheduler->delay(1); + } + rx_index++; + last_ppp_frame_size = 0; + } + rx_bytes[last_ppp_frame_size++] = buf[i]; + } +#endif } } } From 8a4b925c71cda0ce1a0c1cf6188f49f172d72cc0 Mon Sep 17 00:00:00 2001 From: bugobliterator Date: Wed, 17 Jul 2024 16:42:52 +1000 Subject: [PATCH 161/232] AP_HAL_ChibiOS: add support for PPP between CubeRed Primary and Secondary --- .../hwdef/CubeRedPrimary/defaults.parm | 19 +++++++++++++++++++ .../hwdef/CubeRedPrimary/hwdef.dat | 19 +++++++++++-------- .../hwdef/CubeRedSecondary/defaults.parm | 10 ++++++++++ .../hwdef/CubeRedSecondary/hwdef.dat | 16 +++++++++++----- 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/defaults.parm index cdd83a642efe8..22f785c1a3b18 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/defaults.parm +++ b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/defaults.parm @@ -6,3 +6,22 @@ ADSB_TYPE 1 SERIAL5_BAUD 57 SERIAL5_PROTOCOL 1 EK3_PRIMARY 1 + +NET_ENABLE 1 +NET_OPTIONS 1 +NET_DHCP 0 +NET_P1_TYPE 1 +NET_P1_PROTOCOL 2 +NET_P1_IP0 192 +NET_P1_IP1 168 +NET_P1_IP2 144 +NET_P1_IP3 10 +NET_P1_PORT 14553 + +NET_P2_TYPE 4 +NET_P2_PROTOCOL 2 +NET_P2_IP0 192 +NET_P2_IP1 168 +NET_P2_IP2 144 +NET_P2_IP3 100 +NET_P2_PORT 14554 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/hwdef.dat index d6e7dfa8e38aa..5bd8d3c71c639 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedPrimary/hwdef.dat @@ -274,17 +274,20 @@ PG15 USART6_CTS USART6 PG8 USART6_RTS USART6 # primary <-> secondary -PE7 UART7_RX UART7 -PE8 UART7_TX UART7 +PE7 UART7_RX UART7 SPEED_VERYLOW LOW_NOISE +PE8 UART7_TX UART7 SPEED_VERYLOW # order of UARTs (and USB) -SERIAL_ORDER OTG1 USART2 USART6 USART3 UART4 UART8 EMPTY UART7 +SERIAL_ORDER OTG1 USART2 USART6 USART3 UART4 UART8 OTG2 UART7 EXT_FLASH_SIZE_MB 32 INT_FLASH_PRIMARY 1 -# forward Serial traffic from USB OTG2 to Serial7(UART7) -define HAL_FORWARD_OTG2_SERIAL 7 -define HAL_HAVE_DUAL_USB_CDC 1 -define DEFAULT_SERIAL7_PROTOCOL SerialProtocol_MAVLink2 -define DEFAULT_SERIAL7_BAUD 2000000 +# set protocol for UART7 to SerialProtocol_PPP +define DEFAULT_SERIAL7_PROTOCOL SerialProtocol_PPP +define DEFAULT_SERIAL7_BAUD 8000000 + +define AP_NETWORKING_DEFAULT_STATIC_IP_ADDR "192.168.144.100" +define AP_NETWORKING_DEFAULT_STATIC_NETMASK "255.255.255.0" +define AP_NETWORKING_DEFAULT_STATIC_GW_ADDR "192.168.144.11" +define AP_NETWORKING_BACKEND_PPP 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/defaults.parm index 3be7684ba40ca..342b61b6d584b 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/defaults.parm +++ b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/defaults.parm @@ -1,2 +1,12 @@ SERIAL3_OPTIONS 8 SERIAL4_OPTIONS 8 +NET_ENABLE 1 +NET_P1_TYPE 3 +NET_P1_PROTOCOL 2 +NET_P1_IP0 192 +NET_P1_IP1 168 +NET_P1_IP2 144 +NET_P1_IP3 100 +NET_P1_PORT 14554 + +SYSID_THISMAV 2 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/hwdef.dat index bd77ac79c934f..e24d8c5299eff 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/CubeRedSecondary/hwdef.dat @@ -7,6 +7,8 @@ MCU STM32H7xx STM32H757xx define CORE_CM7 define SMPS_PWR +env OPTIMIZE -Os + # crystal frequency OSCILLATOR_HZ 24000000 @@ -39,7 +41,8 @@ PA6 RSSI_IN ADC1 SCALE(2) # CAN config PB14 GPIOCAN2_TERM OUTPUT HIGH - +PC12 GPIOCAN1_SHUTDOWN OUTPUT LOW +PF1 GPIOCAN2_SHUTDOWN OUTPUT LOW PA12 CAN1_TX CAN1 PB8 CAN1_RX CAN1 @@ -118,8 +121,8 @@ PA7 HP_UNIDIR_ENABLED OUTPUT HIGH GPIO(5) # UART connected to FMU, uses DMA -PE7 UART7_RX UART7 SPEED_HIGH -PE8 UART7_TX UART7 SPEED_HIGH +PE7 UART7_RX UART7 SPEED_VERYLOW LOW_NOISE +PE8 UART7_TX UART7 SPEED_VERYLOW # UART for SBUS out PC7 USART6_RX USART6 SPEED_HIGH LOW @@ -144,13 +147,16 @@ PD4 USART2_RTS USART2 SPEED_HIGH PD3 USART2_CTS USART2 SPEED_HIGH # order of UARTs -SERIAL_ORDER UART7 UART8 USART3 USART6 UART4 USART2 +SERIAL_ORDER UART8 UART7 USART3 USART6 UART4 USART2 # use 2 MBaud when talking to primary controller -define DEFAULT_SERIAL0_BAUD 2000000 +define DEFAULT_SERIAL1_BAUD 8000000 +define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_PPP define DEFAULT_SERIAL3_PROTOCOL SerialProtocol_Sbus1 define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_RCIN +define AP_NETWORKING_BACKEND_PPP 1 + # only use pulse input for PPM, other protocols # are on serial define HAL_RCIN_PULSE_PPM_ONLY From 028017e38ef609e3def1548599f3d1fd840797d4 Mon Sep 17 00:00:00 2001 From: Luca Pescante Date: Sat, 7 Oct 2023 18:43:21 +0800 Subject: [PATCH 162/232] ArduCopter/RC_Channel: add option 219 (Transmitter Tuning) --- ArduCopter/RC_Channel.cpp | 4 ++++ libraries/RC_Channel/RC_Channel.cpp | 1 + libraries/RC_Channel/RC_Channel.h | 1 + 3 files changed, 6 insertions(+) diff --git a/ArduCopter/RC_Channel.cpp b/ArduCopter/RC_Channel.cpp index 3cb3b99ea2608..c62f8b6d2bcd0 100644 --- a/ArduCopter/RC_Channel.cpp +++ b/ArduCopter/RC_Channel.cpp @@ -128,6 +128,7 @@ void RC_Channel_Copter::init_aux_function(const AUX_FUNC ch_option, const AuxSwi case AUX_FUNC::FORCEFLYING: case AUX_FUNC::CUSTOM_CONTROLLER: case AUX_FUNC::WEATHER_VANE_ENABLE: + case AUX_FUNC::TRANSMITTER_TUNING: run_aux_function(ch_option, ch_flag, AuxFuncTriggerSource::INIT); break; default: @@ -648,6 +649,9 @@ bool RC_Channel_Copter::do_aux_function(const AUX_FUNC ch_option, const AuxSwitc break; } #endif + case AUX_FUNC::TRANSMITTER_TUNING: + // do nothing, used in tuning.cpp for transmitter based tuning + break; default: return RC_Channel::do_aux_function(ch_option, ch_flag); diff --git a/libraries/RC_Channel/RC_Channel.cpp b/libraries/RC_Channel/RC_Channel.cpp index 8d27aeb426eb1..e0bdfed8e43b6 100644 --- a/libraries/RC_Channel/RC_Channel.cpp +++ b/libraries/RC_Channel/RC_Channel.cpp @@ -247,6 +247,7 @@ const AP_Param::GroupInfo RC_Channel::var_info[] = { // @Values{Plane}: 210:Airbrakes // @Values{Rover}: 211:Walking Height // @Values{Copter, Rover, Plane}: 212:Mount1 Roll, 213:Mount1 Pitch, 214:Mount1 Yaw, 215:Mount2 Roll, 216:Mount2 Pitch, 217:Mount2 Yaw + // @Values{Copter}: 219:Transmitter Tuning // @Values{Copter, Rover, Plane}: 300:Scripting1, 301:Scripting2, 302:Scripting3, 303:Scripting4, 304:Scripting5, 305:Scripting6, 306:Scripting7, 307:Scripting8 // @User: Standard AP_GROUPINFO_FRAME("OPTION", 6, RC_Channel, option, 0, AP_PARAM_FRAME_COPTER|AP_PARAM_FRAME_ROVER|AP_PARAM_FRAME_PLANE|AP_PARAM_FRAME_BLIMP), diff --git a/libraries/RC_Channel/RC_Channel.h b/libraries/RC_Channel/RC_Channel.h index 99959480704dd..97dddce75b0d8 100644 --- a/libraries/RC_Channel/RC_Channel.h +++ b/libraries/RC_Channel/RC_Channel.h @@ -271,6 +271,7 @@ class RC_Channel { MOUNT2_PITCH = 216, // mount3 pitch input MOUNT2_YAW = 217, // mount4 yaw input LOWEHEISER_THROTTLE= 218, // allows for throttle on slider + TRANSMITTER_TUNING = 219, // use a transmitter knob or slider for in-flight tuning // inputs 248-249 are reserved for the Skybrush fork at // https://github.com/skybrush-io/ardupilot From a519597249397e31fc492b3907ed1949a1a1920c Mon Sep 17 00:00:00 2001 From: Luca Pescante Date: Sat, 7 Oct 2023 18:51:05 +0800 Subject: [PATCH 163/232] Copter: find channel option "Transmitter Tuning" instead of CH6 --- ArduCopter/tuning.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/ArduCopter/tuning.cpp b/ArduCopter/tuning.cpp index c2cea3c72f2c3..a0bb8f7b829e9 100644 --- a/ArduCopter/tuning.cpp +++ b/ArduCopter/tuning.cpp @@ -1,33 +1,34 @@ #include "Copter.h" /* - * Function to update various parameters in flight using the ch6 tuning knob + * Function to update various parameters in flight using the TRANSMITTER_TUNING channel knob * This should not be confused with the AutoTune feature which can be found in control_autotune.cpp */ -// tuning - updates parameters based on the ch6 tuning knob's position +// tuning - updates parameters based on the ch6 TRANSMITTER_TUNING channel knob's position // should be called at 3.3hz void Copter::tuning() { - const RC_Channel *rc6 = rc().channel(CH_6); + const RC_Channel *rc_tuning = rc().find_channel_for_option(RC_Channel::AUX_FUNC::TRANSMITTER_TUNING); + // exit immediately if tuning channel is not set + if (rc_tuning == nullptr) { + return; + } + // exit immediately if the tuning function is not set or min and max are both zero if ((g.radio_tuning <= 0) || (is_zero(g2.tuning_min.get()) && is_zero(g2.tuning_max.get()))) { return; } // exit immediately when radio failsafe is invoked or transmitter has not been turned on - if (failsafe.radio || failsafe.radio_counter != 0 || rc6->get_radio_in() == 0) { - return; - } - - // exit immediately if a function is assigned to channel 6 - if ((RC_Channel::AUX_FUNC)rc6->option.get() != RC_Channel::AUX_FUNC::DO_NOTHING) { + if (failsafe.radio || failsafe.radio_counter != 0 || rc_tuning->get_radio_in() == 0) { return; } - const uint16_t radio_in = rc6->get_radio_in(); - float tuning_value = linear_interpolate(g2.tuning_min, g2.tuning_max, radio_in, rc6->get_radio_min(), rc6->get_radio_max()); + const uint16_t radio_in = rc_tuning->get_radio_in(); + float tuning_value = linear_interpolate(g2.tuning_min, g2.tuning_max, radio_in, rc_tuning->get_radio_min(), rc_tuning->get_radio_max()); + #if HAL_LOGGING_ENABLED Log_Write_Parameter_Tuning(g.radio_tuning, tuning_value, g2.tuning_min, g2.tuning_max); #endif From 0583e851457adabdcdd8ee3767569ebfbe47843d Mon Sep 17 00:00:00 2001 From: Luca Pescante Date: Sat, 7 Oct 2023 18:52:58 +0800 Subject: [PATCH 164/232] Copter: update "CH6 tuning" comments --- ArduCopter/Copter.cpp | 2 +- ArduCopter/mode_circle.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ArduCopter/Copter.cpp b/ArduCopter/Copter.cpp index 7c9a0e91b3402..bedc575a1f6b8 100644 --- a/ArduCopter/Copter.cpp +++ b/ArduCopter/Copter.cpp @@ -659,7 +659,7 @@ void Copter::three_hz_loop() // check for deadreckoning failsafe failsafe_deadreckon_check(); - // update ch6 in flight tuning + //update transmitter based in flight tuning tuning(); // check if avoidance should be enabled based on alt diff --git a/ArduCopter/mode_circle.cpp b/ArduCopter/mode_circle.cpp index 8b2578d49b568..5c1d243ed129e 100644 --- a/ArduCopter/mode_circle.cpp +++ b/ArduCopter/mode_circle.cpp @@ -68,7 +68,7 @@ void ModeCircle::run() } // update the orbicular rate target based on pilot roll stick inputs - // skip if using CH6 tuning knob for circle rate + // skip if using transmitter based tuning knob for circle rate if (g.radio_tuning != TUNING_CIRCLE_RATE) { const float roll_stick = channel_roll->norm_input_dz(); // roll stick normalized -1 to 1 From 9acd23d196b63446195b6f51ff67868ee351c30a Mon Sep 17 00:00:00 2001 From: Luca Pescante <72148330+be-ska@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:43:36 +0200 Subject: [PATCH 165/232] autotest: use RC6 for tuning --- Tools/autotest/arducopter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 17b500367509f..47f4fcd5cf0e2 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -11270,6 +11270,7 @@ def MAV_CMD_NAV_TAKEOFF_command_int(self): def Ch6TuningWPSpeed(self): '''test waypoint speed can be changed via Ch6 tuning knob''' self.set_parameters({ + "RC6_OPTION": 219, # RC6 used for tuning "TUNE": 10, # 10 is waypoint speed "TUNE_MIN": 0.02, # 20cm/s "TUNE_MAX": 1000, # 10m/s From fe2e75b2a0be533b5ed5a13d915d6b3573e368a1 Mon Sep 17 00:00:00 2001 From: Ep Pravitra Date: Wed, 24 Jul 2024 15:18:42 +0700 Subject: [PATCH 166/232] Plane: option to immediately climb in AUTO mode (not doing glide slope) add comment in Parameters.cpp Update ArduPlane/altitude.cpp Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com> clarification in FLIGHT_OPTIONS description change the comment param comment change Update ArduPlane/Parameters.cpp Co-authored-by: Peter Barker --- ArduPlane/Parameters.cpp | 1 + ArduPlane/altitude.cpp | 7 +++++++ ArduPlane/defines.h | 1 + 3 files changed, 9 insertions(+) diff --git a/ArduPlane/Parameters.cpp b/ArduPlane/Parameters.cpp index 65198d9cb5324..7ff30ad427717 100644 --- a/ArduPlane/Parameters.cpp +++ b/ArduPlane/Parameters.cpp @@ -1096,6 +1096,7 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { // @Bitmask: 11: Disable suppression of fixed wing rate gains in ground mode // @Bitmask: 12: Enable FBWB style loiter altitude control // @Bitmask: 13: Indicate takeoff waiting for neutral rudder with flight control surfaces + // @Bitmask: 14: In AUTO - climb to next waypoint altitude immediately instead of linear climb // @User: Advanced AP_GROUPINFO("FLIGHT_OPTIONS", 13, ParametersG2, flight_options, 0), diff --git a/ArduPlane/altitude.cpp b/ArduPlane/altitude.cpp index 8b7970e6315d1..6e32f619439d5 100644 --- a/ArduPlane/altitude.cpp +++ b/ArduPlane/altitude.cpp @@ -81,6 +81,13 @@ void Plane::setup_glide_slope(void) break; case Mode::Number::AUTO: + + //climb without doing glide slope if option is enabled + if (!above_location_current(next_WP_loc) && plane.flight_option_enabled(FlightOptions::IMMEDIATE_CLIMB_IN_AUTO)) { + reset_offset_altitude(); + break; + } + // we only do glide slide handling in AUTO when above 20m or // when descending. The 20 meter threshold is arbitrary, and // is basically to prevent situations where we try to slowly diff --git a/ArduPlane/defines.h b/ArduPlane/defines.h index f4a8f9fc45111..b2939557adfdf 100644 --- a/ArduPlane/defines.h +++ b/ArduPlane/defines.h @@ -168,6 +168,7 @@ enum FlightOptions { DISABLE_GROUND_PID_SUPPRESSION = (1<<11), ENABLE_LOITER_ALT_CONTROL = (1<<12), INDICATE_WAITING_FOR_RUDDER_NEUTRAL = (1<<13), + IMMEDIATE_CLIMB_IN_AUTO = (1<<14), }; enum CrowFlapOptions { From 66817e207fa5f48ac11748d3fe2a29388d627065 Mon Sep 17 00:00:00 2001 From: James O'Shannessy <12959316+joshanne@users.noreply.github.com> Date: Wed, 17 Jul 2024 17:33:14 +1000 Subject: [PATCH 167/232] AP_InertialSensor: Check the gyro/accel id has not been previously registered If the Gyro/Accel ID is already in the registered list, do not try to add it again. This stops an issue seen on a CubeOrangePlus BG3 where, during the very first boot after a parameter wipe, software incorrectly registers a fourth IMU. The Fourth IMU is registered because the AUX IMU is the same DevID as the third ICM45686. --- .../AP_InertialSensor/AP_InertialSensor.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libraries/AP_InertialSensor/AP_InertialSensor.cpp b/libraries/AP_InertialSensor/AP_InertialSensor.cpp index ffe9c7f38ed7d..6d254dccec907 100644 --- a/libraries/AP_InertialSensor/AP_InertialSensor.cpp +++ b/libraries/AP_InertialSensor/AP_InertialSensor.cpp @@ -736,6 +736,14 @@ bool AP_InertialSensor::register_gyro(uint8_t &instance, uint16_t raw_sample_rat return false; } + // Loop over the existing instances and check if the instance already exists + for (uint8_t instance_to_check = 0; instance_to_check < _gyro_count; instance_to_check++) { + if ((uint32_t)_gyro_id(instance_to_check) == id) { + // if it does, then bail + return false; + } + } + _gyro_raw_sample_rates[_gyro_count] = raw_sample_rate_hz; _gyro_over_sampling[_gyro_count] = 1; _gyro_raw_sampling_multiplier[_gyro_count] = INT16_MAX/radians(2000); @@ -796,6 +804,14 @@ bool AP_InertialSensor::register_accel(uint8_t &instance, uint16_t raw_sample_ra return false; } + // Loop over the existing instances and check if the instance already exists + for (uint8_t instance_to_check = 0; instance_to_check < _accel_count; instance_to_check++) { + if ((uint32_t)_accel_id(instance_to_check) == id) { + // if it does, then bail + return false; + } + } + _accel_raw_sample_rates[_accel_count] = raw_sample_rate_hz; _accel_over_sampling[_accel_count] = 1; _accel_raw_sampling_multiplier[_accel_count] = INT16_MAX/(16*GRAVITY_MSS); From 84ff78f5c6ace6d2e3b332dae166e84b196f4dcf Mon Sep 17 00:00:00 2001 From: muramura Date: Wed, 26 Jun 2024 21:27:17 +0900 Subject: [PATCH 168/232] AP_Notify: Perform common checks first --- libraries/AP_Notify/RGBLed.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/libraries/AP_Notify/RGBLed.cpp b/libraries/AP_Notify/RGBLed.cpp index 944fb1d0e82ac..caa549fd94cae 100644 --- a/libraries/AP_Notify/RGBLed.cpp +++ b/libraries/AP_Notify/RGBLed.cpp @@ -165,16 +165,13 @@ uint32_t RGBLed::get_colour_sequence(void) const if (!AP_Notify::flags.pre_arm_check) { return sequence_prearm_failing; } - if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS && - AP_Notify::flags.pre_arm_gps_check && - good_ahrs_location) { - return sequence_disarmed_good_dgps_and_location; - } - - if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D && - AP_Notify::flags.pre_arm_gps_check && - good_ahrs_location) { - return sequence_disarmed_good_gps_and_location; + if (AP_Notify::flags.pre_arm_gps_check && good_ahrs_location) { + if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D_DGPS) { + return sequence_disarmed_good_dgps_and_location; + } + if (AP_Notify::flags.gps_status >= AP_GPS::GPS_OK_FIX_3D) { + return sequence_disarmed_good_gps_and_location; + } } #endif From 2ab3d0b3b0a337b444e9cce24c567a9fe28598f3 Mon Sep 17 00:00:00 2001 From: Leonard Hall Date: Tue, 23 Jul 2024 17:01:53 +0930 Subject: [PATCH 169/232] AC_AttitudeControl: Add Landed Gain Backoff --- .../AC_AttitudeControl/AC_AttitudeControl.cpp | 40 +++++++++++++++++++ .../AC_AttitudeControl/AC_AttitudeControl.h | 11 +++++ 2 files changed, 51 insertions(+) diff --git a/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp b/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp index 0465ece670ec6..14d3a1fc7f32d 100644 --- a/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp +++ b/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp @@ -150,6 +150,27 @@ const AP_Param::GroupInfo AC_AttitudeControl::var_info[] = { // @User: Standard AP_GROUPINFO("INPUT_TC", 20, AC_AttitudeControl, _input_tc, AC_ATTITUDE_CONTROL_INPUT_TC_DEFAULT), + // @Param: LAND_R_MULT + // @DisplayName: Landed roll gain multiplier + // @Description: Roll gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the roll axis. + // @Range: 0.25 1.0 + // @User: Advanced + AP_GROUPINFO("LAND_R_MULT", 21, AC_AttitudeControl, _land_roll_mult, 1.0), + + // @Param: LAND_P_MULT + // @DisplayName: Landed pitch gain multiplier + // @Description: Pitch gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the pitch axis. + // @Range: 0.25 1.0 + // @User: Advanced + AP_GROUPINFO("LAND_P_MULT", 22, AC_AttitudeControl, _land_pitch_mult, 1.0), + + // @Param: LAND_Y_MULT + // @DisplayName: Landed yaw gain multiplier + // @Description: Yaw gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the yaw axis. + // @Range: 0.25 1.0 + // @User: Advanced + AP_GROUPINFO("LAND_Y_MULT", 23, AC_AttitudeControl, _land_yaw_mult, 1.0), + AP_GROUPEND }; @@ -204,6 +225,25 @@ void AC_AttitudeControl::reset_rate_controller_I_terms_smoothly() get_rate_yaw_pid().relax_integrator(0.0, _dt, AC_ATTITUDE_RATE_RELAX_TC); } +// Reduce attitude control gains while landed to stop ground resonance +void AC_AttitudeControl::landed_gain_reduction(bool landed) +{ + if (is_positive(_input_tc)) { + // use 2.0 x tc to match the response time to 86% commanded + const float spool_step = _dt / (2.0 * _input_tc); + if (landed) { + _landed_gain_ratio = MIN(1.0, _landed_gain_ratio + spool_step); + } else { + _landed_gain_ratio = MAX(0.0, _landed_gain_ratio - spool_step); + } + } else { + _landed_gain_ratio = landed ? 1.0 : 0.0; + } + Vector3f scale_mult = VECTORF_111 * (1.0 - _landed_gain_ratio) + Vector3f(_land_roll_mult, _land_pitch_mult, _land_yaw_mult) * _landed_gain_ratio; + set_PD_scale_mult(scale_mult); + set_angle_P_scale_mult(scale_mult); +} + // The attitude controller works around the concept of the desired attitude, target attitude // and measured attitude. The desired attitude is the attitude input into the attitude controller // that expresses where the higher level code would like the aircraft to move to. The target attitude is moved diff --git a/libraries/AC_AttitudeControl/AC_AttitudeControl.h b/libraries/AC_AttitudeControl/AC_AttitudeControl.h index 1883546c5632d..b3968282580d5 100644 --- a/libraries/AC_AttitudeControl/AC_AttitudeControl.h +++ b/libraries/AC_AttitudeControl/AC_AttitudeControl.h @@ -163,6 +163,9 @@ class AC_AttitudeControl { // reset rate controller I terms smoothly to zero in 0.5 seconds void reset_rate_controller_I_terms_smoothly(); + // Reduce attitude control gains while landed to stop ground resonance + void landed_gain_reduction(bool landed); + // Sets attitude target to vehicle attitude and sets all rates to zero // If reset_rate is false rates are not reset to allow the rate controllers to run void reset_target_and_rate(bool reset_rate = true); @@ -479,6 +482,11 @@ class AC_AttitudeControl { // rate controller input smoothing time constant AP_Float _input_tc; + // Controller gain multiplyer to be used when landed + AP_Float _land_roll_mult; + AP_Float _land_pitch_mult; + AP_Float _land_yaw_mult; + // Intersampling period in seconds float _dt; @@ -561,6 +569,9 @@ class AC_AttitudeControl { // PD scale used for last loop, used for logging Vector3f _pd_scale_used; + // ratio of normal gain to landed gain + float _landed_gain_ratio; + // References to external libraries const AP_AHRS_View& _ahrs; const AP_MultiCopter &_aparm; From 1012be95d86930f030b4fefd632be648142c2f62 Mon Sep 17 00:00:00 2001 From: Leonard Hall Date: Tue, 23 Jul 2024 17:02:04 +0930 Subject: [PATCH 170/232] Copter: Ground oscillation gain reduction --- ArduCopter/mode.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/ArduCopter/mode.cpp b/ArduCopter/mode.cpp index 19de3725dbbeb..3a851eee91159 100644 --- a/ArduCopter/mode.cpp +++ b/ArduCopter/mode.cpp @@ -439,6 +439,7 @@ void Copter::update_flight_mode() #if AP_RANGEFINDER_ENABLED surface_tracking.invalidate_for_logging(); // invalidate surface tracking alt, flight mode will set to true if used #endif + attitude_control->landed_gain_reduction(copter.ap.land_complete); // Adjust gains when landed to attenuate ground oscillation flightmode->run(); } From 297fcfd77787bfb532bbace3b3f746d2a93af831 Mon Sep 17 00:00:00 2001 From: Clyde McQueen Date: Tue, 21 May 2024 06:52:45 -0700 Subject: [PATCH 171/232] Sub: handle MAV_CMD_DO_REPOSITION --- ArduSub/GCS_Mavlink.cpp | 43 +++++++++++++++++++++++++++++++++++++++++ ArduSub/GCS_Mavlink.h | 1 + ArduSub/mode.h | 1 + 3 files changed, 45 insertions(+) diff --git a/ArduSub/GCS_Mavlink.cpp b/ArduSub/GCS_Mavlink.cpp index c89771e18c9a3..a26dbd24ad37d 100644 --- a/ArduSub/GCS_Mavlink.cpp +++ b/ArduSub/GCS_Mavlink.cpp @@ -483,6 +483,46 @@ MAV_RESULT GCS_MAVLINK_Sub::handle_command_do_set_roi(const Location &roi_loc) return MAV_RESULT_ACCEPTED; } +MAV_RESULT GCS_MAVLINK_Sub::handle_command_int_do_reposition(const mavlink_command_int_t &packet) +{ + const bool change_modes = ((int32_t)packet.param2 & MAV_DO_REPOSITION_FLAGS_CHANGE_MODE) == MAV_DO_REPOSITION_FLAGS_CHANGE_MODE; + if (!sub.flightmode->in_guided_mode() && !change_modes) { + return MAV_RESULT_DENIED; + } + + // sanity check location + if (!check_latlng(packet.x, packet.y)) { + return MAV_RESULT_DENIED; + } + + Location request_location; + if (!location_from_command_t(packet, request_location)) { + return MAV_RESULT_DENIED; + } + + if (request_location.sanitize(sub.current_loc)) { + // if the location wasn't already sane don't load it + return MAV_RESULT_DENIED; // failed as the location is not valid + } + + // we need to do this first, as we don't want to change the flight mode unless we can also set the target + if (!sub.mode_guided.guided_set_destination(request_location)) { + return MAV_RESULT_FAILED; + } + + if (!sub.flightmode->in_guided_mode()) { + if (!sub.set_mode(Mode::Number::GUIDED, ModeReason::GCS_COMMAND)) { + return MAV_RESULT_FAILED; + } + // the position won't have been loaded if we had to change the flight mode, so load it again + if (!sub.mode_guided.guided_set_destination(request_location)) { + return MAV_RESULT_FAILED; + } + } + + return MAV_RESULT_ACCEPTED; +} + MAV_RESULT GCS_MAVLINK_Sub::handle_command_int_packet(const mavlink_command_int_t &packet, const mavlink_message_t &msg) { switch(packet.command) { @@ -496,6 +536,9 @@ MAV_RESULT GCS_MAVLINK_Sub::handle_command_int_packet(const mavlink_command_int_ case MAV_CMD_DO_MOTOR_TEST: return handle_MAV_CMD_DO_MOTOR_TEST(packet); + case MAV_CMD_DO_REPOSITION: + return handle_command_int_do_reposition(packet); + case MAV_CMD_MISSION_START: return handle_MAV_CMD_MISSION_START(packet); diff --git a/ArduSub/GCS_Mavlink.h b/ArduSub/GCS_Mavlink.h index 4ca41e1d8c9e8..c38ec3f4abb6e 100644 --- a/ArduSub/GCS_Mavlink.h +++ b/ArduSub/GCS_Mavlink.h @@ -22,6 +22,7 @@ class GCS_MAVLINK_Sub : public GCS_MAVLINK { MAV_RESULT _handle_command_preflight_calibration(const mavlink_command_int_t &packet, const mavlink_message_t &msg) override; MAV_RESULT handle_command_int_packet(const mavlink_command_int_t &packet, const mavlink_message_t &msg) override; + MAV_RESULT handle_command_int_do_reposition(const mavlink_command_int_t &packet); // override sending of scaled_pressure3 to send on-board temperature: void send_scaled_pressure3() override; diff --git a/ArduSub/mode.h b/ArduSub/mode.h index 4228d0327343c..11a6447167511 100644 --- a/ArduSub/mode.h +++ b/ArduSub/mode.h @@ -320,6 +320,7 @@ class ModeGuided : public Mode bool has_manual_throttle() const override { return false; } bool allows_arming(bool from_gcs) const override { return true; } bool is_autopilot() const override { return true; } + bool in_guided_mode() const override { return true; } bool guided_limit_check(); void guided_limit_init_time_and_pos(); void guided_set_angle(const Quaternion &q, float climb_rate_cms, bool use_yaw_rate, float yaw_rate_rads); From 872cbc72ffcb3b6425685f6b4dc004c791bce315 Mon Sep 17 00:00:00 2001 From: Clyde McQueen Date: Wed, 24 Jul 2024 13:09:44 -0700 Subject: [PATCH 172/232] autotest: MAV_CMD_DO_REPOSITION in sub --- Tools/autotest/ardusub.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Tools/autotest/ardusub.py b/Tools/autotest/ardusub.py index 635785a22897f..ffe3ef37a36e0 100644 --- a/Tools/autotest/ardusub.py +++ b/Tools/autotest/ardusub.py @@ -739,6 +739,35 @@ def MAV_CMD_CONDITION_YAW(self): self._MAV_CMD_CONDITION_YAW(self.run_cmd) self._MAV_CMD_CONDITION_YAW(self.run_cmd_int) + def MAV_CMD_DO_REPOSITION(self): + """Move vehicle using MAV_CMD_DO_REPOSITION""" + self.wait_ready_to_arm() + self.arm_vehicle() + + # Dive so that rangefinder is in range, required for MAV_FRAME_GLOBAL_TERRAIN_ALT + start_altitude = -25 + pwm = 1300 if self.get_altitude(relative=True) > start_altitude else 1700 + self.set_rc(Joystick.Throttle, pwm) + self.wait_altitude(altitude_min=start_altitude-1, altitude_max=start_altitude, relative=False, timeout=120) + self.set_rc(Joystick.Throttle, 1500) + self.change_mode('GUIDED') + + loc = self.mav.location() + + # Reposition, alt relative to surface + loc = self.offset_location_ne(loc, 10, 10) + loc.alt = start_altitude + self.send_do_reposition(loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_RELATIVE_ALT) + self.wait_location(loc, timeout=120) + + # Reposition, alt relative to seafloor + loc = self.offset_location_ne(loc, 10, 10) + loc.alt = -start_altitude + self.send_do_reposition(loc, frame=mavutil.mavlink.MAV_FRAME_GLOBAL_TERRAIN_ALT) + self.wait_location(loc, timeout=120) + + self.disarm_vehicle() + def TerrainMission(self): """Mission using surface tracking""" @@ -877,6 +906,7 @@ def tests(self): self.MAV_CMD_MISSION_START, self.MAV_CMD_DO_CHANGE_SPEED, self.MAV_CMD_CONDITION_YAW, + self.MAV_CMD_DO_REPOSITION, self.TerrainMission, self.SetGlobalOrigin, self.backup_home, From cbef0944353d256967ed0967e8b74fcac265e8b3 Mon Sep 17 00:00:00 2001 From: Clyde McQueen Date: Wed, 24 Jul 2024 10:14:32 -0700 Subject: [PATCH 173/232] autotest: test mag fusion --- Tools/autotest/ardusub.py | 70 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/Tools/autotest/ardusub.py b/Tools/autotest/ardusub.py index ffe3ef37a36e0..e33b4a588b181 100644 --- a/Tools/autotest/ardusub.py +++ b/Tools/autotest/ardusub.py @@ -36,6 +36,22 @@ class Joystick(): Lateral = 6 +# Values for EK3_MAG_CAL +class MagCal(): + WHEN_FLYING = 0 + WHEN_MANOEUVRING = 1 + NEVER = 2 + AFTER_FIRST_CLIMB = 3 + ALWAYS = 4 + + +# Values for XKFS.MAG_FUSION +class MagFuseSel(): + NOT_FUSING = 0 + FUSE_YAW = 1 + FUSE_MAG = 2 + + class AutoTestSub(vehicle_test_suite.TestSuite): @staticmethod def get_not_armable_mode_list(): @@ -850,7 +866,7 @@ def SetGlobalOrigin(self): # restart GPS driver self.reboot_sitl() - def backup_home(self): + def backup_origin(self): """Test ORIGIN_LAT and ORIGIN_LON parameters""" self.context_push() @@ -881,6 +897,55 @@ def backup_home(self): self.disarm_vehicle() self.context_pop() + def assert_mag_fusion_selection(self, expect_sel): + """Get the most recent XKFS message and check the MAG_FUSION value""" + self.progress("Expect mag fusion selection %d" % expect_sel) + mlog = self.dfreader_for_current_onboard_log() + found_sel = MagFuseSel.NOT_FUSING + while True: + m = mlog.recv_match(type='XKFS') + if m is None: + break + found_sel = m.MAG_FUSION + if found_sel != expect_sel: + raise NotAchievedException("Expected mag fusion selection %d, found %d" % (expect_sel, found_sel)) + + def fuse_mag(self): + """Test EK3_MAG_CAL values""" + + # WHEN_FLYING: switch to FUSE_MAG after sub is armed for 5 seconds; switch to FUSE_YAW on disarm + self.set_parameters({'EK3_MAG_CAL': MagCal.WHEN_FLYING}) + self.reboot_sitl() + self.wait_ready_to_arm() + self.assert_mag_fusion_selection(MagFuseSel.FUSE_YAW) + self.arm_vehicle() + self.delay_sim_time(10) + self.assert_mag_fusion_selection(MagFuseSel.FUSE_MAG) + self.disarm_vehicle() + self.delay_sim_time(1) + self.assert_mag_fusion_selection(MagFuseSel.FUSE_YAW) + + # AFTER_FIRST_CLIMB: switch to FUSE_MAG after sub is armed and descends 0.5m; switch to FUSE_YAW on disarm + self.set_parameters({'EK3_MAG_CAL': MagCal.AFTER_FIRST_CLIMB}) + self.reboot_sitl() + self.wait_ready_to_arm() + self.assert_mag_fusion_selection(MagFuseSel.FUSE_YAW) + altitude = self.get_altitude(relative=True) + self.arm_vehicle() + self.set_rc(Joystick.Throttle, 1300) + self.wait_altitude(altitude_min=altitude-4, altitude_max=altitude-3, relative=False, timeout=60) + self.set_rc(Joystick.Throttle, 1500) + self.assert_mag_fusion_selection(MagFuseSel.FUSE_MAG) + self.disarm_vehicle() + self.delay_sim_time(1) + self.assert_mag_fusion_selection(MagFuseSel.FUSE_YAW) + + # ALWAYS + self.set_parameters({'EK3_MAG_CAL': MagCal.ALWAYS}) + self.reboot_sitl() + self.wait_ready_to_arm() + self.assert_mag_fusion_selection(MagFuseSel.FUSE_MAG) + def tests(self): '''return list of all tests''' ret = super(AutoTestSub, self).tests() @@ -909,7 +974,8 @@ def tests(self): self.MAV_CMD_DO_REPOSITION, self.TerrainMission, self.SetGlobalOrigin, - self.backup_home, + self.backup_origin, + self.fuse_mag, ]) return ret From 6a13432a21c63463a8ff15dd7386c729041828f1 Mon Sep 17 00:00:00 2001 From: rishabsingh3003 Date: Tue, 23 Jul 2024 10:15:45 -0400 Subject: [PATCH 174/232] AP_Periph: Fix compiling issues with AP_PERIPH_PROBE_CONTIONUS enabled --- Tools/AP_Periph/compass.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/AP_Periph/compass.cpp b/Tools/AP_Periph/compass.cpp index 2c70ae1cc04ff..5a4cd5eb842af 100644 --- a/Tools/AP_Periph/compass.cpp +++ b/Tools/AP_Periph/compass.cpp @@ -20,6 +20,8 @@ #define AP_PERIPH_MAG_HIRES 0 #endif +extern const AP_HAL::HAL &hal; + /* update CAN magnetometer */ From ace57047faff545bbac88fac62224c965d3c2f28 Mon Sep 17 00:00:00 2001 From: muramura Date: Sun, 14 Jul 2024 23:10:24 +0900 Subject: [PATCH 175/232] Copter: Distinguish preprocessor processing --- ArduCopter/AP_Arming.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ArduCopter/AP_Arming.cpp b/ArduCopter/AP_Arming.cpp index c711b06f5197e..a003f23756b8b 100644 --- a/ArduCopter/AP_Arming.cpp +++ b/ArduCopter/AP_Arming.cpp @@ -341,10 +341,10 @@ bool AP_Arming_Copter::gps_checks(bool display_failure) { // check if fence requires GPS bool fence_requires_gps = false; - #if AP_FENCE_ENABLED +#if AP_FENCE_ENABLED // if circular or polygon fence is enabled we need GPS fence_requires_gps = (copter.fence.get_enabled_fences() & (AC_FENCE_TYPE_CIRCLE | AC_FENCE_TYPE_POLYGON)) > 0; - #endif +#endif // check if flight mode requires GPS bool mode_requires_gps = copter.flightmode->requires_GPS() || fence_requires_gps || (copter.simple_mode == Copter::SimpleMode::SUPERSIMPLE); @@ -443,10 +443,10 @@ bool AP_Arming_Copter::mandatory_gps_checks(bool display_failure) // check if fence requires GPS bool fence_requires_gps = false; - #if AP_FENCE_ENABLED +#if AP_FENCE_ENABLED // if circular or polygon fence is enabled we need GPS fence_requires_gps = (copter.fence.get_enabled_fences() & (AC_FENCE_TYPE_CIRCLE | AC_FENCE_TYPE_POLYGON)) > 0; - #endif +#endif if (mode_requires_gps || copter.option_is_enabled(Copter::FlightOption::REQUIRE_POSITION_FOR_ARMING)) { if (!copter.position_ok()) { From 14d94552eb8c2c8ef424a66e17105cba18a5a0ae Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 10 Jul 2024 16:41:21 +1000 Subject: [PATCH 176/232] Tools: update BotBloxSwitch bootloader --- Tools/bootloaders/BotBloxSwitch_bl.bin | Bin 92588 -> 92700 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Tools/bootloaders/BotBloxSwitch_bl.bin b/Tools/bootloaders/BotBloxSwitch_bl.bin index 77f7357d05cdb3dc132c292de5b754d199ee70e0..f183d8d66dddadd117e462291a13d29fa0265303 100755 GIT binary patch delta 21314 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 delta 21217 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 U364&% Date: Wed, 10 Jul 2024 16:41:05 +1000 Subject: [PATCH 177/232] hwdef: fixes for BotBloxSwitch --- .../hwdef/BotBloxSwitch/defaults.parm | 15 ++++++ .../hwdef/BotBloxSwitch/hwdef-bl.dat | 16 ++++--- .../hwdef/BotBloxSwitch/hwdef.dat | 48 ++++++++++++------- 3 files changed, 56 insertions(+), 23 deletions(-) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/defaults.parm diff --git a/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/defaults.parm new file mode 100644 index 0000000000000..f508c948650b0 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/defaults.parm @@ -0,0 +1,15 @@ +NET_ENABLE 1 +NET_OPTIONS 1 + +# enable hw flow control +UART1_RTSCTS 1 + +# swap TX and RX +UART1_OPTIONS 8 + +SCR_ENABLE 1 +SCR_VM_I_COUNT 1000000 +SCR_HEAP_SIZE 150000 + +WEB_ENABLE 1 +WEB_PORT 80 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef-bl.dat index 5984ec4712d62..03960b2247070 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef-bl.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef-bl.dat @@ -7,7 +7,7 @@ MCU STM32H7xx STM32H723xx # crystal frequency -OSCILLATOR_HZ 0 +OSCILLATOR_HZ 16000000 # setup build for a peripheral bootloader env AP_PERIPH 1 @@ -39,13 +39,18 @@ PA14 JTCK-SWCLK SWD PD0 CAN1_RX CAN1 PD1 CAN1_TX CAN1 +#PD4 USART2_DE USART2 +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 + PD8 USART3_TX USART3 PD9 USART3_RX USART3 PD12 USART3_RTS USART3 PD11 USART3_CTS USART3 # LEDs -PE5 LED_BOOTLOADER OUTPUT OPENDRAIN HIGH # blue +PC0 LED_STT1 OUTPUT OPENDRAIN HIGH +PA4 LED_STT2 OUTPUT OPENDRAIN HIGH define HAL_LED_ON 0 define HAL_USE_EMPTY_STORAGE 1 @@ -55,15 +60,14 @@ PC1 ETH_MDC ETH1 PA2 ETH_MDIO ETH1 PC4 ETH_RMII_RXD0 ETH1 PC5 ETH_RMII_RXD1 ETH1 -#PB12 ETH_RMII_TXD0 ETH1 -PG13 ETH_RMII_TXD0 ETH1 +PB12 ETH_RMII_TXD0 ETH1 PB13 ETH_RMII_TXD1 ETH1 -#PB11 ETH_RMII_TX_EN ETH1 -PG11 ETH_RMII_TX_EN ETH1 +PB11 ETH_RMII_TX_EN ETH1 PA7 ETH_RMII_CRS_DV ETH1 PA1 ETH_RMII_REF_CLK ETH1 define BOARD_PHY_ID MII_LAN8742A_ID +define BOARD_PHY_ADDRESS 0x0005 define BOARD_PHY_RMII include ../include/network_bootloader.inc diff --git a/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef.dat index 24f6c6e702b2b..f277e0068d3bb 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/BotBloxSwitch/hwdef.dat @@ -8,7 +8,7 @@ DEFAULTGPIO OUTPUT LOW PULLDOWN MCU STM32H7xx STM32H723xx # crystal frequency -OSCILLATOR_HZ 0 +OSCILLATOR_HZ 16000000 # setup build for a peripheral bootloader env AP_PERIPH 1 @@ -42,46 +42,60 @@ PA9 VBUS INPUT OPENDRAIN PD0 CAN1_RX CAN1 PD1 CAN1_TX CAN1 +#PD4 USART2_DE USART2 +PD5 USART2_TX USART2 +PD6 USART2_RX USART2 + PD8 USART3_TX USART3 PD9 USART3_RX USART3 PD12 USART3_RTS USART3 PD11 USART3_CTS USART3 # LEDs -PE3 LED_RED OUTPUT OPENDRAIN HIGH -PE4 LED_GREEN OUTPUT OPENDRAIN HIGH -PE5 LED_BLUE OUTPUT OPENDRAIN HIGH +PC0 LED_STT1 OUTPUT OPENDRAIN HIGH +PA4 LED_STT2 OUTPUT OPENDRAIN HIGH define HAL_LED_ON 0 -# use blue LED -define HAL_GPIO_PIN_LED HAL_GPIO_PIN_LED_BLUE +# use first LED +define HAL_GPIO_PIN_LED HAL_GPIO_PIN_LED_STT1 + +# Ethernet switch chip reset pin +PD13 GPIO_ETH_RST OUTPUT HIGH PULLUP +# CAN1 standby GPIO +PA0 GPIO_CAN_S OUTPUT LOW PULLUP + +# GPIO/PWMs +#PC6 TIM3_CH1 TIM3 PWM(1) GPIO(100) +#PB14 TIM12_CH1 TIM12 PWM(2) GPIO(101) +#PB15 TIM12_CH2 TIM12 PWM(3) GPIO(102) PC1 ETH_MDC ETH1 PA2 ETH_MDIO ETH1 PC4 ETH_RMII_RXD0 ETH1 PC5 ETH_RMII_RXD1 ETH1 -#PB12 ETH_RMII_TXD0 ETH1 -PG13 ETH_RMII_TXD0 ETH1 +PB12 ETH_RMII_TXD0 ETH1 PB13 ETH_RMII_TXD1 ETH1 -#PB11 ETH_RMII_TX_EN ETH1 -PG11 ETH_RMII_TX_EN ETH1 +PB11 ETH_RMII_TX_EN ETH1 PA7 ETH_RMII_CRS_DV ETH1 PA1 ETH_RMII_REF_CLK ETH1 define BOARD_PHY_ID MII_LAN8742A_ID +define BOARD_PHY_ADDRESS 0x0005 define BOARD_PHY_RMII -include ../include/network_PPPGW.inc +define HAL_PERIPH_ENABLE_NETWORKING +define AP_NETWORKING_MAX_INSTANCES 4 # allow load from USB SERIAL_ORDER OTG1 USART3 -# no ADC pins +define HAL_RCIN_THREAD_ENABLED 1 +define HAL_SCHEDULER_LOOP_DELAY_ENABLED 1 + define HAL_USE_ADC FALSE -define STM32_ADC_USE_ADC1 FALSE -define STM32_ADC_USE_ADC2 FALSE -define STM32_ADC_USE_ADC3 FALSE +define AP_SERIALMANAGER_REGISTER_ENABLED 1 +define AP_SCRIPTING_ENABLED 1 +define AP_FILESYSTEM_ROMFS_ENABLED 1 -define HAL_RCIN_THREAD_ENABLED 1 -define HAL_SCHEDULER_LOOP_DELAY_ENABLED 1 +include ../include/network_PPPGW.inc From a0ac6f22df5cffee82d343135ad24905834d8cfd Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Tue, 18 Apr 2023 22:59:30 +1000 Subject: [PATCH 178/232] AP_CANManager: use a switch statement to tidy driver allocation --- libraries/AP_CANManager/AP_CANManager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libraries/AP_CANManager/AP_CANManager.cpp b/libraries/AP_CANManager/AP_CANManager.cpp index 56f6b59ece6fb..5f6d2cfefd5be 100644 --- a/libraries/AP_CANManager/AP_CANManager.cpp +++ b/libraries/AP_CANManager/AP_CANManager.cpp @@ -199,8 +199,9 @@ void AP_CANManager::init() } // Allocate the set type of Driver + switch (drv_type[drv_num]) { #if HAL_ENABLE_DRONECAN_DRIVERS - if (drv_type[drv_num] == AP_CAN::Protocol::DroneCAN) { + case AP_CAN::Protocol::DroneCAN: _drivers[drv_num] = _drv_param[drv_num]._uavcan = NEW_NOTHROW AP_DroneCAN(drv_num); if (_drivers[drv_num] == nullptr) { @@ -209,10 +210,10 @@ void AP_CANManager::init() } AP_Param::load_object_from_eeprom((AP_DroneCAN*)_drivers[drv_num], AP_DroneCAN::var_info); - } else + break; #endif #if HAL_PICCOLO_CAN_ENABLE - if (drv_type[drv_num] == AP_CAN::Protocol::PiccoloCAN) { + case AP_CAN::Protocol::PiccoloCAN: _drivers[drv_num] = _drv_param[drv_num]._piccolocan = NEW_NOTHROW AP_PiccoloCAN; if (_drivers[drv_num] == nullptr) { @@ -221,9 +222,9 @@ void AP_CANManager::init() } AP_Param::load_object_from_eeprom((AP_PiccoloCAN*)_drivers[drv_num], AP_PiccoloCAN::var_info); - } else + break; #endif - { + default: continue; } From 9f2da4a763773795e2fc5f075c5336bb57d32403 Mon Sep 17 00:00:00 2001 From: muramura Date: Thu, 2 May 2024 05:12:50 +0900 Subject: [PATCH 179/232] AP_Mission: Change division to multiplication --- libraries/AP_Mission/AP_Mission.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index 3e138e7cacb40..2e5fb77d99633 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -1821,7 +1821,7 @@ bool AP_Mission::mission_cmd_to_mavlink_int(const AP_Mission::Mission_Command& c #if AP_MISSION_NAV_PAYLOAD_PLACE_ENABLED case MAV_CMD_NAV_PAYLOAD_PLACE: - packet.param1 = cmd.p1/100.0f; // copy max-descend parameter (cm->m) + packet.param1 = cmd.p1*0.01f; // copy max-descend parameter (cm->m) break; #endif From f1e67ba7470314d2eb00f278f062d664124a5274 Mon Sep 17 00:00:00 2001 From: muramura Date: Sat, 16 Sep 2023 03:06:35 +0900 Subject: [PATCH 180/232] AP_Mount: SWITCH statement to table reference --- libraries/AP_Mount/AP_Mount_Siyi.cpp | 43 ++++++++-------------------- 1 file changed, 12 insertions(+), 31 deletions(-) diff --git a/libraries/AP_Mount/AP_Mount_Siyi.cpp b/libraries/AP_Mount/AP_Mount_Siyi.cpp index bb2ee5ee025fc..2202446b92998 100644 --- a/libraries/AP_Mount/AP_Mount_Siyi.cpp +++ b/libraries/AP_Mount/AP_Mount_Siyi.cpp @@ -916,39 +916,20 @@ bool AP_Mount_Siyi::set_lens(uint8_t lens) } // maps lens to siyi camera image type so that lens of 0, 1, 2 are more useful - CameraImageType cam_image_type = CameraImageType::MAIN_ZOOM_SUB_THERMAL; - switch (lens) { - case 0: - cam_image_type = CameraImageType::MAIN_ZOOM_SUB_THERMAL; // 3 - break; - case 1: - cam_image_type = CameraImageType::MAIN_WIDEANGLE_SUB_THERMAL; // 5 - break; - case 2: - cam_image_type = CameraImageType::MAIN_THERMAL_SUB_ZOOM; // 7 - break; - case 3: - cam_image_type = CameraImageType::MAIN_PIP_ZOOM_THERMAL_SUB_WIDEANGLE; // 0 - break; - case 4: - cam_image_type = CameraImageType::MAIN_PIP_WIDEANGLE_THERMAL_SUB_ZOOM; // 1 - break; - case 5: - cam_image_type = CameraImageType::MAIN_PIP_ZOOM_WIDEANGLE_SUB_THERMAL; // 2 - break; - case 6: - cam_image_type = CameraImageType::MAIN_ZOOM_SUB_WIDEANGLE; // 4 - break; - case 7: - cam_image_type = CameraImageType::MAIN_WIDEANGLE_SUB_ZOOM; // 6 - break; - case 8: - cam_image_type = CameraImageType::MAIN_THERMAL_SUB_WIDEANGLE; // 8 - break; - } + static CameraImageType cam_image_type_table[9] = { + CameraImageType::MAIN_ZOOM_SUB_THERMAL, // 3 + CameraImageType::MAIN_WIDEANGLE_SUB_THERMAL, // 5 + CameraImageType::MAIN_THERMAL_SUB_ZOOM, // 7 + CameraImageType::MAIN_PIP_ZOOM_THERMAL_SUB_WIDEANGLE, // 0 + CameraImageType::MAIN_PIP_WIDEANGLE_THERMAL_SUB_ZOOM, // 1 + CameraImageType::MAIN_PIP_ZOOM_WIDEANGLE_SUB_THERMAL, // 2 + CameraImageType::MAIN_ZOOM_SUB_WIDEANGLE, // 4 + CameraImageType::MAIN_WIDEANGLE_SUB_ZOOM, // 6 + CameraImageType::MAIN_THERMAL_SUB_WIDEANGLE, // 8 + }; // send desired image type to camera - return send_1byte_packet(SiyiCommandId::SET_CAMERA_IMAGE_TYPE, (uint8_t)cam_image_type); + return send_1byte_packet(SiyiCommandId::SET_CAMERA_IMAGE_TYPE, (uint8_t)cam_image_type_table[lens]); } // set_camera_source is functionally the same as set_lens except primary and secondary lenses are specified by type From 7f97e897e26310bc9e07aec2db8c44ae08dbc2d5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 10 Jul 2024 22:41:02 +1000 Subject: [PATCH 181/232] AP_Camera: add sanity check for Siyi lens change --- libraries/AP_Mount/AP_Mount_Siyi.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/AP_Mount/AP_Mount_Siyi.cpp b/libraries/AP_Mount/AP_Mount_Siyi.cpp index 2202446b92998..2158eb6dad707 100644 --- a/libraries/AP_Mount/AP_Mount_Siyi.cpp +++ b/libraries/AP_Mount/AP_Mount_Siyi.cpp @@ -916,7 +916,7 @@ bool AP_Mount_Siyi::set_lens(uint8_t lens) } // maps lens to siyi camera image type so that lens of 0, 1, 2 are more useful - static CameraImageType cam_image_type_table[9] = { + static const CameraImageType cam_image_type_table[] { CameraImageType::MAIN_ZOOM_SUB_THERMAL, // 3 CameraImageType::MAIN_WIDEANGLE_SUB_THERMAL, // 5 CameraImageType::MAIN_THERMAL_SUB_ZOOM, // 7 @@ -928,6 +928,10 @@ bool AP_Mount_Siyi::set_lens(uint8_t lens) CameraImageType::MAIN_THERMAL_SUB_WIDEANGLE, // 8 }; + if (lens >= ARRAY_SIZE(cam_image_type_table)) { + return false; + } + // send desired image type to camera return send_1byte_packet(SiyiCommandId::SET_CAMERA_IMAGE_TYPE, (uint8_t)cam_image_type_table[lens]); } From 1e001fa0174bd7937d01b7e24f87cf3e7a5e51ad Mon Sep 17 00:00:00 2001 From: muramura Date: Thu, 2 May 2024 15:47:00 +0900 Subject: [PATCH 182/232] Rover: Change the IF statement to a SWITCH statement --- Rover/GCS_Mavlink.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Rover/GCS_Mavlink.cpp b/Rover/GCS_Mavlink.cpp index e718273703ce6..54bd15f4319d5 100644 --- a/Rover/GCS_Mavlink.cpp +++ b/Rover/GCS_Mavlink.cpp @@ -856,10 +856,14 @@ void GCS_MAVLINK_Rover::handle_set_position_target_local_ned(const mavlink_messa } // check for supported coordinate frames - if (packet.coordinate_frame != MAV_FRAME_LOCAL_NED && - packet.coordinate_frame != MAV_FRAME_LOCAL_OFFSET_NED && - packet.coordinate_frame != MAV_FRAME_BODY_NED && - packet.coordinate_frame != MAV_FRAME_BODY_OFFSET_NED) { + switch (packet.coordinate_frame) { + case MAV_FRAME_LOCAL_NED: + case MAV_FRAME_LOCAL_OFFSET_NED: + case MAV_FRAME_BODY_NED: + case MAV_FRAME_BODY_OFFSET_NED: + break; + + default: return; } @@ -975,14 +979,19 @@ void GCS_MAVLINK_Rover::handle_set_position_target_global_int(const mavlink_mess return; } // check for supported coordinate frames - if (packet.coordinate_frame != MAV_FRAME_GLOBAL && - packet.coordinate_frame != MAV_FRAME_GLOBAL_INT && - packet.coordinate_frame != MAV_FRAME_GLOBAL_RELATIVE_ALT && - packet.coordinate_frame != MAV_FRAME_GLOBAL_RELATIVE_ALT_INT && - packet.coordinate_frame != MAV_FRAME_GLOBAL_TERRAIN_ALT && - packet.coordinate_frame != MAV_FRAME_GLOBAL_TERRAIN_ALT_INT) { + switch (packet.coordinate_frame) { + case MAV_FRAME_GLOBAL: + case MAV_FRAME_GLOBAL_INT: + case MAV_FRAME_GLOBAL_RELATIVE_ALT: + case MAV_FRAME_GLOBAL_RELATIVE_ALT_INT: + case MAV_FRAME_GLOBAL_TERRAIN_ALT: + case MAV_FRAME_GLOBAL_TERRAIN_ALT_INT: + break; + + default: return; } + bool pos_ignore = packet.type_mask & MAVLINK_SET_POS_TYPE_MASK_POS_IGNORE; bool vel_ignore = packet.type_mask & MAVLINK_SET_POS_TYPE_MASK_VEL_IGNORE; bool acc_ignore = packet.type_mask & MAVLINK_SET_POS_TYPE_MASK_ACC_IGNORE; From f849187333b02a898b7cb9e07117eada751f2045 Mon Sep 17 00:00:00 2001 From: aditya Date: Mon, 2 Oct 2023 03:13:19 +0530 Subject: [PATCH 183/232] build_options.py: add winch backends --- Tools/scripts/build_options.py | 3 +++ Tools/scripts/extract_features.py | 1 + 2 files changed, 4 insertions(+) diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index bb19e6b4c69bf..e613550f16e15 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -191,6 +191,9 @@ def __init__(self, Feature('Payload', 'SPRAYER', 'HAL_SPRAYER_ENABLED', 'Enable Sprayer', 0, None), Feature('Payload', 'LANDING_GEAR', 'AP_LANDINGGEAR_ENABLED', 'Enable Landing Gear', 0, None), Feature('Payload', 'WINCH', 'AP_WINCH_ENABLED', 'Enable Winch', 0, None), + Feature('Payload', 'WINCH_DAIWA', 'AP_WINCH_DAIWA_ENABLED', 'Enable DAIWA Winch support', 0, 'WINCH'), + Feature('Payload', 'WINCH_PWM', 'AP_WINCH_PWM_ENABLED', 'Enable PWM Winch support', 0, 'WINCH'), + Feature('Payload', 'RELAY', 'AP_RELAY_ENABLED', 'Enable Relay support', 0, None), Feature('Payload', 'SERVORELAY_EVENTS', 'AP_SERVORELAYEVENTS_ENABLED', 'Enable Servo/Relay Event support', 0, None), diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index c1f3aa86b6cb5..7143758470446 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -170,6 +170,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('HAL_SPRAYER_ENABLED', 'AC_Sprayer::AC_Sprayer',), ('AP_LANDINGGEAR_ENABLED', r'AP_LandingGear::init\b',), ('AP_WINCH_ENABLED', 'AP_Winch::AP_Winch',), + ('AP_WINCH_{type}_ENABLED', r'AP_Winch_(?P.*)::update\b',), ('AP_RELAY_ENABLED', 'AP_Relay::init',), ('AP_SERVORELAYEVENTS_ENABLED', 'AP_ServoRelayEvents::update_events',), From 278595cf83c9d7a02ca366442277bc585d489987 Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 25 Jul 2024 12:25:24 +0100 Subject: [PATCH 184/232] AP_HAL_ChibiOS: add support for sdcard to iFlight 2RAW --- libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat index 800775bb31e30..d90fe2e67904e 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat @@ -36,6 +36,11 @@ PB13 SPI2_SCK SPI2 PB14 SPI2_MISO SPI2 PB15 SPI2_MOSI SPI2 +# SPI3 +PC12 SPI3_MOSI SPI3 +PC11 SPI3_MISO SPI3 +PC10 SPI3_SCK SPI3 + # Chip select pins PA15 SDCARD1_CS CS PB12 OSD1_CS CS @@ -123,10 +128,11 @@ define HAL_GPIO_B_LED_PIN 91 BARO SPL06 I2C:1:0x76 -# IMU setup +# SPI setup +SPIDEV imu1 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 16*MHZ +SPIDEV sdcard SPI3 DEVID1 SDCARD1_CS MODE0 400*KHZ 25*MHZ # IMU setup -SPIDEV imu1 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 16*MHZ IMU Invensensev3 SPI:imu1 ROTATION_ROLL_180 DMA_NOSHARE TIM3_UP TIM5_UP TIM4_UP SPI1* @@ -141,3 +147,4 @@ define HAL_COMPASS_AUTO_ROT_DEFAULT 2 define HAL_DEFAULT_INS_FAST_SAMPLE 1 # Motor order implies Betaflight/X for standard ESCs define HAL_FRAME_TYPE_DEFAULT 12 +define HAL_OS_FATFS_IO 1 From 74f72db4eb0b2838c73ca5b199104f291090afef Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 25 Jul 2024 12:27:21 +0100 Subject: [PATCH 185/232] AP_HAL_ChibiOS: rename 2RAWH743 to IFLIGHT_2RAW_H7 --- .../hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/README.md | 0 .../{2RAWH743 => IFLIGHT_2RAW_H7}/Thunder-H7-1.png | Bin .../{2RAWH743 => IFLIGHT_2RAW_H7}/Thunder-H7-2.png | Bin .../{2RAWH743 => IFLIGHT_2RAW_H7}/defaults.parm | 0 .../{2RAWH743 => IFLIGHT_2RAW_H7}/hwdef-bl.dat | 0 .../hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/hwdef.dat | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/README.md (100%) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/Thunder-H7-1.png (100%) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/Thunder-H7-2.png (100%) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/defaults.parm (100%) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/hwdef-bl.dat (100%) rename libraries/AP_HAL_ChibiOS/hwdef/{2RAWH743 => IFLIGHT_2RAW_H7}/hwdef.dat (100%) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/README.md b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/README.md rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/Thunder-H7-1.png b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-1.png similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/Thunder-H7-1.png rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-1.png diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/Thunder-H7-2.png b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-2.png similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/Thunder-H7-2.png rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/Thunder-H7-2.png diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/defaults.parm similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/defaults.parm rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/defaults.parm diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef-bl.dat similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef-bl.dat rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef-bl.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef.dat similarity index 100% rename from libraries/AP_HAL_ChibiOS/hwdef/2RAWH743/hwdef.dat rename to libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/hwdef.dat From 3c9cf98cca4be87ef32487f4540d10320661f9eb Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 25 Jul 2024 12:28:32 +0100 Subject: [PATCH 186/232] bootloaders: rename 2RAWH743 to IFLIGHT_2RAW_H7 --- .../{2RAWH743_bl.bin => IFLIGHT_2RAW_H7_bl.bin} | Bin .../{2RAWH743_bl.hex => IFLIGHT_2RAW_H7_bl.hex} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Tools/bootloaders/{2RAWH743_bl.bin => IFLIGHT_2RAW_H7_bl.bin} (100%) rename Tools/bootloaders/{2RAWH743_bl.hex => IFLIGHT_2RAW_H7_bl.hex} (100%) diff --git a/Tools/bootloaders/2RAWH743_bl.bin b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.bin similarity index 100% rename from Tools/bootloaders/2RAWH743_bl.bin rename to Tools/bootloaders/IFLIGHT_2RAW_H7_bl.bin diff --git a/Tools/bootloaders/2RAWH743_bl.hex b/Tools/bootloaders/IFLIGHT_2RAW_H7_bl.hex similarity index 100% rename from Tools/bootloaders/2RAWH743_bl.hex rename to Tools/bootloaders/IFLIGHT_2RAW_H7_bl.hex From a560f89b35990ac251b10724e6dcb212913608ac Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Thu, 25 Jul 2024 12:33:56 +0100 Subject: [PATCH 187/232] AP_HAL_ChibiOS: update logging docs for 2RAW H743 --- libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md index 1264790660f38..9cb60c81804dc 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md +++ b/libraries/AP_HAL_ChibiOS/hwdef/IFLIGHT_2RAW_H7/README.md @@ -7,7 +7,7 @@ The iFlight 2RAW H743 is a flight controller produced by [iFlight](https://shop. - MCU - STM32H743 32-bit processor running at 480 MHz - IMU - ICM42688P - Barometer - SPL06-001 - - Onboard Flash: 1GBit (not useable by ArduPilot) + - Onboard Flash: 1GBit exposed as microSD card - 6x UARTs - 9x PWM Outputs (8 Motor Output, 1 LED) - Battery input voltage: 2S-6S @@ -88,6 +88,11 @@ The iFlight 2RAW H743 does not have a builtin compass, but you can attach an ext GPIO 81 controls the VTX BEC output to pins marked "10V". Setting this GPIO low removes voltage supply to pins. By default RELAY2 is configured to control this pin and sets the GPIO high. +## Logging + +Logging is via a 1GBit flash chip exposed via a microSD interface. In order to be used you must format the card using mission planner +after the first time you have loaded the firmware + ## Loading Firmware Initial firmware load can be done with DFU by plugging in USB with the From 62a03f18d8ce8e9fa48732e02070f7ccba676f03 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Thu, 25 Jul 2024 11:07:42 +0900 Subject: [PATCH 188/232] AP_Camera: type param desc gets viewpro and xacti --- libraries/AP_Camera/AP_Camera_Params.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Camera/AP_Camera_Params.cpp b/libraries/AP_Camera/AP_Camera_Params.cpp index 7fb915082c991..8890148684638 100644 --- a/libraries/AP_Camera/AP_Camera_Params.cpp +++ b/libraries/AP_Camera/AP_Camera_Params.cpp @@ -8,7 +8,7 @@ const AP_Param::GroupInfo AP_Camera_Params::var_info[] = { // @Param: _TYPE // @DisplayName: Camera shutter (trigger) type // @Description: how to trigger the camera to take a picture - // @Values: 0:None, 1:Servo, 2:Relay, 3:GoPro in Solo Gimbal, 4:Mount (Siyi), 5:MAVLink, 6:MAVLinkCamV2, 7:Scripting + // @Values: 0:None, 1:Servo, 2:Relay, 3:GoPro in Solo Gimbal, 4:Mount (Siyi/Viewpro/Xacti), 5:MAVLink, 6:MAVLinkCamV2, 7:Scripting // @User: Standard AP_GROUPINFO_FLAGS("_TYPE", 1, AP_Camera_Params, type, 0, AP_PARAM_FLAG_ENABLE), From 44b32171785490ed3f4d66d45786074b59019a55 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Thu, 25 Jul 2024 18:06:55 +0900 Subject: [PATCH 189/232] AP_Camera: type param desc gets topotek --- libraries/AP_Camera/AP_Camera_Params.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Camera/AP_Camera_Params.cpp b/libraries/AP_Camera/AP_Camera_Params.cpp index 8890148684638..749d2985f0ab4 100644 --- a/libraries/AP_Camera/AP_Camera_Params.cpp +++ b/libraries/AP_Camera/AP_Camera_Params.cpp @@ -8,7 +8,7 @@ const AP_Param::GroupInfo AP_Camera_Params::var_info[] = { // @Param: _TYPE // @DisplayName: Camera shutter (trigger) type // @Description: how to trigger the camera to take a picture - // @Values: 0:None, 1:Servo, 2:Relay, 3:GoPro in Solo Gimbal, 4:Mount (Siyi/Viewpro/Xacti), 5:MAVLink, 6:MAVLinkCamV2, 7:Scripting + // @Values: 0:None, 1:Servo, 2:Relay, 3:GoPro in Solo Gimbal, 4:Mount (Siyi/Topotek/Viewpro/Xacti), 5:MAVLink, 6:MAVLinkCamV2, 7:Scripting // @User: Standard AP_GROUPINFO_FLAGS("_TYPE", 1, AP_Camera_Params, type, 0, AP_PARAM_FLAG_ENABLE), From 5b5dd638c1ebb450dbd788f21b5a2eac8168b611 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 13:07:31 +1000 Subject: [PATCH 190/232] hwdef: FlyingMoonH743: remove MAX7456 --- libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonH743/hwdef.dat | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonH743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonH743/hwdef.dat index 4d81362bd1f95..9e1c637b83bcc 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonH743/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonH743/hwdef.dat @@ -73,7 +73,7 @@ PD1 CAN1_TX CAN1 PB12 CAN2_RX CAN2 PB13 CAN2_TX CAN2 -# SPI1 for IMU OSD +# SPI1 for IMU PA5 SPI1_SCK SPI1 PA6 SPI1_MISO SPI1 PA7 SPI1_MOSI SPI1 @@ -81,7 +81,6 @@ PB0 ICM20689_CS CS PB1 ICM42605_CS CS PB2 ICM20649_CS CS PA4 RM3100_CS CS -PA8 MAX7456_CS CS # SPI bus for dataflash AND SD PD3 SPI2_SCK SPI2 @@ -100,7 +99,6 @@ SPIDEV icm20689 SPI1 DEVID1 ICM20689_CS MODE3 2*MHZ 8*MHZ SPIDEV icm20649 SPI1 DEVID2 ICM20649_CS MODE3 2*MHZ 8*MHZ SPIDEV icm42605 SPI1 DEVID3 ICM42605_CS MODE3 2*MHZ 8*MHZ SPIDEV rm3100 SPI1 DEVID4 RM3100_CS MODE3 1*MHZ 1*MHZ -SPIDEV osd SPI1 DEVID5 MAX7456_CS MODE0 10*MHZ 10*MHZ SPIDEV ramtron SPI2 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ SPIDEV sdcard SPI2 DEVID2 FLASH_CS MODE0 1*MHZ 8*MHZ @@ -195,8 +193,3 @@ PE8 SAFETY_IN INPUT PULLDOWN # PWM output for buzzer PE5 TIM15_CH1 TIM15 GPIO(77) ALARM - -# setup for OSD -define OSD_ENABLED 1 -define HAL_OSD_TYPE_DEFAULT 1 -ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin From 78dc5a7b5db3e85d411a1134b0ffe2c2c8375a12 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 13:08:22 +1000 Subject: [PATCH 191/232] hwdef: FlyingMoonF427: remove MAX7456 --- libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonF427/hwdef.dat | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonF427/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonF427/hwdef.dat index 15306778fb10b..5df193ee03de2 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonF427/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FlyingMoonF427/hwdef.dat @@ -66,7 +66,7 @@ PD2 UART5_RX UART5 NODMA PD0 CAN1_RX CAN1 PD1 CAN1_TX CAN1 -# SPI1 for IMU OSD +# SPI1 for IMU PA5 SPI1_SCK SPI1 PA6 SPI1_MISO SPI1 PA7 SPI1_MOSI SPI1 @@ -74,7 +74,6 @@ PB0 ICM20689_CS CS PB1 ICM42605_CS CS PB2 ICM20649_CS CS PA4 RM3100_CS CS -PE10 MAX7456_CS CS # SPI bus for dataflash AND SD PB13 SPI2_SCK SPI2 @@ -93,7 +92,6 @@ SPIDEV icm20689 SPI1 DEVID1 ICM20689_CS MODE3 2*MHZ 8*MHZ SPIDEV icm20649 SPI1 DEVID2 ICM20649_CS MODE3 2*MHZ 8*MHZ SPIDEV icm42605 SPI1 DEVID3 ICM42605_CS MODE3 2*MHZ 8*MHZ SPIDEV rm3100 SPI1 DEVID4 RM3100_CS MODE3 1*MHZ 1*MHZ -SPIDEV osd SPI1 DEVID5 MAX7456_CS MODE0 10*MHZ 10*MHZ SPIDEV ramtron SPI2 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ SPIDEV sdcard SPI2 DEVID2 FLASH_CS MODE0 1*MHZ 8*MHZ @@ -187,7 +185,3 @@ PE7 LED_SAFETY OUTPUT PE8 SAFETY_IN INPUT PULLDOWN PE5 TIM9_CH1 TIM9 ALARM -# setup for OSD -define OSD_ENABLED 1 -define HAL_OSD_TYPE_DEFAULT 1 -ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin From 82d59f6ba7b68b5352b143415a1ccc6a0dd0d191 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 11:48:33 +1000 Subject: [PATCH 192/232] autotest: tidy various tests to take advantage of new infrastructure autotest: clean MotorVibration test for new infrastructure autotest: clean VisionPosition test for new infrastructure autotest: clean MotorFail test for new infrastructure autotest: clean OpticalFlowLimits test for new infrastructure autotest: tidy OpticalFlow test for new infrastructure autotest: tidy SetModeViaModeSwitch test for new infrastructure autotest: tidy SetModesViaAuxSwitch test for new infrastructure autotest: tidy SplineLastWaypoint test for new infrastructure autotest: tidy PIDNotches test for new infrastructure autotest: tidy ThrottleGainBoost test for new infrastructure autotest: tidy PrecisionLoiterCompanion test for new infrastructure autotest: tidy BeaconPosition test for new infrastructure --- Tools/autotest/arducopter.py | 990 +++++++++++++++-------------------- 1 file changed, 410 insertions(+), 580 deletions(-) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 47f4fcd5cf0e2..29c3205c3eaf7 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -2472,10 +2472,10 @@ def OpticalFlow(self): '''test OpticalFlow in flight''' self.start_subtest("Make sure no crash if no rangefinder") - self.context_push() - - self.set_parameter("SIM_FLOW_ENABLE", 1) - self.set_parameter("FLOW_TYPE", 10) + self.set_parameters({ + "SIM_FLOW_ENABLE": 1, + "FLOW_TYPE": 10, + }) self.set_analog_rangefinder_parameters() @@ -2519,74 +2519,57 @@ def check_optical_flow(mav, m): self.fly_generic_mission("CMAC-copter-navtest.txt") - self.context_pop() - - self.reboot_sitl() - def OpticalFlowLimits(self): '''test EKF navigation limiting''' - ex = None - self.context_push() - try: - - self.set_parameter("SIM_FLOW_ENABLE", 1) - self.set_parameter("FLOW_TYPE", 10) - - self.configure_EKFs_to_use_optical_flow_instead_of_GPS() - - self.set_analog_rangefinder_parameters() - - self.set_parameter("SIM_GPS_DISABLE", 1) - self.set_parameter("SIM_TERRAIN", 0) + self.set_parameters({ + "SIM_FLOW_ENABLE": 1, + "FLOW_TYPE": 10, + "SIM_GPS_DISABLE": 1, + "SIM_TERRAIN": 0, + }) - self.reboot_sitl() + self.configure_EKFs_to_use_optical_flow_instead_of_GPS() - # we can't takeoff in loiter as we need flow healthy - self.takeoff(alt_min=5, mode='ALT_HOLD', require_absolute=False, takeoff_throttle=1800) - self.change_mode('LOITER') + self.set_analog_rangefinder_parameters() - # speed should be limited to <10m/s - self.set_rc(2, 1000) + self.reboot_sitl() - tstart = self.get_sim_time() - timeout = 60 - started_climb = False - while self.get_sim_time_cached() - tstart < timeout: - m = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) - spd = math.sqrt(m.vx**2 + m.vy**2) * 0.01 - alt = m.relative_alt*0.001 - - # calculate max speed from altitude above the ground - margin = 2.0 - max_speed = alt * 1.5 + margin - self.progress("%0.1f: Low Speed: %f (want <= %u) alt=%.1f" % - (self.get_sim_time_cached() - tstart, - spd, - max_speed, alt)) - if spd > max_speed: - raise NotAchievedException(("Speed should be limited by" - "EKF optical flow limits")) - - # after 30 seconds start climbing - if not started_climb and self.get_sim_time_cached() - tstart > 30: - started_climb = True - self.set_rc(3, 1900) - self.progress("Moving higher") - - # check altitude is not climbing above 35m - if alt > 35: - raise NotAchievedException("Alt should be limited by EKF optical flow limits") + # we can't takeoff in loiter as we need flow healthy + self.takeoff(alt_min=5, mode='ALT_HOLD', require_absolute=False, takeoff_throttle=1800) + self.change_mode('LOITER') - except Exception as e: - self.print_exception_caught(e) - ex = e + # speed should be limited to <10m/s + self.set_rc(2, 1000) - self.set_rc(2, 1500) + tstart = self.get_sim_time() + timeout = 60 + started_climb = False + while self.get_sim_time_cached() - tstart < timeout: + m = self.assert_receive_message('GLOBAL_POSITION_INT') + spd = math.sqrt(m.vx**2 + m.vy**2) * 0.01 + alt = m.relative_alt*0.001 + + # calculate max speed from altitude above the ground + margin = 2.0 + max_speed = alt * 1.5 + margin + self.progress("%0.1f: Low Speed: %f (want <= %u) alt=%.1f" % + (self.get_sim_time_cached() - tstart, + spd, + max_speed, alt)) + if spd > max_speed: + raise NotAchievedException(("Speed should be limited by" + "EKF optical flow limits")) + + # after 30 seconds start climbing + if not started_climb and self.get_sim_time_cached() - tstart > 30: + started_climb = True + self.set_rc(3, 1900) + self.progress("Moving higher") + + # check altitude is not climbing above 35m + if alt > 35: + raise NotAchievedException("Alt should be limited by EKF optical flow limits") self.reboot_sitl(force=True) - self.context_pop() - - if ex is not None: - raise ex def OpticalFlowCalibration(self): '''test optical flow calibration''' @@ -3259,122 +3242,109 @@ def GuidedEKFLaneChange(self): self.disarm_vehicle(force=True) self.reboot_sitl() - def MotorFail(self, fail_servo=0, fail_mul=0.0, holdtime=30): + def MotorFail(self, ): """Test flight with reduced motor efficiency""" - # we only expect an octocopter to survive ATM: - servo_counts = { - # 2: 6, # hexa - 3: 8, # octa - # 5: 6, # Y6 - } - frame_class = int(self.get_parameter("FRAME_CLASS")) - if frame_class not in servo_counts: - self.progress("Test not relevant for frame_class %u" % frame_class) - return - - servo_count = servo_counts[frame_class] + self.MotorFail_test_frame('octa', 8, frame_class=3) + # self.MotorFail_test_frame('hexa', 6, frame_class=2) + # self.MotorFail_test_frame('y6', 6, frame_class=5) - if fail_servo < 0 or fail_servo > servo_count: - raise ValueError('fail_servo outside range for frame class') - - self.takeoff(10, mode="LOITER") + def MotorFail_test_frame(self, model, servo_count, frame_class, fail_servo=0, fail_mul=0.0, holdtime=30): + self.set_parameters({ + 'FRAME_CLASS': frame_class, + }) + self.customise_SITL_commandline([], model=model) - self.change_alt(alt_min=50) + self.takeoff(25, mode="LOITER") # Get initial values - start_hud = self.mav.recv_match(type='VFR_HUD', blocking=True) - start_attitude = self.mav.recv_match(type='ATTITUDE', blocking=True) + start_hud = self.assert_receive_message('VFR_HUD') + start_attitude = self.assert_receive_message('ATTITUDE') hover_time = 5 - try: - tstart = self.get_sim_time() - int_error_alt = 0 - int_error_yaw_rate = 0 - int_error_yaw = 0 - self.progress("Hovering for %u seconds" % hover_time) - failed = False - while True: - now = self.get_sim_time_cached() - if now - tstart > holdtime + hover_time: - break + tstart = self.get_sim_time() + int_error_alt = 0 + int_error_yaw_rate = 0 + int_error_yaw = 0 + self.progress("Hovering for %u seconds" % hover_time) + failed = False + while True: + now = self.get_sim_time_cached() + if now - tstart > holdtime + hover_time: + break - servo = self.mav.recv_match(type='SERVO_OUTPUT_RAW', - blocking=True) - hud = self.mav.recv_match(type='VFR_HUD', blocking=True) - attitude = self.mav.recv_match(type='ATTITUDE', blocking=True) + servo = self.assert_receive_message('SERVO_OUTPUT_RAW') + hud = self.assert_receive_message('VFR_HUD') + attitude = self.assert_receive_message('ATTITUDE') - if not failed and now - tstart > hover_time: - self.progress("Killing motor %u (%u%%)" % - (fail_servo+1, fail_mul)) - self.set_parameters({ - "SIM_ENGINE_FAIL": fail_servo, - "SIM_ENGINE_MUL": fail_mul, - }) - failed = True + if not failed and now - tstart > hover_time: + self.progress("Killing motor %u (%u%%)" % + (fail_servo+1, fail_mul)) + self.set_parameters({ + "SIM_ENGINE_FAIL": fail_servo, + "SIM_ENGINE_MUL": fail_mul, + }) + failed = True - if failed: - self.progress("Hold Time: %f/%f" % (now-tstart, holdtime)) - - servo_pwm = [servo.servo1_raw, - servo.servo2_raw, - servo.servo3_raw, - servo.servo4_raw, - servo.servo5_raw, - servo.servo6_raw, - servo.servo7_raw, - servo.servo8_raw] - - self.progress("PWM output per motor") - for i, pwm in enumerate(servo_pwm[0:servo_count]): - if pwm > 1900: - state = "oversaturated" - elif pwm < 1200: - state = "undersaturated" - else: - state = "OK" + if failed: + self.progress("Hold Time: %f/%f" % (now-tstart, holdtime)) + + servo_pwm = [ + servo.servo1_raw, + servo.servo2_raw, + servo.servo3_raw, + servo.servo4_raw, + servo.servo5_raw, + servo.servo6_raw, + servo.servo7_raw, + servo.servo8_raw, + ] - if failed and i == fail_servo: - state += " (failed)" + self.progress("PWM output per motor") + for i, pwm in enumerate(servo_pwm[0:servo_count]): + if pwm > 1900: + state = "oversaturated" + elif pwm < 1200: + state = "undersaturated" + else: + state = "OK" - self.progress("servo %u [pwm=%u] [%s]" % (i+1, pwm, state)) + if failed and i == fail_servo: + state += " (failed)" - alt_delta = hud.alt - start_hud.alt - yawrate_delta = attitude.yawspeed - start_attitude.yawspeed - yaw_delta = attitude.yaw - start_attitude.yaw + self.progress("servo %u [pwm=%u] [%s]" % (i+1, pwm, state)) - self.progress("Alt=%fm (delta=%fm)" % (hud.alt, alt_delta)) - self.progress("Yaw rate=%f (delta=%f) (rad/s)" % - (attitude.yawspeed, yawrate_delta)) - self.progress("Yaw=%f (delta=%f) (deg)" % - (attitude.yaw, yaw_delta)) + alt_delta = hud.alt - start_hud.alt + yawrate_delta = attitude.yawspeed - start_attitude.yawspeed + yaw_delta = attitude.yaw - start_attitude.yaw - dt = self.get_sim_time() - now - int_error_alt += abs(alt_delta/dt) - int_error_yaw_rate += abs(yawrate_delta/dt) - int_error_yaw += abs(yaw_delta/dt) - self.progress("## Error Integration ##") - self.progress(" Altitude: %fm" % int_error_alt) - self.progress(" Yaw rate: %f rad/s" % int_error_yaw_rate) - self.progress(" Yaw: %f deg" % int_error_yaw) - self.progress("----") + self.progress("Alt=%fm (delta=%fm)" % (hud.alt, alt_delta)) + self.progress("Yaw rate=%f (delta=%f) (rad/s)" % + (attitude.yawspeed, yawrate_delta)) + self.progress("Yaw=%f (delta=%f) (deg)" % + (attitude.yaw, yaw_delta)) - if int_error_yaw_rate > 0.1: - raise NotAchievedException("Vehicle is spinning") + dt = self.get_sim_time() - now + int_error_alt += abs(alt_delta/dt) + int_error_yaw_rate += abs(yawrate_delta/dt) + int_error_yaw += abs(yaw_delta/dt) + self.progress("## Error Integration ##") + self.progress(" Altitude: %fm" % int_error_alt) + self.progress(" Yaw rate: %f rad/s" % int_error_yaw_rate) + self.progress(" Yaw: %f deg" % int_error_yaw) + self.progress("----") - if alt_delta < -20: - raise NotAchievedException("Vehicle is descending") + if int_error_yaw > 5: + raise NotAchievedException("Vehicle is spinning") - self.set_parameters({ - "SIM_ENGINE_FAIL": 0, - "SIM_ENGINE_MUL": 1.0, - }) - except Exception as e: - self.set_parameters({ - "SIM_ENGINE_FAIL": 0, - "SIM_ENGINE_MUL": 1.0, - }) - raise e + if alt_delta < -20: + raise NotAchievedException("Vehicle is descending") + + self.progress("Fixing motors") + self.set_parameters({ + "SIM_ENGINE_FAIL": 0, + "SIM_ENGINE_MUL": 1.0, + }) self.do_RTL() @@ -3392,83 +3362,67 @@ def hover_for_interval(self, hover_time): def MotorVibration(self): """Test flight with motor vibration""" - self.context_push() - - ex = None - try: - self.set_rc_default() - # magic tridge EKF type that dramatically speeds up the test - self.set_parameters({ - "AHRS_EKF_TYPE": 10, - "INS_LOG_BAT_MASK": 3, - "INS_LOG_BAT_OPT": 0, - "LOG_BITMASK": 958, - "LOG_DISARMED": 0, - "SIM_VIB_MOT_MAX": 350, - # these are real values taken from a 180mm Quad: - "SIM_GYR1_RND": 20, - "SIM_ACC1_RND": 5, - "SIM_ACC2_RND": 5, - "SIM_INS_THR_MIN": 0.1, - }) - self.reboot_sitl() - - # do a simple up-and-down flight to gather data: - self.takeoff(15, mode="ALT_HOLD") - tstart, tend, hover_throttle = self.hover_for_interval(15) - # if we don't reduce vibes here then the landing detector - # may not trigger - self.set_parameter("SIM_VIB_MOT_MAX", 0) - self.do_RTL() - - psd = self.mavfft_fttd(1, 0, tstart * 1.0e6, tend * 1.0e6) - # ignore the first 20Hz and look for a peak at -15dB or more - # it should be at about 190Hz, each bin is 1000/1024Hz wide - ignore_bins = int(100 * 1.024) # start at 100Hz to be safe - freq = psd["F"][numpy.argmax(psd["X"][ignore_bins:]) + ignore_bins] - if numpy.amax(psd["X"][ignore_bins:]) < -15 or freq < 100 or freq > 300: - raise NotAchievedException( - "Did not detect a motor peak, found %f at %f dB" % - (freq, numpy.amax(psd["X"][ignore_bins:]))) - else: - self.progress("Detected motor peak at %fHz" % freq) - - # now add a notch and check that post-filter the peak is squashed below 40dB - self.set_parameters({ - "INS_LOG_BAT_OPT": 2, - "INS_HNTC2_ENABLE": 1, - "INS_HNTC2_FREQ": freq, - "INS_HNTC2_ATT": 50, - "INS_HNTC2_BW": freq/2, - "INS_HNTC2_MODE": 0, - "SIM_VIB_MOT_MAX": 350, - }) - self.reboot_sitl() - - # do a simple up-and-down flight to gather data: - self.takeoff(15, mode="ALT_HOLD") - tstart, tend, hover_throttle = self.hover_for_interval(15) - self.set_parameter("SIM_VIB_MOT_MAX", 0) - self.do_RTL() + # magic tridge EKF type that dramatically speeds up the test + self.set_parameters({ + "AHRS_EKF_TYPE": 10, + "INS_LOG_BAT_MASK": 3, + "INS_LOG_BAT_OPT": 0, + "LOG_BITMASK": 958, + "LOG_DISARMED": 0, + "SIM_VIB_MOT_MAX": 350, + # these are real values taken from a 180mm Quad: + "SIM_GYR1_RND": 20, + "SIM_ACC1_RND": 5, + "SIM_ACC2_RND": 5, + "SIM_INS_THR_MIN": 0.1, + }) + self.reboot_sitl() - psd = self.mavfft_fttd(1, 0, tstart * 1.0e6, tend * 1.0e6) - freq = psd["F"][numpy.argmax(psd["X"][ignore_bins:]) + ignore_bins] - peakdB = numpy.amax(psd["X"][ignore_bins:]) - if peakdB < -23: - self.progress("Did not detect a motor peak, found %f at %f dB" % (freq, peakdB)) - else: - raise NotAchievedException("Detected peak %.1f Hz %.2f dB" % (freq, peakdB)) - except Exception as e: - self.print_exception_caught(e) - ex = e - self.disarm_vehicle(force=True) + # do a simple up-and-down flight to gather data: + self.takeoff(15, mode="ALT_HOLD") + tstart, tend, hover_throttle = self.hover_for_interval(15) + # if we don't reduce vibes here then the landing detector + # may not trigger + self.set_parameter("SIM_VIB_MOT_MAX", 0) + self.do_RTL() - self.context_pop() + psd = self.mavfft_fttd(1, 0, tstart * 1.0e6, tend * 1.0e6) + # ignore the first 20Hz and look for a peak at -15dB or more + # it should be at about 190Hz, each bin is 1000/1024Hz wide + ignore_bins = int(100 * 1.024) # start at 100Hz to be safe + freq = psd["F"][numpy.argmax(psd["X"][ignore_bins:]) + ignore_bins] + if numpy.amax(psd["X"][ignore_bins:]) < -15 or freq < 100 or freq > 300: + raise NotAchievedException( + "Did not detect a motor peak, found %f at %f dB" % + (freq, numpy.amax(psd["X"][ignore_bins:]))) + else: + self.progress("Detected motor peak at %fHz" % freq) + # now add a notch and check that post-filter the peak is squashed below 40dB + self.set_parameters({ + "INS_LOG_BAT_OPT": 2, + "INS_HNTC2_ENABLE": 1, + "INS_HNTC2_FREQ": freq, + "INS_HNTC2_ATT": 50, + "INS_HNTC2_BW": freq/2, + "INS_HNTC2_MODE": 0, + "SIM_VIB_MOT_MAX": 350, + }) self.reboot_sitl() - if ex is not None: - raise ex + # do a simple up-and-down flight to gather data: + self.takeoff(15, mode="ALT_HOLD") + tstart, tend, hover_throttle = self.hover_for_interval(15) + self.set_parameter("SIM_VIB_MOT_MAX", 0) + self.do_RTL() + + psd = self.mavfft_fttd(1, 0, tstart * 1.0e6, tend * 1.0e6) + freq = psd["F"][numpy.argmax(psd["X"][ignore_bins:]) + ignore_bins] + peakdB = numpy.amax(psd["X"][ignore_bins:]) + if peakdB < -23: + self.progress("Did not detect a motor peak, found %f at %f dB" % (freq, peakdB)) + else: + raise NotAchievedException("Detected peak %.1f Hz %.2f dB" % (freq, peakdB)) def VisionPosition(self): """Disable GPS navigation, enable Vicon input.""" @@ -3482,91 +3436,62 @@ def VisionPosition(self): old_pos = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) print("old_pos=%s" % str(old_pos)) - self.context_push() - - ex = None - try: - # configure EKF to use external nav instead of GPS - ahrs_ekf_type = self.get_parameter("AHRS_EKF_TYPE") - if ahrs_ekf_type == 2: - self.set_parameter("EK2_GPS_TYPE", 3) - if ahrs_ekf_type == 3: - self.set_parameters({ - "EK3_SRC1_POSXY": 6, - "EK3_SRC1_VELXY": 6, - "EK3_SRC1_POSZ": 6, - "EK3_SRC1_VELZ": 6, - }) + # configure EKF to use external nav instead of GPS + ahrs_ekf_type = self.get_parameter("AHRS_EKF_TYPE") + if ahrs_ekf_type == 2: + self.set_parameter("EK2_GPS_TYPE", 3) + if ahrs_ekf_type == 3: self.set_parameters({ - "GPS1_TYPE": 0, - "VISO_TYPE": 1, - "SERIAL5_PROTOCOL": 1, + "EK3_SRC1_POSXY": 6, + "EK3_SRC1_VELXY": 6, + "EK3_SRC1_POSZ": 6, + "EK3_SRC1_VELZ": 6, }) - self.reboot_sitl() - # without a GPS or some sort of external prompting, AP - # doesn't send system_time messages. So prompt it: - self.mav.mav.system_time_send(int(time.time() * 1000000), 0) - self.progress("Waiting for non-zero-lat") - tstart = self.get_sim_time() - while True: - self.mav.mav.set_gps_global_origin_send(1, - old_pos.lat, - old_pos.lon, - old_pos.alt) - gpi = self.mav.recv_match(type='GLOBAL_POSITION_INT', - blocking=True) - self.progress("gpi=%s" % str(gpi)) - if gpi.lat != 0: - break - - if self.get_sim_time_cached() - tstart > 60: - raise AutoTestTimeoutException("Did not get non-zero lat") - - self.takeoff() - self.set_rc(1, 1600) - tstart = self.get_sim_time() - while True: - vicon_pos = self.mav.recv_match(type='VISION_POSITION_ESTIMATE', - blocking=True) - # print("vpe=%s" % str(vicon_pos)) - self.mav.recv_match(type='GLOBAL_POSITION_INT', - blocking=True) - # self.progress("gpi=%s" % str(gpi)) - if vicon_pos.x > 40: - break - - if self.get_sim_time_cached() - tstart > 100: - raise AutoTestTimeoutException("Vicon showed no movement") - - # recenter controls: - self.set_rc(1, 1500) - self.progress("# Enter RTL") - self.change_mode('RTL') - self.set_rc(3, 1500) - tstart = self.get_sim_time() - while True: - if self.get_sim_time_cached() - tstart > 200: - raise NotAchievedException("Did not disarm") - self.mav.recv_match(type='GLOBAL_POSITION_INT', - blocking=True) - # print("gpi=%s" % str(gpi)) - self.mav.recv_match(type='SIMSTATE', - blocking=True) - # print("ss=%s" % str(ss)) - # wait for RTL disarm: - if not self.armed(): - break + self.set_parameters({ + "GPS1_TYPE": 0, + "VISO_TYPE": 1, + "SERIAL5_PROTOCOL": 1, + }) + self.reboot_sitl() + # without a GPS or some sort of external prompting, AP + # doesn't send system_time messages. So prompt it: + self.mav.mav.system_time_send(int(time.time() * 1000000), 0) + self.progress("Waiting for non-zero-lat") + tstart = self.get_sim_time() + while True: + if self.get_sim_time_cached() - tstart > 60: + raise AutoTestTimeoutException("Did not get non-zero lat") + self.mav.mav.set_gps_global_origin_send(1, + old_pos.lat, + old_pos.lon, + old_pos.alt) + gpi = self.assert_receive_message('GLOBAL_POSITION_INT') + self.progress("gpi=%s" % str(gpi)) + if gpi.lat != 0: + break - except Exception as e: - self.print_exception_caught(e) - ex = e + self.takeoff() + self.set_rc(1, 1600) + tstart = self.get_sim_time() + while True: + vicon_pos = self.assert_receive_message('VISION_POSITION_ESTIMATE') + # print("vpe=%s" % str(vicon_pos)) + # gpi = self.assert_receive_message('GLOBAL_POSITION_INT') + # self.progress("gpi=%s" % str(gpi)) + if vicon_pos.x > 40: + break - self.context_pop() - self.zero_throttle() - self.reboot_sitl() + if self.get_sim_time_cached() - tstart > 100: + raise AutoTestTimeoutException("Vicon showed no movement") - if ex is not None: - raise ex + # recenter controls: + self.set_rc(1, 1500) + self.progress("# Enter RTL") + self.change_mode('RTL') + self.set_rc(3, 1500) + tstart = self.get_sim_time() + # self.install_messageprinter_handlers_context(['SIMSTATE', 'GLOBAL_POSITION_INT']) + self.wait_disarmed(timeout=200) def BodyFrameOdom(self): """Disable GPS navigation, enable input of VISION_POSITION_DELTA.""" @@ -4682,75 +4607,52 @@ def ModeZigZag(self): def SetModesViaModeSwitch(self): '''Set modes via modeswitch''' - self.context_push() - ex = None - try: - fltmode_ch = 5 - self.set_parameter("FLTMODE_CH", fltmode_ch) - self.set_rc(fltmode_ch, 1000) # PWM for mode1 - testmodes = [("FLTMODE1", 4, "GUIDED", 1165), - ("FLTMODE2", 2, "ALT_HOLD", 1295), - ("FLTMODE3", 6, "RTL", 1425), - ("FLTMODE4", 7, "CIRCLE", 1555), - ("FLTMODE5", 1, "ACRO", 1685), - ("FLTMODE6", 17, "BRAKE", 1815), - ] - for mode in testmodes: - (parm, parm_value, name, pwm) = mode - self.set_parameter(parm, parm_value) - - for mode in reversed(testmodes): - (parm, parm_value, name, pwm) = mode - self.set_rc(fltmode_ch, pwm) - self.wait_mode(name) - - for mode in testmodes: - (parm, parm_value, name, pwm) = mode - self.set_rc(fltmode_ch, pwm) - self.wait_mode(name) - - for mode in reversed(testmodes): - (parm, parm_value, name, pwm) = mode - self.set_rc(fltmode_ch, pwm) - self.wait_mode(name) - - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.context_pop() - - if ex is not None: - raise ex + fltmode_ch = 5 + self.set_parameter("FLTMODE_CH", fltmode_ch) + self.set_rc(fltmode_ch, 1000) # PWM for mode1 + testmodes = [("FLTMODE1", 4, "GUIDED", 1165), + ("FLTMODE2", 2, "ALT_HOLD", 1295), + ("FLTMODE3", 6, "RTL", 1425), + ("FLTMODE4", 7, "CIRCLE", 1555), + ("FLTMODE5", 1, "ACRO", 1685), + ("FLTMODE6", 17, "BRAKE", 1815), + ] + for mode in testmodes: + (parm, parm_value, name, pwm) = mode + self.set_parameter(parm, parm_value) + + for mode in reversed(testmodes): + (parm, parm_value, name, pwm) = mode + self.set_rc(fltmode_ch, pwm) + self.wait_mode(name) + + for mode in testmodes: + (parm, parm_value, name, pwm) = mode + self.set_rc(fltmode_ch, pwm) + self.wait_mode(name) + + for mode in reversed(testmodes): + (parm, parm_value, name, pwm) = mode + self.set_rc(fltmode_ch, pwm) + self.wait_mode(name) def SetModesViaAuxSwitch(self): '''"Set modes via auxswitch"''' - self.context_push() - ex = None - try: - fltmode_ch = int(self.get_parameter("FLTMODE_CH")) - self.set_rc(fltmode_ch, 1000) - self.wait_mode("CIRCLE") - self.set_rc(9, 1000) - self.set_rc(10, 1000) - self.set_parameters({ - "RC9_OPTION": 18, # land - "RC10_OPTION": 55, # guided - }) - self.set_rc(9, 1900) - self.wait_mode("LAND") - self.set_rc(10, 1900) - self.wait_mode("GUIDED") - self.set_rc(10, 1000) # this re-polls the mode switch - self.wait_mode("CIRCLE") - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.context_pop() - - if ex is not None: - raise ex + fltmode_ch = int(self.get_parameter("FLTMODE_CH")) + self.set_rc(fltmode_ch, 1000) + self.wait_mode("CIRCLE") + self.set_rc(9, 1000) + self.set_rc(10, 1000) + self.set_parameters({ + "RC9_OPTION": 18, # land + "RC10_OPTION": 55, # guided + }) + self.set_rc(9, 1900) + self.wait_mode("LAND") + self.set_rc(10, 1900) + self.wait_mode("GUIDED") + self.set_rc(10, 1000) # this re-polls the mode switch + self.wait_mode("CIRCLE") def fly_guided_stop(self, timeout=20, @@ -5294,24 +5196,14 @@ def TestGripperMission(self): def SplineLastWaypoint(self): '''Test Spline as last waypoint''' - self.context_push() - ex = None - try: - self.load_mission("copter-spline-last-waypoint.txt") - self.change_mode('LOITER') - self.wait_ready_to_arm() - self.arm_vehicle() - self.change_mode('AUTO') - self.set_rc(3, 1500) - self.wait_altitude(10, 3000, relative=True) - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() + self.load_mission("copter-spline-last-waypoint.txt") + self.change_mode('LOITER') + self.wait_ready_to_arm() + self.arm_vehicle() + self.change_mode('AUTO') + self.set_rc(3, 1500) + self.wait_altitude(10, 3000, relative=True) self.do_RTL() - self.wait_disarmed() - if ex is not None: - raise ex def ManualThrottleModeChange(self): '''Check manual throttle mode changes denied on high throttle''' @@ -6420,90 +6312,60 @@ def extract_median_FTN1_PkAvg_from_current_onboard_log(self, tstart, tend): def PIDNotches(self): """Use dynamic harmonic notch to control motor noise.""" self.progress("Flying with PID notches") - self.context_push() - - ex = None - try: - self.set_parameters({ - "FILT1_TYPE": 1, - "AHRS_EKF_TYPE": 10, - "INS_LOG_BAT_MASK": 3, - "INS_LOG_BAT_OPT": 0, - "INS_GYRO_FILTER": 100, # set the gyro filter high so we can observe behaviour - "LOG_BITMASK": 65535, - "LOG_DISARMED": 0, - "SIM_VIB_FREQ_X": 120, # roll - "SIM_VIB_FREQ_Y": 120, # pitch - "SIM_VIB_FREQ_Z": 180, # yaw - "FILT1_NOTCH_FREQ": 120, - "ATC_RAT_RLL_NEF": 1, - "ATC_RAT_PIT_NEF": 1, - "ATC_RAT_YAW_NEF": 1, - "SIM_GYR1_RND": 5, - }) - self.reboot_sitl() - - self.takeoff(10, mode="ALT_HOLD") - - freq, hover_throttle, peakdb1 = self.hover_and_check_matched_frequency_with_fft(5, 20, 350, reverse=True) - - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.context_pop() + self.set_parameters({ + "FILT1_TYPE": 1, + "AHRS_EKF_TYPE": 10, + "INS_LOG_BAT_MASK": 3, + "INS_LOG_BAT_OPT": 0, + "INS_GYRO_FILTER": 100, # set the gyro filter high so we can observe behaviour + "LOG_BITMASK": 65535, + "LOG_DISARMED": 0, + "SIM_VIB_FREQ_X": 120, # roll + "SIM_VIB_FREQ_Y": 120, # pitch + "SIM_VIB_FREQ_Z": 180, # yaw + "FILT1_NOTCH_FREQ": 120, + "ATC_RAT_RLL_NEF": 1, + "ATC_RAT_PIT_NEF": 1, + "ATC_RAT_YAW_NEF": 1, + "SIM_GYR1_RND": 5, + }) + self.reboot_sitl() - if ex is not None: - raise ex + self.hover_and_check_matched_frequency_with_fft(dblevel=5, minhz=20, maxhz=350, reverse=True) def ThrottleGainBoost(self): """Use PD and Angle P boost for anti-gravity.""" # basic gyro sample rate test self.progress("Flying with Throttle-Gain Boost") - self.context_push() - - ex = None - try: - # magic tridge EKF type that dramatically speeds up the test - self.set_parameters({ - "AHRS_EKF_TYPE": 10, - "EK2_ENABLE": 0, - "EK3_ENABLE": 0, - "INS_FAST_SAMPLE": 0, - "LOG_BITMASK": 959, - "LOG_DISARMED": 0, - "ATC_THR_G_BOOST": 5.0, - }) - self.reboot_sitl() - - self.takeoff(10, mode="ALT_HOLD") - hover_time = 15 - self.progress("Hovering for %u seconds" % hover_time) - tstart = self.get_sim_time() - while self.get_sim_time_cached() < tstart + hover_time: - self.mav.recv_match(type='ATTITUDE', blocking=True) - - # fly fast forrest! - self.set_rc(3, 1900) - self.set_rc(2, 1200) - self.wait_groundspeed(5, 1000) - self.set_rc(3, 1500) - self.set_rc(2, 1500) - - self.do_RTL() + # magic tridge EKF type that dramatically speeds up the test + self.set_parameters({ + "AHRS_EKF_TYPE": 10, + "EK2_ENABLE": 0, + "EK3_ENABLE": 0, + "INS_FAST_SAMPLE": 0, + "LOG_BITMASK": 959, + "LOG_DISARMED": 0, + "ATC_THR_G_BOOST": 5.0, + }) - except Exception as e: - self.print_exception_caught(e) - ex = e + self.reboot_sitl() - self.context_pop() + self.takeoff(10, mode="ALT_HOLD") + hover_time = 15 + self.progress("Hovering for %u seconds" % hover_time) + tstart = self.get_sim_time() + while self.get_sim_time_cached() < tstart + hover_time: + self.assert_receive_message('ATTITUDE') - # must reboot after we move away from EKF type 10 to EKF2 or EKF3 - self.reboot_sitl() + # fly fast forrest! + self.set_rc(3, 1900) + self.set_rc(2, 1200) + self.wait_groundspeed(5, 1000) + self.set_rc(3, 1500) + self.set_rc(2, 1500) - if ex is not None: - raise ex + self.do_RTL() def test_gyro_fft_harmonic(self, averaging): """Use dynamic harmonic notch to control motor noise with harmonic matching of the first harmonic.""" @@ -7267,55 +7129,41 @@ def AltTypes(self): def PrecisionLoiterCompanion(self): """Use Companion PrecLand backend precision messages to loiter.""" - self.context_push() - - ex = None - try: - self.set_parameters({ - "PLND_ENABLED": 1, - "PLND_TYPE": 1, # enable companion backend: - "RC7_OPTION": 39, # set up a channel switch to enable precision loiter: - }) - self.set_analog_rangefinder_parameters() - self.reboot_sitl() - - self.progress("Waiting for location") - self.change_mode('LOITER') - self.wait_ready_to_arm() + self.set_parameters({ + "PLND_ENABLED": 1, + "PLND_TYPE": 1, # enable companion backend: + "RC7_OPTION": 39, # set up a channel switch to enable precision loiter: + }) + self.set_analog_rangefinder_parameters() + self.reboot_sitl() - # we should be doing precision loiter at this point - start = self.assert_receive_message('LOCAL_POSITION_NED') + self.progress("Waiting for location") + self.change_mode('LOITER') + self.wait_ready_to_arm() - self.takeoff(20, mode='ALT_HOLD') + # we should be doing precision loiter at this point + start = self.assert_receive_message('LOCAL_POSITION_NED') - # move away a little - self.set_rc(2, 1550) - self.wait_distance(5, accuracy=1) - self.set_rc(2, 1500) - self.change_mode('LOITER') + self.takeoff(20, mode='ALT_HOLD') - # turn precision loiter on: - self.context_collect('STATUSTEXT') - self.set_rc(7, 2000) + # move away a little + self.set_rc(2, 1550) + self.wait_distance(5, accuracy=1) + self.set_rc(2, 1500) + self.change_mode('LOITER') - # try to drag aircraft to a position 5 metres north-east-east: - self.precision_loiter_to_pos(start.x + 5, start.y + 10, start.z + 10) - self.wait_statustext("PrecLand: Target Found", check_context=True, timeout=10) - self.wait_statustext("PrecLand: Init Complete", check_context=True, timeout=10) - # .... then northwest - self.precision_loiter_to_pos(start.x + 5, start.y - 10, start.z + 10) + # turn precision loiter on: + self.context_collect('STATUSTEXT') + self.set_rc(7, 2000) - except Exception as e: - self.print_exception_caught(e) - ex = e + # try to drag aircraft to a position 5 metres north-east-east: + self.precision_loiter_to_pos(start.x + 5, start.y + 10, start.z + 10) + self.wait_statustext("PrecLand: Target Found", check_context=True, timeout=10) + self.wait_statustext("PrecLand: Init Complete", check_context=True, timeout=10) + # .... then northwest + self.precision_loiter_to_pos(start.x + 5, start.y - 10, start.z + 10) self.disarm_vehicle(force=True) - self.context_pop() - self.reboot_sitl() - self.progress("All done") - - if ex is not None: - raise ex def loiter_requires_position(self): # ensure we can't switch to LOITER without position @@ -7870,87 +7718,69 @@ def BeaconPosition(self): old_pos = self.get_global_position_int() print("old_pos=%s" % str(old_pos)) - self.context_push() - ex = None - try: - self.set_parameters({ - "BCN_TYPE": 10, - "BCN_LATITUDE": SITL_START_LOCATION.lat, - "BCN_LONGITUDE": SITL_START_LOCATION.lng, - "BCN_ALT": SITL_START_LOCATION.alt, - "BCN_ORIENT_YAW": 0, - "AVOID_ENABLE": 4, - "GPS1_TYPE": 0, - "EK3_ENABLE": 1, - "EK3_SRC1_POSXY": 4, # Beacon - "EK3_SRC1_POSZ": 1, # Baro - "EK3_SRC1_VELXY": 0, # None - "EK3_SRC1_VELZ": 0, # None - "EK2_ENABLE": 0, - "AHRS_EKF_TYPE": 3, - }) - self.reboot_sitl() + self.set_parameters({ + "BCN_TYPE": 10, + "BCN_LATITUDE": SITL_START_LOCATION.lat, + "BCN_LONGITUDE": SITL_START_LOCATION.lng, + "BCN_ALT": SITL_START_LOCATION.alt, + "BCN_ORIENT_YAW": 0, + "AVOID_ENABLE": 4, + "GPS1_TYPE": 0, + "EK3_ENABLE": 1, + "EK3_SRC1_POSXY": 4, # Beacon + "EK3_SRC1_POSZ": 1, # Baro + "EK3_SRC1_VELXY": 0, # None + "EK3_SRC1_VELZ": 0, # None + "EK2_ENABLE": 0, + "AHRS_EKF_TYPE": 3, + }) + self.reboot_sitl() - # turn off GPS arming checks. This may be considered a - # bug that we need to do this. - old_arming_check = int(self.get_parameter("ARMING_CHECK")) - if old_arming_check == 1: - old_arming_check = 1 ^ 25 - 1 - new_arming_check = int(old_arming_check) & ~(1 << 3) - self.set_parameter("ARMING_CHECK", new_arming_check) + # turn off GPS arming checks. This may be considered a + # bug that we need to do this. + old_arming_check = int(self.get_parameter("ARMING_CHECK")) + if old_arming_check == 1: + old_arming_check = 1 ^ 25 - 1 + new_arming_check = int(old_arming_check) & ~(1 << 3) + self.set_parameter("ARMING_CHECK", new_arming_check) - self.reboot_sitl() + self.reboot_sitl() - # require_absolute=True infers a GPS is present - self.wait_ready_to_arm(require_absolute=False) + # require_absolute=True infers a GPS is present + self.wait_ready_to_arm(require_absolute=False) - tstart = self.get_sim_time() - timeout = 20 - while True: - if self.get_sim_time_cached() - tstart > timeout: - raise NotAchievedException("Did not get new position like old position") - self.progress("Fetching location") - new_pos = self.get_global_position_int() - pos_delta = self.get_distance_int(old_pos, new_pos) - max_delta = 1 - self.progress("delta=%u want <= %u" % (pos_delta, max_delta)) - if pos_delta <= max_delta: - break + tstart = self.get_sim_time() + timeout = 20 + while True: + if self.get_sim_time_cached() - tstart > timeout: + raise NotAchievedException("Did not get new position like old position") + self.progress("Fetching location") + new_pos = self.get_global_position_int() + pos_delta = self.get_distance_int(old_pos, new_pos) + max_delta = 1 + self.progress("delta=%u want <= %u" % (pos_delta, max_delta)) + if pos_delta <= max_delta: + break - self.progress("Moving to ensure location is tracked") - self.takeoff(10, mode="STABILIZE") - self.change_mode("CIRCLE") + self.progress("Moving to ensure location is tracked") + self.takeoff(10, mode="STABILIZE") + self.change_mode("CIRCLE") - tstart = self.get_sim_time() - max_delta = 0 - max_allowed_delta = 10 - while True: - if self.get_sim_time_cached() - tstart > timeout: - break + self.context_push() + validator = vehicle_test_suite.TestSuite.ValidateGlobalPositionIntAgainstSimState(self, max_allowed_divergence=10) + self.install_message_hook_context(validator) - pos_delta = self.get_distance_int(self.sim_location_int(), self.get_global_position_int()) - self.progress("pos_delta=%f max_delta=%f max_allowed_delta=%f" % (pos_delta, max_delta, max_allowed_delta)) - if pos_delta > max_delta: - max_delta = pos_delta - if pos_delta > max_allowed_delta: - raise NotAchievedException("Vehicle location not tracking simulated location (%f > %f)" % - (pos_delta, max_allowed_delta)) - self.progress("Tracked location just fine (max_delta=%f)" % max_delta) - self.change_mode("LOITER") - self.wait_groundspeed(0, 0.3, timeout=120) - self.land_and_disarm() + self.delay_sim_time(20) + self.progress("Tracked location just fine") + self.context_pop() - self.assert_current_onboard_log_contains_message("BCN") + self.change_mode("LOITER") + self.wait_groundspeed(0, 0.3, timeout=120) + self.land_and_disarm() + + self.assert_current_onboard_log_contains_message("BCN") - except Exception as e: - self.print_exception_caught(e) - ex = e self.disarm_vehicle(force=True) - self.reboot_sitl() - self.context_pop() - self.reboot_sitl() - if ex is not None: - raise ex def AC_Avoidance_Beacon(self): '''Test beacon avoidance slide behaviour''' From 1f60ca334227716829f1e01b1a78fed7184262e6 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 12 May 2021 11:09:16 +1000 Subject: [PATCH 193/232] autotest: add SmartRTL test for rapid switch between smartrtl and althold --- Tools/autotest/arducopter.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index 29c3205c3eaf7..7f70a37a0fe7a 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -9698,6 +9698,23 @@ def GPSForYaw(self): if ex is not None: raise ex + def SMART_RTL_EnterLeave(self): + '''check SmartRTL behaviour when entering/leaving''' + # we had a bug where we would consume points when re-entering smartrtl + + self.upload_simple_relhome_mission([ + # N E U + (mavutil.mavlink.MAV_CMD_NAV_TAKEOFF, 0, 0, 10), + (mavutil.mavlink.MAV_CMD_NAV_RETURN_TO_LAUNCH, 0, 0, 0), + ]) + self.set_parameter('AUTO_OPTIONS', 3) + self.change_mode('AUTO') + self.wait_ready_to_arm() + self.change_mode('ALT_HOLD') + self.change_mode('SMART_RTL') + self.change_mode('ALT_HOLD') + self.change_mode('SMART_RTL') + def GPSForYawCompassLearn(self): '''Moving baseline GPS yaw - with compass learning''' self.context_push() @@ -11711,6 +11728,7 @@ def tests2b(self): # this block currently around 9.5mins here self.GSF_reset, self.AP_Avoidance, self.SMART_RTL, + self.SMART_RTL_EnterLeave, self.RTL_TO_RALLY, self.FlyEachFrame, self.GPSBlending, @@ -11864,6 +11882,7 @@ def disabled_tests(self): "FlyMissionTwice": "See https://github.com/ArduPilot/ardupilot/pull/18561", "GPSForYawCompassLearn": "Vehicle currently crashed in spectacular fashion", "CompassMot": "Cuases an arithmetic exception in the EKF", + "SMART_RTL_EnterLeave": "Causes a panic", } From bea2c5b59b633375f3e4f35d755e03c7e4cc603c Mon Sep 17 00:00:00 2001 From: Leonard Hall Date: Sun, 21 Jul 2024 20:58:24 +0930 Subject: [PATCH 194/232] AC_Autotune: Clean up Multi Variables and non functional changes --- libraries/AC_AutoTune/AC_AutoTune.cpp | 11 +----- libraries/AC_AutoTune/AC_AutoTune.h | 9 ----- libraries/AC_AutoTune/AC_AutoTune_Multi.cpp | 44 ++++++++++++--------- libraries/AC_AutoTune/AC_AutoTune_Multi.h | 10 ++++- 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/libraries/AC_AutoTune/AC_AutoTune.cpp b/libraries/AC_AutoTune/AC_AutoTune.cpp index 6dac22cc74215..40e2e9e2e27d4 100644 --- a/libraries/AC_AutoTune/AC_AutoTune.cpp +++ b/libraries/AC_AutoTune/AC_AutoTune.cpp @@ -340,13 +340,6 @@ void AC_AutoTune::control_attitude() step_start_time_ms = now; step_time_limit_ms = get_testing_step_timeout_ms(); // set gains to their to-be-tested values - twitch_first_iter = true; - test_rate_max = 0.0f; - test_rate_min = 0.0f; - test_angle_max = 0.0f; - test_angle_min = 0.0f; - rotation_rate_filt.reset(0.0f); - rate_max = 0.0f; load_gains(GAIN_TEST); } else { // when waiting for level we use the intra-test gains @@ -356,18 +349,15 @@ void AC_AutoTune::control_attitude() // Initialize test-specific variables switch (axis) { case ROLL: - angle_finish = target_angle_max_rp_cd(); start_rate = ToDeg(ahrs_view->get_gyro().x) * 100.0f; start_angle = ahrs_view->roll_sensor; break; case PITCH: - angle_finish = target_angle_max_rp_cd(); start_rate = ToDeg(ahrs_view->get_gyro().y) * 100.0f; start_angle = ahrs_view->pitch_sensor; break; case YAW: case YAW_D: - angle_finish = target_angle_max_y_cd(); start_rate = ToDeg(ahrs_view->get_gyro().z) * 100.0f; start_angle = ahrs_view->yaw_sensor; break; @@ -539,6 +529,7 @@ void AC_AutoTune::control_attitude() } if (axis == YAW || axis == YAW_D) { + // todo: check to make sure we need this attitude_control->input_euler_angle_roll_pitch_yaw(0.0f, 0.0f, ahrs_view->yaw_sensor, false); } diff --git a/libraries/AC_AutoTune/AC_AutoTune.h b/libraries/AC_AutoTune/AC_AutoTune.h index 510fd6c59fbb4..fb4233a23ef88 100644 --- a/libraries/AC_AutoTune/AC_AutoTune.h +++ b/libraries/AC_AutoTune/AC_AutoTune.h @@ -259,24 +259,15 @@ class AC_AutoTune bool positive_direction; // false = tuning in negative direction (i.e. left for roll), true = positive direction (i.e. right for roll) StepType step; // see StepType for what steps are performed TuneType tune_type; // see TuneType - bool ignore_next; // true = ignore the next test bool twitch_first_iter; // true on first iteration of a twitch (used to signal we must step the attitude or rate target) uint8_t axes_completed; // bitmask of completed axes - float test_rate_min; // the minimum angular rate achieved during TESTING_RATE step-multi only - float test_rate_max; // the maximum angular rate achieved during TESTING_RATE step-multi only - float test_angle_min; // the minimum angle achieved during TESTING_ANGLE step-multi only - float test_angle_max; // the maximum angle achieved during TESTING_ANGLE step-multi only uint32_t step_start_time_ms; // start time of current tuning step (used for timeout checks) uint32_t step_time_limit_ms; // time limit of current autotune process uint32_t level_start_time_ms; // start time of waiting for level int8_t counter; // counter for tuning gains - float target_rate; // target rate-multi only - float target_angle; // target angle-multi only float start_angle; // start angle float start_rate; // start rate - parent and multi - float rate_max; // maximum rate variable - parent and multi float test_accel_max; // maximum acceleration variable - float angle_finish; // Angle that test is aborted- parent and multi float desired_yaw_cd; // yaw heading during tune - parent and Tradheli float step_scaler; // scaler to reduce maximum target step - parent and multi diff --git a/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp b/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp index d3ffdefe1acfb..89c1a45b2444d 100644 --- a/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp +++ b/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp @@ -60,15 +60,15 @@ #define AUTOTUNE_RP_MAX 2.0 // maximum Rate P value #define AUTOTUNE_SP_MAX 40.0 // maximum Stab P value #define AUTOTUNE_SP_MIN 0.5 // maximum Stab P value -#define AUTOTUNE_RP_ACCEL_MIN 4000.0 // Minimum acceleration for Roll and Pitch -#define AUTOTUNE_Y_ACCEL_MIN 1000.0 // Minimum acceleration for Yaw +#define AUTOTUNE_RP_ACCEL_MIN 4000.0 // Minimum acceleration for Roll and Pitch +#define AUTOTUNE_Y_ACCEL_MIN 1000.0 // Minimum acceleration for Yaw #define AUTOTUNE_Y_FILT_FREQ 10.0 // Autotune filter frequency when testing Yaw #define AUTOTUNE_D_UP_DOWN_MARGIN 0.2 // The margin below the target that we tune D in -#define AUTOTUNE_RD_BACKOFF 1.0 // Rate D gains are reduced to 50% of their maximum value discovered during tuning +#define AUTOTUNE_RD_BACKOFF 1.0 // Rate D gains are reduced to 50% of their maximum value discovered during tuning #define AUTOTUNE_RP_BACKOFF 1.0 // Rate P gains are reduced to 97.5% of their maximum value discovered during tuning -#define AUTOTUNE_SP_BACKOFF 0.9f // Stab P gains are reduced to 90% of their maximum value discovered during tuning +#define AUTOTUNE_SP_BACKOFF 0.9 // Stab P gains are reduced to 90% of their maximum value discovered during tuning #define AUTOTUNE_ACCEL_RP_BACKOFF 1.0 // back off from maximum acceleration -#define AUTOTUNE_ACCEL_Y_BACKOFF 1.0 // back off from maximum acceleration +#define AUTOTUNE_ACCEL_Y_BACKOFF 1.0 // back off from maximum acceleration // roll and pitch axes #define AUTOTUNE_TARGET_RATE_RLLPIT_CDS 18000 // target roll/pitch rate during AUTOTUNE_STEP_TWITCHING step @@ -653,11 +653,11 @@ void AC_AutoTune_Multi::twitching_test_angle(float angle, float rate, float angl } // twitching_measure_acceleration - measure rate of change of measurement -void AC_AutoTune_Multi::twitching_measure_acceleration(float &rate_of_change, float rate_measurement, float &rate_measurement_max) const +void AC_AutoTune_Multi::twitching_measure_acceleration(float &accel_average, float rate, float rate_max) const { - if (rate_measurement_max < rate_measurement) { - rate_measurement_max = rate_measurement; - rate_of_change = (1000.0f*rate_measurement_max)/(AP_HAL::millis() - step_start_time_ms); + if (rate_max < rate) { + rate_max = rate; + accel_average = (1000.0 * rate_max) / (AP_HAL::millis() - step_start_time_ms); } } @@ -1189,6 +1189,7 @@ void AC_AutoTune_Multi::twitch_test_init() float target_max_rate; switch (axis) { case ROLL: { + angle_abort = target_angle_max_rp_cd(); target_max_rate = MAX(AUTOTUNE_TARGET_MIN_RATE_RLLPIT_CDS, step_scaler * AUTOTUNE_TARGET_RATE_RLLPIT_CDS); target_rate = constrain_float(ToDeg(attitude_control->max_rate_step_bf_roll()) * 100.0, AUTOTUNE_TARGET_MIN_RATE_RLLPIT_CDS, target_max_rate); target_angle = constrain_float(ToDeg(attitude_control->max_angle_step_bf_roll()) * 100.0, target_angle_min_rp_cd(), target_angle_max_rp_cd()); @@ -1196,6 +1197,7 @@ void AC_AutoTune_Multi::twitch_test_init() break; } case PITCH: { + angle_abort = target_angle_max_rp_cd(); target_max_rate = MAX(AUTOTUNE_TARGET_MIN_RATE_RLLPIT_CDS, step_scaler * AUTOTUNE_TARGET_RATE_RLLPIT_CDS); target_rate = constrain_float(ToDeg(attitude_control->max_rate_step_bf_pitch()) * 100.0, AUTOTUNE_TARGET_MIN_RATE_RLLPIT_CDS, target_max_rate); target_angle = constrain_float(ToDeg(attitude_control->max_angle_step_bf_pitch()) * 100.0, target_angle_min_rp_cd(), target_angle_max_rp_cd()); @@ -1204,6 +1206,7 @@ void AC_AutoTune_Multi::twitch_test_init() } case YAW: case YAW_D: { + angle_abort = target_angle_max_y_cd(); target_max_rate = MAX(AUTOTUNE_TARGET_MIN_RATE_YAW_CDS, step_scaler*AUTOTUNE_TARGET_RATE_YAW_CDS); target_rate = constrain_float(ToDeg(attitude_control->max_rate_step_bf_yaw() * 0.75) * 100.0, AUTOTUNE_TARGET_MIN_RATE_YAW_CDS, target_max_rate); target_angle = constrain_float(ToDeg(attitude_control->max_angle_step_bf_yaw() * 0.75) * 100.0, target_angle_min_y_cd(), target_angle_max_y_cd()); @@ -1217,11 +1220,16 @@ void AC_AutoTune_Multi::twitch_test_init() } if ((tune_type == SP_DOWN) || (tune_type == SP_UP)) { + // todo: consider if this should be done for other axis rotation_rate_filt.reset(start_rate); } else { - rotation_rate_filt.reset(0); + rotation_rate_filt.reset(0.0); } - + twitch_first_iter = true; + test_rate_max = 0.0; + test_rate_min = 0.0; + test_angle_max = 0.0; + test_angle_min = 0.0; } //run twitch test @@ -1312,18 +1320,18 @@ void AC_AutoTune_Multi::twitch_test_run(AxisType test_axis, const float dir_sign case RD_UP: case RD_DOWN: twitching_test_rate(lean_angle, rotation_rate, target_rate, test_rate_min, test_rate_max, test_angle_min); - twitching_measure_acceleration(test_accel_max, rotation_rate, rate_max); - twitching_abort_rate(lean_angle, rotation_rate, angle_finish, test_rate_min, test_angle_min); + twitching_measure_acceleration(test_accel_max, rotation_rate, test_rate_max); + twitching_abort_rate(lean_angle, rotation_rate, angle_abort, test_rate_min, test_angle_min); break; case RP_UP: - twitching_test_rate(lean_angle, rotation_rate, target_rate*(1+0.5f*aggressiveness), test_rate_min, test_rate_max, test_angle_min); - twitching_measure_acceleration(test_accel_max, rotation_rate, rate_max); - twitching_abort_rate(lean_angle, rotation_rate, angle_finish, test_rate_min, test_angle_min); + twitching_test_rate(lean_angle, rotation_rate, target_rate * (1 + 0.5 * aggressiveness), test_rate_min, test_rate_max, test_angle_min); + twitching_measure_acceleration(test_accel_max, rotation_rate, test_rate_max); + twitching_abort_rate(lean_angle, rotation_rate, angle_abort, test_rate_min, test_angle_min); break; case SP_DOWN: case SP_UP: - twitching_test_angle(lean_angle, rotation_rate, target_angle*(1+0.5f*aggressiveness), test_angle_min, test_angle_max, test_rate_min, test_rate_max); - twitching_measure_acceleration(test_accel_max, rotation_rate - dir_sign * start_rate, rate_max); + twitching_test_angle(lean_angle, rotation_rate, target_angle * (1 + 0.5 * aggressiveness), test_angle_min, test_angle_max, test_rate_min, test_rate_max); + twitching_measure_acceleration(test_accel_max, rotation_rate - dir_sign * start_rate, test_rate_max); break; case RFF_UP: case MAX_GAINS: diff --git a/libraries/AC_AutoTune/AC_AutoTune_Multi.h b/libraries/AC_AutoTune/AC_AutoTune_Multi.h index 3308ae5d8afb4..e580e4afcbf77 100644 --- a/libraries/AC_AutoTune/AC_AutoTune_Multi.h +++ b/libraries/AC_AutoTune/AC_AutoTune_Multi.h @@ -156,7 +156,7 @@ class AC_AutoTune_Multi : public AC_AutoTune void twitching_test_angle(float angle, float rate, float angle_target, float &meas_angle_min, float &meas_angle_max, float &meas_rate_min, float &meas_rate_max); // measure acceleration during twitch test - void twitching_measure_acceleration(float &rate_of_change, float rate_measurement, float &rate_measurement_max) const; + void twitching_measure_acceleration(float &accel_average, float rate, float rate_max) const; // updating_rate_d_up - increase D and adjust P to optimize the D term for a little bounce back // optimize D term while keeping the maximum just below the target by adjusting P @@ -185,6 +185,14 @@ class AC_AutoTune_Multi : public AC_AutoTune AP_Int8 axis_bitmask; // axes to be tuned AP_Float aggressiveness; // aircraft response aggressiveness to be tuned AP_Float min_d; // minimum rate d gain allowed during tuning + bool ignore_next; // ignore the results of the next test when true + float target_angle; // target angle for the test + float target_rate; // target rate for the test + float angle_abort; // Angle that test is aborted + float test_rate_min; // the minimum angular rate achieved during TESTING_RATE + float test_rate_max; // the maximum angular rate achieved during TESTING_RATE + float test_angle_min; // the minimum angle achieved during TESTING_ANGLE + float test_angle_max; // the maximum angle achieved during TESTING_ANGLE }; #endif // AC_AUTOTUNE_ENABLED From bb1758ecb1d9167996a80c30f078dc838fc417d0 Mon Sep 17 00:00:00 2001 From: Leonard Hall Date: Sun, 21 Jul 2024 22:41:41 +0930 Subject: [PATCH 195/232] AC_Autotune: Add ABORT state for consistency between tests --- libraries/AC_AutoTune/AC_AutoTune.cpp | 6 ++++++ libraries/AC_AutoTune/AC_AutoTune.h | 1 + libraries/AC_AutoTune/AC_AutoTune_Multi.cpp | 6 +----- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/AC_AutoTune/AC_AutoTune.cpp b/libraries/AC_AutoTune/AC_AutoTune.cpp index 40e2e9e2e27d4..bf86386c69fd4 100644 --- a/libraries/AC_AutoTune/AC_AutoTune.cpp +++ b/libraries/AC_AutoTune/AC_AutoTune.cpp @@ -134,6 +134,9 @@ void AC_AutoTune::send_step_string() case UPDATE_GAINS: gcs().send_text(MAV_SEVERITY_INFO, "AutoTune: Updating Gains"); return; + case ABORT: + gcs().send_text(MAV_SEVERITY_INFO, "AutoTune: Aborting Test"); + return; case TESTING: gcs().send_text(MAV_SEVERITY_INFO, "AutoTune: Testing"); return; @@ -527,7 +530,9 @@ void AC_AutoTune::control_attitude() } } } + FALLTHROUGH; + case ABORT: if (axis == YAW || axis == YAW_D) { // todo: check to make sure we need this attitude_control->input_euler_angle_roll_pitch_yaw(0.0f, 0.0f, ahrs_view->yaw_sensor, false); @@ -585,6 +590,7 @@ void AC_AutoTune::backup_gains_and_initialise() */ void AC_AutoTune::load_gains(enum GainType gain_type) { + // todo: add previous setting so gains are not loaded on each loop. switch (gain_type) { case GAIN_ORIGINAL: load_orig_gains(); diff --git a/libraries/AC_AutoTune/AC_AutoTune.h b/libraries/AC_AutoTune/AC_AutoTune.h index fb4233a23ef88..68a8dcee507e7 100644 --- a/libraries/AC_AutoTune/AC_AutoTune.h +++ b/libraries/AC_AutoTune/AC_AutoTune.h @@ -198,6 +198,7 @@ class AC_AutoTune WAITING_FOR_LEVEL = 0, // autotune is waiting for vehicle to return to level before beginning the next twitch TESTING = 1, // autotune has begun a test and is watching the resulting vehicle movement UPDATE_GAINS = 2, // autotune has completed a test and is updating the gains based on the results + ABORT = 3 // load normal gains and return to WAITING_FOR_LEVEL }; // mini steps performed while in Tuning mode, Testing step diff --git a/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp b/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp index 89c1a45b2444d..434f67671dcec 100644 --- a/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp +++ b/libraries/AC_AutoTune/AC_AutoTune_Multi.cpp @@ -573,7 +573,6 @@ void AC_AutoTune_Multi::twitching_test_rate(float angle, float rate, float rate_ // update min and max and test for end conditions void AC_AutoTune_Multi::twitching_abort_rate(float angle, float rate, float angle_max, float meas_rate_min, float angle_min) { - const uint32_t now = AP_HAL::millis(); if (angle >= angle_max) { if (is_equal(rate, meas_rate_min) || (angle_min > 0.95 * angle_max)) { // we have reached the angle limit before completing the measurement of maximum and minimum @@ -587,10 +586,7 @@ void AC_AutoTune_Multi::twitching_abort_rate(float angle, float rate, float angl LOGGER_WRITE_EVENT(LogEvent::AUTOTUNE_FAILED); } // ignore result and start test again - step = WAITING_FOR_LEVEL; - positive_direction = twitch_reverse_direction(); - step_start_time_ms = now; - level_start_time_ms = now; + step = ABORT; } else { step = UPDATE_GAINS; } From e86d5e113f5aa863e4d91f6be6b8d64d49885b6d Mon Sep 17 00:00:00 2001 From: muramura Date: Sat, 20 Apr 2024 15:31:49 +0900 Subject: [PATCH 196/232] AP_Filesystem: BOOL for binary types --- libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp b/libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp index c234779d05016..28a2073492e97 100644 --- a/libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp +++ b/libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp @@ -47,7 +47,7 @@ typedef struct { #define MAX_FILES 16 static FAT_FILE *file_table[MAX_FILES]; -static int isatty_(int fileno) +static bool isatty_(int fileno) { if (fileno >= 0 && fileno <= 2) { return true; From 5b7aaae0080ada57a839cba09f3812a8237edb44 Mon Sep 17 00:00:00 2001 From: yaapu Date: Wed, 7 Dec 2022 14:32:05 +0100 Subject: [PATCH 197/232] AP_Frsky_Telem: fix for HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL = 0 --- .../AP_Frsky_Telem/AP_Frsky_Parameters.cpp | 5 ++-- .../AP_Frsky_Telem/AP_Frsky_Parameters.h | 7 +++--- .../AP_Frsky_SPort_Passthrough.cpp | 23 +++++++++---------- .../AP_Frsky_SPort_Passthrough.h | 3 +-- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.cpp b/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.cpp index f9bf7872e892d..6d474337ef227 100644 --- a/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.cpp +++ b/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.cpp @@ -14,9 +14,9 @@ */ #include "AP_Frsky_Parameters.h" -#if HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL const AP_Param::GroupInfo AP_Frsky_Parameters::var_info[] = { +#if HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL // @Param: UPLINK_ID // @DisplayName: Uplink sensor id // @Description: Change the uplink sensor id (SPort only) @@ -37,6 +37,7 @@ const AP_Param::GroupInfo AP_Frsky_Parameters::var_info[] = { // @Values: -1:Disable,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26 // @User: Advanced AP_GROUPINFO("DNLINK2_ID", 3, AP_Frsky_Parameters, _dnlink2_id, 7), +#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL // @Param: DNLINK_ID // @DisplayName: Default downlink sensor id @@ -58,5 +59,3 @@ AP_Frsky_Parameters::AP_Frsky_Parameters() { AP_Param::setup_object_defaults(this, var_info); } - -#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL diff --git a/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.h b/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.h index 3826f340e6191..f6a06ac962570 100644 --- a/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.h +++ b/libraries/AP_Frsky_Telem/AP_Frsky_Parameters.h @@ -16,7 +16,6 @@ #include "AP_Frsky_Telem.h" -#if HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL #include #include @@ -33,11 +32,11 @@ class AP_Frsky_Parameters private: // settable parameters - AP_Int8 _uplink_id; AP_Int8 _dnlink_id; +#if HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL + AP_Int8 _uplink_id; AP_Int8 _dnlink1_id; AP_Int8 _dnlink2_id; +#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL AP_Int8 _options; }; - -#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL diff --git a/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.cpp b/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.cpp index ec883049f141b..26212761307b4 100644 --- a/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.cpp +++ b/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.cpp @@ -20,8 +20,8 @@ #if HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL #include "AP_Frsky_MAVlite.h" -#include "AP_Frsky_Parameters.h" #endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL +#include "AP_Frsky_Parameters.h" /* for FrSky SPort Passthrough @@ -940,6 +940,16 @@ void AP_Frsky_SPort_Passthrough::process_tx_queue() send_sport_frame(SPORT_DOWNLINK_FRAME, packet.appid, packet.data); } +/* + * Send a mavlite message + * Message is chunked in sport packets pushed in the tx queue + * for FrSky SPort Passthrough (OpenTX) protocol (X-receivers) + */ +bool AP_Frsky_SPort_Passthrough::send_message(const AP_Frsky_MAVlite_Message &txmsg) +{ + return mavlite_to_sport.process(_SPort_bidir.tx_packet_queue, txmsg); +} +#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL /* * Utility method to apply constraints in changing sensor id values * for FrSky SPort Passthrough (OpenTX) protocol (X-receivers) @@ -956,17 +966,6 @@ void AP_Frsky_SPort_Passthrough::set_sensor_id(AP_Int8 param_idx, uint8_t &senso sensor = calc_sensor_id(idx); } -/* - * Send a mavlite message - * Message is chunked in sport packets pushed in the tx queue - * for FrSky SPort Passthrough (OpenTX) protocol (X-receivers) - */ -bool AP_Frsky_SPort_Passthrough::send_message(const AP_Frsky_MAVlite_Message &txmsg) -{ - return mavlite_to_sport.process(_SPort_bidir.tx_packet_queue, txmsg); -} -#endif //HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL - namespace AP { AP_Frsky_SPort_Passthrough *frsky_passthrough_telem() diff --git a/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.h b/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.h index e48541d8cdd8d..441d8b5dbf4f1 100644 --- a/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.h +++ b/libraries/AP_Frsky_Telem/AP_Frsky_SPort_Passthrough.h @@ -149,7 +149,6 @@ class AP_Frsky_SPort_Passthrough : public AP_Frsky_SPort, public AP_RCTelemetry AP_Frsky_MAVlite_SPortToMAVlite sport_to_mavlite; AP_Frsky_MAVlite_MAVliteToSPort mavlite_to_sport; - void set_sensor_id(AP_Int8 idx, uint8_t &sensor); // tx/rx sport packet processing void queue_rx_packet(const AP_Frsky_SPort::sport_packet_t sp); void process_rx_queue(void); @@ -160,7 +159,7 @@ class AP_Frsky_SPort_Passthrough : public AP_Frsky_SPort, public AP_RCTelemetry bool send_message(const AP_Frsky_MAVlite_Message &txmsg); AP_Frsky_MAVliteMsgHandler mavlite{FUNCTOR_BIND_MEMBER(&AP_Frsky_SPort_Passthrough::send_message, bool, const AP_Frsky_MAVlite_Message &)}; #endif - + void set_sensor_id(AP_Int8 idx, uint8_t &sensor); void send_sport_frame(uint8_t frame, uint16_t appid, uint32_t data); // true if we need to respond to the last polling byte From 1b1ca35927fea5669ce539b4d4ea4870b28ce368 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 25 Jul 2024 13:06:28 +1000 Subject: [PATCH 198/232] build_options.py: add HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL --- Tools/scripts/build_options.py | 1 + Tools/scripts/extract_features.py | 1 + 2 files changed, 2 insertions(+) diff --git a/Tools/scripts/build_options.py b/Tools/scripts/build_options.py index e613550f16e15..aa53a8c10ad7d 100644 --- a/Tools/scripts/build_options.py +++ b/Tools/scripts/build_options.py @@ -73,6 +73,7 @@ def __init__(self, Feature('Telemetry', 'FrSky D', 'AP_FRSKY_D_TELEM_ENABLED', 'Enable FrSkyD Telemetry', 0, 'FrSky'), Feature('Telemetry', 'FrSky SPort', 'AP_FRSKY_SPORT_TELEM_ENABLED', 'Enable FrSkySPort Telemetry', 0, 'FrSky'), # noqa Feature('Telemetry', 'FrSky SPort PassThrough', 'AP_FRSKY_SPORT_PASSTHROUGH_ENABLED', 'Enable FrSkySPort PassThrough Telemetry', 0, 'FrSky SPort,FrSky'), # noqa + Feature('Telemetry', 'Bidirectional FrSky Telemetry', 'HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL', 'Enable Bidirectional FrSky telemetry', 0, 'FrSky SPort'), # noqa Feature('Telemetry', 'GHST', 'AP_GHST_TELEM_ENABLED', 'Enable Ghost Telemetry', 0, "RC_GHST"), # noqa Feature('Notify', 'PLAY_TUNE', 'AP_NOTIFY_MAVLINK_PLAY_TUNE_SUPPORT_ENABLED', 'Enable MAVLink Play Tune', 0, None), # noqa diff --git a/Tools/scripts/extract_features.py b/Tools/scripts/extract_features.py index 7143758470446..d1a3d8192dfa5 100755 --- a/Tools/scripts/extract_features.py +++ b/Tools/scripts/extract_features.py @@ -121,6 +121,7 @@ def __init__(self, filename, nm="arm-none-eabi-nm", strings="strings"): ('AP_FRSKY_D_TELEM_ENABLED', 'AP_Frsky_D::send',), ('AP_FRSKY_SPORT_TELEM_ENABLED', 'AP_Frsky_SPort::send_sport_frame',), ('AP_FRSKY_SPORT_PASSTHROUGH_ENABLED', 'AP::frsky_passthrough_telem',), + ('HAL_WITH_FRSKY_TELEM_BIDIRECTIONAL', 'AP_Frsky_SPort_Passthrough::set_telem_data'), ('MODE_{type}_ENABLED', r'Mode(?P.+)::init',), ('MODE_GUIDED_NOGPS_ENABLED', r'ModeGuidedNoGPS::init',), From 763292780a26a9980ccb932c954b4f60cd2bc19a Mon Sep 17 00:00:00 2001 From: CB Unmanned <103763456+CBUnmanned@users.noreply.github.com> Date: Sat, 11 Mar 2023 21:40:23 +0000 Subject: [PATCH 199/232] Tools: Reserve ID for CBUnmanned CM405 Flight Controller --- Tools/AP_Bootloader/board_types.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/AP_Bootloader/board_types.txt b/Tools/AP_Bootloader/board_types.txt index ed687c3241f95..fa534addbff4c 100644 --- a/Tools/AP_Bootloader/board_types.txt +++ b/Tools/AP_Bootloader/board_types.txt @@ -290,6 +290,8 @@ AP_HW_FlywooF405HD_AIOv2 1180 AP_HW_ESP32_PERIPH 1205 AP_HW_ESP32S3_PERIPH 1206 +AP_HW_CBUnmanned-CM405-FC 1301 + AP_HW_KHA_ETH 1315 AP_HW_CUBEORANGE_PERIPH 1400 From 605a9d34e3c6b906203d4f67f98c1c72345d4bd1 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 20:46:18 +1000 Subject: [PATCH 200/232] autotest: tidy various Rover autotests autotest: tidy Sprayer test autotest: tidy rover AC_Avoidance test autotest: tidy rover ModeSwitch test autotest: tidy rover AuxModeSwitch autotest: tidy rover RCOverrides test autotest: tidy rover MANUAL_CONTROL test autotest: tidy rover PolyFenceObjectAvoidance test --- Tools/autotest/rover.py | 964 ++++++++++++++++++---------------------- 1 file changed, 437 insertions(+), 527 deletions(-) diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index b11920ead0361..9f4c8e08fa90f 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -227,108 +227,98 @@ def drive_left_circuit(self): def Sprayer(self): """Test sprayer functionality.""" - self.context_push() - ex = None - try: - rc_ch = 5 - pump_ch = 5 - spinner_ch = 6 - pump_ch_min = 1050 - pump_ch_trim = 1520 - pump_ch_max = 1950 - spinner_ch_min = 975 - spinner_ch_trim = 1510 - spinner_ch_max = 1975 + rc_ch = 5 + pump_ch = 5 + spinner_ch = 6 + pump_ch_min = 1050 + pump_ch_trim = 1520 + pump_ch_max = 1950 + spinner_ch_min = 975 + spinner_ch_trim = 1510 + spinner_ch_max = 1975 - self.set_parameters({ - "SPRAY_ENABLE": 1, + self.set_parameters({ + "SPRAY_ENABLE": 1, - "SERVO%u_FUNCTION" % pump_ch: 22, - "SERVO%u_MIN" % pump_ch: pump_ch_min, - "SERVO%u_TRIM" % pump_ch: pump_ch_trim, - "SERVO%u_MAX" % pump_ch: pump_ch_max, + "SERVO%u_FUNCTION" % pump_ch: 22, + "SERVO%u_MIN" % pump_ch: pump_ch_min, + "SERVO%u_TRIM" % pump_ch: pump_ch_trim, + "SERVO%u_MAX" % pump_ch: pump_ch_max, - "SERVO%u_FUNCTION" % spinner_ch: 23, - "SERVO%u_MIN" % spinner_ch: spinner_ch_min, - "SERVO%u_TRIM" % spinner_ch: spinner_ch_trim, - "SERVO%u_MAX" % spinner_ch: spinner_ch_max, + "SERVO%u_FUNCTION" % spinner_ch: 23, + "SERVO%u_MIN" % spinner_ch: spinner_ch_min, + "SERVO%u_TRIM" % spinner_ch: spinner_ch_trim, + "SERVO%u_MAX" % spinner_ch: spinner_ch_max, - "SIM_SPR_ENABLE": 1, - "SIM_SPR_PUMP": pump_ch, - "SIM_SPR_SPIN": spinner_ch, + "SIM_SPR_ENABLE": 1, + "SIM_SPR_PUMP": pump_ch, + "SIM_SPR_SPIN": spinner_ch, - "RC%u_OPTION" % rc_ch: 15, - "LOG_DISARMED": 1, - }) + "RC%u_OPTION" % rc_ch: 15, + "LOG_DISARMED": 1, + }) - self.reboot_sitl() + self.reboot_sitl() - self.wait_ready_to_arm() - self.arm_vehicle() + self.wait_ready_to_arm() + self.arm_vehicle() - self.progress("test bootup state - it's zero-output!") - self.wait_servo_channel_value(spinner_ch, 0) - self.wait_servo_channel_value(pump_ch, 0) + self.progress("test bootup state - it's zero-output!") + self.wait_servo_channel_value(spinner_ch, 0) + self.wait_servo_channel_value(pump_ch, 0) - self.progress("Enable sprayer") - self.set_rc(rc_ch, 2000) + self.progress("Enable sprayer") + self.set_rc(rc_ch, 2000) - self.progress("Testing zero-speed state") - self.wait_servo_channel_value(spinner_ch, spinner_ch_min) - self.wait_servo_channel_value(pump_ch, pump_ch_min) + self.progress("Testing zero-speed state") + self.wait_servo_channel_value(spinner_ch, spinner_ch_min) + self.wait_servo_channel_value(pump_ch, pump_ch_min) - self.progress("Testing turning it off") - self.set_rc(rc_ch, 1000) - self.wait_servo_channel_value(spinner_ch, spinner_ch_min) - self.wait_servo_channel_value(pump_ch, pump_ch_min) + self.progress("Testing turning it off") + self.set_rc(rc_ch, 1000) + self.wait_servo_channel_value(spinner_ch, spinner_ch_min) + self.wait_servo_channel_value(pump_ch, pump_ch_min) - self.progress("Testing turning it back on") - self.set_rc(rc_ch, 2000) - self.wait_servo_channel_value(spinner_ch, spinner_ch_min) - self.wait_servo_channel_value(pump_ch, pump_ch_min) + self.progress("Testing turning it back on") + self.set_rc(rc_ch, 2000) + self.wait_servo_channel_value(spinner_ch, spinner_ch_min) + self.wait_servo_channel_value(pump_ch, pump_ch_min) - self.progress("Testing speed-ramping") - self.set_rc(3, 1700) # start driving forward + self.progress("Testing speed-ramping") + self.set_rc(3, 1700) # start driving forward - # this is somewhat empirical... - self.wait_servo_channel_value(pump_ch, 1695, timeout=60) + # this is somewhat empirical... + self.wait_servo_channel_value(pump_ch, 1695, timeout=60) - self.progress("Turning it off again") - self.set_rc(rc_ch, 1000) - self.wait_servo_channel_value(spinner_ch, spinner_ch_min) - self.wait_servo_channel_value(pump_ch, pump_ch_min) + self.progress("Turning it off again") + self.set_rc(rc_ch, 1000) + self.wait_servo_channel_value(spinner_ch, spinner_ch_min) + self.wait_servo_channel_value(pump_ch, pump_ch_min) - self.start_subtest("Sprayer Mission") - self.load_mission("sprayer-mission.txt") - self.change_mode("AUTO") + self.start_subtest("Sprayer Mission") + self.load_mission("sprayer-mission.txt") + self.change_mode("AUTO") # self.send_debug_trap() - self.progress("Waiting for sprayer to start") - self.wait_servo_channel_value(pump_ch, 1250, timeout=60, comparator=operator.gt) - self.progress("Waiting for sprayer to stop") - self.wait_servo_channel_value(pump_ch, pump_ch_min, timeout=120) + self.progress("Waiting for sprayer to start") + self.wait_servo_channel_value(pump_ch, 1250, timeout=60, comparator=operator.gt) + self.progress("Waiting for sprayer to stop") + self.wait_servo_channel_value(pump_ch, pump_ch_min, timeout=120) - self.start_subtest("Checking mavlink commands") - self.change_mode("MANUAL") - self.progress("Starting Sprayer") - self.run_cmd(mavutil.mavlink.MAV_CMD_DO_SPRAYER, p1=1) - - self.progress("Testing speed-ramping") - self.set_rc(3, 1700) # start driving forward - self.wait_servo_channel_value(pump_ch, 1690, timeout=60, comparator=operator.gt) - self.start_subtest("Stopping Sprayer") - self.run_cmd(mavutil.mavlink.MAV_CMD_DO_SPRAYER, p1=0) - self.wait_servo_channel_value(pump_ch, pump_ch_min) - self.set_rc(3, 1000) # start driving forward - - self.progress("Sprayer OK") - except Exception as e: - self.print_exception_caught(e) - ex = e - self.disarm_vehicle(force=True) - self.context_pop() - self.reboot_sitl() - if ex: - raise ex + self.start_subtest("Checking mavlink commands") + self.change_mode("MANUAL") + self.progress("Starting Sprayer") + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_SPRAYER, p1=1) + + self.progress("Testing speed-ramping") + self.set_rc(3, 1700) # start driving forward + self.wait_servo_channel_value(pump_ch, 1690, timeout=60, comparator=operator.gt) + self.start_subtest("Stopping Sprayer") + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_SPRAYER, p1=0) + self.wait_servo_channel_value(pump_ch, pump_ch_min) + self.set_rc(3, 1000) # stop driving forward + + self.progress("Sprayer OK") + self.disarm_vehicle() def DriveMaxRCIN(self, timeout=30): """Drive rover at max RC inputs""" @@ -538,42 +528,30 @@ def RTL_SPEED(self, timeout=120): def AC_Avoidance(self): '''Test AC Avoidance switch''' - self.context_push() - ex = None - try: - self.load_fence("rover-fence-ac-avoid.txt") - self.set_parameters({ - "FENCE_ENABLE": 0, - "PRX1_TYPE": 10, - "RC10_OPTION": 40, # proximity-enable - }) - self.reboot_sitl() - # start = self.mav.location() - self.wait_ready_to_arm() - self.arm_vehicle() - # first make sure we can breach the fence: - self.set_rc(10, 1000) - self.change_mode("ACRO") - self.set_rc(3, 1550) - self.wait_distance_to_home(25, 100000, timeout=60) - self.change_mode("RTL") - self.wait_statustext("Reached destination", timeout=60) - # now enable avoidance and make sure we can't: - self.set_rc(10, 2000) - self.change_mode("ACRO") - self.wait_groundspeed(0, 0.7, timeout=60) - # watch for speed zero - self.wait_groundspeed(0, 0.2, timeout=120) - - except Exception as e: - self.print_exception_caught(e) - ex = e - self.disarm_vehicle(force=True) - self.context_pop() - self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_FENCE) + self.load_fence("rover-fence-ac-avoid.txt") + self.set_parameters({ + "FENCE_ENABLE": 0, + "PRX1_TYPE": 10, + "RC10_OPTION": 40, # proximity-enable + }) self.reboot_sitl() - if ex: - raise ex + # start = self.mav.location() + self.wait_ready_to_arm() + self.arm_vehicle() + # first make sure we can breach the fence: + self.set_rc(10, 1000) + self.change_mode("ACRO") + self.set_rc(3, 1550) + self.wait_distance_to_home(25, 100000, timeout=60) + self.change_mode("RTL") + self.wait_statustext("Reached destination", timeout=60) + # now enable avoidance and make sure we can't: + self.set_rc(10, 2000) + self.change_mode("ACRO") + self.wait_groundspeed(0, 0.7, timeout=60) + # watch for speed zero + self.wait_groundspeed(0, 0.2, timeout=120) + self.disarm_vehicle() def ServoRelayEvents(self): '''Test ServoRelayEvents''' @@ -745,75 +723,53 @@ def MAVProxy_SetModeUsingMode(self): def ModeSwitch(self): ''''Set modes via modeswitch''' - self.context_push() - ex = None - try: - self.set_parameter("MODE_CH", 8) - self.set_rc(8, 1000) - # mavutil.mavlink.ROVER_MODE_HOLD: - self.set_parameter("MODE6", 4) - # mavutil.mavlink.ROVER_MODE_ACRO - self.set_parameter("MODE5", 1) - self.set_rc(8, 1800) # PWM for mode6 - self.wait_mode("HOLD") - self.set_rc(8, 1700) # PWM for mode5 - self.wait_mode("ACRO") - self.set_rc(8, 1800) # PWM for mode6 - self.wait_mode("HOLD") - self.set_rc(8, 1700) # PWM for mode5 - self.wait_mode("ACRO") - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.context_pop() - - if ex is not None: - raise ex + self.set_parameter("MODE_CH", 8) + self.set_rc(8, 1000) + # mavutil.mavlink.ROVER_MODE_HOLD: + self.set_parameter("MODE6", 4) + # mavutil.mavlink.ROVER_MODE_ACRO + self.set_parameter("MODE5", 1) + self.set_rc(8, 1800) # PWM for mode6 + self.wait_mode("HOLD") + self.set_rc(8, 1700) # PWM for mode5 + self.wait_mode("ACRO") + self.set_rc(8, 1800) # PWM for mode6 + self.wait_mode("HOLD") + self.set_rc(8, 1700) # PWM for mode5 + self.wait_mode("ACRO") def AuxModeSwitch(self): '''Set modes via auxswitches''' - self.context_push() - ex = None - try: - # from mavproxy_rc.py - mapping = [0, 1165, 1295, 1425, 1555, 1685, 1815] - self.set_parameter("MODE1", 1) # acro - self.set_rc(8, mapping[1]) - self.wait_mode('ACRO') - - self.set_rc(9, 1000) - self.set_rc(10, 1000) - self.set_parameters({ - "RC9_OPTION": 53, # steering - "RC10_OPTION": 54, # hold - }) - self.set_rc(9, 1900) - self.wait_mode("STEERING") - self.set_rc(10, 1900) - self.wait_mode("HOLD") - - # reset both switches - should go back to ACRO - self.set_rc(9, 1000) - self.set_rc(10, 1000) - self.wait_mode("ACRO") - - self.set_rc(9, 1900) - self.wait_mode("STEERING") - self.set_rc(10, 1900) - self.wait_mode("HOLD") - - self.set_rc(10, 1000) # this re-polls the mode switch - self.wait_mode("ACRO") - self.set_rc(9, 1000) - except Exception as e: - self.print_exception_caught(e) - ex = e + # from mavproxy_rc.py + mapping = [0, 1165, 1295, 1425, 1555, 1685, 1815] + self.set_parameter("MODE1", 1) # acro + self.set_rc(8, mapping[1]) + self.wait_mode('ACRO') - self.context_pop() + self.set_rc(9, 1000) + self.set_rc(10, 1000) + self.set_parameters({ + "RC9_OPTION": 53, # steering + "RC10_OPTION": 54, # hold + }) + self.set_rc(9, 1900) + self.wait_mode("STEERING") + self.set_rc(10, 1900) + self.wait_mode("HOLD") + + # reset both switches - should go back to ACRO + self.set_rc(9, 1000) + self.set_rc(10, 1000) + self.wait_mode("ACRO") - if ex is not None: - raise ex + self.set_rc(9, 1900) + self.wait_mode("STEERING") + self.set_rc(10, 1900) + self.wait_mode("HOLD") + + self.set_rc(10, 1000) # this re-polls the mode switch + self.wait_mode("ACRO") + self.set_rc(9, 1000) def RCOverridesCancel(self): '''Test RC overrides Cancel''' @@ -888,337 +844,314 @@ def RCOverridesCancel(self): def RCOverrides(self): '''Test RC overrides''' - self.context_push() self.set_parameter("SYSID_MYGCS", self.mav.source_system) - ex = None - try: - self.set_parameter("RC12_OPTION", 46) - self.reboot_sitl() - - self.change_mode('MANUAL') - self.wait_ready_to_arm() - self.set_rc(3, 1500) # throttle at zero - self.arm_vehicle() - # start moving forward a little: - normal_rc_throttle = 1700 - self.set_rc(3, normal_rc_throttle) - self.wait_groundspeed(5, 100) - - # allow overrides: - self.set_rc(12, 2000) - - # now override to stop: - throttle_override = 1500 + self.set_parameter("RC12_OPTION", 46) + self.reboot_sitl() - tstart = self.get_sim_time_cached() - while True: - if self.get_sim_time_cached() - tstart > 10: - raise AutoTestTimeoutException("Did not reach speed") - self.progress("Sending throttle of %u" % (throttle_override,)) - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - 65535, # chan1_raw - 65535, # chan2_raw - throttle_override, # chan3_raw - 65535, # chan4_raw - 65535, # chan5_raw - 65535, # chan6_raw - 65535, # chan7_raw - 65535) # chan8_raw - - m = self.mav.recv_match(type='VFR_HUD', blocking=True) - want_speed = 2.0 - self.progress("Speed=%f want=<%f" % (m.groundspeed, want_speed)) - if m.groundspeed < want_speed: - break + self.change_mode('MANUAL') + self.wait_ready_to_arm() + self.set_rc(3, 1500) # throttle at zero + self.arm_vehicle() + # start moving forward a little: + normal_rc_throttle = 1700 + self.set_rc(3, normal_rc_throttle) + self.wait_groundspeed(5, 100) - # now override to stop - but set the switch on the RC - # transmitter to deny overrides; this should send the - # speed back up to 5 metres/second: - self.set_rc(12, 1000) + # allow overrides: + self.set_rc(12, 2000) - throttle_override = 1500 - tstart = self.get_sim_time_cached() - while True: - if self.get_sim_time_cached() - tstart > 10: - raise AutoTestTimeoutException("Did not speed back up") - self.progress("Sending throttle of %u" % (throttle_override,)) - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - 65535, # chan1_raw - 65535, # chan2_raw - throttle_override, # chan3_raw - 65535, # chan4_raw - 65535, # chan5_raw - 65535, # chan6_raw - 65535, # chan7_raw - 65535) # chan8_raw - - m = self.mav.recv_match(type='VFR_HUD', blocking=True) - want_speed = 5.0 - self.progress("Speed=%f want=>%f" % (m.groundspeed, want_speed)) - - if m.groundspeed > want_speed: - break + # now override to stop: + throttle_override = 1500 - # re-enable RC overrides - self.set_rc(12, 2000) - - # check we revert to normal RC inputs when gcs overrides cease: - self.progress("Waiting for RC to revert to normal RC input") - self.wait_rc_channel_value(3, normal_rc_throttle, timeout=10) - - self.start_subtest("Check override time of zero disables overrides") - old = self.get_parameter("RC_OVERRIDE_TIME") - ch = 2 - self.set_rc(ch, 1000) - channels = [65535] * 18 - ch_override_value = 1700 - channels[ch-1] = ch_override_value - channels[7] = 1234 # that's channel 8! - self.progress("Sending override message %u" % ch_override_value) - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - *channels - ) - # long timeout required here as we may have sent a lot of - # things via MAVProxy... - self.wait_rc_channel_value(ch, ch_override_value, timeout=30) - self.set_parameter("RC_OVERRIDE_TIME", 0) - self.wait_rc_channel_value(ch, 1000) - self.set_parameter("RC_OVERRIDE_TIME", old) - self.wait_rc_channel_value(ch, ch_override_value) - - ch_override_value = 1720 - channels[ch-1] = ch_override_value - self.progress("Sending override message %u" % ch_override_value) + tstart = self.get_sim_time_cached() + while True: + if self.get_sim_time_cached() - tstart > 10: + raise AutoTestTimeoutException("Did not reach speed") + self.progress("Sending throttle of %u" % (throttle_override,)) self.mav.mav.rc_channels_override_send( 1, # target system 1, # targe component - *channels - ) - self.wait_rc_channel_value(ch, ch_override_value, timeout=10) - self.set_parameter("RC_OVERRIDE_TIME", 0) - self.wait_rc_channel_value(ch, 1000) - self.set_parameter("RC_OVERRIDE_TIME", old) + 65535, # chan1_raw + 65535, # chan2_raw + throttle_override, # chan3_raw + 65535, # chan4_raw + 65535, # chan5_raw + 65535, # chan6_raw + 65535, # chan7_raw + 65535) # chan8_raw - self.progress("Ensuring timeout works") - self.wait_rc_channel_value(ch, 1000, timeout=5) - self.delay_sim_time(10) + m = self.mav.recv_match(type='VFR_HUD', blocking=True) + want_speed = 2.0 + self.progress("Speed=%f want=<%f" % (m.groundspeed, want_speed)) + if m.groundspeed < want_speed: + break - self.set_parameter("RC_OVERRIDE_TIME", 10) - self.progress("Sending override message") + # now override to stop - but set the switch on the RC + # transmitter to deny overrides; this should send the + # speed back up to 5 metres/second: + self.set_rc(12, 1000) - ch_override_value = 1730 - channels[ch-1] = ch_override_value - self.progress("Sending override message %u" % ch_override_value) - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - *channels - ) - self.wait_rc_channel_value(ch, ch_override_value, timeout=10) - tstart = self.get_sim_time() - self.progress("Waiting for channel to revert to 1000 in ~10s") - self.wait_rc_channel_value(ch, 1000, timeout=15) - delta = self.get_sim_time() - tstart - if delta > 12: - raise NotAchievedException("Took too long to revert RC channel value (delta=%f)" % delta) - min_delta = 9 - if delta < min_delta: - raise NotAchievedException("Didn't take long enough to revert RC channel value (delta=%f want>=%f)" % - (delta, min_delta)) - self.progress("Disabling RC override timeout") - self.set_parameter("RC_OVERRIDE_TIME", -1) - ch_override_value = 1740 - channels[ch-1] = ch_override_value - self.progress("Sending override message %u" % ch_override_value) + throttle_override = 1500 + tstart = self.get_sim_time_cached() + while True: + if self.get_sim_time_cached() - tstart > 10: + raise AutoTestTimeoutException("Did not speed back up") + self.progress("Sending throttle of %u" % (throttle_override,)) self.mav.mav.rc_channels_override_send( 1, # target system 1, # targe component - *channels - ) - self.wait_rc_channel_value(ch, ch_override_value, timeout=10) - tstart = self.get_sim_time() - while True: - # warning: this is get_sim_time() and can slurp messages on you! - delta = self.get_sim_time() - tstart - if delta > 20: - break - m = self.assert_receive_message('RC_CHANNELS', timeout=1) - channel_field = "chan%u_raw" % ch - m_value = getattr(m, channel_field) - if m_value != ch_override_value: - raise NotAchievedException("Value reverted after %f seconds when it should not have (got=%u) (want=%u)" % (delta, m_value, ch_override_value)) # noqa - self.set_parameter("RC_OVERRIDE_TIME", old) + 65535, # chan1_raw + 65535, # chan2_raw + throttle_override, # chan3_raw + 65535, # chan4_raw + 65535, # chan5_raw + 65535, # chan6_raw + 65535, # chan7_raw + 65535) # chan8_raw - self.delay_sim_time(10) + m = self.mav.recv_match(type='VFR_HUD', blocking=True) + want_speed = 5.0 + self.progress("Speed=%f want=>%f" % (m.groundspeed, want_speed)) - self.start_subtest("Checking higher-channel semantics") - self.context_push() - self.set_parameter("RC_OVERRIDE_TIME", 30) + if m.groundspeed > want_speed: + break - ch = 11 - rc_value = 1010 - self.set_rc(ch, rc_value) + # re-enable RC overrides + self.set_rc(12, 2000) + + # check we revert to normal RC inputs when gcs overrides cease: + self.progress("Waiting for RC to revert to normal RC input") + self.wait_rc_channel_value(3, normal_rc_throttle, timeout=10) + + self.start_subtest("Check override time of zero disables overrides") + old = self.get_parameter("RC_OVERRIDE_TIME") + ch = 2 + self.set_rc(ch, 1000) + channels = [65535] * 18 + ch_override_value = 1700 + channels[ch-1] = ch_override_value + channels[7] = 1234 # that's channel 8! + self.progress("Sending override message %u" % ch_override_value) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + # long timeout required here as we may have sent a lot of + # things via MAVProxy... + self.wait_rc_channel_value(ch, ch_override_value, timeout=30) + self.set_parameter("RC_OVERRIDE_TIME", 0) + self.wait_rc_channel_value(ch, 1000) + self.set_parameter("RC_OVERRIDE_TIME", old) + self.wait_rc_channel_value(ch, ch_override_value) + + ch_override_value = 1720 + channels[ch-1] = ch_override_value + self.progress("Sending override message %u" % ch_override_value) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + self.set_parameter("RC_OVERRIDE_TIME", 0) + self.wait_rc_channel_value(ch, 1000) + self.set_parameter("RC_OVERRIDE_TIME", old) - channels = [65535] * 18 - ch_override_value = 1234 - channels[ch-1] = ch_override_value - self.progress("Sending override message ch%u=%u" % (ch, ch_override_value)) - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - *channels - ) - self.progress("Wait for override value") - self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + self.progress("Ensuring timeout works") + self.wait_rc_channel_value(ch, 1000, timeout=5) + self.delay_sim_time(10) - self.progress("Sending return-to-RC-input value") - channels[ch-1] = 65534 - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - *channels - ) - self.wait_rc_channel_value(ch, rc_value, timeout=10) + self.set_parameter("RC_OVERRIDE_TIME", 10) + self.progress("Sending override message") + + ch_override_value = 1730 + channels[ch-1] = ch_override_value + self.progress("Sending override message %u" % ch_override_value) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + tstart = self.get_sim_time() + self.progress("Waiting for channel to revert to 1000 in ~10s") + self.wait_rc_channel_value(ch, 1000, timeout=15) + delta = self.get_sim_time() - tstart + if delta > 12: + raise NotAchievedException("Took too long to revert RC channel value (delta=%f)" % delta) + min_delta = 9 + if delta < min_delta: + raise NotAchievedException("Didn't take long enough to revert RC channel value (delta=%f want>=%f)" % + (delta, min_delta)) + self.progress("Disabling RC override timeout") + self.set_parameter("RC_OVERRIDE_TIME", -1) + ch_override_value = 1740 + channels[ch-1] = ch_override_value + self.progress("Sending override message %u" % ch_override_value) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + tstart = self.get_sim_time() + while True: + # warning: this is get_sim_time() and can slurp messages on you! + delta = self.get_sim_time() - tstart + if delta > 20: + break + m = self.assert_receive_message('RC_CHANNELS', timeout=1) + channel_field = "chan%u_raw" % ch + m_value = getattr(m, channel_field) + if m_value != ch_override_value: + raise NotAchievedException("Value reverted after %f seconds when it should not have (got=%u) (want=%u)" % (delta, m_value, ch_override_value)) # noqa + self.set_parameter("RC_OVERRIDE_TIME", old) + + self.delay_sim_time(10) + + self.start_subtest("Checking higher-channel semantics") + self.context_push() + self.set_parameter("RC_OVERRIDE_TIME", 30) + + ch = 11 + rc_value = 1010 + self.set_rc(ch, rc_value) + + channels = [65535] * 18 + ch_override_value = 1234 + channels[ch-1] = ch_override_value + self.progress("Sending override message ch%u=%u" % (ch, ch_override_value)) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.progress("Wait for override value") + self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + + self.progress("Sending return-to-RC-input value") + channels[ch-1] = 65534 + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.wait_rc_channel_value(ch, rc_value, timeout=10) + + channels[ch-1] = ch_override_value + self.progress("Sending override message ch%u=%u" % (ch, ch_override_value)) + self.mav.mav.rc_channels_override_send( + 1, # target system + 1, # targe component + *channels + ) + self.progress("Wait for override value") + self.wait_rc_channel_value(ch, ch_override_value, timeout=10) - channels[ch-1] = ch_override_value - self.progress("Sending override message ch%u=%u" % (ch, ch_override_value)) + # make we keep the override vaue for at least 10 seconds: + tstart = self.get_sim_time() + while True: + if self.get_sim_time_cached() - tstart > 10: + break + # try both ignore values: + ignore_value = 0 + if self.get_sim_time_cached() - tstart > 5: + ignore_value = 65535 + self.progress("Sending ignore value %u" % ignore_value) + channels[ch-1] = ignore_value self.mav.mav.rc_channels_override_send( 1, # target system 1, # targe component *channels ) - self.progress("Wait for override value") - self.wait_rc_channel_value(ch, ch_override_value, timeout=10) + if self.get_rc_channel_value(ch) != ch_override_value: + raise NotAchievedException("Did not maintain value") - # make we keep the override vaue for at least 10 seconds: - tstart = self.get_sim_time() - while True: - if self.get_sim_time_cached() - tstart > 10: - break - # try both ignore values: - ignore_value = 0 - if self.get_sim_time_cached() - tstart > 5: - ignore_value = 65535 - self.progress("Sending ignore value %u" % ignore_value) - channels[ch-1] = ignore_value - self.mav.mav.rc_channels_override_send( - 1, # target system - 1, # targe component - *channels - ) - if self.get_rc_channel_value(ch) != ch_override_value: - raise NotAchievedException("Did not maintain value") - - self.context_pop() - - self.end_subtest("Checking higher-channel semantics") + self.context_pop() - except Exception as e: - self.print_exception_caught(e) - ex = e + self.end_subtest("Checking higher-channel semantics") self.disarm_vehicle() - self.context_pop() - self.reboot_sitl() - - if ex is not None: - raise ex def MANUAL_CONTROL(self): '''Test mavlink MANUAL_CONTROL''' - self.context_push() - self.set_parameter("SYSID_MYGCS", self.mav.source_system) - ex = None - try: - self.set_parameter("RC12_OPTION", 46) # enable/disable rc overrides - self.reboot_sitl() + self.set_parameters({ + "SYSID_MYGCS": self.mav.source_system, + "RC12_OPTION": 46, # enable/disable rc overrides + }) + self.reboot_sitl() - self.change_mode("MANUAL") - self.wait_ready_to_arm() - self.zero_throttle() - self.arm_vehicle() - self.progress("start moving forward a little") - normal_rc_throttle = 1700 - self.set_rc(3, normal_rc_throttle) - self.wait_groundspeed(5, 100) + self.change_mode("MANUAL") + self.wait_ready_to_arm() + self.arm_vehicle() + self.progress("start moving forward a little") + normal_rc_throttle = 1700 + self.set_rc(3, normal_rc_throttle) + self.wait_groundspeed(5, 100) - self.progress("allow overrides") - self.set_rc(12, 2000) + self.progress("allow overrides") + self.set_rc(12, 2000) - self.progress("now override to stop") - throttle_override_normalized = 0 - expected_throttle = 0 # in VFR_HUD + self.progress("now override to stop") + throttle_override_normalized = 0 + expected_throttle = 0 # in VFR_HUD - tstart = self.get_sim_time_cached() - while True: - if self.get_sim_time_cached() - tstart > 10: - raise AutoTestTimeoutException("Did not reach speed") - self.progress("Sending normalized throttle of %d" % (throttle_override_normalized,)) - self.mav.mav.manual_control_send( - 1, # target system - 32767, # x (pitch) - 32767, # y (roll) - throttle_override_normalized, # z (thrust) - 32767, # r (yaw) - 0) # button mask - - m = self.mav.recv_match(type='VFR_HUD', blocking=True) - want_speed = 2.0 - self.progress("Speed=%f want=<%f throttle=%u want=%u" % - (m.groundspeed, want_speed, m.throttle, expected_throttle)) - if m.groundspeed < want_speed and m.throttle == expected_throttle: - break + tstart = self.get_sim_time_cached() + while True: + if self.get_sim_time_cached() - tstart > 10: + raise AutoTestTimeoutException("Did not reach speed") + self.progress("Sending normalized throttle of %d" % (throttle_override_normalized,)) + self.mav.mav.manual_control_send( + 1, # target system + 32767, # x (pitch) + 32767, # y (roll) + throttle_override_normalized, # z (thrust) + 32767, # r (yaw) + 0) # button mask + + m = self.mav.recv_match(type='VFR_HUD', blocking=True) + want_speed = 2.0 + self.progress("Speed=%f want=<%f throttle=%u want=%u" % + (m.groundspeed, want_speed, m.throttle, expected_throttle)) + if m.groundspeed < want_speed and m.throttle == expected_throttle: + break - self.progress("now override to stop - but set the switch on the RC transmitter to deny overrides; this should send the speed back up to 5 metres/second") # noqa - self.set_rc(12, 1000) + self.progress("now override to stop - but set the switch on the RC transmitter to deny overrides; this should send the speed back up to 5 metres/second") # noqa + self.set_rc(12, 1000) - throttle_override_normalized = 500 - expected_throttle = 36 # in VFR_HUD, corresponding to normal_rc_throttle adjusted for channel min/max + throttle_override_normalized = 500 + expected_throttle = 36 # in VFR_HUD, corresponding to normal_rc_throttle adjusted for channel min/max - tstart = self.get_sim_time_cached() - while True: - if self.get_sim_time_cached() - tstart > 10: - raise AutoTestTimeoutException("Did not stop") - self.progress("Sending normalized throttle of %u" % (throttle_override_normalized,)) - self.mav.mav.manual_control_send( - 1, # target system - 32767, # x (pitch) - 32767, # y (roll) - throttle_override_normalized, # z (thrust) - 32767, # r (yaw) - 0) # button mask - - m = self.mav.recv_match(type='VFR_HUD', blocking=True) - want_speed = 5.0 - - self.progress("Speed=%f want=>%f throttle=%u want=%u" % - (m.groundspeed, want_speed, m.throttle, expected_throttle)) - if m.groundspeed > want_speed and m.throttle == expected_throttle: - break + tstart = self.get_sim_time_cached() + while True: + if self.get_sim_time_cached() - tstart > 10: + raise AutoTestTimeoutException("Did not stop") + self.progress("Sending normalized throttle of %u" % (throttle_override_normalized,)) + self.mav.mav.manual_control_send( + 1, # target system + 32767, # x (pitch) + 32767, # y (roll) + throttle_override_normalized, # z (thrust) + 32767, # r (yaw) + 0) # button mask + + m = self.mav.recv_match(type='VFR_HUD', blocking=True) + want_speed = 5.0 + + self.progress("Speed=%f want=>%f throttle=%u want=%u" % + (m.groundspeed, want_speed, m.throttle, expected_throttle)) + if m.groundspeed > want_speed and m.throttle == expected_throttle: + break - # re-enable RC overrides - self.set_rc(12, 2000) + # re-enable RC overrides + self.set_rc(12, 2000) - # check we revert to normal RC inputs when gcs overrides cease: - self.progress("Waiting for RC to revert to normal RC input") - self.wait_rc_channel_value(3, normal_rc_throttle, timeout=10) - - except Exception as e: - self.print_exception_caught(e) - ex = e + # check we revert to normal RC inputs when gcs overrides cease: + self.progress("Waiting for RC to revert to normal RC input") + self.wait_rc_channel_value(3, normal_rc_throttle, timeout=10) self.disarm_vehicle() - self.context_pop() - self.reboot_sitl() - - if ex is not None: - raise ex def CameraMission(self): '''Test Camera Mission Items''' @@ -4880,35 +4813,24 @@ def test_poly_fence_object_avoidance_auto(self, target_system=1, target_componen self.stop_mavproxy(mavproxy) # self.load_fence("rover-path-planning-fence.txt") self.load_mission("rover-path-planning-mission.txt") - self.context_push() - ex = None - try: - self.set_parameters({ - "AVOID_ENABLE": 3, - "OA_TYPE": 2, - "FENCE_MARGIN": 0, # FIXME: https://github.com/ArduPilot/ardupilot/issues/11601 - }) - self.reboot_sitl() - self.change_mode('AUTO') - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_parameter("FENCE_ENABLE", 1) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") - # target_loc is copied from the mission file - target_loc = mavutil.location(40.073799, -105.229156) - self.wait_location(target_loc, height_accuracy=None, timeout=300) - # mission has RTL as last item - self.wait_distance_to_home(3, 7, timeout=300) - self.disarm_vehicle() - except Exception as e: - self.disarm_vehicle(force=True) - self.print_exception_caught(e) - ex = e - self.context_pop() + self.set_parameters({ + "AVOID_ENABLE": 3, + "OA_TYPE": 2, + "FENCE_MARGIN": 0, # FIXME: https://github.com/ArduPilot/ardupilot/issues/11601 + }) self.reboot_sitl() - if ex is not None: - raise ex + self.change_mode('AUTO') + self.wait_ready_to_arm() + self.arm_vehicle() + self.set_parameter("FENCE_ENABLE", 1) + if self.mavproxy is not None: + self.mavproxy.send("fence list\n") + # target_loc is copied from the mission file + target_loc = mavutil.location(40.073799, -105.229156) + self.wait_location(target_loc, height_accuracy=None, timeout=300) + # mission has RTL as last item + self.wait_distance_to_home(3, 7, timeout=300) + self.disarm_vehicle() def send_guided_mission_item(self, loc, target_system=1, target_component=1): self.mav.mav.mission_item_send( @@ -4930,35 +4852,23 @@ def send_guided_mission_item(self, loc, target_system=1, target_component=1): def test_poly_fence_object_avoidance_guided_pathfinding(self, target_system=1, target_component=1): self.load_fence("rover-path-planning-fence.txt") - self.context_push() - ex = None - try: - self.set_parameters({ - "AVOID_ENABLE": 3, - "OA_TYPE": 2, - "FENCE_MARGIN": 0, # FIXME: https://github.com/ArduPilot/ardupilot/issues/11601 - }) - self.reboot_sitl() - self.change_mode('GUIDED') - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_parameter("FENCE_ENABLE", 1) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") - target_loc = mavutil.location(40.073800, -105.229172) - self.send_guided_mission_item(target_loc, - target_system=target_system, - target_component=target_component) - self.wait_location(target_loc, timeout=300) - self.do_RTL(timeout=300) - self.disarm_vehicle() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() + self.set_parameters({ + "AVOID_ENABLE": 3, + "OA_TYPE": 2, + "FENCE_MARGIN": 0, # FIXME: https://github.com/ArduPilot/ardupilot/issues/11601 + }) self.reboot_sitl() - if ex is not None: - raise ex + self.change_mode('GUIDED') + self.wait_ready_to_arm() + self.arm_vehicle() + self.set_parameter("FENCE_ENABLE", 1) + target_loc = mavutil.location(40.073800, -105.229172) + self.send_guided_mission_item(target_loc, + target_system=target_system, + target_component=target_component) + self.wait_location(target_loc, timeout=300) + self.do_RTL(timeout=300) + self.disarm_vehicle() def WheelEncoders(self): '''make sure wheel encoders are generally working''' From f1a1b1183062c6c3e34f5df70fbe81b57dd21398 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 23:56:24 +1000 Subject: [PATCH 201/232] autotest: tidy Helicopter missions to use new infrastructure autotest: tidy PosHoldTakeoff heli test autotest: tidy StabilizeTakeoff heli test autotest: tidy SplineWaypoint heli test autotest: tidy ManAutoRotation heli test autotest: tidy AirspeedDrivers heli test autotest: tidy PIDNotches heli test --- Tools/autotest/helicopter.py | 232 ++++++++++++++--------------------- 1 file changed, 89 insertions(+), 143 deletions(-) diff --git a/Tools/autotest/helicopter.py b/Tools/autotest/helicopter.py index 91c96e03643c1..14fbb1513ddd8 100644 --- a/Tools/autotest/helicopter.py +++ b/Tools/autotest/helicopter.py @@ -224,101 +224,67 @@ def hover(self): def PosHoldTakeOff(self): """ensure vehicle stays put until it is ready to fly""" - self.context_push() - - ex = None - try: - self.set_parameter("PILOT_TKOFF_ALT", 700) - self.change_mode('POSHOLD') - self.zero_throttle() - self.set_rc(8, 1000) - self.wait_ready_to_arm() - # Arm - self.arm_vehicle() - self.progress("Raising rotor speed") - self.set_rc(8, 2000) - self.progress("wait for rotor runup to complete") - self.wait_servo_channel_value(8, 1659, timeout=10) - self.delay_sim_time(20) - # check we are still on the ground... - m = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) - max_relalt_mm = 1000 - if abs(m.relative_alt) > max_relalt_mm: - raise NotAchievedException("Took off prematurely (abs(%f)>%f)" % - (m.relative_alt, max_relalt_mm)) - - self.progress("Pushing collective past half-way") - self.set_rc(3, 1600) - self.delay_sim_time(0.5) - self.hover() - - # make sure we haven't already reached alt: - m = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) - max_initial_alt = 1500 - if abs(m.relative_alt) > max_initial_alt: - raise NotAchievedException("Took off too fast (%f > %f" % - (abs(m.relative_alt), max_initial_alt)) - - self.progress("Monitoring takeoff-to-alt") - self.wait_altitude(6.9, 8, relative=True) - - self.progress("Making sure we stop at our takeoff altitude") - tstart = self.get_sim_time() - while self.get_sim_time() - tstart < 5: - m = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) - delta = abs(7000 - m.relative_alt) - self.progress("alt=%f delta=%f" % (m.relative_alt/1000, - delta/1000)) - if delta > 1000: - raise NotAchievedException("Failed to maintain takeoff alt") - self.progress("takeoff OK") - except Exception as e: - self.print_exception_caught(e) - ex = e + self.set_parameter("PILOT_TKOFF_ALT", 700) + self.change_mode('POSHOLD') + self.zero_throttle() + self.set_rc(8, 1000) + self.wait_ready_to_arm() + # Arm + self.arm_vehicle() + self.progress("Raising rotor speed") + self.set_rc(8, 2000) + self.progress("wait for rotor runup to complete") + self.wait_servo_channel_value(8, 1659, timeout=10) + self.delay_sim_time(20) + # check we are still on the ground... + max_relalt = 1 # metres + relative_alt = self.get_altitude(relative=True) + if abs(relative_alt) > max_relalt: + raise NotAchievedException("Took off prematurely (abs(%f)>%f)" % + (relative_alt, max_relalt)) + + self.progress("Pushing collective past half-way") + self.set_rc(3, 1600) + self.delay_sim_time(0.5) + self.hover() - self.land_and_disarm() + # make sure we haven't already reached alt: + relative_alt = self.get_altitude(relative=True) + max_initial_alt = 1.5 # metres + if abs(relative_alt) > max_initial_alt: + raise NotAchievedException("Took off too fast (%f > %f" % + (abs(relative_alt), max_initial_alt)) - self.context_pop() + self.progress("Monitoring takeoff-to-alt") + self.wait_altitude(6, 8, relative=True, minimum_duration=5) + self.progress("takeoff OK") - if ex is not None: - raise ex + self.land_and_disarm() def StabilizeTakeOff(self): """Fly stabilize takeoff""" - self.context_push() - - ex = None - try: - self.change_mode('STABILIZE') - self.set_rc(3, 1000) - self.set_rc(8, 1000) - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_rc(8, 2000) - self.progress("wait for rotor runup to complete") - self.wait_servo_channel_value(8, 1659, timeout=10) - self.delay_sim_time(20) - # check we are still on the ground... - m = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True) - if abs(m.relative_alt) > 100: - raise NotAchievedException("Took off prematurely") - self.progress("Pushing throttle past half-way") - self.set_rc(3, 1650) - - self.progress("Monitoring takeoff") - self.wait_altitude(6.9, 8, relative=True) - - self.progress("takeoff OK") - except Exception as e: - self.print_exception_caught(e) - ex = e + self.change_mode('STABILIZE') + self.set_rc(3, 1000) + self.set_rc(8, 1000) + self.wait_ready_to_arm() + self.arm_vehicle() + self.set_rc(8, 2000) + self.progress("wait for rotor runup to complete") + self.wait_servo_channel_value(8, 1659, timeout=10) + self.delay_sim_time(20) + # check we are still on the ground... + relative_alt = self.get_altitude(relative=True) + if abs(relative_alt) > 0.1: + raise NotAchievedException("Took off prematurely") + self.progress("Pushing throttle past half-way") + self.set_rc(3, 1650) - self.land_and_disarm() + self.progress("Monitoring takeoff") + self.wait_altitude(6.9, 8, relative=True) - self.context_pop() + self.progress("takeoff OK") - if ex is not None: - raise ex + self.land_and_disarm() def SplineWaypoint(self, timeout=600): """ensure basic spline functionality works""" @@ -331,13 +297,7 @@ def SplineWaypoint(self, timeout=600): self.delay_sim_time(20) self.change_mode("AUTO") self.set_rc(3, 1500) - tstart = self.get_sim_time() - while True: - if self.get_sim_time() - tstart > timeout: - raise AutoTestTimeoutException("Vehicle did not disarm after mission") - if not self.armed(): - break - self.delay_sim_time(1) + self.wait_disarmed(timeout=600) self.progress("Lowering rotor speed") self.set_rc(8, 1000) @@ -380,13 +340,15 @@ def ManAutoRotation(self, timeout=600): """Check autorotation power recovery behaviour""" RAMP_TIME = 4 AROT_RAMP_TIME = 2 - self.set_parameter("H_RSC_AROT_MN_EN", 1) - self.set_parameter("H_RSC_AROT_ENG_T", AROT_RAMP_TIME) - self.set_parameter("H_RSC_AROT_IDLE", 20) - self.set_parameter("H_RSC_RAMP_TIME", RAMP_TIME) - self.set_parameter("H_RSC_IDLE", 0) start_alt = 100 # metres - self.set_parameter("PILOT_TKOFF_ALT", start_alt * 100) + self.set_parameters({ + "H_RSC_AROT_MN_EN": 1, + "H_RSC_AROT_ENG_T": AROT_RAMP_TIME, + "H_RSC_AROT_IDLE": 20, + "H_RSC_RAMP_TIME": RAMP_TIME, + "H_RSC_IDLE": 0, + "PILOT_TKOFF_ALT": start_alt * 100, + }) self.change_mode('POSHOLD') self.set_rc(3, 1000) self.set_rc(8, 1000) @@ -680,7 +642,14 @@ def fly_mission(self, filename, strict=True): def AirspeedDrivers(self, timeout=600): '''Test AirSpeed drivers''' + # Copter's airspeed sensors are off by default + self.set_parameters({ + "ARSPD_ENABLE": 1, + "ARSPD_TYPE": 2, # Analog airspeed driver + "ARSPD_PIN": 1, # Analog airspeed driver pin for SITL + }) # set the start location to CMAC to use same test script as other vehicles + self.sitl_start_loc = mavutil.location(-35.362881, 149.165222, 582.000000, 90.0) # CMAC self.customise_SITL_commandline(["--home", "%s,%s,%s,%s" % (-35.362881, 149.165222, 582.000000, 90.0)]) @@ -703,12 +672,6 @@ def check_airspeeds(mav, m): if delta > 3: raise NotAchievedException("Airspeed mismatch (as1=%f as2=%f)" % (airspeed[0], airspeed[1])) - # Copter's airspeed sensors are off by default - self.set_parameter("ARSPD_ENABLE", 1) - self.set_parameter("ARSPD_TYPE", 2) # Analog airspeed driver - self.set_parameter("ARSPD_PIN", 1) # Analog airspeed driver pin for SITL - self.reboot_sitl() - airspeed_sensors = [ ("MS5525", 3, 1), ("DLVR", 7, 2), @@ -734,8 +697,6 @@ def check_airspeeds(mav, m): self.disarm_vehicle() self.context_pop() - self.reboot_sitl() - def TurbineStart(self, timeout=200): """Check Turbine Start Feature""" RAMP_TIME = 4 @@ -806,43 +767,28 @@ def TurbineStart(self, timeout=200): def PIDNotches(self): """Use dynamic harmonic notch to control motor noise.""" self.progress("Flying with PID notches") - self.context_push() - - ex = None - try: - self.set_parameters({ - "FILT1_TYPE": 1, - "FILT2_TYPE": 1, - "AHRS_EKF_TYPE": 10, - "INS_LOG_BAT_MASK": 3, - "INS_LOG_BAT_OPT": 0, - "INS_GYRO_FILTER": 100, # set the gyro filter high so we can observe behaviour - "LOG_BITMASK": 65535, - "LOG_DISARMED": 0, - "SIM_VIB_FREQ_X": 120, # roll - "SIM_VIB_FREQ_Y": 120, # pitch - "SIM_VIB_FREQ_Z": 180, # yaw - "FILT1_NOTCH_FREQ": 120, - "FILT2_NOTCH_FREQ": 180, - "ATC_RAT_RLL_NEF": 1, - "ATC_RAT_PIT_NEF": 1, - "ATC_RAT_YAW_NEF": 2, - "SIM_GYR1_RND": 5, - }) - self.reboot_sitl() - - self.takeoff(10, mode="ALT_HOLD") - - freq, hover_throttle, peakdb1 = self.hover_and_check_matched_frequency_with_fft(5, 20, 350, reverse=True) - - except Exception as e: - self.print_exception_caught(e) - ex = e - - self.context_pop() + self.set_parameters({ + "FILT1_TYPE": 1, + "FILT2_TYPE": 1, + "AHRS_EKF_TYPE": 10, + "INS_LOG_BAT_MASK": 3, + "INS_LOG_BAT_OPT": 0, + "INS_GYRO_FILTER": 100, # set the gyro filter high so we can observe behaviour + "LOG_BITMASK": 65535, + "LOG_DISARMED": 0, + "SIM_VIB_FREQ_X": 120, # roll + "SIM_VIB_FREQ_Y": 120, # pitch + "SIM_VIB_FREQ_Z": 180, # yaw + "FILT1_NOTCH_FREQ": 120, + "FILT2_NOTCH_FREQ": 180, + "ATC_RAT_RLL_NEF": 1, + "ATC_RAT_PIT_NEF": 1, + "ATC_RAT_YAW_NEF": 2, + "SIM_GYR1_RND": 5, + }) + self.reboot_sitl() - if ex is not None: - raise ex + self.hover_and_check_matched_frequency_with_fft(5, 20, 350, reverse=True, takeoff=True) def AutoTune(self): """Test autotune mode""" From 98733882f508b69d0e1af3c28c52148d3f07d154 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 19 Jun 2024 07:52:05 +1000 Subject: [PATCH 202/232] AP_Math: added comments and a test for euler ordering our main euler functions did not have a comment on the ordering convention --- libraries/AP_Math/matrix3.h | 14 ++-- libraries/AP_Math/quaternion.h | 8 +-- libraries/AP_Math/tests/test_rotations.cpp | 78 ++++++++++++++++++++++ 3 files changed, 91 insertions(+), 9 deletions(-) diff --git a/libraries/AP_Math/matrix3.h b/libraries/AP_Math/matrix3.h index ab861e222efe4..b346198d531c7 100644 --- a/libraries/AP_Math/matrix3.h +++ b/libraries/AP_Math/matrix3.h @@ -235,13 +235,17 @@ class Matrix3 { return a.is_nan() || b.is_nan() || c.is_nan(); } - // create a rotation matrix from Euler angles + /* + create a rotation matrix from Euler angles in 321 euler orderin + */ void from_euler(T roll, T pitch, T yaw); - // create eulers from a rotation matrix. - // roll is from -Pi to Pi - // pitch is from -Pi/2 to Pi/2 - // yaw is from -Pi to Pi + /* create eulers from a rotation matrix. + roll is from -Pi to Pi + pitch is from -Pi/2 to Pi/2 + yaw is from -Pi to Pi + euler order is 321 + */ void to_euler(T *roll, T *pitch, T *yaw) const; // create matrix from rotation enum diff --git a/libraries/AP_Math/quaternion.h b/libraries/AP_Math/quaternion.h index 1c47540c678ae..00f29d08989d2 100644 --- a/libraries/AP_Math/quaternion.h +++ b/libraries/AP_Math/quaternion.h @@ -81,11 +81,11 @@ class QuaternionT { // convert a vector from earth to body frame void earth_to_body(Vector3 &v) const; - // create a quaternion from Euler angles + // create a quaternion from Euler angles using 321 euler ordering void from_euler(T roll, T pitch, T yaw); void from_euler(const Vector3 &v); - // create a quaternion from Euler angles applied in yaw, roll, pitch order + // create a quaternion from Euler angles applied in yaw, roll, pitch order (312) // instead of the normal yaw, pitch, roll order void from_vector312(T roll, T pitch, T yaw); @@ -129,7 +129,7 @@ class QuaternionT { // get euler yaw angle in radians T get_euler_yaw() const; - // create eulers (in radians) from a quaternion + // create eulers (in radians) from a quaternion, using 321 ordering void to_euler(float &roll, float &pitch, float &yaw) const; void to_euler(Vector3f &rpy) const { to_euler(rpy.x, rpy.y, rpy.z); @@ -139,7 +139,7 @@ class QuaternionT { to_euler(rpy.x, rpy.y, rpy.z); } - // create eulers from a quaternion + // create eulers from a quaternion with 312 ordering Vector3 to_vector312(void) const; T length_squared(void) const; diff --git a/libraries/AP_Math/tests/test_rotations.cpp b/libraries/AP_Math/tests/test_rotations.cpp index 15fdfa6238055..d9de8f82e59df 100644 --- a/libraries/AP_Math/tests/test_rotations.cpp +++ b/libraries/AP_Math/tests/test_rotations.cpp @@ -189,5 +189,83 @@ TEST(RotationsTest, TestFailedGetLinux) } }*/ +/* + rotate a matrix using a give order, specified as a string + for example "321" + */ +static void rotate_ordered(Matrix3f &m, const char *order, + const float roll_deg, + const float pitch_deg, + const float yaw_deg) +{ + while (*order) { + Matrix3f m2; + switch (*order) { + case '1': + m2.from_euler(radians(roll_deg), 0, 0); + break; + case '2': + m2.from_euler(0, radians(pitch_deg), 0); + break; + case '3': + m2.from_euler(0, 0, radians(yaw_deg)); + break; + } + m *= m2; + order++; + } +} + +/* + test the two euler orders we use in ArduPilot + */ +TEST(RotationsTest, TestEulerOrder) +{ + const float roll_deg = 20; + const float pitch_deg = 31; + const float yaw_deg = 72; + float r, p, y; + Vector3f v; + + Matrix3f m; + + // apply in 321 ordering + m.identity(); + rotate_ordered(m, "321", roll_deg, pitch_deg, yaw_deg); + + // get using to_euler + m.to_euler(&r, &p, &y); + + EXPECT_FLOAT_EQ(degrees(r), roll_deg); + EXPECT_FLOAT_EQ(degrees(p), pitch_deg); + EXPECT_FLOAT_EQ(degrees(y), yaw_deg); + + // get using to_euler312, should not match + v = m.to_euler312(); + + EXPECT_GE(fabsf(degrees(v.x)-roll_deg), 1); + EXPECT_GE(fabsf(degrees(v.y)-pitch_deg), 1); + EXPECT_GE(fabsf(degrees(v.z)-yaw_deg), 1); + + // apply in 312 ordering + m.identity(); + rotate_ordered(m, "312", roll_deg, pitch_deg, yaw_deg); + + // get using to_euler312 + v = m.to_euler312(); + + EXPECT_FLOAT_EQ(degrees(v.x), roll_deg); + EXPECT_FLOAT_EQ(degrees(v.y), pitch_deg); + EXPECT_FLOAT_EQ(degrees(v.z), yaw_deg); + + // get using to_euler, should not match + m.to_euler(&r, &p, &y); + + EXPECT_GE(fabsf(degrees(r)-roll_deg), 1); + EXPECT_GE(fabsf(degrees(p)-pitch_deg), 1); + EXPECT_GE(fabsf(degrees(y)-yaw_deg), 1); +} + + AP_GTEST_PANIC() AP_GTEST_MAIN() From 2ce6532698477d7f3e7bc0ae9e18bf9178a94e0e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 22 Jun 2024 19:06:56 +1000 Subject: [PATCH 203/232] AP_Math: updated EulerAngles.pdf link --- libraries/AP_Math/matrix3.cpp | 4 ++-- libraries/AP_Math/matrix3.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/AP_Math/matrix3.cpp b/libraries/AP_Math/matrix3.cpp index bd64d62a02c8b..0dfd75032b902 100644 --- a/libraries/AP_Math/matrix3.cpp +++ b/libraries/AP_Math/matrix3.cpp @@ -21,7 +21,7 @@ #include "AP_Math.h" // create a rotation matrix given some euler angles -// this is based on http://gentlenav.googlecode.com/files/EulerAngles.pdf +// this is based on https://github.com/ArduPilot/Datasheets/blob/main/References/EulerAngles.pdf template void Matrix3::from_euler(T roll, T pitch, T yaw) { @@ -44,7 +44,7 @@ void Matrix3::from_euler(T roll, T pitch, T yaw) } // calculate euler angles from a rotation matrix -// this is based on http://gentlenav.googlecode.com/files/EulerAngles.pdf +// this is based on https://github.com/ArduPilot/Datasheets/blob/main/References/EulerAngles.pdf template void Matrix3::to_euler(T *roll, T *pitch, T *yaw) const { diff --git a/libraries/AP_Math/matrix3.h b/libraries/AP_Math/matrix3.h index b346198d531c7..02e18699a5350 100644 --- a/libraries/AP_Math/matrix3.h +++ b/libraries/AP_Math/matrix3.h @@ -236,7 +236,7 @@ class Matrix3 { } /* - create a rotation matrix from Euler angles in 321 euler orderin + create a rotation matrix from Euler angles in 321 euler ordering */ void from_euler(T roll, T pitch, T yaw); From 317c59c7093161fc0235121aafeade3c4e44df23 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 22:55:25 +1000 Subject: [PATCH 204/232] autotest: tidy various ArduPlane autotests autotest: tidy Plane TerrainRally test autotest: tidy Plane TestFlaps test autotest: tidy Plane ThrottleFailsafe test autotest: tidy Plane GripperMission test autotest: tidy Plane FenceStatic test autotest: tidy Plane FenceRTL tests autotest: tidy FenceRetRally test autotest: tidy Plane ahrs2 test autotest: tidy Plane RangeFinder test autotest: tidy Plane ADSB test autotest: tidy Plane LOITER test autotest: tidy Plane EKFLaneswitch test autotest: tidy Plane FenceAltCeilFloor test autotest: tidy Plane FenceMinAltAutoEnable autotest: tidy Plane FenceMinAltEnableAutoland autotest: tidy Plane FenceMinAltAutoEnableAbort autotest: tidy Plane FenceCircleExclusionAutoEnable autotest: tidy self.homeloc out of MainFlight --- Tools/autotest/arduplane.py | 1074 ++++++++++++++--------------------- 1 file changed, 437 insertions(+), 637 deletions(-) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 6f90634470327..cf319f97da59a 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -173,7 +173,7 @@ def fly_left_circuit(self): def fly_RTL(self): """Fly to home.""" self.progress("Flying home in RTL") - target_loc = self.homeloc + target_loc = self.home_position_as_mav_location() target_loc.alt += 100 self.change_mode('RTL') self.wait_location(target_loc, @@ -275,8 +275,10 @@ def wait_level_flight(self, accuracy=5, timeout=30): return raise NotAchievedException("Failed to attain level flight") - def change_altitude(self, altitude, accuracy=30): + def change_altitude(self, altitude, accuracy=30, relative=False): """Get to a given altitude.""" + if relative: + altitude += self.home_position_as_mav_location().alt self.change_mode('FBWA') alt_error = self.mav.messages['VFR_HUD'].alt - altitude if alt_error > 0: @@ -293,7 +295,7 @@ def axial_left_roll(self, count=1): """Fly a left axial roll.""" # full throttle! self.set_rc(3, 2000) - self.change_altitude(self.homeloc.alt+300) + self.change_altitude(300, relative=True) # fly the roll in manual self.change_mode('MANUAL') @@ -320,7 +322,7 @@ def inside_loop(self, count=1): """Fly a inside loop.""" # full throttle! self.set_rc(3, 2000) - self.change_altitude(self.homeloc.alt+300) + self.change_altitude(300, relative=True) # fly the loop in manual self.change_mode('MANUAL') @@ -432,7 +434,7 @@ def test_stabilize(self, count=1): # full throttle! self.set_rc(3, 2000) self.set_rc(2, 1300) - self.change_altitude(self.homeloc.alt+300) + self.change_altitude(300, relative=True) self.set_rc(2, 1500) self.change_mode('STABILIZE') @@ -458,7 +460,7 @@ def test_acro(self, count=1): # full throttle! self.set_rc(3, 2000) self.set_rc(2, 1300) - self.change_altitude(self.homeloc.alt+300) + self.change_altitude(300, relative=True) self.set_rc(2, 1500) self.change_mode('ACRO') @@ -1031,95 +1033,61 @@ def fly_home_land_and_disarm(self, timeout=120): def TestFlaps(self): """Test flaps functionality.""" filename = "flaps.txt" - self.context_push() - ex = None - try: + flaps_ch = 5 + flaps_ch_min = 1000 + flaps_ch_trim = 1500 + flaps_ch_max = 2000 - flaps_ch = 5 - flaps_ch_min = 1000 - flaps_ch_trim = 1500 - flaps_ch_max = 2000 + servo_ch = 5 + servo_ch_min = 1200 + servo_ch_trim = 1300 + servo_ch_max = 1800 - servo_ch = 5 - servo_ch_min = 1200 - servo_ch_trim = 1300 - servo_ch_max = 1800 + self.set_parameters({ + "SERVO%u_FUNCTION" % servo_ch: 3, # flapsauto + "RC%u_OPTION" % flaps_ch: 208, # Flaps RCx_OPTION + "LAND_FLAP_PERCNT": 50, + "LOG_DISARMED": 1, + "RTL_AUTOLAND": 1, - self.set_parameters({ - "SERVO%u_FUNCTION" % servo_ch: 3, # flapsauto - "RC%u_OPTION" % flaps_ch: 208, # Flaps RCx_OPTION - "LAND_FLAP_PERCNT": 50, - "LOG_DISARMED": 1, - "RTL_AUTOLAND": 1, - - "RC%u_MIN" % flaps_ch: flaps_ch_min, - "RC%u_MAX" % flaps_ch: flaps_ch_max, - "RC%u_TRIM" % flaps_ch: flaps_ch_trim, - - "SERVO%u_MIN" % servo_ch: servo_ch_min, - "SERVO%u_MAX" % servo_ch: servo_ch_max, - "SERVO%u_TRIM" % servo_ch: servo_ch_trim, - }) + "RC%u_MIN" % flaps_ch: flaps_ch_min, + "RC%u_MAX" % flaps_ch: flaps_ch_max, + "RC%u_TRIM" % flaps_ch: flaps_ch_trim, - self.progress("check flaps are not deployed") - self.set_rc(flaps_ch, flaps_ch_min) - self.wait_servo_channel_value(servo_ch, servo_ch_min, timeout=3) - self.progress("deploy the flaps") - self.set_rc(flaps_ch, flaps_ch_max) - tstart = self.get_sim_time() - self.wait_servo_channel_value(servo_ch, servo_ch_max) - tstop = self.get_sim_time_cached() - delta_time = tstop - tstart - delta_time_min = 0.5 - delta_time_max = 1.5 - if delta_time < delta_time_min or delta_time > delta_time_max: - raise NotAchievedException(( - "Flaps Slew not working (%f seconds)" % (delta_time,))) - self.progress("undeploy flaps") - self.set_rc(flaps_ch, flaps_ch_min) - self.wait_servo_channel_value(servo_ch, servo_ch_min) - - self.progress("Flying mission %s" % filename) - self.load_mission(filename) - self.set_current_waypoint(1) - self.change_mode('AUTO') - self.wait_ready_to_arm() - self.arm_vehicle() - last_mission_current_msg = 0 - last_seq = None - while self.armed(): - m = self.mav.recv_match(type='MISSION_CURRENT', blocking=True) - time_delta = (self.get_sim_time_cached() - - last_mission_current_msg) - if (time_delta > 1 or m.seq != last_seq): - dist = None - x = self.mav.messages.get("NAV_CONTROLLER_OUTPUT", None) - if x is not None: - dist = x.wp_dist - self.progress("MISSION_CURRENT.seq=%u (dist=%s)" % - (m.seq, str(dist))) - last_mission_current_msg = self.get_sim_time_cached() - last_seq = m.seq - # flaps should undeploy at the end - self.wait_servo_channel_value(servo_ch, servo_ch_min, timeout=30) - - # do a short flight in FBWA, watching for flaps - # self.mavproxy.send('switch 4\n') - # self.wait_mode('FBWA') - # self.delay_sim_time(10) - # self.mavproxy.send('switch 6\n') - # self.wait_mode('MANUAL') - # self.delay_sim_time(10) - - self.progress("Flaps OK") - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - if ex: - if self.armed(): - self.disarm_vehicle() - raise ex + "SERVO%u_MIN" % servo_ch: servo_ch_min, + "SERVO%u_MAX" % servo_ch: servo_ch_max, + "SERVO%u_TRIM" % servo_ch: servo_ch_trim, + }) + + self.progress("check flaps are not deployed") + self.set_rc(flaps_ch, flaps_ch_min) + self.wait_servo_channel_value(servo_ch, servo_ch_min, timeout=3) + self.progress("deploy the flaps") + self.set_rc(flaps_ch, flaps_ch_max) + tstart = self.get_sim_time() + self.wait_servo_channel_value(servo_ch, servo_ch_max) + tstop = self.get_sim_time_cached() + delta_time = tstop - tstart + delta_time_min = 0.5 + delta_time_max = 1.5 + if delta_time < delta_time_min or delta_time > delta_time_max: + raise NotAchievedException(( + "Flaps Slew not working (%f seconds)" % (delta_time,))) + self.progress("undeploy flaps") + self.set_rc(flaps_ch, flaps_ch_min) + self.wait_servo_channel_value(servo_ch, servo_ch_min) + + self.progress("Flying mission %s" % filename) + self.load_mission(filename) + self.change_mode('AUTO') + self.wait_ready_to_arm() + self.arm_vehicle() + # flaps should deploy for landing (RC input value used for position?!) + self.wait_servo_channel_value(servo_ch, flaps_ch_trim, timeout=300) + # flaps should undeploy at the end + self.wait_servo_channel_value(servo_ch, servo_ch_min, timeout=30) + + self.progress("Flaps OK") def TestRCRelay(self): '''Test Relay RC Channel Option''' @@ -1284,32 +1252,25 @@ def ThrottleFailsafe(self): self.progress("Ensure long failsafe can trigger when short failsafe disabled") self.context_push() self.context_collect("STATUSTEXT") - ex = None - try: - self.set_parameters({ - "FS_SHORT_ACTN": 3, # 3 means disabled - "SIM_RC_FAIL": 1, - }) - self.wait_statustext("Long failsafe on", check_context=True) - self.wait_mode("RTL") + self.set_parameters({ + "FS_SHORT_ACTN": 3, # 3 means disabled + "SIM_RC_FAIL": 1, + }) + self.wait_statustext("Long failsafe on", check_context=True) + self.wait_mode("RTL") # self.context_clear_collection("STATUSTEXT") - self.set_parameter("SIM_RC_FAIL", 0) - self.wait_text("Long Failsafe Cleared", check_context=True) - self.change_mode("MANUAL") + self.set_parameter("SIM_RC_FAIL", 0) + self.wait_text("Long Failsafe Cleared", check_context=True) + self.change_mode("MANUAL") - self.progress("Trying again with THR_FS_VALUE") - self.set_parameters({ - "THR_FS_VALUE": 960, - "SIM_RC_FAIL": 2, - }) - self.wait_statustext("Long Failsafe on", check_context=True) - self.wait_mode("RTL") - except Exception as e: - self.print_exception_caught(e) - ex = e + self.progress("Trying again with THR_FS_VALUE") + self.set_parameters({ + "THR_FS_VALUE": 960, + "SIM_RC_FAIL": 2, + }) + self.wait_statustext("Long Failsafe on", check_context=True) + self.wait_mode("RTL") self.context_pop() - if ex is not None: - raise ex self.start_subtest("Not use RC throttle input when THR_FAILSAFE==2") self.takeoff(100) @@ -1432,24 +1393,15 @@ def GCSFailsafe(self): def TestGripperMission(self): '''Test Gripper mission items''' - self.context_push() - ex = None - try: - self.set_parameter("RTL_AUTOLAND", 1) - self.load_mission("plane-gripper-mission.txt") - self.set_current_waypoint(1) - self.change_mode('AUTO') - self.wait_ready_to_arm() - self.arm_vehicle() - self.wait_statustext("Gripper Grabbed", timeout=60) - self.wait_statustext("Gripper Released", timeout=60) - self.wait_statustext("Auto disarmed", timeout=60) - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - if ex is not None: - raise ex + self.set_parameter("RTL_AUTOLAND", 1) + self.load_mission("plane-gripper-mission.txt") + self.set_current_waypoint(1) + self.change_mode('AUTO') + self.wait_ready_to_arm() + self.arm_vehicle() + self.wait_statustext("Gripper Grabbed", timeout=60) + self.wait_statustext("Gripper Released", timeout=60) + self.wait_statustext("Auto disarmed", timeout=60) def assert_fence_sys_status(self, present, enabled, health): self.delay_sim_time(1) @@ -1538,213 +1490,166 @@ def MODE_SWITCH_RESET(self): def FenceStatic(self): '''Test Basic Fence Functionality''' - ex = None - try: - self.progress("Checking for bizarre healthy-when-not-present-or-enabled") - self.set_parameter("FENCE_TYPE", 4) # Start by only setting polygon fences, otherwise fence will report present - self.assert_fence_sys_status(False, False, True) - self.load_fence("CMAC-fence.txt") - m = self.mav.recv_match(type='FENCE_STATUS', blocking=True, timeout=2) - if m is not None: - raise NotAchievedException("Got FENCE_STATUS unexpectedly") - self.set_parameter("FENCE_ACTION", 0) # report only - self.assert_fence_sys_status(True, False, True) - self.set_parameter("FENCE_ACTION", 1) # RTL - self.assert_fence_sys_status(True, False, True) - self.do_fence_enable() - self.assert_fence_sys_status(True, True, True) - m = self.assert_receive_message('FENCE_STATUS', timeout=2) - if m.breach_status: - raise NotAchievedException("Breached fence unexpectedly (%u)" % - (m.breach_status)) - self.do_fence_disable() - self.assert_fence_sys_status(True, False, True) - self.set_parameter("FENCE_ACTION", 1) - self.assert_fence_sys_status(True, False, True) - self.set_parameter("FENCE_ACTION", 0) - self.assert_fence_sys_status(True, False, True) - self.clear_fence() - if self.get_parameter("FENCE_TOTAL") != 0: - raise NotAchievedException("Expected zero points remaining") - self.assert_fence_sys_status(False, False, True) - self.progress("Trying to enable fence with no points") - self.do_fence_enable(want_result=mavutil.mavlink.MAV_RESULT_FAILED) - - # test a rather unfortunate behaviour: - self.progress("Killing a live fence with fence-clear") - self.load_fence("CMAC-fence.txt") - self.set_parameter("FENCE_ACTION", 1) # AC_FENCE_ACTION_RTL_AND_LAND == 1. mavutil.mavlink.FENCE_ACTION_RTL == 4 - self.do_fence_enable() - self.assert_fence_sys_status(True, True, True) - self.clear_fence() - self.wait_sensor_state(mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE, False, False, True) - if self.get_parameter("FENCE_TOTAL") != 0: - raise NotAchievedException("Expected zero points remaining") - self.assert_fence_sys_status(False, False, True) - self.do_fence_disable() + self.progress("Checking for bizarre healthy-when-not-present-or-enabled") + self.set_parameter("FENCE_TYPE", 4) # Start by only setting polygon fences, otherwise fence will report present + self.assert_fence_sys_status(False, False, True) + self.load_fence("CMAC-fence.txt") + m = self.mav.recv_match(type='FENCE_STATUS', blocking=True, timeout=2) + if m is not None: + raise NotAchievedException("Got FENCE_STATUS unexpectedly") + self.set_parameter("FENCE_ACTION", 0) # report only + self.assert_fence_sys_status(True, False, True) + self.set_parameter("FENCE_ACTION", 1) # RTL + self.assert_fence_sys_status(True, False, True) + self.do_fence_enable() + self.assert_fence_sys_status(True, True, True) + m = self.assert_receive_message('FENCE_STATUS', timeout=2) + if m.breach_status: + raise NotAchievedException("Breached fence unexpectedly (%u)" % + (m.breach_status)) + self.do_fence_disable() + self.assert_fence_sys_status(True, False, True) + self.set_parameter("FENCE_ACTION", 1) + self.assert_fence_sys_status(True, False, True) + self.set_parameter("FENCE_ACTION", 0) + self.assert_fence_sys_status(True, False, True) + self.clear_fence() + if self.get_parameter("FENCE_TOTAL") != 0: + raise NotAchievedException("Expected zero points remaining") + self.assert_fence_sys_status(False, False, True) + self.progress("Trying to enable fence with no points") + self.do_fence_enable(want_result=mavutil.mavlink.MAV_RESULT_FAILED) + + # test a rather unfortunate behaviour: + self.progress("Killing a live fence with fence-clear") + self.load_fence("CMAC-fence.txt") + self.set_parameter("FENCE_ACTION", 1) # AC_FENCE_ACTION_RTL_AND_LAND == 1. mavutil.mavlink.FENCE_ACTION_RTL == 4 + self.do_fence_enable() + self.assert_fence_sys_status(True, True, True) + self.clear_fence() + self.wait_sensor_state(mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE, False, False, True) + if self.get_parameter("FENCE_TOTAL") != 0: + raise NotAchievedException("Expected zero points remaining") + self.assert_fence_sys_status(False, False, True) + self.do_fence_disable() - # ensure that a fence is present if it is tin can, min alt or max alt - self.progress("Test other fence types (tin-can, min alt, max alt") - self.set_parameter("FENCE_TYPE", 1) # max alt - self.assert_fence_sys_status(True, False, True) - self.set_parameter("FENCE_TYPE", 8) # min alt - self.assert_fence_sys_status(True, False, True) - self.set_parameter("FENCE_TYPE", 2) # tin can - self.assert_fence_sys_status(True, False, True) - - # Test cannot arm if outside of fence and fence is enabled - self.progress("Test Arming while vehicle below FENCE_ALT_MIN") - default_fence_alt_min = self.get_parameter("FENCE_ALT_MIN") - self.set_parameter("FENCE_ALT_MIN", 50) - self.set_parameter("FENCE_TYPE", 8) # Enables minimum altitude breaches - self.do_fence_enable() - self.delay_sim_time(2) # Allow breach to propagate - self.assert_fence_enabled() + # ensure that a fence is present if it is tin can, min alt or max alt + self.progress("Test other fence types (tin-can, min alt, max alt") + self.set_parameter("FENCE_TYPE", 1) # max alt + self.assert_fence_sys_status(True, False, True) + self.set_parameter("FENCE_TYPE", 8) # min alt + self.assert_fence_sys_status(True, False, True) + self.set_parameter("FENCE_TYPE", 2) # tin can + self.assert_fence_sys_status(True, False, True) + + # Test cannot arm if outside of fence and fence is enabled + self.progress("Test Arming while vehicle below FENCE_ALT_MIN") + default_fence_alt_min = self.get_parameter("FENCE_ALT_MIN") + self.set_parameter("FENCE_ALT_MIN", 50) + self.set_parameter("FENCE_TYPE", 8) # Enables minimum altitude breaches + self.do_fence_enable() + self.delay_sim_time(2) # Allow breach to propagate + self.assert_fence_enabled() - self.try_arm(False, "vehicle outside Min Alt fence") - self.do_fence_disable() - self.set_parameter("FENCE_ALT_MIN", default_fence_alt_min) - - # Test arming outside inclusion zone - self.progress("Test arming while vehicle outside of inclusion zone") - self.set_parameter("FENCE_TYPE", 4) # Enables polygon fence types - self.upload_fences_from_locations([( - mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ - mavutil.location(1.000, 1.000, 0, 0), - mavutil.location(1.000, 1.001, 0, 0), - mavutil.location(1.001, 1.001, 0, 0), - mavutil.location(1.001, 1.000, 0, 0) - ] - )]) - self.delay_sim_time(10) # let fence check run so it loads-from-eeprom - self.do_fence_enable() - self.assert_fence_enabled() - self.delay_sim_time(2) # Allow breach to propagate - self.try_arm(False, "vehicle outside Polygon fence") - self.do_fence_disable() - self.clear_fence() - - self.progress("Test arming while vehicle inside exclusion zone") - self.set_parameter("FENCE_TYPE", 4) # Enables polygon fence types - home_loc = self.mav.location() - locs = [ - mavutil.location(home_loc.lat - 0.001, home_loc.lng - 0.001, 0, 0), - mavutil.location(home_loc.lat - 0.001, home_loc.lng + 0.001, 0, 0), - mavutil.location(home_loc.lat + 0.001, home_loc.lng + 0.001, 0, 0), - mavutil.location(home_loc.lat + 0.001, home_loc.lng - 0.001, 0, 0), - ] - self.upload_fences_from_locations([ - (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, locs), - ]) - self.delay_sim_time(10) # let fence check run so it loads-from-eeprom - self.do_fence_enable() - self.assert_fence_enabled() - self.delay_sim_time(2) # Allow breach to propagate - self.try_arm(False, "vehicle outside Polygon fence") - self.do_fence_disable() - self.clear_fence() + self.try_arm(False, "vehicle outside Min Alt fence") + self.do_fence_disable() + self.set_parameter("FENCE_ALT_MIN", default_fence_alt_min) - except Exception as e: - self.print_exception_caught(e) - ex = e + # Test arming outside inclusion zone + self.progress("Test arming while vehicle outside of inclusion zone") + self.set_parameter("FENCE_TYPE", 4) # Enables polygon fence types + self.upload_fences_from_locations([( + mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, [ + mavutil.location(1.000, 1.000, 0, 0), + mavutil.location(1.000, 1.001, 0, 0), + mavutil.location(1.001, 1.001, 0, 0), + mavutil.location(1.001, 1.000, 0, 0) + ] + )]) + self.delay_sim_time(10) # let fence check run so it loads-from-eeprom + self.do_fence_enable() + self.assert_fence_enabled() + self.delay_sim_time(2) # Allow breach to propagate + self.try_arm(False, "vehicle outside Polygon fence") + self.do_fence_disable() self.clear_fence() - if ex is not None: - raise ex - def test_fence_breach_circle_at(self, loc, disable_on_breach=False): - ex = None - try: - self.load_fence("CMAC-fence.txt") - want_radius = 100 - # when ArduPlane is fixed, remove this fudge factor - REALLY_BAD_FUDGE_FACTOR = 1.16 - expected_radius = REALLY_BAD_FUDGE_FACTOR * want_radius - self.set_parameters({ - "RTL_RADIUS": want_radius, - "NAVL1_LIM_BANK": 60, - "FENCE_ACTION": 1, # AC_FENCE_ACTION_RTL_AND_LAND == 1. mavutil.mavlink.FENCE_ACTION_RTL == 4 - }) - - self.wait_ready_to_arm() # need an origin to load fence - - self.do_fence_enable() - self.assert_fence_sys_status(True, True, True) + self.progress("Test arming while vehicle inside exclusion zone") + self.set_parameter("FENCE_TYPE", 4) # Enables polygon fence types + home_loc = self.mav.location() + locs = [ + mavutil.location(home_loc.lat - 0.001, home_loc.lng - 0.001, 0, 0), + mavutil.location(home_loc.lat - 0.001, home_loc.lng + 0.001, 0, 0), + mavutil.location(home_loc.lat + 0.001, home_loc.lng + 0.001, 0, 0), + mavutil.location(home_loc.lat + 0.001, home_loc.lng - 0.001, 0, 0), + ] + self.upload_fences_from_locations([ + (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION, locs), + ]) + self.delay_sim_time(10) # let fence check run so it loads-from-eeprom + self.do_fence_enable() + self.assert_fence_enabled() + self.delay_sim_time(2) # Allow breach to propagate + self.try_arm(False, "vehicle outside Polygon fence") + self.do_fence_disable() - self.takeoff(alt=45, alt_max=300) + def test_fence_breach_circle_at(self, loc, disable_on_breach=False): + self.load_fence("CMAC-fence.txt") + want_radius = 100 + # when ArduPlane is fixed, remove this fudge factor + REALLY_BAD_FUDGE_FACTOR = 1.16 + expected_radius = REALLY_BAD_FUDGE_FACTOR * want_radius + self.set_parameters({ + "RTL_RADIUS": want_radius, + "NAVL1_LIM_BANK": 60, + "FENCE_ACTION": 1, # AC_FENCE_ACTION_RTL_AND_LAND == 1. mavutil.mavlink.FENCE_ACTION_RTL == 4 + }) - tstart = self.get_sim_time() - while True: - if self.get_sim_time() - tstart > 30: - raise NotAchievedException("Did not breach fence") - m = self.assert_receive_message('FENCE_STATUS', timeout=2) - if m.breach_status == 0: - continue + self.wait_ready_to_arm() # need an origin to load fence - # we've breached; check our state; - if m.breach_type != mavutil.mavlink.FENCE_BREACH_BOUNDARY: - raise NotAchievedException("Unexpected breach type %u" % - (m.breach_type,)) - if m.breach_count == 0: - raise NotAchievedException("Unexpected breach count %u" % - (m.breach_count,)) - self.assert_fence_sys_status(True, True, False) - break + self.do_fence_enable() + self.assert_fence_sys_status(True, True, True) - if disable_on_breach: - self.do_fence_disable() + self.takeoff(alt=45, alt_max=300) - self.wait_circling_point_with_radius(loc, expected_radius) + tstart = self.get_sim_time() + while True: + if self.get_sim_time() - tstart > 30: + raise NotAchievedException("Did not breach fence") + m = self.assert_receive_message('FENCE_STATUS', timeout=2) + if m.breach_status == 0: + continue - self.disarm_vehicle(force=True) - self.reboot_sitl() + # we've breached; check our state; + if m.breach_type != mavutil.mavlink.FENCE_BREACH_BOUNDARY: + raise NotAchievedException("Unexpected breach type %u" % + (m.breach_type,)) + if m.breach_count == 0: + raise NotAchievedException("Unexpected breach count %u" % + (m.breach_count,)) + self.assert_fence_sys_status(True, True, False) + break - except Exception as e: - self.print_exception_caught(e) - ex = e - self.clear_fence() - if ex is not None: - raise ex + self.wait_circling_point_with_radius(loc, expected_radius) + self.do_fence_disable() + self.disarm_vehicle(force=True) + self.reboot_sitl() def FenceRTL(self): '''Test Fence RTL''' self.progress("Testing FENCE_ACTION_RTL no rally point") # have to disable the fence once we've breached or we breach # it as part of the loiter-at-home! - self.test_fence_breach_circle_at(self.home_position_as_mav_location(), - disable_on_breach=True) + self.test_fence_breach_circle_at(self.home_position_as_mav_location()) def FenceRTLRally(self): '''Test Fence RTL Rally''' - ex = None - target_system = 1 - target_component = 1 - try: - self.progress("Testing FENCE_ACTION_RTL with rally point") + self.progress("Testing FENCE_ACTION_RTL with rally point") - self.wait_ready_to_arm() - loc = self.home_relative_loc_ne(50, -50) - - self.set_parameter("RALLY_TOTAL", 1) - self.mav.mav.rally_point_send(target_system, - target_component, - 0, # sequence number - 1, # total count - int(loc.lat * 1e7), - int(loc.lng * 1e7), - 15, - 0, # "break" alt?! - 0, # "land dir" - 0) # flags - self.delay_sim_time(1) - if self.mavproxy is not None: - self.mavproxy.send("rally list\n") - self.test_fence_breach_circle_at(loc) - except Exception as e: - self.print_exception_caught(e) - ex = e - self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_RALLY) - if ex is not None: - raise ex + self.wait_ready_to_arm() + loc = self.home_relative_loc_ne(50, -50) + self.upload_rally_points_from_locations([loc]) + self.test_fence_breach_circle_at(loc) def FenceRetRally(self): """ Tests the FENCE_RET_RALLY flag, either returning to fence return point, @@ -1754,7 +1659,6 @@ def FenceRetRally(self): self.progress("Testing FENCE_ACTION_RTL with fence rally point") self.wait_ready_to_arm() - self.homeloc = self.mav.location() # Grab a location for fence return point, and upload it. fence_loc = self.home_position_as_mav_location() @@ -1784,18 +1688,7 @@ def FenceRetRally(self): # Grab a location for rally point, and upload it. rally_loc = self.home_relative_loc_ne(-50, 50) - self.set_parameter("RALLY_TOTAL", 1) - self.mav.mav.rally_point_send(target_system, - target_component, - 0, # sequence number - 1, # total count - int(rally_loc.lat * 1e7), - int(rally_loc.lng * 1e7), - 15, - 0, # "break" alt?! - 0, # "land dir" - 0) # flags - self.delay_sim_time(1) + self.upload_rally_points_from_locations([rally_loc]) return_radius = 100 return_alt = 80 @@ -1821,7 +1714,7 @@ def FenceRetRally(self): self.delay_sim_time(15) # Fly up before re-triggering fence breach. Fly to fence return point - self.change_altitude(self.homeloc.alt+30) + self.change_altitude(30, relative=True) self.set_parameters({ "FENCE_RET_RALLY": 0, "FENCE_ALT_MIN": 60, @@ -1867,12 +1760,12 @@ def terrain_wait_path(loc1, loc2, steps): self.progress("Got required terrain") self.wait_ready_to_arm() - self.homeloc = self.mav.location() + homeloc = self.mav.location() - guided_loc = mavutil.location(-35.39723762, 149.07284612, self.homeloc.alt+99.0, 0) - rally_loc = mavutil.location(-35.3654952000, 149.1558698000, self.homeloc.alt+100, 0) + guided_loc = mavutil.location(-35.39723762, 149.07284612, homeloc.alt+99.0, 0) + rally_loc = mavutil.location(-35.3654952000, 149.1558698000, homeloc.alt+100, 0) - terrain_wait_path(self.homeloc, rally_loc, 10) + terrain_wait_path(homeloc, rally_loc, 10) # set a rally point to the west of home self.upload_rally_points_from_locations([rally_loc]) @@ -1999,20 +1892,8 @@ def run_subtest(self, desc, func): def fly_ahrs2_test(self): '''check secondary estimator is looking OK''' - ahrs2 = self.mav.recv_match(type='AHRS2', blocking=True, timeout=1) - if ahrs2 is None: - raise NotAchievedException("Did not receive AHRS2 message") - self.progress("AHRS2: %s" % str(ahrs2)) - - # check location - gpi = self.mav.recv_match( - type='GLOBAL_POSITION_INT', - blocking=True, - timeout=5 - ) - if gpi is None: - raise NotAchievedException("Did not receive GLOBAL_POSITION_INT message") - self.progress("GPI: %s" % str(gpi)) + ahrs2 = self.assert_receive_message('AHRS2', verbose=1) + gpi = self.assert_receive_message('GLOBAL_POSITION_INT', verbose=1) if self.get_distance_int(gpi, ahrs2) > 10: raise NotAchievedException("Secondary location looks bad") @@ -2025,10 +1906,6 @@ def MainFlight(self): self.progress("Asserting we do support transfer of fence via mission item protocol") self.assert_capability(mavutil.mavlink.MAV_PROTOCOL_CAPABILITY_MISSION_FENCE) - # grab home position: - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() - self.run_subtest("Takeoff", self.takeoff) self.run_subtest("Set Attitude Target", self.set_attitude_target) @@ -2322,9 +2199,8 @@ def sample_enable_parameter(self): def RangeFinder(self): '''Test RangeFinder Basic Functionality''' - self.context_push() self.progress("Making sure we don't ordinarily get RANGEFINDER") - self.assert_not_receive_message('RANGEFDINDER') + self.assert_not_receive_message('RANGEFINDER') self.set_analog_rangefinder_parameters() @@ -2338,12 +2214,8 @@ def RangeFinder(self): self.wait_ready_to_arm() self.arm_vehicle() self.wait_waypoint(5, 5, max_dist=100) - rf = self.mav.recv_match(type="RANGEFINDER", timeout=1, blocking=True) - if rf is None: - raise NotAchievedException("Did not receive rangefinder message") - gpi = self.mav.recv_match(type='GLOBAL_POSITION_INT', blocking=True, timeout=1) - if gpi is None: - raise NotAchievedException("Did not receive GLOBAL_POSITION_INT message") + rf = self.assert_receive_message('RANGEFINDER') + gpi = self.assert_receive_message('GLOBAL_POSITION_INT') if abs(rf.distance - gpi.relative_alt/1000.0) > 3: raise NotAchievedException( "rangefinder alt (%s) disagrees with global-position-int.relative_alt (%s)" % @@ -2354,9 +2226,6 @@ def RangeFinder(self): if not self.current_onboard_log_contains_message("RFND"): raise NotAchievedException("No RFND messages in log") - self.context_pop() - self.reboot_sitl() - def rc_defaults(self): ret = super(AutoTestPlane, self).rc_defaults() ret[3] = 1000 @@ -2429,12 +2298,7 @@ def SimADSB(self): self.reboot_sitl() self.assert_receive_message('ADSB_VEHICLE', timeout=30) - def ADSB(self): - '''Test ADSB''' - self.ADSB_f_action_rtl() - self.ADSB_r_action_resume_or_loiter() - - def ADSB_r_action_resume_or_loiter(self): + def ADSBResumeActionResumeLoiter(self): '''ensure we resume auto mission or enter loiter''' self.set_parameters({ "ADSB_TYPE": 1, @@ -2472,68 +2336,58 @@ def ADSB_r_action_resume_or_loiter(self): self.fly_home_land_and_disarm() - def ADSB_f_action_rtl(self): - self.context_push() - ex = None - try: - # message ADSB_VEHICLE 37 -353632614 1491652305 0 584070 0 0 0 "bob" 3 1 255 17 - self.set_parameter("RC12_OPTION", 38) # avoid-adsb - self.set_rc(12, 2000) - self.set_parameters({ - "ADSB_TYPE": 1, - "AVD_ENABLE": 1, - "AVD_F_ACTION": mavutil.mavlink.MAV_COLLISION_ACTION_RTL, - }) - self.reboot_sitl() - self.wait_ready_to_arm() - here = self.mav.location() - self.change_mode("FBWA") - self.delay_sim_time(2) # TODO: work out why this is required... - self.test_adsb_send_threatening_adsb_message(here) - self.progress("Waiting for collision message") - m = self.assert_receive_message('COLLISION', timeout=4) - if m.threat_level != 2: - raise NotAchievedException("Expected some threat at least") - if m.action != mavutil.mavlink.MAV_COLLISION_ACTION_RTL: - raise NotAchievedException("Incorrect action; want=%u got=%u" % - (mavutil.mavlink.MAV_COLLISION_ACTION_RTL, m.action)) - self.wait_mode("RTL") - - self.progress("Sending far-away ABSD_VEHICLE message") - self.mav.mav.adsb_vehicle_send( - 37, # ICAO address - int(here.lat+1 * 1e7), - int(here.lng * 1e7), - mavutil.mavlink.ADSB_ALTITUDE_TYPE_PRESSURE_QNH, - int(here.alt*1000 + 10000), # 10m up - 0, # heading in cdeg - 0, # horizontal velocity cm/s - 0, # vertical velocity cm/s - "bob".encode("ascii"), # callsign - mavutil.mavlink.ADSB_EMITTER_TYPE_LIGHT, - 1, # time since last communication - 65535, # flags - 17 # squawk - ) - self.wait_for_collision_threat_to_clear() - self.change_mode("FBWA") + def ADSBFailActionRTL(self): + '''test ADSB avoidance action of RTL''' + # message ADSB_VEHICLE 37 -353632614 1491652305 0 584070 0 0 0 "bob" 3 1 255 17 + self.set_parameter("RC12_OPTION", 38) # avoid-adsb + self.set_rc(12, 2000) + self.set_parameters({ + "ADSB_TYPE": 1, + "AVD_ENABLE": 1, + "AVD_F_ACTION": mavutil.mavlink.MAV_COLLISION_ACTION_RTL, + }) + self.reboot_sitl() + self.wait_ready_to_arm() + here = self.mav.location() + self.change_mode("FBWA") + self.delay_sim_time(2) # TODO: work out why this is required... + self.test_adsb_send_threatening_adsb_message(here) + self.progress("Waiting for collision message") + m = self.assert_receive_message('COLLISION', timeout=4) + if m.threat_level != 2: + raise NotAchievedException("Expected some threat at least") + if m.action != mavutil.mavlink.MAV_COLLISION_ACTION_RTL: + raise NotAchievedException("Incorrect action; want=%u got=%u" % + (mavutil.mavlink.MAV_COLLISION_ACTION_RTL, m.action)) + self.wait_mode("RTL") - self.progress("Disabling ADSB-avoidance with RC channel") - self.set_rc(12, 1000) - self.delay_sim_time(1) # let the switch get polled - self.test_adsb_send_threatening_adsb_message(here) - m = self.mav.recv_match(type='COLLISION', blocking=True, timeout=4) - self.progress("Got (%s)" % str(m)) - if m is not None: - raise NotAchievedException("Got collision message when I shouldn't have") + self.progress("Sending far-away ABSD_VEHICLE message") + self.mav.mav.adsb_vehicle_send( + 37, # ICAO address + int(here.lat+1 * 1e7), + int(here.lng * 1e7), + mavutil.mavlink.ADSB_ALTITUDE_TYPE_PRESSURE_QNH, + int(here.alt*1000 + 10000), # 10m up + 0, # heading in cdeg + 0, # horizontal velocity cm/s + 0, # vertical velocity cm/s + "bob".encode("ascii"), # callsign + mavutil.mavlink.ADSB_EMITTER_TYPE_LIGHT, + 1, # time since last communication + 65535, # flags + 17 # squawk + ) + self.wait_for_collision_threat_to_clear() + self.change_mode("FBWA") - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.reboot_sitl() - if ex is not None: - raise ex + self.progress("Disabling ADSB-avoidance with RC channel") + self.set_rc(12, 1000) + self.delay_sim_time(1) # let the switch get polled + self.test_adsb_send_threatening_adsb_message(here) + m = self.mav.recv_match(type='COLLISION', blocking=True, timeout=4) + self.progress("Got (%s)" % str(m)) + if m is not None: + raise NotAchievedException("Got collision message when I shouldn't have") def GuidedRequest(self, target_system=1, target_component=1): '''Test handling of MISSION_ITEM in guided mode''' @@ -2634,9 +2488,7 @@ def LOITER(self): now = self.get_sim_time_cached() if now - tstart > 60: break - m = self.mav.recv_match(type='VFR_HUD', blocking=True, timeout=5) - if m is None: - raise NotAchievedException("Did not get VFR_HUD") + m = self.assert_receive_message('VFR_HUD') new_throttle = m.throttle alt = m.alt m = self.assert_receive_message('ATTITUDE', timeout=5) @@ -3463,9 +3315,6 @@ def IMUTempCal(self): def EKFlaneswitch(self): '''Test EKF3 Affinity and Lane Switching''' - self.context_push() - ex = None - # new lane swtich available only with EK3 self.set_parameters({ "EK3_ENABLE": 1, @@ -3496,165 +3345,149 @@ def statustext_hook(mav, message): return newlane = int(message.text[-1]) self.lane_switches.append(newlane) - self.install_message_hook(statustext_hook) + self.install_message_hook_context(statustext_hook) # get flying self.takeoff(alt=50) self.change_mode('CIRCLE') - try: - ################################################################### - self.progress("Checking EKF3 Lane Switching trigger from all sensors") - ################################################################### - self.start_subtest("ACCELEROMETER: Change z-axis offset") - # create an accelerometer error by changing the Z-axis offset - self.context_collect("STATUSTEXT") - old_parameter = self.get_parameter("INS_ACCOFFS_Z") - self.wait_statustext( - text="EKF3 lane switch", - timeout=30, - the_function=self.set_parameter("INS_ACCOFFS_Z", old_parameter + 5), - check_context=True) - if self.lane_switches != [1]: - raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.set_parameter("INS_ACCOFFS_Z", old_parameter) - self.context_clear_collection("STATUSTEXT") - self.wait_heading(0, accuracy=10, timeout=60) - self.wait_heading(180, accuracy=10, timeout=60) - ################################################################### - self.start_subtest("BAROMETER: Freeze to last measured value") - self.context_collect("STATUSTEXT") - # create a barometer error by inhibiting any pressure change while changing altitude - old_parameter = self.get_parameter("SIM_BAR2_FREEZE") - self.set_parameter("SIM_BAR2_FREEZE", 1) - self.wait_statustext( - text="EKF3 lane switch", - timeout=30, - the_function=lambda: self.set_rc(2, 2000), - check_context=True) - if self.lane_switches != [1, 0]: - raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.set_rc(2, 1500) - self.set_parameter("SIM_BAR2_FREEZE", old_parameter) - self.context_clear_collection("STATUSTEXT") - self.wait_heading(0, accuracy=10, timeout=60) - self.wait_heading(180, accuracy=10, timeout=60) - ################################################################### - self.start_subtest("GPS: Apply GPS Velocity Error in NED") - self.context_push() - self.context_collect("STATUSTEXT") - - # create a GPS velocity error by adding a random 2m/s - # noise on each axis - def sim_gps_verr(): - self.set_parameters({ - "SIM_GPS_VERR_X": self.get_parameter("SIM_GPS_VERR_X") + 2, - "SIM_GPS_VERR_Y": self.get_parameter("SIM_GPS_VERR_Y") + 2, - "SIM_GPS_VERR_Z": self.get_parameter("SIM_GPS_VERR_Z") + 2, - }) - self.wait_statustext(text="EKF3 lane switch", timeout=30, the_function=sim_gps_verr, check_context=True) - if self.lane_switches != [1, 0, 1]: - raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.context_pop() - self.context_clear_collection("STATUSTEXT") - self.wait_heading(0, accuracy=10, timeout=60) - self.wait_heading(180, accuracy=10, timeout=60) - ################################################################### - self.start_subtest("MAGNETOMETER: Change X-Axis Offset") - self.context_collect("STATUSTEXT") - # create a magnetometer error by changing the X-axis offset - old_parameter = self.get_parameter("SIM_MAG2_OFS_X") - self.wait_statustext( - text="EKF3 lane switch", - timeout=30, - the_function=self.set_parameter("SIM_MAG2_OFS_X", old_parameter + 150), - check_context=True) - if self.lane_switches != [1, 0, 1, 0]: - raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.set_parameter("SIM_MAG2_OFS_X", old_parameter) - self.context_clear_collection("STATUSTEXT") - self.wait_heading(0, accuracy=10, timeout=60) - self.wait_heading(180, accuracy=10, timeout=60) - ################################################################### - self.start_subtest("AIRSPEED: Fail to constant value") - self.context_push() - self.context_collect("STATUSTEXT") - - old_parameter = self.get_parameter("SIM_ARSPD_FAIL") - - def fail_speed(): - self.change_mode("GUIDED") - loc = self.mav.location() - self.run_cmd_int( - mavutil.mavlink.MAV_CMD_DO_REPOSITION, - p5=int(loc.lat * 1e7), - p6=int(loc.lng * 1e7), - p7=50, # alt - ) - self.delay_sim_time(5) - # create an airspeed sensor error by freezing to the - # current airspeed then changing the airspeed demand - # to a higher value and waiting for the TECS speed - # loop to diverge - m = self.mav.recv_match(type='VFR_HUD', blocking=True) - self.set_parameter("SIM_ARSPD_FAIL", m.airspeed) - self.run_cmd( - mavutil.mavlink.MAV_CMD_DO_CHANGE_SPEED, - p1=0, # airspeed - p2=30, - p3=-1, # throttle / no change - p4=0, # absolute values - ) - self.wait_statustext(text="EKF3 lane switch", timeout=30, the_function=fail_speed, check_context=True) - if self.lane_switches != [1, 0, 1, 0, 1]: - raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.set_parameter("SIM_ARSPD_FAIL", old_parameter) - self.change_mode('CIRCLE') - self.context_pop() - self.context_clear_collection("STATUSTEXT") - self.wait_heading(0, accuracy=10, timeout=60) - self.wait_heading(180, accuracy=10, timeout=60) - ################################################################### - self.progress("GYROSCOPE: Change Y-Axis Offset") - self.context_collect("STATUSTEXT") - # create a gyroscope error by changing the Y-axis offset - old_parameter = self.get_parameter("INS_GYR2OFFS_Y") - self.wait_statustext( - text="EKF3 lane switch", - timeout=30, - the_function=self.set_parameter("INS_GYR2OFFS_Y", old_parameter + 1), - check_context=True) - if self.lane_switches != [1, 0, 1, 0, 1, 0]: - raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) - # Cleanup - self.set_parameter("INS_GYR2OFFS_Y", old_parameter) - self.context_clear_collection("STATUSTEXT") - ################################################################### - - self.disarm_vehicle(force=True) + ################################################################### + self.progress("Checking EKF3 Lane Switching trigger from all sensors") + ################################################################### + self.start_subtest("ACCELEROMETER: Change z-axis offset") + # create an accelerometer error by changing the Z-axis offset + self.context_collect("STATUSTEXT") + old_parameter = self.get_parameter("INS_ACCOFFS_Z") + self.wait_statustext( + text="EKF3 lane switch", + timeout=30, + the_function=self.set_parameter("INS_ACCOFFS_Z", old_parameter + 5), + check_context=True) + if self.lane_switches != [1]: + raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.set_parameter("INS_ACCOFFS_Z", old_parameter) + self.context_clear_collection("STATUSTEXT") + self.wait_heading(0, accuracy=10, timeout=60) + self.wait_heading(180, accuracy=10, timeout=60) + ################################################################### + self.start_subtest("BAROMETER: Freeze to last measured value") + self.context_collect("STATUSTEXT") + # create a barometer error by inhibiting any pressure change while changing altitude + old_parameter = self.get_parameter("SIM_BAR2_FREEZE") + self.set_parameter("SIM_BAR2_FREEZE", 1) + self.wait_statustext( + text="EKF3 lane switch", + timeout=30, + the_function=lambda: self.set_rc(2, 2000), + check_context=True) + if self.lane_switches != [1, 0]: + raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.set_rc(2, 1500) + self.set_parameter("SIM_BAR2_FREEZE", old_parameter) + self.context_clear_collection("STATUSTEXT") + self.wait_heading(0, accuracy=10, timeout=60) + self.wait_heading(180, accuracy=10, timeout=60) + ################################################################### + self.start_subtest("GPS: Apply GPS Velocity Error in NED") + self.context_push() + self.context_collect("STATUSTEXT") - except Exception as e: - self.print_exception_caught(e) - ex = e + # create a GPS velocity error by adding a random 2m/s + # noise on each axis + def sim_gps_verr(): + self.set_parameters({ + "SIM_GPS_VERR_X": self.get_parameter("SIM_GPS_VERR_X") + 2, + "SIM_GPS_VERR_Y": self.get_parameter("SIM_GPS_VERR_Y") + 2, + "SIM_GPS_VERR_Z": self.get_parameter("SIM_GPS_VERR_Z") + 2, + }) + self.wait_statustext(text="EKF3 lane switch", timeout=30, the_function=sim_gps_verr, check_context=True) + if self.lane_switches != [1, 0, 1]: + raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.context_pop() + self.context_clear_collection("STATUSTEXT") + self.wait_heading(0, accuracy=10, timeout=60) + self.wait_heading(180, accuracy=10, timeout=60) + ################################################################### + self.start_subtest("MAGNETOMETER: Change X-Axis Offset") + self.context_collect("STATUSTEXT") + # create a magnetometer error by changing the X-axis offset + old_parameter = self.get_parameter("SIM_MAG2_OFS_X") + self.wait_statustext( + text="EKF3 lane switch", + timeout=30, + the_function=self.set_parameter("SIM_MAG2_OFS_X", old_parameter + 150), + check_context=True) + if self.lane_switches != [1, 0, 1, 0]: + raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.set_parameter("SIM_MAG2_OFS_X", old_parameter) + self.context_clear_collection("STATUSTEXT") + self.wait_heading(0, accuracy=10, timeout=60) + self.wait_heading(180, accuracy=10, timeout=60) + ################################################################### + self.start_subtest("AIRSPEED: Fail to constant value") + self.context_push() + self.context_collect("STATUSTEXT") - self.remove_message_hook(statustext_hook) + old_parameter = self.get_parameter("SIM_ARSPD_FAIL") + def fail_speed(): + self.change_mode("GUIDED") + loc = self.mav.location() + self.run_cmd_int( + mavutil.mavlink.MAV_CMD_DO_REPOSITION, + p5=int(loc.lat * 1e7), + p6=int(loc.lng * 1e7), + p7=50, # alt + ) + self.delay_sim_time(5) + # create an airspeed sensor error by freezing to the + # current airspeed then changing the airspeed demand + # to a higher value and waiting for the TECS speed + # loop to diverge + m = self.mav.recv_match(type='VFR_HUD', blocking=True) + self.set_parameter("SIM_ARSPD_FAIL", m.airspeed) + self.run_cmd( + mavutil.mavlink.MAV_CMD_DO_CHANGE_SPEED, + p1=0, # airspeed + p2=30, + p3=-1, # throttle / no change + p4=0, # absolute values + ) + self.wait_statustext(text="EKF3 lane switch", timeout=30, the_function=fail_speed, check_context=True) + if self.lane_switches != [1, 0, 1, 0, 1]: + raise NotAchievedException("Expected lane switch 1, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.set_parameter("SIM_ARSPD_FAIL", old_parameter) + self.change_mode('CIRCLE') self.context_pop() + self.context_clear_collection("STATUSTEXT") + self.wait_heading(0, accuracy=10, timeout=60) + self.wait_heading(180, accuracy=10, timeout=60) + ################################################################### + self.progress("GYROSCOPE: Change Y-Axis Offset") + self.context_collect("STATUSTEXT") + # create a gyroscope error by changing the Y-axis offset + old_parameter = self.get_parameter("INS_GYR2OFFS_Y") + self.wait_statustext( + text="EKF3 lane switch", + timeout=30, + the_function=self.set_parameter("INS_GYR2OFFS_Y", old_parameter + 1), + check_context=True) + if self.lane_switches != [1, 0, 1, 0, 1, 0]: + raise NotAchievedException("Expected lane switch 0, got %s" % str(self.lane_switches[-1])) + # Cleanup + self.set_parameter("INS_GYR2OFFS_Y", old_parameter) + self.context_clear_collection("STATUSTEXT") + ################################################################### - # some parameters need reboot to take effect - self.reboot_sitl() - - if ex is not None: - raise ex + self.disarm_vehicle(force=True) def FenceAltCeilFloor(self): '''Tests the fence ceiling and floor''' - fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE self.set_parameters({ "FENCE_TYPE": 9, # Set fence type to max and min alt "FENCE_ACTION": 0, # Set action to report @@ -3663,36 +3496,32 @@ def FenceAltCeilFloor(self): }) # Grab Home Position - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() + self.wait_ready_to_arm() + startpos = self.mav.location() cruise_alt = 150 self.takeoff(cruise_alt) + # note that while we enable the fence here, since the action + # is set to report-only the fence continues to show as + # not-enabled in the assert calls below self.do_fence_enable() self.progress("Fly above ceiling and check for breach") - self.change_altitude(self.homeloc.alt + cruise_alt + 80) - m = self.mav.recv_match(type='SYS_STATUS', blocking=True) - self.progress("Got (%s)" % str(m)) - if ((m.onboard_control_sensors_health & fence_bit)): - raise NotAchievedException("Fence Ceiling did not breach") + self.change_altitude(startpos.alt + cruise_alt + 80) + self.assert_fence_sys_status(True, False, False) - self.progress("Return to cruise alt and check for breach clear") - self.change_altitude(self.homeloc.alt + cruise_alt) + self.progress("Return to cruise alt") + self.change_altitude(startpos.alt + cruise_alt) - m = self.mav.recv_match(type='SYS_STATUS', blocking=True) - self.progress("Got (%s)" % str(m)) - if (not (m.onboard_control_sensors_health & fence_bit)): - raise NotAchievedException("Fence breach did not clear") + self.progress("Ensure breach has clearned") + self.assert_fence_sys_status(True, False, True) self.progress("Fly below floor and check for breach") - self.change_altitude(self.homeloc.alt + cruise_alt - 80) + self.change_altitude(startpos.alt + cruise_alt - 80) - m = self.mav.recv_match(type='SYS_STATUS', blocking=True) - self.progress("Got (%s)" % str(m)) - if ((m.onboard_control_sensors_health & fence_bit)): - raise NotAchievedException("Fence Floor did not breach") + self.progress("Ensure breach has clearned") + self.assert_fence_sys_status(True, False, False) self.do_fence_disable() @@ -3713,9 +3542,6 @@ def FenceMinAltAutoEnable(self): # check we can takeoff again for i in [1, 2]: # Grab Home Position - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() - self.wait_ready_to_arm() self.arm_vehicle() # max alt fence should now be enabled @@ -3754,9 +3580,6 @@ def FenceMinAltEnableAutoland(self): }) # Grab Home Position - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() - self.wait_ready_to_arm() self.arm_vehicle() @@ -3781,9 +3604,6 @@ def FenceMinAltEnableAutoland(self): self.set_rc(3, 1000) # lower throttle # Now check we can land self.fly_home_land_and_disarm() - self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) - self.set_current_waypoint(0, check_afterwards=False) - self.set_rc(3, 1000) # lower throttle def FenceMinAltAutoEnableAbort(self): '''Tests autoenablement of the alt min fence and fences on arming''' @@ -3797,10 +3617,6 @@ def FenceMinAltAutoEnableAbort(self): "RTL_AUTOLAND" : 2, }) - # Grab Home Position - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() - self.wait_ready_to_arm() self.arm_vehicle() @@ -3837,7 +3653,6 @@ def FenceMinAltAutoEnableAbort(self): self.change_mode("AUTO") self.clear_mission(mavutil.mavlink.MAV_MISSION_TYPE_ALL) self.fly_home_land_and_disarm(timeout=150) - self.wait_disarmed() def FenceAutoEnableDisableSwitch(self): '''Tests autoenablement of regular fences and manual disablement''' @@ -3859,7 +3674,6 @@ def FenceAutoEnableDisableSwitch(self): fence_bit = mavutil.mavlink.MAV_SYS_STATUS_GEOFENCE # Grab Home Position self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() self.set_rc_from_map({7: 1000}) # Turn fence off with aux function self.wait_ready_to_arm() @@ -3868,7 +3682,7 @@ def FenceAutoEnableDisableSwitch(self): self.progress("Fly above ceiling and check there is no breach") self.set_rc(3, 2000) - self.change_altitude(self.homeloc.alt + cruise_alt + 80) + self.change_altitude(cruise_alt + 80, relative=True) m = self.mav.recv_match(type='SYS_STATUS', blocking=True) self.progress("Got (%s)" % str(m)) if (not (m.onboard_control_sensors_health & fence_bit)): @@ -3876,10 +3690,10 @@ def FenceAutoEnableDisableSwitch(self): self.progress("Return to cruise alt") self.set_rc(3, 1500) - self.change_altitude(self.homeloc.alt + cruise_alt) + self.change_altitude(cruise_alt, relative=True) self.progress("Fly below floor and check for no breach") - self.change_altitude(self.homeloc.alt + 25) + self.change_altitude(25, relative=True) m = self.mav.recv_match(type='SYS_STATUS', blocking=True) self.progress("Got (%s)" % str(m)) if (not (m.onboard_control_sensors_health & fence_bit)): @@ -3887,7 +3701,7 @@ def FenceAutoEnableDisableSwitch(self): self.progress("Fly above floor and check fence is not re-enabled") self.set_rc(3, 2000) - self.change_altitude(self.homeloc.alt + 75) + self.change_altitude(75, relative=True) m = self.mav.recv_match(type='SYS_STATUS', blocking=True) self.progress("Got (%s)" % str(m)) if (m.onboard_control_sensors_enabled & fence_bit): @@ -3895,7 +3709,7 @@ def FenceAutoEnableDisableSwitch(self): self.progress("Return to cruise alt") self.set_rc(3, 1500) - self.change_altitude(self.homeloc.alt + cruise_alt) + self.change_altitude(cruise_alt, relative=True) self.fly_home_land_and_disarm(timeout=250) def FenceCircleExclusionAutoEnable(self): @@ -3908,10 +3722,6 @@ def FenceCircleExclusionAutoEnable(self): "RTL_AUTOLAND" : 2, }) - # Grab Home Position - self.mav.recv_match(type='HOME_POSITION', blocking=True) - self.homeloc = self.mav.location() - fence_loc = self.home_position_as_mav_location() self.location_offset_ne(fence_loc, 300, 0) @@ -3922,23 +3732,12 @@ def FenceCircleExclusionAutoEnable(self): } )]) - self.wait_ready_to_arm() - self.arm_vehicle() - self.takeoff(alt=50, mode='TAKEOFF') self.change_mode("FBWA") self.set_rc(3, 1100) # lower throttle self.progress("Waiting for RTL") - tstart = self.get_sim_time() - mode = "RTL" - while not self.mode_is(mode, drain_mav=False): - self.mav.messages['HEARTBEAT'].custom_mode - self.progress("mav.flightmode=%s Want=%s Alt=%f" % ( - self.mav.flightmode, mode, self.get_altitude(relative=True))) - if (self.get_sim_time_cached() > tstart + 120): - raise WaitModeTimeout("Did not change mode") - self.progress("Got mode %s" % mode) + self.wait_mode('RTL') # Now check we can land self.fly_home_land_and_disarm() @@ -5873,7 +5672,8 @@ def tests(self): self.FenceNoFenceReturnPoint, self.FenceNoFenceReturnPointInclusion, self.FenceDisableUnderAction, - self.ADSB, + self.ADSBFailActionRTL, + self.ADSBResumeActionResumeLoiter, self.SimADSB, self.Button, self.FRSkySPort, From 84efdd570085eef3768a9dbf2374c2bd33531cca Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 19:35:09 +1000 Subject: [PATCH 205/232] hwdef: SpeedyBeeF405WING: remove landing gear support --- libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat index a3aff9a67c377..fb22e7e4dcdba 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat @@ -172,13 +172,11 @@ PC13 PINIO1 OUTPUT GPIO(81) LOW include ../include/minimize_fpv_osd.inc undef AP_CAMERA_MOUNT_ENABLED -undef AP_LANDINGGEAR_ENABLED undef HAL_MOUNT_ENABLED undef HAL_MOUNT_SERVO_ENABLED undef QAUTOTUNE_ENABLED define AP_CAMERA_MOUNT_ENABLED 1 -define AP_LANDINGGEAR_ENABLED 1 define HAL_MOUNT_ENABLED 1 define HAL_MOUNT_SERVO_ENABLED 1 define QAUTOTUNE_ENABLED 1 From debf3cb28e7443f75771005245637070232e04d5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 19:42:17 +1000 Subject: [PATCH 206/232] hwdef: SpeedyBeeF405WING: restrict mount support to the servo gimbal --- libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat index fb22e7e4dcdba..f063295ea6d73 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/hwdef.dat @@ -178,6 +178,7 @@ undef QAUTOTUNE_ENABLED define AP_CAMERA_MOUNT_ENABLED 1 define HAL_MOUNT_ENABLED 1 +define AP_MOUNT_BACKEND_DEFAULT_ENABLED 0 define HAL_MOUNT_SERVO_ENABLED 1 define QAUTOTUNE_ENABLED 1 From 16c2e23ee7128d6e301123ca69c2ae0736432d53 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 19:43:32 +1000 Subject: [PATCH 207/232] AP_Mount: allow AP_MOUNT_BACKEND_DEFAULT_ENABLED to be overridden --- libraries/AP_Mount/AP_Mount_config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/AP_Mount/AP_Mount_config.h b/libraries/AP_Mount/AP_Mount_config.h index 6c0f63509e17d..a2da37fac5880 100644 --- a/libraries/AP_Mount/AP_Mount_config.h +++ b/libraries/AP_Mount/AP_Mount_config.h @@ -7,7 +7,9 @@ #define HAL_MOUNT_ENABLED 1 #endif +#ifndef AP_MOUNT_BACKEND_DEFAULT_ENABLED #define AP_MOUNT_BACKEND_DEFAULT_ENABLED HAL_MOUNT_ENABLED +#endif #ifndef HAL_MOUNT_ALEXMOS_ENABLED #define HAL_MOUNT_ALEXMOS_ENABLED AP_MOUNT_BACKEND_DEFAULT_ENABLED From 3ddd477d04669e97699453d4aba86f5ca184ed72 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 28 Jul 2024 06:06:07 +1000 Subject: [PATCH 208/232] CI: only run qurt build on ArduPilot main repo this prevents user repos getting failures thanks to Pete for the suggestion --- .github/workflows/qurt_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qurt_build.yml b/.github/workflows/qurt_build.yml index 5d303fa65aede..debf75c7f3db1 100644 --- a/.github/workflows/qurt_build.yml +++ b/.github/workflows/qurt_build.yml @@ -141,8 +141,8 @@ concurrency: jobs: build: + if: github.repository == 'ArduPilot/ardupilot' runs-on: 'ardupilot-qurt' - steps: - uses: actions/checkout@v4 with: From bbde876353914b910e743dca3ca2f3aff27f9ce3 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Sat, 27 Jul 2024 17:36:11 -0500 Subject: [PATCH 209/232] hwdef: remove EKF opinion from FlywooF745 No effect as lines have always been commented out, but not useful and EKF2 is not something to encourage. Verified no compiler output change. --- libraries/AP_HAL_ChibiOS/hwdef/FlywooF745/hwdef.dat | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF745/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF745/hwdef.dat index 1543f2b3379a8..0624b4e0680e4 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/FlywooF745/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/FlywooF745/hwdef.dat @@ -162,10 +162,6 @@ ROMFS_WILDCARD libraries/AP_OSD/fonts/font0.bin # define HAL_GYROFFT_ENABLED 1 # define AP_OAPATHPLANNER_ENABLED 0 -# EK2 options (disabled by default) -# define HAL_NAVEKF2_AVAILABLE 1 -# define HAL_NAVEKF3_AVAILABLE 0 - # save some flash include ../include/minimize_fpv_osd.inc include ../include/no_bootloader_DFU.inc From 317fab2f1933bbabc43e864c170fe97dbb818ab5 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 26 Jul 2024 10:58:16 +1000 Subject: [PATCH 210/232] AP_Mission: add and use an option_is_set method --- libraries/AP_Mission/AP_Mission.cpp | 4 ++-- libraries/AP_Mission/AP_Mission.h | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index 2e5fb77d99633..ea441be219ba8 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -95,7 +95,7 @@ void AP_Mission::init() init_jump_tracking(); // If Mission Clear bit is set then it should clear the mission, otherwise retain the mission. - if (AP_MISSION_MASK_MISSION_CLEAR & _options) { + if (option_is_set(Option::CLEAR_ON_BOOT)) { GCS_SEND_TEXT(MAV_SEVERITY_INFO, "Clearing Mission"); clear(); } @@ -2502,7 +2502,7 @@ bool AP_Mission::is_best_land_sequence(const Location ¤t_loc) } // check if MIS_OPTIONS bit set to allow distance calculation to be done - if (!(_options & AP_MISSION_MASK_DIST_TO_LAND_CALC)) { + if (!option_is_set(Option::FAILSAFE_TO_BEST_LANDING)) { return false; } diff --git a/libraries/AP_Mission/AP_Mission.h b/libraries/AP_Mission/AP_Mission.h index 69f8fe2b46b97..32bb2fa77dd8d 100644 --- a/libraries/AP_Mission/AP_Mission.h +++ b/libraries/AP_Mission/AP_Mission.h @@ -45,9 +45,6 @@ #define AP_MISSION_RESTART_DEFAULT 0 // resume the mission from the last command run by default #define AP_MISSION_OPTIONS_DEFAULT 0 // Do not clear the mission when rebooting -#define AP_MISSION_MASK_MISSION_CLEAR (1<<0) // If set then Clear the mission on boot -#define AP_MISSION_MASK_DIST_TO_LAND_CALC (1<<1) // Allow distance to best landing calculation to be run on failsafe -#define AP_MISSION_MASK_CONTINUE_AFTER_LAND (1<<2) // Allow mission to continue after land #define AP_MISSION_MAX_WP_HISTORY 7 // The maximum number of previous wp commands that will be stored from the active missions history #define LAST_WP_PASSED (AP_MISSION_MAX_WP_HISTORY-2) @@ -732,14 +729,23 @@ class AP_Mission void reset_wp_history(void); /* - return true if MIS_OPTIONS is set to allow continue of mission - logic after a land and the next waypoint is a takeoff. If this + Option::FailsafeToBestLanding - continue mission + logic after a land if the next waypoint is a takeoff. If this is false then after a landing is complete the vehicle should disarm and mission logic should stop */ + enum class Option { + CLEAR_ON_BOOT = 0, // clear mission on vehicle boot + FAILSAFE_TO_BEST_LANDING = 1, // on failsafe, find fastest path along mission home + CONTINUE_AFTER_LAND = 2, // continue running mission (do not disarm) after land if takeoff is next waypoint + }; + bool option_is_set(Option option) const { + return (_options.get() & (uint16_t)option) != 0; + } + bool continue_after_land_check_for_takeoff(void); bool continue_after_land(void) const { - return (_options.get() & AP_MISSION_MASK_CONTINUE_AFTER_LAND) != 0; + return option_is_set(Option::CONTINUE_AFTER_LAND); } // user settable parameters From 08c8ef379beefbe24fb8a07d8851fac09d0dfe56 Mon Sep 17 00:00:00 2001 From: cuav-chen2 Date: Wed, 3 Jul 2024 10:12:28 +0800 Subject: [PATCH 211/232] HAL_ChibiOS: Added support for CUAV-7-Nano flight controller --- .../hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png | Bin 0 -> 46169 bytes .../hwdef/CUAV-7-Nano/README.md | 80 +++++ .../hwdef/CUAV-7-Nano/defaults.parm | 2 + .../hwdef/CUAV-7-Nano/hwdef-bl.dat | 101 ++++++ .../hwdef/CUAV-7-Nano/hwdef.dat | 294 ++++++++++++++++++ 5 files changed, 477 insertions(+) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/CUAV-7-Nano-pinout.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2ea5b4827bc6be0486a5d952d32e1171393b47 GIT binary patch literal 46169 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 #MS6?IlBk!gIVdj2zl&Q| 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≫x&xT3 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 Ox3tvsRqK`QqW>3{!N9-( literal 0 HcmV?d00001 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md new file mode 100644 index 0000000000000..ffdce53289aef --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/README.md @@ -0,0 +1,80 @@ +# CUAV-7-Nano Flight Controller + +The CUAV-7-Nano flight controller produced by [CUAV](https://www.cuav.net). + +## Features + +- STM32H753 microcontroller +- 2 IMUs: IIM42652 and BMI088 +- builtin IST8310 magnetometer +- 2 barometers: BMP581 and ICP20100 +- microSD card slot +- USB-TypeC port +- 1 ETH network interface +- 5 UARTs plus USB +- 14 PWM outputs +- 3 I2C ports +- 3 CAN ports (two of which share a CAN bus and one is an independent CAN bus) +- Analog RSSI input +- 3.3V/5V configurable PWM ouput voltage + +## Pinout + +![CUAV-7-Nano_interface_definition.png](CUAV-7-Nano-pinout.png) + +## UART Mapping + +- SERIAL0 -> USB +- SERIAL1 -> UART7 (TELEM1) +- SERIAL2 -> UART5 (TELEM2) +- SERIAL3 -> USART1 (GPS&SAFETY) +- SERIAL4 -> UART8 (GPS2) +- SERIAL5 -> USART3 (FMU DEBUG) + +The TELEM1 and TELEM2 ports have RTS/CTS pins, the other UARTs do not have RTS/CTS. All have full DMA capability. + +## RC Input + +RC input is configured on the RCIN pin, at one end of the servo rail, marked RCIN in the above diagram. All ArduPilot supported unidirectional RC protocols can be input here including PPM. For bi-directional or half-duplex protocols, such as CRSF/ELRS a full UART will have to be used. + +## PWM Output + +The CUAV-7-Nano flight controller supports up to 14 PWM outputs. + +The 14 PWM outputs are in 6 groups: + +- PWM 1-4 in group1 (TIM5) +- PWM 5 and 6 in group2 (TIM4) +- PWM 7 and 8 in group3 (TIM1) +- PWM 9, 10 and 11 in group4 (TIM8) +- PWM 12 in group5 (TIM15) +- PWM 13 and 14 in group6 (TIM12) + +Channels within the same group need to use the same output rate. If any channel in a group uses DShot then all channels in the group need to use DShot. Outputs 1-4 support BDShot. + +First first 8 PWM outputs of CUAV-7-Nano flight controller support switching between 3.3V voltage and 5V voltage output. It can be switched to 5V by setting GPIO 80 high by setting up a Voltage-Level Translator to control it. + +## Battery Monitoring + +The board has a dedicated power monitor ports on 6 pin connectors(POWER A). The correct battery setting parameters are dependent on the type of power brick which is connected. + +## Compass + +The CUAV-7-Nano has an IST8310 builtin compass, but due to interference the board is usually used with an external I2C compass as part of a GPS/Compass combination. + +## Analog inputs + +The CUAV-7-Nano has 6 analog inputs. + +- ADC Pin9 -> Battery Voltage +- ADC Pin8 -> Battery Current Sensor +- ADC Pin5 -> Vdd 5V supply sense +- ADC Pin13 -> ADC 3.3V Sense +- ADC Pin12 -> ADC 6.6V Sense +- ADC Pin10 -> RSSI voltage monitoring + +## Loading Firmware + +Firmware for these boards can be found at https://firmware.ardupilot.org in sub-folders labeled "CUAV-7-Nano". + +The board comes pre-installed with an ArduPilot compatible bootloader, allowing the loading of *.apj firmware files with any ArduPilot compatible ground station. diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm new file mode 100644 index 0000000000000..f46b1f17c1a3e --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/defaults.parm @@ -0,0 +1,2 @@ +INS_ACCEL_FILTER 10 +CAN_P1_DRIVER 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat new file mode 100644 index 0000000000000..62d0bae7107ef --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef-bl.dat @@ -0,0 +1,101 @@ +# hw definition file for processing by chibios_hwdef.py +# for CUAV-7-Nano board + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# board ID for firmware load +APJ_BOARD_ID 7000 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 128 + +# flash size +FLASH_SIZE_KB 2048 + +env OPTIMIZE -Os + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART3 + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# CS pins +PI9 ICM42652_CS CS +PH5 BMI088_A_CS CS +PG2 BMI088_G_CS CS +PD15 BMP581_CS CS +PG7 FRAM_CS CS + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 + +# telem2 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# armed indication +PE7 nARMED OUTPUT HIGH + +# start peripheral power off +PG4 VDD_5V_PERIPH_EN OUTPUT HIGH +PG10 VDD_5V_HIPOWER_EN OUTPUT HIGH + +# LEDs +PE3 LED_RED OUTPUT LOW # red +PE4 LED_ACTIVITY OUTPUT LOW # green +PE5 LED_BOOTLOADER OUTPUT LOW # blue +define HAL_LED_ON 0 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 16384 + +# enable DFU by default +ENABLE_DFU_BOOT 1 + +# support flashing from SD card: +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH + +# FATFS support: +define CH_CFG_USE_MEMCORE 1 +define CH_CFG_USE_HEAP 1 +define CH_CFG_USE_SEMAPHORES 0 +define CH_CFG_USE_MUTEXES 1 +define CH_CFG_USE_DYNAMIC 1 +define CH_CFG_USE_WAITEXIT 1 +define CH_CFG_USE_REGISTRY 1 + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +DMA_PRIORITY SDMMC* USART6* ADC* UART* USART* SPI* TIM* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +define AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat new file mode 100644 index 0000000000000..eea49e50f0d61 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CUAV-7-Nano/hwdef.dat @@ -0,0 +1,294 @@ +# hw definition file for processing by chibios_hwdef.py +# for CUAV-7-Nano board + +# default to all pins low to avoid ESD issues +DEFAULTGPIO OUTPUT LOW PULLDOWN + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# crystal frequency +OSCILLATOR_HZ 16000000 + +# ChibiOS system timer +STM32_ST_USE_TIMER 2 + +# board ID for firmware load +APJ_BOARD_ID 7000 + +# bootloader takes first sector +FLASH_RESERVE_START_KB 128 + +# to be compatible with the px4 bootloader we need +# to use a different RAM_MAP +env USE_ALT_RAM_MAP 1 + +# flash size +FLASH_SIZE_KB 2048 + +# with 2M flash we can afford to optimize for speed +env OPTIMIZE -O2 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 USART3 OTG2 + +# USB +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PA9 VBUS INPUT OPENDRAIN + +# pins for SWD debugging +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# telem1 +PE8 UART7_TX UART7 +PF6 UART7_RX UART7 +PF8 UART7_RTS UART7 +PE10 UART7_CTS UART7 + +# telem2 +PC8 UART5_RTS UART5 +PC9 UART5_CTS UART5 +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 + +# GPS1 +PB6 USART1_TX USART1 +PB7 USART1_RX USART1 + +# GPS2 +PE0 UART8_RX UART8 +PE1 UART8_TX UART8 + +# debug uart +PD8 USART3_TX USART3 +PD9 USART3_RX USART3 + +# uart6, RX only, RC input, if no IOMCU +PC7 USART6_RX USART6 + +# ethernet +PC1 ETH_MDC ETH1 +PA2 ETH_MDIO ETH1 +PC4 ETH_RMII_RXD0 ETH1 +PC5 ETH_RMII_RXD1 ETH1 +PG13 ETH_RMII_TXD0 ETH1 +PG12 ETH_RMII_TXD1 ETH1 +PB11 ETH_RMII_TX_EN ETH1 +PA7 ETH_RMII_CRS_DV ETH1 +PA1 ETH_RMII_REF_CLK ETH1 +#PG15 ETH_POWER_EN ETH1 + +PG15 Ethernet_PWR_EN OUTPUT HIGH # disable power on ethernet + +define BOARD_PHY_ID MII_LAN8742A_ID +define BOARD_PHY_RMII + +# ADC +PA0 SCALED1_V3V3 ADC1 SCALE(2) +PA4 SCALED2_V3V3 ADC1 SCALE(2) +PB1 VDD_5V_SENS ADC1 SCALE(2) +PC0 RSSI_IN ADC1 SCALE(1) +PF12 FMU_SERVORAIL_VCC_SENS ADC1 SCALE(3) + +# analog in +PC2 BATT_VOLTAGE_SENS ADC1 SCALE(1) ANALOG(9) +PB0 BATT_CURRENT_SENS ADC1 SCALE(1) ANALOG(8) + +# pin7 on AD&IO, analog 12 +PF3 ADC3_6V6 ADC3 SCALE(2) ANALOG(12) + +# pin6 on AD&IO, analog 13 +PC3 ADC1_3V3 ADC1 SCALE(1) ANALOG(13) + +define HAL_BATT_VOLT_PIN 9 +define HAL_BATT_CURR_PIN 8 +define HAL_BATT_VOLT_SCALE 10.1 +define HAL_BATT_CURR_SCALE 17.0 + +# SPI1 - IIM42652 +PA5 SPI1_SCK SPI1 +PB5 SPI1_MOSI SPI1 +PG9 SPI1_MISO SPI1 +PI9 IIM42652_CS CS +PF2 IIM42652_DRDY INPUT + +# SPI2 - BMI088 +PI1 SPI2_SCK SPI2 +PI2 SPI2_MISO SPI2 +PI3 SPI2_MOSI SPI2 +PH5 BMI088_A_CS CS +PG2 BMI088_G_CS CS +PG3 BMI088_DRDY_GYR INPUT +PA10 BMI088_DRDY_ACC INPUT + +# SPI4 - BMP581 +PE12 SPI4_SCK SPI4 +PE13 SPI4_MISO SPI4 +PE14 SPI4_MOSI SPI4 +PD15 BMP581_CS CS +PG1 BMP581_DRDY INPUT + +# SPI5 - FRAM +PF7 SPI5_SCK SPI5 +PH7 SPI5_MISO SPI5 +PF11 SPI5_MOSI SPI5 +PG7 FRAM_CS CS + +# SPI devices +SPIDEV bmi088_g SPI2 DEVID1 BMI088_G_CS MODE3 10*MHZ 10*MHZ +SPIDEV bmi088_a SPI2 DEVID2 BMI088_A_CS MODE3 10*MHZ 10*MHZ +SPIDEV iim42652 SPI1 DEVID1 IIM42652_CS MODE3 2*MHZ 8*MHZ +SPIDEV ramtron SPI5 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ +SPIDEV bmp581 SPI4 DEVID1 BMP581_CS MODE3 7.5*MHZ 12*MHZ + +# PWM output pins +PI0 TIM5_CH4 TIM5 PWM(1) GPIO(50) BIDIR +PH12 TIM5_CH3 TIM5 PWM(2) GPIO(51) +PH11 TIM5_CH2 TIM5 PWM(3) GPIO(52) BIDIR +PH10 TIM5_CH1 TIM5 PWM(4) GPIO(53) +PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) +PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) +PE11 TIM1_CH2 TIM1 PWM(7) GPIO(56) +PE9 TIM1_CH1 TIM1 PWM(8) GPIO(57) +PI6 TIM8_CH2 TIM8 PWM(9) GPIO(58) +PI7 TIM8_CH3 TIM8 PWM(10) GPIO(59) +PI5 TIM8_CH1 TIM8 PWM(11) GPIO(60) +PE6 TIM15_CH2 TIM15 PWM(12) GPIO(61) + +# we need to disable DMA on the last 2 FMU channels +# as timer 12 doesn't have a TIMn_UP DMA option +PH6 TIM12_CH1 TIM12 PWM(13) GPIO(62) NODMA +PH9 TIM12_CH2 TIM12 PWM(14) GPIO(63) NODMA + +# CAN bus +PD0 CAN1_RX CAN1 +PD1 CAN1_TX CAN1 + +PB12 CAN2_RX CAN2 +PB13 CAN2_TX CAN2 + +# control for silent (no output) for CAN +PE2 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(70) +PI8 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(71) + +# I2C buses + +# I2C1, GPS+MAG +PB9 I2C1_SDA I2C1 +PB8 I2C1_SCL I2C1 + +# I2C2, GPS2+MAG +PF1 I2C2_SCL I2C2 +PF0 I2C2_SDA I2C2 + +# I2C3, IST8310 +PA8 I2C3_SCL I2C3 +PH8 I2C3_SDA I2C3 + +# I2C4, ICM20100 +PF14 I2C4_SCL I2C4 +PF15 I2C4_SDA I2C4 +PG5 DRDY1_ICP20100 INPUT + +# order of I2C buses +I2C_ORDER I2C3 I2C4 I2C1 I2C2 +define HAL_I2C_INTERNAL_MASK 3 + +# armed indication +PE7 nARMED OUTPUT HIGH + +# power enable pins +PC13 VDD_3V3_SD_CARD_EN OUTPUT HIGH +PI11 VDD_3V3_SENSORS1_EN OUTPUT HIGH +PF4 VDD_3V3_SENSORS2_EN OUTPUT HIGH +PH2 VDD_3V3_SENSORS3_EN OUTPUT HIGH + +# start peripheral power off, then enable after init +# this prevents a problem with radios that use RTS for +# bootloader hold +PG10 VDD_5V_HIPOWER_EN OUTPUT HIGH +PG4 VDD_5V_PERIPH_EN OUTPUT HIGH + +# power sensing +PE15 VDD_5V_PERIPH_nOC INPUT PULLUP +PF13 VDD_5V_HIPOWER_nOC INPUT PULLUP + +# Pin for PWM Voltage Selection, 0 means 3.3v, 1 means 5v, 3.3v default +PG8 PWM_VOLT_SEL OUTPUT LOW GPIO(80) +define HAL_GPIO_PWM_VOLT_PIN 80 +define HAL_GPIO_PWM_VOLT_3v3 0 + +# microSD support +PD6 SDMMC2_CK SDMMC2 +PD7 SDMMC2_CMD SDMMC2 +PB14 SDMMC2_D0 SDMMC2 +PB15 SDMMC2_D1 SDMMC2 +PG11 SDMMC2_D2 SDMMC2 +PB4 SDMMC2_D3 SDMMC2 +define FATFS_HAL_DEVICE SDCD2 + +# safety +PD10 LED_SAFETY OUTPUT +PF5 SAFETY_IN INPUT PULLDOWN + +# LEDs +PE3 LED_RED OUTPUT GPIO(90) LOW +PE4 LED_GREEN OUTPUT GPIO(91) LOW +PE5 LED_BLUE OUTPUT GPIO(92) LOW + +# setup for "pixracer" RGB LEDs +define AP_NOTIFY_GPIO_LED_RGB_RED_PIN 90 +define AP_NOTIFY_GPIO_LED_RGB_GREEN_PIN 91 +define AP_NOTIFY_GPIO_LED_RGB_BLUE_PIN 92 + +define AP_NOTIFY_GPIO_LED_RGB_ENABLED 1 + +# ID pins +PG0 HW_VER_REV_DRIVE OUTPUT LOW +# PH3 HW_VER_SENS ADC3 SCALE(1) +# PH4 HW_REV_SENS ADC3 SCALE(1) + +# PWM output for buzzer +PF9 TIM14_CH1 TIM14 GPIO(77) ALARM + +# RC input +PC6 TIM3_CH1 TIM3 RCININT PULLDOWN LOW + +# other I2C devices +# 24LC64T eeprom 64Kbit, address 0x50 on I2C4 + +BARO BMP581 SPI:bmp581 +BARO ICP201XX I2C:1:0x63 + +# compass +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_SKIP_AUTO_INTERNAL_I2C_PROBE +define HAL_COMPASS_DISABLE_IST8310_INTERNAL_PROBE +define AP_COMPASS_IST8310_DEFAULT_ROTATION ROTATION_ROLL_180_YAW_90 +COMPASS IST8310 I2C:0:0x0E false ROTATION_ROLL_90_YAW_90 +COMPASS IST8310 I2C:ALL_EXTERNAL:0x0E true ROTATION_ROLL_180_YAW_90 + +# IMUs +IMU Invensensev3 SPI:iim42652 ROTATION_ROLL_90_YAW_90 +IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_90 + +define HAL_DEFAULT_INS_FAST_SAMPLE 3 + +# enable RAMTROM parameter storage +define HAL_STORAGE_SIZE 32768 +define HAL_WITH_RAMTRON 1 + +# allow to have have a dedicated safety switch pin +define HAL_HAVE_SAFETY_SWITCH 1 + +DMA_PRIORITY TIM5* SDMMC* USART6* ADC* UART* USART* SPI* TIM* + +# enable FAT filesystem support (needs a microSD defined via SDMMC) +define HAL_OS_FATFS_IO 1 + +# enable DFU reboot for installing bootloader +# note that if firmware is build with --secure-bl then DFU is +# disabled +ENABLE_DFU_BOOT 1 From 3267b9116009abdc284b58fdf037c2dec0ab9c5f Mon Sep 17 00:00:00 2001 From: cuav-chen2 Date: Wed, 3 Jul 2024 10:29:53 +0800 Subject: [PATCH 212/232] bootloaders: Add CUAV-7-Nano bootloader --- Tools/bootloaders/CUAV-7-Nano_bl.bin | Bin 0 -> 40236 bytes Tools/bootloaders/CUAV-7-Nano_bl.hex | 2517 ++++++++++++++++++++++++++ 2 files changed, 2517 insertions(+) create mode 100644 Tools/bootloaders/CUAV-7-Nano_bl.bin create mode 100644 Tools/bootloaders/CUAV-7-Nano_bl.hex diff --git a/Tools/bootloaders/CUAV-7-Nano_bl.bin b/Tools/bootloaders/CUAV-7-Nano_bl.bin new file mode 100644 index 0000000000000000000000000000000000000000..60b99e1b3d72541dd578fe84e36f0e053e4636d9 GIT binary patch literal 40236 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 Date: Mon, 29 Jul 2024 12:58:38 +1000 Subject: [PATCH 213/232] Tools: environment_install: install Python packages one-at-a-time helps to work out which packages are causing problems --- Tools/environment_install/install-prereqs-ubuntu.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Tools/environment_install/install-prereqs-ubuntu.sh b/Tools/environment_install/install-prereqs-ubuntu.sh index 76ea0c3098543..c1aabcbabba8a 100755 --- a/Tools/environment_install/install-prereqs-ubuntu.sh +++ b/Tools/environment_install/install-prereqs-ubuntu.sh @@ -414,7 +414,11 @@ if [ ${RELEASE_CODENAME} == 'bookworm' ] || $PIP install $PIP_USER_ARGUMENT -U attrdict3 fi -$PIP install $PIP_USER_ARGUMENT -U $PYTHON_PKGS +# install Python packages one-at-a-time so it is clear which package +# is causing problems: +for PACKAGE in $PYTHON_PKGS; do + $PIP install $PIP_USER_ARGUMENT -U $PACKAGE +done if [[ -z "${DO_AP_STM_ENV}" ]] && maybe_prompt_user "Install ArduPilot STM32 toolchain [N/y]?" ; then DO_AP_STM_ENV=1 From eadc7c0ecc2f1dc21b7554f207824ce4648b5eb9 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Mon, 29 Jul 2024 13:39:23 +1000 Subject: [PATCH 214/232] Tools: install_prereqs_ubuntu.sh: pin setuptools to avoid problems on Focal focal: return Version(version) focal: File "/home/vagrant/.local/lib/python3.8/site-packages/packaging/version.py", line 202, in __init__ focal: raise InvalidVersion(f"Invalid version: '{version}'") focal: packaging.version.InvalidVersion: Invalid version: '1.0.3.linux-x86_64' --- Tools/environment_install/install-prereqs-ubuntu.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Tools/environment_install/install-prereqs-ubuntu.sh b/Tools/environment_install/install-prereqs-ubuntu.sh index c1aabcbabba8a..5dece4504fb24 100755 --- a/Tools/environment_install/install-prereqs-ubuntu.sh +++ b/Tools/environment_install/install-prereqs-ubuntu.sh @@ -400,7 +400,11 @@ if [ -n "$PYTHON_VENV_PACKAGE" ]; then fi # try update packaging, setuptools and wheel before installing pip package that may need compilation -$PIP install $PIP_USER_ARGUMENT -U pip packaging setuptools wheel +SETUPTOOLS="setuptools" +if [ ${RELEASE_CODENAME} == 'focal' ]; then + SETUPTOOLS=setuptools==70.3.0 +fi +$PIP install $PIP_USER_ARGUMENT -U pip packaging $SETUPTOOLS wheel if [ "$GITHUB_ACTIONS" == "true" ]; then PIP_USER_ARGUMENT+=" --progress-bar off" From 1e6e291b527a6186e0548be6133642a0722a7a2a Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Tue, 21 May 2024 19:34:43 +0200 Subject: [PATCH 215/232] autotest: New tests Autotests for takeoffs have been added for Plane, covering AUTO and TAKEOFF mode takeoffs. An auxiliary `set_servo` method has been added to `vehicle_test_suite.py`. --- .../ArduPlane_Tests/TakeoffAuto1/catapult.txt | 13 + .../ArduPlane_Tests/TakeoffAuto2/catapult.txt | 13 + .../ArduPlane_Tests/TakeoffAuto3/catapult.txt | 13 + .../ArduPlane_Tests/TakeoffAuto4/catapult.txt | 13 + Tools/autotest/arduplane.py | 350 ++++++++++++++++++ Tools/autotest/vehicle_test_suite.py | 4 + 6 files changed, 406 insertions(+) create mode 100644 Tools/autotest/ArduPlane_Tests/TakeoffAuto1/catapult.txt create mode 100644 Tools/autotest/ArduPlane_Tests/TakeoffAuto2/catapult.txt create mode 100644 Tools/autotest/ArduPlane_Tests/TakeoffAuto3/catapult.txt create mode 100644 Tools/autotest/ArduPlane_Tests/TakeoffAuto4/catapult.txt diff --git a/Tools/autotest/ArduPlane_Tests/TakeoffAuto1/catapult.txt b/Tools/autotest/ArduPlane_Tests/TakeoffAuto1/catapult.txt new file mode 100644 index 0000000000000..0aa9cd624db82 --- /dev/null +++ b/Tools/autotest/ArduPlane_Tests/TakeoffAuto1/catapult.txt @@ -0,0 +1,13 @@ +QGC WPL 110 +0 0 0 16 0.000000 0.000000 0.000000 0.000000 -35.363262 149.165237 584.390015 1 +1 0 3 22 15.000000 0.000000 0.000000 0.000000 -35.361279 149.164230 100.000000 1 +2 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361229 149.163025 100.000000 1 +3 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364563 149.163773 100.000000 1 +4 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364384 149.164795 80.000000 1 +5 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361027 149.164093 80.000000 1 +6 0 0 177 2.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1 +7 0 3 189 0.000000 0.000000 0.000000 0.000000 -35.362915 149.162613 60.000000 1 +8 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.363136 149.162750 60.000000 1 +9 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365467 149.164215 55.000000 1 +10 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365009 149.165482 39.889999 1 +11 0 3 21 0.000000 0.000000 0.000000 1.000000 -35.363041 149.165222 0.000000 1 diff --git a/Tools/autotest/ArduPlane_Tests/TakeoffAuto2/catapult.txt b/Tools/autotest/ArduPlane_Tests/TakeoffAuto2/catapult.txt new file mode 100644 index 0000000000000..0aa9cd624db82 --- /dev/null +++ b/Tools/autotest/ArduPlane_Tests/TakeoffAuto2/catapult.txt @@ -0,0 +1,13 @@ +QGC WPL 110 +0 0 0 16 0.000000 0.000000 0.000000 0.000000 -35.363262 149.165237 584.390015 1 +1 0 3 22 15.000000 0.000000 0.000000 0.000000 -35.361279 149.164230 100.000000 1 +2 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361229 149.163025 100.000000 1 +3 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364563 149.163773 100.000000 1 +4 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364384 149.164795 80.000000 1 +5 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361027 149.164093 80.000000 1 +6 0 0 177 2.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1 +7 0 3 189 0.000000 0.000000 0.000000 0.000000 -35.362915 149.162613 60.000000 1 +8 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.363136 149.162750 60.000000 1 +9 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365467 149.164215 55.000000 1 +10 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365009 149.165482 39.889999 1 +11 0 3 21 0.000000 0.000000 0.000000 1.000000 -35.363041 149.165222 0.000000 1 diff --git a/Tools/autotest/ArduPlane_Tests/TakeoffAuto3/catapult.txt b/Tools/autotest/ArduPlane_Tests/TakeoffAuto3/catapult.txt new file mode 100644 index 0000000000000..0aa9cd624db82 --- /dev/null +++ b/Tools/autotest/ArduPlane_Tests/TakeoffAuto3/catapult.txt @@ -0,0 +1,13 @@ +QGC WPL 110 +0 0 0 16 0.000000 0.000000 0.000000 0.000000 -35.363262 149.165237 584.390015 1 +1 0 3 22 15.000000 0.000000 0.000000 0.000000 -35.361279 149.164230 100.000000 1 +2 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361229 149.163025 100.000000 1 +3 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364563 149.163773 100.000000 1 +4 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364384 149.164795 80.000000 1 +5 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361027 149.164093 80.000000 1 +6 0 0 177 2.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1 +7 0 3 189 0.000000 0.000000 0.000000 0.000000 -35.362915 149.162613 60.000000 1 +8 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.363136 149.162750 60.000000 1 +9 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365467 149.164215 55.000000 1 +10 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365009 149.165482 39.889999 1 +11 0 3 21 0.000000 0.000000 0.000000 1.000000 -35.363041 149.165222 0.000000 1 diff --git a/Tools/autotest/ArduPlane_Tests/TakeoffAuto4/catapult.txt b/Tools/autotest/ArduPlane_Tests/TakeoffAuto4/catapult.txt new file mode 100644 index 0000000000000..0aa9cd624db82 --- /dev/null +++ b/Tools/autotest/ArduPlane_Tests/TakeoffAuto4/catapult.txt @@ -0,0 +1,13 @@ +QGC WPL 110 +0 0 0 16 0.000000 0.000000 0.000000 0.000000 -35.363262 149.165237 584.390015 1 +1 0 3 22 15.000000 0.000000 0.000000 0.000000 -35.361279 149.164230 100.000000 1 +2 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361229 149.163025 100.000000 1 +3 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364563 149.163773 100.000000 1 +4 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.364384 149.164795 80.000000 1 +5 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.361027 149.164093 80.000000 1 +6 0 0 177 2.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1 +7 0 3 189 0.000000 0.000000 0.000000 0.000000 -35.362915 149.162613 60.000000 1 +8 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.363136 149.162750 60.000000 1 +9 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365467 149.164215 55.000000 1 +10 0 3 16 0.000000 0.000000 0.000000 0.000000 -35.365009 149.165482 39.889999 1 +11 0 3 21 0.000000 0.000000 0.000000 1.000000 -35.363041 149.165222 0.000000 1 diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index cf319f97da59a..45a8f9ddf97c0 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -4371,6 +4371,349 @@ def LandingDrift(self): self.wait_disarmed(timeout=180) + def TakeoffAuto1(self): + '''Test the behaviour of an AUTO takeoff, pt1. + + Conditions: + - ARSPD_USE=1 + - TKOFF_TYPE=0 + - TKOFF_THR_MAX < THR_MAX + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 1.0, + "THR_MAX": 100.0, + "TKOFF_THR_MAX": 80.0, + "TKOFF_THR_MINACC": 3.0, + "TECS_PITCH_MAX": 35.0, + "PTCH_LIM_MAX_DEG": 35.0, + "RTL_AUTOLAND": 2, # The mission contains a DO_LAND_START item. + }) + + # Load and start mission. It contains a MAV_CMD_NAV_TAKEOFF item at 100m. + self.load_mission("catapult.txt", strict=True) + self.change_mode('AUTO') + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Wait until we're midway through the climb. + test_alt = 50 + self.wait_altitude(test_alt, test_alt+2, relative=True) + + # Ensure that by then the aircraft still goes at max allowed throttle. + self.assert_servo_channel_value(3, 1000+10*self.get_parameter("TKOFF_THR_MAX")) + + # Wait for landing waypoint. + self.wait_current_waypoint(11, timeout=1200) + self.wait_disarmed(120) + + def TakeoffAuto2(self): + '''Test the behaviour of an AUTO takeoff, pt2. + + Conditions: + - ARSPD_USE=1 + - TKOFF_MODE=0 + - TKOFF_THR_MAX > THR_MAX + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 0.0, + "THR_MAX": 80.0, + "TKOFF_THR_MAX": 100.0, + "TKOFF_THR_MINACC": 3.0, + "TECS_PITCH_MAX": 35.0, + "PTCH_LIM_MAX_DEG": 35.0, + "RTL_AUTOLAND": 2, # The mission contains a DO_LAND_START item. + }) + + # Load and start mission. It contains a MAV_CMD_NAV_TAKEOFF item at 100m. + self.load_mission("catapult.txt", strict=True) + self.change_mode('AUTO') + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Wait until we're midway through the climb. + test_alt = 50 + self.wait_altitude(test_alt, test_alt+2, relative=True) + + # Ensure that by then the aircraft still goes at max allowed throttle. + self.assert_servo_channel_value(3, 1000+10*self.get_parameter("TKOFF_THR_MAX")) + + # Wait for landing waypoint. + self.wait_current_waypoint(11, timeout=1200) + self.wait_disarmed(120) + + def TakeoffAuto3(self): + '''Test the behaviour of an AUTO takeoff, pt3. + + Conditions: + - ARSPD_USE=1 + - TKOFF_MODE=1 + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 1.0, + "THR_MAX": 80.0, + "THR_MIN": 0.0, + "TKOFF_MODE": 1.0, + "TKOFF_THR_MAX": 100.0, + "TKOFF_THR_MINACC": 3.0, + "TECS_PITCH_MAX": 35.0, + "TKOFF_THR_MAX_T": 3.0, + "PTCH_LIM_MAX_DEG": 35.0, + "RTL_AUTOLAND": 2, # The mission contains a DO_LAND_START item. + }) + + # Load and start mission. It contains a MAV_CMD_NAV_TAKEOFF item at 100m. + self.load_mission("catapult.txt", strict=True) + self.change_mode('AUTO') + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Ensure that TKOFF_THR_MAX_T is respected. + self.delay_sim_time(self.get_parameter("TKOFF_THR_MAX_T")-1) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")-1)) + + # Ensure that after that the aircraft does not go full throttle anymore. + test_alt = 50 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*self.get_parameter("TKOFF_THR_MAX")-10, operator.lt) + + # Wait for landing waypoint. + self.wait_current_waypoint(11, timeout=1200) + self.wait_disarmed(120) + + def TakeoffAuto4(self): + '''Test the behaviour of an AUTO takeoff, pt4. + + Conditions: + - ARSPD_USE=0 + - TKOFF_MODE=1 + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 0.0, + "THR_MAX": 80.0, + "THR_MIN": 0.0, + "TKOFF_MODE": 1.0, + "TKOFF_THR_MAX": 100.0, + "TKOFF_THR_MINACC": 3.0, + "TECS_PITCH_MAX": 35.0, + "TKOFF_THR_MAX_T": 3.0, + "PTCH_LIM_MAX_DEG": 35.0, + "RTL_AUTOLAND": 2, # The mission contains a DO_LAND_START item. + }) + + # Load and start mission. It contains a MAV_CMD_NAV_TAKEOFF item at 100m. + self.load_mission("catapult.txt", strict=True) + self.change_mode('AUTO') + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Ensure that TKOFF_THR_MAX_T is respected. + self.delay_sim_time(self.get_parameter("TKOFF_THR_MAX_T")-1) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX"))-10, operator.ge) + + # Ensure that after that the aircraft still goes to maximum throttle. + test_alt = 50 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX"))-10, operator.ge) + + # Wait for landing waypoint. + self.wait_current_waypoint(11, timeout=1200) + self.wait_disarmed(120) + + def TakeoffTakeoff1(self): + '''Test the behaviour of a takeoff in TAKEOFF mode, pt1. + + Conditions: + - ARSPD_USE=1 + - TKOFF_MODE=0 + - TKOFF_THR_MAX < THR_MAX + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 1.0, + "THR_MAX": 100.0, + "TKOFF_LVL_ALT": 30.0, + "TKOFF_ALT": 100.0, + "TKOFF_MODE": 0.0, + "TKOFF_THR_MINACC": 3.0, + "TKOFF_THR_MAX": 80.0, + "TECS_PITCH_MAX": 35.0, + "PTCH_LIM_MAX_DEG": 35.0, + }) + self.change_mode("TAKEOFF") + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Check whether we're at max throttle below TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")-10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*self.get_parameter("TKOFF_THR_MAX")) + + # Check whether we're still at max throttle past TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")+10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX"))-1, operator.ge) + + # Wait for the takeoff to complete. + target_alt = self.get_parameter("TKOFF_ALT") + self.wait_altitude(target_alt-5, target_alt, relative=True) + + self.fly_home_land_and_disarm() + + def TakeoffTakeoff2(self): + '''Test the behaviour of a takeoff in TAKEOFF mode, pt2. + + Conditions: + - ARSPD_USE=1 + - TKOFF_MODE=1 + - TKOFF_THR_MAX < THR_MAX + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 1.0, + "THR_MAX": 100.0, + "TKOFF_LVL_ALT": 80.0, + "TKOFF_ALT": 150.0, + "TKOFF_MODE": 1.0, + "TKOFF_THR_MINACC": 3.0, + "TKOFF_THR_MAX": 80.0, + "TECS_PITCH_MAX": 35.0, + "PTCH_LIM_MAX_DEG": 35.0, + }) + self.change_mode("TAKEOFF") + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Check whether we're at max throttle below TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")-10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX"))-1, operator.ge) + + # Check whether we've receded from max throttle past TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")+10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MIN"))-1, operator.ge) + + # Wait for the takeoff to complete. + target_alt = self.get_parameter("TKOFF_ALT") + self.wait_altitude(target_alt-5, target_alt, relative=True) + + self.fly_home_land_and_disarm() + + def TakeoffTakeoff3(self): + '''Test the behaviour of a takeoff in TAKEOFF mode, pt3. + + This is the same as case #1, but with disabled airspeed sensor. + + Conditions: + - ARSPD_USE=0 + - TKOFF_MODE=0 + - TKOFF_THR_MAX < THR_MAX + ''' + + self.customise_SITL_commandline( + [], + model='plane-catapult', + defaults_filepath=self.model_defaults_filepath("plane") + ) + self.set_parameters({ + "ARSPD_USE": 0.0, + "THR_MAX": 100.0, + "TKOFF_LVL_ALT": 30.0, + "TKOFF_ALT": 100.0, + "TKOFF_MODE": 0.0, + "TKOFF_THR_MINACC": 3.0, + "TKOFF_THR_MAX": 80.0, + "TECS_PITCH_MAX": 35.0, + "PTCH_LIM_MAX_DEG": 35.0, + }) + self.change_mode("TAKEOFF") + + self.wait_ready_to_arm() + self.arm_vehicle() + + # Throw the catapult. + self.set_servo(7, 2000) + + # Check whether we're at max throttle below TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")-10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*self.get_parameter("TKOFF_THR_MAX")) + + # Check whether we're still at max throttle past TKOFF_LVL_ALT. + test_alt = self.get_parameter("TKOFF_LVL_ALT")+10 + self.wait_altitude(test_alt, test_alt+2, relative=True) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX")), operator.le) + self.assert_servo_channel_value(3, 1000+10*(self.get_parameter("TKOFF_THR_MAX"))-1, operator.ge) + + # Wait for the takeoff to complete. + target_alt = self.get_parameter("TKOFF_ALT") + self.wait_altitude(target_alt-5, target_alt, relative=True) + + self.fly_home_land_and_disarm() + def DCMFallback(self): '''Really annoy the EKF and force fallback''' self.reboot_sitl() @@ -5712,6 +6055,13 @@ def tests(self): self.AHRS_ORIENTATION, self.AHRSTrim, self.LandingDrift, + self.TakeoffAuto1, + self.TakeoffAuto2, + self.TakeoffAuto3, + self.TakeoffAuto4, + self.TakeoffTakeoff1, + self.TakeoffTakeoff2, + self.TakeoffTakeoff3, self.ForcedDCM, self.DCMFallback, self.MAVFTP, diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index f3458fee9d957..19b9f946d92cb 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -5571,6 +5571,10 @@ def set_rc(self, chan, pwm, timeout=20): """Setup a simulated RC control to a PWM value""" self.set_rc_from_map({chan: pwm}, timeout=timeout) + def set_servo(self, chan, pwm): + """Replicate the functionality of MAVProxy: servo set """ + self.run_cmd(mavutil.mavlink.MAV_CMD_DO_SET_SERVO, p1=chan, p2=pwm) + def location_offset_ne(self, location, north, east): '''move location in metres''' print("old: %f %f" % (location.lat, location.lng)) From b163e139642bac450f45dfed9155009ff62ed0de Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Fri, 24 May 2024 11:38:42 +0200 Subject: [PATCH 216/232] AP_TECS: Fixes to reset state These concern the TAKEOFF flight stage and address #27147. * Logging metadata fixes * Disabled continuous TECS reset during takeoff * Fixed bug in reached_speed_takeoff calculation * Limited SPDWEIGHT=2 to only first part of takeoff climb * _post_TO_hgt_offset set to constant * Takeoff I-gain now defaults to 0 and is used * Use at least TRIM_THROTTLE during the climb * Updated description of TECS_TKOFF_IGAIN with new behaviour * Forced max throttle while below TKOFF_LVL_ALT * Added throttle constraints in no-airspeed mode Additionally, set_min_throttle() has been created, that allows one to set the minimum TECS throttle for the next update_pitch_throttle() loop. Additionally, the throttle limits system has been reworked. TECS will receive external throttle limits from Plane and will always take them into account and respect them. --- libraries/AP_TECS/AP_TECS.cpp | 148 +++++++++++++++++++--------- libraries/AP_TECS/AP_TECS.h | 20 ++++ libraries/AP_Vehicle/AP_FixedWing.h | 2 + 3 files changed, 126 insertions(+), 44 deletions(-) diff --git a/libraries/AP_TECS/AP_TECS.cpp b/libraries/AP_TECS/AP_TECS.cpp index 55fb024043b1d..9d1d00e460e71 100644 --- a/libraries/AP_TECS/AP_TECS.cpp +++ b/libraries/AP_TECS/AP_TECS.cpp @@ -222,7 +222,7 @@ const AP_Param::GroupInfo AP_TECS::var_info[] = { // @Param: TKOFF_IGAIN // @DisplayName: Controller integrator during takeoff - // @Description: This is the integrator gain on the control loop during takeoff. When set to 0 then TECS_INTEG_GAIN is used. Increase to increase the rate at which speed and height offsets are trimmed out. Typically values higher than TECS_INTEG_GAIN work best + // @Description: This is the integrator gain on the control loop during takeoff. Increase to increase the rate at which speed and height offsets are trimmed out. // @Range: 0.0 0.5 // @Increment: 0.02 // @User: Advanced @@ -779,7 +779,6 @@ void AP_TECS::_update_throttle_with_airspeed(void) // ensure we run at full throttle until we reach the target airspeed _throttle_dem = MAX(_throttle_dem, _THRmaxf - _integTHR_state); } - _integTHR_state = integ_max; } else { _integTHR_state = constrain_float(_integTHR_state, integ_min, integ_max); } @@ -827,7 +826,12 @@ void AP_TECS::_update_throttle_with_airspeed(void) #endif } - // Constrain throttle demand and record clipping + constrain_throttle(); + +} + +// Constrain throttle demand and record clipping +void AP_TECS::constrain_throttle() { if (_throttle_dem > _THRmaxf) { _thr_clip_status = clipStatus::MAX; _throttle_dem = _THRmaxf; @@ -843,9 +847,7 @@ float AP_TECS::_get_i_gain(void) { float i_gain = _integGain; if (_flight_stage == AP_FixedWing::FlightStage::TAKEOFF || _flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING) { - if (!is_zero(_integGain_takeoff)) { - i_gain = _integGain_takeoff; - } + i_gain = _integGain_takeoff; } else if (_flags.is_doing_auto_land) { if (!is_zero(_integGain_land)) { i_gain = _integGain_land; @@ -893,18 +895,6 @@ void AP_TECS::_update_throttle_without_airspeed(int16_t throttle_nudge, float pi _throttle_dem = nomThr; } - if (_flight_stage == AP_FixedWing::FlightStage::TAKEOFF) { - const uint32_t now = AP_HAL::millis(); - if (_takeoff_start_ms == 0) { - _takeoff_start_ms = now; - } - const uint32_t dt = now - _takeoff_start_ms; - if (dt*0.001 < aparm.takeoff_throttle_max_t) { - _throttle_dem = _THRmaxf; - } - } else { - _takeoff_start_ms = 0; - } if (_flags.is_gliding) { _throttle_dem = 0.0f; return; @@ -918,6 +908,8 @@ void AP_TECS::_update_throttle_without_airspeed(int16_t throttle_nudge, float pi float cosPhi = sqrtf((rotMat.a.y*rotMat.a.y) + (rotMat.b.y*rotMat.b.y)); float STEdot_dem = _rollComp * (1.0f/constrain_float(cosPhi * cosPhi, 0.1f, 1.0f) - 1.0f); _throttle_dem = _throttle_dem + STEdot_dem / (_STEdot_max - _STEdot_min) * (_THRmaxf - _THRminf); + + constrain_throttle(); } void AP_TECS::_detect_bad_descent(void) @@ -1088,17 +1080,17 @@ void AP_TECS::_update_pitch(void) // @Field: PEW: Potential energy weighting // @Field: KEW: Kinetic energy weighting // @Field: EBD: Energy balance demand - // @Field: EBE: Energy balance error + // @Field: EBE: Energy balance estimate // @Field: EBDD: Energy balance rate demand - // @Field: EBDE: Energy balance rate error + // @Field: EBDE: Energy balance rate estimate // @Field: EBDDT: Energy balance rate demand + Energy balance rate error*pitch_damping // @Field: Imin: Minimum integrator value // @Field: Imax: Maximum integrator value // @Field: I: Energy balance error integral // @Field: KI: Pitch demand kinetic energy integral - // @Field: pmin: Pitch min - // @Field: pmax: Pitch max - AP::logger().WriteStreaming("TEC2","TimeUS,PEW,KEW,EBD,EBE,EBDD,EBDE,EBDDT,Imin,Imax,I,KI,pmin,pmax", + // @Field: tmin: Throttle min + // @Field: tmax: Throttle max + AP::logger().WriteStreaming("TEC2","TimeUS,PEW,KEW,EBD,EBE,EBDD,EBDE,EBDDT,Imin,Imax,I,KI,tmin,tmax", "Qfffffffffffff", AP_HAL::micros64(), (double)SPE_weighting, @@ -1112,8 +1104,8 @@ void AP_TECS::_update_pitch(void) (double)integSEBdot_max, (double)_integSEBdot, (double)_integKE, - (double)_PITCHminf, - (double)_PITCHmaxf); + (double)_THRminf, + (double)_THRmaxf); } #endif } @@ -1172,22 +1164,25 @@ void AP_TECS::_initialise_states(int32_t ptchMinCO_cd, float hgt_afe) _hgt_dem = hgt_afe; _hgt_dem_in_prev = hgt_afe; _hgt_dem_in_raw = hgt_afe; - _TAS_dem_adj = _TAS_dem; - _flags.reset = true; - _post_TO_hgt_offset = _climb_rate * _hgt_dem_tconst; _flags.underspeed = false; _flags.badDescent = false; - + _post_TO_hgt_offset = _climb_rate_limit * _hgt_dem_tconst; // Replacement prevents oscillating hgt_rate_dem. + _TAS_dem_adj = _TAS_dem; _max_climb_scaler = 1.0f; _max_sink_scaler = 1.0f; - _pitch_demand_lpf.reset(_ahrs.get_pitch()); _pitch_measured_lpf.reset(_ahrs.get_pitch()); + + if (!_flag_have_reset_after_takeoff) { + _flags.reset = true; + _flag_have_reset_after_takeoff = true; + } } if (_flight_stage != AP_FixedWing::FlightStage::TAKEOFF && _flight_stage != AP_FixedWing::FlightStage::ABORT_LANDING) { // reset takeoff speed flag when not in takeoff _flags.reached_speed_takeoff = false; + _flag_have_reset_after_takeoff = false; } } @@ -1252,16 +1247,8 @@ void AP_TECS::update_pitch_throttle(int32_t hgt_dem_cm, _hgt_dem_in = _hgt_dem_in_raw; } - if (aparm.takeoff_throttle_max != 0 && - (_flight_stage == AP_FixedWing::FlightStage::TAKEOFF || _flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING)) { - _THRmaxf = aparm.takeoff_throttle_max * 0.01f; - } else { - _THRmaxf = aparm.throttle_max * 0.01f; - } - _THRminf = aparm.throttle_min * 0.01f; - - // min of 1% throttle range to prevent a numerical error - _THRmaxf = MAX(_THRmaxf, _THRminf+0.01); + // Update the throttle limits. + _update_throttle_limits(); // work out the maximum and minimum pitch // if TECS_PITCH_{MAX,MIN} isn't set then use @@ -1312,9 +1299,6 @@ void AP_TECS::update_pitch_throttle(int32_t hgt_dem_cm, // note that this allows a flare pitch outside the normal TECS auto limits _PITCHmaxf = _land_pitch_max; } - - // and allow zero throttle - _THRminf = 0; } else if (_landing.is_on_approach()) { _PITCHminf = MAX(_PITCHminf, aparm.pitch_limit_min); _pitch_min_at_flare_entry = _PITCHminf; @@ -1339,7 +1323,7 @@ void AP_TECS::update_pitch_throttle(int32_t hgt_dem_cm, } if (flight_stage == AP_FixedWing::FlightStage::TAKEOFF || flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING) { - if (!_flags.reached_speed_takeoff && _TAS_state >= _TAS_dem_adj) { + if (!_flags.reached_speed_takeoff && _TAS_state >= _TASmin && _TASmin > 0) { // we have reached our target speed in takeoff, allow for // normal throttle control _flags.reached_speed_takeoff = true; @@ -1440,3 +1424,79 @@ void AP_TECS::update_pitch_throttle(int32_t hgt_dem_cm, } #endif } + +// set minimum throttle override, [-1, -1] range +// it is applicable for one control cycle only +void AP_TECS::set_throttle_min(const float thr_min) { + // Don't change the limit if it is already covered. + if (thr_min > _THRminf_ext) { + _THRminf_ext = thr_min; + } +} + +// set minimum throttle override, [0, -1] range +// it is applicable for one control cycle only +void AP_TECS::set_throttle_max(const float thr_max) { + // Don't change the limit if it is already covered. + if (thr_max < _THRmaxf_ext) { + _THRmaxf_ext = thr_max; + } +} + +void AP_TECS::_update_throttle_limits() { + + // Configure max throttle. + + // Read the maximum throttle limit. + _THRmaxf = aparm.throttle_max * 0.01f; + // If more max throttle is allowed during takeoff, use it. + if (aparm.takeoff_throttle_max*0.01f > _THRmaxf + && (_flight_stage == AP_FixedWing::FlightStage::TAKEOFF || _flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING) + ) { + _THRmaxf = aparm.takeoff_throttle_max * 0.01f; + } + // In any case, constrain to the external safety limits. + _THRmaxf = MIN(_THRmaxf, _THRmaxf_ext); + + // Configure min throttle. + + // If less min throttle is allowed during takeoff, use it. + bool use_takeoff_throttle = _flight_stage == AP_FixedWing::FlightStage::TAKEOFF || _flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING; + use_takeoff_throttle = use_takeoff_throttle && (aparm.takeoff_mode == 1) && (aparm.takeoff_throttle_min != 0); + if ( use_takeoff_throttle ) { + _THRminf = MIN(_THRminf, aparm.takeoff_throttle_min * 0.01f); + } + else { // Otherwise, during normal situations let regular limit. + _THRminf = aparm.throttle_min * 0.01f; + } + // Raise min to force max throttle for TKOFF_THR_MAX_T after a takeoff. + if (_flight_stage == AP_FixedWing::FlightStage::TAKEOFF) { + const uint32_t now = AP_HAL::millis(); + if (_takeoff_start_ms == 0) { + _takeoff_start_ms = now; + } + const uint32_t dt = now - _takeoff_start_ms; + if (dt*0.001 < aparm.takeoff_throttle_max_t) { + _THRminf = _THRmaxf; + } + } else { + _takeoff_start_ms = 0; + } + // If we are flaring, allow the throttle to go to 0. + if (_landing.is_flaring()) { + _THRminf = 0; + } + // In any case, constrain to the external safety limits. + _THRminf = MAX(_THRminf, _THRminf_ext); + + // Allow a minimum of 1% throttle range, primarily to prevent TECS numerical errors. + if (_THRmaxf < 1) { + _THRmaxf = MAX(_THRmaxf, _THRminf + 0.01f); + } else { + _THRminf = MIN(_THRminf, _THRmaxf - 0.01f); + } + + // Reset the external throttle limits. + _THRminf_ext = -1.0f; + _THRmaxf_ext = 1.0f; +} \ No newline at end of file diff --git a/libraries/AP_TECS/AP_TECS.h b/libraries/AP_TECS/AP_TECS.h index fcd3fe97f9bfe..8ffff211fbf03 100644 --- a/libraries/AP_TECS/AP_TECS.h +++ b/libraries/AP_TECS/AP_TECS.h @@ -134,6 +134,14 @@ class AP_TECS { _pitch_max_limit = pitch_limit; } + // set minimum throttle override, [-1, -1] range + // it is applicable for one control cycle only + void set_throttle_min(const float thr_min); + + // set minimum throttle override, [0, -1] range + // it is applicable for one control cycle only + void set_throttle_max(const float thr_max); + // force use of synthetic airspeed for one loop void use_synthetic_airspeed(void) { _use_synthetic_airspeed_once = true; @@ -360,6 +368,9 @@ class AP_TECS { // Maximum and minimum floating point throttle limits float _THRmaxf; float _THRminf; + // Maximum and minimum throttle safety limits, set externally, typically by servos.cpp:apply_throttle_limits() + float _THRmaxf_ext = 1.0f; + float _THRminf_ext = -1.0f; // Maximum and minimum floating point pitch limits float _PITCHmaxf; @@ -419,6 +430,9 @@ class AP_TECS { // need to reset on next loop bool _need_reset; + // Checks if we reset at the beginning of takeoff. + bool _flag_have_reset_after_takeoff; + float _SKE_weighting; AP_Int8 _use_synthetic_airspeed; @@ -458,6 +472,9 @@ class AP_TECS { // Update Demanded Throttle Non-Airspeed void _update_throttle_without_airspeed(int16_t throttle_nudge, float pitch_trim_deg); + // Constrain throttle demand and record clipping + void constrain_throttle(); + // get integral gain which is flight_stage dependent float _get_i_gain(void); @@ -478,4 +495,7 @@ class AP_TECS { // current time constant float timeConstant(void) const; + + // Update the allowable throttle range. + void _update_throttle_limits(); }; diff --git a/libraries/AP_Vehicle/AP_FixedWing.h b/libraries/AP_Vehicle/AP_FixedWing.h index df3692a61b655..ee51dcf1cdc12 100644 --- a/libraries/AP_Vehicle/AP_FixedWing.h +++ b/libraries/AP_Vehicle/AP_FixedWing.h @@ -11,6 +11,8 @@ struct AP_FixedWing { AP_Int8 throttle_slewrate; AP_Int8 throttle_cruise; AP_Int8 takeoff_throttle_max; + AP_Int8 takeoff_throttle_min; + AP_Int8 takeoff_mode; AP_Int16 airspeed_min; AP_Int16 airspeed_max; AP_Float airspeed_cruise; From 773c91cec11cf61e6d97f3a80f120abb733a7488 Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Fri, 24 May 2024 11:38:42 +0200 Subject: [PATCH 217/232] ArduPlane: Added minimum throttle during TAKEOFF mode This is a rework so that servos.cpp is responsible for setting the throttle limits under more circumstances and always notifies TECS when it does so. Additionally, the TAKEOFF mode has been improved with a new parameters TKOFF_MODE and TKOFF_THR_MIN that extend the throttle behaviour. --- ArduPlane/Attitude.cpp | 5 +++++ ArduPlane/Parameters.cpp | 18 ++++++++++++++++- ArduPlane/Parameters.h | 2 ++ ArduPlane/Plane.h | 1 + ArduPlane/altitude.cpp | 4 ++-- ArduPlane/commands_logic.cpp | 2 +- ArduPlane/mode_takeoff.cpp | 10 ++++----- ArduPlane/servos.cpp | 39 +++++++++++++++++++++++++++++------- ArduPlane/takeoff.cpp | 23 ++++++++++++++++++++- 9 files changed, 87 insertions(+), 17 deletions(-) diff --git a/ArduPlane/Attitude.cpp b/ArduPlane/Attitude.cpp index 0996a50b725ab..788fe97dbada6 100644 --- a/ArduPlane/Attitude.cpp +++ b/ArduPlane/Attitude.cpp @@ -448,6 +448,10 @@ void Plane::stabilize() } +/* + * Set the throttle output. + * This is called by TECS-enabled flight modes, e.g. AUTO, GUIDED, etc. +*/ void Plane::calc_throttle() { if (aparm.throttle_cruise <= 1) { @@ -458,6 +462,7 @@ void Plane::calc_throttle() return; } + // Read the TECS throttle output and set it to the throttle channel. float commanded_throttle = TECS_controller.get_throttle_demand(); SRV_Channels::set_output_scaled(SRV_Channel::k_throttle, commanded_throttle); } diff --git a/ArduPlane/Parameters.cpp b/ArduPlane/Parameters.cpp index 7ff30ad427717..8c1c40e4f1144 100644 --- a/ArduPlane/Parameters.cpp +++ b/ArduPlane/Parameters.cpp @@ -142,12 +142,28 @@ const AP_Param::Info Plane::var_info[] = { // @Param: TKOFF_THR_MAX_T // @DisplayName: Takeoff throttle maximum time - // @Description: This sets the time that maximum throttle will be forced during a fixed wing takeoff without an airspeed sensor. If an airspeed sensor is being used then the throttle is set to maximum until the takeoff airspeed is reached. + // @Description: This sets the time that maximum throttle will be forced during a fixed wing takeoff. // @Units: s // @Range: 0 10 // @Increment: 0.5 // @User: Standard ASCALAR(takeoff_throttle_max_t, "TKOFF_THR_MAX_T", 4), + + // @Param: TKOFF_THR_MIN + // @DisplayName: Takeoff minimum throttle + // @Description: The minimum throttle to use in takeoffs in AUTO and TAKEOFF flight modes, when TKOFF_MODE=1. Also, the minimum throttle to use in a quadpane forward transition. This can be useful to ensure faster takeoffs or transitions on aircraft where the normal throttle control leads to a slow takeoff or transition. It is used when it is larger than THR_MIN, otherwise THR_MIN is used instead. + // @Units: % + // @Range: 0 100 + // @Increment: 1 + // @User: Standard + ASCALAR(takeoff_throttle_min, "TKOFF_THR_MIN", 60), + + // @Param: TKOFF_MODE + // @DisplayName: Takeoff mode + // @Description: This selects the mode of the takeoff in AUTO and TAKEOFF flight modes. 0: During the takeoff, the maximum allowed throttle is always used (THR_MAX or TKOFF_THR_MAX). 1: During the takeoff TECS is allowed to operate between a minimum (THR_MIN or TKOFF_THR_MIN) and a maximum (THR_MAX or TKOFF_THR_MAX) limit. Applicable only when using an airspeed sensor. + // @Values: 0:Traditional,1:Throttle range + // @User: Advanced + ASCALAR(takeoff_mode, "TKOFF_MODE", 0), // @Param: TKOFF_TDRAG_ELEV // @DisplayName: Takeoff tail dragger elevator diff --git a/ArduPlane/Parameters.h b/ArduPlane/Parameters.h index de514b891532c..f041ef7668377 100644 --- a/ArduPlane/Parameters.h +++ b/ArduPlane/Parameters.h @@ -357,6 +357,8 @@ class Parameters { k_param_acro_yaw_rate, k_param_takeoff_throttle_max_t, k_param_autotune_options, + k_param_takeoff_throttle_min, + k_param_takeoff_mode, }; AP_Int16 format_version; diff --git a/ArduPlane/Plane.h b/ArduPlane/Plane.h index 443f2d56a1fb4..10bca62c8a7b8 100644 --- a/ArduPlane/Plane.h +++ b/ArduPlane/Plane.h @@ -1117,6 +1117,7 @@ class Plane : public AP_Vehicle { bool auto_takeoff_check(void); void takeoff_calc_roll(void); void takeoff_calc_pitch(void); + void takeoff_calc_throttle(const bool use_max_throttle=false); int8_t takeoff_tail_hold(void); int16_t get_takeoff_pitch_min_cd(void); void landing_gear_update(void); diff --git a/ArduPlane/altitude.cpp b/ArduPlane/altitude.cpp index 6e32f619439d5..5b845f38a8664 100644 --- a/ArduPlane/altitude.cpp +++ b/ArduPlane/altitude.cpp @@ -520,9 +520,9 @@ int32_t Plane::adjusted_altitude_cm(void) } /* - return home-relative altitude adjusted for ALT_OFFSET This is useful + return home-relative altitude adjusted for ALT_OFFSET. This is useful during long flights to account for barometer changes from the GCS, - or to adjust the flying height of a long mission + or to adjust the flying height of a long mission. */ int32_t Plane::adjusted_relative_altitude_cm(void) { diff --git a/ArduPlane/commands_logic.cpp b/ArduPlane/commands_logic.cpp index 57969f17ce8a4..a843901b34fb4 100644 --- a/ArduPlane/commands_logic.cpp +++ b/ArduPlane/commands_logic.cpp @@ -376,7 +376,7 @@ void Plane::do_takeoff(const AP_Mission::Mission_Command& cmd) next_WP_loc.lat = home.lat + 10; next_WP_loc.lng = home.lng + 10; auto_state.takeoff_speed_time_ms = 0; - auto_state.takeoff_complete = false; // set flag to use gps ground course during TO. IMU will be doing yaw drift correction + auto_state.takeoff_complete = false; // set flag to use gps ground course during TO. IMU will be doing yaw drift correction. auto_state.height_below_takeoff_to_level_off_cm = 0; // Flag also used to override "on the ground" throttle disable diff --git a/ArduPlane/mode_takeoff.cpp b/ArduPlane/mode_takeoff.cpp index 0854e512450a9..325e8cab2db2d 100644 --- a/ArduPlane/mode_takeoff.cpp +++ b/ArduPlane/mode_takeoff.cpp @@ -22,11 +22,11 @@ const AP_Param::GroupInfo ModeTakeoff::var_info[] = { // @Increment: 1 // @Units: m // @User: Standard - AP_GROUPINFO("LVL_ALT", 2, ModeTakeoff, level_alt, 5), + AP_GROUPINFO("LVL_ALT", 2, ModeTakeoff, level_alt, 10), // @Param: LVL_PITCH // @DisplayName: Takeoff mode altitude initial pitch - // @Description: This is the target pitch for the initial climb to TKOFF_LVL_ALT + // @Description: This is the target pitch during the takeoff. // @Range: 0 30 // @Increment: 1 // @Units: deg @@ -149,11 +149,11 @@ void ModeTakeoff::update() if (plane.flight_stage == AP_FixedWing::FlightStage::TAKEOFF) { //below TAKOFF_LVL_ALT - SRV_Channels::set_output_scaled(SRV_Channel::k_throttle, 100.0); plane.takeoff_calc_roll(); plane.takeoff_calc_pitch(); + plane.takeoff_calc_throttle(true); } else { - if ((altitude_cm >= alt * 100 - 200)) { //within 2m of TKOFF_ALT ,or above and loitering + if ((altitude_cm >= alt * 100 - 200)) { //within 2m of TKOFF_ALT, or above and loitering #if AP_FENCE_ENABLED if (!plane.have_autoenabled_fences) { plane.fence.auto_enable_fence_after_takeoff(); @@ -164,7 +164,7 @@ void ModeTakeoff::update() plane.calc_nav_pitch(); plane.calc_throttle(); } else { // still climbing to TAKEOFF_ALT; may be loitering - plane.calc_throttle(); + plane.takeoff_calc_throttle(); plane.takeoff_calc_roll(); plane.takeoff_calc_pitch(); } diff --git a/ArduPlane/servos.cpp b/ArduPlane/servos.cpp index cc4d4dde104e3..6ac1baba77c53 100644 --- a/ArduPlane/servos.cpp +++ b/ArduPlane/servos.cpp @@ -499,47 +499,72 @@ void Plane::throttle_watt_limiter(int8_t &min_throttle, int8_t &max_throttle) #endif // #if AP_BATTERY_WATT_MAX_ENABLED /* - Apply min/max limits to throttle + Apply min/max safety limits to throttle. */ float Plane::apply_throttle_limits(float throttle_in) { - // convert 0 to 100% (or -100 to +100) into PWM + // Pull the base throttle limits. + // These are usually set to map the ESC operating range. int8_t min_throttle = aparm.throttle_min.get(); int8_t max_throttle = aparm.throttle_max.get(); #if AP_ICENGINE_ENABLED - // apply idle governor + // Apply idle governor. g2.ice_control.update_idle_governor(min_throttle); #endif + // If reverse thrust is enabled not allowed right now, the minimum throttle must not fall below 0. if (min_throttle < 0 && !allow_reverse_thrust()) { // reverse thrust is available but inhibited. min_throttle = 0; } - const bool use_takeoff_throttle_max = + // Query the conditions where TKOFF_THR_MAX applies. + const bool use_takeoff_throttle = #if HAL_QUADPLANE_ENABLED quadplane.in_transition() || #endif (flight_stage == AP_FixedWing::FlightStage::TAKEOFF) || (flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING); - if (use_takeoff_throttle_max) { + if (use_takeoff_throttle) { if (aparm.takeoff_throttle_max != 0) { + // Replace max throttle with the takeoff max throttle setting. + // This is typically done to protect against long intervals of large power draw. + // Or (in contrast) to give some extra throttle during the initial climb. max_throttle = aparm.takeoff_throttle_max.get(); } + // Do not allow min throttle to go below a lower threshold. + // This is typically done to protect against premature stalls close to the ground. + if (aparm.takeoff_mode.get() == 0 || !ahrs.using_airspeed_sensor()) { + // Use a constant max throttle throughout the takeoff or when airspeed readings are not available. + min_throttle = MAX(min_throttle, aparm.takeoff_throttle_max.get()); + } else if (aparm.takeoff_mode.get() == 1) { // Use a throttle range through the takeoff. + if (aparm.takeoff_throttle_min.get() != 0) { // This is enabled by TKOFF_MODE==1. + min_throttle = MAX(min_throttle, aparm.takeoff_throttle_min.get()); + } + } } else if (landing.is_flaring()) { + // Allow throttle cutoff when flaring. + // This is to allow the aircraft to bleed speed faster and land with a shut off thruster. min_throttle = 0; } - // compensate for battery voltage drop + // Compensate the limits for battery voltage drop. + // This relaxes the limits when the battery is getting depleted. g2.fwd_batt_cmp.apply_min_max(min_throttle, max_throttle); #if AP_BATTERY_WATT_MAX_ENABLED - // apply watt limiter + // Ensure that the power draw limits are not exceeded. throttle_watt_limiter(min_throttle, max_throttle); #endif + // Do a sanity check on them. Constrain down if necessary. + min_throttle = MIN(min_throttle, max_throttle); + + // Let TECS know about the updated throttle limits. + TECS_controller.set_throttle_min(0.01f*min_throttle); + TECS_controller.set_throttle_max(0.01f*max_throttle); return constrain_float(throttle_in, min_throttle, max_throttle); } diff --git a/ArduPlane/takeoff.cpp b/ArduPlane/takeoff.cpp index faa220412fd91..d6e8ddc4f533d 100644 --- a/ArduPlane/takeoff.cpp +++ b/ArduPlane/takeoff.cpp @@ -219,7 +219,28 @@ void Plane::takeoff_calc_pitch(void) } /* - * get the pitch min used during takeoff. This matches the mission pitch until near the end where it allows it to levels off + * Set the throttle limits to run at during a takeoff. + */ +void Plane::takeoff_calc_throttle(const bool use_max_throttle) { + // This setting will take effect at the next run of TECS::update_pitch_throttle(). + + // Set the maximum throttle limit. + if (aparm.takeoff_throttle_max != 0) { + TECS_controller.set_throttle_max(0.01f*aparm.takeoff_throttle_max); + } + + // Set the minimum throttle limit. + if (aparm.takeoff_mode==0 || !ahrs.using_airspeed_sensor() || use_max_throttle) { // Traditional takeoff throttle limit. + TECS_controller.set_throttle_min(0.01f*aparm.takeoff_throttle_max); + } else { // TKOFF_MODE == 1, allow for a throttle range. + if (aparm.takeoff_throttle_min != 0) { // Override THR_MIN. + TECS_controller.set_throttle_min(0.01f*aparm.takeoff_throttle_min); + } + } + calc_throttle(); +} + +/* get the pitch min used during takeoff. This matches the mission pitch until near the end where it allows it to levels off */ int16_t Plane::get_takeoff_pitch_min_cd(void) { From c213ee2ef831ac0e6c37fc11e0c825f19f7f1592 Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Thu, 25 Jul 2024 21:28:59 +0200 Subject: [PATCH 218/232] Plane: Converted paramter TKOFF_MODE into TKOFF_OPTIONS --- ArduPlane/Parameters.cpp | 12 ++++++------ ArduPlane/Parameters.h | 2 +- ArduPlane/servos.cpp | 5 +++-- ArduPlane/takeoff.cpp | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ArduPlane/Parameters.cpp b/ArduPlane/Parameters.cpp index 8c1c40e4f1144..cc6bc6e6ee626 100644 --- a/ArduPlane/Parameters.cpp +++ b/ArduPlane/Parameters.cpp @@ -151,19 +151,19 @@ const AP_Param::Info Plane::var_info[] = { // @Param: TKOFF_THR_MIN // @DisplayName: Takeoff minimum throttle - // @Description: The minimum throttle to use in takeoffs in AUTO and TAKEOFF flight modes, when TKOFF_MODE=1. Also, the minimum throttle to use in a quadpane forward transition. This can be useful to ensure faster takeoffs or transitions on aircraft where the normal throttle control leads to a slow takeoff or transition. It is used when it is larger than THR_MIN, otherwise THR_MIN is used instead. + // @Description: The minimum throttle to use in takeoffs in AUTO and TAKEOFF flight modes, when TKOFF_OPTIONS bit 0 is set. Also, the minimum throttle to use in a quadpane forward transition. This can be useful to ensure faster takeoffs or transitions on aircraft where the normal throttle control leads to a slow takeoff or transition. It is used when it is larger than THR_MIN, otherwise THR_MIN is used instead. // @Units: % // @Range: 0 100 // @Increment: 1 // @User: Standard ASCALAR(takeoff_throttle_min, "TKOFF_THR_MIN", 60), - // @Param: TKOFF_MODE - // @DisplayName: Takeoff mode - // @Description: This selects the mode of the takeoff in AUTO and TAKEOFF flight modes. 0: During the takeoff, the maximum allowed throttle is always used (THR_MAX or TKOFF_THR_MAX). 1: During the takeoff TECS is allowed to operate between a minimum (THR_MIN or TKOFF_THR_MIN) and a maximum (THR_MAX or TKOFF_THR_MAX) limit. Applicable only when using an airspeed sensor. - // @Values: 0:Traditional,1:Throttle range + // @Param: TKOFF_OPTIONS + // @DisplayName: Takeoff options + // @Description: This selects the mode of the takeoff in AUTO and TAKEOFF flight modes. + // @Bitmask: 0: When unset the maximum allowed throttle is always used (THR_MAX or TKOFF_THR_MAX) during takeoff. When set TECS is allowed to operate between a minimum (THR_MIN or TKOFF_THR_MIN) and a maximum (THR_MAX or TKOFF_THR_MAX) limit. Applicable only when using an airspeed sensor. // @User: Advanced - ASCALAR(takeoff_mode, "TKOFF_MODE", 0), + ASCALAR(takeoff_options, "TKOFF_OPTIONS", 0), // @Param: TKOFF_TDRAG_ELEV // @DisplayName: Takeoff tail dragger elevator diff --git a/ArduPlane/Parameters.h b/ArduPlane/Parameters.h index f041ef7668377..c06fcbafc0a07 100644 --- a/ArduPlane/Parameters.h +++ b/ArduPlane/Parameters.h @@ -358,7 +358,7 @@ class Parameters { k_param_takeoff_throttle_max_t, k_param_autotune_options, k_param_takeoff_throttle_min, - k_param_takeoff_mode, + k_param_takeoff_options, }; AP_Int16 format_version; diff --git a/ArduPlane/servos.cpp b/ArduPlane/servos.cpp index 6ac1baba77c53..ab3dd86ae2508 100644 --- a/ArduPlane/servos.cpp +++ b/ArduPlane/servos.cpp @@ -536,10 +536,11 @@ float Plane::apply_throttle_limits(float throttle_in) } // Do not allow min throttle to go below a lower threshold. // This is typically done to protect against premature stalls close to the ground. - if (aparm.takeoff_mode.get() == 0 || !ahrs.using_airspeed_sensor()) { + const bool use_throttle_range = (aparm.takeoff_options & (uint32_t)AP_FixedWing::TakeoffOption::THROTTLE_RANGE); + if (!use_throttle_range || !ahrs.using_airspeed_sensor()) { // Use a constant max throttle throughout the takeoff or when airspeed readings are not available. min_throttle = MAX(min_throttle, aparm.takeoff_throttle_max.get()); - } else if (aparm.takeoff_mode.get() == 1) { // Use a throttle range through the takeoff. + } else if (use_throttle_range) { // Use a throttle range through the takeoff. if (aparm.takeoff_throttle_min.get() != 0) { // This is enabled by TKOFF_MODE==1. min_throttle = MAX(min_throttle, aparm.takeoff_throttle_min.get()); } diff --git a/ArduPlane/takeoff.cpp b/ArduPlane/takeoff.cpp index d6e8ddc4f533d..d45651fbfe885 100644 --- a/ArduPlane/takeoff.cpp +++ b/ArduPlane/takeoff.cpp @@ -230,7 +230,8 @@ void Plane::takeoff_calc_throttle(const bool use_max_throttle) { } // Set the minimum throttle limit. - if (aparm.takeoff_mode==0 || !ahrs.using_airspeed_sensor() || use_max_throttle) { // Traditional takeoff throttle limit. + const bool use_throttle_range = (aparm.takeoff_options & (uint32_t)AP_FixedWing::TakeoffOption::THROTTLE_RANGE); + if (!use_throttle_range || !ahrs.using_airspeed_sensor() || use_max_throttle) { // Traditional takeoff throttle limit. TECS_controller.set_throttle_min(0.01f*aparm.takeoff_throttle_max); } else { // TKOFF_MODE == 1, allow for a throttle range. if (aparm.takeoff_throttle_min != 0) { // Override THR_MIN. From e227187e72a1c277576df57e1e413a7b2bbce187 Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Thu, 25 Jul 2024 21:29:22 +0200 Subject: [PATCH 219/232] AP_TECS: Converted parameter TKOFF_MODE to TKOFF_OPTIONS --- libraries/AP_TECS/AP_TECS.cpp | 3 ++- libraries/AP_Vehicle/AP_FixedWing.h | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/AP_TECS/AP_TECS.cpp b/libraries/AP_TECS/AP_TECS.cpp index 9d1d00e460e71..e3843a02aeabc 100644 --- a/libraries/AP_TECS/AP_TECS.cpp +++ b/libraries/AP_TECS/AP_TECS.cpp @@ -1462,7 +1462,8 @@ void AP_TECS::_update_throttle_limits() { // If less min throttle is allowed during takeoff, use it. bool use_takeoff_throttle = _flight_stage == AP_FixedWing::FlightStage::TAKEOFF || _flight_stage == AP_FixedWing::FlightStage::ABORT_LANDING; - use_takeoff_throttle = use_takeoff_throttle && (aparm.takeoff_mode == 1) && (aparm.takeoff_throttle_min != 0); + const bool use_throttle_range = (aparm.takeoff_options & (uint32_t)AP_FixedWing::TakeoffOption::THROTTLE_RANGE); + use_takeoff_throttle = use_takeoff_throttle && (use_throttle_range == 1) && (aparm.takeoff_throttle_min != 0); if ( use_takeoff_throttle ) { _THRminf = MIN(_THRminf, aparm.takeoff_throttle_min * 0.01f); } diff --git a/libraries/AP_Vehicle/AP_FixedWing.h b/libraries/AP_Vehicle/AP_FixedWing.h index ee51dcf1cdc12..722c53dcaf9af 100644 --- a/libraries/AP_Vehicle/AP_FixedWing.h +++ b/libraries/AP_Vehicle/AP_FixedWing.h @@ -12,7 +12,7 @@ struct AP_FixedWing { AP_Int8 throttle_cruise; AP_Int8 takeoff_throttle_max; AP_Int8 takeoff_throttle_min; - AP_Int8 takeoff_mode; + AP_Int32 takeoff_options; AP_Int16 airspeed_min; AP_Int16 airspeed_max; AP_Float airspeed_cruise; @@ -51,4 +51,9 @@ struct AP_FixedWing { LAND = 4, ABORT_LANDING = 7 }; + + // Bitfields of TKOFF_OPTIONS + enum class TakeoffOption { + THROTTLE_RANGE = (1U << 0), // Unset: Max throttle. Set: Throttle range. + }; }; From b5c91a16908804290efa6ca3efaf4a448041424e Mon Sep 17 00:00:00 2001 From: George Zogopoulos Date: Thu, 25 Jul 2024 21:29:35 +0200 Subject: [PATCH 220/232] autotest: Converted parameter TKOFF_MODE to TKOFF_OPTIONS --- Tools/autotest/arduplane.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Tools/autotest/arduplane.py b/Tools/autotest/arduplane.py index 45a8f9ddf97c0..2af157ab9c8ce 100644 --- a/Tools/autotest/arduplane.py +++ b/Tools/autotest/arduplane.py @@ -4376,7 +4376,7 @@ def TakeoffAuto1(self): Conditions: - ARSPD_USE=1 - - TKOFF_TYPE=0 + - TKOFF_OPTIONS[0]=0 - TKOFF_THR_MAX < THR_MAX ''' @@ -4421,7 +4421,7 @@ def TakeoffAuto2(self): Conditions: - ARSPD_USE=1 - - TKOFF_MODE=0 + - TKOFF_OPTIONS[0]=0 - TKOFF_THR_MAX > THR_MAX ''' @@ -4466,7 +4466,7 @@ def TakeoffAuto3(self): Conditions: - ARSPD_USE=1 - - TKOFF_MODE=1 + - TKOFF_OPTIONS[0]=1 ''' self.customise_SITL_commandline( @@ -4478,7 +4478,7 @@ def TakeoffAuto3(self): "ARSPD_USE": 1.0, "THR_MAX": 80.0, "THR_MIN": 0.0, - "TKOFF_MODE": 1.0, + "TKOFF_OPTIONS": 1.0, "TKOFF_THR_MAX": 100.0, "TKOFF_THR_MINACC": 3.0, "TECS_PITCH_MAX": 35.0, @@ -4515,7 +4515,7 @@ def TakeoffAuto4(self): Conditions: - ARSPD_USE=0 - - TKOFF_MODE=1 + - TKOFF_OPTIONS[0]=1 ''' self.customise_SITL_commandline( @@ -4527,7 +4527,7 @@ def TakeoffAuto4(self): "ARSPD_USE": 0.0, "THR_MAX": 80.0, "THR_MIN": 0.0, - "TKOFF_MODE": 1.0, + "TKOFF_OPTIONS": 1.0, "TKOFF_THR_MAX": 100.0, "TKOFF_THR_MINACC": 3.0, "TECS_PITCH_MAX": 35.0, @@ -4566,7 +4566,7 @@ def TakeoffTakeoff1(self): Conditions: - ARSPD_USE=1 - - TKOFF_MODE=0 + - TKOFF_OPTIONS[0]=0 - TKOFF_THR_MAX < THR_MAX ''' @@ -4580,7 +4580,7 @@ def TakeoffTakeoff1(self): "THR_MAX": 100.0, "TKOFF_LVL_ALT": 30.0, "TKOFF_ALT": 100.0, - "TKOFF_MODE": 0.0, + "TKOFF_OPTIONS": 0.0, "TKOFF_THR_MINACC": 3.0, "TKOFF_THR_MAX": 80.0, "TECS_PITCH_MAX": 35.0, @@ -4616,7 +4616,7 @@ def TakeoffTakeoff2(self): Conditions: - ARSPD_USE=1 - - TKOFF_MODE=1 + - TKOFF_OPTIONS[0]=1 - TKOFF_THR_MAX < THR_MAX ''' @@ -4630,7 +4630,7 @@ def TakeoffTakeoff2(self): "THR_MAX": 100.0, "TKOFF_LVL_ALT": 80.0, "TKOFF_ALT": 150.0, - "TKOFF_MODE": 1.0, + "TKOFF_OPTIONS": 1.0, "TKOFF_THR_MINACC": 3.0, "TKOFF_THR_MAX": 80.0, "TECS_PITCH_MAX": 35.0, @@ -4669,7 +4669,7 @@ def TakeoffTakeoff3(self): Conditions: - ARSPD_USE=0 - - TKOFF_MODE=0 + - TKOFF_OPTIONS[0]=0 - TKOFF_THR_MAX < THR_MAX ''' @@ -4683,7 +4683,7 @@ def TakeoffTakeoff3(self): "THR_MAX": 100.0, "TKOFF_LVL_ALT": 30.0, "TKOFF_ALT": 100.0, - "TKOFF_MODE": 0.0, + "TKOFF_OPTIONS": 0.0, "TKOFF_THR_MINACC": 3.0, "TKOFF_THR_MAX": 80.0, "TECS_PITCH_MAX": 35.0, From d4ca5fe8687963e65a83044a4858782f818d1f7c Mon Sep 17 00:00:00 2001 From: BLash Date: Wed, 17 Jul 2024 15:30:47 -0500 Subject: [PATCH 221/232] AP_ExternalAHRS_VectorNav: Split IMU and EKF message In AHRS Mode, split the single message to an IMU packet and an AHRS packet; in EKF Mode, split the two messages into an IMU message, an EKF packet, and a GNSS packet. Simplify message header definition to consolidate and eliminate the need for static asserts Update healthy logic and use to represent new packet structure Replace EAH3 message with messages per-packet Add Ypr as configured output in the EKF message --- .../AP_ExternalAHRS_VectorNav.cpp | 648 +++++++++--------- .../AP_ExternalAHRS_VectorNav.h | 17 +- 2 files changed, 340 insertions(+), 325 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index aef7fe26528a9..aeefe9ff54d45 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -16,6 +16,7 @@ support for serial connected AHRS systems */ +#include #define ALLOW_DOUBLE_MATH_FUNCTIONS #include "AP_ExternalAHRS_config.h" @@ -38,136 +39,138 @@ extern const AP_HAL::HAL &hal; -/* - header for 50Hz INS data - assumes the following config for VN-300: - $VNWRG,75,3,8,34,072E,0106,0612*0C - - 0x34: Groups 3,5,6 - Group 3 (IMU): - 0x072E: - UncompMag - UncompAccel - UncompGyro - Pres - Mag - Accel - AngularRate - Group 5 (Attitude): - 0x0106: - YawPitchRoll - Quaternion - YprU - Group 6 (INS): - 0x0612: - PosLLa - VelNed - PosU - VelU +/* +TYPE::VN_AHRS configures 2 packets: high-rate IMU and mid-rate EKF +Header for IMU packet + $VNWRG,75,3,16,01,0721*D415 + Common group (Group 1) + TimeStartup + AngularRate + Accel + Imu + MagPres +Header for EKF packet + $VNWRG,76,3,16,11,0001,0106*B36B + Common group (Group 1) + TimeStartup + Attitude group (Group 4) + Ypr + Quaternion + YprU */ -static const uint8_t vn_ins_pkt1_header[] { 0x34, 0x2E, 0x07, 0x06, 0x01, 0x12, 0x06 }; -#define VN_INS_PKT1_LENGTH 170 // includes header and CRC -struct PACKED VN_INS_packet1 { - float uncompMag[3]; +struct PACKED VN_IMU_packet { + static constexpr uint8_t header[]{0x01, 0x21, 0x07}; + uint64_t timeStartup; + float gyro[3]; + float accel[3]; float uncompAccel[3]; float uncompAngRate[3]; - float pressure; float mag[3]; - float accel[3]; - float gyro[3]; + float temp; + float pressure; +}; +constexpr uint8_t VN_IMU_packet::header[]; +constexpr uint8_t VN_IMU_LENGTH = sizeof(VN_IMU_packet) + sizeof(VN_IMU_packet::header) + 1 + 2; // Includes sync byte and CRC + +struct PACKED VN_AHRS_ekf_packet { + static constexpr uint8_t header[]{0x11, 0x01, 0x00, 0x06, 0x01}; + uint64_t timeStartup; float ypr[3]; float quaternion[4]; float yprU[3]; - double positionLLA[3]; - float velNED[3]; - float posU; - float velU; }; - -// check packet size for 4 groups -static_assert(sizeof(VN_INS_packet1)+2+3*2+2 == VN_INS_PKT1_LENGTH, "incorrect VN_INS_packet1 length"); +constexpr uint8_t VN_AHRS_ekf_packet::header[]; +constexpr uint8_t VN_AHRS_EKF_LENGTH = sizeof(VN_AHRS_ekf_packet) + sizeof(VN_AHRS_ekf_packet::header) + 1 + 2; // Includes sync byte and CRC /* - header for 5Hz GNSS data - assumes the following VN-300 config: - $VNWRG,76,3,80,4E,0002,0010,20B8,0018*63 - - 0x4E: Groups 2,3,4,7 - Group 2 (Time): - 0x0002: - TimeGps - Group 3 (IMU): - 0x0010: - Temp - Group 4 (GPS1): - 0x20B8: - NumSats - Fix - PosLLa - VelNed - DOP - Group 7 (GPS2): - 0x0018: - NumSats - Fix +TYPE::VN_INS configures 3 packets: high-rate IMU, mid-rate EKF, and 5Hz GNSS +Header for IMU packet + $VNWRG,75,3,16,01,0721*D415 + Common group (Group 1) + TimeStartup + AngularRate + Accel + Imu + MagPres +Header for EKF packet + $VNWRG,76,3,16,31,0001,0106,0613*097A + Common group (Group 1) + TimeStartup + Attitude group (Group 4) + Ypr + Quaternion + YprU + Ins group (Group 5) + InsStatus + PosLla + VelNed + PosU + VelU +Header for GNSS packet + $VNWRG,77,1,160,49,0003,26B8,0018*4FD9 + Common group (Group 1) + TimeStartup + TimeGps + Gnss1 group (Group 3) + NumSats + GnssFix + GnssPosLla + GnssVelNed + PosU1 + VelU1 + GnssDop + Gnss2 group (Group 6) + NumSats + GnssFix */ -static const uint8_t vn_ins_pkt2_header[] { 0x4e, 0x02, 0x00, 0x10, 0x00, 0xb8, 0x20, 0x18, 0x00 }; -#define VN_INS_PKT2_LENGTH 92 // includes header and CRC -struct PACKED VN_INS_packet2 { - uint64_t timeGPS; - float temp; - uint8_t numGPS1Sats; - uint8_t GPS1Fix; - double GPS1posLLA[3]; - float GPS1velNED[3]; - float GPS1DOP[7]; - uint8_t numGPS2Sats; - uint8_t GPS2Fix; +union Ins_Status { + uint16_t _value; + struct { + uint16_t mode : 2; + uint16_t gnssFix : 1; + uint16_t resv1 : 2; + uint16_t imuErr : 1; + uint16_t magPresErr : 1; + uint16_t gnssErr : 1; + uint16_t resv2 : 1; + uint16_t gnssHeadingIns : 2; + }; }; -// check packet size for 4 groups -static_assert(sizeof(VN_INS_packet2)+2+4*2+2 == VN_INS_PKT2_LENGTH, "incorrect VN_INS_packet2 length"); - -/* -header for 50Hz IMU data, used in TYPE::VN_AHRS only - assumes the following VN-100 config: - $VNWRG,75,3,80,14,073E,0004*66 - - Alternate first packet for VN-100 - 0x14: Groups 3, 5 - Group 3 (IMU): - 0x073E: - UncompMag - UncompAccel - UncompGyro - Temp - Pres - Mag - Accel - Gyro - Group 5 (Attitude): - 0x0004: - Quaternion -*/ -static const uint8_t vn_ahrs_pkt1_header[] { 0x14, 0x3E, 0x07, 0x04, 0x00 }; -#define VN_AHRS_PKT1_LENGTH 104 // includes header and CRC - -struct PACKED VN_AHRS_packet1 { - float uncompMag[3]; - float uncompAccel[3]; - float uncompAngRate[3]; - float temp; - float pressure; - float mag[3]; - float accel[3]; - float gyro[3]; +struct PACKED VN_INS_ekf_packet { + static constexpr uint8_t header[]{0x31, 0x01, 0x00, 0x06, 0x01, 0x13, 0x06}; + uint64_t timeStartup; + float ypr[3]; float quaternion[4]; + float yprU[3]; + uint16_t insStatus; + double posLla[3]; + float velNed[3]; + float posU; + float velU; }; - -static_assert(sizeof(VN_AHRS_packet1)+2+2*2+2 == VN_AHRS_PKT1_LENGTH, "incorrect VN_AHRS_packet1 length"); +constexpr uint8_t VN_INS_ekf_packet::header[]; +constexpr uint8_t VN_INS_EKF_LENGTH = sizeof(VN_INS_ekf_packet) + sizeof(VN_INS_ekf_packet::header) + 1 + 2; // Includes sync byte and CRC + +struct PACKED VN_INS_gnss_packet { + static constexpr uint8_t header[]{0x49, 0x03, 0x00, 0xB8, 0x26, 0x18, 0x00}; + uint64_t timeStartup; + uint64_t timeGps; + uint8_t numSats1; + uint8_t fix1; + double posLla1[3]; + float velNed1[3]; + float posU1[3]; + float velU1; + float dop1[7]; + uint8_t numSats2; + uint8_t fix2; +}; +constexpr uint8_t VN_INS_gnss_packet::header[]; +constexpr uint8_t VN_INS_GNSS_LENGTH = sizeof(VN_INS_gnss_packet) + sizeof(VN_INS_gnss_packet::header) + 1 + 2; // Includes sync byte and CRC // constructor AP_ExternalAHRS_VectorNav::AP_ExternalAHRS_VectorNav(AP_ExternalAHRS *_frontend, @@ -183,12 +186,13 @@ AP_ExternalAHRS_VectorNav::AP_ExternalAHRS_VectorNav(AP_ExternalAHRS *_frontend, baudrate = sm.find_baudrate(AP_SerialManager::SerialProtocol_AHRS, 0); port_num = sm.find_portnum(AP_SerialManager::SerialProtocol_AHRS, 0); - bufsize = MAX(MAX(VN_INS_PKT1_LENGTH, VN_INS_PKT2_LENGTH), VN_AHRS_PKT1_LENGTH); + bufsize = MAX(MAX(MAX(VN_IMU_LENGTH, VN_INS_EKF_LENGTH), VN_INS_GNSS_LENGTH), VN_AHRS_EKF_LENGTH); + pktbuf = NEW_NOTHROW uint8_t[bufsize]; - last_ins_pkt1 = NEW_NOTHROW VN_INS_packet1; - last_ins_pkt2 = NEW_NOTHROW VN_INS_packet2; + latest_ins_ekf_packet = NEW_NOTHROW VN_INS_ekf_packet; + latest_ins_gnss_packet = NEW_NOTHROW VN_INS_gnss_packet; - if (!pktbuf || !last_ins_pkt1 || !last_ins_pkt2) { + if (!pktbuf || !latest_ins_ekf_packet) { AP_BoardConfig::allocation_error("VectorNav ExternalAHRS"); } @@ -226,48 +230,57 @@ bool AP_ExternalAHRS_VectorNav::check_uart() bool match_header1 = false; bool match_header2 = false; bool match_header3 = false; + bool match_header4 = false; if (pktbuf[0] != SYNC_BYTE) { goto reset; } - if (type == TYPE::VN_INS) { - match_header1 = (0 == memcmp(&pktbuf[1], vn_ins_pkt1_header, MIN(sizeof(vn_ins_pkt1_header), unsigned(pktoffset-1)))); - match_header2 = (0 == memcmp(&pktbuf[1], vn_ins_pkt2_header, MIN(sizeof(vn_ins_pkt2_header), unsigned(pktoffset-1)))); + + match_header1 = (0 == memcmp(&pktbuf[1], VN_IMU_packet::header, MIN(sizeof(VN_IMU_packet::header), unsigned(pktoffset - 1)))); + if (type == TYPE::VN_AHRS) { + match_header2 = (0 == memcmp(&pktbuf[1], VN_AHRS_ekf_packet::header, MIN(sizeof(VN_AHRS_ekf_packet::header), unsigned(pktoffset - 1)))); } else { - match_header3 = (0 == memcmp(&pktbuf[1], vn_ahrs_pkt1_header, MIN(sizeof(vn_ahrs_pkt1_header), unsigned(pktoffset-1)))); + match_header3 = (0 == memcmp(&pktbuf[1], VN_INS_ekf_packet::header, MIN(sizeof(VN_INS_ekf_packet::header), unsigned(pktoffset - 1)))); + match_header4 = (0 == memcmp(&pktbuf[1], VN_INS_gnss_packet::header, MIN(sizeof(VN_INS_gnss_packet::header), unsigned(pktoffset - 1)))); } - if (!match_header1 && !match_header2 && !match_header3) { + if (!match_header1 && !match_header2 && !match_header3 && !match_header4) { goto reset; } - if (match_header1 && pktoffset >= VN_INS_PKT1_LENGTH) { - uint16_t crc = crc16_ccitt(&pktbuf[1], VN_INS_PKT1_LENGTH-1, 0); + if (match_header1 && pktoffset >= VN_IMU_LENGTH) { + uint16_t crc = crc16_ccitt(&pktbuf[1], VN_IMU_LENGTH - 1, 0); + if (crc == 0) { + process_imu_packet(&pktbuf[sizeof(VN_IMU_packet::header) + 1]); + memmove(&pktbuf[0], &pktbuf[VN_IMU_LENGTH], pktoffset - VN_IMU_LENGTH); + pktoffset -= VN_IMU_LENGTH; + } else { + goto reset; + } + } else if (match_header2 && pktoffset >= VN_AHRS_EKF_LENGTH) { + uint16_t crc = crc16_ccitt(&pktbuf[1], VN_AHRS_EKF_LENGTH - 1, 0); if (crc == 0) { - // got pkt1 - process_ins_packet1(&pktbuf[sizeof(vn_ins_pkt1_header)+1]); - memmove(&pktbuf[0], &pktbuf[VN_INS_PKT1_LENGTH], pktoffset-VN_INS_PKT1_LENGTH); - pktoffset -= VN_INS_PKT1_LENGTH; + process_ahrs_ekf_packet(&pktbuf[sizeof(VN_AHRS_ekf_packet::header) + 1]); + memmove(&pktbuf[0], &pktbuf[VN_AHRS_EKF_LENGTH], pktoffset - VN_AHRS_EKF_LENGTH); + pktoffset -= VN_AHRS_EKF_LENGTH; } else { goto reset; } - } else if (match_header2 && pktoffset >= VN_INS_PKT2_LENGTH) { - uint16_t crc = crc16_ccitt(&pktbuf[1], VN_INS_PKT2_LENGTH-1, 0); + } else if (match_header3 && pktoffset >= VN_INS_EKF_LENGTH) { + uint16_t crc = crc16_ccitt(&pktbuf[1], VN_INS_EKF_LENGTH - 1, 0); if (crc == 0) { - // got pkt2 - process_ins_packet2(&pktbuf[sizeof(vn_ins_pkt2_header)+1]); - memmove(&pktbuf[0], &pktbuf[VN_INS_PKT2_LENGTH], pktoffset-VN_INS_PKT2_LENGTH); - pktoffset -= VN_INS_PKT2_LENGTH; + process_ins_ekf_packet(&pktbuf[sizeof(VN_INS_ekf_packet::header) + 1]); + memmove(&pktbuf[0], &pktbuf[VN_INS_EKF_LENGTH], pktoffset - VN_INS_EKF_LENGTH); + pktoffset -= VN_INS_EKF_LENGTH; } else { goto reset; } - } else if (match_header3 && pktoffset >= VN_AHRS_PKT1_LENGTH) { - uint16_t crc = crc16_ccitt(&pktbuf[1], VN_AHRS_PKT1_LENGTH-1, 0); + } else if (match_header4 && pktoffset >= VN_INS_GNSS_LENGTH) { + uint16_t crc = crc16_ccitt(&pktbuf[1], VN_INS_GNSS_LENGTH - 1, 0); if (crc == 0) { - // got AHRS pkt - process_ahrs_packet(&pktbuf[sizeof(vn_ahrs_pkt1_header)+1]); - memmove(&pktbuf[0], &pktbuf[VN_AHRS_PKT1_LENGTH], pktoffset-VN_AHRS_PKT1_LENGTH); - pktoffset -= VN_AHRS_PKT1_LENGTH; + process_ins_gnss_packet(&pktbuf[sizeof(VN_INS_gnss_packet::header) + 1]); + memmove(&pktbuf[0], &pktbuf[VN_INS_GNSS_LENGTH], pktoffset - VN_INS_GNSS_LENGTH); + pktoffset -= VN_INS_GNSS_LENGTH; } else { goto reset; } @@ -431,8 +444,9 @@ void AP_ExternalAHRS_VectorNav::initialize() { // VN-1X0 type = TYPE::VN_AHRS; - // This assumes unit is still configured at its default rate of 800hz - run_command("VNWRG,75,3,%u,14,073E,0004", unsigned(800 / get_rate())); + // These assumes unit is still configured at its default rate of 800hz + run_command("VNWRG,75,3,%u,01,0721", unsigned(800 / get_rate())); + run_command("VNWRG,76,3,16,11,0001,0106"); } else { // Default to setup for sensors other than VN-100 or VN-110 // This assumes unit is still configured at its default IMU rate of 400hz for VN-300, 800hz for others @@ -443,8 +457,9 @@ void AP_ExternalAHRS_VectorNav::initialize() { if (strncmp(model_name, "VN-3", 4) == 0) { has_dual_gnss = true; } - run_command("VNWRG,75,3,%u,34,072E,0106,0612", unsigned(imu_rate / get_rate())); - run_command("VNWRG,76,3,%u,4E,0002,0010,20B8,0018", unsigned(imu_rate / 5)); + run_command("VNWRG,75,3,%u,01,0721", unsigned(imu_rate / get_rate())); + run_command("VNWRG,76,3,%u,31,0001,0106,0613", unsigned(imu_rate / 50)); + run_command("VNWRG,77,3,%u,49,0003,26B8,0018", unsigned(imu_rate / 5)); } // Resume asynchronous communications @@ -469,129 +484,10 @@ const char* AP_ExternalAHRS_VectorNav::get_name() const return nullptr; } -/* - process INS mode INS packet - */ -void AP_ExternalAHRS_VectorNav::process_ins_packet1(const uint8_t *b) -{ - const struct VN_INS_packet1 &pkt1 = *(struct VN_INS_packet1 *)b; - const struct VN_INS_packet2 &pkt2 = *last_ins_pkt2; - - last_pkt1_ms = AP_HAL::millis(); - *last_ins_pkt1 = pkt1; - - const bool use_uncomp = option_is_set(AP_ExternalAHRS::OPTIONS::VN_UNCOMP_IMU); - - { - WITH_SEMAPHORE(state.sem); - if (use_uncomp) { - state.accel = Vector3f{pkt1.uncompAccel[0], pkt1.uncompAccel[1], pkt1.uncompAccel[2]}; - state.gyro = Vector3f{pkt1.uncompAngRate[0], pkt1.uncompAngRate[1], pkt1.uncompAngRate[2]}; - } else { - state.accel = Vector3f{pkt1.accel[0], pkt1.accel[1], pkt1.accel[2]}; - state.gyro = Vector3f{pkt1.gyro[0], pkt1.gyro[1], pkt1.gyro[2]}; - } - - state.quat = Quaternion{pkt1.quaternion[3], pkt1.quaternion[0], pkt1.quaternion[1], pkt1.quaternion[2]}; - state.have_quaternion = true; - - state.velocity = Vector3f{pkt1.velNED[0], pkt1.velNED[1], pkt1.velNED[2]}; - state.have_velocity = true; - - state.location = Location{int32_t(pkt1.positionLLA[0] * 1.0e7), - int32_t(pkt1.positionLLA[1] * 1.0e7), - int32_t(pkt1.positionLLA[2] * 1.0e2), - Location::AltFrame::ABSOLUTE}; - state.last_location_update_us = AP_HAL::micros(); - state.have_location = true; - } - -#if AP_BARO_EXTERNALAHRS_ENABLED - { - AP_ExternalAHRS::baro_data_message_t baro; - baro.instance = 0; - baro.pressure_pa = pkt1.pressure*1e3; - baro.temperature = pkt2.temp; - - AP::baro().handle_external(baro); - } -#endif - -#if AP_COMPASS_EXTERNALAHRS_ENABLED - { - AP_ExternalAHRS::mag_data_message_t mag; - mag.field = Vector3f{pkt1.mag[0], pkt1.mag[1], pkt1.mag[2]}; - mag.field *= 1000; // to mGauss - - AP::compass().handle_external(mag); - } -#endif - - { - AP_ExternalAHRS::ins_data_message_t ins; - - ins.accel = state.accel; - ins.gyro = state.gyro; - ins.temperature = pkt2.temp; - - AP::ins().handle_external(ins); - } -} - -/* - process INS mode GNSS packet - */ -void AP_ExternalAHRS_VectorNav::process_ins_packet2(const uint8_t *b) -{ - const struct VN_INS_packet2 &pkt2 = *(struct VN_INS_packet2 *)b; - const struct VN_INS_packet1 &pkt1 = *last_ins_pkt1; - - last_pkt2_ms = AP_HAL::millis(); - *last_ins_pkt2 = pkt2; - - AP_ExternalAHRS::gps_data_message_t gps; - - // get ToW in milliseconds - gps.gps_week = pkt2.timeGPS / (AP_MSEC_PER_WEEK * 1000000ULL); - gps.ms_tow = (pkt2.timeGPS / 1000000ULL) % (60*60*24*7*1000ULL); - gps.fix_type = pkt2.GPS1Fix; - gps.satellites_in_view = pkt2.numGPS1Sats; - - gps.horizontal_pos_accuracy = pkt1.posU; - gps.vertical_pos_accuracy = pkt1.posU; - gps.horizontal_vel_accuracy = pkt1.velU; - - gps.hdop = pkt2.GPS1DOP[4]; - gps.vdop = pkt2.GPS1DOP[3]; - - gps.latitude = pkt2.GPS1posLLA[0] * 1.0e7; - gps.longitude = pkt2.GPS1posLLA[1] * 1.0e7; - gps.msl_altitude = pkt2.GPS1posLLA[2] * 1.0e2; - - gps.ned_vel_north = pkt2.GPS1velNED[0]; - gps.ned_vel_east = pkt2.GPS1velNED[1]; - gps.ned_vel_down = pkt2.GPS1velNED[2]; - - if (gps.fix_type >= 3 && !state.have_origin) { - WITH_SEMAPHORE(state.sem); - state.origin = Location{int32_t(pkt2.GPS1posLLA[0] * 1.0e7), - int32_t(pkt2.GPS1posLLA[1] * 1.0e7), - int32_t(pkt2.GPS1posLLA[2] * 1.0e2), - Location::AltFrame::ABSOLUTE}; - state.have_origin = true; - } - uint8_t instance; - if (AP::gps().get_first_external_instance(instance)) { - AP::gps().handle_external(gps, instance); - } -} - -/* - process AHRS mode AHRS packet - */ -void AP_ExternalAHRS_VectorNav::process_ahrs_packet(const uint8_t *b) +// process INS mode INS packet +void AP_ExternalAHRS_VectorNav::process_imu_packet(const uint8_t *b) { - const struct VN_AHRS_packet1 &pkt = *(struct VN_AHRS_packet1 *)b; + const struct VN_IMU_packet &pkt = *(struct VN_IMU_packet *)b; last_pkt1_ms = AP_HAL::millis(); @@ -606,16 +502,13 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_packet(const uint8_t *b) state.accel = Vector3f{pkt.accel[0], pkt.accel[1], pkt.accel[2]}; state.gyro = Vector3f{pkt.gyro[0], pkt.gyro[1], pkt.gyro[2]}; } - - state.quat = Quaternion{pkt.quaternion[3], pkt.quaternion[0], pkt.quaternion[1], pkt.quaternion[2]}; - state.have_quaternion = true; } #if AP_BARO_EXTERNALAHRS_ENABLED { AP_ExternalAHRS::baro_data_message_t baro; baro.instance = 0; - baro.pressure_pa = pkt.pressure*1e3; + baro.pressure_pa = pkt.pressure * 1e3; baro.temperature = pkt.temp; AP::baro().handle_external(baro); @@ -625,11 +518,7 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_packet(const uint8_t *b) #if AP_COMPASS_EXTERNALAHRS_ENABLED { AP_ExternalAHRS::mag_data_message_t mag; - if (use_uncomp) { - mag.field = Vector3f{pkt.uncompMag[0], pkt.uncompMag[1], pkt.uncompMag[2]}; - } else { - mag.field = Vector3f{pkt.mag[0], pkt.mag[1], pkt.mag[2]}; - } + mag.field = Vector3f{pkt.mag[0], pkt.mag[1], pkt.mag[2]}; mag.field *= 1000; // to mGauss AP::compass().handle_external(mag); @@ -647,8 +536,8 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_packet(const uint8_t *b) } #if HAL_LOGGING_ENABLED - // @LoggerMessage: EAH3 - // @Description: External AHRS data + // @LoggerMessage: EAHI + // @Description: External AHRS IMU data // @Field: TimeUS: Time since system startup // @Field: Temp: Temprature // @Field: Pres: Pressure @@ -661,25 +550,160 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_packet(const uint8_t *b) // @Field: GX: Rotation rate X-axis // @Field: GY: Rotation rate Y-axis // @Field: GZ: Rotation rate Z-axis - // @Field: Q1: Attitude quaternion 1 - // @Field: Q2: Attitude quaternion 2 - // @Field: Q3: Attitude quaternion 3 - // @Field: Q4: Attitude quaternion 4 - AP::logger().WriteStreaming("EAH3", "TimeUS,Temp,Pres,MX,MY,MZ,AX,AY,AZ,GX,GY,GZ,Q1,Q2,Q3,Q4", - "sdPGGGoooEEE----", "F000000000000000", - "Qfffffffffffffff", + AP::logger().WriteStreaming("EAHIM", "TimeUS,Temp,Pres,MX,MY,MZ,AX,AY,AZ,GX,GY,GZ", + "sdPGGGoooEEE", "F00000000000", + "Qfffffffffff", AP_HAL::micros64(), pkt.temp, pkt.pressure*1e3, - use_uncomp ? pkt.uncompMag[0] : pkt.mag[0], - use_uncomp ? pkt.uncompMag[1] : pkt.mag[1], - use_uncomp ? pkt.uncompMag[2] : pkt.mag[2], + pkt.mag[0], pkt.mag[1], pkt.mag[2], state.accel[0], state.accel[1], state.accel[2], state.gyro[0], state.gyro[1], state.gyro[2], state.quat[0], state.quat[1], state.quat[2], state.quat[3]); #endif // HAL_LOGGING_ENABLED } +// process AHRS mode AHRS packet +void AP_ExternalAHRS_VectorNav::process_ahrs_ekf_packet(const uint8_t *b) { + const struct VN_AHRS_ekf_packet &pkt = *(struct VN_AHRS_ekf_packet *)b; + + last_pkt2_ms = AP_HAL::millis(); + + state.quat = Quaternion{pkt.quaternion[3], pkt.quaternion[0], pkt.quaternion[1], pkt.quaternion[2]}; + state.have_quaternion = true; + +#if HAL_LOGGING_ENABLED + // @LoggerMessage: EAHA + // @Description: External AHRS Attitude data + // @Field: TimeUS: Time since system startup + // @Field: Q1: Attitude quaternion 1 + // @Field: Q2: Attitude quaternion 2 + // @Field: Q3: Attitude quaternion 3 + // @Field: Q4: Attitude quaternion 4 + // @Field: Yaw: Yaw + // @Field: Pitch: Pitch + // @Field: Roll: Roll + // @Field: YU: Yaw unceratainty + // @Field: PU: Pitch uncertainty + // @Field: RU: Roll uncertainty + + AP::logger().WriteStreaming("EAHAT", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", + "s----dddddd", "F0000000000", + "Qffffffffff", + AP_HAL::micros64(), + state.quat[0], state.quat[1], state.quat[2], state.quat[3], + pkt.ypr[0], pkt.ypr[1], pkt.ypr[2], + pkt.yprU[0], pkt.yprU[1], pkt.yprU[2]); +#endif // HAL_LOGGING_ENABLED +} + +// process INS mode EKF packet +void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { + const struct VN_INS_ekf_packet &pkt = *(struct VN_INS_ekf_packet *)b; + + last_pkt2_ms = AP_HAL::millis(); + latest_ins_ekf_packet = &pkt; + + state.quat = Quaternion{pkt.quaternion[3], pkt.quaternion[0], pkt.quaternion[1], pkt.quaternion[2]}; + state.have_quaternion = true; + + state.velocity = Vector3f{pkt.velNed[0], pkt.velNed[1], pkt.velNed[2]}; + state.have_velocity = true; + + state.location = Location{int32_t(pkt.posLla[0] * 1.0e7), int32_t(pkt.posLla[1] * 1.0e7), int32_t(pkt.posLla[2] * 1.0e2), Location::AltFrame::ABSOLUTE}; + state.last_location_update_us = AP_HAL::micros(); + state.have_location = true; + +#if HAL_LOGGING_ENABLED + auto now = AP_HAL::micros64(); + + // @LoggerMessage: EAHA + // @Description: External AHRS Attitude data + // @Field: TimeUS: Time since system startup + // @Field: Q1: Attitude quaternion 1 + // @Field: Q2: Attitude quaternion 2 + // @Field: Q3: Attitude quaternion 3 + // @Field: Q4: Attitude quaternion 4 + // @Field: Yaw: Yaw + // @Field: Pitch: Pitch + // @Field: Roll: Roll + // @Field: YU: Yaw unceratainty + // @Field: PU: Pitch uncertainty + // @Field: RU: Roll uncertainty + + AP::logger().WriteStreaming("EAHAT", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", + "s----dddddd", "F0000000000", + "Qffffffffff", + now, + state.quat[0], state.quat[1], state.quat[2], state.quat[3], + pkt.ypr[0], pkt.ypr[1], pkt.ypr[2], + pkt.yprU[0], pkt.yprU[1], pkt.yprU[2]); + + // @LoggerMessage: EAHK + // @Description: External AHRS INS Kalman Filter data + // @Field: TimeUS: Time since system startup + // @Field: InsStatus: VectorNav INS health status + // @Field: Lat: Latitude + // @Field: Lon: Longitude + // @Field: Alt: Altitude + // @Field: VelN: Velocity Northing + // @Field: VelE: Velocity Easting + // @Field: VelD: Velocity Downing + // @Field: PosU: Filter estimated position uncertainty + // @Field: VelU: Filter estimated Velocity uncertainty + + AP::logger().WriteStreaming("EAHKF", "TimeUS,InsStatus,Lat,Lon,Alt,VelN,VelE,VelD,PosU,VelU", + "s-ddmnnndn", "F00000000", + "QHdddfffff", + now, + pkt.insStatus, + pkt.posLla[0], pkt.posLla[1], pkt.posLla[2], + pkt.velNed[0], pkt.velNed[1], pkt.velNed[2], + pkt.posU, pkt.velU); +#endif // HAL_LOGGING_ENABLED +} + +// process INS mode GNSS packet +void AP_ExternalAHRS_VectorNav::process_ins_gnss_packet(const uint8_t *b) { + const struct VN_INS_gnss_packet &pkt = *(struct VN_INS_gnss_packet *)b; + AP_ExternalAHRS::gps_data_message_t gps; + + + last_pkt3_ms = AP_HAL::millis(); + latest_ins_gnss_packet = &pkt; + + // get ToW in milliseconds + gps.gps_week = pkt.timeGps / (AP_MSEC_PER_WEEK * 1000000ULL); + gps.ms_tow = (pkt.timeGps / 1000000ULL) % (60 * 60 * 24 * 7 * 1000ULL); + gps.fix_type = pkt.fix1; + gps.satellites_in_view = pkt.numSats1; + + gps.horizontal_pos_accuracy = pkt.posU1[0]; + gps.vertical_pos_accuracy = pkt.posU1[2]; + gps.horizontal_vel_accuracy = pkt.velU1; + + gps.hdop = pkt.dop1[4]; + gps.vdop = pkt.dop1[3]; + + gps.latitude = pkt.posLla1[0] * 1.0e7; + gps.longitude = pkt.posLla1[1] * 1.0e7; + gps.msl_altitude = pkt.posLla1[2] * 1.0e2; + + gps.ned_vel_north = pkt.velNed1[0]; + gps.ned_vel_east = pkt.velNed1[1]; + gps.ned_vel_down = pkt.velNed1[2]; + + if (!state.have_origin && gps.fix_type >= 3) { + WITH_SEMAPHORE(state.sem); + state.origin = Location{int32_t(pkt.posLla1[0] * 1.0e7), int32_t(pkt.posLla1[1] * 1.0e7), + int32_t(pkt.posLla1[2] * 1.0e2), Location::AltFrame::ABSOLUTE}; + state.have_origin = true; + } + uint8_t instance; + if (AP::gps().get_first_external_instance(instance)) { + AP::gps().handle_external(gps, instance); + } +} // get serial port number for the uart int8_t AP_ExternalAHRS_VectorNav::get_port(void) const @@ -694,10 +718,7 @@ int8_t AP_ExternalAHRS_VectorNav::get_port(void) const bool AP_ExternalAHRS_VectorNav::healthy(void) const { const uint32_t now = AP_HAL::millis(); - if (type == TYPE::VN_AHRS) { - return (now - last_pkt1_ms < 40); - } - return (now - last_pkt1_ms < 40 && now - last_pkt2_ms < 500); + return (now - last_pkt1_ms < 40) && (now - last_pkt2_ms < 500) && (type == TYPE::VN_AHRS ? true: now - last_pkt3_ms < 1000); } bool AP_ExternalAHRS_VectorNav::initialised(void) const @@ -705,10 +726,7 @@ bool AP_ExternalAHRS_VectorNav::initialised(void) const if (!setup_complete) { return false; } - if (type == TYPE::VN_AHRS) { - return last_pkt1_ms != 0; - } - return last_pkt1_ms != 0 && last_pkt2_ms != 0; + return last_pkt1_ms != UINT32_MAX && last_pkt2_ms != UINT32_MAX && (type == TYPE::VN_AHRS ? true : last_pkt3_ms != UINT32_MAX); } bool AP_ExternalAHRS_VectorNav::pre_arm_check(char *failure_msg, uint8_t failure_msg_len) const @@ -722,11 +740,11 @@ bool AP_ExternalAHRS_VectorNav::pre_arm_check(char *failure_msg, uint8_t failure return false; } if (type == TYPE::VN_INS) { - if (last_ins_pkt2->GPS1Fix < 3) { + if (latest_ins_gnss_packet->fix1 < 3) { hal.util->snprintf(failure_msg, failure_msg_len, "VectorNav no GPS1 lock"); return false; } - if (has_dual_gnss && (last_ins_pkt2->GPS2Fix < 3)) { + if (has_dual_gnss && (latest_ins_gnss_packet->fix2 < 3)) { hal.util->snprintf(failure_msg, failure_msg_len, "VectorNav no GPS2 lock"); return false; } @@ -741,37 +759,31 @@ bool AP_ExternalAHRS_VectorNav::pre_arm_check(char *failure_msg, uint8_t failure void AP_ExternalAHRS_VectorNav::get_filter_status(nav_filter_status &status) const { memset(&status, 0, sizeof(status)); - if (type == TYPE::VN_INS) { - if (last_ins_pkt1 && last_ins_pkt2) { - status.flags.initalized = true; - } - if (healthy() && last_ins_pkt2) { + status.flags.initalized = initialised(); + if (healthy()) { + if (type == TYPE::VN_AHRS) { status.flags.attitude = true; - status.flags.vert_vel = true; - status.flags.vert_pos = true; - - const struct VN_INS_packet2 &pkt2 = *last_ins_pkt2; - if (pkt2.GPS1Fix >= 3) { - status.flags.horiz_vel = true; - status.flags.horiz_pos_rel = true; - status.flags.horiz_pos_abs = true; + } else { + status.flags.attitude = true; + if (latest_ins_ekf_packet) { + status.flags.vert_vel = true; + status.flags.vert_pos = true; + + status.flags.horiz_vel = true; + status.flags.horiz_pos_rel = true; + status.flags.horiz_pos_abs = true; status.flags.pred_horiz_pos_rel = true; status.flags.pred_horiz_pos_abs = true; - status.flags.using_gps = true; + status.flags.using_gps = true; } } - } else { - status.flags.initalized = initialised(); - if (healthy()) { - status.flags.attitude = true; - } } } // send an EKF_STATUS message to GCS void AP_ExternalAHRS_VectorNav::send_status_report(GCS_MAVLINK &link) const { - if (!last_ins_pkt1) { + if (!latest_ins_ekf_packet) { return; } // prepare flags @@ -813,13 +825,13 @@ void AP_ExternalAHRS_VectorNav::send_status_report(GCS_MAVLINK &link) const } // send message - const struct VN_INS_packet1 &pkt1 = *(struct VN_INS_packet1 *)last_ins_pkt1; + const struct VN_INS_ekf_packet &pkt = *(struct VN_INS_ekf_packet *)latest_ins_ekf_packet; const float vel_gate = 5; const float pos_gate = 5; const float hgt_gate = 5; const float mag_var = 0; mavlink_msg_ekf_status_report_send(link.get_chan(), flags, - pkt1.velU/vel_gate, pkt1.posU/pos_gate, pkt1.posU/hgt_gate, + pkt.velU / vel_gate, pkt.posU / pos_gate, pkt.posU / hgt_gate, mag_var, 0, 0); } diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index db73138befe34..a70bec210dc29 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -63,20 +63,23 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { void initialize(); - void process_ins_packet1(const uint8_t *b); - void process_ins_packet2(const uint8_t *b); - void process_ahrs_packet(const uint8_t *b); void run_command(const char *fmt, ...); + void process_imu_packet(const uint8_t *b); + void process_ahrs_ekf_packet(const uint8_t *b); + void process_ins_ekf_packet(const uint8_t *b); + void process_ins_gnss_packet(const uint8_t *b); uint8_t *pktbuf; uint16_t pktoffset; uint16_t bufsize; - struct VN_INS_packet1 *last_ins_pkt1; - struct VN_INS_packet2 *last_ins_pkt2; + struct VN_imu_packet const *latest_imu_packet = nullptr; + struct VN_INS_ekf_packet const *latest_ins_ekf_packet = nullptr; + struct VN_INS_gnss_packet const *latest_ins_gnss_packet = nullptr; - uint32_t last_pkt1_ms; - uint32_t last_pkt2_ms; + uint32_t last_pkt1_ms = UINT32_MAX; + uint32_t last_pkt2_ms = UINT32_MAX; + uint32_t last_pkt3_ms = UINT32_MAX; enum class TYPE { VN_INS, // Full INS mode, requiring GNSS. Used by VN-2X0 and VN-3X0 From 50980ee03ef6efe361dd4acbec24ae744cf09b9d Mon Sep 17 00:00:00 2001 From: BLash Date: Thu, 18 Jul 2024 19:27:08 -0500 Subject: [PATCH 222/232] AP_ExternalAHRS_VectorNav: Update SIM to match new message definitions Redefine messages to 3 INS packets, and send as appropriate Resolve SITL failures due to too-long logger message headers --- .../AP_ExternalAHRS_VectorNav.cpp | 14 +- .../AP_ExternalAHRS_VectorNav.h | 6 +- libraries/SITL/SIM_VectorNav.cpp | 207 +++++++++++------- libraries/SITL/SIM_VectorNav.h | 11 +- 4 files changed, 149 insertions(+), 89 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index aeefe9ff54d45..3e58710799d03 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -551,7 +551,7 @@ void AP_ExternalAHRS_VectorNav::process_imu_packet(const uint8_t *b) // @Field: GY: Rotation rate Y-axis // @Field: GZ: Rotation rate Z-axis - AP::logger().WriteStreaming("EAHIM", "TimeUS,Temp,Pres,MX,MY,MZ,AX,AY,AZ,GX,GY,GZ", + AP::logger().WriteStreaming("EAHI", "TimeUS,Temp,Pres,MX,MY,MZ,AX,AY,AZ,GX,GY,GZ", "sdPGGGoooEEE", "F00000000000", "Qfffffffffff", AP_HAL::micros64(), @@ -587,7 +587,7 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_ekf_packet(const uint8_t *b) { // @Field: PU: Pitch uncertainty // @Field: RU: Roll uncertainty - AP::logger().WriteStreaming("EAHAT", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", + AP::logger().WriteStreaming("EAHA", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", "s----dddddd", "F0000000000", "Qffffffffff", AP_HAL::micros64(), @@ -602,7 +602,7 @@ void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { const struct VN_INS_ekf_packet &pkt = *(struct VN_INS_ekf_packet *)b; last_pkt2_ms = AP_HAL::millis(); - latest_ins_ekf_packet = &pkt; + *latest_ins_ekf_packet = pkt; state.quat = Quaternion{pkt.quaternion[3], pkt.quaternion[0], pkt.quaternion[1], pkt.quaternion[2]}; state.have_quaternion = true; @@ -631,7 +631,7 @@ void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { // @Field: PU: Pitch uncertainty // @Field: RU: Roll uncertainty - AP::logger().WriteStreaming("EAHAT", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", + AP::logger().WriteStreaming("EAHA", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", "s----dddddd", "F0000000000", "Qffffffffff", now, @@ -652,8 +652,8 @@ void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { // @Field: PosU: Filter estimated position uncertainty // @Field: VelU: Filter estimated Velocity uncertainty - AP::logger().WriteStreaming("EAHKF", "TimeUS,InsStatus,Lat,Lon,Alt,VelN,VelE,VelD,PosU,VelU", - "s-ddmnnndn", "F00000000", + AP::logger().WriteStreaming("EAHK", "TimeUS,InsStatus,Lat,Lon,Alt,VelN,VelE,VelD,PosU,VelU", + "s-ddmnnndn", "F000000000", "QHdddfffff", now, pkt.insStatus, @@ -670,7 +670,7 @@ void AP_ExternalAHRS_VectorNav::process_ins_gnss_packet(const uint8_t *b) { last_pkt3_ms = AP_HAL::millis(); - latest_ins_gnss_packet = &pkt; + *latest_ins_gnss_packet = pkt; // get ToW in milliseconds gps.gps_week = pkt.timeGps / (AP_MSEC_PER_WEEK * 1000000ULL); diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index a70bec210dc29..456090d205f00 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -73,9 +73,9 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { uint16_t pktoffset; uint16_t bufsize; - struct VN_imu_packet const *latest_imu_packet = nullptr; - struct VN_INS_ekf_packet const *latest_ins_ekf_packet = nullptr; - struct VN_INS_gnss_packet const *latest_ins_gnss_packet = nullptr; + struct VN_imu_packet *latest_imu_packet = nullptr; + struct VN_INS_ekf_packet *latest_ins_ekf_packet = nullptr; + struct VN_INS_gnss_packet *latest_ins_gnss_packet = nullptr; uint32_t last_pkt1_ms = UINT32_MAX; uint32_t last_pkt2_ms = UINT32_MAX; diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index b3f9ecf6a4d89..acaa07edaa437 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -29,37 +29,49 @@ VectorNav::VectorNav() : { } -struct PACKED VN_INS_packet1 { - float uncompMag[3]; + +struct PACKED VN_IMU_packet_sim { + static constexpr uint8_t header[]{0x01, 0x21, 0x07}; + uint64_t timeStartup; + float gyro[3]; + float accel[3]; float uncompAccel[3]; float uncompAngRate[3]; - float pressure; float mag[3]; - float accel[3]; - float gyro[3]; + float temp; + float pressure; +}; +constexpr uint8_t VN_IMU_packet_sim::header[]; + +struct PACKED VN_INS_ekf_packet_sim { + static constexpr uint8_t header[]{0x31, 0x01, 0x00, 0x06, 0x01, 0x13, 0x06}; + uint64_t timeStartup; float ypr[3]; float quaternion[4]; float yprU[3]; - double positionLLA[3]; - float velNED[3]; + uint16_t insStatus; + double posLla[3]; + float velNed[3]; float posU; float velU; }; - -struct PACKED VN_INS_packet2 { - uint64_t timeGPS; - float temp; - uint8_t numGPS1Sats; - uint8_t GPS1Fix; - double GPS1posLLA[3]; - float GPS1velNED[3]; - float GPS1DOP[7]; - uint8_t numGPS2Sats; - uint8_t GPS2Fix; +constexpr uint8_t VN_INS_ekf_packet_sim::header[]; + +struct PACKED VN_INS_gnss_packet_sim { + static constexpr uint8_t header[]{0x49, 0x03, 0x00, 0xB8, 0x26, 0x18, 0x00}; + uint64_t timeStartup; + uint64_t timeGps; + uint8_t numSats1; + uint8_t fix1; + double posLla1[3]; + float velNed1[3]; + float posU1[3]; + float velU1; + float dop1[7]; + uint8_t numSats2; + uint8_t fix2; }; - -#define VN_PKT1_HEADER { 0xFA, 0x34, 0x2E, 0x07, 0x06, 0x01, 0x12, 0x06 } -#define VN_PKT2_HEADER { 0xFA, 0x4E, 0x02, 0x00, 0x10, 0x00, 0xB8, 0x20, 0x18, 0x00 } +constexpr uint8_t VN_INS_gnss_packet_sim::header[]; /* get timeval using simulation time @@ -80,36 +92,62 @@ static void simulation_timeval(struct timeval *tv) tv->tv_usec = new_usec % 1000000ULL; } -void VectorNav::send_packet1(void) +void VectorNav::send_imu_packet(void) { const auto &fdm = _sitl->state; - struct VN_INS_packet1 pkt {}; + struct VN_IMU_packet_sim pkt {}; + + pkt.timeStartup = AP_HAL::micros() * 1e3; + + + const float gyro_noise = 0.05; + + pkt.gyro[0] = radians(fdm.rollRate + rand_float() * gyro_noise); + pkt.gyro[1] = radians(fdm.pitchRate + rand_float() * gyro_noise); + pkt.gyro[2] = radians(fdm.yawRate + rand_float() * gyro_noise); + + pkt.accel[0] = fdm.xAccel; + pkt.accel[1] = fdm.yAccel; + pkt.accel[2] = fdm.zAccel; pkt.uncompAccel[0] = fdm.xAccel; pkt.uncompAccel[1] = fdm.yAccel; pkt.uncompAccel[2] = fdm.zAccel; - const float gyro_noise = 0.05; + pkt.uncompAngRate[0] = radians(fdm.rollRate + gyro_noise * rand_float()); pkt.uncompAngRate[1] = radians(fdm.pitchRate + gyro_noise * rand_float()); pkt.uncompAngRate[2] = radians(fdm.yawRate + gyro_noise * rand_float()); - const float pressure_Pa = AP_Baro::get_pressure_for_alt_amsl(fdm.altitude); - pkt.pressure = pressure_Pa*0.001 + rand_float() * 0.01; - pkt.mag[0] = fdm.bodyMagField.x*0.001; pkt.mag[1] = fdm.bodyMagField.y*0.001; pkt.mag[2] = fdm.bodyMagField.z*0.001; - pkt.uncompMag[0] = pkt.mag[0]; - pkt.uncompMag[1] = pkt.mag[1]; - pkt.uncompMag[2] = pkt.mag[2]; - pkt.accel[0] = fdm.xAccel; - pkt.accel[1] = fdm.yAccel; - pkt.accel[2] = fdm.zAccel; - pkt.gyro[0] = radians(fdm.rollRate + rand_float() * gyro_noise); - pkt.gyro[1] = radians(fdm.pitchRate + rand_float() * gyro_noise); - pkt.gyro[2] = radians(fdm.yawRate + rand_float() * gyro_noise); + pkt.temp = AP_Baro::get_temperatureC_for_alt_amsl(fdm.altitude); + + const float pressure_Pa = AP_Baro::get_pressure_for_alt_amsl(fdm.altitude); + pkt.pressure = pressure_Pa*0.001 + rand_float() * 0.01; + + const uint8_t sync_byte = 0xFA; + write_to_autopilot((char *)&sync_byte, 1); + write_to_autopilot((char *)&VN_IMU_packet_sim::header, sizeof(VN_IMU_packet_sim::header)); + write_to_autopilot((char *)&pkt, sizeof(pkt)); + + uint16_t crc = crc16_ccitt(&VN_IMU_packet_sim::header[0], sizeof(VN_IMU_packet_sim::header), 0); + crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); + uint16_t crc2; + swab(&crc, &crc2, 2); + + write_to_autopilot((char *)&crc2, sizeof(crc2)); +} + +void VectorNav::send_ins_ekf_packet(void) +{ + const auto &fdm = _sitl->state; + + struct VN_INS_ekf_packet_sim pkt {}; + + pkt.timeStartup = AP_HAL::micros() * 1e3; pkt.ypr[0] = fdm.yawDeg; pkt.ypr[1] = fdm.pitchDeg; @@ -120,58 +158,74 @@ void VectorNav::send_packet1(void) pkt.quaternion[2] = fdm.quaternion.q4; pkt.quaternion[3] = fdm.quaternion.q1; - pkt.positionLLA[0] = fdm.latitude; - pkt.positionLLA[1] = fdm.longitude; - pkt.positionLLA[2] = fdm.altitude; - pkt.velNED[0] = fdm.speedN; - pkt.velNED[1] = fdm.speedE; - pkt.velNED[2] = fdm.speedD; + pkt.yprU[0] = 0.03; + pkt.yprU[1] = 0.03; + pkt.yprU[2] = 0.15; + + pkt.insStatus = 0x0306; + + pkt.posLla[0] = fdm.latitude; + pkt.posLla[1] = fdm.longitude; + pkt.posLla[2] = fdm.altitude; + pkt.velNed[0] = fdm.speedN; + pkt.velNed[1] = fdm.speedE; + pkt.velNed[2] = fdm.speedD; pkt.posU = 0.5; pkt.velU = 0.25; - const uint8_t header[] VN_PKT1_HEADER; - - write_to_autopilot((char *)&header, sizeof(header)); + const uint8_t sync_byte = 0xFA; + write_to_autopilot((char *)&sync_byte, 1); + write_to_autopilot((char *)&VN_INS_ekf_packet_sim::header, sizeof(VN_INS_ekf_packet_sim::header)); write_to_autopilot((char *)&pkt, sizeof(pkt)); - uint16_t crc = crc16_ccitt(&header[1], sizeof(header)-1, 0); + uint16_t crc = crc16_ccitt(&VN_INS_ekf_packet_sim::header[0], sizeof(VN_INS_ekf_packet_sim::header), 0); crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); + uint16_t crc2; swab(&crc, &crc2, 2); write_to_autopilot((char *)&crc2, sizeof(crc2)); } -void VectorNav::send_packet2(void) +void VectorNav::send_ins_gnss_packet(void) { const auto &fdm = _sitl->state; - struct VN_INS_packet2 pkt {}; + struct VN_INS_gnss_packet_sim pkt {}; + + pkt.timeStartup = AP_HAL::micros() * 1e3; struct timeval tv; simulation_timeval(&tv); - pkt.timeGPS = tv.tv_usec * 1000ULL; - - pkt.temp = AP_Baro::get_temperatureC_for_alt_amsl(fdm.altitude); - pkt.numGPS1Sats = 19; - pkt.GPS1Fix = 3; - pkt.GPS1posLLA[0] = fdm.latitude; - pkt.GPS1posLLA[1] = fdm.longitude; - pkt.GPS1posLLA[2] = fdm.altitude; - pkt.GPS1velNED[0] = fdm.speedN; - pkt.GPS1velNED[1] = fdm.speedE; - pkt.GPS1velNED[2] = fdm.speedD; - // pkt.GPS1DOP = - pkt.numGPS2Sats = 18; - pkt.GPS2Fix = 3; - - const uint8_t header[] VN_PKT2_HEADER; - - write_to_autopilot((char *)&header, sizeof(header)); + pkt.timeGps = tv.tv_usec * 1000ULL; + + pkt.numSats1 = 19; + pkt.fix1 = 3; + pkt.posLla1[0] = fdm.latitude; + pkt.posLla1[1] = fdm.longitude; + pkt.posLla1[2] = fdm.altitude; + pkt.velNed1[0] = fdm.speedN; + pkt.velNed1[1] = fdm.speedE; + pkt.velNed1[2] = fdm.speedD; + + pkt.posU1[0] = 1; + pkt.posU1[0] = 1; + pkt.posU1[0] = 1.5; + + pkt.velNed1[0] = 0.05; + pkt.velNed1[0] = 0.05; + pkt.velNed1[0] = 0.05; + // pkt.dop1 = + pkt.numSats2 = 18; + pkt.fix2 = 3; + + const uint8_t sync_byte = 0xFA; + write_to_autopilot((char *)&sync_byte, 1); + write_to_autopilot((char *)&VN_INS_gnss_packet_sim::header, sizeof(VN_INS_gnss_packet_sim::header)); write_to_autopilot((char *)&pkt, sizeof(pkt)); - uint16_t crc = crc16_ccitt(&header[1], sizeof(header)-1, 0); + uint16_t crc = crc16_ccitt(&VN_INS_gnss_packet_sim::header[0], sizeof(VN_INS_gnss_packet_sim::header), 0); crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); uint16_t crc2; @@ -203,14 +257,19 @@ void VectorNav::update(void) } uint32_t now = AP_HAL::micros(); - if (now - last_pkt1_us >= 20000) { - last_pkt1_us = now; - send_packet1(); + if (now - last_imu_pkt_us >= 20000) { + last_imu_pkt_us = now; + send_imu_packet(); } - - if (now - last_pkt2_us >= 200000) { - last_pkt2_us = now; - send_packet2(); + + if (now - last_ekf_pkt_us >= 20000) { + last_ekf_pkt_us = now; + send_ins_ekf_packet(); + } + + if (now - last_gnss_pkt_us >= 200000) { + last_gnss_pkt_us = now; + send_ins_gnss_packet(); } char receive_buf[50]; diff --git a/libraries/SITL/SIM_VectorNav.h b/libraries/SITL/SIM_VectorNav.h index 589539e5d9a8f..77fde25625733 100644 --- a/libraries/SITL/SIM_VectorNav.h +++ b/libraries/SITL/SIM_VectorNav.h @@ -41,12 +41,13 @@ class VectorNav : public SerialDevice { void update(void); private: - uint32_t last_pkt1_us; - uint32_t last_pkt2_us; - uint32_t last_type_us; + uint32_t last_imu_pkt_us; + uint32_t last_ekf_pkt_us; + uint32_t last_gnss_pkt_us; - void send_packet1(); - void send_packet2(); + void send_imu_packet(); + void send_ins_ekf_packet(); + void send_ins_gnss_packet(); void nmea_printf(const char *fmt, ...); }; From 1d1bb5724eb96e91f335263c22bd4ef91c3b9818 Mon Sep 17 00:00:00 2001 From: BLash Date: Thu, 18 Jul 2024 21:02:40 -0500 Subject: [PATCH 223/232] AP_ExternalAHRS_VectorNav: Address review comments Remove unnecessary header Switch parameters to default initialization Change pointer casting to prevent a const_cast, and remove doubled sync byte when echoing ASCII messages Fix Valgrind report by preventing use of nmea_printf on buffers which may not be null-terminated --- .../AP_ExternalAHRS_VectorNav.cpp | 1 - .../AP_ExternalAHRS_VectorNav.h | 12 +++++----- libraries/SITL/SIM_VectorNav.cpp | 24 +++++++++---------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index 3e58710799d03..38f44ed150111 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -16,7 +16,6 @@ support for serial connected AHRS systems */ -#include #define ALLOW_DOUBLE_MATH_FUNCTIONS #include "AP_ExternalAHRS_config.h" diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index 456090d205f00..9c1639640a1e0 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -73,13 +73,13 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { uint16_t pktoffset; uint16_t bufsize; - struct VN_imu_packet *latest_imu_packet = nullptr; - struct VN_INS_ekf_packet *latest_ins_ekf_packet = nullptr; - struct VN_INS_gnss_packet *latest_ins_gnss_packet = nullptr; + struct VN_imu_packet *latest_imu_packet; + struct VN_INS_ekf_packet *latest_ins_ekf_packet; + struct VN_INS_gnss_packet *latest_ins_gnss_packet; - uint32_t last_pkt1_ms = UINT32_MAX; - uint32_t last_pkt2_ms = UINT32_MAX; - uint32_t last_pkt3_ms = UINT32_MAX; + uint32_t last_pkt1_ms; + uint32_t last_pkt2_ms; + uint32_t last_pkt3_ms; enum class TYPE { VN_INS, // Full INS mode, requiring GNSS. Used by VN-2X0 and VN-3X0 diff --git a/libraries/SITL/SIM_VectorNav.cpp b/libraries/SITL/SIM_VectorNav.cpp index acaa07edaa437..ad61f0101077e 100644 --- a/libraries/SITL/SIM_VectorNav.cpp +++ b/libraries/SITL/SIM_VectorNav.cpp @@ -129,16 +129,16 @@ void VectorNav::send_imu_packet(void) pkt.pressure = pressure_Pa*0.001 + rand_float() * 0.01; const uint8_t sync_byte = 0xFA; - write_to_autopilot((char *)&sync_byte, 1); - write_to_autopilot((char *)&VN_IMU_packet_sim::header, sizeof(VN_IMU_packet_sim::header)); - write_to_autopilot((char *)&pkt, sizeof(pkt)); + write_to_autopilot((const char *)&sync_byte, 1); + write_to_autopilot((const char *)&VN_IMU_packet_sim::header, sizeof(VN_IMU_packet_sim::header)); + write_to_autopilot((const char *)&pkt, sizeof(pkt)); uint16_t crc = crc16_ccitt(&VN_IMU_packet_sim::header[0], sizeof(VN_IMU_packet_sim::header), 0); crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); uint16_t crc2; swab(&crc, &crc2, 2); - write_to_autopilot((char *)&crc2, sizeof(crc2)); + write_to_autopilot((const char *)&crc2, sizeof(crc2)); } void VectorNav::send_ins_ekf_packet(void) @@ -174,9 +174,9 @@ void VectorNav::send_ins_ekf_packet(void) pkt.velU = 0.25; const uint8_t sync_byte = 0xFA; - write_to_autopilot((char *)&sync_byte, 1); - write_to_autopilot((char *)&VN_INS_ekf_packet_sim::header, sizeof(VN_INS_ekf_packet_sim::header)); - write_to_autopilot((char *)&pkt, sizeof(pkt)); + write_to_autopilot((const char *)&sync_byte, 1); + write_to_autopilot((const char *)&VN_INS_ekf_packet_sim::header, sizeof(VN_INS_ekf_packet_sim::header)); + write_to_autopilot((const char *)&pkt, sizeof(pkt)); uint16_t crc = crc16_ccitt(&VN_INS_ekf_packet_sim::header[0], sizeof(VN_INS_ekf_packet_sim::header), 0); crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); @@ -184,7 +184,7 @@ void VectorNav::send_ins_ekf_packet(void) uint16_t crc2; swab(&crc, &crc2, 2); - write_to_autopilot((char *)&crc2, sizeof(crc2)); + write_to_autopilot((const char *)&crc2, sizeof(crc2)); } void VectorNav::send_ins_gnss_packet(void) @@ -221,9 +221,9 @@ void VectorNav::send_ins_gnss_packet(void) pkt.fix2 = 3; const uint8_t sync_byte = 0xFA; - write_to_autopilot((char *)&sync_byte, 1); - write_to_autopilot((char *)&VN_INS_gnss_packet_sim::header, sizeof(VN_INS_gnss_packet_sim::header)); - write_to_autopilot((char *)&pkt, sizeof(pkt)); + write_to_autopilot((const char *)&sync_byte, 1); + write_to_autopilot((const char *)&VN_INS_gnss_packet_sim::header, sizeof(VN_INS_gnss_packet_sim::header)); + write_to_autopilot((const char *)&pkt, sizeof(pkt)); uint16_t crc = crc16_ccitt(&VN_INS_gnss_packet_sim::header[0], sizeof(VN_INS_gnss_packet_sim::header), 0); crc = crc16_ccitt((const uint8_t *)&pkt, sizeof(pkt), crc); @@ -231,7 +231,7 @@ void VectorNav::send_ins_gnss_packet(void) uint16_t crc2; swab(&crc, &crc2, 2); - write_to_autopilot((char *)&crc2, sizeof(crc2)); + write_to_autopilot((const char *)&crc2, sizeof(crc2)); } void VectorNav::nmea_printf(const char *fmt, ...) From d7ecf5fbc5a69d8253bc2e9faf5a45ecd08b677d Mon Sep 17 00:00:00 2001 From: BLash Date: Fri, 19 Jul 2024 19:30:07 -0500 Subject: [PATCH 224/232] AP_ExternalAHRS_VectorNav: Consolidate EAH3 definition to single method Resolve SITL failures due to multiply defined logger message by pulling the call to a single method --- .../AP_ExternalAHRS_VectorNav.cpp | 95 ++++++++++--------- .../AP_ExternalAHRS_VectorNav.h | 4 + 2 files changed, 56 insertions(+), 43 deletions(-) diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp index 38f44ed150111..aa358f8fbde63 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.cpp @@ -483,6 +483,44 @@ const char* AP_ExternalAHRS_VectorNav::get_name() const return nullptr; } +// Input data struct for EAHA logging message, used by both AHRS mode and INS mode +struct AP_ExternalAHRS_VectorNav::EAHA { + uint64_t timeUs; + float quat[4]; + float ypr[3]; + float yprU[3]; +}; + + +void AP_ExternalAHRS_VectorNav::write_eaha(const EAHA& data_to_log) const { + +#if HAL_LOGGING_ENABLED + // @LoggerMessage: EAHA + // @Description: External AHRS Attitude data + // @Field: TimeUS: Time since system startup + // @Field: Q1: Attitude quaternion 1 + // @Field: Q2: Attitude quaternion 2 + // @Field: Q3: Attitude quaternion 3 + // @Field: Q4: Attitude quaternion 4 + // @Field: Yaw: Yaw + // @Field: Pitch: Pitch + // @Field: Roll: Roll + // @Field: YU: Yaw unceratainty + // @Field: PU: Pitch uncertainty + // @Field: RU: Roll uncertainty + + AP::logger().WriteStreaming("EAHA", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", + "s----dddddd", "F0000000000", + "Qffffffffff", + data_to_log.timeUs, + data_to_log.quat[0], data_to_log.quat[1], data_to_log.quat[2], data_to_log.quat[3], + data_to_log.ypr[0], data_to_log.ypr[1], data_to_log.ypr[2], + data_to_log.yprU[0], data_to_log.yprU[1], data_to_log.yprU[2]); +#endif +} + + + // process INS mode INS packet void AP_ExternalAHRS_VectorNav::process_imu_packet(const uint8_t *b) { @@ -572,27 +610,13 @@ void AP_ExternalAHRS_VectorNav::process_ahrs_ekf_packet(const uint8_t *b) { state.have_quaternion = true; #if HAL_LOGGING_ENABLED - // @LoggerMessage: EAHA - // @Description: External AHRS Attitude data - // @Field: TimeUS: Time since system startup - // @Field: Q1: Attitude quaternion 1 - // @Field: Q2: Attitude quaternion 2 - // @Field: Q3: Attitude quaternion 3 - // @Field: Q4: Attitude quaternion 4 - // @Field: Yaw: Yaw - // @Field: Pitch: Pitch - // @Field: Roll: Roll - // @Field: YU: Yaw unceratainty - // @Field: PU: Pitch uncertainty - // @Field: RU: Roll uncertainty + EAHA data_to_log; + data_to_log.timeUs = AP_HAL::micros64(); + memcpy(data_to_log.quat, pkt.quaternion, sizeof(pkt.quaternion)); + memcpy(data_to_log.ypr, pkt.ypr, sizeof(pkt.ypr)); + memcpy(data_to_log.yprU, pkt.yprU, sizeof(pkt.yprU)); - AP::logger().WriteStreaming("EAHA", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", - "s----dddddd", "F0000000000", - "Qffffffffff", - AP_HAL::micros64(), - state.quat[0], state.quat[1], state.quat[2], state.quat[3], - pkt.ypr[0], pkt.ypr[1], pkt.ypr[2], - pkt.yprU[0], pkt.yprU[1], pkt.yprU[2]); + write_eaha(data_to_log); #endif // HAL_LOGGING_ENABLED } @@ -614,29 +638,13 @@ void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { state.have_location = true; #if HAL_LOGGING_ENABLED - auto now = AP_HAL::micros64(); - - // @LoggerMessage: EAHA - // @Description: External AHRS Attitude data - // @Field: TimeUS: Time since system startup - // @Field: Q1: Attitude quaternion 1 - // @Field: Q2: Attitude quaternion 2 - // @Field: Q3: Attitude quaternion 3 - // @Field: Q4: Attitude quaternion 4 - // @Field: Yaw: Yaw - // @Field: Pitch: Pitch - // @Field: Roll: Roll - // @Field: YU: Yaw unceratainty - // @Field: PU: Pitch uncertainty - // @Field: RU: Roll uncertainty - - AP::logger().WriteStreaming("EAHA", "TimeUS,Q1,Q2,Q3,Q4,Yaw,Pitch,Roll,YU,PU,RU", - "s----dddddd", "F0000000000", - "Qffffffffff", - now, - state.quat[0], state.quat[1], state.quat[2], state.quat[3], - pkt.ypr[0], pkt.ypr[1], pkt.ypr[2], - pkt.yprU[0], pkt.yprU[1], pkt.yprU[2]); + EAHA data_to_log; + auto now = AP_HAL::micros64(); + data_to_log.timeUs = now; + memcpy(data_to_log.quat, pkt.quaternion, sizeof(pkt.quaternion)); + memcpy(data_to_log.ypr, pkt.ypr, sizeof(pkt.ypr)); + memcpy(data_to_log.yprU, pkt.yprU, sizeof(pkt.yprU)); + write_eaha(data_to_log); // @LoggerMessage: EAHK // @Description: External AHRS INS Kalman Filter data @@ -660,6 +668,7 @@ void AP_ExternalAHRS_VectorNav::process_ins_ekf_packet(const uint8_t *b) { pkt.velNed[0], pkt.velNed[1], pkt.velNed[2], pkt.posU, pkt.velU); #endif // HAL_LOGGING_ENABLED + } // process INS mode GNSS packet diff --git a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h index 9c1639640a1e0..8e1a1c5ec1917 100644 --- a/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h +++ b/libraries/AP_ExternalAHRS/AP_ExternalAHRS_VectorNav.h @@ -64,11 +64,15 @@ class AP_ExternalAHRS_VectorNav : public AP_ExternalAHRS_backend { void initialize(); void run_command(const char *fmt, ...); + + struct EAHA; + void write_eaha(const EAHA& data_to_log) const; void process_imu_packet(const uint8_t *b); void process_ahrs_ekf_packet(const uint8_t *b); void process_ins_ekf_packet(const uint8_t *b); void process_ins_gnss_packet(const uint8_t *b); + uint8_t *pktbuf; uint16_t pktoffset; uint16_t bufsize; From 9f99d3c934405c93a7c5c746eb2c5c5a1cc9e118 Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 27 Jul 2024 09:32:54 +0900 Subject: [PATCH 225/232] Tracker: 4.5.5-beta2 release notes --- AntennaTracker/ReleaseNotes.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/AntennaTracker/ReleaseNotes.txt b/AntennaTracker/ReleaseNotes.txt index 558ecfa5b5795..89982976f1caa 100644 --- a/AntennaTracker/ReleaseNotes.txt +++ b/AntennaTracker/ReleaseNotes.txt @@ -1,5 +1,14 @@ Antenna Tracker Release Notes: ------------------------------- +------------------------------------------------------------------ +Release 4.5.5-beta2 27 July 2024 + +Changes from 4.5.5-beta1 + +1) Board specific enhancements and bug fixes + +- CubeRed's second core disabled at boot to avoid spurious writes to RAM +- CubeRed bootloader's dual endpoint update method fixed +------------------------------------------------------------------ Release 4.5.5-beta1 1st July 2024 Changes from 4.5.4 From b752f8d4cfcf913978b53da90d64fd01061ddafd Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 27 Jul 2024 09:32:32 +0900 Subject: [PATCH 226/232] Rover: 4.5.5-beta2 release notes --- Rover/ReleaseNotes.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Rover/ReleaseNotes.txt b/Rover/ReleaseNotes.txt index bfccbf5df6fba..250c049f4caec 100644 --- a/Rover/ReleaseNotes.txt +++ b/Rover/ReleaseNotes.txt @@ -1,5 +1,14 @@ Rover Release Notes: --------------------- +------------------------------------------------------------------ +Release 4.5.5-beta2 27 July 2024 + +Changes from 4.5.5-beta1 + +1) Board specific enhancements and bug fixes + +- CubeRed's second core disabled at boot to avoid spurious writes to RAM +- CubeRed bootloader's dual endpoint update method fixed +------------------------------------------------------------------ Release 4.5.5-beta1 1st July 2024 Changes from 4.5.4 From 8f51eafc825b84dcb2508d0a28ed0c254e7725ff Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 27 Jul 2024 09:28:55 +0900 Subject: [PATCH 227/232] Copter: 4.5.5-beta2 release notes --- ArduCopter/ReleaseNotes.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ArduCopter/ReleaseNotes.txt b/ArduCopter/ReleaseNotes.txt index 3e1504a0626b5..84d8c9f384f65 100644 --- a/ArduCopter/ReleaseNotes.txt +++ b/ArduCopter/ReleaseNotes.txt @@ -1,5 +1,14 @@ ArduPilot Copter Release Notes: -------------------------------- +------------------------------------------------------------------ +Release 4.5.5-beta2 27 July 2024 + +Changes from 4.5.5-beta1 + +1) Board specific enhancements and bug fixes + +- CubeRed's second core disabled at boot to avoid spurious writes to RAM +- CubeRed bootloader's dual endpoint update method fixed +------------------------------------------------------------------ Release 4.5.5-beta1 1st July 2024 Changes from 4.5.4 From 2806f8b63b1343505614ed9e5f542f9fd426925f Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 27 Jul 2024 09:32:04 +0900 Subject: [PATCH 228/232] Plane: 4.5.5-beta2 release notes --- ArduPlane/ReleaseNotes.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ArduPlane/ReleaseNotes.txt b/ArduPlane/ReleaseNotes.txt index 277136de6841a..5d2677d74a85a 100644 --- a/ArduPlane/ReleaseNotes.txt +++ b/ArduPlane/ReleaseNotes.txt @@ -1,5 +1,14 @@ ArduPilot Plane Release Notes: ------------------------------- +------------------------------------------------------------------ +Release 4.5.5-beta2 27 July 2024 + +Changes from 4.5.5-beta1 + +1) Board specific enhancements and bug fixes + +- CubeRed's second core disabled at boot to avoid spurious writes to RAM +- CubeRed bootloader's dual endpoint update method fixed +------------------------------------------------------------------ Release 4.5.5-beta1 1st July 2024 Changes from 4.5.4 From 6dae7603462e6ab9f1f3fed3409c0b19906f6969 Mon Sep 17 00:00:00 2001 From: arynrosh Date: Sun, 28 Jul 2024 13:13:22 +0530 Subject: [PATCH 229/232] Tools: added name to GIT_Success.txt --- Tools/GIT_Test/GIT_Success.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tools/GIT_Test/GIT_Success.txt b/Tools/GIT_Test/GIT_Success.txt index 3ef569921c66c..91e375800da1b 100644 --- a/Tools/GIT_Test/GIT_Success.txt +++ b/Tools/GIT_Test/GIT_Success.txt @@ -197,4 +197,5 @@ Kei Kabutomori Hiroaki Kawasaki Kazuhide Juta Ryoichi Shiohama -Masaki Shibuya \ No newline at end of file +Masaki Shibuya +Aryan Roshan trying his first commit \ No newline at end of file From d7bc9a420fec5f476196036ced4051a9e49dd186 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 09:46:20 +1000 Subject: [PATCH 230/232] autotest: tracker; tidy GPSForYaw test --- Tools/autotest/antennatracker.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Tools/autotest/antennatracker.py b/Tools/autotest/antennatracker.py index b186711637b6b..3864f4c512e03 100644 --- a/Tools/autotest/antennatracker.py +++ b/Tools/autotest/antennatracker.py @@ -177,8 +177,6 @@ def disabled_tests(self): def GPSForYaw(self): '''Moving baseline GPS yaw''' - self.context_push() - self.load_default_params_file("tracker-gps-for-yaw.parm") self.reboot_sitl() @@ -195,10 +193,6 @@ def GPSForYaw(self): raise NotAchievedException("GPS_RAW not tracking simstate yaw") self.progress(f"yaw match ({gps_raw_hdg} vs {sim_hdg}") - self.context_pop() - - self.reboot_sitl() - def tests(self): '''return list of all tests''' ret = super(AutoTestTracker, self).tests() From 2245399ff9374682ae1fc6e093e8b5224041a9db Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sat, 27 Jul 2024 09:48:59 +1000 Subject: [PATCH 231/232] autotest: tidy Rover autotests autotest: tidy WheelEncoders test autotest: rover: tidy PolyFenceObjectAvoidance code autotest: add load_fence_using_mavwp Also corrects the mission item types being returned by the mission-item-to-misison-item-int converter autotest: fix Rover PolyFenceAvoidanceBendyRulerEasier test these tests weren't being run becausethey were disabled based on support for loading fence items from QGC files. autotest: fix Rover PolyFenceAvoidanceBendyRuler test --- .../rover-path-planning-fence.txt | 0 .../rover-path-planning-mission.txt | 0 .../rover-path-bendyruler-fence.txt | 0 .../rover-path-bendyruler-mission-easier.txt | 0 .../rover-path-bendyruler-fence.txt | 11 + Tools/autotest/rover.py | 284 +++++++----------- Tools/autotest/vehicle_test_suite.py | 44 ++- 7 files changed, 148 insertions(+), 191 deletions(-) rename Tools/autotest/ArduRover_Tests/{PolyFenceObjectAvoidance => PolyFenceObjectAvoidanceAuto}/rover-path-planning-fence.txt (100%) rename Tools/autotest/ArduRover_Tests/{PolyFenceObjectAvoidance => PolyFenceObjectAvoidanceAuto}/rover-path-planning-mission.txt (100%) rename Tools/autotest/ArduRover_Tests/{PolyFenceObjectAvoidanceBendyRulerEasier => PolyFenceObjectAvoidanceBendyRulerEasierAuto}/rover-path-bendyruler-fence.txt (100%) rename Tools/autotest/ArduRover_Tests/{PolyFenceObjectAvoidanceBendyRulerEasier => PolyFenceObjectAvoidanceBendyRulerEasierAuto}/rover-path-bendyruler-mission-easier.txt (100%) create mode 100644 Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierGuided/rover-path-bendyruler-fence.txt diff --git a/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidance/rover-path-planning-fence.txt b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceAuto/rover-path-planning-fence.txt similarity index 100% rename from Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidance/rover-path-planning-fence.txt rename to Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceAuto/rover-path-planning-fence.txt diff --git a/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidance/rover-path-planning-mission.txt b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceAuto/rover-path-planning-mission.txt similarity index 100% rename from Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidance/rover-path-planning-mission.txt rename to Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceAuto/rover-path-planning-mission.txt diff --git a/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasier/rover-path-bendyruler-fence.txt b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierAuto/rover-path-bendyruler-fence.txt similarity index 100% rename from Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasier/rover-path-bendyruler-fence.txt rename to Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierAuto/rover-path-bendyruler-fence.txt diff --git a/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasier/rover-path-bendyruler-mission-easier.txt b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierAuto/rover-path-bendyruler-mission-easier.txt similarity index 100% rename from Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasier/rover-path-bendyruler-mission-easier.txt rename to Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierAuto/rover-path-bendyruler-mission-easier.txt diff --git a/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierGuided/rover-path-bendyruler-fence.txt b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierGuided/rover-path-bendyruler-fence.txt new file mode 100644 index 0000000000000..ace97c223c4a4 --- /dev/null +++ b/Tools/autotest/ArduRover_Tests/PolyFenceObjectAvoidanceBendyRulerEasierGuided/rover-path-bendyruler-fence.txt @@ -0,0 +1,11 @@ +QGC WPL 110 +0 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.071766 -105.230202 0.000000 0 +1 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.071014 -105.230247 0.000000 0 +2 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.071014 -105.228821 0.000000 0 +3 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.071609 -105.228867 0.000000 0 +4 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.071602 -105.228172 0.000000 0 +5 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.070858 -105.227982 0.000000 0 +6 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.070789 -105.226219 0.000000 0 +7 0 0 5001 8.000000 0.000000 0.000000 0.000000 40.072453 -105.226379 0.000000 0 +8 0 0 5004 20.000000 0.000000 0.000000 0.000000 40.071609 -105.228172 0.000000 0 +9 0 0 5004 20.000000 0.000000 0.000000 0.000000 40.071625 -105.227982 0.000000 0 diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 9f4c8e08fa90f..46f1f68b59ba4 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -4794,20 +4794,20 @@ def MotorTest(self): self.wait_servo_channel_value(3, self.get_parameter("RC3_TRIM", 5), timeout=10) self.wait_disarmed() - def test_poly_fence_object_avoidance_guided(self, target_system=1, target_component=1): + def PolyFenceObjectAvoidanceGuided(self, target_system=1, target_component=1): + '''PolyFence object avoidance tests - guided mode''' if not self.mavproxy_can_do_mision_item_protocols(): return self.test_poly_fence_object_avoidance_guided_pathfinding( target_system=target_system, target_component=target_component) - return - # twosquares is currently disabled because of the requirement to have an inclusion fence (which it doesn't have ATM) - # self.test_poly_fence_object_avoidance_guided_two_squares( - # target_system=target_system, - # target_component=target_component) + self.test_poly_fence_object_avoidance_guided_two_squares( + target_system=target_system, + target_component=target_component) - def test_poly_fence_object_avoidance_auto(self, target_system=1, target_component=1): + def PolyFenceObjectAvoidanceAuto(self, target_system=1, target_component=1): + '''PolyFence object avoidance tests - auto mode''' mavproxy = self.start_mavproxy() self.load_fence_using_mavproxy(mavproxy, "rover-path-planning-fence.txt") self.stop_mavproxy(mavproxy) @@ -4823,8 +4823,6 @@ def test_poly_fence_object_avoidance_auto(self, target_system=1, target_componen self.wait_ready_to_arm() self.arm_vehicle() self.set_parameter("FENCE_ENABLE", 1) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") # target_loc is copied from the mission file target_loc = mavutil.location(40.073799, -105.229156) self.wait_location(target_loc, height_accuracy=None, timeout=300) @@ -4872,41 +4870,32 @@ def test_poly_fence_object_avoidance_guided_pathfinding(self, target_system=1, t def WheelEncoders(self): '''make sure wheel encoders are generally working''' - ex = None - try: - self.set_parameters({ - "WENC_TYPE": 10, - "EK3_ENABLE": 1, - "AHRS_EKF_TYPE": 3, - }) - self.reboot_sitl() - self.change_mode("LOITER") - self.wait_ready_to_arm() - self.change_mode("MANUAL") - self.arm_vehicle() - self.set_rc(3, 1600) + self.set_parameters({ + "WENC_TYPE": 10, + "EK3_ENABLE": 1, + "AHRS_EKF_TYPE": 3, + }) + self.reboot_sitl() + self.change_mode("LOITER") + self.wait_ready_to_arm() + self.change_mode("MANUAL") + self.arm_vehicle() + self.set_rc(3, 1600) - m = self.assert_receive_message('WHEEL_DISTANCE', timeout=5) + m = self.assert_receive_message('WHEEL_DISTANCE', timeout=5) - tstart = self.get_sim_time() - while True: - if self.get_sim_time_cached() - tstart > 10: - break - dist_home = self.distance_to_home(use_cached_home=True) - m = self.mav.messages.get("WHEEL_DISTANCE") - delta = abs(m.distance[0] - dist_home) - self.progress("dist-home=%f wheel-distance=%f delta=%f" % - (dist_home, m.distance[0], delta)) - if delta > 5: - raise NotAchievedException("wheel distance incorrect") - self.disarm_vehicle() - except Exception as e: - self.print_exception_caught(e) - self.disarm_vehicle() - ex = e - self.reboot_sitl() - if ex is not None: - raise ex + tstart = self.get_sim_time() + while True: + if self.get_sim_time_cached() - tstart > 10: + break + dist_home = self.distance_to_home(use_cached_home=True) + m = self.mav.messages.get("WHEEL_DISTANCE") + delta = abs(m.distance[0] - dist_home) + self.progress("dist-home=%f wheel-distance=%f delta=%f" % + (dist_home, m.distance[0], delta)) + if delta > 5: + raise NotAchievedException("wheel distance incorrect") + self.disarm_vehicle() def test_poly_fence_object_avoidance_guided_two_squares(self, target_system=1, target_component=1): self.start_subtest("Ensure we can steer around obstacles in guided mode") @@ -5018,159 +5007,86 @@ def PolyFenceAvoidance(self, target_system=1, target_component=1): self.disarm_vehicle() - def test_poly_fence_object_avoidance_guided_bendy_ruler(self, target_system=1, target_component=1): - if not self.mavproxy_can_do_mision_item_protocols(): - return - self.load_fence("rover-path-bendyruler-fence.txt") - self.context_push() - ex = None - try: - self.set_parameters({ - "AVOID_ENABLE": 3, - "OA_TYPE": 1, - "OA_LOOKAHEAD": 50, - }) - self.reboot_sitl() - self.change_mode('GUIDED') - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_parameters({ - "FENCE_ENABLE": 1, - "WP_RADIUS": 5, - }) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") - target_loc = mavutil.location(40.071060, -105.227734, 0, 0) - self.send_guided_mission_item(target_loc, - target_system=target_system, - target_component=target_component) - # FIXME: we don't get within WP_RADIUS of our target?! - self.wait_location(target_loc, timeout=300, accuracy=15) - self.do_RTL(timeout=300) - self.disarm_vehicle() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.disarm_vehicle() + def PolyFenceObjectAvoidanceBendyRuler(self, target_system=1, target_component=1): + '''PolyFence object avoidance tests - bendy ruler''' + self.load_fence_using_mavwp("rover-path-bendyruler-fence.txt") + self.set_parameters({ + "AVOID_ENABLE": 3, + "OA_TYPE": 1, + "FENCE_ENABLE": 1, + "WP_RADIUS": 5, + }) self.reboot_sitl() - if ex is not None: - raise ex - - def PolyFenceObjectAvoidanceBendyRulerEasier(self, target_system=1, target_component=1): - '''PolyFence object avoidance tests - easier bendy ruler test''' - if not self.mavproxy_can_do_mision_item_protocols(): - return - self.test_poly_fence_object_avoidance_auto_bendy_ruler_easier( - target_system=target_system, target_component=target_component) - self.test_poly_fence_object_avoidance_guided_bendy_ruler_easier( - target_system=target_system, target_component=target_component) + self.set_parameters({ + "OA_BR_LOOKAHEAD": 50, + }) + self.change_mode('GUIDED') + self.wait_ready_to_arm() + self.arm_vehicle() + target_loc = mavutil.location(40.071060, -105.227734, 1584, 0) + self.send_guided_mission_item(target_loc, + target_system=target_system, + target_component=target_component) + # FIXME: we don't get within WP_RADIUS of our target?! + self.wait_location(target_loc, timeout=300, accuracy=15) + self.do_RTL(timeout=300) + self.disarm_vehicle() - def test_poly_fence_object_avoidance_guided_bendy_ruler_easier(self, target_system=1, target_component=1): + def PolyFenceObjectAvoidanceBendyRulerEasierGuided(self, target_system=1, target_component=1): '''finish-line issue means we can't complete the harder one. This test can go away once we've nailed that one. The only difference here is the target point. ''' - if not self.mavproxy_can_do_mision_item_protocols(): - return - self.load_fence("rover-path-bendyruler-fence.txt") - self.context_push() - ex = None - try: - self.set_parameters({ - "AVOID_ENABLE": 3, - "OA_TYPE": 1, - "OA_LOOKAHEAD": 50, - }) - self.reboot_sitl() - self.change_mode('GUIDED') - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_parameters({ - "FENCE_ENABLE": 1, - "WP_RADIUS": 5, - }) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") - target_loc = mavutil.location(40.071260, -105.227000, 0, 0) - self.send_guided_mission_item(target_loc, - target_system=target_system, - target_component=target_component) - # FIXME: we don't get within WP_RADIUS of our target?! - self.wait_location(target_loc, timeout=300, accuracy=15) - self.do_RTL(timeout=300) - self.disarm_vehicle() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.disarm_vehicle() + self.load_fence_using_mavwp("rover-path-bendyruler-fence.txt") + self.set_parameters({ + "AVOID_ENABLE": 3, + "OA_TYPE": 1, + "FENCE_ENABLE": 1, + "WP_RADIUS": 5, + }) self.reboot_sitl() - if ex is not None: - raise ex + self.set_parameters({ + "OA_BR_LOOKAHEAD": 60, + }) + self.change_mode('GUIDED') + self.wait_ready_to_arm() + self.arm_vehicle() + target_loc = mavutil.location(40.071260, -105.227000, 1584, 0) + self.send_guided_mission_item(target_loc, + target_system=target_system, + target_component=target_component) + # FIXME: we don't get within WP_RADIUS of our target?! + self.wait_location(target_loc, timeout=300, accuracy=15) + self.do_RTL(timeout=300) + self.disarm_vehicle() - def test_poly_fence_object_avoidance_auto_bendy_ruler_easier(self, target_system=1, target_component=1): + def PolyFenceObjectAvoidanceBendyRulerEasierAuto(self, target_system=1, target_component=1): '''finish-line issue means we can't complete the harder one. This test can go away once we've nailed that one. The only difference here is the target point. ''' - if not self.mavproxy_can_do_mision_item_protocols(): - return - - self.load_fence("rover-path-bendyruler-fence.txt") + self.load_fence_using_mavwp("rover-path-bendyruler-fence.txt") self.load_mission("rover-path-bendyruler-mission-easier.txt") - self.context_push() - ex = None - try: - self.set_parameters({ - "AVOID_ENABLE": 3, - "OA_TYPE": 1, - "OA_LOOKAHEAD": 50, - }) - self.reboot_sitl() - self.change_mode('AUTO') - self.wait_ready_to_arm() - self.arm_vehicle() - self.set_parameters({ - "FENCE_ENABLE": 1, - "WP_RADIUS": 5, - }) - if self.mavproxy is not None: - self.mavproxy.send("fence list\n") - target_loc = mavutil.location(40.071260, -105.227000, 0, 0) - # target_loc is copied from the mission file - self.wait_location(target_loc, timeout=300) - # mission has RTL as last item - self.wait_distance_to_home(3, 7, timeout=300) - self.disarm_vehicle() - except Exception as e: - self.print_exception_caught(e) - ex = e - self.context_pop() - self.disarm_vehicle() - self.reboot_sitl() - if ex is not None: - raise ex - def PolyFenceObjectAvoidance(self, target_system=1, target_component=1): - '''PolyFence object avoidance tests''' - self.test_poly_fence_object_avoidance_auto( - target_system=target_system, - target_component=target_component) - self.test_poly_fence_object_avoidance_guided( - target_system=target_system, - target_component=target_component) - - def PolyFenceObjectAvoidanceBendyRuler(self, target_system=1, target_component=1): - '''PolyFence object avoidance tests - bendy ruler''' - if not self.mavproxy_can_do_mision_item_protocols(): - return - # bendy Ruler isn't as flexible as Dijkstra for planning, so - # it gets a simpler test: - self.test_poly_fence_object_avoidance_guided_bendy_ruler( - target_system=target_system, - target_component=target_component, - ) + self.set_parameters({ + "AVOID_ENABLE": 3, + "OA_TYPE": 1, # BendyRuler + "FENCE_ENABLE": 1, + "WP_RADIUS": 5, + }) + self.reboot_sitl() + self.set_parameters({ + "OA_BR_LOOKAHEAD": 60, + }) + self.change_mode('AUTO') + self.wait_ready_to_arm() + self.arm_vehicle() + target_loc = mavutil.location(40.071260, -105.227000, 1584, 0) + # target_loc is copied from the mission file + self.wait_location(target_loc, timeout=300) + # mission has RTL as last item + self.wait_distance_to_home(3, 7, timeout=300) + self.disarm_vehicle() def test_scripting_simple_loop(self): self.start_subtest("Scripting simple loop") @@ -6861,10 +6777,12 @@ def tests(self): self.SkidSteer, self.PolyFence, self.PolyFenceAvoidance, - self.PolyFenceObjectAvoidance, + self.PolyFenceObjectAvoidanceAuto, + self.PolyFenceObjectAvoidanceGuided, self.PolyFenceObjectAvoidanceBendyRuler, self.SendToComponents, - self.PolyFenceObjectAvoidanceBendyRulerEasier, + self.PolyFenceObjectAvoidanceBendyRulerEasierGuided, + self.PolyFenceObjectAvoidanceBendyRulerEasierAuto, self.SlewRate, self.Scripting, self.ScriptingSteeringAndThrottle, diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py index 19b9f946d92cb..67cdbf54e4cdb 100644 --- a/Tools/autotest/vehicle_test_suite.py +++ b/Tools/autotest/vehicle_test_suite.py @@ -2112,6 +2112,14 @@ def load_fence(self, filename): (mavutil.mavlink.MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION, locs), ]) + def load_fence_using_mavwp(self, filename): + filepath = os.path.join(testdir, self.current_test_name_directory, filename) + if not os.path.exists(filepath): + filepath = self.generic_mission_filepath_for_filename(filename) + self.progress("Loading fence from (%s)" % str(filepath)) + items = self.mission_item_protocol_items_from_filepath(mavwp.MissionItemProtocol_Fence, filepath) + self.check_fence_upload_download(items) + def send_reboot_command(self): self.mav.mav.command_long_send(self.sysid_thismav(), 1, @@ -5124,7 +5132,7 @@ def load_mission(self, filename, strict=True): os.path.join(testdir, self.current_test_name_directory, filename), strict=strict) - def wp_to_mission_item_int(self, wp): + def wp_to_mission_item_int(self, wp, mission_type): '''convert a MISSION_ITEM to a MISSION_ITEM_INT. We always send as MISSION_ITEM_INT to give cm level accuracy Swiped from mavproxy_wp.py @@ -5145,19 +5153,35 @@ def wp_to_mission_item_int(self, wp): wp.param4, int(wp.x*1.0e7), int(wp.y*1.0e7), - wp.z) + wp.z, + mission_type, + ) return wp_int - def mission_from_filepath(self, filepath, target_system=1, target_component=1): + def mission_item_protocol_items_from_filepath(self, + loaderclass, + filepath, + target_system=1, + target_component=1, + ): '''returns a list of mission-item-ints from filepath''' - self.progress("filepath: %s" % filepath) - self.progress("Loading mission (%s)" % os.path.basename(filepath)) - wploader = mavwp.MAVWPLoader( + # self.progress("filepath: %s" % filepath) + self.progress("Loading {loaderclass.itemstype()} (%s)" % os.path.basename(filepath)) + wploader = loaderclass( target_system=target_system, target_component=target_component ) wploader.load(filepath) - return [self.wp_to_mission_item_int(x) for x in wploader.wpoints] + return [self.wp_to_mission_item_int(x, wploader.mav_mission_type()) for x in wploader.wpoints] # noqa:502 + + def mission_from_filepath(self, filepath, target_system=1, target_component=1): + '''returns a list of mission-item-ints from filepath''' + return self.mission_item_protocol_items_from_filepath( + mavwp.MAVWPLoader, + filepath, + target_system=target_system, + target_component=target_component, + ) def sitl_home_string_from_mission(self, filename): '''return a string of the form "lat,lng,yaw,alt" from the home @@ -5178,6 +5202,10 @@ def get_home_tuple_from_mission(self, filename): os.path.join(testdir, self.current_test_name_directory, filename) ) + def get_home_location_from_mission(self, filename): + (home_lat, home_lon, home_alt, heading) = self.get_home_tuple_from_mission("rover-path-planning-mission.txt") + return mavutil.location(home_lat, home_lon) + def get_home_tuple_from_mission_filepath(self, filepath): '''gets item 0 from the mission file, returns a tuple suitable for passing to customise_SITL_commandline as --home. Yaw will be @@ -9078,7 +9106,7 @@ def upload_using_mission_protocol(self, mission_type, items): raise NotAchievedException("received request for item from wrong mission type") if items[m.seq].mission_type != mission_type: - raise NotAchievedException("supplied item not of correct mission type") + raise NotAchievedException(f"supplied item not of correct mission type (want={mission_type} got={items[m.seq].mission_type}") # noqa:501 if items[m.seq].target_system != target_system: raise NotAchievedException("supplied item not of correct target system") if items[m.seq].target_component != target_component: From f60ecbfe4e53a0dc27e376b6dd18bdcf745d53b2 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Mon, 29 Jul 2024 08:59:17 +1000 Subject: [PATCH 232/232] autotest: disable PolyFenceObjectAvoidanceBendyRuler as it is unreliable ATM --- Tools/autotest/rover.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/autotest/rover.py b/Tools/autotest/rover.py index 46f1f68b59ba4..ad4deeb0f3f0d 100644 --- a/Tools/autotest/rover.py +++ b/Tools/autotest/rover.py @@ -6825,6 +6825,7 @@ def disabled_tests(self): return { "SlewRate": "got timing report failure on CI", "MAV_CMD_NAV_SET_YAW_SPEED": "compiled out of code by default", + "PolyFenceObjectAvoidanceBendyRuler": "unreliable", } def rc_defaults(self):

Rl2BzM6^kUvKguFvMXd z)Dt9w@3Ru)uMx08=qKiZ>5pXT{>5NFY%p3cD?I-I^8&pF?ug4y-vPY~#!pfmZFeq} zh6E=Jd>V{95DWfyZOi`wrk?`q6VDa!X%tw`paHzD)H5jChhycR+cE$%;P z-f`X8#KFKzJQiGuCa0N@`g|gIJ+ABXZk}!MF9erh8GOWTUhb3Vq&CJQs7jK1QtIEUe!N?gEYg2V$nwM|nJ${tB8t57@{b z_Yslq3@3wmfo4YF`Zr@Dnd%N$XmEHDtiNavu)?6f+NxW~CkQuuZyWU8;5h6L(17@} zahmuLT(I0TM!u%~_g36|>V5np9KKs2Om89q_1Q1rQ&>Jny15%1C0iRh_Qgbmfco4Y z0p>Lv3~s{r@O6C@cr*s(V0XMU2Mqi=o@EGt->Z5BTx#GoVETc)uRGxHz-Fv=`i^No zcr+U`9~sg+ju{M}gXwS7>DTpHFgBqU`kx+m{V%u-V*nq2xLW8InErs+0kjP50iEDJ zsIi`2!z91H%yZcVf^%?RaIH1HL-d9LFAMz_B>Y4)m^WdZfs?@1s4?{^by0>vp8}4< zC_m)ZXM^kPo-NlRFMnKrFT?OgZ_lWG4IGFP>owQ|#%1MtQ43U(KF*_m29873X^hY# zng1dGwu#DL+y-~VAlD0g7u;4sTK}71h{2$WcV8y$`eRUHlc--t;ovVZv*~>t4{i&9 z^fvH%R-lQLzH{q5LIs)&rtc@wn4le2A^0*bd-Rxa-Tyma-~mg)MHr>}j%7304_ATS zA|HUSWAV^O^_O5lfETsUCGehf&nEWY;3BZT{?~)M<5ulA`ug7eHU! zEUbR?BU|FZU|ztH;A1GDe(RNG(5Hh}p@!I-y3*HLaG8QlZhp4SAD@j-6BSc}s#B}A z{70(dw`;e$sK`TFyo^_K4{4!(^f_dd|x3EYI837)=-Z`7_2wGhAZ)tY!oRez|3%SY7J549fu2aHl1EC2ui diff --git a/Tools/bootloaders/CubeOrangePlus_bl.hex b/Tools/bootloaders/CubeOrangePlus_bl.hex index 397c591dedf6c..858080cb6351f 100644 --- a/Tools/bootloaders/CubeOrangePlus_bl.hex +++ b/Tools/bootloaders/CubeOrangePlus_bl.hex @@ -1,34 +1,34 @@ :020000040800F2 :1000000000060020E1020008E3020008E302000805 :10001000E3020008E3020008E3020008E30200082C -:10002000E3020008E3020008E3020008A9760008E2 +:10002000E3020008E3020008E3020008D5760008B6 :10003000E3020008E3020008E3020008E30200080C :10004000E3020008E3020008E3020008E3020008FC -:10005000E3020008E302000891850008BD8500085E -:10006000E98500081586000841860008DD4500087E -:1000700005460008314600085D460008894600082C -:10008000B1460008DD460008E3020008E30200086C -:10009000E3020008E3020008E30200086D8600089E +:10005000E3020008E3020008BD850008E985000806 +:1000600015860008418600086D860008E9450008ED +:10007000114600083D4600086946000895460008FC +:10008000BD460008E9460008E3020008E302000854 +:10009000E3020008E3020008E30200089986000872 :1000A000E3020008E3020008E3020008E30200089C :1000B000E3020008E3020008E3020008E30200088C :1000C000E3020008E3020008E3020008E30200087C -:1000D000E3020008E3020008598700086D87000862 -:1000E000D1860008E3020008E3020008E3020008EA -:1000F000E3020008E3020008E302000809470008E1 -:10010000E30200084587000895870008E30200081D +:1000D000E3020008E302000885870008998700080A +:1000E000FD860008E3020008E3020008E3020008BE +:1000F000E3020008E3020008E302000815470008D5 +:10010000E302000871870008C1870008E3020008C5 :10011000E3020008E3020008E3020008E30200082B -:10012000354700085D47000889470008B5470008C3 -:10013000E1470008E3020008E3020008E3020008C8 +:10012000414700086947000895470008C147000893 +:10013000ED470008E3020008E3020008E3020008BC :10014000E3020008E3020008E3020008E3020008FB -:10015000094800083548000861480008E302000823 +:1001500015480008414800086D480008E3020008FF :10016000E3020008E3020008E3020008E3020008DB -:10017000E302000881820008E3020008E3020008AD -:10018000E3020008E302000881870008E302000898 +:10017000E3020008AD820008E3020008E302000881 +:10018000E3020008E3020008AD870008E30200086C :10019000E3020008E3020008E3020008E3020008AB :1001A000E3020008E3020008E3020008E30200089B :1001B000E3020008E3020008E3020008E30200088B :1001C000E3020008E3020008E3020008E30200087B -:1001D000E30200086D820008E3020008E302000861 +:1001D000E302000899820008E3020008E302000835 :1001E000E3020008E3020008E3020008E30200085B :1001F000E3020008E3020008E3020008E30200084B :10020000E3020008E3020008E3020008E30200083A @@ -51,22 +51,22 @@ :100310004F8FBFF36F8F40F20000C0F2F0004EF637 :100320008851CEF200010860BFF34F8FBFF36F8F8B :100330004FF00000E1EE100A4EF63C71CEF20001E3 -:100340000860062080F31488BFF36F8F07F00EFA61 -:1003500006F06EFB4FF055301F491B4A91423CBFDF +:100340000860062080F31488BFF36F8F07F024FA4B +:1003500006F074FB4FF055301F491B4A91423CBFD9 :1003600041F8040BFAE71D49184A91423CBF41F895 :10037000040BFAE71A491B4A1B4B9A423EBF51F83D :10038000040B42F8040BF8E700201849184A914280 -:100390003CBF41F8040BFAE707F026FA06F0E6FB4B +:100390003CBF41F8040BFAE707F03CFA06F0D4FB47 :1003A000144C154DAC4203DA54F8041B8847F9E7A6 :1003B00000F0C4F9114C124DAC4203DA54F8041B9E -:1003C0008847F9E707F00EBA000600200022002057 +:1003C0008847F9E707F024BA000600200022002041 :1003D0000000000808ED00E00000002000060020FA -:1003E000289C00080022002074220020782200208F +:1003E000509C000800220020742200207822002067 :1003F00034670020E0020008E0020008E002000884 :10040000E00200082DE9F04F2DED108AC1F80CD064 :10041000D0F80CD0BDEC108ABDE8F08F002383F338 -:1004200011882846A047002006F0E4F8FEE706F011 -:100430003DF800DFFEE7000053B94AB9002908BFC4 +:1004200011882846A047002006F0EAF8FEE706F00B +:1004300043F800DFFEE7000053B94AB9002908BFBE :1004400000281CBF4FF0FF314FF0FF3000F074B9AF :10045000ADF1080C6DE904CE00F006F8DDF804E01B :10046000DDE9022304B070472DE9F047089D0446FA @@ -115,16 +115,16 @@ :1007100064EB0C0E0138A3E74646EAE7204694E76F :100720004046D1E7D0467BE7023B614432E73046A2 :1007300009E76444023842E7704700BF38B501F06A -:10074000F3F901F0A3FB06F09DFE054606F0A2FFBB +:10074000F3F901F0A3FB06F08BFE054606F0B8FFB7 :100750000446D0B90F4B9D4219D001339D4241F25E -:10076000883504BF01240025002006F095FE0CB159 +:10076000883504BF01240025002006F083FE0CB16B :1007700000F078F801F02AFB00F01AFD08B100F053 :1007800071F8284600F010F9F9E70025ECE7054676 :10079000EAE700BF010007B008B501F091F9A0F148 :1007A00020035842584108BD07B541F21203022107 :1007B00001A8ADF8043001F0A1F903B05DF804FB25 :1007C00038B5302383F31188174803680BB105F05F -:1007D000F5FF0023154A4FF47A71134805F0E4FF42 +:1007D000FBFF0023154A4FF47A71134805F0EAFF36 :1007E000002383F31188124C236813B12368013B63 :1007F0002360636813B16368013B63600D4D2B7820 :1008000033B963687BB9022001F04AFA322363608E @@ -156,8 +156,8 @@ :1009A0000044025800ED00E02DE9F04F93B0B44B45 :1009B0002022FF2100900AA89D6801F0B1F9B14AF8 :1009C0001378A3B90121B04811700360302383F379 -:1009D000118803680BB105F0F1FE0023AB4A4FF418 -:1009E0007A71A94805F0E0FE002383F31188009B8B +:1009D000118803680BB105F0F7FE0023AB4A4FF412 +:1009E0007A71A94805F0E6FE002383F31188009B85 :1009F00013B1A74B009A1A60A64A1378032B03D0B1 :100A000000231370A24A53604FF0000A009CD346A3 :100A10005646D146012001F039F924B19C4B1B68A0 @@ -211,7 +211,7 @@ :100D100000283FF4DFAE0027B846704B9B68BB420B :100D200018D91F2F11D80A9B01330ED027F00303C7 :100D300012AA134453F8203C05934046042205A907 -:100D4000043701F0F9F88046E7E7384600F008FF7D +:100D4000043701F0FFF88046E7E7384600F008FF77 :100D50000590F2E7CDF81480042105A800F0CEFE3E :100D600002E70023642104A8049300F0BDFE0028DC :100D70007FF4B0AE0220FFF70FFD00283FF4AAAECB @@ -230,11 +230,11 @@ :100E400049AE00F0C9FE002844D00A9B01330BD004 :100E500008220AA9002000F06BFF00283AD02022C7 :100E6000FF210AA800F05CFFFFF79EFC1C4805F07C -:100E7000C7FB13B0BDE8F08F002E3FF42BAE0BF094 +:100E7000CDFB13B0BDE8F08F002E3FF42BAE0BF08E :100E80000B030B2B7FF426AE0023642105A80593EA :100E900000F02AFE074600287FF41CAE0220FFF770 :100EA0007BFC804600283FF415AEFFF77DFC41F245 -:100EB000883005F0A5FB059800F0C6FF46463C4685 +:100EB000883005F0ABFB059800F0C6FF46463C467F :100EC00000F07AFFA6E506464EE64FF0000901E67F :100ED000BA467EE637467CE69422002000220020B7 :100EE000A0860100704700007047000070470000B6 @@ -243,22 +243,22 @@ :100F1000004FE56002D816B1BDE8F081DEB905F0FA :100F20007F0605F110000021C6F180062044F6B2CC :100F300032462E4400F0F4FEA06804F11008324658 -:100F400000F10060414600F5003006F047F830B986 +:100F400000F10060414600F5003006F035F830B998 :100F500001233B74E0E74FF400463546ECE7A26816 :100F600005F11001404632442144A260E268521B60 :100F7000E26000F0AFFE0220BDE8F04100F090BE5C -:100F8000183000F0E9BC000010B5044600F0F0FF96 -:100F9000204610BD10B5044600F0EAFF204610BD03 +:100F8000183000F0E9BC000010B5044600F0F6FF90 +:100F9000204610BD10B5044600F0F0FF204610BDFD :100FA000C3B280B2A3F14102052A02D8373800B299 :100FB0007047613B052B94BF57383038F7E7000086 :100FC000F8B504461546084603220C4900F08CFE8D :100FD000014688B908346F1C15F91100FFF7E0FFCE :100FE000064617F911000131FFF7DAFF102940EA30 -:100FF000061004F8010BEFD1F8BD00BFDC9100082A +:100FF000061004F8010BEFD1F8BD00BF08920008FD :101000002DE9F04FADF53F7D0746416801222AA842 -:1010100002F090FE002840F0878006468246814616 +:1010100002F096FE002840F0878006468246814610 :101020001125DFF80C81DFF80CB101AB4FF48052D1 -:1010300041462AA802F0DEFF002875D1019AB2F5D8 +:1010300041462AA802F0E4FF002875D1019AB2F5D2 :10104000805F71D8002A65D00446019A9442ECD2A0 :10105000282D0FD008DC132D2DD01E2D39D0112DA9 :1010600013D00134A4B2F0E7322D2DD0372D2FD07C @@ -269,33 +269,33 @@ :1010B000A1461325D5E718F804300A2B34D03A2B73 :1010C00004BFA2463225CCE718F80430202BC8D044 :1010D000264618F804300A2B1AD1AAEB090208EBAD -:1010E000090102A811254F2A28BF4F2208F062F8F3 +:1010E000090102A811254F2A28BF4F2208F078F8DD :1010F000A21B08EB060116A84F2A28BF4F2208F0B2 -:1011000059F83B6816AA02A9DB6838469847A8E751 +:101100006FF83B6816AA02A9DB6838469847A8E73B :101110001E25A6E73B68384604491B69984701200D -:101120000DF53F7DBDE8F08F0020F9E7DE92000865 -:10113000A0230020E091000800F1180110B504463A +:101120000DF53F7DBDE8F08F0020F9E70A93000838 +:10113000A02300200C92000800F1180110B504460D :1011400086B00846019100F0F1FB2046FFF758FFFA :1011500060B1019902A800F049FC102204F10801D5 -:1011600002A807F0E7FFB0FA80F0400906B010BD12 +:1011600002A807F0FDFFB0FA80F0400906B010BDFC :1011700070B504460025EEB2304600F0FFFC58B1D1 :1011800000213046013500F009FD08B9002070BD8E :10119000022000F085FDEEE72046FFF731FF002832 :1011A000F4D004F58034207C80F00100EFE70000EB -:1011B000F0B5C9B006F07EF900F0F6FE18B90025CA -:1011C000284649B0F0BD69462A4802F0D5FF0028FC -:1011D0004BD1294C204602F0FFFF284802F0FCFFCB -:1011E000274802F0F9FF2146224803F071F8002851 -:1011F000E5D1702000F0B6FE064610B1214B4460E8 +:1011B000F0B5C9B006F06CF900F0FCFE18B90025D6 +:1011C000284649B0F0BD69462A4802F0DBFF0028F6 +:1011D0004BD1294C204603F005F8284803F002F8CB +:1011E000274802F0FFFF2146224803F077F8002845 +:1011F000E5D1702000F0BCFE064610B1214B4460E2 :101200000360336830469B689847054600282ED017 -:101210001A4F1948394603F05BF805460028CED12D -:10122000194800F09FFE044638B1184B4760036030 +:101210001A4F1948394603F061F805460028CED127 +:10122000194800F0A5FE044638B1184B476003602A :1012300000F58033C0E902551D74236820469B6881 -:101240009847054628B10E490C4803F041F800289C +:101240009847054628B10E490C4803F047F8002896 :10125000B5D1336830465B6898471CB12368204697 -:101260005B68984700F088FEAAE70025FAE7044685 -:10127000EFE700BFE4910008F49100080B9200082A -:1012800021920008449200081400010060920008B6 +:101260005B68984700F08EFEAAE70025FAE704467F +:10127000EFE700BF109200082092000837920008A4 +:101280004D92000870920008140001008C92000832 :101290002DE9F04FD44A8DB00B68D0F804A001932B :1012A0001A440368D14E1A44D1F81C90DFF8B4C335 :1012B000DFF8B4B3D0E90234634003EA0A036340C1 @@ -408,24 +408,24 @@ :1019600005460E46E300C2F3C50800F118079B18B0 :10197000036122BF43690133436112F4FC7F436971 :1019800003EB5473436114D0C8F1400907EB08001E -:101990004C4504D22246BDE8F84307F0DBBB403C8F -:1019A0004A464E4407F0D6FB444439462846FFF7E2 +:101990004C4504D22246BDE8F84307F0F1BB403C79 +:1019A0004A464E4407F0ECFB444439462846FFF7CC :1019B0006FFCA04606EB0409B8F13F0FA9EB080144 -:1019C0000AD94022384607F0C5FB39462846A8F117 +:1019C0000AD94022384607F0DBFB39462846A8F101 :1019D0004008FFF75DFCEFE7A1096FF03F023846D2 :1019E00002FB014206EB8111D5E7000070B50B69DF :1019F00001F1180506460C46C3F3C503EA18501C4E :101A00008022EA54C3F13F02072A1FD8002100F0C8 :101A100087F929462046FFF73BFC3822002128465B :101A200000F07EF9236929462046236563696365D2 -:101A3000FFF72EFC21461022304607F08BFB204694 +:101A3000FFF72EFC21461022304607F0A1FB20467E :101A400058220021BDE8704000F06AB9C3F13702A6 :101A50000021E5E72DE9F84F4FF47A7306460D466D :101A6000002402FB03F7DFF85080DFF8509098F96C :101A700000305FFA84FA5A1C01D0A34210D159F801 :101A800024002A4631460368D3F820B03B46D847A5 :101A9000854205D1074B012083F800A0BDE8F88FEF -:101AA0000134042CE3D14FF4FA7004F0A9FD0020B6 +:101AA0000134042CE3D14FF4FA7004F0AFFD0020B0 :101AB000F4E700BFE43300201022002014220020AD :101AC000002307B5024601210DF107008DF807300C :101AD000FFF7C0FF20B19DF8070003B05DF804FBDD @@ -434,15 +434,15 @@ :101B000030B41978064B53F821400146236820462B :101B1000DD69044BAC4630BC604700BFE4330020B5 :101B200014220020A086010070B50A4E00240A4D40 -:101B300005F0F8F9308028683388834208D905F029 -:101B4000EDF92B6804440133B4F5003F2B60F2D368 -:101B500070BD00BFE6330020A033002005F0B0BA0E +:101B300005F0E6F9308028683388834208D905F03B +:101B4000DBF92B6804440133B4F5003F2B60F2D37A +:101B500070BD00BFE6330020A033002005F09EBA20 :101B600000F1006000F500300068704700F100608F -:101B7000920000F5003005F031BA0000054B1A68FC -:101B8000054B1B889B1A834202D9104405F0C6B945 +:101B7000920000F5003005F01FBA0000054B1A680E +:101B8000054B1B889B1A834202D9104405F0B4B957 :101B900000207047A0330020E633002038B504460B -:101BA000074D29B128682044BDE8384005F0CEB97A -:101BB0002868204405F0B8F90028F3D038BD00BFEC +:101BA000074D29B128682044BDE8384005F0BCB98C +:101BB0002868204405F0A6F90028F3D038BD00BFFE :101BC000A03300200020704700F1FF5000F58F1077 :101BD000D0F8000870470000064991F8243033B16E :101BE00000230822086A81F82430FFF7BFBF0120D4 @@ -454,12 +454,12 @@ :101C40000B4602D22C2203F8012B0424094A1688E1 :101C5000AE4204D1984284BF967803F8016B013CF0 :101C600002F10402F3D1581A70BD00BF0010005CED -:101C700024220020A0920008022803D1024B4FF03A +:101C700024220020CC920008022803D1024B4FF00E :101C800080529A61704700BF00100258022803D1A9 :101C9000024B4FF480529A61704700BF0010025807 :101CA000022804D1024A536983F480535361704778 :101CB0000010025870B504464FF47A764CB1412CAE -:101CC000254628BF412506FB05F0641B04F098FC5F +:101CC000254628BF412506FB05F0641B04F09EFC59 :101CD000F4E770BD002310B5934203D0CC5CC4542C :101CE0000133F9E710BD0000013810B510F9013FCC :101CF0003BB191F900409C4203D11AB10131013A44 @@ -476,2033 +476,2036 @@ :101DA000CFD0FFF719FF0028CBD10020BDE8F88382 :101DB0000120FBE7A4330020024B1A78024B1A7073 :101DC000704700BFE433002010220020F8B5194C02 -:101DD000194803F01DFF2146174803F045FF24680A +:101DD000194803F023FF2146174803F04BFF2468FE :101DE0004FF47A70154ED4F89020154DD2F804387F :101DF000114F43F00203C2F80438FFF75BFF20469F -:101E0000104904F03FF8D4F890200424D2F80438A4 +:101E0000104904F045F8D4F890200424D2F804389E :101E100023F00203C2F804384FF4E133336055F87D -:101E2000040BB84202D0314603F050FE013CF6D11B -:101E3000F8BD00BFA09A000818490020CC3300204C -:101E400014220020A89A00080C4B70B50C4D0446D3 +:101E2000040BB84202D0314603F056FE013CF6D115 +:101E3000F8BD00BFCC9A000818490020CC33002020 +:101E400014220020D49A00080C4B70B50C4D0446A7 :101E50001E780C4B55F826209A420DD00A4B0021D3 :101E600018221846FFF75CFF0460014655F826006B -:101E7000BDE8704003F02ABE70BD00BFE43300200F -:101E80001422002018490020CC330020F0B5A1B066 -:101E900071B600230120002480261A46194602F05C -:101EA0007DFD4FF4D067214A3D25136923BBD2F84D -:101EB00010310BBB036804F1006199600368C3F83B -:101EC0000CD003685E6003681F6001680B6843F014 -:101ED00001030B6001680B6823F01E030B600168AF -:101EE0000B68DB07FCD4037B8034416805FA03F3FD -:101EF000B4F5001F0B60D8D102F086FDB4F5001FC9 -:101F000011D000240A4E0B4D012005F0D9F833887A -:101F1000A34205D928682044013405F017F8F6E7F4 -:101F2000002005F0CDF861B621B0F0BD00200052D0 -:101F3000E6330020A033002030B50A44084D91421A -:101F40000DD011F8013B5840082340F30004013B39 -:101F50002C4013F0FF0384EA5000F6D1EFE730BDC8 -:101F60002083B8ED0121884238BF084605F080B9CA -:101F700008B105F081B9704710B5084C0122084935 -:101F8000002001F0B3FE23783BB1064803F016FDB4 -:101F9000044803F049FD0023237010BDE8330020FE -:101FA000B0920008C83600201D482DE9F041036DAD -:101FB0002BB901224FF48051503005F0BDFA194E73 -:101FC00033780BB1FFF7D8FF0324174F4FF0000809 -:101FD000134D15492846C7F8048003F017FD28461D -:101FE00003F050FB48B1013C284603F01DFD14F0FE -:101FF000FF04EED1204634700FE00C4901220C485A -:1020000001F074FE014618B1284603F0D7FCEAE758 -:10201000084800F011F801203070BDE8F08100BFE1 -:10202000C8360020E83300203C220020B09200088F -:10203000EC330020B49200080FB4002004B07047C5 -:102040000068704703460068596870470B0A0170C2 -:1020500043700B0C090E8370C1707047110A027037 -:1020600003714170110C120E8170C2701A0A427114 -:102070001A0C1B0E8271C37170470000C36A0239CB -:10208000023B8B4283BF4389006C01FB03000020AD -:1020900070470000C2F307238A76CB760378032BC0 -:1020A00001BF120C0A75120A4A75704700F10B0144 -:1020B0000022D30143EA520310F8012B52FA83F3B2 -:1020C0008842DAB2F5D110467047000010B5417869 -:1020D00004460020013102464901022A16BFA35CD2 -:1020E000032203EBC03302F101021EBF9BB203EBDC -:1020F000500398B29142F0D810BD000002684AB176 -:10210000134613F8011B1F290DD93A29F9D1911C47 -:102110008B4202D04FF0FF3070471278302AF9D14D -:10212000036000207047014B187870473836002054 -:1021300038B50D46044618B9092000232B6038BD78 -:102140000368002BF8D01A78002AF5D08188DA8845 -:102150009142F1D1587804F0EFFB10F00100EBD17F -:102160002368EBE738B50D4640F25231144602F0D1 -:10217000B9F9FF2807D9012C0BD9030A022468708A -:102180002B70204638BD30B1002CFAD001242870C5 -:10219000F7E70024F5E70446F3E700002DE9F843EC -:1021A0000026D0F8008005460C468E76836B002B07 -:1021B0004AD098F80030042B4BD13346354640279F -:1021C00020E0B7F5187F80F0C480F90606F101061B -:1021D00008BF0237D05B02372BB900F5205292B20C -:1021E000B2F5006F0DD305F11A01C5F1FF0240EA07 -:1021F00003402144FFF7B6FF002800F0AA80054401 -:1022000000200346D8F8102092F82310B142D8D805 -:10221000002B40F09E80002D00F09B800023254481 -:10222000AB766373D8F81020137903F03701DB061F -:1022300021730BD402F13800FFF704FFC4E9000159 -:1022400093896381D3892381BDE8F8830020014607 -:10225000F4E7C36C01335ED1EA6B00232E26551ED2 -:10226000184615F8011F013020290CD0052908BF98 -:10227000E521092804D10B2B9EBFE71801337E739B -:10228000E718013379730B28EBD1E118002048736C -:10229000A17E00294BD1002B40D06FF00C0604F139 -:1022A0000D000825361B331810F8011B002938D003 -:1022B0002E298BB24AD0A3F14101192903D8117BF1 -:1022C0000D4200D020330373EDE7B9F1000F05D1C3 -:1022D00000F520539BB2B3F5006F0BD307F11A0141 -:1022E000C7F1FF0240EA09402144FFF73BFF48B134 -:1022F0000744002002368146D8F80C30985B00284D -:10230000E3D13846B9F1000F4FF0000218BF0020AA -:1023100023189A76A0E7B1463746EDE73F23A37628 -:102320000123234400219976137B03B96373D37A85 -:1023300002F11C0003F03F0323730023FFF780FE2C -:1023400020606360D38A6381138B7CE710250B4682 -:10235000B9E73F230125A37660E7000038B50546BD -:10236000002435F8020B08B9204638BD02F0EEF81B -:102370006308C2B203EBC43312FA83F39AB2C0F318 -:10238000072303EB520303EBC2339CB2E9E70000DF -:1023900037B5C37804461BB90025284603B030BDC5 -:1023A00000F14C01826C01234078019104F0EAFABB -:1023B000054680B9A36BE070A06C226BC31A9342F0 -:1023C000EAD2A3780199022BE6D102440123607876 -:1023D00004F0D8FAE1E70125DFE7000038B5836CA7 -:1023E00005460C468B4210D0FFF7D2FF60B922465B -:1023F000012305F14C01687804F0A0FA00281CBF05 -:102400004FF0FF340120AC6438BD0020FCE7000031 -:1024100038B500230446C3704FF0FF338364FFF7E1 -:10242000DDFF00284BD1B4F84A524AF655239D42AD -:1024300007D10B22254904F14C0006F07BFE002851 -:102440003FD094F84C30EB2B03D01833DBB2012B88 -:102450002ED84AF655239D4206D108221C4904F184 -:102460009E0006F067FE48B3B4F85730B3F5007F1E -:102470001ED194F85930DBB15A1E1A4218D1B4F863 -:102480005A30ABB194F85C30013B012B10D8B4F852 -:102490005D306BB1B4F85F307F2B06D804F16C006F -:1024A000FFF7CEFDB0F5803F02D3B4F8623053B9E8 -:1024B0004AF6552085420CBF0220032038BD042077 -:1024C000FCE70120FAE70020F8E700BFE0920008EF -:1024D000EC92000802392DE9F04701F007044FF0B3 -:1024E000010A466C05460AFA04F41746984606EBBC -:1024F0001136C1F3C809E4B2314628460136FFF768 -:102500006DFF18B10120BDE8F087994605EB09027F -:1025100092F84C30234214BF01210021414513D0D1 -:102520006340013F82F84C3085F803A0EBD0640093 -:1025300014F0FF04EAD109F1010301244FF000096E -:10254000B3F5007FE1D1D7E70220DCE7012902469D -:10255000F8B50C4640F28C800668F36A8B4240F274 -:1025600087803378013B032B00F28280DFE803F0A1 -:102570000229384B04EB5405B16B304601EB552171 -:10258000FFF72CFF10B14FF0FF30F8BD6F1CC5F303 -:102590000805B16B3046354401EB572195F84C5096 -:1025A000FFF71CFF0028EED1C7F30807E3073E44FE -:1025B00096F84C0045EA00204CBF0009C0F30B0020 -:1025C000E3E7B16B304601EB1421FFF707FF00286A -:1025D000D9D1640004F4FF742644B6F84C00D4E763 -:1025E000B16B304601EBD411FFF7F8FE0028CAD1D9 -:1025F000A40006F14C0004F4FE742044FFF720FD13 -:1026000020F07040C1E7D0E90430D57953EA0001E9 -:1026100001D0916801B95DBB9168022DA4EB010165 -:102620000DD1013B728940F1FF305B0A43EAC05390 -:10263000B3FBF2F399421BD81CD0601CA5E7032D15 -:1026400002D193698B42F8D8D3699BB9B16B3046FC -:1026500001EBD411FFF7C2FE002894D1A0004C3644 -:1026600000F4FE703044FFF7EBFC20F000408CE7F4 -:1026700001208AE76FF0004087E70000F8B50668A0 -:1026800004460D463378042B0CBF4FF080524FF4B4 -:1026900000128A4201D80220F8BDCA06FBD1826826 -:1026A0000163D2B9022B13D83389B3EB551FF2D98A -:1026B000F36BA363A36B6263002BECD003EB552396 -:1026C0004C36C5F308050020A3633544E563E3E712 -:1026D000F36BC271002BE7D01A4677897F02BD42A7 -:1026E000114604D23046FFF7C9FCA063E2E720465A -:1026F000FFF72CFF431C024606D00128CBD9F36A12 -:102700008342C8D9ED1BEAE70120C5E701292DE97D -:10271000F04706460C46174608D9C36A8B4205D9CE -:102720000378022B62D003D8012B22D0022552E07D -:10273000033B012BFAD8816B01EBD411FFF74EFE5E -:102740000546002847D1A40006F14C0304F4FE74AA -:102750001C443378042B07D0204627F07047FFF73E -:102760006FFC00F07040074339462046FFF76EFCCF -:102770002FE001EB5108816B01EB5821FFF72EFE92 -:10278000054640BB14F0010406F14C0908F1010AAA -:10279000C8F3080808BFFBB230461FBF19F808305D -:1027A00003F00F023B0103F0F00318BF134309F8D5 -:1027B00008300123B16BF37001EB5A21FFF70EFED5 -:1027C000054640B9CAF3080A44B1C7F3071709F828 -:1027D0000A700123F3702846BDE8F08719F80A3023 -:1027E000C7F3032723F00F031F43F0E7816B01EBCF -:1027F0001421FFF7F3FD05460028ECD1640006F133 -:102800004C0304F4FF741F551919C7F307274F70C1 -:10281000DFE70000F8B504460E461746E3690BB93A -:102820001846F8BD012BA6EB0305206814BFAA1CAF -:102830003A46691CFFF76AFF0028F2D1E369013BC1 -:10284000E361EBE701292DE9F84306460C461746FC -:10285000056802D80220BDE8F883EB6A8B42F9D9FB -:102860007AB9A14621463046A046FFF76FFE0446DE -:10287000B0B92B78042B02D1002F43D1F77100207F -:10288000E9E72B78042B02D1C379022BE9D04FF072 -:10289000FF3239462846FFF739FF0028E1D0DAE752 -:1028A0000128D7D0421C01D10120D4E72B78042B7A -:1028B00019D1EA6AAB69023A93421CD308F10102CA -:1028C000A2420CD02B78042B08D10023A2EB0902E2 -:1028D00049462846FFF7FEFD0028BCD1A146EB6A19 -:1028E000A342BFD8C5E7002241462846FFF70EFFA6 -:1028F0000028DED0AFE70133AB612B7943F0010351 -:102900002B71DBE7F3798BB9B468BC4202D10223A7 -:10291000F371B4E721463046FFF718FE012899D934 -:10292000431CC1D001348442EFD0A8E7032BA6D1C9 -:10293000B368BB42A3D8B2691344BB429FD3E6E756 -:1029400070B5C3790446032B06D181688369CD181D -:10295000A94203D10023E371002070BD4E1C206802 -:102960003246FFF7D3FE0028F7D13146F0E70000EA -:102970002DE9F74305460191FFF70AFD04460028BB -:1029800049D105F14C09019928464FF40072FFF72F -:1029900075FB2146A86407464846FFF7C1F96C89D4 -:1029A0006402B4F5004F28BF4FF40044B4F5007F33 -:1029B0002FD9204604F064FC804630B12246002125 -:1029C000640A0026FFF7ACF909E06408EEE7234645 -:1029D000BA194146687803F0D5FF18B926446B89C7 -:1029E0009E42F4D3404604F05BFC6889801B18BF0C -:1029F000012003B0BDE8F08301366B899E42F4D21A -:102A00000123BA194946687803F0BCFF0028F3D0C7 -:102A1000EBE70026F1E70120EBE70000F8B50446FC -:102A2000FFF7B6FC0546002842D12378032B37D1A7 -:102A30002779012F34D104F14C0601464FF400727E -:102A40003046FFF76DF955234122722184F84A324E -:102A5000AA2304F50D7084F84F2084F84B325223DA -:102A600084F8301284F84C3084F84D30612384F8B7 -:102A7000311284F84E3084F83332A16984F832225E -:102A8000FFF7E4FA616904F50E70FFF7DFFA626B95 -:102A90003B46314601326078A26403F073FF257132 -:102AA00000226078114603F091FF003818BF012022 -:102AB000F8BD000000232DE9F0430B6085B00F4600 -:102AC0001546FFF71BFB061EC0F2B281804B53F880 -:102AD0002640002C00F0AE813C6005F0FE05237816 -:102AE0006BB1607803F028FFC70708D41DB110F060 -:102AF000040500D00A25284605B0BDE8F083002370 -:102B0000F0B22370607003F003FFC10700F19481FD -:102B10000DB14207EED400212046FFF779FC0228D0 -:102B200040F099806E4604F2122304F2522132469C -:102B300018461033FFF784FA42F8040B8B42F7D1A2 -:102B4000002556F8041B00297DD02046FFF760FCC5 -:102B5000012879D80128A26C40F0C08004F1570305 -:102B600004F18C0113F8015B002D7BD18B42F9D16C -:102B7000B4F8B430B3F5807F74D194F8B830092B31 -:102B800070D104F19400FFF75DFA4FF0FF3317188E -:102B900041F10001BB4275EB010363D304F1A000D6 -:102BA000FFF74EFA94F8BA302063012BA37059D185 -:102BB00094F8B99003FA09F91FFA89F36381002B9D -:102BC00050D0444B04F1A800FFF73AFA0646984269 -:102BD00048D8831C626304F1A400E362FFF730FA73 -:102BE00000EB020804F19C00C4F84080FFF728FACB -:102BF00010441FFA89F2A06306FB02F313EB0803EB -:102C000045EB05029F4271EB02032BD32E4604F1E4 -:102C1000AC00FFF715FAE06365B96389B34221D9C7 -:102C2000E16B2046FFF72AFA81192046FFF7D6FB11 -:102C300098B90136631993F84C30812B14D02035A4 -:102C4000C5F30805E8E703200135042D7FF479AFCB -:102C5000042807D101E0042801D101254BE7012810 -:102C60007FF678AF0D2546E705F1140004F14C0618 -:102C70003044FFF7E5F901280546F3D9E36A8342BA -:102C8000F0D96189821E236C02FB01336364A16B5E -:102C9000204601EBD511FFF7A1FB0028DDD105F09F -:102CA0007F0006EB8000FFF7CBF9431C03D0013512 -:102CB000A842ECD0D6E70425C4E90500064A2570F1 -:102CC00000251388E56101339BB21380E38012E78E -:102CD0003C360020FDFFFF7F40360020B4F857301F -:102CE000B3F5007FBED1B4F8626026B904F170007C -:102CF000FFF7A6F9064694F85C302663591EA370C8 -:102D00000129AFD894F859506581002DAAD0691EC9 -:102D10002942A7D1B4F85D8018F00F0FA4F80880FD -:102D2000A0D1B4F85F0018B904F16C00FFF788F97E -:102D3000B4F85A10002995D006FB03FE01EB181CCD -:102D4000F44460458ED3A0EB0C00A842B0FBF5F331 -:102D500088D33E48834285D84FF6F57083426DD9BB -:102D600003259F1C114402EB0C03032DE7626263F1 -:102D7000A16323644CD1B4F8763053EA08037FF49E -:102D800071AFBB0004F17800FFF75AF9E06303F27A -:102D9000FF13B6EB532FFFF465AF4FF0FF33032D56 -:102DA000C4E905334FF08003237187D1B4F87C3038 -:102DB000012B83D1511C2046FFF710FB00287FF424 -:102DC0007DAFB4F84A224AF6552320719A427FF427 -:102DD00075AF1F4B04F14C00FFF732F998427FF4B6 -:102DE0006DAF03F1FF5304F50C70FFF729F903F5FC -:102DF0000053203398427FF461AF04F50D70FFF764 -:102E00001FF9A06104F50E70FFF71AF9606155E72C -:102E1000B8F1000F3FF426AF7144022D4FEA47038B -:102E2000E1631EBFD91907F0010303EB5103AEE7BD -:102E30000B2560E60C255EE603255CE640F6F5759D -:102E4000AB428CBF022501258BE700BFF5FFFF0FCA -:102E5000525261412DE9F84F07460568884649B945 -:102E60006E69C6B1EB6AB34298BF0126AB69A3B9DC -:102E7000002405E0FFF76AFB0128044603D801247B -:102E80002046BDE8F88F421C00F0D280EB6A8342F6 -:102E9000F6D84646EAE70126E8E72A78EB6A042AEC -:102EA00040F08380A6F1020A023B4FF0010B9A45E5 -:102EB00028BF4FF0000AD146696C284601EB193152 -:102EC000FFF78CFA00283BD109F00703EA6AC9F33F -:102ED000C8010BFA03F3901EDBB26A184C4609F1E5 -:102EE000010992F84C20814502EA030233BF5B00DE -:102EF00000234FF40071DBB228BF9946B2B9023407 -:102F0000631E0333BCD80123214628461A46FFF727 -:102F1000E1FA0228B3D0012800F08A80B8F1000F4E -:102F200013D10223FB710028A9D130E0CA450AD091 -:102F3000002BD2D10131B1F5007FBDD20123CCE706 -:102F40004FF0FF34DCE70024DAE7FB79022B07D1EE -:102F5000731CA342E7D0BB68F31ABB610323FB7168 -:102F600008F10102FB69A24205D113B10133FB61F3 -:102F7000D9E70223FBE70BB90123FB612246414657 -:102F80003846FFF747FC00284FD10123FB61EA6A6E -:102F9000AB69023A6C6193429CBF03F1FF33AB61B2 -:102FA0002B7943F001032B716AE7464514D1741C59 -:102FB0003846A34298BF02242146FFF7C7FA0128EA -:102FC0003FF45DAF431C33D0E0B16B69012B03D9F3 -:102FD000EA6A934238BF1E4634460134EB6AA34284 -:102FE00003D8012E7FF644AF022421463846FFF76E -:102FF000ADFA48B101283FF442AF013018D0B442D5 -:10300000EBD135E7002CE7D04FF0FF3221462846C0 -:10301000FFF77CFB48B9B8F1000FB8D02246414613 -:103020002846FFF773FB0028B1D001287FF427AFB3 -:103030004FF0FF3424E700002DE9F843066804460A -:10304000076B894633782037042B0CBF4FF0805331 -:103050004FF40013BB429CBF00238363836B73B1A7 -:10306000C7F30808B8F1000F3CD10133416B83630B -:1030700039B93389B3EB571F34D80023A363042035 -:103080000AE07389013B13EA57232BD1FFF75EFA5D -:103090000128054602D80220BDE8F883421C01D170 -:1030A0000120F9E7F36A834216D8B9F1000FE4D0A2 -:1030B000616B2046FFF7CEFE0546C8B10128EAD075 -:1030C000431CEDD001463046FFF752FC0028E7D103 -:1030D000E37943F00403E371294630466563FEF764 -:1030E000CDFFA0634C36002027634644E663D3E758 -:1030F0000720D1E7F8B50E46002104460768FFF720 -:10310000BDFA98B90546A16B3846FFF767F968B96B -:103110003A78E36B042A1B780CD11B060ED50546C2 -:1031200001212046FFF788FF0028ECD0042808BFC3 -:10313000072006E0E52B01D0002BF0D10135B54288 -:10314000EED1F8BDC16C4B1C2DE9F0410446056879 -:10315000066B1FD1E5274FF00108A16B2846FFF74A -:103160003DF998B92A78E36B042A09BF1A781F70D1 -:1031700002F07F021A7085F80380236BB3420DD2F0 -:1031800000212046FFF758FF0028E6D0042808BF9A -:10319000022003E0FFF772FA0028DBD0BDE8F081DF -:1031A0002DE9F04105460068A96B0669FFF716F99D -:1031B000044620B9EB6B1A78852A03D002242046F6 -:1031C000BDE8F081324603F1200153F8040B8B4235 -:1031D00042F8040BF9D1777801377F01A7F160033A -:1031E000B3F5007FEAD800212846FFF725FF042821 -:1031F0000446E3D00028E2D1A96B2868FFF7EEF877 -:1032000004460028DBD1EB6B1A78C02AD6D106F130 -:10321000200203F1200153F8040B8B4242F8040B07 -:10322000F9D196F823300F222C33B3FBF2F3B7EB2E -:10323000431FC3D34FF0400800212846FFF7FCFE90 -:1032400004280446BAD00028B9D1A96B2868FFF732 -:10325000C5F804460028B2D1EB6B1A78C12AADD16B -:10326000B8F5187F09D206EB080203F1200153F8E4 -:10327000040B8B4242F8040BF9D108F120084745B2 -:10328000DAD8B8F5187F9AD83046FEF71FFF738852 -:10329000834294D092E700000B68002210B50360CF -:1032A00004460B6A83604B6AC261C37123F0FF035B -:1032B000896AC0E90432C164FFF7E0F920B9204609 -:1032C000BDE81040FFF76CBF10BD0000F8B5036803 -:1032D000054601271C692046FEF7F8FEA070000A8B -:1032E0006678E0702846E96CFFF7C8F920B102283B -:1032F00028BF0220C0B2F8BDA96B2868FFF76EF89E -:103300000028F4D1EB6B04F1200254F8041B944222 -:1033100043F8041BF9D12B68DF70002EE7D00021A1 -:103320002846013EFFF788FEE0E700002DE9F8435C -:103330004FF0FF0806460768042445464FF6FF791C -:10334000B16B11B9002C73D063E03846FFF746F833 -:10335000044600285DD1F06B0378002B6ED03A78DC -:10336000042A11D1852B4DD1336B3046F364FFF71E -:1033700017FF044600284CD13B691B7903F03F033B -:10338000B3712046BDE8F883C27AE52B02F03F0214 -:10339000B27143D02E2B41D022F0200108293DD01C -:1033A0000F2A40D1590637D503F0BF05336B90F88B -:1033B0000D80F364437B434530D1428B72BB03786D -:1033C0000D21FC6823F04003DFF874E0013B4B4320 -:1033D00001211EF801CB30F80CC009B3FF2B1DD81A -:1033E00024F813C06146013301320D2AF1D102786D -:1033F000520605D521B1FF2B10D8002224F8132046 -:10340000013DEDB200213046FFF716FE04460028CC -:1034100096D00023B363B4E7AB42CBD0FF25F1E7EE -:10342000CC45E1D0FAE72DB9FEF740FE404501D189 -:103430000024A6E74FF0FF33F364A2E70424E8E793 -:10344000889300082DE9F04F002187B00446D0F89A -:103450000090FFF713F9804670B999F80030042BFB -:1034600033D1D9F80C00FEF779FF07462046FFF765 -:103470005DFF054620B18046404607B0BDE8F08FAD -:10348000D9F810309A8CBA42F0D193F823B0402684 -:103490005D4506D1D9F80C3033F81530002BE5D155 -:1034A000EAE7F106D9F8103008BF0236985B01F060 -:1034B0004DF8D9F80C30824633F8150001F046F883 -:1034C0008245D3D102360135E2E74FF0FF0A4FF0D3 -:1034D000FF3B5546C4F84CB0A16B4846FEF77EFF53 -:1034E00000285CD1E66B3778002F77D0F27AE52F91 -:1034F00002F03F03A37103D0120704D50F2B04D0B1 -:10350000C4F84CB04FE00F2B54D194F84B30580610 -:103510003FD4790645D5236B07F0BF0796F80DA079 -:10352000E364737B53453ED1738B002B3BD13578DD -:103530000121D9F80C3005F03F0501930D23013D21 -:103540005D43284B13F8012BB25A71B3FF2D05933D -:1035500029D81046049200F0F9FF6B1C03900293E7 -:10356000019B33F8150000F0F1FF039981421AD155 -:10357000049A029D1146059B1B4A9342E2D133787F -:103580005A0604D519B1019B33F815305BB97D1E7D -:10359000EDB200212046FFF74FFD00289CD0804669 -:1035A0006AE7BD42BDD0FF25F3E74FF6FF708242C8 -:1035B000E2D0F8E72DB93046FEF778FD50453FF4EC -:1035C0005BAF94F84B30DB079AD40B2204F1400137 -:1035D000304605F0AFFD002892D14DE74FF00408CA -:1035E0004AE700BF88930008959300082DE9F04F43 -:1035F00090F84BB099B004461BF0A00540F06881EC -:103600000668F26832F81530002B4AD13378042B63 -:1036100040F087800F230E352046B5FBF3F5A91C3B -:10362000FFF768FD8146002877D1236B0135A3EBB6 -:103630004515E3795A07E56435D523F004032046A0 -:10364000E371FFF77DF950BB4FF0FF32616B20460D -:10365000FFF7E0F818BBA3682BB3214604A8FFF7D7 -:103660001BFEE0B970894FF40071D4E90423E0FB3C -:1036700001233069C4E904233830FEF7EFFC3069D8 -:10368000D4E904232830FEF7E9FCE379326904A881 -:1036900043F0010382F82130FFF718FE18B181468C -:1036A0003BE00135AEE7D6E9035440220021204635 -:1036B000FEF736FB8523012140222370C0234FF003 -:1036C000C10C04EB010884F8203000231E469E46FE -:1036D000571C04F802C0F0B2023204F807E021B12E -:1036E00035F8131009B10133DBB20F0AA15408F801 -:1036F00002700232D706F2D135F813700136002F6E -:10370000E6D184F82330831C28466370FEF726FE3A -:1037100084F82400000A84F82500484619B0BDE862 -:10372000F08F04F140070DF1100A1BF0010F97E82C -:1037300007008AE8070000F0D38040234FF001081B -:1037400084F84B30BC46F368B8F1050F9AE80700DF -:10375000ACE803002CF8022B4FEA12428CF8002050 -:1037600059D9981E424630F8021F002942D10DF166 -:103770000F0C072102F00F0E914612090EF13000D6 -:10378000392888BF0EF1370001390CF8010902D041 -:10379000B9F10F0FEED818AB7E205A1802F8580C6A -:1037A00038460022914206D010F801CB02F1010EFA -:1037B000BCF1200F31D104F13F0C072902F10102C5 -:1037C00097BF18AB20205818013198BF10F8580C3B -:1037D000072A0CF80200F0D92046FFF733FE814695 -:1037E000002878D108F10108B8F1640FAAD14FF090 -:1037F000070992E74FF0100C01F0010E49080EEB9B -:103800004202D30344BF82F4883282F02102BCF129 -:10381000010CF1D1A7E74246A9E77246C2E7216B46 -:103820002046A1EB4511FEF729FF814600287FF4D1 -:1038300074AF4FF6FF783846FEF738FC0190A16B65 -:103840003046FEF7CBFD814600287FF466AFE36B80 -:10385000E9B2019A4FF00D0CD6F80CE05A734FF014 -:103860000F02DFF8E0A0DA724A1E18730CFB02F2B6 -:1038700084469876D87640451AF8019B0CF1010CE5 -:1038800018BF3EF8120003EB090B18BF013203F812 -:1038900009004FEA1029002808BF4046BCF10D0F6F -:1038A0008BF80190E7D1404502D03EF812200AB9CA -:1038B00041F040011970012300212046F370FFF709 -:1038C000BBFB814600287FF428AF013DB7D11BE048 -:1038D0004FF0060921E704287FF41FAF84F84BB0AE -:1038E0001BF0020F20461BBF0C350D210125B5FB37 -:1038F000F1F518BF01352946FFF7FCFB814600288A -:103900007FF40BAF013D8AD1A16B3046FEF766FD17 -:10391000814600287FF401AF01462022E06BFEF7CC -:10392000FFF9E36B03CF18605960BA7839889A724F -:10393000198194F84B30E26B03F0180313730123E1 -:10394000F370EAE68893000810B504460A4634305E -:10395000FEF776FB886004F13800FEF773FBC2E9DE -:10396000040194F8213003F00203D3710023D361E2 -:1039700010BD000003284B8B04BF8A8A43EA024330 -:10398000184670472DE9F04F0B7899B004468946E8 -:103990002F2BD0F800B001D05C2B09D14A46137808 -:1039A000914601322F2BFAD05C2BF8D0002301E096 -:1039B000DBF81C30A3600023E3619BF80030042B8C -:1039C0001ED1A368E3B1DBF82030214604A82362AE -:1039D000DBF824306362DBF82830A362FFF75CFC7D -:1039E0000346002854D1DBF8102002F13800FEF71E -:1039F00027FBC4E9040392F8213003F00203E371CA -:103A000099F800301F2B00F23581802300212046D9 -:103A100084F84B3019B0BDE8F04FFEF72FBE494691 -:103A20000B78894601312F2BFAD05C2BF8D01F2B55 -:103A30008CBF00250425012F2FD113882E2B31D1C7 -:103A4000002322F8173004F140029F428CBF2E2140 -:103A5000202101330B2B02F8011BF6D145F0200584 -:103A6000204684F84B50FFF7EDFC94F84B300028CB -:103A700000F0E78004280BD1990603F0040240F11E -:103A8000DC80002A00F0F6808023002084F84B3090 -:103A900019B0BDE8F08F0425CDE7022F02D153887D -:103AA0002E2BCAD0911E87BB002322F81730002F7F -:103AB00000F0118132F81300194601332028F9D0A3 -:103AC00009B92E2801D145F00305901E30F81730B2 -:103AD0002E2B01D0013FF9D14FF020334FF0000AD7 -:103AE0006364D0462364C4F847300823481C32F886 -:103AF00011600090F6B1202E03D02E2E0DD1B842C9 -:103B000010D045F003050099F0E731F81730202B6D -:103B100001D02E2BC8D1013FC5E79A4505D20099A7 -:103B2000B9423BD10B2B30D101E00B2B27D145F013 -:103B300003050B2394F84020E52A04BF052284F8EE -:103B40004020082B04BF4FEA88085FFA88F808F085 -:103B50000C030C2B03D008F00303032B01D145F019 -:103B60000205A8073FF57CAF18F0010F18BF45F01C -:103B7000100518F0040F18BF45F0080570E700990C -:103B8000B94202D045F00305D4D84FEA88080B2388 -:103B90004FF0080A00975FFA88F8B4E77F2E15D92E -:103BA000304640F25231CDE9022345F00203019341 -:103BB00000F098FC10F0800F0646DDE9022316D0D5 -:103BC00000F07F0646498E5D019D46B3314645486B -:103BD000CDE9012305F0D8FADDE90123F8B9A6F112 -:103BE000410189B219291ED848F0020810E0FF28C7 -:103BF000EAD9591E8A4503D345F003059A4682E760 -:103C000004EB0A01000A0AF1010A019D81F8400053 -:103C100004EB0A010AF1010A81F8406073E745F0FC -:103C200003055F26F4E7A6F1610189B219299EBF59 -:103C3000203E48F00108B6B2EAE7002A08BF052096 -:103C400026E75A073FF524AFA379DB0645D59BF855 -:103C50000000042835D1A3682146E2792362236954 -:103C6000DBF8100023F0FF0313436362E36CA362ED -:103C7000FFF76AFE23680027DA6819F8010B0028AD -:103C80003FF409AF40F25231009200F04BFC054680 -:103C900008B31F28009A7FF6FEAE2F283FF4BFAE70 -:103CA0005C283FF4BCAE7F2805D801460E4805F0DD -:103CB0006BFA009A78B9FF2F0DD022F81750013710 -:103CC000DBE7216B0BF14C03C1F308011944FFF74B -:103CD00051FEA060CEE70620DAE60520D8E600BF58 -:103CE0000893000801930008F89200081FB5CDE979 -:103CF000001003A814460391FEF700FA002815DB14 -:103D00000B4A52F820300BB100211970019B0BB106 -:103D10000021197042F820302CB1002201A9684618 -:103D2000FEF7C8FE0446204604B010BD0B24FAE797 -:103D30003C3600202DE9F04798B0904605460191A9 -:103D4000002800F0528102F03F0603A901A8324684 -:103D5000FEF7B0FE002840F04681039B4FF48C60D4 -:103D6000049303F08DFA0746002800F04081039B7E -:103D700000F500720199D86004A81A61FFF702FEED -:103D8000044620B99DF95B30002BB8BF062418F01B -:103D90001C0F00F0CD80002C4CD0042C40D104A886 -:103DA000FFF724FC044600283AD146F00806039B9E -:103DB0001A78042A40F08380186929462B60FFF79F -:103DC000C3FD039B1E22002118690230FDF7A8FFE6 -:103DD000039C00211A2220692630FDF7A1FF2369E8 -:103DE00020221A71246903F085FA01460122083461 -:103DF0002046FEF72BF9039B04A81B6983F82120BA -:103E0000FFF764FA044658B9A96801B30246284688 -:103E1000FEF718FDAB68039A0446013B5361B4B149 -:103E2000384603F03DFA0CB100232B60204618B051 -:103E3000BDE8F0879DF8163013F0110F40F0848034 -:103E400018F0040F40F0C98018F0080FAFD1039AA2 -:103E500031071399936C48BF46F04006E964AB64A0 -:103E60001078042872D1069B9DF817102B62089BCE -:103E7000106923F0FF030B4329466B62179BAB626B -:103E8000FFF762FDDDF80CA00024002205F15008C8 -:103E9000BAF8063021464046C5F800A0AB800023A2 -:103EA00085F8306085F831406C64C5E90E234FF425 -:103EB0000072FDF735FFB20653D40024B0E703F0DB -:103EC00019FA0146009013980E30FEF7BFF81398C8 -:103ED00000991630FEF7BAF8039C13992078FFF783 -:103EE00049FD202300228046CB7220461399FEF71D -:103EF000D1F8139B002201211A775A779A77DA7743 -:103F0000039BD970B8F1000FA1D0414604A8D3F8A3 -:103F10004890FEF797FC0446002881D14946039853 -:103F2000FEF75CFA039B044608F1FF30586176E720 -:103F3000002C7FF475AF9DF81630DC064FD418F0D6 -:103F4000020F84D0D80782D5072469E7FFF712FD56 -:103F50000023A86001F11C00FEF772F86B61286174 -:103F600090E7D5E9046956EA0903A6D0BAF80AA091 -:103F7000A9684FEA4A2AC5E90E69B24574EB0903FC -:103F80001BD300242964002C7FF44AAFC6F3080336 -:103F9000002B92D0039C2046FEF770F808B3760AF7 -:103FA0000123414646EAC95682196A64607802F0E4 -:103FB000C5FC041E18BF012432E72846FEF7C6FAE6 -:103FC000B6EB0A06014669F10009012803D9431C32 -:103FD000D3D10124D6E70224D4E7082420E704241F -:103FE0001EE702241CE704461EE709241EE71124ED -:103FF0001CE700002DE9F04F994685B00023884664 -:1040000003A90446C9F800301646FEF791F80546A4 -:1040100080BB94F831506DBB94F8303013F001033D -:10402000009300F0A68004F1500AD4E90432D4E9E8 -:104030000E011B1A62EB0102B34272F1000238BF9B -:104040001E46BEB1D4E90E10C1F30803002B40F0A8 -:104050008280039B5A894B0A013A43EAC0531A40B3 -:104060001BD151EA000309D1A06801280DD802250F -:1040700084F83150284605B0BDE8F08F216C204609 -:104080000192FEF763FA019AEFE7431C04D1012382 -:10409000009D84F83130EDE72064DDF80CB0216C30 -:1040A0005846FDF7EBFF0028E1D0B6F5007F02EBA4 -:1040B000000731D3BBF80A1002EB5620730A88427E -:1040C0009BF8010088BF8B1A3A464146019302F0E3 -:1040D00035FC0028DBD194F93020019B002A0BDA53 -:1040E000606CC01B984207D24FF40072514608EB37 -:1040F0004020FDF7EFFD019B5F02D9F80030F61B71 -:10410000B8443B44C9F80030D4E90E32DB1942F11F -:104110000002C4E90E3294E7626CBA421AD094F9F4 -:104120003030002B0DDA012351469BF8010002F0DC -:1041300029FC0028ABD194F8303003F07F0384F8D9 -:104140003030039801233A465146407802F0F6FB9E -:1041500000289CD16764A16B4046C1F30801C1F5FA -:1041600000775144B74228BF37463A46FDF7B2FDC3 -:10417000C3E707257EE7000070B596B00E46002223 -:10418000019002A901A8FEF795FC0446E0B94FF49E -:104190008C6003F075F80546D8B1029B00F50072FB -:1041A0000199D86002A81A61FFF7ECFB044640B9F8 -:1041B0009DF95330002B0ADB1EB1314602A8FDF7F2 -:1041C000EDFF284603F06CF8204616B070BD0624BB -:1041D000F7E71124F8E7000070B5B8B002220190AB -:1041E00003A901A8FEF766FC044608BB039B4FF435 -:1041F0008C60109303F044F80546002866D0039BBA -:1042000000F500720199D86010A81A61FFF7BAFB97 -:10421000044650B99DF88B30980655D4190653D4EE -:104220009DF84630DA0706D50724284603F038F80B -:10423000204638B070BD039B04931878042814D12D -:1042400004A91869FFF780FB069E9DF84630DB063F -:1042500010D410A8FEF776FF04460028E5D156BB1F -:104260000398FEF7DBFB0446DFE71F99FFF782FBAD -:104270000646EAE7039BDA69B242D5D024930021CF -:10428000269624A81B78042B01BFDDE90823CDE97D -:1042900028239DF817308DF89730FEF7EFF9044684 -:1042A0000028C2D124A8FFF741F804460028BBD05B -:1042B0000428BAD1CDE70246314604A8FEF7C2FA77 -:1042C00004460028B1D1CBE70624AEE71124AFE7BE -:1042D000F0B5BDB0CDE900106846FDF70FFF022232 -:1042E00003A901A8FEF7E6FB0446002841D1039B81 -:1042F0004FF48C60149302F0C3FF0546002800F0D1 -:10430000EE80039B00F5007214AE0199D8601A612B -:104310003046FFF737FB044640BB9DF89B3013F057 -:10432000A00F40F0D880039B009F1A78042A68D120 -:104330001B6904AC03F1400C1868083353F8041CE3 -:104340002246634503C21446F6D15022314628A8BE -:10435000FDF7C0FC394628A8FFF714FB04460028E7 -:104360004CD12A9A169B9A4206D00824284602F07D -:1043700097FF20463DB0F0BD349A209B9A42F4D17D -:1043800028A8FFF733F904460028EFD1039B04AFB8 -:104390001B6993F801E093F823C09C8C3A460833DC -:1043A00003CAB24243F8080C43F8041C1746F5D17F -:1043B000039B28A81B6983F801E0039B1A6982F814 -:1043C00023C01A6982F82440240A82F825401A6919 -:1043D0001379D9065CBF43F020031371FEF776FF13 -:1043E00004460028C2D13046FEF7ACFE0446002841 -:1043F000BCD10398FEF712FB0446B7E70428B5D1F9 -:10440000BEE7239A04AB02F1200C1068083252F880 -:10441000041C1C46624503C42346F6D15022314693 -:1044200028A8FDF757FC394628A8FFF7ABFA044641 -:1044300000284CD12A9A169B9A4296D1349A209BF6 -:104440009A4292D128A8FFF7D1F8044600288DD1CE -:1044500037990DF11D030DF12D0001F10D0253F8F7 -:10446000044B834242F8044BF9D11888012710808D -:104470009B7893709DF81B30039CDA0658BF43F07D -:104480002003CB72E770CB7ADB06ACD5169A2A9B59 -:104490009A42A8D02078FFF76DFA01462046FDF732 -:1044A000EDFD0146C8B12046FDF798FF04460028FF -:1044B0007FF45CAF039890F86D302E2B93D12A9A3D -:1044C00000F16C01FDF7E6FD039BDF708BE704282C -:1044D0007FF44CAFB6E7062448E7022446E71124F0 -:1044E00047E700007F2810B501D880B210BDB0F5B5 -:1044F000803F13D240F2523399420FD10849002233 -:1045000031F8024B93B2844203D103F18000C0B270 -:10451000ECE70132802AF3D11346F6E70020E5E705 -:10452000489600087F280DD940F25233994208D1AD -:10453000FF2806D800F10040034B803833F8100004 -:1045400070470020704700BF48960008B0F5803FD4 -:10455000F0B522D21F4A83B21F49B0F5805F28BF51 -:104560000A46141D34F8042C2146AAB1934213D3F1 -:1045700034F8025C2E0AEFB252FA85F5A84222DA2C -:10458000082E09D8DFE806F0050A10121416181ACA -:104590001C00801A34F810301846F0BD981A00F04C -:1045A00001001B1A9BB2F7E7103BFBE7203BF9E742 -:1045B000303BF7E71A3BF5E70833F3E7503BF1E709 -:1045C000A3F5E353EEE70434002ECBD101EB470211 -:1045D000C7E700BF989300088C95000808B5074B03 -:1045E000074A196801F03D01996053680BB1906862 -:1045F0009847BDE8084003F08FB800BF00000240B4 -:104600004436002008B5084B1968890901F03D01BE -:104610008A019A60054AD3680BB110699847BDE8D2 -:10462000084003F079B800BF000002404436002083 -:1046300008B5084B1968090C01F03D010A049A609D -:10464000054A53690BB190699847BDE8084003F0EB -:1046500063B800BF000002404436002008B5084B94 -:104660001968890D01F03D018A059A60054AD369F0 -:104670000BB1106A9847BDE8084003F04DB800BF81 -:10468000000002404436002008B5074B074A59682D -:1046900001F03D01D960536A0BB1906A9847BDE8BB -:1046A000084003F039B800BF000002404436002043 -:1046B00008B5084B5968890901F03D018A01DA60A3 -:1046C000054AD36A0BB1106B9847BDE8084003F068 -:1046D00023B800BF000002404436002008B5084B54 -:1046E0005968090C01F03D010A04DA60054A536B70 -:1046F0000BB1906B9847BDE8084003F00DB800BFC0 -:10470000000002404436002008B5084B5968890D66 -:1047100001F03D018A05DA60054AD36B0BB1106CDC -:104720009847BDE8084002F0F7BF00BF0000024014 -:104730004436002008B5074B074A196801F03D01CF -:104740009960536C0BB1906C9847BDE8084002F03B -:10475000E3BF00BF000402404436002008B5084B08 -:104760001968890901F03D018A019A60054AD36CF4 -:104770000BB1106D9847BDE8084002F0CDBF00BFF7 -:10478000000402404436002008B5084B1968090CA3 -:1047900001F03D010A049A60054A536D0BB1906D1A -:1047A0009847BDE8084002F0B7BF00BF00040240D0 -:1047B0004436002008B5084B1968890D01F03D0109 -:1047C0008A059A60054AD36D0BB1106E9847BDE813 -:1047D000084002F0A1BF00BF0004024044360020A0 -:1047E00008B5074B074A596801F03D01D960536E7F -:1047F0000BB1906E9847BDE8084002F08DBF00BF36 -:10480000000402404436002008B5084B5968890965 -:1048100001F03D018A01DA60054AD36E0BB1106FD9 -:104820009847BDE8084002F077BF00BF000402408F -:104830004436002008B5084B5968090C01F03D01C9 -:104840000A04DA60054A536F0BB1906F9847BDE8D0 -:10485000084002F061BF00BF00040240443600205F -:1048600008B5084B5968890D01F03D018A05DA60E9 -:10487000054AD36F13B1D2F880009847BDE80840CD -:1048800002F04ABF000402404436002000230C49D5 -:1048900010B51A460B4C0B6054F82300026001EB74 -:1048A000430004334260402BF6D1074A4FF0FF33F8 -:1048B0009360D360C2F80834C2F80C3410BD00BF56 -:1048C0004436002048970008000002400F28F8B541 -:1048D00010D9102810D0112811D0122808D10F2477 -:1048E0000720DFF8B4E00126DEF80050A04208D926 -:1048F000002649E00446F4E70F240020F1E70724EE -:10490000FBE706FA00F73D4240D1214C4FEA001C7C -:104910003D4304EB00160EEBC000CEF80050C0E99A -:104920000123FBB24BB11B48836B43F0010383634C -:10493000036E43F001030366036E17F47F4F09D043 -:104940001448836B43F002038363036E43F0020356 -:104950000366036E54F80C00036823F01F03036022 -:10496000056815F00105FBD104EB0C033D2493F819 -:104970000CC05F6804FA0CF43C60212405604461BB -:1049800012B1987B00F0B4FC3046F8BD0130ADE7C1 -:1049900048970008004502584436002010B53024DE -:1049A00084F31188FFF792FF002383F3118810BD71 -:1049B00010B50446807B00F0B1FC01231049627BF6 -:1049C00003FA02F20B6823EA0203DAB20B604AB977 -:1049D0000C4A916B21F001019163116E21F00101EC -:1049E0001166126E13F47F4F09D1064B9A6B22F0B9 -:1049F00002029A631A6E22F002021A661B6E10BD42 -:104A0000443600200045025808B5302383F311884E -:104A1000FFF7CEFF002383F3118808BD836CC26AC1 -:104A20008B42506810B506D95A1E4C0002EB410368 -:104A3000B3FBF4F3184410BD01F001038A0748BF2B -:104A400043F002034A0748BF43F008030A0748BF80 -:104A500043F00403CA0648BF43F010038A06426BC2 -:104A600048BF43F0200313434363704710B5074C1E -:104A7000204600F0BFFF064B0022C4E91023054B7F -:104A8000A364054BE363054BE36410BDC836002007 -:104A90000070005200B4C4041C3700201C390020F0 -:104AA000C36A0BB90E4BC3620379012B0CD10D4BBA -:104AB000984209D10C4B5A6B42F480325A63DA6D3A -:104AC00042F48032DA65DB6D436C00221A65DA62EB -:104AD0001A605A605A624FF0FF329A63704700BF03 -:104AE00048980008C8360020004502580379012B79 -:104AF00016D0436C00221A65DA621A605A605A6254 -:104B00004FF0FF329A63074B984209D1064B5A6B1C -:104B100022F480325A63DA6D22F48032DA65DB6D7A -:104B2000704700BFC83600200045025810B5446CDD -:104B30000649FFF773FF6060236842F2107043F08C -:104B400003032360BDE8104001F05ABD801A06003F -:104B50000129F8B5466C0B4F09D175680A493D40EB -:104B6000FFF75CFF054345F480557560F8BD746838 -:104B700006493C40FFF752FF044344F480547460FC -:104B8000F4E700BF00ECFFFF80F0FA0240787D01FF -:104B9000436C00225A601A6070470000426C012981 -:104BA000536823F4404304D0022905D001B953606F -:104BB000704743F48043FAE743F40043F7E700000B -:104BC000436C41F480519A60D9605A6B1206FCD54F -:104BD00080229A637047000010B541F48851446CFC -:104BE000A260E160616B11F04502FBD0A26311F09D -:104BF000040203D0FFF720FF012010BD61691046B9 -:104C00001960FAE710B541F48851446CA260E16084 -:104C1000616B11F04502FBD0A26311F0050203D0D5 -:104C2000FFF70AFF012010BD616910461960FAE71D -:104C300073B5134604460E46302282F31188426C47 -:104C4000D26B32B14FF0FF314030019301F0E4FC00 -:104C5000019B606C00220265C263C262456B15F461 -:104C6000807504D185F31188012002B070BD4FF02A -:104C7000FF31816382F31188012E06D90C21204671 -:104C800002B0BDE87040FFF7BDBF1046EDE7000081 -:104C900073B5446C0E4600250192616BA1632565D6 -:104CA000E562FFF7C9FE012E07D9019B2A460C21B8 -:104CB00002B0BDE87040FFF7A5BF02B070BD0000B4 -:104CC00010B541F49851446CA260E160616B11F041 -:104CD0004502FBD0A26311F03F0203D0FFF7ACFE08 -:104CE000012010BD216A10461960E1695960A1696F -:104CF00099606169D960F4E72DE9F74304460191B1 -:104D0000006D01A91746984602F02EFC06460028C1 -:104D10004AD0626C2046DDF804905568C5F3090559 -:104D200001356B00A56CB5FBF3F54FF47A73B5FB59 -:104D3000F3F55D43556200F023FE50BB636C4FF00A -:104D4000FF3201254146C3F8589020461D659A63FD -:104D50004FF49572DA6342F207029F62DA62E36C03 -:104D60000A9AFFF74FFFA0B9E26C104B11680B4095 -:104D70007BB929462046FFF75BFF054648B92E461A -:104D80003A460199206D02F027FC304603B0BDE899 -:104D9000F0833A460199206D02F01EFCE26C01217D -:104DA0002046FFF775FFF0E70126EEE708E0FFFD7C -:104DB0002DE9F7431F46436C01924FF47A725D6808 -:104DC00004468846C5F3090501356E00856CB5FBC0 -:104DD000F6F5B5FBF2F555435D6200F0D1FD20B16B -:104DE0000125284603B0BDE8F0837E0201A9206DAD -:104DF000324602F0B9FB05460028F1D0636C019AF7 -:104E0000D4F84C909A6501221A654FF0FF329A63EC -:104E10004FF49572DA639E62236BDB064B4658BFF4 -:104E20004FEA4828012F42461BD912212046FFF79E -:104E3000E9FEC0B9D9F80020104B13409BB9636C50 -:104E400042F2930239462046DA62E26CFFF7F0FE46 -:104E5000804640B932460199206D454602F0BCFBC0 -:104E6000BFE71121E2E732460199206D02F0B4FB61 -:104E7000E26C39462046FFF70BFFB2E708E0FFFD82 -:104E80002DE9F3411F46436C01924FF47A725D683D -:104E900004468846C5F3090501356E00856CB5FBEF -:104EA000F6F5B5FBF2F555435D6200F069FD20B102 -:104EB0000125284602B0BDE8F0817E0201A9206DDF -:104EC000324602F097FB05460028F1D0636C019A48 -:104ED0009A6501221A654FF0FF329A634FF48D7282 -:104EE000DA639E62236BE66CDB06334658BF4FEAFB -:104EF0004828012F424619D919212046FFF782FE82 -:104F0000B0B932680F4B134093B9636C42F291020F -:104F100039462046DA62E26CFFF78AFE064638B967 -:104F200001993546206D02F0A1FBC2E71821E4E7A4 -:104F30000199206D02F09AFBE26C39462046FFF79A -:104F4000A7FEB6E708E0FFFD12F0030F2DE9F041E0 -:104F500007460C4615461E4617D00E44B44202D1F1 -:104F60000020BDE8F0810123FA6B21463846FFF7A7 -:104F70001FFF0028F5D128464FF40072F96B05F5A4 -:104F800000750134FCF7A6FEE8E7BDE8F041FFF745 -:104F90000FBF000012F0030F2DE9F04107460C4649 -:104FA00015461E4617D00E44B44202D10020BDE87B -:104FB000F08129464FF40072F86B05F50075FCF797 -:104FC00089FE0123FA6B21463846FFF759FF002876 -:104FD000EDD10134E8E7BDE8F041FFF751BF000033 -:104FE00000207047302310B583F311880024436CF0 -:104FF00040302146DC6301F01DFB84F3118810BDB5 -:10500000026843681143016003B11847704700000C -:10501000024A136843F0C003136070470044004025 -:10502000024A136843F0C003136070470048004011 -:10503000024A136843F0C0031360704700780040D1 -:10504000044B9A6C02439A641A6F104318671B6FE3 -:10505000704700BF0045025837B5274C274D204602 -:1050600000F028FD04F11400009400234FF40072B6 -:10507000234900F0C3F94FF40072224904F13800CB -:105080000094214B00F03CFA204BC4E91735204C2A -:10509000204600F00FFD04F11400009400234FF4AB -:1050A00000721C4900F0AAF94FF400721A4904F189 -:1050B00038000094194B00F023FA194BC4E9173556 -:1050C000184C204600F0F6FC04F1140000234FF4C5 -:1050D00000721549009400F091F9144B4FF40072DE -:1050E000134904F13800009400F00AFA114BC4E9A6 -:1050F000173503B030BD00BF2039002000E1F505B1 -:10510000643A002064400020115000080044004030 -:105110008C390020643C00206442002021500008AB -:1051200000480040F8390020643E0020315000085B -:10513000644400200078004038B5264D0446037CC6 -:10514000002918BF0D46012B06D1234B984230D1C0 -:105150004FF40030FFF774FF2A68236EE16D03EB14 -:105160005203A566B3FBF2F36A68100442BF23F052 -:10517000070003F0070343EA4003CB60AB6843F04A -:1051800040034B60EB6843F001038B6042F496737D -:1051900043F001030B604FF0FF330B62510505D55F -:1051A00012F0102211D0B2F1805F10D084F8643078 -:1051B00038BD0A4B984205D0094B9842CCD14FF0EC -:1051C0008040C7E74FF48020C4E77F23EEE73F230A -:1051D000ECE700BF50980008203900208C390020EF -:1051E000F83900202DE9F047C66D05463768F469A7 -:1051F000210734621AD014F0080118BF4FF48071EF -:10520000E20748BF41F02001A3074FF0300348BF39 -:1052100041F04001600748BF41F0800183F31188ED -:10522000281DFFF7EDFE002383F31188E2050AD560 -:10523000302383F311884FF48061281DFFF7E0FECF -:10524000002383F311884FF030094FF0000A14F067 -:10525000200838D13B0616D54FF0300905F1380A41 -:10526000200610D589F31188504600F07DF90028FA -:1052700036DA0821281DFFF7C3FE27F080033360CC -:10528000002383F31188790614D5620612D53023E2 -:1052900083F31188D5E913239A4208D12B6C33B1DB -:1052A00027F040071021281DFFF7AAFE37600023D2 -:1052B00083F31188E30618D5AA6E1369ABB1506960 -:1052C000BDE8F047184789F31188736A284695F8B6 -:1052D0006410194000F008FC8AF31188F469B6E7FD -:1052E000B06288F31188F469BAE7BDE8F08700007E -:1052F000090100F16043012203F56143C9B283F85B -:10530000001300F01F039A4043099B0003F1604320 -:1053100003F56143C3F880211A60704700F01F0352 -:1053200001229A40430900F160409B0000F5614072 -:1053300003F1604303F56143C3F88020C3F8802183 -:10534000002380F800337047F8B51546826804469C -:105350000B46AA4200D28568A1692669761AB54231 -:105360000BD218462A46FCF7B5FCA3692B44A3616F -:105370002846A3685B1BA360F8BD0CD9AF1B184679 -:105380003246FCF7A7FC3A46E1683044FCF7A2FC41 -:10539000E3683B44EBE718462A46FCF79BFCE368CE -:1053A000E5E7000083689342F7B50446154600D24E -:1053B0008568D4E90460361AB5420BD22A46FCF758 -:1053C00089FC63692B4463612846A3685B1BA36067 -:1053D00003B0F0BD0DD93246AF1B0191FCF77AFC4A -:1053E00001993A46E0683144FCF774FCE3683B44B9 -:1053F000E9E72A46FCF76EFCE368E4E710B50A44E7 -:105400000024C361029B8460C16002610362C0E941 -:105410000000C0E9051110BD08B5D0E9053293427E -:1054200001D1826882B98268013282605A1C42616D -:1054300019700021D0E904329A4224BFC368436145 -:1054400001F012F9002008BD4FF0FF30FBE700002B -:1054500070B5302304460E4683F31188A568A5B1C4 -:10546000A368A269013BA360531CA361157822695C -:10547000934224BFE368A361E3690BB120469847D8 -:10548000002383F31188284607E03146204601F0C7 -:10549000DBF80028E2DA85F3118870BD2DE9F74FBB -:1054A00004460E4617469846D0F81C904FF0300A36 -:1054B0008AF311884FF0000B154665B12A46314634 -:1054C0002046FFF741FF034660B94146204601F000 -:1054D000BBF80028F1D0002383F31188781B03B0B8 -:1054E000BDE8F08FB9F1000F03D001902046C84706 -:1054F000019B8BF31188ED1A1E448AF31188DCE7B7 -:10550000C160C361009B82600362C0E90511114460 -:10551000C0E9000001617047F8B504460D46164623 -:10552000302383F31188A768A7B1A368013BA36068 -:1055300063695A1C62611D70D4E904329A4224BF27 -:10554000E3686361E3690BB120469847002080F36C -:10555000118807E03146204601F076F80028E2DAAB -:1055600087F31188F8BD0000D0E9052310B59A42F1 -:1055700001D182687AB982680021013282605A1CA6 -:1055800082611C7803699A4224BFC368836101F079 -:105590006BF8204610BD4FF0FF30FBE72DE9F74FC9 -:1055A00004460E4617469846D0F81C904FF0300A35 -:1055B0008AF311884FF0000B154665B12A46314633 -:1055C0002046FFF7EFFE034660B94146204601F052 -:1055D0003BF80028F1D0002383F31188781B03B037 -:1055E000BDE8F08FB9F1000F03D001902046C84705 -:1055F000019B8BF31188ED1A1E448AF31188DCE7B6 -:105600000379052B05BF836A002001204B6004BF8E -:105610004FF400730B60704770B55D1E866A0446D8 -:105620000D44B54205D9436B43F080034363012029 -:1056300070BD06250571FFF787FC05232371F7E789 -:1056400070B55D1E866A04460D44B54205D9436BAC -:1056500043F080034363012070BD07250571FFF708 -:1056600099FC05232371F7E738B505790446052D24 -:1056700005D108230371FFF7B3FC257138BD012064 -:10568000FCE700000323F0B5037185B00446FFF783 -:105690004DFA002220461146FFF792FA4FF4D572D8 -:1056A00003AB08212046FFF7ADFA0246B8B9012343 -:1056B0002363039BC3F30323012B09D103AB3721DE -:1056C0002046FFF79FFA18B9A44B039A1340ABB1D9 -:1056D00020460125FFF75CFA0223237137E103AB73 -:1056E000002237212046FFF78DFA28B99B4A039BF9 -:1056F0001A40002A00F0A78002232363236B03F0E3 -:105700000F03022B40F0A9806425954E42F21070E1 -:1057100000F076FF03AB324601212046FFF75CFA2A -:105720000028D5D1039B002B80F293805A0003D52B -:10573000236B43F010032363002204F108030221CA -:105740002046FFF7BDFA02460028C1D104F1380314 -:1057500003212046FFF756FA0028B9D104F11805B5 -:10576000A26B092120462B46FFF7AAFA0028AFD1E9 -:1057700002ABA26B07212046FFF744FA0646002839 -:10578000A6D1236B03F00F03022B40F08F807E2203 -:105790007F21284603F01CFA012840F28780E76B3E -:1057A00042F2107000F02CFF08234FF400723946CB -:1057B00020460096FFF7A0FA002889D1384603F06A -:1057C00055FA236BA06203F00F03022B72D103ABD7 -:1057D000644A06212046FFF715FA002871D15F4977 -:1057E000039B1940B1FA81F149092046FFF7B0F94E -:1057F00002AB4FF4007210212046FFF703FA054672 -:1058000000287FF465AF554E029B33427FF460AFB2 -:10581000236B13F00E0F03F00F0273D0022A7FF4F4 -:1058200057AFE36A1978012900F09480022900F04B -:105830009380002900F089804B4F2046FFF7AEF996 -:1058400003AB3A4676E0114620462263FFF7B8F9EB -:1058500054E7013D7FF45AAF3AE7444D6426444A89 -:105860003E4F012B18BF154603AB002237212046BF -:10587000FFF7C8F900287FF42BAF039B3B427FF46E -:1058800027AF03AB2A4629212046FFF7A5F90028B8 -:105890007FF41EAF039B002BFFF648AF013E3FF4A1 -:1058A00017AF42F2107000F0ABFEDDE7284603F0C0 -:1058B000B1F986E77E227F212846E66B03F088F95E -:1058C00008B9002191E70023402231462046009389 -:1058D0000623FFF711FA0028F3D1B3895BBA9B07BF -:1058E000EFD5244B40223146204600930623FFF794 -:1058F00003FA0028E5D1317C01F00F010F3918BF00 -:10590000012172E7E36A1978F9B101297FF4E0AE69 -:105910002046FFF743F903ABA26B37212046FFF780 -:1059200071F900287FF4D4AE039B33427FF4D0AEEC -:1059300003AB022206212046FFF764F900287FF41A -:10594000C7AE039B33427FF4C3AE052323712846C1 -:1059500005B0F0BD084F70E7084F6EE708E0FFFDA7 -:105960000080FFC00001B9030000B7030080FF50B2 -:1059700000001080F1FFFF800001B7030002B703B1 -:1059800037B504460C4D01ABA26B0D212046FFF745 -:1059900039F978B9019B2B420BD1C3F34323042B74 -:1059A00008D0053B022B04D84FF47A7000F028FE93 -:1059B000E9E7012003B030BD08E0FFFD70B53023FA -:1059C000054683F3118803790024022B03D184F365 -:1059D0001188204670BD0423037184F311880226C8 -:1059E000FFF7CEFF04462846FFF7D2F82E71F0E706 -:1059F000FFF73CB8044B03600123037100234363AA -:105A0000C0E90A33704700BF6898000810B530231A -:105A1000044683F31188C162FFF742F80223002095 -:105A2000237180F3118810BD10B53023044683F331 -:105A30001188FFF75BF800230122E362227183F3F0 -:105A4000118810BD026843681143016003B1184713 -:105A5000704700001430FFF721BD00004FF0FF3306 -:105A60001430FFF71BBD00003830FFF797BD000072 -:105A70004FF0FF333830FFF791BD00001430FFF7CF -:105A8000E7BC00004FF0FF311430FFF7E1BC00002D -:105A90003830FFF741BD00004FF0FF323830FFF7DC -:105AA0003BBD0000012914BF6FF0130000207047B8 -:105AB000FFF7D2BA044B036000234360C0E902330E -:105AC00001230374704700BF8C98000810B5302381 -:105AD000044683F31188FFF72FFB02230020237471 -:105AE00080F3118810BD000038B5C36904460D4627 -:105AF0001BB904210844FFF7A5FF294604F114004F -:105B0000FFF78AFC002806DA201D4FF40061BDE88B -:105B10003840FFF797BF38BD026843681143016002 -:105B200003B118477047000013B5406B00F580546F -:105B3000D4F8A4381A681178042914D1017C0229F8 -:105B400011D11979012312898B4013420BD101A97C -:105B50004C3002F06BFFD4F8A4480246019B217937 -:105B6000206800F0DFF902B010BD0000143002F030 -:105B7000EDBE00004FF0FF33143002F0E7BE00002E -:105B80004C3002F0BFBF00004FF0FF334C3002F04A -:105B9000B9BF0000143002F0BBBE00004FF0FF316F -:105BA000143002F0B5BE00004C3002F08BBF000094 -:105BB0004FF0FF324C3002F085BF000000207047EC -:105BC00010B500F58054D4F8A4381A681178042967 -:105BD00017D1017C022914D15979012352898B40B4 -:105BE00013420ED1143002F04DFE024648B1D4F8F3 -:105BF000A4484FF4407361792068BDE8104000F07C -:105C00007FB910BD406BFFF7DBBF0000704700009D -:105C10007FB5124B0125042604460360002305745A -:105C200000F1840243602946C0E902330C4B029024 -:105C3000143001934FF44073009602F0FFFD094BBE -:105C400004F69442294604F14C000294CDE9006325 -:105C50004FF4407302F0C6FE04B070BDB498000863 -:105C6000055C0008295B00080A68302383F311886B -:105C70000B790B3342F823004B79133342F823009E -:105C80008B7913B10B3342F8230000F58053C3F82E -:105C9000A41802230374002080F3118870470000C9 -:105CA00038B5037F044613B190F85430ABB90125E1 -:105CB000201D0221FFF730FF04F114006FF00101F5 -:105CC000257700F0DDFC04F14C0084F854506FF0AF -:105CD0000101BDE8384000F0D3BC38BD10B501214A -:105CE00004460430FFF718FF0023237784F854306C -:105CF00010BD000038B504460025143002F0B6FD92 -:105D000004F14C00257702F085FE201D84F85450E4 -:105D10000121FFF701FF2046BDE83840FFF750BFE3 -:105D200090F8803003F06003202B06D190F881209A -:105D30000023212A03D81F2A06D800207047222AD0 -:105D4000FBD1C0E91D3303E0034A426707228267A3 -:105D5000C3670120704700BF4422002037B500F51B -:105D60008055D5F8A4381A68117804291AD1017C15 -:105D7000022917D11979012312898B40134211D1BD -:105D800000F14C04204602F005FF58B101A920465D -:105D900002F04CFED5F8A4480246019B2179206808 -:105DA00000F0C0F803B030BD01F10B03F0B550F8BE -:105DB000236085B004460D46FEB1302383F311887D -:105DC00004EB8507301D0821FFF7A6FEFB6806F1EE -:105DD0004C005B691B681BB1019002F035FE019815 -:105DE00003A902F023FE024648B1039B2946204640 -:105DF00000F098F8002383F3118805B0F0BDFB682C -:105E00005A691268002AF5D01B8A013B1340F1D170 -:105E100004F18002EAE70000133138B550F8214060 -:105E2000ECB1302383F3118804F58053D3F8A42810 -:105E30001368527903EB8203DB689B695D6845B1A7 -:105E400004216018FFF768FE294604F1140002F0EF -:105E500023FD2046FFF7B4FE002383F3118838BDED -:105E60007047000001F052BD01234022002110B50F -:105E7000044600F8303BFBF753FF0023C4E901332D -:105E800010BD000010B53023044683F3118824228E -:105E9000416000210C30FBF743FF204601F058FD24 -:105EA00002230020237080F3118810BD70B500EB31 -:105EB0008103054650690E461446DA6018B1102277 -:105EC0000021FBF72DFFA06918B110220021FBF77C -:105ED00027FF31462846BDE8704001F039BE00007A -:105EE00083682022002103F0011310B5044683606B -:105EF0001030FBF715FF2046BDE8104001F0B4BE9E -:105F0000F0B4012500EB810447898D40E4683D43EE -:105F1000A469458123600023A2606360F0BC01F0A6 -:105F2000D1BE0000F0B4012500EB810407898D404B -:105F3000E4683D436469058123600023A2606360D7 -:105F4000F0BC01F047BF000070B5022300250446F5 -:105F5000242203702946C0F888500C3040F8045CB5 -:105F6000FBF7DEFE204684F8705001F085FD636883 -:105F70001B6823B129462046BDE87040184770BD14 -:105F80000378052B10B504460AD080F88C30052321 -:105F9000037043681B680BB1042198470023A3607A -:105FA00010BD00000178052906D190F88C204368C7 -:105FB00002701B6803B118477047000070B590F875 -:105FC0007030044613B1002380F8703004F1800271 -:105FD000204601F06DFE63689B68B3B994F8803089 -:105FE00013F0600535D00021204602F05FF9002152 -:105FF000204602F04FF963681B6813B10621204662 -:106000009847062384F8703070BD204698470028D2 -:10601000E4D0B4F88630A26F9A4288BFA36794F99F -:106020008030A56F002B4FF0300380F20381002DEC -:1060300000F0F280092284F8702083F31188002197 -:106040002046D4E91D23FFF76DFF002383F3118859 -:10605000DAE794F8812003F07F0343EA022340F259 -:106060000232934200F0C58021D8B3F5807F48D03A -:106070000DD8012B3FD0022B00F09380002BB2D122 -:1060800004F1880262670222A267E367C1E7B3F501 -:10609000817F00F09B80B3F5407FA4D194F88230DB -:1060A000012BA0D1B4F8883043F0020332E0B3F5FD -:1060B000006F4DD017D8B3F5A06F31D0A3F5C063F2 -:1060C000012B90D86368204694F882205E6894F88B -:1060D0008310B4F88430B047002884D043686367E5 -:1060E0000368A3671AE0B3F5106F36D040F602429A -:1060F00093427FF478AF5C4B63670223A36700236E -:10610000C3E794F88230012B7FF46DAFB4F8883088 -:1061100023F00203A4F88830C4E91D55E56778E749 -:10612000B4F88030B3F5A06F0ED194F882302046D9 -:1061300084F88A3001F0FEFC63681B6813B101210A -:1061400020469847032323700023C4E91D339CE7AE -:1061500004F18B0363670123C3E72378042B10D179 -:10616000302383F311882046FFF7BAFE85F31188A8 -:106170000321636884F88B5021701B680BB12046A3 -:10618000984794F88230002BDED084F88B300423BB -:10619000237063681B68002BD6D0022120469847E5 -:1061A000D2E794F8843020461D0603F00F010AD58B -:1061B00001F070FD012804D002287FF414AF2B4BAE -:1061C0009AE72B4B98E701F057FDF3E794F88230FC -:1061D000002B7FF408AF94F8843013F00F01B3D094 -:1061E0001A06204602D502F079F8ADE702F06AF807 -:1061F000AAE794F88230002B7FF4F5AE94F884304F -:1062000013F00F01A0D01B06204602D502F04EF875 -:106210009AE702F03FF897E7142284F8702083F39E -:1062200011882B462A4629462046FFF769FE85F34A -:106230001188E9E65DB1152284F8702083F3118896 -:1062400000212046D4E91D23FFF75AFEFDE60B226C -:1062500084F8702083F311882B462A46294620466D -:10626000FFF760FEE3E700BFE4980008DC98000851 -:10627000E098000838B590F870300446002B3ED006 -:10628000063BDAB20F2A34D80F2B32D8DFE803F0FE -:106290003731310822323131313131313131373713 -:1062A000856FB0F886309D4214D2C3681B8AB5FB57 -:1062B000F3F203FB12556DB9302383F311882B469B -:1062C0002A462946FFF72EFE85F311880A2384F813 -:1062D00070300EE0142384F87030302383F311887B -:1062E000002320461A461946FFF70AFE002383F3CF -:1062F000118838BDC36F03B198470023E7E7002139 -:10630000204601F0D3FF0021204601F0C3FF63685F -:106310001B6813B10621204698470623D7E70000E3 -:1063200010B590F870300446142B29D017D8062BDE -:1063300005D001D81BB110BD093B022BFBD80021B1 -:10634000204601F0B3FF0021204601F0A3FF63685F -:106350001B6813B1062120469847062319E0152B28 -:10636000E9D10B2380F87030302383F311880023A8 -:106370001A461946FFF7D6FD002383F31188DAE7A2 -:10638000C3689B695B68002BD5D1C36F03B1984785 -:10639000002384F87030CEE70023826880F8243030 -:1063A00083691B6899689142FBD25A680360426016 -:1063B00010605860704700000023826880F8243025 -:1063C00083691B6899689142FBD85A6803604260F0 -:1063D000106058607047000008B50846302383F30A -:1063E000118891F82430032B05D0042B0DD02BB944 -:1063F00083F3118808BD8B6A00221A604FF0FF33C7 -:106400008362FFF7C9FF0023F2E7D1E9003213608E -:106410005A60F3E7034610B51B68984203D09C68A6 -:106420008A689442F8D25A680B604A6011605960D9 -:1064300010BD0000FFF7B0BF064BD96881F82400FB -:106440001868026853601A600122D86080F824201E -:10645000F9F7D8BF684600200C4B30B5DD684B1CFF -:1064600087B004460FD02B46094A684600F09CF9D5 -:106470002046FFF7E1FF009B13B1684600F09EF94C -:10648000A86A07B030BDFFF7D7FFF9E768460020DC -:10649000D9630008044B1A68DB6890689B689842CF -:1064A00094BF00200120704768460020094B10B5BA -:1064B0001C68D868226853601A600122DC6084F886 -:1064C0002420FFF779FF01462046BDE81040F9F788 -:1064D00099BF00BF68460020044B1A68DB689268C9 -:1064E0009B689A4201D9FFF7E1BF704768460020D8 -:1064F00038B50123084C00252370656002F0E4FBE9 -:1065000002F00AFC0549064802F0E0FC0223237071 -:1065100085F3118838BD00BF10490020EC980008B1 -:106520006846002000F080B9034A516853685B1A3E -:106530009842FBD8704700BF001000E08B604B63AF -:106540000023CA6100F128020B6302230A618B84D5 -:106550000123886181F8263001F11003C26A4A6183 -:106560001360C36201F12C030846CB627047000040 -:10657000D0E90131026841F8183CA1F19C03383997 -:10658000CB60036941F8243C436941F8203C034B4C -:1065900041F8043CC3680248FFF7D0BF1D0400085F -:1065A0006846002008B5FFF7E3FFBDE80840FFF7A5 -:1065B00041BF000038B50E4BDC6804F12C05A06229 -:1065C000E06AA8420FD194F826303BB994F8253000 -:1065D0009B0702BFD4E9043213605A600F20BDE864 -:1065E0003840FFF729BF0368E362FFF723FFE7E7BF -:1065F00068460020302383F31188FFF7DBBF0000DB -:1066000008B50146302383F311880820FFF724FFE3 -:10661000002383F3118808BD054BDB6821B10360BB -:1066200098620320FFF718BF4FF0FF30704700BF9C -:106630006846002003682BB1002202601846996268 -:10664000FFF7F8BE70470000064BDB6839B14268BF -:1066500018605A60136043600420FFF7FDBE4FF0DE -:10666000FF307047684600200368984206D01A68D9 -:106670000260506018469962FFF7DCBE7047000068 -:1066800038B504460D462068844200D138BD036801 -:1066900023605C608562FFF7CDFEF4E7036810B508 -:1066A0009C68A2420CD85C688A600B604C602160D8 -:1066B000596099688A1A9A604FF0FF33836010BD61 -:1066C000121B1B68ECE700000A2938BF0A2170B5CD -:1066D00004460D460A26601902F0F0FA02F0D8FAD4 -:1066E000041BA54203D8751C04462E46F3E70A2E68 -:1066F00004D90120BDE8704002F0B0BC70BD0000BC -:10670000F8B5144B0D460A2A4FF00A07D96103F178 -:106710001001826038BF0A22416019691446016085 -:1067200048601861A81802F0B9FA02F0B1FA431BE8 -:106730000646A34206D37C1C28192746354602F09C -:10674000BDFAF2E70A2F04D90120BDE8F84002F0B3 -:1067500085BCF8BD68460020F8B506460D4602F037 -:1067600097FA0F4A134653F8107F9F4206D12A46E4 -:1067700001463046BDE8F840FFF7C2BFD169BB68AB -:10678000441A2C1928BF2C46A34202D92946FFF7E8 -:106790009BFF224631460348BDE8F840FFF77EBF25 -:1067A0006846002078460020C0E90323002310B487 -:1067B0005DF8044B4361FFF7CFBF000010B5194CE3 -:1067C000236998420DD08168D0E9003213605A6085 -:1067D0009A680A449A60002303604FF0FF33A36174 -:1067E00010BD0268234643F8102F53600022026058 -:1067F00022699A4203D1BDE8104002F059BA936869 -:1068000081680B44936002F043FA2269E16992685F -:10681000441AA242E4D91144BDE81040091AFFF716 -:1068200053BF00BF684600202DE9F047DFF8BC8069 -:1068300008F110072C4ED8F8105002F029FAD8F8B9 -:106840001C40AA68031B9A423ED814444FF000092A -:10685000D5E90032C8F81C4013605A60C5F80090B2 -:10686000D8F81030B34201D102F022FA89F311882E -:10687000D5E9033128469847302383F311886B69A3 -:10688000002BD8D002F004FA6A69A0EB0409824612 -:106890004A450DD2022002F0E1FB0022D8F8103068 -:1068A000B34208D151462846BDE8F047FFF728BF5C -:1068B000121A2244F2E712EB09092946384638BF7A -:1068C0004A46FFF7EBFEB5E7D8F81030B34208D0E0 -:1068D0001444C8F81C00211AA960BDE8F047FFF76E -:1068E000F3BEBDE8F08700BF784600206846002070 -:1068F00038B502F0CDF9054AD2E90845031B18194D -:1069000045F10001C2E9080138BD00BF684600201A -:1069100010B560B9074804790368053C9B6818BF47 -:106920000124984708B144F00404204610BD012416 -:10693000FBE700BFC8360020FFF7EABF2DE9F047AC -:10694000884617469A460446B0B90D4E3579052D4E -:1069500005D003240DE0013D15F0FF050ED032688F -:10696000534639463046D2F814904246C84700286C -:10697000F1D12046BDE8F0870424FAE70124F8E7C6 -:10698000C83600202DE9F047884617469A46044647 -:10699000B0B90D4E3579052D05D003240DE0013D2C -:1069A00015F0FF050ED03268534639463046D2F80E -:1069B00018904246C8470028F1D12046BDE8F0872C -:1069C0000424FAE70124F8E7C836002037B50C465E -:1069D000154670B951B101290BD1074869460368C2 -:1069E0001B6A984710B9019B04462B60204603B0F0 -:1069F00030BD0424FAE700BFC836002000207047ED -:106A0000FEE70000704700004FF0FF3070470000C5 -:106A10004B6843608B688360CB68C3600B694361DC -:106A20004B6903628B6943620B6803607047000027 -:106A300008B5464B40F2FF714548D3F888200A4319 -:106A4000C3F88820D3F8882022F4FF6222F00702DE -:106A5000C3F88820D3F888303E4B1A6C0A431A6476 -:106A60009A6E0A433C499A669B6EFFF7D1FF1C3130 -:106A700000F58060FFF7CCFF1C3100F58060FFF768 -:106A8000C7FF1C3100F58060FFF7C2FF1C3100F525 -:106A90008060FFF7BDFF1C3100F58060FFF7B8FF95 -:106AA0001C3100F58060FFF7B3FF1C3100F58060FA -:106AB000FFF7AEFF1C3100F58060FFF7A9FF1C3126 -:106AC00000F58060FFF7A4FF1C3100F58060FFF740 -:106AD0009FFF01F097FC214BD3F8902242F0010276 -:106AE000C3F89022D3F8942242F00102C3F8942212 -:106AF0000522C3F898204FF06052C3F89C20184A32 -:106B0000C3F8A020174BDA6952021ED59A69D00744 -:106B100004D5154A9A6002F144329A60114BDA6941 -:106B2000D107FCD41A6A22F480021A629A6942F0F0 -:106B300002029A61DA69D207FCD49A6942F0010232 -:106B40009A61084AD369DB07FCD408BD00440258A7 -:106B500000000258004502580099000800ED00E0CE -:106B60001F000803002000523B2A190808B501F055 -:106B700051FEFFF7BDFC0D4BDA6B42F04002DA63C9 -:106B80005A6E22F040025A665B6E094B1A6842F058 -:106B900008021A601A6842F004021A6000F06EFDE2 -:106BA00000F032FBBDE8084000F0B4B800450258E0 -:106BB000001802480120704700207047704700000D -:106BC00002290CD0032904D00129074818BF00204E -:106BD0007047032A05D8054800EBC20070470448F7 -:106BE00070470020704700BF049B0008542200201B -:106BF000B89A000870B59AB005460846144601A92F -:106C000000F0C2F801A8FBF783F8431C0022C6B2CB -:106C10005B001046C5E9003423700323023404F8F6 -:106C2000013C01ABD1B202348E4201D81AB070BD22 -:106C300013F8011B013204F8010C04F8021CF1E7FF -:106C400008B5302383F311880348FFF787F8002342 -:106C500083F3118808BD00BF1849002090F88030E8 -:106C600003F01F02012A07D190F881200B2A03D1DB -:106C70000023C0E91D3315E003F06003202B08D189 -:106C8000B0F884302BB990F88120212A03D81F2A2C -:106C900004D8FFF745B8222AEBD0FAE7034A426747 -:106CA00007228267C3670120704700BF4B22002084 -:106CB00007B5052917D8DFE801F0191603191920BF -:106CC000302383F31188104A01210190FFF7EEF879 -:106CD000019802210D4AFFF7E9F80D48FFF70AF87D -:106CE000002383F3118803B05DF804FB302383F3A2 -:106CF00011880748FEF7D4FFF2E7302383F31188A9 -:106D00000348FEF7EBFFEBE7589A00087C9A00086F -:106D10001849002038B50C4D0C4C2A460C4904F19A -:106D20000800FFF767FF05F1CA0204F110000949E6 -:106D3000FFF760FF05F5CA7204F118000649BDE8C7 -:106D40003840FFF757BF00BFF061002054220020F9 -:106D5000349A00083E9A00084D9A000870B504461F -:106D600008460D46FAF7D4FFC6B220460134037830 -:106D70000BB9184670BD32462946FAF7B5FF002810 -:106D8000F3D10120F6E700002DE9F04705460C4657 -:106D9000FAF7BEFF2B49C6B22846FFF7DFFF08B15E -:106DA0000736F6B228492846FFF7D8FF08B1103653 -:106DB000F6B2632E0BD8DFF88C80DFF88C90234F6F -:106DC000DFF894A02E7846B92670BDE8F0872946F2 -:106DD0002046BDE8F04702F0E5B9252E2ED1072266 -:106DE00041462846FAF780FF70B9194B224603F155 -:106DF0000C0153F8040B8B4242F8040BF9D11B88A9 -:106E000007350E341380DDE7082249462846FAF795 -:106E10006BFF98B9A21C0F4B197802320909C95DA2 -:106E200002F8041C13F8011B01F00F015345C95D62 -:106E300002F8031CF0D118340835C3E7013504F813 -:106E4000016BBFE7249B00084D9A00083B9B00089C -:106E50002C9B000800E8F11F0CE8F11FBFF34F8FD7 -:106E6000044B1A695107FCD1D3F810215207F8D10D -:106E7000704700BF0020005208B50D4B1B78ABB91E -:106E8000FFF7ECFF0B4BDA68D10704D50A4A5A60CA -:106E900002F188325A60D3F80C21D20706D5064A8F -:106EA000C3F8042102F18832C3F8042108BD00BFF1 -:106EB0004E640020002000522301674508B5114BA5 -:106EC0001B78F3B9104B1A69510703D5DA6842F001 -:106ED0004002DA60D3F81021520705D5D3F80C210F -:106EE00042F04002C3F80C21FFF7B8FF064BDA6806 -:106EF00042F00102DA60D3F80C2142F00102C3F83B -:106F00000C2108BD4E640020002000520F289ABFBB -:106F100000F5806040040020704700004FF400300E -:106F200070470000102070470F2808B50BD8FFF7F6 -:106F3000EDFF00F500330268013204D104308342D2 -:106F4000F9D1012008BD0020FCE700000F2838B56A -:106F500005463FD8FFF782FF1F4CFFF78DFF4FF02C -:106F6000FF3307286361C4F814311DD82361FFF78C -:106F700075FF030243F02403E360E36843F08003FA -:106F8000E36023695A07FCD42846FFF767FFFFF741 -:106F9000BDFF4FF4003100F0ABFA2846FFF78EFF3B -:106FA000BDE83840FFF7C0BFC4F81031FFF756FF07 -:106FB000A0F108031B0243F02403C4F80C31D4F8F9 -:106FC0000C3143F08003C4F80C31D4F810315B0766 -:106FD000FBD4D9E7002038BD002000522DE9F84F3E -:106FE00005460C46104645EA0203DE0602D00020A4 -:106FF000BDE8F88F20F01F00DFF8BCB0DFF8BCA0C0 -:10700000FFF73AFF04EB0008444503D10120FFF7E6 -:1070100055FFEDE720222946204602F08BF810B9F3 -:1070200020352034F0E72B4605F120021F68791C3B -:10703000DDD104339A42F9D105F178431B481C4E47 -:10704000B3F5801F1B4B38BF184603F1F80332BF5E -:10705000D946D1461E46FFF701FF0760A5EB040C99 -:10706000336804F11C0143F002033360231FD9F895 -:10707000007017F00507FAD153F8042F8B424CF833 -:107080000320F4D1BFF34F8FFFF7E8FE4FF0FF333B -:107090002022214603602846336823F00203336030 -:1070A00002F048F80028BBD03846B0E7142100525F -:1070B0000C200052142000521020005210210052C7 -:1070C00010B5084C237828B11BB9FFF7D5FE012372 -:1070D000237010BD002BFCD02070BDE81040FFF7DE -:1070E000EDBE00BF4E6400202DE9F04F0D4685B087 -:1070F000814658B111F00D0614BF2022082211F06C -:107100000803019304D0431E034269D0002435E0F4 -:10711000002E37D009F11F0121F01F094FF001089F -:10712000314F05F00403DFF8CCA005EA080BBBF1F2 -:10713000000F32D07869C0072FD408F101080C374E -:10714000B8F1060FF3D19EB9284D4946A81901920E -:1071500001F004FE0446002839D12036019AA02E01 -:10716000F3D1494601F0FAFD044600282FD1019AD7 -:1071700049461F4801F0F2FD044660BB204605B0B9 -:10718000BDE8F08F0029C9D101462846029201F0DE -:10719000E5FD0446D8B9029AC0E713B17869410702 -:1071A000CBD5AC0702D578698007C6D5019911B156 -:1071B00078690107C1D549460AEB4810CDE9022399 -:1071C00001F0CCFD0446DDE902230028B5D04A4693 -:1071D0000021204601E04A460021FAF7A1FDCDE753 -:1071E0000246002E96D199E74C9B0008906400203F -:1071F00050640020706400200021FFF775BF00007C -:107200000121FFF771BF000070B5144D0124144E29 -:1072100040F2FF3200210120FAF782FD06EB441014 -:1072200001342A6955F80C1F01F084FD062CF5D1B4 -:1072300037254FF4C0542046FFF7E2FF014628B13E -:1072400022460848BDE8704001F074BDC4EBC40498 -:10725000013D4FEAD404EED170BD00BF4C9B000845 -:1072600070640020506400200421FFF73DBF00003F -:107270004843FFF7C1BF000008B101F0E1BD70470E -:10728000B0F5805F10B5044607D8FFF7EDFF28B9C9 -:107290002046BDE81040FFF7AFBF002010BD000042 -:1072A000FFF7EABF70B5AAB140EA010313F01F036C -:1072B0000FD1094C0144A5686D0706D52568A84281 -:1072C00003D366683544A94204D903330C34122B26 -:1072D000F1D10022104670BD4C9B000808B501F0AA -:1072E000C5FE034AD2E90032C01842EB010108BDD5 -:1072F00030650020434BD3E900232DE9F3411343CC -:107300007CD0FFF7EBFF404A00230027F9F794F801 -:1073100006460D463D4A0023F9F78EF80023144631 -:1073200030462946394AF9F787F84FF461613C2322 -:10733000ADF80170B4FBF1F5B4FBF3F601FB1541B8 -:1073400003FB16464624B1FBF3F1314BF6B28DF840 -:10735000004098423CD84FF0640C4FF4C87EA3071D -:1073600004F26C7225D1B2FBFCF30CFB132313BBAC -:10737000B2FBFEF30EFB1322B2FA82F35B0903F2B7 -:107380006D18621C8045D2B217D90FB18DF800403C -:107390000022204C4FF00C0C17460CFB0343D4B2D8 -:1073A000013213F804C084450CD8A0EB0C0001276F -:1073B000F5E70023E3E70123E1E7A0EB080014462B -:1073C0000127CCE70FB18DF80140431C8DF8023046 -:1073D0009DF80100431C9DF800005038400640EA2B -:1073E00043509DF8023040EA034040EA560040EA2C -:1073F000C52040EA411002B0BDE8F0814FF404100E -:10740000F9E700BF3065002040420F0080510100C5 -:1074100090230B00949B00080244074BD2B210B596 -:10742000904200D110BD441C00B253F8200041F836 -:10743000040BE0B2F4E700BF504000580E4B30B5EB -:107440001C6F240405D41C6F1C671C6F44F400449B -:107450001C670A4C02442368D2B243F48073236051 -:10746000074B904200D130BD441C51F8045B00B280 -:1074700043F82050E0B2F4E70044025800480258B4 -:107480005040005807B5012201A90020FFF7C4FFB2 -:10749000019803B05DF804FB13B50446FFF7F2FF53 -:1074A000A04205D0012201A900200194FFF7C6FFE8 -:1074B00002B010BD10B56424013C4FF47A70FFF7A0 -:1074C0009FF814F0FF04F7D1084B4FF0807214249A -:1074D0009A6103F5805308229A61013C4FF47A7057 -:1074E000FFF78EF814F0FF04F7D110BD000002582A +:101E7000BDE8704003F030BE70BD00BFE433002009 +:101E80001422002018490020CC330020F8B571B688 +:101E9000002301201A46194602F086FD04468020E0 +:101EA00005F09CF9002845D00025234A80274FF4EF +:101EB000D06C3D26136923BBD2F810310BBB2368CD +:101EC00005F1006199602368D86023685F6023682A +:101ED000C3F800C021680B6843F001030B60216860 +:101EE0000B6823F01E030B6021680B68DB07FCD432 +:101EF000237B8035616806FA03F3B5F5001F0B609C +:101F0000D8D1204602F086FDB5F5001F11D000247F +:101F10000A4E0B4D012005F0C1F83388A34205D9C4 +:101F200028682044013404F0FFFFF6E7002005F0A4 +:101F3000B5F861B6F8BD00BF00200052E6330020BE +:101F4000A033002030B50A44084D91420DD011F85D +:101F5000013B5840082340F30004013B2C4013F0A0 +:101F6000FF0384EA5000F6D1EFE730BD2083B8EDDF +:101F70000121884238BF084605F068B908B105F06C +:101F800069B9704710B5084C01220849002001F0DA +:101F9000B3FE23783BB1064803F016FD044803F076 +:101FA00049FD0023237010BDE8330020DC920008B7 +:101FB000C83600201D482DE9F041036D2BB90122E0 +:101FC0004FF48051503005F0CDFA194E33780BB1F3 +:101FD000FFF7D8FF0324174F4FF00008134D1549A2 +:101FE0002846C7F8048003F017FD284603F050FB8D +:101FF00048B1013C284603F01DFD14F0FF04EED16A +:10200000204634700FE00C4901220C4801F074FEA8 +:10201000014618B1284603F0D7FCEAE7084800F06B +:1020200011F801203070BDE8F08100BFC8360020F3 +:10203000E83300203C220020DC920008EC33002032 +:10204000E09200080FB4002004B0704700687047A9 +:1020500003460068596870470B0A017043700B0C07 +:10206000090E8370C1707047110A027003714170CC +:10207000110C120E8170C2701A0A42711A0C1B0EDA +:102080008271C37170470000C36A0239023B8B4200 +:1020900083BF4389006C01FB0300002070470000F0 +:1020A000C2F307238A76CB760378032B01BF120C89 +:1020B0000A75120A4A75704700F10B010022D3011C +:1020C00043EA520310F8012B52FA83F38842DAB242 +:1020D000F5D110467047000010B541780446002045 +:1020E000013102464901022A16BFA35C032203EB19 +:1020F000C03302F101021EBF9BB203EB500398B242 +:102100009142F0D810BD000002684AB1134613F89E +:10211000011B1F290DD93A29F9D1911C8B4202D0FC +:102120004FF0FF3070471278302AF9D10360002059 +:102130007047014B187870473836002038B50D4687 +:10214000044618B9092000232B6038BD0368002B12 +:10215000F8D01A78002AF5D08188DA889142F1D136 +:10216000587804F0EFFB10F00100EBD12368EBE7A7 +:1021700038B50D4640F25231144602F0B9F9FF2845 +:1021800007D9012C0BD9030A022468702B70204652 +:1021900038BD30B1002CFAD001242870F7E70024B4 +:1021A000F5E70446F3E700002DE9F8430026D0F8F0 +:1021B000008005460C468E76836B002B4AD098F83B +:1021C0000030042B4BD133463546402720E0B7F58D +:1021D000187F80F0C480F90606F1010608BF0237B7 +:1021E000D05B02372BB900F5205292B2B2F5006FE6 +:1021F0000DD305F11A01C5F1FF0240EA0340214465 +:10220000FFF7B6FF002800F0AA800544002003462F +:10221000D8F8102092F82310B142D8D8002B40F003 +:102220009E80002D00F09B8000232544AB766373D5 +:10223000D8F81020137903F03701DB0621730BD493 +:1022400002F13800FFF704FFC4E9000193896381BC +:10225000D3892381BDE8F88300200146F4E7C36CED +:1022600001335ED1EA6B00232E26551E184615F861 +:10227000011F013020290CD0052908BFE5210928BC +:1022800004D10B2B9EBFE71801337E73E71801338F +:1022900079730B28EBD1E11800204873A17E002947 +:1022A0004BD1002B40D06FF00C0604F10D00082537 +:1022B000361B331810F8011B002938D02E298BB299 +:1022C0004AD0A3F14101192903D8117B0D4200D056 +:1022D00020330373EDE7B9F1000F05D100F520536A +:1022E0009BB2B3F5006F0BD307F11A01C7F1FF02E0 +:1022F00040EA09402144FFF73BFF48B10744002072 +:1023000002368146D8F80C30985B0028E3D1384675 +:10231000B9F1000F4FF0000218BF002023189A7681 +:10232000A0E7B1463746EDE73F23A37601232344D8 +:1023300000219976137B03B96373D37A02F11C00F1 +:1023400003F03F0323730023FFF780FE20606360E8 +:10235000D38A6381138B7CE710250B46B9E73F23B3 +:102360000125A37660E7000038B50546002435F85E +:10237000020B08B9204638BD02F0EEF86308C2B27D +:1023800003EBC43312FA83F39AB2C0F3072303EBCF +:10239000520303EBC2339CB2E9E7000037B5C378C0 +:1023A00004461BB90025284603B030BD00F14C019E +:1023B000826C01234078019104F0EAFA054680B965 +:1023C000A36BE070A06C226BC31A9342EAD2A3788D +:1023D0000199022BE6D102440123607804F0D8FA77 +:1023E000E1E70125DFE7000038B5836C05460C46C0 +:1023F0008B4210D0FFF7D2FF60B92246012305F1CE +:102400004C01687804F0A0FA00281CBF4FF0FF349C +:102410000120AC6438BD0020FCE7000038B5002383 +:102420000446C3704FF0FF338364FFF7DDFF0028DD +:102430004BD1B4F84A524AF655239D4207D10B229C +:10244000254904F14C0006F08BFE00283FD094F89B +:102450004C30EB2B03D01833DBB2012B2ED84AF6CD +:1024600055239D4206D108221C4904F19E0006F026 +:1024700077FE48B3B4F85730B3F5007F1ED194F817 +:102480005930DBB15A1E1A4218D1B4F85A30ABB1E8 +:1024900094F85C30013B012B10D8B4F85D306BB17F +:1024A000B4F85F307F2B06D804F16C00FFF7CEFD47 +:1024B000B0F5803F02D3B4F8623053B94AF65520E4 +:1024C00085420CBF0220032038BD0420FCE7012018 +:1024D000FAE70020F8E700BF0C9300081893000803 +:1024E00002392DE9F04701F007044FF0010A466C6C +:1024F00005460AFA04F41746984606EB1136C1F36E +:10250000C809E4B2314628460136FFF76DFF18B11D +:102510000120BDE8F087994605EB090292F84C309E +:10252000234214BF01210021414513D06340013FE4 +:1025300082F84C3085F803A0EBD0640014F0FF045F +:10254000EAD109F1010301244FF00009B3F5007F3E +:10255000E1D1D7E70220DCE701290246F8B50C46B5 +:1025600040F28C800668F36A8B4240F287803378B1 +:10257000013B032B00F28280DFE803F00229384B95 +:1025800004EB5405B16B304601EB5521FFF72CFFEE +:1025900010B14FF0FF30F8BD6F1CC5F30805B16BEB +:1025A0003046354401EB572195F84C50FFF71CFF9E +:1025B0000028EED1C7F30807E3073E4496F84C0025 +:1025C00045EA00204CBF0009C0F30B00E3E7B16B04 +:1025D000304601EB1421FFF707FF0028D9D1640032 +:1025E00004F4FF742644B6F84C00D4E7B16B3046CF +:1025F00001EBD411FFF7F8FE0028CAD1A40006F1C0 +:102600004C0004F4FE742044FFF720FD20F07040DD +:10261000C1E7D0E90430D57953EA000101D09168CF +:1026200001B95DBB9168022DA4EB01010DD1013B05 +:10263000728940F1FF305B0A43EAC053B3FBF2F307 +:1026400099421BD81CD0601CA5E7032D02D19369C9 +:102650008B42F8D8D3699BB9B16B304601EBD411EA +:10266000FFF7C2FE002894D1A0004C3600F4FE70A3 +:102670003044FFF7EBFC20F000408CE701208AE7B4 +:102680006FF0004087E70000F8B5066804460D4685 +:102690003378042B0CBF4FF080524FF400128A4263 +:1026A00001D80220F8BDCA06FBD182680163D2B905 +:1026B000022B13D83389B3EB551FF2D9F36BA36305 +:1026C000A36B6263002BECD003EB55234C36C5F3B0 +:1026D00008050020A3633544E563E3E7F36BC271AB +:1026E000002BE7D01A4677897F02BD42114604D2FB +:1026F0003046FFF7C9FCA063E2E72046FFF72CFF56 +:10270000431C024606D00128CBD9F36A8342C8D9BC +:10271000ED1BEAE70120C5E701292DE9F047064650 +:102720000C46174608D9C36A8B4205D90378022B99 +:1027300062D003D8012B22D0022552E0033B012BAB +:10274000FAD8816B01EBD411FFF74EFE0546002845 +:1027500047D1A40006F14C0304F4FE741C44337802 +:10276000042B07D0204627F07047FFF76FFC00F0DE +:102770007040074339462046FFF76EFC2FE001EB1F +:102780005108816B01EB5821FFF72EFE054640BB37 +:1027900014F0010406F14C0908F1010AC8F3080815 +:1027A00008BFFBB230461FBF19F8083003F00F0214 +:1027B0003B0103F0F00318BF134309F8083001236D +:1027C000B16BF37001EB5A21FFF70EFE054640B9DD +:1027D000CAF3080A44B1C7F3071709F80A700123BE +:1027E000F3702846BDE8F08719F80A30C7F30327CD +:1027F00023F00F031F43F0E7816B01EB1421FFF778 +:10280000F3FD05460028ECD1640006F14C0304F406 +:10281000FF741F551919C7F307274F70DFE7000032 +:10282000F8B504460E461746E3690BB91846F8BDDD +:10283000012BA6EB0305206814BFAA1C3A46691CAD +:10284000FFF76AFF0028F2D1E369013BE361EBE7A0 +:1028500001292DE9F84306460C461746056802D8BB +:102860000220BDE8F883EB6A8B42F9D97AB9A14618 +:1028700021463046A046FFF76FFE0446B0B92B78DC +:10288000042B02D1002F43D1F7710020E9E72B7808 +:10289000042B02D1C379022BE9D04FF0FF32394625 +:1028A0002846FFF739FF0028E1D0DAE70128D7D022 +:1028B000421C01D10120D4E72B78042B19D1EA6AFC +:1028C000AB69023A93421CD308F10102A2420CD038 +:1028D0002B78042B08D10023A2EB09024946284695 +:1028E000FFF7FEFD0028BCD1A146EB6AA342BFD88A +:1028F000C5E7002241462846FFF70EFF0028DED03C +:10290000AFE70133AB612B7943F001032B71DBE7B8 +:10291000F3798BB9B468BC4202D10223F371B4E7F6 +:1029200021463046FFF718FE012899D9431CC1D033 +:1029300001348442EFD0A8E7032BA6D1B368BB4291 +:10294000A3D8B2691344BB429FD3E6E770B5C379FD +:102950000446032B06D181688369CD18A94203D1AF +:102960000023E371002070BD4E1C20683246FFF743 +:10297000D3FE0028F7D13146F0E700002DE9F743F8 +:1029800005460191FFF70AFD0446002849D105F1EB +:102990004C09019928464FF40072FFF775FB214658 +:1029A000A86407464846FFF7BBF96C896402B4F592 +:1029B000004F28BF4FF40044B4F5007F2FD92046C4 +:1029C00004F04CFC804630B122460021640A002607 +:1029D000FFF7A6F909E06408EEE72346BA19414675 +:1029E000687803F0D5FF18B926446B899E42F4D36A +:1029F000404604F043FC6889801B18BF012003B0E7 +:102A0000BDE8F08301366B899E42F4D20123BA19E6 +:102A10004946687803F0BCFF0028F3D0EBE70026B6 +:102A2000F1E70120EBE70000F8B50446FFF7B6FC3C +:102A30000546002842D12378032B37D12779012F6F +:102A400034D104F14C0601464FF400723046FFF7D2 +:102A500067F955234122722184F84A32AA2304F5EA +:102A60000D7084F84F2084F84B32522384F83012D2 +:102A700084F84C3084F84D30612384F8311284F8A6 +:102A80004E3084F83332A16984F83222FFF7E4FA39 +:102A9000616904F50E70FFF7DFFA626B3B46314661 +:102AA00001326078A26403F073FF25710022607820 +:102AB000114603F091FF003818BF0120F8BD000057 +:102AC00000232DE9F0430B6085B00F461546FFF754 +:102AD0001BFB061EC0F2B281804B53F82640002C2F +:102AE00000F0AE813C6005F0FE0523786BB16078A4 +:102AF00003F028FFC70708D41DB110F0040500D06B +:102B00000A25284605B0BDE8F0830023F0B2237003 +:102B1000607003F003FFC10700F194810DB142071B +:102B2000EED400212046FFF779FC022840F099807E +:102B30006E4604F2122304F2522132461846103334 +:102B4000FFF784FA42F8040B8B42F7D1002556F8C0 +:102B5000041B00297DD02046FFF760FC012879D8AE +:102B60000128A26C40F0C08004F1570304F18C01ED +:102B700013F8015B002D7BD18B42F9D1B4F8B4304E +:102B8000B3F5807F74D194F8B830092B70D104F17B +:102B90009400FFF75DFA4FF0FF33171841F1000181 +:102BA000BB4275EB010363D304F1A000FFF74EFABB +:102BB00094F8BA302063012BA37059D194F8B990DE +:102BC00003FA09F91FFA89F36381002B50D0444BB3 +:102BD00004F1A800FFF73AFA0646984248D8831C49 +:102BE000626304F1A400E362FFF730FA00EB02082D +:102BF00004F19C00C4F84080FFF728FA10441FFA43 +:102C000089F2A06306FB02F313EB080345EB050210 +:102C10009F4271EB02032BD32E4604F1AC00FFF769 +:102C200015FAE06365B96389B34221D9E16B2046A7 +:102C3000FFF72AFA81192046FFF7D6FB98B901362B +:102C4000631993F84C30812B14D02035C5F3080557 +:102C5000E8E703200135042D7FF479AF042807D17C +:102C600001E0042801D101254BE701287FF678AF68 +:102C70000D2546E705F1140004F14C063044FFF73A +:102C8000E5F901280546F3D9E36A8342F0D9618961 +:102C9000821E236C02FB01336364A16B204601EBAF +:102CA000D511FFF7A1FB0028DDD105F07F0006EB71 +:102CB0008000FFF7CBF9431C03D00135A842ECD0CC +:102CC000D6E70425C4E90500064A257000251388C7 +:102CD000E56101339BB21380E38012E73C360020AC +:102CE000FDFFFF7F40360020B4F85730B3F5007F7A +:102CF000BED1B4F8626026B904F17000FFF7A6F9FE +:102D0000064694F85C302663591EA3700129AFD89B +:102D100094F859506581002DAAD0691E2942A7D187 +:102D2000B4F85D8018F00F0FA4F80880A0D1B4F8B3 +:102D30005F0018B904F16C00FFF788F9B4F85A1075 +:102D4000002995D006FB03FE01EB181CF4446045F6 +:102D50008ED3A0EB0C00A842B0FBF5F388D33E481D +:102D6000834285D84FF6F57083426DD903259F1CA9 +:102D7000114402EB0C03032DE7626263A163236439 +:102D80004CD1B4F8763053EA08037FF471AFBB003E +:102D900004F17800FFF75AF9E06303F2FF13B6EB92 +:102DA000532FFFF465AF4FF0FF33032DC4E9053314 +:102DB0004FF08003237187D1B4F87C30012B83D18D +:102DC000511C2046FFF710FB00287FF47DAFB4F8BC +:102DD0004A224AF6552320719A427FF475AF1F4B61 +:102DE00004F14C00FFF732F998427FF46DAF03F124 +:102DF000FF5304F50C70FFF729F903F50053203356 +:102E000098427FF461AF04F50D70FFF71FF9A061E0 +:102E100004F50E70FFF71AF9606155E7B8F1000F7D +:102E20003FF426AF7144022D4FEA4703E1631EBF12 +:102E3000D91907F0010303EB5103AEE70B2560E658 +:102E40000C255EE603255CE640F6F575AB428CBFCB +:102E5000022501258BE700BFF5FFFF0F52526141AC +:102E60002DE9F84F07460568884649B96E69C6B12D +:102E7000EB6AB34298BF0126AB69A3B9002405E011 +:102E8000FFF76AFB0128044603D801242046BDE869 +:102E9000F88F421C00F0D280EB6A8342F6D8464697 +:102EA000EAE70126E8E72A78EB6A042A40F0838003 +:102EB000A6F1020A023B4FF0010B9A4528BF4FF0E2 +:102EC000000AD146696C284601EB1931FFF78CFAEC +:102ED00000283BD109F00703EA6AC9F3C8010BFADD +:102EE00003F3901EDBB26A184C4609F1010992F80F +:102EF0004C20814502EA030233BF5B0000234FF4FC +:102F00000071DBB228BF9946B2B90234631E0333A5 +:102F1000BCD80123214628461A46FFF7E1FA0228C9 +:102F2000B3D0012800F08A80B8F1000F13D102233A +:102F3000FB710028A9D130E0CA450AD0002BD2D1BC +:102F40000131B1F5007FBDD20123CCE74FF0FF3452 +:102F5000DCE70024DAE7FB79022B07D1731CA342DC +:102F6000E7D0BB68F31ABB610323FB7108F10102D0 +:102F7000FB69A24205D113B10133FB61D9E70223FA +:102F8000FBE70BB90123FB61224641463846FFF7B8 +:102F900047FC00284FD10123FB61EA6AAB69023A82 +:102FA0006C6193429CBF03F1FF33AB612B7943F01B +:102FB00001032B716AE7464514D1741C3846A342BD +:102FC00098BF02242146FFF7C7FA01283FF45DAFFE +:102FD000431C33D0E0B16B69012B03D9EA6A9342F9 +:102FE00038BF1E4634460134EB6AA34203D8012E93 +:102FF0007FF644AF022421463846FFF7ADFA48B1C8 +:1030000001283FF442AF013018D0B442EBD135E78C +:10301000002CE7D04FF0FF3221462846FFF77CFB1B +:1030200048B9B8F1000FB8D0224641462846FFF70C +:1030300073FB0028B1D001287FF427AF4FF0FF3495 +:1030400024E700002DE9F84306680446076B89462B +:1030500033782037042B0CBF4FF080534FF400130C +:10306000BB429CBF00238363836B73B1C7F3080823 +:10307000B8F1000F3CD10133416B836339B9338917 +:10308000B3EB571F34D80023A36304200AE07389ED +:10309000013B13EA57232BD1FFF75EFA01280546BF +:1030A00002D80220BDE8F883421C01D10120F9E7D3 +:1030B000F36A834216D8B9F1000FE4D0616B204661 +:1030C000FFF7CEFE0546C8B10128EAD0431CEDD07B +:1030D00001463046FFF752FC0028E7D1E37943F080 +:1030E0000403E371294630466563FEF7CDFFA06314 +:1030F0004C36002027634644E663D3E70720D1E738 +:10310000F8B50E46002104460768FFF7BDFA98B9E6 +:103110000546A16B3846FFF767F968B93A78E36B63 +:10312000042A1B780CD11B060ED50546012120462A +:10313000FFF788FF0028ECD0042808BF072006E02E +:10314000E52B01D0002BF0D10135B542EED1F8BD11 +:10315000C16C4B1C2DE9F04104460568066B1FD17C +:10316000E5274FF00108A16B2846FFF73DF998B914 +:103170002A78E36B042A09BF1A781F7002F07F02D5 +:103180001A7085F80380236BB3420DD200212046CC +:10319000FFF758FF0028E6D0042808BF022003E00C +:1031A000FFF772FA0028DBD0BDE8F0812DE9F0418D +:1031B00005460068A96B0669FFF716F9044620B9B1 +:1031C000EB6B1A78852A03D002242046BDE8F081F3 +:1031D000324603F1200153F8040B8B4242F8040BF2 +:1031E000F9D1777801377F01A7F16003B3F5007F4C +:1031F000EAD800212846FFF725FF04280446E3D03B +:103200000028E2D1A96B2868FFF7EEF804460028F1 +:10321000DBD1EB6B1A78C02AD6D106F1200203F17C +:10322000200153F8040B8B4242F8040BF9D196F8B5 +:1032300023300F222C33B3FBF2F3B7EB431FC3D37E +:103240004FF0400800212846FFF7FCFE0428044602 +:10325000BAD00028B9D1A96B2868FFF7C5F8044691 +:103260000028B2D1EB6B1A78C12AADD1B8F5187F1E +:1032700009D206EB080203F1200153F8040B8B423C +:1032800042F8040BF9D108F120084745DAD8B8F51F +:10329000187F9AD83046FEF71FFF7388834294D078 +:1032A00092E700000B68002210B5036004460B6A29 +:1032B00083604B6AC261C37123F0FF03896AC0E96E +:1032C0000432C164FFF7E0F920B92046BDE81040A0 +:1032D000FFF76CBF10BD0000F8B503680546012775 +:1032E0001C692046FEF7F8FEA070000A6678E070C0 +:1032F0002846E96CFFF7C8F920B1022828BF022050 +:10330000C0B2F8BDA96B2868FFF76EF80028F4D1A9 +:10331000EB6B04F1200254F8041B944243F8041BA5 +:10332000F9D12B68DF70002EE7D000212846013E3E +:10333000FFF788FEE0E700002DE9F8434FF0FF08B3 +:1033400006460768042445464FF6FF79B16B11B96C +:10335000002C73D063E03846FFF746F80446002897 +:103360005DD1F06B0378002B6ED03A78042A11D12E +:10337000852B4DD1336B3046F364FFF717FF0446BE +:1033800000284CD13B691B7903F03F03B371204601 +:10339000BDE8F883C27AE52B02F03F02B27143D058 +:1033A0002E2B41D022F0200108293DD00F2A40D1F8 +:1033B000590637D503F0BF05336B90F80D80F364E1 +:1033C000437B434530D1428B72BB03780D21FC68AF +:1033D00023F04003DFF874E0013B4B4301211EF86A +:1033E00001CB30F80CC009B3FF2B1DD824F813C053 +:1033F0006146013301320D2AF1D10278520605D51A +:1034000021B1FF2B10D8002224F81320013DEDB28A +:1034100000213046FFF716FE0446002896D0002310 +:10342000B363B4E7AB42CBD0FF25F1E7CC45E1D0A5 +:10343000FAE72DB9FEF740FE404501D10024A6E78A +:103440004FF0FF33F364A2E70424E8E7B4930008E5 +:103450002DE9F04F002187B00446D0F80090FFF727 +:1034600013F9804670B999F80030042B33D1D9F89C +:103470000C00FEF779FF07462046FFF75DFF054683 +:1034800020B18046404607B0BDE8F08FD9F8103033 +:103490009A8CBA42F0D193F823B040265D4506D10C +:1034A000D9F80C3033F81530002BE5D1EAE7F106F6 +:1034B000D9F8103008BF0236985B01F04DF8D9F802 +:1034C0000C30824633F8150001F046F88245D3D11E +:1034D00002360135E2E74FF0FF0A4FF0FF3B554659 +:1034E000C4F84CB0A16B4846FEF77EFF00285CD1C3 +:1034F000E66B3778002F77D0F27AE52F02F03F03A2 +:10350000A37103D0120704D50F2B04D0C4F84CB01C +:103510004FE00F2B54D194F84B3058063FD4790626 +:1035200045D5236B07F0BF0796F80DA0E364737BC6 +:1035300053453ED1738B002B3BD135780121D9F80F +:103540000C3005F03F0501930D23013D5D43284BF1 +:1035500013F8012BB25A71B3FF2D059329D81046E9 +:10356000049200F0F9FF6B1C03900293019B33F867 +:10357000150000F0F1FF039981421AD1049A029DCF +:103580001146059B1B4A9342E2D133785A0604D573 +:1035900019B1019B33F815305BB97D1EEDB20021E6 +:1035A0002046FFF74FFD00289CD080466AE7BD42C9 +:1035B000BDD0FF25F3E74FF6FF708242E2D0F8E777 +:1035C0002DB93046FEF778FD50453FF45BAF94F8D7 +:1035D0004B30DB079AD40B2204F14001304605F052 +:1035E000BFFD002892D14DE74FF004084AE700BF25 +:1035F000B4930008C19300082DE9F04F90F84BB048 +:1036000099B004461BF0A00540F068810668F26896 +:1036100032F81530002B4AD13378042B40F08780E4 +:103620000F230E352046B5FBF3F5A91CFFF768FD07 +:103630008146002877D1236B0135A3EB4515E3794B +:103640005A07E56435D523F004032046E371FFF7FC +:103650007DF950BB4FF0FF32616B2046FFF7E0F879 +:1036600018BBA3682BB3214604A8FFF71BFEE0B9E3 +:1036700070894FF40071D4E90423E0FB0123306921 +:10368000C4E904233830FEF7EFFC3069D4E90423A1 +:103690002830FEF7E9FCE379326904A843F001031E +:1036A00082F82130FFF718FE18B181463BE0013562 +:1036B000AEE7D6E90354402200212046FEF730FB56 +:1036C0008523012140222370C0234FF0C10C04EB5D +:1036D000010884F8203000231E469E46571C04F83B +:1036E00002C0F0B2023204F807E021B135F813103D +:1036F00009B10133DBB20F0AA15408F8027002329B +:10370000D706F2D135F813700136002FE6D184F8D0 +:103710002330831C28466370FEF726FE84F82400BD +:10372000000A84F82500484619B0BDE8F08F04F17E +:1037300040070DF1100A1BF0010F97E807008AE817 +:10374000070000F0D38040234FF0010884F84B308D +:10375000BC46F368B8F1050F9AE80700ACE803002F +:103760002CF8022B4FEA12428CF8002059D9981EEF +:10377000424630F8021F002942D10DF10F0C0721FB +:1037800002F00F0E914612090EF13000392888BF61 +:103790000EF1370001390CF8010902D0B9F10F0F11 +:1037A000EED818AB7E205A1802F8580C3846002282 +:1037B000914206D010F801CB02F1010EBCF1200FAE +:1037C00031D104F13F0C072902F1010297BF18AB78 +:1037D00020205818013198BF10F8580C072A0CF80F +:1037E0000200F0D92046FFF733FE8146002878D149 +:1037F00008F10108B8F1640FAAD14FF0070992E768 +:103800004FF0100C01F0010E49080EEB4202D303F9 +:1038100044BF82F4883282F02102BCF1010CF1D164 +:10382000A7E74246A9E77246C2E7216B2046A1EB13 +:103830004511FEF729FF814600287FF474AF4FF64B +:10384000FF783846FEF738FC0190A16B3046FEF752 +:10385000CBFD814600287FF466AFE36BE9B2019AA5 +:103860004FF00D0CD6F80CE05A734FF00F02DFF852 +:10387000E0A0DA724A1E18730CFB02F284469876B6 +:10388000D87640451AF8019B0CF1010C18BF3EF8A0 +:10389000120003EB090B18BF013203F809004FEACD +:1038A0001029002808BF4046BCF10D0F8BF801908D +:1038B000E7D1404502D03EF812200AB941F040015C +:1038C0001970012300212046F370FFF7BBFB8146EE +:1038D00000287FF428AF013DB7D11BE04FF0060967 +:1038E00021E704287FF41FAF84F84BB01BF0020FD0 +:1038F00020461BBF0C350D210125B5FBF1F518BF86 +:1039000001352946FFF7FCFB814600287FF40BAF09 +:10391000013D8AD1A16B3046FEF766FD8146002845 +:103920007FF401AF01462022E06BFEF7F9F9E36B6B +:1039300003CF18605960BA7839889A72198194F85F +:103940004B30E26B03F0180313730123F370EAE6C4 +:10395000B493000810B504460A463430FEF776FBEF +:10396000886004F13800FEF773FBC2E9040194F8A3 +:10397000213003F00203D3710023D36110BD000096 +:1039800003284B8B04BF8A8A43EA024318467047D8 +:103990002DE9F04F0B7899B0044689462F2BD0F8CB +:1039A00000B001D05C2B09D14A4613789146013210 +:1039B0002F2BFAD05C2BF8D0002301E0DBF81C3071 +:1039C000A3600023E3619BF80030042B1ED1A368A1 +:1039D000E3B1DBF82030214604A82362DBF8243071 +:1039E0006362DBF82830A362FFF75CFC0346002823 +:1039F00054D1DBF8102002F13800FEF727FBC4E9B0 +:103A0000040392F8213003F00203E37199F80030C7 +:103A10001F2B00F2358180230021204684F84B3093 +:103A200019B0BDE8F04FFEF72FBE49460B78894626 +:103A300001312F2BFAD05C2BF8D01F2B8CBF002527 +:103A40000425012F2FD113882E2B31D1002322F8EA +:103A5000173004F140029F428CBF2E2120210133F8 +:103A60000B2B02F8011BF6D145F02005204684F807 +:103A70004B50FFF7EDFC94F84B30002800F0E78046 +:103A800004280BD1990603F0040240F1DC80002ADF +:103A900000F0F6808023002084F84B3019B0BDE898 +:103AA000F08F0425CDE7022F02D153882E2BCAD0E8 +:103AB000911E87BB002322F81730002F00F01181E0 +:103AC00032F81300194601332028F9D009B92E28FD +:103AD00001D145F00305901E30F817302E2B01D090 +:103AE000013FF9D14FF020334FF0000A6364D04614 +:103AF0002364C4F847300823481C32F81160009052 +:103B0000F6B1202E03D02E2E0DD1B84210D045F0A4 +:103B100003050099F0E731F81730202B01D02E2B48 +:103B2000C8D1013FC5E79A4505D20099B9423BD1BA +:103B30000B2B30D101E00B2B27D145F003050B23D4 +:103B400094F84020E52A04BF052284F84020082B81 +:103B500004BF4FEA88085FFA88F808F00C030C2BC2 +:103B600003D008F00303032B01D145F00205A80799 +:103B70003FF57CAF18F0010F18BF45F0100518F0A5 +:103B8000040F18BF45F0080570E70099B94202D04C +:103B900045F00305D4D84FEA88080B234FF0080AF4 +:103BA00000975FFA88F8B4E77F2E15D9304640F2C7 +:103BB0005231CDE9022345F00203019300F098FC55 +:103BC00010F0800F0646DDE9022316D000F07F06D4 +:103BD00046498E5D019D46B331464548CDE90123F6 +:103BE00005F0E8FADDE90123F8B9A6F1410189B24F +:103BF00019291ED848F0020810E0FF28EAD9591EFA +:103C00008A4503D345F003059A4682E704EB0A018F +:103C1000000A0AF1010A019D81F8400004EB0A0143 +:103C20000AF1010A81F8406073E745F003055F2659 +:103C3000F4E7A6F1610189B219299EBF203E48F040 +:103C40000108B6B2EAE7002A08BF052026E75A07AE +:103C50003FF524AFA379DB0645D59BF80000042887 +:103C600035D1A3682146E27923622369DBF810008D +:103C700023F0FF0313436362E36CA362FFF76AFE62 +:103C800023680027DA6819F8010B00283FF409AF10 +:103C900040F25231009200F04BFC054608B31F2859 +:103CA000009A7FF6FEAE2F283FF4BFAE5C283FF4AB +:103CB000BCAE7F2805D801460E4805F07BFA009A75 +:103CC00078B9FF2F0DD022F817500137DBE7216BB1 +:103CD0000BF14C03C1F308011944FFF751FEA0603A +:103CE000CEE70620DAE60520D8E600BF34930008C8 +:103CF0002D930008249300081FB5CDE9001003A8F8 +:103D000014460391FEF700FA002815DB0B4A52F81F +:103D100020300BB100211970019B0BB100211970EB +:103D200042F820302CB1002201A96846FEF7C8FEF7 +:103D30000446204604B010BD0B24FAE73C360020B0 +:103D40002DE9F04798B0904605460191002800F013 +:103D5000528102F03F0603A901A83246FEF7B0FEE9 +:103D6000002840F04681039B4FF48C60049303F0DD +:103D700075FA0746002800F04081039B00F50072A9 +:103D80000199D86004A81A61FFF702FE044620B921 +:103D90009DF95B30002BB8BF062418F01C0F00F013 +:103DA000CD80002C4CD0042C40D104A8FFF724FC7B +:103DB000044600283AD146F00806039B1A78042AE4 +:103DC00040F08380186929462B60FFF7C3FD039BF1 +:103DD0001E22002118690230FDF7A2FF039C00217A +:103DE0001A2220692630FDF79BFF236920221A71D1 +:103DF000246903F06DFA0146012208342046FEF7DB +:103E00002BF9039B04A81B6983F82120FFF764FAB0 +:103E1000044658B9A96801B302462846FEF718FDC2 +:103E2000AB68039A0446013B5361B4B1384603F0D2 +:103E300025FA0CB100232B60204618B0BDE8F087AE +:103E40009DF8163013F0110F40F0848018F0040F25 +:103E500040F0C98018F0080FAFD1039A31071399C9 +:103E6000936C48BF46F04006E964AB6410780428C0 +:103E700072D1069B9DF817102B62089B106923F0E6 +:103E8000FF030B4329466B62179BAB62FFF762FD92 +:103E9000DDF80CA00024002205F15008BAF8063025 +:103EA00021464046C5F800A0AB80002385F830606D +:103EB00085F831406C64C5E90E234FF40072FDF7BC +:103EC0002FFFB20653D40024B0E703F001FA0146F5 +:103ED000009013980E30FEF7BFF813980099163033 +:103EE000FEF7BAF8039C13992078FFF749FD2023C9 +:103EF00000228046CB7220461399FEF7D1F8139B1F +:103F0000002201211A775A779A77DA77039BD970C2 +:103F1000B8F1000FA1D0414604A8D3F84890FEF7AD +:103F200097FC0446002881D149460398FEF75CFAC5 +:103F3000039B044608F1FF30586176E7002C7FF4BC +:103F400075AF9DF81630DC064FD418F0020F84D000 +:103F5000D80782D5072469E7FFF712FD0023A86080 +:103F600001F11C00FEF772F86B61286190E7D5E95A +:103F7000046956EA0903A6D0BAF80AA0A9684FEA6C +:103F80004A2AC5E90E69B24574EB09031BD3002424 +:103F90002964002C7FF44AAFC6F30803002B92D0AB +:103FA000039C2046FEF770F808B3760A01234146C9 +:103FB00046EAC95682196A64607802F0C5FC041E9C +:103FC00018BF012432E72846FEF7C6FAB6EB0A0608 +:103FD000014669F10009012803D9431CD3D101240A +:103FE000D6E70224D4E7082420E704241EE70224AD +:103FF0001CE704461EE709241EE711241CE7000005 +:104000002DE9F04F994685B00023884603A9044660 +:10401000C9F800301646FEF791F8054680BB94F8C3 +:1040200031506DBB94F8303013F00103009300F071 +:10403000A68004F1500AD4E90432D4E90E011B1A17 +:1040400062EB0102B34272F1000238BF1E46BEB1FC +:10405000D4E90E10C1F30803002B40F08280039BCB +:104060005A894B0A013A43EAC0531A401BD151EA1C +:10407000000309D1A06801280DD8022584F8315029 +:10408000284605B0BDE8F08F216C20460192FEF76E +:1040900063FA019AEFE7431C04D10123009D84F8E1 +:1040A0003130EDE72064DDF80CB0216C5846FDF7A7 +:1040B000EBFF0028E1D0B6F5007F02EB000731D31B +:1040C000BBF80A1002EB5620730A88429BF80100E5 +:1040D00088BF8B1A3A464146019302F035FC00280E +:1040E000DBD194F93020019B002A0BDA606CC01BF5 +:1040F000984207D24FF40072514608EB4020FDF77A +:10410000E9FD019B5F02D9F80030F61BB8443B443F +:10411000C9F80030D4E90E32DB1942F10002C4E9DB +:104120000E3294E7626CBA421AD094F93030002B08 +:104130000DDA012351469BF8010002F029FC00280A +:10414000ABD194F8303003F07F0384F8303003981B +:1041500001233A465146407802F0F6FB00289CD1F4 +:104160006764A16B4046C1F30801C1F50077514473 +:10417000B74228BF37463A46FDF7ACFDC3E70725EF +:104180007EE7000070B596B00E460022019002A9AD +:1041900001A8FEF795FC0446E0B94FF48C6003F0EB +:1041A0005DF80546D8B1029B00F500720199D86010 +:1041B00002A81A61FFF7ECFB044640B99DF95330A1 +:1041C000002B0ADB1EB1314602A8FDF7EDFF2846A1 +:1041D00003F054F8204616B070BD0624F7E711240A +:1041E000F8E7000070B5B8B00222019003A901A859 +:1041F000FEF766FC044608BB039B4FF48C601093EB +:1042000003F02CF80546002866D0039B00F50072E9 +:104210000199D86010A81A61FFF7BAFB044650B99B +:104220009DF88B30980655D4190653D49DF8463026 +:10423000DA0706D50724284603F020F8204638B0D0 +:1042400070BD039B04931878042814D104A918693D +:10425000FFF780FB069E9DF84630DB0610D410A8C1 +:10426000FEF776FF04460028E5D156BB0398FEF71B +:10427000DBFB0446DFE71F99FFF782FB0646EAE710 +:10428000039BDA69B242D5D024930021269624A854 +:104290001B78042B01BFDDE90823CDE928239DF815 +:1042A00017308DF89730FEF7EFF904460028C2D199 +:1042B00024A8FFF741F804460028BBD00428BAD14F +:1042C000CDE70246314604A8FEF7C2FA04460028AC +:1042D000B1D1CBE70624AEE71124AFE7F0B5BDB00E +:1042E000CDE900106846FDF70FFF022203A901A8DF +:1042F000FEF7E6FB0446002841D1039B4FF48C6097 +:10430000149302F0ABFF0546002800F0EE80039BFB +:1043100000F5007214AE0199D8601A613046FFF7BB +:1043200037FB044640BB9DF89B3013F0A00F40F0D4 +:10433000D880039B009F1A78042A68D11B6904ACBB +:1043400003F1400C1868083353F8041C22466345F7 +:1043500003C21446F6D15022314628A8FDF7BAFC14 +:10436000394628A8FFF714FB044600284CD12A9AA6 +:10437000169B9A4206D00824284602F07FFF20466A +:104380003DB0F0BD349A209B9A42F4D128A8FFF7A3 +:1043900033F904460028EFD1039B04AF1B6993F85F +:1043A00001E093F823C09C8C3A46083303CAB2421A +:1043B00043F8080C43F8041C1746F5D1039B28A8C2 +:1043C0001B6983F801E0039B1A6982F823C01A690C +:1043D00082F82440240A82F825401A691379D90604 +:1043E0005CBF43F020031371FEF776FF04460028FC +:1043F000C2D13046FEF7ACFE04460028BCD103987B +:10440000FEF712FB0446B7E70428B5D1BEE7239AAE +:1044100004AB02F1200C1068083252F8041C1C4650 +:10442000624503C42346F6D15022314628A8FDF741 +:1044300051FC394628A8FFF7ABFA044600284CD1B6 +:104440002A9A169B9A4296D1349A209B9A4292D1EC +:1044500028A8FFF7D1F8044600288DD137990DF12F +:104460001D030DF12D0001F10D0253F8044B8342A1 +:1044700042F8044BF9D11888012710809B7893707B +:104480009DF81B30039CDA0658BF43F02003CB7223 +:10449000E770CB7ADB06ACD5169A2A9B9A42A8D055 +:1044A0002078FFF76DFA01462046FDF7EDFD014645 +:1044B000C8B12046FDF798FF044600287FF45CAFA2 +:1044C000039890F86D302E2B93D12A9A00F16C014D +:1044D000FDF7E6FD039BDF708BE704287FF44CAF0C +:1044E000B6E7062448E7022446E7112447E7000020 +:1044F0007F2810B501D880B210BDB0F5803F13D22F +:1045000040F2523399420FD10849002231F8024B50 +:1045100093B2844203D103F18000C0B2ECE70132D0 +:10452000802AF3D11346F6E70020E5E774960008E9 +:104530007F280DD940F25233994208D1FF2806D87E +:1045400000F10040034B803833F810007047002022 +:10455000704700BF74960008B0F5803FF0B522D2D6 +:104560001F4A83B21F49B0F5805F28BF0A46141D59 +:1045700034F8042C2146AAB1934213D334F8025CD8 +:104580002E0AEFB252FA85F5A84222DA082E09D88F +:10459000DFE806F0050A10121416181A1C00801A1B +:1045A00034F810301846F0BD981A00F001001B1ABC +:1045B0009BB2F7E7103BFBE7203BF9E7303BF7E71F +:1045C0001A3BF5E70833F3E7503BF1E7A3F5E35374 +:1045D000EEE70434002ECBD101EB4702C7E700BF62 +:1045E000C4930008B895000808B5074B074A196836 +:1045F00001F03D01996053680BB190689847BDE8A0 +:10460000084003F09FB800BF00000240443600207D +:1046100008B5084B1968890901F03D018A019A60C3 +:10462000054AD3680BB110699847BDE8084003F00C +:1046300089B800BF000002404436002008B5084B8E +:104640001968090C01F03D010A049A60054A536992 +:104650000BB190699847BDE8084003F073B800BFFC +:10466000000002404436002008B5084B1968890D47 +:1046700001F03D018A059A60054AD3690BB1106AC1 +:104680009847BDE8084003F05DB800BF0000024055 +:104690004436002008B5074B074A596801F03D0130 +:1046A000D960536A0BB1906A9847BDE8084003F09F +:1046B00049B800BF000002404436002008B5084B4E +:1046C0005968890901F03D018A01DA60054AD36A17 +:1046D0000BB1106B9847BDE8084003F033B800BF3A +:1046E000000002404436002008B5084B5968090C08 +:1046F00001F03D010A04DA60054A536B0BB1906B7F +:104700009847BDE8084003F01DB800BF0000024014 +:104710004436002008B5084B5968890D01F03D0169 +:104720008A05DA60054AD36B0BB1106C9847BDE877 +:10473000084003F007B800BF0000024044360020E4 +:1047400008B5074B074A196801F03D019960536CA1 +:104750000BB1906C9847BDE8084002F0F3BF00BF72 +:10476000000402404436002008B5084B1968890946 +:1047700001F03D018A019A60054AD36C0BB1106DBE +:104780009847BDE8084002F0DDBF00BF00040240CA +:104790004436002008B5084B1968090C01F03D01AA +:1047A0000A049A60054A536D0BB1906D9847BDE8B5 +:1047B000084002F0C7BF00BF00040240443600209A +:1047C00008B5084B1968890D01F03D018A059A600A +:1047D000054AD36D0BB1106E9847BDE8084002F052 +:1047E000B1BF00BF000402404436002008B5074BAB +:1047F000074A596801F03D01D960536E0BB1906EC4 +:104800009847BDE8084002F09DBF00BF0004024089 +:104810004436002008B5084B5968890901F03D016C +:104820008A01DA60054AD36E0BB1106F9847BDE874 +:10483000084002F087BF00BF000402404436002059 +:1048400008B5084B5968090C01F03D010A04DA600B +:10485000054A536F0BB1906F9847BDE8084002F0CE +:1048600071BF00BF000402404436002008B5084B69 +:104870005968890D01F03D018A05DA60054AD36F58 +:1048800013B1D2F880009847BDE8084002F05ABF43 +:10489000000402404436002000230C4910B51A469B +:1048A0000B4C0B6054F82300026001EB430004330F +:1048B0004260402BF6D1074A4FF0FF339360D3603C +:1048C000C2F80834C2F80C3410BD00BF44360020D2 +:1048D00074970008000002400F28F8B510D910287E +:1048E00010D0112811D0122808D10F240720DFF88A +:1048F000B4E00126DEF80050A04208D9002649E0C5 +:104900000446F4E70F240020F1E70724FBE706FA4A +:1049100000F73D4240D1214C4FEA001C3D4304EBDF +:1049200000160EEBC000CEF80050C0E90123FBB228 +:104930004BB11B48836B43F001038363036E43F069 +:1049400001030366036E17F47F4F09D01448836B8D +:1049500043F002038363036E43F002030366036EB6 +:1049600054F80C00036823F01F030360056815F07A +:104970000105FBD104EB0C033D2493F80CC05F68E8 +:1049800004FA0CF43C6021240560446112B1987B68 +:1049900000F0B4FC3046F8BD0130ADE77497000874 +:1049A000004502584436002010B5302484F31188A5 +:1049B000FFF792FF002383F3118810BD10B5044662 +:1049C000807B00F0B1FC01231049627B03FA02F204 +:1049D0000B6823EA0203DAB20B604AB90C4A916B06 +:1049E00021F001019163116E21F001011166126E37 +:1049F00013F47F4F09D1064B9A6B22F002029A639F +:104A00001A6E22F002021A661B6E10BD4436002098 +:104A10000045025808B5302383F31188FFF7CEFF15 +:104A2000002383F3118808BD836CC26A8B425068EF +:104A300010B506D95A1E4C0002EB4103B3FBF4F348 +:104A4000184410BD01F001038A0748BF43F0020378 +:104A50004A0748BF43F008030A0748BF43F004036E +:104A6000CA0648BF43F010038A06426B48BF43F0B2 +:104A7000200313434363704710B5074C204600F0F2 +:104A8000BFFF064B0022C4E91023054BA364054B6E +:104A9000E363054BE36410BDC8360020007000528C +:104AA00000B4C4041C3700201C390020C36A0BB9B1 +:104AB0000E4BC3620379012B0CD10D4B984209D1E7 +:104AC0000C4B5A6B42F480325A63DA6D42F48032F6 +:104AD000DA65DB6D436C00221A65DA621A605A608F +:104AE0005A624FF0FF329A63704700BF7498000813 +:104AF000C8360020004502580379012B16D0436CBC +:104B000000221A65DA621A605A605A624FF0FF3268 +:104B10009A63074B984209D1064B5A6B22F48032B4 +:104B20005A63DA6D22F48032DA65DB6D704700BFBC +:104B3000C83600200045025810B5446C0649FFF7FE +:104B400073FF6060236842F2107043F00303236038 +:104B5000BDE8104001F05ABD801A06000129F8B5E1 +:104B6000466C0B4F09D175680A493D40FFF75CFF61 +:104B7000054345F480557560F8BD746806493C40AE +:104B8000FFF752FF044344F480547460F4E700BF1D +:104B900000ECFFFF80F0FA0240787D01436C0022B8 +:104BA0005A601A6070470000426C0129536823F470 +:104BB000404304D0022905D001B95360704743F443 +:104BC0008043FAE743F40043F7E70000436C41F405 +:104BD00080519A60D9605A6B1206FCD580229A6384 +:104BE0007047000010B541F48851446CA260E16048 +:104BF000616B11F04502FBD0A26311F0040203D0F7 +:104C0000FFF720FF012010BD616910461960FAE727 +:104C100010B541F48851446CA260E160616B11F001 +:104C20004502FBD0A26311F0050203D0FFF70AFF93 +:104C3000012010BD616910461960FAE773B513468B +:104C400004460E46302282F31188426CD26B32B198 +:104C50004FF0FF314030019301F0E4FC019B606CA8 +:104C600000220265C263C262456B15F4807504D1EF +:104C700085F31188012002B070BD4FF0FF318163D0 +:104C800082F31188012E06D90C21204602B0BDE81E +:104C90007040FFF7BDBF1046EDE7000073B5446CF0 +:104CA0000E4600250192616BA1632565E562FFF761 +:104CB000C9FE012E07D9019B2A460C2102B0BDE88E +:104CC0007040FFF7A5BF02B070BD000010B541F401 +:104CD0009851446CA260E160616B11F04502FBD019 +:104CE000A26311F03F0203D0FFF7ACFE012010BD1C +:104CF000216A10461960E1695960A169996061698A +:104D0000D960F4E72DE9F74304460191006D01A94C +:104D10001746984602F03EFC064600284AD0626CD0 +:104D20002046DDF804905568C5F3090501356B0090 +:104D3000A56CB5FBF3F54FF47A73B5FBF3F55D4362 +:104D4000556200F023FE50BB636C4FF0FF3201252B +:104D50004146C3F8589020461D659A634FF49572FA +:104D6000DA6342F207029F62DA62E36C0A9AFFF7A3 +:104D70004FFFA0B9E26C104B11680B407BB929467C +:104D80002046FFF75BFF054648B92E463A46019993 +:104D9000206D02F037FC304603B0BDE8F0833A46A0 +:104DA0000199206D02F02EFCE26C01212046FFF7F4 +:104DB00075FFF0E70126EEE708E0FFFD2DE9F74378 +:104DC0001F46436C01924FF47A725D680446884630 +:104DD000C5F3090501356E00856CB5FBF6F5B5FB2D +:104DE000F2F555435D6200F0D1FD20B10125284662 +:104DF00003B0BDE8F0837E0201A9206D324602F0C7 +:104E0000C9FB05460028F1D0636C019AD4F84C9098 +:104E10009A6501221A654FF0FF329A634FF495723A +:104E2000DA639E62236BDB064B4658BF4FEA482885 +:104E3000012F42461BD912212046FFF7E9FEC0B9D7 +:104E4000D9F80020104B13409BB9636C42F29302D7 +:104E500039462046DA62E26CFFF7F0FE804640B940 +:104E600032460199206D454602F0CCFBBFE7112187 +:104E7000E2E732460199206D02F0C4FBE26C39464C +:104E80002046FFF70BFFB2E708E0FFFD2DE9F341F5 +:104E90001F46436C01924FF47A725D68044688465F +:104EA000C5F3090501356E00856CB5FBF6F5B5FB5C +:104EB000F2F555435D6200F069FD20B101252846F9 +:104EC00002B0BDE8F0817E0201A9206D324602F0F9 +:104ED000A7FB05460028F1D0636C019A9A65012270 +:104EE0001A654FF0FF329A634FF48D72DA639E6257 +:104EF000236BE66CDB06334658BF4FEA4828012F88 +:104F0000424619D919212046FFF782FEB0B932680E +:104F10000F4B134093B9636C42F29102394620461D +:104F2000DA62E26CFFF78AFE064638B90199354627 +:104F3000206D02F0B1FBC2E71821E4E70199206D72 +:104F400002F0AAFBE26C39462046FFF7A7FEB6E75F +:104F500008E0FFFD12F0030F2DE9F04107460C4673 +:104F600015461E4617D00E44B44202D10020BDE8BB +:104F7000F0810123FA6B21463846FFF71FFF002816 +:104F8000F5D128464FF40072F96B05F50075013430 +:104F9000FCF7A0FEE8E7BDE8F041FFF70FBF000017 +:104FA00012F0030F2DE9F04107460C4615461E4648 +:104FB00017D00E44B44202D10020BDE8F08129464A +:104FC0004FF40072F86B05F50075FCF783FE0123C2 +:104FD000FA6B21463846FFF759FF0028EDD101341E +:104FE000E8E7BDE8F041FFF751BF0000002070473F +:104FF000302310B583F311880024436C40302146E0 +:10500000DC6301F01DFB84F3118810BD0268436866 +:105010001143016003B1184770470000024A13684A +:1050200043F0C0031360704700440040024A136815 +:1050300043F0C0031360704700480040024A136801 +:1050400043F0C0031360704700780040044B9A6C33 +:1050500002439A641A6F104318671B6F704700BFB2 +:105060000045025837B5274C274D204600F028FD53 +:1050700004F11400009400234FF40072234900F05F +:10508000C3F94FF40072224904F138000094214B17 +:1050900000F03CFA204BC4E91735204C204600F0C4 +:1050A0000FFD04F11400009400234FF400721C491A +:1050B00000F0AAF94FF400721A4904F13800009484 +:1050C000194B00F023FA194BC4E91735184C204648 +:1050D00000F0F6FC04F1140000234FF400721549AF +:1050E000009400F091F9144B4FF40072134904F14D +:1050F0003800009400F00AFA114BC4E9173503B0E8 +:1051000030BD00BF2039002000E1F505643A0020E1 +:10511000644000201D500008004400408C390020ED +:10512000643C0020644200202D50000800480040EC +:10513000F8390020643E00203D50000864440020FF +:105140000078004038B5264D0446037C002918BF7E +:105150000D46012B06D1234B984230D14FF400303D +:10516000FFF774FF2A68236EE16D03EB5203A56617 +:10517000B3FBF2F36A68100442BF23F0070003F0A8 +:10518000070343EA4003CB60AB6843F040034B6046 +:10519000EB6843F001038B6042F4967343F0010324 +:1051A0000B604FF0FF330B62510505D512F0102252 +:1051B00011D0B2F1805F10D084F8643038BD0A4B52 +:1051C000984205D0094B9842CCD14FF08040C7E7B8 +:1051D0004FF48020C4E77F23EEE73F23ECE700BFD6 +:1051E0007C980008203900208C390020F8390020F4 +:1051F0002DE9F047C66D05463768F469210734622A +:105200001AD014F0080118BF4FF48071E20748BFAC +:1052100041F02001A3074FF0300348BF41F04001A7 +:10522000600748BF41F0800183F31188281DFFF714 +:10523000EDFE002383F31188E2050AD5302383F3C2 +:1052400011884FF48061281DFFF7E0FE002383F3EF +:1052500011884FF030094FF0000A14F0200838D1BF +:105260003B0616D54FF0300905F1380A200610D557 +:1052700089F31188504600F07DF9002836DA0821BC +:10528000281DFFF7C3FE27F080033360002383F35C +:105290001188790614D5620612D5302383F311885C +:1052A000D5E913239A4208D12B6C33B127F040077C +:1052B0001021281DFFF7AAFE3760002383F3118811 +:1052C000E30618D5AA6E1369ABB15069BDE8F04783 +:1052D000184789F31188736A284695F864101940B5 +:1052E00000F008FC8AF31188F469B6E7B06288F32D +:1052F0001188F469BAE7BDE8F0870000090100F100 +:105300006043012203F56143C9B283F8001300F042 +:105310001F039A4043099B0003F1604303F5614377 +:10532000C3F880211A60704700F01F0301229A40E1 +:10533000430900F160409B0000F5614003F16043C8 +:1053400003F56143C3F88020C3F88021002380F86F +:1053500000337047F8B51546826804460B46AA42EA +:1053600000D28568A1692669761AB5420BD2184623 +:105370002A46FCF7AFFCA3692B44A3612846A36827 +:105380005B1BA360F8BD0CD9AF1B18463246FCF777 +:10539000A1FC3A46E1683044FCF79CFCE3683B44DE +:1053A000EBE718462A46FCF795FCE368E5E70000C2 +:1053B00083689342F7B50446154600D28568D4E960 +:1053C0000460361AB5420BD22A46FCF783FC6369A7 +:1053D0002B4463612846A3685B1BA36003B0F0BD48 +:1053E0000DD93246AF1B0191FCF774FC01993A4686 +:1053F000E0683144FCF76EFCE3683B44E9E72A4689 +:10540000FCF768FCE368E4E710B50A440024C361D4 +:10541000029B8460C16002610362C0E90000C0E9D0 +:10542000051110BD08B5D0E90532934201D182685B +:1054300082B98268013282605A1C4261197000216F +:10544000D0E904329A4224BFC368436101F012F9E3 +:10545000002008BD4FF0FF30FBE7000070B530239F +:1054600004460E4683F31188A568A5B1A368A26916 +:10547000013BA360531CA36115782269934224BFAA +:10548000E368A361E3690BB120469847002383F3E7 +:105490001188284607E03146204601F0DBF8002855 +:1054A000E2DA85F3118870BD2DE9F74F04460E4608 +:1054B00017469846D0F81C904FF0300A8AF31188AE +:1054C0004FF0000B154665B12A4631462046FFF7DE +:1054D00041FF034660B94146204601F0BBF8002871 +:1054E000F1D0002383F31188781B03B0BDE8F08F5F +:1054F000B9F1000F03D001902046C847019B8BF300 +:105500001188ED1A1E448AF31188DCE7C160C3617B +:10551000009B82600362C0E905111144C0E90000EC +:1055200001617047F8B504460D461646302383F3F3 +:105530001188A768A7B1A368013BA36063695A1CDF +:1055400062611D70D4E904329A4224BFE36863614A +:10555000E3690BB120469847002080F3118807E0EB +:105560003146204601F076F80028E2DA87F3118808 +:10557000F8BD0000D0E9052310B59A4201D1826838 +:105580007AB982680021013282605A1C82611C78DB +:1055900003699A4224BFC368836101F06BF8204617 +:1055A00010BD4FF0FF30FBE72DE9F74F04460E46E4 +:1055B00017469846D0F81C904FF0300A8AF31188AD +:1055C0004FF0000B154665B12A4631462046FFF7DD +:1055D000EFFE034660B94146204601F03BF8002843 +:1055E000F1D0002383F31188781B03B0BDE8F08F5E +:1055F000B9F1000F03D001902046C847019B8BF3FF +:105600001188ED1A1E448AF31188DCE70379052B13 +:1056100005BF836A002001204B6004BF4FF4007374 +:105620000B60704770B55D1E866A04460D44B54236 +:1056300005D9436B43F080034363012070BD062509 +:105640000571FFF787FC05232371F7E770B55D1E31 +:10565000866A04460D44B54205D9436B43F0800386 +:105660004363012070BD07250571FFF799FC0523F1 +:105670002371F7E738B505790446052D05D10823D0 +:105680000371FFF7B3FC257138BD0120FCE7000072 +:105690000323F0B5037185B00446FFF74DFA0022ED +:1056A00020461146FFF792FA4FF4D57203AB08215A +:1056B0002046FFF7ADFA0246B8B901232363039BE6 +:1056C000C3F30323012B09D103AB37212046FFF796 +:1056D0009FFA18B9A44B039A1340ABB12046012599 +:1056E000FFF75CFA0223237137E103AB0022372175 +:1056F0002046FFF78DFA28B99B4A039B1A40002ADF +:1057000000F0A78002232363236B03F00F03022B17 +:1057100040F0A9806425954E42F2107000F076FFAB +:1057200003AB324601212046FFF75CFA0028D5D1B1 +:10573000039B002B80F293805A0003D5236B43F028 +:1057400010032363002204F1080302212046FFF71F +:10575000BDFA02460028C1D104F1380303212046D6 +:10576000FFF756FA0028B9D104F11805A26B0921F8 +:1057700020462B46FFF7AAFA0028AFD102ABA26B56 +:1057800007212046FFF744FA06460028A6D1236BDE +:1057900003F00F03022B40F08F807E227F212846EA +:1057A00003F02CFA012840F28780E76B42F2107078 +:1057B00000F02CFF08234FF4007239462046009673 +:1057C000FFF7A0FA002889D1384603F065FA236B69 +:1057D000A06203F00F03022B72D103AB644A0621CF +:1057E0002046FFF715FA002871D15F49039B194045 +:1057F000B1FA81F149092046FFF7B0F902AB4FF445 +:10580000007210212046FFF703FA054600287FF4B6 +:1058100065AF554E029B33427FF460AF236B13F0AC +:105820000E0F03F00F0273D0022A7FF457AFE36A22 +:105830001978012900F09480022900F09380002952 +:1058400000F089804B4F2046FFF7AEF903AB3A4694 +:1058500076E0114620462263FFF7B8F954E7013D90 +:105860007FF45AAF3AE7444D6426444A3E4F012B39 +:1058700018BF154603AB002237212046FFF7C8F9B1 +:1058800000287FF42BAF039B3B427FF427AF03AB91 +:105890002A4629212046FFF7A5F900287FF41EAFEC +:1058A000039B002BFFF648AF013E3FF417AF42F2D7 +:1058B000107000F0ABFEDDE7284603F0C1F986E783 +:1058C0007E227F212846E66B03F098F908B9002173 +:1058D00091E7002340223146204600930623FFF73C +:1058E00011FA0028F3D1B3895BBA9B07EFD5244B9B +:1058F00040223146204600930623FFF703FA002892 +:10590000E5D1317C01F00F010F3918BF012172E799 +:10591000E36A1978F9B101297FF4E0AE2046FFF778 +:1059200043F903ABA26B37212046FFF771F900283A +:105930007FF4D4AE039B33427FF4D0AE03AB02229C +:1059400006212046FFF764F900287FF4C7AE039BC9 +:1059500033427FF4C3AE05232371284605B0F0BD62 +:10596000084F70E7084F6EE708E0FFFD0080FFC0BA +:105970000001B9030000B7030080FF500000108051 +:10598000F1FFFF800001B7030002B70337B50446FB +:105990000C4D01ABA26B0D212046FFF739F978B908 +:1059A000019B2B420BD1C3F34323042B08D0053BAF +:1059B000022B04D84FF47A7000F028FEE9E70120AA +:1059C00003B030BD08E0FFFD70B53023054683F31A +:1059D000118803790024022B03D184F31188204617 +:1059E00070BD0423037184F311880226FFF7CEFFF4 +:1059F00004462846FFF7D2F82E71F0E7FFF73CB8CF +:105A0000044B03600123037100234363C0E90A339D +:105A1000704700BF9498000810B53023044683F304 +:105A20001188C162FFF742F802230020237180F33E +:105A3000118810BD10B53023044683F31188FFF799 +:105A40005BF800230122E362227183F3118810BD09 +:105A5000026843681143016003B1184770470000B2 +:105A60001430FFF721BD00004FF0FF331430FFF773 +:105A70001BBD00003830FFF797BD00004FF0FF332B +:105A80003830FFF791BD00001430FFF7E7BC00008D +:105A90004FF0FF311430FFF7E1BC00003830FFF762 +:105AA00041BD00004FF0FF323830FFF73BBD000032 +:105AB000012914BF6FF0130000207047FFF7D2BA1E +:105AC000044B036000234360C0E9023301230374E5 +:105AD000704700BFB898000810B53023044683F320 +:105AE0001188FFF72FFB02230020237480F3118815 +:105AF00010BD000038B5C36904460D461BB904212A +:105B00000844FFF7A5FF294604F11400FFF78AFCBB +:105B1000002806DA201D4FF40061BDE83840FFF789 +:105B200097BF38BD026843681143016003B118474D +:105B30007047000013B5406B00F58054D4F8A438CA +:105B40001A681178042914D1017C022911D119791C +:105B5000012312898B4013420BD101A94C3002F072 +:105B60007BFFD4F8A4480246019B2179206800F00D +:105B7000DFF902B010BD0000143002F0FDBE0000DD +:105B80004FF0FF33143002F0F7BE00004C3002F04B +:105B9000CFBF00004FF0FF334C3002F0C9BF000010 +:105BA000143002F0CBBE00004FF0FF31143002F091 +:105BB000C5BE00004C3002F09BBF00004FF0FF322A +:105BC0004C3002F095BF00000020704710B500F582 +:105BD0008054D4F8A4381A681178042917D1017CAC +:105BE000022914D15979012352898B4013420ED1D5 +:105BF000143002F05DFE024648B1D4F8A4484FF4D8 +:105C0000407361792068BDE8104000F07FB910BD95 +:105C1000406BFFF7DBBF0000704700007FB5124B01 +:105C200001250426044603600023057400F1840264 +:105C300043602946C0E902330C4B029014300193B3 +:105C40004FF44073009602F00FFE094B04F69442A5 +:105C5000294604F14C000294CDE900634FF44073EF +:105C600002F0D6FE04B070BDE0980008115C000898 +:105C7000355B00080A68302383F311880B790B33F6 +:105C800042F823004B79133342F823008B7913B188 +:105C90000B3342F8230000F58053C3F8A418022305 +:105CA0000374002080F311887047000038B5037F2B +:105CB000044613B190F85430ABB90125201D0221E0 +:105CC000FFF730FF04F114006FF00101257700F0B9 +:105CD000DDFC04F14C0084F854506FF00101BDE884 +:105CE000384000F0D3BC38BD10B501210446043063 +:105CF000FFF718FF0023237784F8543010BD00000D +:105D000038B504460025143002F0C6FD04F14C00FD +:105D1000257702F095FE201D84F854500121FFF7ED +:105D200001FF2046BDE83840FFF750BF90F88030B3 +:105D300003F06003202B06D190F881200023212A54 +:105D400003D81F2A06D800207047222AFBD1C0E9B9 +:105D50001D3303E0034A426707228267C3670120BD +:105D6000704700BF4422002037B500F58055D5F8B4 +:105D7000A4381A68117804291AD1017C022917D194 +:105D80001979012312898B40134211D100F14C047F +:105D9000204602F015FF58B101A9204602F05CFE32 +:105DA000D5F8A4480246019B2179206800F0C0F88C +:105DB00003B030BD01F10B03F0B550F8236085B09E +:105DC00004460D46FEB1302383F3118804EB8507AA +:105DD000301D0821FFF7A6FEFB6806F14C005B6949 +:105DE0001B681BB1019002F045FE019803A902F067 +:105DF00033FE024648B1039B2946204600F098F83E +:105E0000002383F3118805B0F0BDFB685A6912685E +:105E1000002AF5D01B8A013B1340F1D104F1800226 +:105E2000EAE70000133138B550F82140ECB13023D7 +:105E300083F3118804F58053D3F8A42813685279AA +:105E400003EB8203DB689B695D6845B10421601840 +:105E5000FFF768FE294604F1140002F033FD2046E6 +:105E6000FFF7B4FE002383F3118838BD70470000AC +:105E700001F062BD01234022002110B5044600F864 +:105E8000303BFBF74DFF0023C4E9013310BD000098 +:105E900010B53023044683F3118824224160002189 +:105EA0000C30FBF73DFF204601F068FD0223002087 +:105EB000237080F3118810BD70B500EB8103054697 +:105EC00050690E461446DA6018B110220021FBF723 +:105ED00027FFA06918B110220021FBF721FF3146EE +:105EE0002846BDE8704001F049BE000083682022CA +:105EF000002103F0011310B5044683601030FBF756 +:105F00000FFF2046BDE8104001F0C4BEF0B40125EB +:105F100000EB810447898D40E4683D43A4694581D5 +:105F200023600023A2606360F0BC01F0E1BE0000CA +:105F3000F0B4012500EB810407898D40E4683D43FE +:105F40006469058123600023A2606360F0BC01F0F6 +:105F500057BF000070B502230025044624220370B9 +:105F60002946C0F888500C3040F8045CFBF7D8FE96 +:105F7000204684F8705001F095FD63681B6823B1DA +:105F800029462046BDE87040184770BD0378052BB0 +:105F900010B504460AD080F88C300523037043689E +:105FA0001B680BB1042198470023A36010BD0000BB +:105FB0000178052906D190F88C20436802701B688F +:105FC00003B118477047000070B590F87030044670 +:105FD00013B1002380F8703004F18002204601F0F4 +:105FE0007DFE63689B68B3B994F8803013F0600558 +:105FF00035D00021204602F06FF90021204602F042 +:106000005FF963681B6813B1062120469847062391 +:1060100084F8703070BD204698470028E4D0B4F86A +:106020008630A26F9A4288BFA36794F98030A56F2B +:10603000002B4FF0300380F20381002D00F0F2803E +:10604000092284F8702083F3118800212046D4E9C6 +:106050001D23FFF76DFF002383F31188DAE794F81F +:10606000812003F07F0343EA022340F2023293428D +:1060700000F0C58021D8B3F5807F48D00DD8012B22 +:106080003FD0022B00F09380002BB2D104F18802A4 +:1060900062670222A267E367C1E7B3F5817F00F080 +:1060A0009B80B3F5407FA4D194F88230012BA0D11E +:1060B000B4F8883043F0020332E0B3F5006F4DD0FE +:1060C00017D8B3F5A06F31D0A3F5C063012B90D8DA +:1060D0006368204694F882205E6894F88310B4F8D0 +:1060E0008430B047002884D0436863670368A3679F +:1060F0001AE0B3F5106F36D040F6024293427FF4B7 +:1061000078AF5C4B63670223A3670023C3E794F86F +:106110008230012B7FF46DAFB4F8883023F0020396 +:10612000A4F88830C4E91D55E56778E7B4F88030F5 +:10613000B3F5A06F0ED194F88230204684F88A30EF +:1061400001F00EFD63681B6813B1012120469847DA +:10615000032323700023C4E91D339CE704F18B0360 +:1061600063670123C3E72378042B10D1302383F323 +:1061700011882046FFF7BAFE85F311880321636872 +:1061800084F88B5021701B680BB12046984794F817 +:106190008230002BDED084F88B30042323706368B8 +:1061A0001B68002BD6D0022120469847D2E794F8EE +:1061B000843020461D0603F00F010AD501F080FD52 +:1061C000012804D002287FF414AF2B4B9AE72B4B05 +:1061D00098E701F067FDF3E794F88230002B7FF435 +:1061E00008AF94F8843013F00F01B3D01A0620469C +:1061F00002D502F089F8ADE702F07AF8AAE794F840 +:106200008230002B7FF4F5AE94F8843013F00F0148 +:10621000A0D01B06204602D502F05EF89AE702F0F5 +:106220004FF897E7142284F8702083F311882B46E7 +:106230002A4629462046FFF769FE85F31188E9E6DC +:106240005DB1152284F8702083F311880021204667 +:10625000D4E91D23FFF75AFEFDE60B2284F87020D7 +:1062600083F311882B462A4629462046FFF760FE15 +:10627000E3E700BF10990008089900080C9900088E +:1062800038B590F870300446002B3ED0063BDAB2A9 +:106290000F2A34D80F2B32D8DFE803F0373131081A +:1062A000223231313131313131313737856FB0F808 +:1062B00086309D4214D2C3681B8AB5FBF3F203FB00 +:1062C00012556DB9302383F311882B462A4629468F +:1062D000FFF72EFE85F311880A2384F870300EE054 +:1062E000142384F87030302383F311880023204670 +:1062F0001A461946FFF70AFE002383F3118838BDBA +:10630000C36F03B198470023E7E70021204601F05F +:10631000E3FF0021204601F0D3FF63681B6813B13F +:106320000621204698470623D7E7000010B590F8CD +:1063300070300446142B29D017D8062B05D001D86D +:106340001BB110BD093B022BFBD80021204601F0F8 +:10635000C3FF0021204601F0B3FF63681B6813B13F +:10636000062120469847062319E0152BE9D10B2377 +:1063700080F87030302383F3118800231A461946C1 +:10638000FFF7D6FD002383F31188DAE7C3689B6922 +:106390005B68002BD5D1C36F03B19847002384F805 +:1063A0007030CEE70023826880F8243083691B6850 +:1063B00099689142FBD25A6803604260106058604D +:1063C000704700000023826880F8243083691B68CE +:1063D00099689142FBD85A68036042601060586027 +:1063E0007047000008B50846302383F3118891F800 +:1063F0002430032B05D0042B0DD02BB983F3118847 +:1064000008BD8B6A00221A604FF0FF338362FFF7EA +:10641000C9FF0023F2E7D1E9003213605A60F3E7C5 +:10642000034610B51B68984203D09C688A68944262 +:10643000F8D25A680B604A601160596010BD0000C4 +:10644000FFF7B0BF064BD96881F8240018680268CE +:1064500053601A600122D86080F82420F9F7D2BF77 +:10646000684600200C4B30B5DD684B1C87B00446F5 +:106470000FD02B46094A684600F09CF92046FFF7EA +:10648000E1FF009B13B1684600F09EF9A86A07B0CF +:1064900030BDFFF7D7FFF9E768460020E563000845 +:1064A000044B1A68DB6890689B68984294BF002090 +:1064B0000120704768460020094B10B51C68D86859 +:1064C000226853601A600122DC6084F82420FFF700 +:1064D00079FF01462046BDE81040F9F793BF00BFA1 +:1064E00068460020044B1A68DB6892689B689A42F1 +:1064F00001D9FFF7E1BF70476846002038B5012396 +:10650000084C00252370656002F0F4FB02F01AFCD1 +:106510000549064802F0F0FC0223237085F3118838 +:1065200038BD00BF104900201899000868460020B7 +:1065300000F080B9034A516853685B1A9842FBD84F +:10654000704700BF001000E08B604B630023CA61FE +:1065500000F128020B6302230A618B840123886106 +:1065600081F8263001F11003C26A4A611360C362E8 +:1065700001F12C030846CB6270470000D0E90131DD +:10658000026841F8183CA1F19C033839CB600369DB +:1065900041F8243C436941F8203C034B41F8043C5A +:1065A000C3680248FFF7D0BF1D04000868460020FA +:1065B00008B5FFF7E3FFBDE80840FFF741BF000063 +:1065C00038B50E4BDC6804F12C05A062E06AA842E5 +:1065D0000FD194F826303BB994F825309B0702BFC1 +:1065E000D4E9043213605A600F20BDE83840FFF749 +:1065F00029BF0368E362FFF723FFE7E7684600204F +:10660000302383F31188FFF7DBBF000008B5014694 +:10661000302383F311880820FFF724FF002383F33E +:10662000118808BD054BDB6821B103609862032027 +:10663000FFF718BF4FF0FF30704700BF68460020DB +:1066400003682BB10022026018469962FFF7F8BE7A +:1066500070470000064BDB6839B1426818605A6029 +:10666000136043600420FFF7FDBE4FF0FF3070471A +:10667000684600200368984206D01A68026050609D +:1066800018469962FFF7DCBE7047000038B5044633 +:106690000D462068844200D138BD036823605C60E9 +:1066A0008562FFF7CDFEF4E7036810B59C68A2424F +:1066B0000CD85C688A600B604C60216059609968F6 +:1066C0008A1A9A604FF0FF33836010BD121B1B685B +:1066D000ECE700000A2938BF0A2170B504460D46D0 +:1066E0000A26601902F000FB02F0E8FA041BA5423A +:1066F00003D8751C04462E46F3E70A2E04D9012060 +:10670000BDE8704002F0C0BC70BD0000F8B5144B8D +:106710000D460A2A4FF00A07D96103F11001826081 +:1067200038BF0A2241601969144601604860186147 +:10673000A81802F0C9FA02F0C1FA431B0646A342A8 +:1067400006D37C1C28192746354602F0CDFAF2E71D +:106750000A2F04D90120BDE8F84002F095BCF8BD2D +:1067600068460020F8B506460D4602F0A7FA0F4A23 +:10677000134653F8107F9F4206D12A460146304601 +:10678000BDE8F840FFF7C2BFD169BB68441A2C19B5 +:1067900028BF2C46A34202D92946FFF79BFF224679 +:1067A00031460348BDE8F840FFF77EBF6846002049 +:1067B00078460020C0E90323002310B45DF8044BA1 +:1067C0004361FFF7CFBF000010B5194C2369984211 +:1067D0000DD08168D0E9003213605A609A680A448B +:1067E0009A60002303604FF0FF33A36110BD02687D +:1067F000234643F8102F53600022026022699A4218 +:1068000003D1BDE8104002F069BA936881680B4477 +:10681000936002F053FA2269E1699268441AA24235 +:10682000E4D91144BDE81040091AFFF753BF00BF77 +:10683000684600202DE9F047DFF8BC8008F110071A +:106840002C4ED8F8105002F039FAD8F81C40AA683B +:10685000031B9A423ED814444FF00009D5E9003298 +:10686000C8F81C4013605A60C5F80090D8F8103082 +:10687000B34201D102F032FA89F31188D5E903312C +:1068800028469847302383F311886B69002BD8D0B2 +:1068900002F014FA6A69A0EB040982464A450DD257 +:1068A000022002F0F1FB0022D8F81030B34208D1E8 +:1068B00051462846BDE8F047FFF728BF121A224488 +:1068C000F2E712EB09092946384638BF4A46FFF776 +:1068D000EBFEB5E7D8F81030B34208D01444C8F83E +:1068E0001C00211AA960BDE8F047FFF7F3BEBDE820 +:1068F000F08700BF784600206846002038B502F0D7 +:10690000DDF9054AD2E90845031B181945F10001D4 +:10691000C2E9080138BD00BF6846002010B560B963 +:10692000074804790368053C9B6818BF0124984711 +:1069300008B144F00404204610BD0124FBE700BF69 +:10694000C8360020FFF7EABF2DE9F0478846174612 +:106950009A460446B0B90D4E3579052D05D003246D +:106960000DE0013D15F0FF050ED032685346394663 +:106970003046D2F814904246C8470028F1D120464C +:10698000BDE8F0870424FAE70124F8E7C8360020C0 +:106990002DE9F047884617469A460446B0B90D4E91 +:1069A0003579052D05D003240DE0013D15F0FF05D7 +:1069B0000ED03268534639463046D2F818904246D7 +:1069C000C8470028F1D12046BDE8F0870424FAE743 +:1069D0000124F8E7C836002037B50C46154670B9D3 +:1069E00051B101290BD10748694603681B6A9847D2 +:1069F00010B9019B04462B60204603B030BD04242F +:106A0000FAE700BFC836002000207047FEE700000C +:106A1000704700004FF0FF30704700004B68436044 +:106A20008B688360CB68C3600B6943614B69036209 +:106A30008B6943620B6803607047000008B53C4BEC +:106A400040F2FF713B48D3F888200A43C3F88820FE +:106A5000D3F8882022F4FF6222F00702C3F88820CE +:106A6000D3F88830344B1A6C0A431A649A6E0A437E +:106A70009A66324A9B6E1146FFF7D0FF00F58060A0 +:106A800002F11C01FFF7CAFF00F5806002F1380136 +:106A9000FFF7C4FF00F5806002F15401FFF7BEFF6D +:106AA00000F5806002F17001FFF7B8FF00F580602B +:106AB00002F18C01FFF7B2FF00F5806002F1A8013E +:106AC000FFF7ACFF00F5806002F1C401FFF7A6FFFD +:106AD00000F5806002F1E001FFF7A0FF00F58060A3 +:106AE00002F1FC01FFF79AFF02F58C7100F580605E +:106AF000FFF794FF01F09CFC114BD3F8902242F079 +:106B00000102C3F89022D3F8942242F00102C3F8A4 +:106B100094220522C3F898204FF06052C3F89C20BD +:106B2000084AC3F8A020BDE8084000F0F3BC00BF4D +:106B30000044025800000258004502582C990008F1 +:106B400000ED00E01F00080308B501F079FEFFF733 +:106B5000D5FC0D4BDA6B42F04002DA635A6E22F03C +:106B600040025A665B6E094B1A6842F008021A60CE +:106B70001A6842F004021A6000F096FD00F032FB41 +:106B8000BDE8084000F0B4B80045025800180248BB +:106B900001207047002070477047000002290CD088 +:106BA000032904D00129074818BF00207047032A91 +:106BB00005D8054800EBC200704704487047002024 +:106BC000704700BF309B000854220020E49A000860 +:106BD00070B59AB005460846144601A900F0C2F8FF +:106BE00001A8FBF795F8431C0022C6B25B001046D3 +:106BF000C5E9003423700323023404F8013C01ABDF +:106C0000D1B202348E4201D81AB070BD13F8011B04 +:106C1000013204F8010C04F8021CF1E708B5302336 +:106C200083F311880348FFF79FF8002383F311884B +:106C300008BD00BF1849002090F8803003F01F0203 +:106C4000012A07D190F881200B2A03D10023C0E943 +:106C50001D3315E003F06003202B08D1B0F8843019 +:106C60002BB990F88120212A03D81F2A04D8FFF7D6 +:106C70005DB8222AEBD0FAE7034A4267072282670F +:106C8000C3670120704700BF4B22002007B50529CC +:106C900017D8DFE801F0191603191920302383F300 +:106CA0001188104A01210190FFF706F9019802218D +:106CB0000D4AFFF701F90D48FFF722F8002383F38F +:106CC000118803B05DF804FB302383F31188074873 +:106CD000FEF7ECFFF2E7302383F311880348FFF758 +:106CE00003F8EBE7849A0008A89A000818490020E6 +:106CF00038B50C4D0C4C2A460C4904F10800FFF73E +:106D000067FF05F1CA0204F110000949FFF760FFAF +:106D100005F5CA7204F118000649BDE83840FFF7CE +:106D200057BF00BFF061002054220020609A000885 +:106D30006A9A0008799A000870B5044608460D461C +:106D4000FAF7E6FFC6B22046013403780BB91846BD +:106D500070BD32462946FAF7C7FF0028F3D101205B +:106D6000F6E700002DE9F04705460C46FAF7D0FF9C +:106D70002B49C6B22846FFF7DFFF08B10736F6B247 +:106D800028492846FFF7D8FF08B11036F6B2632E1F +:106D90000BD8DFF88C80DFF88C90234FDFF894A0BD +:106DA0002E7846B92670BDE8F08729462046BDE812 +:106DB000F04702F00DBA252E2ED107224146284673 +:106DC000FAF792FF70B9194B224603F10C0153F800 +:106DD000040B8B4242F8040BF9D11B8807350E34A3 +:106DE0001380DDE7082249462846FAF77DFF98B967 +:106DF000A21C0F4B197802320909C95D02F8041C64 +:106E000013F8011B01F00F015345C95D02F8031C83 +:106E1000F0D118340835C3E7013504F8016BBFE73A +:106E2000509B0008799A0008679B0008589B00084F +:106E300000E8F11F0CE8F11FBFF34F8F044B1A69F4 +:106E40005107FCD1D3F810215207F8D1704700BF89 +:106E50000020005208B50D4B1B78ABB9FFF7ECFFD3 +:106E60000B4BDA68D10704D50A4A5A6002F188321E +:106E70005A60D3F80C21D20706D5064AC3F804217C +:106E800002F18832C3F8042108BD00BF4E6400201F +:106E9000002000522301674508B5114B1B78F3B958 +:106EA000104B1A69510703D5DA6842F04002DA60E4 +:106EB000D3F81021520705D5D3F80C2142F0400237 +:106EC000C3F80C21FFF7B8FF064BDA6842F0010265 +:106ED000DA60D3F80C2142F00102C3F80C2108BD9E +:106EE0004E640020002000520F289ABF00F58060F9 +:106EF00040040020704700004FF40030704700004D +:106F0000102070470F2808B50BD8FFF7EDFF00F5EC +:106F100000330268013204D104308342F9D10120E8 +:106F200008BD0020FCE700000F2838B505463FD813 +:106F3000FFF782FF1F4CFFF78DFF4FF0FF3307284D +:106F40006361C4F814311DD82361FFF775FF030294 +:106F500043F02403E360E36843F08003E3602369C4 +:106F60005A07FCD42846FFF767FFFFF7BDFF4FF431 +:106F7000003100F0ABFA2846FFF78EFFBDE838403D +:106F8000FFF7C0BFC4F81031FFF756FFA0F10803A8 +:106F90001B0243F02403C4F80C31D4F80C3143F045 +:106FA0008003C4F80C31D4F810315B07FBD4D9E767 +:106FB000002038BD002000522DE9F84F05460C4650 +:106FC000104645EA0203DE0602D00020BDE8F88F35 +:106FD00020F01F00DFF8BCB0DFF8BCA0FFF73AFFDD +:106FE00004EB0008444503D10120FFF755FFEDE70E +:106FF00020222946204602F0B3F810B9203520346B +:10700000F0E72B4605F120021F68791CDDD104331F +:107010009A42F9D105F178431B481C4EB3F5801F05 +:107020001B4B38BF184603F1F80332BFD946D1468F +:107030001E46FFF701FF0760A5EB040C336804F15F +:107040001C0143F002033360231FD9F8007017F0CE +:107050000507FAD153F8042F8B424CF80320F4D1E2 +:10706000BFF34F8FFFF7E8FE4FF0FF33202221469A +:1070700003602846336823F00203336002F070F89F +:107080000028BBD03846B0E7142100520C20005233 +:1070900014200052102000521021005210B5084C4C +:1070A000237828B11BB9FFF7D5FE0123237010BD4B +:1070B000002BFCD02070BDE81040FFF7EDBE00BFF4 +:1070C0004E6400202DE9F04F0D4685B0814658B141 +:1070D00011F00D0614BF2022082211F008030193BD +:1070E00004D0431E034269D0002435E0002E37D07F +:1070F00009F11F0121F01F094FF00108314F05F080 +:107100000403DFF8CCA005EA080BBBF1000F32D076 +:107110007869C0072FD408F101080C37B8F1060FC1 +:10712000F3D19EB9284D4946A819019201F02CFED1 +:107130000446002839D12036019AA02EF3D14946C1 +:1071400001F022FE044600282FD1019A49461F482B +:1071500001F01AFE044660BB204605B0BDE8F08F82 +:107160000029C9D101462846029201F00DFE0446CD +:10717000D8B9029AC0E713B178694107CBD5AC07FB +:1071800002D578698007C6D5019911B178690107E0 +:10719000C1D549460AEB4810CDE9022301F0F4FDC0 +:1071A0000446DDE902230028B5D04A4600212046E6 +:1071B00001E04A460021FAF7B3FDCDE70246002E72 +:1071C00096D199E7789B00089064002050640020D5 +:1071D000706400200021FFF775BF00000121FFF758 +:1071E00071BF000070B5144D0124144E40F2FF32FF +:1071F00000210120FAF794FD06EB441001342A69BE +:1072000055F80C1F01F0ACFD062CF5D137254FF4D5 +:10721000C0542046FFF7E2FF014628B12246084845 +:10722000BDE8704001F09CBDC4EBC404013D4FEAD1 +:10723000D404EED170BD00BF789B000870640020BC +:10724000506400200421FFF73DBF00004843FFF7D2 +:10725000C1BF000008B101F009BE7047B0F5805F02 +:1072600010B5044607D8FFF7EDFF28B92046BDE862 +:107270001040FFF7AFBF002010BD0000FFF7EABFCE +:1072800070B5AAB140EA010313F01F030FD1094CF6 +:107290000144A5686D0706D52568A84203D3666832 +:1072A0003544A94204D903330C34122BF1D1002206 +:1072B000104670BD789B000808B501F0EDFE034A4A +:1072C000D2E90032C01842EB010108BD3065002050 +:1072D000434BD3E900232DE9F34113437CD0FFF75F +:1072E000EBFF404A00230027F9F7A6F806460D46B3 +:1072F0003D4A0023F9F7A0F80023144630462946FA +:10730000394AF9F799F84FF461613C23ADF80170FF +:10731000B4FBF1F5B4FBF3F601FB154103FB164694 +:107320004624B1FBF3F1314BF6B28DF800409842A0 +:107330003CD84FF0640C4FF4C87EA30704F26C7283 +:1073400025D1B2FBFCF30CFB132313BBB2FBFEF302 +:107350000EFB1322B2FA82F35B0903F26D18621C72 +:107360008045D2B217D90FB18DF800400022204CD1 +:107370004FF00C0C17460CFB0343D4B2013213F848 +:1073800004C084450CD8A0EB0C000127F5E70023CE +:10739000E3E70123E1E7A0EB080014460127CCE76F +:1073A0000FB18DF80140431C8DF802309DF80100AB +:1073B000431C9DF800005038400640EA43509DF8B9 +:1073C000023040EA034040EA560040EAC52040EA65 +:1073D000411002B0BDE8F0814FF40410F9E700BF9E +:1073E0003065002040420F008051010090230B00C7 +:1073F000C09B00080244074BD2B210B5904200D1A6 +:1074000010BD441C00B253F8200041F8040BE0B258 +:10741000F4E700BF504000580E4B30B51C6F2404F9 +:1074200005D41C6F1C671C6F44F400441C670A4C95 +:1074300002442368D2B243F480732360074B904226 +:1074400000D130BD441C51F8045B00B243F8205019 +:10745000E0B2F4E700440258004802585040005897 +:1074600007B5012201A90020FFF7C4FF019803B06E +:107470005DF804FB13B50446FFF7F2FFA04205D008 +:10748000012201A900200194FFF7C6FF02B010BD40 +:1074900010B56424013C4FF47A70FFF7B7F814F08C +:1074A000FF04F7D1084B4FF0807214249A6103F562 +:1074B000805308229A61013C4FF47A70FFF7A6F8D6 +:1074C00014F0FF04F7D110BD000002580144BFF3CF +:1074D0004F8F064B884204D3BFF34F8FBFF36F8F9C +:1074E0007047C3F85C022030F4E700BF00ED00E015 :1074F0000144BFF34F8F064B884204D3BFF34F8F35 -:10750000BFF36F8F7047C3F85C022030F4E700BF11 -:1075100000ED00E00144BFF34F8F064B884204D3D7 -:10752000BFF34F8FBFF36F8F7047C3F870022030E7 -:10753000F4E700BF00ED00E070B5054616460C46C6 -:1075400001201021FFF794FE286046733CB12046CD -:1075500036B1FFF789FE2B68186000B19C6070BDE2 -:10756000FFF74EFEF7E70000F8B50F461546044654 -:1075700048B905F11F010126386821F01F01FFF706 -:10758000B7FF3046F8BD427B29463868FFF78AFED0 -:1075900006460028EDD13B686360A368AB4210D279 -:1075A00013B12068FFF768FE637B28462BB1FFF715 -:1075B0005BFE206020B9A060E3E7FFF721FEF8E75B -:1075C000A560206805F11F01012621F01F01386028 -:1075D000FFF78EFF2673D4E710B5044640B100686C -:1075E000884205D1606808B1FAF774FB0023237361 -:1075F00010BD0000F8B50F461446054648B904F121 -:107600001F010126386821F01F01FFF783FF304674 -:10761000F8BD427B21463868FFF744FE0646002845 -:10762000EDD1AB68A34210D213B12868FFF724FE56 -:107630006B7B20462BB1FFF717FE286020B9A860AE -:10764000E5E7FFF7DDFDF8E7AC60396819B12246E0 -:107650002868FAF73FFB286804F11F01012621F092 -:107660001F013860FFF756FF2E73D0E720B1036883 -:107670008B4204BF0023037370470000034B1A685A -:107680001AB9034AD2F8D0241A607047386500202E -:107690000040025808B5FFF7F1FF024B1868C0F32D -:1076A000806008BD38650020EFF309830549683321 -:1076B0004A6B22F001024A6383F30988002383F3B3 -:1076C0001188704700EF00E0302080F3118862B627 -:1076D0000D4B0E4AD96821F4E0610904090C0A43F4 -:1076E0000B49DA60D3F8FC2042F08072C3F8FC202A -:1076F000084AC2F8B01F116841F001011160202250 -:10770000DA7783F82200704700ED00E00003FA0505 -:1077100055CEACC5001000E0302310B583F31188BE -:107720000E4B5B6813F4006314D0F1EE103AEFF3E4 -:1077300009844FF08073683CE361094BDB6B23667F -:1077400084F30988FEF7A6FE10B1064BA36110BDB5 -:10775000054BFBE783F31188F9E700BF00ED00E07C -:1077600000EF00E02F0400083204000870B5BFF3FA -:107770004F8FBFF36F8F1A4A0021C2F85012BFF328 -:107780004F8FBFF36F8F536943F400335361BFF3DF -:107790004F8FBFF36F8FC2F88410BFF34F8FD2F8B3 -:1077A000803043F6E074C3F3C900C3F34E335B018A -:1077B00003EA0406014646EA81750139C2F86052BF -:1077C000F9D2203B13F1200FF2D1BFF34F8F536951 -:1077D00043F480335361BFF34F8FBFF36F8F70BD9E -:1077E00000ED00E0FEE70000214B2248224A70B580 -:1077F000904237D3214BC11EDA1C121A22F0030229 -:107800008B4238BF00220021FAF78AFA1C4A002373 -:10781000C2F88430BFF34F8FD2F8803043F6E07463 -:10782000C3F3C900C3F34E335B0103EA0406014608 -:1078300046EA81750139C2F86C52F9D2203B13F146 -:10784000200FF2D1BFF34F8FBFF36F8FBFF34F8F76 -:10785000BFF36F8F0023C2F85032BFF34F8FBFF3D7 -:107860006F8F70BD53F8041B40F8041BC0E700BFC6 -:107870009C9C000834670020346700203467002097 -:1078800000ED00E0054B996B21EA000199631A6E47 -:1078900022EA00021A661B6E704700BF00450258BC -:1078A00070B5D0E9244300224FF0FF359E6804EB09 -:1078B00042135101D3F80009002805DAD3F8000972 -:1078C00040F08040C3F80009D3F8000B002805DA27 -:1078D000D3F8000B40F08040C3F8000B013263186E -:1078E0009642C3F80859C3F8085BE0D24FF0011381 -:1078F000C4F81C3870BD0000890141F0200101610D -:1079000003699B06FCD41220FEF70EBE10B50A4C8C -:107910002046FEF7A9FA094BC4F89030084BC4F88A -:107920009430084C2046FEF79FFA074BC4F890307D -:10793000064BC4F8943010BD3C65002000000840A0 -:10794000D09B0008D865002000000440DC9B0008A4 -:1079500070B503780546012B58D13F4BD0F89040C5 -:10796000984254D13D4B0E2165209A6B42F0006243 -:107970009A631A6E42F000621A661B6E384BD3F897 -:10798000802042F00062C3F88020D3F8802022F0EB -:107990000062C3F88020D3F88030FDF7A9FC314B9A -:1079A000E360314BC4F800380023D5F89060C4F888 -:1079B000003EC02323604FF40413A3633369002BFC -:1079C000FCDA01230C203361FEF7AEFD3369DB07DF -:1079D000FCD41220FEF7A8FD3369002BFCDA002648 -:1079E0002846A660FFF75CFF6B68C4F81068DB6888 -:1079F000C4F81468C4F81C6863BB1C4BA3614FF047 -:107A0000FF336361A36843F00103A36070BD184BAB -:107A10009842C9D1114B4FF080609A6B42F00072CE -:107A20009A631A6E42F000721A661B6E0C4BD3F802 -:107A3000802042F00072C3F88020D3F8802022F02A -:107A40000072C3F88020D3F88030FFF71BFF0E21AF -:107A50004D20A2E7074BD1E73C65002000450258C6 -:107A6000004402584014004003002002003C30C093 -:107A7000D8650020083C30C0F8B5D0F890400546E5 -:107A800000214FF000662046FFF736FFD5F894102E -:107A900000234FF001128F684FF0FF30C4F83438E4 -:107AA000C4F81C2804EB431201339F42C2F800695A -:107AB000C2F8006BC2F80809C2F8080BF2D20B68D2 -:107AC000D5F89020C5F898306362102313611669C9 -:107AD00016F01006FBD11220FEF726FDD4F8003870 -:107AE00023F4FE63C4F80038A36943F4402343F051 -:107AF0001003A3610923C4F81038C4F814380B4BE1 -:107B0000EB604FF0C043C4F8103B094BC4F8003B96 -:107B1000C4F81069C4F80039D5F8983003F11002A0 -:107B200043F48013C5F89820A362F8BDAC9B00080D -:107B300040800010D0F8902090F88A10D2F80038D9 -:107B400023F4FE6343EA0113C2F8003870470000D3 -:107B50002DE9F84300EB8103D0F890500C468046A5 -:107B6000DA680FFA81F94801166806F00306731EF9 -:107B7000022B05EB41134FF0000194BFB604384EC1 -:107B8000C3F8101B4FF0010104F1100398BF06F178 -:107B9000805601FA03F3916998BF06F50046002963 -:107BA0003AD0578A04F15801374349016F50D5F84C -:107BB0001C180B430021C5F81C382B180127C3F8EB -:107BC0001019A7405369611E9BB3138A928B9B08BF -:107BD000012A88BF5343D8F89820981842EA0343F3 -:107BE00001F140022146C8F89800284605EB8202C0 -:107BF0005360FFF781FE08EB8900C3681B8A43EAE4 -:107C0000845348341E4364012E51D5F81C381F4359 -:107C1000C5F81C78BDE8F88305EB4917D7F8001BB9 -:107C200021F40041C7F8001BD5F81C1821EA030312 -:107C3000C0E704F13F030B4A2846214605EB8303C6 -:107C40005A60FFF759FE05EB4910D0F8003923F4CC -:107C50000043C0F80039D5F81C3823EA0707D7E7F6 -:107C60000080001000040002D0F894201268C0F8D0 -:107C70009820FFF715BE00005831D0F89030490128 -:107C80005B5813F4004004D013F4001F0CBF022013 -:107C9000012070474831D0F8903049015B5813F407 -:107CA000004004D013F4001F0CBF022001207047D5 -:107CB00000EB8101CB68196A0B6813604B68536055 -:107CC0007047000000EB810330B5DD68AA691368D6 -:107CD000D36019B9402B84BF402313606B8A1468AA -:107CE000D0F890201C4402EB4110013C09B2B4FBD7 -:107CF000F3F46343033323F0030343EAC44343F041 -:107D0000C043C0F8103B2B6803F00303012B0ED1D6 -:107D1000D2F8083802EB411013F4807FD0F8003B12 -:107D200014BF43F0805343F00053C0F8003B02EB14 -:107D30004112D2F8003B43F00443C2F8003B30BD8F -:107D40002DE9F041D0F8906005460C4606EB411352 -:107D5000D3F8087B3A07C3F8087B08D5D6F814385F -:107D60001B0704D500EB8103DB685B689847FA07C3 -:107D70001FD5D6F81438DB071BD505EB8403D9686B -:107D8000CCB98B69488A5A68B2FBF0F600FB162220 -:107D90008AB91868DA6890420DD2121AC3E9002431 -:107DA000302383F3118821462846FFF78BFF84F3A5 -:107DB0001188BDE8F081012303FA04F26B8923EAFC -:107DC00002036B81CB68002BF3D021462846BDE827 -:107DD000F041184700EB81034A0170B5DD68D0F827 -:107DE00090306C692668E66056BB1A444FF4002058 -:107DF000C2F810092A6802F00302012A0AB20ED161 -:107E0000D3F8080803EB421410F4807FD4F800097B -:107E100014BF40F0805040F00050C4F8000903EB5C -:107E20004212D2F8000940F00440C2F800090122D1 -:107E3000D3F8340802FA01F10143C3F8341870BDD5 -:107E400019B9402E84BF4020206020681A442E8A31 -:107E50008419013CB4FBF6F440EAC44040F0005001 -:107E6000C6E700002DE9F843D0F8906005460C46BF -:107E70004F0106EB4113D3F8088918F0010FC3F83E -:107E800008891CD0D6F81038DB0718D500EB810321 -:107E9000D3F80CC0DCF81430D3F800E0DA6896456B -:107EA00030D2A2EB0E024FF000091A60C3F8049022 -:107EB000302383F31188FFF78DFF89F3118818F0C1 -:107EC000800F1DD0D6F834380126A640334217D093 -:107ED00005EB84030134D5F89050D3F80CC0E4B21C -:107EE0002F44DCF8142005EB0434D2F800E051688C -:107EF000714514D3D5F8343823EA0606C5F834683A -:107F0000BDE8F883012303FA01F2038923EA02039F -:107F10000381DCF80830002BD1D09847CFE7AEEBD7 -:107F20000103BCF81000834228BF0346D7F81809A4 -:107F300080B2B3EB800FE3D89068A0F1040959F840 -:107F4000048FC4F80080A0EB09089844B8F1040F2E -:107F5000F5D818440B4490605360C8E72DE9F84FFA -:107F6000D0F8905004466E69AB691E4016F48058F4 -:107F70006E6103D0BDE8F84FFDF7E6BF002E12DAC0 -:107F8000D5F8003E9B0705D0D5F8003E23F003034B -:107F9000C5F8003ED5F80438204623F00103C5F8A3 -:107FA0000438FDF7FFFF370505D52046FFF778FCBD -:107FB0002046FDF7E5FFB0040CD5D5F8083813F0DE -:107FC000060FEB6823F470530CBF43F4105343F4D3 -:107FD000A053EB6031071BD56368DB681BB9AB6945 -:107FE00023F00803AB612378052B0CD1D5F8003EB4 -:107FF0009A0705D0D5F8003E23F00303C5F8003EEC -:108000002046FDF7CFFF6368DB680BB12046984739 -:10801000F30200F1BA80B70226D5D4F89090002779 -:108020004FF0010A09EB4712D2F8003B03F440235A -:10803000B3F5802F11D1D2F8003B002B0DDA628905 -:108040000AFA07F322EA0303638104EB8703DB6880 -:10805000DB6813B13946204698470137D4F894308D -:10806000FFB29B689F42DDD9F00619D5D4F8900085 -:10807000026AC2F30A1702F00F0302F4F012B2F51B -:10808000802F00F0CA80B2F5402F09D104EB8303A2 -:10809000002200F58050DB681B6A974240F0B080F8 -:1080A0003003D5F8185835D5E90303D5002120460B -:1080B000FFF746FEAA0303D501212046FFF740FE45 -:1080C0006B0303D502212046FFF73AFE2F0303D5A9 -:1080D00003212046FFF734FEE80203D504212046A1 -:1080E000FFF72EFEA90203D505212046FFF728FE43 -:1080F0006A0203D506212046FFF722FE2B0203D594 -:1081000007212046FFF71CFEEF0103D5082120467A -:10811000FFF716FE700340F1A780E90703D50021A1 -:108120002046FFF79FFEAA0703D501212046FFF74F -:1081300099FE6B0703D502212046FFF793FE2F0718 -:1081400003D503212046FFF78DFEEE0603D504215B -:108150002046FFF787FEA80603D505212046FFF736 -:1081600081FE690603D506212046FFF77BFE2A061D -:1081700003D507212046FFF775FEEB0574D5204691 -:108180000821BDE8F84FFFF76DBED4F890904FF08E -:10819000000B4FF0010AD4F894305FFA8BF79B681C -:1081A0009F423FF638AF09EB4713D3F8002902F49A -:1081B0004022B2F5802F20D1D3F80029002A1CDA02 -:1081C000D3F8002942F09042C3F80029D3F80029DF -:1081D000002AFBDB3946D4F89000FFF78DFB22899B -:1081E0000AFA07F322EA0303238104EB8703DB681F -:1081F0009B6813B13946204698470BF1010BCAE73B -:10820000910701D1D0F80080072A02F101029CBF3A -:1082100003F8018B4FEA18283FE704EB830300F5CE -:108220008050DA68D2F818C0DCF80820DCE9001CBD -:10823000A1EB0C0C00218F4208D1DB689B699A6886 -:108240003A449A605A683A445A6029E711F0030F99 -:1082500001D1D0F800808C4501F1010184BF02F802 -:10826000018B4FEA1828E6E7BDE8F88F08B5034808 -:10827000FFF774FEBDE80840FFF74EBA3C650020EA -:1082800008B50348FFF76AFEBDE80840FFF744BAA7 -:10829000D8650020D0F8903003EB4111D1F8003BB5 -:1082A00043F40013C1F8003B70470000D0F8903051 -:1082B00003EB4111D1F8003943F40013C1F8003940 -:1082C00070470000D0F8903003EB4111D1F8003B2B -:1082D00023F40013C1F8003B70470000D0F8903041 -:1082E00003EB4111D1F8003923F40013C1F8003930 -:1082F00070470000044BDA6B0243DA635A6E104396 -:1083000058665B6E704700BF0045025808B53C4B8D -:108310004FF0FF31D3F8802062F00042C3F8802094 -:10832000D3F8802002F00042C3F88020D3F88020E8 -:10833000D3F88420C3F88410D3F884200022C3F833 -:108340008420D3F88400D86F40F0FF4040F4FF0051 -:1083500040F4DF4040F07F00D867D86F20F0FF4046 -:1083600020F4FF0020F4DF4020F07F00D867D86FB2 -:10837000D3F888006FEA40506FEA5050C3F8880085 -:10838000D3F88800C0F30A00C3F88800D3F8880047 -:10839000D3F89000C3F89010D3F89000C3F8902061 -:1083A000D3F89000D3F89400C3F89410D3F8940055 -:1083B000C3F89420D3F89400D3F89800C3F8981029 -:1083C000D3F89800C3F89820D3F89800D3F88C001D -:1083D000C3F88C10D3F88C00C3F88C20D3F88C0031 -:1083E000D3F89C00C3F89C10D3F89C10C3F89C20D1 -:1083F000D3F89C30FCF74AFABDE8084000F0D2B947 -:108400000044025808B50122504BC3F80821504BD4 -:108410005A6D42F002025A65DA6F42F00202DA67E0 -:108420000422DB6F4B4BDA605A689104FCD54A4A50 -:108430001A6001229A60494ADA6000221A614FF4F8 -:1084400040429A61434B9A699204FCD51A6842F4FF -:1084500080721A60424B1A6F12F4407F04D04FF4BE -:1084600080321A6700221A671A6842F001021A6005 -:108470003B4B1A685007FCD500221A611A6912F0AA -:108480003802FBD1012119604FF0804159605A67D1 -:10849000344ADA62344A1A611A6842F480321A6045 -:1084A0002F4B1A689103FCD51A6842F480521A6067 -:1084B0001A689204FCD52D4A2D499A6200225A630B -:1084C000196301F57C01DA6301F5E77199635A6478 -:1084D000284A1A64284ADA621A6842F0A8521A60D6 -:1084E0001F4B1A6802F02852B2F1285FF9D14822D6 -:1084F0009A614FF48862DA6140221A621F4ADA6494 -:108500001F4A1A651F4A5A651F4A9A6532231F4A35 -:108510001360136803F00F03022BFAD1104A13699A -:1085200043F003031361136903F03803182BFAD1E6 -:108530004FF00050FFF7DEFE4FF08040FFF7DAFE0D -:108540004FF00040BDE80840FFF7D4BE0080005166 -:10855000004502580048025800C000F00400000125 -:10856000004402580000FF0100889008322060009B -:1085700063020901470E0508DD0BBF012000002042 -:10858000000001100910E00000010110002000525D -:108590004FF0B04208B5D2F8883003F00103C2F8BA -:1085A000883023B1044A13680BB150689847BDE87E -:1085B0000840FFF7B1B800BFB46600204FF0B042EA -:1085C00008B5D2F8883003F00203C2F8883023B12E -:1085D000044A93680BB1D0689847BDE80840FFF79C -:1085E0009BB800BFB46600204FF0B04208B5D2F887 -:1085F000883003F00403C2F8883023B1044A1369B9 -:108600000BB150699847BDE80840FFF785B800BF37 +:10750000BFF36F8F7047C3F870022030F4E700BFFD +:1075100000ED00E0114BDA6952021ED59A69D007DE +:1075200004D50F4A9A6002F144329A600B4BDA6933 +:10753000D107FCD41A6A22F480021A629A6942F0D6 +:1075400002029A61DA69D207FCD49A6942F0010218 +:107550009A61024AD369DB07FCD4704700200052CD +:107560003B2A190870B5054616460C460120102125 +:10757000FFF76CFE286046733CB1204636B1FFF73A +:1075800061FE2B68186000B19C6070BDFFF726FE9D +:10759000F7E70000F8B50F461546044648B905F16F +:1075A0001F010126386821F01F01FFF78FFF3046C9 +:1075B000F8BD427B29463868FFF762FE0646002880 +:1075C000EDD13B686360A368AB4210D213B1206871 +:1075D000FFF740FE637B28462BB1FFF733FE2060A8 +:1075E00020B9A060E3E7FFF7F9FDF8E7A5602068A0 +:1075F00005F11F01012621F01F013860FFF766FF2A +:107600002673D4E710B5044640B10068884205D11E +:10761000606808B1FAF75EFB0023237310BD000019 +:10762000F8B50F461446054648B904F11F01012676 +:10763000386821F01F01FFF75BFF3046F8BD427B41 +:1076400021463868FFF71CFE06460028EDD1AB68DE +:10765000A34210D213B12868FFF7FCFD6B7B2046D4 +:107660002BB1FFF7EFFD286020B9A860E5E7FFF731 +:10767000B5FDF8E7AC60396819B122462868FAF719 +:1076800029FB286804F11F01012621F01F01386041 +:10769000FFF72EFF2E73D0E720B103688B4204BFA3 +:1076A0000023037370470000034B1A681AB9034A9A +:1076B000D2F8D0241A607047386500200040025884 +:1076C00008B5FFF7F1FF024B1868C0F3806008BDF2 +:1076D00038650020EFF30983054968334A6B22F0CF +:1076E00001024A6383F30988002383F311887047FA +:1076F00000EF00E0302080F3118862B60D4B0E4A97 +:10770000D96821F4E0610904090C0A430B49DA60E5 +:10771000D3F8FC2042F08072C3F8FC20084AC2F87B +:10772000B01F116841F0010111602022DA7783F85F +:107730002200704700ED00E00003FA0555CEACC50D +:10774000001000E0302310B583F311880E4B5B6806 +:1077500013F4006314D0F1EE103AEFF309844FF004 +:107760008073683CE361094BDB6B236684F3098813 +:10777000FEF796FE10B1064BA36110BD054BFBE76B +:1077800083F31188F9E700BF00ED00E000EF00E0AF +:107790002F0400083204000870B5BFF34F8FBFF309 +:1077A0006F8F1A4A0021C2F85012BFF34F8FBFF3F8 +:1077B0006F8F536943F400335361BFF34F8FBFF3AF +:1077C0006F8FC2F88410BFF34F8FD2F8803043F62A +:1077D000E074C3F3C900C3F34E335B0103EA04064C +:1077E000014646EA81750139C2F86052F9D2203B60 +:1077F00013F1200FF2D1BFF34F8F536943F480335D +:107800005361BFF34F8FBFF36F8F70BD00ED00E08A +:10781000FEE70000214B2248224A70B5904237D340 +:10782000214BC11EDA1C121A22F003028B4238BF10 +:1078300000220021FAF774FA1C4A0023C2F88430AF +:10784000BFF34F8FD2F8803043F6E074C3F3C90022 +:10785000C3F34E335B0103EA0406014646EA817531 +:107860000139C2F86C52F9D2203B13F1200FF2D14A +:10787000BFF34F8FBFF36F8FBFF34F8FBFF36F8F88 +:107880000023C2F85032BFF34F8FBFF36F8F70BD2C +:1078900053F8041B40F8041BC0E700BFC49C000859 +:1078A00034670020346700203467002000ED00E0DA +:1078B000054B996B21EA000199631A6E22EA0002D6 +:1078C0001A661B6E704700BF0045025870B5D0E9BC +:1078D000244300224FF0FF359E6804EB4213510110 +:1078E000D3F80009002805DAD3F8000940F08040F9 +:1078F000C3F80009D3F8000B002805DAD3F8000B11 +:1079000040F08040C3F8000B013263189642C3F880 +:107910000859C3F8085BE0D24FF00113C4F81C38D3 +:1079200070BD0000890141F02001016103699B06DF +:10793000FCD41220FEF7FEBD10B50A4C2046FEF71F +:1079400099FA094BC4F89030084BC4F89430084CAD +:107950002046FEF78FFA074BC4F89030064BC4F868 +:10796000943010BD3C65002000000840FC9B0008DE +:10797000D865002000000440089C000870B503781A +:107980000546012B58D13F4BD0F89040984254D136 +:107990003D4B0E2165209A6B42F000629A631A6E8D +:1079A00042F000621A661B6E384BD3F8802042F01A +:1079B0000062C3F88020D3F8802022F00062C3F870 +:1079C0008020D3F88030FDF799FC314BE360314BD8 +:1079D000C4F800380023D5F89060C4F8003EC023F6 +:1079E00023604FF40413A3633369002BFCDA0123F3 +:1079F0000C203361FEF79EFD3369DB07FCD41220B7 +:107A0000FEF798FD3369002BFCDA00262846A660B5 +:107A1000FFF75CFF6B68C4F81068DB68C4F8146893 +:107A2000C4F81C6863BB1C4BA3614FF0FF33636158 +:107A3000A36843F00103A36070BD184B9842C9D1FD +:107A4000114B4FF080609A6B42F000729A631A6E8D +:107A500042F000721A661B6E0C4BD3F8802042F085 +:107A60000072C3F88020D3F8802022F00072C3F89F +:107A70008020D3F88030FFF71BFF0E214D20A2E7B6 +:107A8000074BD1E73C6500200045025800440258EE +:107A90004014004003002002003C30C0D8650020A4 +:107AA000083C30C0F8B5D0F89040054600214FF0B2 +:107AB00000662046FFF736FFD5F8941000234FF0FC +:107AC00001128F684FF0FF30C4F83438C4F81C2816 +:107AD00004EB431201339F42C2F80069C2F8006B05 +:107AE000C2F80809C2F8080BF2D20B68D5F890204A +:107AF000C5F89830636210231361166916F01006FA +:107B0000FBD11220FEF716FDD4F8003823F4FE63F3 +:107B1000C4F80038A36943F4402343F01003A36181 +:107B20000923C4F81038C4F814380B4BEB604FF03D +:107B3000C043C4F8103B094BC4F8003BC4F81069BB +:107B4000C4F80039D5F8983003F1100243F48013DB +:107B5000C5F89820A362F8BDD89B000840800010AB +:107B6000D0F8902090F88A10D2F8003823F4FE6301 +:107B700043EA0113C2F80038704700002DE9F843CA +:107B800000EB8103D0F890500C468046DA680FFA7B +:107B900081F94801166806F00306731E022B05EBF7 +:107BA00041134FF0000194BFB604384EC3F8101BC8 +:107BB0004FF0010104F1100398BF06F1805601FA5D +:107BC00003F3916998BF06F5004600293AD0578A19 +:107BD00004F15801374349016F50D5F81C180B4385 +:107BE0000021C5F81C382B180127C3F81019A7402D +:107BF0005369611E9BB3138A928B9B08012A88BF2D +:107C00005343D8F89820981842EA034301F1400200 +:107C10002146C8F89800284605EB82025360FFF71A +:107C200081FE08EB8900C3681B8A43EA8453483409 +:107C30001E4364012E51D5F81C381F43C5F81C782B +:107C4000BDE8F88305EB4917D7F8001B21F4004184 +:107C5000C7F8001BD5F81C1821EA0303C0E704F19C +:107C60003F030B4A2846214605EB83035A60FFF782 +:107C700059FE05EB4910D0F8003923F40043C0F851 +:107C80000039D5F81C3823EA0707D7E70080001031 +:107C900000040002D0F894201268C0F89820FFF782 +:107CA00015BE00005831D0F8903049015B5813F4EC +:107CB000004004D013F4001F0CBF022001207047C5 +:107CC0004831D0F8903049015B5813F4004004D09B +:107CD00013F4001F0CBF02200120704700EB81014C +:107CE000CB68196A0B6813604B68536070470000DB +:107CF00000EB810330B5DD68AA691368D36019B958 +:107D0000402B84BF402313606B8A1468D0F8902006 +:107D10001C4402EB4110013C09B2B4FBF3F4634391 +:107D2000033323F0030343EAC44343F0C043C0F8E2 +:107D3000103B2B6803F00303012B0ED1D2F8083857 +:107D400002EB411013F4807FD0F8003B14BF43F0E6 +:107D5000805343F00053C0F8003B02EB4112D2F8CD +:107D6000003B43F00443C2F8003B30BD2DE9F04135 +:107D7000D0F8906005460C4606EB4113D3F8087B1B +:107D80003A07C3F8087B08D5D6F814381B0704D582 +:107D900000EB8103DB685B689847FA071FD5D6F8CC +:107DA0001438DB071BD505EB8403D968CCB98B6984 +:107DB000488A5A68B2FBF0F600FB16228AB91868A6 +:107DC000DA6890420DD2121AC3E90024302383F3FB +:107DD000118821462846FFF78BFF84F31188BDE800 +:107DE000F081012303FA04F26B8923EA02036B8119 +:107DF000CB68002BF3D021462846BDE8F041184758 +:107E000000EB81034A0170B5DD68D0F890306C69F1 +:107E10002668E66056BB1A444FF40020C2F81009E9 +:107E20002A6802F00302012A0AB20ED1D3F8080828 +:107E300003EB421410F4807FD4F8000914BF40F023 +:107E4000805040F00050C4F8000903EB4212D2F811 +:107E5000000940F00440C2F800090122D3F83408B8 +:107E600002FA01F10143C3F8341870BD19B9402E6C +:107E700084BF4020206020681A442E8A8419013C67 +:107E8000B4FBF6F440EAC44040F00050C6E70000FE +:107E90002DE9F843D0F8906005460C464F0106EBFB +:107EA0004113D3F8088918F0010FC3F808891CD0D2 +:107EB000D6F81038DB0718D500EB8103D3F80CC0D7 +:107EC000DCF81430D3F800E0DA68964530D2A2EB43 +:107ED0000E024FF000091A60C3F80490302383F3B8 +:107EE0001188FFF78DFF89F3118818F0800F1DD0DE +:107EF000D6F834380126A640334217D005EB840368 +:107F00000134D5F89050D3F80CC0E4B22F44DCF81B +:107F1000142005EB0434D2F800E05168714514D305 +:107F2000D5F8343823EA0606C5F83468BDE8F88386 +:107F3000012303FA01F2038923EA02030381DCF837 +:107F40000830002BD1D09847CFE7AEEB0103BCF847 +:107F50001000834228BF0346D7F8180980B2B3EB5C +:107F6000800FE3D89068A0F1040959F8048FC4F891 +:107F70000080A0EB09089844B8F1040FF5D8184424 +:107F80000B4490605360C8E72DE9F84FD0F890504B +:107F900004466E69AB691E4016F480586E6103D0CA +:107FA000BDE8F84FFDF7D6BF002E12DAD5F8003E37 +:107FB0009B0705D0D5F8003E23F00303C5F8003E2B +:107FC000D5F80438204623F00103C5F80438FDF73E +:107FD000EFFF370505D52046FFF778FC2046FDF773 +:107FE000D5FFB0040CD5D5F8083813F0060FEB68B0 +:107FF00023F470530CBF43F4105343F4A053EB60CD +:1080000031071BD56368DB681BB9AB6923F0080334 +:10801000AB612378052B0CD1D5F8003E9A0705D02B +:10802000D5F8003E23F00303C5F8003E2046FDF7D7 +:10803000BFFF6368DB680BB120469847F30200F18D +:10804000BA80B70226D5D4F8909000274FF0010AE5 +:1080500009EB4712D2F8003B03F44023B3F5802F1D +:1080600011D1D2F8003B002B0DDA62890AFA07F32E +:1080700022EA0303638104EB8703DB68DB6813B147 +:108080003946204698470137D4F89430FFB29B68B0 +:108090009F42DDD9F00619D5D4F89000026AC2F3E8 +:1080A0000A1702F00F0302F4F012B2F5802F00F06D +:1080B000CA80B2F5402F09D104EB8303002200F5FA +:1080C0008050DB681B6A974240F0B0803003D5F8DF +:1080D000185835D5E90303D500212046FFF746FEA1 +:1080E000AA0303D501212046FFF740FE6B0303D509 +:1080F00002212046FFF73AFE2F0303D50321204635 +:10810000FFF734FEE80203D504212046FFF72EFED8 +:10811000A90203D505212046FFF728FE6A0203D5F0 +:1081200006212046FFF722FE2B0203D50721204619 +:10813000FFF71CFEEF0103D508212046FFF716FECE +:10814000700340F1A780E90703D500212046FFF71F +:108150009FFEAA0703D501212046FFF799FE6B0772 +:1081600003D502212046FFF793FE2F0703D50321F5 +:108170002046FFF78DFEEE0603D504212046FFF7CB +:1081800087FEA80603D505212046FFF781FE690674 +:1081900003D506212046FFF77BFE2A0603D50721DB +:1081A0002046FFF775FEEB0574D520460821BDE893 +:1081B000F84FFFF76DBED4F890904FF0000B4FF0E2 +:1081C000010AD4F894305FFA8BF79B689F423FF620 +:1081D00038AF09EB4713D3F8002902F44022B2F577 +:1081E000802F20D1D3F80029002A1CDAD3F80029E7 +:1081F00042F09042C3F80029D3F80029002AFBDBA3 +:108200003946D4F89000FFF78DFB22890AFA07F36C +:1082100022EA0303238104EB8703DB689B6813B125 +:108220003946204698470BF1010BCAE7910701D167 +:10823000D0F80080072A02F101029CBF03F8018BED +:108240004FEA18283FE704EB830300F58050DA6813 +:10825000D2F818C0DCF80820DCE9001CA1EB0C0CFB +:1082600000218F4208D1DB689B699A683A449A6082 +:108270005A683A445A6029E711F0030F01D1D0F847 +:1082800000808C4501F1010184BF02F8018B4FEAA7 +:108290001828E6E7BDE8F88F08B50348FFF774FE35 +:1082A000BDE80840FFF74EBA3C65002008B503481A +:1082B000FFF76AFEBDE80840FFF744BAD865002022 +:1082C000D0F8903003EB4111D1F8003B43F4001398 +:1082D000C1F8003B70470000D0F8903003EB41112B +:1082E000D1F8003943F40013C1F800397047000099 +:1082F000D0F8903003EB4111D1F8003B23F4001388 +:10830000C1F8003B70470000D0F8903003EB4111FA +:10831000D1F8003923F40013C1F800397047000088 +:10832000044BDA6B0243DA635A6E104358665B6E95 +:10833000704700BF0045025808B53C4B4FF0FF3175 +:10834000D3F8802062F00042C3F88020D3F8802068 +:1083500002F00042C3F88020D3F88020D3F88420B4 +:10836000C3F88410D3F884200022C3F88420D3F803 +:108370008400D86F40F0FF4040F4FF0040F4DF403D +:1083800040F07F00D867D86F20F0FF4020F4FF0056 +:1083900020F4DF4020F07F00D867D86FD3F8880042 +:1083A0006FEA40506FEA5050C3F88800D3F8880055 +:1083B000C0F30A00C3F88800D3F88800D3F890000F +:1083C000C3F89010D3F89000C3F89020D3F8900031 +:1083D000D3F89400C3F89410D3F89400C3F8942011 +:1083E000D3F89400D3F89800C3F89810D3F8980005 +:1083F000C3F89820D3F89800D3F88C00C3F88C10F9 +:10840000D3F88C00C3F88C20D3F88C00D3F89C00F0 +:10841000C3F89C10D3F89C10C3F89C20D3F89C3070 +:10842000FCF73AFABDE8084000F0D2B9004402581F +:1084300008B50122504BC3F80821504B5A6D42F049 +:1084400002025A65DA6F42F00202DA670422DB6F39 +:108450004B4BDA605A689104FCD54A4A1A600122F3 +:108460009A60494ADA6000221A614FF440429A61E8 +:10847000434B9A699204FCD51A6842F480721A60E0 +:10848000424B1A6F12F4407F04D04FF480321A67C7 +:1084900000221A671A6842F001021A603B4B1A6800 +:1084A0005007FCD500221A611A6912F03802FBD17C +:1084B000012119604FF0804159605A67344ADA62ED +:1084C000344A1A611A6842F480321A602F4B1A68D3 +:1084D0009103FCD51A6842F480521A601A6892041B +:1084E000FCD52D4A2D499A6200225A63196301F581 +:1084F0007C01DA6301F5E77199635A64284A1A64CA +:10850000284ADA621A6842F0A8521A601F4B1A68A9 +:1085100002F02852B2F1285FF9D148229A614FF453 +:108520008862DA6140221A621F4ADA641F4A1A65B9 +:108530001F4A5A651F4A9A6532231F4A13601368FF +:1085400003F00F03022BFAD1104A136943F003031F +:108550001361136903F03803182BFAD14FF0005060 +:10856000FFF7DEFE4FF08040FFF7DAFE4FF00040ED +:10857000BDE80840FFF7D4BE008000510045025816 +:108580000048025800C000F00400000100440258F6 +:108590000000FF010088900832206000630209019A +:1085A000470E0508DD0BBF01200000200000011070 +:1085B0000910E00000010110002000524FF0B0420D +:1085C00008B5D2F8883003F00103C2F8883023B12F +:1085D000044A13680BB150689847BDE80840FFF79C +:1085E000B1B800BFB46600204FF0B04208B5D2F871 +:1085F000883003F00203C2F8883023B1044A93683C +:108600000BB1D0689847BDE80840FFF79BB800BFA2 :10861000B46600204FF0B04208B5D2F8883003F0BD -:108620000803C2F8883023B1044A93690BB1D069BA -:108630009847BDE80840FFF76FB800BFB466002058 -:108640004FF0B04208B5D2F8883003F01003C2F8FA -:10865000883023B1044A136A0BB1506A9847BDE8C9 -:108660000840FFF759B800BFB46600204FF0B04390 -:1086700010B5D3F8884004F47872C3F88820A306B4 -:1086800004D5124A936A0BB1D06A9847600604D5A4 -:108690000E4A136B0BB1506B9847210604D50B4A59 -:1086A000936B0BB1D06B9847E20504D5074A136C66 -:1086B0000BB1506C9847A30504D5044A936C0BB1D9 -:1086C000D06C9847BDE81040FFF726B8B46600208C -:1086D0004FF0B04310B5D3F8884004F47C42C3F89F -:1086E0008820620504D5164A136D0BB1506D98476A -:1086F000230504D5124A936D0BB1D06D9847E00461 -:1087000004D50F4A136E0BB1506E9847A10404D5DF -:108710000B4A936E0BB1D06E9847620404D5084A99 -:10872000136F0BB1506F9847230404D5044A936F1D -:108730000BB1D06F9847BDE81040FEF7EDBF00BF0A -:10874000B466002008B50348FCF74CFCBDE80840BF -:10875000FEF7E2BFC836002008B50348FCF742FD2B -:10876000BDE80840FEF7D8BF2039002008B503480F -:10877000FCF738FDBDE80840FEF7CEBF8C3900207D -:1087800008B50348FCF72EFDBDE80840FEF7C4BF5E -:10879000F839002008B500F0B7FCBDE80840FEF746 -:1087A000BBBF0000062108B50846FCF7A1FD062165 -:1087B0000720FCF79DFD06210820FCF799FD062106 -:1087C0000920FCF795FD06210A20FCF791FD062102 -:1087D0001720FCF78DFD06212820FCF789FD0921D3 -:1087E0007A20FCF785FD09213120FCF781FD072166 -:1087F0003220FCF77DFD0C212620FCF779FD0C21B1 -:108800002720FCF775FD0C215220BDE80840FCF73D -:108810006FBD000008B5FFF779FD00F043FCFDF7E0 -:1088200047F9FDF7E5F8FDF71DFBFDF7EFF9FEF75A -:10883000C5F9BDE8084000F029BA000030B504339E -:10884000039C0172002104FB0325C160C0E90653AB -:10885000049B0363059BC0E90000C0E90422C0E952 -:108860000842C0E90A11436330BD00000022416A9A -:10887000C260C0E90411C0E90A226FF00101FDF7EE -:10888000FFBE0000D0E90432934201D1C2680AB9A8 -:10889000181D704700207047036919600021C268E5 -:1088A0000132C260C269134482699342036124BFEA -:1088B000436A0361FDF7D8BE38B504460D46E36848 -:1088C0003BB162690020131D1268A3621344E36286 -:1088D00007E0237A33B929462046FDF7B5FE002884 -:1088E000EDDA38BD6FF00100FBE70000C368C26934 -:1088F000013BC3604369134482699342436124BFCF -:10890000436A436100238362036B03B118477047D6 -:1089100070B53023044683F31188866A3EB9FFF7A9 -:10892000CBFF054618B186F31188284670BDA36AAF -:10893000E26A13F8015B9342A36202D32046FFF779 -:10894000D5FF002383F31188EFE700002DE9F84FEE -:1089500004460E46174698464FF0300989F31188B1 -:108960000025AA46D4F828B0BBF1000F09D1414632 -:108970002046FFF7A1FF20B18BF311882846BDE800 -:10898000F88FD4E90A12A7EB050B521A934528BFBA -:108990009346BBF1400F1BD9334601F1400251F819 -:1089A000040B914243F8040BF9D1A36A40364035D9 -:1089B0004033A362D4E90A239A4202D32046FFF748 -:1089C00095FF8AF31188BD42D8D289F31188C9E78F -:1089D00030465A46F9F77EF9A36A5E445D445B442B -:1089E000A362E7E710B5029C0433017203FB042184 -:1089F000C460C0E906130023C0E90A33039B036384 -:108A0000049BC0E90000C0E90422C0E908424363B6 -:108A100010BD0000026A6FF00101C260426AC0E945 -:108A200004220022C0E90A22FDF72ABED0E904236D -:108A30009A4201D1C26822B9184650F8043B0B6033 -:108A4000704700231846FAE7C3680021C269013362 -:108A5000C3604369134482699342436124BF436AFC -:108A60004361FDF701BE000038B504460D46E368DA -:108A70003BB1236900201A1DA262E2691344E3623C -:108A800007E0237A33B929462046FDF7DDFD0028AB -:108A9000EDDA38BD6FF00100FBE7000003691960F3 -:108AA000C268013AC260C269134482699342036199 -:108AB00024BF436A036100238362036B03B1184739 -:108AC0007047000070B530230D460446114683F30D -:108AD0001188866A2EB9FFF7C7FF10B186F3118897 -:108AE00070BDA36A1D70A36AE26A01339342A36258 -:108AF00004D3E16920460439FFF7D0FF002080F35A -:108B00001188EDE72DE9F84F04460D469046994649 -:108B10004FF0300A8AF311880026B346A76A4FB98E -:108B200049462046FFF7A0FF20B187F31188304661 -:108B3000BDE8F88FD4E90A073A1AA8EB060797426E -:108B400028BF1746402F1BD905F1400355F8042BC9 -:108B50009D4240F8042BF9D1A36A40364033A3620A -:108B6000D4E90A239A4204D3E16920460439FFF785 -:108B700095FF8BF311884645D9D28AF31188CDE74A -:108B800029463A46F9F7A6F8A36A3D443E443B44D9 -:108B9000A362E5E7D0E904239A4217D1C3689BB1E9 -:108BA000836A8BB1043B9B1A0ED01360C368013BF0 -:108BB000C360C3691A4483699A42026124BF436A4D -:108BC0000361002383620123184670470023FBE7FB -:108BD00001F01F03F0B502F01F0456095A1C0123CF -:108BE000B6EB511F50F8265003FA02F34FEA511723 -:108BF00003F1FF333DBF50F82720C4F1200013409C -:108C000003EA05003BBF03FA00F225FA04F0E04056 -:108C10001043F0BD70B57E227F210546FFF7D8FFD7 -:108C200018B1012819D0002070BD3E2249212846E4 -:108C3000FFF7CEFF2F22044631212846FFF7C8FF59 -:108C4000064601345022023653212846B440FFF72D -:108C5000BFFF093804FA00F0E6E730224521284634 -:108C6000FFF7B6FF01308002DEE7000090F8D63053 -:108C700090F8D7201B0403EB026390F8D42090F8FF -:108C8000D500134403EB00207047000000F018BA31 -:108C9000014B586A704700BF000C0040034B002294 -:108CA00058631A610222DA60704700BF000C00406E -:108CB000014B0022DA607047000C0040014B586302 -:108CC000704700BF000C0040024B034A1A60034A81 -:108CD0005A6070478C660020386700200000022030 -:108CE000074B494210B55C68201A08401968821A7F -:108CF0008A4203D3A24201D85A6010BD0020FCE78B -:108D00008C66002008B5302383F31188FFF7E8FF55 -:108D1000002383F3118808BD0448054B036000233A -:108D2000C0E901330C3000F017B900BF9466002091 -:108D3000058D0008CB1D083A23F00703591A521A73 -:108D400010B4D2080024C0E9004384600C301C60D9 -:108D50005A605DF8044B00F0FFB800002DE9F74FB2 -:108D6000364FCD1D8846002818BF0746082A4FEA0F -:108D7000D50538BF082207F10C003C1D9146019033 -:108D800000F02CF9019809F10701C9F1000E224603 -:108D9000246864B900F02CF93B68CBB3082249463B -:108DA000E8009847044698B340E9027830E004EBC5 -:108DB000010CD4F804A00CEA0E0C0AF10106ACF187 -:108DC000080304EBC6069E42E1D9A6EB0C0CB5EBFA -:108DD000EC0F4FEAEC0BDAD89C421DD204F10802EA -:108DE000AB45A3EB02024FEAE202626009D9691CBB -:108DF000ED4303EBC1025D445560256843F83150F3 -:108E000022601C46C3F8048044F8087B00F0F0F8A8 -:108E1000204603B0BDE8F08FAA45216802D1116059 -:108E20002346EEE7013504EBC50344F8351003F1A2 -:108E30000801761AF6105E601360F1E79466002070 -:108E400073B50446A0F1080550F8080C54F8043C2A -:108E5000061D0C3007330190DB0844F8043C00F099 -:108E6000BDF8334601989E421A6801D0AB4228D221 -:108E70000AB1954225D244F8082C54F8042C1D6000 -:108E8000013254F8081C05EBC206B14206D14E6807 -:108E9000324444F8042C0A6844F8082C5E68711CBB -:108EA00003EBC1018D4207D154F8042C0132324446 -:108EB0005A6054F8082C1A6002B0BDE8704000F007 -:108EC00097B81346CFE70000FEE7000070B51E4BD1 -:108ED0000025044686B058600E4605638163FEF7A0 -:108EE000F3FB04F12803A5606563C4E90A3304F1C8 -:108EF0001003C4E904334FF0FF33C4E90044C4E96C -:108F00000635FFF7C5FE2B46024604F13C0120461C -:108F1000C4E9082380230D4A6567FDF70FFB7368DA -:108F2000E0600B4A03620123009280F82430684617 -:108F3000F26801923269CDE90223064BCDE904358E -:108F4000FDF730FB06B070BD10490020F09B000813 -:108F5000E89B0008C98E00080023C0E90000836078 -:108F60000361704770B51C4B05468468DE685CB3CE -:108F7000B44213D103690133036170BDA36094F857 -:108F8000243083B1062B15D1A06A2146D4E90032E2 -:108F900013605A60FDF73EFAA36A9C68B368A26842 -:108FA0009A42EBD306E0D4E90032204613605A60BF -:108FB000FDF740FA28463146FDF72CFAB562062047 -:108FC000BDE87040FDF738BA03698660013303617C -:108FD000336BC3603063D0E76846002008B53023A8 -:108FE00083F31188FFF7BEFF002383F3118808BDC8 -:108FF000194BD96883688B4210B520D1302383F395 -:1090000011880269013A0261B2B90468C368A042DA -:109010000B631ED04A6B9BB901238A60036103680E -:109020001A68026050601A6B8360C2601863184649 -:10903000FDF700FAFDF750FA002383F3118810BD05 -:109040001C68A34203D0A468A24238BF2246DB6852 -:10905000E1E78260F0E700BF68460020024A536BF8 -:1090600018435063704700BF6846002038B5EFF3DF -:1090700011859DB9EFF30584C4F30804302334B19E -:1090800083F31188FDF734FC85F3118838BD83F331 -:109090001188FDF72DFC84F3118838BDBDE83840F8 -:1090A000FDF726BC0023054A19460133102BC2E9FF -:1090B000001102F10802F8D1704700BFB466002029 -:1090C0000E4B9A6C42F008029A641A6F42F0080242 -:1090D0001A670B4A1B6FD36B43F00803D363C72295 -:1090E000084B9A624FF0FF32DA6200229A615A63AB -:1090F000DA605A6001225A611A60704700450258CE -:109100000010005C000C0040094A08B51169D368E2 -:109110000B40D9B29B076FEA0101116107D53023DB -:1091200083F31188FDF7FEF9002383F3118808BD4E -:10913000000C004010B501390244904201D10020DA -:1091400005E0037811F8014FA34201D0181B10BDB0 -:109150000130F2E7884210B501EB020402D98442E3 -:10916000234607D8431EA14208D011F8012B03F86B -:10917000012FF8E7024401468A4200D110BD13F8DE -:10918000014D02F8014DF7E7C9B2034610F8012B73 -:109190001AB18A42F9D118467047002918BF002336 -:1091A000F9E70000034611F8012B03F8012B002A10 -:1091B000F9D1704710B50139034632B111F8014FAA -:1091C00003F8014B013A002CF7D11A4400219342D5 -:1091D00000D110BD03F8011BF9E700004D44350034 -:1091E0002D2D0A002F6172647570696C6F742E6189 -:1091F00062696E002F6172647570696C6F742D7690 -:1092000065726966792E6162696E002F617264759C -:1092100070696C6F742D666C6173682E6162696E23 -:10922000002F6172647570696C6F742D666C617368 -:109230006865642E6162696E000000000000000035 -:1092400000000000ED0E0008890F00083911000829 -:10925000C10F0008810F000800000000000000009E -:10926000E90E0008950F000871110008E50E0008CE -:10927000F10E000853544D333248373F3F3F0053FF -:10928000544D3332483733782F3732780053544DAA -:109290003332483734332F3735332F3735300000EA -:1092A00001105A00031059000120580003205600F5 -:1092B0002F0000005375636365737366756C6C797A -:1092C000206D6F756E746564205344436172642031 -:1092D00028736C6F77646F776E3D2575290A0000DF -:1092E000EB769045584641542020200046415433A7 -:1092F00032202020000000002A3A3C3E7C223F7FA2 -:10930000002B2C3B3D5B5D004355454141414143B2 -:1093100045454549494941414592924F4F4F555521 -:10932000594F554F9C4F9E9F41494F55A5A5A6A704 -:10933000A8A9AAABACADAEAFB0B1B2B3B441414194 -:10934000B8B9BABBBCBDBEBFC0C1C2C3C4C5414130 -:10935000C8C9CACBCCCDCECFD1D145454549494965 -:1093600049D9DADBDCDD49DF4FE14F4F4F4FE6E80B -:10937000E85555555959EEEFF0F1F2F3F4F5F6F7DB -:10938000F8F9FAFBFCFDFEFF01030507090E1012B8 -:109390001416181C1E00000061001A03E0001703D9 -:1093A000F8000703FF0001007801000130013201DD -:1093B0000601390110014A012E01790106018001DF -:1093C0004D004302810182018201840184018601F2 -:1093D0008701870189018A018B018B018D018E0133 -:1093E0008F0190019101910193019401F601960181 -:1093F0009701980198013D029B019C019D0120026B -:109400009F01A001A001A201A201A401A401A60143 -:10941000A701A701A901AA01AB01AC01AC01AE01F2 -:10942000AF01AF01B101B201B301B301B501B501A3 -:10943000B701B801B801BA01BB01BC01BC01BE0152 -:10944000F701C001C101C201C301C401C501C401CA -:10945000C701C801C701CA01CB01CA01CD01100172 -:10946000DD0101008E01DE011201F3010300F101B3 -:10947000F401F401F8012801220212013A02090064 -:10948000652C3B023B023D02662C3F02400241023A -:10949000410246020A015302400081018601550241 -:1094A00089018A0158028F015A0290015C025D0213 -:1094B0005E025F029301610262029401640265022E -:1094C00066026702970196016A02622C6C026D02C5 -:1094D0006E029C01700271029D01730274029F0171 -:1094E00076027702780279027A027B027C02642C8F -:1094F0007E027F02A60181028202A9018402850206 -:1095000086028702AE014402B101B20145028D021A -:109510008E028F0290029102B7017B030300FD03CC -:10952000FE03FF03AC0304008603880389038A0358 -:10953000B1031103C2030200A303A303C40308037E -:10954000CC0303008C038E038F03D8031801F203AE -:109550000A00F903F303F403F503F603F703F70333 -:10956000F903FA03FA0330042003500410076004DF -:1095700022018A043601C1040E01CF040100C00497 -:10958000D004440161052604000000007D1D010097 -:10959000632C001E9601A01E5A01001F0806101F12 -:1095A0000606201F0806301F0806401F0606511F2A -:1095B0000700591F521F5B1F541F5D1F561F5F1F5F -:1095C000601F0806701F0E00BA1FBB1FC81FC91FEF -:1095D000CA1FCB1FDA1FDB1FF81FF91FEA1FEB1F83 -:1095E000FA1FFB1F801F0806901F0806A01F080611 -:1095F000B01F0400B81FB91FB21FBC1FCC1F010051 -:10960000C31FD01F0206E01F0206E51F0100EC1F6A -:10961000F31F0100FC1F4E210100322170211002B6 -:10962000842101008321D0241A05302C2F04602CC2 -:109630000201672C0601752C0201802C6401002DAB -:10964000260841FF1A030000C700FC00E900E20001 -:10965000E400E000E500E700EA00EB00E800EF00CE -:10966000EE00EC00C400C500C900E600C600F4002E -:10967000F600F200FB00F900FF00D600DC00F80065 -:10968000A300D800D7009201E100ED00F300FA003A -:10969000F100D100AA00BA00BF00AE00AC00BD00CE -:1096A000BC00A100AB00BB009125922593250225AB -:1096B0002425C100C200C000A900632551255725FB -:1096C0005D25A200A5001025142534252C251C2578 -:1096D00000253C25E300C3005A255425692566254D -:1096E000602550256C25A400F000D000CA00CB00F6 -:1096F000C8003101CD00CE00CF0018250C258825EB -:109700008425A600CC008025D300DF00D400D20041 -:10971000F500D500B500FE00DE00DA00DB00D90060 -:10972000FD00DD00AF00B400AD00B1001720BE00A9 -:10973000B600A700F700B800B000A800B700B90055 -:10974000B300B200A025A0001000024008000240B3 -:109750000008024000000B00280002400800024000 -:109760000408024006010C004000024008000240CC -:109770000808024010020D00580002400800024094 -:109780000C08024016030E00700002400C0002405C -:109790001008024000040F00880002400C00024044 -:1097A0001408024006051000A00002400C00024010 -:1097B0001808024010061100B80002400C000240D8 -:1097C0001C08024016072F00100402400804024043 -:1097D0002008024000083800280402400804024023 -:1097E00024080240060939004004024008040240EF -:1097F00028080240100A3A005804024008040240B7 -:109800002C080240160B3B00700402400C0402407E -:1098100030080240000C3C00880402400C04024066 -:1098200034080240060D4400A00402400C0402402B -:1098300038080240100E4500B80402400C040240F3 -:109840003C080240160F4600010000000000000026 -:109850000096000000000000000000000000000072 -:10986000000000000000000000000000B56B0008D0 -:10987000B96B000885560008BD5900081956000844 -:109880004156000869560008015600080000000013 -:10989000715A00085D5A0008995A0008855A000854 -:1098A000915A00087D5A0008695A0008555A000864 -:1098B000A55A000800000000895B0008755B0008DD -:1098C000B15B00089D5B0008A95B0008955B000880 -:1098D000815B00086D5B0008BD5B000800000000B4 -:1098E000010000000000000063300000E89800085C -:1098F0000000000000000000E046002010490020A9 -:109900000000812A00000000AAAAAAAA00000024E0 -:10991000FFFE00000000000000A00A00000100009F -:1099200000000000AAAAAAAA00000000FFFF000091 -:1099300000000000000000001400AA560000000013 -:10994000AAAAAAAA14005554FFFF000000000000B4 -:10995000CCCC0C0020681A0000000000AAAA8AAA39 -:1099600010541500FFFF0000000C70077700000086 -:109970004081020100100000AAAAAAAA0041010029 -:10998000F7FF00000000007007000000000000006A -:1099900000000000AAAAAAAA00000000FFFF000021 -:1099A00000000000000000000000000000000000B7 -:1099B000AAAAAAAA00000000FFFF00000000000001 -:1099C000000000000000000000000000AAAAAAAAEF -:1099D00000000000FFFF0000000000000000000089 -:1099E0000000000000000000AAAAAAAA00000000CF -:1099F000FFFF000000000000000000000000000069 -:109A000000000000AAAAAAAA00000000FFFF0000B0 -:109A10000000000000000000000000000000000046 -:109A2000AAAAAAAA00000000FFFF00000000000090 -:109A3000000000004375626550696C6F74004375E7 -:109A400062654F72616E67652B2D424C0025534550 -:109A50005249414C250000000200000000000000B7 -:109A6000A95D0008195E000840004000C0610020A8 -:109A7000D061002002000000000000000300000090 -:109A800000000000615E00080000000010000000FF -:109A9000E061002000000000010000000000000064 -:109AA0003C65002001010200B16C0008C16B000898 -:109AB0005D6C0008416C000843000000C09A00087B -:109AC00009024300020100C0320904000001020241 -:109AD00001000524001001052401000104240202F4 -:109AE0000524060001070582030800FF09040100A0 -:109AF000020A00000007050102400000070581027C -:109B000040000000120000000C9B00081201100130 -:109B100002000040AE2D58100002010203010000B7 -:109B20000403090425424F415244250043756265F0 -:109B30004F72616E6765506C75730030313233342B -:109B4000353637383941424344454600000000204D -:109B500000000200020000000000003000000400CD -:109B600008000000000000240000080004000000BD -:109B70000004000000FC00000200000000000430AF -:109B80000080000008000000000000380000010014 -:109B9000010000001F1C1F1E1F1E1F1F1E1F1E1F57 -:109BA0001F1D1F1E1F1E1F1F1E1F1E1F0000000047 -:109BB000BD5F000875620008216300084000400096 -:109BC0007466002074660020010000008466002096 -:109BD00080000000400100000800000000010000BB -:109BE000001000000800000069646C6500000000BF -:109BF0006D61696E002C0438040438080C10141CC4 -:109C00002024252600000000000064040100040058 -:109C100000000000000C0010283034004C68FF7F6A -:109C20000100000000000000270400000000000008 -:109C300000001E0000000000FF0000001849002086 -:109C4000203900208C390020F83900200000000065 -:109C500074920008830400007F9200085004000002 -:109C60008D92000801000000000000000096000036 -:109C7000000008009600000000080000040000003A -:109C8000209B000800000000000000000000000011 -:0C9C9000000000000000000000000000C8 +:108620000403C2F8883023B1044A13690BB15069BE +:108630009847BDE80840FFF785B800BFB466002042 +:108640004FF0B04208B5D2F8883003F00803C2F802 +:10865000883023B1044A93690BB1D0699847BDE8CB +:108660000840FFF76FB800BFB46600204FF0B0427B +:1086700008B5D2F8883003F01003C2F8883023B16F +:10868000044A136A0BB1506A9847BDE80840FFF7E7 +:1086900059B800BFB46600204FF0B04310B5D3F80E +:1086A000884004F47872C3F88820A30604D5124ADF +:1086B000936A0BB1D06A9847600604D50E4A136BD3 +:1086C0000BB1506B9847210604D50B4A936B0BB145 +:1086D000D06B9847E20504D5074A136C0BB1506C78 +:1086E0009847A30504D5044A936C0BB1D06C984706 +:1086F000BDE81040FFF726B8B46600204FF0B04345 +:1087000010B5D3F8884004F47C42C3F88820620591 +:1087100004D5164A136D0BB1506D9847230504D547 +:10872000124A936D0BB1D06D9847E00404D50F4AFF +:10873000136E0BB1506E9847A10404D50B4A936E8B +:108740000BB1D06E9847620404D5084A136F0BB181 +:10875000506F9847230404D5044A936F0BB1D06F30 +:108760009847BDE81040FEF7EDBF00BFB46600209B +:1087700008B50348FCF73CFCBDE80840FEF7E2BF43 +:10878000C836002008B50348FCF732FDBDE80840B4 +:10879000FEF7D8BF2039002008B50348FCF728FDB4 +:1087A000BDE80840FEF7CEBF8C39002008B503486D +:1087B000FCF71EFDBDE80840FEF7C4BFF8390020F5 +:1087C00008B500F0B7FCBDE80840FEF7BBBF0000ED +:1087D000062108B50846FCF791FD06210720FCF7A5 +:1087E0008DFD06210820FCF789FD06210920FCF7F4 +:1087F00085FD06210A20FCF781FD06211720FCF7E4 +:108800007DFD06212820FCF779FD09217A20FCF75F +:1088100075FD09213120FCF771FD07213220FCF79D +:108820006DFD0C212620FCF769FD0C212720FCF7AB +:1088300065FD0C215220BDE80840FCF75FBD00003B +:1088400008B5FFF779FD00F043FCFDF737F9FDF7B8 +:10885000D5F8FDF70DFBFDF7DFF9FEF79DF9BDE853 +:10886000084000F029BA000030B50433039C0172BF +:10887000002104FB0325C160C0E90653049B036388 +:10888000059BC0E90000C0E90422C0E90842C0E934 +:108890000A11436330BD00000022416AC260C0E992 +:1088A0000411C0E90A226FF00101FDF7EFBE0000DC +:1088B000D0E90432934201D1C2680AB9181D704749 +:1088C00000207047036919600021C2680132C2604C +:1088D000C269134482699342036124BF436A0361FE +:1088E000FDF7C8BE38B504460D46E3683BB1626982 +:1088F0000020131D1268A3621344E36207E0237A89 +:1089000033B929462046FDF7A5FE0028EDDA38BD2B +:108910006FF00100FBE70000C368C269013BC36060 +:108920004369134482699342436124BF436A4361AC +:1089300000238362036B03B11847704770B530237F +:10894000044683F31188866A3EB9FFF7CBFF0546DC +:1089500018B186F31188284670BDA36AE26A13F83D +:10896000015B9342A36202D32046FFF7D5FF0023A9 +:1089700083F31188EFE700002DE9F84F04460E4617 +:10898000174698464FF0300989F311880025AA460A +:10899000D4F828B0BBF1000F09D141462046FFF7BB +:1089A000A1FF20B18BF311882846BDE8F88FD4E9E8 +:1089B0000A12A7EB050B521A934528BF9346BBF149 +:1089C000400F1BD9334601F1400251F8040B91428C +:1089D00043F8040BF9D1A36A403640354033A36213 +:1089E000D4E90A239A4202D32046FFF795FF8AF37F +:1089F0001188BD42D8D289F31188C9E730465A465A +:108A0000F9F768F9A36A5E445D445B44A362E7E753 +:108A100010B5029C0433017203FB0421C460C0E959 +:108A200006130023C0E90A33039B0363049BC0E9D8 +:108A30000000C0E90422C0E90842436310BD000001 +:108A4000026A6FF00101C260426AC0E9042200229A +:108A5000C0E90A22FDF71ABED0E904239A4201D1E7 +:108A6000C26822B9184650F8043B0B6070470023D7 +:108A70001846FAE7C3680021C2690133C36043693D +:108A8000134482699342436124BF436A4361FDF703 +:108A9000F1BD000038B504460D46E3683BB12369DB +:108AA00000201A1DA262E2691344E36207E0237A00 +:108AB00033B929462046FDF7CDFD0028EDDA38BD53 +:108AC0006FF00100FBE7000003691960C268013A1A +:108AD000C260C269134482699342036124BF436A3E +:108AE000036100238362036B03B1184770470000E2 +:108AF00070B530230D460446114683F31188866A0B +:108B00002EB9FFF7C7FF10B186F3118870BDA36AB5 +:108B10001D70A36AE26A01339342A36204D3E16940 +:108B200020460439FFF7D0FF002080F31188EDE7DD +:108B30002DE9F84F04460D46904699464FF0300A0D +:108B40008AF311880026B346A76A4FB949462046E2 +:108B5000FFF7A0FF20B187F311883046BDE8F88FFA +:108B6000D4E90A073A1AA8EB0607974228BF174626 +:108B7000402F1BD905F1400355F8042B9D4240F8C6 +:108B8000042BF9D1A36A40364033A362D4E90A2307 +:108B90009A4204D3E16920460439FFF795FF8BF32D +:108BA00011884645D9D28AF31188CDE729463A463D +:108BB000F9F790F8A36A3D443E443B44A362E5E7DD +:108BC000D0E904239A4217D1C3689BB1836A8BB161 +:108BD000043B9B1A0ED01360C368013BC360C3699A +:108BE0001A4483699A42026124BF436A03610023E5 +:108BF00083620123184670470023FBE701F01F033F +:108C0000F0B502F01F0456095A1C0123B6EB511FA0 +:108C100050F8265003FA02F34FEA511703F1FF33DD +:108C20003DBF50F82720C4F12000134003EA05009F +:108C30003BBF03FA00F225FA04F0E0401043F0BD18 +:108C400070B57E227F210546FFF7D8FF18B10128B5 +:108C500019D0002070BD3E2249212846FFF7CEFFE3 +:108C60002F22044631212846FFF7C8FF064601346B +:108C70005022023653212846B440FFF7BFFF09387F +:108C800004FA00F0E6E7302245212846FFF7B6FF58 +:108C900001308002DEE7000090F8D63090F8D7204F +:108CA0001B0403EB026390F8D42090F8D500134422 +:108CB00003EB00207047000000F018BA014B586A1F +:108CC000704700BF000C0040034B002258631A613C +:108CD0000222DA60704700BF000C0040014B002206 +:108CE000DA607047000C0040014B5863704700BFCA +:108CF000000C0040024B034A1A60034A5A60704756 +:108D00008C6600203867002000000220074B494293 +:108D100010B55C68201A08401968821A8A4203D389 +:108D2000A24201D85A6010BD0020FCE78C660020EA +:108D300008B5302383F31188FFF7E8FF002383F39E +:108D4000118808BD0448054B03600023C0E90133C6 +:108D50000C3000F017B900BF94660020318D000878 +:108D6000CB1D083A23F00703591A521A10B4D2083F +:108D70000024C0E9004384600C301C605A605DF838 +:108D8000044B00F0FFB800002DE9F74F364FCD1D22 +:108D90008846002818BF0746082A4FEAD50538BF7D +:108DA000082207F10C003C1D9146019000F02CF9BF +:108DB000019809F10701C9F1000E2246246864B93F +:108DC00000F02CF93B68CBB308224946E8009847ED +:108DD000044698B340E9027830E004EB010CD4F883 +:108DE00004A00CEA0E0C0AF10106ACF1080304EB36 +:108DF000C6069E42E1D9A6EB0C0CB5EBEC0F4FEA90 +:108E0000EC0BDAD89C421DD204F10802AB45A3EB6F +:108E100002024FEAE202626009D9691CED4303EBEA +:108E2000C1025D445560256843F8315022601C46FC +:108E3000C3F8048044F8087B00F0F0F8204603B043 +:108E4000BDE8F08FAA45216802D111602346EEE704 +:108E5000013504EBC50344F8351003F10801761A17 +:108E6000F6105E601360F1E79466002073B5044667 +:108E7000A0F1080550F8080C54F8043C061D0C300D +:108E800007330190DB0844F8043C00F0BDF833469A +:108E900001989E421A6801D0AB4228D20AB195428D +:108EA00025D244F8082C54F8042C1D60013254F8E3 +:108EB000081C05EBC206B14206D14E68324444F8A4 +:108EC000042C0A6844F8082C5E68711C03EBC1018D +:108ED0008D4207D154F8042C013232445A6054F8C0 +:108EE000082C1A6002B0BDE8704000F097B8134635 +:108EF000CFE70000FEE7000070B51E4B00250446DA +:108F000086B058600E4605638163FEF7F3FB04F1FB +:108F10002803A5606563C4E90A3304F11003C4E9BA +:108F200004334FF0FF33C4E90044C4E90635FFF7CA +:108F3000C5FE2B46024604F13C012046C4E9082345 +:108F400080230D4A6567FDF7FFFA7368E0600B4AFE +:108F500003620123009280F824306846F26801928F +:108F60003269CDE90223064BCDE90435FDF720FB3C +:108F700006B070BD104900201C9C0008149C00081D +:108F8000F58E00080023C0E900008360036170478C +:108F900070B51C4B05468468DE685CB3B44213D1DF +:108FA00003690133036170BDA36094F8243083B179 +:108FB000062B15D1A06A2146D4E9003213605A600D +:108FC000FDF72EFAA36A9C68B368A2689A42EBD3B5 +:108FD00006E0D4E90032204613605A60FDF730FA0B +:108FE00028463146FDF71CFAB5620620BDE8704000 +:108FF000FDF728BA0369866001330361336BC360F0 +:109000003063D0E76846002008B5302383F3118829 +:10901000FFF7BEFF002383F3118808BD194BD96801 +:1090200083688B4210B520D1302383F31188026905 +:10903000013A0261B2B90468C368A0420B631ED052 +:109040004A6B9BB901238A60036103681A68026056 +:1090500050601A6B8360C26018631846FDF7F0F920 +:10906000FDF740FA002383F3118810BD1C68A3426A +:1090700003D0A468A24238BF2246DB68E1E78260E1 +:10908000F0E700BF68460020024A536B1843506364 +:10909000704700BF6846002038B5EFF311859DB9D1 +:1090A000EFF30584C4F30804302334B183F311884B +:1090B000FDF724FC85F3118838BD83F31188FDF793 +:1090C0001DFC84F3118838BDBDE83840FDF716BC9F +:1090D0000023054A19460133102BC2E9001102F1A1 +:1090E0000802F8D1704700BFB46600200E4B9A6C9E +:1090F00042F008029A641A6F42F008021A670B4A9B +:109100001B6FD36B43F00803D363C722084B9A62EB +:109110004FF0FF32DA6200229A615A63DA605A60D5 +:1091200001225A611A607047004502580010005C25 +:10913000000C0040094A08B51169D3680B40D9B248 +:109140009B076FEA0101116107D5302383F3118872 +:10915000FDF7EEF9002383F3118808BD000C0040F1 +:1091600010B501390244904201D1002005E0037896 +:1091700011F8014FA34201D0181B10BD0130F2E7D6 +:10918000884210B501EB020402D98442234607D875 +:10919000431EA14208D011F8012B03F8012FF8E774 +:1091A000024401468A4200D110BD13F8014D02F875 +:1091B000014DF7E7C9B2034610F8012B1AB18A42F4 +:1091C000F9D118467047002918BF0023F9E70000BD +:1091D000034611F8012B03F8012B002AF9D170473F +:1091E00010B50139034632B111F8014F03F8014BB4 +:1091F000013A002CF7D11A440021934200D110BD4E +:1092000003F8011BF9E700004D4435002D2D0A003D +:109210002F6172647570696C6F742E6162696E0083 +:109220002F6172647570696C6F742D7665726966F2 +:10923000792E6162696E002F6172647570696C6F5E +:10924000742D666C6173682E6162696E002F6172A5 +:10925000647570696C6F742D666C61736865642EDB +:109260006162696E00000000000000000000000064 +:10927000ED0E0008890F000839110008C10F000821 +:10928000810F00080000000000000000E90E000847 +:10929000950F000871110008E50E0008F10E000896 +:1092A00053544D333248373F3F3F0053544D3332D0 +:1092B000483733782F3732780053544D333248379C +:1092C00034332F3735332F373530000001105A0033 +:1092D0000310590001205800032056002F00000001 +:1092E0005375636365737366756C6C79206D6F7508 +:1092F0006E746564205344436172642028736C6FFC +:1093000077646F776E3D2575290A0000EB769045EE +:10931000584641542020200046415433322020201A +:10932000000000002A3A3C3E7C223F7F002B2C3B71 +:109330003D5B5D00435545414141414345454549FC +:10934000494941414592924F4F4F5555594F554FBD +:109350009C4F9E9F41494F55A5A5A6A7A8A9AAAB7A +:10936000ACADAEAFB0B1B2B3B4414141B8B9BABB24 +:10937000BCBDBEBFC0C1C2C3C4C54141C8C9CACBC0 +:10938000CCCDCECFD1D145454549494949D9DADB84 +:10939000DCDD49DF4FE14F4F4F4FE6E8E8555555CB +:1093A0005959EEEFF0F1F2F3F4F5F6F7F8F9FAFBAC +:1093B000FCFDFEFF01030507090E10121416181C10 +:1093C0001E00000061001A03E0001703F800070305 +:1093D000FF0001007801000130013201060139016E +:1093E00010014A012E017901060180014D0043025E +:1093F0008101820182018401840186018701870144 +:1094000089018A018B018B018D018E018F019001F1 +:109410009101910193019401F60196019701980140 +:1094200098013D029B019C019D0120029F01A0012A +:10943000A001A201A201A401A401A601A701A70104 +:10944000A901AA01AB01AC01AC01AE01AF01AF01B2 +:10945000B101B201B301B301B501B501B701B80162 +:10946000B801BA01BB01BC01BC01BE01F701C001DA +:10947000C101C201C301C401C501C401C701C801C2 +:10948000C701CA01CB01CA01CD011001DD010100F4 +:109490008E01DE011201F3010300F101F401F40178 +:1094A000F8012801220212013A020900652C3B0250 +:1094B0003B023D02662C3F0240024102410246024D +:1094C0000A015302400081018601550289018A0187 +:1094D00058028F015A0290015C025D025E025F0237 +:1094E00093016102620294016402650266026702EE +:1094F000970196016A02622C6C026D026E029C0159 +:10950000700271029D01730274029F01760277025C +:10951000780279027A027B027C02642C7E027F024E +:10952000A60181028202A9018402850286028702C5 +:10953000AE014402B101B20145028D028E028F02DA +:1095400090029102B7017B030300FD03FE03FF03BA +:10955000AC0304008603880389038A03B103110363 +:10956000C2030200A303A303C4030803CC03030044 +:109570008C038E038F03D8031801F2030A00F9034A +:10958000F303F403F503F603F703F703F903FA0310 +:10959000FA033004200350041007600422018A04F7 +:1095A0003601C1040E01CF040100C004D0044401FF +:1095B00061052604000000007D1D0100632C001ED3 +:1095C0009601A01E5A01001F0806101F0606201F44 +:1095D0000806301F0806401F0606511F0700591FC6 +:1095E000521F5B1F541F5D1F561F5F1F601F080621 +:1095F000701F0E00BA1FBB1FC81FC91FCA1FCB1F79 +:10960000DA1FDB1FF81FF91FEA1FEB1FFA1FFB1FF2 +:10961000801F0806901F0806A01F0806B01F040040 +:10962000B81FB91FB21FBC1FCC1F0100C31FD01F22 +:109630000206E01F0206E51F0100EC1FF31F0100F8 +:10964000FC1F4E21010032217021100284210100F3 +:109650008321D0241A05302C2F04602C0201672CA2 +:109660000601752C0201802C6401002D260841FFA3 +:109670001A030000C700FC00E900E200E400E0007B +:10968000E500E700EA00EB00E800EF00EE00EC0088 +:10969000C400C500C900E600C600F400F600F200F0 +:1096A000FB00F900FF00D600DC00F800A300D800A2 +:1096B000D7009201E100ED00F300FA00F100D100C3 +:1096C000AA00BA00BF00AE00AC00BD00BC00A10003 +:1096D000AB00BB0091259225932502252425C100CE +:1096E000C200C000A9006325512557255D25A200B1 +:1096F000A5001025142534252C251C2500253C25E6 +:10970000E300C3005A2554256925662560255025A8 +:109710006C25A400F000D000CA00CB00C8003101C5 +:10972000CD00CE00CF0018250C2588258425A60065 +:10973000CC008025D300DF00D400D200F500D50096 +:10974000B500FE00DE00DA00DB00D900FD00DD0020 +:10975000AF00B400AD00B1001720BE00B600A700F6 +:10976000F700B800B000A800B700B900B300B2001D +:10977000A025A0001000024008000240000802409E +:1097800000000B00280002400800024004080240CC +:1097900006010C0040000240080002400808024098 +:1097A00010020D0058000240080002400C08024060 +:1097B00016030E00700002400C0002401008024028 +:1097C00000040F00880002400C0002401408024010 +:1097D00006051000A00002400C00024018080240DC +:1097E00010061100B80002400C0002401C080240A4 +:1097F00016072F001004024008040240200802400F +:1098000000083800280402400804024024080240EE +:1098100006093900400402400804024028080240BA +:10982000100A3A0058040240080402402C08024082 +:10983000160B3B00700402400C040240300802404A +:10984000000C3C00880402400C0402403408024032 +:10985000060D4400A00402400C04024038080240F7 +:10986000100E4500B80402400C0402403C080240BF +:10987000160F4600010000000000000000960000E6 +:1098800000000000000000000000000000000000D8 +:109890000000000000000000916B0008956B0008BC +:1098A00091560008C9590008255600084D56000871 +:1098B000755600080D560008000000007D5A00088B +:1098C000695A0008A55A0008915A00089D5A0008D4 +:1098D000895A0008755A0008615A0008B15A0008F0 +:1098E00000000000955B0008815B0008BD5B00087C +:1098F000A95B0008B55B0008A15B00088D5B000850 +:10990000795B0008C95B000800000000010000004E +:1099100000000000633000001499000800000000FF +:1099200000000000E0460020104900200000812ACD +:1099300000000000AAAAAAAA00000024FFFE00005E +:109940000000000000A00A0000010000000000006C +:10995000AAAAAAAA00000000FFFF00000000000061 +:10996000000000001400AA5600000000AAAAAAAA3B +:1099700014005554FFFF000000000000CCCC0C0088 +:1099800020681A0000000000AAAA8AAA1054150034 +:10999000FFFF0000000C700777000000408102010B +:1099A00000100000AAAAAAAA00410100F7FF0000C7 +:1099B0000000007007000000000000000000000030 +:1099C000AAAAAAAA00000000FFFF000000000000F1 +:1099D000000000000000000000000000AAAAAAAADF +:1099E00000000000FFFF0000000000000000000079 +:1099F0000000000000000000AAAAAAAA00000000BF +:109A0000FFFF000000000000000000000000000058 +:109A100000000000AAAAAAAA00000000FFFF0000A0 +:109A20000000000000000000000000000000000036 +:109A3000AAAAAAAA00000000FFFF00000000000080 +:109A4000000000000000000000000000AAAAAAAA6E +:109A500000000000FFFF0000000000000000000008 +:109A60004375626550696C6F7400437562654F722F +:109A7000616E67652B2D424C002553455249414C80 +:109A8000250000000200000000000000B55D000895 +:109A9000255E000840004000C0610020D061002029 +:109AA00002000000000000000300000000000000B1 +:109AB0006D5E00080000000010000000E061002062 +:109AC0000000000001000000000000003C650020D4 +:109AD000010102008D6C00089D6B0008396C0008C4 +:109AE0001D6C000843000000EC9A000809024300C6 +:109AF000020100C032090400000102020100052435 +:109B000000100105240100010424020205240600BE +:109B100001070582030800FF09040100020A000092 +:109B20000007050102400000070581024000000017 +:109B300012000000389B00081201100102000040D2 +:109B4000AE2D5810000201020301000004030904B5 +:109B500025424F4152442500437562654F72616E44 +:109B60006765506C757300303132333435363738B1 +:109B700039414243444546000000002000000200F5 +:109B80000200000000000030000004000800000097 +:109B90000000002400000800040000000004000091 +:109BA00000FC000002000000000004300080000003 +:109BB0000800000000000038000001000100000063 +:109BC0001F1C1F1E1F1E1F1F1E1F1E1F1F1D1F1EAF +:109BD0001F1E1F1F1E1F1E1F00000000C95F000860 +:109BE000816200082D630008400040007466002078 +:109BF00074660020010000008466002080000000E0 +:109C000040010000080000000001000000100000FA +:109C10000800000069646C65000000006D61696EF9 +:109C2000002C0438040438080C10141C20242526A9 +:109C300000000000000064040100040000000000B7 +:109C4000000C0010283034002068FF7F0100000065 +:109C5000270400000000000000001E0000000000BB +:109C6000FF00000018490020203900208C39002016 +:109C7000F839002000000000A092000883040000D2 +:109C8000AB92000850040000B992000801000000E7 +:109C90000000000000960000000008009600000090 +:109CA00000080000040000004C9B000800000000B9 +:109CB00000000000000000000000000000000000A4 +:049CC00000000000A0 :00000001FF diff --git a/Tools/bootloaders/CubeOrange_bl.bin b/Tools/bootloaders/CubeOrange_bl.bin index cd5b57818bff260e7034b9ebdc0240ce2b42d0b6..b83771177b481e25153217cdf4b1449eb3237ef0 100755 GIT binary patch delta 9041 zcmZ{K3w%u1*7)A%%;V%e@yb(jCX>hzVu(i&H6l))Bnb8BtqH+Is08iDRZWOjT6(dy zMd)9-?MGD^F}k2fMtzX@@Z09FIM4}b;4^#_;^unyoDz%>Az zzaz2_X7I!|lx^5*INS);Irv8N7q%$W3Mmrxi0j8u36UDQEM55P5T1R&{3EO@@X?(OY5) zSZkO~Bc{v9(7UL# zC+15<6oNcjDgS<0*j&#WomlKg8p1}V|6O5tMH=Hz_H2^P5YwMvE>76kJ!S!qc(2{e zOv#-x9*OtJt+2Sbtx6wPnt(w*&YxP`WIdXzy+P;UB7rEb>Gfk&G)zdc^Q4id-+a zT-neQr>M6-bX}Hv)x!v3d|&w)7cx}pRfkmsK{g>{UB`)!>4;b#GLGx`@MG0(BqoE_ zoqv-%LXJhmjEhk2yQt)CFO}T-G31kSE5P}CfYb1?`baMx!R%-Sm0q=71^sRFj}ls3 zLxH=Pu#sa*_W8Rby};idmRdw&6c^4db1a8_6wmlApez7ernLB`Q-e2StE z1$!?jinP<42($ikCwV=R#{u;KDezBCf}h`i0_;cUb{0= zc=gUM(jFN@!lP!ZG~yhYERHfIZ9f-lg1I`2kj}0G#U~0c=o~>@RLJQlOH9d5#0|P9 zmL7XNZmm`rZ^bDC4m0B0WU$VFe4>?Cf8{3#_P?jRma8$mzgW6upoF z)PKmxc-vV6cFy`Wg3hKd&a<$VEUQUqvhL1T3&@z+7GD}yFbec5WJ-VKj4MFm`+k*> zZHq0=2Wj-Uo|N{8$z#QQux58s?Kz;GXfs&(0EWaj{U5@z;&G{jUtw7(hlo`ItO3{o za0;Lo!l-R$^M^emwc*;c=A0s7a-LRXyyQ|G&$M@vJ8{dIKXsDX@h_$Sw-50hVCJVR z#OomQdjTMW*3Jl6AJMKw+hnatkicR=p|fLgqC2DKv?Dl#E!O+LkUB1);n ziDwW}7sp%G#R*%Q;u~_A8@fET_${5Fe5wmJ()nzdN$sTmHlvl#bKK1~tHpn|P+Tqk z&5ewY+Onau16jnMFqHXY78#oO8lxlRWa4u?O#xVqUMaDSADAW>TgRtqI@Mxjf=WE+ z?QqpNh?sbGvH@oK8z*-&V=?<+J=>7`-)*p*0PjmD;vIM82F!Q5{s^ux#qp~EYG43Q zgD2bLO5z|BCO}5Of({=O@$^j!okR1yP$e#qNlH>`;wyff^Ta8Gm%1jz#TFv|Z(xsx zG`5M%OET4!oul#Uj&rwwY_I(U889C�iYJ-KP@jA(j_m$P?R8nxUvZy|klk$=H59 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 Af&c&j delta 7560 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 diff --git a/Tools/bootloaders/CubeOrange_bl.hex b/Tools/bootloaders/CubeOrange_bl.hex index aea4d36ed1a81..3a9fd8d372217 100644 --- a/Tools/bootloaders/CubeOrange_bl.hex +++ b/Tools/bootloaders/CubeOrange_bl.hex @@ -1,34 +1,34 @@ :020000040800F2 :1000000000060020E1020008E3020008E302000805 :10001000E3020008E3020008E3020008E30200082C -:10002000E3020008E3020008E30200089D8A0008DA +:10002000E3020008E3020008E3020008E9760008A2 :10003000E3020008E3020008E3020008E30200080C :10004000E3020008E3020008E3020008E3020008FC -:10005000E3020008E3020008497F0008757F0008FA -:10006000A17F0008CD7F0008F97F0008E3020008A7 -:10007000E3020008E3020008E3020008E3020008CC -:10008000E3020008E3020008E3020008E3020008BC -:10009000E3020008E3020008E302000825800008EC +:10005000E3020008E3020008F58500082186000895 +:100060004D86000879860008A5860008014600082C +:10007000294600085546000881460008AD4600089C +:10008000D546000801470008E3020008E302000823 +:10009000E3020008E3020008E3020008D18600083A :1000A000E3020008E3020008E3020008E30200089C :1000B000E3020008E3020008E3020008E30200088C :1000C000E3020008E3020008E3020008E30200087C -:1000D000E3020008E30200081181000825810008FE -:1000E00089800008E3020008E3020008E302000838 -:1000F000E3020008E3020008E3020008E30200084C -:10010000E3020008FD8000084D810008E3020008BA +:1000D000E3020008E3020008BD870008D18700089A +:1000E00035870008E3020008E3020008E302000885 +:1000F000E3020008E3020008E30200082D470008BD +:10010000E3020008A9870008F9870008E302000855 :10011000E3020008E3020008E3020008E30200082B -:10012000E3020008E3020008E3020008E30200081B -:10013000E3020008E3020008E3020008E30200080B +:100120005947000881470008AD470008D947000833 +:1001300005480008E3020008E3020008E3020008A3 :10014000E3020008E3020008E3020008E3020008FB -:10015000E3020008E3020008E3020008E3020008EB +:100150002D4800085948000885480008E3020008B7 :10016000E3020008E3020008E3020008E3020008DB -:10017000E3020008317C0008E3020008E302000803 -:10018000E3020008E302000839810008E3020008E6 +:10017000E3020008D5820008E3020008E302000859 +:10018000E3020008E3020008E5870008E302000834 :10019000E3020008E3020008E3020008E3020008AB :1001A000E3020008E3020008E3020008E30200089B :1001B000E3020008E3020008E3020008E30200088B :1001C000E3020008E3020008E3020008E30200087B -:1001D000E30200081D7C0008E3020008E3020008B7 +:1001D000E3020008C1820008E3020008E30200080D :1001E000E3020008E3020008E3020008E30200085B :1001F000E3020008E3020008E3020008E30200084B :10020000E3020008E3020008E3020008E30200083A @@ -51,22 +51,22 @@ :100310004F8FBFF36F8F40F20000C0F2F0004EF637 :100320008851CEF200010860BFF34F8FBFF36F8F8B :100330004FF00000E1EE100A4EF63C71CEF20001E3 -:100340000860062080F31488BFF36F8F06F0DCFE90 -:1003500006F0ECF84FF055301F491B4A91423CBF64 +:100340000860062080F31488BFF36F8F07F02EFA41 +:1003500006F0A0FB4FF055301F491B4A91423CBFAD :1003600041F8040BFAE71D49184A91423CBF41F895 :10037000040BFAE71A491B4A1B4B9A423EBF51F83D :10038000040B42F8040BF8E700201849184A914280 -:100390003CBF41F8040BFAE706F0F4FE06F04AF918 +:100390003CBF41F8040BFAE707F046FA06F0FEFB13 :1003A000144C154DAC4203DA54F8041B8847F9E7A6 :1003B00000F0C4F9114C124DAC4203DA54F8041B9E -:1003C0008847F9E706F0DCBE000600200022002086 +:1003C0008847F9E707F02EBA000600200022002037 :1003D0000000000808ED00E00000002000060020FA -:1003E000B896000800220020D8220020D822002041 -:1003F00020670020E0020008E0020008E002000898 +:1003E000909C000800220020742200207822002027 +:1003F00034670020E0020008E0020008E002000884 :10040000E00200082DE9F04F2DED108AC1F80CD064 :10041000D0F80CD0BDEC108ABDE8F08F002383F338 -:1004200011882846A047002005F072FEFEE705F07F -:10043000B1FD00DFFEE7000053B94AB9002908BF4B +:1004200011882846A047002006F016F9FEE706F0DE +:100430006FF800DFFEE7000053B94AB9002908BF92 :1004400000281CBF4FF0FF314FF0FF3000F074B9AF :10045000ADF1080C6DE904CE00F006F8DDF804E01B :10046000DDE9022304B070472DE9F047089D0446FA @@ -114,29 +114,29 @@ :100700000646E3E61846F8E64B45A9D2B9EB0208DF :1007100064EB0C0E0138A3E74646EAE7204694E76F :100720004046D1E7D0467BE7023B614432E73046A2 -:1007300009E76444023842E7704700BF38B500F06B -:10074000DDFB06F0EFFB054606F0D4FC0446E0B9FD -:10075000104B9D421BD001339D4241F2883504BFAE -:1007600001240025002006F0E7FB0CB100F07AF828 -:1007700001F03AFB01F0F6F900F028FD08B100F0B5 -:1007800071F8284600F01CF9F9E70025EAE705466C -:10079000E8E700BF010007B008B501F0AFF9A0F12C +:1007300009E76444023842E7704700BF38B501F06A +:10074000FFF901F0AFFB06F0BDFE054606F0C2FF63 +:100750000446D0B90F4B9D4219D001339D4241F25E +:10076000883504BF01240025002006F0B5FE0CB139 +:1007700000F078F801F036FB00F026FD08B100F03B +:1007800071F8284600F01CF9F9E70025ECE705466A +:10079000EAE700BF010007B008B501F09DF9A0F13C :1007A00020035842584108BD07B541F21203022107 -:1007B00001A8ADF8043001F0BFF903B05DF804FB07 -:1007C00038B5302383F31188174803680BB105F05F -:1007D00083FD0023154A4FF47A71134805F072FD2A +:1007B00001A8ADF8043001F0ADF903B05DF804FB19 +:1007C00038B5302383F31188174803680BB106F05E +:1007D00027F80023154A4FF47A71134806F016F8EB :1007E000002383F31188124C236813B12368013B63 :1007F0002360636813B16368013B63600D4D2B7820 -:1008000033B963687BB9022001F068FA3223636070 -:100810002B78032B07D163682BB9022001F05EFA15 -:100820004FF47A73636038BDD8220020C1070008F6 -:10083000F8230020F0220020084B187003280CD861 -:10084000DFE800F008050208022001F03DBA0220AE -:1008500001F030BA024B00225A607047F0220020AB -:10086000F8230020F8B5504B504A1C461968013156 +:1008000033B963687BB9022001F056FA3223636082 +:100810002B78032B07D163682BB9022001F04CFA27 +:100820004FF47A73636038BD78220020C107000856 +:100830009823002090220020084B187003280CD821 +:10084000DFE800F008050208022001F02BBA0220C0 +:1008500001F01EBA024B00225A607047902200201D +:1008600098230020F8B5504B504A1C4619680131B6 :1008700000F0998004339342F8D162684C4B9A425D :1008800040F291804B4B9B6803F1006303F500330A -:100890009A4280F08880002001F07EF90220FFF764 +:100890009A4280F08880002001F06CF90220FFF776 :1008A000CBFF454B0021D3F8E820C3F8E810D3F87C :1008B0001021C3F81011D3F81021D3F8EC20C3F89D :1008C000EC10D3F81421C3F81411D3F81421D3F881 @@ -156,15 +156,15 @@ :1009A00080F308882047F8BD0000020820000208F4 :1009B000FFFF0108002200200044025800ED00E083 :1009C0002DE9F04F93B0B44B2022FF2100900AA8EC -:1009D0009D6801F0B3F9B14A1378A3B90121B04879 +:1009D0009D6801F0B1F9B14A1378A3B90121B0487B :1009E00011700360302383F3118803680BB105F0A5 -:1009F00073FC0023AB4A4FF47A71A94805F062FCFE +:1009F00017FF0023AB4A4FF47A71A94805F006FFB0 :100A0000002383F31188009B13B1A74B009A1A604F :100A1000A64A1378032B03D000231370A24A536015 :100A20004FF0000A009CD3465646D146012001F003 -:100A30004BF924B19C4B1B68002B00F02682002050 -:100A400001F05CF80390039B002BF2DB012001F026 -:100A500031F9039B213B1F2BE8D801A252F823F068 +:100A300039F924B19C4B1B68002B00F02682002062 +:100A400001F04AF80390039B002BF2DB012001F038 +:100A50001FF9039B213B1F2BE8D801A252F823F07A :100A6000E10A0008090B00089D0B00082D0A000888 :100A70002D0A00082D0A00082F0C0008FF0D0008A1 :100A8000190D00087B0D0008A30D0008C90D000812 @@ -175,2253 +175,2341 @@ :100AD0002D0A00082D0A00082D0A00089D0B0008A9 :100AE0000220FFF759FE002840F0F981009B022107 :100AF00005A8BAF1000F08BF1C4641F21233ADF849 -:100B0000143001F019F891E74FF47A7000F0F6FF15 +:100B0000143001F007F891E74FF47A7000F0E4FF39 :100B1000071EEBDB0220FFF73FFE0028E6D0013F77 :100B2000052F00F2DE81DFE807F0030A0D1013360F -:100B30000523042105A8059300F0FEFF17E004211A +:100B30000523042105A8059300F0ECFF17E004212C :100B40005548F9E704215A48F6E704215948F3E7E4 -:100B50004FF01C08404608F1040801F01FF804217A -:100B6000059005A800F0E8FFB8F12C0FF2D10120A4 +:100B50004FF01C08404608F1040801F00DF804218C +:100B6000059005A800F0D6FFB8F12C0FF2D10120B6 :100B70004FF0000900FA07F747EA0B0B5FFA8BFB0F -:100B800001F028F926B10BF00B030B2B08BF002452 +:100B800001F026F926B10BF00B030B2B08BF002454 :100B9000FFF70AFE4AE704214748CDE7002EA5D01B :100BA0000BF00B030B2BA1D10220FFF7F5FD07463D -:100BB00000289BD00120002600F0EEFF0220FFF766 -:100BC0003BFE1FFA86F8404600F0F6FF0446B0B13F +:100BB00000289BD00120002600F0DCFF0220FFF778 +:100BC0003BFE1FFA86F8404600F0E4FF0446B0B151 :100BD000039940460136A1F140025142514100F0D3 -:100BE000FBFF0028EDD1BA46044641F21213022160 -:100BF00005A83E46ADF8143000F09EFF16E72546E6 +:100BE000E9FF0028EDD1BA46044641F21213022172 +:100BF00005A83E46ADF8143000F08CFF16E72546F8 :100C00000120FFF719FE244B9B68AB4207D9284609 -:100C100000F0C4FF013040F067810435F3E70025A0 +:100C100000F0B2FF013040F067810435F3E70025B2 :100C2000224BBA463E461D701F4B5D60A8E7002E62 :100C30003FF45CAF0BF00B030B2B7FF457AF02209C -:100C4000FFF7FAFD322000F059FFB0F10008FFF67F +:100C4000FFF7FAFD322000F047FFB0F10008FFF691 :100C50004DAF18F003077FF449AF0F4A08EB0503C7 :100C6000926893423FF642AFB8F5807F3FF73EAFC0 -:100C7000124BB845019323DD4FF47A7000F03EFF2C +:100C7000124BB845019323DD4FF47A7000F02CFF3E :100C80000390039A002AFFF631AF039A0137019BC4 -:100C900003F8012BEDE700BF00220020F423002021 -:100CA000D8220020C1070008F8230020F0220020ED -:100CB00004220020082200200C220020F422002020 +:100C900003F8012BEDE700BF002200209423002081 +:100CA00078220020C107000898230020902200200D +:100CB00004220020082200200C2200209422002080 :100CC000C820FFF769FD074600283FF40FAF1F2D2E :100CD00011D8C5F120020AAB25F003008449424532 -:100CE000184428BF4246019201F002F8019AFF2100 -:100CF0007F4801F023F84FEAA803C8F387027C4934 -:100D00002846019301F022F8064600283FF46DAF13 +:100CE000184428BF4246019201F000F8019AFF2102 +:100CF0007F4801F021F84FEAA803C8F387027C4936 +:100D00002846019301F020F8064600283FF46DAF15 :100D1000019B05EB830533E70220FFF73DFD00282B -:100D20003FF4E4AE00F076FF00283FF4DFAE00278A +:100D20003FF4E4AE00F064FF00283FF4DFAE00279C :100D3000B846704B9B68BB4218D91F2F11D80A9B2D :100D400001330ED027F0030312AA134453F8203CBA -:100D500005934046042205A9043701F0A5F8804612 -:100D6000E7E7384600F01AFF0590F2E7CDF8148067 -:100D7000042105A800F0E0FE02E70023642104A896 -:100D8000049300F0CFFE00287FF4B0AE0220FFF7FE -:100D900003FD00283FF4AAAE049800F031FF05904F -:100DA000E6E70023642104A8049300F0BBFE0028BA +:100D500005934046042205A9043701F0FFF88046B8 +:100D6000E7E7384600F008FF0590F2E7CDF8148079 +:100D7000042105A800F0CEFE02E70023642104A8A8 +:100D8000049300F0BDFE00287FF4B0AE0220FFF710 +:100D900003FD00283FF4AAAE049800F01FFF059061 +:100DA000E6E70023642104A8049300F0A9FE0028CC :100DB0007FF49CAE0220FFF7EFFC00283FF496AED4 -:100DC000049800F01FFFEAE70220FFF7E5FC002887 -:100DD0003FF48CAE00F02EFFE1E70220FFF7DCFCD1 -:100DE00000283FF483AE05A9142000F029FF074630 -:100DF0000421049004A800F09FFE3946B9E7322090 -:100E000000F07CFE071EFFF671AEBB077FF46EAEEE +:100DC000049800F00DFFEAE70220FFF7E5FC002899 +:100DD0003FF48CAE00F01CFFE1E70220FFF7DCFCE3 +:100DE00000283FF483AE05A9142000F017FF074642 +:100DF0000421049004A800F08DFE3946B9E73220A2 +:100E000000F06AFE071EFFF671AEBB077FF46EAE00 :100E1000384A07EB0903926893423FF667AE022017 :100E2000FFF7BAFC00283FF461AE27F003074F44F8 -:100E3000B9453FF4A5AE484609F1040900F0AEFEFD -:100E40000421059005A800F077FEF1E74FF47A70D1 -:100E5000FFF7A2FC00283FF449AE00F0DBFE0028BB +:100E3000B9453FF4A5AE484609F1040900F09CFE0F +:100E40000421059005A800F065FEF1E74FF47A70E3 +:100E5000FFF7A2FC00283FF449AE00F0C9FE0028CD :100E600044D00A9B01330BD008220AA9002000F0CD -:100E70006DFF00283AD02022FF210AA800F05EFF73 -:100E8000FFF792FC1C4805F049F913B0BDE8F08F5C +:100E70006BFF00283AD02022FF210AA800F05CFF77 +:100E8000FFF792FC1C4805F0EDFB13B0BDE8F08FB6 :100E9000002E3FF42BAE0BF00B030B2B7FF426AE92 -:100EA0000023642105A8059300F03CFE07460028B6 +:100EA0000023642105A8059300F02AFE07460028C8 :100EB0007FF41CAE0220FFF76FFC804600283FF451 -:100EC00015AEFFF771FC41F2883005F027F905985F -:100ED00000F0C8FF46463C4600F07CFFA6E506460B +:100EC00015AEFFF771FC41F2883005F0CBFB0598B9 +:100ED00000F0C6FF46463C4600F07AFFA6E506460F :100EE0004EE64FF0000901E6BA467EE637467CE65C -:100EF000F422002000220020A0860100704700009C -:100F00007047000070470000704700002DE9F04175 -:100F100000F58037044616463B7C5BB9C06810304C -:100F2000204400F0E5FEE5683544B5F5004FE56086 -:100F300002D816B1BDE8F081DEB905F07F0605F1F3 -:100F400010000021C6F180062044F6B232462E443D -:100F500000F0F4FEA06804F11008324600F10060D1 -:100F6000414600F5003005F0A5FD30B901233B7482 -:100F7000E0E74FF400463546ECE7A26805F11001C2 -:100F8000404632442144A260E268521BE26000F015 -:100F9000AFFE0220BDE8F04100F0A0BE183000F026 -:100FA000E9BC000010B5044607F028FE204610BD3D -:100FB00010B5044607F022FE204610BDC3B280B231 -:100FC000A3F14102052A02D8373800B27047613BCD -:100FD000052B94BF57383038F7E70000F8B50446C2 -:100FE0001546084603220C4900F08CFE014688B9DC -:100FF00008346F1C15F91100FFF7E0FF064617F9DA -:1010000011000131FFF7DAFF102940EA061004F859 -:10101000010BEFD1F8BD00BF748D00082DE9F04F32 -:10102000ADF53F7D0746416801222AA802F030FE57 -:10103000002840F087800646824681461125DFF869 -:101040000C81DFF80CB101AB4FF4805241462AA865 -:1010500002F07EFF002875D1019AB2F5805F71D849 -:10106000002A65D00446019A9442ECD2282D0FD074 -:1010700008DC132D2DD01E2D39D0112D13D00134A5 -:10108000A4B2F0E7322D2DD0372D2FD02D2DF6D153 -:101090003B68121B08EB040138461B692D25984755 -:1010A000BDF80440EBE7121B022A09D9594608EBA8 -:1010B000040000F027FE18B902342825A4B2DEE7A8 -:1010C00018F804303A2B3DD00A2B1CBFA14613253B -:1010D000D5E718F804300A2B34D03A2B04BFA246C7 -:1010E0003225CCE718F80430202BC8D0264618F853 -:1010F00004300A2B1AD1AAEB090208EB090102A855 -:1011000011254F2A28BF4F2207F020FEA21B08EB13 -:10111000060116A84F2A28BF4F2207F017FE3B688A -:1011200016AA02A9DB6838469847A8E71E25A6E755 -:101130003B68384604491B69984701200DF53F7DFF -:10114000BDE8F08F0020F9E7768E0008002400202B -:10115000788D000800F1180110B5044686B00846E5 -:10116000019100F0F1FB2046FFF758FF60B10199B3 -:1011700002A800F049FC102204F1080102A807F0BF -:1011800061FDB0FA80F0400906B010BD70B50446AC -:101190000025EEB2304600F00FFD58B10021304678 -:1011A000013500F019FD08B9002070BD022000F0E3 -:1011B00095FDEEE72046FFF731FF0028F4D004F557 -:1011C0008034207C80F00100EFE70000F0B5C9B06A -:1011D00005F0C0FE00F096FE18B90025284649B07B -:1011E000F0BD69462A4802F075FF00284BD1294C12 -:1011F000204602F09FFF284802F09CFF274802F09B -:1012000099FF2146224803F011F80028E5D170200B -:1012100007F0F6FC064610B1214B446003603368CA -:1012200030469B689847054600282ED01A4F19482B -:10123000394602F0FBFF05460028CED1194807F0D9 -:10124000DFFC044638B1184B4760036000F580337B -:10125000C0E902551D74236820469B6898470546DF -:1012600028B10E490C4802F0E1FF0028B5D13368DF -:1012700030465B6898471CB1236820465B689847F6 -:1012800000F028FEAAE70025FAE70446EFE700BFD2 -:101290007C8D00088C8D0008A38D0008B98D000896 -:1012A000DC8D000814000100F88D00082DE9F04FD6 -:1012B000D44A8DB00B68D0F804A001931A44036897 -:1012C000D14E1A44D1F81C90DFF8B4C3DFF8B4B3A0 -:1012D000D0E90234634003EA0A03634013444A68D6 -:1012E00002920AEB7363029CC84A2244C4682244F7 -:1012F00084688AEA04051D40654015448A680392A3 -:1013000003EB3555039CC24A2244846822448AEA8E -:1013100003042C4084EA0A041444CA6805EBF4343C -:101320000492164483EA0502224056445A4032444D -:101330000E69059604EBB222059FB64E3E441E444C -:1013400085EA040313406B4033444E69069602EB72 -:101350007363069FB04E3E442E4484EA02051D404E -:10136000654035448E69079603EB3555079FAB4EB4 -:101370003E44264482EA03042C4054403444A84EA0 -:101380004E4405EBF434164483EA050222405A40E9 -:1013900032440E6A089604EBB222089FA14E3E44E6 -:1013A0001E4485EA040313406B4033444E6A099699 -:1013B00002EB7363099F9C4ED1F830E03E44D1F8B4 -:1013C0003880F3442E4484EA02051D4065403544CC -:1013D0008E6AA6F5244703EB35550A964F3F2744FE -:1013E00082EA03042C4054403C44CF6A0B9705EB3F -:1013F000F4340B9E8D4F3744029E174483EA050256 -:1014000022405A403A448A4F774404EBB2221F44A8 -:1014100085EA040313406B403B444F6BBC4402EB32 -:101420007363654484EA020C0CEA030C8CEA040C36 -:101430006544DFF854C2C44403EB3555A44482EA42 -:1014400003042C4054406444D1F83CC0794905EB76 -:10145000F4346144114483EA050222405A400A44AC -:10146000754904EBB2223144079E194484EA020311 -:101470002B4063400B44714902EBF36331440B9EF4 -:101480000D4482EA03012140514029446C4D03EB95 -:10149000F1513544019E254483EA010414405C4027 -:1014A0002C44684D01EBB4443544069E154481EA52 -:1014B00004021A404A402A44634D04EB3232354458 -:1014C0000A9E1D4484EA02030B4063402B445F4D97 -:1014D00002EBF3633544059E0D4482EA030121408B -:1014E000514029445A4D03EBF1516544254483EAA8 -:1014F000010414405C402C44564D01EBB444354487 -:10150000099E154481EA04021A404A402A44524D79 -:1015100004EB32323544049E1D4484EA02030B403E -:1015200063402B444D4D02EBF36345440D4482EA86 -:101530000301214051402944494D03EBF151354409 -:10154000089E2C4483EA010515405D402C44454D1E -:1015500001EBB4443544039E2A4481EA04051D404E -:101560004D402A44404D04EB32323D442B4484EA42 -:10157000020593440D4065402B443C4D02EBF36360 -:101580003544069E294482EA0305254055402944F6 -:10159000374D03EBF1514D442C4483EA01051540CE -:1015A0005D40254401EBB54581EA050404EA0302E8 -:1015B0004A405A44A6F5B82B089E05EB3232ABF2EE -:1015C000BE6B54405B4423442A4C344402EB3373D7 -:1015D0000B9E0C4485EA020159402144264C3444B8 -:1015E00003EB7151029E254482EA03044C402544DA -:1015F000224C444401EB3545144483EA01026A401D -:10160000224443E078A46AD7EECEBDC156B7C7E8FE -:10161000DB702024AF0F7CF52AC68747134630A81D -:10162000019546FDD8988069AFF7448BBED75C8999 -:101630002211906B2108B44962251EF640B340C0C8 -:10164000515A5E26AAC7B6E95D102FD6531444023C -:1016500081E6A1D8C8FBD3E7E6CDE121D60737C3A1 -:10166000870DD5F4ED145A4505E9E3A9F8A3EFFC7D -:10167000D9026F6781F6718722619D6D0C38E5FD97 -:10168000937198FD8A4C2A8D8E4379A6934C3444ED -:1016900005EB7222059E1C4481EA05035340234456 -:1016A0008F4C344402EB33730A9E0C4485EA0201EA -:1016B000594021448B4C4C4403EB7151254482EA40 -:1016C00003044C402C44884D354401EB3444019EC6 -:1016D000154483EA010262402A44844D3D4404EBF0 -:1016E00072221D4481EA040353402B44804D35444B -:1016F00002EB3373049E294484EA02055D402944C9 -:101700007C4D354403EB7151079E254482EA030466 -:101710004C402C44784D354401EB3444099E2A4416 -:1017200083EA010565401544744A324404EB75258B -:10173000039E134481EA04026A401A44704B7344C6 -:1017400005EB32720B4484EA0501514019446D4B9C -:10175000634402EB71511C4485EA02034B401C4474 -:10176000694B334401EB3444019E1D4482EA01037A -:1017700063402B44654D04EB73233544069E1544AA -:1017800063EA010262402A44614D03EBB2624D44B8 -:1017900062EA040929445F4D89EA03094544494442 -:1017A0002C445D4D02EBB1513544049E61EA0308BF -:1017B0001D4488EA0208444401EB744464EA0203CD -:1017C0004B402B44554D04EBF323754463EA010E63 -:1017D00015448EEA040E0EEB0502514D03EBB26286 -:1017E000354462EA040E29440A9D8EEA030EA5F5EB -:1017F00080164C4D7144A6F6833602EBB151264457 -:1018000061EA030454403444029E01EB74443544BD -:1018100064EA02061D444E407319089E424D04EBD3 -:10182000F323354463EA01061544664072193F4DBF -:1018300003EBB262654462EA040629443C4D5E4013 -:101840003144079E02EBB151354461EA03062C4452 -:10185000384D56403D443444059E1D4401EB7444CC -:1018600064EA02034B402B44334D04EBF32335442D -:101870000B9E154463EA010262402A442F4D03EB9C -:10188000B2623544039E0D4462EA04015940294482 -:101890002B4D02EBB15135442A4E254461EA030435 -:1018A00054402C44099D01EB74442E4464EA020523 -:1018B0001E4485EA01039D1903681A440AEB0403D8 -:1018C00003EBF5230260436083681C44C36819443A -:1018D0008460C1600DB0BDE8F08F00BF44EABEA4D3 -:1018E000A9CFDE4B604BBBF670BCBFBEC67E9B284B -:1018F000FA27A1EA8530EFD4051D880439D0D4D960 -:10190000E599DBE6F87CA21F6556ACC4442229F4B5 -:1019100097FF2A43A72394AB39A093FCC3595B6577 -:1019200092CC0C8FD15D84854F7EA86FE0E62CFEB3 -:10193000144301A3A111084E827E53F735F23ABD3C -:10194000BBD2D72A91D386EB094B036003F18833CE -:10195000436003F12943A3F59613A3F68B638360D9 -:10196000A3F18833C3600023C0E90433704700BF8C -:10197000012345672DE9F8431446026905460E46E2 -:10198000E300C2F3C50800F118079B18036122BFEA -:1019900043690133436112F4FC7F436903EB5473E1 -:1019A000436114D0C8F1400907EB08004C4504D24C -:1019B0002246BDE8F84307F055B9403C4A464E443C -:1019C00007F050F9444439462846FFF76FFCA0461B -:1019D00006EB0409B8F13F0FA9EB08010AD9402230 -:1019E000384607F03FF939462846A8F14008FFF786 -:1019F0005DFCEFE7A1096FF03F02384602FB0142B0 -:101A000006EB8111D5E7000070B50B6901F11805EF -:101A100006460C46C3F3C503EA18501C8022EA545C -:101A2000C3F13F02072A1FD8002100F087F9294699 -:101A30002046FFF73BFC38220021284600F07EF9C3 -:101A4000236929462046236563696365FFF72EFCF9 -:101A500021461022304607F005F920465822002181 -:101A6000BDE8704000F06AB9C3F137020021E5E734 -:101A70002DE9F84F4FF47A7306460D46002402FB19 -:101A800003F7DFF85080DFF8509098F900305FFAE4 -:101A900084FA5A1C01D0A34210D159F824002A46D6 -:101AA00031460368D3F820B03B46D847854205D17C -:101AB000074B012083F800A0BDE8F88F0134042C07 -:101AC000E3D14FF4FA7004F029FB0020F4E700BFE3 -:101AD00044340020102200201422002070B5044657 -:101AE0004FF47A76412C254628BF412506FB05F0A8 -:101AF00004F014FB641BF5D170BD0000002307B592 -:101B0000024601210DF107008DF80730FFF7B0FF05 -:101B100020B19DF8070003B05DF804FB4FF0FF30E3 -:101B2000F9E700000A46042108B5FFF7A1FF80F09D -:101B30000100C0B2404208BD074B0A4630B41978D4 -:101B4000064B53F82140014623682046DD69044BCB -:101B5000AC4630BC604700BF443400201422002053 -:101B6000A086010070B50A4E00240A4D04F046FF1D -:101B7000308028683388834208D904F03BFF2B6803 -:101B800004440133B4F5003F2B60F2D370BD00BFB5 -:101B9000463400200034002004F0FEBF00F1006055 -:101BA00000F500300068704700F10060920000F519 -:101BB000003004F07FBF0000054B1A68054B1B88FE -:101BC0009B1A834202D9104404F014BF00207047CE -:101BD000003400204634002038B50446074D29B1B2 -:101BE00028682044BDE8384004F01CBF2868204421 -:101BF00004F006FF0028F3D038BD00BF00340020F9 -:101C00000020704700F1FF5000F58F10D0F8000859 -:101C100070470000064991F8243033B100230822B0 -:101C2000086A81F82430FFF7BFBF0120704700BF6A -:101C300004340020014B1868704700BF0010005C9E -:101C4000194B01380322084470B51D68174BC5F3C2 -:101C50000B042D0C1E88A6420BD15C680A46013C81 -:101C6000824213460FD214F9016F4EB102F8016B94 -:101C7000F6E7013A03F10803ECD181420B4602D2A8 -:101C80002C2203F8012B0424094A1688AE4204D101 -:101C9000984284BF967803F8016B013C02F104027C -:101CA000F3D1581A70BD00BF0010005C2422002040 -:101CB000388E0008022803D1024B4FF080529A61FF -:101CC000704700BF00100258022803D1024B4FF4A6 -:101CD00080529A61704700BF00100258022804D158 -:101CE000024A536983F480535361704700100258CD -:101CF000002310B5934203D0CC5CC4540133F9E700 -:101D000010BD0000013810B510F9013F3BB191F949 -:101D100000409C4203D11AB10131013AF4E71AB1F3 -:101D200091F90020981A10BD1046FCE703460246C0 -:101D3000D01A12F9011B0029FAD170470244034658 -:101D4000934202D003F8011BFAE770472DE9F843EC -:101D50001F4D14460746884695F8242052BBDFF8ED -:101D600070909CB395F824302BB92022FF2148466F -:101D70002F62FFF7E3FF95F824004146C0F1080207 -:101D800005EB8000A24228BF2246D6B29200FFF7A0 -:101D9000AFFF95F82430A41B17441E449044E4B2CE -:101DA000F6B2082E85F82460DBD1FFF733FF002858 -:101DB000D7D108E02B6A03EB82038342CFD0FFF731 -:101DC00029FF0028CBD10020BDE8F8830120FBE7E4 -:101DD00004340020024B1A78024B1A70704700BF7F -:101DE0004434002010220020F8B5194C194803F0A3 -:101DF00083FC2146174803F0ABFC24684FF47A704B -:101E0000154ED4F89020154DD2F80438114F43F0F8 -:101E10000203C2F80438FFF761FE2046104903F0C0 -:101E2000A5FDD4F890200424D2F8043823F002034E -:101E3000C2F804384FF4E133336055F8040BB8426C -:101E400002D0314603F0B6FB013CF6D1F8BD00BF2D -:101E500038950008F04800202C340020142200207F -:101E6000409500080C4B70B50C4D04461E780C4B89 -:101E700055F826209A420DD00A4B00211822184608 -:101E8000FFF75CFF0460014655F82600BDE870408E -:101E900003F090BB70BD00BF44340020142200202A -:101EA000F04800202C34002030B50A44084D9142FF -:101EB0000DD011F8013B5840082340F30004013BCA -:101EC0002C4013F0FF0384EA5000F6D1EFE730BD59 -:101ED0002083B8ED10B5084C01220849002001F01C -:101EE000B3FE23783BB1064803F0DCFA044803F064 -:101EF0000FFB0023237010BD48340020488E0008DB -:101F0000A43600201D482DE9F041036D2BB90122B4 -:101F10004FF48051503005F05FF8194E33780BB113 -:101F2000FFF7D8FF0324174F4FF00008134D154952 -:101F30002846C7F8048003F0DDFA284603F016F9B6 -:101F400048B1013C284603F0E3FA14F0FF04EED157 -:101F5000204634700FE00C4901220C4801F074FE59 -:101F6000014618B1284603F09DFAEAE7084800F058 -:101F700011F801203070BDE8F08100BFA4360020C8 -:101F8000483400203C220020488E00084C340020B9 -:101F90004C8E00080FB4002004B0704700687047F2 -:101FA00003460068596870470B0A017043700B0CB8 -:101FB000090E8370C1707047110A0270037141707D -:101FC000110C120E8170C2701A0A42711A0C1B0E8B -:101FD0008271C37170470000C36A0239023B8B42B1 -:101FE00083BF4389006C01FB0300002070470000A1 -:101FF000C2F307238A76CB760378032B01BF120C3A -:102000000A75120A4A75704700F10B010022D301CC -:1020100043EA520310F8012B52FA83F38842DAB2F2 -:10202000F5D110467047000010B5417804460020F5 -:10203000013102464901022A16BFA35C032203EBC9 -:10204000C03302F101021EBF9BB203EB500398B2F2 -:102050009142F0D810BD000002684AB1134613F84F -:10206000011B1F290DD93A29F9D1911C8B4202D0AD -:102070004FF0FF3070471278302AF9D1036000200A -:102080007047014B187870479836002038B50D46D8 -:10209000044618B9092000232B6038BD0368002BC3 -:1020A000F8D01A78002AF5D08188DA889142F1D1E7 -:1020B000587804F0BFF910F00100EBD12368EBE78A -:1020C00038B50D4640F25231144602F0B9F9FF28F6 -:1020D00007D9012C0BD9030A022468702B70204603 -:1020E00038BD30B1002CFAD001242870F7E7002465 -:1020F000F5E70446F3E700002DE9F8430026D0F8A1 -:10210000008005460C468E76836B002B4AD098F8EB -:102110000030042B4BD133463546402720E0B7F53D -:10212000187F80F0C480F90606F1010608BF023767 -:10213000D05B02372BB900F5205292B2B2F5006F96 -:102140000DD305F11A01C5F1FF0240EA0340214415 -:10215000FFF7B6FF002800F0AA80054400200346E0 -:10216000D8F8102092F82310B142D8D8002B40F0B4 -:102170009E80002D00F09B8000232544AB76637386 -:10218000D8F81020137903F03701DB0621730BD444 -:1021900002F13800FFF704FFC4E90001938963816D -:1021A000D3892381BDE8F88300200146F4E7C36C9E -:1021B00001335ED1EA6B00232E26551E184615F812 -:1021C000011F013020290CD0052908BFE52109286D -:1021D00004D10B2B9EBFE71801337E73E718013340 -:1021E00079730B28EBD1E11800204873A17E0029F8 -:1021F0004BD1002B40D06FF00C0604F10D000825E8 -:10220000361B331810F8011B002938D02E298BB249 -:102210004AD0A3F14101192903D8117B0D4200D006 -:1022200020330373EDE7B9F1000F05D100F520531A -:102230009BB2B3F5006F0BD307F11A01C7F1FF0290 -:1022400040EA09402144FFF73BFF48B10744002022 -:1022500002368146D8F80C30985B0028E3D1384626 -:10226000B9F1000F4FF0000218BF002023189A7632 -:10227000A0E7B1463746EDE73F23A3760123234489 -:1022800000219976137B03B96373D37A02F11C00A2 -:1022900003F03F0323730023FFF780FE2060636099 -:1022A000D38A6381138B7CE710250B46B9E73F2364 -:1022B0000125A37660E7000038B50546002435F80F -:1022C000020B08B9204638BD02F0EEF86308C2B22E -:1022D00003EBC43312FA83F39AB2C0F3072303EB80 -:1022E000520303EBC2339CB2E9E7000037B5C37871 -:1022F00004461BB90025284603B030BD00F14C014F -:10230000826C01234078019104F0BAF8054680B947 -:10231000A36BE070A06C226BC31A9342EAD2A3783D -:102320000199022BE6D102440123607804F0A8F859 -:10233000E1E70125DFE7000038B5836C05460C4670 -:102340008B4210D0FFF7D2FF60B92246012305F17E -:102350004C01687804F070F800281CBF4FF0FF347F -:102360000120AC6438BD0020FCE7000038B5002334 -:102370000446C3704FF0FF338364FFF7DDFF00288E -:102380004BD1B4F84A524AF655239D4207D10B224D -:10239000254904F14C0006F055FC00283FD094F884 -:1023A0004C30EB2B03D01833DBB2012B2ED84AF67E -:1023B00055239D4206D108221C4904F19E0006F0D7 -:1023C00041FC48B3B4F85730B3F5007F1ED194F800 -:1023D0005930DBB15A1E1A4218D1B4F85A30ABB199 -:1023E00094F85C30013B012B10D8B4F85D306BB130 -:1023F000B4F85F307F2B06D804F16C00FFF7CEFDF8 -:10240000B0F5803F02D3B4F8623053B94AF6552094 -:1024100085420CBF0220032038BD0420FCE70120C8 -:10242000FAE70020F8E700BF788E0008848E0008E5 -:1024300002392DE9F04701F007044FF0010A466C1C -:1024400005460AFA04F41746984606EB1136C1F31E -:10245000C809E4B2314628460136FFF76DFF18B1CE -:102460000120BDE8F087994605EB090292F84C304F -:10247000234214BF01210021414513D06340013F95 -:1024800082F84C3085F803A0EBD0640014F0FF0410 -:10249000EAD109F1010301244FF00009B3F5007FEF -:1024A000E1D1D7E70220DCE701290246F8B50C4666 -:1024B00040F28C800668F36A8B4240F28780337862 -:1024C000013B032B00F28280DFE803F00229384B46 -:1024D00004EB5405B16B304601EB5521FFF72CFF9F -:1024E00010B14FF0FF30F8BD6F1CC5F30805B16B9C -:1024F0003046354401EB572195F84C50FFF71CFF4F -:102500000028EED1C7F30807E3073E4496F84C00D5 -:1025100045EA00204CBF0009C0F30B00E3E7B16BB4 -:10252000304601EB1421FFF707FF0028D9D16400E2 -:1025300004F4FF742644B6F84C00D4E7B16B30467F -:1025400001EBD411FFF7F8FE0028CAD1A40006F170 -:102550004C0004F4FE742044FFF720FD20F070408E -:10256000C1E7D0E90430D57953EA000101D0916880 -:1025700001B95DBB9168022DA4EB01010DD1013BB6 -:10258000728940F1FF305B0A43EAC053B3FBF2F3B8 -:1025900099421BD81CD0601CA5E7032D02D193697A -:1025A0008B42F8D8D3699BB9B16B304601EBD4119B -:1025B000FFF7C2FE002894D1A0004C3600F4FE7054 -:1025C0003044FFF7EBFC20F000408CE701208AE765 -:1025D0006FF0004087E70000F8B5066804460D4636 -:1025E0003378042B0CBF4FF080524FF400128A4214 -:1025F00001D80220F8BDCA06FBD182680163D2B9B6 -:10260000022B13D83389B3EB551FF2D9F36BA363B5 -:10261000A36B6263002BECD003EB55234C36C5F360 -:1026200008050020A3633544E563E3E7F36BC2715B -:10263000002BE7D01A4677897F02BD42114604D2AB -:102640003046FFF7C9FCA063E2E72046FFF72CFF06 -:10265000431C024606D00128CBD9F36A8342C8D96D -:10266000ED1BEAE70120C5E701292DE9F047064601 -:102670000C46174608D9C36A8B4205D90378022B4A -:1026800062D003D8012B22D0022552E0033B012B5C -:10269000FAD8816B01EBD411FFF74EFE05460028F6 -:1026A00047D1A40006F14C0304F4FE741C443378B3 -:1026B000042B07D0204627F07047FFF76FFC00F08F -:1026C0007040074339462046FFF76EFC2FE001EBD0 -:1026D0005108816B01EB5821FFF72EFE054640BBE8 -:1026E00014F0010406F14C0908F1010AC8F30808C6 -:1026F00008BFFBB230461FBF19F8083003F00F02C5 -:102700003B0103F0F00318BF134309F8083001231D -:10271000B16BF37001EB5A21FFF70EFE054640B98D -:10272000CAF3080A44B1C7F3071709F80A7001236E -:10273000F3702846BDE8F08719F80A30C7F303277D -:1027400023F00F031F43F0E7816B01EB1421FFF728 -:10275000F3FD05460028ECD1640006F14C0304F4B7 -:10276000FF741F551919C7F307274F70DFE70000E3 -:10277000F8B504460E461746E3690BB91846F8BD8E -:10278000012BA6EB0305206814BFAA1C3A46691C5E -:10279000FFF76AFF0028F2D1E369013BE361EBE751 -:1027A00001292DE9F84306460C461746056802D86C -:1027B0000220BDE8F883EB6A8B42F9D97AB9A146C9 -:1027C00021463046A046FFF76FFE0446B0B92B788D -:1027D000042B02D1002F43D1F7710020E9E72B78B9 -:1027E000042B02D1C379022BE9D04FF0FF323946D6 -:1027F0002846FFF739FF0028E1D0DAE70128D7D0D3 -:10280000421C01D10120D4E72B78042B19D1EA6AAC -:10281000AB69023A93421CD308F10102A2420CD0E8 -:102820002B78042B08D10023A2EB09024946284645 -:10283000FFF7FEFD0028BCD1A146EB6AA342BFD83A -:10284000C5E7002241462846FFF70EFF0028DED0EC -:10285000AFE70133AB612B7943F001032B71DBE769 -:10286000F3798BB9B468BC4202D10223F371B4E7A7 -:1028700021463046FFF718FE012899D9431CC1D0E4 -:1028800001348442EFD0A8E7032BA6D1B368BB4242 -:10289000A3D8B2691344BB429FD3E6E770B5C379AE -:1028A0000446032B06D181688369CD18A94203D160 -:1028B0000023E371002070BD4E1C20683246FFF7F4 -:1028C000D3FE0028F7D13146F0E700002DE9F743A9 -:1028D00005460191FFF70AFD0446002849D105F19C -:1028E0004C09019928464FF40072FFF775FB214609 -:1028F000A86407464846FFF721FA6C896402B4F5DC -:10290000004F28BF4FF40044B4F5007F2FD9204674 -:1029100004F022FA804630B122460021640A0026E3 -:10292000FFF70CFA09E06408EEE72346BA194146BE -:10293000687803F0A5FD18B926446B899E42F4D34C -:10294000404604F019FA6889801B18BF012003B0C3 -:10295000BDE8F08301366B899E42F4D20123BA1997 -:102960004946687803F08CFD0028F3D0EBE7002699 -:10297000F1E70120EBE70000F8B50446FFF7B6FCED -:102980000546002842D12378032B37D12779012F20 -:1029900034D104F14C0601464FF400723046FFF783 -:1029A000CDF955234122722184F84A32AA2304F535 -:1029B0000D7084F84F2084F84B32522384F8301283 -:1029C00084F84C3084F84D30612384F8311284F857 -:1029D0004E3084F83332A16984F83222FFF7E4FAEA -:1029E000616904F50E70FFF7DFFA626B3B46314612 -:1029F00001326078A26403F043FD25710022607803 -:102A0000114603F061FD003818BF0120F8BD000039 -:102A100000232DE9F0430B6085B00F461546FFF704 -:102A20001BFB061EC0F2B281804B53F82640002CDF -:102A300000F0AE813C6005F0FE0523786BB1607854 -:102A400003F0F8FCC70708D41DB110F0040500D04E -:102A50000A25284605B0BDE8F0830023F0B22370B4 -:102A6000607003F0D3FCC10700F194810DB14207FF -:102A7000EED400212046FFF779FC022840F099802F -:102A80006E4604F2122304F25221324618461033E5 -:102A9000FFF784FA42F8040B8B42F7D1002556F871 -:102AA000041B00297DD02046FFF760FC012879D85F -:102AB0000128A26C40F0C08004F1570304F18C019E -:102AC00013F8015B002D7BD18B42F9D1B4F8B430FF -:102AD000B3F5807F74D194F8B830092B70D104F12C -:102AE0009400FFF75DFA4FF0FF33171841F1000132 -:102AF000BB4275EB010363D304F1A000FFF74EFA6C -:102B000094F8BA302063012BA37059D194F8B9908E -:102B100003FA09F91FFA89F36381002B50D0444B63 -:102B200004F1A800FFF73AFA0646984248D8831CF9 -:102B3000626304F1A400E362FFF730FA00EB0208DD -:102B400004F19C00C4F84080FFF728FA10441FFAF3 -:102B500089F2A06306FB02F313EB080345EB0502C1 -:102B60009F4271EB02032BD32E4604F1AC00FFF71A -:102B700015FAE06365B96389B34221D9E16B204658 -:102B8000FFF72AFA81192046FFF7D6FB98B90136DC -:102B9000631993F84C30812B14D02035C5F3080508 -:102BA000E8E703200135042D7FF479AF042807D12D -:102BB00001E0042801D101254BE701287FF678AF19 -:102BC0000D2546E705F1140004F14C063044FFF7EB -:102BD000E5F901280546F3D9E36A8342F0D9618912 -:102BE000821E236C02FB01336364A16B204601EB60 -:102BF000D511FFF7A1FB0028DDD105F07F0006EB22 -:102C00008000FFF7CBF9431C03D00135A842ECD07C -:102C1000D6E70425C4E90500064A25700025138877 -:102C2000E56101339BB21380E38012E79C360020FC -:102C3000FDFFFF7FA0360020B4F85730B3F5007FCA -:102C4000BED1B4F8626026B904F17000FFF7A6F9AE -:102C5000064694F85C302663591EA3700129AFD84C -:102C600094F859506581002DAAD0691E2942A7D138 -:102C7000B4F85D8018F00F0FA4F80880A0D1B4F864 -:102C80005F0018B904F16C00FFF788F9B4F85A1026 -:102C9000002995D006FB03FE01EB181CF4446045A7 -:102CA0008ED3A0EB0C00A842B0FBF5F388D33E48CE -:102CB000834285D84FF6F57083426DD903259F1C5A -:102CC000114402EB0C03032DE7626263A1632364EA -:102CD0004CD1B4F8763053EA08037FF471AFBB00EF -:102CE00004F17800FFF75AF9E06303F2FF13B6EB43 -:102CF000532FFFF465AF4FF0FF33032DC4E90533C5 -:102D00004FF08003237187D1B4F87C30012B83D13D -:102D1000511C2046FFF710FB00287FF47DAFB4F86C -:102D20004A224AF6552320719A427FF475AF1F4B11 -:102D300004F14C00FFF732F998427FF46DAF03F1D4 -:102D4000FF5304F50C70FFF729F903F50053203306 -:102D500098427FF461AF04F50D70FFF71FF9A06191 -:102D600004F50E70FFF71AF9606155E7B8F1000F2E -:102D70003FF426AF7144022D4FEA4703E1631EBFC3 -:102D8000D91907F0010303EB5103AEE70B2560E609 -:102D90000C255EE603255CE640F6F575AB428CBF7C -:102DA000022501258BE700BFF5FFFF0F525261415D -:102DB0002DE9F84F07460568884649B96E69C6B1DE -:102DC000EB6AB34298BF0126AB69A3B9002405E0C2 -:102DD000FFF76AFB0128044603D801242046BDE81A -:102DE000F88F421C00F0D280EB6A8342F6D8464648 -:102DF000EAE70126E8E72A78EB6A042A40F08380B4 -:102E0000A6F1020A023B4FF0010B9A4528BF4FF092 -:102E1000000AD146696C284601EB1931FFF78CFA9C -:102E200000283BD109F00703EA6AC9F3C8010BFA8D -:102E300003F3901EDBB26A184C4609F1010992F8BF -:102E40004C20814502EA030233BF5B0000234FF4AC -:102E50000071DBB228BF9946B2B90234631E033356 -:102E6000BCD80123214628461A46FFF7E1FA02287A -:102E7000B3D0012800F08A80B8F1000F13D10223EB -:102E8000FB710028A9D130E0CA450AD0002BD2D16D -:102E90000131B1F5007FBDD20123CCE74FF0FF3403 -:102EA000DCE70024DAE7FB79022B07D1731CA3428D -:102EB000E7D0BB68F31ABB610323FB7108F1010281 -:102EC000FB69A24205D113B10133FB61D9E70223AB -:102ED000FBE70BB90123FB61224641463846FFF769 -:102EE00047FC00284FD10123FB61EA6AAB69023A33 -:102EF0006C6193429CBF03F1FF33AB612B7943F0CC -:102F000001032B716AE7464514D1741C3846A3426D -:102F100098BF02242146FFF7C7FA01283FF45DAFAE -:102F2000431C33D0E0B16B69012B03D9EA6A9342A9 -:102F300038BF1E4634460134EB6AA34203D8012E43 -:102F40007FF644AF022421463846FFF7ADFA48B178 -:102F500001283FF442AF013018D0B442EBD135E73D -:102F6000002CE7D04FF0FF3221462846FFF77CFBCC -:102F700048B9B8F1000FB8D0224641462846FFF7BD -:102F800073FB0028B1D001287FF427AF4FF0FF3446 -:102F900024E700002DE9F84306680446076B8946DC -:102FA00033782037042B0CBF4FF080534FF40013BD -:102FB000BB429CBF00238363836B73B1C7F30808D4 -:102FC000B8F1000F3CD10133416B836339B93389C8 -:102FD000B3EB571F34D80023A36304200AE073899E -:102FE000013B13EA57232BD1FFF75EFA0128054670 -:102FF00002D80220BDE8F883421C01D10120F9E784 -:10300000F36A834216D8B9F1000FE4D0616B204611 -:10301000FFF7CEFE0546C8B10128EAD0431CEDD02B -:1030200001463046FFF752FC0028E7D1E37943F030 -:103030000403E371294630466563FEF7CDFFA063C4 -:103040004C36002027634644E663D3E70720D1E7E8 -:10305000F8B50E46002104460768FFF7BDFA98B997 -:103060000546A16B3846FFF767F968B93A78E36B14 -:10307000042A1B780CD11B060ED5054601212046DB -:10308000FFF788FF0028ECD0042808BF072006E0DF -:10309000E52B01D0002BF0D10135B542EED1F8BDC2 -:1030A000C16C4B1C2DE9F04104460568066B1FD12D -:1030B000E5274FF00108A16B2846FFF73DF998B9C5 -:1030C0002A78E36B042A09BF1A781F7002F07F0286 -:1030D0001A7085F80380236BB3420DD2002120467D -:1030E000FFF758FF0028E6D0042808BF022003E0BD -:1030F000FFF772FA0028DBD0BDE8F0812DE9F0413E -:1031000005460068A96B0669FFF716F9044620B961 -:10311000EB6B1A78852A03D002242046BDE8F081A3 -:10312000324603F1200153F8040B8B4242F8040BA2 -:10313000F9D1777801377F01A7F16003B3F5007FFC -:10314000EAD800212846FFF725FF04280446E3D0EB -:103150000028E2D1A96B2868FFF7EEF804460028A2 -:10316000DBD1EB6B1A78C02AD6D106F1200203F12D -:10317000200153F8040B8B4242F8040BF9D196F866 -:1031800023300F222C33B3FBF2F3B7EB431FC3D32F -:103190004FF0400800212846FFF7FCFE04280446B3 -:1031A000BAD00028B9D1A96B2868FFF7C5F8044642 -:1031B0000028B2D1EB6B1A78C12AADD1B8F5187FCF -:1031C00009D206EB080203F1200153F8040B8B42ED -:1031D00042F8040BF9D108F120084745DAD8B8F5D0 -:1031E000187F9AD83046FEF71FFF7388834294D029 -:1031F00092E700000B68002210B5036004460B6ADA -:1032000083604B6AC261C37123F0FF03896AC0E91E -:103210000432C164FFF7E0F920B92046BDE8104050 -:10322000FFF76CBF10BD0000F8B503680546012725 -:103230001C692046FEF7F8FEA070000A6678E07070 -:103240002846E96CFFF7C8F920B1022828BF022000 -:10325000C0B2F8BDA96B2868FFF76EF80028F4D15A -:10326000EB6B04F1200254F8041B944243F8041B56 -:10327000F9D12B68DF70002EE7D000212846013EEF -:10328000FFF788FEE0E700002DE9F8434FF0FF0864 -:1032900006460768042445464FF6FF79B16B11B91D -:1032A000002C73D063E03846FFF746F80446002848 -:1032B0005DD1F06B0378002B6ED03A78042A11D1DF -:1032C000852B4DD1336B3046F364FFF717FF04466F -:1032D00000284CD13B691B7903F03F03B3712046B2 -:1032E000BDE8F883C27AE52B02F03F02B27143D009 -:1032F0002E2B41D022F0200108293DD00F2A40D1A9 -:10330000590637D503F0BF05336B90F80D80F36491 -:10331000437B434530D1428B72BB03780D21FC685F -:1033200023F04003DFF874E0013B4B4301211EF81A -:1033300001CB30F80CC009B3FF2B1DD824F813C003 -:103340006146013301320D2AF1D10278520605D5CA -:1033500021B1FF2B10D8002224F81320013DEDB23B -:1033600000213046FFF716FE0446002896D00023C1 -:10337000B363B4E7AB42CBD0FF25F1E7CC45E1D056 -:10338000FAE72DB9FEF740FE404501D10024A6E73B -:103390004FF0FF33F364A2E70424E8E7208F00082E -:1033A0002DE9F04F002187B00446D0F80090FFF7D8 -:1033B00013F9804670B999F80030042B33D1D9F84D -:1033C0000C00FEF779FF07462046FFF75DFF054634 -:1033D00020B18046404607B0BDE8F08FD9F81030E4 -:1033E0009A8CBA42F0D193F823B040265D4506D1BD -:1033F000D9F80C3033F81530002BE5D1EAE7F106A7 -:10340000D9F8103008BF0236985B01F04DF8D9F8B2 -:103410000C30824633F8150001F046F88245D3D1CE -:1034200002360135E2E74FF0FF0A4FF0FF3B554609 -:10343000C4F84CB0A16B4846FEF77EFF00285CD173 -:10344000E66B3778002F77D0F27AE52F02F03F0352 -:10345000A37103D0120704D50F2B04D0C4F84CB0CD -:103460004FE00F2B54D194F84B3058063FD47906D7 -:1034700045D5236B07F0BF0796F80DA0E364737B77 -:1034800053453ED1738B002B3BD135780121D9F8C0 -:103490000C3005F03F0501930D23013D5D43284BA2 -:1034A00013F8012BB25A71B3FF2D059329D810469A -:1034B000049200F0F9FF6B1C03900293019B33F818 -:1034C000150000F0F1FF039981421AD1049A029D80 -:1034D0001146059B1B4A9342E2D133785A0604D524 -:1034E00019B1019B33F815305BB97D1EEDB2002197 -:1034F0002046FFF74FFD00289CD080466AE7BD427A -:10350000BDD0FF25F3E74FF6FF708242E2D0F8E727 -:103510002DB93046FEF778FD50453FF45BAF94F887 -:103520004B30DB079AD40B2204F14001304605F002 -:1035300089FB002892D14DE74FF004084AE700BF0D -:10354000208F00082D8F00082DE9F04F90F84BB028 -:1035500099B004461BF0A00540F068810668F26847 -:1035600032F81530002B4AD13378042B40F0878095 -:103570000F230E352046B5FBF3F5A91CFFF768FDB8 -:103580008146002877D1236B0135A3EB4515E379FC -:103590005A07E56435D523F004032046E371FFF7AD -:1035A0007DF950BB4FF0FF32616B2046FFF7E0F82A -:1035B00018BBA3682BB3214604A8FFF71BFEE0B994 -:1035C00070894FF40071D4E90423E0FB01233069D2 -:1035D000C4E904233830FEF7EFFC3069D4E9042352 -:1035E0002830FEF7E9FCE379326904A843F00103CF -:1035F00082F82130FFF718FE18B181463BE0013513 -:10360000AEE7D6E90354402200212046FEF796FBA0 -:103610008523012140222370C0234FF0C10C04EB0D -:10362000010884F8203000231E469E46571C04F8EB -:1036300002C0F0B2023204F807E021B135F81310ED -:1036400009B10133DBB20F0AA15408F8027002324B -:10365000D706F2D135F813700136002FE6D184F881 -:103660002330831C28466370FEF726FE84F824006E -:10367000000A84F82500484619B0BDE8F08F04F12F -:1036800040070DF1100A1BF0010F97E807008AE8C8 -:10369000070000F0D38040234FF0010884F84B303E -:1036A000BC46F368B8F1050F9AE80700ACE80300E0 -:1036B0002CF8022B4FEA12428CF8002059D9981EA0 -:1036C000424630F8021F002942D10DF10F0C0721AC -:1036D00002F00F0E914612090EF13000392888BF12 -:1036E0000EF1370001390CF8010902D0B9F10F0FC2 -:1036F000EED818AB7E205A1802F8580C3846002233 -:10370000914206D010F801CB02F1010EBCF1200F5E -:1037100031D104F13F0C072902F1010297BF18AB28 -:1037200020205818013198BF10F8580C072A0CF8BF -:103730000200F0D92046FFF733FE8146002878D1F9 -:1037400008F10108B8F1640FAAD14FF0070992E718 -:103750004FF0100C01F0010E49080EEB4202D303AA -:1037600044BF82F4883282F02102BCF1010CF1D115 -:10377000A7E74246A9E77246C2E7216B2046A1EBC4 -:103780004511FEF729FF814600287FF474AF4FF6FC -:10379000FF783846FEF738FC0190A16B3046FEF703 -:1037A000CBFD814600287FF466AFE36BE9B2019A56 -:1037B0004FF00D0CD6F80CE05A734FF00F02DFF803 -:1037C000E0A0DA724A1E18730CFB02F28446987667 -:1037D000D87640451AF8019B0CF1010C18BF3EF851 -:1037E000120003EB090B18BF013203F809004FEA7E -:1037F0001029002808BF4046BCF10D0F8BF801903E -:10380000E7D1404502D03EF812200AB941F040010C -:103810001970012300212046F370FFF7BBFB81469E -:1038200000287FF428AF013DB7D11BE04FF0060917 -:1038300021E704287FF41FAF84F84BB01BF0020F80 -:1038400020461BBF0C350D210125B5FBF1F518BF36 -:1038500001352946FFF7FCFB814600287FF40BAFBA -:10386000013D8AD1A16B3046FEF766FD81460028F6 -:103870007FF401AF01462022E06BFEF75FFAE36BB5 -:1038800003CF18605960BA7839889A72198194F810 -:103890004B30E26B03F0180313730123F370EAE675 -:1038A000208F000810B504460A463430FEF776FB38 -:1038B000886004F13800FEF773FBC2E9040194F854 -:1038C000213003F00203D3710023D36110BD000047 -:1038D00003284B8B04BF8A8A43EA02431846704789 -:1038E0002DE9F04F0B7899B0044689462F2BD0F87C -:1038F00000B001D05C2B09D14A46137891460132C1 -:103900002F2BFAD05C2BF8D0002301E0DBF81C3021 -:10391000A3600023E3619BF80030042B1ED1A36851 -:10392000E3B1DBF82030214604A82362DBF8243021 -:103930006362DBF82830A362FFF75CFC03460028D3 -:1039400054D1DBF8102002F13800FEF727FBC4E960 -:10395000040392F8213003F00203E37199F8003078 -:103960001F2B00F2358180230021204684F84B3044 -:1039700019B0BDE8F04FFEF72FBE49460B788946D7 -:1039800001312F2BFAD05C2BF8D01F2B8CBF0025D8 -:103990000425012F2FD113882E2B31D1002322F89B -:1039A000173004F140029F428CBF2E2120210133A9 -:1039B0000B2B02F8011BF6D145F02005204684F8B8 -:1039C0004B50FFF7EDFC94F84B30002800F0E780F7 -:1039D00004280BD1990603F0040240F1DC80002A90 -:1039E00000F0F6808023002084F84B3019B0BDE849 -:1039F000F08F0425CDE7022F02D153882E2BCAD099 -:103A0000911E87BB002322F81730002F00F0118190 -:103A100032F81300194601332028F9D009B92E28AD -:103A200001D145F00305901E30F817302E2B01D040 -:103A3000013FF9D14FF020334FF0000A6364D046C4 -:103A40002364C4F847300823481C32F81160009002 -:103A5000F6B1202E03D02E2E0DD1B84210D045F055 -:103A600003050099F0E731F81730202B01D02E2BF9 -:103A7000C8D1013FC5E79A4505D20099B9423BD16B -:103A80000B2B30D101E00B2B27D145F003050B2385 -:103A900094F84020E52A04BF052284F84020082B32 -:103AA00004BF4FEA88085FFA88F808F00C030C2B73 -:103AB00003D008F00303032B01D145F00205A8074A -:103AC0003FF57CAF18F0010F18BF45F0100518F056 -:103AD000040F18BF45F0080570E70099B94202D0FD -:103AE00045F00305D4D84FEA88080B234FF0080AA5 -:103AF00000975FFA88F8B4E77F2E15D9304640F278 -:103B00005231CDE9022345F00203019300F098FC05 -:103B100010F0800F0646DDE9022316D000F07F0684 -:103B200046498E5D019D46B331464548CDE90123A6 -:103B300005F0F6F8DDE90123F8B9A6F1410189B2F3 -:103B400019291ED848F0020810E0FF28EAD9591EAA -:103B50008A4503D345F003059A4682E704EB0A0140 -:103B6000000A0AF1010A019D81F8400004EB0A01F4 -:103B70000AF1010A81F8406073E745F003055F260A -:103B8000F4E7A6F1610189B219299EBF203E48F0F1 -:103B90000108B6B2EAE7002A08BF052026E75A075F -:103BA0003FF524AFA379DB0645D59BF80000042838 -:103BB00035D1A3682146E27923622369DBF810003E -:103BC00023F0FF0313436362E36CA362FFF76AFE13 -:103BD00023680027DA6819F8010B00283FF409AFC1 -:103BE00040F25231009200F04BFC054608B31F280A -:103BF000009A7FF6FEAE2F283FF4BFAE5C283FF45C -:103C0000BCAE7F2805D801460E4805F089F8009A19 -:103C100078B9FF2F0DD022F817500137DBE7216B61 -:103C20000BF14C03C1F308011944FFF751FEA060EA -:103C3000CEE70620DAE60520D8E600BFA08E000811 -:103C4000998E0008908E00081FB5CDE9001003A8DA -:103C500014460391FEF700FA002815DB0B4A52F8D0 -:103C600020300BB100211970019B0BB1002119709C -:103C700042F820302CB1002201A96846FEF7C8FEA8 -:103C80000446204604B010BD0B24FAE79C36002001 -:103C90002DE9F04798B0904605460191002800F0C4 -:103CA000528102F03F0603A901A83246FEF7B0FE9A -:103CB000002840F04681039B4FF48C60049303F08E -:103CC0004BF80746002800F04081039B00F5007286 -:103CD0000199D86004A81A61FFF702FE044620B9D2 -:103CE0009DF95B30002BB8BF062418F01C0F00F0C4 -:103CF000CD80002C4CD0042C40D104A8FFF724FC2C -:103D0000044600283AD146F00806039B1A78042A94 -:103D100040F08380186929462B60FFF7C3FD039BA1 -:103D20001E22002118690230FEF708F8039C0021CA -:103D30001A2220692630FEF701F8236920221A7121 -:103D4000246903F027F80146012208342046FEF7D3 -:103D50002BF9039B04A81B6983F82120FFF764FA61 -:103D6000044658B9A96801B302462846FEF718FD73 -:103D7000AB68039A0446013B5361B4B1384602F084 -:103D8000FBFF0CB100232B60204618B0BDE8F08784 -:103D90009DF8163013F0110F40F0848018F0040FD6 -:103DA00040F0C98018F0080FAFD1039A310713997A -:103DB000936C48BF46F04006E964AB641078042871 -:103DC00072D1069B9DF817102B62089B106923F097 -:103DD000FF030B4329466B62179BAB62FFF762FD43 -:103DE000DDF80CA00024002205F15008BAF80630D6 -:103DF00021464046C5F800A0AB80002385F830601E -:103E000085F831406C64C5E90E234FF40072FDF76C -:103E100095FFB20653D40024B0E702F0BBFF014681 -:103E2000009013980E30FEF7BFF8139800991630E3 -:103E3000FEF7BAF8039C13992078FFF749FD202379 -:103E400000228046CB7220461399FEF7D1F8139BCF -:103E5000002201211A775A779A77DA77039BD97073 -:103E6000B8F1000FA1D0414604A8D3F84890FEF75E -:103E700097FC0446002881D149460398FEF75CFA76 -:103E8000039B044608F1FF30586176E7002C7FF46D -:103E900075AF9DF81630DC064FD418F0020F84D0B1 -:103EA000D80782D5072469E7FFF712FD0023A86031 -:103EB00001F11C00FEF772F86B61286190E7D5E90B -:103EC000046956EA0903A6D0BAF80AA0A9684FEA1D -:103ED0004A2AC5E90E69B24574EB09031BD30024D5 -:103EE0002964002C7FF44AAFC6F30803002B92D05C -:103EF000039C2046FEF770F808B3760A012341467A -:103F000046EAC95682196A64607802F095FA041E7E -:103F100018BF012432E72846FEF7C6FAB6EB0A06B8 -:103F2000014669F10009012803D9431CD3D10124BA -:103F3000D6E70224D4E7082420E704241EE702245D -:103F40001CE704461EE709241EE711241CE70000B5 -:103F50002DE9F04F994685B00023884603A9044611 -:103F6000C9F800301646FEF791F8054680BB94F874 -:103F700031506DBB94F8303013F00103009300F022 -:103F8000A68004F1500AD4E90432D4E90E011B1AC8 -:103F900062EB0102B34272F1000238BF1E46BEB1AD -:103FA000D4E90E10C1F30803002B40F08280039B7C -:103FB0005A894B0A013A43EAC0531A401BD151EACD -:103FC000000309D1A06801280DD8022584F83150DA -:103FD000284605B0BDE8F08F216C20460192FEF71F -:103FE00063FA019AEFE7431C04D10123009D84F892 -:103FF0003130EDE72064DDF80CB0216C5846FDF758 -:10400000EBFF0028E1D0B6F5007F02EB000731D3CB -:10401000BBF80A1002EB5620730A88429BF8010095 -:1040200088BF8B1A3A464146019302F005FA0028F0 -:10403000DBD194F93020019B002A0BDA606CC01BA5 -:10404000984207D24FF40072514608EB4020FDF72A -:104050004FFE019B5F02D9F80030F61BB8443B4489 -:10406000C9F80030D4E90E32DB1942F10002C4E98C -:104070000E3294E7626CBA421AD094F93030002BB9 -:104080000DDA012351469BF8010002F0F9F90028EE -:10409000ABD194F8303003F07F0384F830300398CC -:1040A00001233A465146407802F0C6F900289CD1D7 -:1040B0006764A16B4046C1F30801C1F50077514424 -:1040C000B74228BF37463A46FDF712FEC3E7072539 -:1040D0007EE7000070B596B00E460022019002A95E -:1040E00001A8FEF795FC0446E0B94FF48C6002F09D -:1040F00033FE0546D8B1029B00F500720199D860E5 -:1041000002A81A61FFF7ECFB044640B99DF9533051 -:10411000002B0ADB1EB1314602A8FDF7EDFF284651 -:1041200002F02AFE204616B070BD0624F7E71124DF -:10413000F8E7000070B5B8B00222019003A901A809 -:10414000FEF766FC044608BB039B4FF48C6010939B -:1041500002F002FE0546002866D0039B00F50072BF -:104160000199D86010A81A61FFF7BAFB044650B94C -:104170009DF88B30980655D4190653D49DF84630D7 -:10418000DA0706D50724284602F0F6FD204638B0A7 -:1041900070BD039B04931878042814D104A91869EE -:1041A000FFF780FB069E9DF84630DB0610D410A872 -:1041B000FEF776FF04460028E5D156BB0398FEF7CC -:1041C000DBFB0446DFE71F99FFF782FB0646EAE7C1 -:1041D000039BDA69B242D5D024930021269624A805 -:1041E0001B78042B01BFDDE90823CDE928239DF8C6 -:1041F00017308DF89730FEF7EFF904460028C2D14A -:1042000024A8FFF741F804460028BBD00428BAD1FF -:10421000CDE70246314604A8FEF7C2FA044600285C -:10422000B1D1CBE70624AEE71124AFE7F0B5BDB0BE -:10423000CDE900106846FDF70FFF022203A901A88F -:10424000FEF7E6FB0446002841D1039B4FF48C6047 -:10425000149302F081FD0546002800F0EE80039BD8 -:1042600000F5007214AE0199D8601A613046FFF76C -:1042700037FB044640BB9DF89B3013F0A00F40F085 -:10428000D880039B009F1A78042A68D11B6904AC6C -:1042900003F1400C1868083353F8041C22466345A8 -:1042A00003C21446F6D15022314628A8FDF720FD5E -:1042B000394628A8FFF714FB044600284CD12A9A57 -:1042C000169B9A4206D00824284602F055FD204647 -:1042D0003DB0F0BD349A209B9A42F4D128A8FFF754 -:1042E00033F904460028EFD1039B04AF1B6993F810 -:1042F00001E093F823C09C8C3A46083303CAB242CB -:1043000043F8080C43F8041C1746F5D1039B28A872 -:104310001B6983F801E0039B1A6982F823C01A69BC -:1043200082F82440240A82F825401A691379D906B4 -:104330005CBF43F020031371FEF776FF04460028AC -:10434000C2D13046FEF7ACFE04460028BCD103982B -:10435000FEF712FB0446B7E70428B5D1BEE7239A5F -:1043600004AB02F1200C1068083252F8041C1C4601 -:10437000624503C42346F6D15022314628A8FDF7F2 -:10438000B7FC394628A8FFF7ABFA044600284CD101 -:104390002A9A169B9A4296D1349A209B9A4292D19D -:1043A00028A8FFF7D1F8044600288DD137990DF1E0 -:1043B0001D030DF12D0001F10D0253F8044B834252 -:1043C00042F8044BF9D11888012710809B7893702C -:1043D0009DF81B30039CDA0658BF43F02003CB72D4 -:1043E000E770CB7ADB06ACD5169A2A9B9A42A8D006 -:1043F0002078FFF76DFA01462046FDF7EDFD0146F6 -:10440000C8B12046FDF798FF044600287FF45CAF52 -:10441000039890F86D302E2B93D12A9A00F16C01FD -:10442000FDF7E6FD039BDF708BE704287FF44CAFBC -:10443000B6E7062448E7022446E7112447E70000D0 -:104440007F2810B501D880B210BDB0F5803F13D2DF -:1044500040F2523399420FD10849002231F8024B01 -:1044600093B2844203D103F18000C0B2ECE7013281 -:10447000802AF3D11346F6E70020E5E7E091000833 -:104480007F280DD940F25233994208D1FF2806D82F -:1044900000F10040034B803833F8100070470020D3 -:1044A000704700BFE0910008B0F5803FF0B522D220 -:1044B0001F4A83B21F49B0F5805F28BF0A46141D0A -:1044C00034F8042C2146AAB1934213D334F8025C89 -:1044D0002E0AEFB252FA85F5A84222DA082E09D840 -:1044E000DFE806F0050A10121416181A1C00801ACC -:1044F00034F810301846F0BD981A00F001001B1A6D -:104500009BB2F7E7103BFBE7203BF9E7303BF7E7CF -:104510001A3BF5E70833F3E7503BF1E7A3F5E35324 -:10452000EEE70434002ECBD101EB4702C7E700BF12 -:10453000308F000824910008084BC26A994228BFB6 -:104540001946836C50688B4210B506D95A1E4C0030 -:1045500002EB4103B3FBF4F3184410BD20BCBE00D2 -:1045600001F001038A0748BF43F002034A0748BF2E -:1045700043F008030A0748BF43F00403CA0648BFD4 -:1045800043F010038A06426B48BF43F020031343F5 -:104590004363704710B5074C204600F09FFF064B61 -:1045A0000022C4E91023054BA364054BE363054BCC -:1045B000E36410BDA43600200070005200B4C404AF -:1045C000F8360020F8380020C36A0BB9104BC362DC -:1045D0000379012B11D10F4B98420ED10E4BD3F81A -:1045E000D42042F48032C3F8D420D3F8FC2042F423 -:1045F0008032C3F8FC20D3F8FC30436C00221A65EB -:10460000DA621A605A605A624FF0FF329A6370475A -:10461000E0920008A4360020004402580379012BE0 -:104620001BD0436C00221A65DA621A605A605A6223 -:104630004FF0FF329A63094B98420ED1084BD3F8E2 -:10464000D42022F48032C3F8D420D3F8FC2022F402 -:104650008032C3F8FC20D3F8FC307047A436002029 -:104660000044025810B5446C0649FFF765FF6060CE -:10467000236842F2107043F003032360BDE810404A -:1046800001F04CBD801A06000129F8B5466C0B4FAD -:1046900009D175680A493D40FFF74EFF054345F4CF -:1046A00080557560F8BD746806493C40FFF744FFCB -:1046B000044344F480547460F4E700BF00ECFFFF4F -:1046C00080F0FA0240787D01436C00225A601A6043 -:1046D00070470000426C0129536823F4404304D022 -:1046E000022905D001B95360704743F48043FAE7CB -:1046F00043F40043F7E70000436C41F480519A60B3 -:10470000D9605A6B1206FCD580229A63704700006C -:1047100010B541F48851446CA260E160616B11F006 -:104720004502FBD0A26311F0040203D0FFF718FF8B -:10473000012010BD616910461960FAE710B541F417 -:104740008851446CA260E160616B11F04502FBD0BE -:10475000A26311F0050203D0FFF702FF012010BD94 -:10476000616910461960FAE773B5134604460E46B0 -:10477000302282F31188426CD26B32B14FF0FF319C -:104780004030019301F0D6FC019B606C0022026571 -:10479000C263C262456B15F4807504D185F311883C -:1047A000012002B070BD4FF0FF31816382F31188A8 -:1047B000012E06D90C21204602B0BDE87040FFF75B -:1047C000BDBF1046EDE7000073B5446C0E460025F2 -:1047D0000192616BA1632565E562FFF7C1FE012EC1 -:1047E00007D9019B2A460C2102B0BDE87040FFF7B3 -:1047F000A5BF02B070BD000010B541F49851446CE3 -:10480000A260E160616B11F04502FBD0A26311F080 -:104810003F0203D0FFF7A4FE012010BD216A10461D -:104820001960E1695960A16999606169D960F4E72B -:104830002DE9F74304460191006D01A917469846FA -:1048400002F0E2FB064600284AD0626C2046DDF802 -:1048500004905568C5F3090501356B00A56CB5FBDF -:10486000F3F54FF47A73B5FBF3F55D43556200F051 -:10487000FBFD50BB636C4FF0FF3201254146C3F88E -:10488000589020461D659A634FF49572DA6342F2A0 -:1048900007029F62DA62E36C0A9AFFF74FFFA0B942 -:1048A000E26C104B11680B407BB929462046FFF79C -:1048B0005BFF054648B92E463A460199206D02F045 -:1048C000CBFB304603B0BDE8F0833A460199206D3A -:1048D00002F0C2FBE26C01212046FFF775FFF0E712 -:1048E0000126EEE708E0FFFD2DE9F7431F46436C84 -:1048F00001924FF47A725D6804468846C5F3090553 -:1049000001356E00856CB5FBF6F5B5FBF2F5554348 -:104910005D6200F0A9FD20B10125284603B0BDE885 -:10492000F0837E0201A9206D324602F06DFB054640 -:104930000028F1D0636C019AD4F84C909A6501225A -:104940001A654FF0FF329A634FF49572DA639E62F4 -:10495000236BDB064B4658BF4FEA4828012F4246DF -:104960001BD912212046FFF7E9FEC0B9D9F8002073 -:10497000104B13409BB9636C42F2930239462046B8 -:10498000DA62E26CFFF7F0FE804640B932460199E8 -:10499000206D454602F060FBBFE71121E2E7324699 -:1049A0000199206D02F058FBE26C39462046FFF772 -:1049B0000BFFB2E708E0FFFD2DE9F3411F46436C12 -:1049C00001924FF47A725D6804468846C5F3090582 -:1049D00001356E00856CB5FBF6F5B5FBF2F5554378 -:1049E0005D6200F041FD20B10125284602B0BDE81E -:1049F000F0817E0201A9206D324602F03BFB0546A4 -:104A00000028F1D0636C019A9A6501221A654FF073 -:104A1000FF329A634FF48D72DA639E62236BE66C09 -:104A2000DB06334658BF4FEA4828012F424619D9C2 -:104A300019212046FFF782FEB0B932680F4B1340B0 -:104A400093B9636C42F2910239462046DA62E26C15 -:104A5000FFF78AFE064638B901993546206D02F007 -:104A600035FBC2E71821E4E70199206D02F02EFB27 -:104A7000E26C39462046FFF7A7FEB6E708E0FFFDE7 -:104A800012F0030F2DE9F04107460C4615461E466D -:104A900017D00E44B44202D10020BDE8F0810123BA -:104AA000FA6B21463846FFF71FFF0028F5D128464C -:104AB0004FF40072F96B05F500750134FDF718F934 -:104AC000E8E7BDE8F041FFF70FBF000012F0030F69 -:104AD0002DE9F04107460C4615461E4617D00E44F8 -:104AE000B44202D10020BDE8F08129464FF40072A3 -:104AF000F86B05F50075FDF7FBF80123FA6B21460D -:104B00003846FFF759FF0028EDD10134E8E7BDE84A -:104B1000F041FFF751BF000000207047302310B56F -:104B200083F311880024436C40302146DC6301F09C -:104B30000FFB84F3118810BD0268436811430160C4 -:104B400003B1184770470000024A136843F0C003DE -:104B50001360704700440040024A136843F0C003EA -:104B60001360704700480040024A136843F0C003D6 -:104B70001360704700780040064BD3F8E8200243EA -:104B8000C3F8E820D3F810211043C3F81001D3F87C -:104B9000103170470044025837B5274C274D204646 -:104BA00000F0FCFC04F11400009400234FF40072A8 -:104BB000234900F097F94FF40072224904F13800BC -:104BC0000094214B00F010FA204BC4E91735204C1B -:104BD000204600F0E3FC04F11400009400234FF49D -:104BE00000721C4900F07EF94FF400721A4904F17A -:104BF00038000094194B00F0F7F9194BC4E9173548 -:104C0000184C204600F0CAFC04F1140000234FF4B5 -:104C100000721549009400F065F9144B4FF40072CE -:104C2000134904F13800009400F0DEF9114BC4E997 -:104C3000173503B030BD00BFFC38002000E1F5059A -:104C4000403A002040400020494B0008004400400A -:104C500068390020403C002040420020594B0008A9 -:104C600000480040D4390020403E0020694B000835 -:104C7000404400200078004038B5264D0446037CAF -:104C8000002918BF0D46012B06D1234B984230D185 -:104C90004FF40030FFF770FF2A68236EE16D03EBDD -:104CA0005203A566B3FBF2F36A68100442BF23F017 -:104CB000070003F0070343EA4003CB60AB6843F00F -:104CC00040034B60EB6843F001038B6042F4967342 -:104CD00043F001030B604FF0FF330B62510505D524 -:104CE00012F0102211D0B2F1805F10D084F864303D -:104CF00038BD0A4B984205D0094B9842CCD14FF0B1 -:104D00008040C7E74FF48020C4E77F23EEE73F23CE -:104D1000ECE700BFE8920008FC380020683900206A -:104D2000D43900202DE9F047C66D05463768F4698F -:104D3000210734621AD014F0080118BF4FF48071B3 -:104D4000E20748BF41F02001A3074FF0300348BFFE -:104D500041F04001600748BF41F0800183F31188B2 -:104D6000281DFFF7E9FE002383F31188E2050AD529 -:104D7000302383F311884FF48061281DFFF7DCFE98 -:104D8000002383F311884FF030094FF0000A14F02C -:104D9000200838D13B0616D54FF0300905F1380A06 -:104DA000200610D589F31188504600F051F90028EB -:104DB00036DA0821281DFFF7BFFE27F08003336095 -:104DC000002383F31188790614D5620612D53023A7 -:104DD00083F31188D5E913239A4208D12B6C33B1A0 -:104DE00027F040071021281DFFF7A6FE376000239B -:104DF00083F31188E30618D5AA6E1369ABB1506925 -:104E0000BDE8F047184789F31188736A284695F87A -:104E10006410194000F0DCFB8AF31188F469B6E7EE -:104E2000B06288F31188F469BAE7BDE8F087000042 -:104E3000F8B51546826804460B46AA4200D285683A -:104E4000A1692669761AB5420BD218462A46FCF7A4 -:104E50004FFFA3692B44A3612846A3685B1BA36093 -:104E6000F8BD0CD9AF1B18463246FCF741FF3A4655 -:104E7000E1683044FCF73CFFE3683B44EBE718464D -:104E80002A46FCF735FFE368E5E7000083689342B4 -:104E9000F7B50446154600D28568D4E90460361A91 -:104EA000B5420BD22A46FCF723FF63692B446361AA -:104EB0002846A3685B1BA36003B0F0BD0DD9324642 -:104EC000AF1B0191FCF714FF01993A46E0683144A9 -:104ED000FCF70EFFE3683B44E9E72A46FCF708FFCE -:104EE000E368E4E710B50A440024C361029B8460D0 -:104EF000C16002610362C0E90000C0E9051110BD94 -:104F000008B5D0E90532934201D1826882B982683E -:104F1000013282605A1C426119700021D0E90432CA -:104F20009A4224BFC368436101F02CF9002008BDF8 -:104F30004FF0FF30FBE7000070B5302304460E460B -:104F400083F31188A568A5B1A368A269013BA3609A -:104F5000531CA36115782269934224BFE368A361BF -:104F6000E3690BB120469847002383F31188284654 -:104F700007E03146204601F0F5F80028E2DA85F333 -:104F8000118870BD2DE9F74F04460E461746984626 -:104F9000D0F81C904FF0300A8AF311884FF0000BC4 -:104FA000154665B12A4631462046FFF741FF0346C4 -:104FB00060B94146204601F0D5F80028F1D0002321 -:104FC00083F31188781B03B0BDE8F08FB9F1000FAF -:104FD00003D001902046C847019B8BF31188ED1A3E -:104FE0001E448AF31188DCE7C160C361009B8260C4 -:104FF0000362C0E905111144C0E900000161704776 -:10500000F8B504460D461646302383F31188A76889 -:10501000A7B1A368013BA36063695A1C62611D705C -:10502000D4E904329A4224BFE3686361E3690BB1B7 -:1050300020469847002080F3118807E0314620463B -:1050400001F090F80028E2DA87F31188F8BD00003B -:10505000D0E9052310B59A4201D182687AB98268F5 -:105060000021013282605A1C82611C7803699A42D5 -:1050700024BFC368836101F085F8204610BD4FF05E -:10508000FF30FBE72DE9F74F04460E4617469846DA -:10509000D0F81C904FF0300A8AF311884FF0000BC3 -:1050A000154665B12A4631462046FFF7EFFE034616 -:1050B00060B94146204601F055F80028F1D00023A0 -:1050C00083F31188781B03B0BDE8F08FB9F1000FAE -:1050D00003D001902046C847019B8BF31188ED1A3D -:1050E0001E448AF31188DCE70379052B05BF836A28 -:1050F000002001204B6004BF4FF400730B60704729 -:1051000070B55D1E866A04460D44B54205D9436BF1 -:1051100043F080034363012070BD06250571FFF74E -:10512000AFFC05232371F7E770B55D1E866A044660 -:105130000D44B54205D9436B43F08003436301201E -:1051400070BD07250571FFF7C1FC05232371F7E743 -:1051500038B505790446052D05D108230371FFF7FD -:10516000DBFC257138BD0120FCE700000323F0B50E -:10517000037185B00446FFF775FA002220461146F8 -:10518000FFF7BAFA4FF4D57203AB08212046FFF7B8 -:10519000D5FA0246B8B901232363039BC3F3032363 -:1051A000012B09D103AB37212046FFF7C7FA18B905 -:1051B000A44B039A1340ABB120460125FFF784FAB4 -:1051C0000223237137E103AB002237212046FFF78A -:1051D000B5FA28B99B4A039B1A40002A00F0A78021 -:1051E00002232363236B03F00F03022B40F0A980FB -:1051F0006425954E42F2107000F090FF03AB3246EA -:1052000001212046FFF784FA0028D5D1039B002B0B -:1052100080F293805A0003D5236B43F0100323637D -:10522000002204F1080302212046FFF7E5FA0246B6 -:105230000028C1D104F1380303212046FFF77EFA8C -:105240000028B9D104F11805A26B092120462B468C -:10525000FFF7D2FA0028AFD102ABA26B072120469C -:10526000FFF76CFA06460028A6D1236B03F00F0364 -:10527000022B40F08F807E227F21284603F09AF98E -:10528000012840F28780E76B42F2107000F046FF81 -:1052900008234FF40072394620460096FFF7C8FAFB -:1052A000002889D1384603F0D3F9236BA06203F0BC -:1052B0000F03022B72D103AB644A06212046FFF78D -:1052C0003DFA002871D15F49039B1940B1FA81F181 -:1052D00049092046FFF7D8F902AB4FF400721021BC -:1052E0002046FFF72BFA054600287FF465AF554EA0 -:1052F000029B33427FF460AF236B13F00E0F03F079 -:105300000F0273D0022A7FF457AFE36A197801299C -:1053100000F09480022900F09380002900F0898039 -:105320004B4F2046FFF7D6F903AB3A4676E01146DD -:1053300020462263FFF7E0F954E7013D7FF45AAFBE -:105340003AE7444D6426444A3E4F012B18BF1546A8 -:1053500003AB002237212046FFF7F0F900287FF445 -:105360002BAF039B3B427FF427AF03AB2A46292197 -:105370002046FFF7CDF900287FF41EAF039B002BDA -:10538000FFF648AF013E3FF417AF42F2107000F055 -:10539000C5FEDDE7284603F02FF986E77E227F2150 -:1053A0002846E66B03F006F908B9002191E70023CF -:1053B00040223146204600930623FFF739FA0028A1 -:1053C000F3D1B3895BBA9B07EFD5244B402231461A -:1053D000204600930623FFF72BFA0028E5D1317C05 -:1053E00001F00F010F3918BF012172E7E36A197844 -:1053F000F9B101297FF4E0AE2046FFF76BF903AB6A -:10540000A26B37212046FFF799F900287FF4D4AE2C -:10541000039B33427FF4D0AE03AB02220621204629 -:10542000FFF78CF900287FF4C7AE039B33427FF46B -:10543000C3AE05232371284605B0F0BD084F70E7C1 -:10544000084F6EE708E0FFFD0080FFC00001B903D0 -:105450000000B7030080FF5000001080F1FFFF80C4 -:105460000001B7030002B70337B504460C4D01AB8A -:10547000A26B0D212046FFF761F978B9019B2B4201 -:105480000BD1C3F34323042B08D0053B022B04D8D4 -:105490004FF47A7000F042FEE9E7012003B030BD1E -:1054A00008E0FFFD70B53023054683F311880379CA -:1054B0000024022B03D184F31188204670BD0423FD -:1054C000037184F311880226FFF7CEFF04462846B5 -:1054D000FFF7FAF82E71F0E7FFF75CB8044B0360B2 -:1054E0000123037100234363C0E90A33704700BFFF -:1054F0000093000810B53023044683F31188C1627D -:10550000FFF762F802230020237180F3118810BD99 -:1055100010B53023044683F31188FFF77FF800238A -:105520000122E362227183F3118810BD026843688F -:105530001143016003B11847704700001430FFF7B2 -:1055400021BD00004FF0FF331430FFF71BBD0000FA -:105550003830FFF797BD00004FF0FF333830FFF7CA -:1055600091BD00001430FFF7E7BC00004FF0FF31A1 -:105570001430FFF7E1BC00003830FFF741BD0000F8 -:105580004FF0FF323830FFF73BBD0000012914BF58 -:105590006FF0130000207047FFF7FEBA044B036062 -:1055A00000234360C0E9023301230374704700BF46 -:1055B0002493000810B53023044683F31188FFF7C5 -:1055C0005BFB02230020237480F3118810BD0000D0 -:1055D00038B5C36904460D461BB904210844FFF7DA -:1055E000A5FF294604F11400FFF78AFC002806DA1B -:1055F000201D4FF40061BDE83840FFF797BF38BD6C -:10560000026843681143016003B118477047000006 -:1056100013B5406B00F58054D4F8A4381A6811789B -:10562000042914D1017C022911D11979012312898D -:105630008B4013420BD101A94C3002F0E9FED4F8A3 -:10564000A4480246019B2179206800F0DFF902B0EE -:1056500010BD0000143002F06BBE00004FF0FF33AD -:10566000143002F065BE00004C3002F03DBF000077 -:105670004FF0FF334C3002F037BF0000143002F01F -:1056800039BE00004FF0FF31143002F033BE00008D -:105690004C3002F009BF00004FF0FF324C3002F0F6 -:1056A00003BF00000020704710B500F58054D4F807 -:1056B000A4381A681178042917D1017C022914D161 -:1056C0005979012352898B4013420ED1143002F0D4 -:1056D000CBFD024648B1D4F8A4484FF44073617939 -:1056E0002068BDE8104000F07FB910BD406BFFF7A7 -:1056F000DBBF0000704700007FB5124B0125042678 -:10570000044603600023057400F1840243602946C7 -:10571000C0E902330C4B0290143001934FF44073F4 -:10572000009602F07DFD094B04F69442294604F1EF -:105730004C000294CDE900634FF4407302F044FE44 -:1057400004B070BD4C930008ED56000811560008D7 -:105750000A68302383F311880B790B3342F8230056 -:105760004B79133342F823008B7913B10B3342F892 -:10577000230000F58053C3F8A4180223037400200B -:1057800080F311887047000038B5037F044613B1D9 -:1057900090F85430ABB90125201D0221FFF730FFEE -:1057A00004F114006FF00101257700F0F7FC04F11B -:1057B0004C0084F854506FF00101BDE8384000F00F -:1057C000EDBC38BD10B5012104460430FFF718FFC9 -:1057D0000023237784F8543010BD000038B5044608 -:1057E0000025143002F034FD04F14C00257702F05E -:1057F00003FE201D84F854500121FFF701FF2046CD -:10580000BDE83840FFF750BF90F8803003F06003E8 -:10581000202B06D190F881200023212A03D81F2AAB -:1058200006D800207047222AFBD1C0E91D3303E0CF -:10583000034A426707228267C3670120704700BF9F -:105840004422002037B500F58055D5F8A4381A68F1 -:10585000117804291AD1017C022917D11979012361 -:1058600012898B40134211D100F14C04204602F002 -:1058700083FE58B101A9204602F0CAFDD5F8A4481C -:105880000246019B2179206800F0C0F803B030BDCA -:1058900001F10B03F0B550F8236085B004460D46C6 -:1058A000FEB1302383F3118804EB8507301D0821F6 -:1058B000FFF7A6FEFB6806F14C005B691B681BB195 -:1058C000019002F0B3FD019803A902F0A1FD024688 -:1058D00048B1039B2946204600F098F8002383F343 -:1058E000118805B0F0BDFB685A691268002AF5D02E -:1058F0001B8A013B1340F1D104F18002EAE700006A -:10590000133138B550F82140ECB1302383F31188BE -:1059100004F58053D3F8A4281368527903EB82036B -:10592000DB689B695D6845B104216018FFF768FE7C -:10593000294604F1140002F0A1FC2046FFF7B4FE52 -:10594000002383F3118838BD7047000001F0B0BC1C -:1059500001234022002110B5044600F8303BFCF73B -:10596000EDF90023C4E9013310BD000010B5302368 -:10597000044683F311882422416000210C30FCF797 -:10598000DDF9204601F0B6FC02230020237080F3ED -:10599000118810BD70B500EB8103054650690E46B5 -:1059A0001446DA6018B110220021FCF7C7F9A0698B -:1059B00018B110220021FCF7C1F931462846BDE894 -:1059C000704001F09DBD000083682022002103F09B -:1059D000011310B5044683601030FCF7AFF9204680 -:1059E000BDE8104001F018BEF0B4012500EB8104C1 -:1059F00047898D40E4683D43A469458123600023C5 -:105A0000A2606360F0BC01F035BE0000F0B4012577 -:105A100000EB810407898D40E4683D43646905819A -:105A200023600023A2606360F0BC01F0ABBE000005 -:105A300070B5022300250446242203702946C0F8CD -:105A400088500C3040F8045CFCF778F9204684F864 -:105A5000705001F0E9FC63681B6823B129462046B9 -:105A6000BDE87040184770BD0378052B10B504469B -:105A70000AD080F88C300523037043681B680BB193 -:105A8000042198470023A36010BD00000178052978 -:105A900006D190F88C20436802701B6803B1184748 -:105AA0007047000070B590F87030044613B10023C1 -:105AB00080F8703004F18002204601F0D1FD636867 -:105AC0009B68B3B994F8803013F0600535D000219D -:105AD000204602F0C3F80021204602F0B3F86368C4 -:105AE0001B6813B1062120469847062384F87030BE -:105AF00070BD204698470028E4D0B4F88630A26FE5 -:105B00009A4288BFA36794F98030A56F002B4FF0AD -:105B1000300380F20381002D00F0F280092284F826 -:105B2000702083F3118800212046D4E91D23FFF75C -:105B30006DFF002383F31188DAE794F8812003F0E6 -:105B40007F0343EA022340F20232934200F0C58011 -:105B500021D8B3F5807F48D00DD8012B3FD0022B40 -:105B600000F09380002BB2D104F188026267022218 -:105B7000A267E367C1E7B3F5817F00F09B80B3F5CF -:105B8000407FA4D194F88230012BA0D1B4F88830A2 -:105B900043F0020332E0B3F5006F4DD017D8B3F5F0 -:105BA000A06F31D0A3F5C063012B90D86368204665 -:105BB00094F882205E6894F88310B4F88430B0477B -:105BC000002884D0436863670368A3671AE0B3F5CD -:105BD000106F36D040F6024293427FF478AF5C4BB0 -:105BE00063670223A3670023C3E794F88230012B85 -:105BF0007FF46DAFB4F8883023F00203A4F8883046 -:105C0000C4E91D55E56778E7B4F88030B3F5A06FB7 -:105C10000ED194F88230204684F88A3001F062FC7C -:105C200063681B6813B10121204698470323237042 -:105C30000023C4E91D339CE704F18B036367012350 -:105C4000C3E72378042B10D1302383F31188204637 -:105C5000FFF7BAFE85F311880321636884F88B503F -:105C600021701B680BB12046984794F88230002BB6 -:105C7000DED084F88B300423237063681B68002B0C -:105C8000D6D0022120469847D2E794F884302046A7 -:105C90001D0603F00F010AD501F0D4FC012804D041 -:105CA00002287FF414AF2B4B9AE72B4B98E701F0B7 -:105CB000BBFCF3E794F88230002B7FF408AF94F834 -:105CC000843013F00F01B3D01A06204602D501F03C -:105CD000DDFFADE701F0CEFFAAE794F88230002B9C -:105CE0007FF4F5AE94F8843013F00F01A0D01B06BA -:105CF000204602D501F0B2FF9AE701F0A3FF97E733 -:105D0000142284F8702083F311882B462A462946F2 -:105D10002046FFF769FE85F31188E9E65DB115229B -:105D200084F8702083F3118800212046D4E91D23D4 -:105D3000FFF75AFEFDE60B2284F8702083F31188EA -:105D40002B462A4629462046FFF760FEE3E700BFC0 -:105D50007C930008749300087893000838B590F895 -:105D600070300446002B3ED0063BDAB20F2A34D8FE -:105D70000F2B32D8DFE803F03731310822323131CE -:105D80003131313131313737856FB0F886309D424E -:105D900014D2C3681B8AB5FBF3F203FB12556DB92D -:105DA000302383F311882B462A462946FFF72EFE1F -:105DB00085F311880A2384F870300EE0142384F8E8 -:105DC0007030302383F31188002320461A46194689 -:105DD000FFF70AFE002383F3118838BDC36F03B1B8 -:105DE00098470023E7E70021204601F037FF002114 -:105DF000204601F027FF63681B6813B10621204687 -:105E000098470623D7E7000010B590F87030044695 -:105E1000142B29D017D8062B05D001D81BB110BDE3 -:105E2000093B022BFBD80021204601F017FF00217F -:105E3000204601F007FF63681B6813B10621204666 -:105E40009847062319E0152BE9D10B2380F8703011 -:105E5000302383F3118800231A461946FFF7D6FD35 -:105E6000002383F31188DAE7C3689B695B68002B22 -:105E7000D5D1C36F03B19847002384F87030CEE7C3 -:105E80000023826880F8243083691B6899689142F6 -:105E9000FBD25A680360426010605860704700008F -:105EA0000023826880F8243083691B6899689142D6 -:105EB000FBD85A6803604260106058607047000069 -:105EC00008B50846302383F3118891F82430032B5A -:105ED00005D0042B0DD02BB983F3118808BD8B6A34 -:105EE00000221A604FF0FF338362FFF7C9FF0023DF -:105EF000F2E7D1E9003213605A60F3E7034610B5C8 -:105F00001B68984203D09C688A689442F8D25A6809 -:105F10000B604A601160596010BD0000FFF7B0BF10 -:105F2000064BD96881F824001868026853601A602B -:105F30000122D86080F82420FAF764BA4046002095 -:105F40000C4B30B5DD684B1C87B004460FD02B4698 -:105F5000094A684600F0B6F92046FFF7E1FF009BCA -:105F600013B1684600F0B8F9A86A07B030BDFFF772 -:105F7000D7FFF9E740460020C15E0008044B1A68CD -:105F8000DB6890689B68984294BF002001207047AE -:105F900040460020094B10B51C68D8682268536041 -:105FA0001A600122DC6084F82420FFF779FF0146A3 -:105FB0002046BDE81040FAF725BA00BF4046002051 -:105FC000044B1A68DB6892689B689A4201D9FFF714 -:105FD000E1BF70474046002038B50123084C00253A -:105FE0002370656002F062FB02F088FB05490648F9 -:105FF00002F05EFC0223237085F3118838BD00BFD8 -:10600000E8480020849300084046002000F09AB938 -:10601000EFF3118020B9EFF30583302282F311886A -:106020007047000010B530B9EFF30584C4F30804DD -:1060300014B180F3118810BDFFF7C2FF84F31188FB -:10604000F9E70000034A516853685B1A9842FBD88D -:10605000704700BF001000E08B604B630023CA61F3 -:1060600000F128020B6302230A618B8401238861FB -:1060700081F8263001F11003C26A4A611360C362DD -:1060800001F12C030846CB6270470000D0E90131D2 -:10609000026841F8183CA1F19C033839CB600369D0 -:1060A00041F8243C436941F8203C034B41F8043C4F -:1060B000C3680248FFF7D0BF1D0400084046002017 -:1060C00008B5FFF7E3FFBDE80840FFF727BF000072 -:1060D00038B50E4BDC6804F12C05A062E06AA842DA -:1060E0000FD194F826303BB994F825309B0702BFB6 -:1060F000D4E9043213605A600F20BDE83840FFF73E -:106100000FBF0368E362FFF709FFE7E7404600209F -:10611000302383F31188FFF7DBBF000008B5014689 -:10612000302383F311880820FFF70AFF002383F34D -:10613000118808BD054BDB6821B10360986203201C -:10614000FFF7FEBE4FF0FF30704700BF4046002013 -:1061500003682BB10022026018469962FFF7DEBE89 -:1061600070470000064BDB6839B1426818605A601E -:10617000136043600420FFF7E3BE4FF0FF30704729 -:10618000404600200368984206D01A6802605060BA -:1061900018469962FFF7C2BE7047000038B5044642 -:1061A0000D462068844200D138BD036823605C60DE -:1061B0008562FFF7B3FEF4E7036810B59C68A2425E -:1061C0000CD85C688A600B604C60216059609968EB -:1061D0008A1A9A604FF0FF33836010BD121B1B6850 -:1061E000ECE700000A2938BF0A2170B504460D46C5 -:1061F0000A26601902F054FA02F03CFA041BA54288 -:1062000003D8751C04462E46F3E70A2E04D9012054 -:10621000BDE8704002F014BC70BD0000F8B5144B2E -:106220000D460A2A4FF00A07D96103F11001826076 -:1062300038BF0A224160196914460160486018613C -:10624000A81802F01DFA02F015FA431B0646A342F5 -:1062500006D37C1C28192746354602F021FAF2E7BE -:106260000A2F04D90120BDE8F84002F0E9BBF8BDCF -:1062700040460020F8B506460D4602F0FBF90F4AED -:10628000134653F8107F9F4206D12A4601463046F6 -:10629000BDE8F840FFF7C2BFD169BB68441A2C19AA -:1062A00028BF2C46A34202D92946FFF79BFF22466E -:1062B00031460348BDE8F840FFF77EBF4046002066 -:1062C00050460020C0E90323002310B45DF8044BBE -:1062D0004361FFF7CFBF000010B5194C2369984206 -:1062E0000DD08168D0E9003213605A609A680A4480 -:1062F0009A60002303604FF0FF33A36110BD026872 -:10630000234643F8102F53600022026022699A420C -:1063100003D1BDE8104002F0BDB9936881680B4419 -:10632000936002F0A7F92269E1699268441AA242D7 -:10633000E4D91144BDE81040091AFFF753BF00BF6C -:10634000404600202DE9F047DFF8BC8008F1100737 -:106350002C4ED8F8105002F08DF9D8F81C40AA68DD -:10636000031B9A423ED814444FF00009D5E900328D -:10637000C8F81C4013605A60C5F80090D8F8103077 -:10638000B34201D102F086F989F31188D5E90331CE -:1063900028469847302383F311886B69002BD8D0A7 -:1063A00002F068F96A69A0EB040982464A450DD2F9 -:1063B000022002F045FB0022D8F81030B34208D189 -:1063C00051462846BDE8F047FFF728BF121A22447D -:1063D000F2E712EB09092946384638BF4A46FFF76B -:1063E000EBFEB5E7D8F81030B34208D01444C8F833 -:1063F0001C00211AA960BDE8F047FFF7F3BEBDE815 -:10640000F08700BF504600204046002010B560B91C -:10641000074804790368053C9B6818BF0124984726 -:1064200008B144F00404204610BD0124FBE700BF7E -:10643000A4360020FFF7EABF2DE9F047884617464B -:106440009A460446B0B90D4E3579052D05D0032482 -:106450000DE0013D15F0FF050ED032685346394678 -:106460003046D2F814904246C8470028F1D1204661 -:10647000BDE8F0870424FAE70124F8E7A4360020F9 -:106480002DE9F047884617469A460446B0B90D4EA6 -:106490003579052D05D003240DE0013D15F0FF05EC -:1064A0000ED03268534639463046D2F818904246EC -:1064B000C8470028F1D12046BDE8F0870424FAE758 -:1064C0000124F8E7A436002037B50C46154670B90C -:1064D00051B101290BD10748694603681B6A9847E7 -:1064E00010B9019B04462B60204603B030BD042444 -:1064F000FAE700BFA436002000207047FEE7000046 -:10650000704700004FF0FF30704700004B68436059 -:106510008B688360CB68C3600B6943614B6903621E -:106520008B6943620B6803607047000008B53C4B01 -:1065300040F2FF713B48D3F888200A43C3F8882013 -:10654000D3F8882022F4FF6222F00702C3F88820E3 -:10655000D3F88820D3F8E0200A43C3F8E020D3F82A -:1065600008210A43C3F808212F4AD3F808311146FD -:10657000FFF7CCFF00F5806002F11C01FFF7C6FFBA -:1065800000F5806002F13801FFF7C0FF00F5806080 -:1065900002F15401FFF7BAFF00F5806002F17001CB -:1065A000FFF7B4FF00F5806002F18C01FFF7AEFF4A -:1065B00000F5806002F1A801FFF7A8FF00F58060F8 -:1065C00002F1C401FFF7A2FF00F5806002F1E001D3 -:1065D000FFF79CFF00F5806002F1FC01FFF796FFDA -:1065E00002F58C7100F58060FFF790FF01F0E2FB8F -:1065F0000E4BD3F8902242F00102C3F89022D3F858 -:10660000942242F00102C3F894220522C3F8982094 -:106610004FF06052C3F89C20054AC3F8A02008BD83 -:1066200000440258000002589893000800ED00E072 -:106630001F00080308B501F0DFFDFFF7CDFC104B8C -:10664000D3F8DC2042F04002C3F8DC20D3F8042168 -:1066500022F04002C3F80421D3F80431094B1A6830 -:1066600042F008021A601A6842F004021A6000F050 -:1066700035FD00F035FBBDE8084000F0B5B800BFBF -:10668000004402580018024801207047002070475B -:106690007047000002290CD0032904D001290748C3 -:1066A00018BF00207047032A05D8054800EBC20038 -:1066B0007047044870470020704700BF9C95000851 -:1066C000542200205095000870B59AB0054608463F -:1066D000144601A900F0C2F801A8FBF727FB431CF0 -:1066E0000022C6B25B001046C5E9003423700323C4 -:1066F000023404F8013C01ABD1B202348E4201D81D -:106700001AB070BD13F8011B013204F8010C04F833 -:10671000021CF1E708B5302383F311880348FFF723 -:1067200091F8002383F3118808BD00BFF0480020D2 -:1067300090F8803003F01F02012A07D190F88120E1 -:106740000B2A03D10023C0E91D3315E003F06003D9 -:10675000202B08D1B0F884302BB990F88120212A61 -:1067600003D81F2A04D8FFF74FB8222AEBD0FAE744 -:10677000034A426707228267C3670120704700BF50 -:106780004B22002007B5052917D8DFE801F01916BC -:1067900003191920302383F31188104A0121019035 -:1067A000FFF7F8F8019802210D4AFFF7F3F80D48BA -:1067B000FFF714F8002383F3118803B05DF804FB9E -:1067C000302383F311880748FEF7DEFFF2E730231A -:1067D00083F311880348FEF7F5FFEBE7F094000818 -:1067E00014950008F048002038B50C4D0C4C2A4692 -:1067F0000C4904F10800FFF767FF05F1CA0204F134 -:1068000010000949FFF760FF05F5CA7204F118008E -:106810000649BDE83840FFF757BF00BFC8610020F8 -:1068200054220020CC940008D9940008E494000875 -:1068300070B5044608460D46FBF778FAC6B2204606 -:10684000013403780BB9184670BD32462946FBF770 -:1068500059FA0028F3D10120F6E700002DE9F84F9E -:1068600005460C46FBF762FA2C49C6B22846FFF7EC -:10687000DFFF08B10336F6B229492846FFF7D8FFF3 -:1068800008B11036F6B2632E0DD8DFF89080DFF82D -:106890009090244FDFF894A0DFF894B02E7846B99A -:1068A0002670BDE8F88F29462046BDE8F84F02F073 -:1068B00045BA252E2ED1072241462846FBF722FA5B -:1068C00070B9DBF8003007350A3444F80A3CDBF8CD -:1068D000043044F8063CBBF8083024F8023CDDE7FD -:1068E000082249462846FBF70DFA98B9A21C0E4B20 -:1068F000197802320909C95D02F8041C13F8011B5A -:1069000001F00F015345C95D02F8031CF0D11834A2 -:106910000835C3E7013504F8016BBFE7BC950008F3 -:10692000E4940008CF95000800E8F11F0CE8F11F7F -:10693000C4950008BFF34F8F044B1A695107FCD16F -:10694000D3F810215207F8D1704700BF0020005241 -:1069500008B50D4B1B78ABB9FFF7ECFF0B4BDA68B2 -:10696000D10704D50A4A5A6002F188325A60D3F836 -:106970000C21D20706D5064AC3F8042102F1883259 -:10698000C3F8042108BD00BF266400200020005287 -:106990002301674508B5114B1B78F3B9104B1A69F1 -:1069A000510703D5DA6842F04002DA60D3F81021CB -:1069B000520705D5D3F80C2142F04002C3F80C2150 -:1069C000FFF7B8FF064BDA6842F00102DA60D3F84D -:1069D0000C2142F00102C3F80C2108BD26640020FE -:1069E000002000520F289ABF00F58060400400206C -:1069F000704700004FF400307047000010207047CF -:106A00000F2808B50BD8FFF7EDFF00F5003302683B -:106A1000013204D104308342F9D1012008BD0020A5 -:106A2000FCE700000F2838B505463FD8FFF782FF86 -:106A30001F4CFFF78DFF4FF0FF3307286361C4F849 -:106A400014311DD82361FFF775FF030243F02403BF -:106A5000E360E36843F08003E36023695A07FCD4F2 -:106A60002846FFF767FFFFF7BDFF4FF4003100F046 -:106A70008FFA2846FFF78EFFBDE83840FFF7C0BF0A -:106A8000C4F81031FFF756FFA0F108031B0243F0D2 -:106A90002403C4F80C31D4F80C3143F08003C4F85B -:106AA0000C31D4F810315B07FBD4D9E7002038BD96 -:106AB000002000522DE9F84F05460C46104645EAE5 -:106AC0000203DE0602D00020BDE8F88F20F01F0090 -:106AD000DFF8BCB0DFF8BCA0FFF73AFF04EB00081A -:106AE000444503D10120FFF755FFEDE72022294659 -:106AF000204602F0A7F810B920352034F0E72B46E5 -:106B000005F120021F68791CDDD104339A42F9D1C6 -:106B100005F178431B481C4EB3F5801F1B4B38BF53 -:106B2000184603F1F80332BFD946D1461E46FFF797 -:106B300001FF0760A5EB040C336804F11C0143F06E -:106B400002033360231FD9F8007017F00507FAD14C -:106B500053F8042F8B424CF80320F4D1BFF34F8F2E -:106B6000FFF7E8FE4FF0FF3320222146036028465E -:106B7000336823F00203336002F064F80028BBD0CE -:106B80003846B0E7142100520C2000521420005265 -:106B9000102000521021005210B5084C237828B163 -:106BA0001BB9FFF7D5FE0123237010BD002BFCD0CD -:106BB0002070BDE81040FFF7EDBE00BF2664002046 -:106BC0002DE9F04F0D4685B0814658B111F00D0604 -:106BD00014BF2022082211F00803019304D0431EA1 -:106BE000034269D0002435E0002E37D009F11F019F -:106BF00021F01F094FF00108314F05F00403DFF8C1 -:106C0000CCA005EA080BBBF1000F32D07869C007B1 -:106C10002FD408F101080C37B8F1060FF3D19EB953 -:106C2000284D4946A819019201F08AFD0446002822 -:106C300039D12036019AA02EF3D1494601F080FDCA -:106C4000044600282FD1019A49461F4801F078FDDB -:106C5000044660BB204605B0BDE8F08F0029C9D1CD -:106C600001462846029201F06BFD0446D8B9029A0B -:106C7000C0E713B178694107CBD5AC0702D5786975 -:106C80008007C6D5019911B178690107C1D5494678 -:106C90000AEB4810CDE9022301F052FD0446DDE97C -:106CA00002230028B5D04A460021204601E04A468A -:106CB0000021FBF743F8CDE70246002E96D199E775 -:106CC000E0950008686400202864002048640020E3 -:106CD0000021FFF775BF00000121FFF771BF000021 -:106CE00070B5144D0124144E40F2FF3200210120F2 -:106CF000FBF724F806EB441001342A6955F80C1F01 -:106D000001F00AFD062CF5D137254FF4C05420467A -:106D1000FFF7E2FF014628B122460848BDE870406F -:106D200001F0FABCC4EBC404013D4FEAD404EED137 -:106D300070BD00BFE0950008486400202864002072 -:106D40000421FFF73DBF00004843FFF7C1BF00002B -:106D500008B101F067BD7047B0F5805F10B504461B -:106D600007D8FFF7EDFF28B92046BDE81040FFF730 -:106D7000AFBF002010BD0000FFF7EABF08B501F06B -:106D800067FE034AD2E90032C01842EB010108BD98 -:106D900008650020434BD3E900232DE9F341134359 -:106DA0007CD0FFF7EBFF404A00230027F9F744FBB4 -:106DB00006460D463D4A0023F9F73EFB00231446E4 -:106DC00030462946394AF9F737FB4FF461613C23D5 -:106DD000ADF80170B4FBF1F5B4FBF3F601FB15411E -:106DE00003FB16464624B1FBF3F1314BF6B28DF8A6 -:106DF000004098423CD84FF0640C4FF4C87EA30783 -:106E000004F26C7225D1B2FBFCF30CFB132313BB11 -:106E1000B2FBFEF30EFB1322B2FA82F35B0903F21C -:106E20006D18621C8045D2B217D90FB18DF80040A1 -:106E30000022204C4FF00C0C17460CFB0343D4B23D -:106E4000013213F804C084450CD8A0EB0C000127D4 -:106E5000F5E70023E3E70123E1E7A0EB0800144690 -:106E60000127CCE70FB18DF80140431C8DF80230AB -:106E70009DF80100431C9DF800005038400640EA90 -:106E800043509DF8023040EA034040EA560040EA91 -:106E9000C52040EA411002B0BDE8F0814FF4041073 -:106EA000F9E700BF0865002040420F008051010053 -:106EB00090230B00289600080244074BD2B210B56D -:106EC000904200D110BD441C00B253F8200041F89C -:106ED000040BE0B2F4E700BF504000580E4B30B551 -:106EE0001C6F240405D41C6F1C671C6F44F4004401 -:106EF0001C670A4C02442368D2B243F480732360B7 -:106F0000074B904200D130BD441C51F8045B00B2E5 -:106F100043F82050E0B2F4E7004402580048025819 -:106F20005040005807B5012201A90020FFF7C4FF17 -:106F3000019803B05DF804FB13B50446FFF7F2FFB8 -:106F4000A04205D0012201A900200194FFF7C6FF4D -:106F500002B010BD10B56424013C4FF47A70FFF705 -:106F6000DDF814F0FF04F7D1084B4FF080721424C1 -:106F70009A6103F5805308229A61013C4FF47A70BC -:106F8000FFF7CCF814F0FF04F7D110BD0000025851 -:106F90000144BFF34F8F064B884204D3BFF34F8F9A -:106FA000BFF36F8F7047C3F85C022030F4E700BF77 -:106FB00000ED00E00144BFF34F8F064B884204D33D -:106FC000BFF34F8FBFF36F8F7047C3F8700220304D -:106FD000F4E700BF00ED00E070B5054616460C462C -:106FE00001201021FFF7B0FE286046733CB1204617 -:106FF00036B1FFF7A5FE2B68186000B19C6070BD2C -:10700000FFF76AFEF7E7000070B50E461546044626 -:1070100000B30B6843608368934210D213B10068D9 -:10702000FFF796FE637B28462BB1FFF789FE2060B1 -:1070300020B9A06070BDFFF74FFEF8E7A56020689B -:1070400005F11F01306021F01F01FFF7A1FF0120B2 -:107050002073EFE70120EDE710B5044640B100686A -:10706000884205D1606808B1FAF742FE0023237315 -:1070700010BD000070B50E461546044620B3836867 -:107080009A4210D913B10068FFF762FE637B28466D -:107090002BB1FFF755FE206020B9A06070BDFFF74F -:1070A0001BFEF8E7A560316819B12A462068FAF797 -:1070B0001FFE206805F11F01306021F01F01FFF75E -:1070C00079FF01202073E9E70120E7E720B1036899 -:1070D0008B4204BF0023037370470000034B1A6800 -:1070E0001AB9034AD2F8D0241A60704710650020FC -:1070F0000040025808B5FFF7F1FF024B1868C0F3D3 -:10710000806008BD1065002070B5BFF34F8FBFF3DE -:107110006F8F1A4A0021C2F85012BFF34F8FBFF38E -:107120006F8F536943F400335361BFF34F8FBFF345 -:107130006F8FC2F88410BFF34F8FD2F8803043F6C0 -:10714000E074C3F3C900C3F34E335B0103EA0406E2 -:10715000014646EA81750139C2F86052F9D2203BF6 -:1071600013F1200FF2D1BFF34F8F536943F48033F3 -:107170005361BFF34F8FBFF36F8F70BD00ED00E021 -:10718000FEE70000214B2248224A70B5904237D3D7 -:10719000214BC11EDA1C121A22F003028B4238BFA7 -:1071A00000220021FAF7CAFD1C4A0023C2F88430ED -:1071B000BFF34F8FD2F8803043F6E074C3F3C900B9 -:1071C000C3F34E335B0103EA0406014646EA8175C8 -:1071D0000139C2F86C52F9D2203B13F1200FF2D1E1 -:1071E000BFF34F8FBFF36F8FBFF34F8FBFF36F8F1F -:1071F0000023C2F85032BFF34F8FBFF36F8F70BDC3 -:1072000053F8041B40F8041BC0E700BF9097000828 -:1072100020670020206700202067002000ED00E0AC -:10722000074BD3F8D81021EA0001C3F8D810D3F8DF -:10723000002122EA0002C3F80021D3F80031704790 -:107240000044025870B5D0E9244300224FF0FF35C6 -:107250009E6804EB42135101D3F80009002805DAB7 -:10726000D3F8000940F08040C3F80009D3F8000BC0 -:10727000002805DAD3F8000B40F08040C3F8000B7B -:10728000013263189642C3F80859C3F8085BE0D28C -:107290004FF00113C4F81C3870BD0000890141F0A3 -:1072A0002001016103699B06FCD41220FEF7CABECF -:1072B00010B50A4C2046FEF74BFB094BC4F8903042 -:1072C000084BC4F89430084C2046FEF741FB074BAE -:1072D000C4F89030064BC4F8943010BD14650020FB -:1072E0000000084064960008B065002000000440DB -:1072F0007096000870B503780546012B5CD1434BAE -:10730000D0F89040984258D1414B0E216520D3F8D7 -:10731000D82042F00062C3F8D820D3F8002142F010 -:107320000062C3F80021D3F80021D3F8802042F096 -:107330000062C3F88020D3F8802022F00062C3F8F6 -:107340008020D3F8803000F041FF324BE360324BB5 -:10735000C4F800380023D5F89060C4F8003EC0237C -:1073600023604FF40413A3633369002BFCDA012379 -:107370000C203361FEF766FE3369DB07FCD4122074 -:10738000FEF760FE3369002BFCDA00262846A66073 -:10739000FFF758FF6B68C4F81068DB68C4F814681E -:1073A000C4F81C6883BB1D4BA3614FF0FF336361BE -:1073B000A36843F00103A36070BD194B9842C9D183 -:1073C000134B4FF08060D3F8D82042F00072C3F81E -:1073D000D820D3F8002142F00072C3F80021D3F87E -:1073E0000021D3F8802042F00072C3F88020D3F847 -:1073F000802022F00072C3F88020D3F88030FFF79D -:107400000FFF0E214D209EE7064BCDE714650020AF -:10741000004402584014004003002002003C30C0E9 -:10742000B0650020083C30C0F8B5D0F89040054663 -:1074300000214FF000662046FFF730FFD5F894108A -:1074400000234FF001128F684FF0FF30C4F834383A -:10745000C4F81C2804EB431201339F42C2F80069B0 -:10746000C2F8006BC2F80809C2F8080BF2D20B6828 -:10747000D5F89020C5F8983063621023136116691F -:1074800016F01006FBD11220FEF7DCFDD4F8003810 -:1074900023F4FE63C4F80038A36943F4402343F0A7 -:1074A0001003A3610923C4F81038C4F814380B4B37 -:1074B000EB604FF0C043C4F8103B094BC4F8003BED -:1074C000C4F81069C4F80039D5F8983003F11002F7 -:1074D00043F48013C5F89820A362F8BD40960008D5 -:1074E00040800010D0F8902090F88A10D2F8003830 -:1074F00023F4FE6343EA0113C2F80038704700002A -:107500002DE9F84300EB8103D0F890500C468046FB -:10751000DA680FFA81F94801166806F00306731E4F -:10752000022B05EB41134FF0000194BFB604384E17 -:10753000C3F8101B4FF0010104F1100398BF06F1CE -:10754000805601FA03F3916998BF06F500460029B9 -:107550003AD0578A04F15801374349016F50D5F8A2 -:107560001C180B430021C5F81C382B180127C3F841 -:107570001019A7405369611E9BB3138A928B9B0815 -:10758000012A88BF5343D8F89820981842EA034349 -:1075900001F140022146C8F89800284605EB820216 -:1075A0005360FFF77BFE08EB8900C3681B8A43EA40 -:1075B000845348341E4364012E51D5F81C381F43B0 -:1075C000C5F81C78BDE8F88305EB4917D7F8001B10 -:1075D00021F40041C7F8001BD5F81C1821EA030369 -:1075E000C0E704F13F030B4A2846214605EB83031D -:1075F0005A60FFF753FE05EB4910D0F8003923F429 -:107600000043C0F80039D5F81C3823EA0707D7E74C -:107610000080001000040002D0F894201268C0F826 -:107620009820FFF70FBE00005831D0F89030490184 -:107630005B5813F4004004D013F4001F0CBF022069 -:10764000012070474831D0F8903049015B5813F45D -:10765000004004D013F4001F0CBF0220012070472B -:1076600000EB8101CB68196A0B6813604B685360AB -:107670007047000000EB810330B5DD68AA6913682C -:10768000D36019B9402B84BF402313606B8A146800 -:10769000D0F890201C4402EB4110013C09B2B4FB2D -:1076A000F3F46343033323F0030343EAC44343F097 -:1076B000C043C0F8103B2B6803F00303012B0ED12D -:1076C000D2F8083802EB411013F4807FD0F8003B69 -:1076D00014BF43F0805343F00053C0F8003B02EB6B -:1076E0004112D2F8003B43F00443C2F8003B30BDE6 -:1076F0002DE9F041D0F8906005460C4606EB4113A9 -:10770000D3F8087B3A07C3F8087B08D5D6F81438B5 -:107710001B0704D500EB8103DB685B689847FA0719 -:107720001FD5D6F81438DB071BD505EB8403D968C1 -:10773000CCB98B69488A5A68B2FBF0F600FB162276 -:107740008AB91868DA6890420DD2121AC3E9002487 -:10775000302383F3118821462846FFF78BFF84F3FB -:107760001188BDE8F081012303FA04F26B8923EA52 -:1077700002036B81CB68002BF3D021462846BDE87D -:10778000F041184700EB81034A0170B5DD68D0F87D -:1077900090306C692668E66056BB1A444FF40020AE -:1077A000C2F810092A6802F00302012A0AB20ED1B7 -:1077B000D3F8080803EB421410F4807FD4F80009D2 -:1077C00014BF40F0805040F00050C4F8000903EBB3 -:1077D0004212D2F8000940F00440C2F80009012228 -:1077E000D3F8340802FA01F10143C3F8341870BD2C -:1077F00019B9402E84BF4020206020681A442E8A88 -:107800008419013CB4FBF6F440EAC44040F0005057 -:10781000C6E700002DE9F843D0F8906005460C4615 -:107820004F0106EB4113D3F8088918F0010FC3F894 -:1078300008891CD0D6F81038DB0718D500EB810377 -:10784000D3F80CC0DCF81430D3F800E0DA689645C1 -:1078500030D2A2EB0E024FF000091A60C3F8049078 -:10786000302383F31188FFF78DFF89F3118818F017 -:10787000800F1DD0D6F834380126A640334217D0E9 -:1078800005EB84030134D5F89050D3F80CC0E4B272 -:107890002F44DCF8142005EB0434D2F800E05168E2 -:1078A000714514D3D5F8343823EA0606C5F8346890 -:1078B000BDE8F883012303FA01F2038923EA0203F6 -:1078C0000381DCF80830002BD1D09847CFE7AEEB2E -:1078D0000103BCF81000834228BF0346D7F81809FB -:1078E00080B2B3EB800FE3D89068A0F1040959F897 -:1078F000048FC4F80080A0EB09089844B8F1040F85 -:10790000F5D818440B4490605360C8E72DE9F84F50 -:10791000D0F8905004466E69AB691E4016F480584A -:107920006E6103D0BDE8F84FFEF782B8002E12DA80 -:10793000D5F8003E9B0705D0D5F8003E23F00303A1 -:10794000C5F8003ED5F80438204623F00103C5F8F9 -:107950000438FEF79BF8370505D52046FFF772FC83 -:107960002046FEF781F8B0040CD5D5F8083813F09E -:10797000060FEB6823F470530CBF43F4105343F429 -:10798000A053EB6031071BD56368DB681BB9AB699B -:1079900023F00803AB612378052B0CD1D5F8003E0A -:1079A0009A0705D0D5F8003E23F00303C5F8003E42 -:1079B0002046FEF76BF86368DB680BB120469847FA -:1079C000F30200F1BA80B70226D5D4F890900027D0 -:1079D0004FF0010A09EB4712D2F8003B03F44023B1 -:1079E000B3F5802F11D1D2F8003B002B0DDA62895C -:1079F0000AFA07F322EA0303638104EB8703DB68D7 -:107A0000DB6813B13946204698470137D4F89430E3 -:107A1000FFB29B689F42DDD9F00619D5D4F89000DB -:107A2000026AC2F30A1702F00F0302F4F012B2F571 -:107A3000802F00F0CA80B2F5402F09D104EB8303F8 -:107A4000002200F58050DB681B6A974240F0B0804E -:107A50003003D5F8185835D5E90303D50021204661 -:107A6000FFF746FEAA0303D501212046FFF740FE9B -:107A70006B0303D502212046FFF73AFE2F0303D5FF -:107A800003212046FFF734FEE80203D504212046F7 -:107A9000FFF72EFEA90203D505212046FFF728FE99 -:107AA0006A0203D506212046FFF722FE2B0203D5EA -:107AB00007212046FFF71CFEEF0103D508212046D1 -:107AC000FFF716FE700340F1A780E90703D50021F8 -:107AD0002046FFF79FFEAA0703D501212046FFF7A6 -:107AE00099FE6B0703D502212046FFF793FE2F076F -:107AF00003D503212046FFF78DFEEE0603D50421B2 -:107B00002046FFF787FEA80603D505212046FFF78C -:107B100081FE690603D506212046FFF77BFE2A0673 -:107B200003D507212046FFF775FEEB0574D52046E7 -:107B30000821BDE8F84FFFF76DBED4F890904FF0E4 -:107B4000000B4FF0010AD4F894305FFA8BF79B6872 -:107B50009F423FF638AF09EB4713D3F8002902F4F0 -:107B60004022B2F5802F20D1D3F80029002A1CDA58 -:107B7000D3F8002942F09042C3F80029D3F8002935 -:107B8000002AFBDB3946D4F89000FFF787FB2289F7 -:107B90000AFA07F322EA0303238104EB8703DB6875 -:107BA0009B6813B13946204698470BF1010BCAE791 -:107BB000910701D1D0F80080072A02F101029CBF91 -:107BC00003F8018B4FEA18283FE704EB830300F525 -:107BD0008050DA68D2F818C0DCF80820DCE9001C14 -:107BE000A1EB0C0C00218F4208D1DB689B699A68DD -:107BF0003A449A605A683A445A6029E711F0030FF0 -:107C000001D1D0F800808C4501F1010184BF02F858 -:107C1000018B4FEA1828E6E7BDE8F88F08B503485E -:107C2000FFF774FEBDE8084000F070BF1465002047 -:107C300008B50348FFF76AFEBDE8084000F066BFDC -:107C4000B0650020D0F8903003EB4111D1F8003B33 -:107C500043F40013C1F8003B70470000D0F89030A7 -:107C600003EB4111D1F8003943F40013C1F8003996 -:107C700070470000D0F8903003EB4111D1F8003B81 -:107C800023F40013C1F8003B70470000D0F8903097 -:107C900003EB4111D1F8003923F40013C1F8003986 -:107CA00070470000064BD3F8DC200243C3F8DC2009 -:107CB000D3F804211043C3F80401D3F8043170470A -:107CC000004402583A4B4FF0FF31D3F8802062F065 -:107CD0000042C3F88020D3F8802002F00042C3F8AD -:107CE0008020D3F88020D3F88420C3F88410D3F800 -:107CF00084200022C3F88420D3F88400D86F40F099 -:107D0000FF4040F4FF0040F4DF4040F07F00D867C0 -:107D1000D86F20F0FF4020F4FF0020F4DF4020F077 -:107D20007F00D867D86FD3F888006FEA40506FEAB9 -:107D30005050C3F88800D3F88800C0F30A00C3F895 -:107D40008800D3F88800D3F89000C3F89010D3F8D7 -:107D50009000C3F89020D3F89000D3F89400C3F8B3 -:107D60009410D3F89400C3F89420D3F89400D3F877 -:107D70009800C3F89810D3F89800C3F89820D3F867 -:107D80009800D3F88C00C3F88C10D3F88C00C3F89B -:107D90008C20D3F88C00D3F89C00C3F89C10D3F847 -:107DA0009C10C3F89C20D3F89C3000F0D7B900BFDA -:107DB0000044025808B50122534BC3F80821534B25 -:107DC000D3F8F42042F00202C3F8F420D3F81C21C7 -:107DD00042F00202C3F81C210222D3F81C314C4BA2 -:107DE000DA605A689104FCD54A4A1A6001229A6006 -:107DF000494ADA6000221A614FF440429A61444BCA -:107E00009A699204FCD51A6842F480721A603F4B5A -:107E10001A6F12F4407F04D04FF480321A670022A8 -:107E20001A671A6842F001021A60384B1A68500744 -:107E3000FCD500221A611A6912F03802FBD1012127 -:107E400019604FF0804159605A67344ADA62344A07 -:107E50001A611A6842F480321A602C4B1A68910336 -:107E6000FCD51A6842F480521A601A689204FCD554 -:107E70002C4A2D499A6200225A63196301F57C014C -:107E8000DA6301F5E77199635A64284A1A64284A4B -:107E9000DA621A6842F0A8521A601C4B1A6802F0A3 -:107EA0002852B2F1285FF9D148229A614FF48862D2 -:107EB000DA6140221A621F4ADA641F4A1A651F4AB1 -:107EC0005A651F4A9A6532231E4A1360136803F0ED -:107ED0000F03022BFAD10D4A136943F00303136118 -:107EE000136903F03803182BFAD14FF00050FFF755 -:107EF000D9FE4FF08040FFF7D5FE4FF00040BDE8BF -:107F00000840FFF7CFBE00BF008000510044025878 -:107F10000048025800C000F0020000010000FF010C -:107F2000008890083220600063020901470E0508AE -:107F3000DD0BBF0120000020000001100910E0004F -:107F400000010110002000524FF0B04208B5D2F8F5 -:107F5000883003F00103C2F8883023B1044A136863 -:107F60000BB150689847BDE8084000F0CFBD00BF96 -:107F7000986600204FF0B04208B5D2F8883003F080 -:107F80000203C2F8883023B1044A93680BB1D06869 -:107F90009847BDE8084000F0B9BD00BF98660020D2 -:107FA0004FF0B04208B5D2F8883003F00403C2F8AD -:107FB000883023B1044A13690BB150699847BDE872 -:107FC000084000F0A3BD00BF986600204FF0B0420B -:107FD00008B5D2F8883003F00803C2F8883023B11E -:107FE000044A93690BB1D0699847BDE8084000F096 -:107FF0008DBD00BF986600204FF0B04208B5D2F8A2 -:10800000883003F01003C2F8883023B1044A136AA1 -:108010000BB1506A9847BDE8084000F077BD00BF3B -:10802000986600204FF0B04310B5D3F8884004F4B0 -:108030007872C3F88820A30604D5124A936A0BB15C -:10804000D06A9847600604D50E4A136B0BB1506B8B -:108050009847210604D50B4A936B0BB1D06B984718 -:10806000E20504D5074A136C0BB1506C9847A30581 -:1080700004D5044A936C0BB1D06C9847BDE810400E -:1080800000F044BD986600204FF0B04310B5D3F81F -:10809000884004F47C42C3F88820620504D5164A5F -:1080A000136D0BB1506D9847230504D5124A936D9B -:1080B0000BB1D06D9847E00404D50F4A136E0BB195 -:1080C000506E9847A10404D50B4A936E0BB1D06E45 -:1080D0009847620404D5084A136F0BB1506F984754 -:1080E000230404D5044A936F0BB1D06F9847BDE8C1 -:1080F000104000F00BBD00BF9866002008B5034893 -:10810000FCF70CFDBDE8084000F000BDA4360020DF -:1081100008B50348FCF706FEBDE8084000F0F6BCD1 -:10812000FC38002008B50348FCF7FCFDBDE808401A -:1081300000F0ECBC6839002008B50348FCF7F2FDFC -:10814000BDE8084000F0E2BCD439002008B500F0DA -:108150003FFDBDE8084000F0D9BC0000062108B58D -:10816000084600F033F80621072000F02FF806211A -:10817000082000F02BF80621092000F027F806213E -:108180000A2000F023F80621172000F01FF806212E -:10819000282000F01BF809217A2000F017F80921A7 -:1081A000312000F013F80721322000F00FF80C21E5 -:1081B000262000F00BF80C21272000F007F80C21F6 -:1081C0005220BDE8084000F001B80000090100F1AC -:1081D0006043012203F56143C9B283F8001300F044 -:1081E0001F039A4043099B0003F1604303F5614379 -:1081F000C3F880211A60704708B5FFF763FD00F0EF -:10820000AFFCFDF7C9F9FDF767F9FDF79FFBFDF737 -:1082100071FAFEF73DFABDE8084000F029BA000007 -:1082200030B50433039C0172002104FB0325C160B7 -:10823000C0E90653049B0363059BC0E90000C0E945 -:108240000422C0E90842C0E90A11436330BD0000BE -:108250000022416AC260C0E90411C0E90A226FF03D -:108260000101FDF79BBF0000D0E90432934201D128 -:10827000C2680AB9181D7047002070470369196069 -:108280000021C2680132C260C2691344826993420C -:10829000036124BF436A0361FDF774BF38B5044628 -:1082A0000D46E3683BB162690020131D1268A362AA -:1082B0001344E36207E0237A33B929462046FDF7E9 -:1082C00051FF0028EDDA38BD6FF00100FBE7000038 -:1082D000C368C269013BC360436913448269934226 -:1082E000436124BF436A436100238362036B03B18C -:1082F0001847704770B53023044683F31188866AA7 -:108300003EB9FFF7CBFF054618B186F31188284622 -:1083100070BDA36AE26A13F8015B9342A36202D3C1 -:108320002046FFF7D5FF002383F31188EFE7000015 -:108330002DE9F84F04460E46174698464FF030098F -:1083400089F311880025AA46D4F828B0BBF1000FA4 -:1083500009D141462046FFF7A1FF20B18BF31188D8 -:108360002846BDE8F88FD4E90A12A7EB050B521A8C -:10837000934528BF9346BBF1400F1BD9334601F10B -:10838000400251F8040B914243F8040BF9D1A36A5F -:10839000403640354033A362D4E90A239A4202D3DF -:1083A0002046FFF795FF8AF31188BD42D8D289F3A2 -:1083B0001188C9E730465A46F9F79AFCA36A5E4429 -:1083C0005D445B44A362E7E710B5029C043301728D -:1083D00003FB0421C460C0E906130023C0E90A338B -:1083E000039B0363049BC0E90000C0E90422C0E9C9 -:1083F0000842436310BD0000026A6FF00101C260D1 -:10840000426AC0E904220022C0E90A22FDF7C6BE82 -:10841000D0E904239A4201D1C26822B9184650F823 -:10842000043B0B60704700231846FAE7C36800213D -:10843000C2690133C3604369134482699342436153 -:1084400024BF436A4361FDF79DBE000038B5044672 -:108450000D46E3683BB1236900201A1DA262E26960 -:108460001344E36207E0237A33B929462046FDF737 -:1084700079FE0028EDDA38BD6FF00100FBE700005F -:1084800003691960C268013AC260C2691344826913 -:108490009342036124BF436A036100238362036B39 -:1084A00003B118477047000070B530230D460446ED -:1084B000114683F31188866A2EB9FFF7C7FF10B102 -:1084C00086F3118870BDA36A1D70A36AE26A013346 -:1084D0009342A36204D3E16920460439FFF7D0FF39 -:1084E000002080F31188EDE72DE9F84F04460D4692 -:1084F000904699464FF0300A8AF311880026B34619 -:10850000A76A4FB949462046FFF7A0FF20B187F37D -:1085100011883046BDE8F88FD4E90A073A1AA8EB6B -:108520000607974228BF1746402F1BD905F1400385 -:1085300055F8042B9D4240F8042BF9D1A36A40362C -:108540004033A362D4E90A239A4204D3E169204666 -:108550000439FFF795FF8BF311884645D9D28AF38A -:108560001188CDE729463A46F9F7C2FBA36A3D4494 -:108570003E443B44A362E5E7D0E904239A4217D185 -:10858000C3689BB1836A8BB1043B9B1A0ED0136006 -:10859000C368013BC360C3691A4483699A4202619C -:1085A00024BF436A03610023836201231846704796 -:1085B0000023FBE701F01F03F0B502F01F0456098A -:1085C0005A1C0123B6EB511F50F8265003FA02F350 -:1085D0004FEA511703F1FF333DBF50F82720C4F194 -:1085E0002000134003EA05003BBF03FA00F225FA1E -:1085F00004F0E0401043F0BD70B57E227F210546B7 -:10860000FFF7D8FF18B1012819D0002070BD3E2215 -:1086100049212846FFF7CEFF2F2204463121284664 -:10862000FFF7C8FF06460134502202365321284680 -:10863000B440FFF7BFFF093804FA00F0E6E7302244 -:1086400045212846FFF7B6FF01308002DEE7000033 -:1086500090F8D63090F8D7201B0403EB026390F813 -:10866000D42090F8D500134403EB0020704700009D -:1086700000F084BA014B586A704700BF000C0040FC -:10868000034B002258631A610222DA60704700BF70 -:10869000000C0040014B0022DA607047000C0040E3 -:1086A000014B5863704700BF000C0040024B034A67 -:1086B0001A60034A5A6070476466002020670020F1 -:1086C00000000220074B494210B55C68201A0840A0 -:1086D0001968821A8A4203D3A24201D85A6010BD97 -:1086E0000020FCE76466002008B5302383F311887E -:1086F000FFF7E8FF002383F3118808BD0448054B0A -:1087000003600023C0E901330C3000F017B900BF4B -:108710006C660020E9860008CB1D083A23F00703A9 -:10872000591A521A10B4D2080024C0E900438460D8 -:108730000C301C605A605DF8044B00F0FFB800007C -:108740002DE9F74F364FCD1D8846002818BF074644 -:10875000082A4FEAD50538BF082207F10C003C1D56 -:108760009146019000F02CF9019809F10701C9F137 -:10877000000E2246246864B900F02CF93B68CBB3A4 -:1087800008224946E8009847044698B340E9027831 -:1087900030E004EB010CD4F804A00CEA0E0C0AF152 -:1087A0000106ACF1080304EBC6069E42E1D9A6EB34 -:1087B0000C0CB5EBEC0F4FEAEC0BDAD89C421DD257 -:1087C00004F10802AB45A3EB02024FEAE202626049 -:1087D00009D9691CED4303EBC1025D44556025686E -:1087E00043F8315022601C46C3F8048044F8087BEB -:1087F00000F0F0F8204603B0BDE8F08FAA452168EC -:1088000002D111602346EEE7013504EBC50344F8BD -:10881000351003F10801761AF6105E601360F1E777 -:108820006C66002073B50446A0F1080550F8080CEA -:1088300054F8043C061D0C3007330190DB0844F863 -:10884000043C00F0BDF8334601989E421A6801D0FE -:10885000AB4228D20AB1954225D244F8082C54F8EC -:10886000042C1D60013254F8081C05EBC206B1420D -:1088700006D14E68324444F8042C0A6844F8082CA7 -:108880005E68711C03EBC1018D4207D154F8042CC2 -:10889000013232445A6054F8082C1A6002B0BDE824 -:1088A000704000F097B81346CFE70000FEE70000E5 -:1088B00070B51E4B0025044686B058600E46056311 -:1088C000816300F0FBF804F12803A5606563C4E947 -:1088D0000A3304F11003C4E904334FF0FF33C4E951 -:1088E0000044C4E90635FFF7C5FE2B46024604F1F5 -:1088F0003C012046C4E9082380230D4A6567FDF743 -:10890000ABFB7368E0600B4A03620123009280F8BE -:1089100024306846F26801923269CDE90223064BA1 -:10892000CDE90435FDF7CCFB06B070BDE84800206A -:10893000849600087C960008AD8800080023C0E9F2 -:10894000000083600361704770B51C4B0546846866 -:10895000DE685CB3B44213D103690133036170BDB7 -:10896000A36094F8243083B1062B15D1A06A214668 -:10897000D4E9003213605A60FDF7C0FAA36A9C681C -:10898000B368A2689A42EBD306E0D4E900322046ED -:1089900013605A60FDF7C2FA28463146FDF7AEFA79 -:1089A000B5620620BDE87040FDF7BABA036986607B -:1089B00001330361336BC3603063D0E7404600206E -:1089C00008B5302383F31188FFF7BEFF002383F33C -:1089D000118808BD194BD96883688B4210B520D126 -:1089E000302383F311880269013A0261B2B9046845 -:1089F000C368A0420B631ED04A6B9BB901238A60F7 -:108A0000036103681A68026050601A6B8360C26079 -:108A100018631846FDF782FAFDF7D2FA002383F3B4 -:108A2000118810BD1C68A34203D0A468A24238BFBD -:108A30002246DB68E1E78260F0E700BF40460020A5 -:108A4000024A536B18435063704700BF40460020F2 -:108A500070B5104E82B0FDF7DBFA0546FFF70AFE4F -:108A6000326803469042336037BF0B4A0A49516867 -:108A7000146836BF0131D1E900415160041928461C -:108A800041F100010191FDF7CDFA2046019902B0B4 -:108A900070BD00BF8C66002090660020EFF3098354 -:108AA000054968334A6B22F001024A6383F309885F -:108AB000002383F31188704700EF00E0302080F33B -:108AC000118862B60D4B0E4AD96821F4E0610904A1 -:108AD000090C0A430B49DA60D3F8FC2042F080729B -:108AE000C3F8FC20084AC2F8B01F116841F0010128 -:108AF00011602022DA7783F82200704700ED00E051 -:108B00000003FA0555CEACC5001000E0302310B5C7 -:108B100083F311880E4B5B6813F4006314D0F1EEFD -:108B2000103AEFF309844FF08073683CE361094B1E -:108B3000DB6B236684F30988FDF720FA10B1064B3E -:108B4000A36110BD054BFBE783F31188F9E700BF74 -:108B500000ED00E000EF00E02F0400083204000800 -:108B60000023054A19460133102BC2E9001102F116 -:108B70000802F8D1704700BF98660020114BD3F867 -:108B8000E82042F00802C3F8E820D3F8102142F0B0 -:108B90000802C3F810210C4AD3F81031D36B43F00C -:108BA0000803D363C722094B9A624FF0FF32DA629F -:108BB00000229A615A63DA605A6001225A611A608F -:108BC000704700BF004402580010005C000C0040D9 -:108BD000094A08B51169D3680B40D9B29B076FEAFF -:108BE0000101116107D5302383F31188FDF70EFAD7 -:108BF000002383F3118808BD000C0040FEF7A8B8DD -:108C0000012838BF012010B504462046FEF760F861 -:108C100030B900F007F808B900F00CF88047F4E725 -:108C200010BD0000024B1868BFF35B8F704700BF98 -:108C30001867002008B5062000F056F80120FDF75F -:108C40005DFC000010B501390244904201D10020C2 -:108C500005E0037811F8014FA34201D0181B10BDA5 -:108C60000130F2E7884210B501EB020402D98442D8 -:108C7000234607D8431EA14208D011F8012B03F860 -:108C8000012FF8E7024401468A4200D110BD13F8D3 -:108C9000014D02F8014DF7E71F2938B504460D468E -:108CA00004D9162303604FF0FF3038BD426C12B177 -:108CB00052F821304BB9204600F030F82A460146E0 -:108CC0002046BDE8384000F017B8012B0AD0591CE7 -:108CD00003D1162303600120E7E7002442F8254072 -:108CE000284698470020E0E7024B01461868FFF746 -:108CF000D3BF00BF7422002038B5074D00230446BF -:108D0000084611462B60FDF7FDFB431C02D12B6882 -:108D100003B1236038BD00BF1C670020FDF7ECBB2A -:108D2000C9B2034610F8012B1AB18A42F9D118468C -:108D30007047002918BF0023F9E70000034611F827 -:108D4000012B03F8012B002AF9D1704710B5013926 -:108D5000034632B111F8014F03F8014B013A002CE0 -:108D6000F7D11A440021934200D110BD03F8011B32 -:108D7000F9E700004D4435002D2D0A002F61726483 -:108D80007570696C6F742E6162696E002F61726418 -:108D90007570696C6F742D7665726966792E616283 -:108DA000696E002F6172647570696C6F742D666CEA -:108DB0006173682E6162696E002F617264757069FB -:108DC0006C6F742D666C61736865642E6162696E88 -:108DD000000000000000000000000000090F000873 -:108DE000A50F000855110008DD0F00089D0F0008B1 -:108DF0000000000000000000050F0008B10F00088F -:108E00008D110008010F00080D0F000853544D3359 -:108E10003248373F3F3F0053544D33324837337861 -:108E20002F3732780053544D3332483734332F378D -:108E300035332F373530000001105A000310590028 -:108E400001205800032056002F0000005375636373 -:108E500065737366756C6C79206D6F756E7465647F -:108E6000205344436172642028736C6F77646F777A -:108E70006E3D2575290A0000EB7690455846415411 -:108E800020202000464154333220202000000000E2 -:108E90002A3A3C3E7C223F7F002B2C3B3D5B5D0011 -:108EA0004355454141414143454545494949414172 -:108EB0004592924F4F4F5555594F554F9C4F9E9F3E -:108EC00041494F55A5A5A6A7A8A9AAABACADAEAF81 -:108ED000B0B1B2B3B4414141B8B9BABBBCBDBEBF79 -:108EE000C0C1C2C3C4C54141C8C9CACBCCCDCECF15 -:108EF000D1D145454549494949D9DADBDCDD49DF6E -:108F00004FE14F4F4F4FE6E8E85555555959EEEFB1 -:108F1000F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFFD9 -:108F200001030507090E10121416181C1E0000007C -:108F300061001A03E0001703F8000703FF000100B7 -:108F400078010001300132010601390110014A01A6 -:108F50002E017901060180014D0043028101820149 -:108F600082018401840186018701870189018A01C8 -:108F70008B018B018D018E018F0190019101910177 -:108F800093019401F60196019701980198013D0221 -:108F90009B019C019D0120029F01A001A001A20153 -:108FA000A201A401A401A601A701A701A901AA0188 -:108FB000AB01AC01AC01AE01AF01AF01B101B20137 -:108FC000B301B301B501B501B701B801B801BA01E8 -:108FD000BB01BC01BC01BE01F701C001C101C2015E -:108FE000C301C401C501C401C701C801C701CA0149 -:108FF000CB01CA01CD011001DD0101008E01DE01AE -:109000001201F3010300F101F401F401F801280158 -:10901000220212013A020900652C3B023B023D028A -:10902000662C3F0240024102410246020A015302FD -:10903000400081018601550289018A0158028F0191 -:109040005A0290015C025D025E025F0293016102BE -:10905000620294016402650266026702970196014A -:109060006A02622C6C026D026E029C017002710237 -:109070009D01730274029F017602770278027902E1 -:109080007A027B027C02642C7E027F02A6018102AE -:109090008202A9018402850286028702AE0144028F -:1090A000B101B20145028D028E028F02900291023F -:1090B000B7017B030300FD03FE03FF03AC030400C1 -:1090C0008603880389038A03B1031103C2030200E4 -:1090D000A303A303C4030803CC0303008C038E0380 -:1090E0008F03D8031801F2030A00F903F303F40312 -:1090F000F503F603F703F703F903FA03FA03300461 -:10910000200350041007600422018A043601C104C0 -:109110000E01CF040100C004D004440161052604FF -:10912000000000007D1D0100632C001E9601A01EA2 -:109130005A01001F0806101F0606201F0806301FD0 -:109140000806401F0606511F0700591F521F5B1FCC -:10915000541F5D1F561F5F1F601F0806701F0E0003 -:10916000BA1FBB1FC81FC91FCA1FCB1FDA1FDB1FB7 -:10917000F81FF91FEA1FEB1FFA1FFB1F801F0806CD -:10918000901F0806A01F0806B01F0400B81FB91FD3 -:10919000B21FBC1FCC1F0100C31FD01F0206E01F5F -:1091A0000206E51F0100EC1FF31F0100FC1F4E210A -:1091B0000100322170211002842101008321D0247A -:1091C0001A05302C2F04602C0201672C0601752C27 -:1091D0000201802C6401002D260841FF1A030000C3 -:1091E000C700FC00E900E200E400E000E500E70061 -:1091F000EA00EB00E800EF00EE00EC00C400C50060 -:10920000C900E600C600F400F600F200FB00F90019 -:10921000FF00D600DC00F800A300D800D7009201C0 -:10922000E100ED00F300FA00F100D100AA00BA005D -:10923000BF00AE00AC00BD00BC00A100AB00BB0095 -:1092400091259225932502252425C100C200C00046 -:10925000A9006325512557255D25A200A5001025ED -:10926000142534252C251C2500253C25E300C300AE -:109270005A25542569256625602550256C25A400AE -:10928000F000D000CA00CB00C8003101CD00CE00F4 -:10929000CF0018250C2588258425A600CC00802524 -:1092A000D300DF00D400D200F500D500B500FE00E9 -:1092B000DE00DA00DB00D900FD00DD00AF00B40005 -:1092C000AD00B1001720BE00B600A700F700B8003F -:1092D000B000A800B700B900B300B200A025A000FC -:1092E00001000000000000000096000000000000E7 -:1092F000000000000000000000000000000000006E -:1093000000000000896600088D6600086D510008A5 -:10931000A5540008015100082951000851510008C6 -:10932000E9500008000000005955000845550008A4 -:10933000815500086D5500087955000865550008ED -:10934000515500083D5500088D55000800000000EB -:10935000715600085D5600089956000885560008A9 -:10936000915600087D5600086956000855560008B9 -:10937000A5560008000000000100000000000000E9 -:10938000633000008093000800000000000000002F -:10939000B8460020E84800200000812A00000000B4 -:1093A000AAAAAAAA00000024FFFE000000000000F4 -:1093B00000A00A000001000000000000AAAAAAAA5A -:1093C00000000000FFFF000000000000000000009F -:1093D0001400AA5600000000AAAAAAAA1400555414 -:1093E000FFFF000000000000CCCC0C0020681A0039 -:1093F00000000000AAAA8AAA10541500FFFF00006E -:10940000000C70077700000040810201001000008E -:10941000AAAAAAAA00410100F7FF000000000070FC -:10942000070000000000000000000000AAAAAAAA8D -:1094300000000000FFFF000000000000000000002E -:109440000000000000000000AAAAAAAA0000000074 -:10945000FFFF00000000000000000000000000000E -:1094600000000000AAAAAAAA00000000FFFF000056 -:1094700000000000000000000000000000000000EC -:10948000AAAAAAAA00000000FFFF00000000000036 -:10949000000000000000000000000000AAAAAAAA24 -:1094A00000000000FFFF00000000000000000000BE -:1094B0000000000000000000AAAAAAAA0000000004 -:1094C000FFFF000000000000000000004865782F4A -:1094D00050726F6669434E430025424F4152442506 -:1094E0002D424C002553455249414C2500000000B7 -:1094F0000200000000000000915800080159000817 -:109500004000400098610020A86100200200000097 -:10951000000000000300000000000000495900089E -:109520000000000010000000B861002000000000F2 -:10953000010000000000000014650020010102008D -:109540008567000895660008316700081567000800 -:10955000430000005895000809024300020100C0C2 -:109560003209040000010202010005240010010577 -:1095700024010001042402020524060001070582DB -:10958000030800FF09040100020A000000070501AA -:1095900002400000070581024000000012000000A8 -:1095A000A49500081201100102000040AE2D161013 -:1095B00000020102030100000403090425424F4197 -:1095C00052442500437562654F72616E67650030D5 -:1095D0003132333435363738394142434445460019 -:1095E0000000002000000200020000000000003027 -:1095F0000000040008000000000000240000080033 -:10960000040000000004000000FC00000200000054 -:109610000000043000800000080000000000003856 -:1096200000000100010000001F1C1F1E1F1E1F1F45 -:109630001E1F1E1F1F1D1F1E1F1E1F1F1E1F1E1F42 -:1096400000000000A55A00085D5D0008095E0008E2 -:10965000400040004C6600204C66002001000000E5 -:109660005C6600208000000040010000080000004F -:1096700000010000001000000800000069646C6533 -:10968000000000006D61696E002C04380404380885 -:109690000C10141C20242526000000000000640487 -:1096A0000100040000000000000C0010283034000D -:1096B000B86DFF7F010000008C000000000000007A -:1096C00000001E0000000000FF000000F048002025 -:1096D000FC38002068390020D43900200000000048 -:1096E0000C8E000883040000178E00085004000050 -:1096F000258E000801000000000000000096000018 -:1097000000000800960000000008000004000000AF -:10971000B8950008000000000000000000000000F4 -:10972000000000000000000000000000782200207F -:109730000000000000000000000000000000000029 -:109740000000000000000000000000000000000019 -:109750000000000000000000000000000000000009 -:1097600000000000000000000000000000000000F9 -:1097700000000000000000000000000000000000E9 -:1097800000000000000000000000000000000000D9 +:100EF0009422002000220020A086010070470000FC +:100F000070470000704700002DE9F04100F5803780 +:100F1000044616463B7C5BB9C0681030204400F0A4 +:100F2000E5FEE5683544B5F5004FE56002D816B139 +:100F3000BDE8F081DEB905F07F0605F11000002163 +:100F4000C6F180062044F6B232462E4400F0F4FE8C +:100F5000A06804F11008324600F10060414600F537 +:100F6000003006F05BF830B901233B74E0E74FF442 +:100F700000463546ECE7A26805F1100140463244D0 +:100F80002144A260E268521BE26000F0AFFE022042 +:100F9000BDE8F04100F090BE183000F0E9BC000060 +:100FA00010B5044600F0F6FF204610BD10B504460B +:100FB00000F0F0FF204610BDC3B280B2A3F14102A1 +:100FC000052A02D8373800B27047613B052B94BF21 +:100FD00057383038F7E70000F8B50446154608469C +:100FE00003220C4900F08CFE014688B908346F1CBE +:100FF00015F91100FFF7E0FF064617F9110001315E +:10100000FFF7DAFF102940EA061004F8010BEFD1D0 +:10101000F8BD00BF4C9200082DE9F04FADF53F7DC3 +:101020000746416801222AA802F096FE002840F0F7 +:1010300087800646824681461125DFF80C81DFF85D +:101040000CB101AB4FF4805241462AA802F0E4FFF4 +:10105000002875D1019AB2F5805F71D8002A65D059 +:101060000446019A9442ECD2282D0FD008DC132DAF +:101070002DD01E2D39D0112D13D00134A4B2F0E79C +:10108000322D2DD0372D2FD02D2DF6D13B68121BB0 +:1010900008EB040138461B692D259847BDF804402C +:1010A000EBE7121B022A09D9594608EB040000F0AD +:1010B00027FE18B902342825A4B2DEE718F8043058 +:1010C0003A2B3DD00A2B1CBFA1461325D5E718F8B3 +:1010D00004300A2B34D03A2B04BFA2463225CCE789 +:1010E00018F80430202BC8D0264618F804300A2BF4 +:1010F0001AD1AAEB090208EB090102A811254F2A0F +:1011000028BF4F2208F08EF8A21B08EB060116A894 +:101110004F2A28BF4F2208F085F83B6816AA02A97B +:10112000DB6838469847A8E71E25A6E73B6838469F +:1011300004491B69984701200DF53F7DBDE8F08FFC +:101140000020F9E74E930008A023002050920008E9 +:1011500000F1180110B5044686B00846019100F070 +:10116000F1FB2046FFF758FF60B1019902A800F09B +:1011700049FC102204F1080102A808F013F8B0FAA3 +:1011800080F0400906B010BD70B504460025EEB2EF +:10119000304600F0FFFC58B100213046013500F028 +:1011A00009FD08B9002070BD022000F085FDEEE7C2 +:1011B0002046FFF731FF0028F4D004F58034207C6E +:1011C00080F00100EFE70000F0B5C9B006F092F939 +:1011D00000F0FCFE18B90025284649B0F0BD69466C +:1011E0002A4802F0DBFF00284BD1294C204603F0AF +:1011F00005F8284803F002F8274802F0FFFF2146CF +:10120000224803F077F80028E5D1702000F0BCFEFA +:10121000064610B1214B44600360336830469B683A +:101220009847054600282ED01A4F1948394603F032 +:1012300061F805460028CED1194800F0A5FE044605 +:1012400038B1184B4760036000F58033C0E90255A0 +:101250001D74236820469B689847054628B10E49AF +:101260000C4803F047F80028B5D1336830465B6876 +:1012700098471CB1236820465B68984700F08EFEB3 +:10128000AAE70025FAE70446EFE700BF54920008FA +:10129000649200087B92000891920008B4920008C2 +:1012A00014000100D09200082DE9F04FD44A8DB00F +:1012B0000B68D0F804A001931A440368D14E1A4475 +:1012C000D1F81C90DFF8B4C3DFF8B4B3D0E902342E +:1012D000634003EA0A03634013444A6802920AEB3C +:1012E0007363029CC84A2244C468224484688AEA20 +:1012F00004051D40654015448A68039203EB35558B +:10130000039CC24A2244846822448AEA03042C4093 +:1013100084EA0A041444CA6805EBF43404921644BF +:1013200083EA0502224056445A4032440E6905962B +:1013300004EBB222059FB64E3E441E4485EA0403E8 +:1013400013406B4033444E69069602EB7363069F6D +:10135000B04E3E442E4484EA02051D4065403544AB +:101360008E69079603EB3555079FAB4E3E442644E6 +:1013700082EA03042C4054403444A84E4E4405EB0A +:10138000F434164483EA050222405A4032440E6A7D +:10139000089604EBB222089FA14E3E441E4485EA03 +:1013A000040313406B4033444E6A099602EB7363A7 +:1013B000099F9C4ED1F830E03E44D1F83880F34488 +:1013C0002E4484EA02051D40654035448E6AA6F528 +:1013D000244703EB35550A964F3F274482EA03041E +:1013E0002C4054403C44CF6A0B9705EBF4340B9EE1 +:1013F0008D4F3744029E174483EA050222405A402B +:101400003A448A4F774404EBB2221F4485EA04032E +:1014100013406B403B444F6BBC4402EB7363654429 +:1014200084EA020C0CEA030C8CEA040C6544DFF835 +:1014300054C2C44403EB3555A44482EA03042C404F +:1014400054406444D1F83CC0794905EBF43461441C +:10145000114483EA050222405A400A44754904EBCC +:10146000B2223144079E194484EA02032B406340B0 +:101470000B44714902EBF36331440B9E0D4482EA45 +:1014800003012140514029446C4D03EBF151354497 +:10149000019E254483EA010414405C402C44684DBD +:1014A00001EBB4443544069E154481EA04021A4017 +:1014B0004A402A44634D04EB323235440A9E1D44AF +:1014C00084EA02030B4063402B445F4D02EBF3635D +:1014D0003544059E0D4482EA0301214051402944D0 +:1014E0005A4D03EBF1516544254483EA010414404D +:1014F0005C402C44564D01EBB4443544099E1544E0 +:1015000081EA04021A404A402A44524D04EB323226 +:101510003544049E1D4484EA02030B4063402B447F +:101520004D4D02EBF36345440D4482EA0301214033 +:1015300051402944494D03EBF1513544089E2C4458 +:1015400083EA010515405D402C44454D01EBB44450 +:101550003544039E2A4481EA04051D404D402A4437 +:10156000404D04EB32323D442B4484EA020593445F +:101570000D4065402B443C4D02EBF3633544069E21 +:10158000294482EA0305254055402944374D03EBA1 +:10159000F1514D442C4483EA010515405D4025443A +:1015A00001EBB54581EA050404EA03024A405A44C6 +:1015B000A6F5B82B089E05EB3232ABF2BE6B544059 +:1015C0005B4423442A4C344402EB33730B9E0C449B +:1015D00085EA020159402144264C344403EB715101 +:1015E000029E254482EA03044C402544224C444494 +:1015F00001EB3545144483EA01026A40224443E08A +:1016000078A46AD7EECEBDC156B7C7E8DB702024F8 +:10161000AF0F7CF52AC68747134630A8019546FDD3 +:10162000D8988069AFF7448BBED75C892211906B44 +:101630002108B44962251EF640B340C0515A5E26C7 +:10164000AAC7B6E95D102FD65314440281E6A1D88B +:10165000C8FBD3E7E6CDE121D60737C3870DD5F424 +:10166000ED145A4505E9E3A9F8A3EFFCD9026F6729 +:1016700081F6718722619D6D0C38E5FD937198FDAF +:101680008A4C2A8D8E4379A6934C344405EB722202 +:10169000059E1C4481EA0503534023448F4C344487 +:1016A00002EB33730A9E0C4485EA0201594021443F +:1016B0008B4C4C4403EB7151254482EA03044C40AB +:1016C0002C44884D354401EB3444019E154483EA93 +:1016D000010262402A44844D3D4404EB72221D44C1 +:1016E00081EA040353402B44804D354402EB3373AD +:1016F000049E294484EA02055D4029447C4D35441A +:1017000003EB7151079E254482EA03044C402C44AC +:10171000784D354401EB3444099E2A4483EA01059F +:1017200065401544744A324404EB7525039E134406 +:1017300081EA04026A401A44704B734405EB32722A +:101740000B4484EA0501514019446D4B634402EB9C +:1017500071511C4485EA02034B401C44694B3344DD +:1017600001EB3444019E1D4482EA010363402B4493 +:10177000654D04EB73233544069E154463EA01026C +:1017800062402A44614D03EBB2624D4462EA0409AF +:1017900029445F4D89EA0309454449442C445D4D81 +:1017A00002EBB1513544049E61EA03081D4488EA06 +:1017B0000208444401EB744464EA02034B402B44A6 +:1017C000554D04EBF323754463EA010E15448EEA8C +:1017D000040E0EEB0502514D03EBB262354462EA92 +:1017E000040E29440A9D8EEA030EA5F580164C4D81 +:1017F0007144A6F6833602EBB151264461EA030434 +:1018000054403444029E01EB7444354464EA0206B9 +:101810001D444E407319089E424D04EBF32335449A +:1018200063EA01061544664072193F4D03EBB2624C +:10183000654462EA040629443C4D5E403144079EFB +:1018400002EBB151354461EA03062C44384D564051 +:101850003D443444059E1D4401EB744464EA020394 +:101860004B402B44334D04EBF32335440B9E15447E +:1018700063EA010262402A442F4D03EBB262354411 +:10188000039E0D4462EA0401594029442B4D02EBAA +:10189000B15135442A4E254461EA030454402C4496 +:1018A000099D01EB74442E4464EA02051E4485EA56 +:1018B00001039D1903681A440AEB040303EBF523A3 +:1018C0000260436083681C44C36819448460C1603B +:1018D0000DB0BDE8F08F00BF44EABEA4A9CFDE4B37 +:1018E000604BBBF670BCBFBEC67E9B28FA27A1EA40 +:1018F0008530EFD4051D880439D0D4D9E599DBE6CD +:10190000F87CA21F6556ACC4442229F497FF2A43F1 +:10191000A72394AB39A093FCC3595B6592CC0C8F81 +:10192000D15D84854F7EA86FE0E62CFE144301A3B1 +:10193000A111084E827E53F735F23ABDBBD2D72AA9 +:1019400091D386EB094B036003F18833436003F1C5 +:101950002943A3F59613A3F68B638360A3F1883321 +:10196000C3600023C0E90433704700BF012345670B +:101970002DE9F8431446026905460E46E300C2F31A +:10198000C50800F118079B18036122BF43690133A2 +:10199000436112F4FC7F436903EB5473436114D039 +:1019A000C8F1400907EB08004C4504D22246BDE8C7 +:1019B000F84307F007BC403C4A464E4407F002FC9F +:1019C000444439462846FFF76FFCA04606EB04095D +:1019D000B8F13F0FA9EB08010AD94022384607F0B9 +:1019E000F1FB39462846A8F14008FFF75DFCEFE718 +:1019F000A1096FF03F02384602FB014206EB81115C +:101A0000D5E7000070B50B6901F1180506460C46D4 +:101A1000C3F3C503EA18501C8022EA54C3F13F0205 +:101A2000072A1FD8002100F087F929462046FFF732 +:101A30003BFC38220021284600F07EF92369294624 +:101A40002046236563696365FFF72EFC214610225B +:101A5000304607F0B7FB204658220021BDE8704011 +:101A600000F06AB9C3F137020021E5E72DE9F84F2C +:101A70004FF47A7306460D46002402FB03F7DFF8A5 +:101A80005080DFF8509098F900305FFA84FA5A1CC1 +:101A900001D0A34210D159F824002A4631460368E8 +:101AA000D3F820B03B46D847854205D1074B0120EB +:101AB00083F800A0BDE8F88F0134042CE3D14FF483 +:101AC000FA7004F0CFFD0020F4E700BFE4330020FB +:101AD0001022002014220020002307B50246012115 +:101AE0000DF107008DF80730FFF7C0FF20B19DF81A +:101AF000070003B05DF804FB4FF0FF30F9E700008A +:101B00000A46042108B5FFF7B1FF80F00100C0B21A +:101B1000404208BD074B0A4630B41978064B53F8CB +:101B20002140014623682046DD69044BAC4630BCA9 +:101B3000604700BFE433002014220020A08601008B +:101B400070B50A4E00240A4D05F00CFA3080286862 +:101B50003388834208D905F001FA2B680444013325 +:101B6000B4F5003F2B60F2D370BD00BFE633002018 +:101B7000A033002005F0C4BA00F1006000F5003089 +:101B80000068704700F10060920000F5003005F039 +:101B900045BA0000054B1A68054B1B889B1A834207 +:101BA00002D9104405F0DAB900207047A0330020B4 +:101BB000E633002038B50446074D29B12868204493 +:101BC000BDE8384005F0E2B92868204405F0CCF9BA +:101BD0000028F3D038BD00BFA0330020002070479C +:101BE00000F1FF5000F58F10D0F80008704700009A +:101BF000064991F8243033B100230822086A81F89D +:101C00002430FFF7BFBF0120704700BFA43300207E +:101C1000014B1868704700BF0010005C194B013879 +:101C20000322084470B51D68174BC5F30B042D0C37 +:101C30001E88A6420BD15C680A46013C82421346CC +:101C40000FD214F9016F4EB102F8016BF6E7013AB9 +:101C500003F10803ECD181420B4602D22C2203F897 +:101C6000012B0424094A1688AE4204D1984284BF4D +:101C7000967803F8016B013C02F10402F3D1581A83 +:101C800070BD00BF0010005C2422002010930008EB +:101C9000022803D1024B4FF080529A61704700BF77 +:101CA00000100258022803D1024B4FF480529A616F +:101CB000704700BF00100258022804D1024A53693D +:101CC00083F48053536170470010025870B5044686 +:101CD0004FF47A764CB1412C254628BF412506FBAE +:101CE00005F0641B04F0BEFCF4E770BD002310B5E2 +:101CF000934203D0CC5CC4540133F9E710BD00001B +:101D0000013810B510F9013F3BB191F900409C42F8 +:101D100003D11AB10131013AF4E71AB191F9002067 +:101D2000981A10BD1046FCE703460246D01A12F975 +:101D3000011B0029FAD1704702440346934202D0A6 +:101D400003F8011BFAE770472DE9F8431F4D1446CD +:101D50000746884695F8242052BBDFF870909CB364 +:101D600095F824302BB92022FF2148462F62FFF737 +:101D7000E3FF95F824004146C0F1080205EB80001E +:101D8000A24228BF2246D6B29200FFF7AFFF95F8D5 +:101D90002430A41B17441E449044E4B2F6B2082E2B +:101DA00085F82460DBD1FFF723FF0028D7D108E0B6 +:101DB0002B6A03EB82038342CFD0FFF719FF002881 +:101DC000CBD10020BDE8F8830120FBE7A43300203D +:101DD000024B1A78024B1A70704700BFE4330020A0 +:101DE00010220020F8B5194C194803F043FF214692 +:101DF000174803F06BFF24684FF47A70154ED4F83F +:101E00009020154DD2F80438114F43F00203C2F868 +:101E10000438FFF75BFF2046104904F065F8D4F85A +:101E200090200424D2F8043823F00203C2F80438C6 +:101E30004FF4E133336055F8040BB84202D0314619 +:101E400003F076FE013CF6D1F8BD00BF109B000800 +:101E500018490020CC33002014220020189B0008D1 +:101E60000C4B70B50C4D04461E780C4B55F82620D3 +:101E70009A420DD00A4B002118221846FFF75CFF4A +:101E80000460014655F82600BDE8704003F050BEDE +:101E900070BD00BFE4330020142200201849002048 +:101EA000CC330020F8B571B6002301201A4619463C +:101EB00002F090FD0446802005F0C2F9002845D0CC +:101EC0000025234A80274FF4D06C3D26136923BB9D +:101ED000D2F810310BBB236805F1006199602368CB +:101EE000D86023685F602368C3F800C021680B686E +:101EF00043F001030B6021680B6823F01E030B60A5 +:101F000021680B68DB07FCD4237B8035616806FA07 +:101F100003F3B5F5001F0B60D8D1204602F09AFDFF +:101F2000B5F5001F11D000240A4E0B4D012005F01D +:101F3000E7F83388A34205D928682044013405F026 +:101F400025F8F6E7002005F0DBF861B6F8BD00BF24 +:101F500000200052E6330020A033002030B50A44B0 +:101F6000084D91420DD011F8013B5840082340F331 +:101F70000004013B2C4013F0FF0384EA5000F6D12B +:101F8000EFE730BD2083B8ED0121884238BF084615 +:101F900005F08EB908B105F08FB9704710B5084C3F +:101FA00001220849002001F0B3FE23783BB1064826 +:101FB00003F036FD044803F069FD0023237010BDD3 +:101FC000E833002020930008C83600201D482DE982 +:101FD000F041036D2BB901224FF48051503005F0D0 +:101FE000CBFA194E33780BB1FFF7D8FF0324174F04 +:101FF0004FF00008134D15492846C7F8048003F038 +:1020000037FD284603F070FB48B1013C284603F039 +:102010003DFD14F0FF04EED1204634700FE00C4972 +:1020200001220C4801F074FE014618B1284603F065 +:10203000F7FCEAE7084800F011F801203070BDE82D +:10204000F08100BFC8360020E83300203C22002089 +:1020500020930008EC330020249300080FB40020E4 +:1020600004B07047006870470346006859687047BD +:102070000B0A017043700B0C090E8370C17070471E +:10208000110A027003714170110C120E8170C2703E +:102090001A0A42711A0C1B0E8271C371704700003C +:1020A000C36A0239023B8B4283BF4389006C01FB48 +:1020B0000300002070470000C2F307238A76CB7626 +:1020C0000378032B01BF120C0A75120A4A75704778 +:1020D00000F10B010022D30143EA520310F8012B57 +:1020E00052FA83F38842DAB2F5D110467047000005 +:1020F00010B5417804460020013102464901022A08 +:1021000016BFA35C032203EBC03302F101021EBF22 +:102110009BB203EB500398B29142F0D810BD00007F +:1021200002684AB1134613F8011B1F290DD93A2939 +:10213000F9D1911C8B4202D04FF0FF3070471278DA +:10214000302AF9D1036000207047014B187870479E +:102150003836002038B50D46044618B9092000234A +:102160002B6038BD0368002BF8D01A78002AF5D010 +:102170008188DA889142F1D1587804F00FFC10F090 +:102180000100EBD12368EBE738B50D4640F2523140 +:10219000144602F0B9F9FF2807D9012C0BD9030A1C +:1021A000022468702B70204638BD30B1002CFAD064 +:1021B00001242870F7E70024F5E70446F3E7000060 +:1021C0002DE9F8430026D0F8008005460C468E76AF +:1021D000836B002B4AD098F80030042B4BD1334648 +:1021E0003546402720E0B7F5187F80F0C480F90617 +:1021F00006F1010608BF0237D05B02372BB900F5A4 +:10220000205292B2B2F5006F0DD305F11A01C5F15B +:10221000FF0240EA03402144FFF7B6FF002800F028 +:10222000AA80054400200346D8F8102092F8231015 +:10223000B142D8D8002B40F09E80002D00F09B804A +:1022400000232544AB766373D8F81020137903F08C +:102250003701DB0621730BD402F13800FFF704FFCE +:10226000C4E9000193896381D3892381BDE8F883A0 +:1022700000200146F4E7C36C01335ED1EA6B002312 +:102280002E26551E184615F8011F013020290CD0A6 +:10229000052908BFE521092804D10B2B9EBFE718AB +:1022A00001337E73E718013379730B28EBD1E11802 +:1022B00000204873A17E00294BD1002B40D06FF045 +:1022C0000C0604F10D000825361B331810F8011B0D +:1022D000002938D02E298BB24AD0A3F14101192907 +:1022E00003D8117B0D4200D020330373EDE7B9F121 +:1022F000000F05D100F520539BB2B3F5006F0BD34F +:1023000007F11A01C7F1FF0240EA09402144FFF733 +:102310003BFF48B10744002002368146D8F80C3014 +:10232000985B0028E3D13846B9F1000F4FF0000266 +:1023300018BF002023189A76A0E7B1463746EDE78C +:102340003F23A3760123234400219976137B03B90D +:102350006373D37A02F11C0003F03F03237300235D +:10236000FFF780FE20606360D38A6381138B7CE774 +:1023700010250B46B9E73F230125A37660E700004F +:1023800038B50546002435F8020B08B9204638BD9B +:1023900002F0EEF86308C2B203EBC43312FA83F31F +:1023A0009AB2C0F3072303EB520303EBC2339CB290 +:1023B000E9E7000037B5C37804461BB90025284675 +:1023C00003B030BD00F14C01826C012340780191D3 +:1023D00004F00AFB054680B9A36BE070A06C226B89 +:1023E000C31A9342EAD2A3780199022BE6D10244A0 +:1023F0000123607804F0F8FAE1E70125DFE7000047 +:1024000038B5836C05460C468B4210D0FFF7D2FFDF +:1024100060B92246012305F14C01687804F0C0FA46 +:1024200000281CBF4FF0FF340120AC6438BD0020F1 +:10243000FCE7000038B500230446C3704FF0FF33BB +:102440008364FFF7DDFF00284BD1B4F84A524AF607 +:1024500055239D4207D10B22254904F14C0006F07B +:10246000A1FE00283FD094F84C30EB2B03D018335A +:10247000DBB2012B2ED84AF655239D4206D1082205 +:102480001C4904F19E0006F08DFE48B3B4F85730A5 +:10249000B3F5007F1ED194F85930DBB15A1E1A42B1 +:1024A00018D1B4F85A30ABB194F85C30013B012B31 +:1024B00010D8B4F85D306BB1B4F85F307F2B06D81C +:1024C00004F16C00FFF7CEFDB0F5803F02D3B4F805 +:1024D000623053B94AF6552085420CBF02200320D2 +:1024E00038BD0420FCE70120FAE70020F8E700BF30 +:1024F000509300085C93000802392DE9F04701F081 +:1025000007044FF0010A466C05460AFA04F4174620 +:10251000984606EB1136C1F3C809E4B231462846A5 +:102520000136FFF76DFF18B10120BDE8F08799462D +:1025300005EB090292F84C30234214BF012100211F +:10254000414513D06340013F82F84C3085F803A029 +:10255000EBD0640014F0FF04EAD109F10103012477 +:102560004FF00009B3F5007FE1D1D7E70220DCE7A7 +:1025700001290246F8B50C4640F28C800668F36AE1 +:102580008B4240F287803378013B032B00F282803C +:10259000DFE803F00229384B04EB5405B16B3046F9 +:1025A00001EB5521FFF72CFF10B14FF0FF30F8BDC4 +:1025B0006F1CC5F30805B16B3046354401EB57215C +:1025C00095F84C50FFF71CFF0028EED1C7F3080721 +:1025D000E3073E4496F84C0045EA00204CBF000952 +:1025E000C0F30B00E3E7B16B304601EB1421FFF7BA +:1025F00007FF0028D9D1640004F4FF742644B6F81C +:102600004C00D4E7B16B304601EBD411FFF7F8FE74 +:102610000028CAD1A40006F14C0004F4FE74204442 +:10262000FFF720FD20F07040C1E7D0E90430D579F4 +:1026300053EA000101D0916801B95DBB9168022D98 +:10264000A4EB01010DD1013B728940F1FF305B0A1F +:1026500043EAC053B3FBF2F399421BD81CD0601C71 +:10266000A5E7032D02D193698B42F8D8D3699BB9B2 +:10267000B16B304601EBD411FFF7C2FE002894D1B4 +:10268000A0004C3600F4FE703044FFF7EBFC20F065 +:1026900000408CE701208AE76FF0004087E70000E8 +:1026A000F8B5066804460D463378042B0CBF4FF08E +:1026B00080524FF400128A4201D80220F8BDCA06A7 +:1026C000FBD182680163D2B9022B13D83389B3EBF3 +:1026D000551FF2D9F36BA363A36B6263002BECD09D +:1026E00003EB55234C36C5F308050020A36335449E +:1026F000E563E3E7F36BC271002BE7D01A467789F5 +:102700007F02BD42114604D23046FFF7C9FCA063E8 +:10271000E2E72046FFF72CFF431C024606D00128C3 +:10272000CBD9F36A8342C8D9ED1BEAE70120C5E79C +:1027300001292DE9F04706460C46174608D9C36A19 +:102740008B4205D90378022B62D003D8012B22D00B +:10275000022552E0033B012BFAD8816B01EBD41127 +:10276000FFF74EFE0546002847D1A40006F14C03B2 +:1027700004F4FE741C443378042B07D0204627F061 +:102780007047FFF76FFC00F0704007433946204662 +:10279000FFF76EFC2FE001EB5108816B01EB582134 +:1027A000FFF72EFE054640BB14F0010406F14C096C +:1027B00008F1010AC8F3080808BFFBB230461FBF82 +:1027C00019F8083003F00F023B0103F0F00318BFC3 +:1027D000134309F808300123B16BF37001EB5A2160 +:1027E000FFF70EFE054640B9CAF3080A44B1C7F325 +:1027F000071709F80A700123F3702846BDE8F0872F +:1028000019F80A30C7F3032723F00F031F43F0E73B +:10281000816B01EB1421FFF7F3FD05460028ECD195 +:10282000640006F14C0304F4FF741F551919C7F333 +:1028300007274F70DFE70000F8B504460E4617463D +:10284000E3690BB91846F8BD012BA6EB0305206818 +:1028500014BFAA1C3A46691CFFF76AFF0028F2D190 +:10286000E369013BE361EBE701292DE9F843064603 +:102870000C461746056802D80220BDE8F883EB6ACB +:102880008B42F9D97AB9A14621463046A046FFF7D6 +:102890006FFE0446B0B92B78042B02D1002F43D130 +:1028A000F7710020E9E72B78042B02D1C379022BC2 +:1028B000E9D04FF0FF3239462846FFF739FF0028AC +:1028C000E1D0DAE70128D7D0421C01D10120D4E7BA +:1028D0002B78042B19D1EA6AAB69023A93421CD3D4 +:1028E00008F10102A2420CD02B78042B08D100235E +:1028F000A2EB090249462846FFF7FEFD0028BCD19D +:10290000A146EB6AA342BFD8C5E70022414628464C +:10291000FFF70EFF0028DED0AFE70133AB612B7964 +:1029200043F001032B71DBE7F3798BB9B468BC4248 +:1029300002D10223F371B4E721463046FFF718FEB7 +:10294000012899D9431CC1D001348442EFD0A8E7B3 +:10295000032BA6D1B368BB42A3D8B2691344BB42D0 +:102960009FD3E6E770B5C3790446032B06D181688F +:102970008369CD18A94203D10023E371002070BD03 +:102980004E1C20683246FFF7D3FE0028F7D13146AF +:10299000F0E700002DE9F74305460191FFF70AFD36 +:1029A0000446002849D105F14C09019928464FF405 +:1029B0000072FFF775FB2146A86407464846FFF7FB +:1029C000BBF96C896402B4F5004F28BF4FF4004492 +:1029D000B4F5007F2FD9204604F072FC804630B158 +:1029E00022460021640A0026FFF7A6F909E06408E0 +:1029F000EEE72346BA194146687803F0F5FF18B9A7 +:102A000026446B899E42F4D3404604F069FC6889F1 +:102A1000801B18BF012003B0BDE8F08301366B892D +:102A20009E42F4D20123BA194946687803F0DCFFCC +:102A30000028F3D0EBE70026F1E70120EBE70000E8 +:102A4000F8B50446FFF7B6FC0546002842D12378C6 +:102A5000032B37D12779012F34D104F14C060146DD +:102A60004FF400723046FFF767F955234122722177 +:102A700084F84A32AA2304F50D7084F84F2084F8B4 +:102A80004B32522384F8301284F84C3084F84D30A5 +:102A9000612384F8311284F84E3084F83332A1690E +:102AA00084F83222FFF7E4FA616904F50E70FFF74B +:102AB000DFFA626B3B46314601326078A26403F074 +:102AC00093FF257100226078114603F0B1FF0038B2 +:102AD00018BF0120F8BD000000232DE9F0430B6072 +:102AE00085B00F461546FFF71BFB061EC0F2B281EC +:102AF000804B53F82640002C00F0AE813C6005F07E +:102B0000FE0523786BB1607803F048FFC70708D44F +:102B10001DB110F0040500D00A25284605B0BDE817 +:102B2000F0830023F0B22370607003F023FFC1072D +:102B300000F194810DB14207EED400212046FFF749 +:102B400079FC022840F099806E4604F2122304F2C8 +:102B50005221324618461033FFF784FA42F8040B2C +:102B60008B42F7D1002556F8041B00297DD0204662 +:102B7000FFF760FC012879D80128A26C40F0C080E2 +:102B800004F1570304F18C0113F8015B002D7BD194 +:102B90008B42F9D1B4F8B430B3F5807F74D194F896 +:102BA000B830092B70D104F19400FFF75DFA4FF0B3 +:102BB000FF33171841F10001BB4275EB010363D3EA +:102BC00004F1A000FFF74EFA94F8BA302063012B0D +:102BD000A37059D194F8B99003FA09F91FFA89F34F +:102BE0006381002B50D0444B04F1A800FFF73AFA60 +:102BF0000646984248D8831C626304F1A400E3624D +:102C0000FFF730FA00EB020804F19C00C4F84080A2 +:102C1000FFF728FA10441FFA89F2A06306FB02F3BB +:102C200013EB080345EB05029F4271EB02032BD324 +:102C30002E4604F1AC00FFF715FAE06365B963892D +:102C4000B34221D9E16B2046FFF72AFA81192046C9 +:102C5000FFF7D6FB98B90136631993F84C30812BF6 +:102C600014D02035C5F30805E8E703200135042D0D +:102C70007FF479AF042807D101E0042801D10125B0 +:102C80004BE701287FF678AF0D2546E705F11400E4 +:102C900004F14C063044FFF7E5F901280546F3D965 +:102CA000E36A8342F0D96189821E236C02FB0133FF +:102CB0006364A16B204601EBD511FFF7A1FB00284F +:102CC000DDD105F07F0006EB8000FFF7CBF9431C58 +:102CD00003D00135A842ECD0D6E70425C4E90500AD +:102CE000064A257000251388E56101339BB21380E5 +:102CF000E38012E73C360020FDFFFF7F40360020D6 +:102D0000B4F85730B3F5007FBED1B4F8626026B98D +:102D100004F17000FFF7A6F9064694F85C302663CC +:102D2000591EA3700129AFD894F859506581002D20 +:102D3000AAD0691E2942A7D1B4F85D8018F00F0F00 +:102D4000A4F80880A0D1B4F85F0018B904F16C00B1 +:102D5000FFF788F9B4F85A10002995D006FB03FE56 +:102D600001EB181CF44460458ED3A0EB0C00A84284 +:102D7000B0FBF5F388D33E48834285D84FF6F57013 +:102D800083426DD903259F1C114402EB0C03032DD4 +:102D9000E7626263A16323644CD1B4F8763053EAEE +:102DA00008037FF471AFBB0004F17800FFF75AF914 +:102DB000E06303F2FF13B6EB532FFFF465AF4FF060 +:102DC000FF33032DC4E905334FF08003237187D10E +:102DD000B4F87C30012B83D1511C2046FFF710FB47 +:102DE00000287FF47DAFB4F84A224AF655232071BB +:102DF0009A427FF475AF1F4B04F14C00FFF732F994 +:102E000098427FF46DAF03F1FF5304F50C70FFF7A8 +:102E100029F903F50053203398427FF461AF04F59C +:102E20000D70FFF71FF9A06104F50E70FFF71AF996 +:102E3000606155E7B8F1000F3FF426AF7144022DF1 +:102E40004FEA4703E1631EBFD91907F0010303EB03 +:102E50005103AEE70B2560E60C255EE603255CE634 +:102E600040F6F575AB428CBF022501258BE700BF0C +:102E7000F5FFFF0F525261412DE9F84F07460568F3 +:102E8000884649B96E69C6B1EB6AB34298BF01265C +:102E9000AB69A3B9002405E0FFF76AFB01280446EB +:102EA00003D801242046BDE8F88F421C00F0D280F0 +:102EB000EB6A8342F6D84646EAE70126E8E72A7835 +:102EC000EB6A042A40F08380A6F1020A023B4FF02D +:102ED000010B9A4528BF4FF0000AD146696C28467D +:102EE00001EB1931FFF78CFA00283BD109F00703F9 +:102EF000EA6AC9F3C8010BFA03F3901EDBB26A1841 +:102F00004C4609F1010992F84C20814502EA03027E +:102F100033BF5B0000234FF40071DBB228BF99463A +:102F2000B2B90234631E0333BCD8012321462846BC +:102F30001A46FFF7E1FA0228B3D0012800F08A8090 +:102F4000B8F1000F13D10223FB710028A9D130E0A2 +:102F5000CA450AD0002BD2D10131B1F5007FBDD2D4 +:102F60000123CCE74FF0FF34DCE70024DAE7FB79FC +:102F7000022B07D1731CA342E7D0BB68F31ABB61D5 +:102F80000323FB7108F10102FB69A24205D113B1D1 +:102F90000133FB61D9E70223FBE70BB90123FB6196 +:102FA000224641463846FFF747FC00284FD101230F +:102FB000FB61EA6AAB69023A6C6193429CBF03F120 +:102FC000FF33AB612B7943F001032B716AE7464570 +:102FD00014D1741C3846A34298BF02242146FFF73F +:102FE000C7FA01283FF45DAF431C33D0E0B16B69F1 +:102FF000012B03D9EA6A934238BF1E463446013496 +:10300000EB6AA34203D8012E7FF644AF0224214687 +:103010003846FFF7ADFA48B101283FF442AF01301E +:1030200018D0B442EBD135E7002CE7D04FF0FF3297 +:1030300021462846FFF77CFB48B9B8F1000FB8D00D +:10304000224641462846FFF773FB0028B1D00128ED +:103050007FF427AF4FF0FF3424E700002DE9F84359 +:1030600006680446076B894633782037042B0CBF6B +:103070004FF080534FF40013BB429CBF0023836387 +:10308000836B73B1C7F30808B8F1000F3CD101336B +:10309000416B836339B93389B3EB571F34D80023AD +:1030A000A36304200AE07389013B13EA57232BD161 +:1030B000FFF75EFA0128054602D80220BDE8F88332 +:1030C000421C01D10120F9E7F36A834216D8B9F115 +:1030D000000FE4D0616B2046FFF7CEFE0546C8B175 +:1030E0000128EAD0431CEDD001463046FFF752FCE0 +:1030F0000028E7D1E37943F00403E3712946304621 +:103100006563FEF7CDFFA0634C360020276346447D +:10311000E663D3E70720D1E7F8B50E460021044661 +:103120000768FFF7BDFA98B90546A16B3846FFF767 +:1031300067F968B93A78E36B042A1B780CD11B064F +:103140000ED5054601212046FFF788FF0028ECD068 +:10315000042808BF072006E0E52B01D0002BF0D1A2 +:103160000135B542EED1F8BDC16C4B1C2DE9F041E3 +:1031700004460568066B1FD1E5274FF00108A16BD7 +:103180002846FFF73DF998B92A78E36B042A09BF6E +:103190001A781F7002F07F021A7085F80380236B83 +:1031A000B3420DD200212046FFF758FF0028E6D099 +:1031B000042808BF022003E0FFF772FA0028DBD0E2 +:1031C000BDE8F0812DE9F04105460068A96B06696C +:1031D000FFF716F9044620B9EB6B1A78852A03D05D +:1031E00002242046BDE8F081324603F1200153F865 +:1031F000040B8B4242F8040BF9D1777801377F0139 +:10320000A7F16003B3F5007FEAD800212846FFF755 +:1032100025FF04280446E3D00028E2D1A96B2868E2 +:10322000FFF7EEF804460028DBD1EB6B1A78C02AD2 +:10323000D6D106F1200203F1200153F8040B8B4292 +:1032400042F8040BF9D196F823300F222C33B3FB4C +:10325000F2F3B7EB431FC3D34FF0400800212846D9 +:10326000FFF7FCFE04280446BAD00028B9D1A96BA8 +:103270002868FFF7C5F804460028B2D1EB6B1A782E +:10328000C12AADD1B8F5187F09D206EB080203F1C7 +:10329000200153F8040B8B4242F8040BF9D108F1DA +:1032A00020084745DAD8B8F5187F9AD83046FEF797 +:1032B0001FFF7388834294D092E700000B680022BE +:1032C00010B5036004460B6A83604B6AC261C37128 +:1032D00023F0FF03896AC0E90432C164FFF7E0F913 +:1032E00020B92046BDE81040FFF76CBF10BD0000BC +:1032F000F8B50368054601271C692046FEF7F8FE6D +:10330000A070000A6678E0702846E96CFFF7C8F9FB +:1033100020B1022828BF0220C0B2F8BDA96B2868DE +:10332000FFF76EF80028F4D1EB6B04F1200254F89B +:10333000041B944243F8041BF9D12B68DF70002E64 +:10334000E7D000212846013EFFF788FEE0E70000B5 +:103350002DE9F8434FF0FF08064607680424454668 +:103360004FF6FF79B16B11B9002C73D063E038468A +:10337000FFF746F8044600285DD1F06B0378002B78 +:103380006ED03A78042A11D1852B4DD1336B30465B +:10339000F364FFF717FF044600284CD13B691B7903 +:1033A00003F03F03B3712046BDE8F883C27AE52BF2 +:1033B00002F03F02B27143D02E2B41D022F0200107 +:1033C00008293DD00F2A40D1590637D503F0BF0553 +:1033D000336B90F80D80F364437B434530D1428BCF +:1033E00072BB03780D21FC6823F04003DFF874E022 +:1033F000013B4B4301211EF801CB30F80CC009B34F +:10340000FF2B1DD824F813C06146013301320D2A69 +:10341000F1D10278520605D521B1FF2B10D8002238 +:1034200024F81320013DEDB200213046FFF716FECF +:103430000446002896D00023B363B4E7AB42CBD058 +:10344000FF25F1E7CC45E1D0FAE72DB9FEF740FEC4 +:10345000404501D10024A6E74FF0FF33F364A2E713 +:103460000424E8E7F89300082DE9F04F002187B025 +:103470000446D0F80090FFF713F9804670B999F828 +:103480000030042B33D1D9F80C00FEF779FF074642 +:103490002046FFF75DFF054620B18046404607B055 +:1034A000BDE8F08FD9F810309A8CBA42F0D193F879 +:1034B00023B040265D4506D1D9F80C3033F81530DD +:1034C000002BE5D1EAE7F106D9F8103008BF023643 +:1034D000985B01F04DF8D9F80C30824633F81500AE +:1034E00001F046F88245D3D102360135E2E74FF0CC +:1034F000FF0A4FF0FF3B5546C4F84CB0A16B48465D +:10350000FEF77EFF00285CD1E66B3778002F77D07E +:10351000F27AE52F02F03F03A37103D0120704D51E +:103520000F2B04D0C4F84CB04FE00F2B54D194F8BB +:103530004B3058063FD4790645D5236B07F0BF07BB +:1035400096F80DA0E364737B53453ED1738B002B3B +:103550003BD135780121D9F80C3005F03F050193B6 +:103560000D23013D5D43284B13F8012BB25A71B373 +:10357000FF2D059329D81046049200F0F9FF6B1C2B +:1035800003900293019B33F8150000F0F1FF0399BB +:1035900081421AD1049A029D1146059B1B4A93420F +:1035A000E2D133785A0604D519B1019B33F81530AE +:1035B0005BB97D1EEDB200212046FFF74FFD0028CC +:1035C0009CD080466AE7BD42BDD0FF25F3E74FF6A9 +:1035D000FF708242E2D0F8E72DB93046FEF778FD61 +:1035E00050453FF45BAF94F84B30DB079AD40B2285 +:1035F00004F14001304605F0D5FD002892D14DE799 +:103600004FF004084AE700BFF8930008059400084B +:103610002DE9F04F90F84BB099B004461BF0A0058F +:1036200040F068810668F26832F81530002B4AD104 +:103630003378042B40F087800F230E352046B5FBEE +:10364000F3F5A91CFFF768FD8146002877D1236BAD +:103650000135A3EB4515E3795A07E56435D523F029 +:1036600004032046E371FFF77DF950BB4FF0FF32B2 +:10367000616B2046FFF7E0F818BBA3682BB3214627 +:1036800004A8FFF71BFEE0B970894FF40071D4E97C +:103690000423E0FB01233069C4E904233830FEF73A +:1036A000EFFC3069D4E904232830FEF7E9FCE37924 +:1036B000326904A843F0010382F82130FFF718FEB5 +:1036C00018B181463BE00135AEE7D6E9035440220C +:1036D00000212046FEF730FB852301214022237084 +:1036E000C0234FF0C10C04EB010884F82030002304 +:1036F0001E469E46571C04F802C0F0B2023204F87F +:1037000007E021B135F8131009B10133DBB20F0A1C +:10371000A15408F802700232D706F2D135F81370BE +:103720000136002FE6D184F82330831C28466370CD +:10373000FEF726FE84F82400000A84F82500484697 +:1037400019B0BDE8F08F04F140070DF1100A1BF02D +:10375000010F97E807008AE8070000F0D3804023B4 +:103760004FF0010884F84B30BC46F368B8F1050F00 +:103770009AE80700ACE803002CF8022B4FEA12424B +:103780008CF8002059D9981E424630F8021F0029B3 +:1037900042D10DF10F0C072102F00F0E91461209D4 +:1037A0000EF13000392888BF0EF1370001390CF8CE +:1037B000010902D0B9F10F0FEED818AB7E205A18CC +:1037C00002F8580C38460022914206D010F801CB7E +:1037D00002F1010EBCF1200F31D104F13F0C072999 +:1037E00002F1010297BF18AB20205818013198BF91 +:1037F00010F8580C072A0CF80200F0D92046FFF701 +:1038000033FE8146002878D108F10108B8F1640F31 +:10381000AAD14FF0070992E74FF0100C01F0010E0A +:1038200049080EEB4202D30344BF82F4883282F08F +:103830002102BCF1010CF1D1A7E74246A9E772468B +:10384000C2E7216B2046A1EB4511FEF729FF814617 +:1038500000287FF474AF4FF6FF783846FEF738FC47 +:103860000190A16B3046FEF7CBFD814600287FF426 +:1038700066AFE36BE9B2019A4FF00D0CD6F80CE09D +:103880005A734FF00F02DFF8E0A0DA724A1E187385 +:103890000CFB02F284469876D87640451AF8019BD4 +:1038A0000CF1010C18BF3EF8120003EB090B18BF16 +:1038B000013203F809004FEA1029002808BF4046EA +:1038C000BCF10D0F8BF80190E7D1404502D03EF8D6 +:1038D00012200AB941F0400119700123002120464D +:1038E000F370FFF7BBFB814600287FF428AF013D52 +:1038F000B7D11BE04FF0060921E704287FF41FAF82 +:1039000084F84BB01BF0020F20461BBF0C350D2175 +:103910000125B5FBF1F518BF01352946FFF7FCFB82 +:10392000814600287FF40BAF013D8AD1A16B304660 +:10393000FEF766FD814600287FF401AF0146202294 +:10394000E06BFEF7F9F9E36B03CF18605960BA78C2 +:1039500039889A72198194F84B30E26B03F018039E +:1039600013730123F370EAE6F893000810B50446D8 +:103970000A463430FEF776FB886004F13800FEF723 +:1039800073FBC2E9040194F8213003F00203D37100 +:103990000023D36110BD000003284B8B04BF8A8A2B +:1039A00043EA0243184670472DE9F04F0B7899B06F +:1039B000044689462F2BD0F800B001D05C2B09D1EA +:1039C0004A461378914601322F2BFAD05C2BF8D05F +:1039D000002301E0DBF81C30A3600023E3619BF8C7 +:1039E0000030042B1ED1A368E3B1DBF82030214660 +:1039F00004A82362DBF824306362DBF82830A3627A +:103A0000FFF75CFC0346002854D1DBF8102002F1DC +:103A10003800FEF727FBC4E9040392F8213003F0D5 +:103A20000203E37199F800301F2B00F235818023E7 +:103A30000021204684F84B3019B0BDE8F04FFEF766 +:103A40002FBE49460B78894601312F2BFAD05C2BCB +:103A5000F8D01F2B8CBF00250425012F2FD11388F0 +:103A60002E2B31D1002322F8173004F140029F425F +:103A70008CBF2E21202101330B2B02F8011BF6D124 +:103A800045F02005204684F84B50FFF7EDFC94F8F4 +:103A90004B30002800F0E78004280BD1990603F092 +:103AA000040240F1DC80002A00F0F6808023002030 +:103AB00084F84B3019B0BDE8F08F0425CDE7022F14 +:103AC00002D153882E2BCAD0911E87BB002322F827 +:103AD0001730002F00F0118132F81300194601331E +:103AE0002028F9D009B92E2801D145F00305901EF0 +:103AF00030F817302E2B01D0013FF9D14FF0203391 +:103B00004FF0000A6364D0462364C4F847300823AA +:103B1000481C32F811600090F6B1202E03D02E2EF2 +:103B20000DD1B84210D045F003050099F0E731F807 +:103B30001730202B01D02E2BC8D1013FC5E79A4565 +:103B400005D20099B9423BD10B2B30D101E00B2BB0 +:103B500027D145F003050B2394F84020E52A04BF44 +:103B6000052284F84020082B04BF4FEA88085FFA3A +:103B700088F808F00C030C2B03D008F00303032B88 +:103B800001D145F00205A8073FF57CAF18F0010F01 +:103B900018BF45F0100518F0040F18BF45F00805D0 +:103BA00070E70099B94202D045F00305D4D84FEA36 +:103BB00088080B234FF0080A00975FFA88F8B4E7EB +:103BC0007F2E15D9304640F25231CDE9022345F01F +:103BD0000203019300F098FC10F0800F0646DDE927 +:103BE000022316D000F07F0646498E5D019D46B344 +:103BF00031464548CDE9012305F0FEFADDE9012310 +:103C0000F8B9A6F1410189B219291ED848F0020875 +:103C100010E0FF28EAD9591E8A4503D345F0030571 +:103C20009A4682E704EB0A01000A0AF1010A019DA3 +:103C300081F8400004EB0A010AF1010A81F84060B2 +:103C400073E745F003055F26F4E7A6F1610189B249 +:103C500019299EBF203E48F00108B6B2EAE7002AC3 +:103C600008BF052026E75A073FF524AFA379DB06F6 +:103C700045D59BF80000042835D1A3682146E27998 +:103C800023622369DBF8100023F0FF031343636210 +:103C9000E36CA362FFF76AFE23680027DA6819F86D +:103CA000010B00283FF409AF40F25231009200F0BE +:103CB0004BFC054608B31F28009A7FF6FEAE2F285E +:103CC0003FF4BFAE5C283FF4BCAE7F2805D8014668 +:103CD0000E4805F091FA009A78B9FF2F0DD022F81E +:103CE00017500137DBE7216B0BF14C03C1F30801DF +:103CF0001944FFF751FEA060CEE70620DAE6052062 +:103D0000D8E600BF78930008719300086893000814 +:103D10001FB5CDE9001003A814460391FEF700FA81 +:103D2000002815DB0B4A52F820300BB10021197026 +:103D3000019B0BB10021197042F820302CB10022F8 +:103D400001A96846FEF7C8FE0446204604B010BD2F +:103D50000B24FAE73C3600202DE9F04798B0904656 +:103D600005460191002800F0528102F03F0603A9A8 +:103D700001A83246FEF7B0FE002840F04681039BC2 +:103D80004FF48C60049303F09BFA0746002800F080 +:103D90004081039B00F500720199D86004A81A6164 +:103DA000FFF702FE044620B99DF95B30002BB8BF37 +:103DB000062418F01C0F00F0CD80002C4CD0042CF1 +:103DC00040D104A8FFF724FC044600283AD146F06D +:103DD0000806039B1A78042A40F083801869294654 +:103DE0002B60FFF7C3FD039B1E22002118690230E0 +:103DF000FDF7A2FF039C00211A2220692630FDF75F +:103E00009BFF236920221A71246903F093FA01466B +:103E1000012208342046FEF72BF9039B04A81B69F6 +:103E200083F82120FFF764FA044658B9A96801B362 +:103E300002462846FEF718FDAB68039A0446013B8C +:103E40005361B4B1384603F04BFA0CB100232B6038 +:103E5000204618B0BDE8F0879DF8163013F0110F1A +:103E600040F0848018F0040F40F0C98018F0080F6B +:103E7000AFD1039A31071399936C48BF46F04006BF +:103E8000E964AB641078042872D1069B9DF8171082 +:103E90002B62089B106923F0FF030B4329466B62DA +:103EA000179BAB62FFF762FDDDF80CA00024002237 +:103EB00005F15008BAF8063021464046C5F800A082 +:103EC000AB80002385F8306085F831406C64C5E92B +:103ED0000E234FF40072FDF72FFFB20653D40024D7 +:103EE000B0E703F027FA0146009013980E30FEF772 +:103EF000BFF8139800991630FEF7BAF8039C13998F +:103F00002078FFF749FD202300228046CB7220460F +:103F10001399FEF7D1F8139B002201211A775A77E3 +:103F20009A77DA77039BD970B8F1000FA1D0414698 +:103F300004A8D3F84890FEF797FC0446002881D1E6 +:103F400049460398FEF75CFA039B044608F1FF30EC +:103F5000586176E7002C7FF475AF9DF81630DC06CB +:103F60004FD418F0020F84D0D80782D5072469E710 +:103F7000FFF712FD0023A86001F11C00FEF772F8A4 +:103F80006B61286190E7D5E9046956EA0903A6D078 +:103F9000BAF80AA0A9684FEA4A2AC5E90E69B245EB +:103FA00074EB09031BD300242964002C7FF44AAF6F +:103FB000C6F30803002B92D0039C2046FEF770F84E +:103FC00008B3760A0123414646EAC95682196A6453 +:103FD000607802F0E5FC041E18BF012432E7284691 +:103FE000FEF7C6FAB6EB0A06014669F10009012898 +:103FF00003D9431CD3D10124D6E70224D4E70824F3 +:1040000020E704241EE702241CE704461EE70924D7 +:104010001EE711241CE700002DE9F04F994685B0FA +:104020000023884603A90446C9F800301646FEF767 +:1040300091F8054680BB94F831506DBB94F8303050 +:1040400013F00103009300F0A68004F1500AD4E9B4 +:104050000432D4E90E011B1A62EB0102B34272F181 +:10406000000238BF1E46BEB1D4E90E10C1F30803EA +:10407000002B40F08280039B5A894B0A013A43EAA5 +:10408000C0531A401BD151EA000309D1A06801288E +:104090000DD8022584F83150284605B0BDE8F08FD0 +:1040A000216C20460192FEF763FA019AEFE7431C68 +:1040B00004D10123009D84F83130EDE72064DDF860 +:1040C0000CB0216C5846FDF7EBFF0028E1D0B6F5A7 +:1040D000007F02EB000731D3BBF80A1002EB562039 +:1040E000730A88429BF8010088BF8B1A3A46414602 +:1040F000019302F055FC0028DBD194F93020019B9C +:10410000002A0BDA606CC01B984207D24FF4007291 +:10411000514608EB4020FDF7E9FD019B5F02D9F80D +:104120000030F61BB8443B44C9F80030D4E90E32E5 +:10413000DB1942F10002C4E90E3294E7626CBA4224 +:104140001AD094F93030002B0DDA012351469BF838 +:10415000010002F049FC0028ABD194F8303003F0A4 +:104160007F0384F83030039801233A465146407863 +:1041700002F016FC00289CD16764A16B4046C1F395 +:104180000801C1F500775144B74228BF37463A4687 +:10419000FDF7ACFDC3E707257EE7000070B596B0DC +:1041A0000E460022019002A901A8FEF795FC0446E4 +:1041B000E0B94FF48C6003F083F80546D8B1029B58 +:1041C00000F500720199D86002A81A61FFF7ECFBB4 +:1041D000044640B99DF95330002B0ADB1EB131462D +:1041E00002A8FDF7EDFF284603F07AF8204616B046 +:1041F00070BD0624F7E71124F8E7000070B5B8B0E9 +:104200000222019003A901A8FEF766FC044608BB40 +:10421000039B4FF48C60109303F052F8054600287E +:1042200066D0039B00F500720199D86010A81A614E +:10423000FFF7BAFB044650B99DF88B30980655D469 +:10424000190653D49DF84630DA0706D507242846C8 +:1042500003F046F8204638B070BD039B04931878ED +:10426000042814D104A91869FFF780FB069E9DF865 +:104270004630DB0610D410A8FEF776FF044600286F +:10428000E5D156BB0398FEF7DBFB0446DFE71F9939 +:10429000FFF782FB0646EAE7039BDA69B242D5D014 +:1042A00024930021269624A81B78042B01BFDDE966 +:1042B0000823CDE928239DF817308DF89730FEF7B5 +:1042C000EFF904460028C2D124A8FFF741F80446BC +:1042D0000028BBD00428BAD1CDE70246314604A855 +:1042E000FEF7C2FA04460028B1D1CBE70624AEE7B8 +:1042F0001124AFE7F0B5BDB0CDE900106846FDF779 +:104300000FFF022203A901A8FEF7E6FB04460028DE +:1043100041D1039B4FF48C60149302F0D1FF05460A +:10432000002800F0EE80039B00F5007214AE0199A6 +:10433000D8601A613046FFF737FB044640BB9DF852 +:104340009B3013F0A00F40F0D880039B009F1A7899 +:10435000042A68D11B6904AC03F1400C18680833C7 +:1043600053F8041C2246634503C21446F6D150227A +:10437000314628A8FDF7BAFC394628A8FFF714FBF8 +:10438000044600284CD12A9A169B9A4206D008244B +:10439000284602F0A5FF20463DB0F0BD349A209B90 +:1043A0009A42F4D128A8FFF733F904460028EFD148 +:1043B000039B04AF1B6993F801E093F823C09C8C26 +:1043C0003A46083303CAB24243F8080C43F8041CC7 +:1043D0001746F5D1039B28A81B6983F801E0039BCE +:1043E0001A6982F823C01A6982F82440240A82F8E4 +:1043F00025401A691379D9065CBF43F02003137175 +:10440000FEF776FF04460028C2D13046FEF7ACFE28 +:1044100004460028BCD10398FEF712FB0446B7E718 +:104420000428B5D1BEE7239A04AB02F1200C106832 +:10443000083252F8041C1C46624503C42346F6D1D8 +:104440005022314628A8FDF751FC394628A8FFF72D +:10445000ABFA044600284CD12A9A169B9A4296D170 +:10446000349A209B9A4292D128A8FFF7D1F80446AB +:1044700000288DD137990DF11D030DF12D0001F1AB +:104480000D0253F8044B834242F8044BF9D11888CB +:10449000012710809B7893709DF81B30039CDA06EF +:1044A00058BF43F02003CB72E770CB7ADB06ACD564 +:1044B000169A2A9B9A42A8D02078FFF76DFA0146F7 +:1044C0002046FDF7EDFD0146C8B12046FDF798FFF7 +:1044D000044600287FF45CAF039890F86D302E2BD3 +:1044E00093D12A9A00F16C01FDF7E6FD039BDF7082 +:1044F0008BE704287FF44CAFB6E7062448E7022494 +:1045000046E7112447E700007F2810B501D880B2A4 +:1045100010BDB0F5803F13D240F2523399420FD113 +:104520000849002231F8024B93B2844203D103F1CF +:104530008000C0B2ECE70132802AF3D11346F6E7DF +:104540000020E5E7B89600087F280DD940F25233E5 +:10455000994208D1FF2806D800F10040034B80386B +:1045600033F8100070470020704700BFB89600086D +:10457000B0F5803FF0B522D21F4A83B21F49B0F593 +:10458000805F28BF0A46141D34F8042C2146AAB1C6 +:10459000934213D334F8025C2E0AEFB252FA85F537 +:1045A000A84222DA082E09D8DFE806F0050A101220 +:1045B0001416181A1C00801A34F810301846F0BD72 +:1045C000981A00F001001B1A9BB2F7E7103BFBE7BB +:1045D000203BF9E7303BF7E71A3BF5E70833F3E711 +:1045E000503BF1E7A3F5E353EEE70434002ECBD1C3 +:1045F00001EB4702C7E700BF08940008FC950008DC +:1046000008B5074B074A196801F03D0199605368E6 +:104610000BB190689847BDE8084003F09DB800BF13 +:10462000000002404436002008B5084B196889098B +:1046300001F03D018A019A60054AD3680BB1106907 +:104640009847BDE8084003F087B800BF000002406B +:104650004436002008B5084B1968090C01F03D01EB +:104660000A049A60054A53690BB190699847BDE8FE +:10467000084003F071B800BF00000240443600203B +:1046800008B5084B1968890D01F03D018A059A604B +:10469000054AD3690BB1106A9847BDE8084003F09A +:1046A0005BB800BF000002404436002008B5074B4D +:1046B000074A596801F03D01D960536A0BB1906A0D +:1046C0009847BDE8084003F047B800BF000002402B +:1046D0004436002008B5084B5968890901F03D01AE +:1046E0008A01DA60054AD36A0BB1106B9847BDE8BE +:1046F000084003F031B800BF0000024044360020FB +:1047000008B5084B5968090C01F03D010A04DA604C +:10471000054A536B0BB1906B9847BDE8084003F016 +:104720001BB800BF000002404436002008B5084B0B +:104730005968890D01F03D018A05DA60054AD36B9D +:104740000BB1106C9847BDE8084003F005B800BFF6 +:10475000000002404436002008B5074B074A19689C +:1047600001F03D019960536C0BB1906C9847BDE826 +:10477000084002F0F1BF00BF0004024044360020B0 +:1047800008B5084B1968890901F03D018A019A6052 +:10479000054AD36C0BB1106D9847BDE8084002F094 +:1047A000DBBF00BF000402404436002008B5084BC0 +:1047B0001968090C01F03D010A049A60054A536D1D +:1047C0000BB1906D9847BDE8084002F0C5BF00BF2F +:1047D000000402404436002008B5084B1968890DD2 +:1047E00001F03D018A059A60054AD36D0BB1106E48 +:1047F0009847BDE8084002F0AFBF00BF0004024088 +:104800004436002008B5074B074A596801F03D01BE +:10481000D960536E0BB1906E9847BDE8084002F026 +:104820009BBF00BF000402404436002008B5084B7F +:104830005968890901F03D018A01DA60054AD36EA1 +:104840000BB1106F9847BDE8084002F085BF00BF6C +:10485000000402404436002008B5084B5968090C92 +:1048600001F03D010A04DA60054A536F0BB1906F05 +:104870009847BDE8084002F06FBF00BF0004024047 +:104880004436002008B5084B5968890D01F03D01F8 +:104890008A05DA60054AD36F13B1D2F880009847D1 +:1048A000BDE8084002F058BF000402404436002032 +:1048B00000230C4910B51A460B4C0B6054F823002A +:1048C000026001EB430004334260402BF6D1074AFB +:1048D0004FF0FF339360D360C2F80834C2F80C3451 +:1048E00010BD00BF44360020B89700080000024009 +:1048F0000F28F8B510D9102810D0112811D012287F +:1049000008D10F240720DFF8C8E00126DEF80050A8 +:10491000A04208D9002653E00446F4E70F24002003 +:10492000F1E70724FBE706FA00F73D424AD1264C9F +:104930004FEA001C3D4304EB00160EEBC000CEF81E +:104940000050C0E90123FBB273B12048D0F8D83041 +:1049500043F00103C0F8D830D0F8003143F0010330 +:10496000C0F80031D0F8003117F47F4F0ED017484F +:10497000D0F8D83043F00203C0F8D830D0F8003176 +:1049800043F00203C0F80031D0F8003154F80C00B5 +:10499000036823F01F030360056815F00105FBD1D0 +:1049A00004EB0C033D2493F80CC05F6804FA0CF48C +:1049B0003C6021240560446112B1987B00F0CAFC80 +:1049C0003046F8BD0130A3E7B8970008004402580C +:1049D0004436002010B5302484F31188FFF788FF97 +:1049E000002383F3118810BD10B50446807B00F0CE +:1049F000C7FC01231549627B03FA02F20B6823EA24 +:104A00000203DAB20B6072B9114AD2F8D81021F061 +:104A10000101C2F8D810D2F8001121F00101C2F84A +:104A20000011D2F8002113F47F4F0ED1084BD3F8B8 +:104A3000D82022F00202C3F8D820D3F8002122F0B7 +:104A40000202C3F80021D3F8003110BD4436002023 +:104A50000044025808B5302383F31188FFF7C4FFE0 +:104A6000002383F3118808BD836CC26A8B425068AF +:104A700010B506D95A1E4C0002EB4103B3FBF4F308 +:104A8000184410BD01F001038A0748BF43F0020338 +:104A90004A0748BF43F008030A0748BF43F004032E +:104AA000CA0648BF43F010038A06426B48BF43F072 +:104AB000200313434363704710B5074C204600F0B2 +:104AC000CBFF064B0022C4E91023054BA364054B22 +:104AD000E363054BE36410BDC8360020007000524C +:104AE00000B4C4041C3700201C390020C36A0BB971 +:104AF000104BC3620379012B11D10F4B98420ED199 +:104B00000E4BD3F8D42042F48032C3F8D420D3F82B +:104B1000FC2042F48032C3F8FC20D3F8FC30436C14 +:104B200000221A65DA621A605A605A624FF0FF3248 +:104B30009A637047B8980008C836002000440258AD +:104B40000379012B1BD0436C00221A65DA621A60CC +:104B50005A605A624FF0FF329A63094B98420ED165 +:104B6000084BD3F8D42022F48032C3F8D420D3F8F1 +:104B7000FC2022F48032C3F8FC20D3F8FC307047CC +:104B8000C83600200044025810B5446C0649FFF7AF +:104B90006BFF6060236842F2107043F003032360F0 +:104BA000BDE8104001F05EBD801A06000129F8B58D +:104BB000466C0B4F09D175680A493D40FFF754FF19 +:104BC000054345F480557560F8BD746806493C405E +:104BD000FFF74AFF044344F480547460F4E700BFD5 +:104BE00000ECFFFF80F0FA0240787D01436C002268 +:104BF0005A601A6070470000426C0129536823F420 +:104C0000404304D0022905D001B95360704743F4F2 +:104C10008043FAE743F40043F7E70000436C41F4B4 +:104C200080519A60D9605A6B1206FCD580229A6333 +:104C30007047000010B541F48851446CA260E160F7 +:104C4000616B11F04502FBD0A26311F0040203D0A6 +:104C5000FFF718FF012010BD616910461960FAE7DF +:104C600010B541F48851446CA260E160616B11F0B1 +:104C70004502FBD0A26311F0050203D0FFF702FF4B +:104C8000012010BD616910461960FAE773B513463B +:104C900004460E46302282F31188426CD26B32B148 +:104CA0004FF0FF314030019301F0E8FC019B606C54 +:104CB00000220265C263C262456B15F4807504D19F +:104CC00085F31188012002B070BD4FF0FF31816380 +:104CD00082F31188012E06D90C21204602B0BDE8CE +:104CE0007040FFF7BDBF1046EDE7000073B5446CA0 +:104CF0000E4600250192616BA1632565E562FFF711 +:104D0000C1FE012E07D9019B2A460C2102B0BDE845 +:104D10007040FFF7A5BF02B070BD000010B541F4B0 +:104D20009851446CA260E160616B11F04502FBD0C8 +:104D3000A26311F03F0203D0FFF7A4FE012010BDD3 +:104D4000216A10461960E1695960A1699960616939 +:104D5000D960F4E72DE9F74304460191006D01A9FC +:104D60001746984602F020FC064600284AD0626C9E +:104D70002046DDF804905568C5F3090501356B0040 +:104D8000A56CB5FBF3F54FF47A73B5FBF3F55D4312 +:104D9000556200F027FE50BB636C4FF0FF320125D7 +:104DA0004146C3F8589020461D659A634FF49572AA +:104DB000DA6342F207029F62DA62E36C0A9AFFF753 +:104DC0004FFFA0B9E26C104B11680B407BB929462C +:104DD0002046FFF75BFF054648B92E463A46019943 +:104DE000206D02F019FC304603B0BDE8F0833A466E +:104DF0000199206D02F010FCE26C01212046FFF7C2 +:104E000075FFF0E70126EEE708E0FFFD2DE9F74327 +:104E10001F46436C01924FF47A725D6804468846DF +:104E2000C5F3090501356E00856CB5FBF6F5B5FBDC +:104E3000F2F555435D6200F0D5FD20B1012528460D +:104E400003B0BDE8F0837E0201A9206D324602F076 +:104E5000ABFB05460028F1D0636C019AD4F84C9066 +:104E60009A6501221A654FF0FF329A634FF49572EA +:104E7000DA639E62236BDB064B4658BF4FEA482835 +:104E8000012F42461BD912212046FFF7E9FEC0B987 +:104E9000D9F80020104B13409BB9636C42F2930287 +:104EA00039462046DA62E26CFFF7F0FE804640B9F0 +:104EB00032460199206D454602F0AEFBBFE7112155 +:104EC000E2E732460199206D02F0A6FBE26C39461A +:104ED0002046FFF70BFFB2E708E0FFFD2DE9F341A5 +:104EE0001F46436C01924FF47A725D68044688460F +:104EF000C5F3090501356E00856CB5FBF6F5B5FB0C +:104F0000F2F555435D6200F06DFD20B101252846A4 +:104F100002B0BDE8F0817E0201A9206D324602F0A8 +:104F200089FB05460028F1D0636C019A9A6501223D +:104F30001A654FF0FF329A634FF48D72DA639E6206 +:104F4000236BE66CDB06334658BF4FEA4828012F37 +:104F5000424619D919212046FFF782FEB0B93268BE +:104F60000F4B134093B9636C42F2910239462046CD +:104F7000DA62E26CFFF78AFE064638B901993546D7 +:104F8000206D02F093FBC2E71821E4E70199206D40 +:104F900002F08CFBE26C39462046FFF7A7FEB6E72D +:104FA00008E0FFFD12F0030F2DE9F04107460C4623 +:104FB00015461E4617D00E44B44202D10020BDE86B +:104FC000F0810123FA6B21463846FFF71FFF0028C6 +:104FD000F5D128464FF40072F96B05F500750134E0 +:104FE000FCF784FEE8E7BDE8F041FFF70FBF0000E3 +:104FF00012F0030F2DE9F04107460C4615461E46F8 +:1050000017D00E44B44202D10020BDE8F0812946F9 +:105010004FF40072F86B05F50075FCF767FE01238D +:10502000FA6B21463846FFF759FF0028EDD10134CD +:10503000E8E7BDE8F041FFF751BF000000207047EE +:10504000302310B583F311880024436C403021468F +:10505000DC6301F021FB84F3118810BD0268436812 +:105060001143016003B1184770470000024A1368FA +:1050700043F0C0031360704700440040024A1368C5 +:1050800043F0C0031360704700480040024A1368B1 +:1050900043F0C0031360704700780040064BD3F81C +:1050A000E8200243C3F8E820D3F810211043C3F8E6 +:1050B0001001D3F8103170470044025837B5274C1F +:1050C000274D204600F028FD04F114000094002331 +:1050D0004FF40072234900F0C3F94FF400722249E3 +:1050E00004F138000094214B00F03CFA204BC4E955 +:1050F0001735204C204600F00FFD04F114000094F9 +:1051000000234FF400721C4900F0AAF94FF400721A +:105110001A4904F138000094194B00F023FA194B96 +:10512000C4E91735184C204600F0F6FC04F11400D1 +:1051300000234FF400721549009400F091F9144BCC +:105140004FF40072134904F13800009400F00AFA99 +:10515000114BC4E9173503B030BD00BF2039002022 +:1051600000E1F505643A0020644000206D5000081D +:10517000004400408C390020643C00206442002040 +:105180007D50000800480040F8390020643E0020AF +:105190008D500008644400200078004038B5264D4A +:1051A0000446037C002918BF0D46012B06D1234B72 +:1051B000984230D14FF40030FFF770FF2A68236E19 +:1051C000E16D03EB5203A566B3FBF2F36A681004CA +:1051D00042BF23F0070003F0070343EA4003CB601C +:1051E000AB6843F040034B60EB6843F001038B6016 +:1051F00042F4967343F001030B604FF0FF330B62F0 +:10520000510505D512F0102211D0B2F1805F10D0F7 +:1052100084F8643038BD0A4B984205D0094B984257 +:10522000CCD14FF08040C7E74FF48020C4E77F2304 +:10523000EEE73F23ECE700BFC098000820390020CC +:105240008C390020F83900202DE9F047C66D05465D +:105250003768F469210734621AD014F0080118BFC6 +:105260004FF48071E20748BF41F02001A3074FF0DF +:10527000300348BF41F04001600748BF41F0800162 +:1052800083F31188281DFFF7E9FE002383F31188BB +:10529000E2050AD5302383F311884FF48061281D7D +:1052A000FFF7DCFE002383F311884FF030094FF045 +:1052B000000A14F0200838D13B0616D54FF030090B +:1052C00005F1380A200610D589F31188504600F000 +:1052D0007DF9002836DA0821281DFFF7BFFE27F0E8 +:1052E00080033360002383F31188790614D56206A6 +:1052F00012D5302383F31188D5E913239A4208D1BC +:105300002B6C33B127F040071021281DFFF7A6FEB4 +:105310003760002383F31188E30618D5AA6E13695A +:10532000ABB15069BDE8F047184789F31188736A3B +:10533000284695F86410194000F008FC8AF311889B +:10534000F469B6E7B06288F31188F469BAE7BDE89A +:10535000F0870000090100F16043012203F5614379 +:10536000C9B283F8001300F01F039A4043099B0061 +:1053700003F1604303F56143C3F880211A6070476D +:1053800000F01F0301229A40430900F160409B0096 +:1053900000F5614003F1604303F56143C3F88020E9 +:1053A000C3F88021002380F800337047F8B5154614 +:1053B000826804460B46AA4200D28568A169266924 +:1053C000761AB5420BD218462A46FCF78FFCA36921 +:1053D0002B44A3612846A3685B1BA360F8BD0CD9CE +:1053E000AF1B18463246FCF781FC3A46E168304470 +:1053F000FCF77CFCE3683B44EBE718462A46FCF7E5 +:1054000075FCE368E5E7000083689342F7B504465E +:10541000154600D28568D4E90460361AB5420BD22D +:105420002A46FCF763FC63692B4463612846A36842 +:105430005B1BA36003B0F0BD0DD93246AF1B0191D9 +:10544000FCF754FC01993A46E0683144FCF74EFC05 +:10545000E3683B44E9E72A46FCF748FCE368E4E7F5 +:1054600010B50A440024C361029B8460C1600261DC +:105470000362C0E90000C0E9051110BD08B5D0E91C +:105480000532934201D1826882B98268013282601A +:105490005A1C426119700021D0E904329A4224BF9B +:1054A000C368436101F012F9002008BD4FF0FF30DE +:1054B000FBE7000070B5302304460E4683F31188E5 +:1054C000A568A5B1A368A269013BA360531CA361B1 +:1054D00015782269934224BFE368A361E3690BB1A5 +:1054E00020469847002383F31188284607E0314679 +:1054F000204601F0DBF80028E2DA85F3118870BD60 +:105500002DE9F74F04460E4617469846D0F81C90F2 +:105510004FF0300A8AF311884FF0000B154665B141 +:105520002A4631462046FFF741FF034660B941460F +:10553000204601F0BBF80028F1D0002383F3118846 +:10554000781B03B0BDE8F08FB9F1000F03D00190D4 +:105550002046C847019B8BF31188ED1A1E448AF33D +:105560001188DCE7C160C361009B82600362C0E90F +:1055700005111144C0E9000001617047F8B5044607 +:105580000D461646302383F31188A768A7B1A36898 +:10559000013BA36063695A1C62611D70D4E9043247 +:1055A0009A4224BFE3686361E3690BB120469847E0 +:1055B000002080F3118807E03146204601F076F89C +:1055C0000028E2DA87F31188F8BD0000D0E905234E +:1055D00010B59A4201D182687AB9826800210132FD +:1055E00082605A1C82611C7803699A4224BFC36896 +:1055F000836101F06BF8204610BD4FF0FF30FBE7F0 +:105600002DE9F74F04460E4617469846D0F81C90F1 +:105610004FF0300A8AF311884FF0000B154665B140 +:105620002A4631462046FFF7EFFE034660B9414661 +:10563000204601F03BF80028F1D0002383F31188C5 +:10564000781B03B0BDE8F08FB9F1000F03D00190D3 +:105650002046C847019B8BF31188ED1A1E448AF33C +:105660001188DCE70379052B05BF836A0020012040 +:105670004B6004BF4FF400730B60704770B55D1E44 +:10568000866A04460D44B54205D9436B43F0800356 +:105690004363012070BD06250571FFF783FC0523D8 +:1056A0002371F7E770B55D1E866A04460D44B54266 +:1056B00005D9436B43F080034363012070BD072588 +:1056C0000571FFF795FC05232371F7E738B50579D8 +:1056D0000446052D05D108230371FFF7AFFC2571A2 +:1056E00038BD0120FCE700000323F0B5037185B04D +:1056F0000446FFF749FA002220461146FFF78EFACA +:105700004FF4D57203AB08212046FFF7A9FA0246F1 +:10571000B8B901232363039BC3F30323012B09D1EE +:1057200003AB37212046FFF79BFA18B9A44B039A25 +:105730001340ABB120460125FFF758FA022323712D +:1057400037E103AB002237212046FFF789FA28B959 +:105750009B4A039B1A40002A00F0A7800223236380 +:10576000236B03F00F03022B40F0A9806425954EB4 +:1057700042F2107000F076FF03AB32460121204662 +:10578000FFF758FA0028D5D1039B002B80F29380B5 +:105790005A0003D5236B43F010032363002204F166 +:1057A000080302212046FFF7B9FA02460028C1D1BA +:1057B00004F1380303212046FFF752FA0028B9D13B +:1057C00004F11805A26B092120462B46FFF7A6FA23 +:1057D0000028AFD102ABA26B07212046FFF740FAA9 +:1057E00006460028A6D1236B03F00F03022B40F0DE +:1057F0008F807E227F21284603F01CFA012840F288 +:105800008780E76B42F2107000F02CFF08234FF402 +:105810000072394620460096FFF79CFA002889D18D +:10582000384603F055FA236BA06203F00F03022BF6 +:1058300072D103AB644A06212046FFF711FA002813 +:1058400071D15F49039B1940B1FA81F149092046A2 +:10585000FFF7ACF902AB4FF4007210212046FFF7BE +:10586000FFF9054600287FF465AF554E029B334291 +:105870007FF460AF236B13F00E0F03F00F0273D0B1 +:10588000022A7FF457AFE36A1978012900F0948067 +:10589000022900F09380002900F089804B4F2046B8 +:1058A000FFF7AAF903AB3A4676E011462046226399 +:1058B000FFF7B4F954E7013D7FF45AAF3AE7444D9E +:1058C0006426444A3E4F012B18BF154603AB002205 +:1058D00037212046FFF7C4F900287FF42BAF039B44 +:1058E0003B427FF427AF03AB2A4629212046FFF72E +:1058F000A1F900287FF41EAF039B002BFFF648AFF1 +:10590000013E3FF417AF42F2107000F0ABFEDDE74E +:10591000284603F0B1F986E77E227F212846E66B10 +:1059200003F088F908B9002191E7002340223146AD +:10593000204600930623FFF70DFA0028F3D1B38920 +:105940005BBA9B07EFD5244B40223146204600939B +:105950000623FFF7FFF90028E5D1317C01F00F01A4 +:105960000F3918BF012172E7E36A1978F9B10129EB +:105970007FF4E0AE2046FFF73FF903ABA26B37217F +:105980002046FFF76DF900287FF4D4AE039B334225 +:105990007FF4D0AE03AB022206212046FFF760F968 +:1059A00000287FF4C7AE039B33427FF4C3AE0523C8 +:1059B0002371284605B0F0BD084F70E7084F6EE729 +:1059C00008E0FFFD0080FFC00001B9030000B7033D +:1059D0000080FF5000001080F1FFFF800001B7033E +:1059E0000002B70337B504460C4D01ABA26B0D2185 +:1059F0002046FFF735F978B9019B2B420BD1C3F351 +:105A00004323042B08D0053B022B04D84FF47A70B3 +:105A100000F028FEE9E7012003B030BD08E0FFFDFB +:105A200070B53023054683F3118803790024022BD7 +:105A300003D184F31188204670BD0423037184F3DD +:105A400011880226FFF7CEFF04462846FFF7CEF85E +:105A50002E71F0E7FFF730B8044B036001230371A8 +:105A600000234363C0E90A33704700BFD898000899 +:105A700010B53023044683F31188C162FFF736F86E +:105A800002230020237180F3118810BD10B530234C +:105A9000044683F31188FFF753F800230122E362E1 +:105AA000227183F3118810BD0268436811430160BD +:105AB00003B11847704700001430FFF721BD000004 +:105AC0004FF0FF331430FFF71BBD00003830FFF7F5 +:105AD00097BD00004FF0FF333830FFF791BD000055 +:105AE0001430FFF7E7BC00004FF0FF311430FFF730 +:105AF000E1BC00003830FFF741BD00004FF0FF323D +:105B00003830FFF73BBD0000012914BF6FF01300D0 +:105B100000207047FFF7D2BA044B036000234360B4 +:105B2000C0E9023301230374704700BFFC980008EA +:105B300010B53023044683F31188FFF72FFB0223AF +:105B40000020237480F3118810BD000038B5C369AC +:105B500004460D461BB904210844FFF7A5FF29465A +:105B600004F11400FFF78AFC002806DA201D4FF428 +:105B70000061BDE83840FFF797BF38BD0268436851 +:105B80001143016003B118477047000013B5406B23 +:105B900000F58054D4F8A4381A681178042914D177 +:105BA000017C022911D11979012312898B401342FA +:105BB0000BD101A94C3002F06BFFD4F8A448024687 +:105BC000019B2179206800F0DFF902B010BD0000D0 +:105BD000143002F0EDBE00004FF0FF33143002F03D +:105BE000E7BE00004C3002F0BFBF00004FF0FF33B3 +:105BF0004C3002F0B9BF0000143002F0BBBE000010 +:105C00004FF0FF31143002F0B5BE00004C3002F00E +:105C10008BBF00004FF0FF324C3002F085BF000018 +:105C20000020704710B500F58054D4F8A4381A68E5 +:105C30001178042917D1017C022914D15979012343 +:105C400052898B4013420ED1143002F04DFE0246B1 +:105C500048B1D4F8A4484FF4407361792068BDE896 +:105C6000104000F07FB910BD406BFFF7DBBF0000B4 +:105C7000704700007FB5124B0125042604460360DF +:105C80000023057400F1840243602946C0E9023311 +:105C90000C4B0290143001934FF44073009602F0C5 +:105CA000FFFD094B04F69442294604F14C0002948E +:105CB000CDE900634FF4407302F0C6FE04B070BD3E +:105CC00024990008695C00088D5B00080A6830238D +:105CD00083F311880B790B3342F823004B7913338C +:105CE00042F823008B7913B10B3342F8230000F5FF +:105CF0008053C3F8A41802230374002080F3118892 +:105D00007047000038B5037F044613B190F8543053 +:105D1000ABB90125201D0221FFF730FF04F114006B +:105D20006FF00101257700F0DDFC04F14C0084F8F0 +:105D300054506FF00101BDE8384000F0D3BC38BDCD +:105D400010B5012104460430FFF718FF0023237724 +:105D500084F8543010BD000038B5044600251430D6 +:105D600002F0B6FD04F14C00257702F085FE201DFF +:105D700084F854500121FFF701FF2046BDE8384068 +:105D8000FFF750BF90F8803003F06003202B06D15E +:105D900090F881200023212A03D81F2A06D800204A +:105DA0007047222AFBD1C0E91D3303E0034A426752 +:105DB00007228267C3670120704700BF442200208A +:105DC00037B500F58055D5F8A4381A68117804293C +:105DD0001AD1017C022917D11979012312898B402C +:105DE000134211D100F14C04204602F005FF58B1D6 +:105DF00001A9204602F04CFED5F8A4480246019BBA +:105E00002179206800F0C0F803B030BD01F10B0328 +:105E1000F0B550F8236085B004460D46FEB130233E +:105E200083F3118804EB8507301D0821FFF7A6FED8 +:105E3000FB6806F14C005B691B681BB1019002F026 +:105E400035FE019803A902F023FE024648B1039BE8 +:105E50002946204600F098F8002383F3118805B006 +:105E6000F0BDFB685A691268002AF5D01B8A013B15 +:105E70001340F1D104F18002EAE70000133138B594 +:105E800050F82140ECB1302383F3118804F580539E +:105E9000D3F8A4281368527903EB8203DB689B696B +:105EA0005D6845B104216018FFF768FE294604F1DA +:105EB000140002F023FD2046FFF7B4FE002383F315 +:105EC000118838BD7047000001F044BD0123402215 +:105ED000002110B5044600F8303BFBF72DFF0023EE +:105EE000C4E9013310BD000010B53023044683F32C +:105EF00011882422416000210C30FBF71DFF204651 +:105F000001F04AFD02230020237080F3118810BDA8 +:105F100070B500EB8103054650690E461446DA6001 +:105F200018B110220021FBF707FFA06918B1102259 +:105F30000021FBF701FF31462846BDE8704001F023 +:105F400031BE000083682022002103F0011310B548 +:105F5000044683601030FBF7EFFE2046BDE810409A +:105F600001F0ACBEF0B4012500EB810447898D40FF +:105F7000E4683D43A469458123600023A260636017 +:105F8000F0BC01F0C9BE0000F0B4012500EB8104B3 +:105F900007898D40E4683D436469058123600023DF +:105FA000A2606360F0BC01F03FBF000070B5022347 +:105FB00000250446242203702946C0F888500C307E +:105FC00040F8045CFBF7B8FE204684F8705001F0FE +:105FD0007DFD63681B6823B129462046BDE87040FB +:105FE000184770BD0378052B10B504460AD080F819 +:105FF0008C300523037043681B680BB1042198475C +:106000000023A36010BD00000178052906D190F897 +:106010008C20436802701B6803B11847704700006A +:1060200070B590F87030044613B1002380F87030DA +:1060300004F18002204601F065FE63689B68B3B9F5 +:1060400094F8803013F0600535D00021204602F02E +:1060500057F90021204602F047F963681B6813B125 +:10606000062120469847062384F8703070BD2046EC +:1060700098470028E4D0B4F88630A26F9A4288BFCF +:10608000A36794F98030A56F002B4FF0300380F2A6 +:106090000381002D00F0F280092284F8702083F340 +:1060A000118800212046D4E91D23FFF76DFF00234E +:1060B00083F31188DAE794F8812003F07F0343EA41 +:1060C000022340F20232934200F0C58021D8B3F59A +:1060D000807F48D00DD8012B3FD0022B00F0938059 +:1060E000002BB2D104F1880262670222A267E36743 +:1060F000C1E7B3F5817F00F09B80B3F5407FA4D169 +:1061000094F88230012BA0D1B4F8883043F0020318 +:1061100032E0B3F5006F4DD017D8B3F5A06F31D092 +:10612000A3F5C063012B90D86368204694F88220C1 +:106130005E6894F88310B4F88430B047002884D0A7 +:10614000436863670368A3671AE0B3F5106F36D03E +:1061500040F6024293427FF478AF5C4B63670223C0 +:10616000A3670023C3E794F88230012B7FF46DAF5F +:10617000B4F8883023F00203A4F88830C4E91D5530 +:10618000E56778E7B4F88030B3F5A06F0ED194F8E6 +:106190008230204684F88A3001F0F6FC63681B6880 +:1061A00013B1012120469847032323700023C4E93B +:1061B0001D339CE704F18B0363670123C3E7237856 +:1061C000042B10D1302383F311882046FFF7BAFE49 +:1061D00085F311880321636884F88B5021701B6854 +:1061E0000BB12046984794F88230002BDED084F81B +:1061F0008B300423237063681B68002BD6D00221E8 +:1062000020469847D2E794F8843020461D0603F0D4 +:106210000F010AD501F068FD012804D002287FF49F +:1062200014AF2B4B9AE72B4B98E701F04FFDF3E7A8 +:1062300094F88230002B7FF408AF94F8843013F088 +:106240000F01B3D01A06204602D502F071F8ADE76F +:1062500002F062F8AAE794F88230002B7FF4F5AEE2 +:1062600094F8843013F00F01A0D01B06204602D50D +:1062700002F046F89AE702F037F897E7142284F81C +:10628000702083F311882B462A4629462046FFF7C3 +:1062900069FE85F31188E9E65DB1152284F8702066 +:1062A00083F3118800212046D4E91D23FFF75AFE0D +:1062B000FDE60B2284F8702083F311882B462A46D2 +:1062C00029462046FFF760FEE3E700BF5499000827 +:1062D0004C9900085099000838B590F87030044681 +:1062E000002B3ED0063BDAB20F2A34D80F2B32D81F +:1062F000DFE803F0373131082232313131313131C9 +:1063000031313737856FB0F886309D4214D2C3687B +:106310001B8AB5FBF3F203FB12556DB9302383F3EF +:1063200011882B462A462946FFF72EFE85F3118851 +:106330000A2384F870300EE0142384F87030302380 +:1063400083F31188002320461A461946FFF70AFEF8 +:10635000002383F3118838BDC36F03B1984700232E +:10636000E7E70021204601F0CBFF0021204601F0A5 +:10637000BBFF63681B6813B10621204698470623BC +:10638000D7E7000010B590F870300446142B29D0E0 +:1063900017D8062B05D001D81BB110BD093B022B25 +:1063A000FBD80021204601F0ABFF0021204601F080 +:1063B0009BFF63681B6813B106212046984706239C +:1063C00019E0152BE9D10B2380F87030302383F3CB +:1063D000118800231A461946FFF7D6FD002383F3E0 +:1063E0001188DAE7C3689B695B68002BD5D1C36F5E +:1063F00003B19847002384F87030CEE70023826809 +:1064000080F8243083691B6899689142FBD25A68EE +:10641000036042601060586070470000002382688B +:1064200080F8243083691B6899689142FBD85A68C8 +:1064300003604260106058607047000008B508466D +:10644000302383F3118891F82430032B05D0042BDB +:106450000DD02BB983F3118808BD8B6A00221A6016 +:106460004FF0FF338362FFF7C9FF0023F2E7D1E962 +:10647000003213605A60F3E7034610B51B68984278 +:1064800003D09C688A689442F8D25A680B604A60CC +:106490001160596010BD0000FFF7B0BF064BD9680E +:1064A00081F824001868026853601A600122D860DD +:1064B00080F82420F9F7A6BF684600200C4B30B5C1 +:1064C000DD684B1C87B004460FD02B46094A68464E +:1064D00000F09CF92046FFF7E1FF009B13B16846EE +:1064E00000F09EF9A86A07B030BDFFF7D7FFF9E7C3 +:1064F000684600203D640008044B1A68DB68906819 +:106500009B68984294BF0020012070476846002095 +:10651000094B10B51C68D868226853601A600122C4 +:10652000DC6084F82420FFF779FF01462046BDE8AF +:106530001040F9F767BF00BF68460020044B1A6897 +:10654000DB6892689B689A4201D9FFF7E1BF704708 +:106550006846002038B50123084C0025237065608B +:1065600002F0E4FB02F00AFC0549064802F0E0FCF8 +:106570000223237085F3118838BD00BF1049002025 +:106580005C9900086846002000F080B9034A516811 +:1065900053685B1A9842FBD8704700BF001000E0B8 +:1065A0008B604B630023CA6100F128020B63022356 +:1065B0000A618B840123886181F8263001F1100380 +:1065C000C26A4A611360C36201F12C030846CB62C0 +:1065D00070470000D0E90131026841F8183CA1F190 +:1065E0009C033839CB60036941F8243C436941F886 +:1065F000203C034B41F8043CC3680248FFF7D0BF7E +:106600001D0400086846002008B5FFF7E3FFBDE859 +:106610000840FFF741BF000038B50E4BDC6804F1BD +:106620002C05A062E06AA8420FD194F826303BB94D +:1066300094F825309B0702BFD4E9043213605A60F6 +:106640000F20BDE83840FFF729BF0368E362FFF77A +:1066500023FFE7E768460020302383F31188FFF724 +:10666000DBBF000008B50146302383F31188082002 +:10667000FFF724FF002383F3118808BD054BDB6877 +:1066800021B1036098620320FFF718BF4FF0FF307D +:10669000704700BF6846002003682BB100220260EB +:1066A00018469962FFF7F8BE70470000064BDB689A +:1066B00039B1426818605A60136043600420FFF7E4 +:1066C000FDBE4FF0FF3070476846002003689842D7 +:1066D00006D01A680260506018469962FFF7DCBE67 +:1066E0007047000038B504460D462068844200D14A +:1066F00038BD036823605C608562FFF7CDFEF4E778 +:10670000036810B59C68A2420CD85C688A600B6074 +:106710004C602160596099688A1A9A604FF0FF3383 +:10672000836010BD121B1B68ECE700000A2938BF0C +:106730000A2170B504460D460A26601902F0F0FAE7 +:1067400002F0D8FA041BA54203D8751C04462E4655 +:10675000F3E70A2E04D90120BDE8704002F0B0BC76 +:1067600070BD0000F8B5144B0D460A2A4FF00A0719 +:10677000D96103F11001826038BF0A2241601969B2 +:106780001446016048601861A81802F0B9FA02F0D6 +:10679000B1FA431B0646A34206D37C1C28192746A0 +:1067A000354602F0BDFAF2E70A2F04D90120BDE810 +:1067B000F84002F085BCF8BD68460020F8B50646F2 +:1067C0000D4602F097FA0F4A134653F8107F9F4286 +:1067D00006D12A4601463046BDE8F840FFF7C2BF61 +:1067E000D169BB68441A2C1928BF2C46A34202D990 +:1067F0002946FFF79BFF224631460348BDE8F84093 +:10680000FFF77EBF6846002078460020C0E90323DA +:10681000002310B45DF8044B4361FFF7CFBF0000C5 +:1068200010B5194C236998420DD08168D0E9003227 +:1068300013605A609A680A449A60002303604FF01C +:10684000FF33A36110BD0268234643F8102F536045 +:106850000022026022699A4203D1BDE8104002F092 +:1068600059BA936881680B44936002F043FA226935 +:10687000E1699268441AA242E4D91144BDE810408B +:10688000091AFFF753BF00BF684600202DE9F04703 +:10689000DFF8BC8008F110072C4ED8F8105002F039 +:1068A00029FAD8F81C40AA68031B9A423ED814441F +:1068B0004FF00009D5E90032C8F81C4013605A6057 +:1068C000C5F80090D8F81030B34201D102F022FA96 +:1068D00089F31188D5E9033128469847302383F39B +:1068E00011886B69002BD8D002F004FA6A69A0EB1A +:1068F000040982464A450DD2022002F0E1FB002243 +:10690000D8F81030B34208D151462846BDE8F047C8 +:10691000FFF728BF121A2244F2E712EB09092946B1 +:10692000384638BF4A46FFF7EBFEB5E7D8F81030D7 +:10693000B34208D01444C8F81C00211AA960BDE86D +:10694000F047FFF7F3BEBDE8F08700BF78460020B0 +:106950006846002038B502F0CDF9054AD2E908456D +:10696000031B181945F10001C2E9080138BD00BF39 +:106970006846002010B560B9074804790368053CF3 +:106980009B6818BF0124984708B144F004042046CE +:1069900010BD0124FBE700BFC8360020FFF7EABFA7 +:1069A0002DE9F047884617469A460446B0B90D4E81 +:1069B0003579052D05D003240DE0013D15F0FF05C7 +:1069C0000ED03268534639463046D2F814904246CB +:1069D000C8470028F1D12046BDE8F0870424FAE733 +:1069E0000124F8E7C83600202DE9F047884617460D +:1069F0009A460446B0B90D4E3579052D05D00324CD +:106A00000DE0013D15F0FF050ED0326853463946C2 +:106A10003046D2F818904246C8470028F1D12046A7 +:106A2000BDE8F0870424FAE70124F8E7C83600201F +:106A300037B50C46154670B951B101290BD107483D +:106A4000694603681B6A984710B9019B04462B608E +:106A5000204603B030BD0424FAE700BFC83600204A +:106A600000207047FEE70000704700004FF0FF3045 +:106A7000704700004B6843608B688360CB68C360DD +:106A80000B6943614B6903628B6943620B68036066 +:106A90007047000008B53C4B40F2FF713B48D3F80B +:106AA00088200A43C3F88820D3F8882022F4FF62A4 +:106AB00022F00702C3F88820D3F88820D3F8E0201A +:106AC0000A43C3F8E020D3F808210A43C3F8082199 +:106AD0002F4AD3F808311146FFF7CCFF00F580604C +:106AE00002F11C01FFF7C6FF00F5806002F13801DA +:106AF000FFF7C0FF00F5806002F15401FFF7BAFF15 +:106B000000F5806002F17001FFF7B4FF00F58060CE +:106B100002F18C01FFF7AEFF00F5806002F1A801E1 +:106B2000FFF7A8FF00F5806002F1C401FFF7A2FFA4 +:106B300000F5806002F1E001FFF79CFF00F5806046 +:106B400002F1FC01FFF796FF02F58C7100F5806001 +:106B5000FFF790FF01F084FC0E4BD3F8902242F037 +:106B60000102C3F89022D3F8942242F00102C3F844 +:106B700094220522C3F898204FF06052C3F89C205D +:106B8000054AC3F8A02008BD00440258000002587E +:106B90007099000800ED00E01F00080308B501F03F +:106BA0006BFEFFF7D7FC104BD3F8DC2042F040021D +:106BB000C3F8DC20D3F8042122F04002C3F80421FA +:106BC000D3F80431094B1A6842F008021A601A68B7 +:106BD00042F004021A6000F071FD00F035FBBDE8E0 +:106BE000084000F0B5B800BF004402580018024841 +:106BF00001207047002070477047000002290CD028 +:106C0000032904D00129074818BF00207047032A30 +:106C100005D8054800EBC2007047044870470020C3 +:106C2000704700BF749B000854220020289B000876 +:106C300070B59AB005460846144601A900F0C2F89E +:106C400001A8FBF771F8431C0022C6B25B00104696 +:106C5000C5E9003423700323023404F8013C01AB7E +:106C6000D1B202348E4201D81AB070BD13F8011BA4 +:106C7000013204F8010C04F8021CF1E708B53023D6 +:106C800083F311880348FFF79BF8002383F31188EF +:106C900008BD00BF1849002090F8803003F01F02A3 +:106CA000012A07D190F881200B2A03D10023C0E9E3 +:106CB0001D3315E003F06003202B08D1B0F88430B9 +:106CC0002BB990F88120212A03D81F2A04D8FFF776 +:106CD00059B8222AEBD0FAE7034A426707228267B3 +:106CE000C3670120704700BF4B22002007B505296C +:106CF00017D8DFE801F0191603191920302383F3A0 +:106D00001188104A01210190FFF702F90198022130 +:106D10000D4AFFF7FDF80D48FFF71EF8002383F337 +:106D2000118803B05DF804FB302383F31188074812 +:106D3000FEF7E8FFF2E7302383F311880348FEF7FC +:106D4000FFFFEBE7C89A0008EC9A000818490020FA +:106D500038B50C4D0C4C2A460C4904F10800FFF7DD +:106D600067FF05F1CA0204F110000949FFF760FF4F +:106D700005F5CA7204F118000649BDE83840FFF76E +:106D800057BF00BFF061002054220020A49A0008E1 +:106D9000B19A0008BC9A000870B5044608460D4632 +:106DA000FAF7C2FFC6B22046013403780BB9184681 +:106DB00070BD32462946FAF7A3FF0028F3D101201F +:106DC000F6E700002DE9F84F05460C46FAF7ACFF50 +:106DD0002C49C6B22846FFF7DFFF08B10336F6B2EA +:106DE00029492846FFF7D8FF08B11036F6B2632EBE +:106DF0000DD8DFF89080DFF89090244FDFF894A052 +:106E0000DFF894B02E7846B92670BDE8F88F294691 +:106E10002046BDE8F84F02F0FDB9252E2ED10722FD +:106E200041462846FAF76CFF70B9DBF800300735A9 +:106E30000A3444F80A3CDBF8043044F8063CBBF85A +:106E4000083024F8023CDDE7082249462846FAF7D4 +:106E500057FF98B9A21C0E4B197802320909C95D77 +:106E600002F8041C13F8011B01F00F015345C95D22 +:106E700002F8031CF0D118340835C3E7013504F8D3 +:106E8000016BBFE7949B0008BC9A0008A79B000811 +:106E900000E8F11F0CE8F11F9C9B0008BFF34F8F27 +:106EA000044B1A695107FCD1D3F810215207F8D1CD +:106EB000704700BF0020005208B50D4B1B78ABB9DE +:106EC000FFF7ECFF0B4BDA68D10704D50A4A5A608A +:106ED00002F188325A60D3F80C21D20706D5064A4F +:106EE000C3F8042102F18832C3F8042108BD00BFB1 +:106EF0004E640020002000522301674508B5114B65 +:106F00001B78F3B9104B1A69510703D5DA6842F0C0 +:106F10004002DA60D3F81021520705D5D3F80C21CE +:106F200042F04002C3F80C21FFF7B8FF064BDA68C5 +:106F300042F00102DA60D3F80C2142F00102C3F8FA +:106F40000C2108BD4E640020002000520F289ABF7B +:106F500000F5806040040020704700004FF40030CE +:106F600070470000102070470F2808B50BD8FFF7B6 +:106F7000EDFF00F500330268013204D10430834292 +:106F8000F9D1012008BD0020FCE700000F2838B52A +:106F900005463FD8FFF782FF1F4CFFF78DFF4FF0EC +:106FA000FF3307286361C4F814311DD82361FFF74C +:106FB00075FF030243F02403E360E36843F08003BA +:106FC000E36023695A07FCD42846FFF767FFFFF701 +:106FD000BDFF4FF4003100F0ABFA2846FFF78EFFFB +:106FE000BDE83840FFF7C0BFC4F81031FFF756FFC7 +:106FF000A0F108031B0243F02403C4F80C31D4F8B9 +:107000000C3143F08003C4F80C31D4F810315B0725 +:10701000FBD4D9E7002038BD002000522DE9F84FFD +:1070200005460C46104645EA0203DE0602D0002063 +:10703000BDE8F88F20F01F00DFF8BCB0DFF8BCA07F +:10704000FFF73AFF04EB0008444503D10120FFF7A6 +:1070500055FFEDE720222946204602F0A3F810B99B +:1070600020352034F0E72B4605F120021F68791CFB +:10707000DDD104339A42F9D105F178431B481C4E07 +:10708000B3F5801F1B4B38BF184603F1F80332BF1E +:10709000D946D1461E46FFF701FF0760A5EB040C59 +:1070A000336804F11C0143F002033360231FD9F855 +:1070B000007017F00507FAD153F8042F8B424CF8F3 +:1070C0000320F4D1BFF34F8FFFF7E8FE4FF0FF33FB +:1070D0002022214603602846336823F002033360F0 +:1070E00002F060F80028BBD03846B0E71421005207 +:1070F0000C20005214200052102000521021005287 +:1071000010B5084C237828B11BB9FFF7D5FE012331 +:10711000237010BD002BFCD02070BDE81040FFF79D +:10712000EDBE00BF4E6400202DE9F04F0D4685B046 +:10713000814658B111F00D0614BF2022082211F02B +:107140000803019304D0431E034269D0002435E0B4 +:10715000002E37D009F11F0121F01F094FF001085F +:10716000314F05F00403DFF8CCA005EA080BBBF1B2 +:10717000000F32D07869C0072FD408F101080C370E +:10718000B8F1060FF3D19EB9284D4946A8190192CE +:1071900001F016FE0446002839D12036019AA02EAF +:1071A000F3D1494601F00CFE044600282FD1019A84 +:1071B00049461F4801F004FE044660BB204605B066 +:1071C000BDE8F08F0029C9D101462846029201F09E +:1071D000F7FD0446D8B9029AC0E713B178694107B0 +:1071E000CBD5AC0702D578698007C6D5019911B116 +:1071F00078690107C1D549460AEB4810CDE9022359 +:1072000001F0DEFD0446DDE902230028B5D04A4640 +:107210000021204601E04A460021FAF78DFDCDE726 +:107220000246002E96D199E7B89B00089064002092 +:1072300050640020706400200021FFF775BF00003B +:107240000121FFF771BF000070B5144D0124144EE9 +:1072500040F2FF3200210120FAF76EFD06EB4410E8 +:1072600001342A6955F80C1F01F096FD062CF5D162 +:1072700037254FF4C0542046FFF7E2FF014628B1FE +:1072800022460848BDE8704001F086BDC4EBC40446 +:10729000013D4FEAD404EED170BD00BFB89B000899 +:1072A00070640020506400200421FFF73DBF0000FF +:1072B0004843FFF7C1BF000008B101F0F3BD7047BC +:1072C000B0F5805F10B5044607D8FFF7EDFF28B989 +:1072D0002046BDE81040FFF7AFBF002010BD000002 +:1072E000FFF7EABF70B5AAB140EA010313F01F032C +:1072F0000FD1094C0144A5686D0706D52568A84241 +:1073000003D366683544A94204D903330C34122BE5 +:10731000F1D10022104670BDB89B000808B501F0FD +:10732000D7FE034AD2E90032C01842EB010108BD82 +:1073300030650020434BD3E900232DE9F34113438B +:107340007CD0FFF7EBFF404A00230027F9F774F8E1 +:1073500006460D463D4A0023F9F76EF80023144611 +:1073600030462946394AF9F767F84FF461613C2302 +:10737000ADF80170B4FBF1F5B4FBF3F601FB154178 +:1073800003FB16464624B1FBF3F1314BF6B28DF800 +:10739000004098423CD84FF0640C4FF4C87EA307DD +:1073A00004F26C7225D1B2FBFCF30CFB132313BB6C +:1073B000B2FBFEF30EFB1322B2FA82F35B0903F277 +:1073C0006D18621C8045D2B217D90FB18DF80040FC +:1073D0000022204C4FF00C0C17460CFB0343D4B298 +:1073E000013213F804C084450CD8A0EB0C0001272F +:1073F000F5E70023E3E70123E1E7A0EB08001446EB +:107400000127CCE70FB18DF80140431C8DF8023005 +:107410009DF80100431C9DF800005038400640EAEA +:1074200043509DF8023040EA034040EA560040EAEB +:10743000C52040EA411002B0BDE8F0814FF40410CD +:10744000F9E700BF3065002040420F008051010085 +:1074500090230B00009C00080244074BD2B210B5E9 +:10746000904200D110BD441C00B253F8200041F8F6 +:10747000040BE0B2F4E700BF504000580E4B30B5AB +:107480001C6F240405D41C6F1C671C6F44F400445B +:107490001C670A4C02442368D2B243F48073236011 +:1074A000074B904200D130BD441C51F8045B00B240 +:1074B00043F82050E0B2F4E7004402580048025874 +:1074C0005040005807B5012201A90020FFF7C4FF72 +:1074D000019803B05DF804FB13B50446FFF7F2FF13 +:1074E000A04205D0012201A900200194FFF7C6FFA8 +:1074F00002B010BD10B56424013C4FF47A70FFF760 +:10750000B1F814F0FF04F7D1084B4FF08072142447 +:107510009A6103F5805308229A61013C4FF47A7016 +:10752000FFF7A0F814F0FF04F7D110BD00000258D7 +:107530000144BFF34F8F064B884204D3BFF34F8FF4 +:10754000BFF36F8F7047C3F85C022030F4E700BFD1 +:1075500000ED00E00144BFF34F8F064B884204D397 +:10756000BFF34F8FBFF36F8F7047C3F870022030A7 +:10757000F4E700BF00ED00E070B5054616460C4686 +:1075800001201021FFF794FE286046733CB120468D +:1075900036B1FFF789FE2B68186000B19C6070BDA2 +:1075A000FFF74EFEF7E70000F8B50F461546044614 +:1075B00048B905F11F010126386821F01F01FFF7C6 +:1075C000B7FF3046F8BD427B29463868FFF78AFE90 +:1075D00006460028EDD13B686360A368AB4210D239 +:1075E00013B12068FFF768FE637B28462BB1FFF7D5 +:1075F0005BFE206020B9A060E3E7FFF721FEF8E71B +:10760000A560206805F11F01012621F01F013860E7 +:10761000FFF78EFF2673D4E710B5044640B100682B +:10762000884205D1606808B1FAF760FB0023237334 +:1076300010BD0000F8B50F461446054648B904F1E0 +:107640001F010126386821F01F01FFF783FF304634 +:10765000F8BD427B21463868FFF744FE0646002805 +:10766000EDD1AB68A34210D213B12868FFF724FE16 +:107670006B7B20462BB1FFF717FE286020B9A8606E +:10768000E5E7FFF7DDFDF8E7AC60396819B12246A0 +:107690002868FAF72BFB286804F11F01012621F066 +:1076A0001F013860FFF756FF2E73D0E720B1036843 +:1076B0008B4204BF0023037370470000034B1A681A +:1076C0001AB9034AD2F8D0241A60704738650020EE +:1076D0000040025808B5FFF7F1FF024B1868C0F3ED +:1076E000806008BD38650020EFF3098305496833E1 +:1076F0004A6B22F001024A6383F30988002383F373 +:107700001188704700EF00E0302080F3118862B6E6 +:107710000D4B0E4AD96821F4E0610904090C0A43B3 +:107720000B49DA60D3F8FC2042F08072C3F8FC20E9 +:10773000084AC2F8B01F116841F00101116020220F +:10774000DA7783F82200704700ED00E00003FA05C5 +:1077500055CEACC5001000E0302310B583F311887E +:107760000E4B5B6813F4006314D0F1EE103AEFF3A4 +:1077700009844FF08073683CE361094BDB6B23663F +:1077800084F30988FEF7B8FE10B1064BA36110BD63 +:10779000054BFBE783F31188F9E700BF00ED00E03C +:1077A00000EF00E02F0400083204000870B5BFF3BA +:1077B0004F8FBFF36F8F1A4A0021C2F85012BFF3E8 +:1077C0004F8FBFF36F8F536943F400335361BFF39F +:1077D0004F8FBFF36F8FC2F88410BFF34F8FD2F873 +:1077E000803043F6E074C3F3C900C3F34E335B014A +:1077F00003EA0406014646EA81750139C2F860527F +:10780000F9D2203B13F1200FF2D1BFF34F8F536910 +:1078100043F480335361BFF34F8FBFF36F8F70BD5D +:1078200000ED00E0FEE70000214B2248224A70B53F +:10783000904237D3214BC11EDA1C121A22F00302E8 +:107840008B4238BF00220021FAF776FA1C4A002347 +:10785000C2F88430BFF34F8FD2F8803043F6E07423 +:10786000C3F3C900C3F34E335B0103EA04060146C8 +:1078700046EA81750139C2F86C52F9D2203B13F106 +:10788000200FF2D1BFF34F8FBFF36F8FBFF34F8F36 +:10789000BFF36F8F0023C2F85032BFF34F8FBFF397 +:1078A0006F8F70BD53F8041B40F8041BC0E700BF86 +:1078B000049D0008346700203467002034670020EE +:1078C00000ED00E0074BD3F8D81021EA0001C3F81F +:1078D000D810D3F8002122EA0002C3F80021D3F81F +:1078E000003170470044025870B5D0E924430022AB +:1078F0004FF0FF359E6804EB42135101D3F80009A5 +:10790000002805DAD3F8000940F08040C3F80009E8 +:10791000D3F8000B002805DAD3F8000B40F08040C4 +:10792000C3F8000B013263189642C3F80859C3F834 +:10793000085BE0D24FF00113C4F81C3870BD0000A2 +:10794000890141F02001016103699B06FCD41220EA +:10795000FEF71CBE10B50A4C2046FEF7B7FA094BDD +:10796000C4F89030084BC4F89430084C2046FEF719 +:10797000ADFA074BC4F89030064BC4F8943010BDF4 +:107980003C650020000008403C9C0008D8650020B1 +:1079900000000440489C000870B503780546012BA0 +:1079A0005CD1434BD0F89040984258D1414B0E21C6 +:1079B0006520D3F8D82042F00062C3F8D820D3F86D +:1079C000002142F00062C3F80021D3F80021D3F86F +:1079D000802042F00062C3F88020D3F8802022F09B +:1079E0000062C3F88020D3F88030FDF7B3FC324B3F +:1079F000E360324BC4F800380023D5F89060C4F837 +:107A0000003EC02323604FF40413A3633369002BAB +:107A1000FCDA01230C203361FEF7B8FD3369DB0784 +:107A2000FCD41220FEF7B2FD3369002BFCDA0026ED +:107A30002846A660FFF758FF6B68C4F81068DB683B +:107A4000C4F81468C4F81C6883BB1D4BA3614FF0D5 +:107A5000FF336361A36843F00103A36070BD194B5A +:107A60009842C9D1134B4FF08060D3F8D82042F030 +:107A70000072C3F8D820D3F8002142F00072C3F896 +:107A80000021D3F80021D3F8802042F00072C3F81F +:107A90008020D3F8802022F00072C3F88020D3F831 +:107AA0008030FFF70FFF0E214D209EE7064BCDE7FC +:107AB0003C650020004402584014004003002002AE +:107AC000003C30C0D8650020083C30C0F8B5D0F884 +:107AD0009040054600214FF000662046FFF730FF3A +:107AE000D5F8941000234FF001128F684FF0FF304B +:107AF000C4F83438C4F81C2804EB431201339F4205 +:107B0000C2F80069C2F8006BC2F80809C2F8080B95 +:107B1000F2D20B68D5F89020C5F898306362102334 +:107B20001361166916F01006FBD11220FEF72EFD28 +:107B3000D4F8003823F4FE63C4F80038A36943F492 +:107B4000402343F01003A3610923C4F81038C4F89C +:107B500014380B4BEB604FF0C043C4F8103B094B9B +:107B6000C4F8003BC4F81069C4F80039D5F898305F +:107B700003F1100243F48013C5F89820A362F8BD06 +:107B8000189C000840800010D0F8902090F88A10CF +:107B9000D2F8003823F4FE6343EA0113C2F8003838 +:107BA000704700002DE9F84300EB8103D0F89050B6 +:107BB0000C468046DA680FFA81F94801166806F02B +:107BC0000306731E022B05EB41134FF0000194BF17 +:107BD000B604384EC3F8101B4FF0010104F1100336 +:107BE00098BF06F1805601FA03F3916998BF06F534 +:107BF000004600293AD0578A04F158013743490119 +:107C00006F50D5F81C180B430021C5F81C382B18F1 +:107C10000127C3F81019A7405369611E9BB3138A4B +:107C2000928B9B08012A88BF5343D8F89820981854 +:107C300042EA034301F140022146C8F89800284671 +:107C400005EB82025360FFF77BFE08EB8900C368F7 +:107C50001B8A43EA845348341E4364012E51D5F8ED +:107C60001C381F43C5F81C78BDE8F88305EB49179D +:107C7000D7F8001B21F40041C7F8001BD5F81C18E9 +:107C800021EA0303C0E704F13F030B4A28462146DB +:107C900005EB83035A60FFF753FE05EB4910D0F85C +:107CA000003923F40043C0F80039D5F81C3823EA22 +:107CB0000707D7E70080001000040002D0F89420E6 +:107CC0001268C0F89820FFF70FBE00005831D0F8B6 +:107CD000903049015B5813F4004004D013F4001FA6 +:107CE0000CBF0220012070474831D0F89030490184 +:107CF0005B5813F4004004D013F4001F0CBF0220A3 +:107D00000120704700EB8101CB68196A0B68136092 +:107D10004B6853607047000000EB810330B5DD68AD +:107D2000AA691368D36019B9402B84BF402313603C +:107D30006B8A1468D0F890201C4402EB4110013C7F +:107D400009B2B4FBF3F46343033323F0030343EAC0 +:107D5000C44343F0C043C0F8103B2B6803F0030357 +:107D6000012B0ED1D2F8083802EB411013F4807FBA +:107D7000D0F8003B14BF43F0805343F00053C0F8E9 +:107D8000003B02EB4112D2F8003B43F00443C2F83F +:107D9000003B30BD2DE9F041D0F8906005460C461F +:107DA00006EB4113D3F8087B3A07C3F8087B08D5E4 +:107DB000D6F814381B0704D500EB8103DB685B6839 +:107DC0009847FA071FD5D6F81438DB071BD505EB03 +:107DD0008403D968CCB98B69488A5A68B2FBF0F63B +:107DE00000FB16228AB91868DA6890420DD2121A7E +:107DF000C3E90024302383F3118821462846FFF786 +:107E00008BFF84F31188BDE8F081012303FA04F2AB +:107E10006B8923EA02036B81CB68002BF3D02146E8 +:107E20002846BDE8F041184700EB81034A0170B5D0 +:107E3000DD68D0F890306C692668E66056BB1A445D +:107E40004FF40020C2F810092A6802F00302012A48 +:107E50000AB20ED1D3F8080803EB421410F4807F65 +:107E6000D4F8000914BF40F0805040F00050C4F82E +:107E7000000903EB4212D2F8000940F00440C2F8B6 +:107E800000090122D3F8340802FA01F10143C3F8D2 +:107E9000341870BD19B9402E84BF4020206020687E +:107EA0001A442E8A8419013CB4FBF6F440EAC4401B +:107EB00040F00050C6E700002DE9F843D0F890608C +:107EC00005460C464F0106EB4113D3F8088918F01C +:107ED000010FC3F808891CD0D6F81038DB0718D575 +:107EE00000EB8103D3F80CC0DCF81430D3F800E0C9 +:107EF000DA68964530D2A2EB0E024FF000091A6004 +:107F0000C3F80490302383F31188FFF78DFF89F3C2 +:107F1000118818F0800F1DD0D6F834380126A640FD +:107F2000334217D005EB84030134D5F89050D3F8D1 +:107F30000CC0E4B22F44DCF8142005EB0434D2F872 +:107F400000E05168714514D3D5F8343823EA0606A9 +:107F5000C5F83468BDE8F883012303FA01F2038908 +:107F600023EA02030381DCF80830002BD1D09847C4 +:107F7000CFE7AEEB0103BCF81000834228BF0346F5 +:107F8000D7F8180980B2B3EB800FE3D89068A0F15E +:107F9000040959F8048FC4F80080A0EB090898443C +:107FA000B8F1040FF5D818440B4490605360C8E74B +:107FB0002DE9F84FD0F8905004466E69AB691E4029 +:107FC00016F480586E6103D0BDE8F84FFDF7EEBFA0 +:107FD000002E12DAD5F8003E9B0705D0D5F8003EFA +:107FE00023F00303C5F8003ED5F80438204623F0FB +:107FF0000103C5F80438FEF707F8370505D5204614 +:10800000FFF772FC2046FDF7EDFFB0040CD5D5F864 +:10801000083813F0060FEB6823F470530CBF43F4D9 +:10802000105343F4A053EB6031071BD56368DB6842 +:108030001BB9AB6923F00803AB612378052B0CD186 +:10804000D5F8003E9A0705D0D5F8003E23F003038B +:10805000C5F8003E2046FDF7D7FF6368DB680BB12B +:1080600020469847F30200F1BA80B70226D5D4F82B +:10807000909000274FF0010A09EB4712D2F8003B1D +:1080800003F44023B3F5802F11D1D2F8003B002B2D +:108090000DDA62890AFA07F322EA0303638104EB2B +:1080A0008703DB68DB6813B1394620469847013700 +:1080B000D4F89430FFB29B689F42DDD9F00619D501 +:1080C000D4F89000026AC2F30A1702F00F0302F418 +:1080D000F012B2F5802F00F0CA80B2F5402F09D11E +:1080E00004EB8303002200F58050DB681B6A974293 +:1080F00040F0B0803003D5F8185835D5E90303D5E2 +:1081000000212046FFF746FEAA0303D501212046A1 +:10811000FFF740FE6B0303D502212046FFF73AFE2E +:108120002F0303D503212046FFF734FEE80203D5D1 +:1081300004212046FFF72EFEA90203D50521204683 +:10814000FFF728FE6A0203D506212046FFF722FE2C +:108150002B0203D507212046FFF71CFEEF0103D5B4 +:1081600008212046FFF716FE700340F1A780E907BB +:1081700003D500212046FFF79FFEAA0703D5012162 +:108180002046FFF799FE6B0703D502212046FFF733 +:1081900093FE2F0703D503212046FFF78DFEEE0641 +:1081A00003D504212046FFF787FEA80603D5052145 +:1081B0002046FFF781FE690603D506212046FFF71A +:1081C0007BFE2A0603D507212046FFF775FEEB0547 +:1081D00074D520460821BDE8F84FFFF76DBED4F8EE +:1081E00090904FF0000B4FF0010AD4F894305FFAF2 +:1081F0008BF79B689F423FF638AF09EB4713D3F8E4 +:10820000002902F44022B2F5802F20D1D3F80029B2 +:10821000002A1CDAD3F8002942F09042C3F8002962 +:10822000D3F80029002AFBDB3946D4F89000FFF789 +:1082300087FB22890AFA07F322EA0303238104EB6E +:108240008703DB689B6813B13946204698470BF1DA +:10825000010BCAE7910701D1D0F80080072A02F18B +:1082600001029CBF03F8018B4FEA18283FE704EB9B +:10827000830300F58050DA68D2F818C0DCF80820D3 +:10828000DCE9001CA1EB0C0C00218F4208D1DB685B +:108290009B699A683A449A605A683A445A6029E756 +:1082A00011F0030F01D1D0F800808C4501F10101DC +:1082B00084BF02F8018B4FEA1828E6E7BDE8F88F83 +:1082C00008B50348FFF774FEBDE80840FFF744BA5D +:1082D0003C65002008B50348FFF76AFEBDE808408A +:1082E000FFF73ABAD8650020D0F8903003EB41117F +:1082F000D1F8003B43F40013C1F8003B7047000085 +:10830000D0F8903003EB4111D1F8003943F4001359 +:10831000C1F8003970470000D0F8903003EB4111EC +:10832000D1F8003B23F40013C1F8003B7047000074 +:10833000D0F8903003EB4111D1F8003923F4001349 +:10834000C1F8003970470000064BD3F8DC20024327 +:10835000C3F8DC20D3F804211043C3F80401D3F898 +:10836000043170470044025808B53C4B4FF0FF31D0 +:10837000D3F8802062F00042C3F88020D3F8802038 +:1083800002F00042C3F88020D3F88020D3F8842084 +:10839000C3F88410D3F884200022C3F88420D3F8D3 +:1083A0008400D86F40F0FF4040F4FF0040F4DF400D +:1083B00040F07F00D867D86F20F0FF4020F4FF0026 +:1083C00020F4DF4020F07F00D867D86FD3F8880012 +:1083D0006FEA40506FEA5050C3F88800D3F8880025 +:1083E000C0F30A00C3F88800D3F88800D3F89000DF +:1083F000C3F89010D3F89000C3F89020D3F8900001 +:10840000D3F89400C3F89410D3F89400C3F89420E0 +:10841000D3F89400D3F89800C3F89810D3F89800D4 +:10842000C3F89820D3F89800D3F88C00C3F88C10C8 +:10843000D3F88C00C3F88C20D3F88C00D3F89C00C0 +:10844000C3F89C10D3F89C10C3F89C20D3F89C3040 +:10845000FCF72EFABDE8084000F0D6B900440258F7 +:1084600008B50122534BC3F80821534BD3F8F4202D +:1084700042F00202C3F8F420D3F81C2142F00202B9 +:10848000C3F81C210222D3F81C314C4BDA605A6825 +:108490009104FCD54A4A1A6001229A60494ADA607E +:1084A00000221A614FF440429A61444B9A69920447 +:1084B000FCD51A6842F480721A603F4B1A6F12F4AE +:1084C000407F04D04FF480321A6700221A671A687E +:1084D00042F001021A60384B1A685007FCD500229E +:1084E0001A611A6912F03802FBD1012119604FF0AC +:1084F000804159605A67344ADA62344A1A611A680C +:1085000042F480321A602C4B1A689103FCD51A6829 +:1085100042F480521A601A689204FCD52C4A2D4904 +:108520009A6200225A63196301F57C01DA6301F54E +:10853000E77199635A64284A1A64284ADA621A6809 +:1085400042F0A8521A601C4B1A6802F02852B2F18D +:10855000285FF9D148229A614FF48862DA6140229B +:108560001A621F4ADA641F4A1A651F4A5A651F4A6F +:108570009A6532231E4A1360136803F00F03022B1F +:10858000FAD10D4A136943F003031361136903F031 +:108590003803182BFAD14FF00050FFF7D5FE4FF0FB +:1085A0008040FFF7D1FE4FF00040BDE80840FFF7E4 +:1085B000CBBE00BF00800051004402580048025862 +:1085C00000C000F0020000010000FF0100889008D8 +:1085D0003220600063020901470E0508DD0BBF0170 +:1085E00020000020000001100910E000000101102F +:1085F000002000524FF0B04208B5D2F8883003F0A6 +:108600000103C2F8883023B1044A13680BB15068E3 +:108610009847BDE80840FFF79FB800BFB466002048 +:108620004FF0B04208B5D2F8883003F00203C2F828 +:10863000883023B1044A93680BB1D0689847BDE8ED +:108640000840FFF789B800BFB46600204FF0B04281 +:1086500008B5D2F8883003F00403C2F8883023B19B +:10866000044A13690BB150699847BDE80840FFF709 +:1086700073B800BFB46600204FF0B04208B5D2F81E +:10868000883003F00803C2F8883023B1044A9369A4 +:108690000BB1D0699847BDE80840FFF75DB800BF4F +:1086A000B46600204FF0B04208B5D2F8883003F02D +:1086B0001003C2F8883023B1044A136A0BB1506A20 +:1086C0009847BDE80840FFF747B800BFB4660020F0 +:1086D0004FF0B04310B5D3F8884004F47872C3F873 +:1086E0008820A30604D5124A936A0BB1D06A984732 +:1086F000600604D50E4A136B0BB1506B98472106E8 +:1087000004D50B4A936B0BB1D06B9847E20504D5A7 +:10871000074A136C0BB1506C9847A30504D5044A63 +:10872000936C0BB1D06C9847BDE81040FFF714B8BC +:10873000B46600204FF0B04310B5D3F8884004F47D +:108740007C42C3F88820620504D5164A136D0BB12C +:10875000506D9847230504D5124A936D0BB1D06D27 +:108760009847E00404D50F4A136E0BB1506E98473A +:10877000A10404D50B4A936E0BB1D06E98476204E6 +:1087800004D5084A136F0BB1506F9847230404D5E2 +:10879000044A936F0BB1D06F9847BDE81040FEF7C5 +:1087A000DBBF00BFB466002008B50348FCF748FCF7 +:1087B000BDE80840FEF7D0BFC836002008B5034822 +:1087C000FCF742FDBDE80840FEF7C6BF2039002097 +:1087D00008B50348FCF738FDBDE80840FEF7BCBF0C +:1087E0008C39002008B50348FCF72EFDBDE8084091 +:1087F000FEF7B2BFF839002008B500F0BDFCBDE8B7 +:108800000840FEF7A9BF0000062108B50846FCF79E +:10881000A1FD06210720FCF79DFD06210820FCF79D +:1088200099FD06210920FCF795FD06210A20FCF799 +:1088300091FD06211720FCF78DFD06212820FCF76D +:1088400089FD09217A20FCF785FD09213120FCF7FB +:1088500081FD07213220FCF77DFD0C212620FCF74D +:1088600079FD0C212720FCF775FD0C215220BDE875 +:108870000840FCF76FBD000008B5FFF775FD00F07C +:1088800043FCFDF747F9FDF7E5F8FDF71DFBFDF7A4 +:10889000EFF9FEF7B1F9BDE8084000F029BA000091 +:1088A00030B50433039C0172002104FB0325C16031 +:1088B000C0E90653049B0363059BC0E90000C0E9BF +:1088C0000422C0E90842C0E90A11436330BD000038 +:1088D0000022416AC260C0E90411C0E90A226FF0B7 +:1088E0000101FDF7FFBE0000D0E90432934201D13F +:1088F000C2680AB9181D70470020704703691960E3 +:108900000021C2680132C260C26913448269934285 +:10891000036124BF436A0361FDF7D8BE38B504463E +:108920000D46E3683BB162690020131D1268A36223 +:108930001344E36207E0237A33B929462046FDF762 +:10894000B5FE0028EDDA38BD6FF00100FBE700004E +:10895000C368C269013BC36043691344826993429F +:10896000436124BF436A436100238362036B03B105 +:108970001847704770B53023044683F31188866A20 +:108980003EB9FFF7CBFF054618B186F3118828469C +:1089900070BDA36AE26A13F8015B9342A36202D33B +:1089A0002046FFF7D5FF002383F31188EFE700008F +:1089B0002DE9F84F04460E46174698464FF0300909 +:1089C00089F311880025AA46D4F828B0BBF1000F1E +:1089D00009D141462046FFF7A1FF20B18BF3118852 +:1089E0002846BDE8F88FD4E90A12A7EB050B521A06 +:1089F000934528BF9346BBF1400F1BD9334601F185 +:108A0000400251F8040B914243F8040BF9D1A36AD8 +:108A1000403640354033A362D4E90A239A4202D358 +:108A20002046FFF795FF8AF31188BD42D8D289F31B +:108A30001188C9E730465A46F9F758F9A36A5E44E7 +:108A40005D445B44A362E7E710B5029C0433017206 +:108A500003FB0421C460C0E906130023C0E90A3304 +:108A6000039B0363049BC0E90000C0E90422C0E942 +:108A70000842436310BD0000026A6FF00101C2604A +:108A8000426AC0E904220022C0E90A22FDF72ABE98 +:108A9000D0E904239A4201D1C26822B9184650F89D +:108AA000043B0B60704700231846FAE7C3680021B7 +:108AB000C2690133C36043691344826993424361CD +:108AC00024BF436A4361FDF701BE000038B5044688 +:108AD0000D46E3683BB1236900201A1DA262E269DA +:108AE0001344E36207E0237A33B929462046FDF7B1 +:108AF000DDFD0028EDDA38BD6FF00100FBE7000076 +:108B000003691960C268013AC260C269134482698C +:108B10009342036124BF436A036100238362036BB2 +:108B200003B118477047000070B530230D46044666 +:108B3000114683F31188866A2EB9FFF7C7FF10B17B +:108B400086F3118870BDA36A1D70A36AE26A0133BF +:108B50009342A36204D3E16920460439FFF7D0FFB2 +:108B6000002080F31188EDE72DE9F84F04460D460B +:108B7000904699464FF0300A8AF311880026B34692 +:108B8000A76A4FB949462046FFF7A0FF20B187F3F7 +:108B900011883046BDE8F88FD4E90A073A1AA8EBE5 +:108BA0000607974228BF1746402F1BD905F14003FF +:108BB00055F8042B9D4240F8042BF9D1A36A4036A6 +:108BC0004033A362D4E90A239A4204D3E1692046E0 +:108BD0000439FFF795FF8BF311884645D9D28AF304 +:108BE0001188CDE729463A46F9F780F8A36A3D4453 +:108BF0003E443B44A362E5E7D0E904239A4217D1FF +:108C0000C3689BB1836A8BB1043B9B1A0ED013607F +:108C1000C368013BC360C3691A4483699A42026115 +:108C200024BF436A0361002383620123184670470F +:108C30000023FBE701F01F03F0B502F01F04560903 +:108C40005A1C0123B6EB511F50F8265003FA02F3C9 +:108C50004FEA511703F1FF333DBF50F82720C4F10D +:108C60002000134003EA05003BBF03FA00F225FA97 +:108C700004F0E0401043F0BD70B57E227F21054630 +:108C8000FFF7D8FF18B1012819D0002070BD3E228F +:108C900049212846FFF7CEFF2F22044631212846DE +:108CA000FFF7C8FF064601345022023653212846FA +:108CB000B440FFF7BFFF093804FA00F0E6E73022BE +:108CC00045212846FFF7B6FF01308002DEE70000AD +:108CD00090F8D63090F8D7201B0403EB026390F88D +:108CE000D42090F8D500134403EB00207047000017 +:108CF00000F018BA014B586A704700BF000C0040E2 +:108D0000034B002258631A610222DA60704700BFE9 +:108D1000000C0040014B0022DA607047000C00405C +:108D2000014B5863704700BF000C0040024B034AE0 +:108D30001A60034A5A6070478C660020386700202A +:108D400000000220074B494210B55C68201A084019 +:108D50001968821A8A4203D3A24201D85A6010BD10 +:108D60000020FCE78C66002008B5302383F31188CF +:108D7000FFF7E8FF002383F3118808BD0448054B83 +:108D800003600023C0E901330C3000F017B900BFC5 +:108D900094660020698D0008CB1D083A23F0070374 +:108DA000591A521A10B4D2080024C0E90043846052 +:108DB0000C301C605A605DF8044B00F0FFB80000F6 +:108DC0002DE9F74F364FCD1D8846002818BF0746BE +:108DD000082A4FEAD50538BF082207F10C003C1DD0 +:108DE0009146019000F02CF9019809F10701C9F1B1 +:108DF000000E2246246864B900F02CF93B68CBB31E +:108E000008224946E8009847044698B340E90278AA +:108E100030E004EB010CD4F804A00CEA0E0C0AF1CB +:108E20000106ACF1080304EBC6069E42E1D9A6EBAD +:108E30000C0CB5EBEC0F4FEAEC0BDAD89C421DD2D0 +:108E400004F10802AB45A3EB02024FEAE2026260C2 +:108E500009D9691CED4303EBC1025D4455602568E7 +:108E600043F8315022601C46C3F8048044F8087B64 +:108E700000F0F0F8204603B0BDE8F08FAA45216865 +:108E800002D111602346EEE7013504EBC50344F837 +:108E9000351003F10801761AF6105E601360F1E7F1 +:108EA0009466002073B50446A0F1080550F8080C3C +:108EB00054F8043C061D0C3007330190DB0844F8DD +:108EC000043C00F0BDF8334601989E421A6801D078 +:108ED000AB4228D20AB1954225D244F8082C54F866 +:108EE000042C1D60013254F8081C05EBC206B14287 +:108EF00006D14E68324444F8042C0A6844F8082C21 +:108F00005E68711C03EBC1018D4207D154F8042C3B +:108F1000013232445A6054F8082C1A6002B0BDE89D +:108F2000704000F097B81346CFE70000FEE700005E +:108F300070B51E4B0025044686B058600E4605638A +:108F40008163FEF7E1FB04F12803A5606563C4E9D2 +:108F50000A3304F11003C4E904334FF0FF33C4E9CA +:108F60000044C4E90635FFF7C5FE2B46024604F16E +:108F70003C012046C4E9082380230D4A6567FDF7BC +:108F80000FFB7368E0600B4A03620123009280F8D4 +:108F900024306846F26801923269CDE90223064B1B +:108FA000CDE90435FDF730FB06B070BD1049002057 +:108FB0005C9C0008549C00082D8F00080023C0E929 +:108FC000000083600361704770B51C4B05468468E0 +:108FD000DE685CB3B44213D103690133036170BD31 +:108FE000A36094F8243083B1062B15D1A06A2146E2 +:108FF000D4E9003213605A60FDF73EFAA36A9C6818 +:10900000B368A2689A42EBD306E0D4E90032204666 +:1090100013605A60FDF740FA28463146FDF72CFAF6 +:10902000B5620620BDE87040FDF738BA0369866076 +:1090300001330361336BC3603063D0E768460020BF +:1090400008B5302383F31188FFF7BEFF002383F3B5 +:10905000118808BD194BD96883688B4210B520D19F +:10906000302383F311880269013A0261B2B90468BE +:10907000C368A0420B631ED04A6B9BB901238A6070 +:10908000036103681A68026050601A6B8360C260F3 +:1090900018631846FDF700FAFDF750FA002383F332 +:1090A000118810BD1C68A34203D0A468A24238BF37 +:1090B0002246DB68E1E78260F0E700BF68460020F7 +:1090C000024A536B18435063704700BF6846002044 +:1090D00038B5EFF311859DB9EFF30584C4F30804A7 +:1090E000302334B183F31188FDF734FC85F3118804 +:1090F00038BD83F31188FDF72DFC84F3118838BD4A +:10910000BDE83840FDF726BC0023054A1946013367 +:10911000102BC2E9001102F10802F8D1704700BF1C +:10912000B4660020114BD3F8E82042F00802C3F8DF +:10913000E820D3F8102142F00802C3F810210C4AAD +:10914000D3F81031D36B43F00803D363C722094B24 +:109150009A624FF0FF32DA6200229A615A63DA6053 +:109160005A6001225A611A60704700BF00440258D9 +:109170000010005C000C0040094A08B51169D36872 +:109180000B40D9B29B076FEA0101116107D530236B +:1091900083F31188FDF7F8F9002383F3118808BDE4 +:1091A000000C004010B501390244904201D100206A +:1091B00005E0037811F8014FA34201D0181B10BD40 +:1091C0000130F2E7884210B501EB020402D9844273 +:1091D000234607D8431EA14208D011F8012B03F8FB +:1091E000012FF8E7024401468A4200D110BD13F86E +:1091F000014D02F8014DF7E7C9B2034610F8012B03 +:109200001AB18A42F9D118467047002918BF0023C5 +:10921000F9E70000034611F8012B03F8012B002A9F +:10922000F9D1704710B50139034632B111F8014F39 +:1092300003F8014B013A002CF7D11A440021934264 +:1092400000D110BD03F8011BF9E700004D443500C3 +:109250002D2D0A002F6172647570696C6F742E6118 +:1092600062696E002F6172647570696C6F742D761F +:1092700065726966792E6162696E002F617264752C +:1092800070696C6F742D666C6173682E6162696EB3 +:10929000002F6172647570696C6F742D666C6173F8 +:1092A0006865642E6162696E0000000000000000C5 +:1092B00000000000050F0008A10F00085111000870 +:1092C000D90F0008990F00080000000000000000FE +:1092D000010F0008AD0F000889110008FD0E0008FD +:1092E000090F000853544D333248373F3F3F005376 +:1092F000544D3332483733782F3732780053544D3A +:109300003332483734332F3735332F373530000079 +:1093100001105A0003105900012058000320560084 +:109320002F0000005375636365737366756C6C7909 +:10933000206D6F756E7465642053444361726420C0 +:1093400028736C6F77646F776E3D2575290A00006E +:10935000EB76904558464154202020004641543336 +:1093600032202020000000002A3A3C3E7C223F7F31 +:10937000002B2C3B3D5B5D00435545414141414342 +:1093800045454549494941414592924F4F4F5555B1 +:10939000594F554F9C4F9E9F41494F55A5A5A6A794 +:1093A000A8A9AAABACADAEAFB0B1B2B3B441414124 +:1093B000B8B9BABBBCBDBEBFC0C1C2C3C4C54141C0 +:1093C000C8C9CACBCCCDCECFD1D1454545494949F5 +:1093D00049D9DADBDCDD49DF4FE14F4F4F4FE6E89B +:1093E000E85555555959EEEFF0F1F2F3F4F5F6F76B +:1093F000F8F9FAFBFCFDFEFF01030507090E101248 +:109400001416181C1E00000061001A03E000170368 +:10941000F8000703FF00010078010001300132016C +:109420000601390110014A012E017901060180016E +:109430004D00430281018201820184018401860181 +:109440008701870189018A018B018B018D018E01C2 +:109450008F0190019101910193019401F601960110 +:109460009701980198013D029B019C019D012002FA +:109470009F01A001A001A201A201A401A401A601D3 +:10948000A701A701A901AA01AB01AC01AC01AE0182 +:10949000AF01AF01B101B201B301B301B501B50133 +:1094A000B701B801B801BA01BB01BC01BC01BE01E2 +:1094B000F701C001C101C201C301C401C501C4015A +:1094C000C701C801C701CA01CB01CA01CD01100102 +:1094D000DD0101008E01DE011201F3010300F10143 +:1094E000F401F401F8012801220212013A020900F4 +:1094F000652C3B023B023D02662C3F0240024102CA +:10950000410246020A0153024000810186015502D0 +:1095100089018A0158028F015A0290015C025D02A2 +:109520005E025F02930161026202940164026502BD +:1095300066026702970196016A02622C6C026D0254 +:109540006E029C01700271029D01730274029F0100 +:1095500076027702780279027A027B027C02642C1E +:109560007E027F02A60181028202A9018402850295 +:1095700086028702AE014402B101B20145028D02AA +:109580008E028F0290029102B7017B030300FD035C +:10959000FE03FF03AC0304008603880389038A03E8 +:1095A000B1031103C2030200A303A303C40308030E +:1095B000CC0303008C038E038F03D8031801F2033E +:1095C0000A00F903F303F403F503F603F703F703C3 +:1095D000F903FA03FA03300420035004100760046F +:1095E00022018A043601C1040E01CF040100C00427 +:1095F000D004440161052604000000007D1D010027 +:10960000632C001E9601A01E5A01001F0806101FA1 +:109610000606201F0806301F0806401F0606511FB9 +:109620000700591F521F5B1F541F5D1F561F5F1FEE +:10963000601F0806701F0E00BA1FBB1FC81FC91F7E +:10964000CA1FCB1FDA1FDB1FF81FF91FEA1FEB1F12 +:10965000FA1FFB1F801F0806901F0806A01F0806A0 +:10966000B01F0400B81FB91FB21FBC1FCC1F0100E0 +:10967000C31FD01F0206E01F0206E51F0100EC1FFA +:10968000F31F0100FC1F4E21010032217021100246 +:10969000842101008321D0241A05302C2F04602C52 +:1096A0000201672C0601752C0201802C6401002D3B +:1096B000260841FF1A030000C700FC00E900E20091 +:1096C000E400E000E500E700EA00EB00E800EF005E +:1096D000EE00EC00C400C500C900E600C600F400BE +:1096E000F600F200FB00F900FF00D600DC00F800F5 +:1096F000A300D800D7009201E100ED00F300FA00CA +:10970000F100D100AA00BA00BF00AE00AC00BD005D +:10971000BC00A100AB00BB0091259225932502253A +:109720002425C100C200C000A9006325512557258A +:109730005D25A200A5001025142534252C251C2507 +:1097400000253C25E300C3005A25542569256625DC +:10975000602550256C25A400F000D000CA00CB0085 +:10976000C8003101CD00CE00CF0018250C2588257A +:109770008425A600CC008025D300DF00D400D200D1 +:10978000F500D500B500FE00DE00DA00DB00D900F0 +:10979000FD00DD00AF00B400AD00B1001720BE0039 +:1097A000B600A700F700B800B000A800B700B900E5 +:1097B000B300B200A025A000100002400800024043 +:1097C0000008024000000B00280002400800024090 +:1097D0000408024006010C0040000240080002405C +:1097E0000808024010020D00580002400800024024 +:1097F0000C08024016030E00700002400C000240EC +:109800001008024000040F00880002400C000240D3 +:109810001408024006051000A00002400C0002409F +:109820001808024010061100B80002400C00024067 +:109830001C08024016072F001004024008040240D2 +:1098400020080240000838002804024008040240B2 +:10985000240802400609390040040240080402407E +:1098600028080240100A3A00580402400804024046 +:109870002C080240160B3B00700402400C0402400E +:1098800030080240000C3C00880402400C040240F6 +:1098900034080240060D4400A00402400C040240BB +:1098A00038080240100E4500B80402400C04024083 +:1098B0003C080240160F46000100000000000000B6 +:1098C0000096000000000000000000000000000002 +:1098D000000000000000000000000000F16B000824 +:1098E000F56B0008E9560008215A00087D5600086B +:1098F000A5560008CD560008655600080000000077 +:10990000D55A0008C15A0008FD5A0008E95A000853 +:10991000F55A0008E15A0008CD5A0008B95A000863 +:10992000095B000800000000ED5B0008D95B00083F +:10993000155C0008015C00080D5C0008F95B00087C +:10994000E55B0008D15B0008215C00080000000016 +:10995000010000000000000063300000589900087A +:109960000000000000000000E04600201049002038 +:109970000000812A00000000AAAAAAAA0000002470 +:10998000FFFE00000000000000A00A00000100002F +:1099900000000000AAAAAAAA00000000FFFF000021 +:1099A00000000000000000001400AA5600000000A3 +:1099B000AAAAAAAA14005554FFFF00000000000044 +:1099C000CCCC0C0020681A0000000000AAAA8AAAC9 +:1099D00010541500FFFF0000000C70077700000016 +:1099E0004081020100100000AAAAAAAA00410100B9 +:1099F000F7FF0000000000700700000000000000FA +:109A000000000000AAAAAAAA00000000FFFF0000B0 +:109A10000000000000000000000000000000000046 +:109A2000AAAAAAAA00000000FFFF00000000000090 +:109A3000000000000000000000000000AAAAAAAA7E +:109A400000000000FFFF0000000000000000000018 +:109A50000000000000000000AAAAAAAA000000005E +:109A6000FFFF0000000000000000000000000000F8 +:109A700000000000AAAAAAAA00000000FFFF000040 +:109A800000000000000000000000000000000000D6 +:109A9000AAAAAAAA00000000FFFF00000000000020 +:109AA000000000004865782F50726F6669434E438E +:109AB0000025424F415244252D424C00255345522A +:109AC00049414C2500000000020000000000000099 +:109AD0000D5E00087D5E000840004000C06100206F +:109AE000D061002002000000000000000300000020 +:109AF00000000000C55E000800000000100000002B +:109B0000E0610020000000000100000000000000F3 +:109B10003C65002001010200ED6C0008FD6B0008AF +:109B2000996C00087D6C000843000000309B000821 +:109B300009024300020100C03209040000010202D0 +:109B40000100052400100105240100010424020283 +:109B50000524060001070582030800FF090401002F +:109B6000020A00000007050102400000070581020B +:109B700040000000120000007C9B00081201100150 +:109B800002000040AE2D1610000201020301000089 +:109B90000403090425424F41524425004375626580 +:109BA0004F72616E67650030313233343536373885 +:109BB00039414243444546000000002000000200B5 +:109BC0000200000000000030000004000800000057 +:109BD0000000002400000800040000000004000051 +:109BE00000FC0000020000000000043000800000C3 +:109BF0000800000000000038000001000100000023 +:109C00001F1C1F1E1F1E1F1F1E1F1E1F1F1D1F1E6E +:109C10001F1E1F1F1E1F1E1F0000000021600008C6 +:109C2000D962000885630008400040007466002087 +:109C3000746600200100000084660020800000009F +:109C400040010000080000000001000000100000BA +:109C50000800000069646C65000000006D61696EB9 +:109C6000002C0438040438080C10141C2024252669 +:109C70000000000000006404010004000000000077 +:109C8000000C001028303400E067FF7F0100000066 +:109C90008C0000000000000000001E00000000001A +:109CA000FF00000018490020203900208C390020D6 +:109CB000F839002000000000E4920008830400004E +:109CC000EF92000850040000FD920008010000001F +:109CD0000000000000960000000008009600000050 +:109CE0000008000004000000909B00080000000035 +:109CF0000000000000000000000000000000000064 +:049D0000000000005F :00000001FF diff --git a/Tools/bootloaders/CubePilot-CANMod_bl.bin b/Tools/bootloaders/CubePilot-CANMod_bl.bin index 164019d4b6aa9de501d203f37eaa6ee46e6d7bab..abd206d7b89c4d97fab4acf70babb0c7412ea01e 100755 GIT binary patch delta 7805 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 aJ&mb;Xh&UJE_EUNd=m5z7H}0DEjmhQju18$# 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 I^8Z`>KRSttJ^%m! diff --git a/Tools/bootloaders/CubePilot-CANMod_bl.hex b/Tools/bootloaders/CubePilot-CANMod_bl.hex index 79443030873ff..bdd4d6c5d03ba 100644 --- a/Tools/bootloaders/CubePilot-CANMod_bl.hex +++ b/Tools/bootloaders/CubePilot-CANMod_bl.hex @@ -1,34 +1,34 @@ :020000040800F2 -:1000000000070020F1020008FD320008B5320008A8 -:10001000DD320008B5320008D5320008F3020008CE -:10002000F3020008F3020008F3020008E1420008AE +:1000000000070020F1020008853300083D33000896 +:10001000653300083D3300085D330008F302000833 +:10002000F3020008F3020008F3020008714300081D :10003000F3020008F3020008F3020008F3020008CC :10004000F3020008F3020008F3020008F3020008BC -:10005000F3020008F3020008E17600080D770008BB -:10006000397700086577000891770008A5430008F4 -:10007000CD430008F9430008254400085144000816 -:1000800079440008A5440008F302000895320008EE -:10009000F3020008A5320008F3020008BD7700084B +:10005000F3020008F3020008057C0008317C000868 +:100060005D7C0008897C0008B57C000835440008E8 +:100070005D44000889440008B5440008E1440008D4 +:100080000945000835450008F30200081D33000843 +:10009000F30200082D330008F3020008E17C000899 :1000A000F3020008F3020008F3020008F30200085C :1000B000F3020008F3020008F3020008F30200084C :1000C000F3020008F3020008F3020008F30200083C :1000D000F3020008F3020008F3020008F30200082C -:1000E00021780008F3020008F3020008F302000878 -:1000F000F3020008F3020008F3020008D1440008EC -:10010000F3020008F3020008A9780008F3020008CF +:1000E000457D0008F3020008F3020008F30200084F +:1000F000F3020008F3020008F3020008614500085B +:10010000F3020008F3020008CD7D0008F3020008A6 :10011000F3020008F3020008F3020008F3020008EB -:10012000FD44000825450008514500087D450008AC -:10013000A9450008F3020008F3020008F3020008D2 +:100120008D450008B5450008E14500080D4600086A +:1001300039460008F3020008F3020008F302000841 :10014000F3020008F3020008F3020008F3020008BB -:10015000D1450008FD45000829460008F3020008C3 +:10015000614600088D460008B9460008F302000811 :10016000F3020008F3020008F3020008F30200089B -:10017000F30200088D6D0008F3020008F302000886 -:10018000F3020008F302000895780008F302000863 +:10017000F302000831700008F3020008F3020008DF +:10018000F3020008F3020008B97D0008F30200083A :10019000F3020008F3020008F3020008F30200086B :1001A000F3020008F3020008F3020008F30200085B :1001B000F3020008F3020008F3020008F30200084B :1001C000F3020008F3020008F3020008F30200083B -:1001D000F3020008796D0008F3020008F30200083A +:1001D000F30200081D700008F3020008F302000893 :1001E000F3020008F3020008F3020008F30200081B :1001F000F3020008F3020008F3020008F30200080B :10020000F3020008F3020008F3020008F3020008FA @@ -52,49 +52,49 @@ :100320004F8FBFF36F8F40F20000C0F2F0004EF627 :100330008851CEF200010860BFF34F8FBFF36F8F7B :100340004FF00000E1EE100A4EF63C71CEF20001D3 -:100350000860062080F31488BFF36F8F05F08CFFD0 -:1003600006F090FF4FF055301F491B4A91423CBFA9 +:100350000860062080F31488BFF36F8F06F0DEF884 +:1003600007F01CFA4FF055301F491B4A91423CBF21 :1003700041F8040BFAE71D49184A91423CBF41F885 :10038000040BFAE71A491B4A1B4B9A423EBF51F82D :10039000040B42F8040BF8E700201849184A914270 -:1003A0003CBF41F8040BFAE705F0A4FF06F0ECFFB0 +:1003A0003CBF41F8040BFAE706F0F6F807F07CFAD8 :1003B000144C154DAC4203DA54F8041B8847F9E796 :1003C00000F042F8114C124DAC4203DA54F8041B11 -:1003D0008847F9E705F08CBF0007002000230020C4 +:1003D0008847F9E706F0DEB8000700200023002078 :1003E0000000000808ED00E00001002000070020E8 -:1003F000607F000800230020D0230020D0230020AD -:1004000000740020E0020008E4020008E402000892 +:1003F00070840008002300206C230020702300205C +:1004000068740020E0020008E4020008E40200082A :10041000E40200082DE9F04F2DED108AC1F80CD050 :10042000D0F80CD0BDEC108ABDE8F08F002383F328 -:1004300011882846A047002005F004FAFEE705F0E1 -:1004400083F900DFFEE70000F8B501F0BFF901F025 -:1004500061FB05F095FE074605F004FF0546A8BBC5 +:1004300011882846A047002005F070FAFEE705F075 +:10044000EBF900DFFEE70000F8B501F0BFF901F0BD +:1004500061FB05F0BFFF074606F056F80546A8BB4E :100460001F4B9F4232D001339F4232D027F0FF0210 :100470001C4B9A4230D12E4642F21074F8B200F072 -:1004800079FF00F07DFF08B10024264601F08AFDC7 +:1004800079FF00F07DFF08B10024264601F0CAFD87 :1004900020B10024032000F079F8264635B1124B34 -:1004A0009F4203D0002405F0D5FE2646002005F02B -:1004B00071FE0EB100F080F801F0CAFA00F094FF6E +:1004A0009F4203D0002406F027F82646002005F0DE +:1004B0009BFF0EB100F080F801F0CAFA00F094FF43 :1004C000204600F02BF900F077F8F9E72E460024DB :1004D000D7E704460126D4E7064641F28834D0E740 :1004E000010007B0000008B0263A09B008B501F0D5 :1004F00039F9A0F120035842584108BD07B541F22F :100500001203022101A8ADF8043001F049F903B04B :100510005DF804FB38B5302383F31188174803686E -:100520000BB105F05BFA0023154A4FF47A711348BA -:1005300005F04AFA002383F31188124C236813B1A3 +:100520000BB105F0C7FA0023154A4FF47A7113484E +:1005300005F0B6FA002383F31188124C236813B137 :100540002368013B2360636813B16368013B636008 :100550000D4D2B7833B963687BB9022001F0EAF9BD :10056000322363602B78032B07D163682BB90220F9 -:1005700001F0E0F94FF47A73636038BDD0230020B6 -:1005800015050008F0240020E8230020084B18700F +:1005700001F0E0F94FF47A73636038BD7023002016 +:10058000150500089024002088230020084B1870CF :1005900003280CD8DFE800F008050208022001F06B :1005A000C7B9022001F0C2B9024B00225A6070475D -:1005B000E8230020F0240020F8B501F0F3FC30B16E +:1005B0008823002090240020F8B501F033FD30B1ED :1005C0004D4B03221A7000224C4B5A60F8BD4C4B25 :1005D0004C4A1C4619680131F8D004339342F9D1D2 :1005E0006268494B9A42F1D9484B9B6803F100631A -:1005F00003F580239A42E9D205F000FE05F012FED1 +:1005F00003F580239A42E9D205F052FF05F064FF2B :10060000002001F009F90220FFF7C0FF404B002154 :100610009A6C99641A6F19671A6FDA6CD9645A6FF9 :1006200059675A6F1A6D19659A6F99679B6F394BA5 @@ -110,13 +110,13 @@ :1006C000BFF34F8FBFF36F8FBFF34F8FBFF36F8FAA :1006D000536923F4003353610023C2F85032BFF34F :1006E0004F8FBFF36F8F302383F31188854680F3DC -:1006F000088820476AE700BFE8230020F024002094 +:1006F000088820476AE700BF882300209024002054 :100700000000040820000408FFFF03080023002065 :10071000004502580044025800ED00E02DE9F04F7A :1007200093B0B74B2022FF2100900AA89D6801F0EA :1007300039F9B44A1378A3B90121B34811700360A1 -:10074000302383F3118803680BB105F047F90023C8 -:10075000AE4A4FF47A71AC4805F036F9002383F3C2 +:10074000302383F3118803680BB105F0B3F900235C +:10075000AE4A4FF47A71AC4805F0A2F9002383F356 :100760001188009B13B1AA4B009A1A60A94A13780A :10077000032B03D000231370A54A53604FF0000AE7 :10078000009CD3465646D146012001F0D1F824B151 @@ -159,9 +159,9 @@ :1009D000B8F5807F3FF73EAF124BB845019323DD5A :1009E0004FF47A7000F0BEFE0390039A002AFFF6DF :1009F00031AF039A0137019B03F8012BEDE700BFEC -:100A000000230020EC240020D0230020150500083E -:100A1000F0240020E82300200423002008230020E5 -:100A20000C230020EC230020C820FFF75FFD0746C1 +:100A0000002300208C2400207023002015050008FE +:100A100090240020882300200423002008230020A5 +:100A20000C2300208C230020C820FFF75FFD074621 :100A300000283FF40FAF1F2D11D8C5F120020AABDB :100A400025F0030084494245184428BF42460192DC :100A500000F082FF019AFF217F4800F0A3FF4FEAD8 @@ -171,7 +171,7 @@ :100A900000283FF4DFAE0027B846704B9B68BB428E :100AA00018D91F2F11D80A9B01330ED027F003034A :100AB00012AA134453F8203C05934046042205A98A -:100AC000043701F059FA8046E7E7384600F0A6FE01 +:100AC000043701F099FA8046E7E7384600F0A6FEC1 :100AD0000590F2E7CDF81480042105A800F060FE2F :100AE00002E70023642104A8049300F04FFE0028CD :100AF0007FF4B0AE0220FFF7F9FC00283FF4AAAE65 @@ -190,13 +190,13 @@ :100BC00049AE00F063FE002844D00A9B01330BD0ED :100BD00008220AA9002000F0EDFE00283AD02022C9 :100BE000FF210AA800F0DEFEFFF788FC1C4804F095 -:100BF0002FFE13B0BDE8F08F002E3FF42BAE0BF0AC +:100BF0009BFE13B0BDE8F08F002E3FF42BAE0BF040 :100C00000B030B2B7FF426AE0023642105A805936C :100C100000F0BCFD074600287FF41CAE0220FFF761 :100C200065FC804600283FF415AEFFF767FC41F2F3 -:100C3000883004F00DFE059800F04AFF46463C4619 +:100C3000883004F079FE059800F04AFF46463C46AD :100C400000F0FCFEA0E506464EE64FF0000901E686 -:100C5000BA467EE637467CE6EC23002000230020DF +:100C5000BA467EE637467CE68C230020002300203F :100C6000A0860100094A49F26900136899B21B0C79 :100C700000FB013344F250611360054B186882B2E7 :100C8000000C01FB0200186080B2704714230020A2 @@ -205,48 +205,48 @@ :100CB00000E8F11F2DE9F041ADF5507D0D46002112 :100CC00040F275126EAC074610A80F9100F06AFE54 :100CD0004FF4C4720021204600F064FE0DF13C0880 -:100CE00002F014FB4FF47A72264BB0FBF2F018605E +:100CE00002F058FB4FF47A72264BB0FBF2F018601A :100CF00093E80700022384E807000DF5ED702382D6 -:100D0000FFF7C8FF43F204731F4907A8238406F0C6 -:100D10006FFE1E230DF2EB220DF1340C84F83231FC +:100D0000FFF7C8FF43F204731F4907A8238407F0C5 +:100D1000F7F81E230DF2EB220DF1340C84F832317A :100D200007AB1E46083203CE664542F8080C42F86F :100D3000041C3346F5D13068414610602046B38824 -:100D40009380012200F03CFF002380B2E97E0393F0 +:100D40009380012200F042FF002380B2E97E0393EA :100D5000AB7E029305F1190301930123009307A3CE -:100D6000D3E90023CDE90480384602F08DFE0DF56D +:100D6000D3E90023CDE90480384602F0D1FE0DF529 :100D7000507DBDE8F08100BFAFF300809E6AC421C2 -:100D8000818A46EEF8240020007A00082DE9F0411F +:100D8000818A46EE98240020107F00082DE9F0416A :100D90002C4CDAB080460D46237A5BBB27A9284647 -:100DA00001F01CF80746002842D19DF89D60C82E2E +:100DA00001F036F80746002842D19DF89D60C82E14 :100DB0003ED801464FF4A662204600F0F3FD4FF402 :100DC000807332460DF19E01C4F8F8314FF4007380 :100DD00004F109002644C4F80C334FF44073C4F8FE :100DE000203400F0B9FD9DF89C30777223720BB966 :100DF000EB7E237206AC8122002127A800F0D2FDF1 -:100E00000122214627A801F025F8002380B2E97EBF +:100E00000122214627A801F049F8002380B2E97E9B :100E10000393AB7E029305F1190301932823CDE9D7 -:100E200004400093404605A3D3E9002302F02CFEC2 +:100E200004400093404605A3D3E9002302F070FE7E :100E30005AB0BDE8F08100BFAFF300802641727266 -:100E4000DF25D7B7004A0020F0B5254E4FF48A754C +:100E4000DF25D7B7A0490020F0B5254E4FF48A75AD :100E5000F1B0002405FB006596F8D830D822214671 :100E600085F8DC303AA885F8E84006AF00F09AFD36 :100E700006F1090000F08EFDD5F8E430C2B206F1AB :100E800009018DF8F0000DF1F100CDE93A3400F0E0 -:100E900063FD394601223AA801F008F8082380B220 +:100E900063FD394601223AA801F036F8082380B2F2 :100EA000317ACDE9047001270E48CDE9023706F109 :100EB000D80301933023009307A3D3E9002302F062 -:100EC000E3FDA04206DD02F021FAC5F8E000384655 +:100EC00027FEA04206DD02F065FAC5F8E0003846CC :100ED00071B0F0BD2046FBE778F6339F93CACD8D05 -:100EE000004A0020103500202DE9F0411D4D86B04C -:100EF0001D4E1E4F284602F0F3FD034658B3002452 +:100EE000A0490020B03400202DE9F0411D4D86B00E +:100EF0001D4E1E4F284602F037FE034658B300240D :100F0000DFF86C80ADF814400294CDE90344027B15 :100F10008DF8142003AA9968406803C21B6843F047 -:100F20000043029302F0F4F982190094384641F12B -:100F3000000302A901F030FAA04205DD284602F0C4 -:100F4000D3FD88F80040D5E798F80030072B05D886 +:100F20000043029302F038FA82190094384641F1E6 +:100F3000000302A901F074FAA04205DD284602F080 +:100F400017FE88F80040D5E798F80030072B05D841 :100F5000013388F8003006B0BDE8F081014802F0A6 -:100F6000C3FDF8E71035002040420F004035002057 -:100F7000354F002070B50D4614461E4602F0E0FCC9 +:100F600007FEF8E7B034002040420F00E0340020D4 +:100F7000D54E002070B50D4614461E4602F024FDE5 :100F800050B9022E10D1012C0ED112A3D3E90023A7 :100F90000120C5E9002307E0282C10D005D8012C3A :100FA00009D0052C0FD0002070BD302CFBD10BA335 @@ -258,21 +258,21 @@ :101000000E4C0021013500F02FFCA4F82C55B4F84B :101010002C0500F011FC78B1B4F82C0500F01CFC94 :10102000014648B9B4F82C0500F01EFCB4F82C3584 -:101030000133A4F82C35EAE738BD00BF004A002090 +:101030000133A4F82C35EAE738BD00BFA0490020F1 :101040000A4B0B4A10B51A6003F5805393F84820F9 -:101050003AB95C6C2CB1204601F022F8204606F02B -:101060007DFC0448BDE8104001F01AB8403500206E -:10107000B07A0008704500202DE9F04F8FB005468A -:101080000C4600AF02F05CFC002849D1237E022B05 -:101090001BD1E38A012B18D102F038F90646FFF77D +:101050003AB95C6C2CB1204601F062F8204601F0F0 +:101060009BF90448BDE8104001F05AB8E034002074 +:10107000C07F0008104500202DE9F04F8FB00546D5 +:101080000C4600AF02F0A0FC002849D1237E022BC1 +:101090001BD1E38A012B18D102F07CF90646FFF739 :1010A000E1FD03464FF4C87006F51676DFF8C082FE :1010B000B3FBF0F202FB103316FA83F3C8F80030EA :1010C000E37E33B9A34B00221A703C37BD46BDE81E -:1010D000F08F07F12401204600F03EFE0028F4D1F5 +:1010D000F08F07F12401204600F04EFE0028F4D1E5 :1010E00007F11400FFF7D6FD97F8264007F1140129 -:1010F00007F12700224606F049FC0028E2D10F2C18 +:1010F00007F12700224606F0D1FE0028E2D10F2C8E :1011000008D8944B1C70D8F80030A3F51673C8F8B3 -:101110000030DAE797F82410284602F009FCD4E7FB +:101110000030DAE797F82410284602F04DFCD4E7B7 :10112000E38A282B2BD010D8012B23D0052BCCD130 :10113000BFF34F8F8849894BCA6802F4E0621343BA :10114000CB60BFF34F8F00BFFDE7302BBDD1844E86 @@ -293,14 +293,14 @@ :10123000D42005EB0209C6F8D49000F0FDFA8145F0 :1012400009D396F8D220D6F8D4000132001B86F8D4 :10125000D220C6F8D400FF2D0FD80024347200F03D -:1012600015FB204600F0D8FA00F09CFE3D4B18819B +:1012600015FB204600F0D8FA00F0DCFE3D4B18815B :1012700008B9FFF7A1F9C54627E7BB6896F8D9007A :101280000AFB0362FB68D2F8E41082F8E83001F54B :101290008061C2F8E030C2F8E410FFF7D5FDFFF737 :1012A00023FE96F8D920013202F0030286F8D920F5 :1012B000B6E74FF48A7A20460AFB02F505F1EA0107 -:1012C000314400F01FFEF86000287FF4FEAE0122DA -:1012D000354485F8E82002F019F8D5F8E020D6ED7D +:1012C000314400F053FEF86000287FF4FEAE0122A6 +:1012D000354485F8E82002F05DF8D5F8E020D6ED39 :1012E000007A801A40F6B832B8EE677ADFED1E6AEF :1012F000192838BF1920904228BF104607EE900ADF :10130000F8EEE77A67EEA67ADFED186AE7EE267A5E @@ -308,92 +308,92 @@ :1013200073680AFB02F4321992F8E81059B1D2F846 :10133000E410E8468B423FF427AF002182F8E81022 :10134000C2F8E010C5467368064A9B0A0133138150 -:10135000BBE600BF0935002000ED00E00400FA05FF -:10136000004A0020F8240020CDCCCC3D6666663FC4 -:101370000C350020014B1870704700BF0425002079 +:10135000BBE600BFA934002000ED00E00400FA0560 +:10136000A049002098240020CDCCCC3D6666663F85 +:10137000AC340020014B1870704700BFA42400203B :1013800038B54FF00054144B22689A4221D1627D47 :101390000025124B12481A70C922237D09301149C9 :1013A00000F8013C4FF48073C0F8DB50C0F8EF3117 :1013B0004FF40073C0F803334FF44073C0F8173490 :1013C00000F0CAFAE0222946204600F0EBFA01209C -:1013D00038BD0020FCE700BF9AAD44C504250020BD -:1013E000004A00201600002037B500F0DBFD194D43 +:1013D00038BD0020FCE700BF9AAD44C5A42400201E +:1013E000A04900201600002037B500F01BFE194D63 :1013F00002230022184928816B710123174801F04C -:1014000047FB002316494FF480520193154B1648B1 -:101410000093164B02F064FA154B197811B112487B -:1014200002F086FA01F072FF0446FFF71BFC4FF44E +:101400008BFB002316494FF480520193154B16486D +:101410000093164B02F0A8FA154B197811B1124837 +:1014200002F0CAFA01F0B6FF0446FFF71BFC4FF4C6 :10143000C873B0FBF3F202FB130304F5167010FA45 -:1014400083F00C4B186004F00DFF08B10F232B81C3 -:1014500003B030BDF824002040420F00403500208A -:1014600008250020750F00081035002079100008AD -:10147000042500200C3500202DE9F04F8C4C2DED7B +:1014400083F00C4B186005F05FF808B10F232B8177 +:1014500003B030BD9824002040420F00E03400204B +:10146000A8240020750F0008B0340020791000086F +:10147000A4240020AC3400202DE9F04F8C4C2DED3D :10148000028B85A7D7E9006795B00FF21429D9E937 :1014900000899FED858BFFF727FD0DAD0023DFF859 :1014A00024B20C93ADF83C300D936B6000234FF0E9 :1014B000010A0DF1250209A958468DF825308DF84D -:1014C00024A08DED008B01F089FE9DF824200023DF -:1014D000002A40F0AE80204602F032FA054600288D -:1014E00047D1DFF8E4B101F011FFDBF8003098429A -:1014F0003FD301F00BFF0790FFF7B4FB4FF4C87325 +:1014C00024A08DED008B01F0CDFE9DF8242000239B +:1014D000002A40F0AE80204602F076FA0546002849 +:1014E00047D1DFF8E4B101F055FFDBF80030984256 +:1014F0003FD301F04FFF0790FFF7B4FB4FF4C873E1 :10150000079AB0FBF3F101FB130302F5167010FA12 :1015100083F0CBF8000010A8DFF8B0B19BF8001002 :10152000002914BF2B46534607918DF83030FFF742 :10153000B1FB079910AB0DF13100C1F11002194454 :10154000D2B2062A28BF0622079200F005FA079AAF :101550000CAB2046039301321823D2B20293554BB1 -:1015600004923246CDE900A33B4602F02FFA8BF8F5 -:10157000005001F0CBFE504A504D1368C31AB3F52A -:101580007A7F32D3106001F0C3FE02460B4620463C -:1015900002F0B4FA204602F0D3F930B32B7A0DF101 +:1015600004923246CDE900A33B4602F073FA8BF8B1 +:10157000005001F00FFF504A504D1368C31AB3F5E5 +:101580007A7F32D3106001F007FF02460B462046F7 +:1015900002F0F8FA204602F017FA30B32B7A0DF178 :1015A000400BDFF82CA1002B14BF032302238AF881 -:1015B000053001F0ABFE4FF47A7301225946B0FBBF -:1015C000F3F0CAF80000504600F09EFB182380B2EA +:1015B000053001F0EFFE4FF47A7301225946B0FB7B +:1015C000F3F0CAF80000504600F0AEFB182380B2DA :1015D000424602933A4B019340F25513CDE903B0D2 -:1015E000009320464B4602F0F1F92B7AABB101F0A3 -:1015F0008DFE4FF0000A83464FF48A7295F8D900A9 +:1015E000009320464B4602F035FA2B7AABB101F05E +:1015F000D1FE4FF0000A83464FF48A7295F8D90065 :10160000504400F0030002FB005393F8E81071B35C -:101610000AF1010ABAF1040FF0D1C82004F018F958 +:101610000AF1010ABAF1040FF0D1C82004F084F9EC :101620002B7A002B7FF435AF15B0BDEC028BBDE8F3 :10163000F08F1946102210A800F0B4F90DF126031E -:101640000AAA0CA9584601F0B3F811AB95E80300BB +:101640000AAA0CA9584601F0F7F811AB95E8030077 :1016500083E803009DF83C3010A920468DF84C30FB -:101660000C9B1093DDE90A2302F01CFC1EE7D3F863 +:101660000C9B1093DDE90A2302F060FC1EE7D3F81F :10167000E01049B12B68ABEB0101FA2B38BFFA231C :101680000533B1EB430FC3D3FFF7DEFB4FF48A7290 :101690000028BDD1C1E700BF401DA12026812A0B33 :1016A000F1C6A7C1D068080F0000000000000000CC -:1016B0001035002008350020304F0020004A00205F -:1016C000344F0020403500200C3500200935002023 -:1016D000F824002008B5054801F012F9044A05492C -:1016E0000020BDE8084006F033B900BF40350020B7 -:1016F0008C4F0020411000082DE9F84F4FF47A7309 +:1016B000B0340020A8340020D04E0020A0490020E3 +:1016C000D44E0020E0340020AC340020A9340020A7 +:1016D0009824002008B5054801F056F9044A054948 +:1016E0000020BDE8084006F0C5BB00BFE034002084 +:1016F0002C4F0020411000082DE9F84F4FF47A7369 :1017000006460D46002402FB03F7DFF85080DFF8A1 :10171000509098F900305FFA84FA5A1C01D0A34225 :1017200012D159F824002A4631460368D3F820B074 :101730003B46D847854207D1074B012083F800A0DC :10174000BDE8F88F0124E4E7002CFBD04FF4FA70D9 -:1017500004F07EF80020F3E77C4F002018230020DF +:1017500004F0EAF80020F3E71C4F002018230020D3 :101760001C230020002307B5024601210DF10700CC :101770008DF80730FFF7C0FF20B19DF8070003B0D8 :101780005DF804FB4FF0FF30F9E700000A46042142 :1017900008B5FFF7B1FF80F00100C0B2404208BDBC :1017A000074B0A4630B41978064B53F821400146DE :1017B00023682046DD69044BAC4630BC604700BF5F -:1017C0007C4F00201C230020A086010070B5104C27 -:1017D0000025104E04F066FB208030682388834289 -:1017E0000CD800252088013804F058FB23880544D4 -:1017F000013BB5F5802F2380F4D370BD04F04EFB80 +:1017C0001C4F00201C230020A086010070B5104C87 +:1017D0000025104E04F0D2FB20803068238883421D +:1017E0000CD800252088013804F0C4FB2388054468 +:1017F000013BB5F5802F2380F4D370BD04F0BAFB14 :10180000336805440133B5F5802F3360E5D3E8E74D -:101810007E4F0020384F002004F012BC00F1006021 +:101810001E4F0020D84E002004F07EBC00F1006076 :1018200000F580200068704700F10060920000F52C -:10183000802004F093BB0000054B1A68054B1B8801 -:101840009B1A834202D9104404F028BB0020704741 -:10185000384F00207E4F0020024B1B68184404F0D4 -:1018600023BB00BF384F0020024B1B68184404F014 -:101870002DBB00BF384F00200020704700F1FF5003 +:10183000802004F0FFBB0000054B1A68054B1B8895 +:101840009B1A834202D9104404F094BB00207047D5 +:10185000D84E00201E4F0020024B1B68184404F095 +:101860008FBB00BFD84E0020024B1B68184404F009 +:1018700099BB00BFD84E00200020704700F1FF50F8 :1018800000F58F10D0F8000870470000064991F865 :10189000243033B100230822086A81F82430FFF78E -:1018A000C3BF0120704700BF3C4F0020014B1868A8 +:1018A000C3BF0120704700BFDC4E0020014B186809 :1018B000704700BF0010005C194B01380322084438 :1018C00070B51D68174BC5F30B042D0C1E88A6427E :1018D0000BD15C680A46013C824213460FD214F9D0 @@ -401,10 +401,10 @@ :1018F000ECD181420B4602D22C2203F8012B0424A6 :10190000094A1688AE4204D1984284BF967803F8FB :10191000016B013C02F10402F3D1581A70BD00BF03 -:101920000010005C242300204C7A0008704700005F +:101920000010005C242300205C7F0008704700004A :10193000704700007047000070B504464FF47A7697 :101940004CB1412C254628BF412506FB05F0641B00 -:1019500003F07EFFF4E770BD002310B5934203D07F +:1019500003F0EAFFF4E770BD002310B5934203D013 :10196000CC5CC4540133F9E710BD0000013810B558 :1019700010F9013F3BB191F900409C4203D11AB1EB :101980000131013AF4E71AB191F90020981A10BD1B @@ -418,1636 +418,1711 @@ :101A000017441E449044E4B2F6B2082E85F82460D0 :101A1000DBD1FFF73BFF0028D7D108E02B6A03EBAF :101A200082038342CFD0FFF731FF0028CBD10020C3 -:101A3000BDE8F8830120FBE73C4F0020024B1A78F9 -:101A4000024B1A70704700BF7C4F00201823002003 -:101A500038B51A4C1A4D204603F03EFA2946204666 -:101A600003F066FA2D684FF47A70D5F89020D2F81A +:101A3000BDE8F8830120FBE7DC4E0020024B1A785A +:101A4000024B1A70704700BF1C4F00201823002063 +:101A500038B51A4C1A4D204603F086FA294620461E +:101A600003F0AEFA2D684FF47A70D5F89020D2F8D2 :101A7000043843F00203C2F80438FFF75DFF114950 -:101A8000284603F063FBD5F890200F4DD2F80438B8 +:101A8000284603F0ABFBD5F890200F4DD2F8043870 :101A9000286823F002030D49A042C2F804384FF42D -:101AA000E1330B6001D003F075F96868A04204D0FF -:101AB0000649BDE8384003F06DB938BDF056002046 -:101AC000FC7C0008047D00081C230020644F0020DB +:101AA000E1330B6001D003F0BDF96868A04204D0B7 +:101AB0000649BDE8384003F0B5B938BD905600205E +:101AC0000C820008148200081C230020044F002010 :101AD0000C4B70B50C4D04461E780C4B55F8262067 :101AE0009A420DD00A4B002118221846FFF75AFFE0 -:101AF0000460014655F82600BDE8704003F04AB97D -:101B000070BD00BF7C4F00201C230020F056002039 -:101B1000644F0020F0B5A1B071B60023012000246D -:101B200080261A46194602F01DFE4FF4D067214A5E -:101B30003D25136923BBD2F810310BBB036804F1B8 -:101B4000006199600368C3F80CD003685E600368A5 -:101B50001F6001680B6843F001030B6001680B68AC -:101B600023F01E030B6001680B68DB07FCD4037BCA -:101B70008034416805FA03F3B4F5001F0B60D8D137 -:101B800002F026FEB4F5001F11D000240A4E0B4DC2 -:101B9000012004F055FA3388A34205D9286820446F -:101BA000013404F093F9F6E7002004F049FA61B635 -:101BB00021B0F0BD002000527E4F0020384F0020A1 -:101BC0002DE9F0470D46044600219046284640F294 -:101BD0007912FFF7E7FE234620220021284604F170 -:101BE000220702F001F9231D022220212846C026E7 -:101BF00002F0FAF8631D03222221284602F0F4F8CD -:101C0000A31D03222521284602F0EEF804F1080363 -:101C100010222821284602F0E7F804F110030822D8 -:101C20003821284602F0E0F804F11103082240218F -:101C3000284602F0D9F804F1120308224821284668 -:101C400002F0D2F804F1140320225021284602F0B9 -:101C5000CBF804F1180340227021284602F0C4F8A2 -:101C600004F120030822B021284602F0BDF804F157 -:101C700021030822B821284602F0B6F8314608367A -:101C80003B4608222846013702F0AEF8B6F5A07FA1 -:101C9000F4D1002704F1330A04F13203082231465B -:101CA000284602F0A1F894F832304FEAC7099F4263 -:101CB00009F5A47615D3B8F1000F08D1314609F221 -:101CC0004F1604F599730722284602F08DF827462F -:101CD0003B1B94F8322193420CD3F01DC008BDE8A1 -:101CE000F0870AEB0703082231462846013702F045 -:101CF0007BF8D8E707F23313314608222846083626 -:101D0000013702F071F8E3E713B5044608460021F5 -:101D10002022234601900160C0F8031002F064F80D -:101D2000231D01980222202102F05EF8631D019814 -:101D30000322222102F058F8A31D01980322252135 -:101D400002F052F8019804F108031022282102F051 -:101D50004BF8072002B010BD0023F7B50E46047FF4 -:101D6000072200911946054601F002FF731C01226B -:101D7000072100932846002301F0FAFEC4B9B31CE2 -:101D8000052208212846009323460D2401F0F0FE89 -:101D90003746BB1BB278934211D307342B7FA88AF6 -:101DA000E408BBB9844294BF0020012003B0F0BD19 -:101DB000AB8A0824DB00083BDB08B370E8E7FB1CB8 -:101DC000214608222846009300230834013701F0F9 -:101DD000CFFEDEE7201A18BF0120E7E70023F7B5A2 -:101DE0000E46047F082200911946054601F0C0FE08 -:101DF000731CC4B9082200932346102411462846B8 -:101E000001F0B6FE01235F1C7278013B934211D3AF -:101E100007342B7FA88AE408BBB9844294BF002012 -:101E2000012003B0F0BDAB8A0824DB00083BDB08CF -:101E30007370E7E7F3192146082228460093002330 -:101E400001F096FE08343B46DDE7201A18BF01205A -:101E5000E7E70000F8B50E4605461446002181224A -:101E60003046FFF79FFD2B4608220021304601F047 -:101E7000BBFF7CB90F246B1C07220821304601F000 -:101E8000B3FF01235F1C6A78013B934204D3E01D3A -:101E9000C008F8BD0824F4E7EB19214608223046B3 -:101EA00001F0A2FF08343B46ECE70000F8B50E460F -:101EB000054614460021CE223046FFF773FD2B461F -:101EC00028220021304601F08FFF7CB9302405F133 -:101ED000080308222821304601F086FF2F467B1B8D -:101EE0002A7A934204D3E01DC008F8BD2824F5E700 -:101EF00007F109032146082230460834013701F072 -:101F000073FFECE7F7B5047F0E4600910123102222 -:101F10000021054601F02CFEC4B9B31C0922102192 -:101F2000284600932346192401F022FE3746728882 -:101F3000BB1B9A4211D807342B7FA88AE408BBB98F -:101F4000844294BF0020012003B0F0BDAB8A10246E -:101F5000DB00103BDB087380E8E73B1D21460822CD -:101F60002846009300230834013701F001FEDEE724 -:101F7000201A18BF0120E7E730B50A44084D914206 -:101F80000DD011F8013B5840082340F30004013BF9 -:101F90002C4013F0FF0384EA5000F6D1EFE730BD88 -:101FA0002083B8EDF7B5384A6B46106851686A4629 -:101FB00003C308233549364805F0F8FC04460028D9 -:101FC00033D10A25334A6B46106851686A4603C309 -:101FD000082331492E4805F0E9FC0446002849D081 -:101FE0000369B3F5E01F45D8B0F8661040F23742F8 -:101FF00091423FD1294A024402F15C018B4239D31C -:102000005C3B234900209E1AFFF7B6FF04F16401F0 -:10201000074632460020FFF7AFFFA3689F4229D151 -:10202000E368984208BF002524E00369B3F5E01F88 -:1020300027D8418B40F23742914220D1174A0244BF -:1020400002F110018B4218D3103B114900209D1A58 -:10205000FFF792FF04F1180106462A460020FFF719 -:102060008BFFA3689E4202D1E368984201D00D2500 -:10207000A8E70025284603B0F0BD1025A2E70C25EF -:10208000A0E70B259EE700BF5C7A0008DCFF1B0081 -:1020900000000408657A000890FF1B000800FCF7A8 -:1020A00010B5037C044613B9006805F067FC2046B0 -:1020B00010BD00000023BFF35B8FC360BFF35B8FD5 -:1020C000BFF35B8F8360BFF35B8F7047BFF35B8FA2 -:1020D0000068BFF35B8F704770B505460C30FFF7A3 -:1020E000F5FF044605F108063046FFF7EFFFA04272 -:1020F00006D96D683046FFF7E9FF2544281A70BD00 -:102100003046FFF7E3FF201AF9E7000070B50546F7 -:102110004068A0B105F10C0605F10800FFF7D6FFF5 -:1021200004463046FFF7D2FF844204F1FF343046C4 -:1021300094BF6D680025FFF7C9FF2C44201A70BDBD -:1021400038B50C460546FFF7C7FFA04210D305F18E -:102150000800FFF7BBFF04446868BFF35B8FB4FB64 -:10216000F0F100FB11440120AC60BFF35B8F38BD80 -:102170000020FCE72DE9F041144607460D46FFF725 -:10218000C5FF844228BF0446D4B1B84658F80C6B4A -:102190004046FFF79BFF3044286040467E68FFF7CB -:1021A00095FF331A9C4203D801206C60BDE8F08192 -:1021B000A41B6B603B682044AB60E8600220F5E73D -:1021C0002046F3E738B50C460546FFF79FFFA042CF -:1021D00010D305F10C00FFF779FF04446868BFF3E2 -:1021E0005B8FB4FBF0F100FB11440120EC60BFF306 -:1021F0005B8F38BD0020FCE72DE9FF41884669462A -:1022000007466C46FFF7B6FF002506B204EBC6068C -:10221000B4420AD0626808EB050120680834FFF771 -:102220009BFB54F8043C1D44F2E729463846FFF76F -:10223000C9FF284604B0BDE8F0810000F8B50546A6 -:102240000C300F46FFF742FF05F108060446304602 -:10225000FFF73CFFA042304688BF6C68FFF736FFAF -:10226000201A386020B12C683046FFF72FFF204439 -:10227000F8BD000073B5144606460D46FFF72CFF67 -:102280008442019028BF0446DCB101A93046FFF723 -:10229000D5FF019B33B93268C5E90233C5E9002493 -:1022A00001200CE09C42286038BF019401988442D0 -:1022B0006860F5D93368241A0220AB60EC6002B084 -:1022C00070BD2046FBE700002DE9FF410F4669463F -:1022D0006C46FFF7CFFF00B2002604EBC005AC420E -:1022E00009D0D4F80480B81954F8081B4246464473 -:1022F000FFF732FBF3E7304604B0BDE8F0810000A1 -:1023000038B50546FFF7E0FF044601462846FFF7CB -:1023100017FF204638BD00007047000010B4134678 -:10232000026814680022A4465DF8044B6047000070 -:1023300000F5805090F859047047000000F5805077 -:1023400090F852047047000000F5805090F958044E -:10235000704700004E207047302383F3118800F54A -:102360008052D2F89C34D2F898041844D2F89434AD -:102370001844D2F87C341844D2F88C341844D2F87B -:1023800088341844002383F31188704700F5805087 -:10239000C0F85414012070472DE9F04F0C4600F5A9 -:1023A000805185B01F4691F8523405469046BDF8DD -:1023B00038909BB1D1F878340133C1F87834236870 -:1023C000980006D4237B082B0BD9627B0AB10F2B14 -:1023D00007D9D1F87C340133C1F87C344FF0FF3099 -:1023E00010E0302383F31188EB6AD3F8C42012F491 -:1023F000001B0AD0D1F8803400200133C1F88034AA -:1024000080F3118805B0BDE8F08F20684822D3F82A -:10241000C4300028C3F3044A6B6AB4BF40F0804064 -:10242000800412FB0A334FEA4A16186022685200F1 -:102430004FEA0A6244BF40F000501860207B42EA35 -:1024400000425A60607B10B342F440125A60D1F8E7 -:10245000B0240132C1F8B024AA1902F58352117BCD -:1024600041F020011173207B039300F0ABFF033098 -:10247000039B80105FFA8BF20BF1010B82420DDAA5 -:1024800004EB820103EB820249689160F2E7AA192A -:1024900002F58352117B60F34511E3E70122EB6AF9 -:1024A00005EB4A1102FA0AF201F58251C3F8D02075 -:1024B000AB19183104F10C0203F58253C3E9048708 -:1024C000234653F8040B934241F8040BF9D11B88BF -:1024D0002E440B8041F2680346F803A006F58056AF -:1024E00009F0030396F86C2043F0100322F01F025A -:1024F000134386F86C30002383F3118842463B4631 -:1025000021462846CDF8009000F022FF012079E70F -:102510002DE9F04700F58056044696F85254002DF8 -:1025200040F00381037C032B40F0948028462B4627 -:102530002F465FFA80FC944510DA01EBCC0E51F87F -:102540003CC0BCF1000F04DBDEF804C0BCF1000F9E -:1025500002DB01370130ECE70133FBE7302080F389 -:102560001188E06AF3B9D0F8803043F00203C0F874 -:1025700080304E23E06A002F6FD1D0F8803043F0D6 -:102580000103C0F880306A4B6A4A1B6803F180532C -:1025900003F52C539B009342A36240F2B08066483F -:1025A00000F0AEFE4D2B42D8DFF884814FEA034E97 -:1025B000DFF88891D8F800C04EEA8C0EC0F884E0AD -:1025C0000CF1805000F52C508000606103EB0C0092 -:1025D000D4F82CC0C3F14E03C8F80000DCF880002A -:1025E00040F03000CCF880004FF0000CD4F814809C -:1025F000E6465FFA8CF08242BCDD01EBC00A51F87E -:102600003000002810DBDAF804A0BAF1000F0BDA72 -:1026100009EA00400AF07F0A40EA0A0040F0084058 -:1026200048F82E000EF1010E0CF1010CE1E7836970 -:1026300023F00103836100F069FE0646E36A9B69AB -:10264000D90704D500F062FE831BFA2BF6D90023CC -:1026500083F311882846BDE8F087B7EB530F3DD2CE -:10266000DFF8CCE04FEA074CDEF800304CEA830C90 -:10267000C0F888C003F1805003EB4703002700F542 -:102680002C50CEF80030BC468000A061E06AD0F843 -:10269000803043F00C03C0F88030D4F818E0FBB26F -:1026A0009A427FF770AF51F8330001EBC30800285E -:1026B000D8F8043001DB002B0EDB20F0604023F063 -:1026C000604340F0005043F000434EF83C000EEBF6 -:1026D000CC000CF1010C43600137E0E7836923F083 -:1026E0000103836100F012FE0646E36A9B69DA0784 -:1026F000ADD500F00BFE831BFA2BF6D9A7E7E26AF3 -:10270000936923F00103936100F000FE0746E36A3A -:102710009B69DB0705D500F0F9FDC31BFA2BF6D941 -:1027200095E7012586F8525491E7002592E700BF0E -:10273000884F0020FCB50040707A00080000FF07B9 -:1027400013B500F580540191606CFFF7DFFC1F2882 -:102750000AD920220199606CFFF74EFDA0F12003F9 -:102760005842584102B010BD0020FBE708B53023A5 -:1027700083F3118800F58050406CFFF79BFC002329 -:1027800083F3118808BD000000220260828142604C -:10279000826070470022002310B5C0E900230023A7 -:1027A00004460C3020F8043CFFF7EEFF204610BD35 -:1027B0002DE9F0479A4688B007468846914630236F -:1027C00083F3118807F580546846FFF7E3FF606CD8 -:1027D000FFF782FC1F282ED920226946606CFFF784 -:1027E0008FFD202827D194F8523423B303AD4446FB -:1027F00005AB2E46083403CE9E4244F8080C44F83C -:10280000041C3546F5D130682060B388A380DDE92B -:102810000023C9E90023BDF80830AAF800300023DE -:1028200083F3118853464A464146384608B0BDE80E -:10283000F04700F07BBD002080F3118808B0BDE8B0 -:10284000F08700002DE9F84F0023064600F581547B -:10285000054688461034C0E90133264B46F8303B24 -:10286000374638462037FFF795FFA742F9D105F5DF -:1028700080544FF4805305F5A3594FF0000A2663A6 -:102880000026676405F5835709F110094FF0000B26 -:102890001037E663C4E90D36012384F8403084F82C -:1028A0004830A7F11800203747E910ABFFF76CFF5D -:1028B00047F8286C4F45F4D184F85884A4F85A643A -:1028C000A4F85C64A4F85E6484F86064A4F86264AC -:1028D000A4F86464A4F8666484F86864B8F1000F2E -:1028E00002D0054800F00CFD044B2846EB62BDE821 -:1028F000F88F00BFB07A0008947A000800A000406A -:10290000044B10B5197804464A1C1A70FFF79AFF59 -:10291000204610BD854F00202DE9F04300295AD0F4 -:102920002E4E2F48B6FBF1F481428CBF0A201120B5 -:10293000431EB4FBF0F700FB1740DDB220B1022BC1 -:102940001846F5D8002032E07B1EB3F5806F2ED2FA -:10295000C5EBC5084FF47A7308F103044FEAE40E9F -:10296000C4F3C7040EF10109281B0EFB033E5FFAF6 -:1029700080FC59FA80F0BEFBF0F0B0F5617F18DC06 -:1029800083B2601C5CFA80F07843B6FBF0F08142C1 -:10299000D8D1611E0F29D5D80CF1FF310729D1D824 -:1029A0000120138057801071547182F806C0BDE871 -:1029B000F08308F1FF34E010C4F3C70400F1010E06 -:1029C0002D1B00FB03335FFA85FC5EFA85F5B3FB34 -:1029D000F5F39BB2D5E70846E9E700BF00B4C404AD -:1029E0003F420F0030B50D4B05200D4D1C786C4358 -:1029F0008C420ED159780120518099785171D97843 -:102A00009171197911715B7903EB83035B0013807A -:102A100030BD013803F10603E8D1F9E7F07A000888 -:102A200040420F0038B540F27772C36A154CC3F8C4 -:102A3000BC200722C36AC3F8C8202268C16A930079 -:102A400043F4C023C1F8A03002F1805302F16C01BD -:102A5000C56A03F52C53EA3289009B00226041F0DD -:102A6000E061094AC361C5F8C01003F5D87103F5E8 -:102A70006A7341629342836202D9044800F040FCC9 -:102A800038BD00BF884F0020FCB50040707A0008B8 -:102A90002DE9F04F00F580551F4689B0044695F8A2 -:102AA000583489469046012B04D90026304609B097 -:102AB000BDE8F08FA04A52F8231009B942F823006C -:102AC0009E48C4F80C9001782774C9B9302383F369 -:102AD00011889B4BD3F8EC2042F48072C3F8EC20B1 -:102AE000D3F8942042F48072C3F89420D3F8942051 -:102AF00022F48072C3F894200123037081F31188BB -:102B000095F851647EB9302383F311880321132093 -:102B100001F074FF0321152001F070FF012385F8F7 -:102B2000513486F31188302383F31188E26A936964 -:102B300023F01003936100F0E9FB8246E36A9E698B -:102B400016F0080609D000F0E1FBA0EB0A03FA2B0F -:102B5000F4D9002686F31188A8E79A6942F00102A9 -:102B60009A6100F0D3FB8246E36A9A69D00706D4E3 -:102B700000F0CCFBA0EB0A03FA2BF5D9E9E79A6940 -:102B80004FF0000A42F002029A61E36AC3F854A0CF -:102B90008AF3118804F5825B686CFFF78BFA0BF1FE -:102BA000100B202200216846FEF7FCFE02A8FFF76A -:102BB000EBFD6A460BEB06030DF1180ECDF818A0DD -:102BC00094460833BCE80300F44543F8080C43F886 -:102BD000041C6246F4D1DCF8000020361860B6F51B -:102BE000806F9CF804201A71DBD1002304F5A252F7 -:102BF000494620461A3285F8503485F85334FFF799 -:102C00008BFE064690B9E26A936923F00103936153 -:102C100000F07CFB0546E36A9B69D9077FF545AF69 -:102C200000F074FB431BFA2BF5D93EE795F85E34B0 -:102C3000C5F86C94591E95F85F34E26A013B1B029B -:102C400043EA416395F8601401390B43B5F85C140D -:102C5000013943EA0143D361B8F1000F36D004F5DE -:102C6000A352414620460232FFF7BCFE90B9E26A09 -:102C7000936923F00103936100F048FB0546E36A82 -:102C80009B69DA077FF511AF00F040FB431BFA2B7D -:102C9000F5D90AE795F86724C5F87084511E95F8B0 -:102CA0006824E36A013A120142EA012295F86614A7 -:102CB00001390A43B5F86414013942EA014242F489 -:102CC0000002DA604FF42062E36A9A64E36A4FF02C -:102CD00000082046C3F8BC80FFF7A4FE85F859849D -:102CE0006FF04042E36A1A65164AE36A5A654FF08C -:102CF0000222E36A9A654FF0FF32E36AC3F8E020EC -:102D00000322E36A9742DA653FF4D0AEE26A936940 -:102D100023F00103936100F0F9FA0746E36A9B6927 -:102D2000DB0705D500F0F2FAC31BFA2BF6D9BCE697 -:102D3000012385F85234B9E6804F0020844F0020EB -:102D400000440258550200022DE9F04F054689B0B3 -:102D500090469946002741F2680A00F58056EB6AD2 -:102D6000D3F8D830FB40D80751D505EB47124FEACE -:102D7000471B52441379190749D4D6F884340133D8 -:102D8000C6F8843405F5A553C3E9008913799A067A -:102D900005EB0B0248BFD6F8B434524444BF0133AC -:102DA000C6F8B434137943F008031371DB0723D555 -:102DB00096F8533403B305F582546846FFF7EAFCEE -:102DC00003AB18345C4404F1080C2068083454F850 -:102DD000041C1A46644503C21346F6D120686946AE -:102DE00010602846A2889A800123ADF808302B682D -:102DF000CDE90089DB6B9847D6F8A834D6F854049F -:102E00000133C6F8A83410B103681B69984701372D -:102E1000202FA4D109B0BDE8F08F00002DE9F04FBC -:102E20000F468DB0044600F073FA82468946002FA3 -:102E30005BD1E36AD3F8A02012F4FE0F03D1002087 -:102E40000DB0BDE8F08FD3F8A420920141BF04F586 -:102E50008051D1F898240132C1F89824D3F8A420E5 -:102E60005606ECD0D3F8A450E669C5F305254823EF -:102E7000E8464FF0000B03FB05664046FFF784FC75 -:102E8000326851004ABF22F06043C2F38A4343F0E4 -:102E90000043920048BF43F080430093736813F4EB -:102EA00000131BBF012304F580528DF80D308DF8FF -:102EB0000D301EBFD2F8B8340133C2F8B834F388ED -:102EC00003F00F038DF80C309DF80C0000F07AFA37 -:102ED0005FFA8BF3984225D9F2180CA90BF1010B7C -:102EE000127A0B4403F82C2CEEE7012FA7D1E36AEA -:102EF000D3F8B02012F4FE0FA1D0D3F8B42095017E -:102F000041BF04F58051D1F898240132C1F89824CA -:102F1000D3F8B420500692D0D3F8B450266AC5F343 -:102F20000525A4E7EFB9E36AC3F8A85004A807ADE4 -:102F3000FFF730FC98E80F0007C52B8000232046E0 -:102F400004A9ADF81830236804F58054DB6BCDE993 -:102F500004A9984758B1D4F890340133C4F8903498 -:102F60006EE7012FE2D1E36AC3F8B850DEE7D4F888 -:102F7000943401200133C4F8943461E72DE9F04121 -:102F800005460F4600F58054012639462846FFF7CE -:102F900045FF10B184F85364F7E7D4F8A834D4F8A7 -:102FA00054040133C4F8A83420B10368BDE8F041EB -:102FB0001B691847BDE8F081C36AF0B51A6C12F4BA -:102FC0007F0F2BD01B6C00F5805441F268054FF049 -:102FD000010CC4F8AC340023471900EB43125E0126 -:102FE0002A44117911F0020F15D0490713D4B959A9 -:102FF000C66A0CFA01F1D6F8CCE011EA0E0F0AD03D -:10300000C6F8D410117941F004011171D4F88C2460 -:103010000132C4F88C240133202BDED1F0BD000036 -:1030200010B5264C264B22680AB340B31A6D9205A0 -:103030000FD54FF400721A6500F06AF950EA0102E8 -:103040000B4602D0013861F1000302462068FFF709 -:103050007BFE1B4A136D9B012AD523684FF000713C -:1030600003F580531165012283F8592420E00122E1 -:103070001A6510221A654FF480521A6510BD196D39 -:10308000C80702D4196D490705D5052110461965F1 -:103090000021FFF773FF0A4B1A6DD00602D41A6D98 -:1030A000510605D5502201211A652068FFF766FFF9 -:1030B0002068BDE81040FFF77FBF00BF804F0020B1 -:1030C00000A0004008B5302383F31188FFF774FF98 -:1030D000002383F3118808BDC36AD3F8C00010F041 -:1030E0007C5005D0D3F8C40080F40010C0F34050E9 -:1030F0007047000008B5302383F3118800F5805035 -:10310000406CFEF7E9FF002383F3118843090CBFED -:103110000120002008BD000000F5805393F85924D9 -:1031200062B1C16A8A6922F001028A61D3F89C24E3 -:103130000132C3F89C24002283F859247047000010 -:103140002DE9F743302181F3118800F582510025E4 -:1031500041F2680E4FF00108103100F5805C00EB81 -:1031600045147444267977071CD4F6061AD58E695F -:10317000D0F82C9008FA06F6D9F8CC703E4211D05F -:103180004F6801970F689742019F9F410AD2C9F883 -:10319000D460267946F004062671DCF888440134B0 -:1031A000CCF8884401352031202DD8D1002383F379 -:1031B000118803B0BDE8F083F8B51E4600230F4622 -:1031C000054613701446FFF795FF80F00100387034 -:1031D0001EB12846FFF780FF2070F8BD2DE9F04FA3 -:1031E00085B099460D468046164691F800B0DDE957 -:1031F0000EA302931378019300F08AF82B7804460B -:103200000F4613B93378002B41D022463B46404647 -:10321000FFF796FFFFF756FFFFF77EFF4B4632465C -:103220002946FFF7C9FF2B7833B1BBF1000F03D05C -:10323000012005B0BDE8F08F337813B1019B002B5E -:10324000F6D108F5805303935445029B77EB0303B3 -:103250001DD2039BD3F85404C8B10368AAEB040140 -:103260001B6898474B46324629464046FFF7A4FF65 -:103270002B7813B1BBF1000FDAD1337813B1019B76 -:10328000002BD5D100F044F804460F46DCE70020BF -:10329000CFE7000008B50020FFF7C2FEBDE80840F8 -:1032A00001F056B808B50120FFF7BAFEBDE80840A6 -:1032B00001F04EB800B59BB0EFF309816822684673 -:1032C000FEF74AFBEFF30583014B9B6BFEE700BF64 -:1032D00000ED00E008B5FFF7EDFF000000B59BB082 -:1032E000EFF3098168226846FEF736FBEFF30583AA -:1032F000014B5B6BFEE700BF00ED00E0FEE7000066 -:103300000FB408B5029802F049FAFEE702F0DABEFF -:1033100002F0BCBE13B56C46031D84E8060094E8B9 -:10332000030083E80500012002B010BD73B5856875 -:10333000019155B11B885B0707D4D0E900369B6B20 -:103340009847019AC1B23046A847012002B070BD2B -:10335000F0B5866889B005460C465EB1BDF83830D8 -:103360005B070AD4D0E900379B6B98472246C1B26D -:103370003846B047012009B0F0BD0022002301F11A -:103380000806CDE9002300230A46ADF8083003AB58 -:103390001068083252F8041C1C46B24203C423468B -:1033A000F6D1106820609288A280FFF7B1FF042355 -:1033B000ADF808302B68CDE90001DB6B6946284683 -:1033C0009847D7E7082817D909280CD00A280CD025 -:1033D0000B280CD00C280CD00D280CD00E2814BFB4 -:1033E0004020302070470C20704710207047142078 -:1033F0007047182070472020704700002DE9F041E9 -:10340000456A15B94162BDE8F0814B68AC4623F0CE -:103410006047C3F38A464FEAD37EC3F3807816EA47 -:10342000230638BF3E462B465A68BEEBD27F22F0B9 -:1034300060440AD0002A18DAA40CB44217D19D4285 -:103440000FD10D60DEE71346EEE7A74207D102F089 -:103450008044C2F3807242450BD054B1EFE708D2EA -:10346000EDE7CCF800100B60CDE7B44201D0B442D8 -:10347000E5D81A689C46002AE5D11960C3E7000028 -:103480002DE9F047089D01F0070400EBD1004FF44F -:103490007F494FEAD508224405F00705944201D13F -:1034A000BDE8F08704F0070705F0070A111B08EBD9 -:1034B000D50E57453E4613F80EC038BF5646C6F1E6 -:1034C00008068E4228BF0E46E108415C344435446C -:1034D000B94029FA06F721FA0AF1FFB28CEA010194 -:1034E00047FA0AF739408CEA010C03F80EC0D5E719 -:1034F00080EA0120082341F2210201B2013B400091 -:10350000002980B2B8BF504013F0FF03F5D17047D7 -:1035100038B50C468D18A54200D138BD14F8011BF2 -:10352000FFF7E6FFF7E7000042684AB113688189B8 -:103530004360438901339BB29942438138BF838101 -:103540001046704770B588B0044620220D46684684 -:103550000021FEF727FA20460495FFF7E5FF024613 -:1035600060B16B46054608AE1C46083503CCB44234 -:1035700045F8080C45F8041C2346F5D1104608B060 -:1035800070BD0000082817D909280CD00A280CD0D3 -:103590000B280CD00C280CD00D280CD00E2814BFF2 -:1035A0004020302070470C207047102070471420B6 -:1035B000704718207047202070470000082817D94E -:1035C0000C280CD910280CD914280CD918280CD97F -:1035D00020280CD930288CBF0F200E2070470920DE -:1035E00070470A2070470B2070470C2070470D2051 -:1035F000704700002DE9F843078C0446072F1ED9B9 -:1036000000254FF6FF73D0E90298C5F12006A5F119 -:10361000200029FA05F1083508FA06F628FA00F024 -:10362000314301431846C9B2FFF762FF402D0346FC -:10363000EBD13A46E169BDE8F843FFF769BF4FF6C1 -:10364000FF70BDE8F883000010B54B6823B9CA8A43 -:1036500063F30902CA8210BD04691A681C60036121 -:10366000C38A013BC3824A60EFE700002DE9F84FAF -:103670001D46CB8A0F468146C3F3090192460529B0 -:103680000B4630D00020AAB207F11A049EB21FFAEE -:1036900080F8042E0FD8904503F1010306D30A44A5 -:1036A000FB8A62F309030120FB821AE01AF800602A -:1036B0000130E654EAE79045F1D2A1F1050B1C2355 -:1036C0007C68BBFBF3F203FB12BB1FFA8BF6002CEA -:1036D00045D14846FFF728FF044638B978606FF0B7 -:1036E0000200BDE8F88F4FF00008E6E7002606600C -:1036F0007860ADB24FF0000B454510D90AEB0803D6 -:10370000221D13F8011B08F101089155B1B21FFAEF -:1037100088F81B292BD0454506F10106F1D8FB8A14 -:10372000C3F30902154465F30903BCE701321C46E3 -:1037300092B22368002BF9D16B1F0B441C21B3FB01 -:10374000F1F301339BB29A42D3D2BBF1000FD0D137 -:103750004846FFF7E9FE20B9C4F800B0BFE70122F0 -:10376000E7E7C0F800B05E4620600446C1E7454583 -:10377000D5D94846FFF7D8FE08B92060AFE7C0F8B2 -:1037800000B0002620600446B6E700002DE9F04FA7 -:103790001C46074688462DED028B83B05B6901927B -:1037A000002B00F09A80238C2BB1E269002A00F0F4 -:1037B0009480072B35D807F10C00FFF7B5FE0546BE -:1037C00038B96FF00205284603B0BDEC028BBDE8A6 -:1037D000F08F14220021FEF7E5F8228CE16905F153 -:1037E0000800FEF7B9F8208C48F00041013080B2A3 -:1037F000FFF7E4FEFFF7C6FE013880B220840130F7 -:10380000287438466369228C1B782A4403F01F030E -:1038100063F03F03137269602946FFF7EFFD01254E -:10382000D1E74FF0000900F10C034FF0800A4E463B -:103830004D4608EE103A18EE100AFFF775FE834663 -:103840000028BED014220021FEF7ACF8002E3AD199 -:10385000019B0222ABF808300BF1080E1FFA82FC24 -:10386000218C0CF10100BCF1060F80B201D88E4210 -:103870002BD3FFF7A3FE8E4208BF4FF0400AFFF79D -:1038800081FE62690138013512781BFA80F101303E -:1038900002F01F022DB242EA491289F001094AEAF8 -:1038A000020A48F0004281F808A059468BF810003F -:1038B0003846CBF804204FF0000AFFF79FFD238C19 -:1038C000B342B8D17FE70022C6E7E169895D0136DE -:1038D0000EF80210B6B20132C0E76FF0010572E7D0 -:1038E000F8B515460E463022002104461F46FEF765 -:1038F00059F8069BB5F5001FA760636004F110003E -:10390000079B34BF6A094FF6FF72E661A36200238A -:1039100097B29A4206D800230360A782E3822383EA -:10392000E360F8BD0660013330462036F1E7000061 -:1039300003781BB94BB2002BC8BF01707047000061 -:1039400000787047F8B50C46C969074611B9238C51 -:10395000002B37D1257E1F2D34D8387828BB228CF8 -:10396000072A2CD8268A36F003032BD14FF6FF7096 -:10397000FFF7CEFD20F0010031024FF6FF72400448 -:1039800041EA0561400C41EA402523462946384674 -:10399000FFF7FCFE002807DD626913780133DBB214 -:1039A0001F2B88BF00231370F8BD218A2D0645EA1E -:1039B000012505432046FFF71DFE0246E5E76FF0AF -:1039C0000300F1E76FF00100EEE7000070B58AB088 -:1039D000044616460021282268461D46FDF7E2FFF0 -:1039E000BDF8383069462046ADF810300F9B05937E -:1039F0009DF840308DF81830119B0793BDF8483082 -:103A0000CDE90265ADF82030FFF79CFF0AB070BD2C -:103A10002DE9F041D36905460C4616460BB9138CC7 -:103A20005BBB377E1F2F28D895F80080B8F1000FB8 -:103A300026D03046FFF7DEFD3378210202462846C5 -:103A400041EAC331338A41EA080141EA076141EAA8 -:103A50000341334641F08001FFF798FE00280ADD5C -:103A60003378012B07D1726913780133DBB21F2B36 -:103A700088BF00231370BDE8F0816FF00100FAE702 -:103A80006FF00300F7E70000F0B58BB004460D4679 -:103A900017460021282268461E46FDF783FF9DF841 -:103AA0004C30294620465A1E534253416A468DF8EF -:103AB00000309DF84030ADF81030119B05939DF813 -:103AC00048308DF81830149B0793BDF85430CDE979 -:103AD0000276ADF82030FFF79BFF0BB0F0BD000081 -:103AE000406A00B104307047436A1A684262026952 -:103AF0001A600361C38A013BC38270472DE9F0411C -:103B0000D0F8208014461D46184E4146002709B9BA -:103B1000BDE8F081D1E90223A21A65EB03039642C6 -:103B200077EB03031ED2036A8B420DD1FFF78CFDA6 -:103B3000036A1B68036203690B60C38A0161013B6E -:103B4000016AC3828846E2E7FFF77EFD0B68C8F88A -:103B5000003003690B60C38A0161013BC382D8F85E -:103B60000010D4E788460968D1E700BF80841E00B2 -:103B70002DE9F04F8BB00D4614469B46DDF8509072 -:103B80008046002800F01881B9F1000F00F0148180 -:103B9000531E3F2B00F21081012A03D1BBF1000F0D -:103BA00040F00A810023CDE90833B8F81430B5EBB2 -:103BB000C30F4FEAC30703D300200BB0BDE8F08F5B -:103BC0002B199F42D8F80C3036BF7F1B2746FFB217 -:103BD0001BB9D8F81030002B7AD0272D4DD8C5F15D -:103BE000280600232946B742009308ABD8F80800FE -:103BF0002CBFF6B23E46A7EB060A354432465FFAC2 -:103C00008AFAFFF73DFCB8F81430282103F100537D -:103C1000053BDB000493D8F80C300393039B13B1EE -:103C2000BAF1000F2CD1D8F8100040B1BAF1000F52 -:103C300005D008AB5246691A0096FFF721FC38B24E -:103C4000002FB9D066070AD00AAB624203EBD40159 -:103C500002F0070211F8083C134101F8083C082C57 -:103C60003DD9102C40F2B580202C40F2B780BBF13A -:103C7000000F00F09C80082335E0BA460026C2E71A -:103C8000049BE02B28BFE02306930B44AB42059333 -:103C900015D95A1B0398691A0096924508AB00F192 -:103CA000040034BF5246D2B20792FFF7E9FB079AED -:103CB0001644AAEB020A1544F6B25FFA8AFA049B8C -:103CC000069A05999B1A0493039B1B680393A5E727 -:103CD00000933A4608AB2946D8F80800ADE7BBF197 -:103CE000000F13D00123B4EBC30F6BD0082C12D8F4 -:103CF0009DF82030621E23FA02F2D50706D54FF058 -:103D0000FF3202FA04F423438DF820309DF820306E -:103D100089F8003051E7102C12D8BDF82030621E0F -:103D200023FA02F2D10706D54FF0FF3202FA04F46B -:103D30002343ADF82030BDF82030A9F800303CE72F -:103D4000202C0FD80899631E21FA03F3DA0705D552 -:103D50004FF0FF3202FA04F40C430894089BC9F8B0 -:103D600000302AE7402C2AD0611EC4F12102A4F1C0 -:103D70002103DDE9086526FA01F105FA02F225FAC8 -:103D800003F311431943CB0711D50122A4F12003FA -:103D9000C4F1200102FA03F322FA01F1A2400B431D -:103DA000524263EB430332432B43CDE90823DDE961 -:103DB0000823C9E9002300E76FF00100FDE66FF07A -:103DC0000800FAE6082CA1D9102CB4D9202CEED882 -:103DD000C4E7BBF1000FAED0022384E7BBF1000FB4 -:103DE000BCD004237FE70000012A30B5144638BF59 -:103DF000012485B00025402C28BF4024012ACDE9AC -:103E0000025518D81B788DF8083063070AD004AB28 -:103E1000624203EBD40502F0070215F8083C934018 -:103E200005F8083C034600912246002102A8FFF74E -:103E300027FB05B030BD082AE4D9102A03D81B8817 -:103E4000ADF80830E1E7202A95BF1B68D3E90023CD -:103E50000293CDE90223D8E710B5CB681BB98B607C -:103E60000B618B8210BD04691A681C600361C38AF0 -:103E7000013BC382CA60F0E703064CBFC0F3C03009 -:103E80000220704708B50246FFF7F6FF022806D168 -:103E90005306C2F30F2001D100F0030008BDC2F3A6 -:103EA0000740FBE72DE9F04F93B004460D46CDE9FE -:103EB00003230A681046FFF7DFFF0228824614BF7B -:103EC000C2F306260026002A80F2F38112F0C049D0 -:103ED00040F0EF81097B002900F0EB81022803D03C -:103EE0002378B34240F0E881C2F3046310462944CA -:103EF000069302F07F030593FFF7C4FF059B0022A2 -:103F000083464FEA8348002348EA0A4848EA46685D -:103F1000CE78CDE90823F30948EA0008029368D077 -:103F2000059B024608A92046009353466768B84798 -:103F3000002800F0C481276A4FB9414604F10C0003 -:103F4000FFF700FB074690B96FF0020055E03B69B0 -:103F500098450DD03F68002FF9D1414604F10C007F -:103F6000FFF7F0FA07460028EED0236A3B6027628D -:103F700097F817C006F01F08CCF3840CACEB0800D0 -:103F8000A8EB0C031FFA80FE0028B8BF0EF120003A -:103F90001FFA83FEB8BF00B2002B0793B8BF0EF123 -:103FA0002003D7E90221BCBF1BB2079352EA0103E9 -:103FB00038D0039B4FF0000CDFF820E39A1A049BE3 -:103FC00063EB010196457CEB01032BD36B7B97F8E8 -:103FD0001AE0734519D1029B002B78D0012821DC0F -:103FE0007868F8B9DFF8F0C2944570EB010316D396 -:103FF00037E0276A27B96FF00C0013B0BDE8F08FE7 -:104000003B699845B4D03F68F4E7B34890427CEBF5 -:10401000010301D30020F0E7029B002BFAD0079B9D -:104020000F2B17DCFA7DB3003946204602F003025D -:1040300003F07C031343FB75FFF706FB6B7BBB763A -:10404000029B3BB9FB7DC3F38402013262F386031A -:10405000FB75D0E76A7BBB7E9A42DBD1029B002BCB -:1040600035D0B309022B32D0039B142200210DA8B6 -:10407000BB60049BFB60FDF795FC039B0AA92046EF -:104080000A93049BADF83EB00B932B1D8DF840A016 -:104090000C932B7B8DF84180013BDBB2ADF83C30BB -:1040A000069B8DF84230059B8DF8433094F82C30F8 -:1040B00083F001038DF84430A3689847FB7DC3F378 -:1040C0008403013303F01F039B02FB82A2E7FB7D05 -:1040D000C6F34012B2EBD31F40F0F480C3F3840365 -:1040E000434540F0F280029AB6092B7B002A4DD05E -:1040F000F2075DD4032B40F2EB80039BAE1D3946E3 -:1041000004F10C00BB603246049BFB602B7B033B3D -:10411000DBB2FFF7ABFA00280CDA39462046FFF78E -:1041200093FAFB7DC3F38403013303F01F039B0267 -:10413000FB8209E7AB88DDE908843B834FF6FF7318 -:10414000C9F12000A9F1200228FA09F109F10809B2 -:1041500004FA00F024FA02F2014318461143C9B2EE -:10416000FFF7C6F9B9F1400F0346E9D1B8823146ED -:104170002A7B033AD2B2FFF7CBF9FB7DB882DA4350 -:10418000C2F3C01262F3C713FB7543E786B92E1D55 -:10419000013B394604F10C00DBB23246FFF766FA08 -:1041A0000028BADB2A7B3146B88A013AD2B2E2E76C -:1041B000F98A013BC1F30901DAB204295BD8281D51 -:1041C000002307F11B069A4208D910F801CB0133EE -:1041D00006F801C00131DBB20529F4D103999342FD -:1041E0000A9138BF043304992CBF002355FA83F396 -:1041F0000B9107F11B010C9179680E930D91291D0C -:10420000FB8AADF83EB0C3F309038DF840A08DF8EA -:1042100041801A44069B8DF84230059BADF83C2046 -:104220008DF8433094F82C3083F001038DF844303E -:104230000023B88A7B602A7B013AFFF769F93B8B40 -:10424000B882834203D1A3680AA920469847204632 -:104250000AA9FFF701FEFB7DBA8AC3F38403013389 -:1042600003F01F039B02FB823B8B9A420CBF002092 -:104270006FF01000C1E67B68002BAFD0052001E095 -:104280001C3033461E68002EFAD1091A2E1D081D57 -:10429000184401EB090C5FFA89F3BCF11B0F9DD8A0 -:1042A0009A429BD916F8013B09F1010900F8013B3C -:1042B000EFE76FF00900A0E66FF00A009DE66FF0EF -:1042C0000B009AE66FF00D0097E66FF00E0094E693 -:1042D0006FF00F0091E600BF40420F0080841E0087 -:1042E000EFF30983054968334A6B22F001024A6300 -:1042F00083F30988002383F31188704700EF00E0FF -:10430000302080F3118862B60D4B0E4AD96821F433 -:10431000E0610904090C0A430B49DA60D3F8FC2078 -:1043200042F08072C3F8FC20084AC2F8B01F11683E -:1043300041F0010111602022DA7783F822007047F2 -:1043400000ED00E00003FA0555CEACC5001000E01A -:10435000302310B583F311880E4B5B6813F40063B0 -:1043600014D0F1EE103AEFF309844FF08073683CFB -:10437000E361094BDB6B236684F3098801F0D8F90C -:1043800010B1064BA36110BD054BFBE783F3118809 -:10439000F9E700BF00ED00E000EF00E03F04000897 -:1043A0004204000808B5074B074A196801F03D01AF -:1043B000996053680BB190689847BDE80840FFF7D3 -:1043C000C7BF00BF00000240904F002008B5084B57 -:1043D0001968890901F03D018A019A60054AD3688C -:1043E0000BB110699847BDE80840FFF7B1BF00BFA7 -:1043F00000000240904F002008B5084B1968090CD6 -:1044000001F03D010A049A60054A53690BB19069B5 -:104410009847BDE80840FFF79BBF00BF000002407F -:10442000904F002008B5084B1968890D01F03D0137 -:104430008A059A60054AD3690BB1106A9847BDE8AE -:104440000840FFF785BF00BF00000240904F0020EA -:1044500008B5074B074A596801F03D01D960536A16 -:104460000BB1906A9847BDE80840FFF771BF00BFE5 -:1044700000000240904F002008B5084B5968890998 -:1044800001F03D018A01DA60054AD36A0BB1106B75 -:104490009847BDE80840FFF75BBF00BF000002403F -:1044A000904F002008B5084B5968090C01F03D01F8 -:1044B0000A04DA60054A536B0BB1906B9847BDE86C -:1044C0000840FFF745BF00BF00000240904F0020AA -:1044D00008B5084B5968890D01F03D018A05DA607D -:1044E000054AD36B0BB1106C9847BDE80840FFF745 -:1044F0002FBF00BF00000240904F002008B5074BBF -:10450000074A196801F03D019960536C0BB1906C3A -:104510009847BDE80840FFF71BBF00BF00040240FA -:10452000904F002008B5084B1968890901F03D013A -:104530008A019A60054AD36C0BB1106D9847BDE8AB -:104540000840FFF705BF00BF00040240904F002065 -:1045500008B5084B1968090C01F03D010A049A607E -:10456000054A536D0BB1906D9847BDE80840FFF7C1 -:10457000EFBE00BF00040240904F002008B5084B7A -:104580001968890D01F03D018A059A60054AD36DCD -:104590000BB1106E9847BDE80840FFF7D9BE00BFC9 -:1045A00000040240904F002008B5074B074A5968A5 -:1045B00001F03D01D960536E0BB1906E9847BDE894 -:1045C0000840FFF7C5BE00BF00040240904F002026 -:1045D00008B5084B5968890901F03D018A01DA6084 -:1045E000054AD36E0BB1106F9847BDE80840FFF73E -:1045F000AFBE00BF00040240904F002008B5084B3A -:104600005968090C01F03D010A04DA60054A536F4C -:104610000BB1906F9847BDE80840FFF799BE00BF07 -:1046200000040240904F002008B5084B5968890DDE -:1046300001F03D018A05DA60054AD36F13B1D2F863 -:1046400080009847BDE80840FFF782BE00040240A2 -:10465000904F002000230C4910B51A460B4C0B60FC -:1046600054F82300026001EB430004334260402B06 -:10467000F6D1074A4FF0FF339360D360C2F8083495 -:10468000C2F80C3410BD00BF904F0020107B000812 -:10469000000002400F28F8B510D9102810D01128BA -:1046A00011D0122808D10F240720DFF8B4E001262A -:1046B000DEF80050A04208D9002649E00446F4E79D -:1046C0000F240020F1E70724FBE706FA00F73D423C -:1046D00040D1214C4FEA001C3D4304EB00160EEB89 -:1046E000C000CEF80050C0E90123FBB24BB11B481B -:1046F000836B43F001038363036E43F0010303669E -:10470000036E17F47F4F09D01448836B43F0020304 -:104710008363036E43F002030366036E54F80C00D8 -:10472000036823F01F030360056815F00105FBD142 -:1047300004EB0C033D2493F80CC05F6804FA0CF4FE -:104740003C6021240560446112B1987B00F056F969 -:104750003046F8BD0130ADE7107B00080045025837 -:10476000904F002010B5302484F31188FFF792FF9A -:10477000002383F3118810BD10B50446807B00F040 -:1047800053F901231049627B03FA02F20B6823EA12 -:104790000203DAB20B604AB90C4A916B21F00101B5 -:1047A0009163116E21F001011166126E13F47F4FB7 -:1047B00009D1064B9A6B22F002029A631A6E22F01C -:1047C00002021A661B6E10BD904F00200045025871 -:1047D00008B5302383F31188FFF7CEFF002383F35E -:1047E000118808BD026843681143016003B118478E -:1047F00070470000024A136843F0C003136070471B -:104800000078004013B50E4C204600F0B7FA04F1D2 -:10481000140000234FF400720A49009400F074F968 -:10482000094B4FF40072094904F13800009400F07C -:10483000EDF9074A074BC4E9172302B010BD00BFCA -:104840001450002080500020F547000880520020BE -:104850000078004000E1F505037C30B5214C0029CB -:1048600018BF0C46012B0CD11F4B984209D11F4B8E -:104870009A6C42F080429A641A6F42F080421A6742 -:104880001B6F2268036EC16D03EB52038466B3FB9A -:10489000F2F36268150442BF23F0070503F0070333 -:1048A00043EA4503CB60A36843F040034B60E368F1 -:1048B00043F001038B6042F4967343F001030B60F5 -:1048C0004FF0FF330B62510505D512F0102205D0D1 -:1048D000B2F1805F04D080F8643030BD7F23FAE706 -:1048E0003F23F8E7107C00081450002000450258D0 -:1048F0002DE9F047C66D05463768F4692107346233 -:104900001AD014F0080118BF4FF48071E20748BFB5 -:1049100041F02001A3074FF0300348BF41F04001B0 -:10492000600748BF41F0800183F31188281DFFF71D -:1049300059FF002383F31188E2050AD5302383F35E -:1049400011884FF48061281DFFF74CFF002383F38B -:1049500011884FF030094FF0000A14F0200838D1C8 -:104960003B0616D54FF0300905F1380A200610D560 -:1049700089F31188504600F07DF9002836DA0821C5 -:10498000281DFFF72FFF27F080033360002383F3F8 -:104990001188790614D5620612D5302383F3118865 -:1049A000D5E913239A4208D12B6C33B127F0400785 -:1049B0001021281DFFF716FF3760002383F31188AD -:1049C000E30618D5AA6E1369ABB15069BDE8F0478C -:1049D000184789F31188736A284695F864101940BE -:1049E00000F0E6F98AF31188F469B6E7B06288F35B -:1049F0001188F469BAE7BDE8F0870000090100F109 -:104A00006043012203F56143C9B283F8001300F04B -:104A10001F039A4043099B0003F1604303F5614380 -:104A2000C3F880211A60704700F01F0301229A40EA -:104A3000430900F160409B0000F5614003F16043D1 -:104A400003F56143C3F88020C3F88021002380F878 -:104A500000337047F8B51546826804460B46AA42F3 -:104A600000D28568A1692669761AB5420BD218462C -:104A70002A46FCF771FFA3692B44A3612846A3686B -:104A80005B1BA360F8BD0CD9AF1B18463246FCF780 -:104A900063FF3A46E1683044FCF75EFFE3683B445D -:104AA000EBE718462A46FCF757FFE368E5E7000006 -:104AB00083689342F7B50446154600D28568D4E969 -:104AC0000460361AB5420BD22A46FCF745FF6369EB -:104AD0002B4463612846A3685B1BA36003B0F0BD51 -:104AE0000DD93246AF1B0191FCF736FF01993A46CA -:104AF000E0683144FCF730FFE3683B44E9E72A46CD -:104B0000FCF72AFFE368E4E710B50A440024C36118 -:104B1000029B8460C16002610362C0E90000C0E9D9 -:104B2000051110BD08B5D0E90532934201D1826864 -:104B300082B98268013282605A1C42611970002178 -:104B4000D0E904329A4224BFC368436100F09CFE5E -:104B5000002008BD4FF0FF30FBE7000070B53023A8 -:104B600004460E4683F31188A568A5B1A368A2691F -:104B7000013BA360531CA36115782269934224BFB3 -:104B8000E368A361E3690BB120469847002383F3F0 -:104B90001188284607E03146204600F065FE0028CF -:104BA000E2DA85F3118870BD2DE9F74F04460E4611 -:104BB00017469846D0F81C904FF0300A8AF31188B7 -:104BC0004FF0000B154665B12A4631462046FFF7E7 -:104BD00041FF034660B94146204600F045FE0028EB -:104BE000F1D0002383F31188781B03B0BDE8F08F68 -:104BF000B9F1000F03D001902046C847019B8BF309 -:104C00001188ED1A1E448AF31188DCE7C160C36184 -:104C1000009B82600362C0E905111144C0E90000F5 -:104C200001617047F8B504460D461646302383F3FC -:104C30001188A768A7B1A368013BA36063695A1CE8 -:104C400062611D70D4E904329A4224BFE368636153 -:104C5000E3690BB120469847002080F3118807E0F4 -:104C60003146204600F000FE0028E2DA87F3118882 -:104C7000F8BD0000D0E9052310B59A4201D1826841 -:104C80007AB982680021013282605A1C82611C78E4 -:104C900003699A4224BFC368836100F0F5FD204692 -:104CA00010BD4FF0FF30FBE72DE9F74F04460E46ED -:104CB00017469846D0F81C904FF0300A8AF31188B6 -:104CC0004FF0000B154665B12A4631462046FFF7E6 -:104CD000EFFE034660B94146204600F0C5FD0028BE -:104CE000F1D0002383F31188781B03B0BDE8F08F67 -:104CF000B9F1000F03D001902046C847019B8BF308 -:104D00001188ED1A1E448AF31188DCE702684368B3 -:104D10001143016003B11847704700001430FFF7DA -:104D200043BF00004FF0FF331430FFF73DBF0000DA -:104D30003830FFF7B9BF00004FF0FF333830FFF7CE -:104D4000B3BF00001430FFF709BF00004FF0FF3180 -:104D50001430FFF703BF00003830FFF763BF0000D7 -:104D60004FF0FF323830FFF75DBF0000012914BF5C -:104D70006FF0130000207047FFF744BD044B036041 -:104D800000234360C0E9023301230374704700BF6E -:104D9000287C000810B53023044683F31188FFF700 -:104DA0005BFD02230020237480F3118810BD0000F6 -:104DB00038B5C36904460D461BB904210844FFF702 -:104DC000A5FF294604F11400FFF7ACFE002806DA1F -:104DD000201D4FF40061BDE83840FFF797BF38BD94 -:104DE000026843681143016003B11847704700002F -:104DF00013B5406B00F58054D4F8A4381A681178C4 -:104E0000042914D1017C022911D1197901231289B5 -:104E10008B4013420BD101A94C3002F0E9F8D4F8D1 -:104E2000A4480246019B2179206800F0DFF902B016 -:104E300010BD0000143002F06BB800004FF0FF33DB -:104E4000143002F065B800004C3002F03DB90000AB -:104E50004FF0FF334C3002F037B90000143002F04D -:104E600039B800004FF0FF31143002F033B80000C1 -:104E70004C3002F009B900004FF0FF324C3002F024 -:104E800003B900000020704710B500F58054D4F835 -:104E9000A4381A681178042917D1017C022914D189 -:104EA0005979012352898B4013420ED1143001F0FD -:104EB000CBFF024648B1D4F8A4484FF4407361795F -:104EC0002068BDE8104000F07FB910BD406BFFF7CF -:104ED000DBBF0000704700007FB5124B01250426A0 -:104EE000044603600023057400F1840243602946F0 -:104EF000C0E902330C4B0290143001934FF440731D -:104F0000009601F07DFF094B04F69442294604F116 -:104F10004C000294CDE900634FF4407302F044F872 -:104F200004B070BD507C0008CD4E0008F14D000863 -:104F30000A68302383F311880B790B3342F823007E -:104F40004B79133342F823008B7913B10B3342F8BA -:104F5000230000F58053C3F8A41802230374002033 -:104F600080F311887047000038B5037F044613B101 -:104F700090F85430ABB90125201D0221FFF730FF16 -:104F800004F114006FF00101257700F089FC04F1B1 -:104F90004C0084F854506FF00101BDE8384000F037 -:104FA0007FBC38BD10B5012104460430FFF718FF5F -:104FB0000023237784F8543010BD000038B5044630 -:104FC0000025143001F034FF04F14C00257702F085 -:104FD00003F8201D84F854500121FFF701FF2046FB -:104FE000BDE83840FFF750BF90F8803003F0600311 -:104FF000202B06D190F881200023212A03D81F2AD4 -:1050000006D800207047222AFBD1C0E91D3303E0F7 -:10501000034A426707228267C3670120704700BFC7 -:105020003C23002037B500F58055D5F8A4381A6820 -:10503000117804291AD1017C022917D11979012389 -:1050400012898B40134211D100F14C04204602F02A -:1050500083F858B101A9204601F0CAFFD5F8A44849 -:105060000246019B2179206800F0C0F803B030BDF2 -:1050700001F10B03F0B550F8236085B004460D46EE -:10508000FEB1302383F3118804EB8507301D08211E -:10509000FFF7A6FEFB6806F14C005B691B681BB1BD -:1050A000019001F0B3FF019803A901F0A1FF0246AE -:1050B00048B1039B2946204600F098F8002383F36B -:1050C000118805B0F0BDFB685A691268002AF5D056 -:1050D0001B8A013B1340F1D104F18002EAE7000092 -:1050E000133138B550F82140ECB1302383F31188E7 -:1050F00004F58053D3F8A4281368527903EB820394 -:10510000DB689B695D6845B104216018FFF768FEA4 -:10511000294604F1140001F0A1FE2046FFF7B4FE79 -:10512000002383F3118838BD7047000001F074B983 -:1051300001234022002110B5044600F8303BFCF763 -:1051400031FC0023C4E9013310BD000010B5302349 -:10515000044683F311882422416000210C30FCF7BF -:1051600021FC204601F07AF902230020237080F30D -:10517000118810BD70B500EB8103054650690E46DD -:105180001446DA6018B110220021FCF70BFCA0696C -:1051900018B110220021FCF705FC31462846BDE875 -:1051A000704001F05BBA000083682022002103F008 -:1051B000011310B5044683601030FCF7F3FB204662 -:1051C000BDE8104001F0D6BAF0B4012500EB81042F -:1051D00047898D40E4683D43A469458123600023ED -:1051E000A2606360F0BC01F0F3BA0000F0B40125E6 -:1051F00000EB810407898D40E4683D4364690581C3 -:1052000023600023A2606360F0BC01F069BB000072 -:1052100070B5022300250446242203702946C0F8F5 -:1052200088500C3040F8045CFCF7BCFB204684F846 -:10523000705001F0A7F963681B6823B12946204626 -:10524000BDE87040184770BD0378052B10B50446C3 -:105250000AD080F88C300523037043681B680BB1BB -:10526000042198470023A36010BD000001780529A0 -:1052700006D190F88C20436802701B6803B1184770 -:105280007047000070B590F87030044613B10023E9 -:1052900080F8703004F18002204601F08FFA6368D4 -:1052A0009B68B3B994F8803013F0600535D00021C5 -:1052B000204601F081FD0021204601F071FD636868 -:1052C0001B6813B1062120469847062384F87030E6 -:1052D00070BD204698470028E4D0B4F88630A26F0D -:1052E0009A4288BFA36794F98030A56F002B4FF0D6 -:1052F000300380F20381002D00F0F280092284F84F -:10530000702083F3118800212046D4E91D23FFF784 -:105310006DFF002383F31188DAE794F8812003F00E -:105320007F0343EA022340F20232934200F0C58039 -:1053300021D8B3F5807F48D00DD8012B3FD0022B68 -:1053400000F09380002BB2D104F188026267022240 -:10535000A267E367C1E7B3F5817F00F09B80B3F5F7 -:10536000407FA4D194F88230012BA0D1B4F88830CA -:1053700043F0020332E0B3F5006F4DD017D8B3F518 -:10538000A06F31D0A3F5C063012B90D8636820468D -:1053900094F882205E6894F88310B4F88430B047A3 -:1053A000002884D0436863670368A3671AE0B3F5F5 -:1053B000106F36D040F6024293427FF478AF5C4BD8 -:1053C00063670223A3670023C3E794F88230012BAD -:1053D0007FF46DAFB4F8883023F00203A4F888306E -:1053E000C4E91D55E56778E7B4F88030B3F5A06FE0 -:1053F0000ED194F88230204684F88A3001F020F9EA -:1054000063681B6813B1012120469847032323706A -:105410000023C4E91D339CE704F18B036367012378 -:10542000C3E72378042B10D1302383F3118820465F -:10543000FFF7BAFE85F311880321636884F88B5067 -:1054400021701B680BB12046984794F88230002BDE -:10545000DED084F88B300423237063681B68002B34 -:10546000D6D0022120469847D2E794F884302046CF -:105470001D0603F00F010AD501F092F9012804D0AE -:1054800002287FF414AF2B4B9AE72B4B98E701F0DF -:1054900079F9F3E794F88230002B7FF408AF94F8A1 -:1054A000843013F00F01B3D01A06204602D501F064 -:1054B0009BFCADE701F08CFCAAE794F88230002B4E -:1054C0007FF4F5AE94F8843013F00F01A0D01B06E2 -:1054D000204602D501F070FC9AE701F061FC97E7E5 -:1054E000142284F8702083F311882B462A4629461B -:1054F0002046FFF769FE85F31188E9E65DB11522C4 -:1055000084F8702083F3118800212046D4E91D23FC -:10551000FFF75AFEFDE60B2284F8702083F3118812 -:105520002B462A4629462046FFF760FEE3E700BFE8 -:10553000807C0008787C00087C7C000838B590F8F6 -:1055400070300446002B3ED0063BDAB20F2A34D826 -:105550000F2B32D8DFE803F03731310822323131F6 -:105560003131313131313737856FB0F886309D4276 -:1055700014D2C3681B8AB5FBF3F203FB12556DB955 -:10558000302383F311882B462A462946FFF72EFE47 -:1055900085F311880A2384F870300EE0142384F810 -:1055A0007030302383F31188002320461A461946B1 -:1055B000FFF70AFE002383F3118838BDC36F03B1E0 -:1055C00098470023E7E70021204601F0F5FB002182 -:1055D000204601F0E5FB63681B6813B106212046F5 -:1055E00098470623D7E7000010B590F870300446BE -:1055F000142B29D017D8062B05D001D81BB110BD0C -:10560000093B022BFBD80021204601F0D5FB0021ED -:10561000204601F0C5FB63681B6813B106212046D4 -:105620009847062319E0152BE9D10B2380F8703039 -:10563000302383F3118800231A461946FFF7D6FD5D -:10564000002383F31188DAE7C3689B695B68002B4A -:10565000D5D1C36F03B19847002384F87030CEE7EB -:1056600000238268037503691B6899689142FBD225 -:105670005A68036042601060586070470023826877 -:10568000037503691B6899689142FBD85A680360E7 -:10569000426010605860704708B50846302383F3B5 -:1056A00011880B7D032B05D0042B0DD02BB983F370 -:1056B000118808BD8B6900221A604FF0FF338361A7 -:1056C000FFF7CEFF0023F2E7D1E9003213605A6002 -:1056D000F3E70000FFF7C4BF054BD96808751868E9 -:1056E000026853601A600122D8600275FAF792BE10 -:1056F000805400200C4B30B5DD684B1C87B004464D -:105700000FD02B46094A684600F05EF92046FFF7A5 -:10571000E3FF009B13B1684600F060F9A86907B089 -:1057200030BDFFF7D9FFF9E78054002099560008F3 -:10573000044B1A68DB6890689B68984294BF00200D -:105740000120704780540020084B10B51C68D868B1 -:10575000226853601A600122DC602275FFF78EFF19 -:1057600001462046BDE81040FAF754BE80540020A0 -:1057700038B5074C012300250649074823706560AA -:1057800001F028FD0223237085F3118838BD00BF86 -:10579000E8560020887C00088054002008B572B6C6 -:1057A000044B186500F060FC00F026FD024B03225C -:1057B0001A70FEE780540020E856002000F044B93B -:1057C000034A516853685B1A9842FBD8704700BF80 -:1057D000001000E08B600223086108468B8270474E -:1057E0008368A3F1840243F8142C026943F8442C23 -:1057F000426943F8402C094A43F8242CC268A3F1BB -:10580000200043F8182C022203F80C2C002203F885 -:105810000B2C034A43F8102C704700BF2D040008DE -:105820008054002008B5FFF7DBFFBDE80840FFF714 -:1058300051BF0000024BDB6898610F20FFF74CBF9F -:1058400080540020302383F31188FFF7F3BF00005A -:1058500008B50146302383F311880820FFF74AFF7B -:10586000002383F3118808BD064BDB6839B1426819 -:1058700018605A60136043600420FFF73BBF4FF08D -:10588000FF307047805400200368984206D01A68A1 -:105890000260506018469961FFF71CBF7047000016 -:1058A00038B504460D462068844200D138BD0368EF -:1058B00023605C608561FFF70DFFF4E7036810B5B6 -:1058C0009C68A2420CD85C688A600B604C602160C6 -:1058D000596099688A1A9A604FF0FF33836010BD4F -:1058E000121B1B68ECE700000A2938BF0A2170B5BB -:1058F00004460D460A26601901F064FC01F04CFCD8 -:10590000041BA54203D8751C04462E46F3E70A2E55 -:1059100004D90120BDE8704001F09CBC70BD0000BE -:10592000F8B5144B0D460A2A4FF00A07D96103F166 -:105930001001826038BF0A22416019691446016073 -:1059400048601861A81801F02DFC01F025FC431BEC -:105950000646A34206D37C1C28192746354601F08B -:1059600031FCF2E70A2F04D90120BDE8F84001F02C -:1059700071BCF8BD80540020F8B506460D4601F014 -:105980000BFC0F4A134653F8107F9F4206D12A465C -:1059900001463046BDE8F840FFF7C2BFD169BB6899 -:1059A000441A2C1928BF2C46A34202D92946FFF7D6 -:1059B0009BFF224631460348BDE8F840FFF77EBF13 -:1059C0008054002090540020C0E90323002310B429 -:1059D0005DF8044B4361FFF7CFBF000010B5194CD1 -:1059E000236998420DD08168D0E9003213605A6073 -:1059F0009A680A449A60002303604FF0FF33A36162 -:105A000010BD0268234643F8102F53600022026045 -:105A100022699A4203D1BDE8104001F0CDBB9368E2 -:105A200081680B44936001F0B7FB2269E1699268D9 -:105A3000441AA242E4D91144BDE81040091AFFF704 -:105A400053BF00BF805400202DE9F047DFF8BC8031 -:105A500008F110072C4ED8F8105001F09DFBD8F833 -:105A60001C40AA68031B9A423ED814444FF0000918 -:105A7000D5E90032C8F81C4013605A60C5F80090A0 -:105A8000D8F81030B34201D101F096FB89F31188A8 -:105A9000D5E9033128469847302383F311886B6991 -:105AA000002BD8D001F078FB6A69A0EB040982468C -:105AB0004A450DD2022001F0CDFB0022D8F810306B -:105AC000B34208D151462846BDE8F047FFF728BF4A -:105AD000121A2244F2E712EB09092946384638BF68 -:105AE0004A46FFF7EBFEB5E7D8F81030B34208D0CE -:105AF0001444C8F81C00211AA960BDE8F047FFF75C -:105B0000F3BEBDE8F08700BF905400208054002011 -:105B100038B501F041FB054AD2E90845031B1819C5 -:105B200045F10001C2E9080138BD00BF80540020E2 -:105B300000207047FEE70000704700004FF0FF3084 -:105B40007047000002290CD0032904D0012907481E -:105B500018BF00207047032A05D8054800EBC20093 -:105B60007047044870470020704700BF607D000800 -:105B70004C230020147D000870B59AB005460846F5 -:105B8000144601A900F0C2F801A8FBF703FF431C6B -:105B90000022C6B25B001046C5E90034237003231F -:105BA000023404F8013C01ABD1B202348E4201D878 -:105BB0001AB070BD13F8011B013204F8010C04F88F -:105BC000021CF1E708B5302383F311880348FFF77F -:105BD00029FA002383F3118808BD00BFF056002086 -:105BE00090F8803003F01F02012A07D190F881203D -:105BF0000B2A03D10023C0E91D3315E003F0600335 -:105C0000202B08D1B0F884302BB990F88120212ABC -:105C100003D81F2A04D8FFF7E7B9222AEBD0FAE706 -:105C2000034A426707228267C3670120704700BFAB -:105C30004323002007B5052917D8DFE801F019161E -:105C400003191920302383F31188104A0121019090 -:105C5000FFF790FA019802210D4AFFF78BFA0D48E1 -:105C6000FFF7ACF9002383F3118803B05DF804FB60 -:105C7000302383F311880748FFF776F9F2E73023E2 -:105C800083F311880348FFF78DF9EBE7B47C000834 -:105C9000D87C0008F056002038B50C4D0C4C2A4634 -:105CA0000C4904F10800FFF767FF05F1CA0204F18F -:105CB00010000949FFF760FF05F5CA7204F11800EA -:105CC0000649BDE83840FFF757BF00BFC86F002046 -:105CD0004C230020947C00089E7C0008A97C0008CE -:105CE00070B5044608460D46FBF754FEC6B2204682 -:105CF000013403780BB9184670BD32462946FBF7CC -:105D000035FE0028F3D10120F6E700002DE9F04729 -:105D100005460C46FBF73EFE2A49C6B22846FFF769 -:105D2000DFFF08B10936F6B227492846FFF7D8FF4A -:105D300008B11036F6B2632E0BD8DFF88880DFF892 -:105D40008890224FDFF890A02E7846B92670BDE8E3 -:105D5000F08729462046BDE8F04701F049BE252ED0 -:105D60002CD1072241462846FBF700FE60B9184BAC -:105D7000224603F1100153F8040B8B4242F8040B46 -:105D8000F9D107351034DFE7082249462846FBF7EA -:105D9000EDFD98B9A21C0F4B197802320909C95DB3 -:105DA00002F8041C13F8011B01F00F015345C95DF3 -:105DB00002F8031CF0D118340835C5E7013504F8A2 -:105DC000016BC1E7807D0008A97C0008887D000880 -:105DD0000E7A000800E8F11F0CE8F11FBFF34F8FA7 -:105DE000044B1A695107FCD1D3F810215207F8D19E -:105DF000704700BF0020005208B50D4B1B78ABB9AF -:105E0000FFF7ECFF0B4BDA68D10704D50A4A5A605A -:105E100002F188325A60D3F80C21D20706D5064A1F -:105E2000C3F8042102F18832C3F8042108BD00BF81 -:105E300026720020002000522301674508B5114B4F -:105E40001B78F3B9104B1A69510703D5DA6842F091 -:105E50004002DA60D3F81021520705D5D3F80C219F -:105E600042F04002C3F80C21FFF7B8FF064BDA6896 -:105E700042F00102DA60D3F80C2142F00102C3F8CB -:105E80000C2108BD26720020002000520F289ABF66 -:105E900000F5806040040020704700004FF400309F -:105EA00070470000102070470F2808B50BD8FFF787 -:105EB000EDFF00F500330268013204D10430834263 -:105EC000F9D1012008BD0020FCE700000F2838B5FB -:105ED00005463FD8FFF782FF1F4CFFF78DFF4FF0BD -:105EE000FF3307286361C4F814311DD82361FFF71D -:105EF00075FF030243F02403E360E36843F080038B -:105F0000E36023695A07FCD42846FFF767FFFFF7D1 -:105F1000BDFF4FF4003100F04BF92846FFF78EFF2C -:105F2000BDE83840FFF7C0BFC4F81031FFF756FF97 -:105F3000A0F108031B0243F02403C4F80C31D4F889 -:105F40000C3143F08003C4F80C31D4F810315B07F6 -:105F5000FBD4D9E7002038BD002000522DE9F84FCE -:105F600005460C46104645EA0203DE0602D0002034 -:105F7000BDE8F88F20F01F00DFF8BCB0DFF8BCA050 -:105F8000FFF73AFF04EB0008444503D10120FFF777 -:105F900055FFEDE720222946204601F0F7FC10B915 -:105FA00020352034F0E72B4605F120021F68791CCC -:105FB000DDD104339A42F9D105F178431B481C4ED8 -:105FC000B3F5801F1B4B38BF184603F1F80332BFEF -:105FD000D946D1461E46FFF701FF0760A5EB040C2A -:105FE000336804F11C0143F002033360231FD9F826 -:105FF000007017F00507FAD153F8042F8B424CF8C4 -:106000000320F4D1BFF34F8FFFF7E8FE4FF0FF33CB -:106010002022214603602846336823F002033360C0 -:1060200001F0B4FC0028BBD03846B0E71421005280 -:106030000C20005214200052102000521021005257 -:1060400010B5084C237828B11BB9FFF7D5FE012302 -:10605000237010BD002BFCD02070BDE81040FFF76E -:10606000EDBE00BF2672002038B5054D0024033474 -:10607000696855F80C0B00F0ADF8122CF7D138BD5B -:106080009C7D0008084601F079BC000038B5EFF3AC -:1060900011859DB9EFF30584C4F30804302334B1AE -:1060A00083F31188FFF734FD85F3118838BD83F33E -:1060B0001188FFF72DFD84F3118838BDBDE8384005 -:1060C000FFF726BD10B5FFF7E1FF104CC008104ADE -:1060D000002340EA4170C908A0FB04ECA0FB020EBB -:1060E0001CEB0000A1FB044CA1FB02125B41001958 -:1060F00043EB0C0011EB0E0142F10002411842F19A -:106100000000090941EA007010BD00BFCFF753E35A -:10611000A59BC4200244074BD2B210B5904200D1D7 -:1061200010BD441C00B253F8200041F8040BE0B24B -:10613000F4E700BF504000580E4B30B51C6F2404EC -:1061400005D41C6F1C671C6F44F400441C670A4C88 -:1061500002442368D2B243F480732360074B904219 -:1061600000D130BD441C51F8045B00B243F820500C -:10617000E0B2F4E70044025800480258504000588A -:1061800007B5012201A90020FFF7C4FF019803B061 -:106190005DF804FB13B50446FFF7F2FFA04205D0FB -:1061A000012201A900200194FFF7C6FF02B010BD33 -:1061B0000144BFF34F8F064B884204D3BFF34F8F88 -:1061C000BFF36F8F7047C3F85C022030F4E700BF65 -:1061D00000ED00E00144BFF34F8F064B884204D32B -:1061E000BFF34F8FBFF36F8F7047C3F8700220303B -:1061F000F4E700BF00ED00E070470000074B45F2F8 -:1062000055521A6002225A6040F6FF729A604CF6AC -:10621000CC421A600122024B1A70704700480058A5 -:106220002C720020034B1B781BB1034B4AF6AA22A9 -:106230001A6070472C72002000480058034B1A68FF -:106240001AB9034AD2F8D0241A6070472872002085 -:1062500000400258024B4FF48032C3F8D0247047FC -:106260000040025808B5FFF7E9FF024B1868C0F379 -:10627000806008BD2872002070B5BFF34F8FBFF358 -:106280006F8F1A4A0021C2F85012BFF34F8FBFF32D -:106290006F8F536943F400335361BFF34F8FBFF3E4 -:1062A0006F8FC2F88410BFF34F8FD2F8803043F65F -:1062B000E074C3F3C900C3F34E335B0103EA040681 -:1062C000014646EA81750139C2F86052F9D2203B95 -:1062D00013F1200FF2D1BFF34F8F536943F4803392 -:1062E0005361BFF34F8FBFF36F8F70BD00ED00E0C0 -:1062F000FEE70000214B2248224A70B5904237D376 -:10630000214BC11EDA1C121A22F003028B4238BF45 -:1063100000220021FBF746FB1C4A0023C2F8843010 -:10632000BFF34F8FD2F8803043F6E074C3F3C90057 -:10633000C3F34E335B0103EA0406014646EA817566 -:106340000139C2F86C52F9D2203B13F1200FF2D17F -:10635000BFF34F8FBFF36F8FBFF34F8FBFF36F8FBD -:106360000023C2F85032BFF34F8FBFF36F8F70BD61 -:1063700053F8041B40F8041BC0E700BF308000083E -:1063800000740020007400200074002000ED00E084 -:10639000054B996B21EA000199631A6E22EA00020B -:1063A0001A661B6E704700BF0045025870B5D0E9F1 -:1063B000244300224FF0FF359E6804EB4213510145 -:1063C000D3F80009002805DAD3F8000940F080402E -:1063D000C3F80009D3F8000B002805DAD3F8000B46 -:1063E00040F08040C3F8000B013263189642C3F8B6 -:1063F0000859C3F8085BE0D24FF00113C4F81C3809 -:1064000070BD0000890141F02001016103699B0614 -:10641000FCD41220FFF7D4B910B50A4C2046FEF781 -:1064200087FE094BC4F89030084BC4F89430084CF0 -:106430002046FEF77DFE074BC4F89030064BC4F8AB -:10644000943010BD3072002000000840087E000823 -:10645000CC72002000000440147E000870B5037860 -:106460000546012B58D13F4BD0F89040984254D16B -:106470003D4B0E2165209A6B42F000629A631A6EC2 -:1064800042F000621A661B6E384BD3F8802042F04F -:106490000062C3F88020D3F8802022F00062C3F8A5 -:1064A0008020D3F88030FEF7A9FA314BE360314BFE -:1064B000C4F800380023D5F89060C4F8003EC0232B -:1064C00023604FF40413A3633369002BFCDA012328 -:1064D0000C203361FFF774F93369DB07FCD4122019 -:1064E000FFF76EF93369002BFCDA00262846A66018 -:1064F000FFF75CFF6B68C4F81068DB68C4F81468C9 -:10650000C4F81C6863BB1C4BA3614FF0FF3363618D -:10651000A36843F00103A36070BD184B9842C9D132 -:10652000114B4FF080609A6B42F000729A631A6EC2 -:1065300042F000721A661B6E0C4BD3F8802042F0BA -:106540000072C3F88020D3F8802022F00072C3F8D4 -:106550008020D3F88030FFF71BFF0E214D20A2E7EB -:10656000074BD1E730720020004502580044025822 -:106570004014004003002002003C30C0CC720020D8 -:10658000083C30C0F8B5D0F89040054600214FF0E7 -:1065900000662046FFF736FFD5F8941000234FF031 -:1065A00001128F684FF0FF30C4F83438C4F81C284B -:1065B00004EB431201339F42C2F80069C2F8006B3A -:1065C000C2F80809C2F8080BF2D20B68D5F890207F -:1065D000C5F89830636210231361166916F010062F -:1065E000FBD11220FFF7ECF8D4F8003823F4FE6357 -:1065F000C4F80038A36943F4402343F01003A361B7 -:106600000923C4F81038C4F814380B4BEB604FF072 -:10661000C043C4F8103B094BC4F8003BC4F81069F0 -:10662000C4F80039D5F8983003F1100243F4801310 -:10663000C5F89820A362F8BDE47D000840800010F2 -:10664000D0F8902090F88A10D2F8003823F4FE6336 -:1066500043EA0113C2F80038704700002DE9F843FF -:1066600000EB8103D0F890500C468046DA680FFAB0 -:1066700081F94801166806F00306731E022B05EB2C -:1066800041134FF0000194BFB604384EC3F8101BFD -:106690004FF0010104F1100398BF06F1805601FA92 -:1066A00003F3916998BF06F5004600293AD0578A4E -:1066B00004F15801374349016F50D5F81C180B43BA -:1066C0000021C5F81C382B180127C3F81019A74062 -:1066D0005369611E9BB3138A928B9B08012A88BF62 -:1066E0005343D8F89820981842EA034301F1400236 -:1066F0002146C8F89800284605EB82025360FFF750 -:1067000081FE08EB8900C3681B8A43EA845348343E -:106710001E4364012E51D5F81C381F43C5F81C7860 -:10672000BDE8F88305EB4917D7F8001B21F40041B9 -:10673000C7F8001BD5F81C1821EA0303C0E704F1D1 -:106740003F030B4A2846214605EB83035A60FFF7B7 -:1067500059FE05EB4910D0F8003923F40043C0F886 -:106760000039D5F81C3823EA0707D7E70080001066 -:1067700000040002D0F894201268C0F89820FFF7B7 -:1067800015BE00005831D0F8903049015B5813F421 -:10679000004004D013F4001F0CBF022001207047FA -:1067A0004831D0F8903049015B5813F4004004D0D0 -:1067B00013F4001F0CBF02200120704700EB810181 -:1067C000CB68196A0B6813604B6853607047000010 -:1067D00000EB810330B5DD68AA691368D36019B98D -:1067E000402B84BF402313606B8A1468D0F890203C -:1067F0001C4402EB4110013C09B2B4FBF3F46343C7 -:10680000033323F0030343EAC44343F0C043C0F817 -:10681000103B2B6803F00303012B0ED1D2F808388C -:1068200002EB411013F4807FD0F8003B14BF43F01B -:10683000805343F00053C0F8003B02EB4112D2F802 -:10684000003B43F00443C2F8003B30BD2DE9F0416A -:10685000D0F8906005460C4606EB4113D3F8087B50 -:106860003A07C3F8087B08D5D6F814381B0704D5B7 -:1068700000EB8103DB685B689847FA071FD5D6F801 -:106880001438DB071BD505EB8403D968CCB98B69B9 -:10689000488A5A68B2FBF0F600FB16228AB91868DB -:1068A000DA6890420DD2121AC3E90024302383F330 -:1068B000118821462846FFF78BFF84F31188BDE835 -:1068C000F081012303FA04F26B8923EA02036B814E -:1068D000CB68002BF3D021462846BDE8F04118478D -:1068E00000EB81034A0170B5DD68D0F890306C6927 -:1068F0002668E66056BB1A444FF40020C2F810091F -:106900002A6802F00302012A0AB20ED1D3F808085D -:1069100003EB421410F4807FD4F8000914BF40F058 -:10692000805040F00050C4F8000903EB4212D2F846 -:10693000000940F00440C2F800090122D3F83408ED -:1069400002FA01F10143C3F8341870BD19B9402EA1 -:1069500084BF4020206020681A442E8A8419013C9C -:10696000B4FBF6F440EAC44040F00050C6E7000033 -:106970002DE9F843D0F8906005460C464F0106EB30 -:106980004113D3F8088918F0010FC3F808891CD007 -:10699000D6F81038DB0718D500EB8103D3F80CC00C -:1069A000DCF81430D3F800E0DA68964530D2A2EB78 -:1069B0000E024FF000091A60C3F80490302383F3ED -:1069C0001188FFF78DFF89F3118818F0800F1DD013 -:1069D000D6F834380126A640334217D005EB84039D -:1069E0000134D5F89050D3F80CC0E4B22F44DCF851 -:1069F000142005EB0434D2F800E05168714514D33B -:106A0000D5F8343823EA0606C5F83468BDE8F883BB -:106A1000012303FA01F2038923EA02030381DCF86C -:106A20000830002BD1D09847CFE7AEEB0103BCF87C -:106A30001000834228BF0346D7F8180980B2B3EB91 -:106A4000800FE3D89068A0F1040959F8048FC4F8C6 -:106A50000080A0EB09089844B8F1040FF5D8184459 -:106A60000B4490605360C8E72DE9F84FD0F8905080 -:106A700004466E69AB691E4016F480586E6103D0FF -:106A8000BDE8F84FFEF7C4BB002E12DAD5F8003E81 -:106A90009B0705D0D5F8003E23F00303C5F8003E60 -:106AA000D5F80438204623F00103C5F80438FEF772 -:106AB000DDFB370505D52046FFF778FC2046FEF7BD -:106AC000C3FBB0040CD5D5F8083813F0060FEB68FB -:106AD00023F470530CBF43F4105343F4A053EB6002 -:106AE00031071BD56368DB681BB9AB6923F008036A -:106AF000AB612378052B0CD1D5F8003E9A0705D061 -:106B0000D5F8003E23F00303C5F8003E2046FEF70B -:106B1000ADFB6368DB680BB120469847F30200F1D8 -:106B2000BA80B70226D5D4F8909000274FF0010A1A -:106B300009EB4712D2F8003B03F44023B3F5802F52 -:106B400011D1D2F8003B002B0DDA62890AFA07F363 -:106B500022EA0303638104EB8703DB68DB6813B17C -:106B60003946204698470137D4F89430FFB29B68E5 -:106B70009F42DDD9F00619D5D4F89000026AC2F31D -:106B80000A1702F00F0302F4F012B2F5802F00F0A2 -:106B9000CA80B2F5402F09D104EB8303002200F52F -:106BA0008050DB681B6A974240F0B0803003D5F814 -:106BB000185835D5E90303D500212046FFF746FED6 -:106BC000AA0303D501212046FFF740FE6B0303D53E -:106BD00002212046FFF73AFE2F0303D5032120466A -:106BE000FFF734FEE80203D504212046FFF72EFE0E -:106BF000A90203D505212046FFF728FE6A0203D526 -:106C000006212046FFF722FE2B0203D5072120464E -:106C1000FFF71CFEEF0103D508212046FFF716FE03 -:106C2000700340F1A780E90703D500212046FFF754 -:106C30009FFEAA0703D501212046FFF799FE6B07A7 -:106C400003D502212046FFF793FE2F0703D503212A -:106C50002046FFF78DFEEE0603D504212046FFF700 -:106C600087FEA80603D505212046FFF781FE6906A9 -:106C700003D506212046FFF77BFE2A0603D5072110 -:106C80002046FFF775FEEB0574D520460821BDE8C8 -:106C9000F84FFFF76DBED4F890904FF0000B4FF017 -:106CA000010AD4F894305FFA8BF79B689F423FF655 -:106CB00038AF09EB4713D3F8002902F44022B2F5AC -:106CC000802F20D1D3F80029002A1CDAD3F800291C -:106CD00042F09042C3F80029D3F80029002AFBDBD8 -:106CE0003946D4F89000FFF78DFB22890AFA07F3A2 -:106CF00022EA0303238104EB8703DB689B6813B15B -:106D00003946204698470BF1010BCAE7910701D19C -:106D1000D0F80080072A02F101029CBF03F8018B22 -:106D20004FEA18283FE704EB830300F58050DA6848 -:106D3000D2F818C0DCF80820DCE9001CA1EB0C0C30 -:106D400000218F4208D1DB689B699A683A449A60B7 -:106D50005A683A445A6029E711F0030F01D1D0F87C -:106D600000808C4501F1010184BF02F8018B4FEADC -:106D70001828E6E7BDE8F88F08B50348FFF774FE6A -:106D8000BDE80840FDF7E4BA3072002008B50348BA -:106D9000FFF76AFEBDE80840FDF7DABACC720020C2 -:106DA000D0F8903003EB4111D1F8003B43F40013CD -:106DB000C1F8003B70470000D0F8903003EB411160 -:106DC000D1F8003943F40013C1F8003970470000CE -:106DD000D0F8903003EB4111D1F8003B23F40013BD -:106DE000C1F8003B70470000D0F8903003EB411130 -:106DF000D1F8003923F40013C1F8003970470000BE -:106E000030B50433039C0172002104FB0325C160EB -:106E1000C0E90653049B0363059BC0E90000C0E979 -:106E20000422C0E90842C0E90A11436330BD0000F2 -:106E30000022416AC260C0E90411C0E90A226FF071 -:106E40000101FEF72DBD0000D0E90432934201D1CB -:106E5000C2680AB9181D704700207047036919609D -:106E60000021C2680132C260C26913448269934240 -:106E7000036124BF436A0361FEF706BD38B50446CB -:106E80000D46E3683BB162690020131D1268A362DE -:106E90001344E36207E0237A33B929462046FEF71C -:106EA000E3FC0028EDDA38BD6FF00100FBE70000DD -:106EB000C368C269013BC36043691344826993425A -:106EC000436124BF436A436100238362036B03B1C0 -:106ED0001847704770B53023044683F31188866ADB -:106EE0003EB9FFF7CBFF054618B186F31188284657 -:106EF00070BDA36AE26A13F8015B9342A36202D3F6 -:106F00002046FFF7D5FF002383F31188EFE7000049 -:106F10002DE9F84F04460E46174698464FF03009C3 -:106F200089F311880025AA46D4F828B0BBF1000FD8 -:106F300009D141462046FFF7A1FF20B18BF311880C -:106F40002846BDE8F88FD4E90A12A7EB050B521AC0 -:106F5000934528BF9346BBF1400F1BD9334601F13F -:106F6000400251F8040B914243F8040BF9D1A36A93 -:106F7000403640354033A362D4E90A239A4202D313 -:106F80002046FFF795FF8AF31188BD42D8D289F3D6 -:106F90001188C9E730465A46FAF7DEFCA36A5E4418 -:106FA0005D445B44A362E7E710B5029C04330172C1 -:106FB00003FB0421C460C0E906130023C0E90A33BF -:106FC000039B0363049BC0E90000C0E90422C0E9FD -:106FD0000842436310BD0000026A6FF00101C26005 -:106FE000426AC0E904220022C0E90A22FEF758BC26 -:106FF000D0E904239A4201D1C26822B9184650F858 -:10700000043B0B60704700231846FAE7C368002171 -:10701000C2690133C3604369134482699342436187 -:1070200024BF436A4361FEF72FBC000038B5044615 -:107030000D46E3683BB1236900201A1DA262E26994 -:107040001344E36207E0237A33B929462046FEF76A -:107050000BFC0028EDDA38BD6FF00100FBE7000003 -:1070600003691960C268013AC260C2691344826947 -:107070009342036124BF436A036100238362036B6D -:1070800003B118477047000070B530230D46044621 -:10709000114683F31188866A2EB9FFF7C7FF10B136 -:1070A00086F3118870BDA36A1D70A36AE26A01337A -:1070B0009342A36204D3E16920460439FFF7D0FF6D -:1070C000002080F31188EDE72DE9F84F04460D46C6 -:1070D000904699464FF0300A8AF311880026B3464D -:1070E000A76A4FB949462046FFF7A0FF20B187F3B2 -:1070F00011883046BDE8F88FD4E90A073A1AA8EBA0 -:107100000607974228BF1746402F1BD905F14003B9 -:1071100055F8042B9D4240F8042BF9D1A36A403660 -:107120004033A362D4E90A239A4204D3E16920469A -:107130000439FFF795FF8BF311884645D9D28AF3BE -:107140001188CDE729463A46FAF706FCA36A3D4482 -:107150003E443B44A362E5E7D0E904239A4217D1B9 -:10716000C3689BB1836A8BB1043B9B1A0ED013603A -:10717000C368013BC360C3691A4483699A420261D0 -:1071800024BF436A036100238362012318467047CA -:107190000023FBE700F01CB9014B586A704700BFA1 -:1071A000000C0040034B002258631A610222DA608F -:1071B000704700BF000C0040014B0022DA607047AE -:1071C000000C0040014B5863704700BF000C0040AA -:1071D000FEE7000070B51B4B0025044686B05860E2 -:1071E0000E4685620163FDF78BF804F11003A5607C -:1071F000E562C4E904334FF0FF33C4E90044C4E955 -:107200000635FFF7C9FF2B46024604F1340120463C -:10721000C4E9082380230C4A2565FEF7DBFA012325 -:107220000A4AE06000920375684672680192B2688B -:10723000CDE90223064BCDE90435FEF7F3FA06B09B -:1072400070BD00BFE8560020207E0008257E0008A3 -:10725000D1710008024AD36A1843D062704700BF58 -:10726000805400204B6843608B688360CB68C360A8 -:107270000B6943614B6903628B6943620B6803606E -:107280007047000008B53A4B40F2FF713948D3F817 -:1072900088200A43C3F88820D3F8882022F4FF62AC -:1072A00022F00702C3F88820D3F88830324B1A6CDA -:1072B0000A431A649A6E0A439A66304A9B6E1146D4 -:1072C000FFF7D0FF00F5806002F11C01FFF7CAFF55 -:1072D00000F5806002F13801FFF7C4FF00F580601F -:1072E00002F15401FFF7BEFF00F5806002F170016A -:1072F000FFF7B8FF00F5806002F18C01FFF7B2FFE5 -:1073000000F5806002F1A801FFF7ACFF00F5806096 -:1073100002F1C401FFF7A6FF00F5806002F1E00171 -:10732000FFF7A0FF00F5806002F1FC01FFF79AFF74 -:1073300002F58C7100F58060FFF794FF00F00AF908 -:107340000F4BD3F8902242F00102C3F89022D3F8F9 -:10735000942242F00102C3F894220522C3F8982037 -:107360004FF06052C3F89C20064AC3F8A02008BD25 -:107370000044025800000258004502582C7E0008C4 -:1073800000ED00E01F00080308B500F0C1FAFEF7A9 -:10739000EFF90C4BDA6B42F04002DA635A6E22F0DE -:1073A00040025A665B6E084B1A6842F008021A6087 -:1073B0001A6842F004021A60FEF740FFBDE8084078 -:1073C000FEF76ABC004502580018024870470000EA -:1073D0000E4B9A6C42F008029A641A6F42F008024F -:1073E0001A670B4A1B6FD36B43F00803D363C722A2 -:1073F000084B9A624FF0FF32DA6200229A615A63B8 -:10740000DA605A6001225A611A60704700450258DA -:107410000010005C000C0040094A08B51169D368EF -:107420000B40D9B29B076FEA0101116107D53023E8 -:1074300083F31188FEF7C2F9002383F3118808BD96 -:10744000000C0040044BDA6B0243DA635A6E1043BF -:1074500058665B6E704700BF0045025808B53C4B4C -:107460004FF0FF31D3F8802062F00042C3F8802053 -:10747000D3F8802002F00042C3F88020D3F88020A7 -:10748000D3F88420C3F88410D3F884200022C3F8F2 -:107490008420D3F88400D86F40F0FF4040F4FF0010 -:1074A00040F4DF4040F07F00D867D86F20F0FF4005 -:1074B00020F4FF0020F4DF4020F07F00D867D86F71 -:1074C000D3F888006FEA40506FEA5050C3F8880044 -:1074D000D3F88800C0F30A00C3F88800D3F8880006 -:1074E000D3F89000C3F89010D3F89000C3F8902020 -:1074F000D3F89000D3F89400C3F89410D3F8940014 -:10750000C3F89420D3F89400D3F89800C3F89810E7 -:10751000D3F89800C3F89820D3F89800D3F88C00DB -:10752000C3F88C10D3F88C00C3F88C20D3F88C00EF -:10753000D3F89C00C3F89C10D3F89C10C3F89C208F -:10754000D3F89C30FDF786F8BDE8084000F0B4B9E8 -:107550000044025808B50122504BC3F80821504B93 -:107560005A6D42F002025A65DA6F42F00202DA679F -:107570000422DB6F4B4BDA605A689104FCD54A4A0F -:107580001A6001229A60494ADA6000221A614FF4B7 -:1075900040429A61434B9A699204FCD51A6842F4BE -:1075A00080721A60424B1A6F12F4407F04D04FF47D -:1075B00080321A6700221A671A6842F001021A60C4 -:1075C0003B4B1A685007FCD500221A611A6912F069 -:1075D0003802FBD1012119604FF0804159605A6790 -:1075E000344ADA62344A1A611A6842F480321A6004 -:1075F0002F4B1A689103FCD51A6842F480521A6026 -:107600001A689204FCD52D4A2D499A6200225A63C9 -:10761000196301F57C01DA6301F5E77199635A6436 -:10762000284A1A64284ADA621A6842F0A8521A6094 -:107630001F4B1A6802F02852B2F1285FF9D1482294 -:107640009A614FF48862DA6140221A621F4ADA6452 -:107650001F4A1A651F4A5A651F4A9A6532231F4AF4 -:107660001360136803F00F03022BFAD1104A136959 -:1076700043F003031361136903F03803182BFAD1A5 -:107680004FF00050FFF7DEFE4FF08040FFF7DAFECC -:107690004FF00040BDE80840FFF7D4BE0080005125 -:1076A000004502580048025800C000F004000001E4 -:1076B000004402580000FF0100889008322060005A -:1076C00063020901470E0508DD0BBF012000002001 -:1076D000000001100910E00000010110002000521C -:1076E0004FF0B04208B5D2F8883003F00103C2F879 -:1076F000883023B1044A13680BB150689847BDE83D -:107700000840FCF725BE00BF807300204FF0B04258 -:1077100008B5D2F8883003F00203C2F8883023B1EC -:10772000044A93680BB1D0689847BDE80840FCF75D -:107730000FBE00BF807300204FF0B04208B5D2F8F2 -:10774000883003F00403C2F8883023B1044A136977 -:107750000BB150699847BDE80840FCF7F9BD00BF80 -:10776000807300204FF0B04208B5D2F8883003F0A3 -:107770000803C2F8883023B1044A93690BB1D06979 -:107780009847BDE80840FCF7E3BD00BF80730020C8 -:107790004FF0B04208B5D2F8883003F01003C2F8B9 -:1077A000883023B1044A136A0BB1506A9847BDE888 -:1077B0000840FCF7CDBD00BF807300204FF0B04300 -:1077C00010B5D3F8884004F47872C3F88820A30673 -:1077D00004D5124A936A0BB1D06A9847600604D563 -:1077E0000E4A136B0BB1506B9847210604D50B4A18 -:1077F000936B0BB1D06B9847E20504D5074A136C25 -:107800000BB1506C9847A30504D5044A936C0BB197 -:10781000D06C9847BDE81040FCF79ABD80730020FB -:107820004FF0B04310B5D3F8884004F47C42C3F85D -:107830008820620504D5164A136D0BB1506D984728 -:10784000230504D5124A936D0BB1D06D9847E0041F -:1078500004D50F4A136E0BB1506E9847A10404D59E -:107860000B4A936E0BB1D06E9847620404D5084A58 -:10787000136F0BB1506F9847230404D5044A936FDC -:107880000BB1D06F9847BDE81040FCF761BD00BF59 -:107890008073002008B50348FDF72AF8BDE80840CA -:1078A000FCF756BD1450002008B5FFF7B5FDBDE844 -:1078B0000840FCF74DBD0000062108B50846FDF75D -:1078C0009DF806210720FDF799F806210820FDF70D -:1078D00095F806210920FDF791F806210A20FDF709 -:1078E0008DF806211720FDF789F806212820FDF7DD -:1078F00085F809217A20FDF781F807213220FDF76C -:107900007DF80C215220BDE80840FDF777B8000053 -:1079100008B5FFF7A3FD00F00DF8FDF72DFAFDF710 -:1079200005FCFDF7D7FAFFF751FDBDE80840FFF76A -:1079300031BC00000023054A19460133102BC2E96F -:10794000001102F10802F8D1704700BF80730020D7 -:107950000B460146184600F003B8000000F00EB8D0 -:1079600010B5054C13462CB10A4601460220AFF370 -:10797000008010BD2046FCE700000000024B0146DD -:107980001868FEF77FBB00BF6C23002010B50139DB -:107990000244904201D1002005E0037811F8014F24 -:1079A000A34201D0181B10BD0130F2E72DE9F041D0 -:1079B000A3B1C91A17780144044603F1FF3C8C4275 -:1079C000204601D9002009E00578BD4204F10104F8 -:1079D000F5D10CEB0405D618A54201D1BDE8F08124 -:1079E00015F8018D16F801EDF045F5D0E7E7000038 -:1079F000034611F8012B03F8012B002AF9D1704737 -:107A00006F72672E6172647570696C6F742E437546 -:107A1000626550696C6F742D43414E4D6F64000078 -:107A200053544D333248373F3F3F0053544D333268 -:107A3000483733782F3732780053544D3332483734 -:107A400034332F3735332F373530000001105A00CB -:107A500003105900012058000320560040A2E4F111 -:107A6000646891060041A3E5F26569920700000091 -:107A700043414E464449666163653A204D657373E0 -:107A80006167652052414D204F766572666C6F7755 -:107A9000210000004261642043414E4966616365F4 -:107AA00020696E6465782E00000000000000000070 -:107AB000912A00081D230008DD3100088D230008ED -:107AC00099230008B1270008112500085523000854 -:107AD0005923000831230008192300086D270008E6 -:107AE0003D230008153300084923000841270008FA -:107AF00001040E05054B02020E05054B04010E059F -:107B0000054B05010B04044B080106030346000066 -:107B100010000240080002400008024000000B0074 -:107B200028000240080002400408024006010C0040 -:107B300040000240080002400808024010020D0008 -:107B400058000240080002400C08024016030E00D4 -:107B5000700002400C0002401008024000040F00B8 -:107B6000880002400C000240140802400605100084 -:107B7000A00002400C00024018080240100611004C -:107B8000B80002400C0002401C08024016072F00FB -:107B90001004024008040240200802400008380097 -:107BA0002804024008040240240802400609390063 -:107BB000400402400804024028080240100A3A002B -:107BC00058040240080402402C080240160B3B00F7 -:107BD000700402400C04024030080240000C3C00DB -:107BE000880402400C04024034080240060D4400A0 -:107BF000A00402400C04024038080240100E450068 -:107C0000B80402400C0402403C080240160F460033 -:107C100000960000000000000000000000000000CE -:107C2000000000000000000000000000394D0008C6 -:107C3000254D0008614D00084D4D0008594D0008C4 -:107C4000454D0008314D00081D4D00086D4D0008E0 -:107C500000000000514E00083D4E0008794E00081B -:107C6000654E0008714E00085D4E0008494E000840 -:107C7000354E0008854E000800000000010000009D -:107C80000000000063300000847C0008D85400200D -:107C9000E85600204172647550696C6F740025428B -:107CA0004F415244252D424C002553455249414CE9 -:107CB00025000000020000000000000071500008D4 -:107CC000E150000840004000986F0020A86F00209D -:107CD000020000000000000003000000000000009F -:107CE000295100080000000010000000B86F0020BB -:107CF00000000000010000000000000030720020C1 -:107D000001010200355C0008455B0008E15B0008EA -:107D1000C55B0008430000001C7D00080902430009 -:107D2000020100C032090400000102020100052422 -:107D300000100105240100010424020205240600AC -:107D400001070582030800FF09040100020A000080 -:107D50000007050102400000070581024000000005 -:107D600012000000687D00081201100102000040AE -:107D70000912415700020102030100000403090433 -:107D800025424F41524425003031323334353637A5 -:107D900038394142434445460000000000010020BC -:107DA00000FF01000200000000000030000004009D -:107DB000080000000000002400000800040000008B -:107DC0000004000000FC000002000000000004307D -:107DD00000800000080000000000003800000100E2 -:107DE0000100000000000000855200083D55000819 -:107DF000E9550008400040006873002068730020C7 -:107E000001000000787300208000000040010000A5 -:107E10000800000000010000001000000800000041 -:107E20006D61696E0069646C650000000000802A65 -:107E300000000000AAAAAAAA00000024FFFF000078 -:107E40000000000000A00A00000000000000000088 -:107E5000AAAAAAAA00000000FFFF0000000000007C -:107E6000000000000000000000000000AAAAAAAA6A -:107E700000000000FFFF0000000000000000000004 -:107E80000A00000000000000AAAAAAAA0000000040 -:107E9000FFFF0000990000000000000000800200C9 -:107EA00000000000AAAAAAAA00400100FFFF0000EB -:107EB000000000700700000000000000000000004B -:107EC000AAAAAAAA00000000FFFF0000000000000C -:107ED000000000000500000000000000A5AAAAAAFA -:107EE00000000000FCFF0000000000000000000097 -:107EF0000000000000000000AAAAAAAA00000000DA -:107F0000FFFF000000000000000000000000000073 -:107F100000000000AAAAAAAA00000000FFFF0000BB -:107F20000000000000000000000000000000000051 -:107F3000AAAAAAAA00000000FFFF0000000000009B -:107F4000000000000000000000000000AAAAAAAA89 -:107F500000000000FFFF0000000000000000000023 -:107F600037040000000000000000180000000000BE -:107F7000FE2A0100D2040000FF000000F05600209D -:107F80001450002000000000207A00088304000044 -:107F90002B7A000850040000397A0008009600008F -:107FA0000000080096000000000800000400000027 -:107FB0007C7D0008000000000000000000000000C0 -:107FC00000000000000000000000000070230020FE -:107FD00000000000000000000000000000000000A1 -:107FE0000000000000000000000000000000000091 -:107FF0000000000000000000000000000000000081 -:108000000000000000000000000000000000000070 -:108010000000000000000000000000000000000060 -:108020000000000000000000000000000000000050 +:101AF0000460014655F82600BDE8704003F092B935 +:101B000070BD00BF1C4F00201C23002090560020F9 +:101B1000044F0020F8B571B6002301201A4619467B +:101B200002F068FE0446802004F094FB002845D0B3 +:101B30000025234A80274FF4D06C3D26136923BB30 +:101B4000D2F810310BBB236805F10061996023685E +:101B5000D86023685F602368C3F800C021680B6801 +:101B600043F001030B6021680B6823F01E030B6038 +:101B700021680B68DB07FCD4237B8035616806FA9B +:101B800003F3B5F5001F0B60D8D1204602F068FEC4 +:101B9000B5F5001F11D000240A4E0B4D012004F0B2 +:101BA000BBFA3388A34205D928682044013404F0E5 +:101BB000F9F9F6E7002004F0AFFA61B6F8BD00BF0E +:101BC000002000521E4F0020D84E00202DE9F8437F +:101BD0000D46044600219046284640F27912FFF750 +:101BE000E1FE234620220021284604F1220702F0CC +:101BF0003FF9231D022220212846C02602F038F991 +:101C0000631D03222221284602F032F9A31D03227C +:101C10002521284602F02CF904F10803102228217E +:101C2000284602F025F904F110030822382128463D +:101C300002F01EF904F1110308224021284602F0A7 +:101C400017F904F1120308224821284602F010F97E +:101C500004F1140320225021284602F009F904F16E +:101C6000180340227021284602F002F904F12003F3 +:101C70000822B021284602F0FBF804F121030822D3 +:101C8000B821284602F0F4F8314608363B460822CF +:101C90002846013702F0ECF8B6F5A07FF4D13146C2 +:101CA00004F132030822284602F0E2F8002794F8F3 +:101CB000326004F13309F900BE4201F5A4711FD866 +:101CC000F70007F5A476B8F1000F08D1314607F206 +:101CD0004F1604F599730722284602F0C9F894F8C4 +:101CE0003201B046502828BF5020074604EB0009B7 +:101CF000A1450DD106EBC7000730C008BDE8F88349 +:101D000009EB070308222846013702F0B1F8D2E7B1 +:101D100004F2331341460822284608F1080801342A +:101D200002F0A6F8E4E7000013B5044608460021D7 +:101D30002022234601900160C0F8031002F098F8B9 +:101D4000231D01980222202102F092F8631D0198C0 +:101D50000322222102F08CF8A31D019803222521E1 +:101D600002F086F8019804F108031022282102F0FD +:101D70007FF8072002B010BDF7B5047F05460E4678 +:101D80002CB1838A122B02D9012003B0F0BD0023AD +:101D9000072228460096194601F02EFF731C0122E7 +:101DA000072100932846002301F026FFD4B9B31C75 +:101DB000052208212846009323460D2401F01CFF2C +:101DC000B378102BE0D83746BB1BB278934210D3C0 +:101DD00007342B7FA88AE408B3B9844294BF00205B +:101DE0000120D2E7AB8A0824DB00083BDB08B37094 +:101DF000E6E7FB1C2146082228460093002308340E +:101E0000013701F0F9FEDFE7201A18BF0120BCE717 +:101E1000F7B5047F05460E462CB1838ACA2B02D93A +:101E2000012003B0F0BD0023082228460096194681 +:101E300001F0E2FE731CD4B908220093234610245B +:101E40001146284601F0D8FE7378C82BE8D8012344 +:101E50005F1C7278013B934210D307342B7FA88A12 +:101E6000E408B3B9844294BF00200120D9E7AB8ACB +:101E70000824DB00083BDB087370E5E7F319214613 +:101E8000082228460093002301F0B6FE08343B46A2 +:101E9000DEE7201A18BF0120C3E700002DE9F84350 +:101EA0000D4604461646002181222846FFF77AFD9A +:101EB000234608220021284601F0DAFFC6B90F2682 +:101EC000631C07220821284601F0D2FF94F9013053 +:101ED000B0466778002BB8BF7F2704EB07094C4555 +:101EE00008D10736082010FB0760C008BDE8F8835A +:101EF0000826EBE7A31C41460822284608F10808FB +:101F0000013401F0B5FFEAE72DE9F0410D46044642 +:101F100016460021CE222846FFF744FD23462822FC +:101F20000021284601F0A4FFBEB9302604F10803C1 +:101F300008222821284601F09BFF14F8080F0027EB +:101F4000C82828BFC8208046B84506EBC70106D878 +:101F500006EBC800C008BDE8F0812826EDE7013790 +:101F600008222846E31901F083FFEDE7F7B5047F67 +:101F700005460E4634B1838AB3F5827F02D901202B +:101F800003B0F0BD0123102200212846009601F085 +:101F900033FEDCB9B31C09221021284600932346E6 +:101FA000192401F029FE7388B3F5807FE7D83746FE +:101FB000BB1B7288934210D307342B7FA88AE40896 +:101FC000B3B9844294BF00200120D9E7AB8A102422 +:101FD000DB00103BDB087380E5E73B1D2146082250 +:101FE0002846009300230834013701F005FEDFE79F +:101FF000201A18BF0120C3E730B50A44084D9142AA +:102000000DD011F8013B5840082340F30004013B78 +:102010002C4013F0FF0384EA5000F6D1EFE730BD07 +:102020002083B8EDF7B5384A6B46106851686A46A8 +:1020300003C308233549364805F040FF044600280D +:1020400033D10A25334A6B46106851686A4603C388 +:10205000082331492E4805F031FF0446002849D0B5 +:102060000369B3F5E01F45D8B0F8661040F2374277 +:1020700091423FD1294A024402F15C018B4239D39B +:102080005C3B234900209E1AFFF7B6FF04F1640170 +:10209000074632460020FFF7AFFFA3689F4229D1D1 +:1020A000E368984208BF002524E00369B3F5E01F08 +:1020B00027D8418B40F23742914220D1174A02443F +:1020C00002F110018B4218D3103B114900209D1AD8 +:1020D000FFF792FF04F1180106462A460020FFF799 +:1020E0008BFFA3689E4202D1E368984201D00D2580 +:1020F000A8E70025284603B0F0BD1025A2E70C256F +:10210000A0E70B259EE700BF6C7F0008DCFF1B00EB +:1021100000000408757F000890FF1B000800FCF712 +:1021200010B5037C044613B9006804F0C7F82046D4 +:1021300010BD00000023BFF35B8FC360BFF35B8F54 +:10214000BFF35B8F8360BFF35B8F7047BFF35B8F21 +:102150000068BFF35B8F704770B505460C30FFF722 +:10216000F5FF044605F108063046FFF7EFFFA042F1 +:1021700006D96D683046FFF7E9FF2544281A70BD7F +:102180003046FFF7E3FF201AF9E7000070B5054677 +:102190004068A0B105F10C0605F10800FFF7D6FF75 +:1021A00004463046FFF7D2FF844204F1FF34304644 +:1021B00094BF6D680025FFF7C9FF2C44201A70BD3D +:1021C00038B50C460546FFF7C7FFA04210D305F10E +:1021D0000800FFF7BBFF04446868BFF35B8FB4FBE4 +:1021E000F0F100FB11440120AC60BFF35B8F38BD00 +:1021F0000020FCE72DE9F041144607460D46FFF7A5 +:10220000C5FF844228BF0446D4B1B84658F80C6BC9 +:102210004046FFF79BFF3044286040467E68FFF74A +:1022200095FF331A9C4203D801206C60BDE8F08111 +:10223000A41B6B603B682044AB60E8600220F5E7BC +:102240002046F3E738B50C460546FFF79FFFA0424E +:1022500010D305F10C00FFF779FF04446868BFF361 +:102260005B8FB4FBF0F100FB11440120EC60BFF385 +:102270005B8F38BD0020FCE72DE9FF4188466946A9 +:1022800007466C46FFF7B6FF002506B204EBC6060C +:10229000B4420AD0626808EB050120680834FFF7F1 +:1022A0005BFB54F8043C1D44F2E729463846FFF72F +:1022B000C9FF284604B0BDE8F0810000F8B5054626 +:1022C0000C300F46FFF742FF05F108060446304682 +:1022D000FFF73CFFA042304688BF6C68FFF736FF2F +:1022E000201A386020B12C683046FFF72FFF2044B9 +:1022F000F8BD000073B5144606460D46FFF72CFFE7 +:102300008442019028BF0446DCB101A93046FFF7A2 +:10231000D5FF019B33B93268C5E90233C5E9002412 +:1023200001200CE09C42286038BF0194019884424F +:102330006860F5D93368241A0220AB60EC6002B003 +:1023400070BD2046FBE700002DE9FF410F466946BE +:102350006C46FFF7CFFF00B2002604EBC005AC428D +:1023600009D0D4F80480B81954F8081B42464644F2 +:10237000FFF7F2FAF3E7304604B0BDE8F081000061 +:1023800038B50546FFF7E0FF044601462846FFF74B +:1023900017FF204638BD000008B103F08FBF70471B +:1023A0007047000010B41346026814680022A44667 +:1023B0005DF8044B6047000000F5805090F8590428 +:1023C0007047000000F5805090F8520470470000FC +:1023D00000F5805090F95804704700004E20704777 +:1023E000302383F3118800F58052D2F89C34D2F860 +:1023F00098041844D2F894341844D2F87C34184421 +:10240000D2F88C341844D2F888341844002383F36B +:102410001188704700F58050C0F8541401207047AF +:102420002DE9F04F0C4600F5805185B01F4691F81C +:10243000523405469046BDF838909BB1D1F87834B7 +:102440000133C1F878342368980006D4237B082B25 +:102450000BD9627B0AB10F2B07D9D1F87C34013339 +:10246000C1F87C344FF0FF3010E0302383F3118843 +:10247000EB6AD3F8C42012F4001B0AD0D1F88034E0 +:1024800000200133C1F8803480F3118805B0BDE825 +:10249000F08F20684822D3F8C4300028C3F3044AE0 +:1024A0006B6AB4BF40F08040800412FB0A334FEAED +:1024B0004A161860226852004FEA0A6244BF40F090 +:1024C00000501860207B42EA00425A60607B10B3E3 +:1024D00042F440125A60D1F8B0240132C1F8B0245D +:1024E000AA1902F58352117B41F020011173207B60 +:1024F000039300F0ABFF0330039B80105FFA8BF275 +:102500000BF1010B82420DDA04EB820103EB820234 +:1025100049689160F2E7AA1902F58352117B60F3D2 +:102520004511E3E70122EB6A05EB4A1102FA0AF2D0 +:1025300001F58251C3F8D020AB19183104F10C0217 +:1025400003F58253C3E90487234653F8040B9342EF +:1025500041F8040BF9D11B882E440B8041F268032B +:1025600046F803A006F5805609F0030396F86C20A0 +:1025700043F0100322F01F02134386F86C3000234F +:1025800083F3118842463B4621462846CDF8009009 +:1025900000F022FF012079E72DE9F04700F5805691 +:1025A000044696F85254002D40F00381037C032B1F +:1025B00040F0948028462B462F465FFA80FC9445D5 +:1025C00010DA01EBCC0E51F83CC0BCF1000F04DB7B +:1025D000DEF804C0BCF1000F02DB01370130ECE78C +:1025E0000133FBE7302080F31188E06AF3B9D0F8BB +:1025F000803043F00203C0F880304E23E06A002FA1 +:102600006FD1D0F8803043F00103C0F880306A4BBE +:102610006A4A1B6803F1805303F52C539B009342D5 +:10262000A36240F2B080664800F0AEFE4D2B42D867 +:10263000DFF884814FEA034EDFF88891D8F800C0B4 +:102640004EEA8C0EC0F884E00CF1805000F52C505E +:102650008000606103EB0C00D4F82CC0C3F14E0382 +:10266000C8F80000DCF8800040F03000CCF88000B2 +:102670004FF0000CD4F81480E6465FFA8CF08242EA +:10268000BCDD01EBC00A51F83000002810DBDAF89D +:1026900004A0BAF1000F0BDA09EA00400AF07F0A41 +:1026A00040EA0A0040F0084048F82E000EF1010E02 +:1026B0000CF1010CE1E7836923F00103836100F071 +:1026C00069FE0646E36A9B69D90704D500F062FEFD +:1026D000831BFA2BF6D9002383F311882846BDE823 +:1026E000F087B7EB530F3DD2DFF8CCE04FEA074C51 +:1026F000DEF800304CEA830CC0F888C003F180504B +:1027000003EB4703002700F52C50CEF80030BC4601 +:102710008000A061E06AD0F8803043F00C03C0F87C +:102720008030D4F818E0FBB29A427FF770AF51F8CE +:10273000330001EBC3080028D8F8043001DB002B7C +:102740000EDB20F0604023F0604340F0005043F087 +:1027500000434EF83C000EEBCC000CF1010C436042 +:102760000137E0E7836923F00103836100F012FE83 +:102770000646E36A9B69DA07ADD500F00BFE831BC2 +:10278000FA2BF6D9A7E7E26A936923F00103936174 +:1027900000F000FE0746E36A9B69DB0705D500F001 +:1027A000F9FDC31BFA2BF6D995E7012586F852549B +:1027B00091E7002592E700BF284F0020FCB50040BC +:1027C000807F00080000FF0713B500F580540191D9 +:1027D000606CFFF7DBFC1F280AD920220199606C8E +:1027E000FFF74AFDA0F120035842584102B010BD46 +:1027F0000020FBE708B5302383F3118800F58050F3 +:10280000406CFFF797FC002383F3118808BD00009C +:1028100000220260828142608260704700220023B1 +:1028200010B5C0E90023002304460C3020F8043C16 +:10283000FFF7EEFF204610BD2DE9F0479A4688B01D +:10284000074688469146302383F3118807F5805464 +:102850006846FFF7E3FF606CFFF77EFC1F282ED968 +:1028600020226946606CFFF78BFD202827D194F861 +:10287000523423B303AD444605AB2E46083403CE91 +:102880009E4244F8080C44F8041C3546F5D13068E3 +:102890002060B388A380DDE90023C9E90023BDF8E7 +:1028A0000830AAF80030002383F3118853464A46C3 +:1028B0004146384608B0BDE8F04700F07BBD002037 +:1028C00080F3118808B0BDE8F08700002DE9F84FCB +:1028D0000023064600F58154054688461034C0E9B9 +:1028E0000133264B46F8303B374638462037FFF752 +:1028F00095FFA742F9D105F580544FF4805305F5B3 +:10290000A3594FF0000A26630026676405F5835734 +:1029100009F110094FF0000B1037E663C4E90D36DA +:10292000012384F8403084F84830A7F1180020379C +:1029300047E910ABFFF76CFF47F8286C4F45F4D11F +:1029400084F85884A4F85A64A4F85C64A4F85E641B +:1029500084F86064A4F86264A4F86464A4F866640B +:1029600084F86864B8F1000F02D0054800F00CFD4F +:10297000044B2846EB62BDE8F88F00BFC07F00081B +:10298000A47F000800A00040044B10B5197804464D +:102990004A1C1A70FFF79AFF204610BD254F0020F1 +:1029A0002DE9F04300295AD02E4E2F48B6FBF1F402 +:1029B00081428CBF0A201120431EB4FBF0F700FBBC +:1029C0001740DDB220B1022B1846F5D8002032E0C6 +:1029D0007B1EB3F5806F2ED2C5EBC5084FF47A731A +:1029E00008F103044FEAE40EC4F3C7040EF1010931 +:1029F000281B0EFB033E5FFA80FC59FA80F0BEFBF9 +:102A0000F0F0B0F5617F18DC83B2601C5CFA80F0F6 +:102A10007843B6FBF0F08142D8D1611E0F29D5D89A +:102A20000CF1FF310729D1D8012013805780107194 +:102A3000547182F806C0BDE8F08308F1FF34E0105D +:102A4000C4F3C70400F1010E2D1B00FB03335FFA32 +:102A500085FC5EFA85F5B3FBF5F39BB2D5E7084636 +:102A6000E9E700BF00B4C4043F420F0030B50D4B8E +:102A700005200D4D1C786C438C420ED159780120F5 +:102A8000518099785171D9789171197911715B7967 +:102A900003EB83035B00138030BD013803F10603B1 +:102AA000E8D1F9E70080000840420F0038B540F255 +:102AB0007772C36A154CC3F8BC200722C36AC3F8F7 +:102AC000C8202268C16A930043F4C023C1F8A03033 +:102AD00002F1805302F16C01C56A03F52C53EA320E +:102AE00089009B00226041F0E061094AC361C5F89A +:102AF000C01003F5D87103F56A7341629342836293 +:102B000002D9044800F040FC38BD00BF284F002027 +:102B1000FCB50040807F00082DE9F04F00F580559E +:102B20001F4689B0044695F8583489469046012BD3 +:102B300004D90026304609B0BDE8F08FA04A52F80B +:102B4000231009B942F823009E48C4F80C9001787C +:102B50002774C9B9302383F311889B4BD3F8EC2039 +:102B600042F48072C3F8EC20D3F8942042F48072CF +:102B7000C3F89420D3F8942022F48072C3F89420F0 +:102B80000123037081F3118895F851647EB93023D5 +:102B900083F311880321132001F078FF032115200E +:102BA00001F074FF012385F8513486F31188302336 +:102BB00083F31188E26A936923F01003936100F0B4 +:102BC000E9FB8246E36A9E6916F0080609D000F028 +:102BD000E1FBA0EB0A03FA2BF4D9002686F3118857 +:102BE000A8E79A6942F001029A6100F0D3FB82469D +:102BF000E36A9A69D00706D400F0CCFBA0EB0A0385 +:102C0000FA2BF5D9E9E79A694FF0000A42F002027F +:102C10009A61E36AC3F854A08AF3118804F5825BD1 +:102C2000686CFFF787FA0BF1100B20220021684631 +:102C3000FEF7B8FE02A8FFF7EBFD6A460BEB0603B2 +:102C40000DF1180ECDF818A094460833BCE8030027 +:102C5000F44543F8080C43F8041C6246F4D1DCF850 +:102C6000000020361860B6F5806F9CF804201A71B9 +:102C7000DBD1002304F5A252494620461A3285F8DA +:102C8000503485F85334FFF78BFE064690B9E26A5C +:102C9000936923F00103936100F07CFB0546E36A2E +:102CA0009B69D9077FF545AF00F074FB431BFA2BF6 +:102CB000F5D93EE795F85E34C5F86C94591E95F841 +:102CC0005F34E26A013B1B0243EA416395F86014FA +:102CD00001390B43B5F85C14013943EA0143D36170 +:102CE000B8F1000F36D004F5A35241462046023217 +:102CF000FFF7BCFE90B9E26A936923F00103936188 +:102D000000F048FB0546E36A9B69DA077FF511AFDF +:102D100000F040FB431BFA2BF5D90AE795F867242E +:102D2000C5F87084511E95F86824E36A013A1201CF +:102D300042EA012295F8661401390A43B5F8641491 +:102D4000013942EA014242F40002DA604FF42062A3 +:102D5000E36A9A64E36A4FF000082046C3F8BC8037 +:102D6000FFF7A4FE85F859846FF04042E36A1A65C4 +:102D7000164AE36A5A654FF00222E36A9A654FF0F9 +:102D8000FF32E36AC3F8E0200322E36A9742DA6580 +:102D90003FF4D0AEE26A936923F00103936100F03F +:102DA000F9FA0746E36A9B69DB0705D500F0F2FAFA +:102DB000C31BFA2BF6D9BCE6012385F85234B9E6D9 +:102DC000204F0020244F00200044025855020002EA +:102DD0002DE9F04F054689B090469946002741F20B +:102DE000680A00F58056EB6AD3F8D830FB40D80764 +:102DF00051D505EB47124FEA471B52441379190787 +:102E000049D4D6F884340133C6F8843405F5A55383 +:102E1000C3E9008913799A0605EB0B0248BFD6F87F +:102E2000B434524444BF0133C6F8B434137943F088 +:102E300008031371DB0723D596F8533403B305F564 +:102E400082546846FFF7EAFC03AB18345C4404F193 +:102E5000080C2068083454F8041C1A46644503C260 +:102E60001346F6D12068694610602846A2889A80E9 +:102E70000123ADF808302B68CDE90089DB6B98475A +:102E8000D6F8A834D6F854040133C6F8A83410B1E3 +:102E900003681B6998470137202FA4D109B0BDE80A +:102EA000F08F00002DE9F04F0F468DB0044600F082 +:102EB00073FA82468946002F5BD1E36AD3F8A020DB +:102EC00012F4FE0F03D100200DB0BDE8F08FD3F84F +:102ED000A420920141BF04F58051D1F89824013219 +:102EE000C1F89824D3F8A4205606ECD0D3F8A45007 +:102EF000E669C5F305254823E8464FF0000B03FBC0 +:102F000005664046FFF784FC326851004ABF22F054 +:102F10006043C2F38A4343F00043920048BF43F04A +:102F200080430093736813F400131BBF012304F55F +:102F300080528DF80D308DF80D301EBFD2F8B834A8 +:102F40000133C2F8B834F38803F00F038DF80C3066 +:102F50009DF80C0000F07AFA5FFA8BF3984225D9BD +:102F6000F2180CA90BF1010B127A0B4403F82C2C6C +:102F7000EEE7012FA7D1E36AD3F8B02012F4FE0FD9 +:102F8000A1D0D3F8B420950141BF04F58051D1F808 +:102F900098240132C1F89824D3F8B420500692D076 +:102FA000D3F8B450266AC5F30525A4E7EFB9E36A60 +:102FB000C3F8A85004A807ADFFF730FC98E80F004D +:102FC00007C52B800023204604A9ADF818302368DC +:102FD00004F58054DB6BCDE904A9984758B1D4F8C7 +:102FE00090340133C4F890346EE7012FE2D1E36AE4 +:102FF000C3F8B850DEE7D4F8943401200133C4F8A4 +:10300000943461E72DE9F04105460F4600F5805400 +:10301000012639462846FFF745FF10B184F853646E +:10302000F7E7D4F8A834D4F854040133C4F8A8342A +:1030300020B10368BDE8F0411B691847BDE8F08185 +:10304000C36AF0B51A6C12F47F0F2BD01B6C00F51D +:10305000805441F268054FF0010CC4F8AC340023F1 +:10306000471900EB43125E012A44117911F0020F57 +:1030700015D0490713D4B959C66A0CFA01F1D6F82C +:10308000CCE011EA0E0F0AD0C6F8D410117941F045 +:1030900004011171D4F88C240132C4F88C2401335A +:1030A000202BDED1F0BD000010B5264C264B226847 +:1030B0000AB340B31A6D92050FD54FF400721A652A +:1030C00000F06AF950EA01020B4602D0013861F1C2 +:1030D000000302462068FFF77BFE1B4A136D9B012D +:1030E0002AD523684FF0007103F580531165012242 +:1030F00083F8592420E001221A6510221A654FF442 +:1031000080521A6510BD196DC80702D4196D4907A0 +:1031100005D50521104619650021FFF773FF0A4BFD +:103120001A6DD00602D41A6D510605D55022012120 +:103130001A652068FFF766FF2068BDE81040FFF7BA +:103140007FBF00BF204F002000A0004008B5302303 +:1031500083F31188FFF774FF002383F3118808BD00 +:10316000C36AD3F8C00010F07C5005D0D3F8C40077 +:1031700080F40010C0F340507047000008B53023C1 +:1031800083F3118800F58050406CFEF7E5FF0023C3 +:1031900083F3118843090CBF0120002008BD000003 +:1031A00000F5805393F8592462B1C16A8A6922F00C +:1031B00001028A61D3F89C240132C3F89C240022C6 +:1031C00083F85924704700002DE9F743302181F33B +:1031D000118800F58251002541F2680E4FF0010878 +:1031E000103100F5805C00EB4514744426797707B4 +:1031F0001CD4F6061AD58E69D0F82C9008FA06F67B +:10320000D9F8CC703E4211D04F6801970F689742B1 +:10321000019F9F410AD2C9F8D460267946F004067E +:103220002671DCF888440134CCF88844013520311B +:10323000202DD8D1002383F3118803B0BDE8F0839B +:10324000F8B51E4600230F46054613701446FFF7D7 +:1032500095FF80F0010038701EB12846FFF780FF0F +:103260002070F8BD2DE9F04F85B099460D46804697 +:10327000164691F800B0DDE90EA30293137801938E +:1032800000F08AF82B7804460F4613B93378002BE8 +:1032900041D022463B464046FFF796FFFFF756FFD8 +:1032A000FFF77EFF4B4632462946FFF7C9FF2B78D2 +:1032B00033B1BBF1000F03D0012005B0BDE8F08FA2 +:1032C000337813B1019B002BF6D108F5805303939B +:1032D0005445029B77EB03031DD2039BD3F85404A0 +:1032E000C8B10368AAEB04011B6898474B463246F5 +:1032F00029464046FFF7A4FF2B7813B1BBF1000F1E +:10330000DAD1337813B1019B002BD5D100F044F80A +:1033100004460F46DCE70020CFE7000008B5002098 +:10332000FFF7C2FEBDE8084001F05AB808B5012019 +:10333000FFF7BAFEBDE8084001F052B800B59BB0F7 +:10334000EFF3098168226846FEF706FBEFF3058379 +:10335000014B9B6BFEE700BF00ED00E008B5FFF7F7 +:10336000EDFF000000B59BB0EFF3098168226846CD +:10337000FEF7F2FAEFF30583014B5B6BFEE700BF4C +:1033800000ED00E0FEE700000FB408B5029802F07F +:1033900071FAFEE702F0C0BF02F0A2BF13B56C469F +:1033A000031D84E8060094E8030083E8050001207B +:1033B00002B010BD73B58568019155B11B885B07DC +:1033C00007D4D0E900369B6B9847019AC1B23046CA +:1033D000A847012002B070BDF0B5866889B00546E7 +:1033E0000C465EB1BDF838305B070AD4D0E900372F +:1033F0009B6B98472246C1B23846B047012009B0BE +:10340000F0BD0022002301F10806CDE900230023CE +:103410000A46ADF8083003AB1068083252F8041CB5 +:103420001C46B24203C42346F6D11068206092883D +:10343000A280FFF7B1FF0423ADF808302B68CDE977 +:103440000001DB6B694628469847D7E7082817D95B +:1034500009280CD00A280CD00B280CD00C280CD032 +:103460000D280CD00E2814BF4020302070470C20AF +:103470007047102070471420704718207047202094 +:10348000704700002DE9F041456A15B94162BDE879 +:10349000F0814B68AC4623F06047C3F38A464FEA9D +:1034A000D37EC3F3807816EA230638BF3E462B4608 +:1034B0005A68BEEBD27F22F060440AD0002A18DAA4 +:1034C000A40CB44217D19D420FD10D60DEE7134624 +:1034D000EEE7A74207D102F08044C2F38072424572 +:1034E0000BD054B1EFE708D2EDE7CCF800100B6039 +:1034F000CDE7B44201D0B442E5D81A689C46002A10 +:10350000E5D11960C3E700002DE9F047089D01F0FF +:10351000070400EBD1004FF47F494FEAD50822445D +:1035200005F00705944201D1BDE8F08704F00707D4 +:1035300005F0070A111B08EBD50E57453E4613F858 +:103540000EC038BF5646C6F108068E4228BF0E464A +:10355000E108415C34443544B94029FA06F721FAC0 +:103560000AF1FFB28CEA010147FA0AF739408CEA06 +:10357000010C03F80EC0D5E780EA0120082341F2D0 +:10358000210201B2013B4000002980B2B8BF504087 +:1035900013F0FF03F5D1704738B50C468D18A542DE +:1035A00000D138BD14F8011BFFF7E6FFF7E7000074 +:1035B00042684AB1136881894360438901339BB2F1 +:1035C0009942438138BF83811046704770B588B0F7 +:1035D000044620220D4668460021FEF7E3F9204606 +:1035E0000495FFF7E5FF024660B16B46054608AE5D +:1035F0001C46083503CCB44245F8080C45F8041CB9 +:103600002346F5D1104608B070BD0000082817D930 +:1036100009280CD00A280CD00B280CD00C280CD070 +:103620000D280CD00E2814BF4020302070470C20ED +:1036300070471020704714207047182070472020D2 +:1036400070470000082817D90C280CD910280CD96D +:1036500014280CD918280CD920280CD930288CBF54 +:103660000F200E207047092070470A2070470B205A +:1036700070470C2070470D20704700002DE9F8437B +:10368000078C0446072F1ED900254FF6FF73D0E99B +:103690000298C5F12006A5F1200029FA05F10835A8 +:1036A00008FA06F628FA00F0314301431846C9B279 +:1036B000FFF762FF402D0346EBD13A46E169BDE8D2 +:1036C000F843FFF769BF4FF6FF70BDE8F8830000CD +:1036D00010B54B6823B9CA8A63F30902CA8210BDC8 +:1036E00004691A681C600361C38A013BC3824A6093 +:1036F000EFE700002DE9F84F1D46CB8A0F468146C3 +:10370000C3F30901924605290B4630D00020AAB226 +:1037100007F11A049EB21FFA80F8042E0FD89045C4 +:1037200003F1010306D30A44FB8A62F30903012073 +:10373000FB821AE01AF800600130E654EAE790458F +:10374000F1D2A1F1050B1C237C68BBFBF3F203FB58 +:1037500012BB1FFA8BF6002C45D14846FFF728FF15 +:10376000044638B978606FF00200BDE8F88F4FF07A +:103770000008E6E7002606607860ADB24FF0000B67 +:10378000454510D90AEB0803221D13F8011B08F167 +:1037900001089155B1B21FFA88F81B292BD0454575 +:1037A00006F10106F1D8FB8AC3F30902154465F35B +:1037B0000903BCE701321C4692B22368002BF9D101 +:1037C0006B1F0B441C21B3FBF1F301339BB29A42F4 +:1037D000D3D2BBF1000FD0D14846FFF7E9FE20B9A4 +:1037E000C4F800B0BFE70122E7E7C0F800B05E46CA +:1037F00020600446C1E74545D5D94846FFF7D8FEC5 +:1038000008B92060AFE7C0F800B000262060044689 +:10381000B6E700002DE9F04F1C46074688462DED1F +:10382000028B83B05B690192002B00F09A80238C9D +:103830002BB1E269002A00F09480072B35D807F1FC +:103840000C00FFF7B5FE054638B96FF002052846B3 +:1038500003B0BDEC028BBDE8F08F14220021FEF70F +:10386000A1F8228CE16905F10800FEF775F8208CBB +:1038700048F00041013080B2FFF7E4FEFFF7C6FEDA +:10388000013880B220840130287438466369228C64 +:103890001B782A4403F01F0363F03F03137269602F +:1038A0002946FFF7EFFD0125D1E74FF0000900F1B0 +:1038B0000C034FF0800A4E464D4608EE103A18EEC3 +:1038C000100AFFF775FE83460028BED0142200219F +:1038D000FEF768F8002E3AD1019B0222ABF80830BF +:1038E0000BF1080E1FFA82FC218C0CF10100BCF1D7 +:1038F000060F80B201D88E422BD3FFF7A3FE8E4273 +:1039000008BF4FF0400AFFF781FE626901380135B8 +:1039100012781BFA80F1013002F01F022DB242EA48 +:10392000491289F001094AEA020A48F0004281F886 +:1039300008A059468BF810003846CBF804204FF009 +:10394000000AFFF79FFD238CB342B8D17FE7002226 +:10395000C6E7E169895D01360EF80210B6B20132A0 +:10396000C0E76FF0010572E7F8B515460E46302244 +:10397000002104461F46FEF715F8069BB5F5001F0B +:10398000A760636004F11000079B34BF6A094FF61B +:10399000FF72E661A362002397B29A4206D8002321 +:1039A0000360A782E3822383E360F8BD06600133EE +:1039B00030462036F1E7000003781BB94BB2002BEC +:1039C000C8BF01707047000000787047F8B50C461A +:1039D000C969074611B9238C002B37D1257E1F2DCD +:1039E00034D8387828BB228C072A2CD8268A36F07F +:1039F00003032BD14FF6FF70FFF7CEFD20F001003F +:103A000031024FF6FF72400441EA0561400C41EA81 +:103A10004025234629463846FFF7FCFE002807DDEF +:103A2000626913780133DBB21F2B88BF0023137048 +:103A3000F8BD218A2D0645EA012505432046FFF7FA +:103A40001DFE0246E5E76FF00300F1E76FF00100AD +:103A5000EEE7000070B58AB0044616460021282221 +:103A600068461D46FDF79EFFBDF838306946204682 +:103A7000ADF810300F9B05939DF840308DF818304D +:103A8000119B0793BDF84830CDE90265ADF82030B1 +:103A9000FFF79CFF0AB070BD2DE9F041D3690546E0 +:103AA0000C4616460BB9138C5BBB377E1F2F28D8EC +:103AB00095F80080B8F1000F26D03046FFF7DEFD04 +:103AC000337821020246284641EAC331338A41EA6B +:103AD000080141EA076141EA0341334641F08001B0 +:103AE000FFF798FE00280ADD3378012B07D17269B1 +:103AF00013780133DBB21F2B88BF00231370BDE89E +:103B0000F0816FF00100FAE76FF00300F7E70000C3 +:103B1000F0B58BB004460D461746002128226846B2 +:103B20001E46FDF73FFF9DF84C30294620465A1EA1 +:103B3000534253416A468DF800309DF84030ADF84D +:103B40001030119B05939DF848308DF81830149B68 +:103B50000793BDF85430CDE90276ADF82030FFF779 +:103B60009BFF0BB0F0BD0000406A00B1043070470D +:103B7000436A1A68426202691A600361C38A013BA0 +:103B8000C38270472DE9F041D0F8208014461D46CD +:103B9000184E4146002709B9BDE8F081D1E902235A +:103BA000A21A65EB0303964277EB03031ED2036A66 +:103BB0008B420DD1FFF78CFD036A1B68036203691A +:103BC0000B60C38A0161013B016AC3828846E2E758 +:103BD000FFF77EFD0B68C8F8003003690B60C38AED +:103BE0000161013BC382D8F80010D4E78846096818 +:103BF000D1E700BF80841E002DE9F04F8BB00D4649 +:103C000014469B46DDF850908046002800F018814D +:103C1000B9F1000F00F01481531E3F2B00F2108108 +:103C2000012A03D1BBF1000F40F00A810023CDE946 +:103C30000833B8F81430B5EBC30F4FEAC30703D30A +:103C400000200BB0BDE8F08F2B199F42D8F80C3044 +:103C500036BF7F1B2746FFB21BB9D8F81030002BA8 +:103C60007AD0272D4DD8C5F1280600232946B74222 +:103C7000009308ABD8F808002CBFF6B23E46A7EB7D +:103C8000060A354432465FFA8AFAFFF73DFCB8F877 +:103C90001430282103F10053053BDB000493D8F8CE +:103CA0000C300393039B13B1BAF1000F2CD1D8F859 +:103CB000100040B1BAF1000F05D008AB5246691AA6 +:103CC0000096FFF721FC38B2002FB9D066070AD062 +:103CD0000AAB624203EBD40102F0070211F8083C80 +:103CE000134101F8083C082C3DD9102C40F2B58056 +:103CF000202C40F2B780BBF1000F00F09C8008231D +:103D000035E0BA460026C2E7049BE02B28BFE0233B +:103D100006930B44AB42059315D95A1B0398691AB5 +:103D20000096924508AB00F1040034BF5246D2B26F +:103D30000792FFF7E9FB079A1644AAEB020A15441B +:103D4000F6B25FFA8AFA049B069A05999B1A0493C5 +:103D5000039B1B680393A5E700933A4608AB2946EB +:103D6000D8F80800ADE7BBF1000F13D00123B4EB86 +:103D7000C30F6BD0082C12D89DF82030621E23FA96 +:103D800002F2D50706D54FF0FF3202FA04F42343BE +:103D90008DF820309DF8203089F8003051E7102C44 +:103DA00012D8BDF82030621E23FA02F2D10706D5E0 +:103DB0004FF0FF3202FA04F42343ADF82030BDF88F +:103DC0002030A9F800303CE7202C0FD80899631E5A +:103DD00021FA03F3DA0705D54FF0FF3202FA04F4B3 +:103DE0000C430894089BC9F800302AE7402C2AD0DD +:103DF000611EC4F12102A4F12103DDE9086526FA60 +:103E000001F105FA02F225FA03F311431943CB0736 +:103E100011D50122A4F12003C4F1200102FA03F319 +:103E200022FA01F1A2400B43524263EB43033243B7 +:103E30002B43CDE90823DDE90823C9E9002300E786 +:103E40006FF00100FDE66FF00800FAE6082CA1D93A +:103E5000102CB4D9202CEED8C4E7BBF1000FAED0A3 +:103E6000022384E7BBF1000FBCD004237FE70000EE +:103E7000012A30B5144638BF012485B00025402CF6 +:103E800028BF4024012ACDE9025518D81B788DF8A7 +:103E9000083063070AD004AB624203EBD40502F09A +:103EA000070215F8083C934005F8083C03460091CA +:103EB0002246002102A8FFF727FB05B030BD082AE3 +:103EC000E4D9102A03D81B88ADF80830E1E7202A8E +:103ED00095BF1B68D3E900230293CDE90223D8E7FD +:103EE00010B5CB681BB98B600B618B8210BD046968 +:103EF0001A681C600361C38A013BC382CA60F0E791 +:103F000003064CBFC0F3C0300220704708B502461C +:103F1000FFF7F6FF022806D15306C2F30F2001D1A6 +:103F200000F0030008BDC2F30740FBE72DE9F04FA6 +:103F300093B004460D46CDE903230A681046FFF707 +:103F4000DFFF0228824614BFC2F306260026002A9D +:103F500080F2F88112F0C04940F0F481097B002919 +:103F600000F0F081022803D02378B34240F0ED81C5 +:103F7000C2F3046310462944069302F07F030593BD +:103F8000FFF7C4FF059B002283464FEA83480023C6 +:103F900048EA0A4848EA4668CE78CDE90823F3099A +:103FA00048EA0008029368D0059B024608A920460B +:103FB000009353466768B847002800F0C981276A14 +:103FC0004FB9414604F10C00FFF700FB074690B9DA +:103FD0006FF0020055E03B6998450DD03F68002F17 +:103FE000F9D1414604F10C00FFF7F0FA074600282A +:103FF000EED0236A3B60276297F817C006F01F08CF +:10400000CCF3840CACEB0800A8EB0C031FFA80FE89 +:104010000028B8BF0EF120001FFA83FEB8BF00B21F +:10402000002B0793B8BF0EF12003D7E90221BCBFD4 +:104030001BB2079352EA010338D0039B4FF0000CE8 +:10404000DFF81CE39A1A049B63EB010196457CEBB5 +:1040500001032BD36B7B97F81AE0734519D1029BB0 +:10406000002B78D0012821DC7868F8B9DFF8ECC2A1 +:10407000944570EB010316D337E0276A27B96FF038 +:104080000C0013B0BDE8F08F3B699845B4D03F6891 +:10409000F4E7B24890427CEB010301D30020F0E743 +:1040A000029B002BFAD0079B0F2B17DCFA7DB30085 +:1040B0003946204602F0030203F07C031343FB75EC +:1040C000FFF706FB6B7BBB76029B3BB9FB7DC3F323 +:1040D0008402013262F38603FB75D0E76A7BBB7E04 +:1040E0009A42DBD1029B002B35D0B309022B32D090 +:1040F000039B142200210DA8BB60049BFB60FDF70D +:1041000051FC039B0AA920460A93049BADF83EB0DC +:104110000B932B1D8DF840A00C932B7B8DF84180C9 +:10412000013BDBB2ADF83C30069B8DF84230059B7D +:104130008DF8433094F82C3083F001038DF844302F +:10414000A3689847FB7DC3F38403013303F01F0387 +:104150009B02FB82A2E7FB7DC6F34012B2EBD31FAA +:1041600040F0F980C3F38403434540F0FB80029A9A +:10417000B6092B7B002A52D016F0010661D1032B21 +:1041800040F2F380039B394604F10C00BB60049BB2 +:10419000FB60FB8A66F30903AE1DFB8232462B7B74 +:1041A000033BDBB2FFF7A6FA00280CDA39462046BB +:1041B000FFF78EFAFB7DC3F38403013303F01F0383 +:1041C0009B02FB8204E7AB88DDE908843B834FF662 +:1041D000FF73C9F12000A9F1200228FA09F109F1C1 +:1041E000080904FA00F024FA02F2014318461143C8 +:1041F000C9B2FFF7C1F9B9F1400F0346E9D1B8825E +:1042000031462A7B033AD2B2FFF7C6F9FB7DB8826A +:10421000DA43C2F3C01262F3C713FB753EE786B9F7 +:104220002E1D013B394604F10C00DBB23246FFF78C +:1042300061FA0028BADB2A7B3146B88A013AD2B249 +:10424000E2E7F98A013BC1F30901DAB204295BD83C +:10425000281D002307F11B069A4208D910F801CB4C +:10426000013306F801C00131DBB20529F4D103990D +:1042700093420A9138BF043304992CBF002355FAA6 +:1042800083F30B9107F11B010C9179680E930D914B +:10429000291DFB8AADF83EB0C3F309038DF840A099 +:1042A0008DF841801A44069B8DF84230059BADF88D +:1042B0003C208DF8433094F82C3083F001038DF8C6 +:1042C00044300023B88A7B602A7B013AFFF764F907 +:1042D0003B8BB882834203D1A3680AA92046984742 +:1042E00020460AA9FFF7FCFDFB7DBA8AC3F38403CD +:1042F000013303F01F039B02FB823B8B9A420CBFEE +:1043000000206FF01000BCE67B68002BAFD00520CA +:1043100001E01C3033461E68002EFAD1091A2E1D0A +:10432000081D184401EB090C5FFA89F3BCF11B0F5F +:104330009DD89A429BD916F8013B09F1010900F872 +:10434000013BEFE76FF009009BE66FF00A0098E68B +:104350006FF00B0095E66FF00D0092E640420F0003 +:1043600080841E006FF00E008BE66FF00F0088E671 +:10437000EFF30983054968334A6B22F001024A636F +:1043800083F30988002383F31188704700EF00E06E +:10439000302080F3118862B60D4B0E4AD96821F4A3 +:1043A000E0610904090C0A430B49DA60D3F8FC20E8 +:1043B00042F08072C3F8FC20084AC2F8B01F1168AE +:1043C00041F0010111602022DA7783F82200704762 +:1043D00000ED00E00003FA0555CEACC5001000E08A +:1043E000302310B583F311880E4B5B6813F4006320 +:1043F00014D0F1EE103AEFF309844FF08073683C6B +:10440000E361094BDB6B236684F3098801F0F8F95B +:1044100010B1064BA36110BD054BFBE783F3118878 +:10442000F9E700BF00ED00E000EF00E03F04000806 +:104430004204000808B5074B074A196801F03D011E +:10444000996053680BB190689847BDE80840FFF742 +:10445000C7BF00BF00000240304F002008B5084B26 +:104460001968890901F03D018A019A60054AD368FB +:104470000BB110699847BDE80840FFF7B1BF00BF16 +:1044800000000240304F002008B5084B1968090CA5 +:1044900001F03D010A049A60054A53690BB1906925 +:1044A0009847BDE80840FFF79BBF00BF00000240EF +:1044B000304F002008B5084B1968890D01F03D0107 +:1044C0008A059A60054AD3690BB1106A9847BDE81E +:1044D0000840FFF785BF00BF00000240304F0020BA +:1044E00008B5074B074A596801F03D01D960536A86 +:1044F0000BB1906A9847BDE80840FFF771BF00BF55 +:1045000000000240304F002008B5084B5968890967 +:1045100001F03D018A01DA60054AD36A0BB1106BE4 +:104520009847BDE80840FFF75BBF00BF00000240AE +:10453000304F002008B5084B5968090C01F03D01C7 +:104540000A04DA60054A536B0BB1906B9847BDE8DB +:104550000840FFF745BF00BF00000240304F002079 +:1045600008B5084B5968890D01F03D018A05DA60EC +:10457000054AD36B0BB1106C9847BDE80840FFF7B4 +:104580002FBF00BF00000240304F002008B5074B8E +:10459000074A196801F03D019960536C0BB1906CAA +:1045A0009847BDE80840FFF71BBF00BF000402406A +:1045B000304F002008B5084B1968890901F03D010A +:1045C0008A019A60054AD36C0BB1106D9847BDE81B +:1045D0000840FFF705BF00BF00040240304F002035 +:1045E00008B5084B1968090C01F03D010A049A60EE +:1045F000054A536D0BB1906D9847BDE80840FFF731 +:10460000EFBE00BF00040240304F002008B5084B49 +:104610001968890D01F03D018A059A60054AD36D3C +:104620000BB1106E9847BDE80840FFF7D9BE00BF38 +:1046300000040240304F002008B5074B074A596874 +:1046400001F03D01D960536E0BB1906E9847BDE803 +:104650000840FFF7C5BE00BF00040240304F0020F5 +:1046600008B5084B5968890901F03D018A01DA60F3 +:10467000054AD36E0BB1106F9847BDE80840FFF7AD +:10468000AFBE00BF00040240304F002008B5084B09 +:104690005968090C01F03D010A04DA60054A536FBC +:1046A0000BB1906F9847BDE80840FFF799BE00BF77 +:1046B00000040240304F002008B5084B5968890DAE +:1046C00001F03D018A05DA60054AD36F13B1D2F8D3 +:1046D00080009847BDE80840FFF782BE0004024012 +:1046E000304F002000230C4910B51A460B4C0B60CC +:1046F00054F82300026001EB430004334260402B76 +:10470000F6D1074A4FF0FF339360D360C2F8083404 +:10471000C2F80C3410BD00BF304F002020800008CC +:10472000000002400F28F8B510D9102810D0112829 +:1047300011D0122808D10F240720DFF8B4E0012699 +:10474000DEF80050A04208D9002649E00446F4E70C +:104750000F240020F1E70724FBE706FA00F73D42AB +:1047600040D1214C4FEA001C3D4304EB00160EEBF8 +:10477000C000CEF80050C0E90123FBB24BB11B488A +:10478000836B43F001038363036E43F0010303660D +:10479000036E17F47F4F09D01448836B43F0020374 +:1047A0008363036E43F002030366036E54F80C0048 +:1047B000036823F01F030360056815F00105FBD1B2 +:1047C00004EB0C033D2493F80CC05F6804FA0CF46E +:1047D0003C6021240560446112B1987B00F056F9D9 +:1047E0003046F8BD0130ADE7208000080045025892 +:1047F000304F002010B5302484F31188FFF792FF6A +:10480000002383F3118810BD10B50446807B00F0AF +:1048100053F901231049627B03FA02F20B6823EA81 +:104820000203DAB20B604AB90C4A916B21F0010124 +:104830009163116E21F001011166126E13F47F4F26 +:1048400009D1064B9A6B22F002029A631A6E22F08B +:1048500002021A661B6E10BD304F00200045025840 +:1048600008B5302383F31188FFF7CEFF002383F3CD +:10487000118808BD026843681143016003B11847FD +:1048800070470000024A136843F0C003136070478A +:104890000078004013B50E4C204600F0B7FA04F142 +:1048A000140000234FF400720A49009400F074F9D8 +:1048B000094B4FF40072094904F13800009400F0EC +:1048C000EDF9074A074BC4E9172302B010BD00BF3A +:1048D000B44F0020205000208548000820520020BE +:1048E0000078004000E1F505037C30B5214C00293B +:1048F00018BF0C46012B0CD11F4B984209D11F4BFE +:104900009A6C42F080429A641A6F42F080421A67B1 +:104910001B6F2268036EC16D03EB52038466B3FB09 +:10492000F2F36268150442BF23F0070503F00703A2 +:1049300043EA4503CB60A36843F040034B60E36860 +:1049400043F001038B6042F4967343F001030B6064 +:104950004FF0FF330B62510505D512F0102205D040 +:10496000B2F1805F04D080F8643030BD7F23FAE775 +:104970003F23F8E720810008B44F0020004502588B +:104980002DE9F047C66D05463768F46921073462A2 +:104990001AD014F0080118BF4FF48071E20748BF25 +:1049A00041F02001A3074FF0300348BF41F0400120 +:1049B000600748BF41F0800183F31188281DFFF78D +:1049C00059FF002383F31188E2050AD5302383F3CE +:1049D00011884FF48061281DFFF74CFF002383F3FB +:1049E00011884FF030094FF0000A14F0200838D138 +:1049F0003B0616D54FF0300905F1380A200610D5D0 +:104A000089F31188504600F07DF9002836DA082134 +:104A1000281DFFF72FFF27F080033360002383F367 +:104A20001188790614D5620612D5302383F31188D4 +:104A3000D5E913239A4208D12B6C33B127F04007F4 +:104A40001021281DFFF716FF3760002383F311881C +:104A5000E30618D5AA6E1369ABB15069BDE8F047FB +:104A6000184789F31188736A284695F8641019402D +:104A700000F0E6F98AF31188F469B6E7B06288F3CA +:104A80001188F469BAE7BDE8F0870000090100F178 +:104A90006043012203F56143C9B283F8001300F0BB +:104AA0001F039A4043099B0003F1604303F56143F0 +:104AB000C3F880211A60704700F01F0301229A405A +:104AC000430900F160409B0000F5614003F1604341 +:104AD00003F56143C3F88020C3F88021002380F8E8 +:104AE00000337047F8B51546826804460B46AA4263 +:104AF00000D28568A1692669761AB5420BD218469C +:104B00002A46FCF729FFA3692B44A3612846A36822 +:104B10005B1BA360F8BD0CD9AF1B18463246FCF7EF +:104B20001BFF3A46E1683044FCF716FFE3683B445C +:104B3000EBE718462A46FCF70FFFE368E5E70000BD +:104B400083689342F7B50446154600D28568D4E9D8 +:104B50000460361AB5420BD22A46FCF7FDFE6369A3 +:104B60002B4463612846A3685B1BA36003B0F0BDC0 +:104B70000DD93246AF1B0191FCF7EEFE01993A4682 +:104B8000E0683144FCF7E8FEE3683B44E9E72A4685 +:104B9000FCF7E2FEE368E4E710B50A440024C361D1 +:104BA000029B8460C16002610362C0E90000C0E949 +:104BB000051110BD08B5D0E90532934201D18268D4 +:104BC00082B98268013282605A1C426119700021E8 +:104BD000D0E904329A4224BFC368436100F0C0FEAA +:104BE000002008BD4FF0FF30FBE7000070B5302318 +:104BF00004460E4683F31188A568A5B1A368A2698F +:104C0000013BA360531CA36115782269934224BF22 +:104C1000E368A361E3690BB120469847002383F35F +:104C20001188284607E03146204600F089FE00281A +:104C3000E2DA85F3118870BD2DE9F74F04460E4680 +:104C400017469846D0F81C904FF0300A8AF3118826 +:104C50004FF0000B154665B12A4631462046FFF756 +:104C600041FF034660B94146204600F069FE002836 +:104C7000F1D0002383F31188781B03B0BDE8F08FD7 +:104C8000B9F1000F03D001902046C847019B8BF378 +:104C90001188ED1A1E448AF31188DCE7C160C361F4 +:104CA000009B82600362C0E905111144C0E9000065 +:104CB00001617047F8B504460D461646302383F36C +:104CC0001188A768A7B1A368013BA36063695A1C58 +:104CD00062611D70D4E904329A4224BFE3686361C3 +:104CE000E3690BB120469847002080F3118807E064 +:104CF0003146204600F024FE0028E2DA87F31188CE +:104D0000F8BD0000D0E9052310B59A4201D18268B0 +:104D10007AB982680021013282605A1C82611C7853 +:104D200003699A4224BFC368836100F019FE2046DC +:104D300010BD4FF0FF30FBE72DE9F74F04460E465C +:104D400017469846D0F81C904FF0300A8AF3118825 +:104D50004FF0000B154665B12A4631462046FFF755 +:104D6000EFFE034660B94146204600F0E9FD002809 +:104D7000F1D0002383F31188781B03B0BDE8F08FD6 +:104D8000B9F1000F03D001902046C847019B8BF377 +:104D90001188ED1A1E448AF31188DCE70268436823 +:104DA0001143016003B11847704700001430FFF74A +:104DB00043BF00004FF0FF331430FFF73DBF00004A +:104DC0003830FFF7B9BF00004FF0FF333830FFF73E +:104DD000B3BF00001430FFF709BF00004FF0FF31F0 +:104DE0001430FFF703BF00003830FFF763BF000047 +:104DF0004FF0FF323830FFF75DBF0000012914BFCC +:104E00006FF0130000207047FFF744BD044B0360B0 +:104E100000234360C0E9023301230374704700BFDD +:104E20003881000810B53023044683F31188FFF75A +:104E30005BFD02230020237480F3118810BD000065 +:104E400038B5C36904460D461BB904210844FFF771 +:104E5000A5FF294604F11400FFF7ACFE002806DA8E +:104E6000201D4FF40061BDE83840FFF797BF38BD03 +:104E7000026843681143016003B11847704700009E +:104E800013B5406B00F58054D4F8A4381A68117833 +:104E9000042914D1017C022911D119790123128925 +:104EA0008B4013420BD101A94C3002F0F3F9D4F836 +:104EB000A4480246019B2179206800F0DFF902B086 +:104EC00010BD0000143002F075B900004FF0FF3340 +:104ED000143002F06FB900004C3002F047BA000005 +:104EE0004FF0FF334C3002F041BA0000143002F0B2 +:104EF00043B900004FF0FF31143002F03DB900001B +:104F00004C3002F013BA00004FF0FF324C3002F088 +:104F10000DBA00000020704710B500F58054D4F899 +:104F2000A4381A681178042917D1017C022914D1F8 +:104F30005979012352898B4013420ED1143002F06B +:104F4000D5F8024648B1D4F8A4484FF440736179CB +:104F50002068BDE8104000F07FB910BD406BFFF73E +:104F6000DBBF0000704700007FB5124B012504260F +:104F7000044603600023057400F18402436029465F +:104F8000C0E902330C4B0290143001934FF440738C +:104F9000009602F087F8094B04F69442294604F182 +:104FA0004C000294CDE900634FF4407302F04EF9D7 +:104FB00004B070BD608100085D4F0008814E00089C +:104FC0000A68302383F311880B790B3342F82300EE +:104FD0004B79133342F823008B7913B10B3342F82A +:104FE000230000F58053C3F8A418022303740020A3 +:104FF00080F311887047000038B5037F044613B171 +:1050000090F85430ABB90125201D0221FFF730FF85 +:1050100004F114006FF00101257700F0ADFC04F1FC +:105020004C0084F854506FF00101BDE8384000F0A6 +:10503000A3BC38BD10B5012104460430FFF718FFAA +:105040000023237784F8543010BD000038B504469F +:105050000025143002F03EF804F14C00257702F0F0 +:105060000DF9201D84F854500121FFF701FF20465F +:10507000BDE83840FFF750BF90F8803003F0600380 +:10508000202B06D190F881200023212A03D81F2A43 +:1050900006D800207047222AFBD1C0E91D3303E067 +:1050A000034A426707228267C3670120704700BF37 +:1050B0003C23002037B500F58055D5F8A4381A6890 +:1050C000117804291AD1017C022917D119790123F9 +:1050D00012898B40134211D100F14C04204602F09A +:1050E0008DF958B101A9204602F0D4F8D5F8A448AA +:1050F0000246019B2179206800F0C0F803B030BD62 +:1051000001F10B03F0B550F8236085B004460D465D +:10511000FEB1302383F3118804EB8507301D08218D +:10512000FFF7A6FEFB6806F14C005B691B681BB12C +:10513000019002F0BDF8019803A902F0ABF8024615 +:1051400048B1039B2946204600F098F8002383F3DA +:10515000118805B0F0BDFB685A691268002AF5D0C5 +:105160001B8A013B1340F1D104F18002EAE7000001 +:10517000133138B550F82140ECB1302383F3118856 +:1051800004F58053D3F8A4281368527903EB820303 +:10519000DB689B695D6845B104216018FFF768FE14 +:1051A000294604F1140001F0ABFF2046FFF7B4FEDE +:1051B000002383F3118838BD7047000001F07EBAE8 +:1051C00001234022002110B5044600F8303BFCF7D3 +:1051D000E9FB0023C4E9013310BD000010B5302302 +:1051E000044683F311882422416000210C30FCF72F +:1051F000D9FB204601F084FA02230020237080F3BB +:10520000118810BD70B500EB8103054650690E464C +:105210001446DA6018B110220021FCF7C3FBA06924 +:1052200018B110220021FCF7BDFB31462846BDE82D +:10523000704001F065BB000083682022002103F06C +:10524000011310B5044683601030FCF7ABFB204619 +:10525000BDE8104001F0E0BBF0B4012500EB810493 +:1052600047898D40E4683D43A4694581236000235C +:10527000A2606360F0BC01F0FDBB0000F0B401254A +:1052800000EB810407898D40E4683D436469058132 +:1052900023600023A2606360F0BC01F073BC0000D7 +:1052A00070B5022300250446242203702946C0F865 +:1052B00088500C3040F8045CFCF774FB204684F8FE +:1052C000705001F0B1FA63681B6823B1294620468B +:1052D000BDE87040184770BD0378052B10B5044633 +:1052E0000AD080F88C300523037043681B680BB12B +:1052F000042198470023A36010BD00000178052910 +:1053000006D190F88C20436802701B6803B11847DF +:105310007047000070B590F87030044613B1002358 +:1053200080F8703004F18002204601F099FB636838 +:105330009B68B3B994F8803013F0600535D0002134 +:10534000204601F08BFE0021204601F07BFE6368C1 +:105350001B6813B1062120469847062384F8703055 +:1053600070BD204698470028E4D0B4F88630A26F7C +:105370009A4288BFA36794F98030A56F002B4FF045 +:10538000300380F20381002D00F0F280092284F8BE +:10539000702083F3118800212046D4E91D23FFF7F4 +:1053A0006DFF002383F31188DAE794F8812003F07E +:1053B0007F0343EA022340F20232934200F0C580A9 +:1053C00021D8B3F5807F48D00DD8012B3FD0022BD8 +:1053D00000F09380002BB2D104F1880262670222B0 +:1053E000A267E367C1E7B3F5817F00F09B80B3F567 +:1053F000407FA4D194F88230012BA0D1B4F888303A +:1054000043F0020332E0B3F5006F4DD017D8B3F587 +:10541000A06F31D0A3F5C063012B90D863682046FC +:1054200094F882205E6894F88310B4F88430B04712 +:10543000002884D0436863670368A3671AE0B3F564 +:10544000106F36D040F6024293427FF478AF5C4B47 +:1054500063670223A3670023C3E794F88230012B1C +:105460007FF46DAFB4F8883023F00203A4F88830DD +:10547000C4E91D55E56778E7B4F88030B3F5A06F4F +:105480000ED194F88230204684F88A3001F02AFA4E +:1054900063681B6813B101212046984703232370DA +:1054A0000023C4E91D339CE704F18B0363670123E8 +:1054B000C3E72378042B10D1302383F311882046CF +:1054C000FFF7BAFE85F311880321636884F88B50D7 +:1054D00021701B680BB12046984794F88230002B4E +:1054E000DED084F88B300423237063681B68002BA4 +:1054F000D6D0022120469847D2E794F8843020463F +:105500001D0603F00F010AD501F09CFA012804D012 +:1055100002287FF414AF2B4B9AE72B4B98E701F04E +:1055200083FAF3E794F88230002B7FF408AF94F805 +:10553000843013F00F01B3D01A06204602D501F0D3 +:10554000A5FDADE701F096FDAAE794F88230002BA7 +:105550007FF4F5AE94F8843013F00F01A0D01B0651 +:10556000204602D501F07AFD9AE701F06BFD97E73E +:10557000142284F8702083F311882B462A4629468A +:105580002046FFF769FE85F31188E9E65DB1152233 +:1055900084F8702083F3118800212046D4E91D236C +:1055A000FFF75AFEFDE60B2284F8702083F3118882 +:1055B0002B462A4629462046FFF760FEE3E700BF58 +:1055C00090810008888100088C81000838B590F827 +:1055D00070300446002B3ED0063BDAB20F2A34D896 +:1055E0000F2B32D8DFE803F0373131082232313166 +:1055F0003131313131313737856FB0F886309D42E6 +:1056000014D2C3681B8AB5FBF3F203FB12556DB9C4 +:10561000302383F311882B462A462946FFF72EFEB6 +:1056200085F311880A2384F870300EE0142384F87F +:105630007030302383F31188002320461A46194620 +:10564000FFF70AFE002383F3118838BDC36F03B14F +:1056500098470023E7E70021204601F0FFFC0021E6 +:10566000204601F0EFFC63681B6813B10621204659 +:1056700098470623D7E7000010B590F8703004462D +:10568000142B29D017D8062B05D001D81BB110BD7B +:10569000093B022BFBD80021204601F0DFFC002152 +:1056A000204601F0CFFC63681B6813B10621204639 +:1056B0009847062319E0152BE9D10B2380F87030A9 +:1056C000302383F3118800231A461946FFF7D6FDCD +:1056D000002383F31188DAE7C3689B695B68002BBA +:1056E000D5D1C36F03B19847002384F87030CEE75B +:1056F00000238268037503691B6899689142FBD295 +:105700005A680360426010605860704700238268E6 +:10571000037503691B6899689142FBD85A68036056 +:10572000426010605860704708B50846302383F324 +:1057300011880A7D0023052A06D8DFE802F00B0550 +:105740000503120E826913604FF0FF338361FFF788 +:10575000CFFF002383F3118808BD8269936801336A +:105760009360D0E9003213605A60EDE7FFF7C0BFE5 +:10577000054BD96808751868026853601A600122E1 +:10578000D8600275FAF746BE205400200C4B30B5A5 +:10579000DD684B1C87B004460FD02B46094A68468B +:1057A00000F07EF92046FFF7E3FF009B13B1684647 +:1057B00000F080F9A86907B030BDFFF7D9FFF9E71D +:1057C000205400202957000838B50C4D044681614B +:1057D000EB6881689A68914203D8BDE83840FFF7CA +:1057E00087BF1846FFF792FF01230146EC60204671 +:1057F0002375BDE83840FAF70DBE00BF20540020E5 +:10580000044B1A68DB6890689B68984294BF00203C +:105810000120704720540020084B10B51C68D86840 +:10582000226853601A600122DC602275FFF76EFF68 +:1058300001462046BDE81040FAF7ECBD2054002098 +:1058400038B50123084C00252370656001F012FE75 +:1058500001F038FE0549064801F00CFF02232370D1 +:1058600085F3118838BD00BF885600209881000854 +:105870002054002008B572B6044B186500F022FDD4 +:1058800000F0E4FD024B03221A70FEE720540020D2 +:105890008856002000F044B9034A516853685B1AE7 +:1058A0009842FBD8704700BF001000E08B600223D5 +:1058B000086108468B8270478368A3F1840243F82D +:1058C000142C026943F8442C426943F8402C094ADD +:1058D00043F8242CC268A3F1200043F8182C0222BC +:1058E00003F80C2C002203F80B2C034A43F8102C6D +:1058F000704700BF2D0400082054002008B5FFF7B2 +:10590000DBFFBDE80840FFF731BF0000024BDB685A +:1059100098610F20FFF72CBF20540020302383F321 +:105920001188FFF7F3BF000008B50146302383F369 +:1059300011880820FFF72AFF002383F3118808BD90 +:10594000064BDB6839B1426818605A6013604360E7 +:105950000420FFF71BBF4FF0FF307047205400209A +:105960000368984206D01A68026050601846996130 +:10597000FFF7FCBE7047000038B504460D462068AE +:10598000844200D138BD036823605C608561FFF705 +:10599000EDFEF4E7036810B59C68A2420CD85C6881 +:1059A0008A600B604C602160596099688A1A9A601D +:1059B0004FF0FF33836010BD121B1B68ECE7000043 +:1059C0000A2938BF0A2170B504460D460A26601917 +:1059D00001F04AFD01F032FD041BA54203D8751CFD +:1059E00004462E46F3E70A2E04D90120BDE8704094 +:1059F00001F080BE70BD0000F8B5144B0D460A2AB8 +:105A00004FF00A07D96103F11001826038BF0A2202 +:105A1000416019691446016048601861A81801F0D6 +:105A200013FD01F00BFD431B0646A34206D37C1C6D +:105A300028192746354601F017FDF2E70A2F04D949 +:105A40000120BDE8F84001F055BEF8BD205400200B +:105A5000F8B506460D4601F0F1FC0F4A134653F81F +:105A6000107F9F4206D12A4601463046BDE8F840E5 +:105A7000FFF7C2BFD169BB68441A2C1928BF2C4656 +:105A8000A34202D92946FFF79BFF2246314603482D +:105A9000BDE8F840FFF77EBF2054002030540020BE +:105AA000C0E90323002310B45DF8044B4361FFF702 +:105AB000CFBF000010B5194C236998420DD0816802 +:105AC000D0E9003213605A609A680A449A60002351 +:105AD00003604FF0FF33A36110BD0268234643F813 +:105AE000102F53600022026022699A4203D1BDE860 +:105AF000104001F0B3BC936881680B44936001F0DF +:105B00009DFC2269E1699268441AA242E4D91144D9 +:105B1000BDE81040091AFFF753BF00BF2054002012 +:105B20002DE9F047DFF8BC8008F110072C4ED8F8BB +:105B3000105001F083FCD8F81C40AA68031B9A425D +:105B40003ED814444FF00009D5E90032C8F81C4093 +:105B500013605A60C5F80090D8F81030B34201D1F4 +:105B600001F07CFC89F31188D5E903312846984778 +:105B7000302383F311886B69002BD8D001F05EFCD1 +:105B80006A69A0EB040982464A450DD2022001F061 +:105B9000B1FD0022D8F81030B34208D15146284652 +:105BA000BDE8F047FFF728BF121A2244F2E712EBD4 +:105BB00009092946384638BF4A46FFF7EBFEB5E7E4 +:105BC000D8F81030B34208D01444C8F81C00211A89 +:105BD000A960BDE8F047FFF7F3BEBDE8F08700BF5E +:105BE000305400202054002038B501F027FC054A2D +:105BF000D2E90845031B181945F10001C2E9080163 +:105C000038BD00BF2054002000207047FEE7000090 +:105C1000704700004FF0FF307047000002290CD0A1 +:105C2000032904D00129074818BF00207047032A20 +:105C300005D8054800EBC2007047044870470020B3 +:105C4000704700BF708200084C23002024820008A7 +:105C500070B59AB005460846144601A900F0C2F88E +:105C600001A8FBF797FE431C0022C6B25B0010465A +:105C7000C5E9003423700323023404F8013C01AB6E +:105C8000D1B202348E4201D81AB070BD13F8011B94 +:105C9000013204F8010C04F8021CF1E708B53023C6 +:105CA00083F311880348FFF705FA002383F3118873 +:105CB00008BD00BF9056002090F8803003F01F020E +:105CC000012A07D190F881200B2A03D10023C0E9D3 +:105CD0001D3315E003F06003202B08D1B0F88430A9 +:105CE0002BB990F88120212A03D81F2A04D8FFF766 +:105CF000C3B9222AEBD0FAE7034A42670722826738 +:105D0000C3670120704700BF4323002007B5052962 +:105D100017D8DFE801F0191603191920302383F38F +:105D20001188104A01210190FFF76CFA01980221B5 +:105D30000D4AFFF767FA0D48FFF788F9002383F350 +:105D4000118803B05DF804FB302383F31188074802 +:105D5000FFF752F9F2E7302383F311880348FFF786 +:105D600069F9EBE7C4810008E8810008905600203B +:105D700038B50C4D0C4C2A460C4904F10800FFF7CD +:105D800067FF05F1CA0204F110000949FFF760FF3F +:105D900005F5CA7204F118000649BDE83840FFF75E +:105DA00057BF00BF686F00204C230020A48100086B +:105DB000AE810008B981000870B5044608460D465A +:105DC000FBF7E8FDC6B22046013403780BB918464C +:105DD00070BD32462946FBF7C9FD0028F3D10120EA +:105DE000F6E700002DE9F04705460C46FBF7D2FD2B +:105DF0002A49C6B22846FFF7DFFF08B10936F6B2D6 +:105E000027492846FFF7D8FF08B11036F6B2632EAF +:105E10000BD8DFF88880DFF88890224FDFF890A059 +:105E20002E7846B92670BDE8F08729462046BDE8A1 +:105E3000F04702F065B8252E2CD1072241462846AE +:105E4000FBF794FD60B9184B224603F1100153F89B +:105E5000040B8B4242F8040BF9D107351034DFE70D +:105E6000082249462846FBF781FD98B9A21C0F4B32 +:105E7000197802320909C95D02F8041C13F8011BE4 +:105E800001F00F015345C95D02F8031CF0D118342D +:105E90000835C5E7013504F8016BC1E790820008B9 +:105EA000B9810008988200081E7F000800E8F11FF1 +:105EB0000CE8F11FBFF34F8F044B1A695107FCD157 +:105EC000D3F810215207F8D1704700BF00200052CC +:105ED00008B50D4B1B78ABB9FFF7ECFF0B4BDA683D +:105EE000D10704D50A4A5A6002F188325A60D3F8C1 +:105EF0000C21D20706D5064AC3F8042102F18832E4 +:105F0000C3F8042108BD00BFC67100200020005264 +:105F10002301674508B5114B1B78F3B9104B1A697B +:105F2000510703D5DA6842F04002DA60D3F8102155 +:105F3000520705D5D3F80C2142F04002C3F80C21DA +:105F4000FFF7B8FF064BDA6842F00102DA60D3F8D7 +:105F50000C2142F00102C3F80C2108BDC6710020DB +:105F6000002000520F289ABF00F5806040040020F6 +:105F7000704700004FF40030704700001020704759 +:105F80000F2808B50BD8FFF7EDFF00F500330268C6 +:105F9000013204D104308342F9D1012008BD002030 +:105FA000FCE700000F2838B505463FD8FFF782FF11 +:105FB0001F4CFFF78DFF4FF0FF3307286361C4F8D4 +:105FC00014311DD82361FFF775FF030243F024034A +:105FD000E360E36843F08003E36023695A07FCD47D +:105FE0002846FFF767FFFFF7BDFF4FF4003100F0D1 +:105FF00009FA2846FFF78EFFBDE83840FFF7C0BF1B +:10600000C4F81031FFF756FFA0F108031B0243F05C +:106010002403C4F80C31D4F80C3143F08003C4F8E5 +:106020000C31D4F810315B07FBD4D9E7002038BD20 +:10603000002000522DE9F84F05460C46104645EA6F +:106040000203DE0602D00020BDE8F88F20F01F001A +:10605000DFF8BCB0DFF8BCA0FFF73AFF04EB0008A4 +:10606000444503D10120FFF755FFEDE720222946E3 +:10607000204601F013FF10B920352034F0E72B46FD +:1060800005F120021F68791CDDD104339A42F9D151 +:1060900005F178431B481C4EB3F5801F1B4B38BFDE +:1060A000184603F1F80332BFD946D1461E46FFF722 +:1060B00001FF0760A5EB040C336804F11C0143F0F9 +:1060C00002033360231FD9F8007017F00507FAD1D7 +:1060D00053F8042F8B424CF80320F4D1BFF34F8FB9 +:1060E000FFF7E8FE4FF0FF332022214603602846E9 +:1060F000336823F00203336001F0D0FE0028BBD0E8 +:106100003846B0E7142100520C20005214200052EF +:10611000102000521021005210B5084C237828B1ED +:106120001BB9FFF7D5FE0123237010BD002BFCD057 +:106130002070BDE81040FFF7EDBE00BFC671002023 +:106140002DE9F04F0D4685B0814658B111F00D068E +:1061500014BF2022082211F00803019304D0431E2B +:1061600003426AD0002435E0002E37D009F11F0128 +:1061700021F01F094FF00108324F05F00403DFF84A +:10618000D0A005EA080BBBF1000F32D07869C00738 +:106190002FD408F101080C37B8F1060FF3D19EB9DE +:1061A000294D4946A819019201F0AEF9044600288C +:1061B0003AD11836019A782EF3D1494601F0A4F964 +:1061C0000446002830D1019A4946204801F09CF944 +:1061D000044668BB204605B0BDE8F08F0029C9D150 +:1061E00001462846029201F08FF90446E0B9029A6E +:1061F000C0E713B178694107CBD5AC0702D5786900 +:106200008007C6D5019911B178690107C1D5182059 +:10621000494600FB08A0CDE9022301F075F90446C8 +:10622000DDE902230028B4D04A460021204601E0DF +:106230004A460021FBF7B6FBCCE70246002E95D17B +:1062400098E700BFAC820008F8710020C8710020F8 +:10625000E07100200121FFF773BF0000F8B5144D75 +:1062600001241827134E40F2FF3200210120FBF7D2 +:1062700099FB07FB046001342A6955F80C1F01F0F3 +:106280002FF9062CF5D137254FF4C0542046FFF7DF +:10629000E1FF014628B122460748BDE8F84001F079 +:1062A0001FB9C4EBC404013D4FEAD404EED1F8BDDC +:1062B000AC820008E0710020C871002008B101F034 +:1062C00095B9704738B5054D00240334696855F811 +:1062D0000C0B00F0A9F8122CF7D138BDAC820008E5 +:1062E00038B5EFF311859DB9EFF30584C4F30804C5 +:1062F000302334B183F31188FFF776FC85F31188DE +:1063000038BD83F31188FFF76FFC84F3118838BD23 +:10631000BDE83840FFF768BC10B5FFF7E1FF104C4F +:10632000C008104A002340EA4170C908A0FB04ECF1 +:10633000A0FB020E1CEB0000A1FB044CA1FB02120F +:106340005B41001943EB0C0011EB0E0142F100021E +:10635000411842F10000090941EA007010BD00BF78 +:10636000CFF753E3A59BC4200244074BD2B210B52C +:10637000904200D110BD441C00B253F8200041F8F7 +:10638000040BE0B2F4E700BF504000580E4B30B5AC +:106390001C6F240405D41C6F1C671C6F44F400445C +:1063A0001C670A4C02442368D2B243F48073236012 +:1063B000074B904200D130BD441C51F8045B00B241 +:1063C00043F82050E0B2F4E7004402580048025875 +:1063D0005040005807B5012201A90020FFF7C4FF73 +:1063E000019803B05DF804FB13B50446FFF7F2FF14 +:1063F000A04205D0012201A900200194FFF7C6FFA9 +:1064000002B010BD0144BFF34F8F064B884204D346 +:10641000BFF34F8FBFF36F8F7047C3F85C0220301C +:10642000F4E700BF00ED00E00144BFF34F8F064BDF +:10643000884204D3BFF34F8FBFF36F8F7047C3F809 +:1064400070022030F4E700BF00ED00E0704700006C +:10645000114BDA6952021ED59A69D00704D50F4A4A +:106460009A6002F144329A600B4BDA69D107FCD48E +:106470001A6A22F480021A629A6942F002029A6150 +:10648000DA69D207FCD49A6942F001029A61024AA1 +:10649000D369DB07FCD47047002000523B2A19085F +:1064A000074B45F255521A6002225A6040F6FF72BD +:1064B0009A604CF6CC421A600122024B1A70704767 +:1064C0000048005874720020034B1B781BB1034B2B +:1064D0004AF6AA221A6070477472002000480058D9 +:1064E000034B1A681AB9034AD2F8D0241A607047CD +:1064F0007072002000400258024B4FF48032C3F803 +:10650000D02470470040025808B5FFF7E9FF024B5E +:106510001868C0F3806008BD7072002070B5BFF3CA +:106520004F8FBFF36F8F1A4A0021C2F85012BFF38A +:106530004F8FBFF36F8F536943F400335361BFF341 +:106540004F8FBFF36F8FC2F88410BFF34F8FD2F815 +:10655000803043F6E074C3F3C900C3F34E335B01EC +:1065600003EA0406014646EA81750139C2F8605221 +:10657000F9D2203B13F1200FF2D1BFF34F8F5369B3 +:1065800043F480335361BFF34F8FBFF36F8F70BD00 +:1065900000ED00E0FEE70000214B2248224A70B5E2 +:1065A000904237D3214BC11EDA1C121A22F003028B +:1065B0008B4238BF00220021FBF7F4F91C4A00236C +:1065C000C2F88430BFF34F8FD2F8803043F6E074C6 +:1065D000C3F3C900C3F34E335B0103EA040601466B +:1065E00046EA81750139C2F86C52F9D2203B13F1A9 +:1065F000200FF2D1BFF34F8FBFF36F8FBFF34F8FD9 +:10660000BFF36F8F0023C2F85032BFF34F8FBFF339 +:106610006F8F70BD53F8041B40F8041BC0E700BF28 +:10662000DC8400086874002068740020687400200E +:1066300000ED00E0054B996B21EA000199631A6EA9 +:1066400022EA00021A661B6E704700BF004502581E +:1066500070B5D0E9244300224FF0FF359E6804EB6B +:1066600042135101D3F80009002805DAD3F80009D4 +:1066700040F08040C3F80009D3F8000B002805DA89 +:10668000D3F8000B40F08040C3F8000B01326318D0 +:106690009642C3F80859C3F8085BE0D24FF00113E3 +:1066A000C4F81C3870BD0000890141F0200101616F +:1066B00003699B06FCD41220FFF7EEB810B50A4C14 +:1066C0002046FEF77DFD094BC4F89030084BC4F816 +:1066D0009430084C2046FEF773FD074BC4F8903009 +:1066E000064BC4F8943010BD7872002000000840BA +:1066F000188300081473002000000440248300085D +:1067000070B503780546012B58D13F4BD0F8904027 +:10671000984254D13D4B0E2165209A6B42F00062A5 +:106720009A631A6E42F000621A661B6E384BD3F8F9 +:10673000802042F00062C3F88020D3F8802022F04D +:106740000062C3F88020D3F88030FEF79FF9314B08 +:10675000E360314BC4F800380023D5F89060C4F8EA +:10676000003EC02323604FF40413A3633369002B5E +:10677000FCDA01230C203361FFF78EF83369DB0765 +:10678000FCD41220FFF788F83369002BFCDA0026CE +:106790002846A660FFF75CFF6B68C4F81068DB68EA +:1067A000C4F81468C4F81C6863BB1C4BA3614FF0A9 +:1067B000FF336361A36843F00103A36070BD184B0E +:1067C0009842C9D1114B4FF080609A6B42F0007231 +:1067D0009A631A6E42F000721A661B6E0C4BD3F865 +:1067E000802042F00072C3F88020D3F8802022F08D +:1067F0000072C3F88020D3F88030FFF71BFF0E2112 +:106800004D20A2E7074BD1E77872002000450258DF +:10681000004402584014004003002002003C30C0F5 +:1068200014730020083C30C0F8B5D0F890400546FD +:1068300000214FF000662046FFF736FFD5F8941090 +:1068400000234FF001128F684FF0FF30C4F8343846 +:10685000C4F81C2804EB431201339F42C2F80069BC +:10686000C2F8006BC2F80809C2F8080BF2D20B6834 +:10687000D5F89020C5F8983063621023136116692B +:1068800016F01006FBD11220FFF706F8D4F80038F6 +:1068900023F4FE63C4F80038A36943F4402343F0B3 +:1068A0001003A3610923C4F81038C4F814380B4B43 +:1068B000EB604FF0C043C4F8103B094BC4F8003BF9 +:1068C000C4F81069C4F80039D5F8983003F1100203 +:1068D00043F48013C5F89820A362F8BDF482000841 +:1068E00040800010D0F8902090F88A10D2F800383C +:1068F00023F4FE6343EA0113C2F800387047000036 +:106900002DE9F84300EB8103D0F890500C46804607 +:10691000DA680FFA81F94801166806F00306731E5B +:10692000022B05EB41134FF0000194BFB604384E23 +:10693000C3F8101B4FF0010104F1100398BF06F1DA +:10694000805601FA03F3916998BF06F500460029C5 +:106950003AD0578A04F15801374349016F50D5F8AE +:106960001C180B430021C5F81C382B180127C3F84D +:106970001019A7405369611E9BB3138A928B9B0821 +:10698000012A88BF5343D8F89820981842EA034355 +:1069900001F140022146C8F89800284605EB820222 +:1069A0005360FFF781FE08EB8900C3681B8A43EA46 +:1069B000845348341E4364012E51D5F81C381F43BC +:1069C000C5F81C78BDE8F88305EB4917D7F8001B1C +:1069D00021F40041C7F8001BD5F81C1821EA030375 +:1069E000C0E704F13F030B4A2846214605EB830329 +:1069F0005A60FFF759FE05EB4910D0F8003923F42F +:106A00000043C0F80039D5F81C3823EA0707D7E758 +:106A10000080001000040002D0F894201268C0F832 +:106A20009820FFF715BE00005831D0F8903049018A +:106A30005B5813F4004004D013F4001F0CBF022075 +:106A4000012070474831D0F8903049015B5813F469 +:106A5000004004D013F4001F0CBF02200120704737 +:106A600000EB8101CB68196A0B6813604B685360B7 +:106A70007047000000EB810330B5DD68AA69136838 +:106A8000D36019B9402B84BF402313606B8A14680C +:106A9000D0F890201C4402EB4110013C09B2B4FB39 +:106AA000F3F46343033323F0030343EAC44343F0A3 +:106AB000C043C0F8103B2B6803F00303012B0ED139 +:106AC000D2F8083802EB411013F4807FD0F8003B75 +:106AD00014BF43F0805343F00053C0F8003B02EB77 +:106AE0004112D2F8003B43F00443C2F8003B30BDF2 +:106AF0002DE9F041D0F8906005460C4606EB4113B5 +:106B0000D3F8087B3A07C3F8087B08D5D6F81438C1 +:106B10001B0704D500EB8103DB685B689847FA0725 +:106B20001FD5D6F81438DB071BD505EB8403D968CD +:106B3000CCB98B69488A5A68B2FBF0F600FB162282 +:106B40008AB91868DA6890420DD2121AC3E9002493 +:106B5000302383F3118821462846FFF78BFF84F307 +:106B60001188BDE8F081012303FA04F26B8923EA5E +:106B700002036B81CB68002BF3D021462846BDE889 +:106B8000F041184700EB81034A0170B5DD68D0F889 +:106B900090306C692668E66056BB1A444FF40020BA +:106BA000C2F810092A6802F00302012A0AB20ED1C3 +:106BB000D3F8080803EB421410F4807FD4F80009DE +:106BC00014BF40F0805040F00050C4F8000903EBBF +:106BD0004212D2F8000940F00440C2F80009012234 +:106BE000D3F8340802FA01F10143C3F8341870BD38 +:106BF00019B9402E84BF4020206020681A442E8A94 +:106C00008419013CB4FBF6F440EAC44040F0005063 +:106C1000C6E700002DE9F843D0F8906005460C4621 +:106C20004F0106EB4113D3F8088918F0010FC3F8A0 +:106C300008891CD0D6F81038DB0718D500EB810383 +:106C4000D3F80CC0DCF81430D3F800E0DA689645CD +:106C500030D2A2EB0E024FF000091A60C3F8049084 +:106C6000302383F31188FFF78DFF89F3118818F023 +:106C7000800F1DD0D6F834380126A640334217D0F5 +:106C800005EB84030134D5F89050D3F80CC0E4B27E +:106C90002F44DCF8142005EB0434D2F800E05168EE +:106CA000714514D3D5F8343823EA0606C5F834689C +:106CB000BDE8F883012303FA01F2038923EA020302 +:106CC0000381DCF80830002BD1D09847CFE7AEEB3A +:106CD0000103BCF81000834228BF0346D7F8180907 +:106CE00080B2B3EB800FE3D89068A0F1040959F8A3 +:106CF000048FC4F80080A0EB09089844B8F1040F91 +:106D0000F5D818440B4490605360C8E72DE9F84F5C +:106D1000D0F8905004466E69AB691E4016F4805856 +:106D20006E6103D0BDE8F84FFEF7BABA002E12DA52 +:106D3000D5F8003E9B0705D0D5F8003E23F00303AD +:106D4000C5F8003ED5F80438204623F00103C5F805 +:106D50000438FEF7D3FA370505D52046FFF778FC4F +:106D60002046FEF7B9FAB0040CD5D5F8083813F070 +:106D7000060FEB6823F470530CBF43F4105343F435 +:106D8000A053EB6031071BD56368DB681BB9AB69A7 +:106D900023F00803AB612378052B0CD1D5F8003E16 +:106DA0009A0705D0D5F8003E23F00303C5F8003E4E +:106DB0002046FEF7A3FA6368DB680BB120469847CC +:106DC000F30200F1BA80B70226D5D4F890900027DC +:106DD0004FF0010A09EB4712D2F8003B03F44023BD +:106DE000B3F5802F11D1D2F8003B002B0DDA628968 +:106DF0000AFA07F322EA0303638104EB8703DB68E3 +:106E0000DB6813B13946204698470137D4F89430EF +:106E1000FFB29B689F42DDD9F00619D5D4F89000E7 +:106E2000026AC2F30A1702F00F0302F4F012B2F57D +:106E3000802F00F0CA80B2F5402F09D104EB830304 +:106E4000002200F58050DB681B6A974240F0B0805A +:106E50003003D5F8185835D5E90303D5002120466D +:106E6000FFF746FEAA0303D501212046FFF740FEA7 +:106E70006B0303D502212046FFF73AFE2F0303D50B +:106E800003212046FFF734FEE80203D50421204603 +:106E9000FFF72EFEA90203D505212046FFF728FEA5 +:106EA0006A0203D506212046FFF722FE2B0203D5F6 +:106EB00007212046FFF71CFEEF0103D508212046DD +:106EC000FFF716FE700340F1A780E90703D5002104 +:106ED0002046FFF79FFEAA0703D501212046FFF7B2 +:106EE00099FE6B0703D502212046FFF793FE2F077B +:106EF00003D503212046FFF78DFEEE0603D50421BE +:106F00002046FFF787FEA80603D505212046FFF798 +:106F100081FE690603D506212046FFF77BFE2A067F +:106F200003D507212046FFF775FEEB0574D52046F3 +:106F30000821BDE8F84FFFF76DBED4F890904FF0F0 +:106F4000000B4FF0010AD4F894305FFA8BF79B687E +:106F50009F423FF638AF09EB4713D3F8002902F4FC +:106F60004022B2F5802F20D1D3F80029002A1CDA64 +:106F7000D3F8002942F09042C3F80029D3F8002941 +:106F8000002AFBDB3946D4F89000FFF78DFB2289FD +:106F90000AFA07F322EA0303238104EB8703DB6881 +:106FA0009B6813B13946204698470BF1010BCAE79D +:106FB000910701D1D0F80080072A02F101029CBF9D +:106FC00003F8018B4FEA18283FE704EB830300F531 +:106FD0008050DA68D2F818C0DCF80820DCE9001C20 +:106FE000A1EB0C0C00218F4208D1DB689B699A68E9 +:106FF0003A449A605A683A445A6029E711F0030FFC +:1070000001D1D0F800808C4501F1010184BF02F864 +:10701000018B4FEA1828E6E7BDE8F88F08B503486A +:10702000FFF774FEBDE80840FDF7DAB9787200207A +:1070300008B50348FFF76AFEBDE80840FDF7D0B980 +:1070400014730020D0F8903003EB4111D1F8003BCD +:1070500043F40013C1F8003B70470000D0F89030B3 +:1070600003EB4111D1F8003943F40013C1F80039A2 +:1070700070470000D0F8903003EB4111D1F8003B8D +:1070800023F40013C1F8003B70470000D0F89030A3 +:1070900003EB4111D1F8003923F40013C1F8003992 +:1070A0007047000030B50433039C0172002104FBDB +:1070B0000325C160C0E90653049B0363059BC0E937 +:1070C0000000C0E90422C0E90842C0E90A11436394 +:1070D00030BD00000022416AC260C0E90411C0E96D +:1070E0000A226FF00101FEF747BC0000D0E904322C +:1070F000934201D1C2680AB9181D70470020704739 +:10710000036919600021C2680132C260C269134478 +:1071100082699342036124BF436A0361FEF720BC86 +:1071200038B504460D46E3683BB162690020131D83 +:107130001268A3621344E36207E0237A33B9294655 +:107140002046FEF7FDFB0028EDDA38BD6FF00100A8 +:10715000FBE70000C368C269013BC3604369134495 +:1071600082699342436124BF436A4361002383627F +:10717000036B03B11847704770B53023044683F39F +:107180001188866A3EB9FFF7CBFF054618B186F332 +:107190001188284670BDA36AE26A13F8015B934226 +:1071A000A36202D32046FFF7D5FF002383F31188A3 +:1071B000EFE700002DE9F84F04460E4617469846C3 +:1071C0004FF0300989F311880025AA46D4F828B079 +:1071D000BBF1000F09D141462046FFF7A1FF20B1C6 +:1071E0008BF311882846BDE8F88FD4E90A12A7EB83 +:1071F000050B521A934528BF9346BBF1400F1BD98C +:10720000334601F1400251F8040B914243F8040B5C +:10721000F9D1A36A403640354033A362D4E90A234A +:107220009A4202D32046FFF795FF8AF31188BD42A8 +:10723000D8D289F31188C9E730465A46FAF78CFB51 +:10724000A36A5E445D445B44A362E7E710B5029C19 +:107250000433017203FB0421C460C0E90613002358 +:10726000C0E90A33039B0363049BC0E90000C0E943 +:107270000422C0E90842436310BD0000026A6FF0B7 +:107280000101C260426AC0E904220022C0E90A2268 +:10729000FEF772BBD0E904239A4201D1C26822B939 +:1072A000184650F8043B0B60704700231846FAE775 +:1072B000C3680021C2690133C36043691344826912 +:1072C0009342436124BF436A4361FEF749BB000018 +:1072D00038B504460D46E3683BB1236900201A1D0A +:1072E000A262E2691344E36207E0237A33B92946D4 +:1072F0002046FEF725FB0028EDDA38BD6FF00100CF +:10730000FBE7000003691960C268013AC260C26904 +:10731000134482699342036124BF436A03610023DB +:107320008362036B03B118477047000070B53023C8 +:107330000D460446114683F31188866A2EB9FFF77D +:10734000C7FF10B186F3118870BDA36A1D70A36AD0 +:10735000E26A01339342A36204D3E169204604390F +:10736000FFF7D0FF002080F31188EDE72DE9F84FFB +:1073700004460D46904699464FF0300A8AF311882C +:107380000026B346A76A4FB949462046FFF7A0FF3B +:1073900020B187F311883046BDE8F88FD4E90A0799 +:1073A0003A1AA8EB0607974228BF1746402F1BD969 +:1073B00005F1400355F8042B9D4240F8042BF9D108 +:1073C000A36A40364033A362D4E90A239A4204D325 +:1073D000E16920460439FFF795FF8BF31188464594 +:1073E000D9D28AF31188CDE729463A46FAF7B4FA9A +:1073F000A36A3D443E443B44A362E5E7D0E904234D +:107400009A4217D1C3689BB1836A8BB1043B9B1A24 +:107410000ED01360C368013BC360C3691A4483691B +:107420009A42026124BF436A0361002383620123FD +:10743000184670470023FBE700F05CBA014B586A1E +:10744000704700BF000C0040034B002258631A61D4 +:107450000222DA60704700BF000C0040014B00229E +:10746000DA607047000C0040014B5863704700BF62 +:10747000000C0040024B034A1A60034A5A607047EE +:10748000C87300206874002000000220074B4942A6 +:1074900010B55C68201A08401968821A8A4203D322 +:1074A000A24201D85A6010BD0020FCE7C87300203A +:1074B00008B5302383F31188FFF7E8FF002383F337 +:1074C000118808BD04480121044B03600023C0E972 +:1074D00001330C3000F016B9D0730020B1740008ED +:1074E000CB1D083A23F00703591A521A012110B490 +:1074F000D2080024C0E9004384600C301C605A604C +:107500005DF8044B00F0FEB82DE9F84F364ECD1D66 +:107510000F46002818BF0646082A4FEAD50538BF8F +:10752000082206F10C08341D9146404600F006F989 +:1075300009F10701C9F1000E224624686CB94046E2 +:1075400000F006F93368CBB308224946E8009847B3 +:10755000044698B340E9026730E004EB010CD4F82C +:1075600004A00CEA0E0C0AF10100ACF1080304EBD4 +:10757000C0009842E0D9A0EB0C0CB5EBEC0F4FEA41 +:10758000EC0BD9D89C421CD204F10802AB45A3EB0A +:1075900002024FEAE202626009D9691CED432068E9 +:1075A00003EBC1025D44556043F8310022601C4684 +:1075B0005F60404644F8086B00F0CAF82046BDE81A +:1075C000F88FAA45216802D111602346EFE7013503 +:1075D00004EBC50344F8351003F10801401AC0104C +:1075E00058601360F1E700BFD0730020F8B550F881 +:1075F000043C044650F8085CA0F1080607332F1D30 +:107600000C35DB0840F8043C284600F097F83B4670 +:107610009F421A6801D0B34228D20AB1964225D2BD +:1076200044F8082C54F8042C1E60013254F8081C4D +:1076300006EBC200814206D14868024444F8042C9B +:107640000A6844F8082C5868411C03EBC1018E42BB +:1076500007D154F8042C013202445A6054F8082C23 +:107660001A602846BDE8F84000F072B81346CFE72C +:10767000FEE7000070B51B4B0025044686B058603D +:107680000E4685620163FCF783FE04F11003A560DA +:10769000E562C4E904334FF0FF33C4E90044C4E9B0 +:1076A0000635FFF7CBFE2B46024604F13401204697 +:1076B000C4E9082380230C4A2565FEF7F7F8012367 +:1076C0000A4AE06000920375684672680192B268E7 +:1076D000CDE90223064BCDE90435FEF70FF906B0DC +:1076E00070BD00BF88560020308300083583000835 +:1076F00071760008024AD36A1843D062704700BF0F +:1077000020540020C0E90000816070478368013B7D +:10771000002B10B583600CDA074BDC684368A0616E +:10772000206063601C6044600520FEF721F8A069BA +:1077300010BD0020FCE700BF2054002008B5302316 +:1077400083F31188FFF7E2FF002383F3118808BD5C +:1077500008B5302383F3118883680133002B8360DD +:1077600007DC036800211A68026050601846FEF7C3 +:107770002BF8002383F3118808BD00004B68436099 +:107780008B688360CB68C3600B6943614B6903629C +:107790008B6943620B6803607047000008B53C4B7F +:1077A00040F2FF713B48D3F888200A43C3F8882091 +:1077B000D3F8882022F4FF6222F00702C3F8882061 +:1077C000D3F88830344B1A6C0A431A649A6E0A4311 +:1077D0009A66324A9B6E1146FFF7D0FF00F5806033 +:1077E00002F11C01FFF7CAFF00F5806002F13801C9 +:1077F000FFF7C4FF00F5806002F15401FFF7BEFF00 +:1078000000F5806002F17001FFF7B8FF00F58060BD +:1078100002F18C01FFF7B2FF00F5806002F1A801D0 +:10782000FFF7ACFF00F5806002F1C401FFF7A6FF8F +:1078300000F5806002F1E001FFF7A0FF00F5806035 +:1078400002F1FC01FFF79AFF02F58C7100F58060F0 +:10785000FFF794FF00F010F9114BD3F8902242F09B +:107860000102C3F89022D3F8942242F00102C3F837 +:1078700094220522C3F898204FF06052C3F89C2050 +:10788000084AC3F8A020BDE80840FEF7E1BD00BFEC +:107890000044025800000258004502583C8300088A +:1078A00000ED00E01F00080308B500F0C3FAFDF783 +:1078B000C7FF0D4BDA6B42F04002DA635A6E22F0DA +:1078C00040025A665B6E094B1A6842F008021A6061 +:1078D0001A6842F004021A60FEF702FEFEF7BEFCD0 +:1078E000BDE80840FEF744BA0045025800180248B7 +:1078F000704700000E4B9A6C42F008029A641A6FAF +:1079000042F008021A670B4A1B6FD36B43F008035F +:10791000D363C722084B9A624FF0FF32DA6200222B +:107920009A615A63DA605A6001225A611A6070479C +:10793000004502580010005C000C0040094A08B5E0 +:107940001169D3680B40D9B29B076FEA010111613D +:1079500007D5302383F31188FDF79CFF002383F3C1 +:10796000118808BD000C0040044BDA6B0243DA6357 +:107970005A6E104358665B6E704700BF0045025850 +:1079800008B53C4B4FF0FF31D3F8802062F0004245 +:10799000C3F88020D3F8802002F00042C3F8802092 +:1079A000D3F88020D3F88420C3F88410D3F884203F +:1079B0000022C3F88420D3F88400D86F40F0FF4041 +:1079C00040F4FF0040F4DF4040F07F00D867D86FFC +:1079D00020F0FF4020F4FF0020F4DF4020F07F0083 +:1079E000D867D86FD3F888006FEA40506FEA5050DC +:1079F000C3F88800D3F88800C0F30A00C3F88800F1 +:107A0000D3F88800D3F89000C3F89010D3F8900012 +:107A1000C3F89020D3F89000D3F89400C3F89410E2 +:107A2000D3F89400C3F89420D3F89400D3F89800C6 +:107A3000C3F89810D3F89800C3F89820D3F89800AA +:107A4000D3F88C00C3F88C10D3F88C00C3F88C20CA +:107A5000D3F88C00D3F89C00C3F89C10D3F89C108A +:107A6000C3F89C20D3F89C30FCF73CFEBDE80840EE +:107A700000F0B4B90044025808B50122504BC3F8D5 +:107A80000821504B5A6D42F002025A65DA6F42F0FB +:107A90000202DA670422DB6F4B4BDA605A6891040A +:107AA000FCD54A4A1A6001229A60494ADA600022EB +:107AB0001A614FF440429A61434B9A699204FCD593 +:107AC0001A6842F480721A60424B1A6F12F4407FB7 +:107AD00004D04FF480321A6700221A671A6842F005 +:107AE00001021A603B4B1A685007FCD500221A614C +:107AF0001A6912F03802FBD1012119604FF0804160 +:107B000059605A67344ADA62344A1A611A6842F490 +:107B100080321A602F4B1A689103FCD51A6842F420 +:107B200080521A601A689204FCD52D4A2D499A6237 +:107B300000225A63196301F57C01DA6301F5E771EC +:107B400099635A64284A1A64284ADA621A6842F029 +:107B5000A8521A601F4B1A6802F02852B2F1285F2F +:107B6000F9D148229A614FF48862DA6140221A62A0 +:107B70001F4ADA641F4A1A651F4A5A651F4A9A65E6 +:107B800032231F4A1360136803F00F03022BFAD14C +:107B9000104A136943F003031361136903F03803B8 +:107BA000182BFAD14FF00050FFF7DEFE4FF0804067 +:107BB000FFF7DAFE4FF00040BDE80840FFF7D4BE03 +:107BC00000800051004502580048025800C000F0F3 +:107BD00004000001004402580000FF0100889008E2 +:107BE0003220600063020901470E0508DD0BBF016A +:107BF00020000020000001100910E0000001011029 +:107C0000002000524FF0B04208B5D2F8883003F09F +:107C10000103C2F8883023B1044A13680BB15068DD +:107C20009847BDE80840FCF7DBBB00BFE8730020C5 +:107C30004FF0B04208B5D2F8883003F00203C2F822 +:107C4000883023B1044A93680BB1D0689847BDE8E7 +:107C50000840FCF7C5BB00BFE87300204FF0B042FE +:107C600008B5D2F8883003F00403C2F8883023B195 +:107C7000044A13690BB150699847BDE80840FCF706 +:107C8000AFBB00BFE87300204FF0B04208B5D2F898 +:107C9000883003F00803C2F8883023B1044A93699E +:107CA0000BB1D0699847BDE80840FCF799BB00BF0D +:107CB000E87300204FF0B04208B5D2F8883003F0E6 +:107CC0001003C2F8883023B1044A136A0BB1506A1A +:107CD0009847BDE80840FCF783BB00BFE87300206D +:107CE0004FF0B04310B5D3F8884004F47872C3F86D +:107CF0008820A30604D5124A936A0BB1D06A98472C +:107D0000600604D50E4A136B0BB1506B98472106E1 +:107D100004D50B4A936B0BB1D06B9847E20504D5A1 +:107D2000074A136C0BB1506C9847A30504D5044A5D +:107D3000936C0BB1D06C9847BDE81040FCF750BB7A +:107D4000E87300204FF0B04310B5D3F8884004F436 +:107D50007C42C3F88820620504D5164A136D0BB126 +:107D6000506D9847230504D5124A936D0BB1D06D21 +:107D70009847E00404D50F4A136E0BB1506E984734 +:107D8000A10404D50B4A936E0BB1D06E98476204E0 +:107D900004D5084A136F0BB1506F9847230404D5DC +:107DA000044A936F0BB1D06F9847BDE81040FCF7C1 +:107DB00017BB00BFE873002008B50348FCF7E0FDDF +:107DC000BDE80840FCF70CBBB44F002008B5FFF736 +:107DD000B5FDBDE80840FCF703BB0000062108B56F +:107DE0000846FCF753FE06210720FCF74FFE06214C +:107DF0000820FCF74BFE06210920FCF747FE062170 +:107E00000A20FCF743FE06211720FCF73FFE06215F +:107E10002820FCF73BFE09217A20FCF737FE0721DA +:107E20003220FCF733FE0C215220BDE80840FCF75D +:107E30002DBE000008B5FFF7A3FD00F00DF8FCF71C +:107E4000E3FFFDF7BBF9FDF78DF8FFF751FDBDE846 +:107E50000840FFF7F1BA00000023054A1946013334 +:107E6000102BC2E9001102F10802F8D1704700BFDF +:107E7000E87300200B460146184600F001B80000E8 +:107E800010B5054C13462CB10A4601460220AFF34B +:107E9000008010BD2046FCE70000000010B501394D +:107EA0000244904201D1002005E0037811F8014F0F +:107EB000A34201D0181B10BD0130F2E72DE9F041BB +:107EC000A3B1C91A17780144044603F1FF3C8C4260 +:107ED000204601D9002009E00578BD4204F10104E3 +:107EE000F5D10CEB0405D618A54201D1BDE8F0810F +:107EF00015F8018D16F801EDF045F5D0E7E7000023 +:107F0000034611F8012B03F8012B002AF9D1704721 +:107F10006F72672E6172647570696C6F742E437531 +:107F2000626550696C6F742D43414E4D6F64000063 +:107F300053544D333248373F3F3F0053544D333253 +:107F4000483733782F3732780053544D333248371F +:107F500034332F3735332F373530000001105A00B6 +:107F600003105900012058000320560040A2E4F1FC +:107F7000646891060041A3E5F2656992070000007C +:107F800043414E464449666163653A204D657373CB +:107F90006167652052414D204F766572666C6F7740 +:107FA000210000004261642043414E4966616365DF +:107FB00020696E6465782E0000000000000000005B +:107FC000192B0008A52300086532000815240008B5 +:107FD000212400083928000899250008DD2300081D +:107FE000E1230008B9230008A1230008F5270008B1 +:107FF000C52300089D330008D1230008C9270008C5 +:1080000001040E05054B02020E05054B04010E0589 +:10801000054B05010B04044B080106030346000051 +:1080200010000240080002400008024000000B005F +:1080300028000240080002400408024006010C002B +:1080400040000240080002400808024010020D00F3 +:1080500058000240080002400C08024016030E00BF +:10806000700002400C0002401008024000040F00A3 +:10807000880002400C00024014080240060510006F +:10808000A00002400C000240180802401006110037 +:10809000B80002400C0002401C08024016072F00E6 +:1080A0001004024008040240200802400008380082 +:1080B000280402400804024024080240060939004E +:1080C000400402400804024028080240100A3A0016 +:1080D00058040240080402402C080240160B3B00E2 +:1080E000700402400C04024030080240000C3C00C6 +:1080F000880402400C04024034080240060D44008B +:10810000A00402400C04024038080240100E450052 +:10811000B80402400C0402403C080240160F46001E +:1081200000960000000000000000000000000000B9 +:10813000000000000000000000000000C94D000821 +:10814000B54D0008F14D0008DD4D0008E94D00086F +:10815000D54D0008C14D0008AD4D0008FD4D00088B +:1081600000000000E14E0008CD4E0008094F000855 +:10817000F54E0008014F0008ED4E0008D94E0008EA +:10818000C54E0008154F0008000000000100000067 +:108190000000000063300000948100087854002043 +:1081A000885600204172647550696C6F74002542D6 +:1081B0004F415244252D424C002553455249414CD4 +:1081C000250000000200000000000000015100082E +:1081D0007151000840004000386F0020486F0020B7 +:1081E000020000000000000003000000000000008A +:1081F000B95100080000000010000000586F002076 +:108200000000000001000000000000007872002063 +:10821000010102000D5D00081D5C0008B95C00084A +:108220009D5C0008430000002C8200080902430006 +:10823000020100C03209040000010202010005240D +:108240000010010524010001042402020524060097 +:1082500001070582030800FF09040100020A00006B +:1082600000070501024000000705810240000000F0 +:108270001200000078820008120110010200004084 +:10828000091241570002010203010000040309041E +:1082900025424F4152442500303132333435363790 +:1082A00038394142434445460000000000010020A7 +:1082B00000FF010002000000000000300000040088 +:1082C0000800000000000024000008000400000076 +:1082D0000004000000FC0000020000000000043068 +:1082E00000800000080000000000003800000100CD +:1082F000010000000000000015530008CD550008E3 +:108300007956000840004000B0730020B073002090 +:1083100001000000C0730020800000004001000048 +:10832000080000000001000000100000080000002C +:108330006D61696E0069646C650000000000802A50 +:1083400000000000AAAAAAAA00000024FFFF000063 +:108350000000000000A00A00000000000000000073 +:10836000AAAAAAAA00000000FFFF00000000000067 +:10837000000000000000000000000000AAAAAAAA55 +:1083800000000000FFFF00000000000000000000EF +:108390000A00000000000000AAAAAAAA000000002B +:1083A000FFFF0000990000000000000000800200B4 +:1083B00000000000AAAAAAAA00400100FFFF0000D6 +:1083C0000000007007000000000000000000000036 +:1083D000AAAAAAAA00000000FFFF000000000000F7 +:1083E000000000000500000000000000A5AAAAAAE5 +:1083F00000000000FCFF0000000000000000000082 +:108400000000000000000000AAAAAAAA00000000C4 +:10841000FFFF00000000000000000000000000005E +:1084200000000000AAAAAAAA00000000FFFF0000A6 +:10843000000000000000000000000000000000003C +:10844000AAAAAAAA00000000FFFF00000000000086 +:10845000000000000000000000000000AAAAAAAA74 +:1084600000000000FFFF000000000000000000000E +:1084700037040000000000000000180000000000A9 +:10848000FE2A0100D2040000FF00000090560020E8 +:10849000B44F002000000000307F0008830400007B +:1084A0003B7F000850040000497F00080096000050 +:1084B0000000080096000000000800000400000012 +:1084C0008C82000800000000000000000000000096 +:0C84D000000000000000000000000000A0 :00000001FF diff --git a/Tools/bootloaders/CubePilot-PPPGW_bl.bin b/Tools/bootloaders/CubePilot-PPPGW_bl.bin index 517887441d56d24ce259ff8744df8229afada144..785e416ab5b6b1669a629af80f2eed50ecf07b4a 100755 GIT binary patch delta 15550 zcmb7rcU)A*7XQrMc6VtDN^e^L7Z6+!1;s*3 zqfe7qa33lvlElQ8n1InlO=5{At1;>Y#e0`+zcUMY&-eSh-yc6dpD$o6Uu)XwqYm05YVD33$>u1$wp*y*oem)?=o1aBz#yOBKo6h{ zum(^E*zo(>IMaY_GczlkD=xul_w=l+Qvsl$t8DeWf5IbWR`IDI~ z+i3IW&yw+yf%1b8inEi$lDNc;b+p|`4?u`zAEDa_Ll}6b@tCFjdw~0ZDuSiG6gS#j zRzH3>$(DXvne^akHs(1O=1;qg`IygksCliZ;MDwaQN|%dzoxE5|H#Q~#NFxtF1(wG zFWQpRt0|ewX;IG>k0Abv8}ZlNYz>Nu;~0KUTNPJfK`{~y;tz;9TpSlw5C(c<9X)Cy zK$D~q#i;qEVjPDwe*E)Fw{H#N4~dw68Pq&*t3mXJUBe-MxDD~UMVmF5Lowf3r5uj? z#wzEsTUMr>voieWZOHIrV|ID&VrDT~%j7ExF#pVc$%-0iGci&e21^{?nS$B4-pa%O z0;;ZM2T7Y*q~d3~q|IqSr@1tom$Xn?P=8;Y<v9 zGJbB$CteAdneQS$dgn01T_nusFg{4W@kzq35t~mBJb`rcjZKel^JyKjsQx~`1T`Fb zimG-@{z|)KHTQUQ9MUv`?UEkw*av+0978>{s#}$jE**aNhiM z8%a<{F|XT5p*jM;P2N!dgddas{-H{5K3`Pq!@QN0`NwD9aA-IsUm!~JX?J1%@~M42 zk>+2+FnbM#64bEd!^1Mpn?r}Z=#VrNH0c*JiQ!FmSL4KxCKV5@_V15(5U+qpe1^ma z=L+>BpyXNAOPB-}1?3|WROH3~;tVVbo#$T@knhF2oJ#&a86Frd_2Vas zWIx5O(oO8#Bf&muBz z%E|me$uA+XL2p&&xds;w9@NQnCd|^hpfc$Pb*Yl?>tZ-Bj^;MH=>HNYYtb+8X*PP@ z5@U9u#Lf*8J)>VO%8W`r)&&E57S_GS9kxH^FNz2afiLZ_yLVC5k*tTs3u8bgje`V#53shgw$-1983` zb44=9wSQaJPg_BT5oPp%aByOUzP8}J491mTFtmscwd>xho3LTm;@`{=gnUv z-9n?|MR8wU$+ItJ){Cqf^ImQ#XDI!T^pt-~KPPX6Mh{$Pn*ej$8i&?Yk{_3X`8VyQ zlk-m&!^D+n$GpO!s4jwVEQGOxtuBCYG=%MTWwqX<+Rx?3bypD|{yp+*XmF)jWVni& zEErEK9hkpuS5)7gjQL+cb|=tlcDDLwYp()XwZ^1?$xyZ>y?};xh&>B}_H`S~^2h8! z`&j;zy@Ypn$2#x*5&Kd~eE4r2jNX5LxBM{fmiSeb5C4@zqVeIcIzYxdDoi3u`q*cxh(D{s|co7rD8S&5CfZ4N>l$QR@O1CqI)%B?1m2kvP0A)#$h+4ORRcR(h7lHab$Di?YLf zy<{^?7fvt)zrexDAm0SiA$>8v)H54VVC!3s?u(0oV_i1>M{D0AaWAraRUI zU9078n&4v*vs&~z8H^kZ6&vVGoQ(H99iKc7@kLIuMKgez?I5=`a}(ydHC0BFe&w