From 828c557765a067dd621bf26c427cca4e2c46394b Mon Sep 17 00:00:00 2001 From: D062347 Date: Wed, 27 Jan 2016 11:49:17 +0100 Subject: [PATCH 01/17] Turned maneuver tool tip into a info bubble, changed icon of maneuver, changed coloring and changed racemap-defaults for maneuvers --- .../sailing/gwt/ui/client/StringMessages.java | 1 + .../gwt/ui/client/StringMessages.properties | 1 + .../ui/client/StringMessages_de.properties | 1 + .../ui/client/StringMessages_ru.properties | 1 + .../ui/client/StringMessages_zh.properties | 1 + .../client/shared/racemap/ManeuverColor.java | 15 + .../gwt/ui/client/shared/racemap/RaceMap.java | 1355 ++++++++++------- .../shared/racemap/RaceMapImageManager.java | 59 +- .../shared/racemap/RaceMapResources.java | 10 +- .../shared/racemap/RaceMapSettings.java | 46 +- .../gwt/ui/client/images/maneuver_green.png | Bin 0 -> 1821 bytes .../gwt/ui/client/images/maneuver_red.png | Bin 0 -> 1778 bytes .../release_notes_admin.html | 463 +++--- 13 files changed, 1086 insertions(+), 867 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_green.png create mode 100644 java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_red.png diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 13087637d67..b13f87576c8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1455,4 +1455,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, c String errorTryingToCreateEmbeddedMap(String message); String transparentBufferLineOnHover(); String bufferLineStrokeWeight(); + String maneuverType(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 445b38d8eec..86b8cfb0f18 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -7,6 +7,7 @@ general=General listRaces=List Races listRegattas=List Regattas wind=Wind +maneuverType=Maneuver windPanelLabel=This is the Wind Panel which so far is completely empty. refresh=Refresh remove=Remove diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index b276c818838..1309c38cf24 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -81,6 +81,7 @@ leaderboard=Ergebnisse leaderboards=Ranglisten leaderboardSettings=Einstellungen Rangliste settings=Einstellungen +maneuverType=Manöver selectAtLeastOneLegDetail=Mindestens ein Detail auswählen currentSpeedOverGroundInKnots=FüG currentSpeedOverGroundInKnotsTooltip=Die aktuelle Fahrt über Grund diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index da9e4032b35..097716385e7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -7,6 +7,7 @@ trackedBefore=Ранее Отслеженные general=Всенаро́дный listRaces=Перечень Гонок wind=ветра +maneuverType=Maneuver windPanelLabel=Это окно информации о ветре, которое до сих пор абсолютно пустое. refresh=Обновить remove=Удалить diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties index 8775cba748b..9ff9b04d0ff 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties @@ -7,6 +7,7 @@ pleaseSelectAnItemToMapTo=Please select an item to map the device to inEvent=in event pleaseSelectARace=Please select a race columnMoveUp=Up +maneuverType=Maneuver enterCarryValueFor=Enter carried points for competitor {0} eventOfficialWebsiteURL=Official Website URL eventSailorsInfoWebsiteURL=Sailors Info Website URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java new file mode 100644 index 00000000000..ede7ac178f4 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java @@ -0,0 +1,15 @@ +package com.sap.sailing.gwt.ui.client.shared.racemap; + +import com.sap.sailing.gwt.ui.shared.ManeuverDTO; + +public enum ManeuverColor { + RED, GREEN; + + public static ManeuverColor getManeuverColor(ManeuverDTO maneuver) { + if (maneuver.directionChangeInDegrees < 0) { + return RED; + } + return GREEN; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index 932bb243576..0a5eb688f0c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -21,7 +21,9 @@ import com.google.gwt.dom.client.Style; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.NumberFormat; +import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; import com.google.gwt.maps.client.LoadApi; import com.google.gwt.maps.client.LoadApi.LoadLibrary; import com.google.gwt.maps.client.MapOptions; @@ -52,6 +54,7 @@ import com.google.gwt.maps.client.mvc.MVCArray; import com.google.gwt.maps.client.overlays.InfoWindow; import com.google.gwt.maps.client.overlays.InfoWindowOptions; import com.google.gwt.maps.client.overlays.Marker; +import com.google.gwt.maps.client.overlays.MarkerImage; import com.google.gwt.maps.client.overlays.MarkerOptions; import com.google.gwt.maps.client.overlays.Polygon; import com.google.gwt.maps.client.overlays.PolygonOptions; @@ -89,6 +92,7 @@ import com.sap.sailing.gwt.ui.actions.GetWindInfoAction; import com.sap.sailing.gwt.ui.client.ClientResources; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; +import com.sap.sailing.gwt.ui.client.ManeuverTypeFormatter; import com.sap.sailing.gwt.ui.client.NumberFormatterFactory; import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener; import com.sap.sailing.gwt.ui.client.RequiresDataInitialization; @@ -138,24 +142,25 @@ import com.sap.sse.gwt.client.shared.components.Component; import com.sap.sse.gwt.client.shared.components.SettingsDialog; import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent; -public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSelectionChangeListener, - RaceTimesInfoProviderListener, TailFactory, Component, RequiresDataInitialization, RequiresResize, QuickRankProvider { +public class RaceMap extends AbsolutePanel + implements TimeListener, CompetitorSelectionChangeListener, RaceTimesInfoProviderListener, TailFactory, + Component, RequiresDataInitialization, RequiresResize, QuickRankProvider { private static final Color LOWLIGHTED_TAIL_COLOR = new RGBColor(200, 200, 200); public static final String GET_RACE_MAP_DATA_CATEGORY = "getRaceMapData"; public static final String GET_WIND_DATA_CATEGORY = "getWindData"; - + private static final String COMPACT_HEADER_STYLE = "compactHeader"; - + private MapWidget map; - + /** * Always valid, non-null. Must be used to map all coordinates, headings, bearings, and directions * displayed on the map, including the orientations of any canvases such as boat icons, wind displays etc. that are - * embedded in the map. The coordinate systems facilitates the possibility of transformed displays such as - * rotated and translated versions of the map, implementing the "wind-up" view. + * embedded in the map. The coordinate systems facilitates the possibility of transformed displays such as rotated + * and translated versions of the map, implementing the "wind-up" view. */ private DelegateCoordinateSystem coordinateSystem; - + private FlowPanel headerPanel; private AbsolutePanel panelForLeftHeaderLabels; private AbsolutePanel panelForRightHeaderLabels; @@ -176,17 +181,18 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private Polyline finishLine; /** - * Polyline for the advantage line (the leading line for the boats, orthogonal to the wind direction; touching the leading boat). + * Polyline for the advantage line (the leading line for the boats, orthogonal to the wind direction; touching the + * leading boat). */ private Polyline advantageLine; - + private AdvantageLineAnimator advantageTimer; - + /** * The windward of two Polylines representing a triangle between startline and first mark. */ private Polyline windwardStartLineMarkToFirstMarkLine; - + /** * The leeward of two Polylines representing a triangle between startline and first mark. */ @@ -200,7 +206,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe this.trueWindAngle = trueWindAngle; this.date = date; } - + public void setTrueWindBearing(double trueWindAngle) { this.trueWindAngle = trueWindAngle; } @@ -211,39 +217,40 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe @Override public void onEvent(MouseOverMapEvent event) { - map.setTitle(stringMessages.advantageLine()+" (from "+new DegreeBearingImpl(Math.round(trueWindAngle)).reverse().getDegrees()+"deg"+ - (date == null ? ")" : ", "+ date) + ")"); + map.setTitle(stringMessages.advantageLine() + " (from " + + new DegreeBearingImpl(Math.round(trueWindAngle)).reverse().getDegrees() + "deg" + + (date == null ? ")" : ", " + date) + ")"); } }; - + private AdvantageLineMouseOverMapHandler advantageLineMouseOverHandler; - + /** * Polylines for the course middle lines; keys are the two control points delimiting the leg for which the - * {@link Polyline} value shows the course middle line. As only one course middle line is shown even if there - * are multiple legs using the same control points in different directions, using a {@link Set} makes this - * independent of the order of the two control points. If no course middle line is currently being shown for - * a pair of control points, the map will not contain a value for this pair. + * {@link Polyline} value shows the course middle line. As only one course middle line is shown even if there are + * multiple legs using the same control points in different directions, using a {@link Set} makes this independent + * of the order of the two control points. If no course middle line is currently being shown for a pair of control + * points, the map will not contain a value for this pair. */ private final Map, Polyline> courseMiddleLines; private final Map courseSidelines; - + /** - * When the {@link HelpLineTypes#COURSEGEOMETRY} option is selected, little markers will be displayed on the - * lines that show the tooltip text in a little info box linked to the line. When the line is removed by + * When the {@link HelpLineTypes#COURSEGEOMETRY} option is selected, little markers will be displayed on the lines + * that show the tooltip text in a little info box linked to the line. When the line is removed by * {@link #showOrRemoveOrUpdateLine(Polyline, boolean, Position, Position, LineInfoProvider, String)}, these - * overlays need to be removed as well. Also, when the {@link HelpLineTypes#COURSEGEOMETRY} setting is - * deactivated, all these overlays need to go. + * overlays need to be removed as well. Also, when the {@link HelpLineTypes#COURSEGEOMETRY} setting is deactivated, + * all these overlays need to go. */ private final Map infoOverlaysForLinesForCourseGeometry; - + /** * Wind data used to display the advantage line. Retrieved by a {@link GetWindInfoAction} execution and used in * {@link #showAdvantageLine(Iterable, Date)}. */ private WindInfoForRaceDTO lastCombinedWindTrackInfoDTO; - + /** * Manages the cached set of {@link GPSFixDTO}s for the boat positions as well as their graphical counterpart in the * form of {@link Polyline}s. @@ -259,7 +266,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe * html5 canvases used for competitor info display on the map */ private final Map competitorInfoOverlays; - + private SmallTransparentInfoOverlay countDownOverlay; /** @@ -289,11 +296,11 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private Map> lastManeuverResult; private Map> lastDouglasPeuckerResult; - + private final CompetitorSelectionProvider competitorSelection; - + private final RaceCompetitorSet raceCompetitorSet; - + /** * Used to check if the first initial zoom to the mark markers was already done. */ @@ -302,9 +309,9 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private final Timer timer; private RaceTimesInfoDTO lastRaceTimesInfo; - + private InfoWindow lastInfoWindow = null; - + /** * RPC calls may receive responses out of order if there are multiple calls in-flight at the same time. If the time * slider is moved quickly it generates many requests for boat positions quickly after each other. Sometimes, @@ -321,92 +328,94 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe */ private int startedProcessingRequestID; - private RaceMapImageManager raceMapImageManager; + private RaceMapImageManager raceMapImageManager; private final RaceMapSettings settings; - + private final StringMessages stringMessages; - + private boolean isMapInitialized; private Date lastTimeChangeBeforeInitialization; - + private int lastLegNumber; /** - * The last quick ranks received from a call to {@link SailingServiceAsync#getQuickRanks(RaceIdentifier, Date, AsyncCallback)} upon - * the last {@link #timeChanged(Date, Date)} event. Therefore, the ranks listed here correspond to the {@link #timer}'s time. + * The last quick ranks received from a call to + * {@link SailingServiceAsync#getQuickRanks(RaceIdentifier, Date, AsyncCallback)} upon the last + * {@link #timeChanged(Date, Date)} event. Therefore, the ranks listed here correspond to the {@link #timer}'s time. */ private LinkedHashMap quickRanks; - + /** * Taken from {@link RaceMapDataDTO#competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber}; tells the * windward distances traveled and the leg numbers in which the respective competitor is. */ private LinkedHashMap competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; - private final CombinedWindPanel combinedWindPanel; - + private final TrueNorthIndicatorPanel trueNorthIndicatorPanel; - + private final AsyncActionsExecutor asyncActionsExecutor; /** - * The map bounds as last received by map callbacks; used to determine whether to suppress the boat animation during zoom/pan + * The map bounds as last received by map callbacks; used to determine whether to suppress the boat animation during + * zoom/pan */ private LatLngBounds currentMapBounds; // bounds to which bounds-changed-handler compares - private int currentZoomLevel; // zoom-level to which bounds-changed-handler compares - - private boolean autoZoomIn = false; // flags auto-zoom-in in progress + private int currentZoomLevel; // zoom-level to which bounds-changed-handler compares + + private boolean autoZoomIn = false; // flags auto-zoom-in in progress private boolean autoZoomOut = false; // flags auto-zoom-out in progress - private int autoZoomLevel; // zoom-level to which auto-zoom-in/-out is zooming - LatLngBounds autoZoomLatLngBounds; // bounds to which auto-zoom-in/-out is panning&zooming - + private int autoZoomLevel; // zoom-level to which auto-zoom-in/-out is zooming + LatLngBounds autoZoomLatLngBounds; // bounds to which auto-zoom-in/-out is panning&zooming + private RaceSimulationOverlay simulationOverlay; private WindStreamletsRaceboardOverlay streamletOverlay; private final boolean showViewStreamlets; private final boolean showViewStreamletColors; private final boolean showViewSimulation; - + private static final String GET_POLAR_CATEGORY = "getPolar"; - + /** * Tells about the availability of polar / VPP data for this race. If available, the simulation feature can be * offered to the user. */ private boolean hasPolar; - + private final RegattaAndRaceIdentifier raceIdentifier; - + /** - * When the user requests wind-up display this may happen at a point where no mark positions are known or when - * no wind direction is known yet. In this case, this flag will be set, and when wind information or course mark + * When the user requests wind-up display this may happen at a point where no mark positions are known or when no + * wind direction is known yet. In this case, this flag will be set, and when wind information or course mark * positions are received later, this flag is checked, and if set, a {@link #updateCoordinateSystemFromSettings()} * call is issued to make sure that the user's request for a new coordinate system is honored. */ private boolean requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown; - + private final boolean showMapControls; /** - * Tells whether currently an auto-zoom is in progress; this is used particularly to keep the smooth CSS boat transitions - * active while auto-zooming whereas stopping them seems the better option for manual zooms. + * Tells whether currently an auto-zoom is in progress; this is used particularly to keep the smooth CSS boat + * transitions active while auto-zooming whereas stopping them seems the better option for manual zooms. */ private boolean autoZoomInProgress; - + /** - * Tells whether currently an orientation change is in progress; this is required handle map events during the configuration of the map - * during an orientation change. + * Tells whether currently an orientation change is in progress; this is required handle map events during the + * configuration of the map during an orientation change. */ private boolean orientationChangeInProgress; - + private final NumberFormat numberFormatOneDecimal = NumberFormat.getFormat("0.0"); - + public RaceMap(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, - ErrorReporter errorReporter, Timer timer, CompetitorSelectionProvider competitorSelection, StringMessages stringMessages, - boolean showMapControls, boolean showViewStreamlets, boolean showViewStreamletColors, boolean showViewSimulation, - RegattaAndRaceIdentifier raceIdentifier, CombinedWindPanelStyle combinedWindPanelStyle, boolean showHeaderPanel) { + ErrorReporter errorReporter, Timer timer, CompetitorSelectionProvider competitorSelection, + StringMessages stringMessages, boolean showMapControls, boolean showViewStreamlets, + boolean showViewStreamletColors, boolean showViewSimulation, RegattaAndRaceIdentifier raceIdentifier, + CombinedWindPanelStyle combinedWindPanelStyle, boolean showHeaderPanel) { this.setSize("100%", "100%"); this.showMapControls = showMapControls; this.stringMessages = stringMessages; @@ -443,22 +452,25 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe panelForLeftHeaderLabels = new AbsolutePanel(); panelForRightHeaderLabels = new AbsolutePanel(); initializeData(showMapControls, showHeaderPanel); - combinedWindPanel = new CombinedWindPanel(raceMapImageManager, combinedWindPanelStyle, stringMessages, coordinateSystem); + combinedWindPanel = new CombinedWindPanel(raceMapImageManager, combinedWindPanelStyle, stringMessages, + coordinateSystem); combinedWindPanel.setVisible(false); - trueNorthIndicatorPanel = new TrueNorthIndicatorPanel(this, raceMapImageManager, combinedWindPanelStyle, stringMessages, coordinateSystem); + trueNorthIndicatorPanel = new TrueNorthIndicatorPanel(this, raceMapImageManager, combinedWindPanelStyle, + stringMessages, coordinateSystem); trueNorthIndicatorPanel.setVisible(true); orientationChangeInProgress = false; mapFirstZoomDone = false; // TODO bug 494: reset zoom settings to user preferences } - + /** * The {@link WindDTO#dampenedTrueWindFromDeg} direction if {@link #lastCombinedWindTrackInfoDTO} has a * {@link WindSourceType#COMBINED} source which has at least one fix recorded; null otherwise. */ private Bearing getLastCombinedTrueWindFromDirection() { if (lastCombinedWindTrackInfoDTO != null) { - for (Entry e : lastCombinedWindTrackInfoDTO.windTrackInfoByWindSource.entrySet()) { + for (Entry e : lastCombinedWindTrackInfoDTO.windTrackInfoByWindSource + .entrySet()) { if (e.getKey().getType() == WindSourceType.COMBINED) { final List windFixes = e.getValue().windFixes; if (!windFixes.isEmpty()) { @@ -469,7 +481,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } return null; } - + private void updateCoordinateSystemFromSettings() { final MapOptions mapOptions; orientationChangeInProgress = true; @@ -478,7 +490,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe if (centerOfCourse != null) { final Bearing lastCombinedTrueWindFromDirection = getLastCombinedTrueWindFromDirection(); if (lastCombinedTrueWindFromDirection != null) { - // new equator shall point 90deg right of the "from" wind direction to make wind come from top of map + // new equator shall point 90deg right of the "from" wind direction to make wind come from top of + // map coordinateSystem.setCoordinateSystem(new RotateAndTranslateCoordinateSystem(centerOfCourse, lastCombinedTrueWindFromDirection.add(new DegreeBearingImpl(90)))); if (map != null) { @@ -505,16 +518,18 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } coordinateSystem.setCoordinateSystem(new IdentityCoordinateSystem()); } - if (mapOptions != null) { // if no coordinate system change happened that affects an existing map, don't redraw + if (mapOptions != null) { // if no coordinate system change happened that affects an existing map, don't redraw fixesAndTails.clearTails(); redraw(); - // zooming and setting options while the event loop is still working doesn't work reliably; defer until event loop returns + // zooming and setting options while the event loop is still working doesn't work reliably; defer until + // event loop returns Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { if (map != null) { map.setOptions(mapOptions); - // ensure zooming to what the settings tell, or defaults if what the settings tell isn't possible right now + // ensure zooming to what the settings tell, or defaults if what the settings tell isn't + // possible right now mapFirstZoomDone = false; trueNorthIndicatorPanel.redraw(); orientationChangeInProgress = false; @@ -533,112 +548,116 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe loadLibraries.add(LoadLibrary.GEOMETRY); Runnable onLoad = new Runnable() { - @Override - public void run() { - MapOptions mapOptions = getMapOptions(showMapControls, /* wind up */ false); - map = new MapWidget(mapOptions); - RaceMap.this.add(map, 0, 0); - if (showHeaderPanel) { - Image sapLogo = createSAPLogo(); - RaceMap.this.add(sapLogo); - } - map.setControls(ControlPosition.LEFT_TOP, combinedWindPanel); - map.setControls(ControlPosition.LEFT_TOP, trueNorthIndicatorPanel); - adjustLeftControlsIndent(); + @Override + public void run() { + MapOptions mapOptions = getMapOptions(showMapControls, /* wind up */ false); + map = new MapWidget(mapOptions); + RaceMap.this.add(map, 0, 0); + if (showHeaderPanel) { + Image sapLogo = createSAPLogo(); + RaceMap.this.add(sapLogo); + } + map.setControls(ControlPosition.LEFT_TOP, combinedWindPanel); + map.setControls(ControlPosition.LEFT_TOP, trueNorthIndicatorPanel); + adjustLeftControlsIndent(); - RaceMap.this.raceMapImageManager.loadMapIcons(map); - map.setSize("100%", "100%"); - map.addZoomChangeHandler(new ZoomChangeMapHandler() { - @Override - public void onEvent(ZoomChangeMapEvent event) { - if (!autoZoomIn && !autoZoomOut && !orientationChangeInProgress) { - // stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will restore old settings - final List emptyList = Collections.emptyList(); - settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); - } - // TODO bug489 when in wind-up mode, avoid zooming out too far; perhaps zoom back in if zoomed out too far - } - }); - map.addDragEndHandler(new DragEndMapHandler() { - @Override - public void onEvent(DragEndMapEvent event) { - // stop automatic zoom after a manual drag event - autoZoomIn = false; - autoZoomOut = false; - final List emptyList = Collections.emptyList(); - settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); - } - }); - map.addIdleHandler(new IdleMapHandler() { - @Override - public void onEvent(IdleMapEvent event) { - // the "idle"-event is raised at the end of map-animations - if (autoZoomIn) { - // finalize zoom-in that was started with panTo() in zoomMapToNewBounds() - map.setZoom(autoZoomLevel); - autoZoomIn = false; - } - if (autoZoomOut) { - // finalize zoom-out that was started with setZoom() in zoomMapToNewBounds() - map.panTo(autoZoomLatLngBounds.getCenter()); - autoZoomOut = false; - } - } - }); - map.addBoundsChangeHandler(new BoundsChangeMapHandler() { - @Override - public void onEvent(BoundsChangeMapEvent event) { - int newZoomLevel = map.getZoom(); - if (!isAutoZoomInProgress() && (newZoomLevel != currentZoomLevel)) { - removeTransitions(); - } - if ((streamletOverlay != null) && !map.getBounds().equals(currentMapBounds)) { - streamletOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); - } - if ((simulationOverlay != null) && !map.getBounds().equals(currentMapBounds)) { - simulationOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); - } - currentMapBounds = map.getBounds(); - currentZoomLevel = newZoomLevel; - headerPanel.getElement().getStyle().setWidth(map.getOffsetWidth(), Unit.PX); - } - }); - - // If there was a time change before the API was loaded, reset the time - if (lastTimeChangeBeforeInitialization != null) { - timeChanged(lastTimeChangeBeforeInitialization, null); - lastTimeChangeBeforeInitialization = null; - } - // Initialize streamlet canvas for wind visualization; it shouldn't be doing anything unless it's visible - streamletOverlay = new WindStreamletsRaceboardOverlay(getMap(), /* zIndex */ 0, - timer, raceIdentifier, sailingService, asyncActionsExecutor, stringMessages, coordinateSystem); - streamletOverlay.addToMap(); - if (showViewStreamlets) { - streamletOverlay.setColors(showViewStreamletColors); - streamletOverlay.setVisible(true); - } + RaceMap.this.raceMapImageManager.loadMapIcons(map); + map.setSize("100%", "100%"); + map.addZoomChangeHandler(new ZoomChangeMapHandler() { + @Override + public void onEvent(ZoomChangeMapEvent event) { + if (!autoZoomIn && !autoZoomOut && !orientationChangeInProgress) { + // stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will + // restore old settings + final List emptyList = Collections.emptyList(); + settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); + } + // TODO bug489 when in wind-up mode, avoid zooming out too far; perhaps zoom back in if zoomed + // out too far + } + }); + map.addDragEndHandler(new DragEndMapHandler() { + @Override + public void onEvent(DragEndMapEvent event) { + // stop automatic zoom after a manual drag event + autoZoomIn = false; + autoZoomOut = false; + final List emptyList = Collections.emptyList(); + settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); + } + }); + map.addIdleHandler(new IdleMapHandler() { + @Override + public void onEvent(IdleMapEvent event) { + // the "idle"-event is raised at the end of map-animations + if (autoZoomIn) { + // finalize zoom-in that was started with panTo() in zoomMapToNewBounds() + map.setZoom(autoZoomLevel); + autoZoomIn = false; + } + if (autoZoomOut) { + // finalize zoom-out that was started with setZoom() in zoomMapToNewBounds() + map.panTo(autoZoomLatLngBounds.getCenter()); + autoZoomOut = false; + } + } + }); + map.addBoundsChangeHandler(new BoundsChangeMapHandler() { + @Override + public void onEvent(BoundsChangeMapEvent event) { + int newZoomLevel = map.getZoom(); + if (!isAutoZoomInProgress() && (newZoomLevel != currentZoomLevel)) { + removeTransitions(); + } + if ((streamletOverlay != null) && !map.getBounds().equals(currentMapBounds)) { + streamletOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); + } + if ((simulationOverlay != null) && !map.getBounds().equals(currentMapBounds)) { + simulationOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); + } + currentMapBounds = map.getBounds(); + currentZoomLevel = newZoomLevel; + headerPanel.getElement().getStyle().setWidth(map.getOffsetWidth(), Unit.PX); + } + }); - if (showViewSimulation) { - // determine availability of polar diagram - setHasPolar(); - // initialize simulation canvas - simulationOverlay = new RaceSimulationOverlay(getMap(), /* zIndex */ 0, raceIdentifier, sailingService, stringMessages, asyncActionsExecutor, coordinateSystem); - simulationOverlay.addToMap(); - simulationOverlay.setVisible(false); - } - if (showHeaderPanel) { - createHeaderPanel(map); - } - createSettingsButton(map); + // If there was a time change before the API was loaded, reset the time + if (lastTimeChangeBeforeInitialization != null) { + timeChanged(lastTimeChangeBeforeInitialization, null); + lastTimeChangeBeforeInitialization = null; + } + // Initialize streamlet canvas for wind visualization; it shouldn't be doing anything unless it's + // visible + streamletOverlay = new WindStreamletsRaceboardOverlay(getMap(), /* zIndex */ 0, timer, raceIdentifier, + sailingService, asyncActionsExecutor, stringMessages, coordinateSystem); + streamletOverlay.addToMap(); + if (showViewStreamlets) { + streamletOverlay.setColors(showViewStreamletColors); + streamletOverlay.setVisible(true); + } - // Data has been initialized - RaceMap.this.isMapInitialized = true; - RaceMap.this.redraw(); - trueNorthIndicatorPanel.redraw(); - showAdditionalControls(map); - } + if (showViewSimulation) { + // determine availability of polar diagram + setHasPolar(); + // initialize simulation canvas + simulationOverlay = new RaceSimulationOverlay(getMap(), /* zIndex */ 0, raceIdentifier, + sailingService, stringMessages, asyncActionsExecutor, coordinateSystem); + simulationOverlay.addToMap(); + simulationOverlay.setVisible(false); + } + if (showHeaderPanel) { + createHeaderPanel(map); + } + createSettingsButton(map); + + // Data has been initialized + RaceMap.this.isMapInitialized = true; + RaceMap.this.redraw(); + trueNorthIndicatorPanel.redraw(); + showAdditionalControls(map); + } }; - LoadApi.go(onLoad, loadLibraries, sensor, "key="+GoogleMapAPIKey.V3_APIKey); + LoadApi.go(onLoad, loadLibraries, sensor, "key=" + GoogleMapAPIKey.V3_APIKey); } /** @@ -646,7 +665,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe */ protected void showAdditionalControls(MapWidget map) { } - + private void setHasPolar() { GetPolarAction getPolar = new GetPolarAction(sailingService, raceIdentifier); asyncActionsExecutor.execute(getPolar, GET_POLAR_CATEGORY, @@ -660,21 +679,20 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe @Override public void onSuccess(Boolean result) { // store results - hasPolar = result.booleanValue(); + hasPolar = result.booleanValue(); } })); } /** - * Creates a header panel where additional information can be displayed by using - * {@link #getLeftHeaderPanel()} or {@link #getRightHeaderPanel()}. + * Creates a header panel where additional information can be displayed by using {@link #getLeftHeaderPanel()} or + * {@link #getRightHeaderPanel()}. * - * This panel is transparent and configured in such a way that it moves other controls - * down by its height. To achieve the goal of not having added widgets transparent - * this widget consists of two parts: First one is the transparent panel and the - * second one is the panel for the controls. The controls then need to moved onto - * the panel by using CSS. + * This panel is transparent and configured in such a way that it moves other controls down by its height. To + * achieve the goal of not having added widgets transparent this widget consists of two parts: First one is the + * transparent panel and the second one is the panel for the controls. The controls then need to moved onto the + * panel by using CSS. */ private void createHeaderPanel(MapWidget map) { // we need a panel that does not have any transparency to have the @@ -694,7 +712,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe // controls at RIGHT would not get the correct top setting map.setControls(ControlPosition.TOP_RIGHT, headerPanel); } - + private void createSettingsButton(MapWidget map) { final Component component = this; Button settingsButton = new Button(); @@ -727,37 +745,40 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe public void redraw() { timeChanged(timer.getTime(), null); } - + Map getBoatOverlays() { return Collections.unmodifiableMap(boatOverlays); } - + public MapWidget getMap() { return map; } - + /** * @return the Panel where labels or other controls for the header can be positioned */ public AbsolutePanel getLeftHeaderPanel() { return panelForLeftHeaderLabels; } - + public AbsolutePanel getRightHeaderPanel() { return panelForRightHeaderLabels; } - + @Override - public void raceTimesInfosReceived(Map raceTimesInfos, long clientTimeWhenRequestWasSent, Date serverTimeDuringRequest, long clientTimeWhenResponseWasReceived) { - timer.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived); - this.lastRaceTimesInfo = raceTimesInfos.get(raceIdentifier); + public void raceTimesInfosReceived(Map raceTimesInfos, + long clientTimeWhenRequestWasSent, Date serverTimeDuringRequest, long clientTimeWhenResponseWasReceived) { + timer.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, + clientTimeWhenResponseWasReceived); + this.lastRaceTimesInfo = raceTimesInfos.get(raceIdentifier); } /** - * In {@link PlayModes#Live live mode}, when {@link #loadCompleteLeaderboard(Date) loading the leaderboard contents}, null - * is used as time point. The condition for this is encapsulated in this method so others can find out. For example, when a time change - * is signaled due to local offset / delay adjustments, no additional call to {@link #loadCompleteLeaderboard(Date)} would be required - * as null will be passed in any case, not being affected by local time offsets. + * In {@link PlayModes#Live live mode}, when {@link #loadCompleteLeaderboard(Date) loading the leaderboard contents} + * , null is used as time point. The condition for this is encapsulated in this method so others can + * find out. For example, when a time change is signaled due to local offset / delay adjustments, no additional call + * to {@link #loadCompleteLeaderboard(Date)} would be required as null will be passed in any case, not + * being affected by local time offsets. */ private boolean useNullAsTimePoint() { return timer.getPlayMode() == PlayModes.Live; @@ -771,55 +792,64 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe final Iterable competitorsToShow = getCompetitorsToShow(); if (race != null) { final long transitionTimeInMillis = calculateTimeForPositionTransitionInMillis(newTime, oldTime); - final com.sap.sse.common.Util.Triple, Map, Map> fromAndToAndOverlap = - fixesAndTails.computeFromAndTo(newTime, competitorsToShow, settings.getEffectiveTailLengthInMilliseconds()); + final com.sap.sse.common.Util.Triple, Map, Map> fromAndToAndOverlap = fixesAndTails + .computeFromAndTo(newTime, competitorsToShow, + settings.getEffectiveTailLengthInMilliseconds()); // Request map data update, possibly in two calls; see method details - callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers(fromAndToAndOverlap, race, newTime, transitionTimeInMillis, competitorsToShow); + callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers( + fromAndToAndOverlap, race, newTime, transitionTimeInMillis, competitorsToShow); // draw the wind into the map, get the combined wind List windSourceTypeNames = new ArrayList(); windSourceTypeNames.add(WindSourceType.EXPEDITION.name()); windSourceTypeNames.add(WindSourceType.COMBINED.name()); - GetWindInfoAction getWindInfoAction = new GetWindInfoAction(sailingService, race, newTime, 1000L, 1, windSourceTypeNames, + GetWindInfoAction getWindInfoAction = new GetWindInfoAction(sailingService, race, newTime, 1000L, 1, + windSourceTypeNames, /* onlyUpToNewestEvent==false means get us any data we can get by a best effort */ false); - asyncActionsExecutor.execute(getWindInfoAction, GET_WIND_DATA_CATEGORY, new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining wind information: " + caught.getMessage(), true /*silentMode */); - } - - @Override - public void onSuccess(WindInfoForRaceDTO windInfo) { - List> windSourcesToShow = new ArrayList>(); - if (windInfo != null) { - lastCombinedWindTrackInfoDTO = windInfo; - showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); - for (WindSource windSource : windInfo.windTrackInfoByWindSource.keySet()) { - WindTrackInfoDTO windTrackInfoDTO = windInfo.windTrackInfoByWindSource.get(windSource); - switch (windSource.getType()) { - case EXPEDITION: - // we filter out measured wind sources with vary low confidence - if (windTrackInfoDTO.minWindConfidence > 0.0001) { - windSourcesToShow.add(new com.sap.sse.common.Util.Pair(windSource, windTrackInfoDTO)); - } - break; - case COMBINED: - showCombinedWindOnMap(windSource, windTrackInfoDTO); - if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { - updateCoordinateSystemFromSettings(); - } - break; - default: - // Which wind sources are requested is defined in a list above this - // action. So we throw here an exception to notice a missing source. - throw new UnsupportedOperationException( - "There is currently no support for the enum value '" - + windSource.getType() + "' in this method."); - } + asyncActionsExecutor.execute(getWindInfoAction, GET_WIND_DATA_CATEGORY, + new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError( + "Error obtaining wind information: " + caught.getMessage(), + true /* silentMode */); } - } - showWindSensorsOnMap(windSourcesToShow); - } - }); + + @Override + public void onSuccess(WindInfoForRaceDTO windInfo) { + List> windSourcesToShow = new ArrayList>(); + if (windInfo != null) { + lastCombinedWindTrackInfoDTO = windInfo; + showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); + for (WindSource windSource : windInfo.windTrackInfoByWindSource.keySet()) { + WindTrackInfoDTO windTrackInfoDTO = windInfo.windTrackInfoByWindSource + .get(windSource); + switch (windSource.getType()) { + case EXPEDITION: + // we filter out measured wind sources with vary low confidence + if (windTrackInfoDTO.minWindConfidence > 0.0001) { + windSourcesToShow + .add(new com.sap.sse.common.Util.Pair( + windSource, windTrackInfoDTO)); + } + break; + case COMBINED: + showCombinedWindOnMap(windSource, windTrackInfoDTO); + if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { + updateCoordinateSystemFromSettings(); + } + break; + default: + // Which wind sources are requested is defined in a list above this + // action. So we throw here an exception to notice a missing source. + throw new UnsupportedOperationException( + "There is currently no support for the enum value '" + + windSource.getType() + "' in this method."); + } + } + } + showWindSensorsOnMap(windSourcesToShow); + } + }); } } } @@ -845,12 +875,14 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe * current tail length setting the new tail segment does not overlap with the old one, requiring a full load of the * entire tail data for that competitor. For these non-overlapping requests, this method creates a * {@link GetBoatPositionsAction} request loading the entire tail required, but not quick ranks, sidelines and mark - * positions. Updating the results of this call is done in {@link #updateBoatPositions(Date, long, Map, Iterable, Map, boolean)}. + * positions. Updating the results of this call is done in + * {@link #updateBoatPositions(Date, long, Map, Iterable, Map, boolean)}. *

*/ private void callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers( final Triple, Map, Map> fromAndToAndOverlap, - RegattaAndRaceIdentifier race, final Date newTime, final long transitionTimeInMillis, final Iterable competitorsToShow) { + RegattaAndRaceIdentifier race, final Date newTime, final long transitionTimeInMillis, + final Iterable competitorsToShow) { final Map fromTimesForQuickCall = new HashMap<>(); final Map toTimesForQuickCall = new HashMap<>(); final Map fromTimesForNonOverlappingTailsCall = new HashMap<>(); @@ -861,7 +893,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe fromTimesForQuickCall.put(e.getKey(), fromAndToAndOverlap.getA().get(e.getKey())); toTimesForQuickCall.put(e.getKey(), fromAndToAndOverlap.getB().get(e.getKey())); } else { - // no overlap; add competitor to request with a zero-length interval asking only position at newTime, not the entire tail + // no overlap; add competitor to request with a zero-length interval asking only position at newTime, + // not the entire tail fromTimesForQuickCall.put(e.getKey(), newTime); toTimesForQuickCall.put(e.getKey(), newTime); fromTimesForNonOverlappingTailsCall.put(e.getKey(), fromAndToAndOverlap.getA().get(e.getKey())); @@ -879,46 +912,55 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will contain true for // all its entries so that the other response received for GetBoatPositionsAction will consider this an // overlap if it happens after this update. - asyncActionsExecutor.execute(new GetRaceMapDataAction(sailingService, competitorsByIdAsString, - race, useNullAsTimePoint() ? null : newTime, fromTimesForQuickCall, toTimesForQuickCall, /* extrapolate */true, - (settings.isShowSimulationOverlay() ? simulationOverlay.getLegIdentifier() : null), - raceCompetitorSet.getMd5OfIdsAsStringOfCompetitorParticipatingInRaceInAlphanumericOrderOfTheirID()), - GET_RACE_MAP_DATA_CATEGORY, - getRaceMapDataCallback(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), competitorsToShow, ++boatPositionRequestIDCounter)); - // next, if necessary, do the full thing; the two calls have different action classes, so throttling should not drop one for the other + asyncActionsExecutor.execute( + new GetRaceMapDataAction(sailingService, competitorsByIdAsString, race, + useNullAsTimePoint() ? null : newTime, fromTimesForQuickCall, toTimesForQuickCall, + /* extrapolate */true, + (settings.isShowSimulationOverlay() ? simulationOverlay.getLegIdentifier() : null), + raceCompetitorSet + .getMd5OfIdsAsStringOfCompetitorParticipatingInRaceInAlphanumericOrderOfTheirID()), + GET_RACE_MAP_DATA_CATEGORY, getRaceMapDataCallback(newTime, transitionTimeInMillis, + fromAndToAndOverlap.getC(), competitorsToShow, ++boatPositionRequestIDCounter)); + // next, if necessary, do the full thing; the two calls have different action classes, so throttling should not + // drop one for the other if (!fromTimesForNonOverlappingTailsCall.keySet().isEmpty()) { - asyncActionsExecutor.execute(new GetBoatPositionsAction(sailingService, race, fromTimesForNonOverlappingTailsCall, toTimesForNonOverlappingTailsCall, - /* extrapolate */ true), GET_RACE_MAP_DATA_CATEGORY, - new MarkedAsyncCallback<>(new AsyncCallback() { + asyncActionsExecutor.execute( + new GetBoatPositionsAction(sailingService, race, fromTimesForNonOverlappingTailsCall, + toTimesForNonOverlappingTailsCall, /* extrapolate */ true), + GET_RACE_MAP_DATA_CATEGORY, new MarkedAsyncCallback<>(new AsyncCallback() { @Override public void onFailure(Throwable t) { - errorReporter.reportError("Error obtaining racemap data: " + t.getMessage(), true /*silentMode */); + errorReporter.reportError("Error obtaining racemap data: " + t.getMessage(), + true /* silentMode */); } - + @Override public void onSuccess(CompactBoatPositionsDTO result) { - // Note: the fromAndToAndOverlap.getC() map will be UPDATED by the call to updateBoatPositions for those - // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will contain true for - // all its entries so that the other response received for GetRaceMapDataAction will consider this an + // Note: the fromAndToAndOverlap.getC() map will be UPDATED by the call to + // updateBoatPositions for those + // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will + // contain true for + // all its entries so that the other response received for GetRaceMapDataAction will + // consider this an // overlap if it happens after this update. - updateBoatPositions(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), competitorsToShow, - result.getBoatPositionsForCompetitors(competitorsByIdAsString), /* updateTailsOnly */ true); + updateBoatPositions(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), + competitorsToShow, result.getBoatPositionsForCompetitors(competitorsByIdAsString), + /* updateTailsOnly */ true); } })); } } - private AsyncCallback getRaceMapDataCallback( - final Date newTime, - final long transitionTimeInMillis, + private AsyncCallback getRaceMapDataCallback(final Date newTime, final long transitionTimeInMillis, final Map hasTailOverlapForCompetitor, final Iterable competitorsToShow, final int requestID) { return new MarkedAsyncCallback<>(new AsyncCallback() { @Override public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining racemap data: " + caught.getMessage(), true /*silentMode */); + errorReporter.reportError("Error obtaining racemap data: " + caught.getMessage(), + true /* silentMode */); } - + @Override public void onSuccess(RaceMapDataDTO raceMapDataDTO) { if (map != null && raceMapDataDTO != null) { @@ -927,29 +969,31 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe startedProcessingRequestID = requestID; if (raceMapDataDTO.raceCompetitorIdsAsStrings != null) { try { - raceCompetitorSet.setIdsAsStringsOfCompetitorsInRace(raceMapDataDTO.raceCompetitorIdsAsStrings); + raceCompetitorSet + .setIdsAsStringsOfCompetitorsInRace(raceMapDataDTO.raceCompetitorIdsAsStrings); } catch (Exception e) { - GWT.log("Error trying to update competitor set for race "+raceIdentifier.getRaceName()+ - " in regatta "+raceIdentifier.getRegattaName(), e); + GWT.log("Error trying to update competitor set for race " + raceIdentifier.getRaceName() + + " in regatta " + raceIdentifier.getRegattaName(), e); } } quickRanks = raceMapDataDTO.quickRanks; - competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber = - raceMapDataDTO.competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; + competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber = raceMapDataDTO.competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; if (showViewSimulation && settings.isShowSimulationOverlay()) { lastLegNumber = raceMapDataDTO.coursePositions.currentLegNumber; - simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), /* clearCanvas */ false, raceMapDataDTO.simulationResultVersion); + simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), /* clearCanvas */ false, + raceMapDataDTO.simulationResultVersion); } // Do boat specific actions Map> boatData = raceMapDataDTO.boatPositions; - updateBoatPositions(newTime, transitionTimeInMillis, hasTailOverlapForCompetitor, competitorsToShow, boatData, /* updateTailsOnly */ false); + updateBoatPositions(newTime, transitionTimeInMillis, hasTailOverlapForCompetitor, + competitorsToShow, boatData, /* updateTailsOnly */ false); if (douglasMarkers != null) { removeAllMarkDouglasPeuckerpoints(); } if (maneuverMarkers != null) { removeAllManeuverMarkers(); } - + if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { updateCoordinateSystemFromSettings(); } @@ -958,24 +1002,25 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe showCourseSidelinesOnMap(raceMapDataDTO.courseSidelines); showStartAndFinishAndCourseMiddleLines(raceMapDataDTO.coursePositions); showStartLineToFirstMarkTriangle(raceMapDataDTO.coursePositions); - + // Rezoom the map LatLngBounds zoomToBounds = null; - if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { // Auto zoom if setting is not manual + if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { // Auto zoom if setting is + // not manual zoomToBounds = settings.getZoomSettings().getNewBounds(RaceMap.this); if (zoomToBounds == null && !mapFirstZoomDone) { - zoomToBounds = getDefaultZoomBounds(); // the user-specified zoom couldn't find what it was looking for; try defaults once + zoomToBounds = getDefaultZoomBounds(); // the user-specified zoom couldn't find what it + // was looking for; try defaults once } } else if (!mapFirstZoomDone) { // Zoom once to the marks if marks exist zoomToBounds = new CourseMarksBoundsCalculator().calculateNewBounds(RaceMap.this); if (zoomToBounds == null) { - zoomToBounds = getDefaultZoomBounds(); // use default zoom, e.g., + zoomToBounds = getDefaultZoomBounds(); // use default zoom, e.g., } /* - * Reset the mapZoomedOrPannedSinceLastRaceSelection: In spite of the fact that - * the map was just zoomed to the bounds of the marks, it was not a zoom or pan - * triggered by the user. As a consequence the - * mapZoomedOrPannedSinceLastRaceSelection option has to reset again. + * Reset the mapZoomedOrPannedSinceLastRaceSelection: In spite of the fact that the map was + * just zoomed to the bounds of the marks, it was not a zoom or pan triggered by the user. + * As a consequence the mapZoomedOrPannedSinceLastRaceSelection option has to reset again. */ } zoomMapToNewBounds(zoomToBounds); @@ -1013,12 +1058,14 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe */ private void updateBoatPositions(final Date newTime, final long transitionTimeInMillis, final Map hasTailOverlapForCompetitor, - final Iterable competitorsToShow, Map> boatData, boolean updateTailsOnly) { - final Map tailPreparersPerCompetitor = - fixesAndTails.updateFixes(boatData, hasTailOverlapForCompetitor, RaceMap.this, transitionTimeInMillis); + final Iterable competitorsToShow, Map> boatData, + boolean updateTailsOnly) { + final Map tailPreparersPerCompetitor = fixesAndTails.updateFixes(boatData, + hasTailOverlapForCompetitor, RaceMap.this, transitionTimeInMillis); showBoatsOnMap(newTime, transitionTimeInMillis, competitorsToShow, updateTailsOnly, tailPreparersPerCompetitor); if (!updateTailsOnly) { - showCompetitorInfoOnMap(newTime, transitionTimeInMillis, competitorSelection.getSelectedFilteredCompetitors()); + showCompetitorInfoOnMap(newTime, transitionTimeInMillis, + competitorSelection.getSelectedFilteredCompetitors()); // even though the wind data is retrieved by a separate call, re-draw the advantage line because it needs to // adjust to new boat positions showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); @@ -1026,13 +1073,13 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private void showCourseSidelinesOnMap(List sidelinesDTOs) { - if (map != null && sidelinesDTOs != null ) { + if (map != null && sidelinesDTOs != null) { Map toRemoveSidelines = new HashMap(courseSidelines); for (SidelineDTO sidelineDTO : sidelinesDTOs) { if (sidelineDTO.getMarks().size() == 2) { // right now we only support sidelines with 2 marks Polygon sideline = courseSidelines.get(sidelineDTO); LatLng[] sidelinePoints = new LatLng[sidelineDTO.getMarks().size()]; - int i=0; + int i = 0; for (MarkDTO sidelineMark : sidelineDTO.getMarks()) { sidelinePoints[i] = coordinateSystem.toLatLng(sidelineMark.position); i++; @@ -1045,7 +1092,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe options.setStrokeOpacity(1.0); options.setFillColor(null); options.setFillOpacity(1.0); - + sideline = Polygon.newInstance(options); MVCArray pointsAsArray = MVCArray.newInstance(sidelinePoints); sideline.setPath(pointsAsArray); @@ -1079,25 +1126,28 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } } - + private void showCourseMarksOnMap(CoursePositionsDTO courseDTO) { if (map != null && courseDTO != null) { WaypointDTO endWaypointForCurrentLegNumber = null; - if(courseDTO.currentLegNumber > 0 && courseDTO.currentLegNumber <= courseDTO.totalLegsCount) { + if (courseDTO.currentLegNumber > 0 && courseDTO.currentLegNumber <= courseDTO.totalLegsCount) { endWaypointForCurrentLegNumber = courseDTO.getEndWaypointForLegNumber(courseDTO.currentLegNumber); } - - Map toRemoveCourseMarks = new HashMap(courseMarkOverlays); + + Map toRemoveCourseMarks = new HashMap( + courseMarkOverlays); if (courseDTO.marks != null) { for (MarkDTO markDTO : courseDTO.marks) { boolean isSelected = false; - if (endWaypointForCurrentLegNumber != null && Util.contains(endWaypointForCurrentLegNumber.controlPoint.getMarks(), markDTO)) { + if (endWaypointForCurrentLegNumber != null + && Util.contains(endWaypointForCurrentLegNumber.controlPoint.getMarks(), markDTO)) { isSelected = true; } CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTO.getName()); if (courseMarkOverlay == null) { courseMarkOverlay = createCourseMarkOverlay(RaceMapOverlaysZIndexes.COURSEMARK_ZINDEX, markDTO); - courseMarkOverlay.setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); + courseMarkOverlay + .setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); courseMarkOverlay.setBuoyZoneRadiusInMeter(settings.getBuoyZoneRadiusInMeters()); courseMarkOverlay.setSelected(isSelected); courseMarkOverlays.put(markDTO.getName(), courseMarkOverlay); @@ -1105,7 +1155,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe courseMarkOverlay.addToMap(); } else { courseMarkOverlay.setMarkPosition(markDTO.position); - courseMarkOverlay.setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); + courseMarkOverlay + .setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); courseMarkOverlay.setBuoyZoneRadiusInMeter(settings.getBuoyZoneRadiusInMeters()); courseMarkOverlay.setSelected(isSelected); courseMarkOverlay.draw(); @@ -1115,16 +1166,16 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } for (String toRemoveMarkName : toRemoveCourseMarks.keySet()) { CourseMarkOverlay removedOverlay = courseMarkOverlays.remove(toRemoveMarkName); - if(removedOverlay != null) { + if (removedOverlay != null) { removedOverlay.removeFromMap(); } } } } - + /** - * Based on the mark positions in {@link #courseMarkOverlays}' values this method determines the center of gravity of these marks' - * {@link CourseMarkOverlay#getPosition() positions}. + * Based on the mark positions in {@link #courseMarkOverlays}' values this method determines the center of gravity + * of these marks' {@link CourseMarkOverlay#getPosition() positions}. */ private Position getCenterOfCourse() { ScalablePosition center = null; @@ -1148,16 +1199,18 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } - private void showWindSensorsOnMap(List> windSensorsList) { + private void showWindSensorsOnMap( + List> windSensorsList) { if (map != null) { Set toRemoveWindSources = new HashSet(windSensorOverlays.keySet()); for (com.sap.sse.common.Util.Pair windSourcePair : windSensorsList) { - WindSource windSource = windSourcePair.getA(); + WindSource windSource = windSourcePair.getA(); WindTrackInfoDTO windTrackInfoDTO = windSourcePair.getB(); WindSensorOverlay windSensorOverlay = windSensorOverlays.get(windSource); if (windSensorOverlay == null) { - windSensorOverlay = createWindSensorOverlay(RaceMapOverlaysZIndexes.WINDSENSOR_ZINDEX, windSource, windTrackInfoDTO); + windSensorOverlay = createWindSensorOverlay(RaceMapOverlaysZIndexes.WINDSENSOR_ZINDEX, windSource, + windTrackInfoDTO); windSensorOverlays.put(windSource, windSensorOverlay); windSensorOverlay.addToMap(); } else { @@ -1175,7 +1228,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } - private void showCompetitorInfoOnMap(final Date newTime, final long timeForPositionTransitionMillis, final Iterable competitorsToShow) { + private void showCompetitorInfoOnMap(final Date newTime, final long timeForPositionTransitionMillis, + final Iterable competitorsToShow) { if (map != null) { if (settings.isShowSelectedCompetitorsInfo()) { Set toRemoveCompetorInfoOverlays = new HashSet( @@ -1186,12 +1240,15 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe if (lastBoatFix != null) { CompetitorInfoOverlay competitorInfoOverlay = competitorInfoOverlays.get(competitorDTO); if (competitorInfoOverlay == null) { - competitorInfoOverlay = createCompetitorInfoOverlay(RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, competitorDTO); + competitorInfoOverlay = createCompetitorInfoOverlay( + RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, competitorDTO); competitorInfoOverlays.put(competitorDTO, competitorInfoOverlay); - competitorInfoOverlay.setPosition(lastBoatFix.position, timeForPositionTransitionMillis); + competitorInfoOverlay.setPosition(lastBoatFix.position, + timeForPositionTransitionMillis); competitorInfoOverlay.addToMap(); } else { - competitorInfoOverlay.setPosition(lastBoatFix.position, timeForPositionTransitionMillis); + competitorInfoOverlay.setPosition(lastBoatFix.position, + timeForPositionTransitionMillis); competitorInfoOverlay.draw(); } toRemoveCompetorInfoOverlays.remove(competitorDTO); @@ -1215,17 +1272,18 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private long calculateTimeForPositionTransitionInMillis(final Date newTime, final Date oldTime) { final long timeForPositionTransitionMillis; - boolean hasTimeJumped = oldTime != null && Math.abs(oldTime.getTime() - newTime.getTime()) > 3*timer.getRefreshInterval(); + boolean hasTimeJumped = oldTime != null + && Math.abs(oldTime.getTime() - newTime.getTime()) > 3 * timer.getRefreshInterval(); if (timer.getPlayState() == PlayStates.Playing && !hasTimeJumped) { // choose 130% of the refresh interval as transition period to make it unlikely that the transition // stops before the next update has been received - timeForPositionTransitionMillis = 1300 * timer.getRefreshInterval() / 1000; + timeForPositionTransitionMillis = 1300 * timer.getRefreshInterval() / 1000; } else { timeForPositionTransitionMillis = -1; // -1 means 'no transition } return timeForPositionTransitionMillis; } - + /** * @param updateTailsOnly * if false, tails of competitors not in competitorsToShow are removed from the @@ -1250,20 +1308,25 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe if (fixesAndTails.hasFixesFor(competitorDTO)) { Polyline tail = fixesAndTails.getTail(competitorDTO); if (tail == null) { - if (tailPreparer != null) { // could be we didn't receive boat position data for this competitor; then no tailPreparer will have been created + if (tailPreparer != null) { // could be we didn't receive boat position data for this + // competitor; then no tailPreparer will have been created tailPreparer.run(); // presumably a no-op, but you never know... } - tail = fixesAndTails.createTailAndUpdateIndices(competitorDTO, tailsFromTime, tailsToTime, this); + tail = fixesAndTails.createTailAndUpdateIndices(competitorDTO, tailsFromTime, tailsToTime, + this); } else { fixesAndTails.updateTail(tail, competitorDTO, tailsFromTime, tailsToTime, - (int) (timeForPositionTransitionMillis==-1?-1:timeForPositionTransitionMillis/2), tailPreparer); + (int) (timeForPositionTransitionMillis == -1 ? -1 + : timeForPositionTransitionMillis / 2), + tailPreparer); if (!updateTailsOnly) { competitorDTOsOfUnusedTails.remove(competitorDTO); } PolylineOptions newOptions = createTailStyle(competitorDTO, displayHighlighted(competitorDTO)); tail.setOptions(newOptions); } - boolean usedExistingBoatCanvas = updateBoatCanvasForCompetitor(competitorDTO, newTime, timeForPositionTransitionMillis); + boolean usedExistingBoatCanvas = updateBoatCanvasForCompetitor(competitorDTO, newTime, + timeForPositionTransitionMillis); if (usedExistingBoatCanvas && !updateTailsOnly) { competitorDTOsOfUnusedBoatCanvases.remove(competitorDTO); } @@ -1288,45 +1351,49 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe * necessary if greater distances are allowed. */ public LatLng calculatePositionAlongRhumbline(LatLng position, double bearingDeg, double distanceInKm) { - double distianceRad = distanceInKm / 6371.0; // r = 6371 means earth's radius in km + double distianceRad = distanceInKm / 6371.0; // r = 6371 means earth's radius in km double lat1 = position.getLatitude() / 180. * Math.PI; double lon1 = position.getLongitude() / 180. * Math.PI; double bearingRad = bearingDeg / 180. * Math.PI; - double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distianceRad) + - Math.cos(lat1) * Math.sin(distianceRad) * Math.cos(bearingRad)); - double lon2 = lon1 + Math.atan2(Math.sin(bearingRad)*Math.sin(distianceRad)*Math.cos(lat1), - Math.cos(distianceRad)-Math.sin(lat1)*Math.sin(lat2)); - lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI; // normalize to -180..+180� + double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distianceRad) + + Math.cos(lat1) * Math.sin(distianceRad) * Math.cos(bearingRad)); + double lon2 = lon1 + Math.atan2(Math.sin(bearingRad) * Math.sin(distianceRad) * Math.cos(lat1), + Math.cos(distianceRad) - Math.sin(lat1) * Math.sin(lat2)); + lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI; // normalize to -180..+180� // position is already in LatLng space, so no mapping through coordinateSystem is required here - return LatLng.newInstance(lat2 / Math.PI * 180., lon2 / Math.PI * 180.); + return LatLng.newInstance(lat2 / Math.PI * 180., lon2 / Math.PI * 180.); } - + /** - * Returns a pair whose first component is the leg number (one-based) of the competitor returned as the second component. + * Returns a pair whose first component is the leg number (one-based) of the competitor returned as the second + * component. */ private com.sap.sse.common.Util.Pair getFarthestAheadVisibleCompetitorWithOneBasedLegNumber( Iterable competitorsToShow) { CompetitorDTO leadingCompetitorDTO = null; int legOfLeaderCompetitor = -1; // this only works because the quickRanks are sorted - for (Entry competitorsByWindwardDistanceTraveledAndOneBasedLegNumber : - competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber.entrySet()) { - if (Util.contains(competitorsToShow, competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey()) && - competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue() != null) { + for (Entry competitorsByWindwardDistanceTraveledAndOneBasedLegNumber : competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber + .entrySet()) { + if (Util.contains(competitorsToShow, competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey()) + && competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue() != null) { leadingCompetitorDTO = competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey(); legOfLeaderCompetitor = competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue(); - return new com.sap.sse.common.Util.Pair(legOfLeaderCompetitor, leadingCompetitorDTO); + return new com.sap.sse.common.Util.Pair(legOfLeaderCompetitor, + leadingCompetitorDTO); } } return null; } - private void showAdvantageLine(Iterable competitorsToShow, Date date, long timeForPositionTransitionMillis) { + private void showAdvantageLine(Iterable competitorsToShow, Date date, + long timeForPositionTransitionMillis) { if (map != null && lastRaceTimesInfo != null && quickRanks != null && lastCombinedWindTrackInfoDTO != null) { boolean drawAdvantageLine = false; if (settings.getHelpLinesSettings().isVisible(HelpLineTypes.ADVANTAGELINE)) { // find competitor with highest rank - com.sap.sse.common.Util.Pair visibleLeaderInfo = getFarthestAheadVisibleCompetitorWithOneBasedLegNumber(competitorsToShow); + com.sap.sse.common.Util.Pair visibleLeaderInfo = getFarthestAheadVisibleCompetitorWithOneBasedLegNumber( + competitorsToShow); // the boat fix may be null; may mean that no positions were loaded yet for the leading visible boat; // don't show anything GPSFixDTO lastBoatFix = null; @@ -1334,8 +1401,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe boolean isLegTypeKnown = false; WindTrackInfoDTO windDataForLegMiddle = null; LegInfoDTO legInfoDTO = null; - if (visibleLeaderInfo != null - && visibleLeaderInfo.getA() > 0 + if (visibleLeaderInfo != null && visibleLeaderInfo.getA() > 0 && visibleLeaderInfo.getA() <= lastRaceTimesInfo.getLegInfos().size() // get wind at middle of leg for leading visible competitor && (windDataForLegMiddle = lastCombinedWindTrackInfoDTO @@ -1348,7 +1414,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } lastBoatFix = getBoatFix(visibleLeaderInfo.getB(), date); } - if (isVisibleLeaderInfoComplete && isLegTypeKnown && lastBoatFix != null && lastBoatFix.speedWithBearing != null) { + if (isVisibleLeaderInfoComplete && isLegTypeKnown && lastBoatFix != null + && lastBoatFix.speedWithBearing != null) { double advantageLineLengthInKm = 1.0; // TODO this should probably rather scale with the visible // area of the map; bug 616 double distanceFromBoatPositionInKm = visibleLeaderInfo.getB().getBoatClass() @@ -1409,8 +1476,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe advantageLine.setMap(map); Hoverline advantageHoverline = new Hoverline(advantageLine, options, this); - advantageLineMouseOverHandler = new AdvantageLineMouseOverMapHandler( - bearingOfCombinedWindInDeg, new Date(windFix.measureTimepoint)); + advantageLineMouseOverHandler = new AdvantageLineMouseOverMapHandler(bearingOfCombinedWindInDeg, + new Date(windFix.measureTimepoint)); advantageLine.addMouseOverHandler(advantageLineMouseOverHandler); advantageHoverline.addMouseOutMoveHandler(new MouseOutMapHandler() { @Override @@ -1439,23 +1506,21 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } } - + private final StringBuilder windwardStartLineMarkToFirstMarkLineText = new StringBuilder(); private final StringBuilder leewardStartLineMarkToFirstMarkLineText = new StringBuilder(); - - private void showStartLineToFirstMarkTriangle(final CoursePositionsDTO courseDTO){ + + private void showStartLineToFirstMarkTriangle(final CoursePositionsDTO courseDTO) { final List startMarkPositions = courseDTO.getStartMarkPositions(); final Position windwardStartLinePosition = startMarkPositions.get(0); final Position leewardStartLinePosition = startMarkPositions.get(1); final Position firstMarkPosition = courseDTO.waypointPositions.get(1); windwardStartLineMarkToFirstMarkLineText.replace(0, windwardStartLineMarkToFirstMarkLineText.length(), stringMessages.startLineToFirstMarkTriangle(numberFormatOneDecimal - .format(windwardStartLinePosition.getDistance(firstMarkPosition) - .getMeters()))); + .format(windwardStartLinePosition.getDistance(firstMarkPosition).getMeters()))); leewardStartLineMarkToFirstMarkLineText.replace(0, leewardStartLineMarkToFirstMarkLineText.length(), stringMessages.startLineToFirstMarkTriangle(numberFormatOneDecimal - .format(leewardStartLinePosition.getDistance(firstMarkPosition) - .getMeters()))); + .format(leewardStartLinePosition.getDistance(firstMarkPosition).getMeters()))); final LineInfoProvider windwardStartLineMarkToFirstMarkLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { @@ -1468,16 +1533,16 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return leewardStartLineMarkToFirstMarkLineText.toString(); } }; - windwardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine(windwardStartLineMarkToFirstMarkLine, /* showLine */ + windwardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine( + windwardStartLineMarkToFirstMarkLine, /* showLine */ (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINETOFIRSTMARKTRIANGLE)) && startMarkPositions.size() > 1 && courseDTO.waypointPositions.size() > 1, - windwardStartLinePosition, firstMarkPosition, windwardStartLineMarkToFirstMarkLineInfoProvider, - "grey"); - leewardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine(leewardStartLineMarkToFirstMarkLine, /* showLine */ + windwardStartLinePosition, firstMarkPosition, windwardStartLineMarkToFirstMarkLineInfoProvider, "grey"); + leewardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine( + leewardStartLineMarkToFirstMarkLine, /* showLine */ (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINETOFIRSTMARKTRIANGLE)) && startMarkPositions.size() > 1 && courseDTO.waypointPositions.size() > 1, - leewardStartLinePosition, firstMarkPosition, leewardStartLineMarkToFirstMarkLineInfoProvider, - "grey"); + leewardStartLinePosition, firstMarkPosition, leewardStartLineMarkToFirstMarkLineInfoProvider, "grey"); } private final StringBuilder startLineAdvantageText = new StringBuilder(); @@ -1485,112 +1550,133 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe final LineInfoProvider startLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { - return stringMessages.startLine()+startLineAdvantageText; + return stringMessages.startLine() + startLineAdvantageText; } }; final LineInfoProvider finishLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { - return stringMessages.finishLine()+finishLineAdvantageText; + return stringMessages.finishLine() + finishLineAdvantageText; } }; private void showStartAndFinishAndCourseMiddleLines(final CoursePositionsDTO courseDTO) { - if (map != null && courseDTO != null && courseDTO.course != null && courseDTO.course.waypoints != null && - !courseDTO.course.waypoints.isEmpty()) { + if (map != null && courseDTO != null && courseDTO.course != null && courseDTO.course.waypoints != null + && !courseDTO.course.waypoints.isEmpty()) { // draw the start line final WaypointDTO startWaypoint = courseDTO.course.waypoints.get(0); updateCountdownCanvas(startWaypoint); - final int numberOfStartWaypointMarks = courseDTO.getStartMarkPositions() == null ? 0 : courseDTO.getStartMarkPositions().size(); - final int numberOfFinishWaypointMarks = courseDTO.getFinishMarkPositions() == null ? 0 : courseDTO.getFinishMarkPositions().size(); - final Position startLineLeftPosition = numberOfStartWaypointMarks == 0 ? null : courseDTO.getStartMarkPositions().get(0); - final Position startLineRightPosition = numberOfStartWaypointMarks < 2 ? null : courseDTO.getStartMarkPositions().get(1); + final int numberOfStartWaypointMarks = courseDTO.getStartMarkPositions() == null ? 0 + : courseDTO.getStartMarkPositions().size(); + final int numberOfFinishWaypointMarks = courseDTO.getFinishMarkPositions() == null ? 0 + : courseDTO.getFinishMarkPositions().size(); + final Position startLineLeftPosition = numberOfStartWaypointMarks == 0 ? null + : courseDTO.getStartMarkPositions().get(0); + final Position startLineRightPosition = numberOfStartWaypointMarks < 2 ? null + : courseDTO.getStartMarkPositions().get(1); if (courseDTO.startLineAngleToCombinedWind != null) { - startLineAdvantageText.replace(0, startLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage( - NumberFormat.getFormat("0.0").format(courseDTO.startLineLengthInMeters), - NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.startLineAngleToCombinedWind)), - courseDTO.startLineAdvantageousSide.name().charAt(0)+courseDTO.startLineAdvantageousSide.name().substring(1).toLowerCase(), - NumberFormat.getFormat("0.0").format(courseDTO.startLineAdvantageInMeters))); + startLineAdvantageText.replace(0, startLineAdvantageText.length(), + " " + stringMessages.lineAngleToWindAndAdvantage( + NumberFormat.getFormat("0.0").format(courseDTO.startLineLengthInMeters), + NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.startLineAngleToCombinedWind)), + courseDTO.startLineAdvantageousSide.name().charAt(0) + + courseDTO.startLineAdvantageousSide.name().substring(1).toLowerCase(), + NumberFormat.getFormat("0.0").format(courseDTO.startLineAdvantageInMeters))); } else { startLineAdvantageText.delete(0, startLineAdvantageText.length()); } - final boolean showStartLineBasedOnCurrentLeg = numberOfStartWaypointMarks == 2 && courseDTO.currentLegNumber <= 1; - final boolean showFinishLineBasedOnCurrentLeg = numberOfFinishWaypointMarks == 2 && courseDTO.currentLegNumber == courseDTO.totalLegsCount; + final boolean showStartLineBasedOnCurrentLeg = numberOfStartWaypointMarks == 2 + && courseDTO.currentLegNumber <= 1; + final boolean showFinishLineBasedOnCurrentLeg = numberOfFinishWaypointMarks == 2 + && courseDTO.currentLegNumber == courseDTO.totalLegsCount; // show the line when STARTLINE is selected and the current leg is around the start leg, - // or when COURSEGEOMETRY is selected and the finish line isn't equal and wouldn't be shown at the same time based on the current leg. - // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will not be displayed if + // or when COURSEGEOMETRY is selected and the finish line isn't equal and wouldn't be shown at the same time + // based on the current leg. + // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will not be + // displayed if // based on the race progress the finish line is to be preferred, so only the finish line will be shown. - final boolean reallyShowStartLine = - (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINE) && showStartLineBasedOnCurrentLeg) || - (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) && - (!showFinishLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO))); + final boolean reallyShowStartLine = (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINE) + && showStartLineBasedOnCurrentLeg) + || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) + && (!showFinishLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO))); // show the line when FINISHLINE is selected and the current leg is the last leg, // or when COURSEGEOMETRY is selected and the start line isn't equal or the current leg is the last leg. - // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will be displayed unless + // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will be + // displayed unless // the finish line should take precedence based on race progress. - final boolean reallyShowFinishLine = showFinishLineBasedOnCurrentLeg && - (!showStartLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO)) && - (settings.getHelpLinesSettings().isVisible(HelpLineTypes.FINISHLINE) && showFinishLineBasedOnCurrentLeg) || - (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) && - (!startLineEqualsFinishLine(courseDTO) || showFinishLineBasedOnCurrentLeg)); - startLine = showOrRemoveOrUpdateLine(startLine, reallyShowStartLine, - startLineLeftPosition, startLineRightPosition, startLineInfoProvider, "#ffffff"); + final boolean reallyShowFinishLine = showFinishLineBasedOnCurrentLeg + && (!showStartLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO)) + && (settings.getHelpLinesSettings().isVisible(HelpLineTypes.FINISHLINE) + && showFinishLineBasedOnCurrentLeg) + || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) + && (!startLineEqualsFinishLine(courseDTO) || showFinishLineBasedOnCurrentLeg)); + startLine = showOrRemoveOrUpdateLine(startLine, reallyShowStartLine, startLineLeftPosition, + startLineRightPosition, startLineInfoProvider, "#ffffff"); // draw the finish line - final Position finishLineLeftPosition = numberOfFinishWaypointMarks == 0 ? null : courseDTO.getFinishMarkPositions().get(0); - final Position finishLineRightPosition = numberOfFinishWaypointMarks < 2 ? null : courseDTO.getFinishMarkPositions().get(1); + final Position finishLineLeftPosition = numberOfFinishWaypointMarks == 0 ? null + : courseDTO.getFinishMarkPositions().get(0); + final Position finishLineRightPosition = numberOfFinishWaypointMarks < 2 ? null + : courseDTO.getFinishMarkPositions().get(1); if (courseDTO.finishLineAngleToCombinedWind != null) { - finishLineAdvantageText.replace(0, finishLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage( - NumberFormat.getFormat("0.0").format(courseDTO.finishLineLengthInMeters), - NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.finishLineAngleToCombinedWind)), - courseDTO.finishLineAdvantageousSide.name().charAt(0)+courseDTO.finishLineAdvantageousSide.name().substring(1).toLowerCase(), - NumberFormat.getFormat("0.0").format(courseDTO.finishLineAdvantageInMeters))); + finishLineAdvantageText.replace(0, finishLineAdvantageText.length(), + " " + stringMessages.lineAngleToWindAndAdvantage( + NumberFormat.getFormat("0.0").format(courseDTO.finishLineLengthInMeters), + NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.finishLineAngleToCombinedWind)), + courseDTO.finishLineAdvantageousSide.name().charAt(0) + + courseDTO.finishLineAdvantageousSide.name().substring(1).toLowerCase(), + NumberFormat.getFormat("0.0").format(courseDTO.finishLineAdvantageInMeters))); } else { finishLineAdvantageText.delete(0, finishLineAdvantageText.length()); } - finishLine = showOrRemoveOrUpdateLine(finishLine, reallyShowFinishLine, - finishLineLeftPosition, finishLineRightPosition, finishLineInfoProvider, "#000000"); + finishLine = showOrRemoveOrUpdateLine(finishLine, reallyShowFinishLine, finishLineLeftPosition, + finishLineRightPosition, finishLineInfoProvider, "#000000"); // the control point pairs for which we already decided whether or not // to show a course middle line for; values tell whether to show the line and for which zero-based // start waypoint index to do so; when for an equal control point pair multiple decisions with different // outcome are made, a decision to show the line overrules the decision to not show it (OR-semantics) final Map, Pair> keysAlreadyHandled = new HashMap<>(); - for (int zeroBasedIndexOfStartWaypoint = 0; zeroBasedIndexOfStartWaypoint key = getCourseMiddleLinesKey(courseDTO, zeroBasedIndexOfStartWaypoint); - boolean showCourseMiddleLine = keysAlreadyHandled.containsKey(key) && keysAlreadyHandled.get(key).getA() || - settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) || - (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEMIDDLELINE) - && courseDTO.currentLegNumber > 0 - && courseDTO.currentLegNumber-1 == zeroBasedIndexOfStartWaypoint); + boolean showCourseMiddleLine = keysAlreadyHandled.containsKey(key) && keysAlreadyHandled.get(key).getA() + || settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) + || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEMIDDLELINE) + && courseDTO.currentLegNumber > 0 + && courseDTO.currentLegNumber - 1 == zeroBasedIndexOfStartWaypoint); keysAlreadyHandled.put(key, new Pair<>(showCourseMiddleLine, zeroBasedIndexOfStartWaypoint)); } Set> keysToConsider = new HashSet<>(keysAlreadyHandled.keySet()); keysToConsider.addAll(courseMiddleLines.keySet()); for (final Set key : keysToConsider) { - final int zeroBasedIndexOfStartWaypoint = keysAlreadyHandled.containsKey(key) ? - keysAlreadyHandled.get(key).getB() : 0; // if not handled, the line will be removed, so the waypoint index doesn't matter + final int zeroBasedIndexOfStartWaypoint = keysAlreadyHandled.containsKey(key) + ? keysAlreadyHandled.get(key).getB() : 0; // if not handled, the line will be removed, so the + // waypoint index doesn't matter final Pair showLineAndZeroBasedIndexOfStartWaypoint = keysAlreadyHandled.get(key); - final boolean showCourseMiddleLine = showLineAndZeroBasedIndexOfStartWaypoint != null && showLineAndZeroBasedIndexOfStartWaypoint.getA(); - courseMiddleLines.put(key, showOrRemoveCourseMiddleLine(courseDTO, courseMiddleLines.get(key), zeroBasedIndexOfStartWaypoint, showCourseMiddleLine)); + final boolean showCourseMiddleLine = showLineAndZeroBasedIndexOfStartWaypoint != null + && showLineAndZeroBasedIndexOfStartWaypoint.getA(); + courseMiddleLines.put(key, showOrRemoveCourseMiddleLine(courseDTO, courseMiddleLines.get(key), + zeroBasedIndexOfStartWaypoint, showCourseMiddleLine)); } } } private boolean startLineEqualsFinishLine(CoursePositionsDTO courseDTO) { final List waypoints; - return courseDTO != null && courseDTO.course != null && - (waypoints = courseDTO.course.waypoints) != null && - waypoints.get(0).controlPoint.equals(waypoints.get(waypoints.size()-1).controlPoint); + return courseDTO != null && courseDTO.course != null && (waypoints = courseDTO.course.waypoints) != null + && waypoints.get(0).controlPoint.equals(waypoints.get(waypoints.size() - 1).controlPoint); } /** - * Given a zero-based index into courseDTO's {@link RaceCourseDTO#waypoints waypoints list} that denotes the start - * waypoint of the leg in question, returns a key that can be used for the {@link #courseMiddleLines} map, consisting of a set - * that holds the two {@link ControlPointDTO}s representing the start and finish control point of that leg. + * Given a zero-based index into courseDTO's {@link RaceCourseDTO#waypoints waypoints list} that + * denotes the start waypoint of the leg in question, returns a key that can be used for the + * {@link #courseMiddleLines} map, consisting of a set that holds the two {@link ControlPointDTO}s representing the + * start and finish control point of that leg. */ private Set getCourseMiddleLinesKey(final CoursePositionsDTO courseDTO, final int zeroBasedIndexOfStartWaypoint) { ControlPointDTO startControlPoint = courseDTO.course.waypoints.get(zeroBasedIndexOfStartWaypoint).controlPoint; - ControlPointDTO endControlPoint = courseDTO.course.waypoints.get(zeroBasedIndexOfStartWaypoint+1).controlPoint; + ControlPointDTO endControlPoint = courseDTO.course.waypoints + .get(zeroBasedIndexOfStartWaypoint + 1).controlPoint; final Set key = new HashSet<>(); key.add(startControlPoint); key.add(endControlPoint); @@ -1606,26 +1692,29 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe * @return null if the line is not shown; the polyline object representing the line being displayed * otherwise */ - private Polyline showOrRemoveCourseMiddleLine(final CoursePositionsDTO courseDTO, Polyline lineToShowOrRemoveOrUpdate, - final int zeroBasedIndexOfStartWaypoint, final boolean showLine) { + private Polyline showOrRemoveCourseMiddleLine(final CoursePositionsDTO courseDTO, + Polyline lineToShowOrRemoveOrUpdate, final int zeroBasedIndexOfStartWaypoint, final boolean showLine) { final Position position1DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint); - final Position position2DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint+1); + final Position position2DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint + 1); final LineInfoProvider lineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { final StringBuilder sb = new StringBuilder(); sb.append(stringMessages.courseMiddleLine()); sb.append('\n'); - sb.append(NumberFormat.getFormat("0").format( - Math.abs(position1DTO.getDistance(position2DTO).getMeters()))+stringMessages.metersUnit()); + sb.append( + NumberFormat.getFormat("0").format(Math.abs(position1DTO.getDistance(position2DTO).getMeters())) + + stringMessages.metersUnit()); if (lastCombinedWindTrackInfoDTO != null) { - final WindTrackInfoDTO windTrackAtLegMiddle = lastCombinedWindTrackInfoDTO.getCombinedWindOnLegMiddle(zeroBasedIndexOfStartWaypoint); - if (windTrackAtLegMiddle != null && windTrackAtLegMiddle.windFixes != null && !windTrackAtLegMiddle.windFixes.isEmpty()) { + final WindTrackInfoDTO windTrackAtLegMiddle = lastCombinedWindTrackInfoDTO + .getCombinedWindOnLegMiddle(zeroBasedIndexOfStartWaypoint); + if (windTrackAtLegMiddle != null && windTrackAtLegMiddle.windFixes != null + && !windTrackAtLegMiddle.windFixes.isEmpty()) { WindDTO windAtLegMiddle = windTrackAtLegMiddle.windFixes.get(0); final double legBearingDeg = position1DTO.getBearingGreatCircle(position2DTO).getDegrees(); - final String diff = NumberFormat.getFormat("0.0").format( - Math.min(Math.abs(windAtLegMiddle.dampenedTrueWindBearingDeg-legBearingDeg), - Math.abs(windAtLegMiddle.dampenedTrueWindFromDeg-legBearingDeg))); + final String diff = NumberFormat.getFormat("0.0") + .format(Math.min(Math.abs(windAtLegMiddle.dampenedTrueWindBearingDeg - legBearingDeg), + Math.abs(windAtLegMiddle.dampenedTrueWindFromDeg - legBearingDeg))); sb.append(", "); sb.append(stringMessages.degreesToWind(diff)); } @@ -1633,13 +1722,14 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return sb.toString(); } }; - return showOrRemoveOrUpdateLine(lineToShowOrRemoveOrUpdate, showLine, position1DTO, position2DTO, lineInfoProvider, "#2268a0"); + return showOrRemoveOrUpdateLine(lineToShowOrRemoveOrUpdate, showLine, position1DTO, position2DTO, + lineInfoProvider, "#2268a0"); } private interface LineInfoProvider { String getLineInfo(); } - + /** * @param showLine * tells whether or not to show the line; if the lineToShowOrRemoveOrUpdate references a @@ -1650,7 +1740,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe * otherwise */ private Polyline showOrRemoveOrUpdateLine(Polyline lineToShowOrRemoveOrUpdate, final boolean showLine, - final Position position1DTO, final Position position2DTO, final LineInfoProvider lineInfoProvider, String lineColorRGB) { + final Position position1DTO, final Position position2DTO, final LineInfoProvider lineInfoProvider, + String lineColorRGB) { if (showLine) { LatLng courseMiddleLinePoint1 = coordinateSystem.toLatLng(position1DTO); LatLng courseMiddleLinePoint2 = coordinateSystem.toLatLng(position2DTO); @@ -1666,7 +1757,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe lineToShowOrRemoveOrUpdate = Polyline.newInstance(options); lineToShowOrRemoveOrUpdate.setPath(pointsAsArray); lineToShowOrRemoveOrUpdate.setMap(map); - Hoverline lineToShowOrRemoveOrUpdateHoverline = new Hoverline(lineToShowOrRemoveOrUpdate, options, this); + Hoverline lineToShowOrRemoveOrUpdateHoverline = new Hoverline(lineToShowOrRemoveOrUpdate, options, + this); lineToShowOrRemoveOrUpdate.addMouseOverHandler(new MouseOverMapHandler() { @Override public void onEvent(MouseOverMapEvent event) { @@ -1698,7 +1790,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private void adjustInfoOverlayForRemovedLine(Polyline lineToShowOrRemoveOrUpdate) { - SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); + SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry + .remove(lineToShowOrRemoveOrUpdate); if (infoOverlay != null) { infoOverlay.removeFromMap(); } @@ -1709,9 +1802,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry.get(lineToShowOrRemoveOrUpdate); if (getSettings().getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY)) { if (infoOverlay == null) { - infoOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, lineInfoProvider.getLineInfo(), coordinateSystem); + infoOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, + lineInfoProvider.getLineInfo(), coordinateSystem); infoOverlaysForLinesForCourseGeometry.put(lineToShowOrRemoveOrUpdate, infoOverlay); - infoOverlay.addToMap(); + infoOverlay.addToMap(); } else { infoOverlay.setInfoText(lineInfoProvider.getLineInfo()); } @@ -1720,28 +1814,29 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe infoOverlay.draw(); } else { if (infoOverlay != null) { - infoOverlay.removeFromMap(); - infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); + infoOverlay.removeFromMap(); + infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); } } } - + /** - * If, according to {@link #lastRaceTimesInfo} and {@link #timer} the race is - * still in the pre-start phase, show a {@link SmallTransparentInfoOverlay} at the - * start line that shows the count down. + * If, according to {@link #lastRaceTimesInfo} and {@link #timer} the race is still in the pre-start phase, show a + * {@link SmallTransparentInfoOverlay} at the start line that shows the count down. */ private void updateCountdownCanvas(WaypointDTO startWaypoint) { - if (!settings.isShowSelectedCompetitorsInfo() || startWaypoint == null || Util.isEmpty(startWaypoint.controlPoint.getMarks()) - || lastRaceTimesInfo == null || lastRaceTimesInfo.startOfRace == null || timer.getTime().after(lastRaceTimesInfo.startOfRace)) { + if (!settings.isShowSelectedCompetitorsInfo() || startWaypoint == null + || Util.isEmpty(startWaypoint.controlPoint.getMarks()) || lastRaceTimesInfo == null + || lastRaceTimesInfo.startOfRace == null || timer.getTime().after(lastRaceTimesInfo.startOfRace)) { if (countDownOverlay != null) { countDownOverlay.removeFromMap(); countDownOverlay = null; } } else { long timeToStartInMs = lastRaceTimesInfo.startOfRace.getTime() - timer.getTime().getTime(); - String countDownText = timeToStartInMs > 1000 ? stringMessages.timeToStart(DateAndTimeFormatterUtil - .formatElapsedTime(timeToStartInMs)) : stringMessages.start(); + String countDownText = timeToStartInMs > 1000 + ? stringMessages.timeToStart(DateAndTimeFormatterUtil.formatElapsedTime(timeToStartInMs)) + : stringMessages.start(); if (countDownOverlay == null) { countDownOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, countDownText, coordinateSystem); @@ -1749,7 +1844,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } else { countDownOverlay.setInfoText(countDownText); } - countDownOverlay.setPosition(startWaypoint.controlPoint.getMarks().iterator().next().position, /* transition time */ -1); + countDownOverlay.setPosition(startWaypoint.controlPoint.getMarks().iterator().next().position, + /* transition time */ -1); countDownOverlay.draw(); } } @@ -1768,7 +1864,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe int MAX_ZOOM = 20; // maximum zoom-level that should be automatically selected double LOG2 = Math.log(2.0); double deltaLng = bounds.getNorthEast().getLongitude() - bounds.getSouthWest().getLongitude(); - double deltaLat = getMercatorLatitude(bounds.getNorthEast().getLatitude()) - getMercatorLatitude(bounds.getSouthWest().getLatitude()); + double deltaLat = getMercatorLatitude(bounds.getNorthEast().getLatitude()) + - getMercatorLatitude(bounds.getSouthWest().getLatitude()); if ((deltaLng == 0) && (deltaLat == 0)) { return MAX_ZOOM; } @@ -1776,27 +1873,27 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe deltaLng += 360; } int zoomLng = (int) Math.floor(Math.log(map.getDiv().getClientWidth() * 360 / deltaLng / GLOBE_PXSIZE) / LOG2); - int zoomLat = (int) Math.floor(Math.log(map.getDiv().getClientHeight() * 2 * Math.PI / deltaLat / GLOBE_PXSIZE) / LOG2); + int zoomLat = (int) Math + .floor(Math.log(map.getDiv().getClientHeight() * 2 * Math.PI / deltaLat / GLOBE_PXSIZE) / LOG2); return Math.min(Math.min(zoomLat, zoomLng), MAX_ZOOM); } - + private void zoomMapToNewBounds(LatLngBounds newBounds) { if (newBounds != null) { LatLngBounds currentMapBounds; - if (map.getBounds() == null - || !BoundsUtil.contains((currentMapBounds = map.getBounds()), newBounds) + if (map.getBounds() == null || !BoundsUtil.contains((currentMapBounds = map.getBounds()), newBounds) || graticuleAreaRatio(currentMapBounds, newBounds) > 10) { // only change bounds if the new bounds don't fit into the current map zoom Iterable oldZoomSettings = settings.getZoomSettings().getTypesToConsiderOnZoom(); setAutoZoomInProgress(true); autoZoomLatLngBounds = newBounds; - int newZoomLevel = getZoomLevel(autoZoomLatLngBounds); + int newZoomLevel = getZoomLevel(autoZoomLatLngBounds); if (newZoomLevel != map.getZoom()) { // distinguish between zoom-in and zoom-out, because the sequence of panTo() and setZoom() // appears different on the screen due to map-animations // following sequences keep the selected boats allways visible: - // zoom-in : 1. panTo(), 2. setZoom() - // zoom-out: 1. setZoom(), 2. panTo() + // zoom-in : 1. panTo(), 2. setZoom() + // zoom-out: 1. setZoom(), 2. panTo() autoZoomIn = newZoomLevel > map.getZoom(); autoZoomOut = !autoZoomIn; autoZoomLevel = newZoomLevel; @@ -1814,7 +1911,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } } - + private double graticuleAreaRatio(LatLngBounds containing, LatLngBounds contained) { assert BoundsUtil.contains(containing, contained); double containingAreaRatio = getGraticuleArea(containing) / getGraticuleArea(contained); @@ -1822,32 +1919,36 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } /** - * A much simplified "area" calculation for a {@link Bounds} object, multiplying the differences in latitude and longitude degrees. - * The result therefore is in the order of magnitude of 60*60 square nautical miles. + * A much simplified "area" calculation for a {@link Bounds} object, multiplying the differences in latitude and + * longitude degrees. The result therefore is in the order of magnitude of 60*60 square nautical miles. */ private double getGraticuleArea(LatLngBounds bounds) { - return ((BoundsUtil.isCrossesDateLine(bounds) ? bounds.getNorthEast().getLongitude()+360 : bounds.getNorthEast().getLongitude())-bounds.getSouthWest().getLongitude()) * - (bounds.getNorthEast().getLatitude() - bounds.getSouthWest().getLatitude()); + return ((BoundsUtil.isCrossesDateLine(bounds) ? bounds.getNorthEast().getLongitude() + 360 + : bounds.getNorthEast().getLongitude()) - bounds.getSouthWest().getLongitude()) + * (bounds.getNorthEast().getLatitude() - bounds.getSouthWest().getLatitude()); } private void setAutoZoomInProgress(boolean autoZoomInProgress) { this.autoZoomInProgress = autoZoomInProgress; } - + boolean isAutoZoomInProgress() { return autoZoomInProgress; } - + /** - * @param timeForPositionTransitionMillis use -1 to not animate the position transition, e.g., during map zoom or non-play + * @param timeForPositionTransitionMillis + * use -1 to not animate the position transition, e.g., during map zoom or non-play */ - private boolean updateBoatCanvasForCompetitor(CompetitorDTO competitorDTO, Date date, long timeForPositionTransitionMillis) { + private boolean updateBoatCanvasForCompetitor(CompetitorDTO competitorDTO, Date date, + long timeForPositionTransitionMillis) { boolean usedExistingCanvas = false; GPSFixDTO lastBoatFix = getBoatFix(competitorDTO, date); if (lastBoatFix != null) { BoatOverlay boatOverlay = boatOverlays.get(competitorDTO); if (boatOverlay == null) { - boatOverlay = createBoatOverlay(RaceMapOverlaysZIndexes.BOATS_ZINDEX, competitorDTO, displayHighlighted(competitorDTO)); + boatOverlay = createBoatOverlay(RaceMapOverlaysZIndexes.BOATS_ZINDEX, competitorDTO, + displayHighlighted(competitorDTO)); boatOverlays.put(competitorDTO, boatOverlay); boatOverlay.setSelected(displayHighlighted(competitorDTO)); boatOverlay.setBoatFix(lastBoatFix, timeForPositionTransitionMillis); @@ -1880,12 +1981,15 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private CompetitorInfoOverlay createCompetitorInfoOverlay(int zIndex, final CompetitorDTO competitorDTO) { - String infoText = competitorDTO.getSailID() == null || competitorDTO.getSailID().isEmpty() ? competitorDTO.getName() : competitorDTO.getSailID(); - return new CompetitorInfoOverlay(map, zIndex, competitorSelection.getColor(competitorDTO, raceIdentifier), infoText, coordinateSystem); + String infoText = competitorDTO.getSailID() == null || competitorDTO.getSailID().isEmpty() + ? competitorDTO.getName() : competitorDTO.getSailID(); + return new CompetitorInfoOverlay(map, zIndex, competitorSelection.getColor(competitorDTO, raceIdentifier), + infoText, coordinateSystem); } - + private BoatOverlay createBoatOverlay(int zIndex, final CompetitorDTO competitorDTO, boolean highlighted) { - final BoatOverlay boatCanvas = new BoatOverlay(map, zIndex, competitorDTO, competitorSelection.getColor(competitorDTO, raceIdentifier), coordinateSystem); + final BoatOverlay boatCanvas = new BoatOverlay(map, zIndex, competitorDTO, + competitorSelection.getColor(competitorDTO, raceIdentifier), coordinateSystem); boatCanvas.setSelected(highlighted); boatCanvas.addClickHandler(new ClickMapHandler() { @Override @@ -1920,8 +2024,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return boatCanvas; } - protected WindSensorOverlay createWindSensorOverlay(int zIndex, final WindSource windSource, final WindTrackInfoDTO windTrackInfoDTO) { - final WindSensorOverlay windSensorOverlay = new WindSensorOverlay(map, zIndex, raceMapImageManager, stringMessages, coordinateSystem); + protected WindSensorOverlay createWindSensorOverlay(int zIndex, final WindSource windSource, + final WindTrackInfoDTO windTrackInfoDTO) { + final WindSensorOverlay windSensorOverlay = new WindSensorOverlay(map, zIndex, raceMapImageManager, + stringMessages, coordinateSystem); windSensorOverlay.setWindInfo(windTrackInfoDTO, windSource); windSensorOverlay.addClickHandler(new ClickMapHandler() { @Override @@ -1933,7 +2039,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private void showMarkInfoWindow(MarkDTO markDTO, LatLng position) { - if(lastInfoWindow != null) { + if (lastInfoWindow != null) { lastInfoWindow.close(); } InfoWindowOptions options = InfoWindowOptions.newInstance(); @@ -1945,10 +2051,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private void showCompetitorInfoWindow(final CompetitorDTO competitorDTO, LatLng where) { - if(lastInfoWindow != null) { + if (lastInfoWindow != null) { lastInfoWindow.close(); } - GPSFixDTO latestFixForCompetitor = getBoatFix(competitorDTO, timer.getTime()); + GPSFixDTO latestFixForCompetitor = getBoatFix(competitorDTO, timer.getTime()); // TODO find close fix where the mouse was; see BUG 470 InfoWindowOptions options = InfoWindowOptions.newInstance(); InfoWindow infoWindow = InfoWindow.newInstance(options); @@ -1963,13 +2069,13 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe String result = numberFormat.format(lat) + " lat, " + numberFormat.format(lng) + " lng"; return result; } - + private void showWindSensorInfoWindow(final WindSensorOverlay windSensorOverlay) { - WindSource windSource = windSensorOverlay.getWindSource(); - WindTrackInfoDTO windTrackInfoDTO = windSensorOverlay.getWindTrackInfoDTO(); + WindSource windSource = windSensorOverlay.getWindSource(); + WindTrackInfoDTO windTrackInfoDTO = windSensorOverlay.getWindTrackInfoDTO(); WindDTO windDTO = windTrackInfoDTO.windFixes.get(0); - if(windDTO != null && windDTO.position != null) { - if(lastInfoWindow != null) { + if (windDTO != null && windDTO.position != null) { + if (lastInfoWindow != null) { lastInfoWindow.close(); } LatLng where = coordinateSystem.toLatLng(windDTO.position); @@ -1983,7 +2089,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } private Widget createInfoWindowLabelAndValue(String labelName, String value) { - FlowPanel flowPanel = new FlowPanel(); + FlowPanel flowPanel = new FlowPanel(); Label label = new Label(labelName + ":"); label.setWordWrap(false); label.getElement().getStyle().setFloat(Style.Float.LEFT); @@ -1999,11 +2105,33 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return flowPanel; } - + private Widget getInfoWindowContent(MarkDTO markDTO) { VerticalPanel vPanel = new VerticalPanel(); vPanel.add(createInfoWindowLabelAndValue(stringMessages.mark(), markDTO.getName())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), formatPosition(markDTO.position.getLatDeg(), markDTO.position.getLngDeg()))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), + formatPosition(markDTO.position.getLatDeg(), markDTO.position.getLngDeg()))); + return vPanel; + } + + private Widget getInfoWindowContent(ManeuverDTO maneuver) { + SpeedWithBearingDTO before = maneuver.speedWithBearingBefore; + SpeedWithBearingDTO after = maneuver.speedWithBearingAfter; + VerticalPanel vPanel = new VerticalPanel(); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.maneuverType(), + ManeuverTypeFormatter.format(maneuver.type, stringMessages))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.time(), + DateTimeFormat.getFormat(PredefinedFormat.TIME_FULL).format(maneuver.timepoint))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.directionChange(), + ((int) maneuver.directionChangeInDegrees) + " " + stringMessages.degreesShort() + " (" + + ((int) before.bearingInDegrees) + " " + stringMessages.degreesShort() + " -> " + + ((int) after.bearingInDegrees) + " " + stringMessages.degreesShort() + ")")); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.speedChange(), + NumberFormat.getDecimalFormat().format(after.speedInKnots - before.speedInKnots) + " " + + stringMessages.knotsUnit() + " (" + + NumberFormat.getDecimalFormat().format(before.speedInKnots) + " " + stringMessages.knotsUnit() + + " -> " + NumberFormat.getDecimalFormat().format(after.speedInKnots) + " " + + stringMessages.knotsUnit() + ")")); return vPanel; } @@ -2011,10 +2139,14 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe WindDTO windDTO = windTrackInfoDTO.windFixes.get(0); NumberFormat numberFormat = NumberFormat.getFormat("0.0"); VerticalPanel vPanel = new VerticalPanel(); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSource(), WindSourceTypeFormatter.format(windSource, stringMessages))); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.wind(), Math.round(windDTO.dampenedTrueWindFromDeg) + " " + stringMessages.degreesShort())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSpeed(), numberFormat.format(windDTO.dampenedTrueWindSpeedInKnots))); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), formatPosition(windDTO.position.getLatDeg(), windDTO.position.getLngDeg()))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSource(), + WindSourceTypeFormatter.format(windSource, stringMessages))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.wind(), + Math.round(windDTO.dampenedTrueWindFromDeg) + " " + stringMessages.degreesShort())); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSpeed(), + numberFormat.format(windDTO.dampenedTrueWindSpeedInKnots))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), + formatPosition(windDTO.position.getLatDeg(), windDTO.position.getLngDeg()))); return vPanel; } @@ -2039,8 +2171,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe speedWithBearing = new SpeedWithBearingDTO(0, 0); } vPanel.add(createInfoWindowLabelAndValue(stringMessages.speed(), - NumberFormatterFactory.getDecimalFormat(1).format(speedWithBearing.speedInKnots) + " "+stringMessages.knotsUnit())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.bearing(), (int) speedWithBearing.bearingInDegrees + " "+stringMessages.degreesShort())); + NumberFormatterFactory.getDecimalFormat(1).format(speedWithBearing.speedInKnots) + " " + + stringMessages.knotsUnit())); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.bearing(), + (int) speedWithBearing.bearingInDegrees + " " + stringMessages.degreesShort())); if (lastFix.degreesBoatToTheWind != null) { vPanel.add(createInfoWindowLabelAndValue(stringMessages.degreesBoatToTheWind(), (int) Math.abs(lastFix.degreesBoatToTheWind) + " " + stringMessages.degreesShort())); @@ -2049,14 +2183,16 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe RegattaAndRaceIdentifier race = raceIdentifier; if (race != null) { Map from = new HashMap(); - from.put(competitorDTO, fixesAndTails.getFixes(competitorDTO).get(fixesAndTails.getFirstShownFix(competitorDTO)).timepoint); + from.put(competitorDTO, fixesAndTails.getFixes(competitorDTO) + .get(fixesAndTails.getFirstShownFix(competitorDTO)).timepoint); Map to = new HashMap(); to.put(competitorDTO, getBoatFix(competitorDTO, timer.getTime()).timepoint); sailingService.getDouglasPoints(race, from, to, 3, new AsyncCallback>>() { @Override public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining douglas positions: " + caught.getMessage(), true /*silentMode */); + errorReporter.reportError("Error obtaining douglas positions: " + caught.getMessage(), + true /* silentMode */); } @Override @@ -2072,24 +2208,24 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } }); - sailingService.getManeuvers(race, from, to, - new AsyncCallback>>() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining maneuvers: " + caught.getMessage(), true /*silentMode */); - } + sailingService.getManeuvers(race, from, to, new AsyncCallback>>() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError("Error obtaining maneuvers: " + caught.getMessage(), + true /* silentMode */); + } - @Override - public void onSuccess(Map> result) { - lastManeuverResult = result; - if (maneuverMarkers != null) { - removeAllManeuverMarkers(); - } - if (!(timer.getPlayState() == PlayStates.Playing)) { - showManeuvers(result); - } - } - }); + @Override + public void onSuccess(Map> result) { + lastManeuverResult = result; + if (maneuverMarkers != null) { + removeAllManeuverMarkers(); + } + if (!(timer.getPlayState() == PlayStates.Playing)) { + showManeuvers(result); + } + } + }); } } @@ -2099,31 +2235,34 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe /** * @return the {@link CompetitorSelectionProvider#getSelectedCompetitors()} if * {@link RaceMapSettings#isShowOnlySelectedCompetitors() only selected competitors are to be shown}, the - * {@link CompetitorSelectionProvider#getFilteredCompetitors() filtered competitors} otherwise. In both cases, - * if we have {@link RaceCompetitorSet information about the competitors participating} in this map's race, - * the result set is reduced to those, no matter if other regatta participants would otherwise have been in - * the result set + * {@link CompetitorSelectionProvider#getFilteredCompetitors() filtered competitors} otherwise. In both + * cases, if we have {@link RaceCompetitorSet information about the competitors participating} in this map's + * race, the result set is reduced to those, no matter if other regatta participants would otherwise have + * been in the result set */ private Iterable getCompetitorsToShow() { final Set result = new HashSet<>(); Iterable selection = competitorSelection.getSelectedCompetitors(); - final Set raceCompetitorIdsAsString = raceCompetitorSet.getIdsOfCompetitorsParticipatingInRaceAsStrings(); + final Set raceCompetitorIdsAsString = raceCompetitorSet + .getIdsOfCompetitorsParticipatingInRaceAsStrings(); if (!settings.isShowOnlySelectedCompetitors() || Util.isEmpty(selection)) { for (final CompetitorDTO filteredCompetitor : competitorSelection.getFilteredCompetitors()) { - if (raceCompetitorIdsAsString == null || raceCompetitorIdsAsString.contains(filteredCompetitor.getIdAsString())) { + if (raceCompetitorIdsAsString == null + || raceCompetitorIdsAsString.contains(filteredCompetitor.getIdAsString())) { result.add(filteredCompetitor); } } } else { for (final CompetitorDTO selectedCompetitor : selection) { - if (raceCompetitorIdsAsString == null || raceCompetitorIdsAsString.contains(selectedCompetitor.getIdAsString())) { + if (raceCompetitorIdsAsString == null + || raceCompetitorIdsAsString.contains(selectedCompetitor.getIdAsString())) { result.add(selectedCompetitor); } } } return result; } - + protected void removeAllMarkDouglasPeuckerpoints() { if (douglasMarkers != null) { for (Marker marker : douglasMarkers) { @@ -2153,7 +2292,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe for (GPSFixDTO fix : gpsFix) { LatLng latLng = coordinateSystem.toLatLng(fix.position); MarkerOptions options = MarkerOptions.newInstance(); - options.setTitle(fix.timepoint+": "+fix.position+", "+fix.speedWithBearing.toString()); + options.setTitle(fix.timepoint + ": " + fix.position + ", " + fix.speedWithBearing.toString()); Marker marker = Marker.newInstance(options); marker.setPosition(latLng); douglasMarkers.add(marker); @@ -2171,15 +2310,32 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe while (iter.hasNext()) { CompetitorDTO competitorDTO = iter.next(); List maneuversForCompetitor = maneuvers.get(competitorDTO); - for (ManeuverDTO maneuver : maneuversForCompetitor) { + for (final ManeuverDTO maneuver : maneuversForCompetitor) { if (settings.isShowManeuverType(maneuver.type)) { LatLng latLng = coordinateSystem.toLatLng(maneuver.position); - Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack.get(new com.sap.sse.common.Util.Pair(maneuver.type, maneuver.newTack)); + Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack + .get(new com.sap.sse.common.Util.Pair(maneuver.type, + ManeuverColor.getManeuverColor(maneuver))); MarkerOptions options = MarkerOptions.newInstance(); - options.setTitle(maneuver.toString(stringMessages)); options.setIcon(maneuverMarker.getIcon_MarkerImage()); Marker marker = Marker.newInstance(options); marker.setPosition(latLng); + marker.setTitle(ManeuverTypeFormatter.format(maneuver.type, stringMessages)); + marker.addClickHandler(new ClickMapHandler() { + @Override + public void onEvent(ClickMapEvent event) { + if (lastInfoWindow != null) { + lastInfoWindow.close(); + } + LatLng where = coordinateSystem.toLatLng(maneuver.position); + InfoWindowOptions options = InfoWindowOptions.newInstance(); + InfoWindow infoWindow = InfoWindow.newInstance(options); + infoWindow.setContent(getInfoWindowContent(maneuver)); + infoWindow.setPosition(where); + lastInfoWindow = infoWindow; + infoWindow.open(map); + } + }); maneuverMarkers.add(marker); marker.setMap(map); } @@ -2200,37 +2356,43 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe GPSFixDTO result = null; List competitorFixes = fixesAndTails.getFixes(competitorDTO); if (competitorFixes != null && !competitorFixes.isEmpty()) { - int i = Collections.binarySearch(competitorFixes, new GPSFixDTO(date, null, null, (WindDTO) null, null, null, false), - new Comparator() { - @Override - public int compare(GPSFixDTO o1, GPSFixDTO o2) { - return o1.timepoint.compareTo(o2.timepoint); - } - }); - if (i<0) { - i = -i-1; // no perfect match; i is now the insertion point + int i = Collections.binarySearch(competitorFixes, + new GPSFixDTO(date, null, null, (WindDTO) null, null, null, false), new Comparator() { + @Override + public int compare(GPSFixDTO o1, GPSFixDTO o2) { + return o1.timepoint.compareTo(o2.timepoint); + } + }); + if (i < 0) { + i = -i - 1; // no perfect match; i is now the insertion point // if the insertion point is at the end, use last fix if (i >= competitorFixes.size()) { - result = competitorFixes.get(competitorFixes.size()-1); + result = competitorFixes.get(competitorFixes.size() - 1); } else if (i == 0) { // if the insertion point is at the beginning, use first fix result = competitorFixes.get(0); } else { - // competitorFixes must have at least two elements, and i points neither to the end nor the beginning; + // competitorFixes must have at least two elements, and i points neither to the end nor the + // beginning; // get the fix from i and i+1 whose timepoint is closer to date - final GPSFixDTO fixBefore = competitorFixes.get(i-1); + final GPSFixDTO fixBefore = competitorFixes.get(i - 1); final GPSFixDTO fixAfter = competitorFixes.get(i); final GPSFixDTO closer; - if (date.getTime() - fixBefore.timepoint.getTime() < fixAfter.timepoint.getTime() - date.getTime()) { + if (date.getTime() - fixBefore.timepoint.getTime() < fixAfter.timepoint.getTime() + - date.getTime()) { closer = fixBefore; } else { closer = fixAfter; } // now compute a weighted average depending on the time difference to "date" (see also bug 1924) - double factorForAfter = (double) (date.getTime()-fixBefore.timepoint.getTime()) / (double) (fixAfter.timepoint.getTime() - fixBefore.timepoint.getTime()); - double factorForBefore = 1-factorForAfter; - DegreePosition betweenPosition = new DegreePosition(factorForBefore*fixBefore.position.getLatDeg() + factorForAfter*fixAfter.position.getLatDeg(), - factorForBefore*fixBefore.position.getLngDeg() + factorForAfter*fixAfter.position.getLngDeg()); + double factorForAfter = (double) (date.getTime() - fixBefore.timepoint.getTime()) + / (double) (fixAfter.timepoint.getTime() - fixBefore.timepoint.getTime()); + double factorForBefore = 1 - factorForAfter; + DegreePosition betweenPosition = new DegreePosition( + factorForBefore * fixBefore.position.getLatDeg() + + factorForAfter * fixAfter.position.getLatDeg(), + factorForBefore * fixBefore.position.getLngDeg() + + factorForAfter * fixAfter.position.getLngDeg()); final double betweenBearing; if (fixBefore.speedWithBearing == null) { if (fixAfter.speedWithBearing == null) { @@ -2241,13 +2403,18 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } else if (fixAfter.speedWithBearing == null) { betweenBearing = fixBefore.speedWithBearing.bearingInDegrees; } else { - betweenBearing = new ScalableBearing(new DegreeBearingImpl(fixBefore.speedWithBearing.bearingInDegrees)). - multiply(factorForBefore).add(new ScalableBearing(new DegreeBearingImpl(fixAfter.speedWithBearing.bearingInDegrees)). - multiply(factorForAfter)).divide(1).getDegrees(); + betweenBearing = new ScalableBearing( + new DegreeBearingImpl(fixBefore.speedWithBearing.bearingInDegrees)) + .multiply(factorForBefore) + .add(new ScalableBearing( + new DegreeBearingImpl(fixAfter.speedWithBearing.bearingInDegrees)) + .multiply(factorForAfter)) + .divide(1).getDegrees(); } - SpeedWithBearingDTO betweenSpeed = new SpeedWithBearingDTO( - factorForBefore*(fixBefore.speedWithBearing==null?0:fixBefore.speedWithBearing.speedInKnots) + - factorForAfter*(fixAfter.speedWithBearing==null?0:fixAfter.speedWithBearing.speedInKnots), + SpeedWithBearingDTO betweenSpeed = new SpeedWithBearingDTO(factorForBefore + * (fixBefore.speedWithBearing == null ? 0 : fixBefore.speedWithBearing.speedInKnots) + + factorForAfter + * (fixAfter.speedWithBearing == null ? 0 : fixAfter.speedWithBearing.speedInKnots), betweenBearing); result = new GPSFixDTO(date, betweenPosition, betweenSpeed, closer.degreesBoatToTheWind, closer.tack, closer.legType, fixBefore.extrapolated || fixAfter.extrapolated); @@ -2303,7 +2470,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe for (CompetitorDTO oneOfAllCompetitors : competitorSelection.getAllCompetitors()) { Polyline tail = fixesAndTails.getTail(oneOfAllCompetitors); if (tail != null) { - PolylineOptions newOptions = createTailStyle(oneOfAllCompetitors, displayHighlighted(oneOfAllCompetitors)); + PolylineOptions newOptions = createTailStyle(oneOfAllCompetitors, + displayHighlighted(oneOfAllCompetitors)); tail.setOptions(newOptions); } } @@ -2313,7 +2481,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe zoomMapToNewBounds(zoomSettings.getNewBounds(this)); } } - + @Override public void removedFromSelection(CompetitorDTO competitor) { if (isShowAnyHelperLines()) { @@ -2345,7 +2513,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe showCompetitorInfoOnMap(timer.getTime(), -1, competitorSelection.getSelectedFilteredCompetitors()); } } - //Trigger auto-zoom if needed + // Trigger auto-zoom if needed RaceMapZoomSettings zoomSettings = settings.getZoomSettings(); if (!zoomSettings.containsZoomType(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { zoomMapToNewBounds(zoomSettings.getNewBounds(this)); @@ -2393,7 +2561,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } if (newSettings.isShowDouglasPeuckerPoints() != settings.isShowDouglasPeuckerPoints()) { - if (!(timer.getPlayState() == PlayStates.Playing) && lastDouglasPeuckerResult != null && newSettings.isShowDouglasPeuckerPoints()) { + if (!(timer.getPlayState() == PlayStates.Playing) && lastDouglasPeuckerResult != null + && newSettings.isShowDouglasPeuckerPoints()) { settings.setShowDouglasPeuckerPoints(true); removeAllMarkDouglasPeuckerpoints(); showMarkDouglasPeuckerPoints(lastDouglasPeuckerResult); @@ -2419,7 +2588,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe requiredRedraw = true; } if (!newSettings.getZoomSettings().equals(settings.getZoomSettings())) { - settings.setZoomSettings(newSettings.getZoomSettings()); + settings.setZoomSettings(newSettings.getZoomSettings()); if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { removeTransitions(); zoomMapToNewBounds(settings.getZoomSettings().getNewBounds(this)); @@ -2441,7 +2610,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe settings.setShowSimulationOverlay(newSettings.isShowSimulationOverlay()); simulationOverlay.setVisible(newSettings.isShowSimulationOverlay()); if (newSettings.isShowSimulationOverlay()) { - simulationOverlay.updateLeg(Math.max(lastLegNumber,1), true, -1 /* ensure ui-update */); + simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), true, -1 /* ensure ui-update */); } } if (newSettings.isWindUp() != settings.isWindUp()) { @@ -2459,7 +2628,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe redraw(); } } - + public static class BoatsBoundsCalculator extends LatLngBoundsCalculatorForSelected { @Override @@ -2470,7 +2639,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe if (selectedCompetitors == null || !selectedCompetitors.iterator().hasNext()) { competitors = forMap.getCompetitorsToShow(); } else { - competitors = isZoomOnlyToSelectedCompetitors(forMap) ? selectedCompetitors : forMap.getCompetitorsToShow(); + competitors = isZoomOnlyToSelectedCompetitors(forMap) ? selectedCompetitors + : forMap.getCompetitorsToShow(); } for (CompetitorDTO competitor : competitors) { try { @@ -2485,25 +2655,29 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } catch (IndexOutOfBoundsException e) { // TODO can't this be predicted and the exception be avoided in the first place? - // Catch this in case the competitor has no GPS fixes at the current time (e.g. in race 'Finale 2' of STG) + // Catch this in case the competitor has no GPS fixes at the current time (e.g. in race 'Finale 2' + // of STG) } } return newBounds; } - + } - + public static class TailsBoundsCalculator extends LatLngBoundsCalculatorForSelected { @Override public LatLngBounds calculateNewBounds(RaceMap racemap) { LatLngBounds newBounds = null; - Iterable competitors = isZoomOnlyToSelectedCompetitors(racemap) ? racemap.competitorSelection.getSelectedCompetitors() : racemap.getCompetitorsToShow(); + Iterable competitors = isZoomOnlyToSelectedCompetitors(racemap) + ? racemap.competitorSelection.getSelectedCompetitors() : racemap.getCompetitorsToShow(); for (CompetitorDTO competitor : competitors) { Polyline tail = racemap.fixesAndTails.getTail(competitor); LatLngBounds bounds = null; // TODO: Find a replacement for missing Polyline function getBounds() from v2 - // see also http://stackoverflow.com/questions/3284808/getting-the-bounds-of-a-polyine-in-google-maps-api-v3; - // optionally, consider providing a bounds cache with two sorted sets that organize the LatLng objects for O(1) bounds calculation and logarithmic add, ideally O(1) remove + // see also + // http://stackoverflow.com/questions/3284808/getting-the-bounds-of-a-polyine-in-google-maps-api-v3; + // optionally, consider providing a bounds cache with two sorted sets that organize the LatLng objects + // for O(1) bounds calculation and logarithmic add, ideally O(1) remove if (tail != null && tail.getPath().getLength() >= 1) { bounds = BoundsUtil.getAsBounds(tail.getPath().get(0)); for (int i = 1; i < tail.getPath().getLength(); i++) { @@ -2521,7 +2695,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return newBounds; } } - + public static class CourseMarksBoundsCalculator implements LatLngBoundsCalculator { @Override public LatLngBounds calculateNewBounds(RaceMap forMap) { @@ -2577,17 +2751,17 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe map.triggerResize(); zoomMapToNewBounds(settings.getZoomSettings().getNewBounds(RaceMap.this)); } - // Adjust RaceMap headers to avoid overlapping based on the RaceMap width + // Adjust RaceMap headers to avoid overlapping based on the RaceMap width boolean isCompactHeader = this.getOffsetWidth() <= 600; getLeftHeaderPanel().setStyleName(COMPACT_HEADER_STYLE, isCompactHeader); getRightHeaderPanel().setStyleName(COMPACT_HEADER_STYLE, isCompactHeader); - + // Adjust combined wind and true north indicator panel indent, based on the RaceMap height if (combinedWindPanel.getParent() != null && trueNorthIndicatorPanel.getParent() != null) { this.adjustLeftControlsIndent(); } } - + private void adjustLeftControlsIndent() { combinedWindPanel.getParent().setStyleName("CombinedWindPanelParentDiv"); trueNorthIndicatorPanel.getParent().setStyleName("TrueNorthIndicatorPanelParentDiv"); @@ -2602,16 +2776,17 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe public void competitorsListChanged(Iterable competitors) { timeChanged(timer.getTime(), null); } - + @Override public void filteredCompetitorsListChanged(Iterable filteredCompetitors) { timeChanged(timer.getTime(), null); } - + @Override public void filterChanged(FilterSet> oldFilterSet, FilterSet> newFilterSet) { - // nothing to do; if the list of filtered competitors has changed, a separate call to filteredCompetitorsListChanged will occur + // nothing to do; if the list of filtered competitors has changed, a separate call to + // filteredCompetitorsListChanged will occur } @Override @@ -2634,7 +2809,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe options.setZindex(RaceMapOverlaysZIndexes.BOATTAILS_ZINDEX); return options; } - + @Override public Polyline createTail(final CompetitorDTO competitor, List points) { PolylineOptions options = createTailStyle(competitor, displayHighlighted(competitor)); @@ -2677,7 +2852,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } return result; } - + private Image createSAPLogo() { ImageResource sapLogoResource = resources.sapLogoOverlay(); Image sapLogo = new Image(sapLogoResource); @@ -2705,45 +2880,47 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private MapOptions getMapOptions(final boolean showMapControls, boolean windUp) { MapOptions mapOptions = MapOptions.newInstance(); - mapOptions.setScrollWheel(true); - mapOptions.setMapTypeControl(showMapControls && !windUp); - mapOptions.setPanControl(showMapControls); - mapOptions.setZoomControl(showMapControls); - mapOptions.setScaleControl(true); - if (windUp) { - mapOptions.setMinZoom(8); - } else { - mapOptions.setMinZoom(0); - } - MapTypeStyle[] mapTypeStyles = new MapTypeStyle[4]; - - // hide all transit lines including ferry lines - mapTypeStyles[0] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.TRANSIT); - // hide points of interest - mapTypeStyles[1] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.POI); - // simplify road display - mapTypeStyles[2] = GoogleMapStyleHelper.createSimplifiedStyle(MapTypeStyleFeatureType.ROAD); - // set water color - // To play with the styles, check out http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html. - // To convert an RGB color into the strange hue/saturation/lightness model used by the Google Map use - // http://software.stadtwerk.org/google_maps_colorizr/#water/all/123456/. - mapTypeStyles[3] = GoogleMapStyleHelper.createColorStyle(MapTypeStyleFeatureType.WATER, new RGBColor(0, 136, 255), 0, -70); - - MapTypeControlOptions mapTypeControlOptions = MapTypeControlOptions.newInstance(); - mapTypeControlOptions.setPosition(ControlPosition.BOTTOM_RIGHT); - mapOptions.setMapTypeControlOptions(mapTypeControlOptions); + mapOptions.setScrollWheel(true); + mapOptions.setMapTypeControl(showMapControls && !windUp); + mapOptions.setPanControl(showMapControls); + mapOptions.setZoomControl(showMapControls); + mapOptions.setScaleControl(true); + if (windUp) { + mapOptions.setMinZoom(8); + } else { + mapOptions.setMinZoom(0); + } + MapTypeStyle[] mapTypeStyles = new MapTypeStyle[4]; - mapOptions.setMapTypeStyles(mapTypeStyles); - // no need to try to position the scale control; it always ends up at the right bottom corner - mapOptions.setStreetViewControl(false); - if (showMapControls) { - ZoomControlOptions zoomControlOptions = ZoomControlOptions.newInstance(); - zoomControlOptions.setPosition(ControlPosition.RIGHT_TOP); - mapOptions.setZoomControlOptions(zoomControlOptions); - PanControlOptions panControlOptions = PanControlOptions.newInstance(); - panControlOptions.setPosition(ControlPosition.RIGHT_TOP); - mapOptions.setPanControlOptions(panControlOptions); - } + // hide all transit lines including ferry lines + mapTypeStyles[0] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.TRANSIT); + // hide points of interest + mapTypeStyles[1] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.POI); + // simplify road display + mapTypeStyles[2] = GoogleMapStyleHelper.createSimplifiedStyle(MapTypeStyleFeatureType.ROAD); + // set water color + // To play with the styles, check out + // http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html. + // To convert an RGB color into the strange hue/saturation/lightness model used by the Google Map use + // http://software.stadtwerk.org/google_maps_colorizr/#water/all/123456/. + mapTypeStyles[3] = GoogleMapStyleHelper.createColorStyle(MapTypeStyleFeatureType.WATER, + new RGBColor(0, 136, 255), 0, -70); + + MapTypeControlOptions mapTypeControlOptions = MapTypeControlOptions.newInstance(); + mapTypeControlOptions.setPosition(ControlPosition.BOTTOM_RIGHT); + mapOptions.setMapTypeControlOptions(mapTypeControlOptions); + + mapOptions.setMapTypeStyles(mapTypeStyles); + // no need to try to position the scale control; it always ends up at the right bottom corner + mapOptions.setStreetViewControl(false); + if (showMapControls) { + ZoomControlOptions zoomControlOptions = ZoomControlOptions.newInstance(); + zoomControlOptions.setPosition(ControlPosition.RIGHT_TOP); + mapOptions.setZoomControlOptions(zoomControlOptions); + PanControlOptions panControlOptions = PanControlOptions.newInstance(); + panControlOptions.setPosition(ControlPosition.RIGHT_TOP); + mapOptions.setPanControlOptions(panControlOptions); + } return mapOptions; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java index 84cb09b3ca6..64c8601846f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java @@ -1,15 +1,19 @@ package com.sap.sailing.gwt.ui.client.shared.racemap; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import com.google.gwt.core.client.GWT; import com.google.gwt.maps.client.MapWidget; import com.google.gwt.maps.client.base.Point; +import com.google.gwt.maps.client.base.Size; import com.google.gwt.maps.client.overlays.Marker; import com.google.gwt.maps.client.overlays.MarkerImage; import com.google.gwt.maps.client.overlays.MarkerOptions; +import com.google.gwt.resources.client.ImageResource; import com.sap.sailing.domain.common.ManeuverType; import com.sap.sailing.domain.common.Tack; import com.sap.sse.common.Util; @@ -17,7 +21,7 @@ import com.sap.sse.common.Util; public class RaceMapImageManager { /** - * An arrow showing the combined wind depending on the wind direction + * An arrow showing the combined wind depending on the wind direction */ protected ImageTransformer combinedWindIconTransformer; @@ -27,62 +31,58 @@ public class RaceMapImageManager { protected ImageTransformer trueNorthIndicatorIconTransformer; /** - * An arrow showing the wind provided by a wind sensor on a boat + * An arrow showing the wind provided by a wind sensor on a boat */ protected ImageTransformer windSensorIconTransformer; - protected Map, Marker> maneuverIconsForTypeAndTargetTack; + protected Map, Marker> maneuverIconsForTypeAndTargetTack; private static RaceMapResources resources = GWT.create(RaceMapResources.class); public RaceMapImageManager() { - maneuverIconsForTypeAndTargetTack = new HashMap, Marker>(); + maneuverIconsForTypeAndTargetTack = new HashMap, Marker>(); trueNorthIndicatorIconTransformer = new ImageTransformer(resources.trueNorthIndicatorIcon()); combinedWindIconTransformer = new ImageTransformer(resources.combinedWindIcon()); windSensorIconTransformer = new ImageTransformer(resources.expeditionWindIcon()); } /** - * Loads the map overlay icons The method can only be called after the map is loaded. The {@link #maneuverIconsForTypeAndTargetTack} map - * is filled for all combinations of {@link ManeuverType maneuver types} and {@link Tack tacks} including the value null representing - * the unknown tack. + * Loads the map overlay icons The method can only be called after the map is loaded. The + * {@link #maneuverIconsForTypeAndTargetTack} map is filled for all combinations of {@link ManeuverType maneuver + * types} and {@link Tack tacks} including the value null representing the unknown tack. */ public void loadMapIcons(MapWidget map) { if (map != null) { - final Map maneuverLetter = new HashMap<>(); - maneuverLetter.put(ManeuverType.TACK, 'T'); - maneuverLetter.put(ManeuverType.JIBE, 'J'); - maneuverLetter.put(ManeuverType.HEAD_UP, 'H'); - maneuverLetter.put(ManeuverType.BEAR_AWAY, 'B'); - maneuverLetter.put(ManeuverType.MARK_PASSING, 'M'); - maneuverLetter.put(ManeuverType.PENALTY_CIRCLE, 'P'); - maneuverLetter.put(ManeuverType.UNKNOWN, '?'); - final Map tackColor = new HashMap<>(); - tackColor.put(Tack.STARBOARD, "71bf44"); - tackColor.put(Tack.PORT, "d95252"); - tackColor.put(null, "FFFFFF"); - for (Entry m : maneuverLetter.entrySet()) { - for (Entry t : tackColor.entrySet()) { - final Marker icon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+m.getValue()+"|"+t.getValue()+"|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Util.Pair(m.getKey(), t.getKey()), icon); - } + final List maneuvers = new ArrayList(); + for (ManeuverType type : ManeuverType.values()) { + maneuvers.add(type); + } + Marker icon; + for (ManeuverType maneuver : maneuvers) { + icon = createMarker(resources.maneuverMarkerRed(), 13, 13); + maneuverIconsForTypeAndTargetTack + .put(new Util.Pair(maneuver, ManeuverColor.RED), icon); + icon = createMarker(resources.maneuverMarkerGreen(), 13, 13); + maneuverIconsForTypeAndTargetTack + .put(new Util.Pair(maneuver, ManeuverColor.GREEN), icon); } } } - - private Marker createMarker(String iconUrl, int anchorX, int anchorY) { + + private Marker createMarker(ImageResource ressource, int anchorX, int anchorY) { MarkerOptions options = MarkerOptions.newInstance(); - MarkerImage markerImage = MarkerImage.newInstance(iconUrl); + MarkerImage markerImage = MarkerImage.newInstance(ressource.getSafeUri().asString()); markerImage.setAnchor(Point.newInstance(anchorX, anchorY)); + markerImage.setScaledSize(Size.newInstance(26, 26)); options.setIcon(markerImage); Marker marker = Marker.newInstance(options); return marker; } - + public ImageTransformer getTrueNorthIndicatorIconTransformer() { return trueNorthIndicatorIconTransformer; } - + public ImageTransformer getCombinedWindIconTransformer() { return combinedWindIconTransformer; } @@ -90,4 +90,5 @@ public class RaceMapImageManager { public ImageTransformer getWindSensorIconTransformer() { return windSensorIconTransformer; } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java index 286b694b771..3ad2edab8dd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java @@ -15,13 +15,19 @@ public interface RaceMapResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/wind_combined.png") ImageResource combinedWindIcon(); - + @Source("com/sap/sailing/gwt/ui/client/images/true_north_indicator.png") ImageResource trueNorthIndicatorIcon(); @Source("com/sap/sailing/gwt/ui/client/images/wind_expedition.png") ImageResource expeditionWindIcon(); - + + @Source("com/sap/sailing/gwt/ui/client/images/maneuver_red.png") + ImageResource maneuverMarkerRed(); + + @Source("com/sap/sailing/gwt/ui/client/images/maneuver_green.png") + ImageResource maneuverMarkerGreen(); + @Source("CombinedWindPanel.css") CombinedWindPanelStyle combinedWindPanelStyle(); } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java index e47cdb01de3..6024c487ef0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java @@ -10,6 +10,8 @@ import com.sap.sse.common.settings.AbstractSettings; public class RaceMapSettings extends AbstractSettings { + private static final Set DEFAULT_SHOWN_MANEUVER = getDefaultManeuvers(); + private boolean showDouglasPeuckerPoints = false; private final Set maneuverTypesToShow; @@ -19,9 +21,9 @@ public class RaceMapSettings extends AbstractSettings { private RaceMapZoomSettings zoomSettings; private RaceMapHelpLinesSettings helpLinesSettings; - + private boolean transparentHoverlines = false; // as discussed with Stefan on 2015-12-08 - + private int hoverlineStrokeWeight = 15; // as discussed with Stefan on 2015-12-08 private long tailLengthInMilliseconds = 100000l; @@ -29,36 +31,43 @@ public class RaceMapSettings extends AbstractSettings { private double buoyZoneRadiusInMeters = 0.0; private boolean showSelectedCompetitorsInfo = true; - + private boolean showWindStreamletColors = false; - + private boolean showWindStreamletOverlay = false; private boolean showSimulationOverlay = false; - + /** * If true, all map contents will be transformed to a water-only environment, rotating all directions / - * bearings / headings so that an assumed average wind direction for the race is coming from the top of the map - * ("wind-up display"). The implementation hinges on + * bearings / headings so that an assumed average wind direction for the race is coming from the top of the map ( + * "wind-up display"). The implementation hinges on * {@link Position#getLocalCoordinates(Position, com.sap.sailing.domain.common.Bearing)} which can transform - * positions to any other coordinate space that is translated and rotated compared to the original - * coordinate space. + * positions to any other coordinate space that is translated and rotated compared to the original coordinate space. */ private boolean windUp = false; public RaceMapSettings() { - // empty default settings; don't show maneuvers by default - maneuverTypesToShow = new HashSet(); + maneuverTypesToShow = DEFAULT_SHOWN_MANEUVER; this.zoomSettings = new RaceMapZoomSettings(); this.helpLinesSettings = new RaceMapHelpLinesSettings(); } + private static HashSet getDefaultManeuvers() { + HashSet types = new HashSet(); + types.add(ManeuverType.JIBE); + types.add(ManeuverType.TACK); + types.add(ManeuverType.PENALTY_CIRCLE); + return types; + } + /** * "Copy constructor" that produces a new settings object that equals the one passed as argument */ public RaceMapSettings(RaceMapSettings settings) { this.buoyZoneRadiusInMeters = settings.buoyZoneRadiusInMeters; - this.helpLinesSettings = new RaceMapHelpLinesSettings(settings.getHelpLinesSettings().getVisibleHelpLineTypes()); + this.helpLinesSettings = new RaceMapHelpLinesSettings( + settings.getHelpLinesSettings().getVisibleHelpLineTypes()); this.transparentHoverlines = settings.transparentHoverlines; this.hoverlineStrokeWeight = settings.hoverlineStrokeWeight; this.maneuverTypesToShow = settings.maneuverTypesToShow; @@ -70,7 +79,8 @@ public class RaceMapSettings extends AbstractSettings { this.showWindStreamletColors = settings.showWindStreamletColors; this.tailLengthInMilliseconds = settings.tailLengthInMilliseconds; this.windUp = settings.windUp; - this.zoomSettings = new RaceMapZoomSettings(settings.zoomSettings.getTypesToConsiderOnZoom(), settings.zoomSettings.isZoomToSelectedCompetitors()); + this.zoomSettings = new RaceMapZoomSettings(settings.zoomSettings.getTypesToConsiderOnZoom(), + settings.zoomSettings.isZoomToSelectedCompetitors()); } /** @@ -95,7 +105,7 @@ public class RaceMapSettings extends AbstractSettings { public boolean isShowDouglasPeuckerPoints() { return showDouglasPeuckerPoints; } - + public void setShowDouglasPeuckerPoints(boolean showDouglasPeuckerPoints) { this.showDouglasPeuckerPoints = showDouglasPeuckerPoints; } @@ -159,19 +169,19 @@ public class RaceMapSettings extends AbstractSettings { public void setHelpLinesSettings(RaceMapHelpLinesSettings helpLinesSettings) { this.helpLinesSettings = helpLinesSettings; } - + public boolean getTransparentHoverlines() { return this.transparentHoverlines; } - + public void setTransparentHoverlines(boolean transparentHoverlines) { this.transparentHoverlines = transparentHoverlines; } - + public int getHoverlineStrokeWeight() { return this.hoverlineStrokeWeight; } - + public void setHoverlineStrokeWeight(int hoverlineStrokeWeight) { this.hoverlineStrokeWeight = hoverlineStrokeWeight; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_green.png b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_green.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6e5a48219e7d4404260933e4241afa321d596c GIT binary patch literal 1821 zcmV+&2jcjNP)*xNM`$Yf_qr+^3&FBD4uy`rwPy6<_KiZKF4%0<0A=KqJ04PQWYli6y z_5|!dO6`q4cIfeRG_@zPI(i6YIMH!n7Uw>-|@p_Cj8^WPY%Q!9vduH z3%WBQcQwzYYb(58GYNPvwL9Kz)U` ziM)Klz?kbYWx-C5?V-*g>cr9GLkV~A|LITg*%Z?iY_r+E z+%XvZ_0i))NiXHR`*n6JQhOr4m3d}&qbyb=LAj!1%%+*DV7uLZB)&87!qKOPw)vy3 z^{;nYks6Ko3N!R5yUMR9lKM{_Vs40e3bx~5yg%^U2Y)h@3dTLnzs+Ss_nvSdKSPh! zR)s}XR#C~GX^?SK%usNq zeS6@QBgY1JL{h#@FXHst(VYngbJwc-8*9>4MNw|FFyp2fUGQMEFL3(Ev4Q^f?SU;X z=JMH*+#RBprpn`NiN6fs_SPeAjgbZK2>1BT9DZ`=U_2dc*`n@%1D(65P;R<>TdeMOj+CxR-LGYlsRhO;yJ0W#IyVLaS#q%ZP%L)Hd&# z`yWqdx-;RHm-|27kP{v0VEgj5>gO9};Vl5GTFv@6dKVn0y1Zu&e6N4BcW>0H^)P?b zg=n9@eR-;SfTP8?0IX>}^P}`EINH|XIlce8+xPV!jM>+}yfuPxwh#15GxR==7GDQY(`&XK1^a^?ot_2c1u)?~Q*c^VMw|-~VbPobows4qF!hzaH~6{RB(A zoaY(oa6BE11=`(Oj%v#4jT$CTPG?tdvJV58*JGyEUlFB7RXksqWez0<+oHbk`bUsj zSzBZ=abkL5Wxn<;0PpEFSC5-qv0fG~=CkyD$>C7M^D&3$TB$5IFmYmPp)kjM6Tl@s zXY2JdEyvQrKl0P`{mI=S%5#UuKw4pn944NfUR;@DA5j$Lyl#X4OTUeVf?I5rf4`8W z@9iE5Q!c;uCD&GYOguZil%HdMAdB*Z<^%6Q->tHO#m1U+y)Z`~NR39?oL=oVbd8FD zi4)UH%QN(2GAF;P*`Rgke%Pa`>UEYDZx?6i@t(0rz~O0q1db6gdGcDWFkLw=*5#L5 zK41e3Ij&SC^;)AMEEngQ{k>z+fZf%)7(6TCjg#5p^3}>STupkZWeabTVF&KAq)xGA zsb0Ft?CISb_1hd<-}8u^j5mLgE#A7a_8iYh&$l4vmKplUND-CGTt$>hH`tM$v8Zn= zB};;WcYZTly7lhbuNt)YTnl4viP6vGAo0q(Y?*gdK4=X0j75D``^L}UWl_Po=V!|| zFO^-U;t2rx^$M#H_{@n>`3kkIq;E=-+%Qscjb?_ zCYb{NZ2)y6LN?2c1p|P@v(jXFsXl12peHdveRyzj^|dA8@+&vrW(xc_05Aq-Y>HV6 z1^`iD<-eA1H|}wIY(265pndk8f^_Nk3m51d_Yi=J(E&d#LTw56*^#fOc&gL$Hvmzi z1AQ9BTmkzp0VIqLLJ$N&5ClOG1VIo4K@bE%5ClOG1VIqQC&s@4u0U)Z=N*t)00000 LNkvXXu0mjf@EnH4 literal 0 HcmV?d00001 diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_red.png b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/ui/client/images/maneuver_red.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2c7fb4c16d3fa44ac12d7c61c549f4e3c7c75e GIT binary patch literal 1778 zcmVN<6lEL+@MqiI?OwB2_iAaO?OJME+S-%DwuF$# zC;cGaM>NK$F&d(Y7!wRp)L1o96JlZviNqKQpe6=LsRvOo8o^R%rA_NnfdXymUb8#9 zbM1^Dun8C_-F9bYA@A?&cIW@}*~#>M-!4E91VIo4K@bE%5ClOG1VIo4K@c~k60HNw zSE1GcvZV*sFR|Iafh>!hBpuZ{&#k6oh0{5>p(YhGu^?hwGPKu zJ?-tc)j6G5YuWxTF@ zFSx40X4~^-b8};>$D_N}57-O_ba=gvfpEBcCY?Sh0pn_ioJ&3zTvka@d$%?>mIoRLXcm`C71lna#HM)yBrQ?m(bmK5uXujc6_|cK3(F zT{9f_D}YIbGtNss7VIgrTKBwEU%zTYX{kP&Hx?Haq0#O3^oPT1BOG@az?4E6=Plm~ zc9vVMyEfIgo-T27~5YTyTlSqFZLO1qLFK z&bS~P1Q5@~b+eTZ1)ECD=Fc9is=DXt<;yK|E*G-2)MnEywORv%vDoT3&+iA2%;Dwd zMeBkMev4)M#)^uK&)3x03Us-w_p%C#(s@j#lHpjaBQ6O00i<$1WDZ&utoNGDAKhJ6 z_VA{wW#5)>fa*u%Jy^ z&ggVHw0k_psdT#PVmfVSMDYiuW~uc6^w^7vUU{Lm)~|KBvr?jna}2|BqByGL9JTJ? z6qm__M&t3WF2CPl)#&jsD=muHa{T!8Z`0H7)1vr^lCxBML}X-nEW&XUgR$71oqj*1 z)iapOWbnp`6ElaWrap`d!h1^3Q}vIWD9fj!EE^q;#oD_A0m`KEDuS0JynXUy^ykUR zPs1Fy4S=llOx4#(f-Db&d7d4m>9%ga-)2;)WKojPGdLLQJAZ!X49C3&1y>GN(qt#c zOVZI8&r7EhiI%QFz^e3SLy~2DJUmSAo0$0W63e~}AfxEOD`<8Wklk#`cjB=G(Jpzn)5`Uw{g`w<~FSnwHLFj!bi$<3cJ`-|6?8bA8|=1K2S( z#_S#+|86p!eika7KU_)c<4QR#iif5-&UcArYuEUErd%Fbei;g}J42zqi|O=JQ2Cg0 zmevIWfXs;Ep^K^1(kRc@tn_+|a#8ZG@o|2~*w{}OQmMxPBo-fYVe+A10FW3_{Czut-Y=7rQqR!P(X$M5AIKL^ zu1lZ=q4)1ZqSda~FRgVt=T-92nHhQ8z`($GGI>A9SEp`>OA5k)QJP-qG8)Tk9F942 z{uvI-Tl)J4$CJqi0Gw7S-b08(+DKR6hRb(UK!rIi$Q)zV^&rt#{rW5c5~{Rn`+G|D)qd@mRP5;V{E z{S}XQ2Pvwg+-lVUKq!&G=3~cB569z=1L)T{<1HZ=q^J|S)~=Pm->^Y$aJfPN)@U8- zR#O+GsG(-J`;1<%U#E4LTUEUt=+Zg_K@bE%5ClOG1VIo4K@bE%5ClOG1VJp`zdK4+ U&8i|h0000007*qoM6N<$f-D4B1poj5 literal 0 HcmV?d00001 diff --git a/java/com.sap.sailing.www/release_notes_admin.html b/java/com.sap.sailing.www/release_notes_admin.html index 912a3371caf..d065c079ecb 100644 --- a/java/com.sap.sailing.www/release_notes_admin.html +++ b/java/com.sap.sailing.www/release_notes_admin.html @@ -1,229 +1,234 @@ - - - - - - - - SAP Sailing Analytics - Admin Console Release Notes - - -

- - -
-
- Sailer -
-
-

Release Notes - Administration Console

-
-

November 2015

-
    -
  • Adding a competitor to a leaderboard or a regatta pre-sets the competitor's boat class - according to the leaderboard's / regatta's boat class. -
  • -
  • When done with creating a regatta, the user can have the corresponding regatta leaderboard - created with a simple click instead of having to navigate to the "Leaderboards" tab. -
  • -
  • Trim leaderboard and leaderboard group names during creation, removing leading and trailing - blanks. These names can occur in URLs, and trailing blanks in particular may be trimmed, - causing the objects to not be found. -
  • -
-

October 2015

-
    -
  • The "RaceLog Tracking" panel was renamed to the more intuitive "Smartphone Tracking". -
  • -
  • Competitor and course information can now be copied independently from one race to another within a Smartphone-tracked leaderboard. -
  • -
-

September 2015

-
    -
  • A new scoring scheme for elimination rounds has been added. It will first be used - at a major wind surfing event. -
  • -
  • The "Device Configuration" tab has been moved into a new top-level tab - "Race Committee App". -
  • -
  • Included magnetic declination data for 2016 already. -
  • -
  • Bug fix: in rare cases, adding several series to a regatta in one go swapped the order - of the series to be created. This has now been fixed. -
  • -
-

August 2015

-
    -
  • Race log tracking now allows administrators to set the start and end of tracking for a race. - Competitor and mark positions as well as wind data are filtered based on the start/end of tracking - intervals. -
  • -
  • Setting the boat class for a regatta and when creating a competitor has been unified and now - uses a suggest text box which makes suggestions based on all the boat classes known by the - application. In both cases can users now also enter a "free-form" boat class which is then - created by the server if not known yet. Note that for such boat classes no boat class icon - will be present when showing the regatta on the web page. -
  • -
  • Added boat classes Soling, Lago 26, Kielzugvogel, PWA (Professional Windsurfers Association) -
  • -
-

June 2015

-
    -
  • An event an now have a "Sailors' Info" URL configured. If provided, there will be a button - displayed on the event's web page that navigates to this link. It can be used, e.g., to link - to official documents such as the notice of race, sailing instructions, weather information - or similar. -
  • -
-

April 2015

-
    -
  • Competitors can now have a flag image assigned. This image should ideally be - sized 18x11px. If such an image is assigned, it overrules the nationality flag. - Use this feature to provide club flags for sailing league events. -
  • -
-

February 2015

-
    -
  • The Event panel now links the event name to the event page in the new design. The old "RegattaOverview" - link is now shown in the panel below, shown when selecting the event in the table above, called - "Event Overview." -
  • -
- -

December 2014

-
    -
  • We added user management. The /gwt/AdminConsole.html entry point for a fresh server set-up uses - admin/admin as username/password. You can change the password in the "Advanced > User Management" - tab where also new users can be created. If you assign a use the role "admin" then the user will - be able to use the administration console. Stay tuned for a more sophisticated set of roles and - permissions to be added in the future. -
  • -
  • Reverse replication is now possible for selected events. When a replica instance receives a - modifying operation, such as a user logging in (creating a user session) or a wind fix being - entered through the Race Committee App, this change will be sent from the replica to the master - and from there be replicated to all other replicas attached. -
  • -
  • Starting a server with auto-replication enabled has been changed. The REPLICATE_ON_START environment - variable no longer is a Boolean value (True/False) but now has to list the replication services to be - replicated from the master. The default environments for replicas at - http://releases.sapsailing.com/environments - show how this works. -
  • -
  • The "Connectors" category has a new tab in the administration console, entitled "Regatta Structure Import". - If your regatta management system happens to be Manage2Sail - you can enter an event ID and show the list of regattas, then set defaults for how they shall be - created in the SAP Sailing Analytics. This allows you to import and create many regattas at once, - saving the laborious effort of manually creating them. Obviously, this can come in handy at large - events with regattas on many course areas in several different boat classes. -
  • -
- -

July 2014

-
    -
  • Replication has become much more robust and efficient. The initial load which used to be sent in a - single huge (although compressed) stream of data from the master to the replica(s) was hard to get - transmitted in the face of flaky and slow network connections. We've changed this: now the initial - load is transmitted as a sequence of messages using a message broker infrastructure. If a single - message doesn't arrive, it will be re-sent until it got through. The messages are buffered for several - minutes, so the initial load transmission can even survive and recover from severe network outages.

    - - For the incremental replication process, we added compression, making the transmission more bandwidth-efficient - and therefore quicker and leaner. In addition, we've cleaned up the protocol a little, avoiding the - sending of redundant data, adding to the effects of compression. Replicating five live races with - approximately 40 to 50 competitors each, with four active wind measurement units each, requires approximately - 30kB/s of network bandwidth between master and replica. -

  • -
  • Events now have lots of new attributes, particularly start/end date and multimedia content URLs
  • - -
  • Regattas can now be edited to not perform start time inference based on start mark passings. - Usually, when no start time is set by the race committee app or by the tracking provider or manually - through the administration console, the start time is inferred from the mark passings for the start - line. However, this can lead to unpleasant effects when the race committee aborts or postpones a race - and doesn't set a new start time for some period of time. When during this period one or more boats - cross the start line, a new start time would be inferred implicitly, showing scores in the leaderboard - and starting to compute all sorts of metrics. To avoid this, uncheck the checkbox - "Use start time inference from start mark passings" in the regatta create / edit dialog.
  • - -
  • When creating a regatta in the administration console, the regatta name is now taken from the create - dialog's "Name" field as-is and is no longer automatically extended by appending the boat class name - in parentheses to the base name. This is important to know if you so far have created several regattas - within the scope of the same event by simply providing the event name and the boat class name, relying - on the administration console to extend the regatta name by the boat class name because now with this - strategy your regattas would all be named the same. If you want to continue using some base name and - see the boat class name after the base name in parentheses you will now have to add that to the "Name" - field yourself, as in "Kieler Woche 2014 (470)". With this change, you can avoid having special - characters such as "/" in the regatta name which used to be a problem in particular for RESTful web services - that use the regatta name as a URL element. Boat classes such as "B/one" and "J/70" traditionally - had issues with this. Now, the regatta can simply be named "My Event (J70)" instead, and web service - access is hassle-free. The boat class can still be called "J/70" which can be useful if the result - management tool or the tracking partner spells it that way.
  • -
- -

March 2014

-
    -
  • XML export of leaderboards now also taking into account competitors that haven't sailed a race but got a score
  • -
- -

February 2014

-
    -
  • Series name can be edited
  • - -
  • Now one can add a new series to an existing regatta
  • - -
  • Introduced new series scheme where competitors are scored contigously over all fleets
  • -
-

January 2014

-
    -
  • New version of TracTrac connector that fixes issues with concurrent loading - of many races
  • - -
  • Wind data can be imported from Expedition log files and from Igtimi WindBots
  • - -
  • Competitors can be assigned fixed colors
  • - -
  • Video files can be interactively linked to races
  • - -
  • Admin Console consistently sorts alpha-numeric items such that - numbers embedded in text are sorted by their numeric values (Race 2 - precedes Race 11)
  • - -
  • AdminConsole has more consistent filter behavior as more columns are - used for filtering; some sorting options were added
  • - -
  • Added a button to set the start time received of a tracked race. This time - isn't persistent, so it'll be forgotten after a server restart
  • - -
  • Tracking a race with a wrong regatta is now forbidden
  • -
-
-
-
-
-
- - - - + + + + + + + + SAP Sailing Analytics - Admin Console Release Notes + + +
+ + +
+
+ Sailer +
+
+

Release Notes - Administration Console

+
+

November 2015

+
    +
  • Show Maneuvers per default (Tacks, Jibes and Penality Circlys) with a smaller icon, which shows a Info window, if you click on it. + The Icon is now green, if the direction change in degrees is positiv and red if negativ.
  • +
+

January 2016

+
    +
  • Adding a competitor to a leaderboard or a regatta pre-sets the competitor's boat class + according to the leaderboard's / regatta's boat class. +
  • +
  • When done with creating a regatta, the user can have the corresponding regatta leaderboard + created with a simple click instead of having to navigate to the "Leaderboards" tab. +
  • +
  • Trim leaderboard and leaderboard group names during creation, removing leading and trailing + blanks. These names can occur in URLs, and trailing blanks in particular may be trimmed, + causing the objects to not be found. +
  • +
+

October 2015

+
    +
  • The "RaceLog Tracking" panel was renamed to the more intuitive "Smartphone Tracking". +
  • +
  • Competitor and course information can now be copied independently from one race to another within a Smartphone-tracked leaderboard. +
  • +
+

September 2015

+
    +
  • A new scoring scheme for elimination rounds has been added. It will first be used + at a major wind surfing event. +
  • +
  • The "Device Configuration" tab has been moved into a new top-level tab + "Race Committee App". +
  • +
  • Included magnetic declination data for 2016 already. +
  • +
  • Bug fix: in rare cases, adding several series to a regatta in one go swapped the order + of the series to be created. This has now been fixed. +
  • +
+

August 2015

+
    +
  • Race log tracking now allows administrators to set the start and end of tracking for a race. + Competitor and mark positions as well as wind data are filtered based on the start/end of tracking + intervals. +
  • +
  • Setting the boat class for a regatta and when creating a competitor has been unified and now + uses a suggest text box which makes suggestions based on all the boat classes known by the + application. In both cases can users now also enter a "free-form" boat class which is then + created by the server if not known yet. Note that for such boat classes no boat class icon + will be present when showing the regatta on the web page. +
  • +
  • Added boat classes Soling, Lago 26, Kielzugvogel, PWA (Professional Windsurfers Association) +
  • +
+

June 2015

+
    +
  • An event an now have a "Sailors' Info" URL configured. If provided, there will be a button + displayed on the event's web page that navigates to this link. It can be used, e.g., to link + to official documents such as the notice of race, sailing instructions, weather information + or similar. +
  • +
+

April 2015

+
    +
  • Competitors can now have a flag image assigned. This image should ideally be + sized 18x11px. If such an image is assigned, it overrules the nationality flag. + Use this feature to provide club flags for sailing league events. +
  • +
+

February 2015

+
    +
  • The Event panel now links the event name to the event page in the new design. The old "RegattaOverview" + link is now shown in the panel below, shown when selecting the event in the table above, called + "Event Overview." +
  • +
+ +

December 2014

+
    +
  • We added user management. The /gwt/AdminConsole.html entry point for a fresh server set-up uses + admin/admin as username/password. You can change the password in the "Advanced > User Management" + tab where also new users can be created. If you assign a use the role "admin" then the user will + be able to use the administration console. Stay tuned for a more sophisticated set of roles and + permissions to be added in the future. +
  • +
  • Reverse replication is now possible for selected events. When a replica instance receives a + modifying operation, such as a user logging in (creating a user session) or a wind fix being + entered through the Race Committee App, this change will be sent from the replica to the master + and from there be replicated to all other replicas attached. +
  • +
  • Starting a server with auto-replication enabled has been changed. The REPLICATE_ON_START environment + variable no longer is a Boolean value (True/False) but now has to list the replication services to be + replicated from the master. The default environments for replicas at + http://releases.sapsailing.com/environments + show how this works. +
  • +
  • The "Connectors" category has a new tab in the administration console, entitled "Regatta Structure Import". + If your regatta management system happens to be Manage2Sail + you can enter an event ID and show the list of regattas, then set defaults for how they shall be + created in the SAP Sailing Analytics. This allows you to import and create many regattas at once, + saving the laborious effort of manually creating them. Obviously, this can come in handy at large + events with regattas on many course areas in several different boat classes. +
  • +
+ +

July 2014

+
    +
  • Replication has become much more robust and efficient. The initial load which used to be sent in a + single huge (although compressed) stream of data from the master to the replica(s) was hard to get + transmitted in the face of flaky and slow network connections. We've changed this: now the initial + load is transmitted as a sequence of messages using a message broker infrastructure. If a single + message doesn't arrive, it will be re-sent until it got through. The messages are buffered for several + minutes, so the initial load transmission can even survive and recover from severe network outages.

    + + For the incremental replication process, we added compression, making the transmission more bandwidth-efficient + and therefore quicker and leaner. In addition, we've cleaned up the protocol a little, avoiding the + sending of redundant data, adding to the effects of compression. Replicating five live races with + approximately 40 to 50 competitors each, with four active wind measurement units each, requires approximately + 30kB/s of network bandwidth between master and replica. +

  • +
  • Events now have lots of new attributes, particularly start/end date and multimedia content URLs
  • + +
  • Regattas can now be edited to not perform start time inference based on start mark passings. + Usually, when no start time is set by the race committee app or by the tracking provider or manually + through the administration console, the start time is inferred from the mark passings for the start + line. However, this can lead to unpleasant effects when the race committee aborts or postpones a race + and doesn't set a new start time for some period of time. When during this period one or more boats + cross the start line, a new start time would be inferred implicitly, showing scores in the leaderboard + and starting to compute all sorts of metrics. To avoid this, uncheck the checkbox + "Use start time inference from start mark passings" in the regatta create / edit dialog.
  • + +
  • When creating a regatta in the administration console, the regatta name is now taken from the create + dialog's "Name" field as-is and is no longer automatically extended by appending the boat class name + in parentheses to the base name. This is important to know if you so far have created several regattas + within the scope of the same event by simply providing the event name and the boat class name, relying + on the administration console to extend the regatta name by the boat class name because now with this + strategy your regattas would all be named the same. If you want to continue using some base name and + see the boat class name after the base name in parentheses you will now have to add that to the "Name" + field yourself, as in "Kieler Woche 2014 (470)". With this change, you can avoid having special + characters such as "/" in the regatta name which used to be a problem in particular for RESTful web services + that use the regatta name as a URL element. Boat classes such as "B/one" and "J/70" traditionally + had issues with this. Now, the regatta can simply be named "My Event (J70)" instead, and web service + access is hassle-free. The boat class can still be called "J/70" which can be useful if the result + management tool or the tracking partner spells it that way.
  • +
+ +

March 2014

+
    +
  • XML export of leaderboards now also taking into account competitors that haven't sailed a race but got a score
  • +
+ +

February 2014

+
    +
  • Series name can be edited
  • + +
  • Now one can add a new series to an existing regatta
  • + +
  • Introduced new series scheme where competitors are scored contigously over all fleets
  • +
+

January 2014

+
    +
  • New version of TracTrac connector that fixes issues with concurrent loading + of many races
  • + +
  • Wind data can be imported from Expedition log files and from Igtimi WindBots
  • + +
  • Competitors can be assigned fixed colors
  • + +
  • Video files can be interactively linked to races
  • + +
  • Admin Console consistently sorts alpha-numeric items such that + numbers embedded in text are sorted by their numeric values (Race 2 + precedes Race 11)
  • + +
  • AdminConsole has more consistent filter behavior as more columns are + used for filtering; some sorting options were added
  • + +
  • Added a button to set the start time received of a tracked race. This time + isn't persistent, so it'll be forgotten after a server restart
  • + +
  • Tracking a race with a wrong regatta is now forbidden
  • +
+
+
+
+
+
+ + + + From 0238bf627cca0334f945c710959a6937e686281a Mon Sep 17 00:00:00 2001 From: D062347 Date: Wed, 27 Jan 2016 14:33:50 +0100 Subject: [PATCH 02/17] Small refactoring in Race map, reverted formating, added "release note" --- .../ManeuverMarkerClickedListener.java | 33 + .../gwt/ui/client/shared/racemap/RaceMap.java | 990 ++++++++---------- .../shared/racemap/RaceMapImageManager.java | 30 +- .../shared/racemap/RaceMapResources.java | 2 +- .../shared/racemap/RaceMapSettings.java | 49 +- .../home/solutions/SailingAnalyticsNotes.html | 903 ++++++++-------- .../release_notes_admin.html | 463 ++++---- 7 files changed, 1192 insertions(+), 1278 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java new file mode 100644 index 00000000000..0c54578c0ed --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java @@ -0,0 +1,33 @@ +package com.sap.sailing.gwt.ui.client.shared.racemap; + +import com.google.gwt.maps.client.base.LatLng; +import com.google.gwt.maps.client.events.click.ClickMapEvent; +import com.google.gwt.maps.client.events.click.ClickMapHandler; +import com.google.gwt.maps.client.overlays.InfoWindow; +import com.google.gwt.maps.client.overlays.InfoWindowOptions; +import com.sap.sailing.gwt.ui.shared.ManeuverDTO; + +public class ManeuverMarkerClickedListener implements ClickMapHandler { + + private RaceMap racemap; + private ManeuverDTO maneuver; + + public ManeuverMarkerClickedListener(RaceMap racemap, ManeuverDTO maneuver) { + this.racemap = racemap; + this.maneuver = maneuver; + } + + @Override + public void onEvent(ClickMapEvent event) { + if (racemap.getLastInfoWindow() != null) { + racemap.getLastInfoWindow().close(); + } + LatLng where = racemap.getCoordinateSystem().toLatLng(maneuver.position); + InfoWindowOptions options = InfoWindowOptions.newInstance(); + InfoWindow infoWindow = InfoWindow.newInstance(options); + infoWindow.setContent(racemap.getInfoWindowContent(maneuver)); + infoWindow.setPosition(where); + racemap.setLastInfoWindow(infoWindow); + infoWindow.open(racemap.getMap()); + } +} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index 0a5eb688f0c..48f270863ee 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -54,7 +54,6 @@ import com.google.gwt.maps.client.mvc.MVCArray; import com.google.gwt.maps.client.overlays.InfoWindow; import com.google.gwt.maps.client.overlays.InfoWindowOptions; import com.google.gwt.maps.client.overlays.Marker; -import com.google.gwt.maps.client.overlays.MarkerImage; import com.google.gwt.maps.client.overlays.MarkerOptions; import com.google.gwt.maps.client.overlays.Polygon; import com.google.gwt.maps.client.overlays.PolygonOptions; @@ -77,7 +76,6 @@ import com.sap.sailing.domain.common.ManeuverType; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.dto.CompetitorDTO; @@ -201,7 +199,7 @@ public class RaceMap extends AbsolutePanel private class AdvantageLineMouseOverMapHandler implements MouseOverMapHandler { private double trueWindAngle; private Date date; - + public AdvantageLineMouseOverMapHandler(double trueWindAngle, Date date) { this.trueWindAngle = trueWindAngle; this.date = date; @@ -311,7 +309,6 @@ public class RaceMap extends AbsolutePanel private RaceTimesInfoDTO lastRaceTimesInfo; private InfoWindow lastInfoWindow = null; - /** * RPC calls may receive responses out of order if there are multiple calls in-flight at the same time. If the time * slider is moved quickly it generates many requests for boat positions quickly after each other. Sometimes, @@ -679,20 +676,21 @@ public class RaceMap extends AbsolutePanel @Override public void onSuccess(Boolean result) { // store results - hasPolar = result.booleanValue(); + hasPolar = result.booleanValue(); } })); } /** - * Creates a header panel where additional information can be displayed by using {@link #getLeftHeaderPanel()} or - * {@link #getRightHeaderPanel()}. + * Creates a header panel where additional information can be displayed by using + * {@link #getLeftHeaderPanel()} or {@link #getRightHeaderPanel()}. * - * This panel is transparent and configured in such a way that it moves other controls down by its height. To - * achieve the goal of not having added widgets transparent this widget consists of two parts: First one is the - * transparent panel and the second one is the panel for the controls. The controls then need to moved onto the - * panel by using CSS. + * This panel is transparent and configured in such a way that it moves other controls + * down by its height. To achieve the goal of not having added widgets transparent + * this widget consists of two parts: First one is the transparent panel and the + * second one is the panel for the controls. The controls then need to moved onto + * the panel by using CSS. */ private void createHeaderPanel(MapWidget map) { // we need a panel that does not have any transparency to have the @@ -712,7 +710,7 @@ public class RaceMap extends AbsolutePanel // controls at RIGHT would not get the correct top setting map.setControls(ControlPosition.TOP_RIGHT, headerPanel); } - + private void createSettingsButton(MapWidget map) { final Component component = this; Button settingsButton = new Button(); @@ -745,40 +743,37 @@ public class RaceMap extends AbsolutePanel public void redraw() { timeChanged(timer.getTime(), null); } - + Map getBoatOverlays() { return Collections.unmodifiableMap(boatOverlays); } - + public MapWidget getMap() { return map; } - + /** * @return the Panel where labels or other controls for the header can be positioned */ public AbsolutePanel getLeftHeaderPanel() { return panelForLeftHeaderLabels; } - + public AbsolutePanel getRightHeaderPanel() { return panelForRightHeaderLabels; } - + @Override - public void raceTimesInfosReceived(Map raceTimesInfos, - long clientTimeWhenRequestWasSent, Date serverTimeDuringRequest, long clientTimeWhenResponseWasReceived) { - timer.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, - clientTimeWhenResponseWasReceived); - this.lastRaceTimesInfo = raceTimesInfos.get(raceIdentifier); + public void raceTimesInfosReceived(Map raceTimesInfos, long clientTimeWhenRequestWasSent, Date serverTimeDuringRequest, long clientTimeWhenResponseWasReceived) { + timer.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived); + this.lastRaceTimesInfo = raceTimesInfos.get(raceIdentifier); } /** - * In {@link PlayModes#Live live mode}, when {@link #loadCompleteLeaderboard(Date) loading the leaderboard contents} - * , null is used as time point. The condition for this is encapsulated in this method so others can - * find out. For example, when a time change is signaled due to local offset / delay adjustments, no additional call - * to {@link #loadCompleteLeaderboard(Date)} would be required as null will be passed in any case, not - * being affected by local time offsets. + * In {@link PlayModes#Live live mode}, when {@link #loadCompleteLeaderboard(Date) loading the leaderboard contents}, null + * is used as time point. The condition for this is encapsulated in this method so others can find out. For example, when a time change + * is signaled due to local offset / delay adjustments, no additional call to {@link #loadCompleteLeaderboard(Date)} would be required + * as null will be passed in any case, not being affected by local time offsets. */ private boolean useNullAsTimePoint() { return timer.getPlayMode() == PlayModes.Live; @@ -792,64 +787,55 @@ public class RaceMap extends AbsolutePanel final Iterable competitorsToShow = getCompetitorsToShow(); if (race != null) { final long transitionTimeInMillis = calculateTimeForPositionTransitionInMillis(newTime, oldTime); - final com.sap.sse.common.Util.Triple, Map, Map> fromAndToAndOverlap = fixesAndTails - .computeFromAndTo(newTime, competitorsToShow, - settings.getEffectiveTailLengthInMilliseconds()); + final com.sap.sse.common.Util.Triple, Map, Map> fromAndToAndOverlap = + fixesAndTails.computeFromAndTo(newTime, competitorsToShow, settings.getEffectiveTailLengthInMilliseconds()); // Request map data update, possibly in two calls; see method details - callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers( - fromAndToAndOverlap, race, newTime, transitionTimeInMillis, competitorsToShow); + callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers(fromAndToAndOverlap, race, newTime, transitionTimeInMillis, competitorsToShow); // draw the wind into the map, get the combined wind List windSourceTypeNames = new ArrayList(); windSourceTypeNames.add(WindSourceType.EXPEDITION.name()); windSourceTypeNames.add(WindSourceType.COMBINED.name()); - GetWindInfoAction getWindInfoAction = new GetWindInfoAction(sailingService, race, newTime, 1000L, 1, - windSourceTypeNames, + GetWindInfoAction getWindInfoAction = new GetWindInfoAction(sailingService, race, newTime, 1000L, 1, windSourceTypeNames, /* onlyUpToNewestEvent==false means get us any data we can get by a best effort */ false); - asyncActionsExecutor.execute(getWindInfoAction, GET_WIND_DATA_CATEGORY, - new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError( - "Error obtaining wind information: " + caught.getMessage(), - true /* silentMode */); - } + asyncActionsExecutor.execute(getWindInfoAction, GET_WIND_DATA_CATEGORY, new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError("Error obtaining wind information: " + caught.getMessage(), true /*silentMode */); + } - @Override - public void onSuccess(WindInfoForRaceDTO windInfo) { - List> windSourcesToShow = new ArrayList>(); - if (windInfo != null) { - lastCombinedWindTrackInfoDTO = windInfo; - showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); - for (WindSource windSource : windInfo.windTrackInfoByWindSource.keySet()) { - WindTrackInfoDTO windTrackInfoDTO = windInfo.windTrackInfoByWindSource - .get(windSource); - switch (windSource.getType()) { - case EXPEDITION: - // we filter out measured wind sources with vary low confidence - if (windTrackInfoDTO.minWindConfidence > 0.0001) { - windSourcesToShow - .add(new com.sap.sse.common.Util.Pair( - windSource, windTrackInfoDTO)); - } - break; - case COMBINED: - showCombinedWindOnMap(windSource, windTrackInfoDTO); - if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { - updateCoordinateSystemFromSettings(); - } - break; - default: - // Which wind sources are requested is defined in a list above this - // action. So we throw here an exception to notice a missing source. - throw new UnsupportedOperationException( - "There is currently no support for the enum value '" - + windSource.getType() + "' in this method."); + @Override + public void onSuccess(WindInfoForRaceDTO windInfo) { + List> windSourcesToShow = new ArrayList>(); + if (windInfo != null) { + lastCombinedWindTrackInfoDTO = windInfo; + showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); + for (WindSource windSource : windInfo.windTrackInfoByWindSource.keySet()) { + WindTrackInfoDTO windTrackInfoDTO = windInfo.windTrackInfoByWindSource.get(windSource); + switch (windSource.getType()) { + case EXPEDITION: + // we filter out measured wind sources with vary low confidence + if (windTrackInfoDTO.minWindConfidence > 0.0001) { + windSourcesToShow.add(new com.sap.sse.common.Util.Pair(windSource, windTrackInfoDTO)); } - } + break; + case COMBINED: + showCombinedWindOnMap(windSource, windTrackInfoDTO); + if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { + updateCoordinateSystemFromSettings(); + } + break; + default: + // Which wind sources are requested is defined in a list above this + // action. So we throw here an exception to notice a missing source. + throw new UnsupportedOperationException( + "There is currently no support for the enum value '" + + windSource.getType() + "' in this method."); } - showWindSensorsOnMap(windSourcesToShow); } - }); + } + showWindSensorsOnMap(windSourcesToShow); + } + }); } } } @@ -875,14 +861,12 @@ public class RaceMap extends AbsolutePanel * current tail length setting the new tail segment does not overlap with the old one, requiring a full load of the * entire tail data for that competitor. For these non-overlapping requests, this method creates a * {@link GetBoatPositionsAction} request loading the entire tail required, but not quick ranks, sidelines and mark - * positions. Updating the results of this call is done in - * {@link #updateBoatPositions(Date, long, Map, Iterable, Map, boolean)}. + * positions. Updating the results of this call is done in {@link #updateBoatPositions(Date, long, Map, Iterable, Map, boolean)}. *

*/ private void callGetRaceMapDataForAllOverlappingAndTipsOfNonOverlappingAndGetBoatPositionsForAllOthers( final Triple, Map, Map> fromAndToAndOverlap, - RegattaAndRaceIdentifier race, final Date newTime, final long transitionTimeInMillis, - final Iterable competitorsToShow) { + RegattaAndRaceIdentifier race, final Date newTime, final long transitionTimeInMillis, final Iterable competitorsToShow) { final Map fromTimesForQuickCall = new HashMap<>(); final Map toTimesForQuickCall = new HashMap<>(); final Map fromTimesForNonOverlappingTailsCall = new HashMap<>(); @@ -893,8 +877,7 @@ public class RaceMap extends AbsolutePanel fromTimesForQuickCall.put(e.getKey(), fromAndToAndOverlap.getA().get(e.getKey())); toTimesForQuickCall.put(e.getKey(), fromAndToAndOverlap.getB().get(e.getKey())); } else { - // no overlap; add competitor to request with a zero-length interval asking only position at newTime, - // not the entire tail + // no overlap; add competitor to request with a zero-length interval asking only position at newTime, not the entire tail fromTimesForQuickCall.put(e.getKey(), newTime); toTimesForQuickCall.put(e.getKey(), newTime); fromTimesForNonOverlappingTailsCall.put(e.getKey(), fromAndToAndOverlap.getA().get(e.getKey())); @@ -912,55 +895,46 @@ public class RaceMap extends AbsolutePanel // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will contain true for // all its entries so that the other response received for GetBoatPositionsAction will consider this an // overlap if it happens after this update. - asyncActionsExecutor.execute( - new GetRaceMapDataAction(sailingService, competitorsByIdAsString, race, - useNullAsTimePoint() ? null : newTime, fromTimesForQuickCall, toTimesForQuickCall, - /* extrapolate */true, - (settings.isShowSimulationOverlay() ? simulationOverlay.getLegIdentifier() : null), - raceCompetitorSet - .getMd5OfIdsAsStringOfCompetitorParticipatingInRaceInAlphanumericOrderOfTheirID()), - GET_RACE_MAP_DATA_CATEGORY, getRaceMapDataCallback(newTime, transitionTimeInMillis, - fromAndToAndOverlap.getC(), competitorsToShow, ++boatPositionRequestIDCounter)); - // next, if necessary, do the full thing; the two calls have different action classes, so throttling should not - // drop one for the other + asyncActionsExecutor.execute(new GetRaceMapDataAction(sailingService, competitorsByIdAsString, + race, useNullAsTimePoint() ? null : newTime, fromTimesForQuickCall, toTimesForQuickCall, /* extrapolate */true, + (settings.isShowSimulationOverlay() ? simulationOverlay.getLegIdentifier() : null), + raceCompetitorSet.getMd5OfIdsAsStringOfCompetitorParticipatingInRaceInAlphanumericOrderOfTheirID()), + GET_RACE_MAP_DATA_CATEGORY, + getRaceMapDataCallback(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), competitorsToShow, ++boatPositionRequestIDCounter)); + // next, if necessary, do the full thing; the two calls have different action classes, so throttling should not drop one for the other if (!fromTimesForNonOverlappingTailsCall.keySet().isEmpty()) { - asyncActionsExecutor.execute( - new GetBoatPositionsAction(sailingService, race, fromTimesForNonOverlappingTailsCall, - toTimesForNonOverlappingTailsCall, /* extrapolate */ true), - GET_RACE_MAP_DATA_CATEGORY, new MarkedAsyncCallback<>(new AsyncCallback() { + asyncActionsExecutor.execute(new GetBoatPositionsAction(sailingService, race, fromTimesForNonOverlappingTailsCall, toTimesForNonOverlappingTailsCall, + /* extrapolate */ true), GET_RACE_MAP_DATA_CATEGORY, + new MarkedAsyncCallback<>(new AsyncCallback() { @Override public void onFailure(Throwable t) { - errorReporter.reportError("Error obtaining racemap data: " + t.getMessage(), - true /* silentMode */); + errorReporter.reportError("Error obtaining racemap data: " + t.getMessage(), true /*silentMode */); } - + @Override public void onSuccess(CompactBoatPositionsDTO result) { - // Note: the fromAndToAndOverlap.getC() map will be UPDATED by the call to - // updateBoatPositions for those - // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will - // contain true for - // all its entries so that the other response received for GetRaceMapDataAction will - // consider this an + // Note: the fromAndToAndOverlap.getC() map will be UPDATED by the call to updateBoatPositions for those + // entries that are considered not overlapping; subsequently, fromAndToOverlap.getC() will contain true for + // all its entries so that the other response received for GetRaceMapDataAction will consider this an // overlap if it happens after this update. - updateBoatPositions(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), - competitorsToShow, result.getBoatPositionsForCompetitors(competitorsByIdAsString), - /* updateTailsOnly */ true); + updateBoatPositions(newTime, transitionTimeInMillis, fromAndToAndOverlap.getC(), competitorsToShow, + result.getBoatPositionsForCompetitors(competitorsByIdAsString), /* updateTailsOnly */ true); } })); } } - private AsyncCallback getRaceMapDataCallback(final Date newTime, final long transitionTimeInMillis, + private AsyncCallback getRaceMapDataCallback( + final Date newTime, + final long transitionTimeInMillis, final Map hasTailOverlapForCompetitor, final Iterable competitorsToShow, final int requestID) { return new MarkedAsyncCallback<>(new AsyncCallback() { @Override public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining racemap data: " + caught.getMessage(), - true /* silentMode */); + errorReporter.reportError("Error obtaining racemap data: " + caught.getMessage(), true /*silentMode */); } - + @Override public void onSuccess(RaceMapDataDTO raceMapDataDTO) { if (map != null && raceMapDataDTO != null) { @@ -969,31 +943,29 @@ public class RaceMap extends AbsolutePanel startedProcessingRequestID = requestID; if (raceMapDataDTO.raceCompetitorIdsAsStrings != null) { try { - raceCompetitorSet - .setIdsAsStringsOfCompetitorsInRace(raceMapDataDTO.raceCompetitorIdsAsStrings); + raceCompetitorSet.setIdsAsStringsOfCompetitorsInRace(raceMapDataDTO.raceCompetitorIdsAsStrings); } catch (Exception e) { - GWT.log("Error trying to update competitor set for race " + raceIdentifier.getRaceName() - + " in regatta " + raceIdentifier.getRegattaName(), e); + GWT.log("Error trying to update competitor set for race "+raceIdentifier.getRaceName()+ + " in regatta "+raceIdentifier.getRegattaName(), e); } } quickRanks = raceMapDataDTO.quickRanks; - competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber = raceMapDataDTO.competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; + competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber = + raceMapDataDTO.competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; if (showViewSimulation && settings.isShowSimulationOverlay()) { lastLegNumber = raceMapDataDTO.coursePositions.currentLegNumber; - simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), /* clearCanvas */ false, - raceMapDataDTO.simulationResultVersion); + simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), /* clearCanvas */ false, raceMapDataDTO.simulationResultVersion); } // Do boat specific actions Map> boatData = raceMapDataDTO.boatPositions; - updateBoatPositions(newTime, transitionTimeInMillis, hasTailOverlapForCompetitor, - competitorsToShow, boatData, /* updateTailsOnly */ false); + updateBoatPositions(newTime, transitionTimeInMillis, hasTailOverlapForCompetitor, competitorsToShow, boatData, /* updateTailsOnly */ false); if (douglasMarkers != null) { removeAllMarkDouglasPeuckerpoints(); } if (maneuverMarkers != null) { removeAllManeuverMarkers(); } - + if (requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown) { updateCoordinateSystemFromSettings(); } @@ -1002,25 +974,24 @@ public class RaceMap extends AbsolutePanel showCourseSidelinesOnMap(raceMapDataDTO.courseSidelines); showStartAndFinishAndCourseMiddleLines(raceMapDataDTO.coursePositions); showStartLineToFirstMarkTriangle(raceMapDataDTO.coursePositions); - + // Rezoom the map LatLngBounds zoomToBounds = null; - if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { // Auto zoom if setting is - // not manual + if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { // Auto zoom if setting is not manual zoomToBounds = settings.getZoomSettings().getNewBounds(RaceMap.this); if (zoomToBounds == null && !mapFirstZoomDone) { - zoomToBounds = getDefaultZoomBounds(); // the user-specified zoom couldn't find what it - // was looking for; try defaults once + zoomToBounds = getDefaultZoomBounds(); // the user-specified zoom couldn't find what it was looking for; try defaults once } } else if (!mapFirstZoomDone) { // Zoom once to the marks if marks exist zoomToBounds = new CourseMarksBoundsCalculator().calculateNewBounds(RaceMap.this); if (zoomToBounds == null) { - zoomToBounds = getDefaultZoomBounds(); // use default zoom, e.g., + zoomToBounds = getDefaultZoomBounds(); // use default zoom, e.g., } /* - * Reset the mapZoomedOrPannedSinceLastRaceSelection: In spite of the fact that the map was - * just zoomed to the bounds of the marks, it was not a zoom or pan triggered by the user. - * As a consequence the mapZoomedOrPannedSinceLastRaceSelection option has to reset again. + * Reset the mapZoomedOrPannedSinceLastRaceSelection: In spite of the fact that + * the map was just zoomed to the bounds of the marks, it was not a zoom or pan + * triggered by the user. As a consequence the + * mapZoomedOrPannedSinceLastRaceSelection option has to reset again. */ } zoomMapToNewBounds(zoomToBounds); @@ -1058,14 +1029,12 @@ public class RaceMap extends AbsolutePanel */ private void updateBoatPositions(final Date newTime, final long transitionTimeInMillis, final Map hasTailOverlapForCompetitor, - final Iterable competitorsToShow, Map> boatData, - boolean updateTailsOnly) { - final Map tailPreparersPerCompetitor = fixesAndTails.updateFixes(boatData, - hasTailOverlapForCompetitor, RaceMap.this, transitionTimeInMillis); + final Iterable competitorsToShow, Map> boatData, boolean updateTailsOnly) { + final Map tailPreparersPerCompetitor = + fixesAndTails.updateFixes(boatData, hasTailOverlapForCompetitor, RaceMap.this, transitionTimeInMillis); showBoatsOnMap(newTime, transitionTimeInMillis, competitorsToShow, updateTailsOnly, tailPreparersPerCompetitor); if (!updateTailsOnly) { - showCompetitorInfoOnMap(newTime, transitionTimeInMillis, - competitorSelection.getSelectedFilteredCompetitors()); + showCompetitorInfoOnMap(newTime, transitionTimeInMillis, competitorSelection.getSelectedFilteredCompetitors()); // even though the wind data is retrieved by a separate call, re-draw the advantage line because it needs to // adjust to new boat positions showAdvantageLine(competitorsToShow, newTime, transitionTimeInMillis); @@ -1073,13 +1042,13 @@ public class RaceMap extends AbsolutePanel } private void showCourseSidelinesOnMap(List sidelinesDTOs) { - if (map != null && sidelinesDTOs != null) { + if (map != null && sidelinesDTOs != null ) { Map toRemoveSidelines = new HashMap(courseSidelines); for (SidelineDTO sidelineDTO : sidelinesDTOs) { if (sidelineDTO.getMarks().size() == 2) { // right now we only support sidelines with 2 marks Polygon sideline = courseSidelines.get(sidelineDTO); LatLng[] sidelinePoints = new LatLng[sidelineDTO.getMarks().size()]; - int i = 0; + int i=0; for (MarkDTO sidelineMark : sidelineDTO.getMarks()) { sidelinePoints[i] = coordinateSystem.toLatLng(sidelineMark.position); i++; @@ -1092,7 +1061,7 @@ public class RaceMap extends AbsolutePanel options.setStrokeOpacity(1.0); options.setFillColor(null); options.setFillOpacity(1.0); - + sideline = Polygon.newInstance(options); MVCArray pointsAsArray = MVCArray.newInstance(sidelinePoints); sideline.setPath(pointsAsArray); @@ -1126,28 +1095,25 @@ public class RaceMap extends AbsolutePanel } } } - + private void showCourseMarksOnMap(CoursePositionsDTO courseDTO) { if (map != null && courseDTO != null) { WaypointDTO endWaypointForCurrentLegNumber = null; - if (courseDTO.currentLegNumber > 0 && courseDTO.currentLegNumber <= courseDTO.totalLegsCount) { + if(courseDTO.currentLegNumber > 0 && courseDTO.currentLegNumber <= courseDTO.totalLegsCount) { endWaypointForCurrentLegNumber = courseDTO.getEndWaypointForLegNumber(courseDTO.currentLegNumber); } - - Map toRemoveCourseMarks = new HashMap( - courseMarkOverlays); + + Map toRemoveCourseMarks = new HashMap(courseMarkOverlays); if (courseDTO.marks != null) { for (MarkDTO markDTO : courseDTO.marks) { boolean isSelected = false; - if (endWaypointForCurrentLegNumber != null - && Util.contains(endWaypointForCurrentLegNumber.controlPoint.getMarks(), markDTO)) { + if (endWaypointForCurrentLegNumber != null && Util.contains(endWaypointForCurrentLegNumber.controlPoint.getMarks(), markDTO)) { isSelected = true; } CourseMarkOverlay courseMarkOverlay = courseMarkOverlays.get(markDTO.getName()); if (courseMarkOverlay == null) { courseMarkOverlay = createCourseMarkOverlay(RaceMapOverlaysZIndexes.COURSEMARK_ZINDEX, markDTO); - courseMarkOverlay - .setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); + courseMarkOverlay.setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); courseMarkOverlay.setBuoyZoneRadiusInMeter(settings.getBuoyZoneRadiusInMeters()); courseMarkOverlay.setSelected(isSelected); courseMarkOverlays.put(markDTO.getName(), courseMarkOverlay); @@ -1155,8 +1121,7 @@ public class RaceMap extends AbsolutePanel courseMarkOverlay.addToMap(); } else { courseMarkOverlay.setMarkPosition(markDTO.position); - courseMarkOverlay - .setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); + courseMarkOverlay.setShowBuoyZone(settings.getHelpLinesSettings().isVisible(HelpLineTypes.BUOYZONE)); courseMarkOverlay.setBuoyZoneRadiusInMeter(settings.getBuoyZoneRadiusInMeters()); courseMarkOverlay.setSelected(isSelected); courseMarkOverlay.draw(); @@ -1166,16 +1131,16 @@ public class RaceMap extends AbsolutePanel } for (String toRemoveMarkName : toRemoveCourseMarks.keySet()) { CourseMarkOverlay removedOverlay = courseMarkOverlays.remove(toRemoveMarkName); - if (removedOverlay != null) { + if(removedOverlay != null) { removedOverlay.removeFromMap(); } } } } - + /** - * Based on the mark positions in {@link #courseMarkOverlays}' values this method determines the center of gravity - * of these marks' {@link CourseMarkOverlay#getPosition() positions}. + * Based on the mark positions in {@link #courseMarkOverlays}' values this method determines the center of gravity of these marks' + * {@link CourseMarkOverlay#getPosition() positions}. */ private Position getCenterOfCourse() { ScalablePosition center = null; @@ -1199,18 +1164,16 @@ public class RaceMap extends AbsolutePanel } } - private void showWindSensorsOnMap( - List> windSensorsList) { + private void showWindSensorsOnMap(List> windSensorsList) { if (map != null) { Set toRemoveWindSources = new HashSet(windSensorOverlays.keySet()); for (com.sap.sse.common.Util.Pair windSourcePair : windSensorsList) { - WindSource windSource = windSourcePair.getA(); + WindSource windSource = windSourcePair.getA(); WindTrackInfoDTO windTrackInfoDTO = windSourcePair.getB(); WindSensorOverlay windSensorOverlay = windSensorOverlays.get(windSource); if (windSensorOverlay == null) { - windSensorOverlay = createWindSensorOverlay(RaceMapOverlaysZIndexes.WINDSENSOR_ZINDEX, windSource, - windTrackInfoDTO); + windSensorOverlay = createWindSensorOverlay(RaceMapOverlaysZIndexes.WINDSENSOR_ZINDEX, windSource, windTrackInfoDTO); windSensorOverlays.put(windSource, windSensorOverlay); windSensorOverlay.addToMap(); } else { @@ -1228,8 +1191,7 @@ public class RaceMap extends AbsolutePanel } } - private void showCompetitorInfoOnMap(final Date newTime, final long timeForPositionTransitionMillis, - final Iterable competitorsToShow) { + private void showCompetitorInfoOnMap(final Date newTime, final long timeForPositionTransitionMillis, final Iterable competitorsToShow) { if (map != null) { if (settings.isShowSelectedCompetitorsInfo()) { Set toRemoveCompetorInfoOverlays = new HashSet( @@ -1240,15 +1202,12 @@ public class RaceMap extends AbsolutePanel if (lastBoatFix != null) { CompetitorInfoOverlay competitorInfoOverlay = competitorInfoOverlays.get(competitorDTO); if (competitorInfoOverlay == null) { - competitorInfoOverlay = createCompetitorInfoOverlay( - RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, competitorDTO); + competitorInfoOverlay = createCompetitorInfoOverlay(RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, competitorDTO); competitorInfoOverlays.put(competitorDTO, competitorInfoOverlay); - competitorInfoOverlay.setPosition(lastBoatFix.position, - timeForPositionTransitionMillis); + competitorInfoOverlay.setPosition(lastBoatFix.position, timeForPositionTransitionMillis); competitorInfoOverlay.addToMap(); } else { - competitorInfoOverlay.setPosition(lastBoatFix.position, - timeForPositionTransitionMillis); + competitorInfoOverlay.setPosition(lastBoatFix.position, timeForPositionTransitionMillis); competitorInfoOverlay.draw(); } toRemoveCompetorInfoOverlays.remove(competitorDTO); @@ -1272,18 +1231,17 @@ public class RaceMap extends AbsolutePanel private long calculateTimeForPositionTransitionInMillis(final Date newTime, final Date oldTime) { final long timeForPositionTransitionMillis; - boolean hasTimeJumped = oldTime != null - && Math.abs(oldTime.getTime() - newTime.getTime()) > 3 * timer.getRefreshInterval(); + boolean hasTimeJumped = oldTime != null && Math.abs(oldTime.getTime() - newTime.getTime()) > 3*timer.getRefreshInterval(); if (timer.getPlayState() == PlayStates.Playing && !hasTimeJumped) { // choose 130% of the refresh interval as transition period to make it unlikely that the transition // stops before the next update has been received - timeForPositionTransitionMillis = 1300 * timer.getRefreshInterval() / 1000; + timeForPositionTransitionMillis = 1300 * timer.getRefreshInterval() / 1000; } else { timeForPositionTransitionMillis = -1; // -1 means 'no transition } return timeForPositionTransitionMillis; } - + /** * @param updateTailsOnly * if false, tails of competitors not in competitorsToShow are removed from the @@ -1308,25 +1266,20 @@ public class RaceMap extends AbsolutePanel if (fixesAndTails.hasFixesFor(competitorDTO)) { Polyline tail = fixesAndTails.getTail(competitorDTO); if (tail == null) { - if (tailPreparer != null) { // could be we didn't receive boat position data for this - // competitor; then no tailPreparer will have been created + if (tailPreparer != null) { // could be we didn't receive boat position data for this competitor; then no tailPreparer will have been created tailPreparer.run(); // presumably a no-op, but you never know... } - tail = fixesAndTails.createTailAndUpdateIndices(competitorDTO, tailsFromTime, tailsToTime, - this); + tail = fixesAndTails.createTailAndUpdateIndices(competitorDTO, tailsFromTime, tailsToTime, this); } else { fixesAndTails.updateTail(tail, competitorDTO, tailsFromTime, tailsToTime, - (int) (timeForPositionTransitionMillis == -1 ? -1 - : timeForPositionTransitionMillis / 2), - tailPreparer); + (int) (timeForPositionTransitionMillis==-1?-1:timeForPositionTransitionMillis/2), tailPreparer); if (!updateTailsOnly) { competitorDTOsOfUnusedTails.remove(competitorDTO); } PolylineOptions newOptions = createTailStyle(competitorDTO, displayHighlighted(competitorDTO)); tail.setOptions(newOptions); } - boolean usedExistingBoatCanvas = updateBoatCanvasForCompetitor(competitorDTO, newTime, - timeForPositionTransitionMillis); + boolean usedExistingBoatCanvas = updateBoatCanvasForCompetitor(competitorDTO, newTime, timeForPositionTransitionMillis); if (usedExistingBoatCanvas && !updateTailsOnly) { competitorDTOsOfUnusedBoatCanvases.remove(competitorDTO); } @@ -1351,49 +1304,45 @@ public class RaceMap extends AbsolutePanel * necessary if greater distances are allowed. */ public LatLng calculatePositionAlongRhumbline(LatLng position, double bearingDeg, double distanceInKm) { - double distianceRad = distanceInKm / 6371.0; // r = 6371 means earth's radius in km + double distianceRad = distanceInKm / 6371.0; // r = 6371 means earth's radius in km double lat1 = position.getLatitude() / 180. * Math.PI; double lon1 = position.getLongitude() / 180. * Math.PI; double bearingRad = bearingDeg / 180. * Math.PI; - double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distianceRad) - + Math.cos(lat1) * Math.sin(distianceRad) * Math.cos(bearingRad)); - double lon2 = lon1 + Math.atan2(Math.sin(bearingRad) * Math.sin(distianceRad) * Math.cos(lat1), - Math.cos(distianceRad) - Math.sin(lat1) * Math.sin(lat2)); - lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI; // normalize to -180..+180� + double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distianceRad) + + Math.cos(lat1) * Math.sin(distianceRad) * Math.cos(bearingRad)); + double lon2 = lon1 + Math.atan2(Math.sin(bearingRad)*Math.sin(distianceRad)*Math.cos(lat1), + Math.cos(distianceRad)-Math.sin(lat1)*Math.sin(lat2)); + lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI; // normalize to -180..+180� // position is already in LatLng space, so no mapping through coordinateSystem is required here - return LatLng.newInstance(lat2 / Math.PI * 180., lon2 / Math.PI * 180.); + return LatLng.newInstance(lat2 / Math.PI * 180., lon2 / Math.PI * 180.); } - + /** - * Returns a pair whose first component is the leg number (one-based) of the competitor returned as the second - * component. + * Returns a pair whose first component is the leg number (one-based) of the competitor returned as the second component. */ private com.sap.sse.common.Util.Pair getFarthestAheadVisibleCompetitorWithOneBasedLegNumber( Iterable competitorsToShow) { CompetitorDTO leadingCompetitorDTO = null; int legOfLeaderCompetitor = -1; // this only works because the quickRanks are sorted - for (Entry competitorsByWindwardDistanceTraveledAndOneBasedLegNumber : competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber - .entrySet()) { - if (Util.contains(competitorsToShow, competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey()) - && competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue() != null) { + for (Entry competitorsByWindwardDistanceTraveledAndOneBasedLegNumber : + competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber.entrySet()) { + if (Util.contains(competitorsToShow, competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey()) && + competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue() != null) { leadingCompetitorDTO = competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getKey(); legOfLeaderCompetitor = competitorsByWindwardDistanceTraveledAndOneBasedLegNumber.getValue(); - return new com.sap.sse.common.Util.Pair(legOfLeaderCompetitor, - leadingCompetitorDTO); + return new com.sap.sse.common.Util.Pair(legOfLeaderCompetitor, leadingCompetitorDTO); } } return null; } - private void showAdvantageLine(Iterable competitorsToShow, Date date, - long timeForPositionTransitionMillis) { + private void showAdvantageLine(Iterable competitorsToShow, Date date, long timeForPositionTransitionMillis) { if (map != null && lastRaceTimesInfo != null && quickRanks != null && lastCombinedWindTrackInfoDTO != null) { boolean drawAdvantageLine = false; if (settings.getHelpLinesSettings().isVisible(HelpLineTypes.ADVANTAGELINE)) { // find competitor with highest rank - com.sap.sse.common.Util.Pair visibleLeaderInfo = getFarthestAheadVisibleCompetitorWithOneBasedLegNumber( - competitorsToShow); + com.sap.sse.common.Util.Pair visibleLeaderInfo = getFarthestAheadVisibleCompetitorWithOneBasedLegNumber(competitorsToShow); // the boat fix may be null; may mean that no positions were loaded yet for the leading visible boat; // don't show anything GPSFixDTO lastBoatFix = null; @@ -1401,7 +1350,8 @@ public class RaceMap extends AbsolutePanel boolean isLegTypeKnown = false; WindTrackInfoDTO windDataForLegMiddle = null; LegInfoDTO legInfoDTO = null; - if (visibleLeaderInfo != null && visibleLeaderInfo.getA() > 0 + if (visibleLeaderInfo != null + && visibleLeaderInfo.getA() > 0 && visibleLeaderInfo.getA() <= lastRaceTimesInfo.getLegInfos().size() // get wind at middle of leg for leading visible competitor && (windDataForLegMiddle = lastCombinedWindTrackInfoDTO @@ -1414,8 +1364,7 @@ public class RaceMap extends AbsolutePanel } lastBoatFix = getBoatFix(visibleLeaderInfo.getB(), date); } - if (isVisibleLeaderInfoComplete && isLegTypeKnown && lastBoatFix != null - && lastBoatFix.speedWithBearing != null) { + if (isVisibleLeaderInfoComplete && isLegTypeKnown && lastBoatFix != null && lastBoatFix.speedWithBearing != null) { double advantageLineLengthInKm = 1.0; // TODO this should probably rather scale with the visible // area of the map; bug 616 double distanceFromBoatPositionInKm = visibleLeaderInfo.getB().getBoatClass() @@ -1476,8 +1425,8 @@ public class RaceMap extends AbsolutePanel advantageLine.setMap(map); Hoverline advantageHoverline = new Hoverline(advantageLine, options, this); - advantageLineMouseOverHandler = new AdvantageLineMouseOverMapHandler(bearingOfCombinedWindInDeg, - new Date(windFix.measureTimepoint)); + advantageLineMouseOverHandler = new AdvantageLineMouseOverMapHandler( + bearingOfCombinedWindInDeg, new Date(windFix.measureTimepoint)); advantageLine.addMouseOverHandler(advantageLineMouseOverHandler); advantageHoverline.addMouseOutMoveHandler(new MouseOutMapHandler() { @Override @@ -1506,21 +1455,23 @@ public class RaceMap extends AbsolutePanel } } } - + private final StringBuilder windwardStartLineMarkToFirstMarkLineText = new StringBuilder(); private final StringBuilder leewardStartLineMarkToFirstMarkLineText = new StringBuilder(); - - private void showStartLineToFirstMarkTriangle(final CoursePositionsDTO courseDTO) { + + private void showStartLineToFirstMarkTriangle(final CoursePositionsDTO courseDTO){ final List startMarkPositions = courseDTO.getStartMarkPositions(); final Position windwardStartLinePosition = startMarkPositions.get(0); final Position leewardStartLinePosition = startMarkPositions.get(1); final Position firstMarkPosition = courseDTO.waypointPositions.get(1); windwardStartLineMarkToFirstMarkLineText.replace(0, windwardStartLineMarkToFirstMarkLineText.length(), stringMessages.startLineToFirstMarkTriangle(numberFormatOneDecimal - .format(windwardStartLinePosition.getDistance(firstMarkPosition).getMeters()))); + .format(windwardStartLinePosition.getDistance(firstMarkPosition) + .getMeters()))); leewardStartLineMarkToFirstMarkLineText.replace(0, leewardStartLineMarkToFirstMarkLineText.length(), stringMessages.startLineToFirstMarkTriangle(numberFormatOneDecimal - .format(leewardStartLinePosition.getDistance(firstMarkPosition).getMeters()))); + .format(leewardStartLinePosition.getDistance(firstMarkPosition) + .getMeters()))); final LineInfoProvider windwardStartLineMarkToFirstMarkLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { @@ -1533,16 +1484,16 @@ public class RaceMap extends AbsolutePanel return leewardStartLineMarkToFirstMarkLineText.toString(); } }; - windwardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine( - windwardStartLineMarkToFirstMarkLine, /* showLine */ + windwardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine(windwardStartLineMarkToFirstMarkLine, /* showLine */ (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINETOFIRSTMARKTRIANGLE)) && startMarkPositions.size() > 1 && courseDTO.waypointPositions.size() > 1, - windwardStartLinePosition, firstMarkPosition, windwardStartLineMarkToFirstMarkLineInfoProvider, "grey"); - leewardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine( - leewardStartLineMarkToFirstMarkLine, /* showLine */ + windwardStartLinePosition, firstMarkPosition, windwardStartLineMarkToFirstMarkLineInfoProvider, + "grey"); + leewardStartLineMarkToFirstMarkLine = showOrRemoveOrUpdateLine(leewardStartLineMarkToFirstMarkLine, /* showLine */ (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINETOFIRSTMARKTRIANGLE)) && startMarkPositions.size() > 1 && courseDTO.waypointPositions.size() > 1, - leewardStartLinePosition, firstMarkPosition, leewardStartLineMarkToFirstMarkLineInfoProvider, "grey"); + leewardStartLinePosition, firstMarkPosition, leewardStartLineMarkToFirstMarkLineInfoProvider, + "grey"); } private final StringBuilder startLineAdvantageText = new StringBuilder(); @@ -1550,133 +1501,112 @@ public class RaceMap extends AbsolutePanel final LineInfoProvider startLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { - return stringMessages.startLine() + startLineAdvantageText; + return stringMessages.startLine()+startLineAdvantageText; } }; final LineInfoProvider finishLineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { - return stringMessages.finishLine() + finishLineAdvantageText; + return stringMessages.finishLine()+finishLineAdvantageText; } }; private void showStartAndFinishAndCourseMiddleLines(final CoursePositionsDTO courseDTO) { - if (map != null && courseDTO != null && courseDTO.course != null && courseDTO.course.waypoints != null - && !courseDTO.course.waypoints.isEmpty()) { + if (map != null && courseDTO != null && courseDTO.course != null && courseDTO.course.waypoints != null && + !courseDTO.course.waypoints.isEmpty()) { // draw the start line final WaypointDTO startWaypoint = courseDTO.course.waypoints.get(0); updateCountdownCanvas(startWaypoint); - final int numberOfStartWaypointMarks = courseDTO.getStartMarkPositions() == null ? 0 - : courseDTO.getStartMarkPositions().size(); - final int numberOfFinishWaypointMarks = courseDTO.getFinishMarkPositions() == null ? 0 - : courseDTO.getFinishMarkPositions().size(); - final Position startLineLeftPosition = numberOfStartWaypointMarks == 0 ? null - : courseDTO.getStartMarkPositions().get(0); - final Position startLineRightPosition = numberOfStartWaypointMarks < 2 ? null - : courseDTO.getStartMarkPositions().get(1); + final int numberOfStartWaypointMarks = courseDTO.getStartMarkPositions() == null ? 0 : courseDTO.getStartMarkPositions().size(); + final int numberOfFinishWaypointMarks = courseDTO.getFinishMarkPositions() == null ? 0 : courseDTO.getFinishMarkPositions().size(); + final Position startLineLeftPosition = numberOfStartWaypointMarks == 0 ? null : courseDTO.getStartMarkPositions().get(0); + final Position startLineRightPosition = numberOfStartWaypointMarks < 2 ? null : courseDTO.getStartMarkPositions().get(1); if (courseDTO.startLineAngleToCombinedWind != null) { - startLineAdvantageText.replace(0, startLineAdvantageText.length(), - " " + stringMessages.lineAngleToWindAndAdvantage( - NumberFormat.getFormat("0.0").format(courseDTO.startLineLengthInMeters), - NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.startLineAngleToCombinedWind)), - courseDTO.startLineAdvantageousSide.name().charAt(0) - + courseDTO.startLineAdvantageousSide.name().substring(1).toLowerCase(), - NumberFormat.getFormat("0.0").format(courseDTO.startLineAdvantageInMeters))); + startLineAdvantageText.replace(0, startLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage( + NumberFormat.getFormat("0.0").format(courseDTO.startLineLengthInMeters), + NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.startLineAngleToCombinedWind)), + courseDTO.startLineAdvantageousSide.name().charAt(0)+courseDTO.startLineAdvantageousSide.name().substring(1).toLowerCase(), + NumberFormat.getFormat("0.0").format(courseDTO.startLineAdvantageInMeters))); } else { startLineAdvantageText.delete(0, startLineAdvantageText.length()); } - final boolean showStartLineBasedOnCurrentLeg = numberOfStartWaypointMarks == 2 - && courseDTO.currentLegNumber <= 1; - final boolean showFinishLineBasedOnCurrentLeg = numberOfFinishWaypointMarks == 2 - && courseDTO.currentLegNumber == courseDTO.totalLegsCount; + final boolean showStartLineBasedOnCurrentLeg = numberOfStartWaypointMarks == 2 && courseDTO.currentLegNumber <= 1; + final boolean showFinishLineBasedOnCurrentLeg = numberOfFinishWaypointMarks == 2 && courseDTO.currentLegNumber == courseDTO.totalLegsCount; // show the line when STARTLINE is selected and the current leg is around the start leg, - // or when COURSEGEOMETRY is selected and the finish line isn't equal and wouldn't be shown at the same time - // based on the current leg. - // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will not be - // displayed if + // or when COURSEGEOMETRY is selected and the finish line isn't equal and wouldn't be shown at the same time based on the current leg. + // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will not be displayed if // based on the race progress the finish line is to be preferred, so only the finish line will be shown. - final boolean reallyShowStartLine = (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINE) - && showStartLineBasedOnCurrentLeg) - || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) - && (!showFinishLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO))); + final boolean reallyShowStartLine = + (settings.getHelpLinesSettings().isVisible(HelpLineTypes.STARTLINE) && showStartLineBasedOnCurrentLeg) || + (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) && + (!showFinishLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO))); // show the line when FINISHLINE is selected and the current leg is the last leg, // or when COURSEGEOMETRY is selected and the start line isn't equal or the current leg is the last leg. - // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will be - // displayed unless + // With this, if COURSEGEOMETRY is selected and start and finish line are equal, the start line will be displayed unless // the finish line should take precedence based on race progress. - final boolean reallyShowFinishLine = showFinishLineBasedOnCurrentLeg - && (!showStartLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO)) - && (settings.getHelpLinesSettings().isVisible(HelpLineTypes.FINISHLINE) - && showFinishLineBasedOnCurrentLeg) - || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) - && (!startLineEqualsFinishLine(courseDTO) || showFinishLineBasedOnCurrentLeg)); - startLine = showOrRemoveOrUpdateLine(startLine, reallyShowStartLine, startLineLeftPosition, - startLineRightPosition, startLineInfoProvider, "#ffffff"); + final boolean reallyShowFinishLine = showFinishLineBasedOnCurrentLeg && + (!showStartLineBasedOnCurrentLeg || !startLineEqualsFinishLine(courseDTO)) && + (settings.getHelpLinesSettings().isVisible(HelpLineTypes.FINISHLINE) && showFinishLineBasedOnCurrentLeg) || + (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) && + (!startLineEqualsFinishLine(courseDTO) || showFinishLineBasedOnCurrentLeg)); + startLine = showOrRemoveOrUpdateLine(startLine, reallyShowStartLine, + startLineLeftPosition, startLineRightPosition, startLineInfoProvider, "#ffffff"); // draw the finish line - final Position finishLineLeftPosition = numberOfFinishWaypointMarks == 0 ? null - : courseDTO.getFinishMarkPositions().get(0); - final Position finishLineRightPosition = numberOfFinishWaypointMarks < 2 ? null - : courseDTO.getFinishMarkPositions().get(1); + final Position finishLineLeftPosition = numberOfFinishWaypointMarks == 0 ? null : courseDTO.getFinishMarkPositions().get(0); + final Position finishLineRightPosition = numberOfFinishWaypointMarks < 2 ? null : courseDTO.getFinishMarkPositions().get(1); if (courseDTO.finishLineAngleToCombinedWind != null) { - finishLineAdvantageText.replace(0, finishLineAdvantageText.length(), - " " + stringMessages.lineAngleToWindAndAdvantage( - NumberFormat.getFormat("0.0").format(courseDTO.finishLineLengthInMeters), - NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.finishLineAngleToCombinedWind)), - courseDTO.finishLineAdvantageousSide.name().charAt(0) - + courseDTO.finishLineAdvantageousSide.name().substring(1).toLowerCase(), - NumberFormat.getFormat("0.0").format(courseDTO.finishLineAdvantageInMeters))); + finishLineAdvantageText.replace(0, finishLineAdvantageText.length(), " "+stringMessages.lineAngleToWindAndAdvantage( + NumberFormat.getFormat("0.0").format(courseDTO.finishLineLengthInMeters), + NumberFormat.getFormat("0.0").format(Math.abs(courseDTO.finishLineAngleToCombinedWind)), + courseDTO.finishLineAdvantageousSide.name().charAt(0)+courseDTO.finishLineAdvantageousSide.name().substring(1).toLowerCase(), + NumberFormat.getFormat("0.0").format(courseDTO.finishLineAdvantageInMeters))); } else { finishLineAdvantageText.delete(0, finishLineAdvantageText.length()); } - finishLine = showOrRemoveOrUpdateLine(finishLine, reallyShowFinishLine, finishLineLeftPosition, - finishLineRightPosition, finishLineInfoProvider, "#000000"); + finishLine = showOrRemoveOrUpdateLine(finishLine, reallyShowFinishLine, + finishLineLeftPosition, finishLineRightPosition, finishLineInfoProvider, "#000000"); // the control point pairs for which we already decided whether or not // to show a course middle line for; values tell whether to show the line and for which zero-based // start waypoint index to do so; when for an equal control point pair multiple decisions with different // outcome are made, a decision to show the line overrules the decision to not show it (OR-semantics) final Map, Pair> keysAlreadyHandled = new HashMap<>(); - for (int zeroBasedIndexOfStartWaypoint = 0; zeroBasedIndexOfStartWaypoint < courseDTO.waypointPositions - .size() - 1; zeroBasedIndexOfStartWaypoint++) { + for (int zeroBasedIndexOfStartWaypoint = 0; zeroBasedIndexOfStartWaypoint key = getCourseMiddleLinesKey(courseDTO, zeroBasedIndexOfStartWaypoint); - boolean showCourseMiddleLine = keysAlreadyHandled.containsKey(key) && keysAlreadyHandled.get(key).getA() - || settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) - || (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEMIDDLELINE) - && courseDTO.currentLegNumber > 0 - && courseDTO.currentLegNumber - 1 == zeroBasedIndexOfStartWaypoint); + boolean showCourseMiddleLine = keysAlreadyHandled.containsKey(key) && keysAlreadyHandled.get(key).getA() || + settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY) || + (settings.getHelpLinesSettings().isVisible(HelpLineTypes.COURSEMIDDLELINE) + && courseDTO.currentLegNumber > 0 + && courseDTO.currentLegNumber-1 == zeroBasedIndexOfStartWaypoint); keysAlreadyHandled.put(key, new Pair<>(showCourseMiddleLine, zeroBasedIndexOfStartWaypoint)); } Set> keysToConsider = new HashSet<>(keysAlreadyHandled.keySet()); keysToConsider.addAll(courseMiddleLines.keySet()); for (final Set key : keysToConsider) { - final int zeroBasedIndexOfStartWaypoint = keysAlreadyHandled.containsKey(key) - ? keysAlreadyHandled.get(key).getB() : 0; // if not handled, the line will be removed, so the - // waypoint index doesn't matter + final int zeroBasedIndexOfStartWaypoint = keysAlreadyHandled.containsKey(key) ? + keysAlreadyHandled.get(key).getB() : 0; // if not handled, the line will be removed, so the waypoint index doesn't matter final Pair showLineAndZeroBasedIndexOfStartWaypoint = keysAlreadyHandled.get(key); - final boolean showCourseMiddleLine = showLineAndZeroBasedIndexOfStartWaypoint != null - && showLineAndZeroBasedIndexOfStartWaypoint.getA(); - courseMiddleLines.put(key, showOrRemoveCourseMiddleLine(courseDTO, courseMiddleLines.get(key), - zeroBasedIndexOfStartWaypoint, showCourseMiddleLine)); + final boolean showCourseMiddleLine = showLineAndZeroBasedIndexOfStartWaypoint != null && showLineAndZeroBasedIndexOfStartWaypoint.getA(); + courseMiddleLines.put(key, showOrRemoveCourseMiddleLine(courseDTO, courseMiddleLines.get(key), zeroBasedIndexOfStartWaypoint, showCourseMiddleLine)); } } } private boolean startLineEqualsFinishLine(CoursePositionsDTO courseDTO) { final List waypoints; - return courseDTO != null && courseDTO.course != null && (waypoints = courseDTO.course.waypoints) != null - && waypoints.get(0).controlPoint.equals(waypoints.get(waypoints.size() - 1).controlPoint); + return courseDTO != null && courseDTO.course != null && + (waypoints = courseDTO.course.waypoints) != null && + waypoints.get(0).controlPoint.equals(waypoints.get(waypoints.size()-1).controlPoint); } /** - * Given a zero-based index into courseDTO's {@link RaceCourseDTO#waypoints waypoints list} that - * denotes the start waypoint of the leg in question, returns a key that can be used for the - * {@link #courseMiddleLines} map, consisting of a set that holds the two {@link ControlPointDTO}s representing the - * start and finish control point of that leg. + * Given a zero-based index into courseDTO's {@link RaceCourseDTO#waypoints waypoints list} that denotes the start + * waypoint of the leg in question, returns a key that can be used for the {@link #courseMiddleLines} map, consisting of a set + * that holds the two {@link ControlPointDTO}s representing the start and finish control point of that leg. */ private Set getCourseMiddleLinesKey(final CoursePositionsDTO courseDTO, final int zeroBasedIndexOfStartWaypoint) { ControlPointDTO startControlPoint = courseDTO.course.waypoints.get(zeroBasedIndexOfStartWaypoint).controlPoint; - ControlPointDTO endControlPoint = courseDTO.course.waypoints - .get(zeroBasedIndexOfStartWaypoint + 1).controlPoint; + ControlPointDTO endControlPoint = courseDTO.course.waypoints.get(zeroBasedIndexOfStartWaypoint+1).controlPoint; final Set key = new HashSet<>(); key.add(startControlPoint); key.add(endControlPoint); @@ -1692,29 +1622,26 @@ public class RaceMap extends AbsolutePanel * @return null if the line is not shown; the polyline object representing the line being displayed * otherwise */ - private Polyline showOrRemoveCourseMiddleLine(final CoursePositionsDTO courseDTO, - Polyline lineToShowOrRemoveOrUpdate, final int zeroBasedIndexOfStartWaypoint, final boolean showLine) { + private Polyline showOrRemoveCourseMiddleLine(final CoursePositionsDTO courseDTO, Polyline lineToShowOrRemoveOrUpdate, + final int zeroBasedIndexOfStartWaypoint, final boolean showLine) { final Position position1DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint); - final Position position2DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint + 1); + final Position position2DTO = courseDTO.waypointPositions.get(zeroBasedIndexOfStartWaypoint+1); final LineInfoProvider lineInfoProvider = new LineInfoProvider() { @Override public String getLineInfo() { final StringBuilder sb = new StringBuilder(); sb.append(stringMessages.courseMiddleLine()); sb.append('\n'); - sb.append( - NumberFormat.getFormat("0").format(Math.abs(position1DTO.getDistance(position2DTO).getMeters())) - + stringMessages.metersUnit()); + sb.append(NumberFormat.getFormat("0").format( + Math.abs(position1DTO.getDistance(position2DTO).getMeters()))+stringMessages.metersUnit()); if (lastCombinedWindTrackInfoDTO != null) { - final WindTrackInfoDTO windTrackAtLegMiddle = lastCombinedWindTrackInfoDTO - .getCombinedWindOnLegMiddle(zeroBasedIndexOfStartWaypoint); - if (windTrackAtLegMiddle != null && windTrackAtLegMiddle.windFixes != null - && !windTrackAtLegMiddle.windFixes.isEmpty()) { + final WindTrackInfoDTO windTrackAtLegMiddle = lastCombinedWindTrackInfoDTO.getCombinedWindOnLegMiddle(zeroBasedIndexOfStartWaypoint); + if (windTrackAtLegMiddle != null && windTrackAtLegMiddle.windFixes != null && !windTrackAtLegMiddle.windFixes.isEmpty()) { WindDTO windAtLegMiddle = windTrackAtLegMiddle.windFixes.get(0); final double legBearingDeg = position1DTO.getBearingGreatCircle(position2DTO).getDegrees(); - final String diff = NumberFormat.getFormat("0.0") - .format(Math.min(Math.abs(windAtLegMiddle.dampenedTrueWindBearingDeg - legBearingDeg), - Math.abs(windAtLegMiddle.dampenedTrueWindFromDeg - legBearingDeg))); + final String diff = NumberFormat.getFormat("0.0").format( + Math.min(Math.abs(windAtLegMiddle.dampenedTrueWindBearingDeg-legBearingDeg), + Math.abs(windAtLegMiddle.dampenedTrueWindFromDeg-legBearingDeg))); sb.append(", "); sb.append(stringMessages.degreesToWind(diff)); } @@ -1722,14 +1649,13 @@ public class RaceMap extends AbsolutePanel return sb.toString(); } }; - return showOrRemoveOrUpdateLine(lineToShowOrRemoveOrUpdate, showLine, position1DTO, position2DTO, - lineInfoProvider, "#2268a0"); + return showOrRemoveOrUpdateLine(lineToShowOrRemoveOrUpdate, showLine, position1DTO, position2DTO, lineInfoProvider, "#2268a0"); } private interface LineInfoProvider { String getLineInfo(); } - + /** * @param showLine * tells whether or not to show the line; if the lineToShowOrRemoveOrUpdate references a @@ -1740,8 +1666,7 @@ public class RaceMap extends AbsolutePanel * otherwise */ private Polyline showOrRemoveOrUpdateLine(Polyline lineToShowOrRemoveOrUpdate, final boolean showLine, - final Position position1DTO, final Position position2DTO, final LineInfoProvider lineInfoProvider, - String lineColorRGB) { + final Position position1DTO, final Position position2DTO, final LineInfoProvider lineInfoProvider, String lineColorRGB) { if (showLine) { LatLng courseMiddleLinePoint1 = coordinateSystem.toLatLng(position1DTO); LatLng courseMiddleLinePoint2 = coordinateSystem.toLatLng(position2DTO); @@ -1757,8 +1682,7 @@ public class RaceMap extends AbsolutePanel lineToShowOrRemoveOrUpdate = Polyline.newInstance(options); lineToShowOrRemoveOrUpdate.setPath(pointsAsArray); lineToShowOrRemoveOrUpdate.setMap(map); - Hoverline lineToShowOrRemoveOrUpdateHoverline = new Hoverline(lineToShowOrRemoveOrUpdate, options, - this); + Hoverline lineToShowOrRemoveOrUpdateHoverline = new Hoverline(lineToShowOrRemoveOrUpdate, options, this); lineToShowOrRemoveOrUpdate.addMouseOverHandler(new MouseOverMapHandler() { @Override public void onEvent(MouseOverMapEvent event) { @@ -1790,8 +1714,7 @@ public class RaceMap extends AbsolutePanel } private void adjustInfoOverlayForRemovedLine(Polyline lineToShowOrRemoveOrUpdate) { - SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry - .remove(lineToShowOrRemoveOrUpdate); + SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); if (infoOverlay != null) { infoOverlay.removeFromMap(); } @@ -1802,10 +1725,9 @@ public class RaceMap extends AbsolutePanel SmallTransparentInfoOverlay infoOverlay = infoOverlaysForLinesForCourseGeometry.get(lineToShowOrRemoveOrUpdate); if (getSettings().getHelpLinesSettings().isVisible(HelpLineTypes.COURSEGEOMETRY)) { if (infoOverlay == null) { - infoOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, - lineInfoProvider.getLineInfo(), coordinateSystem); + infoOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, lineInfoProvider.getLineInfo(), coordinateSystem); infoOverlaysForLinesForCourseGeometry.put(lineToShowOrRemoveOrUpdate, infoOverlay); - infoOverlay.addToMap(); + infoOverlay.addToMap(); } else { infoOverlay.setInfoText(lineInfoProvider.getLineInfo()); } @@ -1814,29 +1736,28 @@ public class RaceMap extends AbsolutePanel infoOverlay.draw(); } else { if (infoOverlay != null) { - infoOverlay.removeFromMap(); - infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); + infoOverlay.removeFromMap(); + infoOverlaysForLinesForCourseGeometry.remove(lineToShowOrRemoveOrUpdate); } } } - + /** - * If, according to {@link #lastRaceTimesInfo} and {@link #timer} the race is still in the pre-start phase, show a - * {@link SmallTransparentInfoOverlay} at the start line that shows the count down. + * If, according to {@link #lastRaceTimesInfo} and {@link #timer} the race is + * still in the pre-start phase, show a {@link SmallTransparentInfoOverlay} at the + * start line that shows the count down. */ private void updateCountdownCanvas(WaypointDTO startWaypoint) { - if (!settings.isShowSelectedCompetitorsInfo() || startWaypoint == null - || Util.isEmpty(startWaypoint.controlPoint.getMarks()) || lastRaceTimesInfo == null - || lastRaceTimesInfo.startOfRace == null || timer.getTime().after(lastRaceTimesInfo.startOfRace)) { + if (!settings.isShowSelectedCompetitorsInfo() || startWaypoint == null || Util.isEmpty(startWaypoint.controlPoint.getMarks()) + || lastRaceTimesInfo == null || lastRaceTimesInfo.startOfRace == null || timer.getTime().after(lastRaceTimesInfo.startOfRace)) { if (countDownOverlay != null) { countDownOverlay.removeFromMap(); countDownOverlay = null; } } else { long timeToStartInMs = lastRaceTimesInfo.startOfRace.getTime() - timer.getTime().getTime(); - String countDownText = timeToStartInMs > 1000 - ? stringMessages.timeToStart(DateAndTimeFormatterUtil.formatElapsedTime(timeToStartInMs)) - : stringMessages.start(); + String countDownText = timeToStartInMs > 1000 ? stringMessages.timeToStart(DateAndTimeFormatterUtil + .formatElapsedTime(timeToStartInMs)) : stringMessages.start(); if (countDownOverlay == null) { countDownOverlay = new SmallTransparentInfoOverlay(map, RaceMapOverlaysZIndexes.INFO_OVERLAY_ZINDEX, countDownText, coordinateSystem); @@ -1844,8 +1765,7 @@ public class RaceMap extends AbsolutePanel } else { countDownOverlay.setInfoText(countDownText); } - countDownOverlay.setPosition(startWaypoint.controlPoint.getMarks().iterator().next().position, - /* transition time */ -1); + countDownOverlay.setPosition(startWaypoint.controlPoint.getMarks().iterator().next().position, /* transition time */ -1); countDownOverlay.draw(); } } @@ -1864,8 +1784,7 @@ public class RaceMap extends AbsolutePanel int MAX_ZOOM = 20; // maximum zoom-level that should be automatically selected double LOG2 = Math.log(2.0); double deltaLng = bounds.getNorthEast().getLongitude() - bounds.getSouthWest().getLongitude(); - double deltaLat = getMercatorLatitude(bounds.getNorthEast().getLatitude()) - - getMercatorLatitude(bounds.getSouthWest().getLatitude()); + double deltaLat = getMercatorLatitude(bounds.getNorthEast().getLatitude()) - getMercatorLatitude(bounds.getSouthWest().getLatitude()); if ((deltaLng == 0) && (deltaLat == 0)) { return MAX_ZOOM; } @@ -1873,27 +1792,27 @@ public class RaceMap extends AbsolutePanel deltaLng += 360; } int zoomLng = (int) Math.floor(Math.log(map.getDiv().getClientWidth() * 360 / deltaLng / GLOBE_PXSIZE) / LOG2); - int zoomLat = (int) Math - .floor(Math.log(map.getDiv().getClientHeight() * 2 * Math.PI / deltaLat / GLOBE_PXSIZE) / LOG2); + int zoomLat = (int) Math.floor(Math.log(map.getDiv().getClientHeight() * 2 * Math.PI / deltaLat / GLOBE_PXSIZE) / LOG2); return Math.min(Math.min(zoomLat, zoomLng), MAX_ZOOM); } - + private void zoomMapToNewBounds(LatLngBounds newBounds) { if (newBounds != null) { LatLngBounds currentMapBounds; - if (map.getBounds() == null || !BoundsUtil.contains((currentMapBounds = map.getBounds()), newBounds) + if (map.getBounds() == null + || !BoundsUtil.contains((currentMapBounds = map.getBounds()), newBounds) || graticuleAreaRatio(currentMapBounds, newBounds) > 10) { // only change bounds if the new bounds don't fit into the current map zoom Iterable oldZoomSettings = settings.getZoomSettings().getTypesToConsiderOnZoom(); setAutoZoomInProgress(true); autoZoomLatLngBounds = newBounds; - int newZoomLevel = getZoomLevel(autoZoomLatLngBounds); + int newZoomLevel = getZoomLevel(autoZoomLatLngBounds); if (newZoomLevel != map.getZoom()) { // distinguish between zoom-in and zoom-out, because the sequence of panTo() and setZoom() // appears different on the screen due to map-animations // following sequences keep the selected boats allways visible: - // zoom-in : 1. panTo(), 2. setZoom() - // zoom-out: 1. setZoom(), 2. panTo() + // zoom-in : 1. panTo(), 2. setZoom() + // zoom-out: 1. setZoom(), 2. panTo() autoZoomIn = newZoomLevel > map.getZoom(); autoZoomOut = !autoZoomIn; autoZoomLevel = newZoomLevel; @@ -1911,7 +1830,7 @@ public class RaceMap extends AbsolutePanel } } } - + private double graticuleAreaRatio(LatLngBounds containing, LatLngBounds contained) { assert BoundsUtil.contains(containing, contained); double containingAreaRatio = getGraticuleArea(containing) / getGraticuleArea(contained); @@ -1919,36 +1838,32 @@ public class RaceMap extends AbsolutePanel } /** - * A much simplified "area" calculation for a {@link Bounds} object, multiplying the differences in latitude and - * longitude degrees. The result therefore is in the order of magnitude of 60*60 square nautical miles. + * A much simplified "area" calculation for a {@link Bounds} object, multiplying the differences in latitude and longitude degrees. + * The result therefore is in the order of magnitude of 60*60 square nautical miles. */ private double getGraticuleArea(LatLngBounds bounds) { - return ((BoundsUtil.isCrossesDateLine(bounds) ? bounds.getNorthEast().getLongitude() + 360 - : bounds.getNorthEast().getLongitude()) - bounds.getSouthWest().getLongitude()) - * (bounds.getNorthEast().getLatitude() - bounds.getSouthWest().getLatitude()); + return ((BoundsUtil.isCrossesDateLine(bounds) ? bounds.getNorthEast().getLongitude()+360 : bounds.getNorthEast().getLongitude())-bounds.getSouthWest().getLongitude()) * + (bounds.getNorthEast().getLatitude() - bounds.getSouthWest().getLatitude()); } private void setAutoZoomInProgress(boolean autoZoomInProgress) { this.autoZoomInProgress = autoZoomInProgress; } - + boolean isAutoZoomInProgress() { return autoZoomInProgress; } - + /** - * @param timeForPositionTransitionMillis - * use -1 to not animate the position transition, e.g., during map zoom or non-play + * @param timeForPositionTransitionMillis use -1 to not animate the position transition, e.g., during map zoom or non-play */ - private boolean updateBoatCanvasForCompetitor(CompetitorDTO competitorDTO, Date date, - long timeForPositionTransitionMillis) { + private boolean updateBoatCanvasForCompetitor(CompetitorDTO competitorDTO, Date date, long timeForPositionTransitionMillis) { boolean usedExistingCanvas = false; GPSFixDTO lastBoatFix = getBoatFix(competitorDTO, date); if (lastBoatFix != null) { BoatOverlay boatOverlay = boatOverlays.get(competitorDTO); if (boatOverlay == null) { - boatOverlay = createBoatOverlay(RaceMapOverlaysZIndexes.BOATS_ZINDEX, competitorDTO, - displayHighlighted(competitorDTO)); + boatOverlay = createBoatOverlay(RaceMapOverlaysZIndexes.BOATS_ZINDEX, competitorDTO, displayHighlighted(competitorDTO)); boatOverlays.put(competitorDTO, boatOverlay); boatOverlay.setSelected(displayHighlighted(competitorDTO)); boatOverlay.setBoatFix(lastBoatFix, timeForPositionTransitionMillis); @@ -1981,15 +1896,12 @@ public class RaceMap extends AbsolutePanel } private CompetitorInfoOverlay createCompetitorInfoOverlay(int zIndex, final CompetitorDTO competitorDTO) { - String infoText = competitorDTO.getSailID() == null || competitorDTO.getSailID().isEmpty() - ? competitorDTO.getName() : competitorDTO.getSailID(); - return new CompetitorInfoOverlay(map, zIndex, competitorSelection.getColor(competitorDTO, raceIdentifier), - infoText, coordinateSystem); + String infoText = competitorDTO.getSailID() == null || competitorDTO.getSailID().isEmpty() ? competitorDTO.getName() : competitorDTO.getSailID(); + return new CompetitorInfoOverlay(map, zIndex, competitorSelection.getColor(competitorDTO, raceIdentifier), infoText, coordinateSystem); } - + private BoatOverlay createBoatOverlay(int zIndex, final CompetitorDTO competitorDTO, boolean highlighted) { - final BoatOverlay boatCanvas = new BoatOverlay(map, zIndex, competitorDTO, - competitorSelection.getColor(competitorDTO, raceIdentifier), coordinateSystem); + final BoatOverlay boatCanvas = new BoatOverlay(map, zIndex, competitorDTO, competitorSelection.getColor(competitorDTO, raceIdentifier), coordinateSystem); boatCanvas.setSelected(highlighted); boatCanvas.addClickHandler(new ClickMapHandler() { @Override @@ -2024,10 +1936,8 @@ public class RaceMap extends AbsolutePanel return boatCanvas; } - protected WindSensorOverlay createWindSensorOverlay(int zIndex, final WindSource windSource, - final WindTrackInfoDTO windTrackInfoDTO) { - final WindSensorOverlay windSensorOverlay = new WindSensorOverlay(map, zIndex, raceMapImageManager, - stringMessages, coordinateSystem); + protected WindSensorOverlay createWindSensorOverlay(int zIndex, final WindSource windSource, final WindTrackInfoDTO windTrackInfoDTO) { + final WindSensorOverlay windSensorOverlay = new WindSensorOverlay(map, zIndex, raceMapImageManager, stringMessages, coordinateSystem); windSensorOverlay.setWindInfo(windTrackInfoDTO, windSource); windSensorOverlay.addClickHandler(new ClickMapHandler() { @Override @@ -2039,7 +1949,7 @@ public class RaceMap extends AbsolutePanel } private void showMarkInfoWindow(MarkDTO markDTO, LatLng position) { - if (lastInfoWindow != null) { + if(lastInfoWindow != null) { lastInfoWindow.close(); } InfoWindowOptions options = InfoWindowOptions.newInstance(); @@ -2051,7 +1961,7 @@ public class RaceMap extends AbsolutePanel } private void showCompetitorInfoWindow(final CompetitorDTO competitorDTO, LatLng where) { - if (lastInfoWindow != null) { + if(lastInfoWindow != null) { lastInfoWindow.close(); } GPSFixDTO latestFixForCompetitor = getBoatFix(competitorDTO, timer.getTime()); @@ -2069,13 +1979,13 @@ public class RaceMap extends AbsolutePanel String result = numberFormat.format(lat) + " lat, " + numberFormat.format(lng) + " lng"; return result; } - + private void showWindSensorInfoWindow(final WindSensorOverlay windSensorOverlay) { - WindSource windSource = windSensorOverlay.getWindSource(); - WindTrackInfoDTO windTrackInfoDTO = windSensorOverlay.getWindTrackInfoDTO(); + WindSource windSource = windSensorOverlay.getWindSource(); + WindTrackInfoDTO windTrackInfoDTO = windSensorOverlay.getWindTrackInfoDTO(); WindDTO windDTO = windTrackInfoDTO.windFixes.get(0); - if (windDTO != null && windDTO.position != null) { - if (lastInfoWindow != null) { + if(windDTO != null && windDTO.position != null) { + if(lastInfoWindow != null) { lastInfoWindow.close(); } LatLng where = coordinateSystem.toLatLng(windDTO.position); @@ -2089,7 +1999,7 @@ public class RaceMap extends AbsolutePanel } private Widget createInfoWindowLabelAndValue(String labelName, String value) { - FlowPanel flowPanel = new FlowPanel(); + FlowPanel flowPanel = new FlowPanel(); Label label = new Label(labelName + ":"); label.setWordWrap(false); label.getElement().getStyle().setFloat(Style.Float.LEFT); @@ -2105,16 +2015,15 @@ public class RaceMap extends AbsolutePanel return flowPanel; } - + private Widget getInfoWindowContent(MarkDTO markDTO) { VerticalPanel vPanel = new VerticalPanel(); vPanel.add(createInfoWindowLabelAndValue(stringMessages.mark(), markDTO.getName())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), - formatPosition(markDTO.position.getLatDeg(), markDTO.position.getLngDeg()))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), formatPosition(markDTO.position.getLatDeg(), markDTO.position.getLngDeg()))); return vPanel; } - - private Widget getInfoWindowContent(ManeuverDTO maneuver) { + + public Widget getInfoWindowContent(ManeuverDTO maneuver) { SpeedWithBearingDTO before = maneuver.speedWithBearingBefore; SpeedWithBearingDTO after = maneuver.speedWithBearingAfter; VerticalPanel vPanel = new VerticalPanel(); @@ -2139,14 +2048,10 @@ public class RaceMap extends AbsolutePanel WindDTO windDTO = windTrackInfoDTO.windFixes.get(0); NumberFormat numberFormat = NumberFormat.getFormat("0.0"); VerticalPanel vPanel = new VerticalPanel(); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSource(), - WindSourceTypeFormatter.format(windSource, stringMessages))); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.wind(), - Math.round(windDTO.dampenedTrueWindFromDeg) + " " + stringMessages.degreesShort())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSpeed(), - numberFormat.format(windDTO.dampenedTrueWindSpeedInKnots))); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), - formatPosition(windDTO.position.getLatDeg(), windDTO.position.getLngDeg()))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSource(), WindSourceTypeFormatter.format(windSource, stringMessages))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.wind(), Math.round(windDTO.dampenedTrueWindFromDeg) + " " + stringMessages.degreesShort())); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.windSpeed(), numberFormat.format(windDTO.dampenedTrueWindSpeedInKnots))); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.position(), formatPosition(windDTO.position.getLatDeg(), windDTO.position.getLngDeg()))); return vPanel; } @@ -2171,10 +2076,8 @@ public class RaceMap extends AbsolutePanel speedWithBearing = new SpeedWithBearingDTO(0, 0); } vPanel.add(createInfoWindowLabelAndValue(stringMessages.speed(), - NumberFormatterFactory.getDecimalFormat(1).format(speedWithBearing.speedInKnots) + " " - + stringMessages.knotsUnit())); - vPanel.add(createInfoWindowLabelAndValue(stringMessages.bearing(), - (int) speedWithBearing.bearingInDegrees + " " + stringMessages.degreesShort())); + NumberFormatterFactory.getDecimalFormat(1).format(speedWithBearing.speedInKnots) + " "+stringMessages.knotsUnit())); + vPanel.add(createInfoWindowLabelAndValue(stringMessages.bearing(), (int) speedWithBearing.bearingInDegrees + " "+stringMessages.degreesShort())); if (lastFix.degreesBoatToTheWind != null) { vPanel.add(createInfoWindowLabelAndValue(stringMessages.degreesBoatToTheWind(), (int) Math.abs(lastFix.degreesBoatToTheWind) + " " + stringMessages.degreesShort())); @@ -2183,16 +2086,14 @@ public class RaceMap extends AbsolutePanel RegattaAndRaceIdentifier race = raceIdentifier; if (race != null) { Map from = new HashMap(); - from.put(competitorDTO, fixesAndTails.getFixes(competitorDTO) - .get(fixesAndTails.getFirstShownFix(competitorDTO)).timepoint); + from.put(competitorDTO, fixesAndTails.getFixes(competitorDTO).get(fixesAndTails.getFirstShownFix(competitorDTO)).timepoint); Map to = new HashMap(); to.put(competitorDTO, getBoatFix(competitorDTO, timer.getTime()).timepoint); sailingService.getDouglasPoints(race, from, to, 3, new AsyncCallback>>() { @Override public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining douglas positions: " + caught.getMessage(), - true /* silentMode */); + errorReporter.reportError("Error obtaining douglas positions: " + caught.getMessage(), true /*silentMode */); } @Override @@ -2208,24 +2109,24 @@ public class RaceMap extends AbsolutePanel } } }); - sailingService.getManeuvers(race, from, to, new AsyncCallback>>() { - @Override - public void onFailure(Throwable caught) { - errorReporter.reportError("Error obtaining maneuvers: " + caught.getMessage(), - true /* silentMode */); - } + sailingService.getManeuvers(race, from, to, + new AsyncCallback>>() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError("Error obtaining maneuvers: " + caught.getMessage(), true /*silentMode */); + } - @Override - public void onSuccess(Map> result) { - lastManeuverResult = result; - if (maneuverMarkers != null) { - removeAllManeuverMarkers(); - } - if (!(timer.getPlayState() == PlayStates.Playing)) { - showManeuvers(result); - } - } - }); + @Override + public void onSuccess(Map> result) { + lastManeuverResult = result; + if (maneuverMarkers != null) { + removeAllManeuverMarkers(); + } + if (!(timer.getPlayState() == PlayStates.Playing)) { + showManeuvers(result); + } + } + }); } } @@ -2235,34 +2136,31 @@ public class RaceMap extends AbsolutePanel /** * @return the {@link CompetitorSelectionProvider#getSelectedCompetitors()} if * {@link RaceMapSettings#isShowOnlySelectedCompetitors() only selected competitors are to be shown}, the - * {@link CompetitorSelectionProvider#getFilteredCompetitors() filtered competitors} otherwise. In both - * cases, if we have {@link RaceCompetitorSet information about the competitors participating} in this map's - * race, the result set is reduced to those, no matter if other regatta participants would otherwise have - * been in the result set + * {@link CompetitorSelectionProvider#getFilteredCompetitors() filtered competitors} otherwise. In both cases, + * if we have {@link RaceCompetitorSet information about the competitors participating} in this map's race, + * the result set is reduced to those, no matter if other regatta participants would otherwise have been in + * the result set */ private Iterable getCompetitorsToShow() { final Set result = new HashSet<>(); Iterable selection = competitorSelection.getSelectedCompetitors(); - final Set raceCompetitorIdsAsString = raceCompetitorSet - .getIdsOfCompetitorsParticipatingInRaceAsStrings(); + final Set raceCompetitorIdsAsString = raceCompetitorSet.getIdsOfCompetitorsParticipatingInRaceAsStrings(); if (!settings.isShowOnlySelectedCompetitors() || Util.isEmpty(selection)) { for (final CompetitorDTO filteredCompetitor : competitorSelection.getFilteredCompetitors()) { - if (raceCompetitorIdsAsString == null - || raceCompetitorIdsAsString.contains(filteredCompetitor.getIdAsString())) { + if (raceCompetitorIdsAsString == null || raceCompetitorIdsAsString.contains(filteredCompetitor.getIdAsString())) { result.add(filteredCompetitor); } } } else { for (final CompetitorDTO selectedCompetitor : selection) { - if (raceCompetitorIdsAsString == null - || raceCompetitorIdsAsString.contains(selectedCompetitor.getIdAsString())) { + if (raceCompetitorIdsAsString == null || raceCompetitorIdsAsString.contains(selectedCompetitor.getIdAsString())) { result.add(selectedCompetitor); } } } return result; } - + protected void removeAllMarkDouglasPeuckerpoints() { if (douglasMarkers != null) { for (Marker marker : douglasMarkers) { @@ -2292,7 +2190,7 @@ public class RaceMap extends AbsolutePanel for (GPSFixDTO fix : gpsFix) { LatLng latLng = coordinateSystem.toLatLng(fix.position); MarkerOptions options = MarkerOptions.newInstance(); - options.setTitle(fix.timepoint + ": " + fix.position + ", " + fix.speedWithBearing.toString()); + options.setTitle(fix.timepoint+": "+fix.position+", "+fix.speedWithBearing.toString()); Marker marker = Marker.newInstance(options); marker.setPosition(latLng); douglasMarkers.add(marker); @@ -2310,40 +2208,29 @@ public class RaceMap extends AbsolutePanel while (iter.hasNext()) { CompetitorDTO competitorDTO = iter.next(); List maneuversForCompetitor = maneuvers.get(competitorDTO); - for (final ManeuverDTO maneuver : maneuversForCompetitor) { + for (ManeuverDTO maneuver : maneuversForCompetitor) { if (settings.isShowManeuverType(maneuver.type)) { - LatLng latLng = coordinateSystem.toLatLng(maneuver.position); - Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack - .get(new com.sap.sse.common.Util.Pair(maneuver.type, - ManeuverColor.getManeuverColor(maneuver))); - MarkerOptions options = MarkerOptions.newInstance(); - options.setIcon(maneuverMarker.getIcon_MarkerImage()); - Marker marker = Marker.newInstance(options); - marker.setPosition(latLng); - marker.setTitle(ManeuverTypeFormatter.format(maneuver.type, stringMessages)); - marker.addClickHandler(new ClickMapHandler() { - @Override - public void onEvent(ClickMapEvent event) { - if (lastInfoWindow != null) { - lastInfoWindow.close(); - } - LatLng where = coordinateSystem.toLatLng(maneuver.position); - InfoWindowOptions options = InfoWindowOptions.newInstance(); - InfoWindow infoWindow = InfoWindow.newInstance(options); - infoWindow.setContent(getInfoWindowContent(maneuver)); - infoWindow.setPosition(where); - lastInfoWindow = infoWindow; - infoWindow.open(map); - } - }); - maneuverMarkers.add(marker); - marker.setMap(map); + createAndAddMarkerOfManeuver(maneuver); } } } } } + private void createAndAddMarkerOfManeuver(ManeuverDTO maneuver) { + LatLng latLng = coordinateSystem.toLatLng(maneuver.position); + Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack + .get(new Pair(maneuver.type, ManeuverColor.getManeuverColor(maneuver))); + MarkerOptions options = MarkerOptions.newInstance(); + options.setIcon(maneuverMarker.getIcon_MarkerImage()); + Marker marker = Marker.newInstance(options); + marker.setPosition(latLng); + marker.setTitle(ManeuverTypeFormatter.format(maneuver.type, stringMessages)); + marker.addClickHandler(new ManeuverMarkerClickedListener(this, maneuver)); + maneuverMarkers.add(marker); + marker.setMap(map); + } + /** * @param date * the point in time for which to determine the competitor's boat position; approximated by using the fix @@ -2356,43 +2243,37 @@ public class RaceMap extends AbsolutePanel GPSFixDTO result = null; List competitorFixes = fixesAndTails.getFixes(competitorDTO); if (competitorFixes != null && !competitorFixes.isEmpty()) { - int i = Collections.binarySearch(competitorFixes, - new GPSFixDTO(date, null, null, (WindDTO) null, null, null, false), new Comparator() { - @Override - public int compare(GPSFixDTO o1, GPSFixDTO o2) { - return o1.timepoint.compareTo(o2.timepoint); - } - }); - if (i < 0) { - i = -i - 1; // no perfect match; i is now the insertion point + int i = Collections.binarySearch(competitorFixes, new GPSFixDTO(date, null, null, (WindDTO) null, null, null, false), + new Comparator() { + @Override + public int compare(GPSFixDTO o1, GPSFixDTO o2) { + return o1.timepoint.compareTo(o2.timepoint); + } + }); + if (i<0) { + i = -i-1; // no perfect match; i is now the insertion point // if the insertion point is at the end, use last fix if (i >= competitorFixes.size()) { - result = competitorFixes.get(competitorFixes.size() - 1); + result = competitorFixes.get(competitorFixes.size()-1); } else if (i == 0) { // if the insertion point is at the beginning, use first fix result = competitorFixes.get(0); } else { - // competitorFixes must have at least two elements, and i points neither to the end nor the - // beginning; + // competitorFixes must have at least two elements, and i points neither to the end nor the beginning; // get the fix from i and i+1 whose timepoint is closer to date - final GPSFixDTO fixBefore = competitorFixes.get(i - 1); + final GPSFixDTO fixBefore = competitorFixes.get(i-1); final GPSFixDTO fixAfter = competitorFixes.get(i); final GPSFixDTO closer; - if (date.getTime() - fixBefore.timepoint.getTime() < fixAfter.timepoint.getTime() - - date.getTime()) { + if (date.getTime() - fixBefore.timepoint.getTime() < fixAfter.timepoint.getTime() - date.getTime()) { closer = fixBefore; } else { closer = fixAfter; } // now compute a weighted average depending on the time difference to "date" (see also bug 1924) - double factorForAfter = (double) (date.getTime() - fixBefore.timepoint.getTime()) - / (double) (fixAfter.timepoint.getTime() - fixBefore.timepoint.getTime()); - double factorForBefore = 1 - factorForAfter; - DegreePosition betweenPosition = new DegreePosition( - factorForBefore * fixBefore.position.getLatDeg() - + factorForAfter * fixAfter.position.getLatDeg(), - factorForBefore * fixBefore.position.getLngDeg() - + factorForAfter * fixAfter.position.getLngDeg()); + double factorForAfter = (double) (date.getTime()-fixBefore.timepoint.getTime()) / (double) (fixAfter.timepoint.getTime() - fixBefore.timepoint.getTime()); + double factorForBefore = 1-factorForAfter; + DegreePosition betweenPosition = new DegreePosition(factorForBefore*fixBefore.position.getLatDeg() + factorForAfter*fixAfter.position.getLatDeg(), + factorForBefore*fixBefore.position.getLngDeg() + factorForAfter*fixAfter.position.getLngDeg()); final double betweenBearing; if (fixBefore.speedWithBearing == null) { if (fixAfter.speedWithBearing == null) { @@ -2403,18 +2284,13 @@ public class RaceMap extends AbsolutePanel } else if (fixAfter.speedWithBearing == null) { betweenBearing = fixBefore.speedWithBearing.bearingInDegrees; } else { - betweenBearing = new ScalableBearing( - new DegreeBearingImpl(fixBefore.speedWithBearing.bearingInDegrees)) - .multiply(factorForBefore) - .add(new ScalableBearing( - new DegreeBearingImpl(fixAfter.speedWithBearing.bearingInDegrees)) - .multiply(factorForAfter)) - .divide(1).getDegrees(); + betweenBearing = new ScalableBearing(new DegreeBearingImpl(fixBefore.speedWithBearing.bearingInDegrees)). + multiply(factorForBefore).add(new ScalableBearing(new DegreeBearingImpl(fixAfter.speedWithBearing.bearingInDegrees)). + multiply(factorForAfter)).divide(1).getDegrees(); } - SpeedWithBearingDTO betweenSpeed = new SpeedWithBearingDTO(factorForBefore - * (fixBefore.speedWithBearing == null ? 0 : fixBefore.speedWithBearing.speedInKnots) - + factorForAfter - * (fixAfter.speedWithBearing == null ? 0 : fixAfter.speedWithBearing.speedInKnots), + SpeedWithBearingDTO betweenSpeed = new SpeedWithBearingDTO( + factorForBefore*(fixBefore.speedWithBearing==null?0:fixBefore.speedWithBearing.speedInKnots) + + factorForAfter*(fixAfter.speedWithBearing==null?0:fixAfter.speedWithBearing.speedInKnots), betweenBearing); result = new GPSFixDTO(date, betweenPosition, betweenSpeed, closer.degreesBoatToTheWind, closer.tack, closer.legType, fixBefore.extrapolated || fixAfter.extrapolated); @@ -2470,8 +2346,7 @@ public class RaceMap extends AbsolutePanel for (CompetitorDTO oneOfAllCompetitors : competitorSelection.getAllCompetitors()) { Polyline tail = fixesAndTails.getTail(oneOfAllCompetitors); if (tail != null) { - PolylineOptions newOptions = createTailStyle(oneOfAllCompetitors, - displayHighlighted(oneOfAllCompetitors)); + PolylineOptions newOptions = createTailStyle(oneOfAllCompetitors, displayHighlighted(oneOfAllCompetitors)); tail.setOptions(newOptions); } } @@ -2481,7 +2356,7 @@ public class RaceMap extends AbsolutePanel zoomMapToNewBounds(zoomSettings.getNewBounds(this)); } } - + @Override public void removedFromSelection(CompetitorDTO competitor) { if (isShowAnyHelperLines()) { @@ -2513,7 +2388,7 @@ public class RaceMap extends AbsolutePanel showCompetitorInfoOnMap(timer.getTime(), -1, competitorSelection.getSelectedFilteredCompetitors()); } } - // Trigger auto-zoom if needed + //Trigger auto-zoom if needed RaceMapZoomSettings zoomSettings = settings.getZoomSettings(); if (!zoomSettings.containsZoomType(ZoomTypes.NONE) && zoomSettings.isZoomToSelectedCompetitors()) { zoomMapToNewBounds(zoomSettings.getNewBounds(this)); @@ -2561,8 +2436,7 @@ public class RaceMap extends AbsolutePanel } } if (newSettings.isShowDouglasPeuckerPoints() != settings.isShowDouglasPeuckerPoints()) { - if (!(timer.getPlayState() == PlayStates.Playing) && lastDouglasPeuckerResult != null - && newSettings.isShowDouglasPeuckerPoints()) { + if (!(timer.getPlayState() == PlayStates.Playing) && lastDouglasPeuckerResult != null && newSettings.isShowDouglasPeuckerPoints()) { settings.setShowDouglasPeuckerPoints(true); removeAllMarkDouglasPeuckerpoints(); showMarkDouglasPeuckerPoints(lastDouglasPeuckerResult); @@ -2588,7 +2462,7 @@ public class RaceMap extends AbsolutePanel requiredRedraw = true; } if (!newSettings.getZoomSettings().equals(settings.getZoomSettings())) { - settings.setZoomSettings(newSettings.getZoomSettings()); + settings.setZoomSettings(newSettings.getZoomSettings()); if (!settings.getZoomSettings().containsZoomType(ZoomTypes.NONE)) { removeTransitions(); zoomMapToNewBounds(settings.getZoomSettings().getNewBounds(this)); @@ -2610,7 +2484,7 @@ public class RaceMap extends AbsolutePanel settings.setShowSimulationOverlay(newSettings.isShowSimulationOverlay()); simulationOverlay.setVisible(newSettings.isShowSimulationOverlay()); if (newSettings.isShowSimulationOverlay()) { - simulationOverlay.updateLeg(Math.max(lastLegNumber, 1), true, -1 /* ensure ui-update */); + simulationOverlay.updateLeg(Math.max(lastLegNumber,1), true, -1 /* ensure ui-update */); } } if (newSettings.isWindUp() != settings.isWindUp()) { @@ -2628,7 +2502,7 @@ public class RaceMap extends AbsolutePanel redraw(); } } - + public static class BoatsBoundsCalculator extends LatLngBoundsCalculatorForSelected { @Override @@ -2639,8 +2513,7 @@ public class RaceMap extends AbsolutePanel if (selectedCompetitors == null || !selectedCompetitors.iterator().hasNext()) { competitors = forMap.getCompetitorsToShow(); } else { - competitors = isZoomOnlyToSelectedCompetitors(forMap) ? selectedCompetitors - : forMap.getCompetitorsToShow(); + competitors = isZoomOnlyToSelectedCompetitors(forMap) ? selectedCompetitors : forMap.getCompetitorsToShow(); } for (CompetitorDTO competitor : competitors) { try { @@ -2655,29 +2528,25 @@ public class RaceMap extends AbsolutePanel } } catch (IndexOutOfBoundsException e) { // TODO can't this be predicted and the exception be avoided in the first place? - // Catch this in case the competitor has no GPS fixes at the current time (e.g. in race 'Finale 2' - // of STG) + // Catch this in case the competitor has no GPS fixes at the current time (e.g. in race 'Finale 2' of STG) } } return newBounds; } - + } - + public static class TailsBoundsCalculator extends LatLngBoundsCalculatorForSelected { @Override public LatLngBounds calculateNewBounds(RaceMap racemap) { LatLngBounds newBounds = null; - Iterable competitors = isZoomOnlyToSelectedCompetitors(racemap) - ? racemap.competitorSelection.getSelectedCompetitors() : racemap.getCompetitorsToShow(); + Iterable competitors = isZoomOnlyToSelectedCompetitors(racemap) ? racemap.competitorSelection.getSelectedCompetitors() : racemap.getCompetitorsToShow(); for (CompetitorDTO competitor : competitors) { Polyline tail = racemap.fixesAndTails.getTail(competitor); LatLngBounds bounds = null; // TODO: Find a replacement for missing Polyline function getBounds() from v2 - // see also - // http://stackoverflow.com/questions/3284808/getting-the-bounds-of-a-polyine-in-google-maps-api-v3; - // optionally, consider providing a bounds cache with two sorted sets that organize the LatLng objects - // for O(1) bounds calculation and logarithmic add, ideally O(1) remove + // see also http://stackoverflow.com/questions/3284808/getting-the-bounds-of-a-polyine-in-google-maps-api-v3; + // optionally, consider providing a bounds cache with two sorted sets that organize the LatLng objects for O(1) bounds calculation and logarithmic add, ideally O(1) remove if (tail != null && tail.getPath().getLength() >= 1) { bounds = BoundsUtil.getAsBounds(tail.getPath().get(0)); for (int i = 1; i < tail.getPath().getLength(); i++) { @@ -2695,7 +2564,7 @@ public class RaceMap extends AbsolutePanel return newBounds; } } - + public static class CourseMarksBoundsCalculator implements LatLngBoundsCalculator { @Override public LatLngBounds calculateNewBounds(RaceMap forMap) { @@ -2751,17 +2620,17 @@ public class RaceMap extends AbsolutePanel map.triggerResize(); zoomMapToNewBounds(settings.getZoomSettings().getNewBounds(RaceMap.this)); } - // Adjust RaceMap headers to avoid overlapping based on the RaceMap width + // Adjust RaceMap headers to avoid overlapping based on the RaceMap width boolean isCompactHeader = this.getOffsetWidth() <= 600; getLeftHeaderPanel().setStyleName(COMPACT_HEADER_STYLE, isCompactHeader); getRightHeaderPanel().setStyleName(COMPACT_HEADER_STYLE, isCompactHeader); - + // Adjust combined wind and true north indicator panel indent, based on the RaceMap height if (combinedWindPanel.getParent() != null && trueNorthIndicatorPanel.getParent() != null) { this.adjustLeftControlsIndent(); } } - + private void adjustLeftControlsIndent() { combinedWindPanel.getParent().setStyleName("CombinedWindPanelParentDiv"); trueNorthIndicatorPanel.getParent().setStyleName("TrueNorthIndicatorPanelParentDiv"); @@ -2776,17 +2645,16 @@ public class RaceMap extends AbsolutePanel public void competitorsListChanged(Iterable competitors) { timeChanged(timer.getTime(), null); } - + @Override public void filteredCompetitorsListChanged(Iterable filteredCompetitors) { timeChanged(timer.getTime(), null); } - + @Override public void filterChanged(FilterSet> oldFilterSet, FilterSet> newFilterSet) { - // nothing to do; if the list of filtered competitors has changed, a separate call to - // filteredCompetitorsListChanged will occur + // nothing to do; if the list of filtered competitors has changed, a separate call to filteredCompetitorsListChanged will occur } @Override @@ -2809,7 +2677,7 @@ public class RaceMap extends AbsolutePanel options.setZindex(RaceMapOverlaysZIndexes.BOATTAILS_ZINDEX); return options; } - + @Override public Polyline createTail(final CompetitorDTO competitor, List points) { PolylineOptions options = createTailStyle(competitor, displayHighlighted(competitor)); @@ -2852,7 +2720,7 @@ public class RaceMap extends AbsolutePanel } return result; } - + private Image createSAPLogo() { ImageResource sapLogoResource = resources.sapLogoOverlay(); Image sapLogo = new Image(sapLogoResource); @@ -2880,47 +2748,45 @@ public class RaceMap extends AbsolutePanel private MapOptions getMapOptions(final boolean showMapControls, boolean windUp) { MapOptions mapOptions = MapOptions.newInstance(); - mapOptions.setScrollWheel(true); - mapOptions.setMapTypeControl(showMapControls && !windUp); - mapOptions.setPanControl(showMapControls); - mapOptions.setZoomControl(showMapControls); - mapOptions.setScaleControl(true); - if (windUp) { - mapOptions.setMinZoom(8); - } else { - mapOptions.setMinZoom(0); - } - MapTypeStyle[] mapTypeStyles = new MapTypeStyle[4]; + mapOptions.setScrollWheel(true); + mapOptions.setMapTypeControl(showMapControls && !windUp); + mapOptions.setPanControl(showMapControls); + mapOptions.setZoomControl(showMapControls); + mapOptions.setScaleControl(true); + if (windUp) { + mapOptions.setMinZoom(8); + } else { + mapOptions.setMinZoom(0); + } + MapTypeStyle[] mapTypeStyles = new MapTypeStyle[4]; + + // hide all transit lines including ferry lines + mapTypeStyles[0] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.TRANSIT); + // hide points of interest + mapTypeStyles[1] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.POI); + // simplify road display + mapTypeStyles[2] = GoogleMapStyleHelper.createSimplifiedStyle(MapTypeStyleFeatureType.ROAD); + // set water color + // To play with the styles, check out http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html. + // To convert an RGB color into the strange hue/saturation/lightness model used by the Google Map use + // http://software.stadtwerk.org/google_maps_colorizr/#water/all/123456/. + mapTypeStyles[3] = GoogleMapStyleHelper.createColorStyle(MapTypeStyleFeatureType.WATER, new RGBColor(0, 136, 255), 0, -70); + + MapTypeControlOptions mapTypeControlOptions = MapTypeControlOptions.newInstance(); + mapTypeControlOptions.setPosition(ControlPosition.BOTTOM_RIGHT); + mapOptions.setMapTypeControlOptions(mapTypeControlOptions); - // hide all transit lines including ferry lines - mapTypeStyles[0] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.TRANSIT); - // hide points of interest - mapTypeStyles[1] = GoogleMapStyleHelper.createHiddenStyle(MapTypeStyleFeatureType.POI); - // simplify road display - mapTypeStyles[2] = GoogleMapStyleHelper.createSimplifiedStyle(MapTypeStyleFeatureType.ROAD); - // set water color - // To play with the styles, check out - // http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html. - // To convert an RGB color into the strange hue/saturation/lightness model used by the Google Map use - // http://software.stadtwerk.org/google_maps_colorizr/#water/all/123456/. - mapTypeStyles[3] = GoogleMapStyleHelper.createColorStyle(MapTypeStyleFeatureType.WATER, - new RGBColor(0, 136, 255), 0, -70); - - MapTypeControlOptions mapTypeControlOptions = MapTypeControlOptions.newInstance(); - mapTypeControlOptions.setPosition(ControlPosition.BOTTOM_RIGHT); - mapOptions.setMapTypeControlOptions(mapTypeControlOptions); - - mapOptions.setMapTypeStyles(mapTypeStyles); - // no need to try to position the scale control; it always ends up at the right bottom corner - mapOptions.setStreetViewControl(false); - if (showMapControls) { - ZoomControlOptions zoomControlOptions = ZoomControlOptions.newInstance(); - zoomControlOptions.setPosition(ControlPosition.RIGHT_TOP); - mapOptions.setZoomControlOptions(zoomControlOptions); - PanControlOptions panControlOptions = PanControlOptions.newInstance(); - panControlOptions.setPosition(ControlPosition.RIGHT_TOP); - mapOptions.setPanControlOptions(panControlOptions); - } + mapOptions.setMapTypeStyles(mapTypeStyles); + // no need to try to position the scale control; it always ends up at the right bottom corner + mapOptions.setStreetViewControl(false); + if (showMapControls) { + ZoomControlOptions zoomControlOptions = ZoomControlOptions.newInstance(); + zoomControlOptions.setPosition(ControlPosition.RIGHT_TOP); + mapOptions.setZoomControlOptions(zoomControlOptions); + PanControlOptions panControlOptions = PanControlOptions.newInstance(); + panControlOptions.setPosition(ControlPosition.RIGHT_TOP); + mapOptions.setPanControlOptions(panControlOptions); + } return mapOptions; } @@ -2930,4 +2796,18 @@ public class RaceMap extends AbsolutePanel protected String getLeftControlsIndentStyle() { return null; } + + public DelegateCoordinateSystem getCoordinateSystem() { + return coordinateSystem; + } + + public void setLastInfoWindow(InfoWindow infoWindow) { + lastInfoWindow = infoWindow; + + } + + public InfoWindow getLastInfoWindow() { + return lastInfoWindow; + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java index 64c8601846f..8aa203104ea 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import com.google.gwt.core.client.GWT; import com.google.gwt.maps.client.MapWidget; @@ -15,13 +14,16 @@ import com.google.gwt.maps.client.overlays.MarkerImage; import com.google.gwt.maps.client.overlays.MarkerOptions; import com.google.gwt.resources.client.ImageResource; import com.sap.sailing.domain.common.ManeuverType; -import com.sap.sailing.domain.common.Tack; import com.sap.sse.common.Util; public class RaceMapImageManager { + private static final int MARKER_HEIGHT = 26; + + private static final int MARKER_WIDTH = 26; + /** - * An arrow showing the combined wind depending on the wind direction + * An arrow showing the combined wind depending on the wind direction */ protected ImageTransformer combinedWindIconTransformer; @@ -31,7 +33,7 @@ public class RaceMapImageManager { protected ImageTransformer trueNorthIndicatorIconTransformer; /** - * An arrow showing the wind provided by a wind sensor on a boat + * An arrow showing the wind provided by a wind sensor on a boat */ protected ImageTransformer windSensorIconTransformer; @@ -47,9 +49,8 @@ public class RaceMapImageManager { } /** - * Loads the map overlay icons The method can only be called after the map is loaded. The - * {@link #maneuverIconsForTypeAndTargetTack} map is filled for all combinations of {@link ManeuverType maneuver - * types} and {@link Tack tacks} including the value null representing the unknown tack. + * Loads the map overlay icons The method can only be called after the map is loaded. The {@link #maneuverIconsForTypeAndTargetTack} map + * is filled for all combinations of {@link ManeuverType maneuver types} and {@link ManeuverColor colors}. */ public void loadMapIcons(MapWidget map) { if (map != null) { @@ -59,30 +60,30 @@ public class RaceMapImageManager { } Marker icon; for (ManeuverType maneuver : maneuvers) { - icon = createMarker(resources.maneuverMarkerRed(), 13, 13); + icon = createMarker(resources.maneuverMarkerRed()); maneuverIconsForTypeAndTargetTack .put(new Util.Pair(maneuver, ManeuverColor.RED), icon); - icon = createMarker(resources.maneuverMarkerGreen(), 13, 13); + icon = createMarker(resources.maneuverMarkerGreen()); maneuverIconsForTypeAndTargetTack .put(new Util.Pair(maneuver, ManeuverColor.GREEN), icon); } } } - private Marker createMarker(ImageResource ressource, int anchorX, int anchorY) { + private Marker createMarker(ImageResource ressource) { MarkerOptions options = MarkerOptions.newInstance(); MarkerImage markerImage = MarkerImage.newInstance(ressource.getSafeUri().asString()); - markerImage.setAnchor(Point.newInstance(anchorX, anchorY)); - markerImage.setScaledSize(Size.newInstance(26, 26)); + markerImage.setAnchor(Point.newInstance(MARKER_WIDTH/2, MARKER_HEIGHT/2)); + markerImage.setScaledSize(Size.newInstance(MARKER_WIDTH, MARKER_HEIGHT)); options.setIcon(markerImage); Marker marker = Marker.newInstance(options); return marker; } - + public ImageTransformer getTrueNorthIndicatorIconTransformer() { return trueNorthIndicatorIconTransformer; } - + public ImageTransformer getCombinedWindIconTransformer() { return combinedWindIconTransformer; } @@ -90,5 +91,4 @@ public class RaceMapImageManager { public ImageTransformer getWindSensorIconTransformer() { return windSensorIconTransformer; } - } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java index 3ad2edab8dd..689799cb81c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapResources.java @@ -15,7 +15,7 @@ public interface RaceMapResources extends ClientBundle { @Source("com/sap/sailing/gwt/ui/client/images/wind_combined.png") ImageResource combinedWindIcon(); - + @Source("com/sap/sailing/gwt/ui/client/images/true_north_indicator.png") ImageResource trueNorthIndicatorIcon(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java index 6024c487ef0..1c8a2edc76b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java @@ -21,9 +21,9 @@ public class RaceMapSettings extends AbstractSettings { private RaceMapZoomSettings zoomSettings; private RaceMapHelpLinesSettings helpLinesSettings; - + private boolean transparentHoverlines = false; // as discussed with Stefan on 2015-12-08 - + private int hoverlineStrokeWeight = 15; // as discussed with Stefan on 2015-12-08 private long tailLengthInMilliseconds = 100000l; @@ -31,19 +31,20 @@ public class RaceMapSettings extends AbstractSettings { private double buoyZoneRadiusInMeters = 0.0; private boolean showSelectedCompetitorsInfo = true; - + private boolean showWindStreamletColors = false; - + private boolean showWindStreamletOverlay = false; private boolean showSimulationOverlay = false; - + /** * If true, all map contents will be transformed to a water-only environment, rotating all directions / - * bearings / headings so that an assumed average wind direction for the race is coming from the top of the map ( - * "wind-up display"). The implementation hinges on + * bearings / headings so that an assumed average wind direction for the race is coming from the top of the map + * ("wind-up display"). The implementation hinges on * {@link Position#getLocalCoordinates(Position, com.sap.sailing.domain.common.Bearing)} which can transform - * positions to any other coordinate space that is translated and rotated compared to the original coordinate space. + * positions to any other coordinate space that is translated and rotated compared to the original + * coordinate space. */ private boolean windUp = false; @@ -52,22 +53,12 @@ public class RaceMapSettings extends AbstractSettings { this.zoomSettings = new RaceMapZoomSettings(); this.helpLinesSettings = new RaceMapHelpLinesSettings(); } - - private static HashSet getDefaultManeuvers() { - HashSet types = new HashSet(); - types.add(ManeuverType.JIBE); - types.add(ManeuverType.TACK); - types.add(ManeuverType.PENALTY_CIRCLE); - return types; - } - /** * "Copy constructor" that produces a new settings object that equals the one passed as argument */ public RaceMapSettings(RaceMapSettings settings) { this.buoyZoneRadiusInMeters = settings.buoyZoneRadiusInMeters; - this.helpLinesSettings = new RaceMapHelpLinesSettings( - settings.getHelpLinesSettings().getVisibleHelpLineTypes()); + this.helpLinesSettings = new RaceMapHelpLinesSettings(settings.getHelpLinesSettings().getVisibleHelpLineTypes()); this.transparentHoverlines = settings.transparentHoverlines; this.hoverlineStrokeWeight = settings.hoverlineStrokeWeight; this.maneuverTypesToShow = settings.maneuverTypesToShow; @@ -79,8 +70,7 @@ public class RaceMapSettings extends AbstractSettings { this.showWindStreamletColors = settings.showWindStreamletColors; this.tailLengthInMilliseconds = settings.tailLengthInMilliseconds; this.windUp = settings.windUp; - this.zoomSettings = new RaceMapZoomSettings(settings.zoomSettings.getTypesToConsiderOnZoom(), - settings.zoomSettings.isZoomToSelectedCompetitors()); + this.zoomSettings = new RaceMapZoomSettings(settings.zoomSettings.getTypesToConsiderOnZoom(), settings.zoomSettings.isZoomToSelectedCompetitors()); } /** @@ -105,7 +95,7 @@ public class RaceMapSettings extends AbstractSettings { public boolean isShowDouglasPeuckerPoints() { return showDouglasPeuckerPoints; } - + public void setShowDouglasPeuckerPoints(boolean showDouglasPeuckerPoints) { this.showDouglasPeuckerPoints = showDouglasPeuckerPoints; } @@ -173,15 +163,15 @@ public class RaceMapSettings extends AbstractSettings { public boolean getTransparentHoverlines() { return this.transparentHoverlines; } - + public void setTransparentHoverlines(boolean transparentHoverlines) { this.transparentHoverlines = transparentHoverlines; } - + public int getHoverlineStrokeWeight() { return this.hoverlineStrokeWeight; } - + public void setHoverlineStrokeWeight(int hoverlineStrokeWeight) { this.hoverlineStrokeWeight = hoverlineStrokeWeight; } @@ -209,4 +199,13 @@ public class RaceMapSettings extends AbstractSettings { public void setWindUp(boolean windUp) { this.windUp = windUp; } + + private static HashSet getDefaultManeuvers() { + HashSet types = new HashSet(); + types.add(ManeuverType.JIBE); + types.add(ManeuverType.TACK); + types.add(ManeuverType.PENALTY_CIRCLE); + return types; + } + } diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html index 6c0d43b7814..be8b13decf0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html @@ -1,448 +1,455 @@ - - - -

-

What's New - SAP Sailing Analytics

-
-
December 2015
- -
    -
  • The advantage line is now animated and moves smoothly with the boats. -
  • -
  • New line hover behavior in race map. When the mouse is moved onto a line, for example the start line, a transparent, - wider line is activated behind it that acts as a buffer for the thin line, where the text displayed by the hover is still shown. - This makes it easier to hover over the lines. These wider lines can be made semi transparent instead of transparent - by unticking the corresponding checkbox in the settings of the race map. Furthermore the stroke weight of the wider lines can be - configured in the same settings dialog. -
  • -
  • The race viewer (RaceBoard.html) now intelligently chooses a layout that suits the screen size. - When only little horizontal space is available, only the sail number and nationality but not the - competitor's long name is displayed by default. When vertical space is scarce, competitor and wind - charts are disabled and more horizontal space can be given to the time slider at the bottom. The - leaderboard section can then be scaled to smaller widths and will reduce the column widths better - than in the past. -
  • -
  • With the changes described above, the RaceBoard is now also accessible from the races page on mobile devices. -
  • -
  • For overall / series leaderboards such as a national sailing league or the Extreme Sailing Series, the - live status of the overall leaderboard is now indicated. As long as a live race is ongoing, the respective - column in the overall leaderboard is highlighted, and a comment is displayed that indicates which regatta - is currently still live. -
  • -
- -
November 2015
- -
    -
  • The smartphone page provides some structural navigation items for several pages in the upper right burger menu. - You will see links to e.g. events, regattas and series when navigating on event and series pages. -
  • -
  • It is now possible to filter for competitors in the race list of events/regattas. - If competitor information is available, there is a filter box in the upper right corner of the races page. - The filter is searching for competitors by sail ID as well as the competitor's name. -
  • -
  • Regattas can now be filtered by boat category in the smartphone page. - The filter will be shown for events with multiple regattas if there is more than on boat category associated with the event. -
  • -
- -
October 2015
- -
    -
  • A variety of tablets will now show the desktop page by default. - The mobile version of the website is primarily designed to be used on smartphones, - but you can manually switch back to the mobile version by clicking the corresponding link in the page footer. -
  • -
  • There is some amount of caching on the web page to reduce the consumed traffic for mobile users. - Contents aren't loaded again on each page switch. This improves the traffic consumption and loading speed on fast page switches. -
  • -
  • The fullscreen image viewer (start page and event media page) can automatically slide through the images. - This can be turned on by clicking the corresponding icon in the upper right corner of the fullscreen viewer. -
  • -
  • There is an optimized search and results page for mobile devices now. -
  • -
- -
September 2015
- -
    -
  • Races in the event/regatta race list can now be shown in 'competition format'. - In this format the races and flights are shown in a structural view. - In contrast to the default list view there is no grouping by live and finished states and all - (including upcoming) races/flights are shown in one structural view. -
  • -
  • The mobile page now provides regatta overview pages for events having multiple regattas. - This page shows live races, an excerpt of the current results as well as statistics for the regatta. -
  • -
- -
August 2015
- -
    -
  • Series events appear as only one entry in the events list, with a marker that - this is only one of a certain number of events in a series. This way, the many series events - don't produce clutter in the events list. -
  • -
  • Bug fix: memory leaks for distance cache have been solved. The issue could - also lead to endless recursions, ultimately leading to server lock-ups. -
  • -
  • Bug fix: master data import detached race logs and regatta logs from database. - Log entries added after import on the importing server were not written to the - database and therefore were lost upon server restart. -
  • -
  • There is a smartphone-optimized version of the "solutions" page known from the desktop. -
  • -
  • The smartphone event history now has a slider that allows swiping through the events of a year. -
  • -
- -
July 2015
- -
    -
  • Major improvements to the web page, with specific enhancements for smartphone - users. Race lists are now sortable by various criteria by clicking on the column - headers. A new fancy progress indicator now also provides visual feedback for - multi-fleet regattas. A news ticker box has been implemented, and the event - overview page can hold a video player on its stage. The event media gallery section - has been greatly improved. -
  • -
  • Fixed a bug in the wind streamlet visualization. Now the wind streamlets - correctly show the wind at the location selected also in wind-up mode. -
  • -
  • Added the "Course Geometry" option to the map display. With this option selected, - the map will show an info text for each leg and the start and finish line (only - for one of start/finish line if they are identical), telling the length of the leg - or line, respectively, and its angle to the wind. For the start and finish line - the advantage of the favored side is shown in meters. -
  • -
  • The SAP Sailing Analytics start page is now available in the smartphone version. - This page features some events that are currently interesting as well as showing a - quickfinder for a variety of recent and upcoming events. - Previously, the start page redirected to the event history. -
  • -
- -
May 2015
- -
    -
  • Competitors can have a separate flag image, such as a club flag to be displayed instead of - the nationality flag usually displayed with the sail number. This enables national league events - to display the club flags consistently when all nation flags would be the same anyway. -
  • -
  • The wind estimation from the tracked courses over ground has been improved. It now takes into - account any polar data available for the boat class concerned. In particular, this helps to rule - out very unlikely gybing angles in downwind clusters that otherwise could have led to an incorrect - split of the downwind fleet into two clusters where actually all boats were on the same tack. -
  • -
  • Some significant improvements have been applied to the simulator feature which is embedded in the - race viewer since some time now. The simulator now copes with very shifty wind conditions and finds - solutions in scenarios where an upwind leg flips to a reach or even into a downwind leg over time. -
  • -
- -
April 2015
- -
    -
  • There is a new map setting "Wind-Up (show wind from top of map)". Selecting it will - align the map's top with the combined true wind average direction around the time currently - selected in the time slider. In this new view there are limitations as to how far you can zoom - out. Furthermore, you will not be able to use the Satellite view with this setting. Tip: - if you want to re-align to wind-up after a major wind shift, un-check the setting, confirm - the setting change, then set it again. A compass shows the true north orientation. Clicking - the compass will toggle between wind-up and north-up display. -
  • -
  • Bug fixes around addition of the "Regatta Rank" column in the leaderboard which could have - distorted the leaderboard's column layout under certain conditions. -
  • -
  • Bug fix for cumulative points in the leaderboard ("Show added scores for each entry in leaderboard"). - With this setting, scores of competitors not tracked in the current race were not correctly represented - and may have stayed blank. -
  • -
  • Bug fix for the leg counter in the regatta page: when the first boat has finished, the leg counter went - to zero (e.g., "0 of 8"). This has now been fixed, and it will show, e.g., "8 of 8" upon the first boat - crossing the finish line. -
  • -
- -
March 2015
- -
    -
  • Added competitor chart type for Course Over Ground (COG) -
  • -
  • Added leaderboard column and competitor chart entry for distances considering - gate starts. With gate starts, late starters sail a shorter distance in their first - leg. To still make distances comparable, a new metric has been introduced that for a gate - start adds the distance between the port side of the start line and the position where - the competitor started to the distance sailed in the first leg. -
  • -
  • The weights of the wind measurement units, the wind estimation and manual wind inputs by the - race committee are now used properly for the wind streamlet visualization. This fixes issues - with exaggerated weights for an estimated wind direction of very low confidence. -
  • -
  • The expand/collapse toggle button in the race viewer's time panel has correct arrows now. -
  • -
- -
February 2015
- -
    -
  • The leaderboard offers a new column: "Start delay." It shows the number of seconds that passed - since the race start and the time the competitor passes the start mark / start line. As usual, - you can sort for this column. For line starts, this is a fairly direct measure of start quality - except for port starts which may have to be considered differently. For gate starts, you can use - this measure to find out about early and late starters and dig into possible correlations between - results and start time point. -
  • -
- -
January 2015
- -
    -
  • The race viewer ("RaceBoard.html") now offers a new option in the map settings: - "Show simulation overlay". Checking this feature will simulate the current leader's leg - using different strategies and using the wind as it has been measured and estimated. - This feature becomes particularly interesting when combined with the "Show wind streamlets overlay" - feature that visualizes the spatial distribution of the wind field over the course. -
  • -
  • The race viewer is now more resilient against exceptional conditions such as the missing - of all wind information and the missing of a course with its waypoints. If no wind information - is available at all (no wind direction indicator is then shown in the upper left corner of - the map) then all ranking and distances will be based on a projection onto the course instead - of onto the wind direction, even for upwind and downwind legs. -
  • -
- -
September 2014
- -
    -
  • The search feature now also includes results from currently ongoing events that may not yet be - included in our archive. Search keywords are now properly used in constructing the query. -
  • -
- -
August 2014
- -
    -
  • The 2D race viewer, also known as the "Race Board," now comes with a fresh, new design. The orange - checkbox toggle buttons that open or close views such as the leaderboard or the charts for wind - and competitor comparison, have been replaced by tabs with ">>" symbols. Clicking on those - will expand or collapse the respective view. The views can now be resized using the handles attached - to the dividers separating the views. They work much better on mobile and touch devices than the splitters - used previously did. The settings buttons that used to be integrated with the orange toggle - checkbox buttons have now been moved into the views that they control. For example, the map settings - button is now displayed on the map, below the zoom control on the right map border. -
  • -
  • The leaderboard now has an improved search and filter control. Above the table displaying the - competitors and their figures is a new field with a text input that you can use to filter for - competitors, by their sail number or their name. While filtered, use the checkboxes in front of - the table row to add the competitor to or remove it from the selection. Use the "X" button to the - right of the search input field to clear the search. To the left of the search input field is a - filter symbol that you can use to select and create advanced filtering rules, such as filtering - by rank or nationality. Left of the filter button is the leaderboard settings button. -
  • -
  • The leaderboard has a new first column: a selection check box. We hope this makes it easier in - particular for users on mobile or other touch devices to select more than one competitor at a time. - The old-style multi-selection using the Control and Shift keys, as known well from typical desktop - file explorers, still work like they did before. Note that it is possible to sort for the checkbox - column, putting the selected competitors at the top of the leaderboard. -
  • -
  • When using the auto-zoom feature from the map settings, boats and wind streamlets will now - continue to move smoothly as long as the map only needs panning. Please also note that auto-zooming - to "tails" may slow down the display considerable, particularly when tracking at high frequency. -
  • -
  • When viewing a single race, the leaderboard now by default does no longer show the regatta rank as - the first column (and not as the second one either, given that the first column now usually shows - the checkboxes used for selecting items). If you'd like to get the regatta rank column back, also when - looking at a single race, please choose it from the leaderboard settings dialog where you can find it - in the "Overall Details" section. It may still be a nice column to have when following the last race - in a regatta. If you're just interested in the relative regatta rank ordering you may as well sort by - the right-most total points column which (surprising to some but welcome by most) sorts by the regatta - rank and not by the plain points sum (taking into account medal race and gold/silver/... fleet participations). -
  • -
- -
July 2014
- -
    -
  • The advantage line now uses the wind at the position in the middle of the leg that the - competitor to which the line is attached is currently sailing in. Before, the "global" wind - average was used which is still displayed in the top left corner of the map. You can understand - the details by turning on the "Streamlet" wind visualization in the Map Settings. -
  • -
  • Faster wind streamlet loading: when you activate the streamlets for wind visualization, they now - display much faster. -
  • -
  • Faster boat position display: We found that what you're probably the most interested in when - you first open a race map or move the time slider to some very different point in time is the - position of the boats at that point in time; and you want to know it fast. - The tails which show how the boats got there are also interesting, but you won't blame us as much - if it takes a little bit to update them. So we've separated the placement of the boats from the - drawing of their tails. Now you may blame us for the tails temporarily not being attached to the - boats anymore ;-). -
  • -
- -
June 2014
- -
    -
  • In the "Maps" settings in the RaceBoard page there is a new checkbox named - "Show wind streamlets overlay." If you select it and wait for about a minute, - a complete wind field will be calculated and visualized as an overlay on top - of the race course display. It reacts to you moving the time slider and shows - how the wind differs at different locations on the course. Stronger and faster-moving - streamlets mean stronger breeze. -
  • -
  • Wind is now calculated location-based. At locations closer to a sensor, that sensor - has a higher influence on the local wind field than sensors further away. The wind - estimations based on the courses sailed are assigned a location that corresponds with - the "center of gravity" of the field that was used for the estimation. For example, - if the fleet is approaching the windward mark and the wind sensor in on the committee - boat on the leeward side of the course, the course-based estimation influences the - assumed wind field more on the windward side whereas the sensor counts more for - the leeward side. -
  • -
  • Switched to the latest version of the Highcharts charting framework. This leads to improvements - especially on mobile devices. Charts can be zoomed using pinch gestures now. -
  • -
  • To support the use of the SAP Sailing Analytics also for live video streaming formats, we - introduced a new URL parameter viewShowMapControls for the Spectator.html - and the RaceBoard.html pages. Setting this parameter to "false" - will suppress the zoom, pan and map type selection - controls on the map display. Example: - http://danishleague2014.sapsailing.com/gwt/Spectator.html?leaderboardGroupName=Danish%20League%202014&showRaceDetails=true&viewShowMapControls=false. - When used for the Spectator.html URL, this will apply - to all RaceBoard.html pages (all races) reached from there. Of course, the map - can still be panned and zoomed using the usual mouse gestures. A left double click zooms - in, a right double click zooms out. Zoom can also be controlled using the mouse wheel. - And panning works by clicking on the map and dragging the mouse. Without the map type - control, switching to satellite view is not possible (keep this in mind when tracking - races in China, see below for Google's random coordinate transformations there). -
  • -
- -
May 2014
- -
    -
  • Fixed an issue with the wind speed charts. Charts that only had a single, unchanged - wind speed crashed the browser. The solution scales the right hand side Y-axis denoting - the wind speed such that it always starts at 0kts. -
  • -
  • Analysis of tacks and jibes around mark passings has now been improved. Before, - a jibe followed by a tack that turns in the same direction (e.g., to port) so far - was always called a penalty maneuver. Now, if a mark passing separates such a tack - from such a jibe, no penalty is called anymore, and the two maneuvers are identified - correctly. -
  • -
  • Another note on maneuver analysis: we received questions regarding the maneuvers - involved in clearing an OCS. The SAP Sailing Analytics treat a clearing of - an OCS, going back behind the start line and crossing it again, as if the competitor - started again. In particular this means that all maneuvers prior to this new start - do not count for the metrics; neither does the distance sailed between the first (OCS) - start and the clear start. -
  • -
  • A hint regarding the "distance to start line" metrics: please keep in mind that currently this - measurement is calculated as the distance of the GPS tracker from the line. Unless the tracker - is mounted near the bow (or at the bow sprit, if any), the distance calculated this way will - be greater than what counts for crossing the line. Ordering, comparing and aggregating over this - figure still makes sense as long as you remember this detail. -
  • -
  • Introduced a new leaderboard entry "XTE +/-" featuring a signed cross-track error which shows - for a leg and also aggregated for an entire race on which side of the leg a competitor stayed on - average. Currently, the "side" is defined as viewing in the leg's direction, so "left" for a downwind - leg is the same side as "right" for the corresponding upwind leg. -
  • -
- -
April 2014
- -
    -
  • China races, such as in Qingdao, may have the map background displayed at slightly wrong locations. - This is due to an intentional random transformation that Google applies to GPS locations for - China. You can circumvent this issue by switching to satellite view where the map background is displayed - correctly. -
  • -
  • Fixed a bug that in some cases has caused the wind chart, the advantage line, the wind indicator on the map - and the leaderboard to use slightly different wind values. The problem was related to different averaging and - damping methods used for these values which has now been aligned. -
  • -
  • Fixed a bug that caused the time spent in a leg, race or regatta to always show the time at the end of the leg - if the leg has been started by the competitor at the time point queried, e.g., by the time slider. While this - did not have any serious effects in live mode, for replay races this left the leg time and race time constant - at the total time spent so far up to the end of the last leg the competitor had started at that time. -
  • -
- -
March 2014
- -
    -
  • Added a new setting for a leaderboard called "Show added scores". Using this feature one - can display added scores for each leaderboard entry. An added score is the sum over all scores - from the first column to the current column. One can describe it as an intermediate overall score. - This feature can be used to know the score until a specific race while another race is live and - constantly changes the overall score.
  • - -
  • Added tooltips for leaderboard settings.
  • - -
  • Fixed HighPointOverall scheme to also break a tie by looking at the ranks of the last regatta.
  • - -
  • Progress indicator when expanding a race in the RaceBoard view
  • - -
  • Leaderboard column "GPS Lag" shows how far a competitor's GPS signal lags behind the average - tracking quality. A background color bar classifies into good/ok/bad (green/yellow/red).
  • -
- -
February 2014
- -
    -
  • Fixed an issue with boat rotation on Safari browsers
  • - -
  • Maneuver analysis now counts tacks and jibes based on wind - at boat position and not based on leg type; subsequently, - penalty circle analysis is now based on a tack and a jibe - in close succession instead of a full circle.
  • - -
  • Regatta rank and overall rank in competitor chart of leaderboard panel - has been fixed; it did erroneously display the rank of the particular - race, not the regatta/overall rank after that race.
  • - -
  • Regatta overview now also displays all regatta leaderboards
  • - -
  • Boat colors match tail colors
  • - -
  • When selecting boats in leaderboard, de-selected boats' tails turn grey
  • - -
- - -
January 2014
- -
    -
  • Boat movement animated smoothly
  • - -
  • Start and Finish line show line parameters (length, angle to wind, - advantage) when mouse hovers over them
  • - -
  • Start line has a count-down indicator displayed next to it - before the start. The count-down is also displayed underneath the time - slider
  • - -
  • Competitor and Wind charts show pre-start data where possible
  • - -
  • Competitors can be assigned a fixed color which they will keep - for all races in a regatta
  • - -
  • By default, videos are now shown in a moveable, resizable box embedded in - the web page. For a two screen setup, the embedded box can be popped out to a - dedicated browser window.
  • - -
  • Official score corrections for historic races are only applied after - the respective competitor finished the race. Therefore, in-between race - scores now correspond with tracking, regardless of final corrected score.
  • - -
  • By using negative playback speed (e.g., -1), replays can be run backwards.
  • - -
-
-
- - + + + +
+

What's New - SAP Sailing Analytics

+
+
January 2016
+
    +
  • Show maneuver markers to the race board per default + (tacks, jibes and penality circlys) with a smaller icon, which + shows a info bubble when the marker is clicked. + The icon turns green if the direction change in degrees is positive and red if negative
  • +
+
December 2015
+ +
    +
  • The advantage line is now animated and moves smoothly with the boats. +
  • +
  • New line hover behavior in race map. When the mouse is moved onto a line, for example the start line, a transparent, + wider line is activated behind it that acts as a buffer for the thin line, where the text displayed by the hover is still shown. + This makes it easier to hover over the lines. These wider lines can be made semi transparent instead of transparent + by unticking the corresponding checkbox in the settings of the race map. Furthermore the stroke weight of the wider lines can be + configured in the same settings dialog. +
  • +
  • The race viewer (RaceBoard.html) now intelligently chooses a layout that suits the screen size. + When only little horizontal space is available, only the sail number and nationality but not the + competitor's long name is displayed by default. When vertical space is scarce, competitor and wind + charts are disabled and more horizontal space can be given to the time slider at the bottom. The + leaderboard section can then be scaled to smaller widths and will reduce the column widths better + than in the past. +
  • +
  • With the changes described above, the RaceBoard is now also accessible from the races page on mobile devices. +
  • +
  • For overall / series leaderboards such as a national sailing league or the Extreme Sailing Series, the + live status of the overall leaderboard is now indicated. As long as a live race is ongoing, the respective + column in the overall leaderboard is highlighted, and a comment is displayed that indicates which regatta + is currently still live. +
  • +
+ +
November 2015
+ +
    +
  • The smartphone page provides some structural navigation items for several pages in the upper right burger menu. + You will see links to e.g. events, regattas and series when navigating on event and series pages. +
  • +
  • It is now possible to filter for competitors in the race list of events/regattas. + If competitor information is available, there is a filter box in the upper right corner of the races page. + The filter is searching for competitors by sail ID as well as the competitor's name. +
  • +
  • Regattas can now be filtered by boat category in the smartphone page. + The filter will be shown for events with multiple regattas if there is more than on boat category associated with the event. +
  • +
+ +
October 2015
+ +
    +
  • A variety of tablets will now show the desktop page by default. + The mobile version of the website is primarily designed to be used on smartphones, + but you can manually switch back to the mobile version by clicking the corresponding link in the page footer. +
  • +
  • There is some amount of caching on the web page to reduce the consumed traffic for mobile users. + Contents aren't loaded again on each page switch. This improves the traffic consumption and loading speed on fast page switches. +
  • +
  • The fullscreen image viewer (start page and event media page) can automatically slide through the images. + This can be turned on by clicking the corresponding icon in the upper right corner of the fullscreen viewer. +
  • +
  • There is an optimized search and results page for mobile devices now. +
  • +
+ +
September 2015
+ +
    +
  • Races in the event/regatta race list can now be shown in 'competition format'. + In this format the races and flights are shown in a structural view. + In contrast to the default list view there is no grouping by live and finished states and all + (including upcoming) races/flights are shown in one structural view. +
  • +
  • The mobile page now provides regatta overview pages for events having multiple regattas. + This page shows live races, an excerpt of the current results as well as statistics for the regatta. +
  • +
+ +
August 2015
+ +
    +
  • Series events appear as only one entry in the events list, with a marker that + this is only one of a certain number of events in a series. This way, the many series events + don't produce clutter in the events list. +
  • +
  • Bug fix: memory leaks for distance cache have been solved. The issue could + also lead to endless recursions, ultimately leading to server lock-ups. +
  • +
  • Bug fix: master data import detached race logs and regatta logs from database. + Log entries added after import on the importing server were not written to the + database and therefore were lost upon server restart. +
  • +
  • There is a smartphone-optimized version of the "solutions" page known from the desktop. +
  • +
  • The smartphone event history now has a slider that allows swiping through the events of a year. +
  • +
+ +
July 2015
+ +
    +
  • Major improvements to the web page, with specific enhancements for smartphone + users. Race lists are now sortable by various criteria by clicking on the column + headers. A new fancy progress indicator now also provides visual feedback for + multi-fleet regattas. A news ticker box has been implemented, and the event + overview page can hold a video player on its stage. The event media gallery section + has been greatly improved. +
  • +
  • Fixed a bug in the wind streamlet visualization. Now the wind streamlets + correctly show the wind at the location selected also in wind-up mode. +
  • +
  • Added the "Course Geometry" option to the map display. With this option selected, + the map will show an info text for each leg and the start and finish line (only + for one of start/finish line if they are identical), telling the length of the leg + or line, respectively, and its angle to the wind. For the start and finish line + the advantage of the favored side is shown in meters. +
  • +
  • The SAP Sailing Analytics start page is now available in the smartphone version. + This page features some events that are currently interesting as well as showing a + quickfinder for a variety of recent and upcoming events. + Previously, the start page redirected to the event history. +
  • +
+ +
May 2015
+ +
    +
  • Competitors can have a separate flag image, such as a club flag to be displayed instead of + the nationality flag usually displayed with the sail number. This enables national league events + to display the club flags consistently when all nation flags would be the same anyway. +
  • +
  • The wind estimation from the tracked courses over ground has been improved. It now takes into + account any polar data available for the boat class concerned. In particular, this helps to rule + out very unlikely gybing angles in downwind clusters that otherwise could have led to an incorrect + split of the downwind fleet into two clusters where actually all boats were on the same tack. +
  • +
  • Some significant improvements have been applied to the simulator feature which is embedded in the + race viewer since some time now. The simulator now copes with very shifty wind conditions and finds + solutions in scenarios where an upwind leg flips to a reach or even into a downwind leg over time. +
  • +
+ +
April 2015
+ +
    +
  • There is a new map setting "Wind-Up (show wind from top of map)". Selecting it will + align the map's top with the combined true wind average direction around the time currently + selected in the time slider. In this new view there are limitations as to how far you can zoom + out. Furthermore, you will not be able to use the Satellite view with this setting. Tip: + if you want to re-align to wind-up after a major wind shift, un-check the setting, confirm + the setting change, then set it again. A compass shows the true north orientation. Clicking + the compass will toggle between wind-up and north-up display. +
  • +
  • Bug fixes around addition of the "Regatta Rank" column in the leaderboard which could have + distorted the leaderboard's column layout under certain conditions. +
  • +
  • Bug fix for cumulative points in the leaderboard ("Show added scores for each entry in leaderboard"). + With this setting, scores of competitors not tracked in the current race were not correctly represented + and may have stayed blank. +
  • +
  • Bug fix for the leg counter in the regatta page: when the first boat has finished, the leg counter went + to zero (e.g., "0 of 8"). This has now been fixed, and it will show, e.g., "8 of 8" upon the first boat + crossing the finish line. +
  • +
+ +
March 2015
+ +
    +
  • Added competitor chart type for Course Over Ground (COG) +
  • +
  • Added leaderboard column and competitor chart entry for distances considering + gate starts. With gate starts, late starters sail a shorter distance in their first + leg. To still make distances comparable, a new metric has been introduced that for a gate + start adds the distance between the port side of the start line and the position where + the competitor started to the distance sailed in the first leg. +
  • +
  • The weights of the wind measurement units, the wind estimation and manual wind inputs by the + race committee are now used properly for the wind streamlet visualization. This fixes issues + with exaggerated weights for an estimated wind direction of very low confidence. +
  • +
  • The expand/collapse toggle button in the race viewer's time panel has correct arrows now. +
  • +
+ +
February 2015
+ +
    +
  • The leaderboard offers a new column: "Start delay." It shows the number of seconds that passed + since the race start and the time the competitor passes the start mark / start line. As usual, + you can sort for this column. For line starts, this is a fairly direct measure of start quality + except for port starts which may have to be considered differently. For gate starts, you can use + this measure to find out about early and late starters and dig into possible correlations between + results and start time point. +
  • +
+ +
January 2015
+ +
    +
  • The race viewer ("RaceBoard.html") now offers a new option in the map settings: + "Show simulation overlay". Checking this feature will simulate the current leader's leg + using different strategies and using the wind as it has been measured and estimated. + This feature becomes particularly interesting when combined with the "Show wind streamlets overlay" + feature that visualizes the spatial distribution of the wind field over the course. +
  • +
  • The race viewer is now more resilient against exceptional conditions such as the missing + of all wind information and the missing of a course with its waypoints. If no wind information + is available at all (no wind direction indicator is then shown in the upper left corner of + the map) then all ranking and distances will be based on a projection onto the course instead + of onto the wind direction, even for upwind and downwind legs. +
  • +
+ +
September 2014
+ +
    +
  • The search feature now also includes results from currently ongoing events that may not yet be + included in our archive. Search keywords are now properly used in constructing the query. +
  • +
+ +
August 2014
+ +
    +
  • The 2D race viewer, also known as the "Race Board," now comes with a fresh, new design. The orange + checkbox toggle buttons that open or close views such as the leaderboard or the charts for wind + and competitor comparison, have been replaced by tabs with ">>" symbols. Clicking on those + will expand or collapse the respective view. The views can now be resized using the handles attached + to the dividers separating the views. They work much better on mobile and touch devices than the splitters + used previously did. The settings buttons that used to be integrated with the orange toggle + checkbox buttons have now been moved into the views that they control. For example, the map settings + button is now displayed on the map, below the zoom control on the right map border. +
  • +
  • The leaderboard now has an improved search and filter control. Above the table displaying the + competitors and their figures is a new field with a text input that you can use to filter for + competitors, by their sail number or their name. While filtered, use the checkboxes in front of + the table row to add the competitor to or remove it from the selection. Use the "X" button to the + right of the search input field to clear the search. To the left of the search input field is a + filter symbol that you can use to select and create advanced filtering rules, such as filtering + by rank or nationality. Left of the filter button is the leaderboard settings button. +
  • +
  • The leaderboard has a new first column: a selection check box. We hope this makes it easier in + particular for users on mobile or other touch devices to select more than one competitor at a time. + The old-style multi-selection using the Control and Shift keys, as known well from typical desktop + file explorers, still work like they did before. Note that it is possible to sort for the checkbox + column, putting the selected competitors at the top of the leaderboard. +
  • +
  • When using the auto-zoom feature from the map settings, boats and wind streamlets will now + continue to move smoothly as long as the map only needs panning. Please also note that auto-zooming + to "tails" may slow down the display considerable, particularly when tracking at high frequency. +
  • +
  • When viewing a single race, the leaderboard now by default does no longer show the regatta rank as + the first column (and not as the second one either, given that the first column now usually shows + the checkboxes used for selecting items). If you'd like to get the regatta rank column back, also when + looking at a single race, please choose it from the leaderboard settings dialog where you can find it + in the "Overall Details" section. It may still be a nice column to have when following the last race + in a regatta. If you're just interested in the relative regatta rank ordering you may as well sort by + the right-most total points column which (surprising to some but welcome by most) sorts by the regatta + rank and not by the plain points sum (taking into account medal race and gold/silver/... fleet participations). +
  • +
+ +
July 2014
+ +
    +
  • The advantage line now uses the wind at the position in the middle of the leg that the + competitor to which the line is attached is currently sailing in. Before, the "global" wind + average was used which is still displayed in the top left corner of the map. You can understand + the details by turning on the "Streamlet" wind visualization in the Map Settings. +
  • +
  • Faster wind streamlet loading: when you activate the streamlets for wind visualization, they now + display much faster. +
  • +
  • Faster boat position display: We found that what you're probably the most interested in when + you first open a race map or move the time slider to some very different point in time is the + position of the boats at that point in time; and you want to know it fast. + The tails which show how the boats got there are also interesting, but you won't blame us as much + if it takes a little bit to update them. So we've separated the placement of the boats from the + drawing of their tails. Now you may blame us for the tails temporarily not being attached to the + boats anymore ;-). +
  • +
+ +
June 2014
+ +
    +
  • In the "Maps" settings in the RaceBoard page there is a new checkbox named + "Show wind streamlets overlay." If you select it and wait for about a minute, + a complete wind field will be calculated and visualized as an overlay on top + of the race course display. It reacts to you moving the time slider and shows + how the wind differs at different locations on the course. Stronger and faster-moving + streamlets mean stronger breeze. +
  • +
  • Wind is now calculated location-based. At locations closer to a sensor, that sensor + has a higher influence on the local wind field than sensors further away. The wind + estimations based on the courses sailed are assigned a location that corresponds with + the "center of gravity" of the field that was used for the estimation. For example, + if the fleet is approaching the windward mark and the wind sensor in on the committee + boat on the leeward side of the course, the course-based estimation influences the + assumed wind field more on the windward side whereas the sensor counts more for + the leeward side. +
  • +
  • Switched to the latest version of the Highcharts charting framework. This leads to improvements + especially on mobile devices. Charts can be zoomed using pinch gestures now. +
  • +
  • To support the use of the SAP Sailing Analytics also for live video streaming formats, we + introduced a new URL parameter viewShowMapControls for the Spectator.html + and the RaceBoard.html pages. Setting this parameter to "false" + will suppress the zoom, pan and map type selection + controls on the map display. Example: + http://danishleague2014.sapsailing.com/gwt/Spectator.html?leaderboardGroupName=Danish%20League%202014&showRaceDetails=true&viewShowMapControls=false. + When used for the Spectator.html URL, this will apply + to all RaceBoard.html pages (all races) reached from there. Of course, the map + can still be panned and zoomed using the usual mouse gestures. A left double click zooms + in, a right double click zooms out. Zoom can also be controlled using the mouse wheel. + And panning works by clicking on the map and dragging the mouse. Without the map type + control, switching to satellite view is not possible (keep this in mind when tracking + races in China, see below for Google's random coordinate transformations there). +
  • +
+ +
May 2014
+ +
    +
  • Fixed an issue with the wind speed charts. Charts that only had a single, unchanged + wind speed crashed the browser. The solution scales the right hand side Y-axis denoting + the wind speed such that it always starts at 0kts. +
  • +
  • Analysis of tacks and jibes around mark passings has now been improved. Before, + a jibe followed by a tack that turns in the same direction (e.g., to port) so far + was always called a penalty maneuver. Now, if a mark passing separates such a tack + from such a jibe, no penalty is called anymore, and the two maneuvers are identified + correctly. +
  • +
  • Another note on maneuver analysis: we received questions regarding the maneuvers + involved in clearing an OCS. The SAP Sailing Analytics treat a clearing of + an OCS, going back behind the start line and crossing it again, as if the competitor + started again. In particular this means that all maneuvers prior to this new start + do not count for the metrics; neither does the distance sailed between the first (OCS) + start and the clear start. +
  • +
  • A hint regarding the "distance to start line" metrics: please keep in mind that currently this + measurement is calculated as the distance of the GPS tracker from the line. Unless the tracker + is mounted near the bow (or at the bow sprit, if any), the distance calculated this way will + be greater than what counts for crossing the line. Ordering, comparing and aggregating over this + figure still makes sense as long as you remember this detail. +
  • +
  • Introduced a new leaderboard entry "XTE +/-" featuring a signed cross-track error which shows + for a leg and also aggregated for an entire race on which side of the leg a competitor stayed on + average. Currently, the "side" is defined as viewing in the leg's direction, so "left" for a downwind + leg is the same side as "right" for the corresponding upwind leg. +
  • +
+ +
April 2014
+ +
    +
  • China races, such as in Qingdao, may have the map background displayed at slightly wrong locations. + This is due to an intentional random transformation that Google applies to GPS locations for + China. You can circumvent this issue by switching to satellite view where the map background is displayed + correctly. +
  • +
  • Fixed a bug that in some cases has caused the wind chart, the advantage line, the wind indicator on the map + and the leaderboard to use slightly different wind values. The problem was related to different averaging and + damping methods used for these values which has now been aligned. +
  • +
  • Fixed a bug that caused the time spent in a leg, race or regatta to always show the time at the end of the leg + if the leg has been started by the competitor at the time point queried, e.g., by the time slider. While this + did not have any serious effects in live mode, for replay races this left the leg time and race time constant + at the total time spent so far up to the end of the last leg the competitor had started at that time. +
  • +
+ +
March 2014
+ +
    +
  • Added a new setting for a leaderboard called "Show added scores". Using this feature one + can display added scores for each leaderboard entry. An added score is the sum over all scores + from the first column to the current column. One can describe it as an intermediate overall score. + This feature can be used to know the score until a specific race while another race is live and + constantly changes the overall score.
  • + +
  • Added tooltips for leaderboard settings.
  • + +
  • Fixed HighPointOverall scheme to also break a tie by looking at the ranks of the last regatta.
  • + +
  • Progress indicator when expanding a race in the RaceBoard view
  • + +
  • Leaderboard column "GPS Lag" shows how far a competitor's GPS signal lags behind the average + tracking quality. A background color bar classifies into good/ok/bad (green/yellow/red).
  • +
+ +
February 2014
+ +
    +
  • Fixed an issue with boat rotation on Safari browsers
  • + +
  • Maneuver analysis now counts tacks and jibes based on wind + at boat position and not based on leg type; subsequently, + penalty circle analysis is now based on a tack and a jibe + in close succession instead of a full circle.
  • + +
  • Regatta rank and overall rank in competitor chart of leaderboard panel + has been fixed; it did erroneously display the rank of the particular + race, not the regatta/overall rank after that race.
  • + +
  • Regatta overview now also displays all regatta leaderboards
  • + +
  • Boat colors match tail colors
  • + +
  • When selecting boats in leaderboard, de-selected boats' tails turn grey
  • + +
+ + +
January 2014
+ +
    +
  • Boat movement animated smoothly
  • + +
  • Start and Finish line show line parameters (length, angle to wind, + advantage) when mouse hovers over them
  • + +
  • Start line has a count-down indicator displayed next to it + before the start. The count-down is also displayed underneath the time + slider
  • + +
  • Competitor and Wind charts show pre-start data where possible
  • + +
  • Competitors can be assigned a fixed color which they will keep + for all races in a regatta
  • + +
  • By default, videos are now shown in a moveable, resizable box embedded in + the web page. For a two screen setup, the embedded box can be popped out to a + dedicated browser window.
  • + +
  • Official score corrections for historic races are only applied after + the respective competitor finished the race. Therefore, in-between race + scores now correspond with tracking, regardless of final corrected score.
  • + +
  • By using negative playback speed (e.g., -1), replays can be run backwards.
  • + +
+
+
+ + diff --git a/java/com.sap.sailing.www/release_notes_admin.html b/java/com.sap.sailing.www/release_notes_admin.html index d065c079ecb..912a3371caf 100644 --- a/java/com.sap.sailing.www/release_notes_admin.html +++ b/java/com.sap.sailing.www/release_notes_admin.html @@ -1,234 +1,229 @@ - - - - - - - - SAP Sailing Analytics - Admin Console Release Notes - - -
- - -
-
- Sailer -
-
-

Release Notes - Administration Console

-
-

November 2015

-
    -
  • Show Maneuvers per default (Tacks, Jibes and Penality Circlys) with a smaller icon, which shows a Info window, if you click on it. - The Icon is now green, if the direction change in degrees is positiv and red if negativ.
  • -
-

January 2016

-
    -
  • Adding a competitor to a leaderboard or a regatta pre-sets the competitor's boat class - according to the leaderboard's / regatta's boat class. -
  • -
  • When done with creating a regatta, the user can have the corresponding regatta leaderboard - created with a simple click instead of having to navigate to the "Leaderboards" tab. -
  • -
  • Trim leaderboard and leaderboard group names during creation, removing leading and trailing - blanks. These names can occur in URLs, and trailing blanks in particular may be trimmed, - causing the objects to not be found. -
  • -
-

October 2015

-
    -
  • The "RaceLog Tracking" panel was renamed to the more intuitive "Smartphone Tracking". -
  • -
  • Competitor and course information can now be copied independently from one race to another within a Smartphone-tracked leaderboard. -
  • -
-

September 2015

-
    -
  • A new scoring scheme for elimination rounds has been added. It will first be used - at a major wind surfing event. -
  • -
  • The "Device Configuration" tab has been moved into a new top-level tab - "Race Committee App". -
  • -
  • Included magnetic declination data for 2016 already. -
  • -
  • Bug fix: in rare cases, adding several series to a regatta in one go swapped the order - of the series to be created. This has now been fixed. -
  • -
-

August 2015

-
    -
  • Race log tracking now allows administrators to set the start and end of tracking for a race. - Competitor and mark positions as well as wind data are filtered based on the start/end of tracking - intervals. -
  • -
  • Setting the boat class for a regatta and when creating a competitor has been unified and now - uses a suggest text box which makes suggestions based on all the boat classes known by the - application. In both cases can users now also enter a "free-form" boat class which is then - created by the server if not known yet. Note that for such boat classes no boat class icon - will be present when showing the regatta on the web page. -
  • -
  • Added boat classes Soling, Lago 26, Kielzugvogel, PWA (Professional Windsurfers Association) -
  • -
-

June 2015

-
    -
  • An event an now have a "Sailors' Info" URL configured. If provided, there will be a button - displayed on the event's web page that navigates to this link. It can be used, e.g., to link - to official documents such as the notice of race, sailing instructions, weather information - or similar. -
  • -
-

April 2015

-
    -
  • Competitors can now have a flag image assigned. This image should ideally be - sized 18x11px. If such an image is assigned, it overrules the nationality flag. - Use this feature to provide club flags for sailing league events. -
  • -
-

February 2015

-
    -
  • The Event panel now links the event name to the event page in the new design. The old "RegattaOverview" - link is now shown in the panel below, shown when selecting the event in the table above, called - "Event Overview." -
  • -
- -

December 2014

-
    -
  • We added user management. The /gwt/AdminConsole.html entry point for a fresh server set-up uses - admin/admin as username/password. You can change the password in the "Advanced > User Management" - tab where also new users can be created. If you assign a use the role "admin" then the user will - be able to use the administration console. Stay tuned for a more sophisticated set of roles and - permissions to be added in the future. -
  • -
  • Reverse replication is now possible for selected events. When a replica instance receives a - modifying operation, such as a user logging in (creating a user session) or a wind fix being - entered through the Race Committee App, this change will be sent from the replica to the master - and from there be replicated to all other replicas attached. -
  • -
  • Starting a server with auto-replication enabled has been changed. The REPLICATE_ON_START environment - variable no longer is a Boolean value (True/False) but now has to list the replication services to be - replicated from the master. The default environments for replicas at - http://releases.sapsailing.com/environments - show how this works. -
  • -
  • The "Connectors" category has a new tab in the administration console, entitled "Regatta Structure Import". - If your regatta management system happens to be Manage2Sail - you can enter an event ID and show the list of regattas, then set defaults for how they shall be - created in the SAP Sailing Analytics. This allows you to import and create many regattas at once, - saving the laborious effort of manually creating them. Obviously, this can come in handy at large - events with regattas on many course areas in several different boat classes. -
  • -
- -

July 2014

-
    -
  • Replication has become much more robust and efficient. The initial load which used to be sent in a - single huge (although compressed) stream of data from the master to the replica(s) was hard to get - transmitted in the face of flaky and slow network connections. We've changed this: now the initial - load is transmitted as a sequence of messages using a message broker infrastructure. If a single - message doesn't arrive, it will be re-sent until it got through. The messages are buffered for several - minutes, so the initial load transmission can even survive and recover from severe network outages.

    - - For the incremental replication process, we added compression, making the transmission more bandwidth-efficient - and therefore quicker and leaner. In addition, we've cleaned up the protocol a little, avoiding the - sending of redundant data, adding to the effects of compression. Replicating five live races with - approximately 40 to 50 competitors each, with four active wind measurement units each, requires approximately - 30kB/s of network bandwidth between master and replica. -

  • -
  • Events now have lots of new attributes, particularly start/end date and multimedia content URLs
  • - -
  • Regattas can now be edited to not perform start time inference based on start mark passings. - Usually, when no start time is set by the race committee app or by the tracking provider or manually - through the administration console, the start time is inferred from the mark passings for the start - line. However, this can lead to unpleasant effects when the race committee aborts or postpones a race - and doesn't set a new start time for some period of time. When during this period one or more boats - cross the start line, a new start time would be inferred implicitly, showing scores in the leaderboard - and starting to compute all sorts of metrics. To avoid this, uncheck the checkbox - "Use start time inference from start mark passings" in the regatta create / edit dialog.
  • - -
  • When creating a regatta in the administration console, the regatta name is now taken from the create - dialog's "Name" field as-is and is no longer automatically extended by appending the boat class name - in parentheses to the base name. This is important to know if you so far have created several regattas - within the scope of the same event by simply providing the event name and the boat class name, relying - on the administration console to extend the regatta name by the boat class name because now with this - strategy your regattas would all be named the same. If you want to continue using some base name and - see the boat class name after the base name in parentheses you will now have to add that to the "Name" - field yourself, as in "Kieler Woche 2014 (470)". With this change, you can avoid having special - characters such as "/" in the regatta name which used to be a problem in particular for RESTful web services - that use the regatta name as a URL element. Boat classes such as "B/one" and "J/70" traditionally - had issues with this. Now, the regatta can simply be named "My Event (J70)" instead, and web service - access is hassle-free. The boat class can still be called "J/70" which can be useful if the result - management tool or the tracking partner spells it that way.
  • -
- -

March 2014

-
    -
  • XML export of leaderboards now also taking into account competitors that haven't sailed a race but got a score
  • -
- -

February 2014

-
    -
  • Series name can be edited
  • - -
  • Now one can add a new series to an existing regatta
  • - -
  • Introduced new series scheme where competitors are scored contigously over all fleets
  • -
-

January 2014

-
    -
  • New version of TracTrac connector that fixes issues with concurrent loading - of many races
  • - -
  • Wind data can be imported from Expedition log files and from Igtimi WindBots
  • - -
  • Competitors can be assigned fixed colors
  • - -
  • Video files can be interactively linked to races
  • - -
  • Admin Console consistently sorts alpha-numeric items such that - numbers embedded in text are sorted by their numeric values (Race 2 - precedes Race 11)
  • - -
  • AdminConsole has more consistent filter behavior as more columns are - used for filtering; some sorting options were added
  • - -
  • Added a button to set the start time received of a tracked race. This time - isn't persistent, so it'll be forgotten after a server restart
  • - -
  • Tracking a race with a wrong regatta is now forbidden
  • -
-
-
-
-
-
- - - - + + + + + + + + SAP Sailing Analytics - Admin Console Release Notes + + +
+ + +
+
+ Sailer +
+
+

Release Notes - Administration Console

+
+

November 2015

+
    +
  • Adding a competitor to a leaderboard or a regatta pre-sets the competitor's boat class + according to the leaderboard's / regatta's boat class. +
  • +
  • When done with creating a regatta, the user can have the corresponding regatta leaderboard + created with a simple click instead of having to navigate to the "Leaderboards" tab. +
  • +
  • Trim leaderboard and leaderboard group names during creation, removing leading and trailing + blanks. These names can occur in URLs, and trailing blanks in particular may be trimmed, + causing the objects to not be found. +
  • +
+

October 2015

+
    +
  • The "RaceLog Tracking" panel was renamed to the more intuitive "Smartphone Tracking". +
  • +
  • Competitor and course information can now be copied independently from one race to another within a Smartphone-tracked leaderboard. +
  • +
+

September 2015

+
    +
  • A new scoring scheme for elimination rounds has been added. It will first be used + at a major wind surfing event. +
  • +
  • The "Device Configuration" tab has been moved into a new top-level tab + "Race Committee App". +
  • +
  • Included magnetic declination data for 2016 already. +
  • +
  • Bug fix: in rare cases, adding several series to a regatta in one go swapped the order + of the series to be created. This has now been fixed. +
  • +
+

August 2015

+
    +
  • Race log tracking now allows administrators to set the start and end of tracking for a race. + Competitor and mark positions as well as wind data are filtered based on the start/end of tracking + intervals. +
  • +
  • Setting the boat class for a regatta and when creating a competitor has been unified and now + uses a suggest text box which makes suggestions based on all the boat classes known by the + application. In both cases can users now also enter a "free-form" boat class which is then + created by the server if not known yet. Note that for such boat classes no boat class icon + will be present when showing the regatta on the web page. +
  • +
  • Added boat classes Soling, Lago 26, Kielzugvogel, PWA (Professional Windsurfers Association) +
  • +
+

June 2015

+
    +
  • An event an now have a "Sailors' Info" URL configured. If provided, there will be a button + displayed on the event's web page that navigates to this link. It can be used, e.g., to link + to official documents such as the notice of race, sailing instructions, weather information + or similar. +
  • +
+

April 2015

+
    +
  • Competitors can now have a flag image assigned. This image should ideally be + sized 18x11px. If such an image is assigned, it overrules the nationality flag. + Use this feature to provide club flags for sailing league events. +
  • +
+

February 2015

+
    +
  • The Event panel now links the event name to the event page in the new design. The old "RegattaOverview" + link is now shown in the panel below, shown when selecting the event in the table above, called + "Event Overview." +
  • +
+ +

December 2014

+
    +
  • We added user management. The /gwt/AdminConsole.html entry point for a fresh server set-up uses + admin/admin as username/password. You can change the password in the "Advanced > User Management" + tab where also new users can be created. If you assign a use the role "admin" then the user will + be able to use the administration console. Stay tuned for a more sophisticated set of roles and + permissions to be added in the future. +
  • +
  • Reverse replication is now possible for selected events. When a replica instance receives a + modifying operation, such as a user logging in (creating a user session) or a wind fix being + entered through the Race Committee App, this change will be sent from the replica to the master + and from there be replicated to all other replicas attached. +
  • +
  • Starting a server with auto-replication enabled has been changed. The REPLICATE_ON_START environment + variable no longer is a Boolean value (True/False) but now has to list the replication services to be + replicated from the master. The default environments for replicas at + http://releases.sapsailing.com/environments + show how this works. +
  • +
  • The "Connectors" category has a new tab in the administration console, entitled "Regatta Structure Import". + If your regatta management system happens to be Manage2Sail + you can enter an event ID and show the list of regattas, then set defaults for how they shall be + created in the SAP Sailing Analytics. This allows you to import and create many regattas at once, + saving the laborious effort of manually creating them. Obviously, this can come in handy at large + events with regattas on many course areas in several different boat classes. +
  • +
+ +

July 2014

+
    +
  • Replication has become much more robust and efficient. The initial load which used to be sent in a + single huge (although compressed) stream of data from the master to the replica(s) was hard to get + transmitted in the face of flaky and slow network connections. We've changed this: now the initial + load is transmitted as a sequence of messages using a message broker infrastructure. If a single + message doesn't arrive, it will be re-sent until it got through. The messages are buffered for several + minutes, so the initial load transmission can even survive and recover from severe network outages.

    + + For the incremental replication process, we added compression, making the transmission more bandwidth-efficient + and therefore quicker and leaner. In addition, we've cleaned up the protocol a little, avoiding the + sending of redundant data, adding to the effects of compression. Replicating five live races with + approximately 40 to 50 competitors each, with four active wind measurement units each, requires approximately + 30kB/s of network bandwidth between master and replica. +

  • +
  • Events now have lots of new attributes, particularly start/end date and multimedia content URLs
  • + +
  • Regattas can now be edited to not perform start time inference based on start mark passings. + Usually, when no start time is set by the race committee app or by the tracking provider or manually + through the administration console, the start time is inferred from the mark passings for the start + line. However, this can lead to unpleasant effects when the race committee aborts or postpones a race + and doesn't set a new start time for some period of time. When during this period one or more boats + cross the start line, a new start time would be inferred implicitly, showing scores in the leaderboard + and starting to compute all sorts of metrics. To avoid this, uncheck the checkbox + "Use start time inference from start mark passings" in the regatta create / edit dialog.
  • + +
  • When creating a regatta in the administration console, the regatta name is now taken from the create + dialog's "Name" field as-is and is no longer automatically extended by appending the boat class name + in parentheses to the base name. This is important to know if you so far have created several regattas + within the scope of the same event by simply providing the event name and the boat class name, relying + on the administration console to extend the regatta name by the boat class name because now with this + strategy your regattas would all be named the same. If you want to continue using some base name and + see the boat class name after the base name in parentheses you will now have to add that to the "Name" + field yourself, as in "Kieler Woche 2014 (470)". With this change, you can avoid having special + characters such as "/" in the regatta name which used to be a problem in particular for RESTful web services + that use the regatta name as a URL element. Boat classes such as "B/one" and "J/70" traditionally + had issues with this. Now, the regatta can simply be named "My Event (J70)" instead, and web service + access is hassle-free. The boat class can still be called "J/70" which can be useful if the result + management tool or the tracking partner spells it that way.
  • +
+ +

March 2014

+
    +
  • XML export of leaderboards now also taking into account competitors that haven't sailed a race but got a score
  • +
+ +

February 2014

+
    +
  • Series name can be edited
  • + +
  • Now one can add a new series to an existing regatta
  • + +
  • Introduced new series scheme where competitors are scored contigously over all fleets
  • +
+

January 2014

+
    +
  • New version of TracTrac connector that fixes issues with concurrent loading + of many races
  • + +
  • Wind data can be imported from Expedition log files and from Igtimi WindBots
  • + +
  • Competitors can be assigned fixed colors
  • + +
  • Video files can be interactively linked to races
  • + +
  • Admin Console consistently sorts alpha-numeric items such that + numbers embedded in text are sorted by their numeric values (Race 2 + precedes Race 11)
  • + +
  • AdminConsole has more consistent filter behavior as more columns are + used for filtering; some sorting options were added
  • + +
  • Added a button to set the start time received of a tracked race. This time + isn't persistent, so it'll be forgotten after a server restart
  • + +
  • Tracking a race with a wrong regatta is now forbidden
  • +
+
+
+
+
+
+ + + + From 78d5b65b8505b7ee013d1b86f3369996888fd17d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 5 Feb 2016 11:41:01 +0100 Subject: [PATCH 03/17] slighly improved release notes Change-Id: Ie6e1dda0944b43895e4fd679f83343451d33f20d --- .../SailingGWT sdm.launch | 156 +++++++++--------- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 150 ++++++++--------- .../home/solutions/SailingAnalyticsNotes.html | 9 +- 3 files changed, 158 insertions(+), 157 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT sdm.launch b/java/com.sap.sailing.gwt.ui/SailingGWT sdm.launch index 01f086d2cd1..2bd988c6083 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT sdm.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT sdm.launch @@ -1,78 +1,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index a533c08e61c..6adb642328e 100644 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html index 696c5f7e585..78b291f3661 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html @@ -19,10 +19,11 @@
January 2016
    -
  • Show maneuver markers to the race board per default - (tacks, jibes and penality circlys) with a smaller icon, which - shows a info bubble when the marker is clicked. - The icon turns green if the direction change in degrees is positive and red if negative +
  • Show maneuver markers on the race board by default + (tacks, jibes and penalty circles) with a smaller icon, which + shows an info bubble when the marker is clicked. + The icon turns green if the direction change in degrees is positive + (to starboard) and red if negative (to port).
From ac9e60eda7b6eafc2f200a8f37a0092ecd0afb1f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Fri, 5 Feb 2016 11:56:15 +0100 Subject: [PATCH 04/17] minor refactoring of ManeuverColor, using single point of exit pattern Change-Id: I78e401c0dc189c216a1c1a0149a688d21092c275 --- .../sailing/gwt/ui/client/shared/racemap/ManeuverColor.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java index ede7ac178f4..60cf474178c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverColor.java @@ -6,10 +6,7 @@ public enum ManeuverColor { RED, GREEN; public static ManeuverColor getManeuverColor(ManeuverDTO maneuver) { - if (maneuver.directionChangeInDegrees < 0) { - return RED; - } - return GREEN; + return maneuver.directionChangeInDegrees < 0 ? RED : GREEN; } } From 9c8e37e733989c8f5d461e573f5179b6f1447bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charlotte=20Pr=C3=B6ller?= Date: Sat, 6 Feb 2016 16:56:28 +0100 Subject: [PATCH 05/17] reverted some formatting --- .../gwt/ui/client/shared/racemap/RaceMap.java | 378 +++++++++--------- 1 file changed, 182 insertions(+), 196 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index 48f270863ee..8dc1597aa09 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -140,25 +140,24 @@ import com.sap.sse.gwt.client.shared.components.Component; import com.sap.sse.gwt.client.shared.components.SettingsDialog; import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent; -public class RaceMap extends AbsolutePanel - implements TimeListener, CompetitorSelectionChangeListener, RaceTimesInfoProviderListener, TailFactory, - Component, RequiresDataInitialization, RequiresResize, QuickRankProvider { +public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSelectionChangeListener, + RaceTimesInfoProviderListener, TailFactory, Component, RequiresDataInitialization, RequiresResize, QuickRankProvider { private static final Color LOWLIGHTED_TAIL_COLOR = new RGBColor(200, 200, 200); public static final String GET_RACE_MAP_DATA_CATEGORY = "getRaceMapData"; public static final String GET_WIND_DATA_CATEGORY = "getWindData"; - + private static final String COMPACT_HEADER_STYLE = "compactHeader"; - + private MapWidget map; - + /** * Always valid, non-null. Must be used to map all coordinates, headings, bearings, and directions * displayed on the map, including the orientations of any canvases such as boat icons, wind displays etc. that are - * embedded in the map. The coordinate systems facilitates the possibility of transformed displays such as rotated - * and translated versions of the map, implementing the "wind-up" view. + * embedded in the map. The coordinate systems facilitates the possibility of transformed displays such as + * rotated and translated versions of the map, implementing the "wind-up" view. */ private DelegateCoordinateSystem coordinateSystem; - + private FlowPanel headerPanel; private AbsolutePanel panelForLeftHeaderLabels; private AbsolutePanel panelForRightHeaderLabels; @@ -179,18 +178,17 @@ public class RaceMap extends AbsolutePanel private Polyline finishLine; /** - * Polyline for the advantage line (the leading line for the boats, orthogonal to the wind direction; touching the - * leading boat). + * Polyline for the advantage line (the leading line for the boats, orthogonal to the wind direction; touching the leading boat). */ private Polyline advantageLine; - + private AdvantageLineAnimator advantageTimer; - + /** * The windward of two Polylines representing a triangle between startline and first mark. */ private Polyline windwardStartLineMarkToFirstMarkLine; - + /** * The leeward of two Polylines representing a triangle between startline and first mark. */ @@ -199,12 +197,12 @@ public class RaceMap extends AbsolutePanel private class AdvantageLineMouseOverMapHandler implements MouseOverMapHandler { private double trueWindAngle; private Date date; - + public AdvantageLineMouseOverMapHandler(double trueWindAngle, Date date) { this.trueWindAngle = trueWindAngle; this.date = date; } - + public void setTrueWindBearing(double trueWindAngle) { this.trueWindAngle = trueWindAngle; } @@ -215,40 +213,39 @@ public class RaceMap extends AbsolutePanel @Override public void onEvent(MouseOverMapEvent event) { - map.setTitle(stringMessages.advantageLine() + " (from " - + new DegreeBearingImpl(Math.round(trueWindAngle)).reverse().getDegrees() + "deg" - + (date == null ? ")" : ", " + date) + ")"); + map.setTitle(stringMessages.advantageLine()+" (from "+new DegreeBearingImpl(Math.round(trueWindAngle)).reverse().getDegrees()+"deg"+ + (date == null ? ")" : ", "+ date) + ")"); } }; - + private AdvantageLineMouseOverMapHandler advantageLineMouseOverHandler; - + /** * Polylines for the course middle lines; keys are the two control points delimiting the leg for which the - * {@link Polyline} value shows the course middle line. As only one course middle line is shown even if there are - * multiple legs using the same control points in different directions, using a {@link Set} makes this independent - * of the order of the two control points. If no course middle line is currently being shown for a pair of control - * points, the map will not contain a value for this pair. + * {@link Polyline} value shows the course middle line. As only one course middle line is shown even if there + * are multiple legs using the same control points in different directions, using a {@link Set} makes this + * independent of the order of the two control points. If no course middle line is currently being shown for + * a pair of control points, the map will not contain a value for this pair. */ private final Map, Polyline> courseMiddleLines; private final Map courseSidelines; - + /** - * When the {@link HelpLineTypes#COURSEGEOMETRY} option is selected, little markers will be displayed on the lines - * that show the tooltip text in a little info box linked to the line. When the line is removed by + * When the {@link HelpLineTypes#COURSEGEOMETRY} option is selected, little markers will be displayed on the + * lines that show the tooltip text in a little info box linked to the line. When the line is removed by * {@link #showOrRemoveOrUpdateLine(Polyline, boolean, Position, Position, LineInfoProvider, String)}, these - * overlays need to be removed as well. Also, when the {@link HelpLineTypes#COURSEGEOMETRY} setting is deactivated, - * all these overlays need to go. + * overlays need to be removed as well. Also, when the {@link HelpLineTypes#COURSEGEOMETRY} setting is + * deactivated, all these overlays need to go. */ private final Map infoOverlaysForLinesForCourseGeometry; - + /** * Wind data used to display the advantage line. Retrieved by a {@link GetWindInfoAction} execution and used in * {@link #showAdvantageLine(Iterable, Date)}. */ private WindInfoForRaceDTO lastCombinedWindTrackInfoDTO; - + /** * Manages the cached set of {@link GPSFixDTO}s for the boat positions as well as their graphical counterpart in the * form of {@link Polyline}s. @@ -264,7 +261,7 @@ public class RaceMap extends AbsolutePanel * html5 canvases used for competitor info display on the map */ private final Map competitorInfoOverlays; - + private SmallTransparentInfoOverlay countDownOverlay; /** @@ -294,11 +291,11 @@ public class RaceMap extends AbsolutePanel private Map> lastManeuverResult; private Map> lastDouglasPeuckerResult; - + private final CompetitorSelectionProvider competitorSelection; - + private final RaceCompetitorSet raceCompetitorSet; - + /** * Used to check if the first initial zoom to the mark markers was already done. */ @@ -307,8 +304,9 @@ public class RaceMap extends AbsolutePanel private final Timer timer; private RaceTimesInfoDTO lastRaceTimesInfo; - + private InfoWindow lastInfoWindow = null; + /** * RPC calls may receive responses out of order if there are multiple calls in-flight at the same time. If the time * slider is moved quickly it generates many requests for boat positions quickly after each other. Sometimes, @@ -325,94 +323,92 @@ public class RaceMap extends AbsolutePanel */ private int startedProcessingRequestID; - private RaceMapImageManager raceMapImageManager; + private RaceMapImageManager raceMapImageManager; private final RaceMapSettings settings; - + private final StringMessages stringMessages; - + private boolean isMapInitialized; private Date lastTimeChangeBeforeInitialization; - + private int lastLegNumber; /** - * The last quick ranks received from a call to - * {@link SailingServiceAsync#getQuickRanks(RaceIdentifier, Date, AsyncCallback)} upon the last - * {@link #timeChanged(Date, Date)} event. Therefore, the ranks listed here correspond to the {@link #timer}'s time. + * The last quick ranks received from a call to {@link SailingServiceAsync#getQuickRanks(RaceIdentifier, Date, AsyncCallback)} upon + * the last {@link #timeChanged(Date, Date)} event. Therefore, the ranks listed here correspond to the {@link #timer}'s time. */ private LinkedHashMap quickRanks; - + /** * Taken from {@link RaceMapDataDTO#competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber}; tells the * windward distances traveled and the leg numbers in which the respective competitor is. */ private LinkedHashMap competitorsInOrderOfWindwardDistanceTraveledWithOneBasedLegNumber; + private final CombinedWindPanel combinedWindPanel; - + private final TrueNorthIndicatorPanel trueNorthIndicatorPanel; - + private final AsyncActionsExecutor asyncActionsExecutor; /** - * The map bounds as last received by map callbacks; used to determine whether to suppress the boat animation during - * zoom/pan + * The map bounds as last received by map callbacks; used to determine whether to suppress the boat animation during zoom/pan */ private LatLngBounds currentMapBounds; // bounds to which bounds-changed-handler compares - private int currentZoomLevel; // zoom-level to which bounds-changed-handler compares - - private boolean autoZoomIn = false; // flags auto-zoom-in in progress + private int currentZoomLevel; // zoom-level to which bounds-changed-handler compares + + private boolean autoZoomIn = false; // flags auto-zoom-in in progress private boolean autoZoomOut = false; // flags auto-zoom-out in progress - private int autoZoomLevel; // zoom-level to which auto-zoom-in/-out is zooming - LatLngBounds autoZoomLatLngBounds; // bounds to which auto-zoom-in/-out is panning&zooming - + private int autoZoomLevel; // zoom-level to which auto-zoom-in/-out is zooming + LatLngBounds autoZoomLatLngBounds; // bounds to which auto-zoom-in/-out is panning&zooming + private RaceSimulationOverlay simulationOverlay; private WindStreamletsRaceboardOverlay streamletOverlay; private final boolean showViewStreamlets; private final boolean showViewStreamletColors; private final boolean showViewSimulation; - + private static final String GET_POLAR_CATEGORY = "getPolar"; - + /** * Tells about the availability of polar / VPP data for this race. If available, the simulation feature can be * offered to the user. */ private boolean hasPolar; - + private final RegattaAndRaceIdentifier raceIdentifier; - + /** - * When the user requests wind-up display this may happen at a point where no mark positions are known or when no - * wind direction is known yet. In this case, this flag will be set, and when wind information or course mark + * When the user requests wind-up display this may happen at a point where no mark positions are known or when + * no wind direction is known yet. In this case, this flag will be set, and when wind information or course mark * positions are received later, this flag is checked, and if set, a {@link #updateCoordinateSystemFromSettings()} * call is issued to make sure that the user's request for a new coordinate system is honored. */ private boolean requiresCoordinateSystemUpdateWhenCoursePositionAndWindDirectionIsKnown; - + private final boolean showMapControls; /** - * Tells whether currently an auto-zoom is in progress; this is used particularly to keep the smooth CSS boat - * transitions active while auto-zooming whereas stopping them seems the better option for manual zooms. + * Tells whether currently an auto-zoom is in progress; this is used particularly to keep the smooth CSS boat transitions + * active while auto-zooming whereas stopping them seems the better option for manual zooms. */ private boolean autoZoomInProgress; - + /** - * Tells whether currently an orientation change is in progress; this is required handle map events during the - * configuration of the map during an orientation change. + * Tells whether currently an orientation change is in progress; this is required handle map events during the configuration of the map + * during an orientation change. */ private boolean orientationChangeInProgress; - + private final NumberFormat numberFormatOneDecimal = NumberFormat.getFormat("0.0"); - + public RaceMap(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, - ErrorReporter errorReporter, Timer timer, CompetitorSelectionProvider competitorSelection, - StringMessages stringMessages, boolean showMapControls, boolean showViewStreamlets, - boolean showViewStreamletColors, boolean showViewSimulation, RegattaAndRaceIdentifier raceIdentifier, - CombinedWindPanelStyle combinedWindPanelStyle, boolean showHeaderPanel) { + ErrorReporter errorReporter, Timer timer, CompetitorSelectionProvider competitorSelection, StringMessages stringMessages, + boolean showMapControls, boolean showViewStreamlets, boolean showViewStreamletColors, boolean showViewSimulation, + RegattaAndRaceIdentifier raceIdentifier, CombinedWindPanelStyle combinedWindPanelStyle, boolean showHeaderPanel) { this.setSize("100%", "100%"); this.showMapControls = showMapControls; this.stringMessages = stringMessages; @@ -449,25 +445,22 @@ public class RaceMap extends AbsolutePanel panelForLeftHeaderLabels = new AbsolutePanel(); panelForRightHeaderLabels = new AbsolutePanel(); initializeData(showMapControls, showHeaderPanel); - combinedWindPanel = new CombinedWindPanel(raceMapImageManager, combinedWindPanelStyle, stringMessages, - coordinateSystem); + combinedWindPanel = new CombinedWindPanel(raceMapImageManager, combinedWindPanelStyle, stringMessages, coordinateSystem); combinedWindPanel.setVisible(false); - trueNorthIndicatorPanel = new TrueNorthIndicatorPanel(this, raceMapImageManager, combinedWindPanelStyle, - stringMessages, coordinateSystem); + trueNorthIndicatorPanel = new TrueNorthIndicatorPanel(this, raceMapImageManager, combinedWindPanelStyle, stringMessages, coordinateSystem); trueNorthIndicatorPanel.setVisible(true); orientationChangeInProgress = false; mapFirstZoomDone = false; // TODO bug 494: reset zoom settings to user preferences } - + /** * The {@link WindDTO#dampenedTrueWindFromDeg} direction if {@link #lastCombinedWindTrackInfoDTO} has a * {@link WindSourceType#COMBINED} source which has at least one fix recorded; null otherwise. */ private Bearing getLastCombinedTrueWindFromDirection() { if (lastCombinedWindTrackInfoDTO != null) { - for (Entry e : lastCombinedWindTrackInfoDTO.windTrackInfoByWindSource - .entrySet()) { + for (Entry e : lastCombinedWindTrackInfoDTO.windTrackInfoByWindSource.entrySet()) { if (e.getKey().getType() == WindSourceType.COMBINED) { final List windFixes = e.getValue().windFixes; if (!windFixes.isEmpty()) { @@ -478,7 +471,7 @@ public class RaceMap extends AbsolutePanel } return null; } - + private void updateCoordinateSystemFromSettings() { final MapOptions mapOptions; orientationChangeInProgress = true; @@ -487,8 +480,7 @@ public class RaceMap extends AbsolutePanel if (centerOfCourse != null) { final Bearing lastCombinedTrueWindFromDirection = getLastCombinedTrueWindFromDirection(); if (lastCombinedTrueWindFromDirection != null) { - // new equator shall point 90deg right of the "from" wind direction to make wind come from top of - // map + // new equator shall point 90deg right of the "from" wind direction to make wind come from top of map coordinateSystem.setCoordinateSystem(new RotateAndTranslateCoordinateSystem(centerOfCourse, lastCombinedTrueWindFromDirection.add(new DegreeBearingImpl(90)))); if (map != null) { @@ -515,18 +507,16 @@ public class RaceMap extends AbsolutePanel } coordinateSystem.setCoordinateSystem(new IdentityCoordinateSystem()); } - if (mapOptions != null) { // if no coordinate system change happened that affects an existing map, don't redraw + if (mapOptions != null) { // if no coordinate system change happened that affects an existing map, don't redraw fixesAndTails.clearTails(); redraw(); - // zooming and setting options while the event loop is still working doesn't work reliably; defer until - // event loop returns + // zooming and setting options while the event loop is still working doesn't work reliably; defer until event loop returns Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { if (map != null) { map.setOptions(mapOptions); - // ensure zooming to what the settings tell, or defaults if what the settings tell isn't - // possible right now + // ensure zooming to what the settings tell, or defaults if what the settings tell isn't possible right now mapFirstZoomDone = false; trueNorthIndicatorPanel.redraw(); orientationChangeInProgress = false; @@ -545,116 +535,112 @@ public class RaceMap extends AbsolutePanel loadLibraries.add(LoadLibrary.GEOMETRY); Runnable onLoad = new Runnable() { - @Override - public void run() { - MapOptions mapOptions = getMapOptions(showMapControls, /* wind up */ false); - map = new MapWidget(mapOptions); - RaceMap.this.add(map, 0, 0); - if (showHeaderPanel) { - Image sapLogo = createSAPLogo(); - RaceMap.this.add(sapLogo); - } - map.setControls(ControlPosition.LEFT_TOP, combinedWindPanel); - map.setControls(ControlPosition.LEFT_TOP, trueNorthIndicatorPanel); - adjustLeftControlsIndent(); + @Override + public void run() { + MapOptions mapOptions = getMapOptions(showMapControls, /* wind up */ false); + map = new MapWidget(mapOptions); + RaceMap.this.add(map, 0, 0); + if (showHeaderPanel) { + Image sapLogo = createSAPLogo(); + RaceMap.this.add(sapLogo); + } + map.setControls(ControlPosition.LEFT_TOP, combinedWindPanel); + map.setControls(ControlPosition.LEFT_TOP, trueNorthIndicatorPanel); + adjustLeftControlsIndent(); - RaceMap.this.raceMapImageManager.loadMapIcons(map); - map.setSize("100%", "100%"); - map.addZoomChangeHandler(new ZoomChangeMapHandler() { - @Override - public void onEvent(ZoomChangeMapEvent event) { - if (!autoZoomIn && !autoZoomOut && !orientationChangeInProgress) { - // stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will - // restore old settings - final List emptyList = Collections.emptyList(); - settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); - } - // TODO bug489 when in wind-up mode, avoid zooming out too far; perhaps zoom back in if zoomed - // out too far - } - }); - map.addDragEndHandler(new DragEndMapHandler() { - @Override - public void onEvent(DragEndMapEvent event) { - // stop automatic zoom after a manual drag event - autoZoomIn = false; - autoZoomOut = false; - final List emptyList = Collections.emptyList(); - settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); - } - }); - map.addIdleHandler(new IdleMapHandler() { - @Override - public void onEvent(IdleMapEvent event) { - // the "idle"-event is raised at the end of map-animations - if (autoZoomIn) { - // finalize zoom-in that was started with panTo() in zoomMapToNewBounds() - map.setZoom(autoZoomLevel); - autoZoomIn = false; - } - if (autoZoomOut) { - // finalize zoom-out that was started with setZoom() in zoomMapToNewBounds() - map.panTo(autoZoomLatLngBounds.getCenter()); - autoZoomOut = false; - } - } - }); - map.addBoundsChangeHandler(new BoundsChangeMapHandler() { - @Override - public void onEvent(BoundsChangeMapEvent event) { - int newZoomLevel = map.getZoom(); - if (!isAutoZoomInProgress() && (newZoomLevel != currentZoomLevel)) { - removeTransitions(); - } - if ((streamletOverlay != null) && !map.getBounds().equals(currentMapBounds)) { - streamletOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); - } - if ((simulationOverlay != null) && !map.getBounds().equals(currentMapBounds)) { - simulationOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); - } - currentMapBounds = map.getBounds(); - currentZoomLevel = newZoomLevel; - headerPanel.getElement().getStyle().setWidth(map.getOffsetWidth(), Unit.PX); - } - }); + RaceMap.this.raceMapImageManager.loadMapIcons(map); + map.setSize("100%", "100%"); + map.addZoomChangeHandler(new ZoomChangeMapHandler() { + @Override + public void onEvent(ZoomChangeMapEvent event) { + if (!autoZoomIn && !autoZoomOut && !orientationChangeInProgress) { + // stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will restore old settings + final List emptyList = Collections.emptyList(); + settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); + } + // TODO bug489 when in wind-up mode, avoid zooming out too far; perhaps zoom back in if zoomed out too far + } + }); + map.addDragEndHandler(new DragEndMapHandler() { + @Override + public void onEvent(DragEndMapEvent event) { + // stop automatic zoom after a manual drag event + autoZoomIn = false; + autoZoomOut = false; + final List emptyList = Collections.emptyList(); + settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList); + } + }); + map.addIdleHandler(new IdleMapHandler() { + @Override + public void onEvent(IdleMapEvent event) { + // the "idle"-event is raised at the end of map-animations + if (autoZoomIn) { + // finalize zoom-in that was started with panTo() in zoomMapToNewBounds() + map.setZoom(autoZoomLevel); + autoZoomIn = false; + } + if (autoZoomOut) { + // finalize zoom-out that was started with setZoom() in zoomMapToNewBounds() + map.panTo(autoZoomLatLngBounds.getCenter()); + autoZoomOut = false; + } + } + }); + map.addBoundsChangeHandler(new BoundsChangeMapHandler() { + @Override + public void onEvent(BoundsChangeMapEvent event) { + int newZoomLevel = map.getZoom(); + if (!isAutoZoomInProgress() && (newZoomLevel != currentZoomLevel)) { + removeTransitions(); + } + if ((streamletOverlay != null) && !map.getBounds().equals(currentMapBounds)) { + streamletOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); + } + if ((simulationOverlay != null) && !map.getBounds().equals(currentMapBounds)) { + simulationOverlay.onBoundsChanged(newZoomLevel != currentZoomLevel); + } + currentMapBounds = map.getBounds(); + currentZoomLevel = newZoomLevel; + headerPanel.getElement().getStyle().setWidth(map.getOffsetWidth(), Unit.PX); + } + }); + + // If there was a time change before the API was loaded, reset the time + if (lastTimeChangeBeforeInitialization != null) { + timeChanged(lastTimeChangeBeforeInitialization, null); + lastTimeChangeBeforeInitialization = null; + } + // Initialize streamlet canvas for wind visualization; it shouldn't be doing anything unless it's visible + streamletOverlay = new WindStreamletsRaceboardOverlay(getMap(), /* zIndex */ 0, + timer, raceIdentifier, sailingService, asyncActionsExecutor, stringMessages, coordinateSystem); + streamletOverlay.addToMap(); + if (showViewStreamlets) { + streamletOverlay.setColors(showViewStreamletColors); + streamletOverlay.setVisible(true); + } - // If there was a time change before the API was loaded, reset the time - if (lastTimeChangeBeforeInitialization != null) { - timeChanged(lastTimeChangeBeforeInitialization, null); - lastTimeChangeBeforeInitialization = null; - } - // Initialize streamlet canvas for wind visualization; it shouldn't be doing anything unless it's - // visible - streamletOverlay = new WindStreamletsRaceboardOverlay(getMap(), /* zIndex */ 0, timer, raceIdentifier, - sailingService, asyncActionsExecutor, stringMessages, coordinateSystem); - streamletOverlay.addToMap(); - if (showViewStreamlets) { - streamletOverlay.setColors(showViewStreamletColors); - streamletOverlay.setVisible(true); - } + if (showViewSimulation) { + // determine availability of polar diagram + setHasPolar(); + // initialize simulation canvas + simulationOverlay = new RaceSimulationOverlay(getMap(), /* zIndex */ 0, raceIdentifier, sailingService, stringMessages, asyncActionsExecutor, coordinateSystem); + simulationOverlay.addToMap(); + simulationOverlay.setVisible(false); + } + if (showHeaderPanel) { + createHeaderPanel(map); + } + createSettingsButton(map); - if (showViewSimulation) { - // determine availability of polar diagram - setHasPolar(); - // initialize simulation canvas - simulationOverlay = new RaceSimulationOverlay(getMap(), /* zIndex */ 0, raceIdentifier, - sailingService, stringMessages, asyncActionsExecutor, coordinateSystem); - simulationOverlay.addToMap(); - simulationOverlay.setVisible(false); - } - if (showHeaderPanel) { - createHeaderPanel(map); - } - createSettingsButton(map); - - // Data has been initialized - RaceMap.this.isMapInitialized = true; - RaceMap.this.redraw(); - trueNorthIndicatorPanel.redraw(); - showAdditionalControls(map); - } + // Data has been initialized + RaceMap.this.isMapInitialized = true; + RaceMap.this.redraw(); + trueNorthIndicatorPanel.redraw(); + showAdditionalControls(map); + } }; - LoadApi.go(onLoad, loadLibraries, sensor, "key=" + GoogleMapAPIKey.V3_APIKey); + LoadApi.go(onLoad, loadLibraries, sensor, "key="+GoogleMapAPIKey.V3_APIKey); } /** @@ -662,7 +648,7 @@ public class RaceMap extends AbsolutePanel */ protected void showAdditionalControls(MapWidget map) { } - + private void setHasPolar() { GetPolarAction getPolar = new GetPolarAction(sailingService, raceIdentifier); asyncActionsExecutor.execute(getPolar, GET_POLAR_CATEGORY, @@ -1964,7 +1950,7 @@ public class RaceMap extends AbsolutePanel if(lastInfoWindow != null) { lastInfoWindow.close(); } - GPSFixDTO latestFixForCompetitor = getBoatFix(competitorDTO, timer.getTime()); + GPSFixDTO latestFixForCompetitor = getBoatFix(competitorDTO, timer.getTime()); // TODO find close fix where the mouse was; see BUG 470 InfoWindowOptions options = InfoWindowOptions.newInstance(); InfoWindow infoWindow = InfoWindow.newInstance(options); From 0a1f7f8b22e2ed473d4c84b5cce5eae765223104 Mon Sep 17 00:00:00 2001 From: Papick Garcia Taboada Date: Mon, 15 Feb 2016 11:22:05 +0100 Subject: [PATCH 06/17] Changed dual licensed component from GPL to ASL. --- java/com.sap.sailing.gwt.ui/imprint.json | 6 +- .../licenses/gpl2.0.txt | 86 ------------------- 2 files changed, 1 insertion(+), 91 deletions(-) delete mode 100644 java/com.sap.sailing.gwt.ui/licenses/gpl2.0.txt diff --git a/java/com.sap.sailing.gwt.ui/imprint.json b/java/com.sap.sailing.gwt.ui/imprint.json index fbf655d50d7..adc22eb8176 100644 --- a/java/com.sap.sailing.gwt.ui/imprint.json +++ b/java/com.sap.sailing.gwt.ui/imprint.json @@ -673,7 +673,7 @@ "RouteConverter 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 2 of the License, or (at your option) any later version.", "RouteConverter 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." ], - "key": "GPL2.0" + "key": "ASL2.0" }, { "name": "Simple Logging Facade for Java (SLF4J)", @@ -746,10 +746,6 @@ { "key": "JDOML", "file": "jdoml.txt" - }, - { - "key": "GPL2.0", - "file": "gpl2.0.txt" } ] } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/licenses/gpl2.0.txt b/java/com.sap.sailing.gwt.ui/licenses/gpl2.0.txt deleted file mode 100644 index 63dbca075ed..00000000000 --- a/java/com.sap.sailing.gwt.ui/licenses/gpl2.0.txt +++ /dev/null @@ -1,86 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -Preamble - -The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: - -a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. -b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. -c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) -These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. - -3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: - -a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, -b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, -c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) -The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. - -This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS \ No newline at end of file From 546385e995e61eea9375d7bf3d5b1b3c4b2c7fda Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 13:33:12 +0100 Subject: [PATCH 07/17] upgraded TracAPI from 3.1.3 to 3.1.4, assuming to avoid an infinite loop for old events Change-Id: Ide5d2f7f34c513588f84973b44b55f2c733bd7a6 --- .../META-INF/MANIFEST.MF | 2 +- java/com.tractrac.clientmodule/README.txt | 13 +++++++++++++ .../lib/TracAPI-src.jar | Bin 61840 -> 61840 bytes .../com.tractrac.clientmodule/lib/TracAPI.jar | Bin 786659 -> 786771 bytes java/com.tractrac.clientmodule/pom.xml | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/java/com.tractrac.clientmodule/META-INF/MANIFEST.MF b/java/com.tractrac.clientmodule/META-INF/MANIFEST.MF index 5238374bdb5..a068143bcb1 100644 --- a/java/com.tractrac.clientmodule/META-INF/MANIFEST.MF +++ b/java/com.tractrac.clientmodule/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: TracTrac Client module Bundle-SymbolicName: com.tractrac.clientmodule -Bundle-Version: 3.1.3 +Bundle-Version: 3.1.4 Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ClassPath: ., lib/TracAPI.jar diff --git a/java/com.tractrac.clientmodule/README.txt b/java/com.tractrac.clientmodule/README.txt index 895702bd543..6fac5371225 100644 --- a/java/com.tractrac.clientmodule/README.txt +++ b/java/com.tractrac.clientmodule/README.txt @@ -15,6 +15,19 @@ It contains also some files: - test.sh -> script that compiles the code in the src folder, creates the test.jar library and execute the code of the example. - Manifest.txt -> manifest used to create the test.jar file + +******************************************** +************* TracAPI 3.1.4 **************** +******************************************** +This is a final version. Only fixes bugs in the implementation + +Release date: 15/02/2016 +Build number: 11938 + + 1) Bugs + + - An infinity loop has been detected in the thread that sends the application + messages (Repored by Axel Uhl, 12/02/2016) ******************************************** ************* TracAPI 3.1.3 **************** diff --git a/java/com.tractrac.clientmodule/lib/TracAPI-src.jar b/java/com.tractrac.clientmodule/lib/TracAPI-src.jar index 169fe55519188c741f3a42f1f08934ab1589214f..ff4eb35f824519b78f8cba5cdb774ebdbab422c7 100755 GIT binary patch delta 2255 zcmY*aYfzMB6n4d6fn8)ZK!XKLOTnE%!Ga`lOH<6tu4#p+AYy_k#myiufaNq(Y6x%H zB#AhU8hM%3qh&NY7-kF~mj!{<OTL-RUxj=N0S~i3&a2M-+1z`xViQ+KD^B&7Vtnmby6--LW8~-YF&~61RqJVG)-lZz z#=6Biq4#p3kTEup9OSKb%J=FzbNAF|HIa;UO!Kc4E!8mWMcVuzKpRC@c?A9`YiXLq0kIhMFR#zYK;oc)A$hq@kZ? z%;mzT!_WSo-O{9{dl6IMl)HIcM9gkhQS!_v1deGOtFSnWmPkLj8+s5qY7`$7`rnj% zkfJ3_W-x}5v{1nY)h(`s0PoTvP;JO#y1_UP4a%3Lx44kB%mzhM%vTUn=)-9H${i3= z#AUIN`~n<}(24jw2rJ@3MPkc%+L|yG4r?$AiV}+(b*qCTXu{>o@(wu>)UKk{smHk) zQl;-lSEU(CdG1FU8;~ZidNA8n6n~J*fxxUoV9I)fTLQ(#4i$NPco9xN568uH1d{*O zuOVEv?Fb@?IrF)%6FCbRALbYs6>vE%AxvwCrF7FVwE=9}HAS&Cb#@AN$ z>D!z(`tl26FyDicKC?l8(e7F~K-xV;+&KN5k0(rj6s*N4k1~c!jiv)%c)}^yA3WwI z^1H^-!+qxA_X_8|E{zydbdD?56urp>p8IA7GFKHZ=KvL-XB<}QIP6BIgKMA^Ss5l| zhw1DGD7JH@R~au!^BC3Dxcj7P{8pZ;PGG-ZO*~^x zO&sI(n)Qs)wcy7#`-=0m_<0|yUCA*+9k`~t6>O`_z-04kwkyqu2i31-`}2Be_0%IC z-GFDjuVD?x|7<`HE3d3#yX*@5+D7Q)G(z9ni1|HHrr?-VadlA)| zjPk80r*6ae>22`0wXNg$-1Zp8gYEc=huYD`((4%G%ysYsI>7&=16MN8fjV<;yvF&v zZY*H5+`!+=WE=X*x1sLuHuMqG$seCEb#7+?9FDBdY3UyxRb(I za0fj-xPzG!`ml>jeb_}vKXeZCr!ik+2QS;6!M5Fwoh}$ao$`SV?AHx~Uowc<#|>rw E1Jt`yO8@`> delta 2255 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 z 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 a57S`Qb!WK!afZfGNn7V|heO9TF#JCs_%x~j diff --git a/java/com.tractrac.clientmodule/pom.xml b/java/com.tractrac.clientmodule/pom.xml index 8628b049b63..0a5dfa6dabe 100755 --- a/java/com.tractrac.clientmodule/pom.xml +++ b/java/com.tractrac.clientmodule/pom.xml @@ -8,6 +8,6 @@ 1.0.0-SNAPSHOT com.tractrac.clientmodule - 3.1.3 + 3.1.4 eclipse-plugin From 96fce58d03f10d0f8b2baaa14d3530f557063e34 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 17:50:33 +0100 Subject: [PATCH 08/17] consolidated imports to get rid of warnings Change-Id: I9f5b464a071118dbcdd22abe7673adfa58f2dc77 --- .../android/tracking/app/ui/fragments/TrackingFragment.java | 3 +-- .../com/sap/sailing/racecommittee/app/utils/BitmapHelper.java | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java index 8b590415975..234e535ff03 100644 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java @@ -3,7 +3,6 @@ package com.sap.sailing.android.tracking.app.ui.fragments; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; -import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.provider.Settings; @@ -16,9 +15,9 @@ import android.widget.TextView; import com.sap.sailing.android.shared.logging.ExLog; import com.sap.sailing.android.shared.services.sending.MessageSendingService.APIConnectivity; +import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView; import com.sap.sailing.android.tracking.app.BuildConfig; import com.sap.sailing.android.tracking.app.R; -import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView; import com.sap.sailing.android.tracking.app.services.TrackingService.GPSQuality; import com.sap.sailing.android.tracking.app.ui.activities.TrackingActivity; import com.sap.sailing.android.tracking.app.utils.AppPreferences; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/BitmapHelper.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/BitmapHelper.java index 650d4db268e..3eebba19c4b 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/BitmapHelper.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/BitmapHelper.java @@ -9,7 +9,6 @@ import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.annotation.AttrRes; -import android.support.annotation.ColorRes; import android.support.annotation.DrawableRes; import android.util.TypedValue; import android.view.View; From f2819e1f10864479c091f696988a4c2bc55c81eb Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 17:51:57 +0100 Subject: [PATCH 09/17] made licenses dialog compile properly in Eclipse Change-Id: I3f59599db92d34a00e69f41aaa7bc5fc71f37ad0 --- .../libs/android-support-v13.jar | Bin 0 -> 1386017 bytes mobile/licensesdialog_lib/.gitignore | 2 +- .../de.psdev.licensesdialog/.classpath | 9 +++++ .../de.psdev.licensesdialog/.project | 33 ++++++++++++++++++ .../.settings/org.eclipse.jdt.core.prefs | 4 +++ .../project.properties | 3 +- 6 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 mobile/google-android-support-v7-appcompat_lib/libs/android-support-v13.jar create mode 100755 mobile/licensesdialog_lib/de.psdev.licensesdialog/.classpath create mode 100644 mobile/licensesdialog_lib/de.psdev.licensesdialog/.project create mode 100755 mobile/licensesdialog_lib/de.psdev.licensesdialog/.settings/org.eclipse.jdt.core.prefs diff --git a/mobile/google-android-support-v7-appcompat_lib/libs/android-support-v13.jar b/mobile/google-android-support-v7-appcompat_lib/libs/android-support-v13.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d364e7452a46e8540827b6c2a8ef16cafba7e4a GIT binary patch literal 1386017 zcmbrl1CV6fwl!StvTfV8ZQHhO+qSJP+f`k*ZFE(2+5Y;Rd*6Hao_P1g`Qy*X9T|}^ zSLWJlt~KVEW6muv1q^}=01gfgKno%(2JkO02mlZO84+ax8VOlZy3cU{0AK)lsc+za zSOERgO#VL(M*eN_--BfYWF@MDJuKC#0olXy;(0Xeg&AXBrjh7nydC9BCzG zs3m0PTq;2z($6u5va~48pV3H2Pl_qoPtZ^f(MVDOQmk$rZyW*toJ4E1Lxj-pzYzX? z{V@qh0D#{U!}!Y`{4rMpTVqE%3uC(fv7-Kq75u+gIl0)|+c`S_i?u4yzpu(4H}+q@ z`Crzq3{3wr;;-w7{vSpd*xUa(>L065^Oso({vV@69SzKEOl+Nn>}>1}oQY*@jsE=` z2^)KBS|e)%C#RC63EKsJ1>K|!hZ!+qlgbA0N@NNVa#0-sL}{ZW z=-Zfj9oo|lv8kMpOvJOEC2YkgQMuuCHq7#JKl zXKv&2U*Y`3ozO?i!+=4{P&jD@2KYcvCTDmZw=8`3=B2FQVw+sMisdKXic+M6rs|t; zqF#w{K5XKi1$Z~bS7Nw9Yj8knkKDK;v}3N{xb2O}v8iN>$de;nnzriQku^@DvO?Nu zJ>oA<7GsjsYVSp`qv-L^l9nMJsVm=HuOsjrCJy>n8;~dh9a_J;s(++Yp{GVtVH_7V zQY}Ks7mrOzV-3GTPq`zO<{HTj&<#e3hH)1pRFyWS#EOxk+HVcfP@k)tt-j$#Po(u)PJ#I?8>r{W zM1nED0xznRW^n?&qLMd~Ge$aP?ezC3C=R4Z=acUA=g(zB(#KgLXIL8PS|dppmAAI4 z#wu{qu#p2@LEI4tS<9Mm2%50TPtX!1Qq++G5lO#N9O7X~6hUjU8giRDrm;o`QY6XL5X zCj$53@2l)=mLy3JubJN7c#`XMxjE70*VO~aK2#b3a!Z<8Zw<_$c!-l;Qpl-@n|giMKd^OtZh{=J1_Rru*)5B7w~p$UmSDI2aHGL6!~fl z+*&{L=^hP`)RZF;cSqiP`d6Fj6^b7Gn?jaCg4D9M2&|S~bwLm>4L(vkX@W@X8UwZH z8A&bJaMKl~=_*ZsefT2TA3knS*==_I?PFlz|I5dJpyU6BQ-7e&zk8He(7?&$-@p17 z08zG5`VAmF8*22*0k??Bk(%`-{N=mA<5C$0 z-=2%GuS)BY!GW2YlBTvhy{37dE~h?U-p<+lIk?jtV3ZI`O(yvh5C*D)v!lszA&g`P zj3DHQxlPbL3pl+8Rjpub+s;h~6}JQj=P~v{2X`MkYB^!u(EH%E=Aox_48Y5nOhQLH zG>)KoM5cDXXT?Ca?o^=Ua7PrjSDl$GEeBt45!vbxWiAz3D%&VkQOYhfNN=dXIyyyK zYK%+3ROoAXgz|=Ues7zjwu)7qbDsJbr_Z!qa8*2V3zlsW(*XOpW>6x^7rIJ<3! zYm>G$J1cXKaa5&eC?zTk4GLwhs9EIteK@K zl@44)$LkX|)V3pi{3vk|DGR*5@j0~+{Zw6w^&r3*xY!=ydV67R2Lg>>vx_?Vv3H7bp*f#(*GJT%!#yt9TWQ0L+vy=HtptW}8o1-53v!8hW-9ykIg6#M z3e)FC(5dvzBrD~+JZB$`ri`54O%T-2(cRn|PAGHUO# z01Y_yZO!`tL)Pf5ZO%b(QHXx~bHj#Hs4?3&VY?-gi(aT zjU=VDdZ8g-{#SeK)6fxKsrKV=lZ7bu9Yb?5>HSzd1_{ecM8(O=Jzj%@VDUXb!Y1B; zu%1X3PpEDA=Z%VNUDrcoOEK_fqTu+_v#_6hry3fO0OO3(-#FrIF^kMUj2rTPbbJE- zaf~AHrG%G%6PX&Ye?3Nj4c?r8;}|I$7>e6DITI@xxSAL%IU6{e5HtKE{N^NE*&zxb zhwc>AL4~I#x9HaCQZ{QhLH$5a2@QsiAa<9amx;~;Tb;E@)nM%0JyJVOW1ag6cP)l7 zLycwak4~JG!Qu6ob26FD)Y$9m_Xd$4?TF3E$ay(}FyM=g*-$xgI(kn2(|t4_M`Pf& z6548QlR>EM@?JXhA(doOtw>-b+0J8xbVhXI)bTA{N~-(Ybe)@FJM;}JURHO@2+u7^ zreJ!5t(Gf>3nu19rSt<#Bs-E;L4biU>i&4mKBI8RJ0Tg#&xk#VmJF|6P5(M8pVH_$ z(!mxvjw2)6Rqgwjl^mtU^9m7fYQ|r5+e<(m)iw{HPojx!o;oEX3D6%Nr`+->)JW1C znkGU^k(A9$gzAHeM?2XFc;zaydmgkMEeD!~U-S2}*}6asLoV3#*q?sNEbZxiD%w)` zAu^$2RoJAQQjHk%0^2!$rV)^h#`HL0(9I$$+MIJGksW?oP-sK(T9`qETlP7%I?29( z2$sp-o}I#}0z^vN?;NXYjDq6w-(O_0(kkSnLD~Xg$~&bf;7HXFNO|DDVrM&nxJK5~ zFaob3Hjq^K<(E-kl=UkO`aC6z6h-Fw;4^=WLZy!)BlWv%0!S@`C&ALsh!-hq^7@2c zQ;+oY&6Q%qumQ_LayexWU=U6?Ew&7_9i3n8*79BMRi{>GO5Cv*JYk^jGTZ;8r|8j=|DC#i-j zK{b3p`A~~$45lDGVJa%1O>|*BgnZrox8{rZY6F+XtV>(=hi*R!J?~2n&<)(Ukuu)< zub;gNuNS28iiQu^qkGf8a@wDKpR&BnKHuM-(f~^3PX`$$LH0fIO@SHE1_6$Z+5)l| zyraGGZGXu3U7%m;3k-Jq-XHXY$}uN1Cxe2u7N=OE+iu-+FVyn{>^;mIwUaodHd(c+ z?66#{SNr4s@;V&X+^X{lKq9eF(;2BgHZDrgGCw!l_|!glE8TkmEwcmC@TPRy-0Q?NgSIYm2%i6V$>v1tR9^2`;$W_uEHpAsE(_}E-NTnwhwMI<+|Xm_Dm`K<8s(JJg(`aQTbdIJfT|&RmRKcNAUvdDFz;VD{VF)(BArk+| z9+MpUjgxl})9B|jw%*TYL_LPgSQqb_y@FV~>zdFjkVrcZVyQ>Ts-J0G-HV2W_%v2Q zYY^F9cceIoSk)gysDb=lPKHugaWRl^`sGEM7VEB6ug7u761#_1uqwO1u+D!0jH~J( zlz4>`21GbNxt`Cb8GMU%-k7Sa#qjOf&(bRWQr=be{N=yWjk0{;VEazD4E44C=~u%v zTW{ks0}j*qAZM~r&V5=;VNbDjl*v(yL3Mevd@n}#s8 z@{h)?-rNE=?prFufGoA2C-9lEUtl@{0JNBaS)`zSEccG6BVp37MA3$!`eqIYPHll6 zhaB5SOx}5oB&E7P1k)#ZfN+b_pok?)mP|CY3wM~r@7TaXcFYp?EcsLBWINE{7-Fdx zV(&gP^Ho4N&Kl)iEs8C6iMT5EDnlt?RzM&&NQCBmcsx|lkAmWNEeyeka-bc)EsApV zMkz%j8Kb^G+;x^eegOXw7)g?artW@oOSj+Y^M6k8>HY@F{8wQ7XEcn77JwX}hZp%W zZ`K6uy#6gXI2e)R3Q%{zqj?6bhH6Ggh!=)A?E!Kpr|(avFin1Oqi>&oxC5yhq7%g? zz$XUvtO*`ABL_R!dbpsB+ZY=OBq%sfb@#s$2x~oih&m)1Oo}b+Vn!nAVcp*hmzd1NHbGHDIOrh&VuK$?l8V z8%!b37mS@f)2I!Z#~;JzMR5pAi%G&dH0=b9I=7o5{}2nkdxo z&BCmV_#?tgmg}2#oyhmwZ#89HBf4H*8xB5BWy~hG7dB3FM^iKgZ$oxtH}BR@q(>N$ z1=3nAM>F)-XxihFg+5C~BHAAb zvdLGBX*S7M$Uei62X6qqfomBiOxam?;|&hmtzHbLAW(vN!HWn5_GLHB(6`NRNVkGj z(3y82sK)6NCh)2oBfmj61_8k3ges1H{Xn6Rg#JO~j@Wh zZPMtpgWNr=*O^WTWaU@JQ!Js-=d6hlI-kEt2vPp9ZzD-i?$(aXF|2EDb+h30KZxLrd{;iEfbDh=s*Q9 z6HJ4>CZ7aQudU4&&XtDMB@?D*r|JoKw1WMPmV~JitFHqqmX%$#C_Dmk49rnEn zRs&jz!LLRb2sRioF6E08+$27K_AOnj;=NkJo$uE8BqXfamGTzB#q1e=0Kf5$=fZyh zI}qml_!cXnz6|^Zm604IzrZdq14QBn#3#Sb@;We)7rLN)%p?i4A|A&OvtB0oBHji1 z2RM-VWV^Ng#!2;m!%6hN=y75TUhrPNN##dEsA)@FvL{ zx0Hlvw z44#y!;XKs=y<}gwzgEttutTdBqk9`p$dUg6b?iUMHjU?R7Hs0WorNBb`4!(vUJz43~k}usX;^ks~s+8%c1dA2-M@XeKM&i zO*_yw+!ePbdimj1t`4tBWAFe(KM~eC@&_mYRuiz#)=*ONCJ6(P*%Fo*o4VG#jb?yP zB8NCJB@}v#yd<}}d*p@i@&K$WQfiPR%o`ng4 zK)=U71-QtFQo#1#;*9FQi8FuADrx@4rub*@{HKnq4&ko6;_^8|jcMWTj|v~|La!eu zN(2Jb2r*&6LYUYGE`_=pktZr=$e*cTDmvgezh64N+*IEf4^n2K)LP$ZLLW?)3Ty zpa)SH^ix-^2eWS_P(7av>N*>i`!ft5_267`;=m519$8OO6{W*d*5us?V2An#A1J~= zYw`qNRh!>jlHbzaM#mElPEXYnrOSghzz$R)Y?|baPtKQ2nBU4C-~Bio(6a%2Oyx+? za{}xaMxP&OJ;qnf2p{Y|*>lC`J08v_Tlm-DjPunCzHVO>XIF8phlWUZ;re?v72uPw z^YwM6d(b`---|>mJ-C-i8IkMwGN!8?OjucxF5deG zV|n^=w#I}*nFCEYc+2*?KV(I}!*SL;nmejLkmE2XKP5GgieXIX+Svu$zus= zUNpT5*X@PsjJQKzP8$DObr4hGp(I~JkQ-u}y4Q0TZC!MQ^zKaR&V;OKYV>ih8<9vj z0dS+#N@DQJUy%Lr(As%AfgQ(0VQE%{j{-GBdeCTMD&zQV4SU>J@g{dKdSTBv<$hzc zV6$W;-w1tip8|3gqXnN?#(rFa4I2Z;(Nm_!a-SoDImyFsQ(~=R)nPf%Oh2DqViUhI z@0T*|2X}^2Ac+X!mWit5oEWQ7*E)dQ^;lH9;A9KUcgQfLE5()To#?rkX&NOfJHi*+7j+c3ArZupZO4bNfwF#)gPN za3oxRAa#!^i8=vg4rLtH?HIYOXKi61M>*k!Ub9PdbM*T|B>a#`>uC_QK*<_hEr)HtV( zN}>|;>MdU1vtv4TNJ@>I$)F~>p%V1k>MlZVAf{;-vDl7!(m+hr+<#`_SHak} zlMp@wX`Ot(|2`(`+|D!Fry0UGCRmudC>5lCBRy+9=81yP6G~}S%DB}RK2x0-a-d)M zeKM@dM8EH}^_z6VuWr6$=!)}*Mw`J?>F@_mc*ZOKHr8YgTQfn7x8fw&H3BqeA!L-y zz~-}@GMcUk+5x*tCAr<=5I|^6_QAY)ax4uHB_z`od+&U;e%8(0;^f?TsH*~?3n3qg zWyTR@@@=dJa07h|!DG zE=gC-1}Rsq2C+vl<2(|#QQxSkHNe71lJBXiQtQS=Bo~ge0~#F0dqijHTo%FD%R#Ul zhGRPO67WsMQWf+1zjFIUq%KM6ycIuQ&DhDzyBwNk0eDO#*l=49$)`2k75#7*@_iuX z8eg}-v!#jUNTORKE|lMK+u88H*B>@lp7hJAGronT z@@!k%m?>1ZJyH!kdRdA#NY@6*OCMllBK$bOwPE38ECT+uOWMgl&^OJED|ZDS*WA>! zD0^;S>Jms*E7QLnN_xvdpI_mB0hdJA3k&pXMAQhfP!&(Fak|aPa-|$mISlGB*1l6< zhTJmORiuJFWK|={$6!GUBX&KrenMg1f7U=|kC406ZYx0&7EUKb`_kypSUC-`VcU%L zwGqo&K&vSa6Vnm#T|@7eOJ>UvkYtjtZj<(T8*@@N^mE{~v*4XK7e=cL^r!=?*h^gR zrkTZg^J{Wd1XOMh#zq~YE#6$LrB;2bODfL(yx~jMTU+%kbo%BNi)FD$WJe1+mP-^) z6vyd(Cd@e&=y#Zz4!ewZLh5NZ)cs{BOn}FUISw2wj`gz825xJw@!>Tb2QDP7B zz;8w=DqFVBxZnZ6y}so6eAj5iU}1VwU}}6~W6Ba^YMf(a%Ho(lI_%fYJ0SPlf}xZ1 z|B=9n5hhH!dx{(O#O-Z5_yyr~2N;`j?cfbS5?%=OeT1+pfJi>4dq%GpD1GU>A|8XH zY^S0p`H!p=#2iWzP2q71weg_jTPsmXaxcG3WE~!HOt`OZ2C^%duJ7KF_p@2`Aa?zbT`*NQSfakf6Le&LGP0kT zYQ7w(yDJ`AA1|d6Uy>kzgAdZh^O%F16Ye7*$1W=|M!s5$Y@xT}&Oj(zxHIgOBl0W( zpq?#t-MST3=N0FL<{u!aZeHVh8BDR64AdEYiX|E?TWSYY+PtACbC`LG?%lKk#)*Yq zombqdqSF~)CLWS;E8~ilr@BU-Ovg^%=qB#L1ny*8pS0CSWe1#Ha9P*B)`J>NyFowu zu6D_N()OU6zGH z=DssE;81P)Yeo2M+Q^336PN97h2}+Cec-K+gK}89AN|+>TcwS^mD^*>+8eEE*66Tj zBjqjZy=K^sn$(Shq}(1RNtB5(wC+S`v#J_Lh#0Q`JO+f%^xZv^(kGLWM<|6>aW~Hh z<1^60J%YpuBj(v!V8C{=qK%6RUk}Mnmm{^P*5I-f8a?NS-JP^lL+m18Zp@-g zetj0?cbt)72J5p*tihTM4T7vrEAP2i2kW)VlhftKwr){0wv{^lR-L}bTFfs{W*x!R zNu$*p^3?MeblVMGMWy{qR=1_(=)FhU+-J*oBXYaXt-=Dp6#HY=n_2GTHCcCt{E9-hp z7@LfTZCEhRHQBy2?76f}VYO@Q@P}Q$Lw|Mtp}p;ekcCpx(9`MflXQ89@npl)=&-}- zB>lAMfT~&?TG#vqu_#Pu6nnnXQZBW*`4F#``}~ptZqbrCQdC0Y32~&bvP8@~n{{VvWfcF8>$kb6UaznNvyYAOLt{7ObyJ@XX<|_wbC8gd%VrwLk_n4NxHO2i15}m>YIY z4U+jnSV1>Ur2aiLf#2P_(KU;`|mMSlCa0tHr`IIBU(W@Mf9 z7zI;Y|0Gzvp`+yzqCcJ+9vvQc)VRkdbU(Wm9-NaL)Lmqg7uy@^t7C{mV=e0I=J++0 ze4B*athwLl$k3vy zw%%}u=MT=>D@-A>vRbG%tqFySiR9w#WOKI_q`Ja~(JnW=i8p?08bZ-gqsGD@(uH&2bYUX3Zj_`5QxNeXW z4w>dd%t|(%J2P~(#zYT`z_Q=X=|f6pR#UQ1zPIJBsIb!Fa!-)aAMhHfkb7bHqNWCG zs8Us?ZfTAK-1sa`zCqt1u}@C=z+hP=rxnIDP91k7IKiDvWgAUCdab$k))qs@Ier5C zP|>IOjIF3khv?T>mdML!J;1e~qTxJeCI|skGjNk_u4lrOz|AaNbuA68Jn42Wd%^ycS{*zlv(<)7GVh@a z-Y1tDj1-N4yxE7BGPrWBWqck1t6EQ3)veFSp%ZpeImZZHfNM;O$nkv`$l{vVB84GH_^VnZN*o#wTWNZ( z1(KUI^Mo`>|-h^#gg zr|obBTO*EP3Hh?DCe!d!RLav|f0hA)wxqyOe%D=h|4r2SYiHo!sfheT>HFPO^-rl! zUPf-!vrZGiHxWgO`wsX?eqc*r zN%)OzEhmTVZo6x8k7oN=7c#DGl6;$enhD^KJ)H- zhHt&Tm8lV2XoM0L>sjz}Z#Pn8<`r!QpW9UzXrAQ27_FWqlZ*+D*=S|Rd6I%!ObBDO zZ*638!XwpB4w|c~74d$^+p}gim^%A>L*1h=Ek`*QD~_TqcY)(Dn-X&s2g{1U#?t`= z$O=$kk>vUQqhzP|KgHN2nm8=c-?|&xZ#Vr+6`KOnN zetRi!lnpIT92#aXd{0o2SwKdZ!(L1O2gxj}&7Pmf+)xl-AD&4zjWCbBL(I+LWq7SONtuJj6sDJ4%St9>=2#OODk3AapwPvB&NR zb!d_Nre4sbxkgBcm>&DGfU;8Awp$;%@NAdHBk&zJ&wzBA5-gYQ61u|k%iZIiHPd=| z(YONWP)cQL=aS8E`HGLx_mUQ|4mwXlWY-Z03KZKEb_d})ux-lp(cF1{4>h=$c6BJM zH+t!0o7Hl7+D|4Bf+CXa5PP%fEq7WnZUI|0zpfI@IDaN$_m|gSH%H_6>F-XfiK1tA z`DyIlecus+Jc^&2*&yodM_GS-&ZTbdS<{#;R()T6GtpwuG?t}MCAV&{k9OV+41kv1 zA6QFwdWHD|$&bbuy~TdJiRjJuXA{SN9HtaC8z-zK6yIe{ zso2$L5eICl`txG>%2CLxt)wWe6A7i8OIrPk1^FJ+ngkD$UWumx|qQc{l2V zBw)TdwFW!6D+KXgq*Cu^HsYLH*EAS*y-FK-h%lH}cz*UCgYU`)B2TIn(He+BhxO}cwpD7O@x{H+mXA#i@r0zN@ctCMU2>?S zA19K7D&$(1wawA4hD#1``@pZgw&D2XRgu=g<9Oby<)6O8sb{0ZCSMBm2KvZ!=+Cr{ zV6a4XyIgHdA!smN!FuTGLyC}eSZ$GN(A<$xV7?J*O3x_)E7w**AGd7*JG-qEUADV0 z+DzA^wH80)sPKV%ky2WR=C5wP0s9SY5F43cE3tG|o1aBROFygq%5O9EKmz*==9{=i zD{X!C9O>(Hmm6IDQo6^yY?F9*PiLz!{J2@~<|1g+IwAfByIEMIVDm$>IVTm&%Zs*W zrKx2#;Mvl6TB0L4*-h0KZ=$lv#K6+2pSafh@|fFVV_UQb5E5w;dX;yX`JKMUtF?X$ zQ+9wF;ZD02-frIybkp*F+D_8nqE(S)?RUJ7nO2vznR~oI>9qcqh56VTVX8sPA`}AE zb3_r+@DNX9!>rLDNcf1dCHVtZHf7=x#ZU#tc>3W*sAH+0S?9Oo|1khcY#iAqH- z#jrlHwGpx$W3J2fR)iTc+x*|njgwr8(|Csj5PEC~DZC03WNc5D45&>^_-=ST8^(rC zR%?bYt#6H9Wylww^jit(LZXOY8KCze=D&y$GNF6J-(ECx`YGj>+dC$E8FK@x3bTzt zhIYak!wZv_AU4Hd!784J#!1ZY5Y{mXKE%Y|By{x=%gEP&dG1(-?~zLt({azrUV+`| z4PP`eXF1}AlPk`D^Ip z``ZkM_&>FL$HdRb0x`f3_wJAHzrtM~XP`&S#q1fgC&Ek6V}@g2E9(Q1Y`NNWqU%is z!R-oRbdoca6F<`LI5X~iU-0nq^8lUYXBqMhXB7I8*h!EA6O2Mc5aMOZ&U@j=!k{T_ zm|Ndp?9tB$P)85 z4bEcY>gYH%?MzDck>PvxG4#-Ommp=xzTy8NQv-)l*fTwuzE0SRTa&59Dbe0JibFsN ztwvQiHLr|?Mn{WfbuTAm^RX_Wc>49J=J34;IV1IOIZ;pK#j9mwE_>M5gzU?!0h}H= zJ`Z1iRd5$6^n#9tP}>rMtEb4{9K+4wC(ErY9|UY<$)7deT`a0CoZlqo`Sa!ayd_fBO<$%UgucX7BxRg4U#Pv3n% z8Y8vVX6R+&R>>TiUlJ)I65gN5LB<}T4FTYr<8%hc$=ftr&wX268|zGnLk>V8OZh%68l&%Qax8O+ z7pnppdmgWa9Z;E~O=H-Jkvgrim?yB-Bc2<)6&l-Kx>lNoKWfLa!ZsU!w6S5p@~#(a zlHfz(-%ijH9>VS9|eh5mz4O$JW+}tx?LZ*gJuyiw0 zGz0aveGo||Rj*y$XP}C8T4?h2BgvzpS6)z}!u{Z2Jm^vUsU(~JZf}&ime+H$it4i; zi0}KsH$(*Mme)isuBQ{*r|oMDCx>DmU?|BjM(tah}3p9s%J$cSh!%mxMc*L42c^5cEwL z?J+YDc4v+Can=y@Spm~;t>$YFIA7S03h$*fhj0G`8?-suM*rU&J@4O|q-_;I~T z!vqiP6Ns&?KL!bnHdtu9n3B&Q>jmot4wKE`p* z;rdKLOt(-6SgT0y(or3eWu?)B+|W19MD?Y*0wJ|`C!ElIIOk|eTTA!yJ%qu@QtGI( zfa`afJyx2TM(op+5VTd_+zr>5l_v~nCCR;Gn@f)YqjcKw*U$;KOu<)=vbFu5HS0BK zvnlTqb=|X)Oi~rPms6L^2-}cQph01}ur`fNLY>+^lR=ki(ci@*nvsXbZ&DK)+mBb?d#^p0xHDgQ(v`~Bd@pdwxp znV7zU0EYXwE6g_kC@{u0Lw(%@IESgek!N9{u|CvVrfO*RRUcP-8~&%yDo%4CA68En z{-^Dz8G9Fczfk9sKvpZSLRmtmzSW>EkJjzifVpeX?vSreE?rlix?iHDp1s-(Y*I~q zIZ8*{MRt?(MwG`gPF-Sj@9f>rASI!pvJjjL&07+Ib zTmqwCfxTxu)A<0P5%Oz7%v1Cssvsz_koSc|g|VYt3BHGM>xG1;ZM3LI!^0TgD5!S_ zkZ6;gn{dYc5O*f}bsjTIU9wCE+2-067$QV$`20bxOE~1|L-_Wi=$GBT(tH&-kq{Xn zvBUY#Xw&)CI0^j8?R6nkpqGh%Gm5GF}>Oh_2S*x-Q#H1v`< zhS#4>Mxlg&UcyfdFj=G}5^h8l_F-q9kVv?;VJ1UmWu=OTDNsIY^dj%9%+j+%GNg*Z z@ub1TEbKBNq!m6E*#x|j@6dabkRLwB#>&X3IgpG; z5}~_IJdQ^qAD-MsqF+ib$r)UWtv>P4kG*2GD$uYt zMX90`MU#3o$;Xrx*N18`dMcrHxxB_%MFaDk1b5xhz+J(D2L--X#)K)8LI$YT6!k7} zRjibJj;{p`#GU~Evr2_ehB&q4y_;V5^GzvOvn;(EvW>^o9GxjChM7}riYbjxmwExm zBu2z-Bxex~KOfj8JlCK09@BTePN9`X;L9HeyypfvR0g&{2fI(h@A^-@D|$bb5b8Jo z==wi72;1NA!=Dc<{V!_DA01~)D4%+!9!yDM_yGXG5K*P<#L)->!hOp8bF2PM{Dty1 zdW><`_KZwDPo(~->!8h=t(t6$nr@a=E+zmD1(ptanr`QUHLePscBzV|epg)?lksek zczTze8yrvBU)f)qT-+}=K5#(krHi8UNNAxB?6isw4j?`6yIzIu!pu8pQzeFbjC0zx z`;p+aL&M-@-xVEPK$hA>tKabht!{+ow8=tO#O#4>qjyO+sULR;J+p-Gh#0z5!avl1 z$PuDPLH+pL5Ny+d_N7$4ly@)#L2@tvCyTn$DQwqbegZ%B`Y}9JI0i9CQ`p*!xnZxz z(sJNC$DP0553YF=Z|*95&BRSjj0dqd2k(p9FUwuJ?|>pleod3(RUOz7yX4usow=yg zT_c4(A^k9|N^k7TX~N|>e!7^XAtbQ-)99Gyz|^EY?x#S1T@PsL_J&z;c8I6s6$>?J z42~zILCKVGRqj~RWutVC(A%+DO-X8Q!vpS!bQ!YreKPr)V8vMviDz$u`uGM5cjYfz@{!xQ(+Ip%y*SFE^j zWS-L8=g;$mfx(a~RIwlrz+pFd|| znM|n1A6>AP6}!1C!uv|S?v2ZAGYo&pzUHWqUgW7NTbVIsG#xcP%H^oK20MG#vzyoo z&ag8Es!&-pty{5s+!fV7j-_yyn?9;fH%JSL8vOFd`Y5e0ZBCl1SLMt~zzz1Arw}W9 zkuID|VVxIZ%1b0wIfe;WQ4zrS8f# zRae2D%v@JUtIDtWYb);W`#ALnY?#|WyfA&Eb}XK|>-OQ?^#;E^%L`oOThCvMy+_o? zznEG*Gkq5BeRt1OSVNog&|n&?Gk?bVq|Nj*eb?ye{vq`bS_HQC3JLl={*GAzfw z%(DX>!GLtPcHB1zHN1dJR?jKrHLv}?^d}$X&qDNm%k}B=rNyKYx)9Q+L9z*8v45hAB-H{mHF@xQOXUAb<@@iW*pREhHcbIUE1lIqCUorx?=u$_Gx6a zgc;Ol9OSzWl`eRkQy;2&)krBGg@7^>^qGBwT-8gsdj*Fq1X1gKMvrQ$ctgNLtrxZ&NWkz14)iRgsNLg-b zQ%hLTh&?x{sfYJazFnbqaio?ZA9gP^OP;O+hC|pj-&4Vx4Cv-JjebD4%zS}4%7-XxHy9<11@bD~9^% z@F5B%qQC1f#13`uH%D4i4}Ks}eqvw4G=7_6D6u*L3IL)~F_$eB5EDcu@MqMmReu6@ zs3Hei*dY&)L+|4!(8=1UbOto3u(A^xO3oDx=h_7q*?Z6W$c~^z+Rb|@w!!lCpt;&4 z)44G*3PRnF=w&(EYjvdYfSfL_czA|I26>JibML@Gm3C3MTTwjdP zeMi$v6yk{#=Ud9AT}$a7EX6O)#dj_wu+1nqmQv zqLlw1W$zdyS(xNQq*rn%vI< z6fCWuJ>MwrH$#v}PCa4`ZCt^xd`oV!J1>FF08SQ%^JB+!5=jKhh}Vvfd|1`-(r&kA znE1|^=bvu#cV79s0HTfzR>m-lR)(~;hS2SiwXU4ct(ozs9}%wzlHI^&j+Zn%N+b{N zFvKzPMR;Kc&F;w0ly2?PcNNuztyvhy?I)^=TLu-Q;-)M>UVkbJ{owt6T?%GXHe&C) z2^WuHp&>yUsq(r+sBA7aBHOiG^sR_G6rw~e$4nSBIwuRT9V1$yS!^FDuI!h^Ypg5Mnnl zRW>5XY(@&31%p)ImS+w$Ywnu6lYdKrRPm|kTk%B(=&*wx3(PfCl4Z@SvjE|X2GJ=B z^Mm>}Loia+=owdOx11p*NbcE1~?$;fWwF%7)u$zRkBMi#P+`wiuSBgkG-Q;sd@(V9wHQp`GlP72x=mo zRI|(WI+;?Y(=I_dmV6i%{*-`1eEoBj8v2&R0ieIFBHsZ){|83=_fhKqhnxFbR`AVP z|9`={C5iuxYYE*hI$APaElcqMh^&Cq&YCC%BS0>RmL|Iy#j+N3PF$>gomHL`;{S<@ zoUT@a1QUYhW`3J~<8zv>$Ir97{sGruOB@g#14^Scs-;0jazC!R%Sf2JUWlA=Y=fvM zJeSfnk06M@;GuJc_8BObP4f5b*)?X1fis3~i}RY=Adr0F`sfL?O^ z!cuSAE{$QP6?lvq?fcKHiLSr_Y4`6*4e@^jB>#%5qW(9l81jFb)>!_T5%r%h_`Y%e z-x)6~^e)a8*8jZfU+F*p{xknE(&B%vk~OdwwzIZ2F>?OL98MzW=xE>}`OUB!e5<7X z2g6g@mS0!H;AMB%L!5*tDAJx7o?}W)PpxMwp@qb>fKqLSDMl=4D9acGWgdye0q_5e z>i+9M?{zAifECYW;kAv=da1L1`JLT?>g?yU-F=*Wy`l4Uf1TC)V`JnMg2g-OH^$Z2 zs?RE_vb#Sirx!)1xZ{h)kRudvJ2^TjstGDJ6%~-B+5O9X?kRNmFM+})lMhQM5^k3= z8$8HjF4lpU{)_go=*YbE+ozhXi$Z}~0}h*+mbDN-@45?bue}D%gU^2SLy^iT(oeJKK3-g!0E|Egit z5c)1XRGy(^m+Q(heUKG)U!v++ZGfs0i!6RAK4BAi0mSsPtQOgHrrsjVt`@gtvNm|( z2E__!2);ul;NdM~_E%I2&R2=%l_Enc^V*l1Ffft zN|l0>?+4A@W31qg5lMV1o8YIch!GjqDPg>vw0eiqO6|UK?rStNJmVmz-1$8)#0Lx` zFQ0%;9-hGLv3vpsfyZxe9QGCY1n|*&=37=y7owScva9+r9htowKQjHC;k1J|!if&C zRtC4IqCT5Rv3GvQuu0jIx`IYhzp%>ppQN8m@l=vY{h>qtBp{jL5{<%$kRPbpKn=I5 zzEKR~DGmN5;vY)7sW3!_N^-Y~!rQw-FCKm2zZ;MBx~W-_F&_O%X&gS{z2l}+GGb7Q z$FhqE_p(#1i$%?%W(j;3?b)fG*b66kMWMob`%dyORyl>wt`)?!&vs}i&Bktsi2BPg zcs-6s(G^zf>g#Ui)FX6CO61Fnhv`4(o#asIIaGO$QCgy#phM{L5u&4l!Id_u8{TIU zKL1G|L1`$534A{ar2iMX{_l0l{9mg3-|AG_#6#J{`CkQE^DToxRz>l(ZJZ)A5Ka_= z_EF3i9fc;f`KgEnr2!=(R7HZa7T73@_N#s~c&b#%ThQ!5eiVKO8sAwgikSIz7L)%4 z`5k+@-2Ljxw9|tU*$ku9?YjGT>zMQVwE@%n^>$DHBX+k6!F68?!$$+bfft4!?RR^C zC?CzOK?Xegi@o%qxIwT(7QHcF^-aNG7!y7U-^T8ME?hg65UPXxpiiiON97V+EHlYn zBY=&{l2f@#y$W?;vKoJ8K~{A_C!vZNRaRN5RBP5s*_piRtdeso{_0i9F+ecAA{jN* z9I%+u@wygih;oP;~(YUeVmtzFGYuFnR+RE zWZAT=Gk6$*s@%kR%mM}&uJLd(m3*ndeoXg%g)7$xk6G*S|Nvq34Cu&L&}#&ryy-) zm&8901$CDwK>JlYS}oaA@+@Qalxp;?T&9|}vv(D^)5R&N_CqChg-UFblcA~Pk7|#` z`N!=fR)V^bz!=8t-Ju^cubg9)a_by7Pk&zwBq|*uBW4D(%1HfDOi&mCh6J-jl9^<{ zxo!-pK{?o<3TLV55O;w*e-`;I4AztYU^TdtZf%sfUuvp!*$pi{)m>By@rPX4vT{4|Bnm_wJS1kQbE5T^If zuRSM--c|xJnnB;U=%7)vF#GfiV%b*3e6M1MGoWo7LfXht**V zwg5@-I_ZZ)2XJM6f15%x=^6%c122NcZoHvDn@CXIq1XgNwzEiN;q0PPc0_j|MR%zF zuV^+p{XJU-hd5_8$qhnIIX~VT(HX}&`S#3B=VuabD8>)uz!@!P?wx`}9jXdh z_OZp7^(|KyZpkLMn_A>u7xA|ADU4UwtRL_m%~35D=vHu6WvEM(GMom75Rv#%T>|b2 z$S-+DBW|<~CA=^RY@y);`Xlir-Sf7oJq5V@*STV;a`60u!Stc*gpe~l{SQfA`uh+K zkRmH2uPclf2IMqnA8g^&r~XOZ2qEk-%p#44)Bfc8j$d{_1s_dyQpUxs31t9bqM7bU z2Q%vZjOD&(JX4(28TK}v@{~*Ov`bgKCb&Hs2Yc<&$^=;vZ7Y)F0GJlRP@Z^n9L>~| zo{!kOHG)YE>Z5G&*1r6H-uX#c^>w~rHt93r~c|Gq==2frY zkQmW;rmf)^+P?|3#S)J&T_+rAM32D`hfp0ykF!S($s9iRB`Kj#A8 zAo{KD?}Vq}|0VSJ_tW7&s@?x{7pG=m{Y|j^pT6#2=fsfu=0DDfuTA55l66?w-UyTe z4MJIIX&X>!>5@>OggGi&&`7;?;{xqD5?i(upji6Hesum}bV}bCt{_8IoR;utuKgnV zPg1_uJ%$A*x3+cJ#+Ff6^PPZ~YzUM>sAKmV};hr)P=6#s_(~&oO z(cw<%M{)Oy=7Z3S?uhiaBNId&J-=Za@tKK8il3u?eY^ct+!ZnSio9LV70YD}Ya^>jEjetMlimJ(}(J>(0*>cPxG{!-x#7u5TNpSs{ z8y^^2Iv z4|a||H*+S~ z)CclO=$qyE( zBm1L%ynDK8%pZsXI4_SkEs3#QG+o^u$H-K=t5iAoIVA_C`^SO~j|wQ-TC?c9CN8hO zy`|yEtAVL1v6b%^=TX|FQFh6Hf=wZ{X9w!dfZv>lE!jy~bN4OhLlY(>Nk_?8k(_Y!|54vf(Wl6%hbB~cm_9`%q1j=DOlzRng{r+9 zVGRX__c;9Hqeex-8km*nOrNZdH*hr$gx#GUn>D2=JP%U$=N1|)Pxgug;ML^lE7Kv9 z9URTbQq3;luzRz9m|iH4VY04yD^Ac)5BUpnu51!-*P-w)(a%_8XPbm4Bcfd_cH_rk z2U6KZ1CC$IKAqZ8?XQOTK5WDF7rtQ9l8{>U|9a8X6GwMjP1U2L*wk^j0d-(*=2!;`MtXSwSFZouzX z+g(?XKA@n1=AYn1flj7Gt4A$LZB;O<#?o=V1-wJm=GHqBnnVRKsCO;#eo(dD?v{>Rp}t zBItn8|D$vkUE;U0(Cg`eT#$-mhCs(1WZ%G}4dZb#-Ets_fZ_(d8RQ%bj&w!f+*w?^ zTNp3KKVYXMEpc$_XdJq41Wg(;OnCB?>!6rQm6m4EX7(FZ0 zZz@Z;S1zKSP6)4Z6|6}UqArqZT92jR0@8p@oj0pDuopTN6rpy(x{=p~@ENkrC3MxrL}VJGfs zC+=}4?y*TaL=`{p`lak?X4gYKO5B>LcPq^S@vFPf#_Sb`a0oHB)0#UkQdvrOo~eTy z*TXQK_~SH9TV?*u(qq_?4c1hTdzlT}^^9Zk1Sza?ebO__<$3jze8eIV`N##NHB_~tH8Qaj!WJQ(> z&VYuK+1H|kl}i6E^CL*QE@PC(&Xh9EO|98R&>Yls&YJp4O|ZAcd}})llK>}aEk?Tx zF+RoGWT{dU^43yh)O8AyE2~gZp;xS^ytL1s(XG`oipmS4I8RtEGu5+Y{8i?ldzUtI zYSyv>>CI9=!Zow1DGBS$t*Ks()hRfV&X_=vr}`;&j57^oBZF8q)dK6GYFqZ?l%hs$ zl8)1JtXUgbBLlD70wpOPBXsdT>6yK*D24@+)^t)PD)U%;hh(?bN)^t?=`zeGrtmE3 zjMQp!^4Q*sKZkR7Xh3t?D+$8m1L1-}UbV**?eT=6YPeU>7r3q& z`3uU!;~lu7=n-*i`Gi!SNZygBw+mKttpKY-?vdm~^S&3_VQQg5Zb^lF_PYEkA8tlz zQgx~`Yp8P5?wEp2005!1gC6>U(ItpJ<)(uA;g8f#Q#iam$I&|8+7_;*eMfD- zeoeoAOTWZGo5p39mRH5?+CIjJs9D}K^glGZX>cpruivt{|326g|F=rAv$J;kSA!O! zC@T%jh~Q(&B~xNvaCYF z=Yj#mhckm}H`nKa$=%8DQOGhwmnnH&9C+MSmI&jFw_-?_4-@KbG%S*7DmS77%br^I zJ?Wt_K?d`$mk#;TD2del>B0(4W{#)_nd*UM@o{bYm<>&Bi882YEAtUEo*^dTz?Kj% z>q&dU-YexV{8-U!MrSlBxG%ZlkGLH-E*S8ris?NN(zQVDXr8k``w|WKB50M^?LNR5 zr9q0d0EABe0PNX8h!YZ)1~tdj@7f}%mBKjQNUHLFavh>-M6ks*_J92SRZ*F?bl)&5 z$p3N|{d?#9ABDO9xpNk^b$0xJA}iYV*y@;{vCVT*cVue&gAvHw95vVziMVCzXVM$R zwrddFu2H&elK!s5Hi@#vV<~FGbjzti6Ez$3vd})}VLUrPITksk0dqageK)@ufZ@At zegjW3blv=bsd$;bvaFfFiozsIa+?19^7~wW`ua-nd)&gd18N7|jx$7`9{CdhP36c4 z;y@VcaiFcxCj^Zrsz^tQdWa^{K#>+F6+qfSGjYh+;Y|}7w~zd{1OwGqX{gN5d|*HE zDR|)%Q}X+xnX0$kkTQ_LdA8;mCq;bv!u_gY|0G=MI5c!fA#1z)x&A7XQ_#p`$gL2a znK4aMJblc~ba@7Q4P$`HeA?>~Nb;@F5`uXS%l)v5$7i!*_M-f;#44NS=t&1>xB0kT zTDims2$A@`nuEu1JxH@NpB>7GlV^o-ypwWLs}~j4iHBEB$ze!jO95F*%(PteDsg?c6rByG=q4441$*l4)hN#E8Il5Y$3^rD zh7Ynuz`DaB@mD1bx?QZpz)hS2WRH21M- zKs9sz-VD6V#`prdkbt@|KopD^I^(6fL4?-~>d@O&E^X}5g(w3D+n^1qS%qdz0z{_j zub3)}B<6=4J_wH7F_@$TmqVrL>B)Owi?#Upb@=HPnPCK^@|N2;eN#j*{Hh*HF?Z#fcgJ|es;2E`QPV)o zMMLnxUrr)}{n^IcB;ccL0N1fh=?-X6rf`&JElt!)Gcaw6Qz|ok#1<0x;jY+}D&)Sz z3XfkyhEPX3;}zrKiA7Zo1Neantk<840%)AZ?(-wO(a!m?Q8{{vdiUKErD2VDaMZlz z8_>y$=fY5njgjfu8&VmIXQo`mTU4#PTj>Gy+vw1`vBUG{&`>)=nSr(&8`$lBH&vdh zU83B1dvZAFjg5oBL$kH2p43Wu%sBw;%)S>E-f(s(NFq?s*FFJy__AOx z(7)_vV;SyGSgFj@t#6OG=b0(rVx-yB#J0A}6xT}HaavXjGsPU%YDi5BM7*PHL+JS} zACt3_#|$aH?%n9djdtes)|>RyAdA=NniaR^l1ojJB1gT-zam_h=k|t0G%?&olN5N& zj@7-1-n_=xte0%ZN>%gjgQJQ>f0D{C@wcNmM)B!z5msOk<0k&@T$i3d=Yfizy}ADa z|M>}QIJRJgFg5|v^}CMXS4Su%a96mG4(l7vz+-#D+b5P3y&GXwVrKDlm`+YY6+~`3 z%;B*MmY=?rwVSa{%w4h&|I3?|dpDk)e-|(hIK$|?;KqU08?#GTyF8g*h=%Bi!Wq zyy_jWu4wKX;^>_bSCFV#)+x#}f)$p4KxBkeoEamah z4?C{A?%a2T!!Qrq5J%V=p`p><_%+XVq)&>~Foq)__vlU;%Rxwk2`+C&?ua^}AuCk` zF)V^;cLYa3hnC+tnG3}uTj4jIT3ejnw?8M=o71CejeG71U?QoJ))YOjpDTD+m-NBC zeS`tX1OMpn!+!tii>iIAytF$r>Xp>hmLAa7Z9SKt)J-G$@vtNrmrw{Q{Q&))3-_|pBR++L? zS9BfH;)JR7tGG7CPu)boiXp!PEF0m9{4xmOB5T7$@L9j>-#&qh@R-8A|Fd)T=4Bu3 z7jD;kSX|H?7en*S>;bi9!dgoBSc zR~eL9es+@tp%+9ph{YPFVhoCp`k7)bkQmrf>|ZSEZ7xMiOA-7GPIOD`{X%Uo(`he~ zbl0IVH0>z@s1_nQBSad?;1VgUy%$7(Y~nDxCi85+Ci6i*dI=t;wD^v_6~*r5k9qd{ z=ET4K!gB~=cHlpL;3EA$Ir4u$(JB5*LnUHj=whb&&4~WrU6qRNKNng^O9NZfm-s^{ zCBu_`xT8bjI?Ex zF=J_3C_gPJK3q6&3C-crkl<>yC0Tawr@WpU*D6K<6=#>~fC4RsnQC-xW)c>fy08M* zn)@^9=-6356ZO{+Jh2J;mnHyJWJ?1D*Rx&IP~QS9ocb zbghz;ZD6#d1mo4QRn0qX@vK$@GOpaP_J}3YTNix~n0yb3C@Szr;6cPGMriN|RPIhi zpeT)`d#OGqb+S;uQflC-?K`4mqfKmCv11>ph1ztV>aK4}{lg>SW z1ebAyMvXgvNyEHp1io!AY1U%%%2i8t;9@GL$RAP6k%a|SB`#R*Mr#161ii!j(q$3s zRAqBdcmecPg?auLh-?-cJ+%6Vt4$Do>zO`~&x3Ac8MKTJBG%g}tt4|%2lp%JMN=nk z;p}lBF-E?k1*krPFw4^(SLphI-c6sh6W=SaPlJLwa&EW$N;KQ9O(8e-7aZqS@HOzT zc6@RSII`>mO&I@ge0Z;Imf5VBAy8U0@9p3&^eDUmKNwMgLhQKpDW1n4(TX(;5$&S5 z8)SmW4`vyIIHmRe7BmK-bj?z2?18$k^WoD)gXzRquu6M`OHg7CNhnGq$+Q=12_qaP z#>t4r2~TVI!6Y)#pJYgzzRU3ye*Y+sIs=N$vF~R0?0>EM`SXst>>QibKC8T+blNkhdm_URNv4^>d~9;J8o{mEd2YZP#pTq_<$3@ zdn(F<$s3Rkxg~- zz3aT{x!>jndTqUTEYqkcP@^_dX=`(F?bGH=?8)jvqR+sCs@s6-9n)>0Y$N3@q1df5 z&@QcRtuz{x!uP6-rfVZ+^|Gn8IPyuVjG-y_>uD->jAo`_@|$HI4|5}>+`h&@hU`|& zh0|)bQ7Ue8DidujtfmY-Sz(#-2(>a3(j8??{&WheG7WA3cw zE5)u(HdZ8JL!$O+VJ~Z9VCT7ht*vRTbC=n4IBTh!8O=9q7&&Px3q>j6+U>vSWFfD= zp3idr>PP@5*u;XW2{}9ykp>36n(@`vRtk=qPP(pMqc&Tj%hHr1(`=Y_|1h0iC1J8@ zS#V}$P0%YiA!OcKSkS6tzqdCvSX?kcp|m}nzsTo0T?TZ?2i4lilO#e5hg4OD)>mv@ zu9{WtYcDlXC1O2P_v4te~1rDl~z75OoM zpZM=c=ZqXB4VT=&4y`OK5VT+sF#}YusO+`|BVVVilT@_QD;*o%Vs0ad*_osSOGGvz zZ_|Rq5j0|WNcHgf)Lc6hkq%zVk$#iob4!cPX5u#TOzpNm7<^Xwsu}G))LSG4LSK8- z^2fs>MqXhjhQiWTUV)xe65JWVYjaD(sna5F?=_DRt<%FxXi_X}Hj*aFT}4GqTeBHG z`spnK6XpRCWvbK>@he}8)e^{;>&{tUTv>=WC$Gz+n9OuBS=9%o!#1q-rr>@vs?oiCi~x-Rk{)=& zE)ZD)um554Q^hbB9UtU|kPk|quLrHq$GjwT#$=i#<_DGWtxka=T@fdR@+c;SyG=Wf_04S;Oy; zS=f%?{@jSV6bbZYgVJxgIRBmcL+jv&(bumqir}wIKM;FtSH`E!_8<-iIOefgigmji zNOUyR(UZ2h_tyBHIj|BxYZY`jI8>&+J`n7e{dk9)yeAB2 zlOq@@Og<{?Df3`-hL2C%H#~CtkEs=ocxDdntDBEkZz7tUE|C3}eL_BX)cJ*hq@L~{ zc}T`rVt4s-GLtJczF7N$)0p8!eIZnHd%6T?f9p(*aSMwnSaDqfRVq zF<{tj+1{iNpci9uk#^4?9L;B3$#+n>!PmYh($kz962X}y$ke2gm+z$P<>7d>}R(`Mz$6eq18>c z9FlC*TGlec(1cyFIt78$E@WQf%FO_pv#`p>wc{Gu8Xw!F&Sz z6)&jR7ArL_Al^*}6rZEy@aVW!Vf`{Rotcb#mSU{#y51UCBw3V^r*K4A?r}tbg;;hF zT$0M)S|qlpzY~!TGPLzX(I9b4-xFWZ&fTl$J`AbEUpbs+e*TR!%)5f$q1@Ca)0QU< zsJ-lOlh|D!9pZJK_p+#cGp~KKhy@Qv-8OjO7a50FZi!Q{>y&hXkLgMS^G(*gVk~X& zY0r|}{dsY`PR{X$(lgV0?2+dKIb%LAHtIwoe9mPU9>twRY`F!Qw?FA_c#td@SBA-g zzr{!MUp_{zZl2-0h;w_Y9>U++H~FbdgV8H14@3U+h+48ONm9+es+IwcXE zV8Ge=_M@>#Pbsdf)}1C->*=R?-bs?{-zZ1u_gb=xJO{UpO1TyI|EmV4F>hrYP! z?8l7Qu5NPb`)R{oB3|V}5NT6NaL+j3%~cPKQ@m0EiAV$TC%9-pDoJF3IgGE8*L&15pBM>L_Z8zVQ7Odb1xx%ErVg0GDE zoliEdS1I#5=TNLQCITH(aU_-2BA~f7Mbu*pDLjcL2r-wtq0yvpf ztmxEF*~G6{!q0HwGei6fy5P%iei9YaxK<+5{(vtfDGR5wTfETmEQDwb(zKqFsT?iC zk|s*A(Fa5CAkia@)T~|utkjpO?XIJIg-<|g4LYOJpV@kbD9aE=9jYiLz+pVZ(8RFy zPCwv|6C!oW(~_CEzt4V2N0u#+);YNcVG4M%r@nVp-l!EF6Y$(qe4D)R_!n`R%e1UR z{3;}E%lwzpsj3k8S)fz;8Wnda8|%HUKHRmlBVj{EP1%YN5e6@)Uom>oFT`+>F?VNr zAz+WAl3N%qo}eIiu($h39g?I=$y}9UY4KYm#z3!qYa5D^#x=yN);6~S)OX^XUanS^=Ih(GF93rSX`Dg8=V8i}O=iZ{6h z+_Q6MKub6>YN1e4w*?yDuoe%D$4sxN#|)k$FBmz?;2`VwPx4EKPG*o2WyP$~dgPRa|Fmu{14k#46pu^hCmm zZxUIZ(SvhfyIjEAJEM-A6J*3T5!I?~TvfJ*+S21W#r;{mmkuoonWm{CyGF!<;?9XiHWy+kj;oUXSn8uKj(4Hml=&pMYXvJ!7ZtY?XkNJx#?-xXQ^EYs%`t-A7N!w z+X_`KMKXTHK%T;>RB|_nY=+RD;cXOO4avFSUn#-w_&(}hD8mK6&ul z&#YUDoTqM`{h$_mkwq__+7_$uGs`hOVxiDG=JFUVOq&$n9BTpx%Z-!8wnch^#~6lN zRzMvzM5LKH*q%DT_orXS<(`|E((d$}$t zMlFLZT1yqkJZh^9Myby)#%a~unL%c)H){>7&u=Cp?O;ZkR0MJc=#j?mWM`L-dqy2tSCU|Nf5;1W2aN=kr33!LOtcG#=1x8eMx)6o2JV6EePwJq zUbpy@cMg$$F5st+@Nis82%JzHCo-r1wM9aNJ+zdgJtaZt*b;j}uJGJuHDzmJAQXEo zdEtWad)^u0Ndx2d;77Fm@$)z}NeZ&@bd~l1K1d$|Zy0$6}E8DqBHHArw z>>aAyty1xpNy9B3S-Bn(-PVZc88FwjxJD)4FxjJabHz3y9p6yQ*|vS>D~wy!%x(ND zJWs)=KYsbwAmpQ-yWR&Reg*%&@+11Ypie>at5S$+9+gVjqVua>quSaa)|1?2yG=Cb zPtc@XwB`JrrR|c$e1-uzgN#ZIV5!Wy6V-~W?mBp84U%LPhQ2y`pm(HiLkgnQL~B(N zes8$68Xj_&I`79kCp~M$`ypO(@5c1dO^-357%k>&VjC}#50-5c`70QdYZ2!w7gS|N z|1f&D$l{(uyDqN?=tSW?Q6RK4m0&27o8qW9Br4~nF*?di;yWGI#MOeMj2`W=F-4{CLOUL`qTVLNw*GvMH7;5t{rstRp2#h9% z>GYT}F-}uQo|*I_7Z28D+14m7diuSz)u$Mp(jjq|M%<}+UQ<6Ez>YUi&7W<3l&CY! z*CRr=c%}>N8%Srt%viPGJko{$pRu%fLm8(j&A`yQ?d*l)P$e_Up&fKOQadJ1T~0ga z2cFoERXti!5VG!O>M1XzIjsf)C~*ma1$|$8b;NEK@DiM zVmP`wenqqXIby$GB-oOq^a`mRAba3&QIJpcqg;fFiL8r4-23_cgFdbh+)6RcX}mw@ zF%C)Lj{h2Pv|OHk?<=C;ZQxVUUU?$Po%@*o`lrS|gqLfp{~I;7Bl&O0G1-4Xj{i3( zR-?AAjBSGQ`1{Zev4~0!Edr&6>XEd5)x}v0^b`V zJ|dpyeOrKwDq^<4ZuT%`_JuT}IMdd-YV3r_rEJRK^;gID_%7$(#`ou!e9Na%q5sVDJqS`NW20 zh}U>__1!Y-G-dVyhhq1rm*UMH6);9HrD{rZG7(yoQUbuKqN`9sQ+K-R;XC_hk(8F6 zekiI$h_LST_7V9uk&gOSvq8ZmL;t4i&_s1XI&+YrQM&Emx3eK(5(cT8ypo!UPjUe( zQ@VkD$(=L^N@jwpMQyTnaxa_ zPc|r%_>}qYBb@Rn%nyN$}kN_A5s$?fkdkw_Qy-v8qd9G%k2!!w9=j> zUdax|_D{$2sY^o_SP?ajahGcyl^6PKb!UauXd@^g1?)^sRJBp1@lUG_Qj8JKA2g-UzsLU9AX9lYN%%M;buYst#wv%n(D z=|+yx)g|*rS>j`^9HB3WEMGM+X9c+Q<{IZXGvGb6SMAcXpgF?BI3gUFXm$iI%CwEj zTJSl>r=kESKvEj$H&CG8p=Qx&7$KCF#eOB%{aGHJC?#g}I?friicQ8OU24R2N zIo-i+q2AzydFLe+aggl*XQST`lH(iX7WkE2V8C71x-7tob2W258qL_3zl0pLcV~*Z z0Pt8ERNaP)i&03RkSaD;kI*By(^Bj1xqHlcPVNQJZ90q5PNkC??Y7xQVCIKMT?MBh z>(=b9BQ>&()JrQKG0Jozl}PwsM3DU##TVYXrKinzmfRf@NI0CNZ|#`NAD z%!FQ-6Nv;vS@lobcBKaQVq~H?`S2fr*X*ZR{%4)}ro48vIgp65esV5>L`Y9ZY&U1< z3pmCa4iOfC(!L`5T@pBC@^mqG3`9>jE)vB)|7gv4^wBgguR7_6n0`6G;T2;CueSc!SeQK_?VI6 z5~morP9A0yPWYtmAfquM%PtI+oQ2G43}45_o8>WmpznW>6umduFR^saq~ht+p4a)m&Txt;9}o{2VrM zi?i(X0N>^r>&fG3Ikb2Ey}0Rc>Shj^BdqJ1Zu{@s)sxQ?96G@F491_e9YF{Kzw-CT zvpp(bVBGl3Naf8BK01E*@fq@i<0RE^iPX1S%CWmsgw);g*f5fh=!M%=1irADup0)v zS;o?RXr&#&7tYfCC@#DjlH)XI9QXpndB-~wTs_Ew)m(4Yk!2x`NDEwY5VV+#v96R$ zY4W5cce(^QNQ|J0snK+RMpfq%k?mjFuc-0K#eMyM&?L z_~apTYM<8ZXz74mBVIlb2t((-{?Ya!lw?*oTjEoj#o669X^nT z;nVZ*nN{>^PR5n_mW!x{1+{0l&QxY(N~=?22R3SsY+ZPz3_ zl1@@Yv`6R=FVDOPgm%QsqUd6E?zqJ*UIyV$5aW_(Anhwe=34C*R65ynD^_nCacA?Ap;Cnn{hM)1XxHMo%tI#>Dn8aZ<3w z9++;k-q{(SHKiYp7OJ11TdybjZ?zM;C1)VaOxc!Q<d+L>EuE>*(6XBtv+ zH(5%fLAJDIxrO>DLu~Mf8@~^}@2X$6I5y?&lnZv*P#94c9}+oRJ+seJat!*$S5^Cb$GFNH({R2rmV+*R`{9#p z7+4K(w|c^+p}zO(6p~I@rpmuaFWUgG8`n|A=5E$tNiXwkl1Z%MdVraR#Bt(-uY6G# zwYK9(TNBIe6vqnUBl6d$%nDWn__fBaU#bc5vn=tVs@pfvTV&7_=Ds{J@+%i4IP)>v zZf3@-OB6qsYEZtwRu6IElEZpKZ<`*o+;GTYruQRr<+9jg$z!@>g~9LynZaiF7YAIA zwwTpV_X*cW zPA`w4@+FYm9K%+NlnIQW@>;`e_%C{I=p1&6c}t z2c#sulFhSM$(gZ48h7iJFe@dc^E4eQ6w@!{Bp+Y9GG}3TW90 zMF70F8pW+AQV%VFTW>&5K0YUy`kZr3h)QC@NM0aY1*-EIHUZT-1&Fn+PY)>Na+ z#6=vFYY_NG4(*v~5c<~M3|b@8<uUJBhEz`mRZoa69TGHkfVER6gcN+l zl|s}Ic1gPbf$co;-OWFD`;(v|!H|L%F8hD+^^U=neQOtQr(@gd*fu-1?T&3b9oy(w zJGO0GJGO1Jb92sl?|o6X{vYO!vt8M=7^R$U)b zZ*TumG8;r5#HJSeD*`G<)V;;JQ>~bdP}oL13!@yEZd#+i&o3+U>(y%5i0t>@-;Oup zK?6DF2h-+6y7YPqzZaFPup%9Jvi{7hX4b_4kgIOcM^5onXZAnEIxvh7Sli84GxKW= z!1TmY87&8-WpGaZ;y+qI@3j2>|BS+fk~4@2P)G73>FU0-{uH$SG_L%BWxBDeAi2O`Fsy$@Yzq6N?&ypX zhehs);bf(K`ax(PkGL&&3B!h?I5O@r!VFO#YI(MNBK6pkz(Yj^sQtDo+U6K9I&7}O zUECHa`R=)XKzb7?hhi5t7z@zhLH0w42ONjx9F&JsX^rbBY>6w-;mYa$mb@r9uX!Dw zZ&bEr1EoLVCcYIrOt4m{uwOLDg^L$JDhK6W1f#B@R|tRbN3w+r+K|x@wz2EM4Y%pU z=?n)zRRxA`l!e>&aEdDcpfyBRD_@0sc2@TsFI*h+2?Rfg^SK{wP%@lJZD(sg$sAW^ zIR)S)Ww>W+j$5NVh0h&WGyD6Nf#w~Fo$u+&k8|gx3~?stCFE5&hGh>84vUJ6khldjm(O|F9bWnUV@MeC)q6`aU;4JV#AI zt@Ed5iS5IVk7A=aiP8wKjia(uKEj}w*vZ$r}jynGguUR{r^9XNtUUhvnA3SAly=>HX zJdI{tebb%~uWf;2|bey`R8t!~fn1~rU=TGxl8DIIp=^|!83_Dh5<2@b}W@h)i zsfm)s=^`(SiMU=8y~VwKmG$r*j}*TynIK3U-ZOb_3XxeZ*GQ;dXg6IuBM2`>7#orUpKenjSJkNAj+(zxux~UA zeKxUmqfR`>#>JL6d_w^}Dd3F9mnm=~y`}Qtz|;-)q0%b7k~0puU71$^9&6D5nZ!&V zT4IexS2`)Wv^M3;mfjanw0ZH~{bsX-cE%N#vDmn)lw5IkX09nOTP0EK&a3_|Pd0ZE zu4Blk%9*Qx%|HtAWGB1tJUKxm&zm}BYEFvrV(0AwZz|Sm(MlI`kzY)q9fq5cD2$I9 zII2UGJlTMR4RdfaZ%?j>HSV;f`p4G#Rc30(Sda+mq%4QdZt6plK%S|eK*~O{FFC$S zX;hO#JsOsr`w4~O-p|ODmPJID>T4ED7H{Lkk>V2`b*}sIQivV0oG2e-Jp5IrCbN1B z;7P`ol0&lZ4^$D{P)XVOmD2urrf`1@A+D)_HWKY1KUpy~_nXJadX{;Q+nA?o6GxY3rr2{b97h`dfE^%~@U=c3|tWf`HRvk1M z23h$w(TE=s>pwy(RnS134^S5W#T}#Z<#UZ{V`AmRb)n z>S7~fe@cIJ3ErsmUV&MDUUq8T7Jt>sU%8?ZS0hepSjs`0d6%=%`>%Y8Hy>eOdB1lM~xW&ua;<(j$cs(-R&Fcbu7Jw`Yb z{m@V9-DhMEeTzt;*Ru4Grt_^r2(|r zj3pS%f~%V=ZHnwp#zJ&>(Z+|z&F$&YIwJ8gs(BM$7yrV?yIKmK4AlZUk>E$*ZJ|C` zFKDR@vEL6l4TMY7maEg#`8=C((f1y6A}%3QiIK-%>zI|WsqYV(QYFe}hxP@XXbZp= zRr9DMp}+O}{euGBLezvTo%S~6}PCnR!4V% zh|haKOwFLCV*0>WvDiCZXZpLM+zFd$PS4J)q1WMfLLTT~SX8_3%yov%A?8NgMe`m* zsO00{+4Er_zl|Szqh(k$NAg?Gc2+Qb<*kfae-+7F|E*&CusPVmg~ zP!7!85y#8I!&TvsS9Cz=y41Lbw3pAj#XFoa@&FbwKHtKs%n-G)GsQeZkEZTn1EY;`6kATsADxWSYm?o65(MJ6dO) zEzDRpOxOPbC1xrYF!1Ytdx?j2*w{D!!q-Iq!g442C0Nl#7!?`Ua^G87T8eq_(H4md{Y6 zZaTz7tys)+)ezj$3!zMY#A|3R4V7;p->j(B;F0g53^hT!Mk3Se(`4*Pn~|Mh>{;l2jM zAys(~6UKKaPsH3@8l}Xc-%W+TzI%ZZex!uwC;#c`UL^TaD-6ajdXGoq!Y}(P76?SG zs5}aLk~BOe1>O+5Zj*g)p(kg8hdZAJNKK%Xxeo(aHMrB()eRhqO`JuAKC_7N)W7;y8lMe1gXHMqB?(zV{cS_J;lC0{`$B&vr0& zMfxLYV`f@o=I1b|d#uDKIP#rzQ*ih0)Gy^%j%R4!$fp~gckpgA*T10Eyzig7L&I|UYj`(I?a8=3&EUj{X?AQ;UG<4LVr#)zu z;KzRoT{Q|O-h8E>rp#2_Yv(%WzC_PknsRp*S6olbdK^|epV^i4{Is6@-Cclvjfv?D zj=3V0UZiBIuApi?hHvTV5mM_nw+zYp$bcKGqRFeI+DD>VXu8szjyYGHN>-Ug&pys0 zsEnXO`SfY|)i=rSD}$^W^5P|%UzKgqMZ_N{w1BsoBmJgYqO{P23s}9)TfG-F{SFa& z(N^A6)ozLZJtocf;%JCfY{J@jQcb@%%35aW2JTx4QWh+*m0Q~$LnDTcvQ-Tu>5xUcr7 zWJhu1Uhd>WcU3SJqP58(=lS8kIeyA9H7LWdz}1RvyYRi*a?r$*FLov(&eBM|4n)1g zwfx}5plStkCdMV0mZ=(vL7SkJ9;q2Do03#3)J4S=_cF(pqvm6wMKIomyg+NGz_~iy0pH8 zzp34-`^FX)^*qNh{IO#iaX-~l9&(c4|BOR)ru$;u5n{|PqgAy?_~WkB2_0ytH>0M4 zgDqfzaK)6gfzr%_k@&>L^9QlJP_UQxAFH|EGGD4MWlSz!S&nmSR~ zD73Bj4job7b=73$QfJ|rH}_fqVLas4jC$WDKhpFQy#-tZUi=mj(IIA`B>vrulV`#+}V1q3rU!Df}k8Vmtz*Oq90- zkV%@|c5C=I{}Y^!=8FSW@|E^ihxt!ifPZo_DE!MBO8T$sf2Mz*=uWvWe`t_d|G@-4 zNZ&8XKuT|T`dpYWawSqy(l|%-tX7R#(G>i1CxVy&$n88NS7Jq^0gUXdjp_P-dqb-n z`s{n`MfB@DU@Mh_l=b-N_oZOyCUtl_=~aLmC=nJs9CfhJCwFC4dr@44$@dP9L(QKm z3_+RVjBM{!1U4j3e!A4f>@8xlTKIwEW>$^eQds>=J3{Gc^%pYFH9A^L;S14Fy5)oE z?J^8RYa`peSO-H|p4Get&u?zE3?%12BD-?%ZjZ5D{k)NzGpYtQwIH#? z=;E0l9a1s3{&mO<$=3jJ^d;3f|F5+3|I4}4|AUzKpPTm|+Wo(8VYI5Q9jZ7QUwu>k z<1W%EX~TT@%FH*b3`3l`1~PJ+Agxg)^GItV@UkXcuT$EJB~v&2;0U#{fmn0GRmcKg z-hF>5(ReM8tM|me!DZBZ^{#k<$k*FmW|tdYm#t=|`{JJ;FW-7JD{v&X>F{ACGud(t z6o=QS3Tg``cpxU*xi_VEGyRjKQd}}IB^vl`nsxn0%dM8q>Du>K_3H0OhuAa`|9~qg zHl2FYfs2UhSDd@cwGbmUQ@@NmW3Iv%kuT!O`>xyANOYUpwL}>&uDYysTEE4tJ_X*` z1EIm9%7CXWbxRz&H@qjm>@R-AO`tDYSMM}uiBTQ9a@+i*wV_LC%iBwtKk9w=rCPx^ zUs-#5NBFsNYid?)b5h7O-ne=T<3C)Ur`zp2dnp2yBqh*%#?cld-$F(6Nn1+JDO4h0 z4A^DcZxWch37C02jmMiV39H2=tKycOMreoOHaGyJUP`O4f{*|g%}xHoAolHsTE;sE zL@XsLaVE7icc@fl;nL|~!*>d#8z@Fuwx2B>h{w#$hus#V>)~Kui{Y&eSG81GuU?jI zoi`O=`nKr)$(ph7`d;5CYjHb2fiOP#`^dDZP0-v{!fB8f5VwiRdCxk|ieN|_E$mJf zO?>-ZT-@`fM~G|Q+;ZWeaHGY7I~%*M_>`k~4;19ggaK6CvzC)rRGKe{VyYD9HD*ai z?PldjNI#~U8AOk>Ybh!{fk9I_aBdiTT0g-xqJ1rl3Dg+29chJ-=`Uu(gN!xiO=$4B z59y`B`BRB``Xi&DKh3(XC`u0Up;Jc;1D1L#6ht+1fO)bBk3V)5@V;}M)+eUhA#9j- z$r(?T3M4VJF>H3)7!AOH_V@Q+)WhURjxlGWmEg#D)P+7zv`)y6d0huL0Y=EICP5mm z2lXg6Nqtm`?Vi4euoB7pKvECdd=6Q%%^q)&t{IA-K*HibJp3aU@v(v$K`IH^q(Q;n zIj?p;On+bobxHjc42u?7hUgJ^Rg@_&5ihsHZY_VE$KH?)hg}W0X5#>aqwN$5e!s=( zwrTWWVAS#zJk1GQ6`I2_{n#3xL~tBV8yCfIn9#}b@$cUK{qb}!^{jLL9+mF~35+WCcvL=#>l54#*W)iAuW!NnP%gPH}o~S zNha3ws(I^TeO0VBhQUCj!r&vDrAJI`!&j4}XL1MQj)1|L%tqZaO&hnhGV9c}m_g0X zjuY#2^o*-O;gzl0a=3m?Ae{@)tl+x z2jzOahC=9hC&77_YPC^qd20eIZaa$r*xWpLKDewUiJ^W(wuW3)VbpZC!-xhz6kNU@Tr!}X#Y38L);9B91zzdCznTWRj*SXz@|~CVu!t{2}=*QT_XU-p_BG zAwi7O$#ae}mv3Ru=5{i^X;L&yg`ywdl0mNkOgGq$GF&30PjaSj-M;qplJ*ZILhQkm zMUum;OcQY^^#wvO5Ex*e#10Kg#^0JtVZ*D~!-(>;sOWcY>a4AfIZeBA3YB0iovZu|&5?uk^3rmND&0NPGj)>x1y83@svM zbU@rng`;x6k`yRzJmeQzxljip=iPs&A>{5A{n`IAhp~UDv;Unh{C^is&VP7u{GT!aHqWQ*C1C<{&NaiTj_L+ltFh2H53Z|Kc#ncm9pmwr0b*%_AE<(AJ^ z^H!S@H(LHMuqrWf7SvUPMP8)?#a|doaI#pKz+RtM z^H3!SpbX8UI~h+$PquiRv^bQE{>yRXRy2RF^HjP5o`2+MR}$z&HgAuQOH{m4MwK^) zq2eWc_N3-~1f-KxsSQ}Ld4s<(2)(wzbhM0UTvMX@mPmfm0i{0<(Ym6?gu8PsKxh`4 zrxEDUKAVd0*yW|T-`7rSt_kR6FJpR0wIBsL9Z1$SMlrV&=qRpxPreaqrulabqfHS4 zoy2r_ve71Ibyf{^4a);uc>($i2sF!q#U}e`v_?9DxB)P(BqNU+{n!VGTx^3yER8$T z4s;}VR4q^lzFT0$R9H*EqOlW}0BGHD2w)qwGY+4*d7sd&;O=o<9K^+#DfsVkn5u1j zaP^z2sHd=|?=0Xx$A27TdtExJ^}l_<3^7iLG00!n>M$qIz=3mIgOvM-KoL@h83+k7 zWdE_>9zD_$GV&N*PCT<3TCAGlIzwGjCP~MZ)-&)qeRf>MX%KX13CTBHluBQ=Ajqq( zcjFG+M2QfinTpZCpov=VQfL@UD`yzxpT3O7fD|&6s_wku=_HHUOKdUpCV^+3XLpb8;PY0{*f;uQ0-B_0EhHL8e2pXS z?H2x#aai?!MTB51Fi%WH^6=Fd=1InErvj8mD9?fOfz98O@Z)`vBR8jEM6|Dj#ppcR}Ts=jbt}r>9Z)0(`X|ImLOfh(n z%vMka^5XYih@CsnW*#sO0yJ<+_G@>I4QKtAEc?qbuhZWV71X~S>jgVje;be+|L#wl z;M!L9%Iyy-=NmJ_c@6fB7yX+tbPwt8$WO=~X;y;4T+nT;JRrySp6qG{Nc-e(n`FPw zFn(jK1%e7l3^NW;Zjd!)2V9t}jtRg6R~(`^b?+zw!xN8sDRtF~jq-zN9I7v-;kyDq^;r2OR6aOcJFKnyXfFM1PpFSG+p+=eXu@ z9e0oJ7M=^cukNAWYpC>>Mwx%Ebt#$T4AnRjW_4QT2vx5&L8p_|RgYxydf9Qd?t$-VTl_)JWWx7r*q1+p@?zglKFi#= z+sb`P{f+QnyRToavz>cii%9H0B0e<#u#gB_I2yTF8#w+Osr=9GwNg#n8t*Gi$JA}n z>xR3l-DMcJolI^iW1PJ-gR``=a*ul;9A6l3y(O=5m?!ap)9dWA!ioe(aR3w6A%nF z$2g!5a})f78QIxTk(V~I7sgOjkdq^g&B=6=p5~bMXJ>x(>1ajvG^yDiwTXrgPPW4e z8NFs2GG%|yzvraQ-&;|OY$+9r23{*{P0$+-$nW#Bo6aAMQnG;KnCRz>Fv*1#nj7ld zv51qv5s}{9%0&wryX>m{l!-abEK3;fB3KJPp6WleH|Mrxk9DHfi1KG10F|03<5neF z3@KMf7f#LEN^8eH>OvaLPF6kYlQXd5{TBu*^QjDm#cDNYaK4O-YRq!C^AF=8@e}U| zj)sX9&)3~3J?B`CXf2O%Ib>SP=6jhl;1Slozx zfFS2P^LJSXIUxoKWnfzk8Z|~l)oj(X0stUORMT|ppPo#`K) z$TU(dqf*~cO0}B0^vA#q$G|IZjjN8y=UHHO0g2+xIdW{wSZOpWQWkeDWOp{o&QGup zl$YXmXg*<7?zz5yWytKbxttv7Y%pxfd*Fbk_l+RfEB+0*t00MnK*ngw$H0@VriZ^j z>J<0mVht$_74IVrekK^YEA$GxJd|25P8_e?C>0SeKkBS$x6`Uqt$|7(3e+kzSz9f@ zkp`nU(-ClRIFY&B(t zTYNkM?lY?m)TDksU4y?V$QpxzIOVs5j(cS2K_)Ecyz`X?k}4#z#H!h~hMgncgk=Gh zc47@1&Ew@-|HZY{)JKBVc|zhc$Jr|Ss%WxTQloHwl*<}T3OkNIJj6STAOt)?NCI(8 zrGh)?O`fTYSVe9kWCTvPHmJcv|NMSfhpz zSEyJfRkZM0`ZeuD{37d|s2CJC7T+Lkahz@E-@(u_GN<{GoV3|si(cEAW)nH&Q%(cT z0+~mjIh?V~_6SosEu7+~4QyK?M|}`&w(4AboVvPHP6!vO6y9E&RlU9fkN&Lb2G_u& z@4}e|KD4OW2mX4pVOTr^#~8;8toFtP$656EOtyuVGh2>#o-IuGH5qt-?;Wo8Vsg#` z4Z)o*%RHJa`nYytX*D#~VC7)X#MOHJf)!ql9?QY>I76t+f82~ho%@a)43}N{;_(ml zKq;~-RNs@dZ+1j>A=>P6&8#Ng;gTHP15}2bq`(4Sm#S$Lp z>Ksk{v^Jfne}>o&JCV*Sg9TZv|C-fx7tY{oU89TzGhc(@mC*dE(nj)cu#~h5(jl zB81JTf&tx$ot^1TzII97j2+MD2tILs7=>BLHgN_{@Fq{dt*3T}5kEKnTl720Y^74I z+yieoc-75GaltE{(g(Yn@6glzbXwb0LMpEHAg;_LZowO7!GTX^k8EZygU2IA_7N;e zAfo=>(lhZ9!yd;owJ#0T&tAiDV7l;&=qg(Iw+F)g_Hm+5$LRNQ`Y(>onS%61KK`|G z|JP$&HP?P~ytkm|(wCWRApeL&FTX~ktg(AHMfTjUvC=dCDh~YJ3*&__HO%imN!ePP zYmnEyDd}Q#^@9Nl`AGMvt9#Y2srMPx;607;@2-EX6>gO7Q;0(Z0|VrcwCxkYyq<9V zL?5Bek)XD9)LwPRiCsl{x7X^OKAn5u<*+RNY%V17&!>Dr%sIHi_k0)JRVohV%7v$l z{=P;nZL5S`M82tJTc@tZ#X0_dJDTBZt|j~SBk<}j=mo#Z!#_r^TLi$1HJN6w4yc}` z*8-vT7!or^ilh3^fA?5s?U*ZqevvVlNdL4+W%!5L;(t&v|FdhjQp3tVX#v}JN-xm_ zl!%CE{PH^p{3tnT#BZbob0`oLP(e&oe`@OlGFsAqkufOAhUgWIdSy+P9g)PH3gAiT z)rG*R1|yy<*CLnK>a3IMmtD?lAf~t`?70bF-}i<>@jZcKAHJ$nJ+r7T+77^TY+lBQS%wG+V+? zMest!9$^y+A6Kd7!g6n+w`!!vK52Ycmu15RA;idSM0BnV$M8m@O|n-{bD?nCT=M?L zSWcXlV1t`?8CBLM_8v|ITqK`^c?Ml_(AdVBd+yCJNofN){HYM7wyP~~$Cx=@YAL#+ z0#|Mr;=7%RosZliaqhA3>kj^!2teHgQgwP57#yZ>p>iy#= zv+9;T5;1e0haeu!8Qm{?ZiVA?l7ZHO7^Cs=7s^pR0P*Docl(T@r^6P;Lov7~(ab zYG@kRx+MGLF~Nvx0pAHKcFNA)uqa<_m)@0(+n0db$B~I8_aMeGL<%ci3~o}nerrgE zb5K7Pi9_qQr^+CgI~A$*;!UXT<&f;{``ZU5xHX|u!{4gId`K|3j3Eo2wx^;KM%_DY z;?9tTyW^S2cV850L2o@w>`Td=1=Q95rwm1=8*-8jQdv0k3v|#i?8B38!7k}*4SeICCqC$X;g)amI(n25`tYt_r3ktCq55R?|%l;KG z8Nc7ofwH6O2D0o$9)l`JZe!ME}AtL@RwBLcL*qO*6>(`oh(%~>E_6IQ9u%?>2 ztJ_vXcYhBJaor;+rl=AD{!(#AUXU# z<=h73H&W(G-IdG;QP(G(22r|zo9K;yE}9=S=ztbZq)Qaix-Vh5SMP0EFViO`Pez}4 zs7yFPaC3zr{M<1=(g1Lm3|8D-yQ+k42C)PN+@;D6)H#|l9`V97a>vju6p!?Vz_b}v z`TG%FfR5E8hlVnb+w)CpOU%lg_7q>SwcE%iL39 z@Rc;GA-q9b;}yEX%EX)g1ELZb^>5GOegrewxGKk zZDWIhTMGOp9M<7GV#PD0U84YX0g;8eN0K4TA}oaQqH4?e_LL!)?OZugXNjhu2x3>C z+B}4k?>r%@a+l?wAycpxb?+Gbj-9k$WS!8s?HWm_wL z`WJhC%JbsKN_0M$5o>=I#;mV$1L2yJ$Qzy1Y95CDovAZ6R*cj5Xsym0QOyyaRK|Nb zK3U8*(~x2~N#Kh(-s!-BpBypO0%nXpMogX1x;Ux0#r+#wdNOZ@Y=xnDueR+jHHZCZ zg?76E2G@q6SmF|A#()&buRiNS`k6`glU~gcOK>jfDmU1D2rq!htQwPcXMfkK=I%XV zzf=xjpf!KyiIc3A6>>L7RVn%_CAWyhe{hKpYTZa>YQnEpgHtrBr}7FeZeq0RBaBhKD;2K zz2w0L&~smD*$^-pHX9I77}@?|kIi6uVzVJ&0Dh=p81R@h?XtUKgbpffURSEbHF$kmO$t93=6LD$tFZ+8)=xA zl8ZW$9bd6R$vZW~8igZ`jY2ZyC6RSZjHO1=4rdr&>L(pYMs*&Qx}|U~$DHaq+CFhz zq+jBB6Zc*^jjmQM@fY9I=diNwAfMw7J4TE7;d#|%49V(BII`2V2=lN;P)%)4b3(|~ z$#e|4du7S-PX^pT=-!a)I;Zgc=>P4WQF@19bmMd0?@@50j5jom_4#u+@ELsLQ`+$v z$?TdYv)|7BRogpgYscuF;IohL8k%3p^?epDqThL!K8s5H>YhO7~k9&=bAbo^j zDoSfYGeb4pszG|>$Xd66* zr(F7BT4niZ4%F+k%zC#50d+9&>!S=iMQeL|V-*&GP1a~$Mp@j=uD-lQd47fVh$x*! z!+a(=+rX{Ps%t%QKAc06V)CRCvkZ&&Mm6aB*d38|zVJrji136(SIw!;n`mwsZuWKR zL|_`P7=Nq9tyLSIw@h0&D8?w$v}ah4kEt!x6CjP}*K;q{XD(>MwV67yiI-F20j4fw zZ-TLxl-4s=)Yw^f!jIjPYmk&U)L%VDyuOJwl9H8huAQ4MpV}jta)SEj(=tN@@XM<# zz&r(67K*G4CsGA|jO$mCrEEPqV|l%7j-gDZ>Z(*;l<=S{b@t+^D*Xq5cYW;vk{VFYK z^hHK#+!_tGU8x0Q{?U$9BhuIXy@}EEoC{0>FlW1(E=y`!F^1n4Ebhq-L9q9Ey8x4X zM7V_L`&kE&p9ndAeK#>(tAC(ZekJyP2Ml0pTefK8JBP+)!S{X&OExba>B~9Tn%N38 z=BwC<2-xh7*Ws&|;?^kH3~DWmZcVJsRN3~iql-143U!|j2{wX;&daTr+YW-Bvh$X? z?ol-k({^2$-fWm+Y+a7-j{EW>)9)P$yRVNlH(D1rAMpkaPa@$o8|x9A_s&Hwm(iXK z6TS{97iG^K;4|Wk^?c&#i25sE5w{3OX=5!vVPLqbU~Z=M=G(H+X@O4nE9*9J2HsvO z{0RK&vFL?MaaG4;hsmZ6Dd{%~`h7 z&lV}Ht6?CKTx@o`mZaa){m&)>zCtYX_=~NP_+L$$|5xeyCp<*h&eqw$!q&u5!o=F% z#PPqfLZg+Z<#kli{$6(cx+`a#=>jp83Z{0(qBVM9(ifaVPC5*mqt6b5%8?Icq~nQ-?3w78Ru}ijb+s=_z}ewt^R@koi{{Mgd!DTLkHsi7b@ff9 zuf7V{$r(!n3kShN-E~@i=cf&wZ8d^@wPr%k!q&*e4KEqq6BN!V}t!fYBt(`-cwvB4j7xITVE7WUFH!Ik&5-)oOXzQ&(cs z;>~v|3+^bNYHiSUcAsB1xnpla!gCX(5dNt5-V5FztJ&icU+FNR1o6X7J` zH(LDl->8i^UZuV=yb68M5)BbXt7cF?hDcNUtu-&W|C$x+wDl)_`}e9+X^Ku6t03^*`%>f$p_J^QQ_ZM3 zVDc(Gmb?M<4O*a(^Lwy@1hiix*}Hs^s5w4ewe&$q<=PODX+iwzWQEOPQDp(!^$KQ^ z)v30Ut49)q=W&E7sD&3Fkba`fFB`Z)n<5sUC@=S}6jmjml(I=b@iO$`eOO1_*_1LXkq`?5~Z0fBZ zb$)+;nehrN|J3a`XVn#6XFmwr^;K2uBcBNb)77E~j*=%s66W=1;mqg}jiO35rOdW% zgFF3{GLaxGD?u9R-xlgG^Nu9(3+~0@d$N6nKemyY-47luuAg0%Zhvb)jK5e4(biv8 z4^q>H@)O$!{7Nrilf-Zjq0G)loQ}`eWjD|F!MW~)gMen1?g~P16y|4&4lg5HL9Iif zsq_&tZfq!TM4D{=Nqevse3hhBLiywT$z~twLwc->__I--P@&-IxPF*8;U3QiRKL4~ zs6bz%*Mkw9q($HcNvt%b%0_-3whp-t``7$jRf=6+`HXM3j=4NoSpvUV1d=j-*`~rH zo#+-mw$!0MCALm}IHWMw1U&vey|NrNev*_j6r>c-Kn$wlw(cO?RvD=XfxHyZLWQYK zA735m4gOzZ-!NaOf6^BY5cg;Y@5TC=$FMZ%lsA@sO7#c_Ksj3i=A*-bhx_d}cP~ zU3F?Ods?$&5dV9$)%_R3p0Jt>?K%q%JOgFSePGusZ2%*ZP(ww7*R*!hkRp_Vix++5 z^-9LhK~+DmY>jS-Nt>)1Xvse^IDAX~oM z2l27yo8R{AU$>QCw%m)T{ncsRaq?2Si(oK$mTQk2EHJs2tBwyEKNqA^YzdPe5o4l@ zAXw%AwTV6Dbk{le4N;6tP8MjwB7ssuNe=6%&;;$PF`iy?R9T#0bn7KpUcfcD8k zh9bJ#5jgQMN-)}F3lk*TPdxN1Q}@|+^KRo0VjhXwQk)Fj1Fja|+CjWaOQ~*6SGE}~ zp$0vxR41=V@}{@u;HK^X1M_H_4^$)IL@H)_E!Zs$WW#Zv;|Nf zqMh%w2KdlYy7%sq=~0y!$O_{Bq&C;jqMtifL~rro`uqJ3FhiL}(tq^|g;u)uC-A73 z54xDo3*{S(jt@(TXkA*W(O?H-d?|bEbpLqtw17PW4vwwIW^}usEWYDPIxlQ$acs8G z)=wt3L7V(6nQ79Z<2Q$3R~{??p+zK(p8(qD!1C37N+0Ve?aDWtssxpQ&ZyXHrpg?h znTeV7q2knNMnd42*~>0u7^1|-YM_SfkHa^lJEmQDZw#WpB7dp0D1-*?tzSQ)o1c8o zdVR3Br$SSZ>96>Qb?o^C&76{KI2J|l&R}UpY99d+5_nbzcxigC(LW|0W+)LzcE~YK zI$-Gsx0^!(%)ENH;6S?h(7d6kHCdk3RG#1hpD>PW@{iNH^38}_Ogx7aNSD#q!}U8$ zo`ZkiWjXEZxtWO|q~bIXkeB@mOT)~syN+>!D&J~M53lTss=Q24l_(GqQLDv3wh$FD zCTErwx$TrBpx_)~g5=8n#??zyQH$pk#~{)r9)GnbIN#*yEzNn$RnP^)IUn!(^?c4k zZlqP$5Qw^`cd#7AdENNz&$RA$LbE*MAO=3*dgGdpFaNNO68HN7!txIJuYUn)uqE1> zueA>k`k#*F|8b)JFUeoh*7<*^{>du3PN*hWd>Pj57U@V@l<7tBFg6w>4c@Q~qUIK4 z2}%X%=7OO%uF$Zf;?ywWs8LG2VaeK5^hsPr_Tv0w0l8ik zuwsBYx>=Ef7^~e^rYMYQzPYfRj466Y;dW+F%AANI!%2~DGE!S=@{9_1X?Z%>DE4%j zm}1}1T#J_CU5Jm0$O{OKb;U(SJqiSGBTBfC?+R98wS)){;^@?!hTc~A|A|4J$g?D9%mL`zjR`Yby z;FS5LnY1DOH5#J5Kq_o{+4ApelGe>khBzFsCN`nyCrv|R3S9k-s1Ew?2d;}aBt7BC;_2{P{N&vTFnS02zbl6mqm6~1-tH=Pp z)dx;T5q%kxbuTPaM_56STrH!D%4FZnO1cFunU5h=wYoJxMq63=RH@lW+HLc$Q2VH< z>O>3fgR^>D2+k=rHV<_aODX?k__z5SN)ua6{b0VHLga9zkSrM9w#4g5q1M8s-b_2q zL74$=WLrQalTM!moLyv*w7?_Bk1Y4Pq9O*_rSlUSql5HPRiAAvvD(n1oaQ(UApG%3 zu$5=FoZI~oP9#f{NoufxBBwuqg`>PlZ@1CGdh8F4$Qam9r`nKuc}>TN8an+1i!<=7 z0~AfhbB7_4)BQ5VmNNAV3*{r#egeG(gs$(*Ld4;C!6F1%UBEMCxt#5=6u~~}%#UF5 zzrSB57~%+`3zmZ$W|KOcSwGlz5s|X3{;1F1bAB*-ieQ)x_!r<^w#Awniy!}ZT6tQL^2Y+a#EkT7sR)^UFV_!VMvh7#CCN2U(`<%wu}UwmuQ`@5B&%$QDILb_xUJ2v0A>{JRG6KwWvvJogi9!4v-9n!f#?fI><^&mt_X>d>a4e$KU{-x%aB z%i;6g@5WAFU$4?8TROt7BCz4mzoAfMs@1+Gm0=7}&t#(BqR7ouy9lD*ck9FmZ_wEf z=Q5w_$!sX6TJI#No*eoPt0b_b=V8oV z*tPI^x_=Qy{#kU9L420r^A7P_3;a8X79;*~jNtW`>=ZEoca*Q2G9&9^3sjKwJ%D%2 zZ9X{dUVrtwU4}QNV@natyRYv!M$iF4-OdouDNBO@|jHovv^UMm*oJ9NMPu5g!iq>%MDabl-$xaEId zD*jirdXn}|0(u6fMt?PjNvaV(35UquU5w2|WL5<7;*dZju|?p8dq^IDhDMcCz-Hi0 z6K0}3YrN@!nh>l9nr0NYYNMZ48fy+$S-9l9;rxk5>d#EZ!y5Uulbp1 zl?;B^KRHmpgNPWtb|BJ-e&s<%+(T-U_uJgG)4$`;a9oGbSM+=lp2U?bs$Vfq{NOYnjc!(!iW-KxLCM6D}$|FPesdHgTTmrG!}6w zE&aT%LQ~=73KL~Tfhf+SXF;h^OYRW92MT#~u%hwoo9!X7}`DG@6f4EV{0ToJNp?p)k%)uvRr%E#efY< zGEV@GQ+~TR9T>i|fK+w(^LT>rbwt)vwbxUJyZ^OJG>`yZ$z*sia-*yWzwAKI!ouaw z5|>|SX)OXcx|}Aiut-WytmIa6s{%och56SYRu=anazttW?n>~2t#e|E3)c6+Pbt#D zdI`nW67!Wgo9j>%3L{0yXYwr}J)*TIYIBPni?vFP;cNPqC1n#6e3Z$8;uf;e1dEME z2FsKdOOtLn=Gn~okh|IASc8g>vv$#4Oi4FGO&s{z#)~ZsG?3XC2=Gf*Zdn% z{Osr=hJl%KP<8h-%(ufGw~nhGP;1Q|A<)l1L)*5ae&0*k6!EUso}m)fo`h0@KTJ_Y z;?a!IFAHzdPE!9MBc^xi&kjrGF!z2S0$bQiUNMGRXmBIxsumWekXIK)C0X77?mryA zQkGRiEdYUmaGfmsq9^m zw4e|1FT%vN6j^VWqO|xJI9lp?RU)LGxpSfhB!RQA+E>p!w9c<~s-((w4s(UsuWftu`d}17 zBc?X9*@7#5`puWrY26F1Fz2CR z6))ldp(*gj#u0l_5Qx5da|RQf$LyF@F7Ivz1zCEqt@FEni~aq^{ahF01AAEEqXLZF z4dLP}HM+{1KbL5Y|3{za};8?S}OB66)X zr z!d{;vA_;<7;!0tLLf){*J7h}l*Kn@nM_q(;NDwv_0eC zW5v+vBqw&i)Wis_2)glm7DhtI$WYD@Av`1c?=gy)zAA6~6gT^JH+sYD31k^ugG)@Z z>4OOkqqmq?le*G_mUjf|BH4k8qD2H?&dry~#RhGN91_el&z<0Z^;&#yDxUA|8sN}=ovgh`6_WScMM z*5qbplUo1H37e0PMYWXK(B8H__Rgq3#SCh6ow86>PA{=!xOth@D>%`QN2&|9@MaP8 z+PbT#Zqqe`4HNpht850<;~VSN-l!KlF+RZPPm&Oh{>3_FCIWAJsI~Mo{al)wW3k}w z%62_sGorVHBonmPrVw3(w>t2LU$+s*XB~UXhUqJYDBZ;Q&upZKCaH-B@Y{yzn}2As}AGa`0|G&v#PQziCdhNmul*p!OC0>!zErk-K0(iGB?s< zVb*x+E3M6qkEG<}heFk8rBT=+jRlkSYd6&CAmW5gMYamtzDmxGaYH4{b<1KbK}`F` z52++&NmjOGUL^{zcef4ev~xlYFy=9)*cRj8dEyr8YRZE)t46aI->6gZ=Vl!4ja|~` zaEr=(!Sz+Difv5i{oiL2rTo@v6yL44z`vYy{;OkHMKdd-|0IXFsdDC!_)WB$@; zWz8%xf;nOYn5r-E3tYLa5|65|bz}}sKAsn_aCH1KxTA*UQ9dVc5WZ2dGJoED-7Hrg zt09j8sn~I#6b8Hd8J0Dg!TUDA+inP*htBjpt3Jcf&oI?)h=w@fiSzjT-I{gGc6{*k z^|?s$gF7ZZN{JPY7ciS4$Gf3>EwzsidT+I!`9|ROt|O6^vJ}-)(qPEnf*_E989`K> z^>DZ%C?DkrC{rsTKj1AGq!`piS_*bJL>Q!4Bv=?&P&3E+R|-|~hNW3|26Zvxng-Pj zEjMG0i=(ZlyQS&&efIOo!9eW6J*1#HTl=H*B>_$}*uwH2BLN&G%rOLdGov?qM$S;2 z!DWQC&Dtc+#iqxBD!JSmwJuF)A_PE}03d*Icglmf41{S`#v|kjV5?#Hm`I1Ec|#^! zJh^0x$Q)TIb&Bo$+onIsv63v!q??dmG(1ZNO4%F+|}OYV$*~gm#-t-*^GB z7*e4XOB|_5aHk?WnXc2&KInc%D$L|$;)!rAC&yV9{%(;>TXCr(R>6WqDL?gPCFZ zIDOkbSs6XM3k8*NSFHReTG~88DJ3#-dAwp>#=M%Dy4^%%iu5?6>YyTiid6hu0y&TY zwFia=41|AEHYRuBju_p6%bF zDi#wsCj1DcdNS7EDmSd|1=(;*1_EFgswQ~Y{2;4vIKn1iohumpn0a^u*JuKecp;o` zds`=k{)qP+fdJunQ2K%J&MwBEeg1EoQPy9^Ajj>TZ`t@uO|j?G%irNx_enWf!MA&pKo>Uxq=lh09&t zQ%#4=8U6h;UuFVPDoWF;4?9|oxB9l1(pyK_5M|bq-}>lyahk)nr)`(Ue zg7Az%htUnk*d^eQd;$y4i~MdzbOXqDML=Bf>vx4eH9c&7L`Rl*4&%ZP_KYY_&R`G=Sk#P|8mHY=hhPB!GlQ_9XiB;t>17@pyoOP9Qo>g(vt%ePTgB8RgD` z&bX_$BT|@+_9^;Q75YdszTK<}LWDYBEb27%Hx^GR1jSr+vf%5yydPrdy@Y1OD&;&w zbfLxCaE(46$;q=52`R+`gyZBd*8G{Cx{_8(b2Q|YL|Qp7;ay2yfo21SpU0MV)TC7t zUs(zwDGI~Uz^7tD3XyL5i)>AfW4PZMqdtbw@lA*ws>pWyNX+D~NrJ!P-FySl$+&s@ zV%Z(RL(1)qp_ikPNJg{O%JwwQsdWRr8bS3UZ&ucZ1jIj`~-yoSBZ{QAsk z6Bp3zP|>2p+tNKA>q>(^Mz22a3Va4>S9Lz9c*gK(jeEHrP;+)9;CKpl6V;#3WQUwlq0o_^|S zlXczyQruAc*)6jr8{mW)v&sEgRFPcuK3!1 zT>ESfs+i(?v^ebQ9{H2ZGCBkcpNi4BIHk}VeX8L)VG;ca?+@C>b9l39;^?zx`F^DS z@PN0CBWG>mcr#+^|4#DFUAnzfc>{=p%3}!GRk~)&W%OsovcC-4%slr{)GIC}OGZmr z>UvTkcPMd?>Kr7?=ZN`1%tWMYO8Z!oo6^0Y-s`pUvE+Vf#U3%2?6B4j&T2`HEbKC>t|{$pAHqKMWRsILnrH#8f^~NjiSa?N2DbQZsbnQk+SdTT`tylrb09 znUs&&D-v^Qlwa=a)^EY-oiDE~7pFe}Uo_f%Ca&@9NWVwgePn)q>f5=L1c-PJ#&e!D zf3G1WNoffU`?U2_E`$w=7{?&|#IV+1MA}YUh7YY!q5(2fUI1F`y}`pzAYb|T`uVp( zQZ<^OujcoC$1d!@!VCZ9IN8z0%FIC6%<>A)8h-|}6rS|@JMX&S3@hj> ztJw4@+l86TS339UhqFo@t^Yl!*L2#;<-`X1#qZCzPo*DEd#HHl!bRxdhR7!n#{98y z;JqPgwds(3aCc&M^fUwZ`bnq)d{D-4gTJ~64J&?$;7jPc^7kh2 zd9nq99R;|4(<8`0=FanR5+r6r?@>TxL+W9o3?8Zs{;|-1ZbOp}xrX*sAoZjOwApt9 zrXhWf4m^6#QJxcN?4Zu2@{-q>i4RW0Vzz(f2B+$nm`I7ZbkgmXqdf;iVAp4XxJ-}z zg-c(bsFuPE@oLJ(Q>n4P<`_+~+mJSEkC<*0+UY{N?jS7Ir)5?d+bBtpL75aGG+&nh z=@DLB6vQ<1LY0Du@@^dA#A&4Q0Ve}r zeF-YgVq-<%q{W5|@*h2Bhbfp8hgPB@lBTnj9H7D+8W^*tp_$N1nQ_Q!1x;kBy@&ba zxO~T@IPgR)1qA$N&!Bfj+NvEP@}y*lw3wS)Qb0!I0M%tqBTyQG$_zqw))?Ze-oFBuQ*cR4)*`n zMY0}eL$2QUM&{{L19xE*Wq(oWPs&x&h%ttim|iJrL?WtcOd;(&DR~CpQoK>nl(m%`)KFEvVfHTCIR^NNyZv~x zDDzyN#!2rLudNiYgB3Ncc9gfSfYcN$!ssF0_ewr{c1r`HLQ#jJ3g%UtQEjtyjYjYq zW7Q^N$V;#YUc4S#`ST-Du1*buF9mnsIKbG=5&Fk+`8t4UHON?)^co?YnOxr#h%QEt zL2na#Exgq@bQuqiOt|gT!34t7+ZT<*DTtlR1Pe!2j}#z5FXF1bdNcwDbE?EoRh#0YghS7FB8f<0!;l;@JwGF@M_uiU_Cwm>GQ6|s8yB* z#To+3YOJWz!$44La&eak>o$hX-wNOq?+}ryQrmcA0D#617cv{Y%N~Hu6!7*Un?OsN zl?&^g?RA1-$rU2EY+4v{W^R5vy$piGj{iZ5o05Rocf$&>* z2Vc7%(^4u6Di~~xHVYI-08HUskbMlc$N)_*<(0FjG_EjOj0(FRODY;NH9yF0jdVsF z1~qONSJu(LHRNY|C>5(OC^{$N{xf63#1$XbFkdz}gy%_+d;DvF^ipukx?fK>ZJwry zb~+N4GMI$?^^DKVuv~9{e&(lNrKp^8k#u19^iI9@rOqKHeq(1?%uGUy|D{-+qeRk= zaZ_yYYDk++FJQSkzrzsd6+uMnA5C$vJ&25Ngf`jy6xl}~^@*%fX(p~;nfscFxA5Xv zf@^jK%|nM<>>@~vTt&KqiVLRD+Zi}rgf|b1`{nS9TFpwej|+Miy;@8a94(;PBul6* z?s2L*_)95d4#D!(x*P(tG4)Ix>u1-*7On{_dz0?2FT;oOxFAYGY6Dz-zx#)TbyaF6 z3G}KqL;tBU+8%R zkf)XkTm%rv!Qt5zENOJKeU!{AJi(oiZZt>z+32rPFwMP-YP2Gq`2ZKSZ$85Up z$gI6C9HeYQZ1DY&s1!Un#gzuyeF(AD3KLg~qjq6Rx4=8wC&`~-S<7bQRKNH0JaMWi zQgWW}Z%#~YQ6f!ad;;MJI?DZ9-lf-`q7(3wD#~sv=TCioilVx6fPD@pw@*g4EwDSI z>UUCREJ#KKw9QA$k^>5mX&8$?r2mrDN@V2Ca|it<6@vMzoqC}@|!tY>Dm5u=t;=0=V0{L7h>Nk_J0i&v*M?%=Xv3Vx}`Q+ z?4%?Bkszo7=aLIVA9BG0!^1@h7evkCemu;q6RQnsuxXFClkH`-*!~OygzXW)Gq$1# z6y-w>*-ZOj=uUfa_W6AM1nl{lj)P)5-4DWi;kYfdIVgat0hN?OpL`UWyJ4D5$7;m{ z2SuTU9x;DYLNW*2fjTQ)S^mn&zF*pKraw=Yy8ty#RV5^m4ll!=PpE&*VMjUVJkW^Z z_?b7p&sTQvYi6HNt`wa5H%NaXN$&aCFIdZRxxUHA?E-;d^O1)zNom)MZj(jrBX&#-C76re-H7c;A~eTkB1F#?Z3!e?5t|`~C@_r1 zv!uFG@cz8)0`)=&YKKbkLhMQZ#SRR88uE7>HR z9RS)QY_2rIT}Jr{^0)r-CcEGH?3)$x_Ip|BKfH6~yFdPCuaYox zl+bhh$8=g&N~Vt&&I?ksR#{Gwd?-L3#zSA|BR;;qm^(L`L)7&C4Uq4i*z8u%hMpeotR+5V^pOe9)LC-N9KDo9nEVy%Dk}K z{ddDNmwS!@XhY@h+NL>P`3VP_`QxFIwPaf^x=Du;3Z%_jtm?%M`}+&6d5Q=k=4XXs*$Ko1n-F!h=tQdBA!yR({DT-ct0PcMvJbp zTlEP1!SH+6vqTELM={z$8o>~~=DvWo_`FN!JlaI@c9jfkftzc7SM27h=SDJ@Cxl|k zb-ZOBqn&NnI<0klR|fMCCAH|pTR^Y8R^sO|bJRB`i}BDY&tUXqk5j!7Ed^(tvNEs+ zFbpWrPOl1AtNv|q_<*s!p$$Juih*ihJI=Vv`?rxzPo6$1EK(|giORLl$||o zLXY4}Y~W&>NtgPC!O0QGH1S77_>^CKl*9wLc2pFywu~rrk1&68tG?H9a<~M)Gewq;@}(ij>J!tCDcusCHHi|nc6%79SEC`)^(M!L`LKzJhF2< zsx+n7?WQ>D1V`*m92m;qUdP;(dJIxqTKx5FW3s8*<;NSci2KWB^&xi8#VT5`)lkQq zm=Bgt`O-Fz+BXCNKA<8}Fq)j)=TPPbXmQffdON}xQA~}i=L*l+u?vkT={Z~XCKw1G z##N~<87rGH*Ym2NIQ2&~4FRNtwtjzVa-Tm-W$(_a^~XXU6B!k?-wS|r-WTWdaNQHt z^AbpsL^v1a57OxVK85T3QEA7+8qB9Y*$)JTC+30MngkKPOvb_QQTB`&7lTIn$xG8f4LODIvZKGHBZNPR=YD3m@t1CyD#Z8N>efFExM3 zEJ$Jx ze3c>Fs(K{H?>65)I;mLPPb?o;?c0zYGq(sxZV$d3WhIEeuee_f>*5zHs2>Iiwcfx zvc2ZZNi<6KeU7sUxRL=VhN(T{+rF|VN|L-L#%)yNa>;;?AaM{vuR2BP@marJIb7kBwFiI|L#E_^OaNgv_-D7yHhK^jl7OO z{uYQDi$_5Bm8_e|Uo`mig#*Ba0k}S~(lc^02iIvMm;_Otvn?kDmqP{%vG_VTx}A7y zhzs#}7D3gkQsEZ5JJ8xOr!3z}|7VJ!!}b8eSlue^%}?s_BR^iZcLZw@>16};v;I4I zHt$ZRWdDATU-1zy@;R?O(rhvr8z}9^&m50KO9sseC(q)#pDl^>7sDcB2`13iK%4BW znaiI74QJAnHcS%Wlxx{A^_9@+Yeyp1ol`#eGJU`@B{8l<^tcyIxVm8jFt*C~sl ze2`Z)Atd1EfrGEZ#y*sk%O-yJgtP=4W;lF(w??2~v0(3Xf#3CP_WLpFKN{G7exQ>6 z--SHkzs3B&mAe0UPO3~?m!FsYj(;iGQY)Z?g3Jc}*<^gBUO*Ihvia}1u8D37td+0n z=oDdlPRuu7+)0r339u%sbI0{hPtxH=7Xfq#aia;zNA=a0<)>=G@{gCZH`pHuBSLmC z&G{_>Vy%*+hgF)FqlaCZIHs;8c;j%{wU!bS^g!{YOu@R*DN@1Fc}5x2W$R}}?dBCK zrp4tW62eB4wp4BxHXwt^hjjNyZiV`68)~*uT5iQP7m8^2{#F^*Rr;>kVr9ib{nYIn zWyYXcG33FRQ==QW27pP{Nc0 zL#Qa{vCMK>A*jp4$lo;>peG$Lkmj{YtSt!%MH>;|yMFeMoFXsuQE%q|v@8u$v`~Q8 z+Er>cJfdO~+Y||L-V3TVI0?ls+O3VYzCS_h$%!sUn~m!!iN-{mrwajxmO(@LT80h4 z^FdjNCrXC0Lt1e1ROsgvcyD-`jO7x51(oTaq2^J}ZnqDm^hnUVg<=iv?Y<9V#lMFo zgN>4YmCo^@7^6o*ADmfXsqqqDv&~+rS@R5VR)1*wfqjxUaxnZ5p#sM%i$5PWi?IeX zo{!|$9OzaIXW*0;6RSq^ilp2xq$zI>{gDW4ngTM+;wsjp7hZcmV{22xq9~BFdcZXZ zJ7(BKZIwEJK}-jwr&?;zBB{n}q(TZ=Mk%cpn#fqub%S48NS=vPhPQJ561VU>(WIlw z+%*_8TTfFVTT=Rq?vE>UuJIp}Ja02UcP+WoV@Cw04arS{KcA%wj6=u|#KfL|7=_eu z#g}s~n4pJLfX~YzF?wQQE%Qs`Uo~2I?R+f>0?!JV!bC(TALa?A4M5_y{}yr6lqU&~ z-$l0j8^-vLh$Hx?A}jR2i#Ty3OG`I>BRy*=`+uCj6)IaOAgZ8w!+;;`3F9Hrh!XiG z6RP4<1wkklfX|o$tk{ytHcHeHm+P_AuNFL1KZCySq1pwrXPFiMexJde^O=?YU9a{F zBX7zP&3W3b`uoo1m@A|E^Wy^chYmmF9;Gqh$#5p@_A}j4f8`HqUG7lnjpW;)UtL0T zA&IyV-ju+#kyoCgpk|IDWtXq9Hv|+?D(|VuS4uofo-HI&T~7qZ{cXM`UV3W3GTkbc z76sLq!oxDHPKE81e8NOs1SERiG6*C9TP3eL(?5OL{9AyGb< zm}QH$MijK_$X#%#x4t{dC`45-@ipz5L(2P^-m}`j+18tZYr;**DzK?cXj18z$7;P3 zRVx_^9-Ug$nI*r)>_KRLq!v`jy=b-IPd*-7GJO%2D`z6y=i?4i59Rb` zs@31F#Z&J>H&ySq92D)4SCNJ4it0Z1gNq&%;E&d+SCX&v6!}xV=j=d$c&#Yc1ZWw5 z^18X@tQ#Pvs>+Myz|~HM7TRexw4sHo%hE;T<-hvK8gKV>>O@TyoTc; zldUD0@er2)E|Qr$72fom<5tsBA-H^&E7AoLfC#1|rS*n5SW*^_xrVsUr*wGn_%{ra6Sh_1D*twC5b!J%~oeu)>Dm`qcitjyX*Z!Mxh)3}MUz4As~ z6>;I13DcyD_j|casngC+(B)`l8NM3k>4SIkFsRn|~}yqzr4qag38lO)?P%O0W&!xr-;E z)uRwK{CyDLRb}Q3!nqml(}ys+hM0+-=#FV4`X$zXa1Ey!K;u;*XvV=4Nd1`l139#7 zX@|{EVzXWikgbJV#P67C+#^i(NlbX!V&}VM5;`vLxu-{#iGPosGfl-Gyf78hDs)o# z4lVo~IsZtx`V|Hl((=r&u7%+MIkSAzSK9Mq9gQ#<2_=StR!Fjkvk~%SUnb(`ACNf1 zGlhzAgqMO-yOcR77d2%)V73j16%jOoy*ktd=9O`6o0fB}DOl_&4H%Pb{o~k)zb^C! z)qjvFeBbE8{g(^9e+IsI{&!jIKVx87@=`Y6fT~wUi=DwnLxJoGDm0PR2G;dYYB)u3 zat<|wN|4TN=do3*dG?HPeqByd8)s&~?X3Im8k0W?ZC6Bp;LjAn+rm+`ll zA2>a=y845Crg@_<>R{Ng5Eu}>nM8H`ka42Z+)La z4oaH{Vqn`fA-twCgV~Y51gl~BR#RCC@k6&_L9H-7HE;~=JS<4$6aia=R&mp{2-?gZ&aBmE(4KR!loiOWH zYU~g*pklsCxvEcyVGaTn=9$oNK3oFOj~XalM*98U>U@w~57fUrfK6L68~PbjIybaV z^MVneJ3gUaOHp#>W~Ye8N2Hmy{W=S!elD9*6;6FqPpl>Un8@L8k_65i?^#FEnwgzE zghcAfuUu&7PhCvZ(?bY4D=9({PaTHdBUQjf@rJke+gp|4H&+RiG#zURT1RgQ(05m{ z^7glbcms@FzRxMWJ7RN-AX5mUlr1K=oB_n(p;cxW8e~j9U8X7oNbUysTWM7NAn-o< z23TnR9e-aOjKFjRJG?z^ zF=5(~Y&rwXfo5}=Uof7&-X-BILo)zY$U=<=Zqqg|oks8b#~*;cRFthJy#*0uo;AZF zpbRj^=13q zX2mxe99KAL-`CpA^^j;?nF<3-K{%s3JR1x<;XU+pL}W zzt0i&=V(3WGDDXllun^Fwe8G~iQgZu7mLzZAv(Skybz*~W<;}4iO=e7%gjDtCt|(iR@AS$9__OG-|D$^d&&yh!~mJ}e*(NjU4 zl?tB59V$PoKhd~U^h->7&ts2_zrfDvx zLcHxkl!m^hci-6UX{zvfBt@ePTdtn5uT|t~SX5~TeHc=ppi16@xaqT-u zLYCKp})wA@Zr*ti7GB^TV-5haaTfZQ*u>;DA~&Cr^UE zXci0MJp0kJFFGIK%b5-L#rT&9gRyzE^PweaRQNQRnFwOzuS^d5>qzBnRmy(Z4ABbd z!Icr)yp5piNX=n;yDVldE?6T+%?m&E}}Yx#*R!|jgA_!{{3qafti5R zv1ObZ(4@zZW&$3Gqc3ltJBjmtUv~`m7QA;g(hI>gJGP6B>%C|;Y0Onp8!Tm0y$_uc ztPWQQXuTUPh2t1c>!G~rjexxngnkA}F?PAe zIL8;*f8K{m!1f*0Q=`RCCe~q%0k6q>>1W2D>3J|2eyv8x#N;t^a-Q&oCmg=ZJWuIP zcO)tbNugCXP7s8qpSzjeDmZH(j7B)1F$ z2xEWv)dYbfs2ReC1_tUf{v?DCRK77X7R8Y^E@DXdLEV^_C%>+qL~g2OPNh6sM&u{H zSfyI2q0v~`NNu%gQE5?_bD#Nk*^wrxy=U@5|CHUH=`ig*wO>1p;|kVeX{S$}exrbc zbFhmCi}TH5_{t{Gt$UJ!^A6Gd2G_I8`IW4Ql~)3fJ^ z`(T#5{={@Ast8XTO8tX{o%V`&EzW71zDEUa{#R%bz0m}jW00OV>#BSG?+S=_M zJjJ$6u&F0>$Vlp;xVgbbRcX5;?;Dbl__$^MIZL@?6&kn?&XuW}AL8y06TgYK^GDm9 zud7 zF(sJ7H%DD}GU$;vD@rN1&Osu?4mZzo_pr7Ymu>qCjTYTPvAqItkLnZv*?B@uTJ|8u zQN#m*&xmYabFWv9%PNXjk27_|HkNKNfQ;#6SDULVmd^eip{cRFjhL2OD4#?x&>S<$ zm9fCa3OauCgBV+-xfKqL<6LV_*{NO-jF9cViOBJbtKZmIt5228y?;sCCYj^1X0*)L^rM8G3)U}c}@GLmKi;N zm@cJRWM-7TS=XW|VH?^MIBAY*?Hn)jEaDsw@R1@53k&S-g@7f)u^aa3RJjw>^=2lF zGuGY=@~Pa(bfg}VKBry6GA_y0!nAmB63{2Ff4wP zi@-dsf<(*B%*{AiUMstEQrh3t%!2%JstI!wKpZ3zTCsgbFDwv|n4dUtmlMCZwy2Rn z_73Pclp$>2sA@JAWNs~W?a6;Z6Uj`V-J+SL74VLwM($5R_`EI_8x|T9Z3Z&p% zLfPx15A^|Or74cmk)0yXdOM`@2kQ4#pX+3HrQ8EVM<&T_(q!?J=Vws1jDTT=vHJy; zhJ3`?;-g6~4Eeu1bIu{&f$lSB7t2F99Obm1KJ;V{K@X1?NWEpDXMhZzD z%K9D>*JS$tQbU3M-u?mr-a=XB--Dq47(xz=}%0nNJMO|AD>zgMy6jD zT&|jDPA7%PEtem5y2lF5QnRs~uhJi-9~`VI*Ahq33(YEpPANaBa}|lQSOR?SWNGw% zwT_(BJ`?I-3?0JyfFewEfimlYjtdJGKE$(L%vhibLR@VkV9`{_fUlI!$)Qt?(eNqp zo~3s&;P<+R34%4m#6c|OFPR*jRU zn{;y{vJNqr6jKT^BRx1@;mNJ=>8`9e;|;gI$^m)Iac+#UbCt=Fy4E-R9xgp=L3*@X z>2dB7se~z{^apd`y=!JZb$f1MmlHDZlk8({30$*@5B$1ep3f)r(#g&Wvke=`jL06@ zePeQreP%ccSi>ASB!%qAqC}r!&q0U!)S%|tfh02Dlp@jr8!}WnWNXEUR~febZ-~@P zCngtCcW<^B5qJQwxp7Q0C5ieRw)JM%J#Dwjgdwcf)lg~-raJ&A%e+>w<6njWnMq-u zWzhC0%j!X%7+ALzbHgk54)^`5A`SB6ncOXx^&>|CJPs;(z6*@eGYSV3$ZmX2TxBE6 zh{`BmDZbT3xR>4sMPP0Ry=t}zMX92tZgTK?ClsM#v-qK~#LcicnD!Z=8*Box5;-Dq zXG#ZEiU&n?Imj#q{?+;{_7S$@III+}JG$6d{^QNKZe8A{@2LXZ%F=7Vadrj_V>LlY zwa7}WunM+(Yx@e7!^Lx4k9AZ)DZQ&leM<%tY?FOhotD84VFS7u?oY-m_w<+<5Scb% z$g=uLbo60L2LyT@-1HWoymaE=*e&S;Eg;&O5>xF7k5v+gxf2Mvk%AK8ydB91&q|sl z+L{I0j<|xoZ6BnbtO5J$^P+83@z$PE`T@Y5VCzVQYK|gM0;gS!tDDK^s2Z7!6w)17 zV#pta?eVOe9=L=HA)zDvW|nSLO&u+QwN7Rj8bw?il1;dSX~b>|$(0uZbxeKHl_cN~ zWcauDaF$v{D{Y>lbp#h9+yaKbiRz}I`5qy}P&N>X*<`0^g_ty95`SeOyrS@(yQvV($F@Y7-c0Es5c;5U7nB;JGS3dc@38yM32~oJA`{}h zJ(PGyG8fxBl;vxv1A&#Qx+-Nfh zH|-V>$&8{Cn1xyTNc$V@XeRNKfw+CW4sm>ix1tSf#+ljCS~J&142E#kUi(Mt)Z?BJ zPqfCFgRE|mzdf+<%rm~GYZ%ls{b9NaEp~N$n@)cHGMPpfAGuG0{k}%x%oZ_lw*W5E z)t+%jh?gra%??4^108pdo~J*-oT7th>!D(G7ZtRk$XR)zpRz7O5I3eNV5d73pJh(} zSb>J2x)Tnc%ql!kR$%MA__+(55VHlg#0vWdJnI#~;3RE-{v&*3McNcVG(Ai7c0e6Q z;iULO{zV#DY5541ufYiM*C_JB5ID)L5VLR?mL#GzB?=DNsO$Ho-{~L4q>&*2&k%9> zL2~d|u#b%Zvlj-$mB1qz`i{Mq#9VrgZpG z5%v)g_UG~GP6`m4R7~xIP|5j${BJC(VO#`p6Jw%;i7FQeqfyUQeLO-!p4|HiQd#v& z#0RJIOetL|o%gNj5HFq)>z*5eTYa80$HiPaB!>6!`W;j{+x7Ibh2hozhqZ4EuXM}S zt+--a72B%Vwr$&1#kOtRwr$(ClS*>4ckg~qci(gS;JN?S`qujO%`wLuW4;&|l}tpn ziwfuXoL58Z0G(3fmpQ_>uXHqh&$+4L+!0V$1bs`{DiT9KZLx^wimIi@B@pum5%NKs zM%D*Lo$$@+-=Fo_DjIg)i0DhnS`AT3hG8s=il^q6u}pS>!;$R2e6D3-P3Jk*sV^w5 zfyxN;la6C07^rKhX6_@ZqN`+2Q>S`pZI7&AaK(U#5MgybsF8}wEMOV6AWAwz`d@ii zm>idQ+|&aBXZ+=A(j6AV(Q`rS1St+fkWKL?njBbgx$_4X=CK26i`FH{+Yz0~K;J`q z`u z-$|%DZtAa58yc_X_MyB8Hx5@y>`STdyHo9(CuE+s_#;_$g5bz2vj${c9?UPx*?&hQ zm6Be!B+9_YYEw*16En4N-YJ^5GP-C`P#YIj@fS(hK*Ph22h1})EmxKZ?`1R#R3dY9 zi_uJWM3N^xU`?W}dfFQ*tyhX6Os{Z?en5FGZaEliv|(`e2dgpBob;l+B(P==W+Q(f zd5|Sz4<-U$e3E_S3N8RV-YHjAY&jPrmSTfBMoVw~CX zqP*f?z_BydUUYj6-kyTsWhc8b&4on|o*=ZLy0zh`Fw&zm%EPcXO&4DA1i|%*ab`{>I{Xk#hXM%-9e~Uw4DO(jBvo}k3y-?{&2+D3CtT~k+ z4|S5WvjpWSxM_n1qo_IM3SVy?sZwiBg@Imt+q&Uq390;$*TdDa`wA6gY`H}S?yec3 zw3>m!U%BfVN!neMxzv_rrg0M9@@RY;RR2{FB|DkIH)MN;i-X0e2OAD~7>mAF>io<0o`rj=;?3 zsm;Z5Scl=y<5%xo1Y)U5RWbcY@vc6iJ{$ZdJJo`2E*UcU7m=fS@RS3erEEWRQUB6u z>9V{7N_h_@ycUs7-Qn*|Eqnw*5#l3jP{aW$cAO~=X?*4LIPWpm3lAkv95LP&@<*A3 zf-1c?75LV+ISn~7uiKEKP%QE)+3Grakzb;yr<_~sk$&bXk<&<0kg+ik5C|sHyl+rR zPEXlLi>8sfTq#PiC2qeKRU5c(c@i~t<_pF+W8KQ!4YF7ID056i304Ggf?MUC7ChNs zj}AH;%&Jyc&xIESh=TB-j%a-`S=W0_VD6fYcUk#QyxW;Yp2?FJYC8%aY8%BMb(1$C zTh6eX8q9M?qqi=8qT`(7RjR>taK^)oYLI%iYQ^nb;>bW5I}gLVqTNsYh?oT<6b^_C za(kbzEjCgxuJi_Z;aW`DDcUejBhpMG`l=UfZq2ITK0VazQ=ISLZu1K`lR8vVsG zCua%M;X)d)B<{oxIHO1PUH&ih>zM#;ZWak50MG|CRSq07L0r+_-#6DQ zU!&OV*b=d7RWQ=Bf~DdaK*VOd_iFna2|3K~Z(c}xi?)7pq@nnfu0|Yhn`tZPFGEw- zTL9&`J3T$VLF&zx;tLegFZSx(f9-71IbfWU z!3`1!->imNGfs|OF}W$I38g_?U@No_tho8U=Xlg1_F77zHoI=(JCHLA(|X=3Rs<`-$|X!KDba51Vf z_WVoN5s+?PXYSJgCrk^28jV^8DcX4dB1pTZQ%1&DcyT1o+BT+~`&)Dt@zl5w#4Tvf z7-&bWjqj{=qcDz(aQagVpXD!dBngE9i^|h&h)RUi6lBy=^L^+oEmq!_xs*h%eP4T^ zZkcInU{mnq&#>@^m+x!g$aED*le}(@R z`}#vx@ZaLB|2>rcI!Pq|{{26Wkpel%FU;!;Sfwedl>b2{Dh^ceOF%APjfk@zP%+fE zRESAK%~l%=5`|UE{6gk|`(aj|00t{&IETCBv|QiUmxr%}=qlWJ%l*!2F|X?g^_!Xs zOU#fxqPR;=QmYR#5Dhv+8$R5PaG*t=>u~hhaOM#0QE)dq+I-N0vY@4!3Ul) zpLfxKh6g@=;Os}{?v`W88muR1876S%=`%+t$Li%zj$<-1Hz&sL{3UvC=NX>mE-v`% z!E~dAkM9?1_NhoeS`cWjKH5x z?2AOWL(b339??<6GZR&I*&0`I(?aBP#$NWLQ_TT@P(W3bDN1WEfmADq-GoUSI{&|mBMYc}*uCU^$O?e6W*NW^I(U>!E%SH6f$zt6UGx=2U1 zWdWxL#FOjQ^uOWkfeRKIXU1|Pvc;^G!p5}drXl%I?1m!*EYzQ<@ESvsl9YldT*psK zXzP`}`s5xSH3bfTv>TpCON+&H;q_s}N%jc>hs$@U=5o zHGc)m`9A?+|C)^C{+Ge>k0hf1J8mlCCjL-34Siy=+kS_kCi_ZBfd~R(M3f3v2jXG@ zX7P`+rONd+$``)+>gH|HK<(dQy8|G<5)#L^DSx=S%C~@E1wobD$)U;LMox<#FK=JG zJ&NWf9%L3wlf6VOEA?ZQ<~|vBe1a5CeOfnhb|@om7+^n!=$PekVg8)P7g|DTbGSE- z^&K&@Hiy)eObPTu?GRclSdb{@`8=k9trJb_cz>uyR6)K6{>(yOd=@Yc2n9+YmWen* zrIfbM6gj6h7f>kv?oo| zQM@$Ji1(t=hp`5PWw2k8CZYmgNWouDhbGfzxS-qk)G-FHpriYaq0}~G7eES9wU~rH zPw@=Y-!p2D@p#RXX2^?~#&;nE89WP!9+*V2uPAZ5T~k zDhrxm?Xw)*>8R3VCU7b_!Hw5#mdA1Ty_@l4f@OAxsGgxldm+p?wZB(^zG2OB=urG!N5}ab~y=da+U(8V&eVM zy!~y-nM#pvh?u&2iIep=n&btK-b-AwCBfH$IdW=H3?Xv8_4HO1+2nEF;%=ySf|w){ zZOzRliLG3Q2chjyxP7b02m*d0h7K>RR^fqD$sj>Q+$(hH);UD_C z=Vm9mlN*=6v~Ry-LV@WssqeEYVrqA~^E@YRVByB;X3l7DaW9Hr{M;+W_2$BzZX;ks zU;KD%f^z@7K?+O&^Dq0>2Ry1+M$5qm^1~y%bm)5=P7&=zO(1%dH0_x!jAPWD%I!1K z)Yo+Cm!uotc#`Vfrz90Zi|B=JHWZjdvL}jiB@*jDS;T8WtHBLlf#ULS1I6IK8z}!N zb|s{%?_h1`N+@7xr0Zzm@SpzYZ}?V&!k+>fPJZshMUebk-Gc9=A}<=qGC3mq1R`;} zKxh&oj4&5G%4-`&&T75VH>l6MVIi`+eo9a%4C^iwIu|YHv;4GB6_qvZik;jW7uj5yp z+e|6F(V{09t{D%Phj?mL4O2B;#tV@BQonoFl`%ZT7IrB^zI^j7&0+z&K5Ixl6D^~2 zrxz!)sFMOwKN37~6Ye{LKSaaN#K(A!fFoSZyfhHWB7@-XMYWr&v@C5kaZ)ZpstR;( z9Gh;Wa=jt4=T z=A+!5WYG8ybKOrpLJy98&g}0glX&VNhJ%p%1jWH;eyY_8N8{p` zCi25Hma`3dJTX zJUj(=OViM74rj#Ep2?7ydBj7MLpD*=zXw&wFk=-uM-D$W7a*`swXoG>&O;y1CNhv| zrmJ`0mKpKVfR3SAv#TgKckQyA4j3s*cb3z6KZ;Afu7e;LKPa++%|9{jAhQCnaSZ(oM z9i+jmCGW8UQzfHS+>q=OLBDf+`cN4_-qT##<4eV$&fK--!Wrk&LQFsE*KeN1#};Za z=%RidN9X6PQ(jlDPp^-^0keOVhyPGA%&$JAHU&oqKZDBA&w)Jh@2T21gYt=;nMc!8 z%rQrO*V3%3bnOsN5Lhs|wu(^i^~6C1l2TuW5>~8aq2gy$Y_m=cJSg@9YB02|qrzxh zt$)s-P#)XMH@KI$Oi$74k|ESrw=ey@dCYF8YYHul#^#snq4sepU*6nrkLwtip_*!9 zzcDgZ17TZVXmdWIblBuMn`Tg;2FWRbbyIOcdUw zTd8Jc)BKoQP&Rtw=V5`pJb8=y)iA{{K96^x`^yP2$Fu~QJQ;mx&u_$K0wOMdP9Jp% z-a;mN1f5L!=`~W6!HJ^$N7?w>6g&?W?TcDvsW{2OI*~|&V7yB@5fuSniC)IE16)G> zXIx?t=B}7<3p6DT#arw@$~@kN1XJ&?wEFQ+lz@LN^JM?KY4z_1?q5B@-^CeURPn$6 z@*mwnMXaQF9}isMRz*Wejaoy4S6C2Esc+AspB#KXzLx+^=#wSlY62rBbIAu4CmFum zlW<5JBQiOP0JMSe?Ip(*RGO!|w;O;=Pi-XOEnA`NG;Nt~BwhoB2K+f4RDx0!S}c?4 z3Y4mR^P_8#X43*u6??u!N^MUDMWw(qcGyTZ(U*i&o-Oh^-?@+(7O4xGC2B3RFPha! zQ+)yJ@{JieGiALY9w~9hnM1m?yLp8^HPoGI<{FwpC?Zo>vXK)939MPU`ZKq$lVsE|@a7s9Tg;Jcou^qcaFnLK+83|2btf)6DH0J1!w^&uh1?ug=V`_% zby0zkOW%J{qUjskAn7d6@ZdGfz_8Ujd`KJ3wK*{Au9xP|abj9@U3pp0$a7v--@~*X z(i_pxI}z_cPthq2j7yuZ<#za|s{UW)cYOcT<^GGp^Y`Wci@_7G{)fnP=yPtZ(Q!;s zA)7P_pNdql9F;ovyD1@K>W`lOrULAf)Qd?Y=g`{>kLmvTelYG|xT7vct?~JCgso|u zob2|KR~m;Ff3qp@v?z=j>_C!Jk(x6X4FMD5P}q$@h)PhQt2Wb#z^k!pYh2e!9#f`l zI)rRf;<%-%vQqZbn`q)v34)=q3K~`0`Gwa=WR{-OrPub`u+Db)-LqkcRsmjdjJ4WB zy(1`$PPGXrFan0t#4YpM@TS>;H=Ct?&$bI6Yv|EmID}Z*63s4YBpwgj=7n##8!;9y zlO{>=_MCvz&`k;rbP_5vtWZ6VG2%CjW~*3G7Xf!;A6!B&fv+|0f+>+LX+9G4F0SoM zDH*mIP+vdm1tg2(9F(mY>*88;vO=SMt@aVL)iyZD0=ZwyUhDdnUHOmgc%u(WHO1!G zw%X&n?B*e$nfo%1VN(|DWZBWWq*|k41uEydxNpdrH0_4Rd2CIV+L`Ihri|Lpb%C5( z38lZ5QdJulcn#gLj&|M8mg#Ll3PYfwFkQ@c$%Q1s^~U=N3nliWS!#Z<6JP4Z=)QXw z2I)R%uRB||n2Q2Up&3!na0e>rw=v|+dE?4rq(aur2P1h-oYEiXSouT-*Fy^&gCg8P zZgqD?qwwO6)N5f2W2xT9IaOE&06>|E0rH~}gUV09s3HrT5O2Ly1&{Bm1v}j-pvb4P ztTdiq&m!%x*~UBh)qg*6@WpEpbL~I*x~JV+35ijGtg(8gM0Ql~6Sv%h;ouK2VB+ut zpT$>e6ID|%ZxRWc;gS?bvth6h7X#5S!P~^Pz!AkLshiAa>yb+y48Me$(1g{<#Z)F- zmxI;t@g>8OvnkB5WM2tCu*8k~V`CDrIYl|dpDPsyE4Ryr<^D#pLlNS6& zu&4nkjj$|P^j${45EVU!#edgru!;pqv~t=r0un51e0a**&XewZo?Z;XIcLT3yy@}o z-s*}Pa`wE&iW=I>7>PxQU1pqMO<{LGnl%3M`D&?q8|cFI2Grr+Oqh;}hxL?sN9*OF zL2;=WhKxWJZ*Lxk%s@5OLeon28Xmq5LUq-Bi4M3Bl;VSw)1nkN*|QVmV^2yVbg*e5 z&xsrR`e6T3>#s#k<9-9duWvCcrxfpBDKv|o!5fJdXcpi=l%`k*g)J+;)DWH$qUs(7 z-BjL$RHk0Uz3*PTK%@mIh1Omu^ikJYvH1IYztY($N5m9< z{ZnI#ZgE|GfZ*&riNqT79F!IYekHn7!&v;#YHrZh3FboWJ)@@Lr?2EJqeWfjSLs4rSZ4G3+F3d z>T(&(zM50Lg4W{7DRfsef(b5HxMU=x zG^LJ&NnCO@)pQztj>TLJbu?MgRgLr~=3s1VTweQFX#(;_fhvPB(L(j$(TY;K>LVrD zSZKI#weX-72cI<^%?oPm^}uE$g6oHk|G)bqg|+t&pm{Sej_xTeB}`@w}yP5 zXR;zS#D$Y-d328=780*v)g}-?py{)oET%e*LA&4-85Pa2_Us(&>p>dv!pzL||tbA5dSsZEGoxbM* z-`?~ed=n1cD7D||1FXtys!pt>mR+>}&cNu((zNZ54P;*Y6#qOA#C?XG{?TsPLxLV; zD^P7HAu}OpAyx>ZPK0|Z!W?$;c;D#0xLrZhbH#^R1z~|)$}DFIUs|W>@tAO&5Mu{O->7#62zcA+mFiDA+wEvWsf+j6C)Xt$gjS+l!+S$S0n-6;JH) z$qQzF(A8xMuPG8-Ag0GYBEOA0O1>YDY3+7278A7>h;7 zDqz>#2|#j#A%%UJA9b^IL+tT4S4i<<*_FkwDKaPjF>Q70W|rxjs9 zU;IuGT+&W8INl17idmFeK^fqLYz`zD9Kg;8ng^_?%)BA{{=JSZ38N+3!U_H5VkP%LJ{HNRFvGyBeVr@ga_>rY#EPXrNxVIFK zjFc|;9$SyNB43X%S)A<|aAJ~_biLajaY4xv^dw`^c{IpeSuB>9X%4)&OWeDhVmwx4D+myE4TUBBwrOj1f^i(34akQwHojx;SjcIu=S0M8vYG7z7lXu2zl`LBR zPAH&bF1m3Fc{|773Dq94l&&(-KO!d{Ou}do?ltow%Wfz^Y&@#<(DW>mieVAa6DH}FB6!cu_GL{`RTb$z zv|k48l_p!$ZiTX#D-DYnQtKi)kjHQFSp$51&nT0KZcOV@#?>^Hfu>~2Rj2CHRU>F@ zYF1W|RZ4R#!UV`cI-%#1bw(-gebSd9L-*k%gZqZd15Q%I4&yaYFu$y8mB@-H2@PX% zJPML$No7r)bJTS;`=k`Ak)6q#zn>wM8{46+A!&qCLBuW>Y=c0NHe>lgJnlk(yj5%W zBuK#AtS-0&`8Mq!pwp1c(B=Msmh8cnaL~xxRx?1}*CB0=90(&NBfTr`HAo);jytpU z^TkYgF}9eTx{38ox(W4Fwk`A3-ev;H>Lx*MpB%T|PJ(c&R_y_`P^b=>=)~xfyEadJ zhxRJlc2*(LeP?~bGP^g9;sf6>Hdf1&sat_B4RR1{*jcr&kr=!pqU2Q1Pw~`GTPSCn z!kM1OF+0!|8IxO3F1(vfrw(=_cDJVrlH7c$Y{!2cDd(bq71b16;~XVRI!|4J3<)!? zVlGvxox8%P&NO1E{aFGh=Phb?r2#KFNl9W{P@AguJL_ zXaCzn1Vi$#f_t2Zz97gOlwp-_G7)KO+@iSW%BDl4z1_BvRQYYcPuWO>i|nq7Wl(T% z3{9ywuGh)Pj6fuIkS)UBHJ9XoBmpKgGpyg?H2EDsFh+i<8gx6UnKFUY09m76*VV)! z$rK#2>GW7PZ1>d!!4WRYKr`brFXjSRSNK7$+30Ena`}R1;{xH>)FN7O_E=v3T8rT9 zWh<4mvawWT{JF!7xL$x`!@qABm`85hqe*zk1JtJo&t;Vt(C^0ggN!&TfY8?Go|a^n z(U>HJh;y8kXR!8_f^!EW!{!~BWgEbG+LwL*gmM6!MZ|_5$3|IoGWYh%HbGLV`5oA~ z8^{Xn3dv@khq4(c@rwO>r7MKw?~>euV6+*-aW*Jc8z=y7?a;1ExysVEco=cP&<_J( zqo8+nv;?;Jf&!7m=aaT&dN(KO@;AmqET46*h^;xTxoOH|MS2%tOaIZ-#MEz(x+wZc z`oOq@8V18BTsfRjpIvm)^bhjd4pG&2Qa|x2_b_zlg!Uquxi!wMp=xvYs7xATpCF}>FmqNbIFR=t(WUP%A9QBb94Ou{A)Y$hBp+LyTS_% zw+89FejQowlhSclS@h+EEy>^FcXR}9?KRLdsg+}!H2EI(K5B5 zfSm&0wj!ll0Nyx#vhcQzO@F6@T^F6O4$RmGZNPj8*m*Sd8O^Qm<9;H=a-1<^PJ<|x zAMYFh;8VcvwL85EUGeUjy*gnJdi zVqFo8FvYi=_4fo_@Wbrc=b{(*%L7{L`4R5jee#u6`6zYi7~8Frlk>vh8wVSl0dJd|=9+Nu5e?Mudg$UBZjzOI!F9&<4zJ=R!Y^y?>S*Ub zk#YNa?zd&>T_gtF|Bl#ek$LX=Pj4Bn$_M4rpYoG1E@!``~9E;$Af%zFS)r!GHHDEC}hCo%nJg9rEZb+ zx#go6%6q4&-m7X2ynJRSW6Vxcm*Wcem!ldJX`YdtV}u3=kZMgO+Kzdv!T_M?%bUEl z11p@oHkF}m<>ep9{WP~C-k9E;+h`@D`h3wvQymE4{BkV`kAcbu3WTfKLlJCD9DC1$ zUFDARO^!7|P&M%e_*iQDbqev|%g}1h2iytmU`4!!BxP1cq<^vxt{n4w2j?vcH7D4> z8bDnFl&mEi1-z_8?{}KxBM{WeLU;XX?tWRTt`_ihUyAil_oe@O2lU^j%>1W_;$Nua zUpGREmhza2NM2S5%LZ-rbVzFujU~Cz{!Z#@Wy~r8`6d?Mh>}A+b*bB$s+rC&&o`%U z>bm;9W!}Gqk3TP3HWiD6%_0{%_3WdQ-2ciM_i%HoO^8jaV&EX~%k3fVa}LG0W#-U@}~ zT-Hx3_qZ-&r_Ah9Cz#r2A9*(XmM@=dMw>sHDOq%67DwRq!+$XpVE(J!ubt8 zu&G-OG7VEud`4x#;|4%+|AI-!A)#>9RE%HW=|n)uU6iG&r6gDgBm>1cQ)IHwV%52+ zZM(23t^}$gI~IRk=4Y`>?%20Tinqm)+xz`8dk)2W_Rjp7sp|NiNN5bag+8C+FIHbu zISl2-S=)Y03Rd+vR)-1E{Y5oex^D2nNF>ECB4KtH*QH|Mz-$I2ep74?Lx|KEUT%d zucH_^d-4YDI6lTn%`SCn`*Ux*m|UD&|SH22LA4eM%m$vC`wp>^yF!MzAT|bTM?oQAUyFN5K@;62B;h<@{1|J9E+Y^@m~n@HdL14Tr}}SBdbcO{=@;3UrC_9Xc>` znqJ{YAMo#!zh%MY6d5?>f#qP*zQKuY8{IoJktRbh@k%p=(zy+;74PEFfBwnR{H*3i z%lt|Qb^l~b^1p^q{?n8||9594#XljGk3g-(L;zsOgtT=eaakoREz(>-z=d2;3VB;g=v% z>~^wvE~1++&XNIRRzD!hffHGXp+=H1i-7|}h`P#5^j!5QoHjDkP8HogJxHEWYa{JL ztma)sYE@fe5h~SGWgF4hSc4XBYoI&|k+e3d*Mf~5!yD8L^jbZd8$_-VXQ?tQbDTOh?g7f1N3;SODS18GO=-g0FXOQO_@h=`gK>5B1Pv$)*UcAy8+Q-?cGODsPNR$Ozk!8 zX(9r9W&*4t*HreJ{V0bt*XODyYkVXl-$cxpcb5lAha&qWbmaIm_W*F{%Ri>-Y0H1R zvuP@9&_Qpl-uEV+*bPrJEG+WEN=^k{EK)X^BNISue2=C}2^l7%eE>WKvU|lJH-z zth$8cg5@_f$1!6zaTq4M;RaEpk6gPT)bh6Iqp5hEE4WBG1IQA}5F8@l$b$)c*ze8>Lj z%`VBmc4qj$1#JE++p~Xk$|n3CY6+ieHpUN0ibX9 z!z0i`d>ADO8jtGIEb_o^rCuWrZ=v3@Z%*R!4fJ4PZT-?U^0?$<+7Vm2G*7W_}JUzdAjVIQJ<-?1Ej~;e20m4lPRrp6eA!=hTw|yams4 zLn!$(cYvcIg(}=q^1x{KX!V`}uef~I(o3;0OaDcvG*Y*XN3zdwo3lQHi9f}#e-@pd zHIEtRXM&v)od|u$B7%b?T--%f4#zFz1r}ocNA;Z~hzn!>Rf+-p+fwYmg5&;iDGC4f zIzw6B|>+@1eA`?wYe8)PT9>mr3{(K;8oN@Kjlh{}UM^YYjSBbob)+}ILA@TP? zDl?M)Fzq{~O+-WCqlf)NU0H-iJz-Tj#Ke|psyWrEM2vke9hCEiMhx{!-<=xL&eV-} zl)yKBu(p#&wANz)09d#SIw5XSY^X=}9@}n0LNpj#qzCRl838J~#$wlBEld2@tNnkA z4g~&-rskhstBC#=-{T*j{Kp$E_&evLq+v#_Lc3yXyN6$qwir1k)C5v5$4$1~dagiI zv=(m#;$2#cgX~YgdD~c&m|Pj!=!}uHFUM)s$Gy7?>~1{fS`mG^Fu+ih#IGo!FB(-o z45w9E?Ig)JZzTeM3A{a!TrwZMmSWUYI>cOszwG#~_?r`Mt}qXuZ)dax=BaGd1;5yo z2CncDgc?uz$rF81170w8Y!b8AIzX-AyciRhjqy=`#VQE@n3SZ}dsn>+L+SfKBO_|% zSOr?ayV=xm>g8)-wbm;$u3fpslIy5ZETYl}C4qspBa6d+L8x%rTg%&~p9>OeIDx({ zRS^0#lWvL*g*R@j-ijwRiTXHVk|SSgV!NB}I78q&{JO@2@uL6MED= zhjFhUjbKM)m)79&<3+5Mdb@v)v_G$ia<=rDsnkxEdwG2=e-4o+dJ}qW#DspJ1_>HO zpq%#W?wG+j#6w0Kj^gOMPIrfXWxkhGSc?lGLEvc2S#btGdX(!j_#j@C``)yEwOc2R z!qA>9p~z#&)O!xZ{&Xa)Uz!gi zi}bOMRV;(T(P(j>NdMRP%vX>7kW3hY$``8SVxMQqhi{3vkIy&ZS@w`1XrQMkVk))Q zfHctU`X--SGoK*S*gwtQ=(6dHI-eA-W3JnAE4MrE9D{Oh6fjSRXR3;-C^s0fX_3h4 zzNlU=ut_@HWFtCw@W;Dc5^5DC-@;s^VoqWT4?RQC->uFdQo_*fDd?&sKuT1N$4E)s zXN5)SG-nAlEf*@IJFI&p+QIf&B~%{jpV*b~3{T4aAxaqPvz)4S(f^?O&mVsi)SJIX z8BqTtv-Uhr=Tv-!N9e!Jtd##n3gEZ4u(tb$xvLS%t_}(d=%1JEELRf}o6!ct2D5}B zKX_xm6I$R6(}RQK`H6M|%K}4N6Vs%C*X75di_{2)DOqk<3JQiP*2t#m@j{l6Qa5jJ zP85W3F4(VnugY_7NJW8(dOvlt#DPSz8EC8kSbtu6R%N-q0>e`k!fMus!n7X4 zzt)5)&C&+p98BwDxuwH$@AL)FMn5y$WbJaRv^HHMTer;0Jan2bboX6Re8h}?w!5q~ zk`H{I2%o_qpMQv$Mx%sfg?WhuA$?*xw%J>6J%#Uno(*|ZSf)M&?{eEM#4ykdRmz-z zCwLv^qB~6U2EBOn3rf$*W4*S7iJg!x9iZU~A%E&W-EMhxp3ppBGY;V%^)cAZEeK#e zQQ}GsLr)=&KrbaXAMG;%sW5X6BvG8Wa<%_>8}WF<*UsD*>fFyxBErDLls`dE&@yDK z$k*p3Xc2`K^0}!e;&XGT z%M8D62#A;88UB$s%FMYLCn4Zw208}>6k3m=?`k2iZCN^8>>Lb)(rRs zdDr;#>kt}#XH33G@ZmwecYYv_71E}UiG0$5pXX<%hh$n_Lc{)k_REa{ZciFP8aMMt zUg)F)2XY9y&-3K44)Cbue4N|32>QsN3rEbXJiJTLOnM#TLS2=lAkYoce0rkdTx=41 zr6wptWp2QYL^U+edTLREGOrJYQ;9LXj>*MY%$@7_?g5= z!Cg0weoamEVza;|J`GVDVrZ8@TM6x1+T9=D@z2A>3fc5x-|f4GKN3y&q#aLhxPWk? z-Qz-%`4*#Ms1kT|4V7M0kz*W7^0|_00l@<_X2KUCNvKiiZjD-2V;pK6#_iGpCs8i( zj7QNVREIgP4Vka@A$r$Q1OnsgB}9;W^x>QLPE@|pO(mao<19KwCUeCDurF1t#G720 z)#cVT1Q>Hc?g2z0;e_|DS410%Kk6Ot@x%G~Q$3^kG}*g_n}}I21+Bh>3M#ffiq}Gh z7``rM+M0o)@xOY(8w=xa#zYFiBP9iQ7O=M)nO*kU$>)wpK)D|%?TDfDBK83#XztX{ z7~T&E@EyWp6o!!ymT0nY?m^w)#Ll-!iW!QFizByZAJe&DD9AC^K!(6a-Um!1r#P-9 zh>-9LiTf8>UAolJ94|SaVld6AB}kb%;C2+w6wDXO!UjHm83kFicKrbr0ye_PBan85+UDMq6iuZ_l` z@xvYS6+#~mg%z5^v#{4yZ4tVfrcr!N5b7%2GPzfGODcQK6hgH{c7!l<0P3iiiSSsS zvIV+#jC9Z1qxInFnmhJ-%@J}xHjD6*_TC-?V|pdv94?mlSx=dWgH-D$WQH1AU)~6% zORZk-Z~`cFx{LIjMR-9Np20t;884gB92MIY% z!f-T_LS|gAJGCaWeZfR~{QdTiCKbwaC6;aRO*38YiQbS_hzG+wJvB+M`U=n*vwpV; ze@Da?I(%6lQ-DHHhP?+>&+uhk-r7iQR$x1n2EBO+K!|C#aj8tE?A>wPZ)e@@H3sn( zWubKCnX+tRav4x6nE>S)rwPI%TE<{}JKqQRNO_8}a@4*rP`F=c4U|R3>Jyd?x#sJo zL$W3`vnt4PY4X&Wa#hMQ(dxxaSIy1)td7vAjSHQ^fv)A8fbuZgG=4iH0srmQiWU{F ziSla>wsfHR#Q{LBI!`F=TZsesqwQMth>HpgN+5HOCA$~MCe15P!#^6=`6K)+-H4|qK< z-#j_uS&*U`X4sm3*#;SHk4ITjaQ5#Te{nZ z96fl%Zxb!E{e>uf)Gcs&pn^KNArdyM*HbZk=$ccckB z6O=h` zf`v-ln5uq5CXNZ(4NwJlY%t?5kjZ6)HaWsn#U8mOE4g87H3)NwgmsiI)okEY*rT{- z7~i$FPqH~CD@a71Au)3}&7PsrM8l*;+M>o|`5Jc$HvH^K%$fduZ>jQut?>IHyA2@V zUGw>pSj8Js@I>i($Eh{+GP~p6Q|7#Htu2P>Er6t{2Lx1cTIzgvf6&;|E$u)a=E7G1 zbKh}}MWBU>|Kti~(=xEA3gO)d`|+*tn8ng$d<$?Nu9K!eV$YsjZx-ESiPkAKk^Y2X zpEydWl93F91LtS_gv&Ap?>^{d$L<;D-R^^3Nb-4so}5SR)TO+TDc8q?nNh>HPq!fH z2UfSU3=fFby$1}i%T;N$$;8)mw*!#yE zoozqL23C*e*SRXR&#(&uI&NOSCL+}pZ`Gk;K5MYP!SVk<@w4jmZ!o?grD}2MJRcjG z0XBFtC3g6Uxj43i-y4)K78G4C9i0Rt&x)NB@EluFl=uCDG_tH{W;+YuqHbQABzk`e z@0jLCGtCTuTLMmj{I&=5yfxq(N(Zm?Tw62Q4P4ZA_VPE?r60l6{!1{Ec%!^w!`qJr zcrNN#goN4D6abruU?Gw`?lZxJ$FDG&U@+(yS$wC^y2>potLgSYmMt zwa8be_mJ3Gq(EU>9a>s(p5is)ocumGV;7*_4DqFV)9z*?xO)NUjRM`gr$H+y*lU8i zdwzw}e2_+j8SyBSwhwNLl)T_8%*XBavQ=1-;*o>VIpl3~F{3>LN!lP|;!x+{tt#tXwHk8vMc1xcnBQ1Os;$q1V^(%OZO>pij z8Y&{7>M2nukTI~z$nf(e@VW5-`|@)m_$*WZBuuL7A-Z z@48#+|Dt{Q$6od?b&{f{Jc8`kSc7cHvE1O0P&G9p5n?Z+09O6DE zv2*Ild;3)C))V43oAH$YL)$yX`I&9qqNz&Cw(XQ{+qP}nDgDc~ZQHghWiu&TN%>Z% z`+awJ-`(fE_ndt`Kfh;vS!1m==9qJi>BGlcYM!=PkC-CS@8p>EgX<~l;Dznt+~@7? z4(p3KvCvQY9ez&IPH=-T+BvV(D?LPY-a4$_QmPExgBw$qZ zfyb=(Iv`$2`iY`%3cWK60`nCK<8AuFa3*=}0If~M8e5BR07kAf zlEy$CIrLRU3vu;oWXG^tk^?3KU3hqRUFeaRIV2^tv#>%8QhtynN zEl&3-Zk9H|*6&v7xy`v)cS}kY3vJ){3`cQv@QF6Is|=_uF;R?4Jt$tM6c9ZMjb1pj zi32=&s+HSGu*m`9!QwHvKN*rTd?l~Sy%88a21h8PmAj7E*1lYMKky~N3uFi4-b$eN zIYY406B0zo14$w#(GS(k-&(VzwGS4dU`iR?0K8am_I5u22#<(;*6Hvz+_DH8w{<4lgDJVxy}?0ONh_jOPsaXD9x*;#@&i;eUL z-(4qY&=e_k5R;~}fh7GJ zkz^&|;uFtm!&ku4Uc+9rTv3ms#VM)qR1TKrKzGivy3{raYE2}WoAUUy@L6jl{pv<- zx$}z7WCUn;Pz3Pw(ez_#+83mGV}-c_4_JRY zO`UHUnb+?+k^NspbmG7D{{2q|*nd7v|LXNu_;1VQNtr%A^o$^ZMpPhQzSnsoyP8l$ zT1>b!bVEKQX6zPg$&Zo}YYl?~uGhODNO14v4aUz+h@t2-Hg)awTT>HL$uB>>Ji+V& zxnU@fnUHIVlH;t(bYDy0&q_ zUvp7@{wfy;J#2k`|55ff(r))j2OcAu+7RB(m%L(z4ee{n6WZqT!Pmw!Hrb-djj4?t zi2mc4V4NM-mT9@lw-zcfSxoLR^P!a7hJ>M7Im<_hZO(@_(Q2a6w@#5Jdq1W%>Z z;~sRo(OROIWnpDe&=wrm%f@Ce#g2fCTSn}2*a%HWBTWQBd-3_7rsO3G#S_cH0&nD^ zairgY`XLDdTtqy}9w6@p@ckB2@WVA{%oe&K)QCQ{P3pZwyM+zh__th2W(d=u9@Nq! zWg~DBtW1s}k3P(4Xi>)(A#x&jsWXCwGAu{nZH6(g>HfB>HfkVKHt!No`Ck-3od1Je z{cpSG{~iOADbN2~KIBzoveA0HZZ^R`>NuAqjz%O#fLIL&@}mAEhp3%%oP+XbcAFE$ z;SAiNsIYBw2tx-G-Oc9HerNPWy1S>ZJBXcsS}3*zX;ZDC-V$FbfiLOD(rJvkyP+=x zOUi=1a;M{b>jPaxd7kHPfeDXe-#5RAGL&}rWZ;fd^qXgc^^1+>a!2;d39n`~p2`pO z*E$uuh+1R^Ykv>c(k!$}$24Dj;E`W;yIeW2)9 znKVYFI(mx|K)%Z902K#W!pex^&^_QhetfIk)o)%NVlf9IZ zMht649^v|LAGxs!CEwyJpsnLRfd(+76H3PHGcFr?Xy-6y`=eCMntQYK3}6ldFP!)S zvSZxU(5qfBH~C@-F~r-Ocz)^ejs_<90`EJ;`o~WFK3Meg-*$@p-@j)1hK9zDj^+mD zR_0Fbj>Zly=7xWsE&BIWtp9(k!vE)`6@On^+{VQAk512j`mE^WZ16AnzcWGGcJ6%) zscx}0qlCVp7c@Ga@m}7?P%UWsP{J7{rqVpjS^u!@De=zT&yD%ZFuT0=K&oO|?`3iF zA@K!0B@M<(U-Aatr8M{GXxZnxwFBA@O*QhOAWK^7cJ_0^@wxY6pUv?Yl{C`50T!Zg zpZXPKKi9HifDyX)284*HcyN4^&n9Cykp(Nik7RYU9@hZh6TB{ zW1+h&6sFXXV3D)s(oiR$4hXKy&V7#c@w{O^(~TRf;U@Fnp&GnbN}-FbP1K<0O6Sbj z3@Kg@Z^887Ia7jx=;r%*o)fczCL(Iym9n$&%)tBHM;M^Pbq|{>?vyy-rB5BC=ORF< zC~$gZucG`QKEO3RRsp*|?US5)ej<(-rk$F&J9HJ~Kszq;5vrtB%@qB$_}WnI)tPEK zAQrszo5-752Q8xDpwb~;YVwxK*=uIZOrYQos26mnm6ltDuF_<6+(s&_)*FaZA`Dp6 zBh7IzO*Y{zk=hT=8M#SisFI2YVDlWQvfp1K4mQ?r6zDncCMt|G#z9o=e3E*3Cg?g4 zhk}sknk3NC%&Q`5wfoe#`LWLshm5r-CXeC`F<`6qJDE9X<$Q2Fs`i*3R7*RRHJ^W3 z$}{bnT*AB~-Rdu|&EIiq^?x6y;)afYhUwOO=PLYgx1^@V)W?R`51&8^EuhA@%?ywY z1uW>$C?V$c=Fys$3M+Je(73K)z9GMX;ob^I!o32$$`7qrk`$EcSoKKSnAo`PGuCs) zKV99dxqfKgQA_Djh8icwu%8S$5m~3pv&#LVfJ^CK!4Sb4BXJxIo$6qmOrQyq=C9vI znz(%2fJNvrgvC>dZ0R@rqKzwlv!Oe2?2W-lW#g6=Vz?61HGgqJcq}2?VnJ)yxojQG z6L9vKB(H3GPff1JC$iiGd87!*wT~{OVXkxUGC!sT%>GrV3iK@IL_uQL8Ss!aqg>?@ z7*%i>cA&r<;JUzPp3Bt#a;;DDmf+KQ9VbIOYS6+-=&v7U;Yn;j8<(5pXW+)*z~0E( zF^-d6o}^eDUxvEl80ebb$;3$r`)sp2acOYN)VwL zVXOG)t2$K`UZOXk)>HnWbtlqX=~z%5MO*f}c}{^wxKfwwwiF@y@TTNAhpKJpBSLi$ zB|8p`7)YDE%U?-3G}Vq*{ded?{bfko-=S~+e;@k4_?f`3fo^~Bvra|p_m>>rM`e<+ zo{G}5IETlK9}GnZgCC+V=#HTO;-qzTwbR}e^0m0@w)9YtHwO=8G7}NyHmtFRvA+I> zi?P0+hi8NL!}5>8m4mnZ1Da=Tqv8&Hce=X$+|#I zrj`Q;fmCCg1#Qhm!W*gI`!rb1vEjG9zhU&0SXm^*2^9g1Jf&8 zdXZ<^5jym^u1E%4Q9|=eBB)^4ds}ll2&F)}2`Fd~RU#7<*GaP;>yER(5tkDSy%fU& z6dz)KfjZqGk6W~pShIcb$Q`F0l**{<+Huxh^n&f9{Z%S; zCqw<@3ac&o-pNm0A%;hzd};Pnw_=Zd+%J$#qIX%3UhfGd1tK+|Qe&SEFfB;%!fZbgU@1a&&{>N*B-(0RU}^DfAYX0nkjsfre8hGfBprk<|p>x+fX&fQ*yJ zIFSO?(2KV5y*^ie6E!;bCARgE)ZvR|x{}CG+Wb{F+zDE1`x}cJ{tMs!`{DivE60D! z;{J(X{kfgIQ{~MOYY^qFf?AVII4ZNBCKNn$6fIBf%k?1qduwsLQxk2RtiTp_@a%~? z59Ptg`yd5&`k;aWYU(Wsa|w(Tzf_l1eZW0f;?ySz4k_RB?0J2Ott=z)+5)^Zg3i>n zjUV@C2WOs7_nj|GzFm))J?389gUE~AY*Cc$@B*={SRJ))io4P)k>xtzYG`sh-V0Dz z%si{ecG5l0K$^fhsF#L7)!=T4)9di~5a3WD;31GPAQO%y>A*5jY((1?Uoe1pueO=j z9rlWKu!q{PcyD&eFMQ7j={LL2hiK8G#2z~2E7K@VzBV+^iWtvLV1+fRwCN#-Yw8O& zqf!>5dxaTeB#Oybt3-b8@AWB9@KRnON5dd}5-&Jgg+#O8ONI`968|0{u|TB`LzP^Y z62XYP*Vd>(ky@T>QK?0vd^)r5BzEzsgyn<4iyTp5WSz|q=2pQY=>9zf3W}h_mN@lA z!nm@+Z&DJmj&)51C0_^PP{m6y)FdKmIR@gh$7(tJ2F$8m zSn6^{(c-U!B*w@g635}_GERwT%c0^hWAj(zuonx&gk*{n0qDAigr*m2Y{dhN4ie#` zU1U*-kPy+OKopHgzV@ImR+W-r zO{ICN6PNG0!~wwunUm|SNmK@?3J5DbSkR1&xsQ%D7PXnZa7!fZt5=_*vm#$*HJM~>M3mKQyZ`#I4Z zUF0WG?4+_yKWuqPNa?#H8y8f*TQgz=u6WhDt9BeIRK~IHOZh-N?(d7p@eW$w=>vtq zk=c(0e~RNNh`k~h7iFh#Pr@isplGI}@*UZ6HGW>vTPZMZ$=e&8TlTzZ*O@Icja5IqO+UO9 zKfDb;TGtszq3NxBTeQZ6gb>GG_kcO)Vjr_(sG4pLLVAnN`GB*+=6F2&JZ~5RDuKey zen)jAy)@#7j318BQZG0GA4{6$01wcdtA5*qP-5)h3E-YYEo}%g_d+B0YyEPpeXUvG z3I3i$&~V$dobU$R2sHO=0qve}XrAvqX$l|xCJo`A@9u-!;gh<*kl`YCy4F~ZzCq}? zK6D3OJl?#%d~CLv_;jH+a3|^(uxrE9{Wfja)!`^$cc~av@@%)n5H1J^-hs|yi%_#q@g)@~dWXIufDEU5g}g@tZx z@e-c0XPRa%eMRU?CDA~bk^q&KK8f1tXNwB|lZhc|m40d$7~7f?xAe}4wNvG`D%MN- z_9Hj*xXYL2zVImBQL=^`01Vy^$#aa=d`Q}t1FVR)t9)C#7-`SLCstk#xLfPuUD?T> zGLKj~8ctF9I|ZpYGI41#VJw+U7gnEI@O`Rjc(l-dEDm}*f7M09E3I#Wg1ursrJksB zwae-Zr}KnkXpaQB=P@|_SaRAQ6(DOcNH63FyT#49?Zs4}u*Mm8?>f9|%1tzChVf!D zcX;zUjh%0r2I{ycaGPy$on>>s_Ex`}?|j9l&83D$cCu?|jrFo_dI~F3Lu;Sr9b~%9 zYnS9L&GJ@nNO@4ZST`A&ixg!H3|VQU=(H~F!8@EwfAs^sJ-i?JNc0upCu<+V=*l^f zKj5{lAGJP6PY5j35FcNUl>pu*MPP>#ohQJ)O1hCAbxr^+6X7ZLv#x$%0BK$p;fapq z2A`T!;w63_FaMR|Sa3cY9rY5^Ct$1Z=9eTErfob*@y@-o;s2aA!2g@j@(+_B|2LlK z_XzX%yh3HXw&nb9=IZ7@1ecbpoX<2Y8!MY8A=98xdc)*Y0tX8PR6l#La$+n|tfac97g)1y?*dba3ehtjr7|!z$c6Ecc1dy&q%G_;_(Ht!^#Ae*>U)2*|IyKY`U1a zVrNnxW$CPCTEZ=-u@Ve@<8u&`JIkDFq;^V4{ex^TS1RjDUnr}v3xSK{Td2buZwAVf zMj^E9qgHUJync+#?lLjU$oVHN@YEuU5<=sxB8Jg~nBGnM1HI$ZBh@0yA^K+S*mH)8 zsDd*GZ+z=KBhqY2oHSPL_u-vMJ6&&*r`gCZoV2An!ju3{#v(nnoK@UWCF0LbV`i(5 z6W?#6-G%}}PUPuwGLI1os}&w~*b>=eN<-_oQg#MU8F<<0&-CD<0}M;W8>9_Bno}pn zoI{i|NYqXbGi?s_NFfs7QL>(#A(^_4pS_R$U^-sDo*8HgMs?w$;+z9q=!0-VcfPr3 zpr>`W|8#OA2FZ+RXLSDD{lQ5{!{^9|gr1uVs7n!w4lPL4uuBz+ z^`Sw;7L7p8!b^!#hf44*DnE?IufmnT7o>}zNN@gTxcvGTHve}PX!jpu^Thu|5><>H z9L;TQ{-tnKDzwY=(;;`#SSv_Sd?x`FLD%d3DCJb<|5;cGpBWLHWvNxE3X!vJ1K%go z4{kdj-exw80Xftk4DaaYrsH}41zxr72Rqm&o(At_5;?3~7(?JCGH+7DN+BtX1G5P9 zFrj6%01h;4bJy4i35EpOGRIZC`i!rEqX>}|s1EZ4@BOMDnLdw(;{(H$k5AvU#Gw`z zs!O01WUk~gLZx8mI1Xc91Vt=3%84MgXstZdp6)@yED_cVhy#N~h0JIy6&*QHIwU*w zD-hQxE5+6dh~+$lJBsBXl!opvBZbcKXrN-2Fd5!kwE^MXgGU?yOyZ0sG}CmSr`nOZ zbnd-^S6kQv&6A$x7Me>;$Vraz^@pT_XI~$woBQbY9U z{`Z@0rte_ns_*c-So`~*e{V7*{vZA{GIzAI(s!r*=K^2x|BovO{l1d4zKy=AvBQ5^ z`5Bw)8@m4qLH}hNU*LS)VvQ;B2!Tvaf>#KtkrOj3`GG<~BhWt#zPPf!fF=rOMMhvC zD7!DxGByYNy8V(3)v|y3+A@==}Up*bh`U43(gZ|n+(F5y!RS<=$mxb zb6W*1QnWL6R=UewItllMx+CXw17R}CbP>tYnpUhQ?S0-8uGH5BV^O`8IOl2CxEzMB zSx59G#`1e2#Y(nn&>EvnL7ENk(t=0(7Ucmm7R>P7-C|nT@Pi_Q|j zD_o|t_hpdhGjk5Qb`mt>M=X3&=AB?QsIh zR|es%{`=+x(4ju;vWw$9SP2=^2|wJ!Pf(jJJqBH++f~r9aadbuEuz+99p5Nrdtr_n zcA2yVx#+&*n#iPWg-OlR0n!^@U2?!cnwcv0So%-(8qH?t%64EOFLi{j)IfQ31r%)w5S#^3~wY#+XdQh4D>J19x_=y66g~NDf!K z?6w--tU~u-kDA9&!QfA4!jzBFPDj6kDV9TD?9ygdDOC z@aP@lxD%!1T%ZqrKs8=GvOz+OIXBrs&VqLWT3K%4+9vkZ<*IGu9?c=S{BEg#^= z*0G?e@oGMLgo6I05CGLOIR3gaOsv5l8D!&9ErRKoLS~i7!5&Z_=o8gpUz44pM4l#I z8`ucNpWP#L3biYn&kdRwprhH(-&3BGum}SyDV`HfFhf*Vw_xlJkop)E;re)m{ z^BcU1nz0zK9T(ZUu^Q!KtEuExEzI~2ft?@`=@(tV!Yq(r+5Y=b>D+U-UGw4v_-l6C z7J<@7R9Cnbr+FTiqCP<~JvA>Xt>z{8^|kmllkzi$!=eKSbw_u2Z~-n19ZaWHYh8fI zk1YFJ6{AvXr*?uGrGp#m0?_*zf|Mr0Gx{us+JIu&BQuT(I#+M?KRZ4qBI zyt>U9>Ea1|1)!1ZZw*lE6|hV1e8_RC)iWcfG`NtZb?=8fk#ESiy}OC1uSVnxsii1~ zk_?VU@-z5_hpDZOXJY1RBdBpG=@MEe^m~KzI&ZYR@9<=l_aov)1xTS+ENGlZ@rUc12MLCfm9>26+qt!SR zMh}=0^TrYRx!1k7&3X$LED5;>fUHu(fvXK*;A>(qlM$;vy-x~} zD1rd)z=@p&C}7g$z>8PvF(gzyJsnmSJ5YZ)=?|+T&L)i8 zHf>#i$y<>7P@(r|A)PhZVVjp;7w!Yn`BhYmZO{qqs=p^$olj5AGQtk=7yaRu#YQh$ zWF0eH$~OwG5~gYQ>~xwR9Q#lAtu+F(GZkNH1lbcu-)6l3GT(&qpV1 z#V5J#mH1T^!eun>n(m{}Igdeyv}n3bFa4UnOX z=TiK7tXf0cFtUxhqJ^wAWL@_N{>7athE@-uFhz^3VRf#oZ~~q&yZG?O&>`mewvCW3 z;R?b_%nSxf`757`bI6LhU!$0w`=>rg2ttiS`|Nutro%=x3tk=(9dVf0bd^eOAz9hD&^;yykq2xu06y_S!BZtZQ)PIbV02PW2r2?R@>N`e8}_D_vkKF|t>s zK0K?^x)fos=I4Fpfmqer90I?N^^Qsd`BiolS9B3v@Zps$#P!ObOB0z%{WGfahQY&NUoNE1m-{9P)8iqps90iz&I5t1eZt2-F+XY2enn^z5R3 zXplQL?|8cO*Kn~S+n6C2zR*nIS${fH8NU%Ube&q>_c4rq>N8vBAK!Tzau`-=8Bb5B zXr9~E_leCROPV~+cgXEhr<#}ev9x%S9=#~JFl$jM$GD_|A>%r0-?GM3mTTKC&A}wJ z9H-LKo7p6`O(W>l>vConOOTYcsV5hv6EFguY^_?+yP)@i6|Evk^w6^9c4(Yt{Y9`36YGror*XV#3N-5)@hNnx#<= z+--vXR71^pouI5SOHJ88Vda>!JQKLwI_;8*LBX%L&o8HIkt~bF7U(?Z!qwJKn>xj& z21+2%s+%1_c&7Sq5O3N-}#jLwE`(A&@U+hBc zX|WHoEE_w{{%BzY6yUEj_$l%>3hAAjtq{}fDzNrY4w&JnxdZ$>9^f9QxI|A~$rD$2 zW8DFY;YdXJTZTVBTyf}^B;w`Z;S&sxhTUd)!=7DP?SGHHk=Qquc!-SIYY7J)q{=~F zQA?PEHU?SG*+>_n7j3XXh;<($kA}7}gmpdC%-K>%xDn<^?nCAoCXN&d9YubS(4lOJ zpfu_Z=}1@_DG@7AF$wLC{TZAArZh2wm=YGzM;A^DRHv>`U|2mn`l$+MlnrAL1Qd== z%@^p!6k3d4J;99&@q(+>3kAXpr{8E8f=mY3_tS%Ksa~K}6!@0t^)GE@NzdK>H;)AC zKXRM@KBD=DB9{NY2~5mw-s2BD2Xh;z|3y?|@jpa0e_lo8Un~AKy5YAoXJGuNufK6N z;y)Z2I#o{;etQewE%XhQgi1KVmda3OlzN|FDsmQ3QIJK4dDo1r^9e%Jk%z&qfimPf zCVzh5N!VL~2jNihjp4{Nna;}a+FGGCrG0qa8)yB1lrpUkC38Y&Co;?;RWe=xaO8;E z@sHYQDanURPI#(o)B0+s-0uu(nA#2!-fokrNy{un|E*Y4UePVq@M`3$)4?HHfHI5B zXyv;;xd4Dn`Fv&8)r!#y#E+K9(S6p+!MuB4A!Qn;n!pGjhnB%~=@jz^+lsL-#kTy; zv{W+2V>MeAlD46n$|>e}s4zfkr5U9EzHBeFbx}ckB)H=|&a~z@o;+NOqb!?^QGO1B zS&9)m4K{-jDHEMi(r^3&;DCbojW(~(eAaUL2TPQLh=eY~DWyso?N0_)?Q`Y{26@^L zRq7peLR=peF?A>`lypC3bccEEkdVUOn)W$IXu&h1<{+$@IcW<-Che8(oco4h+6F2~ zaLr{*8@VVf+o|xH?;FFJR72%_9CmOBct0J#OUYSY2_h_ z->O_!d2}RkD_~9?(NyoNCbpc{=H^YV%==h`l#*=yN4iyg2`a?;z2nR}gY|1u7R46# z6ka)sLD-<73KhirKLVP~D{HabShBr5H*YBBCx(#CGriM12&z5y#wL@+dze@cl(^F)ucd_1~|Lxc92= zf5l{fms0*A3;u7fkAFJazs^0epo6=eldY_Qg|XouuBw&snwG!3>+4snq_nIfJ6Ao* zm03$$^t=^6L7)bz^d{||7%`G6#%(ye%&~;A&R^u~A$YylspSqZ#!FhJ-Ijiun#x$C zeRFhqdw#jY>iK+*yuB@gt4?Lir+OP*F z0Eg~S85V&hKrfYE;ms?T$rkxsmCkUw2nvTD_7*%UN`H_GZTuLb{}pST+*&bOLMfk@ zp_WGQs$!!IvT?9nI=5W}$kxV@~m7xL(g%YFab#=!*AUI|Gj)}HF3k_Im*CeO=( zt(o2Sn^*%r*`e$tCl6X?jQLS+t8*-_`hdSGhdzqC#5t{DQ?k1k4yS**%908n)4sp7_!qRqop%; znLNP3Jkii$8i<);8j0?4bRHaf1wXk~Alf&bf#rD-j}_A=NHQ@>tM?d0@1}FcP``b-vz}R`pPDX;T$4U*)PH|F ziNYBB2X#eIbq5;}2Jh{zmJkL}J7HI8V&PNljqTG1_J213u55tQ=6NT>LVqE{f5))d zf8g=@9mD+2PG-h7PUeRCPVY*ug0bWK03&f5Cu0X2eXHNYxJIQ73nYGY?t1ZhllEHX zRSPRi{thw4!@MKya5;ZJJ|#0j5AGG5c#8BDV;7cPMzf=GHMvi;j~{rHj+)cePNb_5 zLA%%w(l1Q+C#GIoU%f$cLao7sxv2BMn6hN8E$fv;Xg*3>#@brG*5m}^L#c(wX==~>0Lqrw!`${zMT zeZRb28Wvq5SV8$Usxfrg3KK2=(5 z!JZ9np$Tz9EDtM#!Z4w@;GDdO*`OdmPbR&yTCylA8xO$3i@g7KaPR#to?xNd zU|cjb?y2}=>StiPUCnm`2xBZ-bkJ}#fIhS3X^<97XSWCTv@SG2fcxpodlx#B&fF8_ ztfx^8LnF9)AP!Z$b7*6zCKG3*u3qFub`8x<3gk*~0+d(bvu%RA47OUfh#^Sy7i?wo z$gge@Wc6t}Q+|a*aB5q&VWCi zdaKIbY4(UC_HyS;3oqJbUIc+0WTCiPh-I!k&o{DN?PI%6s2Qt-BPlM2`5-{-oVf2t*+vvWA9J2#Sc{p#Sn7DoypbQTbi?vt^+$gKJS*iXEl zVVwd<*Ue422Tz*J*{>-@|0ueS6JkRr79ySvr?!D~QrR5qSzGUMBVh-8Vz?l&VNOKB zxh_>|)n#GBo|)wATULX!^IT1n6Q?0oQu$QkA&I$oUj9*Lgi|r&&`T|Z-?(O*r$;m& zl@?QO;V6~@%6IpzOmv#6XVGw@q2ksjU~gq-$lHPfM#~lRx%qhG&m${-jyYTi;1&;X zVJSOQ$ncYgG=rM5vp^%W4{{&gs;Vkj=sR_MwvobXty?LT6*V+1{FI3pO-;?jJy+$? zLRcuCGfaRc14wEV;8;O0S*2TrgGo?Vk{Xycz9I8`@8pYDsVItk9P)P{N`&*{TT=H! zFx#p(-Zu(;g|89~q|stZ1X5{0BG=rbX>B29thNoWaIT_!8$Y)5b}&AUG~8*`VB5!6 z0Onmdo+&Gs9gMEFkO34F9Yr~EBZh)AozB6B71uWvO=Eb)s7?>MCPPW|LYtth_ecZX z`M3DfAzSSQ`LDI);{z+^4oUVGr=X%!QO1?14itg$+E~f6D$+#@gX}HK>-n9>jk2gsxpnw?22(w}+`1sp*)8HK z(wMa=1r&mriu|KF%Wm_lH}e+R{4?;wDi)8U9|}1(Kj?{xb=YR2KkUNS#tQ2eFbjM8 zK2LzM<}EIIfu*>`yg6kod@^3z&YV_K{9RY8s(rK%6}10b+R=;j5@}>}2OjpVPHw9` zaWFtP#EdUx2!65${`n_vzYxWPGUz*|ZU}r)N7xexv^3H1yLIXI0px?G@wIdVCoQjvG>;kuuSd}{8~^n9#a!2i$xbR> zkBB19>KU$?174Am=-Wmm0Es_t-4sXhwF5||ROkDsIL^+W@ObX+o>%mwhpL#0@jn9v z#^#Z6<=6z*9U#el3b?7*xv$AE2X{sg5_o6s5i2dF_AgQES0yT%uvb%^O9$E#1c!6C zFQ2$tSVyJdiFy4X;d4~{=SA%R;4{|1j3RcpGrkmDb3Y^Qf#qr4Uim~t!TbtTG*OI- zO}oM;UH9!$)i+2~Tw%Ea5*fbeWHH4i^E{gHdUss>3R8KPEG19g@7K4#nDqbsj+OpT z-Ld}_LpCP8$^0rWhYHF+pa{|M-G&<|14$_N=j8{nEMM>sWk%1Zx2cx&blY6$q#XKj zN$|WR)N8i;@u%F-%3eVO0%7iCp=W)2eRgW*%G6o))|M}D%D^7mJ$_|>4++kbojP+o zX3@LHr}FTps-weRXJ#)!W>#h?%a%dC3Oh1$`(XJOlLD@r?Nqf{+UR3ig+<6=^k7^9_9KOo^ zI`r~HhHuBb;G8!g?ir1I-LyI)r}duhsHFLvV%S=AW~yCrEJx?|covaev(U?E?OD2n zZSHEcEotwefSuOAOf)x@nJ%~;^xmM`k3Rx~4M6a*AKif5c~`00mgWLfplv<3zkZ{^ z5846roTxg((`*|W7Xy6|z5j(J(-H<`Z225YqUkDNBF>@>S=%PNSl^r4EezEaD z-ho=42~u`q1@{=y5yGAp7`tpU5t5&^&j=YIvkz-XeU!5jj%tk4g@5>t`fU#DTWp9I z=mFt1u))q_AmJO|^v#v>txrG`pi6l`v$BJ<6l*gzNNi7(rr zTEMoDnqSaZQR<0MgLO!7^4(DM0)0bI8al=){`QA_HE)qk2e>LReL#J~4_wS{fpVDR z@(0h`DTOznNK=I0dw-Gl_Mt@IBSmVcKSzpxmz)*<11I?328oikzs3}wu)#tAl4i)L zFMwsjE`eiK}+OEICQIWHQ*Ul=<=mc6-3K1qn=8qm$-$fa{nx zGc!}O-xyD_ySv^#*x|WS*4WiY5H=;W7EYWYW*}NXC+baK0JtU#^wex|FM(W1ID*|UUvyaYwJfMF#obdP-?DLqSKbJaQa;6w5 zGM@{lZuXe#mIPu=kbUE#TT&J~{Pd*tXu<1}WeCn!gP*CPX1bKjKgF`)gAR&G) zsgk{QLr#Orc9!nINm7ZAK<=fkosgS80H*jpnIeJ0jUjl!{@anb8gij&EfW?)nusy& zSOJ-f*TTT~jnS53D$7)^O@1IF%UH=W8&rFsHDJ;A>~nt}>c)ZoQf3Qe)bVV*FUSsu zwp+MQ5OA3Ucx9PHxKBK`ho)Y^4c7|DYUdYzxEiH5P?aqne|b|;a&ki-f^I+II!Yy! z!+s&Y1%a_BJA`UG{_G>KvTo?Z1xWkUqKc_}voEod;vsQ}Bt&Ch$b%ipEekA!)U!qD zi!~zD$70BBL#~s^FG8+;V80{YNy)R+uoty>z#*UL>U(7+H8$J?&=^Jo4;de>?nuZu z=(9W++FUDZjf=CG#`AtB#&W_*=;Rm3SyLXsLDYQxl`K)&7G7h2j}Pho5+D8@x!V5; zL$2ThBF~3nLLMUo1PYK)K7@6a z`#3B6C4K8;-a!z1K7o*rXv99q28;IH0)(*elAG_(kh{r`yT^lS+V>oE-vXqGU2WhU zA`McQYof|1cc0YWDogKG9v|ZVn#4HSk&SBFK^~TaQ7z5`;X10wiaV}TTvr%GW3c&b zGKYMZm{I{Z0ziAGn?y-dLvk;OFp8wwa{-luE*5f~4F{SqzQwb7ql>QBQ@`Lzlh-DVTRG={=5%HUo$}^?)|H;(Xru>rnt!kE>$QTw z>X@e3!0GGTarIfb_q`g4OwoaT}WnEWw3Z zzYR8VrG`Vpm&#q^i&%WU`}C}Fh!>Py*C*L;q+{0UPG#iYXHMk+vNN%zuS?dG1gkgB zUIFlcZI7oP>gh7AS*3ITA~9jPHXjZ;U73qrsxn1JUHd3bJWGNU=w? zhBE(q1w_#zTL0U7q$&EpM56hB0*O+;iirM6jQdw@M5ppERC>qLHWSP!NJ!*<&rgW^ zR04-j!w-&Jf=E#qoJSbLW|d)GXIvj;RXp=H5QKyX=JUan&2DFCi!b6V<~F7wan+&5 zl#BCeb7Bq7_vz+4<(DV5Ny1P~R2xllHF89T=mhy*LxDQEb;5$rHj0Qv$73UCoic(R zw8DapMn&fw0=5vcL0d0+pUo(BL&(L0^KxZM0;x$n^b0*!#5d0eKf{9RU ztFckT3H~c@6N*LqUJfuEEO9gX2^QD z+BOL2Zd6v5W+{W8==OvX5m{tf%mq9&!%?ew7X;EuR0WO>HQ-4ze9MEDii@BxdR(Z$ z^<5IA0#A$9Zm?U6`s!QQqV$|aPs6ZhN7PzG?Oyv^iKK!Hnox_3hx?E=anpb5jRge+ zFUdOLA?Rez_910qqhTz?Zd+zun0DPLTDhM+SPT1p*!*cVS2&#`drC~#dqJhS%}Msw zL+shg7P@D;f;gpL26q`_osur*gFP`Nw8ER8`ry{U%XnL4&qJ8W4m?yXNJq1+fR{fg zYxaW~LGU>WzwB!Jga0FZE^G8S0?-a5s#@`k=D>m&bsw_|Esi^D%|HsodIWlsI~8;P{G7vjqsf)xp`u-pGlN%iMVYuNLEJFHBX!oc!M1F(2yYl z2XcQip>;kjVoKbe$Cs?Xh&0V|&Eo2&_0|6179*S53B7F@4y8g6(6n2V+owO(*d|k z4BzLBrXq-8)ZNolV&z00*GJ@VLf9Zi!s4H{E^PZs!F*h7+YaPX+F!e?S@&&P9nncw z(X3Oaw4PL#7E`hv&|ocSP~~f`B6fauv-QYHbbkkV7v$1=+Z{90^mDUb;o5&F4@$0P zW1k@fB(4gK5T0%W2`8(iw+I){Jwq&dU42|^t}sd66+8yvQGCO2_91|+&{EA05#%rqR0ImDE|pPm-v57M*e{sHFd>zvF;TV2kK<-OAA%NN0|_!D7RXB8SFJ7 zP(ff)`cGhBR&eDY)H*6-7K5>SuHVpFuH(S24Psk9N6RSt@c9USb{~5D!hjGz ztkDj-Wtf{=n|pEoaf|&l?#ui7Ne^1L9DI)mrTD5gOj8YhGH=^E&j6ws12GP3h?|^gX;VvPRGEDpi-}oRm`;Be@MI zKj(B?x$Bh(IwEglbdM`FIws8El|F|JLcwv`EEsS>(Ly?UCR#UQ_Tl)t3L|k_g)2%o zK1nG*X-*IncEOXV@%TY`Jva1Hdo8f&O4%d_^E#$I@Kd?f(r{W7E4-~-1zpq=WI~MC z^*Z^Q!An7yI89^a#m|$+G4(K{4=ET~Qnu`y3qsC9{ z8>6qIMB4US)!zkd<&a@S93gg)3prY&kNsem-pQ))2}rLA z@$GfMt)u>7dUC5cWhFzpW&70!B^ZD##T&{=xsnSkTz0-~spYp%WPPuq;66~iP++h* zfdOD<$Wf1B*e_tTJG$mZ9Gu*?1+=C@a``Rzg->>|yZiC;Bpv+xi1X=g;rI~8*4LyV zuAyCifMT=YJUy*mV~`7a5LIL?Wjh$2(NsNI@v6Kpykt4s-u~iXK2yWCBMl#z=x-T; zt$Ys=(z0^C)6X08o7f4|GyqGE=cw1npsJBEnytKdC6i|eA{i%U)m8xU?+Y^C5KRCd zn({}$f1zItDVL(wfJ90uFyr&U2;@bF3<4+CRw?thO59%yd{~4Q@L$l;Yc!o9P|E~S zF$LBBj;{$}gyjc~FyaEd!jI1hVT9&)N*c3+7&B*#f7Fzq`>Y-#9sRXa3dGLh?Xb_# zTX-zZ2=H|^WThk7qss%fM}l;(nJAHwES71z$m+meWLKetj@^U6N1qSX6f076Wcg%1 z`v)ukGbzFzTnXA9?(T5F@!M}td0F~;DfByswM6){7Vvj9&)`4sl>fVo+h4<~PNlW? z;$C>}_#$y6;LaHU=-B&MH6UUtdAHBN%JM{nh4={bWPuH}&7-KU){8C=a0A~t-2`@j zwOZ6id5Vke1nG@3)-!S*R7^)b?;SK>d|^XmwK-Dm!%Oi%^qgAGA*73=kw?6~0z z!LDSHT-3b53F*mAuKw?8UV%e$^(FIgZ5=bz0u&q1;N{HiJqfMViP`tztz#yb)ZMXi zdm~g>5(PmrCrc#wTeMQ;!hMBo{!csrH+NwtGsr`U3T+b6NQ#W{==F6RwyQOba@?3x z{AGw5Vm6b&wuCg-t#2vR7E4*3ih-9t{P8+M(eIxg(?HdxR#9CKYe_P??ojT70x-iZ zq0GK>8LujXV#w}+W9EzmRsMkJLA`GohBMob;-j-@oTEINXV=4q+T?3}cBzdq@uk8J zpfb``TBNTHAsYtN%8;o#$#Q}?qpQdhDMu%@WgLz0dU6+yBM8E(D0sjeuWl?HJP#gv zLZqzH6g>X!^L8NXQ>qCuNUB{fqY{%I@<9XhHy}^C@XnW+}K@Kohx+h2>B%?`hQveKhnxYEc2_Z(1l0M4^ zg=hK`p`@QgK<_ueoS!v;Oq6|8PBdidrg3B*bZXe#rh0qV~R7S3FM%4?KMFdTQ6+*FMy^ zN_&wGsq;quIcBW~A;OWZVdBc_M3{D(%?8fm)}l|JNv$5;HeZ<{WfPEM^+K=e2xDzy zKZE#Tp`w3rOiE|Krfi#$Tmsc6)emQmO67dT+8Vvs%5&{nZIzJ(WDbmzmF~@(NaaHp zn8^U7uGGLkG06eKi_n>R=5+{*D&1@g$UZ-Jy8;wjO_WopDTQpTZE@jfpJ3^J?+~rG za;N_RAwX}W%5{{BzQ@5_BY&jE*BVzxU-<4pZ90IC=M`LqGy$DtS(OCO4hbvqVR`GG zaB*hbx7OqtG42`V(JB3~KgAx6A<7APzh{Bz=Ao`*ChurSzSDlz7A=c1Hv@2P4JdUr zt4h>bxDyM(Q-TbAp|=Ulkfv&rnxRFbq-(WR1f}NL>&V=-u1Q;@4U5PhGiMFC`#NmP zH-OwdAB!pldJf6VXt@U|(Dvlyao44He{nFy0yE${nq%!yQhu!i0Vi`GY0~P$uQX$O zof@aHLOk%j4x8W`O$=D1P)zo(?aV#MD~3!i+9V5g=a0fP?=D5vqLG;SIB^Gwji4l$ z@m99h9~o|t0>aN@T(wpA41(VA!u#@al7_T= zRm<}IKM~3Cqa)#U`Px4z(nl9F^x!=@VC3cW`b~uLk!(;Pnza^1!QJ5D68VWeL1M8j z;2n_^61)~=<7fXusXG=GyxFH1v~K$ZGFUdA+H429E!w$3mEjyI&?=~=D?d*Lhd|~PSwYVu&FZ;$tO; zfJ;CUEnx|Lm5PKvW7WGNArMZY7ZCKDIjk4?)er7L1{^LW=miF}xSf9y>Vr^{C*IIf zic|PYlD|k5uoX=-hSIf9D}E?)Z5hggOtdNR9p|?LGEHSf2l3|4m^ z&B=`dRaMF+{}k|SS{mmPAQL|`>_?;DlUGGhMW9D6wdtT{fEPV6LYrmI=ILaGHMvesudSlb3?O8R7!6(Rm~fzYmDD?_8Y(+Aq?Pj7HLV z%L~aXE-tt0PKRr$?{_OJ%)Ua2@qk`M#1=b|VMj#7;=R;c2WnU%*rgCR^dLfGIud~d zyA-^~-dgBuynsXnXY~AYXDM3fBp39#Y`H}1|8YXvWw=M`$}8L>%wT9chC)O)-0G;NdW58<{}3fRY$IEBs~4 z!Ko`*@;W0DIFcMhy5_P9;jazo1Wb*Z+$H|;b z;2d)Ba=n0_4ngFfb{h;Tw$IZCb;9i-N5`>3UOXQgiDIPsOK$rE7mK+CPb&p9FkpE_ z>Qj>DhE@auh9N`{#0JeivfNH@o`ghU_4&VeHLZLevC1wze?GVnwkVe2mR%~`9~b${ zAdK;kt7d6G*PjmUk1Dl0*S>#_9qtbv7*Hwgt73Y-lggnp@h_h3h7yj%Xg z>(p?9JzU+#&F%6}+UNgjH+=}#f7jpru3rE5Bk}(IZu+m0&Spj~e<6OS|34Y7;ACrS zWA7+sWbO3F^-wD2n|VJke9#PW)oqDbLDzSz!LC{wTq0!z1WgooC1ovfLQ6vHd6#n` zoZb*~b~QPBI@;|thv2k{?HL+h1Z~bh>~?H-=&Gnt<(!DRREApgfcNCHhPZW0qj(B5 zQi*>on;NNT|R(6E=StT7*+gupn#Ha zfcH!wc^J&QJKFVj+`vk)*r-23)$2|@m|2l5Tl8%xrK4aSBlyZHz)7VUlnW?idT?-Wl;%Pg@9A+pBj)p^r=dzPOLI=H`1euT<$e1XW`e{E8P_DO|06tnCz=# zW!7(^dmV0L=rLigk-Hoz$eq^{9lY}k_aAY*E85tK;}Uj}r0T=#Et~k?gZy^D-=LF# z#eV$dt&h)t{>#k&moX#eXk_(A+!QHV$t=hMxKgH2K*9Hdk#uFJY9{f&pu~^hd_FCs++BjkZY5*vocPrwh=w)~i#1)VNn2%pSXc_AblDKie zxI_8e1pp^gR8zNfG7PK2Y11n0S|cvoWHoEy+_}LllkJGfM#Gq-o|?Xr41rzel|lf$ zYxaRiK)a>f%G^ZS)YUT=&@5_YzXs>oqJz<~SMH2|FbX+zi0~kmHu#M=Xje9;Nw^35 zjhH(%D&@gkID0*&nfWX1o31_&)N9=a+UJ21God6_^Zgbv*X8te;qjAkS>SjNF@1T0 zrh)OD;c+ncqj0q%^yQ%yytIX>qx&b5QLj47$ zyjc9%8~vHtdvB*c5YrKyAtY~F7@nBQ$_JodYAkAy)mgE z%h#{BL&!S#+LE_MdlY2d;;+u(HF{~)Z|qltD?UIj29$Z6eStQ6+L0*YBCSDSbligl z02~=x4}Xr;2o)dHo~Jqq)xvZcTi=qPqTlsXM9_(u&>!Fk`scIu-$NYwzmGR7BSSO2 ze}Fc^f2m&m4|Rfn3{$k%vv&9c)INU2(Z>GoRjcy!gv@`0Yt~1&e(0>clasT#qU9;@ zyX9-m$%YwL;R%M}nB!L)`D>SFHnu=fTRNt`p$^Q@_W|C14_K2JWgfgdm$j}m6PN6? zth6qj9-mj>8|aw3)FCSzw#~79)T`-TY-P?wu1fdTnb?L9`Z7)<*R4JF@TkasLq^Q> z)!>l_TU`9H0qIGnz1(Jns;~_HvV`oN_O6~bDNLH8bI(tD9{6!bN(o>UPd#X`BExG*%#he~WrVYo2R7IKQ?ex`0tcbiL($_8tk>)_bD~ zqFK=#PB22tv|iI`e&)*Fone{Om1;ttkBzXM&V?x2>bg%CC)?ggChQO4CzQIAfacl| z;_o-Oy(kAj&#r(SgmUaf=za>KyI* zurO01^18C~jF^A~v9fG4`Z$`+S~|6Du;h|aJL7XlRbP^QHsCC!^lC8ttliCxBDiRm zt*X{t?~7cqMM}ZZeQ&ssiduUV1Ec3;TQX6Zw0rm>bGQFex89LNyGgdO3526;E}N(k z4isr$(@!SKXmsb;JT%fp=|1T=wI9)zpzo@$i9HhEM-t7*mY@uXNwi2J=c6#nrs%Eb zStNQOcF3a;^%__`I4kqwC;otcLU5?4A0N=K`j`2d|KMZ(N03SV7NPw1HZC7d%6~c@ z|7nK7_(ybo5EdJ;4&6ROe0Iq ztsAwSS&wZf!KE!W?PY4guWIN_)~W5yR3lQmolb3}4s(nZojZ$X?Id?9QXBWn=$Vf2 zzVm)ti%b$NPmRY(K-xv3D*YwS==dNbJJ4Q43r90wn;_9>9>Rs<49CjOmaC~He|&=# zHq3*@tq5MPx^Sx5c7KiJ~NYX4J#|0g+KBaQlFbMt0DipHlM100O*)C_a6lkYg^~1GcdBe4WE0R$maN9R>m|5-$&Yd)^pa-Q1wW&H-@&&0( z7#3VJ3nlk4AEzIFA7dnd$~#)EuSnicf81hzdc+dws}D!1EI$$G3D?$Crt@VA_EYd4 zg*iJ9tT}IT)E*+RBz3LSM*;zn0UQA>WvH?1< zeynh~;NA;HMw=BND+yiVVZtmy_AZJ>nsNzMv~qOIbM#e&+(QCIKTEUiR1r zp8y_q*EqtFYp2739+T+fjrjD+7Dbj$Fp3+2pdJ;Mik+Lq5QD*3-spjL0r%VOft(@S zar^_#mHsjn&iGeo{`-!RGIG@W?KSx4Uiq_dGAZGAMm+f435$aclwVu`FVP^EEs+(| zI#;QXJYT*rF(8~AubTOm-05&N?lN&ep-+m!Z|Acs>0qUSkdi(gxb9I~|cFUw<%AM$W{6;^_3~_GsdO=6zS`MLpHBB{=lO>JJNn39k{Pn&N#w z@U2@viER089Q&tOu;^FmOmoMBKxkcBk8BeE>WKl_*phF@*;vofRzVA6gK+rg2Wd>G z%>z|lY*!JX8=QMuKAgL954X$$b^vhfu&!R5p4~p#R_Jf*nEN5ilO0+!fyA|YuFw@^ zgu$I8+*hEV-zRShmn(cm!<7Y&p_2R_0ONMAbUeGs6J2o+?zWU4jw&)%!Bh8Hg`-el z)1&)yjJVZXNkq3mpxu;OpyLc>#CRNQ&GUJa!+tzOli36^&RjxE@$bAY`$a5{Z?m_; zjh+V^#E`Ur=6b?JIt}9SR^$9YrC{aepZqIEb-3)kYLW6UOBH2YCTv-A52`>;w2!6I>F zw^-KDmAk3oU+D5U6^MY%w1(6(Q^~Vxvll3p+Qwx_BT`$AY1`O{L!30hD6Zzmqk!-H z8Rd(Z$V+6=*t#4rt)}N>#aM|pHTM{0;(q!>ZzhLFsrq2J?ERp=n&YHUirYd|Q^$-e zDe==#-~G4`fPn*v<*1N+1R};?vgQ1L6^LU05xf7Er}@*2tw>%<0_cN=GN`b4Gq2iq zS1LtwC`Btn>mWrY_ovue_*QDxA|_V9w0+cvvlD~ZK-DOOEC{Ff9s9$z$ng8G+ZWK> z=zvccpP7LyK~{;82~wQEDX5A9Ar!2uY6Ihy^ByHHzFZ(4T|3H<@@rbS{D^HxtPnwE zBUmyhm{QVjluVrh1+v1#$gb}eB{b0<6R%oziq5A4ck=1|wkv9*UQT6UOfDw0|D0Xx z_yaM*?{1B`7dwxW&SA)i9FadS`MAn#X_*ru$1pv0b8F7!QCRZGaD08f-7Y}Xgcwyt zJ5tsn>Xj+VySZPmAKHj=m{}mZ7z_L9LX4W9_1$h!#}uAi!GR^K8YiTd>F!HavVA}2 z&1y#bvrNf=XVK?J2os+z7(Jii^{NvK5@HLy#dq9JUfjta3ODbyvV_2@-%ZyF@?$8n z)rQv5iX+D<_s>_}ykM0mpH&}PGIMB>YeTUTYo8!~Thv}D&s?LA^Z4XrVgK{nMCGp* z^&i*tPjLCiuYQw{@qchvgnv7${}ej@xza<*S`J7`0B>pM4XK18okAEZL6CrA2qUN} zaWSe`Ub^%>QviTkhB>6(u_0sa8*oGeiaTB zf*>L7?)Ip2=B^Xxc=Ff7^DfS(qq=ln#1f`VG2GxEc!agMD%a+&JbrwcNdx(q(`KaR z&%V2|4oZxa+TS-jx^Do{%GWnA)~lOp44ifot$5EbCVR;@fd=9D1F}=<4z9D0zyjqf zP4kv(L{|xFHLTG$Mf0B$5q4CZJOs-hiexO=Ksm1NhO))T3M1t(SvbqE@WxBUQ8#Hdfk9#=Hy_12#~F z*wvA?f{nuITQ1pIR>l<1HKd(cNP{X^-jy2U-{}7K*EQSJ3OLw{t*|FBuO_1h-T{)_&Z4%d|2cqXM+pKXDIzl4&B6!hX@QSe!a=@@l z(lNJ0fVBeEdDpZKt7?lK^-4dAt14|LP+>rcNS0tbq?Zn(zFSRLyV8r1JW9x$nt>%- zDN^x(4@9=GX2FpM7Ooo>Ca-x#;>kH|WRodVuBn}Nfp8LWIYt@;4v(gImK6cPq4Rv1|EV!B0*wY2Sat8u`2e%q0lua_Tdfd&SeQ3n z``qs}Ks%?gA#>(ZiqWr5ZsC8HGCpCJ`>ly z_ine}K}R#5+T(dh_hin_K*IF)JkG?mT~NOW2R85um56G??``@ilAHR(FV8L2nJ$vA z=z$e>Ar*gu{L+9i=8&cDdklPs+G?OZ&RN&ZGw?_6l23;grQ<9BrS2iZHDV5FQ3FVD zm4#7w!T}3c0{>r-K=(lOKeltZdwX*LoF&p_8?z;gp1TJZsElIyfrR^oK;tg6N!N76 zufAr7C9$S?KyyUnvW6p}yw%bBRkFgMYMHp0SOj^{C^iX9u#a%XOq~KH4yj>+X$N>- z#Lj|BP#d9W-!($7lkXVf$7uj^-a_JSD@ad*gd}2OSA*Y(B%Q$TNCg9R;1Tukx&&OE zoH4@G#QRW#ofWn|s%Qn^DA;C!*JmtvWaI5 zsIg`?W9uG0RycwhjX}=;Gt+!BZGJ9V||iX%yA99{PC2J@FpbL0GH*@xqT z)?8F5b6LfyA%HPm$$orvjAJ4o(&?(0>Z)DI+G~hb;VAz|ti57q!(!VLTqbS;evK zdV^bFcU!?a#->R8DL~O|hP@xc7|=Zp4a<@WY7hY(mtQGYbX!kw5mc+))Me3mHZNIE zDRv=r#b&;l9Z5O`=(V-e{eDU&Z!ii4(u6K#BtwL&e%CoCjao4}+i<}q0t0)Wf3*C} zPIA`JZ(npBn&ifzn#2TTG>PGgL>6YeK-Q&wO7wR9&v`WzIsPLMMjip~~@1!l9~D%jD4s_A0P zecZ-M)Z8G6Q^ARxvvvl(HDKms_Rzj9u>rpj-*Cr)68-s$&exq&k1!5p3HCsURWVxGk z4d1r$JyfK7#Fd3{4kF4%j|L`Q%sd^whPp}Mv8nwn!&NE{%RHVd90C6)1*}Dku6az{ ziuXX{BS-lwxdl_NlfB%_^QY~`Yry% zMXNVsGtHsV-`OWbVE%~e4~&?B`2UU(e=~nk`eu#Dhx`jPma3I1v@t5*pK2Y|Jf-dZN%$%XsX{pJvCx^}I{0Vi*di7wm>VDn_3ZsE{!ajY%=(BF$ks z`^WV5dDVgY1*bOWLi0)Ar3((xwRMeXNsM_JiJ}C5hK>=5rtOd<1N+A8M8sOd zkG}oT_M?1U!^>n&tK>3We?z|ip7w11^R+FcmqdE=zM6dx`D?JkN?l-Lw4LU>9YT9_ zARGi2kbP6^4ujn4)I+7VkqPRgt*pfIzTF!HdD{ zq&8R??b58$n7`~_|rusWI zlU5zVU{SkMJ~R`y$cb-9rr?Q~5F=++(oaRxvF}id!D#QLZKJcT(X*YQ`0z0mKf!0k zQxb&TeYb$A7gh-EEC|8Oq7J`{=(Y_J0Ndjrcy2Rg5`GO%=iH_h>a2Dhq>ZAG-9I6h z_exDMtm-zh4*|9Xe}u?$5q)fh>LPmmoZb)PY=;DnFz6y#i<4@|6KC8b{XBZ_rFp*I zz!-P_E!G-W$|CfaJAEh;%fcZVSt;GiL-rT5!+N*A%1} z5{79B>4tGsNbYT3)1vhzF}N2BgBv#CNxYqOq`0J&vYcl~xqHuIJD$9_=Hc=FqB@xI zp=f0drp*R#pqy0D%Z6w`6jqL`=;uT;mP&QfV-8${-WLLBK<6oK)V(nUKN_CJ<{4DT z*8|+4nhmsHlryseH_by@?_a6R=SCr(3S(RKqc(W*!p}4p(JDG!WQ|UUkF#gKwbNuz z9yjuNborFymZYxq)?o_p47uC1jU?~i)jMSsaqG6KC(KViItxhzJ{Hpp5eZsM-ED`Fh^w4BT=YwYH|c2u zQ$U4p#(Ps~kw(#7Lsy`I9!eITwV?}Zt#nb{fC}`DAsJ$@fY2{!3*XwE~Wn+5|3%pQ2|lRUkH(`5Qr72 zH}0M$um|tE*e(v!4TAcVs5h#EJ9qi_;$$2vCvV9^w5HCr@N4-WMpQg8AY3+{%FmU_ zGmU#4O5R!n4CUgb$-jPA-rHe7hGu?5{_i}?SZVsOO+2~ zAI{-(1X)R;Z8_}Q<@ z`8o#aqVcY%a!qwf20@AbJCrs2fp4x?fjRaSlb7*L89WFeG+Cx<>ra|yDWPW+zotak zl{P?P^D^vlL}ilLo^mGB46d#sT%7dKfaACXuU77~fvyVFCO`r1W_TL57gDE6u1R{@ z8E=&YL@6pUMtR0e2UAiMzp6e=gf{w{Zz$stknv1^1{~X)KS^o~=V>fm>Z@HAK6O!W z+3j@hTJt5MBYv$%u{@bq+lE*)iqVsG$jZAbos>|7oS65H)-17i1}neJ=g#BEi7nI? ze#&AOb1pn{tc+4aRRl#+p&O<3b_VMjlH43D4x=-alq`i;*kx{(l+@oCWOSCC+(`>N zcGbf**+W4E$fw-W4)EGqKv$%UF*^P7)sC>x;z6`ASkt(5j>d>Qr({B2$uL%R3G60{ zoZNaG?z_tV+UD;8tHfa^SGfhFAjP-dYY|-6{MB5aFKSRaA}+WQJj;lt3wDV_oTnbB zRPUEZ{G{l6)>w^hjwyV9EDfYwryuRIU6!!1K%kyF5dJ}8oUwnAvH#V9Okj8J{=Qo@ zwa=R})V5TETn^4aYc?F%4+turTbgc$Q5o|et3A)vxI6`iHv7@pEdH;R$sg6V+1Ie& zlaq6XwYYE~zE7xogWeM72!MH=4x;dIynxK*LSe^y56vK2kY=bYlKK_qu!;Z7Bya-0 zQ#Cb~p4;qsMCTf_p%nmMPPQ(i66cV5S-JjUhoItF5IifhjFr2-a)Y>5J^H&;3}V_h z5c=b8wfmP`@PAMrSpA;a`<C;U zqwSFsRwuTJD;}@8anr=Qi6WbX=?9T2hwoX+ zDMsWABRBE4u;+znAXiv+rq9H!8kD%{9y4_^XPmd;Wni?4A)ga!+msMnC$CzRFszc8 zsslfO%2}W^MddFWmuPaU^xgq;>MT;j4+Zg0IdkX?dgncm%bmkFNz0uhHu>&+Bh+mn zWsblny+x(7jhjS^@bdsZNn#^(P(9*Kqlsg~cThY^oqVIWNpj1W+%Ve0yK6D*Ry?wq z@JyRbneYsnR2lb7npBzaj2c{7H-kchsOl!Tbwcz}*}J9_V|we$uI3FCyA9;`6Sa!r z`3fUQ^ou*8Y7GY}xP1lGS@adCH(j@KWxJ&RyiW~h`KR@#8<6IaPpP3}7Zuu52c_G4 z+h;Xrw;}Bnops>AR0iW^Fd_MLKBUck+Y30K8!PgABf^l&EuTsVB0>I6W*u%%GKA z-Zw9vyb+oGJm1_}H=bdiVw!Fw%vPUE(e6B1AWp!9fVpCqaq1|UJ`vX0V0ZEGN=OCw zm>i8@%wIX)Izi&HY;0Ut*uP~`tU>ZBM(|2^6U<>Fvg{=PyioS=OIC#t^P)Wb@#!Im zpsu_sqWs06FT4Cqbg-wOZ#(3{=nk~wqm`Nuu*C$!ho&}8VsUm4V(7~^ztMV>SPmzx z29KnUwlyu2MrRKNhb-`3vEw3*bC3bf^+}|I0W4aNPNlP|Q#hvw-diz;~jgTDa@z5RXItyYLIIj;JRvjv#MJF!_w|E5RN=U-<(S zH!i9lnecAkWqn0^ai9n|q*=}yr*Tf9@1Hr`zZ9{524o1AsB#BW-;SMzgBNI|fC==i zLaNqNMhP8R>eep?cj(qaJoL%t*7dXyz~6?^1v&L+{mO>f7e|{^Qoz8t zWc?`8=_m05lqZdV!AxteDA_QqD>Ya`R1B+>s%9C@a&+AZfD&TDg(XQ3*WaI@O=3!? zULPK7q^zPwpQ@=Nx|pVQ>*n+I@G#+pQQl1m4`eP%ec{khh>xitCqk ztww&I4IX19Z6J&9W0;YH9a;GK1MpV06mhn)i9W=7)IRP%A+ zqwP9OPW(DmeU6t!PagXP1U3*m_BC1v8A|v$2P@|qJBnELJ(E?U{dwG7a$qG*+$&(j z?LY+{Ot6K*Nq76TOvjCAEtO9&tSSsu;>TmRWz0Gg6&uH4`rHehxAg)PJ|-r(U#YTq z;P}lahL1DvX13cf}*Sob)dLsX2airLuLnlEc|lWY`DsJgXwIi95} zE0M-qLeCh(Fe12#@{Oy%3%pgwtF{s%_SQpN!X!RR)YeP9&LK+a77eI~j3)r`SK%3eqkxSiM*vQF!J8@|joD&Qm#23cFT%=I+Mn zSOjnmhOik>y06Q1@KhgAl--cdk89e3HvCY(A>8T%8+-)?BolPB=`|}f7N&G83aT24u-=A zA>$kkL4HZB8Wk)n)7ZuHM!n_0w;_McoIMfXuDrSP6db&Sg6tU;L2(a3n5DU+fb1Es z>ErU0++F!Wk_yw4H;cVaahn0zGo;-2gPHZzs_zFZ>#0_sHA?0+WbqR)(l8CW#SaFl zi5+Pw(Pyt;W&J$+aJDQHynvoj1-Wqnp<*&3E;Yk&KUbe(G7=t!$fS#498B_&78vrz7}yBNNH4nUvBT*Ykr^KK$cFpU_U@j%N-W1YYm0Ln5o6 z#oWI{M~`I`V?vG4l#Ydr?jFZ8uGBK^@uval36o4=J#;5CGK5Y=xRg4S!U=rd8gAr_ zij~vw%plmcDwni#A^R|(LTez`+eQtI3CB=g{I-D>P*sv_)E*rM<)fU#g9sDqF>acG z-kqTo-G7>~i2T5w{TYYNfV$zI!9X`*J-a^Z0DA^}{^{pq+Kbi8^3|5)MhbKjobfC-}P@ zb|GIQCcgxbnr|3!JFHytIj!2p5jOrQZd#7=ScvRVd|K$lXukt#jMhEnIwT{pdo*ms zwxgT}c0dF9ODOd^5Mimk;+zARm^48%rapz}u6V#|X5cEOyPtL-D{4(d`)Y$@9rFr< zVX)#xcAzLln2)qwJ6|Fd-ncMLg|*)8bTVI}mri);I-Ovb@Q9-v-fSpN0n}dp*YTLR zu2;2j$HX(cyE_kd+0)$8v*2)6FnC$a^}=+P?F9BvBurD*9U$MzwsF zxjWRZs+cbRr#vmJ4QA2ttwc9X)6@_yx?nE47?%?*t>w2_ps(_DEGG;=_~JzKbtk#BNFit3a^p{K6P1n{LOdL8w5$8d-&Y;&;#UCS~XGEx-Ni0J`n=oZ^5^;Dd#`s$42Ha<(D^LkICF zAVZ+b-dh>RestVSn0|EfU1Yve$SH(vg%tI@`yNh7h7DM`Q~8PoNRiCtv&Q6%J~|0S z%F;>HBud3`*)l*O+cPUwz=63FTU7w#6YgP!uoz_`m?<-~Gnber(ENZDW0*}be|J#$ zv$E?eEPK>-A!K(5>P=T;&gKMb;X@SHT_6w&5uy!2y6Dx0BUs(bR1$_|30=kPSkIHFA?@{`FUQ!Z?x*KkWY~Q7QmeG{k z(vjesj}{kSirKA%&X-V(U*KM3vK*?iL985x!Z8cK?>gF`jfHFzq;0bhavI3L(J(DV ztosZQ6EE^els59Jh%Fx|7m`25@zJs6t?HaO$QJF^NJ`!Jhz-@R0~Bh9K?+-t-vaISNm_S9t3qA+`h2vFXs!S-3WZLzct zf>N_R#ig>q%7uiX!YORoyCgxXltE5EVeqKNtO?w``QYHdi|>&}2w;b*;RNS+hP?{(wA7Vt>mM54?j>+g z?E*7jZir(!aS_lQ2)B&ExzoRG?$m?+B`8r7q5rmOKDLal)-Y#bsJv@Hs()=?#B1?`w(6)O~~&m{a#E%3 zxb22=Xvw1uk9Wjg(0A}3YWZIu_00R-bzFQUXZ!26=mn<&4y;gmO@OJ4fmU@d%$WS6 zglCO`kH7Z03EOtd-GdBgLq&023fsmZJV$Y2se#U#U7XTC0!MOXRD#Z00ZS9CF%pn6 z`%eka@fpbQVIGKyn2Ker)opDU+dX$$sYSzVF;@&+TP0v(bXnCGENvv4I5oP#&5|ic zIX2*4!WU|pW>vR<3R#qx!sI#)>#ctQ)Asar&z2sXT?z&5M>QTfVgkWXA!E+@vFfd? z3#1kSV@S{(`{~gi+&O@v_RPAsy#s^d5}~pQNYqZ`l(j2h_6MNs63#MzW^FQ3K!mz} zMX}i)U7|D9s9Fz$r7mkmBoJiIg9Gh5k|$)3Av>7H4?~2KOqrCO4QQ<+yrRclP(U9G z`-Cu^=g-@3;n&QbE&Cln+f?SSe)UqNc(^PJRpFh<6>0P##R-*$ zU-efup@SDBJrUADGj~+(b0G`bp0+4zWr}_?+C{6{Nau)Pga(=@yooqFChlRM&_@OV zqJaMS-i8ZQ@kV!n+<~O=qD3cAwCFMPxV>H&LHV?x<737_iYp|e=>zd%Mx4vHFpWPk z3Tw$7z%{%p2|YW_DXHFI^(mN^pIP7z{hSa7L46@D!$#DS3(xK6l2PquxikKShU=JYXh#`c~%1sYA$RNtd8+Y^i1^k=nL~Od+Ci_F8_P5GO z;Gh1rV(2eP&;PA1;cuR=Nr@ZM8y`M8o*_$gNuO#qC$ul zZL!_*Lq}t=NyEb}MTj#dxzB-}2qsXKhQx|nQXXlVF(eEres4K?ojKujq# zIvo#w=tSyptnvTDt*8yE-KbWb=OcAraGz zlYl}D<`g;PTsNS-xk237BG{-E1KPY0Yv6<~fJN^-Gmphe_0@nZXLmX-nNDmzr@0~B zt&%Mmuo9%biwguu#G2TX?q3WSl8#?vUWS=TnD~W>p6VH+Ll4c;MUC;wPo!5rN!4X1kD^Y@jpjI2HSY{kwXug5Rpu3*5f|lYnvzK=gN`qdr?ESoZDtfjpV?SXtfpS_ zb8~8~Jx~P_*^%O;&jQ4zmRwJ&kDVF0bHD>41G1U69M=y5WFxh(+>~Slny;?bTz==Q zWD@qJ;j+T57+9T&*4Trt=tLY#Lm?0)PabzwhVSfEFLXT%|uZ> z(G1JR!&8qw{0j$!_=Gy{bP=T2pHGg-amaCgB|tkKw5%l%*8MXZ>icKZpJCD0jAy(! zP2BUJm1kwDe`*jqx6t3hq-e&v7_el!{vi^;=ECSSffHSV*m1;oaPC#;+IRPJ`bZUn*_@GtrJ7-boKJEcl4G(|MDnm&0>Lpw{j6<}gg-o5Y4QxvBn=3;t~dHR(iX!fhxgc!k{W}VW{aK~lY z{Zsy-Y}@Yy$1fY7VZl@0zYt`;>Cq6vlWQs^mW0Dxp)ATCcTBnWHkHltB5hD!*0l|F zO+nr^A~AFSz5pa%y+?>2NcH^j`TM!`uM5EW-!8yEr)LQH%^a=tY$c4`{y4FcVrIlY zPORY`D=P#2ilv0?dtA0K57|!F`CMFeax(WE;sDFFi(o^flM1(+&z_`q4t3a&d%drE zM;J#eIXc%kpQvr&b&+*xdIfRQH;TufwarjjGwrKQ$D{4-6Ib&IUAhaCfurY#S(R=o z%9r@>qUe_66qXmikjP{So73CGdxO#&jTBc@gMd<<4(o)z$8u{_)hFoyrcG$f?9p^} zcETmK)siOK$s{z`*0jg-36d~eWo(itN<9yfc%Lh3^L1@4MXt^B(|Lh zR&Qm!Yd*aCpZ&6*xY^GQCPuJ90WX}7Z@oX62?PVRw!>$sE_5+NwtowB8g7`OUmvsh zTO)?Q&-1_D5B?uh&kTRea+dtWhYTaL3(+!{Rz0lood zKWFx%<{@A|yIoevMys=*lO&>ztpfoD{-$m7M4?Su5eS7Gn|dnyaxq~V>kUT48+Jbz zujKm%9vIP~uG$t^&tyjssaqs{F5IfYC&dOZ=^_;F=p#)guc59$Hl5b5Mhp7FMl2qP z`@Z{vK-!V8_IbB46e5|gFQTWebm5(YO^r*g>-mxC#V6H!-xE^aGmj9=+HBVSFV4O( zx)N<$vtrw}Z6_7mwr$(Vj_sskv!aS^+p5@3Dy$@(bMATF_uhVe`gV`8f9*Z?uQk_P z6CaKnobj>g-uCtgNpUoS2#I+Rzw-z4R@e%Q>Gs|xstiPa!_p@#idVabRVxMlQU1051u%kAfWQ(H zGKS%IlQcqH`mn5`lZHh}1Enb`eETP|6d+#`X#IJd%b)q{e;w(+<7hbkAFs|o!D&*G z|70Bwf2^nSJ5uN61waC?Q5>(L7nX!4kdtQ?M38m-Y|1(_@>c)uEh3N{(bYSEF|_PQ zxo7j8eFZ{l-NlZF<1TA8WA*LrXjuLW7;h{IAPk9g7m~1CR4S?w9gEJ5cqN7qCvX&z z>)xb+UI%>dhb>I=!hUw_F=NPMG2J4NFk=R{A!N$8HiH($)FzL!9~FIkhl}Kv=wos* z9P%wRzdmx9i?9E|IN}<4kt3H|cgac@4^K_C51mCL ze+&B5Kn~WX(B|H1tpPG`Uh02tfS!*=GuJFnx8-}9ZVxM%T*mu`r-!@ zW|xm3QPI}9rbviPBPdr&)u?7Hz34nx@8Xx&W}Pj&5v}2SAQ6~3`VaZ$BN4v*ucpII zn8@ldcSG`*eCkTxe4R#4B-F*i1X1!Tzk|z(ioxA!b_*%aGYM5Xc0KH5I}*JJmxg}v zRKCIK^t%EU{TH#Bh{5f45(3foVK;=gdcdK<+3SYmv%E$y55XUYu5GL)+&<1HD8i1M zIJh>y(#F=8PL(hmJYl_LQ;bYW>@o2bV2hnp%;Yk@l|kg8Y;_7_`UYm)yVu$`LK?&t zb@2q4hQtr@R>S^;glUnS#&oqvpk*ce2_iDzjmRl}ZJmpBd8*FvBwiP?e%~?wLz8?8 zy7LjmQw|%CrGzWPIRsqrOm`;HegWiUQMYRL6*Fe+1#@8{4QOErbOHP_PB0XrK}zPU zty1l5*$5%EGZl5fMa>&XMe!vThN)Xq zBW^)BWkFdPAz>*5zN)qbN**w^lh>|qZW-n05{D@0XI93hO`okl)??Sl zqrle3+t1sl@y9I$gN$@sArgLuEQXQ89#VD)Q|Hq2Ewnx-TqOt2kUXDENN zIIx?RpzooK2>NNj-AH{LH`S6Fq4r_dpk0OA?L@Q#kNeG6(%S@-Plk|eoTvkF`**`m zm-0bR<>$X;dZ&dgdKmWa^}%mwz`E70alpFK(mR%z86>RL+AY_BchU_l)TD)EOMf)> zB*Rax6+T*6yOPvsLg%1DHd>#^^r>C*1V*AK&3oHyvabEWpO1w3n%CIy3>!EW)4srG z#hQ=ZISao&7qdma>nOOU2In1>IbtFBJEvi}`oN~HGuiBDw;ZqfLfeS0n#agCyZYiR zOIr(UY|83lt*+cvx5`tzs=-wm(VuX3KhFl4&#};IfKEA1d_F^EtnvIfXUJk`31!x7 zTY#hNEl1*TeYbh)y$>B(E1HM+zVm)ax|CF1>@$ZKxaYLnGGirs*lGa}>JQ+lG5 zAoU1r(8;SHq+TskV~Fw40rDAYxBQmBdO37iiO)rnYM=503(LbZ)eEgIHBE@pP0o9$ z_E!-)%fqo{wwN_L?7UiMcAG=U7q&;PwNy#cqKt@o1I{tCMWrO{MSS390~yZw_;3*# zmYA3lZ2OaW6h~?B_e0oRY!p2qtamPX+UQWVKcUIlx+3>4oZE@GYZL zW4gB*PXdM$+^!NFV`d@~z^KP5BqjqR)(R%@MELQwOT}$^eb^|#2o1f(DM(k57RB=E zw$aRcbz!`>vNDbcN?M}(0yyOnK8(N9EBcK$7F2(*y69>nZIhkOmo;yQvz*#MVU#po ziEA=7U!|nfbL8x1aw5ly!B?PD0lZ>$szLuqKRQgp%AH|7dTNo33UDAvQtw2K_3N6w z99;XzK>Abe8N6VU%I3Xl8w*T?PJQntR;D>ip**|i0V*;C$-FITlI%`F{xa$7S%?8k zcPXoNsU=z1VJ*$Oz+8kfdg>9AOOn()r|e|I@PUXen=gXzsYv3%FHkxBpVXOp7bk|8 z3>Fp^h@8&Rx@=yCOj6;g=eF^a$g8w?sEs1fYih}PL9b38y_qQuRUV-L75?BsQ}k9v zVtqcrlFZteWYcDydKP_Qw@_mS8oy#xf>TBowK#HVmcZ6R=&H2az7}`_*gfzK%pta0 zTa>lF@SO=p`eB|vP6(0DKKQ08P5gy6`fh)hZP*JXo-_w;&&I~A^E_~o2lChE)b5L7 zAnI?j=NRgLJ0Vx`0Geh;LNomI3U=_h+khCQ@U z3|*pYAIGxsaB8VOiJjlIlxX~cSpDvUYp|>1q}~rRz+8zFMYg9hvU}JJUws$Zkmd_i zV_Mn`SFV=QuYZIW--y{F()8I4@I=caz;r`~+|XC;kdYM(bLDNf?%rD@dx7?kZ2JWM z3J$fNC6yF6IH@%63+8N>kS#9Q;!txKb~8uj{Ba!ojbj#Sqz$-XNP&C5=OR80R8$5# z>S9((N;CvC6+_huQUw-4FYsBM4iPMIFq>e|1peqgUGJ$BR1aP=hr>H`hZX%0%|$YDb%AaOUON%)YPtX}I8) zvBx7~%P);(?~mOHbP%I^8Ie`DdF`Ft}>Pw z|JLyBUF<=Vg8Pbge1Ceo9?^&=##w{8e)BXs_$|Jcf>8woSPP`57B*Bop^0%BzIDQ213abeJi-Y ztP~L5Lvd(a!O4VB#~k(~)-fu)F{Dc7gRicsxExphR@Q;vyCzI2KnU;9!isQflFC(z zSU(i_?UMeE@L(OjBO|Zkv-mi$=J4XBVtSX<9VDC#C?Y+@tI~QjhL*hK#WiO7jG_a{i$uI{XX2#C{8yf`Wu;B{5GZ2 z9|f04GF(BHx+$t4>F-};1@;WN7#k{`mcEz?C}_K5vT&aA1aay9a0TJ)BA~Fr+vmW5 zel{(;!cUIqEJJ=}l-CIX+cl!aP(OIK5{k8Jiz4X>wIeI-i+ z>Bn`G)#H8U>+w;C?0`%2{MuG(L|VG5BQHwLGOb9?tb%1O9-dV`L8o%aPF*h`A1ERB zNh80++=OXj9&U}i-q0duaLUQZHHic7lXALFyZnAJ{JUw8btj_q+3fjJe}_RAsSH}> z*?u@$v#X+Kj@umM$@i53A)H6gv%Lc!wRVg~~9o-&YmDlAmlR51nvAS@n zY3*9oEi4+@b)ka@H{MGB{EVZ=JW<*?`RKDmxAHg{^52=7 z=phYEwhS6?opNcGSM&IN349ZFrxJyIQR%JDaR6)f>_gk22Z@U(=pW`A`E7e8pn%BO zeu4Lu{vDKG)1c1YC+e!FRE$~}BN?AoD8m}hls{$~HH4N5{FWTzwxO^V*Do<9jqIa! z>IGMC*qoADK>vMq^M9Wy{QK>?n`$_!pOg-BWC@8dq5NX~CP0ww zQ~cLnwJfdBFVLarFa--0d>Od?JtpMYG8)x!d3wjD%N66|@inHxX;sB~>J0a23oyRm z0;#VPA&3&dP+Q-)RvRAuKc@JP&I8Rq{9f?_41I9>GzUO15d;N0pv)PO`YdI}a_vV} zvxsC2wcwXQ(xHe#R=?PRIadh&!n z0=JNe{zTXg{=#npSv2fqHirm%!LlKkO%%lx#bmgu8x z=AyhYQjF54w+)50$!=`9p|RgY?~f7fXRbM|6kGSrjx=;KPcEaRb`N~o46L(7MJ8j? zlsWZ6WLd1hGGW2fMJ=|WZ%6X-x+P`Gp|qV)SVcIYjo28ulgawPCZ-JhG>Yt9W=a$B z5f30@Vix-SrmS~T#bv9`l?9EaZXm6dkKytlq&z}nS`gz%8x6rkaGaTmwaSr1T$)pn zj!O8hqyNXEW)9W4AWE5Di)28GdY;Y5X<=A0{sczx;p%=lo3lmjIZYHRcAx6w{`5YnPyUWmw zg##vT#a{ETHL{`#&m=`Ew8Eu%7rQbUu@X?)gV1VN zQz;#cunD_EW!YoJp(ipM%OXRwbV)l;mviXr(f)>-3RWPNfE-5M(%K=}d8a-oq$yKT z=5r0hwPHquG(CJYa@x^MMMnhE`5)%TOU0)f^W%B1dArEKWn-h9zc#j$cC|T9BV`$@%tPcQL$q|KMC3wAG)33pj-Zj7s6?>c8SRF+rS0^&-Ccx}qcJ%QjJD zf?3MpMGw)xuz?dy1}tsC)o#gBO5?*Zb`DzR{sXE6xQ&Xfn3C~cIM`iANOrg3a1&g}SP3jssu&)gI zatp~n5YA!!0+i1S|J*IKOukSo%R0{u-~3~LR?1#`J$5Eud>wqP`|1t+z3ZJ9sU|6L z`rza%$c;}>{4JFnO)gQ1PpsnsOd8F(DXo(%aipO8TawCVlnCGXX)Pv}`1Ra}D4!b4 z>2gS$Tv;5{FR1)O>#ukl5nfPfFlBL&i}KSE#HZKr3t_4fJZ=eqJ5D{ZmuLz90jdKE z9YsGeo#)~ZmjVfHMbd1-xwK}<@9{TiI^}g`F^iF21s!D+;|l&{3qQ-sx|J0_@(SKH zg%yo?qP)<)FNLou!2MF8EAvM>{TcFtV8jn_%vAz8{gGYvedibOsi{zk++-GKC#iEi z9B;E;M^(&i@s+~ppgp~b0^@0{arjI_jG6hdel-kd1RIC{wZI<(TARtf<%3U!r(bY? zmrOF1a zdpe8vg3@Ms{M(Qm-f)&8!#FtO2W6^6Yckfs?g`Ec4H`ObBpJvmTT@vL9kxPABw!+9pD11bwR0_2wzWt8)PF;t+PjddTcQ@y)>Z`4uQAw5tB?%N z)CpQE3b}%5&X@B7aR8 zMzb>AKa>qzUxww#5$uh%VeW9qTlP$hNP-^)dkVXn7KOsaS1hsu<$)RzzT=rjBd{>% zUbyN~(Z7;S(1x-jefi+Zm=&I+FkLJU$(M2aOQ|_J9tW+w?8MYc6X4ubUXL`XO;rjFn_bCl0|6gnF@O}YsLE6>osQShRCg@BoEo}7wg z3t+336ZL^VvotFAE@Ab~(ZGz0>v=~TcW4xv#$5Y| zGh4w01kL!X&1w6Fv>obh22>`z+A)@tq$9Ce;`rjuq}81~)+&wiGFVz_!7o|(MHc-s zR0LJ9Nv)PQn3QsTWl})+6mb^O9Zol=6yX-!$f{W$ z3KI+O8U20cH>BEgkPCD-)NMqikT)CADmTKLs8UaLNJxgGM&is1&yMZdV=8GCIn?}$ z93#(4@h0&AzF`1dz3EAEgY)S4m(|=q5=D@3WCP@9tOfn89Nga~ivP2w5UH|@s}bpE zBzpX{IU7{Juvb>a^|SL{Uw6fGW`K<%W|&fJasy*e=;Rz8ia%v{$Ob_gTz_DuKl4gk zUkCEL4!)sd%FK&UL}6t*MP^k*g}?-{A|^i;*oOFk5kS7-Ds4911SDPrYyP1YcjxV$ z^YhBx&VBFd>O1i9SNd=*ST#eq2XIEz0e)V3z?+do_)Y|2&VU1(7$dbFg32CY4svB3 zVIt-dW6h2w913*f36t@f6D(LvzZbo+wi&tI!CnLqOB&NTKG?e+i#fM1^pa>Q%8D4y zXpdFMaXO zljM7k`%IHuuHuZoTN=Z}ghmre?nSgb4wiBph1dYAfp+OFAe;4Elf@QRYo4WTo>qok z8iv?yeGq--ZqNgbRkVo?q0w^A0hw#KHtx*Q_?7I%P7ZEJg{LB>1m7?Ov-&`%|dfB5Aa_$?8T*}w}}>46AMKKt{D~;HsekYSzKYT z?6iB|kWUinzS zq$NTlyXoL_bIomH>JHPkY6wMgW5A~xfwExj>evxMZDcVDNa{@MDMo`!Dl_ew$R-DL zol`66&AM^9d44ySy4_zJJ+9KS;$3l(R1ce#V(o5SZ4X2>?JfbzO(&QKSxy_7%tiNe zbLfW^#V%03c}3&n0*Q!6Y)%x0n3bWbpw_mWndWHfvL2;yB7amNK{pE zH&bAkvL48#G8&4mX8Z|?(iKbz;wl^CEjL(EQD2}bd)QG(x60>QaCzOQK5usmg!jc9 z1kIM+uKm`@JfmB-^TaH#Z|@)gZpwA$D%hYe3ylDj>5eNX*zSOE*qL zPuaQ1OTb&9IwGdiHd*W(o`2M2B8ZPgpmL9O^c5+0hTSoi>?PN9)HQ`}Bh_)k6GnI7 zL%wt?Yo^>y!6f4z4DB=+2lELJctZRd8Xl@~;Zv zCRYq=Q>}xnq`%~>jsjkxJ0iYBe}KD&k{2MmoL-5_ZCE&>^v>xH>(1NvOzlrY_O2xD z?vCyx;In&qC4=b`|8CMtqq#z+vGV0d@(DCCwL69bQrUKad#H{D&EYOhjvgV#&-f_& z(LvEMJz|VBD$fWVo#&q|9;m+b82)WKuyngYDhq@Ac*uKtleoY}OQ1x7AB06oUwV!d zxiFwsM{$6k0!!5;N7#^WNf-`uAz#dq?_hvFq&jg(Z#b+rd-Q&H1$@hA<`On_0!SEi z-#42BaareW4Vd+*4Pyj8D9Gv5fwaUq^Qjy9Q7={Q>NhfGu|E9?7M!E+yPEx!q-+1H z*8K0)Za=&FFNSs|PWF~249@=$-ez!PWw8B|6YFg1?EG0(eyZGofd2RBGWq}H?|*`4 zK8sWrCwm*4|0;b*|EpI0^ELXXg>-eQuJZg>RKQQVVoTu==%7gbvhW{-JB7pwsQF-E zk=)8*uXHhpGAQJdSS>dKT!o^oJut&CzXZ5)WQ{|#M6^p;)*IT7d>_7THb{2)32=fk z#(smvB4M%;Gi@}K5#t#WO-gh`K} zTRW0Ol3;S-fnS@mxV&$+h2IiiV|yOg#5sU}Y%Iq6-iqZXR@R zv2t)0o@{TjvnvWVpcT(%$PyL4tG8LKNSykK)>yn&W9=+eSs9y|Kg^tq<0BuE>E2pt z$}UOQcgo-P-q4rYbm(o&6KQsaNS*`UDE`xuQ*RmFRZ+0h^$jq{PIWAj7R16yQzZ@UCF+c&PC7v|LRh&C zj!sHT?Ga4@4PHA?d;hZ{j!4g213C4ifUPNL7&bMbwvTb$qzX1E1|LNDRORG``Y}YM ziov$h#Rg#5s<)G?N96jXf~V}ScQVjG|Q zjX_0Tn2qR)2v1xTqC8Do6~AH7`=Ac%GkQLBU-x}IVFN<^N-vTatHF%!BNkWVjJ$|o zbZFWKJ{y z9G0UjSClIVIWNAZ^J|&SBBB4}xM=yx0(DA)UyO;LM}qwN=RO^xT>k{?ljsilw<1D{ z|M9I<{>KgftC9SN$)}R3v8m;!(~Y{5p@V~|(|@%m)ydX>=&k^MS~j;g)(G_k1$k7@ zMb#tzE+B-mB(<~|4Cuw|=Cq+O9dT>U*xWq`?v@l*LXLR<;{U0=;wCJyj%l1Zd7i=L zdBnwHJ~i=&^aQX*zZE<>G&=r%e4i3LdE|?Fy+V^h-F0~HMtoN^JJ#Ib9DlGPTxO7A zJ-zQu{W?G5DVxCc2#YR)&gF$O*)L8AfgvMa?inGZ9n(l)lf3Ql!7p3e}R-)e!a)E$~_$f3c zsWSUe%e1VPnjOQjQnYP(l#QLoX}unS>WTBuUqK2l)qrsL;F1_xC-hV-D`V|AGj8@n zhshz>8s-j6V=!eP1hX|@yzO26hRNCo0_z!3mI~VAxg&8vKQtd2y6zg3mo)PNWh-l& z2wxcO{MIei3dd=Y!TisKse34T<)4=@4q)>$9Jx+uGJXKo6DW7U!ulB1oIb>tPE5vi z46-kq<4N+v#SIb)@*`HNW;+l{!RZY!=@VS!!Ds0ZS!=`-LP4HV*wxJAFnpN7-;!W( z@4gxDiuGmm?jn}X2_OFC^3n#k8+uu9L0NBa5nl>lR9-mTtJ)kUwcUy~mz#M+Y@Rs( zbGlr3a1N>X+2>sSi*_pEzsUrN|Nq7F=cB^J`aj>9zu;@}^7bg70L@(KkrGMh;@_pX zTt#VG;rQ`RRwTq|Xl3ALhkbHPfEN%>@bR z4uPSW;M~r4K0@=HZ_UhQ7IKTZeaCiEG<3gJR;`UvnjeOm??iz1bt^4?E^;uQ<2G?( zb0rLAYWFd%WbuOLsH|pPrc|=u!u!- zPyT%!zOV@ygIr1^^tJoQ&)rW_R7MiOwcM50N@to}N~I!4w9;5VHqbxDFR)@?jFm%) zt49Irs#+J<#x--MR@9G>@*XzWkU=%>tXyTXpx?b`d^9pGg(5<~`hl;wbMV1_4g!s1 zFfN^I3b^8+l^S640=;oZ0W{LihY!-89=JKvv@M~&#QW0`jEpVb^Ma3!qBV|=v%}JUq zJ}9{=4cldt@3a+;;KGTAp9O9WR_tn1i{P)GTODI%kqE1-vYh#yoxW9Vf=IKQiB-Z3 zHQVf1DxTjG1D!V#Z(Ue9`pF$FBCk`*?;Cw$l(WsuF-qpC9`p#vDkxy2utLlK?{Gc>!A6CLmH zGP$QhbEWO^zcT1ieRWQV3**e&M!F)}b%=SSwFrGfh<*F=?y)>iU?S(#Wh5xlle%`8 zvo)_aC9z8bF((JKz%t252Q6abaSJ_#q@rsO$7V(=TT&@mM_|mv{9#Uh>0@aoBzFy8 zG;RfcvJQl(H7_YXB*^sT$!Om8bIbQ}%J*dip4F+J&8WH7#ZyyI>q7=t=nW$~G=4<3 zrwS73FNopP($gul0pR4X3@{7QLdxc zDbt6e?^gm}@*uzCYB=VN81N!DO{8#dzbAlL!-}<2fTN&Qi)yIxMv4qI6B;pohSE4Is_wjz;>BnGEImAWoVf}2*B zHJmqbbtY{DnZ|;hrwQh;Gt8S(@`xyU;8t$nwH!bDNM9_E@46(VsiUK{cNoX2`j!;I z>Z<$7OnN6>tfXAbXIATw7!DEG9DFeduGToXrKFPM!L%o4Q$5?>hrtH=DqGFCZ8nQbo1&erTmiR%$4?o^{OYos86Q_HVV>5V0AAK_R}Q%+wkqO$ z$5yy-Olqzxc2NfR#YmbQ`slsNic9jaM;iPJ;zY8$d=C0LQto5WMU64|SCo&a!w-lq zYL9t(R&Ve@pk47Vn6QGkSMwd|hwiwQHgwBzYpQ51sc z>ED$7*~LBm)I{a&qn*xI-@Gq3STe>11pI+kdMe_OWW3XVDfWE}14EF8UBoL^eF@Cp z@bc|bI7wGvjs}++53c%|@}S{DG8PS1LQ#NXm=XmsD&ux5Ag!+335jG@gudN^gk#PBm{xx^8#qW#1#^YBvLn z6p_?QJ_$^6LeX8MHWRYvZ)koUCu8RAq|Vif{=v7)v)mX+&5JM&tIeVFD5bJc9H`iF zeVu6d(S3ShXi7Qui#01($2HhaJG36aRe{jUNvcf^r_=$+}z7>+XSP%pLX;4WywlXIwM2Cc(mp zRsay^$UC0l%R3C3FP%P7S$duR8+L~#z4Vf8Y%<<{4hvn^=TGA(xTN2V1D{0%%im7N zmHxkj=zou&KZM%Kngi&G`wyDs$uf1N@_2b{`6kxsp!UCD%YbM>aCNKUopp(@ye! zZEtUJU%0PTzbKOa4ky$E13U6fPi8y_#{No%j7)#cIT?p4Fb8BYqsdINLmUSHO%j(D zN*%_6O7rNT-GPpim+(j&E+yri++#t`Ik>3^Ir8w)>x1F#qTC_F*H68c`eJ@<6_8$Y zGrgx(swoz(T;rjKfc#F=#NcxvLad~QBtG$X6Sd)2_NG59eB8w9K8jAgebepo@7c!Ac z$yU%BJXRx_quTe!nWo274chFMTq~uPk+VsOvTF)GJ!4A!)wjmDK8T{E#6U{rz%nPg_caV z28O^KEl%pX&vA{1#GK2m!14r3hy%^kONAl}D;r+HRgb+|Z?lCIhm>GM6DMykp(tOc zz+uMGsX-XPTzIOfbek3FD%3QB0bDR{Vk$?D;rxo50w`S6DM$?9R-R4d(+rX)kaB4B z^$0_DyonCDL6$NO*AWnu6v{B7lEbHOQkr<|9Z0P9y6lrfgmI$+kJhMG@dRdiOFKvHeC@KfIkARWt zgD%$!S8n1%9q{(ZB_II3A*y-3RzyVD-XnYnt|?If$`&miKINlrZVlI|k<&Pb^eSJ8 z3RfI!kRgaYvOlQ+Nj)>as&Zc6wc1_;(sLz9wGP36@Qea~EYRiZ;GJl*8x#F})N^Ym z071z*`n1e_#Fx5Gs>9>CxAp6$($)!s{2->5%J`Ma`Ls7&H4scwKr4w9O^q#U!u&o& z+cjHfz_FWj&Mpv#lh4=10m2{clwgf%%et*zELfooBTc|DWQiOHDjI3helzex^|y(| zMzZKNeJIYvk89$-37Mj2~uAi&h^ylQX)vMcYcL?A|2@Gw-Hyc%t$H zrg)&>gzg2Xr9OU@CEVDG+q>Rx0o=TXjw{m+`B=dVnh8a;yF!n^eLZWFa@ekcw{nTR z`~!c!(p(m{x^h{b_u2LMtqZG_3*X|Mu5?Iw(Jtb?f#+y?fceD8-n>K-C~*0~ba|bS z|EA+WYKf@0LgaM~Uicyqged7)+9?TU`y0phg(7I{r{cvM2v3LqB#2630{tX}ZKoMT zag-mw$1eZ5brD#b9A4&`iAoVuA1hsTgGr1hIJ$>bc*d0ej$49}?D}q&L zGZJ~$1PWQXR@m_P`b0Z%(ttT-GFGF-L{eHq1!By$js-6-6|3Y`dWgw*eW=~#ad@QcUbZBWXnx}9_>MFrUi z($5hmXcygRJrZyC!AZ&}4^uWc%goo36{*0IER%A!5m8o~i#1p@cR?Ai>f_AIYw)t6#0(N6?|6mNs3kYtdA#$mnr z*4?)Z7H7YY=XaPMk}6Y!z1SEfaHfsPo<6?$>NU#svXwF>jVz^6gD4`snnq0I_BI+! zdiG-E?||T@>#f@+=~N$O_m=hD9M+EnCL~;`Tp-xhPmAMq*VZeTdK=c(Q!gzyJbw?D zqRyVrQ68*_x>MMaZ+Xfcz#DG|TTZ&YKhUBKq3ynQD*ntP2*T*+d~gCFUlaeXk-&3_ z=58<#lBpaM-HZ@RNy=yAf%iQlU(ZfuYZ{MaXPhCKXvu&wB#&RfZIWxcQB->b_n3(8LfZLNy1~TS zjN?AwL1lQcOQkc7m~&y1c5Z}`H-o0pu`5>;NWFf|M<)J*6=xl}icHjPYnGFfe$%pyx!ZW zkOErUq`4qMAtXnjgomu%;&jfstk0rDNsL#}bYqmG}ibVoctd2e3c z5P&rT)!!hu#RT|+r(bG8bN8M)(l^e-aP$%NyC_TaZ}Z{w(F?zaA66DTXAd5gu|oOFyMFy9$M-iUgYazG3daZWeh zh|`h@pB5h&dKGnE2s8HRiG#S&W%3Q*GmO1*HzL-~{;=^C(Z;8t`jiqJ4a@bR`BM{REXh@5IsgyY;9q(#k|oFpO`TM?-#;Rk|hn|)1s{!226+wT4dwT z$EX2JfxPu8>D7ZT3cANEMwN=DCFV|2Ux2{fy?LvcCe9X&wcNS6%gA0Ad&9|57MXerB3g%k4O586iOVlBW+ zxaE(lL>fpF`;{|iYs83ytt`^_6v6Gyh8!#n)Tm9rkb@BAK-(2NibzXAZ^hFUxY{9) z$a%{e04jWTF{M83qgRW`i!e;TDK`p?-C!aS9W;w95ZzYr%n+4%KBOxz37Qoz=7e)o zll~eu6;Y@yjxH(@!=iRp^ZsG6k%wuSGh_mCBf(wqi*%2~EB!J`MRcvuhSWTih*KC5 zoS@DU2J0m}e7?snP^(JIxhacvQ90wF;47amrTi>ieN~&M$X5MV11nt9br)l;6&28(9hl+`Ygl|a;#F?4Qp>uVf!kLDnjZVWaU*EpXiF&4DjLi0dVPuOf9O91N zhESLqRpsD;4m;k7xmp6S)!UYAG3I z;n9S2p|bPEoSN_KzoXAlno$x*6$DG(b)8FCTh=QSqtRLl$AR+vN`~59f{VEX$lIO9 z@4+?Peuw+Y?{?z4>n0yrcqO?Q9<_eaI#;B8X(CLzk8H{hJ)ODX!=E{_e~%aIe0Dg} zlmfae+xsmsTzgbmVA~@|MPf##fkHQSo!>N8;|&~CdJ(DeNbXdQ6fN{r!ZV@S|B zC^!$>pquJo-RMb%bv%JbXgc8s&`KUTmn$Z$jburuWsp#jpCrm&7*t+pxm_o)?m@q? zLT6}HFa~J&ZWP}6r_Lbj8;Do|>L(O0&QG?PSN`c^N0}6o^*Iz!n+VP*`iT{M>`EIm8rJfZ5LxIF^dSJKZg` z2EzWC^zSBo+<{p6K7?`Bi_H+dWT@;3Z`Mpbo z&vWz-0NcG4KXZZ+B&q@c5~oascd%|}<~9>2nq ze+{BBaFu9eErY3TL&qM!c8?Igb?hd+LaB(dUjgQ}=jgx=zU6_)ue8h{f+~sR2P8^d z`Q)pKt-3z5xDqm{RA^<>t8MY9hMfziP9Z)_MHIY;9BYf4?J!I6GJ8qyqRqN?971@8 z!ip}JXQITTe9zh8Lo7{`OScwwah#xaK?zyPxf6@D0Rpz|Mc2ZAukDaU%PER|!YDl0fR!c zsH@+S5k=|Vw4`EeE9=#F*=ndy#Xf+00W zDxEV_IURGsjwo*HVT2nPgU|tCj8B{Ji#g-m=XD5Iz45LdEA=j_asdQl2cQ+-ZhVnb zeh<*q`$M{Us&|`NV~y| z(+mp;%^HHNhT6a=dxUJOs=Q&U`t*--i!uJxc0l?zIn#L$Ic3;_bu?pu)Gu77duFG# z%^y7|eocG=@+yaJKW-3mkc!h9bbYBwJSaQ=80cgl%d zQph^;Om}ip{&r&;M?1P6&9Gv>7-W-=vm>FEwu1v}uNOZMG*)Y1Yd#7x z_kwW=ykc5>G%}B|*WBr9XtuNNaJz2Md(T`kt|!H>6)pSEE_j=HP>df7YB~ zB!t05-`Grk75ZM}+cL_1ZZwqy(;(MYl|=6&)s#ELoIw#K*`8IKd^v}Fx~$OCsMtMw zQMi0Vt|R*Mto*~T4rBNlSr2gaXLAr0*Zm#l6AUne`FG8M>VMK4{P!@OfBW{2?ZQ7- zW13JNDvN0E_P68=8J-ceM2PXowiTM-05UB$TEG`(CPV2j`9ChkCrEhHV=_2|g;Ls3 z*9)q3YgH_&-H@yV>qH^vf~u>_HY=Of)Yhdcb*NH*yNI$ARBN^nRZg&CseC!-wyK6~^ZQDemFC5JL(6yus9U zYPf}aG^y@!r@Hkm-f=EQ{F-gcCz~Vg_7JDzxdg}6BlkM@we ziBDQS^#*>Jk`#bz#xIDm1*>{<&z&?*j` z4RFW(E4+yo>vD0I&&pn6uR;XG$|44P`FSNXIXcEG$T0B>&fF$JZ0MTN%ef|OqyX~l z?gbH>;6TwW7d3l`>8YB2c;Ig$2$@1GE0~vHHO(j3G}HrJte@r%zeG5!LF?RH`1BbJ zLO;-~Q$$&jIRRsK!f-a1O2$U*B6)9LS9bI^2tLb0$(fw!2y0)jK0@`%d<6!mktZTy zPp<(7S>d|&)FDh}lFVzmVskCx2|9!oT3ZtGeAz7vBNi1NCM8q~lGY_=TI^QejZ{fN zKEb5G7^926B0~|9C}mU}*rYH_rM9L;_aE$pTaD~BrFnA`q9`y`M8+?yg%mYn$T}R- z5h2l~m_vuMEH3P<=+^T1*a_aiODtrB31tt;Bk@8sLZ@GvvyCS5R2)`YYt2SAAfkc@ zd&7X=Eq6)I=_eI}EAp8qaN*T36ZEY6J^PlTzxn{Kp&U(>q;F}(9Egj_;rRB?ioOy8 zNpdtY3P0Jm@_ke;5v0zgplUiHBP)01NICKu zi3v*fO{g%%Q)$oy1V=&Px5iMzz+CmCs0s-d#b(=`53>{g7@uY7<1zSS&pvBZZL4n~ z_SMpebwa?BaUOr1`m<(@X0y7%x!};P>m8C-`w!qn8Mo3F~_5uq{M}Ecm#Y~ zE3?o%!75^LawcC##nWB_)Bu~5sPJg*kT~&zoRSYx`$0-mKz^xb!4N|LLm!b@zSkYwxx8S_^SG(6k&`o-aSEtmpFZxIa-*n70s1<9Jm+wYa!P zW+brT*E+`hE*dvTl_W+Y<_-=ORoGJ)Sl1TGIn%)H&gNv9m?Qy=P|^H8r=;pyn6}W1 zn~W$PBq1GHW}s-*z6(r*_<>yrCoBkwxJBz&yjn!3)FQf|p%{DnyIu5{5^z|fHTV_QCrXd<%7A>t)Pf)iC)L}E`jJdm zxf-nqy}Y{$t-QAiy}Sp&tZRCNQ*masAkQ|*(EPbe!Jf{{TeHXRng^1akT-Ap!CllJ zC@{SVhkxGau8qHam{#i-AOMm}fJJ-3_Eor2J5#;lc+u$*xRQgUdI1OuyjAGqzU6Im zx0mYk=;k)#1jUo=cEL{CuP?dZa@$QR_H}2OG8Jx{s^;oL)2LL(b2KqY_Rt>~s`HQT zlbGDDBN-lH@uA#w?Vjz6Cc7w8pi%N+V?^bM~~p)*jwBw$D-gm4R-Ork&PN z)tPpyFI}^}Pa%!C%tk8#eX%-0K8&&6Z5js<92GOFtvE%Jy@Gm=#+nR8?IMg_is-QtTLI>(Zn)L9*l zgI3FX{}fpiEfzsRt;PxRNuj3|0w)kf>ZBU}rni&ZmP@hNYm zFi&4*Vv~fDD_~Yo0Kr z#)MWdJ1uFa>$izXLmVj++PE6^L6p?CFdvi(+Pp1AZ5t2$mI4j3rF;*h{Y^n-xRi@R zf>{L0Svu^yM0Rg7?isQpnwp62<`tUiSui~jqqyKWD8fJL2WA|8VvS4 z;;uEJbhB@&>LHon?08LIXV0k6e_jHbQJ7o8@xdtb&QHE6$lNT(&^tdrummj= zHzyoPM?dXK)wC*7QvwqALhElDh*^Aak3e`+dG;DE9V{?aumE7cQ6mUC1u_|)c4 zob(?K{P9@dc?BOH+v+`~7}0KbnLif1qx76ntuAO5nA4X+PaP>fzwbQ96twryyrSpm z1!9rCbUhDG9E@DA*iw4jP$xDb9=M;kLE41;`{sQJ>xLt4n%L75`$g#jA;5LC-?Y^E zhs?8CYm+p#?TD9{!?s?2navz-7-F{LqCS~1dX#=%Rs=UTkJ&-(Nx2yp(C#8Qcd~>c zO7wT(_JATt=lGU+;Qh96v(9(VD+4bP&W)eZAftS+KKk{Yv*iQrq0Y0TCet!AY)BENTLV`+Dg74m|FEjF~ zq3{vhGQRX{1lD+~hNafXRDd3w`y(6Uy8dOtQQiKMtz_l7dA{Oqq@D+i7}JBZ;K8d# zNgOhV$GZv{;`CJruI`7Y!PhOpdwLq`OfoV=x>YGE|*ik@PtJc&)dlGh?wJSbA&U~N^6i)Ov#M8 zq-?n|Tt^>8CsxBe-H0R}+r14SX96i7zw3+2M~Gz8(s@TfGB4lX^4%xo8z2P?Mt+UO z{zE(`x2d;s$P5NWvw-Y{lWrgp-^Skn*h+?)LnVld=&))!MsqW93VZxYKB~|4h`?)d zbTJ>uYPv>@F zo6n8nH*1Y;_)Xx{LOv8Cm#$BqUiRU6vmC&6&6xMv9CdSBzd-#38mrUEIX!>y_C^0A zZ?F8Hyl4M5mi!+j>_6T%QkjpvW&<-5i4SSRhvMKL%)P4B-xAd)*`3qQXTMSnG!lJ* zoWrFGpmb!B0aK2vCtI_>Mv;pn+o;`uZ%YFU%VmiY=*Awx?&3DW>*5^Ow}1KMb1%-- zX_iK=_2ooaX$%-kzkIuLN|c9 zGK7yp81=a}qJ6n)w3+<=l-V}q)f<~Itb>Svkj6OmE3POu8MX<~p4_b_X0)gl2RzMe zIi;FzX*VhP&{XC!Hw3FM1W8j@dayy+fC;~gA5%`7evg$n$gdv>=8LhSX1Y&5WLdZY zWA`XSelkm^Y={9-x4Nb*-SZ;?aL4RAfW4}~+x9`#sl;kE(Os6&7*?Axt|Z;nWakGp zRW||9)^5Ol$jsyjjt|B*RaCciAbV0P>4H@HqP2AlNzSS4Y*~!!V6jwX?b`5^!qDo+ z$~F_I4QMmK9FRNf9%Yl7Z&{_%!qI7Q&FaBzqz-h8+Oc$AThxTI=16KhFTF_59A*hb zaZR~7lEY2Ptf)YD5#JS!kI}Jc>!09tgA?TFiIK?2VG!o`5bY9SA3^T}x%T01St{(= zJ_*iZIftZk*MR`+3t0CeKMiG;r>d60_?~8wb2Y)zs9g4uGIgHX!QzYPx9r7OG9QrTY_5 z2_3^4c#L`Slw;}~9e&2{QraxDy92Fs3&)bgt}TQ=Jq_0+EM0C-QM6TgtSYItlOra6 z)v{WwK7^0$hK<6&rJbfRp~XRk$|h0T94x2o74}Tc-*-q&u+1-g|DIup6Z~D3?&^iT zL!K&+fpY?uA#r%{@p?rAxOcCIgUZo(FwJf2DEbihru-2W>YRSczcy;aDOquffgfYe z`g#`Ac_ab9wzwFY-={ls+~;^AkUwvbqJ-{kgm$fURQ@fqGWD zob9SpJ)f!&J98xo|0~8fcQ~(%4^@%Q)Q&B{$EpaNjQfvcMS<(8YP%}CwF9iCEq%vb zF$7{F;c}(wR(va<_95`KvRMDTKAeD~d=bgTYfRSJN1?3JHjzzh7eR&qVLH($uyfEL zV)h*i>pqMJ{2uwYrQfF9o&Tp-oEd2FyKlKe;CBYO(GW*Vp;1srFu4@qck|tT?sVY* z7=xiJD86V^msodD<1`P~Z<^)3J0l51?;zB>GgR6VXr6pVG|8T{KzP*Xeg_mg@V6=@ z_h3fg9A}+Df{BEj1Yd?1#650nr})v%JV~Gr`5C4|5y}#(CQJQ+`M$Zgc$svW*r}DK z0E~{}>NRw05l#&5QAyq^R3AL03)<>;J8(<<753^n|4#17M*lY`sFPo|;6LHdN{!0l zMR2f6g^|C5w-G)qpacyQ3k4nJ5#Qyh;q+ru1(dS}l38FuS|Enaekq-$)V5&gOt{~n zu@LBtMcCFlCi00v*bzTwB#;!pQV#=#vZ7P&&8dFN0?|$?SWM2@p-Ww!P5Zqs$t<^p za6Bg#g$UKt#2d}Q!*Ns>ZP1IVCqxm`4tOEPdl86`hzpAnMqgOuM2Ypxa;qLPPuke!pe^8D8(i{K1 zLjR)@Cj*>tMUjTyNyaoaVoe4R$PtOYab~N3i`#9tra%YcX@G0|jEFbaln!?xnS;sL1VZ zM32x5LLbix=5E)L5ZwtTpE2t@&Js$ozF?0bp>99C#(Kg4pw?Xjqly%%uMAdK=?Y4C zTvwqYwmpCh=DvE?umT@qGQ{T3cscIWx}z zz;>st(FhB)O#>FrDCcc%-w%U>&@8y~PD=SE?3w1+&aa4t>-Fa$`o2pp43sPBp&Wqe z%@&(g8!NXo4$G)CzD^cvQwZl8@&E`TbLK1XNzzy~vki|}%7iHF$(33s)I4N&pByU< z(@Hye(T|wR*CEBLEP8cBtF8*+-khLXq{~;xDe8hX#|sC>%T+}C$a&}>RSdCy4Aed6 zRu6+*6pW5WB-r|Z{6*I;7S00)jg;jv#9X}BNNF`Lg-zN^t^ilY^fS1g>bdE$-UBw< z+wSZdU#8)WNd3XWZ`Z9`L-u#?6Q&Z_Pwgb>GSP5<(hiqPlW0nkx)$3ML%wbBN_1}E z*qy>N9H7OxXN}RX=1wwhvHl(x24-~?`J6#^msrehs3|17*z%AcYnrpSdqO(y3wQp+ zP}W+zo9(m@QL55F-uu>ZBHln3gzegdn(G888i>63#FcL0BsLr%D(rNUTfD^#c0Cdt zs%@(pMDAvUx=n_dXbD%uEy5^*Lv1nwZJ^_9!IE(h&j?(8b(Si18*Sein#m2&g41^| zdmdk*(jRxxGNxk)XS(q@BuWW_4{rYj|@DE9YdhVjOVcw$Q;W1M=h@tBX8w7B*HfPP{&gAiZYRD`0RzsRf&)4l+_LKUJ{3(Zc(Y{2Go(G*oYixW@6J{+pTBx)dWzpo5}MZ{i_}U^zY8EYvm8(A9dn{^;t`gK zjCb=p-R0Tuvz{FHr21D;J)(h5xD?)P8d%}1K^Fcyl;5I4gAb-!OkKpgU9Ks8na;zH za0sYO(uAUo@O+DLZ}2l+Ho^h{W@$&_u_Vw^Pm$z5c(We@kG7CspV{wt2SeOxuM*F= zYDBjrmlluKh-orzQiw6Hdo9M zji4fj$)PUz0r+lS8Z&{xH$>#Nln&^iOin)UJJO?-8h_&zj_+Kx3srqbWUpOBy*{E5 zufU&YZhOmwIop%ajeFO4lksm~&etHd^B>@T5B9wE3kHEms+r)q6GY$TrMN~yBTYHF zH9vxgm1w8Y`p~&I$16Jg;yla8F2*(BW|yrqWsVb0=mDWM5$ZQVMm6*U93+6|L?H)WadDdT#*kYD6>*C{b1APo6|8@QSyY!6zKfeC{ zWrO8!(zAa&S#@78Efw_l&U_o)+4_lAS63~npA)eSMnO#E%!5e<$4Qlc1mha5VfWcQ zlD?A8v*APA0mDK1Efn^_65>BV*gSG*yer@ ze6!X7AHm1&iFWhWPxkTfD(F-LA3T%X66s=-UN!Q?#Lx|l9ltPWzQ=C_D0)LW?&_RR zv0;Q|?jqF~5I)KSFzC@G?%D&W)IPZ&Npv}wYq_Au{IDVw-aL>QwNE8T12fZU#{<(R z=R3S*%X&gmr>Z|k`qb%wzAR1RU0lGV2qPypAv~T$Ay~<@F)IcO7PLocRYr_RU;q_BMWuQ$ z%)^(HfWnO#JuQMlXm@8>UD3Q5yt8D1w7MKL;HvtV{?P{=4}#GV=rnY#jx;(K&W zu{4|$mm+=Ra1>eGafxNvIHL>(vsuNqjtP&mDWY=EC{E~?>d}TGpC61CXmx*%@y7=YJ7)NdkO7{tMCh`SvnQjPWjmxQ zZI}+hgD9VoWh-DTJVQfk<~!AMlXznFD^VMOKWij-lh9r=$zHCC_nihn>gpq_ocF+7 z7-ltwOg&1Kew;PGm3C?O@fPcchnM>B(b>_AwQls} zg!J)10(;_|=r>pkI*v;8Ixwwq^4$|!%+rB9O@1X>W0s! z2a1g`gb`m7SOu#YS<0~eSI+*dsgExl=T>6>5Xz#$;>K)Jpxp~-DbM6UgL|S$YFJt6 zY0jLg2JiLwIg6iWU4fj|Dkg_pUpOh9VhCxKj13rwvn7S+Hs$$~tO*-#T#q(q0UFRz zcUaJ74t|(cEG^y#7#=J_0G(EyOFH+F4OR*Y;7tRlEAa4V;OX+PQ^9;QJ||kBN&WOZ zxJgOx6#gY|MxCd+s9-J(F*dKD0GUmG5?N42bpZMaw>`@}&@ARKNL{^Z+DbIXOUZiIm);vEIYOE*!{nL0BLRtE1ANw!Y4&fCZbX{7S*@oB<1wP|vNqS5 zYmJpCGU*5o55g|Hl6ku#cgRO7tcoHmsD@S!hn+u&kaTI8b98gjslV(vUB#=|kEg7hD@+ z5Gva*Qh_6fG5okj_gV{S1B(vN;J^z6KwUKj|OddUQ_Gdf)F1`qH~~7A3!cIl0B_rz|tboOGj$m z7i>HCYx1{T{nrxfk&L^D!5jvLrl|Nj++j?7bTj%q<4hJST=QQ;QX~|Ox4q$AAUoX` z{CD%S${)JyQn@aMY$#f0PI=?>{Hr)7m0o+g&aFd;OXla3`9$`ui|ooGToXvHI9_8uh1MBllPm_T`eSyi7Iv2ED#qFBP8plW^q5R z<=N@j0q?UM^{o`QV(%qJaUZE9#=(13R6;Yge`b9$KD#d6dc@#z^@Url-#8wK@ym0t zr~N5q26vvC#6G~tB|1UmSXY;$X|j#w!tN^3>*F&Nta&so`w?hI;J4@M5Ld+zB0)f#M+#Ygd#G{lL6_Cfq1gJ<~oIP(FN7HIxxn)iw+Woc)Z1-@GrQ|FUj} z9`x~3Y7mWebMT`Su5O=iJo`Gp3%wrpf+Vwc=Xbva?xs|Fje$UoZQmiXZ#R$wNp9_m z98_lGj_a@pgbt~y+3^8c*|@VfOaiAUGHZ6ehTO7y(L3}2r~HGvytuvh!ymr8kt;Y64Yxy=cS#h}8f!M5N1 z!cXff5D={i1uUjZ_js1;t+|It#hBK{l|ZXFqc$*0ED4X^*}bVeA8@HnTlX?+?KGT$ zFlLHdLF1Cg$9az|&rP<=bh}Ku6bk!^XU&7O z1N_?rZj*W~4Q_jf^Me2wM+LaL>xY^daY}rXL$Q?x2X_6q3XaKN3}$1>TDRHOq}v$$ z_~x%1t~_{Qk5|D;AgdNGvVjria5OyEi?dtp!_IxIdEKqnJf7#)Z5rXMzzmeuA37*5 z8pRs9Dj1e=#p1+nm#}z=?lLRWwlJP!@_emzP24-k7?9TF&})+QiqN+Gmh8%eWoKso z>~%zI8gbzoG2fDm3C&`+dFc-;3}J_w8NAbuTM_|J>}yh-w9k6=-QT=^QaKDK)C;~M zawpt3Ha14xyOIZDqOyF8(lHfE2z@)8ac=Lbv-@mDARJA)n9;8h`&kc2vws%aHnX(V zqAS%#RwJ>x)gl zd`T;*1rvvsv`QSt?fT85tE8PqH&M%BVvDV$*81((I)%iox8P*-#HDfD_R_l@ zHj__PG;8kg>yaFZj8*o#?UNyy$7Za2*1>i)$#@aj(lz*d?9h^-HnOqa^Duh1*jBBr zZF{~xt*s^AWoJ#7+Z~F1{ts6+hq)N&95J29qwjz7ee+s^3;l+xWUZ383PAQO<=D-p)YrZEIct#UGq@No3zIoik zbhC5IJgQr6Vx`eLd%N&5v_U&S`U10pYCr#_;hFP1wf5 z0#`DXK{hFfL2uo`DfXC@D4F>7bQ>>*Gj)UoFx8{gS7P~bh=EMC^3Q)L*LHyjfzMJf z8xze;0TJksYvA=YU)2i$Lc&uO;71{ar3?YIP?{ZQ_sS5Jk3SSMB&1C8%Lk*1E5 zpYD85f4RvbrMj6ar@Um3n@bx3L9`Rh^VLzj*E(_uhI?NPG!UsiEGt zD;eENklJ^dI%}Q0uf)m@TVk2JeBPXSefs_OdP(RDwj8QQqK+soEGx_(fWw<_z#f2f zz{*RzNr((m_(p&Va`={s1d@c86P*q$8W>{{;-%?#65?g(|0>i@*$)tEr|qW^YNzhE z!qHv&0OO1pxdFdvsZo1K_7E%SoQZC3V@Mv?hR~$=v_T1~&*iny1aHi25Z){>y6AXp)Q4we zE^nP_pzXb8GJ`qP$WGwHOwOjzu*FMtddSo^+$17l#Ar`*vc6*3&;7QdaKwrye&5z@ zalM9b5-HREY&^t!u^Q`MJlt4Pk%N|lTz{|}_cH5%g*WM7(fI7~u|C#$_k2GKt3JPI zYFaZktajJ)AWf&l&{B#U$}Lhz6ZfC}XFpKqMTrt6a>`eZ7%Tx65SJ9w6Av zC6X_6=i2$I!gMw}tN7{8qTAjhtSx=fZ&P+Jl2@i)g?ysTlzUN50mA?k zrk$v5X=wm!_rpD_!|=*YRDYFE*Bu^z+#PN-Nu zGOPEs!OcJ>v~AT2Iiito8cEQK_Qha+6@29HTZH_h9eA=Fgy?+M6U=?TV}uWV6&hvh zRhkE#H6x|N&((?_JQcbttp21uMASLW6v*Hbu}y=Y_ozA4@u)h4)j8*Yvvtb(lh8Ro z@K<*jvw>2{IoCChL4X`blI0!BnQ`l+0hNT*dS~TmdHAz=U)N$Wps`~iEy|qob zrJK&#X-t@?Mmd=d#En*As#TLkqwD9Y%cAsL49ptnDD(Cou1yRN7gLAv9`FXTawJ$t zz4hXYYxm}cc}iQ=?`c)pi)21BA2iHRpZ`!%-iSGV5D^+B!SOLzZrHv8SoyizhN#+= zTIDS~8PA_OcFYu*111zq0L{C;^fY}@R#RWt4e?)*(0wQFcyI z@GW^R6M6ht%c{i74PdaS>;K>Rrg#FarAsB=U(y+0ucjg1&}McqF)s zOX|*gnA*dDsIu3q&;gTq%pKsKE zZ_55Jh^>EHKKL)kl?oNDzq||IF#ORdo4{ZxbrrN2ARv+Hwk0580*KEUqwD~6N&2lN zBZaG72R}c6)P46_nHsb~16YsYC8zuJOKpyi7`+d7DJOL%Mmv3fgJDcE3i;kChoz0f zfhwp>7E&A(;n}!2SselhV*SU2P0;K;-w^xHYQ<|W6V=0s+G>2;IKgfA+4ZRWbc)2w z7WzLw_F>iL;78Ap{V{*x-la*`rtkrkDYfDa+@0Rsksq4RA@XSn%-0s=spKkEf|TLn z--(s+uQ$9XET2fz{){tfqLgksVT;7>BKiA^0(Vd?ffde$8`g5wCKl{yUPJp0#bNCr zDMs2%vRjz;h<8RRtMa$KE#1cq7L-K(MVqxuw9*Jo=j@nM)recSD z9z~=ru-*pSWTC5zin-%40tQ{qgJS!qLhA)2qi3*?XLh8@_6an(l7kA`^Z?Tfzh{qY zI<#8K+_Pc#^WYn<35)U)cg@}fM$O(|_Q^EjNw5vD$huNy1x25-^Waxug@~}@3C|oow9_bpn-ZC{&~-RkChNwP-xw7tmCYZn zNS48xPR8yolhJ5>gQDJ?aI`G6S*NZu%-Y=-%(V4Gy^Kp@PaB_vp>rt~B-PNNzW@3j zJ*azUA#EtXiv(mVWXyFyGurb_Y3E@SydkZ$d}WiiXph3hu>&Oyt~Hlk6I@tHljL0s zMj&2G>>7=mvoe*nWF0*y$+sG>1${ta7bj)$A_Csr}t7LG$3o26&UGufe~pR%BDDvi$pqsDR^63hlkLz zWT|x%c}$zMHVwc7?*)@zPJugbLJmjK8srkw*VJ8$A&yX5v)hM@O4@xB z?U{V>Rx5jeUY$ENTy}qdZHw)x&&ocW>iN-lPoo-rBHq$cqiH=c!>?AcTE4lO257@Z z?G)n-L&*mv6}qVjrDI@(McNy0-}hEv(~Jtxe32@qGb!ETHh3R|#qe@t1r=Nrc16 zOzF%W(#Vp<<&@!gF>%5QJ;K$PC3VUkN5r9TFb)e_x;n-gkm!i7<*{9A??Envo59go zlW2VNAFWj)Z~0niF1mEAh?@44RGEuzrtEAaB#IkHZR`Ju@4dVb1V*n2I5nkXBim)~ zGu-f-*EW!@bN1BH(p=kva-q`r{m?(Hck3obDID<_aEkU|*DtYfn#7|Kzsmedn8^rp zoiGCk{Ni2AbvOJwWN})PB9i1t2t2aQB5{Ydf)*mykGU~;c==JhI)kV(xijtC=UEz& zf+YzFyJ>N&j70N0qfcMNekunM@E9TljSnSIrz<;%aG3K6@)uc3Zy3iJ&|uz3E$ z@8Ks0!ka`*GQcW9@}>HP8bo?t7f2-`00z`tfyb6!Z((E+M=$6;gRZ{rlr!g4&I=ix zm1BOQ$%a!Qj>f`=NeEHE$qT6;WCC8tln1362DEz%Esl}Y8j|XL+HH;qW%S@=glF{$ zdT~a))**ET+Yb)Wft>+6BhA32lp)4nnh_bIhaPcwI#isQiFy3`*C_)+MnxWfoU-+Q zF+}?J%S!A&9{>J@h9dpPw|_~f?veUPs0O}&Bvdb{mSJA!L$Bm<&8K0S)DTf7>fB{s z0OR6hl4M+aJ_4%2ALT(10|BrB{v*bwZzEo}Pxmii`oN!GcE5Nc7s5H%t`){O6_EAq zWY8uK7dVZk&Z{d0od8EFs@x(+5%EmPuW#wl+o{Zg5qBQMwW4zfjzNpfyW| zq9MC>JCRJak`4BE;C;^E4eFI9JJ?aa`|ITsjL*<2z1`C!rzGk8jYk&-e&7DU?32{m zgd!WBDN>7>FZYmQcl>SNHNdm+;?u{--SIEfALYNfPX6zyKW65CP=B!#05CzU!K`a5 zr#V)ZhBKs$abfVqZ_HrGUC=0!jDeh)X2ci)azQ)?Za+iu#3rJ|>eO@-<~V&taE3Um5klKG zd9g;V3YZWV+kJBRm?e4)IiG9|_}rj0&REjln>2tgcIJka3Qn9N0sP|8STbN>eNY*k z=MneDuaIXW33FoE@uJK1rb%GdvoOjNhE^^uqLwzvm0cvN-eNC9-RwckBh-WW^=QPw z?Ku)gxRAH^Q7uX@f4h~CstWt$KmIqdk2CXMaLK=)7q0)^dHKivqxsbtPtD`)O-Hg$ zGtx$~(WHX#S~C_^Bd%dtQW~@@ORCYxu{aiI{SBHiZ$VwxOm79BiYcgZT9HyR$7U6R zQU)9%u5p?@luq=Q5RA=iq0Ou!Q3Bd(+^oFNR(?Uk;OoWsnPpZj$@5XV=jGUBZb#guo|n^RX^h8o2Liu}Y68TNUDWNT%sG%v@*6OJW(}0Vn*1--Xz<=EuYxnym3)>r@QDhYr;{K`iw^1LqhB?_UAn8F;ZliN)mr$ z78cYxvGI@*_~YyPSgDeNQ^*E!({XGT>l6nWTO{RZvP(wP)H9UFACcYL9?iKEVOd{w<8N5vkKP#=m|j*uK~?%VeFAz@0C z6)O@-Nl~UwX%wnk3I<6<$q)7*>;o3kB8uS38r0=cio@dr5@iPsO*QRz$$IHC9b#aV z3Efze77|-w#dEP~aK5^Hgfd_^3|2Jc%^U|BOypC^=dWk-jm1^IWNfrYqb(60U4Hoe z$Ukhqy>-r@f_p#rZBYD(ii(7XkD3+k)#Wb!!j5@{gL_PXhfjcm%`?Np%E`_=FHqX( z0m0^(8(Q2TH@%Rw%OVu?3x*~i&1lnRL;EAEBMPSUN4!#khl($&0m5WI#l+n&CTy04 z4GI#mvtO}MrCS%qi7wPqbeq+9Ci13qpey1p%Es}HX4rE9N>$=<%v!r8#sPVPB)0VQ za|}X#riNi=z4u~T&@L7%@evcLJN+a1MCxEkVZmY;Zj@g;oCc+{9FQO;$e^{Y{VC8f zwRI5ee?^%|r-6$F*raOx<|Qu%J@Jw_+tl|g+D}E8%&64X-yS@fawSH7X3Yqv3=$*E zlK!AMXmd!QvV@E{<41A&CyCh~w52^p@6;kR6MVWQR*2woQ`d_}WTbIZ&rEY?_Dp5& zzmO+0`qQ9TSwn}c&Xmy`X|DKD9@%PP_|y8qpM~#j-|G;hZXcQ4#Pei~2O>C(Q(D{> zXE^#WVkWNj^7c4endOU}3_&&tYtD0%G?$(eXYNaiTJZ96SDP1xW1JMcD#&TO*2$`9 zsb`e(AHOKG1{)1xll7|4vI_!RBNEx+TNh3O7LZvo>k|a&b4rXxmZjJ6WGT$@lv-GG zzEq~usUrvKQhf0aUFWRP4Ru&&_xpu=3HhqV>?vO{qv~Q5UODuV$zGnXS;q9S*4<3* zIU>p$zdyFtc+N=z050vJ)CvQ$D{Mkzq&$yO6z=uQN>`nu=BK~TK`~gkq(rio*JHD2 zOe~9dST8tFdY!?FR5#hI)g~AcstE>${Bh~M01VQoQSGgu{ETPLPowYIhmG1>QF0mV zS#IF{LV*MSD~ZWO9jHHqQof90(sWR>9ex<)*3mf^CBAAxV%Jo`iMVpJaa>MNg7vC5 z6?s6d%)=FduGH=&KX4OPE^VX$AghG`LoNpmh)zYLMs}!JcXVY_TiyE-8gutpt9PwHO2i3loy;tb_DY5%QMJ`B^mvL=1=C2u6fxt|wFCAqm0tq_ng z6WhH}`Umg4U3#RduU}GdjM(RwpwViGOHok@7)twLNJ_0Wed@+2J66_+dXLB~tZZse zzcj6w*Gka{UF$maMu1GY4d5Ok{x}<3t|Verxif(j^Fl~%KJ!RXfj{MF)R&_=Y_>rB zhsz3scPn1ZPuhHEE>Z(krPg)wV3*_M&xPj&R;-RK#{0!%*>D!jf^dzXfDfuieP-e`|0$M>j zf*d5!k^1B&V!0G~vHG8v1ZhTIwWlB!NXU;?mm5C#7P%hDHcpsAokmvdx&30iITP*8 z{#xZ^m_+%l@-Zz3O{7kg-$k$3-?8--gZ(A(5qAW8a%etp7#(ivi~&MUxIK!HrH`8t z5w8pZR>JsQQP3`4cv;iel3oE*k-a$7SR9jkYmXTC(c236U6FF9H|!toO-Ib3POTzW z0o#o$jgg;bBkd8 z_e91L6CCfAkF~mYdYY0tUM<&i%4H`mJF1?FF)rOl4;!5zRt@`8*>9DO-US><`eUL3 zbXP7)>T)v~078U-29wQC)DMTuaUcfP!2?P}MJT$|W2d-9lm@gdTpEqOX4(=?ZSB*& zPMRl{7Vm&b$93hm$=PZN5{mo9##!)v{`T@ZfrErSGO1++&B zB>*aWxb-O@ZlW3Tvgl?jE2&vFV|7d?M8DZl16vmar1njnCLJZxl}{5lQmPnw5)geiFmv?QN74J!$m>*lC0b#Ugf7*otFX~#f9rOYiiE{H7+4y(Q6Ytq-$8|gO9(EC zkX})9?8_#5t!p6sHerVDPsbV9_sO!Fz-|EM%VuFG%dJ`-wKAuz@`C?Ho!G%seTNV1 zXAuYPrgwz5sQuR{Bk-Yex8*`kC#(f|y=tp99&XWtZ_z7j7sjV%h~vG%Z7~OwN7f=x z82Zts&D8ft^tDGd{+F(Pd^*#dh}Vr%eRDnpo1q@c8Nx0@Eb0yfY^af|yk2@oUMLNO zt`skphR-Y#>EatAdHm7nZDrsK_)h9v!796Fr*2CSmS78;T&!n{V5?v_9wdl4B-tLA z)vF(XS?WgTtvV0#Rfg!CM!D1Tfd>Q>p`gN_Ez(bq&42w8>=R`%9Os-=ZSNt zW!B9dvJwi1g^SXmniik)A$##crApAi-HEUNjqYbbA0p;8~{n*ddAEaXS=mCGZWFHOmWc%oq-*If0u0F#P z&R>NKh!|OoQG?a(IYu(?5&ODW-8Uu4;N!v1@;mAzDo6z*K(9kZl(nKCt)%_XCi^fHs0+b?eF}B z+TD^%hF~q*_fY6#+K^{gdm9cU=bvjaRAvJcXCq8u_F_N6iXo0xx8;ITZP04*wFdf z*yI;qegGye!%ZeGPZN>ulZkotFm|d^IPf6);G-v6u9gpjHUpNUa`N!5kYJv7bT4#Ee2+Yy?^{MOuMWDV0$HDmADF!Gdy&SPRPX!FqN@o@ zt_?7sXHqpIY6PSRqH74vK<=o|F!w_%Te>RY9Cf~9Y$sjqw#iM|_kZ698Km0i=0N!L z$&>t_r&HX2Ll*ucuf~5~{`k9i=7Y)S{0Fe02>2_-;w^otacs8m^OFQ2OhLVc;Mr%= z?}8F!0ZNLb0gi6$s`iNuBvl*%Spx+Uct~bGXol@2nhIpFh6N2n_YYU&k4u*y&hEUT zeM2aX$<@0?n4Scd{IJDsJDtJah=^EHRrzuEY{H!m>qeCIci$Py8w*g(EY>j(NG_wz zi)I&*34b@o+IqKWRA(9YUe!)4benU1iFf8*90bOj8PGz-1&2zYl&CB_lwCN_%wGRm zo2&7fF)qesN(eV1~P1kn`Y$? z`HBs4Tk7#b5uUO=MVmafn?p33x1-Jw6jO3&O?RI2oKf^?V@sP?ngbTXP+D{$>UZcTXKaN+r@>sH?0L9i~q^}rfrLY**NJ3v~gbc$2A1~ZB zwT)0ot6ipA4zDvj2_7bweAhd{^|7tE3mwGzYNNhPQs2}ffFGiHh=x{C-=q>(ovQbE zh;B|_6#|4Y`^OVDV@*qgqyM7No1F zt=QS>M4RZ(ZH_gh5E7Z*Qx}jK>DOx2;(xm>Ww>dFokkh`;L>vCCa=I1J!a)yvNY!2 za9#WTGQPPYJ!Y-WEbKYtm?14GSw8lly+%H7(@>CQqXjUNg$vd-FqE0=sw%x-9p8~J zZKioJ9!!#DQK~#ob@4S(_-!%O&_<`UQ>+5{G7%{S9CO7@O8f0SRqEoMcy-epf*6Kn z%nxQ*%mt)QmC?9_Yz(_hsU<^7b~c<2@&+Gg>~@WDT843rD~)^6&&GG(Yt1y{e)C=^ zzeGU5Pv5r4*@5_o1+RT%?Y9chbf#SrY|I0pRw@D03q8u>0b{ z9ua$}vV!4<1i|B7;f9cqW+f$D(SmU6^#bTf(?k$(BwPvfvhZt4Fx%=Uwxyyj=%43` z%IF;podnj)5+0c?lCMxl=Tey=J6eXRwI(ctvmHv-p+2?lR2k9sBlJv_+eWN32pQ3m z>NaGl6;zPh`QbEJp@~V2UrvdvlEyZ~S{y@Dkpv2K%{FFPsOua0 zEB%xWSH!e!)0*TPi-xMMf;*m_;G0KoLb7cOM#$?L07c+l5wVQ8_A zTvrqQk&M7G*4CBAcdyWu<5FvvS;NLn&TvJIlJr8_4J-RRSSRV$)ZuOh-ds3zhCHFiDYKx~TGCt0z%mF29`7 zgb>Bz?2UDynrBm;hgQmnbiMt_rO=4z{D>h=KM*%bOnRBEIvzuoC#**&g{qcPm7?Kz z^Kz0qmZQcQiFBG;6P4}nmFo+Jy#N|8yB-(<=?oA;0BR>Qo3*U{2~PXrn_GP?sGp4| zQ^V-$kPV-~=1=>C{izav1fGE~a5m@MC(>^X+{qo{{s#91(?T;ex+R^0b1(lxP}PA% z*z4FOGswIg$Pl_0@dG+LfKNS-zhaP4rqgxv&lk|=e2`&~mdp*sw%?y=TZ^-Y;JNdtIbNv5F<^8k0Dmdyn8vVnq zg5Sx^@;eIrAEbk-n#;N%(x>67+%AP!d_(9w935QP8SiESQ$s;PK@mXv3I9Cxd00h} zInnrtJl^?R*VS7WmNOgJd{SLUZD${2#|9xNVik64eIkH)L*S)G_G z=>}KAkJkEE#*fx&K^k_L9?f?bFy6K%Xf8XKbZ$?gEvymR8^e)r#9T8WVErMx_*oA% z0V1wb`3N}i*Db$M7*7td$FY>KH^&Y^sBnMfO;A8A&qfZkWVr-^Fi9QHs}0&&N&VJj z&qyn^RIZN?ikr4za{J>qnm(LpIn;D7NpN*&pL9WF42D>gG@A$*%4-k1U z$eg}zxnAc2*UTUlO*rTZP0X1oilclEalxT7UWOq@!}xT-5Kyba%A7TVRv zVlSx-?G0JusOb;7Bg|OX)^7ZPLuwz@}T>VSp zk*;OwoWj>>gPWw(#06@3sA{6Qk`JIMkEdza8?a@>V$f*yQh4p;Sn*_u6{Umc{z!;kWP}u2%nfi>LM;jey3CFl`dP~rIv3@<9XHt?`{nwG*K~bz zRwwGpde2t4tJo0SRPqgjcIzB4mSwEN3ZdiS|vKETnMxZVn@(t)t*E5xnLf)v9k?kCqV^laX=v@GxI-gXG@EA&V^&V{!Rde zKNAp>NxYS3Yd4X*<|1@=S10a*!V0Di*{C6;8>9E$A@IQe0C4#7N}5t&RSIlrLg3u?`dwMkH~B$8-o9;i19D5$8OY;wtYK1$HxJoN z^YKfBTX9_zYNk4={sdJC?Lu=@?2WAvkS&>p;vh>VaHIarOX6Uo9`l_g(Q4ZIem&h& zf;hcGGR4tz#w$Rb6E6mD85ls0pY9q}U1*G` z79RD*mI*sw6cFcrkmo)d7#r_QF*xc8SHJ*3%CaAX%77AeW}>O^w{p`sq^ZHWHZRyZ zGDro{{0p~}k1t;P@GNo4oEr!O8*S zhUj?0i103Vg;7G_IaIBu79UFe#L{SNNH82iF+2*aL2F4onh4h;AMKcED7UY=NK;C_rX4&!@GKX0H-PDO zzkPV_G)k|ui0ljQk6$@2zStr_z9TOkAUox`^9 z-9Jwd{uL4VcP0COKE3{*wpYggYN3U4QWE{Va9-<0k&(0BWFe&7uClN+sy0e|KmB4( zd*|Lr)Ep)1Fj>++X=VJt{z|UM7}y$6Ky^0Wx^}fmd3pVO2BsVG{>=i)6T~CT^N1GY zKVEsW=1k5k8rL{S-C+i@OE$6yDcR}f&LmhcUwDVV0J_>Rl*o1 zNl+J9Q#N!~bfk@Jwjs!0yi}5qtR&Zdvxq!xR0d2MEss8F!mJJ(8{0VwxpVo`i9L%B zc)F-Av_qxwaQ15EBz}I z!-2K~@scCQ(Uq=^VgsBk6d4fMwQY!1S)UHVL1s|>`T$QGbTW%fiT~E$FhT_Fbr;4r zjPREM*MA>Q5d9l8^}j!Qq5lUqRjH!!ZSI2dxt7Eo$ABM|F=BVlCcXerCR+(DoALv7%=_%$ zzMP=m6ftS{MVe<*8AjbK2P&B}H=UG;amZtK#Teo;pn%3(d(21bi)9r*8>S3tA&G`; z)WemB8ao0d>7lS}^i*|Crk=`j4+86xG~xlHjT{(XM*ALiM@GVzO-MinQh05cbuv>R ziwabBt2#tz^=g$%pZUlnnB3HIKK%CBcNp&zc~~gnMqh~YE-+lU)JhVM4CxFeTjgV~ zt;RDO0YxS;SqXQbgPEqIHMGgEGv$la!KSHTjK}KsRnf;v}0X1U{` zCWP^>YnKJ)UPV&f;uRHAX9_u;*26BWbnz5ON^98!_fLY9%a2yD5AQ%fCQx<_%k@%> z>p7+QnIxze*2y|-lK;tdqqAR6LPj=~XF6|V^}Un|1#eKq^39?KpB;DvhOriiFjh`& zU1ci&9?&S+KLZZbAQ@y|w4l(tAmefybh-dcpq8HglD$Q+At zdCuQgj#H*y;uwETi-TLHQ(Bx=rlMLca>R@vHqVL5JGB!ykw^XOO*lawEIiqx6T^jje;KQ!M}b9*h{ zIrj5nHy^8`x4%v?iauGgBUA_C{0|q9)cqb92`;J)#J!akFQ8WXH9}35D}|Rr?jK7a z@(U{FVnh~Vr6K#uth!PSX;;F=qB7}%!&M13DRQ@;rc%tA4A&Nj-M#B!XPhL$*GaGL z!#y@q?=V*w&z+&awz+);EC!{=>u|@0b`CUyT}eJeex*L+SEZ&5WrNUIwI65*e$qad z_q2*|tNTVhs8PjyOnIf6G>PRKl&>`OLtw4cH9|yq(@qmBn}MCxx(3rzp&Hd3uMF^{ zc|UXO_KT?MxQCNe_NpXV{c|9uFS!ltUv90tFmw#Og!&W@NX77iE>P#*a?rZ7< zdM7(piYp}*6&?h&3EXZPoX^G^%IeB=dYu?ouPNo9iOjhPHTzRL5=&uHUYI%iY`&ZI zjpr(nq(7{TpWIw&!$CpId+MDZlHh{>Pq^E850SvnQ z8Ff60D6!%e4UWAM?loYshyx~yg*9jwMp@kYNTf0?JEA6R5Ysj-*E8S2SfK_zcjs;I zfgmGC!LA#EGLv6yr|rNau@1?RXQny8cz<63BX#x#j!l1^;alM=0csBin)L^rG(EPc zt+`bJ|EW@;S)kP8JijeY>**eX0z?cu+~nkfonmB82nH;KHD}SRfMmGq?+e|yhey!rKsnke4GSm!SoE|;i@j9^Y)cyuuYqRt?qEu zD{Eg?+Q-j&^uquc-q5+DT1dzVCzHf@8Y$&OOF&x2-_#s*6(cq^D(s$xs{k;^+j9(k zr)|YPMm%I&NUWctXD{^elEvJ^+#5&-?A=k49tkjrY%@4-zy8|(xfT^^2EQj4l>gzu z^Y5320{_YO|NrK4h~%7%oQ%XAjjaALyQsXle8)U3j8{}@! zp`3t{IQkYT%EA?o!hy!6#z>kYy9fylBC`%ayF_OJQBaSupW0;X;Sz7LG8WN8bIY&I zvp#ih9JD`qUrE0%|LOjK(M9Y^o(W*mfss%JlNx}hjS{ydRB%{)xgj_s1j(cY)v@PU z*i)r$!lTW@>lKvCi$|y7KJBN%*;^kb#u`TSbc?ge-kqB#$U?r!2rxF)=9y) zrM*3p(C(PXCKc)+(4%I;xl9RB5$YJ)Ue{6#H=j_fhq9MkUVPUTCP!KT1VSs|HsBl{ z!bRgm!_?QM4{GBRpiK$0mL^ZlqqtTaq2Vk*iF2biF%O!WVa_`)?Z_?63)H7E*`GX? zbYUtlVj|`kTV^=mBTQGAzyZa_l#mNx6OdX0MMPuIn;@Hw$Scm@n-^IiQb7bG4SFLT zCKb%sP46g65zg9ak{8T}+brCVHy2KwDzS4b7$6KY-X^8(Q={Ry-43hx~d8Pjtz zwR3TAX_O!oEHCpMsUfIL`_kJkl6_-fBa6jsM@wjeGbd$O;!azZbegLXpx;o0)|xO! zQ<@@r#2F(q6YsY{wO22E(=TgNtKpghiId=~;9!EAqu_c%n=k4^lvXVLL}>k(W~nB# zU}QJCP805%uyAifi1k_{+;s|?H6Nvglt|v3UFCe48?;?!=!Co8G8}3(SJbhmAdVma zSg*SAu$$K}m(EI$z!`X97(hLJynsX>W}~(NDr)sOKre-nRG+4r5~bAY9!P_y@!1s zSBr_rAibvre>MILhs`jhTOCr*z%xY3Abe9AF@4<{VV8k;10wJTnm**G#%PRhUXoZT zQ`q_#G^Yef@1D{1o1tfD_46(BW=fPUl~JarfF(E&xxp`(8LD>t04qTXpMya?(+ZAf zboC@p{23%26mD{D(;KB-q6gAe6DNsA^f)@Djn?Aeuy(Hn9x z)KIY5Q7eo2yT#cl9+m@kCA`k74Z-_2$E{c*n@L^|B_@TS#o!%dI()mZ+Gj$4Wd9}t zdxmS6GKHC|4~^!ZYaixlM`al0J}zvGmfqbTm6EYZ5%RmU)v9S|nxmLSP0ME#iCcX^+RUB+;C4nD$n)a2VVYIy=NKiqlAZv@yqVVnw$ z&JN(D;s4pJEojAN56>`+r;4`JE3(Vd66oz32ml;_&ji_Tis+o9)q_fk zQenFzv*6GY%l-^;!`};t^_%Y7-)bDwS|383IyUm&E89ApMi^3bA3n}n(h6?4wunQoyB1!xP>UnkWb;(PFiE9(yyTaED0Pu3M_MHos)-ygHN!$ zX+L~Ead>i?u!cnnjy}Nt>Wrwz8BL|%oe>J|UsuV0?~FSC%g*?(&GIj4<=?Is|N7-$ zcB22)H9J)xJdqaBzq$<><1I-@A!2^ufTu_x^1^}3;`>n%A&3FX$&sdu)z!4uPfdYd zn>Q-0n^!h1qF9w%H7cF~R05ipSDM0llysi!(Q0`7dD1KV^JMJIU}=o6OZRe-&T6yu z_SJp${X^#!_uHC*%#RexQ;C_7_CC`-kv`L25hYKmh`<)o2sj>`A!$#);H!hfE_qLc zr*hZdIyg{!_~*OEtli#W=`s#?bga>~^}*?#8|RRFa$G}`dmElX!#tQnh^}$z)1}Xz zXbLw-uvbTiW+dK0>9heiLY|?+T@#b_8=isb)%JJH)?HP*?8vm>WRJ2`-1$<2&A{eu z5ue|{cfmY8Bf40@?)XCkevVL_SpR9rcQ{roit1)5=^HiU(x0@c0{J4NW|-`ywC%)7 zGZV9N+~R)80!I&FI7iM|+9+a!M|t0>pc{WHO69>g7tb?sk9tCO_Un+^XTJdk9TBYyHU)5Yh*UdEvV3C87|)!DbNiW%Lut4Q&&_ z$dwvBtD1You^Qkx=*;v7y-wyTQZNkvk?zdi4bSVssEycGPNBi| zpAf@iy7(rep*=#fxh21A3om8uT59tGOLbv{C_SA!eT7qePNTRNAzECfbL($w;>h|3 z;83~w8MKDYpOa^cU?3#&#R}6z`2w2_`1ka2L}VJe7}OKu;^|B7Ge^#;_FehALcaR^ zs_4tB9zQWLROWGJdfXYa#L&hqchAOGGR#q4uW!w_DmCN?r!e<_2*v@C1S>Dp3SB)S zl@bvQB+N9|%9v0|h-=VgAec_dZ1*^69NJc7pObjSPsTJ+3&?;61RnsC$lhp;#k+qU zO0FsSV^!fJpj!!VoyL8p7zw)BfP{f!F(wqfbMm_N4xTWZP1WE`+a`$*K3vS{10y_Q z5moMbAYr}R6&jHg5DJnRV-6)T8s?DJg(DfHTb&Tex}j7L;{n0OA|)F`S#V06db2Hu zL1b|4K8f{P7uI@W1)^u^Fq?A>KP0J^Epw3?7)FFx#h3{|m%EAaMGztE;|P&+_lwAp zS*16at@<0wDk$f`aV1VT{a27sWE|{FFb|lUNdC{JPLX$Xg8pMYCWNUkQEHIjX z?&gm@;uyZk6Htx+T)?bnKUl&|27rhc=EoSB#=v_9) zW1}oE>U_4mjT`z`Uv%mjDTR00j?ueh|MX2*kj{28g?Hi3a*kFioUNbfGqiX4t_y~D z^e@wALRO!?Z07gC^l!s8jL#?^(`VBBkMMM#y&Y*Hz~+QWhqp2E)m0(?bbmG6hRpePJrb@5?sC`Ey%J79KxOkR)35+d|~X9xA4a| zP8ZmVv1U_6`A#7_oP_%tpr@aJlRByjczsJm^6#yN{F+!e65C27hW9Dd>SCpzB91!s zxGcQ7Q!WVAGp5v`urp`eem+e3S6pTDcVLUS+Mz}E25$!$7@}2~O)$C541oGn?zn5@D?ffd&h-`EFmzxei8JX?Ty|gOV@)TU*c({aMeUKki;g`t zNzJ*h=JJRr>JKEx#X^!+jfc9M7`=x8td><2CM0RwP02 zVOMmw5GyjUW~WFBrh`*J1rN;vda%ib+HxBkno05}MA3~_i<8#~cypNp_Ve7uEwzKz z!+?wGc_{(eC~D$O{lGFxl#X<}{alsvZrG@=>D8 z;@z`h73af9*mJGoNB&?xgsC9n4>`3_7rxU>(QcNBpdPH#%pky5us*5DXkMlZpEr&Sq{I<1HE=46bK$T!bmf z%>+lLNo@m4R1+IZ5A{0zV5*g!Q(??xfLIjACZTv>6HBESWa|aE8%POdto17?qX(e0 zLkX=76P5tKfx4k61NI8jZKNERx=&4(aZ#0U&gpoO3jh(#sM?&$5%x>4T9KmcD%w>8T+1P^CtegZsS}YsL;!c(!$P%>@+9R4tJ7DBYM*#&m8d^)kHqSSG3GwKhn#m{C)AN?N#+-aGB-GM_14fV_~jB zT{20g8yG%Lm-*rbBOCak6=C5}+?I#NmI$snW;tP|W4sQ5N?sG5WP;Y7gZWNCy4X2Z zT|?0km1McpgU*h=IX=mj)9pkWOQ&HaRY?VN&Ht6SE16v4Ea8JwuB{{`%V|)CC#n?F zBHUa+p-6f?+^k)+UtZIXObmW7#*+hMinQ3*o<=9sq?5 zRX^1po+BZAwo=niN*uR|OwKG6pl%IIahu;V4!sB%Rj&Fs10Oz3kv6_@Y$T2El$`&# zX1J5=S;cXY=WfMHfZ1i3*}~&2t>7Cyue~*YY=a#tKNwjhQhelU@5s=Z(mfCu9S8;V z&rgH1dC^#`Soqk@XrKj!y7_`&4B#ua5%)ak(FF0s3v}D53j(wX}5UQA+6%qgvDac^=j! z%_O1^ekT1n+CT}d0c(uC8FCl+@HCCb?E%e+N-~9}ms|T*Qa5(0Cs(p!uAX84?BS{L zeBfJ6J}#BRolz`56EqF2ECRY{ZNp9&>}v)4dRlmo z*#6kx1a_O&!}}v_z0WJG$yzqXpLBSW?@@};I(;Ofl!dFbqkbad?RRF|DNz%*4e9Bt zGKxG*b`M5=jdPp(26T1dDgyJ$*;#{wY;EMb^GFxCPUzNm0m@oMxp6xu<4CxLteKyY zppnmop_;!D-~v{i9ozmH+VjA=hoUmu!8|oVzr^-d+UJ@!^~WSCXUHuY=~g+-19J!FT!|bysrM z6(O+zlQ-*Ppp+}lAMnH(r#uka-0iQwRvAhwq3Q%eejXf{>x|;gZwYvK9?CAw2+v^M{S3#~SgBQ@@2Mv-AMV^^%oR0aF9QAQM62sL< zwR243qP0UoMmI2w166BaCUzBouSwC2M$oni4|NjMFz}MIj5396lkOOAwF1hju@T$# z>4koCSuk$9u&q2?Yb4?T_R)3Wx^~Tb78tVJD4W?MgVC0<|R>10TtAxKk9|oqq`t8?sMfL^IqhMGdzs9sW4i|ci*w%>Nt>jL>YUsY7~IhUr(&*(|Di_qwjTU#u$Bq@(->;1|q(XeKyx%KAR4&5pI^jQj@CpH&l|Ybf zzjvlR(aXAj$cV#5d340(sy#*PdM(B7GwyFQ{=$jVL3VWIejS&g^SF)7-hDds6n5kF z&I|J^q2I#ZRSU+(b@n%|+jS9<=eR%a_zNk{yW*6M$2B9X_l^*wH}P`!<2I}PXC+v- z!`_qidvD~gpGbl21e{F$k-s33)PI3^S_OTBP~?hsxMJ&8-@MSdIFp` zXIKXMxz!saE+FiR8@Lf<1vbqUlPyfL>9NFPRX;dBNkWZ?`4)`}yf+F035%NC zO?b~(FI2CA<9O3#(7^WUrcr3=$Wh6B?J`NoITyUgnI$0{)iy>NVtdLEo5LD<7IJX* zjB}>*tU}X`2UNLp(2IH+^dNxRob5i;)^Z*SOWi3ui&q5|gmZGeJJVA4x*AlJq7Ncd zMaeM*PIDAPk{C~BhCGQ1GHYMrH6U7@Op7oSr4m#3Oe3g5Al8V0V9_%Wmv?XTZtk6( zcq^mR-AlSMFZZ5yr8}2pCtVY=J}{F}tkO#ZK{)D+o9*c^h=eMVs>ize;Af1DmAaV zS3{I`(pwmCBg%y7tVLMC7d_n{tnEenD+&wl&rt^zAMH3YW6bd1YCDPW-_#t^ksU9C zC`ZGm$x~di6|n1`0=2P|$)@I2to_mHmSgm5&`sA{b15V$N@XdaF_%|eTq3zL-uaCY z7fWQi-DlP0nMtJvI4GyN~GuUNL3{ruW^Vjy!FRy3T z&%OTD6*4*#RZYy+hqBy5Q(A7ll+iSN*;q34&l-+nR)V5#kvq&A*%E2-_iD_m=j&f> z^58qSq5N`0HB{3$#6qwlK{73Y!=z!kuK_9vvOBTk=r&H$7Icv&X&uB>!4;2Yj}%hS zuY^ffA8k9+6@pIQ+1H_V_Gnj#h_>w-lJ~hH8T*KZ4OL|E$0VVnfTSk2V^!u(-oEzb zHHI3}3I1Yr9R9Lw6~ds9Q|A4W(d z6_Lake}|(>t}-d}Bm-adzkwJ>@#+$Liah{$#>mA=8JW0?*`d=+kD9PeOO#RC8cDM$ zZzb!=;uq0hMet!bg`e=y11-M^7GfEX=_O&kW0@YW0)EC?QL&4%IoL`$&ls7Ql&&@I z?pxXv>>G+X_!pE;MPh5gZvod&Qy`BImaTFTBtGas%A9YS~A|X6Uzjjx!%B`hIrR9)XkNMbY zBrUhIKOvfr+F=`BL$4q&xr-;2+~m+~mX=QF5d&ywylL2}Zl=24M?enb%c(QgK3;b& z82?HgD^+X9U^QScc5-BEHmiH(9ieu$+T_O70dLRfD6F2sD(LK z$jRa5@%}O8xv9#SZaii5?oHFiZhd&lb%|=5rOpT}r_hcI!rTa!!v(s`hjb}2t9`cb zh9$8BnBZnhekWITMZmbDPPyS>d zh)l=zhXRc5DW9Sx$*!3Pxj9#o9=miN9YhNZF>puB?=w1Wc4WrHdD&v796q%OBXPnc zN{JeNwJ_@gM@yw7wXp@b!=H+IU;y^`+Xd=Jgy4}3`_)#*g>zo-7rqQU=Rw+|wClC~ za!=sXWAmA-rzDH%+P|3|OvqL=%U8;jouSIr#gtH?%FWALfg{D3k8)GYt8&sPON|*9 zErmMkeo7=Xnkp(QEHbYYRMaor-Aynks-B8fJCQ7&IW9<$6)KeetP%j{6yH1}TTD?j zHFe^P)x#aCDdA(2=`v^$105Gghg zNe3s!x3PnFIV=RTYt5m+VaY*1#p5@Z)}K-@w2R$0`bMvDdAVbPIpJEGQ3qmeL^+lS zNwvfC)~M&l7JK-e%Pt_aA1?~rPLt^;mgi&~4Omp! zcap8!Zc7TAGr};Qon{(qRHkxOTf(0g*D0&yG)JyRx82qZ*DAa$%Fv@Sxs|}_yA3v! zf<4s~(x~##J&fI!B(^F{kf?E6H)|{>z;=1th2p)MOG_FoR`}t`0Xs;$4UV5!D%)cl zY%ArL(!F-(98tTQgxf9tY?nk)?IC+va@)^vJm=dh!&pT1YZRDZ>-&%WrYrL8u;DM? zMr9H&E*xJN!8H{Id}Yg1BPWe7CE|G*!l|-2cw=Dn(MuKb&iU$Y;M8MThOIXYu-?G9 z2di!apY)y?22Nq1<#Wu(^~^08%ll1+3hsu~(~Na6aC>mnZZS!ou1HB8DA~5Q8~i+V zL(8IA^Clqzsyl!Z{Nk(HsoG6X>YiRHF$3~Z{3D0`#ay8fV|ytjTznqfi4BW_VA1-O zh>1C%%RBDhr*=G}I?iU!`P-JoL>sn9F($@-o+{pW+4v(z5VvZ6o>6!@Y$PKx*x37# zEu#Q0co!1zrZwhge*LCfb++Kt!7~)KQyl%wP|nD`$}J4DN$>_7Yp8NX9er(&2t^dM zdrSvPkQe&i>0@|_riDrvai*BIj8?=II@v>&%DzqnyXq1Bz!);=ZnS%~-r}G)G=KHDPbxh~Kw*9+WbUYwCO5u_q1T2UvctGq zVB4>0Rcgt8OOOc-e*MjbeL{OGuYM=!DG~hZ0{QQ&#ebBY`>!0=KO`c5tF!)bA)+*G zgDHgcX}tWnc2*hRCZ%O6Az`ULoU1j5WNHUaWDQs(wlSn!ATDZZAT!bMSkfk26!i*qvi&_x0F8k57x^e3;YP8;Lw?&kyY-)c;fhPH%( zXj@V{+#NRCNujW^ETar2+X9Gp&m%p6t>d~%TFGyTQS(=K zJV0m&T4wqqRa~}B*zJ2QR_#qMzghhm{N>bi)J+$bps4~OvpIc5x=>ZHnh!kkj6A&F zs`gmjhF8z8{p@r6OWRD_rRlEO`;Ta!vey4x!n$)$!=7JYIwv;=7$A;zU2A$UYcA#s z4W2z_mT<162&3mRAowRl?1Z0>s#4!|lrrb(Oh-w3rR z52;=k=FBDN_#!WA2ntDAy=bc}cCmzQmFEJ>?IS+)nDJ;jxl;t*pj@$f)s9kTVcN3h zINt9nCSu{f5Nt!!nga?{xi&B#lvSVyf}=@Cu8?k2M$H%HMDUZWbIC$v(R@eu$l6z} z%3%|rAgxz;0EIPB@mICxzi2`FtGZ${qSUb&Z6iV|X)<4<_g5M$kN03hQmR4&WfRs$ zEEM=MLo#m=TR~l@pa!n*b_IH>;|PI0Vf!z!yJ3pZg<#oBa%G*K`M5`&O6@|3^SS*!clJ;+LM84}Sg!HGRb~ z)6cjsjr(xE`s1u!hAOg%=H7zjBA@1IR(SOWpCEnHFj4_{h0}dPej>?z;`-{?Oqvhy z3l+2@T*4P>2J=*RC>b^D?YL~(h;Y!vezu#>Y2=4><yOH33RQ&%3f!JTp z{r_|lRJKz1)?$0J#88Q$Ap9(ZZd__oL@Nyl5-bVzmG{@RsI-oQq_TA0>&p4K z%)Ul_R_ZQL$h3Q1&EA=|9ZEi;p$}pWPD#!1c-(l)@R)L#Zf)=We3_^HVcj302mYi) zH30W*=Isg9*+M%ACQl_+OEu`v#v_OyMZgo6SD-JHhAUo6GDt|yqb#RfTZPA9q8h|n zokNH z92@eEvrPd-=f&@?bt&Kq-MGoH1qXWgX(FQ`Qu#q^x{6kj+qe|ZFoGQI@>=;iAm5{@ zzi1QYcjBNLSl2rm+;;05X*Xo121* z+rm%l#^kTzm*~bBM<)B0@3gE>^2%C5{3&b`pR8wZj*835?K#T*Bs`1PXfjNm zB!dc`RlBJ{wAaMsb2<5Wxj%6p?$tI9VG~=IUP}0MCHk8-jKG3|w9d&}p1P}nlaAz! zSNDcB#Cu=v&0PGi$G|3?(~G+`Cmhuh1srQ!D~OBdwK&6O<=W2>JXJXsx?$&v6OEcN zp|Ps;?R6W>FvLuxyJ8oxH?@rN!IHlawU3mq=`wg~n-JYAom-&p?^E;6ft@l}Y{PrK zZbneO-@L=xzPgxD=1H4OT;2jGOTP*z6+nOWnWQ0{fH#{Rtj-KLs z{r$q|j@!-a$`UIcq1_6H6UqX=DoI?$l539^$}~Gnzql;u$cXF{n&P)=Nb!PT2l7Wx z(Huj{Uz73q=Z6%OrT5peji9*{5s`gPDA6zps8K{GUxY%4g0_L+ve+Q{EuVWmTckanzU_{;=$I1fU+m4fISJd=3sA)r2~*EGCf z`Sb#61XEVK@D5R{uqM+SBYNxsqh0E?2Hx}?)Wsi1<@?uGMAy>kO0Az-Rox<9KXQNB zsti_yZCvfU(y&E7J!iu z66pLF2`-Uqhing173a83Qf`)A&^wA?Km-~I6IY~#z4Y8WaN!lsjsc>bTVqQz6iSQjeymM@GU z3L=$>(7Tj(7h2CW*$w=XizRP}z%h!wi0OUe1oNEm4=L}=Ig3#Ah|G^{gw`gah!7;? zHZ{W7K;D3QL_aJZ;3Py}de3Jg*5us~3oUad+spEf4-st0M3Zy-RBofgyc;MYP%Ab- zSo=wTZnky|)Ld0KiO;HNZ-&rC&BJj^zbi|jPl@O}98$Xgal&d6=rN9s9g=&QO?5b6 zlBcD-<%djRNutaZ<(M6guKIgB3kx z=&qOawXz>z@FA?z$S8sL|J0o60=8O zj-E9f2t|A7oowHcai?PMK|XwdRek6Rz0BC*n}}7eX4PDO19J#r!9=-DBff=Y-8W24 z^#S}B^+Ik@8%Fx=;#%1sKS4IMfTtD`#*>0e}AHXHPnCdF$x+M3*S!t#xC`C z^QJaUr%U5yi&d3q4Fn_Ne5gP9*LYOl7I-E|{H4W=`-sS2>w)=hdU3a-5vB{qe_8{V zO6g8zF#dU&vN{}|w)q2KnRnIO+X$n6?5^7DgvzS5p>Nt9BaWg0CGl~cl6{T0bE;Lt z%7G$B?`qpKgK?@#HxVQsy2*eIQ9msLp@zbbeY5`?)9j(PR;eSIz5ljrhhn;cJV+f` znDk{_l4sTMT8EN&f^Nr+2D};79vPE*5091+5>`43v^0bm_LwVK9fVUEvz}cy8-Fd1}&O?!u8GNbwB9vtV6I5@obLyQ?jy{MyKe*a9468F z8KzDTkJ1sgI=6)r%nqAK16Y!bTuN_YSYf2v1U%RS7^FcJoYd>6%LgL{CTw@!3n{M1 za41FB7P)=jksf?<=u0K%sUWJLdD8%c_Jv@u>i<8iy;GEB>y|E> z8MbZPwr$(C%?#VNBg3|B+qUhDxUqKCZdH4=bF1xE=e*2^@i@mn{{HpeKL`_AKx-f(qDbJv189=IvSv=IVY)kN4zw(G*Nw9CVRAQ{MQt3{#jO@u5?Fkn6$Vrt;fLduXd z2$d9T$?LZx3>!y~0!Il=EWmO{P z$xlsRIfl`GY7pUSdqd_n!O);GEBdAwHUyk@_5#J2OU&#g7omID@m+W*Hd&ttY8`5% zXK+J3MsNmqehSl+<*jQq2MiBz89pOv2WFLul2Mha6M)#RJ{uJsWzsPv?GMh_u@6qJ z+C|q;r0K1w2xUnD$&#ND8;8S^aYXe&tR5u8%ih=Un8&iJJnAaVNzfTv-s*Lmuvb8m zp?MXxz#NjF^g=9(5kY5N5lHxF))xg@0|Px6{HcGLAVH;D>lDfgm`?Cf8;MynI{X#y zlq&ZkQA1ofvSjXoeGI9S{?Lv0Fnb|lR;l#E>6W1Kma>m#&nfXaL+QBg8~08%b-F**(0(+Tu;gRw80JkWePrBwnl0eWH0B_0U8^v2{9I z#Y&fjifa4*@#01rgPi*)!5;HEY}Xqd7c7c*Koly25|mWXaZo7smYyf>=07;~v;#GO zx??X8y5lb(+hZ><^$1-lw}3tq5t=h8WkIDtZvuwLf`oY^HIX?t^^u${<26-AEn+Xi zL);$}yR7KXx15W$hYJG1m6Dfd%+SQe6v^6t#U&W@OgtHvh0Wc*T{tCt9)84ul-3?=T?NCLjEHvHSGMG(h z8`m%dC_AeCiD@o=gXdCqi)7wx{C3Jbs`L(ZhOOmcwM`XNY+l$+Vz`NJay6>4S2DYD zV1k`N<)FjknLVxdg44+qfRss?5_EC^Ii>@^G_{8|YzeX-?#rt{W``W4*kKc?(CMYQ z3(I(WvC&XQ8YOZi}dc7L#iucW?0%so9-U0;2Ai-aPimW%dyi%eFAI=MGgfSFmj^ zbwFjDj04}e*)Sle#;#vfA!w`!qe*Shg;f!4%#W&sDON1Y^*RMRs9|i&b}UTv%}PEn zQn831ulvp&{2wsvK9v?I{0J`j`v<;%L5*c&P5<)mICUB5{|+_&u6_Pr64t*_1w9*) ztj#|=csW}~b0>3K8)ZAAZ?6|Ab4Mp*n}61gMkQ@oM1Cahc@&p-;83;lT%<~k@H&il zzFc$vj99U7I8CugTA6il7%S7IO>1!9p)b9B`nMg}8&UM@riO6vUL?2FR>$M1Ovmfi z_WS$gXWSpz`{n?KYN3R|p5m!3wmW`)As`S?w@s7Szk4%6K*FJpdJM%nl_cDn`n`2u zpj?v5lYbkJ-*HxzclMkmS2UT4+sJREXsB!Esh)E-*|c-1xgORl`21=Wabj+*cAL2c z5^T`tN69Jk}@rN%K4$4+^(w5j4hwW64C1lK0=GgrL#=+aw89lKS zJ*fs8SR;_aiEE=4kA} zH1)070B{_NmPV)XXN3NrKJGl+Cb*`}g)))>eQm~yND9#YzE^AzDWhp}v zEBsX??jZO=bGow&qE+%W^Vq0ZX{2s{#0TT2b;tfaNO!2ks}|hLIp2^nI}J;M{)iLr(?yF(1&o6 z7LwQfQEPJTmUThB=guI6g0ueKr3()XOH+`@#-|cZ5>7-8`~D-sB8KG-Liigz6Mf4t z{tG<+JvH)w51#*m%Jl!gOzXSr5-XEz)%}oDWxO0qT0?qn8<-$wYu|E7dz$j z3fo%@7K+OW9jHJkI!FYU*Wpq}*$6q~^24a2vi8n< zT9Mo!0+8IB{yD#<5B+`$l%Z}IM7@UX;HV3LjC=?{~&cKkg zI1E*DJ5-qS4O~&u@i*DB@DjwknJ}H?N~;Lxl_F?Zmz8`3vG&cZFNOkxC;{%*ce$JL zJlaQw98+uPC+l(!e^jlxg_$x^87Hetfk}P52VPOHrS>ypipn>iZi_nvZyw7x&%mj@ z>SAV(rF5D43Cbq2DmP;_Uw1iBQ%1EQj~$X;rH}cFMUHWa#Gv_#;JpBdKhKQi$(AEdP+*SI3BOa-AlfGDSSjYYic@%KOe7^*Q_Hs<*o-iYDmx zQ<2_~BW5ElDKs!)(e^Dt%*6FVg{`!#i8B)X=#B z!0swP7J*cp1{*06rSyBCz#9`|VH($vT>33KJ|nuSK4Umq+#M*WOeAR zGl?Ng2;z`&osnh+dI+w88>CD6J#_HxP8`HKCvua0po!LQ0b4Sh1?5mVbLR4`tufna*n0Z~j zc*5i{XdC6^d)kHXDEPx+7N2eyAoY&cg?29^Q}nzQ6y=I&Ab?Jh{e|scB@QYX-{Y@Q zH2l8|eExnRNc`Jf&)>W0|F{qY^{uQ7^bIZlb0rl!E!j_pHK^NArJ3c3d9oN0;z9qi zzm(tt(HAVx`|fI;nx(FgZdKzu8Q}ZNH!)QylfaE3q=WXLQh>GKX^2cRF$6aNiL zu#!Pvs&r8dP4m2w46SKDK{R;l=){CL(KvMfHdAGQxD^qnpqUupdSvD%gy5?e@$|zW&-^+Z-t8GJpBZ>-$0m z1#^jEo<{rbLYMxM%9k^su0!`~&;yVFR?$u1{4 zwa85zGjD>?Ucer^X~gv(wB(vuxG6;Dr(2w8B-0W9?p3DkwJ;v&!e^ail<3{zkY%g^ z3V1Kcrx>yaG5zYH3ZN`2V(%XU7d})R)QUf6bYK_{Qllm|H8s|THyl4mkl-U1y1=wM$}Y>Fzeb+z+lQNeitMr3{os5x#+k z*8-*G_sABR5xEf-Od(I-;xG&5k?xF5N(t0Zu(&zl$_vWv|6?ht8^vTu3r+zB*x!3Z zh6a$%F$&F2jaf%+cH#?^*4!(S802(Bh1uU_DwyGVU=W8o&N*kf8JC}D)Q^~GU8H6k zAq@4oCcd_QwxKcRND01`cW>x043%xzq6Wy_Hq}v&FeJf|LFd3lF!eiL-ngJ7p&?CU zw~`Ys?pXtqsQ_*Dj>furLbLA7UWT)#VLMc|IUP6j4Q(cr|nRg_Kt5`I}fFZg$C|1HkL4IBfS5YW+3xM^4ptXqN zXiFnT_okNi`Y1CDNp?!%%N-+7ghHEliGkF#ABNA^>Xnjj1jX@6BMu@o7YYp=B z>kXI7OAYk8x7$xn;*RtF_m^MzOBN0*v;zQ%wOaM)&%#E(}tQtTDu1 z7yYC!N++LEeaBFw8cuw&acfQqH^BW@;Xq+oOp+pYk>f)jOtR$egI+JLs+dGxqjnWV z4AXGdf=LNC$Vu;IZE^K3JQ%NJPPICg)ij8_CS%Q5h!Py5<`(Xq$n#wNpjb(msA=Ca-a#qGrAMWD#xJQ2 zQL0yZ114`(h7F9l`^6B+rH9K{zR+NpGf*BXEQbF$UKUT+{U~yS&3q_8ki>O^k=L7~ zRMu>JGtVxgZfrMm!o^+y3>Kt30b@_u{Xn+)I>MbneM6kn3a!k&cXdnNeS!C3aF?D3 z!QdrGL~JkJ1Yyl8XKz_Cc2fiR>4MDf0xfvKp;PFtI|`^H5L-n%Ukw@UYu-cDp^(01 z2)PECI=)J%Sij>63D_>*J4i+IR@nOsm`nex6tKe@z%}Wc1$h!Qq8fIg+#v$ykt4c7 zz^Ui3fUn6g`X-TpY!rZ&pDdq9Xeqy8$yb|$=f8)i^P8RDzAe5_o&PrX=O8{-@srpf z4|X5DMNEbeX~{E)$nxB?HsD=CX!_d_T^GvWGc?(N2xPcoXr=J2B4Btuo2i1-3Ob`f zH2>*4P!~g#D&MN$*jNrF!|(olhtOuY2s{y$T@t?6O=i@!cc4wml@=&f>Q&pD`eEcY zfTpS+Q~Lm^-H534*0aIZ+A+ItMI;?=NyRO>_%~2Ai$6JWt01`|#+`ejAKknB*&)3G zRU&pa@;WJHx0Bt3U#<|=E{H2`s`sQLNCnU-RmAfy!wyC06GMqI#0c`SnXY@79sg*q z2rZk3er4R9IJ=iPz0{_e1PbR8x7p-b0ztA#0ADjzatbcvAjvsJ_|_!f;Bd7Fy1<`! zPZTU)zW&3qYoG_$WcIsl{rng2w7=I7u79V7{Ifaz@BX9o|53%W5-u&id(z--an^S6 zNRncf%Aq%OYn}$p+R!FqIsc#;HOM&s7t1>Jxzdc)n)cGA@;P2=GLN4+iEbwKf$>0b z#%WoMrd#e)6KU+-UtV9pJM2r0bT>16>;XVH#<}~oZy0gr1KfE-af*=9LDN5itt2JZEjc!xt?xRl99QqP zW*Ps?+MRg#xwo0aTx9Q%OuqLe9p&{;w{5(wfV=6jZuZ849-6L0xsTV6)*rV92wtf- z_1Ea8?PzUdc{Z2V3dsEmjD?DD422>$_g#DB@)@d8Hdp2yfX;i}gDeVZL<`414$N_w z->tLly3AftX^EP~gtEMsWf9H33hg@R9U-imRU&ub2BD|S0xoN(5S4VZ0U;q!|Gyp@l+>9*k6NATBGq!6hV+&Po@{QE8O8KJZ-@t z50cGL@yVzT1$uu)dbO_d*vQ0+$5KK8O;Lc9WF3!T94VqY!cb~DrrG}ET|@*x{q1}# zZDf~Xb+z`#vK@9A3c3939thJMU>dGiM|C|Ul~)!4l7N7HML5`4n_m$foiUF=XTDBp zd{K^=lwmThemtTS0%Z$$@^(?0CcH@mlSI+7#PLiqd#fatci*ghI2-Ur_U^)T+=p*8 zM{@9@oG7SDRj^JsD14kbwiGxfboX36s3CY=EB9E<@ z;oHDqQsTQrFR!f_lhHrGVOp_IUh@4ZOkC7EVQgvQKe?^ci?JmzP8-rtZlYI8gM|Ig z`T^r+)ZBvoF7eU`p8yCCMzzm?W*SUOYmZ@7@>yK8`guA(QU1kSdivcU+nphsAmk zIN&H0!fB)`ZZ^ESyG_T$b(l1Ip1~=O|N(5*{lrWc2 z$#52_6BP%e8Er0$PJf0Cjl@(u*L#x}h|GGq_4G*Fk4&MMKnjd8Mt(Fb)Q7O5^iZo8 zBSj;^<#JX+|C^<17u}D7Fbf&g45A@LRWqwDze&F+3Qe(^5zfUi3e9Cg>M0pNXkC`> zmK4g<19pC8(vHk9 zxp1DG|;=E+u~41ZS&b1BBJ z^l(Q<`>BbbQ}v(S6nQmmN4qN4Jb%YPmdNa44j0T_?UR_SeTdr zJT-8P$5;@B%w9omL`iwOq6l>cP1Q+xn{!Oqoosk^u2U6Pnd+PO?`=uyo9y*%%X9hr zM)#q+7+bww~{iu;WyBX!DDvK?L!Cj@hnjG1~!q~JU!_BwY*xQ58P932s%pZKi zu(yPMnv!=~!!ftv(W*s~PnD$8&L2R$$R}@frB(aPT64FIA6mn-H5I$g*xv@d2^C&- z=P$%QMf=NY@GIR_h0FH9-Lv$e1pwZx#}CRn6OF%z>a?Z%mHh%(m4947l!MZnW?DAV zJF*<626^mg(POd9p{tf(LsZNQLCCb;DglsGM97LkF zGhy;ZmovKb(cf#@P&FeEv!+AQ0&9sVuNT8lk2BlZB(jg1#gkIWQf7|o@8#9{`8eOq z3Va+Cwj3VK4UyHCF%S0)J%D6Pdfv@+r3OwAx>&Gu*EaE`MV~i0xZM?^Cv56cW|jgN zH|d&Kl-?v|H>jx}!hWw;{2rrNksIR~Q+u+XXH;#@#JQo>aYyqIuA8k5XHkNgoM@9ZPD+0QWqpPyo+g+RX3!J&dcNFYk( zb&qOB91Zj;(Wy~OwVfRjNz<4CRCSMl$Y<{P0hDZ}B$GUsXFbC+R-qTOvpQri0Ahe{ z3@O*(@HS|sZ$7L=Ksg}YP;WPBIx^g5g0}g+Vj#cJZaZnbaBu(6e8}v%w%)`bcCQCL z_XwssW=#haKIFy2<+^J5ot%`EtMMP6hu6nUL&qN9d5kgT2D6sSicL}RUh(s8`(O!> z{XUm>P`$xEd10i59anNe&W3<;`2=sw>JE4&DC4N^ZT}$g8g9*OqPnKA$g1qP``K)t zbs3m0AF(dJE^d~hQBPiu8baUWO5L;r#xtsXt&F1dQe{{lOb4FR=gn@|_L3Z|;zWho zw6B=Rvdlu^uny<217Bct2plX;Xl}l48JmNn8o_t#t1Ii>)nJtOE-sZyUQKffGd}xL~uw75m6B%76BLn9X z%S<=gk)vNVO}{+N*qlRj%m{T~KQVcn$~?_ztE1=NG4SA)l-Cum-w`B#hS85pAKiTW z5o)HUc7-pX|QBTF?9*Rq}xQ*3aynJT;OX=A}h;l36(G+u64mgFy7F zqRT~g49U0#`ME6v1mnDJiZ!%6S0rhHYYMWy^!3s%5%5Ox^uQ~{27Q5oaFV>pd~8A| zmD%Xg17yiogV>ptGjxQuoUT&28GC^w2#(%r9A&7w$hvc0A?!MwezP~){59tWi`15A z2x!}w|e7$cs4b1F^$N8tN!4YU47a6u&JVC&}opUkDycU!DQ zAF3-}oqlyHK0GFYMe-#Wk8ov41wqW#S<#!-)3^hHXz%uJ$HZ=?kT$4Nk{v z_T%hn_UG*OJ6j&lTjL+^H$qsOWG;HtGJ|yR!{!@=8J@J2UKr!KRz_D zK&A%h$us832IYg%ht)G@>5KL=VI=u-y4EvYxD@p^OY~E;hbfM;EV}Fl>c)#X$!2_J z>ZonScHWd2{WcK+)@l@s{g?}qt#PWQWz%hDQ!DHWO&7?~lfe5M4_xU=+>a~DqVK&h zpDhvq!u+i>uIvU&R3^*#*1?xsnMm!Zw5l{R((JWpc{yWqSjLm%erqi{TzKhA`M_{C z9djf>SfeG470S2G&_X{`a>n;SgBgk}K5OK%Hny|dTqm9)TTMGnV-Vk$s8hEtMIOr; zVlz)+){Ar*tSG+PPd8qWkDW(zGgz)=^HDT9b=gM|GPi5dEBCBP=@$J?8+5skKgNI( zstaRr#-+l{t~GlK+)bWXg=3k?GUeU`e5u)maO?Z%w4g^c>{ zb7?8|Vgy%^f2e%sx3=NN#&#B+0Tr(eF%>`>1kBQaU|_$?u6Rtqw3=aI-*(a)s8}kU z0sLNp7>?VLK3N_eCndJ|OLv#53;aU22t2#T{`XMWxB1$}T$#-wkq^LmEv+BX((M57 z`Jw-#Lp>mSqYjN4?eZ8>j1K^8uXHX1tzWv8iM{-A5zx_%GxoOFPR5H0!1fRiHte|@ zk)J4i;XXb4*EdQ)W_$Z0>)`@TC`{6V?hLG$cbhIibaf`zw*CsB4XA!@SQh|8AW;F+wGs}*RvP=&!Tda9HcW}#^L zd`sXwIj1G=L06NGDS%fWZ!op;o>|dj%=^@N|As@m;}thaP7?fV*JXTZft;41s!Rg( zRB6DgkLe5N5^%bM7-t;7i^BO@AxbM+b-Yd=ExI!N%mrFY`iD{|`$!cCbHxRJ?8$TH z#@lHJbY-MkM;9Zb23gK_-Awt$meU1@<^BxQZ2g{!KsM-TZE+`IOsWqRYy!*+{*Rvn zi(K@R5Ni2n4L>tR+0_7aVtm>4j2`BD+;JZE^pj9^E_Fti|I>u!$&`g^u4x@sgtmy( zQ`>{gIK(BeQ^T&)6U1Ih99!;aO4J&q?0iY^PpG*aJeX3Rvdq>nnjgG-7cpVJ=$1E# z!B4+4-_ZkZ9NX?8&$t6LZzV0b0}9+!*tK!^cV?~0`jg(&+ zzx3LpGgTJiV)SW;nZ~w9j!8a`p7U~u>ZImr1Y(Mj8-Oe&rvr+R)x4yh(tcP5IOtP4 zHZu>r0XQ{H+dlytbdJ=f%!H(n-y+26n2&r`{rFDTEo>KP%@8{1#)>{c%bkXMX!Z7+ zX5CNjIbJ@kj~s;a#u+EenV*msIU>v2H6?XSOq-VXG{GU>FThIiX5ky1r+B$g?Tm?6 z%=l2A>JmxRWsI+$?_>?V*EBhiKI<5K>6DIYPF>w5Z?L8a7u0tNHoH~vsNDVKAGzQ- z$C{H6=;~HD*1qc$jdC4*ZbtD6U~3`h z5?uHul&J!CNoCRYUpi+MhEYq_2OVR1xs>TBGI7EgzPtK#%BI7*W%Cqnh!VY~D&Wqx z`!c~93HU?7?7IlZLV#U?jR$0MVpvV+w9>!BD`Pqqu5NJ^LrkW;d>SM9V|BsP;n-yN zAI~nP_BW2(&UH%RE(EW2lZEBjJt-P|CFFgfCcM~^#Qny}(XZZdCM8&z_7M}p6tH81 z>eb%}t1f|qVv*h}B^JjTTv`127E}k*@KeT-In?N@BdZd9iqrvLuvpPmW-%%ZAPw*IC{!1*NOXnAUxyTgNZ<*86pH}K_=;Zcwdr7y+m ziG8#@$gp*8vA8Y|4OII)>AnDpDTR`J{_st-f2tCS6qzqhxwyEPx?r4^a&7x26u*Mx z24(>{Z7jqNP(zb%sKh1RXCkpfyH7~g;tBHy_~$cGm8mJzPS7D?t@;EfmqQ^kk2kz# zAHFx)QAQQlPkKl2SGQChqQg9UkDIz_99ErzuT#BMnkc&Q*LEscjU)*3a%gbH7>0@@ zfTnfx+seI2uQvuz2WvF>);PXHh2u-@WtXj0JytBT)pQ(x^yFpLmX$b~=6E(~xw0Uu z1B1{hy^9dm3%wQvw$o;+^fN@ac$%d_jem(TIcz=(t+SNw;k%?xioLT!3f4-(NzA(F zLIgK{9XF46wjGZ23CSUIi2WGt{I#sR>{hSHXf4|?a$8G{s_2VSbQ9jpuBDENheP2W)332_FsvF}? z&Yt9f=cn$$9RKjE#!174$Q+Pqh@RiqA5}~a4RUU4r!YEXqM8~+AoP2R8WY$ z`mczc09c+dQu9ph2`n?b;|)(Auj7sDjrZ5#_n047`of~f_Y^2fOwMF2X`w0vHl=C` z`V2}q60+a>c?lEGn7oZg?OwU&BGT-kfNU@q_iEYX;7iVq?qR^R3r0hB4{||}OLr=R zTJ*4=0kx;@1Se1KXb=w8D;ti0x@{_GupvHh>LJgSes;voBe)XV^-T$zQ)cszpn^D+ zu!m=xOY|og0arl&qUvG9^E^8t8)uHT+a61ta54=|i=XpDbV({}aCwL$`a&=1iM zrwldJ!K2>rSzx+UCCX|No{t%TS#lzqh!;-q07-MMA8d95h-q-_o)F-a;$=Uf+rnA; z?`RohO>3B0B3cu6*V!2mHlqC~Tda35l9e~~-9End3D)jGP0X@4*#*ZNzP9M2(yq+r zt#Xi4bW90ed%JN!S##&s#k&~(F#Vv*EJzYgkIO#6^6M-L0thf7X7=HaDx`<#A)5MK z3avE~zdWizp#A>iQ1}>8;$D=jd(_WMnx7^v3cwzI-W-*=PK%^lRrJ!||+C$@UWgW{M@xQ(9@Iie&%7k}z3^%eXd2Tu$9 z4DkEldH)O5`R@ns|3-iI&mDovxeJ0S(kDzSlpnaBO|VkAipJ<5+onfa*GJbMq_@^T1l1Jm2!G%v6RXD^P>b70I7r5?$9GVVa>j4S-`M=1NG5WZMW7Lv ziT8rT5Q1~9r5H^I&<zJErswuvw*RXcjJQqSR{pWM+!ZlW|fi7{P% z1(8K+sZCcKsf_60=FTKRmi&|jKp%#I4#rDsQK@^d2+mevfa)w{KHli0l*;>4jUBgg zc`_zoMh#Vn22iL$O-PJgoDos1&QPro?v<2}d+)y(7H_$sh4hTAe*g@OO$?}Rvk1^F zzeF}l+(}l(zt|l0F{q*GYSkG#a+XXbyqw=k)askO@-1+e(rpscJ9C#l+w;bF zoQ%3-Bf7%0HOY^ol;WeGKwJvjyZIqO4XV?DWp8FP(8q zdD($yD>A)BTB~w*eckZpF{|omfhgfzjFZNA7^a01n+$TxjdWC4>*l%U6LX6eR&V=h zd`L%WODnvXYl<(-F%3fuQsR{Eud)TblKw`lb%m6XR1-1h4; zC*uY&`vtM`!oNlbP=@pDJ)(lG%wEuznkqlL}m(<$`W+SCZKcxCdHs-|P+I1A|ux z{^(;InE*%J?~`ghy~B6kFQP(?ULOG!IxW4knw6RbhpJP52_q+0z2E*;nVg&PoiYZ}%F_H^7) zV)3QZ?~vt!?L!5kbB9*RD(}%E@#6Rg7UgpY0i<4+KZQ%mbLpf!K-=4Fm3sWWjol^j zi(6X1w=-y(Lj$gensq2J0+5R(P-jBoNs8s-K@>hjaQh2C zRUK--+aY275)@Vsfe>brqPHz{&q*7fK83>TW$RN6H0_I+y`Lyeo)1{?oC5!|`p$~K zm0mpMmIpy1wVX-WYHXP_TS`uO$`f6e1TPYpwBT;7L}R6>T=b^{&(jN3`r&llS-#{=!-5w3O^ z4V$!&4(k)(um8|02jO$*8}sn|3j>Py|6Sk|`+pAZRMizRMd3a{h*aWHq5Ast=(6pLu_34Z89`5tix=hA65%<^ftlEP31QcfqlEiQ!Xk zS+~i5dM>R((&5?|NOCnHd*M;Jdb#~lhUIzKCG?`g$q8L<$MK>7q6y@NWdcSA=IGx^ zZ_MZ9>c{R%EBKww1QBg>>JGxJKa0lbo|lV?_Lg7kWMJ*giY$9=BQzhj=m}*Nmd9zL z2^^w1g~A%qw=cnkofT7D&^~^fwK=KeRbX-@%d;ozHgK@yLv(lmZRs1G_Z8~B*l-={ zLW;AgchY9A7VMaj$B4FOU^jRHHOQIGMCIL>x;cMu-er155Ls#O7;y}ZubN16oX4*| zLDHHux-LSZKz8KdvK7Xa7H#wx*-Myc+*?yQ5+18yjBjG~InD}prpNC(=Wc^M zARw_mx_;z8`aF8gS3}d>*eTj}G(ioXsO>II_-b~C3_3gh zMQ@YtspUCQgKfncby{1N(kjQuhf|3{^n_wShebG5CQcuiKBEL_h)Ur49k8`9KH*;1 zX#7XoDpVur|NyVDI8Q&FqppWExrSCzNWYlsKv4Vtf_?wj@7)P(Xe- zsax3|=-5B*iSKn1kkI>dy)tGpj=Ru+)()k1;xo+&S5Zo z@KMj8wDR(_81FnYJzo8@N0tdvdHV-!lzC&y52bM*l2o&~dQ3X;bPT>7s?Cw$Q--5_ zdnD5yF~GK0R25UUwHbXMSVNXngPBMH_5 zy&3uad;$K__568*)rFs;OP%K#YUKfRB!h0Gq`<_#LOLrc1`2kr-p3wInfR=X&LxFU z#z!3^zR^TfC4q$a-nx_lK81V+!Uu138?N=cy8}OuPqI!PM_$7a0M_-t_>{}X zUq=x@#5t8_-;~)?*7~hm#FW6pwGuNk=pN)2^r;l_iA&X%La&_XiqGU|$E1H{f}g1a zH;!Y20gV`lE3`+>*AWRvW%hv?I|g-VUEa-HC&3s5T)i?yJGp-W|8;fKZ{j1$eiJ(w z|Htz8@2kiEHFEs_H1+w9t9(!c{M#vW@oPKf`Hmq$6wD7u00GQXOrS3t4h1>`2poW) z%B)e4Au!H}WJ(IILV2J_Ww4Dh0@9{5Tx9_W4*3jVNh4*cscEfkxyhokonXv$%G-9U zgNPOm;H8(=)$_UHIn!~v(>443bC&c+q`b_NUR24U0XynXnyCW=U{q%vinCVa1C`JS zkgM!L;nWB)RCyYVR<+T=RjrCW17^X@{>mH&dm2>UdjiGG-x2rDwL=kIdt5jjzakp7 zv`Qi(I!*RXZr?OXqp^r1HyR5 z24$+lO@+fN4nU7ubNgT#YzsBo$i(2ib{Gp8Mdrv^5v%lv|^EoAX z4@j5fS0*c#Es;l^X#I?4kT-3D8C1ON0Oh zOnHWRR{Tcb^Rs{e?IGm%;wu5XuMl2QJjsj2pL(y}bPiuN)Gy?j-$7^RrL?hU1MfX$t%sX=+U~MGzJz4$8!(@#;F&WRQS1D?`hR zSLmW??7||jmuIgKJ0Q3boUdvi`wfaF*dF^Mq8IpNS9<_Mrdm>pxD;n#o}wF&Uo(CSjZ^f z>qPNKUN?&N43X>%t$qM4!#qDRwJg7jY?SG9hHJ9?zS0DQC@>1Yamzr_f)q}BQtX)Z z4O3md_?Afo(0R}S+WD5(K+UHz^z9t@s5xym%-K;sDoU%kuFrs1&5 zF6pa6#J6URmXzj3cr+ii%I3y#BDIzR<0($Xlf&B5g3vQKvy)6|S?!wD6w_*=i^Bo@ zJ1FkN#yb-grV?tQh7rk?O8mUEiNug?&*VOg?{qiM+?Y54pqI}nyyvb1X5Yc{nny^9 zM{EVVE0mzWK@Qsd_j@Ma3~zI-PbqK5Oml+Nt{4MY{8K--TfNF)!4=@rH1w!4kRq3phM~CCqc4fiQi6LET1^3KqRf! zW%WKYeN?;ukFfRZ%9)H=9lZzsrNPC))a%3~>yHJ&7DGSnNzFb-1aB2ya=qb?z>eJp z$U>2kJ?hD^Kp{NZYdjvL7+eKYA4H;ATVM?Ci|YGvuE?4Bz^lg3lAuiqbdqCe-uy!R z#XNS(IoXpy_VyqTa{fS2r`yI;!rLg*1^(E!ORh+&(k+bnLDsevQw{m{$wJ*Ne1YgW zIJlA6jg?UYE?J}TMwfzYck5k*B93RE*HZ)a-f>Q=W_iob#K$0yxX z5h24HUY&>DHs|9DK`>yPjyj)N>v+xC+CuK=G zE6U>VbV`LoM0TKOMqmrk`tsojoO?}xnudqO9<2)rsazpjS6QKN!G=YXM zB!@Ab6%kEPL|DUNyja3!STwPs%{vi~b$iP)^Z;bSv3eGX;l7}19|rhNHq^D3N>)-( zP$%ulG|%&=WX`1(u4XjKylAO*IKHKGarL0EeE|oNyIq@M)v3sohL^-in^wW9k67xZ zut02OqbW(b09!~xle+XF!_f!L)U~@Vw3b1G<8lp`<*J1glSOiFUY7F>1Xorad!W#A z8H@1R!c!T6kOKQ7(hzxkFNK=k!!T=!Rm0=O`0H9Tijc8RJ%PVR6WOAW+R@~fV(Qi< zeuP>th))zKG}EpQAZN{BPr-`09%d7!8yGAmfus>;3oa}gf#L&;5D4;0s5D5^o&+H4 zJ_R6V%~p@J)`q_(^hPu%)W&d$O;1!X8bvU=TV{KV{Vk9Sx*LSRs!DUL8#*frF}Pyztpex$P8nfiG-CG4_7AAICmSOs6)_)pqq4wuFR z&1=mpOekT;lsCtKC}(Hk$S+U8?jGZ|mjyUbq?y|O;kX64zYf&w zqNd>ZA|p%*805gt9KPv zPf2OXbk*$Vv;^68$XOFh$C$L!Y{(cBcL5Tj58Ni;MIm_R|#VH;Bdg$U%x^5!*ceSZ+A^ z(4mr6!7e5BaiF%bG5`*xTSy5B{MMlHU7`X|C)MPH{j~XFn#+oF+(ZVo(skC9F-ez8 zVctjCw6BvRU_Df?n}oED3zhWb25`B_(e6{1Xw9t-KJjSB=~5P*bhoSO82Ird>*n58 zX{P!Pc~7!7d!s3-j`SS=z!WtrwhcICxQZ+jPqUz(h-nhSSO&nQx}{eCs%(rS*~WcI ztD9@4c=GC%%|u?Z%=|!kk4;qV{X&b~kAKv%ef#CrPe>M^Yqrf{@`sk)mKA{_Kl|?mH;a-C#+txRV??Vk4`Ljf592nOUqpRDe9eeeSFX-acA;Q z-H#B`%HdyLvYtQKDt}jSTRi8 z_gXnxHi&?^gA9!(T*CK(=xvZ}J0dEoyl4_k<|yW@p?5PYtv68A3UHSH?Ss4r7Rzp* zUInHo(EI;!_Rc|;bdQ>DmtECmS9RI8tIM`++x9Now%KLdwr$(&sqbLs+_`to{l!G= zzcMm1cC5&ix%XPn`@DB5(|+bh6?&HV5)<{@rP#OuS+W6}MAn-$X|H!+0ddHm6_$`-FZVklvSzN*F~7G>S!Kqn_0D1F?ngbFv-5JtBlMq*{q=s;ZTPcAC9OVD z$Y>*$7PJ(ucPo!Tf@$943a$`+6(D;?CMzCYKJm+1^7D?Z7L-{tAsiUMF%sATIm8Y< z)BRXX*@srI=})TrBB_plTx=0pTHf0UQqdy z_GL4STjyP(yluSbs_Be;mGtPnLU{gu>sRR;1!3H&d{=aXni; zlZRd0q%b`C=ZWLrLD2a1NFbu8{B;>vtxQ%kZ1C$bIkQweWUK{b2~s0u zsgWN8CWU-K_GJ_qP@ctYxceFMb3uh(zaLeQh=DvyxsknrSg7Z% z>DhNRVP#ih2ph4-7I38G-}RF@ePi)V#p;-wuQW06Z z#GpK%EIbsIBWx;2eCJ^^^k2-G2||W`CUhqoGgBv1xf&=Od<9#lcdrIZWi{X`PAucj zTEq%G-re8pM|N{hYRNWDXceUS9j^f$qY>=n%;>N{fsv0FgJ{7av3QzVIMw6y2s)uW zJxu5fC!@IBSECc@@rWd}AZcIi0Y)pgEY2hIn@}bY!k1K40Woh$*T|AK{D$(2w6S?< z=}x0Vq?*X+-1#G`VFF7Ua3y|~o!o)n%K24`fXTcM*I{lEr@~L*Rp^RTw!Sw;c0W2W z51m7ZoUZw@5UOnyGn`YGbaW#28zFreq|?ZHETfkyR|ihJ6Fk_1hH>FMwn&H0eLA)x z)7mj5s(Azma1hpo`->T>VN76nJ$En5d*{)6`N#@6zR>G%K>eD>fy6Tc?W}J1dO+zZ z2KG&Ixpb%IlqMC;R%SaGGwBtuK10>T?Jb@qw~XA5J)^xDq;oczT52A&$1va(m0YSCn_ zb7aL7z?3J1r<9Wn3FjC9klXQn833;S)uaaG;RAH)IHiKUG0t7uEu8oxT08E8aYqjxesP`7I9Nf7dP4&nSF+jL;YN* z{)MF5I>L3<%X;^WK{RTKtnO<*~)T|4`?l{waE#J(t94 zSX|4q$xsJ*stH&h9%1&2CFcumMi=#yW+OTwBUT@%WWeNS2P&zjnqWlJej+J~Mk!7K zp9O+U!98a*b40AnUbjf~JEw4Zw_@Qdgm60B$kle=uSeXvPgnWMt`MZhoYe9!i26kY zxdI;{u4P~QrZXqq$L5FVTQWgqM(`Eva=Lti(8IEmrr zXf@*p?AYY&Y?1k=eJ;uOd-3PW&sf2C@v6pd_F`{IMKFc8&KY53r@20)C-O6o^c|M0 zhzAFYgiZxa>towtb6m?R$kD>aYjH~my;uelGpD5)6xanN*f}J5{&%aSqrox_#sH0Q zL2Lp|YyvM?sMNA3aN^-c`<}8W$}^l_<>9Yk=grQ);cVaYggnW6aTFTidq&4katz#u z2A6ae*Yk9Us<)ySV~6xKu$-#M%JR_52sQ~UY&93Q2>p=|6&HAKX~OSfR5B9ftdobt z{}vX-cy>A|Rn-Lg{egl^JB{^)k&ZIGY>l)>J!}VAY9#h0VU&z8qLBx-XvyA9f2co5ajx0DwjXW=!8sx zHYY%3LXj`sGk1pzBpC)qJ-Zp~B+?$=)H7%^D^s{e(T5_LEVPw@v zhjN-s<)$TY$bnVwhv7`97rv#=sEZO)9FDUB^3=ZgxqTCdIY>ZsXK%U|ku0xtDI*6b ztccWxI&R*?nt|q*##(&dY`NKRZ-KNhf;ASn**t?*hJV-^^~8eAfR;79%ra%IR7QmI znwM57%|OwbfmRVsuk~74i!2u$f(4&Qy$fgdZ27Hc6?lz>Pe)l+*mEQ5i&_PdEG(2D zOaz{W(!;Dun3i=T`OFj|QDe^FvSwt{k|rXNa9dX8gI_H^GC&poN*U(fvD3*z;YIaV zvUpXVUaz_^9+~HwwMkvGsKho`1=trUrdaMT%ak zOBs>kXgwUg>_gnpgkh%sI;OU6V9V$QHCv-~i~3e_#&}o;RcMCuz@+lPBnz(H{PV93 zqcE#+;jKJ5>zR~ePXamGefP9CVp}&y_Qs7ssp>hEhFlw-tgb2-Z}(z}UEWry0#3zs zk})OD`>NdyqFa@R1C4IfQ7y8~;KR(aM6-27>RBe{Y3F7=#A7QX7QtjGU7ik-X4{v^ySG}+P+{3f(=tJ5ia}Q7l2eIlOx&cwXqnCuCJr!t#umjA z8TP-CLyI89H9!hZ9>&Rbpz2(V=+@vGW;eyKXQYiL&KcC!LkTZUq~>e}?Hlms8zvhN zwxM!d&@mr2OPACCh_pkTH+b4tx!|*!Y1-94{YYA~KmM^r0_^lA zKtW?-0YjKjznD(Jfz1&5&OsA;B|>CbuLq%Wha0O>tet3=d)kA2^r5T?B?})MtDa>| z;Y=O|b1Ba_o+Y-3Cm1av3Tw@F*PuO8QX99HKt7vYhcNeQ9fL#T@qn+pye zA;74}x~H%nDtS077Hc3Hj@X2V5cGx%O920Cyd&qQu)s-x3%z#a21IQPJ=KRIlH?v6 zWHcQ)sXCJEn1Us#sjU$0bG>xfarBD+qCj|sPGM||t>#|(A_uiIt2~~8Bn^V!8eY5y zo%knpUE?u%mS;BcUtEquoyZxT9<@v1@Ho0vRfc}*QRTiQY7*IBqYz@F?ra%G;@Ls9 z3R`Mt*a^)sTAt|oqU#VdIM3J6Q*CM}yv@YoyfId(GYZV7vHLSo0SAG)YdQWs=c&^81CA} zzSz!bbPJ<>!B^dT8tq=k1G>f0zIfGNy4#F)i|_IK`fjTt1`G|4v-;y+OhbrnA&757 zh;K!SZ-$>Rd-NTdAp2faU#lKj_ zzhK9|XvV*A#k=u|f3S#q{U8ylgF(tT4rm#OMiwY@7O;!4++RQ4VNE520{E`Fyj1vp z=~wy~0LLRK7m~&Y9k>f3@r+1H3GhZmNlB4vV`$F_mvJ}XQ0B{;QMp^hlOrQ*!&7yx z-B?Sv^|?#5ZuG4>_v_}Ne0z0 zcFj{jImAb;Kd`evvgy!TevrAsw@6So_?fP-RjaSA?>INJo;NKvv1V0Ha*(*3xA9V4-`&?wWv{>Lv+A>e=}Lsl2$pH3!Iyn!Bg5Ejbp#*pM3T}DqIj3 zj?UXbQ|>zo@|VDsPSFlg5lyE~D^PlC1s`=1jya_Z+MG=qNO&)U$z6@b$?auVXpFcD2VZpTbX_QTV%Wv zQ;AtA@JKMT|DAg7Va3x9!us)pQtH18H!J_kKTuYk zU}sSUeSKgRtlUu|5%isHIJ^&Bi+-Rq7|tJ&n`H=Uq~TV4m8VDRVDb*W{V8Sd8Eq_X zTYsd1pzX*poNK+-^Z=cF6P7CRHQXmtd)7FaJsfMgBl0-|i+ubPSV!m;yqKKcUpw}* zhW$PM*H%OGeLaEIiZ9Jrc<2{IG{Ni1NURM%4DT>j|4lV4W%eI$018WjiVXuSYY=95 znNvmcqMyj%1IBDeLw(6X0~tKP2Fg>l#E*Fa_c0kn|H2lEEfIa#I-WNx{{qJ?*vpD? zP@0uQOGyu_El#PwCD?hwZex}ntgQtuxXJ~WIR4S>9&FGjC2zqbt{K<<^usiHi{ZgS z-B#VjN!a&^v+GM@DU&~YBz9N4oi;#!r!oNJ&7uTbFzryYAi{$=#X`xvEzNFOqd*_S ze2BlsUkm1QnAw{VNv>Ol{*iuWMR1GsHOt7Il*oeU5-0hPlmFqd34TdLEM>%- zch6)nc;WisE&O5qgrR+nXo%lekgcE+8`=#|A$pEYGzJ=_${_e>d1QX(7TFM|9)Z1D zaZ5|>1r9cLawa6%5a_eP6om?dD02KjH_Ul{4A?20Y~(2R1@51{;nw7z+iBm-Y2*I` zcK+YdDA9jqZv1~qDFmGzooucD;iGJA{*&)H{YP!|canLO_>^B#vQ}6wDBOH5zDY?) zBb)>!Y$-sxOl6i+I+&3pZNR8+FZ{jh`n{_Ft$`+dc%O`Cm~U*q)3%sE9D=*#v45j^ z^YHnqUGm#$)cpmoN96;PkBCWX@-rh2ZiagJK!?#rrk^Wl5$uAT#7KApW= zV?LeTTV=2su-eh!$F=}Aln#pDQK&E~tW2>Dk(J`(E#_yhY8q514*>zq#N_P}BAi9X zBz|ZlL&16Gm#JvdmPbm=`iF3i<*ET}OqIq?P?N?XwL}`cdE1%`lZCWud*aC{dzIEV zK}pNdNLV4vOi9yNWoAu3H?^4+&5x?469d=zIJC`^Ssx08y(FxR?DU-eh6Xgd$1Sr^ zNxIcgt9tN{lRY-DrY&jWf+N8aM^Y%(hr9P>wlTZvo_-sa4(r^hJSxf3XBC6dNMunV zbszXOxH!s4Vo0ec=L}b+Wa>4>>1NhtNxi*;&DB1Uzy%_B+!&e%wKwKjNqdpUiy=KW zWA)Ga2PX=%@r@@gimenRW6a$Hm#2z{ISpcK4FC2^pWvk^gUIo;-m)+ zRo1=O|T1tq7f1v97O1z5NI zn+2kJQ5iIMqI$_LpQ!`U?Tw+d8IBC+vitrkl&Nfw?xSE&(^U3?S)Vw(h@fOaL1m50 zCA7Wb9u>|p!NegtWwrfFV^ButuRvE}BW_ItlfONs(fH8TTG1ZoMJ}g&mQx~f^(DW6 z*Q<);vaauFGLioJoPlCrxp4TXe<6$Udk&$ge{X&OE-s0~4C9;@w81;L2q{uvGae33 zG@J~3RuXrjk=&b3`M2%1#-8T38ZKRWSb7{t-!wZ&L;f257fUNKBbhw2Q>{~%n(GZr zXJ0lMv5S=?j0=^gVp$I5OHy6KUeH#Vvy~k&;x?aDa|^xXMXNg@FE?eLDFt2OPDfCu zWE{>2=B9R45|3fMrJ$oZ;^p67wMEMGjg|eqRk~UJ@paLvGW?hfFi9c+l1TD<;4n>{ zmj-P~1_czZ&1}8d_-Mx#fH<#fS@hWq{8BFog5p!*kVMoc zo{+|{7~12Axq&BnA*ADEQY-pJm>~E-I3xHE&_Rtq{56I|-YNSF>;W)6Hoz^Y8@2Shx+gg@5Fx zbX0Thy~65h*?{TZ2vNS1aS-FHj(3I1z_zj`$-uUc_%m9s?*Ndx|771$vqd)(Q=dGI zcfr3NVaStil*P3M+6YG!z4O_t*M26mn9k4ZI#qNlO1n41LCER1cuPOg6x=qxj}0c= zRc9785z8&UfF?R<0_{A$cQB*ZVb(-at(HzCI$xkrMZ3*VA89x-gGI^eJQu_|t3 z@l_EtI6a<5&y~b8)@8((EeHdIXi7p2SBQGYe0ETvMw1alr0Vi2b9@*5$cb>d6>UH4 zv0(oT`({Gv^`?xGMMpGBh)?#)3GqnhU?g?8hTuu@6$YfRZK z-|5&MQK;~MdntN)|1Q|sQEgf^wI3BubgZ4H+Qca%ll;0A4>rr!y14@OyjZ-iP+jjAId-i1uYwwAVcRxUvI6pRoo7w@whfDbMXzinwRLqz1PfN zEgJfldBbc=AYm6`453gXvs67~R7MaIUy~wD*A{vY&(s@ASFdYgYRo>wp6wULCgl1fw|v2er)%!6^%oFBs*=x{|d|UDb_~rX?%%}to~NTs(7oCvx&JD z^hw`!OYR>1po~Mci*Ra|aLsUPmUInqa+P@IIlWS7(fqoOyV3!?qjc#8yo02M<0tL_ zz52=(;~^>IskjZqq`4`z;Y&QHPViLU2>qzPDKvW{I`zTn`TY_W>4ViXeUsRegWmi4 z>JS*Pp=V(umyJz51t($jcb=AV#F~a&?gh}t6cqn-Q}VghXv+`Mm5c$~*d+QAi{I6*(;%6gas_GY-%aBS&{|GcK**n_I;X2VDnT5xra< zPV(&L{tVaJ-4!!U*)c$O1yvOWr3x^yJ%N7;=Jf0npt4VEW(^_wtjgN-p4@Dr^%3Ad z+3f9-3z3HUDPeupyCb0@C{|SMcXbq6<#(j9G}lkr@XXdMB#?#6D1RhjU#UHZ9LD}& zPdlAF_4H&SI^mWgdOwFcQPkaBUsbYcq9cQGJo2nS<-i&??a?MEP(duEhN-nV*UEe% zG4UNu$a9FH*dk{tK@P8atX+8EfSyJwUyJHZ#bZ?{OHG4>gBwmcp$IevAVCqWA}uRY z5DBZz7L$P|m{|RxNW#NoO;DL1`6wn>T}^aoVs(FQNEPgFWAUb560Ls$)Cx^#2(ee& z{H>jIWK@*4F6OWzj;X#TdC{2o&1&kUNv-cx7y=$?B!nNzR8%(^d3LMAgNb~B+7a?Qq5ay_Ndf!N%5Sb)pt(1)r^u3f;}+R*;G3L#qXGa)R!zNrgVHM*kC zoNTmy(Cb%;e_Xf`{Sfc3aFg!Oxy2&Wm}(2sXL%$x#QF;8b`XiOv0^e_KYz&xX1gg4 zZVq~1pX(&r+%9?#ak`dx#@iyESUEO#K1Z|M#VFm)antSZ7K%D!$eQToatZxe+=^VE zWtLvGUY&JWwSU3-#9Vw)JI6jNaaP~D^aSAI8%3eBt~0@&D<466RbwZM8U6)P~X zniZ1|6Y<%jsxVmSH<;%nDwC%$$4Z)Ij~bFxrTr5?i7Gu)8jj#s4p0#E%6j~afyOEE zCu`Nt&)4X?`y`QJv?QVecXYJT7`_9(AOW<&}^ zWa=B7ilx*d8yISnJK;muE*C9;EuQA`n!=g-MB~B3-LmbZV6gmY`j#Dd~(K5jGJF*4(LjG4Is^53nB zYl7N;VVFQdm8`YxamEE&;j+d>~T+{0D-Zs8D zo#gqA-mfJk;~q$=p8}a2C2d<5&e>P2hho(tzPFCrhGh0%^(VT0KHV#1|CR6Co;Hu?`s3x#E?_eC@mB>*97kN=XQLLDtrGH{Z;aQ+ zVpKE9;m7vk6p<$sh$qGFpBO#7ZXSr&O}x?}AhqB_FUOFBMPw?Bnui_Mp-a4t-j?~m zb`1Re-p$BzH=2D}&zsuFcb*sap*9Ev`e=`vUxxjG zF{T|;fy+$M?l<5=*gWi0ZXW@3d0fQpvjo3f{)!eWO~h?Qi2pRqbH?^e6G0rjnfaj@AC4>_3tXF zq0wJRU*RVM-l@YyT2=doH$ceci!e%V64q{eo_xY>UN zz7PFmv^1@?<5)uW>XIkZ=5dNuXEu@h`zRAIaXQnd$-otO))^{|#0GHL&u^(#{~mK&oe5OAtg{nBofmugg$ zaGs$kk7z10JON%5fUuJUV#y}MdTT`Z)$4wprm8=gFXR$ z<)FRO-g|$+PkQ52I*`ikQXs=Cj_snE-aSs5cQNCKP1BTjPZ;ewYD7d$z@7096?flo zd-|m|ZC)r8jgEkQqb*l?MMQIdMp|jr((A znSjRkBJchp2@W7-&iss#Q&ihVbd3L=HuDj|xW-${cj6GOJ(Q^*4X+3i!=g{M2+5Ic29 zKK0;5?6wj0V782#Dd8`j3BK0&1G@Luzt=I$j@eUTe769vVElIr#{c(q4FB&YhJVun z{Ko=W%C;)9D9Uhmf|Z)f>JQ)mjVeMl0e;2Ad{ha58fBs`^xWEZf>98_i0#Ve&u7Hj zhNH&eLtc#cN%#Cyp7+ews+EA23kTjI@v(`?)0FAe=Tw&Z%l)8jH%JSRswiDD%Y&Zq zFy&IAddg83GeY5NtchZJ$eh*bH%u_HL}cETctmC1wG=nZR`*yHeywZ=UJ&0*GhI7= zrJ7EeXo_Kxz2(0Q`j~=&w8jq$~Jk|>F8vCmIj=}HU(60xz0RnQKRTrrnC+@ zOjvzHN5>$p;#1)7!F2}h;4kSAO`AoR4iQjC<@+~KK!cfj-)KtfIrN>T=8?*1?WDp~ zm2#1%jW44rB1yvWNvq|WijD9SutZw%S`y`RaKUS$tY|HZagoLmA0sgnV}erBvKD5+ z`Kt2R2C9MWe6f#-IIoO~b$BQZ;y#0GC)m3CSQgSN$6lGayrApz#947CrOyop=XsX1 z=tYK06sbk^4W8X}Llb6Q+Dpe7?<2F9|9Yn0(uk#uftamZM@w^GMb{Z+_*b-Is5av^ z*l_hrInA6{v9l%{cL@Fbq_Y(pn{K^?@h(KZ3RZ$g^i&=@g>8spaVO%vc%1M2Z;S=<=zqlqHcr@jF86t2x|NKGqd;ygh$kbA&nA`h zQ@s+j^;3N!v~wL71Z%AP>f%fzG&UEmhJUOwEokxw@cLzY!zbguqlV>_rSz!RWr+cg z>B=Q`=TZFK!HIfY?!1NH0{d7J&Y$xPRl$NyRrJ9(oBj$I0E!P0(w+db6Nb@tu81u5*`jp3J!dK=d+_iS4DK(TqFIBfwSjAqbgxjC4o zdL@mtV%$9--of%hkKn%t#QKHwu%2eN%>o-rWAsx?>-$sywIge;Xz!BSD(G*AQ(Uy> z{yDxC_tS*2Gv_-uJt-cL1;jDYE7a4}7H5nwYYXMP)fU^+g*x-<%n=>9$3NIa7Dh;m zpC5oGe|%R91ApoS3#cBrvdccEh4g6WKPhzQnmu%nvO>>%{aZo$HIkoC`gfH2FYJH! zX#AHP760z?`;Rc$zuAHRtH5tC~Y0Wm0~zP#L$QT$IANJ%|0;-7@- zKfq9FM@e8OkWBUE-Bq^d*DP{My}cXHEE||AKG7LIL0Iz<|{Lop;%EZ$W2s+!M5+`_TdJf-IGB3!5ETt zKdMN}ec8uE%U#ifYQ_qjSDKgW8;ECx5aM;2lqY8V$*ucm6H=9GB>fcTEx#TWB}V$O zuf-S|XX~3-JXzm?!HTNw!6MoyuerUK=?<35xY8{S@!nf&I}NSA7uI?~m86+n!2-K_ z)0=_x{PZ9;5JF*32@=d`CNFJjj~L+O65KUA91>3gD%dPhz3U96L#eFPrKZ)KsEEsN zjH|1o=dv0dTOukhg9eYrP0`rzfhW?ykHp$-^vGb?4s8H&Y&>1FeL9C~#vGQC%rI+@4>x#d3j13Vh1R zE^9v>xP|h{$%A9ZdxOwp6I{fj%qbZy_jO+l>cNtY4HIX<1%US+I7=!wC2KlDxF9b# zpm+GwpfCj zinONIOOk`v9pwA~Um%YV`=lQYdfj-2d*oy`W7yl|ED4z*Lv$n(YZXi)^()%Oc+OA( z$048uRwpyks&%Rc=D7eDMm)n;xTBT&AO&-{}jr*h{V_-*V5ls10_gKgc%QdW@d)3v0OyzGus8HuW*Sw+xQ zFaJC&^z-83T$31-bwO2Y0U!v(arKB(SerHoC$Am>@W$aXbY!lqzyEO4qya~*-cJav zq@AeCrba~_!g=1$MXWmLbize(@sywFgX@}Fl2e=r#e9?};{R=k9-g9%U*+m@RvY>g zGc1_X9eR#E+S_zx&c5i8S|m|=b29sHxQn)q*j*dv@+$k5=>;UKyys#-~rAiFh!Xf!g~nEwlRhy2_#)8L;0L;g&-{d>h~)D zQOU1lnSSWw?!zGQo0MW&Wz+1XctbWdo(#0^0a^_&+}}J{F!Kk=Hl)uT$h3;~q*Yy| zVy56^MUY$09xa0{>?WY=0~Va*n?$6B%*oP=8uu>z4mJjpd`A{0F~!r+nT%%iYX?n1 z2C(|hylG}6#saAMifj^yE{4=YvoKZ3RMe}e*ksCLtEkBr;e~Hno||r%-H!XuZi7*( zgS!YX1=uya&a}KX9sX>aZj#J@$%3?B>alGNxl~EniuKB|uX87&Tp2c_x_3fh@LO&P zc=yT^UF_}lYs?hsUmNn9VDQ^-p_&dn!mvdu%Ew6ccqFyKtgYzwfDb1}eHs`IA`2+6` ziY_Lul0nUp4LW)=9|2`&P}{p|&0+BbcX{j?3}q|C;I58K_K|gfFgOBzy=~f2#Dca3 zBVODjd89t?V)Llb>r2OeeeZ}v&nVQQu=Fvkql z#syZID(i=(>blcxZd#}3`ye2hI{1DD=z`z5ABuy}pgUGyN%@hk+|-M=U1N?mr#j?C z#?OMAgH))8+(&{SiTJ&F8(}zyv`RNy{P)&M21vgo6ILnbZEAPatX0M=d(=Jf7qVO& z)%S`WnyrScyYyK48=&W_#tv1Ct8$ha&!U6M)3u$!O>Sval(ANGBc7YC0u6%&aWYAw zeb(@9l$s#avxnuB_UtbF#})T>E-x-e;=oi}KMS?CMrv~)p`wvQ!xYzJw8)ZE*q?vN z;%tz3ZFb^*ni%1BQ;%{sL<}7mumCd?`^9owDhM&X&5vl?QMSibY=j6L`k+vG(hIFd zAdc}SQXu3?aQKam{Z^t1k*na26do&3EBgShNE+5Bm(}aMBL=1xRqv8|EdpiCa3lYw z&Z;_?LLwh)U{vD_ksp#sDd`L;9lDk(>I@1TBA6+Cg_0(x)O*Fr0Kq3UHuA~G&Nhxa>#5WZivJxN_6PE5hcxGP>{xrL+*bh9 z*n4WemmlU>Na|o+${}D(G+u-Pt|W{#O88)d(mc~}{ziitG?2m$r(cd;OYN+WF#!w( zFB%G5+*R3Krz<>hLp*efi$|zh=l25?_6Ihiw}em*;;cO3TV`k%VZLE%uRBwOG2J+f z^5I{&*;h4vLW6KyLJfXyIAFyzA!0ux$E7rWZi8@lq~aB;-v!jsWIn&S`zN4OdS_t1 zl*b)`@fU$Y&V-uMqr6xk1Q)enRqy5Ujtm3V&=nVerA*!7$DJ+ofpflta}a5elv>4@ zp=ZQ7(6Gt#BL_@BqUm-Spccp@6r}T$n8y?U7L#-rw|@jw5`TVBSxJ$#dzB>eU@2Qw zKqDV=$g@T%Kq$CC86ynQJ41?;3NmQ$AQzq4jp6%KCYRK4Yw}S2c8Q|#ET-{HC-H1Z zH`zsqni-xs6Zc#DSlx<(UrJ0M!C*=aR|qky;Vlx^WPg* z^g}?2I)IGRSaf!FNa<@zrox-`d1c5a zOq$gWmTE9+STj(f-W#-q9mDjB@(qD;p)&G7tztE(f8Dh;N|fBCWLAGM>gf>TmPik~ zn+-%Kyo?*nnGDq0N~WbyJsgXNvlAm`M20e1XkSVgq#}$RjEA?SA=u$(F_J%%(I}W&(m&a z2OO&4u?aLC5}Iwn(cA22z5|JrH9Kx?0wIhmQ_Cv*k`utD z)LW+Ww3DvZTXwLt2Tk}36qlS6k4Y9@&M1$p16}NfZHq>im_rE1q7G^6wqvU=SkhTVYH?Sv z`Wbd4mubRt{sz>S#%3s4!=p~+_pK_a&3~UoLj)M?%$<=0+?V}{hMvyr15;`Vg~l$m zV?d?N?*pf_x-bT)X7vd$mNugyRfSn(#1%B=*EFGgHX37;(Ud6IZStl!!a0+%)of;M&hH40-eCC#v~sQlCz_n_ z4Vp*@+JV?i{H)BdjQaORrcMaz*26B~3ELA!t_bTcg`Nxv+cQS42t@`e8S^X9&DL`Yig*NJsN6*>RYr*qj6tVe*<&f!LdRmR_{`Ig z7kTiJDXGAV3--D=9-$}bxK0V98pPFep(pUTPH`h!#MO17C%iaZg1YCh3m!r)0V8~; z->htcMvn6Y?M%3JTnVw8fJ>-u=E8Sl3%BJ1y1z!xswi8qX%>?Wxpf?zfWf-{vs^f8+It)l&%*-moZ5)lso)Z)|qin zqWvv6`Ma|CYh&X6dFAAHN6d4b!xzv$5Y0-hZw=NrK$F4z-z`H4|6f8h|5MNVpZ4ma z#7!Hd-zdX>Lt?bmX5*KdC{-+r&@?U;D$v)$%|oTddSYgn8Fb+2&71wT8QT|PTu%UO zydhf+VIufFA&lAnaOQp(iUKaj6T5ufjz^iRub;>7bU!jy8uSP)_p$+yD%2Pwr>a{6 zyr^~kv`;*UcdehH9=qOi@IpC;_BBAxN|EY39pR9wPf2qcWS{U4vQ`p&-2(Wk#Q$;kZz07)D&KGO$s4k=I+gWw zvC0n`Mi~t!Wq!cz z#f3&kM>OQo`{X~k#L6Oga}K>}6-_;_5C~{8SuFu^92Z`WwaYkBd_HFKB3QEy{8kd8sAokJBk8~M`EY#qTl!cM!`T~38O7XEb0&{F}maJ#iV(`aJ~yl<@wa z2TA;28KnO|PW?Y8eO2PE>^%SXMqG{6WvU`1vJj$hW}W{W!GI6}@i=fWXdI{@^Ow_k zy8MNQq^BVLt?!)fuh|p)9eiW2WtO1GA&g(rp4VI6+sB)m?OWG;+rB_*0|t0#5@>kG z`g)`Y$i|;#YN?I%rn?lqTDQQmRY>4tN!kL%v>CMeX7ex`RW|Lr!M4Kvrqd(EPC?yN z0s zLS>L3imtAAv0FeM??)qzRgJrdmd>eLnd_&~Uj)%2)P&S^(g+McLS2uQSYfX6Tss`z zy|QCFLk^;F5}>!_Sm={SL)MI8Cn2cD(;~a)xXYRc(xVAJ5BmS{Mr^oXi}GHUuVjF) z2ugb(DH(xq?NIrp#AZ~jyzEIP*w^cR>Yht$M**eY8t_lr3(@%X5Zd7yOOv&^u(O^l*VYPy z{APJUMsSyN9gzKljUL$B*Df!9N7+aX;lQ`YjZc&e<7G{hJrc^0M_FKIiTvHkpxUd? zqqj=Mn9Qf|WY~)%a5USXt|f{qcNfc$6lp?o$t;P3%RW+yPc&;cwFC#*6X_x;Z@`+(&;}L_(OT&FZ~3InT$Av!@74(Ukn=3&GsN((fs0}1gx7ksFfHW7WCz^<-8=GGl*`q%fs?XZ`hS+PxjOtZ{JP1k7=1(qTKU)Jan z*36*s*dR?8CDZzCik#r$O`$ z*`IPe!4^p)>m0Kdn8S$z%bLvwNG@R0wJP$KFjP1ekn(2fmoAPa^wSq?pbO>orYjtC z<&3jHGY!q0yaY5pXkH}N$qn%e_(}SzpSA`tUloFrXbYqt!--p}z-EX2mJ35`J!m9U z#5X8&%9xlO5hh*A;6HXV*7Xs2LgM73tS;@StQ%AYps~Y45f*05V{b?2D<84_1<4lEezAINH_;O>xUBkfa<`=4wg`4;0?;}&Fi^4ui8T}Q z{#^Z*UYvm}I>w%3KBlcDJ9N69O1Pz{ZC>FBH=JWbJW&a$ z&p5+~?mk?OQ{EPEG{hXsh^m5UX>$a3>9$;1E@)?7Bw?LCnethGQX8jmSjp$y&x#eJ z%KCNzFuGW5OA%7hciw}M^5z+p-#ta-f{ojAhi`QXS!XS2QvF3_U{K(}7TLsUE){Zc zO882c!J@`C)Gr<_%at5pR%YJ1A&Sar;h8%vaP&n_nv)y{8~& zKObLmDdOa$6eEh^i86Nx6dXe5Z z!R1a5FszZUd_nclMoFy?Atja>U+wfGmQBuRC+L(-^)bEE@+ti!tWZ)uLH>v4OLJiv9QdzifrCQvNqb za7ooxb5i7JF%%`aCBD zo(XpYbo3^3*_7$=B!|-z*Usy-vES$06HYJCm5KhIC#J+^7~GFZ!ESI2X|1$6dMkq% zf-U>jb5#$Uk$#$xMgNgF9VJPSn2Ai8Ib(ZC?ImEj=COM?V1+Bz4ouFCTHl@SMod)H?q3CA&_cjEvMtyS}?Mv{{5W3paPyWY3xRKjy4P zmi)4TNv~glvNTk|OaYYs;V_FZW%&I{J%3_?&Z(GaRo46s@<5?QLPm7(u%=GU0jO8> z)UMl|!5uJEUp$EIC>~C1p4=*^oQeSk?0$E!?K@?RFo|E*O-?U_q$gw+{GMh$cqph5W4( z!6(OX**fOAk1bTObGF!M7A!8$Yw1`erG!r?O9Z{55d|n52(1gr(g|;& z7NsL{GSMYU{!Qe#@xZ?2{|!I`{^d3JZJGc7z6Sr#Q$YNmQosL`x^cz{Sp|Ni#}4uN z_(vu_d=!*r+!WYq&<#<$gnmOUJPd)ck^Bco$2&yg#dPI8(O?BQkNaF8?n53pkGY0s zN^72q<7{9`@mGRL4_l%P<63@YbaHvlDce@=%2v(0&EbrnukR0iWL2Qpeb1~xZ=iR1 z$vik{!A|nQ0(iC{cZsmn;8u!3D#1?5K`X&d+CePA&h+0Q_3jlA3ef>#4pb2vFbK!Z zws0_Fb(8Q^=1rO!6_xaV7DD=}1Z5g*Y?-8|%|(|OA1#+%v0xV*>nlp@U38b4sC`;o z7DjbZG{=;nOuO9&qmYIzxv>d6o z)W@4#880uAtdy<1C+4|ZwlbJzsI>JCQzmIOHI5%`M-)h2GmI>fX17_*!HN}4Py9wv zgIHkGx024;OB@`Mv3|8#XGsk)V{1;xPKepwkP6B94D@{m^g%o2q01Ommvl|dCZl3J zx?9dMo;w08#%ccUSdu_1>bXhU{Fc;ipe*pS`3h#Gs5*%Ty>Fk;;k~@!#PNBH_(9J3 zT2CcR=r`3=MzQE}u0dG};&qlaq~@|ve0RkdU0}*3vd~_rae&7Z?cpnib}V?BjNL%6 zBAHb~ot9)VKwMg+ZhyoQI&ZMr!ZBiXXrk+2Ea)JGIXk}0^dy7ss-)D`Y_xoj68aYF zx_BUk%$%XGzOe`Ia==4qq_!LqoJYX9K@d!!z^GHvAK8vR1H2I}8;*Tg8%Z8=~(>B*Bz&agv4*<@@UTd8IgKw3uVBXz{L89}Zxd zFok0h-N$ur8&YyQR4$w`M!D`r419}|Vngis)G0~c5`4?O^1@h)m&hczL^1?tgiTMx z$kV+}-g1~hL&Zf$!N$3Se=6U`faLTu!2_hTFOh8XGCzMCAJHb|8;xY1Z1WR?XnUYR z9`b~bxtH*YcJf3PB4!I?1~MiQYry75s#-XH$dG=}0~`}cabHQ{58n}cc9<;p0POzM zK4ylW-isJzzzqJDgorRtz{1IJY=_uZhthy^CR6fGS`C(TC!{(2L!!atSdzn9v$Y5c z0T#Y9wFRm4a4v!IgGQO41ii0?MeL^_CJ5g(vs=)ID{fHAy^V*J4$)nS8i+>hQ781+8* zQbq&tMmLg+yM<=JZ8SL$ise8F`j8y?&>CfsdmYj41;umg!{b(Y0{A>I&tVaN#uVL+ zkQS^HmbZo#5bHu+-*gFV>n-m2g*v|+R^j9TZJE$nN2sidF$z8RuJ0J(GRzZ-lIQqJ zMD0?Vnl!Hz9b@Ab9xpf>JPM5T+1}R3;GII1NQhC2uF>x46F<@Y11jhueMwb(%N>FL z!betegMatjYMl`iOH?ER}D{nJh}0R>>dPx@pN1(gvb&ufztlEKU#_7Om~E zp!rwgcdA5sA`26w3ylwu-Vj~2$=o6MH|Olw_H6vyS^UjEq4L6MnN>>b=E-0YS9yrjbMLkRhg&dv6zGqzNh&wW>yC-Al+2XCy36CTFuVH!?kD zNn(Ta$QnZx4^Av-Lb17UWMnl}SAx-7_XDWuc!}0+k`Be&qo$09Kplfd<#>b*s>N1I zvX=JIoT!t$;!+02!7m3Tpsl{@%VSX&ZiEv%6`jiEERKa#AgNN$LY&B%%w`>~G=vux zKiAb3=>FN}->Qlzj!mW39gfAiTk+c^ZGc(n=E@VwW|^5I2j((|SrB}AUM4a}05;B{ zEl4@(Y_eH}r$wvT3hPn^8CG-oLi+IDVuUvagt0k!pbJy&)-e$9>m7810V>XdkFNHX z2SFA71MOij6!XBZZ25c;qo~ad@D}GK3~TwarM>80BC^;-f!Cq7b}fekE2Z=K8m_+f#-gn_U3A7QSUi}h-FANkT`VJpX+xkyFk8oKR9hvMT%CT!fMF*I z@K*+}2qIIfr_}=mnX|k!*&Z1c=uJK{n);m=Tx)r^H6wUiaZ$_7eY^;&Oc64Yz_-Ryt z|Gr{AbVR{fJQAI4i2~^?J|Tzb2_TE=5-7YN>GUip1F4C-CK5J!1szlcsC);00rTxC z%OM;=TYAuFya0y-n~%INEDCA`RP&e{5XYjcaWQO%GpUBxEvGnCAr*2>uM!WdYKh_s zApmGCNYw)|2K)s0_!*}?qN1LN4?0&CquDp9^w}E&bd$o^r3jAjOVivBf0VIbQ6#K4 zplY8%r1rxi3vHT{ku5l6h{&q0b8;+)$A>eyh8wh)M7bHFJBTKu+iHRFR3ZQ>$X5-_ zL*VSMTGWp`aQg2&oIj>yk2B3k6DPRWpU_H%^)uyF0 z2|3R=o{Ye*(_(6wtEPfBbnJJfueb-1s6A%z!YaB){6I#yZQ?PRkYkPfY+e&}3T9tlQ@QV={?#*fah9Iqr)+I>YP1BLf z%`5%dg_w@kEt?S@*UgD7stfd5052C9#(Aw#*hVeR^TzEDHzMlVL;?Fkfoi`4h{cXDBTLFC!DzfRX*_gEk~eQW z88dr4o$-SIoFJpr;tGNCGg^|MpkP7rq5&arPzFCe?rHR|=Mk@W_*x_bfw&_m$rAcM zMWl#Jd7nav-%@h`*M+fO7kZfaal^yGig^_hth*OUF6sMoj+3pSo&A~rC4+-} z7RC@MJ32qc%B>z;D~!XOp`2ONP^m<=RJa&Y@wn#$yk}2d0=qFvu(&5ry^IAQfb1*& z1?p8eCr@7;pFl^w@Fcx_Qm9bKMIQ{@$CDY*CM)mqcS zM+n0Oe;M)gOQd3F_LE?Bem?-8ecoryJAn?uL)dd?FrFw}+tAuH3StB)oT1(ey)S3^ zdOpCJJayv86Y;gvG3kK%vRjm+y0Iu}axP_;fn+7O)s`?GL*|0`y$F1G#JtX(Q6{L# z0$@TSL7VJU5GUQ_Om+{tZ~s6RYns$A9CHFbUgG9Lm0qXK%CVe~i;g#Q1VuBlp*0^~ zS2QnJhcCyd^`0$MsZYHJ3H4*l`et$gdc=Sl%2gdEoru>;R}*YN~+ElrVnd6aw2`!o|rD| zOvsZkI^BxqNq!8X$db5gQ2%Hp1cLx`0KawyNQ4z56N2oh?ZXRv$VKnpFml9Cntt z^oj5JE(-ICj$r*1(CXc)a0$O4VLD*UJ0XiBZp_$Xqg;YEx45D}u0@zkk&rk(DOk*L z%{hD-B0IVPu-E>o`^E`?MVVVpu*M&PH51Z2Zd|pPITu({85WmhndF?+ctCUs=xU)B7dSd zDh5$vpd^~u+6(Y8ogOHnApZ^ud6tFH_!jz?Zxy zAbM?f10M*!3(dGW(&e>>YWmLl^Fh%tvrY&q+Q%Ch_~Eu;!Qx*br7DE zdtnq?UsBX{znjt(8(S5Oo?$}fZLG03+(&|wp)A&W}g$si(3@_n!-~|E0ZiLI&9hHv~FmfY{aoyiR z@(~o38=yt}(FjAgXGUH-;SQIc^gvuavwuuJJ@Ml4frN1#tY+K^cb$6s^CKV#Zu|zC zJ9w5C4=rhrgBZ;n7cXH?3`Td5Zu|!6sw?UMpAWD-gTW0JO9Vp8t}^;UZ})}3J+-S) z-g@ljM820?%1TKljYkI2anuxY<;`_8R86w?T2+M#X$#a0+(h_u_c2=k^Be6s}e*SrZgYSG07f2S$r91`}C80!)WJo_r?9`3Q z=U!Wt^<^TOHRjph>-t>lC;)(P7?is6DTpKY;7aqTNuDi^XJ_~7Q<>;w#}#eua~Z0= z@dwviUBqAdHpth6q38-YeUg~=jEF)RLh2S9%*%=nUdg!HO=k;Hv8p^vBGHEuX=9ck z8n=^@cxi7FO8rbps8Xilg&}?Nm3;G9BrQ3ok8aMeVg(N66Gu*Fz<_V_pA>BJlqI!Y zJfmi0z(d?g2OTTkPzM zMRbfVh+)(jmt~iB!nw2A9%8_QJ^l;wkL5rVZDypW++fhp!$f(&vrNFkb+c^1!SgC< z-=3RPqW--XPNMv!8y8vM6(4w0Xy={ApG=U7oi2UE@(x!aW zk%w+ko{E#d9BZSbo_eJW5)YpN7YFcNJw*(qC)s3LV+GH!m|FOrej={rfp&^|%c|^h zu1PFXK2ocv8_Ytk1x*!$>uS(kEHeI)G9s6P&8SU}))Xi$R#in!tY3iIKc^Dv)&vYv zs}VA>fnHGD);!5Y5gWxBpfq66)r8P*{KHaXo~eCM+OV*z{3#vS>khEayP79MqUilD z^ijSB0xj)wTLEeVdILLQxtk|r1s3;MGMOFI{?GD%>lJ6uBV2I1J*_-yc}@0dJ-bS z{T+>-ueAXA^CAGkbwJ<(f$OQPV}6DQj1T^Jx(ja}XMaZ}cj3`)?xDt%WLzc>U0S{> zbJxRNz^wUXa$0OWEjFF;YcxrN(yV(r=~d*VZmb!nbRx};+2k|)biDa4`I^i@x3K3tC+|b6Sw31t)js1xbOb$fcW*U5#p@}Pd_$piA6Eyk~ zagypI1)SGP27IA@`Q3A=t9S*2dQh<%V`y zJ71w*ZdVZ+zvY-tJxpWRk^^+orDCcj`><4Za3VbP2Gf5i;}MHE9_ z)r!;Glp&1llYP=gl=TFE5fRx1N)6T7r?_k0tFx)79S_wZpZ|0Tf}J_42G`1dWKq{? zY_glsL^}@Hv3RZsEDGlvyF~|DA)dh~6_*FB2Wk(=r z1r(WjrGk1=PxJ*jo+)+$HHlj32`$hJ)Uf1yct@_{-?pCA#?7Xz-<-~v8u|=1iMYNa zXk6WU!CwmLJYL=%}{`>VnEf4Js$Mb6u zXiG>Aq>2A|R!HFcuMgV0K-pfn?YOj*p(*nX0$U%Jb%^{^94DO4sO>!wvYqiCw z)DQi;eEpiTEbzU*G`nMU$H7l!8gtiuEdh(aDjj<9n}il!A@g0`1GeWASwHUwVgY1* zw_pFDi@DEKYnS1E{II9^k7Nzm|8F7LjQ=j>tWtaR!cs%wF`B@Yz~!>Q&b%PEKpm1= zq^6O{Dp{43*11>=k5&prWlSNRCQcB=h?d?2vLOg=4)TG0*G&O}jFh%CS85hqb9({a zW&8Zu9edcxMx>Duh0RvgGjkoiz3Fw;_T25YlZp2E{=oFZ6>zQK3;mjHTgHbvEF0rbSAUI^(kI=oYi^cW}Bjw zNmoEhgJWcrBfKbWhQnu|^bvz6e$HtjoMD93X~AcsBIPQb)20ZUu$)3ox9_Z7{$XXV zG+1jzKVd$~Ad}3DDyez6h6Tx7V?wn}16nuU0>=sc1%c;!sCI~j)i#^q&-_8FQzlk& zFgH%*j(r?kszQK7s1gd%SZW^_4<-6E&~5kcUC_!TSgqhe9q(y$*WA@ug&Eo*2yIhJ zzp_$o4p6GV##3|;7}E!ftJ&!vh(bU;r$tnGFbq0LcvB}0{r#;Z&s^t)yYxtv<--(K z5u)G`rld4cwiW0uz>9j)nW{YlJj^Q2QT?WJaop=x_OX~669(HYG!(P}02wCLk~9|e zZYENM;(G+cr&4UEVF=f&R(b1X9>_!XLIc!sC>(+JbixT}QQFJHr&*YZ;NmWJsT$*Q z0G~YaZR%hq3|dh-irIOTqt|bIBTFm{A-Y8((L9rd5Wwx-SrJz)amB2d3zvzpaQLId z2qlL8Yxqqlw4rMY%1#V=OwKY+c2E6wp*Pu6keP<)jI$}qCL(fDy$w&UTohwW)I{6` z$9!N&XPN#bp`dhOQC}6ayfZeH+oCweWXk20(b_hOby;RifsrZVfN38~X$CiB5isnL zsRBMUODhuTgvXN!VyFpraL-kxtx!T|6su|B~F00s}HSbsT)r*03KblkE zMLy)9jvX~s0UtA`!&;(Wa#ASw&Zd)D)2Fg?r2bti-+CJ|g!W~}#t|7Y_Jt02P-3~$ zr?futL&fb9H|;K!$Dqx9o`Ymz@47B!E!jDSicuLJbEp>=7tGsV{v`%zu2ieef90XZ z@Z=r+2joeOq|eiRy)t;n#BwNzu15jX3O?;alY-P{91J|Hg=Uk^m6*(?5_}*}aHo5S zh?=~AJ3T_VLD87%gd{yfkYTzHoTPMPKmcZ|+9|!Qm8E;O+!Y4MYAW0#KsxjJd3$0n zbs@RCrI^FFOr{O0HU%YnR%wIxm{$WcELpvD%+hr;o7mDVC3_a^fqHeo zOA(T><5hA(s6EU2du*6chW0mF%@@BhRc^Updq(io-7r7N(f>mFsm|UTQhtLu{>0;3 zHQ3laJ1EkJVQBt(_`WdW}$`FWA!Qr*fdGT~yNSb&we{0q_^Ctrj< zk3zja%@91#2VD`lk|RFZUbm6*Gc3gCZhgGrok0mHqYORfG7?hpu(#)%GV1^VwXo*( zZ`XI_#m@B0(=Hb1^+E8!-2zoo;=;K5E}K|kj_K9%FdCOQ7r=i`7)Iwq8O;yp<5&P3 z)a!tao31@8v;8Pf``h1bdr01$%NIZhtQ)$h10`aPw0cPjNAi&BN8!%RT z#>S*mk19D~m;e}S`ru4duc_HL`A<$WZD2&F% z7&}S~jPV$%Z-=4?;$|Q|?FMMV?d1W1PtoeAF35kU)bx~`{a9-a`~glZKZ!D2TSS~A z`cgDnIsjsY|3V()zWeus=79*v+Xk}Ach@(ltUInq9F#qv5Is=>v!=J0f@rcPU2Nk3 zJ0Q z4SuQ#9xHV}#HtnZT@Z-46G(Wx4d}iV&I^d%qWJPYkN>6)qSf3(G7D(faIAv4b}{J$R~rt@_UP9M1oj$z`FXB&f+3*P>+RPhxjeYPYq{pbJUm zGf@sApL38bqFmtAb+SJ~dbiB3qz z#?SZFGm?;X6Zfm5ZyU_>KA>z=?3-SoALdx7 z#Khs&#gMb&VW!NJwJuqJHTp8r0(P@?N za*EGC5wG>-eB;_-7il`kw!50{t_Z5bdD~&4tG)y>BSKZU@9Zi^HjILTX7;wv$dv&gMEYHH?ub?U8!&MGCdn=X%3x>KSGewy-oNIGd{_?Y_K& z`^JS1i}jM0q1p;Ja7MRY_$hW0LKtHitDnu01>XTN~MG4pKda3zgP>m<0T}X zSV*39jvJ?MnyH>|hsbB#8K|$!&q>abk3^n2#5RleZO87;j7JlSu(?)dS5Z|Wsv{A3 z{Apv~1`1cm`k&C9dAug&S`8fDXGcA%E%0oE)SSwPD>8KIgXlJhFbT?@AOa$lW)79t z_oxcWe#Laz-L`i+O#^a9u@xFSQ+&6fs@7Us*-0OvVztsUZT=mg0GG z12z_0eMuo0MJy-cBmABnI_IP4tQaYuGz1}+wl^4}w5|{D{dMG?pB=Uzq1-H6P4#`u zKB0gI9n)3DLQYV1L!Jbn1xk2CUl<)br8ss zI7IsOn_-CIA3N=*6|pT@GC^j*1h1$X54+5gS6CV8Gk+sSF_1%?Y!%OH(HQ`|N>=V* zlea0^kbGii`TWmB7Uc6nXSCEg1m%qsR`MFTHQZY_unlwO$JI4ed$?DL&m1z)7EEcd z=6C^TWxSU#Jn^in@Cno|`OcOQO1D4Y0_R!aEyHFRR({TH#GsQ5s)G-5qgD%(_f=5u z$Mez6ahwPfOu78&y8C+JJRLf{rdTxJhx4* z>XsUo2=bQ~Q{io_`>=rP-A)6{0a2;4^j zytjfJz={C(8OK}R@gKOiynlQAf=0L+GC{PLMJFb@nB0y&eVzDBU3)&y0W&|igPK5| zjPils<;4r&LGjLf6=4-sk<7`5kb0ASi4Xz5|78HDRi(|4aI zPeNFam8CLN4vL{Po~F|%Yp5Nh(41z_>(rc~Y8rkr*rl`CGHSQq4~P>-&{wlMt+)II zVY7->n!G~XLO*oYHfE6lj*t4))+TwP-2X61sdt+E!r0 zL}Tt!YDi~ZUQ%O~A{LXrFK`ok2Wj3i{S2Oj>9#i%$L&IW6Anafn| zSn(28xy7pS#6dA8PV4xrk_|_zX-J^JFXgiUnbV9z7P@DJg|r&`au0Tz{d0#>j)}_g zzypeTXRq|c(=yhqf_2!9{iMh%R6_wkO1q$yiygmpFiV#za}9e&;h{~HB!#pbbWxlv zzI6uvST2_fXZidpkJu{WYWB3&db=%WL97hX$hqruW3^M{2cV=bPiIA>jeI)5X1S;; z&%#P1QLsAwAPE`F%YOqIZ6IH@e(RSrnz6IO#KvOFJ#GlCC3~rD<`U#mi7W})6>L`B z{^%&}=IyPY{PjWW*kv{4WquEo3jqG!r0m^|{KZsm|{g`wN&z9z| z!};=(^?Iz3FFMwNx(#su!iT*LIXpqp1WUm;`YA#2Z>;dQHFNkmu2`5;n3JLPCoB5{ zf#CH#brcbChd6KzVZh3){|Y41!)s!P1Kkzy!AYwyU!Be6=aFXl*vF6PKMdkf+bn|7 zaaY(MKl1YvOIZFC|i6`I%!sjHi5<0jXFfs1X#1uMNp2?+| z3&pe_fn+82WrPLYLC5;?VK*Nc4db=Kf_4fH!?;D2`#0ASJ<2_Tkf-PEz%~R^?@p#A zX6)@=xVr@Qq1+c2^d0pC7q>Q|g!+thDN&+Em77B3z`iZLGk7Z z5_u7Ymm7b!`;H*)Mj325{J`PhCJ8M)ywTzCmisj`y4Q)FlRV($=&t(hyP}O-W$zZ26q)*$_IWz0|C|)dzjj*WjHva6I0afJ~ zbu@L-)=nNLeH84f_>=JBp?qYmW6N4BAZhM9PjbgA++_3`!gU9%fCd0-Qj)MiEyg@u zBbj4x7Ry-7C7H^K0#v8z$-F>OZ>6{ArLCl;P#*Ao3FK2#`awcMn3>Wi(8tWXB+OW>vf*4L%jIHCWzS0j^b~{slFxbt6YdY8f$#8ABeTK9s&!Uu;ntOgySOM{{?@-M`*_Tc-fQg_`53$P)iWOL zBBP+3v{rs3<>!XuE|y->b?LOwC&+TyMXfjQZRpK8_3rEl{}f@0BkD~&4su~ zNm-_l+7D>`TpLe%YX2bsgiUb*dRohEBj(%3s5nPJMAySM7%idH0L9VXYxin-9j)Q1 ziGQ`$Q%DJJPvGSy(L;rR$wH06fI~vz%8SWfcDVnB1G*)Bl7Pbom(%2knVr`p{VL7d z-l0#b)DG;f+>kabTG{|od3h0m^0=KjPkR5<{}ar9t!p%iqPE7fh7z1G7}b!A^O=m= zXuP%rR5iKJYR&qg)|T{Jwh*dp7cbvQjSu3g%RunOy_&XCRVQ5@w=7nst7Aq@T3Br> zY3lq_pkgtbJVSUXp%lu)jA<&1+0nDV{$9dKHupe9Nu|a5;fvXjUgBp`Lpmi{B%QRlua^5B=zU;G0|`7CJ7(m#FcJm*^{;^{>W^nBXrx( zZ6T!66S_^T2s5a*pzf7gp|zFGl?fxtU%PHVR&+vxtwxGckH@5^0VRj1KqY3!PyH6{ z=BtzHdyqWVsEQPjcV5fnC~o_-C|(FkH)1G$!&^Y1sMTV1SUeQxc@aG5+VWPq3z0cW-A_T@ENM0CpK|O7*=)RvxznuigpCfHX4tvVCG06jDaY`c@&4Umhr^ zP?RO#0aO~&74CG~rTe%XSp%UOm{JC~vgW23%s3NRQj}LCK2V$KH@u-}F52fc^-gQVv`$-@ zHJpq!oI5BanjCAJ)li5EI;bRX&;+C>X}e+D(1)`pqbTYYK^50J;i3@rq+pg zYGVQycw4ek%<0Q55~0S`5PaQd>XgM@3biTH%ukGY_K9OIo89Jp1GQq;@=W{(hWDhn z5VNi)vyR1yrz|=xR4>0ERl0uQZioxytcl#v*&~sc0Jwe%FS!gWYqpOz>U%<-{fXeN z2)=$tx_+c?2y5pLg!Nz_okIvTAB0tsHVBqO2pk}}86o!}G=G{DzEBih8r^#leZQmF z+WE*Ea6J&$^bP3-KACrV>?3uULF^GeF%E1o;XW!&!+TdC=)Dkuv1 z_ljy$kgJJ;AEOFkQ5=;NoHc9>N3KRYBJqRz&aTjEKMBMRz|@RqHq36De~X=vk{dED zT&Y$fZdm8X6Gl)uv+&xk=)FEbde4_MV&?Xjh6CU=CTBiYcJW}cbM)amyaWCHI6e^C zJ0XO4Ay}ln9X|-GkF$(IuJakqe=)Waw)zLtjCv4_$YilO*&cKT->Xhh2 z*ipwb{u!H>s=CwXVV37_LLb08{eD9~;msxMB#I``hO-zCTl7EV;{$t)_h0``KU-Hl>1KtnpFF;aT#Pvb2H97Rfn`& zlT1_mRZBBK24^uvWIThCXH)6>P#d+dzfPicSx4AiiR z^dNkH5xr8sG<0H$!?$qNEvSuZGAfD#;~pj+bfWn~Bm|YFtqXR8K>fp z*OKIrgO3keRq9m1kW0oh#9VID%R3O8?y=8RCPu0D-lyVFMh3PuGO1aiR*7HhcwEZH zUWYcFgO`*Z-9=gmU#>O!_?Lt-{ZG%a zyfmWDoXP3DK?zqHoZCd9)Jo0GD8s0<#~&R)f$^yos%7TwFit&3a%KKItiH9=3DVTp z$~ptuO~Q|l*~+YdegjZ6dxc@3fk6#4WqXWgWa8RCd1%il4}hNolOBIjbEqlQMMe9B zDo52#)c^9C1>_fcXkmbT_A7+g(%du>H!4YHUxihY-|q(C@JWS7Opu=8WJkKt)S7?g ztM-G=nTT7Nr4o2QZE^)cHqPl#`y#w4VFcI`oSiN*S`L)?)XFVF<`+ICplgqi)Q|T; zp9sS>DNqhlxwx1AYANX^Xbeq>mHAiz>qc?-!@}!d(bu^+*#mLlHHS7C%Ex@0>F>=~ z4SFAc^r#1Vx8hJZ?Uj^F-*kpHnpqaV?bA3dQO?{PdLpH=E_5M&L#R3Gh{!Y>Y$(I- z^8-K%X314(2;X8ES%%(EA74;PAW_L)>k!3XFgKTRhTdK#GpmhdD#0Xc#MwmYBPk>< z@E7tQ)Q-N)<=n(KwG;ZEs2z&`GAsUX9iso}Bl_PiWJad{D{ZPQWw*c&|H=BxHG#7T z4x$DqpN3dQQidFSQ8+%LI82hFJZV6QFK$k8-o66jN^QP@6(kg{m3u*cZ=Px}(Fdkb|3UNCQFbiM zTRuR2zOn6C16QbPc2`!dy}-&{pyyh0huzEIp|W}xjKjU(C92SV1>07-W##x&K#zN8 z12a&ySq^=_WTOe45q3}AE;i?C1Fb7u%Tk6@n_r~+n zn6L;cc{4r9nl?{3-m6_XwJ*@*3r^O*u)QrJqrIw3J^_4M& zVMaW)RE%?t={Pt4Zinf?ahWQUr;*!hgicW`#Ahz*g9rt5LgnR>Lma;1J!>|*hht@M=btOlE5hX@ugyQa`j zxE*Q|=0W<<_dvzfm*7_a@c|DYYT<#lyx)Nw0UfPk`gzUKzxQ#Ab7N@wQ4$d!fO#T~ z;YLeSIkK#Y^2iG6nZ)JGU&L(_q)Ws2|A@~lyebj0ulP*-OMdWwh3x+?NuK0ioq~9Nm>OfEd$SNwbGq5k|RVG-~CpUEw)!I&f z^i%y->0Zqo6{So)$xEhkR=JXC6keR~2w&LqP?q4pAZaAzEc+zu(kDCnvJL(7{Tca( zgEpN$b~Ktjj9v!Dv{C*KoaiG5qL>8S;~{p*OvPO-QrQd+tsg-W$VbwdW()z8><{^| zd2Wx{?i4tBfzVUhSe`q57QxNi;SePKJ?$|E9Yom)@JyKPiuh%%V>v3yjcH;QG)Td? z4MdfLacWNa18Gxz=`~Z$IX8mzS;iRDKB+bZC`mgRFru90h|x9;x)e3W0xCmGA`2-{ zuKQ4*#i6`Sc34sO)nWvdj>(0;sDvtzf|=-k6G@PGvz9PV*Nmp_%u+3rR4f&6xZufh z_*HuJV9XV3B|U`p z{K0)lIr|DD+UMA^!fItEX2-h1`V{U$oh&{7Vu3Hd1$>S6-Y_I6>$qVihF;ohn&DxE zRW*^0QMtJi8{_-pm~Yc}x%QJ!>8M`gV>{k7n6~`%$&aTWik7rTTw&N{M-`BF@oBl) zbWG=zwk#X{Ef}wwonTbg1E#6zsU`sZyCpn~w8geg%ns7P{B@jq-v>KRIKg2~@hyop zAIfEC)6>IP)ZT@;#9+W{Blc}q-$gwG?t^BbmPg>XV}3p0w7uvWf!grLR5LeH_ira0 zPAPZHjxgO8{W5V*1WQqHFD|$uqr(c`GF}_ZdOrAI~0_jK-$Ze`QGR8`g@d7MVm~deARIdWC6!4j4D}$V8a<_<;yG* zq8`zv6va$ULRGF6tyc%v$mc>{Rj?8>OUW$7i9Y|yhVWn?=6S)@Mq|B%8q1G2?mx~r zy3Mnl*_RSV$-mt}|LOky?Z3gq{nH(4vLAA7l_&-Q`AN_Vu`h-n2q5u{8kn(%GvJx?B9~r6bQUuG8&l!dQ}^$8vGb%lRZ=dBQiVdX2>0& z1EI6l{mi8XU_?6l5i^<%#QJ*MW52Y)SJO0vC|sG`)E}AR&0N)^Oj8DN@an@N3I@;h z!=o8CMJyPM@|q{d%{z=ad_$e<)0lw?rw29gS-A71$AvNW@~dFLjdT`)GA6dL8fZrk zMJT?0bD?GU3xs^G0W4F}e;LWN-Y@oy#0`AXhKFy!MUh7rAJT1f?p6xfq(eH<*rItt ze9iQ5#Gxu{UmX#Wfph5sHp}la`T8~$wc)LKVUR`$G59e-e<e*i((rlk3uOBPqLMyuC5hX8YQNgnnH~< zHmE!b+$vIiaMFJBKreKm4OMPKNv$YMj*ihUI;vK)%lL{BBF`OA-VdFq+*h*dLINdZ z+mhwjIRpresJd!Z>e;@fNFmAANtkLDV!$EffWA$fTnv^5zdlhC9P^sUq4t+>)yIj_ zbHk&GLJU+=C6(7AdbZ&@#b{%cxcUhSy_ylShN!@W--?EPza&2ex!9={S#PcqWegYW z&(P{ExGaQWKm?sl-$N-$IV5M>8eQlZI}XrXNJ7RK3T{pyh`o^KA|8T;n7*aiu=SDT zY>hTWR;Qv?N;2=~v?dchgE7xCq8hX&7#PsZ;~9ICxL{>DCZI-vUXWExLfxy!sUS9V zWUy+!ojf|EhZuUbSfmuACTrV-&++jBR8;RjBcY-bPJB4OI4Ip33RqKznij6KQ<(-8x`nfO@PgJ{ z+@=Of{lXNjyd*FISta}6ikp7yZgYM>u9iV$WJc{lOzvPwbJNXELQ+@JDKa87aY*b@ z7$R#(CBltx!I6+aH4)=VKIV`VgEH7`ud-2PAD%CbMrrDt+`+gg<|81M>;A3t#e%sO zY0Z+Q%+nVU>9`NK%aet z?Svr5INmcQO2*`X9EZ(}OyZJdwa1br@5V&{anAJH{tVf01UB2H0XAy@yqnu}1U}jx z1e+S90zT>u;8Ml5r`NUI_R`kh7PPgjUF_l76yRk~**S2o2YYph^NXnK?IB$@-&WKX zEwR~lv}USJ%Rp=0=s|6r?NJfe%fMN}WwmFmW~8W%4Ww4@<2uxvo=jS|-Zmv>Cu6T# z7Pr{t+^_&%tKIk(k+K!(#a*F)fniP2XZz0ny{0TZb||1AR!;wKP1 zp)`NYoExs$E^&O$<640Is9C!misZV4@8`iDpueKOKmeWh=rr{@QQ{}>4wAvp3y4&> z@yQ-hQFF8nn}&|Tnj|QSD^mvFNd|5(-4pEX3;wh9Zl?Ki4?W+Yt|oWAOt5OmzQj)! zBCttTs97_fMq^bw5`C>vr3pFmq*g~-CO+H{AwatUrnQ8-TM8|SJB0bP;pt%+&YYa< z^x}5V+l|sCgi*M;$03-v#_O~cG7O5wVFXccBKVV~q1eHi(84>J>!KG^&L-{E_Cd?N zn(dOU7QYrhn58R1Y#F035#{9a&bFHL)qT|9h{(jYjIAV&Q8P0@5$ zyFV|wHRE_WK;C(wYy6PJ3%xuiI(K|Xl| zY5DL(6aiWMwk0@f8-BCe8m0tMZROu^(Gkrh>rKB^a7ltV@7{z10NwxrOm08%39gVo zn|3exbw*!m0?_WczYf!@DM`haD|M4q>9&06JV ziH$sX*^+G@$NHdx!)YOd`({OopIXjgDmTkF_y_(%RDK1^U|BX9l}2THzGG*MG8%B< z)|x)fQOoLrJ<4u@kK{DOnHS)VP3YyI2o|YL-3FucnzbXO@f$+s;U~BA)%8{y;bG>k5b%j%$jYX5bja&AlE^$gR_!7Q_!ZxHrqb8i(yA zq@NppdScHcQ)yF)(iRkH8Y{d^E zsrz|m{!ztZDG`CT_==PHC;NrW*N`Hz+|Gdm`_ruy(Ia23Yc_$bNmA?6j#gQjccoj7 zZ|{I9d1arhDOqJl9xu0B@YXa4LT!%Hyk|P%@5?dEV85s*Vf`QI^FA=pZ7iVc z*`#>Sc!OWRS2rvAE(8yu`8zxtKgPn;wPgODxaGT^T2MZ%{|V%=1y=AziILx9Fp_}pQAefYKv%HtC4Qadn;aO2l>=6xG8k??}hmqDnl@Qd4k ztw1?`F3&ub!{|GbUXYqMzh|O{d;0YH$any8pUIqexe*2uW`cZw#0s7S5)qWU_o_M) z7VithD8h6}LTXn*YHDeJ*xHd8DTA2Ru+YR`P)XPujB==LD3a{^BDiCR|6}0`in( z`d?9%?0CEabmmgoD^LDNS+I5&!3Eq>BJZiN#OxGh`^@8l_9>k5GqPlTldcNdvjlz< z)Pb+5z}^XL$J~?;xGu)>Z&AVCRH*UWDr@QWJjK2K`5oUY*9Z8c^fHLQ0(?91I|83F zeDCn70Y?E|UdaJ<=xIf1X-%FOZ*co}9On5YMkQW9q4^d@EpK$E`GnL8pC2BlloM)l zdk|yBP=Wr$B4Ei7z+z$AIJCh#?h2vkp-42SMmK_tc;ry{$zhI}B*pq|sliGEIGJSS z4(+9bn7fXdlxRDHhM1~h3mkGF*NTV(phW)ABJhi$Rqkoa(LN5mbZFdl0z5yY28CL+ zd4gpO>DeN@TP1ON7IqP;5vO-GZ+LVGqj$M(uxt_d1(e=UXm6<3NjCf7ZnV~EHv4}( z^V%Zf8>JNMt0QA9bedbWVa(muict^gR)N$k4(+j~!`Cc~Idrh0*36mi95ueQ3RU!D zH;!MM+CXmRv+h-`QmvO&^{=rYcbB^CW@)l-R*76ot*Um)twnbB%nAtL;63CvSLAU zeOsC62k{t5(MTE0O#mk^8&;Y}mMGUuU&r>a)9@18?^p?|YofHY32$c<=@Pkg#E;@l z-|Y~(y;@9}Cuv9OaimwS9|op=7Rhq51;JhQ``sBy~06TY znM)w{fieIo#^+xN2qgX-L8C1wHeLO!XnC!{2|+&&57*}#r=b@&`uTL64_XqF;cWrq>jsO6lNA|BBy#EA# z{wr0X|FikMqKVxh{^3}>S^O@vyC~U)9c}> z8^E*{eUP$JG`2T|>t{I84{H>wR$Kv;GcLCLnS%+kX6N-^aYhg&lZK3Tn!jP{D);Q^ zby%oTbqzu>`ljhqE~uGh9$9Fq7YMap$YF%e4X?A&^Y=}T-J6nd?=^8aGCY?ktj84mImlR{Gov&6PZHxVB~#xTrvU$#@d#F>Qq=b2U7I@9ZE2 z8mkLtwQqv#vlf6aA^b_;7?aN+(xprm82BH45bAOPajaSJN;qd-o1JB+e(N` zC@O~Sp-QOaD}xVW3xl!qo-qn-#qd2*i2C-sEHz+~VTW;O7n)Zid-tTAfydCOwMTh( zbnb25v`shor<8^uSs@j!kc3plafDmFqMlZ(dq0rbM9pe?uRlKfUA&?eF&e1~4?Se3 zcCn%V#C-ixoTm&#Rg6x^2DAefsGe3LrM!Y_q>$sC9Gcdum^Wo>L!7o6Mg0pi&14B1fGvgMvGB>Pb zhqK3m^Fz1?WmWJ8V2tc8lZqH8xre}P)hMSfaPtd6{8}DcC|$L@fc67jxipF|88oE} zUGOfbBJa-~lJ??`i-BdJA#6=$)T zC+_=u=+_Y-Te6&hcSu^kS8CDtPl9WgcwVt<(AN*aWA;d?rL=M>wd!kV;Y8|8W0nsA z9Kg)HtEZC?h-E7fR)S*2NDC~oCV<06J{k)yQFEC}EaUreLGN6zWKsM@eq!m+GX^or2h|(HHt>O?CI(^_Iu?9HEtgBWmk~wJ4 zT|rO&ySQcF;XPQrLSshcT3!rZ_*B`)}i_T`;qsuY$nYHF{NkEbjk%BZ58OK!%n)ce~4zD?GT!VO~L$vLKr-plzJ^w3%h5seR{nJwg&i@Zj6^d}8Fz05pMO&Ef zK>1;yb=x4+*7lI+NN60HLEzW&L!^nWQ`0%4az2}#{L|<^5Pm{01&LiFZLpTLjwm9q z)s2wI1u`mDh^w*MJ%L_v8hEQ(ltn3f(5!|`X;(s!SJ#VnDZaouQATdnjLdeQ+?a!am^71x;TW8^Ku368@z!TsNf zVBT9XLrHFs`)suW-#OyF=|_Y6DP+3>z&CrYq;_sRhze#r%L=E|%|!$9#H~K<*WS`_ zF~^)!YFpT_ExmK(ZAHCv7`Br0KB=&s-=Cw7!74SZ#ds0VBh;xp@@XnyAWg|9+dYLm zx&_?%lwg`D!;mu~`j-5jm%|Hs*VK_zV{W0}=Z!WVl@Uod=V;EseX>O;l^&soC)(6M zD55}zJDvS2{A7S23NWEHMmn;^s-v3c70G$%#0k~2C?Y(4q{`7~@!40s=-~pRI5Qg* z{Hk1+thIYY1kaq)-86GweH&ERw{IfRw+{(rcEDQuxElh++|^521Ia}S$XTFT4TG-8 zvcOjXR4U4syzG*4%N844vx~&qV3wnQgQoAz5=!Q%FUlXNya@gd12xHe?4;Y}nV0Lk zV=`z=Q`l`e@CrV(^%8jr)u(KKgf4#ME~$*9B}Zw}8Y;@P-eIc#W<-uR4EciTN$t7e z053p3%u05ulplSTpziXeS{ap-(RM_edC=0&%2)?jVSU&^%GWl=RF3+{P&ZZItD0>4 z0s2Q&634I?;(RrnPeK2+CizdUi`akDA^ATK?7wqe{@#;{8@EMfLZHy`^6h-;_sIpG26S>&nWaRWn3S}o2G~SO8!R4t$#X`wYjftc27vE35 zkDI%%P;>{LMqZZPrVJ2K6rz&KD~1U^`3Ncnr4QsfN?TCOdU|?~CgVIXe$G~!1G1x$ znQ85lWf0RSxV*|{S|)fvEKxk?w36tmQP2QeJF!!d9eZWvi$1>cF`OZDQ4Xzvxh(EA z@aDs{pemSKHk10K)rzgr8D~b}`ozI)NUM}RUe4>U8;lpAen%)r)}zf70PCvA2Yxdw znDqKySeLvH6JVl9Y;YcWUo^v~95N3=Z*rW~EofR6ZiTsf9*98`l$Ql@*3Y#3b_W(> zhMu~H;WpU)gE@Ijz?PH}Y$Gyr%7FwL-;&&wK*-40t4wlPfK;#hJ7y=6`;fl<0_a|O zc;mr?mM$0~yAx{n;O?M2%3#`v8Q=XwExRhzLoLG4xHtO8)Wr72C*CrczCCzf%j#_m zEG@t^sJR%~Oqh0{?Y?3^9*tNv%kK)B54*wPyN%1mr*o+9l zdI>T>gf`C!sfbARtkGiHA8JPfCz!%?(Cd()~s*qS(Z4#9+N|`(wdVM}6_*qyMe={R_Ay{tJ*g_^V ziU(z_E}3{|46ghAG^mP<+J5FEM7G-kuD>WF?L(@+{ciTvhpHw?mLqd~;+IkDd1o5G z2;|G&gk(+R)CI?$np1U#hScg)loEVVIPohV%iG(d21a+`x)E}+H>$eXiUM0k+(klG ztvXrak}RmE_V2l*1ZA>wBO84tKA(L5mMXK#Gwl&-4Y9!bp3P5px>}?{2PzjNUrfE3 z0Wog%ZG1v6m(ZDnB`7gQC5G{i76kTAjc-XylG*EhhJ@R|>VmML%Un|+KPjH$t^A_= zsX^81lAXG?sjc_dg_+GFeuMvn+sCxKJ+brsbGr|wIXPp#w!7miLHu*ON&aJ6>Mu>w z{%5=Y%nr_Wj*=$U)*gl?2DUPaO#d+b`f^PAP_-THmm|AlYq*Z58La2J}KPWGkdqZiKIEYT!2OG@G7?{_ z#hrJsH9g0cjE_N-*zkC=PvFd^s;V~w%82rixO@bK(jp`CD{7v-cWuOuyBMV~C|qR& zPP;Esnac44CD#T3>b0sGwIyYe35z3lvMlA_R;Cj5mFHqhIMN^k7YYZxg(bfvxb}Yp z{_te32mW4^nYn=6c6BvUw?D6YDqyHs)WV$zD|5bM`U7bU&}$xOKC3MVOK+%?vR2+r zIaRz1*R=o_%NWlVy73WmIGoHNM`jwyr6BP<)w=7q+@ejA=>RFJIv-svW6n3f!O^(e zsUQ9I)tMBiOKmw3UT1j1MZ4j{HrYozdx>YDx=pcrDRGCZ=%I(~`+RjN{T9u(U!@C017{0cvw!#0 zi%QV=W1MdI^Nh>Y5JslPKG3n41$=;()~rBMWnMh4k1(7HP%dLxQis#km>cwV1X>SV zR}&Hh{|9_fs!L_5B$2UHM*}zao!0ckR8BX)5AbrI5-etAS!;;_t_Wiii#UaqcmYxI zZz{af((+|}dCO+2kPaB9!CArp?I-C7gP$fHi{k<{HZOJ_YlM@A<7f6qvA>&_hb1|A z>Vd%+j%Ajb-rD;EdWdAo26g71tmh!W-hUp242?GbYLL#rwsSY{*l1rmyQ{5j>yN$o zdP7wOUp?qLbsKTQH0>^LK}W{9k`pF`R!-Nl1oXtZR>gS!oaSd%4xgM284%~J4MAbB zV%jGfHuC9%4e8L?Q~AAo3W0rseBk8$SToHqjkBzi5(1plYN@l|bBDPpmmv!*@(5ig zMQZ@l;audp4Lj0p5V1>}$zL6=Rd)H?cK8NJvAed9czWIekgH!apIX`a)IF3Icg>xI z2mh?qzk(~dPB2X3ndn$R+VtBXa`3{Zsb60jS4rb+-imYov5V3Pli`*<58o^cM){yA z@r@QLY(3K*d#!*?QXbz-DX0J|DUh+KNTXQw1AET)oKpnioH!KKvNwA1gw&cN zhB8L7Aghr8lP3r#-XR`xY=ff2yApXa&VDBxlL>`dET?1#qi~_TvQbVV8ccTL-)pVN zqa75niNt4v=Hkj|H$`O(V78QLzJG-3TH%jQ`L8rb`fqj6e_}J@e-)~KW;j7dJ2xj2 zMC*g33ftJdBbr6bv~{b;4bL*f{N z>Jc3&i8ZE9%_gcOyZMr+@LFrz%0z#{ntda=Qr5iFW=g1f#RDIMCBEUA6T4MiOTm5_ zAiJ!wwQ5q7fSl$+q~_UE9oOFme8kAVQty z9lN?!ifE^R^xTCfw33o{Txzbhwv@yI^%y<1%guLX5@Vw33)=A~J*cXt$6EnO*>&|P zjkV4+!NLNw-l;!nH&hHHMaqlzTI=x1(APWVC@F6&iREEiN>4Eit?G-V>#V`+a`=(# zts|B=59~)-aZgq*MJ1jyW@i}#*0^MI)k322aJ?~RW9JwnxVaAP)%rW5LHAivoM{Zh z@~-jo^SEq2Eh$z6K9v1A1l#yL6VoX4Cq|8&{-;FpFapl8yOau2d5#Y}5M+(AZ=L;A7^L9n<vQQVpMMb$jtvmkk8j9mL%gFZ9K-w)DF)t zm^@%~ar{2gS+@XhA;o?ZSW2eW*=sipHH*mD5R1&h6@rU_lYo@mE{gPSI!$uK*FP%+ zyz&m&-mhar{g<;bwe`h%4w?FfRVCNK`sa}uesnEkt z^K5y0fk9PsAf|%te19pZY(og#9SfZ^C--2&b+hz!Sqx3OVJE0;Q;G}L#!(z#3?R&! z>DLh^r_dwC=4=<|abt5COVicnduN`MX;a#@FuAKJGZ1_2K6Fg-N@-OmE)1&g2|6Ki zuJEvtux>8oo)}}u$!Sh3bC?T}JWmPokz_>+`t?@Y7-16l0r428Cs>#mir0}C%i2yf z8F@c@`o;#qS-A&cZThxhvjJaVV9yeY5BF`R?5$1Crq*!E)|#gd#A!S-gZ)Es!AE3r zmDpX50E9gE%7adB=%X`E$~?A49i?5F|7yCovYRbt1b)k<27ZJXcyo zhhR)jcE@RW4>p}%Y72^{aDLU#M!{f4X9(3T|ZSr^o8^EK+PS+I#m-j=Coa`(`!?@IWMbkM{AR1OFw+kfykYCY(=CTad8Qp$- zU&E{Ezf9x~nVnyFnJF(v+lnZ{3n(#de?j80QqF=*I2l9|m2JN;==MawOb#BVc}<0V zv2S_GMP$aUchV}I_^9Mi7v>DChoc#=eid#PG3XBMFzlK`@1b@|`d8k<^}EB?gxmm7 z7+cvQY8EOG3ed|(IaytOFl_c@s2vzvIl{r>f zFq0m=`GJwi-k}t&44ItK2o0}3dz`4Y7(SSqYp5h5jSm%pejBiSkiiL==D0z$jOJ<= z072nhBF+zFs&}_ClxzrjS>a(<>J*y)QBEpsL0>2Rltv!#$3KiMf)Lw8eXZj&8A z{|Gx))6b7bnI?3SQl|mJ7v#8-0Uh3UxM~H#I$SN#C7JQo8nS8wq4*nD@|yR-hrp0O zAB`VzGAC?+{$Bq#>QlVPyi4Hk8Nd-;a@-%In?CvH{eY)xy>0;nZ%~(N_OYr<1rfzU zeD&wazrFIQX2oat1ycE57a?CK2U?}Ce?#mnn^8RNP%FDDd&gS_iUV~k{N_Hn2LJV@ zq*&o905yMV55c?dpNAg8tHynh8vBNib`9isNFRpis>TaL7M{^^ms;XLviJrm*q|Qyt@13P;T20jz~m$opAV4T@B|RopGG&(w0?Pc&YB6c=8$GD9%^JwHOs$ z5Y(+G6-bF7!{O1CM5Hq~8NeOw2#|W{gNnHbQh<@3btpX!Jc8W*?uoObBArs3tn#k7 zTEj>3zZp-f$ABl0VPZ#(W)~#N0dk3yB}Gmps8k47eZaB4*g@TBB<~yhKUop_Fscfe zp8q6Kh$2s?(0manK;ZuM+4`TgoaldB%l)H>b1`%>aV(@NJ8>zc;Ekh%p(dV;>gKurM_#R^Y|#A;QaHXnGd~o(%GggJiA3 zw}wY1$K@PYlt(>~PrnHZ$N#R;S!aJ$5cU>$Pz6D|FACoT-5wbsj+ zW6ytRc@AF{XSq&G-Ii2`KQiIEVIDzAo_HZkfZ7(%M(>>so+K>I|h^En1@@0;5)cmH2k90=FbK z6*eg7CHt&f#h@|va8pdXT{PCLTUiH~yJR`21J{*ICD%&4j9V4^j!-xIu=)li!tqH> zV5`KXU(bJHt3!C1(-CG7XZFwXM=by{z5M=_!&%*HO1U3axgk?_1?e;hxo9V7}==*o+<-U z-F~l6pNnPQPZj2bbBH3oApf(E-&Hod?xalrlczz`V`GFG#F@}iV<#m3Ka3) zcvOOK*6TEWM^HInV^T8LvRn-BOo5=`c5ztvBg$lL0^y+eov z$Hv1_CybiL3Kv|?ODn%`QHzZiPT^ELdVQW~-xm+QdXx??thmLC>?T*7mOH>SKc(fx zmyrVF1e>AkdvB(dL5+HQOe}N;M9R~YziXqj9&V7f85cKP(%ZkGDoV~C)_*6AM9IlW{Ye-}ua2r}-sCwEa6()U z*yKsdC4fi*>9R}6vtBt5Hby?yyW57p77ObjSPaMozU!UvWVYMn*WCip-b*#=a~NPW z3Uyjz1>K;Qfw`0BGFdFEvOK9~t51O;*D%X0KNe}SEV3|&bip%`8MlALU=WmQK)dxM zU~)7TbQwo@P;~Qgxdp!;wN$a@HAtk-X}FIznzE;qSy5LBZ?3RfR z{I?^zpyA=Ayny;~Ns`9S>=DaQ*-sQfFiOGzA}@~+h~QHgNFV_qp!pi_5eUv~HNO zag^!VEP?m^?0N$LEff>5av)0D7AhBy{dd@Jv;;fm7q|qiRIilLr_}Ya{bm5$;iva! zz)Ol@(&d_MfN30M`x5_-)Qd;r0KCI`z*X1Kwtng8YZHE$ZHh}(dpUpvd*%cqzV-3F znAG)Qw>OR-zi$8%z|-CWN9EFZ2KLRQeWv!&0eK?zn4UuY^+4sve~8^sIK?o2BZUQF%~C{*kB)(S)n(^oJpniPXq+Jt+s?U*Z5 z=@|0Nn|w-=Ef?s|W+&mY9-sHBbS_kFGqCiEO1Kq8XPJvK7PlDFoRR+lrWnCnvf0^HCSYwH82EKyq!Gh#Ix66@lG) ziQHVAt+_p@gp=LFMG&58VW~D&*(qF`eTbi=ClQ=U(++j3OSv3>x%U-MH?m*rREd_9 zY3NYSHXht}q@X3w>5Li^nTR~nL=I@oh9s)u;n%A8rVa?v55MOEQZafm}b#624mA`i9&yN_T!i6-Tg92r> zt3aePsw~(VFqajLH%7K@nqM-`f?0I+u^=Z8#m50OyjoPFCKFHUFrJ9xU^*w@`XK*a z--GCJTwTKUCqAi=Lx|3WgsWSpPOuMTwdVjk-$V8`n_XOsWE!v ztg-MyosT-s6A+2V*Bf8z-n&YWkHSK(QK`Q00k=%J^Rq6v{G+5iWT%U`Ao|?-Ltemi zwJftoR3s}xSsMgv1BPSY>eNx7)($U$%MbJ`y>Wc_CJY4I+a&2W-HY{_=qSN1OW9ck6OgqZXUTc3k=fOKEx#g;*&?jHc zr59yYX|&r}u{}AmE-Okim`8U>0@yq6Rz)BZ?pZZvefV91ZFhNQjOfqfsj#o z$Gw87c8O4V+QOZzmbihb#*<|#3bq$mu=gQU<~l<`I%zpfP^iW?R*biC2`CcTiDVuy|FlL2DEtC0=r^P+{l*gcf7)8xC0+ zVeGf~MfI%EH?S}-bjc_5>f5o=(m(|#Z0pqV^97XWXIsNz;DP|7bW1wTVAe}dIzo~6YqUZiVJ`NV}t9DE(U59i& z%l&pW`1`!Jw8@W$w1r##l0xuinZn;^&AW%sBN8Y)p#FehNIAL-@`3d{95d2HtUN7q zki#{Qr$9Wo<(bTkAsf>-8`79z2d#7mMzGV0NK95jVSfhGxd5p#8gJrTvf>CK&47V+ zC^3qF80GR++^p=lgmP#m+AX@0<%~c4j^*rLzasy%MCHvdp7+PbCW`{rO>{ng39au8 zX-OmclGl|m#r1e1oq}FqbD65$H6yw^{$0oHb>96_jTw7fvIukd!fiHe_`a9ZhN20L zdT3^M>dAxBcwHJ3y9%SbI2N5Wrc!Gr3ZybABCNns-G~QoI@ux|+CpHbL(Y)e3vtbKiImjC#y{_z>58edUn66G?P-!eS=7zv(j@WSH+1%R6vlW zXgtVJ+{UiO(r)fbj8V<^+x2SWIVWb<4x-ilNZFu%rq^-c7x4t1HX&Q{FU7I@G%?LE0Zn?Vwn$5c5v}%W ztS}t(bdMDb#5)&eGG4M1mL8y@e;oep;A+e^gXj z+#V#R)locu6Zz#!VUki}{mUu9f0O<+rlJOiF5olpXpE$(#R77bdNzaRSR*)qr$RNz1^t(GOSQA$k)Aw2$VyIX9 z_L`wJGZG^RY9`TID&lBXOe6J_*xV1hFBs2R+b%AzCP+QFYguN9|0LgGbv_7e#-?So zqY7ogHrI+19~&`avP|l*V{zhCyuA>1KvPt4U_UAZC;(#av+EhOXW%^Eri46*hxiJg z7x=dXJDzi_O#>RaeM+S@crNnO2)F}2eC9rdh}Ou~wHIH&Q{ttD%m;M%r9cgG7cjlf zH}`v-?7AB$uN*q)V48WD7mW(@dALELdkxY)_dp+LtRW*9dFNO|F!~w3_VQzM&=0PA zoEH!DV{)|b5dCnk0R>!!6?|e^po+NOVa?8M!FX-CVsyudJVmSm_`MCLo=BxaHSu~* zggmBsdl)vsaEp2DBX;fIp0th`Be{<$&CG#-bOes?SJykM(lUPZ-*2~>kk82cOt|cG z#?u*in8|d`d-@Yd+%pBry!--i(!XT4{x2Ve|1U@0`zkK%t+V>rmWa_XzzwBp97L!(3}n5+pW0eA+@| zseF&bca|F}Fo&e{>;ZtfAyWvQoI6v?M1FMYKu@=Hv&!^+Tm@pQk*^r{jCI$bMD9mp zLo+l}em2rg-hB=ivKyX$oaq~Xv1LO&iKxiHG?u`4Ms6c+_U_6_HrlCOMvi_Fa~#~5 zwcG6@L1k=8C?q5){Wa5f->sf{SHAZrd2b@ZV1|Pe`?pblSJgV=F;-Wht`!d;_d>j2 z`c*klTwQ+)LoFXk-~)^%`hj@sI=45HETe(`=R?1fe9Lo#_p);0DP@s`x|hvAWfXWd z{0t0VW4h?#Dp7wxG@^N`zaRATdpeIsoR)~=GxMxbP03`i zpL)z(&(QAfe*bn29gRh6yFK6!O73E!SM7_5o4UectJ9}j(v29)df2K{^G<{?7w(c2 z8UX-3bVmzumkg~~%%xM}YWmZOqLUWEI?RRCARCUbP4%jf5ErHedePNQb(|+izBT<=Dz$PhhdpAq-&%>Wx0#|eX3NKQuKjs)8CYvwnn zy_}poZ*n*8IItRsmw&vtmWZ&sZPGByNhWEPAOt;PP@(%|+$DT3iIF3EKG%SwE_=|+ zH9=Qmh;_d^PoLVRdnp4jKg1?1Rk)}gDZb&RIuPlARU~x!z!;VXY1GwEeQ}6nghgqZ zoJrHI23#@8>$kc8d{fBy%AIyVBW3Y#etMPl-;v>{f$|R$_f%9<5J*eGayvT#nC)6% z1AFD;1EIKAMgrf+dp6fs1ZqH7s*!3BOkYVsybokwZi+Z7le7 z?G1_K|6!%@AC*@rKmO&|g3L8PFf^pHz4QpAv4A?k=Nu*i1(JJ~x91fH?Z_zEM^w3e z$Onv;NBvHEBZZ=HUUbs4!4d5~ondc$^!s8Lp@*8;GDU^7rzbCv7-}4v4TDyKrP?LB z9Y1=_ib9^=?1~}cg%g_VQd?ccFvZfbb3vJY)Bt;t#~D3ipA@kS_m&ZbjK6X;|K}jR z&Ae6I0J*)pyOl6-T>Fo;B?XUoIgbrdmnJ6gIM}K0BO*q@(DsMh9ZfXo6K>exL7_zv z1E$UU5ROxwGA1~5v0Xc2XV1rZshVR8eVC?CQ@btk0ZdtPK6ja5{i`yVpu8XOLVo8; z8;V^fB9g`TSO&u74m&!Vz2LXdKR(BNbZ^TejJFc68KAJBg}pn=@$o^Gw@H6dRKfxT zz_|60aGhY2ICkcw2h!C=wE5fK3Su&m5(sZqZTKseIge~U)RT;$LI4dRN$g{Q><7m9 zJV%>I=vGCWKF*#-&qPg8%tF=(q~@#e_EPGky+KbxV@~#Y{h3MreYD*)=&KA&|CYPP z^?xmc{{s;GXWy;D#9vlO!e9Q1`WDqRSkzMEoed4Sn(0ZF;D@N-@IZr=5GAl8?@P5@ zVxSj;=fu~o9+&ONqu>xkU##dIS@Nj}7OAz(L=h@+V2&9BN!K+& zY#Swg1CoYTWc6hd>Z$8v8?r}L^gLKC%KR`mK;7t1iMe}QX#Arb{6RvG5ZilA{hcuF zXdrXzDn_L3zv%6N`)4)FFC=mA2j*2=fOxqTo6#QgL(@;UP7`A09H7hEdF zJ9T%)b2|~PXN#}{9?Bv#xYd-%NVA1~4Okf+?*t6yDb$!ZIHvP`f}!u`6|V$;XA3zuO$s!4XMr5jxl;$z-YCTas5S)fZH52oTDsmkFI13W_sb?JvYgiVGO%?dvoYr-sazwGiFJg?b zn|e=={raR#O-5W?Ae)H_BHwjr%SQbmE_tzeoX4i3xRGcWsIfXcvq)kLmkV!65}23! zrAAgcwZPvBQze&RIasZV5tmIYp-Ob{(uC(Y5yp|3^fH#JJGy3%U3i!E9Sq1;x$G!& z#EGLgz+ewpDs3eihy->oCNzltZpB4D03Q9d4*>LcdTQ&f#g)5P&YPlwB>ZrXY-uVlTh(_{>PuHF)YEZ#;qUp7kY)Ld z6eUGxwXqR*qavG&giI>Y3;JBR%hOEkx`?2wH21@ivv8!1TK=62R>ckSzU;cWBWX`@ zS(BkiU41MvRBAmKw=zChjBzv(ORLJH4IdwHdz@kxqFquG5aRLa zCWf((g(J(M9dZ2J;y+>uyt5^#i$)$pHb(J3V+6UAC8-NXehGLb@PE0n^T_Qpj2t3A z!x7wJ-@4B6hjj!%sTvRpI)$7c#ds447LK6Vl7(xC#%3ctyTU%xn=%V_#bw$v34X+n z(AbSA*V}0gH6HNY%Pgx|cL`oRE~OB0k=#UzlIWYAq(pg1$POz^p({RM{?1%6Y>a(x z{ME-8-vXks>;$4czmk(GnwnLF+0I@*Cj7?;CHZrp-1qA_H~$)={;Q+-SMZ{nO_J^*YP( z8@W3)IlxU~KbV6e%gzyEc+JrP(8`VW;wg&ffId%_!U;C?@oT7tgj*cOdBO zL36qqh?sQwdSvx0sgMVv`6`GYowYHjAb-_OWEQbOvfYRqGX4?IT1G1g8{y>rFj~@B z-EaMcY6Ps(I}20~7Mu5CQ4Q(zw9N)CY~(OO{5Q9Gam84r6_;*a9gcdjxt9H{hebky zv$q4+c_bF8SQwC)4QY@@?cDtHO9e^ic6yMEK{el(Ife!4w zr}o!2z?&(mNJDL;Xi_#P*nmx)+|wFgz9Vc!Br3-!?=?FEFvBBMv~^y2A% z`8vR?1xO0^&2+qrz$7{l(qNnF1nm|W8c}6QPshZhkRQp34o$@A4j5Pt7E%2uI@Tw5 zm?%r}$6pL1mrxh9< z9k5~Tve&(0-coHAp(fOr5BTMjae=?qEiW&mxtQ?A*LB9~5t@?t796@9Nk;D3mIdnc z7`M78>86<-@%tUklP|oTzfE*xHW2A*%|qF6%+3zswK&6M8q)787zQ&}xt$x%;t+JN z#%xgaPz+|pzM*>dx6fESYUm0e-E@^u)44+s{xkA00-YN|)7&cqe5BYVXbJJlgF1l& z8~-N`tEhCO)R|_nEmz}Y=mDfko;!$RXwnWOVCcaq6Y$l%0*=&dGr+CuE!We5_CPhUsw6zK{M+O`tSJYS=v_6Lb`@9n>~QD5>-J1nAff%1b6Vn zv>u>y?*Jg^a#qsdYuBh9sm0< z+j1jzEwS4;8n?C6>P(qhM_mi^S-3g2JAB~``vB}O6(%4nh?A4tZ4sn zd>UM#NG^YM%O%i%cYOYjxzqnh0{z#H`LDyY@K5eEI#>N4-02N#K!jR7Q{TJ|8uBI| zWJq*c&L_PfC&2RcO(W;<7Xv*;p~#PKTkilwKA|K++8);|82c>he3AE*?p4!Svjg1!j1)!1+)9wW4}E>VbV1c)ufK7E=D9We(3xm9^fzf9|Rq>P*R zpe88QX_$o{))1;RPom~LvQytq6d`s{DKZN~Q=ze*6nApH1xphL;&@oZls?5R#+P~r zc2Rv5+nIk*W*&Oc4zrpyRo6s>Yqy=#$i|+dX?LxyRgyUIGU_rQNMVAW5rvSXo{ew{ zrx%_FDbNnxE(>FGK{M`y&BL|@33xn|O3nh@{pF22ac!=7bVphR15rDDPO>&_+6v+o zf15s_VOGpuKYqRK{QHmhIU!Km2~8C(lax2PEVx;}1SGKxN_)+Mz%GiVz<3sope38S z7RIdP!mNm#i$vssngdb2sP>H9+6i?cp&#zx4KCLJ&GUURdZjr={lxo9E>rT=d$_$; zDz0TJGlf`{g<@cZqXM2=5?D$6B-P-~!(%2Pgt@s8m6&ES)wuwXm}|7cAz7x;#AqmY zn5Z_|{RDBCNi`J&gS2i&#qn7+J)#x5Amt7HG+hSJx%7Aj8oHrT%i~5VtXJHIDV?N} zK}U7sV>wn(%{o(RE%%%mpBAH3E11;Hk%uClqnG&{6qc#f%aX>b9e7=aEB9OkT}f=# z>q(wsAiB#jd3u4fc8C1w$SQ(S);pTsfHtBe~?-Jgi`b7A4DL3l)+-lA%orF@N2swE>{Bc zBDmfTi2(D$vkAx{+PxFGC-_OEm8<0%DRl_bme34Nb_K7vr7!X9V|z%rH})gipn&!r zVicIKg<4Q%AskD9Mu1TF9>FP~j`!)T{4+;WFoFI(>ly%B?w2rwUP*pQ@Sb>zKqb%5 zR#8MPK_@gXfHP^r>pxB82YAOCnZ7!mwZG+S|IY+`e@?kyimv}HXvkF1{39HYtKL$z zjap77Oif^+tk8p!z)KGrfv&Vk4Dfbmy#Ys8mt+3iO5BC%rWZ}y;}-2{FC4;a0L=|Q0+(cSY4^wMaE87w4nWP^$y`DHaW&=87& z1k118atON07IaFGtf<|p_`_u3*BD&pk)J%0Vlu}s?quH}F*i(d@7Oo1_Bog>n)Xd*fx~=%C?M$kCXMb=S+TtAqwECFC3HJ6+|+mb6tM^gg}RB4lrd(O|xK22H^& ztFCbw3b(l{?Zr;S{3OaJEi9U~zh=h7tSng6B5?K^`Gs-%tJ!G;G0kz0`L@tmB$3Cjr z63xhvr<|E&u#iaD+F5+&wE^g2IKr;#^e5#{LN9FNwO!m9^egfYM}Z9MN+%Q^-lSQ! zpd?S`w9I~2%>8>7DC~S@iImVKno!k=-^AWu{rr~>O}6bl=?g8){9AF)-=qsIf&--WK|~Kl)1RK1|)76%3&(zo3@TuW{bqIKm+pRh7iljtP~-R*9IC;>iA& zU02IasYJpKQhB%nH+#Dbgyo6@^=-a(K7wG45ivw@U&ly*F00D4r2;ppOI=|2VI}z; z?i(>jdT8KD4}bqKZvWvYBE!Ad_bM_0C=WHf*fB*x+-Y(l7kQkStWN`~r00y_iGU?Aa_UN`F^&2}#meR-5sNBoc&D0n0%ty?EL;7bw%X z>s}#x2jiV=!()Q{nO(XkK}r2?y|K@vyGk zYC{c)OqPL#le?@YiCB(TF5=Yw4yQFAP7w#7cG=zhWYuT`aJevGs}QzKK2)Vl`Qy8l zdTMkX4p|cAgP{YFTBrM_6I0S4f;w7}BVZLL;vWKqX(f z2O@Mk%z_pzq(_hk_O&9Nhjd>$;Xh7>-FAk4l&>=UXW8HXLxuBS4Qr;tUt&Mxq$EKz z*~>hQg{Gfqxdd_tO6GnIk-nh$G)8Ti4dvrj_3g+{3|%i0e#>C{^6%nZrq z*B8_1y31s^d!3HX{$_N;82~%bCxc)uOb`JfL7oD+iywzGLtD8c%VE@KkScer(u>WX zuFSM?V;b~~-8>d$nZV@StW=L9U0&RPBg@>PtAYzSiyh3+gCa^ycZ z#oEK8fFp&--|26C?3iMTS4Wu)&f2X?-dq-(WUvU2Kz?UMa#3ur*a;1j+K`zIbR{p2 z<#LVqA$o$HwK3A=n!GuM8U~qFrt;0V)f1nL{42VyH!jSuf)-kH5QhJeOh+_8KfTBX zxuQ&kKM1sS^?@PcZG1OP|E^AI6^nnDc7h2lE0>t0IRAK$c{WBl;4w^IUShSd;via= zz{yIYi8J^_dRUsnvVAQT%ob~tjW8(PD6~yV-Xrpt&7NSbQPq`TbFr9KQBD;-^Z<3L z_bA`Nfypw11eLM!iQG9I5jE*!Mv;o+Ial}66Z_??eDPfQFaZKvFcHYfb|82sIE$#* ztd?0{Xy~*~Xf-(Y3$yG?Q!I=LZu@EZiyeCN3`Kq}+R;hfsdqUkW*F zUz}XaGmeCB+`0MiFp{49Prq}&7oY)|2#06u`NVw_M|MfQH*e7H#Z#gSi^ygURAT={ z^p58W&DRTm86$9tDO120(e8CXNA4W36A@Q|cdgW$!Z)<c0Ko>OVj_|V*az-<|QHK&j){hV%33}h3Rp52wy+3}Z;|z$!!6S>RfUBQ0G7LI#yrSc= zJM&%XJpRe{PQxO>Pi;(TT?pGsO;o2JPH zC<$9Y739KawW&HZ6c%F4=wW7IEv-K^0nZnZG=mH*2T2^`UgAqEklDjA52?udN-=NB zFPu8CJ6^ua96xM-tZI80bZ@t^j9P|Lf7nWUcW<+GKkjGTw>oFLAoke3sRzPoE82ow z-XS`qB)_6?=JZ9ra=OHPdPOD&bGoef6OwmD38Q}og<0>ZcX+7x$}Y<{163`SyT;BS z^!Q)7Tx-Hbl|JD{xnFxKuQNz+^^$w<3<67)xgba1+_KUXyX-Ua8>6QgoCHI2_0FgU zc@2z5ua5k{a0_Gc>YI_qc){T3F+M?qeviv7c4aHx!AR^#9hCEU!KVZb2F-vI$=?ga9kQ~9L^@cE+o(t;~>GP-M1of`EcSRI&rO@1_@ z^vC3+n_h%evaq^->}8|pCf6noAc35iF9}4NR8NSVdiP?U+gFbmsEFP0%-S4LnhHz3DS zOlqdVu80E5Xt4#S#e$P~<80Q4raTZYuzpX$PtuFos3jF?h2ClmQLMI9F{la6>K|b9 zrB7cdAB6S7JdhCIl{9+fgD>h7p9gDcy1uF0{O^xq<-;Zh{rvpW1`J$n1YA1MeYX|* zYAz=FvUIBDn3X!k8-tCGpj-3^hp!}2o5o^LQNhC(m$?&MtW%abx}?d=0?_*bBQ6}{ z4U)Er%$tZFKLRGXz4@u@MAa0ZVF}enzGqlwlnT7EK3^>6lYBV_$M22_erRN}{z680 zI9Dts0}_O$acqUXMc}sQQp1vjNp*lkHlo*iHH`uV(?os9CDb+2z8GRB{X`4Nj84{K zalJ!23r+0E5sWAo&(M2U^!E*^$6H#Q&Bn!9u^S3O>r}e6nF(1HwAG_3MD?Z#*u|2U ztLIyMQkJu6l|X4GpP}wn2MuInz&YB97!`VM+vBU!`16teP#zkl{)`PmU{D+`^9|S>Muvzhd?*?sh0U~u)kwU1(_>cb|54+g z?9L=GTa=5oEaxv_-QHB|qBoOsqo6C=Lf)U+qSi0|1Vcj;f8>LbSWf1vujDMFY~}*e zy{Mxj(p!$H)&C3AE0_iN2;~q7Cdk6ZSTJtijey&v96|&NkhiR}s7HnzX9h?k;I!*lT4Q;me!VN5Q z^O8l!xm!%XUI;en(&_~da~&DGEXdq7bnXSW{JY+{PBJC7wQSZVNl)Dkk0kOPOj#(d&fQ7m!26S@}yXnu2c{fL2U<=$bzHqKKXg0;?-qJRQ$Sxzh)hklGd+a zvSTnxaglHQ7UON%5i{}GWHJV9=)`!QHF3;JxS-4~wu~=K0Rm!EgpMM&Wsb5baYH2b zs57x~_~6uV4xAZ5MdpM9YP(6zdl4f9A{H*uaD*552Jbz_ZDe;B_jaYOPI*y#=3W&KffsN#wljyrNMXQxmv?>NE;56bgv2ic4Z{MVmoTA3| zRT+2KCWh}!`k+jP!WD{WWcRd-V7&v|UKHzInam28Ymuy3#mFPm4M{NC1gHGu$Sc(i z?_kDd$c_<6ZQD2P$2*aM+J0Z4->>slR~v^fx_MVx+G%bXXsf;>r&sb`lL)?0r8!ye zBX;bIh;VU}6-Q|*qG;vKAq_4y3q=8C(Qh1qefQbRBN_*FFnZ#F^-YYLa*FR++-Pw| zULHAyV!m~m%Ajguvrk$5O}kMzyh?kq^Nxl=@+#7@i(vTW=!fqT)!##(P?pwk{Zp6t zk|5zpRFsLV^toH?#L|dDbX6C;9ee?CmrD|f!-zJ|$2`l(z>VzMkH+{dH`a5luK zwkMbSTt-?ICIRVpRmN?~#jb_YB?SkceR{)&^o6V=A9>ml-e#5_M%f@_aL}qe(^HEw zkAFKA3^Jnm-X#=Q;&(N{@s0i!wP7vc*za+7C+d9K;rr_1!9ejX z9{sY6NGd#`pnx>hge|s+ci>g{HXlT&@FigoX8t=tM>AxMOvhL`@kdMoSd6n#7TefCK%Y8W80 zC=Zq?k|P(PQ-m&<*@9p$0Ls-Tpb()SoWmh^p8vEF(a?g@9I|ekz7pL&2p}B0u}>Oj z=R%>m8x}^cSi(Icegx%2=_W!fO-ih=EaFe${X?B0S9T0aRoKqCmanc-IoywCtao%K z`PvZis8`vhnyQ2MGUlOPMGCDaY`EsOAi`LySBu?FhMY^ls-B#MTO!&gdg4(I=A|a= zgF2aylM$Ib{^j`f zC0Q-7wTxp7XyW8ECCe?~?E^29Bh^Eag-C!872+*hkvNy7AIuCLk|O60q|u2S;MeN~ zyOs^%s8Yo@L=d*s)!Fs&etb;xEqd0jHXt20Y~@;Jn97_P$AYcpVh5I=4r9FK zCT2IMU(uui`rU;+)g=C@p6gR0Anw((U(q7BN)pLZE1dL&6R4{{0Hj~n zUN&wMfIqjAzqe*CR;(j63nuXNPFFyrG9T!RgBQy@-Q$Nc^(|4C@{W-qpzs#7)n2 zL6}x<+WZzHcDY=~YqUNC?0!+KI3MsJX=9>Ls&gBb$ACSI^7LZD$}Rm4kH;vFTr#24 zC~Wc3C=@ZSDs-#b7YbV()hbdXw17a1_P1mVyZm!N^i?cCdit7Xw*Hn`^|v+lA7Nbo zmTn>M;HdW(mri-z8d(whV`{5t6Bb!a-9(mLO~*a=ut-lm)`_f6X01+r94F&aYP`p( zXkrTW8q@{g%B8#G1S%Ac&yNIk)`XTQ4IOv!N4Cp7O^is$cB)l!?j|B-(P`=(NB8UR zjQ8J1&OCrBk#PMbLrnw&{Uv;Pz@9E*yxo2mx&bwW5t%E*$(weogvp(QDUqJUE78R$ zCbtH75kzuv+R5WN8bJqkIp~Qi#XT`Syrm~Gehq%QzCZg$VZlr2<`*tZ)W!|&BYxH_ zH$~whfm@$Q2<+Exb!D~uR9)t^R4|t^Ka#QUtA(*IQPfddpl66OVt-d-FNd1=72fRp zV=dpaHtX_TG+Zt|$|vOcv;e;3K2KhVL>Rx8+c!|FB1w$64k)$2GJ-Y8Pz7q;#h}cm2askl=F(zOJ_yzRUN;mDGGGmQ-ew8niO}&Knr}gD_F;~?f1$m;AE<4! z7^cASv@UUB?mf*?gw+|{1{OU+Ry^6L$YNZC$+(V?FzJFZy2=zcDJ)IDstb0VJ#O|Q zz$zM3l*rHyM#*x(Q3)V4ykUZsV;-%Pf|A)H)w9XSh%xmdNMu5Mv3ymO zYg289RH-?nrR(_SZZ-F|pZ^DsDe8qUGbh(8m(IhtnY*Axw1YmgP2(vyXdo+n-Gl45RAFHn6 zX#H#qhyp`rp=8~l0;67Q&soM$QAVz0zImF4bb8UTvMqX(Uj!uBsye}kcn$h~DymZ@ z2Xn!5K4er0DC*nG5_#dlfdfE^1aQ z#^6q;9>QEYdP!}m%nmz?L`h3Q)U(|RtMB&5Ny2vg1wJ9B!98z%cO{<>E)mWE#;XYH zHun(86p*F_$Jm?L4I?{r1e|@(X+3^F%OjTk_e3STV0GoT~|m#S-*q57SCJ z$%2(FqjD5`UjZMtV}l-u52dzE)ccX5sKSv=+^Q3~fWTZ`XUEvsq$%x9I8`9I;Z3@e zWfLiSx<0SWuBCX1y_w)pN0fa!i|_w^1(d9jRd29qUzA$PV~beRQ>J| z2dDYnGY&4yX@j%t2Djn!?Xjbwh55z+=WPSP>|HSA<%ND5{Y|?yVN%1GzpL*kwiuhZ zqz6)zO)5H3Wzd=~_%kh|V!zv&8e%5PiIWJjdWzja%z4BQFc5-;|4S089#8SSBcx7}e>JuMJ%}-t^ zIJMa%hN4()(~{~BzOBp{_qvJwAe!T#m}NM8yB8@27(q^Q^(SH?FspV2TW<+&rRUGrkISyewXka9l7G4vz16itPg61s#-$i92vdq#^8jm?xMOU-hfvSEZFLgoC_7w7N^@IYNtGnaNP!PddpGz3G7G`CGvZ za1;iG;=||eKNba3r?HKqUx;SK-+IdYKiOIR)gt|OJ1eDsx3h}#`+)Qgn<0Jb{k{{8 zXv~M_doP~upT3#t>SA=1YWVr_`VQ7ZVSy4ejKnOxs$ikwV$?rm4@E<%Kve;G07hT- zWC_ItP@Gz3#V;hQ{-XU<(nudELJ}$l+@vlCMgj{&bNc93E85v>UR~}dv~=;2zae($21uM#L&yh$BpUKA4&&foh)T&g)|yNf#ou2DLQ#gr
@+O5BJTxKc0~L6++jy&lc56&u+Jl#ye- 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
Od7?B&%Ou)%#lw^BN-a~0 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⁡t#v9xb*AVWW(Emy)gCcLE z#6bV+qXr>Yol(0p+0ZT)beNb>qnny?dO-cQi6%|*0{4`kC2CYgKjrQ22DW0wv2Cww zXpwVC9W~{mf3P66$DivLGkmTq0&{r;^uZdCo;JlYRO}v2Hf_G9R*pse)XrX4>`UW2 ziXHfmOM)XKj7a;H{@vW}n~ZvMQ=5%ieBq+h2QWoA7^#Qt{+6QO9kR5xDUdjelpT~= zG++|%N?0iitIsUiz#p$CMwQ<_y`33PFNUSCuyt)&=2kAo!9V?*f`=Qvrn;BD7TRml%7|1KF@md zV)z{bu*?GhepB2V78Vse!P&Yo+u|`h+P}ZV{dQ%5A&fM@7zkbE`196eGeCy45>;z8 zvoa;7@7bj}-L_7UPSFN1kD14|uj+a~Xprc6C?c9>8H5^K2#QrX8lOf{gxmg`VzjvQ zw^$@=OLujX1CE;w--6{)5e~CN@>)g$UJwbG`LFqKvDRf3b=LNE*FX$844#ii%PY>` zte;i*Q=hz)qLk1yIhZYg?zj0Us*Y#OnG=s*4O zLD(*uNyA)M`~leTh6s*8mj?JT`5)+i*&$daM;+#iNSP{`cI)KWy=j z>53t(FV3YUk59g-FV3ZCo3Uh?8~}*3W`e14l&SS~wc7j+@8Ffxut0v4S|CepXlDnL znh*qJP+VMwPMiRcvYl-)^t-hA zt7k_xE}dC!tsdsIOSeV&Z89t=k;Ow3RU1b~f3z$SykYZe1Rq%KLr>NZkEXRO(Y&Yf zYcwBNol<_Zi#BLWJi2?pU%M>OZ+Hc_ZmNrqJWI`8piimha}uQM&EcR-E#-5nOoTp% zWq9kI?L^!D@hnrG^-F07y}Vb7%@w4-L~Y!beg(n3nfDO{?{XGUn3`H{{YuV^Wm;s$ z2SAj(IqY|~aEwc!4>~t0eWOv>oa~`#XR(++hO=|p6 z>16oDl)GvtM-rtBid_wa!}KfoG}F*w1IM(y*)BA7vBaKbAAQ8*MjMKyUgL5#rs_A%oE@Vf6uHp?Mq$*vzbdG+J<-VHzv@F++YyG3+7FhrcFLqpuV--!E z@LI0{5nU^t{eHN{EIM8jH>3EAaJT;)z~CX3cC>NLNR${@k(P-83kOn+pk?03GQJf} zUL#6Oo5~qS4BQxU1FW)+m$ayRSHziR2bh}#@L0ROC*BJS>dn}42&pI;ljs%h15NJOmC3N9+rZXCU!Q z&C+0Rdk>Cc4**#)>(GaNt$ZNqjUe*(bOTE&SCIT&Lj7;&>~R9{V%aFt99R*Z$?CB^k^LMd0yZlLvL)^ZalKhv
GQ@LiN=H+};@;-0 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 Y=KMh@Dd0>*;I9J%FmDD;55wF40H|To82|tP literal 0 HcmV?d00001 diff --git a/mobile/licensesdialog_lib/.gitignore b/mobile/licensesdialog_lib/.gitignore index 2f744e189d2..11119f91c64 100755 --- a/mobile/licensesdialog_lib/.gitignore +++ b/mobile/licensesdialog_lib/.gitignore @@ -28,4 +28,4 @@ gen-external-apklibs/ # Other # ######### .~lock* -tmp \ No newline at end of file +tmp diff --git a/mobile/licensesdialog_lib/de.psdev.licensesdialog/.classpath b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.classpath new file mode 100755 index 00000000000..7330f706f01 --- /dev/null +++ b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/mobile/licensesdialog_lib/de.psdev.licensesdialog/.project b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.project new file mode 100644 index 00000000000..27a0d6424e6 --- /dev/null +++ b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.project @@ -0,0 +1,33 @@ + + + de.psdev.licensesdialog + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/mobile/licensesdialog_lib/de.psdev.licensesdialog/.settings/org.eclipse.jdt.core.prefs b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.settings/org.eclipse.jdt.core.prefs new file mode 100755 index 00000000000..48ab4c6b113 --- /dev/null +++ b/mobile/licensesdialog_lib/de.psdev.licensesdialog/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/mobile/licensesdialog_lib/de.psdev.licensesdialog/project.properties b/mobile/licensesdialog_lib/de.psdev.licensesdialog/project.properties index 22e1c480410..58947f7e29a 100644 --- a/mobile/licensesdialog_lib/de.psdev.licensesdialog/project.properties +++ b/mobile/licensesdialog_lib/de.psdev.licensesdialog/project.properties @@ -11,5 +11,6 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-14 +target=android-22 android.library=true +android.library.reference.1=../../google-android-support-v7-appcompat_lib From b0f0013d79079d5020dd17ebc18d332e31f31596 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 18:44:51 +0100 Subject: [PATCH 10/17] minor modifications in text messages and formatting Change-Id: I65220d7ea7d0b1bad9b1dc43a51a939b23a95e17 --- .../shared/racemap/ManeuverMarkerClickedListener.java | 5 +++-- .../sailing/gwt/ui/client/shared/racemap/RaceMap.java | 4 +--- .../ui/client/shared/racemap/RaceMapImageManager.java | 10 +++++----- .../gwt/home/solutions/SailingAnalyticsNotes.html | 4 ++-- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java index 0c54578c0ed..229f221ad6b 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkerClickedListener.java @@ -19,8 +19,9 @@ public class ManeuverMarkerClickedListener implements ClickMapHandler { @Override public void onEvent(ClickMapEvent event) { - if (racemap.getLastInfoWindow() != null) { - racemap.getLastInfoWindow().close(); + final InfoWindow lastInfoWindow = racemap.getLastInfoWindow(); + if (lastInfoWindow != null) { + lastInfoWindow.close(); } LatLng where = racemap.getCoordinateSystem().toLatLng(maneuver.position); InfoWindowOptions options = InfoWindowOptions.newInstance(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index 9eb4a019241..c008b843ddd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -2209,7 +2209,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private void createAndAddMarkerOfManeuver(ManeuverDTO maneuver) { LatLng latLng = coordinateSystem.toLatLng(maneuver.position); - Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack + Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndDirectionIndicatingColor .get(new Pair(maneuver.type, ManeuverColor.getManeuverColor(maneuver))); MarkerOptions options = MarkerOptions.newInstance(); options.setIcon(maneuverMarker.getIcon_MarkerImage()); @@ -2793,11 +2793,9 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe public void setLastInfoWindow(InfoWindow infoWindow) { lastInfoWindow = infoWindow; - } public InfoWindow getLastInfoWindow() { return lastInfoWindow; } - } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java index 8aa203104ea..4dffc1946d0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java @@ -37,19 +37,19 @@ public class RaceMapImageManager { */ protected ImageTransformer windSensorIconTransformer; - protected Map, Marker> maneuverIconsForTypeAndTargetTack; + protected Map, Marker> maneuverIconsForTypeAndDirectionIndicatingColor; private static RaceMapResources resources = GWT.create(RaceMapResources.class); public RaceMapImageManager() { - maneuverIconsForTypeAndTargetTack = new HashMap, Marker>(); + maneuverIconsForTypeAndDirectionIndicatingColor = new HashMap, Marker>(); trueNorthIndicatorIconTransformer = new ImageTransformer(resources.trueNorthIndicatorIcon()); combinedWindIconTransformer = new ImageTransformer(resources.combinedWindIcon()); windSensorIconTransformer = new ImageTransformer(resources.expeditionWindIcon()); } /** - * Loads the map overlay icons The method can only be called after the map is loaded. The {@link #maneuverIconsForTypeAndTargetTack} map + * Loads the map overlay icons The method can only be called after the map is loaded. The {@link #maneuverIconsForTypeAndDirectionIndicatingColor} map * is filled for all combinations of {@link ManeuverType maneuver types} and {@link ManeuverColor colors}. */ public void loadMapIcons(MapWidget map) { @@ -61,10 +61,10 @@ public class RaceMapImageManager { Marker icon; for (ManeuverType maneuver : maneuvers) { icon = createMarker(resources.maneuverMarkerRed()); - maneuverIconsForTypeAndTargetTack + maneuverIconsForTypeAndDirectionIndicatingColor .put(new Util.Pair(maneuver, ManeuverColor.RED), icon); icon = createMarker(resources.maneuverMarkerGreen()); - maneuverIconsForTypeAndTargetTack + maneuverIconsForTypeAndDirectionIndicatingColor .put(new Util.Pair(maneuver, ManeuverColor.GREEN), icon); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html index 78b291f3661..34d48bafbfc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/resources/com/sap/sailing/gwt/home/solutions/SailingAnalyticsNotes.html @@ -22,8 +22,8 @@

  • Show maneuver markers on the race board by default (tacks, jibes and penalty circles) with a smaller icon, which shows an info bubble when the marker is clicked. - The icon turns green if the direction change in degrees is positive - (to starboard) and red if negative (to port). + The icon turns green if the direction change is to starboard + and red if to port.
  • From 9a96e75629fa4296791f0f50cd6ebec9f769179d Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 18:45:36 +0100 Subject: [PATCH 11/17] reduced visibility of new RaceMap methods required by ManeuverMarkerClickedListener; package-protected is enough Change-Id: If5f10534d282a11797b2dce32dd96243e46607ed --- .../sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index c008b843ddd..dc118450aee 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -2787,15 +2787,15 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return null; } - public DelegateCoordinateSystem getCoordinateSystem() { + DelegateCoordinateSystem getCoordinateSystem() { return coordinateSystem; } - public void setLastInfoWindow(InfoWindow infoWindow) { + void setLastInfoWindow(InfoWindow infoWindow) { lastInfoWindow = infoWindow; } - public InfoWindow getLastInfoWindow() { + InfoWindow getLastInfoWindow() { return lastInfoWindow; } } From 2728034d381926e8bb7a7a2d0533d2b3bd70933c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 21:11:44 +0100 Subject: [PATCH 12/17] adjusting border of maps settings button to new Google Maps 3.32 layout, reducing from 30px to 10px Change-Id: I8054cda7a77c314932cbf5281cb93d6073f4de6a --- .../src/com/sap/sse/gwt/resources/css/CommonControls.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/resources/css/CommonControls.css b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/resources/css/CommonControls.css index a30d6ccc9a7..ae26656e121 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/resources/css/CommonControls.css +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/resources/css/CommonControls.css @@ -330,7 +330,7 @@ body ::-webkit-scrollbar-track { } .gwt-MapSettingsButton { - margin-right: 30px; + margin-right: 10px; margin-top: 5px; border-top-left-radius: 25px; border-top-right-radius: 25px; From e3f8f87c7d81d28f8b31eb87ed9c36f7a38c0e3c Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 21:49:56 +0100 Subject: [PATCH 13/17] fixed ParseTracTracJSONServiceOutputTest.testWeymouthURIsOnline by being more tolerant with HIDDEN races Change-Id: Ie82b496cc56a87767f4f047e0e0af9631b64a731 --- .../ParseTracTracJSONServiceOutputTest.java | 9 ++++++--- .../domain/tractracadapter/RaceRecord.java | 20 +++++++++---------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ParseTracTracJSONServiceOutputTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ParseTracTracJSONServiceOutputTest.java index aad99774831..7a5a922795d 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ParseTracTracJSONServiceOutputTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ParseTracTracJSONServiceOutputTest.java @@ -99,12 +99,15 @@ public class ParseTracTracJSONServiceOutputTest { // replay races may have an empty / null live URI assertTrue(race.getLiveURI() == null || new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4400").equals(race.getLiveURI())); // and they point to stored data in the form of a binary ".mtb" file - String expectedSuffix = ".mtb"; + final String expectedSuffix = ".mtb"; assertTrue(race.getStoredURI().toString().endsWith(expectedSuffix) || new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4401").equals(race.getStoredURI())); } else { - assertEquals(new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4400"), race.getLiveURI()); - assertEquals(new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4401"), race.getStoredURI()); + if (!"HIDDEN".equals(race.getRaceStatus())) { + // hidden races may have a null live URI and perhaps have already been converted to an .mtb, so only assert if not a HIDDEN race + assertEquals(new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4400"), race.getLiveURI()); + assertEquals(new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":4401"), race.getStoredURI()); + } } } } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java index 54ae75fd10f..334e36e4e7f 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/RaceRecord.java @@ -107,16 +107,16 @@ public class RaceRecord { throw e; } if (loadLiveAndStoredURI) { - Map paramURLContents = parseParams(paramURL); - String liveURIAsString = paramURLContents.get(LIVE_URI_PROPERTY); - liveURI = liveURIAsString == null ? null : new URI(liveURIAsString); - String storedURIAsString = paramURLContents.get(STORED_URI_PROPERTY); - if (storedURIAsString == null || storedURIAsString.startsWith("tcp:") || storedURIAsString.startsWith("http:") || - storedURIAsString.startsWith("https:")) { - storedURI = storedURIAsString == null ? null : new URI(storedURIAsString); - } else { - storedURI = new URI(baseURL+"/"+storedURIAsString); - } + Map paramURLContents = parseParams(paramURL); + String liveURIAsString = paramURLContents.get(LIVE_URI_PROPERTY); + liveURI = liveURIAsString == null ? null : new URI(liveURIAsString); + String storedURIAsString = paramURLContents.get(STORED_URI_PROPERTY); + if (storedURIAsString == null || storedURIAsString.startsWith("tcp:") || storedURIAsString.startsWith("http:") || + storedURIAsString.startsWith("https:")) { + storedURI = storedURIAsString == null ? null : new URI(storedURIAsString); + } else { + storedURI = new URI(baseURL+"/"+storedURIAsString); + } } else { paramURLAsString = null; liveURI = null; From a87cbdc8f05d9b166f743e06db0564f90113bb13 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 23:04:28 +0100 Subject: [PATCH 14/17] fixing TracTrac test cases; no more port 1520/1521, and using new method to construct paramURL if nothing else is known (no more clientparams.php) Change-Id: I453c6247d0b142215bd4039885e9898a0da8bfbb --- .../domain/test/AbstractTracTracLiveTest.java | 16 ++++++++++------ .../sap/sailing/domain/test/ConcurrencyTest.java | 7 ++++++- .../ManeuverDetectionOnMdM2011SemifinalTest.java | 4 +++- .../domain/test/OnlineTracTracBasedTest.java | 15 ++++++++++++++- .../MartinAbstractMarkPassingTest.java | 5 +++-- .../MartinMarkPassingSplineBasedTest.java | 3 ++- .../TracTracConnectionConstants.java | 6 +++--- 7 files changed, 41 insertions(+), 15 deletions(-) diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java index c89a195de69..1ce511c5810 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java @@ -70,7 +70,7 @@ public abstract class AbstractTracTracLiveTest extends StoredTrackBasedTest { public void setUp() throws MalformedURLException, IOException, InterruptedException, URISyntaxException, SubscriberInitializationException, ParseException, CreateModelException { final String eventID = "event_20110505_SailingTea"; final String raceID = "bd8c778e-7c65-11e0-8236-406186cbf87c"; - setUp(getParamURL(eventID, raceID), getLiveURI(), getStoredURI()); + setUp(getParamURL(eventID, raceID), /* liveURI */ null, /* storedURI */ null); } public static URI getStoredURI() throws URISyntaxException { @@ -82,8 +82,7 @@ public abstract class AbstractTracTracLiveTest extends StoredTrackBasedTest { } public static URL getParamURL(final String eventID, final String raceID) throws MalformedURLException { - return new URL("http://" + TracTracConnectionConstants.HOST_NAME + "/events/event_20110505_SailingTea/clientparams.php?event="+eventID+ - "&race="+raceID); + return new URL("http://" + TracTracConnectionConstants.HOST_NAME + "/events/"+eventID+"/"+raceID+".txt"); } protected IEventSubscriber getEventSubscriber() { @@ -99,11 +98,16 @@ public abstract class AbstractTracTracLiveTest extends StoredTrackBasedTest { final IRace race = ModelLocator.getEventFactory().createRace(new URI(paramUrl.toString())); this.race = race; ISubscriberFactory subscriberFactory = SubscriptionLocator.getSusbcriberFactory(); - eventSubscriber = subscriberFactory.createEventSubscriber(race.getEvent(), liveUri, storedUri); - raceSubscriber = subscriberFactory.createRaceSubscriber(race, liveUri, storedUri); + if (storedUri == null) { + eventSubscriber = subscriberFactory.createEventSubscriber(race.getEvent()); + raceSubscriber = subscriberFactory.createRaceSubscriber(race); + } else { + eventSubscriber = subscriberFactory.createEventSubscriber(race.getEvent(), liveUri, storedUri); + raceSubscriber = subscriberFactory.createRaceSubscriber(race, liveUri, storedUri); + } assertNotNull(race); // Initialize data controller using live and stored data sources - if (storedUri.toString().startsWith("file:")) { + if (storedUri != null && storedUri.toString().startsWith("file:")) { try { URI oldStoredUri = storedUri; storedUri = new URI(storedUri.toString().replaceFirst("file:/([^/])", "file:////$1")); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConcurrencyTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConcurrencyTest.java index a90757ec3df..0204088e717 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConcurrencyTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConcurrencyTest.java @@ -6,6 +6,7 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; import java.util.List; @@ -27,6 +28,7 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tractracadapter.ReceiverType; +import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.tractrac.model.lib.api.event.CreateModelException; import com.tractrac.subscription.lib.api.SubscriberInitializationException; @@ -43,7 +45,10 @@ public class ConcurrencyTest extends OnlineTracTracBasedTest { super.setUp(); // load Race8 of RC44 Cup in Sweden super.setUp("event_20110815_RCSwedenCu", - /* raceId */ "1cdf8398-cafe-11e0-8c8e-406186cbf87c", new ReceiverType[] { ReceiverType.MARKPASSINGS, + /* raceId */ "event_20110815_RCSwedenCu-Race8", + /* liveUri */ null, + /* storedUri */ tractracTunnel ? new URI("tcp://"+tractracTunnelHost+":"+TracTracConnectionConstants.PORT_TUNNEL_STORED) : new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":" + TracTracConnectionConstants.PORT_STORED), + new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS }); getTrackedRace().recordWind( new WindImpl(/* position */null, MillisecondsTimePoint.now(), new KnotSpeedWithBearingImpl(12, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnMdM2011SemifinalTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnMdM2011SemifinalTest.java index ada2782a64c..e5603916460 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnMdM2011SemifinalTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnMdM2011SemifinalTest.java @@ -53,7 +53,9 @@ public class ManeuverDetectionOnMdM2011SemifinalTest extends OnlineTracTracBased public void setUp() throws MalformedURLException, IOException, InterruptedException, URISyntaxException, ParseException, SubscriberInitializationException, CreateModelException { super.setUp(); super.setUp("event_20110505_SailingTea", // Semifinale - /* raceId */ "01ea3604-02ef-11e1-9efc-406186cbf87c", new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS }); + /* raceId */ "01ea3604-02ef-11e1-9efc-406186cbf87c", + /* liveUri */ null, /* storedUri */ null, + new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS }); TimePoint epoch = new MillisecondsTimePoint(0l); TimePoint now = MillisecondsTimePoint.now(); Map markPositions = new HashMap(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java index 815c328937b..730b08055cc 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java @@ -97,6 +97,12 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest { finishSetUp(receiverTypes); } + protected void setUp(String regattaName, String raceId, URI liveUri, URI storedUri, ReceiverType... receiverTypes) + throws MalformedURLException, IOException, InterruptedException, URISyntaxException, + SubscriberInitializationException, CreateModelException { + setUpWithoutLaunchingController(regattaName, raceId, liveUri, storedUri); + finishSetUp(receiverTypes); + } private void finishSetUp(ReceiverType... receiverTypes) throws InterruptedException { assertEquals(getExpectedEventName(), getTracTracEvent().getName()); @@ -208,9 +214,16 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest { protected void setUpWithoutLaunchingController(String regattaName, String raceId) throws FileNotFoundException, MalformedURLException, URISyntaxException, SubscriberInitializationException, CreateModelException { - final URL paramUrl = new URL("http://" + TracTracConnectionConstants.HOST_NAME + "/events/"+regattaName+"/clientparams.php?event="+regattaName+"&race="+raceId); final URI liveUri = tractracTunnel ? new URI("tcp://"+tractracTunnelHost+":"+TracTracConnectionConstants.PORT_TUNNEL_LIVE) : new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":" + TracTracConnectionConstants.PORT_LIVE); final URI storedUri = tractracTunnel ? new URI("tcp://"+tractracTunnelHost+":"+TracTracConnectionConstants.PORT_TUNNEL_STORED) : new URI("tcp://" + TracTracConnectionConstants.HOST_NAME + ":" + TracTracConnectionConstants.PORT_STORED); + setUpWithoutLaunchingController(regattaName, raceId, liveUri, storedUri); + } + + + protected void setUpWithoutLaunchingController(String regattaName, String raceId, final URI liveUri, + final URI storedUri) throws MalformedURLException, FileNotFoundException, URISyntaxException, + SubscriberInitializationException, CreateModelException { + final URL paramUrl = new URL("http://" + TracTracConnectionConstants.HOST_NAME + "/events/"+regattaName+"/"+raceId+".txt"); setUpWithoutLaunchingController(paramUrl, liveUri, storedUri); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java index 65457d3db7e..76e7a8aedf7 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java @@ -71,11 +71,12 @@ public abstract class MartinAbstractMarkPassingTest extends OnlineTracTracBasedT public void setUp() throws IOException, InterruptedException, URISyntaxException, ParseException, SubscriberInitializationException, CreateModelException { super.setUp(); - String raceID = "357c700a-9d9a-11e0-85be-406186cbf87c"; + String raceID = "event_20110609_KielerWoch-505_Race_2"; if (!loadData(raceID) && !forceReload) { System.out.println("Downloading new data from the web."); this.setUp("event_20110609_KielerWoch", - /* raceId */raceID, new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.MARKPOSITIONS, + /* raceId */raceID, /* liveUri */ null, /* storedUri */ null, + new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.MARKPOSITIONS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS }); OnlineTracTracBasedTest.fixApproximateMarkPositionsForWindReadOut(getTrackedRace(), new MillisecondsTimePoint(new GregorianCalendar(2011, 05, 23).getTime())); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java index 72acf4e8742..edc7785ce05 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.Map.Entry; import org.junit.Before; +import org.junit.Test; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; @@ -51,7 +52,7 @@ public class MartinMarkPassingSplineBasedTest extends MartinAbstractMarkPassingT TANGENT_SCALING_FACTOR = 100.0; } - + @Test public void testTangentScaling() { Map results = new HashMap(); double s = 100.0; diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracConnectionConstants.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracConnectionConstants.java index 48615bee92c..14eb07dae71 100644 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracConnectionConstants.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracConnectionConstants.java @@ -7,17 +7,17 @@ public interface TracTracConnectionConstants { final int PORT_TUNNEL_LIVE = 1520; //For official usage use 4412; final int PORT_TUNNEL_STORED = PORT_TUNNEL_LIVE + 1; //For official usage use 4413; - final int PORT_LIVE = 1520; //For official usage use 4400; for SAP-dedicated server use 1520 + final int PORT_LIVE = 4400; //For official usage use 4400; for SAP-dedicated server use 1520 final int PORT_STORED = PORT_LIVE + 1; //For official usage use 4401; /* - * ‘Status’ is the one that we used originally and is an enumerate with the values: + * "Status" is the one that we used originally and is an enumerate with the values: * - HIDDEN: the race is hidden * - OFFLINE: the race is visible but it can not be loaded * - ONLINE: the race is visible and online * - REPLAY: the race is online and the mtb-file has been created (this value is no longer being used as we no longer display information about whether data are being retrieved from data base or file) - * ‘Visibility’ was introduced this year to improve some short comings of the ‘status’ attribute and is an enumerate with the values: + * "Visibility" was introduced this year to improve some short comings of the "status" attribute and is an enumerate with the values: * - HIDDEN: the race is hidden (same meaning as above) * - OFFLINE: the race is visible but it can not be loaded (same meaning as above) * - ONLINE: the race can be loaded and it is in a live status (live or future) From b5e39cabb4edc105264d0e9a8fa4a1ae801a467f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 15 Feb 2016 23:09:05 +0100 Subject: [PATCH 15/17] removed old mark passing test stuff that Martin Hanysz once started with; it got obsoleted by Nick's work Change-Id: I8f679a1c39ab1986a6b6e41dc6a65a7bdb5bb912 --- .../MartinAbstractMarkPassingTest.java | 731 ------------------ .../MartinMarkPassingBearingBasedTest.java | 249 ------ .../MartinMarkPassingSplineBasedTest.java | 193 ----- 3 files changed, 1173 deletions(-) delete mode 100644 java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java delete mode 100644 java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingBearingBasedTest.java delete mode 100644 java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java deleted file mode 100644 index 76e7a8aedf7..00000000000 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinAbstractMarkPassingTest.java +++ /dev/null @@ -1,731 +0,0 @@ -package com.sap.sailing.domain.test.markpassing; - -import static org.junit.Assert.assertEquals; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.NavigableSet; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.Bearing; -import com.sap.sailing.domain.common.Distance; -import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.Position; -import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.DegreeBearingImpl; -import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; -import com.sap.sailing.domain.common.impl.WindImpl; -import com.sap.sailing.domain.common.impl.WindSourceImpl; -import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.test.OnlineTracTracBasedTest; -import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; -import com.sap.sailing.domain.tracking.DynamicTrackedRace; -import com.sap.sailing.domain.tracking.MarkPassing; -import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; -import com.sap.sailing.domain.tractracadapter.ReceiverType; -import com.sap.sse.common.TimePoint; -import com.sap.sse.common.impl.MillisecondsTimePoint; -import com.tractrac.model.lib.api.event.CreateModelException; -import com.tractrac.subscription.lib.api.SubscriberInitializationException; - -/** - * Tests the mark passing algorithm by using the data provided by an {@link OnlineTracTracBasedTest}. Subclasses may - * implement different mark passing detection algorithms. - * - * @author Martin Hanysz - * - */ -public abstract class MartinAbstractMarkPassingTest extends OnlineTracTracBasedTest { - /** - * How many milliseconds may the given and computed mark passings drift apart before being counted as a miss. - */ - private static final int TIMEDELTA_TOLERANCE = 10000; - - /** - * Reload the test data from the web? - */ - private boolean forceReload = false; - - public MartinAbstractMarkPassingTest() throws MalformedURLException, URISyntaxException { - super(); - } - - public void setUp() throws IOException, InterruptedException, URISyntaxException, ParseException, SubscriberInitializationException, CreateModelException { - super.setUp(); - String raceID = "event_20110609_KielerWoch-505_Race_2"; - if (!loadData(raceID) && !forceReload) { - System.out.println("Downloading new data from the web."); - this.setUp("event_20110609_KielerWoch", - /* raceId */raceID, /* liveUri */ null, /* storedUri */ null, - new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.MARKPOSITIONS, - ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS }); - OnlineTracTracBasedTest.fixApproximateMarkPositionsForWindReadOut(getTrackedRace(), - new MillisecondsTimePoint(new GregorianCalendar(2011, 05, 23).getTime())); - getTrackedRace().recordWind( - new WindImpl(/* position */null, MillisecondsTimePoint.now(), new KnotSpeedWithBearingImpl(12, - new DegreeBearingImpl(65))), new WindSourceImpl(WindSourceType.WEB)); - saveData(); - } - } - - /** - * Loads stored data for the given raceID or returns false if no data is present. - * - * @param raceID - * - ID of the race to load from disk - * @return true if data was loaded, false if not - */ - private boolean loadData(String raceID) { - String path = null; - File file = new File("resources/"); - if (file.exists() && file.isDirectory()) { - for (String fileName : file.list()) { - if (fileName.endsWith(".data") && fileName.contains(raceID)) { - path = "resources/" + fileName; - break; - } - } - } - if (path == null) - return false; - FileInputStream fs = null; - ObjectInputStream os = null; - Object obj = null; - - try { - System.out.print("Loading cached data for raceID " + raceID + "..."); - fs = new FileInputStream(path); - os = new ObjectInputStream(fs); - obj = os.readObject(); - System.out.println("done!"); - } catch (ClassNotFoundException | IOException e) { - e.printStackTrace(); - return false; - } finally { - if (os != null) { - try { - os.close(); - } catch (IOException e) { - e.printStackTrace(); - return false; - } - } - if (fs != null) { - try { - fs.close(); - } catch (IOException e) { - e.printStackTrace(); - return false; - } - } - } - - if (obj != null && obj instanceof DynamicTrackedRaceImpl) { - setTrackedRace((DynamicTrackedRaceImpl) obj); - setRace(getTrackedRace().getRace()); - return true; - } - return false; - } - - /** - * Saves current result of getTrackedRace to disk for future reuse. - */ - private void saveData() { - DynamicTrackedRace trackedRace = getTrackedRace(); - String racePath = "resources/" + trackedRace.getRace().getId() + ".data"; - FileOutputStream fs = null; - ObjectOutputStream os = null; - try { - System.out.println("Caching data for raceID " + trackedRace.getRace().getId()); - File f = new File(racePath); - f.createNewFile(); - fs = new FileOutputStream(f); - os = new ObjectOutputStream(fs); - os.writeObject(trackedRace); - } catch (IOException e) { - e.printStackTrace(); - return; - } finally { - if (os != null) { - try { - os.close(); - } catch (IOException e) { - e.printStackTrace(); - return; - } - } - if (fs != null) { - try { - fs.close(); - } catch (IOException e) { - e.printStackTrace(); - return; - } - } - } - } - - public void testMarkPassings() { - List markPassings = computeAllMarkPassings(); - // compare computed mark passings to given ones - int overallMisses = compareCalculatedAndGivenPassings(markPassings, true); - assertEquals("Calculation returned less mark passings than the test data contains", 0, overallMisses); - } - - /** - * This method starts the actual mark passing detection algorithm by handing a sequence of {@link GPSFix}es of each - * {@link Competitor} into the {@link MartinAbstractMarkPassingTest#computeMarkPassings(Competitor, GPSFixMoving)} - * method. For every competitor, sequences of mark passings for each waypoint of the course can be calculated. One - * sequence may contain multiple possible mark passings for the same waypoint that may represent the same passing of - * that specific waypoint. The list of sequences returned in the result should contain one sequence for each time - * the waypoint has to be passed to complete the course. - * - * @return a {@link Map} from each {@link Competitor} to a {@link Map} from each {@link Waypoint} to a {@link List} - * of mark passing sequences - */ - protected List computeAllMarkPassings() { - ArrayList markPassings = new ArrayList(); - - // To imitate GPSFixes that are received over time, we hand the GPSFixes to the detection algorithm in - // chronological order - HashMap> fixesIterators = new HashMap>(); - HashMap nextFixes = new HashMap(); - - // get all the GPSFix iterators - for (Competitor competitor : getRace().getCompetitors()) { - try { - getTrackedRace().getTrack(competitor).lockForRead(); - // from the start of tracking or "the dawn of time" - TimePoint start = getTrackedRace().getStartOfTracking() != null ? getTrackedRace().getStartOfTracking() - : new MillisecondsTimePoint(0); - fixesIterators.put(competitor, getTrackedRace().getTrack(competitor).getRawFixesIterator(start, true)); - } finally { - getTrackedRace().getTrack(competitor).unlockAfterRead(); - } - } - - // initially fill the next fix of each competitor to hand into the mark passing algorithm - for (Entry> entry : fixesIterators.entrySet()) { - if (entry.getValue().hasNext()) - nextFixes.put(entry.getKey(), entry.getValue().next()); - } - - while (!nextFixes.isEmpty()) { - // Find the chronologically first unhandled fix. - Entry firstUnhandledFix = null; - for (Entry entry : nextFixes.entrySet()) { - if (firstUnhandledFix == null - || entry.getValue().getTimePoint().compareTo(firstUnhandledFix.getValue().getTimePoint()) < 0) { - firstUnhandledFix = entry; - } - } - if (firstUnhandledFix != null) { - // compute a possible mark passing - MarkPassing computedPassing = computeMarkPassings(firstUnhandledFix.getKey(), - firstUnhandledFix.getValue()); - // replace the fix we just handled by the next fix of the competitor's track - if (fixesIterators.get(firstUnhandledFix.getKey()).hasNext()) { - nextFixes.put(firstUnhandledFix.getKey(), fixesIterators.get(firstUnhandledFix.getKey()).next()); - } else { - // If no further fixes can be obtained from the iterator, remove the competitor from the nextFixes - // map. - // This ensures the while loop eventually terminates after all fixes have been analyzed. - nextFixes.remove(firstUnhandledFix.getKey()); - } - firstUnhandledFix = null; - if (computedPassing != null) { - // A new mark passing has been detected. - // Find out if it overwrites a previous mark passing or is a new one. - MarkPassing latestPassingOfCompetitor = null; - int index = -1; - for (int i = 0; i < markPassings.size(); i++) { - MarkPassing p = markPassings.get(i); - if (p.getCompetitor().equals(computedPassing.getCompetitor())) { - latestPassingOfCompetitor = p; - index = i; - } - } - - if (latestPassingOfCompetitor != null - && latestPassingOfCompetitor.getWaypoint().equals(computedPassing.getWaypoint())) { - // Latest passing of the competitor was at the same waypoint -> replace it with the new one - markPassings.set(index, computedPassing); - } else { - markPassings.add(computedPassing); - } - } - } - } - - return markPassings; - } - - /** - * This method starts the actual mark passing detection algorithm. It is supposed to analyze if the given - * {@link Competitor} passed a {@link Mark} at or before the given {@link GPSFixMoving}. If a {@link MarkPassing} - * for a previously passed {@link Waypoint} is detected, it must only return a non-null result, if the returned - * {@link MarkPassing} should overwrite the previously returned one. - * - * @param competitor - * - the {@link Competitor} the given {@link GPSFixMoving} belongs to - * @param fix - * - the {@link GPSFixMoving} representing the latest known position of the given {@link Competitor} - * @return a {@link List} of mark passings - */ - abstract MarkPassing computeMarkPassings(Competitor competitor, GPSFixMoving fix); - - /** - * Compares the computed mark passings to the given ones. For each given sequence of mark passings, the one with the - * timestamp closest to the given data is selected. - * - * @param markPassings - * - a {@link Map} from each {@link Competitor} to a {@link Map} from each {@link Waypoint} to a - * {@link List} of mark passing sequences - * @return how many mark passings were missed or detected way too early or too late - */ - protected int compareCalculatedAndGivenPassings(List markPassings, boolean printDebug) { - int overallMisses = 0; - Iterable competitors = getRace().getCompetitors(); - for (Competitor c : competitors) { - int misses = 0; - NavigableSet givenPassingsForCompetitor = getTrackedRace().getMarkPassings(c); - List calculatedPassingsForCompetitor = new ArrayList(); - for (MarkPassing p : markPassings) { - if (p.getCompetitor().equals(c)) { - calculatedPassingsForCompetitor.add(p); - } - } - if (printDebug) - System.out.println("Competitor is " + c.getName()); - // Simultaneously iterate over given and computed mark passings and calculate the timedelta - ListIterator calculatedPassingsIt = calculatedPassingsForCompetitor.listIterator(); - for (MarkPassing givenPassing : givenPassingsForCompetitor) { - Waypoint passedWaypoint = givenPassing.getWaypoint(); - MarkPassing calculatedPassing; - if (calculatedPassingsIt.hasNext()) { - calculatedPassing = calculatedPassingsIt.next(); - } else { - calculatedPassing = null; - } - - if (calculatedPassing != null && calculatedPassing.getWaypoint().equals(passedWaypoint)) { - long timedelta = calculatedPassing.getTimePoint().asMillis() - - givenPassing.getTimePoint().asMillis(); - String waypointType = isGate(passedWaypoint) ? "Gate" : "Buoy"; - if (Math.abs(timedelta) < TIMEDELTA_TOLERANCE) { - // counts as detected - if (printDebug) - System.out.println("\tTimedelta of calculated mark passing for waypoint " - + passedWaypoint.getName() + " (" + waypointType + "): " + timedelta + "ms, " - + calculatedPassing.getTimePoint().asDate() + "(computed) vs. " - + givenPassing.getTimePoint().asDate() + "(given)"); - } else { - // timedelta too huge, counts as missed - misses++; - overallMisses++; - if (printDebug) - System.out.println("\tPassings of waypoint " + passedWaypoint.getName() + " (" - + waypointType + ") are detected way off (" + timedelta + "ms, " - + calculatedPassing.getTimePoint().asDate() + ")"); - } - } else { - // mark passing for given waypoint - misses++; - overallMisses++; - if (printDebug) - System.out.println("\tNo passings of waypoint " + passedWaypoint.getName()); - if (calculatedPassingsIt.hasPrevious()) { - // rewind the iterator to the previous entry - calculatedPassingsIt.previous(); - } - } - } - if (printDebug) - System.out.println("\t" + misses + " waypoints were missed."); - } - if (printDebug) - System.out.println("Overall, " + overallMisses + " mark passings were missed."); - return overallMisses; - } - - /** - * Get the previous {@link Waypoint} of a given {@link Waypoint}. - * - * @param waypoint - * - the {@link Waypoint} to obtain the predecessor of - * @return a {@link Waypoint} that has to be passed before the given {@link Waypoint} of the {@link Course}, or null - * if none - */ - protected Waypoint getPreviousWaypoint(Waypoint waypoint) { - Course course = getRace().getCourse(); - try { - course.lockForRead(); - int i = course.getIndexOfWaypoint(waypoint); - for (Waypoint w : course.getWaypoints()) { - if (course.getIndexOfWaypoint(w) == i - 1) { - return w; - } - } - } finally { - course.unlockAfterRead(); - } - return null; - } - - /** - * Get the next {@link Waypoint} after the given {@link Waypoint}. - * - * @param waypoint - * - the {@link Waypoint} to obtain the successor of - * @return a {@link Waypoint} that has to be passed after the given {@link Waypoint} of the {@link Course}, or null - * if none - */ - protected Waypoint getNextWaypoint(Waypoint waypoint) { - Course course = getRace().getCourse(); - try { - course.lockForRead(); - int i = course.getIndexOfWaypoint(waypoint); - for (Waypoint w : course.getWaypoints()) { - if (course.getIndexOfWaypoint(w) == i + 1) { - return w; - } - } - } finally { - course.unlockAfterRead(); - } - return null; - } - - /** - * Get the passing side of any given {@link Mark}. For single buoys this returns - * {@link Waypoint#getPassingInstructions()}, for gates, the passing side of the {@link Waypoint}'s first - * {@link Mark} is calculated and depending on the given {@link Mark} is returned unchanged (m = Mark 1) or inverted - * (m = Mark 2). Since the calculation of the passing side uses the {@link DynamicGPSFixTrack} of the - * {@link Waypoint}'s {@link Mark}s, a {@link TimePoint} has to be specified. - * - * @param waypoint - * - the {@link Waypoint} to get the passing side of - * @param m - * - the {@link Mark} of the {@link Waypoint} to get the passing side of - * @param timePoint - * - the {@link TimePoint} to get the passing side at - * @return the {@link NauticSide} the given {@link Mark} of the given {@link WayPoint} has to be passed on at the - * given {@link TimePoint} - */ - protected PassingInstruction getPassingInstructionOfMark(Waypoint waypoint, Mark m, TimePoint timePoint) { - if (isGate(waypoint)) { - PassingInstruction mark1PassingInstruction = getPassingInstructionForMark1OfGate(waypoint, timePoint); - if (m.equals(waypoint.getMarks().iterator().next())) { - // m is mark 1 of gate - return mark1PassingInstruction; - } else if (mark1PassingInstruction.equals(PassingInstruction.Starboard)) { - // m is mark 2 of gate -> opposite PassingInstruction of mark 1 - return PassingInstruction.Port; - } else { - return PassingInstruction.Starboard; - } - } else { - // waypoint is not a gate - return waypoint.getPassingInstructions(); - } - } - - /** - * Calculate the passing side of {@link Mark} 1 of the given {@link Waypoint} at the given {@link TimePoint}. - * - * @param waypoint - * - the {@link Waypoint} to calculate the passing side for - * @param timePoint - * - the {@link TimePoint} to calculate the passing side at - * @return the {@link NauticSide} the {@link Mark} 1 of the given {@link Waypoint} has to be passed on - */ - protected PassingInstruction getPassingInstructionForMark1OfGate(Waypoint waypoint, TimePoint timePoint) { - if (!isGate(waypoint)) { - return null; - } - // calculate the passing side of the first mark in the waypoints marks - Position mark1Pos = null; - Iterator markIt = waypoint.getMarks().iterator(); - DynamicGPSFixTrack mark1Track = getTrackedRace().getOrCreateTrack(markIt.next()); - try { - mark1Track.lockForRead(); - mark1Pos = mark1Track.getFirstRawFixAtOrAfter(timePoint).getPosition(); - } finally { - mark1Track.unlockAfterRead(); - } - - Position mark2Pos = null; - DynamicGPSFixTrack mark2Track = getTrackedRace().getOrCreateTrack(markIt.next()); - try { - mark2Track.lockForRead(); - mark2Pos = mark2Track.getFirstRawFixAtOrAfter(timePoint).getPosition(); - } finally { - mark2Track.unlockAfterRead(); - } - - if (getRace().getCourse().getFirstWaypoint().equals(waypoint)) { - // first waypoint of the course, racing direction is towards next waypoint - Position nextWpPos = getTrackedRace().getApproximatePosition(getNextWaypoint(waypoint), timePoint); - Bearing mark1ToNextWp = mark1Pos.getBearingGreatCircle(nextWpPos); - Bearing mark2ToNextWp = mark2Pos.getBearingGreatCircle(nextWpPos); - if (mark1ToNextWp.getDifferenceTo(mark2ToNextWp).getDegrees() > 0) { - return PassingInstruction.Starboard; - } else { - return PassingInstruction.Port; - } - } else { - // racing direction is from previous waypoint - Position prevWpPos = getTrackedRace().getApproximatePosition(getPreviousWaypoint(waypoint), timePoint); - Bearing prevWpToMark1 = prevWpPos.getBearingGreatCircle(mark1Pos); - Bearing prevWpToMark2 = prevWpPos.getBearingGreatCircle(mark2Pos); - if (prevWpToMark1.getDifferenceTo(prevWpToMark2).getDegrees() > 0) { - return PassingInstruction.Port; - } else { - return PassingInstruction.Starboard; - } - } - } - - /** - * Checks if a {@link Waypoint} has exactly 2 {@link Mark Marks}. - * - * @param wp - * the {@link Waypoint} to check - * @return true if {@link Waypoint#getMarks()} returns an {@link Iterable} with exactly 2 elements. - */ - protected boolean isGate(Waypoint wp) { - Iterator it = wp.getMarks().iterator(); - if (it != null && it.hasNext()) { - it.next(); - if (it.hasNext()) { - it.next(); - if (!it.hasNext()) { - return true; - } - } - } - return false; - } - - /** - * Calculates the passing {@link Bearing} of the given {@link Mark} which belongs to the given {@link Waypoint} at - * the given {@link TimePoint}. - * - * @param waypoint - * - the {@link Waypoint} the given {@link Mark} belongs to - * @param mark - * - the {@link Mark} to calculate the passing {@link Bearing} for - * @param time - * - the {@link TimePoint} at which to calculate the passing {@link Bearing} - * @return a {@link Bearing} that represents the line a boat has to pass in order to round the given {@link Mark} - */ - protected Bearing getPassingBearing(Waypoint waypoint, Mark mark, TimePoint time) { - Course course = getRace().getCourse(); - Bearing passingBearing = null; - - Position markPos = null; - DynamicGPSFixTrack markTrack = getTrackedRace().getOrCreateTrack(mark); - try { - markTrack.lockForRead(); - markPos = markTrack.getFirstRawFixAtOrAfter(time).getPosition(); - } finally { - markTrack.unlockAfterRead(); - } - - if (waypoint.equals(course.getFirstWaypoint()) || waypoint.equals(course.getLastWaypoint())) { - // passing a line - Mark otherMark = null; - for (Mark m : waypoint.getMarks()) { - if (!m.equals(mark)) { - otherMark = m; - } - } - Position otherMarkPos = null; - DynamicGPSFixTrack otherMarkTrack = getTrackedRace().getOrCreateTrack(otherMark); - try { - otherMarkTrack.lockForRead(); - otherMarkPos = otherMarkTrack.getFirstRawFixAtOrAfter(time).getPosition(); - } finally { - otherMarkTrack.unlockAfterRead(); - } - passingBearing = markPos.getBearingGreatCircle(otherMarkPos); - } else { - // passing a single buoy - - Bearing bearingToNextWp = null; - Bearing bearingfromPrevWp = null; - Bearing bearingDiff = null; - - // calculate bearings to next and from previous waypoint - if (!course.getLastWaypoint().equals(waypoint)) { - // not last waypoint of the race - Waypoint nextWp = getNextWaypoint(waypoint); - Position nextWaypointPos = getTrackedRace().getApproximatePosition(nextWp, time); - - bearingToNextWp = markPos.getBearingGreatCircle(nextWaypointPos); - } - if (!course.getFirstWaypoint().equals(waypoint)) { - // not first waypoint of the course - Waypoint prevWp = getPreviousWaypoint(waypoint); - Position prevWaypointPos = getTrackedRace().getApproximatePosition(prevWp, time); - - bearingfromPrevWp = prevWaypointPos.getBearingGreatCircle(markPos); - } - - // depending on passing side, set the bearing difference - PassingInstruction passingInstruction = getPassingInstructionOfMark(waypoint, mark, time); - if (passingInstruction != null && passingInstruction.equals(PassingInstruction.Starboard)) { - bearingDiff = new DegreeBearingImpl(-90); - } else { - bearingDiff = new DegreeBearingImpl(90); - } - - // calculate the passing bearing - if (course.getFirstWaypoint().equals(waypoint)) { - passingBearing = bearingToNextWp.add(bearingDiff); - } else if (course.getLastWaypoint().equals(waypoint)) { - passingBearing = bearingfromPrevWp.add(bearingDiff); - } else { - passingBearing = bearingToNextWp.add(bearingDiff).middle(bearingfromPrevWp.add(bearingDiff)); - } - } - return passingBearing; - } - - /** - * Finds the {@link Entry} with the best {@link MarkPassing} of the key set. A {@link MarkPassing} is better than - * another if: - *
      - *
    1. it is on the correct side of the mark and the other one is not
    2. - *
    3. it is closer to the mark than the other one
    4. - *
    5. its TimePoint is smaller (it happened earlier) than the other one
    6. - *
    - * - * @param possiblePassings - * @return - */ - protected Entry findBestMarkPassing(Map passings) { - if (passings.size() == 1) { - return passings.entrySet().iterator().next(); - } else if (passings.isEmpty()) { - return null; - } - Map possibleResults = new HashMap(); - // check if mark was passed on correct side - for (Entry entry : passings.entrySet()) { - // find out on which side of the mark was passed - MarkPassing passing = entry.getKey(); - Position passPos = entry.getValue(); - Position markPos = null; - DynamicGPSFixTrack markTrack = getTrackedRace().getOrCreateTrack( - passing.getWaypoint().getMarks().iterator().next()); - try { - markTrack.lockForRead(); - markPos = markTrack.getLastFixAtOrBefore(passing.getTimePoint()).getPosition(); - } finally { - markTrack.unlockAfterRead(); - } - Bearing bearingDiff = markPos.getBearingGreatCircle(passPos).getDifferenceTo( - getPassingBearing(passing.getWaypoint(), passing.getWaypoint().getMarks().iterator().next(), - passing.getTimePoint())); - if (Math.abs(bearingDiff.getDegrees()) < 90) { - // passed on correct side of mark - possibleResults.put(entry.getKey(), entry.getValue()); - } - } - if (possibleResults.size() > 0) { - // All possible passings are on correct side, pass them to the distance test. - // If all passings were on the wrong side, passings is not overwritten and they are still passed to the - // distance test. - passings.putAll(possibleResults); - } - possibleResults.clear(); - - // find the mark passing with the smallest distance to the mark - for (Entry entry : passings.entrySet()) { - // find out how far away the mark was passed - MarkPassing passing = entry.getKey(); - Position passPos = entry.getValue(); - Position markPos = null; - DynamicGPSFixTrack markTrack = getTrackedRace().getOrCreateTrack( - passing.getWaypoint().getMarks().iterator().next()); - try { - markTrack.lockForRead(); - markPos = markTrack.getLastFixAtOrBefore(passing.getTimePoint()).getPosition(); - } finally { - markTrack.unlockAfterRead(); - } - if (possibleResults.isEmpty()) { - possibleResults.put(passing, passPos); - } else { - Distance shortestDistance = markPos - .getDistance(possibleResults.entrySet().iterator().next().getValue()); - Distance newDistance = markPos.getDistance(passPos); - if (shortestDistance.compareTo(newDistance) == 0) { - // same distance, add to possible results - possibleResults.put(passing, passPos); - } else if (shortestDistance.compareTo(newDistance) > 0) { - // shorter distance, remove all other possible results and add this one - possibleResults.clear(); - possibleResults.put(passing, passPos); - } - } - } - if (possibleResults.size() == 1) { - // only one possible result left, we're done - return possibleResults.entrySet().iterator().next(); - } else if (possibleResults.size() > 1) { - // all possible passings have the same distance to the mark, pass them to the timing test - passings.putAll(possibleResults); - } - possibleResults.clear(); - - // find the mark passing with the smallest timestamp - for (Entry entry : passings.entrySet()) { - // find out how far away the mark was passed - MarkPassing passing = entry.getKey(); - Position passPos = entry.getValue(); - if (possibleResults.isEmpty()) { - possibleResults.put(passing, passPos); - } else { - TimePoint smallestTime = possibleResults.entrySet().iterator().next().getKey().getTimePoint(); - TimePoint newTime = passing.getTimePoint(); - if (smallestTime.compareTo(newTime) == 0) { - // same timestamp, add to possible results - possibleResults.put(passing, passPos); - } else if (smallestTime.compareTo(newTime) > 0) { - // smaller timestamp, remove all other possible results and add this one - possibleResults.clear(); - possibleResults.put(passing, passPos); - } - } - } - if (possibleResults.size() > 0) { - // all possible passings have the same timestamp, just return the first one - return possibleResults.entrySet().iterator().next(); - } - - return null; - } - -} \ No newline at end of file diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingBearingBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingBearingBasedTest.java deleted file mode 100644 index 225dd649841..00000000000 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingBearingBasedTest.java +++ /dev/null @@ -1,249 +0,0 @@ -package com.sap.sailing.domain.test.markpassing; - -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.base.DomainFactory; -import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.Bearing; -import com.sap.sailing.domain.common.Distance; -import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.Position; -import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; -import com.sap.sailing.domain.tracking.MarkPassing; - -/** - * This class tests a mark passing detection algorithm that is based purely on bearing analyses - * from the {@link Course}'s {@link Mark}s to the GPS fixes of the {@link Competitor}'s boats. - * It uses a "hot zone" around the {@link Mark}s to avoid unnecessary testing of {@link Mark}s - * too far away from the boat. - * - * @author Martin Hanysz - * - */ -public class MartinMarkPassingBearingBasedTest extends MartinAbstractMarkPassingTest { - - /** - * Controls the size of the hot zone around buoys. It is multiplied with the boat length. - */ - private static final double HOT_ZONE_TO_BOAT_LENGHT_RATIO = 10.0; - - private Map> lastCompetitorPassings; - - public MartinMarkPassingBearingBasedTest() throws MalformedURLException, URISyntaxException { - super(); - lastCompetitorPassings = new HashMap>(); - } - - @Override - MarkPassing computeMarkPassings(Competitor competitor, GPSFixMoving fix) { - Map possibleMarkPassings = new HashMap(); - - // find out which waypoints to check (last waypoint passed and the next) - List waypointsToCheck = new ArrayList(); - Course course = getRace().getCourse(); - try { - course.lockForRead(); - if (!lastCompetitorPassings.containsKey(competitor)) { - // no previous passings, competitor needs to pass 1st waypoint - waypointsToCheck.add(course.getFirstWaypoint()); - } else { - // previous passing, competitor either passes same waypoint again or the next waypoint - waypointsToCheck.add(lastCompetitorPassings.get(competitor).getKey().getWaypoint()); - Waypoint next = getNextWaypoint(lastCompetitorPassings.get(competitor).getKey().getWaypoint()); - if (next != null) { - waypointsToCheck.add(next); - } - } - } finally { - course.unlockAfterRead(); - } - - for (Waypoint wp : waypointsToCheck) { - MarkPassing passing = null; - if (isGate(wp)) { - if (wp.equals(course.getFirstWaypoint()) || - wp.equals(course.getLastWaypoint())) { - // start or finish line - passing = getLinePassing(wp, fix, competitor); - } else { - // waypoint is a gate, either pass mark 1 or mark 2 of the gate - Iterator markIterator = wp.getMarks().iterator(); - while (passing == null && markIterator.hasNext()) { - passing = getBuoyPassing(wp, markIterator.next(), fix, competitor); - } - } - } else { - // waypoint is single buoy - passing = getBuoyPassing(wp, wp.getMarks().iterator().next(), fix, competitor); - } - - if (passing != null) { - // detected a passing - possibleMarkPassings.put(passing, fix.getPosition()); - } - } - Entry result = null; - if (possibleMarkPassings.size() > 0) { - Entry lastPassing = lastCompetitorPassings.get(competitor); - Entry possiblePassing = possibleMarkPassings.entrySet().iterator().next(); - if (lastPassing != null && - lastPassing.getKey().getWaypoint().equals(possiblePassing.getKey().getWaypoint())) { - // previous passing detected & passed same waypoint again - possibleMarkPassings.put(lastPassing.getKey(), lastPassing.getValue()); - } - result = findBestMarkPassing(possibleMarkPassings); - } - if (result != null) { - lastCompetitorPassings.put(competitor, result); - return result.getKey(); - } else { - return null; - } - } - - /** - * Check if the given {@link Waypoint} was passed with the given {@link GPSFixMoving} of the given {@link Competitor}. - * @param waypoint - the {@link Waypoint} to check - * @param mark - the mark of the given {@link Waypoint} to be checked - * @param fix - the {@link GPSFixMoving} to check - * @param competitor - the {@link Competitor} the given fix belongs to - * @return a {@link MarkPassing} if the fix represents a passing of the given {@link Waypoint}, null if not - */ - private MarkPassing getBuoyPassing(Waypoint waypoint, Mark mark, GPSFixMoving fix, Competitor competitor) { - if (waypoint == null || getTrackedRace().getStartOfRace().compareTo(fix.getTimePoint()) > 0) { - // no waypoint or race not started yet - return null; - } - - // get position of given mark - Position markPos = null; - DynamicGPSFixTrack markTrack = getTrackedRace().getOrCreateTrack(mark); - try { - markTrack.lockForRead(); - markPos = markTrack.getFirstRawFixAtOrAfter(fix.getTimePoint()).getPosition(); - } finally { - markTrack.unlockAfterRead(); - } - - // check if boat is in "hot zone" - // boat in "hot zone" <=> distance from boat to mark < boat length * x - if (fix.getPosition().getDistance(markPos).compareTo(competitor.getBoat().getBoatClass().getHullLength().scale(HOT_ZONE_TO_BOAT_LENGHT_RATIO)) > 0) { - // not in "hot zone" - return null; - } - - // calculate mark passing bearing for waypoint - Bearing markToBoatBearing = markPos.getBearingGreatCircle(fix.getPosition()); - Bearing passingBearing = getPassingBearing(waypoint, mark, fix.getTimePoint()); - PassingInstruction passingInstruction = getPassingInstructionOfMark(waypoint, mark, fix.getTimePoint()); - double passingBearingDelta = markToBoatBearing.getDifferenceTo(passingBearing).getDegrees(); - if (passingInstruction == null || - (passingInstruction.equals(PassingInstruction.Port) && - passingBearingDelta > 0)) { - // markToBoatBearing is smaller than passing bearing -> passed on port - return DomainFactory.INSTANCE.createMarkPassing(fix.getTimePoint(), waypoint, competitor); - } else if ( passingInstruction.equals(PassingInstruction.Starboard) && - passingBearingDelta < 0) { - // markToBoatBearing is greater than passing bearing -> passed on stb - return DomainFactory.INSTANCE.createMarkPassing(fix.getTimePoint(), waypoint, competitor); - } - return null; - } - - /** - * Check if the line represented by the given {@link Waypoint} was passed with the given {@link GPSFixMoving} of the given {@link Competitor}. - * @param waypoint - the {@link Waypoint} to check - * @param fix - the {@link GPSFixMoving} to check - * @param competitor - the {@link Competitor} the given fix belongs to - * @return a {@link MarkPassing} if the fix represents a passing of the line of the given {@link Waypoint}, null if not - */ - private MarkPassing getLinePassing(Waypoint waypoint, GPSFixMoving fix, Competitor competitor) { - if (waypoint == null || !isGate(waypoint)) { - // no waypoint, waypoint not a gate, or race not started yet - return null; - } - - /* A boat passes the line, if the bearing from the boat to mark 1 of the gate equals - * the bearing from mark 2 of the gate to mark 1 of the gate AND the bearing from the boat - * to mark 2 of the gate equals the bearing from mark 1 of the gate to mark 2 of the gate. - */ - // get tracks of both marks - Iterator markIt = waypoint.getMarks().iterator(); - DynamicGPSFixTrack mark1Track = null; - Mark mark1 = null; - DynamicGPSFixTrack mark2Track = null; - Mark mark2 = null; - if (markIt.hasNext()) { - mark1 = markIt.next(); - mark1Track = getTrackedRace().getOrCreateTrack(mark1); - if (markIt.hasNext()) - mark2 = markIt.next(); - mark2Track = getTrackedRace().getOrCreateTrack(mark2); - } - - // get positions for both marks of the gate - Position mark1Pos = null; - Position mark2Pos = null; - try { - mark1Track.lockForRead(); - try { - mark2Track.lockForRead(); - mark1Pos = mark1Track.getFirstRawFixAtOrAfter(fix.getTimePoint()).getPosition(); - mark2Pos = mark2Track.getFirstRawFixAtOrAfter(fix.getTimePoint()).getPosition(); - } finally { - mark2Track.unlockAfterRead(); - } - } finally { - mark1Track.unlockAfterRead(); - } - - // calculate if boat is in "hot zone" of gate - // in "hot zone" <=> distance from any mark of gate to boat < length of line between marks - Distance lineLength = mark1Pos.getDistance(mark2Pos); - if ( mark1Pos.getDistance(fix.getPosition()).compareTo(lineLength) > 0 && - mark2Pos.getDistance(fix.getPosition()).compareTo(lineLength) > 0) { - // not in "hot zone" - return null; - } - - // calculate bearings from boat to 1st and 2nd mark, from 1st mark to 2nd mark, and from 2nd mark to 1st mark - Bearing boatToMark1Bearing = fix.getPosition().getBearingGreatCircle(mark1Pos); - Bearing mark1ToMark2Bearing = mark1Pos.getBearingGreatCircle(mark2Pos); - Bearing boatToMark2Bearing = fix.getPosition().getBearingGreatCircle(mark2Pos); - Bearing mark2ToMark1Bearing = mark2Pos.getBearingGreatCircle(mark1Pos); - - PassingInstruction PassingInstructionOfMark1OfGate = getPassingInstructionForMark1OfGate(waypoint, fix.getTimePoint()); - double mark1PassingBearingDelta = boatToMark1Bearing.getDifferenceTo(mark2ToMark1Bearing).getDegrees(); - double mark2PassingBearingDelta = boatToMark2Bearing.getDifferenceTo(mark1ToMark2Bearing).getDegrees(); - //Mark closestMark = mark1; - if (mark2 != null && fix.getPosition().getDistance(mark1Pos).compareTo(fix.getPosition().getDistance(mark2Pos)) < 0) { - //closestMark = mark2; - - } - - if ( PassingInstructionOfMark1OfGate.equals(PassingInstruction.Starboard) && - mark1PassingBearingDelta < 0 && - mark2PassingBearingDelta > 0) { - // gate passed if mark1 had to be passed on stb - return DomainFactory.INSTANCE.createMarkPassing(fix.getTimePoint(), waypoint,competitor); - } else if ( PassingInstructionOfMark1OfGate.equals(PassingInstruction.Port) && - mark1PassingBearingDelta > 0 && - mark2PassingBearingDelta < 0) { - // gate passed if mark1 had to be passed on port - return DomainFactory.INSTANCE.createMarkPassing(fix.getTimePoint(), waypoint, competitor); - } - return null; - } -} diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java deleted file mode 100644 index edc7785ce05..00000000000 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MartinMarkPassingSplineBasedTest.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.sap.sailing.domain.test.markpassing; - -import static org.junit.Assert.assertTrue; - -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import org.junit.Before; -import org.junit.Test; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.base.DomainFactory; -import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.Bearing; -import com.sap.sailing.domain.common.Position; -import com.sap.sailing.domain.common.impl.DegreePosition; -import com.sap.sailing.domain.common.tracking.GPSFix; -import com.sap.sailing.domain.common.tracking.GPSFixMoving; -import com.sap.sailing.domain.markpassingcalculation.splining.HermiteCurve; -import com.sap.sailing.domain.markpassingcalculation.splining.StraightLine; -import com.sap.sailing.domain.markpassingcalculation.splining.Vector2D; -import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; -import com.sap.sailing.domain.tracking.MarkPassing; -import com.sap.sse.common.TimePoint; - -/** - * This class tests a mark passing detection algorithm that interpolates the boats' positions between - * their GPS fixes using Hermite Splines. - * @author Martin Hanysz - * - */ -public class MartinMarkPassingSplineBasedTest extends MartinAbstractMarkPassingTest { - - // a factor to scale the tangents calculated from boat speed and bearing - private static double TANGENT_SCALING_FACTOR = 100; - private Map> lastCompetitorPassings; - - public MartinMarkPassingSplineBasedTest() throws MalformedURLException, URISyntaxException { - super(); - lastCompetitorPassings = new HashMap>(); - } - - @Before - public void setTangentScaling() { - TANGENT_SCALING_FACTOR = 100.0; - } - - @Test - public void testTangentScaling() { - Map results = new HashMap(); - double s = 100.0; - double div = 10.0; - while (s > 0.000000001) { - MartinMarkPassingSplineBasedTest.TANGENT_SCALING_FACTOR = s; - List markPassings = computeAllMarkPassings(); - // compare computed mark passings to given ones - int overallMisses = compareCalculatedAndGivenPassings(markPassings, false); - results.put(s, overallMisses); - s /= div; - } - boolean success = false; - for (Entry e : results.entrySet()) { - System.out.println("Scaling: " + e.getKey() + ", Misses: " + e.getValue()); - if (e.getValue() == 0) { - success = true; - } - } - assertTrue("No setting for the scaling factor resulted in 0 missed waypoints.", success); - } - - - /* (non-Javadoc) - * @see com.sap.sailing.domain.test.AbstractMarkPassingTest#computeMarkPassings() - */ - @Override - MarkPassing computeMarkPassings(Competitor competitor, GPSFixMoving fix) { - // interpolate the course of the competitor from the previous fix to the given fix - DynamicGPSFixTrack competitorTrack = getTrackedRace().getTrack(competitor); - GPSFixMoving prevFix = null; - try { - competitorTrack.lockForRead(); - prevFix = competitorTrack.getLastRawFixBefore(fix.getTimePoint()); - } finally { - competitorTrack.unlockAfterRead(); - } - if (prevFix == null) { - return null; - } - Vector2D point1 = new Vector2D(prevFix.getPosition()); - Vector2D point2 = new Vector2D(fix.getPosition()); - Vector2D tangent1 = new Vector2D(prevFix.getSpeed().getBearing(), prevFix.getSpeed().getKnots() * TANGENT_SCALING_FACTOR /* abh�ngig von Bootsklasse, zeitl. Abstand zw. Fixes */); - Vector2D tangent2 = new Vector2D(fix.getSpeed().getBearing(), fix.getSpeed().getKnots() * TANGENT_SCALING_FACTOR); - HermiteCurve interpolatedCourse = new HermiteCurve(point1, point2, tangent1, tangent2); - - // find out which waypoints to check (last waypoint passed and the next) - List waypointsToCheck = new ArrayList(); - Course raceCourse = getRace().getCourse(); - try { - raceCourse.lockForRead(); - if (!lastCompetitorPassings.containsKey(competitor)) { - // no previous passings, competitor needs to pass 1st waypoint - waypointsToCheck.add(raceCourse.getFirstWaypoint()); - } else { - waypointsToCheck.add(lastCompetitorPassings.get(competitor).getKey().getWaypoint()); - Waypoint next = getNextWaypoint(lastCompetitorPassings.get(competitor).getKey().getWaypoint()); - if (next != null) { - waypointsToCheck.add(next); - } - } - } finally { - raceCourse.unlockAfterRead(); - } - - // check if the interpolated course passes one of the waypoints to check - Map possiblePassings = new HashMap(); - for (Waypoint wp : waypointsToCheck) { - StraightLine passingLine = null; - List markPositions = new ArrayList(); - for (Mark m : wp.getMarks()) { - DynamicGPSFixTrack markTrack = getTrackedRace().getOrCreateTrack(m); - try { - markTrack.lockForRead(); - markPositions.add(markTrack.getLastFixAtOrBefore(fix.getTimePoint()).getPosition()); - } finally { - markTrack.unlockAfterRead(); - } - } - Vector2D mark1Pos = new Vector2D(markPositions.get(0)); - Map intersections = null; - //Mark passedMark = wp.getMarks().iterator().next(); - if (isGate(wp)) { - if (wp.equals(raceCourse.getFirstWaypoint()) || wp.equals(raceCourse.getLastWaypoint())) { - // passing start or finish line - Vector2D mark2Pos = new Vector2D(markPositions.get(1)); - passingLine = new StraightLine(mark1Pos, mark2Pos.subtract(mark1Pos)); - intersections = interpolatedCourse.intersectWith(passingLine); - } else { - // passing either mark of the gate - for (Mark mark : wp.getMarks()) { - Bearing passingBearing = getPassingBearing(wp, mark, fix.getTimePoint()); - Vector2D passingVector = new Vector2D(passingBearing, 1.0); - passingLine = new StraightLine(mark1Pos, passingVector); - intersections = interpolatedCourse.intersectWith(passingLine); - if (intersections.size() > 0) { - // already found a passing of a mark - //passedMark = mark; - break; - } - } - } - } else { - // passing single buoy - Bearing passingBearing = getPassingBearing(wp, wp.getMarks().iterator().next(), fix.getTimePoint()); - Vector2D passingVector = new Vector2D(passingBearing, 1.0); - passingLine = new StraightLine(mark1Pos, passingVector); - intersections = interpolatedCourse.intersectWith(passingLine); - } - for (Entry entry : intersections.entrySet()) { - TimePoint time = fix.getTimePoint(); - TimePoint prevTime = prevFix.getTimePoint(); - // t_pass = t_fix - (t_prev - t_fix) * interpolationParameterOfIntersection - // If the intersection is at 75% of the interpolated course, t_pass is at 75% between t_prev and t_fix. - // This cast truncates the milliseconds, which is acceptable at the moment. - TimePoint timePoint = time.minus((long) ((prevTime.asMillis() - time.asMillis()) * entry.getValue())); - possiblePassings.put(DomainFactory.INSTANCE.createMarkPassing(timePoint, wp, competitor), new DegreePosition(entry.getKey().y(), entry.getKey().x())); - } - } - Entry result = null; - if (possiblePassings.size() > 0) { - Entry lastPassing = lastCompetitorPassings.get(competitor); - Entry possiblePassing = possiblePassings.entrySet().iterator().next(); - if (lastPassing != null && - lastPassing.getKey().getWaypoint().equals(possiblePassing.getKey().getWaypoint())) { - // previous passing detected & passed same waypoint again - possiblePassings.put(lastPassing.getKey(), lastPassing.getValue()); - } - result = findBestMarkPassing(possiblePassings); - } - if (result != null) { - lastCompetitorPassings.put(competitor, result); - return result.getKey(); - } else { - return null; - } - } -} From 27fd494e504263bd07bd974c5ed1f3b02e5f045d Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Tue, 16 Feb 2016 08:50:57 +0100 Subject: [PATCH 16/17] removed deprecations in ViewPagerIndicator --- .../src/com/viewpagerindicator/CirclePageIndicator.java | 4 ++-- .../src/com/viewpagerindicator/IconPageIndicator.java | 4 ++-- .../src/com/viewpagerindicator/LinePageIndicator.java | 4 ++-- .../src/com/viewpagerindicator/TabPageIndicator.java | 4 ++-- .../src/com/viewpagerindicator/TitlePageIndicator.java | 4 ++-- .../src/com/viewpagerindicator/UnderlinePageIndicator.java | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/CirclePageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/CirclePageIndicator.java index f13bd459f75..2684cdc135e 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/CirclePageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/CirclePageIndicator.java @@ -384,13 +384,13 @@ public class CirclePageIndicator extends View implements PageIndicator { return; } if (mViewPager != null) { - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } if (view.getAdapter() == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = view; - mViewPager.setOnPageChangeListener(this); + mViewPager.addOnPageChangeListener(this); invalidate(); } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/IconPageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/IconPageIndicator.java index 478bf4b4b08..16b601ca7b2 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/IconPageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/IconPageIndicator.java @@ -115,14 +115,14 @@ public class IconPageIndicator extends HorizontalScrollView implements PageIndic return; } if (mViewPager != null) { - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } PagerAdapter adapter = view.getAdapter(); if (adapter == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = view; - view.setOnPageChangeListener(this); + view.addOnPageChangeListener(this); notifyDataSetChanged(); } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/LinePageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/LinePageIndicator.java index ec35a2aa54b..1f477f60981 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/LinePageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/LinePageIndicator.java @@ -296,13 +296,13 @@ public class LinePageIndicator extends View implements PageIndicator { } if (mViewPager != null) { // Clear us from the old pager. - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } if (viewPager.getAdapter() == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = viewPager; - mViewPager.setOnPageChangeListener(this); + mViewPager.addOnPageChangeListener(this); invalidate(); } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TabPageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TabPageIndicator.java index d960f64f1d6..171bfe7b30d 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TabPageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TabPageIndicator.java @@ -196,14 +196,14 @@ public class TabPageIndicator extends HorizontalScrollView implements PageIndica return; } if (mViewPager != null) { - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } final PagerAdapter adapter = view.getAdapter(); if (adapter == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = view; - view.setOnPageChangeListener(this); + view.addOnPageChangeListener(this); notifyDataSetChanged(); } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TitlePageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TitlePageIndicator.java index 4206f8bb15a..b527e132399 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TitlePageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/TitlePageIndicator.java @@ -737,13 +737,13 @@ public class TitlePageIndicator extends View implements PageIndicator { return; } if (mViewPager != null) { - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } if (view.getAdapter() == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = view; - mViewPager.setOnPageChangeListener(this); + mViewPager.addOnPageChangeListener(this); invalidate(); } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/UnderlinePageIndicator.java b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/UnderlinePageIndicator.java index c5b609f03e4..d95f768a1cb 100755 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/UnderlinePageIndicator.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/viewpagerindicator/UnderlinePageIndicator.java @@ -288,13 +288,13 @@ public class UnderlinePageIndicator extends View implements PageIndicator { } if (mViewPager != null) { // Clear us from the old pager. - mViewPager.setOnPageChangeListener(null); + mViewPager.clearOnPageChangeListeners(); } if (viewPager.getAdapter() == null) { throw new IllegalStateException("ViewPager does not have adapter instance."); } mViewPager = viewPager; - mViewPager.setOnPageChangeListener(this); + mViewPager.addOnPageChangeListener(this); invalidate(); post(new Runnable() { @Override From b8a109b7d48d11d30a93c2ae1e00b0e284504287 Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Tue, 16 Feb 2016 11:15:55 +0100 Subject: [PATCH 17/17] updated Android Support version --- mobile/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pom.xml b/mobile/pom.xml index b69d42e75ca..3c0da7945dc 100644 --- a/mobile/pom.xml +++ b/mobile/pom.xml @@ -26,7 +26,7 @@ - 22.1.1 + 22.2.1 7.5.0 ../android-keystore/STG-debug.jks

    `Wywu0vHdNJo8 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 Vk%DKyc)amOoekBE^+NlvtL?rf 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[Pi)db6k(Nxr=Tz0`T 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