From 71c2b944a1adc0eff0a90c16699224bf5198ffdf Mon Sep 17 00:00:00 2001 From: Mykhailo Trushch <70649651+MykhailoTrushch@users.noreply.github.com> Date: Fri, 19 Dec 2025 13:02:57 +0100 Subject: [PATCH] Merge pull request #27491 from MykhailoTrushch:ca_cpp Chromatic aberration correction #27491 Merge with https://github.com/opencv/opencv_extra/pull/1266 ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [x] The feature is well documented and sample code can be built with the project CMake Parent issue: https://github.com/opencv/opencv/issues/27206 Related PR: [#27490](https://github.com/opencv/opencv/pull/27490) This PR adds chromatic aberration correction in C++ based on calibration data from the python app. This code adds a function for chromatic aberration correction based on the calibration file (Mat correctChromaticAberration(InputArray image, const String& calibration_file)), and a class ChromaticAberrationCorrector which can be used to correct images of the same camera under the same settings (so for the same calibration data that is initialized in the beginning). Also, basic functionality and performance tests are added. --- .../chromatic_calibration.py | 741 ++++++++++++++++++ doc/opencv.bib | 9 + .../py_chromatic_aberration/images/ca1.png | Bin 0 -> 111110 bytes .../py_chromatic_aberration/images/ca2.png | Bin 0 -> 179870 bytes .../images/ca_comparison.jpg | Bin 0 -> 19625 bytes .../py_chromatic_aberration.markdown | 100 +++ .../py_table_of_contents_photo.markdown | 4 + modules/photo/include/opencv2/photo.hpp | 63 ++ .../photo/perf/perf_chromatic_aberration.cpp | 39 + .../src/chromatic_aberration_correction.cpp | 242 ++++++ .../photo/test/test_chromatic_aberration.cpp | 144 ++++ .../python/test/test_chromatic_aberration.py | 127 +++ .../chromatic_aberration_correction.cpp | 115 +++ .../chromatic_aberration_correction.py | 83 ++ 14 files changed, 1667 insertions(+) create mode 100644 apps/chromatic-aberration-calibration/chromatic_calibration.py create mode 100644 doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca1.png create mode 100644 doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca2.png create mode 100644 doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca_comparison.jpg create mode 100644 doc/py_tutorials/py_photo/py_chromatic_aberration/py_chromatic_aberration.markdown create mode 100644 modules/photo/perf/perf_chromatic_aberration.cpp create mode 100644 modules/photo/src/chromatic_aberration_correction.cpp create mode 100644 modules/photo/test/test_chromatic_aberration.cpp create mode 100644 modules/python/test/test_chromatic_aberration.py create mode 100644 samples/cpp/snippets/chromatic_aberration_correction.cpp create mode 100755 samples/python/snippets/chromatic_aberration_correction.py diff --git a/apps/chromatic-aberration-calibration/chromatic_calibration.py b/apps/chromatic-aberration-calibration/chromatic_calibration.py new file mode 100644 index 0000000000..f4a86f669c --- /dev/null +++ b/apps/chromatic-aberration-calibration/chromatic_calibration.py @@ -0,0 +1,741 @@ +# This file is part of OpenCV project. +# It is subject to the license terms in the LICENSE file found in the top-level directory +# of this distribution and at http://opencv.org/license.html. + +''' +Camera calibration for chromatic aberration correction +The calibration is done of a photo of black discs on white background. +The calibration pattern can be found either in +opencv_extra/testdata/cv/cameracalibration/chromatic_aberration/chromatic_aberration_pattern_a3.png, +or can be replicated using the script for generating patterns: +https://github.com/opencv/opencv/blob/4.x/doc/pattern_tools/gen_pattern.py, +using the following invocation: + +python doc/pattern_tools/gen_pattern.py \ + --output fc4_pattern_A3.svg \ + --type circles \ + --rows 26 --columns 37 \ + --units mm \ + --square_size 11 \ + --radius_rate 2.75 \ + --page_width 420 --page_height 297 + +And then converted to PNG: + +inkscape fc4_pattern_A3.svg --export-type=png --export-dpi=300 \ + --export-background=white --export-background-opacity=1 \ + --export-filename=fc4_pattern_A3.png + +Calibration image is split into b,g,r, and g is used as reference channel. +The centres of each circle in red and blue channels are found as centres of ellipses +and then calculated on a subpixel level. Each centre in red or blue channel is paired to +a respective centre in green channel. Then, a polynomial model of degree 11 is fit onto the image, +minimizing the difference between the displacements between centres in green and red/blue +and the actual delta computed with polynomial coefficients. The coefficients are then saved in yaml +format and can be used in this sample to correct images of the same camera, lens and settings. + +usage: + chromatic_calibration.py calibrate [-h] [--degree DEGREE] --coeffs_file YAML_FILE_PATH image [image ...] + chromatic_calibration.py correct [-h] --coeffs_file YAML_FILE_PATH [-o OUTPUT] image + chromatic_calibration.py full [-h] [--degree DEGREE] --coeffs_file YAML_FILE_PATH [-o OUTPUT] image + +usage example: + chromatic_calibration.py calibrate pattern_aberrated.png --coeffs_file calib_result.yaml + +default values: + --degree: 11 + -o, --output: corrected.png +''' + +from __future__ import annotations + +import argparse +import math +import pathlib +from dataclasses import dataclass +from typing import Any + +import cv2 +import numpy as np +import yaml +from scipy.optimize import minimize +from scipy.spatial import cKDTree + + +@dataclass +class Polynomial2D: + coeffs_x: np.ndarray + coeffs_y: np.ndarray + degree: int + height: int + width: int + + def delta(self, x: np.ndarray, y: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + mean_x, mean_y = self.width * 0.5, self.height * 0.5 + inv_std_x, inv_std_y = 1.0 / mean_x, 1.0 / mean_y + x_n = (x - mean_x) * inv_std_x + y_n = (y - mean_y) * inv_std_y + terms = monomial_terms(x_n, y_n, self.degree) + dx = terms @ self.coeffs_x + dy = terms @ self.coeffs_y + return dx.reshape(x.shape), dy.reshape(y.shape) + + + +def validate_calibration_dict(data: dict) -> tuple[int, int, int]: + required_keys = { + "red_channel", "blue_channel", "image_width", "image_height" + } + missing = required_keys - data.keys() + if missing: + raise ValueError(f"Missing keys in YAML: {', '.join(missing)}") + + width = int(data["image_width"]) + height = int(data["image_height"]) + if width <= 0 or height <= 0: + raise ValueError("Image width and height must be positive integers") + + def _get_coeffs(channel: str, axis: str) -> np.ndarray: + try: + coeffs = np.asarray(data[channel][f"coeffs_{axis}"], dtype=float) + except KeyError as e: + raise ValueError(f"Missing {axis} coefficients for {channel}") from e + if coeffs.ndim != 1: + raise ValueError(f"{channel} {axis} coefficients must be a 1‑D list/array") + if not np.all(np.isfinite(coeffs)): + raise ValueError(f"{channel} {axis} coefficients contain NaN or Inf") + return coeffs + + rx = _get_coeffs("red_channel", "x") + ry = _get_coeffs("red_channel", "y") + bx = _get_coeffs("blue_channel", "x") + by = _get_coeffs("blue_channel", "y") + + for channel in ["red_channel", "blue_channel"]: + try: + rms = data[channel]["rms"] + except KeyError as e: + raise ValueError(f"Missing rms for {channel}") from e + + for name, cx, cy in [("red", rx, ry), ("blue", bx, by)]: + if cx.size != cy.size: + raise ValueError( + f"{name} channel: coeffs_x ({cx.size}) and coeffs_y " + f"({cy.size}) lengths differ" + ) + + if rx.size != bx.size: + raise ValueError( + f"Red and blue channels use different polynomial sizes " + f"({rx.size} vs {bx.size})" + ) + + m = rx.size + n_float = (math.sqrt(1 + 8*m) - 3) / 2 + degree = int(round(n_float)) + expected_m = (degree + 1) * (degree + 2) // 2 + if expected_m != m: + raise ValueError( + f"Coefficient count {m} is not triangular (n != (deg+1)*(deg+2)/2); " + f"nearest degree would be {degree} (needs {expected_m})" + ) + + return degree, height, width + + +def load_calib_result(path: str | None = None) -> dict[str, Any]: + path = pathlib.Path(path) + with path.open("r") as fh: + if path.suffix.lower() in {".yaml", ".yml"}: + data = yaml.safe_load(fh) + else: + raise ValueError("YAML file expected as input for the calibration result") + + deg, height, width = validate_calibration_dict(data) + + red_data = data["red_channel"] + blue_data = data["blue_channel"] + + poly_r = Polynomial2D( + np.asarray(red_data["coeffs_x"]), + np.asarray(red_data["coeffs_y"]), + deg, + height, + width + ) + poly_b = Polynomial2D( + np.asarray(blue_data["coeffs_x"]), + np.asarray(blue_data["coeffs_y"]), + deg, + height, + width + ) + + return { + "poly_red": poly_r, + "poly_blue": poly_b, + "image_height": height, + "image_width": width, + } + + +def repr_flow_seq(dumper, data): + return dumper.represent_sequence('tag:yaml.org,2002:seq', + data, + flow_style=True) + + +yaml.SafeDumper.add_representer(list, repr_flow_seq) + + +def save_calib_result(calib, path: str | None = None) -> None: + d = { + "blue_channel": { + "coeffs_x": calib["poly_blue"].coeffs_x.tolist(), + "coeffs_y": calib["poly_blue"].coeffs_y.tolist(), + "rms": calib["rms_red"] + }, + "red_channel": { + "coeffs_x": calib["poly_red"].coeffs_x.tolist(), + "coeffs_y": calib["poly_red"].coeffs_y.tolist(), + "rms": calib["rms_blue"] + }, + "image_width": calib["image_width"], + "image_height": calib["image_height"] + } + if path is not None: + with open(path, "w") as fh: + yaml.safe_dump(d, + fh, + version=(1, 2), + default_flow_style=False, + sort_keys=False) + + +def monomial_terms(x: np.ndarray, y: np.ndarray, degree: int) -> np.ndarray: + x = x.flatten() + y = y.flatten() + terms = [] + cnt = 0 + for total in range(degree + 1): + for i in range(total + 1): + j = total - i + terms.append((x ** i) * (y ** j)) + cnt += 1 + return np.vstack(terms).T + + +def detect_disk_centres( + img: np.ndarray, + *, + min_area: int = 20, + max_area: int | None = None, + circularity_thresh: float = 0.7, + morph_kernel: int = 3, +) -> np.ndarray: + if img.ndim != 2: + raise ValueError("detect_disk_centres expects a grayscale image") + blur = cv2.GaussianBlur(img, (5, 5), 0) + _, mask = cv2.threshold( + blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU + ) + kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (morph_kernel,) * 2) + mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1) + cnts, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) + + centres = [] + + for c in cnts: + if len(c) < 5: + continue + area = cv2.contourArea(c) + if area < min_area: + continue + if max_area is not None and area > max_area: + continue + + peri = cv2.arcLength(c, closed=True) + circularity = 4 * np.pi * area / (peri * peri + 1e-12) + if circularity < circularity_thresh: + continue + (cx, cy), (a, b), theta = cv2.fitEllipse(c) + + eps = 1e-6 + pts = c.reshape(-1, 2).astype(np.float64) + ct, st = np.cos(np.radians(theta)), np.sin(np.radians(theta)) + r = np.array([[ct, st], [-st, ct]]) + + # translate points so that they are centered around mean, and rotate them + p = (r @ (pts.T - np.array([[cx], [cy]]))).T + # ellipse equation + f = (p[:, 0] / (a / 2 + eps)) ** 2 + (p[:, 1] / (b / 2 + eps)) ** 2 - 1 + # gradients of ellipse equation + j = np.column_stack( + [2 * p[:, 0] / ((a / 2 + eps) ** 2), 2 * p[:, 1] / ((b / 2 + eps) ** 2)] + ) + + # solve least squares to get delta of centers + delta, *_ = np.linalg.lstsq(j, -f, rcond=None) + cx -= delta[0] + cy -= delta[1] + centres.append((cx, cy)) + + if len(centres) == 0: + raise RuntimeError("No valid disks detected, check function parameters") + + return np.asarray(centres, dtype=np.float32) + + +def pair_keypoints( + ref: np.ndarray, + target: np.ndarray, + max_error: float = 30.0, +) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + tree = cKDTree(ref) + dists, idx = tree.query(target, distance_upper_bound=max_error) + mask = np.isfinite(dists) + if not np.any(mask): + raise RuntimeError("No valid keypoint matches were created") + target_valid = target[mask] + ref_valid = ref[idx[mask]] + disp = ref_valid - target_valid + return target_valid[:, 0], target_valid[:, 1], disp + + +def fit_channel( + x: np.ndarray, + y: np.ndarray, + disp: np.ndarray, + degree: int, + height: int, + width: int, + method: str = "L-BFGS-B", +) -> tuple[np.ndarray, np.ndarray, float]: + mean_x, mean_y = width * 0.5, height * 0.5 + inv_std_x, inv_std_y = 1.0 / mean_x, 1.0 / mean_y + x = (x - mean_x) * inv_std_x + y = (y - mean_y) * inv_std_y + + terms = monomial_terms(x, y, degree) + m = terms.shape[1] + + def objective(c: np.ndarray) -> float: + cx = c[:m] + cy = c[m:] + pred_x = terms @ cx + pred_y = terms @ cy + err = np.hstack([pred_x - disp[:, 0], pred_y - disp[:, 1]]) + if np.any(np.isnan(err)) or np.any(np.isinf(err)): + return 1e12 + return np.sum(err ** 2) + + cx_ls, *_ = np.linalg.lstsq(terms, disp[:, 0], rcond=None) + cy_ls, *_ = np.linalg.lstsq(terms, disp[:, 1], rcond=None) + c0 = np.hstack([cx_ls, cy_ls]) + + res = minimize(objective, c0, method=method, options={ + "maxiter": 500, + "maxfun": 5000, + "maxls": 50, + "ftol": 1e-9, + }) + + coeffs_x = res.x[:m] + coeffs_y = res.x[m:] + rms = math.sqrt(res.fun / disp.shape[0]) + return coeffs_x, coeffs_y, rms + + +def fit_polynomials( + x_r: np.ndarray, + y_r: np.ndarray, + disp_r: np.ndarray, + x_b: np.ndarray, + y_b: np.ndarray, + disp_b: np.ndarray, + degree: int, + height: int, + width: int +) -> tuple[Polynomial2D, Polynomial2D, float, float]: + crx, cry, rms_r = fit_channel(x_r, y_r, disp_r, degree, height, width) + cbx, cby, rms_b = fit_channel(x_b, y_b, disp_b, degree, height, width) + poly_r = Polynomial2D(crx, cry, degree, height, width) + poly_b = Polynomial2D(cbx, cby, degree, height, width) + return poly_r, poly_b, rms_r, rms_b + +def calibrate( + imgs: list[np.ndarray], + degree: int = 11, +): + xr_all, yr_all, dr_all = [], [], [] + xb_all, yb_all, db_all = [], [], [] + h0, w0 = None, None + + for i, img in enumerate(imgs): + if img is None or img.ndim != 3 or img.shape[2] != 3: + raise ValueError("Expected a BGR color image") + + h, w = img.shape[:2] + b, g, r = cv2.split(img) + + pts_g = detect_disk_centres(g) + pts_r = detect_disk_centres(r) + pts_b = detect_disk_centres(b) + + xr, yr, disp_r = pair_keypoints(pts_g, pts_r) + xb, yb, disp_b = pair_keypoints(pts_g, pts_b) + if h0 is None: + h0, w0 = h, w + else: + if (h, w) != (h0, w0): + raise ValueError( + f"All calibration images must have the same resolution; " + f"got {(h,w)} vs {(h0,w0)} at image #{i}" + ) + + xr_all.append(xr) + yr_all.append(yr) + dr_all.append(disp_r) + xb_all.append(xb) + yb_all.append(yb) + db_all.append(disp_b) + + xr = np.concatenate(xr_all, axis=0) + yr = np.concatenate(yr_all, axis=0) + disp_r = np.concatenate(dr_all, axis=0) + + xb = np.concatenate(xb_all, axis=0) + yb = np.concatenate(yb_all, axis=0) + disp_b = np.concatenate(db_all, axis=0) + + poly_r, poly_b, rms_r, rms_b = fit_polynomials( + xr, yr, disp_r, + xb, yb, disp_b, + degree, h0, w0 + ) + + print(f"Calibrated polynomial with degree {degree} on {len(imgs)} images, " + f"RMS red: {rms_r:.3f} px; RMS blue: {rms_b:.3f} px") + + return { + "poly_red": poly_r, + "poly_blue": poly_b, + "image_width": w0, + "image_height": h0, + "rms_red": rms_r, + "rms_blue": rms_b, + } + +def calibrate_multi_degree( + imgs: list[np.ndarray], + k0: int, + k1: int, +) -> dict[int, tuple[Polynomial2D, Polynomial2D, float, float]]: + """ + Returns a dict mapping degree → (poly_r, poly_b, rms_r, rms_b). + """ + xr_all, yr_all, dr_all = [], [], [] + xb_all, yb_all, db_all = [], [], [] + h0, w0 = None, None + + for i, img in enumerate(imgs): + if img is None or img.ndim != 3 or img.shape[2] != 3: + raise ValueError("Expected a BGR color image") + + h, w = img.shape[:2] + b, g, r = cv2.split(img) + + pts_g = detect_disk_centres(g) + pts_r = detect_disk_centres(r) + pts_b = detect_disk_centres(b) + + xr, yr, disp_r = pair_keypoints(pts_g, pts_r) + xb, yb, disp_b = pair_keypoints(pts_g, pts_b) + if h0 is None: + h0, w0 = h, w + else: + if (h, w) != (h0, w0): + raise ValueError( + f"All calibration images must have the same resolution; " + f"got {(h,w)} vs {(h0,w0)} at image #{i}" + ) + + xr_all.append(xr) + yr_all.append(yr) + dr_all.append(disp_r) + xb_all.append(xb) + yb_all.append(yb) + db_all.append(disp_b) + + xr = np.concatenate(xr_all, axis=0) + yr = np.concatenate(yr_all, axis=0) + disp_r = np.concatenate(dr_all, axis=0) + + xb = np.concatenate(xb_all, axis=0) + yb = np.concatenate(yb_all, axis=0) + disp_b = np.concatenate(db_all, axis=0) + + results = {} + for deg in range(k0, k1+1): + print(deg) + + poly_r, poly_b, rms_r, rms_b = fit_polynomials( + xr, + yr, + disp_r, + xb, + yb, + disp_b, + deg, + h0, + w0 + ) + print(f"Calibrated polynomial with degree {deg}, RMS red: {rms_r:.3f} px; RMS blue: {rms_b:.3f} px") + results[deg] = (poly_r, poly_b, rms_r, rms_b) + return results + + +def build_remap( + h: int, + w: int, + poly: Polynomial2D, +) -> tuple[np.ndarray, np.ndarray]: + x, y = np.meshgrid(np.arange(w, dtype=np.float32), np.arange(h, dtype=np.float32)) + dx, dy = poly.delta(x, y) + map_x = (x - dx).astype(np.float32) + map_y = (y - dy).astype(np.float32) + return map_x, map_y + + +def correct_image( + img: np.ndarray, + calib: dict[str, Any], +) -> np.ndarray: + if img.ndim != 3 or img.shape[2] != 3: + raise ValueError("correct_image expects a BGR colour image") + + h, w = img.shape[:2] + b, g, r = cv2.split(img) + map_x_r, map_y_r = build_remap(h, w, calib["poly_red"]) + map_x_b, map_y_b = build_remap(h, w, calib["poly_blue"]) + + r_corr = cv2.remap(r, map_x_r, map_y_r, cv2.INTER_LINEAR, borderMode=cv2.BORDER_REPLICATE) + b_corr = cv2.remap(b, map_x_b, map_y_b, cv2.INTER_LINEAR, borderMode=cv2.BORDER_REPLICATE) + + map_x_g, map_y_g = np.meshgrid( + np.arange(w, dtype=np.float32), + np.arange(h, dtype=np.float32) + ) + + g_corr = cv2.remap(g, map_x_g, map_y_g, + cv2.INTER_LINEAR, + borderMode=cv2.BORDER_REPLICATE) + + corrected = cv2.merge((b_corr, g_corr, r_corr)) + return corrected + +def detect_disk_contours( + img: np.ndarray, + *, + min_area: int = 20, + max_area: int | None = None, + circularity_thresh: float = 0.7, + morph_kernel: int = 3, +) -> list[np.ndarray]: + """ + Find all external contours of “discs” in a binary mask of `img` and return + their raw point coordinates as a list of (N_i,2) float32 arrays. + """ + if img.ndim != 2: + raise ValueError("detect_disk_contours expects a grayscale image") + blur = cv2.GaussianBlur(img, (5, 5), 0) + _, mask = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) + kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (morph_kernel,)*2) + mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1) + + cnts, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) + contours = [] + for c in cnts: + if len(c) < 5: + continue + area = cv2.contourArea(c) + if area < min_area or (max_area is not None and area > max_area): + continue + peri = cv2.arcLength(c, True) + circ = 4 * math.pi * area / (peri*peri + 1e-12) + if circ < circularity_thresh: + continue + pts = c.reshape(-1, 2).astype(np.float32) + contours.append(pts) + if not contours: + raise RuntimeError("No valid disk contours found") + return contours + +def warp_and_compare(contours_src: list[np.ndarray], + poly_src: Polynomial2D, + pts_ref: np.ndarray) -> np.ndarray: + """ + Warp src-channel contours through poly_src.delta, + then compute for each warped point its distance to the nearest + green contour point in pts_ref. + """ + pts = np.vstack(contours_src) + xs, ys = pts[:,0], pts[:,1] + dx, dy = poly_src.delta(xs, ys) + warped = np.column_stack([xs - dx, ys - dy]) + + tree = cKDTree(pts_ref) + dists, _ = tree.query(warped, k=1) + return dists + + +def parse_args() -> argparse.Namespace: + p = argparse.ArgumentParser( + description="Chromatic aberration calibration and correction tool", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + sub = p.add_subparsers(dest="cmd", required=True) + + sc = sub.add_parser("calibrate", help="Calibrate from calibration target image") + sc.add_argument("image", nargs="+", help="One or more images of black‑disk calibration target") + sc.add_argument("--degree", type=int, default=11, help="Polynomial degree") + sc.add_argument("--coeffs_file", required=True, help="Save coefficients to YAML file") + + sr = sub.add_parser("correct", help="Correct a photograph using saved coefficients") + sr.add_argument("image", help="Input image to be corrected") + sr.add_argument("--coeffs_file", required=True, + help="Calibration coefficient file (.json/.yaml)") + sr.add_argument("-o", "--output", default="corrected.png", help="Output filename") + + sf = sub.add_parser("full",help="Calibrate from calibration target image and \ + correct the calibration target") + sf.add_argument("image", nargs="+", help="One or more images of black‑disk calibration target") + sf.add_argument("--degree", type=int, default=11, help="Polynomial degree") + sf.add_argument("--coeffs_file", required=True, help="Save coefficients to YAML file") + sf.add_argument("-o", "--output", default="corrected.png", help="Output filename") + + ss = sub.add_parser("scan", help="Sweep degree range and report errors") + ss.add_argument("image", nargs="+", help="Calibration image path") + ss.add_argument("--degree_range", nargs=2, type=int, metavar=("k0","k1"), + required=True, help="Inclusive degree range to scan") + ss.add_argument("--method", default="POWELL", help="Optimizer method") + + return p.parse_args() + + +def cmd_calibrate(parsed_args: argparse.Namespace) -> None: + paths = parsed_args.image if isinstance(parsed_args.image, list) else [parsed_args.image] + imgs = [] + for p in paths: + im = cv2.imread(p, cv2.IMREAD_COLOR) + if im is None: + raise FileNotFoundError(p) + imgs.append(im) + + calib = calibrate(imgs, degree=parsed_args.degree) + save_calib_result(calib, path=parsed_args.coeffs_file) + print("Saved coefficients to", parsed_args.coeffs_file) + + +def cmd_correct(parsed_args: argparse.Namespace) -> None: + path = parsed_args.image + + fs = cv2.FileStorage(parsed_args.coeffs_file, cv2.FileStorage_READ) + if not fs.isOpened(): + print(f"Could not calibration coefficients from {parsed_args.coeffs_file}") + return + coeff_mat, calib_size, degree = cv2.loadChromaticAberrationParams(fs.root()) + + img = cv2.imread(path, cv2.IMREAD_COLOR) + if img is None: + print(f"Could not read image {path}") + return + + fixed = cv2.correctChromaticAberration(img, coeff_mat, calib_size, degree) + + cv2.imwrite(parsed_args.output, fixed) + print(f"Corrected image written to {parsed_args.output}") + + +def cmd_full(parsed_args: argparse.Namespace) -> None: + paths = parsed_args.image if isinstance(parsed_args.image, list) else [parsed_args.image] + imgs = [] + for p in paths: + im = cv2.imread(p, cv2.IMREAD_COLOR) + if im is None: + raise FileNotFoundError(p) + imgs.append(im) + + calib = calibrate(imgs, degree=parsed_args.degree) + img_for_correction = imgs[0] + save_calib_result(calib, path=parsed_args.coeffs_file) + print("Saved coefficients to", parsed_args.coeffs_file) + + fs = cv2.FileStorage(parsed_args.coeffs_file, cv2.FileStorage_READ) + if not fs.isOpened(): + print(f"Could not calibration coefficients from {parsed_args.coeffs_file}") + return + coeff_mat, calib_size, degree = cv2.loadChromaticAberrationParams(fs.root()) + + fixed = cv2.correctChromaticAberration(img_for_correction, coeff_mat, calib_size, degree) + cv2.imwrite(parsed_args.output, fixed) + print(f"Corrected image written to {parsed_args.output}") + + +def cmd_scan(parsed_args: argparse.Namespace) -> None: + paths = parsed_args.image if isinstance(parsed_args.image, list) else [parsed_args.image] + imgs = [] + for p in paths: + im = cv2.imread(p, cv2.IMREAD_COLOR) + if im is None: + raise FileNotFoundError(p) + imgs.append(im) + + k0, k1 = parsed_args.degree_range + results = calibrate_multi_degree(imgs, k0, k1) + + all_contours_b = [] + all_contours_g = [] + all_contours_r = [] + + for img in imgs: + b, g, r = cv2.split(img) + all_contours_b.extend(detect_disk_contours(b)) + all_contours_g.extend(detect_disk_contours(g)) + all_contours_r.extend(detect_disk_contours(r)) + + pts_g = np.vstack(all_contours_g) + + print(f"Reference degree: {k1}\n") + header = "deg | max_r mean_r std_r | max_b mean_b std_b" + print(header) + print("-" * len(header)) + + for deg in sorted(results): + if deg == k1: + continue + pr, pb, _, _ = results[deg] + + d_r = warp_and_compare(all_contours_r, pr, pts_g) + d_b = warp_and_compare(all_contours_b, pb, pts_g) + + s = { + 'max_r': d_r.max(), 'mean_r': d_r.mean(), 'std_r': d_r.std(), + 'max_b': d_b.max(), 'mean_b': d_b.mean(), 'std_b': d_b.std() + } + + print(f"{deg:3d} | " + f"{s['max_r']:8.3f} {s['mean_r']:8.3f} {s['std_r']:8.3f} | " + f"{s['max_b']:8.3f} {s['mean_b']:8.3f} {s['std_b']:8.3f}") + + +if __name__ == "__main__": + args = parse_args() + if args.cmd == "calibrate": + cmd_calibrate(args) + elif args.cmd == "correct": + cmd_correct(args) + elif args.cmd == "full": + cmd_full(args) + elif args.cmd == "scan": + cmd_scan(args) diff --git a/doc/opencv.bib b/doc/opencv.bib index 1910795b16..3cd98ed53e 100644 --- a/doc/opencv.bib +++ b/doc/opencv.bib @@ -1625,3 +1625,12 @@ volume = {7}, url = {https://doi.org/10.1007/BF01898354} } + +@inproceedings{rudakova2013precise, + title={Precise correction of lateral chromatic aberration in images}, + author={Rudakova, Victoria and Monasse, Pascal}, + booktitle={Pacific-Rim Symposium on Image and Video Technology}, + pages={12--22}, + year={2013}, + url={https://enpc.hal.science/hal-00858703/document} +} diff --git a/doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca1.png b/doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca1.png new file mode 100644 index 0000000000000000000000000000000000000000..57eb54a105ff2d8c272011b0fca33cd0b81a2a33 GIT binary patch literal 111110 zcmZ_#30P8j`#+8gK>}6+idtG734>0i*_3HI28Je@3I>`>)@a-0mNvPR84?!a5~x^{ z8@Wt~S)=8awwVi3w#<}eE+wJOQ@PPp`sCE_P0#auuK)GDuD=u)oJh|5bzb-De%<%| zKACL4tqXBWa0Uhj3t3*w00RTWCGb~*L4qU4iFel+7(fOrCWD)dcyfo6XxS~G4T!Ww z-?CE&%W8ixh+3~s4o3575(AWXW6;YR|Gd8Sa<(H`sVRx(hMO=6pD}i>+v~QcT#5*a zcVL^%UgAq$5|^8r2XD*XMN!$WlG8NSv-I48mp=)@u=S>Rm0ydE%cvZhSnYPzDZivX z{|vWOIfG?9SXtDQpMnnMKQK5!-pmRh6KOlIWJ6f(qmQ;vEr6ZEH8}d?2smn)~<%_%0ovOZ963lp?@Z_GGS!!n-myKuX>Lj$a>L~b?Em+hV|lJ*)vXFmAXU!90nrANaPm=+&qnm2QpHz$PlGuEbDOrTh%$TfjI zR8kUFcct2i%}_Wgo$zcgNe+%Xh|%x_WYxT{)8j5>syL|&4kOCjiXusN1x&LY=-N8| z%))q1Jf7jSA}yo1+LdTdnC1|uowZKVl7uazg>9?-3Jgs%J^c0r(V_inYQl=b-IUFkb<6NvdK#nCKhu@y<7$Sds+ZQGO!4NOL_g6>GC2uVmnHJ2i1MAp zzE;&%)v1sVBK|_cX?{F8sB>k%NEOuMDd#8usy5;-5{SQ`xR(V^?AV^|;PNk1G~@Bi zuQrTM>B*f4us9+Th9uEkH=Kr6O5C%;c&04w<*cEK$1Ls$(1~8PKlA7?VlG=?FCA z(<1f_qe1pH%{<+v{1YsCJfR%ozK;m1`@xZnT;d`-BXAO5L@}0q*!=S52V==qagD~d z#plpS4Lr<4s(&P(Aw6Vv_>Ja*7~mFXm}r`+Q;8kFX->LBE%s1hbAU6ug*2V1-ic6q zUWN-%{ne?zLhNZ0Y|nP4X%@?Bo_A!3+Aah5@2&spf$p$lGUOUtdBlEOB#tH;Bz16H zZ7{lX-)29RoZv^}L|I}Fq}J|EMj3lGSntkG&(USU+H_5($cfXkB9YW8t~umB=O_!U z%dFBUBB-m9(9A(LI0w$)g@hn}z4WT+Ig2k+o&A3yz|g)!urB9BaA)Q!RWKUGeV^^Y zH1kM-L>0;2k{s7pCvF~pQ?}iTYb)qDF5s)Tknwc@H3Ymr-o`S8JR#1-qBN4u$OkTOj z-BHJMC8>_rW#v0zF#_x~J*;!9?l8fy(}R!7EXLF^>4^B1WIGXtiC5X#A>I3{i?Q+6 z;$m)?>Hd0!E4#RdYF#Ayp})rysimiQ+W~@Vu=-16sGgTlp~=rH^J!VJEbo?2F{Y~( zC#rg$8Ai)`uMNagr$8+e&_Ik+r{y48trxQ9_^IXxPQM3UGXx*Uo7$>|A_9D!9BAof<&Z+Bj$ z5GC~(F@<|pTp?=d9>YAVg24bl+_r6_a?RxS=>qjjiW$camTM?l+NjqkEZW&g^v4RU z6jn3c-@bNcs5i?s^E?)5ZfjP_sAM2(S!>Nwy#9Ai%PB8U1A6aG2X*|8V81Co^0N?nU}YoSI-T>6aRy!Ttfq=qFp?@22d&Tg)kWs z`F8$@Q&{oZDBcvf}ca8HuFNG)SIMQ=jfU>xZg1tfD#YkAm;tP8F-EB>Nr#6pNu5CPdKdxbzJE`-o~M4kGFO3xo#i!|cec z&-XBsdR!)x9mxV$bG#*kpydgyGIf`oU}tt>!iBn;~|j{h+IX9j6~vV&hjN#_y^# zV$TYkq`s_cKW(p5yf?+O=@1g95ZOqwoL1r49ES7H2;^WL)3%O7rzh6umlSj9Rw9*4 z3&D`QfE`Xz{g6-=Mmup<{1S*cIIGK=ri^IK)fr0oiYt;V%@5z^K9!hvtcJtORa-o) zDy^!+I#=3}HB$Xmu>qNPU!Sm9Y|af+w85AbRe1(3#DIk7(1V}waWEuuL5e-NY)(Ik zi-O7ccsY`sHE52QPFIm1X0D^BNFn1M&k4>f6Ah=aI^)>Riezs<*_Q#+VbOaCv*jWu z-NU$-DU3F`W`o$()YR}hW30HYW~W?N>GR;*b(Zi~1n@E7*Aw=`yUf^DGjEzE+n{jHG|^)juAdtnkgLyv7}_$-on*i8pmWHEEij%9&?118 z%$JTJNkk&G2a}2F$WZ%@dXKu(nU6+RKG2?m>Inqy@ZKISb0VOH7Q0F`NQJWiVuqxo zDl6XHGTAQP^b)`v6iDHW&R=(T&LeNO4gy#5`z1`>ImhfY5xYhVdZ*ZmPVzO@jPO9d zt7%a)iJeM3{Ar#hu=8ODahqH9b5c`CGcK>kqYg!4$IHoC>exV(NcCI9pGXlO3Ac)U zjSP`Em0v%Wrt(CSxXe9oa*Y@$rnX|wqC5|~g4Kwim9e49nCV`4!j|{V@tjCnJM&{%kQd1 zYD&-NFUNOy#0R*NP@RVHfgF06srlpVRq^HT#Z^dH9zh_n(-k5ESr+a9V$b(D1Lp{v z!!D#jM8a?N&GXs}Q08XN3MbYQ3YJDCCv0)-S;NsTBkfu7xyKXuX?Z+*`dGod+015I zc%_bo&hIX$a>AovH^M9ys1v#){Y2WA2SJK8slamZRV%t`3%Ui(oauAX+6`zR@cRG1 zQ#PwE+*I*_jGACtlCOCVNYnG zl5a9c({U?1en{BzKzmhxvK=1NdNi}jOxVMnt>P=*Dfho$^{s?yCVxJ>BwFJBu%BJwZx71_FB*psrV;c-J~$yVd&C^1H*5b$coj zF4V^(5K@=0X8h@s-SB0UPx$}vG~ITtbDkizJYiqFES16bUBuPP_%7Ef-LHeZX~EiM z>)akC(?p>p|Bf|`QmG}$FrFP>fsQcmO=E^}fj%gj5B%hA#ICF1+wsi=$w5+DN9+i?)4kWZtoCN#xtQ6qf*lREFHH#Rr)nVAc zV#=5ExmK5XN0>Lp$4fdsS>lILp$EK_GeAF%vcI zex~O135+6nKPF*IB68Y~jTp5hFUxwUkvj#1LsvK{G)UmI3d+@PqtltOJK~8h&RP4# zHjDO1jr2=8qbes_2Tjwbw=c#Akqx^{mLzr9k;$|BUIql5@Su__Z8D{(lL>tGe>l(^_rDz}Q%!U^l7PTM4C^}%81%t_BXDc(ie9dDDc+x6l!-IPGs&j_oY zC)!E3!X)6AcL)s{(1LxIBFGW;iQe>6SGIvHU&P;6v>1gG?;t$BH1>X|xa5BDKj-q# zA8s`0WZC|)@4@Vfx823Py=R=G8dnI!0=s?J_+cJQ50?X5*z`<{2(w`6T6{1HB&Lmu zyBBhEBB!GloX*X0Ikf=YvGA=^ywfSQMezcwwY!~MEptaK77+Jf^YQ4%r!WfsZjc0U z0+FdH9znAF(_(vnCf^-X?}aOe)OdVdhG=Wvb8d9|4%iXi^$MvwLMo#``$_&7vC5;9 zGbr{Qq-OD5zsth^t=u|(i?%)4@AU;oe7sqQOU4~Lxzj2-=rpiw(H$#k8ZzekZfS)a z8A79W)DHI^m?si>6*=$U@CK}#v?1wf@zqdU5B9a9tLIt|PF&}UAM7)Fe5xb_abw<# z$4KBjZeQ4fLUYYXhwkiMa3p(VhgGCJcVyi!*&~Pkl3Wl3MLKmI%Dw1I=Hu0ceLx_;hY_Mw3aVm$J;8@|G(vzX()+#a$bJAK(ew5pt=adDBc2QLs z`m!5MGbEkC+J*6~IvLR#YfdTf=O^ON7AxpIjLs|KJY%L^_M7#~4!ZkZ7BmylMxuO; zJ7`v!;^R5@aqN?32Mjxih72@!$9x3Id}%K&5&3vsQE$>tc5iTR)%mMK#aEMl5Fc!O zwC_Q1ukVIdbW9F;65al%S`xnzYh(UyHX(iEG_tCv1Lj>@2kpiP2($;wV{`fMCD)Q^>xV>9` z(!siXU;6YtGUYM|=hx2ImepdQI?&}kk;P2FY4W5vOC)Z_2om3u{m3|l)2fqXO{L}4 z#SFU9qiDy6Y4@v^uDQC`F)3!OxYxPHdH>-D2mJ*7?&eqfqaXAy{)JH#eD!?qK9LB| zew1q#f(d~xGf}5*R=+|v%gY6=7a|uNu?3O*mTj?RuOf26#x19vPHpW8Nqj=QRppZ=m>{gZ5Q8kH~^2*ZcD@>6Uw1_2N6c&l}KEU>bSi2CLL5~ zy9n&}$byq%LtqDL#1A9P0Rd?Kvzx#D^I)etb8x$^hO9MdSzDU#l$S(6ceaujMPz0P zX14VUtvW9w1!k9Fd4|ZW(8=g8gTM9!9(F8xjNMSvQau~_^_KU(C)f(9qv1liV zg7mN+Pf(a&z=%#W>B~Nx`1+-!bx(EkMQxCWikk3~D|I@(m>Vs4?m;jln3JYO7(~KW zqigK=Cu_`Fl+OFF{&nC%@Kxv5a{vePUgs0{0q^(qW{u4`yt%aRYRdHM?lUQmACSQ( zd(Rs^%Jl^fnM*ff;0-~;(wO<+2}Z>3SMbH61!o;jZR*d^=mpMKBcZXH;D&X(?9 z?~WW&+_jcF{T(wiW^os!xuy||*W=?cZO1J4$3=c{96q%O1PO%u&2~vq1QplO!`}V- z0@L{zad8jBswY#>NmO}Cx-~mdUaD5HWxdppd-HO{3Stn+Pyo84iey@Z`R7bs!M6`D zCkJiN9Y5OKg5BNpk)OGuMZtgGVJCJHJ?Gg@3!&wTUyxT98Xj*a?*|^^u;czmw%{3D z>it*q!MgihXQw0WHt##Uy?6QMF$Rct{lC3Av;6R%(T<^CPiS7z9CBa3sQ=4tWBK}T z)~s8N-$v`!ubY@qT|%;<;A@Jshc^N@3Jwf3*4Bjn42o>O5egOI(GfVCt2%?igc3Pg z%Ed!0B*mJww?-K)TaYI)fi6-SY^pi3CtKbYr~`Q{42w_6exf-4(VDk-@!}0{*S%fW zrBFI}KDCOhw5zVn!h&Ti4I+B#*d^?9{#yq^?l7 zs#tdADo_!$cn*uP>28vQ@9##^7pe11Few8p=t z^(=Vxv@E*y=g`oYV^?GBYsm+aYKCHx2HK9iQ=@wK}(sE!>e9W(K!86uEW9X zO*u+$xH3;7@kU6e@FsrNLIWb^G2MwITrT1l6I+CMdis=|rO;fv8VlLe@Zmn~FKwu^ zl{yOkrdPX(?Cc&B$#Ns?X4%Vc)6~s2x`ooIq)g$Y&_}x&r^}Hi50w7)26 z=5kEghS=Q$jW328hsNj8Agn(MMH|VjWzqtPH5;LX&c0;}fraPZdje8xC@F9N-Ob1zh1-)n##HN#uR!F^kAt z=eO&Xo=O;7&CMfQr{nEB-1&!ayO9nOgZX4@*Zf0|58*}%4&jPYRi4SjQdJXKWj<1( zJItDC)iNfSr5Ve;+F7F)wG^E@BrH=+ew)d^MIX%+-twWOt~gbOd#H6GBZ+o8h-OaG zQplUlmT4;!IE|>OrKK}+L1>dD+1+VXTzSzCJaB3d5U$Q1FPjyn4gVC)j z1^~Rtn@YmcUV0^)-(=6Cb6(xdzQX=MUoa4l9Mc~a=Z+gqbP?VZ8pN6WIGI4Z{!4qaA}PYOBJoQicYZ*k;(hcU%~ zMN@px1|?h_lg;7vD7bk7GR4|MEJS&cEzV029&7O?*pZWvH)H{jvZtie$)QAukK*1W zFx=4XF0wN3b})r2p|r_$Mp{Oi?GntD?}D+bLWiF{5uyE6I2AH;Dz!?-LaI)_>hh4} zt6gNRQ)~LUb_a=NazL0V9JyB5IWOsbCN zReHH&gs1!%QnEFBzDX%2A&<`RO18$LkjzF3-2kgdU6GJ?nm&`OHUcriz3JT^1>d6k z=^`J~lh@q(_S!#9NKpxy=Euo;U$?@DL6qie~W*i0oO< zZO^%W=~GK(&+?|;ac|}e%~1uny!~_mrnK;TdKKA4fpkr*8F#47?54Fp*R5x#)~_ms zih(Cl1#v=O4=x?i&!wYXN9Kp)H%1RMHu%Rj=N_3WYsh`QBkJSZ$m8*s#+`DHTzXm) zG*AQfAP_cknP~r7K1f_Gic~4S-7JsW z{u}TjZ9X;>nM*yx4~0?XQ|Nv&ZyQQ=v}`*sz_|R{g~qz4fFMeTgWN8aBKzpMihVf) z7KfhzSpj0JTryx)(PeQsn*(sGuJo*0r#x7huoYUr7bm8>voQF^L)0X6x&&yeE0*;f z$@F6-gTC6u-_fJNGYEb3*mGw6h~fXy6LLC)4+ru(m+zaFsdmBM@^p9V@%TS*PP)>1 zUGC)UhaWPBt3msdrv42XOH2N_VJIYKApAyu%|Pt4__iBM-#O(zefQ_%nr9*1A@7{} z;x9dY7qKzz00~WM3Osi8#`@4Ni1;nj2!i$X|!@gUixqueog zF93~56o%C1hCL_d9bzfluTmu2s{*jjJUbakKs=d&ucb0zK;fYD+{*<*8&J*J;Mt|% zL_TTe^@3-M4SpN^4rhb#x_U5s$&n>82Txv(k`tzzUuWP@-bpyY+q>qOz628@A>s z9lDA)bQOb?+;#47t~0FX&-R=pkxwoyIik+o9Z~)-p#+C;2i9)_h3vFJA=9VWcrU0p z4+PLH)~LN#`>smzORshx^)4zkg+UI5+9WT(%~Ffzh_a*v^RKW;=_-7<(Mw5|x=G7e zRxnobs;fj@qBfCc38;QAVz2QrG+ga*PV2EFSDw}!t37flyezlknfcHSH>>Wt+#}D1 z7<)b-ORqCL20m>`s<@WKH>aaJ8XG+9;3P7LpFJiB(j&9FQO0Pw4w^)w+*O%b#RZd{ z!Zlb(XuVR?AiU=U}89a7M+l1P9c8JJYRc&8zbH}^50{0LWX^4in)>zr}7vzM9o&NpB$w7 z!RBBrZu~+KO)kAYK2{PjFw~fMrQvAk_}d1Mb-FkC4c+M56!`gVLtxSspQI~EKzk!& zj$?)SxC3#GmNSpWPsfJbUdX18YWuEP#`4V_2?#CJ5uwM@!T;KN;a0qw#jS zNGTq4R&fXUm3DZ@dO0lfAGD#QE4|&N-f)tT>5lWP`VS_rxmUX`od^EJVuNQd$W8|z zICr)6I_wAUmEX)nM(T1nS$Rl3}tbv$dIvs zJPAtUEHK9NpwkIxZri&?(u#$e%t$L(Y2?awq%tj#Lv@KK5v}CN`29wxhOS;Lk++-0Z7hQH&IX+ z>k+cKbH;va6^kzM-FvS}*{t2d8%@W%KX=DSl*Qs~@4YLcu^n7sML3JAL0+x};H>x_ zE4>bHEFw!|n;iCol+<-DvIwNCZmY;Xy~A_o1#qQgmW?b2PzDd7(&-tkLLn~H35_Ez zbH^kl-tswnI()ymNJ z-{><~*=gY#I^7OT6io-8BULOvZ?I8gyPfV8n!xa2r1l;BGqx6(`cFH6hYP7W)&SU3 z*SD!JzHMn-_s_Ml&)(h((c79K;Bt?At~*-mwkn5DPXdJzY5Acj5-EBk8$mGTI{wS^ zXS6>UBYad3gpu8CfUM*X1#k3D%~R zO1UyGdk@>V0!VMRlC$CMdH~Gu*tx^Qu^$pGo1D8YEdfwfbXgtFb?CO*;29H{t@P%3 zR>7e>IEey&q8aXMM@)$@x7ldE7(amowPL=SB{@w`_G-VvPO-+Gkj}wUW1UAbSuZ-k z(EJCejfys+n-`QyT+*LsfD;CB-E5+j}y!8LnuLV&LC-JU`v@2Y+^9|;$U!t_4$rZsdC-#EqNPeK0mh!z80dNkdR z-fm-V*Y6pyhr7&6L6OzM!UcKPD}l7YiyHuYlw;?boZrNJO)P49*){G6tntC3t7BG& z`z-Wm9n5z2%mJ2XvCMmCfNZ;ThqX0g+X5m+C{&uB@`doUb~9u;=9DiQHA~hjl9a+% ze_J+tj9Z#P{Vqj*BN_h*xj1%;P3qe8DFz4cg#c;WLfzxK28)9Cc5{qBVVA=gl4-VbbgD_}7VyBSFMPUW`Nx*ZXxoPx9Rg=~_ zm5OMmrsSc#kXr0npwV_Mhs*N#ks=56q!zcjzk$ntc`{t zj1G?xZYO?y=bl`yTdl_jlucx5ZStBEbMIclMRUIJOYHJ(fJT&Fyw8?L6BrF2t z0V4+a^Ff|>vY|T;@1@AHD-#6jDg~FQ77p^1d1RS)RlthKB2YNR-O3rTY8q(!ClF+` z^A$j$`>Zy+Id>S8R92Dq?*V^kby2y5x47EdhR0P%$mzeVO{aSWcy#^_Y6y@aY(;kt zQJd3UQOJ=3;kWDfQpFrjwtpm3FGj-c$<}&wM56zq~XlABsv=#-8#^C3r!6QYH4?qFo9INk1+y&t`7Wn#t(v!EBt5m3IG@`p979lp}Ew=We3qXtF zj=*9;lE6~61=2^@H)teZ4dlqIRK*IH&?#+&o4WUMGikUw;?#@#@p4+VFpN*9;wOdU3F6(jX@OUF_y-mY4&_ z7@Z44oU5C`PD>G)CI|k4?p6)KV9N;-76}pvv!~|vj^s^2n@!y@DF#FcdlvLPpSSNs zp5%f8j62F@*&y5{76C%Gb$X>=wZp;OKZ{>G9?V@*v2X8_a}{F>=YzTNMUmmLO)0It z18qaGM~aRV{R*P9yErm?Nd+ikv%Pb;RWRvfW~Ql(%aP%%@6ai(sCfj8P7b;_-<9d} z&&hdsx9Yhw1nq`Qy;YjNa$+8=^M-WdVrGi@O)u?gk8}zjIZ`s>H=3z#1#TCI;)1QJ zD@Q1piw}ufItdIx-SuOj&2wC?cp&^uy|1F;KuZX;QXd?;sAG+m(1}o( zDLVzft(}FR5)cMM&_%uo($r-jHsSZeYtHCJJFa_Z)Av#=u3O*ScnyT<``fbkWPkc;;9VQvcxN76QX<7j8hnBV^CGQ;P=krkH48EzQ9@(1P(H z-aNY>AU!Y?( z(vs5Yj$eJ&yRtB4+%yg`ZJXp-f#V$a>&&xT{aU|K7wJ@9@q%4KV}Waaq0j$7Vj`S- zY_NDVcNwaMf?(V>TV1V1_Wz_3mBJu9Rm+3EHYQvp{fHrsn2gObEMqlF{dYxy2Q=QZsNi=#e zIZs$7n)4#c1B4Vh<|m(a;|x>N7OtO%yC0r1AFhtpri1<=@Yzbx9oq(qk;vR^C9sc! zo;eO<=RP#{zKp&2GIlm*U+(pxv6u(Wv9BG0_kIvx1k&EsE-xNjUGA=iVUX}hclR+M zR}>gMQ~Qy$P&uFxdG~*UOiXE`02e8xZI9mG6jZNAtlsSaqI9+Cb@DNn#v_-; z|N2dKMn+FBP#WoxjlX0d2M6NYb+ZPLmC8|133tPelr55qETALO(H&qK*GE8 z`3X{AM>MLy9L04*dnL1OvK_7Ir3S1SzxIm~2@do-_N+$EPZxT-!)MijEI_0x(8*XL zW9Um(J&hs*^?halM#{h#5bRq+Zyi4jtO5S=+{J<7500^ife#1426`roFMv8F+dGE! zll=Jt6tQu)yVg=VMZve9@Ryv%W6GG0vsrmldGzPnt)`heliAn1zKvNDfnnK9#R%=& zOCUw+qbUgrPf6X1F7S0zvD|1yy4|2x17Z!)*%#Xyv(a?pqgW6`XO1}k8=wPRHV7>c zT#-xPjgOD(g(sG*}2K^|aBbe17(Ar;J^L?2Z$y6B%H0#SLdf<{VlSH=+ zx|n_wMuI}jPNoj5rtq+<@}77dKgX*$Sm~KFpa|Y@5b$dZ2)Z7#4~eZ$<2I%hwSXFL z+|eF5tKL6jatEFt?CbIZeSWSUYE~y5vcRB3STMFpzzXe=BPTe?)_AXEymUX9RV1?@ zymqVbzu`A~iU~UQn+d3P^AW#8uQN}brtqN=7Z{vBLt+euHXe|LAGQcLZ0+5Y*!rS1 zwxI8~$-=0mdLs#l<%S(RnjfqE`fC1xfuWkvabG-P zT9{Ztclw)Y2C#g)ZE%%NKo!QUS`q2s6W958HC?W3HBJgsRr(ti$WhKn^dpoMBM^+q!)x`%Y1CA)zx|DK$A9`a}g9Q`<^Ns zR#)iDIe^}|0U%k`X|2-(IWNar2gV)Wv<-~`6hXTdkkNbe+aL4y_t%B?H}35o#BTd& z|7iP%$(nC9N~iQ2p10{s&N#T(ok@Ot?A?zyO8y94Ui(q<2(rd6xQO~Q+PW=o$_}4~ z6@FWuu^dHgw}-(UNtBVT$U9R%URZETcH*Cp8_T>XZJgOPEkC5V(=&wG{`K0!lWAeyPi?(4+i|)e);N zAyKzn{N4qet@wS||0;1KY2bkGDwkcX{-d7v^9%8z}X?`|}ey8Zj-`@>ty4u5iZVKumK%;}@U81N6yZ$MYqx%;o< zpB#?8tIfGK96DLskUhNh-HpfYa)vvE_ww4d;4B_$!wGjGN4{mCMmHO6#!!U2xNcI= zq&tH`GH$LY7-`a7x%G9-BoiD@TWR5DbOq(_`glrmNIE6uBh@T0JatLA$ma`2_B2zV zLV@{{9U;7$O93@%UO~gbAs#4=LF7I^bL4&0W?)bwmv&!&5)X9mOZ@vUH$gA6rcYUa zO##1qs;u|pha}b5)_8+SGHzIAetRRGS3L^u=9s{_#&ZyNf<$64XaJo}jBcL4sF*2n z@t^Y=B`;6uu0dgz+l-i#Bw0Jec^m0=VR=)W_ElI39-@G5Vu-9P>fY|@# zz>Ow=+~$VIU;a8ySwmTmxdza~telTYvL4|RVs`U37-*HA5ezG9+i(SKl%5H^rPqNwz2BC0R&v5}cGkoivqY39ut2XNgmb zB7>`;4!xREowb+Y2K^S}Q(Uinc{$&h!_-H~;M5;_J?Y~ML!ga3MrWgz%z_A-?$ok~|XA(>DcF@>D0$<*16_$K4=DK=!PENif5HE6Y< z(;;ir6!XFiuCtwY`RG-3!@=5+29Qdk#=mUJjoj6Jb2$JN6i*GgAAeH@g1N(|*ViVL zwpDW5d&-a_b==!wx*~2pgk7^H z&daH)s^M<{VMvHiRAp7ewc!w-$=Z*7$2{Y1G&%hHuZlCJF=LKba~!sofv5)M`6p-n z#Lo@bmWTb{~-Pp5aA%qbok&Ok^QpF%J5+=(`K@&!vKuywlqf_seV3V*S z&C4{JkEL)x1(R*nz=j& zbP3ZA{+7;HyNt5Zt89$1U4aly#5F| z>K}E@6SD3ttgLFfRyZ6QwHSo%(YSy9h+Q$DavZRV`2>2}S0BazV!j8>wJ(m{t}(}B zBV&)>cWZQLbl5j}<74UHlt&Tn=drcYN96Q#l5^+i%|1vk%Kyts7<+|+AMPm;UO`o2 z{x46bZUGP`>`z{qKyaN-2b1!+b`QEX6HJ9l2C<4_(1hy1jPT!x$tEOaW=T!LBO9yLwdFT2Y8g2p|~M z!t8q{RH;%Y#L>)3mEKt{9`w;1Dt)vZS<0Rg(BlIpxZ%~Q{t`JrQVRAQl_xWXZTPHY znb4T)7Lb1kXH9QkJ!^xN2v5`3;#C=x^+Y>CYT-sYU)cA@v5<<4^~erk-+_yjpZh|O z#@*QecVEcljlGsFIroRh4(JDs#mDbE=%YI3zH_7Vn4|vD2wr#9o^gKD_vNq1Ykm1< zAqT7-a)f=`yeO2Fl$H32JOd(jmja}`641llKT?L(XYjNwX;% ze8?3)7+ZeO$UcS zKKFi7@BOa+U=Pc$6z9(qdsp-Q*#sKN2V{6gdx?6re;9Xy+p$q0A6yIuPhi)LM0L{q zCUuv>b$XFD6Pv_pHnJ{eYE5K8puG^=-l1b>-?oH zC&uz{Zrw*Pv-(ne<8xu@`U5%ZL!tq|sE8=aZ-i~o;9|(5S-24i8mvLq;2tN-k&3CD zL*`Ih!0f`=8+7eig9Pd>z~#WNb7kLrkwQb~3@R8i05_6;C~yBrjsWy&P%TF03&DI- zYc4e$HT8q#RpoLdk`UrANM#lYZ@n_Fy2_%_gvf&+MBNOcma0~>3uOp!F$ zmLH&UFzWRl7E-}6^;Xd3)6GN6Hjch>$!L zOolhIoEi$ZN3kk0Q0{hXYBz+$-5B~<_({TWeBo7e;~_}tA7ViZ^k>U~;(@*xZOIHsEq`=*Wd+uXx%^Aj|gspUGns4d^+?$!|o za~UefQ<62`xf=Kde^c#FB4PS++iFP=!8?^!8{qTg?u(jFAzPnvKrahSM01ZX-8%l| z#ja0h&jKO%boNLam=^cd9en!pQ)O1jMII06F7T|byp~Hmvw*_FLbJ1bYeRT8<(k!O zh6fYX25GS1Hd5`egVp>Hn^#zlgV)p|JV=*VbJ;G}X>d1Xs#JKUZK{j{t~!NpzASI* zOoIe;xoylL>@G^1cQa+AU}L3?wQ+4#L*cbud3_-velgF-4&HS)g` zInLdBUN+{WSRVcq6E)xnra7PVynHyk)!+Z<9}yAm@2+{qHSRlK`|Ca=qQQLwY!Qxj zUt3N0L8e2Tn`?C(vhj!=9(!?jG9D$Rf?X+K&JA+CJLVxpzeAEz%)PndJD_8zk<8Sp z1S~X?1L56p#_%oLd9qHvJJ|;8rOVf4;tu>=4J8SFYvaoLSnss|`u$Tv(&o>KaVQOy?zOPca?X9yR=lP{u4f17{X(RQ0?}vd8R~ir!MGk z%u7Z9JLZAby1=Hdez+Yl5kUtXXgN5&<<)HjHrNF5@BmizP;cB_?7?W*t9=q};>AC7 z)<`0>C(_-V2yrV>A%94=7uaW~ z?rv|TLwvBC!&TI|Uk@OeJefBIFw~lsDqK-SKlmj<_h#3LdFfNkn^i~zr47{QfRUr- zIm}hdOcxki7i)9qz+0oaY$H(b(W;IF)bv${6*j1C3@0u})*fF9+|ZZ!{?8wE^~=B1 z-Lm?UW_4_7w~`n2w5NVqAg`8}RP*-HXq9bLPe6^g&%IVnKwrH&05R#^;X>Ct+O|W} z%vI1X1(f8*w}HqPF{NNshS-3;Rgpko&w7nEfh|;knagcbH8xmd*35n)5=_c~MPjvY z#X_Jz4c@rByO&-AKl`yiV`I2o2P3bg)>~p}9&)y#NZ`EC2tHOe>!+*^dOu3d!3Zd!Z05+a*cX)_nEq6>`2vG1${X zB=}=&s(8S0`fYt0vbQ$kUq6lWj_JW10%c_Ud;6%(xvxh7C(lIIR`hZ7SWaA0HUvIZ z8vc0gn$mRy_I_7cRan(ob*UaCoQyaAf>{_ z@V890$p#R(_>pOyT`Ttc5=9HuV3Gtakx~I$!_C%@~&UX^cxQz?G6Y|bFLm0DS|#Zt5p%{G%$ zlgo~ziR$-!>^Z;R_y7H`-E!LYR4>o<^}L?v?b5fIM2T%^CQZA}xY)c5?L>f_*l&~s zWo0qUJdpYR5}4%sh$6sq>}d-Zusk0jM{>@JYHz|h$`mU9(43LsqK4sP;Vr8kMr-th z=@MA!e6Q@3Rj!-R&RyC{z_9}t3&N%h^_w3oAl*~3=7l7xYmW}38?sgk|6+eEe_1&? zNh2nb_W7`W4H68H60h)zNd$Y8HUj1mKUOv`6k27XnN=LR$^$y>^Up?az7Z8<8ji5S zgQ0M@0w6&x@-}>O^fTBdH0d)x*Nu=V?hVa#BTPnfokjf*t|hu(L9gk-3=1F=3#zwt z-PI{re`hspg+b}=of}L=^*ezaOB)827##Tp{O0!MnUOvHKBI){!V82hAqH@F0ZYVx zzKBRbT!>Vd^bq-oWDDC!2i*gX#HO&3I0-@0eJJl;SSK_1wN~YYKOS_PfZ=4zA5(9S zzlXfDvo&ITMIaEdl5!we9@jtq-fn*xyAujkk0_CI_&ewDtu2CRGe6MK(CIbzX)deR zraCLhiWJ;zkCTTa|Nq*ihwLDslmx>|P)%pjfOgwM|GX@ZBI3_%HL6)wCv*YJ;iBTn zQ&^Dr>Yy`W7KB{JVAm(7_=tzph=Nz(u*B=wc# z-B=g)g!!PZjxixT6u_c=MQI?*|Dks!G^HSa9TP1Js^w`N@teEvq^6f^bA?l_aHgS9 zdVU^cWKLJEaFit|HtTsQ)%{AL(u+0=CQ0rhfiZ7Ri-aNo_cli^rpFP8pnD^ff{SAa zL!7W!*Jocrul}#*u+C?-tAmvFdc1-B#hc^LP6#h=|&(%0%Y$+%J_=s83+&8T{r(moxaCzzlS8fBnIaepNU1t%x9w~pN-aoOS2j5lI!iw=NVyNRaME<9xHrC zO4e0fNzE_F-(nKRuH}I_#+Kglwaw=BmzY78c2Pq_rCt~)F|R68`t_CO*=VFAT2_U= zlIq^0FPtSwjDY7L@dW%>6#M~Dd7|Fdyy)-gkf`%c|LPFl(#8B&=bH%dY>0yq=OWHS z1(bAtr*qK?fGztXU&7oaBC@sX;mwFs6TK}Dxq#qtdBi(ACRC!o2Qp9Otb>1|*QfS7 zcwlt0*PowNRLEBsbylfw5W2V<4q!5o9l2JqGr(2h!zT&)8iXcOu8=ZG2#d%~G= z1!NgxiK);XbY%Ve|MuTyLYL`)-x(McIl@&1UjIcru^c*ztEr4Dj92%a25%o`6fi<+ z!9#D3{1w@G{iSTz=Olv_^dK+8-}1xZPj-iuoM#q7V{TdBfBUdm^J8-J)x`bmTE>=w z^^oEV^1Jg3&T2rgvq|lDg{D4Lcj7OK@ZypCI_8CB8s5tglfOqv>c|CQlrWiwQkE_! z3;4-oT(x75LmY6`NL^#tv&9$}bzq1|Y>)+oyPk;H(o!HA3H6A%Rc2#{M!{G;EySM(2~uO zCHaC&PlFJrH+6RR~=-{5=C~ zZ#~eL5cR^J6fv|)`+*f6R%{FjD2Qdez_o?C+H=(pGnnKTYHDYH{3Q)2HT9YoIE>Pz z&79-y?S=P(ejCm;$jl@jzyif80{csrX*1G`d^iyXMa}Xls4=KGeyl5RJeQxz&s4#E zXJ=YCa^fj-3!Bo=4Bpo;VAuQa%EjN8LV=bHlqZe%c0_sLU*cGFL zYUkho$^l9;LbQ_^UzxcsH3gGrjm4qpMB{I6+7p3JRxnJAF3qKMtj?C$TiAhJA)4^n zzONGZAHrp4CWJ295l?j^HgwJC>=r`%>yBPj%jsX9?S!*fPe%xeBqA-c@kJ+eE8nu`tv(s zwDslbtBA44)|2f3T4Zb6-{?X62YL8HpwX%Ke|!wx$lfa&B;v2;dc+e{vyE}!v^_yQ z!G`}G@lvu9^Y})6U%@aw(LrscfJxMy>6xurK9Dj8$@h0qcA8Ca(cG$HT`z5WTPG7% zT|eZ2h830!VaJg~3jq#cdLZw{*}gCQ^b{KBk-vb=1*Z4S;cy|?-g7{4=K7vsVRci# z;>L1$orRv7aR=Fl{9!FDg~~i2xM_Q#WwN6Bq5*M`EX5* z_yf`}Eiku~U`)NtX94a{sj zN&{R8z5*+b4N z#!yjb3E6SAKfrHEDiuhl03f6*5W*sHi%4`l+!0lM)C?yziC)}hxlmg zM4+6qx8eKW?0`W$1@&Fa!?B3pAU7aRia-a^?p4PE7c3DXUZ7FnY+!h0)x`n~n*EPU znm2#p7hniF`uxnN^bh|#KR7r-TOLR_vrekcDctwvV-ZYWWBtxtGw%kz%(~c*MiW4Q zzUyCXO)SrmGaz1&vgGB{3!g%g{|J6R3^mE$#M-~C6T@b42emgLdO27+TA7B+|`8q$^H7w~{GZCt4@I zclQi;P2;Z{s&Y5Inf@QxE)D)~*ghjA9puk})a3&!sbRgu66kkRrIY;`*Ints)-|wX z4%{6!PI9%FnzG)@hxp+dv|a7TVFhaP0#MkU9m`8HV6tDv1w1%YJkoU@qTcTJP%(c< zj!PT8zw^As^D9d~_Nj*sBvWHPweM9~`-|g0i<5L*Q_)UC1$DRM8*Yx)41S1*mLCxxnK!plxW`^r(pNcm9;g#qWWK(ht`;0J!=8O) z&Q>wPlvgY$zYNbgF}Ny@TW~g8s#NFHv(RKMKNdGl-Gf}izmH0rBo&OL6>b@op=52kTWx$!Ik< z;2Jk#c>LN|Fr>XWF{FPv;`zEj(~6TW#{fT?%No(#g#&T>C;0cH&DQO6>#4-ZCQUNu zV%G!{6pj13PgZk4&+Q5m*GH;03iHJEO3N&MT0clkc)Sl87q^^^-9iUrs;IOGZ#?<0 z*|Ddki_^D*${GhoyIbTfQOCQ_fAjw4>~W)|t_$$Vg(Rcqz>$X=jyED3nN+V3VaQii zF?03-U33`U0XHLaN-faMH&P+Ty-?MgqoqJB1fwINVd+FcmuQJYa`{Ch8k%qOjYPm-%!}^-n!X9gc3n*oUDC|~b{lEL zs+-?Ud>pE7Tj2gwz%HF)mww#7$So}hVHL82rWUq0dJfjtHmsdIKv6EXQdxd+ni2Jay1Vc8FSU!$L8+uVyCQ#(F<*?#%_%Op^KO-RFNezHC z*&6Y7U~GZg&H57G#cGwube~Vs-{G-j$C?JgzIS8qhJ+`ByK7|T^%hb6MMDZdS%t3O zeFrw1QOi@5UoB5mVZuTfr5foJGsRz)4@B|$(`a#KI4!>!DsP!M z?ixqB8(qmU#m3#yr8@I^xT^|NZn?rpCwDzL*7bv)Yg{?UrDqbB^Fbg1 zG=h0*M;yfmsNfyH+Mi3eCILyx^toJ;3>I#*|j!L-{5QP(&~`X5wJQ4 zd<$%5*{hJt5C%uMLDkCb4RVpiaMOEs;27(gB50(cUJK+ym4 z8$VWh&}B{RvA-%wR2Ov3@@`wcRW`^A?C^;5qR3ik3Gi&y9J9C=-f^HgP+40uUc(!Y zOZyY0{TJ`7PZxRfp#WHMxOw4O__<9>Pg|2FTRzI#Z}k^E@4T{XqjzvzxLc|a-{I7-WEiu2}n2p9b(+GtA|7hJ<$PW03#6vL1&fmlco;Q-1&!`J_i*^fkRuQc20}+uT=hYMxAuSu1$-hr~ zsmtPP5tJz%xNM0BUe=E9DFT}ROi2f}Ob2C*Gr}oH%O-dA0i=+(9X&Xv>Mc2qBH2YoW9EL^no3qWMyG}IE9`BA^YFV+#2=M7w-1f+qKVP_c!6B!p zX~wyvBr8=HenBK-0}hgz*eLnjOkbD>%#Xzj{X%OP)|MRPpRk+{uCRK;~@Q zXD=&<{1ji7P_|@!Fsbw!_a`vOS73q=2E)q$ z#A}d5#GJO@3dN96Vj||prvUV_SCDyjT1AwO4Grzt%SNqPm5sykSKZ}bq!HCUj15d| z6fP?%1d*s-B%igGgQTgel3Fwl%kN=&R&BaaEZJ6qt zA)`d+S6;s&N@RoxZQ^?Nr=N|>OsyH$)z;9%bfEn1?D2pWyqe>KLw4~s%!%sSwzcDZ zX(Xx__eFLrh@yikN}Z#cgUR-)Am}jv zwIjZAOGC(;*S>P!Yqg8u&9lSSl%$`g*a6_gmhujZh=7kG4{?)S(5vcd87IK9P|0~c zKmLjhKZSXX9rSVg0(ZuJ;PJORcH_(Me1|qReoE(=W6-XfAnd}Vv2UfMx#yn;Lh7&m zU>5~f_HCkTU-#$bUiFl@0Y92xJ-Hf05xc(1Qr9G#=}CKyh~`xxjGS)_80`Se0 zQ>vcHo!m&WZ^lV0U5Q-n~! zoa_IRK}vMi?7xsVcPbACO$c~B#<*EbUxgYv$3fdcjWB#7$B-HND`W%+hqVU*!CBu~ zuqZCnG6C0OE*Df;g%?e+S%uYN#XHdvOYv|>fK}4vG3vp2@NX(oFD`BO6z8{nANh`t z=c85m_tz27*`UJfTh014hni<&{LMHn1D1GFU`xanSsLBiH@cEd67kqC2h=dOwH;Y} zD@R*cLs)@sKO_B$ZVYUD)pUk6LIOVb>F1oAIiGez1ryXNpNDUz!EZ;C#IQ8i>#upaqOoTE2N8?LkU-_^gfo`>d`+NhxwZf!b( zKZ$>)>=9nnsOiWurebXr=ixIi50hApzDaLxK7UWHjbb3*p(oPHXZwG(0HXwAB2iri zEPvOP4wqZ7bsVP+DwArGK~JSX^=d9nfZeLM1{q}jUa_UK`fo@(n`@hE7ivA{sSoEx zzs=u%AM<*CXexv`qHMA(6f1rRu=Jb{nHFz<=o?(Xg_@^i3Q!MWR<|68h`dZ^(vNCu zf;&?%gmfBFpqhz?-~E3LvN~^$CiAZ;hC<&?M;cE5yf9@mvD!vb_EkC2OuH?c-)OF` zrj3$aO*QZnQ5iyYH@S7#+sgNKoxNQU3)`TQS&Esw0oBdejj{I~5u*`M?Tl%Susalf zBl^u@`ITXzuLsGQhq&g=*PH4xvapA;W3y7t9KA8Rn2M`3Clsi*L1NOTE%jh!k7H9c zOwcAAQC7FJQ(Kk37@!o`xi>1wcTL&4c7XpvGK#5~hrWVef76pcl} zZ35#Co$_Y5`hl-V&Az*C_{7aEly}Y`7drqp2_mP`ktJ)-VXCK?3dzHAxZ@pn2GUF6 ze?YuE8pA9^T9=Z-kWwpghvo3?-{g-A+ZsAOE1F5iQnG3EO%!V)EWo+&@R|~j8FXI} z{y^N84R%7lI{eOLK#tE{CI;&$zJODI-{bk0io#8{m0(xZ;YD+#Ny}5QalR9NLS~37 zYz7@a2d4Q=Z&%KzpQjN3m%66M7Ji|yl3z3#UwFxUx|30;m4?S3BJab*UoHQtw_(N`3W=T@O1RYMQ$g97M+ z;k<@F*$nC&Pd^qG3h6z<;0lh0N!W zgX`!7t`QCDcUHH)11oF>37$LxGR!OXWw5i+s)18wg8H?Q{sd6QQ#5?J=}hf7mnUf{js zNOXj_ciW;crtL@pba_xEzWNVnZNG_!n;<#@qO}8^t)+%{y`U=zbg6^_dytNC#DK-` zPno*|E6h-=LOP*o{@3&#ludpZh*Pnrf#>cKE~Wx`BP+*F5DN|$z=)VpaJ~*s5#Q&u@&Ke%>PQ3TjQ-^A=KyQA@7OU2I+Y2~77$Fb%_ z5b=^>pWj1vl~c%1F6>{QH)ooixZajuRtdw2nY=mH-}d&1KOXI-Qdxn{rjS;pb^iX{ z8%QT$Yr7koYbOuPi>`}BzYTA1<-QRkz434JAwf`T2NkYB7f=8^LkQDyUSZwX{Sfkt z<-D~gFhCC5ZXP}MBZUNKx6AD{&-N#PZi>JE?wrowQIBT;q}#VhUw2_&_g`g*!`iy+ zs$K4zb5o-_&8_-bq~Uq*_U~jk@386kr5SC)PS&d^c?X1@6#)$TrrLN8IBPJIk zPAoyTv2(6n2s=lve|&pmW}W1qaL4$Qx}hPmyLi1{z!h+QW+}``)oGgj_G-(IC}5XVhs?}BE@&GV7Ci#2Mq;=twsu{7 z`w>!8cO3bsu(t9PD@2exDh~RV(eK^=ZZ)N4a1#!0Uy{hgOxTw> zAZWxXUk*eqe^2ElR=cPO2R256|C}``h5C*ho)5OQsrpm&=Hp|H0|-84jiXZ$2@`-$ zOT^^+^*ef>E}rxatKFd)gRTe1-SK$$VOhA3KVc|;p$*bKbub$4CDzbVsO8>$yYK-_}l(#~qW!!l_msdQ=g0zhQlC|8JX6hcLe zxFW!F07$GtHV_HbA#F!SCJVSF*VvK1?)TQ|Y!dzRM~X;rHJw(Df-W1)FPhuB;q%hp z)f^5Os^n#5&X;rQf?3Ska)qhV!|}dqKD;?$SpKsp(g4EwCb%YpG!GHoGXnzyqf^r# zmlHc9A%L|ejkN%oGWlS`j`vAMnYVwhYYJP_kj7+Gf*V#H3XmbaSz6VWsw>ATu!dgV z?rM5bXVbEHSAbHUPWE9C9PIz6^Fa&F^Nwk-#>Pc0F zdv@TAoS-D;(>`d`K#Rj)l%|YlFE@bz*S+UQQX<59jDrgrh55-K6_@!P5r5!BMe_l6 z!*Jlx5Spdh5g;8>R5>Py7ah<{5{^095hS^u_ztQ zT$=eYEz0HiaMy6rx@{E;2Tqku*+HM55Dd*~@KT4R7$SN>Oi*D=z(`2f_4(WH7KTP9 zKYkpG=Q0Z?t>m|%>3`^36nL$m7SUZeU)U?c_o0}CiEK`PN)dm~9*fFW1Vb;4{U7zi zeuY+#z7}y3w+WFrl#KV4WRf*93)FQhjvZy>NMOa!c^Y9!+9Saq<@56kjZ;(Ir2txH z1QcOL$eRC-u6lBP|CLBl8Fb; zr%7t+PWm&L>fwiNn3+dAe;*=i$!crTAn#pSSDxxKk)l4QLMD?_`&SER{S2|GK&Gqf zVUf(|2U3)u0KSV^iO$IX>?+{vI|*!7^(6o3*tNCH7gEvembEJ|(RxY@bUA2SHFOH! zfsR?bwPi4GVu&72!ep_bIGq5;t6i+}6hAJsYZy)pcqMMKnCBcWlr=pnYz{8{C~JMK zSb`oNKw4;e1f=@B=s?8lh?&=v&MKSgK?geBoxVw(dsVVkJ(AFq;2LKPLJuo9lk!Ao zH7U$9%W#U=Jftqwl2-H6(EVSxY2)qNytz`8G^e@(;xqlIJ)A+ZgAME*?{7vewM>uR zo1cFVSOpIZtbo-Lv9w{S#vgcJu&hWCTwV)V+mJSrv!m|1ezOI|Go2Yy%Ts?$&@%7? z$%&uEUn=ApT@6@Kx**+b4;8)_%9ei-=GRxziXBjEnF(i+ucDe%M`41?B1XZ2cQ9@BdynEC; zfNnL8!saPTavgZ2aoF4-Nf=T*-s_AL0p{-iDIs?C6#{xw`rRJVZ&Sz3(IzGeXUDVq zOEW;Xs;j$B6ByqFpu|^r%asaZS_!iUSQt?%8>j98bS=}s`_|YX=w(7lmVa*(Q(cR3 zFTS!sw%S4qSdJGJ=32b7haoFAQ{e@KbTrUUEK)HBB_o;XQB_Rf7@ar3s4FO|vA4kSf-zyrtaH`#Ykkj7h1gI>>R7e9J^WY46=g*5`c1JQs^ zRCl?hP1+DzVb)NU?zpX%ZyjHK5C*l-9xYZafc;rF40jxu-##E09T{0*2bGpytFAty z>yjaIMLo7JF3 zds)n>U^gi(wK1U75ke#_=U~;jRq$?DBOEv4R;G?`q22PeSJPG!a~(dU^dF=Xm#u*~ ziqo|}bN;(q-pcQdp*2DT3m$mfD@<;*8=AzAK8s0N)d`DTSfSrBI=v`#FAyE<&V%l9 zB)S0;i7;*32MU!y7kz$jz4y~d*_qkGNubm(C%0dR$^)R=4JEAQ@a~1S*0yS!_{#Kk zfuVzWz51pp(2Et(K3J-260jNm=IY0N!iTwVjjLV`gH&F@wdlMAk8?Gu#HfpK~uCc{hAtX0e8LtsI`An7xvh$wuky(MWe>o(kOCdV8YzK2ucBg`Pccw6TKoF}eITUsT>_et9uU8L z+V@4=sG}_Q0`s(Wbi7kU)`q-8YcDAH!GiMkP-|4ebi(AvE+9X;CxR@k#$>l6#uhlI zI$13d-LE_2XAcQG7jM7Ltc!f^{j9m8mMpig7u{F2%hxcx^QTv8e-88TL`rPcFZTAj zR9*;Ck&Yv3L8DooN{qciCO72h&tFqP%&H={;*v+uGy$ z*LEJbx9h_2_D5n-si#~?Eg6`87yR-y^}QNzq$F1HM7$G zN6JRJI}!Ig4RpPdt>b(fTiO-cw(*+fD=;J5?>7SsT$fHH!Om3L{bedy>BJFunrHs$ zEZfSNQms-$_2{?fuPZn`eW>;Qn}pf1iPp}jr8Cd1M&&Y@g46bP6sXO{Lb;67#%cuf zg*Bwkz}U{k-S4{m7wU#~hq{iE#ZAz2F_;DERVF5eKi}8K-}S+xn(t)#RCK6nIWr?SwB6h{IHCaKr91?N(zA!WFCR8f@k%}q zuHo{_AlKOGVfUHg*WmMLw?H+Js0X8EV}~IEKDI_AN?Eu4Dj=D&^BRHWZO}!SaxOmeI&=l94+oM-Y`)EQ+M>=FrqP1S6JOM<1a57CHKRnW2umbSC)2oYeKg~ zv-k?kF;YXrz5R4}W0(JA!esp9`>qA}m@O19$X+!CH;zunpK4dFg==3t{2=yXeFPb)9>qUhHg$Az}*`b0{%wfq0n?=+@p-t3L zGG`}&x>jF_0+57vGEIWbjWik)@6|^O;NAnZuY_ZkDWLIaA9xDTOh;jC`LP&`G*EHC z4qr+dPdCCf_850)XmNDb5McI0U5%3Bv-m{@F78=3?^rY4!(H8B0r4lcDEDaJwtsHO zJQ+4j^?-&J+A=Y_CGT8UqWr{yn6t8~GZ~-!MAE>XYP2@}-u=q}jmPgeN0lo?=O(c;U(Ewj+%YO2IA@ z8awM2-!PuczPaYUzsi4s)maw~yX^WR(2nL85ed3;jK=d@)Mxwm%&Ekw!|kQiEEhNF zaoBwAvv-sNw;2mU??gA6FAsF+>+k;?aQOPp|OQFSl(1zAhRBr;zIB&xfWA8!e;iK+?c@)^$kBR9(;zS zu#H{P1~*Y4ZS!e#_f+j|XAKCEaIB!Ln)bm>aN$>drCV1&YEv0r(c1k*)eFG9P(zb~ zM8p?*Ui+Ko%@%s0TUTY@4D1{an@s2i!$ja*XjtqVWfh8LjfG-yu+`Y5%?V%SB^cdGrj&Pr&?{h$yTaxm^1CvGa|d9OuxbpqC(YpWhjEA7 z6<#6<%5l^hPpPve$l1^-m!hFJrDMx+uCSHBbl*g|#(-^&ZRa*VI5)g&;3X9qTZpZ# z=Hp7ok}1;&h&SZaMsa-U)Fi-LJxpzw@9-Gj?jhgx+skdOJDYckcGBIME~Kkla*Q!p zI{jE=DBh`ZJRP(QieX*sELQPNTW&0dt20D@sYCz#elZ#3BUcq0WyDO_nT zWt$1v_C7bScaDdHgMaK=_;eeTKkphA8-guI3yZ`H@oxWX2@H_7@B%!2#}%ZFf29R?(tk<7?YpMfitpJ2You0r$!Q4j?G7h2O<+656$yko zrZ$SUXdO))+>7e5$M@+oU0g^lPggOIZ-Dq`Ft$r`*xF-w*TI*&wC?SGW!*At-5_o< z^pMB1Mkfno)B(sQ17bGIV_xJjy!-t8w%-~co8(nA8^h62Q3_}#ZTb9l90zN>)4d?( z>eS_W(D`5L$ZeF?8Tvd5cXe~WPwt`Y3XyNfv}|IjIVy0nap^P^ zGh;`)XP`zrasxJ03&kP8wIkg7?I4&kE_Sm1Xn0eAR5^7+mQ^9s&sk689%>*h`VREB z%nr?clv#nlGs>A$_|=F~y_YfI{UDc9f}*PZ0qFVovGkd`EF1B#>&*44mBf zfV<(^(G7taBN=#?149{Wj9pZ82%J#YEKKF^DkzSM6y6;Dsx8-3rXu+}&LO)cS}3Wy zpCJg^{k(L=yK7wP9p5tjTHnvGR;Gxjp94SBc?7so1hsZRtvzWH*k!Q3;MNFvY|PJr zj1h-@p{|*AZ#v)Cu^4tLp%gsM{2t4u ziFwv^n0opdO3M@7+>P2{8?1EqE(CAYEOPSyL7Bvu+BBTrN9^ z0x=Xw{>stE1VDw-;CePZ5#9spWfU0KzCTlDv%R}~lm$$3W8Pdn0v7e$_k6qmY5|a> zP>x)3%$qAk!!rxe7kD6r)wix6V3WiyS2Z{tkv{Ia6y1j+q{6B|!|$syjPD6Xo&kC% z?mg{2x#2;@!hQ;dhT;cqIoh)9m9(2vk~g1K2QW&U_yHGz&4dY|FZ3o_1z?1?n}>hQXe_hYhq z!*)0Oqoa}2BNIy_i!d?-843cQc;V-u7KB|MLsDu)^3(SbvkCC=q&|>QaA<+Wd{Q6J z$Q*hz!$^3}h5VUa6;f;9mk-^Dn*hes1+n8!ev?~U4ez?}a=T#$j-Enl_(p^wq~_B%~}Hn{?RTU3Tv0Mh-GeA zRL}mukt1>SCTghKx&H7+h$RyZ`^n|r|SX}o*aUFxgvcEX*UE5^6P2fX~H#vfK$XL=j zH|%%DF;aTmHd@EdM7p@|v-EqH4+Z_-YD4bS2F1d}ldt9F*W8Z=v_ENR0GzsKU^s@r z1hjx$_Av~^5nT~u6SFP%x~8G@^=CBRsEVl^sW1|SyEZ}z_ZE(gr*U2$+)OP;_g5s+ zeo?LAF*UOKb0BG^YG6587~vj0JbYzl`x0RF*6xbJ8ERZJb=lX#M$n^z0PR*0|a6vOL{DrhiQ3p$S3isLbORSU9qw28G;G{J58uetXJ*`l zLgCt)Q{nP$*YDkek>UmM(UMW{wpR!`vL9B=sc^yC3JTxq5b#ZdYIZSwb>_~0Y-GB;qB0}p^4qbS2Xp{vAv6W}_U)I+R z)hYD)jCqY-Uj-XqNmYj@pk&T?>YS4<9K-Xa&G>b}3b#6Ui^9<`AE_u#U4fN&3dq8@ z;J&1;YDrR*< zGc@!6FnG2t1!QOLEat1{Ao+7AOyO9^Kj1>oDd*OZ@@&__@6uo_- z1$|@dkI$OJ0|FNi&ufnyg&ye-Kr5*&5(tsb$k7>K`jKF`|`UBIgB4Y7eS^Epikz>pW^rB3%|}_`z6c zmZ7h$EKnDeUE~Mn@@HZDMCO|c>%Eh}L4agrf8Lx04tl$6xL&2Bgaa$1ff#IqU(?o0Wlz#SRUYa5U*IC^BicJSR*H) zsVdFjZg^mPZxH#9kGq3--F%yIMYCuy?>iOQU6ub@7C)mM_S#lT3bP&^aD%nlwl$!+ zrt+hY3jwpnGoad^4tWp>z0%^R+fjvb2v!|O5O4egK1+Mx8z1o)z_u^Xu|wL3-(IN>35bUQ66(#Yc3Rte$UCDCL3tJ+eTUi>V-=!$ASQXU#GV3;U{3 zTR`#U;DV8Q;6ty%whaxigUFn=3XTbgdbf#={WBoWTND1>S@-eiSSt&FgXYqz-l8Eb=HHA?i~6&9mQ|@&%uPbso8!4426Ucd zFjD$UnD7#XM&H+ZTs#WqmpnB5#i>T@?SL$M{8#(ZU)Ph%1Xj9AH@L~pSHU66Wa-iC zC$jo3m>YRV_88|_VWhq|co7Zu-^@{@>kdgvW!9l%mTT(d8wk?4l7>!|hzyg$b_d&5WAb0R3 zbEn&;p#HiNt8}nCm7~$RKP59sm|glx`TOE&@bSh!6Xz zbDQ<>*jaPMMMp2G4l+|Qa_vdL*}yFjPib`x4U4k@ztu68?AuCP6NT}P%!|h2>4eB* z=o%VP>P%0Ci(jFnhwBLXJ0Wt93^AV#Zh!XAvHQTGgUZbsR1p@#@jt=b-&6d$RrUkZ zqnf+-AS|57MUX`S!P3H$#Xy2&);6CEbr7piwvtxqa6(1BgF}K1XY7f~5BhSbp+F0G zu4Dif5eOKnxjMo%WHhFdB*Kvj|Anro1fUwjT5rF96WGmanU=+K+n^8UB(+pp|I zjMq}NVOR}Mlh=YkNuYuB;*O`WANCqW7~`~d$(OpUzf_C z`xjcW&sCtlcG9)S;S4-vHnCd$-h~>fd4EopL5HLsE>HLzYJ_T{Ww8@sB2G^~X*~k~ z1>dkr4zf({G_bUS@CMXR*OQ5QxS)@Ozq$!PZH0sE46}mw|G2)fop2zM<@bAY;TA)X z1;+U^cp9N8z?OgIi1%vy3jP7*+ah$YNOds|vP%a7d=K@idP+1tSKt2PoUg8vU4_ER zwI_&B3asvbptAxiTdl2h#NsEsLD33-hSoLeC@q?xh-84~3orr)X}vRDKt!jnLK{0& z?qIGFJtYbT;Z%zA*oh*8S0{^mPnJGl!&Vq`Bm|~2;GBi?5a6a_f)Im)O6@04anqyu z?O>9Wm%G+RghhmIgv*AoO~M9txN1kn22CKHpeFl#5yKsv%O#D=kP0?%RnLDgtl=pb z^tidfX8*}W(3Us*&oZES{L~a|H7XX%6vnR`R`CHLDOJQcl|=B!f=nMbl)V}RInZ^%*GlSvl9l)QE7Fm| zw%?{FhYC-1D(OT6OnzFq>jz$knL2`?JP)q1NdgG0UyY$Q$zINz+d7`zr)3R^CGl&% zzr+}|0%1B)K}KxQfneX`;IfNE`}HneHRaA=XwItawNP@23aqz3+d3wVg9fs+mum>Z z^8$7N0vpt8KY3O!B(e|yABx!l(5?R_2JZaik!x(j4EBazV+Z%usu^fNFlS`DNVGwd zgOxy^=0{vM!zs!oswje{a_q~p>#d7sk}`P3&5vde@2>bA6?T3+lr*{6;187sj1*?a zV!AtySXxWA`=X9 zZ%F|dWEoVy6yV6k90-Y!R$#&aCE%thnAh|UZd>Q#;!@eXCTE@D0U+u5o@zb&{jfHY z9Nd?49Xf{ji)d-omw7WmUn3TqWs{|$QDd-X(%V+|2XN(yMHn2y2jtbs_tQ;5EY@cT zg3FUIQh>3-LOj%Yz^QdD7S*vj4dW-lZ zn_Fu_)`da^ICpJ~F5=fX8+#NAYH!eI`q>c&QWHI3NmmD%%t8(4c;+AoXk0%yW4N%? zJN|1U+)GiDo&w4P?nIaw(>~;{a*5l5=i;#nfuJ{t;F#j5nR1w>!WKOJIei_0Iixsy zf8>O3)bWGBO9HWbZ#z^X2j;gud1Wi*p+H_Zv6Pk#=_ zbkfJZs=V-d7i0R#VizEX%&S|#oeK-QEt7)~{FHJ?yeumOxd^aT7#4!jb;d$?eBQa( zS?9mdWF+cP6=^<$LE`DxK2FfTeZcgqM<%M(c!55QS_4{F0eH9d? zv%s^qV?Ead1y)+-%{A%XDp=k(^1||Fj>VqV>E+YQsH@{&W{Tg1ho}xk_UUPBCp^?w zan;UubgNTr00xe?>|(MgB~vd3`@;To1)R3%#P@X0xt+nYfRNL0WZ^Jep#~gsKuUI7sSe= zc4e=IAr%cPC8FY2O5|r!<`bE(LW*A*`yRjZ6dqkCiHsdWQ6?B11+MaFsr9Jm7tN7# zzwljdUHr1x_yt8!nsV@StMGbWH>A+oVym9RX~MdO_*o#t8=~NPVwYV|sb+9lX&1{f z*eY|O2@+3K!ahF+pxpSTGw}2xFqmh|6P`>YuoqVi4h_9&_MdigwQ`g7>nHj$c{VS; zrK#D2U3zm(`-E_W!53v33y)5=fxX)HZB}{+U{JHZ%@iedmihb5^uc*h1iHlinkcEN zVl~3qWx@%hC^%oMCb*DZui{Ee>H9i`*hm=SkqjJF9W^E2S@ST=6Hj|8(hEe?${pJu zZyVXR8%T4_m)6Z82G?L2s_5EDSPH#7P_0a4J(`k9j@p)78{S^_Xlnl6>v!7*#DH4I zZ}V)Jon=d;I@i!qB-8Ke4Ou}z5KoP_^)4|oKRGdG6B@to z^q*~p`D>>?KzO>o@CsU^>Pa}vw4DllP?M_2&L>rc+$SUgAr~ceL(T+bWx0HCMz#5H zuW|Ovayq{M!0%7U^;cM+$=&v{^UIfMgc&HZ68EF~)TQe|#~^7LPYTxm=o1f zoCuhuqQZ2c@@0V3gIS78Ff|E{Y4 zv6%KJ?Ll?_Ccl6qQM%+f25h>!8N&`v&5`V^BRGz!KNQraP!s|wOtz9bv(g8^=o~c_ z2LzMX6s5~4Gy;nxDP49Elxcv?#S)0irE@yRu=}=1ru;%l@LHCT2>MwCIi)~Fa+xNe zVKAyGF2}Z2qzejESJ3mQeA&0H<>-cI)|$hEuWECS7a?^{$Yq$#6c^01cY~j@?aB(~ zm47YEmglw&RD&L19!59f#7z%ELVd-&3K4-Y1U<-5oF0LBfM|f0m_gUE=?tAH8FlQ! z?duCp{&H_onx1GHi-vOxZ9Z*2+A^X^R@Qgs*N<62QdxjVxA1<%eu}a z-KK)*4cfUDz;JqLq73M|q<#5F?}j9j#b@>LpaXEXuQcC^9>E%2FzX|WQO2v8T=Kc>^ZvqH){>G0xYer&>4uu+wawIy|5oyq2 zRI-y&~{`Y;h^f}*i+P4Pd&`2 zj-%;`gsFAW-4wW?p-$C%2*WXyQ(l^9s=CqLURLYq>^!eh^O7we<#xE~CElu8YMnFQ z>e6IP{-=v}VEn&|QWGAFB zNVw_AKf2I3v)gP%FfQX3&U~8O6ub+;t%D40zrITn*JD72N{nz)8~Vcmu?mh?S~cm3 ztdjS&9KA2RFS#H&H#fJ@m2X$#(}{;%8gl(6EXyDDX+ojsikce<99j9SlsKnnk6R+Y zy|{L{Fk2ADdL*jHypLsf(seuXxJA4sV9p>7KkKTMVC;?0wHC|^m#7DomKVGN!obx* zef5GNp?C$B2H{+G)0Q@Sd9{pkbO*6nHGO^q3|OtyIJcf(J>WelO&zx zqR{3;&=8t}R z6Y_Vv0OYa18vprg5c3|JVSc&qdz$uZja#?xCg=36+gvFcBHFj-*h+F{_}sCF^Gv+N z5ZtWbL)-dR_HGsH^}8{%S&8;z5zxCsBFy{DYQ^bw99f4ai5*alirggg9kTXR(s~C~ zn2YLw`P>#r(b%1iFsCszS! z0qK?#XnLpDXY9(IsHy4s>#otN+-OX^CIa?9Z@Mp8^SX_)RGiA@Zk1n4kF!zA`a?`v zZ$7CzjWLxH^&(}AJU^ph_EmzL(LvU0Fqz&ezMxh<^Cm^?QEMZ=<5r1a68wLn(kp4K z${P$UgPrWsr3U-%<|l*M?umewF&qsLy&%*1!>YXFH;bB_U`yWAgO^sMPF*h@qRgQb$AqoXILoeegoTS`v^rw?FDn-~n9 zn;%hBL`RPinM8v;h}Mdw4>8xG3dE`(uMe(^+=VQf^x*sV=ut9fR|th6oDdNeArYf2 zsG%+Rd|=e;uhM^J%VOB8rLo+h`O{qoL@y!-VELfM#}+^TneX@)o-1m+;ubyYH^>6{ zMA+lE78fzRieBH{p15bx+l5wVZ2B}A#Cq4o%uo>CIlqU8+C9}c{!U$l8OsnTsn+VA9M?tY%NMn%vde7Gfb#KBZ?zDA;x&K1Ck*u&v{T?X_O*kB! zY7#o+g-YU4W=rY4XCmjA9Y1_NqNg=Vx9HemOyFJW&> zdf(l6YNL_Sl@}Kp$Ne{?4fHu*+SOA;5EIv|-(e1Ua43WSNm8aj$74O&iDsvYvmJJ) zrMFC{kTYJ6-5{cvLhpIn1CuhYromx~^mYHazp8bd<#z-ETKZCj9XPM{lKl2B*rNJ0 zej*?cgz-UqG7EkVf4eh^{4mP@BJeAgO4?hRyyve*eBxfvR@?xL*l0lxU(NAY-vyzC z7UI%&Pc#>bNoR5vit*$FR$zp)G0`#J=4!AxG(JroPU~s>@awe^tJ!sWa|q45cMld! z7Dr9?Do*d~l~0@mQ8s?;61|e^1X=0cL<@?E6sFJBdrb97^zQxsvYTb4lp^s5?B;PE z6cHf5$K%$>MvMAT_X&MDE( zlAz6Ld5%7ZR8u0_t?iztM~a2Gx9xxdydrls_^= z4?J@4=mZT3WDpQFy_4Z;%|4yY1%rY6Gt$$W8+`-XFuU=>%;p7Anza43VISKykw4T1 zqT*;@K7ZAiJmco|yNrjo#uvUNTn!tm78ENY@P}fWycL=fWx3-^%2XO&+?a{9dvc3d zlvAJPIZZK?yA8*;@@~;Pm>|Nra8#F{RlwbvN?EG$#Yh|KITV>4*X`Vd%E-iEbD<>i z3EBH9_@3tGJ@FK|Y8;&dRD2kI1Alv2msD8nCI?gnpg=#Uu8k**Um#^}*k~MLuqniV zFj;ip$D{1$c%`|n3c1cHTqU>otsvTIE#V$j72_5ibWc18NsdbJnyb-*<#Zpi_WFOU zW@5S^=G_b7LMQFgkv0HRc?E;z-tDgZ+sQtBkHMzEfbtHHc2`^UU!T1LKizC|A8np@ zOAT8(2>PD|lbn`UuUJJw($>GSG&CgkozWxI4@?0%p}=W%y!_e1?>cG^YBK}(iTodk{O{weT z|6?$yb5N-4!^h6JxG1cZ#H?9&{v~!@Gd?hbcgFj?JRAMr@1z`8{tp+x2B8mGQ}lb&0qQtxeLK*HwL8Sk;1l_J02UpzR{{Iz`4*0IH>y}7aPu5sR=YlV@0 zb7LTO92-mWzm|;P6lTHAFM^;_zroC;J)iFuHRSVK1YaFS_G)hz@3LZTQO^wRn~yvY zDzSicJu@^sR6?*IQ)CWF8}ec{c&d}uf&{~;(d)tH@rK>&G=40ZPGQ7LBQsXVRjR~P znpYc!MM{&$$tKhL{8xr5aL3j${Z$_kVeWe6OCgRdp@4S@N5SEB;cAd7qT^*9c0S`G zM-1&zX_(a|tyy9#->!236P`wpf{6@jq}|8~(cffjY!qUk1w1M}Il77C&=1QIut{05 zQqgaR-9SxR#D2w~a6+3s@?Pzrk^Q)gQ0()GRcp>)&efbwLA^UYIC?66a`vT~=!9NX z2oCdpX;r?seFRqPYWB1(^|41f_;O-DsOp?Ic&M)SEuNU|bV|3EY`TRa*lRS&2O}Y{ zw{D`xI*BQwR)NGz)>*E`*+T-N6@@|>_9jfWP{x)Vc#_zlR7pV>+Lzv7sDZfOy$v&I zL(a;X@P<=cjdASEOjuHnOdE|ESB74aQt*!WU8I;`tpDmkoahDmEisku)cVBwII)CO zhCY~bduZJ&gsV43*r{TZg{)Pi6J5BbNYV^YyOigVCAM`%$K+-yAeS&sObRec>u>4~ z4hatSC){nIuW}VJ(VwVUn*pFb*9~n!yyWna!){p#kr5Q`%gb(mT}F3oN&W9zU5D^7 zn;Z&GO{F6@^wCJlCJV;q{GoSPt;2B8VGuBKmDeC%W~1{-c1!Lsr_2MfF25a3RY@L} zIUPTuM5);G`Jd)T4tw{zn(P75`Y#9HTMgkX6RpDAceC|lrXVvR}xGtPR>ZWxa?o}a2g9{vlUnPnB zfa37v-dGk=!(lpwM&hX2U_%eo>h2XdNwt$YLXI-i7gJWs>W+V^wHq=ps%CAiYm0SD z&gI3`fOrlxU4J#0tV9{o#M!V3p0>%DC_gytBn)A9p(g;55a~niT2@?MT;BZQ_^tWi zzb9p1YPP*64ozxeweM$$Tc=U5W9mGS7*2hw`PbVh;#Wi2XRcWkEl{z#@6*h0_H>-| z>|8yFI^^d|Z3^_+kFtc{iiY4bx~ZyRAjY5Wmh-E!8eY9}`0Eyqla_zJ`%v_{DkwKu zF>3I((;^@g3nyyI$OO-cQ3i>+{xPE5sQ=sZ-N(VNncg=wsZKj(Dp;p96HZANpWa#{ zjdn_;J9Au?uvz3-;TXSuB^DO1Ce+P~pn20dE8%#1Xmiou<1m7$5E&{hQNMY4TCmOQ z;|W{s#BY5kYO$KNl1=(gn}{*QF2Y_LjlQ?k^z?87_km>tQcW;>8So-7f>#qDyBA8n zEXB1H@I!iEdgQThMJn9Ch$W1FqgrH4<(lsF+2`r_V{D^INJN7P>4bA+imoSM)L%7)s&1Pu$>&;vn3JJibK}>+iqC|mD+-I z&b$GEojspfAB6lPV&>*c0QSfnhZ4jiQL6>eAQ2f~rvXt6!H0*6H3QZH(s0~ra5gp{wCrS#vr|T6H^}-p{5O|$o_x}3{-Xith?o_u*9n$z#Wk2O;x*eJWOR9jx zxyZOL5vwKnq@#^jMEcE~NC(&>F-wgC^Awz!)@#R7>InU?OS=Z5A8Vt3B1(=cNtnJa zvjpAu#l$RQWa4GN?m6)G-D`9(87W2%{fmuU3NQZe%f!4eZS%6Gd2)f4&aT3cI4@DgyXl@#^wNIl1SX(CN z@fbM~MbExaXb)Z;$MUNz5wbRhjl}`U;;8D4?+8FYk4bQ3P#9SI-P;;=3Y8J6e_`um z);o~q1SrwMnfGInBCe{=S`Y9C!`#E!ygx~uJa=6-9PQtyDTTrpj4qf2Wym$q1#_bx zKaPIC9Z=sA4QEYHb3%|kzO|bw~!j`D&DfMA~)weds zdz*?Vy{vwj!Y!16Bc`(D!G)_af+ctK=tz4itS!-%tXUt23~DKT;ezyqA3nwz$%HMh zfJG6o4@JpOTN3|5jgA!F?^Y^RIf@|?*Bt0RM+Dk#P}PWxymfS8e)T$odZig&Xa}?R z{J(El6!B%7Kqj6_*|J`t*C{|~fkh*$QDgY7PYVJcvTSE_4(ZK}P30R=rEK&_ z_Awm#ik=@bFYRE@p|!v3ck{O9t>is?TlU<%yY6nx7OsfNueT%k3#4P_T1$odM^sW0 zBSK?rI{Y7sLgbvT2NQdXVPT=c#NmlwZ;8t+$qsCuV94qr0h zdZYCw0=38>rO3rfmC2b#+ZiJ~wD)GVcO;eL^na3{2mc|wz{%rs% z_RWM;0NyJL$?J?y^u%P3exX4AA6 zm|$7dWQ$j2H}s9;^xlR^la&3CXgD};dZW@JbWE9+xuRQ-q^5TSdvzf@zwe`hSh1}S z!;0Qa1_^P|_!{RTQk26M4AAtJGK_g7D11WwMxhN zNiyBnOKzd9z<(5&wYpx|oG`nvP|iXDd6Ev~$A-nCEw}job@T@a`1O;LU212%?~^H8 z79?^-@(44I7W&Aq}SA|3VGD!q8azswQN@3|>1_kKU z)_6$VhBc(pXM(K1TTO{iyAYS?e%I^>Fx(rSC%igl$M^D z?ml6xJrIq7cyiNv@U7FYxo(hb(%FITPcrM5SD1Zg|KW5%xm!bzLG`jG*$~!?tv@?v z>90M$W@i{E^YW_y>w^Vj;(Ed=F;`hEHb^?!lMeir<~N@SCv5rYge49oxj(!CeiEH9 z&|E&HwDBee2GhqMPM=6WM!MY*t%wcIxV7p?8gV?}XJQ#DjmOb%Bmy z0M#83^bT2%KtOTXR49#@@X!F*BGP;F)#s$8QND8E4%g_Ebf*IN1jrJl3)4MzUYZ*aGBxfW5^T3@SyD7` zmOEFLCp8fxFqAk1AqXTXU}F=NX>OF17{W92ENnW$kM#mSXQ&rlzHZnPT#4@u{1uyec(DLuuN* z6zL8^8%#KHIiXc72>sXRu)BM8T!ReMc+=vLogokhM@S4JJnl3-copdMU;=GSv`GNV zF>X%0w5kZCp+hJkt7Xig%b>&%q2EYK|LAOvuqTD}h?=A8Fh#_c#I>yXsBoOI52la{ zD6i)IhhqjAyQHNtgEdG)eF$i+e+AzRmc|JgH;aA zxw+rQi|p}ofgX4cx*`}t*$GunpeMfoTTWTt{1UIxzvlgs@ALB2%~#aIGq3Vh`G2!Q z=LXO5&!miovV&z2@fhOhOE7``onSN5mQyy5U;=KAks=NiZ~A@wl-A7U88-EMWJ5u{ zNts18_OyYeDTD0u-!~e(s`4UvL_z< zCC({z&I)w_#+!_;EPDZ<{e5uy3nU3przYO7e=z~(tP#4DxY^1FD1FpR_N%s+=7+Pk zD0jc){1uACv}Zj7j`uLMvOesPi1Gu?aD{3VHV(v;A~}Myt?JO!)(;YnM`dXe`>ykN z&{%UTXsc*tQk3JQ__5`wAGJMwy_5^{ptJDDqAin?`v0XvK zoqQYZRa&>)-8wU`@{&&EU0rPGe;N(&!ck#1Di^W@FEn&6tk-uQ9)-p1O)8)ZSXae% zFSbVfx?ugi;I!jKN3zlkIngm8f|D4zY4S%?)S=h}`FV>x%PuV0&@wZZck|0FmLJ)ZDa3D_(b$?xhM?(WB+HaTzs(pW0 zZP$tplslsM*jeG9eT`OwIy`40Gd%7qZ5(fRt+GpMbS=VbGE+yxSN$5N_#I0%6i;u@t$h8H6sL9BY7aKZx(YJdu5*(}*T(qVR#zUx`->p&Of?Q99UEPDoFB4HC?>;o*bc zCp#zeihaC;+=B)&w{4z0uUPTftJH6pf9qxO_T+qi(}oJ)g}Cl6uG~2nvRM>H{3w*V zppY%D^dIa)h_9z$BET`Tw#3!|tvj({G59sBBO$Xwa3Q4{(lAGkcsE}|BbsJTd4C{z zb!Ui+cPIZ-^Oxqf@=~AnS-mkr`ELNiZAI8j`~taCAH(8rF9W+KONy(COGdsne-V5E zd*xH}uwqcD+vLk(-whf^F0SUc6E0^Z{OjhTuR_qzTNzzH@4c@Kq@p0@tvq^zhL!py z#`HPU3lnz{^2$ljHJv%xoorhDKzUT{)M<24086*`tsciB;wz!?8=GkzgdDCdu|AAo zI4eFWc5zXlsk(YJo3&jlXIT{cG3plLJi3(YZ6CR)V=1eN3GIJvHqC)TC#t-3$dwJa zDhwP;IilzuWlGNJy=G-fj#bCv6c2)&v<^CIA*E1?Lu5t0O5zJuKxcX=pYJzf%Z_|K z_z7XMx58mGz3{n1uZrEFwwlT>Bg`@KwY(S)wLP%2c>p>-8#m>(4ER9k86BSIrs7m6 z1i;Ul;b$fMQCOMp-f|7Tx)^?D(Ijx|T+u0;De_KbO#FJHlR9|)i{+wmtLyN1n0>(C(%^$gY17PdrEEO-vxXSkA)N7|vL^&ME#eXq}0Hr|LDZk=)ZPGnIdVn1fMjmz0kP+U+`&@~3Urby z>g9vrli{B_Uo4qb%j2=A7Hi;WYD)2ov6-{^B1J-&W9F~Yv1OS$&AZ-SL}`X1MV2OL z$s!t#YiBaA$M`d76tV1{tnE$t{8B-XI~oV?lY^e^Z9ZMt*~CN4d(qxB@nxn6sxy$s z#uN?1wbGK(X4`gl*XNQE&(8MdHo=$X&Wb$umV={hfs-#2N5WPgNNyfZB~6Nj2-A10D3a?MhO;md(q~j%1l%KTQ=0c$C(#b3ID# z-l(yy_s=2#Z;LgusJ2DHj({d>HO=jwyG7i{SznH3zHQh(^2G)A8i|A}$`uXZ;o@bupWJyWMs3+{K>t8+*0g55(a~WgtSCGQ=B`NeB%mtY%g&g zW!?j8^Ql}S^E%SPm48?xpp~7Sp_7RPVP&!KN^^)LtVRb$HR!8VC&yFNva(mwd0f`^ zBkHPsR*gEZH%JjL6JE!|v0W)p;K2q!7U;v9L_(M~m_rg2VqJmO-`=fw?Q)itsf7j8 z!b0sdizT7DpniV*QC3;(ibx7>6Wer~^y1PbbsE=-Pg5L-6e?z2_1l!mufn_Jq~?&6 zeS=z7e0z;sEx?WW-g(}$tv{Aia1>?W(|fm*fer-_2n>MPkVs2PVPAH;t>a`>3Ea)y z(|e>X+iw^NxT(3Kp!~%9);}x-3q*obiWa zOBQapU`nDXZz6VdRj>Q*jB28n-Eytbm-M;Lx7l}oC_r! zOJ*q5LalHCbvFw(Q}6mK3wElpdQA9P)LI-)bG{sf=Li=onfcrfZ|hqNY3x-5{dg@3 zJFOmg+RY`V>b%r!6dtDPud^emoVS3j6H^aMF-Qh74p-Tb%>qU(1v8m zO==o%=XYJI-`R3Lx_KB+)OJ%5|5F|)PM)KKRRxgCZ65qQQ)IlUU{_cEi(M_BU^ZmW zuO+3UCC#NM=WK0(23%ZWAJ}rx`^I2p*!NY8)KmESTL$j|=@<28Tw{TpGh{c9T%ZC)|I-8@+^WFIsN*%QBAo%yCM zQv4=Ed%yP(7Pf}ADO0>CqLPJ+v_{Y_&jxCv0bN|~Tn+Cf#=o1|K%N)t=-dZpELDt9cYL7FNsuht}^>yM|9{P3W0)?1YWZL;pw@m3PQ(A7`# zSVve=>N(ljQaMt^QnM{tQeo1u>n@7dj>+XhRi|t9gezWaCGlDzf{Lvv;&P9xTpbeW z5(!n}q3^b^$XakDD~h`Sfm6(?j2uN*;Lyn3d;DE7<5cq-Pp4qCjIZ0Q4H>=jR&)f2 zSWAh-LO(jF)P1x>VC$Xtsita@UtIjj(;M0HB;N~9_DhlRMtj19yIKYY2FtxL>SzTqY#rO>{X- zaY7Z9JC=rWt#NFL_lA0VBBafWA6twIWlF($@gNa6zEvlC!-_BKQR+1kRHYiZX}6Oh7qA?O0_|g*U;qwypxJOl_tp#g?>r$o0VGE55+%b3Nls5_K z!hc(z_Lvy_3wah43)zGRtI6IsP=?0Ab7fkyvPbh ztSXN?el_VeJ!b)nb>xQG5;V5J1RC{|ZX|usk?hf5O-N$*ttC_&Q4*s(woB?;`vQ_h zm|*(I{bQw;^_s`xvLuSFERJL?(&!bRb;uQwLIJ|vD%~rvAE%gD@iXw^s{HpSCJEXp zM+eAY5zyywmjxD0=JVgcn~IyI0mY+a%Y&bNE6>Aip5T)q?2Ib-W5KLH`c!y9rtz!5 z;Uj-CuM9OYFoHqfSB9|Wu#@+!`I|`;<`eIc!X-w@*~WhWlW1BTCQp}&P(f#t?Jo#jr|xR3IzA(GLdi5 zh7sz|$ioPaRdC7lWCBCD?z&3-G(Bg9dX5!gz$hy-2O<1QQ=Ozbdc`9zKnL0#N}PoG zMmSR$KfcKd6V}Vc@8>`$B~VAEB3e+6oCU zgi`D8=jm8uiyis+Q7J0h+9;$&%6G@=>A@ z8=MF{S!KK_Z&z1yuJ?-;49iiyc(<2$2enW7{tc4s@j=cxD z=3hOK>)rwcponQBEbaf+aN*`&Lqfxqg4^5wW)nvkB!o0~8am#)so!rALgV(-5azU% zNLc;0YHd>eT&_^}A(4i(&4OR2uQaHW9nbv7aL78VEl&X135PMx9AnB1Q#(iOW=x_uLgz|}F<_r}7G4$O*tbxO9 zw%%Qz&|e{o5Y7K^fNcgOK|f8qeftdk@nJaKaQR64*>BerO90Q8e-(W07r15rGT9t7 zm1NJ)|8j|3f9ZucFET9FP0dutp9=h z3LO+2A`3R9C5*)qZ7c;C-dq{c&G0)J;;4)r^2UAHU*8)XBPm@m?WGV(Jj4?<58Yg? zgtNR;O8aR0xEu?0b#*=U;@9j3EA;$XNkn%B6&NX>rSLqg^dwD}5>*RCehIyQ&ZVSA zqZgR+)~rA8qGiU^;-&J~7Fsn{N3IvvF{E%-lc_I<>Lv8(;y&UM+EfYxxCs69i`gYU zZL1Kg1&?G!Ohn9uOaku#_(%ouA2p1(r(@~2axdT|0rnZC1Kus(KLSDm*`;XI2CMk3 z58Nxf()g1n{k%_(u76{g_sO>@h-fhsDMfxTS}NatQ1|aEmG5!>SU5nHbiKnInyLl> z-3go70BJfjb%pk$KtgFY3tCGFtV3GQeZH;=<$aD5jyf zuM~bgcyk{T1N{mW@P>jZ$uBJY5tp~yg2_5kcH>4dFY9&9zCoSW7%Bn>NU7Tp*8@RS zWQG2|qd&7lBg$vua?$LFC+mD7i?yB0I?@0`OJ>!bArp`SA>>|` zD}}^X;26}fc zwyxS8km-vKBNS4;BePPy3m5)$wFkei=>Ay`cWZKD$Qd}=hIL03>|01cPjB{VW}FRX zT0M;=Zi8~-X%Lk8nNBxX?1LoFvJQ)a^k2gu!2n0?#>Atd|m! z6nTM+D=bRn?&H(nE^L}sO|UtWd0k;M;bw&{#J*TD`mJHqzJLLS%e`L=qQ5|aS805* zg824rpge!DD*x-}1DiaEzWoooEd5~ThHb8(l*6Zx)AR(92wwy6&-BZMODht=A`8o)j{1`jTf3uL6p)m z98Yok0g~gHV5ZlGGHi-gO3bmEj-)`}V+)9&DDh3goWkgRE7YU2I}pv{+1qavOBMqO z#s~V@I+Pzoww!4vz6U^;1obAsn?>h{X_&rc4?J>}>veTiRVMQWJZ%voTBMKx-lrHT zY|I`+M)PW=aW(P-TD?gxg_J=cb5C&8q(E#7LrTJ8V9VyLCZHvQe026DrFmtORfuS# zF94b6qaAzyW#$Bt2|i|^lOWn#oT50{B{lmx_1+i;9UmP@YxYbN1mdEufIVto5pI#| z2Rwa{?|f0QuTJU=94;ZEAr8vWDko$h8AEhr-ZzZQr%V`VCJaozixV+_li}I@>fHW?O-?L}dx`_*c3vj)@y!;y^L=r-)re%_1x!W*U0bygDM1k>JF#VB$BQ zlSIdw#L&BVuzq%5f(^b+@1p_iC_o}Bwc>9HT&P&5+QNwkCq}On| z?ANUAQKnkzS+$t85x}WfwO^QmzN+v6e_+&>y^Dd<{g}JCiWbvBUg~8{5jU|CGYK3# z>CHdcQre6;LJ8q-?dheT-1x>=ahpVxk@MR7weVKAHq09L?_lI zTcu1w)Eb5JpcO;I29waSPrKC%NZu)}aa9QMqTzQC54%3|3nDeh-7CliT%oY5gs0t5 zWvbsOhP85pS_xzhcIvO{$}`S zckbD5PEAoe{r>J~jiX(^BDMg)(gvJj%2%YA-Iq0}p9gg!S|)t#QiEnqbnVgjQzoc6 zzDvoF(9CFt)8IZNSka6c(m$UDJV_+-1ug@|;h{Q`R!(0LBVJ78m<9<#PxFXGhlGGj zL`P-SC~C8=MpunyyWhy!YoV3XycQS={`_kLrn2z1+1o=vP)ZQohzJJ_(@Xu0vyv!1 z>(8T{L+e_c-FxjdYF*a6UtZ(%uM%3+R0aP;QS9E<5`!Y#6}1+yjAcgt>v5H56tIaI z-e&S^?RjFY#J9A#svvO22tfmv`!RCzK1 z_E0jv!VhIHky-UT`K2LugCf-Uw>}C|eLc#}Y=pC9aWa5{Rol&FGV%H0b4M_SlLl@# zKXDtlI+)yKi^TqXw|>{*Ykt)>VkX4IfzU)8^?$b-4Jc4h;09j3hSQOpmEL0JQ)g(j z46YoF4AFskgw)Y-AW*_6=7iuZ6(V6&F1mFK33Y?lEI8pcNn)TA&3=r*!}%J_D!|Xv zf8KZk=NW$5aTYmV|AJuMu0J=S56Tp#J~=B?^>ScFCg4xRyxGzuK63QuL&h;yO)|z# z>J8Djsr+N$#}B+^oT4t5 z3^tugNB9f*>TAF2tFtXQqmv-;G^2@l$R6ok?rs_{hbx z{@C@TKy78fO0pvsL|wvT8Mu+7-c9kUW?BIQ58;ZL&xR~9QxZij-ipiRnkhwd*%n7E zw1_HigCy{feS_;I0p+=+TsyWj8pDa%33hjB9|1#M9tgPd*llTD06`##TKjq}T{ZVI zTkSNPYlV&MxwMsDA`s1cf_N-^04JwRLUBR@d#b@|K#@=VIQ8SPp-A^!lU|&^NQ_WB zAzYz$;4vDB(yG$t&wS6kVInBno)VM{c%Ebz5Y0c)QhfhBT)wQtXOjo9HC2T^wluGz zQShcb=n!5vnzwf8onK8VIz^Xl_#Rr}_3~tbIZhc3oxzF54Vj!CVXNsB;K%`Ho0rim zS7u)MS?Yz+G3UVoaoX5I6J=%66Hbi_sCN4P!@|f#=YZ;m1o{X`$@t#0m8LP8 z%#OnOt^Lw>pKas%KM!4#5u5mkJAH<(D^j?wwO@r9tW1tS7hh{Zm1hpoRh7&!*)cV} zm0i@pvMkH4)G%n_y011v{&rSFKx9X;Q9MgEb^kaQU2`Jk8v0v;RT1r+Vu3PJ^)DWW zB|>-Quq;`orkdu;XxxTdW8&xxO`!Jif5Z_6Q*2KeeOlK)mwW%u(H~#xRxX;9tgF1Z zKQ?WC)I;486&)!B-^iekf@IhCdD||8y#LnmrQ^RQ%WY|ym^E1`!ggwN+bi}w?Stf` z%+o=BgAU4Uzeq*R3d6l6VGrelPp9%3Qxf|{Jnns1_#cZ6c}$2G_^*V~O3G9|L>3Yj zTWtPLvt-)!-O6*TKE%>TWXsgWmzw=6gC-Fc1G*nU(#~>X$AjawE3$R-6h^)qOOKrUC z)_Aw5Dsu5XF|Cdb&%8D!jV#mL*4io4eRN7{4($jPZuh7Z zfvMU<16JymlodYnqh3hSOx-5gKe{4zuE#`U?YcQCv%Vim$!P6gr&Mc6_45!dnVu{6 zA@a16zquyG5T7xq8K6+atN!fX8OlnrbX9vLCH1_!glE}tGz^ki(JaEHj%fA7yFW3@ z>(RH2{%{mt^^t?`2$fx;%yCgS)A}X%GHX#=X7&}MRW~LU$Pwoy*IArX9OB* zH6Fu5Y$6_F&!EwZ0aO92wzu0Qb@tu;SQTk|N9?RyHz26wm_@$&ui14`XPwaoWXh|YSQm2`Oz_Y9rE z+WSO(B`==xw?q+gL@0%tBow<7aZIGvkU3*M`3F0wn zaWI%n3E6{WI26+yIGU%uF-f4!&q&rSZT!GV*Us&Ma}D(T|Ls*&wRzP+GW%utGKavT zqw^{Zs|yQj&fh6q(;8_bHgaC7a9m=4=$&WJb?4k$Cp-r)QiAwoc}jtti|>I$^6~!F zq5IzS&zmzbnNaKKlxp~HNrWmzkLwQ)YVFtLwld$H_k5`PVu9V0+{Ot1w2TCQhZF#Jum0=Z7$EmX1_rW_g7QXP~Xgjv{;0#eZ(#XT{WHo_u5u+ zUq!cMKUt+#_RBZNuBjyvYxK4*qWS9Twn`nrM~-D<1Loht;T(!TGf3!28%Kc*^{q+7nd^Jd){kXq)n@n z$J|J=!cU{&71n9$7|J^NmORpYsB73B>{RvJxi>Lsp1#yw`+}e7%02DcMm;qzHDe7e zEPhIyI~74c_E^^`^~cGzyY|b4M;D14bHNkl)*{^gYI;BwF$Ur5fU5}?B^@u`+-ARe zt~KkqdNS8t{g;6(9=j2YfL_2M%>X#vu1NKCyIzK|baqA`yAtJW_ZMsXjs07G>-??n zHW#5!XqchNpc*QPEg}^ixR@TKTDw#0 z>S@LEUeSu@6Kz`cJ?^YIp+I~lvvr@yn}aSM_twHfUPE{0<5@k_WLBz){hEY(=%O;BsGSc^r({E z8ng1_*B{^N*3FUZPuu^*j(n$Z=UY;{n68xU`91I|L3uKsVH!J?m}o42@!w~dOGGVq zxD;@PM%On*Fqzh2lX-y`n)#8oku@^4byCqbt^Q`MQFm%a^s9Ya52$$DTT`wMRZgjT@79rj3!#6g zqxp)|ZhIFu%^0FH?A{EWTjO18cyH~6SUrR=FZ!`Ug8C*+-t3J?pVLlGmfNqe-8CuE{yj zU`KS#`ek))fY{|8v%!w~l?xh}s=E52zHHvhIaXAvDdInKs8>uxsa7M49w}q^Ax$VY zPN!csHIX4wYxZUMM~JMZite1kH8F|Lp2H7Q68Bw7jH?lIIIXBZbo4fWyDfu-ANO6& zXvhBKG$&+Z#`)Z)4<~}t27263LE<)MPO1GtY7rQa~k3kUZUpaS92mMG*MWoh{+jMZqw=&%2<0J8 zI)>!mMCL1ltR@ht`^l|6e=HE{zA5LzzY~-+?7vxS18a+tw@A>dCu>6X4V~$ou zNs((ypgX#X3cpWQ-hY-SFVec&zOiH2%WrH>4=K7(r81l*G)l{ih+Bhv>$F$bW{$kh zWMz-&@yEA4jMo^>i%6JGXl?CJmpK*M8dLB_P8>By?Q^*aRhOrzHrGyyy;DgwJcuSD zK!q&)PNi^-=DoFZgiSqa*Y$7fS6U+6-w-+-?te%S>(`%5Rx;L!dGT8nF35;{lsTZX zYNaPvmr2jz?QT#%lz4^nB$Z|HtPBr7{}*XI``74zEu)cvqia5nbNmDF@(Fx&evegS z{Pt%J`}eE4fpe?u$tx0#jYQ8-DI-D-)1fge5QE>%6QMthS>Af^B129|w?EF`<)!zJ z?{m!iWnG>g((N}~;&D&HSz&XeP3NDn%VhYIi#AqnF8X_*8RwF<2YTMmYlze51YQ`Y*2Yostj{6^MzQ zAhp{qae1igbScf#cwL>Q;F4ioKl!ZCM5w26Jj}>2`mK=?yoE~BsY8NUUbyr2=zq8X z$irnTDSjRgiJpNtNMRf=)_U-ehf1twSgp(2O?RG&qU3_V{}5x&NL(5vxS%J)byj5A zbH$k1x8RNH0lQgGR9o!u*e!GVv--1=*o``pP3xCQ^)xyMPH$>zY}8+dHaO~-Tpb%J z>DF(q!&G(km9G-%@f11}hkB2>Mn*FBRWey3%$Ne^TFno!o{ae47)IG$-@na|f4bOX z;?l5CYTEs^x>BUzh4&50YhXRCzh$-;9d{oH0@)|hZh<>c%D4rYEU{`_}RAI zU6ogyQ@V)1#rxy6Wgq(m{Ez#T12@m}t1v4StyHQG^QP&%-N|4?-+3nAe%nJd>CKz| zb?r{6e*NdsM<_oG{zG>Y_dn({qSe+JIi+4eGVYL#F)Ts5#lZ6xi;<=am%O=jL5zCg zNwCwo00w^jb-F(&WXi7CwEfHjxr&(=FlR1j#&5<@!yw0w^~4~VXQP_T8n@y+D{Ed4 z)Ht62U3S)V>nwA)mYn>)&vmIZc9(%yxd4j3y!%N5lUcFZGFy{LQ!?iQemJo5-gZ;k z)74BeU8xE*%X3q;y7BP3Wv_mE+&Y)1E1jclhH4WZ=|_Ip^Y(m2P*Kb>t&W=QACFfM z+-5t6T>~xC9|JEt4m2Gz&d^StKzi=Gdz($99YOM8t-#;)K4toq_BXr4{w<@`F)XDR z{bBXc*g{>gIhAD6-xRbENX@J6p&doutz74K?wRZ&;eJ_po&T}eigc99=(RHxLmX>;0#l&8`j6QN>j{X8aiCDiT~Q5qrW* zko;ZbC#1QxHnoW;{fFqn<)Ugx53E-j%y2r7m&md-$hBh$cq~pn@iZ;Xo)z;pWTTP5 z-5mv~o)ak!gr^<5jC%PW>p?4bt(+w5yBs2oBTZOf6Tp-j&MOk87p^^^icCRckm-?> zceoOIkGg5?R?~e(zY}kh(!a)Kq*bc@wpgpjtmVo(V~>7ZCN;UN)9X)d{6q`6dWmjzjEw-S(W1Z7P48=x7w9e_fI`{seT1$~yd1eRUb8W(G z)f`kIIoX=rcpj_4pl@fxE$(*pvi|kGEDNLtRUjsLHCDOD^mm|g=2s#=tVi>I6TtKJ z;v^%UwM9c)HeD4pj5(`Wiq7>7rSILEw2w>?QHo96$26^!wK0u(EGgprZ&0K3tGjr4 zM0?iCzo~OlsPsAc&zkO3iqbh@Lt3U8V)(;39-?)19fi-(WBld? zpn*J3v?So+%tAB}sms;k19lj>AfA1&+-h_%br-$xVp&4%A?|F~2I$Cf?Yp@7DH-T( z*T_BHw1uiC@)TVz`dOeFFQr~;fHj*}WWl8}Q+X^w_Lbd&L>A|nTRk4C`wi8<*ik@C zEPIZo)VizM^C4cCU_xVC-oR9x#!9X744q%#~lkj_V!k&Wu!}!qRhq)g=E35yl2B4qYQ_E z3Fs(oOg~TbWR}Sj(|3Wr73UNSF1J(pWj>`xM~nKK2~%ynddbU=)c!WcD;oZ#;}A9+ zDka=sr|TrIquYPpbELIj^tg*;%1X(){xuUeq}u1Y8S3!?jG0JJz+8q)KJYvV6ZE6o zKDJ1c8T`a)Vt}NR;z*0V;4v{5wST1yQU4QORpgSphh@RSY!Q^EHvDF1tyHC?=>0WHBz)+@ejG zyKl*UyhjE#MqWM4KX>7St+c1RzYKSE2|1^)?XP>gP*Ye}KH?b3#ZZ}~!13FB;qUIF zrSPbp*X=j#&!bd(|8c{M$35@;Hz*EFybs3Vs0l=|?Y6T{^~H4X&&xsgeb~nb9Rg8g z{JHa9jTFhdTB<9O^yaOi*m_dcy1G!$hpj1wC1ozD(ogXwKky14866BU<*w=16cH|& z4o^tI15=FC^tA4xu~)JSW>eBg4HfgG!mZ4;9EPRQ7VUtGZjF zE@7)m=B-L*4)4nGn+AXVwADEFn+USWZ0Jvsihhrp46Ao+0CK7=>?4+{xmOZV)vZ%k z-_9h75!JFNV%NS{O>!Qi5?!D?IezLF5$ALwL9Wr2k#8>MAhk0+-6H}Ie5wgebI&+Q4m3~;wE80)vLf1$f5K0GgP%jigFUd1nH8iLOL z-5r(s-dAq4Tv2dZQTfgzT{)2rVuqsV>_ZFJ0F^v+Zu;Snhv=dgtsYNB`v=7OSEATj zp)wKb-!Syl@Yv&+xck)Q@H?g2M4<^$=8Vjo$bIAwVZtuojl>@?sE&oxJ|eZ2Lt>^K zXt;b2tSr1Jc3Avy1b45xx+l?e5#j2}Zp(m+oG0o7cE^G4ULo8Iq>0I2N7#W z(+Mn5G-CkEI)avf&3U4+AN_=S!o|DhT!tx&E7m5&-A7j0%k(HRrBS$)QNT-6s&i`B zefhTOhq%i_Bc;7a^uoG&BJEC3?iMO}n8naKRLX0lww=|V4EbmHbyCkX$0*HVS8mU- zkhEQo0VyF*PM@ekQ*gJa+1C3R|4;VEk!4=b@&eqvWb(G%tLPk>u8Xk?p zb%xoH(R5AqD-m`;GZvP2i#4zyI-!r5P$? zsrU%POkqlvipn;GX2?!uh=eP3S}FGN|sw8dt^eyjmkvjmXQ5Uwp?Mdglzxw zcJJr^{r>*H|Gl^6ajVB8XU^-K=XsuUo`(W-8HzxVNi~0NY1B$l$b*3O$bOaxB|t0l z(R~17=}`Q`qy$_=gl8!E2CCHjPG#tZosa|?{BvdNk^SShVMyT7eX^{sFkCW9g|ZAo zDB}^{@124bhHl2tT}L^RX2H84 z1g%~+-3tbLTL=tq*|Cg!o`o;B`wl4PLe#Az5q;1dnZ0s2a-7hp-3_bB>Q`_ zLEn3a?>;E6lYcgAH3jmh0eINT#Rc$6O~ctakk2ddS6H7XPP@$YW zobzGMy{Bqd>9PO3s9X3p;Qiy%gCmX**MAGTT9K);Lxe5$>WzjF%F9^-g^GrVu7c#h zKY*&j_w}pbrhCQ=O9+GF*rA@W_Cvw1MO43Ly?2H#)R7o?lJsQ;q2bV1!CSA&D{AEC zGFayuWaD$Ne6Mn3)u3blop1>spS8(K%E?q1`68I|gMwq)edE@=N2!)?Gw)qigwBd* z)|(#)jCZ;Re30PqVUyv*uy}L)wq={mK?q_-sg6~gZ_ew#_PqyXyQTS=CUKR|~F zH!lg)4jLkOGyyPsuv^46>;=~dJ-GSZ=#}tZ^6u4Lar^t~g;?l>ODxipN|V1*>hPgQ z_pqm-o_=Z;_G6e#n zvDItam+$X3eacGjYj%yw7ft-TtrzwNel<&drS!BWb-68}#yK!`=~zYO(vh#+Fn_d( zJT)-b6w6dtPZrjr7!{X5_VYJ|irW8R?d|)HO|RopP-h!mb}Hw$^Wtt!^>fsl8#8{sqsV0 z@Q*8+=T5ifl|E2^U@-GBbbc%^#2s2GaeMnW-RoKN!2FZu%oIfl$Bw#YWtBg2Rf)<>TmJHxxIs~+aF%YjGF75a1jCbhT0WKb4f zhYkVYQ0TJ@!pQ^R51}IfhKjv(!1X|0x}`sGjH$-&_Z9$}(u+TkO19jElEGYwO{9~) z^H60VO`u;nqki1Q7LzpdkhDh2@eVEhyqZDa#G&s`<}L=mPQAmH+30dYDU0Rvc{;= zEdyL!dcdxi0#LwW5L4kPG#RYf#Nx*4ZY=c7ZVAn7+qIa`gXZ~C;^pM!#J%I&(KvwY z`tyD_BPM=q1jp1ZsHMidue^HFWgn@te`9TF?o!={tF7uP>6{FqAEqdRyt%AGPsH=? zG}Qympe|h{uC~5m|67OjrN7nA}$n+{P`Nds?7eKBfFcnrgF}~A!PQM z&sdPMp_|2n3OI~wFWsT5^Ds86kWF*$ot&+?=@&j) z-pG9L+VZodXCc${a#lWdyzqln7Mw}TA3)>?+B-C7ey+GS_GwK8t*liJDXy&fRA*)k z9ByZtGC#~&t6P;?WqB69{`yo@;Tq9EpoS}K3rZHQ3G#96OhL`6=nlgE+qMy_^)=~8 zm@L7l^DQ5QNux@(5tc{z4;~;lxtbFaObp+UrJW_6r(gu3c9EHQd1idU|GE8+jOOlU zcHa-ql;2X|Q7Hf&%a!h)lP_H7KlWY>pHGKMvLw93xr%Ybog%<(sA~8o*DXOv@4EOt zQW*;!vrV7ww{sfBt|MroWkC3Im4F*V287vYuSmUrR_v4H`}JE#pPkW@W{aw zx*0k61a?`8@PiK#FfiN8WxXybLr-kQb91Ey71s0XHsL|QIoUemf&aKb?h?wkDE&gk z*{Wch1DRBh(hmEA!Yw=SIfWJY?-pYftgh&+qX?SD zH7fOR$HVmmO}|VZt$RThgJJ0M;ql_);^B`HH%Aj{7nsS$zT*K}4v=2ilbhBHJsPGV z)hKB;J_o|Dy}gFM4;Mf7T`aB6X67xFXn7~7eM${@bd53ZLJ0r!q-rYZoic2HsL(X-H6v1oBd!0c02?X4YM(;*(;B%cl1d9$z+fq2UIEHkN z5oxsX!7K^3rz064;mm_h9=UsO3tS{hoaI_(wA#VV$-j2u&fZWWDdt%#?z)-2J^g}0 z05RZDr)t`96J-9`dc5#p00>f5zpERlv;*^14$Y{Uf&J{#2kO5gTQY@R?nO+~fJ152 zl04CJqu+Pk5LL+CW&VeRwK*1BE5f_eTvq|~Q)jHFQQXV7VLr=|MnB_(hrOA&`qt|N zFJW`644?Qu87C4U!OKuh>tSMqJK}!}#xtIt<6TMPZ4>@Wp+_UMB38hBT6-F@Ka6*b zRz7=w(R*GEfNo;f(`QxL=~XJdWC?dIMR$sH!Xvrxl=tN8;@7ZcdVCL?$u!PsH7v|~ zBCEzA6`AN)5RJ>hY+NTTg&T(K!m%yBu!7=OckBcSL<-vJ;Vfx13XwI?AJxgDfpie; z=jZaEu{gFy6v?`bK+{Y~F03~jHH3je>pwL9sDpP~byjVcG4u8X#egDcHrW~#c36Y9 z!?>zh01?EQ!D?Wxi0Yx4?7&Rd9`E!4A6vNLl<$6T(tf7(jpYsMjXcYnx6r&ix(YY= ziMSvXe;i!OkY#Pq%UlN+~Sf}-J~6b>7bww*%W!q~r;FJ7F&cfwgu zZKNo<3aOs#pv629?mbms*3vc_tPKWhloE6l9BPnCas_HdypTkX@WoxfOUt+!-D)pzpnXoWwq$RGtkBQ4p32>&@@AHAlBAiwjNcjORz z2#ansi9sH6Gwi;@1IA%=jGD4wlHZO93xKAhjk&Xh1Xyg00(m+3HDzoXZ2Shnk&PLP zS_?!S)prZ?HY(Vv%KY<#QCsHiuhxGbP6PI9*QE6%46%XZoeH>D;MzDe6;uboZV2Mv zfdA7z#k#dhSO_@FFbdzA#!u#2rs2*YS5>3V zFD3lrcN$Tkok}B(*s!)|@?g1Qa4Pt>=P#aOT_@nRCd8rN9BxlV>^B+mVvpJ6kAM6w z4E%0&GI%vmGwTDW#(0+|cd7QmqwVU>?yCG*u`m45!bd}@nZyJ|Kv6sZT0L!hZQ3e~4$rqAFKdC!N9a!D7CuVnwV)> zlxf*!U1*t0%SFGIfK5<+hj{-ylqE?Uhej?aM@5CTHf{_nk>G>2X)=LhWiBAUUMYm# zruwcEY=^EDpP;m#J$W#^1jaz><`=Hi{*USQG)V2(I4;#7X$DOJe_K0Ga6Brq3raw;K+lx80q4^9{vWo}C!ttbpzi#S?drK##dj&zC}dKN zDn480QwuywPa9Vt{^owKO|`Sow5`5x1`_SGd*jdyyxbneI#=63NEnKsZ_swd1~y1c znfC4$ZEq|~uN4{aqm8(7;21ekP`~Ff4SBZe|4kP;Ivc_SO@a1pSP=D}(L-VAoKti$ z!fyoeZMu4D1pI{a{G-GYyyuLkZ^pCiu7%**J*KhcEyLBrKOAE>)2{pFV~$0ibKiGG?E8AFlQq23&LX`@5ojb+&S8gnwp-g_K9Mzwq`=10DB8M&{n`mFSDi1k! zA4X8GXP zgqw&{;<0w%;hR<17;kTM5rMxJim)n=6~^&|$Oy5N&&1q8kMxL5yhUrd<4YGIv4XYQ zCMuvk1doV@6EQOuBvM2M+=%t5=d$MPcp~b^_1e;iw;$msQ z|Cnnmdv6>PEx?t4d!AV^YI7U%f`@{`PGjb- z;#~|;j`#zRt8F!G5D~=+rR;}A*+Jocjx3xfQbCNiC0-NVp31pJB7eE_#6pCmcfIyM z`pPQeJqa!Zt@)Q?|0LFKD?2kdUzyz?wQ02$u-cD4_7%-6Gh`m{XMnf2GMMIVhAh5R#Ar?;un9?0qd~IN{nu;|!bF64m(N9Ua`#k+ueDgfD$Qytcj zHLQ(F^F%!rI*Tv-ezrKzoGJGEmO&gb*FTRX0oTXT{&|%cCH)b_m)n(4FFE4>HJLhP z$rc9^<@phV*i~5093qETZ;HyM|H=9pJs%X6p~t# zTbh4dIezZoc-!-`@PAY{yi2_8d(XCVzj^47Z!{QH+{=b5Yq<}iZ{++DeL=y;sMM91*9D6+Cay(Y z7nrADupSY(&IZMi^a7m*&G6;QzL~(4f!}H~%hQjWSY<&02RkDbw=J0$EpFtUy_sj8 zi{~TZYd1m#LsOAIJowJy1|+njwW+ zKC}!BJU?0%rCauk-n{Lx^LMO}dK~N*r^yb*-{{9|x}9|y9BGKJkBgR zLe>c+a1v!rL9K~lAS^HwAH@-vwQGu$`^RihYynVNCF_qQa>UcN)`Ga18LZ1Bas-GQ zg&=utJw4K`4|h*{2%49bWh9KUNmzoyt39mF00a-|{B&Hv9lPsK{bC z$OAQoEf2SKNJoB$)LDI?ZeaF8_P8rjmm$M%09x`56n8PrZy4<56*U)9_p(meUn?Yp z9WgB95vt{v*oid{+0WQ*fdwEJxiY6jLWzw?%4mX==Bq8bGCVK0-BJ;jMW<#m5*XS4 znhfgpkKHN<*ZgZrTIMGDCOGBI)xNP%<&QytQyOmz?da{bgW%>VF)8M0IO&YMO^9-8 z7b!5_O?Y(cr5Isb>Yq-3kWoBhczf3qe{iz=<<3A{ixNZU99m7>Es z7#pTb3H3@4-E@6G9M057G)4NFqxrH9W#o*$8VaC>`K6epZHf-R!jESbhtqAvf9*_$1tV<1U z0zGiS;--;;fe^umq)2-Z4X4IVx!_reUL$w?@#qJr)`tXA@YqgP%W7ZF2A#E!Z<*!= zJBcJ5bmZAt>A>VO|@mr7G<%#u3O06H|V+W*KwU9o6NrzK+SUzOlo= zi(Jw4J-F#&=dJ>++3>6)2`TZJi)x?VoITma&=%`azQ8B`$c;{CY})u7 z(JDb%GDlxG6GJx|%WfpGU)OSI2AU))6kXfBlWLVDz zVzC@}l|72;bMFtoM??!Nb{SWkHM(TgfBr|&S*!(*y7`v!E$X@{TPqneJiNCxbp5z1 z8M}MHR($ed?;6*Z%}6K}uMw@;0}^N+4Cb-@UQ~PtmuLz-#Y9@%xe9DG0}#!u?czg6 zLk)+n;ZW`SNsh@-QtcSpkqP}`?JRXr0j`4FIpsO&DLu(L{t3bu{5i3VN85W@Vid6$ z`Zhy387BhwNipTrCvUeShDyHe24DQHXtoGn(@ZL>5kHH;(0Bi5Sx2E>CI_Qq8ImF~ zXbHE~jR14(wuVEuptm<;EE_GGV_9nzlFYxf>#rEg8@@XaP_s=s3vW|fty`ghD#<&= z1Tco=#X7LlK*#h%TL#4Y15kwaDYp64-pxUNa|u9;v&IU8JFTmhwi)!vgD5U?>}BnMtT0@i25c3ZS_0s$wA;!0(xqz-npKoME6 z9r&`3Z)#k$&h`HA-?R_FSl^)?Etwq?n{zF5uIJjly^#!giPDR}*N?w0I@`aw7^C*- z8K)H$uxtcn2cb5X)>5f8srORrF^&O*ce$veYL3&Ed`x{lGp!O%i6fK z>q2QjcKUlC^_j5&pB~`WlpM3ymny%jtpL`qb3Npn4<+BIFIX^K-SJ~`qUPA1Bp7K4>%9--W}(L%50-+Oly?b5!W|s23tS2D zs;j@q(&92P+f+||Nl7L z%l_Mm?N1()Ee;U%EMB^KS)-#hv2gJ<5q7(yC2*RbI9c*JvyccyQb;xM@=W1^2dtZw zN1vAs*@v#AsQP!F{6(H|&tewr&CsU)I^OH3-q2AMq zK-{`QedKz#VE5|>yhasqd7_Hc8#hqeB%z(aUzG8L;G$WHG?p1ZS~giZE9hJ(Hs+_6LKCTXko$?z9TOdK!%+tDT)^0yeZZ&)8h>l?Nx zVb>fHCW0f)_?H|RU2WKA+#a*4){I}~Z4Q$4-(9A+bT+to`w(nl2IJIa%TqbXDbWA- z4Z@~6|Kl)RJP7;)4aEPrJ`Xj><)QGp+6dx~BDm9wie1HBUlG{83o7tARfOW{fMUBX zLVYICF*`fEA9cWl)+muobAgX`1Ec%PjkxLdHAt;jbEPvRJe!P0Xi$}N2 zS_-6b(iREqH~$26HXIq|MMdd1rS;#rLl(wGbTt5r<_w*$S|fOY4W%k3TmlZX9ENE2xj(o5-x@0fOF@jBYsDB)eOah7s@?$Dp8u|nzt`IX}A<^YKt#Do*WG>)%DNSd; zfx@nt8?J}aEPag>Pv12vd`&e51_PkzK;_14Rb;Qy%36Kj)X%!L^@$1h#shWk4b=1j z&2~WebN0rHc{e1?5BL=2iQX_b;_AnpK|zGf_20`1@`2-jZtS}_mOz>W~~SIKd0s-g5m__hBpnWJzI9Ultt_F+Gmh}pQ zqOdqd1w>k!_qTN^BGLe8gZZulte5k%uApEbq7jLC)9xEpLo+aZJ{AIi4MA(;A@_iA ztcc4Ewo;?sFtD~ZSBnN|1LEU;^lTQ5ALWl%YD%QxSXprpC0b7kujWLqHqz?%*QaFi zp#Re#07_`5P!u?uo#DFOO)UhA2QT>YZsh7$Dc`cLze(%svyw$X@;#mJ0=BN zEfcUR&}HnI!7O#I8eAdI%xi~AyhsE}qcRX4|H;XDHd$OICFRepTH+~m6CC{sC3si% zHFZ5J93FGhNgIY8zAsC3&9CMJFqaN`emuK-2Q8sJmfC~Xv2V{b&8Aq#}k5*|9R+EHE-ovFlag%O6`UlRY$V~ z$A_T>=s466z7~3X4IEJD4U{z6j>#d@%M zWE^;=1bpG>7*P67^xr#sif1q1OAM-9?58a_`UUG0U@NKemEb_dq zr3&qNbscz`t|Fqph~5b3CYd#*#c5iSB2wuy{Tw3Q(Ok+Pe6Ze4-Lu=KsU!zvEeVGzID+qb1oqvbDt479miu0Ro%G0f%fpwM)$^8TI)@$6v01@ zhi4RIC85b7;{-~HHt4rvJ@dM;JF-5CDXx9)t6g-qYtIO5u-`F02NPO-Y|cjb%Fpuh zf?;;0ZTCW@!?}Z=c746nU&>h@4INKJ!Qr0^2A; z)Pbi`ChCb$4^Nt#th@qrGt?+4=SQ}u4T%U37R*9jud=FcttP{h0{0w13)3GD~Xc0gC=LkCD*f>1*xRP}2T^x|!WGr}D z1az7a3G@0E&X9R69A-s?EC(%{-_W;4J+7AnjZn>$b|B|Ajb@gLG+jXrBe~UVJ+kXB zMHL^sUES3E{V7}478@x)iw9^$e>W-EeLWHtH-o$N=+0rKbnB}LtZP_;JqR57wZymb zO3R@A^Skb*yDdDhNz1#?({MNc9#!L1UEtAEbL=O3;8fKepae3Ci$^nxNB@3%SQ1`$ zU~IF~y?iyMhm8qg>5)-!>mdgPZ|Yx3hd^3v2eF;U+LY(E8D@GZ0ZuF{4ekY1y1lap zX!b@;*XVTkIXiPpk4mc4@g7yRH}@j;tVPVn259)KIh~tHntb29_I_Y$VPPs`vahdi zcx|ou$H!1jspRun@HTJgjUK?@%u@YyM|Y-?WXpL_#2KR| z-ZX((?#f{Xtgxu3a_;S7c~XK+xI*y$GCY`eeU}1MG+ep+b2ecMifGS|v!)P$;@ z#V*v8wgjA8`IhzZmbX_+gSYcQrO%$LNfLHoKS|~_Me(<^KhQ2)2~mEjbdlvc&IJ-V zSg65b?X};U~Fc3bvdll-oO0XLf*iBg{z5bynJ+Q#{jF`3|JK=lqX?X3+6HuoD9Z z!Kk*fakuw6e2xFhRyRuH18B%-Jk}I34|y=FpvyaQV*S@jdE!??yRl++?dq zdm`Yp`yid98u})EJ|S^_K2}9awQDf>h4e~br2R~iVD(~9cXzd8`HYXxwD0uv%(S$W zRFYuJaPuWQvtMApLtPc1SC|yg_WV+RW#F?9YW7!4os8eGXfhZX4U`OmwaZq zL556!G#cotU=x9nadaGkZ6T{66e3FE#ky<1n+rRezU*;#eEG?{wrP*M8JnQ79eJ-iI&6zipYG|8lG_{6te!4^ zA?n`;JAKrO)Bw_@H2zr`I2Y^~77J2hS#apC=_!GPV`mcR#(JqAZz(=>n@><2zO(00 z5=6K17enQJYd?ao1_gy*z8ZcRz7M*5HS+3;-{KPu?UI(^OLpDbzi?XNl4~`klV__- z?79>^-6p+Wbg?geY57KpC8u)1B?*}*0x3lRF&X1ra5~+0$T{22}^zx1`CP2Ia0aYG;v6@z2Lp8~5T{r;jkzvZ|J!WTr2>*p9hsA3&U~6G%@d zK!y(KqkeY;-KH#LIaOKd-#3?7c?g}5<>OIw7S_JmP-yOrU_)<-X$u7etaLquY>$Re*JM+ zt0YTqzFKGfJ-D**FSl!Gx^DHS{TpYR05iAT4xOI+R`{SCtU3+d_zc!N^YzP>ZQ zJ~L&$(+z|DgZ=#j{euI8Ljwa4!uqdDd=?}Y3t zsyGew+rJ0|Xvoao0}ARQ&tA;#RKHyz@6Y1gg!P+(K)uZB*v;?%B!Gy7)@xk)2Orm? zVVaA5Dq9}60pph>n)>Bl{^U4 zF08aZSo83)>^}c||9lj2=yy%FqEN_*(Yv^uj-mA>b%5@PxZSc!ARLLtHa(@QrzT{3 ziF03{aM`=xSz`F;uilnRlY*0>kzqA2UNl0auYFP1(D0(6cJsd%psp2s)TgiOYH~tC zzJt-Ij4X>wcl8 z1xcviCT++s^@-KTBFo7~;fGADJWF@jl-d+~K!`W7GMVxNWZ{%O-dy?a4A^MS2VP)y zhHFINogH;*CZ!PBY%C3?H1``Dk4DRt9`K{nvs&*0U=w+H2ySsCw;s|BoK=Zj86L8S zqkYj~IKt{VnqT@BwjLUvz?die`CeI~XHVa^7L_hB$x1qrWUw$PS3jk_N4H7{HkWN2-m2=mhBLk zD1lhOy6XS`78`m@yU)6dnq`TY7q=3Fa)q1XZ`2i4no^640#!|{GO3c(OsWYKwN`y5 zn^I39+V5gPtD_iE#)pO$^c@sn8!PMuX*+=@g_*T=Kr%x+?A3-1s zRtQBG$o?Ufrf!{$k`xP>dA`Rl80d~p5ODV(0yA&ti9QR20 zyIIlpWaziI>DyR4#J-~_U$zT#KL!bxb{>NeVH^M$WzE!+!Uj?p;gJ29>UL7-B*h7CA8ed4hzl`|5hT~e6gW(a`f1>=?9Y|WNNBciOJ*a;$d#dU{DX~%a z1By7^T3K?sl*)Vx&+PNxfByZahev1cVH0l;$b837#e(7f8^s*Ppg@IihL8Y3uom+> z)7`_QxE0RZ&z2PRTfiH)u9Ek<@Z~Mc3D)9d3H4**GZx6}l-F3k)42A-_d_bD0yl%H zqXz*L3OSsbqAOdN@F3Il^snBP=ZV9;$##)vyCJ3zto@i?U;p)U`q$Xcwr-`3waH)Q z^?%T-u6c$_9pr5SAhZM=Vc)aQyv&gdT6ESF1U9>#p)1xOx z83G_Dc}hQ<2i>kY%nk8DQ^Y_Uxs7*o20M~SxNiVBcE(8W4H+d9W$`HW!kvS5zbY1) z$-`=00awpf#}0>XJQ>u{?C&3R9CFxL7;TH(c)mW@wl>fVb-?olhD(BXLW8%bBRHIL zl4sK7*{jbS!au9^8$M%fHv~+P!lTzjk)muXr@NsH9mE^MoD@ z`1}9Z$#hh!!dzPvokH&h0mt&Ui~K2cku(9|O4&Pua5^VRBMePT)BXx8hsT;$aB}pV z?JhYKD%-~W9E7qC>(Wl^&Y~R<)bh`1z>JK^oTfB_9{%Tnx*kJNYh5!E>^|q8F8%Pi zvZ|jg^7-o#Gb4U}-ddoW+O4zS!i49zI1JYb5Zm<`X3LW^8((wiSrA&EvTpgMa~kSt zDP%&T=!xeO6VN1{Y4I+xi#+->HsI>fvPD6`pddl@YW2wQwO<=+3k!{r1A~w*2h01q zS|~HleTh>?lLUurl7{aENO+cO7YRONct2|175c45h>X)9qvBt2Wbe}taWT$pOGd%Z zD{rD7;}}2~DXwPOo5RzD=}1ab!N@oUqVUxRXT#*7$U2~DEGwHavK8hXpnyb*r5hS4 zIe6S`qP!dtr!g8&YZYM@K^l>-RlFDypR$Js-zLRcy!TW`*solg5}f?W z@vDEK12&3S{%IaJnZL+Z+bx6gxX-+dBQ3@6McQ3-iA--h9iwyQuSnhmEUylpOj7 zHIEgK{h)tSuYz~G(r7ti3Vo4>eDr1*p-u($ z3RkFaDE{)w8?`s-4L-v)KZn(lCXbf&HD7vh^(fdXyta0ECZl{~&3|rTZ0y%h_Igce zUl|-pZAgsRGkN^kFcQNqfA<-<@+{liMZoThp4pr8bS`lUAPm0dn;B_^@G2PV#HgO|pfI+lkj7^4 zv*3~p5T7x*6Df+3>hVMvk4m%Y+_sZOITXfepq*LPzzbZw}-+p!^H z&40}=NK>lYyYE+5^wJzXe?QG{S0u8gbG)zd>=Iv*^A zrn~t+m@T{GrvQG=IJe|OYzJQkjzWvFbbFN`1f8R3dB9wF$fnW=3B=_5TP?npWO*V{ z%NHsj;`uL70b#jzVy&|aU2Q=kJ36BXY_pr{8Ssf(e6RJyoO0*q-p>%(?+60;N-uu8 zvDntBbOwBj4LEff;8|T)?-k3_X|8FV2X^)|P%nvXa-`sqq%6HCgf_xjLt9qmrKFOz z1A0~gs-PjDbe!2B2TYu0e5cXTssB+q@sNB9%Ee7H^&Kq((&o~@baLNX^ICUZU1OQ= z`s%OIb|uI4U!jpJ9FCuTcd2h**NWP+fcYbnmrDAMO0`sIsD-*s+FtE)5$MYWJL%!@ z7!2lB6x-lDhd^V+w`!nN?6J4y{>M<1QAxy5+jt4ASd{MVMj=L{fE)~`JKPckME$>P z#fw~jN~N((d0h(b%gf^Y$97nM(1*3>17=%tK2wUjJm684b=rEC23lSA3Ap3o;q5U6 z){1S`bX08f4`6~zwJ9~)uQfVCY6OdQeSoff(P^7>*QYl=&2GDaK5eVbeg(b8^H>Cd z(QvZT7Rz`3O4?0S;#s~8q?j)blfz#Q>6#(9R|b=7ec^h1zW#O0Lpe`r2=9I1R|9V@ z4M-)etuOh72Q7|{{cN99ii}vEY*(sQ4-#B#S*V$QHdy_!x}wzC?r9kWc&5hbP`80! zy-#<5!NQ>xkJosEli}Ka8INXieg_^9+EW0% zPK>_eFrFN0l^{m$Hf_2_u!n=h{}?T96^b?h4T-I8shmVw96Um(hIL2YNj}!>AO^V> z+VC!!WK{tnQ!HW!=pB%L(P^vV+GEVXJK$!Zk^^LpKhyr)xiyGgO2~_>v{#HpklIs^ z&XP*g5@3x2QNQ}3SR;SYUnlh>RkTi9w}as^L*+KRyw5>j-P?_f>gLNev(<(9jx zrVYRr3V-0C`|Z;Kwd`Gk{BD@YhxPjiTum(_v4xt4>i6I0u^2QbIbh77U=x5(6>O&m zR1Q#x@Hly4UxyO>D6aLce6qDm0j<^4AUjSDg0`);-e=2V>Jd9no72pq%@Br!{S(C} zJfZl8kbg%S*e?k7ot^)@(8>dw)ay^Ld-+{d+dS8_y!5@(q)V~sc_<_72ml>jxHRcT zl;dYz?dNJe$llJCcE;L)6(9BopnmwEcRD~ePlcgtd3qKFpGJNMJwU@}DxqI~oxR!x zz#{2|j#mrN5>O~bIz+C`wRP)2u{1b1(67_4RnihL5IEUeUFtjeO(MMQn^%^%#AI_| zb|bn~-VzyQ)bEP6hnQsQfO)-~>aClAFq> zD5C<^QFwy(Hy4SXXC+#b=>Z9`5%n(`8yjlZ{KMDA7vARpWjNzgJ~QnzlPuV>@bOt$ zc%R`Ax&51$R^Ra?LCB(-SGt^%`*LH2Ldj&9yb?OO2Wu*f(oOZt_kW27?wQQfBmyVr zt!lB$_E12!LextIZ?+X#ca7xdIRPS3n5lO?e9xIYK%%d zd@-J$kf5S!2(T#K3t{%!kH4uX4-ynqM`}f%jr!WP$)CR_r`|724J-^a_gvDNoCL04 zMNF$NJwURBDV;og)V{9oyu|#UfU8_ml=<)pM{)NFJi<+f(gX~V+QoR&Ca~$W3v8mD zJ8Sf>O{ggPjE(%pNdmUP3<8AtGS@T-Xmj2pG)@1Oc=Tf$I!=R>BC@lp#KY#j0Qnzu z;L-WF1$YdUdUb$5?-xKxxU4*r4t4aXN629%Ie?sFCp^9X>o4verD>%HnDPb(!gwD4 zwPQq|hv(Rj5=eVA2$!e-FS8Iah$pHLT0LwUH)UV`K|{LFizPYfU4_AC*&WmkYwC9uCP;pIfnhRFmz z{QS#5=p>ws3>K!O)D2VIh~)$nJDx8k@_|2M9iTVIAqJyN!YWN~Sw}XC6AozV zTC1SnR@g`B25K<5KZK0XFRK~T7aT|{b~_I$)9HtDyi!Ki8I8)^7$<I3>%EBx}nS&hD2!O(9`2?>Z%ekwQp z0XlSg!TbDWFKh`h8HH;UXfvL~Fw+k%avSoP-PQ-+0wLQJbgO&BVCm9>RcQvtXvsS8 zAD4kw#+&w(g%3ir;`!sgCLIdGp>A{*F;C}>s*jcd1G5>71HosCetLNT2FUJ(n_SZ# zh{qr#F>qFba|mM$Bq+txib*VHssR;mlXjb5lw3H9aic=cy^xX>mz&3?iAeyv*=XP+v^1qCZw_p$k_SKCxo4aH#1(q+<1>xJ7Cth_o6Om_`W{Rp1p z_^tS@bWbffs&_m3_>}qj`uNPu%ybVto2>Kpdf^L8a}c~gJnK2rm8kuNPs=NYF%N6P zNy>WCNy<1C8A$tb(Q)5L^d0ENd@*c&S@f)x{zwZt4vUkkS6)3F#c^(x1oYS>0N8^u^{cFc-$=tJUrG=wq2R;Hr*9nLccs;OJX<%tl7LZl> z)EynFfFj}KV5cg;q|Pwt){NbP^pE^v7uCj-=?Q;=YD=~yRa`z(!)=Z2=km}?IkfY$ zC9rxD)1>Ue)i^)h+uha&m;Q-4bHH9K89Go1$gud~$NI`KDr7l)0t^eAN;^*iQ3s^) zl#ks^_rlMb!7_D6AK&%*hIRkTYolYpxlI4`IhPElSnVRKemc*<5bXKMp3^HIy`3fI zbp`Fd82&m>7ZP5{jg=BHJOvUDs2ebR^skBHA3;mMHQ8dsR#n(RY<>52X&ez5BEEE8 zAnIQOL9ovCr=W;u`jgF zCunl2yDn3wym37MO!Mm(*yiVSuzgV9vxQsU14(v{)zG5W>ho~yQLA>6o_B$uyww>H zWcZ&ak^v0yRSxS5jhq^dzfV6C{qo7JLzJl118HUoIBfRYc&z`ML(Llm)_!6R_BQZO zTg4CZM2E?)D)mRzpX34_Pj`E}i(EE9VVXQ@+Pt4@y0z$Z-RbGSuk})kAv;NRK2&2C zPC;~m#?{z_hXdHB*wq$hszJk715}WXLO1oW$&@Y7$5zbBRuOCLE6YnQccEQ+06dy> z%@Q8I)-=iC@oEbAjvLYUU*CC1_uHktvnlTt2)c9W#h^qEy~A-EroJTq%3bur+qHMK zRQL+oHO}-6JRd9#f)KR+ymozZY%*iA9Oz+RXa=?nJoAB*mA;dK_RwTyx=Gq5|Lh#> zx&GqmUa*W{c*;vOr1VYiacPN{WeL>g)_;wQlE;zxN8Ad-^nd{lc`$-$=Yh{^_C~9m z=rUP2g3i{%vE-UInj~3Qtq}%8Z_BcwqCW3VtO1FuO_*z^+20oXi@`>nRQD;c5VNqT zx2%ZjdBnt9oe8ba^pNM&9cQ2hSpY}~JV4#(pF6CI)u2zaC;#csk|G=CZ%5jENt!Q3 z0*R2g;+^DjqyI`mR$RGs5gT#zbdOmL4ucQHVw;lT%FBJa*)@(V4|D^Bl|@Ar{J@Q1 zQil9#YxpC%fvg`R_Wl2WuWB z3r#ywWOo^Aj1R&4+MC){>di^ZwC^K$=ssNU=9`V@G(rZu4zXGQYT}dAoNYq4vmVH5 z6!S1eIgeUscLJOF!=P`?2J z0KS~*-u(d{XI9ll&e0lUU%W<#x5jw2Eb7We-AI4N2e=41tbLY;y!whdgP}$9?Ax1n zdvxuym`NK^z%M2*`Zmhv%VX9#EXp6k*_u=~vOg_n_u!8k(zDf(tC1vhqaNHE z-5CK(%e&*~JSYl3Kap`q*-#DEUqV&+!d*jtr zbABqVH2)Y~*xZ1Nuw8*2xXUvc0f!E1WgMD(9dT(2!k6c#ty;Dk&QGp0`v5;BrHGM( z@iVMydF(agslnu7*}T4`rK1gO)UYMp8wpYtpM8gkI`vZcBz)j0pRuYVmYO^@Y7;Iu7b=%0S;XLyt<@?m zghmYYN4V3^?pJHPO0C9iz) z_(9Lc`{&xrc6Xaf&oiV#VMD}Jx+Er`=DLuu;k)xVM|xsC-tk(oyqK5@7C;K`>vJO+ zajcU>9T|-DHSBr1JRwR`kpj&4&7#|Ebg?^a&kGCsam9FG+?6oYNl&E@B=gv(tW&$HhwkNSt!)=!%$ zwJXJ%tu)WAk1mgn`Wn3*Jxv2Iph%0c+JE_1W-arIA1zQGJxp=;ihr*b8xtYlX{+G*omw zUUul=to$mfm}3`G%RjA&BmCb`Wp$t8?iMWPn9DVMAani!0XN(K#; zTuO3Fq>zXjyP2r8DJr*SGs#P6Bqq1t8T-D^@Av$l=f7*q*7L0PIOluL`JB)B9OArY z>zSvMX9dT~<}*rRwTC+cOY;K;8sAs`o@#23_-949N48KJTN&(C=?v4-6Q|$#+=m1J z2+DB@THe(p5oq`l~Cm4{{+^#f8Ef}MJ%9{K%>^#%{>QOPL+D-FLH zxsm=O@SC?REQk1}j6#WJ_aZzziBqSgJ zo1n_7*x?!y-1V~QMK071{h@xKD{yeJ?qGg?lqoO+ryi7b|L3-(-Q8Z{DC3C*PwL1; zu7Y5@s~}1)?MtPR=!s1dl?_>*5tgeB6VmTSc!;t6tSUGfm+(967AJ0V$2?WY%z*DQ z8NCL=EMR3`oP%|GoQrkZ^fuVQ+I8K3rfNCNI_F&HdKLuH(Pk}8cR^UitSV=!xS(e` z;vZ4FaO|VE`6%F-f$O~YbidklAY~LXOQd6VY9SWL1Bf8*12U1SZ*FiaIx&9*Mp}Yt$cr5WCSyZd@ z@3(BeC$v|2#2C#h5$8GWof&DO0=NuzPTK^l#VWWNQ6#zq$4=8dtvn>+9_*7%8#`9U zony}4F6R~(?<*7Deo*dH@rG1UUVE*)b_YoExOUBd0AHzj(I}a%!=hTKxED6CvV%T+ zgIR)Wm#0TXW4BNL?75BiCgmWp{k0N4mBbjmn09kMqrJWqo;%gJtMkm3h0p#Vih~hl zWs+x`i56RSU3SJjxop38FaIb@qcs;;EE$nC*SK-F{ndwmOnoi6)7AkG^)5}wWk#KI zIp99St)p@AahCah{vb{ED8F-5d}ZqIj?~jZ>+U4gmdxA%yi+lDc#E&>XknX)`Y9CX zQVhYtGyzF{rJ@2Wmv$@ppM#!p8SQ5T@pwTBbmu28FI|D%uX!3IGwa-+O z%a-eYGgVb{tsNx`f@OjNp^w)8}`{Hor_;o z$GcDf+wzCuy@ow2c%)(30ABBFAGdi`r1=2oR_+e(5bE9o!vu7x3<=%5oX{jK(s@Q9 zM42opomZ6sCHr!Dgi%VIKY(kNi@(g8*s>P(&5iYNDk?ysVn=W#s|S4JiqCsnlI9Ql z{f`S^ym`%uXL_F@>iqqTN?J!xEr~>oXz|Px*so(z92CE^83@duzem7D)Qpa+wfCdC zGY0No`jNlAK_PbdO@l%=Mf<1mBOP6$Z?Y*;=Ok}`gbI6w^wV&a^PUFHuEOC|{-NkB zDS@ugu33lGVuuhvnY_fF-wl`IP7a+(BtOIu1-ejD?k5$LkqOHyLx>M-zMarT`Bc(A z?!yi93So}Q6+p#14itiY8m7hBj$Y31ZkN4;EC=kesE(IiFqi@k{J)?j?5EK?7+Y)0 z07USD0}GY!p5>C%^`~#QQ%yQWW7~kl0iry3}r3#!!yC%D5E)wD|Aw z;*FV;b^}zj60TWqMMC&7Z0etXVtHOt32>&vMzSyLtG+S7x%=XFv-DGIb3O|hJGGRm zsydC}!>B;9N>Yvw_bhaPURJC{{x9)q-_71*uV+2rqi@e_x`-qGSf^}kP`1@|S-UQ1z zS{J;FCQe{AhO30~4$bap$n4~qW8#S#2%(*LZ$n1s5S)4y+TD8S1`_L@;nK|%r@uDB z$hg9=YO=g6sKU8oUr=qZ&;ETM9+cm%@j3W$+smoY0oZT{|C5Mg!Dmp3!rmHGrSPM3 zV_CQ1U!;zY2L>){>8C4 zrFlciu3l-+UOWyCpnJF}Z#%!@1Ij*;MV{SDZphjwb`)Nyb|6!m^-LJbJ9G%SQb#6} z;gYF%HP;9iisXaxz73`#SpI{2iCV=w^!`A0 zF75_{6?P3mTI0cG(j90geZ01J04U>iqAr5ubg%;WqOgqt2huBI>Ot@>D*lWQY)x(* z+&cw=WRj2Cvi?sis>+)-RAIR`U`j4*7{CFyAl(TJ>R#VuhFpYRA(Nr1#XlBN!ekUe zM3E+B=I17shUAq$u(X|c(v)UM^6PX=ER59)*?3r?RbWXa++v#4fP7n)qAtid`EGeN z(l#xMwbFJe$>|z_MZl)!xY(G589`8sbsyNXZA$#WFLpxrY#>o$&&=B4nlCk%oQB_c zH;#rYv{koReQo{wTdRUJ>YOe}Hz{woS+hF{>;mDHcI)bg-Fna}9+j9GW z!r49a5KAhwMq=M{bB9^7&=D)_lxWjfJ8>rDCmsqmx;29;6P)5j$OL{~WrJ&mXU*~Q z8_{Fl#{)0-d9e+ai3~d`cho@|sr_=R@+7={WzJJ?vqAA=*(Ymyzb*cJ08ix6{1VUt zIUX944+?`NfHiw@&&xHJk*c1oL`Ta+%NT$z+)4vc0vX%B5xydB$WB-^Nw&(;;7-tN zqYFiTPbB_1?m6(UF$XZF7;V%)pAw!*?M5}gstPDiaFA`V2NTFa=w7^)vc2I}!LMJ? z8s&GUbcw^krV{sbO@X>CIR3r1zamhzrbcS+2K+Gj1!2BEC-7TChyboHvb@ zhd{m39UPn+{Icvi4D@%@HaJgh+ceb#FukeuHxM_HWSV-2a3hagXq*n_f+dHeJiJJy zvsw=kAa1sb+v)j4g9fI9_eQnUA~TK8#p4SlZprN{o!=m~5k6+dFD(@GmBRaJh*3g` zi=;3U$IXDr<)@Vo z5i(84KB;Blsq@VCB0M@YdXI1;Wd~^x2L@!ecXHr}v;6GL;1Y&Ce~rk{83aDN{odKV zc(xrjPzA|4Y!ByPUc6M-G2R=_LYz3TX83P_GkoX1N0{A(b}DjbK5Svl<>a(>9EsmK zHq+VJnUa$;H4@qE+da(~$rG<7jx~p7OR^vGmB;`V<8mPNg*u zEoXOgo&pLqz+k}+r2wgNfPcv5J**nwV6k#LSZJ_VG^_xJagPy12~BQscuf3dpo`BT zNrinI_TQX03wt=V!nCjnqeBRNjVr!2@H;nXL-z07>|$YVO=*?S2`GYrjJgvVuiK!S z;w)ith33;cK!>rhfBwNqU_*R)xeY?RtM7IUKq6nd|0B`qA`u8TOVJMzp0K}3_-BPO z%Ci|Ap+^!WL$SkbpJACdM6|kQ{?B?FM59P}aZE3Q^@u3WMz?J^$_`LqP{5#YPg#uh z2|5_*?&|e9e|HuYbjST?A<{d2bVLZRA*7kl0^#YUM@utPg088K#c+mY{;LvL$@c?0 zk9*rH75y<%RMl{&;m)0Yld;x}wWlJ_lqmf&Ze_8QTfN@1Pi{Mj!q5}Ql7>o@g+dLH zPJ(hzGcLnakTB0-G8qTa`vpp>9BX6p?4a_HBSPqMmr7n_5uk?@OQ8#7{&aVAyA0Ej zO2dwtKTW-Yq01}_(-k_Jx050q3S^h$=Fu6b_&oaLR64WfoYP*l`hWfmIeei0p(( z&~+^O&j;zSfZ`~tql`99yqxRU zs*Y7QJP zSYfW34n@#bO_*j&3rK9=H9K&yau{xZ8SDe#kQW?Y=jNg~1^R@+%hed|4fuFfB5P?~ zgq{Ys$}?2K8n}FLs94%lLFXiL;BvCMsh0;p{K3b)2e>}Kqk(ON{s(1VxxvBPYn`1# zBzt_FAy*-3SZsp6<6T!*%|U2k0WvD-zWwvI4yne>Ia`>}&KGtg8B~Z4HiDxWCMlU>wj~Qsu^t!Sz8{WYYlAlB!>PP~C{J>0u!){0Bv^N_ zck%CKUd7XPl^eq#HvqBT1E}J)BjwH@d>4|RQxY`upb;=4=BEO;Wonx8zg#zvCe)b4TW2A=g7(v0MY7sXE|vP$C=#)Mf>@P<|Zx3uBVn_ z=Od&0wH4=DzX+?Xo5uaqjfSWD+Je@N^40HHK8EgN{OeB`JPE%3beXu5q_9;}=Lmck zkSmPsr9QB7pS-SCj=3eWb$AG!e2ftYm1zJo+hNGMZPJ;f?VvtibxK^n z)b8kneOh?nYs+3v^?f-$U^oSP_W4n+u8lAX0M0)No@8>1$@DVQbrO}l<$jy%>XSn2iHG-+g83S>-B(x?Wcytzv z<;>&aL)kYoa$y}F8>!r>4UwUbfy56)P1iZJbwSGEd^l5^yy~bX)A3<@}SCJe!?3=G+;D ziRaR$AihcE?NF+44%cs`atCm#xrpB-%0t7vw#SNW`+ztT= z1zZ?_aT4EKPNC45ZK*$=|K+Fm_KLSP&9tX00e3(WB<7<-NuxpDJ=DI^AH!xO0oufb zGSNkW-K5N^!0r%iY;cdme+p|^GF>|EFnfu^;Y@NhuxWUKGjBbXg4V$_AW=8atc!sw zb&Fb=iYMOOzkAlQDyJ*Rvhs87vH0gu>{>U2$1Om2*0hX;8&w&Bstw55bc0aRneGe| z^;VM?ha-O-js$e&zT#HRJmuK0ty*@PuLBN$dV-J!^>NiQJOM&cBNHOC5EME<$kQHy zScS&4JegDjc1CMbPj2#)P?((F$6F8WsNGD8^wa}s98V1ox`@Qt|d2*iIAUAhf z@xB;aZ%6|$CGiRI;d)*6DXzO_+8E>mHAWZ+#zF$PeLO}Yz#FvHXzJ)S*juisD+~4- zc&o9g>bxvGXotyvmJ>i@8l3yn3fhN<2(cpvzGt?=&7fGw0Yw|pZrq|h?SF;?{O2HV zeG)5Nw=nT{R4UkaJ3~!D-)&AI5y9qICCb@1Ew+S7)#P+Nr3h_H+1je5_@Y zreey%k)@{i0qvhgMn+YpaPx#=RrUGJ9_@<)^^33I?N(x6XuGFZ!dA#f-RlW=+2r#$x^weVB(>o z`LFS+P$2V_z!V+BiI4x!YOWrz&+iILYY80e0N?KJMfa1)E38JHTr7S+@$W>W3VO|v zCrpIxijf;7RYfyUNa$T(VYD%&w&gk;Ep!HRtuH$Sr>8^_ew~uEP`j1) z^+(3vYrwVgtTgjX#-4v1xu+C6c7&y6b6S1p;czbg3R-lPebQ4a8QW~nvm=wCEV>IC z&fscXZX6z3*=W}Gtv$qJ5Od@nG>%R?z zNfi!T>-pzRb#_Z_ldHetPyX|d4Ey!Z-B-aven8dsLVe4}>3_Gq&&%INznJq^HL^tiE?T>fl^AeMGmYB>f^hg-KRpc_v@;LaP57 zShn>}-V>KJb#*e6j1p7fB)}0hya0>GD}lb$vg9X+1uMy`j9E*YNY;2dCS{T`klK`0 z0)B8zlqyn@V{1}}C<7S2Oa86C8;R`F(!<`(VB<>jTJFnr|0tFlj^6dESf->YR>I!t z_?MATkOz^hPR`UE^z)N!v;oEp^)RS1lv%#j-^Xp_mAiumq@q^4`FNmOp8&zz-1j`m zT=6E8J?1%-Wq=mlVp=>uCfX#t&x&`1MMZ(rulS|U=~B2jJK@$3dIEh=Iz}SRzWKS9Sa()c zNle#cz0~A)x2NM9NYVEG3jJaA>wU&k^&b>%pm3c`3VGiMjJ`8tr&yHfw@;K;V2zKc z4Qv4799xGB_(-$vIM!`EQ_5_TXfCq~VLLl`QzRWB*;CaooChFKDC-$VWR7`8Q36Xe zhg^cxq6lG4t?Njo%=4~Zau1~~Jj+i1?laB=lDby~bY3tnTzBo|zYTwvMSTq9VjoB% z!$EQ0QAS2fKWpHrta;I8VFU%@@nEIXw9!v@9i4JrE!YO*?dAi!sTO2TCv|r|m5fl% zC?Oki^btY_P9B3I%p%TTZ`UwGW2|p4%~&r=5d==8cpW8&SzxP%$?)nE`L++`Cv12r zWLTRuPmnTEe!(Q>nb^fXv!BqFM&><=?6e#XX$&1b{n)Q+7z)Bi*CDohrbebCe@#tK zcUpIX7IH*?W&LS$0HnSKTr^%$)GON?KKkS74!9NdI>qwG&fi?qc9v?{@@#E*KnRXt z!)`omJfkcML47;olL`gccJ{M9Y)zZl{iX9v3q66n9N#~gP7vvmtcmn?3W}--PzIDf zw>&2kk|rE0RKsPXOG(A$+?OP6N5hVvffad`ij^;c4hn5Q2;y&nq4bN6Efap(Il>@s zKlll3Ib!Vk?M6BDzlIe6PjA}P$Bob@6t1?K+&nI&jk9v2aFX~GVWCL%VxmPEgTQ7u zON@89J&TEUm^E2wS^6%E#rR`0S~zrvS&-{LF~{I9>DYPc(gZss4B0ty)2bD*;p zsPOEt#?Mzfz9v=PUwMWufA)PVJLx}Vz{wuNMPV=#RFtQp2^pv85Us+|*QQC_Ps#!1 z2|VkyxJ4O)XgzDP!!wSYpEtvR3S&B z?3O8a9DQBho&Wrc%R$d6AIc86XSZ)gp-G=?d0BE1`gqZ;2wIGs9Yv8Kx{4QV=Yo<6nllL#Dxm|G zL!7??myl+q*^J#n^CN0j4!j*FS$j=DwF-rs=OTdt33o*ME#KUmN4JjRB_-&pzr^Rp!ReNld7+?=gMacBD&jqcQzVDF|W4Nv$Dl=ch!bXt>v+%A7 zlbf-LeaU2da#W3nF@JN7{F*=*Eu6xdM`)~N2 z_BJU}B0EIPRvVbJ;Iw%4eL90^oiQFP^_7lEfa8RAwaiHwgm4dad?;%Y%hNz0#EFdc z<{7dGv2qL+i{<9QcGD@@#6FCU0j;!@spK{Oy1Yhp6?RqMJB<^^yt^Tt09nqX*USrS zw$G~~29&r>p?00>=;#oML^Xy+Q0h$e1Hilmp2LsZYGXg&u=tegF7NdEjg1h0^OMR1 z5gA%aCBp}eArM@yS@k;w>N&S(|WdqICK(G~o#n4*ja|eji>c#(c093 z=P58WOx2Vm7TF;O8I)%fX`GgePCTN%%!m#!{l3OyyzvQoi)_#kG zyOl$5L2kkZJEZd*nkUrj$*ZuXY9foz_`2hLW=P<=v)_6v!|G2z4($y&WHcJ<9ab{> zEz-Ot-*stc-s1PzUsYYB@sIudTyv&`QIAjd?t1q1aeB&+BNIQ|)^G)1Pih=236r!j zeyP$aKdUn~MRJow4m^81^u&2r9FHR0<2fKBw!`;UWwkrL!Lfqd4e-0bJ0B**-p^w}jypCG#m8{>Y#U2KRa z;2(a@Bk*;Mw~1CsBBR|EC0>KE7KSZ}Wr1|G!Mx^k4~$xAH^{<6QZXPA)rdvK@TJ3$ zzejUY(7;4M;G))i{Ji7+mO2yA?{2PqJoqd2;N0nhRUj|f)AbENz@-=~$;;R?I@00- zaG;RUd}wn$*taL7aoXzF=EwIHe;F64U-COxLbrntx`K+i!q~mm6?sXbN|rM6!znZ+ z%JF@&K6j$bLPlIcoOg8>U*ZF!CXmufPkLSVi3Fj{c`i^nMh2-xc-q7l5Kf7T$ zj%7%$I_7cScm@{rU*{_zCRzl74%zE!l?M4nD&9mnlT+RCTDksx)}{cB01fcKk8_nX zy>)&)apR-HsF=sTP~TX0mc(CoS(=WGv-F4DB93_McQ>bFI;y{}awcRHmLN_RZFy0u z0MFx@W0B9oBcD~LXqiWi?8GzB+IBA#Bla+{Wb*h>UVAzlOU?D5!j4QPx6q%CP$%4 zhW^ua6RHg=Xoa+SR(p?U9D(2YKa(v#eQiea@p^Kis}?BUW`PTS4B{0})Fd3}d+uRl zL*QWXMC_V-O1nm$XaD$7IddA8j1NxKhnR=;hBW5g?djzkEkIDJ|Nb0kZn$d zjr@HQ;^t8Y@0TBI0dmikNNnWajtTt(+P$7H$M<)^Jq!`F%|H>peLNH-5`1a_z;7%M zPN`u$!O_Sheytc@;q&dCGGfP}g30>9 zrB7;XzOCZ?MxI84ig1JG(EV_a7Xx40rcmlGTK(Gb z?BgFA0pEIS(@*#t)sK$ES{|y3&+m-SH>&FC6@%T3O2B>$v%I?yu8%7v$+)&E$>i|P z-*y4=P_%W|8qjEde7|@{a9W-%f89hP<+sD+Ol2IBbqLSb$Viz~i%^R~)?_Um^W;@= z=)Wac=#ghl%nS-jEilM-isYGgqtVC+Zk{G}Q>~$=qs}=~Pu&z*e7vEDZV)kT{mfvaoXVFV_*alJ|L! zlVuPTGnmY=VHW8k#Ew%@t2jyKhQcI*D}gZ4cM6S4Tk@?1fDAr0qQ$f) zv^W{J`}66UlX)DDaWqX?xPh~dNJM2aQ&Sz(EmPOQg$64-ZSSmJ{;p@cetoR(c$61b z-}No_k)KOW@5rP4(E6@v#;$@T29(%$Q+mI}9;&K8y$%Fqo>$LYbeRCKEAYwTNV}4B zpRUkT(lxp|<^x^?tR~0U4vDbAn_%-*(b~Lp_=XEwD8hs1{MW0>i7vCM${06APuKD3 zp3R>TG&45A)yF-~E`f}DV*WsDeg#@o*nPv&D{JkJ3dug_ap>HxmBd_w@Qj)Y1)4DU zAoL#)tboyU{*eooI#iKz)bc@hyZgcIWErZsu(&wUoGdJ?kyj$o$H|JpP;O!=`JPs8 z;=_2+@&ji#8F8JxX5@~!N#aREymrflxePNW*@VE96Q0b5Wn@AqIr=H>k!y-`@CUt(G9WruCTgv zAFPgq!uSV{_(+@y*0Y+R%>^CdzArJru*zAM5xP3u;8T$#giRAK?=ZvKK5jb&6a-!; zf;3nXdyLvFP#mIZz2Be|p)bqT=Z4ALgpRFc{XFu+27c#k??n8hyeIS-gR2!pYN8W7 zG)9ny=IfBRJam$>#YLq$1SxE>zo^)?)$Z92U`!ox+VQ6CVcMzwXSG#urQq(Uxb9FL z6nOb}VS*O1E03Nt)h~=}@a+bJ^?s~BeW&+*-N}Q$o~dKikM8{EYpr6{DS3ollx|?# zA;J}`f`Yw53KsTi8E94*Yob(>IB#0YSUuE(Nlu(U0cD#uM21nRrmCcy8~Sv~{a&9y zQ8nhXEf;h)xU!zr4``I)ai0_K6yFt=K9`JXfqVwsJqh`2I7q@lgCYbREJwoa1H45d z99+_Ut&yZu3^eVA3eqb2Zk<8`Thr5Elf=P15+*m%@t>sG?YaCsbMP-0e7kEZ-$=e? zFIIT$zwT84S`G5+MJ{-L)mj}L1~w)KJC1w8VM&?TkK1eFw!+a%jSqHpf%17j0@pR9 zof_>8f!ZU=d+v1a=FxAA#{ABlE@7-y!7E8ivHa6?)Z>9}*!Bt;1;91T@@$8?0})Py z+Ew-+^tHv)hc2;D5Pinsti#b+oGVx~t8vl+%}Qc81*t7=HZxG7Eb1j1@H_bwtI{z~ zt9xW|CJ4moG<`?>wGJPAqjYvfn#J#BwSVjn<|D$&)=7HRzM$vMoR)V!+YPD6C*hf>e|(`_m2}0rSyFQ+p-`_^zYt@XyiE7 zV1oPsLoi>3qAmh~)KhW1ddPtmMJPxe8@f-1g&tiHDN~C<$NNX)s2Nq_{~MXvXk30G zB|nh?{6l+u6NU~)PKhS=3K+zPzoas-dx>jc#r+L{p;{o^l7I4fHnd;8zaCAWnCLm( zSUD=J^9$|if|eG_HbC{JM#YTg>qb2t;@Aei(8kmKb-47rYQG2=y&At&*FokYuw~v+1?>%MG2Ven(3x z7{E70qCB!OUk!Cx2^y_AqyXQ3cgP9Gk&=GPHFL6F4=2Vdh*XCT;;jBe@p8%0a^@L_ zfBVfoTHoG&FMd5-EYP(q(zguUX`_GeO;?XqcSv7sOUOdqbZU$rBjsm1&89fsXz$5`w`1VGTZE}m*cYHLH@sY4CXuZ6dYpNUbAusd zRB)Lp$jXonttWxmrb=msS&GQ6*f0Y+msCC-3B<+Q%%;>ap6Sqj88F#-*fjZnGD5cf zkgYM_gA+!zx`1JsCQPbE5uO77HVTPMWl@cFlE$9FG1-wL3VYOFKhM7Rvw8Yn=;!XX z%9+}k-frl&B)$JMqp>M}a|tk^tnxNP@irdO;8!Jy+WN{FtJu!30Y3sCM)e$NQ$`vz zK4oJtsR^L4u*K%ELae<)jeG(kH6a`=aF!Bctx&ucn?*-q7*183`RP(pyR2EMCRlKf z1nJ}}A|1U_>8j>3O&cpowQ_E5<8OCKfaKyjXsL30?*h66_WRiC8**}>C?pu)}xJV*imJ8YGPbEHd21M|q z?Odgd$xU4URpX#q(&%qtZzn4Cb)|e3q{FKfS|mg;Q3~Yvib6GwS4ML#)eNzGZ3I#6WjHnWW!N- z0M2>LB4SMOAi*0g7lwOEB{ES@sqWwv3>(l;2xR4(KwA&Ht@)>6QK{|yulIH>({a6Z zqp_C$Rl~r;Yq)-QxC`jD1+LIq#Xj~8gWOSBA99f1`)E3(V+R0CTX^UX2$NO>&1E>{X?KbaHc z-E1a|dGKtsyAKeaUY6Iin?F&CPJ!aB5yB6IO`Jo@VPyd51BXDXikY$!@?_ea6HQyOE_C*aP?TI=aNq6?BS%0t_elIwsh-tH4i=ccI1^Fk07Xdy>i21`jj)ou$lAm$b33MN-jH z%2fDOGWniiC2Xty=Ps9C_|Lj#%7=H7PPMlGM`$RNc0f^a%3ZAd=-##EWrxK}K$GED zy6!rAeDj&Q@!-M0f#PJ@KlS1JWe|aVs!t`*MR)?ZAP8T9DlB{Ka^Ac>9x2+s(jN$T zhS)fumerz`7NBc5hN3fIF+aJ=UbVpqNlns(=s5=v=h)$JESioP@DfHe z9=h8z`YqzI#ERb_YwU=f0K3~wz%V338HY>y`!MXy{&=PS!`RMF-9ZTmf2k~1W8h&t zwz)VW=Zf*{cBCM$-H0Z3$2Xmlji8y8_H8I+w&$@xV4A|2C}n2TWul*~Gv|h-Hr|A8 zpyFD2dF}0eT;#s8S(Mv@@{@pUO7;_>r9!1BY!nYa-(FMD|8@r z_s1EfHQug12D9+3p))V@DX3N9vTOoBt6fcUFL=B!fk9Cf+dzSQeD<38fDF$_Wp{J- zvO6wa{B#NCXAP69QVC&53cfG7adM@K6$+V@g6B-`$K3$I=xwU14{l{DM6}tX1z8ps zC4K7%C=mr}1dIlNc#2cqKv)p~cap^WFMbUEx15Dz8+~CWIW5T}fH%c9_IE@4*QO7& zfjQwI@R?Y39d$Vc*g4bw@yZ@<5h(y?_wb)6q)wkqVp7##2?Dj`Jcg}Mt(2kLgwgIx z(DYm`VPQtY23r!^>7KL>dU1A*M~oxy#vQQZJ5Q)rrf={HFhQB*1l zu0A;k6qG}tcLLnRN%Cm2{43zm+pyoA#<%QWm5*cd!Hz7Tf&+~C#0G2cD=rH+!q z-YSeMhi|d4?|y6M|A(NFJlhL}qTcKhoRObj^)z`Rb8@3Vjo3~osaAL9>0$kdA`UkGyl zGN=bTpC2O?3d=mHqXhj`nc)snm2V<60xH%9c)lym^6~Q7*KoNQZ)2HO?$)agcv=X6 zKaGz;D{~+;tR6z?XH@UNv)RGzi~G|;G&cxhrPZ z)~q*+)#{(So*vVe{`u5c`sepE3(XVoDHye_K5V9KA#N!uzE67wKCPdNiyiB@XRVdK zu=9(>C96l~#K?=xZT*p8%dFd3=Mlst4xbn7OPw7E38Jfe&gl%a${`xF=1rMYeY z&u`x6_j&7sbnfa}&C_dp-@AN{0=vSk<;VS-!|HC@eztLFH=gsFug9_m z(qq#J91fWm`Rj^V=G90z-}cA&A6kD{ed$YY(4GR{(@Jl!zO?ZD;h^^1=X--QpHEpV zj((qQ8PpooN}pSN*f)_L1iy7kbL#7hR~Rz~d;Pre>%025MWK=kuUxru%htxG(3|L> zVvk>u*uL946KgX|A){PN%}(Q*w~A7)BTST$yykSx14nNQH!sDu>fnpuw`ps)y8!Y5S1=@I?TtFq*k4!w zt*$?`x30e~mq zLG)MfD$pWV{srPZeS0LX`7+3U6Ls`)Ivry##;?8z%=~cnN8fPYu*K2N@qkyKzn*<{ zR%?!7p*0ua{{_q&uv9m(G_yEcXWeX>J-6`vTkitI|9kDZfWh>ID>>UHGO=5-T=YjG z?f0I{1_BgLC4z9z7H@B_?~K<`4;R=jUlXJ?7@W_!mF2>dU1>C=k~EKHUk8)sC;C!- zpU9vxLFklENT@C)bA99sBizVONQRYvsi12NKB;@PmcJ=?cT@hWIP!q-;mO_|c4;P| z^}Tf=^}=sIf7bQ;opcS*=q)`c-gkQA17PZ}4Jd`x;M3pT)e0O<5HP!hBb3#p*F86r zu6RNjgVc`fwhCez`Kt%rqb40ae-_+w;XG)2n993!E4f^W% zB^HPe$M3hz{G!APci`!%;n0`_V&02ad)FWT_4UPg(cIUV7gk3*UtK@@!{XQb^o4sy zZE-K!AnqBx!}S62V{;497Fsi5>2qMc-ugDlgR0%pJkfUQ#Rp4soe?+_>tciZt!-Nx zg~PdWh4UJO!caKe@3>toePv!FH)oVCg%?^_y={l3MaB>mNx)tmcgUcGoV_Toj+uvL1%;7q`H z8+hii!DEBN->=Mlj<)y-hVySe3$jRqEz3V@r_aH&I%kq@cFf2@Kaa)2>o})`uBF)g z_L~iK3Rnf)b0qvqHJcOe$Yks}kXU1209wDcc=*%rMk7!+@hGfnEoc*>a3~%DznPuL zn3Trj5Krk|LKW+11od9|+Zs=c1fNT89qQA80{6>8camaTO-Oyn8i?U+NITztf|^d) z(kKKs*c5E}^TaQ9Y60Og1b=hws?7# zHY(78DFw1x`u2EK#K>z0+peuwpF>dV_CFts+|rny-)52j(`@F$nVErx8ODo%g1I=0 z@$|Wrunx#NKOvCsX|~;)ICCtj#PvALMj{_|Ik!ofsN=!$a`i#Cg%!G%r|-ZdvMf%? zUGSw6uk-XNtGzF~4iQ;d=k=+=Kps6J0^x~@iJ-{18n!=|sd&&Xqqf-(&St@9#k9Xk zPA5E9j&2L~1&)Be>`PBVL8)a{RJ}iTtLI%#Nha#%hKs((=EQA zX=~P=dQ%d)OMc{5C}TIc3c?{g@mXdsqWS3sn7{AET@`OBHz_ zys6)L=4Q#-P55NCMME`Y6eQthHgu2rg;)y3jlJ7DyTqp0u;T4YAG^mIK3+w2CeL;R z8*bm+TbI`RKD0MV1G4jn(0T}A$RZ)V&+5{O?Yz?5ypjmga;sMPmOILnql}pL+*#=h zcvpgf8ih)xUcTU~x>qhxIRi}RkMo5{ZcmYfZj#7Jii)=ybF_MooNk^9(DkOJU3xu&qUeVAIPi*^R4|D`N(|h$SY!Aq{Mt* z#>|E#sW#?CLyGQ)=S9NEn4M#BR5pS;E%Y81dhv8uJ!8P>+I2Tc>;AUasyaO7mN`>LvYO`b| zKWOL>GQJ1?Ox{hFc}uEr?2s=+=93LoYs+c!+?qS26Tf?{Jh5i`vr@O(v~R8N!B}ep z&OA!{wxdo62_&emuIv4?GP^X=Xex!pQ;UYxEH`C?zin}_u zG0D*xEGNjif)p0#-1@x8k}Q{Nk#BBfxpYR(SbQ;o+^c<`b0l=pIx^H!x0xp85?WlvY`+eO#%l>DQe=C2cK7Fej zRF`UI*A&*UA4>VS`$=(?NNUP4FmkfSDl2dwf_`oi!yz0YGjwy=aNg9Rund2D^aXtv zLJOA9b1-lbfmV}m+;YHD{F1FRKpfi%$yz$%5G_d5G4Z)IE=H0izDJKi$U>1l_Zf;rs8n|T z46x2#fX}Tj#b{2wwQMvuMA-Z`EDabLc30$9bCsB4{%=EhhVXUO>}|-a5efJUXf(md zCfd>Xx+(~GC&N1=N7CQq8l*!)3kZe#xCK%m0=Rm0aki@}Xdifc6$KwCdZzBRy)NX8 zB&9+(5-J({ONza;kn448!FuXN;Bip+1)SUtgLG1B6aBytzNzjtkm(`>W2)DStG${LSsF3KV! z&0anyu8UE2W&SRe;W32UjLDnKyRJ~kh6|NUmIv0X>|wauWfXCB<4n0Zsn5A^U zF| zg!tf)8jkl*>TYuL>VMr$CVsAG;`)#g|CqpByhdEuN(B10$KY@8pS^$PUQ}+k^28r+OWi&nN^{#6gUE4r${!+v z?MN5Y$W%`T5@dBKnN|0FjyM=j@3$27pD^*3hQF&JV3k>#Rq zY5sWct|LlH5s}&>MXvW7kL?T#Lb-=Ydb53MtEWlDrZUm+dOgK zy#M~O&T+HGV!gswGQ5sdhaRDj%_bkfxj5i6x8Q)} z`+&0>A&;!%W~60x9S-~X(;^tQ0Q#&Dfi5M<1N4|X8|eRcQx>Uu?W zegC2e_d)_H?xn3gU8C78X~~L$FS@xV%760MAfizIO5QC)^_5yRi7YiFRe6%FU|cBD zzfm}w$ZQ9BmyGt^)Mj}Woiv!r|DWNIqUEYMf$?&1aoSv;vRH=)9)Lp}8ncaMgn{XS z6E2Q`se(VOu)qm9B+Ws6eO2aQe;@*3^C&Bl{%GW!?wA0-C-&;dix)2Xd6AE{9_zgN z;>TEwCNvj81#Qa}aYV}mlp+&t04)FxV{w$OJ@pmR@QdPOM)%Dh--09E!*4M<2phEP zdG`pn29TsMYyt^X{TTP}C?WzjNTj|YS5jp>+hu47;RcK-&$U>ng2YUyZmM+&_G<8a zr(RTk=dJz9iaRB4Ufrc8&+0<92lv^9{2Qne*rjn9gMnNTQdC#&=9<0wfLFIe#j{fQ z53ZUt_k9S-1~!G4Kk$SqPY&b=ZUL4AQ#$Y>hedlC)a6bjf~$u7|9IT_EXLFSf5WZE zKz^`6h$rmn`45MvyVkuS3P5*o1pbe2IolqTb=lIj)w0X7D-V*ae*Yi0k3sB0gPRWx zTCCR8`}DIhV^G1(HA@o0+^H8HGuPWB!K(SktAOUOA4;IG$$OPbWK9x}n21O$r_6Ii z!$jXiL(&D2_h#m;iz{v-_vv^EF*G?BiM_yhw}}n$)=~Q@GgfO1GENy4>|5cj)o-OU?|kp)!}Fl|!|c8G+H3uOYp)Bw z6&fWhUeOGE^{bEW-oKjj1l+)W2ug)~t%kVDKfn0sZ}(SxBtKq?qld=-pcoElg^yr{NUVz6igb>#=vops@TfBnm{ zRlMlm*v;2}&M5limo4GZ%YR*T7JTZf#&7R@di}TJBi}Zi83B;;`ibzso!=R&$J!mM z9eVcs#MwJ(f4=ifP|nZ`9zz00Vhfh%Zr+HJRt_go*{ZTs?#$s62jTh6QhJJm9|~^m z63lO9tpn*S-g@_rC0_u)g72=F_N^r!DAQFiW-~kf`EM!RU2+uyBugOb1n#o)Gr_!L zMus@vERQ-TLHk++&<7(EuLg1t#Qs?SOVRL%>=O7wBajmdFoV|L;Rdk#NK#^Md>{W} zpyNs>JUjukeLI~unK%(K`QbP>D7Hd8^U7(*d)R!a{ym6DCTEl|FC0Ybpm$5^?SY-k zkh;&yjYL7&iKAE0X@}Ez(aq0yhJ%J(%UDK(fBtaz83a$7Ufmyg7V}j7bJMqf*>SU_ zITkzvAdddgU)4hZ)txDUwn=q5|U{C_`GK(d3@70$|NI)+jyN&OGWs^3FyO~er zJ}z)i4KjM(`X=jvb>>Uiv^}dX_>8CdM?punG_d`@M?5b4`0=~{p1z*O&eOpK_8Di7 zbC4~xchN|RY0BddId$dLp7}cO9k)9C>xkQFBY)tPZMc%1I5Mk4mbeV~=SFx$NQ5!# z^HwbbGTKqFaQDsUL(i@?rTzKn^PQjk5?@=g6GXFP_P1cm4s5!){FNjA@6Vq!?wI{* z-=~Lm-u@x&leD6!ADVaiTfwVb4zTab(+ZFyTeneL`+w}rJQ(z*_lx-NUHvtEip2*# zcKvE+*HvqcuxsnxsT>wN+_UG5x2foNXUD;*bFJY_RFf*>CohS2GZCCfN!TyoNeABoVB6m%GNvC$%p;l35}DsP?0~ zIh*cokwJW?258bjVWs@!|55&)@#wX5-n^BcWo_^Dzt+{)-;mD^b`PF><5%`F@mc_t z|2VG9)vPO(T&hS$m=u*Xb}((yYaq8Y+);$Z2g5n)h(y*Y!)Wjq*O;H?_`8bfeliGYDX&-kL8RF$9&)zw6=kO2kP6!c@ zf@j<_^8r7k)HV;?Nh`V)yZe{X$-9SkUifKe-ObKJL*PqiUGaAZCZB$T+9k0kKz%uGg4&P*d{my}$m5^{FF8#t)E1uiukz{CLr_%w#4oFPAK*o?`TC$Pnc9Ptc&h%kZKe|-r7U&PS+6)!WXlHA@tj8S-RnBw# zI)#o?uILEp`X@-QD{goBAOljh`1y>zB&A{9--X`TQ9V%7J79VE=E~&@X4c0aXMXdyMdw%Tz0-Qf?Jm#EtgjvnXjr_Y4&i z(uDTvJ=MZ{eFBX&WHP?j(Q3_#%@!99t{_U%QFpB~y*E(WD_h61O^SDWtR?swX`L;AxgK+@6Neh7CN5Z@XHcmS*~nos#7(ITyN4zO zG)7x;nS0eNO0wj}XB+$$NZL2{z8-iu^7QE^$BvF9968!Oga1iE%cD<@b(OSqzkdC? zWbEzRgkw9scM5OqSbXc%ukXH(Ka-_TCcLD5S%iov6I2`P#eYf5H&$@k>+iT1#b(@b zAI*$;cC`M^qS*7R?)+`1%e`P#K)tg(b6JULQJHV=6exn|EcWgv%7}c)5I+cyG}Sn3 z4KCd*K;=1j99~fG48T(YMbGsPtbmL=%+71N{>O%D>=(K|&g?7*96nr^^!Ck@_d>JE zjLn9mh!Bcfkhr;uhhHF!A3f4?y~uW@AHlRbNmjl3>tdGu(c4f6g# zcJ%`veEM-q!BaA25tcc#RU1>^Eg0!fXZf{ibv~*ro;gkWXy=usJl-FV{Cs1}6ZcR# zuRhbji@tFc+Z#zVpQ5QW{*p_ie901gx3kKTo}V%-R$pE*EEX?;P5WFf6Ix(8Cl z;9)vdb8_5@752M0`U4!-`~TT-{M^0N@=;l6`Vf_0fG%7K(}d5Z8_(-w!e9G(?bVAi z>(1mdkMavuA`(R`_KFVNNFZFB)4TFYds*cSeXzK7L+{fg`wRn5WAUxMf2ZT_8xP%| z)t9t<2pfGgB42zj4?(_Yf7)JB*c)4pAU3TQxmFncISzaI3}lrk7)$fisO`Ld!aKR-l-u~;p5KmE#Ire(3MO-Y7R#B& z;EsvMlC9Zec|GnHc9N0MGc-)2q|b1^j*UTv^s>t{z9DnTWY>wZ&*{wjVeiNOd| z@AY#0xZs)l=Ot{v`pk@fELs)C2qoeV2TsNK?Zjo~UN6ovnnkPaGaW!=-e%EFvG;JI zv?0>`K0e1HkP(HB#QYR-A;nP(F$~lH>@bwLnF#jmbaq2Qy5Hohd&e-J5@<4cl49=$ zTbHUUZl5yQt94ajB@QDyl`)(-$dIUcu`q5_n-hIAb7PvXU7}_QWkh5v89_hrTYFSGe&}ej?zHUom^WV3%jDV(=w8XKMRBAitY5UX7oB0H*y@$^4HMA-h4{>!e@%2Ck zM(z!t>OF(3IayCV$E@QBnkRlN`|B*{9i(gua{Nib)FOGL+YJ!(zuv3wlH7P5)tdZwSJG40mf@? z^4LtK@eD?DRndWMj`nrG(#L(!L z+%Jy6KG%|_iIXM5j0_It`m4MfzyFBr@<0fvyo%2*C$!EDj&@gju#){jeTJ4P*>QuY zuoT-dR1*8_Z;N7R{g-GIrm4dB`RDW}mGpixuzmrnFN-wbub^23sy3^%%s6P|$!1H3 zEO|7)QA?;kfN7j6BUr!Rzg}c&FWu;cj?GMtm1rEtF1}T2 z-C&hu*MrZGCoF?>BANgd*D~yB!AYbWKm54P|2u<$gSf=T1BmH-RbVm;{r-W$ zZ0L7twcd@}HH0?>m1QF7VsZRq@#UBR@c1xSSz+hoxC|kkzM623rj5*D&pbfm!@!)7 z@$CZ=o z%lwXR>8JB6S^Vew5Ad(DeMr;3ej zN(N&_1GM_(_)17q#Yh7m%Fj;%)EIASuh+17cu`|+3Fr(_*4; z&}2RM?1;+NU{74KQ06=BI_N+AEaV<-j3BS=lg{8MEn07uJ-v`hRdJG8947I%;B0sIlMek7niYT+uEZtns?Kf6I2>a6Zky2vISErumYXH#0U0Wj%)G z`+;mg2uXIY9U`wqQ{XRM++FS3BW23f`f7tWe~Dk-3{T#bHaA)HW2HRABFVw2i2}p~ zaLvhK!Oa9d$smD8aKcO7+`|4a$1Dn>h$!G3%Vz0%RBS76sn}f=lRf0vWHm;bA3+I} zHq;cN<_@R+%c!g#2-`avSfpalPpg%^VZ|~ec{ImQT>blGx_T}d&oM_=+8E3OVuTVb z6iXgdeV@l*GP@0DbXXyUiQ1Ed;^aI>BB7YkO|^I~EaA;W%d|PR7AnqjZfF|B)^PeX zm(zP2DjZb?M_PQ?kGh&3v5Nh*ijDb@hAEj%gDb>-&{rt1IwqSG%K@J}IS&sCJ7x?~ zr#>MxjyV_Kx)X=1`oosG^`ohwT@wkhEJl$E#ilzl1LMdV_8K(VCPB&S9QAyiQZKhD z9vJjgKA*)bU?wH2BP&}uvpcmhrW#*PoVO?4MQls-7UfGIWy33pz<$*Fa=K&cMZJi! z&1y1Z0D)1HC}(gTA>>=~^uE@*_pJ=02yvr|!SvybC7iw5c;11qBukS6^&I`{!IW{@ z0Gg6ji#T??ow#?gq|9!{mdbiv2SIU}a|R!UVTr^5PmS_4sMv;!1{e&WX=2FZE3o67 z*?bmS9gHMKd9+f`ZoQ9up=CKRTblj5OBnp3AW^vyMJgtWLXwapk%dQ^erT{2>z?%M`)6IEBr#V|+uaC(k4D}lY5>!=7dRpbr0 z&Kk_;(hF^-hPhzQ-u(2aw9DNiA&j%k)gWV+#GW!rq3UtOB7YWSNbfu z<#a!R&d>}K?mMi9H?-4aIU<3~d&ox#C|=r&lw{`5O${gtG{RFT*rb5*yt+J(Xb(eZ z?wEZIT&g+^H`aXsaM>n`11FOxL(-w@Sp(=kJfZGlmC%u$HfqO`0I-D7$m6LpMAp;L z<}$fX#6;lU6|{Ug_;sb_K8>IA*?o)07NB$F#Bew#6K9phXZ87WU0!CnRsR8@dTfx} z!*3!DDYBe^RSWv0*b)vI?Z#NlNG6!d5!n*mB6ZSm`t}Ve!*UHjEy}GIxHBlS3#(by z&KS;8SE|zle(vpmecV#T_E$;!woe&gn9lcytx;QCb0^Q1W2?jZg7*57P`jB6lZv!- zGENLdVl3RAMhV<-h~Az&WeO@x6N_Xpx-o;#Lp>{(juDZwJN0~wMVATiJorej)h6bj zv>NmQw9m<|M9SSMZ8}3TxkbLs)#8i}$XHk=P@+EOfEhqW&!iLo5pf*uv0&!;#-ub2 zJ4MAVz#*GM>-{4|ivXOdOMl=z4uj6+w8Lr?yj- zR8<(xTia)eQQNzet4qpSGcaemD}#t4(`(pDHnv8m4zu#G5RpHkIu7pAQK3okb5uN7 z=}ND4Brc&-sg7&q{S4LV7*6#>9(g=h8#+F6`eJbuOM@2Rw`?QsfquPDY^Toc15zVw_2#?^zF4@@Ens)*n@(|YKVSS7=X4h1k&VI+SZ$C^dlR2@eU1jhg| z%(a@%==$5nXT(;|H%2RLn9n4iwa}pezq>bB?9M?^Y~1+n)lV0R(llooR!beXQiq^( zzJzMaK1KJpx$n5&!@iy=}-TqI7&ZPS1KAjMaEksB~iKs zEp-*(QT805TV#InZFr$PUh09EO|(EBtg|au-m_?l)V4xl&sKN$cWA;L)2e;Ub4Br} zb^C^}h`r8J%Hb*Fvf#aWgDtuyKw*AOo$+f(z4uYK-WmSEkLkk{yxVY^p+XDTw>n3I zr@Gg9^7RuQzkBoF^BL>wG#ISsT-Owj$mZh5_?z9aq9s=2#T1GR--m;cCfJ0K+KKqs*r7)<191j2Y|{>q{1 z1Fi^#V~yCMNVd;1->MM7dCr^M4W0Nj7G;OB!xasSvP=;@mkG#pee$SSwg_M}$1fOQ zWJ>;VU5~*mP^D1t1iA}l@(mTfWR8z{dOG126ZzR?>^SyrILm58)(f(y$9#^u1Mu$F zvPg3h9>+Xp3em92<9V%3HY~-xH@EWv&9Le1#FP0KQp=_=^=BrU(n;g1lE*@>%rF)p zli$kDwZekd*-ZfH{8b$;K_ywKZ>D!0_9=_;=Ox-Iw#jnvT)<$Z9M;%=hTRP53xkK7 zY%542p^}%mUsMQISsI&Na@e`TxZ2XA^M+M*LTJF>Ex?A-{2Y*b@tk7$&nhxEF@&r! zG8!>?frDL$%y31B-U^xXE%!T%Pq-u$SrbjuL0$y0A~f!MV171E3#wlwvBK<|0_*2W zw$G5I2Tw30KagIcgRYz5OV5MwW3;IHTg-c)E(Gu~U|g`zp)eT%v^z9wsIxfJxV-wj zTgzV$UNL<*ldz$C-i!sU?@+gm`J3C^zZ%*m!t1fw0q$e6F{`0o|F5M0F~;?BI|D5c zd94w}&+U$h_8vkdEUU3TI5CH#nOmvv&PDWjjx>9%vliRkmzCp(Nr(pvyq_c{q!S7n z|8zDCK!`A}63hg~(E?L^TmZonEA=%tRC5$V%7l zMX6=QgmJ|1NH+FoLwB%Jf8JFE{0(?TX`oF(zG>ejgxA3SQW`4Jjdpa|APUEumSH9EC$cvR1Vf6RNP^4@~^LVpR5E{M$Ku#!};X zj1Wb{YRjm(biFX}(Q(KAc%CDGB7RdF>{`rR?a^ice84RA_4+mr3l-Yr0+;x?%}lBq z?G&ikO9fG~1iildK7Th;(%Hl9mATjXa&%5fk2@Vx@w{WJXPIl9bD42u(5wS6*MLkP zj>b>xeI|)QJ7dmZ`UPUPF_%C6y7M!`ERPZuk=>F}Dp23N2G5F4OD6eE!&+>0VBp0h zKiPw>`=;b3d104u3=<5O`wgPmbUolKGhN4A1D5rHzS%H~=08JxQ#Lz$ z2vr4GjbtS{-7;#4U(@F=S)voj5(27=tDGH)?m2VUOLbZpkdpeO%wYB$R2)geUxFX= zH~mY0vhnFBqEnC(ex)7|a!y}%pL7VQ&^n1w3{1sd<4v_pT#Bg5U=M|j%lL83{MDqs%#0}v4h#FS!t|r`sgMaoGbsmf>sUh|64!~K0kX# z`i0ZMhJCUGllNEyc1tWSJr>$syvpu_XL2~+U%E_&Gv4~CE`cgwZ@kQgeJ#6*46t+i zq>=0VZRwx&quAgyXl>MlEk(+5ZQ#A~!#KOa5hUrnPSb&I&8M68>@Q8G>7312%~U+c zW7lS<`B5yT71}IqX|^!1NVd*+GZb~VY00i%-MMzu4DNF!&gxq;mTGS&DUXwx)tI|- zOpNZ$>)ZzVfRxcCWrjmG4meA>&Q?peoD&;EbUjLR4PZTnX}P)CFoH~7$F!m5dneyy zySo=6=D5rI9p^#xpZ;c_J4PGctztit`BrGMdSvSuCt%~#?P>Pcjt;y9MJ>7VbL~pD zwd=m@0c2t6r|;LZS!#BXGQg;ABWuEzs@O&Ny5oI}_FUTvCHSv(oB~a_kHRh&;N}2y z2rkimQ-}^i&oS-eGrc^AFVlhO8x;{jXy4ekr{9g2m4<(M0DH8i&lo+a+xb+_eb)$V zV>Oizp0EF;wX;8HH?yEmuV?2lBPn3rJ6t#4o%XBszjM`}qR%=1+Y5YhPcwzPvTa2j zdXNb6`l^FBV(ZZ#c4j~kjFl-g-Lt3bFtQ60^5RALY)99WvY6^wD0IO;t_+J?m|c>~ zcx@SVRF0*Mf0WLU6(X0byl@|gj(ij83P4K!K(PqYTa4bqI_y!ntJgsC%-p#z8S2i} z_uxzL%|ahbKkI6{Yg1oPV3{*x`xT@8kdYhHXStuPu*4_jhdWjb;+w}Z^V>8hlwpp= z=6w|53C*e{`wtC%eFiay@Te}W^9lsTUK%E#t69ci!0mt{uA|5h+#M_-qVUbkNVCwC z3^hWchN_*qz3Ep#)J1%*@ z+?S8-W=;>NS&G&-+PHkBR6P%KrC;AKx1Y@|CmKfLG-R=d|!h;}^Mw_7KGuhRw)b zpQ1wRwfa5-3EHbNBa^VgWHbvfJ)=6;h9eMiv56a^2Vk3;D_>6JHXytNQGT0sjdm1@ ztjuKQQrQy3EeIbc4d)PudL=PjIc5i{Xld%q0KIsg6dpH^}WR&Pr#_V576Ik*Owz^<#hJJcMBRW;}@b0$(9}XwPL}1*E}RfO3!17N)&r zUCmJK(qWazfPQtBB3W$9wQHT%3~9mpI9#1!DYJ;lDA<_c${|-`NefSqHLHD_N0Bic z4zI@Zjqo1!i)@MPtMr@VUdJpEIu&UMxq2uf2lru0hAjPh{aidw$l|`B8)tbgOuee^ z%{*0j!T;Xln@Ga~zhojyv`zLvF7(;tV316OglU%pz4DC-JFE9e26Q& zGkmU3BC*7XtxMbAtz+oDbR?${d+k`RUJXK6*KUOwQsbF7Rc0#_jU?qK<%d;gm1JEv z#I$N6-9Lf)RKPebS)Le-<%dFsO`v4odoyS~O$hHl45gs5qnD1Y@j zfDr&K=#yFY^nB>U9>RpDHqYJ|VqfapiIJrtc)fA=qOV-B(V`2r&J}hq z{6bPF;LM3!(31l;!HfX+k$AQ@H#JJhx|MyH>%hY`;u=MK`t~b_Xo)M7Fs?SY6P{5B zc*`Xlem^I%kUR0@*rRQHjQ#q9Jlh>N^e7}4DfnhxDZmE9x3bcG{c>{G4qw+g%|!ng2SuOpX%c=ek@ac(oxdv@00ym~E5tcGa)QK==WJuu7ppZPBtQ ze|K|gYG0PZCYbF)+(%}j^QoHz?%jj6&I&zYUjYK+U)2Q&!#$gTz#B_*;A--@#0v+U z5=Kbh|LkIoJU)pSvgl2QGQ)>z)^uunf0A)lNv3b=^}1?ob~q;zQrSqC$;x&O>&!$W zyb-Rd(Fc_aS>xwbDZ_@W9;H<4TrOmJg!Ss(p1D2>hj7TSylkQoM%!HLEamF%>yy>t zj>h+$%pVY_G!Q6ydq8v55z&_Q3 zD`6a5aYpcN_A&0#hUQ#*rPEY=BqPyJ%&;3@&aoYwKK-97W6w{4KWWLC;@-p!y8jEg CK|w|U literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca2.png b/doc/py_tutorials/py_photo/py_chromatic_aberration/images/ca2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9137d9150d1163d281d9585cb5c4b19adff37d2 GIT binary patch literal 179870 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≪T*Ulcs%| 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%0D{>!S$iA;9Q^RP_r6BedMePDdkg5x4 z?%~sobtg z3K3XGOEw(47fXY5jHzP=@kr-+3;59ZGm*DxNkq$wW-MAHyNL}J8mP!+nHUTrFna{> zdn8A&c=kxhQDU+rtcr6O&S(zdXfAJ%O653zW!z=;xhqavFI8;L5%`YZjncm-qY4j! zg$JQ!4Pa$&!KXf)e7hY@=^Mr99vmZBvz6pDaW2`MnP$wU_GQ7l9+24?D%s-LiOJ%* zA+d_F=JZ#%te7;5Wb-r2J(fh<&FrgWvaF|*AA=dp7PI6cY#OPX8T^*v*ec8$$VFoX z$=mUIH#beFy^JlMz$o$`ZOPHgrw^KaA5Db8=oX(LF=rpkS;F-|I>;)c2C8wg?bYBf zxbiQn$i}+c0IIfhd`tDKKA6Xlx-Wo5rV&e%y~kXCCK=F>bt&jwZ{R+U0Oje29>zkW z!J?K?j1s}BIoWpEg6n6zmB}fUR);M~htPZr=?B~RI(abX*y>>s;2xMncscy*uxa4V zOuvIU86##YHdV9C_kp6yhCwHStqiLyRgH=u@h5^0A|zQ6BA#A_jKOOKPsk;6HXW|x z1y_=hW$N-|xjTM0MDjWtZ-I@w7F&#M&3W|XW!Z%{q-u;QaE+16=4j$fuw^by9|mm6 zJ8s3Ch{-Z4TL!#CB!H0zp9haV1_e(u$C(l2Rz;Cn74meLvZ#S81=QdcsgicT4#8Fi zZww~59JxDQFG-)IeKB8i-!o& T8N-7_bFXcDX*_uFm3#l$`!xgz literal 0 HcmV?d00001 diff --git a/doc/py_tutorials/py_photo/py_chromatic_aberration/py_chromatic_aberration.markdown b/doc/py_tutorials/py_photo/py_chromatic_aberration/py_chromatic_aberration.markdown new file mode 100644 index 0000000000..b45553d92e --- /dev/null +++ b/doc/py_tutorials/py_photo/py_chromatic_aberration/py_chromatic_aberration.markdown @@ -0,0 +1,100 @@ +Chromatic Aberration Correction {#tutorial_py_chromatic_aberration} +================ + +Goal +---- + +In this chapter, we will learn how to + +- Calibrate your camera and get the coefficients to correct lateral chromatic aberration. + +- Export these coefficients that model the red/blue channel misalignments. + +- Correct images using functions in OpenCV. + +Basics +------ + +Lateral chromatic aberration occurs when different wavelengths focus at slightly different image positions. This results in red/blue fringes at the high-contrast edges, and is particularly common in old or lower-quality cameras and lenses. It is a property of the lens and appears consistently in every image taken with that camera and lens. + +![Chromatic Aberration Example](images/ca_comparison.jpg) + +Image credit: PawełS, CC BY-SA 3.0 , via Wikimedia Commons + +We treat lateral chromatic aberration as a geometric distortion of red and blue channels relative to the reference green, and aim to estimate a mapping that aligns the red and blue channels to green. + +The correction follows the paper of Rudakova et al. on the lateral chromatic aberration. The misalignment in each channel is modeled as a polynomial of some degree. The distance between the precise locations of centers in red/blue and green channels is minimized with a warp of these centers. + +The paper also proposed to use the calibration pattern of black discs, many more than the polynomial model coefficients count to get a proper fit. Degree 11 is often used, but smaller degrees can achieve similar level of accuracy with much better performance. + +![Chromatic Aberration Example](images/ca1.png) ![Chromatic Aberration Example](images/ca2.png) + +Calibration +------ + +To create a model of the misalignments of the channels, we use the following calibration procedure: + +1. Print out the calibration photo available in [opencv_extra/testdata/cv/cameracalibration/chromatic_aberration/chromatic_aberration_pattern_a3.png](https://github.com/opencv/opencv_extra/tree/5.x/testdata/cv/cameracalibration/chromatic_aberration/chromatic_aberration_pattern_a3.png). The photo is a grid of black discs on a white background, and as the chromatic aberration fringes appear on the edges of objects in the photo, we will be able to see many different misalignments and model them precisely. + +2. Take one or more images of the printed out calibration grid using your camera. Make sure that all of the discs are in the photo, and that the grid fills as much place as possible, as the chromatic aberration is the strongest at the edges and corners of the photo. You should be able to see color fringes by eye. + +3. Run calibraion, see [chromatic_calibration.py](../../../../apps/chromatic-aberration-calibration/chromatic_calibration.py). The app can be used as follows: + +``` +chromatic_calibration.py calibrate [-h] [--degree DEGREE] --coeffs_file YAML image +chromatic_calibration.py correct [-h] --coeffs_file YAML [-o OUTPUT] image +chromatic_calibration.py full [-h] [--degree DEGREE] --coeffs_file YAML [-o OUTPUT] image +chromatic_calibration.py scan [-h] --degree_range k0 k1 image +``` + +Calibrate estimates polynomial coefficients and outputs them to a YAML file to be used with correction functions. + +- Splits BGR, finds disk centers per channel at sub-pixel precision. +- Pairs centers to green via KD-tree. +- Builds monomial terms up to `--degree` and solves least squares, then refines with another optimization algorithm. +- Saves a YAML with: + - `image_width`, `image_height` + - `red_channel/blue_channel`: `coeffs_x`, `coeffs_y` (length $M=(d+1)(d+2)/2$), and `rms` residuals. + +Scan sweeps polynomial degree range and compares quality. Although higher degrees should almost always model the aberration better, lower degrees can be much faster. + +- Runs calibration for each degree in k0,..,k1 inclusive to fit models for each degree. +- Extracts full disk contours per channel. +- Warps R/B contours toward G using each degree’s polynomials and measures nearest-neighbor distances. +- Prints a table of max / mean / std distances (in pixels) for red and blue. +- The user can then choose what degree works best and calibrate the camera with that specific degree. + +Code +---- + +Minimal Python example for chromatic aberration correction: + +``` +import cv2 as cv + +INPUT = "path/to/input.jpg" +CALIB_YAML = "path/to/ca_photo_calib.yaml" +OUTPUT = "corrected.png" +BAYER = -1 +SHOW = True + +FileStorage fs(parsed_args.coeffs_file, FileStorage::READ); +coeffMat, calib_size, degree = cv2.loadChromaticAberrationParams(fs.root()) +corrected = cv.correctChromaticAberration(img, coeffMat, calib_size, degree, BAYER) + +if SHOW: + cv.namedWindow("Original", cv.WINDOW_AUTOSIZE) + cv.namedWindow("Corrected", cv.WINDOW_AUTOSIZE) + cv.imshow("Original", img) + cv.imshow("Corrected", corrected) + print("Press any key to close...") + cv.waitKey(0) + cv.destroyAllWindows() + +cv.imwrite(OUTPUT, corrected) +``` + + +Additional Resources +-------------------- +@cite rudakova2013precise diff --git a/doc/py_tutorials/py_photo/py_table_of_contents_photo.markdown b/doc/py_tutorials/py_photo/py_table_of_contents_photo.markdown index be497e1e21..90611ae56b 100644 --- a/doc/py_tutorials/py_photo/py_table_of_contents_photo.markdown +++ b/doc/py_tutorials/py_photo/py_table_of_contents_photo.markdown @@ -18,3 +18,7 @@ denoising etc. - @subpage tutorial_py_hdr Learn how to merge exposure sequence and process high dynamic range images. + +- @subpage tutorial_py_chromatic_aberration + + Correct chromatic aberration in your camera's photos by calibrating the camera diff --git a/modules/photo/include/opencv2/photo.hpp b/modules/photo/include/opencv2/photo.hpp index 5255262646..6f0bbaad26 100644 --- a/modules/photo/include/opencv2/photo.hpp +++ b/modules/photo/include/opencv2/photo.hpp @@ -895,6 +895,69 @@ CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 6 //! @} photo_render +//! @addtogroup photo_ca_correction Chromatic Aberration Correction +//! @{ + +/** @example samples/cpp/snippets/chromatic_aberration_correction.cpp +An example correcting chromatic aberration with C++ +*/ +/** @example samples/python/snippets/chromatic_aberration_correction.py + * An example correcting chromatic aberration with Python + */ +/** @brief Corrects lateral chromatic aberration in an image using polynomial distortion model. + +This function loads polynomial calibration data from the specified file and applies +a channel‐specific warp to remove chromatic aberration. +If @p input_image has one channel, it is assumed to be a raw Bayer image and is +first demosaiced using @p bayer_pattern. If it has three channels, it is treated +as a BGR image and @p bayer_pattern is ignored. + +Firstly, calibration needs to be done using apps/chromatic-aberration-calibration/ca_calibration.py on a photo of +a pattern of black discs on white background, included in opencv_extra/testdata/cv/cameracalibration/chromatic_aberration/chromatic_aberration_pattern_a3.png + +Calibration and correction are based on the algorithm described in @cite rudakova2013precise. +The chromatic aberration is modeled as a polynomial of some degree in red and blue channels compared to green. +In calibration, a photo of many black discs on white background is used, and the displacements +between the centres of discs in red and blue channels compared to green are minimized. The coefficients +are then saved in a yaml file which can be used with this function to correct lateral chromatic aberration. + +@param input_image Input BGR image to correct +@param coefficients Coefficient model +@param output_image Corrected BGR image +@param image_size Size of images for the calibration coefficient model +@param calib_degree Degree of the calibration coefficient model +@param bayer_pattern Bayer pattern code (e.g. cv::COLOR_BayerBG2BGR) used for +demosaicing when @p input_image has one channel; ignored otherwise. + +@sa loadChromaticAberrationParams, demosaicing +*/ +CV_EXPORTS_W void correctChromaticAberration(InputArray input_image, InputArray coefficients, OutputArray output_image, + const Size& image_size, int calib_degree, int bayer_pattern = -1); + +/** @brief Load chromatic-aberration calibration parameters from opened FileStorage. + * + R e*ads the red and blue polynomial coefficients from the specified file and + packs them into a 4×N CV_32F matrix: + row 0 = blue dx coefficients + row 1 = blue dy coefficients + row 2 = red dx coefficients + row 3 = red dy coefficients + + @param FileNode Node of opened cv::FileStorage object. + @param coeffMat Output 4xN coefficient matrix (CV_32F). + @param degree Polynomial degree inferred from N. + @param calib_size Calibration image size read from file. + + @sa correctChromaticAberration + */ +CV_EXPORTS_W void loadChromaticAberrationParams( + const FileNode& node, + OutputArray coeffMat, + CV_OUT Size& calib_size, + CV_OUT int& degree); + +//! @} photo_ca_correction + //! @} photo } // cv diff --git a/modules/photo/perf/perf_chromatic_aberration.cpp b/modules/photo/perf/perf_chromatic_aberration.cpp new file mode 100644 index 0000000000..8ad39c0cec --- /dev/null +++ b/modules/photo/perf/perf_chromatic_aberration.cpp @@ -0,0 +1,39 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#include "perf_precomp.hpp" + +namespace opencv_test +{ +namespace +{ + +PERF_TEST(ChromaticAberration, CorrectChromaticAberration) +{ + std::string calib_file = getDataPath("cv/cameracalibration/chromatic_aberration/ca_photo_calib.yaml"); + std::string image_file = getDataPath("cv/cameracalibration/chromatic_aberration/ca_photo.png"); + + cv::Mat src = cv::imread(image_file); + ASSERT_FALSE(src.empty()) << "Could not load input image"; + ASSERT_EQ(src.type(), CV_8UC3); + + cv::Mat coeffMat; + int degree = -1; + Size calib_size = {-1,-1}; + + FileStorage fs(calib_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + cv::Mat dst; + + TEST_CYCLE() + { + cv::correctChromaticAberration(src, coeffMat, dst, calib_size, degree); + } + SANITY_CHECK_NOTHING(); +} + +} // namespace +} // namespace opencv_test diff --git a/modules/photo/src/chromatic_aberration_correction.cpp b/modules/photo/src/chromatic_aberration_correction.cpp new file mode 100644 index 0000000000..869ec4640f --- /dev/null +++ b/modules/photo/src/chromatic_aberration_correction.cpp @@ -0,0 +1,242 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#include "precomp.hpp" + +namespace cv { + +CV_EXPORTS_W void loadChromaticAberrationParams(const FileNode& fs, + OutputArray coeffMat, + Size& calib_size, + int& degree) +{ + int imgW = 0, imgH = 0; + fs["image_width"] >> imgW; + fs["image_height"] >> imgH; + + CV_Assert(imgW > 0 && imgH > 0); + + auto readChannel = [&](const char* key, + std::vector& coeffs_x, + std::vector& coeffs_y, + int& deg_out) + { + FileNode ch = fs[key]; + if (ch.empty()) + CV_Error_(Error::StsParseError, + ("Missing channel \"%s\"", key)); + + ch["coeffs_x"] >> coeffs_x; + ch["coeffs_y"] >> coeffs_y; + + if (coeffs_x.empty() || coeffs_y.empty()) + CV_Error_(Error::StsParseError, + ("%s: coeffs_x/coeffs_y missing", key)); + + if (coeffs_x.size() != coeffs_y.size()) + CV_Error_(Error::StsBadSize, + ("%s: coeffs_x (%zu) vs coeffs_y (%zu)", + key, coeffs_x.size(), coeffs_y.size())); + + if (!checkRange(coeffs_x, true) || !checkRange(coeffs_y, true)) + CV_Error_(Error::StsBadArg, + ("%s: coefficient array contains NaN/Inf", key)); + size_t m = coeffs_x.size(); + double n_float = (std::sqrt(1.0 + 8.0 * m) - 3.0) / 2.0; + int deg = static_cast(std::round(n_float)); + size_t expected_m = static_cast((deg + 1) * (deg + 2) / 2); + if (m != expected_m){ + CV_Error_(Error::StsBadArg, + ("Coefficient count %zu is not triangular for degree %d " + "(expected %zu)", m, deg, expected_m)); + } + deg_out = deg; + }; + + std::vector red_x, red_y, blue_x, blue_y; + int deg_red = 0, deg_blue = 0; + readChannel("red_channel", red_x, red_y, deg_red); + readChannel("blue_channel", blue_x, blue_y, deg_blue); + + + if (red_x.size() != blue_x.size()){ + CV_Error_(Error::StsBadSize, + ("Red (%zu) and blue (%zu) coefficient counts differ", + red_x.size(), blue_x.size())); + } + if (deg_red != deg_blue){ + CV_Error_(Error::StsBadArg, + ("Red (%d) and blue (%d) degrees differ", + deg_red, deg_blue)); + } + + const int mterms = (int)red_x.size(); + + Mat tmp(4, mterms, CV_32F); + + float* Bx = tmp.ptr(0); + float* By = tmp.ptr(1); + float* Rx = tmp.ptr(2); + float* Ry = tmp.ptr(3); + + for (int i = 0; i < mterms; ++i) { + Bx[i] = static_cast(blue_x[i]); + By[i] = static_cast(blue_y[i]); + Rx[i] = static_cast(red_x[i]); + Ry[i] = static_cast(red_y[i]); + } + + calib_size = Size(imgW, imgH); + degree = deg_red; + tmp.copyTo(coeffMat); +} + +static void buildRemapsFromCoeffMat(int height, int width, + const Mat& coeffs, + int degree, + int rowX, int rowY, + Mat& map_x, Mat& map_y) +{ + if (coeffs.type() != CV_32F) { + CV_Error_(Error::StsUnsupportedFormat, + ("coeffs Mat must be CV_32F (got type=%d)", coeffs.type())); + } + + if (coeffs.rows != 4) { + CV_Error_(Error::StsBadSize, + ("coeffs.rows must be 4 (Bx,By,Rx,Ry); got %d", coeffs.rows)); + } + + if (rowX < 0 || rowX >= coeffs.rows) { + CV_Error_(Error::StsOutOfRange, + ("rowX index %d out of range [0,%d)", rowX, coeffs.rows)); + } + if (rowY < 0 || rowY >= coeffs.rows) { + CV_Error_(Error::StsOutOfRange, + ("rowY index %d out of range [0,%d)", rowY, coeffs.rows)); + } + + if (degree < 0) { + CV_Error_(Error::StsBadArg, + ("degree must be non-negative; got %d", degree)); + } + + const int expected_terms = (degree + 1) * (degree + 2) / 2; + if (coeffs.cols != expected_terms) { + CV_Error_(Error::StsBadSize, + ("coeffs.cols (%d) != expected polynomial term count (%d) for degree=%d", + coeffs.cols, expected_terms, degree)); + } + + if (width <= 0 || height <= 0) { + CV_Error_(Error::StsBadArg, + ("width (%d) and height (%d) must be positive", width, height)); + } + + Mat X(1, width, CV_32F), Y(height, 1, CV_32F); + for (int i = 0; i < width; ++i) X.at(0,i) = (float)i; + for (int j = 0; j < height; ++j) Y.at(j,0) = (float)j; + + Mat Xgrid, Ygrid; + repeat(X, height, 1, Xgrid); + repeat(Y, 1, width, Ygrid); + + Mat dx(height, width, CV_32F); + Mat dy(height, width, CV_32F); + + const double mean_x = width * 0.5; + const double mean_y = height * 0.5; + const double inv_std_x = 1.0 / mean_x; + const double inv_std_y = 1.0 / mean_y; + + const float* Cx = coeffs.ptr(rowX); + const float* Cy = coeffs.ptr(rowY); + + + parallel_for_(Range(0, height), [&](const Range& rows){ + std::vector x_pow(degree + 1); + std::vector y_pow(degree + 1); + for (int y = rows.start; y < rows.end; ++y) { + const float* XR = Xgrid.ptr(y); + const float* YR = Ygrid.ptr(y); + float* DX = dx.ptr(y); + float* DY = dy.ptr(y); + for (int x = 0; x < width; ++x) { + const double xn = (XR[x] - mean_x) * inv_std_x; + const double yn = (YR[x] - mean_y) * inv_std_y; + + x_pow[0] = y_pow[0] = 1.0; + for (int k = 1; k <= degree; ++k) { + x_pow[k] = x_pow[k-1] * xn; + y_pow[k] = y_pow[k-1] * yn; + } + + double dxv = 0.0, dyv = 0.0; + int idx = 0; + for (int t = 0; t <= degree; ++t){ + for (int i = 0; i <= t; ++i){ + const int j = t - i; + const double term = x_pow[i] * y_pow[j]; + dxv += Cx[idx] * term; + dyv += Cy[idx] * term; + ++idx; + } + } + + DX[x] = (float)dxv; + DY[x] = (float)dyv; + } + } + }); + + map_x = Xgrid - dx; + map_y = Ygrid - dy; +} + +void correctChromaticAberration(InputArray input_image, + InputArray coefficients, + OutputArray output_image, + const Size& calib_size, + int calib_degree, + int bayer_pattern) +{ + Mat image = input_image.getMat(); + const Mat coeffMat = coefficients.getMat(); + + if (image.channels() == 1) { + if (bayer_pattern < 0) { + CV_Error_(Error::StsBadArg, + ("Single-channel input detected: must pass a valid bayer_pattern")); + } + Mat dem; + demosaicing(image, dem, bayer_pattern); + image = dem; + } + + const int height = image.rows; + const int width = image.cols; + + if (height != calib_size.height || width != calib_size.width) { + CV_Error_(Error::StsBadArg, + ("Image size %dx%d does not match calibration %dx%d", + width, height, calib_size.width, calib_size.height)); + } + + std::vector channels; + split(image, channels); + Mat b = channels[0], g = channels[1], r = channels[2]; + + Mat map_x_r, map_y_r, map_x_b, map_y_b; + buildRemapsFromCoeffMat(height, width, coeffMat, calib_degree, 2, 3, map_x_r, map_y_r); + buildRemapsFromCoeffMat(height, width, coeffMat, calib_degree, 0, 1, map_x_b, map_y_b); + + Mat r_corr, b_corr; + remap(r, r_corr, map_x_r, map_y_r, INTER_LINEAR, BORDER_REPLICATE); + remap(b, b_corr, map_x_b, map_y_b, INTER_LINEAR, BORDER_REPLICATE); + + std::vector corrected_channels = {b_corr, g, r_corr}; + Mat corrected_image; + merge(corrected_channels, output_image); +} +} diff --git a/modules/photo/test/test_chromatic_aberration.cpp b/modules/photo/test/test_chromatic_aberration.cpp new file mode 100644 index 0000000000..0373876a07 --- /dev/null +++ b/modules/photo/test/test_chromatic_aberration.cpp @@ -0,0 +1,144 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#include "test_precomp.hpp" + +namespace opencv_test { namespace { + +const unsigned long EXPECTED_COEFFS_SIZE = 78; + +class ChromaticAberrationTest : public testing::Test +{ +protected: + std::string test_yaml_file; + cv::Mat test_image; + cv::Mat coeffMat; + cv::Mat corrected; + int degree = -1; + Size calib_size = {-1, -1}; + + void SetUp() override + { + string data_path = cvtest::TS::ptr()->get_data_path(); + ASSERT_TRUE(!data_path.empty()) << "OPENCV_TEST_DATA_PATH not set"; + test_yaml_file = std::string(data_path) + "cameracalibration/chromatic_aberration/ca_photo_calib.yaml"; + test_image = cv::imread(std::string(data_path) + "cameracalibration/chromatic_aberration/ca_photo.png"); + ASSERT_FALSE(test_image.empty()) << "Failed to load test image"; + } +}; + +TEST_F(ChromaticAberrationTest, LoadCalibAndCorrectImage) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + ASSERT_FALSE(coeffMat.empty()); + ASSERT_EQ(coeffMat.type(), CV_32F); + ASSERT_EQ(coeffMat.rows, 4); + ASSERT_GT(coeffMat.cols, 0); + ASSERT_EQ((degree + 1) * (degree + 2) / 2, coeffMat.cols); + ASSERT_GT(calib_size.width, 0); + ASSERT_GT(calib_size.height, 0); + + ASSERT_EQ(test_image.cols, calib_size.width); + ASSERT_EQ(test_image.rows, calib_size.height); + + ASSERT_NO_THROW(cv::correctChromaticAberration(test_image, coeffMat, corrected, calib_size, degree)); + + EXPECT_EQ(corrected.size(), test_image.size()); + EXPECT_EQ(corrected.channels(), test_image.channels()); + EXPECT_EQ(corrected.type(), test_image.type()); + + cv::Mat diff; cv::absdiff(test_image, corrected, diff); + cv::Scalar s = cv::sum(diff); + EXPECT_GT(s[0] + s[1] + s[2], 0.0); +} + +TEST_F(ChromaticAberrationTest, YAMLContentsAsExpected) +{ + cv::FileStorage fs(test_yaml_file, cv::FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + + cv::FileNode red_node = fs["red_channel"]; + cv::FileNode blue_node = fs["blue_channel"]; + EXPECT_TRUE(red_node.isMap()); + EXPECT_TRUE(blue_node.isMap()); + + std::vector coeffs_x; + red_node["coeffs_x"] >> coeffs_x; + EXPECT_EQ(coeffs_x.size(), EXPECTED_COEFFS_SIZE); + blue_node["coeffs_x"] >> coeffs_x; + EXPECT_EQ(coeffs_x.size(), EXPECTED_COEFFS_SIZE); + + std::vector coeffs_y; + red_node["coeffs_y"] >> coeffs_y; + EXPECT_EQ(coeffs_y.size(), EXPECTED_COEFFS_SIZE); + blue_node["coeffs_y"] >> coeffs_y; + EXPECT_EQ(coeffs_y.size(), EXPECTED_COEFFS_SIZE); + + fs.release(); +} + +TEST_F(ChromaticAberrationTest, InvalidSingleChannel) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + cv::Mat gray; + cv::cvtColor(test_image, gray, cv::COLOR_BGR2GRAY); + + EXPECT_THROW(cv::correctChromaticAberration(gray, coeffMat, corrected, calib_size, degree), + cv::Exception); +} + +TEST_F(ChromaticAberrationTest, EmptyCoeffMat) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + cv::Mat emptyCoeff; + EXPECT_THROW(cv::correctChromaticAberration(test_image, emptyCoeff, corrected, calib_size, degree), + cv::Exception); +} + +TEST_F(ChromaticAberrationTest, MismatchedImageSize) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + cv::Mat resized; + cv::resize(test_image, resized, cv::Size(test_image.cols/2, test_image.rows/2)); + EXPECT_THROW(cv::correctChromaticAberration(resized, coeffMat, corrected, calib_size, degree), + cv::Exception); +} + +TEST_F(ChromaticAberrationTest, WrongCoeffType) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + cv::Mat wrongType; + coeffMat.convertTo(wrongType, CV_64F); + EXPECT_THROW(cv::correctChromaticAberration(test_image, wrongType, corrected, calib_size, degree), + cv::Exception); +} + +TEST_F(ChromaticAberrationTest, DegreeDoesNotMatchCoeffCols) +{ + FileStorage fs(test_yaml_file, FileStorage::READ); + ASSERT_TRUE(fs.isOpened()); + ASSERT_NO_THROW(cv::loadChromaticAberrationParams(fs.root(), coeffMat, calib_size, degree)); + + int wrongDegree = std::max(1, degree - 1); + ASSERT_NE((wrongDegree + 1) * (wrongDegree + 2) / 2, coeffMat.cols); + EXPECT_THROW(cv::correctChromaticAberration(test_image, coeffMat, corrected, calib_size, wrongDegree), + cv::Exception); +} + +}} diff --git a/modules/python/test/test_chromatic_aberration.py b/modules/python/test/test_chromatic_aberration.py new file mode 100644 index 0000000000..fc31fcda5f --- /dev/null +++ b/modules/python/test/test_chromatic_aberration.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +# This file is part of OpenCV project. +# It is subject to the license terms in the LICENSE file found in the top-level directory +# of this distribution and at http://opencv.org/license.html. + +import numpy as np +import cv2 as cv +from tests_common import NewOpenCVTests + +EXPECTED_COEFFS_SIZE = 78 + +class ChromaticAberrationTest(NewOpenCVTests): + def setUp(self): + super().setUp() + + self.test_yaml_file = self.find_file( + "cv/cameracalibration/chromatic_aberration/ca_photo_calib.yaml" + ) + + self.test_image = self.get_sample( + "cv/cameracalibration/chromatic_aberration/ca_photo.png", 1 + ) + self.assertIsNotNone(self.test_image, "Failed to load test image") + self.assertFalse(self.test_image.size == 0, "Failed to load test image") + + def test_load_calib_and_correct_image(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + coeffMat, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + self.assertIsInstance(coeffMat, np.ndarray) + self.assertEqual(coeffMat.dtype, np.float32) + self.assertEqual(coeffMat.shape[0], 4) + self.assertGreater(coeffMat.shape[1], 0) + self.assertGreater(degree, 0) + self.assertGreater(calib_size[0], 0) + self.assertGreater(calib_size[1], 0) + self.assertEqual(coeffMat.shape[1], EXPECTED_COEFFS_SIZE) + + self.assertEqual(self.test_image.shape[1], calib_size[0]) + self.assertEqual(self.test_image.shape[0], calib_size[1]) + + corrected = cv.correctChromaticAberration(self.test_image, coeffMat, calib_size, degree) + + self.assertEqual(corrected.shape[:2], self.test_image.shape[:2]) + self.assertEqual(corrected.dtype, self.test_image.dtype) + + diff = cv.absdiff(self.test_image, corrected) + sum_diff = cv.sumElems(diff) + self.assertGreater(sum(sum_diff[:3]), 0.0) + + def test_yaml_contents_as_expected(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + + red_node = fs.getNode("red_channel") + blue_node = fs.getNode("blue_channel") + self.assertTrue(red_node.isMap()) + self.assertTrue(blue_node.isMap()) + + coeffs_x = red_node.getNode("coeffs_x") + self.assertIsNotNone(coeffs_x) + self.assertEqual(coeffs_x.size(), EXPECTED_COEFFS_SIZE) + + coeffs_x = blue_node.getNode("coeffs_x") + self.assertIsNotNone(coeffs_x) + self.assertEqual(coeffs_x.size(), EXPECTED_COEFFS_SIZE) + + coeffs_y = red_node.getNode("coeffs_y") + self.assertIsNotNone(coeffs_y) + self.assertEqual(coeffs_y.size(), EXPECTED_COEFFS_SIZE) + + coeffs_y = blue_node.getNode("coeffs_y") + self.assertIsNotNone(coeffs_y) + self.assertEqual(coeffs_y.size(), EXPECTED_COEFFS_SIZE) + + fs.release() + + def test_invalid_single_channel(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + coeffMat, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + + gray = cv.cvtColor(self.test_image, cv.COLOR_BGR2GRAY) + with self.assertRaises(cv.error): + _ = cv.correctChromaticAberration(gray, coeffMat, calib_size, degree) + + def test_empty_coeff_mat(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + _, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + emptyCoeff = np.empty((0, 0), dtype=np.float32) + with self.assertRaises(cv.error): + _ = cv.correctChromaticAberration(self.test_image, emptyCoeff, calib_size, degree) + + def test_mismatched_image_size(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + coeffMat, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + resized = cv.resize(self.test_image, (self.test_image.shape[1] // 2, self.test_image.shape[0] // 2)) + with self.assertRaises(cv.error): + _ = cv.correctChromaticAberration(resized, coeffMat, calib_size, degree) + + def test_wrong_coeff_type(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + coeffMat, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + wrongType = coeffMat.astype(np.float64) + with self.assertRaises(cv.error): + _ = cv.correctChromaticAberration(self.test_image, wrongType, calib_size, degree) + + def test_degree_does_not_match_coeff_cols(self): + fs = cv.FileStorage(self.test_yaml_file, cv.FileStorage_READ) + self.assertTrue(fs.isOpened()) + coeffMat, calib_size, degree = cv.loadChromaticAberrationParams(fs.root()) + + wrongDegree = max(1, degree - 1) + self.assertNotEqual(wrongDegree, coeffMat.shape[1]) + with self.assertRaises(cv.error): + _ = cv.correctChromaticAberration(self.test_image, coeffMat, calib_size, wrongDegree) + +if __name__ == '__main__': + NewOpenCVTests.bootstrap() diff --git a/samples/cpp/snippets/chromatic_aberration_correction.cpp b/samples/cpp/snippets/chromatic_aberration_correction.cpp new file mode 100644 index 0000000000..326d49b024 --- /dev/null +++ b/samples/cpp/snippets/chromatic_aberration_correction.cpp @@ -0,0 +1,115 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#include "opencv2/core.hpp" +#include "opencv2/photo.hpp" +#include "opencv2/imgcodecs.hpp" +#include "opencv2/highgui.hpp" +#include + +using namespace cv; +using namespace std; + +static const char* usage = + "Chromatic Aberration Correction Sample\n" + "Usage:\n" + " ca_correction [bayer_pattern] [output_image]\n" + "\n" + "Arguments:\n" + " input_image Path to the input image. Can be:\n" + " • a 3-channel BGR image, or\n" + " • a 1-channel raw Bayer image (see bayer_pattern)\n" + " calibration_file OpenCV YAML/XML file with chromatic aberration calibration:\n" + " image_width, image_height, red_channel/coeffs_x, coeffs_y,\n" + " blue_channel/coeffs_x, coeffs_y.\n" + " output_image (optional) Path to save the corrected image. Default: corrected.png\n" + " bayer_pattern (optional) integer code for demosaicing a 1-channel raw image:\n" + " cv::COLOR_BayerBG2BGR = 46\n" + " cv::COLOR_BayerGB2BGR = 47\n" + " cv::COLOR_BayerGR2BGR = 48\n" + " cv::COLOR_BayerRG2BGR = 49\n" + " If omitted or <0, input is assumed 3-channel BGR.\n" + "\n" + "Example:\n" + " ca_correction input.png calib.yaml 46 corrected.png\n" + "\n"; + +int main(int argc, char** argv) +{ + const string keys = + "{help h | | show this help message }" + "{@input | | input image (BGR or Bayer)}" + "{@calibration | | calibration file (YAML/XML) }" + "{output |corrected.png| output image file }" + "{bayer |-1 | Bayer pattern code for demosaic }" + ; + + CommandLineParser parser(argc, argv, keys); + parser.about("Chromatic Aberration Correction Sample"); + if (parser.has("help") || argc < 3) + { + cout << usage << "\n"; + return 0; + } + + string inputPath = parser.get("@input"); + string calibPath = parser.get("@calibration"); + string outputPath = parser.get("output"); + int bayerPattern = parser.get("bayer"); + + if (!parser.check()) + { + parser.printErrors(); + return 1; + } + + Mat input = imread(inputPath, IMREAD_UNCHANGED); + if (input.empty()) + { + cerr << "ERROR: Could not load input image: " << inputPath << endl; + return 1; + } + + FileStorage fs(calibPath, FileStorage::READ); + if (!fs.isOpened()) + { + cerr << "ERROR: Could not load coeffients file: " << calibPath << endl; + return 1; + } + + try + { + Mat coeffMat; + Size calibSize = {-1, -1}; + int degree = -1; + + cv::loadChromaticAberrationParams(fs.root(), coeffMat, calibSize, degree); + + Mat corrected; + correctChromaticAberration(input, coeffMat, corrected, calibSize, degree, bayerPattern); + + namedWindow("Original", WINDOW_AUTOSIZE); + namedWindow("Corrected", WINDOW_AUTOSIZE); + imshow("Original", input); + imshow("Corrected", corrected); + cout << "Press any key to continue..." << endl; + waitKey(); + + if (!imwrite(outputPath, corrected)) + { + cerr << "WARNING: Could not write output image: " << outputPath << endl; + } + else + { + cout << "Saved corrected image to: " << outputPath << endl; + } + } + catch (const Exception& e) + { + cerr << "OpenCV error: " << e.what() << endl; + return 1; + } + + return 0; +} diff --git a/samples/python/snippets/chromatic_aberration_correction.py b/samples/python/snippets/chromatic_aberration_correction.py new file mode 100755 index 0000000000..64e89db198 --- /dev/null +++ b/samples/python/snippets/chromatic_aberration_correction.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +# This file is part of OpenCV project. +# It is subject to the license terms in the LICENSE file found in the top-level directory +# of this distribution and at http://opencv.org/license.html + +import argparse +import sys +import cv2 as cv + +USAGE = """\ +Chromatic Aberration Correction Sample +Usage: + chromatic_aberration_correction.py [--bayer ] [--output ] + +Arguments: + input_image Path to the input image. Can be: + • a 3-channel BGR image, or + • a 1-channel raw Bayer image (see bayer_pattern) + calibration_file OpenCV YAML/XML file with chromatic aberration calibration: + image_width, image_height, red_channel/coeffs_x, coeffs_y, + blue_channel/coeffs_x, coeffs_y. + output (optional) Path to save the corrected image. Default: corrected.png + bayer (optional) integer code for demosaicing a 1-channel raw image + If omitted or <0, input is assumed 3-channel BGR. + +Example: + python chromatic_aberration_correction.py input.png calib.yaml --bayer 46 --output corrected.png +""" + +def main(argv=None): + parser = argparse.ArgumentParser( + description="Chromatic Aberration Correction Sample", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=USAGE + ) + parser.add_argument("input", help="Input image (BGR or Bayer)") + parser.add_argument("calibration", help="Calibration file (YAML/XML)") + parser.add_argument("--output", default="corrected.png", help="Output image file") + parser.add_argument("--bayer", type=int, default=-1, help="Bayer pattern code for demosaic") + parser.add_argument("--no-gui", action="store_true", help="Do not open image windows") + + args = parser.parse_args(argv) + + img = cv.imread(args.input, cv.IMREAD_UNCHANGED) + if img is None: + print(f"ERROR: Could not load input image: {args.input}", file=sys.stderr) + return 1 + + fs = cv.FileStorage(args.calibration, cv.FileStorage_READ) + if not fs.isOpened(): + print(f"Could not calibration coefficients from {args.calibration}") + return 1 + + try: + coeffMat, size, degree = cv.loadChromaticAberrationParams(fs.root()) + corrected = cv.correctChromaticAberration(img, coeffMat, size, degree, args.bayer) + + if corrected is None: + print("ERROR: cv.correctChromaticAberration returned None", file=sys.stderr) + return 1 + + if not args.no_gui: + cv.namedWindow("Original", cv.WINDOW_AUTOSIZE) + cv.namedWindow("Corrected", cv.WINDOW_AUTOSIZE) + cv.imshow("Original", img) + cv.imshow("Corrected", corrected) + print("Press any key to continue...") + cv.waitKey(0) + cv.destroyAllWindows() + + if not cv.imwrite(args.output, corrected): + print(f"WARNING: Could not write output image: {args.output}", file=sys.stderr) + else: + print(f"Saved corrected image to: {args.output}") + + except cv.error as e: + print(f"OpenCV error: {e}", file=sys.stderr) + return 1 + + return 0 + +if __name__ == "__main__": + sys.exit(main())