From d41c11077b217f00e91753f32ff445c5dfcad523 Mon Sep 17 00:00:00 2001 From: Hassan Kibirige Date: Thu, 14 Nov 2024 17:33:45 +0300 Subject: [PATCH] Add plot_tag --- doc/_quartodoc.yml | 3 + doc/changelog.qmd | 21 +++++ plotnine/_mpl/layout_manager/_layout_items.py | 50 +++++++++++ plotnine/_mpl/layout_manager/_spaces.py | 82 ++++++++++++++++++ plotnine/ggplot.py | 4 + plotnine/iapi.py | 1 + plotnine/labels.py | 5 ++ plotnine/themes/targets.py | 1 + plotnine/themes/theme.py | 3 + plotnine/themes/theme_gray.py | 7 ++ plotnine/themes/theme_matplotlib.py | 7 ++ plotnine/themes/theme_seaborn.py | 7 ++ plotnine/themes/theme_void.py | 7 ++ plotnine/themes/themeable.py | 75 ++++++++++++++-- .../test_layout/default_tag_location.png | Bin 0 -> 18401 bytes .../test_layout/margin_bottom.png | Bin 0 -> 18377 bytes .../test_layout/panel_bottomleft.png | Bin 0 -> 18608 bytes .../test_layout/panel_xycoords.png | Bin 0 -> 18602 bytes .../test_layout/plot_topright.png | Bin 0 -> 18456 bytes .../test_layout/plot_xycoords.png | Bin 0 -> 18436 bytes tests/test_layout.py | 53 +++++++++++ 21 files changed, 318 insertions(+), 8 deletions(-) create mode 100644 tests/baseline_images/test_layout/default_tag_location.png create mode 100644 tests/baseline_images/test_layout/margin_bottom.png create mode 100644 tests/baseline_images/test_layout/panel_bottomleft.png create mode 100644 tests/baseline_images/test_layout/panel_xycoords.png create mode 100644 tests/baseline_images/test_layout/plot_topright.png create mode 100644 tests/baseline_images/test_layout/plot_xycoords.png diff --git a/doc/_quartodoc.yml b/doc/_quartodoc.yml index f096e5211..46c6f6c0f 100644 --- a/doc/_quartodoc.yml +++ b/doc/_quartodoc.yml @@ -458,6 +458,9 @@ quartodoc: - plot_margin_right - plot_margin_top - plot_subtitle + - plot_tag + - plot_tag_location + - plot_tag_position - plot_title - plot_title_position - rect diff --git a/doc/changelog.qmd b/doc/changelog.qmd index 1e315a55e..127569351 100644 --- a/doc/changelog.qmd +++ b/doc/changelog.qmd @@ -35,6 +35,27 @@ title: Changelog You can now position the `plot_title`, `plot_subtitle` and `plot_caption` by alignment them with respect to the plot. ({{< issue 838 >}}) +- Gained new label `tag` to create a tag for a plot. You can set it with + [](:class:`~plotnine.labs`) e.g. + + ```python + labs(tag="A") + ``` + and customise it using these themeables + + [](:class:`~plotnine.themes.themeables.plot_tag`) and + [](:class:`~plotnine.themes.themeables.plot_tag_position`) and + [](:class:`~plotnine.themes.themeables.plot_tag_location`) + + e.g. + + ```python + theme( + plot_tag="plot", + plot_tag_location="plot", + plot_tag_position="topright", + ) + ``` ## v0.14.1 (2024-11-05) diff --git a/plotnine/_mpl/layout_manager/_layout_items.py b/plotnine/_mpl/layout_manager/_layout_items.py index c9e663f35..1667cccb4 100644 --- a/plotnine/_mpl/layout_manager/_layout_items.py +++ b/plotnine/_mpl/layout_manager/_layout_items.py @@ -8,6 +8,8 @@ from matplotlib.backend_bases import RendererBase from matplotlib.text import Text +from plotnine.exceptions import PlotnineError + from ..utils import ( bbox_in_figure_space, get_transPanels, @@ -198,6 +200,7 @@ def get(name: str) -> Any: self.plot_caption: Text | None = get("plot_caption") self.plot_subtitle: Text | None = get("plot_subtitle") self.plot_title: Text | None = get("plot_title") + self.plot_tag: Text | None = get("plot_tag") self.strip_text_x: list[StripText] | None = get("strip_text_x") self.strip_text_y: list[StripText] | None = get("strip_text_y") @@ -453,6 +456,9 @@ def _adjust_positions(self, spaces: LayoutSpaces): plot_title_position = theme.getp("plot_title_position", "panel") plot_caption_position = theme.getp("plot_caption_position", "panel") + if self.plot_tag: + set_plot_tag_position(self.plot_tag, spaces) + if self.plot_title: ha = theme.getp(("plot_title", "ha")) self.plot_title.set_y(spaces.t.y2("plot_title")) @@ -632,3 +638,47 @@ def set_position( transPanels = get_transPanels(figure) for l in legends.inside: set_position(l.box, l.position, l.justification, transPanels) + + +def set_plot_tag_position(tag: Text, spaces: LayoutSpaces): + figure = spaces.plot.figure + theme = spaces.plot.theme + location = theme.getp("plot_tag_location") + position = theme.getp("plot_tag_position") + + lookup = { + "topleft": (0, 1), + "top": (0.5, 1), + "topright": (1, 1), + "left": (0, 0.5), + "right": (1, 0.5), + "bottomleft": (0, 0), + "bottom": (0.5, 0), + "bottomright": (1, 0), + } + + if isinstance(position, str): + if location == "margin": + (x1, y1), (x2, y2) = spaces.margin_area_coordinates + elif location == "plot": + (x1, y1), (x2, y2) = spaces.plot_area_coordinates + else: + (x1, y1), (x2, y2) = spaces.panel_area_coordinates + + fx, fy = lookup[position] + width, height = spaces.items.calc.size(tag) + x = x1 * (1 - fx) + (x2 - width) * fx + y = y1 * (1 - fy) + (y2 - height) * fy + + tag.set_position((x, y)) + tag.set_horizontalalignment("left") + tag.set_verticalalignment("bottom") + else: + if location == "panel": + tag.set_transform(get_transPanels(figure)) + elif location == "margin": + raise PlotnineError( + f"Cannot have plot_tag_location={location!r} if " + f"plot_tag_position={position!r}." + ) + tag.set_position(position) diff --git a/plotnine/_mpl/layout_manager/_spaces.py b/plotnine/_mpl/layout_manager/_spaces.py index 8099009bc..965b9af5d 100644 --- a/plotnine/_mpl/layout_manager/_spaces.py +++ b/plotnine/_mpl/layout_manager/_spaces.py @@ -140,6 +140,7 @@ class left_spaces(_side_spaces): """ plot_margin: float = 0 + plot_tag: float = 0 legend: float = 0 legend_box_spacing: float = 0 axis_title_y: float = 0 @@ -151,8 +152,17 @@ def _calculate(self): theme = self.items.plot.theme calc = self.items.calc items = self.items + has_margin_for_plot_tag = theme.getp( + "plot_tag_location" + ) in "margin" and "left" in theme.getp("plot_tag_position") self.plot_margin = theme.getp("plot_margin_left") + + if items.plot_tag and has_margin_for_plot_tag: + self.plot_tag = calc.width(items.plot_tag) + theme.getp( + ("plot_tag", "margin") + ).get_as("r", "fig") + if items.legends and items.legends.left: self.legend = self._legend_width self.legend_box_spacing = theme.getp("legend_box_spacing") @@ -218,6 +228,7 @@ class right_spaces(_side_spaces): """ plot_margin: float = 0 + plot_tag: float = 0 legend: float = 0 legend_box_spacing: float = 0 strip_text_y_width_right: float = 0 @@ -225,8 +236,18 @@ class right_spaces(_side_spaces): def _calculate(self): items = self.items theme = self.items.plot.theme + calc = self.items.calc + has_margin_for_plot_tag = theme.getp( + "plot_tag_location" + ) in "margin" and "right" in theme.getp("plot_tag_position") self.plot_margin = theme.getp("plot_margin_right") + + if items.plot_tag and has_margin_for_plot_tag: + self.plot_tag = calc.width(items.plot_tag) + theme.getp( + ("plot_tag", "margin") + ).get_as("l", "fig") + if items.legends and items.legends.right: self.legend = self._legend_width self.legend_box_spacing = theme.getp("legend_box_spacing") @@ -284,6 +305,7 @@ class top_spaces(_side_spaces): """ plot_margin: float = 0 + plot_tag: float = 0 plot_title: float = 0 plot_title_margin_bottom: float = 0 plot_subtitle: float = 0 @@ -298,8 +320,18 @@ def _calculate(self): calc = self.items.calc W, H = theme.getp("figure_size") F = W / H + has_margin_for_plot_tag = theme.getp( + "plot_tag_location" + ) in "margin" and "top" in theme.getp("plot_tag_position") self.plot_margin = theme.getp("plot_margin_top") * F + + if items.plot_tag and has_margin_for_plot_tag: + self.plot_tag = ( + calc.height(items.plot_tag) + + theme.getp(("plot_tag", "margin")).get_as("b", "fig") * F + ) + if items.plot_title: self.plot_title = calc.height(items.plot_title) self.plot_title_margin_bottom = ( @@ -369,6 +401,7 @@ class bottom_spaces(_side_spaces): """ plot_margin: float = 0 + plot_tag: float = 0 plot_caption: float = 0 plot_caption_margin_top: float = 0 legend: float = 0 @@ -384,9 +417,18 @@ def _calculate(self): calc = self.items.calc W, H = theme.getp("figure_size") F = W / H + has_margin_for_plot_tag = theme.getp( + "plot_tag_location" + ) in "margin" and "bottom" in theme.getp("plot_tag_position") self.plot_margin = theme.getp("plot_margin_bottom") * F + if items.plot_tag and has_margin_for_plot_tag: + self.plot_tag = ( + calc.height(items.plot_tag) + + theme.getp(("plot_tag", "margin")).get_as("t", "fig") * F + ) + if items.plot_caption: self.plot_caption = calc.height(items.plot_caption) self.plot_caption_margin_top = ( @@ -543,6 +585,46 @@ def increase_vertical_plot_margin(self, dh: float): self.t.plot_margin += dh self.b.plot_margin += dh + @property + def margin_area_coordinates( + self, + ) -> tuple[tuple[float, float], tuple[float, float]]: + """ + Lower-left and upper-right coordinates of the margin area + + This is the area surrounded by the plot_margin and extended + to make space for the plot_tag. + """ + # Note the plot_area calculation will account the area + # taken up by the tag. + return self.plot_area_coordinates + + @property + def plot_area_coordinates( + self, + ) -> tuple[tuple[float, float], tuple[float, float]]: + """ + Lower-left and upper-right coordinates of the plot area + + This is the area surrounded by the plot_margin. + """ + x1, x2 = self.l.x2("plot_margin"), self.r.x1("plot_margin") + y1, y2 = self.b.y2("plot_margin"), self.t.y1("plot_margin") + return ((x1, y1), (x2, y2)) + + @property + def panel_area_coordinates( + self, + ) -> tuple[tuple[float, float], tuple[float, float]]: + """ + Lower-left and upper-right coordinates of the panel area + + This is the area in which the panels are drawn. + """ + x1, x2 = self.l.left, self.r.right + y1, y2 = self.b.bottom, self.t.top + return ((x1, y1), (x2, y2)) + def _calculate_panel_spacing(self) -> GridSpecParams: """ Spacing between the panels (wspace & hspace) diff --git a/plotnine/ggplot.py b/plotnine/ggplot.py index 61998d45a..81d4a0b62 100755 --- a/plotnine/ggplot.py +++ b/plotnine/ggplot.py @@ -491,6 +491,7 @@ def _draw_figure_texts(self): title = self.labels.get("title", "") subtitle = self.labels.get("subtitle", "") caption = self.labels.get("caption", "") + tag = self.labels.get("tag", "") # Get the axis labels (default or specified by user) # and let the coordinate modify them e.g. flip @@ -508,6 +509,9 @@ def _draw_figure_texts(self): if caption: targets.plot_caption = figure.text(0, 0, caption) + if tag: + targets.plot_tag = figure.text(0, 0, tag) + if labels.x: targets.axis_title_x = figure.text(0, 0, labels.x) diff --git a/plotnine/iapi.py b/plotnine/iapi.py index fd95b353d..0ec6b45d5 100644 --- a/plotnine/iapi.py +++ b/plotnine/iapi.py @@ -76,6 +76,7 @@ class labels_view: title: Optional[str] = None caption: Optional[str] = None subtitle: Optional[str] = None + tag: Optional[str] = None def update(self, other: labels_view): """ diff --git a/plotnine/labels.py b/plotnine/labels.py index 3cb357d42..fcb8f0586 100644 --- a/plotnine/labels.py +++ b/plotnine/labels.py @@ -90,6 +90,11 @@ class labs: The caption at the bottom of the plot. """ + tag: str | None = None + """ + A plot tag + """ + def __post_init__(self): kwargs: dict[str, str] = { f.name: value diff --git a/plotnine/themes/targets.py b/plotnine/themes/targets.py index ce81ac10d..464db6f94 100644 --- a/plotnine/themes/targets.py +++ b/plotnine/themes/targets.py @@ -37,6 +37,7 @@ class ThemeTargets: panel_border: list[Rectangle] = field(default_factory=list) plot_caption: Optional[Text] = None plot_subtitle: Optional[Text] = None + plot_tag: Optional[Text] = None plot_title: Optional[Text] = None strip_background_x: list[StripTextPatch] = field(default_factory=list) strip_background_y: list[StripTextPatch] = field(default_factory=list) diff --git a/plotnine/themes/theme.py b/plotnine/themes/theme.py index e6813ed62..ba4c340f4 100644 --- a/plotnine/themes/theme.py +++ b/plotnine/themes/theme.py @@ -122,8 +122,11 @@ def __init__( plot_title=None, plot_subtitle=None, plot_caption=None, + plot_tag=None, plot_title_position=None, plot_caption_position=None, + plot_tag_location=None, + plot_tag_position=None, strip_text_x=None, strip_text_y=None, strip_text=None, diff --git a/plotnine/themes/theme_gray.py b/plotnine/themes/theme_gray.py index 324a69239..bd5d4eac3 100644 --- a/plotnine/themes/theme_gray.py +++ b/plotnine/themes/theme_gray.py @@ -125,8 +125,15 @@ def __init__(self, base_size=11, base_family=None): ma="left", margin={"b": m, "units": "fig"}, ), + plot_tag=element_text( + size=base_size * 1.2, + va="center", + ha="center", + ), plot_title_position="panel", plot_caption_position="panel", + plot_tag_location="margin", + plot_tag_position="topleft", strip_align=0, strip_background=element_rect(color="none", fill="#D9D9D9"), strip_background_x=element_rect(width=1), diff --git a/plotnine/themes/theme_matplotlib.py b/plotnine/themes/theme_matplotlib.py index 4a56d591f..e9a1c5b15 100644 --- a/plotnine/themes/theme_matplotlib.py +++ b/plotnine/themes/theme_matplotlib.py @@ -104,8 +104,15 @@ def __init__(self, rc=None, fname=None, use_defaults=True): ma="left", margin={"b": m, "units": "fig"}, ), + plot_tag=element_text( + size=base_size * 1.2, + va="center", + ha="center", + ), plot_title_position="panel", plot_caption_position="panel", + plot_tag_location="margin", + plot_tag_position="topleft", strip_align=0, strip_background=element_rect( fill="#D9D9D9", color="black", size=linewidth diff --git a/plotnine/themes/theme_seaborn.py b/plotnine/themes/theme_seaborn.py index c1220096f..526f4a329 100644 --- a/plotnine/themes/theme_seaborn.py +++ b/plotnine/themes/theme_seaborn.py @@ -116,8 +116,15 @@ def __init__( ma="left", margin={"b": m, "units": "fig"}, ), + plot_tag=element_text( + size=base_size * 1.2, + va="center", + ha="center", + ), plot_title_position="panel", plot_caption_position="panel", + plot_tag_location="margin", + plot_tag_position="topleft", strip_align=0, strip_background=element_rect(color="none", fill="#D1CDDF"), strip_text=element_text( diff --git a/plotnine/themes/theme_void.py b/plotnine/themes/theme_void.py index 28c3a9527..58058c6e7 100644 --- a/plotnine/themes/theme_void.py +++ b/plotnine/themes/theme_void.py @@ -93,8 +93,15 @@ def __init__(self, base_size=11, base_family=None): ma="left", margin={"b": m, "units": "fig"}, ), + plot_tag=element_text( + size=base_size * 1.2, + va="center", + ha="center", + ), plot_title_position="panel", plot_caption_position="panel", + plot_tag_location="margin", + plot_tag_position="topleft", strip_align=0, strip_text=element_text( color="#1A1A1A", diff --git a/plotnine/themes/themeable.py b/plotnine/themes/themeable.py index 7d504822d..0d9a2ea0c 100644 --- a/plotnine/themes/themeable.py +++ b/plotnine/themes/themeable.py @@ -719,27 +719,33 @@ def blank_figure(self, figure: Figure, targets: ThemeTargets): text.set_visible(False) -class strip_text_x(MixinSequenceOfValues): +class plot_tag(themeable): """ - Facet labels along the horizontal axis + Plot tag Parameters ---------- theme_element : element_text + + Notes + ----- + The `ha` & `va` of element_text will only have an effect if the + have no effect if the + [](:class:`~plotnine.themes.themeable.plot_tag_position`) + is given as x-y coordinates. """ _omit = ["margin"] def apply_figure(self, figure: Figure, targets: ThemeTargets): super().apply_figure(figure, targets) - if texts := targets.strip_text_x: - self.set(texts) + if text := targets.plot_tag: + text.set(**self.properties) def blank_figure(self, figure: Figure, targets: ThemeTargets): super().blank_figure(figure, targets) - if texts := targets.strip_text_x: - for text in texts: - text.set_visible(False) + if text := targets.plot_tag: + text.set_visible(False) class plot_title_position(themeable): @@ -768,6 +774,57 @@ class plot_caption_position(themeable): """ +class plot_tag_location(themeable): + """ + The area where the tag will be positioned + + Parameters + ---------- + theme_element : Literal["margin", "plot", "panel"], default = "margin" + If "margin", it is placed within the plot_margin. + If "plot", it is placed in the figure, ignoring any margins. + If "panel", it is placed within the panel area. + """ + + +class plot_tag_position(themeable): + """ + Position of the tag + + Parameters + ---------- + theme_element : Literal["topleft", "top", "topright", "left" \ + "right", "bottomleft", "bottom", "bottomleft"] \ + | tuple[float, float], default = "topleft" + If the value is a string, the tag will be managed by the layout + manager. If it is a tuple of (x, y) coordinates, they should be + in figure space and the tag will be ignored by the layout manager. + """ + + +class strip_text_x(MixinSequenceOfValues): + """ + Facet labels along the horizontal axis + + Parameters + ---------- + theme_element : element_text + """ + + _omit = ["margin"] + + def apply_figure(self, figure: Figure, targets: ThemeTargets): + super().apply_figure(figure, targets) + if texts := targets.strip_text_x: + self.set(texts) + + def blank_figure(self, figure: Figure, targets: ThemeTargets): + super().blank_figure(figure, targets) + if texts := targets.strip_text_x: + for text in texts: + text.set_visible(False) + + class strip_text_y(MixinSequenceOfValues): """ Facet labels along the vertical axis @@ -801,7 +858,9 @@ class strip_text(strip_text_x, strip_text_y): """ -class title(axis_title, legend_title, plot_title, plot_subtitle, plot_caption): +class title( + axis_title, legend_title, plot_title, plot_subtitle, plot_caption, plot_tag +): """ All titles on the plot diff --git a/tests/baseline_images/test_layout/default_tag_location.png b/tests/baseline_images/test_layout/default_tag_location.png new file mode 100644 index 0000000000000000000000000000000000000000..0254c4dca5d14fdb78bff7ef2c9cb8073ed0ac28 GIT binary patch literal 18401 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 literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_layout/margin_bottom.png b/tests/baseline_images/test_layout/margin_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb9d3e617ce415d72d936121fe251be23c08ac4 GIT binary patch literal 18377 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≪gygJ~RuwZLv5~``sv&&`57$0Vxcd1}J12 zqNEpAvkUgpvH9%~v4t1m`&ajt8fco^+W54^f1#pT*sL$02q#^CBm~Hpc-C!xAYDF! zE8A~>51U3rav%$UKkU<}l+@H`hSu;HLOxs0;yX(XD5!)|IdC5D21Qi<)-6@oS8N!_ zMjbzw$0H&mFHCgm4LZ{ydyD_~b=tzrEE&Ho85Z*)OS27)0z0Cm7Nbw^IS` z=cuO#g`ByX0@>60BbLo`GC~K64PRle!I-$3ni?Q;)ueUu;}>W>{L+`*veR4_NAk~# zxsrzHVI3VE%kDNE7PcR$(cB9p%U&w_%u zB1BQha*)Ye71EnlLm+jzRW}#)>B~GtM!LGX#n$+)y|i!pMqK2bLUi=>nULP}DrgX? z>yujy_0Ou7-=8Kx$(aQPgff=zu zemD9V2M~uW$S1jQDSDgAtZjUpXHbe>>3y`=mu)~gGyvj+;+H#j?u182>!p1z z@!R)peE04L1lMPXq%6X0FTLedMYv=&8szgsRdAaGTgaBY&ZH$Oi4t35k7(eVocPhg zt4>p-J#>U^SLVj)(5@~`tsG4Z5W(=#MgAVvSnNXSl_uA0SN`$>xPcY-Yh)6g@nUXV z!ouaZgo%-$Lg@qbz>uaQN)WENoZ<+^9R{?Tl1Io-$h6o*rj!^TPMeYC#f#q<^k8?y824;e!BHl-SMm7MhqI`_PZp3|J;( zhhw(@%dbId`2mPPU0V7N6d9$ZrBNOzKua7-pT3Qcy8tD!ZVu-J)~1!5s04^O;^oWa z$B!RV8b3GbfYpTE6eHP=zuwlfe) zoZn@-Ll*8{d$Ku#jcyl~8V*F?ALJGzc)EZxDCQ_#(yy?|hFo{hSBm8}}A^`s6;^R}suFaLU>+6B) zfwbM8W<8SF&fXv};aF8>)^Y;H=P1NgQlcKRrhy~OS~`x_Co*zhz(D4Ic)FJl4jA>_ z&PNHg$<8-=dLKVW#}c#hfPer_cJ`){^+#HUhH>eM)2WOpGO{;rd|2F=ZTH(Ng&M9s_Hgl%c^lQWZ#JJ^U4*xy#p@IeO%5;WVby`|(QjpQ}1(ZxFNf}pY_uDy4EeAykgi>2Q7o91l%#g5T7 zX+JT_-FY6id3!m8vc&m>gR!ykSo_PDFDWP~HRR+1({{cu*$q}G!CS8=fh9!Z8ak|z zjrqaM$`MZmz9@wZ%b5hPg)hJ%^I#)13s6B$l8437j)a5#opc!x$RY&*ggLdJ-@jKWne4X~Bj@142j2;(z@@`}a=zCx_kdx|0F&lg7sg$5>Pt-H!_ zJV5&%I#8P)nK7zNsH<6tTG`yCaKX*<9fZ>f!09Fhsj3e7LFf_35d$OtXX5m~_|X3^ zqTD~N)A2iQL|G?09GwVFTHIyZYn+5UBOMyIxx6Fvcn~#?JpV%!2@DAMIPYrE;c8)# zb&WBU&Gw)ecZgR<4xPT!T2@VliNfI>9qJtIZgFy31s_Q^+20|uR#|$b3a_A{dayn& z?o7+Ty8E@}PoK*2c1_K?A1q3Es2g|kW181J%IANEUMFlqY`uLTM%e_hC2l8u_j+8a zO!n&vUl|YS6~Dwksi?bMs2TbVk0QwHS4oUSH#RR;EB#?5D{Hy^@gAYBq(HPc=dK$D z!sPrRe-1hTB&w+w7`n2a4yQxRNIOt~Nc!I}(*GY8_CN66|8SM(EF?)S*K$5TSIe2J zmAzf(_G~Sooo1o8HPJiEgjX+XI8#N>kQpAq<;*E0)%*CwiY?aQCf)5lBj!DqsG&X6 znN#ApDM?XmLIxZGR8&aI3r>t+I9uhqiQ~46Wj2}d_e~%9 z_LkB-3D|GkR|OHz;2Y5tVXV}N?+$>_MBr_;#BPP)L^beZ2R z5YN3>@YMdo%=973>(^R_%mF3E*mIf<6eM|6{ixj-;f~6Ee(-#-{7OKub_Rdx2m5UL zHeqBkmb6PWe#$; zz+=_x@tpMpHR|D)+UL)ygl+m%K_=2^3OUP$0mue`crcF#HV5*(XosO*=E>pd$tV+T zNVpf2<4}&r3DOsq_SC8Dva&Mb!FDLi0Hd+2!KW_C0j4RKJ>Z@2y1PExx^bngbMPpc20({u7Q@t>&TjZ;ch{o%k5mZm?Wt%QSG#{d z!)!h(-G?(%c;Q+5y%;R#bd|ABSF&6_rJcdc5Zsk3cIIDS#|MnNMq(L7l8etN6X_s+ zqa}LTRaNpWEn1$&1;!(8k9FY^Gthe5K=FwWB5GiwFySd&V`o8^-q0kT&!(fNZfC?CK`=q>zO7Fi*GF+Gy z&)Vws0qbtqa%e~b>r%I~D`2(!cc~+?yEQlocANZIU-4ZAG1t7h-E{+D+W}2f8)HpR zOZze6wb=cw@fmayc+ZM^YNA^du(Vc{qZx##3P8Lt%NT}>cOLI8hx(xhN3i;UWP~DK zKr%L#^S|$1x7M>9h+<}jQmj1omk0}lcA)6?BTzL80l^-q5T=p=tp+o5Id7dMco$i00~=+*7;!5P^g3LDlifQo^umeDWwenX?@s~pe;5wHvUD3zJM-k zlO6x-g2bTEe|~=I5{kTXfv%vv25A`?txV;!J}V#DJ!i5r!+~O);MM2g8{Y2>x>kqzm8%@Td!-3X7}&w_xKhCJ$uHz{GH*BFMH@BzaU+T z;s)vF^ZV(B@h(4pML7V7~n;j=`q*;5CB0>h8Hyc(4Od>IDf(r*?mD8{#5IzdQ%DKQlLstTb}tH3`0>qJVT!*RPc4Lx#Fg^zPq9QMsmeR5j9o`;qVFVJpyrHn*2&`WWF$9C@eFQ zV)6V|dbK&%+kKj73bl$^#*c?eaa{0rh(8g_z1$4uj`->;9ld~AIW0Vg;-{uRpFh_G zIio96g~?~V-<+%`-w3A-+LQ)Ll`X!coG))WbPhJ&3+uk3WKfJjNv4tbnKa_J?}K($ zU=6!K5Sw(x@%JO>?OJWH;3!4T~66fX1my3*`9RSzTve^9<<97sAMv|B`?7xIsRvw7# ze!eGFerGBXZ_8|ZRy^}8r-raKqguSE&Vk4sXO>yCX@_Edo6Leeip~vuCU?rHn7PODplIb;jSOk4xx+PWA3mtMyT67eR^8SNH|$lRBEIwI zr9luB^<2vW@?B=$&M0izk@nf=7^>(8arS-+QyU{9Pj3q6+|W~*8Lo25lnZ6d2U-Ob zW*V3~?tXhhKGf(Ox5W`qm169wCQrbIU{CZ`XJ!s)5<~j~QWrhUnmN`c>^{EwUN%_g z;{^hDaeWE2We)5Of%*)Beva<;IRw%qtwzXnsl`sAjV>eNwlI_}GU6@+w-*Er6B!!u zG*A+6jC!vIbLkZ1acSlJ`1*vYqM8aaoO&2{=iB4;J*C$W?LuQClo!5z`?l=f$78>U zkC08DfXm{@@XRpuIKr#1X+%-^e=oT7EN*5+h39l&`S`QQgZ03zcWX*t9H|<%^Qbij z_~NDi+9CPC;WJr42Mvr4z=LFeI&n}cxA610 z+-EqfG5l^dFSWlm%deLn7Ln=SLQHf-s@OX*A%oMpPRq(JV`hdDoXk_GBheW?DA4sSuSuNPUt{7`RETQS z@xxcisLo}b3{2M3q3Ozv75Sm493od?m8$Ta;UXtBxW_@y;8hL7Xd4vkgK1|6T_dKV@I56#7p*r-Ch9GhWyqMZMi0ujX9 zWWUT~`fOm2{P)&fp@=3sGnaS92q<>eixtJFniIPd(exqa+&Tr}P_>nn`HE^Fie@@9 zLqW4h1y2Kg_TI`_6If!K7qgY?4E2;s#L*Hy)zGqc7+LxA&qKT>bv3%%rlh}8L(Sfi zNxijk!jm|-SJ`JLvY|SHhI*|qa%jj9ZHM81Hu9H&Mti=y{Z~%CI2j!fyno7kcQL@w zJEp11ddC-U>_gD<`T6yUev#=LkHJD{$3bUqYo&!>82YBXdL?Nu27WI=9ybOGUBUqx#=NDaCCWNURB!3R`}yrc=YY3E zg4`bsl?mbDt@oAJM}J<9D}8S?SJ7tM6fTt6ll!pOpu*Ds!!a8<%8C6pj`- zlYX}PeSGsO{k}flRQmTvi?RtlYR13%qd^}H0>h;8{`Q^1C5?Le76@o}j zJ5|{Tr$FqVG)8cuKIfpvXk4r~8h?c^(b8&QtGxQWpnSYlPYI6a7Q_Ce`dMX#2+rxJ zS|+oE+=Dq78#+`D8T8ogF-|ovhbU5Go|EvAuiH18eet!mvu9%bvJNQ*qzw7CW~#WL z53Aedpd=Vr6Z@Nf-N5ne7W*8#1?;PxI|cexGXv$hj2;t5!SbW0eI|}sqM*9x?6#VR zFaErYO!q=ijB6Ar2C!^7OKO=U;kkE4wrZ3Du+n~`69_3;Vd0@tfBuT=%=DYlTmv^= zwy0SkbI=?^ts~GTzlELp6rBn%a27lwz0g#*ZjHXwG(e&DRcX5aW})3c)+0-EXNAuD z@--=e!)#yujL$mc10py6*soWeYi8XYnr#Cz!Vy}}mfXBtvwc>3< z0~_Y*)vI9Z38!jMy>a95BpDPj($l4JD#V;Z2pA4Djc~5r;8J13FnKRMw5ug(gVK)L zkRngepEz-$axlhxJ|GZO$7S6P*CMBH4?6#@#l7hm^?gQ?G#@6F;4yUym0Ur(jbcUn z+wV`?hqIzvF!Dqcw7v8O8AES^1tPMXDevz@WWt2$O57hU8W!He#dn{Gy3S=mD$n&K%s@5|bA?9IiE>CQq->q`x?6Y4 zrAfx1kMF#{yTJ`*0Ir6bUW6PcZnaQCQ9Y!eaeF?rk%HQPdV0Egwg7kUWFS?;=R#is zx7odWy2hZ>NPS*89l56~PM-D|=>rsyZ&)R`v;{n04eALGFF5SZy^5AdT}pfw|BbiV zi#LH(-2xc`HsHCjkPpBUEu(022yOQRc*@pbw;KVq?o1X3i$~qF9oorS`XT_ervj5F zCMJkm=y~IrD9b@#Rd4%83Y;gnE^nOw*j%l^BlNwE2NgOE^}9SL=Q z@42G6TA71uBVS1x?PiBuS*L%{NM8XkbD+2P zLxPgp9{`mn#15tHp+g7Q{jTI+VprEHlsy}u$<^`54)WRM2L4*VCI1mg_oT6vV`VPM zuCBxTxcbCOoBkAN#LPmAwg;N@nb0A!gq{&L4XByb#=+LI!RXhWrN+`-Xd<~pLK=(997_K4hlA{U zPtDZZE`-;@?sl4W^Y=<>_Hnshfg&oWL-sA4WYfo=)Jirlw(JXEVZWr~CBj%#c@E*= zmaU3jZA@4-c)X#%%lbn4CSqSbeF61LfjGwNpqAV;UR)-S^tyVa>w3PYkjBhM=WZ+S zfFb5Lm+r(LaSPDi|M_TT$5%G+an9XVeb*>Wu9?e)`TKSftR@L6w-e;829jTb`%x;o zXqMK&5)z)o-p_Gt+VXf)i@@`GVSkCl#=D79LVFmS0Xa$L@`p3HsMx3&$iWtR-vqVQ;`=1)M?efC8atwa&90~8FaH$eX z(TWx9uk2myebpYtag|#EyEeAMPiQ}VV3tDVUi2IjqIxA)g(%inqhv{aeXL65z>yp1 zYwzF3wF$S(cE>RJalob9+O!w0_V(>=-RPl@)b4Pb0E7_rdbhpl4$h3dj+~SER(6Qc!GD2U)G0`wiFK5&*l# zbd-jQiycI0b7~~XAOF%P6eCrLi?=c7AhldMnCTDcKCZEm6`&&WJ>-FGFpc@Lv zijsL3Q|UbZB6Hy(d`cRdGEsU?LP_yAXlbB-H(hXuhsIybZJ`Tvi{uwCjzFjCNAeR! z?C4@I+QH4s<6&cEwdgCltsMoIQMJmeqe<$9uYg;xw^KzjAGR@I#~aV+`L&_ngj#bL z#XWzh_-%!uzCEZ)dPYzpq_T@dkw~~>kdL-K%$b=%{2PE`V%k**F%9mW(yxua$P!GLg^adc==)=Yb z`pAlb{uh)*T~l22C3EO+>S5C^-hFQ|^!h<$_r$V0kG0qXL&p!{3aWQ$$1u+QI4| zM*z7%?Fc{yD;%S5vQ0J@dSV-UT@WNsCz41Ni`tE#LyU4iP!)Y2x_}M34sNH+cJT7< zj1Im7jL4L>?JLM@Fcbl2R05=c@@U{ANvNg|CAaqvGD=z|rgnl~*5~uyej2YfpR&pr zr{;GUX&ib8Me>xd28q|@&-Dq^BrTENwI&L65~?WdzljY2K&fM_$G%hz{tvLCL|nEX z$pg=h6*L?kx=04wRe)xhoSfX;+^l}%#yhqROAllY@Xpryyw}JIxTJF3sQcOkG-&Vh zy-?W9}ZYiwlZ@vL;PEA|5Ws;@Wx9R)Zxcgp4DAxx!QZcI4j<4QIhtjld`h1 z>B0>gn>mkODKO-4UAQ18x%V?wP*9M9+V7aiA0Q8KRFu@vjDZ*;^x)f#-)cR*iMLv* zdAl}vG`dU8RS5HgI`9&W3w8Xq2S1PzN0n>oD%Ul(_)?tlIDx{FT>gKGfulqh$dnNxT@?Z@=$P0 zWQMlxD3UZ(vWNWB*I18m0~HBB-E`^FS`_tcI1r4Bw#On=cPXG2 zzKr{1xVzfUH2pbbv3onDV8-XB4loN(7xxNrnPS8h0i46>nbZFq0qfT}hid zT%%T=nli_i-)CIAsAT)|PHxRrL2HdOmCnZ_!~9RBtDU z?tj5fD!Jc#B_}EQX+aP%JZy4Gg5n+VZ+2I*Cn^p?#JRDqFSKUn_j0wz86r(sND%tT zN>9=kkW;Z~WPZDfl*U_8R8h%tRAPS$ok6ZP7=#MJa4}YY`_I&!nIZNY4|D=<;s@=x^&|!g8s!Emf znr82QHU4}`1D#%f>K1RI=B#lmG_L(MHobfHbe|uULMGqah7M&J%iuV~SZ=x)bVar_ zE*2p+cQ#p%ScC8o&MnNKS&1V>Uexr2bfDKl&h_bDBmRJ9et%Pq1HIFFAebi^Hn)82 zEGGGwqtC6K@Ctw$(U?F+W2S$;973wP5GUa(=U3yJ<5=PdJ$A-uF=HJUD;qaGB<}HG zJtEbwztmwaO1K-;p<>R#!lvQp_cIYFV7;Zcv4US)0;%I%-$j?%9wk7@+M$f%W$^#R z>3RR6>_&hJ;qTbAc!~1bg-)LDm3I-1c*~(;# zFxcr^%FXJN8@pgu}U2%rN#@_flDxP$1W?EVWjCb8Eku&d2!jIOgqqfjsMsahQ%HDfl}$9}B_H0>N@0b(wRTTVE97|z4j3gZ z-RWe$%Cc_%VsYY@I(MJ+x>w~Z-|VYDocc<1*VCf@6(fw&NctLr#6ezT2UHd{^g+AD z8bGT)bW&Ke|DpsoZd0F5fj6l9^A^Y~%>mDAuEl@+7`gA)+xXMWsyACBM;0M9eH4l{ zPpr(_{j~1sJY}!oV*(`$93f%hl5f8+yA#izKYyO~*s&CtGeHv~Ov|W&OP#_t3=JM= z?rVYL!faylWB3F%IYTR_52(Jb9pu88D-Ti(`Jxm%yHIF=4(0%tK)D?-i3|g~Dp}}+ zfF(-v)~&D0Z36keJs-?&DJxgx*@iZye)^=?GC-pZl2fE_!JDAHf|DWl(`Ex)awB5G za*LOr&gho*kX5Gs^3(ji{Sj{R93kcqv67Xu)L-0l1q3q5Sosiehy&_6prWMYUXu%C zqhnyuA3HD4{@@o4SC8EFS@~h<;Z#$d;%oR&Y-130=&&%#W#^EL={RqHtIE(Bk!2$TXt&y|I5cpAxZS^*?n%2Ph@MEj1qo@IZt zVrxeaomjcst}kRs|MM_dB}M+qSA%R}#_E;?e>>{|RSC$|Nu(*ca@iYajV7NyeUa(- zn1QXQS1XxU)L)jBK4=>TMs%ZzBY9Q z*Mc0maT2v~{fmLd8X=;^WbG>iL@P{a95<_4h!I?`DclvbTb>L<@ZtY{`2<=0@uV6%^SP$#fa zB9o^89@BEQ|HxEi(Yrl$XY={{W(TDrT$*(H8I_39MV;=LV%I2Qoy^kBxw&}_tR;uj zWCrn-;3zu81q(wL)IQ67Wx#xbp9I-Ki?DRIHZDk%#)@4<@i9=Lt~4VVVGE7kg%adk zmIE~;%Qr$wyt_?013QcJR-L%2g43NFDZPYU*Qt~9x}^pZg(}p?XFg7H4UW1v2|5wp zI8nMdk3OJ2*{$$&S3hEUk0=S9^qYK}S?H6!+0L)-Di`9KH;`X5ca7S2Y=F|v`ea~! zs;^(wcNbfuDut0Vg%yPZ`I0qW_!w79wGE&*-{=s;V3 zeH(xl3Q(MEp`FoOWx!N--J`#1V5M8ReC|O+pz;~Rxyva&pT+=i63D*cfexddcqGnl%!%*bt_HkkT6z5S;;a5l~?Ucvi%LAfp0fj!vQ7O-`hl z-0e>Tyyr|$i?xi{Jq{J@Jq``#sr#_coVz*1e})#PkMJSkCk%*96&0VeataEngV7Ql z#yf|!{hNK|@W0wuS^~BP6NjW$7Q!c@Zr|YIsz^=Y*2-&tg8B?kvzaL%pFps=cQ4Ib zBGDDx*)achp~w!%&BM=8adCNIWKpnM`fct?n>Rf{PjB9D&hQDCPL;0T=_#imp^Oh^ zj2abzTq5PkX+f)-(0)>9+!7NLH?YjSq?xZAp^iJNf!Q9+zP)*;nH53%ooJgLRC&~6 zy|(6jR>E5slrR{)R0r9sIfV*2Y|fw+vEbVVuE*-9v@fPwmTyS>19gxKM^i^ApE?$J+?Uj;RB z52(e9$Cv{G0|p>ZhhK#pHg>X5@`?_c_pgPe%ZSzW=7je2Lu;$=59Cn&MT$@IYthXu z%LBU9NFOAS`ipj6YjUzTZj#<-bFIy;1#IHa3!QrZyM`heg~ztaHJg_;h2^sf1ytA| zOCknPDXz%pzZcfbeLxLK5;1u2zvql=hEWhv7a`fJ(N&Pl>XY4}%@v+JlxN6Boscnp z5DP%hcYEVv&|>FX$T(N1pq;K77};u&&LZZg`aW9GEaU!k`SxfDXlRFTKnW5IkBVnc z>}7JFZ(T(nE)$kY>eP&j7ky*TpD&@F0g83mPBZC)r8xMFK?>oJx%l9V=k3X`fy!n7 zobG}Y{b1`~AO8B{vp*?xW)oULi1&Z=zwv~Ms-uTQd3Y4WptlrRmg^UW7MNm@kKd!5&;_`puD~f-j^W6Sp;9swc#>T30Joi)ge1of;F0qCT+zqHThdT-1|*Ue`6_MQQ@ z*a(jc8YE5YxV+1|68MDIdmd*c!+D?~Bb;d0QD&c@>D-;Ap2I-j03ZNS&D!@aQ`VdA z$EMA#+3cFX*=n)7G(0 z3H-R$A6zdTt9&JbZDQ1019c2taU5q*kxD8#aPM{z@Cu7T5nOkT!tvdeP#Hd4>*pfX z-LJc&GlbDrHD&FBKuM3%oZeh*itZEv5IqWeb73-d8ib2qGujKoIBw|Oqq9IIB_*f} z2g-^b+U9>vm3%vyVWYz+eZ;QevWxI$3kLEqU+aoSylgZ%1!+YlD+z^a^ zITD4$njw@NSmA@m;12(1A!znrT?BgCPe8lP`<<5E$SacmZXb^u7)}2eiS&Vi9)={9 z!6wrQEmD_WBS{lYQONF6KNO&O1ttPEVfWuAf(}=KXV0FM&RwFu|6ff6f6Lo@Lj5e) zt{H+gss{$0@?cU6orXaD2#~nZqz#?w=fq>Fp%R`WB`~;9(kBdmYJ2mm<^7+2Jm5d! zPt@VGa9-6Fp3`!AoN&bOZ-UzUNmJ6#w|za^1mhn5_Q(IQH$04{adhhR?0vAkyGHp7 z-uTO`DZ+QK7vdIvp#WmO-t*t(NOeuk@L{tz=QC9jd%z?KrXX~j0Q%OTw~sEAm=?q2 zfHg?|=-2}oVj$6?*U=z;y6d4yC{d*`VRkW)?Z*>=>K?>_Y0gy00R6^is;o zgs9JocEL%G{_Bvy@e7JYI38Ua7{5XtU|1~nkU!m!z3=L2)ZXtJ_0TcI8abN;iWW+) zSOXqE{xI(fm&u!e`*WP!??#Cn?0MyKro{<3t z_-0Pxq(^BP8CKwfLw_+~o{#K=nDdVpXm7R_ek;IgxVn6JvR)c0FKDej;EaMJ%qCzm z0F@{~mn*Dt`u^8>WT2B~0bLn}OZTZVpPWg8$rw+VDqd@n+*2#W?^UDcG4UZpKm#-l zcxAs4Me_%heWsCI9sXSyIV-PX2-hK%I=Hmy?Fr*d=r9cUwcai`nikj8)YK=!&>TtT zzS>1})*8kWJ769;8wNOj1kf87;aGJ!U;rKF-hzDU_e1QS&M;zn_X zcFdsB37!)BQ3>>y65!V(V3G-@eM5)Y-blk-D%Fk$`~Cv71YjC#gek%j?DnZzj$G#6`Dg>(rM!nK*7#++3KOs(@%s&ZOoGRZM z%%Yn3Zl<$N!*H!8c-|;$Myg$MSuJ5r(6Qn>ckj+~(II~@f`O*$a~kHjnVH!%`tumz zVj#fq$_#w13w}BwA}lNw#Mwck^PrET7+(%1zu*@I&Vw;i(PwMz3&^?z_?ZIu?FnDk zr~}9(1$x3SV8=k`Pls`CQLNyhGSbLURD;nHHVn+1i$Ys5o{dbVhS!Z6NM@YVLka_)oxKIcsM#6z#|{fXN20F zv~pK&F6|NcEytuRm+x49PNKAjmhs+Y^U%5A(@~OJB0gK~Ejik)CWjHaLx6X$QFh=ceE`qIbER*gqJg9In8Ld(*oc>0eS;O+p!Y zVZ7LRX{>$lQ!IPqd-;nOH+$C`-`%?Vexgv!_u4)lOazwwi0MJ}vA(v7Kwoo5<2BZK zJh+2S=hh|jy_(jd+v@T`;W1qCS6N)%F`c?!i4M2ms)t9$p|hCIeACo zJ`dr?^6Gl5h(i0dFh7M?pA@q_U9#Qmr(fPoi{x$jW`Wc@{)Sdx0TceOBCLIyb`#gE UUMjEa@KppOt9+wC+VqeA2Wg#>m;e9( literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_layout/panel_bottomleft.png b/tests/baseline_images/test_layout/panel_bottomleft.png new file mode 100644 index 0000000000000000000000000000000000000000..f19fb0789e677984a872f353d61514c34fe83035 GIT binary patch literal 18608 zcmc(Hby!vXw(bN(6bXxvvOsB&5NQMv0qK$sr3IAkP%%J6my{qS-AGEKfJ%3#(u*}uW7lz$D zDY|h7zcz=W*3HgKC~wgBOZD9wRSCF2x%uc=>hroJ@j6z+-oA9-fC3HOFdfR!9>R=A zwW=J?pI<1O$Im0i$CKQc91*S(uV(Xm!hVlO;9c+PuTSnvL+^NFOQtWC^YWU19gu{O)Tr#QNrgMK8}H#EBF3C3=KC+mqpjR*hjCH2hW}jFw9y6+9$T z9-E6Cn>w5mW1k=IR2}S!GhM#ScJZRrV^noG`5^_Ro!CSP{!tHVJ$7ahyID397$GFPlxT^Mea?NdVJL`U%2e>7lxx7YBwfpxopOT#UQ1gtOXr!^ezI{Ac zJR1g;=Dv=_4i?+_nFgw*DAEtxH*)BdIorf9?Rtt;EPpv>HBw&k^XJd5d~>BNy%JT- z8Y}>I#AB&@AGb^3R|Jr!E{)+=>E|?aab`JfT&$eUKh9VmqQ%-rRt60 zT)n~K`>Bf2LbCyE*~;$jrHh}&$zXlug(`YEn3yKZCuM?YoJI^f^EWB?cSjF;U^)wZ z4!o0+l4k2K$C8x0ELCh;EesUuRC<=Yq8Cn%va8gVdP<^VWo7k3>@92&Z0x~a3TM^c zisWdlkW;!@%lkB+gWXXf=lO`6K{QF|kcr6Xlw-xbS_W5l<_r%?Z_E)Q2$LEUzR_r< zm(zHVK*NG_hE|RNwk`f~C2m7kwxir_wJTkNO>}GQF)=y0mZxWVjK`v2bCiIRSZt0Y zmd%FLyUH-%ytT)nRWt?e!gAq)Bsy81VzFY|6L0O)ELSG#(>1dqVdD8<-K(da_O>3P z>+OS^Gt|g25cPlZWTtX=QLQR8%SO?C3bG1`5)qnxnL4JnhPVJ!SA( zQz^6?HHeRoFI}qKg>hw=5cMF4@5%`i7re=M+u>3|0~r|^Hc?T1OaZJ)mQJDE!-o(3 zHWfNUjH!2KQ)1QOhK+MDY8DojhWdJy&SV9G&LP`k8Ub59TLQzD{ic@va_5BsCRyxI ziG$zv>dK1a^4RBNMcN&rPhj$xb8RqPjBq7#Fe`RX3aDTv10n#+S)t{YUlup{Rj)Kx-pHD9k2%) zvJQtgCbcKX%%!Eobig(aefu^cCDvQ#sqqXpBZu>$4H_gWy>>&QqI7?nLZnGFJlN@_ z5%(_NSQxx4E2pHSWp8iq=XZf>yhV7aE0C))l|#3PSzO%EXLoS4z-dl1h)$44dGq7l zZ;r5#_S$D*aH$PM)lW%jttJ~ncUpb+6X58vaB?cbUTjZRh-yf}egA$7J#VGsuY^y- zV#=KLD$uivfGvrhoRJET3|J|hLaWd)cI^)l5fLYQomZO$GTc_D($!L4!A2=Cu6cTr zL%?U>lj+hWEP7mS-+rl6bU#fy->jam`DD(nX}m^_Xf82>cqJ zo_o@^(%0FvvenC+7rG!EL*yu^_Mp9bzpZSkQrBp}zbGjY!meXIQ#kXLD=M(RJM>+K zDYi)DI=ro{(hWR+)m<1h%r^^ylcZ}U`Y;h7?fXo zz%>Zr-eP0Ef3l;pcdmQA*DwcG#j@rp=|GW9RI*|;YYjJN`mlMdSCIs=S95kh4vkYC z+jwonc9q-7Xwb_ttTG@tOv1cuV0>^qJbciuN*{ehG?c=IgY8~X+ek@;lsV3RfZ>&i zG!%rkPO~kS<{}n_4g^MSf&vIc?F#pq_-BmTyA=dTh=DRu^-tFdgCJS~#iK`$qTvft zEv2j7;!p{;Co4+GWiiu_fXM3GEBa}U*qE5?moG{5-Di{hEa`=vNe)#zY%0Is-AM{J zP=ysmHyYtF%3GMlvL!KDRXClY5fQ0fUFty$qB=Ph8^yM4QBqW*1b zhGloU1`W57FM6kzXyLiHN@6UIgTZuyA5L7n$$b9&^@YLWUI?c6{1vM$!aJ+62bs0C zH%!gViNXZE_ddmV?^t?m^qZsCdrU4y?YhL}vmIFKypRqj>TppK-}-wF5fMGFoi&y< zUc(CaLVzamPo5lFpJ|tZKuP9lo0gUaUsi|Fw(2gvGhb?=v_5GX}FI}SCj&}d~;xZc6oaTBIf<-s(_*IxmdyP&ty-WD~ zn8>>J`3bAu>}Ysw^|-Lz#WE!bUK%h_wx51HtzL5(_0ke`UsE3c8nixOokN%`zViJd zcAzjr$Z_WPeIT`9y!+qo)t*vHz5DHzRexTRX6BuTBSi<(;s@>D&iZ85zrDhU?wv{e^{_MUY^d@n?V zR>z2XG)3}TQ$`dy&Z_b4CAIrOYe3D*&&WAy`Gg2T^d)+{jfWlKbjI zrP^7ay^rr+zcwQBQ^KzBV=T%!H65GcyFOn*_krT)9Jm7|f|cw2%fy9Z;h_Y!aPP$FzY$ zYprCbQNWNGMW0u&AypL>71OY95+O~^=C_Kyg$xW^hR>`i0)J_#@1qnzeHuQC*Nm2c z7l@A?>x7MZ`qU}4pE_kOOWCm6vzt{16+7#5Dd(l0hPd_vDoBG3V%3=(#Aw+RaRtrE z9i5#_6u4;g_O_+7m!zeoWie>L#Qh5P2~pqM%yL;80o<(p!aBrzHW=b%1|VJ`*X1}! zrb#dX75h7L4d1`N?w#Yvz3u2&07;rM)e8VOlYybz9(!o_=BQ7O&0rB>kv7KO!J*J* z@G4-5biH0eO#GbZzslo?8 zB++??%Ek}xyr7`qWEI{tw}Ki(UKE>7&I$Fl#wHCeggNfKHnN;6!EFq#uQYP$YL2&} zVQYP^cMjdYBc7`Y3Na!jZ8g!RDqSvE$$;HTX&IStdHUUrg-$7Q(ZucytqeGlIwkf= zH($}6iQp0uDeo#YwD3}$^$BbE!lzL8?VB}Zp0F$eL|HjWj3}46SI;2`1p@$w<%GO` z;$RtDqqqQ&%ZIVQv5dqhlHcgdHxG{Fv%DY+^?=(LUE%iXbZqfn>om*4P>I@HZ;saH z;xLmegajccta^N5-Pf;_+XfI<0q3{iUvvRjN}sxPA8r6Ek%! z*mfIwtP2efr?OarGZqVVQ+J-JJY0yCjV0pmVukJb#FFD z`*)k!wUI1HU{>(-fEP!50CSmaN^C5R8ZK2GROaR7O>FM2!(Ki-!Zy2^#ho-8Tu{L0 z@9&=mcolF)63soe9;Yy~LC&s4{}F45vLXyheyxshIXQWGHkBa6w<80CmkTh|eSdqJ z-*fAM(@fiSI0Kyk&>TlRlP$53&9yQ#v%2D?h#+vuC)^C`cz)s{qbwRyV7sNDnXT{R z-D!@cb$7H}L@PgDv!*ttaJ>t%k=(|Q4wKPQQy;P~f~02wSMVppPcx_}72DssE4n+M zkLG2aV%x05#6(GgUc>zrDx0BCDzI%ze+IDexvkuT9a+@ZYStEay`iZ|9S$9_=$Wca zn9nYHfdaiH)88HosL@8-%1T0J)Mxe(!Di^GvZ_X>UrGR+26x|ED@j@ zY2&f{nFwHEMD@AX`T8>+R3}ev3uKvAnQ-@k{jUptOnj}>uKeS1lPSWnq)Z|fJFiEtEt!s(I67`Xl*WRnL( zTrJ2>f9U7xHqaP)oZ%?OVUiC+QKqG(rJwZzTsO`{yOd~odN4p%)y&Ln>`Nh>sdk9^ z36OxXkor07w?jfsH(DKoLebVX+jM~_V{6M*UcA>x+DG^pZh?KRI6tJY%13PFc_(`n zNfXp7C}Ln?Vv;^}Sy3HkoZ`$Gma5Sl@%>-HG=lc`{Aep%Bd%P05SR~V!D{H!L(MQE zfaBLFoaw8fvYLVI+6(!ME}{t1xon4qmcGUekLJGV_%GLx&`?wD-OmkaK36(MTO|M7 z-*mxl1EIV(%RIKXw^zNIn#%0|>>1D%Y8|t{R`lmd1O6$@gCYQVU(?}$K(x&&ahPtH zw1<>4?9{8jvs^=7=#6tf^E4jdCF_+d?F}d4!w<;h35?*_@L6^w;&%cPNmfa?sa>K2 zZ|NaakAO-0FN%u)gns&mI^>Q!+qID9;4`!C#@%vBQ&ZS%=c6=zxgUp_@DN|tCkXYu z+nrr@;=94#4GkfTqQzE8G?wcy6-#AJ9x?>wsvEz!EepvtgJO>Kb8eEN|9;tENAZs=jWqGj=|5d-!nl_xkp%tif~x$CrP< z!ep49j~ zuX4VkzOaMH{+~_dKTw|kgS(sp(xr$SXFutaeqxu8Yn2%_+hDoz@Z2l_yWF zEXI?G9m?3^lu?dm`a3f7OG(vY(@L$4omutAoOmwFoaYRu zJjm7UBqD!fOigizAA#`rVB-83w?i6E=nG57;f-jUtS~zKZo?p%9AHLsU z0w~IU?(a>D&(*#-W!0A(zgV$pP{Mlc_V!D&hCuDa%*@P_T)cTsxYFB(uvFh0sJb*OR3d&Z(ct4#x>G|LE8oHMl@FKimkZ z5P~;K#yBkuXkfYknL?VY`&;a346axltuhQ2+et+kKL7(Pz<&WVjY)(6mz0vCs}B={ zw3qGI!q4$Iqc0m_E3Tiqb+a5dywYpBwJ5eI_HW!Nbk+nbXkj+<4A zy!P+|0O~lv9J<=SpTO7>x!;{0dPyPDab)cqgGW;Xy5wW{pCYgP3&!Su9A^G+&&L1Y zIQ{FdoOh;raQ?@SAAdzP*5GeFb$=AFX zRQQwe6c?9PPIuvP3kdY)6^Swg1Bzs~uDW0&Czw3Sfy*iPt{UPDkHPk+5zt=cbR0=9 z7*6`^{O{vg5aGikpNL%@=FChdrrEwttC@LMn%VW=bCE@mbI(s88NQJx-q_PVWvqX# ze(}PWkwjsX%SwPif<`8_ytm~*h2|0Kx#>$&-N8qT5fv90FXgXk;1JUY2XerQz$RT$Qv z%HXvzH55i|KxFY5RU=M|L)y{8Ez(ZVVi-1`n=K-DsFhbGjxLXH#UbHf-ASDXo0hq1Qz)%V^VVRZ!zI#U7!Zk zk@RAocl67gyP+6Cab$C>xFNrFPl#nC%8IT9`|L?=j(FrS&H_8u4$!(gQ=3=b`Z7vN zhJ1!$cBQFZMlX$VoQ`(E{&;q_r_^b#;IG;>$Cw%gaZr1wh8uco*VostYw1NRhMC(5e0z~C2*?#)MeXlOBLHwQ92(@{81&NuC{gtCZ-Ka!n3a8LPDjIRugm* zA@404Ocz5NMT}gS5Tq{~$Or)J(auXF9I}zZF4>G}P*4w)IHZJe>eEEH0K|vu1N9UT z9IOQ#EvOqwP)-f13gaDTx*Hj=BA#_;R5W0Hm??Nkx(u>lwI(VQB`d{dXJnVk0r>_j z=eN_4sG*RZ1sSIYD(ehjJyHRQ$;ruKV7j1s3;V|xRoD(1nAHEk^dBS8Ex-x^FJ8Q1 zY>pAtMI{Cxri|-L8%|CCUWj(IM5%yvf<2P1lJFFWZc`UoCQ0PRi>)s8?VIHOk%sa- zq2_z(9rHK>q?%Pp)g-SL2xz5STDu>(M)B+h{9aIV+E@5V|{rM?qy^J!rsiGU`hz^xN@Uwst$G>v3 zO^SRL#-;`pd{>InS>QC(ZHspwEqo*bCG*^O`fCp)ymmLbp*C`alvTa<{ym*rg#nb* zN{|~$=kpptA!#uggwg`NE*gfnS0*9gD*LH?yR7(LSx--I%t=r0z2f_8D)&9;@BvLS zGaY=iW*UvjPo~B&t~MRCntmr~QhV*T@8BYO=2xI8byd^Bs(+?k$s}bn;CAi`SXDU% z1=4acCu|6aKPvZezfY$skC(2~wS~j9o{KJ^Fjyr>|A+o!C*V6-AaMOq@bnESYCdB14*&>y`V!^ zqUQHs!dH4 zJ1g6k=Uqi2r~Jui3`H6VjDXNz1JaTOs9reJI_0h(87-ku1vMZ*Qg-aqEsB$fgM$M< zDBeNz!kQmHe)OAFQBgr_XH+)Dd+_z;87O(e7%k`fK7x$)-qguWgrN~Yx45DFcgue} zb4D{ube*~Lwlv;p)%-}7ksGqM?Fk%wIN$v~?n2vPosQYL{u|QL_0y}Cz*3j4G_Vn@ z2Ga^~9^U~x5dtS&R{w7&y@0+6PCCc#?Z;>SRF!R`Evh~HoJ+a${G?|nqchAKGWQ-! zgmD>WqiPl#oBS~;wA&UCf^RjIwg|NAR>W5ri)^R>;RCn%oh){iX#$?t%jtzJ2IHD0a z%2&A37ToZ?Rc*Ksbmg?ff(_f^EI47)F0;6F(J z5kO2@SjLW|D!c8!UOnu3nvy6ef8Uyh>WGtByb=ebK4lX@gB(o;p;Y!9ElfyQR0h8c zS%x9*DO%xCu=SE~;P$IdUJ}MX=NotOr#;0rt~&0-Ps>MWA>MkpvbjA;AL=GZRR(O0 zDc$VJAI*H-%EzB+>EM*=^kUc)Pr|=(J$zos*YqC-F_xtly3+osp;5Moa zy!z52Lxc?5$+~X)yyW@0GCvmHTep9Z#txSifB5jBC5MSi2_kK8VXr|3PzWKZ-oFED z2&T8d_V{!4WyN!#XQR^e`e&lEGYP?BLUtpeY+9^hVg|83`z2q4&*n@_OqdM*$<(Sb zInR+h1L}9a8yl;!av!<3zqd^z=K1Nu1>&krcL2GJmcV803@>?Weds=kax-%EDaV~$ zoK%#wdaDaU_q%rns*=B(1~fbs)zj}9&va&-O{o!2yN-rGV3#ZbnWLn``moC=8VGdq z?!91S5fIQywqymNJxah%6Xr`^{jd1v#pyMxo5EGN_}-;O+$ZPL^>dA0a|L_voky}) z-N&{=Sk&-aLEp%M9BmD9F3lB_CqOwlLTF;Ubm=B$4cM5_RPW!wfn{>H^(8)M{rS<3 zm-`%MBe62OkO{7E+kh1#>CR`%KT8aB*vA?7=EE-d@N7pox4knK3GDaJ9cTMpz{|0W z{`A1p4MIg!WjQgQ`lTcl0~dT2r9WR@p|mf4b%9W2dH2kp`0crm89nxio%+xt*4DYr zxr(LYISKd3Y}=08HsjX)`X^hy|8ie%UC?zBxvbk;Y>{@U`zH!2A3f^Tsy%o7*y14* zLi}_0H|GV|*6RFl4ZpV6W=GDh6?U@s!=<{gXK+>a}MW{@zT z((W8ih!m|-I32lmgnW}S`7}{3p0(%t`1Q#xPfX&=Jx?#EnYd<(>ljb(D(Cki*&+wC zmGzt31&cE$qB8J($HrF6IK1v;^@;id-VWczIbXwl`pg+i%ZCszKYw4NVpwObr+)pDU`#<^IFUireI_}|7QX=*fpvBCTwOm6*;*?;At5CV{WktFalvT1b|JYc8p=jWU}zpCRpF98 zow~)%dKD2n*jvSpRFr{ObV(LMM+blJdoji}IJS3m^icZI#zTa`)YMeF$2-@gEZTp; znX+h5yKk|BODpEKPsvrSA99ZL)z;Z1HzCx&X1s|59Q18ma}n>nYX+Xx0ohCHd-vydxXes;xZNxapbN}ne?FJ` z?r9-;AO$VL%fsWiyHMQ7O#I*cI43p{VupWWvT?qI+B(S*PVMHVJ? z0o8Lkl{<3aDEL^w41vwaED}EDS5wO513L|Yviv3rS5Q(Kq=xPsLvfqF-0M&alz{)o zzVR4@=OaR5)@S`m@wNY5a0Lvd8q6U2+W`f<{EbN}Vd5>Ya5%i6fv0~!Qf1sf?5;rJ zefc#AR?#k}d!|=sQD@1@WMgPp80t7GseUu~;WRC>yFRD25&(yuuA2F$;#D$f0a?(t+A5v{r=@;w{cy4m%nQ>X z%&KqtSFHdyA4Nyg^1Q&&rCwmmwY-2xpC+sZemE7tq+c)Cd4wMRd;+w)$LFhoq`m?p zt_ikf3s*s#AIKZbg8`{ux@mdXN^gP*H`N-O19U%CsaDQ^0HRTKhpS(|K91Yptm4u~ z(T>JD!_qY4yTe_%4~;s?b~mxZI1l;Zu9AgY9dBa2RdMd?jIvQzZ91UtT8DBB3m~iW z`qk}<=5-CXIf_!rP*H$0gk@tnNBt491!-CikQ|MWqeYs)kyMMQaJ$}LQkT1p zC1~sPb($CL;l?391lC4Iyxi@UDj#(=a`PqTIy;MOl~u2@s3jkY*#!M(b-J||Tn7B0 z06?}=1v#8X#5I?srmeuTQ?8)JgkTJmey4@PUZAQ`?3irXz)eCg>RymINT~kYM|3kj ztZ83z#549nLe2UY^WY4#VQd}O5k$grdqH~vJSdE^Fu^3ZX(4qzB|mGB?hMO>7Pz4O zW^+H*htDW+O6rI zc(o|so-sbsR(~;tZz6lYbZVb%0YWwF6BWP55}C^PkxZzkPy<0gD&Z&QH&;&hA=ESs z=~ln4T-90&lnLkR4jX6TVX7#*8>Lg*-9`~aGpOGq9p%|*EmXeyoN;!v6Vv_4i=c3+ zcVH?VsdlFjJW@+sH*$2Mw`#u-tuNt$0Qj*jBafP;4yaSC3QbNkP-NF$x9J}5{p`^A z1vhKy7kdDRs!Ua>Pe;j3a9ho4%*|FahHOE|#PABD>_-w?M;;h_k^*8R`0qj(L9sD- zYJ8{#Z*5yHf9X`N!Kz{qzgJ@*fJyt30Nh}*5Lw#4TG43I~Kj@Lx)3a*lP z@bUEOu2V0jP6!jqQe|n?{iDX+yst3*#0l;5b41ALRxENS?3i5m&E;rz!b5(OMC8na zbD@szU5ivizyy8mxyqA$(g{n$%ZT_321QHr56EpfgEN7()?!tia&nZ8D zq7%-%*W}-NamW_ns;qxj8BpXyU%A91lS%krO%^%BFiG;C%UBW^omjXNBvmbOp5fMf zCI}w1uNYK{2b`SD%bpPHx;$@8sv>3hP(SLOMF#?}%lrq(`xHgqh{RF#bzwh5@if+X z?ql|_jjm6p)x$`)I_1G0a^w^DVLu2B*Isr%v$Ux?1tE3$f|FKP2^!V41D>^_3PiklnkN z$l$$Yyp8j&fO@B)r9~4&Pd@ONWHiFpm<1@#Ab)v?`1sVtVwJ$Ls|7M7{t_A&wzs#5 zNl9U!t+Oe-zxJ{3DhIhQfR7H;iwVUom`kmH{j38iwF`9umATmAevtd1WgFOkr84AU zK+IG(Ri=?JtzC0c{1?H&y#W+#6ZRzq_xpK3nb)?fSl9I17T=k<2vTAACoioM4V@=Y z?6E?O!JIyM@+;%F;$Bp* z(!ugTXnlnwi28~o>K6ouf}FaKe>6b^q!(~7FflP%0=?mpCV&KUZ3TwlZ+S(JwJrB0Q|11lzPw;ZX#NHU^xLQadVGP==STS9njP@~eySIM zf+ILntN_5)6=|JENl`7eP;tyJh7yd5wl2i`OlnhStp1O9Lq%3triFAoK8- zaOE~2ZEILqq~_)4gUadld4rwY7uJ)jVhsb6kPI?15wRXP_uMz;)4;Te1;=@DDM_`M zS@xG^B_>`ax9sygL3dCNO^>~buR!T8>B1l*H;dag1CvilahF2$;44PlTBk9;g|cDC zEWM@pS;3&dKw&#_3#jx>?%rJo_ZJH|v-_4WYe*n^;L|9&-~RzH3y0n(WxyHjpl_z2 zHWkR;s*;lU1QN!z9$_g1=qN>CMnG^eVhDS0I9rQFBWG z__}82uBwXZ&NzJEd?rFqh*`?b+`yc*cIZ-0d;L@cuw*sZ#_IQ?M-su)w(~QPi@1C= zt&{8ERVK(VT?-E9EvhAxO&Ftbx?i}eR2s7(r%u+wH|{{)ai{*ddNP}=%DyaSCDiog z+ffT67Y)QWP(2;lT4lmLV&;XaEO4^Sou#|*`yvl~^ELMwu zi@XbId0{a~r_5QzmB$_3fNx7Z4YSkNig9A(RZC8ksl1ae@Qh5YVkW{Qob+l=aBLQ7 ztlb-d)(o7kkNSPjm!*5@QooMjAEDv2n`Aho8a79P4>da|m^Td!#x_$%`POmur;2*i zHAi#yuaAi2FtS{}D5I<8Y3Cq~$TjoH?=Q!?g_xZQJb~b;6RX6>2ap~k-#fp+LsFP& z(Ag8&kgic|MtoG<3%PVbNOEDPsG#Hml4Rk*?qgpZ`i)Hav@)Y@4sIeAHk-U%z>zw{}VFE96LA z$EVs;Nz)#i`DHHyDHo4+&QRGFm60G+kFTGDK-Xfj<(U+*-DLY&HG1%ysS&*NNIq?m zkj~TN*im1EHK@61CUuwI=fV6ChILOr^6{hq7b4_cs1X67;mZQ|U7@3x-)(=*( z91fK)zE`cn`o6>FxrQlzE>)dGYAa1gIi+|GImg0v*>FFfyd_0y<|Bb zi%rQN%kxELy=5*8_Y< zDxdekhS$!{sC7v6n}o$0VV3mBZ;Ke@nuba*UM3?nlduN8RxaKd>S~6)C1G+LGKg=D zYv8p*O}{fldOdryf1LdACntr2rqZY;2*~OhVm>SkQ}1MsPK!@3ue`Y^gMxJw>sNSe z_5j&=th~y7-3qPKz;xO6K{`-QUCaZ9EXOu-plRq+pxG>RwWE-n?2T|O>_vpGmK}RM zmk{VOs49p{^f;kpxD7I757ZzOt_ShY7&^d8n*v2nno_J7;MCNi#bXDGjPP)dnqK9K z2d-rzQuTu(u+=-Y%&F$H}!9bqT(33hbRDI=KS9x!du zCq!VokkplsQegGNonO`>wf!w@PDX@mb#0e?PW@&&wjhfl!rAfLQTjo*l{K+y2mJRe zt4)>H$JZ3arFd}3x8Idc&=@t zkn-E1B0F%7~7#KCQseQp6r~j-1*k&w+ERH z9~5LS+vnK;^~?(K&{yvBDVp?_@Sd>Cj5myJi%leJx@J2DQ2HeFB;Xr$8m^7m98;oA zHa2lX91Wj3SS;X_N+jJtAMukuC#h9m9~^|Zj`8E%=t(%V&QQI)ylk>$s-+1{9fa8l z`lBG+ zm;7c=UmRK&^hJ(0*?O+gkd{^iuQ;qY$tJj-nI77sM;=iCvBfDFH1NJFPD&$K|>2vr>Cw zK%Ww!Mb)45PlRgXD$ee&c$7?MYk$1eS^p&jC5I83($pVv7H3qizUC&|M-)NY@MX1~ z?@|eP`QmkoP9jaAbsR&lGrIS$j<-r6sXt5gJ7td&3^22C=<;K0>$yq(y3RF;dyY>o zBwU>5B#?ML_GdZ&*|bx~TM@7#ntg4_NMm(`J>0ErF#wXeAB2NDKlaH_n|X7D=S_6r zN$cdV9%49grQ|ICzG3v=(5{cJ=9As)g>jCWk(_z8r$Lq)-qc33x&!2U}*U%Otz5+uhB3R#b1y`x7$exOelAauVIauf$5-A`NZJ{sy_m zo?v0J*=Iq!3*g23eWB2klqXm_?G776C7(V)VS85^IqnI;K0Tywi+Xr#hCkprvDOX8 zPdmdMQtP@sA7N)5VSP_HKBmNTLRrqnm%R}Bu9xk*12rtEpE z#q@nA&Q@<|Zs_z-6YKdgEaOxcQ7K2)mHovU@jV89hSbwy+jHhR%PW@~>YKVZa$H!& zFB|smFKS7*oIOFW;@3^Vx6tx#pw#5q%4#{fbrkk`2}(1q)dsP6z7E>nNBZX0vF$Qv zyY0MJX;D!MlL&0^9CToHqHS~_&(>p4BI)-S$W$6NJyPo*{p_HLa5r65YX-=C{ zNp`hstV2~2ob;M8b5`3gDJKn66Ax$2S@jN7tnBW=MpTBfnnRl$2??FVYvU#X0du^3 z7TUeCDLM60!C9YfSmg~xMjWPW|4l|{_}d%>!~1H3BOFfSwLg+sn~sd^Po$~BY3vqidT1~;heo85u!(;+k!`T^?n5Eg!xAe%v6R2 zVLj^dT(|g={t(BEWV2msY0ASe_#0|{9eJ5{BI{uDYoEOx719vM@!Q;kISn-n^khJ< zr}%NiyeT3cT=BA)udnDcz!{^h`3wln%mpJ#@WZ$qEs6uDS?>PE*)sK&g*S|6p31a$ z53pS-xAGGET~#o%>EauinI(f}F|oQ`aQ7RTzT0G|-zHQ*R7bp^dreMO_G9AV;BN^4 z;Zcj*uV25yyplh^1b@wkoxvn3imVjVnFxEQ3i}RS`B{zWRj{`C?{m_pJe~ZYehYce zV;TTfp(NmJy`ZNPHAg_f1m@H3Vmm_+iE}PAAY%`_6Jk0fM{>(Zs!zO{7frUjYlhv5 ze~WdvD=@tAjW(d%`7*14|DkH|;$&XXBmmG>+clUnSG^&HNj#{)h3Yukq@(eqgmv$w z?q~3J*t_g4*H^C&HR<6BcAp1zkLjUGfbwD~`BLTsr3l9QQ?zNEQo^vYTE1qDf$&yR zHkULylh+u9{T_4L>FkIssg6UX4>#)T@wK0}FX>vEVsH-ky8xl*+Rdpn_KN5N37Jj$ z-nNGX-EOxYLH6*Iy}0f%*|>?G(v zg6~QON~VaSP~q(N6>(uslf;5JYpx5ddVs5niq9drMLhqmAHD4GrE z6C=-lYCZsFDv#HGtt-bs9ow$PgY(91bhl%93Lb-&_kbGIED1uLt3FBSdNp;inSvVusfo-A7wQ~tgXJNpH7bWQ-pll`|78$9uKuk$lNQj`qa!uI{o z>HhaaqmwMD1V;ZQoBz!4!T-$^|NnDXO1zl3H-&}60)d>P*E#sCP+F|_HP%kP#zOtm z9JPzU$V)5>1KWwoe#ctX%2i`JGYh^4*pr;4!!DP+G7t8=(g5j18HCUN5FEcpeN#~V zryJL{kCktPfBP{Y8Oe>KJDh#w_vy^kjiHH;piv3P_TIUIot@(>ZJxoZ&|FIo z7y0;RMLke`^;J;!2kW=?sg!j;VA~+dnTNBmRs-qcGbv|ZVLL7ro~EbL;9MAikiqZj zXgE1Jk#T*l)V`!oK;s0kAO<;Fpk{p{qq`QjyHo|uZR@H)Ss1uYQb2oL1`tMI1y4jx z48DPEBFR^_egti5hNo=xD(2EV3O=hd1RgsOJmnp*tXHK@FNaNmmUf8L))QV<7B0LL#g7 z_-8kyV$~I|(zU@+IiJ0RwTZV?d{^BI);0z^-ff(wWz+Y_;&V!$__fC~>M|IA{^(nQGPAs3F&ym>L9W zTWtBA(2H;5Dw>*M!=~!j{<1>Le@iniVJ;#mv>YtTf@YVCvd~VS1#O-lpSPtdahm7B zTj90iSOUFKGv=`rf;m+NqLZXFiLY%2@jE|Ux~;sp{G-8hQE;1J~=1S+XJ3-1=16aZWtrpN#Qa-kF!eNT}V5Kos+{kx@h)jKA zzQ3Vrr9pDqX<;xWw^dASF-RcByTYSb(s@a9DuiXSQXdvEROL@PnlHBmm4r#B=bE?P z59ly_8E$}KoE&n`Fj*{D%O)UFTxx!MdjB&KvAkl~o_7fkPsnIepuKIG0%k%e-($#d z`sb1s6zj?qhj87L7x%Z7-WeM=RBY(Ts*b!q&jY>PS6pn3VuoPcFNVvUOj;S}4}K82 zojRqlke-n^q_^Elx9UPKc3&O`WBPpQ6G5CMtI49?89~AH_M||o0?P!NqepoZqg8A7 zwpG3Nw*zZynWr}fDe^puhX#uqM>F4*Lr?V{F0jfH^+0PJ?<#(D41PsmvBD#?)Z&e2 z5G_%1nX2k(0oU9wlpI1n@!*sy#})0VsH_MGdWnB-N>iiQjT-%Kn4fIFSgE`3zMj~n z?q9W=t@rH}%WnKLR*OIw*gO?DLrq%fV9glqifsv#cR4H6OQ2m9hPpl1tF`rrkl65( zGUnb>|9aQ~9sBEC?>>ISB<>khgp|5|6zNQ6Sqxyich9swQ$yZuxQuPrkBHT?488I_ zFdGl(-%!acuRPHkWRGgMe`9Lrkg(t}uzkpMXW9DGDv<#E1-Z=lw$ zf2Fl!2E!QC-tO@G4ixnCHZIz^-=X0YYG+2sJ;1!9x=s)ce_k2;o%>+HMhVOj_c@Nb zn35x6>B+Qqp^%g`xWjb3mpbtfy(f-SC3pO{qwc3UlV{!OPQ;3>qCq?mIW@=xoB?`5C1QTYR+H2e1SVrOiYjdKrM%0 zc{6h0Pt82yOE$K;z1AVmW!aZ&Y&Be3I6PTx0-}ZAG&sooY7SB(VTn?}UW0vS9@7re zG1?{w)g3#y2`Cnw}*FicplbUcIL4QR9XnbhyNdkjgx_mfi>0;>|^hi@w4x6yBF8YMfLY+-z;CdbX8k$yNCBb{# zw0IIPt^ literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_layout/panel_xycoords.png b/tests/baseline_images/test_layout/panel_xycoords.png new file mode 100644 index 0000000000000000000000000000000000000000..32c7c1a742957a3e6aa0c0a46389456d9831994c GIT binary patch literal 18602 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 literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_layout/plot_xycoords.png b/tests/baseline_images/test_layout/plot_xycoords.png new file mode 100644 index 0000000000000000000000000000000000000000..6976e7d35dc4b44aca95b700630a2ea9290b50bf GIT binary patch literal 18436 zcmd742UJzrmNvRc29k*&Nl-z_AP7iC5%GxRoP$WtIfGh)qJR=4=L`~*oKZxSC|R-y z2ppp1eBRvF{cm@_zTNNdf4n!wt5G$yV4uDBT5GO3=NHy_uB0GKModeLAP5=e?rjwW z!4E(XydNiy!A}IbN2lQrVHX)K7gc*R7k6W)hlsqfi-V25i;blTliNclXG?oKer{oI zK29bJ7Z(R-5gs1fe_p_C?_|z%QGs9xZgSG$uC_CRkeoyR!$aZ{&LfDdBj)x^HIIa) zF?Syd*Q1u-+sj#Y#CVT;ym>BOpJ!-h{b`JQM5J)$l-NqP){gd6qKewI*k(q;alvKI z(Of3h?Bkcx?naLj;y;rLcxB+`?&nXafq#@x@!-!KEkY^yBmN?Sk09Sk@!)rjW+wvRM}n&J1V84w(*?XX=7`74YTTAK z#=TecT@pWs&{>bydS(q=vmL(PU#PG9`t|F*wKg8Pjii~j=(b6R7#&R}8yFx3R|f zDD}r3ITg*AkTZy6;PxAEz2Pi!kx5B~7o`LBiWN*u(vFdyH}c{#Cm0{<%5hs7uHGEb zbzS}Ofv-%+eq2nzZnVMv{e{ zvuFivw2b1>Uv1mIX@-YCJRd0HiZyj*^D~!BC!-UbTb*pGo(dIx%Y72Ya|y?1&RkuW_?wxpIZd!?z`r0qzyU-EiR4pRcJn)e@$8=gytj3isv7F?hjU93u@) z?(=h3srHh323|!)Wy0U{l+*9zX_sUbR%6+1N6O{HHwJX==UX|7A|oa5(bCa*f7qY! zUJ;j164RdWSr73ywQC9_I~v3tuK4FaY%Nd;Y(9n?A!S9y-x7z&b zMF#qZdz&1q<3IayRb?y2+~Q$+HRl!#iZmmxDr&6%>YzM#F5RHc%d$UDJv_s{e)rDy zn0s<~c=&;li(hZ8uiXj}WS>V6zo`qYpY7rr|0L&Y=-y>wBFqc zI>o3l+nMM(6Q#+{#U<}P<{JHmQ~MH|e;=2y@b2U7Fj@iZW943FSrT-d)-cKU?%h+d zvdT;HS;OG0(HDi$WK(iz%9k?qH?2PY1G39$@w!)RmK&mjAo3)v8i+T77{ zb>7<=u%w$!rzG!&kNfT0mf4NzoDy3NxFs!3Nk^AIo8+xv-*8x7YheGhPji^oM{8ZvTq6$9Bsyst1uX zP|(xAJ$dd*j_blev%*{0$upO~VDVd}$EsaP#KK;_RMXLkW47F09@DAwDl;)LIVhqF zycpD!YUsBs0}te{tA{vDNO-%rXd_@d+}F@PTwy@$r1Q#}Py?=N@6>i(LJha@dq9nR3x_J@viX z2TWF$*3Uvh)L|;NmPWE+&E#4o?Ux%L5oE^gsDuv_=c|X8+m5*1Eav7RqrLvE-glpv zbEL+-=;zcFOH_d!f+#tuAK4FId+^y}X}By7HY*=LKWtC(3u0P!=SZyj^H{Qba}!0~ z-{_JlWUHpjh7G7HibEhUKQuRAn9ojr(=_?5Y|udW=djgaVFAH$a@MO?vp=m^_T{|x zTaTZxIN13u;_xGYnGM2F?hPj!uky6Y!B#~>KM7B53S3G3Ut`MAYJi?75@2nwpvfJl9Oe zTnF`opFi(T50lX07Py}*p%2+cJz2t6t-?;fz@Sb?E}C0iO-=2&bq&OFf32r;KWy4- z*RBm$IzD(lF64jY)7;Xs09gSpiqt8y$`p3~^@aE4S^IsHD+&oYH7oVHO+lwLZEW76 zaq4@tJA2gKar4Qs`C;p#&91XY8@-Bc4{H#FDY=QYsG%PsMTt#q_ly)|c#7KyWXWP0 z{1h6q&PaOl`KnoBZboq(V)8eaF0V7XF5GL_PmGM!cBo_YkF=|j$Plf)=kDI;$>w zLrjJpb;SH$cuy;^77a5WNpJ^g8=sex4S&nQ>fp= z;I4MR04mv=69F@9!rFVQ((_5)YsnMNVH>-%J+UP0a^b(aqD@RP=H?EZ_tVld-#u72 z6m{do;V2!vMG(Zukg##>x_co7ZJhrJ&G5n+h3Z8<%YnCsgEYb__b{(jR5N?CGwsGQ z4C*ox5)NEh=2s_)c^IIA9>*)LJ%7jVTU%=@<50f7Zl0l`i0i$*{fW%lT9S!#3|wR0 z_D9AOT)G)lTp4e;GPlR`clPj*09!&AWO2N%2ExC;+*X%}h=@%>!r=Gs-?aQ@FW>MO z78dH)7_14t;nMvzp%5=`P-DT)J7&b`APfk_Sw- zqpXLkPii6a^*5c83-{Zdq2|)BzK#>8p%D>(5ZJ?#>$!gLu*3|r(!e9W_AD|ol95wY zB|~T;@`@sNw*(s5OCuGU*$RoJHbd|6i)=?Ll^K0jKQwP=lAb+x&UNTvH2RLPRR+e~ zCkjSKN6%J36-lEu@JRhKI9RBk4+SnNFAI<0m<1%YOfN;5kp}+;v#un4BkifrA!W^< zpCW?pL>}ikX7no`{y;4%|js)=Wu|I-sLnB~4z*!9M z^6*YHw?237SZ%FXy4NQ5bC!JkLEAu)q5Y0ey~zZ}*Sm6Z`>r202kGwIx;0re=2v43 z{laT^qsj0ZRxyK>)qZa3dCTz}^Srs!X5bB9&K966q<}aay(*_!!hthi|?1K19O#{!&PfOGT zEzx<qW5Ty^5q9mdb9c+2KC)(it6{UGS;jwUi8}zY?C8O zf_UQiTJ&Kp>5zljxVaS=MBVxzZypxaK~}&*TvWTvr@^kagxX16D+wuUety3CV6E-2 z4f+-4pr(uSAI}7@CpYZ;d=VTLrkSr%Q2HZOG^6>2fbmB{j7pI~9R(vJbQTmLZdDt@ zAwpK`pPuJw=D(r+^oh0J(^=kkLz&^QMY2@n#`lR|*#3NhRezkO{?@X3^f9uHq5YNF zE~+FUMXQm4hVkxnSpkzzCz_j^bESjGz4n(X4h8CPNBdq-)6s{#eangSR!F#!nw{*Y z1N9~oVtTWY;M9)cew*P@n%!7+u4QkQPO;I=4_?Q})nF<6GUcezO4+<6XJL^8orUh4 zdA(T&?dIZ;s-vSLcBmwK;H~y$OdPNAV`w4Khd}$Hzgq7sn;Xg?ngxAf4!jEXTk4Yw z5TGX3B7?KZ{)LdN(Ybtb{M0~_xc9-xv#>CpHPOva=M-~1*MFh2dck|~9e%o*jPC^0 zvuwDH#iwUytS0K~1ntN5QrbOV%( zj4QZtJ?u))dY5ETvj35`(3ndEOjMceh#<6-SlANvbKA>rp}?_Uy!fHP-g&mO?(Qjk zggdtXWGQnnEgmT`F&`T9=L3z!wnv>me|deGtcmv}bVla~^_)XqCnnm$uQ&~Azt2G@ zk!q_L!~5Y`a4=sW8J*evSia`F_wKDVWUb#}?eyjT>H)Klej4KLJapo`p%=t;=Jq=o z9EII877u(yU9pj87#Zyk4%WLM%Ge+ehR&;nc?UIYLol-mnM;eAFGi zF6+^$-gmcsXj8LL&$16PMBipYjUgKw+Z~vw5U5}jJ7P{wPA`v<(Vj;m#Q1#R?_}IT zi^aE;N3SCyR2NVDs7hDkX*hWAxKg*hXDAAlG5^luoFjHLQ~M| zt=gyOtn@*&S$%45rh$zSIJh8i=jHjyqFIxPiYn(>+B0X)e1;GR9xE!L6|kDdac(b- znBTsAd#6FMC5&;qNXWdCehRwp&7!Mc8yaBG+r6IH{Rnkt%6>D z5%*;qn~C}{Kv8$)s)K};2 zjtMtD4?9&Y)wXtP*xG9@HE3f3cccl8M|UKfYN^|jP8lT0?@JTD+ha!}@R+wN4LAd+ z>^$p7Zy^)!Z!M|by7kyU7P=Z33HJ@zg*KjszK!`_77Q#xx4@uYI)H*)NRtnTw`?oM zuCU>p4|ZphqY@MK^SqenmntR(q7D7nplJdSWZ52bjmTi4$~pVity|Y2axp!xE=p6J zJ)4FG96Nj7r?RcNZfSnA_HUQN#L@s6S3FD_lW#Ee1v`lF3(NeuhZ{y?@OBV_Kkp9JnTY{^36SFiJOWe{<> zi&hRmb{l&OMI7Sd`WM2o8@(@GzAUiVF4N+@F_#Jn_Kk=4%xYYtpB$|xwHOAZMWl{(MqW5U zqxffyQl*2KF#y#T1`2A7>HtMS%~lIEzT2AoyxM+3Lcp@;c6cAOi8x`a_1Uh5ABW~$ zs>5~O6@oV3Q!a>m-3?DmOLN)Vn7?KHA~ckHtqjF^00W53mJ78@J{wL{1(MRF!48BQ zYS()FHi70l=bM{c^`TsDHZ$5^j*ja2d!yhhDmpq_qdeK){@A^n|BnX$>Ua5(+ePcGkJ+RztVBMb=HEQSnsLKU%#XWg>F69s; zpeH{Zuh_7`&kOon0iPWQfTYUMoD5z~_Hp{)6=*!SIcSJZ85*0L%VWCfcS3reow>}6 zL30QY7TJJgP{2rCJ2CY;M>SgkMeAlAahYwMdS5($etJ%O-Qt!1*)LU)Hc}y2S)s9k ztGHHm04!|+n!pa3C#%B?^=HY`p^%@p@@Or(!J;=yKKR9p-Y89jTo`vAFdNN&f>3ZY z?%W9!aa+`y`?~Y6Ae$M6TWa(HU;Joi3cVaH4d~=tym%2vfWSK;w3$G4P>7tI)@zIA z(S#Zg^`YpmzX)M+R29r84QHU{=KCG)9kl=w+2|Bqv4F5b?*#3CzWao4#rI(V)`bu| z>`?F^|0qFGLJ=p11y@gb1%8GmCs;p{`}l140nE9qcL?PJ>3|kN93y+CYYT(B#nHho z(UnIOnb-HXpj=x(ia5eB%~pTk=4NHRi{>&(+^!;8_F$)=jM!;>TCci^!!R3Zz>vEJmt0~QQ0 z8iFN&VvvNEJ`5A=8}cA&fP;X+26{5(&}r=JQ^S>Q!4*pH?la(tdFx)ow0`-rYFOzu z-;=oqOb%2>9)17AO__R0Vd0_DVc4uu5fKk`_8+ke3J&yj2`F_>Y~Au7Avv_=dAPJv zB75O=*G5|-GYiW+;7e8DLaxZiWx#;h#l-X^k`?{;dXuj^O@F}`@<|r3euJYjf6x-z zU+Fm2&Up$ji5vT(NB}HF??O>SVYGqQ*9M#4KbyldtP88MzHP_s^3YX`6tuVB?;Sp+ z=5|PZ8J@aPQTJ_POJ(55jIfwV)f{hjW@gtv^w~2d=$82S_?TxVg4`ka^K>f;V_9IN zKg6<<2rAuI4AAb;NhFbvR2mHuiKCqdw%?0y!W03dR`v0z{a;rfYXpF9-5SY8^ag_e zKI|So=MuP4B*g+TFqP`$c)X2&RqEx@(d078`VA6_>RVCMSv#sDNDBMpX$K@u z*fhrsSE+opq{P)b-Yt)s=AkPFeo1^0IhHc_N=baQtfv1Vyfk~TbR&#Z@c(Hb|AHX> zKlsQwQ&+qk5e@o#JzM9l_T?M+x;`s-=qd~^c7nW#mo)zc>pdWD^thwhY>yv5&cVae z6o(HsGNFl#9+?eo6Xw4 zX3XwfUT!VE7a{M}t1YGFOM5RK4EXt1`sVX>9^A^BoxwKQ>QZRd-KnzAehVKlZdiJH zSRVa;SqQI~sT1#ZmBndFuI#3Z7-H9|z8lqX&6KbdX{Qlo?xf{z-6iYK?Cdvg`!4hk zCfbhZ>Ys%jdrOKD|IUoEIOl!;8Z2#o8%!umVou|D7W+pCOYCZlJ~i6ch`qH*nE8)Ct_myj$y(>p`0kK?PT zX><;vcREfKuR;gEAF`oAdi8l)XLERxFGWqA&k~bOeo;8_-is{6c0yVC;>BRHQ-h`T z1QgSyGqS+W?>;tTXb(s+j^8|#*>dswJ6a(-J()-Fnu zkOX^&%d8LailNjKjq}@$-teE3Q&7-=l+IRGHMXoGkDtp9Wk!DgJ^{_Y&%>c1Ap)s! zt!;hCf6lVl!J;B4lwHsOhC^480-Z;UHl!@1^MMs&Gge&&OX2ikt>uDudwU1`{Kuur zxNHAK_Wb|HPWcyU{eSdgH#MjouBE1?I#uaql`_!Nb5@Ml-W$=l;UFRtAIhMfPy5bF zz2uk7V8Ok8eHHbB2DzrtefhuZt=sa-8pSufzw_9bT?KH!^41NPY!xI5B{}!Q#3YjS z6ta`B<8n`E1-V_u@=7N%KlqK1?A!7zR@6nhHk=G0ay(H<>|s7al{q`ZHnO08#~|sK z-Ixtp444AWAo&4t#*3M+GG9#=SL z`S)jtHiQFMW1)o9d3QK?`bZE7f8Bsp{CSr|{lp{`_(;O%uw(w0i1r^+&VN6VOb7@D zy~9^fB`&i2F%d~$wW~E?JG93EGF!>Zt6HPTpx_a~@jPgtusxYCB=#5iG2ty!-Jk>Y zmsx9;Sq~~a`214Y&aRNz5+piWKGSDtLkq~s`VaTiQ5S&bBvjU`-X8bfJlvkhmw7=I zckMwSGaCzw44Me2cnsbGQk{d%^=GHr45b0tZVAmHDprv;eS>Y5*#H0m<;IvX6aKh5 zLEGUBXr^OzMA1erg%o|w&O}l4*5Mg|(koEBTk3b{1ueTG;IJcC2J#@-?CC%k%x6X$ z^Z*K+-t>a8vQ>@Q;kuV9=%`zzI12pFe+=nluNK7!+z0nI7s{X)!u06c*Rf!*qg5rS zSOs8tcTgXI8lbUz_kv-UQ&Lg_tE*@YBYo4SfZYCiKJb!{BFC_IQCgjQ+mi1GY%s9p zeKXO9g|YnR*f{G#Wq|uG2Rn{L$B*X&&e{X6eRHv-D-ZfTtKO^-AW7lnmuuG*GBY!C zL8+-;u3qS?us4*matCTg>;25xy9x?|1-Adz@V$HY?%|%E{$~RjPyeggJuDar8P@*I zP@mA@8T~XisMV=ZtB;^oZ@B}6JlTKuA6++dN1~`ED0x{LK)AG)x1O8*JBkdC)~J1V zCWF>I#89O1t3CFCD~9D3a{IYQznW)g60u-?gemKwqiZJ3Apz3JsVMgQuOyG3C-d7_ z1@M{feV$Yb>FGX_(QFbB^^0BgTrG&6QdyNDXY^Fw;+qW$m1Mp~h zjRGWa2kZDn1==Nd>by2pKu1EEjk9GfXg?qoVBM4P9QbU5IqOprJ1G(etI~jy5gNu!HV>UA60d z-52k2ed!ABeOtPOO5$7?u_5k~ZQ?{IbAP9BhSw(D-Eip5DX6HfM7L!YH5}=1>6ES( zQD3-Fn3BT8AnbIzySp0&?r}o)1~!L(MxoLwAeKk7d8+^A-mGUENum34jG^+yVzWNU zF3YR_1+Uut#KY_XgjR$82;iyU+c%}dC42wgTF>>q49vOBl?g)#;K2}~an>f@jduPn zR@R&y4_O3q8f&IrlkTSv<8tPAiN$AE?SXYI1s({0;pGMKVVpBC1ZA+xRcxC!kje)w zdLWVX*SOo42tjgGT6Q9xYX21ag2Us)j>+q8)=94!c%)W| zS%;wz6$LZ2C_sWkWJm$tRD+1v+g`DEqk$*Qd{)gmQypI4GTJSfi{FKJUtS)4L}W}1 zE1N$d@8!$ViW0jS&}8HTiJ`8>1|NxL9>n5vD?cS{Oh}-Yj~A4OeW?yzjKAmY+kZh$ z0mWnbQ~*4>CqdYm8S@X6c0a#u2_$njCQ)y$i#31mH?+6LPi-h63$k?YUBwU;;#nN) zB}f@u=zqaep9Axl3%3tnD>6TK=FG*S!F(XmKxr;qE0X*VJ%uY|w})nCaXoHKFQ9{1 z;wLlx8`=T7l+)g?scm}S;_$_|r^+kvWvk>#)8=5x;cC}>D0*cMleb)#hSdS(4}5rX zd}e*OugFjm_CnVpAB?nBK6H{@`GDiAE7E0tL=!-H8aYl*p97^Lt_~(IfH=ZhZCQ>@ za~TW4%lYHl5@}=b&A-FK=JJ<5lAD@)7$zi-D%segzbhyzDLP+b6U)JO;}gKNl#eqs z++RPP(3-#c2+7e&I&gbhFY2UakgV9>^icp8HyM0_yc}SDj#5>93dt1@3aaA_vj>9? zddz(^Pme5U@tFe7wrzQoVrQjWH$0dzxx&Ia-W$*M2JI~z9|9U>abOymA zjAY6#Y4l_x5283nYi2Bi7?CNmgegVUcp;SRU*^?J!X&)5_M_Hl0|NzY3q#AeQGOxE zLAX9#|9CNH3?V+#j}7~8N{0R5w+K(Tg2N+19-Btuvee(6ujR5@}*IC$`x;MZ(3abhPw8J$HhHTrrg;MZT*)A6r7 zQd<_K0Uc7SG2O_M!n7xSb)5ugZZ^>2rl+Uz+u}h9MkO!EhUnIQjx|T~SxTf+9gF1g z)y3{nIflM?D7e*bOI{z=R#zRk4C`yvY_H+NW0dYy1(rMu%5S{f<-j)R{>zwRi?ud! z9WuvVsENwAZ-07PHvP*AZe4w}w@_w3QGd3->rY-~^CVrr^5`zn3gOT7-9NSh+}>cr z#@DOKdd16m>iHDlS^&}M9vC48VcP`TCZi}Fo;Q98-^fzc_+rpgvfM`ISG()8);l0( zl5iZ1FF-X4&wy}SIOV@1{ajG)PsFekJ??87Qm;!GJ809`9heiH7``;2swTKNznGUa zTY4GOK))+Ph823nY&%}74G^Ih>^E;2{STBc%ZBy=DZ_$NxIjr58ygS5fB3=*8uqlk zlK~LMnUS-uSh^K2-}KGdI;Y89?`C;??MeM2%Gt7YgT%o@NyT`<4%~VG9>I0c#pOYZ zzkKJV66oTEbz3?zGBTKOP-V)__ACA!+F}#2+Knv2)4Fj(4b5-8-O5)oFcAlBz?3Ql zlTBa#v)tkSXP;pPt=$~1!XgDUhR^aZNH9?=;9n#7)5=7y-LI!E9{NK?WlnEK9T?Eg zxL$p=_D4BqWl_B7zQC%25H*ziyDJ(WeqcVW=6NAmk#TuA^@(L}bvcH=>;>R_%#F(< zQ{9qoHoeamImf=IMa8MTcvsDgoH%j8{!E0_{mOICXifwakCsdn^$i}6h+Nvlt{+Oy zhkTIk&%5)r(3ITy(0C|%*z1yZl|<2-MI2^@MK62!%xjHkBIM0FmFtNc$f<3rEQ;gB zc+NiFJFni?8DLbr43g>(cV9JA-VCpmNOnsSN!2s-o0#^j)A3)-X;#ORGFsi!%aUl< zSUh1=VK>HogIpi7JSx2bMVWKyG7VW{W-c{Nrhc|U>#J#UVvSy_{sQik;m~+rdLkV; z|9dAHda?3KcH{)9gyE5qp=WaL_5zYtHH%P*;@<#mLBQgh6q=k-3lE4(cY$~8pKJ=+ zteH6M?E7hSif5BCqf#e&p07eTU8h1F$1l_nxM{%PlBuIvlsde8VvKR(={i5&57Mwf zmZCuxMPbQW^9$rbRmUw~FyI{k7~BN?c{lkKo#1`wIC_BU$_CR$oDTisq?7w!zw}~_ zTxnQuM_66+5}gzQav~sLil3Mqh(QOIm zE#QB#_cd&gMF1wyh0gmQf#j5DJy@7U1#fox3u%+`S`e<-?kl4ihah4% zT#7l|-$sS%zC3jfv~{5qvg@PN)Jx?kto*ov4}}UpbZ}JGI6?~U_Rs7}&83q8`d6N2 zkpZYI^3Pj&+^AMLifUET0^xOSnr3;I?CJuE8_s=sNyE>5gLq-nYqL*P(Gp52XbJrV z72`TTzSt_m{KM0EJe%P|fjHG7xHU$a_N)+={0XR@+5#M~Q5w)DTk2(f{iNJQ)b_iaG{hX}j6)U};EQi0k zl8a!cP>bYg!e_zUw37_hAsyI6tmPfBC}11A;5q%eM;+EwDQY)EmsW6qi;Qlc+V@qd zAtUn=kE`lz#bu1FKbXE2`Xm19j0_d#8&EfquV1H@mR<+<38nXrCi_jKb`P6hX8QFk z3o~=1S5QE3`NL-N#GTzp5ptXSn6`XveR3ov*lCA;&jE+$TZxnUF!L~mRz*uxlyTmctyvT5~L{dt925j7R*Ji>YwO`qd zCS#P)Lq$_{QJ7ipl{!t3&DCMKgpZ%bvz;F;ii&!}g<1RMS>`qArO$6y+^jw$*V)<^ zF;Vy}we-4vZ)vO__2AbHI$zDd9vlzf#8wIc61F6(^A0Gi!LjGd;Rg@{v4>$YV--XO za+IY(wO5tt!`BO6&EfS&NXf}G%D%I{;MnU==Xhhe@Z6LpT;h9`K9`BrT}Tia@5Leb z9Z&ojv#rX~C}_{*?R;43TNird-1ae}R1LS{pVg8s&UTfnAiFkU4}glZf?1*8xN~2% z36g>@Tzf_GzQjE>kkiqK#-O4N%qxyws;J`ngXDnSICs0ZvATw@x@IGKwHF&~+0}4+ zWShwZ`%rq=FWt~OTo5X)&T#53SCq5e^$Kz-S*M^nlecxKgVMfg&n}(9ix#Y)ye6Xc zJyEJv^&Q@~*^)U<*_4;~TnCt*Da{SFe5^p}%7!J&b<4bRfd>WLxq4zdzv^`O_8Ua} zRx^%`jq7ge^p!&i%sDOds}>O()r~PBU<#0%brNxv%g=MS(^I;8`kW;4Jz@yzBY8NX zRLW@(44x#8fIiKGRj;V`>#db}+Bq!W+1m4#QHZrIBKz9X&pyt;wjs#ej%sTJ8R%!6 zD~@t1%59b3w4@8jhOu_d78IWmE9%OwiRK>YZYSL(mCg^N@7`}J)C?(JB_5JMQasF# zH@??Xs=kiDV#>yZyuIO~qqsu^JI0OM(SUQW|mo7u8t)4FWQ4xWBG= z%>Na-7nd&a?YSQxp6Gy0>d_!dlQe(+Yz5tPHCTbm0CAd(wG@2?cZ=JKJ;wL9Xap!X^X;Mj zxbe_@{`V2DQri&?D9k*y zK!2`Y?-Yf(EDn90t~BNR^^1C;a}KF&X+Nk*+);}6=0>zm9>(oZb7{X*l&c>y#AbEc z%c3sDXW&TSVe@BNT72Cb6B9#nM@m&yl@jO<)VoYWL(?1x1OWbzU`mcs*98sekgO&@ zKE)1~<=a(G9)p4+o$Ryr9N>Kn@;I-Jmtu*5CwlAN8e9ARsYJKBtHQy!8A61RJA3dO zb=&s*irjNyRGz5!6>#_=1qdEW zejSuWmf@^E>Z1n)$@Qd7+4;Cga!-8_S?(3bP<$ayXikUrPn~dmEZp(85zT?wkTVo6; z=P_T;6q1^!UGh<7o?+{~rXV3pke`o_=%uL;HI_tgkfgNVMF{V|nO!WPn7xEbZ;_W} zEkEl0J5aJ3<9+r=mHR(24gD3vlw%bnmI3{k!jnHKNt7 z4ABUC2{}F@x5H^4+ApNutk_0@N~Zb;>c`ynKvqRPHa<_gKXaC$>I}ql!(n+5Dey(nE?(xK^eepWD`s z!=$*2*N4wJArv0mQ`ydtI=jD7QTb`uDT3W=F zSq4~(;>TS|^QV>!IO&r{-c+UgpT#>Z#d78XP1YOzc#GLn-sn1T@~PQ+l@$YB;x@Ax z=`+SBkAICCuFL%W#rxdGSi>MYhq$hIpu5Ixfr@?>yyE<{LIN!e2o`FzH$QN1)@7n< zdBCSXLyi9pFBF4ef+4C$D94f9jIMTEkCSMtjcY$adj#tnA4_$(7YLaIT;R z3$(!p3Zokg%*3^Syq(y7IdSi;zBHK^_tYdV2O#X3QH+NvD-zn-W{I@(d&dJ?DW~5< z%n6!MxSse<2wVi%C^MlyMBUKPOkx4_Z8jYJcybC0$28QSYM|6QG^$@_s&|r~qcPfv zRUBMc2|JS3hG=?k5~RQ=-ydUHp{-Aah+gxgTCIwZ>LhapTO#)RyL6nVn_Icqg)pFe zuVVf|FBd>LFf8>&*Ux;6S`wY3@W}Y6{1Dujm7@%>N~<2hl?Kk1<||ZAACny?nO_06 z1*`dTH?SsU;P}C)yGS>STHv)-n1I8dRIn- zSIp3~5H-oRILS7X{z|ZRoP?X87p&l@5BmibSI>$+&ih{x(){>vI~osf`%HS#f_@UA z9E_fHNRm@Nx{9&cl3sVSdsWr4^|^5GABZYqca~Lm9|X)2-H`qq`|hUfQA)BjpAXd5 z>bDQc^at{cEJWQFV*oaCU|PR^RkpA=lJt6DVlwT9^Ez_?TooXLdEj%=vq#HgH6Z@3 zn=D*Kvq-(T&)w$}1!_rM`MSp{x=WuA>Y&k$^_C7Jp?14wuKQmmRPYBoF?ZW&6I_gDA~Ao&eRO z(G0a%T)$rW-FqlX-NC`((ZbyK=M3BNAkYLat~?R-(=bp-qII`m%I@9sSM8nHGHE$1 zclM9Y4j>Nz4lJu|$*m?THr5iXM!|>W0PpqIFW{smd{*nAOON{`)Q79XdCN&Nf%LrS zK0gs;sEzAVM{@q^QOL4x-k)IO7m%aL=HKl7OfbCJq=*g!q#eQlK8G6&MD_!AcMF-0 z?h+{puVzyskvC26|5aFJU;Hus<8&yw=Dr_D_j2d*+wcRf9IW3g8RBVazYIjqLNU+szpm5ADmh+OaFI^&wr~0e{bya_UqnSapMr;7{sao zF^4*e)JM(z4^>FA{I7tU;0yLl+(AF?D+8q+xWPC-0iUVn2*1mETWa$#p|kJnq+~$vxpWM2!L-3seSh~E*cfGP~V(j;qttPGd>K}O-Of&;;t@YCX z7`_zc;9+$qnoMJJweys(-XRZa`tv(rKLt-iid_A|3pMjJ6ZGBxW?K5^h@^g#hFz)+ zM@wNI0)mSHN%B4C*6cPP63kj2=E%&k$t8Do6 ztLZ*RYZ9o`XCd-TW<-jj6kqdAM=G9absMz+Ejd80(G|UX!J<%Yke-N6@=NxyR_Cqa z>Wmk#5k%`JP`qpFRsM?O3+i1utppt7y-%|i8T7K3L7#hLd_GPDtA1GN6VIIMw@~f% zDI`U{1bhU09y?JJZ|O$I%<#^H zE%sYO+1X_V=Ab6!xoRPa>-P!lSHNNNN>rrwF-MdWpY!HqsiLdt$~ArAtmL1^D~eWW zksl^73ihX6M|+u6wHvYT`JGCqYQ|dII(s+$E33b3HeG6BFRp%UcHmZCUND+ls~1-8 zU!fauwCi2AIMDar3;E%b#fZP zt!$z9o{%D~0ag%Ioj>g;kk7F8)oA4w4y_5(Mtc{WYB&_F+x;TB(RMUdZFOG~h=Z)r z3OpqGW4JRCL`H`mQe*#*GMKh9alpNgl+!&+&!gQ)s*R?CoR=*Va*d{r&%~TY(yeY| z{U_*kmzVIRJl`=RcVuPd!oj^wK~0?v$LRc#1aL2cVtg4xE9&+ZOtj`Y40aVGrR4XFY6A`vrBe(yV_$@j1CaZ_nNEvcjgI+)e{YG}e5E+OJ|y5ZJ^vSQkVFjPrt z)eoE0r@)fGX0A$a>K8~&Z>F5o8zm-(cD$y>@PM(bHZ3=FSxzHtGO<5}YOCUpS-6^Jdshq? z3JOm$6mXLSbnt=@MrpBope|C4tK?JRi;9gaXb?Y0Li?GEFllN`P3B)#X^4^tq+~$D zks`vn>z?X=tEqqHn%z^`r}Lqbf80Gb&!DKK;LCizJ=biXH1J_5h|<|pp#QDz7!30J zX{a0QT6eXI<6N!Kif;2#x)J%Gx1N~~Hv(fDNbov92ThQLeX{%c% zS2MWG5oD!I|7SnFncSrGSmp?8Dtmg}c;^PG-We!2NQzd4xWFxCflCzH;<#(rc{=W@ z4(K{)ujf^ac27EKl4!0gg!HHBMmXhAHBZw2dHS(}1*^|kNo;g-==|E1G76e=%G^ui zzq8{7OkE@af#u$euXYlliO)NcbzBNO3+Q(YK>FzeOI6W$oi~SofI52i0RHKNGYKK| z!ab-`-^dc2^Gl;dA*8KtOr(RGXIs$GF{{M}93ntp&sQ%LuJh;?8$CkFE|k{+^9&q+ z=c|F<1W7RVLR@apqb`(35C0`+g_vtOksASu0S27~181H@yf$)hW!fcXmYoU0;Ti89 zw7|(V$E^NIkfyBva6mfxk6HfdDx$90a`%Ls9T*tM4rjjMbOI^~fxL<<1J-I++7Nt^ z;Smw?xgVC?IDnZ3Ycg61ER!vn(*M|!P@6>S@Pr##o6I}YJb9pt(1T5w9o1v16vYuW7`i%@{9>R4}loSXf9M22RU298&H7t{eRZX%p{TZhT5}5SX*Z4QU>Maq4fAv>x#t#1<%aVU6ej;@f{a z4L5|iiBQQGHSP)W!_kd=IVqyFe+-K*`Y~h^Xne20A$z0x|4e_f@$vOw-y4O4k<=1w z^x$-aQ!gmp4#&+*UA1|KfYQ5e*~477zgz?0sl1v#W)4pCYXGog#t4mjq{I166Gxex zm*??HADz3Zz{|S>Ic2Rk&Gr1{jav=+g_1$FblrPv|@_TzdJE z6iyU<`Wb9g4ydv=kuA4q}~@FlP|k zOINSTqQ(3By9dHzrUdXk8-3`Z`|KpId+>ojlLLn%22e5Z)vMF_ayN;D_su<^s)NB! zQd^IVodZ9G%%jer4ozoxn}{tI2}_<{KCvP#Y9_B-0Cw zhEPkdw03sB0c^-@JM>-#42SP3FR5v?H*x3z&hBvVtBiO**%n$gabWZV6Q9SIF=;}-#%gByQvNgA@~6o;9Do^`dL!L zO{jnh3g~e78!)2T=znn5Kq~5WOiT`($oivNwfLa^oyp@MtD)w*@au3^26$Sza5y5JxwGQ|@}ZVGJ3=Ui0%2qLx)dNWi