diff --git a/.gitignore b/.gitignore index c79c37b..4b60caa 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ _*.png *.bak *.tmp .claude/settings.local.json +# Feedback-Daten der Companion-App (vom feedback.php-Collector geschrieben, nicht versionieren) +04_Tablet-Quiz/app/feedback-data/ diff --git a/00_Konzept/README_konzept.md b/00_Konzept/README_konzept.md index d083342..f5642c6 100644 --- a/00_Konzept/README_konzept.md +++ b/00_Konzept/README_konzept.md @@ -11,7 +11,8 @@ > - **Action-Stein entfällt** — die Action Card liegt flach an der aktuellen Station; > die App führt die Reihenfolge, die gestellten Figuren markieren „wir sind hier". > - **Gate-Tore + Gate-Karten entfallen** — ein Gate ist ein **roter Puck**; Keeper, -> Artefakte und Auflösung laufen über App + Entscheidungs-Chips. +> Artefakte und Auflösung laufen über die App (die entscheidende Rolle bleibt als +> Marker am Gate-Puck stehen). > - **Aktiv-Feld** ist jetzt **quadratisch (2×2: R|A / C|I)**. > - Neu: **Phasen-Ring** — zusammengesteckt die SLC-Übersicht, auseinandergenommen > die farbigen Phasen-Köpfe der Bahn (Design-Segment = Start). @@ -91,7 +92,7 @@ Die **Etikett-Kurzbezeichnung** (ID + Name) und die **App-Auflösung** werden be Ein Gate ist ein **roter Puck** (Etikett `G1`/`G2`/`G3` + Entscheidungs-Icon). Die Pflicht-Figuren werden in seine Figurenmulden gestellt; sonst „öffnet" das Gate -nicht. Entscheidungspfade als Chips: **Go / Go mit Auflagen / Zurück / Ablehnung** +nicht. Entscheidungspfade (in der App): **Go / Go mit Auflagen / Zurück / Ablehnung** (exakt die im Blueprint dokumentierten Pfade). Gate 1 verzweigt zusätzlich **Entwicklung (tr_02)** vs. **Konfiguration (tr_05)**. @@ -129,14 +130,15 @@ formcodiert. Figuren werden **gestellt, nicht gesteckt**; es gibt **zwei** Orte: **R | A** (oben) und **C | I** (unten). Die beteiligten Rollen werden zusätzlich in die passende RACI-Zone gestellt — sichtbar wird nicht nur *wer*, sondern *in welcher Verantwortung*. **A** hat genau einen Platz (genau eine Rolle accountable). + Didaktische Gewichtung (Frank): **R und A** sind die Pflicht und unbedingt zu + durchdenken (obere Zeile R | A), **C und I** sind ergänzend / nice-to-have. Alle Standfelder sind Ø 22 (gleich wie die Puck-Mulden — dieselben Ø-20-Figuren). Details & Designvarianten: [`../02_Spielfiguren/`](../02_Spielfiguren/). -### 5.4 Weitere Karten & Chips -- **Artefaktkarten + Service-Akte:** Was an einer Aktivität entsteht (15 konsolidierte Artefakte A1–A15). Erzeugte Artefakte kommen als Karte in die **Service-Akte** (Tableau neben der aktuellen Station); „lebende" Artefakte (Service-Definition, Problem Record, Wissensdatenbank) werden über einen **Status-Marker** mehrfach befüllt. **Gate-Kopplung:** Ein Gate öffnet nur, wenn die geforderten Artefakte in der Akte liegen (Gate 1: SDD + Implementation Blueprint usw.). Details: [`../03_Karten/`](../03_Karten/). +### 5.4 Weitere Karten +- **Artefakte A1–A15 + Service-Akte (App):** Was an einer Aktivität entsteht (15 konsolidierte Artefakte). Erzeugte Artefakte werden **in der App** bestimmt (Choice) und in der digitalen **Service-Akte** gesammelt; „lebende" Artefakte (Service-Definition, Problem Record, Wissensdatenbank) werden mehrfach befüllt. **Harte Gate-Kopplung:** Ein Gate gibt die Entscheidung erst frei, wenn die geforderten Artefakte gesammelt sind (Gate 1: A2·A3·A4 usw.). Details: [`../03_Karten/`](../03_Karten/). - **Störungskarten:** Gegenstück zu Action Cards (Incident-Welle, Sicherheitsvorfall, Budgetkürzung, Eskalation) — zwingen in die Operation↔Support-Schleife oder über ein Gate zurück. -- **Entscheidungs-Chips:** Go / Go mit Auflagen / Zurück / Ablehnung. - **DPM-Rücklauf-Karte:** markiert am Review-Ende, wenn der Service als Redesign/Retirement zurück in den Demand-Lifecycle geht. - **„Unklar"-Marker:** rote Punkte für Verständnislücken (→ Dokumentation). @@ -168,14 +170,14 @@ Schwach beantwortete Stationen werden protokolliert (→ Abschnitt 8). MVP-Scope 1. Was passiert hier konkret für dieses Szenario? 2. Wer macht es (Rolle, RACI)? → die genannten **Figuren an den Puck stellen** und zusätzlich ins **Aktiv-Feld** in die passende R/A/C/I-Zone. - 3. Welches Artefakt entsteht? → erzeugte **Artefaktkarte in die Service-Akte** - legen (bzw. Status-Marker eines bestehenden Artefakts weiterschieben). + 3. Welches Artefakt entsteht? → in der **App auswählen** (Artefakt-Schritt); es + wandert in die digitale **Service-Akte**. Dann **App-Quiz** zur Station → **Auflösung in der App** → Gruppe reflektiert / gleicht ab. Danach Aktiv-Feld leeren und zur **nächsten Station** weiterziehen (App schaltet weiter, Action Card mitnehmen). -5. **Gates:** Diskussion, Pflicht-Figuren an den Gate-Puck stellen, **geforderte - Artefakte in der Service-Akte prüfen** (sonst öffnet das Gate nicht), - Entscheidungs-Chip wählen, weiterziehen. +5. **Gates:** Diskussion, Pflicht-Figuren an den Gate-Puck stellen; die **App prüft die + geforderten Artefakte** (fehlen sie, bleibt die Entscheidung gesperrt), + Entscheidung in der App treffen, weiterziehen. 6. **Schleife:** Störungskarten und Support-Phase durchspielen, bis Review erreicht ist. 7. **Review-Entscheidung:** Improvement / Redesign (rv_05) / Retirement (rv_06) — Redesign & Retirement geben den Service über die DPM-Rücklauf-Karte ab. 8. **Debrief:** Logbuch & Reflexion (→ [`../05_Workshop-Dokumentation/`](../05_Workshop-Dokumentation/)). diff --git a/00_Konzept/review-phase_arbeitsstand-frank.md b/00_Konzept/review-phase_arbeitsstand-frank.md new file mode 100644 index 0000000..0d21f24 --- /dev/null +++ b/00_Konzept/review-phase_arbeitsstand-frank.md @@ -0,0 +1,72 @@ +# Review-Phase — Arbeitsstand (Vorschlag Frank) + +**Status:** Arbeitsstand **für den Workshop** · **nicht** im Blueprint-YAML · **nicht** +kanonisch ins Konzept übernommen (vor Übernahme mit **Michael** rückkoppeln). +**Quelle:** E-Mail Frank · **Logik:** Change-Enablement (analog YASM). + +> **Wo schon übernommen (Workshop-Material):** Companion-App (`04_Tablet-Quiz/app/`, +> Review = rv_01–rv_05), `01_3D-Druck/materialliste.md` (**36** Station-Pucks / **39** +> Positionen) und die **`board-layout`-Skizze**. **Bewusst NICHT geändert:** +> `service-lifecycle_*.yaml` (Single Source of Truth) und das **kanonische Konzept** +> (`README_konzept.md`, Phasen-Tabelle zeigt weiter 6/40) — vor Übernahme mit +> **Michael** abstimmen. + +## Die 5 vorgeschlagenen Aktivitäten + +1. **Durchführen von Service-Reviews** + - KPIs & Monitoring auswerten, Problems & Incidents auswerten, Kundenfeedback sammeln/einholen + - Bewerten der zugrunde liegenden Infrastruktur + - Service-Review-Dokument ausfüllen +2. **Bewertung der Review-Ergebnisse** + - RFC erstellen (Normal- bzw. Major-Change) + - Berichte (wenn nötig) an die SOR weiterleiten + - Ergebnisse in der SOR ganzheitlich bewerten +3. **Definieren von Service-Änderungen** + - passende Änderungsvorschläge formulieren + - Vorschläge bewerten & konsolidieren + - ausgewählte Änderung beschreiben +4. **Starten von Service-Änderungen** + - Normal Change: Planung der Umsetzung + - Major Change: Routing klären (RUN / DPM / MB?) + - Major Change: „Change-Steckbrief" ausfüllen & weiterleiten +5. **Implementieren von Service-Änderungen** + - Normal & Major (Weg RUN): durchführen, dokumentieren, abschließen durch SO + - Major (Weg DPM): Change geht durch Demand- & Projektprozess + - Major (Weg MB): direkt in den Projektprozess oder Durchführung im RUN + +## Abbildung gegenüber dem bisherigen Stand (rv_01–rv_06) + +| bisher | neu (Frank) | +|--------|-------------| +| rv_01 KPIs/RCA · rv_02 Performance-Review | 1. Service-Reviews durchführen | +| rv_03 SOR-Review | 2. Bewertung (RFC, SOR) | +| rv_04 Service Improvement | 3. Änderungen definieren | +| rv_05 Redesign → DPM | 4./5. Starten/Implementieren (Routing) | +| rv_06 Außerbetriebnahme | *— nicht explizit abgedeckt* | + +## Routing & Change-Arten (geklärt) + +- **MB = Mission Board** (offener Punkt gelöst). Das SOR-Routing am Change ist: + **RUN** (im Betrieb durch den SO) · **DPM** (über den Demand-Prozess) · **MB** + (Mission Board). **Eskalations-Kriterium:** Reicht die **Ressourcen-/ + Entscheidungshoheit der SOR** nicht (z. B. zusätzliches Budget/Mittel), wird der + Change zum **Demand** → über **DPM** ans **Mission Board** (= der DPM-Rücklauf). +- **Change-Arten auf 4 zusammengeführt** (Major · Normal · Standard · Emergency). + Franks frühere *Top-Level/Low-Level*-Unterscheidung ist **Routing/Freigabe-Ebene, + kein Change-Typ** (ITIL 4: „Major" = Normal-Change mit höherer Authority; YASM: + bewusst schlank). In der App umgesetzt: 4 Change-Arten, **24 Action Cards** + (6 Services × 4), klarere Klassifizierung. „Major" nutzt das Top-Level-Beispiel. + → Workshop-Arbeitsstand (App), **nicht** YAML/kanonisches Konzept. + +## Offene Punkte (vor Konzept-/YAML-Übernahme klären) + +- **Retirement / Außerbetriebnahme** (bisher rv_06) fehlt — bewusst entfallen oder + unter „Service-Änderung" subsumiert? +- **RACI + Quizfragen** wurden für die App **abgeleitet** (Franks Entwurf nennt nur + die Aktivitäten) — fachlich gegenprüfen. +- **Vokabular** („RFC", „Change-Steckbrief", Routing RUN/DPM/MB) mit den anderen + Phasen und der Rollen-/Gate-YAML abgleichen. +- **Konsequenz Board:** Bahn = **39 statt 40** Positionen (36 Station-Pucks + 3 Gate). + In Workshop-Material (App, materialliste, board-layout) bereits nachgezogen; alle + Pucks sind identische Blanks → faktisch nur **1 Puck weniger / als Reserve**. Das + **kanonische Konzept (`README_konzept.md`) zeigt noch 40** — nach Michael-Freigabe nachziehen. diff --git a/01_3D-Druck/3D-Druckliste.md b/01_3D-Druck/3D-Druckliste.md new file mode 100644 index 0000000..509ef01 --- /dev/null +++ b/01_3D-Druck/3D-Druckliste.md @@ -0,0 +1,63 @@ +# 3D-Druckliste — SLC-Game (für den 3D-Produzenten) + +**Auflage: 3 komplette Sets/Kits.** +Alle Teile als OpenSCAD/STL im Ordner `01_3D-Druck/openscad/`. +STL erzeugen: jeweilige `.scad` in OpenSCAD öffnen → **F6** → **Export STL**. +Farbe = Filamentfarbe (Hex-Wert verbindlich). + +## 1) Stationschips · Ø40 × 2 mm Vollscheibe · Datei `stationschip-*.scad` + +Menge = Stationen × 3 Sets **+ 2 Stück Backup gesamt** (gemeinsamer Puffer, nicht je Set). + +| Sorte | Farbe (Hex) | Farbe | STL / SCAD | Stat./Set | ×3 | Backup | **Menge** | +|---|---|---|---|---:|---:|---:|---:| +| Design | `#2f80c9` | blau | `stationschip-design` | 4 | 12 | +2 | **14** | +| Transition | `#e8862b` | orange | `stationschip-transition` | 9 | 27 | +2 | **29** | +| Operation | `#2f9e57` | grün | `stationschip-operation` | 7 | 21 | +2 | **23** | +| Support | `#18a9a0` | türkis | `stationschip-support` | 11 | 33 | +2 | **35** | +| Review | `#8358c6` | lila | `stationschip-review` | 5 | 15 | +2 | **17** | +| Entscheidung / Gate | `#e2001a` | rot | `stationschip-entscheidung` | 3 | 9 | +2 | **11** | +| | | | | **39** | **117** | **+12** | **129** | + +**Gesamt: 129 Stationschips.** + +> Hinweis zur Aufteilung: Die 3 „Gate"-Stationen (tr1, tr9, tr12) laufen als **Entscheidung (rot)**, +> deshalb hat Transition 9 statt 12/Set. Stationszahlen aus `puck-etiketten.csv`. Falls die Gates +> stattdessen orange (Transition) sein sollen: Transition 14/Set-Basis, Entscheidung 0 — kurz Bescheid geben. + +## 2) Boards / Konsolen · Ø200 × 20 mm · je 3 Stück (1 pro Set) + +| Teil | Farbe (Hex) | STL / SCAD | **Menge** | +|---|---|---|---:| +| Board Design | `#2f80c9` | `board-design` | 3 | +| Board Transition | `#e8862b` | `board-transition` | 3 | +| Board Operation | `#2f9e57` | `board-operation` | 3 | +| Board Support | `#18a9a0` | `board-support` | 3 | +| Board Review | `#8358c6` | `board-review` | 3 | +| Gate-Board (mit „ENTSCHEIDUNG") | `#e2001a` | `gate-board-text` | 3 | +| | | | **18** | + +## 3) Phasenmodell (Ring, 5 Einzelteile) · Segmente Ø300, 5 mm dick · je 3 Stück (1 pro Set) + +| Teil | Farbe (Hex) | STL / SCAD | **Menge** | +|---|---|---|---:| +| Segment Design | `#2f80c9` | `phasenmodell-design` | 3 | +| Segment Transition | `#e8862b` | `phasenmodell-transition` | 3 | +| Segment Operation | `#2f9e57` | `phasenmodell-operation` | 3 | +| Segment Support | `#18a9a0` | `phasenmodell-support` | 3 | +| Segment Review | `#8358c6` | `phasenmodell-review` | 3 | +| | | | **15** | + +## Zusammenfassung Mengen je Filamentfarbe (alle Teile) + +| Farbe (Hex) | Chips | Boards | Phasenmodell | **Teile gesamt** | +|---|---:|---:|---:|---:| +| `#2f80c9` Design-blau | 14 | 3 | 3 | **20** | +| `#e8862b` Transition-orange | 29 | 3 | 3 | **35** | +| `#2f9e57` Operation-grün | 23 | 3 | 3 | **29** | +| `#18a9a0` Support-türkis | 35 | 3 | 3 | **41** | +| `#8358c6` Review-lila | 17 | 3 | 3 | **23** | +| `#e2001a` Gate-rot | 11 | 3 (Gate-Board) | – | **14** | +| **Gesamt** | **129** | **18** | **15** | **162** | + +*(Backup nur bei Chips berücksichtigt, wie vorgegeben. Boards/Phasenmodell ohne Backup — bei Bedarf ergänzen.)* diff --git a/01_3D-Druck/PUCK-STATUS.md b/01_3D-Druck/PUCK-STATUS.md new file mode 100644 index 0000000..8a84ebe --- /dev/null +++ b/01_3D-Druck/PUCK-STATUS.md @@ -0,0 +1,109 @@ +# Puck-Redesign — Status & Übergabe (RACI-Konsolen-Board) + +**Stand:** 2026-06-09 · Wiedereinstieg-Doku speziell für das **3D-Board-Redesign** +(App-/Spielstand steht in `../PROJEKTSTAND.md`). + +## Worum geht's +Statt 40 Pucks ein **rundes „Konsolen"-Board** als RACI-Station: zentrale Acryl-Chip-Mulde +(Stations-ID, pro Zug getauscht), Sockel-Ring für Figuren, Card-Halter. Layout wird in +**Illustrator** gebaut und **1:1 nach OpenSCAD** übertragen. + +## Quell-Layouts (Single Source of Truth) +- `Puck_ohne_Text.svg` — **Phasen-/RACI-Puck** (blau), MIT 4 Trennlinien. +- `Puck_Entscheidung_ohne_Text.svg` — **Sonderpuck / Gate-Entscheidung** (rot), + **identische Geometrie, aber OHNE die 4 Trennlinien**. + +### SVG→mm-Umrechnung (falls neu konvertiert wird) +viewBox 566,93 = 200 mm → **× 0,35278 mm/Unit**; Mittelpunkt **(283,47 / 283,47)**; +y spiegeln (SVG y zeigt nach unten). So wurden alle Maße unten gewonnen. + +## Gebaut & geprüft +`openscad/raci-board.scad` — **1:1 aus `Puck_ohne_Text.svg`**, rendert fehlerfrei, +**manifold („Simple: yes")**, STL-fertig (OpenSCAD → F6 → Export STL). + +**Maße (Z laut Vorgabe):** +- Board **Ø200 × 20 mm**, Innenfläche Ø190 → Rand 5 mm, **Außenkante rundgebogen abfallend**. +- Mittelmulde **Ø50 × 2,5 mm**; Ring drumherum **Ø64**, 2 mm breit, graviert 2,5 mm. +- **11 Sockel Ø32,6** (= Ø32 aus SVG + 0,6 Spiel) × 2,5 mm tief, an exakten SVG-Positionen. +- **4 Trennlinien** 2 mm breit, graviert 2,5 mm, bei **−105,5° / −73,3° / 57,3° / 123,5°**. +- **Kartenschlitz** 70 × 5 mm, **15 mm tief**, oben (y ≈ +85 mm), gerade. +- Sektoren: **unten 1 · rechts 4 · oben 2 · links 4** (= 11). + +## Gebaut & geprüft (Sonderpuck / Gate) +- `openscad/gate-board.scad` — **1:1 aus `Puck_Entscheidung_ohne_Text.svg`**, manifold, STL-fertig. + Identisch zum RACI-Board, nur **ohne Trennlinien** und in **Gate-Rot (#e2001a)**. +- `openscad/gate-board-text.scad` — **1:1 aus `Puck_Entscheidung_mit_Text.svg`**, manifold (geprüft). + Wie oben + **„ENTSCHEIDUNG" als Wort im Kreis** um die Mulde (Original-Font als Pfade, + `txt_gate.svg`), von der Oberseite graviert **2,5 mm**. + +## Gebaut & geprüft (5 Phasen-Boards mit Original-Schrift) ← FINAL +Quelle: die 5 SVGs `Puck_Design/Transition/Operation/Support/Review.svg` (Schrift als **Pfade**, +Font „Neulis Neue"). Vorgehen: parametrische 3D-Geometrie wie oben **+ Text aus SVG importiert** +(`import()`), graviert **2,5 mm**. RACI-Mapping: **R oben · A unten · C links · I rechts**; +Phasenname mittig in der Mulde. + +- **`openscad/board-common.scad`** — gemeinsame Geometrie + Gravur-Logik (Modul `phase_board`). +- **`openscad/board-.scad`** — 5 dünne Wrapper, je mit richtiger Farbe: + - `board-design.scad` → **#2f80c9** + - `board-transition.scad` → **#e8862b** + - `board-operation.scad` → **#2f9e57** + - `board-support.scad` → **#18a9a0** + - `board-review.scad` → **#8358c6** +- **Text-SVGs** (in `openscad/`, von `import()` genutzt): `txt_raci.svg` (R/A/C/I, in allen gleich, + graviert von der **Oberseite**) + `word_.svg` (Phasenname, graviert in den **Mulden-Boden**). +- Alle 5 gerendert; `board-design` als STL geprüft → **manifold**. STL: jeweils `board-.scad` öffnen → F6 → Export. +- **Wichtig (OpenSCAD 2021.01):** `import()` respektiert `width=200mm`; Board-Mitte liegt bei + (100,100), daher `translate([-100,-100])` in `board-common.scad`. Kein zusätzliches `scale()`. +- **Manifold-Fix:** importierte SVG-Pfade extrudieren beim F6/CGAL sonst zu „mesh not closed" + (Gravur fällt im STL weg). Lösung: `svg2d()` schickt den Import durch ein `offset`-Roundtrip + (`offset(delta=0.02) offset(delta=-0.02)`, Clipper) → saubere Konturen. Geprüft: Gate + Transition + → **Simple: yes** (Vertices steigen, d. h. Text ist wirklich im STL). + +### Überholte Zwischenstände (können bleiben/weg) +- `raci-board.scad` (Blank, ohne Text) — Geometrie-Referenz. +- `raci-board-text.scad` — Beschriftung via OpenSCAD-Font (Liberation Sans); durch die + SVG-Import-Variante mit Original-Font **ersetzt**. + +## Gebaut & geprüft (Phasenmodell — 5 Einzelteile) ← FINAL +Quelle: `phasenmodell.svg` (300×300 mm, 5-Segment-Ring/„Windrad", Phasennamen + Icons als **Pfade**). +Jedes Teil = sein Segment-Umriss extrudiert **5 mm**, minus die gesamte Text+Icon-Gravur (1,2 mm); +nur was auf dem Segment liegt, schneidet → kein Aufteilen nötig. + +- **`openscad/phasenmodell-common.scad`** — Modul `phase_part(seg_svg, col)` (Dicke/Tiefe als Parameter). +- **`openscad/phasenmodell-.scad`** — 5 Einzelteile, je mit Projekt-Phasenfarbe: + design #2f80c9 · transition #e8862b · operation #2f9e57 · support #18a9a0 · review #8358c6. +- **`openscad/phasenmodell-alle.scad`** — Zusammenbau-Vorschau (alle 5, nicht zum Druck). +- **SVGs** (in `openscad/`): `seg_.svg` (5 Segment-Umrisse) + `pm_engrave.svg` (alle + Phasennamen + alle Icons als Pfade, gemeinsam graviert). +- **Segment→Phase→Farbe** (aus Icon-IDs + Position bestätigt): cls-4/oben-links=Design, + cls-5/oben-rechts=Transition, cls-3/rechts=Operation, cls-1/links=Support, cls-6/unten=Review. +- **Geometrie:** Ring Ø300 außen, Ø~200 Innenloch; Doku-Mitte (150,150) → `translate([-150,-150])`. +- **Manifold-Fix:** die Icon-Pfade (Zahnrad etc.) haben Selbstüberschneidungen; der 0,02-mm- + Offset (wie bei den Pucks) reicht hier NICHT → in `phasenmodell-common.scad` ist der + `svg2d()`-Offset auf **0,1 mm** erhöht. Damit `phasenmodell-design` STL → **Simple: yes**. +- Alle 5 gerendert (Vorschau ok); `phasenmodell-design` als STL geprüft → **manifold**. + +## Gebaut (Stationschips) ← FINAL +Quelle: `stationschip.svg` (Ø40-Kreis). Chip = **Ø40 × 2 mm Vollscheibe**, liegt in der Ø50-Mulde; +Avery-Rundetikett (`puck-etiketten.csv`) kommt oben drauf. +- **`openscad/stationschip-common.scad`** — Modul `chip(col)`. +- **`openscad/stationschip-.scad`** — 6 farbige Wrapper (design/transition/operation/ + support/review/entscheidung), Farben = Projekt-Palette + Gate `#e2001a`. +- **Auflage: 3 komplette Sets/Kits** (alles ×3). Chips: Stationen×3 **+2 Backup gesamt** je Sorte → + Design 14 · Transition 29 · Operation 23 · Support 35 · Review 17 · Entscheidung 11 = **129 Chips**. + Boards je ×3 (18 gesamt), Phasenmodell-Segmente je ×3 (15 gesamt). Gates (tr1/9/12) = rot/Entscheidung. +- **Druckliste für den Produzenten:** `01_3D-Druck/3D-Druckliste.md` (Chips + Boards + Phasenmodell, + inkl. Mengen je Filamentfarbe). + +## Offene Punkte / nächste Schritte +1. **Sockel-Spiel** Ø32,6 bestätigen (sonst exakt Ø32). +2. **Optional:** Greifkerbe an der Chip-Mulde (Chip-Wechsel); Kartenschlitz-Neigung. +3. **Druck:** 5 Phasen-Boards in Farbe + 1 **roter Gate-Puck** (`gate-board.scad`) = 6 Stück + (H2D, ≤300×300; Ø200 passt). +4. **Commit** der aktuellen Dateien steht noch aus. + +## Verworfen / geparkt +- **Blender** (`blender/raci-board.py`) — User: „Vollkatastrophe"; **OpenSCAD ist der Weg**. + Datei kann gelöscht oder als „geparkt" belassen werden. +- **Nano-Banana → Meshy** (`blender/nano-banana-prompts.md`) — nur **Optik-Referenz**, + nicht maßhaltig; für das druckbare Teil zählt OpenSCAD. diff --git a/01_3D-Druck/Puck_Design.ai b/01_3D-Druck/Puck_Design.ai new file mode 100644 index 0000000..3b3d284 --- /dev/null +++ b/01_3D-Druck/Puck_Design.ai @@ -0,0 +1,5214 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Design + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 + + 0 + + + + + + + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +HܗI$E~ +8N}@lݵB F}3~o~oo1!BqW?~.ߖھ{G>mcZ 5>}GtɱKB]ջll\*$OQ+E?%=23ʵ9^*{ԇ/sbKiO\t]&۟vYtwp8$rfO ΆǦ߲TYكkcJ4ZsjĬʰCK]muЛ +H'7"UtwH\{!D!W yjF4Bhy(zZra{qPL>KP-Qy8<&%WQdx0Cle5axW :2'pMhɃPȖpUV rlvY2U~3ih1+鏱Nq)" ~aApbk462B"Pʑ||,WTdSGs1I3&A6oQ$GRLI{ctI_q<8"Z\ 2VbSJ(v2ut⺝JŸ0ũ66}"]m}r#G d75-9o(Bjlސu j*B0`"8JJoϬ@zlmld#pQP1D}Nbj +r˙L*q" tӼiD#a"adr!BPN`.2Jz]5N+IU-FB )DJ/dqA]Tø*AYWrVwdqJMY-4oZtYlJ3@: +>(NA֠o- E̤ETwg&_+](ȨtAobJu+2,ˬi+H.uU$L{<3j`8#(Ϩ$FB#w':DUjEFq#4K.,:t@=N/ÎiK(X Xבo``u.|1S$R@غ?^g*ΈqԚ immr(PUqAP-SUŲU2KU.ɀUJoID" +Mg +10U ؑ;6HT1QbF( RDyң[ҀR;KcS' VۗIDzG:+Q}ܘMC43 '{k@^F =ZgfԁrAa=wZGa^SROVi-eKP"̰GpMɦ5lMDםtV'yR,  6F!aH*)KҏG 8MӤWdX`O~HHVkOpd]znJ#A%{^8z{hC6cFW K`-qeJS˰e?_hIƯ[7f#ͤ}eU-d2'GDjt+CDP=botWx3ڟZ%6d)/8:M[˞+`Q8>TDfIOnYlx'6Aqzc/چ =JBM>Y=UMT:0$ +ҹW'\L[݆&pۇ2F97}y?6 .gO=z3z +1$l5Y!lsԎƋfy8 @O%R_/Y\"Ӹy/낹AOLJNSEGcHzpUNV}(g^ +S*⏦X,&\np{zCAJv4b.e/2o׿z65N,Q],7Ju j6'm>a茐zU,j\4&=ԨJ5F4Pكe'f\T9s$Dkx_Nts|PWOsϟE+oiG>^E#%>lԻ's?WOL )rQwގf# |;(qu21/ȃwS3ȁ0geFD$HvS="oIbu-5d`,T&!(LhĹVh:Lmo[LSa8|Q߅e*=Ws\苑vlgqtbV^+gixFᦤR;3́p =Gzhhs^Pv6jBE)]t.xO-ȐCkU9溣Ic*CvO⇵`ș..b?l~*4O;qotȼlыmp搛O o<ף +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:20 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -37.1111111111068 -199.777777777776 1.6875 0 8301.14814814815 8390.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -37.1111111111068 -199.777777777776 1.6875 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3olGͿaCB RʔR86 +Mw&(؝c+ȣb@EcϲvVXw^'/guV#7 csmP̾uP_+tԐmh Rx9%KWe48d~Di. gE fXAQCH$!H\Uy @$"a&^(Iᢲ:Q4jg +sH(~> Ec0X`La^" +FC)_!F;j8@; DP, k,Fa$)FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳ge2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHn38>* E)Lq +T +b`( +EE^Т.rbX0âa12 F1,g0 FcQ k\D6P4 F`h44 f b0c@d81 m5\* F0c @ "a*;+#P` SS"ay`040L݀HTv o@$X0 gD"aÂA`x2 21C11 `h04 F@$ ECx#ظ5A Oh0 d 0F1A bQ0 bP,"[-E`( +T()Q43n7$C6T3Ҳٜl@l xLD<,$,6\18!ut\5a S-̬Vk(jzaYUQZS -蔄tH̠6Ț2Lc8704`,iG *lf z Dc0FcY,>ɹA$ld   ++3ΌHXP2 Dx_EF"Urc1Q b󴹹"qDGu , $ D@Lx@ADÅ 8*< pƒ 8`8@x@ pxD*Pp@p6LPX`C.8 &P`8Al

^OW;Ow;B,:tDzU^{p''ب-'6R.L!i#ғw;+']HX"Sm'䯽F<4VeeNuIQr(h{5Qx {*%Wz\1KbqubDF3ۙ4{N]^9=qo>$9 |toʲ{P<$Wb}O8Qew7V9ȳRM:y&PP]+vjfFvr3nzJY5:6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$Wa p`*(dp&,Dxhb[]<'VD\KqT6RX!bt$I1Ē)V'y{/S]{Htrdc(|4S :٤[/O7$J/w!Ui#TDc=ʏrweْ;g|IKJ"iڊ{棰L̟N~e.ɂuXmDS|t:25Xf+:9Ee/H~6,}jP~>^%9$j[$X9:?#Buخ>U.}\&@\Bi'n}$G+f]V&I]'u$3 Ȍx URv8z  8 Kvv[A[MIkuLǝ^Y o$uPZƱ-ۼηӻJo}ۍsC'Օ!z)49AhRtd_~T1ԉ8GӧRWq${ vO:xxl72>tK갤>4 %Ju{M^ZG >F$$֓NXY,Krgrʧ^ޔlrNcR*ѡ'ULzŻfO(S㴾pnrɴbS[ڍo'HCx*ўH4CL\3|>[-J<2^SHiR+fsؓZWW-nv&hCv9˗Gj;/sh- Ae})y H(cOY'HByplw3 UeRM>ŢohO-VL3 esX3KwVGL13j;14{){"N5gޟ!͑ @@ +0^Gd(0HpxpB 5B 8 +DP +ppa +p „ +p B +p9\%^Oz|OSiK%X I-fYtؑ9S/`'YÍObď9~X?&%yBKR +oBf9B $ܹU6)N9iB!m¡G*'U9V-2)QV3gt/uBfZ]imJul+Dn^_'֚ CUS+]&qƲXj-Y>W{uL\û7aclIdqVC I%`wI,o,R>KOڃt+3F9SD41مn62;1|l#bctpggfrrno~2ubUur(G|i#vב\<7WUr}:)Jrbv#)ٰ&Gi2We񽈕h~KTs`O*3桺$2o>ʺҡhyYMP-WvZUvMRVRUZk=]N˲[z6uդf]M}FVDIggkͺvk%]pZciYvWTDY ϔ{`Uۻv"+Z^tWv,ˮϾͲPrr%: +9=J7z]U Qlyb33Ѻ=524ʙV> 9ftw98Ԝs’2<קz90$e9,vV#eJ$uc#~(c>_>X֮9I/;6X '?yt#Īz@OYdXڲ5D׻myǞ +Wa>/۴+~w ZyUHeqw4M'FU4R)V}V{VDWVZ83D)4E2*!ZŤ)>,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ Iy4eӧ 8uWWلGPٮJU7SN^~$G4V~V%ZUx*Y!ɴ9uxgx(SsNMX0O;6sbfo:TG^ۏZR\=%? +ITWsB;jgJB!˽u We>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛJJ}2tS} +^)zvsf>F"4 +SJG}ZR_QT*n}kOsؓcd"2~:pLi KʻĻ,]+IIr:t̒[eIɜsUq&݋ȼa LZG6w/+Uw4$sGvRv\\'fܢ}Jؒtb9ۚuQ2_4'_h%cђRu TGxiP%[hbuaɧs,c֛f}Pi8fR]Ѥ-'T5zUA DLNc )P#088 AN~B^@AFzNd )['dj\nBmS>=J06$"pL `py"-ЗX';h+0+Q? "MKtn:.\BO#@ћ{^.Ȧ$ HiQhzе:5W ܼ3"W'gKre$ i<˪omy*"WgM&z U/֪DA?OZ_M^8.?UeN*z`5=%nyKvD.k¹1q6:` RD[eDeƳ[w2mHoL_P4M9!I%=􃂯ZIKZ= Of&Q}҆41[Q59M' +=&JQz,W1Kw:K\6 =}I-Ŗ^rښYA[V 2Y{\q*?o K8JCpp@C1 PT}yj$)rԃޤn%-43ê;~ 9c?jQx~.ٵ 2(!R@OdJ­R9~m!FpN1,WCN@h:'ge.ۥ$ 5'ݪ+p8ix)|.gpL9Oߥ0B kPJ%?`\MZKs&sB$6D0n >W +șf)DG9f}[j-IM1έʴ5(c.teEә|c8d$H<)Ni7AXڐW vU{k];`ɀnh*ЕaWZZE]E3u"4$Ѳ rUFJ륀/x+9TNbs}'6S~Qr!Fzk,f?+ +Aaj힐uWgA2Z8{I(ڵƝ?l@4ԐMS\\:];FH}fV ؑO o!XGRP"\AGWBZS*e0{ډXb dH "򌫅Gs\.bRH +B# ROJ^%iG0dAcU{'E3V?eѭlZMݧw8Z\ mdYZTH}t5TcĨGiA"q)D+}'i޶\l~R6ik+N? g =MwOQ,H-vDV {=O) :{0uSŒޙ1 kiXɵ + KfOs=TcsN/Y\i9z}F ̞v&QNRjR3T\6$<$B*BXXaDNb(r"9tA^gsr2wE1=opmU@` %:|b|pb>|0է} 25aOqoE}hw@ĘUAdUEp.Vm<)JJ&lV7#Htu2]>n];t +PE,2X%~3Ϲ n/̰!-aV&{:p0èba!FMMRGT' +`wj  sc20JOZp. +~O7@LFc8gigސ#Sj7P1zȍogȐ4oCh#%ON*:s( Z"03z$HnYq6vV_ex]opZo|<׵ftZ [.tiaD4$%+lQq1TF1Y8_A.v8c+ +9Ds wyDzE5PuUgK'vJ32]a60kكwt[".f% tZ +IN` uC.j"J3/ыrŪx3a]-N 60PN W__*x1;]]q7]_N(LšhPLE8A:OFCl:W(gaRfXp]%8W6®v`>6o Wo؈`s\o=*"؟780 JFUqnH*Ų8=ekTƶASԻppֆFZP ]jʕje`fQ^MGAWر(B$0dF~A)<).<  m#sh7!zڣLr(^LXdT(lca[GΠIm߭JmT߇aɳ +_"x(*VG5OmZ/ ē:VYS t]Ռ( 2*{%&\f%rvk)!6L[sB{8M0nLo4.X/σq%hl59_%w]@Z8xSeCxY!r.U!t-\(P)A'~"ʘf;x3: 3+V0͊xgOJh-O52ܷ1t,@uȱL(SXTUX{׆l0j)?0hE&4o HhtX +Z{YRhc drH6O.dD}Zqps{3(ƛ' ,\Ӓ94#_tCjD5o7z 5U;)b84 wu/[ov]z_b HV5Bh}%Ttf<83J*o)QH'׸fAgd̬S-hA= +i s4"m2L׃ X"RmwD#鶀N46rbR}|P Ճ|1z-"z 0,+%ICBU1Z&sg1XP鷫[ 8›GxWY^@GWRO\+sْ~Kv8D81JeVsw{؏@M' 77,o=o+B_dZ7I9$ċժb В +-; '_=knd!g<;ؒ%TXb KefZ5 ZŝuP2JV"0+ +]uslo֋ŌfU)&!R_B{y>a%wM,<"wH3eQ)OT}5"@;G2S${h+=$,ej/HF-2=nf!02 !E9gy*<쬩SKl2suZu\8k¦/n<ԏ[4L삉lR+fG@$^_/VrƣQC~}}%_HBt Sԅݱps6P CrfLJA~)aLRJDS +t @5&Bx 8f+bog- h, Ώ3FQ%,o!4Z 9!U ZϋB7Lʠ- In5\ hn.d䅃!˳eg;] 4SKJjh8[(F̲Cԏh4NSr>1댍#듦Qx`rUCɗ|b*VYOܦs辫:NO9ǢOJ~Į~`K|:Â)GD$u WyV |VEW~]x6F64$V~J}:(}|Y@đfC/{ !ƀ}zG3NFLbk:!/$&<^:RoHxMNFJrLld?ل8>s(f2FfD0폺{çU)cbDF[ Gsf 9U9O}Cox$6}`mJ~usTt`uHLZ9<[5X։gUt/ejYuˎ/(f}:dgAYQa, T\j!җ|RxUy.ų6vcÈЅ[ştGz0'TBB;9q Z +u޴/q>i^VYw*!^ ]$HQkU9CgMEliCw LRՔBh 4E*%eja JV{mgUБ5pK\ߵӝO<i4W{1(7Y쐀vL6 [[^k D2'p) oß& `]JK ru{hkO6Ybծ9| +uJ_jk/~}aV2>&Z8]ihz7պH^M,h⥸I$}gB]AH٠i7,rC\C-R8 g\#U\xIzhx]\ 4E+ +5\rjUM{_{f֭F=ŵclG +W0xYJ#Պ$\Lw y^_Lq吘WSy80"Ot``0’'7*sIrMev[R'13aN$~u=mT} حf6fܲCeêNBVKȹGElj#"|856 +ȎfU)/ +5}MFCIb]""QB.9ř}jH`ivj%F 'o4,~a/|P%tHK4sc3_mVܠmQX=O/7ΔHD)۟-x68 "0=LK3GX`1PmN'#y3$jᦂ;\uK_Rg>$Ҙk*ЭДڅZmWݎ4L1YiZW鞓#Ghs\+J@9grPh/mef&d-;uZn]ΡJNTnBmj?1I/8S#m'_.ʝ} ]0ىkSr)Ca!hpncT+KaލҚ|iJ%BcD'2 ++2 YҏLrZ#Z,5`J+(:fRKP|[[.%D3Q,%!$e[ m B8G=zA%e ]ÖYYOQYڮ+s{h 4BZ KδeZJ3تl)<ے_nn)T5>o1QX෈(ʌׅ1\Q6W\g VJ%vhC]oeT}YeD+Y=e?Bu>m ++_lV܊M+ \o 9yV{@E @7CM I8fIs};vk𣛊C + ʆ߽57J0kuoZ+_ɸo?N!S(Ot5:Z{%tOK@8SD]*>E-,#cM]NoAV'92`F=C9C, $RMSe3q8E „fyZca;8B_^ @rZRV ޕTF.x}c=2,Pv*@+@[j^tih= 2|38`R$W!W*~ Qt1D1LH|\o-41k='KzɫҹLܔf ֱkmAӗxÚS*7T9kix4 +ZhzMg_b +"耑1u*Ռb% %-(M B89RhwOcIa_W_ZIRI΋Bt XRzs$kT؛L$O?J(j.6';g }e q<![ ]**-X@ngc5](F(4(ף[\0}[d3ʀC=|4)<\iePV}mf1\veG'ƫVV95F{GЯgB)^uSdoX%}e@q1@zTlciRxC=FH wEȕ"Sg49\xAF+r<9:Cu3W.΅jq!A!ValA8lӐ -*xE5B,6TA:ю|9{c@"J2s\,Hy7%"A,XaP +_d_>$T#jĪ5v<^,a{$T?AЁ5@[ X=j2~h:Jf:,$Y0L-!j =WՅуmBH`Z`! jgC`i\ 0V-K\pO:D)!=Ѹ&5D\m.3̈˕[3['gVH3ɖZ?[tnXDjI0Jp#9 Dh+iN;{ZyђlY/Z\ܯnj!f)u^9³ȩV!nF)fL .}4cwLrMn2:8̆]1p7ډHi +:˛ȟ9}VKҲUaVVyWHDˈ5WrJk dʡ_XBbkcAf;%V ,RbQz(vje,jTG|?e KKA1b.̼?4.Ba5j4ҰYа"osb  +]UЈ%1LB'Ex+8Z)Pξ%܍I`('RbKa$ּl?bw߰ Jfi +u+Uc*$J+:k(piIq#I+8E 6]07OCr&:H"n;nu 4hxM JZb 8/h <ؑfr9a^7[GVue#|73bRIf-#K1 +![_ˑGznBtRҞ9(Xyӓ4BcTxT٭C>WC٧K_ ֺ}ʜ&56ywdӪGӛ eQFI`bWF\eV?Qx.0F4M7>V5/'zf%@D6Ã\"\&-Ir"2 Yr>yZ+y>JYU(m +]KvAjk(QjB?>hʞXG˪m*! JygGLzbr`c>Cƅ\%Gl;DFhhH?(y+H4{ʢAtQ!<K\`wp)X^J `JW|%&coa+H Ϩob<,( +!G: m3 ك vW#{U*yIΚ6R[ ҈!eh?Fqʐ߱z=[}̨ؐ$?pfsjlnoON 6ʸ\ +**}#9WlR_D9r gWR$f&, };UDoN2+Wa*gu5g Gg-bӜ?ۣ̏Ϟ ;&-ýk3J-1*;޽biL5Bl)fJYT~Y9l~! +}ʪFbXJo@B L:̫yIOw^ʠ;S7xmJNcCN cξabc[AL qQ$<\")L;ԭ%>U7}c)7Zn3mhnPj/ƩMq ;y<魷몏Wxb'(o`)-soR$5w kW34G^:Ëq, +u'٨VΔKY8r5` +ˁ3a;^r6Ya^24[&(!f#@D!bK-Q _{s5_[E!t25[V6M!ڣe{hWQ!ͥ~Pik4<1SZD2Í1]tl&9C1ʐLK>kT r|ݨW9٪j4_ry+W4ϣpf^L8Ɍ%2#WCHS1F UEVصzx ʩNAZI4/Jp<ƯH13{F'}cjN;5ŏ\*NϿsC(:ΡHj9:ŧLCSCr"N@̎`R1-LጸX< 73SM@t=^&Ko #|dZW7 +P"th`*n\k +ȶM>bdԏLa&.&XE#i1ydrM7|Q;FD(Ю,j/:OOߵaP+ ߁NLYM'+c3ȋGGGKϒy6l:q+i~;{HB$_u>[ݭ)c9 ,$G"؈(Ŕ,@'+ \}s\Ѥw 9Qx2ȿ[4qA =d#B.fouCr45c Gӎi=]05 _ ]ā)HT0w Os#CiE|!N쀬q lt&3#]*ڕ|Y/:L]+8TuPOP!s߁(rf%Oľ`iv).SQ$YɴЏjKpSjDJA^\QzbZ{yDICW[ QaWR^o0$ݠ23x]I?  I!@x]Krȍ$4&E^݇,c(bV mxsƯMzD4w3_}@Յי(^{lpSֽ')rqiOuf~~M(.d_izrƩN&Ƭ"2 U +Q(ozvװEV j@S:Nf$x.nzj.syĕBQsd6D(+Vڶ=РGeaR/aUu +VRҏ;›7V|B<E#+pD@v8"hu**CK|gT +a{f,gBLg}鸋+td4ZX1Cuǔ~G"smtGLJ2-Um *m +ӖŬ-0]o\ =QC-->6 A(7D)w0js8>pl68 +9F%!c : F<3i`svnMz?Z %A KY + @!H%g;ޥ4J}dETXU:F_sz!ǟY`,JlucB~m,F6.6eO)ڊ%g4MI9|6jLV?OԬg88u.k&oŎ'yXѰMف%A#G(*Gl*ggb%QvdCs|J Ş/~ԕjT9vƗFחQH%KD?fUdzHs3>6 +$"1@?A>h 7x`}wͺkޚ{U5k2)A.aӃqx=H=6{J{C\ A0kv%ai`] q>yss80W0jh&zdȭə[%!tjpZ)Nz-gfIJ g*$WD0vMLL nG^N\A؇gQ.װG4' ׄ/BbC@;$#2*SRG&BI Rg彴BAH~}Z߮IeDEOI.Hz s[Z![;jK `tS%gq耢i2ִ6Yʙ lWh,Cf58N@Vv~bpdl(^- `#t^]ǹX)+RЁF !YYhW2} 2.zף*?S9Ϸ=Xڔ{\hJo]j;lҳ@d*4fY4 fOvq*:8oz}ѩ+vݓe^R+P-3-5*-Y7׳Bt3Ij-SydJ\:,{\8sOqOoY\q /7j1wl+&̺?1نWaм'\PVS;AZwȚ'0X]9N2%9~Gzr ۄkVh_O_LJF+IcByMh9~o8UrSutWG:9r"5 LV=G n_&` +KX.sXU9ʜ <\I::Ybz+!/پb"Pw~y_5|#9Hِ$QpqPj;S⤊aIզ`;Q-X.|Vgg&y[v2LoZ@Tkp`@n{?O1?+ +;8]e`wUq,4d2S$8Kua' q^MI&7Mg؁YPR}품iT$ʹ;>Q~_2]V]dSz 8x2¸#Wq\DR 7PRk(a'3F@sw8"yA}]2Ƞ*8a2mTYǘ1q'z=D[Kj{t9B20 q9?{xDt=C$[Zt7XnO뿽.n+AO@tf̲̦P|UcD/ZU^W`;9k<t7c*,~nY R~53FNez~Q 8D7}2ln࢏֨ȹ.i{ݮI5rK=g36"i@Iy 7YUD̺ p!0F \]`^2CX`>cF`j|q6lqBMjWVVl57Z Eì #4P_U"B#Mk.;<X(c VxϜr i8ـױk6 ՗?[8!AA2 /,#U-,$Dq`[k 崯s?: **ZS@r/tnY?E&K| A xV_ǯV>ڢ5 sܪ$O-E\/v=1rۂqfommJB@hx1o~qȈgQUpliXEb@'wn=Q_R3"@˨!>ZZvkۼ {E/#P4Mɞ*8}[)t +lHίgN{Hi*xdȱQp.Xc^ ɤ]7Y0]+ 1?)VX7xBV^ 㬢{uCXft9>s!WoULBOG3rس!U0&#vvgqT3X(T4y bײ}w6 .Ri+! O{@NK-^F7toys)DU0ҭuG^M۩o op78s~^K.h7zIbeYmO-nJj׫֗n"/{b&͉OB+ ~ٳjt+#n.rlUL59d@gX1<௰h:?n|dX5xϓrq1 [T0e1hb@s" -@#`r ?Ba]^ƝQDpTMxLFqbzh b@&j:ԩ{  <D[VEX,m"#z(z[эs"CUV״8'E,L]`OQrRKD3/%`SVʗHa/yj 4iw)ozF{ĔXH t`<}^BW ;eiBB=`wܫk]X26{s=|J/s1dDbK?YȜ  +R"vR0dbh\ vܗBFjThcEwb3#&rJmϿ 7ŢY%GC]Pa9RP#]:YD"C9~:@0 +ަ9}5{`\# %&ۢ +.|v>ݥ y^Il//%=b}bBƺmA6Qa&4ˋBZ +ܽͧudPs fE.#' HZD*d@)I5$y|Iֈ81s)yǶUVX'( aBQTϿV-eΎ#$.Wd{ʽ;cwQsش&dmaQww?eGI~},>GTTr 㵑V}ܜUn"w@k8en#F-TTWg/pEV +XN?f' wp =jnF Ia.%-RJYps31M#乍m'jvy"ir6'Krjijxz&ȐcDJ]eO2e{%n^]\[C(z;j[7ŤxSm-SzgnVH%eTDЏ  ȗ 3LBֽq+'rޓ.9|#ǹ#sppS 5r(.`!X 5y(Hr4nc^Y)w Bp5YP0M{*qLxl)1HN^{XsA4Li[@P Bt-)ހL:rޫtAW&_:Mvh*jXP"`&_5uO7T*ܔrꩄu|v6aW`cd -cFJ*xĂQ8X]9Fg ˰ ($JutJ{ı"R(+R!#_ُ pAYű[A-nq[=u9Hw聳Ct:LTiH[u +׉ZWN&Wr-aߣ:I^QLKH޷ZV|:}VQ%i-wgv ,R\p[D VZ} {X)2lֺ*L>~dv.n.PiP ܊kQ 4j?I CReG0:`nllIͽQVGDs\uø-'€?j47'p/NV,.4r=eyZEҭ%H'S@rY8h`d0ׁ[m 2"DG@ ep@m=ʋ^,.&f',v1(sA:)RxnI2jï +O5P +s5Ȗo wr "oR)tp] +(77m/5;0FN 7wCp< w9-mo{ _ s*+ϫu3U E zZ? dS]![-9{[5ar㳪ںNvȿd؟Os5]2#?! u|\\ Å ?iѐỌb.)\"X6=VJbE>!vB])@#z_#En=Xma]C3q5Phw Kޭ4~)?DTeqW~?԰zXpIBM؝IR2I^d_u[5}C7Y\&L)&՚i'^r'BmˉTXOU.bpPD"'JS[&,L6/*k,%+ +$K|n7P=H> B!32,)BIB@)>*He*$$bI!MXEP(G"#@"pBHU-| NCydB!8D!^ 1̆ +,)- +ED M$Pa3Q +*tjj0iÔthuvZ ZYh4 +,;ز%ؚ|؎CZפwRQ +2caþ! 1!)lFw0aJj۹JeCULƽE0E*1#PV'&Qx$jLJZl",RadU2X"vy0A(wXRVTXf*qRg@7zф'= q´dġw,r:dÅ + +P\ +WP(NSH߃).3wxVsB4SVv&>ںs ܉{;-;0WrwI,<1;i񮍽<fݣʴVhi) I}J)dN4D͂/vjfA[gPpa1y.U{-}ʹ WbRRb<8YhO*Ef)* +rB=Qk_3&LrM&kF T}*JHPTj(kMFy5\!+{R1RY]=,UycA'DƢjA /^/$- l&S|iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WՊ1SkzoK=>ὫӹtON'B+uڗ a.q)ϮqG A#Xkq:pZgzfx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR\^:FeX 4U($SQF'AIeUtKt0/4Zn3*ԶAD +%IPyt +"Pw}|)x<+UA( ,)Yo.^|iclURmJ,J/c5׈Z-hF$\ձ) ]ݱw]tUZCgE%QV!ey-HsR"I"AG1$Ԅ,Λ#eQ(CDC1wWLm?F+ÑR~%y6~S}cFΦc8Ss/|6/2|Ϋ1W"Tɘ",ƶ#Q +U#/TzZ՚К.1~%f1u؛ ~8K2I'd뜰+#+R1q r>k[bg͆1EIJ\DZ;l!Qguڂ3 +~XZDD,2$iFFș8cDTkH[k%1ҨBtĥ?f:k^!&hVt>np#&21Ė83F$yFm]%$Ub,bjQGѩ=4І$쪙kR!1]mWL|T5D.F#$"#>ȬU<3^RRgθ8v6Ųh:Dud !'deqCcNlm6s,Ρb ta ]) '"ƽVTJ>j !yȹ7y71y%!ڄ|b»j9P]"Z ObD/}璿ea^h iylX)Q432 .]pH3AX3J̅2-R-8xEJs WЌ^W98;3TGd^$}fTRa)Q N,H^ IPHR(!9 s yH4+8Y?SuGN }>DfR2"37$9hKV'5P2N̸$,aWs4&6^-S%Vd1QOLW5HQq1&VW̎ +V73 Tfd*۪j& fw1R'k4>M_;:b-dL,z։LF6llU;d#C +H),Dv=f ɮy |̾E*"JS|J6F [4nZryi '&B*Y1B(&e^= +(v!1ѤsP:-Dj$*:3_#ZLE[/.x9*tܲu&&MS ۵ +cFPP]"|fzK1 AaG9T\+`TS=jP!E>-:=FL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pX^r/NkdjCiտOP%"覓tT؇tS"UBQ~ $0D> 0D"4B2p2@tH͇U"iUόmpu9PD +jDL‚dm`` `c@FxEd A(d@Qi$.uQFE ]y`QDfBECEݡd0Ux*B#j[F{7* \u,aF5aFB2'ыj o4רB N4";gIAH$LtTÐC"H9iRJ@ ;ä"Kog[$K'1<< ,Pi4\B +EDeB2 ( 0@¿zL S'4J Ox +L#:<\ D:MH);HR+)u AP FxC+ p @& BMM0Ԅ, +E-4Y*Ee# *QHDpjͽ7Dj9+/  +\ +K%A@O&YF^kS ="\kSS*FWy(z(_w%'/(bȗ6& aePRc`=q52BV/ROh:I20p~59|A^4U#(`FLDBĂIk" 8/ F!(PApqNYy zfL4S%T4KMU,ʦTh[h(VI7kHx-5S4їEpJi8:ںj>JKpc:i~ҍs\d2W chL>o'gn2GrCs+_߷?kWSz_?ýOGBNb&0SA$ "% q\ykGi8 Y93ٖ%g\0PTaiVUܰNGh"JY0lÉ*mO - =J(@H"~PkPui[/|-vo۝ˆg!B*znCvSM>d MBP&@}W5w{A'IN [N$R>ܝd#y] +YӬ6Em{ I+mwij؊\ X#]Mہxb uB|k7l'7 anFZ^y* OTC1kZ`Yh{];E ,t`>uJNiA;Tݨ?S5}4S[ƚNeP^cIB3 Yv |aBUw < b]{Re-dçWR4՗o=v$U ƅ3Aw07jSr9vEn ϣl d9x¨inSd:w?@ݴE89cyPKWbD$+q`W(; ]m A !t|YW,}1`CBkۈ;ZazF49@ )Q_7l*GtK*.ey#]'^jh#If 7rNf;p)nT\<4^e1_99N$ P j'l'3\=K@owҙqŹZ;gGsY{>Z%P9n~xenk"V>yҋ#hePnл 䃻7HłsE$קdGbkⴙ !+' ԏ)-ŀR@Ug&0֎&ildGW}mKѱ0d˗2瀊AyP_ʇIY+ +]șDEjoI߫m.aFGVg +#|lU +նOh>1Y /d̀K&R7 '/K p %R]8D&pCk D]ܧ,z=X2 +- B"T!]^zXe3ЁELYt4n/{7:^IbgD-+䠟TBvX)@oB_G$X4F5@(LC^,f}IBfJ*ڃ&C_bP +uuFpVHBV;id@N雨uWdr)[x`+)@W4!ޫbuE}Ha=F+d\CU!]H Xj'^l8=__?Uܦv6ozkW~i&n+4|T5ī` CbnraN@6\xQ{GmwQZ_ˈRcJ>VF:У|P*,WyATld;1gQuR^Z;/+6^V+:e儀qC'RӌDXF +,E*݁e`q4$FBX`[JaIH}Mvuffwz =dԊ-T*g5d [ 9PAE* M0/t +v\sCtY9΄p?>zsO_WJ9/WuSыG03Rp^"VpFR'zHp"'ʝ$P؋: ޼! 2*Fg)NH]&UMH#mU CHl9ڣ ЛܘQ,f`7 BXR4t>HZm|[ pa* ѧpQ*~~MΘ4$_ۖ0xC9bņ 5ԷI8qy.㋶8&fї0۟p˺MgyagITfJ}s +ޑ\Jĸ `wpFQaEP%tBY YFJJ-URZ\` MtF`PRGf@A6 VM{{@;,rp|7"~8ht,j&CP +3TQ@m" OQƀ:_9V<ޙ/A/86+_!!`轍I::uUcv1ݩ03l<P mN$##5<@ +\T"ZF?^4nWL1QƮf[̽-\uYpyU@_ /(XEP\xR0tPQZ\WQBa;$]JG75ٮĜ?slL0 ޳װͼUC"Cg0?ڼkh<݋YlwكdMd\7\f*oKk +CC$*,mt'oN(b eY OJu~ܞoNLxj9h*B4-P8\-4cIt.C0-z1]B"2Sbk3&#6E 2 2`-T#?lcԾx]`Mgb\1LR:e!ڻ@^+{H0 iF2/wu?OvPOzjjfEfFTRݻni̒!<ɋG.,&/H}z- W?Wdљْco2|bOsR0t$)E@ IҖGOGi+{FZNOUs}Дg Ej'׺_T-nߓ<:S/};WR1,+EJ8[`pT6} dwXCcA`[ 6hht?U'pr,rq$x$e˼Jߦum#j1RuCI\^hͤ.UuEtIGΡ̳Β‹#.]KdރD1hĄU(Z+> P3f!p+R ]K+ź2MwmElW˒;dA"V5g7tn(xʧ|"*2jL3|. ; J?Xok! +;an9NM?f~rD 7"B'Hˌ?~g~aG8 3yTA3 (8DuɰNLPB)87ly :d{J35#F6ĵ3k6d kw'6<&꺺RO,hͪ[fշJf7ן[[RpaRiTO 3gKFL Ma#@Kc +FĢ2]JiHgE=:dX8eU*C#۬)vBMP4GCRqפжThHoLa4SwW4m^:'^eh^_`~J($ ud{V; >;b$f Ӥ{J/򘧠vw%GNbkۦ)wr^`Kd \ŭ Ѷ\a47⁲awUK'x3)0X'0:DswRB ՟:h6ƣꕀ07> +S.FuKT*(y/³ovab &\bGZ6 ꛇ3 2͍Xdp| N?kx>V0`l6/FZ˻i|ˆƃB{&/D)!|!ߕXh[ɰgg@2xSMks輷"y ""b_x٥l2zl#rr+s՟OWe[3bD^x`YO2{9ʛgE߰ +vA2PO%jzyƎL q1cIAR ~iglބЍce .bI6|7#,j}eX!N2@)W$u@CDQ8C#YW`{?45[wэLP7:@p"nB 9Y =++q~[.-?"B6 j_OE.޳bNKGu(! ؞nI#C0q˵ 볓NTHL*ǫ˴7Z!XӦ(2?\N@w]WG0=$0x*UAexQ |hg +YpFye3j3?D ; 5л=ߵ!eTWňg,`>d'c3JT :ڕJo +=ܠ~TO}sVj܄p$y =:Q\ )j71/}N3SMD{daPge, kaGabG`..Y!-뛈B) |]jY7+O@5ܩ܆@)`__49 КkDyuZcEq,EM}ps/rE>CIoH\Q!A^(ف*vJ JzJ k+O?UL+2,/\r]X?N1./оJbϔ!TҀePHoDT~CDȮ!tCQPR}.^Bqu#QQ,b9L}@bBˬB?Њu +eJIB$1$R)" r%1h D% )!#JJ(D +!H|rhr0AI:ٖ D&(2MHjO64:"z'IX|h|'BfP'Q*zů6E+9Qt'09~Ґ>BiI`AR)v.E|r2SܒTo +4hkO@ŷz;Q[b,zlSgHȓ#Ll$dcJ٠m%jcHb3ې IvCGב97(6yPoER]cEroQ$1 *I~HGnC¡n! #$1 8Lšql#) }d9ʑM-G.=rsd#94#IC;9בutdC:LGAV1AHA)uˍUG#'l͇;LU#yui0hC##W0xXcF;xd#gKy(#Ẽ)/y"'QFZ=&p_HF{EVqZ,2#cW:Д 3>"-|DEP# )"y_>a?:Q1l""|L-&[Jd2=IDwd kDVE_HD$ ZCvYؒ@T-@@:- ѥ qAdCu!/A!C~ !kBۆ֐j"" H!MȖdHX +aB20.dB[4D,D3ܮN +Z +W9$M(dwwdcGTFH&@?BXBdJDR!!DtZ" M$c\-x27AEBXȲ 2`2:" 3?61iEƉ"SYX箳kktWAKi5fEv XDFX4)aT‚L$b)NчrSqjy"E"| oE9@VK|o {-3)ŊD;S bHSD2n4QB ȝS$d/؂F#Eb,@E2(8rQD+dOD[L މȎb .^N$iq~~@~E?8YX%'FL" YGRTvj7"9ݿcducۗ8"E'} fwTdl>[>ԘDؒo|pK|8  %{L$v$ءDBMk%Or,XF|zz<"aNh#PQns hr8DjFw.$6塮)yq<xDd +H(G01jw+fe6;|a!Yw`HC;w;NٲK|u"}gx4>_G"R?mp":a"{>""fna~D1JLt"\H.eLT\.>L5Yu"kuR;E2UD!#*"MN/:"Hxg=[41jCx QZ9/zHuEԧJy68q#юE1r㐥̃;i824\#)6RDAQ%G )HCoGxaG>o7Doчp2$:$/ot,td0LG\؍{$ɟn$}nXr#2&4n\$NmHJsDDm,)!6^MI1JbDҳ1 lؾ1XrU_*1ʖ$6&w +ji]R-X{]#U?ah%&UY469$! D[&Ẍ́gA5vIRÍHiMj$QiгMDs +kH݄LLo"fi\(9Ԝ# Gc,s&xh '$O$ u!/dИUЈH0qϐ{FmNfNd5Q1i/&67CFlszf\N+3p }I{ :ɃW OʠT LծPFA\W}d Dn'Jbr$y{:D!B@1XN1Fh#/7}iND8ȰÅtu1;QFSa0n'39I c(H0Ƶ% 6΄1_*ư9O;牴 F{jX ,0Io {`nd 8c៬_$E\P'F|sJ{^tP+> KCzDhBx6P +/d_".JG.(é +zj<2H9WRH _o `fS" ,Ki,.n0%p@\d[D69[)ٰx$kA%l *zbU"c-Jj1 M%j!Z=EܨuH=UBgQ骢Y`]͂V٦U0 ^E² +O +|,J fc+E]Eb[ EX+B\f_YW6+Kf2GWT`rE[VlDh.2,*)c"_0WraL嫐aQUpAƢ+WR*l!TY*"TNŚRa*IQX +j΢,|BB)zS)tPnE@ܢ\lGD֓ewi(64uE"QD"1\S#CVeJpPQ-B|@1PO' @|"8]OƳ h;NS9|b9Y"E p4&ʹ $ vH5AYN[S7W4*w&4fDXE2Ll.&+&f3KX0u䗀!YyN]bzľ%!u-YcȖh,,6=nz%,,Ҭ*qYLb2hk@Z> G}͡eLRzgZP +jᵖARbٯ%-hKp +)1my>[XH-Ը%[D`zt? .D֚EupˤByCݥe 6g䮢tJ$;låu҅*AR?KOxJi Tl~X(ǥQuՃq ƄrL2P9o"̎D.D颚"0Hu1:Hh. ]6-=L x# ;b>GS^E,T=ވKj6̪9 4bz| ]FЗ1B}QFD/Z G,pA|_BNXa+>fyT`hg<0M0yM#|%CJ`lD +U"'"4,6!TЫ0 +$(8j =3D1W-ש3U(b,fH.FϖV(DD3"e\1 59eqpCA$Őa@FBfHdƎa(V## +dؠ vd#qMf@4d$ 9Q~%*,#CΜ-?P?v_F%n?Nff3N~UQtU7ׇ8#*g>@:igɇgICVL{`ۃB MփED#{dL8fo?y!HS< `PA)0j!JMC <4mjsz8j̶RvjT %0T]MAjOCdFY]!tB9Cduvw=N1,;]rGC vG,,WB#+4wϨ[~ +0n344 +:/>S`UT~Fx*0QW5BYBG8BgS87Ŕv[vǥ"*mN!ja)L%,yK!(R +ג{OEDGDh#*Q>, +UBaf$i(lTgbٻ'X{J c^z6PeD\o@) J~y?4RyBlJZN`Ni^V}w̝P%Pm4g̝k!3Lp'{/Vt ۻƕz r͒F /pNs G-wMZA'm80`&902Ɓ3h>qP;1~>]8`Tu%p%hA *m#X sq{@uKmq@6R>2tč6"*_De'r߰A/䱀k6lc +4c"ߖSdwAIF!  h!MJ^Z%>VpWs VNI 0o,~k#Γj=d;;e9Eܧ4ynQHq{ KUbpkFe !]Zh1hXRe#粅0^f`kFzyZR0%}5r|j/v{>.h7bC #w.3x0m'FC[m%~Kl[I'*Z ~)ToG"']"d,R؊,H*>B^%AvqV]A5\,줔d2"w?!*p|(jD|{\&L$RAWy"PXs^!n +xXRKA/o nR0=&;: +r)(&`^;̢1v2 +:[(@tJJh h"ɓp>uCO MUy'HVnMoT\ Ѳj"q#X 4ePL,,_>>_YP @lawߙ"i!5ҧP6Bh$0S@+c!!A3%#(g+¯ +s@h3 +Lӽ et(uDc,?ڥqȌ@q:.} DضJIlJ.Wχ`=!4˺Ls#Gz%8. +e'ԋw,`SHSL2~2шHXz7D0H&( 0sY"[@LFq%RP ; ? XH&VnEC{0I8Dљ?s#,%z7V?F@IO#;%" Yh!縆&mpddUl!rX㳫SGـF&6Vyg;H?mSfo @N\, ,2i( `o!H Ew3nL0nYLH93B悲-Vmwv9T3mw.aC9R̈h8$uHnphs֛1 +k*ge-րB&+7(s%%ĭXEU0Bjsa@q cw (Q-@eqR.,Eك)͢zf`0WPoc:B`!iM<]jeHIEZLbT]tA +fR:MMVh& +ۑv6nBٓ }+6g P>efO!i*/ H< `53XAv-րZ9%BBE#L5,ְd@[6 $_:g2Nz=>5 *G@Mb;+Qxd`Q̭ @JDf)d??'~ V7u| ,#OUTPqJSfMIovHe6:* +_@3_yux?xBp}G}G[qIJvbBΦL@VmXQC^cq]/s4s_1+x)uHhR S]5!ݙv`lÀFjd9Wܯa V(=lP+!2*/¯"rxHGݑ[%Lo{A${0b>m+V1ԗ3wRt%w:$ VcyW_Ŀ(_|OՑT`~Q} 5>\**}z +vO Dq1T?OP{4e A9tF42z;O"$#Y{>Bէ5L֯҈T^X6p}+ C4s7Q  @i7ƿ_u0 ?C[π鸄Wv_?T$դqJ'#D1x@l\磿~9#mA_:ϙMd8.׊J|a n ;"+UT 32w';M +$ٱ ~F;u{-rs8{|4 nd v 仿omr8"0ًM;Q^p݇>O:XO}=M'Lޫlɩ$ {$m1 ˌz\@1{Eglawt[xC!._JO?6ЉRl 7>ofO6ۛ^xkmp~)M[{f{ Dm?Aʪct*P11,#nq>!A#}|,ϐ\+-80Szd_8j}$qN#̾b* 8-x.R,aJwF?y?Қ' `v: y?d+Dv&⨗زkՊlGX/dz$2B9V?BU]gfHA;mJdG=(6%XP=HW fg)e&;),D[j`zd?NwxNzI8E;צ~,> +k чEe& ?x+9BԔJ1c&*mxAo5p3zhfGVM ޟOiUT Dd{;-;߮BHOuxL<#;DKp|>-6rI*M7|_NY@u@Flv<K_JW|[(&*Б`B^?G/{ ^E6Nj0΂8Jr.3->QJ#WxqC/?CO餲)O|)Nddz&|h@4@?yA9nU3亃2&$_; ho/nr<r ?ǧiBz<>\+_\BĜخUjix궃<-~& ! Y ^S0/XF?:d4d T}n6#E=74q '+2Qb{xOQd?ymx#4/bx^O [],Qqľ &'|蔆{Wn.q@^ f9B7|gHk ~Z xyab{ zG#JZ.s^;4 Gi94eޤZ]\{{}3iu=#]HnAr읷S + 3 +a]?wL˫7'o7O|J-8C| 3Sż8򉵯y;-.ةۋE }4qmg]%>Kb-LYlK%w}4}bի)E[{6^NO;juc7]Fr +ҳ /] ~8x ;'m$NѢѪeh=Lʹx< &R%:-6`2m;DƤXSlT E,m 9pY`WbL *ɮ0W5 vJ&J$.`o@lFRۥ65+>1)_lOY{+Oԉ{g v4(J`t4:'QLm&GA_,~_O?~;ci'qA,fbי3>&Z UDְ̿-HhD.8'{CvLwQ ЦFbΐ.: 7ͶiAW1sv⸬wKjXob9]Q +9dVMFoUՇsDju4 ZU.C.Ƿ jRzQju-鹩ۡ\ԧYP3QL;T4B3.^%ͳ[~ˆ:ބ`&Q.0)]~(4{@ m.xcQA6RyS٠"ƃ#ͦ32n#V7Kv' xbGJϭ$t^Ǩwȑg>ä}IC "Ӽ_p^C5:S#JF&WZ+`щ +H >U-9k6|#.%d"N^Ƽ,fr| ;n6:k. u -Äl\V +ηuE3ׂD8T\O-f=jݖ}/\=﯀Z3t1hQ@F&qB;0Z )uÛ^@irب},(qctP_c vMJ`h}"<\MOjd^Yű}wS3q2ʁVz| t-)u^TAwntU5Ux`n҂mId/!1 z'.1;ayf z[ nt&s8P}lA*/yJbAcL2t0;ノL a9gM[tr6[¦eqtj׌mAW玁c/,4Ok};\߂7U$ R<]ts@sK]As +z3fYx&xnY)+dvsT7p5KXRߌ+ U]G +V Q2УB/qNP6o@e~~D@pM638)ӂjn.ȷoA+U?cAGB ݋#zi Z؃m Cs1]uZ{ZA2 8l:!hwfV&╪b?D0F,Kcb /"[b=U ( +Ɖ ug;/IE>yRRxZk:%_'?Qr9.o 5: .Np|& +o7?10aLssq6_w&Vؼ?`$O4LjYi+'|dɱb63z "x+\w|*smГ!r332d^l6;RֻüqݏJcr9ZoU=rR+S':w-pyq*w5,aK+fb62Cc,e7W<XtuFZ9"iDeUCw̹ʭ?.)q%)oD VCeZy+PkU;Pr79ǯL^SC?RdJN6L_]&Ӌ;D#&aed3rKk`U2H{pl!rřB' v`rLE|؉g(ii C +|q/ed:59\ysBiF1<47\hNYO\Z(.Wt*! ¼l,_b+y┢*0>Fn9/'Gemav ¿m2#3r6\^A:*գ^pę@eGQx?&x,JF9L/xia T'׫?~f?m$5f_s.`v1F !\iJMI4O2 v5eaVe^_ɒ,unܙx~~E3~e.mȂzߴLIڷ֗ooVٜ!@lIC|J*-V*bc _k KJwm/bsk +(dn؛ЦTpT7ЦH;,duFoqI yKzOyS*UǮRUR͙wF_RKpT?*L%3Ɇt':3*Ojq̺nXBg%Fc KɱU;Le^7+lSu @BՆ~)S I\՞gֆaƳ΁r )Ck) bZANoՊ5 Z Lޡ=Tj[[A`acTqU:r=WY 2v!4w &6q\uWe87KⴲCw>Q5tKՅ:\XY#U:! Z2{DxΖB3њ9.̞"mFB D]h! _PxHc!hpS[j'H6YA+uKtN֭9UI6f[E&Vr&S\"ms-|Cg=k{9U? |Gq,(C|xNk-D^{9 +96[_6ھUAةpEF#%8|ZK:~ q9-Xm[$q?|6 +"(ʵZ,11ͥH3um>s305EPMI37]=N:J,궅$E;p`7rl Eu|b4nR"ѕ̳MMS2G]`9){xǁ>IDOyզhyL%Kʮ[T{S&rTޱY2'P/0/n\8h_ٚDzbo]YSe-ʞQ_αlvԦ-ChHjA6H,^onk2擖2$VqrlOLONOeIXWML>~(mSĺi(-3^ iY1 +Q--e(ԣ/i?D7Ѽ}QefnsFA-_|ZWni;B˔0eq-ۂŵ2Ż^m2pjW0Ar_šereWXVB!Dc詧?(c>=9P +endstream endobj 15 0 obj <>stream +9k9i cy<45Y6XEgqWdrBsdAfZ2ZDp֒XlV (Z2[^9wѦ+u}Z[vi$ R#:iVBNY8&r] ^rp Q25*:fpVNjz2zoOmGT5u*բp ++rn7(}/r}y$9M+2erˢy]H~(_Ʀ(K.>x .MQ&tGHrIBJԴ e#|I. RQ$ґP1w׍@)e*㥼KS^R>_Rc;ZNB wKL)&㷩=QZR&Ygg΄aEK&E`n0;^LWdoHqRմ'&e*3ʪ$PS:E{6V~}jR7NTfPH{l(eDS{ ]SS,L02಑8IAR&t(Cso=5+%2zТ(HiUi_(\GdVfR83&Hʓѥ}h}t_͓;^ߦ|n"2r4[&Oq~ ONz| +jv|1nWm2}P>2|>1Lzw?И j%8\gfPvq.:Xʣ=|4,({ӓa4, BH]Sc"yuwt;W Bύrjj)nNS{oTQe H;XRW^وD>ԡYn/J! .<̻02] rVV0e@ G!]J>|S{*boSۡ,ARq޿ H8no2|p] Ӷbp6z+O\%V%y%\W]S+Gcrsߍ#WAdb#,e{O&|  +ZΈՌ \6hz]/{>[\h04QWeb>=Z:yQ8t02OlcߚѻXl +q;4[5gNGVuJ~v63k]73?0e3rks8:r{kgszgN4V8L"(Ȍum׭5\[𸻾a+Ʋ_F*J4:G4h\+1D5DЙD[6y9ijQE 9af>X 6 a Yً2SOox P W05>k $۶ۤPT8RÉ5oy:i\rK"d-OѴ45L\0$Alom^6N_NX֞6h1l{C=ۦ:E;d%Ӊvİ!yzvLn?&R{~,E? dM GiA[q?l#a+N  5 )g +GݤFaWDu2U! 8)Q#e9͕QN4Jy@.%0۫;chNVs"咜>;^#"G}zƛOu*A ں̖0 QI s^֊Zfkk'g;ZG[jzK q*j235XDH!-q&^fk{Ҍsһqj ؖ +[ji`Oژv1sO.F AoDwzU;~W +cssDWڀGu9P}ޝ]  1ew0Wާ뉱J6(mo1"28\js<%#p&ߕ0N}&Y6i'-Tɕսo6?LTib@OGg)d)Q$MHŰ gfCs*,-w~0}xRSh ;~DP:y7'?;|{(~𪋠d?CNY|K8o&#Nh~q>҇ s-5_G;SMM޵7N5Q~#qWwșc-=]P\-O):UaN5B<~6yh{qo΋ɴ7ĔDA4'M}?6} Y;:QO+[n"va}=MkwF<a%JߛvXjՒIm7E (V=Rx^ƕ^=~V7+.OTNjYAz8⪿M}7]'m1N*.kV t4H!&X ^飲nIANO"SN=QӖ7P^(%[;#?0*2\CCOaXpPn횪Fћi>|R_ć 6b>=} D >d+e}8K;݇S>F }!Y(b}ejcp--?L~ҧ>\˜;6ӊKaw%Z @ qJki!N/ qˠQ?pns q<-+4/ʙtoɤBUXײ aR$G}O#΃mB[#.Bb Ȍe,3~o#7~1g9>9q.z58;Bn"QP@~O0H,b2mk>>ʻ_9}kdV.-rA/r y@Y0Xr4𶬜U %Wس;p{󻙯s +VrasnΡ4ԗs7}}ϹfX9#Cׄ9nyh@}nٮAH( + ^ +/-(;W^.^[V՟ϓt­?[ PESeTij(ՐhGK~I5!S SyY)y1 [m|j:cHEo9`~ _ʏ1J;ϊVPJtӷP/ .i[L}%jVNtfnF>}6p}촱z췉C}kdiBn]{:sPI >*g{S՝~0S>: cW6 T#xC<( bヱp?#}yyd.D,0y=t>=\gcpx6Yl}}W.L;sx'Ϝ |}]dڊ;8ޱMß?8^fa'p;c1u݂M Gs8ȼ?~w ;, ɟf2lrm3.Oxz֊yIxԳ};#WA*#:_Ȳ <ԎՒY{!*+~]_%l7 w30-4bg%0LLoL'RH@70" +^{=o'-{K89rhO #(2jxw"R+؈ +:ab 6R&Mlz\@U_9^^YG@ %;h-0?DIxl6V\%Q0Ed' 0Vۀ&6 +?Wի (A~Z5ÈScXqѢg p H +>Q`2=T@xV jXj-`/ <{R1? / +($^x0Wãu:#phMds}9Uh&UG{wa|>'B'XnR軮V3%&P~}DtGKXr,JpvA92l>ՊHP̋NfF J3Q SIgכ 1ÜpArZ/^eeZ]WngoӡX( rFxftώOx&A7bKwEl_Nc+Uӈ!=~Vbmz +v) yo~J!u{e$!҉@{[VΣZ:wm c>oܝqtȍɖ.|]*͵JD|n% %V)-70˓h)U*X>? N- +em +I7Ef}UQJ1'&9 + +aD +9ch1bdx2 Ř*vL8C <􈼩D&m[;C;$slW'/HA@tx``6Q'1d0nI9[u kPC`4h#*4{5O-3Nca]`t*vPp_: wBsxŃn^j\[_q+j::߁B!m + xcl I<~b2Z|2kDq']7HƖ2M }L&{_/=Ah6hz۷f5>jT$H\Rs&PψG5x:3pqNrBO@b +ͶWe j"5iq3KQ}${ D@6k{9 +=rT^2sR7i$\&086d| sJ +3 Z?4I1寞DRmA YEUVKׅP⽰-Ey%Q1 i^T1yw.N:na?(1LīlCr#ϻAބku/eMc[ϓy,o^$B47ʏiHƌ yHa +ߍ]W1!#&)[ .LpgS=s'd%cs,^MWf\/^b"tfxT@_Q|w3 [qlr<վFPQ¼26H&1@4(`i<&Jv]+"3JABoxAbڸ=骝Kc)hgj XmTݳuqXvc&+a~@>.ELabT0ڨ2]Z,q5Tw8?:7!"簀qV"@CCyjV +c(OQ;21V?3DTÞߟ!8#e2'R:=Pnu,#.i9$6B szRP 9ꀯ`?/P)bAͩݹ AdbƱG̹8;sbx-qͧN +ד)a"H/HVcO +c7g qi#rM_yM*dZ1V[n8݉s=cp|YZʝPS #" dweI\!=͵ 3ɷ[IU#h$KKMf!?_dVCB  Y@3ؔ+`_}AI*><H޿A|퀿sm^JȗLݤGn.Dl_u->Sfte1XҰN$9?:\ޙ"*.j}2CEkԪB WЄ Jәr+HpshXy6B=h"==nz 3"X\NBm+ 4KRBtDj!Jp%udY@ycȐ^16A-O {wAqL*SiKXk}dc{b϶߶i~`_<1kOi[kvY V~ztj۾u4_Z- V]}lckZi~W<gϦ;ҧo+Ywm+v{sgpzg߳8lqnqyb;fhZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 R~ӯ[/o߱Ob~K^Ǔަ;ybl:^Kx +TKI !c^ŗspn2|:"C(Fjq3[=Bnfs0/gTD2Y*7>Nx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#Nt052&PAƊC OfKkm8 $=dN("zjB ЄR pc- ЁT!p$ vHNɧc QaQaFPb$%Rƒ# ùɾRb ;X1tq酄JʕpHS<^bߍ8KƘjJ1{y-')\>Sar v;jƆYRHH@4aψRc9DdHdD$IA +EOѻ44Qr$DbݠˤO'iC@fݶup^b>}8 oUt(jPxi} T0ɦ]gCo6'Pn/!ff/fV|P3b u⡢HIDG1'U׋)-Mѿ3FQCbƉK£LG.ʹ.]ZŃ,L{'%։`x d햜KЮs/` Ͻh:GߌD`_7ByG7֜f |?#fF kMe}v&| gq_GkGYspsm{Oy,QY_>\[Ǎˌ?j.r$6H؇e8qAz $PTDyincךg6{ߌ8)tb~Rq2,r DRut'lg{[>d2>Δ4s[Olɵ=E2kͿh锠Z<`ti6JmN=(pXq0["bM,cn}V!{IQ$e=/QyzхJU!!ջuݜ@VU&eMXzICKoxгG0w\"s/z̝.Ӂ"" "pE&p(Ƴ\w!!cA$ձ *i!G A@3btF\H!umFH9 +{h٬T}/IM4 \"*IqI5T Iĸ}a#CpPC:؂8fCx~hsR!1q])|XqwyRJz, #]r=Nc)"}@jٙrkvgS|Њo^Xl [&tX懪#ܓ*O?HJ~$o*$c :/Vӓd6R[FzV.h+0Q`1e,Kn98DGmXz{v^2Umpb#3{8j9#9# +WT;fAoa?Jx^XiU2KIkFtwĨq1Uc1,Of7Q$w 3[cAPm^ߛi $hgD[7>ENy\sz֡ŠF/S-nc]@c'e?6µWLgQYFKT[d\=6(RK.JpetV kR׆W;Kѻ(nCum@&o&-mU3Vׄ3jԕRRe#!u&B3"2ǵTidQ\2h,j沃/<e@;lrs)+v߆b9&0:2pe#XCyKPTӟuՊai5e5q oyn=ow"ohyqpTD}wO#`҉G)DpO6bIp, 1Sr_(y _Ghnܣ5G%jԫ \vWGtv$؎Y˴r"gI V?; ۱}U1!Izv͖`@:IlД$y >}q2bpYo>s~+ ё~Uĺ 6cHTF}śOE݁ι󗟰nX#oCI>APX (T8Ѻ"V}$-t +<Qy>ZҊTᘤѺ+o(Z0,2SF8̷@0&iZ߲!m=(e\ E YhH/6Q?kHx~p߭M .˨,RڄČVdſ6iVqȈkҳCރ~UQ4p|/p[|vmqI̾z&{6hcڥ}x"ZM lW@t\er VzW,b0ZYm]eW k@PհZu_Ԛ Y[6 ?J(WG2nU2ud@au"_'CRd"=:ȭv+]zXiZHWgVbe[%Ecanlyϰ6m[7p~o22/p I-N}%Ȩr7^oo&FP4&FP~"b(no2p;\oyh^etp*mB&ENoB(HRϲd/2)Sgkb]5z4]K+m2Z"c?)#gm=F:cÌ?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M-p@KOrTI~j֣,E+,9'"bÌ7!m=N"<1z~ږkYdI]`\i7^FAiY";Pscf9\ϪFruTEGR9a`u4 O&x|3Wťoi:1zɡ24$-qs۾IT)HSrDä7abp \Է_O_ǁt kdÚ?U#_9~S9^ +ݪhUw>;)}*|| +[kbo937˲-w͇ea'9=.hG.9UCz"t1i׾3gN +TA*#|7Vg:=+9CR:e|!jv|H@ʷuѢ>V`o17R;;De }L+V y*˦D.5kҗ$W^%icI[-3-~2$/OXC?F0Y.7v-vYUgT"GI~?6M>E)?@]=D 7j#%;]&Z(˪N{z4k:2*ћ Ԗq/xjEY(s⦿0}·I ]i(nw"'bܐ҇(}sm_tMk"ۣ=& v#)O&Cv(Ađ[$5b~ 6#a͜4*Ų>bju .t+@\аP K۰ϻ:=VRgNL[4˺oBJzӀ%rS:\riRAL NeiXL]|`r@Lկ4͍VvXU8״}""^dy.0ÌwQ#%iF9Yѹ?[>'/(=xgjk[GA0|; +'gP#P;A2)ײCCQ15';-KV hN8*?N$@̏7?Neagu>n%r4kXeu~[wIAtg[)Tt +Iiˤ.MXtYeIAx +͵|fe冚(GRRCEH jC j<cg#2*ؙV1]L.hǨ? +{HU +yͤp*I=UFa3NU4)o +~,dj㪈[uvͼ*^Sߞmc丠,EbN"I|1xS3lqx.:"iVǚ|c62n<caIcU,>ܘeQ3gfY_=|5n[scgk.{f'[Lֲ'54#n5&DѮ448 +yCKTuQn%uZ!veBФ!KP[X3]b`9J1nB$AM?Uva`o0Ͽkn"$A}[U?__K_%IJAZ(MUk#71r'ύ=f2GSVeiW@2 &`ڍWw <0pbgM^D}eV me;ĩS=MG!Eɳq6^rX'g`-qtP>i(LӍ48!9wIQt E ,/aCxxqA^&ZE04&ѣK=b5:TBE*gR"-@to3035nA}n쬥N5yQ{s +3+ˬBn'yӫ,QCjZ̴/~;=4ӸF ]N +ԛ!-MW8kOnYz"b~hwqAr3(lK-1[wYu:̭DžDmo=̾rd"r jQ5UoӲD?s?ͻ*Ǩ9m[8e +3k瀜d&EN4-0֓c~z@Co҇(ufӲc<"'I۸I:F 6rrg$5 T bq߀ؓ5u+h OØ M/7QrrZwq?LOxьb@[ 'n%&=yMkI$"p}տk=l37coai5oVndկfamߤ 9KT~dK 4!=ah=|ċ)F3c[bXKsPøs/|z<~&4~# > +Bzha"AK(p$hք(w8˸# +J EiWEȟ7!(])GP&iݡ__Z̛5!U+ +U.!H0o!9fr Mֳi׮HO"}HrǤA[.cc+ + :K(Qy/gqvJV@5UBn5t1;ɑI^)INR՛9;!&1Zv4|!`rǰF|IN_)rg}HWoڛ=sA̘4UY__b53kbIqzpҥȀDb~ba*-= k/#O0 ϴD +9JQ0"n@4%D˓׺E6r,v0OTsE{*1m$_]^ތ.5D ?\oĨzEˍ2Lrn;|x hO?z: @& +KײH-N!258a-v#'nK?{ȱg&-doÜB/E(E#^0NZ*m?99Г0q4`I)MRd(nI!HKջȗM<f2v!Ξlx;$' JG@(`Ds_I~푞%J <40OݓqIP&;XSW"^ +z&m}rg׶E\4˪Zgᱩ߼߲DIi/ccK8UHWYGY5qۄ ?s>SYԎoY"t2pIy -@;f`4ϨW!B!t,Y? *-믨|] yrSg({YmtbͮԑYFY;RKWjff5oᚇѳIUѨ_L  #c>R=?7ͧ(YE\QvmE .|`"#Zo]VSG^].o<]d{%Bzsg$/# (MA +pr6pӾY$k!px-2lsǗ1y#^#+͖I%'˒&%q_&]&i!( ?}[T!y: gQUGNd2׮/yKWD \nd + +!$zO˨ėW]B>ҶC vumߺ0e? =.%0T[ZK;.\aK*ϦH!J=OR5"-|+\h930aii@>}XŇ +pC wK@lBO4"l`iw v$d`ifiN>(m:^eit"o%_̫c<=PtL|1z<'9xC-B=y5ʩ_})CUj=MByo%93=i(,=bG>A2dHC̼U = `A I d,+M],J2@ڑ8M?n(IPG&!Ls@I{/xXo+o&Ǎ>D,@iJ:̙q@GJNO"_M>& ~|,>HF`c mm[<\VDr8ˈ#ǦA p +K|EO\D{Me|| ᮲49^6vыd$LIz,|xL-WI:}C%p&I6zOҷ:UcWzzh'`ɷ8Mi^!mPY֯(U}I)җ=o϶UfحXfXܠK;7zW.FȊqA5Y&!Ѓ >0dl%k'?} +1W?FhNьuY27]UD /M\w5iܡ"uEFE2~YE;VRgǪqtlE +,w=,B`çF۾K(nqӢbbjlqQ935)GPZk&]O%*W`X{| @nt3!WØ@0˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0aR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$z_Po $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZSJN1%WJMX^ζ6spI;-2OYt }қT9CR7G(f$.d{Fu;aϱ%,#@J'Ȳ[4 +‚&KkJz) 9{.X /S" DF—X'9*%7rlyHHi[,"GJ}LT|Uqc<``X#m6 PCGTp8 spQzwP@!f^V"yTϸ CnY0caupѓNh&'BSCIXƂZt+t.锤TP)8{arF#.ԠlG|H\'DiY-/[Oq e1TWJK`{ |5kUkf08l}%xHrB~ByT= 󻓯G_ +HgY =*_ C>fKr'"C +HA:׃$hlvV5Q<[⑭}q |<9X'uEJf%4Z}F9TFZV Q KᏏV@*EP("<3`Jƹ!Şu{@ +@RV#KbyN%N{]n1s| bS}9h@5Jfƙ褓k6Rux<7I6k:OO*ޥ}Tλ, J>8_PvO}+/*eM@O" +ٷ18T.]Ds N(ݮ#18UtFưFUXUG }K0 Jm2`_#ma}"߱c4KG6%޳rU}4<(]\_Lzw Lx?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯsA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)œe㒾6q]uT ++kn{1n|(kt^Q"BzWg CFVOA?D; ,ÅuFěu ^H__O?HoDiUm]QU jln}!AfBvD4) XMMpY Y[ڵ/DGF$Gy/04D^Dرql xz9H7 ܻLuoOLTI,1Es;6--+#Vf+p1.Ys(* E +UAdȧ&oY8M@+Y +cwUxti&:4FO6Q5tnQFeh* 29 @ U;EIMl+Hrj JeK|gqfo۰[W)zFvH%wM8Ko`N,/E|زjη{v2vEբ3Er,n':Z>e+D7 U3/o)k^)cfL~Ixf{]ʚq@O]F!;q?p$$B@OYb150E[ +dJptH=8 n$LhiՊX -HwP8QlLDI5NA{p +pơ"dq+gc\.]2/]))E gc W>+NT艳wm]H9Cm')Ug cHirD@Senm@ \(N1of#%lh2-?8/(GEǠ暍*)Cf`Xhנ,rq64BLG72Q]܍g&*hJ:xr'Yh$F3,0nFr;1aIATV ~QC=u!= w^gFibh>ePu*|ҜFNg#cv,76j7r0q2VKo`@~*rI+\;y(Ӄx@O6=4s}/Y}^Qus֝7z~Qg9R}C$nUr>- Wꈓrq0S#g\#s0;,b[LdVKAjēS@nxB ;|y +>دp =B?`wc]8U? J+= VRչ|ޑϩ q96qI>ށxsb"M{&O:u:S;ߗqt^Q\0L3;Ty%k/x=_\r@.;_54_}kAZeCHh \! =Jq^I/>ƑGq&61$`:-Vtrs"lw(XdӄZUwhp NxS^C|%cc\f~m> +R2ԨzYIī0-X"yrnrlC)p;GybYxctr;*pV/*1NJCw|/$aP˸  +g~APUy셫 ­g SItKftpffLKr0[F4cu|N]hS8f̶tI agrN{htS@(iAbnUlӼ_]\\nsg02_>6Fa[w {{v`ש\8ؑHۈ[ '9GV2%-G9A"bzQ{tqvMtLo?`?tDgzy*|Ǽ[o}?ևyW?ku~)h!C "3}WEN +_^e uf+F"$0$it+\zUڙ $ɰP fhГppTK R! Ck}N<Y}襇qjjsbKX'Ǐd7JR2$% ˘qJDt7[Y)%<2p#]]j4ۡGK: +6*P&zY߂E8z2jp~u! }C)z +'Aa]=x5 3| T{eMmWlK s;"z +՛t3jv$OqnoVĺz臧 %G=NI +!㬖>ғ5(.$DRAA/4sPU +~J)A=Uw`3<|T0J p95@/%(pL+ppOz-9`691V'1`cVS^:%S}\ٴU%z_킂WGا~g }YJBUEX'Q<_8?5/6&D|".%8K0,"#EMs\"%>>%r\0wyIfRUZe}9` JBѫA0&J =?@lzI5@4j_; 瑬OQYNAA )T IMmu"m'ɇ9&5`W^|,EKt%S9P,PueJ2ލW-+o&$Iozk;`/`9648/D  +akߥ3q1 GNmOm F̆,55m ax%|s[]GBE< }V)詈^*|dI1<Py^A狪^_AT+D 4t̪>ʺkËdڗ9Qx;i5Ixނv~C_P3A0?<9ԯ|S|.F> 4M=)EQQp/[1-NL3>)j7NQMD'~Qn0 %$VXRZ@?4f~ +ՠ~ + ioz_ z XeJՑ |kFt,[1sp#fq.~q[ GnI܎}tzӋZM_րA6@_~".EEЂA1v?pamA`(a6:"E;-Tvdq;eW)1w!N`G֨_/.Vd_0UaLJ ޹%weLZV^բ[BTz'^*sbz +ohpTӣSPkĕűQp0VCk_0ڐ]- O'[wbLJnLb8{+@l^ֶ7 /Nv쭤#-9p̋(w]]]1J*&6-cm/J7CvDc!LpAtKLBٔ;$,&Ɖ[]e} TԵ٩W]+۽K,`iu%(t+nJ#.ø2]KeL7..j5KR]ݞ%D߲U75֭`Uϻ +/lÚ<lyy j_\EU]R6iؕpWV칼C>s]Z/Ul.[0{jflZDzX"z(8JYYϢ֭|Yd]> Vzl@^RŬַ\=v,XU`x1 ?RxO5aK Rdz^(;_T)#S؆6e K1)[TuH6SLO*ffPg&%.l0[L7:%Ym.S`S!>ۦt&RҒKM !-G$l +Y"Z4ZHߧ5kv|C ժϠ 6il``xlY +Fb0O:2Xpw;%j?rL aF]oci86ɫw7∢U^ !1_XnzEϽ/ wm.z@ +V٢wM>4mI߅Ϝ&+Ӛ !zχ)'իL~ +)uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85WwG֏ɕ_I㊙ +$Q]-:zRpgߌ#qXRӦۦ] .%4~r3`1)@e<: +6 z%^>e_G8cqRGAtDFEw8A0:jVlj*f ++fM?ҮoAoQzp)xbr!2Pg q'O=oQAڢ A\ *0~U¹s ֛c}RMQzee]7-bƂZ{*ĮtZ1sf6i/lBD_S,o+طuCAjFDE*)DHWMTR6Agz~0&\9'I%:J59gHE;u3Ί7na;Q?A7*zL  I琊X3[nûݍ d((}װ;%z<;*'Uj([UyVM_Xx"}2٣N#\@:ؕ`i"kc_#\1)7fŻ© +y{EԱXZ H zIN9MH`\5PkY Yȁ0f7O#' J +++f Lv["‘݁!Z/Wo,wYׇ n)@JfIdb0b [uv&'ǻ^6?@ʓCP" ;SkB*d',3\Eujbe%xk{#ً z(ikPbs㬣Qg7UoFm l{P:sX%X +Wٸ/bNt*{1 BaQ +5dJכD˶WN9)sțPv)+B;`$%".>gXVB BE?REG(ڝ4Ď4F:"?4O盛NabRpA. a 8eqL\gr/%/ρ/dQ}TXG{R83ӆ0;VX9̲!8`U^Fc$=|C(gHYܫ.\O\AW9*3yJ9DH.Ge ‡dGd 4׭_],7W6 j= uu'2Cȼ1@bE,V0u +ezB>~-ޮxJdVθrrBZ=P&bEQO~6aP|[)վ,\^\IxZ=( .:f9&=ڊbq3gb0¦7B0B6L_D}rʍ<J-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZ?Np784wb2kE x ^ +n%a+Zch<ϴMgsi%#B3/-LϦStes +xI='#0cy5Eq!K'py1f^c8vl%~Lv&2ib9k"n 1oK3J f:r/zi>Ѐ㝫y +?;~%!Yi lDfn/c5#B YWY;,_ +okbDq3 4`qerQj/1kfg1{؏N} +/KwA!sphރ Ə n\=AY4u5ObmFc+`MCwðZ2o`Y C&oR SB`]BCFM)V b*_ P5Pf|%"sS כdf>dKHWV8?h1_8eK[,B 'h""ɾZ/;LYx˿c׺#` ʺl ~t~ 7WNU;,{C]D=4FLY_\Z6~Q2e +ޚƍ77޲m +RAOsfbb9 Q>`/B~IJf|Et"ʑh4 ʾ_)HHc0~K#mD⟐%0>I z + 5yilYd]rO"]$DwЁ8t;XPT6Y Hjf֒ٚ4@ b\o*fx'ׁ.:6_s}Q'1L-qQDr1(zG:VRJڕy~Wy ƌ@m5g7V +F,"NZ(d"|z+06kJAv +D zg~=b@ KCt +^u_1%ܬ$4Id_ZRnz1kHE4%h)CQ_ UcgHzHd;`1ja \W /-Y=sKA|5M¯oZkk[AUm*K 9DGn ‡ḍh7Ǥe8&Ŗ3lF^) lJ*)_)7S9KeVK)Dcr1n]xwWY{9TY|4֕i LOI x<sŸ,lxwX!rK;s]H>ϣ8@;W0=vH?]Eyn(8Pd msuhD4* ﬐x)X7 c{0_[uo"8$kTOLa8‹=n! Y˦촚98 bJ\[@Yl`y)3X!8OB4b!ePtjO~ԝ . 8j h C9:&pz?Ξ%C)NN4g +AHwؙLz +~:\دkPt)Ci^Q5z 7 #ua7;6~gdk6[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY hI1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)eE~нPj`aST0AUUPPPvճ8$oY2EQFL4G7\zVbeJ)%)5̞On^2ؙ!'F<˳mZQDF]~e 3u4k9Sn03`G3p:u#ba(6z>' :߁&k̚FL⼕}tA3/%ϤAm/jOQ"wj(8 +$Ң'X|.G0aqzzszOc`>ǭ.˟wT$?8nMCU1b.JX OuiIWՔҠdƉ#'[ɩfTvAG/|f@&:&vwՕu|巽@<:>%}DN"Q7J] n3`m=ܚĒqqD\K,,";vP4zvw?0e?byj#H +ӊW?w\XVNu5r <~c*eX:D| + `rE΀?.b va+F@YV%6xǐ-!9 ,@pIԑA@"/$ +>C*bWgAx_ [j2V*/USPE$( a†G,O(˪JV9X9$OB3Q^anm0Y̢QX2TWL<yƲrOVqKYX 7*ab9"C4Ͷ8ݱOƶޙ{"ez bO$%K4).kؘ>۬}Q$]m?z>(J1E,OgtaH_pX ޞ)w78 :vPO5mLnEZy.N@=% +׆ ++L-٤*cu9è4p/h ۜLRgYpXG jXʋdqI8^`Gq?TC?r|d,s o8~u_e~$BĻ'"zog(wCwB}Xtb:$cK1Xȸv29lS&VG*o)"[M@B `|$YGBTK5G|F?}2mb5K&P%PxyGjtNO>ՊSK֩z.Vy5`_lY?a*+P2 Zm5O(WVEGB(^HeJY Q pg`n֩ήz*qPܮtBbGYF骢Yȶ +SnyHmYm?G*$7]ifqOZl+I-k+/gklcppOBb =X6$x5\ >0߼bss{1հ)+yfII3o> H˔/G?<^-fKƍ𓣒48;3!z?w߇n2%_0ǰ#E +[̖&Qق]fZ[\us~`U'Z].N*"z]>|N#5ޡHެ@~T"'HGOsgpeOݔ&3X/)*j k*=X?;b*C1^% hR5GNu9۸19YJju&͖l;p]]4[oDhE6?{hЬiOWpkRT,c\hlNN=xճiEUT1yџZgB|IܤC&5L4 .6N ^?̈́ƅ_Hˁu@՞#n3㊙H;v(7_{zmr.7eajb:|%y 6Ȍ#G,K4oޘ44vLKB_WBz#AmL5LúKticC1n ٮc>z^F1.Z@M:kZREB$)/j9l|I8۲h#=Jӊ!T<] Dܗll_^Lp'OVqG%!3_ʂZЭ(h:"+p& 2I\0 qAY6a+EkG;E4Bcmp7 ~n'Ik+n;=0בb`?wWOԧE㶶fZ &IYԗI޽A%Gzº>qtӻ-閧R3Z=t1JESC~#}~qu#٣VLoz+YN; nxd~%lki0eρsA{W#AWH۞=ûr|{Ԧ3%~C+~qZZM[7ΙHjB9;YC0M!=$8reKFG?A,`~5L?0)̤|҂u bvF: /׉FjU°VY]mSR]N]OǓMtҶ ƲXG_C|l=(z}#جցv#lO@m ;xO8Zi)\,L.]NV[E|kއn4E}]Zp =j)_W&Wy#\/` Jo[3vXM;lp7?r*ͭ) CD02  zNJCxO8tyv!SM,p:@%ysPR5mGn3r rj=`p +*`[F0T}t#I8<&aoQ?L3?y:{yx^fma_l&**<alDFkH0w4 G ]S(Th1W:AKիM;Pp˼Vl=ڣ4Xf 3U2tF\wtRUvhWCI;y=mr0MB9ZC+IZAgb\00Do_p"lޞ[+WZ2X}Tq^Dn!$OpCn:sP/s}_`SyG`h6ld PzDDi ]fEfxf' ⸒ /[ dAd07 3A_CُɋL2.O]ƍϮFr&A\' +/h>۹C4jc^w*7ֆI4?I[/LHkrh0 & +ed/< מI QzgWK4B9ɇl4vjNEL2ös;Ep8g1%a?Os:!'!r?{vC{+PA޶pݎB=e^1n?q/Pd[ݳ6~7SHj?E;N8zDRn O;/ #4o3*N+:%[\8;tӮT+<*^[[eLn9Snr\v ;U@7SC~Ia E"(B #!!ZDP c =t]Lbr`qj$/ J0),7+;:>%0S 'S0u_,RPߑw/DROPLWB9G}gSe.bȿNv/qT_%)}FwGG~WO꒯VEj@UӼ=_}W3.N.z},:ʈU?W¥:c4ݭ޻=?\(W/e~yf\/$Y2p+dX#lHJ㳞?+8s]ZOA{1|M95urݗG˦*$g#B80מM _'S7#7-1G .rd\Oqj;ʂOkzx-)j^ +k7, 2|> As~}R1wtKIcy?gsqg+= dgsnN%ٚ"pgܫ%D\#tx|/Kg_5pϊ5y .IrO  + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHi[6D!D1!D!D.!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orplDY!D[!T + L2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 +60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tmr(qWm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*D\J(ӛc2ᤖpta{wzD # 5.0 U?CKha$sBalDT(!@B [& +ǣJXga, %haڙR7F 'TLdhAz'E(PJAvxlW꺺̻ʼ0˼۴2FwwTO[YY]Ճ<\tGujQ-FʻɶkQ!*nFՍjj#Gɮuo~Li"vR_O*,$LX@,<P0@"4 ö\ H4&4* (>6WNn+qPM[ɲQ!;&oMwɓ^UU/{%Nl`WQ0yŔTsGBQFbaF*BՕw}мR8 èFza$~za,\@yh E%Ҹ@< g"< THH6䀆6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮ'N9ogNFrW!%IBj1Eąp$yh^ה{0G^w: +ccBlYx;UgfeBi`@&08Ð8qya Fo@XȖxh6/(m{MQߣ%%74# @P( e1@ll<\:rEa0c  R MQTuOz+PR 5_KtGl֖>^(+ef|ɀ g^6LN23JO25)J`1 ͛WVg+S\ ?l:ʡXo+;mS#\Qƿ+I3 ʂj(Rsfϑy[#fCt|=0 ;%^>4ޟ_j&Ej\ dַY $.,BM!@!FV@fi~4RFP}H:kԟ<{޳"$? !\u |E҅~/{gj޵6zՇ?8k%äZ,|vT=9zC½kһFpfծ AYt]OMpn(x@Μss%j<lY@` +t{i)u*Hc#uBkLppHL/Q(ʃd5ɬOݝj654+Clnõ 尚U'4M‘03@e?޼]Ek:gӮx`OpA HE 5Z!g]1h1D m@$?KC6~bpF|0C5gy[A*w@U؉J:|Fdirm#jDŽ$ ?RdzઍZ]4Pg{BYV[wPΓE>ϐhu&s!&"IW_|l:TM)i p5#Ck6yAGt_kdbS{mOz3CqIC/Kꋬ( jetw Pfwc r_h/m>5Zs>4Π810pሳ9.D +ofx2Ba %D$_drf`x'?J;,Iqr0(rO`hwa_5"(~( 5TRvP^cbjv{Tg)H˲ g }3#K|}"ʻbME}ZdbϰX`@%,T+D< {zzLi-<@fŋ$Dps*qyA9Q!:*IiJ[7QTD0$%)1mu4ϨevEZ d,*k"g ghj1CÐOh hp$jA]{o$o|DRB Yӑ(trdៜhQf,cЅq=+.zjеÔgBH:hau +B+s G{+^naM.#=[&Fk0{ +AaR6~ r8gda4BR{ #4'%hUp`%~%rK,7,x6 ߎ7o߁Ge1C(mFYɢGAX/h QNa ++m/CusUY+0{BKiN{0 OT0˘Hs]! +b!|cY u J +ʜQR9II:GaR$,z֥X/A?|J@Eý -ccPzhROim9m0KM}$pPD8>l?J +xGV[e)> 6Ir-OLR +0g>Jj h1b$L;g)e<$ K9ɔ[l? ވ> w 2d0.F*c&kB{*locg_ +7ڲ~W`&K\ryse_Dqk+{"/@^HQn<=pd&ZL%E 6E$L=P<ʂw^G1c{XbQSk"Fшѧw&|zyۭj +ŎTaQ]> #dcH<,B(d+Z +!w@$=p1naEz+ddt#Fϲq|'WqG.dqxE~*li j-f^mv8vzDN0ˇy +`00;)o6(f;PL>-Hj[C@mۇ 񴟭NHXri{L,މr2:Zt*PLGqbhܢg+x NK$c2g +h+6`s|cghg⳨76i fϣciZ1g1(HLG-ȁ%C?}h!I78#IQ||>3|KryXBH=GPdYQ>:. +ՎAX&58li +/J i\?~`ˬxI?zB^>h.Kۉ`%Mə*9XnU]l +ʗ*J+ ٭e1¾7n z#z4V  ,c~d@2uȾ5<%cAt{i"s!&H[orU5:`(ء/G. &Hal@ wV|խ"HmbVФصZ=XP +w$.-p5ֵ?xѠ3_jRklL٪kUu>ć=ԓ+fj/{0t}R☳9X Ml+dFBBEL +Gm"%`-9mlo\W6Ĩ;dOjjZIvViZEy6Nq7~oy]ɅS"GJL-Ί$a1)ᬷɩ}:0mD"*U,c3bܧ4ٍ6v5:m4 d:XZKϏjfo:X'4n.;t8O+] +D-(Gƃ՛tҮ3 ]Q:m +|8q8 z={ͦWx4H%- WHDQl +H@^kA@ +WېЋP*CH.TNˎ2h J"U\?L宁 kx79N/L`wHo/%VPwۚ$˺]zr=VVnY*&v+5d>Ǒ P7seiayC1]0W\)7cH.lS6AeQb +}$;Yz xH 7ԷP@~j#fZ?2@=\JVGO\\Po.`fز { ;QGˇ%٪쌤<{pMW7䙳[IdUM$=z&G6Ҩ,Iƒ7jV~cuntN<lׁ#Ia3d+ϙ7$OgiPܮeqPfG?:D.UA9"DŚ *9wĽ?y?;-!RDvtT ȭ"h뺚~7ё T03qOb4]pIDs-1Jk C f:µK9`~'b;JH-+28 9yoZzFUUFS$C⭓LO<$Nb%Ѳ$]ȳn{k9?dҭҪN%mD2CIi%Ux:Fd<ƮE AaTqUIOKS]QKk}V,|/D G[US8Tt  21FB13oS=k_XWރKYO5Am*O4S#EYUS :<1SkN(̧^Jb_DP 'm4"KvJ%$dXĄ(oY~9astYЉcZ,uۀP9`ʄRZ ^cc5<aM;G5O{x1+; p-;60²ښPXa}wpy5} U2dQA]ؚp F)~@} ݿ:n_Sw[Z٠?bEOoX:Zj/O_X'&l:%tt UU]V@>9Dp_wNj (S ӛ﵃zQ]zmJ"0NsiJɦ  V״5g@v$=$_`X r٦c7b>#}~v`،R/I1C-ˇݖcHQ6`ALGׄ]B)F9 I±O +ו%Q6],$XϠ/ޗm=ӭwKWp5g1k1oqe;~W1÷iLo=ǻuWRzW o̦;s:ΏT_A|\ʟCs{&EÁdDh^>|cP1! ThEy V\%OL7$xI8| j^ +9%˅kKi]a<§ ",e^O׋>~c|TL~u(d`cMpǽ=Yb&NyoH%?pqfNQ ax7ܟQ컎,A;@MAc*@m(?piD͙,Ŕb;i +i$R^L8^2<b!c:* AX|D!߽D 8n1)a0+@7ԫn%ɵ{φz[*%W_R4g%P.a~ X`p'^e)G {PLf}M*P'B9&T +"6]2MK&|֧̓/j!i_=G$z(YFJE 2m)i mi01j%wMa] {% Y26qP6FbdF}RZx +'ZI)s"_EsN ՎҬpWU# #6Mya\k+/V$4Q縆w$D@-!æ>L`qO߿)̇gBR(9Uxއᅂd˗D2LRݹZ_4l~0|HNd>3_:ӑI *Ь{S}:fմ9a\IECT!"'@V!۵!&1G4T5e k!EuHl ]_tiu|xW.MC2hMBedh!3(tn4c"F;(,b9%c0 '#H[`@nvR<.+QꏳXgZUuw_q !~#L4WTP;P"ՍsɄwr<$]v9jLɚ7)s|ƈPEA8SyHa1.xoO t4OB/L +kx:@XX剓סl}iν̱"Wmf qrڥkv׊ί,zE_7=A2$RIj9lrWK.g"zږyy+rMƨGj *4ǘ#*|%|p>I!pe9-X xq<peM~Џ>lw6jx-BxAV2i  7ݰ=n"7Q5q?Sk|u[ ;+)CuNYf |12at;h()!W6:3 F}ʧCon1Bg2Ձ}z_|0X^>V +U! 0ZY<%s 4 _ ǡk[7_Y%'%mUlĴylnP1*MiZ tuѹ({F4XbՇMnZ1%k~]a +I(U6Td{L +Vʽo+W̨y5"%{~uƹ+[xbk[ʅ~eCi8ZNgǽY&H`T[tVgTӠu0|ŕ47c}[we7 +endstream endobj 16 0 obj <>stream +7?RG#:ôz4-&fs.8|3۽̯Sc(rܓ$pny!@_Y(L} , k9kxPN>,J3-7K個 o~qd4jU8Zmߔ~xZu~¨AP(IWzEG9Y.TU"s`65Ľ #ZrɎ (,A92; 9/3zb)N%n'` +vf3`B+0\E%j$Xא]ߎmFkqGC)IżN@?UF`,4ob^b(ЧEL×C`2Agl3qH^ՅL>o +2 D>2%ıΝ\5dn <ZqhG,_<5ZkR(ydr `6")hMƂ`A2HW` 0G+(~Õ> Dr :^XcAzڵK]YSrN}aҩXlB>/sfXn`>ҹiM[xKN %ҥ+wC(R4mCzìy>u@=zIZB 3`k 7 Z{O'II'3cz dJ)L^,YX<̼߳y)*NŕwUe힠RPV>:#2+ㅙ?Ybu&)P4?Qq +co6Iy (8=)P&KY2LG>b"&D*<)cᘞ*DU*Sd {,FrRfz*iM=Sq( @P Jry*ro&{gaf,U*T&pρMk3֎LK^ڠ>;>2˟؉mo]_T_wnu!Mޝ*վA՜R&"64;r_2ڸܸ{r2^B3"Ejצni Rdq$CAju LF UDQ^XP8Lv<cBDD(M2l4eqSqU_}#.ӛ@-mP25ej2LW.nMHnr홈gj8(I^cRTM&`XD XbKFg]q#SFu_QZ{fcz>"jY>&e̮﹩ϊkls-{gl99 ++'ze]0a;"W2:7)(Hdp8 C49I( |94#2$i +0iah@Q!Bc1"0CB12D S'όw/R[|RɨT%shW6tW, +S3L1D8Tc;<w_cM^\'vX5 +D"b d-~ m]~1~?D6< QS U=βMŮZEIi[(#jzzK3("KIJf?Q)tJ6Eԯ|B=erGkآ߰,t2442 +#ѪN&#*] bOk5hgS ;-@Kn|y\H"[n`Ȇ$_-Fh3ylo;0a,u`c#o& +IG+[&]&._;*^DeV ¦ LM=clUVrTE,q|JpFm Ƞ +:!7K9!х:&ɽMWEL+:K9:Ԧn(fAKdƞت!՞-<|Kk2P_іCN!t៮"E@< ?GvKasQbz!9.mms| +Py-|ZqG|s{Bu8}g6'ܒB47˸#b6dM1n5|)VC^ӗy' ~_C!aG]ȬҞ+GAD ;m#tdq ˏz ұ]K,Ѯq8h;`.=vk}/R.0"fhF m.I2z +ӖN2(`|J$IU b]cXo]U5es1r-ske:%%4'3ќS(qG4i4 Ii\!]@A4* +f$;V$TetcؓD=C;J5$7hz$ =e3Y + _qO1(۾FmpQ ?lMV-ўX{ +$3:,aeEeS.9L^ muƊ䊊AEo՝߁.dO{QYJ2ZPA;1#*M6(X+Fe}4'Yp~| +[gSkZ1tTʗbX񲅶WE72s6,+̽fru6&PV ʹ46f( +ެN|;1U$s?5F4Vy7z +TYȌkN7 :g5g|"1bx&_#dteT DP ;5OP K,|C4fT``XX`6@@[ ! + #DaB p,,` РtMXL@,0Hxaa!a҅D&cG7x@ewՒI$|hdFq,ydaĢ` 4,LE 0 +n8z( A+X<`"W0Pa08X4@0Pp! &:XTpMT&pAD(X@.8l0!a1 L( L|x` ! $21 hpP ,*0XlP!bb"ƒ" +L,:`pA8@!Bą&\@B0Ń +  +&P \XtxA0@abQ  +&P@!L(H + `20qa 8p1C22"EyS. F C)fl{ okV x@$\0ʬ$Hpieju~VGtAæd 9bT+&Uڑe}gc/Ϭf^𮞓CCOʴ:UӺTEE$PAՐߺؼ߬c왏;[ÖR}g7ML]I32'A'AH``I` u{8hnip84` #0HdP ႇE + Ԙ駦&6nxWfKdD5 :Ub7'digG{w`_AzUQ=dxX4啦U눆ƞgMW⑄ Ɠ|dH3DԸv4ڐM YB]Weӻ!ѫE=]#SB(hY7u=NnJǟ $d0zDeEC+ι۵Ϥ';}Z\X괨}̢ٽ3Lu*NJ` Ə$\!Ҽ2F-֍ҪF6Uee痍 ƙ F 6̠3$1SDIEN5w5B3  ;av)' R $HI`$]K4T5 Vdg$\0ll<5un=Vﭺf\tFGywWEga {Y3bp_Kf;YM$ 12'/ʹ%mI`ɌfRvͺ ֜)#y.hOɌ"MvL^fTF2 +wue;'Г܂^RdWFiRu4xTD)tC/<2RGCKSU, ME$1su\.@[]_єT1*J.N9W岺bvro3.ٝ+2u +S墬"I)6lg)YXf$j%rJ N7by\b,8Ʀ_tVEW|'U[f[Y1k(4cG$&*!&^^tWdtΠX]2Eg;ʩɬ5 O&qf$Gnc%]V :R}whaQC֚0za6ɫn~s:]~ej=)${hn<f;H'7au.$ F+5Jg)Fm?9fVDx[e g´^5J(YiTD'a mVLCWe{' m;5a+?S *VGswv}Έ]7`z, O1Z9kyڽFV}fw&%Vѫ&֟53I8X_7/{'i_.YeǺ2wW7~^v+Z@SGTu&U/<(e74YJc")›xt]&sл")ucJk4_v2R7yF2XieМٗc 9) )ϱ#,QUzx_+u#?=!sQ qm:Up7+J61SjS;˦G5<7[/[aû'֜ԇ眎&9 []{\k.,6O_ù<ҹahl6 +)(EYɞbtƚvA)|aM|h0Jɓ;o:+bXb#ԜbH9hl +*v +%ozgIqjz1mPFW3Gd{`eZӑT)΍DNajbX /q:j*(+9Ȭ2JD3t-X<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4C˱ݭ$OsvxږFUgFIwRn#iC4Y؜.}#$Zgfw? n4|տCweG1k4Uuy3 )'S8)=kcl(]7Ÿw;TEYOJz̺ ++_ޑ jBGw{ɾRnV7WN ]ܫLjבAgTOiý}_u~\'βxJWIȒ3nw^ SexYf!_4Y_If?i3XuT#WVfr8g75EuUږli\uS* yH(:) + ]oS6WA9H)^ݵ ^gjvfVi k-g]frXެdw"˭NY45XeG;n27y,CAQYi,Cɒit|ѧzBM572$F׬8/N^SjuQg^jus*dիyJVh2Ԯl-w7egǾu UnL#Be8rT#:Q15FŴ[;+V`m;,'DS n{ؓw95YQ|̎Yv3!aIfCaOe3Y쾎ګt|rii3;#">: +bk*s~t*Fٌj6um֘Tԩ!?gyBES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb *Fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaleXhaf.%G,ϑd%͐ͥ*IV&*FI;?B+]tob'c*ZN6?h0}26WVWzX8HDa"BM0<|0 ,\`Bb!\ !`a"B*4D4HD| a၂L@|Ņ"(,@ $$$@p` !0.0l0` !4@0LX<8` Ppx`*@&,T + ,0  X\`DHp@aAT +0 p< ($Bb``BDðaA‚ ,0.\XHX0B×ό  H?<,0Ѱ@!XP`1၃}Pҟ @p-yxX`P"$&&Fd0b*! "0@pHcpx`  DDj@""D$xxX U`!a 6  ,XH5u|Yqh,"NiTno],s.49KNnDLJ94+:e}Z2CXDq ̛zM X ތp|v9?Qr[y#?Ԥa ASMEN.e4\Lb<):.yc&ӔǨffGWc`ZY#Gk]8fVY(wi\DjbTYӌ,=9#6}wZoOχGq甹W18IW;RmXȊZiH~b#44$eVU61~2KZUs_NJ]G'r˗uƦllGfMh4EtݳcMt}N)u覒u<]3xC)fy^7lP%VNvGA)eeG$ב>d-oyэ")hH5E%C8U>S4b\?Q5`Rc&9K"Vh}kvg)jIˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRɺf8t tr ]&e +ALj3*QiISЭLO"O96s͢;L&˒\.9Whڭ0v^>CbUM1j&2+(f:p%vU *&Ӓ#Uh>lp-k<AIn]~JXWڙR  my>&e&+sF-3rgMQBѕl6h#5ᯟdH-2Ca⫀tIXn. )'sۧ^ 5#43DVVܮ;$de{ tRrU&oQ'ߨFo~zT%4'2RօGԏ)2jl7Zi) #tԈJg:E;}2+oʜ;r.CKN5> Rmxe*y#ᨳ92ʚbLj賢TdV1DF.7sWY +MQh*X3swx * +ƺP$|eOfު\]e3vB#b +m9uЬ{_=,1mƣCtttX]>չE&dŠ9:LTؑF3W=ΪJ(sl}Iʨ:^R1 S܋<2 wc&Gpa(y2Ic篲KT-,R5Dx!Zt9EYFe}` _Wkm^(Hbq6;ǢYcOw͙=1w sԱ)8 BNe m(ʣLiPl;qY ~/v% ݪSe#>ʝ"GE(Q2rJ, 3'O;2[eY1`Q;ߜ0'H#S8@`eJ^>ns9H6DBvsFS“h`S! 8p\1)bH]{jȰ25g pZ+.;\b||YlSU_998*3`(1 +|"rt_IF?}K0^EK rU! 8M76ns魛|cZ4cD qhw7 " S:dci*;u#d7w/WCa[˝Hfr&ťdZ!U-KբKJC3L[Z\*{L}OaKI\eIzv-Hc6VD]vVAqED:q޲ +\|^&gM[T`|5NO7C&J6e͎'C2(*xl;3|ZqQ9"dW_v(RC0^&.e:<5)r3n@!Nµ$ e8M̆T]#m~YRXb6WS[@.ͺ5lF(af;)5Dm}E 6/4Ԋb4tH$duB9@:qDl˿Pƺڹl4PO@F^vJxo&Ķb/҂07V6{I U½J5ٛA^%yvRغ +¯,* |ۍ +T]GM_8ews433lcR&PMml(b2pqN<`,CHN*PBDhkt(Kd$sTs0̈́װ3Rn)Ƞ-9U.-2mcvv7?qhw,Q6ʕ=~[:Ƣt-B?4ۊܚcxR|߳WrkR˔ﲩ~0<+>PL*AK\Z!U38l=+ +ZO2iQ5SWpbp(zX<Ӣ/i@_CLEFq]>Jʌd|Kͱ/FFb{΋nV0Ty?hI;s<3#|r>׷'_ .̈́>S. /Q^Zg\PJ=݌h8DZ%=@xIOAN`LV3#f8@Ldz mnRM_թN"r)9aqLo/) +),khп0'$" HF{ T0DA݋tmEoQLfQ7W'~;,I`4'3$MvjzPh gDTд UBng1Eʱ{&dx&'-枌XuR6@m(iwō{8zPc! + ̱  eXr/,,+q 4O!cҍ/ ;\Q/ +uPy`*:ͺu"otBs0~`@Ʃtic&PY5z2?~vbΡ뎥WB 88Y"7)-Yt$kzDB}/ΣsQ"}F +Tk%x2]5nxnR;V3DMa}3B.ׇ>R,w/F<1EJ)?O֡ ItЁW"Use*0%;[fMWaDFӂ}I/jJhҔ}djA[eFlqZz$Ji,Vm5t}2 +?(N(|hH-8Tu%Sp\{-%<7H ?P;,XY{7qj]łj` n:_mQseʜɛ4|w̡h\-dZs_6Ax=Sƨ qj̷"oSTAŸ⪌ 3P[={D3`n*ɬMҠΞ":̕`Aηo&6(lR]fnҝr=N'Ů`~u0ǤB:m!a4[(^dvmUV~^^+ٻ[IYd-{CwVmX0͓ls|/-F"X|K )0xT_RZ3Bjz"iئ*R, +DIsau 76; YF w}fO ~װ?x1rTsD Ȇ +o&F Wx ],TҋqK??)ĵݙL*C)k sKTYsK'u*frSR&ဤr⫎'Q+rH{w +?J sDž^pnĭ$1E @6 M*p +3Wm Wzʯ ]el_ϨxۃGńnOggmtdԩaf"g'VA@-Mq+B5fCBU:L WH%ڲ۲rAq$ЮHT9n7џc{St A6fU$F s?G..H\) ̼P(\H[n*?IV4d; z;{ԭ\ L8yX1܊/My&V=cVA@ +Sk!4N,ш1"Ss E8[xN{d` AELj V(12 o؈#8bODJ^TL{5 +-y*SN} .9Nj\\x\ID$V$):Q+L0-GրẨr{;WD][`X扅j(и[T= BBal3=.:Kչs7)m,ƷQ_mzR۫\r6a8ZF-0Wx P*Evp55unmx$! ͔XhÓ}up9Fޙ}3 qT_5>,!"l'jD 'K]!}V?(w/[aHQc8z%1 +WEV&) {TG2ߘxyROI'topJa)`?)bX4WZT1Q͇tmʚ G\īZtX"V TwӊZQ}s1i7^<]3~FH\L4*{>١2JjoһD~p$__R'EĖR=bJ+bF #Fu [wnϟskk0QᔒҢ6|q +DBAI_C3d%BK8{ɟG9?]VH0 wk&qN1Sf$ +C!QnIa4dpIߛZa?' 1d9$ +7(j\#ȾxvQ TT*5 Lv/8DOi5jv! TuW ~~0j/u},G݄JP`~MXn 4֚BZVi#%񛌒)h_R`(8S_иo_)ݚ2϶jПhcJ!ބAoAY',Sc/\@-JgEšSt Rhdvl`A[-nǭ /@A;H/Hx}z;r7>"ak NvcƧvAD9E\/aB*dC\ XoDr$t,!0 MFe~ten>jTBSNURG+!) kq@Nx ]Z~/MĒF'~V +ҩ9/JeY; BbB?0a[l;8R(,B+2%`77@HKˁ +;D%}P$nfד ]$HPU"9yQ`:> vk0.&:H .d+wXVv'CǯGQ&E(M,p>BКab4Y"F|?r,G6GtJrG [䅳/ /Mc1H!a0 Ly 6*dBkBa6`XSӝb8a70!+uar41ѹ5컐43@Ȝw[hs򿨓@H&X!]{5|q8eFcj'rdE)…˦K7>z3zE=q(y@{9% ;I2V.`Xp6oq^޴n'rdvف3EG@3<^B4T_=B2䣋 M_牨g F܀CNQ@ΓVl:dƽdh9D>~r!?ڼH*4,ݍAQs La+C1hz=bA1&(N9ab*J:_syZx;VdIV're) HI(]U vMWI7^Z",%@x@/?V+lʱ$22"pp~!ݳ^mfGw/!J1pAO5m+f@"J`?vO/Ubw)_h)XjvճQ>$#I4 +#>,Jri,e H(IsCTS7}Ύ)iP`JǝFJs=5(uįҞ[]f'&'7W2cZfB1X{F5}^.jZdU ߹HHde@n'uHw9a1zC, ~B*DcfØAA7gxXɖHI*?ۖ֔dDke5V-۰r҈i3d=![ `u&v T><Y +@= @($Y^.&z@p +;0Zeq]*Dhu4/<W4I iXLʶT9c5܅`Of(K. nb0=m!&"%HfvQ w=kJoЭN=t\laS;ޟ(pwcs[ˌ]!^0>z EH nJǘݴ{hB9DG#9<$ىGxU&AL*>>5 8~+ +s9oPGoVz&10x 3\ Z/DiGi5nXXΚl'?%Ʈa):ƕIL!ÖUi,$cU/R>*Qk.'#!nu]gٿF'PD{6X99.\HI+,OtLH[-p8ftyJV(G1E)а_{RKfH!k +mnCS)YJFCI4+ rL*c7?8O;faA*rBQux~9XI|Z2~̬+Y$:g/ BvZ"fT|,1Uhωֶ?pq^b9guGrm`WJr +HrIPdȡ蚪¬i"-"CEɀ=8Mٰu,(eЮۆBtl}BK'CXg);Jj#.X0Bi󡕀WMYnIkbCs[u-#%C5F}'u%|]<&!WHPF-yŀc0rvIkLv}6;!Cb5t1 A@d65?czK%+*D.N3f|R!w< `m5Y\5T٢dpE[DlEMu6I>*5GF|w[@-\!8{.b&"l"7?6MXyz +ۄ. +ItWCqIĖ~ Yu(Fq|X䛢"wظ] ?UxYhw-([R ޛ̪Ȯ,qc/N#3\o%\Ve~l/%%:ٸ.+6QSG[$4_ b/P q|@ć/T[lN$ n{EǺ)"FRL@.)ƤuvITkFߧ TP bs =0Q4JKb\ hZ?xt#~G|0'pgPNZQ(ŏlbm.TίbJ H&0-=MW"5tv%EDT:HcqI lچ@Jҧ[8p"~Y RF`_mxdЦ9O&$pûm/Li)}֖'i$:I$ݰJ +Fj&ֈδ1^TRS1O`GȲ;&TV tˁ=QQ䤹ψ#hn䛉a~qf'!akm(g #GO~>N8.G/ԙ'}[(T E0yd\^U['0s$p#d7K* 77,+$uX*_V dZ&  $/bLuc@XWҙ0k@ٔ`@COGdv jc8K]\|0rxf 0b$!{C#R؛ GdjA$2`w:a_o++Gh6qtTHeGB=9+ ͂|s#A[ .=rz!o-8yZ0f=),"ŔVF5Eb^%RHR)v6E)T:PGZ`jox +H Jx|@kuZ5iYko9؊CvuN`6zhrtkcqE/պreNNgR2'9FPqioᇸpM0%) PNO9s@ H(UqgY +0T gܐ ̻|3> Y49~H1Sע6Ce KxZTP&"#]:,eUE3 f ΈfUU~!,kr@*?,U2@ kNR%ڄ.F/} Bk%AXi4Y@4䔤 J(U9"KJNj8RTQ. h1'Qm> <@Ao/fIu\APhaa4PhяOvc1<Ӌ2D|-CV`'Ȇ6y@).m2W:cRxX!84Qf5<[il͂DNT~F):n>{H&ڬo{Z7:f\~LFHl? =C kvbM]UXvjE%2^y\vgO9rRƎXJH]&ZvEZD P'TSu_W#7aI6YE7,] )iWRR #7+03>b2л8&E4M3C;2<B9s~am(|@y%sx +23"uK=3o/P +%Jv@oߊ6ds[HP7?gќwc)h4`ՓĦj㉢@ .COl0-fN)3`auDj֌{O(fB6{]kieC2SBTi;n0@}*٭nif$*gE-`\d L Dez*5w5.a@-&N:# p%О$0/7-E []6JJɶ֨ukʽtf:H\A5O'0b;'}=zv_o}{JBaڬ =Il 6ڎ ;kA' pcz=-C*PaAǮl\qFY9Z cE!^H>fvL2锦?I*G-׸e6̩@ZܕiVN[Ј-)H x!2d+ Pjה?(*a Mi$,ǔS>J/䣝uZ\D-0:! 2:9<ޔ͘t53:@d(S*{BJ _]A]]6,֫8j%W_FPtOAhN2Z"wk%4rBG!<`#?Fngꂟ7x}"M)l./o_v816™w3'=>xL^5QEE.XXʄBC-߻%gӹu887_`P򝠐޹1&MV00=':mT\8xg'>Jɞ<n l! \Ag%_ce{JIj]cӳItaʼgS&;ݖo{Umo5yC`~cQAh;E kJk*(=4sk$Bs.~J3DaqCזs {.u-֧9$0Ob,5lb!ǒ4mm>w߄+:XfJ~Ya8CFO・^Y럥iĹa vw*TaD&jK\$ew3b,dt v1ZKiNJU|{P)pc%Zn«cy<ֵ>~Ưg^1? |EBɉ`D_\ ",m~⒋;e@[hgؤHiуR= 9F/q)`v)XIZQ-ve\HeK9JGT'!(X1;wltF&Jt~{'驙s`Y 1a4fI|ˆ)ōՑ$09d +?H+c~KjI]Aƅ57hP#'iWi/O送m9*FLQCs{V88.<*xb̶WZu!>Kbpo_Q%үA*y891ٍ8BAuO2$׻0EN@~ث(=$ߤ5iWxpG}u9(rB,?DHqeH!A#m_%v##FV:g`Y2<>rJ۸_6cilgP&w Q_2Z{CK&<0?YTBmJ !wP>ZHAKQBJv ++īr_mX#-cjĀ/'n5 ]RӆѰdϋ+ *mrˑɃC~q* +qΓDC~,U0lx5ynGie.uSO ^ Ckz_8ω!|Z6a:8cWt$JUuLK__nB3`h;@U.!6 4`h~]쿙\tN%l61 +{0Q01YojWTZY>|r,#d?]RD]~,*؟I_Mpeq}#g?d$+IaI՛APiI*`XU0a{Vouҍ0"l zsoCl)]xjTx.Xx pe0a"M꼪,a C&Xb8?ۜ\y6ڴQ >X'wRJi\8ˮ#G3ɬ] 3~dL\6~,aIRjǤ_VhlS8:8o(=t5B\,2#\R ?{ b|6ܧ6I/գL!+g-n9WxS\ib!wWӈASw)`" ڙ+ި*+C!~NWihG8VbQǛ(|tF8F(=ò+Xh)A^h3֔|8`AA GUZ g*hy[yH . Ю0(Jo9FEEB`hdTخT_E7e5w u 7Mh),6CQ59 1s֑>I[oK>#ᄈ:0"H٭8jHd1$Цya3H-#nTAETQh*> +ݣG"+49ɼaH#St~$VWzH +',l>zrlP΁?.k{r'1M|oaUVо#[-mؿpoi~c|I*v/(!k7C=|aiBUͿҳJ51$ю`e.-y?q/ȢաQA5bQꪘ8@00/L\}zu=n~9Cg;N?G7$(X<3mD vc0XʚGIfA 4%Q BmğwG "G*XjaɁHmiV$fJ3L+jmkzi;= HSMd{D5LmhC}R Fl', +8rCKJ]*ٯS%!NN S0 UziXsqu\;cפ܃j/jClo_SE h78iWO<ۚA8/?`J9d@@#&!1o~\OiT'a,r EHŷx|A=|>SCVu88'dMN-^Ԏ nrG`jb S[FD3M%s:Rہ./23E%k4e*0h+hɷ(KfNs̈'-yS#\9*b$مGk?J }//i(,ؐiMh|q*Ukdwenp{tXw=O[\ j0!l+^u1Υ4ŏ&g-tBu* 2fppYʫXz9 xJ@UNW +h0,)lSѕ>SPpJ0*Z[ZM3݇X5bKHgy&^ -I7ȃaD1.D KA@#H9\;0I +"5AV&D~q(QӠ7X jHK$nX؀b2~] +B'n'v"2&VW uG_x=|?om_hx8#@]Mh #^D(]_HfPrsFƨ7n ĖR/}@n V >2>C2mi4./U۠߁Y懧/`S/2 +ODHM1VK&orbUP7kƩ^ 6@Ru:YcL2yut0J:mu2Ǥ @`^b B?m O8?[ rbS`)r- tJMI`n͝lP3 σ.|%G6#N4].5$-JEs&\u.K]rƖi)a|G0Z%3$&jNx< UJ5V|h_Q*k nqUy3:}"Bm1f^ Cǡq˙)m6 'j0X}I꽃9'zͼ$K>\1HZ_v{\2#>c,),⃶{G+$4IXl9FbR@Α +[(ヤHan}4Nx4Km̑E }nJwmū{k2jm+.qxl1 E͖iXlQO6r/b \$9G[xjSfCe>Aaz#D" 9( 1Pw#Y  zT3w(OV +B&9 ѡD$٪+?Wv飞S,E\n.v)+u'{JQYe sȨK/>àT΋AԲCl<rY,?Ѧ.{Ft1Mr) %p>֊a)Ц)=l.IO?Xm9Av5@ [ MRLiĂT >ffXSV5l![b Oc0\ y0sRt +/#zNN^ծ~ k{\6ڨV⫶eۼp<GC㘄EjL ML$$<ltRC5͋6/67+|zgd@WLj-Bi?g{7猘6yVeH_$.5h+\F8 rzY$ȡnyD_e{hi5f8T3uzPWymay&=6#L}+Z~3ԗjAcnqqax Ƶ!&AL VRnQs64ңd_(e8sdNY鯬t Y1^y)gB0)ݰl2Ŗ-V{+CU9b"0e)n%_G/HS%=%cKUԖ&2/x?Gq`-Lv{ȻS"Use +]jW*D+6YF$4hPS +9 *jmT,RlLԭ])szHeed4>Di"Y9ʋgHJhh]:Y^AOcډ#8iWn*eV_fa_KJPQꭘaBk!I$Q!bBHtH EQ2 f""B2#I;-( _,6WEk5;RC Wz?մ1xoKI/)T&nr TP()P+fQ+ YɸqԎc/$Ϟ I0 $voNa<+W𯊄RۀD2mSzrB:7&B5R$ !$T] 쳼x`=}18 Cߢ}BvIMXChWA^'_l=B!Ui:HZژgpo\W1>4Ųv50n,85@,)RNk\C7dW1TV%=wCEXc7D%u Ōr5:js-UF=slG+|C$NzFr"`'XqFK8Ub"[.FG ᰑ+2P8$Tt!~ `Ѿ+p6 1N` Ou3L֞Y[XZu)q0tu]90`-3b">-Ԟ--`#Q74˯څЁP_o2t.a)'ۤ{O0*hN$̈IFi/ 'D\Mu0Fk="`4(!x75^ %`-s\8E]w ɼYPCճA'{?gH Ĕ)1!5-Ch]~)~!:U:2Qȓ|rc'a1$mqd >e2913Sz^Gl'!b&e>+rP^ĵcwRAlgOAT/uP|]pV4DsnɈ]*E^LW^Gʿz!) +Gz +,$x?`YmhAT Pf*Ig6 3 ' `4plt瀥w0:QG;07s[* q; z}P-RP`q +Y6;%7AU?Jܧ沀5@\}"$ 6x{.39v\yr3,# yD +)Ș0X%f!, j?o#O27`cTgg\}K k=rGzJycl<\(<8!v6 $+XQl2rEC )JM!7-qP1-ITP'2Cx 2µj\ԚߧZcM*\DŽ!?|'!qϓCqB*2@,0!!yd K7p4 P]mEX}+!TX 4Z8 p|?,`ļ\תVTX.H.؜0Ah1 + @a?*uOʀ "RTi"9^hr2uj (nŢ@7Pn$hu98o8Mr\p| G3ro#vIOI^ P&q)l ;f2$ +4)C3W-ƪ/Q)H80e4J. -WP>:X~N@)%N>2zT Bdyɗ\ r$[ZIqNE1|6㶗"c"#dA#KC%r6u##"HIC.*~@P\Ig"k\$< R;v!:]/ UrY)]"034 /%.jA-:P"&X:5`Gs Wy<_WiY>VA̠R|+@4Ty}\h]'n(q@^2^z$YxW< +?1OGfˀd+3r먧nTO8b,] <Pw\ޔuN! Y]ML F&߱JB*RqܲP@Eݓ*slIp #p<^LMqY@Cxa pxm $#2#P#Efć|S[r,yBu@@|]DA@^KJCf,򕐦^f.Zkh)ElC[-> mZrkZb䱚"σ4ƪR5. g!F~EsZM^_e_6rP^kLBZD޳|x. ܊ϣK5U /ǢS/iNA7r7F6Gޓsw_ n{9\a/-(00X2sYV*!<_VoO롳AHDz%zlK~"a}H$IWc@D%zWe}g~,Fw$xzмk_Oj{c #{Mg͓'`XN=$JJI|k:c+/cy?.,Hӕ,-L 39zY^Զi戽/a"a*43$U[XyWFX79 %@h,J=Y\mE*ƔBdA'Xe 6/w48,"x:ԸYz`3ܵ&Kl,!V&pEUK{P^g!{6S]C~`. ,6a(gCZ)ꂼ`ʉ#Goe2g{( +H独.3/+!M8 [GZ19AkB! b,zI7 +{SL'IJ)iS{Bph<ޏo\(@=J%1 {}<ZXH00(fރU {?Ox.ޟ{?@dv. h{ E 0@;m"<:uե؃=:+tnD#vĔS̐b3J'Y5,q5X(?,^{ +HU`JVX&|ʼn5iXN0|\SZ) o~Mh%GNžp?jjNCVJWKE UH\m lnxF" ! ,h+ kVee[E|+(TVWPZѝHwBϢBj8 ;@"bi5Q nJPq"*{2$qeL ]VD}. KlM*i*BrpY`#mKt8zm"J\|&>FLC1rE¥/\H ̯;$l,,0@NvCCOv,ʩz ++>˜6ᅍ0t?/t# +u=>“,8~3qϬ@Z#76使v. `DcGs|(ʢ +o6i[eB䲀%x`kЙ>x:ḷg,0YXZ,]Kqv _k\ml߱/Dk4!zF߭\;w nsY-VT'GțWʊ*0 Y7hw b`aO-;BwDpp%^ zq6lx(fQ G6 +9' ^}+{`Jb#`UWw<ӏC2'tNΏE,0!K%Oҗ$gE'.9{zތ·,=Bʒ= u. lfdFµObC`tnLя +c ++KU_\ذ TRJ)(qA(xsq%MV3:^1. |~SdN0XDGJo*x6pЈ>̐ekC<#5W֘Kw}gEOL+\:,Uu5bREt N\]zr\?m 嘾Vt)̌zLVw+*+S0 +<z ŒހaFe FA +{MabF YGBKPO([\x>WM ;NdN̰y0>CskRz[&. Ԛ迎f*zY c$օ=LSQu*W'E@^. ($Т\-GVm'wj`\/[l|AȮ<&+1]gE90H%7KdI}4VH_~W-zhGu}w 0ՅXRoJϞJFy}rY%{7!~&'3upZ񋆜q<9'y h2Dv +[q"HrijDMi\ +["(ϧdNZہnd{0Ӆ*==p A'e2.r4DGgs;GSbm 2_JOS[mѐ)\Alh\i}""دn+/Ɖ,$@Q:I Їh~MF_ ZzpY+?$b/)@K: wq3ZG u+y|6G"qSz'F4M,Jh ̨ys*@*GXĭp.k_6L)PK[%Dk1XD-9UH\Ya\ ,Jk0*m)_b~ &\Cdh$  Ibv!F7*cZ'~AЏ2"{,dS3Lx!w@Axz)'Pu0#|%ͿPYqډ"3%M&Sl"_“*<“UYE]ڴq~ q,ʢB-/46 +N[0hDjEI0Nʝ:= *wbt%x\sM 'V}/m@=  ҎuW@jgG̓ /;dֆa6\w@K}Evg\7u۰뮯6m g;H$CF$lmG*D1qҗ!it) iHgbW.QS}p4f'meeeo2&˸VF[Q_HeϜ#7iB]IX"w=9 ~]v0q08ashukZV]YUO1wj! \HwRJ*cT|_wv5zm)LAg8R;WAe2XaAJ:.Tj?( L}40R쀝u\ CSmBI3hRg>nXq͠y3p2:IeEYtQD9ڥ%Kt4p=\n\>KHߦ_kߊoEXS~&FFg_}y^&7h'ډo76Gv +c!=TߊzHCVx(IĊ42C|Sc4"('0.L¸0M%ox1\f)@lU“Iu';N%5/Œ L!sY`{ DYR%\ p6qr6mziSo|/m489ߊ fEAg`}U ](VA`A +SF;_yyԬILvlY _+V'լh%4:};`0; CRf(:<ӷ=?F0eTrYsMH1C,3(ó6ջ .X!n}h#;}ww"MBh\CIZ1͇GDTX|N>fYq&eL Xu>v1Y[r6APx -8+λ ])9}}!NP|:IO?ĜTϒԬ(gHy\f@霗xn;z̢'r>&n|Mxw/ O28a($y!u"K.e_`PȦzhClzWv:DL !D Im(툗Q5:C;"q)aJYbP҈ˮԆaCm숈f' lC1vC 0V}efHE8lpR +?[יH?$Mhz}I) ʑp1^0W5N[e1TVҍaU$GCƦW08.pLrYLySh-4wT.@NjY1!fuYm%16`?t+#~-t83WΘZ1|lEEH ghyKUx~QxU F槌SqYt,Y. pY࿼.%eטяz[)}IϦ/AѯXQݣ/KG}bB. d:.ߴ!&SsSgP_50$UQ H@aU'eAz. JLt%O@"J)n C%\8HF+. -Ί%{&-ҳ4~Cл.81z,wx&+(=\ḌƷ 9.m$qBpuJsByaTVAmP`.e^=-,94ӟ^S:6r_rdmWEz0-oHWW !e4T<󩷸L\Inn(& @!}[Pnq/C[4dRzݟ/dgfp!9)ҹ B{`itr㷹Dcv~e@D@1DhX^(7@qٟ5]P(OJ\a}P#CpYDhVt\ ̫Vp`.`FB@IHj8b +4:P^[/'¡"sY7)RYQȯ)RYN:.ե\&5+hڄk9YB+,7嬝r`t + +1A3#d~VٙAsL2eԒҔ@v`@AZ޼QcŤl̿Ѭa3Mc:!q).6K-Kj$M=IwtH# +oxb,9FKm~& QY1I.!A!}b33z:Z]4bʮgLk{ pA!ZHC_j~OpۼMdRiOȧ$_dPטu4G8s?:ƍm" :`hRzAL_.  FJCb^pfn +sxG@kY1Iq6uQ, rW%RH, q*ɛV4!D<.2J( aLw_ {䲀ր2&]IŸimbjU@Ξ*EE JQL[%D܂ω HC-W .wepN9yT+L +z x92lZo$#RD +|‡K]V)r#(q߫> %QYt|b_eFEt+b4QW$B ׅ>ĎئP]Q i19!&}XJ }eCf~Lc>/ZX!}T}ZE~!äATTEP bRA>XDYc=1/#3*7v4/KzEu,ШK;'DorĤSuiLׄSD/KD+Y>.تF +21\&/`.T tJ6hm=In_()%ѣJ:tܰ5`f;ӗbmz|)VQy,1}ӌ}B_8qm\zrg?("F'e2x'1I +3~]t.O-VUН#K"2 VI L^ gCwQ_ 40baճ C4*F \H)*,& }yI"1p%4N85*aumt2 + 74Md @ %|k6"B:T,4(40aH,9 (b9HW29e4o;ԑ&*'F ['= 9E?MC8^hoųx]oIJXK*k4U7df qKJ@V&S+Sئv- HG>H"6Dғa!,Z +|oum%D<dv$͢G#Gobìm$#xReDy#wVm̪V_*x ۜʩ&cN&Ur66ݯK 0۸݁w`ST%`捎XDZt.um/ +XT4pCj3AfM˚+۬Ih% m%q(CpܞBUPɨFhSQΩzyHirc r;rRC%|\bvFH5'⾷OQR?LxDpg*%>5bLS6hG=vU2O%RM.%(;\:m{= UǼ($\LE$-w4EW*A_s 'tTq4}˒K厀̴H I[K"n-r$ϋLx!a\[4{A`mwy =jNf !p•q=DZ!ڲA й>r`6Cۦ>lې=YCe盰+d$ށn:B^%<4MD7֭:c/'0(^x>J#kw_ Wf=ܫU:p*IH4|cD90}n1e:$JjυCR뮂GR]ԄB x:[8`w&WvjS6r(+SP4prN*f|)}LB[(x}qV?]0u!̤EEJz XǻG]*C\.Ҋ{qW"Qѧ ۍnY̩kbFarJ$@ 7v1odpb\1{) ϩ M 匭$|fEo'~} kMԜNɗZ@_zE#鯞LbSȤW#@ ޹丫 +E/`憓@fغa~p8"8;@L R[G@7@c +`^cHL@=3J**-khY;D{~͚&Nڔz18^H9gp ~vʕ[ ~!+?4R@ 󼰥iceF/}|;">%w`8@X?e͙ߚ]z%WrbCxR%wMU.:>`D +9o9!]INal{ArL^n$+zk, K~ 9m%Ya0z]a0  yA7KBjq 0~PfGqZ`{{׍uDA.&w7NMMjp[v@n/ס$e5o>euL8>t5%L ݸ\cɧEpy1|;#zM_>9i85+3Rz/fkA:V*"mY0w%LrzvT?K]n+ ܻ +8i/~A֤(sGsLQhfVcধ כb0Np妫o.X٦I1=x9R,4XU~[r}~*$~58}lI3% V+UZ+rѣ! ca1@&4s[B.Y%_]@H܁47-( ++וfLjfn0C4XrvCF[n!?(ȑI]!bBe>:)'| ~+C99To#L3pK30~2]*Vk 4Z0JS"u1a8&Ӷ"uX1jH-i P Dz˦-?齉כB$-߉4vԧ@D]ECGZǛX%v͂+k6R|#gy |+VkQ{Fp!#2isM&0L@ʛ};@{eŚ||pkp$xb.V#2[iK8WBjN6F^cWiQ4tc5b8cރ(t[aQ1!Ek_;15Ä`EPe" )|QgfyUFoi1+;~}pRޜqW&#4A]mw inK|?kz+8P F% +#766ВPj1]|}6+jz$L Ye'H]}2z;[~ɫ)'25E'u[6؛g7yj{G-럭ap}9dcUy7q^0YIT[h=d'qFf!i4 \mPȥ'UKB\~G꽞'FO%ϪP ,s*euʆk ?gy7bG j/) ,wFh UMŀHC1pplf0y~cWE66Id]ruŚm1 plԢxZ! @mTy?nn!Ko=u>GMħ }3ЦS7xM5<ЊL)tD6rÌ{Db-؏ +Bq [%Jhf^#DU]kp ґMsle,A., }37I/w#0c ,hxOݼi'ԻT8"=e*{H:A;")L)vڏQmQP씱xDLS8$jP5]m8U H\isŋ$\Si89\g$︰ØJ$g?4TV#/Pץ!1 ;V3ƺ>9fdQd$"n `ٴcot`UH߀tN}Q19k9ԞG hغ\B'Mc#%J9MyR!dGaATL>x#*2BlaKc'w|#C"9׿ɈP|w_Z,d0yL?7}*cKe` ޹0ݕk`ÞC xop!UV fF| yaC)3j|3Hz,hLLSc;5A[ ,_!ҰWp尿6\xf2`D8FG;3K\w21 lTBb* (Сbg:TMj (U/! [ˡ\eP@N)ELh^!%JrN28g8;ZG?HAE1p*y+0%v3O$O}[M zmQ̀O^4VqٿU B1( +D8|5K(=`'l1-aE6wi?g.g%N).Znя|[bnCN1ϔmKEizBn&wKR2O~gq9[| NWx3AF2.SY3abYg;GTx;ä}c-`|p-?tڡcE ~ Uڸ̐Hxw&킋aB^]lv)Ӻ_><eu%8 aL ®> pmHz]=fAukHlŞ@V4FR5Eqn1oC,ٮ @ZVxdgIt)hlfkhOztsh.H{~qh/.O +aGИ𰄓nuiWccvnl{9'!he~W椇VZjVK9vB>s"#ex@%Rg'B/]<8ފw<;[IR:9,11T2&=8Iv/; CxY1e{:mI}y4J(,'fZNtAK5xIYZDgtk˂R̢gT^`"Q Na)4#ēlA"P3Ifv(O2Ngqռ<eu43 +Z2>БJW?@]T&>+vڱ氵/E5ڋ[Ea~qsܝg/`r BjRܙR e2ÉvѩEc2k* +wVH4# n9 GK׫EE:zƶ^H4f&%b6&JĒ0QM&/%:uiV- >Dž6)Yծ'mr۬)2pgB{uvs6cωW~%% M6y&~j|&TGZ,qg}G%p) { +ZR'iCԮ gD6ąB x{<# 3 ۞N=D wȔN=m[|'Ƀn g1йKt۪wҲ +ut ?K !uSa6^Ry*MDOL5Ȱ\>o5ɔRw}TS!jEb>m]9"4FQ`s%{ȗm#K t&;OU̿>(x쉮WWY^Ԑ?wܖedM}Ȓ|i0,שLr`CYJ"jيOVmʂY:ˎ3c  }|l} : +֕ʿ6 3 ۦXJS`'IKF/ . v\+#9F:%Ӊ#lF g?wovI +Q9sp2Wf(C+.ji dY5yTNkQOZK$$emEKH:z"nh%.Gزr;Nmz(&I_!ަK"'Va TvR)K+t]1Fbh4'-k|Ǽ:nO^ܬIN[ FsK7R6e8sGH],Qz=Uo_iLF6rTžm ghD<:EX=՚Οv0;GG(u/W)$dEl&cw-tE;\4UH:(&@:PNWA#|K(3([O,cn|䙃9 SpX.2vc ¡ :5Ѧ,XY;aﯽe&'we /%B)C3 x{L|quby~/pðK +sg_h a ˙RkĺR$_ͤRt,u;".ݳ7Az, t`<ѬjO2뇈 # DtlTD [UP²FĤ@P[cjh$3pJ7`07JFZ9@ +M{q}¬Fovh,~ ~8o -c%E?"KEn(MY̟B&bKI(zr.tGL`u}rBW)~2/*7g) AR]_+'c Y2"3qN7: n;& n7MX=),Xȏ𞚒4GE? 0>^=20w\8CJDt#KԾ) m)=hةBL֚#9Z6ijVgnŹ4G~%gܱjCS~rHSSClTbS8Q;:bm ,2,@r1u$-udIS)h+4u<ʇW>&^%e. QKMXZAY?0P+s:`̬v_ 4cH_,u5jKv>;x'}\8A7aJ嚞x{*<,ԍa`#x6D ljEd~JPؽB9*o=/<⺳ɤ/6&)Zk#_ ex?Fzf k[;E% DH+ɊTP.ly[Б GXq)GG@9,k,Q4ritbYSmuL[y篆#Bo|۔;pCz)i5O<*hPJBܥqp9p!W:~C/]\ e`Zz' gvJ _os@ + +ut41%[|PoZ>O9o5wF0K#i`0&Z=L!BlاRLaayYkʴFu +)N(˓+UlTF`L~lVVf]|)*^ݑ *e6X1 y>Lk"t?n힕f#]s4-nh$vqLYȕ¨c1̓T}3t<ؐZP 3RjV3cA)Di+I+Q&_^}gk;cݡ<>h-, P5G#̖ZWx'ZiVC#b˖e4ePVFw"=\.5 p/ ?풔T6DeࣛhJOjk +AFqq˚[i+ 3P]^4Y]&a`Z0o8zӡӺet:+N~\.hV nvf8_(&}k&yhE3dt(pZh]Ve`Ӌ3S&ў!m`M\ƁFd^*]aӴKFsysV*ɋWn&T.UVKO2:P~!^4tpZF{ahaCqh异n>crZǕy2*N$ -uu#ʋnR%_~5C/ 16\ 6|83цaDärsGE5p3jܡQb6\ap=4?-N +˶2ԧm'G@W1D*(Yo_3|43y]>0W͘i$!`uIap?ZTmWcY0"q!u뱍g)F/ؗ lSӃX$t@{ mO}4|%5PJcG*र6$H$LO[& w`Bj~`L@,|欇916 ר*c!$/qxSxkv[.ǙA} &5sidԑ=JN*j?ZA0_D ٻC5YDs +Fhcü:EIF'zU,_8bF7}z; Tu<^"Ĵs qcO|b"+ޛO-'ΈID'1I.9% u.,V^xu$~G-K`gMrDFjQDz jse}')t'P-_g-b|mmMs/)Wи?@TJ8aǫX#6RNܬrNdr8t?n@> +qv )+;K_GQH'PѾJb0*'\o? +9E)ɓ` 6;;/ .q>Bx{avke>H8F{id|Cu.LšxS0q?ZD.3z,]o'uYUj['TfvpdBU})$tma73$sVF<++u~9`rf`ؖP1ox'K姸$[1 ΅OE3"ү4gd-[s~3&U u +_vVKZCdq>a$y%M!AgS@WP}-P~GCoSzK,\c3A?>m앓iCamE,2 `xde ^f)V>L|S-q/mt]@O6C_N=_%cV&t*fnҶOSz1= G ^wR'i>~%!CgmDˬ֨yAIǼ> AV};.df]) "(@,*F/ B9514s:C']ywT!̥%7iaV{l]Ǚ D9ykc}|BZ)-Iž8E͙nخ\",ffUw̲Cs_bbl=uȊ#¨LE gvHs ɑm!(ܛN. EZn `3e(XבD<>Ռ|`␏<#KpW;Īյd6czwl6`dWR#|NC&4*u ςFH~6SuIsl4kf8K4y5]%}'0ObjF/G&uT#TRb@QJ|5_ IRXT2Q4*$q\׃e#=_Ziz(mT#!vQ3z]ž` +^b v1OqaCxO8&*Y^]RR? RWd#!Dߡc e^&,! pcv 1 ZA**V&t9#MKC(2A:cz 5Ur(@V (jUfbaUvL s #'u +:Q8Q# t.Tj@0kS, 8(3aֱtv<:h$|_^ X6UR8D6Ğꅮ De@X=0m <=E 6V31_`,nb9#$<[VjT.Q.{^.g H!y}]p|)3{`rZ<]Pcʶ1*HC{i&GqBDzH}[#9HQDK8r$ꄛ,Xg.єYIbjSrb/!ȼ>ƅA 73%3Y +8^}YVJ>֡B3Yw<,li8TܡeQ|V6I}ރ++\2>~Of79D+٤<ʝD Nj(q(4ɰXo^?_h^`ٖzn}=lCXË,0 ߧJ+INmV( +HMs` ZwRF?-0D !ˏ8l\FɝiJ+=ne;I8JFjyE_=ҧ!U qV@ +nSew}h/EJLFS5}f iO /2{u +Qb c õ ;7FԌժ(uf\q_^aڱi*"d ¿c<5뼑\oE3\p5<'wnON_zɹFF.GWi3S>^lFiIޱ<+xF0oICe2U\-`+҆̔%0XQ톿Kca j|DujCλ_;_r5.^ Yr/Ctv>D %O6C{QyG͝I\0N~ ;Q?1uo9Kv< uMv$ 0s7RhRQ-bR AAa2į3)կ9(1=!ƠW'JI[ŁbCCIBc ]Qp&Xz %66G> =58ڢ33{uX>shKhB e{G#8eEpe=0i >9g~Z%ǦwrsϩCsYpr Bo%h;~$%1hYWlCnP-Gl`meU\i;[DT?9Rg%L@uo߀3:>,V!#vЙ?bԈS=d[L%+pv2ѻrb*) |h@Jӳeò4?mzNQ-: S*RtK긨ZAx/|Aiy7EZێ!Cl-$[T=ІԴ#3ަo'zO5k~rfɮ7⏚6W?kk*'99s6H9(d[|΢0!,KGWp\]LJ4hHe eGu6IM>)*tF, . ]tdZ.)xqY& 3IOx-}JD:Q #qc bF,)|KOnJHEcLI  @?◘ˈk|C5\Dra0_$]1\ \ɒim"z +>H_Y=js>;/j}N+Pyuza +/V,ZLװHtCJDAsj B.Ĵڻ <0@!/E׺DI3dq[.bdi wC2~tv,/+օ15()LgJȜ@ː(tDOQݣht$zyBaE;q٧!a+A<mr tiuAdQ,`T |'e8$9CHCn&9IB(9׈ §gDޝ4<<f׆*N !샋z&z gⅳf\|]%UA:5O߰N?Q4Gv0(:h-tĪ ݇1W>P1F !/3gm-tz|v_"D`0D7 *RE*BQQ9i&iǑ %)Fmtg5yPIʊd OHAg5w%,*+ [n-=2]¼ + " ,}̗ "]-M;@i#W:c*#Ki)qbB,p^ >B/Sp`:~TV1m61p0B?ӗs.;BBw@[0}_;>a#tJYyd +/Ѭ:kqgO,A .}F,{ ֻ"t:ߠđ?EbJR4F+\@iH\((X3f dsu #!I)s@(~j*DmQǸ,z/K'MZ^Bȱe %GR97rg~\84F T#t(o3(fơ; !c9 t_@AYP4',e0$I>~&%v) + /{A}0ˆQeҗfKDXjI<5զoCkӗsY\%edDܯREana2:/dJSZT!F^ht\. p6 +6)6A~w֦ @ԓ#PZ||bZj1F_aF'D_)l 6>1tj93JtW;YVg/ O _KLhU+}~F+ +q[E؈PBF $)]#Pν$ vc'Yu}w<[h, +6pS2dbzv]u]7 +#@D\B m)kJtmH;bC| 0]UGp锵ib=̎tF=ʻ" * N}s;:F'Ҁ@!܊.qv. N(\hFs<^{{@@f|^4|NR/TЄcsc8"7\A2깣YMIaEq?F^SܹT; >ݼ 8⦆ ƨk_<8SB(o&"{AG;ma ~ckeăAD^H #S~ft6{ PPaЏk71Hv}A{}n7" ÍϠ h6߫$-~ Z{CpݯRX^_jiRZ1?42]i8.iZ?lerxH8EƵ3@8W~>4}1H~,5W+<-mWd~qe4$&٤XsY<E n8B@vT]Y@"(-_P84! +s{'qWz UXp/q@D#yTӆZ'.`븻RmԢMܠbK+)RJwAh:ﲬӓXmD;+X),zAͭN7J/:'A7#Ҷ8:g?`|(.*̅dE(}f b[B2$ DsuNt!iφ15PU'b⬘эhX_oXw@b"%`{\bgrez9;a)nWXɘzK5B't{+?jlM$0UE;`/p06z +5.+j@7؏W1Ct\?" D 2CWas  <dx H1q/+ް0Ey;D$^+ԉޯz0z S֡Wx39b‰{pS:F)u @5GS,晌F7ꗳ21/Mi?hD?.dm S[:@Ӿrnwa ߞuBs(;oNcuvt= gNwm)?m7BsI喷҉\؝>2ż &Xn=VG| nx%Ļ<[Ɖ.cf^䬲nMH1=7NS& Z/j΂ItW᜛l} _+ 2A%#v鷱ԥtj$^VC4<\V}|}E#Ўx:ڜ +ڨ,|Kw1͖b}NLk#pV@'(I!UWR+Ǫqr7ڔ2e*qɮLS:)w̴2)K}yʨL[eid1!ʴ~Q20顜jü˫gX Po8!U}UݗV7 āb ꫕`BhBrnwMJ \ת"iq"k!-8gQ)lbsaR96 4İOe'i:d M3 pwc@'!h +34j\ygA v>. +2_\`#aVfuh^F;+Bֹh˟x2r!PIANT$YlK U A'0A_tAܔ@c#E}4I[%dJvꬌ~E? EF_)/Vxdm/t 撲1 T}\Cy2kc(k*EDee<,)etu*@:.K4BChuWQG1J~q4> +<ݍJ^kIe3\!JO WҮf>(8 C9hNէ gh?A ԄRf1a#( \#i\thblG +t^t#pAG/Mؚr #$-֧D;t" '`$'ǫ׉ | mii:慞JHe`~UW70(G42yR8ZH1զh8ϸJ( +1 Z 0>ƑS +0"^(0r| +~]k2XM[ڬ:DuKI5SS Ҵ9JҰNYT "~6 BmnXm "n ?Hp2d.<k.)ޒAԕZZns\=# 2t8@ps%S+ζߛTPkoȞyM _GEߛI737y .}9IotIJRͼڛi깐AAqna;H>NE[8:sbo%e͑=7'^Ȕ9_h>"ޜ~ r }t.poX/?O֦ÁZ9E.RhZeTjA[v`9Flno)⵼IޮL!pkDkc]!q(A"O0f@9x3>pw⒕Aw.M_W8hGI&^"7z\(K p_ç7Ƈj:RNU$*%.p64{5_q]rp$]DW3iElFiº6wڪ.Q 2 -!oJ<D8 +L?\bKi9VU[\jo=[ך};SR ُa^A#p ǩ ubM?~36^r!fw.IܵMnpcaF2NS@H1l+` e.yםчi,Js8=Ra0޲nжAR&f.͔&` 1 !3%~NƸ3òH[ X.Bt@|_UU})~_!Զ_Uƾ/%g?̀Ctg;I| OcWj:AUtg9WrlUqE5 +,+>anQπ S5vi2mV-8l^7^hym#b/46% +dDo/$"&"dcI;G@>b8k7$=ih67QRk[ 6LeYCLPd!mVA^0W +aQM(hV3]S 6Eq{zmKſt8(>DzgW@m l_Lޱ^+. z`hL8KZoAP>I][xȺWxRD(o\Zv+]2A-0ٓ[_9D=)nqnK&bj8|PKΘ{)PY_ZTLQuLGrgL>e 8 5 W읒 LC}Y`㢷%*DDlX!:>LHHWv9gS7$3tA5Pkqp틂W0)fтoJG,]IfPI s͐M=x# `aM_V;ņ4ld. UǃO0$Ǎ?8OPڹh;K.\^*IfxPhMh i ^Yփlvt~p.\f^ptGOݷqys.,(<(ܗ)kQV3߇j 5RFlקb0PIvOǎNatUc8sgT5%}JN;&;줚t~'CX7p"58hx_~-e!>IR:HQ251˜|VV^m3bK*NC/([L:t,K~A) +endstream endobj 17 0 obj <>stream +t-mZ] 'Z5bȜF)9O\CK"%5Tdb t`aA" 6J~_> >f_}g7ښ`M C 9%A +"W[ȹO+t:x!:M:8qǒ@& Rz60ŁS QbĜч8>1xsyZ0A^F&Sl}93 5]ĦeY(ҠOd{t$qQhɭ~xJqVSkr&ǔ 55\ _mfi[t-L;{E1ov`rC)kB7R].VN/-f#A pcol~8ز~8.`sYGŔRO3p=ñ!Eđ]5LelrC3}en\a'l&MAn,Fdg\ +[yP6^~auafGhɿ x}!łECZKӡ?F+-7ឹC];8P4zCB >CR:@ߡv};KmZF=^v`TgSW]?SP!BN!ZĴi,L/??L . 8>9 HVg"1Ȏ[ ImFҀ=g)M=,ǶD6= a-Z:|bH6 +_+`' piK3NƇ:MLZw^n.!QݣB^^¸$3C{U@xQpH_'<SZoq=g23`J?MT,xr3%P<mFD-* Q_mms* v7CCb7PBJZ͍͝kkHk[<Xq vnh=<꺶8b+kah~ +oDa+3bOwV`߿"I.W>m\%{9epUЮ?"k:ex $5GN>APk Ա i|:xFP)TK+)'sNwwQЈ(=iBlLZqgxK9JYv'%T)n~ LVU] p=G +ϖ4OGѤ+[7Vx艷_Dm ?*b:fS )$x-~&.* }5^^EÁJk?9D.ߣƁOP΂;wS8Ń<6]N_NǍ;N~"R[z_jɯۚM-JU984c/80^/9\/K{ܿ]菟Zy+%p!qWZg&8#Rw!|uG_Nn;( Q(lhDR"+pN:o?FAݷz|MnoUE[D2ZUUtD +P"VŪʓwS;"YSZ48T_3)Cmѹ򦄨 +JR"Iym&V&E@2N=|N̻ISN4aFDOhv`v7Q/ xFNQA- <{JTL]}=TqZIe+"ŋX,j!#zM$.h[8y.b"I' IP!Ng8.~։zԼs@@0zQ)_4U[I419q)]1WyO99l9+rb8'/,?fئ@{U7KObNĥ4/¤#r#t+4e~BQF\3fc=YਕKOL]\Mk~ugsX~Oj= +: V+$8]TXr9?d7M[f4ޚ`<W*o`9Y3 <4H P +dC ljD6tpi`$D&bQ-p@!(! '!O&ญ6\\0"r2 'uPQhdžIxDpEx<`plq0CVȼ\X px&d2a V@d2%ipAr=Lゃg@ 1:4"^L$LPTL?`̈ 2'Z1Ёa +C0B 4DbG; L GvOpRb@płHt1 +S `!ar#$9t /\QɸqTłmxX\h4D@DCv@$d6shAaa ) +q4@('bh60{i` +xP +$X Ih6-u@dxC$9QTpX`Pbaq4$ +pfl& !6|~C @dTNr2@0fc㜣(Ha*<-+*s24ʹP>ͦcb +Ȱh!ʎ1`>@q-" !ٰ +߰9aO_Xh9b r,b9#$g"W)LA2na!#xf!fXpن P .CD"2AzIy 11 +813<0x@Z8  ;b01Ld\X )hxT8Be4M0S3c!)'^@8M~8ȇ  +QhM Nbp P.A'gLԀh AXp4E%F1YgAJHyH FDt>8D'C"#@ .lf,< i1EHEʇ gaC% w!Q3TA"zddD2u"pDC(ȡ@1 HҹdbÂS1!PRLP@E+{띖[NVKیig{ޫxR.j>?"w531'3 +RV@8FվyEd`V.\ИX9YϽJ >{׸ߎ+KY')-9S|l}´veRfJg[ΝϘ[>F=k?wѷ|Yp&)~Y;2f[l64"Jok۷`leZhȭRg%8I뛟_WmժZcߵw5$Jj^f:IWgo޵f v]봟n*f.{fZ;Im*[jڪf!:a=$%u5]Oj#J~^[g݋W,1226{2ﭖf#rqggk6)ls㵗Kl掮`/;KoiۗY׾7%~{klvqKz|͞k_}]YҢfY廟~~$uef!=7zycݪv]l|}>rKim_~m]ٴ s)hXHٸ\R$hDh6FIҷf3El&hpBhX + +b2!A*"` BE FL!NL uh pHg0##i@ +ؐǓb! 8"$& '0 +V"AmI *6!,DDOHHmY{20FDQU#ِ'Hc$ClCrh`*J:(KF%9{<2@5l< ! !)2Pdn<2Ɗ? 8EQ ^`(XHԅ*(:`C1&&' +PȆJwlͥ%+U~gV*obYWNc=ٜXیw[:!Wzvb龣;6mzb5$)?ڟu9d۞[Wt|{w_8Iׯ~kW*wkgN.+jif}kVZ$y:b=۪ۭbujjf͋ﺵk&u//Nr+gcW*faiosg_?NҶiJzyjeof"e)zȫJ׼zk}f3i$.]uu|Xmw-'NkjKډSyU?.&va|~h枼(٩kg76zvvK9I릏Vmɚk~Rtm숗m&b*{[]ng3dڌ۟gkݨ"yڗf*ԗŏ٠%s3yV.ns>f^>;b2~.ǝڻV{lj].%ڽ'k6-^m:qbwֲuc}Y*YmqNgj9N熷.[c#ۦc$=c[J돘ٺ~&Nk̭٠2?omv~ٻ]);bgs$gfg{㪶Y$3r_w%O֯m+$n֛ﶙVV?/ڶe\jZ=i[[UgOR{vv{Vk6(c lRTN`RAFJyIQRTN`RfNȨh61)VNbLȾZ=k6-_׎Yj^}eklgls+wѶ^^ͷ_ORmnn/Tܐ=׼~xr>YJ7=we~TEcdGfCԷ]LU-̬lZp[WQ=سqu  ;ͷy1ۼ|Ԓ_+Olm?M2]ee2Z,k13z[gW5gtٌm[Fg||[?@rZdm;=bO{WRd=M-w[_q}V4GmKfz43UM7]i˝'Iz }GRf7mfMIk2wN-om'sYpw?7[_Ĕ=<*Y/9S SP7{kyw_TRw>Uko\SG}l3DD|OY?[nBMv[+Ϭ4qwۯUOM.7cK+w\ +qU<34|U=R)"6U &!Shff$ 0 +DBL}=s@>48"$Hb8( aaq(QIQʿzvX:9 zɟ N$"P!#)b!C{y/6Ȩ1u~i-yZй}!*8tW*XʄMj"h* Sr`a_^lJs*=i'J+OkD1ģޡLhd-ev *( CE h2,$F ")SeN|][ps; :fAk2:h`37Q̣!`1W{^DU%Q9\BݗcÅ%(U (@"Sp);+~:YͱU}FI-CB!DK%yV;:T +ѿ&7hzCٰEޓ,HB$$b (;Jvɉ/=i5x3SnSEPL=_<v==1Sa!C +@KǔH|wd@|X6[+yjC9?^X~Lq УQ{'A[[ no@$U BK4 $"/`?vAr43#% N!dbO5 YyHlLb"ンL.g)z!";`?QNxa`amJ`$5"AEdӁ+u QYܷX|3}'i"qP@Mc +G~v(:P} $Krwc}(LB6,CaZ +g>J : nfͣxMme+ύ qZ;[]#X)\c K,_:72E-g(g|tu+!Jd?{sg@w څzulB8> [? +gJjr[y;R 7efl);\wK&z8aIq.{ IF(oT2P`_;kHPNqx#3Id*<*olC ٙZh27aS-y*-hh]\/1@4rb.b(ov WM?nY&gâ?n또0孖A9TIJGgX 5å{R/lN0Ditnӧ+c$(S?$#^v}lPWۃbKU\j'gV|3f 8*keR6ұpWKQmbqJKĔӣ4у ^1yVs'قBW1`d~eYg.6)H>TC7R4S +,D&\_mEم:Q`&ev +[E +6)e1IdYwCwuS-·6y8dGeBZ<Œdt=Tګy;K{XNwƽN5!< }żh3 a{GjPj x*uGb3c-ƙV$JР_hERgbCuAZU Zv:$KZ9_̒Ⱥ@u&`Po *]s̨1 gg4FQ`_ي"k\ۤȜ{7W,BLύ-8@MLX _0Wm@JFZu8;{B?Z,YI4^vV]>@@'KVwJ0eRI*0fnj_P] +d ۊtY.cGAk蛍:Qt+N^X!yPUFXSmq R-?ϩ*R؄Xxu75ើ@RǗ1.$ ܌sidfJ1 Wg5hwkq#qm[D`5#c`YTtVGz;ucD4yz|13HY\ef]Nym>/`$O: W%s Dxq# @TFf|B Q\m[z>-{+e5ڵ)Ք9?sK.*1qh n.#tpbBLS +)nX XV(L/cYQ4rw Lw5n^[/Vf*V)bBϐ[1$`#UVØ"J3lUCCYcxYE*"DdLB+)LWznNV!R(+LCbK7Xn =7&wkq&d TYVnSpނ>ш!~¢PNc_gt8M4#v"Mʆ溺*0Gcs tVHr@O+1ޭw&l8([ԃљb%pf-kf&:)Êhd>Vxi}8q=I#h;}Wz>>6a}Ffu :*esRT4sس*!C "^[f'*PUX[}ov UFX+.ZXTD bc-Mh +olȟqL?K7 2k1FPF&r[}8pۜQKjۃ/șf )"21F"GCr-`f+<:y/980}|,O'u.4F-/q#†TQWKE3e[>g ~]9E/`?Z8/gU*fQ|ٓd`"XRŻak"2dI4QvLeg'&o٤uG_J=% 6JSMdP'Q* +i^T󇆩=2*$3]Iy4*hX(ɴفa,>:'TgBTlj`t;T:Ws!NGM,r K]Q`(q}X= Pi*3>"ԕ6ɹf#/8ЃYNkb\/rgfhz9*-R6 _% рy@aE jNcZGLE__NHj~E#U=) i/v[o]'QaI@c#Tb{W!~<@ 81l籇ahڍ g) jpD1z}Btf/)TCG@_.ot4̷‹/qk=཭ ,tK rpʁJ/`p4aJGBR3gAp N%' U* bh$ "j Ƹm[).A7s 蔋Q6i'!w&Spb[BÀY*a*3=L~K3q2ouj.q3l+nʎcT$* vt^  %\0@`vLHgEG L.jqU96?0͚tH(4šaG,'Q }n჋`+ +AJ[OU{ں|r{\7&DZUSBNsZ<Ɉ$rB߿V(DVf9S tJ+Ng>,>":qpG9D93АH|p]Z/+ nGI*'ىg%>W "4 KuFR[Qja[ܣ'K9=!mɕb0&"pΊyʡO"HE'"3Pƫho ~nW$Et؂UzN8M&$4;GIRIc\IwFL_dF=*7_jDGdqڒF. )QOv +*֫D Ug+.;o.soC+wmФi.r`MWΜQȲwì؍L0nHlE JD i.8 <'!;9rauDgE/CgԖI $JeG3Ӳ_RT"ǦP-o#q) ";H\ a7?}9ʔD$;OP/X!zKWo$Cf ZK<9@S/-HA?LX0˂?C^DŽhI8Vt{@7dBu18XZ +/JР1neECb^L`DX9D#l  +PӠ)uX-o͐M7Ե0WFBՊd~`|B H`,BCMH/y5{u9_>Z`k$@Zq C-i-BĻ,NU%prQTfl 4 !(@qMX&$& ` sqT1в9@Te͇ +4(.goU;:BBW"Gx*r̕=D0pe0r]s$r D#lA{Dk;+9S"G̿ +aL3+_0UfI",Qh̰?16K&hh:dѠx1=gq_Oׇ!Q3}}Fi ׵(q1Cipg)ui"ۓb4Jh;VK%m=ģA[}3lH3T\KZq y$Ġ OȟB9 ó1Ҍ@]\12,Z{$ȻaJPP+U^gULɃ0nQ|m;_x\Ѣկk蟽aD(ީY}[T5Vp/GpSEEG#38n)hb 2N 2d<=Q׭%4}o{O=$߃d!;%xYXm;ot7`Hzy@ >Ot|j}lt/R85KŔ ޼ 0J߷a918NHx6iL!LB_>| +f~K4nx _]۾+R>w 01q+\Kxv`b@,7T|gS ++$oɪ|Vc6 )5v~m$C%ԒD2("Zk._^}@ <298*|M ErvX1z,! d6opmk_$>ǎ fRs$Ń}Ps‡1J{RN(-x,v{4YVa*]L&yB=U.3#GZ73;ٰ1PS>~Xn݈ wB7,SUE!I*@}a* h0-ųĆ@d7t>Op ǜd`+(kV|Ei8D.Q=4w*]:نMCLt#mgXZ"!妐q==0cX +3Y\^a+ڤ2lS°]"cD`1O ߪƟ vV 6Un}miq^v!mXG9hJMq~jqGӒ#+jLa[o_W 6 e=yϼ' +Ye!q;)]<,!] [e`hW2M&g*fh#!"Ko&y4j_ &QB xO<]Ų+K۞Px-*X&M[浜*P)5cVMs4ô6 Z3C)]r˙I|Vm//@.Nҥ +޶MCHzaH7VĻ4<ntĒc6H-ʋZCJk^>#zw65A@ήu\h+WLR (= L):L H(].Aofcwd_nAart#]yju-HlfMdA]IK˃ⷙ %$TWoyq|{g2xJ}[eY%AfǹE_vD2OD3)>ݐFYZ3Ov4z\<&u/3J!yH +~ 2C/y'4KB_ :H/|9[mK/+p_,B(Xo*bQ*hP̬iQ̙:ݱd86;`6%vnBQgô}:Ue.iTۦ| lrL$ZAET;3ڂwL[)s̝6Y.gގ %X[&j;3R36;6cz^>&x.qXũA_J-`Xa\HY?y݋D^eF[R|K̵RnBi{"3i`,bbmm6%&ZN2plA(6ɋ{uPkqO-s_ TU Pk}^{"BL)xe#HZ5U A` bB9xBk w=8,AC ;pt/ + UPwFC6>538b _M'_'Ѓz 3!\.pb,Sozmq 0؛9H|#fWI$R/=}gզmp[{vojfG|ͨ]nbz_pFfG3bzSe2*_)4٤$KY\fiK9rIXi:I0bTmphvо#~9'}k&=uwt7g1Ѹ_hvQjb/.4r7BdA + ʏ]Զ+b^R뎅^Rs)=05 `ЦGܻ{OceG|qOz#xrkR[52j'ne:RKm9Z43Nee{cćy`Z"U}yc,8 gN}HrJk?l]ި+n6hm]R<@p&.͊^J439 bG@J4v\j+N &,aP6WAQD4¹|3 [ѵ~ry\c[άͥJ. ZnQIkŕ[ {%J|aT{]rTq`{\ DXOΕt_r +*mkl6h"B*vLj,so唦v +"#3ݍ~#!߁X3Xq:̕a^wRx0f|Ikldߞf7?"@$]-N)_'Sw>B 8Y2Xq|gֹP{XRZk/&^(OP:S6823hا'YL>+P1}$7pwCu W}Z~'$ަB0'<v9pۙwY\M 4Q7ua3 Gn1xJ_ 1xpk5-N[#vxd zdO+vۖ;Q7"g@jf77s;oůQpY0$_kJPP^m1;-)8Ry]R3!`c2N i:<Łw1Hq̓ oZ4% הXx[B *eB ?2hTSi^C0Y5;IUܙqAPn.KiS9݇hq\xQJK _3cBo2PAF-#7/M &$m'j@K> G)y->KֳʿZRMu3@xX)BvOi +00Q P&^b;0Eځi}l `FSt9ҴZd:6Ky7+%l&a53 ,0|?{䩎)3& iוڷ#ZV .t]Yf>'V?䱑mue `xg>&VCC{]A9{dR6y,JJ0<>p躲 _cEM&A<ÛbMI ω4|ߒ ::GoWp{|6?n>mAqL81k +R&;'> &z2 +Mjpm +x+xvB$ڐ~C^cʙΠy=Ɉ0Q@^EB'/t`U_L…m=c`IBʨ2(4ſ]-3"̵In&MN]UYfdc)G~ !oŰ8<ɶ{'$a z ˓W"~X>0Bk|J$k%zFqH*kÀa ++F& P]Asn +=rCv @bnS[pv[CZ7Q-l=7)<\OhU2vŞ?Zl7AvXˠzz+m?u8z8 =cu hȖ@ ǿ)O Opr8 ukn᧳kf[il +=>9㷨W m_*M­wƇV[4_HRKS>8)869tw * 3w,\bQ*Rg[VKd3 d?%c6p7 H3PtQ%ΌIġzl"&iƴȈ]ј9<Ѩz `gR)NW18;ӎ> Wק DiLפݫ$XtjPnucL$)DX.l׈µ1"odJ6vE~t[GrII!Ww䍯3_;sbWNG2/⛄~2})(R>:k|vkQ+FC$ׯ?H8IH/Zt?'Q:7 +F;mXwx+ԇ,I A05Uk\\#B#/Yz0:T>rޙАx]e~0[>F9xHnkT xȱ ^>&s9W> +36& $77ÕՠR֖j|y{%pJN @C\3e4OD^IgagmgtBi +`V0 6Q;w?hR¨"io孉O|ռ`Œ[pe)h'N?ב%gu-;~&s5Gl#_ Ek.,meǷzNu`Z.*ҕwIG57(:*PJ}1SN@xg6C;Ff!N"@h (!I Rxߢn WWP4JC +gDgQ@*n(3f>+YBѬYa{DC:q#͒.,wxt4|JFB7#K!ZcIGH1)\pmNELRٶB' 䆌Q` 55sm&K*~/g&6}$ jKqz s ܶ`]DLf[UQbۃ({Bs`ZKұa-zau2!S[:)/]ALk $,.MmbH (Z{yS`Ϫw `|qs5>+$2'V ^Zt`/H0n1=p +VCF3SO)mη6HخMiߔ8j+ CXS,xѯʣ̤+NLJJ =y yOg=r|MbY +zO!T54ޫfTA֟6> +endstream endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000406529 00000 n +0000000000 00000 f +0000406580 00000 n +0000633422 00000 n +0000636413 00000 n +0000406991 00000 n +0000633721 00000 n +0000633608 00000 n +0000410267 00000 n +0000410341 00000 n +0000410559 00000 n +0000412181 00000 n +0000477770 00000 n +0000543359 00000 n +0000608948 00000 n +0000633492 00000 n +0000633523 00000 n +0000633755 00000 n +0000636436 00000 n +trailer +<<5E312DE224315943B8B63DE254327241>]>> +startxref +636648 +%%EOF diff --git a/01_3D-Druck/Puck_Design.svg b/01_3D-Druck/Puck_Design.svg new file mode 100644 index 0000000..5eab190 --- /dev/null +++ b/01_3D-Druck/Puck_Design.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Entscheidung_mit_Text.svg b/01_3D-Druck/Puck_Entscheidung_mit_Text.svg new file mode 100644 index 0000000..c41d294 --- /dev/null +++ b/01_3D-Druck/Puck_Entscheidung_mit_Text.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Entscheidung_ohne_Text.ai b/01_3D-Druck/Puck_Entscheidung_ohne_Text.ai new file mode 100644 index 0000000..70aef24 --- /dev/null +++ b/01_3D-Druck/Puck_Entscheidung_ohne_Text.ai @@ -0,0 +1,5274 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Entscheidung_ohne_Text + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUDq2vaNpEPranew2iH7PquFLU/lX7TfQMvwaXJlNQiZe5ydNo82c1jiZHyDAtZ/PjyvaFk 023n1KQdHp6ER/2Tgv8A8Jm90/sxnnvMiH2n9X2vS6X2O1M98hjjH+mP2bfawzU/z4823JK2UFtY x/skKZZB/snPH/hM3OH2Y08fqMpfYPs/W7/T+x2lh9ZlM/IfZv8Aaxq9/Mfz1e19bWrla9fRYQf8 mQmbLH2RpYcscfjv99u3xdhaLHyxR+Pq/wB1aTXGr6tcGtxezzHxkldvbuTmZHBjjyiB8HPhpsUf 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 + + 0 + + + + + + + + + + + + + + Cyan + Magenta + Yellow + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 7 0 obj <>/ExtGState<>/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +Hܗͮ$9v- biw®[C E߮t:9Dė?~\_~rK*=.W.Vcv?rۗw};/j9Yy\hoR,W+׻[=d/gU=?//w<,y,OGḘӽ[kjsȜ}b +X6̭LپdHA.)bZ􃤌l/kpn-&>o=EZ?Syr.z|vM#_*15/Uxl)VdPC/OL[Ĩ4vυv`eqL^A̺ #AE'Ap?xq1+ (2j;V7rlb1r5F BhY#Kx(>*]`}&){My]ظOe27o[fpgQ\S8;[Z:AQj6blTV ˊ1 ;7q)""`A +[8AƟ[Hd{,.A\Ȭū'rEL RF,$NS6 $t$0%%Hm;MLc -9 U2!d`A '$ |A eNū88u[f//.bPsYb| ]9+R.hcs0>K;,ȎDN@e:ux9{*<=a{:l@6`^ږ^=fEYُ"G>PBa?Gཤ㐵K0献lER! sSpv%CGzI{ΧK0iCm@+T¨r$F.APSw!2*G"Wkhwbâ;yh8l]@UN¶WP:^ԩ\:y_lj~ +8'VqFLHzCC$ gy>3^J-i6+ޢZNMYL:`nZ8A4[ɧ TҰ {^,{= hc:rVc;\+}I$Q] q;HNc@]p^"QFץt"F3BX`f(Ş44s(IO@0v±Gk+ڦt6f% jafDi*EaX)!"lÿ?҇yE2 J"ݣcR86P¯ZЌ=z~M*kI]z"?V["U`U$`)֕Ӽ^H%XUx#EnЬ6mSQ%A/_F!= E-ʭȫBRIDO0DN3VC%ZNX,ZTaʛW LK /P8cرm_j"׋[|>D`Wk52T#)RFӝj`?]:TMػ5.I|&7},]GiDz~."m&R O:zp;.J3zQ6TmQ S"婫^ɀ!VΙ +;ekבnڱq-cfխ׾IX5.eTL_m1J'Fx)SR!gޓfeq㦦KͫMs%~O ?bp Ǽ_>eaꐑ:^ V^$U75$usia5t G$ڈGNrA f]-G%$ +۴pl{۱k*#Au?Yމ\b +iЅ^d>S;BM$7Ѵj^6t:#jE9wqQ3nԼps ƃ27o孺9Nj^(H[!ܝww˓ԍ\IBD7|>bhslyY҃{dԯݮ6]o,ISxB'vG +ddb%M-OBƼssl > {+ԧJ- +[mB&{G薨%y:dNuE{B`vq#)2J][C\Eb77Y;n% d -Ne= q5Ak{.)-$7!ʢAk㫪e>`(^ڲG[IDQ_dLV1ưw_Dk(ZUu 0bL/‹m$%c:3 sDmo!0hRMk*5Wa&Fd BI.TZ ɗdb/ T3ڻbH8_]׾P{ xQh$<5W 0EnN H@iI4d.Ֆ JY񵓺N$:4T +9ܸvd\8BOdEU5ʊVkQtN4Ǫ)"~ٗhEy} vS$3,Nu h!g[Lo@Q%B<U/xYg] F |h`낅|Rfxb4yrh+"Gzu鑭Owc8dCω%w!{GfΜ#+0Ðu&}t _xc},Eom2^V`ˆ"#IA&kި77Y3j^tUKn2E}hL*.Lc8"F,!ekݐ;zfOӦm"#XÈeN'g}4ͅyef1rGw~ u%4XwÙb۸l#[`.[a/!yZbciBpȫa[BkEwe1Bj4~%2M7\ތݐxܤ(Phkϰ䓉F2Y=X豇."}S%eNzlb 'a4viiBEt ,w 09ʙa}oLkT6=aI`fAdNyi89܊A!擉#SjO4ƒ~l<4\sd=ysR8R+:nsTاGR3T,PR3]לcS2B,*IF'twi~#u֖P(L{rLvmQ6ҭ-,XۮjЄ B[Aɖ-xԠan\bQa:w߽gL}2#>d<-$RX[S!#hx'9t±`<1KPn8Zϔ̭a<;+L(CQ7Ad^O2֢hɍ?/. "f) b2BvgVFwoB +z a:"oeU㾄RXCIL#N5ͦgVM$AqkFvzfe-:J*RI-ksĹ7yJyk 4$CՕ^Y.\G#bUHEhНFp 4^]??ԡx +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-a9db0473-e7e6-49d1-aff8-5bd4a4f9d8af_.tmp) +%%CreationDate: 6/9/2026 4:56 PM +%%Canvassize: 16383 +%%BoundingBox: 233 -893 1084 -42 +%%HiResBoundingBox: 233.477954293799 -892.48070177983 1083.8716550812 -42.0870009924292 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -2363.22222222222 707.222222222219 0.375 0 8170.44444444445 8462.44444444445 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -2363.22222222222 707.222222222219 0.375 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3xGͿmuF]6PRJ)S2Je qUp0< +.PSaӝI#ʬkǮ5v7X`h4sј1֝jH3 \6f(` +]_o45dcfCFNIĒU _2Qa`xYQe,fP"` gH"qUEABai, Ʊȭdƥ&JRX(|3Ç@$ nE1HLMeW, H00h ! ƔHЯQ |5H"h(f5h4 +FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?ckLPTѠi"kh P܌4"fYyD$ȆTA +SC[4 E$ F pjL:Ӭd l0ƍ#OF ۑir0svd۳ b{2g;ctds5h85+3kff6`C` -0 F#F 86Ĩ3h(CcPd#M2>6R,:VzvHwUa+sXMTFlNάdtwh74,!"7\TTC$3o(YX,1F(12a`h`h5X6ahhh@$ 8H"F +Rd//+ D$|-nqC$@+rbh@bHDH "aUDb DF.~ŹeF +DAbtc`h0'1@$<+D$W)1JԎ9.A$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &TnqrҊI63fN-0E$j2"qHԅ!Et@$H4"HP!vHdDajD0 PB$lqCł3BDC$P醅HxH4d#P"E +zE$ZDE$ DxH,3h`4U`žXVC14YF$ +RPMf 500(fH\P(L긣c8~U2D~ITfs"Ļ "1>@$.xx *@`3̑ձ?Mލ́TF&|-;2t.pԳ1\y5+c^tDdsEԳ,KqRoCbwvG:_kSu0WYOH 3Oc P0)"AeW,1)+ +CiqF$QHL)CA$ C$HX4J@$Ƣ0^t:4-#"A$D<1( 7Lnhh(~`q"- OxxE"ѨE-WfT)nPނ1 Hb-Q +baȵV0xۭ X"cD p!L`h, _~D)Ϙ-sHJ1U+ΚquM?q;GJ!4's2fF69Hw7,z%٧lHG~Зgu`amF4jjn9̈n5D5M%eeDq*Wv<Ǝ;L,,XHL`K&;A$6@$ЈAQ Da``,B"\⨋ih,RV"QsDb 2!XQ`]Y! G$hC E"j,  DH0HDCcx"XE$ڰG$amH,@D &&N Z*"AEE- 2;K-Ѱ^uwCD-D Ղ@$@@b@$h0i)CD@H( D:;D"b`0 m F$JumE F* 0h jЂP 64pu +2E`FcѰeCa뽊1Fu\N +/p nPDTdtH$ 5h墪z)jQjC5XFVfvvS0k0Db磫)nqk5`HXhxxT@lɦ|*rl$C6u_QTa)JaS"W( CP0(,-p/łh, aa1a8`00CjX@$񆢱h0C1 e0112$ihPѰh`441520X0 Sa^@$ƇH ;+aD lx"qł`h8C$ 3 +Ó eCh0"h(5Q jx F`(g$81Q bÌ2Ѱ`X4bE. \E-h, CP(W0E)HAU ow{ļ!\"d2`c"a!aq8).a [nigfedZC1T ˪՚j1hA$#D4`E֔a6cN;rhTQEf3HX׫m@$a4`bdN "86fC5&X(PXH(issEDD @$4Xx@$.`B +H\A0aq\1.X8$8DPB8App L฀ + (`a pBx 4 !0`ƒ$pA*<\ $D  Hhq @p\p! +"Tp$Ѐ &t6  "\px +! +F0 `B "T +tpaP@B&D… p@ ,@$&q'<\ABi=IèA +xiLA +xB,.@*P HȠ *0,8FP@" t+;Qz e!X1ʒtNUsO}Yij]kͩ#KTmFxg}lj4M迡:Ҵ# +i*[o2Ç4e7x1YUn]0UwOjfʫKWkȭ&NxwWf.ef%{u)u*M/Nʟ}(8,'=w^wY>!ueUTNN"Q[9[j;OTwm\əBF'vVfOn5ET7O_{xFvˆ|9,Ng{ aǰjvqF9V^=Wr=sNʙsvRHsec31M\*K-٧sbYJE\vHh~ؤ[SڋxRAjکbOُ-{O9Vl +k/uѴ{#kK6o4vϜ#pt7mNuKXU֕y%3dey9ϣ6w#Sß^RBEyGG>JU#~I($R3ZD3eƕ:VOU#[)5=j*-s^a ǻ$Tb3sv}MKY^-.f{ZoٝcB:d.;]4{,1+ X1Yӟo9G^Yo1Kޓ'=vP0:"R"_ʽjL|Н gjKJ|صiZ6MC4x*ґG3 Xs]ʽ-^ +M̵PlvktB[ItGKUΝWmS£T4YZ5Rռ!`bVQn.w}ķ3!33+MexvwH= $8{5IbuiU,~k7K JOSdi$| _M4f.m;حWm~cœ눯NO9!AovW46'ɑ B;ea~ԞX&7j;)a`{ ~+8iL-:IWDD‘ġ#o?3}ba:W=Ea2{fnEfۘ{Sk&wӓy?Wo!;&,Ne(M//hӅG9zX6wv#$PnN΄㹴a +]R?Xv:uDqSkz2[:>l{_\h2vXQ +a/vSȇCo$Ѥzq| +:tśR&3lf%M#fGgU/ݰ&eYpjuu14'>6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$W]8 +N0x`A4xax`Ax`"QJzlUr+ag|Lt`Υ]{*`|Źߒ%'9ɜ.$>4ef:5#shG-tJsFЎf_'5=<,C:AC2왎43/lRǭHZTu\itĻ4u*ױ}GzXLlɝQ3>Ѥ%FG%ZmErQX&WE'2d:6"z)t>\`}Q烚Ruxcz_ Ni$?^>5(?BHe-mFxŸ_‘g:lWD*>.u Tx.G>K#.c$G.hISthCvFZTdF< +);Dw i +DXH @$D &DŃ +.DЀ8$P  'a"4.TPĄ4x`"!t`QG9p cAq %U-r??RJ Xp L@b0Cذ5$Ha@$j D$ـH44 PPB @0c*XASZG}1ljϏݛVI9Ǒ"c4&;;ᜌudr;7lξ[O;YceC,1/˝92MayfZă@{_]^D;H7v"_u ȫ]):3ވ ;ʕsɄ-fě1f~\+zH>#9X)Uj?X9I<3vtfmFrH^^0n/'enQeW;CczNPhoe2Si?פL#_hO1Ŗo Oă+ڤV)<]T'fZ$LR;܇r/v^[ʃ"X'R"YxEA;2PlZOfFAˤR}Eɥў6[,ڭWgf%8洫qgv\6bT7f,wb&iSDb)2kv?CF#AÅ<44p`$CP`< BÁB$x…0 +L`( B (H + a'x` *ɒn|BX#~ρCI5(%-<(ZBgXU䑪:GP\DbtJZ1^*<fҖ,u'Q$\#º3n,9%<~}H'S[I\Q ;r Ze(is9Pfq22v }"HGbu] %'\g41Z>WãS{53*a3%ڱN=N-o~bzB[Meﵴ_tgXd7bԖFGe'z?9 aídt:39% ȕuVl|g5U(Ц?|렌IPKY$94A,;Bydz),36$Dx:ܬ*v*}zn2;Y(nP %^SZyeob}|[մj>s`R?CKtwrQ S?R_9O›qЁ8slZSV#r%B:ڈC#{dUNrҭZBeS^:f6_6GOiΓ4t[ǶB%sIHe̜Ef3^$e!aTszt#lr Єnq)4=o*y8_bw4^=XQ걒vubP2T5B1eg,눥ђy5W:? [8VXYD׿nk<`TvzkH9b/$=HHW2#9nd{J3?Ed(6Fhwvf&-fh'S'Xu9Z'gIrGv<ء +o{%k*sZ{sUZ/).=ݧ:R:$.Ph7ž k{$&SzUߋXPW4K5͡;摚^2 +lK*ê+ڎ{ rukՏ\e7j$e]m)5]uV+=?d,7oSWMjgdEwHt}v٬k&_b 5ewZooN)KUM~,-Li.ɼV/oi+2ŽMeNwe",~/ %'/^sӣt#gU`KɖG,,6?#qۓZ!C#N虮jiCKlFwSC͹n?),)s}IRSbne>]VګDRW;:-=2峏e횓X3h5p#+'J^:B'JZԜL-^CtMܯ;U +~٦]+I&U&$ķlT!+ћxv񹞔s=kCԩc4)zSzDdytuTHН$ȤhBPoyd7CorqUllH.OT$葢~sܑ}6>t0oY^4+A44Ah9eS,Z*u)gy9"J<~:B"s 31&X%JʳWBdu1՗szZx4ܮZ(اՔrU{')lzVZ1[XT㴰[c "\p8AX`B +&@" C:8qZArs.͘ט^ehT'-dOyQTKo$I|Zcs,WN RݬWY6̲!JCRb9x :ϰvWI3I+D̼Iux_DQjvҤl*Wh54iVLfAc3c3jlJ{eTV9#Y';,;;99s6GrՔ1KhrtsTI#ΌgƲCfgxUtܵvvʛkd7e١ܜ"2ى.奌*/e"{\JU/{Ί,kOLߍ-m6v+~4JxetL>rnr֔v̡ C}.k\562[56^+,Ðrlu_E*< +qS#23I5$"n0za֪USrcD6gqjf.sug"| Sկ>243dSX~MFnkp~Vݲ#ŌVt TJeڛPZ+JggcƣT&U>j\dt ՊH5zeZ=$_("nBvqٹ'#3V';~T&3sTL:mY݈.?A/582;.u/LG̎9&u)պɑ󹭹z$U2ksQb:|foNaeIqWIqFle-bًcme7ڎ+{!ԮJu}2%ũ,˻yuVETNN2O^!UdC'N='-2X٣J(J;5KߘxbXΌcGΌ[[[c~U$A;H;EgY m;RX/:\̯\X9&7js;-3W9یdT۬u˖6DtYE1 IT"MȊ-kݭԹ]Rlfq5pWFxTFS9QZx4$%±OGmx^wLg]4* /͜0ovW=*ɨf\| JG[Ezˈ&V\8V<3Zfeh&" %-iZ=5ۻIڤЏEiG#;r=O7ѕdMRwwBx7z5_=)9߂&SlW12_V7(=1uTf*k؏ +ϪDoZ%<<"6ej)I WxgRfNl MkQKʛ+B<^U>jjNhGM YZ9Dssp>x9v%i]SWC*}4uV\%%C)VT|-XGC.328X38xr._,В,ƃ*i:< ۹ݙCx;l޽2OJ4ûRJ摔[?P^-ra4j)962$#Wn:*h9QIY6.f,Z_i] 5 K3c'i/ݩe“ԓ\() {e$3>x'zS{7yW7{IGE3YbE(I21z OHډU$ꡓ>s6*&+UJE"`й)h1'xHn;_Mzq3g4HJUM']I {2-V U;>LAeˈP鬄lu;OԇK)Cw/;/!`eK2g7Wna>n4h9 +B+1tԧ(N2з)ܟ4=?FF,"+푡# ǔaIb{U?$C,);U먚9W_gҽ[xX`ˤudy"Q]}GC2wd./jU-OEiK*I:i-Ǭ$-I'^nxY߉%lEsrI݁]2v-(UbaGu䩎`͝Q%:f(V_GQ|:2qh)icv9)MR~b;NUSWtDLNc )P#088 AN~B^@02)Wta\^nRm=l{6("PL–vp`8y"-vX;(+0*Q?"]Kt?:>\“o#@h8.Ȩ$# ЮyQUok%M Dŀ+퇳,rnT\T&TV.zQ-_-GԪ;d1 7BLkP"*kbpgbxnډ_h#W-Kɬ665Q,8[΂;a؞zqU%;MЇ@P:<'m8MI]ȯ N3ٰ9$!Йփo gD߈s)_9V7c!`L%ybdI}'#U/m~$ش*Z{OBnuљύܺVYB`ɭyV{?9 4R3]6-S`icY=8EOjs_3 yvWWza@hhReGbQB0>Pढ ᠧ/oIAdk436T?^C%շ3zϢAtSv z x ^NVTd42UIGѴRQ!D8 Y";/~0#EA 0ɤLW7Ӹ[0&r+&GE)Z,:ftVc遖G~æg{/%b◣d@Ϋ 4&Nw,B,Jn^ZinfN(57AE/5a_Kj] 9(ŵ2Y1Xּ!9nS<߹/sG%TwJ;uV|Q($OR5)M@c@8TT7{wau3'/-KRi~BPj*Q僤y;ZF!SJCVt8T +fISFf`A #\gG_bKzwg]vk5OEB 3έ6.||WvFeܛ|/~} .NZ!,LܢIX0h/08'}|ӅG% H5dGw +ӾǥtvxATC;!CՓ+J`JkBzUA\kC|xO[+ wm A_dq9ah˵Tw2W/RAkbAj^*G넡A@U; D񣐴Á{;=fU~'DY?Xp˾A +l޹5/|ۂL9# +Vρ8T (ղ(@u2A8nl[)I-ׂ ?TN OFSOx麣+>›QkՐ8~I3eDy{W'J0q/hiW1 H@Z. `tlb# ^n}ea**M0AG'hĝ&ʉbDrw4[ 5)/0eV@p>VH+i EHNy+㜜T2#FmStxAQ[2E #Ehx]%_&V2I2zDo8ڙk2:=fUaU lа-|Ut8\)ORTKʓlz_QEZ1ܚ~kKnj0SXw{:7ʙ&D+ 7&P1-9~ 3\YN +7}SIvud? zߧ[Wh4NT61^f\k?d":3l?$dK,Y=ajꁵ@XuSԄ|lXUU+ +BnlL¡  = {[Z :L?rAx(MlHɓ遝 +΂֮%-upY+0CV @ǁ^oQjqo\r@0ZQŜEW Bm${pD5.ynKa嬪 RCCWԐ1MLa?eMDi`&bWU^NXոq؟yF7F jAa+2]2y,$fg+G,T?0g2JWk졝%H*+Њ2bOӭ'3< 4*PSai ?pf8Jc͵P"UR#Xks}0q5EEtG13ZτU\[47HQĐNg|Zʺ+ 3P lR}DyUrGu"OEw/ l'~j"\u^_m*RP6ۣԸ֚CIua7>Ą O_␊F<TRu5ٺEk 5sh2yVs*Vj5?[)_>=c"0+,*n4k_=PGCg0.ze]"n͖2K ~ky&if&Fke];qw QVnY0K $]Kr}#:dZ5)CJn=]`o~Xȅ :>3<Fbʖ23eQu=1 +U#=wkw{7{x8?9+j<}B4ƣvrHC^0|jT a4䬺tpTo+xӖyh1+|BRrSiћ+q Y; +ʨHs y;o;HòLؙ$foǓVGy%v231Ff̬>W9f%^6ZF9YmLK4G*rZ׭ty{]ʮ7w.EvI;r1t)dd#){_4)֕B2m$Be73!0ȒOdA ^ p!qZ}묩b)Gl2O:]Q\x5Ѧ}k<@!ԏ_q[ Xgۤf @$_"1^yr Q~=|% @HBs ^ԅ p6P?917` +r0 CJAS +tBoBx/%Z[qU`oWhH, kg3F0V%LTS!16L * +OH4Leˠ - ou1V1چ!5γ3dAka] ΧPKNwȝ[`*̺T C<|q1yE. ^!; u;hV!a\Lyid!C\}zSW!KP`{ɒeU0%:SVq5UGcv +7\YpeE]{Bf07,Rd/fYA ;SDf~4ڝXrbZcBن#"M9x[e٫fIn&QVfJg_æκ2/}WmNOs)]=U` 85eC֏D^IJMq +>V4/ޮ4@0<m@ih>6 u-}WsP "^mW{/#͆1^y A"?Û&Y)4ǜ_êuK#u#F.M=xuJyC7a_ +" 9qvH;̒B>Q^ԕ#bCj &J }Ji6ҊEiWeOqthį*ZwǍK/sE/=vP cj";OI@HݘLDb}' 픆ܒ>9p " [phpC8$턝z4&z6"ǀx+[Q)rqʙz Ԋm}TX~op% [5ϲm1Y YEp[Pjyr7Qls)nz/ČdzDm߫@_%]ɬndR ^&$E"2X̨NH:꜂9.z zr2b,dS3=yT`$ͨ"Hc{u)z'+1:wɍ$V0͂`-/2|p@It-Hkԉ(f 6Zg~X80 +s85"lk1 T\M2 +γV/Op} _QqTiO"~Y2sp:BhIa/"ɮJZ]g%؇@Hӷv?niN/6(2^vrh<: [_b|9.{m;f=xV>{I_jgt䐂)w:uZ0 564FpN֏&X8iz>H^L,hbImgI]o@HPqP|iT,rC+$wRr: w\#U\xh`]\;78E+ +5\.X{_fhf*ʵ'C +W+`7 YJ#G_; y>Џ4vܨܸrX>"0">zL*.%6U&4oMu[mM(N] t &}װ[f=&f/}d D" Z2Ֆ#綊GZ"irGpe;lTYZL"KU.TUy'{S.C0R :!] sd&#w!ۃYJ p'OpaGW`0ЩsL#M(j,v6K6΍,㶉Z6y[n"|=ɶTq&4|{vDTh8Ƴ91-1bDqAnkz: ["ȟDCD=&6( ߓjR5we:{y+83&x]]+cЮGQª.<>)QP e$]Ѫu dI@NS6uB@I-*myfvB(HgDk{T]( I!ڨ#^*L86/ůT'=Q+OuIiyyt1+)aLUMK>.=Ahkzo-$T+-OZ")DX.%$:"΄h͢Y3 +tc9kG+k>*W^H)eWo]d4|O LLw ݝG,=d鏺OOOcIoԵ#Ǎk%C5+6g.L\v&*B*iy|Jk]^u"pKcM^}ѽIdNaYb 6{ΈCz0tw1hszS7)jM;ՋT3Wv) Kks *RӈS/G!P˜+=$ 8-!9XJ> 0#_0*^ +\| <u(ű>Q5,״D"<]Y=K!QTO1{8+ +5>BqvRw/R/E3u[F-TCU&Tbp\G󁪲IPFi L&77hyT6*X$~G}U RJ:J!~I`d sG jVDB= +%U䉻׮Pb4t҄+7x + ? i4J^Al4ƈyVzśf 2٬H a Z?*i|dK}S[.%@YVE3Q\%%'eDʊm q['zA-e ]v2ɬQ,jOYY+Y=7 BZ Kϴ$eZކJelyT~mmL",緈(JnW\z+' %v`C]_u1UKrDpYV?IFe +S׈P hi84`RdOJz&pEEoᄜ0+bQtӣeHVZ}8o$m݃u?E&΂Cɚ%#7ԈFbҷTo)'ui-b>GVs`|VaAEB^ʈߏz^ᑱQdG3t7j XZw# ?EӜ!aNw`fdu2cN}BڼGOE/ׅo(l-r)AvjJ c_Q$G, t :!%+5}- +C 4j(NH|/*vt0#?tDha +U\I}\ o-4"—zILE} vaBeiC{6H0LbJ4s7J ,`7[gh׵ +FGEGJ*d ]1ڕ +ua {S'ARX ObHBo/8ݶ.RxG5`XIbɼxр)vL0G0n8 \V],QJuQxq,L [)v+`j?u;3WoY!FUK xExAHh{1aBhEpHIJy|mTXAem[Tz*TNA&ٌ7 x4wd}ZIƭ9gp?स ;nBHDv?^zjRts=@Q(8ӫmӔ#AzɰLWU,F=Bw 5)QJ|oh)띢CarT_8M^k_F&(uNPuҋD5 &3":F_44E6paLry=kW?8— "4ݳ>>U*ٖQagxP(`yi+MԖbfJu]S"V8ze CZ1w kgöņpX8H9ö  ,va6\+eC2bV},ĚD?WxA\>p0pRa<Z J0I!me6\6_Wg !C5 d!20 94~_q52rXg|_p%BF_| _)KѩDȈ^j*%'"y )yEć\Di]-:]6o]ͨRE!}.H0"dr$@r)qms!qC2#n-Wn" #-g-6Oۥf-|("o-b%aRGrz^]gB3V" +n|ٴϢ% YjU#=p4zPQDC{DndqSR1 .A#15idX}sXj9Z;ux7 mYm@.-_eI’)[^!{Hʨ]kv2ugRFF?u Į*H{)/nn mE`1ǂmg!YQ{HmǗaHZ)j'Y, T5|6b~V K%G g.A{_ Ը?a!a+0 aqYخaEec -4NI +F)q k\2DؓȎ+ܡ%-vf@O.+O,`ŪH~0a9Jf\ӨV:ftoIK+omWMuh*7 +'⽼:-G>I sWpjE4r:])$0wq M`p%Dl;snE+ kxM JZb̳#= SDI3reů22CGV2&Ls"{bp9lof9J1 +&[qįޅ8Vb7FtP .~iC9mXӓv!z1*Iu*٭C>WCɧDv&IPOwm輕*UAt ;8$ ++rˏBo.Fԉ4 p S9/Y'\T{ u풮 ^"4ß\"]&-Iժ"Y:yz+y>?JYO(m +]Kv:Fm(ѿq>BS?>ʒXG*+Jy6dGZ:R`tPq˦c={ AC3й =ɳ%ojI g7X> vi*3`,( ޝ5t}ʮp9XaD"i Rzۛ)؈>󩻉w[%jmfN* 'v +cahub&`tmK #{0clKU +$0gpK&Tyf A `G2WCe%ŬC -~>Ud<3$?=*KH%LFH'{ye6qs.Q--U4X1UK P u*JF f^Stb1cOy'6+LCt\3+toYD)3t*DAnoߕL +wOكs]O"̈́q 3EJlNcmᝧ`nigp5_ 8=zx5MZ!kbrHXQZ6\̬vJ_ +}Ml2s2F! ,ZF囷Tivl 6$;BAQYoNe&j+S,Jm~m!VgxO1 -ݰ'8-F`<\$mʊs&U7MiR὿}Zn3ehfPj/ƫMq ;yz뺏WxRߧo`)-soX$5v kW34Tǽt؋y,t'VCI$5e쭗j4v>׿ltH-5,!6p︮sP?Gz0ܑͧ=۸qSĭ\ d6ݬR 3/3@]' w;ɏRRсd!๞m.[B7G}z|EY}C"E)1uҾP!?r1zRmsEZ|ܲǰMO؆Rk-G~ծY>(GWe;ijEh wx@kU:c_cup13ݛrlٺkuTѦrϳyd\³UZ)"//ᒈ>Ĕ-1 ܚGK83HXm@OKoY`>dXm&>4`ahk8hQ:,W+!cc!Rmѡo[W,DXIۍڟֆn>,sZ6wGҦ_{hZm‰6a.-+(sfcFDw_ɐe_{_x5_SG*t}MVѴ=jP姥iԔR`!i4pAdm'Fv˜^;#g4*jqǤYwtFi{6|T!Up%(F@#qw| + +YLe~ tBQUr01Kb,S[&S` R9q .u))lRTug_ EES׎}c5W@yļB"@Ʀ]PE^ĐWUXj^tqqô*d-~W(ޢ)wK׃&k|!n6q!yqhwqYGPVE5#Pfa<{4x1LULh1e,W|,GCpf%|#\H.vuIvJyfs~t{΢>(WNU_%tPz +/+n|gз/[qӱpTKXir}asCϹYkYjeOУ`re7@վewT^ݘ 5+=fqjgCۇ7%umf S,ybF4DtȎ)nmWc\9gD +qH^jO8"(|71+5_Y}(@)Ws/*\k*Z Q?p>b׏LW{at.% XEA#i1ydra~Q|Gw9DXU&'%$`n]OToqow?PDH/uĦ[ݣҹB^z62d!+)pHB@_ojWXNɑ6BJt1hKwۓ \}׺sdѤ;R=6 (<s[I4TcuA vKd!xQscF)Ī)*-1U[ec[_/ a}8X; [w BPi}E:,!^] ܓ"#ZFG%^H]ڤc_rA2 mxooMf4Gc3w3/_} %kfx + {L")f"r*9Q jPy/ž0f,(+Ǡ\[]hSY5oeLJ][$君W4YK?GEV]3f0X).v"_"Ne XRHYV)XIHZ| oҰ[_֦ +PC"}܎p clcM ֝G E3}y3S!홱PJU 5q^* +#\k>V-LhaݜA}>2)nHmj 6/YN)ϊS~B8z,}N +@p|HsCĉvk-BPtS=ROV%ϫOd.EJ##ߺDCLKc+.)ؕiKb:t~_ ?v. :CiV!;_9p8SiEFwrVRK#-09;c&}P9xp- ki.^YҳRm%JRTX)j湽,FHqlQ1nn x6}3#  H޲kl]^qEF.gx 覽I>Y~YNY&+'j38Yc&Ŏ&yXig$Pp "(ZM糌y`uHԟQ /|TjT9vė˻֗SH$?^U:z@uO3.pG?:A_{ 7X`}f5=52ULz1a҃qx=H56C 1kv%ai`#\Tq4yess80U0jh("I̳ə֭@Y&}jp[)N-gfHJLo=$W3vKMLen[ΰ\AgE-wt)x4CEâ3?ƊB4:hfU§cxE!4|RYy.0Nj!ޟѷt9d +;Uus̈P.Uj/GԢ.H\O)/sn6EM14ƵbgE%=|%JWn8I?nZޕԃUJ#Q_o|Eth`Os<:{k1W^/-攢P;4=]J~~x͚DIhNV,:c+K_to۸/;PEe +%|-Ҕܴ )Llp<Id&56Quhw}6Y.EUze{ TV~Xꞌapʑ_VB-U':2-UZBM +%xxxf2A3^&H6H}D/AnjެC?IVmY[\Ny`uͳL-UV -q!x,q Kxn7Fc@Oe"gF~߳ Wd50+˼`5]EBQVWM-dQ#ك4_s6[cU,rr.NdJoD<"P ?R)^Eb7̿&cKV5xcض~sP8QR9خu]x?TFpmCz܁J +jwv+9*ѫZzs!*3X;u󭴼)Ŏƽ +~R!f#5C+`"vI-Tզ7ނ0om[\GQsdi#1\~R bdp>ͿVbT֠{WV \~M|@o!-L)937guI?dL~S BB!D)q힓#Kq>b2&)nPB5Ns`ApDɯn#U#3"wIВAqe˨14?Nz쉆e^N0zaVTﴘPk$#:\G\>W: eYMȁ^" +_Jp]awsxR-ZogUI'r'2 +yalL،K3F`]GQ[ su{!]T]#nz?ffK膾"<%w%dk12.@ +J58"=d^(ْޠcj|I6 +l3߾7pBrgM۱*hWW3R+7[ +Eã [4Q_UB#dYڵ{gݷ" 4<X(a ]ψ@ݲm܀ѱ'k +B6?[8!P0 ߆osN9hq`y*jX,7IܖΩ^ ~r\'jAU{ҿ"d.0kC%*+ :0vpG zp)XVİ$˶^ӷ-1,fwO'ۖhCZ(dioQ.*(iF L(z! %8Hc:,/]1\u,V1`i)v{p}!.>3oC$0 ԋJUJA31aYKI +\:UoSe ӷ|GB-φĬz#W~Am { bIۈQ1䵀Lle!:E*㻲 lŖ)4!dnjU0*WbmhF_#.*9ruy#wEO(=rrAFdX53Tq>sVQq/}zRy7ŔFZ( +Vy尸'VިeT.=+'aR 7;*Dư [W ҟxk+[nDSOVW_&w\XL|aUa8bK"آkmZIcb[דڀ:XGN aq)\JqgnyX]O7}:ԩy}ӄmG,X1,ا鬐ȓ +^/9DGL濧х{YC/su]"zĮH}DW{_mzO^enf.\BjO#e;ZD d ShH:HIֈ1Grm]ꐭDZz-'o$8-5Z7.D;y@]+Zky+ LHr}^[D4,չWWT\yۥ:ӯ١ɂ\  XUSfKdR(lM$]CcZBVDQ_ZgDnΒVZٽg<& Bۨ eC,S_Tt؜؉/}%a}w ([@b']E!ve;>eإx : VI;Y׽_-ʠ{6*5ktb5EWpk`>?{(*LUm"Mūۉ.JwJw]J`o$)˺mźʩ[ҭ7:H'A 'ԐzK12r[ +qNJrld +.V ˔l uC$gϽAxI*`CyC ^d.Kl(.nb\B.3<^r| ZFg2.AS*#\ +Tl&v?c+Yz6',$& +OwcOj>;4[J Љ~ 5,5 G{s7>TJ? ^A=Jb"C]E+017ru? _=c(^=5 ̐~+bop^O0JƏM"w.hs(q+U%O}eZVcw8ʋ)N!7 o:b/c,2Fvw(fMt:`U ua98΢xU1%,#|:F8(\ s,268 >ߛ_JƯgKDk-xurRGz߹T>񯱯4LN``hDV5Sv_v=:ɖ2wrs]^ ofRp؃>|v =P*Ά`;dz^7xzIM3kbimg=\nUs3,?cY:(LL U=Z.zx_6ZH.qӜ)fu(1MٙhN,x zBI4 r߲CiQ ĘxIW/M#,+qfcy +X;`^=10! DLTVܪ$XIpX߉b}⫤M[HuOue. [qhs3Rp)bZU;z<Ԋ:|D:՜]0uoU Lը=R.}i{άhKlp7-|Ͼ@VTjuW +y].j׫y] K J.t=Ϊ@{\l剛;zxF/vY򢆸+$k \S*ǤM<sBYiZ^mh~ԌƆ~o# yZ8T`5Q)|{Xؿ[s1i~& +dk*ЂUBƌ]XQoo,z4^t+l)_(M팵l*ܢj#&/XYEm ˚˛sQ%Jpt>JA仍:TD+R=#BZp&^b3Ł[A l {(o?.a9(fT4)٭I[\+9WVfTrVۜ)ShQLEKڷMZW|-=hz΁ wSR:Hs)`!lftk+'ɜYG JfV8WFC{W[} mX)2E\; g>f3.ã'Wu kX4T,Z&KBh^h<DoS[ H$֨I+'u9ib05StҜϦ+VEv⑃~pKɧ Nn[ \ 4AN}Lseִ" m@VvA>h:὇g/o|_{I_TlKYx_p$dBGҐfZN.陜&Tew6xATE*AL//OB.Xܝ-öylJ-=>vLWQWb/^jvfZal&omfp> !yrZb&aWWqI vf|I*Sz@ɦ=B[mXk6gU՟45hxɰ3YhmFx@@;ɸ9$jI $ eWDK2ËKMlpE>bٓZ18v] W4 d1U@1U\[/{Ͷ{sYzU7p!/^C]=Y6 +zk4h8:ht5mS]@8(s%qWI~=?:YpIBM؝IR2I^d_w[ )e-b(6MgJ6L8">jk\N +z~>w*'9Q28`eI}P^_c?.YT Y\pA:YMDD( +1(eIJJJ'QAD(S$! c<@N +i*B(„B%(8!!2Erj1+`p"#" A!b ` G9x `6T(`HPlQ(r$BHMfl"*bPhUSSSiLpF۶ZBаTW`١-| vlڵк&-R0e({  1n 1O!f32txKL S%P T*b0-R/)*WQ,W=:$5 I^(:#,&4DXT41*dv761&E1aՃP0*(V%ZaU +Pτn + O{"#' 7i -KCf]Y&3u., 82#4 1/حP a{ Q`ëi( );z~9ZD!)N+;bm]x޹=Qj+9$Θx^?3 eZf+43[F$Dܽٷ74:k;oZ8ƦuIJx;5U%Dt' Gi 6hrϘ*~u~uSfh> K2'OLDb<5 VةmzA=HVP7֖'h^%⊵?H&V H3deO+=I0Bb\$T(ȕ +D~!jbZ"ϘPZ0m:Cs7kc4\S( #AS5UpĂxIHfuPT%TxL$0O1 +Sbe XEXx?^a,ɟX7+WMbBJ,^q|(Lc4(pxb+GdaDg+Y"(K-.r%٥QI8ͽJkb>v.WVkdUUO]ɐYxBXB2㘟\=_$"``"k?4IX !D"ZDP[ڼaj~ՀȨh"LS4"UU0C s458 @񴇠LŒ|ryK^:ف$/ G*vB U͔~8. (g(8ne +Kri0])<E{^2YjU%UBeP]KMDūD@KG$XoOD +0:4 5ABMoLWuM[л` +Q +Je_|C߷%p P7nʵUWC +>#z5LE)gI zp~ML0)X)MW4'(Ό I=f)3A6唨C9Lf+<5/!cJEh8%chjƒKXC_Y#e-5-ńk5,L"#SQ98 ~hh.cmCHLII5$Z.cTQ/F$T=}QY('DT5jVFÊ"+PvtfƲh!d8K!h`D(F2QYqq }C egL* #U"BIU IL:2A*JK B(Q8 +F6׷DT؝-ptl]l; I>1PSK ]-MkXǨ_ZH0TE+$N.0˪0*R-0a_iC #>=#f<wU=쳩m4J NETRx,!/W(ȃPXS5L] +XīcҕY&^1>(6k7D7♵Z6eHrcSTAc(11骴Ί&JB+*f;[,DD&gcH16 YН7G!k.Qxq E3&b~Wv#!*&Jm8Z[!/Lj卦MWV-!3?gWi.)÷s)q8H9H)H(b3ö#Q +U#/TzZ#ƯČ8[=Wc{aïGSYI&Lrr|b@*Ʒ8.b!Ag<~Ӿq SlP:Xk}({\7򐍒<$ N[Xb&S!B Rp#E$9Nљp`C35AՑƺi0 3Όt:>.C$Ea^WCb(u)1+ڊF<UѢ O!sF+-Q#.6,BhryRt4JLkN(((眹+׽,ߔ8)d'ZFBZ+'qgfF'.1&Y+ +1YgFq[1I%x$啉!/80 K7B4n*!Gd!$S?N!6$qeWͼ^K4 +qmb~ xnNxiґEddY*C)3Ng\ ;xjbYK4O]:~v1U'E69pP Qc:KF갆D쉢/^qyf ?h)R)W*M$uzXchK"b4;+ξ]VrCt+Q*[^b5<\掛GVۼPDd Λ eټHQmBu1݋~fzTFE W;mD<-F$g<x.[v[L܎v)]f͆1J3#!%HH +d(<<\))3Y44ǐzE u +Sq )< +Mu#%(HS05S'iѝ[d'=AJNB不JJ'aɆ/ %E #lh+ɕP\DF +JCEbgF%6xe%1ј +d1y:!r2'ΐOSU,9U+Ywyt<}4'N#{oId&- =scA(&du]Y%ČKv%<O#訬Zirj2UnEĄPOqU[clhuuh[+2$ Bdc&(0욷0Ǒ/ +{[T N"4uMʧjc* EV*'љvА|b.*b>!hbq]vգ`|AZiM:= yLH#;5$ZT.Z{_U:nmcr:BiIj4pj]۫[0fu\ %Aa!pCuavJ5& +hXdmӢSS nL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pXFd,)"AS 4CjaH$0'M*|BIh!uGwpT3cy-?ld$_ NJ8-u\0fRT53r3B}SH2L@H1!VWa +УQ"PPC 1 /YiDcH 4%BRI*4ZBy:.! +r!ohE?.У51RZ/Z PC55SE7(ş&~: _%L@%J HNUV@-z%%C 8_`D01D;+k-zP'\rtjR*EC%P 2&$!l T +Xy,̳'fSFHԪ^E MCZ'\@`&/(1Ëj$LӈASX0#)!qM$G%s8$p +  i6+DO׌bK1ǩhVSbX M:W,txyCя15!eeWMF6B)*s %1W `yc,hD,#zS ~Hs/w#&,ZXM'ݬj"DpWLLF_FVo-j)aZPTj2Y(-mIg}J7 +/Edr _5Te3_c% '9cdZ ~}ރ]Mѯc~[#+B< 3 +c8 =YU(D"N`@ +Cbvx4~D aqPT\  B#WRx;̋g"{vwbf +R-| ~ӿ-1ÈQƨy3i됪a"b"Fy0!%\1ZA L5G8+Pp;Q`5*]}.NAír" +,Ux\9ࡩW owHT :nD\e_jw܃.UЋD[6{v%f_;&y_gįǎ7ȇ5 +AW! PhRte*rk!gȼD]4|Dw,/SX0x/Ƅ]A1Ym1C.迣= p >YxF3ޟq.Z 6Atj%4L`hGhx[%<Q5R2 u-}tW J&V +I1YF #!Vu7IvTt+Z:ŐP\c6Il; 5K|(cbDkΜ0X@PVdC`ˌV|؏HKa:ϊ$Qҝk +1 7ʯ䲠s|`"DeBl\Dnp̾КFnn nOW@%E>r(j@@]*&q˨""/fC4ug{X.Bsv]b+ֶIK` qu?2>hgw@(@[`n ҥW{VSF6:Ond ˨= +Enp;RtqЀ A&¤Y%vNqYȄp$ PIN$tSSzťrw|oihnwi C?Z_8r=t-ݸ;_DVĕ7 + nIc6p"sX4cE$*b¯["up2Ef3B3MX_80 +MDD=r1I7  B@>zɊ_Nhl*( nVС䳇D[sc 4 5 r Թ&K LpUW}^ km +B#b +`Ѕ֚=D s)e'kLG=+[%+H YD5"UJ!vYVxˤ +,,D8CL  wt֐xcpLH-`r Y6|UCR*)K/?qg1p +&] ,J0E9Ck=v|teZg9hvX~)m>)`Y& (/#'ᆗ6Vw[O1v [>(96ڄuˏjpqVKzowR2o]Ę_ޅ]dɯpD٥?_'l6 7̊WKy3]mh 9GD \g9»E0d?iBe X"l}?~V*:ddZ:t'_kco@z\F2.pM/k~vQg2F&bx ,fls}*顙 fi.ebyCQ\ӁP$4.ۮ/=uz4p#G,'8']wl'Gh:@#+qA}l^ +Mz1L|Xӗ/&/DP֌B DLZpx5 njQӘ ?FBy l>Iop:xe9ҥu'fwQ)<1K6g.4'Bp=O%eYgT  4(oLQ$@>t8k,$,zc%]џ*Z|h, j6oԷu]zpyA&~q7ĈF:Huȣ3ŋ`ҥ +9j4cBy<> h*<}::[UD=GbO8~EVʁ0BCxKUok{!6x|+Z U4+dIt'fvA|̘wf&x{uR @:F&_Qn[P,%DtsC4J!^d}qqs >bM\k"^G&˰v2XgC1Rae9eEL(mu>[zSPHNwg&%pUtVTlfMC IGTrp KDEg!jy2f?lV|foLH>QW Ey]ݣvP$Աpjɵ$ +GӬ%C,S;\ b_AB+!_H<1e&, [wu"p'Yx )WP{}8WP{nSXmOpeQqob NrWԗn0g \鱄Zm JOf}de#3e(ҫ?)u +`mlEM8{+@ enwT.4-r]`tT@U`)*Sgʉ!\YqW [3]5'z@hI>ػ<},|R"Sy[|H:Z sS|²ƃ=3ж/GyjL{=‰>8 }uߏYhd3߯?/oz#O4R0:7 "2bOXǕ`6hqzM -$s:N|ƕ9*ͧ2fH%2"[j^E2Cբ3hxtCNh(j<{BQ8xQۤn ) SM36BF8вz +eՄ~ ˀ:mE0BK.)dG ) +yIv?K9(G + DHŬ.B`ꏁJ,yѺ]/Iy}xZ.L7uIV<'ZtY:]ݯoƷ+%&uCd~ <`!xsZPK'殹U z2Ph&V, ^Y0DݩN`RL[Q:]9Bx0 xzOuid [[ +b*mWnPXPݺkP5+s6s7#-CDIPfRۣ//t8?][5 +OIjSD'Uo^VFgҚ\ ˠ5j&B4=yR-[(Jq|wQ> hoh*D-(£:QDQAoEdZQeͫu'"d"a!T}FH,3 ?Du0FwUjzCH %!V@ZȵNY&Tᬙ$w$IyB=?+kQ 0<^L3p)X5jH9_ QtnezMI>n!e0g0($PW1y`̻=:޵aK6)K/[))#Azu)~]1z:gGY䲣\CÓK?W$Ot>o^nH$?*#6@2AW(hHxmE aߛ{c_v{s&OPE|ƾ%#H$QГ $YW0uv LUo͒f}S5֞jl,h\&ƙ-pnZ6ٱ6OGz\G5VPRt +57|"s>T`}=Ь +Ya!ن +튨Bnf|P[fV +Sz_]]*+iy႕uqyUV|&w9܇ +n(PDg`(釱I ""-LLg[B2A1 _SM;Pҳp$eԞD'li$;'&eN@9OP(͠hOT(_E +UsO0q!GA}RhIRT] + D2S%թ +O֞@nw6IEYd٦<ё*ȓGVxV`ƫ0uw&V\vҮzNWJ'?ytrWLpNL 夥aA(da& dqk8+tlh94ӫbIx58,I;[h&Q!܂5ɦ&ŪTh!EMQ.u&H Im'OU\4+GgB:H$>|15E9̤}hL~drh $`gLHU߶ #0/ȿ0@qQ_r+z sxIPeNK6dюbn#-^%mkp|HfV-nJZFX/ibIW3:rC4ġ6|o)8#=]Q竝?# 4E4`J}RA(i[Ot( 2~bI yF“Q'i`}IY/iI| * =Q%)ڨlc6$6$I &qqnl$5F"F # H7H$!18 ]cB :d91eh#G?荃ۏh@"zhDP\r☃K Y^G:#Af: bZut#8"(p8MU`;b>d4٫;(L#y2C3͢Lj#yA<È_ʃ!ᄿ/eMyΣNyDMA=E.ڃ,"{b="QOiI'*r|2EO[HA}ЫڹOQՉaQ?c",u?o$?R"sCDGGJD[D~E"RD,"b!) w,f[ iI|Y +RN) 2ua R'78D7'ߐfߐd"m iH?IRmBzIR+I ip>ځ!v!-DO,!B"!,v~ IRȿ!kB!C${:"2B0!%"f"G_"2oD !w iYm"/]]D֬jO>(R" TĘˊ Ӆ]p2U) ʰEX],be4 0c/+5(oT7 vt,R "$]od`V@)Y2=rU&l>E|@BRMրl:Ê-nT" OQd(B rp" +@Fǯ?qDEb;*҉ƒDLNQ(%q'2FJ^"ʬID ?}h! ̷> #2uǤ <ڒ0jZc$2xc"| `"9 rmJsrQs[W?M R#2 '=!jBrY= ',D2<ND +ZHc'G (R|NwƉ1pB|,܄@6\aM,i"kIͲ/P,3 eS&< ńlf L\ G2w^bKwKG!Z2˺%xٲ ݦ6JeؠJX?K$^- HK}& ';vBZwZ,Y-^J(T3CXN)-ͳ ȠLo)&Tcp!`O 7 .pinҢϚ[vڤJxIAATC%X Cr.ߨ=S `\S xmOH({qρy שD"ORSf2 +J>\JK)1_OcqY?.XΫ3Il$/ J bkHa.,r4͹D0; ]h2 +E" "1Bץp9l +$DpGIK QRgvDAGyI#xy#Dy#:^lWR +hKA_k.L|/؁ ⑿"N_Xa> 0%X_0SMPa큱D\gaI4`+^6-IC}#"EX$"?t abV 4YCa!NB7ĸU0C#14I ^y:MbƼY*e14b}FDYC!10kLsA +ĆkD,&) O2(de/iX C,LH %8k2W '@Mʠ].hf})keV# c + ܥlCd ~ehndC 83mK3&W.p 63rT`6|h R|- >X3M??tnYMafh["ac&Jm4]ۏ# atLtK3xPi؅h5 Uࡘt.>wW;Q÷MVATC\vR5UaHVu8Xf|[;8,]k0/p5D*88tt0O N4jA#iqXҐpY_m~:',0 4;iiOR I |R4 izVN՗ZN8=p^-+F!sL"S9!$}Ȱ1n==G191mA߶EzTI 0:=!l\*NaHS$!4uj˪/_-=ZZ_(u M^xaG* t<#?^X/Ö|N{c;b qʮ $J0@F=[Jʕ-9)p+ Z;8 / \ )t,JXY3_Xз;h;BSWx\ag;4LL!RXQr~<Rk:yJW+ЃyX<~MSLy\>ڟn^!dn}T>;;iSÑ#~-8SH)')\>B?(Y?Uj?ɾ[zYn(BroP@2F+wO6xٰ.uRyEa(榑 mC)ܝ`2~n2T  ^,}!w0!s|@ᛁN^Zޣ\ϣٍ𬜠K %'D5qrK䟱p.OR84-_8XGn .BOᄻ/AkUD 'CQ0.₇&$'TZ9 $8П3kUt.8a8РOg-o `z?Km&$25RׄU MQI90?b&@ts E))@?0+m 0' +nׂ9Fd15RMxN/i-Q&݁eV_^ڕׄ&ϰwMDڧS@hJY_#b[ZL/&Ĕl t`t-/xÇKʉg_1b#heuĄ9!f[1Afb>"G@ + &PolO_NS󥲦.'=eKXqkڙj7x׭6DUn_s *~ZD=9peWQN#M0''38mmm~6 ~eQAq gh4:H%WpIH8Us$p;m!g$'(N0u!Α'%S#4 |#{ ADJG;[ e +#@o&9bCi>D@M#_r2&JXFȘ3g|ק'e aK`_)$e@o|E>=V(N7Eйv_Dֽ\ hF= +)hJ=fI>i+P!-Xŋ A.!Rd DV@s!CPp7 ]? -_ _APAH* cg҄}*~&۟qv5&+;rzTwyz +$ N2W?(0}m4 #K +f 4;h!,o\$[*=AAbxd^|4 kՃ6 <%7f<0ucXArP 1yt(ARB33ߛa2Xskr5CQ+؁*tؙtfD&ImfPL:3 k=:Pڶ~)8Lj'jҺX>龿!Є +)hvLDa-N०J#@|.ѪXo'KDw{7PQ}mttgmʀ"@AȘ/N$(A+1q>Dm`H$.QX60 ⏋Һ~lC6-U `N3Ƽ4XKbWaT8Z iR340g WqA>g:Zf:`8ȇe t>z ٟ?OnٱRǼS}*Odi ^E(f=V 4Z٨zTWA-,<}. ɬ$-vZLY#Srngس,(e!,#V肊JM h9-95h $w/QWۂ, +F:(ւˇMХ@Zp|;4!fW5ub]dA_)4 = VxjwUB[t׼"smZ޲XBUTaz ,Hfn> +hz)xeX4/ |y3$I[:4I(HA(0 ](0`^bڧ+ㅂ'#e'/nö)_d'(6ݺ<Ϫx( +PVPԊ< Īؚ%X:+;b |9aJ`"f Mg$'ڃd8^ +S#X蟍-X2rGG9D_m~ͣA5孝W +||CMɭ=*wD7z #EzO0DIʁ n4iVZGsU,;%` T) ɂ#A;'*?fPtr{)Jpu0I*͚X{qk6pXD:,~6AH}=^EW/J1VS<-t^ LcݘFsY xn$_S'$z1B"FP6|[l @6IX&0 KOz>8 + 1"5_˃H@).gȖ/^"pB8eF$(dpg̈Dž*J& 8j){rФM\rX'Oi9I a!Z?JL2_|\"rw Zomjw_*XWt:_Zժl7?͊Byb>^B }e, wPxgqGqLoG@q&2<-PqwcX8G;!FV=CD߭t +5FJv[svYeGhgt6?yw֙{qrt_t"eQqAse?W씹I=%ۃHx7T[w Я|jBF5:Kz?q1Fd}%n9"<748ҁ y?rWT=''4%OU,~ +GN +YL&\eT7^x&ƏKxVb6)%Y@A.^ +R'1x+;X!qϺW}!nS3Py`? +1Z0M <8{ܶLk"+WtdS<,`u +-}߉ 6tKvy*p BhCvF8xw?;}|pʠwc0VE1?<,U\Qk_V_)*3y_Cr|3#j^Ց9p&_ Gce6OZ +OȇU{rIuRL7w-;DsHǠ2(37_Wfn_?C1װ`:W+)$\AnQO,WQp~:hs7~(|7s>dv#//Ts.ց`/G77}.^ቘO>oPf6 MzeL)>>|(` 40 "-&Y|6Lp4D, l6nP{@DYrO)=%HsF +up<px @=| b@m4h~O"&b=fyk )c)jp*)0Vy| f^B?ZfO2e ELzMds{aSAL2쥨isYB?/ PB$xDJBc=Yf@P ?s]J$z"fٶ,VT]vKٲ-owAe$\bB)QKuaT.,H:L~jsuBeK8 l!RE1MeKuv2`+}Ex.WX/iD砂 :`!^!1rdolFvaQkn//N =;I.tYVkYF +/N}pgvx")/:o-D4^c(/>W\v[z80h6}Ӎ*yPE@6 A"EMpWdW\G,ț0xkZ C60?K +FPKlN2`<OOڂ;B3ׂWa/޾;(P,, 4cy8% $ŷ ۲,Ix ¨E~S\`|7C^+'Lto1Kߒ_2VުfLjD09D~AQOƨl;%$I _PYW]+v~_e^}~cQI_0_z4-=ƅpd +nG.JPQ#2P@]w\ _Rݽ|Fu}iYQn?cٝr*?N@+V{씁Ҩuð.qɟgg*fѱy-,T_Q.ՠ)ӱwaޞBrpV~Hc۽|Tg0p&ɳg ];/x<>X{j?CkQ^!/5^5P2ڍ(pV Bz!rгm(3# Ȝّ6 'H.r[U +ěYM&fZH܉{u|G7@Z-8>̖lKx6 GE}[9Yث.5g!`G逸gL)n `V&q3T+ǀ]-;u(Z!6`Wq3reIP`/2VDdXS\T v#N/jvm. pY~mCbL *0WR vJJ$`w@k +R(å43:>{cRSls;:V.n^ݫg5dZ9 voA#Jo{|%Ԭn&_,sMǗ;Nt.@,̌Z  +z'ZiU#̿Z׭hHN{N{vL^%wk_>4&[/.:|5uɶ^k1uyYGU.X7Ē 9J !AF ꛫs؞Dju$4;*݂=ȷIj*ۑ^ԯYP0 ;LCE.Sn8:gQcaY  CHP_fLT5!u`my082Us2b +=^X|#E>gu*4Τ*JG^:^0X,ԝdJ?Is;zTN]uQ)G5 .%S煮SG(?lstKݿyf_Pv=MJLai*WxE\Qh N/zCCF$V_4%J@DjSzdLp{Vzw.%謱4b/v:wB!$07Q7zدw[[@W-ٿ_9%ϴŠ3󚻀n'Ƒ 4 ]@gMI ?. ˰N +Q,r1=å/O~( blg]@TiWtt/9z;ГÐkwlr2bEXZ]j>qq$ktM8!t* Tf/mqLO7U}V ^b -mKH)dK,諞g?qk`w2}\XЙ_GRrY-WX7PP[ zGx@ :d$AQz-86AtIs&?xشAge})lNAzqͯtv${ς^֫st-賛YE*P/2E7?m?O2]"tNA G 2 sfBh3_*~k8HRSM˰ +w!Mkn4bƺs?!NzaP90eV>MXG[# n ]az|xXp;-Rg P9#wNSpxyVrhn@fEp ͵} C 0z sq-TRxW\ݴFz mLeRxyG tYٲy^2Na:\Aߋ^vn0ZL ;%'_4c%ΕYWA:gC>a< +k/3K^H7Ҏ<˲.O+I&X@ L0\$&(}Bn릘 6G?2!f1bTU@ >oyX"Aj;=^oQ+TeIl2$t?-6{eq9x*0wGm1hv[9Rh?˃1U!RWE +B #wqP[c312RKLˏ;v7Qi,~!|( *աD2ykr;&ˠjU\G+)2L%PZGNPHb7ů_&y@'C+Jnm#(MMT5DMe?3KnR54]SH{9lpBŰB frLSn>Ԉ 򵴤G +<@7ficzeZ>(𨽳?_5AAe9-,WFLۊ o\i3oήZ~xxxY,oѸSX>/:4F[QpF*_܂ >rV]<8NjYnKuތ]V{ߑEy$ q-?!- s8_0po&nJ~,<+9',]oO W4PB\u1: p >je˲5D&VsxRB1<27{NYO\NZhUt"!t WBlnY.+()*4>l:f9;3Keܳm "H ©me&Bg,/A tY^p3!V +~e s/LY s A&^.9ܚ2KDCJ#ryU\bbZKj\؅ 0*">p`F).!~'\{ln7 +pxJv۴s?3MduNy}2"f'hSX_oZ*f-V*H7FWId +]] .*=%_\{;@)sކv6Wcڿ6B? mY 3zKbd{]B|[?Ry"0}wsmv"]n=Ow\~ogݲBFA Zw?f, O @KWЩYalojn#cf =1w'Šh4E1 7dP] Yu)քC݂hqnL74  tgՖdU1 #vN FY>\-ƪuZ\9 {O5,PuY)t_ZVIUd&bj-ZR*bzf%R֫&*ΨKalcUJJ.<.'kfIT}3Vd6zxNUU  VYcepO-Ͽ7yUVpϬ*5Voti`Vk4kU3yWPy!nU\~HoI|{JPaSU1\m%Lv<]gwjMH\XAUNԥo g\_L׾O?5@1iȯgѯٟw]UΖy^f6A"D$w0a |s.KIhI +XFkd XFC҃[`u2r ^H>x\C80ic\IDqBkAkƓifq?ƨG)w+q;!tL;,ܱ5qӻYn又\ +oiK-*ޔ$"ʻޓR +V3Suc%F'ܮ>tYzcE~ԗg$[^2>stream +' eԍeN%Ofxey`ie>@_+sp+C`:$F@fnr睔T- +9f%U^G\kqyebj|~2 ȌWFlDl'ʝr&𧕹V;Qpg8Š9K.p FUvuYR HCQe TV +I +6d/0&%[M ՝r)eiލIndEyĬ(["MQX]D&tMgrINJiލ)QcUE.PQm%$9ͷPwg׍J)ZQ̍/2$.̠Q{"G~a(eg,]agJ)o``#Iyp>r%XBQNޖLEYzjBCMj%2vXQHi#dA0EQ] +(ÅfR3ɓ &퓳dwYQ)}B1WWny2nWܛ'+EiyI +eX ʶPݿ'hSBCG9/v2lAlp_Q|!9yD~Җշ#syE(q`(oxrr?{*Eڹ񊪺XN@Xrz)@8qޅpR e,I,æJ7eB[:ƙ0=o cIh4xg&2,kešueXӊoPX=pXYەjMH@ ;\K +Q ,˪dIjY V[>>sy]_ |Y@T)ƀ` +:=|bNs̋cEC φ5k&Ē8fIbI_\sl:d'Q'ȏ(oGܤkYAȺ2V6oǥ9yq9P\Dwj٦jϷ~^s923R rַ+轁e t #RA稕 ׊Gc ơi 540FC#D: aàٜ0ENF+y=HTL)H +gI:m(6ʋp͛Vm4y)1: >~L4mピ!Wui!ۛObW}Ƹ./jCFhYEf5XItj51PHHݝ)S+ԞLdt+- g CK{QDfs\HX +Q`!nBCJ@QԚ,Qi:QJ=ɍ*{nt,NJfE4j믡S^Nt+4Q̀}=R?y+E¶ Vr"DtuXyt~ezvFƐ+,s>&bǀp D^رb u䂡x]@*Q 9`QRl1TRZQbl8$~+ZJQ\rD skKvx].oWDEMD>#f q)>ngFKm'`r.z7Hb ۂ~ 0,l%^;^77JuhKJLL:ZR ;MQRAdJBŴlBz/ fU `J~"Sc;x곅6HWxjF婯Z8(WjLҡ7$@S'25Sdu|FwFO3mnU.Cj5?խV-Y)}Zr&b_L]&=I1ڳ0`U$ak@͵sҝA.RMWם`GJV +rdK!\ 7Er 67"a[@pV!1ov'rX`o"VZˁ_MB.$ +gb0V $⺄ioJ;I"AŒUYFVT4=K9/Հ1sֿdRߍPgK +oi颽;ZbRO>|^E0B"8t27KpfeGaP-Avʕ tPT3ޡu[Ћ#*l?SO 4Wt~+f{t ( +1FKvagߢ +Qd gY-H{2=7rOaR#"FÂ} SpR]؃#esEPmw0JHT-5.%`Kvan~'of淌;eIz&\O |8h +ONZTkT?i{HpĂ;Îhp"CY-wkl?[tA_q:=f +>Щ +8>#o&Kl!W+ӻwNnj/&@e!Z< +"D @N}w1@}Dg4숊>a@AvNߖ~Oޭs8MޯosxUZHe0rI󿢕#K7^9hKm酷 !0`;VTmyϱIA=~;w+&YCTޖ4FvBߌ BC+uX~xl}rK)^:|@]{i&>pه_!̀-{fs +@Õ҇s K-pⳇ">߇X>}8v&raއw8Aއ^^z~]Zty -X$#v=^cCH.øГa]5:A;aEV.2P<[Gܯu{S'_O4 +D*j~c>d0mM~HG9)<,FEpiyZ.S/PC cn%7 oΙhhq%5ǘ=ä76Iq?ž`yvϑ'ysbp<#=[j'`@WzrMHB?#*1iet ;:g(CQI0d/Knq WrW9޴!w-D2{F]X݅ܮ; ƻ4yw}cfF3v +|u7BD^_ &~^؅/h)|\_i?vw643ycxbtm::>W*O5|T mIpśEiEM_#B4eBͣBtd V xvH}Ow`ޙMPS}%]M#i> `ퟫoy__?.) q ' ?w↲7J{e6.woד;[[r `Z˳.aL\ǟ(1sca!i&湬 q"kkcwzʵ/?Q3Ez0-#+巔3Z>Jp a/ze1?*좤~#zoCrhQ{Z|ᏼ23$T|߀.XFAgzŨ_t4"t3ogݼWO-_Rh@pBĺ.Zm> 852RLO3.Z,HQ7o02` d ָBO : Uh9BL>&bנ\e5P#+I.-VJFlKx+'QRÓy5PS: 1$ hS& OX{z'rY\7ǃq%B|͵,"p_S(W\0|$XcԱQ@$Ph՟X P`j DAVޟH|d/O*:qH2ԅ|*4*ˏ<؀=1$XU[FwlR-]Qu+s(?tlӣE\Clf,J0 1 +q6aj3'd̿ⲃ[Je2։BKSJIʞ6]hZ4^wX5 ՛.T=7´g户XT=a&O{]e#RTr3t,g@`ݻ2Rj_< +UĐ}D1j~P] +vs79BH2F-_ a-N17Cq8:crKCbZ|9_O YڪH$>O*Bz@ITꪇG,~~% oc'$S 1^^<)*+zUeb^W"27º@W06N8nѬ)_ ^6$E>WB 먢Vka!P=M0soPs b$LQd^Gl`[YOb(䤋{Q!hdo~pO7$6^o甓S*$͠`AA\j|j&>VQ$y R'{߿=> adV}vRK3PH ZgBzWнmSDڞRMs[+G, +n_ozsD FZ&1BQU.}%̼]΁"IUV=L~ek}xf)̀{ 9Q$!ߡlP+DAưF`Lll38KTO HO} [Y(s 4ʄ B(;[w#ѲUb"1 G +gnz<ٗzPXԜĒxWJ4_lZ6PY#F{We0P[#U88'I =h"8k58Ovm2bC<lv en&8ͨC-Jvuu~7",V$s"sid- k`,;)RC%5)!nL =- [~].lzC;a$LhuEioi6^&N'7Rtd&+$`0T13 SOkMn/(d0:5;c'RRrό@=g!T"*2ˈPe@"zT׍^lRsFٗFgX0>HEAv[Ȗ +ql:@NG?vQ_5)İ2qWHx2-zp džaͼckR,((8$6_6B s.S j&CW@@)Ec1f܍ ,Qtb@bx qlO +׳-0m7HVnOA%1 +ٛ3PzBh#ON_yMCt2_Z?K-|>=Gd11v|NIS ɛL^9Fzr»AT\!_ݶ[KU0#|ts$K%M\/!?\0/Zn S D!  9P,3ʕM|AI><:;|snJȗJoܤC^ClBaQu;$Ѩͤïqll_'\#VE;P.ԠCTrj? 4,EDҨ%墾h…3rH`rhX6y2÷= +1'lmw k6[kZ_߭־-n`O[O?O󻾿ul\߂=q`9'XͶ>>ֿwųq?l{/}Ҟ~WmYo׽gW0wqgLq={O39wٝ'3xmƳk4I'4g3hg8vR~cN?:q;|=}[ +^ zoZN|vv[<;?wv<=|ݝbl'x6Of4n܎6٠<`vl[' oۦͳz۶]ի箸cӲT>hZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 RNx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#NUR(B?vdjZ6}`j*df#L:%B%!2QۈL7}8 oUt(jP2GIxR0l0•&[VvAݍ@'mYPL7;c-~3g0H*3:%{(Q@}xR%¡~n)3g& +)Z ADFގFF,i]:[LL'O  e;ЮsW`N Y4R#ͯD +Wڹ%e&#7^'; |#HlEֿfu'j?v&Y)5 G,dts?tsm4{[|YV܌ȯceF?ȟ[š.Ԍs;{&Jb|9 ^xR `{/tD<1ͰX\8sP:NX_Vq[FE+L [[lJfcn:7}7 |3IJ{5sĄꭀ'zAcy t_4z:oX[](=(p_q [b,'aM,5c+ln}V{YQه*}^b yz01%C!Cug݋TU'7e]Xhi㲓NPKTG +x&V;]z'9YETE2"aMPYMa)lCX!CXmAV -! N?6!05BlJOΛޠC& *m`BSYY^ٛ T $AHFTtANf#S岡\Ftr q&pqqM.T+BcqR>+4g1V7G10 DӕXV,[zR =Mce&_@[ǒZ|o^3LCi&07U +lz_i jtp܎AwWɬll\dĜrC-Q[Mp!c;#"+{b&QZλ{.-͋3cy ;*`{`DAuLxUP +Z >A,Z]V,c nG1O1Lo`qP`*R~W#I!mS4G8FMΡ<BH7TWDm(O +K.C wLʌ tY(NxELM ="| υ4e} %wC~|_j0<+tJ)^NLj> +%w=tТ䘚፧("%<|(NXj%Қ'G;(l(*~d\Z//?y()R] O=-Hf 0/h,DEhXY*ǃCXbwS=DQ$\uPd =тaOu3 +b5ʄoJC[^رaG3SITvc +?ҊtH y=20uR^:Y܄D2Ex\0xFձJ[9t}6$: k P^(lXVǂȴ>+I(&b9&6r#+jyP:6V\^&~γ3`^f +FRgV}c;j&!Oe3f ?b#þ+OddXD#o@vX#0ՠ$()O lnN[b?D~EhlTh_ qN@'=QJh71qZF{|s2驆KDk; P؏>%ȏ6ê3WCH +N +?MM'.,Z|䮈MG?RX[kJ#_. 4۩ 4{/r`LVRʂa k{'tjB7*G4*{ /*x$̝ ?׬/^*pecoY>F]=`0sW:Ea_Z*N_]ˆ7aD;vbT%0[a;`H[:Wȋl^%{{yz +!\I(GD$R6@3CpQvU-7ۆ )ljK 16ݩ+W3SD*2&T +\:@{7 3.$Ʌ( +E ZXf`?e0,Q.M; OT}@@qFP%HM01"!haXhx~%r| 6mT)&RP D%Q(R1܊hq.[Ã!h ~D1*a1eFy$٨wz +س0 e hsRԙW %{({y3O?hD Fx;F^[)mqdj N0@ %_ N{C㵪`xRX"`ѲSGț/9zv@MsI,*.ڦnӕ>Ty. R2C)JGS}Xvgy<%(R%_*NUua64h:Nj`{v of&bc.X +]pU;>e`45PS[j:?WBŒTvg2B] +S }q(kBJbIWAEONt͔gɴv$:HN)7 @ 4ȊU1p4Blajڜ> VUXjPi +@ vU‹_ͩ'W g a:Sedb~>R ǁEȏXK^@I*e;`2&0˯2@R]ɛ5-sk'Q[KO =>Re+࠰p5b!r!+]K1y] xrFS$) (.7LY6&rumvPqVOlRXC +No1ԯC䪋/ʾy̛Rq=;¸NwNp09E[.2}OrbwS: P2Afp- D z$>\&TkD+7P|!zVo'` :-ZӠٵA:=1+A{},A0p5͛nu+ѐ^mh|r֐QT`D`:J]2qYUC J|y^r%= lĐ^AM%µҳl >w4:6ht!!Vk*\\0w|.Mξ!o״c Ɂtd7.@* bLTұx%Pؠp7E;xYeW k@PհZuqAZhvlpvyaJ(WG2nU25#p ÞzfPu"_CRd"=:ȭv+]zXiZHWgVbe[%ESallyϰ6m[7p~o220p I-N}%Ĩr6^Doo&FP4&FP~"d(no3p:\Doyh^erp*mB&ENoB(HRϲd/1)Sgkb]5z4] +m2Z"c?)#gm=F:c?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M,p@KOrTI~j֣,E+,9'"d;EF˸™UXI;GmB'HO/CݿD+IU:F4=R~Z^ +〖Umߤ_AO9[Xa_ω^00 ۯK5zWa*Y? SnU;>P>N-5oVXeaC밓#^daUȪ!Sy4k_~M{s˙3ṗNE n̑U]+]QRŜڡu)Z2[V B>d$ ۺf` * BJdzee)Yi>& fäY4p7 ԓ 1nHC9۶/|j5zǞʑ'!r|;à@jȭ Nnr~1? ~?fհfN|bYw1[5:: -hV%m]Q| 3z|&,TFe7!%E}=i@r H/è?TM +4,eju*#MbR<b~in6ê¹E)"{[tydd -(G'L7Ϊ%Et9A=gW]^= +S8A<,)tIEvڎ8qiYUAsB4Wq'b~q%-;394 <{k}ISTFan 1w.ȹK)_j`y ~l%-{͛k#I6 ]wY[%ѩ_,RA>m)gU|Ξqscfg-ut ͋ڛcU Y]fr8K^eڭRrg}Fy5rX_PpZ׸U1oiYE]ٽ04lm[e|$*M BGwMͧO~yrқA=E + gFCh.1CxҶoe!3:^0ʑ7_F%!ppm=K$+JU^kwq/NXmz$M} $Mm>G$H_ +2m^"ܤOtɏA雸cu~utk1ofTTut(pVa# ޅ9ȁH6r[ϲ˦^"=m!ahlLl*1.͢D彜;U)[mkc`W yհ.$Go 'yIԧ$9y*JUor0ꏇ:hI'4oD +g'U&9}[˝9#]eko1cҠWjfկF~9fB̬a&yKI"F9U,1Ďp?cO0&@S?y*(E hMӌ ]M.OEƖ`%F>Yzv\PY[\|Ul{Q{3и6p9-NX>BeS#.7ˤG~39ȹE&lI>APcE4q(,]"}l:/8YևP@|~%zڶMq.Cz!Ǟ/f s +IK8iUIs|`#O $BOԑSO Mn bCfA8v!X`i"eQ]>EIW_h/"ד&AКQH6*X#<%"^cI{ۅ8{r +t"$(T% C-M.o,POIyꞌdܤM4MRRD-L׿4׏P׳0QmC;-a^VֲG?Me%*OHJ~[ũJMG:Ȫ M&zNeS;Fɰm"$)6 $@h`N +`=h<c t,Mמ?˒"gՐ'8uvYKF*ZMeđU@S.CH yk=sv)ϖe+#qg>jhV||݌w(͙CĈ[=EikcT<]k +@NjY7!C*JT1PVgx:7%ɏ~53HMȷpC$HM*hT¯ h' +1YS]ެ"to6HM…>TPwEU]ƷO^.w#-d]L.=s +=9ܳj`A\&8h9u8iaLJ7^ƖnQms˹K^ mfˤOqejD/U4΅-<T(Az+|ɧ}2~kY+"6 +"$zO˨ėF }2$m42۾uwa~;z\J`11 v\-Ka?De;eU"M>WC<{%f=vN-kE]UЪsf'jwaҬ b#Ӏ|PЇ6қ&hF@J4E | P"rxҔEJWǚy z(e}4+bNx4*!On-sUY<{LkSU`DFz97 Kr9+g?1z0QXzO +b+0%y3,M}z:=&JKoX +S#W y<#aCgq~8Q]Bf04"`4VM'}Y:@mR՟Mț +m=2;]ei +s +l:X.=I4.MY4[Dux*"$bYmaO!ILȲA+Bʑ5y"nt$K7g[x3THv3,QT lЄP +R՛AToRǤAZȸog `* Y>[EIO4@鏙'pS`4a?@]eVbkn{#o#_ॿ.=;"^do۾WU/~JX5.q>x[3}Ejx8Avw "ltZ]^ -\U<7*GAF&J|#$ҳDe k/!?1zȍn309˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0a@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$znPo $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZS5+NS,}IJ/qg[9Sj8ˤA,D> M*聜! +#XMAFO=zǩX1ǻ.zHӥ}:԰ }d-d[acX%i m=G,)s"g# +TKIREz&R*>몸\ 00Ml6!#*y9h(;NvVfV3/+txeazyJ~ ɵ~3s|G>u${X]K@!<DUWϣ{/H/YFNQҡ%9!$ A}C46W^ZK㌃u-gk>V8P>\Q "% +~ d*X#-}+(bҥG+ pӢ}(vt{?zVZ UbϺB=Zg Z^e G+ΑύUcz''=TzUj7clO)>PŜg4wvdwLQt5Rdx:R<$Ƈ5''p>up2(sRSk2:z\H*]^԰wR>c;/xwF73ӈ@4] \A > +ŲtϜyACBs܄ڜBqe\~y:ރs֑WY"@IY$4k.beXK2dj#iLk(3UV\F7/?CyB"^glX_ +q%qmzZ;q[Lmw_]wH/(' ˾m瀇P2&p'Fz}*j{G.9Dh'nWX{Ęf*\ Q:^FcXc`q`>%agh0֯ 6F>V[7@OD>2^;Q`照Wƹ6P}~y{P@{z> +h!7 +]N&S+HuX`O1z#rY}B9*߾ak./&;&X)734f:v;O=@|4,Lvw +7b?GQ _@~ z?خ>TRz'aX~g^VixͰos3)zL;m}B;`L46 M9q0iO cT ɖwCrOh8h~`!X;iMRR?J́ɸ}“|N8FOj`*slѓlpiyH4`ѥ'HO^Qɕgl sW3|jE|chAi?.3osxr/M +gN~ OC"GBZmbS/%ٓLh !z*&WTrB2Ai|S[M+ܫLnM 0;z䍢Zd +kݍJd'iF6Vq Rt&AHƐ_6] +Us1YYR<^Bm]KգP~{q7*K>x?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)7>| ;!3!z* MuzAz/!UlbZ+>|BL/$/'W?U7" +ɰt𵭧+Z72l:פ[s;!]Ò{VFE{_"y,vL˭?i#*$?GU } @E8)z.1mScD!9^ V/T/^߂QPӄjCp_0HP"G-՟`Xzvznr @^ޖodBfPIo"VC]k<o+y2ޥ8&=FE$m'Y/P[tD~ +qol!ۺmI/˫\toSP\9Qs;&+#VV+ߵp1[8w$& ToAD&ga(M+YҫMgX ,auW~vri1&:4 N5tP4rnPSƧch,.5 @#D;AME|\+Jpj!~IeJ0 zeodm۰{7 Z&vH!{E:JߑM(+Il jγ}S%6r6R6F3ej+n*X^%kD7ЅD3+s4*i^*adDvQxf{[(+1KFWr-=+fI9829h~H5(,lEO5}.J +zZ0蝮C/F葬ybz 98Gsi2yH:HtX ~KdaIya5ѳhi +r^M +ɖ7|CRXw~h<:_9Y7֟@ip#o6%t0<9 cP7NqpRsj<.1M>R mEZ ?FXMJ/#l~MOy 5<nz-`53}_ Lq@_vU(-sYsf)<㭉5sqA]lǩ{<,򠐎k[ɑ|NiNU 2uE)+ ~'Qq^ W0KQ}eka_65p_BY/2˱oj&f9><{!߁ŷ_̾<Վ~(`&7yp9Mk,BRe%"@Ot~foyyy>S*PPQ yTbHDM,k{kQ0hPFÎir$NȹGq{c] gla!%-\טW~c)=RUgPaA`^ɺ@ׯyT?cfTǼLJӔT9*~X3ey$K0EzhNLj#K<< oP`FrLD&bO1F0ICgTI,/OGf"/]k=:i֮Jy6fa%8x$jCI>V<<ԃ8um\K0n(?47i&Wsft!T>RꢞE =%gr,\JT'ډ d0Ox nhЗx`RK݉=Q2j +/Cc}7<>_dyȢEqcMR HHe8or=@"`zP0íVVʉK!)DlzZ/~SK)z +7aaU=x4 + Cԝ{eEuUjݳK,s[b:̪+u՟l2j`\b$E1NnmXg edž}IM2Hq4 +&ߨ~Eҋ5(-$}DPAA4{PS +>J)ETw`3<|\0J"p8?$(`K,nnQy)5`MV/1PcFc\TSԁdD5x]^-'1UGؗg ؄_֔JBSEX'M<_8?5Y@t*!4G,(DLۡ$>.$vTWYEzR'ҡR”Z:rVG`g*I+?' ="Gb?IF5>T3-ElZ!Ñ=5 1j>w4V,4/PX^9/'WErЙDH01b—*Ӡ*z6 +><ߪ~OZ$g蝮AT6?4}i|G0R{`^~*}0Ĵ$g9ƶ^b:.)s0۱XǷ811TBo{idži0m]v{?} '$Y" +zo>O>4灦8` +=_DBTT"X[NMΥu` LN_J^N(}6g֮7ʓIeJ7~XHv>0Ppz+Ƅ$'D|a? 5C;73}*L<)wAc?7Kt[Q$)8C?b"fΉ`d G&Ptl>^LVBBO-@eaHCO`Ӝ ",@CϴK4A4O:2>BT/ C% 2_b^̽8x0+ō;rk@|܈6˭zI~c)Bo.S_Glz5<+5 zG>t~37՞4&$1AŇK +!ۉ;eYMqLLj n-P/S%KXmS"hGncW0rjy~k1dXRX?4]$[f m=uPB:LxstNVBzVS:t)PJrgv,4 +@D?Dy[_NAGBkM"'ZW`Ju|Ɉ6F4j 2!OHGx36L`]X#hZM@;$̪.M<~Օh!aI%HL}l3ɬBh} +>Dԅ 4Dlf\0,ai=Y#h֋ˬ[ rx^ UyCX%$„Ke倰)OZ*-A:vdoMpB٪dTp/\YJ%pUJdKD#668'p[01 +ت ` mmuuF(tLOԬ)imﱪ~U E#f- 商>9 !l",TlZL~dtU_ 5M hMɲͫҭ)u[Uʩ/B7v+/,Za)Y92%e0$!^dSТT:T[P.Y'zYaՅ>ud鬻`=Ts^L[&xDZ~kpTnh0L.½1kډL ᆑ."iQOP0':UWg䡅)a)YZ+c':Ye} Wbo?]{CVX MmJ;WR/zaPc0XkB4}W54J5?y|OJyc4ڒ8(Rl2 VH-: ?Mxuto ;^bq:X> 4j7ں`[Ӣ#=!h-Yg=T_^Mu*v|aƅ;-s |SAhaN +>lU '{%&?᩾z׍؋M%feHgXl϶,@­ S  G.G–8yVbl (EsSD tpa j^r3#cXsy逡O~xRKdN< iL6^N+]|h\KاRQ@ؿy$z"2˂$F -%ޛp8x,++e_"AL0""B^`1Mٌh, Hd c'PN">Yf%ɜ>]T3GwH$dIn׵{n~"Ǎ?sW>9g-~?zT%mTzvn?[4O|KNO_ϸ%nB~ڸV)]`[: rj} wCl}{B b@%"NN1geÌʭƠhм|=WڷmtV Iq]{RསmuMOxpe|]RE}<.Y>#6=ȏs8I#͹ʆ$AL^szU%uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85+3HpZt&/ ξGx0MAM ]Khg<( ?@c^Sˊyju.5%l(:J4} ʾDq't%3Z (q>2-y +8lx_xk`bYHJ$`lE9A 1ERWURYH>lNA,flr`DB}SJ^Itz 2}`T;uԬ&"B9ӏTHWB~A]߂ߢB!S<.Ce(6@BOz 46.;E% An,Uta s֭7ZʺFo*W[u'T]kU鴈c^m_V&\!X\&Y__+Wo=5#v+XCF9 y&lUSmZH*/l +eZ`LR'5 +rpODK~uɕjsΐwfo¨w2~)oHUDy;FN!f4wgPP6y։(}2kͤ$vU悪]Z'|>a#wJxw UNP7򬚾8Ee?GxFNt+E~'DHǒ"GbRnl+;w1S>c";##@|sr93-7kHp{AtE=a@y>˼1k[Yf'37|nFN+6k'%Im VV6-J÷E#qKCZ_Z_![[&Y\_/Wի+- + R:#kU͒Ȣa":ou!LN2cwOm~`i?qo)'90) [E@*w*4Ji/54UNX@Dg%uKƳF'QR"`YG7  n'..g. %LjatDJ|S,q_u,?U8JcA2Ck7m"ʝrSc7)RV4RowHG;HKD\|.ϰ(*~8 "9Q-k;iĉcit^EhUOם4jWAqŤ7j]ƭ+ p0 䙸2m^6K_0V_jɢB=g1pg 1aNvr eCqě-XѫpIzp,Q$$8W]BХ@rTf-r\Ïh[Yo,x;5Um z],>Ody7c؁/i ŊX`j'*j}: Z]Ziɬ +qqqEz$1 +L4l.hw}Y𢉵` {P]trLzt:f&ą4za2M;na\SmLjy.;y \EqbjyFlͨU_bhEhT9г#[ЦN!갡Li%21 ߋD%]t$@Oʡ1g@-jID& +VJ-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZq q;!\aĶX+M`gkRp+Y [ѺM[G(8m~ o:{ݞK+yia|6X+S#Hyx?A밵k)jl 9_H<30k1oܸ@3d+c;5єI{a\q[y[ +QJ0{ԑKK9|\ShGwudѨ+ xJK(g#4sc}e.92ɺ:Ra!mRx5^ =s,7XR }A_6Ìm }D57Y5"{ Uƿ^1'#/ f%ᤙ%|H6 r8ďXC*`-AO-?CFJKE*%#㝏Q ebyiqϢ]q>w^&)l~oZ[ +jWY +Q!$cE9&l-1)`7:%JI(gURDLB /灤y"z3!-d\\N4:gP#Gz_JΝbRP=הe%tN i<.BNL (rUY*|ZO9 #X@{Omq»+ˆ@6!ƠLsWa} +0N\OpGࡘ(`akָǺ{^B'`I"Dy90qxY@}g\@,B#pCwȅ"i;(G 9_UH~g&ȥuOam0_8j{˄!i_x"d +3T^q 1X"O\6eyQnn(PBbK! }z('1 /V{\lp`Q[@ciQO4hp,)J fwr9S-"@CDdSСZ~]SKO\¯!Koa{ ˸ܱ??6&[öu[XVдd輴?{?Y-~`ďUG,+se$HU̥1eyƀЮdOET dv&\(/zѨ +HĒMW++ +G[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY h?I1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)e~нP_=SS0AUUPPPvճ8UOR + XiIC.I=+2f'J7/pLC{Y%R/BEIH@ :1vO tU.8LsPc4í=qf ֋6P :H;I ׏վ4 ˬiٿy#ͦt;io1)\[ f ~r%r(ҊH(.}r +Gl;wz/?q|)zJ|0T_.eʘ򯀹S'YFymQIE q( jI蛸~JabIIt";6bɐ4S@ &зIĴ%{4K$~Dbg!Ǔ0R(Z_±5S'][5j%NHGYXEugl?zWͬ|_0a~Տ'-̚I($}f!M}Ź1RkfG#0xWQUȮtpw$$%~|Ē=#C- |e#ea)/ZHx{~ @/pDs젞Chc,ީ̸T*NL."T"v/0dP(Q/ %wPos2e"j dn@'p͢}Ɇf](_r\d,w@WʁqiKI%n,c[;EMf)V3 +-TSU䯇O6FOpv#جy%x(}mR5G'R&Rty'lpyOԊ3KΩz-Vq5`aY?i*,P2m5K (VUEGB(]HEJQS `pk`nΩNz*q$mOBܪ'.jQh1⩛)FKVg_: ރ7]ibqO\le+I-k+rhG1.@{dȧ(vQ"?Wzc ,ȣQ B9rN鋚E 2%,Ejy𨼨Pۑ |::1=Aaݴ3PH %;]7E5=V`` XÆ`[ OK˫,Uoq1-gW:mژ53*A4S7S"&M$.@Tᡁ_#H>/OD;i?2z!͚Yi{(ZH(HXQb]v ލAmCX\SOdWR&YEO8P.GڵS`y&v|7`Z˿TbC% P]tC9q dh#"ȫ[eNˢtU%eK2~欍peu2k̙;>uqͺYZ* 7G ao_n{6qovĽHxKrӠ:ב4]p0+,0|snyjʰ$EOEO^Gϧ(xLAm{("ȠojydIh +53uVg"):0DC@L/Ϡ!`C}_7$E2\K`yTn=ϞKop1U3.a~ ޝwO(ɛv"@/V4xr.VIAHs@!tڅw2Gc@, +ݺ2Ω++`A{Ud$D7iY"H?\ KĐ6kdO;&r(0=h:0@h 6Z~ yvsHZQswC|O4nkk"e_2ϞO@|YT0>Xw7M( 1@GK>ْny/ծ= ?zؓMV@8_1V8Ol@PxQA^:|Fo\zwڗf Me0"EPY]?u޵ΐۙtx_5\+v#Zoђ>uֺ',mȼq>2LrN +9h@-#csOr Ga_ANa&Ehap26AWdftyN.LƷgvezj*n)ne^zr<` ?`0e$>/[@*u'߲:ڋb9Ad7i5;aOoN/0W ml"dKѥwB%Ca{̝ @4m2Wh5{M::MיT֕ju N 9h x7 8,~AXcj11<6kf-, y sfG]}"['S7濓ְ1awEZ\/֌rϟT֛rwzYPvy[ʼxL5fҧlTTQ*W>Iۜ:vuY͖hKٗɣz =jMe0Si#I[_?zW@/Uewr 1L=8_oq*[]G/˙$9ɓ +f,Sxʍtgre ?l_iM8ʙ= ~|!yߝoX@l7EYA}a}ř%G<rNADA~ϾѠ﹣ڼ53N +$wC[kb4S1~${&hx& xҌ. [}͖tCd09 >h/ym!qk tSqF||7Aׇٲ`t:MX]R#99R G։QG7D~y40+ 2g^# +txcag +RhrCDI)0 S]*K,mȼJG@fjYQ;sO$awA"nI?f@El^k,5N (  F:rmr5G`qCQ!wOjݼaa'J?Ģ{ծT-䘓|EiHOg sgi[P{ vf ;>S=Y?*rít͌bq* /TF6?O %*0ZVnp;#|}"zOs螵 lE>܈Pu~ +8^.itQ{ bǕlpx_FH0y]WqV)`ƹgס$m7/wU*bYtrX;CKQE"(C"!!ZDP c h{(,>"lI6_~J'0`!_?|q8_Z bNߧLk]IcJ^9 xMa֮ &1h;%aFC%9Cȿ';l𲬋(Ng_%jb}J7x<#չCkok(0Gb}41O?7Ʌ^{b. 'qtUVUtCs~r+kJKҥ Ka}Gyf;9K: + k6>漏=w?+sW2wٔGq6zEo/D:yrx2i1mO4bp=JAg3U?Jρ%UmU\p톆Bq8!8oOsc)h|g1yF{ rг :'_ץ%g%s6puKV[!=N_r?=Cg5.ԛgnS?E?ith.->}!0=O ؆*[~VwPeg<XQ߶+=/8' +ٶwFktxN68{ 0KUK)Fb$Y c\.خkњ5;1v(lA/gųfo6n;;c{޼[&\]///)VXB]VGx7+S?vslg}}8pK20ocK~z#itѹWKHs[qÿ7 wc5|ȅ5k32O;\ + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHk[6D!D!D!D!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orqlD!D,!T + _2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`Dv! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tnr(qm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*PD\ +(F:'*=ȆJDy $ + + + 0 n1Ap<T,Pq0Q[B-z3ZZkHغ~2AD +۝{wRtu(JhWv嫮ʼ̻ #9˼M/sa$zzw{wzNQUQ=ڬ>EwTߪբj}ˍllfTݨQQQ9r^]:]Q7&˄yyݬ6].b'o\xBrQi£  $O0l DcrOCB@ cZJPzv_UܴE,ҮSnt׏>^tZɆ +vu C(\LI|;wT*!*[ upa$ ajT˨J(!T]~ח+UJ-S__0jT__ߜmFR. 2PT" 4yXx&"2pXHdNLh6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮybC!ʄ #QSTi1a$ -%l07,SOohf?j*D'L5D0Вz4ĖW -4&h`@F/L 5r4 A #qIyOUXDؓRQ"*(Q^m #Q6[Bjk} |-3qWaVb.ۡ;U{eNd֨onjh s;vӲ<<"zimxnl|O=׼P;eժz[ֺk%dXX"B+a]"Į&*L:D0@hqS#zKPQ>IQʔ n_ϨpadϨuQCQ녑dzLԖjW֮Z5)Z~]CTNk¤vL-]7v Fo@XȖxh6/(m{MQߣ%Ž7$# @P( e1@ll<\:rEa0c  R MQTqOxѐRf _Kt+PGulքu/uG,dR'i#'<t,%#޳i.\?FFjAr(77+*&kOŵ3ฒ}O!v@)QW5p^+'X?8dwSi Ce=Τp /a~ȑ E(m Ao}#%PH%'CӿU,×^ԧe`qq"է^~#{V7`:!4̋c,?__SS3ن=ZݻZϺp}jv3݅@3."_~ r`޼pphnapBQz0}VWSۥ) +gbǟQ<-> Pn7]'7<.X1t@hIik7R!(8)%By u%Sʆg9Mhh'>}jCj}3#)In@!r\1 [TN[ڵC4:Y8bjV)ADs!Z E<9C %kJU8O5Od7 ;{n@YFwN9<厳 $J;4S'O M qvٛH0E<P]{/o(ؐjWA,:MLZO{ưĠEzi-%=S#;YR*w +P x +"@ 45( "7ό;E($b'e)q)IoO+xM)P`#Na{A&@%8^4`9^6I JX|P^)eHAj6Irk4GAkj[ǁ{ fc)G0SN~4'3i0}DF/y DC4IO^xr0 ]2h 2;:6+~E/,V6֡h +"`qu?>' +~d`E37́vk "kPLl|kI8zؔ]x0?¿rc}{:AX]\"2q@=?oxCns1%F3·"?\5| `XR . L-ndo\feq$LMB2KHaFJ0'NH4I0 4񔏚r;(H\31t;!=Q;1Ӎ&༹n%Ҽ>dQO\uI|ky-s9Wu 20y 9ezzIHeaegE{͋iI|,9x9 r"^* ?NaDocT1JvV`ܒߨM5_U\9FaL΍%88%ÐOh .2 +ŇyHmN]t{s/a|zDذ^2ӑ(tȸ;آf,aЅ=+vo +|aUCgHh}t +BsGK^nMF!g~n;-~Kĝ+0)" k>>R9xܶJZoBRy RFhcW0vLf[lQ% qO;dD^[ d`G+e1n˚ѷeeB###؂(ʘt#E6 +3`J\+PaKi{څ"mC1eLes1␀WѭPYXeN8BTL%0O)#mjd K!x'u)Q݋ 7aBPX C͎q)$ӧbd6S_PpH"&1=b3^{DYPOMpX%ļD( #便Z-w% lcoqBCR.z2%Vo,?"wE7dr }P}$^ /P ~h!=mY$9T7wƘ >`L`Wg"\*"]Sm#'pJ˱ZdUu$k=ӥk>;.s 0i?[qSΏQ8\8uL^I7QFgZTba/=~g9T9 (#`KxPrA#q=\h}79_o 16>`~/Lam'* q2ğetGSl'}TK +Xsa+~/Ȩ+\uՍ酈v?I#J%g:2Mץ #91%GB}Uc }:Aқ +2ޟa=]F§7ۮh0ׅ3BykS MD/"L6b{)n$=} NHaEff螀;u|,;SE<4۟|AM6j P qx1+8BS lLk@#l +d\Xx{mD=@k}-O +DS5qvq_=X{'Gv NE^H38.BQ9-IL>yYp5$pӃ0@,ߘu78ldAh+ܴjمs +uq8TQ +Pb;ڄM.8rRYzdTY@=ΘfH!dWV#(:Y6 ,`xk= eh׎,II/4'(J;E}Ot\/ _<`ȭ_y){¨b DD$ZsJWuNJV fq KϷ%;FvHw{b_`1辍^m`4NS^pk1<[DD~(&o?O/t +]?A=dFb)7X*Ǖ[(OAPtm/ffK +04;;Vi$6 x2)eBW<^=S>|Q]/>i)paB'œ;2*2S6o6Xƈh#2mrb2OiVpD2OF~g.1{k\`B5 *ՋI0h SlyogShiO_.BA 5>o "lrNj*&.h*x--FٜF_4]Zqi?~12V,HZP $ʷH{lyֵ:1Ѩ3_jӥ:׆\>fTS*yڄv$긍SYu`[ֻokF8}6/()IyS%0s6+ ߌ"dBqÎ/rq$|( +R#b$6V$(8dj]#2ya.&#X@XØ?ӱ.IЎaxu;K]8:&(!hIrIxTN- +0uf4RB[?N|T$!&t9N^T\+doIy_Q3 +N5`L FUVR􉃋 h` ,lCÎ)|j'+qgX :gwsTA&%=}xb[OqicgE1ǝFr3&.[|v@kw5cL߹\#ElLSڧw84 t+t)78wuʘ{j- &[u}R>hX3x:&mS}Ȇ(ٲ ;.cQ ` +MhpMCO`zBdh˾Hԛӡb,qMAdVW2-=Z#݃_R꾈:1aԎJwTU%%6X/ް$Fdp +]HeaOJsC@` +š"xPnRMVgCG~VMFrtT lp +2iRWWJB"rNN=#nDp;z>&_bPO!$bhђ3f],އa3mD FS[ք9@{hf\Q?bC{Xf#oWIAldoyQ.L1^5BndAPÛL.zTwĔ{/1'% {C[y0eìy'|# GHmKw +QهiR/ /%\M,r=DpE{a}rh>ܰse JmRB<Q%8hf,pi9$;F~Hs8Hx3 +nҴkG%_.d94$s^OFάJqd>(kP Hzv$^ Q&tS %B6J'' #ݑvbdr=vgVS^ gZ>dcH*xLPS1y+B%/Ւx~ryf4 6N}[hYcB2 GS& ȏAX +HuQw/@T`%M|FR(Ώ^`ɼqw r$8w'k1$}%Ձ'}'Q0@٪$ }k59\Xk46|%:C@?2%դFe`L_B?K>G̥]6c])Cp}oVה券Jѩuڬ&~EC6%H >F-ЍאG7 I>*þ ;>y^HN*i*_^|erҀl +؜HTɬ)aHKB++35\Ti  +lciH@&Jfd?Il u_ti{Ql.WoOGduUN}%Eelj37BGBx^ONwDW+273>mkLrƩd^tr9BSrSq}$y"!Xh^$7 D( :'6R JGƮo m-q䮑W?f qE]֘N/-re>79E3 QC/*^3lr ;.Orw2y_M* Fj <ǘ *|%|p>0IryvtxǾ%^00FM}d nQCG 1~8i5.2qGeavNKuj#H>; 9A?ʹѓavnjìU_r+[,FȀeu!i~|M߯WCexk<e/Ӳ8{\ +{8tpM٧,cB F/ؘՌ4&ں!k>m1Q]T/ +( 8V\qjVLY9Bv e=^bj4bU&b~߱ʂe8rDǫ,3yj쿐>2[LL21Z5*־5d2>stream +'S6;жgO Wrǜ㜳aM &GjR#rzQwr;i}ńɥ;8 Jw}P 0Ѳ$D䜇tY٠P ƀU>.\Kؙ[`ЦU~<ő],t{iPy'DaHbB{%R\t()-CtKm ]%zE7JD&",ђg'Lh -RjKfg"kϜ~[8++!Bށxdd`}JfKF]la @y;?i, +yr}싍;XiK]b0O A/f0 (H3320l5# t(P%Kb%k6dn /-w`csL~y$5bk*sd<5k06ҳm@Mi!ǰCsRhLh0FHBRry%ڥZ-UQ1[R|aITlB>/sfxn`:ҹiͦNotnܘr+H];m>8kGdDg=;\4H@ 3Pm33Cx&K$m^mpsח;ם|]kw?kW6WBDf2vG\QƽvUwz_]N̼߳y)*\\ܬ_|g^Un *U  ,$i](X,.D!"JrS2MY{űmUW߉,`x -mP25ej2LW.n_QHnrC9p 7qƓ =XHd'&JryLdP?YU7M* |Qɩ?xWGDU{fcz:"jY:Fc^Y6[NG4ʉ^wYP`.lATw\܋rFkM#2i4 DD}!Qn$L@BxڅY \E]" ('EP.1$IQaaV1L@@Q)BcC1CB 2dH(3X_d"c#oGiz %= M|jhm@e2  ;_NLXPY<@oh4S!Ŷ 6N3sj7{X`aeIƱɽPQj$/1).ۮYt1pb_ݩb2ˠtPq6 Q]Xj8,7 q0el yOF"* ",f:USpJt+ۋģ5)#_v;sAtY5TB9Dh9 [@6ު}Z)ipaBI0uVGV$GZ&(:^׭'l?I3K@#=xyt!Q8H7~ d+W-2螪$8v<'SeQXS2z{|+&K@4<.#E0e8n!g‰ tO@l4|\DHqضl.Gɀ+Pw1U5XID=m+/o-. oo0+jK~[6+AOJ*lAB*(l3WzmvP=G#]k)\mtk跣;+e[I @&bvK5|1QĩtG zJ o'j)](nC}˻,;P虦8ilSey@'&m@\Z@$KpWaEdwh&hFy"%ЗnogfʌfGg{xiFw媚iNg4C!"Ls1l1m-gV͈D۪Fռ;9FFfIʧՎjggyZB/G2Id^*^WDR'ݤF5єjgqtgh4%.eF6:2q2Su[SC/[W3}eDUoKb9g㜶,#Qxv8F_Jեgҙ3Ҿv32-sщڽuid]e\߭L}3"~Rj]M񅵧jv|!Y*e2d'\yi%z7WkB4P`g}zHFO Tdͅiqp|`D6pT(G1uh& ɃN)RkOnhe]<.-^Y./֎gyjIXzo!ߛ HG'ȨP8*&("0& DBAБ`BL( H!1!bAQPp2* dE_8F‘4HHSTH& *Bb!AaA©@>ٙ0$wI4 +D&瓌 'BC9 42LtXH00PDE"b1P@RtH"d<(IdE P,L HDCP8`H*ĉ ƒĂQ $ (80!`-0L!( H<&*If4VW\u',ײnS{w1ٛdheNI:ӥHv})y~B#@1 + mBRCڸv+*zJXLmr:2W2Bſ+?MPtT< E G)Kk7K,#~g\XZwNED25GȺ5?x~8LD5BӚ#dS傰<u#Sq鯞KVP( +Vw_:3xjXDg4 O{L T^QB&< 1v15ϯFTx#bseƤm(,1s{ӄ3!l^O@ h'@Mʼ>f@mL'Dy#tٿ87կv>5c +bn~*3b_C`K@_#D_ľ}"W9WL`Law| Ea9z܇B9x6w2YF85V߲M?g(9扌16FN8Z%$ϱ{{CH +9 ]m ĞhhSw-%!wUjSRn_ʭ@lY_Xm(^e눳i ߤX4-0w\C4#e gq]ҋ@txQjW9~lk֊[ ,bK֡ + dZbd?@:P`!z7Hy8;(YS3N1 dG18gB‘-N%CFA]RoF1@2emYӢ .{슉&I}-n4) oJ<6y/'Dc +i]I6vv"vNٰ11>f)h'waC":d&h2BgS_cw* +Jܛ +TQv옓 oKfH݃5\/@74$f=:6L0([(l;FJyAl0 +T'Pgt=0 P6K8YvKnq>Wؖ`|+3 7z#x;CTTFLB +,WoTK8:"c]T޲3@rÁfḦ+FJ pefځ_z!ʷ,$ 頠:C$|$.7|a1~ +rrĭ(Mk1L;8$4=2^ou*S\++ +\x jQ40kVa[vVwc zYr1rM8-j(O) o@\exhry+^1czyϑSЖj#-Vh}0PgA9B?̟2N!N@6cī]#{orpnO;zQO*4CPޡ!J_!s$|"q -WqܰՉ Ƿo轨4o6dܴJcկD1E r{Mi*H> +?e &qЬMQN0 ,Ud(Dш&Gc#0r"3gJȥZòVmY_5'dҵy S1h!0hc!\\axc#!>늣RFPB|$nM_4+PԴg +ESIm)O"9OlbIӼDi|%@8#Iz!,IW{@nn@O hJ肘baĘZQ$I9Q! +2cC"ȡb H1J)1D H 22"2$|Py(DEPU^FSF@[Nx5ĉ|B;=! +BT>ZqO"41+*Ƒ9)ve߮D@DjtfXj}DwdbW2 7:!v5 uWf0P:_+]l8E@=R v&eRbEx#~ K8Es"P IзOx N__:FrA", =P&[ _Gռ>+) =o|u_H%n⬍]^'1k UsuXmCwS5f(l/P͂!9۪x^aeϷ^+rM?0 mY;j$"͌6.o3|(\e`݈qi$SC?`q-< "Ю(7%H1Uzqql?PO+or T"5$'cPg&uvÒ'K"vj~A\lBbr}.%&q`_XеC:.LutvATTmK@?Tx9YTZqM=Γ +쇮~?o7:mX؀)>yc`\R%7f+Fk0[@J&)7?}OY`:uʇUYrH֮8O tz`Ps>ˌCր eE6(}:qo\vsz !c8DN>~J1$G?[u.f@PcX&YmL5yeMԠC9+ IGWHQ*!Βi\\*#ɨ`Yw:l)@U00#TJL=mXɔLI*5c 5>a - wVXabmGULf|5QׂZA1QQk̓BA"FBE4:)Adu* 92FWaqQٛ^ɑH>RR4k>=gA󊬧 XB1=uv0A:Q5{h< (/r٠Kʪ, FAxhUCV2ƙPH$B{\CO̔GXGe._4(:W{itD[&%~e{D7"xZrW=G""3&wc,9n/+nGڟgs*m5iM-\ց\)ofV')49Q3&G Su 9_-qJrT'i4G73"e E\N ٞ=gQbW5d瞜:dP@ p&nx"f4IÍ߸;TE:2U3g/pE::0ޜUxrwUM؇Ŝ)ԭwϦ<Ȧ }V3vnZ入!' XqYV;1~n\CXR!S\~/*Z37b0Õх4(F҅^EQ(n"s#y+SI'v&gh +dsqc 4ַ| 3";G3y<d1F1+* ,QOtd%WY}YU]YATf3'@SL}L!1]ߵ2ͫ5J ĬptFЌJ\|fG_Uv7*d  a'qO^"9;v39jMz!v*X;zf5BbaA(R7㊛Ph 5;ceK6Sh5QHk&\H~ Ѥ@Lt`M(g7)qhdlQ }*Y~`!WUD4w^_*Qsgcq7\L X2&#hB?WŸ:̦kԺQ7UC(^{!rJJ%rNF,>H#FT7n4QsϯJr297qDZb:;T"8rg*!.튉ȅ<mͩ@2; PIbX}(^'='A N N:AA() jG>:ZJcP't*(ps>sr6>d2ǰTAkDR/$ kro_4UCvG/zStϜ]L|D$P;Mw,rP*Gav6ˋ!kBbwp!Oj/ԛ\͚;WCRG{;1\*7ˏ;۪vUMϤ| A9V5#s0fZ5̔tlƪJ݋;s֡UK {u"ˍZujV:P *؀0P(@6@B@ \ @@P8Ђ "`L̀"(@6@ *@6 d@( (GEbWV&_赱a'h+؇\9s۹Tb u#2V?1t1E$ͭ+%#R>UMKho1cSMؙ;fbwWC^ņ7+NHzʷkȕJNL<d)eՅEr&t1׃@4ܥUܐiy@G /AueFkѵ.FwH2*v5PtAu#q&#;6){R:G527lUcw,Y=8= +5ڥQv* Pj_&LyّnZ[iW.(TT<S[TxRBt5+~e+j D]؉chܩ'|&A nsmWS?4TfusSNE}'G )VG> D4-\h"Fv<#rJXd5sfN#) P}@ûD2T^4Bqƒ@Ӆ4UwPWtޓA(2:7N"S1l.D9Ş ;۩^-ed!7>M'/DL+ Rxt IO{DS +D,i=M:FǤ5wz|:˜=9Zhl>Nsf ]\H X>"71 4mS8TDFv>Zx +vSJsTŰ,3_&LnTJ"ljύlXԙntXRg[:>rg}3H1+~O53>3 y}ʏ!63磧%Jگsf?f? + 'e5S5#^4deI銒S(&1ZR:|AyFVbtFՠj!ؖH#1FX\ j|s6f3#-e3=rTacvLtXx (oldR6{EћƸvXɸ~ S8H܋t +,89}94'HșjR򔂧K:VŲ\L"\Td.2=9h`ujD'+Գ4GmUGi2^bLM-e N.Nw;O'8g\uB`T:)(292" ?iqn,òƠیvaW*;;ъO>SeRxve4U^ZY_qܫv=/񒲪LTegHsakqhaTI]Q&\ay|֤,8e5Ό¨lq4Gv9AHyQ1ca\ #k*쿧J3FYH TFhbYj.ʜ +Mƿu`ՒhꐐMUA8c$' W^ǕmG5W +3Eeŕ> +Ґ+W;.Z#Hnta!WhbS2pfSUF:=Vg@%Usf6U3F+Zu7y\2#LȞ"]*ۅRQD)E<2O&BA8IO~iR-ѼNUD&RKZrPYj NKʫŒ-,B+#) Ĥ20R#qA݌a{jCfؼfu*NA+#wma^oJKĪ6ςw*J*su[asc *sBI,HM7֠J3x{LrF2J); ɜY/rԑޫ[HN$ 2X $}be!Q 4|hMx91*E IՕڗYL\5F 6FCC]IPp.2)1 l2B)̄*gEaNlWuGσ`VƌNU:]c7(W"҃P{9ޝ%hj>lUUt9!t Ɋ/2.1D'ѕwTwTPo?]"sZ1Z8+ގQ.R*MV<%[ Vevz(%_2vwcaփ`1=$S'MfXuB2wwBʷc 'LIn٪1}I;f/yl+ r8 PbaOdK9$Fre_E3~3E C2t 3Н|毩r; +yݔC!geջN(` Nb| %$C)9{C"ks!rjbBA:bѕWR2Ќ#ҠSH ԍ@_ZAM:7[Tv]N'Iܛ1YYŨ@n0Ӱb,'?/IHL.=!K~+[ާ"haRrR6JUHg\"spFK^Ov57S:1|S1k 0#i-e.X!#{-(:׉V*;ynRTRkBD-' d,ڈљޕX"#!Jl*l2\oa41U3A}vCvi"HFÚ 85 "STٖoo9*Su,׍dd{jc#M#8j!f4!j!XSllhU1qTo)MHN&j͜YCk.![2UUÐqZNv*x懜ygVfu` Us ?mlFg}IaLseV"*1"0V` 4 )i`3D`)0" " @*> `" &a@, f <` ^ \6P:`l0l<` H@@ l a/ !JЂ@&8 X( ``"&8D`tXA" @@ـ"W@` @ ^pXc1XA Nc9)\ Ef"uTP&-r<%c'ܖ;1"M\)ԤLb<ѯE/Ҭ_3^hh>kprFhp)Ӣ>d2{̐,gnl<0o }뷎euSkK&XhQUw[af7Fe-2e%T3&+JbՏ +(lLZX. }IP=6}_{JedQ~0=4>ω6adu]4s4ɋq%>BQkFeW@ɢ{:hG$(\M&mDޢ?v6<; +ڑYi\ {;\VS d&/FZWeUÆ711u]Nl&g;bȍoOW25էdJ&.E*P}20 w0XGh' <3]>LTQjnj}UE{%D}NI8:O0tFg6](DGOGǢƽ1՘ɱ]5JhӳlHh(dLb\my ԑ/W;/송a0ܹ%K۪_'hȹb>MuW.Q}cڮFǗY[2Q5揚ё+\6dU)CٚfNR~NHC#XVj\4"VX)*0L*_S,4aBuGcNbǿD~w'ĦZϔ9s83!i}c$$7eg+tN.B9sgcNk2Vugd*/&fW:kfJqDח\%x~6r4qy4 վDH$G1ѯ0 V% u]յ<f_5փ@"ѕe-lmdL-![rOF.Lz$ޫN"6*s*7Q̘"!ZbB4BwH.Й)2UVJ|5/mHӚF|J`Sw7ƹkJrn9 #%3܈Hm\$^2kq'ΦTW`T}̓6dbȽvͽߡ\Qe=D1}"MvI>N}JV.l. +pel(~WD]ca Io IWI૏9K]bB&a0r=xل3UbTݐBsд G>3/C;MY&;;E{ s1; ۨV ~EObMTV̩TD;.IuءXKр/ZnG3F鵾"Tt١2i07BRSe;;h JkGt u*N 3S.Q5*`zP)r8k:*ifnj߰5<]g&Vt:FСۈ, ՑYg͝DMM?5U+ +n]đpaAj*߿DEF@zv:~<62΄Z|AВRm ބ%_ +#&*(r_ S _eWѤUܒ˾7 +#sqWY\kZdc,A\Sl*S}0!!:v@T&W+D7V*RlD*m~YX#I%_蘘^VKTQ UEsiI3G3?Yqˣg dQ1<Đ5ˮ4U2_a \KJNT)]Q ȾT&)}k +"BQPS{xRNs;0ȸuI<גru>[ M<r)A#JXzyɕf7 +6s8Q!G ް$MkJB瘝Ҩ~-&F鬊X}q|czDy{I2`?æ +=推&{#[ZNFa f + 2Q?8G)W+{pDC9k렃v53+ʶ}L).Hg&y{FK\;%]J8*)Mz.x.`;1zѧ.0Aca.3>gSU5r\0jK]8DW7)3,ҁ\s[_L9L0'Oqyɐ!ݞb)h-4[+'S- kowZ]E[~gm+jCP[ٽ:EX]!xk@AҝI4j]2H& +lWvuuzn511AO絽J^^J P; 099[aҍkMpaK/2\`NXhre:#rvNTQ{ +h`N5$3yJv1ܜÄ^TcU⏵sd +wom~$R`bćb@$zHnd Ǫ3ۤ0j˾ k4"-> @f p-C&- ~EEf9bEee +Bǫy.$}>BŏRa\~)T5?T(oM1;UA~o@W B[ڨ*-Jm$%юA-X')RztqbE:Mi# 3zi9baie}(J'x\kCJ.P]JY 7^RE1~_ B|V͇&p.. 5yM'OU0# pa=ϡ~SS$;YDgcᅠ:E~tglaR(LIUTf2Z8n%nBCc3m g&gfdvy کqC8YIej(Y.St&| MjNmZ)NmArn"%SBN.rαTF5尻MѼZh2'֬@8qi0d\ęyyaQCŦb2|nF@G)筐mz;d 014U2!槛$$'at=T:y:)А((Ct'l4Ru"-bbl>A[hUqC,DLzA"pwiE:.%G,~Z!#_?.1 E&rQ%]p3ԷLl^{h U,Rĩd""<эzXEHuEtgT(DuwIIÓRay2 k9@fIױ-kf !m)'Ym̼੝ ;[B4jQs!};NDqWcb,9hC# rB%2-DWekP?L u[ў+hز>T"`r)b?{ڑ:LC;vۥqkpe.ST L̵D|Ex(q{JcjsחHe/ZW@,mW_1#WY@o8epFO +_ +>oL !RZqJkNẇ>[c4 g5d1ivi$*{b϶6up`وGCqϫ{̑D0i3cc9.yFR'=a8;qVDyDܰ\gQ[Eؚ}Y|F /ɧyІtѻi + *Jd +GTd0I%kh%Y: P +S>=3痊%哱9 [YJI'# L7FIC^8w D*^qeK/ `aPUL>p}LE…v 8Wv])|eL@! +5*^qlUI%$ycA[=zc#W, [o逈|Oa3/k`MVe/P{grP\S2j."Ezo2w1. +ٮ n)o4pE)[׆$]S Ӭ 1"j2gVgHVD~+bAᐃ>YTatv UlZeIWjпa 7X~L*qCd@ >CE5 0OQKB Kجyxad'uI 20PɗHF#1nV(טw12z2afB@21滼G d1tG"LZ?풀=b•ȡWL;XʍR{4Gșhn@MɄgGs/^owEŰE+ +.}R6ھ+d5 #IAsC-)ߋ\ +ZPbOܺn= J +,2EiR} 4ĭ + pWɔx\ԝ/pW; MQqb 9h} 0U(C6>hď5\ME5fLFi@7m|GܩH,kB܌e)b2s5d!`M,B| + †u"bM0w0Ab]XX;<Pq! ʗM^t!qIouCLb}@ +}ljGT/\pmÀ7չD8 98{mGKAܸɴp?(s[*4! o o_"^Vشf@/OYcUpI/>`9*~$WQO`! FèaExsqD%vMDC֜㓡 WQCxXJpD[D #׍h8!W&rMch9+lٰvB"7lqUt*$XdF'+qN&M=]f\jg7w4|TP'HcIQ!3JO7 +Pf yVwJ c_q\/e>BO bxr+ҥSvs;&J,݀֕H +-?7q2bi *VV#ɸ#XrDKYĶLb.s*]B!J7:)^`pz߃ c<]X,q +_O upAW m!ĥŲ/y8J{6}8бci,#(*F(`W_n;2('LG?=&m?8) % +Ye%>M2MG(:ݳ•tFjn5[%B<Hm bx8xÿ#;Caݤ)֦87 r]҄QaƔoxfW + ȣZTѐ_EY\<%..Jd;,BUIAPW% nkJN88Uf:$u<1-(V!b"`F󜓠X`nLqw<xjEBv[LY?1Y i3u`tawE=h #a&t.Yg(QRfR+: 4bs)Bwf +@ t)k 9쉬 `+_;kf0:1 s7VTtgq`#{W0.X @0%F‰A5pWӓh'c̽lg~8wqiK +-dZb*ŨG4a_W_/0SoyC"!j 3",7w}is3v.L<na+k a~QQMKX.8%i:5f΄eĆ:=x[Ǔp94p+̺} aDIfLSXj+oRA4Gs+F6fo罶V`xx 'q}@~R0+ l]jÝ)5ai /])ӶA[S֊Re_ۥ$AϤBR{Zf3?)&"t.4#7r RIIpv<]g`]NnUJDيW΅48Wiޠ9X1䎐`_tr#ٵ۳UM/~CcT`tҞN|z!=\n຋D +P3®͉De̼rWqL6AMDwZWR#@z:.afK.A V?v?/YT31p H6‡n{IK ٗe z_PTjNW D-{<)op@FIIol38%@ΏcߏTj(bʴd6'帪#~l$JkI[eNlWX +qI'p0}3*o{Orf͑p= FLfM-ZaQQ7yxw&ۚO(%CwC xB]S.{^ +3)`rZvLz_9ɵ!3IJuc.40 +mQ{ +o0za*uNmDie)+> r.+k~Yb/N$#eE_'!TȨEKsd)ZN{)6Vdž˹dJP!P%1&Q*,g &M^C6 +DldO8F[HAV6'(&>€@4&gGM=n5w~ZpMS&j 4'FZv R=@nhZ̡/Cq`&Ց:jA}, Sp5Oq1Dh~QP_lQJӒ6:D g; >L$i`O_i[c)33o +a܄H M<ʒy&6aYZyfi4],x2.[;q 0mՐBDܮ-^:= BwL &l_k0|.c{l_ +:ə/怪Cf@[FDXgkpD6QI9ؿv7fc +ņ)̲J|y~]#%C4Pn.M\,Bc"/v1&CyPeF`sƘUn%z( +mMI DL`AgmBsB|<+ ʲ .PuŴ;vt q$LRz+yc &I=|<9W3Bol^^-de,<H)|jTŐdfLH&.^\AuǤ*!~?N]1@"F'~'pa&{&p+*DK@TLPa) oJ*\@N\6L'b g{)v + }HgCjH[n\`"8&{=CoE$,p ^{|#]@>(Kb#BdOVy[n$D +Nx=A8`&z!)!O|gKH5F¤R]H1Af(3_z)8-uHK!/z59'Z~-gBs $xJD(<[3A1pY +הAc|_}Gi +SQ`||*QeOyvdT@HC ^% rqn&(B; =E +īcK^[Wڞ:{0TEI!qAE+A-nnv +#KZVQOc/Z*D;CZ"J\}"='֡kT24#I>%',yaYZ[0ԥ[[6g +r\rZA=_c;sj][ˈ)udYO)XgqtV˯*ժk-6o +fRKQ|uLkl@=(1lA&8g1<εzD@TwU+Ӊ.Ey\ Xv\37(V2|m!EJcQv`%G.Х{汫q Ķi臄H<:㊓3Y6^]seJFlVX5"Чd@+~>dğT>uqb]k7DLUe(s6cZ'Oһ[qJJ@t/Q0yC܆(ib_I\T[LdW_z  +WcQ>|Z72NDOԶN*K[њ}(ϼYUۦ#s&pSGY$v/}! ?ŀVZgE=Ro~!@aQu(6P,_>+M>^`57U?}Q1ZzG' 0~dX:*&}c'ojv)ߌ+髓[>>S#E@x-}k2ԍaUؔ:Y1>J.rJ զ?w6iLd7r*+wumO _i:Y/ gD|io`IbT| +x~ԄoĂiKbWti$Z hͽDm1yFM4e!9Ӵ#!31qb%%G23 MHJ<_l1T7Xd< T'=ۯ\1"z{n_e"wil1F?Nok[U݃: n Z)7 VU$uЋ)$Y{\9{5c+zj*b96t;nf2IA,I9 _RFB ɪj"mS%zvI[>pi:qc@^L7?"Mh<>CS4VZ{4 &CXwUis+Q㱧ɔaziɏ\sc4.5#U +⅑]Mh2()`<`CQcp݁U13u=Vi܈J$MݚHehik/Rm' +gAh1 Vj_N3``< p*7Ee%C=P@se]YΉVЬR騭] +B~߶1([jaUo"^l5J6uKl+5P6`Faji ?[2n81)RvmM'. s\IT`U!GrǷԣ"]duZz9(X5R; ɇ/fؖ/|Hɑ<>G]H[,y ZR1!q%CLb嘿}KWb#- +TRltu+=A!9O`5Ox<+ٽWa^"g>nqH|(~sٟ4*f*qڧ7[cTCM~Ģ&MSo=DzO8/m~C8[6ꠚ5VyaP4W L>J1bv.{XBlYYjݬZ^?= R(鈼/Ht,'*b%=rPPX{{{:s%Ry㞒[,)J2=Y?v*τ1Τ%[w  K[9 7.cqRT7_"a>RC|Xf\_Vbf0Җe,kD̈́:߁e9:I:'v@3a$Cd#yt_xJ3rYP-2ʩ&T;0-HS#c6ыSվlV/_@XR&RU881 +3l/-$V_qd=ȋ[*V"= ofյE#s19zO+pqR5БOgK`Ι%voñ5o3+[,Q<$k&"# u-pN]< +1P“b(<}DCSڛNj%Q74)> ++9) P82#|-)w//sO!xF&.3-4FӚa͒)+!auNdz;TFJ>h4V@^k!u2 u2&zWK'޵Q$:^XA78oR/'&vK9a$=bd2K$8  `uiۥ}:."jF.x={Vy7/F4'̠>ef6PKmfpeMO(/%9ie6EXUrH`rQ ?¶&# Kv()alBǫ[Wҷl,"A{GJ$ wL?\3t5PE5c"ᾳKeͷMWY5 *o*L29EFC΀&C$/$-86S>J6{1֍N-l*Y\Y\BwSvgi.nr'+GZbRXKTr*ĕܻSΦm$&+GW}rT(g~}PCТiu{^_ GТ\ϧνn3mSn[䳾2t[۞6|wloOm;9W-iGWiGYE7"V q3~eq\R"./ T\A92t[[r-5Ȣ+Uj0lU9O> ޶`_Q`o[TxysO=4VO>[`m{w֝iGG:iJ3؛]m]EAmy~ bydQv횂̮ xz4VmwݞUn (^-\n n=eoVW1-2UqDJjًwsћʫJɆXRNs>лͥfV|rhu j\,GV(o{_-{q{XƢ`2 +_5bn-snyKY dJյ@Nw)BzcTd8Q#f2U&+S)p]3||xm 9n.cF霯 f$_ٵ6Q!X-WqY6uS}y=1E8y=╻RUӔJ{mMKCNf))˥r#W-4!Y{pub k<M?eǢD>Z QHVi锖A4o#/hu 2%A[2!ST@˓2d砄F\1ʞ()[b){[*td;xwȿnil iIm<+R#pc}:"dAC|T[ٴdJ%pCٸ4DV5֪mmenfa'=v>ui[\,+U.;I(O1jv18o}4+@^[DMH7>e_x4C9`/u +Jj-ں$f @' vH`. s?[U6]m<@"S8dmVEYz],z}d`QUu9KYŪVw&{ƴ|n nm\ί `63w?x&,*kc9\/.3nⲛueⶋߝYTq9_l~\Yܲ8V:sY\˹Y>y-(:FޝR97GUYfq.ػK+Z^ >)6ew7GAOR-[: wʮTb:/5<^Jn6!DjK9T6*7#tŽ]{ 츩Qt6ow lXR\.o:5d!34y E)j;vv5ݍ%N#A< qpе\BUWA.EP*QZ@]{:(`{LwY:/`Q"q0*"#DV*9!Rt&?`߼BnOvZ$nPH +X}h.>\<6n7 sD%sx @LGr̆ 9XA |=\&K(0g>0> +},#ac{ʯ6OR}E;I@'ʁapDФh|P`V+3s;, d5'XaJΎđ@(qP!I# NA@1 hvQ`JP(x3cs\ N%(XsdG/ALHYMqc?r5 6*:čs љ4ZM[@5L˨%R{ jtJe`#!9~Ecy=Km}ގP,A6X4b,j.3R5=Q-#'D]O"4<hvue9A?}=F?U`S@]D 'f' @3N$vbgLCc…%f5!ׁvҋ~mYK]1z"VrC{h[C=盾͂ـcgp:tĹiIeLI-n@k$[,#wA ׬J-tClDl&Dd]\ɋ + K˳ s֠^ zuɹ+=> Q(^]NW( |֗:"~Lj*:3&Q,ZD =^F:CQv0&d8PBBpT1]/}ʾHIXtTG+iP^W|xH%0 ~Ov2Qf5'1iL2>ZV/cŎI7u\;Kn7#ҟFWɵ㝶U8?!|\Bq=<}6TWCmU~pHM #G`q[>kF#gpfFCybGB;w &in![yRX+U5pʧԭ2SP8=?F)ܢ!c8`$ D;![FIhrZ'P,{yB7&h +BW̝mD"InaFM'%'>an_9-o^T0r/?x$\@$Q/?wTƜPHpHg/qHgnr@Hj͊ȝ/YI b芆@??Çd)11;f$l5?MEeGP8{u&gnf#gB!7BggnOr"$B\8aAH=cʩ`;`+ԏ3(i[.g@HX(Ceb"l+¨j`X:JVٱDdzK;B*;j 00 "xL7(D LLeCk67`!%@%AmKfȗ$W3AOEI- L~a9TʗUVEL;Ղ!:mWsHRp|B]ZgpIPW  X @4` 'RFOD2EĤvFj +9V $II@JEEB"{HGK2D&$(w#\V-" +iQhXLE,> S`U^Eb6p6t6.p$EaG68b~G86YٴasJ95AhԐU@c23{1n`,i[JCjNE[$.ec948Ep!IPH%V pXPFXP!`S)p>U !iA +_A,5@5 "ӤqlbxP +cXB^Tı,Ta.F\ĖΨ#7 1VߤSw6>EYKVemYu"\hMKL/ױ̡sΙr`xdӄ0)ȥYf _)fdu7FŇw6p,wXn$XJ|0J&hJwp/l*\R-YCN LҢ6AZ`U\KN +.ƃd7jEUL\@ +JP%UĚT6X"쬢Ă$RM'0]$C| L D2b5NdE%uLC.@MJ<f L!C5K " 7|"0Fj} ͚qcvb@r}G<S>ZqoEZ^ S;:⋮HfNV2ʤ +9N&M`p uW:ҤнЁ&@@n{ A$?1z : d0Q,{F2qqL25V9V;0 хU , 5W' +"C]/#0Ade%!{u׀ +fh hmf|TڌORfl\*WbX2~U.T#{wq ^hm(ڊ,%R25CvCsR@"SoƆYZ0mk4)R瀒fg?z${(5?ôUXeήH DrrBrLr%t3ygx6KQ 2[6uf1N4O;}/x@ ic>&?E%G*-,_$F@`/?dHmANm(BGd<])6ӶH<0e38\1 \Œqrۭt .NrdA w61QrwGo7G]GWl{D;ajRYv)UB9o6r>ג8 긄aiW⥲MɡEAq m[ty6K9.R PנӶX˚D.ԉyNpWnf@1:\Eh!:MP>p|!eBˎ9Nؚ^+|GwX,1$tBvTOb%ߜ2\ DP"(>PpSEkiA<6f13m%i,(HZoҍix GR01@(+=Jj RyIqUW 4~1*-Dbim B5 +5C\⣜£R~΀E&B%^2C1z;m -9NO@pumr Fr \{Gc8!ցh;;m qN~CH1WAk~ w`A?0GܩNl8C:PkAxM<5rV*d5ߞ!aߴ6uQNʬ;&A%sE(D1z_^)G= uu1m# ="98.Rw1Gx!96amԠw +p?2w3N1҂T*c kev(S.10(ZҪ9(2}k eiہ rl6N+VfsG7]yJ{jYP1Lx?OgauA⑗Q>ef0cW@Kig?MHފV2O &O=O0 *%g 2`3|K@垟rGiB<lEl!;`a:zQ|u%zG43 

5F32c؉<^ŋ@UnI%T(TRW*;-bRrG垅j`,\) +` &Ԙiv2!99$iG;m Y()0I#10J!9п5뭻7ā|Gh-*;3Δ|@; y:5d@&xEZ{IerQj.Ƈ>BUn8!pbѳf48R 5ͳ!",ˋEPy5J5@BÉh.$fx 7__?xE9 ?)>Z;YoVzˡ'gz 7S@y-%$"MZhhoMgh4y'L+aa! H~D걕gW C6vSv)|0@ul6L8P^[e`9L2S>:8iVǚL>KM~(phs.KF;e*7s:z{>T2YVnEZJ %m÷(((%2|+S`In A^o_Wuv u/[Wc:E?3 J ;H͌Md(sĐ2G;ʫe# oE:mXO ՝sX#hxkwx^LY QbD=3>fk2%&։ubXƌ"߁")wf9Si`KF}Un:͘DWR襾Ԭ% ڊԭH 6` YZmE%mE]ViQF t-et-5M5;.L b䞏`ڬL+Nu鐞e 0R3RFj@ALj]EN:m봭ӶN9V1u. ?Y"0 +FW2F(uin~䣚2G,(cn~ոE; 1&30D>N}bx"žNd;uf/R.M*S7LIeH+Ҋ"5K(BvC{ :%v$: '9^0ɡ,-*Zci? Px"-B&(feo2mL$uLg쓁?<1Vv1L.եzaŎ.#gXTؚtbcih=lgEر_^俼*^A9"a 3:m2m/_ŝN L&Zr +SH*HbhrJ U1:{hX +yEl6T|qN3(W\7ūp0.e`NBr9=vf^Zd@{c)s Tގ8i3L*c&OL/:ȗL?$0}h`i&nّ|k&at3c7$ImQ1և1RhqUYZ;ZXAYmu`vUwiZPAʵQH3}e~@\s0WzE\H2:LNm\I!˸"NJL1RliX/xj$0C'.MU!J eKٴ8jLND%,N }N΋ōuKé] JgD޳(j:m1Yypǟ&+$LSN۸Pu-wA4lfQt;GN: f] s3IZgk Os6Z:(0fZ:Gu 5ϡ⸷z}>J}PGkԋ4`9uf`,ZKW~>г6仸3rWsH4w&L Np̥6qx<@DA@BѸK͕f# +N;q\7$9J&9$\cŎ;K%?&i\4r#KI^1N\F/lR?N +N!kуltSS좲#6EcЖb kN}YYNk'8.gOɰgtj-|cOE+/HC'6VS94 )$Gr0$w&!2_n,]\ܣSr;s#(6i󴅐/(\r\y+I=r)N12A"ÅcIJgC&&8 g!*D Lwq#%-YN(>rJVq@i3H4;&v &DLVp!>{"uw&׮ؑ&i:WɱT}ʵHX !9F Drt9܌c"_Px-y鿝e"?:]uKEugC]q䜡h:mҢ~}  "j +Bv'Fdg3M(ǚKi=*;zb4=*;vH衦Gep?; +uvFU>X&!雍ʎ(MKQّB)QCψ;FeK_b +;mK+G~f{S X74TX$h;p8"`Ң$"6˴ }.HHHKTvђ|ˋ)Q+Jo=$/QFDeGtڞ3U d#^ E<y2>= @ P)Icls+Ȱ`ʞݟT . 4M3&mɗE[eGq:)=l)ٝe?MS( ba#4j+3u5m-%$D%gg +Er3#2 "F8$۸x[/:)eF4AjG>"|9vGi2uolJYu7D+:rY3sNdV"cNd,[rr^u'7``|Yl9b8G;Abs;[xurT Ĕb%̚ a/W2nū*MIPY$?~{P"H`X +a&̃1Ri1[,/)#L_46h7[@`x?t@Kz[aE'ل Dnu&)@s +jSRi7.Kc⸖Bh&KN)3Un8cS ؠw+.eYmXPE n6c}in4vhJ|l0 C>х@G@risM6׬ok?۳$(D7%A;aGj,pr,FS*Xpes2A aa%ucœj6<ƴ Ӝ2QOYr|>g LOFEl"˳:1"D0Io!zsA8YV|cYۑ }'b*VS$n\fYSόv[  åceh7!'e8plEQXr)5fN . +H= [S[ 'v#6P/Iy1I[qDt, ѡA[7N,E"9xl#[ӱI(dq/6JV !qMXIJ"1o<~)q}4 *{ 1U(*$]M;v}#JLh-&l4f1;dx¢weH+51Y#"e `$xѴ9o8@uom$y|>Xu6t<5#B'c}6&w"JM^&cOt5u@챩v;Ũ/M7#Qd2Z swE(%EXXQl GE/B{%5>9Ȫྫྷ|. b)nxZ^r7aW}!&y*:O˜[i;= k=#R4_8MCgG" g4x^:G=D6 +):=r:`u :҄y9`FK/]P7S9#IM`c˟@T>ע!_C{Y)"^aTaEE)NS-fD?vR }B8Euq4C_q}Bߐ,SO QquES<r~Լ]k^8s\+z9 o +ӫ ! 5ڻl+ějiBbNCڞv5 Mr[ELh}Ry"cp\mt`.|FyLw+tuNI?e Ӓd+7H0ߎG4$Zg1T#;GL*ߎnɝ ڱ{ T Imrp!J鰄`ے J`^iR!R6Wxi` ̥N g۹VԎ ɘ ©F~,Œf8&IuĪB0)-P'`8$`]7D54{@3c!@?ڠʉ17u[S&:żZTn~gN ?_|Qf:V]-@J5ߡc%63;Jmɏyr|1?,oD8d23f9%D\Q'vܻƉ5}Kڞǡ 2>bB7E7-&HؐPn(K}C{}̊nP5ְT/y>ۙ#.+C ~NRǑ՝0Dv#`Dhu.e/6d^R2o 'yR9JTN5lmpz"9;$\k0"hA>?+X9o@!|4y7ׄ!p>:09i ZAW*-ue -8 5t p]h#gL +a%%m.m KxDy i34Y[y퓠.NE@l}d:c2?W%jM/:9ULi8@wCTx*E͛{6H h1*㫙Ni8UX'ࠏQcj * 8;'~B ]QG`5k + +J)GReS9MBf?>X Zv.QFtr;AW}p1֩',"iP̈2`zUslHq8܌>`H߆Q"Awq9{RbDWo~' )L>ǤW6Sf̙~ZQZpHp.=-o4HG9:chGq&3f?I`ݵ +bo–Ԗz$zKߓ7lUm +~JIwi\}>s2XvٜERys{\wԤsfnQ6M+%.hu?w)URk9BZRWz5:jz.5 +Z~3j}_w 4Z"ܥn?Cn{d1>'awuBXLQh[Oꨍ(V[zXݚ_,0kk֝_D͈S$!xJBu|,0^ƮP H YEX P>f.mӌcFVmT;`u~I{L佬pv?@?V$eZ<l=MUJfFaȈn Ijk^TLS@yGeWT8Nϫ_[9@+OBCceOEeä4N|=KuwZ̅B5yP̌9cˍa +\Ts\⩶v4u؜l4f&qwQH+s*/!|U4pO 0 8j2z\j:R)*U:HN>jKt#B9~AXمɅ\% oST7 M56l +Ш<9~X[}<klC?kUs&9<|8'JĤm7R@| Җ`)šۛBUV,`Uyo/aNPUQdcaR7Krg_mlþ_kaI w ).<[Bw*^Δ}RL? +f)OҼ9m g)TTȳ(P TO0m:EjXCpA TI0Z"%K>O0%[Za +Q."8Gj r(v) pϞ|@kޓ=?D5yl K7dVfG>Ŷݞ4*s~txABƧg6F5q#Nw(w2‘ Hr5֋A5.HyK0HXj"z8 !*Y8+~gHEO,fIctNeSL|(sbQܙQx&zxUޖ$dw2.dXzyD{̂ٝXxK-7[!3zhA; +W#[ʢx4, zL,A%xpWEw/69 8n~o WG"}蹪/Wmo fA5;gv/~vݘfh>Ҙw=ۏ s`PXf؋dZ;=Ə"G]Ν!=j(ςʟ+_y>m5ѥCl?`j$~IS0וm+bfoA͛3XB(XaHeysa-{2(3<7y#vS \WDBun3 9fx1E늃 [8/lʮ+_g3ÿfl+0g>ݹ /5 /0&Pqqylוͣ3P"0*\W<ҘhHzsnu! ^4h"_8Vn_,Y4ξ=$b +U.D: J2yWK{!byLbNeGN'>B>ږŪ]97=ovrz +p8o΋5%q BYݡr%[\0`P` 8͜F7\YF 5iG 㴑%7`&#YΝa6×V[JjD148w #BwnZeX4[3w<k +{r`$bJEsNmpR:T4D$mTz*R O詁]0Sd=mJ|-rsoñ;RnE0z#.-q lkg4~;qc0<)2PV7 )ΣJ|ԃfο>-t\-{sTUQsM@/ OZ/J?A_%pRI7 F8y܈E(hBB+Kkl3[gP,?ti(u=hMEK-^n`؎+Og3n5ڟ wAqnkg\m/ZO <&E亁Muϸ-=(θǙ8& +/gXKEI-*juMM[B00꾘#36/_w9Tm%D1Wz*h]*?jշz fv˖ Fz Izge4$O$ # #Š$"uP;>pE 5K5Ek4)h|(xjdFdHĶY!njs ;%,Z(jD?G[h1reRؠN=zw*-V"rM5|;;`O"f,VK.p I+X1,uBkvhs]e(gcq~q+i֤`VB8+XRLъ  pX_7NFLޑV!( OVJuJeٚlbrʚI@Tb2`#["h|[\2ob̳FDT}KH xQ%8(=8jLբQ“)S+NTG$@Hƺ8|Pv]U\~S +m)iFw<5Ɉ̒zďb}*wTI W܈> ' (0 FwtNo>tH1ދڃܺh jOyʥ~\H'ҐM,3fL(%G\ΣRivb^f+Ǥú\(l) ~oZM> H6.#̨-6T/%ނ-\,*;ˠk,헭Vڂo,o@pxH!^Y.`۸zO|Nv`׀L{Dg`S2N.ARlEoH-|mtuiA/0v DnF}Z$&Bd21\0%?'Sڽd+Y}`2;p܎^8d m׬-BwT gRL0RA +67笾p)lpz!o6=7mݢYgЊ1 *$B9WJ.^2.#;j?xI} .UBហVuogK#׹9 y魿`U!) d[ iDcMRsEﳨi@SNhըʦ\cYt"N$q4*ExgI}Qj:R dDmCg(‘j~/V2[Ur06f!않 R7_Jb7P;N?cB#ArZ.U~sOn@Jy-Hɯ l\3gT},Y+G0{9u Zrc:GoC[yQiKpF*.2SƊ_ )yRlytw,^WMӄXIm4Y9=!}Lʧ[cR EQCcPGhy&uK7T ¾CHJḛ;䄣Հal O[rѽͼ(5[ +Q2r8Vϛ#UG;8;0 YXq [&2..I +EvIP"t߬ Ho<_no~/-;&Te2R.^!wTk8#^[T +| h7^( |(fĠ浬%@ K_)_Uߋ o&i<µD_ݯ Bj8ϡyuB T3lAp_ip$HoNJk¯t~Lca_i %59#]`fX?l)m֓M8P{ېRAEY>n;M`pA`of\6BgZmKsC5V(é:bYj 9oLFcC +ԟ%ՒSRhHZKAAP"I'gZ9DW4HZ6{¤Kp*3hrHu<CD +e3XB<ɤGf:e!EVy<XLFI-4vJN2:>7 2r7gF2jyJ6^HWX'tv>dd~'Ѯ0Gzi:ک]3~ 5rd . +{UI`:>׎zHj[PQчH"FPCu$JORZ +y~qw|ƴLm 7Sz9$K'waдY&eN7n@h,dҎp VIo^s+@?0K O3^SO7z~{$ `mhO.є-Pٕ.$/ܕ hd5+h(F +\HntJt; !-^lfPL <\H|besI- xKRX"._ bArV#oL,8#-njP/9Z'M0BP14 +zU_kT!,hW9mʛeAWAgWt$&$'Cm|s+X9>?Pgs$c§,jvv||.?X5} +ӫzJPZj{| }UY J?K`XB|F0ԉBkO;?D1qA+ʰ^9hU0QۻRo;% lqI@tV[^]9Q;!\v9_ujg3D27ULR.?8Sd 5UkV؋z!Nш/MyZL#E,Y;LZ=l!\ZN|CApy4VF+ +q԰̯2oWJm K{b-u5n!V.!D)6,EWwa9~b/E@cpKr +Vn|NxdX:Vet<:7&ǁNؗm@`R ]EDX?ߑyM[<>&_S֛%WZt4X' =(mI6vStN{D2441W`^n(vl3۞C,DZDg"'g`4,e꼸$hj[_cFb jSsEqcR/mX3A@r{ CA\lE:"x1 ؓFM~6X;ȓWg^r',Qaa"-)ݟ!$&vHa8C(foyúKCK9:QiMC sTlNBWۥj~8ZӖ)nYo\Xc)3=[^h wմ\mvjwJJ/gUJ>V먿_j'@*r-k爁.@([Xćyڂ~TrpaBRRw1dL36La0I&_W*_D/t?om B]oUpOC +6]2hrV87jP4Ni x$'`ߔ!aZD)VC >s +G869<NND|~uJ>‘d\SmEln.tֳB.:38o&4Νħֹ0XA--1WpҀ<vOWZD1A&3*( !+5w G@ zuuw1_:&Eai, >YB,(ncC=7O4F J8VRZD |1rEk~9rι6֝mMYoBnd;: (?+63Hx/[_>C`i=yó~|=㋃SYvRչגKAwJ=9;O}֠#> +GTIREHxG6\'`d@Fg%H!_2I^' h}&/HxTm`o6[/7{$4eA#z7kG6j!(XS-q^31 `e'v-V 2&U;: 3`r і8dGvr @6ָf@9&SZQ&r/\|dxqBIAT0c\`$M7S%ߓڸ&OT=̋̚|`vHE  UN $(z/ g1m Xc4&>ӯhauZbPGxq޺a'έ|p-eW!=QGmR]peOEpw?VOr_[ʭ%Zv ,)|3; ٿ.W06/r9 n0bpJ>C~鈥;E9TZ ջDtH0+ȽlDr9ɠ\ 3HJd4݌n&N!j+b@,NIhl>uI`%,>@!fΌz FUMjb3 +ZBlbk2QԦB 4sՔ]_X`z"8*CãQ#hfΕmeĎHtsU-h6[pI9i5%vż> P}[ǁ*E[p:Jsf7{)P [L(.1X.e"39ȯ?s῕AC1B`x!N;m-ty3v)b! 釄D"/.Eodb0PWcB]ʕEN‡}.BmamAXRm-+'wb14eG Nd1f&[D$`W|>NQPYN`}_ĝ<%>BImF!Xs=spS E%䡫v8ewh"/~47Qւ#4;m ɝ~ D39]/L}H8>(l_&Q>Ţ^&I5!:Sؑ#< 8U܌$V\ +Qx e܇(+!%7=aqfL JxcΫ5db"W$ND4r4r-I9ٸH^qgA28oHg4.q>1e|o9"DD~ꮺRN} 69atByrbdNdTOs@FYf' 98QᔣQFb]!AP@)_P@:TU#i(U.(wz Rs mm"-Y $h&I9r Q؄N=$l^[R s +kqKt :=fqq|\Ehio>8J\] AWc8Rz 1)D,jeRpA +5yN!.$lLmSPcFD BRL$ d6J(0($(q@  D"P(d)+h+1=i^^ juiqVi@ۃ F,0lajđIHifU<:a $MnqU); Ov%;*~ vOU]N84G'嗥^tŸmQiW;9<'n[k/!wuqm4+yX/ωZ]ܐi6:, H!KME|wUV 'gBv`In2@/.Izx'}jFw$H~jgTXPq$FT Sǒi KdUmz6|ԪX=RY'/i9Q_lZP眭FNmXiBF\dv&~qjCɈ_l2cCi㳟&dF+m0p"LB4Lcm'Z|_Gd$]IeJw%UXڈ ƌ1u.pWM83Su!& +xMOLMt+|jO5@v>@v,K^|j`Y-*Jtao|{1=k6M}٪VL]_?=#fp2|'rwJ(Nh俶 +'kݳnr Lm1@;n$(oÈK8rҎ 1AVZ9an/\T 'dqe=ƅu`v5=*JUK*WcWt6tzVqŸhDptQq~jCQPeק611W|<o,x@Um@SJr+!'l2[bS:`1h\6&:k(wpGU2(o;nݝx?: *bFjCʞq3+<3ӗyONm$TR=jc&LrypBa\nN]!! 8+F-({9fgk]*CD(T ٢8嘛b}ROX'%-6W`ěoUm/>P жi!ı pXSkRWgrY؇k D&Nԝ~jA 6J Q0vߧSd4 +\DHR>Gq+!h~[ϋFHT2:k!OQꮑѢӲSbZM!SЄ1iH)N3h-=h yi:ULSuq9Eџ+S-tĜh7_t`%h GEY͋v݀2T_o@FObPvDߋp(}OBF{&bI)-Y!-f(5%R/(IA ?/5WT .6QOQ:|j8Y?]AM*UtTmL[ň6*?߫KhF;S?@ש;Nۧaqf,6A*E}DwtVQ y`?!Ћ"ᄶ)6Jɔ%>q"VCSHt/R2nC٨jCSyӿĒُxO7^nNNzpk1>L/v?Am WTIƩ7^h§6O$H6 WmNm(8ϜʯѪ6B7_G*?pc0 MhtIkot0_itu i*GyY})?;YNmؖ=5=}VS͈j(6뫣ɱRHFe-^v橍%TmH] pWͥ6I{Tm)!РjCƩOU<xjC~w3Ъ60SzjDbQL#AFvg:U,Ĉyjで.: }u ɋ ƨvbXsZws4t)؏Um`c )!OFW5þtb0@ 4mToub1;8Bݭ%$Tg/KKIUVtYfԢK |i#""6J \ YGrmkh{B›|KPK1E..\*\r"YBC9MVu3k5nboIpzsoP r`7[AV;Tfn rfPQFFm=k㏤;K`\RE7zSBUmИ@5ٱJテqq"=qϲ9_Uv=*)$9F(YR4zڰJ/Lž ۓdRBmz&?^&9{;|ϯ v^ׅCjCJM>g#@ɉ]+*]F)P(H40B!rp(M>+h#A$=t\Ԛ186Uؿ߳3ZHw>\!Ɲ .ކ6GK&iiY{a;x'%9SkX|>SԚvà;H7~g}-i)b;ᬼ_<]部eX&`sNmXMs;.^9c|jt@XgME scfk1#lZE*K NRr[T-Y15אĤ.6|2XHlp1&%>Dj.Tpj0[/9?ƞS>VBD~]˷ݎKPі[@9}!z*e@B\ 6(; ^*0*"@ǐS6iց<һ +BbS!U4z5 U'OmQJ0)٠3wȕ7jm(bA|F^w9+?=h'+Uv|e'-oM"@Ld*:OE7RVf5 tCiKy0[l42_FO)SFjm{RqV-DXLO|o;:!`dɣ8R"JWJ9p †~kxt!3322֥4ƜI)]!m<+VΫ6>jkƸPH_e%VemI .ES4_Du.Wŏ/&O*U*UeH3)HJ8? eϽIR vPR^>O*.ܾ[I%I4KVnu4^ +Y$08 (/BS:A:0z)Ig"ID{^Slm{Q&Pch +ѰI}NŸڐv'?OQ@)I( qM1$Ujn>dLFti9%m 2׸sjH,wct+˒ЗUl>U8tbۉע>T6w-*_4l|p +,:!fEOUqE4>j@\:V`{3$PBL +pؠQH*3^"0#柍}es[)m?H?73F"a4]W^$.sUɔi*: :U,.@ g"i<垭Hq cBr1ɕ+ƑP`y7w?j=P>*;|[.?妴]0)xTCWi5,X|$ױLN! +QH> +Lk@yt˵&MkAъ:|d:zGn^l;㔮A=:!lkl'kħ {BB[1GUAz؅mjHSTDGf+jXU<F=x*݃UVG*ӚF;, . I4p.(_I#(MGC 9+nR/0 `0*RCe (>wٌ34$&nBFO!)מ>c+${ ?ayRk9 wj] yrB% 5:/k~2a†:J 8Drиp?rj'x5f<5 Vh2Xqmwr>ro-\CԜ oƂN q + n4k7f 4w- +endstream endobj 17 0 obj <>stream +Ns\#2:! ѹB^,'B':a%:u|yu-P Lv0lF Yv#tżץbW1ywu+A+ wDb(Sgdgg =ȡG֏QGธE* +.IE6Un#m9Tjқ^?{(bC? a'uXz~ V`!]Ypm&COչCkҡC 髃8*; ,Y~:OPC9;3V?CRѡ-WN;5pF;C[CĘ=x:T;-n!}}'={)PxO-z) +*ԵJvl]_PIݨm>JfP dGQ]pefjR42J9e7%qaā\Ve4sw[Ks#qR\%:O .fo)|}C9kCr1+$ +!>( {9C +|+.hD LTDܕ& di-D=.ыGئj:t/&pkv֫P'⤎eJk1&;óu&٦S4V_¨"{ZFL\B"랶BLH ݋Lު1DO#8 .`*V$ELґ ES񊨙|!+M Ύ-HAPA(cc$5q ˖ycs/\/aPg Zo0n̕RN EGbl+`ˀOQODmIDi=渱-.\<ְK.?hJߏr^@ZKbr7ێrk@)8=@-uDfҘ*B=& |IĽcYHE[òԋ6^9vHFk~(&Ѵd#ӵbÒ`XrHp{VN 3,A"0=R/T N,-(.#\([{kOf[Mjzf" Mh$ĀS#UyPUX]fvX;ʺO"/U&Qi*R=a w x)l|ڼShÛm 4 l ډb7cq{0`F)).Eo,OFM/OMڰb5i{oH7R- ګ7h"f(Z-#!w^Lj^2%_ekx%[Gyf +}b M~x 6ԋ mͷ-듽2 ^$ni ,&Ӿ"2ʕ$ϺH'׳dO;"2ﳗSwLY:xu6QRLXѫdȣ %5tZӥDQt`DiZK_gT"O,= Pa +M{&TI0^dɶ wߐn"D|3qF ] xľz[2ZSJ8,Fo +m]=9"Pڡ'xj.`xYFU8qQ̓,[ 8>LU jK[t/p 0b6gcZ8I +~UTdV~Y&. g6s9b-~Vǡ4ޫ}& gߤڑLEbw_o$gP#ѿ9U( 6KʻeJ:ƪ Hڝg7e"|Ԉ]ַ!,Idd"V-\RhTD>EH @A gv +~YU.A#Kto}M!w7 +T5KYLP1=HE!WMZ p1}!dHRpɯWLBE$Yg4+)E^b!NUj'W.DPRqU(-uA]c@W&ˉD$#t+,݆kOx88&{H$p*0%39Fz#,p +25 Nʉ&a8 .shL W6&MٸNEDlyt:B:І"0! & kI$džA`2Іq4i0wt"&4h80i$X0LTp<:aBZLp aIqybP\y.P\h2#dڐ/ L6BQᤜ X +iL\cc:@) + (\lRx>S'9р:'1:pDظjyiAÅ9 @nt=V*BxDCdӠ,ゃ_<!.6L,(TF)86LT(~B4a@<6x>3M@LW"q” 0@' hd0@'r! X\ ({ +Łr% + h0L2$! +2ʦ7"& |@,8:(`B@>-26V ^<%@Crpr 0"7p`l2- X$TT6."(8L( dR˔`CK'YHQA < +$>!) <Q% UR0<i  Be\|Tx2 <C@Fh@G5xP?BkRQ=#LP4h䲙 %2@(2taU p:?. +$2Bcʑ|L!rV86rBj:x(B'A䥂i0JGs* <# +,4.X\(iA,l(ZLvB2D &d:&D3e(3YU@HLR|v.  <8܆I@p# !!G@ 2 L0X` *2XpVTs <2r,3 >$ y24D$x,t $&8)q(L:`ȃO +tXh.@lO@@<ḕ@Xp(P4H&h0HJNNaL <C^،PH\D-XyA0ˠpnRp㓞 QyH-Y +%0`рFpfKy@ȸ|$x1zP@qA3 h@L<0`L8YMP! "l"<wyZ<1{}ěnWlmyɒ2^7;Oi~ǥ]z|kg\*!3utoXެ_i,jr[cܬ^zZm3Kj]l˛\m+-k_}'}^fę:ie}ݫfV7I}ܘH@u3󺳄gfٱn/&=c)J|VՋVzuaaWk x9' O%2SEgIl\FLk{6.. +uڶwkRL$cMIk[%smsqWz>w륵k#^]!3z;&!bzyݜz?mgc"yDžxioܽ_n^wYloυ81A%J/.&/ *܃tT2dȘP1yNDEgLD(땨E˗tն]BmlvjIBNBG2LbpNBII{7&`" +,4dd%@!@S6dL!bţ OkόRa+[$e}w"F\sT>u_Iޓ/{3s{oStVzo7GtvR[3.mʟW5*pw5V,w$u-3Kٻߴ>S57y;K쏖ƛ乬}uﻫ21ן"yնSU_Nqf?roV;7ף>"Jwl͗WȘշ[zmծX*=g+o3WbVNofխ޺XW9In}ոk嘓+[WZNm~&5&k%]:N!aUz$q}f}ukVZ$y:b=ےz!vKyuR{y3&Bvq-oY]|dIbK_nJl<,Mmc{vw>KR_G6M^I=PrD+R6r!kW?yoYlF}/ͼ\~Ll .~ W7ќS5}IzmRmP{=o*t1 LeFw?w,4]DN]<\sѳYzIZ7}[mmK_vD+T7kCfDDft6vV|W]x[$v)^߈m>6o7zk_JeR_w?:&BIKnfVuIOR٥=ecJE¿}N$K?io1qW3+=]=U}65Ǯ|ORM?3x=utUc,e5lT24n՝$L53f=7uّ_6w-GL$]?cu ٘X.Zf痽K֬xi;I۫vݫH#AF` +)&aR /*HRL6Tx1*C +&rAĥ4D~~[븿Un趌1Q,\[ȥ΋B绘h|{v*_LBcd-5n/;yCƘh%AS9y1rarW^2&Z9uND.KDi?JdǺdLRu!zD+Vv_ڬ=;{kOΡ.,fkLީԺ^wDZ{|D+zR^\Vzͼ_2#6ccanvNܘՍ]ݘ}_֘- 9^[Z2Kl՝j_w'zemo!svq6Ui6&5ooc" ˸w+V1X˸OV\Q{K 1Jy/fݖNW̧պ֖Zܘ(XZVm}j[|:Wau+MY[^~cElij"Y-{/qړwq}Ov9QO:}KDD֯ 7P;1 ++kzUk':NR:ZfY-^z9Kij[,qjn1Zy$F.t|h~ku~Ǟ'eWs3_߭LD(ǧ|έˆV,mj_ݫ뭤x^:YK rHʲ=|:LBH*$88 00(嘔 Ѹk +ĖC`變B7LF* *\w "`Y0O/P Ӽ8:A8T8 +Nbmp DٌM>Vˍ^Y_%DA7@cd.8ceHg_ގ~Y!ٔ>C)^w}xAÿbKm;=nawnL$cK5$iϴƍXS#'jebhF"z cnU5ӚcϽ=7`2Js=mAk#^|T{h.gY"bjU md:&?R])%-?զMģGO^ga7|Ĝ5!Ϊa1/20.O5`قw 1֢Q=eklSY笆;S y>91`Ztku\UeK<|D8ˠ 6zWETP#/nAV u-0{wwn-ZBqe|ɦ'Vz8$i@r4o'vqx!thКe)[o)hAMB1ff5Vq{˜GdsfԀoKT7BMH_4SN:F^ړiD}?[xhl +*xWNt"+I=g[5PIGᗆo[ZaS 8=E]U{`` *5,%7vn._*-DޫN"-{P0%`x^*A 042m8&\-bqRIq,ZӚI<"$[@շSOD;t¤Ulq4N", 'wfLTdm鰯ywi3n @-mf.z,xo/*=ݷF-W\'j+踬X5p9Osy$脓 4PwGrb902W㗾RQ '0PA[l>>5 Z^"4!dOA(Ti0)%,Rlc?j_xHkcE19c9:䛋ȉG92foM9W"z5DxOHV߾qUJl@3c b 귱|CbПm:*_ od\D01f/лLsmȟjR(jMHC4tMr V|q3,i5vNV} -C5:yX%VxSV! Lkn\h! ",О۾esҽ>|=XX,Tuz3ԠGD$Is+&{)#J"u!rR*N9Rە/}6ż:!w6XW"I"7u<{[iWއI1{XPJ jV:{-k&.0z?BRkbt\Ip.2D1Ι櫾 + RG`bD3[ys6ALb[w6ZrǺDFFnIX͔sD\[MY躚/3ʠHD! 51( ULjs`Qr7?4/6\;zFL +JqFA ]P5(|諬i*ojmKUܓhL n<^# 04[T)UWKakrY8_FF;,4C5|U14Sn=j#-_Y=41 2wcTs8c!dPtlSaFzׅ@dDpL@|%6?Ģk`f]c{ o"fcI Bۦ_oZxV>*sݲBӎV*1#dmRf3voz* /X5S)s +փ]|Gk,qqp.'?i7OmvOOPg][߲Gk+jEHX0+p#ѦlON],9Le|oWi0BuPǏjsx+e@ŧP cXQ AѤP4Urlb@a {8*#^0| J.)IAG";2 ~u6>A"D +XI4wJV&5a t[Ġ, 9 +:-~Jc@ {zTJ2*bPPgY +ɬZ{˶?@DND݊7]XyKSfU6ui j;sb#x4(LZ&jC&3 *A%ǥ,PO^7۠gׂ}y9ɥ<]@I-0M${F^tL;njeAMY)-ȅ`-Xu6Qeܓ%6]h2zﳀ|_,ChnZe;= ai[cemcd:gK., +(wEi19/9|1g?߉cd΋Xycf +*;iՀL1εw +CK{`b/j,ލmC"ڬJ 측I|'t<9u 6T$Qً^wi3O?gA\p!;a{iЏVTB^RT0 o65?Q+ feE,cB?njԲHn@ gut߫OϸQ:~m;A c?"0? wUt$QRH,K"DY2q?vG~&3#Z{1 XxΨSB۽ 5Ioަ0PNrMQ1%L o%+3i Nvg$bjX8bxm&Ĉvo$=T_&'B+X"q .eTfR,\T^ܽy[}p X߉N!k2:zK};}&K*R%*ȁr-ɱ!9略gKV0=;gQ1ven3CKñt7[X'Ɖh˲NGi2w{qH6*ד&zSBy J)}-r\Wϓ7q {p Mm,N"N$\Eq5>3a%YZkGjJ&+ к NMTԌ9E=ř7s6OsQDHݗ'N޺G2TA{m~S3l#U x<ֺu˙$O&L #YD]CU 2]dYbrbXl_B] +/h v}.[x_P9 +ێe,N1.E9F):/dՏiط},6MTyxקQ8bNnkoW$\/Z ~5p5~δu_Lmf +䉠BGo؊B:<5UKa9M*QHC?*pޥzm3jf[/otD#IҪ{kE@#ˌmA]a5/IG=ՙBaGhdGgqaS.;ZK61X@{8%P #xƻZ OCf09ZX7`U}ӍV[ӱ86g6?O +&ȓ3N0ow0U98̀׆Gn%N7OG6Yӿ'm=R6'f Q- PF!=п IH)oRpY$K?ez=ԘLB>zzdҋoۊosễF}HȦ@;a97ݸ$  &\RS j=W -PY~L sSj+;n~2`V7San7pEz˟!nq:*-C UXV&&︓nCv^qBa"eV,Ɂ+Чi8bz#L9mZ-s7Pnhm_>SYN))vhҋ*5\֒aL9_|!n"$YʧtF2J᣿wλLNJd]D5HDB2cwmEh#.%Y( FG\ѫb~.Ѱ4(c]*x2_dz}ٶ+6n$1mjZ_ӆb(EL(`4+[qvY%t1Ұ: X=|EPQH1:L* YVہw5nAl~95Teg'PluӬ~k> ⰻoR֕| n/n*\Nj>)L.гhVdۦ\OO(/pQLJpEg+|Gw;&;Wy1fdҙDJ \UkömY$ThDYiyoTL?ف>̼eBK;miƟ_SQ`Jp7ZZ"5[zrMtIJaboch$֝(i e +%C)dU!3_twO[B~+BYsM֏[cA5P3aV K9鎔Om3cgE|sdVQ(Y+#U3-jdT;]V@ +'v|$o&JHrwH;,Ee{:w)j9$AwkKn5Z,A!`DgQu FOm8Gϱ)k]:GDd o{J{M[Q)J+@gdu;2.C)Ttb']nr>gи;Ÿ S9nfu^-;(plޗ2_DL %RѲØn:)iɧȉfm@ +v"mynN]G{D/UQ⪔ʞfT hY2W5=Й&̆9BM5F:UmnF +lcm_T =ǴB|41qוeE_mR]o(Z)HFcGv]HtčAM0:k9WZ.߱,Smҳ=!ipK]D܁dC WrpJڙ| +u\G2lȬo=6t%cMm/7{黿д9l],Te.)Na+?! _B͈=Hil%N!uR_2R`Iخ?ߕ+oo>l;|J^ +M ,؟ܕ ݆X Slv^A@H8KpcD{h&UnUä#"P7Ѕt' +Dp>';wuopPgo:sNsLM+]#:#S-Sn#^C0ZX4sH11RQZ ߏt)lqsTjBh.9. -i&RT@FyUAY$q,ƹ[XU bX!vM~ +5QUM +aFӦMC3ۍ{P2` >+^VեOḦE +sUei!pOGa@;";YZ[>+ PqҲ+ti^Z|g8SVɮJIA;7ggjЯḹn;ējLtz/r3Ѕʲ@^rN]#ʫ,4O;w%D-ᲾH- e6WKR\ЉBBI0z Ƨcw&$;㾻ZX b47SwuhOZ^aPatg tC脝bvM$E+КfVGo[|P1M1NoY{s(4ͯ<("mT/WX|]eQ&.5*+y9Fgw˚{z8A|pJ`9Huq#ytBz*.Le:+` MPLb-bTL|L=vybKO?->zN<GZf:aRv1jfE%?NW,8vmq1c~2(<*JΘ;57NTM&D6@Ћ*u4@zyRE>n`sG! +N yɞהUTгItb>1QWÿGѢ3\QD;p%[Cx +WE WJ71$j)`piv̏f;Nf,%F7ۻlO;%c͉&oVԐ* y/i.4JԒ*=Dtn2 kՑuئT~68H]B ˝Rt>b*޵S<4>QXWיV6!Q~sgN_f[ @aOSCB7u%l밵?0tyړ6-n?(,gt`v aYc|xvxo,VJ̴?1)g0e<84˵3E@j|mj-Ŷw٤ʐH})ooQcX莁|ٜjP"]㔏M偅ŶӠL>&',g8pU-+"R1,TIDUԍ%ojjߩ PݮusZdμзtnխbaZM̿=eu&y3(l1ibW -RYcins MyRZvgK '0{& l)qe0Х}=PEXyùiqPhvʹ,):Kl*5b؎vЋAcIxM4MA$)4bˑ<6.r +5/%|8'q#IGNqEN֠E b@~msA0 8򎜰[.82dSUb/Bt*dl_ +# +r| PDZV7S ~BcUMQaPpំ?Qc{Қ*-"twa +nVkZZNhGR-tit@o6:QZP~ 'l+,ktxJm7~CXH ֿ"a٨O嶀 ?ԆPQ *KocT>Ŵ2$-*%.̰qWUSskHm;DM }g ŧv[6.2JN.2X3HH |``῞N~N:`3X\0G2khaGуcrMz:HR3WH:nޯzB \fnqdͩM69/8r'粴X/- #Pj " |On4;,XV䖈 )(7 4jyqEdfkvZ +6i4.8iu vJ!dM?h%.#IS+VŐSM FD0'[ovkKN w"J@">&V% Z\7l@߈ ~0;o5zj?Xس96QL4Q y[RGk y*苃M8*i~%N] Y#rhjC*>!ф-=&.A>Ά=L$^ψ>0f FIE9!ӽc8<#} YdzrWj %uB fz~/k$(pz#{z`05cKC]P`qKYYqD+#TC0vwf y}ծK˴ЧIPU #75EH衐&^8lNw; r +N8/HM~dsO<`p5&lb:,CbD7?h벃\(p7)RXS>ԐDced;$ jp]־D9ԻI$¤ɿ/@J8 ܺ8h?,Yc? 29~A@iCHwK .puM +Y}>{`ACIZDA .E!"LÇhy)TY jB',Lyt^cai 0>|<873pCu$O Sf(%4!9$8<*++nY }zEQT2+|P*jYm,"+gNŭ|!x0j},r/G )~G#;AbH%C +I±K14pqJ}f jX怲_SHk@NŸ +Հ~?ZԌj%3gN~ M}: =ZJ|{ p#a_)(Br \]vA T)K[GٺP*#3 w/(ջCQ'`CSE!Rg|4zom~cS{(\EŰ_ +LwdG' w4 +26k9)Ɔ$0kAw5vEhsrn ZHGÛ +W# [r$AH$D~Y~o/LXv> M#XR%D`ʕXQn5|cvC>R{wC߇ʍ,7 s;@~94*M %YZ4m sN/ӝ+ +~4+h? 7M*]Fm8k]"{Mrd8Qh[m=8ar7KR ψ2%ND8 >Q3y?g@]$HY!"a- `qu(V;=ϐ$>a_>|/pelU גXCq*wXU|{|fUsȻNX>'OU %c_~aqKGQNHݲG뺧YC (p?Ĵ +Yb֦@&7%f>/0.r>tkY^xԺv^qg[]aBWqkܺx*toOe[Lf_{Fm6%qP\CibIqsCjYh8˯jCEw*qƬjmF +?D~gp C=anTmgNxNmGH%`Ŝڰjc zS@Y9zjClAKG=w JU,h٧6fjC΂pX,6D3j{Om @>cTRUSuCۧڈdX?;4؂QN\xH.mS=#) 5XwBn uB9UiEQ#rqjU!^+> r-\jm>QD@·]3,y{!ArƱ)V߸L^Omg*jE7|\_1h. 0wΩ 3q6&lC+u >yءJ4MC'rORF* +¯FY;@hd#bSͣ9NB-MġG# + 6HӇs=$0k㩍iR6bVe?^8B܄7ʅ5600sV6&5L)!6(Q$L>H GuR=H 6HԆz&M)éCߵ'Jw)Ϡ@nj}R,dTmbO qjӚOm,֑@JژT* di>-[@@tLk' ш +LէH:s@{qsj65^ G Ҳl֤M/r`":A HA|TKݜ]9cl=[ ,.&yHo5YρUp6'P+P>&?6AYy[.,"6z=W&YTmPD Peơ8sL1 T"  U2u!3^b@K"5|٪lD8neDbeE  pP72yOBٚ; m1[nK1馣XM:vajcѦSq9:YzHxt " ľ-8iҩkGؼ) 8]ԆGj5c'p|80<Xn+ OmQDUSn +4˼HDzigNڣ5M='x1RQ˲\ʫiϭnzضE.yLaV_IYdn~'C詍<{2ȩ4P _,-I<T:ڃxV$\NQӌ}lPI햎6:@dֽDMtqB;?Gpbk2uo3Ah ՅF:һ}>[~_ -%T4B?E_yaܳv$#'BTTY,0Atĝ-tgPgj'F,|w_ZO7ʘ?G:6*|bR;Q]T\V{(._TWf o|,xJq^>'癄>G_HjI.: +qj*"V;Iꉘ$0uadM)xj~]اZ˕B]$B_Pɭ=VهOtX +s.3EH{hRH7~2DW};V|׵ॕ!W-NmHW_6\ l\Vj\:hD9ʭO V^1]ov?yTQm`&dnAGlBE#,~xu;B놢z Vm X%3=M^Jw] `66ڄ*N׶@O_uU ?=Jn\,w|FR /BT:` +a]j1{)cep~V%Z!.GE$ԗn )ujc;#bF9NGGƓ˔i쬟 i,0~Ej#D\{j0Ҵ +ړXs2)x5\}ukԨƩ5ixOM/S$Ph$իJy+Nҁ9FwzH@9FKf1 C{ \\`*xHm8qI&Լ]PZ0?q O'S;Q! #NmG+nڌUmx@ +#8XقsXSK}w-)5bvcS +p +=:QHq4FO=jח.rtS5NՆm~z;ySε[Tuv8C=*1|bW {R *$HTm@W1Y(h d# "hlצ Op<8ZU2&,)l%[j*AqjcyiDbq단gh C5~9s]!K-aؐhvwRTo}JXz8 +m2B #{6Cw88yP1>SꩍA8*Muh6zOOm( ģQj#ѸSAtLE+t0О$+NXs62XI\gr +kTmw\S=Нڈ lmmDK:k*Vsəb/]6B&x` rZĪ^/mұ:sǦ#ׇPhZ"|@cu)<8-A%mx H=aN +8X>ҵB E:ǹԍڀമ-O`D;n23D%m$#I!kAy1: XHx;L vl_=A{'OMX64;0P@'eFS[4J;x7lEWӼOn թDU-(muRg||44^6x樦jՆOPQ5ZBs4X3>8;7(M͂rƁ(`IYe!Z@ -9e+QA0ҿ5 M7nQ҆yCha׾]K~a8]XqNT ]oz`jJ5D3e Ɖy!5Uũ ţhQ3sT5 UI5ݰҽZG O@vpSV:ѯwU1 ShVAͧ62jCK}j#MyL9a٦ )46Q1=o`+x QՆKMeB|jMƆrjc'UA +M[_Uw]>a,tw3Im+QUm,7Ԇ919%lNmj˵QOmz$?$v5.3LSY>%i70b.DUC <JڂD7bt vg%8%Jo+n0|cQJ碜( nQFp5{!keZ 9pV @d5zjCQ\NmTv+@Tm1Nm*w,6T Z,S(3IvpݖiDĭ`A#BF%A^)O3J=ul(zY;\0G2NՆ]]<Yw2*4Sa-6 +hAxd 64͂ݲI@&(2Mo0pRR=}n̾T >9oSyj7&D0 V*&P\cS@OԆ;%Bfjy}=KO*K|ZChR.v,3FEH")ҫ0JTf dUe(lO Omx u^91LJn>5:.PHĩW{O<muYmRqtHnx_݃PB~SD!HHS ]u&J^xA +l)6:%{8gw61}g6s]KE;TiG:-"zZrhe7"À" }SRdt5X:̮ho\EڬO~j#9/~$絵( "ԆV|Y D̈́OmL,:U +|]5I2Nr;&ѩU(phkв6<#}s70|k:pl' lx0R[x g\FUZzl!81aSj#]yOmT's5}Nma߁HOFOfslxZ)Kj/"%-U;bmI!P{=֒S\BTm,nڷ6^٩XjC|JVNJPȨkSpu[Z\ Y˷S_ባpP/@̸S hjg+p),<r< C6shP}~&b1I&^fR3+K[j󄊖 +)1 Ӆ1g%H^xwM*1'D9}~/[NJ̑u^lvNAs{25уsR^3ESQ'XOתYH! +endstream endobj 5 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 6 0 obj [5 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000405875 00000 n +0000000000 00000 f +0000636174 00000 n +0000639165 00000 n +0000405926 00000 n +0000406318 00000 n +0000636473 00000 n +0000636360 00000 n +0000411268 00000 n +0000411342 00000 n +0000411560 00000 n +0000413183 00000 n +0000478772 00000 n +0000544361 00000 n +0000609950 00000 n +0000636244 00000 n +0000636275 00000 n +0000636507 00000 n +0000639188 00000 n +trailer +<]>> +startxref +639416 +%%EOF diff --git a/01_3D-Druck/Puck_Entscheidung_ohne_Text.svg b/01_3D-Druck/Puck_Entscheidung_ohne_Text.svg new file mode 100644 index 0000000..307bf41 --- /dev/null +++ b/01_3D-Druck/Puck_Entscheidung_ohne_Text.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Operation.ai b/01_3D-Druck/Puck_Operation.ai new file mode 100644 index 0000000..5fc1c53 --- /dev/null +++ b/01_3D-Druck/Puck_Operation.ai @@ -0,0 +1,5194 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Design + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 hjFQACYZU2uxV2KuxV2KuxV2KuxV2KuxV//Z + + 0 + + + + + + + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +HܗK%E繊@LU4 Z H=}n/T=2`|n܈ϷOo~o1!Bqg?~.ߖھ}G>usZ 5>sGtqJw9>8{qUHJh=x6&Du>ϪK=:QƺzsAN$ƀQk/(<.9\M-8/Eu_ R,,Tbg>*c2# tgϤ*bȨfx? jAFƾb)y +9R&*.a]s |.Jcs9z}Tpbk#alDy@y&!'(#%5T 3i.)2bg,-N>mޠQLA!H6&:`ikQœbxq@;E(W:3MI!DANiP\D=u?a[V&eemDp 4bGPnjr[rP2(4$!P`TփJԙaDqqbؾlm"e#p`QP>D}N`j(r2˘*1$ tӼi5DD[B Y\.9ecһĐ6";g}޿i>Qh0?05g\9s3D<ګx_c'>0e'u{rׯ/oiG>E-Gn:jɼsIø֠ +:(k(9Q &o^ +gG"Xm-Zhܪ^RA;S]Ψ#,Y +s.Q2_5QR%ϩxn_T27TUmUԍךh0 nWjhh=:\Vkc,@+$EN&Ddo +s-yγ+EṌsdB([+ +W(TrslW/>j>ܯefuRC}^,V8I]F,i"5j kv߰׭c}WK|lyiz&'ķ L⴬&zʜ=iXú4KuhC\1z8^ +~[l_C/47Yv%HcM)LGmD(gNܞ><3M ms@yD򂭭yjq > endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:20 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -37.1111111111068 -199.777777777776 1.6875 0 8301.14814814815 8390.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -37.1111111111068 -199.777777777776 1.6875 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3olGͿaCB RʔR86 +Mw&(؝c+ȣb@EcϲvVXw^'/guV#7 csmP̾uP_+tԐmh Rx9%KWe48d~Di. gE fXAQCH$!H\Uy @$"a&^(Iᢲ:Q4jg +sH(~> Ec0X`La^" +FC)_!F;j8@; DP, k,Fa$)FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳ge2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHn38>* E)Lq +T +b`( +EE^Т.rbX0âa12 F1,g0 FcQ k\D6P4 F`h44 f b0c@d81 m5\* F0c @ "a*;+#P` SS"ay`040L݀HTv o@$X0 gD"aÂA`x2 21C11 `h04 F@$ ECx#ظ5A Oh0 d 0F1A bQ0 bP,"[-E`( +T()Q43n7$C6T3Ҳٜl@l xLD<,$,6\18!ut\5a S-̬Vk(jzaYUQZS -蔄tH̠6Ț2Lc8704`,iG *lf z Dc0FcY,>ɹA$ld   ++3ΌHXP2 Dx_EF"Urc1Q b󴹹"qDGu , $ D@Lx@ADÅ 8*< pƒ 8`8@x@ pxD*Pp@p6LPX`C.8 &P`8Al

^OW;Ow;B,:tDzU^{p''ب-'6R.L!i#ғw;+']HX"Sm'䯽F<4VeeNuIQr(h{5Qx {*%Wz\1KbqubDF3ۙ4{N]^9=qo>$9 |toʲ{P<$Wb}O8Qew7V9ȳRM:y&PP]+vjfFvr3nzJY5:6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$Wa p`*(dp&,Dxhb[]<'VD\KqT6RX!bt$I1Ē)V'y{/S]{Htrdc(|4S :٤[/O7$J/w!Ui#TDc=ʏrweْ;g|IKJ"iڊ{棰L̟N~e.ɂuXmDS|t:25Xf+:9Ee/H~6,}jP~>^%9$j[$X9:?#Buخ>U.}\&@\Bi'n}$G+f]V&I]'u$3 Ȍx URv8z  8 Kvv[A[MIkuLǝ^Y o$uPZƱ-ۼηӻJo}ۍsC'Օ!z)49AhRtd_~T1ԉ8GӧRWq${ vO:xxl72>tK갤>4 %Ju{M^ZG >F$$֓NXY,Krgrʧ^ޔlrNcR*ѡ'ULzŻfO(S㴾pnrɴbS[ڍo'HCx*ўH4CL\3|>[-J<2^SHiR+fsؓZWW-nv&hCv9˗Gj;/sh- Ae})y H(cOY'HByplw3 UeRM>ŢohO-VL3 esX3KwVGL13j;14{){"N5gޟ!͑ @@ +0^Gd(0HpxpB 5B 8 +DP +ppa +p „ +p B +p9\%^Oz|OSiK%X I-fYtؑ9S/`'YÍObď9~X?&%yBKR +oBf9B $ܹU6)N9iB!m¡G*'U9V-2)QV3gt/uBfZ]imJul+Dn^_'֚ CUS+]&qƲXj-Y>W{uL\û7aclIdqVC I%`wI,o,R>KOڃt+3F9SD41مn62;1|l#bctpggfrrno~2ubUur(G|i#vב\<7WUr}:)Jrbv#)ٰ&Gi2We񽈕h~KTs`O*3桺$2o>ʺҡhyYMP-WvZUvMRVRUZk=]N˲[z6uդf]M}FVDIggkͺvk%]pZciYvWTDY ϔ{`Uۻv"+Z^tWv,ˮϾͲPrr%: +9=J7z]U Qlyb33Ѻ=524ʙV> 9ftw98Ԝs’2<קz90$e9,vV#eJ$uc#~(c>_>X֮9I/;6X '?yt#Īz@OYdXڲ5D׻myǞ +Wa>/۴+~w ZyUHeqw4M'FU4R)V}V{VDWVZ83D)4E2*!ZŤ)>,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ Iy4eӧ 8uWWلGPٮJU7SN^~$G4V~V%ZUx*Y!ɴ9uxgx(SsNMX0O;6sbfo:TG^ۏZR\=%? +ITWsB;jgJB!˽u We>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛJJ}2tS} +^)zvsf>F"4 +SJG}ZR_QT*n}kOsؓcd"2~:pLi KʻĻ,]+IIr:t̒[eIɜsUq&݋ȼa LZG6w/+Uw4$sGvRv\\'fܢ}Jؒtb9ۚuQ2_4'_h%cђRu TGxiP%[hbuaɧs,c֛f}Pi8fR]Ѥ-'T5zUA DLNc )P#088 AN~B^@AFzNd )['dj\nBmS>=J06$"pL `py"-ЗX';h+0+Q? "MKtn:.\BO#@ћ{^.Ȧ$ HiQhzе:5W ܼ3"W'gKre$ i<˪omy*"WgM&z U/֪DA?OZ_M^8.?UeN*z`5=%nyKvD.k¹1q6:` RD[eDeƳ[w2mHoL_P4M9!I%=􃂯ZIKZ= Of&Q}҆41[Q59M' +=&JQz,W1Kw:K\6 =}I-Ŗ^rښYA[V 2Y{\q*?o K8JCpp@C1 PT}yj$)rԃޤn%-43ê;~ 9c?jQx~.ٵ 2(!R@OdJ­R9~m!FpN1,WCN@h:'ge.ۥ$ 5'ݪ+p8ix)|.gpL9Oߥ0B kPJ%?`\MZKs&sB$6D0n >W +șf)DG9f}[j-IM1έʴ5(c.teEә|c8d$H<)Ni7AXڐW vU{k];`ɀnh*ЕaWZZE]E3u"4$Ѳ rUFJ륀/x+9TNbs}'6S~Qr!Fzk,f?+ +Aaj힐uWgA2Z8{I(ڵƝ?l@4ԐMS\\:];FH}fV ؑO o!XGRP"\AGWBZS*e0{ډXb dH "򌫅Gs\.bRH +B# ROJ^%iG0dAcU{'E3V?eѭlZMݧw8Z\ mdYZTH}t5TcĨGiA"q)D+}'i޶\l~R6ik+N? g =MwOQ,H-vDV {=O) :{0uSŒޙ1 kiXɵ + KfOs=TcsN/Y\i9z}F ̞v&QNRjR3T\6$<$B*BXXaDNb(r"9tA^gsr2wE1=opmU@` %:|b|pb>|0է} 25aOqoE}hw@ĘUAdUEp.Vm<)JJ&lV7#Htu2]>n];t +PE,2X%~3Ϲ n/̰!-aV&{:p0èba!FMMRGT' +`wj  sc20JOZp. +~O7@LFc8gigސ#Sj7P1zȍogȐ4oCh#%ON*:s( Z"03z$HnYq6vV_ex]opZo|<׵ftZ [.tiaD4$%+lQq1TF1Y8_A.v8c+ +9Ds wyDzE5PuUgK'vJ32]a60kكwt[".f% tZ +IN` uC.j"J3/ыrŪx3a]-N 60PN W__*x1;]]q7]_N(LšhPLE8A:OFCl:W(gaRfXp]%8W6®v`>6o Wo؈`s\o=*"؟780 JFUqnH*Ų8=ekTƶASԻppֆFZP ]jʕje`fQ^MGAWر(B$0dF~A)<).<  m#sh7!zڣLr(^LXdT(lca[GΠIm߭JmT߇aɳ +_"x(*VG5OmZ/ ē:VYS t]Ռ( 2*{%&\f%rvk)!6L[sB{8M0nLo4.X/σq%hl59_%w]@Z8xSeCxY!r.U!t-\(P)A'~"ʘf;x3: 3+V0͊xgOJh-O52ܷ1t,@uȱL(SXTUX{׆l0j)?0hE&4o HhtX +Z{YRhc drH6O.dD}Zqps{3(ƛ' ,\Ӓ94#_tCjD5o7z 5U;)b84 wu/[ov]z_b HV5Bh}%Ttf<83J*o)QH'׸fAgd̬S-hA= +i s4"m2L׃ X"RmwD#鶀N46rbR}|P Ճ|1z-"z 0,+%ICBU1Z&sg1XP鷫[ 8›GxWY^@GWRO\+sْ~Kv8D81JeVsw{؏@M' 77,o=o+B_dZ7I9$ċժb В +-; '_=knd!g<;ؒ%TXb KefZ5 ZŝuP2JV"0+ +]uslo֋ŌfU)&!R_B{y>a%wM,<"wH3eQ)OT}5"@;G2S${h+=$,ej/HF-2=nf!02 !E9gy*<쬩SKl2suZu\8k¦/n<ԏ[4L삉lR+fG@$^_/VrƣQC~}}%_HBt Sԅݱps6P CrfLJA~)aLRJDS +t @5&Bx 8f+bog- h, Ώ3FQ%,o!4Z 9!U ZϋB7Lʠ- In5\ hn.d䅃!˳eg;] 4SKJjh8[(F̲Cԏh4NSr>1댍#듦Qx`rUCɗ|b*VYOܦs辫:NO9ǢOJ~Į~`K|:Â)GD$u WyV |VEW~]x6F64$V~J}:(}|Y@đfC/{ !ƀ}zG3NFLbk:!/$&<^:RoHxMNFJrLld?ل8>s(f2FfD0폺{çU)cbDF[ Gsf 9U9O}Cox$6}`mJ~usTt`uHLZ9<[5X։gUt/ejYuˎ/(f}:dgAYQa, T\j!җ|RxUy.ų6vcÈЅ[ştGz0'TBB;9q Z +u޴/q>i^VYw*!^ ]$HQkU9CgMEliCw LRՔBh 4E*%eja JV{mgUБ5pK\ߵӝO<i4W{1(7Y쐀vL6 [[^k D2'p) oß& `]JK ru{hkO6Ybծ9| +uJ_jk/~}aV2>&Z8]ihz7պH^M,h⥸I$}gB]AH٠i7,rC\C-R8 g\#U\xIzhx]\ 4E+ +5\rjUM{_{f֭F=ŵclG +W0xYJ#Պ$\Lw y^_Lq吘WSy80"Ot``0’'7*sIrMev[R'13aN$~u=mT} حf6fܲCeêNBVKȹGElj#"|856 +ȎfU)/ +5}MFCIb]""QB.9ř}jH`ivj%F 'o4,~a/|P%tHK4sc3_mVܠmQX=O/7ΔHD)۟-x68 "0=LK3GX`1PmN'#y3$jᦂ;\uK_Rg>$Ҙk*ЭДڅZmWݎ4L1YiZW鞓#Ghs\+J@9grPh/mef&d-;uZn]ΡJNTnBmj?1I/8S#m'_.ʝ} ]0ىkSr)Ca!hpncT+KaލҚ|iJ%BcD'2 ++2 YҏLrZ#Z,5`J+(:fRKP|[[.%D3Q,%!$e[ m B8G=zA%e ]ÖYYOQYڮ+s{h 4BZ KδeZJ3تl)<ے_nn)T5>o1QX෈(ʌׅ1\Q6W\g VJ%vhC]oeT}YeD+Y=e?Bu>m ++_lV܊M+ \o 9yV{@E @7CM I8fIs};vk𣛊C + ʆ߽57J0kuoZ+_ɸo?N!S(Ot5:Z{%tOK@8SD]*>E-,#cM]NoAV'92`F=C9C, $RMSe3q8E „fyZca;8B_^ @rZRV ޕTF.x}c=2,Pv*@+@[j^tih= 2|38`R$W!W*~ Qt1D1LH|\o-41k='KzɫҹLܔf ֱkmAӗxÚS*7T9kix4 +ZhzMg_b +"耑1u*Ռb% %-(M B89RhwOcIa_W_ZIRI΋Bt XRzs$kT؛L$O?J(j.6';g }e q<![ ]**-X@ngc5](F(4(ף[\0}[d3ʀC=|4)<\iePV}mf1\veG'ƫVV95F{GЯgB)^uSdoX%}e@q1@zTlciRxC=FH wEȕ"Sg49\xAF+r<9:Cu3W.΅jq!A!ValA8lӐ -*xE5B,6TA:ю|9{c@"J2s\,Hy7%"A,XaP +_d_>$T#jĪ5v<^,a{$T?AЁ5@[ X=j2~h:Jf:,$Y0L-!j =WՅуmBH`Z`! jgC`i\ 0V-K\pO:D)!=Ѹ&5D\m.3̈˕[3['gVH3ɖZ?[tnXDjI0Jp#9 Dh+iN;{ZyђlY/Z\ܯnj!f)u^9³ȩV!nF)fL .}4cwLrMn2:8̆]1p7ډHi +:˛ȟ9}VKҲUaVVyWHDˈ5WrJk dʡ_XBbkcAf;%V ,RbQz(vje,jTG|?e KKA1b.̼?4.Ba5j4ҰYа"osb  +]UЈ%1LB'Ex+8Z)Pξ%܍I`('RbKa$ּl?bw߰ Jfi +u+Uc*$J+:k(piIq#I+8E 6]07OCr&:H"n;nu 4hxM JZb 8/h <ؑfr9a^7[GVue#|73bRIf-#K1 +![_ˑGznBtRҞ9(Xyӓ4BcTxT٭C>WC٧K_ ֺ}ʜ&56ywdӪGӛ eQFI`bWF\eV?Qx.0F4M7>V5/'zf%@D6Ã\"\&-Ir"2 Yr>yZ+y>JYU(m +]KvAjk(QjB?>hʞXG˪m*! JygGLzbr`c>Cƅ\%Gl;DFhhH?(y+H4{ʢAtQ!<K\`wp)X^J `JW|%&coa+H Ϩob<,( +!G: m3 ك vW#{U*yIΚ6R[ ҈!eh?Fqʐ߱z=[}̨ؐ$?pfsjlnoON 6ʸ\ +**}#9WlR_D9r gWR$f&, };UDoN2+Wa*gu5g Gg-bӜ?ۣ̏Ϟ ;&-ýk3J-1*;޽biL5Bl)fJYT~Y9l~! +}ʪFbXJo@B L:̫yIOw^ʠ;S7xmJNcCN cξabc[AL qQ$<\")L;ԭ%>U7}c)7Zn3mhnPj/ƩMq ;y<魷몏Wxb'(o`)-soR$5w kW34G^:Ëq, +u'٨VΔKY8r5` +ˁ3a;^r6Ya^24[&(!f#@D!bK-Q _{s5_[E!t25[V6M!ڣe{hWQ!ͥ~Pik4<1SZD2Í1]tl&9C1ʐLK>kT r|ݨW9٪j4_ry+W4ϣpf^L8Ɍ%2#WCHS1F UEVصzx ʩNAZI4/Jp<ƯH13{F'}cjN;5ŏ\*NϿsC(:ΡHj9:ŧLCSCr"N@̎`R1-LጸX< 73SM@t=^&Ko #|dZW7 +P"th`*n\k +ȶM>bdԏLa&.&XE#i1ydrM7|Q;FD(Ю,j/:OOߵaP+ ߁NLYM'+c3ȋGGGKϒy6l:q+i~;{HB$_u>[ݭ)c9 ,$G"؈(Ŕ,@'+ \}s\Ѥw 9Qx2ȿ[4qA =d#B.fouCr45c Gӎi=]05 _ ]ā)HT0w Os#CiE|!N쀬q lt&3#]*ڕ|Y/:L]+8TuPOP!s߁(rf%Oľ`iv).SQ$YɴЏjKpSjDJA^\QzbZ{yDICW[ QaWR^o0$ݠ23x]I?  I!@x]Krȍ$4&E^݇,c(bV mxsƯMzD4w3_}@Յי(^{lpSֽ')rqiOuf~~M(.d_izrƩN&Ƭ"2 U +Q(ozvװEV j@S:Nf$x.nzj.syĕBQsd6D(+Vڶ=РGeaR/aUu +VRҏ;›7V|B<E#+pD@v8"hu**CK|gT +a{f,gBLg}鸋+td4ZX1Cuǔ~G"smtGLJ2-Um *m +ӖŬ-0]o\ =QC-->6 A(7D)w0js8>pl68 +9F%!c : F<3i`svnMz?Z %A KY + @!H%g;ޥ4J}dETXU:F_sz!ǟY`,JlucB~m,F6.6eO)ڊ%g4MI9|6jLV?OԬg88u.k&oŎ'yXѰMف%A#G(*Gl*ggb%QvdCs|J Ş/~ԕjT9vƗFחQH%KD?fUdzHs3>6 +$"1@?A>h 7x`}wͺkޚ{U5k2)A.aӃqx=H=6{J{C\ A0kv%ai`] q>yss80W0jh&zdȭə[%!tjpZ)Nz-gfIJ g*$WD0vMLL nG^N\A؇gQ.װG4' ׄ/BbC@;$#2*SRG&BI Rg彴BAH~}Z߮IeDEOI.Hz s[Z![;jK `tS%gq耢i2ִ6Yʙ lWh,Cf58N@Vv~bpdl(^- `#t^]ǹX)+RЁF !YYhW2} 2.zף*?S9Ϸ=Xڔ{\hJo]j;lҳ@d*4fY4 fOvq*:8oz}ѩ+vݓe^R+P-3-5*-Y7׳Bt3Ij-SydJ\:,{\8sOqOoY\q /7j1wl+&̺?1نWaм'\PVS;AZwȚ'0X]9N2%9~Gzr ۄkVh_O_LJF+IcByMh9~o8UrSutWG:9r"5 LV=G n_&` +KX.sXU9ʜ <\I::Ybz+!/پb"Pw~y_5|#9Hِ$QpqPj;S⤊aIզ`;Q-X.|Vgg&y[v2LoZ@Tkp`@n{?O1?+ +;8]e`wUq,4d2S$8Kua' q^MI&7Mg؁YPR}품iT$ʹ;>Q~_2]V]dSz 8x2¸#Wq\DR 7PRk(a'3F@sw8"yA}]2Ƞ*8a2mTYǘ1q'z=D[Kj{t9B20 q9?{xDt=C$[Zt7XnO뿽.n+AO@tf̲̦P|UcD/ZU^W`;9k<t7c*,~nY R~53FNez~Q 8D7}2ln࢏֨ȹ.i{ݮI5rK=g36"i@Iy 7YUD̺ p!0F \]`^2CX`>cF`j|q6lqBMjWVVl57Z Eì #4P_U"B#Mk.;<X(c VxϜr i8ـױk6 ՗?[8!AA2 /,#U-,$Dq`[k 崯s?: **ZS@r/tnY?E&K| A xV_ǯV>ڢ5 sܪ$O-E\/v=1rۂqfommJB@hx1o~qȈgQUpliXEb@'wn=Q_R3"@˨!>ZZvkۼ {E/#P4Mɞ*8}[)t +lHίgN{Hi*xdȱQp.Xc^ ɤ]7Y0]+ 1?)VX7xBV^ 㬢{uCXft9>s!WoULBOG3rس!U0&#vvgqT3X(T4y bײ}w6 .Ri+! O{@NK-^F7toys)DU0ҭuG^M۩o op78s~^K.h7zIbeYmO-nJj׫֗n"/{b&͉OB+ ~ٳjt+#n.rlUL59d@gX1<௰h:?n|dX5xϓrq1 [T0e1hb@s" -@#`r ?Ba]^ƝQDpTMxLFqbzh b@&j:ԩ{  <D[VEX,m"#z(z[эs"CUV״8'E,L]`OQrRKD3/%`SVʗHa/yj 4iw)ozF{ĔXH t`<}^BW ;eiBB=`wܫk]X26{s=|J/s1dDbK?YȜ  +R"vR0dbh\ vܗBFjThcEwb3#&rJmϿ 7ŢY%GC]Pa9RP#]:YD"C9~:@0 +ަ9}5{`\# %&ۢ +.|v>ݥ y^Il//%=b}bBƺmA6Qa&4ˋBZ +ܽͧudPs fE.#' HZD*d@)I5$y|Iֈ81s)yǶUVX'( aBQTϿV-eΎ#$.Wd{ʽ;cwQsش&dmaQww?eGI~},>GTTr 㵑V}ܜUn"w@k8en#F-TTWg/pEV +XN?f' wp =jnF Ia.%-RJYps31M#乍m'jvy"ir6'Krjijxz&ȐcDJ]eO2e{%n^]\[C(z;j[7ŤxSm-SzgnVH%eTDЏ  ȗ 3LBֽq+'rޓ.9|#ǹ#sppS 5r(.`!X 5y(Hr4nc^Y)w Bp5YP0M{*qLxl)1HN^{XsA4Li[@P Bt-)ހL:rޫtAW&_:Mvh*jXP"`&_5uO7T*ܔrꩄu|v6aW`cd -cFJ*xĂQ8X]9Fg ˰ ($JutJ{ı"R(+R!#_ُ pAYű[A-nq[=u9Hw聳Ct:LTiH[u +׉ZWN&Wr-aߣ:I^QLKH޷ZV|:}VQ%i-wgv ,R\p[D VZ} {X)2lֺ*L>~dv.n.PiP ܊kQ 4j?I CReG0:`nllIͽQVGDs\uø-'€?j47'p/NV,.4r=eyZEҭ%H'S@rY8h`d0ׁ[m 2"DG@ ep@m=ʋ^,.&f',v1(sA:)RxnI2jï +O5P +s5Ȗo wr "oR)tp] +(77m/5;0FN 7wCp< w9-mo{ _ s*+ϫu3U E zZ? dS]![-9{[5ar㳪ںNvȿd؟Os5]2#?! u|\\ Å ?iѐỌb.)\"X6=VJbE>!vB])@#z_#En=Xma]C3q5Phw Kޭ4~)?DTeqW~?԰zXpIBM؝IR2I^d_u[5}C7Y\&L)&՚i'^r'BmˉTXOU.bpPD"'JS[&,L6/*k,%+ +$K|n7P=H> B!32,)BIB@)>*He*$$bI!MXEP(G"#@"pBHU-| NCydB!8D!^ 1̆ +,)- +ED M$Pa3Q +*tjj0iÔthuvZ ZYh4 +,;ز%ؚ|؎CZפwRQ +2caþ! 1!)lFw0aJj۹JeCULƽE0E*1#PV'&Qx$jLJZl",RadU2X"vy0A(wXRVTXf*qRg@7zф'= q´dġw,r:dÅ + +P\ +WP(NSH߃).3wxVsB4SVv&>ںs ܉{;-;0WrwI,<1;i񮍽<fݣʴVhi) I}J)dN4D͂/vjfA[gPpa1y.U{-}ʹ WbRRb<8YhO*Ef)* +rB=Qk_3&LrM&kF T}*JHPTj(kMFy5\!+{R1RY]=,UycA'DƢjA /^/$- l&S|iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WՊ1SkzoK=>ὫӹtON'B+uڗ a.q)ϮqG A#Xkq:pZgzfx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR\^:FeX 4U($SQF'AIeUtKt0/4Zn3*ԶAD +%IPyt +"Pw}|)x<+UA( ,)Yo.^|iclURmJ,J/c5׈Z-hF$\ձ) ]ݱw]tUZCgE%QV!ey-HsR"I"AG1$Ԅ,Λ#eQ(CDC1wWLm?F+ÑR~%y6~S}cFΦc8Ss/|6/2|Ϋ1W"Tɘ",ƶ#Q +U#/TzZ՚К.1~%f1u؛ ~8K2I'd뜰+#+R1q r>k[bg͆1EIJ\DZ;l!Qguڂ3 +~XZDD,2$iFFș8cDTkH[k%1ҨBtĥ?f:k^!&hVt>np#&21Ė83F$yFm]%$Ub,bjQGѩ=4І$쪙kR!1]mWL|T5D.F#$"#>ȬU<3^RRgθ8v6Ųh:Dud !'deqCcNlm6s,Ρb ta ]) '"ƽVTJ>j !yȹ7y71y%!ڄ|b»j9P]"Z ObD/}璿ea^h iylX)Q432 .]pH3AX3J̅2-R-8xEJs WЌ^W98;3TGd^$}fTRa)Q N,H^ IPHR(!9 s yH4+8Y?SuGN }>DfR2"37$9hKV'5P2N̸$,aWs4&6^-S%Vd1QOLW5HQq1&VW̎ +V73 Tfd*۪j& fw1R'k4>M_;:b-dL,z։LF6llU;d#C +H),Dv=f ɮy |̾E*"JS|J6F [4nZryi '&B*Y1B(&e^= +(v!1ѤsP:-Dj$*:3_#ZLE[/.x9*tܲu&&MS ۵ +cFPP]"|fzK1 AaG9T\+`TS=jP!E>-:=FL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pX^r/NkdjCiտOP%"覓tT؇tS"UBQ~ $0D> 0D"4B2p2@tH͇U"iUόmpu9PD +jDL‚dm`` `c@FxEd A(d@Qi$.uQFE ]y`QDfBECEݡd0Ux*B#j[F{7* \u,aF5aFB2'ыj o4רB N4";gIAH$LtTÐC"H9iRJ@ ;ä"Kog[$K'1<< ,Pi4\B +EDeB2 ( 0@¿zL S'4J Ox +L#:<\ D:MH);HR+)u AP FxC+ p @& BMM0Ԅ, +E-4Y*Ee# *QHDpjͽ7Dj9+/  +\ +K%A@O&YF^kS ="\kSS*FWy(z(_w%'/(bȗ6& aePRc`=q52BV/ROh:I20p~59|A^4U#(`FLDBĂIk" 8/ F!(PApqNYy zfL4S%T4KMU,ʦTh[h(VI7kHx-5S4їEpJi8:ںj>JKpc:i~ҍs\d2W chL>o'gn2GrCs+_߷?kWSz_?ýOGBNb&0SA$ "% q\ykGi8 Y93ٖ%g\0PTaiVUܰNGh"JY0lÉ*mO - =J(@H"~PkPui[/|-vo۝ˆg!B*znCvSM>d MBP&@}W5w{A'IN [N$R>ܝd#y] +YӬ6Em{ I+mwij؊\ X#]Mہxb uB|k7l'7 anFZ^y* OTC1kZ`Yh{];E ,t`>uJNiA;Tݨ?S5}4S[ƚNeP^cIB3 Yv |aBUw < b]{Re-dçWR4՗o=v$U ƅ3Aw07jSr9vEn ϣl d9x¨inSd:w?@ݴE89cyPKWbD$+q`W(; ]m A !t|YW,}1`CBkۈ;ZazF49@ )Q_7l*GtK*.ey#]'^jh#If 7rNf;p)nT\<4^e1_99N$ P j'l'3\=K@owҙqŹZ;gGsY{>Z%P9n~xenk"V>yҋ#hePnл 䃻7HłsE$קdGbkⴙ !+' ԏ)-ŀR@Ug&0֎&ildGW}mKѱ0d˗2瀊AyP_ʇIY+ +]șDEjoI߫m.aFGVg +#|lU +նOh>1Y /d̀K&R7 '/K p %R]8D&pCk D]ܧ,z=X2 +- B"T!]^zXe3ЁELYt4n/{7:^IbgD-+䠟TBvX)@oB_G$X4F5@(LC^,f}IBfJ*ڃ&C_bP +uuFpVHBV;id@N雨uWdr)[x`+)@W4!ޫbuE}Ha=F+d\CU!]H Xj'^l8=__?Uܦv6ozkW~i&n+4|T5ī` CbnraN@6\xQ{GmwQZ_ˈRcJ>VF:У|P*,WyATld;1gQuR^Z;/+6^V+:e儀qC'RӌDXF +,E*݁e`q4$FBX`[JaIH}Mvuffwz =dԊ-T*g5d [ 9PAE* M0/t +v\sCtY9΄p?>zsO_WJ9/WuSыG03Rp^"VpFR'zHp"'ʝ$P؋: ޼! 2*Fg)NH]&UMH#mU CHl9ڣ ЛܘQ,f`7 BXR4t>HZm|[ pa* ѧpQ*~~MΘ4$_ۖ0xC9bņ 5ԷI8qy.㋶8&fї0۟p˺MgyagITfJ}s +ޑ\Jĸ `wpFQaEP%tBY YFJJ-URZ\` MtF`PRGf@A6 VM{{@;,rp|7"~8ht,j&CP +3TQ@m" OQƀ:_9V<ޙ/A/86+_!!`轍I::uUcv1ݩ03l<P mN$##5<@ +\T"ZF?^4nWL1QƮf[̽-\uYpyU@_ /(XEP\xR0tPQZ\WQBa;$]JG75ٮĜ?slL0 ޳װͼUC"Cg0?ڼkh<݋YlwكdMd\7\f*oKk +CC$*,mt'oN(b eY OJu~ܞoNLxj9h*B4-P8\-4cIt.C0-z1]B"2Sbk3&#6E 2 2`-T#?lcԾx]`Mgb\1LR:e!ڻ@^+{H0 iF2/wu?OvPOzjjfEfFTRݻni̒!<ɋG.,&/H}z- W?Wdљْco2|bOsR0t$)E@ IҖGOGi+{FZNOUs}Дg Ej'׺_T-nߓ<:S/};WR1,+EJ8[`pT6} dwXCcA`[ 6hht?U'pr,rq$x$e˼Jߦum#j1RuCI\^hͤ.UuEtIGΡ̳Β‹#.]KdރD1hĄU(Z+> P3f!p+R ]K+ź2MwmElW˒;dA"V5g7tn(xʧ|"*2jL3|. ; J?Xok! +;an9NM?f~rD 7"B'Hˌ?~g~aG8 3yTA3 (8DuɰNLPB)87ly :d{J35#F6ĵ3k6d kw'6<&꺺RO,hͪ[fշJf7ן[[RpaRiTO 3gKFL Ma#@Kc +FĢ2]JiHgE=:dX8eU*C#۬)vBMP4GCRqפжThHoLa4SwW4m^:'^eh^_`~J($ ud{V; >;b$f Ӥ{J/򘧠vw%GNbkۦ)wr^`Kd \ŭ Ѷ\a47⁲awUK'x3)0X'0:DswRB ՟:h6ƣꕀ07> +S.FuKT*(y/³ovab &\bGZ6 ꛇ3 2͍Xdp| N?kx>V0`l6/FZ˻i|ˆƃB{&/D)!|!ߕXh[ɰgg@2xSMks輷"y ""b_x٥l2zl#rr+s՟OWe[3bD^x`YO2{9ʛgE߰ +vA2PO%jzyƎL q1cIAR ~iglބЍce .bI6|7#,j}eX!N2@)W$u@CDQ8C#YW`{?45[wэLP7:@p"nB 9Y =++q~[.-?"B6 j_OE.޳bNKGu(! ؞nI#C0q˵ 볓NTHL*ǫ˴7Z!XӦ(2?\N@w]WG0=$0x*UAexQ |hg +YpFye3j3?D ; 5л=ߵ!eTWňg,`>d'c3JT :ڕJo +=ܠ~TO}sVj܄p$y =:Q\ )j71/}N3SMD{daPge, kaGabG`..Y!-뛈B) |]jY7+O@5ܩ܆@)`__49 КkDyuZcEq,EM}ps/rE>CIoH\Q!A^(ف*vJ JzJ k+O?UL+2,/\r]X?N1./оJbϔ!TҀePHoDT~CDȮ!tCQPR}.^Bqu#QQ,b9L}@bBˬB?Њu +eJIB$1$R)" r%1h D% )!#JJ(D +!H|rhr0AI:ٖ D&(2MHjO64:"z'IX|h|'BfP'Q*zů6E+9Qt'09~Ґ>BiI`AR)v.E|r2SܒTo +4hkO@ŷz;Q[b,zlSgHȓ#Ll$dcJ٠m%jcHb3ې IvCGב97(6yPoER]cEroQ$1 *I~HGnC¡n! #$1 8Lšql#) }d9ʑM-G.=rsd#94#IC;9בutdC:LGAV1AHA)uˍUG#'l͇;LU#yui0hC##W0xXcF;xd#gKy(#Ẽ)/y"'QFZ=&p_HF{EVqZ,2#cW:Д 3>"-|DEP# )"y_>a?:Q1l""|L-&[Jd2=IDwd kDVE_HD$ ZCvYؒ@T-@@:- ѥ qAdCu!/A!C~ !kBۆ֐j"" H!MȖdHX +aB20.dB[4D,D3ܮN +Z +W9$M(dwwdcGTFH&@?BXBdJDR!!DtZ" M$c\-x27AEBXȲ 2`2:" 3?61iEƉ"SYX箳kktWAKi5fEv XDFX4)aT‚L$b)NчrSqjy"E"| oE9@VK|o {-3)ŊD;S bHSD2n4QB ȝS$d/؂F#Eb,@E2(8rQD+dOD[L މȎb .^N$iq~~@~E?8YX%'FL" YGRTvj7"9ݿcducۗ8"E'} fwTdl>[>ԘDؒo|pK|8  %{L$v$ءDBMk%Or,XF|zz<"aNh#PQns hr8DjFw.$6塮)yq<xDd +H(G01jw+fe6;|a!Yw`HC;w;NٲK|u"}gx4>_G"R?mp":a"{>""fna~D1JLt"\H.eLT\.>L5Yu"kuR;E2UD!#*"MN/:"Hxg=[41jCx QZ9/zHuEԧJy68q#юE1r㐥̃;i824\#)6RDAQ%G )HCoGxaG>o7Doчp2$:$/ot,td0LG\؍{$ɟn$}nXr#2&4n\$NmHJsDDm,)!6^MI1JbDҳ1 lؾ1XrU_*1ʖ$6&w +ji]R-X{]#U?ah%&UY469$! D[&Ẍ́gA5vIRÍHiMj$QiгMDs +kH݄LLo"fi\(9Ԝ# Gc,s&xh '$O$ u!/dИUЈH0qϐ{FmNfNd5Q1i/&67CFlszf\N+3p }I{ :ɃW OʠT LծPFA\W}d Dn'Jbr$y{:D!B@1XN1Fh#/7}iND8ȰÅtu1;QFSa0n'39I c(H0Ƶ% 6΄1_*ư9O;牴 F{jX ,0Io {`nd 8c៬_$E\P'F|sJ{^tP+> KCzDhBx6P +/d_".JG.(é +zj<2H9WRH _o `fS" ,Ki,.n0%p@\d[D69[)ٰx$kA%l *zbU"c-Jj1 M%j!Z=EܨuH=UBgQ骢Y`]͂V٦U0 ^E² +O +|,J fc+E]Eb[ EX+B\f_YW6+Kf2GWT`rE[VlDh.2,*)c"_0WraL嫐aQUpAƢ+WR*l!TY*"TNŚRa*IQX +j΢,|BB)zS)tPnE@ܢ\lGD֓ewi(64uE"QD"1\S#CVeJpPQ-B|@1PO' @|"8]OƳ h;NS9|b9Y"E p4&ʹ $ vH5AYN[S7W4*w&4fDXE2Ll.&+&f3KX0u䗀!YyN]bzľ%!u-YcȖh,,6=nz%,,Ҭ*qYLb2hk@Z> G}͡eLRzgZP +jᵖARbٯ%-hKp +)1my>[XH-Ը%[D`zt? .D֚EupˤByCݥe 6g䮢tJ$;låu҅*AR?KOxJi Tl~X(ǥQuՃq ƄrL2P9o"̎D.D颚"0Hu1:Hh. ]6-=L x# ;b>GS^E,T=ވKj6̪9 4bz| ]FЗ1B}QFD/Z G,pA|_BNXa+>fyT`hg<0M0yM#|%CJ`lD +U"'"4,6!TЫ0 +$(8j =3D1W-ש3U(b,fH.FϖV(DD3"e\1 59eqpCA$Őa@FBfHdƎa(V## +dؠ vd#qMf@4d$ 9Q~%*,#CΜ-?P?v_F%n?Nff3N~UQtU7ׇ8#*g>@:igɇgICVL{`ۃB MփED#{dL8fo?y!HS< `PA)0j!JMC <4mjsz8j̶RvjT %0T]MAjOCdFY]!tB9Cduvw=N1,;]rGC vG,,WB#+4wϨ[~ +0n344 +:/>S`UT~Fx*0QW5BYBG8BgS87Ŕv[vǥ"*mN!ja)L%,yK!(R +ג{OEDGDh#*Q>, +UBaf$i(lTgbٻ'X{J c^z6PeD\o@) J~y?4RyBlJZN`Ni^V}w̝P%Pm4g̝k!3Lp'{/Vt ۻƕz r͒F /pNs G-wMZA'm80`&902Ɓ3h>qP;1~>]8`Tu%p%hA *m#X sq{@uKmq@6R>2tč6"*_De'r߰A/䱀k6lc +4c"ߖSdwAIF!  h!MJ^Z%>VpWs VNI 0o,~k#Γj=d;;e9Eܧ4ynQHq{ KUbpkFe !]Zh1hXRe#粅0^f`kFzyZR0%}5r|j/v{>.h7bC #w.3x0m'FC[m%~Kl[I'*Z ~)ToG"']"d,R؊,H*>B^%AvqV]A5\,줔d2"w?!*p|(jD|{\&L$RAWy"PXs^!n +xXRKA/o nR0=&;: +r)(&`^;̢1v2 +:[(@tJJh h"ɓp>uCO MUy'HVnMoT\ Ѳj"q#X 4ePL,,_>>_YP @lawߙ"i!5ҧP6Bh$0S@+c!!A3%#(g+¯ +s@h3 +Lӽ et(uDc,?ڥqȌ@q:.} DضJIlJ.Wχ`=!4˺Ls#Gz%8. +e'ԋw,`SHSL2~2шHXz7D0H&( 0sY"[@LFq%RP ; ? XH&VnEC{0I8Dљ?s#,%z7V?F@IO#;%" Yh!縆&mpddUl!rX㳫SGـF&6Vyg;H?mSfo @N\, ,2i( `o!H Ew3nL0nYLH93B悲-Vmwv9T3mw.aC9R̈h8$uHnphs֛1 +k*ge-րB&+7(s%%ĭXEU0Bjsa@q cw (Q-@eqR.,Eك)͢zf`0WPoc:B`!iM<]jeHIEZLbT]tA +fR:MMVh& +ۑv6nBٓ }+6g P>efO!i*/ H< `53XAv-րZ9%BBE#L5,ְd@[6 $_:g2Nz=>5 *G@Mb;+Qxd`Q̭ @JDf)d??'~ V7u| ,#OUTPqJSfMIovHe6:* +_@3_yux?xBp}G}G[qIJvbBΦL@VmXQC^cq]/s4s_1+x)uHhR S]5!ݙv`lÀFjd9Wܯa V(=lP+!2*/¯"rxHGݑ[%Lo{A${0b>m+V1ԗ3wRt%w:$ VcyW_Ŀ(_|OՑT`~Q} 5>\**}z +vO Dq1T?OP{4e A9tF42z;O"$#Y{>Bէ5L֯҈T^X6p}+ C4s7Q  @i7ƿ_u0 ?C[π鸄Wv_?T$դqJ'#D1x@l\磿~9#mA_:ϙMd8.׊J|a n ;"+UT 32w';M +$ٱ ~F;u{-rs8{|4 nd v 仿omr8"0ًM;Q^p݇>O:XO}=M'Lޫlɩ$ {$m1 ˌz\@1{Eglawt[xC!._JO?6ЉRl 7>ofO6ۛ^xkmp~)M[{f{ Dm?Aʪct*P11,#nq>!A#}|,ϐ\+-80Szd_8j}$qN#̾b* 8-x.R,aJwF?y?Қ' `v: y?d+Dv&⨗زkՊlGX/dz$2B9V?BU]gfHA;mJdG=(6%XP=HW fg)e&;),D[j`zd?NwxNzI8E;צ~,> +k чEe& ?x+9BԔJ1c&*mxAo5p3zhfGVM ޟOiUT Dd{;-;߮BHOuxL<#;DKp|>-6rI*M7|_NY@u@Flv<K_JW|[(&*Б`B^?G/{ ^E6Nj0΂8Jr.3->QJ#WxqC/?CO餲)O|)Nddz&|h@4@?yA9nU3亃2&$_; ho/nr<r ?ǧiBz<>\+_\BĜخUjix궃<-~& ! Y ^S0/XF?:d4d T}n6#E=74q '+2Qb{xOQd?ymx#4/bx^O [],Qqľ &'|蔆{Wn.q@^ f9B7|gHk ~Z xyab{ zG#JZ.s^;4 Gi94eޤZ]\{{}3iu=#]HnAr읷S + 3 +a]?wL˫7'o7O|J-8C| 3Sż8򉵯y;-.ةۋE }4qmg]%>Kb-LYlK%w}4}bի)E[{6^NO;juc7]Fr +ҳ /] ~8x ;'m$NѢѪeh=Lʹx< &R%:-6`2m;DƤXSlT E,m 9pY`WbL *ɮ0W5 vJ&J$.`o@lFRۥ65+>1)_lOY{+Oԉ{g v4(J`t4:'QLm&GA_,~_O?~;ci'qA,fbי3>&Z UDְ̿-HhD.8'{CvLwQ ЦFbΐ.: 7ͶiAW1sv⸬wKjXob9]Q +9dVMFoUՇsDju4 ZU.C.Ƿ jRzQju-鹩ۡ\ԧYP3QL;T4B3.^%ͳ[~ˆ:ބ`&Q.0)]~(4{@ m.xcQA6RyS٠"ƃ#ͦ32n#V7Kv' xbGJϭ$t^Ǩwȑg>ä}IC "Ӽ_p^C5:S#JF&WZ+`щ +H >U-9k6|#.%d"N^Ƽ,fr| ;n6:k. u -Äl\V +ηuE3ׂD8T\O-f=jݖ}/\=﯀Z3t1hQ@F&qB;0Z )uÛ^@irب},(qctP_c vMJ`h}"<\MOjd^Yű}wS3q2ʁVz| t-)u^TAwntU5Ux`n҂mId/!1 z'.1;ayf z[ nt&s8P}lA*/yJbAcL2t0;ノL a9gM[tr6[¦eqtj׌mAW玁c/,4Ok};\߂7U$ R<]ts@sK]As +z3fYx&xnY)+dvsT7p5KXRߌ+ U]G +V Q2УB/qNP6o@e~~D@pM638)ӂjn.ȷoA+U?cAGB ݋#zi Z؃m Cs1]uZ{ZA2 8l:!hwfV&╪b?D0F,Kcb /"[b=U ( +Ɖ ug;/IE>yRRxZk:%_'?Qr9.o 5: .Np|& +o7?10aLssq6_w&Vؼ?`$O4LjYi+'|dɱb63z "x+\w|*smГ!r332d^l6;RֻüqݏJcr9ZoU=rR+S':w-pyq*w5,aK+fb62Cc,e7W<XtuFZ9"iDeUCw̹ʭ?.)q%)oD VCeZy+PkU;Pr79ǯL^SC?RdJN6L_]&Ӌ;D#&aed3rKk`U2H{pl!rřB' v`rLE|؉g(ii C +|q/ed:59\ysBiF1<47\hNYO\Z(.Wt*! ¼l,_b+y┢*0>Fn9/'Gemav ¿m2#3r6\^A:*գ^pę@eGQx?&x,JF9L/xia T'׫?~f?m$5f_s.`v1F !\iJMI4O2 v5eaVe^_ɒ,unܙx~~E3~e.mȂzߴLIڷ֗ooVٜ!@lIC|J*-V*bc _k KJwm/bsk +(dn؛ЦTpT7ЦH;,duFoqI yKzOyS*UǮRUR͙wF_RKpT?*L%3Ɇt':3*Ojq̺nXBg%Fc KɱU;Le^7+lSu @BՆ~)S I\՞gֆaƳ΁r )Ck) bZANoՊ5 Z Lޡ=Tj[[A`acTqU:r=WY 2v!4w &6q\uWe87KⴲCw>Q5tKՅ:\XY#U:! Z2{DxΖB3њ9.̞"mFB D]h! _PxHc!hpS[j'H6YA+uKtN֭9UI6f[E&Vr&S\"ms-|Cg=k{9U? |Gq,(C|xNk-D^{9 +96[_6ھUAةpEF#%8|ZK:~ q9-Xm[$q?|6 +"(ʵZ,11ͥH3um>s305EPMI37]=N:J,궅$E;p`7rl Eu|b4nR"ѕ̳MMS2G]`9){xǁ>IDOyզhyL%Kʮ[T{S&rTޱY2'P/0/n\8h_ٚDzbo]YSe-ʞQ_αlvԦ-ChHjA6H,^onk2擖2$VqrlOLONOeIXWML>~(mSĺi(-3^ iY1 +Q--e(ԣ/i?D7Ѽ}QefnsFA-_|ZWni;B˔0eq-ۂŵ2Ż^m2pjW0Ar_šereWXVB!Dc詧?(c>=9P +endstream endobj 15 0 obj <>stream +9k9i cy<45Y6XEgqWdrBsdAfZ2ZDp֒XlV (Z2[^9wѦ+u}Z[vi$ R#:iVBNY8&r] ^rp Q25*:fpVNjz2zoOmGT5u*բp ++rn7(}/r}y$9M+2erˢy]H~(_Ʀ(K.>x .MQ&tGHrIBJԴ e#|I. RQ$ґP1w׍@)e*㥼KS^R>_Rc;ZNB wKL)&㷩=QZR&Ygg΄aEK&E`n0;^LWdoHqRմ'&e*3ʪ$PS:E{6V~}jR7NTfPH{l(eDS{ ]SS,L02಑8IAR&t(Cso=5+%2zТ(HiUi_(\GdVfR83&Hʓѥ}h}t_͓;^ߦ|n"2r4[&Oq~ ONz| +jv|1nWm2}P>2|>1Lzw?И j%8\gfPvq.:Xʣ=|4,({ӓa4, BH]Sc"yuwt;W Bύrjj)nNS{oTQe H;XRW^وD>ԡYn/J! .<̻02] rVV0e@ G!]J>|S{*boSۡ,ARq޿ H8no2|p] Ӷbp6z+O\%V%y%\W]S+Gcrsߍ#WAdb#,e{O&|  +ZΈՌ \6hz]/{>[\h04QWeb>=Z:yQ8t02OlcߚѻXl +q;4[5gNGVuJ~v63k]73?0e3rks8:r{kgszgN4V8L"(Ȍum׭5\[𸻾a+Ʋ_F*J4:G4h\+1D5DЙD[6y9ijQE 9af>X 6 a Yً2SOox P W05>k $۶ۤPT8RÉ5oy:i\rK"d-OѴ45L\0$Alom^6N_NX֞6h1l{C=ۦ:E;d%Ӊvİ!yzvLn?&R{~,E? dM GiA[q?l#a+N  5 )g +GݤFaWDu2U! 8)Q#e9͕QN4Jy@.%0۫;chNVs"咜>;^#"G}zƛOu*A ں̖0 QI s^֊Zfkk'g;ZG[jzK q*j235XDH!-q&^fk{Ҍsһqj ؖ +[ji`Oژv1sO.F AoDwzU;~W +cssDWڀGu9P}ޝ]  1ew0Wާ뉱J6(mo1"28\js<%#p&ߕ0N}&Y6i'-Tɕսo6?LTib@OGg)d)Q$MHŰ gfCs*,-w~0}xRSh ;~DP:y7'?;|{(~𪋠d?CNY|K8o&#Nh~q>҇ s-5_G;SMM޵7N5Q~#qWwșc-=]P\-O):UaN5B<~6yh{qo΋ɴ7ĔDA4'M}?6} Y;:QO+[n"va}=MkwF<a%JߛvXjՒIm7E (V=Rx^ƕ^=~V7+.OTNjYAz8⪿M}7]'m1N*.kV t4H!&X ^飲nIANO"SN=QӖ7P^(%[;#?0*2\CCOaXpPn횪Fћi>|R_ć 6b>=} D >d+e}8K;݇S>F }!Y(b}ejcp--?L~ҧ>\˜;6ӊKaw%Z @ qJki!N/ qˠQ?pns q<-+4/ʙtoɤBUXײ aR$G}O#΃mB[#.Bb Ȍe,3~o#7~1g9>9q.z58;Bn"QP@~O0H,b2mk>>ʻ_9}kdV.-rA/r y@Y0Xr4𶬜U %Wس;p{󻙯s +VrasnΡ4ԗs7}}ϹfX9#Cׄ9nyh@}nٮAH( + ^ +/-(;W^.^[V՟ϓt­?[ PESeTij(ՐhGK~I5!S SyY)y1 [m|j:cHEo9`~ _ʏ1J;ϊVPJtӷP/ .i[L}%jVNtfnF>}6p}촱z췉C}kdiBn]{:sPI >*g{S՝~0S>: cW6 T#xC<( bヱp?#}yyd.D,0y=t>=\gcpx6Yl}}W.L;sx'Ϝ |}]dڊ;8ޱMß?8^fa'p;c1u݂M Gs8ȼ?~w ;, ɟf2lrm3.Oxz֊yIxԳ};#WA*#:_Ȳ <ԎՒY{!*+~]_%l7 w30-4bg%0LLoL'RH@70" +^{=o'-{K89rhO #(2jxw"R+؈ +:ab 6R&Mlz\@U_9^^YG@ %;h-0?DIxl6V\%Q0Ed' 0Vۀ&6 +?Wի (A~Z5ÈScXqѢg p H +>Q`2=T@xV jXj-`/ <{R1? / +($^x0Wãu:#phMds}9Uh&UG{wa|>'B'XnR軮V3%&P~}DtGKXr,JpvA92l>ՊHP̋NfF J3Q SIgכ 1ÜpArZ/^eeZ]WngoӡX( rFxftώOx&A7bKwEl_Nc+Uӈ!=~Vbmz +v) yo~J!u{e$!҉@{[VΣZ:wm c>oܝqtȍɖ.|]*͵JD|n% %V)-70˓h)U*X>? N- +em +I7Ef}UQJ1'&9 + +aD +9ch1bdx2 Ř*vL8C <􈼩D&m[;C;$slW'/HA@tx``6Q'1d0nI9[u kPC`4h#*4{5O-3Nca]`t*vPp_: wBsxŃn^j\[_q+j::߁B!m + xcl I<~b2Z|2kDq']7HƖ2M }L&{_/=Ah6hz۷f5>jT$H\Rs&PψG5x:3pqNrBO@b +ͶWe j"5iq3KQ}${ D@6k{9 +=rT^2sR7i$\&086d| sJ +3 Z?4I1寞DRmA YEUVKׅP⽰-Ey%Q1 i^T1yw.N:na?(1LīlCr#ϻAބku/eMc[ϓy,o^$B47ʏiHƌ yHa +ߍ]W1!#&)[ .LpgS=s'd%cs,^MWf\/^b"tfxT@_Q|w3 [qlr<վFPQ¼26H&1@4(`i<&Jv]+"3JABoxAbڸ=骝Kc)hgj XmTݳuqXvc&+a~@>.ELabT0ڨ2]Z,q5Tw8?:7!"簀qV"@CCyjV +c(OQ;21V?3DTÞߟ!8#e2'R:=Pnu,#.i9$6B szRP 9ꀯ`?/P)bAͩݹ AdbƱG̹8;sbx-qͧN +ד)a"H/HVcO +c7g qi#rM_yM*dZ1V[n8݉s=cp|YZʝPS #" dweI\!=͵ 3ɷ[IU#h$KKMf!?_dVCB  Y@3ؔ+`_}AI*><H޿A|퀿sm^JȗLݤGn.Dl_u->Sfte1XҰN$9?:\ޙ"*.j}2CEkԪB WЄ Jәr+HpshXy6B=h"==nz 3"X\NBm+ 4KRBtDj!Jp%udY@ycȐ^16A-O {wAqL*SiKXk}dc{b϶߶i~`_<1kOi[kvY V~ztj۾u4_Z- V]}lckZi~W<gϦ;ҧo+Ywm+v{sgpzg߳8lqnqyb;fhZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 R~ӯ[/o߱Ob~K^Ǔަ;ybl:^Kx +TKI !c^ŗspn2|:"C(Fjq3[=Bnfs0/gTD2Y*7>Nx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#Nt052&PAƊC OfKkm8 $=dN("zjB ЄR pc- ЁT!p$ vHNɧc QaQaFPb$%Rƒ# ùɾRb ;X1tq酄JʕpHS<^bߍ8KƘjJ1{y-')\>Sar v;jƆYRHH@4aψRc9DdHdD$IA +EOѻ44Qr$DbݠˤO'iC@fݶup^b>}8 oUt(jPxi} T0ɦ]gCo6'Pn/!ff/fV|P3b u⡢HIDG1'U׋)-Mѿ3FQCbƉK£LG.ʹ.]ZŃ,L{'%։`x d햜KЮs/` Ͻh:GߌD`_7ByG7֜f |?#fF kMe}v&| gq_GkGYspsm{Oy,QY_>\[Ǎˌ?j.r$6H؇e8qAz $PTDyincךg6{ߌ8)tb~Rq2,r DRut'lg{[>d2>Δ4s[Olɵ=E2kͿh锠Z<`ti6JmN=(pXq0["bM,cn}V!{IQ$e=/QyzхJU!!ջuݜ@VU&eMXzICKoxгG0w\"s/z̝.Ӂ"" "pE&p(Ƴ\w!!cA$ձ *i!G A@3btF\H!umFH9 +{h٬T}/IM4 \"*IqI5T Iĸ}a#CpPC:؂8fCx~hsR!1q])|XqwyRJz, #]r=Nc)"}@jٙrkvgS|Њo^Xl [&tX懪#ܓ*O?HJ~$o*$c :/Vӓd6R[FzV.h+0Q`1e,Kn98DGmXz{v^2Umpb#3{8j9#9# +WT;fAoa?Jx^XiU2KIkFtwĨq1Uc1,Of7Q$w 3[cAPm^ߛi $hgD[7>ENy\sz֡ŠF/S-nc]@c'e?6µWLgQYFKT[d\=6(RK.JpetV kR׆W;Kѻ(nCum@&o&-mU3Vׄ3jԕRRe#!u&B3"2ǵTidQ\2h,j沃/<e@;lrs)+v߆b9&0:2pe#XCyKPTӟuՊai5e5q oyn=ow"ohyqpTD}wO#`҉G)DpO6bIp, 1Sr_(y _Ghnܣ5G%jԫ \vWGtv$؎Y˴r"gI V?; ۱}U1!Izv͖`@:IlД$y >}q2bpYo>s~+ ё~Uĺ 6cHTF}śOE݁ι󗟰nX#oCI>APX (T8Ѻ"V}$-t +<Qy>ZҊTᘤѺ+o(Z0,2SF8̷@0&iZ߲!m=(e\ E YhH/6Q?kHx~p߭M .˨,RڄČVdſ6iVqȈkҳCރ~UQ4p|/p[|vmqI̾z&{6hcڥ}x"ZM lW@t\er VzW,b0ZYm]eW k@PհZu_Ԛ Y[6 ?J(WG2nU2ud@au"_'CRd"=:ȭv+]zXiZHWgVbe[%Ecanlyϰ6m[7p~o22/p I-N}%Ȩr7^oo&FP4&FP~"b(no2p;\oyh^etp*mB&ENoB(HRϲd/2)Sgkb]5z4]K+m2Z"c?)#gm=F:cÌ?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M-p@KOrTI~j֣,E+,9'"bÌ7!m=N"<1z~ږkYdI]`\i7^FAiY";Pscf9\ϪFruTEGR9a`u4 O&x|3Wťoi:1zɡ24$-qs۾IT)HSrDä7abp \Է_O_ǁt kdÚ?U#_9~S9^ +ݪhUw>;)}*|| +[kbo937˲-w͇ea'9=.hG.9UCz"t1i׾3gN +TA*#|7Vg:=+9CR:e|!jv|H@ʷuѢ>V`o17R;;De }L+V y*˦D.5kҗ$W^%icI[-3-~2$/OXC?F0Y.7v-vYUgT"GI~?6M>E)?@]=D 7j#%;]&Z(˪N{z4k:2*ћ Ԗq/xjEY(s⦿0}·I ]i(nw"'bܐ҇(}sm_tMk"ۣ=& v#)O&Cv(Ađ[$5b~ 6#a͜4*Ų>bju .t+@\аP K۰ϻ:=VRgNL[4˺oBJzӀ%rS:\riRAL NeiXL]|`r@Lկ4͍VvXU8״}""^dy.0ÌwQ#%iF9Yѹ?[>'/(=xgjk[GA0|; +'gP#P;A2)ײCCQ15';-KV hN8*?N$@̏7?Neagu>n%r4kXeu~[wIAtg[)Tt +Iiˤ.MXtYeIAx +͵|fe冚(GRRCEH jC j<cg#2*ؙV1]L.hǨ? +{HU +yͤp*I=UFa3NU4)o +~,dj㪈[uvͼ*^Sߞmc丠,EbN"I|1xS3lqx.:"iVǚ|c62n<caIcU,>ܘeQ3gfY_=|5n[scgk.{f'[Lֲ'54#n5&DѮ448 +yCKTuQn%uZ!veBФ!KP[X3]b`9J1nB$AM?Uva`o0Ͽkn"$A}[U?__K_%IJAZ(MUk#71r'ύ=f2GSVeiW@2 &`ڍWw <0pbgM^D}eV me;ĩS=MG!Eɳq6^rX'g`-qtP>i(LӍ48!9wIQt E ,/aCxxqA^&ZE04&ѣK=b5:TBE*gR"-@to3035nA}n쬥N5yQ{s +3+ˬBn'yӫ,QCjZ̴/~;=4ӸF ]N +ԛ!-MW8kOnYz"b~hwqAr3(lK-1[wYu:̭DžDmo=̾rd"r jQ5UoӲD?s?ͻ*Ǩ9m[8e +3k瀜d&EN4-0֓c~z@Co҇(ufӲc<"'I۸I:F 6rrg$5 T bq߀ؓ5u+h OØ M/7QrrZwq?LOxьb@[ 'n%&=yMkI$"p}տk=l37coai5oVndկfamߤ 9KT~dK 4!=ah=|ċ)F3c[bXKsPøs/|z<~&4~# > +Bzha"AK(p$hք(w8˸# +J EiWEȟ7!(])GP&iݡ__Z̛5!U+ +U.!H0o!9fr Mֳi׮HO"}HrǤA[.cc+ + :K(Qy/gqvJV@5UBn5t1;ɑI^)INR՛9;!&1Zv4|!`rǰF|IN_)rg}HWoڛ=sA̘4UY__b53kbIqzpҥȀDb~ba*-= k/#O0 ϴD +9JQ0"n@4%D˓׺E6r,v0OTsE{*1m$_]^ތ.5D ?\oĨzEˍ2Lrn;|x hO?z: @& +KײH-N!258a-v#'nK?{ȱg&-doÜB/E(E#^0NZ*m?99Г0q4`I)MRd(nI!HKջȗM<f2v!Ξlx;$' JG@(`Ds_I~푞%J <40OݓqIP&;XSW"^ +z&m}rg׶E\4˪Zgᱩ߼߲DIi/ccK8UHWYGY5qۄ ?s>SYԎoY"t2pIy -@;f`4ϨW!B!t,Y? *-믨|] yrSg({YmtbͮԑYFY;RKWjff5oᚇѳIUѨ_L  #c>R=?7ͧ(YE\QvmE .|`"#Zo]VSG^].o<]d{%Bzsg$/# (MA +pr6pӾY$k!px-2lsǗ1y#^#+͖I%'˒&%q_&]&i!( ?}[T!y: gQUGNd2׮/yKWD \nd + +!$zO˨ėW]B>ҶC vumߺ0e? =.%0T[ZK;.\aK*ϦH!J=OR5"-|+\h930aii@>}XŇ +pC wK@lBO4"l`iw v$d`ifiN>(m:^eit"o%_̫c<=PtL|1z<'9xC-B=y5ʩ_})CUj=MByo%93=i(,=bG>A2dHC̼U = `A I d,+M],J2@ڑ8M?n(IPG&!Ls@I{/xXo+o&Ǎ>D,@iJ:̙q@GJNO"_M>& ~|,>HF`c mm[<\VDr8ˈ#ǦA p +K|EO\D{Me|| ᮲49^6vыd$LIz,|xL-WI:}C%p&I6zOҷ:UcWzzh'`ɷ8Mi^!mPY֯(U}I)җ=o϶UfحXfXܠK;7zW.FȊqA5Y&!Ѓ >0dl%k'?} +1W?FhNьuY27]UD /M\w5iܡ"uEFE2~YE;VRgǪqtlE +,w=,B`çF۾K(nqӢbbjlqQ935)GPZk&]O%*W`X{| @nt3!WØ@0˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0aR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$z_Po $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZSJN1%WJMX^ζ6spI;-2OYt }қT9CR7G(f$.d{Fu;aϱ%,#@J'Ȳ[4 +‚&KkJz) 9{.X /S" DF—X'9*%7rlyHHi[,"GJ}LT|Uqc<``X#m6 PCGTp8 spQzwP@!f^V"yTϸ CnY0caupѓNh&'BSCIXƂZt+t.锤TP)8{arF#.ԠlG|H\'DiY-/[Oq e1TWJK`{ |5kUkf08l}%xHrB~ByT= 󻓯G_ +HgY =*_ C>fKr'"C +HA:׃$hlvV5Q<[⑭}q |<9X'uEJf%4Z}F9TFZV Q KᏏV@*EP("<3`Jƹ!Şu{@ +@RV#KbyN%N{]n1s| bS}9h@5Jfƙ褓k6Rux<7I6k:OO*ޥ}Tλ, J>8_PvO}+/*eM@O" +ٷ18T.]Ds N(ݮ#18UtFưFUXUG }K0 Jm2`_#ma}"߱c4KG6%޳rU}4<(]\_Lzw Lx?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯsA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)œe㒾6q]uT ++kn{1n|(kt^Q"BzWg CFVOA?D; ,ÅuFěu ^H__O?HoDiUm]QU jln}!AfBvD4) XMMpY Y[ڵ/DGF$Gy/04D^Dرql xz9H7 ܻLuoOLTI,1Es;6--+#Vf+p1.Ys(* E +UAdȧ&oY8M@+Y +cwUxti&:4FO6Q5tnQFeh* 29 @ U;EIMl+Hrj JeK|gqfo۰[W)zFvH%wM8Ko`N,/E|زjη{v2vEբ3Er,n':Z>e+D7 U3/o)k^)cfL~Ixf{]ʚq@O]F!;q?p$$B@OYb150E[ +dJptH=8 n$LhiՊX -HwP8QlLDI5NA{p +pơ"dq+gc\.]2/]))E gc W>+NT艳wm]H9Cm')Ug cHirD@Senm@ \(N1of#%lh2-?8/(GEǠ暍*)Cf`Xhנ,rq64BLG72Q]܍g&*hJ:xr'Yh$F3,0nFr;1aIATV ~QC=u!= w^gFibh>ePu*|ҜFNg#cv,76j7r0q2VKo`@~*rI+\;y(Ӄx@O6=4s}/Y}^Qus֝7z~Qg9R}C$nUr>- Wꈓrq0S#g\#s0;,b[LdVKAjēS@nxB ;|y +>دp =B?`wc]8U? J+= VRչ|ޑϩ q96qI>ށxsb"M{&O:u:S;ߗqt^Q\0L3;Ty%k/x=_\r@.;_54_}kAZeCHh \! =Jq^I/>ƑGq&61$`:-Vtrs"lw(XdӄZUwhp NxS^C|%cc\f~m> +R2ԨzYIī0-X"yrnrlC)p;GybYxctr;*pV/*1NJCw|/$aP˸  +g~APUy셫 ­g SItKftpffLKr0[F4cu|N]hS8f̶tI agrN{htS@(iAbnUlӼ_]\\nsg02_>6Fa[w {{v`ש\8ؑHۈ[ '9GV2%-G9A"bzQ{tqvMtLo?`?tDgzy*|Ǽ[o}?ևyW?ku~)h!C "3}WEN +_^e uf+F"$0$it+\zUڙ $ɰP fhГppTK R! Ck}N<Y}襇qjjsbKX'Ǐd7JR2$% ˘qJDt7[Y)%<2p#]]j4ۡGK: +6*P&zY߂E8z2jp~u! }C)z +'Aa]=x5 3| T{eMmWlK s;"z +՛t3jv$OqnoVĺz臧 %G=NI +!㬖>ғ5(.$DRAA/4sPU +~J)A=Uw`3<|T0J p95@/%(pL+ppOz-9`691V'1`cVS^:%S}\ٴU%z_킂WGا~g }YJBUEX'Q<_8?5/6&D|".%8K0,"#EMs\"%>>%r\0wyIfRUZe}9` JBѫA0&J =?@lzI5@4j_; 瑬OQYNAA )T IMmu"m'ɇ9&5`W^|,EKt%S9P,PueJ2ލW-+o&$Iozk;`/`9648/D  +akߥ3q1 GNmOm F̆,55m ax%|s[]GBE< }V)詈^*|dI1<Py^A狪^_AT+D 4t̪>ʺkËdڗ9Qx;i5Ixނv~C_P3A0?<9ԯ|S|.F> 4M=)EQQp/[1-NL3>)j7NQMD'~Qn0 %$VXRZ@?4f~ +ՠ~ + ioz_ z XeJՑ |kFt,[1sp#fq.~q[ GnI܎}tzӋZM_րA6@_~".EEЂA1v?pamA`(a6:"E;-Tvdq;eW)1w!N`G֨_/.Vd_0UaLJ ޹%weLZV^բ[BTz'^*sbz +ohpTӣSPkĕűQp0VCk_0ڐ]- O'[wbLJnLb8{+@l^ֶ7 /Nv쭤#-9p̋(w]]]1J*&6-cm/J7CvDc!LpAtKLBٔ;$,&Ɖ[]e} TԵ٩W]+۽K,`iu%(t+nJ#.ø2]KeL7..j5KR]ݞ%D߲U75֭`Uϻ +/lÚ<lyy j_\EU]R6iؕpWV칼C>s]Z/Ul.[0{jflZDzX"z(8JYYϢ֭|Yd]> Vzl@^RŬַ\=v,XU`x1 ?RxO5aK Rdz^(;_T)#S؆6e K1)[TuH6SLO*ffPg&%.l0[L7:%Ym.S`S!>ۦt&RҒKM !-G$l +Y"Z4ZHߧ5kv|C ժϠ 6il``xlY +Fb0O:2Xpw;%j?rL aF]oci86ɫw7∢U^ !1_XnzEϽ/ wm.z@ +V٢wM>4mI߅Ϝ&+Ӛ !zχ)'իL~ +)uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85WwG֏ɕ_I㊙ +$Q]-:zRpgߌ#qXRӦۦ] .%4~r3`1)@e<: +6 z%^>e_G8cqRGAtDFEw8A0:jVlj*f ++fM?ҮoAoQzp)xbr!2Pg q'O=oQAڢ A\ *0~U¹s ֛c}RMQzee]7-bƂZ{*ĮtZ1sf6i/lBD_S,o+طuCAjFDE*)DHWMTR6Agz~0&\9'I%:J59gHE;u3Ί7na;Q?A7*zL  I琊X3[nûݍ d((}װ;%z<;*'Uj([UyVM_Xx"}2٣N#\@:ؕ`i"kc_#\1)7fŻ© +y{EԱXZ H zIN9MH`\5PkY Yȁ0f7O#' J +++f Lv["‘݁!Z/Wo,wYׇ n)@JfIdb0b [uv&'ǻ^6?@ʓCP" ;SkB*d',3\Eujbe%xk{#ً z(ikPbs㬣Qg7UoFm l{P:sX%X +Wٸ/bNt*{1 BaQ +5dJכD˶WN9)sțPv)+B;`$%".>gXVB BE?REG(ڝ4Ď4F:"?4O盛NabRpA. a 8eqL\gr/%/ρ/dQ}TXG{R83ӆ0;VX9̲!8`U^Fc$=|C(gHYܫ.\O\AW9*3yJ9DH.Ge ‡dGd 4׭_],7W6 j= uu'2Cȼ1@bE,V0u +ezB>~-ޮxJdVθrrBZ=P&bEQO~6aP|[)վ,\^\IxZ=( .:f9&=ڊbq3gb0¦7B0B6L_D}rʍ<J-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZ?Np784wb2kE x ^ +n%a+Zch<ϴMgsi%#B3/-LϦStes +xI='#0cy5Eq!K'py1f^c8vl%~Lv&2ib9k"n 1oK3J f:r/zi>Ѐ㝫y +?;~%!Yi lDfn/c5#B YWY;,_ +okbDq3 4`qerQj/1kfg1{؏N} +/KwA!sphރ Ə n\=AY4u5ObmFc+`MCwðZ2o`Y C&oR SB`]BCFM)V b*_ P5Pf|%"sS כdf>dKHWV8?h1_8eK[,B 'h""ɾZ/;LYx˿c׺#` ʺl ~t~ 7WNU;,{C]D=4FLY_\Z6~Q2e +ޚƍ77޲m +RAOsfbb9 Q>`/B~IJf|Et"ʑh4 ʾ_)HHc0~K#mD⟐%0>I z + 5yilYd]rO"]$DwЁ8t;XPT6Y Hjf֒ٚ4@ b\o*fx'ׁ.:6_s}Q'1L-qQDr1(zG:VRJڕy~Wy ƌ@m5g7V +F,"NZ(d"|z+06kJAv +D zg~=b@ KCt +^u_1%ܬ$4Id_ZRnz1kHE4%h)CQ_ UcgHzHd;`1ja \W /-Y=sKA|5M¯oZkk[AUm*K 9DGn ‡ḍh7Ǥe8&Ŗ3lF^) lJ*)_)7S9KeVK)Dcr1n]xwWY{9TY|4֕i LOI x<sŸ,lxwX!rK;s]H>ϣ8@;W0=vH?]Eyn(8Pd msuhD4* ﬐x)X7 c{0_[uo"8$kTOLa8‹=n! Y˦촚98 bJ\[@Yl`y)3X!8OB4b!ePtjO~ԝ . 8j h C9:&pz?Ξ%C)NN4g +AHwؙLz +~:\دkPt)Ci^Q5z 7 #ua7;6~gdk6[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY hI1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)eE~нPj`aST0AUUPPPvճ8$oY2EQFL4G7\zVbeJ)%)5̞On^2ؙ!'F<˳mZQDF]~e 3u4k9Sn03`G3p:u#ba(6z>' :߁&k̚FL⼕}tA3/%ϤAm/jOQ"wj(8 +$Ң'X|.G0aqzzszOc`>ǭ.˟wT$?8nMCU1b.JX OuiIWՔҠdƉ#'[ɩfTvAG/|f@&:&vwՕu|巽@<:>%}DN"Q7J] n3`m=ܚĒqqD\K,,";vP4zvw?0e?byj#H +ӊW?w\XVNu5r <~c*eX:D| + `rE΀?.b va+F@YV%6xǐ-!9 ,@pIԑA@"/$ +>C*bWgAx_ [j2V*/USPE$( a†G,O(˪JV9X9$OB3Q^anm0Y̢QX2TWL<yƲrOVqKYX 7*ab9"C4Ͷ8ݱOƶޙ{"ez bO$%K4).kؘ>۬}Q$]m?z>(J1E,OgtaH_pX ޞ)w78 :vPO5mLnEZy.N@=% +׆ ++L-٤*cu9è4p/h ۜLRgYpXG jXʋdqI8^`Gq?TC?r|d,s o8~u_e~$BĻ'"zog(wCwB}Xtb:$cK1Xȸv29lS&VG*o)"[M@B `|$YGBTK5G|F?}2mb5K&P%PxyGjtNO>ՊSK֩z.Vy5`_lY?a*+P2 Zm5O(WVEGB(^HeJY Q pg`n֩ήz*qPܮtBbGYF骢Yȶ +SnyHmYm?G*$7]ifqOZl+I-k+/gklcppOBb =X6$x5\ >0߼bss{1հ)+yfII3o> H˔/G?<^-fKƍ𓣒48;3!z?w߇n2%_0ǰ#E +[̖&Qق]fZ[\us~`U'Z].N*"z]>|N#5ޡHެ@~T"'HGOsgpeOݔ&3X/)*j k*=X?;b*C1^% hR5GNu9۸19YJju&͖l;p]]4[oDhE6?{hЬiOWpkRT,c\hlNN=xճiEUT1yџZgB|IܤC&5L4 .6N ^?̈́ƅ_Hˁu@՞#n3㊙H;v(7_{zmr.7eajb:|%y 6Ȍ#G,K4oޘ44vLKB_WBz#AmL5LúKticC1n ٮc>z^F1.Z@M:kZREB$)/j9l|I8۲h#=Jӊ!T<] Dܗll_^Lp'OVqG%!3_ʂZЭ(h:"+p& 2I\0 qAY6a+EkG;E4Bcmp7 ~n'Ik+n;=0בb`?wWOԧE㶶fZ &IYԗI޽A%Gzº>qtӻ-閧R3Z=t1JESC~#}~qu#٣VLoz+YN; nxd~%lki0eρsA{W#AWH۞=ûr|{Ԧ3%~C+~qZZM[7ΙHjB9;YC0M!=$8reKFG?A,`~5L?0)̤|҂u bvF: /׉FjU°VY]mSR]N]OǓMtҶ ƲXG_C|l=(z}#جցv#lO@m ;xO8Zi)\,L.]NV[E|kއn4E}]Zp =j)_W&Wy#\/` Jo[3vXM;lp7?r*ͭ) CD02  zNJCxO8tyv!SM,p:@%ysPR5mGn3r rj=`p +*`[F0T}t#I8<&aoQ?L3?y:{yx^fma_l&**<alDFkH0w4 G ]S(Th1W:AKիM;Pp˼Vl=ڣ4Xf 3U2tF\wtRUvhWCI;y=mr0MB9ZC+IZAgb\00Do_p"lޞ[+WZ2X}Tq^Dn!$OpCn:sP/s}_`SyG`h6ld PzDDi ]fEfxf' ⸒ /[ dAd07 3A_CُɋL2.O]ƍϮFr&A\' +/h>۹C4jc^w*7ֆI4?I[/LHkrh0 & +ed/< מI QzgWK4B9ɇl4vjNEL2ös;Ep8g1%a?Os:!'!r?{vC{+PA޶pݎB=e^1n?q/Pd[ݳ6~7SHj?E;N8zDRn O;/ #4o3*N+:%[\8;tӮT+<*^[[eLn9Snr\v ;U@7SC~Ia E"(B #!!ZDP c =t]Lbr`qj$/ J0),7+;:>%0S 'S0u_,RPߑw/DROPLWB9G}gSe.bȿNv/qT_%)}FwGG~WO꒯VEj@UӼ=_}W3.N.z},:ʈU?W¥:c4ݭ޻=?\(W/e~yf\/$Y2p+dX#lHJ㳞?+8s]ZOA{1|M95urݗG˦*$g#B80מM _'S7#7-1G .rd\Oqj;ʂOkzx-)j^ +k7, 2|> As~}R1wtKIcy?gsqg+= dgsnN%ٚ"pgܫ%D\#tx|/Kg_5pϊ5y .IrO  + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHi[6D!D1!D!D.!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orplDY!D[!T + L2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 +60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tmr(qWm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*D\J(ӛc2ᤖpta{wzD # 5.0 U?CKha$sBalDT(!@B [& +ǣJXga, %haڙR7F 'TLdhAz'E(PJAvxlW꺺̻ʼ0˼۴2FwwTO[YY]Ճ<\tGujQ-FʻɶkQ!*nFՍjj#Gɮuo~Li"vR_O*,$LX@,<P0@"4 ö\ H4&4* (>6WNn+qPM[ɲQ!;&oMwɓ^UU/{%Nl`WQ0yŔTsGBQFbaF*BՕw}мR8 èFza$~za,\@yh E%Ҹ@< g"< THH6䀆6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮ'N9ogNFrW!%IBj1Eąp$yh^ה{0G^w: +ccBlYx;UgfeBi`@&08Ð8qya Fo@XȖxh6/(m{MQߣ%%74# @P( e1@ll<\:rEa0c  R MQTuOz+PR 5_KtGl֖>^(+ef|ɀ g^6LN23JO25)J`1 ͛WVg+S\ ?l:ʡXo+;mS#\Qƿ+I3 ʂj(Rsfϑy[#fCt|=0 ;%^>4ޟ_j&Ej\ dַY $.,BM!@!FV@fi~4RFP}H:kԟ<{޳"$? !\u |E҅~/{gj޵6zՇ?8k%äZ,|vT=9zC½kһFpfծ AYt]OMpn(x@Μss%j<lY@` +t{i)u*Hc#uBkLppHL/Q(ʃd5ɬOݝj654+Clnõ 尚U'4M‘03@e?޼]Ek:gӮx`OpA HE 5Z!g]1h1D m@$?KC6~bpF|0C5gy[A*w@U؉J:|Fdirm#jDŽ$ ?RdzઍZ]4Pg{BYV[wPΓE>ϐhu&s!&"IW_|l:TM)i p5#Ck6yAGt_kdbS{mOz3CqIC/Kꋬ( jetw Pfwc r_h/m>5Zs>4Π810pሳ9.D +ofx2Ba %D$_drf`x'?J;,Iqr0(rO`hwa_5"(~( 5TRvP^cbjv{Tg)H˲ g }3#K|}"ʻbME}ZdbϰX`@%,T+D< {zzLi-<@fŋ$Dps*qyA9Q!:*IiJ[7QTD0$%)1mu4ϨevEZ d,*k"g ghj1CÐOh hp$jA]{o$o|DRB Yӑ(trdៜhQf,cЅq=+.zjеÔgBH:hau +B+s G{+^naM.#=[&Fk0{ +AaR6~ r8gda4BR{ #4'%hUp`%~%rK,7,x6 ߎ7o߁Ge1C(mFYɢGAX/h QNa ++m/CusUY+0{BKiN{0 OT0˘Hs]! +b!|cY u J +ʜQR9II:GaR$,z֥X/A?|J@Eý -ccPzhROim9m0KM}$pPD8>l?J +xGV[e)> 6Ir-OLR +0g>Jj h1b$L;g)e<$ K9ɔ[l? ވ> w 2d0.F*c&kB{*locg_ +7ڲ~W`&K\ryse_Dqk+{"/@^HQn<=pd&ZL%E 6E$L=P<ʂw^G1c{XbQSk"Fшѧw&|zyۭj +ŎTaQ]> #dcH<,B(d+Z +!w@$=p1naEz+ddt#Fϲq|'WqG.dqxE~*li j-f^mv8vzDN0ˇy +`00;)o6(f;PL>-Hj[C@mۇ 񴟭NHXri{L,މr2:Zt*PLGqbhܢg+x NK$c2g +h+6`s|cghg⳨76i fϣciZ1g1(HLG-ȁ%C?}h!I78#IQ||>3|KryXBH=GPdYQ>:. +ՎAX&58li +/J i\?~`ˬxI?zB^>h.Kۉ`%Mə*9XnU]l +ʗ*J+ ٭e1¾7n z#z4V  ,c~d@2uȾ5<%cAt{i"s!&H[orU5:`(ء/G. &Hal@ wV|խ"HmbVФصZ=XP +w$.-p5ֵ?xѠ3_jRklL٪kUu>ć=ԓ+fj/{0t}R☳9X Ml+dFBBEL +Gm"%`-9mlo\W6Ĩ;dOjjZIvViZEy6Nq7~oy]ɅS"GJL-Ί$a1)ᬷɩ}:0mD"*U,c3bܧ4ٍ6v5:m4 d:XZKϏjfo:X'4n.;t8O+] +D-(Gƃ՛tҮ3 ]Q:m +|8q8 z={ͦWx4H%- WHDQl +H@^kA@ +WېЋP*CH.TNˎ2h J"U\?L宁 kx79N/L`wHo/%VPwۚ$˺]zr=VVnY*&v+5d>Ǒ P7seiayC1]0W\)7cH.lS6AeQb +}$;Yz xH 7ԷP@~j#fZ?2@=\JVGO\\Po.`fز { ;QGˇ%٪쌤<{pMW7䙳[IdUM$=z&G6Ҩ,Iƒ7jV~cuntN<lׁ#Ia3d+ϙ7$OgiPܮeqPfG?:D.UA9"DŚ *9wĽ?y?;-!RDvtT ȭ"h뺚~7ё T03qOb4]pIDs-1Jk C f:µK9`~'b;JH-+28 9yoZzFUUFS$C⭓LO<$Nb%Ѳ$]ȳn{k9?dҭҪN%mD2CIi%Ux:Fd<ƮE AaTqUIOKS]QKk}V,|/D G[US8Tt  21FB13oS=k_XWރKYO5Am*O4S#EYUS :<1SkN(̧^Jb_DP 'm4"KvJ%$dXĄ(oY~9astYЉcZ,uۀP9`ʄRZ ^cc5<aM;G5O{x1+; p-;60²ښPXa}wpy5} U2dQA]ؚp F)~@} ݿ:n_Sw[Z٠?bEOoX:Zj/O_X'&l:%tt UU]V@>9Dp_wNj (S ӛ﵃zQ]zmJ"0NsiJɦ  V״5g@v$=$_`X r٦c7b>#}~v`،R/I1C-ˇݖcHQ6`ALGׄ]B)F9 I±O +ו%Q6],$XϠ/ޗm=ӭwKWp5g1k1oqe;~W1÷iLo=ǻuWRzW o̦;s:ΏT_A|\ʟCs{&EÁdDh^>|cP1! ThEy V\%OL7$xI8| j^ +9%˅kKi]a<§ ",e^O׋>~c|TL~u(d`cMpǽ=Yb&NyoH%?pqfNQ ax7ܟQ컎,A;@MAc*@m(?piD͙,Ŕb;i +i$R^L8^2<b!c:* AX|D!߽D 8n1)a0+@7ԫn%ɵ{φz[*%W_R4g%P.a~ X`p'^e)G {PLf}M*P'B9&T +"6]2MK&|֧̓/j!i_=G$z(YFJE 2m)i mi01j%wMa] {% Y26qP6FbdF}RZx +'ZI)s"_EsN ՎҬpWU# #6Mya\k+/V$4Q縆w$D@-!æ>L`qO߿)̇gBR(9Uxއᅂd˗D2LRݹZ_4l~0|HNd>3_:ӑI *Ь{S}:fմ9a\IECT!"'@V!۵!&1G4T5e k!EuHl ]_tiu|xW.MC2hMBedh!3(tn4c"F;(,b9%c0 '#H[`@nvR<.+QꏳXgZUuw_q !~#L4WTP;P"ՍsɄwr<$]v9jLɚ7)s|ƈPEA8SyHa1.xoO t4OB/L +kx:@XX剓סl}iν̱"Wmf qrڥkv׊ί,zE_7=A2$RIj9lrWK.g"zږyy+rMƨGj *4ǘ#*|%|p>I!pe9-X xq<peM~Џ>lw6jx-BxAV2i  7ݰ=n"7Q5q?Sk|u[ ;+)CuNYf |12at;h()!W6:3 F}ʧCon1Bg2Ձ}z_|0X^>V +U! 0ZY<%s 4 _ ǡk[7_Y%'%mUlĴylnP1*MiZ tuѹ({F4XbՇMnZ1%k~]a +I(U6Td{L +Vʽo+W̨y5"%{~uƹ+[xbk[ʅ~eCi8ZNgǽY&H`T[tVgTӠu0|ŕ47c}[we7 +endstream endobj 16 0 obj <>stream +7?RG#:ôz4-&fs.8|3۽̯Sc(rܓ$pny!@_Y(L} , k9kxPN>,J3-7K個 o~qd4jU8Zmߔ~xZu~¨AP(IWzEG9Y.TU"s`65Ľ #ZrɎ (,A92; 9/3zb)N%n'` +vf3`B+0\E%j$Xא]ߎmFkqGC)IżN@?UF`,4ob^b(ЧEL×C`2Agl3qH^ՅL>o +2 D>2%ıΝ\5dn <ZqhG,_<5ZkR(ydr `6")hMƂ`A2HW` 0G+(~Õ> Dr :^XcAzڵK]YSrN}aҩXlB>/sfXn`>ҹiM[xKN %ҥ+wC(R4mCzìy>u@=zIZB 3`k 7 Z{O'II'3cz dJ)L^,YX<̼߳y)*NŕwUe힠RPV>:#2+ㅙ?Ybu&)P4?Qq +co6Iy (8=)P&KY2LG>b"&D*<)cᘞ*DU*Sd {,FrRfz*iM=Sq( @P Jry*ro&{gaf,U*T&pρMk3֎LK^ڠ>;>2˟؉mo]_T_wnu!Mޝ*վA՜R&"64;r_2ڸܸ{r2^B3"Ejצni Rdq$CAju LF UDQ^XP8Lv<cBDD(M2l4eqSqU_}#.ӛ@-mP25ej2LW.nMHnr홈gj8(I^cRTM&`XD XbKFg]q#SFu_QZ{fcz>"jY>&e̮﹩ϊkls-{gl99 ++'ze]0a;"W2:7)(Hdp8 C49I( |94#2$i +0iah@Q!Bc1"0CB12D S'όw/R[|RɨT%shW6tW, +S3L1D8Tc;<w_cM^\'vX5 +D"b d-~ m]~1~?D6< QS U=βMŮZEIi[(#jzzK3("KIJf?Q)tJ6Eԯ|B=erGkآ߰,t2442 +#ѪN&#*] bOk5hgS ;-@Kn|y\H"[n`Ȇ$_-Fh3ylo;0a,u`c#o& +IG+[&]&._;*^DeV ¦ LM=clUVrTE,q|JpFm Ƞ +:!7K9!х:&ɽMWEL+:K9:Ԧn(fAKdƞت!՞-<|Kk2P_іCN!t៮"E@< ?GvKasQbz!9.mms| +Py-|ZqG|s{Bu8}g6'ܒB47˸#b6dM1n5|)VC^ӗy' ~_C!aG]ȬҞ+GAD ;m#tdq ˏz ұ]K,Ѯq8h;`.=vk}/R.0"fhF m.I2z +ӖN2(`|J$IU b]cXo]U5es1r-ske:%%4'3ќS(qG4i4 Ii\!]@A4* +f$;V$TetcؓD=C;J5$7hz$ =e3Y + _qO1(۾FmpQ ?lMV-ўX{ +$3:,aeEeS.9L^ muƊ䊊AEo՝߁.dO{QYJ2ZPA;1#*M6(X+Fe}4'Yp~| +[gSkZ1tTʗbX񲅶WE72s6,+̽fru6&PV ʹ46f( +ެN|;1U$s?5F4Vy7z +TYȌkN7 :g5g|"1bx&_#dteT DP ;5OP K,|C4fT``XX`6@@[ ! + #DaB p,,` РtMXL@,0Hxaa!a҅D&cG7x@ewՒI$|hdFq,ydaĢ` 4,LE 0 +n8z( A+X<`"W0Pa08X4@0Pp! &:XTpMT&pAD(X@.8l0!a1 L( L|x` ! $21 hpP ,*0XlP!bb"ƒ" +L,:`pA8@!Bą&\@B0Ń +  +&P \XtxA0@abQ  +&P@!L(H + `20qa 8p1C22"EyS. F C)fl{ okV x@$\0ʬ$Hpieju~VGtAæd 9bT+&Uڑe}gc/Ϭf^𮞓CCOʴ:UӺTEE$PAՐߺؼ߬c왏;[ÖR}g7ML]I32'A'AH``I` u{8hnip84` #0HdP ႇE + Ԙ駦&6nxWfKdD5 :Ub7'digG{w`_AzUQ=dxX4啦U눆ƞgMW⑄ Ɠ|dH3DԸv4ڐM YB]Weӻ!ѫE=]#SB(hY7u=NnJǟ $d0zDeEC+ι۵Ϥ';}Z\X괨}̢ٽ3Lu*NJ` Ə$\!Ҽ2F-֍ҪF6Uee痍 ƙ F 6̠3$1SDIEN5w5B3  ;av)' R $HI`$]K4T5 Vdg$\0ll<5un=Vﭺf\tFGywWEga {Y3bp_Kf;YM$ 12'/ʹ%mI`ɌfRvͺ ֜)#y.hOɌ"MvL^fTF2 +wue;'Г܂^RdWFiRu4xTD)tC/<2RGCKSU, ME$1su\.@[]_єT1*J.N9W岺bvro3.ٝ+2u +S墬"I)6lg)YXf$j%rJ N7by\b,8Ʀ_tVEW|'U[f[Y1k(4cG$&*!&^^tWdtΠX]2Eg;ʩɬ5 O&qf$Gnc%]V :R}whaQC֚0za6ɫn~s:]~ej=)${hn<f;H'7au.$ F+5Jg)Fm?9fVDx[e g´^5J(YiTD'a mVLCWe{' m;5a+?S *VGswv}Έ]7`z, O1Z9kyڽFV}fw&%Vѫ&֟53I8X_7/{'i_.YeǺ2wW7~^v+Z@SGTu&U/<(e74YJc")›xt]&sл")ucJk4_v2R7yF2XieМٗc 9) )ϱ#,QUzx_+u#?=!sQ qm:Up7+J61SjS;˦G5<7[/[aû'֜ԇ眎&9 []{\k.,6O_ù<ҹahl6 +)(EYɞbtƚvA)|aM|h0Jɓ;o:+bXb#ԜbH9hl +*v +%ozgIqjz1mPFW3Gd{`eZӑT)΍DNajbX /q:j*(+9Ȭ2JD3t-X<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4C˱ݭ$OsvxږFUgFIwRn#iC4Y؜.}#$Zgfw? n4|տCweG1k4Uuy3 )'S8)=kcl(]7Ÿw;TEYOJz̺ ++_ޑ jBGw{ɾRnV7WN ]ܫLjבAgTOiý}_u~\'βxJWIȒ3nw^ SexYf!_4Y_If?i3XuT#WVfr8g75EuUږli\uS* yH(:) + ]oS6WA9H)^ݵ ^gjvfVi k-g]frXެdw"˭NY45XeG;n27y,CAQYi,Cɒit|ѧzBM572$F׬8/N^SjuQg^jus*dիyJVh2Ԯl-w7egǾu UnL#Be8rT#:Q15FŴ[;+V`m;,'DS n{ؓw95YQ|̎Yv3!aIfCaOe3Y쾎ګt|rii3;#">: +bk*s~t*Fٌj6um֘Tԩ!?gyBES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb *Fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaleXhaf.%G,ϑd%͐ͥ*IV&*FI;?B+]tob'c*ZN6?h0}26WVWzX8HDa"BM0<|0 ,\`Bb!\ !`a"B*4D4HD| a၂L@|Ņ"(,@ $$$@p` !0.0l0` !4@0LX<8` Ppx`*@&,T + ,0  X\`DHp@aAT +0 p< ($Bb``BDðaA‚ ,0.\XHX0B×ό  H?<,0Ѱ@!XP`1၃}Pҟ @p-yxX`P"$&&Fd0b*! "0@pHcpx`  DDj@""D$xxX U`!a 6  ,XH5u|Yqh,"NiTno],s.49KNnDLJ94+:e}Z2CXDq ̛zM X ތp|v9?Qr[y#?Ԥa ASMEN.e4\Lb<):.yc&ӔǨffGWc`ZY#Gk]8fVY(wi\DjbTYӌ,=9#6}wZoOχGq甹W18IW;RmXȊZiH~b#44$eVU61~2KZUs_NJ]G'r˗uƦllGfMh4EtݳcMt}N)u覒u<]3xC)fy^7lP%VNvGA)eeG$ב>d-oyэ")hH5E%C8U>S4b\?Q5`Rc&9K"Vh}kvg)jIˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRɺf8t tr ]&e +ALj3*QiISЭLO"O96s͢;L&˒\.9Whڭ0v^>CbUM1j&2+(f:p%vU *&Ӓ#Uh>lp-k<AIn]~JXWڙR  my>&e&+sF-3rgMQBѕl6h#5ᯟdH-2Ca⫀tIXn. )'sۧ^ 5#43DVVܮ;$de{ tRrU&oQ'ߨFo~zT%4'2RօGԏ)2jl7Zi) #tԈJg:E;}2+oʜ;r.CKN5> Rmxe*y#ᨳ92ʚbLj賢TdV1DF.7sWY +MQh*X3swx * +ƺP$|eOfު\]e3vB#b +m9uЬ{_=,1mƣCtttX]>չE&dŠ9:LTؑF3W=ΪJ(sl}Iʨ:^R1 S܋<2 wc&Gpa(y2Ic篲KT-,R5Dx!Zt9EYFe}` _Wkm^(Hbq6;ǢYcOw͙=1w sԱ)8 BNe m(ʣLiPl;qY ~/v% ݪSe#>ʝ"GE(Q2rJ, 3'O;2[eY1`Q;ߜ0'H#S8@`eJ^>ns9H6DBvsFS“h`S! 8p\1)bH]{jȰ25g pZ+.;\b||YlSU_998*3`(1 +|"rt_IF?}K0^EK rU! 8M76ns魛|cZ4cD qhw7 " S:dci*;u#d7w/WCa[˝Hfr&ťdZ!U-KբKJC3L[Z\*{L}OaKI\eIzv-Hc6VD]vVAqED:q޲ +\|^&gM[T`|5NO7C&J6e͎'C2(*xl;3|ZqQ9"dW_v(RC0^&.e:<5)r3n@!Nµ$ e8M̆T]#m~YRXb6WS[@.ͺ5lF(af;)5Dm}E 6/4Ԋb4tH$duB9@:qDl˿Pƺڹl4PO@F^vJxo&Ķb/҂07V6{I U½J5ٛA^%yvRغ +¯,* |ۍ +T]GM_8ews433lcR&PMml(b2pqN<`,CHN*PBDhkt(Kd$sTs0̈́װ3Rn)Ƞ-9U.-2mcvv7?qhw,Q6ʕ=~[:Ƣt-B?4ۊܚcxR|߳WrkR˔ﲩ~0<+>PL*AK\Z!U38l=+ +ZO2iQ5SWpbp(zX<Ӣ/i@_CLEFq]>Jʌd|Kͱ/FFb{΋nV0Ty?hI;s<3#|r>׷'_ .̈́>S. /Q^Zg\PJ=݌h8DZ%=@xIOAN`LV3#f8@Ldz mnRM_թN"r)9aqLo/) +),khп0'$" HF{ T0DA݋tmEoQLfQ7W'~;,I`4'3$MvjzPh gDTд UBng1Eʱ{&dx&'-枌XuR6@m(iwō{8zPc! + ̱  eXr/,,+q 4O!cҍ/ ;\Q/ +uPy`*:ͺu"otBs0~`@Ʃtic&PY5z2?~vbΡ뎥WB 88Y"7)-Yt$kzDB}/ΣsQ"}F +Tk%x2]5nxnR;V3DMa}3B.ׇ>R,w/F<1EJ)?O֡ ItЁW"Use*0%;[fMWaDFӂ}I/jJhҔ}djA[eFlqZz$Ji,Vm5t}2 +?(N(|hH-8Tu%Sp\{-%<7H ?P;,XY{7qj]łj` n:_mQseʜɛ4|w̡h\-dZs_6Ax=Sƨ qj̷"oSTAŸ⪌ 3P[={D3`n*ɬMҠΞ":̕`Aηo&6(lR]fnҝr=N'Ů`~u0ǤB:m!a4[(^dvmUV~^^+ٻ[IYd-{CwVmX0͓ls|/-F"X|K )0xT_RZ3Bjz"iئ*R, +DIsau 76; YF w}fO ~װ?x1rTsD Ȇ +o&F Wx ],TҋqK??)ĵݙL*C)k sKTYsK'u*frSR&ဤr⫎'Q+rH{w +?J sDž^pnĭ$1E @6 M*p +3Wm Wzʯ ]el_ϨxۃGńnOggmtdԩaf"g'VA@-Mq+B5fCBU:L WH%ڲ۲rAq$ЮHT9n7џc{St A6fU$F s?G..H\) ̼P(\H[n*?IV4d; z;{ԭ\ L8yX1܊/My&V=cVA@ +Sk!4N,ш1"Ss E8[xN{d` AELj V(12 o؈#8bODJ^TL{5 +-y*SN} .9Nj\\x\ID$V$):Q+L0-GրẨr{;WD][`X扅j(и[T= BBal3=.:Kչs7)m,ƷQ_mzR۫\r6a8ZF-0Wx P*Evp55unmx$! ͔XhÓ}up9Fޙ}3 qT_5>,!"l'jD 'K]!}V?(w/[aHQc8z%1 +WEV&) {TG2ߘxyROI'topJa)`?)bX4WZT1Q͇tmʚ G\īZtX"V TwӊZQ}s1i7^<]3~FH\L4*{>١2JjoһD~p$__R'EĖR=bJ+bF #Fu [wnϟskk0QᔒҢ6|q +DBAI_C3d%BK8{ɟG9?]VH0 wk&qN1Sf$ +C!QnIa4dpIߛZa?' 1d9$ +7(j\#ȾxvQ TT*5 Lv/8DOi5jv! TuW ~~0j/u},G݄JP`~MXn 4֚BZVi#%񛌒)h_R`(8S_иo_)ݚ2϶jПhcJ!ބAoAY',Sc/\@-JgEšSt Rhdvl`A[-nǭ /@A;H/Hx}z;r7>"ak NvcƧvAD9E\/aB*dC\ XoDr$t,!0 MFe~ten>jTBSNURG+!) kq@Nx ]Z~/MĒF'~V +ҩ9/JeY; BbB?0a[l;8R(,B+2%`77@HKˁ +;D%}P$nfד ]$HPU"9yQ`:> vk0.&:H .d+wXVv'CǯGQ&E(M,p>BКab4Y"F|?r,G6GtJrG [䅳/ /Mc1H!a0 Ly 6*dBkBa6`XSӝb8a70!+uar41ѹ5컐43@Ȝw[hs򿨓@H&X!]{5|q8eFcj'rdE)…˦K7>z3zE=q(y@{9% ;I2V.`Xp6oq^޴n'rdvف3EG@3<^B4T_=B2䣋 M_牨g F܀CNQ@ΓVl:dƽdh9D>~r!?ڼH*4,ݍAQs La+C1hz=bA1&(N9ab*J:_syZx;VdIV're) HI(]U vMWI7^Z",%@x@/?V+lʱ$22"pp~!ݳ^mfGw/!J1pAO5m+f@"J`?vO/Ubw)_h)XjvճQ>$#I4 +#>,Jri,e H(IsCTS7}Ύ)iP`JǝFJs=5(uįҞ[]f'&'7W2cZfB1X{F5}^.jZdU ߹HHde@n'uHw9a1zC, ~B*DcfØAA7gxXɖHI*?ۖ֔dDke5V-۰r҈i3d=![ `u&v T><Y +@= @($Y^.&z@p +;0Zeq]*Dhu4/<W4I iXLʶT9c5܅`Of(K. nb0=m!&"%HfvQ w=kJoЭN=t\laS;ޟ(pwcs[ˌ]!^0>z EH nJǘݴ{hB9DG#9<$ىGxU&AL*>>5 8~+ +s9oPGoVz&10x 3\ Z/DiGi5nXXΚl'?%Ʈa):ƕIL!ÖUi,$cU/R>*Qk.'#!nu]gٿF'PD{6X99.\HI+,OtLH[-p8ftyJV(G1E)а_{RKfH!k +mnCS)YJFCI4+ rL*c7?8O;faA*rBQux~9XI|Z2~̬+Y$:g/ BvZ"fT|,1Uhωֶ?pq^b9guGrm`WJr +HrIPdȡ蚪¬i"-"CEɀ=8Mٰu,(eЮۆBtl}BK'CXg);Jj#.X0Bi󡕀WMYnIkbCs[u-#%C5F}'u%|]<&!WHPF-yŀc0rvIkLv}6;!Cb5t1 A@d65?czK%+*D.N3f|R!w< `m5Y\5T٢dpE[DlEMu6I>*5GF|w[@-\!8{.b&"l"7?6MXyz +ۄ. +ItWCqIĖ~ Yu(Fq|X䛢"wظ] ?UxYhw-([R ޛ̪Ȯ,qc/N#3\o%\Ve~l/%%:ٸ.+6QSG[$4_ b/P q|@ć/T[lN$ n{EǺ)"FRL@.)ƤuvITkFߧ TP bs =0Q4JKb\ hZ?xt#~G|0'pgPNZQ(ŏlbm.TίbJ H&0-=MW"5tv%EDT:HcqI lچ@Jҧ[8p"~Y RF`_mxdЦ9O&$pûm/Li)}֖'i$:I$ݰJ +Fj&ֈδ1^TRS1O`GȲ;&TV tˁ=QQ䤹ψ#hn䛉a~qf'!akm(g #GO~>N8.G/ԙ'}[(T E0yd\^U['0s$p#d7K* 77,+$uX*_V dZ&  $/bLuc@XWҙ0k@ٔ`@COGdv jc8K]\|0rxf 0b$!{C#R؛ GdjA$2`w:a_o++Gh6qtTHeGB=9+ ͂|s#A[ .=rz!o-8yZ0f=),"ŔVF5Eb^%RHR)v6E)T:PGZ`jox +H Jx|@kuZ5iYko9؊CvuN`6zhrtkcqE/պreNNgR2'9FPqioᇸpM0%) PNO9s@ H(UqgY +0T gܐ ̻|3> Y49~H1Sע6Ce KxZTP&"#]:,eUE3 f ΈfUU~!,kr@*?,U2@ kNR%ڄ.F/} Bk%AXi4Y@4䔤 J(U9"KJNj8RTQ. h1'Qm> <@Ao/fIu\APhaa4PhяOvc1<Ӌ2D|-CV`'Ȇ6y@).m2W:cRxX!84Qf5<[il͂DNT~F):n>{H&ڬo{Z7:f\~LFHl? =C kvbM]UXvjE%2^y\vgO9rRƎXJH]&ZvEZD P'TSu_W#7aI6YE7,] )iWRR #7+03>b2л8&E4M3C;2<B9s~am(|@y%sx +23"uK=3o/P +%Jv@oߊ6ds[HP7?gќwc)h4`ՓĦj㉢@ .COl0-fN)3`auDj֌{O(fB6{]kieC2SBTi;n0@}*٭nif$*gE-`\d L Dez*5w5.a@-&N:# p%О$0/7-E []6JJɶ֨ukʽtf:H\A5O'0b;'}=zv_o}{JBaڬ =Il 6ڎ ;kA' pcz=-C*PaAǮl\qFY9Z cE!^H>fvL2锦?I*G-׸e6̩@ZܕiVN[Ј-)H x!2d+ Pjה?(*a Mi$,ǔS>J/䣝uZ\D-0:! 2:9<ޔ͘t53:@d(S*{BJ _]A]]6,֫8j%W_FPtOAhN2Z"wk%4rBG!<`#?Fngꂟ7x}"M)l./o_v816™w3'=>xL^5QEE.XXʄBC-߻%gӹu887_`P򝠐޹1&MV00=':mT\8xg'>Jɞ<n l! \Ag%_ce{JIj]cӳItaʼgS&;ݖo{Umo5yC`~cQAh;E kJk*(=4sk$Bs.~J3DaqCזs {.u-֧9$0Ob,5lb!ǒ4mm>w߄+:XfJ~Ya8CFO・^Y럥iĹa vw*TaD&jK\$ew3b,dt v1ZKiNJU|{P)pc%Zn«cy<ֵ>~Ưg^1? |EBɉ`D_\ ",m~⒋;e@[hgؤHiуR= 9F/q)`v)XIZQ-ve\HeK9JGT'!(X1;wltF&Jt~{'驙s`Y 1a4fI|ˆ)ōՑ$09d +?H+c~KjI]Aƅ57hP#'iWi/O送m9*FLQCs{V88.<*xb̶WZu!>Kbpo_Q%үA*y891ٍ8BAuO2$׻0EN@~ث(=$ߤ5iWxpG}u9(rB,?DHqeH!A#m_%v##FV:g`Y2<>rJ۸_6cilgP&w Q_2Z{CK&<0?YTBmJ !wP>ZHAKQBJv ++īr_mX#-cjĀ/'n5 ]RӆѰdϋ+ *mrˑɃC~q* +qΓDC~,U0lx5ynGie.uSO ^ Ckz_8ω!|Z6a:8cWt$JUuLK__nB3`h;@U.!6 4`h~]쿙\tN%l61 +{0Q01YojWTZY>|r,#d?]RD]~,*؟I_Mpeq}#g?d$+IaI՛APiI*`XU0a{Vouҍ0"l zsoCl)]xjTx.Xx pe0a"M꼪,a C&Xb8?ۜ\y6ڴQ >X'wRJi\8ˮ#G3ɬ] 3~dL\6~,aIRjǤ_VhlS8:8o(=t5B\,2#\R ?{ b|6ܧ6I/գL!+g-n9WxS\ib!wWӈASw)`" ڙ+ި*+C!~NWihG8VbQǛ(|tF8F(=ò+Xh)A^h3֔|8`AA GUZ g*hy[yH . Ю0(Jo9FEEB`hdTخT_E7e5w u 7Mh),6CQ59 1s֑>I[oK>#ᄈ:0"H٭8jHd1$Цya3H-#nTAETQh*> +ݣG"+49ɼaH#St~$VWzH +',l>zrlP΁?.k{r'1M|oaUVо#[-mؿpoi~c|I*v/(!k7C=|aiBUͿҳJ51$ю`e.-y?q/ȢաQA5bQꪘ8@00/L\}zu=n~9Cg;N?G7$(X<3mD vc0XʚGIfA 4%Q BmğwG "G*XjaɁHmiV$fJ3L+jmkzi;= HSMd{D5LmhC}R Fl', +8rCKJ]*ٯS%!NN S0 UziXsqu\;cפ܃j/jClo_SE h78iWO<ۚA8/?`J9d@@#&!1o~\OiT'a,r EHŷx|A=|>SCVu88'dMN-^Ԏ nrG`jb S[FD3M%s:Rہ./23E%k4e*0h+hɷ(KfNs̈'-yS#\9*b$مGk?J }//i(,ؐiMh|q*Ukdwenp{tXw=O[\ j0!l+^u1Υ4ŏ&g-tBu* 2fppYʫXz9 xJ@UNW +h0,)lSѕ>SPpJ0*Z[ZM3݇X5bKHgy&^ -I7ȃaD1.D KA@#H9\;0I +"5AV&D~q(QӠ7X jHK$nX؀b2~] +B'n'v"2&VW uG_x=|?om_hx8#@]Mh #^D(]_HfPrsFƨ7n ĖR/}@n V >2>C2mi4./U۠߁Y懧/`S/2 +ODHM1VK&orbUP7kƩ^ 6@Ru:YcL2yut0J:mu2Ǥ @`^b B?m O8?[ rbS`)r- tJMI`n͝lP3 σ.|%G6#N4].5$-JEs&\u.K]rƖi)a|G0Z%3$&jNx< UJ5V|h_Q*k nqUy3:}"Bm1f^ Cǡq˙)m6 'j0X}I꽃9'zͼ$K>\1HZ_v{\2#>c,),⃶{G+$4IXl9FbR@Α +[(ヤHan}4Nx4Km̑E }nJwmū{k2jm+.qxl1 E͖iXlQO6r/b \$9G[xjSfCe>Aaz#D" 9( 1Pw#Y  zT3w(OV +B&9 ѡD$٪+?Wv飞S,E\n.v)+u'{JQYe sȨK/>àT΋AԲCl<rY,?Ѧ.{Ft1Mr) %p>֊a)Ц)=l.IO?Xm9dA5`i( 0IJ#SOF>W݉QԾZ&zmL]K\ ]- ~~x~bwti0:_EYmnǏÕ )%WRnf%d8)4&*eA Ɋ[G`0YlbQKt8 zb=p %ܰbtWӕQu *$5 jKtoat +IDy49V*PWC2=G#8t#iyy{j<]dj!6?ei+'5YF$N,va +8h]s4j]%V%*fG;\.X}Ԉ*HT.Wq˅߼\/]p\e5YD$eaGU˶YfAN }DôGiN2!݈Uʫv̾2p7ԕPa7V Pnߊ:!I$Q!bBHtH EQ2 f""B2#I;-( +_,6WEk5;RC Wz?iZ18Ǔ% `lqR}0J:z_xݬ3J`%!"کbs )71&$ QH,# A -Ѻ!)ֹE41"")}n(4*L/0Ff] TX̋yľЗxB;v +KcyGӮӽNG 0{QمBNuf21fmQbrE<)YUa|hD'ek$ +`:n#/(5gY)'ݝm\Wsnl Wf"SRVڪ%=1ʇ0^_JgsW6sIu\ő@Ua}. +3w`tt4kTNxHy|#5a@b Jaeh!6rS +5 , +~g un3kqKS0\WQ[˫ HAW7کȁJ?1/=R^9#1-֧R;:HT51pyCX`s:u-%AM"2 +KJJNŒd^?H'~IބӀQxT|]۠A|ou(xEFohl/Y Clˌ:Ѹ-jҬ_HɂJN(4b-k#/&SǤ׬){~U!U:Q['-h6ObH.‧$@ }dx rb3*_z^Gl'b&e6+rP^ĵcwRAlgOrAm%TE&;ͭ)DmIm*^LW^zC0(*YHcgti4p+rۯe!rmKFˁP&FZHZȌ =(dǰ=3n)7hV,λ&kT#}X RDLHF92*KtA,<70~W7wVP+ԕjUq 64a*3oG/hBE_g|)Xo"ALWZAk4ed91M*0(P;Q8W+AgsJhI6܈|E}+AAZv%Di>`YmhAT Pf*Ig6 3 ' `4plt瀥w0:QG;07s[* q; z}P-RP`q +Y6;%7AU?Jܧ沀5@\}"$ 6x{.39v\yr3,# yD +)Ș0X%f!, j?o#O27`cTgg\}K k=rGzJycl<\(<8!v6 $+XQl2rEC )JM!7-qP1-ITP'2Cx 2µj\ԚߧZcM*\DŽ!?|'!qϓCqB*2@,0!!yd K7p4 P]mEX}+!TX 4Z8 p|?,`ļ\תVTX.H.؜0Ah1 + @a?*uOʀ "RTi"9^hr2uj (nŢ@7Pn$hu98o8Mr\p| G3ro#vIOI^ P&q)l ;f2$ +4)C3W-ƪ/Q)H80e4J. -WP>:X~N@)%N>2zT Bdyɗ\ r$[ZIqNE1|6㶗"c"#dA#KC%r6u##"HIC.*~@P\Ig"k\$< R;v!:]/ UrY)]"034 /%.jA-:P"&X:5`Gs Wy<_WiY>VA̠R|+@4Ty}\h]'n(q@^2^z$YxW< +?1OGfˀd+3r먧nTO8b,] <Pw\ޔuN! Y]ML F&߱JB*RqܲP@Eݓ*slIp #p<^LMqY@Cxa pxm $#2#P#Efć|S[r,yBu@@|]DA@^KJCf,򕐦^f.Zkh)ElC[-> mZrkZb䱚"σ4ƪR5. g!F~EsZM^_e_6rP^kLBZD޳|x. ܊ϣK5U /ǢS/iNA7r7F6Gޓsw_ n{9\a/-(00X2sYV*!<_VoO롳AHDz%zlK~"a}H$IWc@D%zWe}g~,Fw$xzмk_Oj{c #{Mg͓'`XN=$JJI|k:c+/cy?.,Hӕ,-L 39zY^Զi戽/a"a*43$U[XyWFX79 %@h,J=Y\mE*ƔBdA'Xe 6/w48,"x:ԸYz`3ܵ&Kl,!V&pEUK{P^g!{6S]C~`. ,6a(gCZ)ꂼ`ʉ#Goe2g{( +H独.3/+!M8 [GZ19AkB! b,zI7 +{SL'IJ)iS{Bph<ޏo\(@=J%1 {}<ZXH00(fރU {?Ox.ޟ{?@dv. h{ E 0@;m"<:uե؃=:+tnD#vĔS̐b3J'Y5,q5X(?,^{ +HU`JVX&|ʼn5iXN0|\SZ) o~Mh%GNžp?jjNCVJWKE UH\m lnxF" ! ,h+ kVee[E|+(TVWPZѝHwBϢBj8 ;@"bi5Q nJPq"*{2$qeL ]VD}. KlM*i*BrpY`#mKt8zm"J\|&>FLC1rE¥/\H ̯;$l,,0@NvCCOv,ʩz ++>˜6ᅍ0t?/t# +u=>“,8~3qϬ@Z#76使v. `DcGs|(ʢ +o6i[eB䲀%x`kЙ>x:ḷg,0YXZ,]Kqv _k\ml߱/Dk4!zF߭\;w nsY-VT'GțWʊ*0 Y7hw b`aO-;BwDpp%^ zq6lx(fQ G6 +9' ^}+{`Jb#`UWw<ӏC2'tNΏE,0!K%Oҗ$gE'.9{zތ·,=Bʒ= u. lfdFµObC`tnLя +c ++KU_\ذ TRJ)(qA(xsq%MV3:^1. |~SdN0XDGJo*x6pЈ>̐ekC<#5W֘Kw}gEOL+\:,Uu5bREt N\]zr\?m 嘾Vt)̌zLVw+*+S0 +<z ŒހaFe FA +{MabF YGBKPO([\x>WM ;NdN̰y0>CskRz[&. Ԛ迎f*zY c$օ=LSQu*W'E@^. ($Т\-GVm'wj`\/[l|AȮ<&+1]gE90H%7KdI}4VH_~W-zhGu}w 0ՅXRoJϞJFy}rY%{7!~&'3upZ񋆜q<9'y h2Dv +[q"HrijDMi\ +["(ϧdNZہnd{0Ӆ*==p A'e2.r4DGgs;GSbm 2_JOS[mѐ)\Alh\i}""دn+/Ɖ,$@Q:I Їh~MF_ ZzpY+?$b/)@K: wq3ZG u+y|6G"qSz'F4M,Jh ̨ys*@*GXĭp.k_6L)PK[%Dk1XD-9UH\Ya\ ,Jk0*m)_b~ &\Cdh$  Ibv!F7*cZ'~AЏ2"{,dS3Lx!w@Axz)'Pu0#|%ͿPYqډ"3%M&Sl"_“*<“UYE]ڴq~ q,ʢB-/46 +N[0hDjEI0Nʝ:= *wbt%x\sM 'V}/m@=  ҎuW@jgG̓ /;dֆa6\w@K}Evg\7u۰뮯6m g;H$CF$lmG*D1qҗ!it) iHgbW.QS}p4f'meeeo2&˸VF[Q_HeϜ#7iB]IX"w=9 ~]v0q08ashukZV]YUO1wj! \HwRJ*cT|_wv5zm)LAg8R;WAe2XaAJ:.Tj?( L}40R쀝u\ CSmBI3hRg>nXq͠y3p2:IeEYtQD9ڥ%Kt4p=\n\>KHߦ_kߊoEXS~&FFg_}y^&7h'ډo76Gv +c!=TߊzHCVx(IĊ42C|Sc4"('0.L¸0M%ox1\f)@lU“Iu';N%5/Œ L!sY`{ DYR%\ p6qr6mziSo|/m489ߊ fEAg`}U ](VA`A +SF;_yyԬILvlY _+V'լh%4:};`0; CRf(:<ӷ=?F0eTrYsMH1C,3(ó6ջ .X!n}h#;}ww"MBh\CIZ1͇GDTX|N>fYq&eL Xu>v1Y[r6APx -8+λ ])9}}!NP|:IO?ĜTϒԬ(gHy\f@霗xn;z̢'r>&n|Mxw/ O28a($y!u"K.e_`PȦzhClzWv:DL !D Im(툗Q5:C;"q)aJYbP҈ˮԆaCm숈f' lC1vC 0V}efHE8lpR +?[יH?$Mhz}I) ʑp1^0W5N[e1TVҍaU$GCƦW08.pLrYLySh-4wT.@NjY1!fuYm%16`?t+#~-t83WΘZ1|lEEH ghyKUx~QxU F槌SqYt,Y. pY࿼.%eטяz[)}IϦ/AѯXQݣ/KG}bB. d:.ߴ!&SsSgP_50$UQ H@aU'eAz. JLt%O@"J)n C%\8HF+. -Ί%{&-ҳ4~Cл.81z,wx&+(=\ḌƷ 9.m$qBpuJsByaTVAmP`.e^=-,94ӟ^S:6r_rdmWEz0-oHWW !e4T<󩷸L\Inn(& @!}[Pnq/C[4dRzݟ/dgfp!9)ҹ B{`itr㷹Dcv~e@D@1DhX^(7@qٟ5]P(OJ\a}P#CpYDhVt\ ̫Vp`.`FB@IHj8b +4:P^[/'¡"sY7)RYQȯ)RYN:.ե\&5+hڄk9YB+,7嬝r`t + +1A3#d~VٙAsL2eԒҔ@v`@AZ޼QcŤl̿Ѭa3Mc:!q).6K-Kj$M=IwtH# +oxb,9FKm~& QY1I.!A!}b33z:Z]4bʮgLk{ pA!ZHC_j~OpۼMdRiOȧ$_dPטu4G8s?:ƍm" :`hRzAL_.  FJCb^pfn +sxG@kY1Iq6uQ, rW%RH, q*ɛV4!D<.2J( aLw_ {䲀ր2&]IŸimbjU@Ξ*EE JQL[%D܂ω HC-W .wepN9yT+L +z x92lZo$#RD +|‡K]V)r#(q߫> %QYt|b_eFEt+b4QW$B ׅ>ĎئP]Q i19!&}XJ }eCf~Lc>/ZX!}T}ZE~!äATTEP bRA>XDYc=1/#3*7v4/KzEu,ШK;'DorĤSuiLׄSD/KD+Y>.تF +21\&/`.T tJ6hm=In_()%ѣJ:tܰ5`f;ӗbmz|)VQy,1}ӌ}B_8qm\zrg?("F'e2x'1I +3~]t.O-VUН#K"2 VI L^ gCwQ_ 40baճ C4*F \H)*,& }yI"1p%4N85*aumt2 + 74Md @ %|k6"B:T,4(40aH,9 (b9HW29e4o;ԑ&*'F ['= 9E?MC8^hoųx]oIJXK*k4U7df qKJ@V&S+Sئv- HG>H"6Dғa!,Z +|oum%D<dv$͢G#Gobìm$#xReDy#wVm̪V_*x ۜʩ&cN&Ur66ݯK 0۸݁w`ST%`捎XDZt.um/ +XT4pCj3AfM˚+۬Ih% m%q(CpܞBUPɨFhSQΩzyHirc r;rRC%|\bvFH5'⾷OQR?LxDpg*%>5bLS6hG=vU2O%RM.%(;\:m{= UǼ($\LE$-w4EW*A_s 'tTq4}˒K厀̴H I[K"n-r$ϋLx!a\[4{A`mwy =jNf !p•q=DZ!ڲA й>r`6Cۦ>lې=YCe盰+d$ށn:B^%<4MD7֭:c/'0(^x>J#kw_ Wf=ܫU:p*IH4|cD90}n1e:$JjυCR뮂GR]ԄB x:[8`w&WvjS6r(+SP4prN*f|)}LB[(x}qV?]0u!̤EEJz XǻG]*C\.Ҋ{qW"Qѧ ۍnY̩kbFarJ$@ 7v1odpb\1{) ϩ M 匭$|fEo'~} kMԜNɗZ@_zE#鯞LbSȤW#@ ޹丫 +E/`憓@fغa~p8"8;@L R[G@7@c +`^cHL@=3J**-khY;D{~͚&Nڔz18^H9gp ~vʕ[ ~!+?4R@ 󼰥iceF/}|;">%w`8@X?e͙ߚ]z%WrbCxR%wMU.:>`D +9o9!]INal{ArL^n$+zk, K~ 9m%Ya0z]a0  yA7KBjq 0~PfGqZ`{{׍uDA.&w7NMMjp[v@n/ס$e5o>euL8>t5%L ݸ\cɧEpy1|;#zM_>9i85+3Rz/fkA:V*"mY0w%LrzvT?K]n+ ܻ +8i/~A֤(sGsLQhfVcধ כb0Np妫o.X٦I1=x9R,4XU~[r}~*$~58}lI3% V+UZ+rѣ! ca1@&4s[B.Y%_]@H܁47-( ++וfLjfn0C4XrvCF[n!?(ȑI]!bBe>:)'| ~+C99To#L3pK30~2]*Vk 4Z0JS"u1a8&Ӷ"uX1jH-i P Dz˦-?齉כB$-߉4vԧ@D]ECGZǛX%v͂+k6R|#gy |+VkQ{Fp!#2isM&0L@ʛ};@{eŚ||pkp$xb.V#2[iK8WBjN6F^cWiQ4tc5b8cރ(t[aQ1!Ek_;15Ä`EPe" )|QgfyUFoi1+;~}pRޜqW&#4A]mw inK|?kz+8P F% +#766ВPj1]|}6+jz$L Ye'H]}2z;[~ɫ)'25E'u[6؛g7yj{G-럭ap}9dcUy7q^0YIT[h=d'qFf!i4 \mPȥ'UKB\~G꽞'FO%ϪP ,s*euʆk ?gy7bG j/) ,wFh UMŀHC1pplf0y~cWE66Id]ruŚm1 plԢxZ! @mTy?nn!Ko=u>GMħ }3ЦS7xM5<ЊL)tD6rÌ{Db-؏ +Bq [%Jhf^#DU]kp ґMsle,A., }37I/w#0c ,hxOݼi'ԻT8"=e*{H:A;")L)vڏQmQP씱xDLS8$jP5]m8U H\isŋ$\Si89\g$︰ØJ$g?4TV#/Pץ!1 ;V3ƺ>9fdQd$"n `ٴcot`UH߀tN}Q19k9ԞG hغ\B'Mc#%J9MyR!dGaATL>x#*2BlaKc'w|#C"9׿ɈP|w_Z,d0yL?7}*cKe` ޹0ݕk`ÞC xop!UV fF| yaC)3j|3Hz,hLLSc;5A[ ,_!ҰWp尿6\xf2`D8FG;3K\w21 lTBb* (Сbg:TMj (U/! [ˡ\eP@N)ELh^!%JrN28g8;ZG?HAE1p*y+0%v3O$O}[M zmQ̀O^4VqٿU B1( +D8|5K(=`'l1-aE6wi?g.g%N).Znя|[bnCN1ϔmKEizBn&wKR2O~gq9[| NWx3AF2.SY3abYg;GTx;ä}c-`|p-?tڡcE ~ Uڸ̐Hxw&킋aB^]lv)Ӻ_><eu%8 aL ®> pmHz]=fAukHlŞ@V4FR5Eqn1oC,ٮ @ZVxdgIt)hlfkhOztsh.H{~qh/.O +aGИ𰄓nuiWccvnl{9'!he~W椇VZjVK9vB>s"#ex@%Rg'B/]<8ފw<;[IR:9,11T2&=8Iv/; CxY1e{:mI}y4J(,'fZNtAK5xIYZDgtk˂R̢gT^`"Q Na)4#ēlA"P3Ifv(O2Ngqռ<eu43 +Z2>БJW?@]T&>+vڱ氵/E5ڋ[Ea~qsܝg/`r BjRܙR e2ÉvѩEc2k* +wVH4# n9 GK׫EE:zƶ^H4f&%b6&JĒ0QM&/%:uiV- >Dž6)Yծ'mr۬)2pgB{uvs6cωW~%% M6y&~j|&TGZ,qg}G%p) { +ZR'iCԮ gD6ąB x{<# 3 ۞N=D wȔN=m[|'Ƀn g1йKt۪wҲ +ut ?K !uSa6^Ry*MDOL5Ȱ\>o5ɔRw}TS!jEb>m]9"4FQ`s%{ȗm#K t&;OU̿>(x쉮WWY^Ԑ?wܖedM}Ȓ|i0,שLr`CYJ"jيOVmʂY:ˎ3c  }|l} : +֕ʿ6 3 ۦXJS`'IKF/ . v\+#9F:%Ӊ#lF g?wovI +Q9sp2Wf(C+.ji dY5yTNkQOZK$$emEKH:z"nh%.Gزr;Nmz(&I_!ަK"'Va TvR)K+t]1Fbh4'-k|Ǽ:nO^ܬIN[ FsK7R6e8sGH],Qz=Uo_iLF6rTžm ghD<:EX=՚Οv0;GG(u/W)$dEl&cw-tE;\4UH:(&@:PNWA#|K(3([O,cn|䙃9 SpX.2vc ¡ :5Ѧ,XY;aﯽe&'we /%B)C3 x{L|quby~/pðK +sg_h a ˙RkĺR$_ͤRt,u;".ݳ7Az, t`<ѬjO2뇈 # DtlTD [UP²FĤ@P[cjh$3pJ7`07JFZ9@ +M{q}¬Fovh,~ ~8o -c%E?"KEn(MY̟B&bKI(zr.tGL`u}rBW)~2/*7g) AR]_+'c Y2"3qN7: n;& n7MX=),Xȏ𞚒4GE? 0>^=20w\8CJDt#KԾ) m)=hةBL֚#9Z6ijVgnŹ4G~%gܱjCS~rHSSClTbS8Q;:bm ,2,@r1u$-udIS)h+4u<ʇW>&^%e. QKMXZAY?0P+s:`̬v_ 4cH_,u5jKv>;x'}\8A7aJ嚞x{*<,ԍa`#x6D ljEd~JPؽB9*o=/<⺳ɤ/6&)Zk#_ ex?Fzf k[;E% DH+ɊTP.ly[Б GXq)GG@9,k,Q4ritbYSmuL[y篆#Bo|۔;pCz)i5O<*hPJBܥqp9p!W:~C/]\ e`Zz' gvJ _os@ + +ut41%[|PoZ>O9o5wF0K#i`0&Z=L!BlاRLaayYkʴFu +)N(˓+UlTF`L~lVVf]|)*^ݑ *e6X1 y>Lk"t?n힕f#]s4-nh$vqLYȕ¨c1̓T}3t<ؐZP 3RjV3cA)Di+I+Q&_^}gk;cݡ<>h-, P5G#̖ZWx'ZiVC#b˖e4ePVFw"=\.5 p/ ?풔T6DeࣛhJOjk +AFqq˚[i+ 3P]^4Y]&a`Z0o8zӡӺet:+N~\.hV nvf8_(&}k&yhE3dt(pZh]Ve`Ӌ3S&ў!m`M\ƁFd^*]aӴKFsysV*ɋWn&T.UVKO2:P~!^4tpZF{ahaCqh异n>crZǕy2*N$ -uu#ʋnR%_~5C/ 16\ 6|83цaDärsGE5p3jܡQb6\ap=4?-N +˶2ԧm'G@W1D*(Yo_3|43y]>0W͘i$!`uIap?ZTmWcY0"q!u뱍g)F/ؗ lSӃX$t@{ mO}4|%5PJcG*र6$H$LO[& w`Bj~`L@,|欇916 ר*c!$/qxSxkv[.ǙA} &5sidԑ=JN*j?ZA0_D ٻC5YDs +Fhcü:EIF'zU,_8bF7}z; Tu<^"Ĵs qcO|b"+ޛO-'ΈID'1I.9% u.,V^xu$~G-K`gMrDFjQDz jse}')t'P-_g-b|mmMs/)Wи?@TJ8aǫX#6RNܬrNdr8t?n@> +qv )+;K_GQH'PѾJb0*'\o? +9E)ɓ` 6;;/ .q>Bx{avke>H8F{id|Cu.LšxS0q?ZD.3z,]o'uYUj['TfvpdBU})$tma73$sVF<++u~9`rf`ؖP1ox'K姸$[1 ΅OE3"ү4gd-[s~3&U u +_vVKZCdq>a$y%M!AgS@WP}-P~GCoSzK,\c3A?>m앓iCamE,2 `xde ^f)V>L|S-q/mt]@O6C_N=_%cV&t*fnҶOSz1= G ^wR'i>~%!CgmDˬ֨yAIǼ> AV};.df]) "(@,*F/ B9514s:C']ywT!̥%7iaV{l]Ǚ D9ykc}|BZ)-Iž8E͙nخ\",ffUw̲Cs_bbl=uȊ#¨LE gvHs ɑm!(ܛN. EZn `3e(XבD<>Ռ|`␏<#KpW;Īյd6czwl6`dWR#|NC&4*u ςFH~6SuIsl4kf8K4y5]%}'0ObjF/G&uT#TRb@QJ|5_ IRXT2Q4*$q\׃e#=_Ziz(mT#!vQ3z]ž` +^b v1OqaCxO8&*Y^]RR? RWd#!Dߡc e^&,! pcv 1 ZA**V&t9#MKC(2A:cz 5Ur(@V (jUfbaUvL s #'u +:Q8Q# t.Tj@0kS, 8(3aֱtv<:h$|_^ X6UR8D6Ğꅮ De@X=0m <=E 6V31_`,nb9#$<[VjT.Q.{^.g H!y}]p|)3{`rZ<]Pcʶ1*HC{i&GqBDzH}[#9HQDK8r$ꄛ,Xg.єYIbjSrb/!ȼ>ƅA 73%3Y +8^}YVJ>֡B3Yw<,li8TܡeQ|V6I}ރ++\2>~Of79D+٤<ʝD Nj(q(4ɰXo^?_h^`ٖzn}=lCXË,0 ߧJ+INmV( +HMs` ZwRF?-0D !ˏ8l\FɝiJ+=ne;I8JFjyE_=ҧ!U qV@ +nSew}h/EJLFS5}f iO /2{u +Qb c õ ;7FԌժ(uf\q_^aڱi*"d ¿c<5뼑\oE3\p5<'wnON_zɹFF.GWi3S>^lFiIޱ<+xF0oICe2U\-`+҆̔%0XQ톿Kca j|DujCλ_;_r5.^ Yr/Ctv>D %O6C{QyG͝I\0N~ ;Q?1uo9Kv< uMv$ 0s7RhRQ-bR AAa2į3)կ9(1=!ƠW'JI[ŁbCCIBc ]Qp&Xz %66G> =58ڢ33{uX>shKhB e{G#8eEpe=0i >9g~Z%ǦwrsϩCsYpr Bo%h;~$%1hYWlCnP-Gl`meU\i;[DT?9Rg%L@uo߀3:>,V!#vЙ?bԈS=d[L%+pv2ѻrb*) |h@Jӳeò4?mzNQ-: S*RtK긨ZAx/|Aiy7EZێ!Cl-$[T=ІԴ#3ަo'zO5k~rfɮ7⏚6W?kk*'99s6H9(d[|΢0!,KGWp\]LJ4hHe eGu6IM>)*tF, . ]tdZ.)xqY& 3IOx-}JD:Q #qc bF,)|KOnJHEcLI  @?◘ˈk|C5\Dra0_$]1\ \ɒim"z +>H_Y=js>;/j}N+Pyuza +/V,ZLװHtCJDAsj B.Ĵڻ <0@!/E׺DI3dq[.bdi wC2~tv,/+օ15()LgJȜ@ː(tDOQݣht$zyBaE;q٧!a+A<mr tiuAdQ,`T |'e8$9CHCn&9IB(9׈ §gDޝ4<<f׆*N !샋z&z gⅳf\|]%UA:5O߰N?Q4Gv0(:h-tĪ ݇1W>P1F !/3gm-tz|v_"D`0D7 *RE*BQQ9i&iǑ %)Fmtg5yPIʊd OHAg5w%,*+ [n-=2]¼ + " ,}̗ "]-M;@i#W:c*#Ki)qbB,p^ >B/Sp`:~TV1m61p0B?ӗs.;BBw@[0}_;>a#tJYyd +/Ѭ:kqgO,A .}F,{ ֻ"t:ߠđ?EbJR4F+\@iH\((X3f dsu #!I)s@(~j*DmQǸ,z/K'MZ^Bȱe %GR97rg~\84F T#t(o3(fơ; !c9 t_@AYP4',e0$I>~&%v) + /{A}0ˆQeҗfKDXjI<5զoCkӗsY\%edDܯREana2:/dJSZT!F^ht\. p6 +6)6A~w֦ @ԓ#PZ||bZj1F_aF'D_)l 6>1tj93JtW;YVg/ O _KLhU+}~F+ +q[E؈PBF $)]#Pν$ vc'Yu}w<[h, +6pS2dbzv]u]7 +#@D\B m)kJtmH;bC| 0]UGp锵ib=̎tF=ʻ" * N}s;:F'Ҁ@!܊.qv. N(\hFs<^{{@@f|^4|NR/TЄcsc8"7\A2깣YMIaEq?F^SܹT; >ݼ 8⦆ ƨk_<8SB(o&"{AG;ma ~ckeăAD^H #S~ft6{ PPaЏk71Hv}A{}n7" ÍϠ h6߫$-~ Z{CpݯRX^_jiRZ1?42]i8.iZ?lerxH8EƵ3@8W~>4}1H~,5W+<-mWd~qe4$&٤XsY<E n8B@vT]Y@"(-_P84! +s{'qWz UXp/q@D#yTӆZ'.`븻RmԢMܠbK+)RJwAh:ﲬӓXmD;+X),zAͭN7J/:'A7#Ҷ8:g?`|(.*̅dE(}f b[B2$ DsuNt!iφ15PU'b⬘эhX_oXw@b"%`{\bgrez9;a)nWXɘzK5B't{+?jlM$0UE;`/p06z +5.+j@7؏W1Ct\?" D 2CWas  <dx H1q/+ް0Ey;D$^+ԉޯz0z S֡Wx39b‰{pS:F)u @5GS,晌F7ꗳ21/Mi?hD?.dm S[:@Ӿrnwa ߞuBs(;oNcuvt= gNwm)?m7BsI喷҉\؝>2ż &Xn=VG| nx%Ļ<[Ɖ.cf^䬲nMH1=7NS& Z/j΂ItW᜛l} _+ 2A%#v鷱ԥtj$^VC4<\V}|}E#Ўx:ڜ +ڨ,|Kw1͖b}NLk#pV@'(I!UWR+Ǫqr7ڔ2e*qɮLS:)w̴2)K}yʨL[eid1!ʴ~Q20顜jü˫gX Po8!U}UݗV7 āb ꫕`BhBrnwMJ \ת"iq"k!-8gQ)lbsaR96 4İOe'i:d M3 pwc@'!h +34j\ygA v>. +2_\`#aVfuh^F;+Bֹh˟x2r!PIANT$YlK U A'0A_tAܔ@c#E}4I[%dJvꬌ~E? EF_)/Vxdm/t 撲1 T}\Cy2kc(k*EDee<,)etu*@:.K4BChuWQG1J~q4> +<ݍJ^kIe3\!JO WҮf>(8 C9hNէ gh?A ԄRf1a#( \#i\thblG +t^t#pAG/Mؚr #$-֧D;t" '`$'ǫ׉ | mii:慞JHe`~UW70(G42yR8ZH1զh8ϸJ( +1 Z 0>ƑS +0"^(0r| +~]k2XM[ڬ:DuKI5SS Ҵ9JҰNYT "~6 BmnXm "n ?Hp2d.<k.)ޒAԕZZns\=# 2t8@ps%S+ζߛTPkoȞyM _GEߛI737y .}9IotIJRͼڛi깐AAqna;H>NE[8:sbo%e͑=7'^Ȕ9_h>"ޜ~ r }t.poX/?O֦ÁZ9E.RhZeTjA[v`9Flno)⵼IޮL!pkDkc]!q(A"O0f@9x3>pw⒕Aw.M_W8hGI&^"7z\(K p_ç7Ƈj:RNU$*%.p64{5_q]rp$]DW3iElFiº6wڪ.Q 2 -!oJ<D8 +L?\bKi9VU[\jo=[ך};SR ُa^A#p ǩ ubM?~36^r!fw.IܵMnpcaF2NS@H1l+` e.yםчi,Js8=Ra0޲nжAR&f.͔&` 1 !3%~NƸ3òH[ X.Bt@|_UU})~_!Զ_Uƾ/%g?̀Ctg;I| OcWj:AUtg9WrlUqE5 +,+>anQπ S5vi2mV-8l^7^hym#b/46% +dDo/$"&"dcI;G@>b8k7$=ih67QRk[ 6LeYCLPd!mVA^0W +aQM(hV3]S 6Eq{zmKſt8(>DzgW@m l_Lޱ^+. z`hL8KZoAP>I][xȺWxRD(o\Zv+]2A-0ٓ[_9D=)nqnK&bj8|PKΘ{)PY_ZTLQuLGrgL>e 8 5 W읒 LC}Y`㢷%*DDlX!:>LHHWv9gS7$3tA5Pkqp틂W0)fтoJG,]IfPI s͐M=x# `aM_V;ņ4ld. UǃO0$Ǎ?8OPڹh;K.\^*IfxPhMh i ^Yփlvt~p.\f^ptGOݷqys.,(<(ܗ)kQV3߇j 5RFlקb0PIvOǎNatUc8sgT5%}JN;&;줚t~'CX7p"58hx_~-e!>IR:HQ251˜|VV^m3bK*NC/([L:t,K~A)t- +endstream endobj 17 0 obj <>stream +mZ] 'Z5bȜF)9O\CK"%5Tdb t`aA" 6J~_> >f_}g7ښ`M C 9%A +"W[ȹO+t:x!:M:8qǒ@& Rz60ŁS QbĜч8>1xsyZ0A^F&Sl}93 5]ĦeY(ҠOd{t$qQhɭ~xJqVSkr&ǔ 55\ _mfi[t-L;{E1ov`rC)kB7R].VN/-f#A pcol~8ز~8.`sYGŔRO3p=ñ!Eđ]5LelrC3}en\a'l&MAn,Fdg\ +[yP6^~auafGhɿ x}!łECZKӡ?F+-7ឹC];8P4zCB >CR:@ߡv};KmZF=^v`TgSW]?SP!BN!ZĴi,L/??L . 8>9 HVg"1Ȏ[ ImFҀ=g)M=,ǶD6= a-Z:|bH6 +_+`' piK3NƇ:MLZw^n.!QݣB^^¸$3C{U@xQpH_'<SZoq=g23`J?MT,xr3%P<mFD-* Q_mms* v7CCb7PBJZ͍͝kkHk[<Xq vnh=<꺶8b+kah~ +oDa+3bOwV`߿"I.W>m\%{9epUЮ?"k:ex $5GN>APk Ա i|:xFP)TK+)'sNwwQЈ(=iBlLZqgxK9JYv'%T)n~ LVU] p=G +ϖ4OGѤ+[7Vx艷_Dm ?*b:fS )$x-~&.* }5^^EÁJk?9D.ߣƁOP΂;wS8Ń<6]N_NǍ;N~"R[z_jɯۚM-JU984c/80^/9\/K{ܿ]菟Zy+%p!qWZg&8#Rw!|uG_Nn;( Q(lhDR"+pN:o?FAݷz|MnoUE[D2ZUUtD +P"VŪʓwS;"YSZ48T_3)Cmѹ򦄨 +JR"Iym&V&E@2N=|N̻ISN4aFDOhv`v7Q/ xFNQA- <{JTL]}=TqZIe+"ŋX,j!#zM$.h[8y.b"I' IP!Ng8.~։zԼs@@0zQ)_4U[I419q)]1WyO99l9+rb8'/,?fئ@{U7KObNĥ4/¤#r#t+4e~BQF\3fc=YਕKOL]\Mk~ugsX~Oj= + + V+$8]TXr9?d7M[f4ޚ`<W*vb<.,fŃN$8Ѐ"=.V@1#&>+ y4V@.'8c""PDyDxT$DȆ<6&p pˆvʀd0\CAB@F 1xp0>'>!Q"Y!ra D.ZT=XUɔxXD^@: +TBsX@Qe`2 U\\t|\8ЈxA@2!@3AR12# +TthEBB), +&`q+4(=X'ZQ)|2h<| 8M^Xp 8tÀ@l! Q,0 Efs b0-"+b&>fH  +#EL`t"D(L%t,YЍr4pE%Q Fcq9 LH9P (lfR #DB!6{h>1(LcA(4b $XLd&ٴ|$>a@DR `AE,l(tÅf8 G $4; "h#$u\Q9>sBC<8M sf A>P\<aHDHP(B8*L<xp4 +P( â(;>BdHǵH +(&lb2)eia(ϩN-FسgD D +6D% +QgBdH"4PqlS c"r;R-%-$-,!OC)A + $2p1 TDaꠋaD))@C:LiUYC$c@(C".^ɅGHytLHБ# > 22ӰbhA, 𹗍[pbÂ!-hh TBfp#@D/21Lb!!Ddd*4~怆MLxF:< a#ē" &ȱ Upf/ +^0L@8<B<| d8 DBb%&";"@dlX6BQx. DE %%@C@D(T@bl:!J '#ddiv<(!a@#d@@  G4As"! >(0$  $܅DEr`PVTH葑ԉa !j> JLv4J2 D IB~bb: Nń l@I1A,9XyȖIHKXHx20PM0#5e~aFsQDHx\KrHhdH|2l40yPAj ~ ) 6 4adD[@6`DR A:6 "Pddxh3bAGOص=<$LjP!$E~Th&PM0`3)3)#'",cLD1A_/_Y$-JiV9IǦnl^ 6[ۖ#Oghkk||wfzR}ri$ovƼʊ؊+#rZOpHYyI0s2 ecX;WDfNܫK_swR{quҒ3Wg+LkZ-e6{x/_{UmڳNy7qO}˗o뗥c/celfCa v}˚ ƶ*Z/KhV~x+ZyVJڋjYu}V*^5f9]~WsNR_etu]l`l׵Ni;[g겧j6lέԖҮ%j6s:sOR)^W.$>b_u~Vܽycj*c)=og-ji?*gwqf:_qf!bO-=7^{Ħh avȜ}i_.鯛;Z{{#^KϺ;ig!hkiW˸ʹxeڛl/-j&UwZN{_Wk6s7֫Kۭjץ^i˧~)}ϚM 2>2d%EFf#a$d+}k6\48f '4 *TP"(X$Ȑ`Ą")tPL|V@3"+HOaP0 +`` y<)R #BARlp`%"xЖaa"b +@B&.%0v-.`&0XR^E!G(04J&Jb4Dt`|Bp|} Ht!CC( G܂̂A!@9 ( FʵH8 GED±dpb0Ǎ6& +ݤ*T'(Ht*.3XD()q4p!1$(p8p0>l$fsfHizmiϥ?wistxշ[zmծX*=g6'6bVNofխ޺XxkhynۇX=IϺg}]9Y梮֕v~&5&k%]:N!JnꙓiˊZ*7sڲ٪t_}խ}9IXh϶vk-fݱy߲nڻhˋؕټyXY||Ǘm{竡ZۻٴH|ʅ85Z.tٌ_9I~iiW-ss%߽6of9nKjvhҡvԷ}jiϥ],e*k?5>c'.'8fvZٍ媍cnNҺ~7bno[f߻9]*;%gIzXlnVxj?Ym>6o7Hz^k٩_.wk6(}ɭ̪.)y^*~\ϹYy~nη߸/q՞>{ciK}ɟvɧMWNx؝g渻wm~Vfvۭyx移ZkgӹK֘;Iؖ#&r鱺sk6(}k[{_.d׽_ʎ\w;Izj^umhV;I~W]kӮk[mĊ~8In)"fm=OR;>goc~i~޼kY.]*/z]gգK|Zmyo٧vصe}%O^,粒[ݲU&Kl{<_gc{Jٮcyfדf*5^KZܬ^zmݮʓ׽ϋ"島m1gOږŷ~kٓԦ^^ lRTN`RAFJyIQRTN`RfNȨh61)VNbLȮ*ZAlPʾ[GR#Ne.ߺQs7hWY̸\Ʌ-WZ;ʯ^Fk+]-ZbHRYi9-͵bVެnї|Ym5j+[iyqi˱v~]bq_^K-lY+lZܥE㺹Qk.WAJ-QݮfQڋWps1k^^TkZ\x<~Y2n'6/iYY3똋7˙+y``sN٬`$Y3kvm96k6#Kt.YS+tL<+;M^lFݳn7/E]lF[߹ykYoj*:rv*=_r>_Kw޿ȿ~+Z~#*k6(hf7.%5ea=fc⫞y{rKg~:Iܙw}Wf|Y,=qxʵƮ~hiHwǎ8XwY׾|.AAWs3_߭LlPO[MͭYBGGz{5~=I񮻹PusC\k~5gd)ݰܕs2{}{R{MQ +w1V3Vim]E5bfdDN\f}>3/Wt7̺onN/T\6MvV\DNouRK~u_Iޓ/{<6L9koF}CǵwDm[3-mʟW5*pw5V,w$u-3Kߴ6U3s$9^b$eÕrܘOoSzVBmWi?55Ж KV/Urg3įWXس6U !Shff$s 8 +DBLy=p>>48"&Ȃq@( aaq$QIQƏ*wt0]eu#XF(Ԙ`Ph߸TB.TKB|\GS D/ oZ_}`gY== #D_jA]P;QF,k(=V@͋w7yX|ن*y,/a#ޗsIg'UBp/fȤ픶2}OsAH&R<&Q37Hpce~>0"+R1%?:%1n'r(FQ(,5!OO @LU5!T9$nv&@1{@9}ti*2#t@!f- k?pb(Ul9aЉ*@㳘-luGceI­?ڔ?c;憊5sQߕwɍ/|ٝcWD8"N@Uaa:5yu)(B/ijl FgI2ę4_B[Y:0Y CV Is&zHψn@J"$☻;te."L屯Cꀀ?j] ?"^ ԡ&p]'D +\ [im%Jۤblu@B*gj&5[M./3i@߾ܪ1SEp,.M]ը;)Lp8`Lo5Mo*9փtƨv5'0 "$+Jn 䄘HEя"t̔-Ht mx> S~\ p^tCBKX?Q& ꯸y?'t+  [jҌƿD᭬jrw X~5>f5 ̏_i(. TCܔn+0Wf؀x^[baq4xQp5B@4` l~4@O iB:bHajm9G!ZC+*UJ,_j%{T_#+v );\IL`JJkp[_.ON?V)fY:6"С os6$/׼\t7_Ims:}c38q_ڋfG -qHV NODX~T;uOK+n\eLrt[IfyEԋёz;bMNJ68b4tqn r?]> 5 + =.G8JT\OBXv8?7B > +6jb Anetcؽʒ8QqG,Rd#-@F]۰QUMPYB(UTiMh+L L&H2YrXiÒ_+}\+/ xӿkzu`\"%ODNQ =TcL +1GF&6O9N[<#=!;upyakCJ6cem yCYɣ/yeSȣSXۏok%JؠK%_eDY=xcTX=?* #/oc&u^6khfXHئ.C:e33!<-]IEцv#S?Q/J= Y5)̓p<u`IHjbDGfP %wg:LJ21;0޽hqbZ\ci#Yo4%Rƾ'.Hy2WCڿźm#MqBI􀨇 a{:%P{fHfwގʭE[FvwOVsp[>N&rpCy +R43#Z=+7a mA,Xtur~עR]&^ T=6CCMdww{!]q"g{sIGTJl vSmAކ&-QhJr-ps=)Pml?#VXEP:?RCy%)kaE86ʴ(\4)uRkC*2]]+ }ArxϼnOŠB%Cjf2)ynJUwD:ƪI/̉t)UJ}XjMe%1Xf [.<_V(:9Ξ*\7Uc D;Gkti `<٪z?'yV ?TCSgt 6>8,_JzlE1ƨ{ib/Hp`귉@'tx$T=vؘ"m0 pvpf,ףDhOO;t~ _$LYo/[y E@<>9v)/+VT11FE Q IiCO~eU#=gNOZuW6AD80 AFgMpu賆d@~2V5xoz@/fNeծk%IAz수r:W&~]j{w;3+W +%P`_3֐,B:ō驮1vW{ZpOKkhżbSWyqovNY@RBӔmJϴ$eػlfNN%@[jet9t=7ĴIIN#;D?TiTe"B;,%V 9/jd7jxE :'%&mh䁭rS(-J[Q +1GT6K /#-W*e]R6 s'ituG}c +AZ$0(+m`ݤ"DVʔcF bkǤpkJ^#+ˊ|ڤz#_vem;t <4]'L]X__ĖХ󨮃4]b:'+ZDظŻV{X7K3-dӭ?̱AP4ah1P`H- m8o~K OX¢pD}J}tNwr <` "j?X^Rַ}{>!&(nt4=xVvUK'[V\cU:;YP2vx6x[NX;Pzێ^H^uщJ?J.!7/UZ0?yopUnŦjk<3ދ$PS % Õ#wp YRqN}r6E78Xc5m';Ezn +y<3A%P6_E:EX>/+HP%%!J&p&œB՗ѣH ײ|WG֪k8)s?ϕ֩:/n,ơ'=@<̒eRx/ + 2\+L0 +@Ua5m "#HOе9WAahV`Qu5M,aFA 7Dr]4Vp@=9/Lq*^ȡD-k?ykQGVE<1'?%Ou w|84kb(9ljCȈ՝N)ׅiZ)ntB3\Ż[fN l-"mW+?1wA8rl!Y'jjA]T!QAq8tXg^-[ UbǸҩ +/H + !lnY;zbܘKtg_H隐\@q+z Z}"-*_ˁPe f\t  $@#]V/M)辄zզN-Z (J2?<Ki[T!Eu;WDkqGohj^F1`GxXl}n>`aȚD4K֜[wȯG  2ux 5S"2`,Hh{ӝ`Mov#7_ZL,϶- ;@4rOg1F΋4c;%&np4I$UT~ICHšX L>$:2/ʛF0}%o EfzdQj\b8I ӇXALBKP~QK0 ӕYƿd$Q٢0QLp>]`d`vf}Irڑwb(-@$9)&P%z4[;Ξ&<qvK"r& Q-9Kj<&z[v:mW;L&]]qnpTŰ)rq/ܬ:VB+t/؜ehL7?rUt*֫ԕG +2TXHB\}~.#79IJ2V'"Di-K,$MgS{&/ɉWZjbVC.C_߬S&I] }mb`bm$o&c~P{~_h:n\L/]ya euWVטڰ4$Cǒ4N)Uʎk_Z `WMA;*we1˖Aߧ҅΃'S *CPk;B-2cM A3,-9NPjvus35!+R$4=#05Й?ؑRrG \69oX漝/k!%m׭f 5ASԟpH{3KOG?j7zZfCrfC$I~U}B,ae(&V4X`srU%̃`aw*`]*\kG*ݬ:Q`,axԶ)gR(k{q{Wo3G.ˡLdH?|æLpO9g,v[b1}MPN9KslwzP8vR8yv@lR,IU=O`ќUܕ]Ā`n*vXwW&diCh*:㔃a)!%WF_p}(jn OGb^b-|O[T=ϴXdtuh8N//$P +~Ds4=\F_O{4w ?d JFnk؃a.!ވo1֍7T(϶ @W-o?kuBZPa[^7}'&,_IZ$%c'7m >kfW2"%lN%wr5l]Dl@!1k|ͫhĀ$+#:k%yCٸ| fQ k7˷V6ś>Jpzۄ̋{XBp+p;TB(t!4*9"lu +YoWtq>cX_1yY}"GP2pm<8똾2V&hJJ;H~! /QPCBaGB^TrSYKz͡d8xoJ@LY:`JA4SvDB*KH`?ґǻtY9󬲺u +=Buz9̂6p`Ht"&W c߀bMaD7j&)V`qd1? + &D:Jv 5uO8 m~2ʍ!a;W +Ǵ]t>.`-|EX _i18KOѴKB/c +^Uf,2ED<' `ӆ4A@"=] $c~+r =18{ +$EiXdsfLk=cLD]pKC\G<ôdILc#˫ދȾG~+ly:ӼCGt~k}C$h +`(}m|jTlJb\qu 9 ֒7}4-{K-=^"G{>B$>pi q! OiK&cũE;HHvbIϤhtDT @ǻ?&2B7U୚h9>L ҒDa*rhEi&7o1!Cؽ]Qcָ?IRQw2▊`M>튘=c}}ixIh ej i:1eAEJ1ˡ>NN:hdYxF",<1؟[Ҡ%A擝AI*DAeͮ-ېл{j:|DI ѹL-y ^CKrJL--K4`v~J %r [Y"L6[))Aj7D jNlcp}RuU(Պc2zc?)IU{ Sό T{w9|^ӽ\2ZĦd[ŤSUҴ#w!%`I$I䘚\Rݹ9i8}EQ {8;{@l˄a@dp_@cN**ĠRм~?"nmԙh94AHu3- >yl?!D  B>=I#]d_85ƧVp=NJPVA,ZjL<'*r*e/S?[3/RLW F7=ea!fUsWG9Jxcb>(ͭy< NI#2Kp!6RE1e*Ma- 8Wa AaۘQhp?Nj|-\$EL]KB\Rڿ#+#5JLfh`&ҭ&K߆-)w̱Wgc_{ȱC"$=k}NEE4D#l)mV4z_ 4+O4F:bOa^ *2{+ j#+s%0yP/xM$r"[E+B & GHiST`9+OC %rY臝ڈD{ Q{wE4EaQ"$rLPm6@1 d*r2Do'd +eEdȡ^Cȡ'7gzBWWPV¡D߆B+"@DZ ζ"HHQ! N\Cޮ1ފ'4VBV^Ɩw]%r\d?*՛Ofr9CY8X^ 8 f)> +xH[}XOjxqwҁ 3dǵE'k94b0 LvrP5hh!?gU5_҇zì>xK-lj8PQTo?L D:ϊRXb)k-{kіNI]B9tz/^͇ yLj'iQV}uUͬr ;'׷I >Zv#?}"gueԂ-ao(?~t5"a? m37{nCoC7^7 ΩF[PN8}"rE;)pLfL _T}Ma~*H--jLl~!zs/w3^cTv57G^Qa PL8Z gF0c zߔ;yǼohsə/:\1,ﲢ! rycI4DLu7YnFx "=}@yA}̡@Օ>pJ+%?ԝv M9;UcȮ9)2\kD- 0MQL7p+!c+}آ_]X膃b)GQD !t\eG(A.LbR %Ƴ,)4KdHhXI| f%WV +|C tMYڮҵ6 2w-(53n +44.Mc7CPݙxϾi]9M6ě(2COU"@rE0@4~Ji`3隫 .ηp'4kV;?Ph){ 92ъ󦑧@Fs?y`\mnݯ\^8OkWBhꕋa+,+"GY72gEίc sk2<$T,Y͚(6j҄|tR'~(ޓG}y1tמH`#2s% +IsC8`p}JJsbM/ܚNܚ 7/Hsv% D.\vԑgdmJq3,L4rȳg<\FI}HtAKC֕Ğ\n@ϐo)I]'1-5XRm }9[J"72b&%I՗&֏s +sUX'&dPe*ɢ +|vҐr*W m蹨JqzLpI`(iY=8Q< н>i'%Kimp?Wi[˶sVY(pBXW&)TD_(ii7ݙd :`x 6e;6Y)BQڲª>>\:piTۦY |/:-CE=4"bI[ͽshl*H.R(*纍R5oԝ3>R3f_Єcd_=ӂo0]6]K:c%JM7 Pkb|Cв{](>?UUID^:0#"m) +_yҍ?3\5^<4͓=Y[\@8,qq>Ybl4ϱ3lpg ՜0w3tz]teSKy`Nڇ0i OTԗ_r uA-i}Eͮ@Opz$[YhGdM.>_W3W)yOqHL!>I5z`}G|Oϴ}%W[zwk LM6wB z9#Fd'jMڽBĈ9̝ť]%jйd W $^7v ˮ^LWw=v aj鸦S;|[q܅bnhÝ_7@o!df +)ԕ]h?-W.0tES¬Kjtg% Wt4Y'{*Ŀv~O7f痦^3q)(6Vqp^nܢEDvY]?) >ihy['6s8ts{ԯ#XJ)yuAB]lCm܅fp=\%Yug^9}]%"lsY7?P3OjsQdتr\y! oF©7rXiX]m.#'AG /}/y0 ֒甫l< +hS@q`@/EVmb<@xHi#8mv#TVN3F$֦fozX8 fEF3?|`q~YRjM9V2EH! ȘiXc=C.mem}~b5DiYU-Sn%(y>Xb7㊮+>tOM"c7Kt]r2 lTېa6+irdMB<zum` +K\WJ&Uwrܣ~(g&̟glG0<qp*BF6y00:`rP -&ԟ!xJȧk4}.oH'8\ #A?4^d0 !(ftdrSܶTh QcdU@xn['> 8|o ",QK#M_qn}yR}7`xoє2],-iTaC˵tATU~C}76/ͷ]n鉰t|E!,ر +FG;9m}kEl{0Px1ўBq,?!CM +iX.a}הz0hо&l0DrIh_NWfahg(l̼!*d Ō y2@7ʀ/͎mu'V\7:1V|27c"سfچy|:o*>J/E NcMhE]Fqsl{Mh2k?d/Ãr ǃO/~x?tsp/p8qIwXX1-|xPjƣn<"#y|rLԍJ꜐Iekx75ѲcJx^H_w򔮘Oˎgfh;;М2QW8oƞ|/$`;&0 rMLZfT?7=n|'\w}5$ 1< ED'-ȴT~2jdgl[>KwkKe.'KїHړxr d=*Z d7d>ǨYV#~ӣDfQjBgo<,I: Y6 d8uuk Jyj8#lX: ![AB# iyy57 7P7LocK?3OMDe3ڀ +nd|NU= ́&m& EY>8ֳu{13qc駎0I +U]rƇِpY&gEX ;µ1E$pɈipK tEXa l>MU-dPT +ݱzҠbZ;IʉxOG&ŖTl %}Hr`"KԹSo^1W _Qt@?oV~D~jDLu!m2 v.'N/?T DZX;5vʿ6t]IځF>ϗ$WӨw}CkNᬱ> ;ÈXJIe\DĠd=]>mZֱ2ZPaOL̷M-᭜vk@R^IJnɮcmX-,o%ct D&q:[g)[$ނ2;m 簑cgޟ(;}}@fDLB?52+mADSq5LMky{3!E zYϝZ hǑѻ#p;MeSZ\!QOsiIEDs= ilt) X ,*~)Bq H8XG V-$ʋ<˯ykNYQpȉѥ5{F1O<{] /]f'P&+}ls^GKgB.X\O2Vo}%w͝+].('uio ⭨wiort( +wS5> 4ٙ]!Oq4)zr4āDl.^ +/0ۈ㊐<ES`tRaw9j6~96 Xϥ(کe&HF&KO ,Iq9ŠGLc+7@ F-.I%pgBlM0RrM4sl,d~\Oα0H7wN[+=}P#ae[ +@ۂ=K^;Dۂ鍊[}]^0GgRrv Ղ-] :?U'ҕm|9$+ Iܢ7t6h~nKb bUdK[Z{*p{Wڕu׃=km`>a@\GZ1q)ZvL}u mC~TVgMM#z}_i2Z6-$a<0~wK-{z`«(x 83ݧiu(=蔓k?)ñ=1>dL$㽋-_ְ*Ji{Zxͣ"dN {TY)/YTL>!SnwIq3Uۡ'}v 0 +endstream endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000406529 00000 n +0000000000 00000 f +0000406580 00000 n +0000633753 00000 n +0000636744 00000 n +0000406991 00000 n +0000634052 00000 n +0000633939 00000 n +0000410349 00000 n +0000410423 00000 n +0000410641 00000 n +0000412263 00000 n +0000477852 00000 n +0000543441 00000 n +0000609030 00000 n +0000633823 00000 n +0000633854 00000 n +0000634086 00000 n +0000636767 00000 n +trailer +<<78AA89F0F2535442BFB060E8501C4ACC>]>> +startxref +636979 +%%EOF diff --git a/01_3D-Druck/Puck_Operation.svg b/01_3D-Druck/Puck_Operation.svg new file mode 100644 index 0000000..8278f71 --- /dev/null +++ b/01_3D-Druck/Puck_Operation.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Review.ai b/01_3D-Druck/Puck_Review.ai new file mode 100644 index 0000000..e3469ee --- /dev/null +++ b/01_3D-Druck/Puck_Review.ai @@ -0,0 +1,5210 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Review + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 iwQxioABMMqbXYq7FXYq7FXYq7FXYq7FXYq//9k= + + 0 + + + + + + + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +HܗK%E繊@LU4 Z H=}n/T=2`|n܈ϷOo~o1!Bqg?~.ߖھ}G>usZ 5>sGtqJw9>8{qUHJh=x6&Du>ϪK=:QƺzsAN$ƀQk/(<.9\M-8/Eu_ R,,Tbg>*c2# tgϤ*bȨfx? jAFƾb)y +9R&*.a]s |.Jcs9z}Tpbk#alDy@y&!'(#%5T 3i.)2bg,-N>mޠQLA!H6&:`ikQœbxq@;E(W:3MI!DANiP\D=u?a[V&eemDp 4bGPnjr[rP2(4$!P`TփJԙaDqqbؾlm"e#p`QP>D}N`j(r2˘*1$ tӼi5DD[B Y\.9ecһĐ6";g}޿i>Qh0?05g\9s3D<ګx_c'>0e'u{rׯ/oiG>E-Gn:jɼsIø֠ +:(k(9Q &o^ +gG"Xm-Zhܪ^RA;S]Ψ#,Y +s.Q2_5QR%ϩxn_T27TUmUԍךh0 nWjhh=:\Vkc,@+$EN&Ddo +s-yγ+EṌsdB([+ +W(TrslW/>j>ܯefuRC}^,V8I]F,i"T˚Lf@ 匴<N@ckN6\e PfZw{(t=Hp,,rs8'SZ1|z 褺 +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:22 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -37.1111111111068 -199.777777777776 1.6875 0 8301.14814814815 8390.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -37.1111111111068 -199.777777777776 1.6875 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3olGͿaCB RʔR86 +Mw&(؝c+ȣb@EcϲvVXw^'/guV#7 csmP̾uP_+tԐmh Rx9%KWe48d~Di. gE fXAQCH$!H\Uy @$"a&^(Iᢲ:Q4jg +sH(~> Ec0X`La^" +FC)_!F;j8@; DP, k,Fa$)FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳ge2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHn38>* E)Lq +T +b`( +EE^Т.rbX0âa12 F1,g0 FcQ k\D6P4 F`h44 f b0c@d81 m5\* F0c @ "a*;+#P` SS"ay`040L݀HTv o@$X0 gD"aÂA`x2 21C11 `h04 F@$ ECx#ظ5A Oh0 d 0F1A bQ0 bP,"[-E`( +T()Q43n7$C6T3Ҳٜl@l xLD<,$,6\18!ut\5a S-̬Vk(jzaYUQZS -蔄tH̠6Ț2Lc8704`,iG *lf z Dc0FcY,>ɹA$ld   ++3ΌHXP2 Dx_EF"Urc1Q b󴹹"qDGu , $ D@Lx@ADÅ 8*< pƒ 8`8@x@ pxD*Pp@p6LPX`C.8 &P`8Al

0TpA 6aǁA +^OW;Ow;B,:tDzU^{p''ب-'6R.L!i#ғw;+']HX"Sm'䯽F<4VeeNuIQr(h{5Qx {*%Wz\1KbqubDF3ۙ4{N]^9=qo>$9 |toʲ{P<$Wb}O8Qew7V9ȳRM:y&PP]+vjfFvr3nzJY5:6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$Wa p`*(dp&,Dxhb[]<'VD\KqT6RX!bt$I1Ē)V'y{/S]{Htrdc(|4S :٤[/O7$J/w!Ui#TDc=ʏrweْ;g|IKJ"iڊ{棰L̟N~e.ɂuXmDS|t:25Xf+:9Ee/H~6,}jP~>^%9$j[$X9:?#Buخ>U.}\&@\Bi'n}$G+f]V&I]'u$3 Ȍx URv8z  8 Kvv[A[MIkuLǝ^Y o$uPZƱ-ۼηӻJo}ۍsC'Օ!z)49AhRtd_~T1ԉ8GӧRWq${ vO:xxl72>tK갤>4 %Ju{M^ZG >F$$֓NXY,Krgrʧ^ޔlrNcR*ѡ'ULzŻfO(S㴾pnrɴbS[ڍo'HCx*ўH4CL\3|>[-J<2^SHiR+fsؓZWW-nv&hCv9˗Gj;/sh- Ae})y H(cOY'HByplw3 UeRM>ŢohO-VL3 esX3KwVGL13j;14{){"N5gޟ!͑ @@ +0^Gd(0HpxpB 5B 8 +DP +ppa +p „ +p B +p9\%^Oz|OSiK%X I-fYtؑ9S/`'YÍObď9~X?&%yBKR +oBf9B $ܹU6)N9iB!m¡G*'U9V-2)QV3gt/uBfZ]imJul+Dn^_'֚ CUS+]&qƲXj-Y>W{uL\û7aclIdqVC I%`wI,o,R>KOڃt+3F9SD41مn62;1|l#bctpggfrrno~2ubUur(G|i#vב\<7WUr}:)Jrbv#)ٰ&Gi2We񽈕h~KTs`O*3桺$2o>ʺҡhyYMP-WvZUvMRVRUZk=]N˲[z6uդf]M}FVDIggkͺvk%]pZciYvWTDY ϔ{`Uۻv"+Z^tWv,ˮϾͲPrr%: +9=J7z]U Qlyb33Ѻ=524ʙV> 9ftw98Ԝs’2<קz90$e9,vV#eJ$uc#~(c>_>X֮9I/;6X '?yt#Īz@OYdXڲ5D׻myǞ +Wa>/۴+~w ZyUHeqw4M'FU4R)V}V{VDWVZ83D)4E2*!ZŤ)>,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ Iy4eӧ 8uWWلGPٮJU7SN^~$G4V~V%ZUx*Y!ɴ9uxgx(SsNMX0O;6sbfo:TG^ۏZR\=%? +ITWsB;jgJB!˽u We>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛJJ}2tS} +^)zvsf>F"4 +SJG}ZR_QT*n}kOsؓcd"2~:pLi KʻĻ,]+IIr:t̒[eIɜsUq&݋ȼa LZG6w/+Uw4$sGvRv\\'fܢ}Jؒtb9ۚuQ2_4'_h%cђRu TGxiP%[hbuaɧs,c֛f}Pi8fR]Ѥ-'T5zUA DLNc )P#088 AN~B^@AFzNd )['dj\nBmS>=J06$"pL `py"-ЗX';h+0+Q? "MKtn:.\BO#@ћ{^.Ȧ$ HiQhzе:5W ܼ3"W'gKre$ i<˪omy*"WgM&z U/֪DA?OZ_M^8.?UeN*z`5=%nyKvD.k¹1q6:` RD[eDeƳ[w2mHoL_P4M9!I%=􃂯ZIKZ= Of&Q}҆41[Q59M' +=&JQz,W1Kw:K\6 =}I-Ŗ^rښYA[V 2Y{\q*?o K8JCpp@C1 PT}yj$)rԃޤn%-43ê;~ 9c?jQx~.ٵ 2(!R@OdJ­R9~m!FpN1,WCN@h:'ge.ۥ$ 5'ݪ+p8ix)|.gpL9Oߥ0B kPJ%?`\MZKs&sB$6D0n >W +șf)DG9f}[j-IM1έʴ5(c.teEә|c8d$H<)Ni7AXڐW vU{k];`ɀnh*ЕaWZZE]E3u"4$Ѳ rUFJ륀/x+9TNbs}'6S~Qr!Fzk,f?+ +Aaj힐uWgA2Z8{I(ڵƝ?l@4ԐMS\\:];FH}fV ؑO o!XGRP"\AGWBZS*e0{ډXb dH "򌫅Gs\.bRH +B# ROJ^%iG0dAcU{'E3V?eѭlZMݧw8Z\ mdYZTH}t5TcĨGiA"q)D+}'i޶\l~R6ik+N? g =MwOQ,H-vDV {=O) :{0uSŒޙ1 kiXɵ + KfOs=TcsN/Y\i9z}F ̞v&QNRjR3T\6$<$B*BXXaDNb(r"9tA^gsr2wE1=opmU@` %:|b|pb>|0է} 25aOqoE}hw@ĘUAdUEp.Vm<)JJ&lV7#Htu2]>n];t +PE,2X%~3Ϲ n/̰!-aV&{:p0èba!FMMRGT' +`wj  sc20JOZp. +~O7@LFc8gigސ#Sj7P1zȍogȐ4oCh#%ON*:s( Z"03z$HnYq6vV_ex]opZo|<׵ftZ [.tiaD4$%+lQq1TF1Y8_A.v8c+ +9Ds wyDzE5PuUgK'vJ32]a60kكwt[".f% tZ +IN` uC.j"J3/ыrŪx3a]-N 60PN W__*x1;]]q7]_N(LšhPLE8A:OFCl:W(gaRfXp]%8W6®v`>6o Wo؈`s\o=*"؟780 JFUqnH*Ų8=ekTƶASԻppֆFZP ]jʕje`fQ^MGAWر(B$0dF~A)<).<  m#sh7!zڣLr(^LXdT(lca[GΠIm߭JmT߇aɳ +_"x(*VG5OmZ/ ē:VYS t]Ռ( 2*{%&\f%rvk)!6L[sB{8M0nLo4.X/σq%hl59_%w]@Z8xSeCxY!r.U!t-\(P)A'~"ʘf;x3: 3+V0͊xgOJh-O52ܷ1t,@uȱL(SXTUX{׆l0j)?0hE&4o HhtX +Z{YRhc drH6O.dD}Zqps{3(ƛ' ,\Ӓ94#_tCjD5o7z 5U;)b84 wu/[ov]z_b HV5Bh}%Ttf<83J*o)QH'׸fAgd̬S-hA= +i s4"m2L׃ X"RmwD#鶀N46rbR}|P Ճ|1z-"z 0,+%ICBU1Z&sg1XP鷫[ 8›GxWY^@GWRO\+sْ~Kv8D81JeVsw{؏@M' 77,o=o+B_dZ7I9$ċժb В +-; '_=knd!g<;ؒ%TXb KefZ5 ZŝuP2JV"0+ +]uslo֋ŌfU)&!R_B{y>a%wM,<"wH3eQ)OT}5"@;G2S${h+=$,ej/HF-2=nf!02 !E9gy*<쬩SKl2suZu\8k¦/n<ԏ[4L삉lR+fG@$^_/VrƣQC~}}%_HBt Sԅݱps6P CrfLJA~)aLRJDS +t @5&Bx 8f+bog- h, Ώ3FQ%,o!4Z 9!U ZϋB7Lʠ- In5\ hn.d䅃!˳eg;] 4SKJjh8[(F̲Cԏh4NSr>1댍#듦Qx`rUCɗ|b*VYOܦs辫:NO9ǢOJ~Į~`K|:Â)GD$u WyV |VEW~]x6F64$V~J}:(}|Y@đfC/{ !ƀ}zG3NFLbk:!/$&<^:RoHxMNFJrLld?ل8>s(f2FfD0폺{çU)cbDF[ Gsf 9U9O}Cox$6}`mJ~usTt`uHLZ9<[5X։gUt/ejYuˎ/(f}:dgAYQa, T\j!җ|RxUy.ų6vcÈЅ[ştGz0'TBB;9q Z +u޴/q>i^VYw*!^ ]$HQkU9CgMEliCw LRՔBh 4E*%eja JV{mgUБ5pK\ߵӝO<i4W{1(7Y쐀vL6 [[^k D2'p) oß& `]JK ru{hkO6Ybծ9| +uJ_jk/~}aV2>&Z8]ihz7պH^M,h⥸I$}gB]AH٠i7,rC\C-R8 g\#U\xIzhx]\ 4E+ +5\rjUM{_{f֭F=ŵclG +W0xYJ#Պ$\Lw y^_Lq吘WSy80"Ot``0’'7*sIrMev[R'13aN$~u=mT} حf6fܲCeêNBVKȹGElj#"|856 +ȎfU)/ +5}MFCIb]""QB.9ř}jH`ivj%F 'o4,~a/|P%tHK4sc3_mVܠmQX=O/7ΔHD)۟-x68 "0=LK3GX`1PmN'#y3$jᦂ;\uK_Rg>$Ҙk*ЭДڅZmWݎ4L1YiZW鞓#Ghs\+J@9grPh/mef&d-;uZn]ΡJNTnBmj?1I/8S#m'_.ʝ} ]0ىkSr)Ca!hpncT+KaލҚ|iJ%BcD'2 ++2 YҏLrZ#Z,5`J+(:fRKP|[[.%D3Q,%!$e[ m B8G=zA%e ]ÖYYOQYڮ+s{h 4BZ KδeZJ3تl)<ے_nn)T5>o1QX෈(ʌׅ1\Q6W\g VJ%vhC]oeT}YeD+Y=e?Bu>m ++_lV܊M+ \o 9yV{@E @7CM I8fIs};vk𣛊C + ʆ߽57J0kuoZ+_ɸo?N!S(Ot5:Z{%tOK@8SD]*>E-,#cM]NoAV'92`F=C9C, $RMSe3q8E „fyZca;8B_^ @rZRV ޕTF.x}c=2,Pv*@+@[j^tih= 2|38`R$W!W*~ Qt1D1LH|\o-41k='KzɫҹLܔf ֱkmAӗxÚS*7T9kix4 +ZhzMg_b +"耑1u*Ռb% %-(M B89RhwOcIa_W_ZIRI΋Bt XRzs$kT؛L$O?J(j.6';g }e q<![ ]**-X@ngc5](F(4(ף[\0}[d3ʀC=|4)<\iePV}mf1\veG'ƫVV95F{GЯgB)^uSdoX%}e@q1@zTlciRxC=FH wEȕ"Sg49\xAF+r<9:Cu3W.΅jq!A!ValA8lӐ -*xE5B,6TA:ю|9{c@"J2s\,Hy7%"A,XaP +_d_>$T#jĪ5v<^,a{$T?AЁ5@[ X=j2~h:Jf:,$Y0L-!j =WՅуmBH`Z`! jgC`i\ 0V-K\pO:D)!=Ѹ&5D\m.3̈˕[3['gVH3ɖZ?[tnXDjI0Jp#9 Dh+iN;{ZyђlY/Z\ܯnj!f)u^9³ȩV!nF)fL .}4cwLrMn2:8̆]1p7ډHi +:˛ȟ9}VKҲUaVVyWHDˈ5WrJk dʡ_XBbkcAf;%V ,RbQz(vje,jTG|?e KKA1b.̼?4.Ba5j4ҰYа"osb  +]UЈ%1LB'Ex+8Z)Pξ%܍I`('RbKa$ּl?bw߰ Jfi +u+Uc*$J+:k(piIq#I+8E 6]07OCr&:H"n;nu 4hxM JZb 8/h <ؑfr9a^7[GVue#|73bRIf-#K1 +![_ˑGznBtRҞ9(Xyӓ4BcTxT٭C>WC٧K_ ֺ}ʜ&56ywdӪGӛ eQFI`bWF\eV?Qx.0F4M7>V5/'zf%@D6Ã\"\&-Ir"2 Yr>yZ+y>JYU(m +]KvAjk(QjB?>hʞXG˪m*! JygGLzbr`c>Cƅ\%Gl;DFhhH?(y+H4{ʢAtQ!<K\`wp)X^J `JW|%&coa+H Ϩob<,( +!G: m3 ك vW#{U*yIΚ6R[ ҈!eh?Fqʐ߱z=[}̨ؐ$?pfsjlnoON 6ʸ\ +**}#9WlR_D9r gWR$f&, };UDoN2+Wa*gu5g Gg-bӜ?ۣ̏Ϟ ;&-ýk3J-1*;޽biL5Bl)fJYT~Y9l~! +}ʪFbXJo@B L:̫yIOw^ʠ;S7xmJNcCN cξabc[AL qQ$<\")L;ԭ%>U7}c)7Zn3mhnPj/ƩMq ;y<魷몏Wxb'(o`)-soR$5w kW34G^:Ëq, +u'٨VΔKY8r5` +ˁ3a;^r6Ya^24[&(!f#@D!bK-Q _{s5_[E!t25[V6M!ڣe{hWQ!ͥ~Pik4<1SZD2Í1]tl&9C1ʐLK>kT r|ݨW9٪j4_ry+W4ϣpf^L8Ɍ%2#WCHS1F UEVصzx ʩNAZI4/Jp<ƯH13{F'}cjN;5ŏ\*NϿsC(:ΡHj9:ŧLCSCr"N@̎`R1-LጸX< 73SM@t=^&Ko #|dZW7 +P"th`*n\k +ȶM>bdԏLa&.&XE#i1ydrM7|Q;FD(Ю,j/:OOߵaP+ ߁NLYM'+c3ȋGGGKϒy6l:q+i~;{HB$_u>[ݭ)c9 ,$G"؈(Ŕ,@'+ \}s\Ѥw 9Qx2ȿ[4qA =d#B.fouCr45c Gӎi=]05 _ ]ā)HT0w Os#CiE|!N쀬q lt&3#]*ڕ|Y/:L]+8TuPOP!s߁(rf%Oľ`iv).SQ$YɴЏjKpSjDJA^\QzbZ{yDICW[ QaWR^o0$ݠ23x]I?  I!@x]Krȍ$4&E^݇,c(bV mxsƯMzD4w3_}@Յי(^{lpSֽ')rqiOuf~~M(.d_izrƩN&Ƭ"2 U +Q(ozvװEV j@S:Nf$x.nzj.syĕBQsd6D(+Vڶ=РGeaR/aUu +VRҏ;›7V|B<E#+pD@v8"hu**CK|gT +a{f,gBLg}鸋+td4ZX1Cuǔ~G"smtGLJ2-Um *m +ӖŬ-0]o\ =QC-->6 A(7D)w0js8>pl68 +9F%!c : F<3i`svnMz?Z %A KY + @!H%g;ޥ4J}dETXU:F_sz!ǟY`,JlucB~m,F6.6eO)ڊ%g4MI9|6jLV?OԬg88u.k&oŎ'yXѰMف%A#G(*Gl*ggb%QvdCs|J Ş/~ԕjT9vƗFחQH%KD?fUdzHs3>6 +$"1@?A>h 7x`}wͺkޚ{U5k2)A.aӃqx=H=6{J{C\ A0kv%ai`] q>yss80W0jh&zdȭə[%!tjpZ)Nz-gfIJ g*$WD0vMLL nG^N\A؇gQ.װG4' ׄ/BbC@;$#2*SRG&BI Rg彴BAH~}Z߮IeDEOI.Hz s[Z![;jK `tS%gq耢i2ִ6Yʙ lWh,Cf58N@Vv~bpdl(^- `#t^]ǹX)+RЁF !YYhW2} 2.zף*?S9Ϸ=Xڔ{\hJo]j;lҳ@d*4fY4 fOvq*:8oz}ѩ+vݓe^R+P-3-5*-Y7׳Bt3Ij-SydJ\:,{\8sOqOoY\q /7j1wl+&̺?1نWaм'\PVS;AZwȚ'0X]9N2%9~Gzr ۄkVh_O_LJF+IcByMh9~o8UrSutWG:9r"5 LV=G n_&` +KX.sXU9ʜ <\I::Ybz+!/پb"Pw~y_5|#9Hِ$QpqPj;S⤊aIզ`;Q-X.|Vgg&y[v2LoZ@Tkp`@n{?O1?+ +;8]e`wUq,4d2S$8Kua' q^MI&7Mg؁YPR}품iT$ʹ;>Q~_2]V]dSz 8x2¸#Wq\DR 7PRk(a'3F@sw8"yA}]2Ƞ*8a2mTYǘ1q'z=D[Kj{t9B20 q9?{xDt=C$[Zt7XnO뿽.n+AO@tf̲̦P|UcD/ZU^W`;9k<t7c*,~nY R~53FNez~Q 8D7}2ln࢏֨ȹ.i{ݮI5rK=g36"i@Iy 7YUD̺ p!0F \]`^2CX`>cF`j|q6lqBMjWVVl57Z Eì #4P_U"B#Mk.;<X(c VxϜr i8ـױk6 ՗?[8!AA2 /,#U-,$Dq`[k 崯s?: **ZS@r/tnY?E&K| A xV_ǯV>ڢ5 sܪ$O-E\/v=1rۂqfommJB@hx1o~qȈgQUpliXEb@'wn=Q_R3"@˨!>ZZvkۼ {E/#P4Mɞ*8}[)t +lHίgN{Hi*xdȱQp.Xc^ ɤ]7Y0]+ 1?)VX7xBV^ 㬢{uCXft9>s!WoULBOG3rس!U0&#vvgqT3X(T4y bײ}w6 .Ri+! O{@NK-^F7toys)DU0ҭuG^M۩o op78s~^K.h7zIbeYmO-nJj׫֗n"/{b&͉OB+ ~ٳjt+#n.rlUL59d@gX1<௰h:?n|dX5xϓrq1 [T0e1hb@s" -@#`r ?Ba]^ƝQDpTMxLFqbzh b@&j:ԩ{  <D[VEX,m"#z(z[эs"CUV״8'E,L]`OQrRKD3/%`SVʗHa/yj 4iw)ozF{ĔXH t`<}^BW ;eiBB=`wܫk]X26{s=|J/s1dDbK?YȜ  +R"vR0dbh\ vܗBFjThcEwb3#&rJmϿ 7ŢY%GC]Pa9RP#]:YD"C9~:@0 +ަ9}5{`\# %&ۢ +.|v>ݥ y^Il//%=b}bBƺmA6Qa&4ˋBZ +ܽͧudPs fE.#' HZD*d@)I5$y|Iֈ81s)yǶUVX'( aBQTϿV-eΎ#$.Wd{ʽ;cwQsش&dmaQww?eGI~},>GTTr 㵑V}ܜUn"w@k8en#F-TTWg/pEV +XN?f' wp =jnF Ia.%-RJYps31M#乍m'jvy"ir6'Krjijxz&ȐcDJ]eO2e{%n^]\[C(z;j[7ŤxSm-SzgnVH%eTDЏ  ȗ 3LBֽq+'rޓ.9|#ǹ#sppS 5r(.`!X 5y(Hr4nc^Y)w Bp5YP0M{*qLxl)1HN^{XsA4Li[@P Bt-)ހL:rޫtAW&_:Mvh*jXP"`&_5uO7T*ܔrꩄu|v6aW`cd -cFJ*xĂQ8X]9Fg ˰ ($JutJ{ı"R(+R!#_ُ pAYű[A-nq[=u9Hw聳Ct:LTiH[u +׉ZWN&Wr-aߣ:I^QLKH޷ZV|:}VQ%i-wgv ,R\p[D VZ} {X)2lֺ*L>~dv.n.PiP ܊kQ 4j?I CReG0:`nllIͽQVGDs\uø-'€?j47'p/NV,.4r=eyZEҭ%H'S@rY8h`d0ׁ[m 2"DG@ ep@m=ʋ^,.&f',v1(sA:)RxnI2jï +O5P +s5Ȗo wr "oR)tp] +(77m/5;0FN 7wCp< w9-mo{ _ s*+ϫu3U E zZ? dS]![-9{[5ar㳪ںNvȿd؟Os5]2#?! u|\\ Å ?iѐỌb.)\"X6=VJbE>!vB])@#z_#En=Xma]C3q5Phw Kޭ4~)?DTeqW~?԰zXpIBM؝IR2I^d_u[5}C7Y\&L)&՚i'^r'BmˉTXOU.bpPD"'JS[&,L6/*k,%+ +$K|n7P=H> B!32,)BIB@)>*He*$$bI!MXEP(G"#@"pBHU-| NCydB!8D!^ 1̆ +,)- +ED M$Pa3Q +*tjj0iÔthuvZ ZYh4 +,;ز%ؚ|؎CZפwRQ +2caþ! 1!)lFw0aJj۹JeCULƽE0E*1#PV'&Qx$jLJZl",RadU2X"vy0A(wXRVTXf*qRg@7zф'= q´dġw,r:dÅ + +P\ +WP(NSH߃).3wxVsB4SVv&>ںs ܉{;-;0WrwI,<1;i񮍽<fݣʴVhi) I}J)dN4D͂/vjfA[gPpa1y.U{-}ʹ WbRRb<8YhO*Ef)* +rB=Qk_3&LrM&kF T}*JHPTj(kMFy5\!+{R1RY]=,UycA'DƢjA /^/$- l&S|iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WՊ1SkzoK=>ὫӹtON'B+uڗ a.q)ϮqG A#Xkq:pZgzfx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR\^:FeX 4U($SQF'AIeUtKt0/4Zn3*ԶAD +%IPyt +"Pw}|)x<+UA( ,)Yo.^|iclURmJ,J/c5׈Z-hF$\ձ) ]ݱw]tUZCgE%QV!ey-HsR"I"AG1$Ԅ,Λ#eQ(CDC1wWLm?F+ÑR~%y6~S}cFΦc8Ss/|6/2|Ϋ1W"Tɘ",ƶ#Q +U#/TzZ՚К.1~%f1u؛ ~8K2I'd뜰+#+R1q r>k[bg͆1EIJ\DZ;l!Qguڂ3 +~XZDD,2$iFFș8cDTkH[k%1ҨBtĥ?f:k^!&hVt>np#&21Ė83F$yFm]%$Ub,bjQGѩ=4І$쪙kR!1]mWL|T5D.F#$"#>ȬU<3^RRgθ8v6Ųh:Dud !'deqCcNlm6s,Ρb ta ]) '"ƽVTJ>j !yȹ7y71y%!ڄ|b»j9P]"Z ObD/}璿ea^h iylX)Q432 .]pH3AX3J̅2-R-8xEJs WЌ^W98;3TGd^$}fTRa)Q N,H^ IPHR(!9 s yH4+8Y?SuGN }>DfR2"37$9hKV'5P2N̸$,aWs4&6^-S%Vd1QOLW5HQq1&VW̎ +V73 Tfd*۪j& fw1R'k4>M_;:b-dL,z։LF6llU;d#C +H),Dv=f ɮy |̾E*"JS|J6F [4nZryi '&B*Y1B(&e^= +(v!1ѤsP:-Dj$*:3_#ZLE[/.x9*tܲu&&MS ۵ +cFPP]"|fzK1 AaG9T\+`TS=jP!E>-:=FL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pX^r/NkdjCiտOP%"覓tT؇tS"UBQ~ $0D> 0D"4B2p2@tH͇U"iUόmpu9PD +jDL‚dm`` `c@FxEd A(d@Qi$.uQFE ]y`QDfBECEݡd0Ux*B#j[F{7* \u,aF5aFB2'ыj o4רB N4";gIAH$LtTÐC"H9iRJ@ ;ä"Kog[$K'1<< ,Pi4\B +EDeB2 ( 0@¿zL S'4J Ox +L#:<\ D:MH);HR+)u AP FxC+ p @& BMM0Ԅ, +E-4Y*Ee# *QHDpjͽ7Dj9+/  +\ +K%A@O&YF^kS ="\kSS*FWy(z(_w%'/(bȗ6& aePRc`=q52BV/ROh:I20p~59|A^4U#(`FLDBĂIk" 8/ F!(PApqNYy zfL4S%T4KMU,ʦTh[h(VI7kHx-5S4їEpJi8:ںj>JKpc:i~ҍs\d2W chL>o'gn2GrCs+_߷?kWSz_?ýOGBNb&0SA$ "% q\ykGi8 Y93ٖ%g\0PTaiVUܰNGh"JY0lÉ*mO - =J(@H"~PkPui[/|-vo۝ˆg!B*znCvSM>d MBP&@}W5w{A'IN [N$R>ܝd#y] +YӬ6Em{ I+mwij؊\ X#]Mہxb uB|k7l'7 anFZ^y* OTC1kZ`Yh{];E ,t`>uJNiA;Tݨ?S5}4S[ƚNeP^cIB3 Yv |aBUw < b]{Re-dçWR4՗o=v$U ƅ3Aw07jSr9vEn ϣl d9x¨inSd:w?@ݴE89cyPKWbD$+q`W(; ]m A !t|YW,}1`CBkۈ;ZazF49@ )Q_7l*GtK*.ey#]'^jh#If 7rNf;p)nT\<4^e1_99N$ P j'l'3\=K@owҙqŹZ;gGsY{>Z%P9n~xenk"V>yҋ#hePnл 䃻7HłsE$קdGbkⴙ !+' ԏ)-ŀR@Ug&0֎&ildGW}mKѱ0d˗2瀊AyP_ʇIY+ +]șDEjoI߫m.aFGVg +#|lU +նOh>1Y /d̀K&R7 '/K p %R]8D&pCk D]ܧ,z=X2 +- B"T!]^zXe3ЁELYt4n/{7:^IbgD-+䠟TBvX)@oB_G$X4F5@(LC^,f}IBfJ*ڃ&C_bP +uuFpVHBV;id@N雨uWdr)[x`+)@W4!ޫbuE}Ha=F+d\CU!]H Xj'^l8=__?Uܦv6ozkW~i&n+4|T5ī` CbnraN@6\xQ{GmwQZ_ˈRcJ>VF:У|P*,WyATld;1gQuR^Z;/+6^V+:e儀qC'RӌDXF +,E*݁e`q4$FBX`[JaIH}Mvuffwz =dԊ-T*g5d [ 9PAE* M0/t +v\sCtY9΄p?>zsO_WJ9/WuSыG03Rp^"VpFR'zHp"'ʝ$P؋: ޼! 2*Fg)NH]&UMH#mU CHl9ڣ ЛܘQ,f`7 BXR4t>HZm|[ pa* ѧpQ*~~MΘ4$_ۖ0xC9bņ 5ԷI8qy.㋶8&fї0۟p˺MgyagITfJ}s +ޑ\Jĸ `wpFQaEP%tBY YFJJ-URZ\` MtF`PRGf@A6 VM{{@;,rp|7"~8ht,j&CP +3TQ@m" OQƀ:_9V<ޙ/A/86+_!!`轍I::uUcv1ݩ03l<P mN$##5<@ +\T"ZF?^4nWL1QƮf[̽-\uYpyU@_ /(XEP\xR0tPQZ\WQBa;$]JG75ٮĜ?slL0 ޳װͼUC"Cg0?ڼkh<݋YlwكdMd\7\f*oKk +CC$*,mt'oN(b eY OJu~ܞoNLxj9h*B4-P8\-4cIt.C0-z1]B"2Sbk3&#6E 2 2`-T#?lcԾx]`Mgb\1LR:e!ڻ@^+{H0 iF2/wu?OvPOzjjfEfFTRݻni̒!<ɋG.,&/H}z- W?Wdљْco2|bOsR0t$)E@ IҖGOGi+{FZNOUs}Дg Ej'׺_T-nߓ<:S/};WR1,+EJ8[`pT6} dwXCcA`[ 6hht?U'pr,rq$x$e˼Jߦum#j1RuCI\^hͤ.UuEtIGΡ̳Β‹#.]KdރD1hĄU(Z+> P3f!p+R ]K+ź2MwmElW˒;dA"V5g7tn(xʧ|"*2jL3|. ; J?Xok! +;an9NM?f~rD 7"B'Hˌ?~g~aG8 3yTA3 (8DuɰNLPB)87ly :d{J35#F6ĵ3k6d kw'6<&꺺RO,hͪ[fշJf7ן[[RpaRiTO 3gKFL Ma#@Kc +FĢ2]JiHgE=:dX8eU*C#۬)vBMP4GCRqפжThHoLa4SwW4m^:'^eh^_`~J($ ud{V; >;b$f Ӥ{J/򘧠vw%GNbkۦ)wr^`Kd \ŭ Ѷ\a47⁲awUK'x3)0X'0:DswRB ՟:h6ƣꕀ07> +S.FuKT*(y/³ovab &\bGZ6 ꛇ3 2͍Xdp| N?kx>V0`l6/FZ˻i|ˆƃB{&/D)!|!ߕXh[ɰgg@2xSMks輷"y ""b_x٥l2zl#rr+s՟OWe[3bD^x`YO2{9ʛgE߰ +vA2PO%jzyƎL q1cIAR ~iglބЍce .bI6|7#,j}eX!N2@)W$u@CDQ8C#YW`{?45[wэLP7:@p"nB 9Y =++q~[.-?"B6 j_OE.޳bNKGu(! ؞nI#C0q˵ 볓NTHL*ǫ˴7Z!XӦ(2?\N@w]WG0=$0x*UAexQ |hg +YpFye3j3?D ; 5л=ߵ!eTWňg,`>d'c3JT :ڕJo +=ܠ~TO}sVj܄p$y =:Q\ )j71/}N3SMD{daPge, kaGabG`..Y!-뛈B) |]jY7+O@5ܩ܆@)`__49 КkDyuZcEq,EM}ps/rE>CIoH\Q!A^(ف*vJ JzJ k+O?UL+2,/\r]X?N1./оJbϔ!TҀePHoDT~CDȮ!tCQPR}.^Bqu#QQ,b9L}@bBˬB?Њu +eJIB$1$R)" r%1h D% )!#JJ(D +!H|rhr0AI:ٖ D&(2MHjO64:"z'IX|h|'BfP'Q*zů6E+9Qt'09~Ґ>BiI`AR)v.E|r2SܒTo +4hkO@ŷz;Q[b,zlSgHȓ#Ll$dcJ٠m%jcHb3ې IvCGב97(6yPoER]cEroQ$1 *I~HGnC¡n! #$1 8Lšql#) }d9ʑM-G.=rsd#94#IC;9בutdC:LGAV1AHA)uˍUG#'l͇;LU#yui0hC##W0xXcF;xd#gKy(#Ẽ)/y"'QFZ=&p_HF{EVqZ,2#cW:Д 3>"-|DEP# )"y_>a?:Q1l""|L-&[Jd2=IDwd kDVE_HD$ ZCvYؒ@T-@@:- ѥ qAdCu!/A!C~ !kBۆ֐j"" H!MȖdHX +aB20.dB[4D,D3ܮN +Z +W9$M(dwwdcGTFH&@?BXBdJDR!!DtZ" M$c\-x27AEBXȲ 2`2:" 3?61iEƉ"SYX箳kktWAKi5fEv XDFX4)aT‚L$b)NчrSqjy"E"| oE9@VK|o {-3)ŊD;S bHSD2n4QB ȝS$d/؂F#Eb,@E2(8rQD+dOD[L މȎb .^N$iq~~@~E?8YX%'FL" YGRTvj7"9ݿcducۗ8"E'} fwTdl>[>ԘDؒo|pK|8  %{L$v$ءDBMk%Or,XF|zz<"aNh#PQns hr8DjFw.$6塮)yq<xDd +H(G01jw+fe6;|a!Yw`HC;w;NٲK|u"}gx4>_G"R?mp":a"{>""fna~D1JLt"\H.eLT\.>L5Yu"kuR;E2UD!#*"MN/:"Hxg=[41jCx QZ9/zHuEԧJy68q#юE1r㐥̃;i824\#)6RDAQ%G )HCoGxaG>o7Doчp2$:$/ot,td0LG\؍{$ɟn$}nXr#2&4n\$NmHJsDDm,)!6^MI1JbDҳ1 lؾ1XrU_*1ʖ$6&w +ji]R-X{]#U?ah%&UY469$! D[&Ẍ́gA5vIRÍHiMj$QiгMDs +kH݄LLo"fi\(9Ԝ# Gc,s&xh '$O$ u!/dИUЈH0qϐ{FmNfNd5Q1i/&67CFlszf\N+3p }I{ :ɃW OʠT LծPFA\W}d Dn'Jbr$y{:D!B@1XN1Fh#/7}iND8ȰÅtu1;QFSa0n'39I c(H0Ƶ% 6΄1_*ư9O;牴 F{jX ,0Io {`nd 8c៬_$E\P'F|sJ{^tP+> KCzDhBx6P +/d_".JG.(é +zj<2H9WRH _o `fS" ,Ki,.n0%p@\d[D69[)ٰx$kA%l *zbU"c-Jj1 M%j!Z=EܨuH=UBgQ骢Y`]͂V٦U0 ^E² +O +|,J fc+E]Eb[ EX+B\f_YW6+Kf2GWT`rE[VlDh.2,*)c"_0WraL嫐aQUpAƢ+WR*l!TY*"TNŚRa*IQX +j΢,|BB)zS)tPnE@ܢ\lGD֓ewi(64uE"QD"1\S#CVeJpPQ-B|@1PO' @|"8]OƳ h;NS9|b9Y"E p4&ʹ $ vH5AYN[S7W4*w&4fDXE2Ll.&+&f3KX0u䗀!YyN]bzľ%!u-YcȖh,,6=nz%,,Ҭ*qYLb2hk@Z> G}͡eLRzgZP +jᵖARbٯ%-hKp +)1my>[XH-Ը%[D`zt? .D֚EupˤByCݥe 6g䮢tJ$;låu҅*AR?KOxJi Tl~X(ǥQuՃq ƄrL2P9o"̎D.D颚"0Hu1:Hh. ]6-=L x# ;b>GS^E,T=ވKj6̪9 4bz| ]FЗ1B}QFD/Z G,pA|_BNXa+>fyT`hg<0M0yM#|%CJ`lD +U"'"4,6!TЫ0 +$(8j =3D1W-ש3U(b,fH.FϖV(DD3"e\1 59eqpCA$Őa@FBfHdƎa(V## +dؠ vd#qMf@4d$ 9Q~%*,#CΜ-?P?v_F%n?Nff3N~UQtU7ׇ8#*g>@:igɇgICVL{`ۃB MփED#{dL8fo?y!HS< `PA)0j!JMC <4mjsz8j̶RvjT %0T]MAjOCdFY]!tB9Cduvw=N1,;]rGC vG,,WB#+4wϨ[~ +0n344 +:/>S`UT~Fx*0QW5BYBG8BgS87Ŕv[vǥ"*mN!ja)L%,yK!(R +ג{OEDGDh#*Q>, +UBaf$i(lTgbٻ'X{J c^z6PeD\o@) J~y?4RyBlJZN`Ni^V}w̝P%Pm4g̝k!3Lp'{/Vt ۻƕz r͒F /pNs G-wMZA'm80`&902Ɓ3h>qP;1~>]8`Tu%p%hA *m#X sq{@uKmq@6R>2tč6"*_De'r߰A/䱀k6lc +4c"ߖSdwAIF!  h!MJ^Z%>VpWs VNI 0o,~k#Γj=d;;e9Eܧ4ynQHq{ KUbpkFe !]Zh1hXRe#粅0^f`kFzyZR0%}5r|j/v{>.h7bC #w.3x0m'FC[m%~Kl[I'*Z ~)ToG"']"d,R؊,H*>B^%AvqV]A5\,줔d2"w?!*p|(jD|{\&L$RAWy"PXs^!n +xXRKA/o nR0=&;: +r)(&`^;̢1v2 +:[(@tJJh h"ɓp>uCO MUy'HVnMoT\ Ѳj"q#X 4ePL,,_>>_YP @lawߙ"i!5ҧP6Bh$0S@+c!!A3%#(g+¯ +s@h3 +Lӽ et(uDc,?ڥqȌ@q:.} DضJIlJ.Wχ`=!4˺Ls#Gz%8. +e'ԋw,`SHSL2~2шHXz7D0H&( 0sY"[@LFq%RP ; ? XH&VnEC{0I8Dљ?s#,%z7V?F@IO#;%" Yh!縆&mpddUl!rX㳫SGـF&6Vyg;H?mSfo @N\, ,2i( `o!H Ew3nL0nYLH93B悲-Vmwv9T3mw.aC9R̈h8$uHnphs֛1 +k*ge-րB&+7(s%%ĭXEU0Bjsa@q cw (Q-@eqR.,Eك)͢zf`0WPoc:B`!iM<]jeHIEZLbT]tA +fR:MMVh& +ۑv6nBٓ }+6g P>efO!i*/ H< `53XAv-րZ9%BBE#L5,ְd@[6 $_:g2Nz=>5 *G@Mb;+Qxd`Q̭ @JDf)d??'~ V7u| ,#OUTPqJSfMIovHe6:* +_@3_yux?xBp}G}G[qIJvbBΦL@VmXQC^cq]/s4s_1+x)uHhR S]5!ݙv`lÀFjd9Wܯa V(=lP+!2*/¯"rxHGݑ[%Lo{A${0b>m+V1ԗ3wRt%w:$ VcyW_Ŀ(_|OՑT`~Q} 5>\**}z +vO Dq1T?OP{4e A9tF42z;O"$#Y{>Bէ5L֯҈T^X6p}+ C4s7Q  @i7ƿ_u0 ?C[π鸄Wv_?T$դqJ'#D1x@l\磿~9#mA_:ϙMd8.׊J|a n ;"+UT 32w';M +$ٱ ~F;u{-rs8{|4 nd v 仿omr8"0ًM;Q^p݇>O:XO}=M'Lޫlɩ$ {$m1 ˌz\@1{Eglawt[xC!._JO?6ЉRl 7>ofO6ۛ^xkmp~)M[{f{ Dm?Aʪct*P11,#nq>!A#}|,ϐ\+-80Szd_8j}$qN#̾b* 8-x.R,aJwF?y?Қ' `v: y?d+Dv&⨗زkՊlGX/dz$2B9V?BU]gfHA;mJdG=(6%XP=HW fg)e&;),D[j`zd?NwxNzI8E;צ~,> +k чEe& ?x+9BԔJ1c&*mxAo5p3zhfGVM ޟOiUT Dd{;-;߮BHOuxL<#;DKp|>-6rI*M7|_NY@u@Flv<K_JW|[(&*Б`B^?G/{ ^E6Nj0΂8Jr.3->QJ#WxqC/?CO餲)O|)Nddz&|h@4@?yA9nU3亃2&$_; ho/nr<r ?ǧiBz<>\+_\BĜخUjix궃<-~& ! Y ^S0/XF?:d4d T}n6#E=74q '+2Qb{xOQd?ymx#4/bx^O [],Qqľ &'|蔆{Wn.q@^ f9B7|gHk ~Z xyab{ zG#JZ.s^;4 Gi94eޤZ]\{{}3iu=#]HnAr읷S + 3 +a]?wL˫7'o7O|J-8C| 3Sż8򉵯y;-.ةۋE }4qmg]%>Kb-LYlK%w}4}bի)E[{6^NO;juc7]Fr +ҳ /] ~8x ;'m$NѢѪeh=Lʹx< &R%:-6`2m;DƤXSlT E,m 9pY`WbL *ɮ0W5 vJ&J$.`o@lFRۥ65+>1)_lOY{+Oԉ{g v4(J`t4:'QLm&GA_,~_O?~;ci'qA,fbי3>&Z UDְ̿-HhD.8'{CvLwQ ЦFbΐ.: 7ͶiAW1sv⸬wKjXob9]Q +9dVMFoUՇsDju4 ZU.C.Ƿ jRzQju-鹩ۡ\ԧYP3QL;T4B3.^%ͳ[~ˆ:ބ`&Q.0)]~(4{@ m.xcQA6RyS٠"ƃ#ͦ32n#V7Kv' xbGJϭ$t^Ǩwȑg>ä}IC "Ӽ_p^C5:S#JF&WZ+`щ +H >U-9k6|#.%d"N^Ƽ,fr| ;n6:k. u -Äl\V +ηuE3ׂD8T\O-f=jݖ}/\=﯀Z3t1hQ@F&qB;0Z )uÛ^@irب},(qctP_c vMJ`h}"<\MOjd^Yű}wS3q2ʁVz| t-)u^TAwntU5Ux`n҂mId/!1 z'.1;ayf z[ nt&s8P}lA*/yJbAcL2t0;ノL a9gM[tr6[¦eqtj׌mAW玁c/,4Ok};\߂7U$ R<]ts@sK]As +z3fYx&xnY)+dvsT7p5KXRߌ+ U]G +V Q2УB/qNP6o@e~~D@pM638)ӂjn.ȷoA+U?cAGB ݋#zi Z؃m Cs1]uZ{ZA2 8l:!hwfV&╪b?D0F,Kcb /"[b=U ( +Ɖ ug;/IE>yRRxZk:%_'?Qr9.o 5: .Np|& +o7?10aLssq6_w&Vؼ?`$O4LjYi+'|dɱb63z "x+\w|*smГ!r332d^l6;RֻüqݏJcr9ZoU=rR+S':w-pyq*w5,aK+fb62Cc,e7W<XtuFZ9"iDeUCw̹ʭ?.)q%)oD VCeZy+PkU;Pr79ǯL^SC?RdJN6L_]&Ӌ;D#&aed3rKk`U2H{pl!rřB' v`rLE|؉g(ii C +|q/ed:59\ysBiF1<47\hNYO\Z(.Wt*! ¼l,_b+y┢*0>Fn9/'Gemav ¿m2#3r6\^A:*գ^pę@eGQx?&x,JF9L/xia T'׫?~f?m$5f_s.`v1F !\iJMI4O2 v5eaVe^_ɒ,unܙx~~E3~e.mȂzߴLIڷ֗ooVٜ!@lIC|J*-V*bc _k KJwm/bsk +(dn؛ЦTpT7ЦH;,duFoqI yKzOyS*UǮRUR͙wF_RKpT?*L%3Ɇt':3*Ojq̺nXBg%Fc KɱU;Le^7+lSu @BՆ~)S I\՞gֆaƳ΁r )Ck) bZANoՊ5 Z Lޡ=Tj[[A`acTqU:r=WY 2v!4w &6q\uWe87KⴲCw>Q5tKՅ:\XY#U:! Z2{DxΖB3њ9.̞"mFB D]h! _PxHc!hpS[j'H6YA+uKtN֭9UI6f[E&Vr&S\"ms-|Cg=k{9U? |Gq,(C|xNk-D^{9 +96[_6ھUAةpEF#%8|ZK:~ q9-Xm[$q?|6 +"(ʵZ,11ͥH3um>s305EPMI37]=N:J,궅$E;p`7rl Eu|b4nR"ѕ̳MMS2G]`9){xǁ>IDOyզhyL%Kʮ[T{S&rTޱY2'P/0/n\8h_ٚDzbo]YSe-ʞQ_αlvԦ-ChHjA6H,^onk2擖2$VqrlOLONOeIXWML>~(mSĺi(-3^ iY1 +Q--e(ԣ/i?D7Ѽ}QefnsFA-_|ZWni;B˔0eq-ۂŵ2Ż^m2pjW0Ar_šereWXVB!Dc詧?(c>=9P +endstream endobj 15 0 obj <>stream +9k9i cy<45Y6XEgqWdrBsdAfZ2ZDp֒XlV (Z2[^9wѦ+u}Z[vi$ R#:iVBNY8&r] ^rp Q25*:fpVNjz2zoOmGT5u*բp ++rn7(}/r}y$9M+2erˢy]H~(_Ʀ(K.>x .MQ&tGHrIBJԴ e#|I. RQ$ґP1w׍@)e*㥼KS^R>_Rc;ZNB wKL)&㷩=QZR&Ygg΄aEK&E`n0;^LWdoHqRմ'&e*3ʪ$PS:E{6V~}jR7NTfPH{l(eDS{ ]SS,L02಑8IAR&t(Cso=5+%2zТ(HiUi_(\GdVfR83&Hʓѥ}h}t_͓;^ߦ|n"2r4[&Oq~ ONz| +jv|1nWm2}P>2|>1Lzw?И j%8\gfPvq.:Xʣ=|4,({ӓa4, BH]Sc"yuwt;W Bύrjj)nNS{oTQe H;XRW^وD>ԡYn/J! .<̻02] rVV0e@ G!]J>|S{*boSۡ,ARq޿ H8no2|p] Ӷbp6z+O\%V%y%\W]S+Gcrsߍ#WAdb#,e{O&|  +ZΈՌ \6hz]/{>[\h04QWeb>=Z:yQ8t02OlcߚѻXl +q;4[5gNGVuJ~v63k]73?0e3rks8:r{kgszgN4V8L"(Ȍum׭5\[𸻾a+Ʋ_F*J4:G4h\+1D5DЙD[6y9ijQE 9af>X 6 a Yً2SOox P W05>k $۶ۤPT8RÉ5oy:i\rK"d-OѴ45L\0$Alom^6N_NX֞6h1l{C=ۦ:E;d%Ӊvİ!yzvLn?&R{~,E? dM GiA[q?l#a+N  5 )g +GݤFaWDu2U! 8)Q#e9͕QN4Jy@.%0۫;chNVs"咜>;^#"G}zƛOu*A ں̖0 QI s^֊Zfkk'g;ZG[jzK q*j235XDH!-q&^fk{Ҍsһqj ؖ +[ji`Oژv1sO.F AoDwzU;~W +cssDWڀGu9P}ޝ]  1ew0Wާ뉱J6(mo1"28\js<%#p&ߕ0N}&Y6i'-Tɕսo6?LTib@OGg)d)Q$MHŰ gfCs*,-w~0}xRSh ;~DP:y7'?;|{(~𪋠d?CNY|K8o&#Nh~q>҇ s-5_G;SMM޵7N5Q~#qWwșc-=]P\-O):UaN5B<~6yh{qo΋ɴ7ĔDA4'M}?6} Y;:QO+[n"va}=MkwF<a%JߛvXjՒIm7E (V=Rx^ƕ^=~V7+.OTNjYAz8⪿M}7]'m1N*.kV t4H!&X ^飲nIANO"SN=QӖ7P^(%[;#?0*2\CCOaXpPn횪Fћi>|R_ć 6b>=} D >d+e}8K;݇S>F }!Y(b}ejcp--?L~ҧ>\˜;6ӊKaw%Z @ qJki!N/ qˠQ?pns q<-+4/ʙtoɤBUXײ aR$G}O#΃mB[#.Bb Ȍe,3~o#7~1g9>9q.z58;Bn"QP@~O0H,b2mk>>ʻ_9}kdV.-rA/r y@Y0Xr4𶬜U %Wس;p{󻙯s +VrasnΡ4ԗs7}}ϹfX9#Cׄ9nyh@}nٮAH( + ^ +/-(;W^.^[V՟ϓt­?[ PESeTij(ՐhGK~I5!S SyY)y1 [m|j:cHEo9`~ _ʏ1J;ϊVPJtӷP/ .i[L}%jVNtfnF>}6p}촱z췉C}kdiBn]{:sPI >*g{S՝~0S>: cW6 T#xC<( bヱp?#}yyd.D,0y=t>=\gcpx6Yl}}W.L;sx'Ϝ |}]dڊ;8ޱMß?8^fa'p;c1u݂M Gs8ȼ?~w ;, ɟf2lrm3.Oxz֊yIxԳ};#WA*#:_Ȳ <ԎՒY{!*+~]_%l7 w30-4bg%0LLoL'RH@70" +^{=o'-{K89rhO #(2jxw"R+؈ +:ab 6R&Mlz\@U_9^^YG@ %;h-0?DIxl6V\%Q0Ed' 0Vۀ&6 +?Wի (A~Z5ÈScXqѢg p H +>Q`2=T@xV jXj-`/ <{R1? / +($^x0Wãu:#phMds}9Uh&UG{wa|>'B'XnR軮V3%&P~}DtGKXr,JpvA92l>ՊHP̋NfF J3Q SIgכ 1ÜpArZ/^eeZ]WngoӡX( rFxftώOx&A7bKwEl_Nc+Uӈ!=~Vbmz +v) yo~J!u{e$!҉@{[VΣZ:wm c>oܝqtȍɖ.|]*͵JD|n% %V)-70˓h)U*X>? N- +em +I7Ef}UQJ1'&9 + +aD +9ch1bdx2 Ř*vL8C <􈼩D&m[;C;$slW'/HA@tx``6Q'1d0nI9[u kPC`4h#*4{5O-3Nca]`t*vPp_: wBsxŃn^j\[_q+j::߁B!m + xcl I<~b2Z|2kDq']7HƖ2M }L&{_/=Ah6hz۷f5>jT$H\Rs&PψG5x:3pqNrBO@b +ͶWe j"5iq3KQ}${ D@6k{9 +=rT^2sR7i$\&086d| sJ +3 Z?4I1寞DRmA YEUVKׅP⽰-Ey%Q1 i^T1yw.N:na?(1LīlCr#ϻAބku/eMc[ϓy,o^$B47ʏiHƌ yHa +ߍ]W1!#&)[ .LpgS=s'd%cs,^MWf\/^b"tfxT@_Q|w3 [qlr<վFPQ¼26H&1@4(`i<&Jv]+"3JABoxAbڸ=骝Kc)hgj XmTݳuqXvc&+a~@>.ELabT0ڨ2]Z,q5Tw8?:7!"簀qV"@CCyjV +c(OQ;21V?3DTÞߟ!8#e2'R:=Pnu,#.i9$6B szRP 9ꀯ`?/P)bAͩݹ AdbƱG̹8;sbx-qͧN +ד)a"H/HVcO +c7g qi#rM_yM*dZ1V[n8݉s=cp|YZʝPS #" dweI\!=͵ 3ɷ[IU#h$KKMf!?_dVCB  Y@3ؔ+`_}AI*><H޿A|퀿sm^JȗLݤGn.Dl_u->Sfte1XҰN$9?:\ޙ"*.j}2CEkԪB WЄ Jәr+HpshXy6B=h"==nz 3"X\NBm+ 4KRBtDj!Jp%udY@ycȐ^16A-O {wAqL*SiKXk}dc{b϶߶i~`_<1kOi[kvY V~ztj۾u4_Z- V]}lckZi~W<gϦ;ҧo+Ywm+v{sgpzg߳8lqnqyb;fhZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 R~ӯ[/o߱Ob~K^Ǔަ;ybl:^Kx +TKI !c^ŗspn2|:"C(Fjq3[=Bnfs0/gTD2Y*7>Nx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#Nt052&PAƊC OfKkm8 $=dN("zjB ЄR pc- ЁT!p$ vHNɧc QaQaFPb$%Rƒ# ùɾRb ;X1tq酄JʕpHS<^bߍ8KƘjJ1{y-')\>Sar v;jƆYRHH@4aψRc9DdHdD$IA +EOѻ44Qr$DbݠˤO'iC@fݶup^b>}8 oUt(jPxi} T0ɦ]gCo6'Pn/!ff/fV|P3b u⡢HIDG1'U׋)-Mѿ3FQCbƉK£LG.ʹ.]ZŃ,L{'%։`x d햜KЮs/` Ͻh:GߌD`_7ByG7֜f |?#fF kMe}v&| gq_GkGYspsm{Oy,QY_>\[Ǎˌ?j.r$6H؇e8qAz $PTDyincךg6{ߌ8)tb~Rq2,r DRut'lg{[>d2>Δ4s[Olɵ=E2kͿh锠Z<`ti6JmN=(pXq0["bM,cn}V!{IQ$e=/QyzхJU!!ջuݜ@VU&eMXzICKoxгG0w\"s/z̝.Ӂ"" "pE&p(Ƴ\w!!cA$ձ *i!G A@3btF\H!umFH9 +{h٬T}/IM4 \"*IqI5T Iĸ}a#CpPC:؂8fCx~hsR!1q])|XqwyRJz, #]r=Nc)"}@jٙrkvgS|Њo^Xl [&tX懪#ܓ*O?HJ~$o*$c :/Vӓd6R[FzV.h+0Q`1e,Kn98DGmXz{v^2Umpb#3{8j9#9# +WT;fAoa?Jx^XiU2KIkFtwĨq1Uc1,Of7Q$w 3[cAPm^ߛi $hgD[7>ENy\sz֡ŠF/S-nc]@c'e?6µWLgQYFKT[d\=6(RK.JpetV kR׆W;Kѻ(nCum@&o&-mU3Vׄ3jԕRRe#!u&B3"2ǵTidQ\2h,j沃/<e@;lrs)+v߆b9&0:2pe#XCyKPTӟuՊai5e5q oyn=ow"ohyqpTD}wO#`҉G)DpO6bIp, 1Sr_(y _Ghnܣ5G%jԫ \vWGtv$؎Y˴r"gI V?; ۱}U1!Izv͖`@:IlД$y >}q2bpYo>s~+ ё~Uĺ 6cHTF}śOE݁ι󗟰nX#oCI>APX (T8Ѻ"V}$-t +<Qy>ZҊTᘤѺ+o(Z0,2SF8̷@0&iZ߲!m=(e\ E YhH/6Q?kHx~p߭M .˨,RڄČVdſ6iVqȈkҳCރ~UQ4p|/p[|vmqI̾z&{6hcڥ}x"ZM lW@t\er VzW,b0ZYm]eW k@PհZu_Ԛ Y[6 ?J(WG2nU2ud@au"_'CRd"=:ȭv+]zXiZHWgVbe[%Ecanlyϰ6m[7p~o22/p I-N}%Ȩr7^oo&FP4&FP~"b(no2p;\oyh^etp*mB&ENoB(HRϲd/2)Sgkb]5z4]K+m2Z"c?)#gm=F:cÌ?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M-p@KOrTI~j֣,E+,9'"bÌ7!m=N"<1z~ږkYdI]`\i7^FAiY";Pscf9\ϪFruTEGR9a`u4 O&x|3Wťoi:1zɡ24$-qs۾IT)HSrDä7abp \Է_O_ǁt kdÚ?U#_9~S9^ +ݪhUw>;)}*|| +[kbo937˲-w͇ea'9=.hG.9UCz"t1i׾3gN +TA*#|7Vg:=+9CR:e|!jv|H@ʷuѢ>V`o17R;;De }L+V y*˦D.5kҗ$W^%icI[-3-~2$/OXC?F0Y.7v-vYUgT"GI~?6M>E)?@]=D 7j#%;]&Z(˪N{z4k:2*ћ Ԗq/xjEY(s⦿0}·I ]i(nw"'bܐ҇(}sm_tMk"ۣ=& v#)O&Cv(Ađ[$5b~ 6#a͜4*Ų>bju .t+@\аP K۰ϻ:=VRgNL[4˺oBJzӀ%rS:\riRAL NeiXL]|`r@Lկ4͍VvXU8״}""^dy.0ÌwQ#%iF9Yѹ?[>'/(=xgjk[GA0|; +'gP#P;A2)ײCCQ15';-KV hN8*?N$@̏7?Neagu>n%r4kXeu~[wIAtg[)Tt +Iiˤ.MXtYeIAx +͵|fe冚(GRRCEH jC j<cg#2*ؙV1]L.hǨ? +{HU +yͤp*I=UFa3NU4)o +~,dj㪈[uvͼ*^Sߞmc丠,EbN"I|1xS3lqx.:"iVǚ|c62n<caIcU,>ܘeQ3gfY_=|5n[scgk.{f'[Lֲ'54#n5&DѮ448 +yCKTuQn%uZ!veBФ!KP[X3]b`9J1nB$AM?Uva`o0Ͽkn"$A}[U?__K_%IJAZ(MUk#71r'ύ=f2GSVeiW@2 &`ڍWw <0pbgM^D}eV me;ĩS=MG!Eɳq6^rX'g`-qtP>i(LӍ48!9wIQt E ,/aCxxqA^&ZE04&ѣK=b5:TBE*gR"-@to3035nA}n쬥N5yQ{s +3+ˬBn'yӫ,QCjZ̴/~;=4ӸF ]N +ԛ!-MW8kOnYz"b~hwqAr3(lK-1[wYu:̭DžDmo=̾rd"r jQ5UoӲD?s?ͻ*Ǩ9m[8e +3k瀜d&EN4-0֓c~z@Co҇(ufӲc<"'I۸I:F 6rrg$5 T bq߀ؓ5u+h OØ M/7QrrZwq?LOxьb@[ 'n%&=yMkI$"p}տk=l37coai5oVndկfamߤ 9KT~dK 4!=ah=|ċ)F3c[bXKsPøs/|z<~&4~# > +Bzha"AK(p$hք(w8˸# +J EiWEȟ7!(])GP&iݡ__Z̛5!U+ +U.!H0o!9fr Mֳi׮HO"}HrǤA[.cc+ + :K(Qy/gqvJV@5UBn5t1;ɑI^)INR՛9;!&1Zv4|!`rǰF|IN_)rg}HWoڛ=sA̘4UY__b53kbIqzpҥȀDb~ba*-= k/#O0 ϴD +9JQ0"n@4%D˓׺E6r,v0OTsE{*1m$_]^ތ.5D ?\oĨzEˍ2Lrn;|x hO?z: @& +KײH-N!258a-v#'nK?{ȱg&-doÜB/E(E#^0NZ*m?99Г0q4`I)MRd(nI!HKջȗM<f2v!Ξlx;$' JG@(`Ds_I~푞%J <40OݓqIP&;XSW"^ +z&m}rg׶E\4˪Zgᱩ߼߲DIi/ccK8UHWYGY5qۄ ?s>SYԎoY"t2pIy -@;f`4ϨW!B!t,Y? *-믨|] yrSg({YmtbͮԑYFY;RKWjff5oᚇѳIUѨ_L  #c>R=?7ͧ(YE\QvmE .|`"#Zo]VSG^].o<]d{%Bzsg$/# (MA +pr6pӾY$k!px-2lsǗ1y#^#+͖I%'˒&%q_&]&i!( ?}[T!y: gQUGNd2׮/yKWD \nd + +!$zO˨ėW]B>ҶC vumߺ0e? =.%0T[ZK;.\aK*ϦH!J=OR5"-|+\h930aii@>}XŇ +pC wK@lBO4"l`iw v$d`ifiN>(m:^eit"o%_̫c<=PtL|1z<'9xC-B=y5ʩ_})CUj=MByo%93=i(,=bG>A2dHC̼U = `A I d,+M],J2@ڑ8M?n(IPG&!Ls@I{/xXo+o&Ǎ>D,@iJ:̙q@GJNO"_M>& ~|,>HF`c mm[<\VDr8ˈ#ǦA p +K|EO\D{Me|| ᮲49^6vыd$LIz,|xL-WI:}C%p&I6zOҷ:UcWzzh'`ɷ8Mi^!mPY֯(U}I)җ=o϶UfحXfXܠK;7zW.FȊqA5Y&!Ѓ >0dl%k'?} +1W?FhNьuY27]UD /M\w5iܡ"uEFE2~YE;VRgǪqtlE +,w=,B`çF۾K(nqӢbbjlqQ935)GPZk&]O%*W`X{| @nt3!WØ@0˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0aR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$z_Po $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZSJN1%WJMX^ζ6spI;-2OYt }қT9CR7G(f$.d{Fu;aϱ%,#@J'Ȳ[4 +‚&KkJz) 9{.X /S" DF—X'9*%7rlyHHi[,"GJ}LT|Uqc<``X#m6 PCGTp8 spQzwP@!f^V"yTϸ CnY0caupѓNh&'BSCIXƂZt+t.锤TP)8{arF#.ԠlG|H\'DiY-/[Oq e1TWJK`{ |5kUkf08l}%xHrB~ByT= 󻓯G_ +HgY =*_ C>fKr'"C +HA:׃$hlvV5Q<[⑭}q |<9X'uEJf%4Z}F9TFZV Q KᏏV@*EP("<3`Jƹ!Şu{@ +@RV#KbyN%N{]n1s| bS}9h@5Jfƙ褓k6Rux<7I6k:OO*ޥ}Tλ, J>8_PvO}+/*eM@O" +ٷ18T.]Ds N(ݮ#18UtFưFUXUG }K0 Jm2`_#ma}"߱c4KG6%޳rU}4<(]\_Lzw Lx?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯsA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)œe㒾6q]uT ++kn{1n|(kt^Q"BzWg CFVOA?D; ,ÅuFěu ^H__O?HoDiUm]QU jln}!AfBvD4) XMMpY Y[ڵ/DGF$Gy/04D^Dرql xz9H7 ܻLuoOLTI,1Es;6--+#Vf+p1.Ys(* E +UAdȧ&oY8M@+Y +cwUxti&:4FO6Q5tnQFeh* 29 @ U;EIMl+Hrj JeK|gqfo۰[W)zFvH%wM8Ko`N,/E|زjη{v2vEբ3Er,n':Z>e+D7 U3/o)k^)cfL~Ixf{]ʚq@O]F!;q?p$$B@OYb150E[ +dJptH=8 n$LhiՊX -HwP8QlLDI5NA{p +pơ"dq+gc\.]2/]))E gc W>+NT艳wm]H9Cm')Ug cHirD@Senm@ \(N1of#%lh2-?8/(GEǠ暍*)Cf`Xhנ,rq64BLG72Q]܍g&*hJ:xr'Yh$F3,0nFr;1aIATV ~QC=u!= w^gFibh>ePu*|ҜFNg#cv,76j7r0q2VKo`@~*rI+\;y(Ӄx@O6=4s}/Y}^Qus֝7z~Qg9R}C$nUr>- Wꈓrq0S#g\#s0;,b[LdVKAjēS@nxB ;|y +>دp =B?`wc]8U? J+= VRչ|ޑϩ q96qI>ށxsb"M{&O:u:S;ߗqt^Q\0L3;Ty%k/x=_\r@.;_54_}kAZeCHh \! =Jq^I/>ƑGq&61$`:-Vtrs"lw(XdӄZUwhp NxS^C|%cc\f~m> +R2ԨzYIī0-X"yrnrlC)p;GybYxctr;*pV/*1NJCw|/$aP˸  +g~APUy셫 ­g SItKftpffLKr0[F4cu|N]hS8f̶tI agrN{htS@(iAbnUlӼ_]\\nsg02_>6Fa[w {{v`ש\8ؑHۈ[ '9GV2%-G9A"bzQ{tqvMtLo?`?tDgzy*|Ǽ[o}?ևyW?ku~)h!C "3}WEN +_^e uf+F"$0$it+\zUڙ $ɰP fhГppTK R! Ck}N<Y}襇qjjsbKX'Ǐd7JR2$% ˘qJDt7[Y)%<2p#]]j4ۡGK: +6*P&zY߂E8z2jp~u! }C)z +'Aa]=x5 3| T{eMmWlK s;"z +՛t3jv$OqnoVĺz臧 %G=NI +!㬖>ғ5(.$DRAA/4sPU +~J)A=Uw`3<|T0J p95@/%(pL+ppOz-9`691V'1`cVS^:%S}\ٴU%z_킂WGا~g }YJBUEX'Q<_8?5/6&D|".%8K0,"#EMs\"%>>%r\0wyIfRUZe}9` JBѫA0&J =?@lzI5@4j_; 瑬OQYNAA )T IMmu"m'ɇ9&5`W^|,EKt%S9P,PueJ2ލW-+o&$Iozk;`/`9648/D  +akߥ3q1 GNmOm F̆,55m ax%|s[]GBE< }V)詈^*|dI1<Py^A狪^_AT+D 4t̪>ʺkËdڗ9Qx;i5Ixނv~C_P3A0?<9ԯ|S|.F> 4M=)EQQp/[1-NL3>)j7NQMD'~Qn0 %$VXRZ@?4f~ +ՠ~ + ioz_ z XeJՑ |kFt,[1sp#fq.~q[ GnI܎}tzӋZM_րA6@_~".EEЂA1v?pamA`(a6:"E;-Tvdq;eW)1w!N`G֨_/.Vd_0UaLJ ޹%weLZV^բ[BTz'^*sbz +ohpTӣSPkĕűQp0VCk_0ڐ]- O'[wbLJnLb8{+@l^ֶ7 /Nv쭤#-9p̋(w]]]1J*&6-cm/J7CvDc!LpAtKLBٔ;$,&Ɖ[]e} TԵ٩W]+۽K,`iu%(t+nJ#.ø2]KeL7..j5KR]ݞ%D߲U75֭`Uϻ +/lÚ<lyy j_\EU]R6iؕpWV칼C>s]Z/Ul.[0{jflZDzX"z(8JYYϢ֭|Yd]> Vzl@^RŬַ\=v,XU`x1 ?RxO5aK Rdz^(;_T)#S؆6e K1)[TuH6SLO*ffPg&%.l0[L7:%Ym.S`S!>ۦt&RҒKM !-G$l +Y"Z4ZHߧ5kv|C ժϠ 6il``xlY +Fb0O:2Xpw;%j?rL aF]oci86ɫw7∢U^ !1_XnzEϽ/ wm.z@ +V٢wM>4mI߅Ϝ&+Ӛ !zχ)'իL~ +)uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85WwG֏ɕ_I㊙ +$Q]-:zRpgߌ#qXRӦۦ] .%4~r3`1)@e<: +6 z%^>e_G8cqRGAtDFEw8A0:jVlj*f ++fM?ҮoAoQzp)xbr!2Pg q'O=oQAڢ A\ *0~U¹s ֛c}RMQzee]7-bƂZ{*ĮtZ1sf6i/lBD_S,o+طuCAjFDE*)DHWMTR6Agz~0&\9'I%:J59gHE;u3Ί7na;Q?A7*zL  I琊X3[nûݍ d((}װ;%z<;*'Uj([UyVM_Xx"}2٣N#\@:ؕ`i"kc_#\1)7fŻ© +y{EԱXZ H zIN9MH`\5PkY Yȁ0f7O#' J +++f Lv["‘݁!Z/Wo,wYׇ n)@JfIdb0b [uv&'ǻ^6?@ʓCP" ;SkB*d',3\Eujbe%xk{#ً z(ikPbs㬣Qg7UoFm l{P:sX%X +Wٸ/bNt*{1 BaQ +5dJכD˶WN9)sțPv)+B;`$%".>gXVB BE?REG(ڝ4Ď4F:"?4O盛NabRpA. a 8eqL\gr/%/ρ/dQ}TXG{R83ӆ0;VX9̲!8`U^Fc$=|C(gHYܫ.\O\AW9*3yJ9DH.Ge ‡dGd 4׭_],7W6 j= uu'2Cȼ1@bE,V0u +ezB>~-ޮxJdVθrrBZ=P&bEQO~6aP|[)վ,\^\IxZ=( .:f9&=ڊbq3gb0¦7B0B6L_D}rʍ<J-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZ?Np784wb2kE x ^ +n%a+Zch<ϴMgsi%#B3/-LϦStes +xI='#0cy5Eq!K'py1f^c8vl%~Lv&2ib9k"n 1oK3J f:r/zi>Ѐ㝫y +?;~%!Yi lDfn/c5#B YWY;,_ +okbDq3 4`qerQj/1kfg1{؏N} +/KwA!sphރ Ə n\=AY4u5ObmFc+`MCwðZ2o`Y C&oR SB`]BCFM)V b*_ P5Pf|%"sS כdf>dKHWV8?h1_8eK[,B 'h""ɾZ/;LYx˿c׺#` ʺl ~t~ 7WNU;,{C]D=4FLY_\Z6~Q2e +ޚƍ77޲m +RAOsfbb9 Q>`/B~IJf|Et"ʑh4 ʾ_)HHc0~K#mD⟐%0>I z + 5yilYd]rO"]$DwЁ8t;XPT6Y Hjf֒ٚ4@ b\o*fx'ׁ.:6_s}Q'1L-qQDr1(zG:VRJڕy~Wy ƌ@m5g7V +F,"NZ(d"|z+06kJAv +D zg~=b@ KCt +^u_1%ܬ$4Id_ZRnz1kHE4%h)CQ_ UcgHzHd;`1ja \W /-Y=sKA|5M¯oZkk[AUm*K 9DGn ‡ḍh7Ǥe8&Ŗ3lF^) lJ*)_)7S9KeVK)Dcr1n]xwWY{9TY|4֕i LOI x<sŸ,lxwX!rK;s]H>ϣ8@;W0=vH?]Eyn(8Pd msuhD4* ﬐x)X7 c{0_[uo"8$kTOLa8‹=n! Y˦촚98 bJ\[@Yl`y)3X!8OB4b!ePtjO~ԝ . 8j h C9:&pz?Ξ%C)NN4g +AHwؙLz +~:\دkPt)Ci^Q5z 7 #ua7;6~gdk6[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY hI1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)eE~нPj`aST0AUUPPPvճ8$oY2EQFL4G7\zVbeJ)%)5̞On^2ؙ!'F<˳mZQDF]~e 3u4k9Sn03`G3p:u#ba(6z>' :߁&k̚FL⼕}tA3/%ϤAm/jOQ"wj(8 +$Ң'X|.G0aqzzszOc`>ǭ.˟wT$?8nMCU1b.JX OuiIWՔҠdƉ#'[ɩfTvAG/|f@&:&vwՕu|巽@<:>%}DN"Q7J] n3`m=ܚĒqqD\K,,";vP4zvw?0e?byj#H +ӊW?w\XVNu5r <~c*eX:D| + `rE΀?.b va+F@YV%6xǐ-!9 ,@pIԑA@"/$ +>C*bWgAx_ [j2V*/USPE$( a†G,O(˪JV9X9$OB3Q^anm0Y̢QX2TWL<yƲrOVqKYX 7*ab9"C4Ͷ8ݱOƶޙ{"ez bO$%K4).kؘ>۬}Q$]m?z>(J1E,OgtaH_pX ޞ)w78 :vPO5mLnEZy.N@=% +׆ ++L-٤*cu9è4p/h ۜLRgYpXG jXʋdqI8^`Gq?TC?r|d,s o8~u_e~$BĻ'"zog(wCwB}Xtb:$cK1Xȸv29lS&VG*o)"[M@B `|$YGBTK5G|F?}2mb5K&P%PxyGjtNO>ՊSK֩z.Vy5`_lY?a*+P2 Zm5O(WVEGB(^HeJY Q pg`n֩ήz*qPܮtBbGYF骢Yȶ +SnyHmYm?G*$7]ifqOZl+I-k+/gklcppOBb =X6$x5\ >0߼bss{1հ)+yfII3o> H˔/G?<^-fKƍ𓣒48;3!z?w߇n2%_0ǰ#E +[̖&Qق]fZ[\us~`U'Z].N*"z]>|N#5ޡHެ@~T"'HGOsgpeOݔ&3X/)*j k*=X?;b*C1^% hR5GNu9۸19YJju&͖l;p]]4[oDhE6?{hЬiOWpkRT,c\hlNN=xճiEUT1yџZgB|IܤC&5L4 .6N ^?̈́ƅ_Hˁu@՞#n3㊙H;v(7_{zmr.7eajb:|%y 6Ȍ#G,K4oޘ44vLKB_WBz#AmL5LúKticC1n ٮc>z^F1.Z@M:kZREB$)/j9l|I8۲h#=Jӊ!T<] Dܗll_^Lp'OVqG%!3_ʂZЭ(h:"+p& 2I\0 qAY6a+EkG;E4Bcmp7 ~n'Ik+n;=0בb`?wWOԧE㶶fZ &IYԗI޽A%Gzº>qtӻ-閧R3Z=t1JESC~#}~qu#٣VLoz+YN; nxd~%lki0eρsA{W#AWH۞=ûr|{Ԧ3%~C+~qZZM[7ΙHjB9;YC0M!=$8reKFG?A,`~5L?0)̤|҂u bvF: /׉FjU°VY]mSR]N]OǓMtҶ ƲXG_C|l=(z}#جցv#lO@m ;xO8Zi)\,L.]NV[E|kއn4E}]Zp =j)_W&Wy#\/` Jo[3vXM;lp7?r*ͭ) CD02  zNJCxO8tyv!SM,p:@%ysPR5mGn3r rj=`p +*`[F0T}t#I8<&aoQ?L3?y:{yx^fma_l&**<alDFkH0w4 G ]S(Th1W:AKիM;Pp˼Vl=ڣ4Xf 3U2tF\wtRUvhWCI;y=mr0MB9ZC+IZAgb\00Do_p"lޞ[+WZ2X}Tq^Dn!$OpCn:sP/s}_`SyG`h6ld PzDDi ]fEfxf' ⸒ /[ dAd07 3A_CُɋL2.O]ƍϮFr&A\' +/h>۹C4jc^w*7ֆI4?I[/LHkrh0 & +ed/< מI QzgWK4B9ɇl4vjNEL2ös;Ep8g1%a?Os:!'!r?{vC{+PA޶pݎB=e^1n?q/Pd[ݳ6~7SHj?E;N8zDRn O;/ #4o3*N+:%[\8;tӮT+<*^[[eLn9Snr\v ;U@7SC~Ia E"(B #!!ZDP c =t]Lbr`qj$/ J0),7+;:>%0S 'S0u_,RPߑw/DROPLWB9G}gSe.bȿNv/qT_%)}FwGG~WO꒯VEj@UӼ=_}W3.N.z},:ʈU?W¥:c4ݭ޻=?\(W/e~yf\/$Y2p+dX#lHJ㳞?+8s]ZOA{1|M95urݗG˦*$g#B80מM _'S7#7-1G .rd\Oqj;ʂOkzx-)j^ +k7, 2|> As~}R1wtKIcy?gsqg+= dgsnN%ٚ"pgܫ%D\#tx|/Kg_5pϊ5y .IrO  + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHi[6D!D1!D!D.!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orplDY!D[!T + L2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 +60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tmr(qWm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*D\J(ӛc2ᤖpta{wzD # 5.0 U?CKha$sBalDT(!@B [& +ǣJXga, %haڙR7F 'TLdhAz'E(PJAvxlW꺺̻ʼ0˼۴2FwwTO[YY]Ճ<\tGujQ-FʻɶkQ!*nFՍjj#Gɮuo~Li"vR_O*,$LX@,<P0@"4 ö\ H4&4* (>6WNn+qPM[ɲQ!;&oMwɓ^UU/{%Nl`WQ0yŔTsGBQFbaF*BՕw}мR8 èFza$~za,\@yh E%Ҹ@< g"< THH6䀆6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮ'N9ogNFrW!%IBj1Eąp$yh^ה{0G^w: +ccBlYx;UgfeBi`@&08Ð8qya Fo@XȖxh6/(m{MQߣ%%74# @P( e1@ll<\:rEa0c  R MQTuOz+PR 5_KtGl֖>^(+ef|ɀ g^6LN23JO25)J`1 ͛WVg+S\ ?l:ʡXo+;mS#\Qƿ+I3 ʂj(Rsfϑy[#fCt|=0 ;%^>4ޟ_j&Ej\ dַY $.,BM!@!FV@fi~4RFP}H:kԟ<{޳"$? !\u |E҅~/{gj޵6zՇ?8k%äZ,|vT=9zC½kһFpfծ AYt]OMpn(x@Μss%j<lY@` +t{i)u*Hc#uBkLppHL/Q(ʃd5ɬOݝj654+Clnõ 尚U'4M‘03@e?޼]Ek:gӮx`OpA HE 5Z!g]1h1D m@$?KC6~bpF|0C5gy[A*w@U؉J:|Fdirm#jDŽ$ ?RdzઍZ]4Pg{BYV[wPΓE>ϐhu&s!&"IW_|l:TM)i p5#Ck6yAGt_kdbS{mOz3CqIC/Kꋬ( jetw Pfwc r_h/m>5Zs>4Π810pሳ9.D +ofx2Ba %D$_drf`x'?J;,Iqr0(rO`hwa_5"(~( 5TRvP^cbjv{Tg)H˲ g }3#K|}"ʻbME}ZdbϰX`@%,T+D< {zzLi-<@fŋ$Dps*qyA9Q!:*IiJ[7QTD0$%)1mu4ϨevEZ d,*k"g ghj1CÐOh hp$jA]{o$o|DRB Yӑ(trdៜhQf,cЅq=+.zjеÔgBH:hau +B+s G{+^naM.#=[&Fk0{ +AaR6~ r8gda4BR{ #4'%hUp`%~%rK,7,x6 ߎ7o߁Ge1C(mFYɢGAX/h QNa ++m/CusUY+0{BKiN{0 OT0˘Hs]! +b!|cY u J +ʜQR9II:GaR$,z֥X/A?|J@Eý -ccPzhROim9m0KM}$pPD8>l?J +xGV[e)> 6Ir-OLR +0g>Jj h1b$L;g)e<$ K9ɔ[l? ވ> w 2d0.F*c&kB{*locg_ +7ڲ~W`&K\ryse_Dqk+{"/@^HQn<=pd&ZL%E 6E$L=P<ʂw^G1c{XbQSk"Fшѧw&|zyۭj +ŎTaQ]> #dcH<,B(d+Z +!w@$=p1naEz+ddt#Fϲq|'WqG.dqxE~*li j-f^mv8vzDN0ˇy +`00;)o6(f;PL>-Hj[C@mۇ 񴟭NHXri{L,މr2:Zt*PLGqbhܢg+x NK$c2g +h+6`s|cghg⳨76i fϣciZ1g1(HLG-ȁ%C?}h!I78#IQ||>3|KryXBH=GPdYQ>:. +ՎAX&58li +/J i\?~`ˬxI?zB^>h.Kۉ`%Mə*9XnU]l +ʗ*J+ ٭e1¾7n z#z4V  ,c~d@2uȾ5<%cAt{i"s!&H[orU5:`(ء/G. &Hal@ wV|խ"HmbVФصZ=XP +w$.-p5ֵ?xѠ3_jRklL٪kUu>ć=ԓ+fj/{0t}R☳9X Ml+dFBBEL +Gm"%`-9mlo\W6Ĩ;dOjjZIvViZEy6Nq7~oy]ɅS"GJL-Ί$a1)ᬷɩ}:0mD"*U,c3bܧ4ٍ6v5:m4 d:XZKϏjfo:X'4n.;t8O+] +D-(Gƃ՛tҮ3 ]Q:m +|8q8 z={ͦWx4H%- WHDQl +H@^kA@ +WېЋP*CH.TNˎ2h J"U\?L宁 kx79N/L`wHo/%VPwۚ$˺]zr=VVnY*&v+5d>Ǒ P7seiayC1]0W\)7cH.lS6AeQb +}$;Yz xH 7ԷP@~j#fZ?2@=\JVGO\\Po.`fز { ;QGˇ%٪쌤<{pMW7䙳[IdUM$=z&G6Ҩ,Iƒ7jV~cuntN<lׁ#Ia3d+ϙ7$OgiPܮeqPfG?:D.UA9"DŚ *9wĽ?y?;-!RDvtT ȭ"h뺚~7ё T03qOb4]pIDs-1Jk C f:µK9`~'b;JH-+28 9yoZzFUUFS$C⭓LO<$Nb%Ѳ$]ȳn{k9?dҭҪN%mD2CIi%Ux:Fd<ƮE AaTqUIOKS]QKk}V,|/D G[US8Tt  21FB13oS=k_XWރKYO5Am*O4S#EYUS :<1SkN(̧^Jb_DP 'm4"KvJ%$dXĄ(oY~9astYЉcZ,uۀP9`ʄRZ ^cc5<aM;G5O{x1+; p-;60²ښPXa}wpy5} U2dQA]ؚp F)~@} ݿ:n_Sw[Z٠?bEOoX:Zj/O_X'&l:%tt UU]V@>9Dp_wNj (S ӛ﵃zQ]zmJ"0NsiJɦ  V״5g@v$=$_`X r٦c7b>#}~v`،R/I1C-ˇݖcHQ6`ALGׄ]B)F9 I±O +ו%Q6],$XϠ/ޗm=ӭwKWp5g1k1oqe;~W1÷iLo=ǻuWRzW o̦;s:ΏT_A|\ʟCs{&EÁdDh^>|cP1! ThEy V\%OL7$xI8| j^ +9%˅kKi]a<§ ",e^O׋>~c|TL~u(d`cMpǽ=Yb&NyoH%?pqfNQ ax7ܟQ컎,A;@MAc*@m(?piD͙,Ŕb;i +i$R^L8^2<b!c:* AX|D!߽D 8n1)a0+@7ԫn%ɵ{φz[*%W_R4g%P.a~ X`p'^e)G {PLf}M*P'B9&T +"6]2MK&|֧̓/j!i_=G$z(YFJE 2m)i mi01j%wMa] {% Y26qP6FbdF}RZx +'ZI)s"_EsN ՎҬpWU# #6Mya\k+/V$4Q縆w$D@-!æ>L`qO߿)̇gBR(9Uxއᅂd˗D2LRݹZ_4l~0|HNd>3_:ӑI *Ь{S}:fմ9a\IECT!"'@V!۵!&1G4T5e k!EuHl ]_tiu|xW.MC2hMBedh!3(tn4c"F;(,b9%c0 '#H[`@nvR<.+QꏳXgZUuw_q !~#L4WTP;P"ՍsɄwr<$]v9jLɚ7)s|ƈPEA8SyHa1.xoO t4OB/L +kx:@XX剓סl}iν̱"Wmf qrڥkv׊ί,zE_7=A2$RIj9lrWK.g"zږyy+rMƨGj *4ǘ#*|%|p>I!pe9-X xq<peM~Џ>lw6jx-BxAV2i  7ݰ=n"7Q5q?Sk|u[ ;+)CuNYf |12at;h()!W6:3 F}ʧCon1Bg2Ձ}z_|0X^>V +U! 0ZY<%s 4 _ ǡk[7_Y%'%mUlĴylnP1*MiZ tuѹ({F4XbՇMnZ1%k~]a +I(U6Td{L +Vʽo+W̨y5"%{~uƹ+[xbk[ʅ~eCi8ZNgǽY&H`T[tVgTӠu0|ŕ47c}[we7 +endstream endobj 16 0 obj <>stream +7?RG#:ôz4-&fs.8|3۽̯Sc(rܓ$pny!@_Y(L} , k9kxPN>,J3-7K個 o~qd4jU8Zmߔ~xZu~¨AP(IWzEG9Y.TU"s`65Ľ #ZrɎ (,A92; 9/3zb)N%n'` +vf3`B+0\E%j$Xא]ߎmFkqGC)IżN@?UF`,4ob^b(ЧEL×C`2Agl3qH^ՅL>o +2 D>2%ıΝ\5dn <ZqhG,_<5ZkR(ydr `6")hMƂ`A2HW` 0G+(~Õ> Dr :^XcAzڵK]YSrN}aҩXlB>/sfXn`>ҹiM[xKN %ҥ+wC(R4mCzìy>u@=zIZB 3`k 7 Z{O'II'3cz dJ)L^,YX<̼߳y)*NŕwUe힠RPV>:#2+ㅙ?Ybu&)P4?Qq +co6Iy (8=)P&KY2LG>b"&D*<)cᘞ*DU*Sd {,FrRfz*iM=Sq( @P Jry*ro&{gaf,U*T&pρMk3֎LK^ڠ>;>2˟؉mo]_T_wnu!Mޝ*վA՜R&"64;r_2ڸܸ{r2^B3"Ejצni Rdq$CAju LF UDQ^XP8Lv<cBDD(M2l4eqSqU_}#.ӛ@-mP25ej2LW.nMHnr홈gj8(I^cRTM&`XD XbKFg]q#SFu_QZ{fcz>"jY>&e̮﹩ϊkls-{gl99 ++'ze]0a;"W2:7)(Hdp8 C49I( |94#2$i +0iah@Q!Bc1"0CB12D S'όw/R[|RɨT%shW6tW, +S3L1D8Tc;<w_cM^\'vX5 +D"b d-~ m]~1~?D6< QS U=βMŮZEIi[(#jzzK3("KIJf?Q)tJ6Eԯ|B=erGkآ߰,t2442 +#ѪN&#*] bOk5hgS ;-@Kn|y\H"[n`Ȇ$_-Fh3ylo;0a,u`c#o& +IG+[&]&._;*^DeV ¦ LM=clUVrTE,q|JpFm Ƞ +:!7K9!х:&ɽMWEL+:K9:Ԧn(fAKdƞت!՞-<|Kk2P_іCN!t៮"E@< ?GvKasQbz!9.mms| +Py-|ZqG|s{Bu8}g6'ܒB47˸#b6dM1n5|)VC^ӗy' ~_C!aG]ȬҞ+GAD ;m#tdq ˏz ұ]K,Ѯq8h;`.=vk}/R.0"fhF m.I2z +ӖN2(`|J$IU b]cXo]U5es1r-ske:%%4'3ќS(qG4i4 Ii\!]@A4* +f$;V$TetcؓD=C;J5$7hz$ =e3Y + _qO1(۾FmpQ ?lMV-ўX{ +$3:,aeEeS.9L^ muƊ䊊AEo՝߁.dO{QYJ2ZPA;1#*M6(X+Fe}4'Yp~| +[gSkZ1tTʗbX񲅶WE72s6,+̽fru6&PV ʹ46f( +ެN|;1U$s?5F4Vy7z +TYȌkN7 :g5g|"1bx&_#dteT DP ;5OP K,|C4fT``XX`6@@[ ! + #DaB p,,` РtMXL@,0Hxaa!a҅D&cG7x@ewՒI$|hdFq,ydaĢ` 4,LE 0 +n8z( A+X<`"W0Pa08X4@0Pp! &:XTpMT&pAD(X@.8l0!a1 L( L|x` ! $21 hpP ,*0XlP!bb"ƒ" +L,:`pA8@!Bą&\@B0Ń +  +&P \XtxA0@abQ  +&P@!L(H + `20qa 8p1C22"EyS. F C)fl{ okV x@$\0ʬ$Hpieju~VGtAæd 9bT+&Uڑe}gc/Ϭf^𮞓CCOʴ:UӺTEE$PAՐߺؼ߬c왏;[ÖR}g7ML]I32'A'AH``I` u{8hnip84` #0HdP ႇE + Ԙ駦&6nxWfKdD5 :Ub7'digG{w`_AzUQ=dxX4啦U눆ƞgMW⑄ Ɠ|dH3DԸv4ڐM YB]Weӻ!ѫE=]#SB(hY7u=NnJǟ $d0zDeEC+ι۵Ϥ';}Z\X괨}̢ٽ3Lu*NJ` Ə$\!Ҽ2F-֍ҪF6Uee痍 ƙ F 6̠3$1SDIEN5w5B3  ;av)' R $HI`$]K4T5 Vdg$\0ll<5un=Vﭺf\tFGywWEga {Y3bp_Kf;YM$ 12'/ʹ%mI`ɌfRvͺ ֜)#y.hOɌ"MvL^fTF2 +wue;'Г܂^RdWFiRu4xTD)tC/<2RGCKSU, ME$1su\.@[]_єT1*J.N9W岺bvro3.ٝ+2u +S墬"I)6lg)YXf$j%rJ N7by\b,8Ʀ_tVEW|'U[f[Y1k(4cG$&*!&^^tWdtΠX]2Eg;ʩɬ5 O&qf$Gnc%]V :R}whaQC֚0za6ɫn~s:]~ej=)${hn<f;H'7au.$ F+5Jg)Fm?9fVDx[e g´^5J(YiTD'a mVLCWe{' m;5a+?S *VGswv}Έ]7`z, O1Z9kyڽFV}fw&%Vѫ&֟53I8X_7/{'i_.YeǺ2wW7~^v+Z@SGTu&U/<(e74YJc")›xt]&sл")ucJk4_v2R7yF2XieМٗc 9) )ϱ#,QUzx_+u#?=!sQ qm:Up7+J61SjS;˦G5<7[/[aû'֜ԇ眎&9 []{\k.,6O_ù<ҹahl6 +)(EYɞbtƚvA)|aM|h0Jɓ;o:+bXb#ԜbH9hl +*v +%ozgIqjz1mPFW3Gd{`eZӑT)΍DNajbX /q:j*(+9Ȭ2JD3t-X<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4C˱ݭ$OsvxږFUgFIwRn#iC4Y؜.}#$Zgfw? n4|տCweG1k4Uuy3 )'S8)=kcl(]7Ÿw;TEYOJz̺ ++_ޑ jBGw{ɾRnV7WN ]ܫLjבAgTOiý}_u~\'βxJWIȒ3nw^ SexYf!_4Y_If?i3XuT#WVfr8g75EuUږli\uS* yH(:) + ]oS6WA9H)^ݵ ^gjvfVi k-g]frXެdw"˭NY45XeG;n27y,CAQYi,Cɒit|ѧzBM572$F׬8/N^SjuQg^jus*dիyJVh2Ԯl-w7egǾu UnL#Be8rT#:Q15FŴ[;+V`m;,'DS n{ؓw95YQ|̎Yv3!aIfCaOe3Y쾎ګt|rii3;#">: +bk*s~t*Fٌj6um֘Tԩ!?gyBES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb *Fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaleXhaf.%G,ϑd%͐ͥ*IV&*FI;?B+]tob'c*ZN6?h0}26WVWzX8HDa"BM0<|0 ,\`Bb!\ !`a"B*4D4HD| a၂L@|Ņ"(,@ $$$@p` !0.0l0` !4@0LX<8` Ppx`*@&,T + ,0  X\`DHp@aAT +0 p< ($Bb``BDðaA‚ ,0.\XHX0B×ό  H?<,0Ѱ@!XP`1၃}Pҟ @p-yxX`P"$&&Fd0b*! "0@pHcpx`  DDj@""D$xxX U`!a 6  ,XH5u|Yqh,"NiTno],s.49KNnDLJ94+:e}Z2CXDq ̛zM X ތp|v9?Qr[y#?Ԥa ASMEN.e4\Lb<):.yc&ӔǨffGWc`ZY#Gk]8fVY(wi\DjbTYӌ,=9#6}wZoOχGq甹W18IW;RmXȊZiH~b#44$eVU61~2KZUs_NJ]G'r˗uƦllGfMh4EtݳcMt}N)u覒u<]3xC)fy^7lP%VNvGA)eeG$ב>d-oyэ")hH5E%C8U>S4b\?Q5`Rc&9K"Vh}kvg)jIˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRɺf8t tr ]&e +ALj3*QiISЭLO"O96s͢;L&˒\.9Whڭ0v^>CbUM1j&2+(f:p%vU *&Ӓ#Uh>lp-k<AIn]~JXWڙR  my>&e&+sF-3rgMQBѕl6h#5ᯟdH-2Ca⫀tIXn. )'sۧ^ 5#43DVVܮ;$de{ tRrU&oQ'ߨFo~zT%4'2RօGԏ)2jl7Zi) #tԈJg:E;}2+oʜ;r.CKN5> Rmxe*y#ᨳ92ʚbLj賢TdV1DF.7sWY +MQh*X3swx * +ƺP$|eOfު\]e3vB#b +m9uЬ{_=,1mƣCtttX]>չE&dŠ9:LTؑF3W=ΪJ(sl}Iʨ:^R1 S܋<2 wc&Gpa(y2Ic篲KT-,R5Dx!Zt9EYFe}` _Wkm^(Hbq6;ǢYcOw͙=1w sԱ)8 BNe m(ʣLiPl;qY ~/v% ݪSe#>ʝ"GE(Q2rJ, 3'O;2[eY1`Q;ߜ0'H#S8@`eJ^>ns9H6DBvsFS“h`S! 8p\1)bH]{jȰ25g pZ+.;\b||YlSU_998*3`(1 +|"rt_IF?}K0^EK rU! 8M76ns魛|cZ4cD qhw7 " S:dci*;u#d7w/WCa[˝Hfr&ťdZ!U-KբKJC3L[Z\*{L}OaKI\eIzv-Hc6VD]vVAqED:q޲ +\|^&gM[T`|5NO7C&J6e͎'C2(*xl;3|ZqQ9"dW_v(RC0^&.e:<5)r3n@!Nµ$ e8M̆T]#m~YRXb6WS[@.ͺ5lF(af;)5Dm}E 6/4Ԋb4tH$duB9@:qDl˿Pƺڹl4PO@F^vJxo&Ķb/҂07V6{I U½J5ٛA^%yvRغ +¯,* |ۍ +T]GM_8ews433lcR&PMml(b2pqN<`,CHN*PBDhkt(Kd$sTs0̈́װ3Rn)Ƞ-9U.-2mcvv7?qhw,Q6ʕ=~[:Ƣt-B?4ۊܚcxR|߳WrkR˔ﲩ~0<+>PL*AK\Z!U38l=+ +ZO2iQ5SWpbp(zX<Ӣ/i@_CLEFq]>Jʌd|Kͱ/FFb{΋nV0Ty?hI;s<3#|r>׷'_ .̈́>S. /Q^Zg\PJ=݌h8DZ%=@xIOAN`LV3#f8@Ldz mnRM_թN"r)9aqLo/) +),khп0'$" HF{ T0DA݋tmEoQLfQ7W'~;,I`4'3$MvjzPh gDTд UBng1Eʱ{&dx&'-枌XuR6@m(iwō{8zPc! + ̱  eXr/,,+q 4O!cҍ/ ;\Q/ +uPy`*:ͺu"otBs0~`@Ʃtic&PY5z2?~vbΡ뎥WB 88Y"7)-Yt$kzDB}/ΣsQ"}F +Tk%x2]5nxnR;V3DMa}3B.ׇ>R,w/F<1EJ)?O֡ ItЁW"Use*0%;[fMWaDFӂ}I/jJhҔ}djA[eFlqZz$Ji,Vm5t}2 +?(N(|hH-8Tu%Sp\{-%<7H ?P;,XY{7qj]łj` n:_mQseʜɛ4|w̡h\-dZs_6Ax=Sƨ qj̷"oSTAŸ⪌ 3P[={D3`n*ɬMҠΞ":̕`Aηo&6(lR]fnҝr=N'Ů`~u0ǤB:m!a4[(^dvmUV~^^+ٻ[IYd-{CwVmX0͓ls|/-F"X|K )0xT_RZ3Bjz"iئ*R, +DIsau 76; YF w}fO ~װ?x1rTsD Ȇ +o&F Wx ],TҋqK??)ĵݙL*C)k sKTYsK'u*frSR&ဤr⫎'Q+rH{w +?J sDž^pnĭ$1E @6 M*p +3Wm Wzʯ ]el_ϨxۃGńnOggmtdԩaf"g'VA@-Mq+B5fCBU:L WH%ڲ۲rAq$ЮHT9n7џc{St A6fU$F s?G..H\) ̼P(\H[n*?IV4d; z;{ԭ\ L8yX1܊/My&V=cVA@ +Sk!4N,ш1"Ss E8[xN{d` AELj V(12 o؈#8bODJ^TL{5 +-y*SN} .9Nj\\x\ID$V$):Q+L0-GրẨr{;WD][`X扅j(и[T= BBal3=.:Kչs7)m,ƷQ_mzR۫\r6a8ZF-0Wx P*Evp55unmx$! ͔XhÓ}up9Fޙ}3 qT_5>,!"l'jD 'K]!}V?(w/[aHQc8z%1 +WEV&) {TG2ߘxyROI'topJa)`?)bX4WZT1Q͇tmʚ G\īZtX"V TwӊZQ}s1i7^<]3~FH\L4*{>١2JjoһD~p$__R'EĖR=bJ+bF #Fu [wnϟskk0QᔒҢ6|q +DBAI_C3d%BK8{ɟG9?]VH0 wk&qN1Sf$ +C!QnIa4dpIߛZa?' 1d9$ +7(j\#ȾxvQ TT*5 Lv/8DOi5jv! TuW ~~0j/u},G݄JP`~MXn 4֚BZVi#%񛌒)h_R`(8S_иo_)ݚ2϶jПhcJ!ބAoAY',Sc/\@-JgEšSt Rhdvl`A[-nǭ /@A;H/Hx}z;r7>"ak NvcƧvAD9E\/aB*dC\ XoDr$t,!0 MFe~ten>jTBSNURG+!) kq@Nx ]Z~/MĒF'~V +ҩ9/JeY; BbB?0a[l;8R(,B+2%`77@HKˁ +;D%}P$nfד ]$HPU"9yQ`:> vk0.&:H .d+wXVv'CǯGQ&E(M,p>BКab4Y"F|?r,G6GtJrG [䅳/ /Mc1H!a0 Ly 6*dBkBa6`XSӝb8a70!+uar41ѹ5컐43@Ȝw[hs򿨓@H&X!]{5|q8eFcj'rdE)…˦K7>z3zE=q(y@{9% ;I2V.`Xp6oq^޴n'rdvف3EG@3<^B4T_=B2䣋 M_牨g F܀CNQ@ΓVl:dƽdh9D>~r!?ڼH*4,ݍAQs La+C1hz=bA1&(N9ab*J:_syZx;VdIV're) HI(]U vMWI7^Z",%@x@/?V+lʱ$22"pp~!ݳ^mfGw/!J1pAO5m+f@"J`?vO/Ubw)_h)XjvճQ>$#I4 +#>,Jri,e H(IsCTS7}Ύ)iP`JǝFJs=5(uįҞ[]f'&'7W2cZfB1X{F5}^.jZdU ߹HHde@n'uHw9a1zC, ~B*DcfØAA7gxXɖHI*?ۖ֔dDke5V-۰r҈i3d=![ `u&v T><Y +@= @($Y^.&z@p +;0Zeq]*Dhu4/<W4I iXLʶT9c5܅`Of(K. nb0=m!&"%HfvQ w=kJoЭN=t\laS;ޟ(pwcs[ˌ]!^0>z EH nJǘݴ{hB9DG#9<$ىGxU&AL*>>5 8~+ +s9oPGoVz&10x 3\ Z/DiGi5nXXΚl'?%Ʈa):ƕIL!ÖUi,$cU/R>*Qk.'#!nu]gٿF'PD{6X99.\HI+,OtLH[-p8ftyJV(G1E)а_{RKfH!k +mnCS)YJFCI4+ rL*c7?8O;faA*rBQux~9XI|Z2~̬+Y$:g/ BvZ"fT|,1Uhωֶ?pq^b9guGrm`WJr +HrIPdȡ蚪¬i"-"CEɀ=8Mٰu,(eЮۆBtl}BK'CXg);Jj#.X0Bi󡕀WMYnIkbCs[u-#%C5F}'u%|]<&!WHPF-yŀc0rvIkLv}6;!Cb5t1 A@d65?czK%+*D.N3f|R!w< `m5Y\5T٢dpE[DlEMu6I>*5GF|w[@-\!8{.b&"l"7?6MXyz +ۄ. +ItWCqIĖ~ Yu(Fq|X䛢"wظ] ?UxYhw-([R ޛ̪Ȯ,qc/N#3\o%\Ve~l/%%:ٸ.+6QSG[$4_ b/P q|@ć/T[lN$ n{EǺ)"FRL@.)ƤuvITkFߧ TP bs =0Q4JKb\ hZ?xt#~G|0'pgPNZQ(ŏlbm.TίbJ H&0-=MW"5tv%EDT:HcqI lچ@Jҧ[8p"~Y RF`_mxdЦ9O&$pûm/Li)}֖'i$:I$ݰJ +Fj&ֈδ1^TRS1O`GȲ;&TV tˁ=QQ䤹ψ#hn䛉a~qf'!akm(g #GO~>N8.G/ԙ'}[(T E0yd\^U['0s$p#d7K* 77,+$uX*_V dZ&  $/bLuc@XWҙ0k@ٔ`@COGdv jc8K]\|0rxf 0b$!{C#R؛ GdjA$2`w:a_o++Gh6qtTHeGB=9+ ͂|s#A[ .=rz!o-8yZ0f=),"ŔVF5Eb^%RHR)v6E)T:PGZ`jox +H Jx|@kuZ5iYko9؊CvuN`6zhrtkcqE/պreNNgR2'9FPqioᇸpM0%) PNO9s@ H(UqgY +0T gܐ ̻|3> Y49~H1Sע6Ce KxZTP&"#]:,eUE3 f ΈfUU~!,kr@*?,U2@ kNR%ڄ.F/} Bk%AXi4Y@4䔤 J(U9"KJNj8RTQ. h1'Qm> <@Ao/fIu\APhaa4PhяOvc1<Ӌ2D|-CV`'Ȇ6y@).m2W:cRxX!84Qf5<[il͂DNT~F):n>{H&ڬo{Z7:f\~LFHl? =C kvbM]UXvjE%2^y\vgO9rRƎXJH]&ZvEZD P'TSu_W#7aI6YE7,] )iWRR #7+03>b2л8&E4M3C;2<B9s~am(|@y%sx +23"uK=3o/P +%Jv@oߊ6ds[HP7?gќwc)h4`ՓĦj㉢@ .COl0-fN)3`auDj֌{O(fB6{]kieC2SBTi;n0@}*٭nif$*gE-`\d L Dez*5w5.a@-&N:# p%О$0/7-E []6JJɶ֨ukʽtf:H\A5O'0b;'}=zv_o}{JBaڬ =Il 6ڎ ;kA' pcz=-C*PaAǮl\qFY9Z cE!^H>fvL2锦?I*G-׸e6̩@ZܕiVN[Ј-)H x!2d+ Pjה?(*a Mi$,ǔS>J/䣝uZ\D-0:! 2:9<ޔ͘t53:@d(S*{BJ _]A]]6,֫8j%W_FPtOAhN2Z"wk%4rBG!<`#?Fngꂟ7x}"M)l./o_v816™w3'=>xL^5QEE.XXʄBC-߻%gӹu887_`P򝠐޹1&MV00=':mT\8xg'>Jɞ<n l! \Ag%_ce{JIj]cӳItaʼgS&;ݖo{Umo5yC`~cQAh;E kJk*(=4sk$Bs.~J3DaqCזs {.u-֧9$0Ob,5lb!ǒ4mm>w߄+:XfJ~Ya8CFO・^Y럥iĹa vw*TaD&jK\$ew3b,dt v1ZKiNJU|{P)pc%Zn«cy<ֵ>~Ưg^1? |EBɉ`D_\ ",m~⒋;e@[hgؤHiуR= 9F/q)`v)XIZQ-ve\HeK9JGT'!(X1;wltF&Jt~{'驙s`Y 1a4fI|ˆ)ōՑ$09d +?H+c~KjI]Aƅ57hP#'iWi/O送m9*FLQCs{V88.<*xb̶WZu!>Kbpo_Q%үA*y891ٍ8BAuO2$׻0EN@~ث(=$ߤ5iWxpG}u9(rB,?DHqeH!A#m_%v##FV:g`Y2<>rJ۸_6cilgP&w Q_2Z{CK&<0?YTBmJ !wP>ZHAKQBJv ++īr_mX#-cjĀ/'n5 ]RӆѰdϋ+ *mrˑɃC~q* +qΓDC~,U0lx5ynGie.uSO ^ Ckz_8ω!|Z6a:8cWt$JUuLK__nB3`h;@U.!6 4`h~]쿙\tN%l61 +{0Q01YojWTZY>|r,#d?]RD]~,*؟I_Mpeq}#g?d$+IaI՛APiI*`XU0a{Vouҍ0"l zsoCl)]xjTx.Xx pe0a"M꼪,a C&Xb8?ۜ\y6ڴQ >X'wRJi\8ˮ#G3ɬ] 3~dL\6~,aIRjǤ_VhlS8:8o(=t5B\,2#\R ?{ b|6ܧ6I/գL!+g-n9WxS\ib!wWӈASw)`" ڙ+ި*+C!~NWihG8VbQǛ(|tF8F(=ò+Xh)A^h3֔|8`AA GUZ g*hy[yH . Ю0(Jo9FEEB`hdTخT_E7e5w u 7Mh),6CQ59 1s֑>I[oK>#ᄈ:0"H٭8jHd1$Цya3H-#nTAETQh*> +ݣG"+49ɼaH#St~$VWzH +',l>zrlP΁?.k{r'1M|oaUVо#[-mؿpoi~c|I*v/(!k7C=|aiBUͿҳJ51$ю`e.-y?q/ȢաQA5bQꪘ8@00/L\}zu=n~9Cg;N?G7$(X<3mD vc0XʚGIfA 4%Q BmğwG "G*XjaɁHmiV$fJ3L+jmkzi;= HSMd{D5LmhC}R Fl', +8rCKJ]*ٯS%!NN S0 UziXsqu\;cפ܃j/jClo_SE h78iWO<ۚA8/?`J9d@@#&!1o~\OiT'a,r EHŷx|A=|>SCVu88'dMN-^Ԏ nrG`jb S[FD3M%s:Rہ./23E%k4e*0h+hɷ(KfNs̈'-yS#\9*b$مGk?J }//i(,ؐiMh|q*Ukdwenp{tXw=O[\ j0!l+^u1Υ4ŏ&g-tBu* 2fppYʫXz9 xJ@UNW +h0,)lSѕ>SPpJ0*Z[ZM3݇X5bKHgy&^ -I7ȃaD1.D KA@#H9\;0I +"5AV&D~q(QӠ7X jHK$nX؀b2~] +B'n'v"2&VW uG_x=|?om_hx8#@]Mh #^D(]_HfPrsFƨ7n ĖR/}@n V >2>C2mi4./U۠߁Y懧/`S/2 +ODHM1VK&orbUP7kƩ^ 6@Ru:YcL2yut0J:mu2Ǥ @`^b B?m O8?[ rbS`)r- tJMI`n͝lP3 σ.|%G6#N4].5$-JEs&\u.K]rƖi)a|G0Z%3$&jNx< UJ5V|h_Q*k nqUy3:}"Bm1f^ Cǡq˙)m6 'j0X}I꽃9'zͼ$K>\1HZ_v{\2#>c,),⃶{G+$4IXl9FbR@Α +[(ヤHan}4Nx4Km̑E }nJwmū{k2jm+.qxl1 E͖iXlQO6r/b \$9G[xjSfCe>Aaz#D" 9( 1Pw#Y  zT3w(OV +B&9 ѡD$٪+?Wv飞S,E\n.v)+u'{JQYe sȨK/>àT΋AԲCl<rY,?Ѧ.{Ft1Mr) %p>֊a)Ц)=l.IO?Xm9tA?5@ [ MRLiĂT >f0C+ +- " ?B޿0L+jT9]ˈe#m+FW(g(6լFY6/ 88&a<  >D'FEMo͋͊>_ƭ'ӥt A`^M9#'5}9|U9ޥ9_Xz+݈bU'A]U<5M>/6i.L|- JsڹNpj[*-l5$S􊖠' }g'k-ؠ[\c=`fY+Y/x楜5 +a¤w<[^ZGITaT>[_`,^Ț-Sj.GG|Yx\^J%N8z<-94yԇ, {xDo8K L_fl*'()?udhv.kR&q_"wI\ZnF{&*&?E/PEE7 O6cA4/~HGxR7/2 &9Fk{ܱ^C*R^1)tiY +@vr۩ bmJFVoH$M-ZȄP?{=(0Ϗ!اڔ,UYr2DИR Z14MArT0698,5,(%>㬄9+ UUǁTЗǔ2\tAs Ȣ qm},_#%j\yvUa:Pw'%sq 4ۍcJ UncJ> w[ڠZv%Di>`YmhAT Pf*Ig6 3 ' `4plt瀥w0:QG;07s[* q; z}P-RP`q +Y6;%7AU?Jܧ沀5@\}"$ 6x{.39v\yr3,# yD +)Ș0X%f!, j?o#O27`cTgg\}K k=rGzJycl<\(<8!v6 $+XQl2rEC )JM!7-qP1-ITP'2Cx 2µj\ԚߧZcM*\DŽ!?|'!qϓCqB*2@,0!!yd K7p4 P]mEX}+!TX 4Z8 p|?,`ļ\תVTX.H.؜0Ah1 + @a?*uOʀ "RTi"9^hr2uj (nŢ@7Pn$hu98o8Mr\p| G3ro#vIOI^ P&q)l ;f2$ +4)C3W-ƪ/Q)H80e4J. -WP>:X~N@)%N>2zT Bdyɗ\ r$[ZIqNE1|6㶗"c"#dA#KC%r6u##"HIC.*~@P\Ig"k\$< R;v!:]/ UrY)]"034 /%.jA-:P"&X:5`Gs Wy<_WiY>VA̠R|+@4Ty}\h]'n(q@^2^z$YxW< +?1OGfˀd+3r먧nTO8b,] <Pw\ޔuN! Y]ML F&߱JB*RqܲP@Eݓ*slIp #p<^LMqY@Cxa pxm $#2#P#Efć|S[r,yBu@@|]DA@^KJCf,򕐦^f.Zkh)ElC[-> mZrkZb䱚"σ4ƪR5. g!F~EsZM^_e_6rP^kLBZD޳|x. ܊ϣK5U /ǢS/iNA7r7F6Gޓsw_ n{9\a/-(00X2sYV*!<_VoO롳AHDz%zlK~"a}H$IWc@D%zWe}g~,Fw$xzмk_Oj{c #{Mg͓'`XN=$JJI|k:c+/cy?.,Hӕ,-L 39zY^Զi戽/a"a*43$U[XyWFX79 %@h,J=Y\mE*ƔBdA'Xe 6/w48,"x:ԸYz`3ܵ&Kl,!V&pEUK{P^g!{6S]C~`. ,6a(gCZ)ꂼ`ʉ#Goe2g{( +H独.3/+!M8 [GZ19AkB! b,zI7 +{SL'IJ)iS{Bph<ޏo\(@=J%1 {}<ZXH00(fރU {?Ox.ޟ{?@dv. h{ E 0@;m"<:uե؃=:+tnD#vĔS̐b3J'Y5,q5X(?,^{ +HU`JVX&|ʼn5iXN0|\SZ) o~Mh%GNžp?jjNCVJWKE UH\m lnxF" ! ,h+ kVee[E|+(TVWPZѝHwBϢBj8 ;@"bi5Q nJPq"*{2$qeL ]VD}. KlM*i*BrpY`#mKt8zm"J\|&>FLC1rE¥/\H ̯;$l,,0@NvCCOv,ʩz ++>˜6ᅍ0t?/t# +u=>“,8~3qϬ@Z#76使v. `DcGs|(ʢ +o6i[eB䲀%x`kЙ>x:ḷg,0YXZ,]Kqv _k\ml߱/Dk4!zF߭\;w nsY-VT'GțWʊ*0 Y7hw b`aO-;BwDpp%^ zq6lx(fQ G6 +9' ^}+{`Jb#`UWw<ӏC2'tNΏE,0!K%Oҗ$gE'.9{zތ·,=Bʒ= u. lfdFµObC`tnLя +c ++KU_\ذ TRJ)(qA(xsq%MV3:^1. |~SdN0XDGJo*x6pЈ>̐ekC<#5W֘Kw}gEOL+\:,Uu5bREt N\]zr\?m 嘾Vt)̌zLVw+*+S0 +<z ŒހaFe FA +{MabF YGBKPO([\x>WM ;NdN̰y0>CskRz[&. Ԛ迎f*zY c$օ=LSQu*W'E@^. ($Т\-GVm'wj`\/[l|AȮ<&+1]gE90H%7KdI}4VH_~W-zhGu}w 0ՅXRoJϞJFy}rY%{7!~&'3upZ񋆜q<9'y h2Dv +[q"HrijDMi\ +["(ϧdNZہnd{0Ӆ*==p A'e2.r4DGgs;GSbm 2_JOS[mѐ)\Alh\i}""دn+/Ɖ,$@Q:I Їh~MF_ ZzpY+?$b/)@K: wq3ZG u+y|6G"qSz'F4M,Jh ̨ys*@*GXĭp.k_6L)PK[%Dk1XD-9UH\Ya\ ,Jk0*m)_b~ &\Cdh$  Ibv!F7*cZ'~AЏ2"{,dS3Lx!w@Axz)'Pu0#|%ͿPYqډ"3%M&Sl"_“*<“UYE]ڴq~ q,ʢB-/46 +N[0hDjEI0Nʝ:= *wbt%x\sM 'V}/m@=  ҎuW@jgG̓ /;dֆa6\w@K}Evg\7u۰뮯6m g;H$CF$lmG*D1qҗ!it) iHgbW.QS}p4f'meeeo2&˸VF[Q_HeϜ#7iB]IX"w=9 ~]v0q08ashukZV]YUO1wj! \HwRJ*cT|_wv5zm)LAg8R;WAe2XaAJ:.Tj?( L}40R쀝u\ CSmBI3hRg>nXq͠y3p2:IeEYtQD9ڥ%Kt4p=\n\>KHߦ_kߊoEXS~&FFg_}y^&7h'ډo76Gv +c!=TߊzHCVx(IĊ42C|Sc4"('0.L¸0M%ox1\f)@lU“Iu';N%5/Œ L!sY`{ DYR%\ p6qr6mziSo|/m489ߊ fEAg`}U ](VA`A +SF;_yyԬILvlY _+V'լh%4:};`0; CRf(:<ӷ=?F0eTrYsMH1C,3(ó6ջ .X!n}h#;}ww"MBh\CIZ1͇GDTX|N>fYq&eL Xu>v1Y[r6APx -8+λ ])9}}!NP|:IO?ĜTϒԬ(gHy\f@霗xn;z̢'r>&n|Mxw/ O28a($y!u"K.e_`PȦzhClzWv:DL !D Im(툗Q5:C;"q)aJYbP҈ˮԆaCm숈f' lC1vC 0V}efHE8lpR +?[יH?$Mhz}I) ʑp1^0W5N[e1TVҍaU$GCƦW08.pLrYLySh-4wT.@NjY1!fuYm%16`?t+#~-t83WΘZ1|lEEH ghyKUx~QxU F槌SqYt,Y. pY࿼.%eטяz[)}IϦ/AѯXQݣ/KG}bB. d:.ߴ!&SsSgP_50$UQ H@aU'eAz. JLt%O@"J)n C%\8HF+. -Ί%{&-ҳ4~Cл.81z,wx&+(=\ḌƷ 9.m$qBpuJsByaTVAmP`.e^=-,94ӟ^S:6r_rdmWEz0-oHWW !e4T<󩷸L\Inn(& @!}[Pnq/C[4dRzݟ/dgfp!9)ҹ B{`itr㷹Dcv~e@D@1DhX^(7@qٟ5]P(OJ\a}P#CpYDhVt\ ̫Vp`.`FB@IHj8b +4:P^[/'¡"sY7)RYQȯ)RYN:.ե\&5+hڄk9YB+,7嬝r`t + +1A3#d~VٙAsL2eԒҔ@v`@AZ޼QcŤl̿Ѭa3Mc:!q).6K-Kj$M=IwtH# +oxb,9FKm~& QY1I.!A!}b33z:Z]4bʮgLk{ pA!ZHC_j~OpۼMdRiOȧ$_dPטu4G8s?:ƍm" :`hRzAL_.  FJCb^pfn +sxG@kY1Iq6uQ, rW%RH, q*ɛV4!D<.2J( aLw_ {䲀ր2&]IŸimbjU@Ξ*EE JQL[%D܂ω HC-W .wepN9yT+L +z x92lZo$#RD +|‡K]V)r#(q߫> %QYt|b_eFEt+b4QW$B ׅ>ĎئP]Q i19!&}XJ }eCf~Lc>/ZX!}T}ZE~!äATTEP bRA>XDYc=1/#3*7v4/KzEu,ШK;'DorĤSuiLׄSD/KD+Y>.تF +21\&/`.T tJ6hm=In_()%ѣJ:tܰ5`f;ӗbmz|)VQy,1}ӌ}B_8qm\zrg?("F'e2x'1I +3~]t.O-VUН#K"2 VI L^ gCwQ_ 40baճ C4*F \H)*,& }yI"1p%4N85*aumt2 + 74Md @ %|k6"B:T,4(40aH,9 (b9HW29e4o;ԑ&*'F ['= 9E?MC8^hoųx]oIJXK*k4U7df qKJ@V&S+Sئv- HG>H"6Dғa!,Z +|oum%D<dv$͢G#Gobìm$#xReDy#wVm̪V_*x ۜʩ&cN&Ur66ݯK 0۸݁w`ST%`捎XDZt.um/ +XT4pCj3AfM˚+۬Ih% m%q(CpܞBUPɨFhSQΩzyHirc r;rRC%|\bvFH5'⾷OQR?LxDpg*%>5bLS6hG=vU2O%RM.%(;\:m{= UǼ($\LE$-w4EW*A_s 'tTq4}˒K厀̴H I[K"n-r$ϋLx!a\[4{A`mwy =jNf !p•q=DZ!ڲA й>r`6Cۦ>lې=YCe盰+d$ށn:B^%<4MD7֭:c/'0(^x>J#kw_ Wf=ܫU:p*IH4|cD90}n1e:$JjυCR뮂GR]ԄB x:[8`w&WvjS6r(+SP4prN*f|)}LB[(x}qV?]0u!̤EEJz XǻG]*C\.Ҋ{qW"Qѧ ۍnY̩kbFarJ$@ 7v1odpb\1{) ϩ M 匭$|fEo'~} kMԜNɗZ@_zE#鯞LbSȤW#@ ޹丫 +E/`憓@fغa~p8"8;@L R[G@7@c +`^cHL@=3J**-khY;D{~͚&Nڔz18^H9gp ~vʕ[ ~!+?4R@ 󼰥iceF/}|;">%w`8@X?e͙ߚ]z%WrbCxR%wMU.:>`D +9o9!]INal{ArL^n$+zk, K~ 9m%Ya0z]a0  yA7KBjq 0~PfGqZ`{{׍uDA.&w7NMMjp[v@n/ס$e5o>euL8>t5%L ݸ\cɧEpy1|;#zM_>9i85+3Rz/fkA:V*"mY0w%LrzvT?K]n+ ܻ +8i/~A֤(sGsLQhfVcধ כb0Np妫o.X٦I1=x9R,4XU~[r}~*$~58}lI3% V+UZ+rѣ! ca1@&4s[B.Y%_]@H܁47-( ++וfLjfn0C4XrvCF[n!?(ȑI]!bBe>:)'| ~+C99To#L3pK30~2]*Vk 4Z0JS"u1a8&Ӷ"uX1jH-i P Dz˦-?齉כB$-߉4vԧ@D]ECGZǛX%v͂+k6R|#gy |+VkQ{Fp!#2isM&0L@ʛ};@{eŚ||pkp$xb.V#2[iK8WBjN6F^cWiQ4tc5b8cރ(t[aQ1!Ek_;15Ä`EPe" )|QgfyUFoi1+;~}pRޜqW&#4A]mw inK|?kz+8P F% +#766ВPj1]|}6+jz$L Ye'H]}2z;[~ɫ)'25E'u[6؛g7yj{G-럭ap}9dcUy7q^0YIT[h=d'qFf!i4 \mPȥ'UKB\~G꽞'FO%ϪP ,s*euʆk ?gy7bG j/) ,wFh UMŀHC1pplf0y~cWE66Id]ruŚm1 plԢxZ! @mTy?nn!Ko=u>GMħ }3ЦS7xM5<ЊL)tD6rÌ{Db-؏ +Bq [%Jhf^#DU]kp ґMsle,A., }37I/w#0c ,hxOݼi'ԻT8"=e*{H:A;")L)vڏQmQP씱xDLS8$jP5]m8U H\isŋ$\Si89\g$︰ØJ$g?4TV#/Pץ!1 ;V3ƺ>9fdQd$"n `ٴcot`UH߀tN}Q19k9ԞG hغ\B'Mc#%J9MyR!dGaATL>x#*2BlaKc'w|#C"9׿ɈP|w_Z,d0yL?7}*cKe` ޹0ݕk`ÞC xop!UV fF| yaC)3j|3Hz,hLLSc;5A[ ,_!ҰWp尿6\xf2`D8FG;3K\w21 lTBb* (Сbg:TMj (U/! [ˡ\eP@N)ELh^!%JrN28g8;ZG?HAE1p*y+0%v3O$O}[M zmQ̀O^4VqٿU B1( +D8|5K(=`'l1-aE6wi?g.g%N).Znя|[bnCN1ϔmKEizBn&wKR2O~gq9[| NWx3AF2.SY3abYg;GTx;ä}c-`|p-?tڡcE ~ Uڸ̐Hxw&킋aB^]lv)Ӻ_><eu%8 aL ®> pmHz]=fAukHlŞ@V4FR5Eqn1oC,ٮ @ZVxdgIt)hlfkhOztsh.H{~qh/.O +aGИ𰄓nuiWccvnl{9'!he~W椇VZjVK9vB>s"#ex@%Rg'B/]<8ފw<;[IR:9,11T2&=8Iv/; CxY1e{:mI}y4J(,'fZNtAK5xIYZDgtk˂R̢gT^`"Q Na)4#ēlA"P3Ifv(O2Ngqռ<eu43 +Z2>БJW?@]T&>+vڱ氵/E5ڋ[Ea~qsܝg/`r BjRܙR e2ÉvѩEc2k* +wVH4# n9 GK׫EE:zƶ^H4f&%b6&JĒ0QM&/%:uiV- >Dž6)Yծ'mr۬)2pgB{uvs6cωW~%% M6y&~j|&TGZ,qg}G%p) { +ZR'iCԮ gD6ąB x{<# 3 ۞N=D wȔN=m[|'Ƀn g1йKt۪wҲ +ut ?K !uSa6^Ry*MDOL5Ȱ\>o5ɔRw}TS!jEb>m]9"4FQ`s%{ȗm#K t&;OU̿>(x쉮WWY^Ԑ?wܖedM}Ȓ|i0,שLr`CYJ"jيOVmʂY:ˎ3c  }|l} : +֕ʿ6 3 ۦXJS`'IKF/ . v\+#9F:%Ӊ#lF g?wovI +Q9sp2Wf(C+.ji dY5yTNkQOZK$$emEKH:z"nh%.Gزr;Nmz(&I_!ަK"'Va TvR)K+t]1Fbh4'-k|Ǽ:nO^ܬIN[ FsK7R6e8sGH],Qz=Uo_iLF6rTžm ghD<:EX=՚Οv0;GG(u/W)$dEl&cw-tE;\4UH:(&@:PNWA#|K(3([O,cn|䙃9 SpX.2vc ¡ :5Ѧ,XY;aﯽe&'we /%B)C3 x{L|quby~/pðK +sg_h a ˙RkĺR$_ͤRt,u;".ݳ7Az, t`<ѬjO2뇈 # DtlTD [UP²FĤ@P[cjh$3pJ7`07JFZ9@ +M{q}¬Fovh,~ ~8o -c%E?"KEn(MY̟B&bKI(zr.tGL`u}rBW)~2/*7g) AR]_+'c Y2"3qN7: n;& n7MX=),Xȏ𞚒4GE? 0>^=20w\8CJDt#KԾ) m)=hةBL֚#9Z6ijVgnŹ4G~%gܱjCS~rHSSClTbS8Q;:bm ,2,@r1u$-udIS)h+4u<ʇW>&^%e. QKMXZAY?0P+s:`̬v_ 4cH_,u5jKv>;x'}\8A7aJ嚞x{*<,ԍa`#x6D ljEd~JPؽB9*o=/<⺳ɤ/6&)Zk#_ ex?Fzf k[;E% DH+ɊTP.ly[Б GXq)GG@9,k,Q4ritbYSmuL[y篆#Bo|۔;pCz)i5O<*hPJBܥqp9p!W:~C/]\ e`Zz' gvJ _os@ + +ut41%[|PoZ>O9o5wF0K#i`0&Z=L!BlاRLaayYkʴFu +)N(˓+UlTF`L~lVVf]|)*^ݑ *e6X1 y>Lk"t?n힕f#]s4-nh$vqLYȕ¨c1̓T}3t<ؐZP 3RjV3cA)Di+I+Q&_^}gk;cݡ<>h-, P5G#̖ZWx'ZiVC#b˖e4ePVFw"=\.5 p/ ?풔T6DeࣛhJOjk +AFqq˚[i+ 3P]^4Y]&a`Z0o8zӡӺet:+N~\.hV nvf8_(&}k&yhE3dt(pZh]Ve`Ӌ3S&ў!m`M\ƁFd^*]aӴKFsysV*ɋWn&T.UVKO2:P~!^4tpZF{ahaCqh异n>crZǕy2*N$ -uu#ʋnR%_~5C/ 16\ 6|83цaDärsGE5p3jܡQb6\ap=4?-N +˶2ԧm'G@W1D*(Yo_3|43y]>0W͘i$!`uIap?ZTmWcY0"q!u뱍g)F/ؗ lSӃX$t@{ mO}4|%5PJcG*र6$H$LO[& w`Bj~`L@,|欇916 ר*c!$/qxSxkv[.ǙA} &5sidԑ=JN*j?ZA0_D ٻC5YDs +Fhcü:EIF'zU,_8bF7}z; Tu<^"Ĵs qcO|b"+ޛO-'ΈID'1I.9% u.,V^xu$~G-K`gMrDFjQDz jse}')t'P-_g-b|mmMs/)Wи?@TJ8aǫX#6RNܬrNdr8t?n@> +qv )+;K_GQH'PѾJb0*'\o? +9E)ɓ` 6;;/ .q>Bx{avke>H8F{id|Cu.LšxS0q?ZD.3z,]o'uYUj['TfvpdBU})$tma73$sVF<++u~9`rf`ؖP1ox'K姸$[1 ΅OE3"ү4gd-[s~3&U u +_vVKZCdq>a$y%M!AgS@WP}-P~GCoSzK,\c3A?>m앓iCamE,2 `xde ^f)V>L|S-q/mt]@O6C_N=_%cV&t*fnҶOSz1= G ^wR'i>~%!CgmDˬ֨yAIǼ> AV};.df]) "(@,*F/ B9514s:C']ywT!̥%7iaV{l]Ǚ D9ykc}|BZ)-Iž8E͙nخ\",ffUw̲Cs_bbl=uȊ#¨LE gvHs ɑm!(ܛN. EZn `3e(XבD<>Ռ|`␏<#KpW;Īյd6czwl6`dWR#|NC&4*u ςFH~6SuIsl4kf8K4y5]%}'0ObjF/G&uT#TRb@QJ|5_ IRXT2Q4*$q\׃e#=_Ziz(mT#!vQ3z]ž` +^b v1OqaCxO8&*Y^]RR? RWd#!Dߡc e^&,! pcv 1 ZA**V&t9#MKC(2A:cz 5Ur(@V (jUfbaUvL s #'u +:Q8Q# t.Tj@0kS, 8(3aֱtv<:h$|_^ X6UR8D6Ğꅮ De@X=0m <=E 6V31_`,nb9#$<[VjT.Q.{^.g H!y}]p|)3{`rZ<]Pcʶ1*HC{i&GqBDzH}[#9HQDK8r$ꄛ,Xg.єYIbjSrb/!ȼ>ƅA 73%3Y +8^}YVJ>֡B3Yw<,li8TܡeQ|V6I}ރ++\2>~Of79D+٤<ʝD Nj(q(4ɰXo^?_h^`ٖzn}=lCXË,0 ߧJ+INmV( +HMs` ZwRF?-0D !ˏ8l\FɝiJ+=ne;I8JFjyE_=ҧ!U qV@ +nSew}h/EJLFS5}f iO /2{u +Qb c õ ;7FԌժ(uf\q_^aڱi*"d ¿c<5뼑\oE3\p5<'wnON_zɹFF.GWi3S>^lFiIޱ<+xF0oICe2U\-`+҆̔%0XQ톿Kca j|DujCλ_;_r5.^ Yr/Ctv>D %O6C{QyG͝I\0N~ ;Q?1uo9Kv< uMv$ 0s7RhRQ-bR AAa2į3)կ9(1=!ƠW'JI[ŁbCCIBc ]Qp&Xz %66G> =58ڢ33{uX>shKhB e{G#8eEpe=0i >9g~Z%ǦwrsϩCsYpr Bo%h;~$%1hYWlCnP-Gl`meU\i;[DT?9Rg%L@uo߀3:>,V!#vЙ?bԈS=d[L%+pv2ѻrb*) |h@Jӳeò4?mzNQ-: S*RtK긨ZAx/|Aiy7EZێ!Cl-$[T=ІԴ#3ަo'zO5k~rfɮ7⏚6W?kk*'99s6H9(d[|΢0!,KGWp\]LJ4hHe eGu6IM>)*tF, . ]tdZ.)xqY& 3IOx-}JD:Q #qc bF,)|KOnJHEcLI  @?◘ˈk|C5\Dra0_$]1\ \ɒim"z +>H_Y=js>;/j}N+Pyuza +/V,ZLװHtCJDAsj B.Ĵڻ <0@!/E׺DI3dq[.bdi wC2~tv,/+օ15()LgJȜ@ː(tDOQݣht$zyBaE;q٧!a+A<mr tiuAdQ,`T |'e8$9CHCn&9IB(9׈ §gDޝ4<<f׆*N !샋z&z gⅳf\|]%UA:5O߰N?Q4Gv0(:h-tĪ ݇1W>P1F !/3gm-tz|v_"D`0D7 *RE*BQQ9i&iǑ %)Fmtg5yPIʊd OHAg5w%,*+ [n-=2]¼ + " ,}̗ "]-M;@i#W:c*#Ki)qbB,p^ >B/Sp`:~TV1m61p0B?ӗs.;BBw@[0}_;>a#tJYyd +/Ѭ:kqgO,A .}F,{ ֻ"t:ߠđ?EbJR4F+\@iH\((X3f dsu #!I)s@(~j*DmQǸ,z/K'MZ^Bȱe %GR97rg~\84F T#t(o3(fơ; !c9 t_@AYP4',e0$I>~&%v) + /{A}0ˆQeҗfKDXjI<5զoCkӗsY\%edDܯREana2:/dJSZT!F^ht\. p6 +6)6A~w֦ @ԓ#PZ||bZj1F_aF'D_)l 6>1tj93JtW;YVg/ O _KLhU+}~F+ +q[E؈PBF $)]#Pν$ vc'Yu}w<[h, +6pS2dbzv]u]7 +#@D\B m)kJtmH;bC| 0]UGp锵ib=̎tF=ʻ" * N}s;:F'Ҁ@!܊.qv. N(\hFs<^{{@@f|^4|NR/TЄcsc8"7\A2깣YMIaEq?F^SܹT; >ݼ 8⦆ ƨk_<8SB(o&"{AG;ma ~ckeăAD^H #S~ft6{ PPaЏk71Hv}A{}n7" ÍϠ h6߫$-~ Z{CpݯRX^_jiRZ1?42]i8.iZ?lerxH8EƵ3@8W~>4}1H~,5W+<-mWd~qe4$&٤XsY<E n8B@vT]Y@"(-_P84! +s{'qWz UXp/q@D#yTӆZ'.`븻RmԢMܠbK+)RJwAh:ﲬӓXmD;+X),zAͭN7J/:'A7#Ҷ8:g?`|(.*̅dE(}f b[B2$ DsuNt!iφ15PU'b⬘эhX_oXw@b"%`{\bgrez9;a)nWXɘzK5B't{+?jlM$0UE;`/p06z +5.+j@7؏W1Ct\?" D 2CWas  <dx H1q/+ް0Ey;D$^+ԉޯz0z S֡Wx39b‰{pS:F)u @5GS,晌F7ꗳ21/Mi?hD?.dm S[:@Ӿrnwa ߞuBs(;oNcuvt= gNwm)?m7BsI喷҉\؝>2ż &Xn=VG| nx%Ļ<[Ɖ.cf^䬲nMH1=7NS& Z/j΂ItW᜛l} _+ 2A%#v鷱ԥtj$^VC4<\V}|}E#Ўx:ڜ +ڨ,|Kw1͖b}NLk#pV@'(I!UWR+Ǫqr7ڔ2e*qɮLS:)w̴2)K}yʨL[eid1!ʴ~Q20顜jü˫gX Po8!U}UݗV7 āb ꫕`BhBrnwMJ \ת"iq"k!-8gQ)lbsaR96 4İOe'i:d M3 pwc@'!h +34j\ygA v>. +2_\`#aVfuh^F;+Bֹh˟x2r!PIANT$YlK U A'0A_tAܔ@c#E}4I[%dJvꬌ~E? EF_)/Vxdm/t 撲1 T}\Cy2kc(k*EDee<,)etu*@:.K4BChuWQG1J~q4> +<ݍJ^kIe3\!JO WҮf>(8 C9hNէ gh?A ԄRf1a#( \#i\thblG +t^t#pAG/Mؚr #$-֧D;t" '`$'ǫ׉ | mii:慞JHe`~UW70(G42yR8ZH1զh8ϸJ( +1 Z 0>ƑS +0"^(0r| +~]k2XM[ڬ:DuKI5SS Ҵ9JҰNYT "~6 BmnXm "n ?Hp2d.<k.)ޒAԕZZns\=# 2t8@ps%S+ζߛTPkoȞyM _GEߛI737y .}9IotIJRͼڛi깐AAqna;H>NE[8:sbo%e͑=7'^Ȕ9_h>"ޜ~ r }t.poX/?O֦ÁZ9E.RhZeTjA[v`9Flno)⵼IޮL!pkDkc]!q(A"O0f@9x3>pw⒕Aw.M_W8hGI&^"7z\(K p_ç7Ƈj:RNU$*%.p64{5_q]rp$]DW3iElFiº6wڪ.Q 2 -!oJ<D8 +L?\bKi9VU[\jo=[ך};SR ُa^A#p ǩ ubM?~36^r!fw.IܵMnpcaF2NS@H1l+` e.yםчi,Js8=Ra0޲nжAR&f.͔&` 1 !3%~NƸ3òH[ X.Bt@|_UU})~_!Զ_Uƾ/%g?̀Ctg;I| OcWj:AUtg9WrlUqE5 +,+>anQπ S5vi2mV-8l^7^hym#b/46% +dDo/$"&"dcI;G@>b8k7$=ih67QRk[ 6LeYCLPd!mVA^0W +aQM(hV3]S 6Eq{zmKſt8(>DzgW@m l_Lޱ^+. z`hL8KZoAP>I][xȺWxRD(o\Zv+]2A-0ٓ[_9D=)nqnK&bj8|PKΘ{)PY_ZTLQuLGrgL>e 8 5 W읒 LC}Y`㢷%*DDlX!:>LHHWv9gS7$3tA5Pkqp틂W0)fтoJG,]IfPI s͐M=x# `aM_V;ņ4ld. UǃO0$Ǎ?8OPڹh;K.\^*IfxPhMh i ^Yփlvt~p.\f^ptGOݷqys.,(<(ܗ)kQV3߇j 5RFlקb0PIvOǎNatUc8sgT5%}JN;&;줚t~'CX7p"58hx_~-e!>IR:HQ251˜|VV^m3bK*NC/([L:t,K~A)t- +endstream endobj 17 0 obj <>stream +mZ] 'Z5bȜF)9O\CK"%5Tdb t`aA" 6J~_> >f_}g7ښ`M C 9%A +"W[ȹO+t:x!:M:8qǒ@& Rz60ŁS QbĜч8>1xsyZ0A^F&Sl}93 5]ĦeY(ҠOd{t$qQhɭ~xJqVSkr&ǔ 55\ _mfi[t-L;{E1ov`rC)kB7R].VN/-f#A pcol~8ز~8.`sYGŔRO3p=ñ!Eđ]5LelrC3}en\a'l&MAn,Fdg\ +[yP6^~auafGhɿ x}!łECZKӡ?F+-7ឹC];8P4zCB >CR:@ߡv};KmZF=^v`TgSW]?SP!BN!ZĴi,L/??L . 8>9 HVg"1Ȏ[ ImFҀ=g)M=,ǶD6= a-Z:|bH6 +_+`' piK3NƇ:MLZw^n.!QݣB^^¸$3C{U@xQpH_'<SZoq=g23`J?MT,xr3%P<mFD-* Q_mms* v7CCb7PBJZ͍͝kkHk[<Xq vnh=<꺶8b+kah~ +oDa+3bOwV`߿"I.W>m\%{9epUЮ?"k:ex $5GN>APk Ա i|:xFP)TK+)'sNwwQЈ(=iBlLZqgxK9JYv'%T)n~ LVU] p=G +ϖ4OGѤ+[7Vx艷_Dm ?*b:fS )$x-~&.* }5^^EÁJk?9D.ߣƁOP΂;wS8Ń<6]N_NǍ;N~"R[z_jɯۚM-JU984c/80^/9\/K{ܿ]菟Zy+%p!qWZg&8#Rw!|uG_Nn;( Q(lhDR"+pN:o?FAݷz|MnoUE[D2ZUUtD +P"VŪʓwS;"YSZ48T_3)Cmѹ򦄨 +JR"Iym&V&E@2N=|N̻ISN4aFDOhv`v7Q/ xFNQA- <{JTL]}=TqZIe+"ŋX,j!#zM$.h[8y.b"I' IP!Ng8.~։zԼs@@0zQ)_4U[I419q)]1WyO99l9+rb8'/,?fئ@{U7KObNĥ4/¤#r#t+4e~BQF\3fc=YਕKOL]\Mk~ugsX~Oj= +MV+$8]TXr9?d7M[f4ޚ`<W*c^3qA 4Ylȣ r8Ɓ.P.8 D44 ô% %ģ"$B61q܆K FD.SD 1:6 +Mؐǃ9 . y8 w + k rւL"$ +L"ҁP" .B.i\p $BF  " Q8BD+2&^>@::L8`1u=DP0[@Y(- 8ъMAHlJc"` i!g: f^aa@,r4h`i\30>@ +^\L0XP0.b# Ba*! 0d90Lb nà+*w X0 / șhxv`Fx!-(,>"A!f3q!D,ؓFq/-@a +@!b"3)ͦ# { " +N *Z, `1fӰ@.4l8! $]q@!れʉVNF4l: `Lts4 :,!Be!_%xC"BPB9 +Py`ATptX,@B-8 D"0&@r8EBp 0T8@h6&Hd I(C}H @,&|Nt$hq0ž8C h$Yɴ!*T:"@F!cCHȤXN ܑhq(ixM i15 ` yL ">,T4d + aа":S]<Ð O$HA2 4LaDL8ˆZD%!Bv4JED&H.8 @2̃`fB +YiqPw8@ :$(gaϽlt؂oACL0/2L  2f&2xxa  $"X Gd$$V04lb"@3i +-'AL0AX"'tp$3Ӏ,0xADX*)@f 4,d/p!l B2L+11 ف"p`Ba2s6|H$@&(b@/)/2&"B'fH GA`aG,t<&&I   +!P9 0p +"T& `*tf 4xB=$ G 0@!1* 2a‰x^Z,.ʅ4)0 8H fӱQb8!& K},H@ 2/ Ĉ'dHdDe8͌P< 6FHA!,l$ .$*2c5 BDBxXNhvV9T(fQR!I: әL |Xp*&d`J +`ȑCL +@ +^ +XBCɆj)00R,O'BZCB#$BG3 H1΂,ϲq"~fkVM>_/_Y$-JiV9IǦnl^ 6[ۖ#Oghkk||wfzR}ri$ovƼʊ؊+#rZOpHYyI0s2 ecX;WDfNܫK_swR{quҒ3Wg+LkZ-e6{x/_{UmڳNy7qO}˗o뗥c/celfCa v}˚ ƶ*Z/KhV~x+ZyVJڋjYu}V*^5f9]~WsNR_etu]l`l׵Ni;[g겧j6lέԖҮ%j6s:sOR)^W.$>b_u~Vܽycj*c)=og-ji?*gwqf:_qf!bO-=7^{Ħh avȜ}i_.鯛;Z{{#^KϺ;ig!hkiW˸ʹxeڛl/-j&UwZN{_Wk6s7֫Kۭjץ^i˧~)}ϚM 2>2d%EFf#a$d+}k6\48f '4 *TP"(X$Ȑ`Ą")tPL|V@3"+HOaP0 +`` y<)R #BARlp`%"xЖaa"b +@B&.%0v-.`&0XR^E!G(04J&Jb4Dt`|Bp|} Ht!CC( G܂̂A!@9 ( FʵH8 GED±dpb0Ǎ6& +ݤ*T'(Ht*.3XD()q4p!1$(p8p0>l$fsfHLPx@J: ?@xշ[zmծX*=g6'6bVNofխ޺XxkhynۇX=IϺg}]9Y梮֕v~&5&k%]:N!JnꙓiˊZ*7sڲ٪t_}խ}9IXh϶vk-fݱy߲nڻhˋؕټyXY||Ǘm{竡ZۻٴH|ʅ85Z.tٌ_9I~iiW-ss%߽6of9nKjvhҡvԷ}jiϥ],e*k?5>c'.'8fvZٍ媍cnNҺ~7bno[f߻9]*;%gIzXlnVxj?Ym>6o7Hz^k٩_.wk6(}ɭ̪.)y^*~\ϹYy~nη߸/q՞>{ciK}ɟvɧMWNx؝g渻wm~Vfvۭyx移ZkgӹK֘;Iؖ#&r鱺sk6(}k[{_.d׽_ʎ\w;Izj^umhV;I~W]kӮk[mĊ~8In)"fm=OR;>goc~i~޼kY.]*/z]gգK|Zmyo٧vصe}%O^,粒[ݲU&Kl{<_gc{Jٮcyfדf*5^KZܬ^zmݮʓ׽ϋ"島m1gOږŷ~kٓԦ^^ 8g]䟟o lRTN`RAFJyIQRTN`RfNȨh61)VNbLJYk 닳u*Jgeͦy¼^[N\Qm52e ҫbN,?f3z/3v'c&k6So?oV'[q>V&k6-Z:##Ьѕ{k6-VҢfq\(X٠tb%nWc+\U\iZo\w*N-RK.+3>,tq}TYDIoltm٠H+ݹ/rj6(ǧ|έ֦V,mjսox^:ٹ!{y~3c}n{V9IiًȋZ׏ƿͦo}~ZYyٴᶮ{~g32"'.3>ՙ+f77*.vfo&;+.ccqy:Z%Vcc~e[)H%e~Y8bf~ή.+#kBIַ~̵~]v܋{9*jؗ{{Z{}#׿;iږifxϫ~o+;OJڙoz9֊ev/?ZNJ~n)={yU_sf?roVrj|޸_ؾg矲~JVx۹uY+iz!_]hoV*WgygYizmiϥ?wistѨU"&!Shff$ c0 +DBLGzr@>48 "Hb8( a(( P31`Q #u +v3]&`"n7{IGzU7_P{Dm.:О~ڐELLw*ي I:o6PIHp5+ EYz-j/V5f,:~V 6Ldճ7~amіnɄHL>qj$C޷W Xs[ld Cd(K @8 +7&h75ݦ?cBҊAJ2(Ykk*zXMj"VGO_nƭC]jS} +ѐ$!߰'HLetRȃ܊ذHYI'yi>Cr,ܙIߍW`UZ& #fL]]8т= o}Dzq<=d4+q@4ʮYYD^S}Mk5Uw`0eԨ UW~2ѳ4dwxl'AO,e mKX\d:zRuZ<Ό$0lX }JgIx9{A%2B[.P@UNXp}ۏ΀8!A ,,JNW$ÁiJYF#&pXA =Mp;ǣ{Fm"$xg3^|T6%ۚ1QBIZj1?HNm$Bd]v8WDz@sa@ EzKP8TR߰q XxG>eLwU$c_;,]:Ң٫7Xjjtwz%7.|E+u +  +@j)Wޙzx۰Ma]`lR"!H勥A5}:%f'J3D,C ±:?Nh<#Xț.%](@ I" Y D\pdyGulZHi[xy Dg3}5-CBfOݲ"c?b.wʮE}9P*a;֗|^Lt$׃A1.$Ѿ*%=ہF4DNSEW>i6sܖ=~[m!5/zK6 ' v梃wPZ}ݴ( +%+A/)t?h cH .;=XjZ1",f!1QGgNEQr/m$ck h?׀gZCR-@Hc3DIf(q(bC9enBʁk+M7:D=gّ]>lQ2wd&8 /j.J/_m*ahK0IQ ׵{}+# 4ص!NJs( zI#34ިX;vh;曌jwלc Zк&^R/{^c)wz8br@5bԡuƉKL\(U MCubO \HƗᓆh"[ W] +LqZFw.*FTԧ@ ~W ]CUҋOg,“4Fָw|&F51^By(:+j?903%;ÄSq@mOطs-3da3[aKO]m붖_cHΆH3t+gԥx,)[S,cRt:7!e3C,@E{HĆĝ?i+}ʝܹ*O61NCb5d©}לz6[mf3cteZ uJdТ;L9ܼ9إރЄH&x \b ɋSJ0 '|5,nQx?_IvHv* ʣ8 m5 +Z(w/% ٦0=KAL*. i1~gZhk +W44OHXL,wz;n>v, r&d? &x%P@?)Q+ uIOJ-Po1Y[:[S;Q"!/:*7Q)b$;~$ /6YsP1T8$Kmo% 7 N 6NLܹA~V"/I,dj(+m:K%$|I}I\bqDKQʉ؄e ^J:Vsuق<eM\>RX,{"l݅Ke$fOIVي1\-VL8Q4lR{&v$|\naٚj뎫pSD\c +)65j?$AXG,aib5(/Q)u @϶]͍~Y*tgw+SVvW%#a-&)b!\D aE\2ѿ=nh.I4 ed !bmug9Yjܖ5QLI1 %+:vEYKϪvh~B{(oСIҥ* uhbЏ bi%h4" + mDm$^d"@߱DEwN ya ;b|>4[^L[I9 NifUa}B"fQ +<d Uv pH˭P7˝emn1glmЉڼwZmWщ^Y%Œef({E& ǮϨmpϮSS  5p7 `& +`nфLT|"p }|B\-h8p>QU5syqsɟEתdM^p,u<)  ׼%hMa,縏>DU%i%GŅ AR [섫~oP NeAg$]é*MJ8hh~zJzT +ŜB0!Y*iIgt9+i(6LfbN w5>HQ_+3MNuϐ۸N#4u uUUa, pn@1U6rʏeAYc0lf +%W@2^U&ګ[uD)Am9"uI!~IcyZ=ɞQ8:3]s4AwoOtܐ0iIAי$pW9NS0,mѹ)cZH(nL؄ΪOHr9yLOL8#||IueP|2n:S0e֍F[od24gTa:g g[^#|ˢ@q0DbeǞ~s, !S +T= W7#: Қ?mk뢩oK6P'{pڳT%O<+֞^|Zaxv 6YB É,hߺ4dȠlr` .LqJȡv͵O񫨣:t+[CyO*ۼ}͉b(3qͳ͚qbFʹM+1 N%8Wx8a +zDVh\Z]I.Ӗc+4-V`.4 +ӭ<4:ՊxU7%Xl+WxA۽->+IφSXҍqwdz ҡĚh4AB (džB +|~9 &W̚[R#DoךVM!jQXm%[[.Bw "/\-8Tjbp6Iȷ5X3í<G Ր&.:u5"XWnH({۾Hmo}'ڷdް&eN,T[B4B e41"H(% pKLR6p4kI6 +8:B_gF^iK"$?xQZ7Ĝ8 *[oAطpwH#cUCYB;汶weFƷr1Gb iunS7qჴ9ћFrWAKa*fxXr$9Hec#0 ,T¯1a$4F%뉚ٸi9.VfJ}|m ر􊢡$/`[H(/_Y*ΠfS|`\ #p)\Db5+1wvu^\VK3j$ ǷlղA{dG_QMJ,ی#PgQ6ͪ7 +t@. iI +%ʖ]hUh7U$<}@v` sim|ne(YhXXq:'QJ9YGR%IiCf ZLÕ/hJgc(vIYVm G2xKnq-!"Sw|@Y`)8&J/zx$yьbh{ϖC0検 "SXn,НX}qc=DR*Z ԝu5/&H얞HQn.rMG=3 F rA!fW䑪$pmpU/\JFCQ +XskHP1|7:sSK^Ϣ>RAo){e}zq:Y:Y$BW(k_iabMe.<( 8Q +ҍ w36XF}Aa=iP|jg 9as> ]hC|O_Z{r`GjLmn=?ľj%h'ɆzY2&bL! zB51oe{dxd*h䇾= 6o~:x vcp4ވ5YύxO ܶ\z4w kBv:mV{Sßh~ +~mM*UX@i>5/L sF]4bKkj􄘗:)bRLڠdl T>J^I??!-[7}Cp+ʭ$Pn@w.aex@=gPFh9R蘷v5Ox۾)Cbln8$M#s#O|/ƶhYֺg||h+0+$ v0HL|p"yS JGUJ5b! *趼KRB$֣UkXYh3(l5M BM $rۯ"Ǩ +)Hj}:K:`&C3I`  ":yļLXcQ̼yךV^~d+VD{[8GV"i)&=kTMKrEsK"%VqY[(} $VpZ*vS`\9}1L- Z @wC|iS7WF4)"gcH.!" .jd#Tj~6ON BD9R*V(m/  H趧"G k'#SQ:˖/v5@/"HXDvc5zNOŦmy%Sd, X cx[Nԝ'A\xbEdD"ǩXxb*E<÷Qj_';GFDDvo$wO 1$xT63VFVFiwlE ʁD FQ9#olÐa,`DREFԯ_Pdj1 DM? +R f +hυ-c#,ڦ36:@İ1ݵK&l:fi0}1S T HO:(zz6+1bOj8=W09bL`D*VÊɃw|\W,4XuhMiD!p6*#=!FNp&T(l +F"kOcaO"b /NQyB0GИ*r{ѰV?yёпa o])Y-5|w/BQT Uoruc!+DiYM= :Sia_ Am]o{յϣ4߃ !G#Bxe'YmPoGt5#a~BZf2݆;CtỮs~85<5( Ȧ=ul"Y[-f R W?+ZGl(,,W@±o S񥀁 .UWӊP⏡\t}y|0?lCh5lf_ls_Ќ]Zv5܇Woq H&?/xBY ؞7N;cq +(%F6?\,o sF\q ? +YQglEܚ:n3w !8St29B<qO_z{t?kYT=O_p0RkǒOB5;*X1Ge)tMVNDRD7eJi=KdeWȫtia R/.ҕI;6Ny  w%Q**7N3bCFZN .u]&geeu+1 J{0a{4hYjǰ|/w Jysh 5θ PP){wX~jyդ"s_?|:Q0mu%XWeVAHhےҕV8ɣ묓EgbPVeUq LQOUѐ5)Lfn wҴnzf y. +i!Sϣx{)]ݓ.؈DHh ܼռ +F>< \ Afnh4~ܤa* #̬ۦX)92. x&0Oq.S71HSDnUFN%霗W~1TٕnV,ՑO9]SӦKjZ4 YjBrIOb @bs=#tN?- =*fRmc2ϓзw<`f#G*{%`C\iT&(1ׯ^D<4ߛ6T'6љ'>H](/\Q.Tg;y˛2jS5wg{GTfl)Ykl@ƨ}*'LI]\Hz + N?c(5"`?GS 'APT}/xt %!BkK'/msssWj*c1PZYñͯ G^l׮ˢ ᒿ~1p- +@Zk`ڭObNJZ BѪb iZ7=9Pw gaƛ6 x˩l +Ji ?22 |1NAEOӞ61!X\iKIȹl9"89@hHKq+4/|UwM"#Wr^TٔۋpBHÙ_Uh-y,LERK+.+iWL+ _N׌RJ 92T<Ԇ.5.7Rӳװ[h׮ke>}ֺ'T{~UsyNXA6Iccи yS5m:FGN}rJW49H.Z6Ѷ.&]ZxȊ^ {'Ak@N`Zw1w kBgɭ.:[8bAm.Iv!*4Joiq8Lb~#Te۟b50 ֠ns t[Ԫg-ؙ"^=&Us+C6M]=&4fs%J@RmYtrw/]7KBoW{5ʈO1"55by|[+222Qw:V WڔNdأ9]oP2{P5o3¼ C| wzivGp,q>Fy'Wn&)5P/TuSV`5zh{&&pK(T`̆| + 'km̤g\zFjg=M5/8ؙ5B5zoDee&>4P5}`ǭKMxKvpk&xD*doyG/#J"+CۀĝU[!g#a9xE sY;n;<R~y'Mʻ2%sH}(-˧KgED_̿zDl6vFi341RH*O, q..Ͱ&>iir +C oʁ!hJXއ}x~H⏖f+MkKzK9K.Qʞ5;_Z4@*#lJ +~y':|1:\(Vv8sJУcgy93CLwVȲM*J a 35xz6RK^S&x/ hP@ +tt8_MYS L'h@JPQ\T;|\~^ȸX (xqO&BÍJi>kXu ϒ{l$1eg$6yɴ +m|6 >|Z 6y @uyf0>ӰcҐ"[PwCQefG6 ͳ?^u|9-S47tw6 ^FM\|M™i~i %q8;Ħ^ Jfsղ>͡_7BGb/nVMroRO]is=_8|vck@ b"7A: +v`=C]}oM;mOspb0&(^L^(fz$>z`ۛhm~4﹘i횊ZFVߎbL_NLW@yC;ȉ `NZ~PО2co(}kM(X?tl;S}nQ>.I_J*<~ 8m+o jXX=bA eQRvJ V'䱭nv{^mnm_a%;(u :Jia +za&=%qH|k׀Zλxo+7M(SQV5΁`lVt螁23AF[775#fxb^:Zhm㜧!bWaów4Ao e,jP$iNSjgu+Zd- rҿ:OCNpx\u76݌o J:d :;Oi`ZMBtIc[_֗[=B(1 +w S4Ig|_VH?g6D4+Mw)lTA8$]2Ciq_GePH~FGb|70 PSZ9`pJ`-L;1hUJჁT&@R%< xPfuAϑ(gԁiLIB'c̮ 9ӊU'6b\O3=hqknߎQoޠtO>]pB'ɩf_?0Q\2*<ڵ4bXViqpObWLVnhžԇNw6t*xQ!? I{Oku`wT/\krhtޫQ㉷y˦v5ٛ*`GsEטWs+hJG)_RsY!}Y]Sڹ2qK\Wp.ȄbاREGD|v3Yz*"Y pjJP+W7 +6~Ed0G0)?a Zr3Jkh>HYُc͝eB\A:R׷H8OÙXt9ocƣ-LM_z\+0M4F\ZIPBF0dr} +#'cX, +AKe,OΦ32z7d ܂9ۼnjz; }/JXS-XTŧrec@emDP${m4.]/ ݅ ot`oKsm \~īt1oLжZIbRG-]Gʈ +endstream endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000406529 00000 n +0000000000 00000 f +0000406580 00000 n +0000632993 00000 n +0000635984 00000 n +0000406991 00000 n +0000633292 00000 n +0000633179 00000 n +0000410075 00000 n +0000410149 00000 n +0000410367 00000 n +0000411989 00000 n +0000477578 00000 n +0000543167 00000 n +0000608756 00000 n +0000633063 00000 n +0000633094 00000 n +0000633326 00000 n +0000636007 00000 n +trailer +<<0C94F46EB9B9C944A22F599C4B5BEC25>]>> +startxref +636219 +%%EOF diff --git a/01_3D-Druck/Puck_Review.svg b/01_3D-Druck/Puck_Review.svg new file mode 100644 index 0000000..f7f8cee --- /dev/null +++ b/01_3D-Druck/Puck_Review.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Support.ai b/01_3D-Druck/Puck_Support.ai new file mode 100644 index 0000000..304b8dc --- /dev/null +++ b/01_3D-Druck/Puck_Support.ai @@ -0,0 +1,5219 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Support + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 BMMqbXYq7FXYq7FXYq7FXYq7FXYq/wD/2Q== + + 0 + + + + + + + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +Hܗ͎Fz +4^,(؞C{{3J=S׽tWJ)&-?m>r=G{~ܟ߾aYom߿x#~Go5^Ct^#!'Hi3r:R/sE?e}z<Ƶ3y2`NgV)߆ep7~]^e^lOf$· +{鷼m(vǃۃcSK,tYcC +%gm8bogTG>{V~S$SEGpƨiOR'Ӫ;Hk!Q>Մ .WGX=I8q^"@x~Lga|@Bql'ru q?SbK*Iujg |g +)չ _p$5,.h$ܹ?d{9A9r[WՙV2 +Mv(&g*ر'Q@[pw( X'L'w"?:kIؒP <4 'E,W:+ME!$QNe,`I,g urrv*_0Yd +p!<ԣAkMigp 3C8@gUSU |Ur^zK}fǯem%PxX%0] +P8[JE;Fj8LҀJx%%ܴ -A`Mab4m+Lh,XT0AZr}ޕΆqwsJ} HX:%R@[ϞIE5L(z:^%`$'*bB`E/U]WrUHU!ɁUF/I$" +00UHM؎ 446j]%A +#:(g֤I'iF\w N(PͥxREA}! +*L{"z"7AtU<*QL j~GW9&:@?p}D(fC ! =9XU4sUT>.,~]Sz_-^b~(L\Ho2ͬ|1~]#jR5\JFu`?3:TOܻ.A 6^:ć,®Jӵ˸.3.DELJiXzt+; J3z6mQB&u!T5QudesNrYUVe][]&p #>}_S'Î.>LBLoo?|[M~QȤqmr; ԎƋOl~j5\4 J`W%R_|Z5^V])Eq+Mۿ F]Y 뀩pѤvUdDs>T3A7)k-VjuQZٕ9pK,X= lڀ֜T4gIʞ9VL!1$ATlSOڼ-.XGոhL4I1M>i ˺yeXn$1U^1];o/6Mfj}\O%+s%Hdu?񾮝A(C]=kSOue_rȫ߿^kh$1`$ċ2q|_s5,΂SZu)1fyZ,xk7@*LhZZUg;w2]5$1 y/gv=QR%ix>x<+@]_khpnWh=sZE"R-^$1/ywr#8SDuޗb>`}2a\ .GkFQ֯MڕoUfYa0I~--x>I ͑:xc' ܗPl6g"n#|$E_ARO1|:~|0v<cnE0 +XЏy9ݗa0.aqEx| k!Pg)z=|FM14RrGKĘi2n]|]hM"}Eӕ62:Q9VlrBHXwoڪzgbĥhꖳ)ߒ\A'7h쫌5٘ P'ҵh}s(*mb_hu.z+ru-9l')Z)-f8$j$0UKQ ihi{$Xp;*)S7DC^;<2C(9lLt]1N{Qt +sR)%qU婢LTX+gd&_o=^*j +AY !PGH焰:VICOn;hG:YN@: `WXt)w~w3 p:v(#IWj5ۙLvag3v_؉;NOvЗƐKBlN@Y;ȱ[ w qMA6KAV)eu.>Ic5#bfVp b +I5j"Sub_9*NNSt@: +YRe4_j@VE Fg17qX!GfxMpdۍLO9>G 1 +'2(ZZ6$ȱJknWuθrl'7SŲ :YY)ei@enD'JW;`v+ +*o 1^# +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:21 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -37.1111111111068 -199.777777777776 1.6875 0 8301.14814814815 8390.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -37.1111111111068 -199.777777777776 1.6875 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3olGͿaCB RʔR86 +Mw&(؝c+ȣb@EcϲvVXw^'/guV#7 csmP̾uP_+tԐmh Rx9%KWe48d~Di. gE fXAQCH$!H\Uy @$"a&^(Iᢲ:Q4jg +sH(~> Ec0X`La^" +FC)_!F;j8@; DP, k,Fa$)FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳ge2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHn38>* E)Lq +T +b`( +EE^Т.rbX0âa12 F1,g0 FcQ k\D6P4 F`h44 f b0c@d81 m5\* F0c @ "a*;+#P` SS"ay`040L݀HTv o@$X0 gD"aÂA`x2 21C11 `h04 F@$ ECx#ظ5A Oh0 d 0F1A bQ0 bP,"[-E`( +T()Q43n7$C6T3Ҳٜl@l xLD<,$,6\18!ut\5a S-̬Vk(jzaYUQZS -蔄tH̠6Ț2Lc8704`,iG *lf z Dc0FcY,>ɹA$ld   ++3ΌHXP2 Dx_EF"Urc1Q b󴹹"qDGu , $ D@Lx@ADÅ 8*< pƒ 8`8@x@ pxD*Pp@p6LPX`C.8 &P`8Al

0TpA 6aǁA +^OW;Ow;B,:tDzU^{p''ب-'6R.L!i#ғw;+']HX"Sm'䯽F<4VeeNuIQr(h{5Qx {*%Wz\1KbqubDF3ۙ4{N]^9=qo>$9 |toʲ{P<$Wb}O8Qew7V9ȳRM:y&PP]+vjfFvr3nzJY5:6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$Wa p`*(dp&,Dxhb[]<'VD\KqT6RX!bt$I1Ē)V'y{/S]{Htrdc(|4S :٤[/O7$J/w!Ui#TDc=ʏrweْ;g|IKJ"iڊ{棰L̟N~e.ɂuXmDS|t:25Xf+:9Ee/H~6,}jP~>^%9$j[$X9:?#Buخ>U.}\&@\Bi'n}$G+f]V&I]'u$3 Ȍx URv8z  8 Kvv[A[MIkuLǝ^Y o$uPZƱ-ۼηӻJo}ۍsC'Օ!z)49AhRtd_~T1ԉ8GӧRWq${ vO:xxl72>tK갤>4 %Ju{M^ZG >F$$֓NXY,Krgrʧ^ޔlrNcR*ѡ'ULzŻfO(S㴾pnrɴbS[ڍo'HCx*ўH4CL\3|>[-J<2^SHiR+fsؓZWW-nv&hCv9˗Gj;/sh- Ae})y H(cOY'HByplw3 UeRM>ŢohO-VL3 esX3KwVGL13j;14{){"N5gޟ!͑ @@ +0^Gd(0HpxpB 5B 8 +DP +ppa +p „ +p B +p9\%^Oz|OSiK%X I-fYtؑ9S/`'YÍObď9~X?&%yBKR +oBf9B $ܹU6)N9iB!m¡G*'U9V-2)QV3gt/uBfZ]imJul+Dn^_'֚ CUS+]&qƲXj-Y>W{uL\û7aclIdqVC I%`wI,o,R>KOڃt+3F9SD41مn62;1|l#bctpggfrrno~2ubUur(G|i#vב\<7WUr}:)Jrbv#)ٰ&Gi2We񽈕h~KTs`O*3桺$2o>ʺҡhyYMP-WvZUvMRVRUZk=]N˲[z6uդf]M}FVDIggkͺvk%]pZciYvWTDY ϔ{`Uۻv"+Z^tWv,ˮϾͲPrr%: +9=J7z]U Qlyb33Ѻ=524ʙV> 9ftw98Ԝs’2<קz90$e9,vV#eJ$uc#~(c>_>X֮9I/;6X '?yt#Īz@OYdXڲ5D׻myǞ +Wa>/۴+~w ZyUHeqw4M'FU4R)V}V{VDWVZ83D)4E2*!ZŤ)>,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ Iy4eӧ 8uWWلGPٮJU7SN^~$G4V~V%ZUx*Y!ɴ9uxgx(SsNMX0O;6sbfo:TG^ۏZR\=%? +ITWsB;jgJB!˽u We>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛJJ}2tS} +^)zvsf>F"4 +SJG}ZR_QT*n}kOsؓcd"2~:pLi KʻĻ,]+IIr:t̒[eIɜsUq&݋ȼa LZG6w/+Uw4$sGvRv\\'fܢ}Jؒtb9ۚuQ2_4'_h%cђRu TGxiP%[hbuaɧs,c֛f}Pi8fR]Ѥ-'T5zUA DLNc )P#088 AN~B^@AFzNd )['dj\nBmS>=J06$"pL `py"-ЗX';h+0+Q? "MKtn:.\BO#@ћ{^.Ȧ$ HiQhzе:5W ܼ3"W'gKre$ i<˪omy*"WgM&z U/֪DA?OZ_M^8.?UeN*z`5=%nyKvD.k¹1q6:` RD[eDeƳ[w2mHoL_P4M9!I%=􃂯ZIKZ= Of&Q}҆41[Q59M' +=&JQz,W1Kw:K\6 =}I-Ŗ^rښYA[V 2Y{\q*?o K8JCpp@C1 PT}yj$)rԃޤn%-43ê;~ 9c?jQx~.ٵ 2(!R@OdJ­R9~m!FpN1,WCN@h:'ge.ۥ$ 5'ݪ+p8ix)|.gpL9Oߥ0B kPJ%?`\MZKs&sB$6D0n >W +șf)DG9f}[j-IM1έʴ5(c.teEә|c8d$H<)Ni7AXڐW vU{k];`ɀnh*ЕaWZZE]E3u"4$Ѳ rUFJ륀/x+9TNbs}'6S~Qr!Fzk,f?+ +Aaj힐uWgA2Z8{I(ڵƝ?l@4ԐMS\\:];FH}fV ؑO o!XGRP"\AGWBZS*e0{ډXb dH "򌫅Gs\.bRH +B# ROJ^%iG0dAcU{'E3V?eѭlZMݧw8Z\ mdYZTH}t5TcĨGiA"q)D+}'i޶\l~R6ik+N? g =MwOQ,H-vDV {=O) :{0uSŒޙ1 kiXɵ + KfOs=TcsN/Y\i9z}F ̞v&QNRjR3T\6$<$B*BXXaDNb(r"9tA^gsr2wE1=opmU@` %:|b|pb>|0է} 25aOqoE}hw@ĘUAdUEp.Vm<)JJ&lV7#Htu2]>n];t +PE,2X%~3Ϲ n/̰!-aV&{:p0èba!FMMRGT' +`wj  sc20JOZp. +~O7@LFc8gigސ#Sj7P1zȍogȐ4oCh#%ON*:s( Z"03z$HnYq6vV_ex]opZo|<׵ftZ [.tiaD4$%+lQq1TF1Y8_A.v8c+ +9Ds wyDzE5PuUgK'vJ32]a60kكwt[".f% tZ +IN` uC.j"J3/ыrŪx3a]-N 60PN W__*x1;]]q7]_N(LšhPLE8A:OFCl:W(gaRfXp]%8W6®v`>6o Wo؈`s\o=*"؟780 JFUqnH*Ų8=ekTƶASԻppֆFZP ]jʕje`fQ^MGAWر(B$0dF~A)<).<  m#sh7!zڣLr(^LXdT(lca[GΠIm߭JmT߇aɳ +_"x(*VG5OmZ/ ē:VYS t]Ռ( 2*{%&\f%rvk)!6L[sB{8M0nLo4.X/σq%hl59_%w]@Z8xSeCxY!r.U!t-\(P)A'~"ʘf;x3: 3+V0͊xgOJh-O52ܷ1t,@uȱL(SXTUX{׆l0j)?0hE&4o HhtX +Z{YRhc drH6O.dD}Zqps{3(ƛ' ,\Ӓ94#_tCjD5o7z 5U;)b84 wu/[ov]z_b HV5Bh}%Ttf<83J*o)QH'׸fAgd̬S-hA= +i s4"m2L׃ X"RmwD#鶀N46rbR}|P Ճ|1z-"z 0,+%ICBU1Z&sg1XP鷫[ 8›GxWY^@GWRO\+sْ~Kv8D81JeVsw{؏@M' 77,o=o+B_dZ7I9$ċժb В +-; '_=knd!g<;ؒ%TXb KefZ5 ZŝuP2JV"0+ +]uslo֋ŌfU)&!R_B{y>a%wM,<"wH3eQ)OT}5"@;G2S${h+=$,ej/HF-2=nf!02 !E9gy*<쬩SKl2suZu\8k¦/n<ԏ[4L삉lR+fG@$^_/VrƣQC~}}%_HBt Sԅݱps6P CrfLJA~)aLRJDS +t @5&Bx 8f+bog- h, Ώ3FQ%,o!4Z 9!U ZϋB7Lʠ- In5\ hn.d䅃!˳eg;] 4SKJjh8[(F̲Cԏh4NSr>1댍#듦Qx`rUCɗ|b*VYOܦs辫:NO9ǢOJ~Į~`K|:Â)GD$u WyV |VEW~]x6F64$V~J}:(}|Y@đfC/{ !ƀ}zG3NFLbk:!/$&<^:RoHxMNFJrLld?ل8>s(f2FfD0폺{çU)cbDF[ Gsf 9U9O}Cox$6}`mJ~usTt`uHLZ9<[5X։gUt/ejYuˎ/(f}:dgAYQa, T\j!җ|RxUy.ų6vcÈЅ[ştGz0'TBB;9q Z +u޴/q>i^VYw*!^ ]$HQkU9CgMEliCw LRՔBh 4E*%eja JV{mgUБ5pK\ߵӝO<i4W{1(7Y쐀vL6 [[^k D2'p) oß& `]JK ru{hkO6Ybծ9| +uJ_jk/~}aV2>&Z8]ihz7պH^M,h⥸I$}gB]AH٠i7,rC\C-R8 g\#U\xIzhx]\ 4E+ +5\rjUM{_{f֭F=ŵclG +W0xYJ#Պ$\Lw y^_Lq吘WSy80"Ot``0’'7*sIrMev[R'13aN$~u=mT} حf6fܲCeêNBVKȹGElj#"|856 +ȎfU)/ +5}MFCIb]""QB.9ř}jH`ivj%F 'o4,~a/|P%tHK4sc3_mVܠmQX=O/7ΔHD)۟-x68 "0=LK3GX`1PmN'#y3$jᦂ;\uK_Rg>$Ҙk*ЭДڅZmWݎ4L1YiZW鞓#Ghs\+J@9grPh/mef&d-;uZn]ΡJNTnBmj?1I/8S#m'_.ʝ} ]0ىkSr)Ca!hpncT+KaލҚ|iJ%BcD'2 ++2 YҏLrZ#Z,5`J+(:fRKP|[[.%D3Q,%!$e[ m B8G=zA%e ]ÖYYOQYڮ+s{h 4BZ KδeZJ3تl)<ے_nn)T5>o1QX෈(ʌׅ1\Q6W\g VJ%vhC]oeT}YeD+Y=e?Bu>m ++_lV܊M+ \o 9yV{@E @7CM I8fIs};vk𣛊C + ʆ߽57J0kuoZ+_ɸo?N!S(Ot5:Z{%tOK@8SD]*>E-,#cM]NoAV'92`F=C9C, $RMSe3q8E „fyZca;8B_^ @rZRV ޕTF.x}c=2,Pv*@+@[j^tih= 2|38`R$W!W*~ Qt1D1LH|\o-41k='KzɫҹLܔf ֱkmAӗxÚS*7T9kix4 +ZhzMg_b +"耑1u*Ռb% %-(M B89RhwOcIa_W_ZIRI΋Bt XRzs$kT؛L$O?J(j.6';g }e q<![ ]**-X@ngc5](F(4(ף[\0}[d3ʀC=|4)<\iePV}mf1\veG'ƫVV95F{GЯgB)^uSdoX%}e@q1@zTlciRxC=FH wEȕ"Sg49\xAF+r<9:Cu3W.΅jq!A!ValA8lӐ -*xE5B,6TA:ю|9{c@"J2s\,Hy7%"A,XaP +_d_>$T#jĪ5v<^,a{$T?AЁ5@[ X=j2~h:Jf:,$Y0L-!j =WՅуmBH`Z`! jgC`i\ 0V-K\pO:D)!=Ѹ&5D\m.3̈˕[3['gVH3ɖZ?[tnXDjI0Jp#9 Dh+iN;{ZyђlY/Z\ܯnj!f)u^9³ȩV!nF)fL .}4cwLrMn2:8̆]1p7ډHi +:˛ȟ9}VKҲUaVVyWHDˈ5WrJk dʡ_XBbkcAf;%V ,RbQz(vje,jTG|?e KKA1b.̼?4.Ba5j4ҰYа"osb  +]UЈ%1LB'Ex+8Z)Pξ%܍I`('RbKa$ּl?bw߰ Jfi +u+Uc*$J+:k(piIq#I+8E 6]07OCr&:H"n;nu 4hxM JZb 8/h <ؑfr9a^7[GVue#|73bRIf-#K1 +![_ˑGznBtRҞ9(Xyӓ4BcTxT٭C>WC٧K_ ֺ}ʜ&56ywdӪGӛ eQFI`bWF\eV?Qx.0F4M7>V5/'zf%@D6Ã\"\&-Ir"2 Yr>yZ+y>JYU(m +]KvAjk(QjB?>hʞXG˪m*! JygGLzbr`c>Cƅ\%Gl;DFhhH?(y+H4{ʢAtQ!<K\`wp)X^J `JW|%&coa+H Ϩob<,( +!G: m3 ك vW#{U*yIΚ6R[ ҈!eh?Fqʐ߱z=[}̨ؐ$?pfsjlnoON 6ʸ\ +**}#9WlR_D9r gWR$f&, };UDoN2+Wa*gu5g Gg-bӜ?ۣ̏Ϟ ;&-ýk3J-1*;޽biL5Bl)fJYT~Y9l~! +}ʪFbXJo@B L:̫yIOw^ʠ;S7xmJNcCN cξabc[AL qQ$<\")L;ԭ%>U7}c)7Zn3mhnPj/ƩMq ;y<魷몏Wxb'(o`)-soR$5w kW34G^:Ëq, +u'٨VΔKY8r5` +ˁ3a;^r6Ya^24[&(!f#@D!bK-Q _{s5_[E!t25[V6M!ڣe{hWQ!ͥ~Pik4<1SZD2Í1]tl&9C1ʐLK>kT r|ݨW9٪j4_ry+W4ϣpf^L8Ɍ%2#WCHS1F UEVصzx ʩNAZI4/Jp<ƯH13{F'}cjN;5ŏ\*NϿsC(:ΡHj9:ŧLCSCr"N@̎`R1-LጸX< 73SM@t=^&Ko #|dZW7 +P"th`*n\k +ȶM>bdԏLa&.&XE#i1ydrM7|Q;FD(Ю,j/:OOߵaP+ ߁NLYM'+c3ȋGGGKϒy6l:q+i~;{HB$_u>[ݭ)c9 ,$G"؈(Ŕ,@'+ \}s\Ѥw 9Qx2ȿ[4qA =d#B.fouCr45c Gӎi=]05 _ ]ā)HT0w Os#CiE|!N쀬q lt&3#]*ڕ|Y/:L]+8TuPOP!s߁(rf%Oľ`iv).SQ$YɴЏjKpSjDJA^\QzbZ{yDICW[ QaWR^o0$ݠ23x]I?  I!@x]Krȍ$4&E^݇,c(bV mxsƯMzD4w3_}@Յי(^{lpSֽ')rqiOuf~~M(.d_izrƩN&Ƭ"2 U +Q(ozvװEV j@S:Nf$x.nzj.syĕBQsd6D(+Vڶ=РGeaR/aUu +VRҏ;›7V|B<E#+pD@v8"hu**CK|gT +a{f,gBLg}鸋+td4ZX1Cuǔ~G"smtGLJ2-Um *m +ӖŬ-0]o\ =QC-->6 A(7D)w0js8>pl68 +9F%!c : F<3i`svnMz?Z %A KY + @!H%g;ޥ4J}dETXU:F_sz!ǟY`,JlucB~m,F6.6eO)ڊ%g4MI9|6jLV?OԬg88u.k&oŎ'yXѰMف%A#G(*Gl*ggb%QvdCs|J Ş/~ԕjT9vƗFחQH%KD?fUdzHs3>6 +$"1@?A>h 7x`}wͺkޚ{U5k2)A.aӃqx=H=6{J{C\ A0kv%ai`] q>yss80W0jh&zdȭə[%!tjpZ)Nz-gfIJ g*$WD0vMLL nG^N\A؇gQ.װG4' ׄ/BbC@;$#2*SRG&BI Rg彴BAH~}Z߮IeDEOI.Hz s[Z![;jK `tS%gq耢i2ִ6Yʙ lWh,Cf58N@Vv~bpdl(^- `#t^]ǹX)+RЁF !YYhW2} 2.zף*?S9Ϸ=Xڔ{\hJo]j;lҳ@d*4fY4 fOvq*:8oz}ѩ+vݓe^R+P-3-5*-Y7׳Bt3Ij-SydJ\:,{\8sOqOoY\q /7j1wl+&̺?1نWaм'\PVS;AZwȚ'0X]9N2%9~Gzr ۄkVh_O_LJF+IcByMh9~o8UrSutWG:9r"5 LV=G n_&` +KX.sXU9ʜ <\I::Ybz+!/پb"Pw~y_5|#9Hِ$QpqPj;S⤊aIզ`;Q-X.|Vgg&y[v2LoZ@Tkp`@n{?O1?+ +;8]e`wUq,4d2S$8Kua' q^MI&7Mg؁YPR}품iT$ʹ;>Q~_2]V]dSz 8x2¸#Wq\DR 7PRk(a'3F@sw8"yA}]2Ƞ*8a2mTYǘ1q'z=D[Kj{t9B20 q9?{xDt=C$[Zt7XnO뿽.n+AO@tf̲̦P|UcD/ZU^W`;9k<t7c*,~nY R~53FNez~Q 8D7}2ln࢏֨ȹ.i{ݮI5rK=g36"i@Iy 7YUD̺ p!0F \]`^2CX`>cF`j|q6lqBMjWVVl57Z Eì #4P_U"B#Mk.;<X(c VxϜr i8ـױk6 ՗?[8!AA2 /,#U-,$Dq`[k 崯s?: **ZS@r/tnY?E&K| A xV_ǯV>ڢ5 sܪ$O-E\/v=1rۂqfommJB@hx1o~qȈgQUpliXEb@'wn=Q_R3"@˨!>ZZvkۼ {E/#P4Mɞ*8}[)t +lHίgN{Hi*xdȱQp.Xc^ ɤ]7Y0]+ 1?)VX7xBV^ 㬢{uCXft9>s!WoULBOG3rس!U0&#vvgqT3X(T4y bײ}w6 .Ri+! O{@NK-^F7toys)DU0ҭuG^M۩o op78s~^K.h7zIbeYmO-nJj׫֗n"/{b&͉OB+ ~ٳjt+#n.rlUL59d@gX1<௰h:?n|dX5xϓrq1 [T0e1hb@s" -@#`r ?Ba]^ƝQDpTMxLFqbzh b@&j:ԩ{  <D[VEX,m"#z(z[эs"CUV״8'E,L]`OQrRKD3/%`SVʗHa/yj 4iw)ozF{ĔXH t`<}^BW ;eiBB=`wܫk]X26{s=|J/s1dDbK?YȜ  +R"vR0dbh\ vܗBFjThcEwb3#&rJmϿ 7ŢY%GC]Pa9RP#]:YD"C9~:@0 +ަ9}5{`\# %&ۢ +.|v>ݥ y^Il//%=b}bBƺmA6Qa&4ˋBZ +ܽͧudPs fE.#' HZD*d@)I5$y|Iֈ81s)yǶUVX'( aBQTϿV-eΎ#$.Wd{ʽ;cwQsش&dmaQww?eGI~},>GTTr 㵑V}ܜUn"w@k8en#F-TTWg/pEV +XN?f' wp =jnF Ia.%-RJYps31M#乍m'jvy"ir6'Krjijxz&ȐcDJ]eO2e{%n^]\[C(z;j[7ŤxSm-SzgnVH%eTDЏ  ȗ 3LBֽq+'rޓ.9|#ǹ#sppS 5r(.`!X 5y(Hr4nc^Y)w Bp5YP0M{*qLxl)1HN^{XsA4Li[@P Bt-)ހL:rޫtAW&_:Mvh*jXP"`&_5uO7T*ܔrꩄu|v6aW`cd -cFJ*xĂQ8X]9Fg ˰ ($JutJ{ı"R(+R!#_ُ pAYű[A-nq[=u9Hw聳Ct:LTiH[u +׉ZWN&Wr-aߣ:I^QLKH޷ZV|:}VQ%i-wgv ,R\p[D VZ} {X)2lֺ*L>~dv.n.PiP ܊kQ 4j?I CReG0:`nllIͽQVGDs\uø-'€?j47'p/NV,.4r=eyZEҭ%H'S@rY8h`d0ׁ[m 2"DG@ ep@m=ʋ^,.&f',v1(sA:)RxnI2jï +O5P +s5Ȗo wr "oR)tp] +(77m/5;0FN 7wCp< w9-mo{ _ s*+ϫu3U E zZ? dS]![-9{[5ar㳪ںNvȿd؟Os5]2#?! u|\\ Å ?iѐỌb.)\"X6=VJbE>!vB])@#z_#En=Xma]C3q5Phw Kޭ4~)?DTeqW~?԰zXpIBM؝IR2I^d_u[5}C7Y\&L)&՚i'^r'BmˉTXOU.bpPD"'JS[&,L6/*k,%+ +$K|n7P=H> B!32,)BIB@)>*He*$$bI!MXEP(G"#@"pBHU-| NCydB!8D!^ 1̆ +,)- +ED M$Pa3Q +*tjj0iÔthuvZ ZYh4 +,;ز%ؚ|؎CZפwRQ +2caþ! 1!)lFw0aJj۹JeCULƽE0E*1#PV'&Qx$jLJZl",RadU2X"vy0A(wXRVTXf*qRg@7zф'= q´dġw,r:dÅ + +P\ +WP(NSH߃).3wxVsB4SVv&>ںs ܉{;-;0WrwI,<1;i񮍽<fݣʴVhi) I}J)dN4D͂/vjfA[gPpa1y.U{-}ʹ WbRRb<8YhO*Ef)* +rB=Qk_3&LrM&kF T}*JHPTj(kMFy5\!+{R1RY]=,UycA'DƢjA /^/$- l&S|iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WՊ1SkzoK=>ὫӹtON'B+uڗ a.q)ϮqG A#Xkq:pZgzfx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR\^:FeX 4U($SQF'AIeUtKt0/4Zn3*ԶAD +%IPyt +"Pw}|)x<+UA( ,)Yo.^|iclURmJ,J/c5׈Z-hF$\ձ) ]ݱw]tUZCgE%QV!ey-HsR"I"AG1$Ԅ,Λ#eQ(CDC1wWLm?F+ÑR~%y6~S}cFΦc8Ss/|6/2|Ϋ1W"Tɘ",ƶ#Q +U#/TzZ՚К.1~%f1u؛ ~8K2I'd뜰+#+R1q r>k[bg͆1EIJ\DZ;l!Qguڂ3 +~XZDD,2$iFFș8cDTkH[k%1ҨBtĥ?f:k^!&hVt>np#&21Ė83F$yFm]%$Ub,bjQGѩ=4І$쪙kR!1]mWL|T5D.F#$"#>ȬU<3^RRgθ8v6Ųh:Dud !'deqCcNlm6s,Ρb ta ]) '"ƽVTJ>j !yȹ7y71y%!ڄ|b»j9P]"Z ObD/}璿ea^h iylX)Q432 .]pH3AX3J̅2-R-8xEJs WЌ^W98;3TGd^$}fTRa)Q N,H^ IPHR(!9 s yH4+8Y?SuGN }>DfR2"37$9hKV'5P2N̸$,aWs4&6^-S%Vd1QOLW5HQq1&VW̎ +V73 Tfd*۪j& fw1R'k4>M_;:b-dL,z։LF6llU;d#C +H),Dv=f ɮy |̾E*"JS|J6F [4nZryi '&B*Y1B(&e^= +(v!1ѤsP:-Dj$*:3_#ZLE[/.x9*tܲu&&MS ۵ +cFPP]"|fzK1 AaG9T\+`TS=jP!E>-:=FL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pX^r/NkdjCiտOP%"覓tT؇tS"UBQ~ $0D> 0D"4B2p2@tH͇U"iUόmpu9PD +jDL‚dm`` `c@FxEd A(d@Qi$.uQFE ]y`QDfBECEݡd0Ux*B#j[F{7* \u,aF5aFB2'ыj o4רB N4";gIAH$LtTÐC"H9iRJ@ ;ä"Kog[$K'1<< ,Pi4\B +EDeB2 ( 0@¿zL S'4J Ox +L#:<\ D:MH);HR+)u AP FxC+ p @& BMM0Ԅ, +E-4Y*Ee# *QHDpjͽ7Dj9+/  +\ +K%A@O&YF^kS ="\kSS*FWy(z(_w%'/(bȗ6& aePRc`=q52BV/ROh:I20p~59|A^4U#(`FLDBĂIk" 8/ F!(PApqNYy zfL4S%T4KMU,ʦTh[h(VI7kHx-5S4їEpJi8:ںj>JKpc:i~ҍs\d2W chL>o'gn2GrCs+_߷?kWSz_?ýOGBNb&0SA$ "% q\ykGi8 Y93ٖ%g\0PTaiVUܰNGh"JY0lÉ*mO - =J(@H"~PkPui[/|-vo۝ˆg!B*znCvSM>d MBP&@}W5w{A'IN [N$R>ܝd#y] +YӬ6Em{ I+mwij؊\ X#]Mہxb uB|k7l'7 anFZ^y* OTC1kZ`Yh{];E ,t`>uJNiA;Tݨ?S5}4S[ƚNeP^cIB3 Yv |aBUw < b]{Re-dçWR4՗o=v$U ƅ3Aw07jSr9vEn ϣl d9x¨inSd:w?@ݴE89cyPKWbD$+q`W(; ]m A !t|YW,}1`CBkۈ;ZazF49@ )Q_7l*GtK*.ey#]'^jh#If 7rNf;p)nT\<4^e1_99N$ P j'l'3\=K@owҙqŹZ;gGsY{>Z%P9n~xenk"V>yҋ#hePnл 䃻7HłsE$קdGbkⴙ !+' ԏ)-ŀR@Ug&0֎&ildGW}mKѱ0d˗2瀊AyP_ʇIY+ +]șDEjoI߫m.aFGVg +#|lU +նOh>1Y /d̀K&R7 '/K p %R]8D&pCk D]ܧ,z=X2 +- B"T!]^zXe3ЁELYt4n/{7:^IbgD-+䠟TBvX)@oB_G$X4F5@(LC^,f}IBfJ*ڃ&C_bP +uuFpVHBV;id@N雨uWdr)[x`+)@W4!ޫbuE}Ha=F+d\CU!]H Xj'^l8=__?Uܦv6ozkW~i&n+4|T5ī` CbnraN@6\xQ{GmwQZ_ˈRcJ>VF:У|P*,WyATld;1gQuR^Z;/+6^V+:e儀qC'RӌDXF +,E*݁e`q4$FBX`[JaIH}Mvuffwz =dԊ-T*g5d [ 9PAE* M0/t +v\sCtY9΄p?>zsO_WJ9/WuSыG03Rp^"VpFR'zHp"'ʝ$P؋: ޼! 2*Fg)NH]&UMH#mU CHl9ڣ ЛܘQ,f`7 BXR4t>HZm|[ pa* ѧpQ*~~MΘ4$_ۖ0xC9bņ 5ԷI8qy.㋶8&fї0۟p˺MgyagITfJ}s +ޑ\Jĸ `wpFQaEP%tBY YFJJ-URZ\` MtF`PRGf@A6 VM{{@;,rp|7"~8ht,j&CP +3TQ@m" OQƀ:_9V<ޙ/A/86+_!!`轍I::uUcv1ݩ03l<P mN$##5<@ +\T"ZF?^4nWL1QƮf[̽-\uYpyU@_ /(XEP\xR0tPQZ\WQBa;$]JG75ٮĜ?slL0 ޳װͼUC"Cg0?ڼkh<݋YlwكdMd\7\f*oKk +CC$*,mt'oN(b eY OJu~ܞoNLxj9h*B4-P8\-4cIt.C0-z1]B"2Sbk3&#6E 2 2`-T#?lcԾx]`Mgb\1LR:e!ڻ@^+{H0 iF2/wu?OvPOzjjfEfFTRݻni̒!<ɋG.,&/H}z- W?Wdљْco2|bOsR0t$)E@ IҖGOGi+{FZNOUs}Дg Ej'׺_T-nߓ<:S/};WR1,+EJ8[`pT6} dwXCcA`[ 6hht?U'pr,rq$x$e˼Jߦum#j1RuCI\^hͤ.UuEtIGΡ̳Β‹#.]KdރD1hĄU(Z+> P3f!p+R ]K+ź2MwmElW˒;dA"V5g7tn(xʧ|"*2jL3|. ; J?Xok! +;an9NM?f~rD 7"B'Hˌ?~g~aG8 3yTA3 (8DuɰNLPB)87ly :d{J35#F6ĵ3k6d kw'6<&꺺RO,hͪ[fշJf7ן[[RpaRiTO 3gKFL Ma#@Kc +FĢ2]JiHgE=:dX8eU*C#۬)vBMP4GCRqפжThHoLa4SwW4m^:'^eh^_`~J($ ud{V; >;b$f Ӥ{J/򘧠vw%GNbkۦ)wr^`Kd \ŭ Ѷ\a47⁲awUK'x3)0X'0:DswRB ՟:h6ƣꕀ07> +S.FuKT*(y/³ovab &\bGZ6 ꛇ3 2͍Xdp| N?kx>V0`l6/FZ˻i|ˆƃB{&/D)!|!ߕXh[ɰgg@2xSMks輷"y ""b_x٥l2zl#rr+s՟OWe[3bD^x`YO2{9ʛgE߰ +vA2PO%jzyƎL q1cIAR ~iglބЍce .bI6|7#,j}eX!N2@)W$u@CDQ8C#YW`{?45[wэLP7:@p"nB 9Y =++q~[.-?"B6 j_OE.޳bNKGu(! ؞nI#C0q˵ 볓NTHL*ǫ˴7Z!XӦ(2?\N@w]WG0=$0x*UAexQ |hg +YpFye3j3?D ; 5л=ߵ!eTWňg,`>d'c3JT :ڕJo +=ܠ~TO}sVj܄p$y =:Q\ )j71/}N3SMD{daPge, kaGabG`..Y!-뛈B) |]jY7+O@5ܩ܆@)`__49 КkDyuZcEq,EM}ps/rE>CIoH\Q!A^(ف*vJ JzJ k+O?UL+2,/\r]X?N1./оJbϔ!TҀePHoDT~CDȮ!tCQPR}.^Bqu#QQ,b9L}@bBˬB?Њu +eJIB$1$R)" r%1h D% )!#JJ(D +!H|rhr0AI:ٖ D&(2MHjO64:"z'IX|h|'BfP'Q*zů6E+9Qt'09~Ґ>BiI`AR)v.E|r2SܒTo +4hkO@ŷz;Q[b,zlSgHȓ#Ll$dcJ٠m%jcHb3ې IvCGב97(6yPoER]cEroQ$1 *I~HGnC¡n! #$1 8Lšql#) }d9ʑM-G.=rsd#94#IC;9בutdC:LGAV1AHA)uˍUG#'l͇;LU#yui0hC##W0xXcF;xd#gKy(#Ẽ)/y"'QFZ=&p_HF{EVqZ,2#cW:Д 3>"-|DEP# )"y_>a?:Q1l""|L-&[Jd2=IDwd kDVE_HD$ ZCvYؒ@T-@@:- ѥ qAdCu!/A!C~ !kBۆ֐j"" H!MȖdHX +aB20.dB[4D,D3ܮN +Z +W9$M(dwwdcGTFH&@?BXBdJDR!!DtZ" M$c\-x27AEBXȲ 2`2:" 3?61iEƉ"SYX箳kktWAKi5fEv XDFX4)aT‚L$b)NчrSqjy"E"| oE9@VK|o {-3)ŊD;S bHSD2n4QB ȝS$d/؂F#Eb,@E2(8rQD+dOD[L މȎb .^N$iq~~@~E?8YX%'FL" YGRTvj7"9ݿcducۗ8"E'} fwTdl>[>ԘDؒo|pK|8  %{L$v$ءDBMk%Or,XF|zz<"aNh#PQns hr8DjFw.$6塮)yq<xDd +H(G01jw+fe6;|a!Yw`HC;w;NٲK|u"}gx4>_G"R?mp":a"{>""fna~D1JLt"\H.eLT\.>L5Yu"kuR;E2UD!#*"MN/:"Hxg=[41jCx QZ9/zHuEԧJy68q#юE1r㐥̃;i824\#)6RDAQ%G )HCoGxaG>o7Doчp2$:$/ot,td0LG\؍{$ɟn$}nXr#2&4n\$NmHJsDDm,)!6^MI1JbDҳ1 lؾ1XrU_*1ʖ$6&w +ji]R-X{]#U?ah%&UY469$! D[&Ẍ́gA5vIRÍHiMj$QiгMDs +kH݄LLo"fi\(9Ԝ# Gc,s&xh '$O$ u!/dИUЈH0qϐ{FmNfNd5Q1i/&67CFlszf\N+3p }I{ :ɃW OʠT LծPFA\W}d Dn'Jbr$y{:D!B@1XN1Fh#/7}iND8ȰÅtu1;QFSa0n'39I c(H0Ƶ% 6΄1_*ư9O;牴 F{jX ,0Io {`nd 8c៬_$E\P'F|sJ{^tP+> KCzDhBx6P +/d_".JG.(é +zj<2H9WRH _o `fS" ,Ki,.n0%p@\d[D69[)ٰx$kA%l *zbU"c-Jj1 M%j!Z=EܨuH=UBgQ骢Y`]͂V٦U0 ^E² +O +|,J fc+E]Eb[ EX+B\f_YW6+Kf2GWT`rE[VlDh.2,*)c"_0WraL嫐aQUpAƢ+WR*l!TY*"TNŚRa*IQX +j΢,|BB)zS)tPnE@ܢ\lGD֓ewi(64uE"QD"1\S#CVeJpPQ-B|@1PO' @|"8]OƳ h;NS9|b9Y"E p4&ʹ $ vH5AYN[S7W4*w&4fDXE2Ll.&+&f3KX0u䗀!YyN]bzľ%!u-YcȖh,,6=nz%,,Ҭ*qYLb2hk@Z> G}͡eLRzgZP +jᵖARbٯ%-hKp +)1my>[XH-Ը%[D`zt? .D֚EupˤByCݥe 6g䮢tJ$;låu҅*AR?KOxJi Tl~X(ǥQuՃq ƄrL2P9o"̎D.D颚"0Hu1:Hh. ]6-=L x# ;b>GS^E,T=ވKj6̪9 4bz| ]FЗ1B}QFD/Z G,pA|_BNXa+>fyT`hg<0M0yM#|%CJ`lD +U"'"4,6!TЫ0 +$(8j =3D1W-ש3U(b,fH.FϖV(DD3"e\1 59eqpCA$Őa@FBfHdƎa(V## +dؠ vd#qMf@4d$ 9Q~%*,#CΜ-?P?v_F%n?Nff3N~UQtU7ׇ8#*g>@:igɇgICVL{`ۃB MփED#{dL8fo?y!HS< `PA)0j!JMC <4mjsz8j̶RvjT %0T]MAjOCdFY]!tB9Cduvw=N1,;]rGC vG,,WB#+4wϨ[~ +0n344 +:/>S`UT~Fx*0QW5BYBG8BgS87Ŕv[vǥ"*mN!ja)L%,yK!(R +ג{OEDGDh#*Q>, +UBaf$i(lTgbٻ'X{J c^z6PeD\o@) J~y?4RyBlJZN`Ni^V}w̝P%Pm4g̝k!3Lp'{/Vt ۻƕz r͒F /pNs G-wMZA'm80`&902Ɓ3h>qP;1~>]8`Tu%p%hA *m#X sq{@uKmq@6R>2tč6"*_De'r߰A/䱀k6lc +4c"ߖSdwAIF!  h!MJ^Z%>VpWs VNI 0o,~k#Γj=d;;e9Eܧ4ynQHq{ KUbpkFe !]Zh1hXRe#粅0^f`kFzyZR0%}5r|j/v{>.h7bC #w.3x0m'FC[m%~Kl[I'*Z ~)ToG"']"d,R؊,H*>B^%AvqV]A5\,줔d2"w?!*p|(jD|{\&L$RAWy"PXs^!n +xXRKA/o nR0=&;: +r)(&`^;̢1v2 +:[(@tJJh h"ɓp>uCO MUy'HVnMoT\ Ѳj"q#X 4ePL,,_>>_YP @lawߙ"i!5ҧP6Bh$0S@+c!!A3%#(g+¯ +s@h3 +Lӽ et(uDc,?ڥqȌ@q:.} DضJIlJ.Wχ`=!4˺Ls#Gz%8. +e'ԋw,`SHSL2~2шHXz7D0H&( 0sY"[@LFq%RP ; ? XH&VnEC{0I8Dљ?s#,%z7V?F@IO#;%" Yh!縆&mpddUl!rX㳫SGـF&6Vyg;H?mSfo @N\, ,2i( `o!H Ew3nL0nYLH93B悲-Vmwv9T3mw.aC9R̈h8$uHnphs֛1 +k*ge-րB&+7(s%%ĭXEU0Bjsa@q cw (Q-@eqR.,Eك)͢zf`0WPoc:B`!iM<]jeHIEZLbT]tA +fR:MMVh& +ۑv6nBٓ }+6g P>efO!i*/ H< `53XAv-րZ9%BBE#L5,ְd@[6 $_:g2Nz=>5 *G@Mb;+Qxd`Q̭ @JDf)d??'~ V7u| ,#OUTPqJSfMIovHe6:* +_@3_yux?xBp}G}G[qIJvbBΦL@VmXQC^cq]/s4s_1+x)uHhR S]5!ݙv`lÀFjd9Wܯa V(=lP+!2*/¯"rxHGݑ[%Lo{A${0b>m+V1ԗ3wRt%w:$ VcyW_Ŀ(_|OՑT`~Q} 5>\**}z +vO Dq1T?OP{4e A9tF42z;O"$#Y{>Bէ5L֯҈T^X6p}+ C4s7Q  @i7ƿ_u0 ?C[π鸄Wv_?T$դqJ'#D1x@l\磿~9#mA_:ϙMd8.׊J|a n ;"+UT 32w';M +$ٱ ~F;u{-rs8{|4 nd v 仿omr8"0ًM;Q^p݇>O:XO}=M'Lޫlɩ$ {$m1 ˌz\@1{Eglawt[xC!._JO?6ЉRl 7>ofO6ۛ^xkmp~)M[{f{ Dm?Aʪct*P11,#nq>!A#}|,ϐ\+-80Szd_8j}$qN#̾b* 8-x.R,aJwF?y?Қ' `v: y?d+Dv&⨗زkՊlGX/dz$2B9V?BU]gfHA;mJdG=(6%XP=HW fg)e&;),D[j`zd?NwxNzI8E;צ~,> +k чEe& ?x+9BԔJ1c&*mxAo5p3zhfGVM ޟOiUT Dd{;-;߮BHOuxL<#;DKp|>-6rI*M7|_NY@u@Flv<K_JW|[(&*Б`B^?G/{ ^E6Nj0΂8Jr.3->QJ#WxqC/?CO餲)O|)Nddz&|h@4@?yA9nU3亃2&$_; ho/nr<r ?ǧiBz<>\+_\BĜخUjix궃<-~& ! Y ^S0/XF?:d4d T}n6#E=74q '+2Qb{xOQd?ymx#4/bx^O [],Qqľ &'|蔆{Wn.q@^ f9B7|gHk ~Z xyab{ zG#JZ.s^;4 Gi94eޤZ]\{{}3iu=#]HnAr읷S + 3 +a]?wL˫7'o7O|J-8C| 3Sż8򉵯y;-.ةۋE }4qmg]%>Kb-LYlK%w}4}bի)E[{6^NO;juc7]Fr +ҳ /] ~8x ;'m$NѢѪeh=Lʹx< &R%:-6`2m;DƤXSlT E,m 9pY`WbL *ɮ0W5 vJ&J$.`o@lFRۥ65+>1)_lOY{+Oԉ{g v4(J`t4:'QLm&GA_,~_O?~;ci'qA,fbי3>&Z UDְ̿-HhD.8'{CvLwQ ЦFbΐ.: 7ͶiAW1sv⸬wKjXob9]Q +9dVMFoUՇsDju4 ZU.C.Ƿ jRzQju-鹩ۡ\ԧYP3QL;T4B3.^%ͳ[~ˆ:ބ`&Q.0)]~(4{@ m.xcQA6RyS٠"ƃ#ͦ32n#V7Kv' xbGJϭ$t^Ǩwȑg>ä}IC "Ӽ_p^C5:S#JF&WZ+`щ +H >U-9k6|#.%d"N^Ƽ,fr| ;n6:k. u -Äl\V +ηuE3ׂD8T\O-f=jݖ}/\=﯀Z3t1hQ@F&qB;0Z )uÛ^@irب},(qctP_c vMJ`h}"<\MOjd^Yű}wS3q2ʁVz| t-)u^TAwntU5Ux`n҂mId/!1 z'.1;ayf z[ nt&s8P}lA*/yJbAcL2t0;ノL a9gM[tr6[¦eqtj׌mAW玁c/,4Ok};\߂7U$ R<]ts@sK]As +z3fYx&xnY)+dvsT7p5KXRߌ+ U]G +V Q2УB/qNP6o@e~~D@pM638)ӂjn.ȷoA+U?cAGB ݋#zi Z؃m Cs1]uZ{ZA2 8l:!hwfV&╪b?D0F,Kcb /"[b=U ( +Ɖ ug;/IE>yRRxZk:%_'?Qr9.o 5: .Np|& +o7?10aLssq6_w&Vؼ?`$O4LjYi+'|dɱb63z "x+\w|*smГ!r332d^l6;RֻüqݏJcr9ZoU=rR+S':w-pyq*w5,aK+fb62Cc,e7W<XtuFZ9"iDeUCw̹ʭ?.)q%)oD VCeZy+PkU;Pr79ǯL^SC?RdJN6L_]&Ӌ;D#&aed3rKk`U2H{pl!rřB' v`rLE|؉g(ii C +|q/ed:59\ysBiF1<47\hNYO\Z(.Wt*! ¼l,_b+y┢*0>Fn9/'Gemav ¿m2#3r6\^A:*գ^pę@eGQx?&x,JF9L/xia T'׫?~f?m$5f_s.`v1F !\iJMI4O2 v5eaVe^_ɒ,unܙx~~E3~e.mȂzߴLIڷ֗ooVٜ!@lIC|J*-V*bc _k KJwm/bsk +(dn؛ЦTpT7ЦH;,duFoqI yKzOyS*UǮRUR͙wF_RKpT?*L%3Ɇt':3*Ojq̺nXBg%Fc KɱU;Le^7+lSu @BՆ~)S I\՞gֆaƳ΁r )Ck) bZANoՊ5 Z Lޡ=Tj[[A`acTqU:r=WY 2v!4w &6q\uWe87KⴲCw>Q5tKՅ:\XY#U:! Z2{DxΖB3њ9.̞"mFB D]h! _PxHc!hpS[j'H6YA+uKtN֭9UI6f[E&Vr&S\"ms-|Cg=k{9U? |Gq,(C|xNk-D^{9 +96[_6ھUAةpEF#%8|ZK:~ q9-Xm[$q?|6 +"(ʵZ,11ͥH3um>s305EPMI37]=N:J,궅$E;p`7rl Eu|b4nR"ѕ̳MMS2G]`9){xǁ>IDOyզhyL%Kʮ[T{S&rTޱY2'P/0/n\8h_ٚDzbo]YSe-ʞQ_αlvԦ-ChHjA6H,^onk2擖2$VqrlOLONOeIXWML>~(mSĺi(-3^ iY1 +Q--e(ԣ/i?D7Ѽ}QefnsFA-_|ZWni;B˔0eq-ۂŵ2Ż^m2pjW0Ar_šereWXVB!Dc詧?(c>=9P +endstream endobj 15 0 obj <>stream +9k9i cy<45Y6XEgqWdrBsdAfZ2ZDp֒XlV (Z2[^9wѦ+u}Z[vi$ R#:iVBNY8&r] ^rp Q25*:fpVNjz2zoOmGT5u*բp ++rn7(}/r}y$9M+2erˢy]H~(_Ʀ(K.>x .MQ&tGHrIBJԴ e#|I. RQ$ґP1w׍@)e*㥼KS^R>_Rc;ZNB wKL)&㷩=QZR&Ygg΄aEK&E`n0;^LWdoHqRմ'&e*3ʪ$PS:E{6V~}jR7NTfPH{l(eDS{ ]SS,L02಑8IAR&t(Cso=5+%2zТ(HiUi_(\GdVfR83&Hʓѥ}h}t_͓;^ߦ|n"2r4[&Oq~ ONz| +jv|1nWm2}P>2|>1Lzw?И j%8\gfPvq.:Xʣ=|4,({ӓa4, BH]Sc"yuwt;W Bύrjj)nNS{oTQe H;XRW^وD>ԡYn/J! .<̻02] rVV0e@ G!]J>|S{*boSۡ,ARq޿ H8no2|p] Ӷbp6z+O\%V%y%\W]S+Gcrsߍ#WAdb#,e{O&|  +ZΈՌ \6hz]/{>[\h04QWeb>=Z:yQ8t02OlcߚѻXl +q;4[5gNGVuJ~v63k]73?0e3rks8:r{kgszgN4V8L"(Ȍum׭5\[𸻾a+Ʋ_F*J4:G4h\+1D5DЙD[6y9ijQE 9af>X 6 a Yً2SOox P W05>k $۶ۤPT8RÉ5oy:i\rK"d-OѴ45L\0$Alom^6N_NX֞6h1l{C=ۦ:E;d%Ӊvİ!yzvLn?&R{~,E? dM GiA[q?l#a+N  5 )g +GݤFaWDu2U! 8)Q#e9͕QN4Jy@.%0۫;chNVs"咜>;^#"G}zƛOu*A ں̖0 QI s^֊Zfkk'g;ZG[jzK q*j235XDH!-q&^fk{Ҍsһqj ؖ +[ji`Oژv1sO.F AoDwzU;~W +cssDWڀGu9P}ޝ]  1ew0Wާ뉱J6(mo1"28\js<%#p&ߕ0N}&Y6i'-Tɕսo6?LTib@OGg)d)Q$MHŰ gfCs*,-w~0}xRSh ;~DP:y7'?;|{(~𪋠d?CNY|K8o&#Nh~q>҇ s-5_G;SMM޵7N5Q~#qWwșc-=]P\-O):UaN5B<~6yh{qo΋ɴ7ĔDA4'M}?6} Y;:QO+[n"va}=MkwF<a%JߛvXjՒIm7E (V=Rx^ƕ^=~V7+.OTNjYAz8⪿M}7]'m1N*.kV t4H!&X ^飲nIANO"SN=QӖ7P^(%[;#?0*2\CCOaXpPn횪Fћi>|R_ć 6b>=} D >d+e}8K;݇S>F }!Y(b}ejcp--?L~ҧ>\˜;6ӊKaw%Z @ qJki!N/ qˠQ?pns q<-+4/ʙtoɤBUXײ aR$G}O#΃mB[#.Bb Ȍe,3~o#7~1g9>9q.z58;Bn"QP@~O0H,b2mk>>ʻ_9}kdV.-rA/r y@Y0Xr4𶬜U %Wس;p{󻙯s +VrasnΡ4ԗs7}}ϹfX9#Cׄ9nyh@}nٮAH( + ^ +/-(;W^.^[V՟ϓt­?[ PESeTij(ՐhGK~I5!S SyY)y1 [m|j:cHEo9`~ _ʏ1J;ϊVPJtӷP/ .i[L}%jVNtfnF>}6p}촱z췉C}kdiBn]{:sPI >*g{S՝~0S>: cW6 T#xC<( bヱp?#}yyd.D,0y=t>=\gcpx6Yl}}W.L;sx'Ϝ |}]dڊ;8ޱMß?8^fa'p;c1u݂M Gs8ȼ?~w ;, ɟf2lrm3.Oxz֊yIxԳ};#WA*#:_Ȳ <ԎՒY{!*+~]_%l7 w30-4bg%0LLoL'RH@70" +^{=o'-{K89rhO #(2jxw"R+؈ +:ab 6R&Mlz\@U_9^^YG@ %;h-0?DIxl6V\%Q0Ed' 0Vۀ&6 +?Wի (A~Z5ÈScXqѢg p H +>Q`2=T@xV jXj-`/ <{R1? / +($^x0Wãu:#phMds}9Uh&UG{wa|>'B'XnR軮V3%&P~}DtGKXr,JpvA92l>ՊHP̋NfF J3Q SIgכ 1ÜpArZ/^eeZ]WngoӡX( rFxftώOx&A7bKwEl_Nc+Uӈ!=~Vbmz +v) yo~J!u{e$!҉@{[VΣZ:wm c>oܝqtȍɖ.|]*͵JD|n% %V)-70˓h)U*X>? N- +em +I7Ef}UQJ1'&9 + +aD +9ch1bdx2 Ř*vL8C <􈼩D&m[;C;$slW'/HA@tx``6Q'1d0nI9[u kPC`4h#*4{5O-3Nca]`t*vPp_: wBsxŃn^j\[_q+j::߁B!m + xcl I<~b2Z|2kDq']7HƖ2M }L&{_/=Ah6hz۷f5>jT$H\Rs&PψG5x:3pqNrBO@b +ͶWe j"5iq3KQ}${ D@6k{9 +=rT^2sR7i$\&086d| sJ +3 Z?4I1寞DRmA YEUVKׅP⽰-Ey%Q1 i^T1yw.N:na?(1LīlCr#ϻAބku/eMc[ϓy,o^$B47ʏiHƌ yHa +ߍ]W1!#&)[ .LpgS=s'd%cs,^MWf\/^b"tfxT@_Q|w3 [qlr<վFPQ¼26H&1@4(`i<&Jv]+"3JABoxAbڸ=骝Kc)hgj XmTݳuqXvc&+a~@>.ELabT0ڨ2]Z,q5Tw8?:7!"簀qV"@CCyjV +c(OQ;21V?3DTÞߟ!8#e2'R:=Pnu,#.i9$6B szRP 9ꀯ`?/P)bAͩݹ AdbƱG̹8;sbx-qͧN +ד)a"H/HVcO +c7g qi#rM_yM*dZ1V[n8݉s=cp|YZʝPS #" dweI\!=͵ 3ɷ[IU#h$KKMf!?_dVCB  Y@3ؔ+`_}AI*><H޿A|퀿sm^JȗLݤGn.Dl_u->Sfte1XҰN$9?:\ޙ"*.j}2CEkԪB WЄ Jәr+HpshXy6B=h"==nz 3"X\NBm+ 4KRBtDj!Jp%udY@ycȐ^16A-O {wAqL*SiKXk}dc{b϶߶i~`_<1kOi[kvY V~ztj۾u4_Z- V]}lckZi~W<gϦ;ҧo+Ywm+v{sgpzg߳8lqnqyb;fhZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 R~ӯ[/o߱Ob~K^Ǔަ;ybl:^Kx +TKI !c^ŗspn2|:"C(Fjq3[=Bnfs0/gTD2Y*7>Nx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#Nt052&PAƊC OfKkm8 $=dN("zjB ЄR pc- ЁT!p$ vHNɧc QaQaFPb$%Rƒ# ùɾRb ;X1tq酄JʕpHS<^bߍ8KƘjJ1{y-')\>Sar v;jƆYRHH@4aψRc9DdHdD$IA +EOѻ44Qr$DbݠˤO'iC@fݶup^b>}8 oUt(jPxi} T0ɦ]gCo6'Pn/!ff/fV|P3b u⡢HIDG1'U׋)-Mѿ3FQCbƉK£LG.ʹ.]ZŃ,L{'%։`x d햜KЮs/` Ͻh:GߌD`_7ByG7֜f |?#fF kMe}v&| gq_GkGYspsm{Oy,QY_>\[Ǎˌ?j.r$6H؇e8qAz $PTDyincךg6{ߌ8)tb~Rq2,r DRut'lg{[>d2>Δ4s[Olɵ=E2kͿh锠Z<`ti6JmN=(pXq0["bM,cn}V!{IQ$e=/QyzхJU!!ջuݜ@VU&eMXzICKoxгG0w\"s/z̝.Ӂ"" "pE&p(Ƴ\w!!cA$ձ *i!G A@3btF\H!umFH9 +{h٬T}/IM4 \"*IqI5T Iĸ}a#CpPC:؂8fCx~hsR!1q])|XqwyRJz, #]r=Nc)"}@jٙrkvgS|Њo^Xl [&tX懪#ܓ*O?HJ~$o*$c :/Vӓd6R[FzV.h+0Q`1e,Kn98DGmXz{v^2Umpb#3{8j9#9# +WT;fAoa?Jx^XiU2KIkFtwĨq1Uc1,Of7Q$w 3[cAPm^ߛi $hgD[7>ENy\sz֡ŠF/S-nc]@c'e?6µWLgQYFKT[d\=6(RK.JpetV kR׆W;Kѻ(nCum@&o&-mU3Vׄ3jԕRRe#!u&B3"2ǵTidQ\2h,j沃/<e@;lrs)+v߆b9&0:2pe#XCyKPTӟuՊai5e5q oyn=ow"ohyqpTD}wO#`҉G)DpO6bIp, 1Sr_(y _Ghnܣ5G%jԫ \vWGtv$؎Y˴r"gI V?; ۱}U1!Izv͖`@:IlД$y >}q2bpYo>s~+ ё~Uĺ 6cHTF}śOE݁ι󗟰nX#oCI>APX (T8Ѻ"V}$-t +<Qy>ZҊTᘤѺ+o(Z0,2SF8̷@0&iZ߲!m=(e\ E YhH/6Q?kHx~p߭M .˨,RڄČVdſ6iVqȈkҳCރ~UQ4p|/p[|vmqI̾z&{6hcڥ}x"ZM lW@t\er VzW,b0ZYm]eW k@PհZu_Ԛ Y[6 ?J(WG2nU2ud@au"_'CRd"=:ȭv+]zXiZHWgVbe[%Ecanlyϰ6m[7p~o22/p I-N}%Ȩr7^oo&FP4&FP~"b(no2p;\oyh^etp*mB&ENoB(HRϲd/2)Sgkb]5z4]K+m2Z"c?)#gm=F:cÌ?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M-p@KOrTI~j֣,E+,9'"bÌ7!m=N"<1z~ږkYdI]`\i7^FAiY";Pscf9\ϪFruTEGR9a`u4 O&x|3Wťoi:1zɡ24$-qs۾IT)HSrDä7abp \Է_O_ǁt kdÚ?U#_9~S9^ +ݪhUw>;)}*|| +[kbo937˲-w͇ea'9=.hG.9UCz"t1i׾3gN +TA*#|7Vg:=+9CR:e|!jv|H@ʷuѢ>V`o17R;;De }L+V y*˦D.5kҗ$W^%icI[-3-~2$/OXC?F0Y.7v-vYUgT"GI~?6M>E)?@]=D 7j#%;]&Z(˪N{z4k:2*ћ Ԗq/xjEY(s⦿0}·I ]i(nw"'bܐ҇(}sm_tMk"ۣ=& v#)O&Cv(Ađ[$5b~ 6#a͜4*Ų>bju .t+@\аP K۰ϻ:=VRgNL[4˺oBJzӀ%rS:\riRAL NeiXL]|`r@Lկ4͍VvXU8״}""^dy.0ÌwQ#%iF9Yѹ?[>'/(=xgjk[GA0|; +'gP#P;A2)ײCCQ15';-KV hN8*?N$@̏7?Neagu>n%r4kXeu~[wIAtg[)Tt +Iiˤ.MXtYeIAx +͵|fe冚(GRRCEH jC j<cg#2*ؙV1]L.hǨ? +{HU +yͤp*I=UFa3NU4)o +~,dj㪈[uvͼ*^Sߞmc丠,EbN"I|1xS3lqx.:"iVǚ|c62n<caIcU,>ܘeQ3gfY_=|5n[scgk.{f'[Lֲ'54#n5&DѮ448 +yCKTuQn%uZ!veBФ!KP[X3]b`9J1nB$AM?Uva`o0Ͽkn"$A}[U?__K_%IJAZ(MUk#71r'ύ=f2GSVeiW@2 &`ڍWw <0pbgM^D}eV me;ĩS=MG!Eɳq6^rX'g`-qtP>i(LӍ48!9wIQt E ,/aCxxqA^&ZE04&ѣK=b5:TBE*gR"-@to3035nA}n쬥N5yQ{s +3+ˬBn'yӫ,QCjZ̴/~;=4ӸF ]N +ԛ!-MW8kOnYz"b~hwqAr3(lK-1[wYu:̭DžDmo=̾rd"r jQ5UoӲD?s?ͻ*Ǩ9m[8e +3k瀜d&EN4-0֓c~z@Co҇(ufӲc<"'I۸I:F 6rrg$5 T bq߀ؓ5u+h OØ M/7QrrZwq?LOxьb@[ 'n%&=yMkI$"p}տk=l37coai5oVndկfamߤ 9KT~dK 4!=ah=|ċ)F3c[bXKsPøs/|z<~&4~# > +Bzha"AK(p$hք(w8˸# +J EiWEȟ7!(])GP&iݡ__Z̛5!U+ +U.!H0o!9fr Mֳi׮HO"}HrǤA[.cc+ + :K(Qy/gqvJV@5UBn5t1;ɑI^)INR՛9;!&1Zv4|!`rǰF|IN_)rg}HWoڛ=sA̘4UY__b53kbIqzpҥȀDb~ba*-= k/#O0 ϴD +9JQ0"n@4%D˓׺E6r,v0OTsE{*1m$_]^ތ.5D ?\oĨzEˍ2Lrn;|x hO?z: @& +KײH-N!258a-v#'nK?{ȱg&-doÜB/E(E#^0NZ*m?99Г0q4`I)MRd(nI!HKջȗM<f2v!Ξlx;$' JG@(`Ds_I~푞%J <40OݓqIP&;XSW"^ +z&m}rg׶E\4˪Zgᱩ߼߲DIi/ccK8UHWYGY5qۄ ?s>SYԎoY"t2pIy -@;f`4ϨW!B!t,Y? *-믨|] yrSg({YmtbͮԑYFY;RKWjff5oᚇѳIUѨ_L  #c>R=?7ͧ(YE\QvmE .|`"#Zo]VSG^].o<]d{%Bzsg$/# (MA +pr6pӾY$k!px-2lsǗ1y#^#+͖I%'˒&%q_&]&i!( ?}[T!y: gQUGNd2׮/yKWD \nd + +!$zO˨ėW]B>ҶC vumߺ0e? =.%0T[ZK;.\aK*ϦH!J=OR5"-|+\h930aii@>}XŇ +pC wK@lBO4"l`iw v$d`ifiN>(m:^eit"o%_̫c<=PtL|1z<'9xC-B=y5ʩ_})CUj=MByo%93=i(,=bG>A2dHC̼U = `A I d,+M],J2@ڑ8M?n(IPG&!Ls@I{/xXo+o&Ǎ>D,@iJ:̙q@GJNO"_M>& ~|,>HF`c mm[<\VDr8ˈ#ǦA p +K|EO\D{Me|| ᮲49^6vыd$LIz,|xL-WI:}C%p&I6zOҷ:UcWzzh'`ɷ8Mi^!mPY֯(U}I)җ=o϶UfحXfXܠK;7zW.FȊqA5Y&!Ѓ >0dl%k'?} +1W?FhNьuY27]UD /M\w5iܡ"uEFE2~YE;VRgǪqtlE +,w=,B`çF۾K(nqӢbbjlqQ935)GPZk&]O%*W`X{| @nt3!WØ@0˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0aR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$z_Po $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZSJN1%WJMX^ζ6spI;-2OYt }қT9CR7G(f$.d{Fu;aϱ%,#@J'Ȳ[4 +‚&KkJz) 9{.X /S" DF—X'9*%7rlyHHi[,"GJ}LT|Uqc<``X#m6 PCGTp8 spQzwP@!f^V"yTϸ CnY0caupѓNh&'BSCIXƂZt+t.锤TP)8{arF#.ԠlG|H\'DiY-/[Oq e1TWJK`{ |5kUkf08l}%xHrB~ByT= 󻓯G_ +HgY =*_ C>fKr'"C +HA:׃$hlvV5Q<[⑭}q |<9X'uEJf%4Z}F9TFZV Q KᏏV@*EP("<3`Jƹ!Şu{@ +@RV#KbyN%N{]n1s| bS}9h@5Jfƙ褓k6Rux<7I6k:OO*ޥ}Tλ, J>8_PvO}+/*eM@O" +ٷ18T.]Ds N(ݮ#18UtFưFUXUG }K0 Jm2`_#ma}"߱c4KG6%޳rU}4<(]\_Lzw Lx?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯsA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)œe㒾6q]uT ++kn{1n|(kt^Q"BzWg CFVOA?D; ,ÅuFěu ^H__O?HoDiUm]QU jln}!AfBvD4) XMMpY Y[ڵ/DGF$Gy/04D^Dرql xz9H7 ܻLuoOLTI,1Es;6--+#Vf+p1.Ys(* E +UAdȧ&oY8M@+Y +cwUxti&:4FO6Q5tnQFeh* 29 @ U;EIMl+Hrj JeK|gqfo۰[W)zFvH%wM8Ko`N,/E|زjη{v2vEբ3Er,n':Z>e+D7 U3/o)k^)cfL~Ixf{]ʚq@O]F!;q?p$$B@OYb150E[ +dJptH=8 n$LhiՊX -HwP8QlLDI5NA{p +pơ"dq+gc\.]2/]))E gc W>+NT艳wm]H9Cm')Ug cHirD@Senm@ \(N1of#%lh2-?8/(GEǠ暍*)Cf`Xhנ,rq64BLG72Q]܍g&*hJ:xr'Yh$F3,0nFr;1aIATV ~QC=u!= w^gFibh>ePu*|ҜFNg#cv,76j7r0q2VKo`@~*rI+\;y(Ӄx@O6=4s}/Y}^Qus֝7z~Qg9R}C$nUr>- Wꈓrq0S#g\#s0;,b[LdVKAjēS@nxB ;|y +>دp =B?`wc]8U? J+= VRչ|ޑϩ q96qI>ށxsb"M{&O:u:S;ߗqt^Q\0L3;Ty%k/x=_\r@.;_54_}kAZeCHh \! =Jq^I/>ƑGq&61$`:-Vtrs"lw(XdӄZUwhp NxS^C|%cc\f~m> +R2ԨzYIī0-X"yrnrlC)p;GybYxctr;*pV/*1NJCw|/$aP˸  +g~APUy셫 ­g SItKftpffLKr0[F4cu|N]hS8f̶tI agrN{htS@(iAbnUlӼ_]\\nsg02_>6Fa[w {{v`ש\8ؑHۈ[ '9GV2%-G9A"bzQ{tqvMtLo?`?tDgzy*|Ǽ[o}?ևyW?ku~)h!C "3}WEN +_^e uf+F"$0$it+\zUڙ $ɰP fhГppTK R! Ck}N<Y}襇qjjsbKX'Ǐd7JR2$% ˘qJDt7[Y)%<2p#]]j4ۡGK: +6*P&zY߂E8z2jp~u! }C)z +'Aa]=x5 3| T{eMmWlK s;"z +՛t3jv$OqnoVĺz臧 %G=NI +!㬖>ғ5(.$DRAA/4sPU +~J)A=Uw`3<|T0J p95@/%(pL+ppOz-9`691V'1`cVS^:%S}\ٴU%z_킂WGا~g }YJBUEX'Q<_8?5/6&D|".%8K0,"#EMs\"%>>%r\0wyIfRUZe}9` JBѫA0&J =?@lzI5@4j_; 瑬OQYNAA )T IMmu"m'ɇ9&5`W^|,EKt%S9P,PueJ2ލW-+o&$Iozk;`/`9648/D  +akߥ3q1 GNmOm F̆,55m ax%|s[]GBE< }V)詈^*|dI1<Py^A狪^_AT+D 4t̪>ʺkËdڗ9Qx;i5Ixނv~C_P3A0?<9ԯ|S|.F> 4M=)EQQp/[1-NL3>)j7NQMD'~Qn0 %$VXRZ@?4f~ +ՠ~ + ioz_ z XeJՑ |kFt,[1sp#fq.~q[ GnI܎}tzӋZM_րA6@_~".EEЂA1v?pamA`(a6:"E;-Tvdq;eW)1w!N`G֨_/.Vd_0UaLJ ޹%weLZV^բ[BTz'^*sbz +ohpTӣSPkĕűQp0VCk_0ڐ]- O'[wbLJnLb8{+@l^ֶ7 /Nv쭤#-9p̋(w]]]1J*&6-cm/J7CvDc!LpAtKLBٔ;$,&Ɖ[]e} TԵ٩W]+۽K,`iu%(t+nJ#.ø2]KeL7..j5KR]ݞ%D߲U75֭`Uϻ +/lÚ<lyy j_\EU]R6iؕpWV칼C>s]Z/Ul.[0{jflZDzX"z(8JYYϢ֭|Yd]> Vzl@^RŬַ\=v,XU`x1 ?RxO5aK Rdz^(;_T)#S؆6e K1)[TuH6SLO*ffPg&%.l0[L7:%Ym.S`S!>ۦt&RҒKM !-G$l +Y"Z4ZHߧ5kv|C ժϠ 6il``xlY +Fb0O:2Xpw;%j?rL aF]oci86ɫw7∢U^ !1_XnzEϽ/ wm.z@ +V٢wM>4mI߅Ϝ&+Ӛ !zχ)'իL~ +)uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85WwG֏ɕ_I㊙ +$Q]-:zRpgߌ#qXRӦۦ] .%4~r3`1)@e<: +6 z%^>e_G8cqRGAtDFEw8A0:jVlj*f ++fM?ҮoAoQzp)xbr!2Pg q'O=oQAڢ A\ *0~U¹s ֛c}RMQzee]7-bƂZ{*ĮtZ1sf6i/lBD_S,o+طuCAjFDE*)DHWMTR6Agz~0&\9'I%:J59gHE;u3Ί7na;Q?A7*zL  I琊X3[nûݍ d((}װ;%z<;*'Uj([UyVM_Xx"}2٣N#\@:ؕ`i"kc_#\1)7fŻ© +y{EԱXZ H zIN9MH`\5PkY Yȁ0f7O#' J +++f Lv["‘݁!Z/Wo,wYׇ n)@JfIdb0b [uv&'ǻ^6?@ʓCP" ;SkB*d',3\Eujbe%xk{#ً z(ikPbs㬣Qg7UoFm l{P:sX%X +Wٸ/bNt*{1 BaQ +5dJכD˶WN9)sțPv)+B;`$%".>gXVB BE?REG(ڝ4Ď4F:"?4O盛NabRpA. a 8eqL\gr/%/ρ/dQ}TXG{R83ӆ0;VX9̲!8`U^Fc$=|C(gHYܫ.\O\AW9*3yJ9DH.Ge ‡dGd 4׭_],7W6 j= uu'2Cȼ1@bE,V0u +ezB>~-ޮxJdVθrrBZ=P&bEQO~6aP|[)վ,\^\IxZ=( .:f9&=ڊbq3gb0¦7B0B6L_D}rʍ<J-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZ?Np784wb2kE x ^ +n%a+Zch<ϴMgsi%#B3/-LϦStes +xI='#0cy5Eq!K'py1f^c8vl%~Lv&2ib9k"n 1oK3J f:r/zi>Ѐ㝫y +?;~%!Yi lDfn/c5#B YWY;,_ +okbDq3 4`qerQj/1kfg1{؏N} +/KwA!sphރ Ə n\=AY4u5ObmFc+`MCwðZ2o`Y C&oR SB`]BCFM)V b*_ P5Pf|%"sS כdf>dKHWV8?h1_8eK[,B 'h""ɾZ/;LYx˿c׺#` ʺl ~t~ 7WNU;,{C]D=4FLY_\Z6~Q2e +ޚƍ77޲m +RAOsfbb9 Q>`/B~IJf|Et"ʑh4 ʾ_)HHc0~K#mD⟐%0>I z + 5yilYd]rO"]$DwЁ8t;XPT6Y Hjf֒ٚ4@ b\o*fx'ׁ.:6_s}Q'1L-qQDr1(zG:VRJڕy~Wy ƌ@m5g7V +F,"NZ(d"|z+06kJAv +D zg~=b@ KCt +^u_1%ܬ$4Id_ZRnz1kHE4%h)CQ_ UcgHzHd;`1ja \W /-Y=sKA|5M¯oZkk[AUm*K 9DGn ‡ḍh7Ǥe8&Ŗ3lF^) lJ*)_)7S9KeVK)Dcr1n]xwWY{9TY|4֕i LOI x<sŸ,lxwX!rK;s]H>ϣ8@;W0=vH?]Eyn(8Pd msuhD4* ﬐x)X7 c{0_[uo"8$kTOLa8‹=n! Y˦촚98 bJ\[@Yl`y)3X!8OB4b!ePtjO~ԝ . 8j h C9:&pz?Ξ%C)NN4g +AHwؙLz +~:\دkPt)Ci^Q5z 7 #ua7;6~gdk6[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY hI1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)eE~нPj`aST0AUUPPPvճ8$oY2EQFL4G7\zVbeJ)%)5̞On^2ؙ!'F<˳mZQDF]~e 3u4k9Sn03`G3p:u#ba(6z>' :߁&k̚FL⼕}tA3/%ϤAm/jOQ"wj(8 +$Ң'X|.G0aqzzszOc`>ǭ.˟wT$?8nMCU1b.JX OuiIWՔҠdƉ#'[ɩfTvAG/|f@&:&vwՕu|巽@<:>%}DN"Q7J] n3`m=ܚĒqqD\K,,";vP4zvw?0e?byj#H +ӊW?w\XVNu5r <~c*eX:D| + `rE΀?.b va+F@YV%6xǐ-!9 ,@pIԑA@"/$ +>C*bWgAx_ [j2V*/USPE$( a†G,O(˪JV9X9$OB3Q^anm0Y̢QX2TWL<yƲrOVqKYX 7*ab9"C4Ͷ8ݱOƶޙ{"ez bO$%K4).kؘ>۬}Q$]m?z>(J1E,OgtaH_pX ޞ)w78 :vPO5mLnEZy.N@=% +׆ ++L-٤*cu9è4p/h ۜLRgYpXG jXʋdqI8^`Gq?TC?r|d,s o8~u_e~$BĻ'"zog(wCwB}Xtb:$cK1Xȸv29lS&VG*o)"[M@B `|$YGBTK5G|F?}2mb5K&P%PxyGjtNO>ՊSK֩z.Vy5`_lY?a*+P2 Zm5O(WVEGB(^HeJY Q pg`n֩ήz*qPܮtBbGYF骢Yȶ +SnyHmYm?G*$7]ifqOZl+I-k+/gklcppOBb =X6$x5\ >0߼bss{1հ)+yfII3o> H˔/G?<^-fKƍ𓣒48;3!z?w߇n2%_0ǰ#E +[̖&Qق]fZ[\us~`U'Z].N*"z]>|N#5ޡHެ@~T"'HGOsgpeOݔ&3X/)*j k*=X?;b*C1^% hR5GNu9۸19YJju&͖l;p]]4[oDhE6?{hЬiOWpkRT,c\hlNN=xճiEUT1yџZgB|IܤC&5L4 .6N ^?̈́ƅ_Hˁu@՞#n3㊙H;v(7_{zmr.7eajb:|%y 6Ȍ#G,K4oޘ44vLKB_WBz#AmL5LúKticC1n ٮc>z^F1.Z@M:kZREB$)/j9l|I8۲h#=Jӊ!T<] Dܗll_^Lp'OVqG%!3_ʂZЭ(h:"+p& 2I\0 qAY6a+EkG;E4Bcmp7 ~n'Ik+n;=0בb`?wWOԧE㶶fZ &IYԗI޽A%Gzº>qtӻ-閧R3Z=t1JESC~#}~qu#٣VLoz+YN; nxd~%lki0eρsA{W#AWH۞=ûr|{Ԧ3%~C+~qZZM[7ΙHjB9;YC0M!=$8reKFG?A,`~5L?0)̤|҂u bvF: /׉FjU°VY]mSR]N]OǓMtҶ ƲXG_C|l=(z}#جցv#lO@m ;xO8Zi)\,L.]NV[E|kއn4E}]Zp =j)_W&Wy#\/` Jo[3vXM;lp7?r*ͭ) CD02  zNJCxO8tyv!SM,p:@%ysPR5mGn3r rj=`p +*`[F0T}t#I8<&aoQ?L3?y:{yx^fma_l&**<alDFkH0w4 G ]S(Th1W:AKիM;Pp˼Vl=ڣ4Xf 3U2tF\wtRUvhWCI;y=mr0MB9ZC+IZAgb\00Do_p"lޞ[+WZ2X}Tq^Dn!$OpCn:sP/s}_`SyG`h6ld PzDDi ]fEfxf' ⸒ /[ dAd07 3A_CُɋL2.O]ƍϮFr&A\' +/h>۹C4jc^w*7ֆI4?I[/LHkrh0 & +ed/< מI QzgWK4B9ɇl4vjNEL2ös;Ep8g1%a?Os:!'!r?{vC{+PA޶pݎB=e^1n?q/Pd[ݳ6~7SHj?E;N8zDRn O;/ #4o3*N+:%[\8;tӮT+<*^[[eLn9Snr\v ;U@7SC~Ia E"(B #!!ZDP c =t]Lbr`qj$/ J0),7+;:>%0S 'S0u_,RPߑw/DROPLWB9G}gSe.bȿNv/qT_%)}FwGG~WO꒯VEj@UӼ=_}W3.N.z},:ʈU?W¥:c4ݭ޻=?\(W/e~yf\/$Y2p+dX#lHJ㳞?+8s]ZOA{1|M95urݗG˦*$g#B80מM _'S7#7-1G .rd\Oqj;ʂOkzx-)j^ +k7, 2|> As~}R1wtKIcy?gsqg+= dgsnN%ٚ"pgܫ%D\#tx|/Kg_5pϊ5y .IrO  + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHi[6D!D1!D!D.!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orplDY!D[!T + L2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 +60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tmr(qWm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*D\J(ӛc2ᤖpta{wzD # 5.0 U?CKha$sBalDT(!@B [& +ǣJXga, %haڙR7F 'TLdhAz'E(PJAvxlW꺺̻ʼ0˼۴2FwwTO[YY]Ճ<\tGujQ-FʻɶkQ!*nFՍjj#Gɮuo~Li"vR_O*,$LX@,<P0@"4 ö\ H4&4* (>6WNn+qPM[ɲQ!;&oMwɓ^UU/{%Nl`WQ0yŔTsGBQFbaF*BՕw}мR8 èFza$~za,\@yh E%Ҹ@< g"< THH6䀆6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮ'N9ogNFrW!%IBj1Eąp$yh^ה{0G^w: +ccBlYx;UgfeBi`@&08Ð8qya Fo@XȖxh6/(m{MQߣ%%74# @P( e1@ll<\:rEa0c  R MQTuOz+PR 5_KtGl֖>^(+ef|ɀ g^6LN23JO25)J`1 ͛WVg+S\ ?l:ʡXo+;mS#\Qƿ+I3 ʂj(Rsfϑy[#fCt|=0 ;%^>4ޟ_j&Ej\ dַY $.,BM!@!FV@fi~4RFP}H:kԟ<{޳"$? !\u |E҅~/{gj޵6zՇ?8k%äZ,|vT=9zC½kһFpfծ AYt]OMpn(x@Μss%j<lY@` +t{i)u*Hc#uBkLppHL/Q(ʃd5ɬOݝj654+Clnõ 尚U'4M‘03@e?޼]Ek:gӮx`OpA HE 5Z!g]1h1D m@$?KC6~bpF|0C5gy[A*w@U؉J:|Fdirm#jDŽ$ ?RdzઍZ]4Pg{BYV[wPΓE>ϐhu&s!&"IW_|l:TM)i p5#Ck6yAGt_kdbS{mOz3CqIC/Kꋬ( jetw Pfwc r_h/m>5Zs>4Π810pሳ9.D +ofx2Ba %D$_drf`x'?J;,Iqr0(rO`hwa_5"(~( 5TRvP^cbjv{Tg)H˲ g }3#K|}"ʻbME}ZdbϰX`@%,T+D< {zzLi-<@fŋ$Dps*qyA9Q!:*IiJ[7QTD0$%)1mu4ϨevEZ d,*k"g ghj1CÐOh hp$jA]{o$o|DRB Yӑ(trdៜhQf,cЅq=+.zjеÔgBH:hau +B+s G{+^naM.#=[&Fk0{ +AaR6~ r8gda4BR{ #4'%hUp`%~%rK,7,x6 ߎ7o߁Ge1C(mFYɢGAX/h QNa ++m/CusUY+0{BKiN{0 OT0˘Hs]! +b!|cY u J +ʜQR9II:GaR$,z֥X/A?|J@Eý -ccPzhROim9m0KM}$pPD8>l?J +xGV[e)> 6Ir-OLR +0g>Jj h1b$L;g)e<$ K9ɔ[l? ވ> w 2d0.F*c&kB{*locg_ +7ڲ~W`&K\ryse_Dqk+{"/@^HQn<=pd&ZL%E 6E$L=P<ʂw^G1c{XbQSk"Fшѧw&|zyۭj +ŎTaQ]> #dcH<,B(d+Z +!w@$=p1naEz+ddt#Fϲq|'WqG.dqxE~*li j-f^mv8vzDN0ˇy +`00;)o6(f;PL>-Hj[C@mۇ 񴟭NHXri{L,މr2:Zt*PLGqbhܢg+x NK$c2g +h+6`s|cghg⳨76i fϣciZ1g1(HLG-ȁ%C?}h!I78#IQ||>3|KryXBH=GPdYQ>:. +ՎAX&58li +/J i\?~`ˬxI?zB^>h.Kۉ`%Mə*9XnU]l +ʗ*J+ ٭e1¾7n z#z4V  ,c~d@2uȾ5<%cAt{i"s!&H[orU5:`(ء/G. &Hal@ wV|խ"HmbVФصZ=XP +w$.-p5ֵ?xѠ3_jRklL٪kUu>ć=ԓ+fj/{0t}R☳9X Ml+dFBBEL +Gm"%`-9mlo\W6Ĩ;dOjjZIvViZEy6Nq7~oy]ɅS"GJL-Ί$a1)ᬷɩ}:0mD"*U,c3bܧ4ٍ6v5:m4 d:XZKϏjfo:X'4n.;t8O+] +D-(Gƃ՛tҮ3 ]Q:m +|8q8 z={ͦWx4H%- WHDQl +H@^kA@ +WېЋP*CH.TNˎ2h J"U\?L宁 kx79N/L`wHo/%VPwۚ$˺]zr=VVnY*&v+5d>Ǒ P7seiayC1]0W\)7cH.lS6AeQb +}$;Yz xH 7ԷP@~j#fZ?2@=\JVGO\\Po.`fز { ;QGˇ%٪쌤<{pMW7䙳[IdUM$=z&G6Ҩ,Iƒ7jV~cuntN<lׁ#Ia3d+ϙ7$OgiPܮeqPfG?:D.UA9"DŚ *9wĽ?y?;-!RDvtT ȭ"h뺚~7ё T03qOb4]pIDs-1Jk C f:µK9`~'b;JH-+28 9yoZzFUUFS$C⭓LO<$Nb%Ѳ$]ȳn{k9?dҭҪN%mD2CIi%Ux:Fd<ƮE AaTqUIOKS]QKk}V,|/D G[US8Tt  21FB13oS=k_XWރKYO5Am*O4S#EYUS :<1SkN(̧^Jb_DP 'm4"KvJ%$dXĄ(oY~9astYЉcZ,uۀP9`ʄRZ ^cc5<aM;G5O{x1+; p-;60²ښPXa}wpy5} U2dQA]ؚp F)~@} ݿ:n_Sw[Z٠?bEOoX:Zj/O_X'&l:%tt UU]V@>9Dp_wNj (S ӛ﵃zQ]zmJ"0NsiJɦ  V״5g@v$=$_`X r٦c7b>#}~v`،R/I1C-ˇݖcHQ6`ALGׄ]B)F9 I±O +ו%Q6],$XϠ/ޗm=ӭwKWp5g1k1oqe;~W1÷iLo=ǻuWRzW o̦;s:ΏT_A|\ʟCs{&EÁdDh^>|cP1! ThEy V\%OL7$xI8| j^ +9%˅kKi]a<§ ",e^O׋>~c|TL~u(d`cMpǽ=Yb&NyoH%?pqfNQ ax7ܟQ컎,A;@MAc*@m(?piD͙,Ŕb;i +i$R^L8^2<b!c:* AX|D!߽D 8n1)a0+@7ԫn%ɵ{φz[*%W_R4g%P.a~ X`p'^e)G {PLf}M*P'B9&T +"6]2MK&|֧̓/j!i_=G$z(YFJE 2m)i mi01j%wMa] {% Y26qP6FbdF}RZx +'ZI)s"_EsN ՎҬpWU# #6Mya\k+/V$4Q縆w$D@-!æ>L`qO߿)̇gBR(9Uxއᅂd˗D2LRݹZ_4l~0|HNd>3_:ӑI *Ь{S}:fմ9a\IECT!"'@V!۵!&1G4T5e k!EuHl ]_tiu|xW.MC2hMBedh!3(tn4c"F;(,b9%c0 '#H[`@nvR<.+QꏳXgZUuw_q !~#L4WTP;P"ՍsɄwr<$]v9jLɚ7)s|ƈPEA8SyHa1.xoO t4OB/L +kx:@XX剓סl}iν̱"Wmf qrڥkv׊ί,zE_7=A2$RIj9lrWK.g"zږyy+rMƨGj *4ǘ#*|%|p>I!pe9-X xq<peM~Џ>lw6jx-BxAV2i  7ݰ=n"7Q5q?Sk|u[ ;+)CuNYf |12at;h()!W6:3 F}ʧCon1Bg2Ձ}z_|0X^>V +U! 0ZY<%s 4 _ ǡk[7_Y%'%mUlĴylnP1*MiZ tuѹ({F4XbՇMnZ1%k~]a +I(U6Td{L +Vʽo+W̨y5"%{~uƹ+[xbk[ʅ~eCi8ZNgǽY&H`T[tVgTӠu0|ŕ47c}[we7 +endstream endobj 16 0 obj <>stream +7?RG#:ôz4-&fs.8|3۽̯Sc(rܓ$pny!@_Y(L} , k9kxPN>,J3-7K個 o~qd4jU8Zmߔ~xZu~¨AP(IWzEG9Y.TU"s`65Ľ #ZrɎ (,A92; 9/3zb)N%n'` +vf3`B+0\E%j$Xא]ߎmFkqGC)IżN@?UF`,4ob^b(ЧEL×C`2Agl3qH^ՅL>o +2 D>2%ıΝ\5dn <ZqhG,_<5ZkR(ydr `6")hMƂ`A2HW` 0G+(~Õ> Dr :^XcAzڵK]YSrN}aҩXlB>/sfXn`>ҹiM[xKN %ҥ+wC(R4mCzìy>u@=zIZB 3`k 7 Z{O'II'3cz dJ)L^,YX<̼߳y)*NŕwUe힠RPV>:#2+ㅙ?Ybu&)P4?Qq +co6Iy (8=)P&KY2LG>b"&D*<)cᘞ*DU*Sd {,FrRfz*iM=Sq( @P Jry*ro&{gaf,U*T&pρMk3֎LK^ڠ>;>2˟؉mo]_T_wnu!Mޝ*վA՜R&"64;r_2ڸܸ{r2^B3"Ejצni Rdq$CAju LF UDQ^XP8Lv<cBDD(M2l4eqSqU_}#.ӛ@-mP25ej2LW.nMHnr홈gj8(I^cRTM&`XD XbKFg]q#SFu_QZ{fcz>"jY>&e̮﹩ϊkls-{gl99 ++'ze]0a;"W2:7)(Hdp8 C49I( |94#2$i +0iah@Q!Bc1"0CB12D S'όw/R[|RɨT%shW6tW, +S3L1D8Tc;<w_cM^\'vX5 +D"b d-~ m]~1~?D6< QS U=βMŮZEIi[(#jzzK3("KIJf?Q)tJ6Eԯ|B=erGkآ߰,t2442 +#ѪN&#*] bOk5hgS ;-@Kn|y\H"[n`Ȇ$_-Fh3ylo;0a,u`c#o& +IG+[&]&._;*^DeV ¦ LM=clUVrTE,q|JpFm Ƞ +:!7K9!х:&ɽMWEL+:K9:Ԧn(fAKdƞت!՞-<|Kk2P_іCN!t៮"E@< ?GvKasQbz!9.mms| +Py-|ZqG|s{Bu8}g6'ܒB47˸#b6dM1n5|)VC^ӗy' ~_C!aG]ȬҞ+GAD ;m#tdq ˏz ұ]K,Ѯq8h;`.=vk}/R.0"fhF m.I2z +ӖN2(`|J$IU b]cXo]U5es1r-ske:%%4'3ќS(qG4i4 Ii\!]@A4* +f$;V$TetcؓD=C;J5$7hz$ =e3Y + _qO1(۾FmpQ ?lMV-ўX{ +$3:,aeEeS.9L^ muƊ䊊AEo՝߁.dO{QYJ2ZPA;1#*M6(X+Fe}4'Yp~| +[gSkZ1tTʗbX񲅶WE72s6,+̽fru6&PV ʹ46f( +ެN|;1U$s?5F4Vy7z +TYȌkN7 :g5g|"1bx&_#dteT DP ;5OP K,|C4fT``XX`6@@[ ! + #DaB p,,` РtMXL@,0Hxaa!a҅D&cG7x@ewՒI$|hdFq,ydaĢ` 4,LE 0 +n8z( A+X<`"W0Pa08X4@0Pp! &:XTpMT&pAD(X@.8l0!a1 L( L|x` ! $21 hpP ,*0XlP!bb"ƒ" +L,:`pA8@!Bą&\@B0Ń +  +&P \XtxA0@abQ  +&P@!L(H + `20qa 8p1C22"EyS. F C)fl{ okV x@$\0ʬ$Hpieju~VGtAæd 9bT+&Uڑe}gc/Ϭf^𮞓CCOʴ:UӺTEE$PAՐߺؼ߬c왏;[ÖR}g7ML]I32'A'AH``I` u{8hnip84` #0HdP ႇE + Ԙ駦&6nxWfKdD5 :Ub7'digG{w`_AzUQ=dxX4啦U눆ƞgMW⑄ Ɠ|dH3DԸv4ڐM YB]Weӻ!ѫE=]#SB(hY7u=NnJǟ $d0zDeEC+ι۵Ϥ';}Z\X괨}̢ٽ3Lu*NJ` Ə$\!Ҽ2F-֍ҪF6Uee痍 ƙ F 6̠3$1SDIEN5w5B3  ;av)' R $HI`$]K4T5 Vdg$\0ll<5un=Vﭺf\tFGywWEga {Y3bp_Kf;YM$ 12'/ʹ%mI`ɌfRvͺ ֜)#y.hOɌ"MvL^fTF2 +wue;'Г܂^RdWFiRu4xTD)tC/<2RGCKSU, ME$1su\.@[]_єT1*J.N9W岺bvro3.ٝ+2u +S墬"I)6lg)YXf$j%rJ N7by\b,8Ʀ_tVEW|'U[f[Y1k(4cG$&*!&^^tWdtΠX]2Eg;ʩɬ5 O&qf$Gnc%]V :R}whaQC֚0za6ɫn~s:]~ej=)${hn<f;H'7au.$ F+5Jg)Fm?9fVDx[e g´^5J(YiTD'a mVLCWe{' m;5a+?S *VGswv}Έ]7`z, O1Z9kyڽFV}fw&%Vѫ&֟53I8X_7/{'i_.YeǺ2wW7~^v+Z@SGTu&U/<(e74YJc")›xt]&sл")ucJk4_v2R7yF2XieМٗc 9) )ϱ#,QUzx_+u#?=!sQ qm:Up7+J61SjS;˦G5<7[/[aû'֜ԇ眎&9 []{\k.,6O_ù<ҹahl6 +)(EYɞbtƚvA)|aM|h0Jɓ;o:+bXb#ԜbH9hl +*v +%ozgIqjz1mPFW3Gd{`eZӑT)΍DNajbX /q:j*(+9Ȭ2JD3t-X<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4C˱ݭ$OsvxږFUgFIwRn#iC4Y؜.}#$Zgfw? n4|տCweG1k4Uuy3 )'S8)=kcl(]7Ÿw;TEYOJz̺ ++_ޑ jBGw{ɾRnV7WN ]ܫLjבAgTOiý}_u~\'βxJWIȒ3nw^ SexYf!_4Y_If?i3XuT#WVfr8g75EuUږli\uS* yH(:) + ]oS6WA9H)^ݵ ^gjvfVi k-g]frXެdw"˭NY45XeG;n27y,CAQYi,Cɒit|ѧzBM572$F׬8/N^SjuQg^jus*dիyJVh2Ԯl-w7egǾu UnL#Be8rT#:Q15FŴ[;+V`m;,'DS n{ؓw95YQ|̎Yv3!aIfCaOe3Y쾎ګt|rii3;#">: +bk*s~t*Fٌj6um֘Tԩ!?gyBES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb *Fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaleXhaf.%G,ϑd%͐ͥ*IV&*FI;?B+]tob'c*ZN6?h0}26WVWzX8HDa"BM0<|0 ,\`Bb!\ !`a"B*4D4HD| a၂L@|Ņ"(,@ $$$@p` !0.0l0` !4@0LX<8` Ppx`*@&,T + ,0  X\`DHp@aAT +0 p< ($Bb``BDðaA‚ ,0.\XHX0B×ό  H?<,0Ѱ@!XP`1၃}Pҟ @p-yxX`P"$&&Fd0b*! "0@pHcpx`  DDj@""D$xxX U`!a 6  ,XH5u|Yqh,"NiTno],s.49KNnDLJ94+:e}Z2CXDq ̛zM X ތp|v9?Qr[y#?Ԥa ASMEN.e4\Lb<):.yc&ӔǨffGWc`ZY#Gk]8fVY(wi\DjbTYӌ,=9#6}wZoOχGq甹W18IW;RmXȊZiH~b#44$eVU61~2KZUs_NJ]G'r˗uƦllGfMh4EtݳcMt}N)u覒u<]3xC)fy^7lP%VNvGA)eeG$ב>d-oyэ")hH5E%C8U>S4b\?Q5`Rc&9K"Vh}kvg)jIˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRɺf8t tr ]&e +ALj3*QiISЭLO"O96s͢;L&˒\.9Whڭ0v^>CbUM1j&2+(f:p%vU *&Ӓ#Uh>lp-k<AIn]~JXWڙR  my>&e&+sF-3rgMQBѕl6h#5ᯟdH-2Ca⫀tIXn. )'sۧ^ 5#43DVVܮ;$de{ tRrU&oQ'ߨFo~zT%4'2RօGԏ)2jl7Zi) #tԈJg:E;}2+oʜ;r.CKN5> Rmxe*y#ᨳ92ʚbLj賢TdV1DF.7sWY +MQh*X3swx * +ƺP$|eOfު\]e3vB#b +m9uЬ{_=,1mƣCtttX]>չE&dŠ9:LTؑF3W=ΪJ(sl}Iʨ:^R1 S܋<2 wc&Gpa(y2Ic篲KT-,R5Dx!Zt9EYFe}` _Wkm^(Hbq6;ǢYcOw͙=1w sԱ)8 BNe m(ʣLiPl;qY ~/v% ݪSe#>ʝ"GE(Q2rJ, 3'O;2[eY1`Q;ߜ0'H#S8@`eJ^>ns9H6DBvsFS“h`S! 8p\1)bH]{jȰ25g pZ+.;\b||YlSU_998*3`(1 +|"rt_IF?}K0^EK rU! 8M76ns魛|cZ4cD qhw7 " S:dci*;u#d7w/WCa[˝Hfr&ťdZ!U-KբKJC3L[Z\*{L}OaKI\eIzv-Hc6VD]vVAqED:q޲ +\|^&gM[T`|5NO7C&J6e͎'C2(*xl;3|ZqQ9"dW_v(RC0^&.e:<5)r3n@!Nµ$ e8M̆T]#m~YRXb6WS[@.ͺ5lF(af;)5Dm}E 6/4Ԋb4tH$duB9@:qDl˿Pƺڹl4PO@F^vJxo&Ķb/҂07V6{I U½J5ٛA^%yvRغ +¯,* |ۍ +T]GM_8ews433lcR&PMml(b2pqN<`,CHN*PBDhkt(Kd$sTs0̈́װ3Rn)Ƞ-9U.-2mcvv7?qhw,Q6ʕ=~[:Ƣt-B?4ۊܚcxR|߳WrkR˔ﲩ~0<+>PL*AK\Z!U38l=+ +ZO2iQ5SWpbp(zX<Ӣ/i@_CLEFq]>Jʌd|Kͱ/FFb{΋nV0Ty?hI;s<3#|r>׷'_ .̈́>S. /Q^Zg\PJ=݌h8DZ%=@xIOAN`LV3#f8@Ldz mnRM_թN"r)9aqLo/) +),khп0'$" HF{ T0DA݋tmEoQLfQ7W'~;,I`4'3$MvjzPh gDTд UBng1Eʱ{&dx&'-枌XuR6@m(iwō{8zPc! + ̱  eXr/,,+q 4O!cҍ/ ;\Q/ +uPy`*:ͺu"otBs0~`@Ʃtic&PY5z2?~vbΡ뎥WB 88Y"7)-Yt$kzDB}/ΣsQ"}F +Tk%x2]5nxnR;V3DMa}3B.ׇ>R,w/F<1EJ)?O֡ ItЁW"Use*0%;[fMWaDFӂ}I/jJhҔ}djA[eFlqZz$Ji,Vm5t}2 +?(N(|hH-8Tu%Sp\{-%<7H ?P;,XY{7qj]łj` n:_mQseʜɛ4|w̡h\-dZs_6Ax=Sƨ qj̷"oSTAŸ⪌ 3P[={D3`n*ɬMҠΞ":̕`Aηo&6(lR]fnҝr=N'Ů`~u0ǤB:m!a4[(^dvmUV~^^+ٻ[IYd-{CwVmX0͓ls|/-F"X|K )0xT_RZ3Bjz"iئ*R, +DIsau 76; YF w}fO ~װ?x1rTsD Ȇ +o&F Wx ],TҋqK??)ĵݙL*C)k sKTYsK'u*frSR&ဤr⫎'Q+rH{w +?J sDž^pnĭ$1E @6 M*p +3Wm Wzʯ ]el_ϨxۃGńnOggmtdԩaf"g'VA@-Mq+B5fCBU:L WH%ڲ۲rAq$ЮHT9n7џc{St A6fU$F s?G..H\) ̼P(\H[n*?IV4d; z;{ԭ\ L8yX1܊/My&V=cVA@ +Sk!4N,ш1"Ss E8[xN{d` AELj V(12 o؈#8bODJ^TL{5 +-y*SN} .9Nj\\x\ID$V$):Q+L0-GրẨr{;WD][`X扅j(и[T= BBal3=.:Kչs7)m,ƷQ_mzR۫\r6a8ZF-0Wx P*Evp55unmx$! ͔XhÓ}up9Fޙ}3 qT_5>,!"l'jD 'K]!}V?(w/[aHQc8z%1 +WEV&) {TG2ߘxyROI'topJa)`?)bX4WZT1Q͇tmʚ G\īZtX"V TwӊZQ}s1i7^<]3~FH\L4*{>١2JjoһD~p$__R'EĖR=bJ+bF #Fu [wnϟskk0QᔒҢ6|q +DBAI_C3d%BK8{ɟG9?]VH0 wk&qN1Sf$ +C!QnIa4dpIߛZa?' 1d9$ +7(j\#ȾxvQ TT*5 Lv/8DOi5jv! TuW ~~0j/u},G݄JP`~MXn 4֚BZVi#%񛌒)h_R`(8S_иo_)ݚ2϶jПhcJ!ބAoAY',Sc/\@-JgEšSt Rhdvl`A[-nǭ /@A;H/Hx}z;r7>"ak NvcƧvAD9E\/aB*dC\ XoDr$t,!0 MFe~ten>jTBSNURG+!) kq@Nx ]Z~/MĒF'~V +ҩ9/JeY; BbB?0a[l;8R(,B+2%`77@HKˁ +;D%}P$nfד ]$HPU"9yQ`:> vk0.&:H .d+wXVv'CǯGQ&E(M,p>BКab4Y"F|?r,G6GtJrG [䅳/ /Mc1H!a0 Ly 6*dBkBa6`XSӝb8a70!+uar41ѹ5컐43@Ȝw[hs򿨓@H&X!]{5|q8eFcj'rdE)…˦K7>z3zE=q(y@{9% ;I2V.`Xp6oq^޴n'rdvف3EG@3<^B4T_=B2䣋 M_牨g F܀CNQ@ΓVl:dƽdh9D>~r!?ڼH*4,ݍAQs La+C1hz=bA1&(N9ab*J:_syZx;VdIV're) HI(]U vMWI7^Z",%@x@/?V+lʱ$22"pp~!ݳ^mfGw/!J1pAO5m+f@"J`?vO/Ubw)_h)XjvճQ>$#I4 +#>,Jri,e H(IsCTS7}Ύ)iP`JǝFJs=5(uįҞ[]f'&'7W2cZfB1X{F5}^.jZdU ߹HHde@n'uHw9a1zC, ~B*DcfØAA7gxXɖHI*?ۖ֔dDke5V-۰r҈i3d=![ `u&v T><Y +@= @($Y^.&z@p +;0Zeq]*Dhu4/<W4I iXLʶT9c5܅`Of(K. nb0=m!&"%HfvQ w=kJoЭN=t\laS;ޟ(pwcs[ˌ]!^0>z EH nJǘݴ{hB9DG#9<$ىGxU&AL*>>5 8~+ +s9oPGoVz&10x 3\ Z/DiGi5nXXΚl'?%Ʈa):ƕIL!ÖUi,$cU/R>*Qk.'#!nu]gٿF'PD{6X99.\HI+,OtLH[-p8ftyJV(G1E)а_{RKfH!k +mnCS)YJFCI4+ rL*c7?8O;faA*rBQux~9XI|Z2~̬+Y$:g/ BvZ"fT|,1Uhωֶ?pq^b9guGrm`WJr +HrIPdȡ蚪¬i"-"CEɀ=8Mٰu,(eЮۆBtl}BK'CXg);Jj#.X0Bi󡕀WMYnIkbCs[u-#%C5F}'u%|]<&!WHPF-yŀc0rvIkLv}6;!Cb5t1 A@d65?czK%+*D.N3f|R!w< `m5Y\5T٢dpE[DlEMu6I>*5GF|w[@-\!8{.b&"l"7?6MXyz +ۄ. +ItWCqIĖ~ Yu(Fq|X䛢"wظ] ?UxYhw-([R ޛ̪Ȯ,qc/N#3\o%\Ve~l/%%:ٸ.+6QSG[$4_ b/P q|@ć/T[lN$ n{EǺ)"FRL@.)ƤuvITkFߧ TP bs =0Q4JKb\ hZ?xt#~G|0'pgPNZQ(ŏlbm.TίbJ H&0-=MW"5tv%EDT:HcqI lچ@Jҧ[8p"~Y RF`_mxdЦ9O&$pûm/Li)}֖'i$:I$ݰJ +Fj&ֈδ1^TRS1O`GȲ;&TV tˁ=QQ䤹ψ#hn䛉a~qf'!akm(g #GO~>N8.G/ԙ'}[(T E0yd\^U['0s$p#d7K* 77,+$uX*_V dZ&  $/bLuc@XWҙ0k@ٔ`@COGdv jc8K]\|0rxf 0b$!{C#R؛ GdjA$2`w:a_o++Gh6qtTHeGB=9+ ͂|s#A[ .=rz!o-8yZ0f=),"ŔVF5Eb^%RHR)v6E)T:PGZ`jox +H Jx|@kuZ5iYko9؊CvuN`6zhrtkcqE/պreNNgR2'9FPqioᇸpM0%) PNO9s@ H(UqgY +0T gܐ ̻|3> Y49~H1Sע6Ce KxZTP&"#]:,eUE3 f ΈfUU~!,kr@*?,U2@ kNR%ڄ.F/} Bk%AXi4Y@4䔤 J(U9"KJNj8RTQ. h1'Qm> <@Ao/fIu\APhaa4PhяOvc1<Ӌ2D|-CV`'Ȇ6y@).m2W:cRxX!84Qf5<[il͂DNT~F):n>{H&ڬo{Z7:f\~LFHl? =C kvbM]UXvjE%2^y\vgO9rRƎXJH]&ZvEZD P'TSu_W#7aI6YE7,] )iWRR #7+03>b2л8&E4M3C;2<B9s~am(|@y%sx +23"uK=3o/P +%Jv@oߊ6ds[HP7?gќwc)h4`ՓĦj㉢@ .COl0-fN)3`auDj֌{O(fB6{]kieC2SBTi;n0@}*٭nif$*gE-`\d L Dez*5w5.a@-&N:# p%О$0/7-E []6JJɶ֨ukʽtf:H\A5O'0b;'}=zv_o}{JBaڬ =Il 6ڎ ;kA' pcz=-C*PaAǮl\qFY9Z cE!^H>fvL2锦?I*G-׸e6̩@ZܕiVN[Ј-)H x!2d+ Pjה?(*a Mi$,ǔS>J/䣝uZ\D-0:! 2:9<ޔ͘t53:@d(S*{BJ _]A]]6,֫8j%W_FPtOAhN2Z"wk%4rBG!<`#?Fngꂟ7x}"M)l./o_v816™w3'=>xL^5QEE.XXʄBC-߻%gӹu887_`P򝠐޹1&MV00=':mT\8xg'>Jɞ<n l! \Ag%_ce{JIj]cӳItaʼgS&;ݖo{Umo5yC`~cQAh;E kJk*(=4sk$Bs.~J3DaqCזs {.u-֧9$0Ob,5lb!ǒ4mm>w߄+:XfJ~Ya8CFO・^Y럥iĹa vw*TaD&jK\$ew3b,dt v1ZKiNJU|{P)pc%Zn«cy<ֵ>~Ưg^1? |EBɉ`D_\ ",m~⒋;e@[hgؤHiуR= 9F/q)`v)XIZQ-ve\HeK9JGT'!(X1;wltF&Jt~{'驙s`Y 1a4fI|ˆ)ōՑ$09d +?H+c~KjI]Aƅ57hP#'iWi/O送m9*FLQCs{V88.<*xb̶WZu!>Kbpo_Q%үA*y891ٍ8BAuO2$׻0EN@~ث(=$ߤ5iWxpG}u9(rB,?DHqeH!A#m_%v##FV:g`Y2<>rJ۸_6cilgP&w Q_2Z{CK&<0?YTBmJ !wP>ZHAKQBJv ++īr_mX#-cjĀ/'n5 ]RӆѰdϋ+ *mrˑɃC~q* +qΓDC~,U0lx5ynGie.uSO ^ Ckz_8ω!|Z6a:8cWt$JUuLK__nB3`h;@U.!6 4`h~]쿙\tN%l61 +{0Q01YojWTZY>|r,#d?]RD]~,*؟I_Mpeq}#g?d$+IaI՛APiI*`XU0a{Vouҍ0"l zsoCl)]xjTx.Xx pe0a"M꼪,a C&Xb8?ۜ\y6ڴQ >X'wRJi\8ˮ#G3ɬ] 3~dL\6~,aIRjǤ_VhlS8:8o(=t5B\,2#\R ?{ b|6ܧ6I/գL!+g-n9WxS\ib!wWӈASw)`" ڙ+ި*+C!~NWihG8VbQǛ(|tF8F(=ò+Xh)A^h3֔|8`AA GUZ g*hy[yH . Ю0(Jo9FEEB`hdTخT_E7e5w u 7Mh),6CQ59 1s֑>I[oK>#ᄈ:0"H٭8jHd1$Цya3H-#nTAETQh*> +ݣG"+49ɼaH#St~$VWzH +',l>zrlP΁?.k{r'1M|oaUVо#[-mؿpoi~c|I*v/(!k7C=|aiBUͿҳJ51$ю`e.-y?q/ȢաQA5bQꪘ8@00/L\}zu=n~9Cg;N?G7$(X<3mD vc0XʚGIfA 4%Q BmğwG "G*XjaɁHmiV$fJ3L+jmkzi;= HSMd{D5LmhC}R Fl', +8rCKJ]*ٯS%!NN S0 UziXsqu\;cפ܃j/jClo_SE h78iWO<ۚA8/?`J9d@@#&!1o~\OiT'a,r EHŷx|A=|>SCVu88'dMN-^Ԏ nrG`jb S[FD3M%s:Rہ./23E%k4e*0h+hɷ(KfNs̈'-yS#\9*b$مGk?J }//i(,ؐiMh|q*Ukdwenp{tXw=O[\ j0!l+^u1Υ4ŏ&g-tBu* 2fppYʫXz9 xJ@UNW +h0,)lSѕ>SPpJ0*Z[ZM3݇X5bKHgy&^ -I7ȃaD1.D KA@#H9\;0I +"5AV&D~q(QӠ7X jHK$nX؀b2~] +B'n'v"2&VW uG_x=|?om_hx8#@]Mh #^D(]_HfPrsFƨ7n ĖR/}@n V >2>C2mi4./U۠߁Y懧/`S/2 +ODHM1VK&orbUP7kƩ^ 6@Ru:YcL2yut0J:mu2Ǥ @`^b B?m O8?[ rbS`)r- tJMI`n͝lP3 σ.|%G6#N4].5$-JEs&\u.K]rƖi)a|G0Z%3$&jNx< UJ5V|h_Q*k nqUy3:}"Bm1f^ Cǡq˙)m6 'j0X}I꽃9'zͼ$K>\1HZ_v{\2#>c,),⃶{G+$4IXl9FbR@Α +[(ヤHan}4Nx4Km̑E }nJwmū{k2jm+.qxl1 E͖iXlQO6r/b \$9G[xjSfCe>Aaz#D" 9( 1Pw#Y  zT3w(OV +B&9 ѡD$٪+?Wv飞S,E\n.v)+u'{JQYe sȨK/>àT΋AԲCl<rY,?Ѧ.{Ft1Mr) %p>֊a)Ц)=l.IO?Xm9dA?5@ [ MRLiĂT >f0C +- " ?B޿0L+jT9]ˈe#m+FW(g(6լFY6/8yxHE  >D'FEMo͋͊>_ƭӥt A`^M9#'5}9|U9ޥ9_Xz+݈bU'A]U<5M>/6i.L|- JsڹNpj[*-l5$-A?OK5VOנ[HA8RyH< &Ry`r)9!Y)=JNQx\81D攕J=`fY+Y/x楜5 +a¤w<[^ZGITaT>[_`,^Ț-Sj.GG|ax\^J%Ny8z<-94yԇ, {xDoK= +rc)3`HޜxVq$៊Xţn;2m~%ZOrB:7&Bc5R$ !W] q35w`v{Ep*1n*}:BXC=vQ/6 ITzvSs{YQ@5iLC33JM'r+D໬  RM\:  `-Kʩg)owg)Yk FUL$D{I#b[IfK+PI]B1#|\fy/R Wod㖆#]X QKRFS^<1ViEˠ,aC:lʧ I +݅oh}V +ܠ h}щ9nCVw`KS0\WQW&eg7چ" aT#rF*għ)У%3{ ̛jCK!F@[hW0w6(ǧ?J~ ӣ& +*,9+)9 cb@24„A??Ku GٵM ^۔Wd =,@`kdT G&JqO]#<`!ى=Zbee$bu[;p_B; ~QTb91i\ D^[L5=/0} :II}ϊi'q-BN9`KLL.<P@d7\?ٜѐͪ"KE8<޼$tO|pz}P&#tP8׫PHEf{QTѥUi* -l!Dg+qh-[}#4h"BUl4a8?U!wOqPxe$>1 7 +Dǃh +51`YmsVqYkTduKR}? 3R$V}a^QhB`YmhAT Pf*Ig6 3 ' `4plt瀥w0:QG;07s[* q; z}P-RP`q +Y6;%7AU?Jܧ沀5@\}"$ 6x{.39v\yr3,# yD +)Ș0X%f!, j?o#O27`cTgg\}K k=rGzJycl<\(<8!v6 $+XQl2rEC )JM!7-qP1-ITP'2Cx 2µj\ԚߧZcM*\DŽ!?|'!qϓCqB*2@,0!!yd K7p4 P]mEX}+!TX 4Z8 p|?,`ļ\תVTX.H.؜0Ah1 + @a?*uOʀ "RTi"9^hr2uj (nŢ@7Pn$hu98o8Mr\p| G3ro#vIOI^ P&q)l ;f2$ +4)C3W-ƪ/Q)H80e4J. -WP>:X~N@)%N>2zT Bdyɗ\ r$[ZIqNE1|6㶗"c"#dA#KC%r6u##"HIC.*~@P\Ig"k\$< R;v!:]/ UrY)]"034 /%.jA-:P"&X:5`Gs Wy<_WiY>VA̠R|+@4Ty}\h]'n(q@^2^z$YxW< +?1OGfˀd+3r먧nTO8b,] <Pw\ޔuN! Y]ML F&߱JB*RqܲP@Eݓ*slIp #p<^LMqY@Cxa pxm $#2#P#Efć|S[r,yBu@@|]DA@^KJCf,򕐦^f.Zkh)ElC[-> mZrkZb䱚"σ4ƪR5. g!F~EsZM^_e_6rP^kLBZD޳|x. ܊ϣK5U /ǢS/iNA7r7F6Gޓsw_ n{9\a/-(00X2sYV*!<_VoO롳AHDz%zlK~"a}H$IWc@D%zWe}g~,Fw$xzмk_Oj{c #{Mg͓'`XN=$JJI|k:c+/cy?.,Hӕ,-L 39zY^Զi戽/a"a*43$U[XyWFX79 %@h,J=Y\mE*ƔBdA'Xe 6/w48,"x:ԸYz`3ܵ&Kl,!V&pEUK{P^g!{6S]C~`. ,6a(gCZ)ꂼ`ʉ#Goe2g{( +H独.3/+!M8 [GZ19AkB! b,zI7 +{SL'IJ)iS{Bph<ޏo\(@=J%1 {}<ZXH00(fރU {?Ox.ޟ{?@dv. h{ E 0@;m"<:uե؃=:+tnD#vĔS̐b3J'Y5,q5X(?,^{ +HU`JVX&|ʼn5iXN0|\SZ) o~Mh%GNžp?jjNCVJWKE UH\m lnxF" ! ,h+ kVee[E|+(TVWPZѝHwBϢBj8 ;@"bi5Q nJPq"*{2$qeL ]VD}. KlM*i*BrpY`#mKt8zm"J\|&>FLC1rE¥/\H ̯;$l,,0@NvCCOv,ʩz ++>˜6ᅍ0t?/t# +u=>“,8~3qϬ@Z#76使v. `DcGs|(ʢ +o6i[eB䲀%x`kЙ>x:ḷg,0YXZ,]Kqv _k\ml߱/Dk4!zF߭\;w nsY-VT'GțWʊ*0 Y7hw b`aO-;BwDpp%^ zq6lx(fQ G6 +9' ^}+{`Jb#`UWw<ӏC2'tNΏE,0!K%Oҗ$gE'.9{zތ·,=Bʒ= u. lfdFµObC`tnLя +c ++KU_\ذ TRJ)(qA(xsq%MV3:^1. |~SdN0XDGJo*x6pЈ>̐ekC<#5W֘Kw}gEOL+\:,Uu5bREt N\]zr\?m 嘾Vt)̌zLVw+*+S0 +<z ŒހaFe FA +{MabF YGBKPO([\x>WM ;NdN̰y0>CskRz[&. Ԛ迎f*zY c$օ=LSQu*W'E@^. ($Т\-GVm'wj`\/[l|AȮ<&+1]gE90H%7KdI}4VH_~W-zhGu}w 0ՅXRoJϞJFy}rY%{7!~&'3upZ񋆜q<9'y h2Dv +[q"HrijDMi\ +["(ϧdNZہnd{0Ӆ*==p A'e2.r4DGgs;GSbm 2_JOS[mѐ)\Alh\i}""دn+/Ɖ,$@Q:I Їh~MF_ ZzpY+?$b/)@K: wq3ZG u+y|6G"qSz'F4M,Jh ̨ys*@*GXĭp.k_6L)PK[%Dk1XD-9UH\Ya\ ,Jk0*m)_b~ &\Cdh$  Ibv!F7*cZ'~AЏ2"{,dS3Lx!w@Axz)'Pu0#|%ͿPYqډ"3%M&Sl"_“*<“UYE]ڴq~ q,ʢB-/46 +N[0hDjEI0Nʝ:= *wbt%x\sM 'V}/m@=  ҎuW@jgG̓ /;dֆa6\w@K}Evg\7u۰뮯6m g;H$CF$lmG*D1qҗ!it) iHgbW.QS}p4f'meeeo2&˸VF[Q_HeϜ#7iB]IX"w=9 ~]v0q08ashukZV]YUO1wj! \HwRJ*cT|_wv5zm)LAg8R;WAe2XaAJ:.Tj?( L}40R쀝u\ CSmBI3hRg>nXq͠y3p2:IeEYtQD9ڥ%Kt4p=\n\>KHߦ_kߊoEXS~&FFg_}y^&7h'ډo76Gv +c!=TߊzHCVx(IĊ42C|Sc4"('0.L¸0M%ox1\f)@lU“Iu';N%5/Œ L!sY`{ DYR%\ p6qr6mziSo|/m489ߊ fEAg`}U ](VA`A +SF;_yyԬILvlY _+V'լh%4:};`0; CRf(:<ӷ=?F0eTrYsMH1C,3(ó6ջ .X!n}h#;}ww"MBh\CIZ1͇GDTX|N>fYq&eL Xu>v1Y[r6APx -8+λ ])9}}!NP|:IO?ĜTϒԬ(gHy\f@霗xn;z̢'r>&n|Mxw/ O28a($y!u"K.e_`PȦzhClzWv:DL !D Im(툗Q5:C;"q)aJYbP҈ˮԆaCm숈f' lC1vC 0V}efHE8lpR +?[יH?$Mhz}I) ʑp1^0W5N[e1TVҍaU$GCƦW08.pLrYLySh-4wT.@NjY1!fuYm%16`?t+#~-t83WΘZ1|lEEH ghyKUx~QxU F槌SqYt,Y. pY࿼.%eטяz[)}IϦ/AѯXQݣ/KG}bB. d:.ߴ!&SsSgP_50$UQ H@aU'eAz. JLt%O@"J)n C%\8HF+. -Ί%{&-ҳ4~Cл.81z,wx&+(=\ḌƷ 9.m$qBpuJsByaTVAmP`.e^=-,94ӟ^S:6r_rdmWEz0-oHWW !e4T<󩷸L\Inn(& @!}[Pnq/C[4dRzݟ/dgfp!9)ҹ B{`itr㷹Dcv~e@D@1DhX^(7@qٟ5]P(OJ\a}P#CpYDhVt\ ̫Vp`.`FB@IHj8b +4:P^[/'¡"sY7)RYQȯ)RYN:.ե\&5+hڄk9YB+,7嬝r`t + +1A3#d~VٙAsL2eԒҔ@v`@AZ޼QcŤl̿Ѭa3Mc:!q).6K-Kj$M=IwtH# +oxb,9FKm~& QY1I.!A!}b33z:Z]4bʮgLk{ pA!ZHC_j~OpۼMdRiOȧ$_dPטu4G8s?:ƍm" :`hRzAL_.  FJCb^pfn +sxG@kY1Iq6uQ, rW%RH, q*ɛV4!D<.2J( aLw_ {䲀ր2&]IŸimbjU@Ξ*EE JQL[%D܂ω HC-W .wepN9yT+L +z x92lZo$#RD +|‡K]V)r#(q߫> %QYt|b_eFEt+b4QW$B ׅ>ĎئP]Q i19!&}XJ }eCf~Lc>/ZX!}T}ZE~!äATTEP bRA>XDYc=1/#3*7v4/KzEu,ШK;'DorĤSuiLׄSD/KD+Y>.تF +21\&/`.T tJ6hm=In_()%ѣJ:tܰ5`f;ӗbmz|)VQy,1}ӌ}B_8qm\zrg?("F'e2x'1I +3~]t.O-VUН#K"2 VI L^ gCwQ_ 40baճ C4*F \H)*,& }yI"1p%4N85*aumt2 + 74Md @ %|k6"B:T,4(40aH,9 (b9HW29e4o;ԑ&*'F ['= 9E?MC8^hoųx]oIJXK*k4U7df qKJ@V&S+Sئv- HG>H"6Dғa!,Z +|oum%D<dv$͢G#Gobìm$#xReDy#wVm̪V_*x ۜʩ&cN&Ur66ݯK 0۸݁w`ST%`捎XDZt.um/ +XT4pCj3AfM˚+۬Ih% m%q(CpܞBUPɨFhSQΩzyHirc r;rRC%|\bvFH5'⾷OQR?LxDpg*%>5bLS6hG=vU2O%RM.%(;\:m{= UǼ($\LE$-w4EW*A_s 'tTq4}˒K厀̴H I[K"n-r$ϋLx!a\[4{A`mwy =jNf !p•q=DZ!ڲA й>r`6Cۦ>lې=YCe盰+d$ށn:B^%<4MD7֭:c/'0(^x>J#kw_ Wf=ܫU:p*IH4|cD90}n1e:$JjυCR뮂GR]ԄB x:[8`w&WvjS6r(+SP4prN*f|)}LB[(x}qV?]0u!̤EEJz XǻG]*C\.Ҋ{qW"Qѧ ۍnY̩kbFarJ$@ 7v1odpb\1{) ϩ M 匭$|fEo'~} kMԜNɗZ@_zE#鯞LbSȤW#@ ޹丫 +E/`憓@fغa~p8"8;@L R[G@7@c +`^cHL@=3J**-khY;D{~͚&Nڔz18^H9gp ~vʕ[ ~!+?4R@ 󼰥iceF/}|;">%w`8@X?e͙ߚ]z%WrbCxR%wMU.:>`D +9o9!]INal{ArL^n$+zk, K~ 9m%Ya0z]a0  yA7KBjq 0~PfGqZ`{{׍uDA.&w7NMMjp[v@n/ס$e5o>euL8>t5%L ݸ\cɧEpy1|;#zM_>9i85+3Rz/fkA:V*"mY0w%LrzvT?K]n+ ܻ +8i/~A֤(sGsLQhfVcধ כb0Np妫o.X٦I1=x9R,4XU~[r}~*$~58}lI3% V+UZ+rѣ! ca1@&4s[B.Y%_]@H܁47-( ++וfLjfn0C4XrvCF[n!?(ȑI]!bBe>:)'| ~+C99To#L3pK30~2]*Vk 4Z0JS"u1a8&Ӷ"uX1jH-i P Dz˦-?齉כB$-߉4vԧ@D]ECGZǛX%v͂+k6R|#gy |+VkQ{Fp!#2isM&0L@ʛ};@{eŚ||pkp$xb.V#2[iK8WBjN6F^cWiQ4tc5b8cރ(t[aQ1!Ek_;15Ä`EPe" )|QgfyUFoi1+;~}pRޜqW&#4A]mw inK|?kz+8P F% +#766ВPj1]|}6+jz$L Ye'H]}2z;[~ɫ)'25E'u[6؛g7yj{G-럭ap}9dcUy7q^0YIT[h=d'qFf!i4 \mPȥ'UKB\~G꽞'FO%ϪP ,s*euʆk ?gy7bG j/) ,wFh UMŀHC1pplf0y~cWE66Id]ruŚm1 plԢxZ! @mTy?nn!Ko=u>GMħ }3ЦS7xM5<ЊL)tD6rÌ{Db-؏ +Bq [%Jhf^#DU]kp ґMsle,A., }37I/w#0c ,hxOݼi'ԻT8"=e*{H:A;")L)vڏQmQP씱xDLS8$jP5]m8U H\isŋ$\Si89\g$︰ØJ$g?4TV#/Pץ!1 ;V3ƺ>9fdQd$"n `ٴcot`UH߀tN}Q19k9ԞG hغ\B'Mc#%J9MyR!dGaATL>x#*2BlaKc'w|#C"9׿ɈP|w_Z,d0yL?7}*cKe` ޹0ݕk`ÞC xop!UV fF| yaC)3j|3Hz,hLLSc;5A[ ,_!ҰWp尿6\xf2`D8FG;3K\w21 lTBb* (Сbg:TMj (U/! [ˡ\eP@N)ELh^!%JrN28g8;ZG?HAE1p*y+0%v3O$O}[M zmQ̀O^4VqٿU B1( +D8|5K(=`'l1-aE6wi?g.g%N).Znя|[bnCN1ϔmKEizBn&wKR2O~gq9[| NWx3AF2.SY3abYg;GTx;ä}c-`|p-?tڡcE ~ Uڸ̐Hxw&킋aB^]lv)Ӻ_><eu%8 aL ®> pmHz]=fAukHlŞ@V4FR5Eqn1oC,ٮ @ZVxdgIt)hlfkhOztsh.H{~qh/.O +aGИ𰄓nuiWccvnl{9'!he~W椇VZjVK9vB>s"#ex@%Rg'B/]<8ފw<;[IR:9,11T2&=8Iv/; CxY1e{:mI}y4J(,'fZNtAK5xIYZDgtk˂R̢gT^`"Q Na)4#ēlA"P3Ifv(O2Ngqռ<eu43 +Z2>БJW?@]T&>+vڱ氵/E5ڋ[Ea~qsܝg/`r BjRܙR e2ÉvѩEc2k* +wVH4# n9 GK׫EE:zƶ^H4f&%b6&JĒ0QM&/%:uiV- >Dž6)Yծ'mr۬)2pgB{uvs6cωW~%% M6y&~j|&TGZ,qg}G%p) { +ZR'iCԮ gD6ąB x{<# 3 ۞N=D wȔN=m[|'Ƀn g1йKt۪wҲ +ut ?K !uSa6^Ry*MDOL5Ȱ\>o5ɔRw}TS!jEb>m]9"4FQ`s%{ȗm#K t&;OU̿>(x쉮WWY^Ԑ?wܖedM}Ȓ|i0,שLr`CYJ"jيOVmʂY:ˎ3c  }|l} : +֕ʿ6 3 ۦXJS`'IKF/ . v\+#9F:%Ӊ#lF g?wovI +Q9sp2Wf(C+.ji dY5yTNkQOZK$$emEKH:z"nh%.Gزr;Nmz(&I_!ަK"'Va TvR)K+t]1Fbh4'-k|Ǽ:nO^ܬIN[ FsK7R6e8sGH],Qz=Uo_iLF6rTžm ghD<:EX=՚Οv0;GG(u/W)$dEl&cw-tE;\4UH:(&@:PNWA#|K(3([O,cn|䙃9 SpX.2vc ¡ :5Ѧ,XY;aﯽe&'we /%B)C3 x{L|quby~/pðK +sg_h a ˙RkĺR$_ͤRt,u;".ݳ7Az, t`<ѬjO2뇈 # DtlTD [UP²FĤ@P[cjh$3pJ7`07JFZ9@ +M{q}¬Fovh,~ ~8o -c%E?"KEn(MY̟B&bKI(zr.tGL`u}rBW)~2/*7g) AR]_+'c Y2"3qN7: n;& n7MX=),Xȏ𞚒4GE? 0>^=20w\8CJDt#KԾ) m)=hةBL֚#9Z6ijVgnŹ4G~%gܱjCS~rHSSClTbS8Q;:bm ,2,@r1u$-udIS)h+4u<ʇW>&^%e. QKMXZAY?0P+s:`̬v_ 4cH_,u5jKv>;x'}\8A7aJ嚞x{*<,ԍa`#x6D ljEd~JPؽB9*o=/<⺳ɤ/6&)Zk#_ ex?Fzf k[;E% DH+ɊTP.ly[Б GXq)GG@9,k,Q4ritbYSmuL[y篆#Bo|۔;pCz)i5O<*hPJBܥqp9p!W:~C/]\ e`Zz' gvJ _os@ + +ut41%[|PoZ>O9o5wF0K#i`0&Z=L!BlاRLaayYkʴFu +)N(˓+UlTF`L~lVVf]|)*^ݑ *e6X1 y>Lk"t?n힕f#]s4-nh$vqLYȕ¨c1̓T}3t<ؐZP 3RjV3cA)Di+I+Q&_^}gk;cݡ<>h-, P5G#̖ZWx'ZiVC#b˖e4ePVFw"=\.5 p/ ?풔T6DeࣛhJOjk +AFqq˚[i+ 3P]^4Y]&a`Z0o8zӡӺet:+N~\.hV nvf8_(&}k&yhE3dt(pZh]Ve`Ӌ3S&ў!m`M\ƁFd^*]aӴKFsysV*ɋWn&T.UVKO2:P~!^4tpZF{ahaCqh异n>crZǕy2*N$ -uu#ʋnR%_~5C/ 16\ 6|83цaDärsGE5p3jܡQb6\ap=4?-N +˶2ԧm'G@W1D*(Yo_3|43y]>0W͘i$!`uIap?ZTmWcY0"q!u뱍g)F/ؗ lSӃX$t@{ mO}4|%5PJcG*र6$H$LO[& w`Bj~`L@,|欇916 ר*c!$/qxSxkv[.ǙA} &5sidԑ=JN*j?ZA0_D ٻC5YDs +Fhcü:EIF'zU,_8bF7}z; Tu<^"Ĵs qcO|b"+ޛO-'ΈID'1I.9% u.,V^xu$~G-K`gMrDFjQDz jse}')t'P-_g-b|mmMs/)Wи?@TJ8aǫX#6RNܬrNdr8t?n@> +qv )+;K_GQH'PѾJb0*'\o? +9E)ɓ` 6;;/ .q>Bx{avke>H8F{id|Cu.LšxS0q?ZD.3z,]o'uYUj['TfvpdBU})$tma73$sVF<++u~9`rf`ؖP1ox'K姸$[1 ΅OE3"ү4gd-[s~3&U u +_vVKZCdq>a$y%M!AgS@WP}-P~GCoSzK,\c3A?>m앓iCamE,2 `xde ^f)V>L|S-q/mt]@O6C_N=_%cV&t*fnҶOSz1= G ^wR'i>~%!CgmDˬ֨yAIǼ> AV};.df]) "(@,*F/ B9514s:C']ywT!̥%7iaV{l]Ǚ D9ykc}|BZ)-Iž8E͙nخ\",ffUw̲Cs_bbl=uȊ#¨LE gvHs ɑm!(ܛN. EZn `3e(XבD<>Ռ|`␏<#KpW;Īյd6czwl6`dWR#|NC&4*u ςFH~6SuIsl4kf8K4y5]%}'0ObjF/G&uT#TRb@QJ|5_ IRXT2Q4*$q\׃e#=_Ziz(mT#!vQ3z]ž` +^b v1OqaCxO8&*Y^]RR? RWd#!Dߡc e^&,! pcv 1 ZA**V&t9#MKC(2A:cz 5Ur(@V (jUfbaUvL s #'u +:Q8Q# t.Tj@0kS, 8(3aֱtv<:h$|_^ X6UR8D6Ğꅮ De@X=0m <=E 6V31_`,nb9#$<[VjT.Q.{^.g H!y}]p|)3{`rZ<]Pcʶ1*HC{i&GqBDzH}[#9HQDK8r$ꄛ,Xg.єYIbjSrb/!ȼ>ƅA 73%3Y +8^}YVJ>֡B3Yw<,li8TܡeQ|V6I}ރ++\2>~Of79D+٤<ʝD Nj(q(4ɰXo^?_h^`ٖzn}=lCXË,0 ߧJ+INmV( +HMs` ZwRF?-0D !ˏ8l\FɝiJ+=ne;I8JFjyE_=ҧ!U qV@ +nSew}h/EJLFS5}f iO /2{u +Qb c õ ;7FԌժ(uf\q_^aڱi*"d ¿c<5뼑\oE3\p5<'wnON_zɹFF.GWi3S>^lFiIޱ<+xF0oICe2U\-`+҆̔%0XQ톿Kca j|DujCλ_;_r5.^ Yr/Ctv>D %O6C{QyG͝I\0N~ ;Q?1uo9Kv< uMv$ 0s7RhRQ-bR AAa2į3)կ9(1=!ƠW'JI[ŁbCCIBc ]Qp&Xz %66G> =58ڢ33{uX>shKhB e{G#8eEpe=0i >9g~Z%ǦwrsϩCsYpr Bo%h;~$%1hYWlCnP-Gl`meU\i;[DT?9Rg%L@uo߀3:>,V!#vЙ?bԈS=d[L%+pv2ѻrb*) |h@Jӳeò4?mzNQ-: S*RtK긨ZAx/|Aiy7EZێ!Cl-$[T=ІԴ#3ަo'zO5k~rfɮ7⏚6W?kk*'99s6H9(d[|΢0!,KGWp\]LJ4hHe eGu6IM>)*tF, . ]tdZ.)xqY& 3IOx-}JD:Q #qc bF,)|KOnJHEcLI  @?◘ˈk|C5\Dra0_$]1\ \ɒim"z +>H_Y=js>;/j}N+Pyuza +/V,ZLװHtCJDAsj B.Ĵڻ <0@!/E׺DI3dq[.bdi wC2~tv,/+օ15()LgJȜ@ː(tDOQݣht$zyBaE;q٧!a+A<mr tiuAdQ,`T |'e8$9CHCn&9IB(9׈ §gDޝ4<<f׆*N !샋z&z gⅳf\|]%UA:5O߰N?Q4Gv0(:h-tĪ ݇1W>P1F !/3gm-tz|v_"D`0D7 *RE*BQQ9i&iǑ %)Fmtg5yPIʊd OHAg5w%,*+ [n-=2]¼ + " ,}̗ "]-M;@i#W:c*#Ki)qbB,p^ >B/Sp`:~TV1m61p0B?ӗs.;BBw@[0}_;>a#tJYyd +/Ѭ:kqgO,A .}F,{ ֻ"t:ߠđ?EbJR4F+\@iH\((X3f dsu #!I)s@(~j*DmQǸ,z/K'MZ^Bȱe %GR97rg~\84F T#t(o3(fơ; !c9 t_@AYP4',e0$I>~&%v) + /{A}0ˆQeҗfKDXjI<5զoCkӗsY\%edDܯREana2:/dJSZT!F^ht\. p6 +6)6A~w֦ @ԓ#PZ||bZj1F_aF'D_)l 6>1tj93JtW;YVg/ O _KLhU+}~F+ +q[E؈PBF $)]#Pν$ vc'Yu}w<[h, +6pS2dbzv]u]7 +#@D\B m)kJtmH;bC| 0]UGp锵ib=̎tF=ʻ" * N}s;:F'Ҁ@!܊.qv. N(\hFs<^{{@@f|^4|NR/TЄcsc8"7\A2깣YMIaEq?F^SܹT; >ݼ 8⦆ ƨk_<8SB(o&"{AG;ma ~ckeăAD^H #S~ft6{ PPaЏk71Hv}A{}n7" ÍϠ h6߫$-~ Z{CpݯRX^_jiRZ1?42]i8.iZ?lerxH8EƵ3@8W~>4}1H~,5W+<-mWd~qe4$&٤XsY<E n8B@vT]Y@"(-_P84! +s{'qWz UXp/q@D#yTӆZ'.`븻RmԢMܠbK+)RJwAh:ﲬӓXmD;+X),zAͭN7J/:'A7#Ҷ8:g?`|(.*̅dE(}f b[B2$ DsuNt!iφ15PU'b⬘эhX_oXw@b"%`{\bgrez9;a)nWXɘzK5B't{+?jlM$0UE;`/p06z +5.+j@7؏W1Ct\?" D 2CWas  <dx H1q/+ް0Ey;D$^+ԉޯz0z S֡Wx39b‰{pS:F)u @5GS,晌F7ꗳ21/Mi?hD?.dm S[:@Ӿrnwa ߞuBs(;oNcuvt= gNwm)?m7BsI喷҉\؝>2ż &Xn=VG| nx%Ļ<[Ɖ.cf^䬲nMH1=7NS& Z/j΂ItW᜛l} _+ 2A%#v鷱ԥtj$^VC4<\V}|}E#Ўx:ڜ +ڨ,|Kw1͖b}NLk#pV@'(I!UWR+Ǫqr7ڔ2e*qɮLS:)w̴2)K}yʨL[eid1!ʴ~Q20顜jü˫gX Po8!U}UݗV7 āb ꫕`BhBrnwMJ \ת"iq"k!-8gQ)lbsaR96 4İOe'i:d M3 pwc@'!h +34j\ygA v>. +2_\`#aVfuh^F;+Bֹh˟x2r!PIANT$YlK U A'0A_tAܔ@c#E}4I[%dJvꬌ~E? EF_)/Vxdm/t 撲1 T}\Cy2kc(k*EDee<,)etu*@:.K4BChuWQG1J~q4> +<ݍJ^kIe3\!JO WҮf>(8 C9hNէ gh?A ԄRf1a#( \#i\thblG +t^t#pAG/Mؚr #$-֧D;t" '`$'ǫ׉ | mii:慞JHe`~UW70(G42yR8ZH1զh8ϸJ( +1 Z 0>ƑS +0"^(0r| +~]k2XM[ڬ:DuKI5SS Ҵ9JҰNYT "~6 BmnXm "n ?Hp2d.<k.)ޒAԕZZns\=# 2t8@ps%S+ζߛTPkoȞyM _GEߛI737y .}9IotIJRͼڛi깐AAqna;H>NE[8:sbo%e͑=7'^Ȕ9_h>"ޜ~ r }t.poX/?O֦ÁZ9E.RhZeTjA[v`9Flno)⵼IޮL!pkDkc]!q(A"O0f@9x3>pw⒕Aw.M_W8hGI&^"7z\(K p_ç7Ƈj:RNU$*%.p64{5_q]rp$]DW3iElFiº6wڪ.Q 2 -!oJ<D8 +L?\bKi9VU[\jo=[ך};SR ُa^A#p ǩ ubM?~36^r!fw.IܵMnpcaF2NS@H1l+` e.yםчi,Js8=Ra0޲nжAR&f.͔&` 1 !3%~NƸ3òH[ X.Bt@|_UU})~_!Զ_Uƾ/%g?̀Ctg;I| OcWj:AUtg9WrlUqE5 +,+>anQπ S5vi2mV-8l^7^hym#b/46% +dDo/$"&"dcI;G@>b8k7$=ih67QRk[ 6LeYCLPd!mVA^0W +aQM(hV3]S 6Eq{zmKſt8(>DzgW@m l_Lޱ^+. z`hL8KZoAP>I][xȺWxRD(o\Zv+]2A-0ٓ[_9D=)nqnK&bj8|PKΘ{)PY_ZTLQuLGrgL>e 8 5 W읒 LC}Y`㢷%*DDlX!:>LHHWv9gS7$3tA5Pkqp틂W0)fтoJG,]IfPI s͐M=x# `aM_V;ņ4ld. UǃO0$Ǎ?8OPڹh;K.\^*IfxPhMh i ^Yփlvt~p.\f^ptGOݷqys.,(<(ܗ)kQV3߇j 5RFlקb0PIvOǎNatUc8sgT5%}JN;&;줚t~'CX7p"58hx_~-e!>IR:HQ251˜|VV^m3bK*NC/([L:t,K~A)t- +endstream endobj 17 0 obj <>stream +mZ] 'Z5bȜF)9O\CK"%5Tdb t`aA" 6J~_> >f_}g7ښ`M C 9%A +"W[ȹO+t:x!:M:8qǒ@& Rz60ŁS QbĜч8>1xsyZ0A^F&Sl}93 5]ĦeY(ҠOd{t$qQhɭ~xJqVSkr&ǔ 55\ _mfi[t-L;{E1ov`rC)kB7R].VN/-f#A pcol~8ز~8.`sYGŔRO3p=ñ!Eđ]5LelrC3}en\a'l&MAn,Fdg\ +[yP6^~auafGhɿ x}!łECZKӡ?F+-7ឹC];8P4zCB >CR:@ߡv};KmZF=^v`TgSW]?SP!BN!ZĴi,L/??L . 8>9 HVg"1Ȏ[ ImFҀ=g)M=,ǶD6= a-Z:|bH6 +_+`' piK3NƇ:MLZw^n.!QݣB^^¸$3C{U@xQpH_'<SZoq=g23`J?MT,xr3%P<mFD-* Q_mms* v7CCb7PBJZ͍͝kkHk[<Xq vnh=<꺶8b+kah~ +oDa+3bOwV`߿"I.W>m\%{9epUЮ?"k:ex $5GN>APk Ա i|:xFP)TK+)'sNwwQЈ(=iBlLZqgxK9JYv'%T)n~ LVU] p=G +ϖ4OGѤ+[7Vx艷_Dm ?*b:fS )$x-~&.* }5^^EÁJk?9D.ߣƁOP΂;wS8Ń<6]N_NǍ;N~"R[z_jɯۚM-JU984c/80^/9\/K{ܿ]菟Zy+%p!qWZg&8#Rw!|uG_Nn;( Q(lhDR"+pN:o?FAݷz|MnoUE[D2ZUUtD +P"VŪʓwS;"YSZ48T_3)Cmѹ򦄨 +JR"Iym&V&E@2N=|N̻ISN4aFDOhv`v7Q/ xFNQA- <{JTL]}=TqZIe+"ŋX,j!#zM$.h[8y.b"I' IP!Ng8.~։zԼs@@0zQ)_4U[I419q)]1WyO99l9+rb8'/,?fئ@{U7KObNĥ4/¤#r#t+4e~BQF\3fc=YਕKOL]\Mk~ugsX~Oj= +ZW-$@Jx3] lghd7M[f4ބ0A;@eCh&bsfLPTt>"p>&ǁaAyDI,a8}0L06ЉhBA`$bb $B&B1qK FD0SDs1`qB"6UXPc܄DcA͇#J?L 5@Gbk?S ST>"‰P" 2@,i`pp%ÁD  +"Y8cZdP||2p t.pb@9(`BなQb0A- + #& )r  + a:$`r +Dž[h^ΣVJe#;Z 1b"1'f3Ṏ M ,V0 PMF`h61 $AOey@,!# ʉR&9.&h@$ct@Qto2 8*!"Eg%"_)t.4!!gCK<( a +h,8:FVV. @  x c 7B!Dr6,tl2MF@$qPtrj ʤ!B$u`P<$Xq08C g$XiCc!Pl)u3sb;yJD0pG +D`!Jgrɋa +`$ Æ r٘ (S0qЄy$ i atPBQ`laFDD"zP9p<R1qAphCXJ$hd:b:,`rȋ upw`i`81oqೀCbr\FL-`b!1hhS!y"B ņ-0/Lr"!!ld,4~倆QLtF8:!#`eB'EJcA + 4 Z>>R<7=J t p t44t(Dl2Ѕ /SE˅DvE6,0Pm d@" OIK|yPyxq0h` ND#*i#b!% .Wpq Q.0RN TLpDL1h.tx/ABPlO ʄGgrp" K`r! B:c + FEnZ>>rh8&!K *#dcir:81a3(!d@> 8&8Iǁs"! <&BJ c"9b4\ ) ,D(ȈHAeH  +O.g5!š"&92 H 'Cz^^8SE t09)A*9HȕIGAK\P*ٰOM.#5ezB(tXt8- 8 a#FG9†〄syMpа X.XP |_lh`0 @$0"e$$xXa +##2@'b &  ©Q"c䞱:tĮ\lH"]BX V $.ӠEE1G‡99 KPX|) kiXSpb +<\<6 ʫlL=Imﵻ{hXјHjqKyZ|[/gf$]o_NҢZ٭mzlf腟lm9$qvzJzƽVogwgW.[y'>+{띖[NVKیig{ޫxR.j>?"w5~1/bpX}3dȠAA2aӟ?*Cx}.q=Wo/NRZri[|_̆|϶+;?1sJ}Z{~)9&)oMRvwe̶ld4"Jok۷фUѲ|YZU^Gg-BK{])MʳW^vWBkjUR1QZsO%5/37Lg3ό&]:oşY˞фٜ[K{'-Q]sK>T3_[hBs:sOR)^W.$>b_ur?+df^|Jf15߷Qݳo4y838; IؓqKύ^f.)n6;zF2L_w<<Ӷ/ %usG:}}oKr{Y:{',ėm5-j=_9׾O P{Ew?BI}&$=7zycݪv]l|}>rKim_~m]Ѭ s)h\HѰXN(hHd4FIwFSEch*hl@p + +;@RK0}H@PB% $\@CI@Ĉ|< <`$a8 tN0XؤaxP BW!U0{)Q>$~)(خ|;6BTQ>Hԑp0ɂ:$ hldAA%C(7{:2@5,: +  t` 2n:RF? <,FQ bFL@.&P*F\@@ B@'dA+0ƇD&! Tm20y,cu/D00S`#z?h$ncJ)ˈ'##F +d!uEHUa^: +tx0ґA#E $!O D6dt*2arۏ]019&ab+0\? StP(l"P8  &saQ.EtБ` +0ݧ#xqXLBYD(m2ðр!Ґ/&0(xل<V*WgygYizmiϥ?wistxշ[zmծX*=g6'6bVNofխ޺XxkhynۇX=IϺg}]9Y梮֕v~&5&k%]:N!JnꙓiˊZ*7sڲ٪t_}խ}9IXh϶vk-fݱy߲nڻhˋؕټyXY||Ǘm{竡ZۻѬH|ʅ85Z.tٌ_9I~iiW-ss%߽6of9nKjvhҡvԷ}jiϥ],e*k?5>c'.'8fvZٍ媍cnNҺ~7bno[f߻9]*;%gIzXlnVxj?Ym>6o7Hz^k٩_.wg4&}ɭ̪.)y^*~\ϹYy~nη߸/q՞>{ciK}ɟvɧ͊WNx؝g渻wm~Vfvۭyx移ZkgӹK֘;Iؖ#&r鱺sg4&}k[{_.d׽_ʎ\w;Izj^umhV;I~W]kӮk[mĊ~8In)"fm=OR;>goc~i~޼kY.]*/z]gգK|Zmyo٧vصe}%O^,粒[ݲU&Kl{<_gc{JٮcysFcדf*5^KZܬ^zmݮʓ׽k"島m1gOږŷ~kfhNP&ts"Lp9 ` JFr!e˂iU][Yg4+j!+ZbR=s>6B^W\ј\m!9YBhLбY\aV.f2gh2TYs6WG:RhBm勵[O.Ӑ'cWov]קd=#7rV.2;jv!+VJKu:mci|+3C]bN#ѕ{g4+mVbFn.mZhL:wTфX{w?WWZn.f+JS vԒ '/]mf}bw1r?x399*뛱GM˜s&eͬڵ_\ڜь?/ѹWdM5O34ysuϺ-߼v~7In}eۿ}{|.y"5k誜јr*Khغ藈ܗ]fnz-$qg)2_1g{ǥ&N)]j y#;cyZg_gk;DzF^|QN3719>sng^6v6rg mU߯|$ƻB s-8듥tsWIm=NKU^D^<6M׺~4m6=D}+[یfu=G9qQ\?\0뾹9Pq3|7Yq];K-tkζ-ӵJYRF(,'˲3wveIYs&OH޶eD|׽c$gEݶ^ls-Q}%U{OƾM2~n޻ ݷmOS|ԶdVM3+^ߕXy-Wz,ef-fT͑tV>68 & qP (( +P31QʿwtGbae?yT zBc=C֙_LFjZ@[؋:n"Xbb9UE tlki{h,䧇J z]xA 4JѢR$(e豶R~[i1Acij|,[l2?l_-bkwS +wFLM:xu軷H#>i۠ISEwl"$>:ma˦MS {h +|?+KtҚ!11dC BX>\$qksZqR ++h &3n9;?-wg8zb61:n̫د-C`2]ʈdB< ,RH[N84px0w)Jկ "@TSjh YqE7NI<;1VЪ 2*-2J0=6k7js C7f?"ODU70.E0^=4tN\t`rl樂 s=K ]I05Osq\]7X?q\ʀb<ET|/5N_gXm*5qCnwd-"хA"&C|h]bXv݈j|n_[2P LWz4e8@7'^AjY~/X `2=me7V fDjQ$(>Ur~hVS:h !sĖ?htVyrMl"RfV#%[op0ཎߪJD CNjIY5l`@Xӳ0qM'5ۅg+:]T~ZZj#!)}3T|HgU,~ $wXl'Tmy%3~*ǙVeem\CYgU?F##B墿Hl 5CNVLh [ykÉ-0+ĝ"9xJ/a\e;3;5$[mlwT4LcON0t}gD؅AۑZH<̓,Fl*cM4-(A"`$c(.acL!H 3n +-ŭ8/g2fs ,Xn6Pk__OFU;⺤>Ѣy7p,ݭ1j<ѐ"gbȕ+(KĴ¼G{Pq %\/dWX("RR |qpwMOZ։%&Q + +0-a=@.SR`D1obfމX~!1IBZ.\.ÔX%s9ԼbmD`:|21{BwTv1V \y<}sT W<zn(w}5Zmč:V5o4ZwxS whrlllC-zJ"uxhA;>X(% IėVO{6/g0C@3XMYBPG9irA$C ̻֣1k|P[1-! x"N13DK6pbR g9nH7-΁n9D"= ";~^G'hT:4JpQ|e*o80:٦ViA+P "(|=YHɰVWz:3-Vo}K0Ԃܯ^z2W5N'-rnАYݞ.UmH^j.i|N-]Q6<5H康mtV%i}Ms5iL.~Vn\7`sxgĪR* +8%>} +2ÿ1(lxKcqSH(fQM EHڪO8wpwR4MKe)j~GqbF䱶n#X I0"ӱ \v BoK YL6RpAnVK{tbqJKuʱQlr ^1yVsقBW"=ʲ.6).H~b=TM%wbm4!dڊم:3+l[E +6) t?]%+dYwM57!~]m^dBKaB5wģ~,Uwavb5Hqf  +|ߗ]lF,)w 5M)+E UcW%tB`-&Ŋ BbWD rcE\7?nc7W>wkz !mug9Ը6QL;HbX^*&Ϫ÷o2|(Sy݃8崴ZWP1KVNoyhVTܖx&F9]U"Uk@_nPcQād/ ~YTP՞,%m!C+wu{;.lS(EkJ6;<>k4\f" ,}CI׻R"B9S?FffD܆xx]D- +hcW($W/>pA˃2D"C/\nӦPY/QMѐ?WZ,@t7f1b|.{PPLHp\!Ei- +e>+B.EUIqFR\k+jS=ط3; ,ң:0VOEn42Q6YVSϱ, ]xVR.E|WV@2>US&iHwl=8)!Ƕ1#[!w1~(p $;,]=͞[%wkqx5gu[_\)vo g?aknc_gzx;]eq +M4QuA,e^U\H0Fc{%:,99G+W{nTvmM0([ރ3ŲJ +\nf&x<Ӕ+ɪA |3A,ze >Aɧ(A+Vo~l6 uOBB:9s1iuUZ#@2^f~ZsNPnmSG"7NOkOo:W)a0\ + ,n5,'@@ gD\ԯߪ4Ƞ<9 H8"ˡSG?yvQGUV}O TUr;%gW4X>"g5o;!CF^_hV1|:]Rq]zR53'F[ʕk[B[ޫ@ԉh*88:AX#M3B*1Ew\Ԣ$Lm֢@,p7,j=qc1w% *tMH6@d>y@@rtIX +\VW:p0ӘFˬxCʳdWmJyTKUsږc U#ʜ⹦5WQvFdG7ԃ1(wlTJP4F- AANV{Vg"G|moxItDCs:}7$"#"-$N T}I̖V|dzaC"nRx_DWΏIm#_’4_V,J2(DL/ޤK[}5+4Xv[ǬFh 7oƼ.~V7g {']XK*Z*XyպhT8a)Xk'VQ!Tаv:v)6^)+|C1d X!7{MEf/mwF@Z |0tLnz L`?i-EC,HzC4b +7.lQ&X㗉Ҏ{@${e=}Ri m;zد_sb*.S !!:'0Z#AgFjgRafm'lh~ToǍiqd> Ѧj&0OܲFb˸ +ӪZ^ߡAC,x +`9G:gW٫=mE(YF6`$>+kL3,M|:6SJT-RnRk_ojo ,֦S B2_@SIyԃ'S*#P`vK -2ұ&ިpNPjvw/]RN :5Б?qPө٣V.[Myym6E[y33뚏ԟ.8}$vC{9KOG'jv=j{~DdAt0j-g39͆ I~m}BRYJaն'VX"*%``Q*m]*\kG3٬:a`l3V|+gR){q*S3oi؎ l=tכ@v .X 8>ȵGm>3_CLb&R0څIdzmA/` +sXw[Xb(/MOsEKz5bM{~mQ :٤dY(ŢqP+;_!ćuGM)q< +8,NuFA3,p_paAP~jRN !GbLf-^h#{'[1{| Ѝr&v2!f$OB6dHBp] +Ⱥ_Y$$2 J4\cabX)xC@oZsp.U <4e k Bv;mS+{%~=&* +,[zb*<dW{̋ +[GƊ9~ݲ985!֨=ijd*=_ !cj"ČFQ;Lk+bKee񇨣ߦTk$b DD\'դ=S{'V4rDX)ga o[, +"<@g,nQǜČ [[f+w4cMDH(>F&vfG_o􋨄7JŐ9/qLkْ9{sr@pf0/hUr<cJ/jЋ9JG`eeʥd`D./C*  óE0| SD7Fnu@lemҰ#S<$:4*KoE<s\ar9؈adQaBSW]v@?,Yt>Aa3z UeȩegD 58`H4>ktMG>V-:pQKjspVr;E2\8Go`8)Зws="r%|wWڪ;~ #ԇjR'HZ7%Z# "* XQ,|5M01}W7B 4In\E&OtSH ByMLgL1AsySߙ4ɧlD+yey>V὎{HmV.O`w-و췆xDHSGFϯ}OMRQيQ"DKC"LmmGxfߕ#Vy K(/cL1Oԭnvȁ:RFgp7i|%%%&Jl >nyoU~L+r\`3(D&Kd}JkMD9$@9dSQ9XAc,qd.ꕡb9GPWɡtGwzF.ރ1-(#Rn?VwKK!-W Lk +V1p@+Wa”%c(=hږh5 H9-Fx[N]Iso Z2q؏]'ˀ*D8˔7#8&wO̝D$L.t͔9 G/7@%mnNPO4Ύ #,FW]O 9`d*KK-4S0&m?/lm W%aJgAE>dbF'c3$ʈ/"AWYO~cLR'5ABIp~D` N4dZ7H4;>&|CpW< N|;sj{; 6 ?z3:*\KQs]0\/Jc)~@TJWd{eFI۬^Z|Pd۰= 98@Zbk-K W&g y$bȑh%J3f^f5bd`]쉁:ؠV0Wy8EYE"Gދk"l`‚V䰌|:Qx!*C92>ܩ$řp݋F"' +r@Ch08 + +!c· m$Da { +_!z=5 p}+rHD +"G=O%_ÆBs"nj9;#&9~ +؊W#c.[Vuwz:A +_cr+rvyOU +~Y-6ȡ576To r*4(kQ@TymLDIVy1 +/$Jc)x zsm<g``^V}UV\c;rfX0n랶Vhz!?ɜ;3ae*0xT p_w :hNoGD I#FJo~˙~c]#%X:VG#o.~̄S],=Xܸ7}uGmIqmn/CED6GÓd8l]'(Q.} Qs>ujFDMcpI E)#A +؁9.^ +؀̧˯\jLM$y)=S-ZK)_ñ"nB黓36UWoDv%mX MaZCL6DIr.+]Fd5Vc~7Ց## 5۞V-1i^󷃎1 qV_\sJC TǯFݬx 0.|Dm7Ҿ.S%@(ckLŸj>9tX8ӧgoܳiίZvj t5~n$R`}xt H jyɾz|VZt\[W oM< AnUZэ>? k,,9X(}g ^q'בV7r.jd __);HЦqVy߂Ve$&.0)]Σ<v.,]_XXee>ɍM&<'QhDBx-hl9~&5:!. y4΋uWJ׶=M-qQO۶k-{sYZ4dkBi;dF!tWim ́41 MRr.Q3#V]@G—6L*BCyH7J]z؈ ȯ|ɩՔ6ۥʋTCJ6d;( eݚh&ķi_Buh+W)'hiL9)zL_ĚH+]ro5Onfvh#?u$^AQ:iVY #y}I>pL%60BN$e>ZMs`kB-38#}K _d|p=7m^BD>yZSqb`;Ve` 5)J6$Pe8"PLEVYNI渖 & 18O%9k)(@)3be~jiE;8\åFJ0e[D=}T4MUw⩃Piy|tR!ݕw>eR!#J7Oj&IqbkUq7##>ѐ 8( Vu{eov׸Sul5hM>1#F5f? +)R=.ħN6wp[4G_<䣡 rźGH(nlz?p^fܣI1SSTЇ22"ªyCaCY\iUI2ђub $Nmĺhj#>'~N5=>utF{4_hLvq72/H7B x7hie1.r4+[RNj/M0~mZL4OP+_Y#>@#@s8EfG`YYYGjz ;[5Z)DrjNsilQA_˱ 6$3܀P +se4(Knw9~r'`كOk#5@g,!T84`s/YqOIKU3MׁoPI0 +(R`+MħSs0FvYb}Yt$Wd0 ,tw" km,2KSB +~ČH5ݩo/Wik ASȴvPڭ΃jQJ hأ}h'w/'$(r9*ǀ-F('%r?%fkb^ϽYθIC!}_f E On@YjƝ6v& =Bf1=2*M?4Mꆠ.ޢIwy`=h}SECZh>-d&7ٲWZ{""vv&w4OX_)By-fNxp6Ou)/v-j3JHsL4Ƃ€E)@C>so=ǟM:9 4L,iKy[ o3,  aFeOU6v́[TcO,`m+Ɩ낉*ҁNJy͈rW>e]7 DÞ}I`M!ݯȊ[#Eh۬/|A.4m+$ ,E ALb:+&-ߩڇaﭼz=Ө0SʋW&;.Lj z)1 v]9@;i@eQ1.)@?ɸA VlSg5'G_ڭEsn]_e庲4`fx0q7ëHu]9TBZx +0\r, l0[Xb, 0BgYj\]Raq5ٷF;G#k]}۝.оTS2bm8^(=04dSMH0s;#;(fP9 +VoOJLNM.[WVbj1VUP| 멯G5϶1fxuՅ6dWBK2m`lIR}Nu)%pn6~D/_xK"5]?^f7sʄu〸1Zֿۑ7a;֐+o&aX|<<ԥr'YH½`sȓ,N^D|тLKLbbfIvP q<|ˉ{tqyuM`5Ro } +I+p\YJOmA1YLٱ1n""Q-,P#_hm2Q#.54,8c8SR}nb+%Y1%{IIz 9Kd'E($sg5w1Ed +48NovEj l>+iSr<]BCMݑ _fP$vzĒ~ֱe~ j;/8Q&l8t'&IH7Wl80qYf" 1$Z(`= M`3V$"O-صD_lxn B*w&wARlG&̟aaUa':Sf8 ߁d`}>~"c EpGo*oț:h561m;Sm#^CIIAp/5_ + ܬT*L| iH宲a}i[i9W$`l:tŒEN MMmRiK`hNV3/n/Gx'~a; )Otf!ȟ #܋1jMM +(S<* =%8` (>=彝NZ:]tF<2.{:u!+_ZG_kgu Qg-GΡ;oQnY<:ELVvB;8Y{3v>?P-e1}o=n;qr=n&QQ;lIKx vSw,!ey$> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000406530 00000 n +0000000000 00000 f +0000406581 00000 n +0000633917 00000 n +0000636908 00000 n +0000406992 00000 n +0000634216 00000 n +0000634103 00000 n +0000410434 00000 n +0000410508 00000 n +0000410726 00000 n +0000412348 00000 n +0000477937 00000 n +0000543526 00000 n +0000609115 00000 n +0000633987 00000 n +0000634018 00000 n +0000634250 00000 n +0000636931 00000 n +trailer +<<01DFC2F2E9E29F45A851DA3A8D27AE30>]>> +startxref +637144 +%%EOF diff --git a/01_3D-Druck/Puck_Support.svg b/01_3D-Druck/Puck_Support.svg new file mode 100644 index 0000000..76deec1 --- /dev/null +++ b/01_3D-Druck/Puck_Support.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_Transition.ai b/01_3D-Druck/Puck_Transition.ai new file mode 100644 index 0000000..a3f4335 --- /dev/null +++ b/01_3D-Druck/Puck_Transition.ai @@ -0,0 +1,5206 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_Transition + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 dirsVdirsVdir//Z + + 0 + + + + + + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +Hܗ$7Epƒ6 +Y@jc_U3NwIqFħ~yO?۟Gnİ =ǹoۗ?ۧWw{soKmo|̧?޷?5Pc[ )}}vѥ^;~$)-bo^PV!|F(-Rǜӥ8R9$>|_޶|nut1ǵiO$}R!3`-*xW O1NhʴVg))()ؔvvn'LqkʤMn!XF\@рqMMnKP17dJ4zP:3 H7.[33ݶۿIs**iT45%w_(@J+c$5kiE2& +E" 4/.`Mb"7V2d@x!@V(&0KN).Rǩ*p~tJs"wdqA]Ø*Wd xɭ"J 0+Jlߵ(%%g%nN=zSiSyH诖$בAwJ /x}ˮX=nNX/b&,B8ZE;5٢]BIF# zz'tXIa^jMD@0+s&A¸='"K*LF#02Ob*4B |nx\zL+L[yRd0h7 s =#E.15{j+:$ Σ9?$f UҰhn[W*1J3.mujT +a4eXOzAp!FjKCrW#Qh57PY&vjH^LTS'*z5-@Q׊=k$0h`gl*r< *.n -ձzfRIRD E tpӘB0E i0v$' U)hm亘>$J@$,gG00f(4Nǒ% ұtzfQJy0vT]|X7zg:L +QCViu X'ahOa++0:*|/,EEKc":3E}pbdznM,z4u'xɶEs ÂQd*aX=7J +jcB7T=V";SR@*xMI}$H~τyDN+0̓Eڵ>XY4hsTֺbE^X2+lž|_-ƈByH0v]½1i&D++k!nJ1VCh%xTjPG72gbc?GR\8U1t4{j+`V8>TxfAOnYyApzc/ʆ 5J!`ʶ6,\V:n ij\Oԉ/29W4Ֆf :5Cڈ4O/~yݿk^_~(4J2r4=Da~HÐQnsTƓfy^_8 @^OV46=(.|.~ƺnȚQ`*Hb iO22@ߩۮU$,1"hZ0Juu׻EZD+R{'LiV]K4Dȯ? pS>KT0ͤE"CXyI# ҬW5`V0ihS#*U3@iSCe˚<{W8O56WLՎӮM|h%FWlR.ʜ "cOp\2TՓ=˾h=|-j5>zpQs/]O}<8K} +Xs{`&:)p[yP!Bƭ:-d3*P +;’U0q؎/Sl&JX9U U~@u&`3L/[ZoO? ^{^+5A1B +^U'"Xo27TJĖ<ַ͢XeB尬({+ +W(TrslW/>j>ܯefuRC}^,V8IMF,i"oR7C+o)iqTtmS|;W\XGZF 7E2Uj|+Se(] W q'VL*3_X09/qĮyb-'QE^hx$fhS}{˗e./ &8$mSv+øÎkK> +uC q,q7uk*4*08ȅN_R:?TB3u5kHqRch5 +G)]U+Z,* v$1Yh ]}Fp¦S* +ҾokCAfyajs1h†M:Qjn$)z mHiPB* HFJEc㠎h&OIO&VHbD}XD0{b_P!2.W;44=^ppEuR2cJ2?q]8}>)OjZxIޓ fV[c[kr ׅĀOY\ '8^sjn;RnFA[ 2nfy/p\tdN9ȩI>= +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:19 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -37.1111111111068 -199.777777777776 1.6875 0 8301.14814814815 8390.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -37.1111111111068 -199.777777777776 1.6875 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XM 6 Q  LXZ3olGͿaCB RʔR86 +Mw&(؝c+ȣb@EcϲvVXw^'/guV#7 csmP̾uP_+tԐmh Rx9%KWe48d~Di. gE fXAQCH$!H\Uy @$"a&^(Iᢲ:Q4jg +sH(~> Ec0X`La^" +FC)_!F;j8@; DP, k,Fa$)FZG+FzQF)hG#KU[U"-{xR}a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳ge2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHn38>* E)Lq +T +b`( +EE^Т.rbX0âa12 F1,g0 FcQ k\D6P4 F`h44 f b0c@d81 m5\* F0c @ "a*;+#P` SS"ay`040L݀HTv o@$X0 gD"aÂA`x2 21C11 `h04 F@$ ECx#ظ5A Oh0 d 0F1A bQ0 bP,"[-E`( +T()Q43n7$C6T3Ҳٜl@l xLD<,$,6\18!ut\5a S-̬Vk(jzaYUQZS -蔄tH̠6Ț2Lc8704`,iG *lf z Dc0FcY,>ɹA$ld   ++3ΌHXP2 Dx_EF"Urc1Q b󴹹"qDGu , $ D@Lx@ADÅ 8*< pƒ 8`8@x@ pxD*Pp@p6LPX`C.8 &P`8Al

0TpA 6aǁA +^OW;Ow;B,:tDzU^{p''ب-'6R.L!i#ғw;+']HX"Sm'䯽F<4VeeNuIQr(h{5Qx {*%Wz\1KbqubDF3ۙ4{N]^9=qo>$9 |toʲ{P<$Wb}O8Qew7V9ȳRM:y&PP]+vjfFvr3nzJY5:6(RΎgwu4lug^>j3>&ih(&yܒZL>? +_M&#Rb?˱ԏW7qwaFp:A7x't&G 6rjzyBw6nJ& n[%oj>l 9HxID2G]XF$Wa p`*(dp&,Dxhb[]<'VD\KqT6RX!bt$I1Ē)V'y{/S]{Htrdc(|4S :٤[/O7$J/w!Ui#TDc=ʏrweْ;g|IKJ"iڊ{棰L̟N~e.ɂuXmDS|t:25Xf+:9Ee/H~6,}jP~>^%9$j[$X9:?#Buخ>U.}\&@\Bi'n}$G+f]V&I]'u$3 Ȍx URv8z  8 Kvv[A[MIkuLǝ^Y o$uPZƱ-ۼηӻJo}ۍsC'Օ!z)49AhRtd_~T1ԉ8GӧRWq${ vO:xxl72>tK갤>4 %Ju{M^ZG >F$$֓NXY,Krgrʧ^ޔlrNcR*ѡ'ULzŻfO(S㴾pnrɴbS[ڍo'HCx*ўH4CL\3|>[-J<2^SHiR+fsؓZWW-nv&hCv9˗Gj;/sh- Ae})y H(cOY'HByplw3 UeRM>ŢohO-VL3 esX3KwVGL13j;14{){"N5gޟ!͑ @@ +0^Gd(0HpxpB 5B 8 +DP +ppa +p „ +p B +p9\%^Oz|OSiK%X I-fYtؑ9S/`'YÍObď9~X?&%yBKR +oBf9B $ܹU6)N9iB!m¡G*'U9V-2)QV3gt/uBfZ]imJul+Dn^_'֚ CUS+]&qƲXj-Y>W{uL\û7aclIdqVC I%`wI,o,R>KOڃt+3F9SD41مn62;1|l#bctpggfrrno~2ubUur(G|i#vב\<7WUr}:)Jrbv#)ٰ&Gi2We񽈕h~KTs`O*3桺$2o>ʺҡhyYMP-WvZUvMRVRUZk=]N˲[z6uդf]M}FVDIggkͺvk%]pZciYvWTDY ϔ{`Uۻv"+Z^tWv,ˮϾͲPrr%: +9=J7z]U Qlyb33Ѻ=524ʙV> 9ftw98Ԝs’2<קz90$e9,vV#eJ$uc#~(c>_>X֮9I/;6X '?yt#Īz@OYdXڲ5D׻myǞ +Wa>/۴+~w ZyUHeqw4M'FU4R)V}V{VDWVZ83D)4E2*!ZŤ)>,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ Iy4eӧ 8uWWلGPٮJU7SN^~$G4V~V%ZUx*Y!ɴ9uxgx(SsNMX0O;6sbfo:TG^ۏZR\=%? +ITWsB;jgJB!˽u We>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛJJ}2tS} +^)zvsf>F"4 +SJG}ZR_QT*n}kOsؓcd"2~:pLi KʻĻ,]+IIr:t̒[eIɜsUq&݋ȼa LZG6w/+Uw4$sGvRv\\'fܢ}Jؒtb9ۚuQ2_4'_h%cђRu TGxiP%[hbuaɧs,c֛f}Pi8fR]Ѥ-'T5zUA DLNc )P#088 AN~B^@AFzNd )['dj\nBmS>=J06$"pL `py"-ЗX';h+0+Q? "MKtn:.\BO#@ћ{^.Ȧ$ HiQhzе:5W ܼ3"W'gKre$ i<˪omy*"WgM&z U/֪DA?OZ_M^8.?UeN*z`5=%nyKvD.k¹1q6:` RD[eDeƳ[w2mHoL_P4M9!I%=􃂯ZIKZ= Of&Q}҆41[Q59M' +=&JQz,W1Kw:K\6 =}I-Ŗ^rښYA[V 2Y{\q*?o K8JCpp@C1 PT}yj$)rԃޤn%-43ê;~ 9c?jQx~.ٵ 2(!R@OdJ­R9~m!FpN1,WCN@h:'ge.ۥ$ 5'ݪ+p8ix)|.gpL9Oߥ0B kPJ%?`\MZKs&sB$6D0n >W +șf)DG9f}[j-IM1έʴ5(c.teEә|c8d$H<)Ni7AXڐW vU{k];`ɀnh*ЕaWZZE]E3u"4$Ѳ rUFJ륀/x+9TNbs}'6S~Qr!Fzk,f?+ +Aaj힐uWgA2Z8{I(ڵƝ?l@4ԐMS\\:];FH}fV ؑO o!XGRP"\AGWBZS*e0{ډXb dH "򌫅Gs\.bRH +B# ROJ^%iG0dAcU{'E3V?eѭlZMݧw8Z\ mdYZTH}t5TcĨGiA"q)D+}'i޶\l~R6ik+N? g =MwOQ,H-vDV {=O) :{0uSŒޙ1 kiXɵ + KfOs=TcsN/Y\i9z}F ̞v&QNRjR3T\6$<$B*BXXaDNb(r"9tA^gsr2wE1=opmU@` %:|b|pb>|0է} 25aOqoE}hw@ĘUAdUEp.Vm<)JJ&lV7#Htu2]>n];t +PE,2X%~3Ϲ n/̰!-aV&{:p0èba!FMMRGT' +`wj  sc20JOZp. +~O7@LFc8gigސ#Sj7P1zȍogȐ4oCh#%ON*:s( Z"03z$HnYq6vV_ex]opZo|<׵ftZ [.tiaD4$%+lQq1TF1Y8_A.v8c+ +9Ds wyDzE5PuUgK'vJ32]a60kكwt[".f% tZ +IN` uC.j"J3/ыrŪx3a]-N 60PN W__*x1;]]q7]_N(LšhPLE8A:OFCl:W(gaRfXp]%8W6®v`>6o Wo؈`s\o=*"؟780 JFUqnH*Ų8=ekTƶASԻppֆFZP ]jʕje`fQ^MGAWر(B$0dF~A)<).<  m#sh7!zڣLr(^LXdT(lca[GΠIm߭JmT߇aɳ +_"x(*VG5OmZ/ ē:VYS t]Ռ( 2*{%&\f%rvk)!6L[sB{8M0nLo4.X/σq%hl59_%w]@Z8xSeCxY!r.U!t-\(P)A'~"ʘf;x3: 3+V0͊xgOJh-O52ܷ1t,@uȱL(SXTUX{׆l0j)?0hE&4o HhtX +Z{YRhc drH6O.dD}Zqps{3(ƛ' ,\Ӓ94#_tCjD5o7z 5U;)b84 wu/[ov]z_b HV5Bh}%Ttf<83J*o)QH'׸fAgd̬S-hA= +i s4"m2L׃ X"RmwD#鶀N46rbR}|P Ճ|1z-"z 0,+%ICBU1Z&sg1XP鷫[ 8›GxWY^@GWRO\+sْ~Kv8D81JeVsw{؏@M' 77,o=o+B_dZ7I9$ċժb В +-; '_=knd!g<;ؒ%TXb KefZ5 ZŝuP2JV"0+ +]uslo֋ŌfU)&!R_B{y>a%wM,<"wH3eQ)OT}5"@;G2S${h+=$,ej/HF-2=nf!02 !E9gy*<쬩SKl2suZu\8k¦/n<ԏ[4L삉lR+fG@$^_/VrƣQC~}}%_HBt Sԅݱps6P CrfLJA~)aLRJDS +t @5&Bx 8f+bog- h, Ώ3FQ%,o!4Z 9!U ZϋB7Lʠ- In5\ hn.d䅃!˳eg;] 4SKJjh8[(F̲Cԏh4NSr>1댍#듦Qx`rUCɗ|b*VYOܦs辫:NO9ǢOJ~Į~`K|:Â)GD$u WyV |VEW~]x6F64$V~J}:(}|Y@đfC/{ !ƀ}zG3NFLbk:!/$&<^:RoHxMNFJrLld?ل8>s(f2FfD0폺{çU)cbDF[ Gsf 9U9O}Cox$6}`mJ~usTt`uHLZ9<[5X։gUt/ejYuˎ/(f}:dgAYQa, T\j!җ|RxUy.ų6vcÈЅ[ştGz0'TBB;9q Z +u޴/q>i^VYw*!^ ]$HQkU9CgMEliCw LRՔBh 4E*%eja JV{mgUБ5pK\ߵӝO<i4W{1(7Y쐀vL6 [[^k D2'p) oß& `]JK ru{hkO6Ybծ9| +uJ_jk/~}aV2>&Z8]ihz7պH^M,h⥸I$}gB]AH٠i7,rC\C-R8 g\#U\xIzhx]\ 4E+ +5\rjUM{_{f֭F=ŵclG +W0xYJ#Պ$\Lw y^_Lq吘WSy80"Ot``0’'7*sIrMev[R'13aN$~u=mT} حf6fܲCeêNBVKȹGElj#"|856 +ȎfU)/ +5}MFCIb]""QB.9ř}jH`ivj%F 'o4,~a/|P%tHK4sc3_mVܠmQX=O/7ΔHD)۟-x68 "0=LK3GX`1PmN'#y3$jᦂ;\uK_Rg>$Ҙk*ЭДڅZmWݎ4L1YiZW鞓#Ghs\+J@9grPh/mef&d-;uZn]ΡJNTnBmj?1I/8S#m'_.ʝ} ]0ىkSr)Ca!hpncT+KaލҚ|iJ%BcD'2 ++2 YҏLrZ#Z,5`J+(:fRKP|[[.%D3Q,%!$e[ m B8G=zA%e ]ÖYYOQYڮ+s{h 4BZ KδeZJ3تl)<ے_nn)T5>o1QX෈(ʌׅ1\Q6W\g VJ%vhC]oeT}YeD+Y=e?Bu>m ++_lV܊M+ \o 9yV{@E @7CM I8fIs};vk𣛊C + ʆ߽57J0kuoZ+_ɸo?N!S(Ot5:Z{%tOK@8SD]*>E-,#cM]NoAV'92`F=C9C, $RMSe3q8E „fyZca;8B_^ @rZRV ޕTF.x}c=2,Pv*@+@[j^tih= 2|38`R$W!W*~ Qt1D1LH|\o-41k='KzɫҹLܔf ֱkmAӗxÚS*7T9kix4 +ZhzMg_b +"耑1u*Ռb% %-(M B89RhwOcIa_W_ZIRI΋Bt XRzs$kT؛L$O?J(j.6';g }e q<![ ]**-X@ngc5](F(4(ף[\0}[d3ʀC=|4)<\iePV}mf1\veG'ƫVV95F{GЯgB)^uSdoX%}e@q1@zTlciRxC=FH wEȕ"Sg49\xAF+r<9:Cu3W.΅jq!A!ValA8lӐ -*xE5B,6TA:ю|9{c@"J2s\,Hy7%"A,XaP +_d_>$T#jĪ5v<^,a{$T?AЁ5@[ X=j2~h:Jf:,$Y0L-!j =WՅуmBH`Z`! jgC`i\ 0V-K\pO:D)!=Ѹ&5D\m.3̈˕[3['gVH3ɖZ?[tnXDjI0Jp#9 Dh+iN;{ZyђlY/Z\ܯnj!f)u^9³ȩV!nF)fL .}4cwLrMn2:8̆]1p7ډHi +:˛ȟ9}VKҲUaVVyWHDˈ5WrJk dʡ_XBbkcAf;%V ,RbQz(vje,jTG|?e KKA1b.̼?4.Ba5j4ҰYа"osb  +]UЈ%1LB'Ex+8Z)Pξ%܍I`('RbKa$ּl?bw߰ Jfi +u+Uc*$J+:k(piIq#I+8E 6]07OCr&:H"n;nu 4hxM JZb 8/h <ؑfr9a^7[GVue#|73bRIf-#K1 +![_ˑGznBtRҞ9(Xyӓ4BcTxT٭C>WC٧K_ ֺ}ʜ&56ywdӪGӛ eQFI`bWF\eV?Qx.0F4M7>V5/'zf%@D6Ã\"\&-Ir"2 Yr>yZ+y>JYU(m +]KvAjk(QjB?>hʞXG˪m*! JygGLzbr`c>Cƅ\%Gl;DFhhH?(y+H4{ʢAtQ!<K\`wp)X^J `JW|%&coa+H Ϩob<,( +!G: m3 ك vW#{U*yIΚ6R[ ҈!eh?Fqʐ߱z=[}̨ؐ$?pfsjlnoON 6ʸ\ +**}#9WlR_D9r gWR$f&, };UDoN2+Wa*gu5g Gg-bӜ?ۣ̏Ϟ ;&-ýk3J-1*;޽biL5Bl)fJYT~Y9l~! +}ʪFbXJo@B L:̫yIOw^ʠ;S7xmJNcCN cξabc[AL qQ$<\")L;ԭ%>U7}c)7Zn3mhnPj/ƩMq ;y<魷몏Wxb'(o`)-soR$5w kW34G^:Ëq, +u'٨VΔKY8r5` +ˁ3a;^r6Ya^24[&(!f#@D!bK-Q _{s5_[E!t25[V6M!ڣe{hWQ!ͥ~Pik4<1SZD2Í1]tl&9C1ʐLK>kT r|ݨW9٪j4_ry+W4ϣpf^L8Ɍ%2#WCHS1F UEVصzx ʩNAZI4/Jp<ƯH13{F'}cjN;5ŏ\*NϿsC(:ΡHj9:ŧLCSCr"N@̎`R1-LጸX< 73SM@t=^&Ko #|dZW7 +P"th`*n\k +ȶM>bdԏLa&.&XE#i1ydrM7|Q;FD(Ю,j/:OOߵaP+ ߁NLYM'+c3ȋGGGKϒy6l:q+i~;{HB$_u>[ݭ)c9 ,$G"؈(Ŕ,@'+ \}s\Ѥw 9Qx2ȿ[4qA =d#B.fouCr45c Gӎi=]05 _ ]ā)HT0w Os#CiE|!N쀬q lt&3#]*ڕ|Y/:L]+8TuPOP!s߁(rf%Oľ`iv).SQ$YɴЏjKpSjDJA^\QzbZ{yDICW[ QaWR^o0$ݠ23x]I?  I!@x]Krȍ$4&E^݇,c(bV mxsƯMzD4w3_}@Յי(^{lpSֽ')rqiOuf~~M(.d_izrƩN&Ƭ"2 U +Q(ozvװEV j@S:Nf$x.nzj.syĕBQsd6D(+Vڶ=РGeaR/aUu +VRҏ;›7V|B<E#+pD@v8"hu**CK|gT +a{f,gBLg}鸋+td4ZX1Cuǔ~G"smtGLJ2-Um *m +ӖŬ-0]o\ =QC-->6 A(7D)w0js8>pl68 +9F%!c : F<3i`svnMz?Z %A KY + @!H%g;ޥ4J}dETXU:F_sz!ǟY`,JlucB~m,F6.6eO)ڊ%g4MI9|6jLV?OԬg88u.k&oŎ'yXѰMف%A#G(*Gl*ggb%QvdCs|J Ş/~ԕjT9vƗFחQH%KD?fUdzHs3>6 +$"1@?A>h 7x`}wͺkޚ{U5k2)A.aӃqx=H=6{J{C\ A0kv%ai`] q>yss80W0jh&zdȭə[%!tjpZ)Nz-gfIJ g*$WD0vMLL nG^N\A؇gQ.װG4' ׄ/BbC@;$#2*SRG&BI Rg彴BAH~}Z߮IeDEOI.Hz s[Z![;jK `tS%gq耢i2ִ6Yʙ lWh,Cf58N@Vv~bpdl(^- `#t^]ǹX)+RЁF !YYhW2} 2.zף*?S9Ϸ=Xڔ{\hJo]j;lҳ@d*4fY4 fOvq*:8oz}ѩ+vݓe^R+P-3-5*-Y7׳Bt3Ij-SydJ\:,{\8sOqOoY\q /7j1wl+&̺?1نWaм'\PVS;AZwȚ'0X]9N2%9~Gzr ۄkVh_O_LJF+IcByMh9~o8UrSutWG:9r"5 LV=G n_&` +KX.sXU9ʜ <\I::Ybz+!/پb"Pw~y_5|#9Hِ$QpqPj;S⤊aIզ`;Q-X.|Vgg&y[v2LoZ@Tkp`@n{?O1?+ +;8]e`wUq,4d2S$8Kua' q^MI&7Mg؁YPR}품iT$ʹ;>Q~_2]V]dSz 8x2¸#Wq\DR 7PRk(a'3F@sw8"yA}]2Ƞ*8a2mTYǘ1q'z=D[Kj{t9B20 q9?{xDt=C$[Zt7XnO뿽.n+AO@tf̲̦P|UcD/ZU^W`;9k<t7c*,~nY R~53FNez~Q 8D7}2ln࢏֨ȹ.i{ݮI5rK=g36"i@Iy 7YUD̺ p!0F \]`^2CX`>cF`j|q6lqBMjWVVl57Z Eì #4P_U"B#Mk.;<X(c VxϜr i8ـױk6 ՗?[8!AA2 /,#U-,$Dq`[k 崯s?: **ZS@r/tnY?E&K| A xV_ǯV>ڢ5 sܪ$O-E\/v=1rۂqfommJB@hx1o~qȈgQUpliXEb@'wn=Q_R3"@˨!>ZZvkۼ {E/#P4Mɞ*8}[)t +lHίgN{Hi*xdȱQp.Xc^ ɤ]7Y0]+ 1?)VX7xBV^ 㬢{uCXft9>s!WoULBOG3rس!U0&#vvgqT3X(T4y bײ}w6 .Ri+! O{@NK-^F7toys)DU0ҭuG^M۩o op78s~^K.h7zIbeYmO-nJj׫֗n"/{b&͉OB+ ~ٳjt+#n.rlUL59d@gX1<௰h:?n|dX5xϓrq1 [T0e1hb@s" -@#`r ?Ba]^ƝQDpTMxLFqbzh b@&j:ԩ{  <D[VEX,m"#z(z[эs"CUV״8'E,L]`OQrRKD3/%`SVʗHa/yj 4iw)ozF{ĔXH t`<}^BW ;eiBB=`wܫk]X26{s=|J/s1dDbK?YȜ  +R"vR0dbh\ vܗBFjThcEwb3#&rJmϿ 7ŢY%GC]Pa9RP#]:YD"C9~:@0 +ަ9}5{`\# %&ۢ +.|v>ݥ y^Il//%=b}bBƺmA6Qa&4ˋBZ +ܽͧudPs fE.#' HZD*d@)I5$y|Iֈ81s)yǶUVX'( aBQTϿV-eΎ#$.Wd{ʽ;cwQsش&dmaQww?eGI~},>GTTr 㵑V}ܜUn"w@k8en#F-TTWg/pEV +XN?f' wp =jnF Ia.%-RJYps31M#乍m'jvy"ir6'Krjijxz&ȐcDJ]eO2e{%n^]\[C(z;j[7ŤxSm-SzgnVH%eTDЏ  ȗ 3LBֽq+'rޓ.9|#ǹ#sppS 5r(.`!X 5y(Hr4nc^Y)w Bp5YP0M{*qLxl)1HN^{XsA4Li[@P Bt-)ހL:rޫtAW&_:Mvh*jXP"`&_5uO7T*ܔrꩄu|v6aW`cd -cFJ*xĂQ8X]9Fg ˰ ($JutJ{ı"R(+R!#_ُ pAYű[A-nq[=u9Hw聳Ct:LTiH[u +׉ZWN&Wr-aߣ:I^QLKH޷ZV|:}VQ%i-wgv ,R\p[D VZ} {X)2lֺ*L>~dv.n.PiP ܊kQ 4j?I CReG0:`nllIͽQVGDs\uø-'€?j47'p/NV,.4r=eyZEҭ%H'S@rY8h`d0ׁ[m 2"DG@ ep@m=ʋ^,.&f',v1(sA:)RxnI2jï +O5P +s5Ȗo wr "oR)tp] +(77m/5;0FN 7wCp< w9-mo{ _ s*+ϫu3U E zZ? dS]![-9{[5ar㳪ںNvȿd؟Os5]2#?! u|\\ Å ?iѐỌb.)\"X6=VJbE>!vB])@#z_#En=Xma]C3q5Phw Kޭ4~)?DTeqW~?԰zXpIBM؝IR2I^d_u[5}C7Y\&L)&՚i'^r'BmˉTXOU.bpPD"'JS[&,L6/*k,%+ +$K|n7P=H> B!32,)BIB@)>*He*$$bI!MXEP(G"#@"pBHU-| NCydB!8D!^ 1̆ +,)- +ED M$Pa3Q +*tjj0iÔthuvZ ZYh4 +,;ز%ؚ|؎CZפwRQ +2caþ! 1!)lFw0aJj۹JeCULƽE0E*1#PV'&Qx$jLJZl",RadU2X"vy0A(wXRVTXf*qRg@7zф'= q´dġw,r:dÅ + +P\ +WP(NSH߃).3wxVsB4SVv&>ںs ܉{;-;0WrwI,<1;i񮍽<fݣʴVhi) I}J)dN4D͂/vjfA[gPpa1y.U{-}ʹ WbRRb<8YhO*Ef)* +rB=Qk_3&LrM&kF T}*JHPTj(kMFy5\!+{R1RY]=,UycA'DƢjA /^/$- l&S|iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WՊ1SkzoK=>ὫӹtON'B+uڗ a.q)ϮqG A#Xkq:pZgzfx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR\^:FeX 4U($SQF'AIeUtKt0/4Zn3*ԶAD +%IPyt +"Pw}|)x<+UA( ,)Yo.^|iclURmJ,J/c5׈Z-hF$\ձ) ]ݱw]tUZCgE%QV!ey-HsR"I"AG1$Ԅ,Λ#eQ(CDC1wWLm?F+ÑR~%y6~S}cFΦc8Ss/|6/2|Ϋ1W"Tɘ",ƶ#Q +U#/TzZ՚К.1~%f1u؛ ~8K2I'd뜰+#+R1q r>k[bg͆1EIJ\DZ;l!Qguڂ3 +~XZDD,2$iFFș8cDTkH[k%1ҨBtĥ?f:k^!&hVt>np#&21Ė83F$yFm]%$Ub,bjQGѩ=4І$쪙kR!1]mWL|T5D.F#$"#>ȬU<3^RRgθ8v6Ųh:Dud !'deqCcNlm6s,Ρb ta ]) '"ƽVTJ>j !yȹ7y71y%!ڄ|b»j9P]"Z ObD/}璿ea^h iylX)Q432 .]pH3AX3J̅2-R-8xEJs WЌ^W98;3TGd^$}fTRa)Q N,H^ IPHR(!9 s yH4+8Y?SuGN }>DfR2"37$9hKV'5P2N̸$,aWs4&6^-S%Vd1QOLW5HQq1&VW̎ +V73 Tfd*۪j& fw1R'k4>M_;:b-dL,z։LF6llU;d#C +H),Dv=f ɮy |̾E*"JS|J6F [4nZryi '&B*Y1B(&e^= +(v!1ѤsP:-Dj$*:3_#ZLE[/.x9*tܲu&&MS ۵ +cFPP]"|fzK1 AaG9T\+`TS=jP!E>-:=FL6v 3 tȍH\̲^٨0*`V%)M +5 SJ=cy|}$>i "pX^r/NkdjCiտOP%"覓tT؇tS"UBQ~ $0D> 0D"4B2p2@tH͇U"iUόmpu9PD +jDL‚dm`` `c@FxEd A(d@Qi$.uQFE ]y`QDfBECEݡd0Ux*B#j[F{7* \u,aF5aFB2'ыj o4רB N4";gIAH$LtTÐC"H9iRJ@ ;ä"Kog[$K'1<< ,Pi4\B +EDeB2 ( 0@¿zL S'4J Ox +L#:<\ D:MH);HR+)u AP FxC+ p @& BMM0Ԅ, +E-4Y*Ee# *QHDpjͽ7Dj9+/  +\ +K%A@O&YF^kS ="\kSS*FWy(z(_w%'/(bȗ6& aePRc`=q52BV/ROh:I20p~59|A^4U#(`FLDBĂIk" 8/ F!(PApqNYy zfL4S%T4KMU,ʦTh[h(VI7kHx-5S4їEpJi8:ںj>JKpc:i~ҍs\d2W chL>o'gn2GrCs+_߷?kWSz_?ýOGBNb&0SA$ "% q\ykGi8 Y93ٖ%g\0PTaiVUܰNGh"JY0lÉ*mO - =J(@H"~PkPui[/|-vo۝ˆg!B*znCvSM>d MBP&@}W5w{A'IN [N$R>ܝd#y] +YӬ6Em{ I+mwij؊\ X#]Mہxb uB|k7l'7 anFZ^y* OTC1kZ`Yh{];E ,t`>uJNiA;Tݨ?S5}4S[ƚNeP^cIB3 Yv |aBUw < b]{Re-dçWR4՗o=v$U ƅ3Aw07jSr9vEn ϣl d9x¨inSd:w?@ݴE89cyPKWbD$+q`W(; ]m A !t|YW,}1`CBkۈ;ZazF49@ )Q_7l*GtK*.ey#]'^jh#If 7rNf;p)nT\<4^e1_99N$ P j'l'3\=K@owҙqŹZ;gGsY{>Z%P9n~xenk"V>yҋ#hePnл 䃻7HłsE$קdGbkⴙ !+' ԏ)-ŀR@Ug&0֎&ildGW}mKѱ0d˗2瀊AyP_ʇIY+ +]șDEjoI߫m.aFGVg +#|lU +նOh>1Y /d̀K&R7 '/K p %R]8D&pCk D]ܧ,z=X2 +- B"T!]^zXe3ЁELYt4n/{7:^IbgD-+䠟TBvX)@oB_G$X4F5@(LC^,f}IBfJ*ڃ&C_bP +uuFpVHBV;id@N雨uWdr)[x`+)@W4!ޫbuE}Ha=F+d\CU!]H Xj'^l8=__?Uܦv6ozkW~i&n+4|T5ī` CbnraN@6\xQ{GmwQZ_ˈRcJ>VF:У|P*,WyATld;1gQuR^Z;/+6^V+:e儀qC'RӌDXF +,E*݁e`q4$FBX`[JaIH}Mvuffwz =dԊ-T*g5d [ 9PAE* M0/t +v\sCtY9΄p?>zsO_WJ9/WuSыG03Rp^"VpFR'zHp"'ʝ$P؋: ޼! 2*Fg)NH]&UMH#mU CHl9ڣ ЛܘQ,f`7 BXR4t>HZm|[ pa* ѧpQ*~~MΘ4$_ۖ0xC9bņ 5ԷI8qy.㋶8&fї0۟p˺MgyagITfJ}s +ޑ\Jĸ `wpFQaEP%tBY YFJJ-URZ\` MtF`PRGf@A6 VM{{@;,rp|7"~8ht,j&CP +3TQ@m" OQƀ:_9V<ޙ/A/86+_!!`轍I::uUcv1ݩ03l<P mN$##5<@ +\T"ZF?^4nWL1QƮf[̽-\uYpyU@_ /(XEP\xR0tPQZ\WQBa;$]JG75ٮĜ?slL0 ޳װͼUC"Cg0?ڼkh<݋YlwكdMd\7\f*oKk +CC$*,mt'oN(b eY OJu~ܞoNLxj9h*B4-P8\-4cIt.C0-z1]B"2Sbk3&#6E 2 2`-T#?lcԾx]`Mgb\1LR:e!ڻ@^+{H0 iF2/wu?OvPOzjjfEfFTRݻni̒!<ɋG.,&/H}z- W?Wdљْco2|bOsR0t$)E@ IҖGOGi+{FZNOUs}Дg Ej'׺_T-nߓ<:S/};WR1,+EJ8[`pT6} dwXCcA`[ 6hht?U'pr,rq$x$e˼Jߦum#j1RuCI\^hͤ.UuEtIGΡ̳Β‹#.]KdރD1hĄU(Z+> P3f!p+R ]K+ź2MwmElW˒;dA"V5g7tn(xʧ|"*2jL3|. ; J?Xok! +;an9NM?f~rD 7"B'Hˌ?~g~aG8 3yTA3 (8DuɰNLPB)87ly :d{J35#F6ĵ3k6d kw'6<&꺺RO,hͪ[fշJf7ן[[RpaRiTO 3gKFL Ma#@Kc +FĢ2]JiHgE=:dX8eU*C#۬)vBMP4GCRqפжThHoLa4SwW4m^:'^eh^_`~J($ ud{V; >;b$f Ӥ{J/򘧠vw%GNbkۦ)wr^`Kd \ŭ Ѷ\a47⁲awUK'x3)0X'0:DswRB ՟:h6ƣꕀ07> +S.FuKT*(y/³ovab &\bGZ6 ꛇ3 2͍Xdp| N?kx>V0`l6/FZ˻i|ˆƃB{&/D)!|!ߕXh[ɰgg@2xSMks輷"y ""b_x٥l2zl#rr+s՟OWe[3bD^x`YO2{9ʛgE߰ +vA2PO%jzyƎL q1cIAR ~iglބЍce .bI6|7#,j}eX!N2@)W$u@CDQ8C#YW`{?45[wэLP7:@p"nB 9Y =++q~[.-?"B6 j_OE.޳bNKGu(! ؞nI#C0q˵ 볓NTHL*ǫ˴7Z!XӦ(2?\N@w]WG0=$0x*UAexQ |hg +YpFye3j3?D ; 5л=ߵ!eTWňg,`>d'c3JT :ڕJo +=ܠ~TO}sVj܄p$y =:Q\ )j71/}N3SMD{daPge, kaGabG`..Y!-뛈B) |]jY7+O@5ܩ܆@)`__49 КkDyuZcEq,EM}ps/rE>CIoH\Q!A^(ف*vJ JzJ k+O?UL+2,/\r]X?N1./оJbϔ!TҀePHoDT~CDȮ!tCQPR}.^Bqu#QQ,b9L}@bBˬB?Њu +eJIB$1$R)" r%1h D% )!#JJ(D +!H|rhr0AI:ٖ D&(2MHjO64:"z'IX|h|'BfP'Q*zů6E+9Qt'09~Ґ>BiI`AR)v.E|r2SܒTo +4hkO@ŷz;Q[b,zlSgHȓ#Ll$dcJ٠m%jcHb3ې IvCGב97(6yPoER]cEroQ$1 *I~HGnC¡n! #$1 8Lšql#) }d9ʑM-G.=rsd#94#IC;9בutdC:LGAV1AHA)uˍUG#'l͇;LU#yui0hC##W0xXcF;xd#gKy(#Ẽ)/y"'QFZ=&p_HF{EVqZ,2#cW:Д 3>"-|DEP# )"y_>a?:Q1l""|L-&[Jd2=IDwd kDVE_HD$ ZCvYؒ@T-@@:- ѥ qAdCu!/A!C~ !kBۆ֐j"" H!MȖdHX +aB20.dB[4D,D3ܮN +Z +W9$M(dwwdcGTFH&@?BXBdJDR!!DtZ" M$c\-x27AEBXȲ 2`2:" 3?61iEƉ"SYX箳kktWAKi5fEv XDFX4)aT‚L$b)NчrSqjy"E"| oE9@VK|o {-3)ŊD;S bHSD2n4QB ȝS$d/؂F#Eb,@E2(8rQD+dOD[L މȎb .^N$iq~~@~E?8YX%'FL" YGRTvj7"9ݿcducۗ8"E'} fwTdl>[>ԘDؒo|pK|8  %{L$v$ءDBMk%Or,XF|zz<"aNh#PQns hr8DjFw.$6塮)yq<xDd +H(G01jw+fe6;|a!Yw`HC;w;NٲK|u"}gx4>_G"R?mp":a"{>""fna~D1JLt"\H.eLT\.>L5Yu"kuR;E2UD!#*"MN/:"Hxg=[41jCx QZ9/zHuEԧJy68q#юE1r㐥̃;i824\#)6RDAQ%G )HCoGxaG>o7Doчp2$:$/ot,td0LG\؍{$ɟn$}nXr#2&4n\$NmHJsDDm,)!6^MI1JbDҳ1 lؾ1XrU_*1ʖ$6&w +ji]R-X{]#U?ah%&UY469$! D[&Ẍ́gA5vIRÍHiMj$QiгMDs +kH݄LLo"fi\(9Ԝ# Gc,s&xh '$O$ u!/dИUЈH0qϐ{FmNfNd5Q1i/&67CFlszf\N+3p }I{ :ɃW OʠT LծPFA\W}d Dn'Jbr$y{:D!B@1XN1Fh#/7}iND8ȰÅtu1;QFSa0n'39I c(H0Ƶ% 6΄1_*ư9O;牴 F{jX ,0Io {`nd 8c៬_$E\P'F|sJ{^tP+> KCzDhBx6P +/d_".JG.(é +zj<2H9WRH _o `fS" ,Ki,.n0%p@\d[D69[)ٰx$kA%l *zbU"c-Jj1 M%j!Z=EܨuH=UBgQ骢Y`]͂V٦U0 ^E² +O +|,J fc+E]Eb[ EX+B\f_YW6+Kf2GWT`rE[VlDh.2,*)c"_0WraL嫐aQUpAƢ+WR*l!TY*"TNŚRa*IQX +j΢,|BB)zS)tPnE@ܢ\lGD֓ewi(64uE"QD"1\S#CVeJpPQ-B|@1PO' @|"8]OƳ h;NS9|b9Y"E p4&ʹ $ vH5AYN[S7W4*w&4fDXE2Ll.&+&f3KX0u䗀!YyN]bzľ%!u-YcȖh,,6=nz%,,Ҭ*qYLb2hk@Z> G}͡eLRzgZP +jᵖARbٯ%-hKp +)1my>[XH-Ը%[D`zt? .D֚EupˤByCݥe 6g䮢tJ$;låu҅*AR?KOxJi Tl~X(ǥQuՃq ƄrL2P9o"̎D.D颚"0Hu1:Hh. ]6-=L x# ;b>GS^E,T=ވKj6̪9 4bz| ]FЗ1B}QFD/Z G,pA|_BNXa+>fyT`hg<0M0yM#|%CJ`lD +U"'"4,6!TЫ0 +$(8j =3D1W-ש3U(b,fH.FϖV(DD3"e\1 59eqpCA$Őa@FBfHdƎa(V## +dؠ vd#qMf@4d$ 9Q~%*,#CΜ-?P?v_F%n?Nff3N~UQtU7ׇ8#*g>@:igɇgICVL{`ۃB MփED#{dL8fo?y!HS< `PA)0j!JMC <4mjsz8j̶RvjT %0T]MAjOCdFY]!tB9Cduvw=N1,;]rGC vG,,WB#+4wϨ[~ +0n344 +:/>S`UT~Fx*0QW5BYBG8BgS87Ŕv[vǥ"*mN!ja)L%,yK!(R +ג{OEDGDh#*Q>, +UBaf$i(lTgbٻ'X{J c^z6PeD\o@) J~y?4RyBlJZN`Ni^V}w̝P%Pm4g̝k!3Lp'{/Vt ۻƕz r͒F /pNs G-wMZA'm80`&902Ɓ3h>qP;1~>]8`Tu%p%hA *m#X sq{@uKmq@6R>2tč6"*_De'r߰A/䱀k6lc +4c"ߖSdwAIF!  h!MJ^Z%>VpWs VNI 0o,~k#Γj=d;;e9Eܧ4ynQHq{ KUbpkFe !]Zh1hXRe#粅0^f`kFzyZR0%}5r|j/v{>.h7bC #w.3x0m'FC[m%~Kl[I'*Z ~)ToG"']"d,R؊,H*>B^%AvqV]A5\,줔d2"w?!*p|(jD|{\&L$RAWy"PXs^!n +xXRKA/o nR0=&;: +r)(&`^;̢1v2 +:[(@tJJh h"ɓp>uCO MUy'HVnMoT\ Ѳj"q#X 4ePL,,_>>_YP @lawߙ"i!5ҧP6Bh$0S@+c!!A3%#(g+¯ +s@h3 +Lӽ et(uDc,?ڥqȌ@q:.} DضJIlJ.Wχ`=!4˺Ls#Gz%8. +e'ԋw,`SHSL2~2шHXz7D0H&( 0sY"[@LFq%RP ; ? XH&VnEC{0I8Dљ?s#,%z7V?F@IO#;%" Yh!縆&mpddUl!rX㳫SGـF&6Vyg;H?mSfo @N\, ,2i( `o!H Ew3nL0nYLH93B悲-Vmwv9T3mw.aC9R̈h8$uHnphs֛1 +k*ge-րB&+7(s%%ĭXEU0Bjsa@q cw (Q-@eqR.,Eك)͢zf`0WPoc:B`!iM<]jeHIEZLbT]tA +fR:MMVh& +ۑv6nBٓ }+6g P>efO!i*/ H< `53XAv-րZ9%BBE#L5,ְd@[6 $_:g2Nz=>5 *G@Mb;+Qxd`Q̭ @JDf)d??'~ V7u| ,#OUTPqJSfMIovHe6:* +_@3_yux?xBp}G}G[qIJvbBΦL@VmXQC^cq]/s4s_1+x)uHhR S]5!ݙv`lÀFjd9Wܯa V(=lP+!2*/¯"rxHGݑ[%Lo{A${0b>m+V1ԗ3wRt%w:$ VcyW_Ŀ(_|OՑT`~Q} 5>\**}z +vO Dq1T?OP{4e A9tF42z;O"$#Y{>Bէ5L֯҈T^X6p}+ C4s7Q  @i7ƿ_u0 ?C[π鸄Wv_?T$դqJ'#D1x@l\磿~9#mA_:ϙMd8.׊J|a n ;"+UT 32w';M +$ٱ ~F;u{-rs8{|4 nd v 仿omr8"0ًM;Q^p݇>O:XO}=M'Lޫlɩ$ {$m1 ˌz\@1{Eglawt[xC!._JO?6ЉRl 7>ofO6ۛ^xkmp~)M[{f{ Dm?Aʪct*P11,#nq>!A#}|,ϐ\+-80Szd_8j}$qN#̾b* 8-x.R,aJwF?y?Қ' `v: y?d+Dv&⨗زkՊlGX/dz$2B9V?BU]gfHA;mJdG=(6%XP=HW fg)e&;),D[j`zd?NwxNzI8E;צ~,> +k чEe& ?x+9BԔJ1c&*mxAo5p3zhfGVM ޟOiUT Dd{;-;߮BHOuxL<#;DKp|>-6rI*M7|_NY@u@Flv<K_JW|[(&*Б`B^?G/{ ^E6Nj0΂8Jr.3->QJ#WxqC/?CO餲)O|)Nddz&|h@4@?yA9nU3亃2&$_; ho/nr<r ?ǧiBz<>\+_\BĜخUjix궃<-~& ! Y ^S0/XF?:d4d T}n6#E=74q '+2Qb{xOQd?ymx#4/bx^O [],Qqľ &'|蔆{Wn.q@^ f9B7|gHk ~Z xyab{ zG#JZ.s^;4 Gi94eޤZ]\{{}3iu=#]HnAr읷S + 3 +a]?wL˫7'o7O|J-8C| 3Sż8򉵯y;-.ةۋE }4qmg]%>Kb-LYlK%w}4}bի)E[{6^NO;juc7]Fr +ҳ /] ~8x ;'m$NѢѪeh=Lʹx< &R%:-6`2m;DƤXSlT E,m 9pY`WbL *ɮ0W5 vJ&J$.`o@lFRۥ65+>1)_lOY{+Oԉ{g v4(J`t4:'QLm&GA_,~_O?~;ci'qA,fbי3>&Z UDְ̿-HhD.8'{CvLwQ ЦFbΐ.: 7ͶiAW1sv⸬wKjXob9]Q +9dVMFoUՇsDju4 ZU.C.Ƿ jRzQju-鹩ۡ\ԧYP3QL;T4B3.^%ͳ[~ˆ:ބ`&Q.0)]~(4{@ m.xcQA6RyS٠"ƃ#ͦ32n#V7Kv' xbGJϭ$t^Ǩwȑg>ä}IC "Ӽ_p^C5:S#JF&WZ+`щ +H >U-9k6|#.%d"N^Ƽ,fr| ;n6:k. u -Äl\V +ηuE3ׂD8T\O-f=jݖ}/\=﯀Z3t1hQ@F&qB;0Z )uÛ^@irب},(qctP_c vMJ`h}"<\MOjd^Yű}wS3q2ʁVz| t-)u^TAwntU5Ux`n҂mId/!1 z'.1;ayf z[ nt&s8P}lA*/yJbAcL2t0;ノL a9gM[tr6[¦eqtj׌mAW玁c/,4Ok};\߂7U$ R<]ts@sK]As +z3fYx&xnY)+dvsT7p5KXRߌ+ U]G +V Q2УB/qNP6o@e~~D@pM638)ӂjn.ȷoA+U?cAGB ݋#zi Z؃m Cs1]uZ{ZA2 8l:!hwfV&╪b?D0F,Kcb /"[b=U ( +Ɖ ug;/IE>yRRxZk:%_'?Qr9.o 5: .Np|& +o7?10aLssq6_w&Vؼ?`$O4LjYi+'|dɱb63z "x+\w|*smГ!r332d^l6;RֻüqݏJcr9ZoU=rR+S':w-pyq*w5,aK+fb62Cc,e7W<XtuFZ9"iDeUCw̹ʭ?.)q%)oD VCeZy+PkU;Pr79ǯL^SC?RdJN6L_]&Ӌ;D#&aed3rKk`U2H{pl!rřB' v`rLE|؉g(ii C +|q/ed:59\ysBiF1<47\hNYO\Z(.Wt*! ¼l,_b+y┢*0>Fn9/'Gemav ¿m2#3r6\^A:*գ^pę@eGQx?&x,JF9L/xia T'׫?~f?m$5f_s.`v1F !\iJMI4O2 v5eaVe^_ɒ,unܙx~~E3~e.mȂzߴLIڷ֗ooVٜ!@lIC|J*-V*bc _k KJwm/bsk +(dn؛ЦTpT7ЦH;,duFoqI yKzOyS*UǮRUR͙wF_RKpT?*L%3Ɇt':3*Ojq̺nXBg%Fc KɱU;Le^7+lSu @BՆ~)S I\՞gֆaƳ΁r )Ck) bZANoՊ5 Z Lޡ=Tj[[A`acTqU:r=WY 2v!4w &6q\uWe87KⴲCw>Q5tKՅ:\XY#U:! Z2{DxΖB3њ9.̞"mFB D]h! _PxHc!hpS[j'H6YA+uKtN֭9UI6f[E&Vr&S\"ms-|Cg=k{9U? |Gq,(C|xNk-D^{9 +96[_6ھUAةpEF#%8|ZK:~ q9-Xm[$q?|6 +"(ʵZ,11ͥH3um>s305EPMI37]=N:J,궅$E;p`7rl Eu|b4nR"ѕ̳MMS2G]`9){xǁ>IDOyզhyL%Kʮ[T{S&rTޱY2'P/0/n\8h_ٚDzbo]YSe-ʞQ_αlvԦ-ChHjA6H,^onk2擖2$VqrlOLONOeIXWML>~(mSĺi(-3^ iY1 +Q--e(ԣ/i?D7Ѽ}QefnsFA-_|ZWni;B˔0eq-ۂŵ2Ż^m2pjW0Ar_šereWXVB!Dc詧?(c>=9P +endstream endobj 15 0 obj <>stream +9k9i cy<45Y6XEgqWdrBsdAfZ2ZDp֒XlV (Z2[^9wѦ+u}Z[vi$ R#:iVBNY8&r] ^rp Q25*:fpVNjz2zoOmGT5u*բp ++rn7(}/r}y$9M+2erˢy]H~(_Ʀ(K.>x .MQ&tGHrIBJԴ e#|I. RQ$ґP1w׍@)e*㥼KS^R>_Rc;ZNB wKL)&㷩=QZR&Ygg΄aEK&E`n0;^LWdoHqRմ'&e*3ʪ$PS:E{6V~}jR7NTfPH{l(eDS{ ]SS,L02಑8IAR&t(Cso=5+%2zТ(HiUi_(\GdVfR83&Hʓѥ}h}t_͓;^ߦ|n"2r4[&Oq~ ONz| +jv|1nWm2}P>2|>1Lzw?И j%8\gfPvq.:Xʣ=|4,({ӓa4, BH]Sc"yuwt;W Bύrjj)nNS{oTQe H;XRW^وD>ԡYn/J! .<̻02] rVV0e@ G!]J>|S{*boSۡ,ARq޿ H8no2|p] Ӷbp6z+O\%V%y%\W]S+Gcrsߍ#WAdb#,e{O&|  +ZΈՌ \6hz]/{>[\h04QWeb>=Z:yQ8t02OlcߚѻXl +q;4[5gNGVuJ~v63k]73?0e3rks8:r{kgszgN4V8L"(Ȍum׭5\[𸻾a+Ʋ_F*J4:G4h\+1D5DЙD[6y9ijQE 9af>X 6 a Yً2SOox P W05>k $۶ۤPT8RÉ5oy:i\rK"d-OѴ45L\0$Alom^6N_NX֞6h1l{C=ۦ:E;d%Ӊvİ!yzvLn?&R{~,E? dM GiA[q?l#a+N  5 )g +GݤFaWDu2U! 8)Q#e9͕QN4Jy@.%0۫;chNVs"咜>;^#"G}zƛOu*A ں̖0 QI s^֊Zfkk'g;ZG[jzK q*j235XDH!-q&^fk{Ҍsһqj ؖ +[ji`Oژv1sO.F AoDwzU;~W +cssDWڀGu9P}ޝ]  1ew0Wާ뉱J6(mo1"28\js<%#p&ߕ0N}&Y6i'-Tɕսo6?LTib@OGg)d)Q$MHŰ gfCs*,-w~0}xRSh ;~DP:y7'?;|{(~𪋠d?CNY|K8o&#Nh~q>҇ s-5_G;SMM޵7N5Q~#qWwșc-=]P\-O):UaN5B<~6yh{qo΋ɴ7ĔDA4'M}?6} Y;:QO+[n"va}=MkwF<a%JߛvXjՒIm7E (V=Rx^ƕ^=~V7+.OTNjYAz8⪿M}7]'m1N*.kV t4H!&X ^飲nIANO"SN=QӖ7P^(%[;#?0*2\CCOaXpPn횪Fћi>|R_ć 6b>=} D >d+e}8K;݇S>F }!Y(b}ejcp--?L~ҧ>\˜;6ӊKaw%Z @ qJki!N/ qˠQ?pns q<-+4/ʙtoɤBUXײ aR$G}O#΃mB[#.Bb Ȍe,3~o#7~1g9>9q.z58;Bn"QP@~O0H,b2mk>>ʻ_9}kdV.-rA/r y@Y0Xr4𶬜U %Wس;p{󻙯s +VrasnΡ4ԗs7}}ϹfX9#Cׄ9nyh@}nٮAH( + ^ +/-(;W^.^[V՟ϓt­?[ PESeTij(ՐhGK~I5!S SyY)y1 [m|j:cHEo9`~ _ʏ1J;ϊVPJtӷP/ .i[L}%jVNtfnF>}6p}촱z췉C}kdiBn]{:sPI >*g{S՝~0S>: cW6 T#xC<( bヱp?#}yyd.D,0y=t>=\gcpx6Yl}}W.L;sx'Ϝ |}]dڊ;8ޱMß?8^fa'p;c1u݂M Gs8ȼ?~w ;, ɟf2lrm3.Oxz֊yIxԳ};#WA*#:_Ȳ <ԎՒY{!*+~]_%l7 w30-4bg%0LLoL'RH@70" +^{=o'-{K89rhO #(2jxw"R+؈ +:ab 6R&Mlz\@U_9^^YG@ %;h-0?DIxl6V\%Q0Ed' 0Vۀ&6 +?Wի (A~Z5ÈScXqѢg p H +>Q`2=T@xV jXj-`/ <{R1? / +($^x0Wãu:#phMds}9Uh&UG{wa|>'B'XnR軮V3%&P~}DtGKXr,JpvA92l>ՊHP̋NfF J3Q SIgכ 1ÜpArZ/^eeZ]WngoӡX( rFxftώOx&A7bKwEl_Nc+Uӈ!=~Vbmz +v) yo~J!u{e$!҉@{[VΣZ:wm c>oܝqtȍɖ.|]*͵JD|n% %V)-70˓h)U*X>? N- +em +I7Ef}UQJ1'&9 + +aD +9ch1bdx2 Ř*vL8C <􈼩D&m[;C;$slW'/HA@tx``6Q'1d0nI9[u kPC`4h#*4{5O-3Nca]`t*vPp_: wBsxŃn^j\[_q+j::߁B!m + xcl I<~b2Z|2kDq']7HƖ2M }L&{_/=Ah6hz۷f5>jT$H\Rs&PψG5x:3pqNrBO@b +ͶWe j"5iq3KQ}${ D@6k{9 +=rT^2sR7i$\&086d| sJ +3 Z?4I1寞DRmA YEUVKׅP⽰-Ey%Q1 i^T1yw.N:na?(1LīlCr#ϻAބku/eMc[ϓy,o^$B47ʏiHƌ yHa +ߍ]W1!#&)[ .LpgS=s'd%cs,^MWf\/^b"tfxT@_Q|w3 [qlr<վFPQ¼26H&1@4(`i<&Jv]+"3JABoxAbڸ=骝Kc)hgj XmTݳuqXvc&+a~@>.ELabT0ڨ2]Z,q5Tw8?:7!"簀qV"@CCyjV +c(OQ;21V?3DTÞߟ!8#e2'R:=Pnu,#.i9$6B szRP 9ꀯ`?/P)bAͩݹ AdbƱG̹8;sbx-qͧN +ד)a"H/HVcO +c7g qi#rM_yM*dZ1V[n8݉s=cp|YZʝPS #" dweI\!=͵ 3ɷ[IU#h$KKMf!?_dVCB  Y@3ؔ+`_}AI*><H޿A|퀿sm^JȗLݤGn.Dl_u->Sfte1XҰN$9?:\ޙ"*.j}2CEkԪB WЄ Jәr+HpshXy6B=h"==nz 3"X\NBm+ 4KRBtDj!Jp%udY@ycȐ^16A-O {wAqL*SiKXk}dc{b϶߶i~`_<1kOi[kvY V~ztj۾u4_Z- V]}lckZi~W<gϦ;ҧo+Ywm+v{sgpzg߳8lqnqyb;fhZVO8Snq>-) 2A φˑ|=7T QRDL`!_@30N:@p4UM e#y + +VUNp-+(̬W뫩P3⭜j)'V)UǸ`v0%ZVm-jckіŭǵUNIhU[K%\9)*CVm-*N{gv~Z183u5{6v;Wkf*Ì7֚}WUs 6 R~ӯ[/o߱Ob~K^Ǔަ;ybl:^Kx +TKI !c^ŗspn2|:"C(Fjq3[=Bnfs0/gTD2Y*7>Nx$otdfO'teCG<򥂂P8taAZח"r^h3jx!U?36;JH%OAC"I#TR;KRMÍpÍ6bRH M %0~ƒ>%kigd1"F6 Lhbʍ?25 2c1R +0H5 +(Ǧb*,^d#Nt052&PAƊC OfKkm8 $=dN("zjB ЄR pc- ЁT!p$ vHNɧc QaQaFPb$%Rƒ# ùɾRb ;X1tq酄JʕpHS<^bߍ8KƘjJ1{y-')\>Sar v;jƆYRHH@4aψRc9DdHdD$IA +EOѻ44Qr$DbݠˤO'iC@fݶup^b>}8 oUt(jPxi} T0ɦ]gCo6'Pn/!ff/fV|P3b u⡢HIDG1'U׋)-Mѿ3FQCbƉK£LG.ʹ.]ZŃ,L{'%։`x d햜KЮs/` Ͻh:GߌD`_7ByG7֜f |?#fF kMe}v&| gq_GkGYspsm{Oy,QY_>\[Ǎˌ?j.r$6H؇e8qAz $PTDyincךg6{ߌ8)tb~Rq2,r DRut'lg{[>d2>Δ4s[Olɵ=E2kͿh锠Z<`ti6JmN=(pXq0["bM,cn}V!{IQ$e=/QyzхJU!!ջuݜ@VU&eMXzICKoxгG0w\"s/z̝.Ӂ"" "pE&p(Ƴ\w!!cA$ձ *i!G A@3btF\H!umFH9 +{h٬T}/IM4 \"*IqI5T Iĸ}a#CpPC:؂8fCx~hsR!1q])|XqwyRJz, #]r=Nc)"}@jٙrkvgS|Њo^Xl [&tX懪#ܓ*O?HJ~$o*$c :/Vӓd6R[FzV.h+0Q`1e,Kn98DGmXz{v^2Umpb#3{8j9#9# +WT;fAoa?Jx^XiU2KIkFtwĨq1Uc1,Of7Q$w 3[cAPm^ߛi $hgD[7>ENy\sz֡ŠF/S-nc]@c'e?6µWLgQYFKT[d\=6(RK.JpetV kR׆W;Kѻ(nCum@&o&-mU3Vׄ3jԕRRe#!u&B3"2ǵTidQ\2h,j沃/<e@;lrs)+v߆b9&0:2pe#XCyKPTӟuՊai5e5q oyn=ow"ohyqpTD}wO#`҉G)DpO6bIp, 1Sr_(y _Ghnܣ5G%jԫ \vWGtv$؎Y˴r"gI V?; ۱}U1!Izv͖`@:IlД$y >}q2bpYo>s~+ ё~Uĺ 6cHTF}śOE݁ι󗟰nX#oCI>APX (T8Ѻ"V}$-t +<Qy>ZҊTᘤѺ+o(Z0,2SF8̷@0&iZ߲!m=(e\ E YhH/6Q?kHx~p߭M .˨,RڄČVdſ6iVqȈkҳCރ~UQ4p|/p[|vmqI̾z&{6hcڥ}x"ZM lW@t\er VzW,b0ZYm]eW k@PհZu_Ԛ Y[6 ?J(WG2nU2ud@au"_'CRd"=:ȭv+]zXiZHWgVbe[%Ecanlyϰ6m[7p~o22/p I-N}%Ȩr7^oo&FP4&FP~"b(no2p;\oyh^etp*mB&ENoB(HRϲd/2)Sgkb]5z4]K+m2Z"c?)#gm=F:cÌ?ҷd$c/GГx[ڟ5eU"UhR(HRO"$CO1~$?8pEG.l55 StHR7*YE| +쩜M-p@KOrTI~j֣,E+,9'"bÌ7!m=N"<1z~ږkYdI]`\i7^FAiY";Pscf9\ϪFruTEGR9a`u4 O&x|3Wťoi:1zɡ24$-qs۾IT)HSrDä7abp \Է_O_ǁt kdÚ?U#_9~S9^ +ݪhUw>;)}*|| +[kbo937˲-w͇ea'9=.hG.9UCz"t1i׾3gN +TA*#|7Vg:=+9CR:e|!jv|H@ʷuѢ>V`o17R;;De }L+V y*˦D.5kҗ$W^%icI[-3-~2$/OXC?F0Y.7v-vYUgT"GI~?6M>E)?@]=D 7j#%;]&Z(˪N{z4k:2*ћ Ԗq/xjEY(s⦿0}·I ]i(nw"'bܐ҇(}sm_tMk"ۣ=& v#)O&Cv(Ađ[$5b~ 6#a͜4*Ų>bju .t+@\аP K۰ϻ:=VRgNL[4˺oBJzӀ%rS:\riRAL NeiXL]|`r@Lկ4͍VvXU8״}""^dy.0ÌwQ#%iF9Yѹ?[>'/(=xgjk[GA0|; +'gP#P;A2)ײCCQ15';-KV hN8*?N$@̏7?Neagu>n%r4kXeu~[wIAtg[)Tt +Iiˤ.MXtYeIAx +͵|fe冚(GRRCEH jC j<cg#2*ؙV1]L.hǨ? +{HU +yͤp*I=UFa3NU4)o +~,dj㪈[uvͼ*^Sߞmc丠,EbN"I|1xS3lqx.:"iVǚ|c62n<caIcU,>ܘeQ3gfY_=|5n[scgk.{f'[Lֲ'54#n5&DѮ448 +yCKTuQn%uZ!veBФ!KP[X3]b`9J1nB$AM?Uva`o0Ͽkn"$A}[U?__K_%IJAZ(MUk#71r'ύ=f2GSVeiW@2 &`ڍWw <0pbgM^D}eV me;ĩS=MG!Eɳq6^rX'g`-qtP>i(LӍ48!9wIQt E ,/aCxxqA^&ZE04&ѣK=b5:TBE*gR"-@to3035nA}n쬥N5yQ{s +3+ˬBn'yӫ,QCjZ̴/~;=4ӸF ]N +ԛ!-MW8kOnYz"b~hwqAr3(lK-1[wYu:̭DžDmo=̾rd"r jQ5UoӲD?s?ͻ*Ǩ9m[8e +3k瀜d&EN4-0֓c~z@Co҇(ufӲc<"'I۸I:F 6rrg$5 T bq߀ؓ5u+h OØ M/7QrrZwq?LOxьb@[ 'n%&=yMkI$"p}տk=l37coai5oVndկfamߤ 9KT~dK 4!=ah=|ċ)F3c[bXKsPøs/|z<~&4~# > +Bzha"AK(p$hք(w8˸# +J EiWEȟ7!(])GP&iݡ__Z̛5!U+ +U.!H0o!9fr Mֳi׮HO"}HrǤA[.cc+ + :K(Qy/gqvJV@5UBn5t1;ɑI^)INR՛9;!&1Zv4|!`rǰF|IN_)rg}HWoڛ=sA̘4UY__b53kbIqzpҥȀDb~ba*-= k/#O0 ϴD +9JQ0"n@4%D˓׺E6r,v0OTsE{*1m$_]^ތ.5D ?\oĨzEˍ2Lrn;|x hO?z: @& +KײH-N!258a-v#'nK?{ȱg&-doÜB/E(E#^0NZ*m?99Г0q4`I)MRd(nI!HKջȗM<f2v!Ξlx;$' JG@(`Ds_I~푞%J <40OݓqIP&;XSW"^ +z&m}rg׶E\4˪Zgᱩ߼߲DIi/ccK8UHWYGY5qۄ ?s>SYԎoY"t2pIy -@;f`4ϨW!B!t,Y? *-믨|] yrSg({YmtbͮԑYFY;RKWjff5oᚇѳIUѨ_L  #c>R=?7ͧ(YE\QvmE .|`"#Zo]VSG^].o<]d{%Bzsg$/# (MA +pr6pӾY$k!px-2lsǗ1y#^#+͖I%'˒&%q_&]&i!( ?}[T!y: gQUGNd2׮/yKWD \nd + +!$zO˨ėW]B>ҶC vumߺ0e? =.%0T[ZK;.\aK*ϦH!J=OR5"-|+\h930aii@>}XŇ +pC wK@lBO4"l`iw v$d`ifiN>(m:^eit"o%_̫c<=PtL|1z<'9xC-B=y5ʩ_})CUj=MByo%93=i(,=bG>A2dHC̼U = `A I d,+M],J2@ڑ8M?n(IPG&!Ls@I{/xXo+o&Ǎ>D,@iJ:̙q@GJNO"_M>& ~|,>HF`c mm[<\VDr8ˈ#ǦA p +K|EO\D{Me|| ᮲49^6vыd$LIz,|xL-WI:}C%p&I6zOҷ:UcWzzh'`ɷ8Mi^!mPY֯(U}I)җ=o϶UfحXfXܠK;7zW.FȊqA5Y&!Ѓ >0dl%k'?} +1W?FhNьuY27]UD /M\w5iܡ"uEFE2~YE;VRgǪqtlE +,w=,B`çF۾K(nqӢbbjlqQ935)GPZk&]O%*W`X{| @nt3!WØ@0˨1B!0B "(C B!"w{:Dag,϶c?ra&8]LqL`(-anPIW0 -Hq#ȣΫdz1(ϼoT_K UΌO +J||2h䯹fcdً&Hm0Ƨ'Ξd<̿ Y30=_sB!^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆<{|cWn|P|S~K]7^KG_$V`CȍlO+꽒_@ ., +c0_ 3/0Kگ{x)_bS'~UPᬙ#@8-h ;ijGNh}twZrVDm@9p/|߳QY.}Gm/*2]JE\L˖/0aR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>zѣ$z_Po $A( !l% b;%xqڥ@NtZ߃O0qmm+^YܬSm@L)7P b#3NƉ9jۅyFֆL0ǩF}`ߙ$_@~gCc]DzN$ܼ±]\W4n/OAgⲲ֦Z0z7 ,uMLW( SضeL66 .74M`P+׺1aNkf1)Qh?i1Q lV:m!m7E %>8 +AZh mUwva(4]y0ӨMu pXBWAk M$cx.mkCV< dXIQE~H&P"]U'5uZF q7|c4W0[ 3-+9}9o#|J™1P,"69DW aМ8L[T?a\20mgmǺpW㙇,ð'ͼ +C43 +bP,%^ ;t3g>pY$&d4aUwo q *p_Y.%ؖ7b_xmx\^$.oY ,Jd(!T1TO6}b琭׈*ZSJN1%WJMX^ζ6spI;-2OYt }қT9CR7G(f$.d{Fu;aϱ%,#@J'Ȳ[4 +‚&KkJz) 9{.X /S" DF—X'9*%7rlyHHi[,"GJ}LT|Uqc<``X#m6 PCGTp8 spQzwP@!f^V"yTϸ CnY0caupѓNh&'BSCIXƂZt+t.锤TP)8{arF#.ԠlG|H\'DiY-/[Oq e1TWJK`{ |5kUkf08l}%xHrB~ByT= 󻓯G_ +HgY =*_ C>fKr'"C +HA:׃$hlvV5Q<[⑭}q |<9X'uEJf%4Z}F9TFZV Q KᏏV@*EP("<3`Jƹ!Şu{@ +@RV#KbyN%N{]n1s| bS}9h@5Jfƙ褓k6Rux<7I6k:OO*ޥ}Tλ, J>8_PvO}+/*eM@O" +ٷ18T.]Ds N(ݮ#18UtFưFUXUG }K0 Jm2`_#ma}"߱c4KG6%޳rU}4<(]\_Lzw Lx?(}$0S&)~5)@;%J4JqV!% +r$RmJSmjL.ɴY6v)ղ}au^i~q?@ +IKFȦx)Ÿi.4L ]J)yTIn*ʻD]!+? xRDh+*L&mHYZҠ,\GK(ZXx]_Gy\:+1gYZbaIخ,\7zSI |ޅ.I5UQ L=UʞWKQzL{[| QFMڬ +af47%]4;!yE,0()&I8i%O_${ꢜ5M4.9D$0 9X4.aiBY:yF=~YgmN!EmT=~<긕^n4-1h-sK=[i1F\b@)G?US mb_-5%5IZC(81MaO ' 3f.kFzu.:uJ>*iӱ~ +`AX5iT'NV4h$M*9K6ZDd` Zlk7؋LK<ӯsA !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)œe㒾6q]uT ++kn{1n|(kt^Q"BzWg CFVOA?D; ,ÅuFěu ^H__O?HoDiUm]QU jln}!AfBvD4) XMMpY Y[ڵ/DGF$Gy/04D^Dرql xz9H7 ܻLuoOLTI,1Es;6--+#Vf+p1.Ys(* E +UAdȧ&oY8M@+Y +cwUxti&:4FO6Q5tnQFeh* 29 @ U;EIMl+Hrj JeK|gqfo۰[W)zFvH%wM8Ko`N,/E|زjη{v2vEբ3Er,n':Z>e+D7 U3/o)k^)cfL~Ixf{]ʚq@O]F!;q?p$$B@OYb150E[ +dJptH=8 n$LhiՊX -HwP8QlLDI5NA{p +pơ"dq+gc\.]2/]))E gc W>+NT艳wm]H9Cm')Ug cHirD@Senm@ \(N1of#%lh2-?8/(GEǠ暍*)Cf`Xhנ,rq64BLG72Q]܍g&*hJ:xr'Yh$F3,0nFr;1aIATV ~QC=u!= w^gFibh>ePu*|ҜFNg#cv,76j7r0q2VKo`@~*rI+\;y(Ӄx@O6=4s}/Y}^Qus֝7z~Qg9R}C$nUr>- Wꈓrq0S#g\#s0;,b[LdVKAjēS@nxB ;|y +>دp =B?`wc]8U? J+= VRչ|ޑϩ q96qI>ށxsb"M{&O:u:S;ߗqt^Q\0L3;Ty%k/x=_\r@.;_54_}kAZeCHh \! =Jq^I/>ƑGq&61$`:-Vtrs"lw(XdӄZUwhp NxS^C|%cc\f~m> +R2ԨzYIī0-X"yrnrlC)p;GybYxctr;*pV/*1NJCw|/$aP˸  +g~APUy셫 ­g SItKftpffLKr0[F4cu|N]hS8f̶tI agrN{htS@(iAbnUlӼ_]\\nsg02_>6Fa[w {{v`ש\8ؑHۈ[ '9GV2%-G9A"bzQ{tqvMtLo?`?tDgzy*|Ǽ[o}?ևyW?ku~)h!C "3}WEN +_^e uf+F"$0$it+\zUڙ $ɰP fhГppTK R! Ck}N<Y}襇qjjsbKX'Ǐd7JR2$% ˘qJDt7[Y)%<2p#]]j4ۡGK: +6*P&zY߂E8z2jp~u! }C)z +'Aa]=x5 3| T{eMmWlK s;"z +՛t3jv$OqnoVĺz臧 %G=NI +!㬖>ғ5(.$DRAA/4sPU +~J)A=Uw`3<|T0J p95@/%(pL+ppOz-9`691V'1`cVS^:%S}\ٴU%z_킂WGا~g }YJBUEX'Q<_8?5/6&D|".%8K0,"#EMs\"%>>%r\0wyIfRUZe}9` JBѫA0&J =?@lzI5@4j_; 瑬OQYNAA )T IMmu"m'ɇ9&5`W^|,EKt%S9P,PueJ2ލW-+o&$Iozk;`/`9648/D  +akߥ3q1 GNmOm F̆,55m ax%|s[]GBE< }V)詈^*|dI1<Py^A狪^_AT+D 4t̪>ʺkËdڗ9Qx;i5Ixނv~C_P3A0?<9ԯ|S|.F> 4M=)EQQp/[1-NL3>)j7NQMD'~Qn0 %$VXRZ@?4f~ +ՠ~ + ioz_ z XeJՑ |kFt,[1sp#fq.~q[ GnI܎}tzӋZM_րA6@_~".EEЂA1v?pamA`(a6:"E;-Tvdq;eW)1w!N`G֨_/.Vd_0UaLJ ޹%weLZV^բ[BTz'^*sbz +ohpTӣSPkĕűQp0VCk_0ڐ]- O'[wbLJnLb8{+@l^ֶ7 /Nv쭤#-9p̋(w]]]1J*&6-cm/J7CvDc!LpAtKLBٔ;$,&Ɖ[]e} TԵ٩W]+۽K,`iu%(t+nJ#.ø2]KeL7..j5KR]ݞ%D߲U75֭`Uϻ +/lÚ<lyy j_\EU]R6iؕpWV칼C>s]Z/Ul.[0{jflZDzX"z(8JYYϢ֭|Yd]> Vzl@^RŬַ\=v,XU`x1 ?RxO5aK Rdz^(;_T)#S؆6e K1)[TuH6SLO*ffPg&%.l0[L7:%Ym.S`S!>ۦt&RҒKM !-G$l +Y"Z4ZHߧ5kv|C ժϠ 6il``xlY +Fb0O:2Xpw;%j?rL aF]oci86ɫw7∢U^ !1_XnzEϽ/ wm.z@ +V٢wM>4mI߅Ϝ&+Ӛ !zχ)'իL~ +)uBcqivp~P;{ČJ$~ġEx[ʔRRʽ(ΙC>)c85WwG֏ɕ_I㊙ +$Q]-:zRpgߌ#qXRӦۦ] .%4~r3`1)@e<: +6 z%^>e_G8cqRGAtDFEw8A0:jVlj*f ++fM?ҮoAoQzp)xbr!2Pg q'O=oQAڢ A\ *0~U¹s ֛c}RMQzee]7-bƂZ{*ĮtZ1sf6i/lBD_S,o+طuCAjFDE*)DHWMTR6Agz~0&\9'I%:J59gHE;u3Ί7na;Q?A7*zL  I琊X3[nûݍ d((}װ;%z<;*'Uj([UyVM_Xx"}2٣N#\@:ؕ`i"kc_#\1)7fŻ© +y{EԱXZ H zIN9MH`\5PkY Yȁ0f7O#' J +++f Lv["‘݁!Z/Wo,wYׇ n)@JfIdb0b [uv&'ǻ^6?@ʓCP" ;SkB*d',3\Eujbe%xk{#ً z(ikPbs㬣Qg7UoFm l{P:sX%X +Wٸ/bNt*{1 BaQ +5dJכD˶WN9)sțPv)+B;`$%".>gXVB BE?REG(ڝ4Ď4F:"?4O盛NabRpA. a 8eqL\gr/%/ρ/dQ}TXG{R83ӆ0;VX9̲!8`U^Fc$=|C(gHYܫ.\O\AW9*3yJ9DH.Ge ‡dGd 4׭_],7W6 j= uu'2Cȼ1@bE,V0u +ezB>~-ޮxJdVθrrBZ=P&bEQO~6aP|[)վ,\^\IxZ=( .:f9&=ڊbq3gb0¦7B0B6L_D}rʍ<J-@z^_fbȺo6[hؚb)De`kYƸuak(ic²;ubcN~_ }TTTݡBҦЃ=\W;rHKY4aBe 2 +gSL,s)_akA:3f@FwWmUiQ| * +#p`->"_+rUPmײBڥ`v&,g S;x>xBo暽jګhv>'`  V51{d\GlqE7l}BYnueEXp^w,6J=^U)2vJA<"+-Ĥr怃?hsXg܄Θk9X"LA})bg2);!h@[BCeк~2,Ec2qD#XCpe;ia0{m$#5id]=Ei3(媩oqoiq0 +cPE1"v0rLÌÞS0Bjg#ëQ3?AȄN1޹A_aKL6C:498kmI(㯑KAˬ:nm"n@nV/؆[>H8m&%]%%׍if0-YLcgoelhl( +@ojY]]? EΘb=ʅ>zLWs@ +׫8LxUuFQڂb9w$0gWgPI,c.-G;q( ˾naG ɧ|QO:g&#}鈤Z%9OULH=* +_j2Ƀ4z\-o.6k{Z4vewҎFܧҎŻjmgmdx@aETK%*PUPjWiSD =bz4QW>tr-ÐٚZj-SA 8Xx0])0#ܭ$o{Fqsݸ8j]pf4L3icaoǠqg/kEQŵ6u͓¾>E,@0b-km`f+\Ǔ{A#Viaցe AoYP9WrӔ̘bGu1X7W._!`O(C@XV_ĹKN @^'U\$]t{B +wB)C'h!r n{q]60o1tkȾuSaǷAiG-EYxVfK m۫ꛪձZz6J=PZ?Np784wb2kE x ^ +n%a+Zch<ϴMgsi%#B3/-LϦStes +xI='#0cy5Eq!K'py1f^c8vl%~Lv&2ib9k"n 1oK3J f:r/zi>Ѐ㝫y +?;~%!Yi lDfn/c5#B YWY;,_ +okbDq3 4`qerQj/1kfg1{؏N} +/KwA!sphރ Ə n\=AY4u5ObmFc+`MCwðZ2o`Y C&oR SB`]BCFM)V b*_ P5Pf|%"sS כdf>dKHWV8?h1_8eK[,B 'h""ɾZ/;LYx˿c׺#` ʺl ~t~ 7WNU;,{C]D=4FLY_\Z6~Q2e +ޚƍ77޲m +RAOsfbb9 Q>`/B~IJf|Et"ʑh4 ʾ_)HHc0~K#mD⟐%0>I z + 5yilYd]rO"]$DwЁ8t;XPT6Y Hjf֒ٚ4@ b\o*fx'ׁ.:6_s}Q'1L-qQDr1(zG:VRJڕy~Wy ƌ@m5g7V +F,"NZ(d"|z+06kJAv +D zg~=b@ KCt +^u_1%ܬ$4Id_ZRnz1kHE4%h)CQ_ UcgHzHd;`1ja \W /-Y=sKA|5M¯oZkk[AUm*K 9DGn ‡ḍh7Ǥe8&Ŗ3lF^) lJ*)_)7S9KeVK)Dcr1n]xwWY{9TY|4֕i LOI x<sŸ,lxwX!rK;s]H>ϣ8@;W0=vH?]Eyn(8Pd msuhD4* ﬐x)X7 c{0_[uo"8$kTOLa8‹=n! Y˦촚98 bJ\[@Yl`y)3X!8OB4b!ePtjO~ԝ . 8j h C9:&pz?Ξ%C)NN4g +AHwؙLz +~:\دkPt)Ci^Q5z 7 #ua7;6~gdk6[OGsz'_:r)O18}"PGipxi7o-4vd򏦝 ?Xd@|4'ϐ؇4h5u8o>GP3T}v bٗH#_ kȋ;AE9:s;?9#xsP]E_<Ͱu }ܦ!B(!pi R + !\ ͵70BYuZuͨ}kyo*p[jlܣxקt/[qP%G鷌ln\v¶/\-ev&Œy('e'uuc=Q'Me" +cif^y1C{IlaI \&(2זЯM8=r4NB?s]G?Gd"A2?|ܡɿjbk!#^$,*4U4!-|U_hO%RJ4_B&9.k"} &w +& +& %s8sA|~ U^Jʥ Jifk +n(0MN(9ҍqȉ4w({h~0:L((Z[B{֖OϴRXS򰠫ed+NU1787r3z [ >IL^Gð~b镂3od݆OwHK%_ -kfq}0n㽝1eՕe־8 K=r9mƞ8嫫=M$7rXKƍq :z +\FڢNfK X7ynTO$~{RB͋a;ruZͺqø^Ɗ(cҾ0`2voEUmHJ{QҞ?kFNLLifZ;m붢 +@{PB2ڭ30=pdz9_|`.} AGH#H pwg9tA|Qǜu1_^o8-7 4Xh,R/DC$دx]t9t8LV2 wd$~`K8}D$W,MڗY hI1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)eE~нPj`aST0AUUPPPvճ8$oY2EQFL4G7\zVbeJ)%)5̞On^2ؙ!'F<˳mZQDF]~e 3u4k9Sn03`G3p:u#ba(6z>' :߁&k̚FL⼕}tA3/%ϤAm/jOQ"wj(8 +$Ң'X|.G0aqzzszOc`>ǭ.˟wT$?8nMCU1b.JX OuiIWՔҠdƉ#'[ɩfTvAG/|f@&:&vwՕu|巽@<:>%}DN"Q7J] n3`m=ܚĒqqD\K,,";vP4zvw?0e?byj#H +ӊW?w\XVNu5r <~c*eX:D| + `rE΀?.b va+F@YV%6xǐ-!9 ,@pIԑA@"/$ +>C*bWgAx_ [j2V*/USPE$( a†G,O(˪JV9X9$OB3Q^anm0Y̢QX2TWL<yƲrOVqKYX 7*ab9"C4Ͷ8ݱOƶޙ{"ez bO$%K4).kؘ>۬}Q$]m?z>(J1E,OgtaH_pX ޞ)w78 :vPO5mLnEZy.N@=% +׆ ++L-٤*cu9è4p/h ۜLRgYpXG jXʋdqI8^`Gq?TC?r|d,s o8~u_e~$BĻ'"zog(wCwB}Xtb:$cK1Xȸv29lS&VG*o)"[M@B `|$YGBTK5G|F?}2mb5K&P%PxyGjtNO>ՊSK֩z.Vy5`_lY?a*+P2 Zm5O(WVEGB(^HeJY Q pg`n֩ήz*qPܮtBbGYF骢Yȶ +SnyHmYm?G*$7]ifqOZl+I-k+/gklcppOBb =X6$x5\ >0߼bss{1հ)+yfII3o> H˔/G?<^-fKƍ𓣒48;3!z?w߇n2%_0ǰ#E +[̖&Qق]fZ[\us~`U'Z].N*"z]>|N#5ޡHެ@~T"'HGOsgpeOݔ&3X/)*j k*=X?;b*C1^% hR5GNu9۸19YJju&͖l;p]]4[oDhE6?{hЬiOWpkRT,c\hlNN=xճiEUT1yџZgB|IܤC&5L4 .6N ^?̈́ƅ_Hˁu@՞#n3㊙H;v(7_{zmr.7eajb:|%y 6Ȍ#G,K4oޘ44vLKB_WBz#AmL5LúKticC1n ٮc>z^F1.Z@M:kZREB$)/j9l|I8۲h#=Jӊ!T<] Dܗll_^Lp'OVqG%!3_ʂZЭ(h:"+p& 2I\0 qAY6a+EkG;E4Bcmp7 ~n'Ik+n;=0בb`?wWOԧE㶶fZ &IYԗI޽A%Gzº>qtӻ-閧R3Z=t1JESC~#}~qu#٣VLoz+YN; nxd~%lki0eρsA{W#AWH۞=ûr|{Ԧ3%~C+~qZZM[7ΙHjB9;YC0M!=$8reKFG?A,`~5L?0)̤|҂u bvF: /׉FjU°VY]mSR]N]OǓMtҶ ƲXG_C|l=(z}#جցv#lO@m ;xO8Zi)\,L.]NV[E|kއn4E}]Zp =j)_W&Wy#\/` Jo[3vXM;lp7?r*ͭ) CD02  zNJCxO8tyv!SM,p:@%ysPR5mGn3r rj=`p +*`[F0T}t#I8<&aoQ?L3?y:{yx^fma_l&**<alDFkH0w4 G ]S(Th1W:AKիM;Pp˼Vl=ڣ4Xf 3U2tF\wtRUvhWCI;y=mr0MB9ZC+IZAgb\00Do_p"lޞ[+WZ2X}Tq^Dn!$OpCn:sP/s}_`SyG`h6ld PzDDi ]fEfxf' ⸒ /[ dAd07 3A_CُɋL2.O]ƍϮFr&A\' +/h>۹C4jc^w*7ֆI4?I[/LHkrh0 & +ed/< מI QzgWK4B9ɇl4vjNEL2ös;Ep8g1%a?Os:!'!r?{vC{+PA޶pݎB=e^1n?q/Pd[ݳ6~7SHj?E;N8zDRn O;/ #4o3*N+:%[\8;tӮT+<*^[[eLn9Snr\v ;U@7SC~Ia E"(B #!!ZDP c =t]Lbr`qj$/ J0),7+;:>%0S 'S0u_,RPߑw/DROPLWB9G}gSe.bȿNv/qT_%)}FwGG~WO꒯VEj@UӼ=_}W3.N.z},:ʈU?W¥:c4ݭ޻=?\(W/e~yf\/$Y2p+dX#lHJ㳞?+8s]ZOA{1|M95urݗG˦*$g#B80מM _'S7#7-1G .rd\Oqj;ʂOkzx-)j^ +k7, 2|> As~}R1wtKIcy?gsqg+= dgsnN%ٚ"pgܫ%D\#tx|/Kg_5pϊ5y .IrO  + %%EndData +XH17 +72 72 XrEndN0.24 Art al Scale/XMLUID : (_0_6_) ; (AI10_ArtUID(c2738153-f590-4d6d-a7b9-134efb148c6a) /UnicodeAI24 ImageRawDataUa244a5a4-cd53-419c-ac9d-c85f3fea52fAlpha 507168L8q.24 897) DFxL$;W*l$ʝwaIR /gk {%[;QFA`/ozt1.vu<4RDP&2R@bHi[6D!D1!D!D.!$391f07795-040e-4bde-b77b-d78c648b04a0d0408df-dc8c-4469-a9e2-119ac6c409db-7671.787766lh +W +n +Q 7psTE›sLw>)2 98sH  A$54L9F{#AIrV΁orplDY!D[!T + L2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D! 4?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode(fxmlnode-nodenamvalu1 /Inttyp/ArrayeGaussianBlu;childrenstdDevi(42attribute; ,in(Sourciresultb,feOffsedxdxyyoSpecularLightingfePoint-5000-yz2zsurface5sConstant(1Exponetyl-color:whitspecOuComposoperatoin22arithmetick1k1Graphkk3k4k22litPaiMergNod20%w14wheyid)AI_AbgeflachteKanteMitSch_id/Def ;TurbulencbaseFrequenc0.05numOctavesstitchTilnoStturbobjectx00ylpha4fractalNois4MorphologyradiudilaDehnen_663erErodier6GaußscherWeichzeichner774ddoredFloo1floodblack; opacity:0.dshadowCdDiffuseDielev6azimu3d121000lorMatri0mGrays4--OCompBlurT1.nentTransfFuncRtableV2 FuncG(.7 0 B1CompXferFirAll-1x55yHolzmaseru1.bby02DisplacementMapyChannelSelecAx(x3sb014animNadditivreccumunoncalcMlinead5fifreezrestaralwaysbeg0sfromtoto15c8cc2c8cccc1cccccc5144KühleBrRNsplirepeatDindefin1remov1 1;20 15;200 200; 15 20;1 1dc050 5Pixelspiel;20 20;5yellow;green;blue;indigo;violet;red;oran80l1re522y688-143200.ntatisx00yVerwirbelungm!BHd$)I:H @V2[8‚p !@   \3 +60;de=vkxeFj\jmڦAj,Zuoљpqa +i}c&C=pz/Ⱦdnf:gVIibuJ>HMQ˪o;Qj\W /V%N՝I)`8@lB7R\%WMH4U#/T N]mbIQa +]>*KI:#+p$Q!2 y!ģE/v* My$Wi@j&=̻Dcɰ97]bd$wH3YYx*D%L临 K"}]<@jޥr P}x83E8thrFOFNZF[т8vl2_OwAʡت5"(nRȠ*eTވa{^{Med!XuAYɓw@ۗ?*"Ҁ0 䫇)g}zL%uFKsY+'mAKi=rWMv {4#WɃZ{ +}i5q\=ډ6 )a_ Y;`±ځ&Q4Y\$(^TwR)m^f?O+*M.QTFJL%`h/q`KDj;m"%e @r2b!31W;2 :.k6!I6kHP ?^U$Rvә-WUJ!v? tAîh֙a$~v*3SZI;ɇ+L_K i^5M'rH|Ibtܔcd5,6?$?T%c,ڧCPC *FO{( C]_{M{,[,>a0*(Q:IKh28'Iu@(D gG 1e|FK!E +B'!) {U%`Ċ/E 𚆍ܗ,2iĩꍛ@a,!2e%5ab2S!oV9 [N~@]lDT:V2Bz #e(]tfʱ%=LGb5w敿4! +bq_ y},, +c/Z GR?¾OYl+;zk,"x.*gvVu\]g*SkJϳ?yԛbH #̄'YtޟpZMٴ(3)m @v U79,2<}%6y$,ap +~k6yv\(H&Jad&/Y#Zt1i﵆ыdU#ޑҫ$ܚ 0yc#*KB\Hk1ln̸vd& SDP!+]L+k&̀Jc&a!H;1xQ-sHmVi]Nj*$z6' 4(Rs3c2iNƉ +uqP rL{%'Ψn #UQ$u3[}HnyčÞ,KrW!~ W_ҰBYg2| +'Og"19h=FNF/l]YQiŸ`N ]_eRkH%`Tmr(qWm`&Xt8aTL1Z +A=[QۖV3N9eZl~՛L4fdY 1nJl^-NN9f:֞ip1:"B$VAdE c0f$' + En,€DBI!c+YB));CsT=yN?Db;9 p#lwu0[/K*E¨ˋ0Ҽ>ZmgA^r:,6!Zk#$SW^OyNR2DF%gz_˛] +%@-.'ɩ| +?ṭh퍎f.D},/*[w #Z Q_LH 5kU>.]ʝ5Q4qנu)?xL0SA]mW2dS%K?PAP60޾G6mwJ.K n5%d&" +'?w+ҡULC 74BM.A;{ө0UxD0ptUl/B#u:\Vo@,l^RB] +ct+puŸ!Cɼ_Dc2Dz-#V~d7DC {a5'x3rw2G?k*D\J(ӛc2ᤖpta{wzD # 5.0 U?CKha$sBalDT(!@B [& +ǣJXga, %haڙR7F 'TLdhAz'E(PJAvxlW꺺̻ʼ0˼۴2FwwTO[YY]Ճ<\tGujQ-FʻɶkQ!*nFՍjj#Gɮuo~Li"vR_O*,$LX@,<P0@"4 ö\ H4&4* (>6WNn+qPM[ɲQ!;&oMwɓ^UU/{%Nl`WQ0yŔTsGBQFbaF*BՕw}мR8 èFza$~za,\@yh E%Ҹ@< g"< THH6䀆6'kJ3=!etK}v_ g#g⡁򰐘i "<<<ͮ'N9ogNFrW!%IBj1Eąp$yh^ה{0G^w: +ccBlYx;UgfeBi`@&08Ð8qya Fo@XȖxh6/(m{MQߣ%%74# @P( e1@ll<\:rEa0c  R MQTuOz+PR 5_KtGl֖>^(+ef|ɀ g^6LN23JO25)J`1 ͛WVg+S\ ?l:ʡXo+;mS#\Qƿ+I3 ʂj(Rsfϑy[#fCt|=0 ;%^>4ޟ_j&Ej\ dַY $.,BM!@!FV@fi~4RFP}H:kԟ<{޳"$? !\u |E҅~/{gj޵6zՇ?8k%äZ,|vT=9zC½kһFpfծ AYt]OMpn(x@Μss%j<lY@` +t{i)u*Hc#uBkLppHL/Q(ʃd5ɬOݝj654+Clnõ 尚U'4M‘03@e?޼]Ek:gӮx`OpA HE 5Z!g]1h1D m@$?KC6~bpF|0C5gy[A*w@U؉J:|Fdirm#jDŽ$ ?RdzઍZ]4Pg{BYV[wPΓE>ϐhu&s!&"IW_|l:TM)i p5#Ck6yAGt_kdbS{mOz3CqIC/Kꋬ( jetw Pfwc r_h/m>5Zs>4Π810pሳ9.D +ofx2Ba %D$_drf`x'?J;,Iqr0(rO`hwa_5"(~( 5TRvP^cbjv{Tg)H˲ g }3#K|}"ʻbME}ZdbϰX`@%,T+D< {zzLi-<@fŋ$Dps*qyA9Q!:*IiJ[7QTD0$%)1mu4ϨevEZ d,*k"g ghj1CÐOh hp$jA]{o$o|DRB Yӑ(trdៜhQf,cЅq=+.zjеÔgBH:hau +B+s G{+^naM.#=[&Fk0{ +AaR6~ r8gda4BR{ #4'%hUp`%~%rK,7,x6 ߎ7o߁Ge1C(mFYɢGAX/h QNa ++m/CusUY+0{BKiN{0 OT0˘Hs]! +b!|cY u J +ʜQR9II:GaR$,z֥X/A?|J@Eý -ccPzhROim9m0KM}$pPD8>l?J +xGV[e)> 6Ir-OLR +0g>Jj h1b$L;g)e<$ K9ɔ[l? ވ> w 2d0.F*c&kB{*locg_ +7ڲ~W`&K\ryse_Dqk+{"/@^HQn<=pd&ZL%E 6E$L=P<ʂw^G1c{XbQSk"Fшѧw&|zyۭj +ŎTaQ]> #dcH<,B(d+Z +!w@$=p1naEz+ddt#Fϲq|'WqG.dqxE~*li j-f^mv8vzDN0ˇy +`00;)o6(f;PL>-Hj[C@mۇ 񴟭NHXri{L,މr2:Zt*PLGqbhܢg+x NK$c2g +h+6`s|cghg⳨76i fϣciZ1g1(HLG-ȁ%C?}h!I78#IQ||>3|KryXBH=GPdYQ>:. +ՎAX&58li +/J i\?~`ˬxI?zB^>h.Kۉ`%Mə*9XnU]l +ʗ*J+ ٭e1¾7n z#z4V  ,c~d@2uȾ5<%cAt{i"s!&H[orU5:`(ء/G. &Hal@ wV|խ"HmbVФصZ=XP +w$.-p5ֵ?xѠ3_jRklL٪kUu>ć=ԓ+fj/{0t}R☳9X Ml+dFBBEL +Gm"%`-9mlo\W6Ĩ;dOjjZIvViZEy6Nq7~oy]ɅS"GJL-Ί$a1)ᬷɩ}:0mD"*U,c3bܧ4ٍ6v5:m4 d:XZKϏjfo:X'4n.;t8O+] +D-(Gƃ՛tҮ3 ]Q:m +|8q8 z={ͦWx4H%- WHDQl +H@^kA@ +WېЋP*CH.TNˎ2h J"U\?L宁 kx79N/L`wHo/%VPwۚ$˺]zr=VVnY*&v+5d>Ǒ P7seiayC1]0W\)7cH.lS6AeQb +}$;Yz xH 7ԷP@~j#fZ?2@=\JVGO\\Po.`fز { ;QGˇ%٪쌤<{pMW7䙳[IdUM$=z&G6Ҩ,Iƒ7jV~cuntN<lׁ#Ia3d+ϙ7$OgiPܮeqPfG?:D.UA9"DŚ *9wĽ?y?;-!RDvtT ȭ"h뺚~7ё T03qOb4]pIDs-1Jk C f:µK9`~'b;JH-+28 9yoZzFUUFS$C⭓LO<$Nb%Ѳ$]ȳn{k9?dҭҪN%mD2CIi%Ux:Fd<ƮE AaTqUIOKS]QKk}V,|/D G[US8Tt  21FB13oS=k_XWރKYO5Am*O4S#EYUS :<1SkN(̧^Jb_DP 'm4"KvJ%$dXĄ(oY~9astYЉcZ,uۀP9`ʄRZ ^cc5<aM;G5O{x1+; p-;60²ښPXa}wpy5} U2dQA]ؚp F)~@} ݿ:n_Sw[Z٠?bEOoX:Zj/O_X'&l:%tt UU]V@>9Dp_wNj (S ӛ﵃zQ]zmJ"0NsiJɦ  V״5g@v$=$_`X r٦c7b>#}~v`،R/I1C-ˇݖcHQ6`ALGׄ]B)F9 I±O +ו%Q6],$XϠ/ޗm=ӭwKWp5g1k1oqe;~W1÷iLo=ǻuWRzW o̦;s:ΏT_A|\ʟCs{&EÁdDh^>|cP1! ThEy V\%OL7$xI8| j^ +9%˅kKi]a<§ ",e^O׋>~c|TL~u(d`cMpǽ=Yb&NyoH%?pqfNQ ax7ܟQ컎,A;@MAc*@m(?piD͙,Ŕb;i +i$R^L8^2<b!c:* AX|D!߽D 8n1)a0+@7ԫn%ɵ{φz[*%W_R4g%P.a~ X`p'^e)G {PLf}M*P'B9&T +"6]2MK&|֧̓/j!i_=G$z(YFJE 2m)i mi01j%wMa] {% Y26qP6FbdF}RZx +'ZI)s"_EsN ՎҬpWU# #6Mya\k+/V$4Q縆w$D@-!æ>L`qO߿)̇gBR(9Uxއᅂd˗D2LRݹZ_4l~0|HNd>3_:ӑI *Ь{S}:fմ9a\IECT!"'@V!۵!&1G4T5e k!EuHl ]_tiu|xW.MC2hMBedh!3(tn4c"F;(,b9%c0 '#H[`@nvR<.+QꏳXgZUuw_q !~#L4WTP;P"ՍsɄwr<$]v9jLɚ7)s|ƈPEA8SyHa1.xoO t4OB/L +kx:@XX剓סl}iν̱"Wmf qrڥkv׊ί,zE_7=A2$RIj9lrWK.g"zږyy+rMƨGj *4ǘ#*|%|p>I!pe9-X xq<peM~Џ>lw6jx-BxAV2i  7ݰ=n"7Q5q?Sk|u[ ;+)CuNYf |12at;h()!W6:3 F}ʧCon1Bg2Ձ}z_|0X^>V +U! 0ZY<%s 4 _ ǡk[7_Y%'%mUlĴylnP1*MiZ tuѹ({F4XbՇMnZ1%k~]a +I(U6Td{L +Vʽo+W̨y5"%{~uƹ+[xbk[ʅ~eCi8ZNgǽY&H`T[tVgTӠu0|ŕ47c}[we7 +endstream endobj 16 0 obj <>stream +7?RG#:ôz4-&fs.8|3۽̯Sc(rܓ$pny!@_Y(L} , k9kxPN>,J3-7K個 o~qd4jU8Zmߔ~xZu~¨AP(IWzEG9Y.TU"s`65Ľ #ZrɎ (,A92; 9/3zb)N%n'` +vf3`B+0\E%j$Xא]ߎmFkqGC)IżN@?UF`,4ob^b(ЧEL×C`2Agl3qH^ՅL>o +2 D>2%ıΝ\5dn <ZqhG,_<5ZkR(ydr `6")hMƂ`A2HW` 0G+(~Õ> Dr :^XcAzڵK]YSrN}aҩXlB>/sfXn`>ҹiM[xKN %ҥ+wC(R4mCzìy>u@=zIZB 3`k 7 Z{O'II'3cz dJ)L^,YX<̼߳y)*NŕwUe힠RPV>:#2+ㅙ?Ybu&)P4?Qq +co6Iy (8=)P&KY2LG>b"&D*<)cᘞ*DU*Sd {,FrRfz*iM=Sq( @P Jry*ro&{gaf,U*T&pρMk3֎LK^ڠ>;>2˟؉mo]_T_wnu!Mޝ*վA՜R&"64;r_2ڸܸ{r2^B3"Ejצni Rdq$CAju LF UDQ^XP8Lv<cBDD(M2l4eqSqU_}#.ӛ@-mP25ej2LW.nMHnr홈gj8(I^cRTM&`XD XbKFg]q#SFu_QZ{fcz>"jY>&e̮﹩ϊkls-{gl99 ++'ze]0a;"W2:7)(Hdp8 C49I( |94#2$i +0iah@Q!Bc1"0CB12D S'όw/R[|RɨT%shW6tW, +S3L1D8Tc;<w_cM^\'vX5 +D"b d-~ m]~1~?D6< QS U=βMŮZEIi[(#jzzK3("KIJf?Q)tJ6Eԯ|B=erGkآ߰,t2442 +#ѪN&#*] bOk5hgS ;-@Kn|y\H"[n`Ȇ$_-Fh3ylo;0a,u`c#o& +IG+[&]&._;*^DeV ¦ LM=clUVrTE,q|JpFm Ƞ +:!7K9!х:&ɽMWEL+:K9:Ԧn(fAKdƞت!՞-<|Kk2P_іCN!t៮"E@< ?GvKasQbz!9.mms| +Py-|ZqG|s{Bu8}g6'ܒB47˸#b6dM1n5|)VC^ӗy' ~_C!aG]ȬҞ+GAD ;m#tdq ˏz ұ]K,Ѯq8h;`.=vk}/R.0"fhF m.I2z +ӖN2(`|J$IU b]cXo]U5es1r-ske:%%4'3ќS(qG4i4 Ii\!]@A4* +f$;V$TetcؓD=C;J5$7hz$ =e3Y + _qO1(۾FmpQ ?lMV-ўX{ +$3:,aeEeS.9L^ muƊ䊊AEo՝߁.dO{QYJ2ZPA;1#*M6(X+Fe}4'Yp~| +[gSkZ1tTʗbX񲅶WE72s6,+̽fru6&PV ʹ46f( +ެN|;1U$s?5F4Vy7z +TYȌkN7 :g5g|"1bx&_#dteT DP ;5OP K,|C4fT``XX`6@@[ ! + #DaB p,,` РtMXL@,0Hxaa!a҅D&cG7x@ewՒI$|hdFq,ydaĢ` 4,LE 0 +n8z( A+X<`"W0Pa08X4@0Pp! &:XTpMT&pAD(X@.8l0!a1 L( L|x` ! $21 hpP ,*0XlP!bb"ƒ" +L,:`pA8@!Bą&\@B0Ń +  +&P \XtxA0@abQ  +&P@!L(H + `20qa 8p1C22"EyS. F C)fl{ okV x@$\0ʬ$Hpieju~VGtAæd 9bT+&Uڑe}gc/Ϭf^𮞓CCOʴ:UӺTEE$PAՐߺؼ߬c왏;[ÖR}g7ML]I32'A'AH``I` u{8hnip84` #0HdP ႇE + Ԙ駦&6nxWfKdD5 :Ub7'digG{w`_AzUQ=dxX4啦U눆ƞgMW⑄ Ɠ|dH3DԸv4ڐM YB]Weӻ!ѫE=]#SB(hY7u=NnJǟ $d0zDeEC+ι۵Ϥ';}Z\X괨}̢ٽ3Lu*NJ` Ə$\!Ҽ2F-֍ҪF6Uee痍 ƙ F 6̠3$1SDIEN5w5B3  ;av)' R $HI`$]K4T5 Vdg$\0ll<5un=Vﭺf\tFGywWEga {Y3bp_Kf;YM$ 12'/ʹ%mI`ɌfRvͺ ֜)#y.hOɌ"MvL^fTF2 +wue;'Г܂^RdWFiRu4xTD)tC/<2RGCKSU, ME$1su\.@[]_єT1*J.N9W岺bvro3.ٝ+2u +S墬"I)6lg)YXf$j%rJ N7by\b,8Ʀ_tVEW|'U[f[Y1k(4cG$&*!&^^tWdtΠX]2Eg;ʩɬ5 O&qf$Gnc%]V :R}whaQC֚0za6ɫn~s:]~ej=)${hn<f;H'7au.$ F+5Jg)Fm?9fVDx[e g´^5J(YiTD'a mVLCWe{' m;5a+?S *VGswv}Έ]7`z, O1Z9kyڽFV}fw&%Vѫ&֟53I8X_7/{'i_.YeǺ2wW7~^v+Z@SGTu&U/<(e74YJc")›xt]&sл")ucJk4_v2R7yF2XieМٗc 9) )ϱ#,QUzx_+u#?=!sQ qm:Up7+J61SjS;˦G5<7[/[aû'֜ԇ眎&9 []{\k.,6O_ù<ҹahl6 +)(EYɞbtƚvA)|aM|h0Jɓ;o:+bXb#ԜbH9hl +*v +%ozgIqjz1mPFW3Gd{`eZӑT)΍DNajbX /q:j*(+9Ȭ2JD3t-X<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4C˱ݭ$OsvxږFUgFIwRn#iC4Y؜.}#$Zgfw? n4|տCweG1k4Uuy3 )'S8)=kcl(]7Ÿw;TEYOJz̺ ++_ޑ jBGw{ɾRnV7WN ]ܫLjבAgTOiý}_u~\'βxJWIȒ3nw^ SexYf!_4Y_If?i3XuT#WVfr8g75EuUږli\uS* yH(:) + ]oS6WA9H)^ݵ ^gjvfVi k-g]frXެdw"˭NY45XeG;n27y,CAQYi,Cɒit|ѧzBM572$F׬8/N^SjuQg^jus*dիyJVh2Ԯl-w7egǾu UnL#Be8rT#:Q15FŴ[;+V`m;,'DS n{ؓw95YQ|̎Yv3!aIfCaOe3Y쾎ګt|rii3;#">: +bk*s~t*Fٌj6um֘Tԩ!?gyBES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb *Fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaleXhaf.%G,ϑd%͐ͥ*IV&*FI;?B+]tob'c*ZN6?h0}26WVWzX8HDa"BM0<|0 ,\`Bb!\ !`a"B*4D4HD| a၂L@|Ņ"(,@ $$$@p` !0.0l0` !4@0LX<8` Ppx`*@&,T + ,0  X\`DHp@aAT +0 p< ($Bb``BDðaA‚ ,0.\XHX0B×ό  H?<,0Ѱ@!XP`1၃}Pҟ @p-yxX`P"$&&Fd0b*! "0@pHcpx`  DDj@""D$xxX U`!a 6  ,XH5u|Yqh,"NiTno],s.49KNnDLJ94+:e}Z2CXDq ̛zM X ތp|v9?Qr[y#?Ԥa ASMEN.e4\Lb<):.yc&ӔǨffGWc`ZY#Gk]8fVY(wi\DjbTYӌ,=9#6}wZoOχGq甹W18IW;RmXȊZiH~b#44$eVU61~2KZUs_NJ]G'r˗uƦllGfMh4EtݳcMt}N)u覒u<]3xC)fy^7lP%VNvGA)eeG$ב>d-oyэ")hH5E%C8U>S4b\?Q5`Rc&9K"Vh}kvg)jIˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRɺf8t tr ]&e +ALj3*QiISЭLO"O96s͢;L&˒\.9Whڭ0v^>CbUM1j&2+(f:p%vU *&Ӓ#Uh>lp-k<AIn]~JXWڙR  my>&e&+sF-3rgMQBѕl6h#5ᯟdH-2Ca⫀tIXn. )'sۧ^ 5#43DVVܮ;$de{ tRrU&oQ'ߨFo~zT%4'2RօGԏ)2jl7Zi) #tԈJg:E;}2+oʜ;r.CKN5> Rmxe*y#ᨳ92ʚbLj賢TdV1DF.7sWY +MQh*X3swx * +ƺP$|eOfު\]e3vB#b +m9uЬ{_=,1mƣCtttX]>չE&dŠ9:LTؑF3W=ΪJ(sl}Iʨ:^R1 S܋<2 wc&Gpa(y2Ic篲KT-,R5Dx!Zt9EYFe}` _Wkm^(Hbq6;ǢYcOw͙=1w sԱ)8 BNe m(ʣLiPl;qY ~/v% ݪSe#>ʝ"GE(Q2rJ, 3'O;2[eY1`Q;ߜ0'H#S8@`eJ^>ns9H6DBvsFS“h`S! 8p\1)bH]{jȰ25g pZ+.;\b||YlSU_998*3`(1 +|"rt_IF?}K0^EK rU! 8M76ns魛|cZ4cD qhw7 " S:dci*;u#d7w/WCa[˝Hfr&ťdZ!U-KբKJC3L[Z\*{L}OaKI\eIzv-Hc6VD]vVAqED:q޲ +\|^&gM[T`|5NO7C&J6e͎'C2(*xl;3|ZqQ9"dW_v(RC0^&.e:<5)r3n@!Nµ$ e8M̆T]#m~YRXb6WS[@.ͺ5lF(af;)5Dm}E 6/4Ԋb4tH$duB9@:qDl˿Pƺڹl4PO@F^vJxo&Ķb/҂07V6{I U½J5ٛA^%yvRغ +¯,* |ۍ +T]GM_8ews433lcR&PMml(b2pqN<`,CHN*PBDhkt(Kd$sTs0̈́װ3Rn)Ƞ-9U.-2mcvv7?qhw,Q6ʕ=~[:Ƣt-B?4ۊܚcxR|߳WrkR˔ﲩ~0<+>PL*AK\Z!U38l=+ +ZO2iQ5SWpbp(zX<Ӣ/i@_CLEFq]>Jʌd|Kͱ/FFb{΋nV0Ty?hI;s<3#|r>׷'_ .̈́>S. /Q^Zg\PJ=݌h8DZ%=@xIOAN`LV3#f8@Ldz mnRM_թN"r)9aqLo/) +),khп0'$" HF{ T0DA݋tmEoQLfQ7W'~;,I`4'3$MvjzPh gDTд UBng1Eʱ{&dx&'-枌XuR6@m(iwō{8zPc! + ̱  eXr/,,+q 4O!cҍ/ ;\Q/ +uPy`*:ͺu"otBs0~`@Ʃtic&PY5z2?~vbΡ뎥WB 88Y"7)-Yt$kzDB}/ΣsQ"}F +Tk%x2]5nxnR;V3DMa}3B.ׇ>R,w/F<1EJ)?O֡ ItЁW"Use*0%;[fMWaDFӂ}I/jJhҔ}djA[eFlqZz$Ji,Vm5t}2 +?(N(|hH-8Tu%Sp\{-%<7H ?P;,XY{7qj]łj` n:_mQseʜɛ4|w̡h\-dZs_6Ax=Sƨ qj̷"oSTAŸ⪌ 3P[={D3`n*ɬMҠΞ":̕`Aηo&6(lR]fnҝr=N'Ů`~u0ǤB:m!a4[(^dvmUV~^^+ٻ[IYd-{CwVmX0͓ls|/-F"X|K )0xT_RZ3Bjz"iئ*R, +DIsau 76; YF w}fO ~װ?x1rTsD Ȇ +o&F Wx ],TҋqK??)ĵݙL*C)k sKTYsK'u*frSR&ဤr⫎'Q+rH{w +?J sDž^pnĭ$1E @6 M*p +3Wm Wzʯ ]el_ϨxۃGńnOggmtdԩaf"g'VA@-Mq+B5fCBU:L WH%ڲ۲rAq$ЮHT9n7џc{St A6fU$F s?G..H\) ̼P(\H[n*?IV4d; z;{ԭ\ L8yX1܊/My&V=cVA@ +Sk!4N,ш1"Ss E8[xN{d` AELj V(12 o؈#8bODJ^TL{5 +-y*SN} .9Nj\\x\ID$V$):Q+L0-GրẨr{;WD][`X扅j(и[T= BBal3=.:Kչs7)m,ƷQ_mzR۫\r6a8ZF-0Wx P*Evp55unmx$! ͔XhÓ}up9Fޙ}3 qT_5>,!"l'jD 'K]!}V?(w/[aHQc8z%1 +WEV&) {TG2ߘxyROI'topJa)`?)bX4WZT1Q͇tmʚ G\īZtX"V TwӊZQ}s1i7^<]3~FH\L4*{>١2JjoһD~p$__R'EĖR=bJ+bF #Fu [wnϟskk0QᔒҢ6|q +DBAI_C3d%BK8{ɟG9?]VH0 wk&qN1Sf$ +C!QnIa4dpIߛZa?' 1d9$ +7(j\#ȾxvQ TT*5 Lv/8DOi5jv! TuW ~~0j/u},G݄JP`~MXn 4֚BZVi#%񛌒)h_R`(8S_иo_)ݚ2϶jПhcJ!ބAoAY',Sc/\@-JgEšSt Rhdvl`A[-nǭ /@A;H/Hx}z;r7>"ak NvcƧvAD9E\/aB*dC\ XoDr$t,!0 MFe~ten>jTBSNURG+!) kq@Nx ]Z~/MĒF'~V +ҩ9/JeY; BbB?0a[l;8R(,B+2%`77@HKˁ +;D%}P$nfד ]$HPU"9yQ`:> vk0.&:H .d+wXVv'CǯGQ&E(M,p>BКab4Y"F|?r,G6GtJrG [䅳/ /Mc1H!a0 Ly 6*dBkBa6`XSӝb8a70!+uar41ѹ5컐43@Ȝw[hs򿨓@H&X!]{5|q8eFcj'rdE)…˦K7>z3zE=q(y@{9% ;I2V.`Xp6oq^޴n'rdvف3EG@3<^B4T_=B2䣋 M_牨g F܀CNQ@ΓVl:dƽdh9D>~r!?ڼH*4,ݍAQs La+C1hz=bA1&(N9ab*J:_syZx;VdIV're) HI(]U vMWI7^Z",%@x@/?V+lʱ$22"pp~!ݳ^mfGw/!J1pAO5m+f@"J`?vO/Ubw)_h)XjvճQ>$#I4 +#>,Jri,e H(IsCTS7}Ύ)iP`JǝFJs=5(uįҞ[]f'&'7W2cZfB1X{F5}^.jZdU ߹HHde@n'uHw9a1zC, ~B*DcfØAA7gxXɖHI*?ۖ֔dDke5V-۰r҈i3d=![ `u&v T><Y +@= @($Y^.&z@p +;0Zeq]*Dhu4/<W4I iXLʶT9c5܅`Of(K. nb0=m!&"%HfvQ w=kJoЭN=t\laS;ޟ(pwcs[ˌ]!^0>z EH nJǘݴ{hB9DG#9<$ىGxU&AL*>>5 8~+ +s9oPGoVz&10x 3\ Z/DiGi5nXXΚl'?%Ʈa):ƕIL!ÖUi,$cU/R>*Qk.'#!nu]gٿF'PD{6X99.\HI+,OtLH[-p8ftyJV(G1E)а_{RKfH!k +mnCS)YJFCI4+ rL*c7?8O;faA*rBQux~9XI|Z2~̬+Y$:g/ BvZ"fT|,1Uhωֶ?pq^b9guGrm`WJr +HrIPdȡ蚪¬i"-"CEɀ=8Mٰu,(eЮۆBtl}BK'CXg);Jj#.X0Bi󡕀WMYnIkbCs[u-#%C5F}'u%|]<&!WHPF-yŀc0rvIkLv}6;!Cb5t1 A@d65?czK%+*D.N3f|R!w< `m5Y\5T٢dpE[DlEMu6I>*5GF|w[@-\!8{.b&"l"7?6MXyz +ۄ. +ItWCqIĖ~ Yu(Fq|X䛢"wظ] ?UxYhw-([R ޛ̪Ȯ,qc/N#3\o%\Ve~l/%%:ٸ.+6QSG[$4_ b/P q|@ć/T[lN$ n{EǺ)"FRL@.)ƤuvITkFߧ TP bs =0Q4JKb\ hZ?xt#~G|0'pgPNZQ(ŏlbm.TίbJ H&0-=MW"5tv%EDT:HcqI lچ@Jҧ[8p"~Y RF`_mxdЦ9O&$pûm/Li)}֖'i$:I$ݰJ +Fj&ֈδ1^TRS1O`GȲ;&TV tˁ=QQ䤹ψ#hn䛉a~qf'!akm(g #GO~>N8.G/ԙ'}[(T E0yd\^U['0s$p#d7K* 77,+$uX*_V dZ&  $/bLuc@XWҙ0k@ٔ`@COGdv jc8K]\|0rxf 0b$!{C#R؛ GdjA$2`w:a_o++Gh6qtTHeGB=9+ ͂|s#A[ .=rz!o-8yZ0f=),"ŔVF5Eb^%RHR)v6E)T:PGZ`jox +H Jx|@kuZ5iYko9؊CvuN`6zhrtkcqE/պreNNgR2'9FPqioᇸpM0%) PNO9s@ H(UqgY +0T gܐ ̻|3> Y49~H1Sע6Ce KxZTP&"#]:,eUE3 f ΈfUU~!,kr@*?,U2@ kNR%ڄ.F/} Bk%AXi4Y@4䔤 J(U9"KJNj8RTQ. h1'Qm> <@Ao/fIu\APhaa4PhяOvc1<Ӌ2D|-CV`'Ȇ6y@).m2W:cRxX!84Qf5<[il͂DNT~F):n>{H&ڬo{Z7:f\~LFHl? =C kvbM]UXvjE%2^y\vgO9rRƎXJH]&ZvEZD P'TSu_W#7aI6YE7,] )iWRR #7+03>b2л8&E4M3C;2<B9s~am(|@y%sx +23"uK=3o/P +%Jv@oߊ6ds[HP7?gќwc)h4`ՓĦj㉢@ .COl0-fN)3`auDj֌{O(fB6{]kieC2SBTi;n0@}*٭nif$*gE-`\d L Dez*5w5.a@-&N:# p%О$0/7-E []6JJɶ֨ukʽtf:H\A5O'0b;'}=zv_o}{JBaڬ =Il 6ڎ ;kA' pcz=-C*PaAǮl\qFY9Z cE!^H>fvL2锦?I*G-׸e6̩@ZܕiVN[Ј-)H x!2d+ Pjה?(*a Mi$,ǔS>J/䣝uZ\D-0:! 2:9<ޔ͘t53:@d(S*{BJ _]A]]6,֫8j%W_FPtOAhN2Z"wk%4rBG!<`#?Fngꂟ7x}"M)l./o_v816™w3'=>xL^5QEE.XXʄBC-߻%gӹu887_`P򝠐޹1&MV00=':mT\8xg'>Jɞ<n l! \Ag%_ce{JIj]cӳItaʼgS&;ݖo{Umo5yC`~cQAh;E kJk*(=4sk$Bs.~J3DaqCזs {.u-֧9$0Ob,5lb!ǒ4mm>w߄+:XfJ~Ya8CFO・^Y럥iĹa vw*TaD&jK\$ew3b,dt v1ZKiNJU|{P)pc%Zn«cy<ֵ>~Ưg^1? |EBɉ`D_\ ",m~⒋;e@[hgؤHiуR= 9F/q)`v)XIZQ-ve\HeK9JGT'!(X1;wltF&Jt~{'驙s`Y 1a4fI|ˆ)ōՑ$09d +?H+c~KjI]Aƅ57hP#'iWi/O送m9*FLQCs{V88.<*xb̶WZu!>Kbpo_Q%үA*y891ٍ8BAuO2$׻0EN@~ث(=$ߤ5iWxpG}u9(rB,?DHqeH!A#m_%v##FV:g`Y2<>rJ۸_6cilgP&w Q_2Z{CK&<0?YTBmJ !wP>ZHAKQBJv ++īr_mX#-cjĀ/'n5 ]RӆѰdϋ+ *mrˑɃC~q* +qΓDC~,U0lx5ynGie.uSO ^ Ckz_8ω!|Z6a:8cWt$JUuLK__nB3`h;@U.!6 4`h~]쿙\tN%l61 +{0Q01YojWTZY>|r,#d?]RD]~,*؟I_Mpeq}#g?d$+IaI՛APiI*`XU0a{Vouҍ0"l zsoCl)]xjTx.Xx pe0a"M꼪,a C&Xb8?ۜ\y6ڴQ >X'wRJi\8ˮ#G3ɬ] 3~dL\6~,aIRjǤ_VhlS8:8o(=t5B\,2#\R ?{ b|6ܧ6I/գL!+g-n9WxS\ib!wWӈASw)`" ڙ+ި*+C!~NWihG8VbQǛ(|tF8F(=ò+Xh)A^h3֔|8`AA GUZ g*hy[yH . Ю0(Jo9FEEB`hdTخT_E7e5w u 7Mh),6CQ59 1s֑>I[oK>#ᄈ:0"H٭8jHd1$Цya3H-#nTAETQh*> +ݣG"+49ɼaH#St~$VWzH +',l>zrlP΁?.k{r'1M|oaUVо#[-mؿpoi~c|I*v/(!k7C=|aiBUͿҳJ51$ю`e.-y?q/ȢաQA5bQꪘ8@00/L\}zu=n~9Cg;N?G7$(X<3mD vc0XʚGIfA 4%Q BmğwG "G*XjaɁHmiV$fJ3L+jmkzi;= HSMd{D5LmhC}R Fl', +8rCKJ]*ٯS%!NN S0 UziXsqu\;cפ܃j/jClo_SE h78iWO<ۚA8/?`J9d@@#&!1o~\OiT'a,r EHŷx|A=|>SCVu88'dMN-^Ԏ nrG`jb S[FD3M%s:Rہ./23E%k4e*0h+hɷ(KfNs̈'-yS#\9*b$مGk?J }//i(,ؐiMh|q*Ukdwenp{tXw=O[\ j0!l+^u1Υ4ŏ&g-tBu* 2fppYʫXz9 xJ@UNW +h0,)lSѕ>SPpJ0*Z[ZM3݇X5bKHgy&^ -I7ȃaD1.D KA@#H9\;0I +"5AV&D~q(QӠ7X jHK$nX؀b2~] +B'n'v"2&VW uG_x=|?om_hx8#@]Mh #^D(]_HfPrsFƨ7n ĖR/}@n V >2>C2mi4./U۠߁Y懧/`S/2 +ODHM1VK&orbUP7kƩ^ 6@Ru:YcL2yut0J:mu2Ǥ @`^b B?m O8?[ rbS`)r- tJMI`n͝lP3 σ.|%G6#N4].5$-JEs&\u.K]rƖi)a|G0Z%3$&jNx< UJ5V|h_Q*k nqUy3:}"Bm1f^ Cǡq˙)m6 'j0X}I꽃9'zͼ$K>\1HZ_v{\2#>c,),⃶{G+$4IXl9FbR@Α +[(ヤHan}4Nx4Km̑E }nJwmū{k2jm+.qxl1 E͖iXlQO6r/b \$9G[xjSfCe>Aaz#D" 9( 1Pw#Y  zT3w(OV +B&9 ѡD$٪+?Wv飞S,E\n.v)+u'{JQYe sȨK/>àT΋AԲCl<rY,?Ѧ.{Ft1Mr) %p>֊a)Ц)=l.IO?Xm9|Aֿ5@ [ MRLiĂT >f0C+D3l[b + e/ ?'~Nn2bw4:E[ǰǕ/i>Jh5+jQ `z8Cq0<$,RcbhBb¨%F/0yQۼhbksϗqgqpDtti-4sq~Έi_M_gU +(&Q9 rK s +W$[_`,^Ț-Sj.GG|<.b_j/%Qo<B[=KzKƖ{WQ[ȼoC=Do= +rc)3`HޜxV7$_ !%_;d~<%Z8tnMAkHJC:I +:BygyiWk'Uz<bp*1n*ES!t5쒂v<ѮꃼNG 0{QمBNuf21{1 (!"4)_YUb|hD'ek$ +`:;E#YqjfYSݝָepH:P^.C>}Wm@c@^gf~!=`1-S5*gy5aR)F*r`!M 1r[+g2E|*=Z=M'Z&[`YmhAT Pf*Ig6 3 ' `4plt瀥w0:QG;07s[* q; z}P-RP`q +Y6;%7AU?Jܧ沀5@\}"$ 6x{.39v\yr3,# yD +)Ș0X%f!, j?o#O27`cTgg\}K k=rGzJycl<\(<8!v6 $+XQl2rEC )JM!7-qP1-ITP'2Cx 2µj\ԚߧZcM*\DŽ!?|'!qϓCqB*2@,0!!yd K7p4 P]mEX}+!TX 4Z8 p|?,`ļ\תVTX.H.؜0Ah1 + @a?*uOʀ "RTi"9^hr2uj (nŢ@7Pn$hu98o8Mr\p| G3ro#vIOI^ P&q)l ;f2$ +4)C3W-ƪ/Q)H80e4J. -WP>:X~N@)%N>2zT Bdyɗ\ r$[ZIqNE1|6㶗"c"#dA#KC%r6u##"HIC.*~@P\Ig"k\$< R;v!:]/ UrY)]"034 /%.jA-:P"&X:5`Gs Wy<_WiY>VA̠R|+@4Ty}\h]'n(q@^2^z$YxW< +?1OGfˀd+3r먧nTO8b,] <Pw\ޔuN! Y]ML F&߱JB*RqܲP@Eݓ*slIp #p<^LMqY@Cxa pxm $#2#P#Efć|S[r,yBu@@|]DA@^KJCf,򕐦^f.Zkh)ElC[-> mZrkZb䱚"σ4ƪR5. g!F~EsZM^_e_6rP^kLBZD޳|x. ܊ϣK5U /ǢS/iNA7r7F6Gޓsw_ n{9\a/-(00X2sYV*!<_VoO롳AHDz%zlK~"a}H$IWc@D%zWe}g~,Fw$xzмk_Oj{c #{Mg͓'`XN=$JJI|k:c+/cy?.,Hӕ,-L 39zY^Զi戽/a"a*43$U[XyWFX79 %@h,J=Y\mE*ƔBdA'Xe 6/w48,"x:ԸYz`3ܵ&Kl,!V&pEUK{P^g!{6S]C~`. ,6a(gCZ)ꂼ`ʉ#Goe2g{( +H独.3/+!M8 [GZ19AkB! b,zI7 +{SL'IJ)iS{Bph<ޏo\(@=J%1 {}<ZXH00(fރU {?Ox.ޟ{?@dv. h{ E 0@;m"<:uե؃=:+tnD#vĔS̐b3J'Y5,q5X(?,^{ +HU`JVX&|ʼn5iXN0|\SZ) o~Mh%GNžp?jjNCVJWKE UH\m lnxF" ! ,h+ kVee[E|+(TVWPZѝHwBϢBj8 ;@"bi5Q nJPq"*{2$qeL ]VD}. KlM*i*BrpY`#mKt8zm"J\|&>FLC1rE¥/\H ̯;$l,,0@NvCCOv,ʩz ++>˜6ᅍ0t?/t# +u=>“,8~3qϬ@Z#76使v. `DcGs|(ʢ +o6i[eB䲀%x`kЙ>x:ḷg,0YXZ,]Kqv _k\ml߱/Dk4!zF߭\;w nsY-VT'GțWʊ*0 Y7hw b`aO-;BwDpp%^ zq6lx(fQ G6 +9' ^}+{`Jb#`UWw<ӏC2'tNΏE,0!K%Oҗ$gE'.9{zތ·,=Bʒ= u. lfdFµObC`tnLя +c ++KU_\ذ TRJ)(qA(xsq%MV3:^1. |~SdN0XDGJo*x6pЈ>̐ekC<#5W֘Kw}gEOL+\:,Uu5bREt N\]zr\?m 嘾Vt)̌zLVw+*+S0 +<z ŒހaFe FA +{MabF YGBKPO([\x>WM ;NdN̰y0>CskRz[&. Ԛ迎f*zY c$օ=LSQu*W'E@^. ($Т\-GVm'wj`\/[l|AȮ<&+1]gE90H%7KdI}4VH_~W-zhGu}w 0ՅXRoJϞJFy}rY%{7!~&'3upZ񋆜q<9'y h2Dv +[q"HrijDMi\ +["(ϧdNZہnd{0Ӆ*==p A'e2.r4DGgs;GSbm 2_JOS[mѐ)\Alh\i}""دn+/Ɖ,$@Q:I Їh~MF_ ZzpY+?$b/)@K: wq3ZG u+y|6G"qSz'F4M,Jh ̨ys*@*GXĭp.k_6L)PK[%Dk1XD-9UH\Ya\ ,Jk0*m)_b~ &\Cdh$  Ibv!F7*cZ'~AЏ2"{,dS3Lx!w@Axz)'Pu0#|%ͿPYqډ"3%M&Sl"_“*<“UYE]ڴq~ q,ʢB-/46 +N[0hDjEI0Nʝ:= *wbt%x\sM 'V}/m@=  ҎuW@jgG̓ /;dֆa6\w@K}Evg\7u۰뮯6m g;H$CF$lmG*D1qҗ!it) iHgbW.QS}p4f'meeeo2&˸VF[Q_HeϜ#7iB]IX"w=9 ~]v0q08ashukZV]YUO1wj! \HwRJ*cT|_wv5zm)LAg8R;WAe2XaAJ:.Tj?( L}40R쀝u\ CSmBI3hRg>nXq͠y3p2:IeEYtQD9ڥ%Kt4p=\n\>KHߦ_kߊoEXS~&FFg_}y^&7h'ډo76Gv +c!=TߊzHCVx(IĊ42C|Sc4"('0.L¸0M%ox1\f)@lU“Iu';N%5/Œ L!sY`{ DYR%\ p6qr6mziSo|/m489ߊ fEAg`}U ](VA`A +SF;_yyԬILvlY _+V'լh%4:};`0; CRf(:<ӷ=?F0eTrYsMH1C,3(ó6ջ .X!n}h#;}ww"MBh\CIZ1͇GDTX|N>fYq&eL Xu>v1Y[r6APx -8+λ ])9}}!NP|:IO?ĜTϒԬ(gHy\f@霗xn;z̢'r>&n|Mxw/ O28a($y!u"K.e_`PȦzhClzWv:DL !D Im(툗Q5:C;"q)aJYbP҈ˮԆaCm숈f' lC1vC 0V}efHE8lpR +?[יH?$Mhz}I) ʑp1^0W5N[e1TVҍaU$GCƦW08.pLrYLySh-4wT.@NjY1!fuYm%16`?t+#~-t83WΘZ1|lEEH ghyKUx~QxU F槌SqYt,Y. pY࿼.%eטяz[)}IϦ/AѯXQݣ/KG}bB. d:.ߴ!&SsSgP_50$UQ H@aU'eAz. JLt%O@"J)n C%\8HF+. -Ί%{&-ҳ4~Cл.81z,wx&+(=\ḌƷ 9.m$qBpuJsByaTVAmP`.e^=-,94ӟ^S:6r_rdmWEz0-oHWW !e4T<󩷸L\Inn(& @!}[Pnq/C[4dRzݟ/dgfp!9)ҹ B{`itr㷹Dcv~e@D@1DhX^(7@qٟ5]P(OJ\a}P#CpYDhVt\ ̫Vp`.`FB@IHj8b +4:P^[/'¡"sY7)RYQȯ)RYN:.ե\&5+hڄk9YB+,7嬝r`t + +1A3#d~VٙAsL2eԒҔ@v`@AZ޼QcŤl̿Ѭa3Mc:!q).6K-Kj$M=IwtH# +oxb,9FKm~& QY1I.!A!}b33z:Z]4bʮgLk{ pA!ZHC_j~OpۼMdRiOȧ$_dPטu4G8s?:ƍm" :`hRzAL_.  FJCb^pfn +sxG@kY1Iq6uQ, rW%RH, q*ɛV4!D<.2J( aLw_ {䲀ր2&]IŸimbjU@Ξ*EE JQL[%D܂ω HC-W .wepN9yT+L +z x92lZo$#RD +|‡K]V)r#(q߫> %QYt|b_eFEt+b4QW$B ׅ>ĎئP]Q i19!&}XJ }eCf~Lc>/ZX!}T}ZE~!äATTEP bRA>XDYc=1/#3*7v4/KzEu,ШK;'DorĤSuiLׄSD/KD+Y>.تF +21\&/`.T tJ6hm=In_()%ѣJ:tܰ5`f;ӗbmz|)VQy,1}ӌ}B_8qm\zrg?("F'e2x'1I +3~]t.O-VUН#K"2 VI L^ gCwQ_ 40baճ C4*F \H)*,& }yI"1p%4N85*aumt2 + 74Md @ %|k6"B:T,4(40aH,9 (b9HW29e4o;ԑ&*'F ['= 9E?MC8^hoųx]oIJXK*k4U7df qKJ@V&S+Sئv- HG>H"6Dғa!,Z +|oum%D<dv$͢G#Gobìm$#xReDy#wVm̪V_*x ۜʩ&cN&Ur66ݯK 0۸݁w`ST%`捎XDZt.um/ +XT4pCj3AfM˚+۬Ih% m%q(CpܞBUPɨFhSQΩzyHirc r;rRC%|\bvFH5'⾷OQR?LxDpg*%>5bLS6hG=vU2O%RM.%(;\:m{= UǼ($\LE$-w4EW*A_s 'tTq4}˒K厀̴H I[K"n-r$ϋLx!a\[4{A`mwy =jNf !p•q=DZ!ڲA й>r`6Cۦ>lې=YCe盰+d$ށn:B^%<4MD7֭:c/'0(^x>J#kw_ Wf=ܫU:p*IH4|cD90}n1e:$JjυCR뮂GR]ԄB x:[8`w&WvjS6r(+SP4prN*f|)}LB[(x}qV?]0u!̤EEJz XǻG]*C\.Ҋ{qW"Qѧ ۍnY̩kbFarJ$@ 7v1odpb\1{) ϩ M 匭$|fEo'~} kMԜNɗZ@_zE#鯞LbSȤW#@ ޹丫 +E/`憓@fغa~p8"8;@L R[G@7@c +`^cHL@=3J**-khY;D{~͚&Nڔz18^H9gp ~vʕ[ ~!+?4R@ 󼰥iceF/}|;">%w`8@X?e͙ߚ]z%WrbCxR%wMU.:>`D +9o9!]INal{ArL^n$+zk, K~ 9m%Ya0z]a0  yA7KBjq 0~PfGqZ`{{׍uDA.&w7NMMjp[v@n/ס$e5o>euL8>t5%L ݸ\cɧEpy1|;#zM_>9i85+3Rz/fkA:V*"mY0w%LrzvT?K]n+ ܻ +8i/~A֤(sGsLQhfVcধ כb0Np妫o.X٦I1=x9R,4XU~[r}~*$~58}lI3% V+UZ+rѣ! ca1@&4s[B.Y%_]@H܁47-( ++וfLjfn0C4XrvCF[n!?(ȑI]!bBe>:)'| ~+C99To#L3pK30~2]*Vk 4Z0JS"u1a8&Ӷ"uX1jH-i P Dz˦-?齉כB$-߉4vԧ@D]ECGZǛX%v͂+k6R|#gy |+VkQ{Fp!#2isM&0L@ʛ};@{eŚ||pkp$xb.V#2[iK8WBjN6F^cWiQ4tc5b8cރ(t[aQ1!Ek_;15Ä`EPe" )|QgfyUFoi1+;~}pRޜqW&#4A]mw inK|?kz+8P F% +#766ВPj1]|}6+jz$L Ye'H]}2z;[~ɫ)'25E'u[6؛g7yj{G-럭ap}9dcUy7q^0YIT[h=d'qFf!i4 \mPȥ'UKB\~G꽞'FO%ϪP ,s*euʆk ?gy7bG j/) ,wFh UMŀHC1pplf0y~cWE66Id]ruŚm1 plԢxZ! @mTy?nn!Ko=u>GMħ }3ЦS7xM5<ЊL)tD6rÌ{Db-؏ +Bq [%Jhf^#DU]kp ґMsle,A., }37I/w#0c ,hxOݼi'ԻT8"=e*{H:A;")L)vڏQmQP씱xDLS8$jP5]m8U H\isŋ$\Si89\g$︰ØJ$g?4TV#/Pץ!1 ;V3ƺ>9fdQd$"n `ٴcot`UH߀tN}Q19k9ԞG hغ\B'Mc#%J9MyR!dGaATL>x#*2BlaKc'w|#C"9׿ɈP|w_Z,d0yL?7}*cKe` ޹0ݕk`ÞC xop!UV fF| yaC)3j|3Hz,hLLSc;5A[ ,_!ҰWp尿6\xf2`D8FG;3K\w21 lTBb* (Сbg:TMj (U/! [ˡ\eP@N)ELh^!%JrN28g8;ZG?HAE1p*y+0%v3O$O}[M zmQ̀O^4VqٿU B1( +D8|5K(=`'l1-aE6wi?g.g%N).Znя|[bnCN1ϔmKEizBn&wKR2O~gq9[| NWx3AF2.SY3abYg;GTx;ä}c-`|p-?tڡcE ~ Uڸ̐Hxw&킋aB^]lv)Ӻ_><eu%8 aL ®> pmHz]=fAukHlŞ@V4FR5Eqn1oC,ٮ @ZVxdgIt)hlfkhOztsh.H{~qh/.O +aGИ𰄓nuiWccvnl{9'!he~W椇VZjVK9vB>s"#ex@%Rg'B/]<8ފw<;[IR:9,11T2&=8Iv/; CxY1e{:mI}y4J(,'fZNtAK5xIYZDgtk˂R̢gT^`"Q Na)4#ēlA"P3Ifv(O2Ngqռ<eu43 +Z2>БJW?@]T&>+vڱ氵/E5ڋ[Ea~qsܝg/`r BjRܙR e2ÉvѩEc2k* +wVH4# n9 GK׫EE:zƶ^H4f&%b6&JĒ0QM&/%:uiV- >Dž6)Yծ'mr۬)2pgB{uvs6cωW~%% M6y&~j|&TGZ,qg}G%p) { +ZR'iCԮ gD6ąB x{<# 3 ۞N=D wȔN=m[|'Ƀn g1йKt۪wҲ +ut ?K !uSa6^Ry*MDOL5Ȱ\>o5ɔRw}TS!jEb>m]9"4FQ`s%{ȗm#K t&;OU̿>(x쉮WWY^Ԑ?wܖedM}Ȓ|i0,שLr`CYJ"jيOVmʂY:ˎ3c  }|l} : +֕ʿ6 3 ۦXJS`'IKF/ . v\+#9F:%Ӊ#lF g?wovI +Q9sp2Wf(C+.ji dY5yTNkQOZK$$emEKH:z"nh%.Gزr;Nmz(&I_!ަK"'Va TvR)K+t]1Fbh4'-k|Ǽ:nO^ܬIN[ FsK7R6e8sGH],Qz=Uo_iLF6rTžm ghD<:EX=՚Οv0;GG(u/W)$dEl&cw-tE;\4UH:(&@:PNWA#|K(3([O,cn|䙃9 SpX.2vc ¡ :5Ѧ,XY;aﯽe&'we /%B)C3 x{L|quby~/pðK +sg_h a ˙RkĺR$_ͤRt,u;".ݳ7Az, t`<ѬjO2뇈 # DtlTD [UP²FĤ@P[cjh$3pJ7`07JFZ9@ +M{q}¬Fovh,~ ~8o -c%E?"KEn(MY̟B&bKI(zr.tGL`u}rBW)~2/*7g) AR]_+'c Y2"3qN7: n;& n7MX=),Xȏ𞚒4GE? 0>^=20w\8CJDt#KԾ) m)=hةBL֚#9Z6ijVgnŹ4G~%gܱjCS~rHSSClTbS8Q;:bm ,2,@r1u$-udIS)h+4u<ʇW>&^%e. QKMXZAY?0P+s:`̬v_ 4cH_,u5jKv>;x'}\8A7aJ嚞x{*<,ԍa`#x6D ljEd~JPؽB9*o=/<⺳ɤ/6&)Zk#_ ex?Fzf k[;E% DH+ɊTP.ly[Б GXq)GG@9,k,Q4ritbYSmuL[y篆#Bo|۔;pCz)i5O<*hPJBܥqp9p!W:~C/]\ e`Zz' gvJ _os@ + +ut41%[|PoZ>O9o5wF0K#i`0&Z=L!BlاRLaayYkʴFu +)N(˓+UlTF`L~lVVf]|)*^ݑ *e6X1 y>Lk"t?n힕f#]s4-nh$vqLYȕ¨c1̓T}3t<ؐZP 3RjV3cA)Di+I+Q&_^}gk;cݡ<>h-, P5G#̖ZWx'ZiVC#b˖e4ePVFw"=\.5 p/ ?풔T6DeࣛhJOjk +AFqq˚[i+ 3P]^4Y]&a`Z0o8zӡӺet:+N~\.hV nvf8_(&}k&yhE3dt(pZh]Ve`Ӌ3S&ў!m`M\ƁFd^*]aӴKFsysV*ɋWn&T.UVKO2:P~!^4tpZF{ahaCqh异n>crZǕy2*N$ -uu#ʋnR%_~5C/ 16\ 6|83цaDärsGE5p3jܡQb6\ap=4?-N +˶2ԧm'G@W1D*(Yo_3|43y]>0W͘i$!`uIap?ZTmWcY0"q!u뱍g)F/ؗ lSӃX$t@{ mO}4|%5PJcG*र6$H$LO[& w`Bj~`L@,|欇916 ר*c!$/qxSxkv[.ǙA} &5sidԑ=JN*j?ZA0_D ٻC5YDs +Fhcü:EIF'zU,_8bF7}z; Tu<^"Ĵs qcO|b"+ޛO-'ΈID'1I.9% u.,V^xu$~G-K`gMrDFjQDz jse}')t'P-_g-b|mmMs/)Wи?@TJ8aǫX#6RNܬrNdr8t?n@> +qv )+;K_GQH'PѾJb0*'\o? +9E)ɓ` 6;;/ .q>Bx{avke>H8F{id|Cu.LšxS0q?ZD.3z,]o'uYUj['TfvpdBU})$tma73$sVF<++u~9`rf`ؖP1ox'K姸$[1 ΅OE3"ү4gd-[s~3&U u +_vVKZCdq>a$y%M!AgS@WP}-P~GCoSzK,\c3A?>m앓iCamE,2 `xde ^f)V>L|S-q/mt]@O6C_N=_%cV&t*fnҶOSz1= G ^wR'i>~%!CgmDˬ֨yAIǼ> AV};.df]) "(@,*F/ B9514s:C']ywT!̥%7iaV{l]Ǚ D9ykc}|BZ)-Iž8E͙nخ\",ffUw̲Cs_bbl=uȊ#¨LE gvHs ɑm!(ܛN. EZn `3e(XבD<>Ռ|`␏<#KpW;Īյd6czwl6`dWR#|NC&4*u ςFH~6SuIsl4kf8K4y5]%}'0ObjF/G&uT#TRb@QJ|5_ IRXT2Q4*$q\׃e#=_Ziz(mT#!vQ3z]ž` +^b v1OqaCxO8&*Y^]RR? RWd#!Dߡc e^&,! pcv 1 ZA**V&t9#MKC(2A:cz 5Ur(@V (jUfbaUvL s #'u +:Q8Q# t.Tj@0kS, 8(3aֱtv<:h$|_^ X6UR8D6Ğꅮ De@X=0m <=E 6V31_`,nb9#$<[VjT.Q.{^.g H!y}]p|)3{`rZ<]Pcʶ1*HC{i&GqBDzH}[#9HQDK8r$ꄛ,Xg.єYIbjSrb/!ȼ>ƅA 73%3Y +8^}YVJ>֡B3Yw<,li8TܡeQ|V6I}ރ++\2>~Of79D+٤<ʝD Nj(q(4ɰXo^?_h^`ٖzn}=lCXË,0 ߧJ+INmV( +HMs` ZwRF?-0D !ˏ8l\FɝiJ+=ne;I8JFjyE_=ҧ!U qV@ +nSew}h/EJLFS5}f iO /2{u +Qb c õ ;7FԌժ(uf\q_^aڱi*"d ¿c<5뼑\oE3\p5<'wnON_zɹFF.GWi3S>^lFiIޱ<+xF0oICe2U\-`+҆̔%0XQ톿Kca j|DujCλ_;_r5.^ Yr/Ctv>D %O6C{QyG͝I\0N~ ;Q?1uo9Kv< uMv$ 0s7RhRQ-bR AAa2į3)կ9(1=!ƠW'JI[ŁbCCIBc ]Qp&Xz %66G> =58ڢ33{uX>shKhB e{G#8eEpe=0i >9g~Z%ǦwrsϩCsYpr Bo%h;~$%1hYWlCnP-Gl`meU\i;[DT?9Rg%L@uo߀3:>,V!#vЙ?bԈS=d[L%+pv2ѻrb*) |h@Jӳeò4?mzNQ-: S*RtK긨ZAx/|Aiy7EZێ!Cl-$[T=ІԴ#3ަo'zO5k~rfɮ7⏚6W?kk*'99s6H9(d[|΢0!,KGWp\]LJ4hHe eGu6IM>)*tF, . ]tdZ.)xqY& 3IOx-}JD:Q #qc bF,)|KOnJHEcLI  @?◘ˈk|C5\Dra0_$]1\ \ɒim"z +>H_Y=js>;/j}N+Pyuza +/V,ZLװHtCJDAsj B.Ĵڻ <0@!/E׺DI3dq[.bdi wC2~tv,/+օ15()LgJȜ@ː(tDOQݣht$zyBaE;q٧!a+A<mr tiuAdQ,`T |'e8$9CHCn&9IB(9׈ §gDޝ4<<f׆*N !샋z&z gⅳf\|]%UA:5O߰N?Q4Gv0(:h-tĪ ݇1W>P1F !/3gm-tz|v_"D`0D7 *RE*BQQ9i&iǑ %)Fmtg5yPIʊd OHAg5w%,*+ [n-=2]¼ + " ,}̗ "]-M;@i#W:c*#Ki)qbB,p^ >B/Sp`:~TV1m61p0B?ӗs.;BBw@[0}_;>a#tJYyd +/Ѭ:kqgO,A .}F,{ ֻ"t:ߠđ?EbJR4F+\@iH\((X3f dsu #!I)s@(~j*DmQǸ,z/K'MZ^Bȱe %GR97rg~\84F T#t(o3(fơ; !c9 t_@AYP4',e0$I>~&%v) + /{A}0ˆQeҗfKDXjI<5զoCkӗsY\%edDܯREana2:/dJSZT!F^ht\. p6 +6)6A~w֦ @ԓ#PZ||bZj1F_aF'D_)l 6>1tj93JtW;YVg/ O _KLhU+}~F+ +q[E؈PBF $)]#Pν$ vc'Yu}w<[h, +6pS2dbzv]u]7 +#@D\B m)kJtmH;bC| 0]UGp锵ib=̎tF=ʻ" * N}s;:F'Ҁ@!܊.qv. N(\hFs<^{{@@f|^4|NR/TЄcsc8"7\A2깣YMIaEq?F^SܹT; >ݼ 8⦆ ƨk_<8SB(o&"{AG;ma ~ckeăAD^H #S~ft6{ PPaЏk71Hv}A{}n7" ÍϠ h6߫$-~ Z{CpݯRX^_jiRZ1?42]i8.iZ?lerxH8EƵ3@8W~>4}1H~,5W+<-mWd~qe4$&٤XsY<E n8B@vT]Y@"(-_P84! +s{'qWz UXp/q@D#yTӆZ'.`븻RmԢMܠbK+)RJwAh:ﲬӓXmD;+X),zAͭN7J/:'A7#Ҷ8:g?`|(.*̅dE(}f b[B2$ DsuNt!iφ15PU'b⬘эhX_oXw@b"%`{\bgrez9;a)nWXɘzK5B't{+?jlM$0UE;`/p06z +5.+j@7؏W1Ct\?" D 2CWas  <dx H1q/+ް0Ey;D$^+ԉޯz0z S֡Wx39b‰{pS:F)u @5GS,晌F7ꗳ21/Mi?hD?.dm S[:@Ӿrnwa ߞuBs(;oNcuvt= gNwm)?m7BsI喷҉\؝>2ż &Xn=VG| nx%Ļ<[Ɖ.cf^䬲nMH1=7NS& Z/j΂ItW᜛l} _+ 2A%#v鷱ԥtj$^VC4<\V}|}E#Ўx:ڜ +ڨ,|Kw1͖b}NLk#pV@'(I!UWR+Ǫqr7ڔ2e*qɮLS:)w̴2)K}yʨL[eid1!ʴ~Q20顜jü˫gX Po8!U}UݗV7 āb ꫕`BhBrnwMJ \ת"iq"k!-8gQ)lbsaR96 4İOe'i:d M3 pwc@'!h +34j\ygA v>. +2_\`#aVfuh^F;+Bֹh˟x2r!PIANT$YlK U A'0A_tAܔ@c#E}4I[%dJvꬌ~E? EF_)/Vxdm/t 撲1 T}\Cy2kc(k*EDee<,)etu*@:.K4BChuWQG1J~q4> +<ݍJ^kIe3\!JO WҮf>(8 C9hNէ gh?A ԄRf1a#( \#i\thblG +t^t#pAG/Mؚr #$-֧D;t" '`$'ǫ׉ | mii:慞JHe`~UW70(G42yR8ZH1զh8ϸJ( +1 Z 0>ƑS +0"^(0r| +~]k2XM[ڬ:DuKI5SS Ҵ9JҰNYT "~6 BmnXm "n ?Hp2d.<k.)ޒAԕZZns\=# 2t8@ps%S+ζߛTPkoȞyM _GEߛI737y .}9IotIJRͼڛi깐AAqna;H>NE[8:sbo%e͑=7'^Ȕ9_h>"ޜ~ r }t.poX/?O֦ÁZ9E.RhZeTjA[v`9Flno)⵼IޮL!pkDkc]!q(A"O0f@9x3>pw⒕Aw.M_W8hGI&^"7z\(K p_ç7Ƈj:RNU$*%.p64{5_q]rp$]DW3iElFiº6wڪ.Q 2 -!oJ<D8 +L?\bKi9VU[\jo=[ך};SR ُa^A#p ǩ ubM?~36^r!fw.IܵMnpcaF2NS@H1l+` e.yםчi,Js8=Ra0޲nжAR&f.͔&` 1 !3%~NƸ3òH[ X.Bt@|_UU})~_!Զ_Uƾ/%g?̀Ctg;I| OcWj:AUtg9WrlUqE5 +,+>anQπ S5vi2mV-8l^7^hym#b/46% +dDo/$"&"dcI;G@>b8k7$=ih67QRk[ 6LeYCLPd!mVA^0W +aQM(hV3]S 6Eq{zmKſt8(>DzgW@m l_Lޱ^+. z`hL8KZoAP>I][xȺWxRD(o\Zv+]2A-0ٓ[_9D=)nqnK&bj8|PKΘ{)PY_ZTLQuLGrgL>e 8 5 W읒 LC}Y`㢷%*DDlX!:>LHHWv9gS7$3tA5Pkqp틂W0)fтoJG,]IfPI s͐M=x# `aM_V;ņ4ld. UǃO0$Ǎ?8OPڹh;K.\^*IfxPhMh i ^Yփlvt~p.\f^ptGOݷqys.,(<(ܗ)kQV3߇j 5RFlקb0PIvOǎNatUc8sgT5%}JN;&;줚t~'CX7p"58hx_~-e!>IR:HQ251˜|VV^m3bK*NC/([L:t,K~A)t +endstream endobj 17 0 obj <>stream +-mZ] 'Z5bȜF)9O\CK"%5Tdb t`aA" 6J~_> >f_}g7ښ`M C 9%A +"W[ȹO+t:x!:M:8qǒ@& Rz60ŁS QbĜч8>1xsyZ0A^F&Sl}93 5]ĦeY(ҠOd{t$qQhɭ~xJqVSkr&ǔ 55\ _mfi[t-L;{E1ov`rC)kB7R].VN/-f#A pcol~8ز~8.`sYGŔRO3p=ñ!Eđ]5LelrC3}en\a'l&MAn,Fdg\ +[yP6^~auafGhɿ x}!łECZKӡ?F+-7ឹC];8P4zCB >CR:@ߡv};KmZF=^v`TgSW]?SP!BN!ZĴi,L/??L . 8>9 HVg"1Ȏ[ ImFҀ=g)M=,ǶD6= a-Z:|bH6 +_+`' piK3NƇ:MLZw^n.!QݣB^^¸$3C{U@xQpH_'<SZoq=g23`J?MT,xr3%P<mFD-* Q_mms* v7CCb7PBJZ͍͝kkHk[<Xq vnh=<꺶8b+kah~ +oDa+3bOwV`߿"I.W>m\%{9epUЮ?"k:ex $5GN>APk Ա i|:xFP)TK+)'sNwwQЈ(=iBlLZqgxK9JYv'%T)n~ LVU] p=G +ϖ4OGѤ+[7Vx艷_Dm ?*b:fS )$x-~&.* }5^^EÁJk?9D.ߣƁOP΂;wS8Ń<6]N_NǍ;N~"R[z_jɯۚM-JU984c/80^/9\/K{ܿ]菟Zy+%p!qWZg&8#Rw!|uG_Nn;( Q(lhDR"+pN:o?FAݷz|MnoUE[D2ZUUtD +P"VŪʓwS;"YSZ48T_3)Cmѹ򦄨 +JR"Iym&V&E@2N=|N̻ISN4aFDOhv`v7Q/ xFNQA- <{JTL]}=TqZIe+"ŋX,j!#zM$.h[8y.b"I' IP!Ng8.~։zԼs@@0zQ)_4U[I419q)]1WyO99l9+rb8'/,?fئ@{U7KObNĥ4/¤#r#t+4e~BQF\3fc=YਕKOL]\Mk~ugsX~Oj= +e>W+$8]TXr9?d7M[f4ޚ`<W*dBG8.,fŃN$8Ѐ"=.V@1#&>+ y4V@.'8c""PDyDxT$DȆ<6&p pˆvʀd0\CAB@F 1xp0>'>!Q"Y!ra D.ZT=XUɔxXD^@: +TBsX@Qe`2 U\\t|\8ЈxA@2!@3AR12# +TthEBB), +&`q+4(=X'ZQ)|2h<| 8M^Xp 8tÀ@l! Q,0 Efs b0-"+b&>fH  +#EL`t"D(L%t,YЍr4pE%Q Fcq9 LH9P (lfR #DB!6{h>1(LcA(4b $XLd&ٴ|$>a@DR `AE,l(tÅf8 G $4; "h#$u\Q9>sBC<8M sf A>P\<aHDHP(B8*L<xp4 +P( â(;>BdHǵH +(&lb2)eia(ϩN-FسgD D +6D% +QgBdH"4PqlS c"r;R-%-$-,!OC)A + $2p1 TDaꠋaD))@C:LiUYC$c@(C".^ɅGHytLHБ# > 22ӰbhA, 𹗍[pbÂ!-hh TBfp#@D/21Lb!!Ddd*4~怆MLxF:< a#ē" &ȱ Upf/ +^0L@8<B<| d8 DBb%&";"@dlX6BQx. DE %%@C@D(T@bl:!J '#ddiv<(!a@#d@@  G4As"! >(0$  $܅DEr`PVTH葑ԉa !j> JLv4J2 D IB~bb: Nń l@I1A,9XyȖIHKXHx20PM0#5e~aFsQDHx\KrHhdH|2l40yPAj ~ ) 6 4adD[@6`DR A:6 "Pddxh3bAGOص=<$LjP!$E~Th&PM0`3)3)#'",cLD1A_/_Y$-JiV9IǦnl^ 6[ۖ#Oghkk||wfzR}ri$ovƼʊ؊+#rZOpHYyI0s2 ecX;WDfNܫK_swR{quҒ3Wg+LkZ-e6{x/_{UmڳNy7qO}˗o뗥c/celfCa v}˚ ƶ*Z/KhV~x+ZyVJڋjYu}V*^5f9]~WsNR_etu]l`l׵Ni;[g겧j6lέԖҮ%j6s:sOR)^W.$>b_u~Vܽycj*c)=og-ji?*gwqf:_qf!bO-=7^{Ħh avȜ}i_.鯛;Z{{#^KϺ;ig!hkiW˸ʹxeڛl/-j&UwZN{_Wk6s7֫Kۭjץ^i˧~)}ϚM 2>2d%EFf#a$d+}k6\48f '4 *TP"(X$Ȑ`Ą")tPL|V@3"+HOaP0 +`` y<)R #BARlp`%"xЖaa"b +@B&.%0v-.`&0XR^E!G(04J&Jb4Dt`|Bp|} Ht!CC( G܂̂A!@9 ( FʵH8 GED±dpb0Ǎ6& +ݤ*T'(Ht*.3XD()q4p!1$(p8p0>?!~%Jzƞ柯Vj:Iv\*ݱ1s6JWyZ}f]:Isfsb+o3*6ߩnuff_{ډW}ոޓk嘓e.Jo{n]igY:nY"~$q^=_aޭ9Io溬{3-JՇ}~Xjݗ鈅ln^Zn7/n-K֚˛ֽ8I]x͛ɿm̝u·Zx|iZk8IۦZ+q^NMͧ\멫#(]b?Kͨ׺v17]+ncn/qfow_8IZ-j'N}ͯV\؅R];Z{{cfUJ|X-=$>Zw?-%kiKכӵ#^{Ŧmwiݯo_k3ovzk_JeR_w?fڗͬ꒞2祲K{[黸y~΅{f|wkZ곩w>v{zjԗi|zٴz锫ljYz֍mfgehfݚǍ;Iz~|;޺o鏼nꮎm)?b"gK;ݯ1fbgXֿe^Nvݫ숝uf돫ZgƏfſW}|uؿe*>ofZ$%ssf::V~Kݟ\}{~ҥ%߮]=˧ƈij}zo]۽]&ik]o~-[zzq^e̶SzeZq6wq}],>7k6(_y=Io,jZr[cȪZkۖ)sk}mo]|V=I lRTN`RAFJyIQRTN`RfNȨh61)VNbLhݥx֥-(u٠t[[f3k鏰YiJk4kgeY2+g%1&v!+r娸ԞY_NLYAQYsb~V.o+k6-ʕyٌ5e&CZҫ,fիDn9lFg\ڬ8~D^J\jj Yizֲza1ѕ{k6-VҢfq\(X٠tb%nWc+\U\iZooT;ZsjanZre[Y]̿\-ge!?x399*뛱GȚ 9ԝ͚ F5&kf~sif3D_5NM1QےY7 yUӯr WZcrIRB_Q;MYoS57GZ̝%G[I\־:\)ύ1g3OJV=zTT.tjZ]nW-?ԝOTQ _SVvuS +o;n33k;M\/+SS3 mͰo6U !Shff$s 8 +DBLy=t>>4:"$8( aaq$QIQ*hyw Gek_#!3*nXB-Bi xl _ѯ1DŽoK9Ɲ +֧'F8t)Upڝ +9LoV1ظ[ľ>ڸvPzEF_»^%\_JuJ P'^{ǫ)^\ 7blr6`'ME-d9ZBt}ɥe#)@Rz=b\J9pqYT6y_\YHq +It(8ByYwmg0%ǁr Ts"8N TA&zg+rudqsJsޢ{?gH+ ˠ@-<5 +3pC. ^eDJ̶ ϗE4QC*~{/eK~1`w,heGO{_KHE hkƪ-) tqn e_b\bdoQ`ar@HS1 (h.Zz~1rs¡Bi`=6Ca16%:uV틄bp04/1AfFoT7x ,,1}W&4팅:r_`!я(Wߤ+gJRoD`Wt_E}A/F +:s(1 K)Z11hP|Z/(EIۆ sSQv{(9`yS]6)c;qΰ lAbl7kxMƢC͖F@hD=iBEzB&mJF:EN+Ġ(P?f֬<45PK'zg+Y}kb-ʠ'Bgq+p}xyOt|WQ˘@@1*ZS0,>EP@wƊ]LVK| RbgSK\K,PAm,y^ºd묁 _E供@w% +Wq94JQzCSksMjyE<1 k[BGj-cI3}ã/D̈Uds*&ۭ< F +K"tq@e$F1!K5v?`?</6k4T6O(mD{ٟN$KR4F@Taty,-," a pPL +Fi?JJ! %%WO*Rqg0}ط Fk&ўT sp.|FKPZ)4TGk66@c^Ȓ(eT =2'>5D;8 6z/6qA}=/QCAvWQ +B2A}v,.B0^C5m8_߂zcV%҈ꘙ_Dt k3ۮuW3^CzcA-~MEJw){_cwz8is۠懆UDWeƉK撺.2]2u笧]{cUR_O9w& 3B*@G\ LgXj.nFsdЧ\@isK BC u2Rouz؄: Ӣp~ҨJ'Ij -dvmB]f"r> + 56=I:)-WhW^s-u> U?%:ZRR ia ڷ՚ƔcSG;Qy[j8{*!s1+B P.^ +٪_8"]dﻅb"K>:T/ho >r!BǺ)X/ H,xCᲿo"pxL"\&@mfyO{<집™N8ؗNqzgں +b3$Pbg_yKR* V`.1F Nv/3OGre*uGb;7%w'ΙO!EܙbA XZ5Y4&ę~[,wI=o[@3cW6j $Vɠ=vL9]yy+cx㫂-E kHмNqiz꫄y.-ɧBZ{1/f7}*O{ .kkIzȲM(?03j1*  07f!''щh `S$Tм3#9*1mMiϳ`v#,5 1[5>LXh%cB.`엷ZP4(΅"]ݳms_v1iͪ; \a-"]OM\֖t҂Zr]\h D8E XWyK_3-4 ӟX^=ݸ^F18b'Ű |x$޶ʚ ?>~Fe0S٣LAli?ծb&[:x ' +O C[ V-x&μ>]zU"wk@_+ܜ(_o$NSPUĐMկVed{-!wBW섟a(IPkV@\EImkl4J@|od|I'o%# DE#@vd?3>6k(6ͭpc<=P2z|a)kʜ\i\祓U +0q~WY:L +eBbB2LKsIg#+^(9HϻTyY5.,Ha__$+3MNaZtľҟ!71Lh*LVXg +<R,GжLY?DztYIͺҋ +yDdD׫V8# kzn9!S(Cm㌀FbPHuYzԛ=NhdK4놾PPSޢ1|:0#~P/Eцƾ,r8 M4u"MYM\H0Fc':rr@G+WkTtm0([]3ŲK +.IK]7f&x)AKg="ZŎ=?#Ӣu:bs#U 7Ys̀Y*C j^[;f޹')PUX@}Ov#߫VX)ZFXT?j䀰:>E%6A*Y(WXjm9->\1Z}.rb<:\sǃA. å>j,A5íl#ȯG0 Ytx95И"?α2t,8К&47|A[ނvhjy +XpKz|IȎoڐ-1HPŎ/1YlmI64 +0udA<'}҇Na):5T p " &^ڷyjRSC. d@Ң\afpcU ǞߕЄJFӢ)Ұ|Ʊ}1R Źv)xX}ލ䴣?3<]S_\*AUkv~FO&O#pZe.88f!LBnJE~҇"-x*> T:ÀNR\ѳ{`@{%Rh_DWlGt\’gplMz(IL&Oߤ-}5+-4X +~2YSVgQ^*ohݼ.}Vᛃ!= ,G%nVV]hTCXɷف,)}'/+;g B`lc];Ѵ±WJ~INk(pi>~}3_4垴3JD7Э;a,!y)O#[46DlS8qGeQ~(}+$)]IhY҃5 )S ) +yYji8{m>E9L !4+9=yzCHm<FymL 36D=^/=st6 +3 +F槩Cp}])gdo ^e~zʡ#*e("O +/x]cbΰ4yvm2N)R]HÕݤר߀ޠ#XL˧;.iA*we8(<$ާ҅'S*y>e`vc -2б&ި=%9NPjvw/}RN 65Ё?QPө٣&N.9oyYm6E[y3뚏ԟN>|$v+jn=j{~DcAtd}-|fC$Q?VJ^yT0vJN +zluX|~VC[*k56W-q\!U|&0Ö T +eQ}s<CbPYkFt 6Ah.8~jI: ʑ\}$3sfRt9yD$n7%0GUNc DLE߫RqNAċNq Xyh hQ GjP% ,ʕ,^ٹMuzjBH6uyRTg mdqeWT[ BSp8s`63B!{2ޓ犦N-@N*NVꮟqt>3&&!IIyi8kcKӿ\~AdW*4N߯=:xU7j暑x#%vcn7%FqUlyRie UwךBv;mS+wJ~鷟~&(&XV:ԚR v옗%[*V4paTQm%`ٗo'*\ &iq\)-rlc&DzFf}h< FASee@xӇoa'>֜" Tk-eh>ﭜX3nKhNaE f[LdK3NSC~ " dž:S; bz%f)$ފ&i P$Ej3:f(8FJ,d*V~C^k0Xaq {T;@H)GҨ ǜU$+FYVU(FǠt0d"DS1C!p(a n|ۆ'"FxDy&э~:ݖITy-@0:2?Qt; /i0}C{ǨDâM8nG[}$LoQG<1mʐ!ΘBeQ5ѧMA +q@Jiv蚣0@I)D>-:2sQK>;1IGe=0t$)3NH8zZG `˒w+n"YrB%|Sڪf~LChґs-h ,(YQ%_MH0ZӅS9{RËI)mT$΁}L9`&3$I ๸? D +:yDLKv56̼2y'V^M8~k'9Ul:1[;\"WSG]kqQ֊QQ" K0L"plmGxfߕ#ղVx ҆ؗ!/s#H9&5$ᣁI7$仢Fg<~}'c +p] |c #0r'9TUs ҏr(nsOħ@*c +v"b'N,t +aA6>+r)7'V*j\F[BI@?]AaԴu/z7m7 !L9$pN .0Fa0:-IL- OB]9dZH'TjKt%4=Kd,PA%rhz0]O%p>׏c""}o\Vc3 BV.SJ ?]5̩O{7ۊx !"|haH)$ſۈ@}0d`F*㊕ƅﺞ ʚ2b tȒٯȤO[)XwDwTz0Thjʩ&2ډE(cC$r\v^@ ԥAAKc ֘܅XDHH@F/OnyaТ*T݀Cb +d+rROL7 ʌJ,iTb3,;d{)"ΈB 1TH,TXFr!!|!8&d<۸-TdQtxqN4I/v^:B<衱hkDJ s#Jh٩YdXRQ"PP!7yqʔ^ HY7V6ctPK('#CB4K2Rѳ:^9HZ^V9=gLvOyt3Y&, nF +qI2.@-uXZ + +ynńCx>:شEL$r lF9,@QX"SL>e7u~F`P2P; U Hz4a'R=|v3:erIMzirwܒ™rj#:/ܹJk&$¬TͳlD-i B ,} B= s'Wت@D A__!!qQ"(U:@]0`eWs$$r;D D#T=bk 5[Y9)AX`N3Ɵʉ ܧX~0°H1'K& 9iPd16xV%rY+rti* oOQ%r![08 %)Gdi@NDC졥4>R+7T-xnX/b >gqWDZmFGAå4eCȫbs_DYi&EWIj i]%`D45>5@]K%cyjY OXOL9YiFҬ Yy{bZ_"U]Wot(U3ΡUA2}e{[*b`<؜s n+rGR;L??:eA(ޙ 9^ %Eիfw{+y3L^u(i2N02$<クQG;Khl#ӻ:n zHϿ"BR}FL>AاWQ"B?mY!M\ Aaˆ~$r.$Nfd)Rv~7#bk~H.[oG1 &q384`.8sV%K JIV:̗Y67ѽpVVb+kXq~{䏨7esq_Q O&C[kk-.})`yΔ4?h蒟6D<߆J' + Y1Us@b\H/jF2k>I i#橡ĚH56x|s"`pqFN^yG%ܷ0߳Um8mX$2*b({*CNM}3 2t3vƽ7cRLSfӏl4{|i1p clCݧfgZ,22^93r+fD3Xxħ#30ɂT0^ң.#=.M׺sjMx3ڃvƈߥ)'8*bxh!?y>oǿn.ZnK|43AޭL'$o{4"+Ov_FLoHXUb49s)K4.)~ۙ6 _#6lV +Rh$}^ox 8]埯]z契%iuһ= Zh(<  Po +3BӰL.r#..u +|gp-0=gOO뛚h0hۡ|ɽ\YG?1;C85#RuG| qɇ5mZHpA9s5$$nZ#G{S:8v\ZkMT$ʝ Jsd. ;9~r^ q'O# @C\t+571љr@^XK=*Au6RaSB^3VI0ܝ\/gʷ+FMĤ'1b M |0\l'60@M+292ANwBkm V2='\'lVY!;Էlk +A[5i(\ +'Ȱƣ|?>ʣf'/&)[y29l*%dzSʵfkT +fBODcjCBTA 2fzQ|m"=ln2ׂw&>"i {]xeܢat=R\}#] G!Zȃ"#dJ1%oW}8e D>i3P0at uƬНrNnh:h!D8' #9!GsAN Gwk6P7mFӶ3iyHjaO,q]y/°%=8&9d`7ܾ +(5t[DЂJ=,>mCUk&ѫSU5wK{Q죀,{j B5W;i>TW8~5dDV5:J@Z ?G[H9rj\LڠvّM/,rf1bBY6)_Ȍ=Ӵ +GVx-[Py*NA_:3`xY)@C@?Q9`nMAInוQJP&ʎqQ0 nƭq*8Ã? Ⱥmf,"t]Y!0|rV_񤖪0<6}&dCcn`{MlX%c` +_L !OM<\%yu26yJX ƽ fg&r SK@+k&`&IK@ȌjA,L$ӛdg!~T ]tMjq  E;u1؆F &A/UGǺT75ݒۺh-tL^x ? +P}D1$L̓!dJAjk(̡B6 n"jG490@?(bTt%Q6ȼV OPپI-Z^(BT5_PFq,j=#aǬ+Ђk/ʘVL6+mO]2"W@D' ؄$Lk#Y>zz&);LL # +)FAeɦ/JҼ3U}! +A38Sl.iX{5Ղ9[Ay7'BBk%ٝsc7ŁR-ՎM魙p;;jR "Kv ``U}N` aOъnu$D$\(w֥f0e!;,);hGhSr1^o|5 )o +$~CEQW3ʼnSW܆ S & +Uc%!9y +3ܿcF!?j"0X`IYz$Vc%>0cuHl}P^[=j꘢xvX]`SluZ)nm{b׶6\88ot\-}3;7N. ;?:Dk"Td i}2] 8<'Ns hCAt1B'^5tH +ڋi<$L $(m dx[1KB dm1u| -;Ǹк!E|D]w[쉱h{BS'|([: 2D2_Z=hn J \J ,.) [ŠlzVlxyz{6P9?]3mmƽU`|{Km]wybXlOêzN t3s@ E-}j?̳(v%c㠺cFTY1) +U;YM2 +;3=qV&%9vLAb: it+GH~`Mg8"!<HqI͡)b`i%И>3;޾ѩٿ?e!riLOR'o fRUGDR-i+\{?/2xKFFtlTlWFI;t (N<%G%7뎥%IĎNStd2 (|Q[^~d"=ʁ&jbmOuKzfaF ut(kA $^?&EKolSm^GJ<)NlH<4\Kʙ!i@=ɝ.)q[ !fX+{J9zE J g*vŸ|ڕJߠRTh\ۜM1uzLPmB%Qa!a b筍o{5¬K5X}='.$ުy>pm+Mv;˩wsNcJ/ʀdлḊ@408u'Rd + O)G'((ٯx)`) JȚo+o +@E` ՅRa;)\?4 +> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000406092 00000 n +0000000000 00000 f +0000406143 00000 n +0000633407 00000 n +0000636398 00000 n +0000406554 00000 n +0000633706 00000 n +0000633593 00000 n +0000409941 00000 n +0000410015 00000 n +0000410233 00000 n +0000411855 00000 n +0000477444 00000 n +0000543033 00000 n +0000608622 00000 n +0000633477 00000 n +0000633508 00000 n +0000633740 00000 n +0000636421 00000 n +trailer +<]>> +startxref +636637 +%%EOF diff --git a/01_3D-Druck/Puck_Transition.svg b/01_3D-Druck/Puck_Transition.svg new file mode 100644 index 0000000..6570156 --- /dev/null +++ b/01_3D-Druck/Puck_Transition.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/Puck_mit_Text.ai b/01_3D-Druck/Puck_mit_Text.ai new file mode 100644 index 0000000..79f2163 --- /dev/null +++ b/01_3D-Druck/Puck_mit_Text.ai @@ -0,0 +1,5212 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_mit_Text + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv oKn9RxWleJ/NlkeUEl7AR+1E8q9qdVOVyxQPMBsjlnHkSEys/wAy/wAxNNYBNbvKjoLlvX/CcPmP PQYJc4j7vuciHaOePKZ+O/3so0r/AJyG85WpC39va6hH+0ShhkPyZDw/4TMPJ2LiP0kxc7F27mH1 AS+z8fJnOh/85DeUrwqmqW1xpch6vT6xEP8AZIA//CZrsvYuWP0kS+z8fN2WHt3FL6gY/b+Pk9E0 fzDoetQetpN9BexjdvRcMy1/mX7S/SM1mXDPGakCHbYs8MguBBTDKm12KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KsZ83fmL5V8rRn9JXQe7pVLCCkk7dx8NRxHuxAzL02iyZvpG3f0cPVa/ FhHqO/cObxbzV+fnmnUy8GjqukWh2DrSS4Ye8jDiv+xWvvm/0/Y+OG8/Ufsed1PbeWe0PQPtYIun 67q87XU5lnklNXurl2Jb3LPVmzaxiIigKDqJSlI2TZTW18mwihupy57pGKD7zX9WFeFNbfQtJg+x bIx8X+M/8NXFNI5VVRRQFHgBQYq3irsVdirsVaZVYcWAYHqDuMVQNxoWkz/btkU+KfAf+FpitJVd eTYTU2s5Q9kkFR94pijhSptP13SJ1uoDLBJEapdWzsCvuGSjLglESFEWFjKUTYNFnflX8/PNOmFI NYVdXtBsXakdwo9pFHFv9ktffNVqOx8c94ek/Y7fTdt5YbT9Y+17T5R/MXyr5pjH6Nugl3Sr2E9I 517n4ankPdSRmg1OiyYfqG3f0ei0uvxZh6Tv3HmybMRzHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY qhdU1XTdKsZb/UrhLW0hFZJpDQD2HiT2A3OTx45TPDEWWGTLGEeKRoPCPPf596lfGSx8sBrGz3Vr 9x/pDj/IHSMf8N8s6LSdjxjvk3Pd0/a8zre2pS9OL0jv6/seb2WiapqkhuJWYLISz3EpJZiep33Y ++bsADYOiNk2WS6f5f06zowT1Zh/uyTc19h0GKQFl3Za7JdSPBerFAfsJSpG3yxXdS/RvmL/AKuS /wDAD+mK0Wm0zzCRVtTAA78afqGK0XLpetMNtWJPei1/jitN/ojXP+rq3/A/24rRaGiaxXfVpAPY E/8AG2K03+g9V/6u8v8AwJ/5rxWmm0HVD11eb6Aw/U+K079A3yrVtXn9zVgP+J4rTl0G8YVXV5yP Zm/5qxWnDy3c1q2pznx3P/NWK0mGnae1mjq08k/M1rIakfLFIChqHl/TryrFPSmP+7I9jX3HQ4oI Y1e6JqmlyC4iZisZDJcREhlI6HbdT74kA7FAsGw9I8ifn3qViY7HzOGvrPZVv0H+kIP8sdJB/wAN 880mr7HjLfHse7p+x3ui7alH05fUO/r+17vpeq6bqtjFf6bcJdWkwrHNGag+x8CO4O4zncmOUDwy FF6bHljOPFE2EVkGbsVdirsVdirsVdirsVdirsVdirG/O/n3RPKGnfWb9/UupQfqlihHqysP+IqO 7Hp7nbMvSaOeeVR5dS4es1sMEblz6B81eavOXmXzpqgkvHLICfqtjFURRD2Hj4sc6zS6SGGNR+bx 2q1mTPK5cu7opP5en062jvjxnlhYPNARVeHfr1pmS41MotLmG5t454TWNxUe3sfliyVcVdiqQa55 lFs7W1pRpxs8h3CnwHicUEsWuLu6uW5TytIf8ok/cMLFTR3RgyMVYdCDQ4qnWl+aLu3dY7smeDoW P21969/pwJBZfFLHLGssbB43FVYdCDiyX4qxjWfNDK7W9gR8Ozz9d/8AI/rixJY5NPPM/OaRpG8W JJ/HChqOWWJuUbsjD9pSQfwxVkGkeaZkdYb884zsJ/2l/wBanUYEgsqBDAMpqDuCOhGLJvFUHq2o JY2bzHdz8MSfzMemKkpEfKkktisvPjfMC7oQAprvx26HFjTflXzl5l8l6oZLNyqEj61Yy1MUo9wO /gwzG1WkhmjUvm5Ol1mTBK48u7o+lfJHn3Q/N2nfWbB/TuowPrdi5HqRMf8AiSnsw6/PbOS1ejng lUuXQvY6PWwzxuPPqO5kmYrmOxV2KuxV2KuxV2KuxV2KsP8AzH/MfTvJunKzKLnVbkH6nZ1pWmxk kI6IPx6DuRnaHQyzy7ojmXA1+vjp498jyD5pu7vXfNetS3t5M1xdzHlLM32UWuwA6Ko7KM67Fijj iIxFB4zLlllkZSNkso0zSrXT4eEQrIf7yU/aY/09ssYgI0gEEEVB6jFUhgJ0bU/q7GmnXZrCeyP4 Yo5J9ilA61fGy06WZTSQ/BH/AKzbV+jripYASSSSak7knC1tYq7FXYqyfyfftWSyc1UD1IvbejD+ OBlFMPM9+1rpxSM0knPAHuFp8R/hiksIwsHYq7FXYqzDylftNaPbOatbkcCf5G6D6KYGYT7pucUp Dbf7l9WN029jZHjAOzv/ADfx+7FHNPsUoLU9KtdQh4Sijj+7lH2lP9PbFSGL2l3rvlTWor2zma3u 4TyimX7LrXcEdGU91OV5cUckTGQsMsWWWKQlE0Q+lvy4/MfTvOWnMyqLbVbYD65Z1rSuwkjJ6ofw 6HsTyOu0MsEu+J5F7PQa+Ooj3SHMMwzBc92KuxV2KuxV2KuxVjfn3zvp3lHQ3v7mkl1JVLG0rRpZ Kfgq9WPb50zK0eklnnwjl1Lh63WRwQ4jz6DvfLt3d615r12a8vZTNd3DcppWrxRewA7Ko2UZ2WLF HHERiNg8TlyyyyMpGyWU2ttY6VaBAyxxjd5HIBZvEnLGKFk80aOjUErP7qpp+NMUWq23mDSbhgqz hGPRZAV/E7YptX1GxhvrR4JP2t0b+VuxxUoTQ7+V1exu9ry1+Fq/tL2b3xQEL5xr+j4fD1RX58Wx WTEMLB2KuxV2Kpr5YLfpmGnQh+Xy4H+OBkEx86FudoP2aPT5/DismM4WLsVdirsVT/ycW/SEw/Z9 E1+fJaYGUU4167lIj021/wB6bvYn+WPuT88UlXafTtGso4nfiqiiqN2Y9zT3OKeSUy+c1DUhtSV8 Xah+4A/rxY8TcHnOMtSe2Kr/ADI3I/cQP14p4k0f9Ga3ZMqsHXsRs6N40PTFPNjdpd615U12G8sp TDd27coZVrxde4I7qw2YZXlxRyRMZDYssWWWKQlE0Q+ovIXnfTvN2hpf21I7qOiX1pWrRSU/FW6q e/zrnG6zSSwT4Ty6F7bRayOeHEOfUdzJMxXMdirsVdirsVQuq6pY6VptxqV/KIbS1QyTSHsB2HiT 0A7nJ48ZnIRjzLDLkjCJlLkHyh5y81ap508yveSAhGPpWNrXaKIGoHz7sc7TSaWOGHCPi8LrNVLP k4jy6e5MUS00DSyx+OQ05HoXc9vlmS4/JiN9qF1fTGWd6/yoPsqPADCxJQ2KHYqnOha/LZyLDOxe 0Y033Ke49vbAyBT3W7SQGPVLPe5t92A6PH36e34YpLtQCaxoRkt92oJEXuGXqvz6jFTuGE4WDsVd irsVZJ5PsmMst4w+BR6cZ8Sdz9wwMoph5qsWuNPEqCr255Ef5J2b+uKSwvCwdirsVdirKPLcaWOn XGpXHwo2yeJVfD/WY0wMgvtpja2s+uXgrc3O1vGeyn7IH3fcMU+bGbm5nuZ2mmYvI53P8BhYqWKH Yqr2d5cWdws8DcXXqOxHgfbFLMpobXXdKVx8LMKxt1KONiPlgZc0s8m+atU8l+ZUvIwSin0r61rt LETUj591OY2r0sc0OE/ByNHqpYMnEOXX3Pq/StUsdV0231KwlE1pdIJIZB3B7HwI6EdjnF5MZhIx lzD3WLJGcRKPIorIM3Yq7FXYq+fvz789m+1IeWLGT/Q7Fg9+ynZ7jsnyjH/DfLOl7H0nDHxDzPL3 fteW7a1vFLwo8o8/f+xiXlfSfq8H1uZf38w+AH9lP6nN26MBLPN90z3yW4PwQpUj/Kbf9VMUSSHC xdirsVdirOPLF01xpSBjVoWMVfYUI/A4GYQx/wBwup16abeN9Ecn9P4fLFeSjrvlppHa6sQCzbyQ 9KnxX+mKCGMSRyRuUkUo46qwII+g4ULcUJtpfl68vWDyKYbfvIwoSP8AJBwMgGTjUNH04CyMqxei AOFGNKiu9B3rXFlatb6rpt03pwzo7H9joT9BpXFbY7rXliaJ2nsVLwncwjdl+XiMWJDH2VlYqwIY dQdjhQ4Ak0G5PQYoTvSPLVzcust2phtxvxOzt7U7D3wMgEzuVXUtRTToRSwsqNccdgWGwQfq+/FK E85TESW1uNkVS9B03NB91MUSY3hYuxV2KuxVlPkyZjHcwH7KlXX5moP6hgZRRHmjSfrEH1uFf38I +MD9pP6jFJDLfyE89mx1I+WL6T/Q75i9gzHZLjunykH/AA3zzSdsaTij4g5jn7v2O87F1vDLwpcp cvf+19A5zT1LsVdirGfzF83ReVvKt1qVR9bcehYIf2p3B47eC0LH2GZei03jZBHp19zh6/VDDiMu vT3vlzRLKTVNUaW4JkUMZbh2NSzE13Pix652oFCg8LZJss4xZMH80Iy6zKT0dUZflxA/hixKU4WL sVdirsVZh5PRhp0rHo0pp9CjAzim97Zw3ls9vKPhcbHuD2I+WKUu0O8mRn0y7P8ApNtsjfzx9iPl igJrLBBKKSxrIPBgG/XilTisbKI1it44z4qij9QxVXxVid3HZv5rlW8KiAgcubcVr6QpvUYseqlr sOkQGB9MdfX5biJ+Y26HqaGuKll8RcxoXFHIHIe9N8WSyW2tpv76JJP9dQ368VdFaWkJrDDHGfFF C/qGKoTW9RaztaRfFdTn04FG55Hv9GKkr9I04WNmsR3mb45n61Y9d/bFQEi85wsJ7ab9llKfSDX+ OLGTG8LF2KuxV2Kso8mRMFupj9klUHzFSf1jAyiybFkwfW7KTS9UWW3JjUsJbd1NCrA12Pip6YkW KLGyDYfUf5debo/NPlW11Ko+toPQv0H7M8YHLYdmqGHsc4rW6bwchj06e57rQaoZsQl15H3smzEc x2KvnD8/PNR1PzSujwPW00heLgdGuJAGkP8AsV4r8651XY+n4MfGecvueR7b1PHl4Byh96VeX9P+ p6cgYUml/eSeNT0H0DNs6gBM8UpB5s01p4FvIhV4BSQDqU61/wBicUEMQwsHYq7FVSGGWeVIol5S OaKo8cUvQdOs1s7KK2XfgPiPix3J+/AzCJxVKtcsJZFS+tdr21+JKftKOq4oKL02/ivrRLiPauzr /Kw6jFIRWKuxVilzZwXfmyWCcFo2AJAJHSIHtix6oeBIdF1dlvIfViG8MtKkDqGA6fPFeTMIZUmh jmT7Eih1r4MKjFkvxVp3VEZ3IVVBLMegA64qkmlo2pag+qyg+hHWOzQ+A6t/n/DFATzFKC1fTlv7 J4Ds4+KJvBh0+/pipDAp4JYJWilUpIhoynCwU8UOxVVtrae5nWGFS8jnYfxOKWf6bYx2NnHbpuV3 dvFj1OBmEViqWeYNP+uac4UVmi/eR+NR1H0jFBCa/kH5qOmeaW0ed6WmrrxQHotxGC0Z/wBkvJfn TNT2xp+PHxjnH7nb9iangy8B5T+99H5yr1yX+YdYg0XQ77Vpt47KB5uJ25Mo+Ff9k1BluHEckxEd S1Z8oxwMz0D5F09Z9X10z3TGWSeV7m6c/tEtzYn/AFmOd1GIiAByD5/KRlIk8yznCl2Ku67HFWO6 p5TSV2lsWEbHcwt9mv8AkntighI5NA1eNqG2Y+60YfgcWNKtt5Z1aZgGiEK92kIH4CpxTTJ9I0O2 05eQPqXDCjSn9SjsMUgJlil2KuxVIbgHRtT+sr/xz7s0mUdEf+bFHJPQQQCDUHcEYpULnULK1/v5 kjP8pO/3dcVtK21/QBcesiepOf8AdqRfGdqdSAemKLDcvmLRJhwuY2K9QJYww+7fFbR1nqmlzBY7 aeOgACR/YNB0AU0xTaNxVJdamku7mPSLc0aX4rlx+zGN6fT/AJ9cUFN4IY4IUhjHGOMBVHsMUr8V diqC1HSLK/X9+lHGyyrsw/z98VISKbyZOG/c3Ksv+WCD+FcWPC6DyZKW/f3KhfBAST99MV4U/wBP 0uzsEK26UY/akbdj8ziyAReKuxV2KsG1BZ9I10T2rGKSCVLm1cfskNzUj/VYYJREgQeRRGRjIEcw +uvL2sQa1odjq0O0d7Ak3Eb8WYfEv+xaozhc2I45mJ6F9AwZRkgJjqHnf/OQ2uGz8pW2lo1JNUuB zHjFb0dv+HKZs+xcXFlMv5o+/wDBdT27m4cQj/OP3fgPHvJtrSGe6I3ciND7Dc/rzqHlYskxSpTX VrD/AH0yRf67Bf1nFVsV9YytxiuIpG8FdSfwOKq+KuxV2KuxV2KuxV2KoTVWslsZResBAwofGvbj 7+GKlI9Li167s0gWY21kuyTEUkZOwG+LEWmlr5e0uD4jF68nUvL8RJ+XT8MU0mKRog4ooUeAFB+G KWyoYUYAg9QcVQN1oel3IPO3VW/nT4D+HX6cVpAtaazpY52chvbUdbeTdwP8k/0+7FDflgwSRz3D SB76VybgHYqK7Ch7f59sVCeYpdirsVdirsVdiqhd31pZpzuJRGD0B6n5AbnFUnl842CmkcUjjxNF H6zijiVbfzZpcrBZOcJPdhVfvWuK2nEckciB42Do26spqD9IxSx3zla1hgugN0Jjc+x3H6jiiT2H /nHnXDeeUrnS3asml3B4DwiuKuv/AA4fOX7axcOUS/nD7vwHquws3FiMf5p+/wDBYN/zkNqpuvOV vYKf3en2qAr4STEux/4Dhmx7Fx1iMv5xdb27lvMI/wA0ff8AgJZoduINJtk6Epzb5v8AF/HNu6gJ HrfmaVpGt7FuEa7NOOrH/JPYe+LEljrMzMWYlmO5J3JwoaxQm+k+YruzcJMxmtu6k1Zf9Un9WBkC zSGaKaJZYmDRuKqw7jFkvxV2KuxV2KqV1cxW1u88x4xxipP8B88VSawspdUnGpagv7n/AI9bY9Av 8x/z3xQmeoalaWEPOdqE/YjG7N8hikli1/5p1C4JWA/V4vBd2+lv6YsbSmWeaU1lkaQ+LEn9eFC1 JHQ8kYqfEGh/DFUys/MeqWzCspmTukvxfj1wLbKdK1y01AcV/dzgVaFuv+xPfFmCo6rpUnqfpDT/ AN3ex7so6SDuCMUEIvS9Rjv7USqOLj4ZY+6sMUgozFXYq7FXYqgtW1KPT7NpmHJz8MSeLH+GKksE urqe6maady8jdz29h4DCwUcUOxVMdH1ifT5xuWt2P72L+I98CQWWaxGl5os5Q8lMfqxsO/H4hT7s WZTX/nHnVTa+criwY/u9QtXAXxkhIdT/AMBzzUdtY7xCX80u37Cy1mMf5w+78Fi/5l3jal+YmtuD U/XGtgf+MFIB/wAQzM0EOHBEeX37uD2jPizzPnXy2RvmS7NnpRjj2aWkS+y03/AUzLcUsIwsHYq7 FXYqyjydesRNZsahR6kfsK0b+GBlFk2LJ2KuxV2KpHfg6nq8dgP95bX95c+Bbsv+fvihMtQvobCz adxsuyINqt2UYpLAry8uLy4aeduTt0HYDwHthYKGKHYq7FXYqujkkikWSNirqaqw2IIxSznQtXGo Wvx0FxFQSqO/gw+eBkChbxf0XrEd4nw2t4fTuR2Dno38fvxVPcUuxV2KuxVh3m+5Z9QSCvwQoNv8 ptz+FMWMkiwsXYq7FXYqzPyrN6+ktC+4iZk/2LCv8TgZhDflpeNpv5iaI5ND9cW2J/4z1gP/ABPM TXw4sEh5fdu5XZ0+HPA+dfPZLXlN75sknbcz3ryt0/alLHpmRijUAPJx8suKZPeUy85g+jantyav zoMmxkxXCwdirsVdiqdeUgx1XboI25fKo/jgZBmmLJCXeq6faNxuJ1R+vHdm+5anFbbtNTsLwkW8 yyMN+O4anyNDitoiR1jjaRvsoCx+QFcVSnyzExtJbyQfvbuRnY+wJA/GuKAk3m29Mt8tsp+CAbj/ AC23P4UxRJIsLF2KuxV2KuxV2Ko/Q75rPUopK0Rz6cn+q234dcUhmWtWoudMuI6VYKXT/WXcfqwM y7R7o3OmW8xNWK8WPuvwn9WKhXu7y2tIxJcSCNCeIY1O5BNNvliqojq6K6GqsAVPiDuMVXYqwrzX GyasWPSRFYfR8P8ADFiUmwsXYq7FXYqy/wAnRFbCWQ9HkoPkoH9cDOKUJKbLzZHOuxgvUlXp+zKG HXIZY3AjyZYpcMwe4qHl8A6xag/zE/cpOWNYZX5gsGvNNdEFZYz6kY8SOo+kHAyIYHhYOxV2KuxV lnlCwaOCS8cUMvwx/wCqOp+k/qwM4pvqt21pp09wv20X4f8AWYhR+JxSUl0HQ7e6tvr16DNJMSVD E0oCRU06knFACrqHlmkkdxpZEEyNUqWNPmDvipCY6o8q6LcNIAJTCQ4XpVhQ0+/FJX6OgTSrQDvE rf8ABCv8cVDAtZuW+uXU/HmPUcnelFBPjiTTPBiGSfCTVpedQ4mjRkUAJ+IVo3TbvkeJzB2fxDaV 8+h6fcqC7QyyR0PwAmvY06gfKuHiaDo5CEZX9X2XyUxqMZjDhSaqxI7jjTb8cHG3Hs2YkYkjmB87 /UuS9L7LHVqFgAwINCO/04eJjPRCO5ltdcj59Pg0t+pXk6FVKlxuDUAgfxwcSZ9nm6jKzxU574xD 97EynYgVBqK07YmVLj0An9EgQrRTrKXC9FI38aiuSBtxc2A4wL6/oNPTbVzLaxO25dFZvpFcWCWe VttPkj/31M6fdQ/xxQFLzj/xzIv+My/8QbFZJtYf7w2//GJP+IjFKviqTeZdKa8tRLEKzwVIUftK eoxQQwrCwdirsVVrW1mup0ghXlI5oB4e59sUvQbG0SztIrdNxGKE+J6k/ScDNhGvgDWLoD+YH71B wsC7QCBrFqT/ADEfepGKhn2Bmx3W/LPru1zZUWVt3hOwY+KnscUEMZuLS6t24zxNGf8AKBA+g4WK yOKWVuMSM7eCgk/hiqfaV5VnldZb4elEN/S/bb5+A/HAkBliKqKEUBVUUVRsABiyQ+pWn1yxmt60 Mi/CT/MNx+IxUpBo+uLpsZ0/UEaMxE8WArSprQj9RGLEFUvfMVxdyx22kBvUY/FIVHT5MDt4k4pt NtSikbRp43b1JBCeTUA5MoqTQeNMUlvRZBJpNqw7Rqv/AAPw/wAMVDBdWt6Xl3A2wMjrt4EnErjm YSEh0KAeyiZuRJDUXiwpUcfDBwuTDXTiKoVvt320thCpDAtzBJLV3PLrXtjwspdoTIINcO23dXLz bFjECGBZWCcKg0NPH548KDr5kEEAgy4vx5Nw2ccb8wxLEGtad6eA9sRFjm1sskeGgBt9l/rcLKLi qkkhUMdD4E1x4UnXTskUCZcTX1JCQzu7sCKFiNgDWnTHhT+eIFRjGIN8vMUqQ28cJfhsHPIjsPlh Appz6mWWuL+EU9Mtl9GziV9vTjUMf9Vd8WtLfKwP6MaQ/wC7ZXf9Q/higKXnH/jmRf8AGZf+INis k2sP94bf/jEn/ERilXxV2KpNqvlq1vGMsR9Cc7sQKq3zGKCEjk8qasjUVUkHirAf8SpiilS28oag 7D13SFO+/JvuG344rwsk03SbTT4ysIJdvtytux/sxZAI3FWA6+QdYuiP5gPuUDCwKIeI2XmySBtj BevE3T9mUqemV4pXAHybMseGZHcWbZNDsVdirsVdirsVdiqjcWdpcU9eFJadCygkffircFpbW4pB EkQPXgoFfuxVUZQylW3VhQj2OKpP5bcxR3GnyH95aSED3RjUH78UBJ/NlkYr4XKj93cDc/5a7H8K YokkWFi7FXYq7FXYq7FUfolkbzUoY6VRTzk8OK7/AI9MUhl2v3YttLmIPxyD0ox7vt+quBmVfTLX 6rp8EBFGRByH+Ud2/E4qFaa3gnUJNGsqg1CuoYV8aHFV6qqqFUAKBQAbAAYq3irsVdirsVdirsVd irCUiN75sjgXcz3qRL0/alCjrkMsqgT5JxR4pgd5TL8y7NtN/MTW0AofrjXIH/Gek4/4nmPoJ8WC J8vu2cjtGHDnmPO/nuyNWDKGHRgCPkcy3GbxVZLLFFGZJXCIvVmNAPvxVJrjzdpsbFYlean7QHFf x3/DFHEpRecrQkCWCRB4qQ3/ADTivEnFlqFnepztpQ9PtL0YfMHfFNonFXYq7FXYqkmrq9hqEWrR AmI0iu1H8p2Df5+2KCj760t9TsTHyBSQBopBvQ9mGKWB3dpPaXDQTrxdfuI7Ee2Fgo4odirsVdiq 5I3kcIilnY0VRuScUs50HSBp9t8dDcS0MpHbwUfLAyAQvIatrK8fisbA1J7PJ/mP864rzT3FLsVd irsVSvVfMFpYEx/31x/vpT0/1j2xQSx+bzZqrtWPhEvYBa/8Srii24PNuqI1ZOEq9wV4n6CtMV4m Q6VrtnqHwLWOcCpib/jU98UgplilpmCqWbYKKk+wxVjn5aWbal+YmiIRU/XFuSP+MFZz/wAQzE18 +HBI+X37OT2dDizwHnfy3ZR/zkNpRtfOVvfqP3eoWqEt4yQkow/4DhmH2LkvEY/zS53buKswl/OH 3fgJZoVx6+k2z91Tgfmnw/wzbuoCNlkSKNpJDxRAWZj2A3OKsD1fV59QnLElYFP7qLsB4n3xYEpf hQ7FVW3uJreZZoXKSKagjFLO9H1NNQsxKBxkX4ZUHZvb2OBmCjsVdirsVWyxRyxtHIoZHBDKehBx VIopZtCn9CflJpkjfuZupjJ7HFHJMr3T7HU7dedGBFYpkO4r4HFNMXv/ACvqNuSYR9Yi7FPtfSv9 MWNJTJDLE3GRGRvBgQfxwoaVWY0UFj4AVOKpjZ+XdUuSP3RhTu8vw/h1wLTKdK0O004cx+8nI+KZ u3+qO2LIBC32ozahMdO0w1rtcXQ+yq9wDitppY2UNlbJbwj4V6nux7k4pRGKuxV2KpdrupfULFpE /vnPCL5nv9GKksDZmdizEszGrMdyScLBrFDsVXRySRSLJGxV1NVYbEEYpZ9o2oi/sUmO0g+GUD+Y f164GYLWu3HoaTcv3ZOA+b/D/HFSmf8AzjzpRuvOVxfsP3en2rkN4STEIo/4Dnmo7ayViEf5xdv2 FivMZfzR9/4LOf8AnIbQzeeUrbVEWsml3A5nwiuKI3/DhM13YuXhymP84fd+C7Lt3DxYhL+afv8A wHj3k26rDPak7oRIg9jsf1DOoeViivNlw0WmCNTQzOFP+qPiP6hipYXhYOxV2KuxVPfKNwyai0Nf hmQ7f5S7j8K4GUWY4snYq7FXYqtlijljaORQ8bCjKRUEYqkraVqOnuZNKk5wk1azlO3+xJxRS+Pz LBG4iv4ZLSbvyBK/MU3/AAxW0bHq+lSj4bqIg9mYA/c1MU222p6XEN7mFR4B1/UDitoObzNp4b07 YPdTH7KRqdz8z/DFFqJtNa1T/etvqVmesCbuw/yj/n8sVTe0s7a0hENugRB95PiT3xSrYq7FXYq7 FWJ+c5GNzbx/sqhYfNjT/jXFjJjuFi7FXYq7FWTeTJTzuouxCsB7ioOBlFU85XVIYLUHdyZHHsNh +s4pk9h/5x50M2flK51R1pJqlweB8YreqL/w5fOX7ay8WUR/mj7/AMB6rsLDw4jL+cfu/BeieYdH g1rQ77SZto72B4eR34sw+Fv9i1Dmsw5TjmJDoXbZ8QyQMD1D5F09p9I10wXSmKSCV7a6Q/skNwYH /VYZ3UZCQBHIvn8omMiDzCd+cIi2nxSD/dcm/wAmB/jhWTD8LB2KuxV2Kpz5UiZ9WDjpGjMx+Y4/ xwMgzXFk7FXYq7FXYq7FUktES91+9mdQ8VuggUMKivf8QcUdUTeabocUTTXFvFHGKcmA49TT9nFa Cyy07y9cRmS2hjlQGhNCd6f5WK0EPrkEVk1lfQRrGtvKFkCAKODdenyxUp713GKXYq7FXYq7FXYq xjznbN/o9yB8O8bHw7r/ABxYyYxhYuxV2KuxVlfk22ZYbi4I2dgi/wCx3P68DOKU6g0+sa6ILVTL JPKttaoP2iW4KB/rMcEpCIJPILGJlIAcy+uvL2jwaLodjpMO8dlAkPIbcmUfE3+yapzhc2U5JmR6 l9AwYhjgIDoEwyptfOH5+eVTpnmldYgSlpq68nI6LcRgLIP9kvFvnXOq7H1HHj4Dzj9zyPbem4Mv GOU/vSTTJY9X0QwTH4wvpSHvUfZb9RzbOoG7ELy0ntLh4Jl4uh+gjsR7HCxUcUOxVvrirNfLelNZ WhklFJ56FlPVVHQf1wMwE4xS7FXYq7FXYqsnlWGGSZvsxqXPyUVxVLPLMTLpxnf+8uXaVj8zT+GK Ag/NEz3E9rpkR+OVgz/SeK/xOKlT0MnT9audNc/BJvET3I3X71OKAneq2v1rTriACrMhKD/KXdfx GLIqehXX1nSrdyasq8H+abf24qEfirsVdirsVdiqhfWcV5ayW8v2XHXuD2I+WKsC1DTrmxnMMy/6 jj7LDxBwsCELih2KovTdMub+cRQj4R/eSH7Kj3xSAyvVZotJ0YQQbMw9KLxqftN/H54GR2Tr8g/K jan5pbWZ0rZ6QvJCejXEgKoP9ivJvY0zUdsajgx8A5y+52/Ymm48vGeUfvfR+cs9c7FWM/mL5Rj8 0+VbrTaD62g9ewc/szxg8dz2apU+xzL0Wp8HIJdOvucPX6UZsRj15j3vlzRL2TS9UaK4BjUsYrhG FCrA03Hip652oNiw8LRBoss1HS7PUIgs6/EPsSLsy/I4siGOXPk+9Rj6EqSp25VVv4j8cWPCpx+U dUZqOY0HiWJ/UMV4U80vy3Z2TCVz6846Mwoqn2XFICb4pQl7qthZf70ShWPRBu33DFbSxvOOnBqC KUjxoo/42xRxIuz8xaVdMEWX03PRJBx/HdfxxW0zxS7FUq8yztHpbRr9u4ZYlHzNT+AxQUwt4Utr WOIGixIFr/qjrilidumqalqlxf2LKjRtRHemykFQACG/ZGLFbqlvrVpPDqN46SOjKqulB0qQDRVx UswgmSaFJkNUkUMp9iK4sko0X/RtRv8ATzsof1oh/kt1/WMUBOsUuxVKNQ8zafaMY0rPKNiqfZB9 2/piglKz5zn5bWyhfAsSfvpijiRtn5us5WC3MZgJ/aryX8AD+GKeJPEdHQOjBkYVVgagjFKy4tre 4jMc8ayIf2WFcVSebyhprsTG8kX+SCGH4iv44o4W4PKOmIQZGkl/ySQB/wAKAfxxXhTiGCC3jEcK LHGP2VFBilhet3smqaosVuDIoYRW6KKlmJpsPFj0xJoWWNEmg+o/y68oxeVvKtrptB9bcevfuP2p 3A5b+C0Cj2GcVrdT42Qy6dPc91oNKMOIR69feybMRzHYq7FXz9+ffkQ2OpDzPYx/6HfMEv1UbJcd n+Ug/wCG+edL2Pq+KPhnmOXu/Y8t21ouGXix5S5+/wDaxLyvq31iD6pM37+EfAT+0n9Rm7dGCnuK XYq7FUn8w60bCIRQ0+syjY/yr05f0xQSwt3d3LuxZ2NWYmpJ+eFitxQ7FWReW9dkjlSyuW5ROeML nqp7L8jgZAssxZJLqX+k67YWvVYQZ5P+NfxXFB5pyyqylWAZWFCDuCDilZDb28ClYIkiUmpCKFBP 0Yq3LDDMnCaNZE68XAYfccVbjjjjQJGoRF+yqgAD5AYqk+pf6LrljedEmrBL9P2a/f8Ahig806xS xzzRrLw/6DbtxdhWZx1APRfpxQSxTCwdirsVTry5rL2lwttK1bWU03/YY9CPbxwMgWaYsnYq7FUi 80at9Xg+qQt+/mHxkfsp/U4oJZb+QnkQ32pHzPfR/wCh2LFLBWGz3Hd/lGP+G+WaTtjV8MfDHM8/ d+13nYui4peLLlHl7/2PoHOaepdirsVdiqF1XS7HVdNuNNv4hNaXSGOaM9we48COoPY5PHkMJCUe YYZccZxMZci+UPOXlXVPJfmV7OQkop9WxuqbSxE7H59mGdppNVHNDiHxeF1mllgycJ5dPcnelanD qFqJU2kG0sfdW/p4ZktAKNxV2KvPtZuWudTuJCagOVX/AFV2H6sLAoLFDsVdirYJBqOuKvRNNuDc 2EE5+06At/rUofxwNgS7SP8ASNX1G9/ZVhBGfZev6higJnd3ltaRGW4kCJ2r1J8AO+KUhuPOSBiL e3LL2aQ0/AV/Xix4lOPznLy/eWyle/FiD+IOK8SdabrVjf8AwxNxlHWJ9m+jxxZAqfmO2M2lSlft w0lQ+HHr/wALXFBRljci5s4Zx/uxAx+dNx9+KWAahOZ76eY783Yj5V2/DCwKHxQ7FXYq7FXommTt Pp1vK27NGvI+9KHA2BFYqgtV1OHT7Uyvu52ij7s39PHFSUk8m+VNU86eZUs0LBGPq391TaKEGhPh Xso/hmNq9VHDDiPPo36PSSz5OEcup7g+r9K0uy0rTbbTrGMQ2lqgjhjHYL4+JPUnuc4vJkM5GR5l 7rHjjCIjHkEVkGbsVdirsVdirG/PvkjTvN+iPYXNIrqOr2N3SrRS0/FW6MO/zAzL0erlgnxDl1Dh 63Rxzw4Tz6F8u3dprXlTXZrO9iMN3btxmiavF17EHurDdTnY4ssckRKJ2LxOXFLFIxkKIZZp+oW9 9biaE7dGU9VPgcsYgonFXnN/G0d9cRt1WRh+JwsEPih2KuxV2Ks5sZDZeXY5W2McJcA+Jqyj8cDP ot0QR2OhLPMaAhp5D3Nen3imKjkxLUdRnv7lppTt0RK7KPAYWJKFxQ7FVyO6OroxV1NVYbEEYpZx ompLqdiyy0MyDhMPEEdfpwMgVLy07RwXFi5q9pKy/wCxJ2/GuKhiV/A0F7PCeqOw+iux+7CxKHxQ 7FXYq7FXomlwtBp1tEwoyxryHgSKnA2BvUNQt7G3M0x26Ko6sfAYqSxO0tNa8167DZ2URmu7huMM S14ovck9lUbscry5Y44mUjsGWLFLLIRiLJfUXkLyRp3lHQ0sLakl1JR767pRpZKfgq9FHb51zjdZ q5Z58R5dA9totHHBDhHPqe9kmYrmOxV2KuxV2KuxV2KsP/Mf8uNO85acqswttVtgfqd5StK7mOQD qh/DqO4OdoddLBLvieYcDX6COoj3SHIvmm7tNd8qa1LZXkLW93CeMsLfZda7EHoynswzrsWWOSIl E2HjMuKWKRjIUQyjTNVtdQh5xGjj+8iP2lP9PfLGIKQ+bNLZZfr8S1jegmp2boD9OLEhjmFi7FXY qj9H0yTULxYwD6K0aZ/BfD5ntikBk3mVj9Shs49mupUiUewNf10wMipea3EGkxW8eys6pT/JQV/W BipYfhYOxV2KuxVO/KUzJqnp/syowI9x8Q/VgZRTk/6J5mB6R30X0c0/65/HFPVCeadHeQ/X4F5E Ck6jrQdG/ripDFsLB2KuxVOPLujveXKzyL/osRqSf2mHRR/HAyAZTqeq2unw85TWQ/3cQ+0x/p74 siWL2lprvmvWorKzha4u5jxihX7KLXck9FUd2OV5csccTKRoMsWKWWQjEWS+lvy4/LjTvJunMqsL nVbkD65eUpWm4jjB6IPx6nsByOu10s8u6I5B7PQaCOnj3yPMswzBc92KuxV2KuxV2KuxV2KuxVjf nfyFofm7Tvq1+np3UYP1S+QD1ImP/ElPdT1+e+ZWk1k8Erjy6hw9ZooZ41Ln0Pc+avNXk3zL5L1Q R3iFUJP1W+iqYpR7E9/FTnW6XVwzRuPyeO1WjyYJVLl39EVpfmW1u0+r3wWORhxLH+7f7+mZLjgq GoeUUdjJYyBK7+k9eP0MKnFTFK28sa0GoIAw8Q6U/EjFFIuz8oXbsDdSLEndV+Jv6DFeFk9nZW1n CIbdOKDc+JPiTiySy4/0rzLbxdUs4jIw/wApv81xR1W+b4C+mpIB/dSAt8mBH66YrJhuFg7FXYq7 FU78pQs+qep+zEjEn3PwgfjgZRTvzKjJbQXsY/eWkqv/ALEmh/GmKSmyOskaupqrgMp8QRXFKUah 5XsLpjJETbyHrxFVJ/1f6YoISs+TbvltcRlfEhgfuxRwoyz8oWsbB7qUzU34KOK/T3xTwrtS8x2l lH9WsFV5FHEFf7tPu64qShvKvk3zL501Qx2aFkBH1q+lqIoh7kd/BRmNqtXDDG5fJyNLo8meVR5d /R9K+SPIWh+UdO+rWCepdSAfW75wPUlYf8RUdlHT575yWr1k88rly6B7HR6KGCNR59T3skzFcx2K uxV2KuxV2KuxV2KuxV2KuxVC6ppWm6rYy2GpW6XVpMKSQyCoPuPAjsRuMnjySgeKJosMmKM48MhY eEee/wAhNSsTJfeWC19Z7s1g5/0hB/kHpIP+G+edFpO2Iy2ybHv6fseZ1vYso+rF6h3df2vN7LW9 U0uQ28qsVjJV7eUEMpHUb7qfbN2CDuHRGwaLJdP8wadeUUP6Ux/3XJsa+x6HFIKZ4pdiqS+X/wDS Li/vzuJpeEZ/yU6fgRigJtcQR3EEkEgqkilWHzxSwDUdOnsLloZRt+w9NmHiMLAhCYodiq5Ed3VE Us7GiqNyScUs50HSv0fZ0f8A3ol+KX28F+jAyARt7bi5tJoD/uxCo9iRsfvxSgfLlwZtKjVvtwEx OP8AV6fgRigJpilLNQ8wadZ1Uv6sw/3XHua+56DFBLGr3W9U1SQW8SsFkIVLeIEsxPQbbsfbEkDc oFk0HpHkT8hNSvjHfeZy1jZ7Mtgh/wBIcf5Z6Rj/AIb5ZpNX2xGO2Pc9/T9rvdF2LKXqy+kd3X9j 3fS9K03SrGKw023S1tIRSOGMUA9z4k9ydznO5MkpnikbL02PFGEeGIoIrIM3Yq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYqxnzd+XXlXzTEf0lahLulEv4KJOvh8VDyHswIzL02tyYfpO3d0cPVaDFmHqG/ f1eLeavyD806YXn0dl1e0G4RaR3Cj3jY8W/2LV9s3+n7Yxz2n6T9jzup7Eyw3h6x9rBF1DXdIna1 nEsEkRo9rcowK+xV6MubWMhIWDYdRKMomiKKYf4v9S1ljkgKTMhVHQ1XkRQGh3GFHEjtA1DS4tOh t/rCLKoq4Y8fiY1I+KlcUgp0rKw5KQwPQjcYpUruztruIxXEYdO1eoPiD2xVILjyahYm3uCo7LIK /iKfqxY8KnH5Ml5fvLpQv+SpJ/EjFeFOtO0WxsPiiXlLShlfdvo8PoxZAI5mVRViFHiTQYqgbjXd Jg+3cox8E+M/8LXFbY5F5hWzurx7SPnFcOHQP8PE71NBXucWNqDahrusTrawCWeSU0S1tlYlvYKl WbBKQiLJoJjGUjQFlnflX8g/NOplJ9YZdItDuUaklww9o1PFf9k1fbNVqO2McNoeo/Y7fTdiZZ7z 9A+17T5R/Lryr5WjH6NtQ93Sj389JJ27H4qDiPZQBmg1OtyZvqO3d0ei0ugxYR6Rv3nmybMRzHYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYql+seXtD1qD0dWsYL2MbL6yBmWv8AK32l+g5b izTxm4khqy4IZBUwC871z/nHnyleFn0u5uNLkPRK/WIh/sXIf/h82eLtrLH6gJfZ+Pk6nN2Fil9J Mft/HzYNqv8Azjz5ytSWsLi11CP9kBzDIfmrjh/w+bHH21iP1Axdbl7CzD6SJfZ+Pmxe8/LT8xNN Yl9EvKjqbZfX/GAvmZDX4JcpD7vvcGfZ2ePOB+G/3JbKnmyyPGeO9gI/ZlSVe1ejDMiOWB5EOPLF OPMEIca/rAFBdN9IU/rGWNduOv6wRQ3TfQFH6hitoiJPNl6eMEd7OT+zEkrdq9FGVyywHMhsjinL kCUys/y0/MTUmBTRLyp6G5X0PxnKZjz1+CPOQ+/7nIh2dnlygfjt97KNK/5x585XRDX9xa6fH+0C 5mkHyVBw/wCHzDydtYh9IMnOxdhZj9REft/HzZzof/OPPlKzKvqlzcapIOqV+rxH/YoS/wDw+a7L 21ll9IEft/Hydlh7CxR+omX2fj5vRNH8vaHosHo6TYwWUZ2b0UCs1P5m+030nNZlzTyG5El22LBD GKgAEwyptdirsVdirsVdirsVdirsVdir/9k= + + 0 + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +Hܗ;% 9|?  Ȇ08 זAk@)>$_@;MΩ:U|{5O_#)Sq$w^_ܿ׷..Ksw§%[׈:O38L>C̞UzH]XՂɢ4/bY҈N>qƚ,>~{N>Rv{:9N^e>,e'2YZ;S)76\C\YYo/:nOM/ϹYc\z:m8yf?MْK:*|T/͜@/qmJU*"NpYc3xdFdsijcr gaO R,-Vgb_x"ǔ2Bi<|J,{$<ېg- Oa۠?'LP= +kng;ߗ@d^kATΜṠRS +ST&Ag)=OJ}RHQ;$c$ mE-HF9zS媴V(.I)2M~r:9ver]3L-V%Uv}ܡ@6ϱ 줵i.زAYXCE'p//USEPW&򍍻 + .ǏǷlB9&)iRx<8 6Ti`J!x+)ܠ` +(5/E*rӃg +aPD-BI'(W@Ka2kw./ϫK,mү,Ғφ$U5L(zpo#0N4)J!^UݨhyBUd1 J˃u +a˽={dv +dYQQ{#Qߊ}ڙ%Т Tr oX}.PdT:Ɛ7Y1>BJLCzz+ BHCs ~h (=bԟMو4zB&V8LƍhN7>d8;gOҗ~5J"-ҹ}zJB\Ulzm =۴&M:I3z@ԖDQj.@U +X1 +BR6q Ӧ,mNr,K)${=dHZBGW9L4?p}D(V2`J6`UdUQJ.m "wyM };zJ{Jaz xS1jWQ":+wzMT +YK:@T 3zaorWH01g_V!6dV5]mϞerQ8BT Uk7S0 og0mУt!$=]֞&a4iAm# M\Lk۳ 9t!cD^s[po7# != +.O;g}bzHDbZ= +4Nv)%|Uݬ /2'[f7%*i\`)~nԕQ-qTQ8phRO a*2"y[ĠMLM Za*Z[`&en ]ĴVvvNi}t{wn <~ڀx *$epj+E!1$ITZ\u3"Z5]fqјtiRc*7 ג6Ц., JOa=Hb*^\;oO6Mfc>?JU+A9F?kǧ%ߊ|xy-/Ϩ|d9hQؗf_x$i(h~PLK]ѻ: 4Zt 9Wmٝ̿Ŀ(~?__}Y +endstream endobj 12 0 obj <> endobj 13 0 obj <> endobj 14 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-f471a0f9-b2ea-46f3-ae33-5559814fde5e_.tmp) +%%CreationDate: 6/9/2026 4:08 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.220795670798 -766.06071071057 1083.08077614223 -171.040752214476 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -574.148148148148 -4.59259259259306 1.125 0 8077.74074074074 8292.48148148148 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -574.148148148148 -4.59259259259306 1.125 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 15 0 obj <>stream +%AI24_ZStandard_Data(/XTΫEk :o4I.__xGiԖo>ì4Wvwo..Iإ.~!  FhzHGi<ΆguulOjvCEN3h=Sp,%(mw_8T[I /Jt'$C9CXxYFEWBH/F6wHX.ް.x,lÊd^4 ͱl VMIц5YZ:T+(x.Pz-̨얎tUFމCUD-[DhiHW2JEKo^WɈ֡}׈]B !hh#ݠF2G=p4kr ƽch8zJU_6T% igŶY`4b.Y(=T**2SRZj"$q -3O> P$S$ "InłA  Fh@up8>`< D!0 HɣP$oX=-lb9TT:! d$H̱ zZyxVǂH jU$_Eϊ CC8t0:X<Iz[j(R$D< ⫉E.I߬6vn_J@[NIGB""E"$ťUˤg߳,uZCIy4)m da"9r0֮JnX/T,ҊH(pP D$,<<@^8T$\Z=я]-C PQ$8D$Hh8H$wlvNUCzfU*yuk5BNehLJ}T4oDt4$T5ZhgU2<MTVnkt`}/EV4T͒6V*GfG[[պmTa,8( $(u1-JzC[PbR$x8"Y<h< `<XH eAc^(/(EW$ e^ssS%S$)CP$%j*s0EP$E`(Wh `,DϊFAmS0PE(HYn c";=2x1q T$ dÁ.3qd$UpeEbX(?ld33 BrP^{0A RCv\.Hs0<ǣE^PYv8S^bT(Hma k1:_^oqk9Bc!bq lAEB鬴|.t#!Ij-5=EMU]. uC!J뭵U$2},d~~qwqiE-lq \Bb`, ⱀ, 1(1d(cg, F`<5ܨ5xh<H::X8x8 zQ{>X8bH!$!0 0P$P$eCP""9%HeEC4 e 9D|h8DErH`<Ї>|8h8Ep, PG:qs9 Gh47 md׸5Q 7a<` Ed 81 dX4b.t \- _{W$t>ֱeb^Z>ԡ ]uU5J +IH>\"733ɥet x\LD<4,4Bqk~?=;:0əY Ì=PJC +pZL+"qxŮwHtlCA1.-%)%)UBB$;*(E-YZXe*!~a!E`‹U4ʆ< bBN Z))L$@r&EP!&(Lk^IiҜ?ͶvNIg׵MJ^:i&Z/DXC5J)Id/Mܵ"˿M[o_C*%!n汨Rh+R1sDLs3m\k+|8vD4ukpۉ~[w;ʛk? ޗjݨV5\wT׽{* 7оhgUǛKwʃT.+;m٪I*S"j}'4ܺj%SSWR33)OfײݩF·ߥë]J|z(D:Wdɔk[{^kRغ^G-ު9&5/:6;F|ڇW%ڔLlq{Z䍨mHFx{m"\#}i!?GGeKPj^Zo/mPtkݤ_'ҝ5<,ͽi\jvS4X;nORmʹc,ڢ7;νlLͻ}UD+-o?˷sry[C]-F6.vIgTXtI+9o8fcW6~Wi^'] tEˣx\+&g75ܼ )RU4ܬߋj.+~r.hu)7]a}MVK]GB˓;2]2˥6Oݢ|.iJ$3Z.PFkTKc鲙v.?R04y".xez\\X?׳u-W1%+s6Ь.I}Zrʢ_cD8%SSFj9oRduR͕lYRo\Ema__LTZ͜ӒͥxceYvRm,KbU.GYNs,$<֐*/^MMid\md?'G*TotWksU'S'V-ioVySQA,ŏf٤Ҥ)-[:V͊,wn>H;%}-JeYڵƲx+W/Ʋjjy]_u5EZ4J{'݋KOj9z'\z'j,;^~wkڜhHKKzsyH'9=D=L2^kHz4K6̹yCݼkk=ovtɨ&}sZnH-lʷ5GDZ^ّ>XDx&eҨi$oD2hxuz9ȠIϯOuα$n卋s9Z&ZU3Lb8 -6dvVrndXMo =ߵ,Md+3T9{z*V<:t/t՛d^.^-Es5D:-k4pīykƫM㢗n kl6_ΚR+j:-OW/O{qʊ.Ou5;=fMUQCS.C!|"{&>oeWt[Oʫ=3uwx=MF\97r2eKV!zg3[wiroEJ" utjm{T } iykExRb&6 $H,! V5]-`֢fj*S2}WûZƮy3AGh/){âu[92w=fVY"֞a%jsXG53WKN;Z%8lFe[R%nќ}t|kR\lG5Ś;+ܢVmj5 T$c )D%WK/ˤSNo5NOV1W}<VZ-l6ƴW4L=u*kL/4ZyvϢմ.z2=.ZtxDkυ{#t޳?&>=ZvN[T\{1 +6^%AsQET; noy,<;rǴK5B4Uw_14y\fM ̼;^hբ핷TCVR'huJϫ~Z??dsԻy5 ׼G2-,3.||mwo%i{_:tlh9H>< +f/oi⧲k;u/g-]FvU~ү*3MKK;;s,f}FYSo֯\2fu[8kU+ڝU"ݖ̽֞H;vۚݎ]̖ٞ\h4h5%Q5)~u~EZ|W;n5Rڔfh4㞝G34 tG6ӳ,YvfgǓ$}Ou%Ϙ{"P[3Z\h|R3ɴD,zѓNFIEe1EEbKdnfrYMҕ󎚸Foz[f~8K/R}K,Wgg ^Y_xi5t뙮R/:δ봥ײcέ.IS33im:=.KɧG.%]t +aba&00, J  +fLe-*JV[ ֤*P^5ViwXmjvUf\sKb"^ -V+;h]}6JC[ARsywW=C2[TE۪3WX=|IʰyOTbh1UiTu7Ӕ嗚~ݪA,UkC)--w.߽EZ3ݴ*ڍ((J8D221)'EJ<\vx;iŧӢXXzY9b杕Lo{,mk2 KgV7[ۖm?fx2C{X our] +p_$"+Mﱭߕj*IrL|Mԫ1m␫,_UF%_v/J֮C5r4}kXs+vTxUU+JUJwVkj,)a^YQpΪ0I7%=$Ef$4CJ,tF*tl5}@+*d~{iȈȐNt7٥qүcUxVTwzsʇ7MOЬh[XE m ͖fjͫ:\a֜0* Ku<;,ҎXyXMâ[~{}tѿ]vԪ6iPL1-Wj˫~αՖz)ݯN:v`6/vx*rDvrVՕn2.˪+ޭ❩4gT򩪗.u5?5uXKIkJQ;O_vG2"$ݵwqm)ξ/xߛkvytSLޤѧEu YNJOӗ0m˻ҨvW]UaN:ˆG3٬|f\+SI:Dz)鹃"R[3Vk>Sq -M/TsM3nt,"Lg4c3-flfi#zF{Vm7du;yl[R]Z%]eњ,4_KknB40wziC-3]J?F{j;g}MDeknW+Ӝ-lҕQs˧CM+!mSnv&mψʻHkWZZ49kw1ϖUWTJ*ZMkiP톶[M['=v6t,sk2+s*yJ8wiܹ,kyS˂+wggQShaTd+Sycf̢qev'G}:[91)|˓V"Zbxu;r'Jvw?K2#_FJJO.,*mf&f~eޖR%]f0xkr.ZJWh˟{+S^>flh4,k1c3nΕNY[f5O7[ꛭMʣfQVJϛ!('<ˢeIϪRkֹ+]]?kңQ&TY殤)^LoNnIE',ysK;cbw̞SXnwtu;,/}ieKkc'{ѳt=+_iK f^M)n|EiK/R1]u޿v,B`B02 Kz=G(4IޫIe5SE2FyD~#Rxi<^k7ʎPƺǙ]f灦7:^+h<ӅY|Y=CTRfU 0| v5X|O:9X2!+@O7u=<` d3 m`QnP< !E<%o]d9L23~Ԁ3&1Vsq7˧0w ' +zue cW蛨J8,A+}*_V di!!!{@դ ߴƕ =>J{,a=v+}1=sIe-Et5+bXO[\15 f+?=o a*ZgA +-z lyIcޤG$2gúɓ;| UpC0?M9epxP,Z6j>վ3Zߎ%&ҴtЪu0Oqel'qd/O:w-3|)X vΓʱUj(66ĎAY>A;,Tb +srU򌨼2Ƕtwd=Iߩ# +#19m%1΅\EG'i|~wr]Oh!?R>,XƽV܍̜5YQ3 >a;#?ni932hwtsUCD +sަ|vFKU"qY[EXhw&bdDe$(`?ַSbppQhHQnͿ*zP' M; |)J%P, ɮRba FtDL:ڊ@J>"\u.gO"pg0۔ !ܷ(GZ4kvg1Pv^bb]rG_y3m ~aoz[IJZ8E&@nK]29XEp+qK`6<ҐHSd=5]ynf)V$[2vCBQz!tG+MtK }Gd.;ۜ1!|Yy;d۠H.1zK§'Mhf + GŒX( +HLUY{BOg4~2"q'ZO|;ws)η%.S9ͥo>@DJQF="f?"Re2K-5=Ieb|i1)uPxr'? 8'#(/7:%ʣ-DV6a=LZ$e$_I1^ͻeD׼LƗ53ӭS6yg T/sf8[r̘Xufr30?;*i t[aH=j!@8uӁ\jʰ+)+BVdcl$.9[o\yLtF&#[XQ +{< J frexl+1,9MOo;0H qYUy,5Kc?8K mmk-J a:i~\0w{ +:҄If\(lW4=p&*ãg6(̄sWFZEX;l7@j8tnQK6L"|OgR]-c}%= l X01 ^dI"6<~Ff +Tj*Cp+ko#1y6 h.1952M.o2~4A FoIL"! _]J)a(Q^ V$uT*b>K(>TW|HyY"%ʣ&HnNW6?1q#s +AM8iULxP)8jJ]8\kn5 +C%̂Bvv`6Q[yV9K>m.ds{(ݍo!ttjAәCCC|A(f^sIS1vR&F(Yn hު ZQ(gZBϞW׬69zyBDp`k5AYVsDY/U+?Mhr塾tW62w@Z}9Q=Qgs<|N|BZV*x+aIM+mOd.-PH&bƹ)Tmުh98,&]^QЗTiyrG6#SJ찗eװ԰s++` w-Ψ5r+r[RXQ7$RU}0Tf{^,f4zL:7 + ׯgb-CR.(0y:jla q9p;E%&ch-!r^܂b6QfVrDv~Oû(?1ބ}g>D u~5 +.9Ml2}֎ | bHvz+DPb0cM{dԄ\,x ' v4JZ_IpK.u ;*=~"5$gtNA("~`HI4Wѝ\@jm{_8-Ioֲnd6#Ҡ6""XUB\H5+應!_E-|,X  ѲŴ0[ppw +֌inK'w#.`2+_BTՒ"nVeZ4o7OFch#.0yH4† gx˻4VEa,IoŌ5َc!\Ta~W%.SԹP`IɼVz<˲h$%0hN8u +Y<ӳeԊ\3S(=`XWo;`v ؤ×ȤT"d(Qxi"r*\S53(AS?QӘ3"Α4&A&Dl}RȟTbmyC0$7Qm44 OP^v)"?ɟ%l׫{iv^ަl(S'TWl粯hKEhè |B3Is'B<PђO"9ϨxZA|4|H5' KNg%נYuNM7ؾ@Ñt4<+1ND >Ak-A%F^9$0aq|{Y fmY|YdߒECl#j/6f)e;Qdd/8W}Y==HA\+#Rg7goEz/u7+E )y>saw(1ja9| ~rUdJm@k1k/A~:hGO8yԠg]&YXh ͽ񓤮?A +9(DVC<Lȩ`89ޭո#5\]l+y(Qu3F8"eb[(Lpٝ1Z5@Zl@X4i0ũ(Ŵgw'3R8> 8TVNȻ~dFmƕэ9ƕWqFP) ++XLEa}mb5PӡCM*4$t-H*h%حf#gac2Re˴"쒊}hf#矊\GIF5ssp"%L`X>歡ͪS)TFNx赛Ѻ.0 +:Eeb)4BJ"$JŜ%0M3c&B/S]Fxp[mfjeEm|l=b(1I&wo17M #JBŀg]UFg1EP6@RbIFd]8A5V8+UI|mҩ#X,ڮpO_/ţĎg H8؈螢'[HTÙĘACOhxGMTLmu)XRTrϖ@0Z.ApN8Pe@8JUV˺R;{q_L"sVUAU +&exSU襼{;EpԥA^%CWߤ2 9M*5G[p$m=1Hn""(M`MaŸ$ 7ZMtNkW)mv⍴Sla0Q_n :$JIȫI!1q+!2 +%޺ aTI:UTS٥HݙJ+e{q4GtqS=Ϊ)ux*6QjԆPN~ nc@K%cOo!~=/ g*-5NѴ )6SCRORu0 LRXBoJUYUZjR3Vo*U<*%BhX%(!NąH}|6)+ Q*^(g*-(Ӻiz]hQ 2+}=ivYU(43,1Rqi|&Vjm5dH. Z7{ᭃJH" Umo$0q( E]Ή9-kOfmX?]gѻ.cϢE@ X\BN;G & 0D[`CWOP]~jQ$}c>Y#'+?--DvX|C'Jad *gCk\ZǵR^/ct/N-0X|rF*Hn[PQVsj@.AZ/rܩ0lAydԣh +?b+껠vi%}^oAMw;#;Of_F;K=<(ъ{0@Pn A-fF;6/IQp f@fcP2>$Y芧P]{3/SuXXo4z aοc.sp!,@~1#. Ck2 E9c$ENV +SY[nj|G#x]) +&z7~bLĢH/@+ 9㺉j׿+.G_ǻ~K]@+p/,=JLnͦLj?Pipp g~KT׸0^16l ϦqWVz 2MC.` +qoH6cج; Hp*ZLj|Ԅ!:b^8 ǻaO* +j"9*3ze #7oZHXG +9֎iZbEpX7`ΚIZ, +SLكdX. P-1d^&\Ajb9+j0+a+0Ī'Z l0VepN3z=6- ٹ全4i#CXC`|`\ Zb a_Tf틵Ž8"_ EaXÈp^H:av!nAdDU3f׈j!2~ 48+4pa6v5'dwk ku$@ b;ȲȐVcDP$%߁a=dpQ~c]K9A|vJKd[,05_^XJ$ p©v5C3MeNL30u u8zX۷UJ=b5QKX;Ȱ?dX2gװ,ѰnҁRFT P)@r7bA(ݗ"[M D+PDrF˃dz]|%.lpnXkzCAձ2Zl2M յRp5:3PIS^-G$u8"\k +0r% MmpI"=%zV 3*mx}@.YHU2*u:4B' H`BsAI@ dBH$~JX,v!fhRس1T([5L何4 ]l79A):uR#9CjCmб3nZ|Q0vh>/ |_i i].X3AMsN!5DŽTGT +c1lf +V%-г!rG0B?1z 1,azOS +2/ݼwLT~ˢKۥ#^4\ҤL-)խEyYǯtV}"m8NEoӽ:vn~v# khi~wzB3?~YEvΆD}bAVyBdG(pzfJ`C|Ddz\|EkjZ5ɗӹ%^[sˮeAUC2|g0+"; +bh+,B.^NP `A% ֡ܘ@9L)GRs:f3'yX"F!Ì+;nf&ۃ6u"[2*H`5-dim?3f2Q`m?_Cdɞ;J}Y[PM@$y͙sf>sԯpjnKN +Jb$TZF9΀0lDB{W?$"sfȨN`c}6yJ=ɯ1.*sH?|3h7q~h_4LXCkwd.7N#%!RDߣLhaϮ6tu  [Ș)b[Hn#OWyF*!Prln\ަujG`>QTzN{͐je0SҌm(a"+^<Чc+.LӼ +:T1Y' KcrJU = <V|Jl,94VSSRЄƥ ?T5B֙FDEwȑքPv +_¤sޡ$p+D%XPYuhAѽ\ z[&-WTnX@;Oo$:s^6KVRh\;|:ge7cJ@T|RQ*/ıJ&hZLfA|͌xP(\Vv +)cU1|K.pQ (\Hv[/Mw!\Md3`Á \ڣw69v(Ԗ~ @O kn9hU֤uQo=!V{_xO>~Q*fN8|"]5RN_ӻAuihE?gfDDpsoK̴S'_f'/%@5Mn0e5{$B0pH˃ϵO6f͖_e=GXXL>4a!liotqh/P&늫[pC!nW[a8|r1Ƀu oTނo`|ٍ ݢP&G8nsB-({#hh),mɹjP͆(l^$b.Ǜ Ö迮VPe9t)7;q֣5'=j\O;5U9r;ҚdktA9-:sIY;Qv֑!O6(fɬ|:oAX5v3^F'ݞVX (ɽa_[vjh"P#u+0RR m:5xή[hCU

DH":2TS#Lg{(huN!%zi,Q0-p&F0|DMG1o9"kd4н#3t'{x(,z1M5ZgM}z${8hܢFX֫Z13DP|,pe$'/9Eiƙ0u^(^Bn_!{N&IM +aJcSjkU$5)V\@,< Xv)59rS ++&uxi:ٻxΜ%?*hh/(Pƈiy7w>s.7gp3mQܻ +J}ĠYy&"#3v؞Յ.#؇ v(ġr5^M7tFpto9H'%>wsiڞ@ܔdg`m(_])8D'4YnBv8>}Q6Ņ߶BO9DO-Bl{a=C0ʐr:W0(p waB*Fq-*˂ygصֹBV[෼d xG탃"?r8 7f=t…5/P82 +$nD8.9ʕUiS} ZfX@.X1R+_ę2|X}_ʃYb)  +PeK? z\Ƣ]󈐀KF!R(h5P/SQ]F*Y+s'2sՇ=K$# zӗb8[ڮ=!Qه 457in;3 ?gyv6K`Uf8oځRhZf[Fq ۉ֙^Y$^-:KmOȺt3kQ +Aʙax^ۤDW c)S%43VpW+oEŒ=jaSO7Hjr"g-΅'cѿf2,ppE.c7`C_]ݸjeMW+\*n+j{J:x* ҝKGD^TEZX +'4?&#&db+1%L0?E%!U*L\ճIĵӕ9a-9Κ9E0Չ6ѥp\%L)R +~?Ah*W`i\*i0hTiZˉi $&3\4E%)ӂ,wG44WƷ`W-027IFf'twx7Tdjؗ += ӻ5EG6J~ĥ1 bX:J<4x(<~vhz9b %Nnb.+ȰccYnvtDŽ +Q:YEzFl?Yj),p)̪<*&DP\Meb=8r +Z 9$?B Umm[ΐkjp#F'9lflOp?qx6jȍ2}Tk* fwgc%Mq.q^U; R_?j 8q(Jvo[D$տI#Wwjywpc9wݑrՈ`F`X>\j8gM22YIU٨cm^XL&V:bq3Ѳ=cnTzI8ꛬbjn+,**i|ܭobYV1bn9 a%YDbC +8M[rB ]8\%QĤp"ƂF1zF&hf~JC"߽r*~u[VX,!#=,G 99xU*(v,Xiݴ`f-fs…LZP+(INtTBBi5+|.|qB&3d}nHڀ ,˼5 jd9ξ*:)u(Q'#;4)wԊXݯ:<+`ѡoLBJQu<ݗ@F&HR3՝S }7VgA,eX}Y>O|f}h|Q@Accmf! 5vo=m%=wǗKgA" + L ,'t4fa\X.WzS)t'|.3F?:uzX:h>\4!uUg^"rF֔t+"vˉĆywZBCºMpr P 2֢Ey& xdK0\ؾ~;v?"vyb%p|\}1>#RQXF4>BQ"Z'_5/ +pڄr?nh~SL@9cHId +4$/3䵈q` !2{$1-X12qHH"[)5_$s[] jƾj3󀈹V kT ǐEJ74dmq~7Qs?r%΍A G Ask!YɊFvl1 +o:SGk[ 6 in6s*MjQp+@B[K[Z .tvs-(X#b"%4^0Lgϥz:gO+Zas՛lKr{v$m'RMփ`alȵ[I-7R@kgn~Y5W'ƣn7|'#HrpaXk45b r4eoE}VxՁajm[<!9zPqe-/Ne4zaru]fTMDf=p[R7dh\P("mۃPw2ڼV6Ӫ%gHўl,6 .r$pjč}Ŝ+C)%_c0fQVgn}[odr-) _aW܄: z1^DŊTd5}̕v9[dSlP A/g4(fW$ۓG55vre#C<~_q5|VL(ӢF!/%h ؀=ݹ ߑ琤LVLbC)4uS-4y>kxOZ̓65VPZA 'JM &ON&t L;T0rrD:OXaJĚJJ:%D$%ONf$H,t#9h<$+G6HJ#sD("q<榾_ye-v۽9?hS:`HF,+tL_lrv5;΄bEv˃sT&R`%AE=Cy+̥?Vƒņ8uF/Op'Up| ›cmF!qĞuᧉҍ#^401uPXKZ+XҏGf91Uk}77Q$ʭDJ)!M9& BMmݔX;ͱC_Rg'rsb5!5\:`N<Jp5wi/qa $7yc+F GqQc SFtpwUX-58X8ɽ<\)G5oHzђޜWaMy:^tN-!Ha G`>)˔ \l7<Q_6ozЕ}zZ!6,6mjDonu]!_ʹ +FސS+(F*!q/.8"ţxWjФkR`S\+wN(ZkV1 F~u*CcBX< ^jYͬaGiY2-DjA5 n#,j+r8؊lfd<|Q%8߽*?(8u[GhBzqar8Mn aUK2GE@ `55NEqn&Ǯw~[1zD4,#wl\+C +je3=9s~P`lkf B!zFǰdNcwmYgYO>b(;2ȁ'|.5]z# ,ؽ;5dy`R?9+wJQp b/>5۰5mn 4z,>P|yykjsRLWu̯t>gtێz^9lg, +E;RzcX}v&9qm[7//?>A橋٦Z5B8vL\wufr +VdIȷ%5t r@pu<$>0MmNcfvwօCH +*RQ^5o9,7wГ~"کW>8B67v ?D'X$ i\GQo]n£,sJ]ey[e,/D352 H‘ uy|qTw=9' XfoPu钙 _gGذ7}"(R!ec!^ +]U²$Wz%4t0A\_ZpIBM؝IR2I^d_s"BP$ČL@)KPRP6PJ'LKiYJz7 "7sAfdȬ hN_~ nb(+\H^MCd8L!}ug[" +8OqZhc%p'1ʷh$V\qžw$0vTŻ6awn(2[3} !Z;@7Yy16}LB۩qw*!>MQ<MhT9EÐKTT74${s7CS)hXF8xb"j<5 VةmzA=HVP7֖'h^%⊵?H&V H3deO+=I0Bb\$T(ȕ +D~!jbZ"ϘPZ0m:Cs7kc4\S( #AS5UpĂxIHfuPT%TxL$0O1 +Sbe XEXx?^a,ɟX7+WMbBJ,^q|(Lc4(pxb+GdaDg+Y"(K-.r%٥QI8ͽJkb>v.WVkdUUO]ɐYxBXB2㘟\=_$"``"k?4IX !D"ZDP[ڼaj~ՀȨh"LS4"UU0C s458 @񴇠LŒ|ryK^:ف$/ G*vB U͔~8. (g(8ne +Kri0])<E{^2YjU%UBeP]KMDūD@KG$XoOD +0:4 5ABMoLWuM[л` +Q +Je_|C߷%p P7nʵUlxWSI=f.C;$uJ)z2$&}Fo675xd#B.1 U>$$؋dB.0=p, +2Bl\^j5Τ*쑢YT$ƋJB$ i\^zm<2,HԨiF1S"Ñd?DKf.c }e$hհD3 LEAfL4p8Oa"j#!B2%%(h«\ RRACDPdEe0bQTWUX  +⋬@m)+ә˖gBCȃGh B",!HyETDg% %3a0M4,R&TB %U%$$U231BlT*QK.v##3VK<>iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.W*(35Wt޻:;Lt"RM} >B zxb/P;¨Y|Gj/ }&o֡U +*K:'n˛H{=Upi!wP( c#`o}S*n 8:6.Gnv͆uIKŇ)ꥂĆ&5cԉPx BSůRM2E(]!atrYVETMjy3MM3Z1"aMm/DQByOp*%Ǘ-c 0~B]EA}%fUP6&^%ؖT ͢4A>\s!Ϭ5Ђ)hDU +{G܅,LW5tV4QemXp^W1߂d9'%$29ttCIMȂ98RvYu2=ĻH(M44pwŴg˿8 !U.W1Qwn9 +y9F,o4l:V-!3?gWi.)÷s)q8H9H)H(bl;/^*1! B P5bl^@ժZZ )e-b(6MgJ6L8">jk\N +z~>w*'9Q28`eI}P^_c?.YT Y\pA:YM$߸) |vl(C\D,5>J=yFIuH^-x,1gLEDd"CfdS'ΏLgNMƙ͠Xc]U4ՅgFv: VQ ?d^u!g:ŔmEbjDhQIϐ9J!4WR)Mȷ.&{ѯ յQ/Ѩh:mD<-F$g<x.[v[L܎v)]f͆1J3#!%HH +d(<<\))3Y44ǐzE u +Sq )< +Mu#%(HS05S'iѝ[d'=AJNB不JJ'aɆ/ %E #lh+ɕP\DF +JCEbgF%6xe%1ј +d1y:!r2'ΐOSU,9U+Ywyt<}4'N#{oId&- =scA(&du]Y%ČKv%<O#訬Zirj2UnEĄPOqU[clhuuh[+#z5LE)gI zp~ML0)X)MW4'(Ό I=f)3A6唨C9Lf Tl?1xR BPQWe +؁j*TO(GHaON}O-@Gp nä03r# W6*L'kpt}IwJөtBRX_ih(H4V :S i2 + ~SKDJAj/ *վD[/F u3zpfO/WPoe2xwS&]Yơ_a[,w[2훢#&B BT¸ˀ%*8&&5ad( PTy IKypD)Q~?Hwh(XQPPQAw d +PְaprDJdgD#KQM +x&M5P{}$'YRE: h4$0$ÐH$aNT$B0HEgR[~nɒI 2:$ qZ`8ͤ.jf2g§Bd`9Q c + CS'/ G0E6b^$ӈNiJ "!Th&JuJg]B;B>#$Њ@\GCkb&6 D_PS 5jj.nhQh?Mh>1tJDz)J(:*Zs/ Q|ZJKB5qqbab(ГdwVZCCO8534/䚇ԔʡUʗj Je M 3IBt)d!2TX8gO\ͦUN 8kEM_PbMH + ,!`(FRClHK2pH3 +0@ AlV> v88j`RlSi5U*5/wHT1q:q#"$VL`FvHQI dPU,X`L3cE#bǐY#fbdF{#i4gj:fVp&cbf226_hQNi7 ZR[QGiiCnL=C'SQ|q."Lfb -M](QTn>q~#sbwgj_~Yy|HhQĪgɪK\9bJ̈cs5f7?;9>q4dO$9a!WG.+V b|["|8-14"!N`@ +Cbxz4|B aqPT\ @bl3D.{ Wݏoq0|Z ~6A9HF`c!0GTKפמJݽiZXm۾(W'\7U/:yc> /BN*w7jo:>zEYcM7emH(ac$N!:<2`~ڏ>њxqo eY+zky>ƣ, w埏 ItM 1L!SЎ^r9p`"te$l\b^iCF #@AzOW@A.rz-./eml:T#6Q._KHVg]- gM3:"w׶%wz-W& +zaDr`Dq0$ n ҢU>ˀﶍ#u>;"gO>m{Lf~nsR kw¥ 'M.sf0K:u7W }ŝHYrK"_S~{si\MXj8;Mh3܂$R%xZsXJNIZ^I0Agx,E4kS'I@+ba#cX3u]"bk > P9Yd~4&1la W?v.1Ts$'Wmxu|'Vi_@b.ADW'mC>:ZҠoARJӐfk:~g_#U.|7,_妶}VO dqS>[Z%9QH'c>I7 de}<~HTu9)V@ Yk1MJѯ 3`{DggITnUdzi #o\HX-*` [;Q +EeV]dަ[OgZ,Lw`LiV +x4,[AkE鷤 ]r:"=)V:_ uSj,ђL>`;$xhЄPm_eeҷP=Z/10 %s٧iucfϐ"ɱ|ڐ{job=V#Lnv$}ޛ_0:әJ\@wyT^"}ENe^BdH>bˡ5,fC ۾O>-e@)Er叇Ӣ9ڥjW1$~ +%[o/*ԃ@[JQ܄$Yl>q7ʯ"/lUՋG0hI$ m\]u7Kɪ 0np"O$ˡ` ^ߐdZVh[ +4v%ۉF Y+*Bo *M.~5u<@ܰ@X5I1 Ph@Cb7ߍ54gf61TOh"G1:9f_綜EbȪrD mkHo8ΏvbAn F\ԁJBGo`"p L606fZjhG.&G&QyB1/!)a0$TL31RWB2S.BJ*z`*ojf%k݊D` k@X(H'':2wR |`յXL[/݁3x#@GfK Jjh!U@᥍MB!3Pw9b8ϖC܊\v5 g W{HKjoCxRo]u12ޝR]uͯvDKwO/#,=4 7J%T=l^GbpWT]Jճ( Ey0dJn5Ve d]`쪻Q*:&-7:tGS`g7{}F 2謼&8l~f->qgT +'2b(x`,il5s!!A+ce5bCʐwӁ=6".ɤ۲/eJ V&*c6+'E}v5h"{u4zlA枚nAe݇MM4LX-@e&AC?rELAU{M+n~Q㓈?Tw\vt@wA=O}c"><[>+ДQX/J7͓c'쩎sU#_:ʟCR iQ~ +MSNKBLk龅c;KnI)z药z8U X;qIFoCv-(IGKR?@wT %s}>=IUr-s? MȻsc>osAz]17.Zmz0TcݝtȌ>NE7JClUMk Z&/@k0fB_zGo? +~rS0WhNvFX,8ұ[^z}ZGN) OF岱ڤ=9eLㅵc8ӨuJ-j7yG9>zoBJ]'âzX7dq&TOq!k`ڥ|HB ceQX5bd2];)&LҰu2fcDו*X%h,) \9Zm" ."O]1˜4sdX}GK.eFG\pZKPDpTS_7Eb/_@PR.0Rx2eLw?4Ivzy͊x;Q7 WvL۲OG/dC$~Gv%W۵jT-vq}_&!Z+!4*)Io82ØIr "ަ|Cwrz jdǃ{D#nS_eShZ `73(0XZ IO2:D +qlpJu +S)bG+ +H2 俯,4t{|ˌqP`ݎ)Jq첳 Dց&>m&·0iKyh5p:k)_uU},tBAI_ _ F|hԃBzSA)xNz=:s >g0 8(ɰ6YuOPtoo`["U+>7h=#z Cfs WYX^/"M*?n/(bQޒFђ+:htqu +KyG2e5c #,AX{}%!Ī{7,P?~praR鷫,(`;$ :SO =. +7jn~ ,xtp[G[4~Low aIjCpy_꺚s1o)Up=KDi>g~eudK:զ=Wxi=-ajy!CvC]4#na/lR[a%kvG΍TnmQ^.Pu?_&hLOjzuHZ!`&⒩(j*˃hXgW; E'9vyn3UC-khxX߻W{k@Ɯ ߃ďT|,f``>t nmQ0k,W+KGק:#N>@ "ԇϜw9R + K$/: +R)g:RMƗ4yjͦ@`Zg2h kaGa?*N.-r[j(tbzqi.E-iGXn(QAoVz#VaͫݎMov&_f4{MlWAD1RY@-XxCfG@EOpp_,DJݟiN!&QKoug~g-AP(?5xŔlcx$ef Q0A6jHB< Q\ԗn"zr&[XțKwo'z@ +ķ&nyt@¡[2tk+ť#uLH[!ޅgxh.uTab}% ++%WMB~`2MU*`#9kְF7rl_F5RՇk툤7=P>{cWGآH$qē WM:khq0.졞76U@M'.jnC>wi'#FB۠f*@+$B8hͫɎ\k.epkS\}`P-a7eܛH$N4/RL}l`z+*4Z +C](ヒlv?Z9\O2~wu%Czyjb.+ 0WIl[:PP@ 7jo(:mFE n(b2B)E)i)P0B@̌&˸7ͩ8G+xL@HT(*<*$6 N$I0B -IPGJS# (t*oDwZISb'!FqJ|J c%v%:,1v4y4L,pP\U&hKp&(fb^&l"K&t'ʼnVfzΉtQE)/>hH ԀbE@i<' +E>ů=Q B4~BQLOB +.dZRK.ED>)7;'r"z◨Zb!zeD*ȓO<UOY@Ut;q]n':(;_+b "2uIWhJ'Bt ,Ұ=|i(P˾MCI>h8+8'shib9%R(-gn(+ZGp˪I.`l\4v&oeЀDe Q(9HgR:2H8>|B/j&/)$}L`ɤ A+2%dϘHB*&] CKI6 ſAa cD\W -+FQCMJKZ;;FbW%l[r!2r[$֒s1"-"e͒{VF`KvZFdI/CIbIWl3BF4!mF|fo)qó3]%U_ +4Xh`JII!(I4芒yFġ n$'IyR ;%ȕF:"Y '&i3FI5^% *I[=UGlciHP$_q#dH~D!G5-SaFoH$cC286$7!9w82qdTġA /Gy9#!i]j9#1ǘd"- [)s_ќ!&~D~0Y4DR"9DtmDT#YP +*("2 D r@tr$ADr "QyB "sHnqH;^\ߐfCmH2%Bj3݄J ] WbCBȁ!l ѽ\$Bt!h2Lᛐ^K!Za I'="7b8"$D_%DE\ "yj +$)KI}@'7Yɱ, q"jFJ@-h @jE?'?0(_jc0DLYG'%)~8iڏFՏP N$DV+}W&&C>:nGD(.݇F$C+}TwJ}\HjIjs9"U"mj&6ބcbct{ ~==~(t=[${\H +(cIz4K=VHcIH@GD wK48Ry&YG=$>a<"K$JDc"#u"]P$?{LX\*"M߁Xu*niu;D2UD1#*"L/:[z:l"HKb8Visܡ$MH0/EUDHtEOz5d%9[DA/2qāŽcD1q|Aq4a8p"bi\#6QGAh#.T±ڎ"xDGP}q7Ifa2$REz[X$l፽IMGH"<D܈$<ˍgL5n\I ǝDh6%OR҆mLMIkC(imTVguٸ}%$5}<<[Jl(*lKuIN0%?w +%ԯʄ­؝֘HL +e 8mL0||x^W#2Qc5r6Z$՘&(j"l5I5cPCOça(n4pu +1 Ͽ1#N( QDVsiI=I535ˢhI64ԇ.^BcUDN'IINܜKk:I3PtFyrƤu_8? ݰdi陱:i@3N%NZ2$.CL?SJ Bw`': MU բP w"AN*L GC!D)vaDaFʖ2ŹH +{JM.tm\nqQ +.nʔiJۦ(- +)uB?edm<D%!XϨt-lkQZQ-i*ԢSB**G T-hU|* +VA,i-\% +8U,{h,RY5P+i [HUu+ ;\Q,^G̕ ʺAhwe,+ۊ HtEAߊ .2#_B5eTc#.J)@|=, +4VQẊUJB$dњ*%p"ҩx,La9X ?=*K\Q=2TY$>EO.S:p>oRTS|d8 +a +a.҂R,keVկfBalOL^TѓbJK-UǺEˈh)-tk2jP"-;IKBaIa$Zi6/=ψp*(葖IEi!F1(!ZQhq7QD#it(Pte(TLv + +BK"o( +T"H>h+xyBZ-B)؉ubγH-'؝EqB, &<7`&(74f&2K "S&5bbžjf +&0m~ Uej^]T.1VI'mvcK@2 %ز%%ئw,S[E<+gT%~@b?Zfmݪ83phAZL˖jX-~eu)ȖmJx~J̵-ўg *l)ޢ-E)ۣ.U27L՘pوUϸ.Q>$.J<}4Q%5O%]9WO3q;0xJZ2/;N%JR<.#2Ҫu^'.*qTYN4s%-V Uqi,.N E`f@i,LĸA$0ԡ{9;D}BCFB"HlHq!quI$. s.2b>0B ^#ˆ\~R^ ,T)o}6B^ Q{|!З1} #/#x_vA}X&V z`{"`pLGLJW̖$P1 &f0FBJ&aS a6x~|9G"[UC*b"fHL&!UP 0/e1q¼]L1PfL\5|c6j!>2fx4QJÌ@g +b< FFm5AAf$G"YP,2ỳ2ZTDXF@+'4[0eezPA#1~<~ [nik&\Xͼ]vLS)}A錚!O>4 (> 2X3t : nf^gh"Hki5IVuM*hzPk$r060drHʦ|9g.FFfi38\VeFp6(n#6pا`7j>aH,azna7H鹡mZM9Pɢ6T1n4B +fCox .~ĭ +pBv\5Wpq=!?bO 'Ũ#q;CN<4T%#a)NY7->2N@ #/h8?nIz@a3AZhrd4#3ӗqzB`ˉ28!st يL`hsH@Ac9RC+zs(c CO˿mB'1T1: PHaT:A øL'> JYQg`5u xֿPhf}a ,0{Ž,idЗ{ T}<@UGw!N.ۉZ. 3 Q(.$ ²h]w|~C҆mha*,,@& GNcR,;‚#h"gV`<{jP {Y t +'Gԟ"4]y:YG\M<Pă-)3y }*Pgl6{ kh@LSmK :WguP +%|teXT#<%ҚSBS!G Ch3SĔF[r#*Nl!|z{K!G~R +I + ~EGGHh#.Q ?7j% +{O +Qhxgۻ'{4O~602Ne) ~4<Š(FN!5zOt;AiAΝa kNx 3w=}:a} z QY2jpF8~(36#@5ܫ|<ݲ ' }lgNN8ajHN:p6epfF\phR, % ?8/K +I NX>|M=gNu ΁F/~R +NH? +FГYv3>C x0޼&CnH%%/ !^Xnp/Uk+v `) +&R8|a#dMP1iU܄R&!ӝ!з($&`ƨBFZׄD̰ m3ө +Lxar\Lg1Yp+\.&BƔX zhDne+~KLEHp" !/! 1#h1!90-1Ar31S# @n''//RRsKx<1ȱ%D-&LKpVs@jwm3TD$J²+0yH e!M@'a3 +5IP6=wDIȏ8Kk++ oF>IP*G5ZqY432((f1V pdO˵JSΈ,d#v%(J#;[2%ro!$?rԊ!PYL#3룭2B"ɥ -_iJBEmq¾"P\9 "L\d"(:d0QC^ž ňz+~ + !BŵF!ؒ"P ׁb^dBD, m!?&=r U3hd=ĀWȜ $39a__~ +`@ BFb3! %r< +$d>X#!9 8.#|0[Hk%/%QV.rF%{p7nNg rN`ҊЃ]bfCxбj4r3(ŝ+gzD/8,s+_@-knnM*g(b&vN<&MYwDάetw7.m/n/2>@v)' A "98O@vpm3h8ם-:I8j>$X$%0᠄E5m+Xs@q{uJ}ڶ8in 2 tDprMbRdLFDը"Baؠ,$X57lb 1 +Q 4c|QOdAAJ! h&^A  z>puu9pAj' J։A#^d?tP6cgwsVR +tH_кlo{ȹ^dF)Cg F .0"G *\6P>ah8-\$%m aQ9D [ d_>hJ +YCXd@Ҽ%KSYY;.\ҷ+̕ f eBTWԇ ۷l|.my k +wX<  +Qh Ly%pwF)NYu)&Ps<*&X)R+nndP Qc$PgljP]@ׇy(\&n8SIO'&}*P"4 +de,tZ>sBdrF}EA̦=zD(z`#t +[@|'(Pķbj4mA`Z9Ua,;%@VD.P&v0fХ.\\uP +p|D{ HE\W> +WH=| xhЧV[jb`c|/Ͷ4([Uh`A$s]4ef ( ˛_adxLxe+}N\!Zhx0`FN'gXg6yv/UI#\y@[ \.G`@,8#KM\Xk 1V+G[OxS4{,2H> Q)@{[,fQ@ʰS,Je-E ~,6+<U\K.njtn<+Ѹ T*y\:o˅@}JI(.(,P?"d3O +cF-^ 0`0#9mG +_G#vҁs6y;jG@YJny@ί +=F@nj&TE@Ж+w}Tm<Hm@sC!2SHg}L8<oδwp2nʡvھ4#Kax@"qbϹ# >a@( 0Cv3jh)襤nc@9Gje Z &acw9\Rfƻ]a@`UCA*8g|ȤݸLޛWppրYBt$+4 9t!%V4Yr 6ϐRB 0@I_^@$P칛 fŻDf NV +&3 +¢C3P+oc:wcnâ<^.i&rLTDՂ_FR.:rfr`ǒԥ:m{\+z]bM6Ҽ;R!o_>>ܭgOGVAJWD&HZ xjڥr k@%LVrPPQH\e)@M,V6! ΃R~_`"gԣpJ(h}it*j `xpԗ/s9rMZ +HU,_xQ@ib5I׬ SAsPo 6ⱆ0"HP iJm 4i LSEZNwEء:^H< +/-&I'@qKDG/n[Ѩ_%D_!L}O jU~忈yz +|^a5:Xh`EqL9 +?, mDyL+ Pօ;ƞ ,6TX#vCܿW +EiBJp[ff\e7o#4ɣq6)Mͱi꿀{Թ鿙ϝ򄍨)wIv=_+ ̔ Ә̟E{y;sY(Y9Tʣa#ПA>tT]ЩXg ߠty:.|%.m*vY~y? ǡ3t`.;n>V@*"=-S_ ( +j)KG +zOjՠt+ƜK4vlZb=( v-^. D)*OE@@|=b1 {.j6c2P߅sZTa1o'Zf zbw䁧BJ^f94b?P +@?6tn`]Ų#u/9KNGbR ~{eW*`|~Jӝ]!jevPpO8KGk]þͷ VHm$Q=``Wm_ir`T,~(_!VKPG)mcam1gnJ!C=z>$y7)ۖZȋ})Йhtql>òS?_廭DPuqܾK.ڽ3lL&7?ma +T)>N'f3_#w%,Ps!^-Mb6u)YKFfw{6Sm[K˨x)Nbn{ၠi$m%#%Pr P؂J +NP,U: #ї ;f5dXEm9P^2'BT!wwz67T."Ҋh4+4_dv+ywԱ{| jz{\c1rWP,eścr@k){?`5A7c^БT&φDcH>IIF뉪\!Iu,ΣO0Ĥc2 › DRI! 3ſ.JyJ|~fnӉT(M˪( 9ιB'' +Eo"uS Tu1αtS<{|BJ `PdtdOIoorP%_p>[>2Xp5{H,ӭ{ +4LG:w_{c]׃|o=[lW1@s_q(lN?}4IS\'=[h40WuT~$o{XI,}{پ1 V!]{MYNI`}J ۧhZyD\q}/lxaiN5!IPᱟ ;7êa#R @ +.Q_ﷻ& >b ] z u .8wtAzk^[mkp5I XWSRř sP=͎.-eF=3twWՃlR64O27ehL-gWs.Hi(ˣ` ۂf`^TQg|تPv:o3DlJMIC<ۮNA0』V~D vŤwy⩐hMUމZ'l +ԨCIz"Ë$`A^!.)i!L*%U Ѐͯ] ySʂՖxv"L!H/@;=Vd|cK6<_w C1s"΋&'|* +c_~|XV=,ͱbx<Bmt6M-[̀Ys0Ӳ'mĝ YpgIߚIB7_Dh: +N'?:L'X?-a۵z!>gx&J9|ka<"^O~9Lg[ /EZ*=d1G5VƝe8Cq/bFXv81QWj.z7$?),o )R+ ]nG;J8eq̭Ib5jv0xH%dl,z~?a*b޲ܩb aw4n]_`%3#5.ˠ.K-.<*W]0T(cjq^pd$\iދ>09$/߿̚ Ecv3뛢AxBqG|Oz*vR8NKZ+xզwp{ @lw 8lq}erpwJYa){񛇁kEkn*7G۾G}%yCiaҏb.t۲(e W ~}I95~m8I/&TeU b )ZLĆGxJ?ѱi.blƍۘgX{^x9n +;RSz vz}dJF v +%@\{t1}%j~S +63Z{5/H6=&3؁3&cٟb3#baYÍrqƋ1 đo\6؋*&{=3sR (7`/`~Kw +|@~R͛\n)WIϪjhA(%)ilsd fne%~݃~@ubr\:˝(uXH09[ѥ߈tEu2#z)F^+9J-}S^tꃞtON;48b t VO :\" Ȁ$lR 0 eR^)onZBc A~<]Xpx\:> J-K:}XEUJ,UpA!@X%RV/ҍa]92 *g 8|&097FeSz}Mm}7zć; LDt]^挙1;ќ@^'#K]I3zۻ"KA[eզDoiCOfOzYc> %غ[i=&'T0h+OivZa=/g@sխVuyoGtW˃6vxWaAn9XYN!cG0b"Or'ifp"&ؠ'$0y+Wm:cnTT\ _Δ(TqB>sPJ`OQ]*E|rޞ_;gŁ(w*.ͯ)z/9=Dp!H-NPo$X(уl]4C4[m"F[F^pnNA"0[/]di\"4͸:>hp|3v'&xNHM7KK"qRO}tK8&NZTCx-/^΂svV =H}WpB3y[J@\bq},{SkzcO9ƍ:=wfաhJ 2^@%ڧblkq4, Iq=㛸mUU+p U7N6?8⇥莸6 #_@6z=>8ECjQ+se;Be&p4-/Jx[nTK.hJY"sOÁ\VṵP2 ]4!Bz lrY+9)1_*d|;!sߧLظmE#m2OoV}ixzl s5׆Jz4P=Mď*2rjNmzyX1'x)I/Ѻx ٗUu5C.}jP7v8ބOa ݐY +Vҿỳ hP[ޙ^>hBś [027v baĨ O>BlL*qWr6[TH̪Sod[%f CzVC{b}I%՜/RB+t9QeBTnH +QVt<8iUQYU1usc5"Nq꜕;`^d#f0Q#*?h5X4VzX׬+J5#\멬 VY6k0Z4i5eZJiڄggC3nsbu +W9 'V4+v`la/4܄QuƵ?M4BXy K"cErvNf?q%6!>9u)Mho֒#sɎV)Cadh32: - z} A) D;mF@[v.:4|^\Y4XFn5{,8'w +j0~|Ы>@.l4iq txJC"QQawҳ3 b[Dv5 B6asɡ>V.n 4z+x 8R^z;6E0.DfX'f +YK1‡b5#cY l|A^D!x1:` X¯$_bكdeDyfy2E)֘B竔Bxq .,VyytADȍxGD % -Hrb9g" IYB܍,Umv"W:2z]@ kHuAlJ>mZU$QTʖ*i Oe;jꎝ\mD͝_-c?i-bLD^dh'KyhLu #1o\0օYiT5$K2G!:IOZpEeeAB"$@]w:m-Z-Z޲Jh_=_D3eZX^rc2sz2Kwxk*BC {_s@B"JeбoXF+A!hciP?}%c柜PRbZ9jmٱ(髒{e1 *z +endstream endobj 16 0 obj <>stream + +a?cOs3P7^|'U8f+U~t^)_8.E]4+;[Dc-{$]ixGi.g'Ԭ ΀{Z(Br†(25RrVNکT@o¦@2rATJ{*;עxuƁr?n7_r|ur>(o[IGґPʡu#Д2R{,e)w)橞2:Q- yi!)볥)S +'7=PZtV3GDjRIo0 7NNTk&dH8jsgeUA' $|fvuᢌo'׏^2^Y/,RJ\E)+02&")kNLR!E?(`ۂVNM.|cMEQFW "-1J^Q# **Х 2`(OA-`F<-y<.F)*o-)yJCat;0-=Opy WhC5"OnD"(N+SH9VSE#qx¾ky?=ӕێ; WZ  A3B9+ʟWBGb,Q(_rn.2,|Ec2"Ք-'8ЪO4IB``[+GxU('0QNҶ(4 2a&;u_XkND2%"sv)+.2C"4ʛꬥ9-O Cvc偼"l&"[̋|hw^J!Lx\wQ; ȧr>2|S5#$Bk2 {U20o _Yn]9^x 8(Ӟ0/ + +`7ޙ}.V~qZyW}sz~{Xy+ 2Ƥ +˱eŽϙZՀhrA:kZ[wˇuk\1S]_}r-$0c< |HwĬ,i/cv$1|: y6瘔~͌nf&hVN15eYO=B([dFv57ߊegcFJ ;Ǧ4N;Ey?4~U E>aX-VX Wmta~Yu-=\O1T09k@%mC}IPTpR go+:i 9wFyPdm4EF\u>,MGlo;Nү,NO!=G AhQ9DttǘAz$o4ݑ)S=OKd7vF>VHr1sMWSKB]EJ\S,~sQ+C<ȍ:*4NJ3s*Ҩ12~F}Nt2hFm1?i܅VptpgTQ )C:Y$cyh8j?>ĎO@HQypϸ׺KjC_=@ZR#(@1f.QQڐJHAYIF9`-E&KMui{yf\eE] o|We7knz'͸ 9/Vm zHbޒ`] +[@KLʪJ LJtMԊ;MUAEDb-BŊJ?TL͖RR?V/Bj5J#~Z:\'7m ku5kB]dZa䏇ͩ'u'`U7R1d Y&or]򘭫|fgRm sδG+\zDf#aBki&_{m*6(n4l3B׶_?1ƚޢ}S'srEF?Dq;tՊr3G{BFy cE`s^{V1)PdA4"jX1XwP l wY?a{{nʵX mx Qy4~$+n2ĝ{sЩX*ߞ_kO$yoO"hde5xU[%ALV.u87@g߁ti0'#?F``_kB,_d#7i +哵 Kxu8F]#y8yS1݇oc#U}|%("`ͅ@~rA]}7|]+pvvYnG=$qع/>KZև]WS܇в Qq`XF\C<́,1:*)v +[,aF^!вJ>i!?pv,Ĺg: Bf*aϾU;; Bhq\.Fxn3Q_nA17i8 .1i )xT-%dE"Xw0`K^YDŽ K>U>:ag۲ZT-[,qW߹o[Q87]%īLuq6%ۤЎc%ˆ15ҡ%ͨNbv'Oq{=|`!.a˫ SMfq5tqN;"\dzpKx[g/Pzg_x_ kϿ1m)f +&uG9) +Qmdr%⃠n޴[od w13]1%{F@&4;g ;/3uc7x3v! R= 8ZK=q//x*} +w)Z)<{hhDxy:|XO<>bT9Ɨp hNMZzq5C~vy/@hB=O1C\H ]ey4K_0fbdF3lyКia[O7qN Cqo_:?(tpnP_[z0-&j;ivon{җ-mzea_ mmǞkB$ +n]~ssJ}osoxUU!}s81{ /Uu+50G7 #>&ԉ( [b\> %"} .DcHY~qk5 x|&{G-` Dgk=0yu:g~?WbFsfU P8Yۧ]t~W|5}2g + vƬ?,G ~{;/%Cwrd,AK @ ~ݺٓvfYXc'0dĵGxݓ($|OrGOx֌hӃ ׃ˏGt@"qeAP&mqɵ`qCtWv' +魿K~Lw0EJ5KcLTI0x0 +LH/o'O5UC7h )=ҽ +n-E9Hp8 qh<Q2j}Qqw /Phg` vnV4 }WŮَWpX]*uM}fQf<6D.gS=,U('BI>&m|2`a?1J6*݀ jzD]#OqїL h +> BG*$+bz-ob< #J>P槐)7(ɳeGGnC3$</!݉;0D*Y)8F%|p üIFze#FRq3R0{ҍRDu9ӻ Ho +5oHO&y&噧 +؟W  &IJ/U˙̃p'3fs dazx8,%WRi@bT"_ @_Q-v+f$=ro"uDZk9{d]ؗQ@%.fH +ɑ6I`W ~Hkgrkܾf@ L];ɺi"` PUOB/c#0_&Ɯ'Z6A *z'tt4gP-}D.U߿ʭNt̂1MDo/BN,"p|'7Z&fX`H ['7ۗ@Fx&5X +qvlb0<>,LmROX@  +"ֈ(Ьݹι*⣆<_EurO"mNɓte"o -RKX+OG`ON&f/ m6#_|RvZxRE3j0dW];e +*d?3/B.:$ *`bAWb`#?aQB}$c5:Y_+aq>>,ץ +2)*p~hC~Oy]W{GMCssCFdVFg]K:0$}Ui͐a M fZ=2q={٭;K83zqל@mPά#r, "^7X3Vo?Rl_zʰ!FImo#Iĥsx ey$7} +beSa%W>eL`-wb +wɆ* 0k/()H$V6_AsS ej&:#)Eg1f ZÄM1굺ܻUb*c-q,R5pOx0 +՛3]Ǝ\9bj6$*_o^cS6<yD뿑5P`"w"8 e؆ re_J;%iScMHDЌ_\|}:C>㴛L?3M1TVr3)D|~b64_EGwf85 Aۂ>$-x;Jh!wgtEn c2' +ۍxŶGCOV )#xt[.%gqPeqHEJBHwvi`QblГx"^L}~9J(j0@^;JT܃>?`Aoh_cX.%hRt񛀄܃MXx ;I+Bԋ鍥 M{HbWukٺQ%؆v=H&]6&ؿhm#87o)]AV%Og, +8]D*%p[s(1cbnߣ\qrn޻Nz2dS_޽4-Xg.,:Wzd-e:|\\B4ФD2l:2U`:5vAQ!Q~'fDBsלNu bX5d\ +_-I̧ D!@ɕK+?&f;>V _d,_SKWl{ͧuRnb[m췿ygW6#׹Kϭu^dfe>sjrjmrK)cZ*2r[_9uf&3r( +9UKC̭͍Wƽ֥iwUR}T1>>;w yZʻ]i욶ݵOZ]lE.+ynUb#[3b!WCҍQoG֪~{2q^,+ݓ=3x;Ӯ}_j罝-3v<:=&:=2Z۩׶Zۺ!]m-ծM{Kۺ˚źOյ}^ a!e}l B]fCB"ʊ{oYowmt3t?d[{kV}ǧj=]zqb崺"3\frRN-͡#"NVԔعIJ%!l QF "=7hBLdbF&"a# GόJ7*B~<S#`F (g&qyj.`p6c8D9.0K ̅ (1th@a3̀>7)>|> DōM$"fCd% +r3#sr !dPRAIE L$Ӓ!K +<4x0tL@v옍d PYɑi9F *+p@AeEF<6JvwJRF=H@4bc9DdHdD$IA +b +֮O ]FV4nL]L*_9⡋M^(Oa#/1k([r &3ӐwHߺDb87$ӋG.,=jqӗ"m*rI0=Mȿ@a>+ C"pѳEMr(xssCP!8GoAfi=02T>lBn][nrԎW9AأzR({g@Z` W BI(b%)KNHʹ  GAC~p8 c&6cQ!Qkcb Qhna@X^XzRF =M7'U_Ad"6(=U|ԡ}ۼ +˓mLfEGd/lJV _z5!5iʧ 21vW$3X72 Hml̈#d뙛c/$c,"k3^=$&FCu|>1N3`S=MAYunMUrZ- f@eYP > Yn6<1~o}͸A}]1p F"ջdaUp"FM؊; +<jjm6Į?\^]('VߋL^o>/@u8BL4!d,Y#RvDXo湐Y*\oqs'y 7ů bb$W2v@Bwő +"QcPRA_(Tf(Sn0~d_A{ +JeԳf?yIyFJ ++9[0VJdaDLdߺhЪ'̱ *ȗELТ ] 7K8q4Pqa,8W5?f-=0ٽT:v ȰK㌒V7A2Agd[xzbIxMZ,W}ȭ"U(!Jf\h_N ٘;~mⴗLQJ[m]lPJ.r_*XA/@;HVw9Km([mK&b7Ɍax%x[wWەmio<1Olx:pPAЁa0\1iKꬤQ<1jwhR,Z_fbK@; +k\x)+]nCz9JDP'G5pRɛg䨹DA( [EX[>vڽEBS=iLW|Tj6 X!10ءDUqpfABל8 K'r}Ȣ=*‰ު#YL"cvP6, e}E IXey>#̆H֨XJfFwU\Q`eE~t%NPMhoAh JӜ-nm9 kc<xlOWIz J歯O1W12xۥ3GatM+gLB\KEFCXid^VM_%_WJ1fRmhDh>ZWS5ÛψG'*'%ԫ) +OV]y(vM]Ԗ1ɗǰs>MgO)HsWC[lt\29?4(pɞ7"Y?k>Ѐ.7ָ0? ɑ4lNɦLQQ?`aM5 s'`V :"Q h@Ę*ZҦ\Liri,Ƃx9%G#!fUCȽf'2?ÝMh&®Y$Jx\aFGf@FkE +. $ةhh XV7* )a T*L:!Yb쌿$c]ލ1)R PDR +i s)OF8]mcF/3D/el'^1VWۆuɉ&E7B#B(x^UbD,7#qFF C3gCi`@GD67H7ܕ%{FLefw^#R'2b$U v E3MQdZh22 K>b,s23Sc(-%XQ;> 5Q h>~Ơ}j$kCfoQSd_ɚJAs%E,LjyŚn +3e[0 ,VEg3'o,P x*F yRFLNo苄zw: +&ZAC7$+zjN=)!I1??5̽# woa#5|W^؟ؖusdʄe@8ˣIctv${T<9py0]f!ȃ GRrr݈w:1 kPb! ެ74^ +?3q>Yn5<ݴ~P֣M bˈvi!@dF%32_4- 3Ҫ$q zpUJ7jF՗›Kkn|ܠ%'њ;D7.}'7ȳmT/N0yS!SO{?/b[:w`VK}a9¼-H{ve1zXp4jK,vrl?vpnbѕ,Y3^D"h<5 S0t" s!Ge[P#xJ4 FfuguzyJ(,z~'iT}d@vHDR sQׇKC!g\wKg(U"iyZIqj2͈O"U4\7&bXHBF\tR{fR$b'ψIt4>hr;'e)4hj-"EV/9RPHk]Ԋa%DzoOem@|'̫do+ q $x$*C%Caߑ} GLg?H 9d]+kxiO͎~PԠ&j~mYsNk#Q=T;y{"lC!7n9Z' 8 H }Дm3Y#0=TO@;P֏ިu϶M_.9GpVEx=(³miX&=O6hǎAizhLMmg]Ԛk°螮U~ہҞ5Hm:WcAhd]HBkdAB#=e67ڳݨ³n!YyOwf5/j~$2?'Dd;q|gV M}9{ҍg~ +7H-Қ + +8?)Z>Zmخ).j|ΘMuQK^܎}7z +7Q+a'ak5;O&T W9ЮnԢk\'nk_ [A=\/e +)]o6袸/7R.jC֩ qt#]{]/SwvTNKC`_ճP:yb6J:UME[U.zhW1c"6jKRK.r\h Ͼc4&<ذ^FSڷw֤~NJ;eNM<԰&JtT6J}^ +} :Ҿ#Qn&bua {̘*֋[e3pq^]z7k=-}?:#m5pdg)ܸ"6R"idgVH2(w97"92Cs`[HDj@`')?6ٗ)C܍ڬ*q[3N7SEci3 Dk 5"7'rFEU^י70ΠqEFY;XɆykW'n<γ![4#;Wd~+^EEWl4lG#7.Ԇ6!X}5V3G +'5Tfh2Vl dt1ne<6ϣq֍5neCV_ hZ<0CCNhJ}V~#mIJb6YMZD ʝwc@^d+~}S]_jV_͘#ajEw݄;i]vz#*@4ߴMz\g'Ok#(MZͺ<&QG'<J{̎?g̯C&wcwbz"vwHsM&!l?-u_L'ٕ3a֘d_(L؞_H dlVs\FyoZ2+uHG%M9?r?;F*~SsX2S<0C/bסs0C Mz\_`B +.PQi.=IH3@c22*{򔎰'zv"ف*~+|!lݩԠ'ڵq6h؎{[+y/[ߐ6Ϭ(N3m==٧?r+Paj3C\$,LqU"gJ~vpHCkR/$~~ \皥o]tHj / nyˏNKw1ůKu!qԂYʑ}ϯ3"'Z~)X>_ +8XJuH Bkb6Lwb<)C z;k; qJo2V) xƛ|-ڏ\N8zmS6ƃODpS?u#o]CN<դߙjXюԜG"hmh `Of `~tWd&abInpFeif?g0̳`;@;r \FWl'a} m'xt٧PQ`O:JxǼMK/ BDy2 +|fX9d^5Cz`PM }~'.׀dm{.lbyCz]q6BiQS;> k\3m=њ?}(n-tF>ϮtNzܿtRsIpgV?䮵PuhZ'Y룶WCl.>hJoaęj:.2\%-@ I.˅Ңe>}ԋIg|u1;VhuS7̭=FDn׌6"i7#Bc(?zq oꪝGs]ۈ.39M<0c@bIcn#EAhd}hMʊDlׄa5aXN5 Zc<e u`|-~FQ-]Cq`mw֑ܲDpK< \Q\ѣWL#2 Jhن$43ODn'u"8)o +4&*q10k;Z0_?G8U_cƛmrotuP8ڇ֦ȭ~q +`O#;qYe?h}H{Kfv$*>b8P3Mv'橎yp+} ;5ڂwin[#o9+JظQ\)뚇5 4jYWEoVZEA aC.Aܴ=3q?P\z}g2?9ku6ͬ&5(v} Ƈ6UM3;r0dh c;W1@kF7FY9sr چYCƑڠwND.-9:Ӱ]6.=ً1s:Q$anmu`f3 b%Q#֞1ʀAB6H@n$P21@KxDY\*>':[˛o-~(v)o\3pKlPGgƏ> +&TfVa'čn^1F@ buڪ_gAiQn)|@?zHpڈް^;}gzb7i8ZI?`&X}M_܎xg9ή +OSTT!~Js 4~ܚkYW?gϽI݀?y)oˇ^jx5fy4ʍ"<'@ ;t%ttQG0#&>a}5LW7dCe74뫛iqůf$xE۴oEo.Fyc(?aWOϴwClBpP̩~>hMNS&F$:հF;߱q([t9i*)?१`;.s<1[D"vna=qQaN&>/nLjdZ'DjTtFآm֨-Z~q_\%&O}~Т5Te]=2겵\'azUo^MsKCyq?iMyMX$GPP}ޕ0(CQT铑ڰ]Ȳ'3EKt[vzWϙvu+'jqHv U>&Dp?hNN+%A`LiκAȸg6/8RgL}YqbgX +0Yˏ +H +nlNn ;>.Kk#8iwM+g֗𰾨]gbv8쩯-'EqQS73q+֓~qE|`}j1:RKq8ƑʠyYڠmƴfQj:/^WiU]-8|Z9iIfo\WE7tKhHƽ(:ݘL8^ ;8\ (vZc^;T0>6x|y! B "~%C1 D]; WZ~m(#O91t]?9'qt!cAS@S=n*T<%u4namTLz] dܥ|Rvdnr~%M<=aN{^ShK`p7SP*wܴUX)e¯$I8)..!@P)3F1n[MIW#[@N#?SaoV̬#7)gИ_IWPw$aFAhd} o5YKq@_Gh>D7A\Flң@Ǡ#K 9Pn4WErT5I :Q۴/uZޡ"}4l| ,}}jّUg9sr@n䍆@˟W!w(V;@ m%c.nLڽ+x#qo,z-~.T 'tN}]Bah]FQh݄M !*w"DTkCc*@Y&@mΙ wShg\EPp#6= ު]r0dIsV$4!2UdM\'ð"e\ [D~[ј 0,1t 0Qk!(EmѣpO?'yUS&p]m} 1I)]:Pd<&;߄=Q?=‰MC+iNp!.p,<(JvX;Jye'iv c٭~Μ|`nWaޢ%~M֮Yڸ6i,%csQkYRKpGpϛXB׉T"5P[LшJ'`AGсCjўZOH m C6TFO9 'O%>*()*(*$S:Ex6IMl39 i)e5l@X₸~IʁvQޚjGCv[ۈ3lUus^hM𸵒ݵ.ka7=>>S޵y"뜥&rktM E6c`ppO_THsV1)oG8tZsr=Rg?#lʯ[0̟_X4'(<؛SX飡gTAb+ff`\ 4|9K3U4e#:e^|N?M{N*wIctM?YS~>UdCH+]f^+zfdy 0~?QTiB7Lٶ펄VZEjBS]"g5 ʕ\Bi!\[2G7B8Ah0WE@ Jʝ+Bꂄ3<(N&5& .1MxS%ҤrϜTVRShP;p\,V.|6dM@?%{Ktd +Yd-0U(;pB#.X!@Q1Xh-`q2YwDxm) +(a!̃80 \d[%|o6Z,'tqiaN(c('|FmK\32 Z? )s ppedp H2ثzG-ve/rAV(5tE#- ػ"1qE +{M |\m@ҶWGPA])Y<`+pVEl%"ܘKlp7k8FݠHueCpt\#Xb@d2wE2\lY㠐2C8;!Xl 3d#,${`dM1T3̔ v/l +p},dC@"_)2_|&aǬȧ1젫BA.@zJNdyMArᅰ3(Kp,C#9i1C6R8!PfKBQ VlT +:z['s'@#,d@{9$e{u ABG`#C3`Џ$(@"O d&5 ȷ@L%H? F>ZE凖ъƖB/ aAFВGr7#_W +x3 |239@5IF9]f&*|$ zX@_*zL|y0& 1G0d<%|_sCDj@5e e\f%1$1""J4R0Њ:ABq +X_0#8xyM}q=s!anDW(H0 rd= .!G={)=8BEF_Jq,aY[6PU5V,,vhK?^)ku!mq["\r# J6@Jꥃ DzF/.2 +PD^a#]\#F%]~c/k̜# &cc rz/[@Ǖ" )'<ȓSl# # 3H7?p%p)=GY 0Ř K`` L +}p+B!g| Ewr$k늑s}$*!4 &*!\eB-A%"{­*ao~yw}aҽ>Pk.E8RWccH+on +l;zq]j%vf%] +zfYpx}%j/|~@0WooP6{PG/0o#vQ%xaEVK'ڗaI^:rty™"L'that+6" 媆 Rrm&]D` Ѩ`+;04tO 9#/zOD9${Q8Q$4L8ʥ7PNN4OU?`F?P@J-*CRp飅ޠtO9`@=ExިT ޽-m'?W) h{B iz۰bRAS D;o3(oCgi)e/BvXW= ťwc`?pBY/yF= ndž!Bځ0 +0s fPh( +XѓQXOv=A>cK` ف02 (t%p0$A(qd!&2> -q\ 2 0s- + )xs] SpD!Ef +ف/}E-{0O8 ++| K|X6 ++{3%o[{$jJwYB;o,R5BP[_F7my5,y;Z`; cZ,P{mQB]088P4']Ä f,`"Fq%L:v!:tpi$!21Yzt"ljЬq71Bgw‘xl}+y_[ٟ:Upܴ|]( @9Ɩ@?0G+D7t 6 5ht(p[ف1srifE07Ȳ0Dpr|=%-AHIl`'/ eo&AH,{sdi]*y'p3'nt f\+7N%A @ҺT4Ϥcܥ<NF"r;ē9D:ws&pAHwަX9b݀~3c'/#쁂7)k],$rPXN!kڗ>3t@dCv)J`$S( >к#aKxX }],%;kmz$?o.!ed?y=&n|6tFm=g5ɬ7@䣺]ƒ:: 6ߖʍq^2vLƉr5J)Fieĉvm5'قqErb7l)CKx[O'Mv#TY#U+Y=k4~W/"ܠ~BiQwS=#k= ʃ؞H.9i'6Л'XBGSXĭS@/&~=Ñ˝Dy2.r.4 h?o x1POfK8&mWӊ`n'7xB78֣Ͼ'Y|"l=Z(LXb#SAx-20ہ+"䍉-y&=B[$MHMt&JvXoa3I>{Q`whLEnŕm)`oaۧx|?"jaGGz0YaO@M{/@Rz%O7Q?lF1S.^i[mpsHye5U5cYV=gsa]T>T&nzk8f+e"k!Օm4Wbh"Gp"K<D?}=$p[=]@c-~"gJt <N"j}\hG`B'hb7c/wb(fڛ_9n;Z'r.AzQm(?3`mk2t6>1!h! !  ܧ(<\S)^G̝Nsj/YibCw-<]mW=.(Q&Ô@._j{Olzwk)P3+9faޛaKr u%˦*\22u7g*?l~3QzeL'oŵׯ񳚨oO{ +mϋ5:Ώ.SϿ* LwygQpX+!TZxb] Xf:Y3#L?F8. gYϾ)yKg[܂V@>(V*"e;J=EUib匛/k͋˙{Ye5:]r])s-4aWYgKutѻ` Zz*+ uAfCLwP.{كbI#b*a4s Lt`c^M>ɀєQnҮd`sŌ.onj\}J "]Ce] GIn+bP*f: 8Z#GKWqf~EMl,pey޹G7<..xu}>meu'lvW$^Y`… f,`QfK?0ewyۚP̶vQ/-Cr6F騧y!^*kIp/P y'ƻ\&x[mMy!_Ͳ9+`4،L*:xYhކ^T{S EYdv**Neʪ` r 6XfY]s#3@"oA4>\i\JmZi1Yepfz5@cXT*~"ʂ\1Y5֍q idrޕ$$1=.|1pҰ]q̭]%M2Ϯ hW׾!^~Qvf֞+A]vp[WnNl-5Xb- +-r!L"\Md~ר%Vf-M,>dBxiX.aOzi6Vi1I^|ڋB6. GIX&l&fm (ٟw?ZHl* r2%%Wa7k U2R V /Z`SDӯM3s`Ƙߥ o~G6TFP0:C +F؅FAfj&M*-|+@OI' q4,ݔ*B7ԣ97chz< ||T|ύѫqYOJ}ks \2`s!fڌwP64>ǷphǖX%2Є{]sNb. ӬMm+t G73c~<#x?:033O1oԯ>LS3 ~>)(a|(]79C31F,3qa%w+WcowLp: ]T"nC"*:So$;#9S$rxNwhniRg*<o>e1og| aկyyyG ިAUG[aODa9x%:XIӂZM|xƨ# `ڦ nw惃G=^l.\aU[ksQog ?r8t$β:P-\;vҁf~u/XZNt7>#z`!JY|Oyq>k<=_KF krT$*HT iQ;PREUnj~skpd^pS;FIrx¥ 5y0_$e84_^.2 &l@1=dž>!8',hXGsXS %<)(z {xV^镬Fb^}8'q]:T+NPwhS|o B4Bo}Az#" *GʀT/=4$a4$zhmperP/ʗYwn,Z{f8:wiìd$藜(,=@َ̓\cDxU뭹]N-\P +B<xaUM~D;51= M"Y 5LTe8F5J@4 _< #S쒵{ sjMp5pw 2>Fr3St(U*w8WpO"5"ebßI%-`Am$&*wq$O g׳}uqzjKlZ%6L }&[ߴܭq "d˩S2Up8=@z%OY@X~tpel~yVvJ>kb<=x&Uo+8gI'QnJF>KWA.]4و9RǟX -2iy/u[As[H}lK2aINxc_\':\gNqhzr}rѿ\[W/vRm/vQ_sFG +?J6Na3O3Q+ @*@4B: \PIu*_Dėm<]Mvv8}_u+ +;I.oW[=8`ɆcQe%.⦑b-b`k {kEaޢ +|%z3_[OrL0;4t_jjIP<%c^. +Ÿ-!vу% z=?OA!G 6Cdu~q>ɁyU%*kf5i؉~_EK>cNgg'ȖcI[E':;p*BH~z=g# 'À|_ AD14O&P8\T\*97w+sF8%*&d84 Vp>{Xqtj:zN&KQxD矆~ފAg-z +Ї +z >D:J6B$:qZ7Koc3ב=2V!ws/wq=3lE{~4%20< bZ Ŋu-S:u 0WBIlћ zPc 3O"&G sbtHT{d$]5?zFi{ flct[ǝ)Krp3;$mYԋcL G/<_glv~i+|A߁G/ 4?:2_CEPm?Z.ScMViD $ !.J΄8w;*_u+Zr@?FT伂jۼ?Տ2= QyH@pH2m ͖lG=;1굏_"BFXn +`d=˔NO{qZ }мXqz~+¶J~sḋBl~FwwM_uӖdH b#ilC(t#P2H`tx3)OTs?`g_y* +`&IK&bʿ0奞IXfE692\6aXSxYNc<A c̲/?šCқz2:8o}y7@je& +MJKTdNHPJO f|dԯ޼ΓQu)z=UuS*:xѓUc^(x-{2#6Aq3!XW͔9E2ćbw+?eE,G9 >6ͼ]WIP] YQى +:5ַ.RX=ˉ +FW +ͽVڤZl$[^)Xv+*B_ø!/_- v.4g`c#<c 'Xh]uW*bdѱZe:)VXUV}= 540jBP\{ڗ,Zh\d`̒3Ie+N]u˨] +I?HH06Mx0H2JońâiP>&豌x?ىy*ON;⪧ذdzTԖMFYm "IjENԢZ .Xp%ܹ +u(=T-z X"w>1(&r! d +8t٥&:HI=DԩPЉ|@@yZمgքR$U?K6?ԗ` !$*--Mn@bILx^d7wC(c8t<#G?vlT/Nz> z% += + HpD&F 7rnt/@Ul  Ώ57"Dw:W_M+.g.UT?be5Z)$wD6~Gooܓ/wzI}AÁw㗉R/cB + +G(BC!蛂 h5= Q%~OatN=ߡZU=3v6 +2K(M7s1ž=\"m l!:Nf^3gCG1zCUA2 T ^AЗPTyy_62T,_nkj>J,4N񚣔n؛x9nCSvaMܞuRRG¦N :z1`1,=чQ0B#$??y*[:_4H1?lz(8Ԡ'ʕ,ew<^X}mfG<ܫ8eML|bv(㉡8.PMwVA#r48P|Ux1Vҫ= :|hmP -7ැ>PAbH D2tP!#RU@ L40#@ +& E1ivN[0Nh\NSx'o".%-]z}.-zCCx49o>NEUӈM}_2k-[t&}>-SԀڣ뽯ut>cq9jMLV^ R${xO8)ƗB䶣¤ΰDǸS8s\rT.:µ/ЍrdK +icmJOLEQ!*les`CC!UQ.}oHw7HijV[`8ɺ\1Sº7JE;B@^ogeH6VKjۙ:du5\#a@@0n;DuPoxX:ub F] OJ#,h /dQpj ECiģ+Xr#<|B8̯*#6Z>_-A o?Q[Y٤;옜f<2rG'gsV ݸ_]q\V[ >P>uc-@xrX/HA^ *<~[+tFXb)1rZQ4I"RХ0<~6dU<}]zVqo0E\êrIxP#;3mG&>v(@}$5eR6ü(Հ30C+R;ɏԻtcED^Y= +ƺ~8H9o^<)]<V#|.#:tjaȘBFyySDSΐRTy\ +7Ίow)p*XIKLA[EVS,?u֔+ʋȔ#3zh+7p>G َbH_IwT(8z8A iqUܡeh.[m0-Wi_a9O9lWy%ʕXeUPa1rg^pzLqyYr }AլxDyiJYiq^t^/o`Σ{]C%rup_A; +4`"\?X,EtM0m{R57n[xJjW[αxMFnpQ" 4\M^cZxjXX4UNk [5 +&{Vkť01wc b(5. ض1n^& )wWD;Bk#Ǖ)1挍۳Y22{Ć%C@;uh{biXm +nslq$]O+!B@3뾐 σ.&%@/7=+OIuMA +0GXݚZ#f*X_RbRj܇=!IŽHN. tҐGَxq®>h."UPD^b 2 =qn[;'M˥xrؙ,W 9-j|Ym[@W-_;(!*K N5PXӻ2 H«N0 +pz0K(fʼÓt0)&?9vh`۩\aZl#[xnX,ofDrZLy;ҥ'% #oDϲ!7RՓW:@A!FS'|Dԙz:N +4.JduekF|~T:ZSIA"i]R.l,3rj7 =S7c昈*ce|6XLm >oyu'Q)cUM2sf4WƎ,c7"6d`z2t)|U. +j@`$seA}-"fU i,"ì)t5< +pR픓|w<9b@}ʕbI?NF ٷWP*{G{UvR.>w0^2vgrOzB 3im KDgǔ0;., ߥdHARC9J˧jS/^,RWO'a]}$4 ;$OHgӾl@*^94ݬa"nR%+ +ᴅ$5yn& l3NPbf43KViǝաՓUA8AA0olsX.e]m6s_^.ktVv.̥I- +ȅPZm@@;y4bJkeXw +Vzg ^xd&d-O.%P B%]Tj!`>-~Nފʧ F4엄~dQ\S~tsicV{]}J +猃"&'tS9QeI.\sGgݾ[")dՋC9ͺ>b[Փ +-V~cqtH'eHaWpgR"mK|psr "Wi񔥰pV[@8 IxX+hGŝ<UaEw#h~M^Ostu[c&,}%d?210pc waFZF-31UuW ۘl+F+s!^<+JXo@6r{d-Z69OYyjKq"q' OK,woIEZZz&,ғ8kK(Ӑ41GM錵|1T:L ;TA ً+{!umW1TrQ CFaKA RLQka9ԓ&J_2qa8 k|IMi5l(I7V +ߪd~-" :y?z@I4X|!/f(&H*" /(ė E!~z;0I; 5 /MQ;s6& ɇO$qP)~ku%A+q \z@:*8{_Ծ~[MTJX7^CgsaA7<,hBV\J<@}?f`aFzݔ&3> znbZ9ᴵxҏBiaz h8j"RBkIWQ٤^Ge+, ECg/oḃ[2[58-iꗶ,sw&UDĹ.G'f"h +@6?s49xܫ!hĹ`#_baqW,yx6RA{G@RR6e,,RGFz il@%29'2@.o + YXvew۵ y'0!;p+RW0WK:Qf('s@">`:/*>|'a=SN ZU5&>"SY/# ũ\ 5k#CIjYO!QK. QK f0z¥_xN8[f3u"Љ0ʅD m wN#+ˢc76_fǼYܽo=] P +.r3VJٲ/^73QuN +sN8WzS[8e ̿NԓɠbOnXY '+Z) Q UD&D(n퀑8ƭYME +B 6%}ea^_]+ի: xA?䳇8 /2 +޶: ?M_rW-f4Y2_ǰ3si NVߠxs6nvmunVۮn{WWں[-W6V{]F|.GqT}#ܩh;&uNBÛ9QETzv{V[2 Q)⧒9oYɬPOI&i 6}ϊWHƒh)*6WSyH tn "sԏʯ$c0hs v[a>q t,+;S'CY@(GDK3i1dw)U՟>ˊ$<`/YqE" +WH,mPCۧqώ@)xW<;ƴ R>yߜB9{A[ w{̥%s'"~r`B]m yW;īg^ + + ,gUA +$wE`gEx9}#Hu +/ka"6wGvUs^r\Yܿr! F)8)"@}8̛WG."EQ]F_Ҋ !/0Н,oLӷ\H2kI;&W۵:Yw[tJhOIٔ>|=YF6g츃=:hp'l46&A +WT4$t]f+SoKA~SKY+G2=d=)xs-^B ,D'&*j~LdZ(?&0K2tg X 6$LA =*Ћ?b=zŤ1@;tuv+xwf//t5k7?GEgL<+Nb}$ymL3wi659`LI&$ʦu7J8sQ"\+ypnyfD4}iw[R洈),% -h.)u_c6Ma "4"0,0BbȈ +vlJa_w~'{CܞP wk…GyA(v;Y8>nk Fg?tٸ"-/ŶOG h}=&vi{wSk[/㓤g-U/?{^ZCoA;;=ߥӫӚF e[KEc=jSӕYI4w3tlN +rD*`H P˲lЗl(Q_5"u: B4GAaeJ)%)`#̳kT$(HOGT)L;8ifIf^]NR,W)%t}&T&?b֯Hf(lsg!R;NQ+jBN,YO!S4?K >خr*x%{U./A/>1ea>Z\a5c"q4Hw*+Q˚ ++iZtו`lWQ/@, "!cED/e$6Ap^T"tHב>J#?bjKZX3*Z| j>s捬V?"^E $?Cm :cPrQM{?jVRk[U21tE5YQĠ1yLz'KAE#sfn3"Dgn8[ؾx +%מ#EqBހ/W[2JJ~'TJؕ:5y.hLդ2zG<Bܭr"oCc(  Q gu!-+r&!z[߹DFHC KOz2, dIX0S, i]ӍmxۃC'E4շuiWٛnN[DcڄpwRt4s.hLJ5vt{VvS+l[NBԸ-I5jH;ڧa=55h=54nh[F{6#ݸQJ9 A c"`M)-G%Qr9F,â׺Ð@a?OeP$Ӛ_a{p[KxAnC(Uܙd jn.ͮf8g}Z<}TWvKk̙36vM7JS/"V5u'G4| 2|e gQ3>?5./gMA#0]5tQg@ۿ Ӛ{* +Ek`2A4 @mApOH"C(VjeK6zg3 ӧJs`P&zc.~oLfU,.`NP7^>#'v)h0= #!}u7'̸N~**($ + +; CsJ-jy$R=3:5F + +|v;mu39G q ږ 7{h<oDpVQ%ZԊK~/o^{`;FZB'㝇0V7S*`Wn}ůwNQדf>(;kTw@<7ır$t![ԛ c"~@yG"˨6cКŬaʫL~Y*)+NءѼ$ +I.U{;WX$NNʱ9C7F3|Cg@37!tƴpGDy;BSrDʮ/cSQ1la#r"\j7zzDrlNZp=ӊ$E*JJ KAy7K3+9OhYS([<*,Z*e "f5d"8@M'0X1n M.G9zn%RXְM7 +!ZV+gYjf eY7rj53ok{=sھ`~oZmSWY\\%WβZU3{m{t^ԫDd@IahVb4qQ*l>LX|RJCD9wY6vghPjMD"?_7 t^)ƝϠKh:yg}E!~=wY74x:{U.,-k[%]Լj)WݲUʭ.'J<%OP<D;Q>o("tbw;63<8P&Ѥ@#ܱ=ٖa񤟚B+lYs 6uŠME]/ɲ(U3ʕS0Zlc,l_NWJy>KڗBwE)b/§A+D jܴsn꿰Cۮ4sc18 +,N,=)/úxsͅ-lM.@ $îJq6zu(@lv&6:Aߎ8ǛFq_'oJ`kP<ܥ1v60%ӼMm.jW {n0 )WTtJWY|N:I@rN#(:\<or d$77vi>W̲Z WȺ~STt˚WՔԐb$Lu%ՔJTkm3 lgOv=r6 w2F dLxRS49%" Ҏ=XSu.Jn*k&J~OĝDo ZLKN8ZUPBҫ;a{E5p$eԊv} >2U3sOʯ9G,jN/Ѳtys "UT~!dqn n?O3Q$T@cH9'0Er~0ȩ3U*3DmoJEg׼73kCq'1WfWЮĹa^Z+[lg +w.ʹ*gXm"b + $FJOD=P"'ͨ4W,.S~]2=RI>LQDRE6riē$DPzMuAbQ r0ۦ䎞#oǩ.";3z 3ٱqi͔@_7z!W(}~ttiG<3rnЍ vxr褙4&Cg +R]-6 lpOxtԋZAD{VNI + +&E +93"h}W +8[)^gzF{s֮$îk+@_!+f[tqj%"EGQ׍:۠ۗtxa6u>OQ#z +6F{պgFpB=I!=!-7{hAO!0n9vLccekDdeBjF@kY&Kg.8VoiL) %IћEp'dY{Vam)6tSZeS.h? ēBڂ/u 03L:'ڋ嚀  ;9^1ۢU薨B%Ȉ+@}q>yT$}ZH11̣rz}Of^~ǺO$L疬Lbn11> '8K9aN8LB'c@G}H*`XSď!=dCh"9@/@7S@a^N"ɘ@"8xL8%y~Qu[n|}ҬՐxKŽkQ(\Y5K;OhZE KQ b1A A3غQ 8T}/-ogA(VTҙ)4e/KQsں,Y+j[rtE,uoغLQO)`OMFᚧ>Ŋ,%2)`9)pU4qdCөC}sԷ}m5l(7Ev$j+%kSh3=ӆV3ھ9#sgкS¾rrt_94~nu[mWA݃hJJ>RE/~t8(H>ɋӈbm8wS=*kADK)Eqf. ^y n?zL?G4p\6?~!T%whl}yp0D8"#4d˾5?d(׍:ab~ +cYEzUQd~h͢ՓtI:E*bXtNM+x;_)"F8q#Au"8s6sQrc4:5r!COd(ܓ~$v)ǞG/S.6}~H.kb\[vMF0:h^NMrl}n`: +Ap6ژ!zFko@ZAaa!,bzqC82>a7|@y Ѝ]ʙ~mr|em_IQ8JM-~C|;|O(ǁnGغ<23-9v.հ!Encn ++@m6oZqG/ C7AZۏ8k#w!H~@7#&YiƝ*"͠g g&8;zn4F]DLofM}Bn.Ld$u;T32;\F]gR@%jk6hٖ8;5B ,k[ہ?G2:7#0PLօg94od}gܥ;.-I?O%S`E/r @8OJ5\U,tlxj8yހ/˰x ~=?!a`xm&Y?#|owK`|.Ix 1c;1Q8I'Hr)5K)mnC(tJBtf8E+|sEMc{;N!G#p.bkk6[5mJ2t0[0?f +(qưoC0cF0(FWpq",rwH#j KbO8:"2W|"IaGHf}fzJ5"E|<#u~ 8^kt~G^@$'ը:#I4|ojV +Y-P6OuFݦB.lva 1Yіm ūgo ! }B8OJ-7Y̼8zqֳmT3Tr:^ s5sfۆb\ԫUʯgGoo)7Rt}BOƝP[-!#ԑVXc:nl} aDijp! De' 9#96oiʎd!C/Z|Cp])?b=ih`p#p+gܥ@ !j?bfk盶Wز+k[N+ vv(-S~VAd <X߶~#ϋz ?`9nkaa<BxC>(\YB\05 9P`dJe$zn~ ,#> ÉO_0SJ:iv6[O p sZ{1[[%Y1X3up [w4YW3W1W0X8W6Z,Z+y[y\xW3[MT;Wx[$[&\)u[|\-W+$VvXn Yo[y[\{]-Z#[Y"#V+V)XxWC}gpY|R>TNYMYKV'WgwVdw%X5[)wZ/`],D&V&cN2x!VR7761 ,k7eHxsnNLL~JF?kLGkĬf] L,*'m&Y2[KRpݛ+{td 5j/BhKwiHiTެU/&, VZg}WWSlYSEe.$L8kR0+sq 0 <5`9$Z$4 S 4) DFxkL$;W*l$ʝwaIR /gk {%[;QFA`/ot1.vSu<4RDP&2cAbHlD !D!Df!D'!"FR⳯" +<EY r$0rsJM Ac*GEK(Lg| Q9"9&;GFY9$`  v&y$cKη@`96DV!DZ!L%y%)B'5YGG5cF &N؍9ߣ,h(i'RIa(c%%]YDRYB7Tj21cfDxR1(. !"<50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fro=`D%!|c\8`i0 0pA$I ҋ#R'-jAH6M$7+ pz ZlK!:€j4`XpWsD? a@ISK4AVO{(?PKӶoVq&sO8?L|45m{dۜ  =/E_U5 G/5TSق[ r{:`3 BBv)ڡAV̈&1&\1A n4:0#;5ȗҹ˫=/{FatC&UDUzƿ~|l/〈uݶYYbI@7|$RDӌ"??_$(ʅEKdC}pf+2t7A`^ڔMRo=ݪN! |V!7i_?HȹhL-<_Y@tαuXqN1Q &70(69M"$Ð +Leĺvk7!w6(eQ{ť:(5[t7Κr= GͲRU7`ol58Jg1e+@c5G)\/y>$Mrz`,P rHnT6RTЛ-Y wO 7-`-^l/ΉDc|}=EV()}RU^&g"eNaRN}ο`4($G#ʮAZF9r + /-!&*|,z +IiKM䀊L96|_gAz̗VM>_8hgzi}C&wB//y:L*[[x=+mu~O$IU@C]NE@5&jEG%N#uR@) f'82M#} +| Lb ɱ+A +ȋ7kJ(? SVCy5gF&L" h&S©0E(gU|%?PumEQ)复x+Zb#`L&+2Kw&!xUhyMqMHIrRy75(D7z00 +,oSu&5iR| +d#+'SL(ob%H;*0HL\ZcLiaWգ$Fs J +2oF4bNc n/pE-**~ OIx#txEf.l\ + gdN"0!6evY\`O1sfUN҂yoە A\FHJys]Q?Z Ks]: AqBU eI-! PSdN{ 8Ω{SYܐQh91+Q:c#+d J*;58,yus,h $7e^ѐ.tIv!XOj]$^؉*k6Uj%HBM?<*!v3kB[$"(۸cpfJ +fΎJDD}ԗBYC8RhnZcn$ `-ށœ`t,zTK*<9(CSe 48L}bkpOOKZ;* #ɨ,KNt,zJݪ !84aQM)j ~L>|d>p=b%z|1ʡ2o$ sɓY^Kd-8zMcܴaJEI Fi&",F肎M D_LDJS'E +Wpeqmy̯QWrD,dBj_1. JV&҈TO[X\Ux,ɨ)6'xzQ"s&"G XX+ :6[Y?+ &BNª!p4Nʱ\);eĺ,&A 8V_X#c*8 +^0wF@Ơ,Ju+)gn<-c@K#'gfW`+H֐P7-r(OȬ)ɽeKp썜C`;j0/m24ΙWtq/YI={1)Q(_s'1M̵Nִʅ4HxMY˵PDk'mg8FofJ%Iw;Vn-"qmwY q%Hgr' l^Nޔzɩ@ +t/;`x!6ML^xvI@BI& +[tlH]miR -6w̸˲O]\++aU:uY Cg@N: )2tزmWe eaO_!1߁xw-Skaea >qF]a󖎀6.W*QY"^h'ĒdVZ/\d +u3XI"`[Pș 5uv bĆE!pN!029-1ogeU.~B]"pca# 2)f4,IoQ])!GkiǩF&xM5tkvӧ?En˦$s +&SuKz?bpmM$T-Bwit Xi %ggʠe p(^A}VQ A(:Bl3ݱ- Tsʊ$nRNOʔV01* :pIUUUrf̾AkDM$KCl~k]y+SJ) 68zzn#)dbaAyf?\?2Q"6|c5ƓزaDocD/'K%bhZl(EdXx:mf5B96ԣyJ (EGӎ{D8;{"0\wLH< ,(P`O e1P݉I)ĤHJI 3aJF50Q!""bm~ki9\Mt0k)vbg>"a$ +Ӷʋ6b{& fy3ڍLJtLt;~=%* F$#"E]hl4 A4K4KF@4K4HAThG||=4`w.zŐ04lذЃ,CN#;HtQD+K fiYE (P@ J-͢Q@4K#@  50 X<ȐTD82(8 (0p(F|z2rjEF^(ssQs))Dl7?SE^{Ƨ#B׳"o"TcFt짧w7)Bg7}NƏNvbt-&JDlN?yjk}13˰ײ; y5R;lJeSxjk5*2cF4D`0N^iYzY*Y zimb>ow2uDmYQ:kWhmynj}|6Tg +x`Pѱ<;!<;e&66XP\( EbHt+v[F:ܟkP9ZGglM<@ ͅdc%UUUd"wpDg;7M311@42( )1-Rx(80ؘj }w0٧VFk]n#m "' /-Z\uq;KU>_Sf*:e;cDJ[(n>B<.x:#CI91 t%iMBа!,.ҠH J/R)Hq#Szj MǀLF !~#*Ɛ:1OΕnԲ}(-ԎظZZ*-KUfMGsM4Yqk 5 wH P +}CA[NZa^HPQh8D==Qp<-'sԏ:ԉ5:9H'v#yBs:hp*P&67\6j?N`:Am&yhLY8@ވCq`9δIx'zbԅpHre|2Cx8KSRvGWHr0 +"jkZJ +489Z۔!~RP.a{"~R}i9=I4j^!̅ %ce셗^}*_*Mx$͙5DhTUlK_^{> ƲuwN$؞Sw͹ξs5z +UEߔiō8K ]g nY&!J(:.eHA*) {YFn^.M" S .JtD@"SZH1w`AVZN zcˢTh"IM Y@ˁ<ԢrSFr7%֓T +OÙ` o N+Cb ,^d֑P'tQ^⻑و7ce#x|K!EXd :'tUWeuWh[UH~MMP')GWHϵHl Ó+k0;nݏ<bB, `C#`T@mǮЂ{Pi֧dc,ux`ӗ " +TD-܏x3NBBXnZ(QC"-Wܲn!# +Xق(+$Nd>v#E3 o/ \eY+.Rc/e z|6|HfτKU,3ZR)_@GauRJ'قN9O-? D=@CLu!m,~\jRWt A#+K!P'v0j6R:'-8Bt­ûeHy2G< 5I544jѶK_9!"W6SchFGQ00%DBGlZ9S艨*? IHQ լ1Zy~&v |C_U/UY(OUWq+i`gkvmz/q E7lǪOM,A|~V%yZDaW⟰tS[.K \ +RyTi +CQ[0mC ~"IVTTf>ٵlRɲG'*h;ޅ^; i`h&B_Oouݷ=Pqm!KՅ3JkB#:xMbV|"YN6=dAo<`'Ǹ'҈FfN`(yfm~\>s6(k2N'$ S]:݀@i x#z" +,F/&o׼㦵f?T$[-R8n+Gܤ-!1%mvlx{q2*&9ݤRF>hxF ɨm{ΌV-m]D_52AՒegmf(yQXDv lԸQMS $(0 hn='87Xc]8*am;kip?QXՂ>HǘCy=VI_+Wh0Gؠ1z!i8G`p}L;2c>j$(/ Ng&0Z>A7&r.lj.i!,]Qg#X:#H4 ̍0V!GM*4]/ \fu`P)tOJTB/GJ7*'r E +:+! 0[ct4FYBfD ho9FʰL﮴lp8#ҽ3ǘi=1|ssV?r1$dŸs/G? <|@ޔ(8>4qA 2% +T5`878i ii?wofhb^ LW$P I$"85 ?cjv1hAaFJ$/R`Y)M)EJ6Ds8Cx,tsՕ]16#--Ms@wjD!SW}v@ԙmQ>tKTmo# T+0ߘ6Pli=QC,Wge W #s@Pd?e6C>(HHbܼ,P:%p싩2 S-#7dmq$Kc%ֹsJiJ =`  93x W Ԉ0ypLW$Dn!%Gl2" ].+?'%F1K у jj#̊FVEOc'Z}\hDž`1T!+|TVίAА[vooL#%!Z-Dëlr<)s0Sܻ;N\E훪hP;V\U[V9 ]snjn,Q36x7=?㍃us%!Fr\: fc]aPj7 +B`1`@owCkyvDt~' Z[wpzmb0>dk!o|Mo!0^3]jx lBlTDg2@m{~h(Eg qFYy?g(qnG֌Qݍc%a6NUV&oXs@]^$k +N%#z}xtL(>@K~MaĎpG\b?ZYx萐h|k MC0@/ފAclG^KYuCI{AI! lO"(nm) ;\h̶vA1ĖG0KTKp id˺⃊hL0BzpPÇ^",ȑM.{'(Lg[yauY1N(#p;Yp:3~,\L>SH%Hł{G$XOtE9=0<\Q4tޅߑ ͽIq<3yA}Qs,Y ~,oY` . $| FRblrrr!`b& VF6SIK jǁQx(Ѕdߢ@д@9J@`l*Wc [89'B8Ζ֛pEIաi eڍM

9H{ˎüT`Ѭ½&ʑtd yә,b%0E{rR}Y 0.Q Z妬Y$ӾJo(Y"N4XȈ:+M)iҦ@Q ?fٻ}afᯗ١'0aLjO@a7+\n0G9i&RY+m$yjEk~@^)WF*cSZc0b+~bjy93@]%#[V(P-~9SXܳyȰ2!=R/JNic~//hZG&# +D- +endstream endobj 17 0 obj <>stream +mY"LB2\/}B0-uМȬ1'g^G&aSkv *mVuU^w>'EPEt~ Q +$ Ӑ+,"M!7t}?q#5r: Idk2 7@X&Ydpˍ c$9kzI9ـ$R7MۂvdttjoKU]]ێO'`B6 :P}Hw;J+&/mf2'>nM 9ƈ9ST"E$,toO t>/~ɡPŮ@'˓_'\^kxA !L읐ؠM0>RS`N d/yX^6wsx'YCoެgݙ^wjuŮ9e܎eYeYom5[6u鷾wo BV1#$Uz,"M*$z(D +MxPA1xfd!L.4AA : +C N+w7sRM eTEjެ RJ+t{߶;^mqffF(hKb3Č`%d@Qq^̧J y|)6#2$i(fRT=@pA00 C !C1b1CEI&Tp]E419NcvB]f8,`$HC@]: +GQuY˝L,:m SWˈ?BtGi0øɘNRKXjD Cõ8ȝp8Il+*qڷ`Ez&@VӹdOv*I2Jeedk&zuSCLn ,gG=f|.;՟#K AA8B%a$O.B$P5.!s̷M|M,K@j3^VGنQeJ>[Ty+ai늕Z9? ޲JxDcNx(Ҋ +幄uc9D;"6; +g~}>Z2YE} +׍;2.ZIem1X,t\$ռޗ& q R}_U=|#E$hMȂZ9@̃<QP*u5H.kkhpNhSc)q|Tfe$d+ yko3YI":~AbКrbe5[*ز<:Z`R=ٍO)N[KΨvrqlğio( +yZo* 42|tER%2˪h‘[B_ڡ1Qb1DҾ| "~=( 9R ټ DPP&ԏ}"-b6a +AuMz0䩤yE 8JuB֦rfΣO2y0Na!aX D咓aB`3Fˡg#g b88}[؁#ڗOR#lblbDQ<9>r(8JBbhDp^A*޾i!+FwjA;dSEa+hMACBS+Q Cq%@SMA9KF|qgy9l(l7bk]M +(vi`&P;44Mnw;MXa^uO[Le j,W[% W>8|mʘFm 6=jE)By? }$b/|EZŞ Ӎ(ꬅF)We4 +'4#DYz>xqd.nUѹ1Qp4S(K@eIM}2"dV[uriΰu|,Ӕ:Noj޿Vy}9{A6/;2ߌ(Ġ("\)wlf5 ̚烸JFNl!kNX߳I;8%z\:}@DZBӕL7IsupW˭yBUD 4R~ +8qBRۏPo\0/SR&ԒBnJ 8 ( 9,C S"IbgZ]fVwU([i#NȺhӜ̼3FsOP-D:4%ݒqtBc_l(D5쬟ZPaOm +a֐ti42oFwVg+ +|6ǒ6 MtD9D*ya}jQE#;;O݌^N3Yjw!2Ci3mj$oJfj%d))a[X,IϺQvk / +Xx?B`K p& #[We=UoٮUf|VcSF=P0)2 k;xHV ՠ ?3͆ܤ+hRqYeO]@21]VT6ȯߦQgHTVrO +jwdQa)I TC3baXhbXceg|r;f-vOS1L&4KUF}$uWUHi mr:*8+F=Dv=I8NלĜ|P>hҕYS1lٚB6`*>By6,џ$(}֩G, ÏYR1N$?_Ҟ3mc*l$9qGDaORx6n,ljcT hT<[[;cI >C4fDXhhX`h@ \,]jd?J;l<̫srhIVG̴4UAjQQ,[cֳg>>a{2϶o>6W7I&\ .D0"`0Cսx4HCD0  D,>a"C X0h: baƒ:25}M%ޕQ9Nյ(3Ě 5hon6X2J Զjؓ64B5]G0Om%<56dSA G`չkrz7A"#zմh3gG02#`0uX'ߓdDxE0ѣ&*+_qޮ}X3Dc_+ K6UT7YtAv95/csg$Q+D7XF%ٺUZf̲ aE`Ԑks *qhe2k$ E`*emJ mJs0dTm +tF0^0nEȚ]U Y #ѤXpDoq̰#V)޸ya"bBO!52 9lO=#I@v6bx˵A  p`  .pl0 *D0BfpAeu[H|FLKvggLvBT(tRYa46G߬CXB$U 9`]_rR~ɟFLY<2RGΪ蘆Zu++f&||$w?^ Kڋ.?KB|QkRsXC955"$cw2`IbK<(*t^SQ#8|m2, +zZsfU5&6yuV3 "oNDze爪s{c+35zL;{EOAlϫS2DWDMDzB[I1.OΚN1mCf>3/S#Iѧ$Csַ?50ItFj>y s!MX4X)Q:=H1l5M,$*J,s8e؞ZAhVBI GN"u$DYshJld mg1"agWhN.Ѯ63fB3L%)Fk0|-O1\Ȫ_kI)e-zLid5y&aW+I׳ }VtٱL}5xeht9uxDUWxQohڳe7R>fY ⋞rn.L;ey8g+^w;F5i'#){g$ǜ^ ͙}9Vΐ3񐲰ʁ;BʒUY%yUR7b2M̰l1vY|d36l:~TC{?+>%ozgIqjz1mPFW3Gd{ +aeZӑT)΍DNajbX /q:j*(+9Ȭ2JD3tW<.O2IUu0o3~:f̍r8mܜN>5/)d;+3fR+,{x4#sij)IJs6S "xh\nn/CAs̟47Ũ$#+IS70B)7Ety1b]ɋS3FSLhTUS6v38h3Ν(EQF|^SGw@l5af^hզӡK +bxq3%3S L$O1p̌N~Jjev%X$S}͵¡b -OטQZZPh 'C) Q'&dՉjrJS6XIٻ,wSc ynOԍE $g )k MOiSbtAS4êV$IvDcwc1TY?场8s R*ʪY525u͞wZ5Yb๦_7v'–D)do%g:Lv>c mSrxui:uCS 3w96U9K-kinu#s +sY窒$Ke63hB6>e(!&g +Vi$i7neW%;{Zu,3;otF'PDr3 ,4MtUk4}I:2{>/qJNA;gUjwݪX5Y3;Ӭ̯)Q+N U ɦA382oQ˺nÎj:d<ίl5)bHRy:Q +tlY}λIrU{yLNjuᴞ5^[eURڕ[YfG\YFc6)&)˨ +]ŨĪVO+%){1kTDR IKf.8Ҧ;k VNzou)LjFO'Sʗdա|2>2yQT!ݓu9TƓfJg.͸V/%4MT̛޻,+';*L[U»;ړizP?ӌtv?T:k7kDܑwU>![p岟O54S{2F34|DZy/$uttӥP(&%m5F#%4Bk?O=9iʊyYtbwnZHO1Y)T݄g,éyCi+CbxHUHP/k>,4HFbCT { Q1V |hM5to]{.23!#ԝQ kx&d?1ɬaj!ZŰ?RGQv_GRUhTULz촙r~P59GAM: lF5n6kL`Ԑó<3߲@u^OGN̹>6 5dyɖn^K*]െחS))T-NAaYyGsWKr;:䏝]1(sfG+f᝘w|뾕1Kq\h9L!]E+tQO[+IVc58io6h5kΔYu3Pb0zOIgE֑E1:O kܳhqistM5KjGWe7J݊q2Kh#BĢs[Z NDVJ My$",o=K:]e=w=[&}n՘'cD3C*7_[1ЧuYJؑsut Le;3[wx~",tp`a9!Qsu%+)MUyk +;r#fƪeZ!Hf9Yb-mBQJ; +;zv6JL: ;10/cE߮ư&R^X:A2yK\d|tJsgOfet=߱ +8>BES bZ՘{d/Rn~&])v6=g\8u59$f,M%aNЎ=Q%n?,jwAWNѦYIne]Tx ;E_&ݎ히qGTЈ]>n5A8iCU];E|kjw7?Xu3r_J]aD7næ0g'˸Jb fe/-,&MnBjIdaA^G6BQ2ܝxji4f4tSmzLZ``FZXe>tS)UlmB3fh?қQYN?RC,U}HR1ZZǛv<5*;;~bdcaڎU2,0Vxe#|LYfȎ $+c$˝f!.J:k7Z1gcf1-'ӟRbξ]Y s+SM+jxDy=y#WI*s,Th:ɕU$sTvXJq|ۛ-Cߝujf/iȮҤji.S^xdL(l-XME$1su\.@[]_єT1*J.N9WxD  TXx`.L!bLD\h@" F53>ʼ9;kR9BX&1rG;MG&Rʚf4TdwI#$Ւ,z><;̅8aIڥu`YjjwGb%HG',*VYʭ:V:*?ᐕ[36ԕ$exf;2k@)LpksJsD7dzwM1͓\߷bd5߽9f*tS4b\?Q5`Rc&9K"fh}kvg)jI2ˢK{e95֑)䎯OrMm:k;?tC6$̪~9dRNh!W/eb\Ư0Ĵz6"Ϛ4 +D,c3,8L&˒\.o -B]y^4K~(uS úJUu)FͤYf}Xe^,PĮAdZtdbgMewb3H:)-sճ/^ +Y;S*:6ޤdqߨeFzZn)*XFѕl6h#5\~" Ջe&a)?,<}yϋꥱP.]382I3cOBUk(N;I"Y ]g?it\ɛ}77$[,*y)\£syOL9Wc)JMMIȮiFT??)H9%]1H|Sќwyo\tpʭyMHj;h>K,T= G͡ EUcR;E$"4͉]oT**d).T|gMAT΍u5;I>{Bsu Y+jAVqCLnh:Icu\"bPuP&b*TygURe9|edNDeQ/+L;CݘIm:\"#i*JL4{c5wDbbЏWLT ʹ +c'}FC{9bx߶Tjzb*[{ED'zɻzt[[8MXKmQ)AƏ(dZ~t]Iu32ilN3LXCA|'*6SLՈ3طM|}ޓ]Й ;m*VU+4FwFnTE;̷)~#2wC1;ˡZ~:|ъl:t6]I:~,ɐ;V: ?tx)Jt׺k5TPH4, KptٛTsI\LsBEQ5mw!{sZrUy9K|=i6]oHd.eEʫx먴HùXYRJl68h.q q Ip10A5_nl F+.(Ka5ܜ9a ;h/{f|X ^ 7 + uRez1jݰ$s, %HVL]'=dq܍3ʴ!БSL:562_m ňdR((E?[Ǡ aDf8 F͈aѨ+ݸѿW.;oJ$?!B>݀"1k,A h&Tę㕧[ +hq/G(.xP(FqrNۭ +Ժ[@#`s + +S.#<)`yB"tz hS#\;ʱR@U)ɂ#crP%zQO`0G^ t-nf,!ZsEad8nV7( +ՀāF+@sF+5oE).F" }8p_흻"iVU%xAX\L=oH{z~K \m0vlY·6b[kY7\Ld|Q]}گ|0Fdl3q -Smn d%_ZP>C)X"'rv->_yǼx&V.ǟ!LZX[e`+\[xzBF{3D#wVA˕(DxH]MA/ _,In`$ެ+W\*Sc^*} +Jo!R7.%RUNElB\|e)曯@8`(7\ $0d$Hk +Uߧ[FqJ3O?EYԪQ Eh' _腅5wS>Di)H׫RA_RQ(nJqQk47Q#p7I h8\CUd)z9c[J4K pSV6K4k{h8j(zö&s Z%=%@Y/_ZROiUf7jՆ;v/{B(ll X`=kN23Ou/Ggd> @g%*kwɧ_+9*|4MۏpxFn4hAC#0;uC& 1^ +1}f]kqQͅ 82n=Ss\qzCo}+$) 7 Zٷ3ȟ>ۓ+@ +=0t9j,ͳʗCNM;1DjD[>`k]h'0;Ld2? bGMg)^t,Oz%uxSoô!U0_t+? &:=n# Y{UC a`dtGoLf &UIovͯwp`T$R';ǚ@jNQl"\V ޅ*",s1wXe~>`B<ٓ=kwrL :^yTe}QE\rNH>hyV$9}w8~l=g W&7M/bX`_,cXFRC#! E#JQ41O> gJfĒuFo^Ea,h"sŀLDiikt`l;TE)?G;ukhv +uN镉>Bh7V$u;-);c^Q8>|Yp_M² 7]V Civ_/q,nDҩ^}3.NCFg64| nC6SHـ1F!z5P33ˈJOoPp@JC(KP Rf32=!cLA$6g2(lRJ 3ܫ X2uq9l̼I](2r@ip[XX/ӓtGyEԬA :s.6irUp?Jz2\[ܰW,O^l5e1ΊڼA9l\ooXd0$FGJy8jt}/ "]b&4=*91WJÿ_6SRa)~J涔3z{)Hy5v} ʨP[VbY nX?0UXAɛFKZCDZjm鮬/ +E}fV&p_bҗ7mn)R&يM⭿id6+(,֨t;hy^{‡}]Bn s+v!Ϟh+媲3z2BXU_-(mDf, +^!"B|n8: Q߈#]R݄9'tRRlNeST"H挫z6b|Bk5+G\:龓?G:Fq) \ ;P9.Qޟ;1$伣"%n WXYRaث$ a{zBHKDCd=YLD0L]!Cݷi#'x)$l6҄UJ=T}*Mrjϯ{EIәRkPOJy F-@\ 0eD(2,Vw/$ p-HW"]a=I_VG0y(&ժybJIh}k2e;Ai|9 `N$Qu6'}! +эE6)>5Poz3ccqe7a "{1V[+9ˇS4(IX!=rQVL7iGyO}d4"<08V}ЊLƽS*F4a8ZSY**޽ Npje,"ɉѲLٷD$I=ZA^2l*/14!UnVq +L)^!x004P(v5YqF e/·4G5%-3U5_|Ư\[G'Nji`$Kb\HwmnT$cK*$iR.?}euO߉pJ--_I\$'GM"qKs}S%nX@F;RNOCq?m(YKYJoPs +$ +$#3b%(B${'`^$ _e6 8@#N@k&Pbkʢͬ{%S!E": wu)gxNgkT־é)Wl 35mJ!`(z%\ +Ml :;.?hm"ptuagjYRl.59lim/ѥ1Y6J)n{a~JgQLh IX;=SPqeOǞ%iD(0߰%CƧgx"0n`:&sרү"eWl$C4M(RX+>XR۪I9OJf)ÝHv4!mڳq\-Ŗv_i&eٵIBʗ %|;~1FF@{y ͎܊ Gqd&>0&lG/O6RqL w0:оoĩL]QfE"ʯ(ߕhܧ_'TW 2Z@Ao~㘱ɍ[oPO + {8p;Ƅ`)*ud1'rK"6!)U5 *޳[)(\$L + vG%kd2t]zx]zvn<CN<Λ^)^ho0&qn3z]Uvz+d ؝'^Dq,^ľ@Iuu\C9(=Qv7p>j\BS* | .dja + q"7]6~:/8$Q- += +/J%QaYgM>H 8dQEq^X3Ҡ} ק 햙T9մAcE`<8x."6?Wg+&Qv1N=0u#+8GFV^n<}rMh Reo멪+L94,D5L\ه_b`ݐlX%;%dy[l&BojNlk68̓ R +ńC̏|DC-7ۇaۗR >`{;88,^zF U5 Đ =FI;;,uUҳtkRPg5h5NqZ0(܀emQ%o\h>YI^&ѭoʡ'0QcƬU/Y@yrs pB&hK.q| 6(kz2\ӎE]fK 8 ܄9x2i ͐M\B78$xD.'p;,^4hG{3r:PgY}+m.@oqҜ7_]~+V}H>;Ex_7n=[qFl6yF>cfvHӦl9) =5& 杵c}4cw;U|P51\"ZIqX'\$= Ġ1c>:E/8 mh`q8:GL^~VW" + +TZN[>`9&yݤ>TG*%LE]9PC_ aZ?dZ!O@,\]Q ;|ͩVwN~Jx?g $~|ްӳa9a +üGfT W,8Zh ?]m^x䭔@6 ̊|`^ƙŒ, +"['J\ Y%Vxˇʈ+K aoRPQᮣ x)]@Tknn%@ 6_K«\b(.IeAJq{TQ3;n;LKD}]Kz_|{lzE**.T_L(X08%GRrg@B"@ +u:XX^BlCcΤ +J6(pSkЬ=$ڑlF(p7FŠY{W@ǀ,}䳠4 \ +cj$ +j^6;[ʖ Y*6gg(] +ЉL%{=DޙߤWZ&Zap‰ dϜ@Mz&&I[1KpRU}̲M4kV!nI:DB9g;!ptqa/5T>%J5S`Zo롣~QQXGX.cur%ք7q^d +%x`u*u|>bc5G7DNd\#al!=fo(Pc/\ mĘy,mo#o B;%qRobv=yB- TVys +q6Uf<^L4d9T{1w5[R ï$}VzΛP'ǰRG=sCWo#y\6p O0ˆ +ZwۚjI`Ԛx{+ ib\sS'=eyS6gݪ55hN3O5qj.K rK IUPUUbQ9mߚ7pݤYp48-P-@ +,=DdّZa5pF H<E>i^2\d "Í]5+ 9 ɪ`/͒]]J8C7m[7o،\}1M2)!`_!!ai)g[!6[t dӃİEN>ol0 Z#6lІLԡ2cykhTҗ"/\labl + <[˷K?q_ 怹Lsdzl\ (\aZDvVܽ&iri2?|+,O鬆(0J WpޖnҤzWFpNW2Hq^5֟[QXMB3'44zmOQQPbi3tEtY?@[X$tQwޘ(@ ֿ + d;-Q 㒙W8*M"Ţi A\SVC٘fYٿ rbBD|َ`4߂t8i#Y&=0Tx&:, 828d#?B6mg_d]K鬫oYkSJ+Ŝen,Mw"fz!V\fm $d3jx7'MpvvolߑAhO!jA꘣+!b0OkL|=ׂvL y5myx7dMָ`v E~RBHYlMtXi&å)q_wK0JHM4Y"UR~]`zWᙇdȌ lN[+7m7a xBg,T9^#TM4xh\w0|Oj82_6Ir923R[Gsv6ɲmBbgaz!k|u`6 W3`l/+-KR+5|AC7?X{&m,.>X/VOEӻX*V3yDՙ҇6Qb'/Hd6v"وZFqבAY4TUTX':wz&%x&#i$D&6JtX]Ds Bu+%MWP3[1oc]7ʯpAR-~}F{aOQO\PAe.Mp"]sW$`!E}nA$*RFշDCVEI>p7@dځ?wfaࠜ8iY-?^l7'9ia'5hSǗ)zibXBϽ(Hf!C\mc 5!ƄAUƛ!qLr^7^ZVºP;GJz] ~$ !ᗗYtWnlօ&ڐޔԕ"L^F4B55^.'p25P1u%YR۸ƞM|O&"OpYUEO&M.A<_zGJ%-*7W~Iq;DK(OGk&+F1 K\.!;A w +h 5Po#Q l +ů3^ű!쐼_Ƥh + BnJO`8V1Śd4i?9Kv]G@:ҧ藲:#nL3oae +w:ͨρUUl4` пʡ/_~y&0ݟ2CC:$s[  !-D`)^6xH%C Ahň5^ ZEA%khΕ"2ߤzQO>H)0ow?J/pb3d?n ?iCE"_qZ + t%ʅNJyA=_MC S;yo⥻{þԷǂ ;x ~; Wˆ +:ZtgU|ߌ4uvc^I)Zr si0%s NsSDqyK3rb`da̗\^;{I,0if6.zFBu=\Mqeawcfluvnrwzv3K=F cHJ viWY PhCn:RXh+F6WEHFF-pv<`RRMbo'lAErM4Ye"P]UD\-)18nH7FMvM:9mIx.J:@x5f>GzJ bT``*rV"['o]ܫT3h[~bDPsԲ:h;`JrIŎ/85٪O%vDpi dVN\Ãۉ`8:ފE>XjC]Uz3`q&^] A״b^S2ԗ@7%Iz +^ue!O`r- \C# T$'tK<FJ)DYI wHi2I!9*]ޜ]JruYM *zf0rJ1mDa{ǔֈ[Enl8VKMIhmr xf 14BӠBpE11#ڙz3DtV=Ef+͞RuQx y#>dr17'+5h_b/PX=Ht" Т$IRlI(PD:NBItH,*4[bcAR1Trh=>}75`ɻ$y,.-y@ x'&GUGkynl'Ǜh}Հ.oU`>1Ok9fwl$ h/{~GMpB{s݌O})\΍O@HO W!MzQ9rvE(7r쿽8+fQG* jKwx] Q  L8BWPMS>$ kJ{KfL/t,ܘ~ ,m 4Xϩnv6!$}!;omL ڶ39pP\A!=m*9(gc8|,9FHKOP!6W ?aZq.`Z + 9cdjS;Q5X?k E\8UI+Ih}`ZQ7+TزN* [t&k ?Jl{Fd2T]`byg-0Lb<D/g#A`Bl~ͺl$/SATfk^͍bP@Me#!$II*PYe0L +̰^ {#60Gb<閐gkw52 v3J.dixba #IEҺL3~Hrmv +kL䅷M'?ƀ߰ ߄D\+M[#@6ܧ6#[. B!QKbxIIF=}LH"3,HW.hlDڌ!sĕAng9z|]GF;GJCj} E޾"LN"G&Iսfr'N z-9LU9 F!@əh0>E?zbwûc->QQ\`UOW| ᄋ(<%qPzSΙE 弽GrYUC't=/d8!s3&-`FCC=Dh`ܳ hIFuhu.bQ +LausN* +J_e2,*oftbu*صM12!ߵ{C!'^yuŒYOW^eM97J:E\>[+a'"W(}֏4*ibE,iVip\oșEf/ O?y&»\!`>m4&7< F7d)A*aõkT6edM +/~'s*P ي40V n\J؍x>s"q.<|r`qcK9b\R]n9#0Juwʌ~,sh9;~Vh6P/hiT`LO5sArV`[ a@MC:v 񄉼m>7p )c1 +БX9qȱ3GiE´u⁴%#ua=oMlJX5[1V[' 0/>%bV M\:}q?e兀FpQQ >Ȁ1N3muJ'o}tG39t›7 MQ :]車;h/xN4(@2坆ւ=֌o LLmt2!Puw%׬ΧI3[b~qΥ¼.7}hX$"ν$YtXM@̝9MB^h@nv`卿K;cX?P=N˥%* bG,m8\ ktTԋv6e?yRv6fh|AV/U\eŇ`<VAbElTR޻H74݈=AlmHD݁3 }TKm5*qs^z_D~{:\ݞF}`{7~}]K(CӇA?F7('Ǝ/385#mY17yiS{IZE{ A,q7,г&8䅊N| +U@ۭOk1<+mRD)%}Fd%X 3<"s/H0D פ_DIsmDL:`dA ϢgبiklO>ѻx+O /UOԛد6@vRtl:xLd9qLI/e`=h"m=!p84k*e Juy:}hcKPgˀLaCoaNan\m@ؒ82/=0F/KGI|1 +رeHRrTDei?\$O2_{Y3yV[%Bzujgp4V}`Kyf0sx2V%˝W>l@8?p2XH=) ;Ąg | -b*3vB oK,rTYyl5$H}gpϬOdf$9&rk9֯> MFCwEfDžD1h46kYz=x'taKY/jX$Bv_du[A3"#AGȎX+:H +dw1}J HV[gGQT7ÅXʶ1W + "o70Шvw̿ 08&g^Sőzڦ^B..a0!z15 *j3Ie=(4`^e"0!\kR'pIs_G4Yk%28M/7a|Clf+!6h]plH.FΊ zO0ܾ xԸᚾ "}7>Ign$!p~&*'16@B5r߁:wV25$jTS\Ѻd+ 2x.vg'4,̏ք9lhQe*ү#"ThVVp"` N12'6{/8Ϣ|2181xթ44N- doTj|200I"GDnE%Bz`ʩ##% lW@}8KRj3Ud3W)~[ɏʺa*kE @.ԩhhQlލ_h3&C k@dl i$g9<0hɄ@8JQEA%uLJ /.{;ӳ-r-WAՌ[M )\mKw䟻˥_?\̧qyo/-a2(An}M$|ԮT6 O21$OkEW] mw:;۟{ +`y]j0%/ uowC-&2!{u+_ _.l!_[3-A{<+Dl `[ RMS˹i?a.im͖~mL 6K{g +pHʝ_y!:&S{/Jx.+im9}˨"dQ0V$ӷH2$Yo Jke hK,Z?(q_R1(l6mj_@ 0V}dbݮV%Ж,9xo{fͱ[Y??6tMo59Dk)TyQ%J@ -k||_ZvxXFO1!ǰqzO9>Ʋ FB]&B7588Nm޵~cZ~ӡolcMw{fۭ:W=뷥};e qbc))QPM%iBƼ$x6CBm9Zs1B"&ݻ6]99so o[.z˻{piy]L>\c/.ӳr~p̖?ù[z=qPr<@qOx8 ={op6i7knP3C i "2h$aP$C#} jn R<9 +bOau&!> @fgcHv jVK_[Q[ȫ +X +KT)O!36X5ҥ0(!<4 +I6XHW-CعN0`!"{ᅚN2W)kRhMqřPG4c|ڸ<;Xсe)pU~(-\d% Ǒ\'&gdrq'U}RZsr{[yMm%f<~o{Nx +%I]'wA\UPOaK^Fݑg> Ǻ9OH* x?Ixst.oі׌Fr>~tJ?x}z 4O|4r ;)x+8T s/yαxW)|^ O.pr!A]9jf~۳(+2$9tj: jkӯf3ª6:;V`|8@KևEjxG'0MؗE pGpfq`L(Yk]Hg$A#f(Q|; 400+eKTp>T?&:``Q`I(J5drKi>H,X{?p콇u`!ཙXbvc1ZVA9%7A-?&/_'0Q b$w}%BKHLLSSa!zS)n4k;Xk ҈n\MN +ldV )The͝yq~M'*~VAP +{AWLe1 }e+l/ԥA/yGh %zlV饮ٷz?3M5I|!UqsJf44 RjaEV` <1ѥ:I:T@;iPB"2Q,&sqބ{!X%I"=j4s|Q'tHh6{cŠ +m\j -n\+T054| PV +i'iS'ISkbE<`gC]6ĝHIUPs~TyŦ+*o'Dj,mؚ1-X76s.R7Ndg|lh*k=fNe"8"zitσ>2\EK GA +Tqgξ0D1b:{s<-hRXx'oHZ)4n5tP +^Q՚ykD0EԄKsȴY^9p?;aNV/WyG8t X[PŃgkfx.HKaXDk QH'Oc7(T [q01f^ I"$k`LpvILDc+P*W0L,?D,Q֕(&o >e+UHd'xlGS* 5D;g̴ 8NHAхlba0Ή%$$67(%@br89t9u@T ;ǗvJpdn`L +gr@@)QPds`jvjޅ)z -䌾.Z7HYLH Ģ $nBȧu:~hufL\n3b7^4Z{W^p{hH F136M}9!T|6S4 锽e^ +Qy<]iPYyx#zOIcLumJI&5Cjq$TYe1S#c7O)tp)"w'E& "|AaJƧ8jvꤱQ]b$1ɞbEF%O9-_YN00+me!sF Sz *$e +R'j%B)٘(?#UgKÙ/|?OBlLwʘ# E㔷DGFI+K zI6B9$ *=%ɍUE @bRkڤ(.xq~ު"r{e7¯0Cf2ϗXj;FLMC2ab' H0ԄbK.E#gK(tG/uh$jY^1u'yaN Kݣk97p'hTO ^e{Ty)Ş1K&YsB;Rq?3 1$2\q4,ܠܱA;;Ϣivazrn5e 8yUzL~Cοզ| e)>?msϷzgxĉ%IF̊h\UvkN0UB^P,H1"␚%vԔ4jA8?q~lcLi*T4#)):B> f+B$I96(]Qa)0:~ltS;Hk+)hY$s4,zN0CF32,d$slP.aM(r~>1Ð>|П cQ~>qT4%***y g/0H/ 3bǚVA35AG9dG332ª,ĄfͰOY˜iv%OEe ;o"ɏ0:` 1fګnq &I NDfkXzϹM bn\+Bh,qwp=|,(D6"@؜L R?y[ѐJ[TE0}UQd-i$O<CQ('ȌϴءfilTmiʪ~c0Bp>#F[8oKo'v%`+&HڒjSu}L66FvcUoA&z:!f,-MS^4yu!|׉.K0.V<fvZ +}Fl:.5U3. ZGL+p%b-r-/ |p$4ad4'ڿv_+1!I^i7TM`zO} `N~=[L1~Ger߳7بTUCpS{|FDŽgh'mihuTnØ1pWL:} q`iţ -reg/~iBJGތ`|#3qfsqPaa>nLkMjaYIv(*HjdecRO]d̚r%3Ȅ빵gWm>wgT !G}<s/ҔLHacVitDſq? YIO?-:'=6ÓtR#`6og+8 3yw?IJk6C⧜Vn=x!m M@h` 'E`>Q]ZCk̏ٺFO3 B;7JjyKLmr+b}I <'#T1*Wo*^Eho^uc=MVkhM +P7O:).vw9x㾏(]eKLM-ţ= d7=0 +XLgk& >kNr ^􌇐Q i wV(5CHWSbC`%(\ ;̅a^s h- +лnEUgIᚍ~)G({T{HAIAnAZ{[9U5Rh5NXqLs| !C(ۜd4뭖[&IMbh3bsB~d0ɡ mo%6 8E.,Kq췇g^,_$Koє- +=(SYNw/ PT80}'F" H)D̓B[]YygtXxT\BBAGM~J+0Gȑ |gX+ip4G4`s03٭3,+ ܞ9au$W!ϱ%Uo@w ^OJ>}X{]s#C8&mNY)_ +(PpҢqtj +"5Q + ل blLA"eCԉW6`1ʖn0ITYbֲXܚZӱ]s nSUJ]0 (W6{):g$/w7Qq?,@ ټǠVuz:aY|G1H/ A(ZnP;@1_S03'wM,wׄfb?y*UwoMfu5EܾbHPG #,x I!=/?Ý|uˍ݊Rajݭ`fg6;/D fF+X_nH1~g +|R:՚Z%;b2Hy-E3"$f;O(0Z@(a>xT2I|pӛ8<iKRmeV*6Z:U2B҂"%+G.6*Jχc;VMtdlgր-Ї3 +QPf\_ 9M;жKX*\Ŧ1h! @rie +"Na)^7m4<3Wx14XnVm }Ȅȹ^kq;PYH~"0-rl(ckzYtu5 Zч.*χ˧~Shf"]:\?X0 7'ěO%r1۠<~w>AM͎T0A2{W꬙D0iyBe^{gd!o28;xKA );Cm:B$<ԕ XWE`=%fyB @ ё* _2WX#E)Iidi @)Iv1IFARsQ{Wz2j^==M4: 7B4jxpp-{CҾlSwKeM MjdNE)٤֙QU(R]F 5P 73_S7_S7wsoi&꺮q{SS&o{63lE2gghEWfF3U~^J]xɬZjKm_fGIWG]Vj5 +P_{VG:Wee>!}mM4#Vs D8׋V8EcPY$0r3z^M^D,7_[o\ +t 0lw +_ &yv2L`aK{֋4tpQr v|0￞޼iyLd36s3u lʀ.U~*GU~WSc fE0ìFI %]0spt:̊&ڈ!B6ZOh8hyۖ +ƹB*A?b0T Y e0ݯVSʼn}$},>6bE&=ܨc Aq "7g0&@oɝI5V}1}D"* +4gŮg) R!1Ø;LM` +&`z~&}wmcYyby.7ꨩ7oM l3oOy%؛4za/2.ˬZj+cglɬߏ (9fufuHIq5~uxmfpB*cp}5W s~rLTG 76̝KXXe/\;燕(`'vwDpH3ow"uzW&/Hzj +K6"ۀ/z.y5rOnsPx:S CheI@@yb?g8o|qn)PS myڌ2 +%ò+|I)z3VDN$> pf`"@$ح^z ݊4 +LjJ5S"7Fu@hmK*ޤ.*QGWdjP<ےx_ۏX0SefudM ̊z,XafN0G:Ҩ?[twuUF4J,J>=[ ḀdfyZ|d՗UҜHr u~&:1+.09+fz,W"P) SIW#cst]V=/Gy0J.C+zЊ~|'gQ#u:rI +h3RĈ:1w/6d~dՏFhǫՊ`4APG\{$ 2uG'BAd gUS_'p &{?_ߨmrUuKOQU34(:A.DwP3q}(B@RnaQv奟AYT?{J)f)YwzeF(2Md#I.wL%^V # :\oij*{g\~'^?cBBPjKѧL(Y&T(Q7KO֣ƣaCizRqSI(FDLMjaj(i?=&[46MUKhgE%m@2pf}=ޑBsqIF*M&]@Fcl2d` Wʋ*>!MaM`UБ,Qr\-]g1$R?z?rB) Z &L3*巨lERXZc[ 笧^ V䟟UXm7Ac 9>r:-s:Y39:@7 o `-T3޳'#$ӄ BP/7o*77@# &N#pgoL1hK$)RMAj 0<<FyYl(Ylp<S[P9N?|;@@'χ'yp|24Ӈ|LsHՊ,^UΈ#4㥲L/v($QF"RC)RbVP({<93˧9rn%[QL`h9(BVU^0IfBEX2-Q[tlH[7r|z +;ʚE O굗 鋇h3&,4"kemWl\ZXYUQŻt4-BP|!Q"h h[g%kX3j,_Iၚ$اyI!(eesz3.Mb+Sq.&J癩vlb_^(]v́M ndW[0!F6sVСT9Ř#1, uE}V rpB jt@}MU}/FR+mh[vP҈"PfX'vYtsUt?WM]54$etp&*(@֬VΛI:@&D~єy&Ҡkx:r-L/$X&y}a\f9t_Wu4jTV +TJtPcِ,54j:j,5K)aD暤 dS##Е17j0(?ji|j!'!#LQ2",`TTS_(? {\u@-;+w_l2,ɩ$k+PO=XֲN q`wu3D H\,'+f4b$'`AfpǼȶAWԲF775GfOsj9]v&LN>PVKOFYV IDzҶELyU8BĥT :c.vD1+hBjetCKZ3DS\;N#B[VX]o"S,XS-ܞm WV?2[(L:wig?NP[H?*t̰wd.-+B!{bpJ@{|CP[ :r-|ihҖQB(.2[f,ȅ讖0mg/[gq~.f-UY%p#![]M//p* +t +tL>D`_F 1v[,h4J)EW0o1a oQW0@A 5ܞ!:X R eVG‡U^df{mEor!#S]Ôɀ!3{*:x S(늁ΰH77(㏃~7?ȦLUz[Vk*CBСEŨ*˻_5Z(\(9rRiH]8-gMHTA< 6%PB%FUbeHDG(:HzXL݆$yp64pzN䖌}HvvqbXk^(ՙDB]nnt/*R +u2B5LC܋h$ϡw!VzBx!/REcM`Hjnܴ+'J$P$$<*$ H3ʶR$%J)iȧL̽u0/}4I_jNLc_j0,op`;\韈 }ON'Mpn1l|VԸ ^g.uD!?%VRt2C,?r ȇÌ(<`xR-rW#{a/c5?PVũ޹6~KRsqdX 6N6<̠?&* _[=n1s5uqvzzMߦht1xA>,ֲzy*kv%;S^D\1“>ϢuH7KbȌ`>l69iR%ΆCxT4cPJ閽BfҨeBᤱD ɳ&80j J>HS<0UV6}gBu[|O(<XdՅޕuSR!lȅr4P_ =(u"j iC mwέ$sV[@ߣU≗R"tۨĦD`Oe)+&,+ m;end;C#Al}F m~#D餌/B86.=D! +pamUv{<%&d߇s3uۯm/+|@6dg2U nݠӋ:Β)+ p -b}"&:ؙRʛɊ̿!t;oո*U!Uėyڈ;hʌ6GıۈhSa r }C'!"ɵ"(>4k͉ q,)SZAAn3\3nGHԤ3 ޸cn*ޛXLw;)Cwo+̓)kU[pkWA8!}Ƞ }>R@t)yf+]N"/KX;յ; +y +ښJM?҈X2]͢*ATCNY /yѱ`Nz%=%]4Owk{ΧֆA6p +?PYQ#_[d{ ŏ#o[k'˙D7K(8 t~jeWlbt*Q5eu}h +լhbD]{` ʝCQ\{  p]9qj9S+Tu&j]lg4rtP?vr@6h&>j UqyN 9ҳ݌ +;m+;Gf;o}^Cvx^)G#T*!vv9XȞG@1ulM閥=i3z!'_n"+0 tKipP3[15g6*@vы3lJ͊.;VpDol6QjHE=Ӈ?Z+ G=N`?CtpHjP'*}(}N'1wπ)f dH}>Xu/u9%1RJ܁ +Dm)8Ť $r6;;Ys0ۨLOG + ;uԚn\WC"TQp+S+/#hHV<)G٠KNڿ/g^8w%n6tU +b8cɹx e̟:2$%GQ#.bCyIc*#wS u.1~eg "*5I~K1;KX)dhq\fa )O g]~%|L"V@ +SCr=4]Bu%^7 7qQ̤.fWZG3B7w0=L~E7'_>ŭNsg.?gGG{@-/xvݸ[N\>=ۗ,p!`sP1um^["`F6Nl h!d9:vMH*uh|]UFL.[(4WiWZDC``XzMU ;6_f "Sc1ufU8f Ӽ2"#|h 'bG\FϰGCTRhޞY!D9Xy-hIr4DZVihd`LE4- "Z/vdhz/-MV$+TuV}r8r%0É ;]5:vg|%7#VőbJĥO'D]@-^#^ȍL iF]ʐ2O r iTͭ"W}+ 6ZTkٝJPa%Ɯ +7@|@N*!oT +A~{ZB7QЬ)Qġ<8$GmGr%;}+jj 5XG~ψNyVkYF^RP"_ϟ̫7dx:Lr5Ds]np_=q/%(CGrS(q ]:)A<.VGhwbNkQQZ/ +Sm`^(if Y`pa%턔vF:VLX3 Bմ, ᙹ+0X'?X\zYxe&g%blyW] o9c>OHFS~OLXox4ޘbReBTy +fi:a}2@X)0Ƹ? yv30E^^8jo@ ONed!1g$GwV JJ0Pa/ bo7l1?}7فJ)u<"<00{!!@Zku"p9$+Լ1EadOHZ +42o-"glry7, /BP#3M!FN7亮x` ?Kt +54jjVuES P #]w{/^j}+ COyue93p9Hkו(=??3s䗣T2dN +S0@ +=Ow*Z]㏌E ew-/VeLTNm-v[PKiDwօbuŀI*D GR?Ɉ$@,}8sE;NW'ƺe)V{*xe;h^s;@Pn%sI$#[$FR-sUYV3r#Y@|ZI<⨓5c!uC#6e[160*\.٣. c7@ivMhOU"Kho+?uMMBOonMp!/FϬ_p;2 uE*l#עp||lvC["X= ;ANjX7<ȴjiQM!ly%hCrע99H.y&ݯ$WЗ,F/]FKy`F8Fx c^ưNs_dּb +/@u3h). kmRKsK#PJX|?Ԓ)7'1 I+#H3"֟d{G{IF aG*Г,K3]c 3#&A^=Y^Ą rĚWDk+7 oAEQc[䜛&Ԭ +0 n TUnfqϋع(d%"uMȊt׫̂y*MM}$jZw%7Z{ G! ]~`%-g|ۿz:bs )k5QaunC_8E[uTnGB3,lW]i2:iE*FYjjZEӺ9>gHMh*E;]m;[ݒ]@xª$γ0Le$wBRmY(KWL[.???=6.iI7Bȵ!kY?5]}{o&_g$D@ӈ0BWba!g66K1)ź+>6L)Lʰ[o"u^=iPMs A*3B <%mO$@5ٺ3n@5| 2A}hbZs[NslrO'M$vx&*&$ iڟTs}% +I=;+YY|/z#SY&NGxp/$o/fΣ aI-6P^]} >O%`coa`q|d+TLv^MXlC>-^i~r  +Qv@H![TռihT4JmύiL5 5>A!䫆UMJ6M ͖UDjVo@ZBby}! 74Sł)ީ"釶Qgqd2FaKQfԟch,Qo@]V,U@,9BH8~Ķ=VVHJYVfHM- M$a-*k 8X'nY:z,اVC 09`r̋t"3v-Ft6V$R)2c.2S?u2P"숰&GGh'ޏd[\E0ʓM1 dIJ,s&NJHS2 @+Q'E*pTQNaѝy^\h'z cDJ=$i9L B]?y7HWxp/)_h +Ťb{99RsL(w;ktem*u{,*%䷜2 'H$ +r+^dg1,aFT}R IL\mZB1~s2`V[hZg-]Kq bzr/`6]Ӊ9! @!t-4-LA]+H=2"bj B/H1db[B\*59^a<o>P[`!o8\$)4gU=$zN)1sK"ޠ=R/=չKq}SMM*yO,;4`}CQ_P`WwJiGrI<(A_񎕦߯ie$[s`Qӗ9O_!<[MBN SiP⬄;S^Ûb騎 +'c:!3VO#UѦ2ি譔MXx/.\G.l6xv*i," _Q>xvnd,=3r _I[ +`C3;Y*+2gZ?>%wT,GtmBJJDOMq]2>[#f29EaxԟJq?hz0,!<<@v2N"8Գ 2%DŽCp;o8P1;SQ6JFQ+5I`C2]@wu#F0h&>dhR'PmwVk[N9P3R(\UwxO"!\3soG412|BbPq[8aB^y@%A-brV㔎]?\&o(SG|1 +M-+Es.nXw< YhcOxjz R7jTSb*ziTʡ.tQ"bپ0N45IcjXRnM ˆ7Y*kթ# ( p jo5d뉆eUv܁8EtRkɱd.N*9z߄VTN93avkn`[1ǸD77@ć:Oo Y]fI)n2{<^fYٔy:M |APUxzNja\ &jY(mzov) GDKd>..KJ>9/ +d7؟P»d#Xki-PFuR2YSIMvsο`9KCdkjG"mJ]e~!MTO{ԉ\ņ^墓' [SQ%{cV+ LP̮Ϡsf#@3V& ҥ` 0kky:; ޑQDzF]&@q2"x|JOK~5rS0b]$ +jOqGE3O_exb={"]: +֪L;dt>^̏Q-\jeެt2M/DD=i]͕i͎s +W4 +,FS_a$cL˛'Q| ZFyPP(u+)5ԣpU02sU$ǘFS`ԌLMsN;ЫczM[֝:Y'adMgn>52 +x:^͉K.,*լ/xWYup!FLAkQ\/چQԎzMT_֋^ˍ;rWjV\S2u#W]hD%{k~ߐmJ=C_ |2)kxfH#^w@6s Q=Chu2zc/: +D[$. Ա* Sz}х~TUFsz(8%mЪ/}^\3RwnB12h$jydtنK^Ζi0t!Si`V5H' O#YTvc/:-H- [e4H#j.xpӡQ]}sEk +d|28VucGdSFҋ Ch@)kE 6xѕ{63#mYGsCa\OӟCC/70qC2/IɯZN%Nټm'CWF0U>*dO/d! NJ0@=^>0W4,w0\:I<fJ؂1K0Ʊ ukY#2RSe]V=mOH}^쫍_IvLk8qL4)pM1nCDVjkd$#h uZdޏ 2Y39?a!<D>:"v"f~_i2qhSA=b }4-d/A)_CHgO&465;3/By@8InxmdZU~+Pϡ>BbQ5;>;CT|ydH E.Q;LS~;׾sT_{"j62=2p)q$L@ jb$Cg}[XYTߛƯ1,awKpD73 %rKe`{8b{{$N?WpDeyͲG@1f"  8*ǁʠ1jf0Xl? gB7mR%i.}nB se6yvشИg`eiFM+hx~.=l0ϨYj}iPZm +*&~R{(nW i-./I2à;:)gM ئU.yglɺ\/])H>#3<+ _:$byC U*Q +h5/<:gAO| bfl2mLv\1fi+-V .f!jJs}~072J u:lmo[:V j{5b}7GzE){3-h҅'n-y*4 r6 v0r}&|r gf, +K1P:+@zxonMm&Zf޹6=Cy9bI}p$$JR``VˇMżP,Ʉ@b^SY{a[lGS"ob =p|7dZ,*]/JőrbțrGA';]/x/iKLnҁ[v}] 9}BP) s`a Ўqضi+-j/цPgacvh Z[ ~GtLS9;sxGct&|!,MB TвeݢY_Ar cz rFxΠ{@^F>aNc$_pǜG_@^w u=Fn/E\Gp2qEEɨWq +:~GH5/ dvE 3Z:#f~[].&7Veq]BE "M9#n$Ln0$+\*폺>ant WTMhַn}]uQiY= 6: 7 oË/ %}WP ԶGheB(,\PmId^p?;!d +1x}B(`E&3y$x䶞[lUbz8XzUBa.IP>wy;oJ1/_ fyt-;lS)>qst{hٜXvF=q:LDzǗG?곘Q5[ , jP4Cw0m^4 s V7E;敠]3cP륥S6~;X\nB03l 2h;?4:Vv8|M2沰&ʬXt5'mL` (R%{"E/DBw^]:h`hfwrnQѪ8zwKk\e fT~[<ͩw^ﬨsZ 4,{Y%n꿋kOރ-:Gc'b _ hofOr'6/C!]1'շմ!eH2?էHUrn*$*]ԝc!B>YM0{@gY0F"dQ^/eV` =I.;y/dDǰ~aI)yj*C{k.ν|^c2 7@)bE$r%`1%gF u23OXe0e6XؖkxJ}++֡a@y(GzLD{y;\Bֻ<#|x bѕ)q 3NY+#4W$O?`0CTH _}h +>cI҃, em.zӓ6#Ucv]3L/FZ}e0^LB%DP2pGL:SJٱ +lF<_-e=#`L R x<[<qϯXyRy~~|lr5zO% .t_0W63$K.OҷA?Ȱ`aqi14SujTū@?5 +gj#.pT/:?u%XԠMRo +{y|M7.i,&)ьaÅKټ~YĥQ ~m+ff#+-ODeS#§2'C-Hz`P~عBJ~ %YjpvZL~n=<ߵ[ퟩsoxԻQٓɦo~~`^*GO1*Rh65MZ#L@M}ۥ1>^f"J=J'82lx!Q#KeO*xO/ ,Rں/z h$:g\Z-/țL<ŝh}5ܔ sH)OPCn|7+ՀY>J|HJ%ߑspT YG )%ɩs\ŷ 0zy-PAv'Ӏ07vD3pVwHfQ@*DT, 0`'W *^s[{E:̎7 +O2ab` ZGD85D'Q}P-"Jw.&3Uh+\yLW?8Щ 6 +5bJv[%L (:sN0PhD[`F/Ȱ>T`9It +,N O0Ҡց j_j8dSbiWJ(A({^)k3 5 vyf s1%:뼋2ob'a@W`g0h9 cygA&W_DHs|~y tNDD~'lD/_`y$ԶAs?NDpg&J}I#*kD]d#@ r%iL?bqJO+U#s{PFĩnR^ n4VZ$BruNS7oʇ56XX!T*$(ϙ)buT{ Bi#LosqvB]rΈ'ԅG$L{q Oo,͕g0HO[.w +4s. /PGiu5sEwan//H3v$ }ZN0OM2Ct54^b,,`4i{9-F*k?jO`V +^'&:Q4 pUJ&}DS$Kj03 y\` X F`nY/R]j׸*)?9uTo!O!GR}A3SO𧻓C0LBFbM ྖP]S婰ˊK"}9 jXB>DL@]`F^퉬¡ORk%0 v^ai,DH}=:ج $6 +?i/)/Qn;fsxY.xSHUSaW5 ڙfn~F%Tp% \hr0 8N>;!~=q<(28`0 yxN&{RWlH<8 Py4s)i!Yw(v( ORB8Zк5fؔ*2lq~VK +q YKvn9INACI$ +5%ڀLL@"ܦ3f\bv&0[V$E[<}ݏDJ0n ;Ѹ|I:1FQr|4 J #J;q/qJ"<S{&޳mK` pr%LTI?6q,~RPm8'P3b9+Ӂ]½@>(WvN(OIVŘ6#(%X3H렮r~5o,Wm4U36A%klTbF!bbHUw3 ]ƂM=l:ymaM¾YXhA!)eMvuhP{t%hڃ= z""0_-yFE6IA|S,ƈ⌃ ;JC0op_y܎d37!#( yd|vۧHo{߳tX[XKWL u.:Rof/O?&K. +O~BId; 1m<0?uG|d q 8zl2_ud\`ρC ݙ \9]J~L=58-P߷sdpܓ{8 8@V> !t[@8@DҰTn*C>|a]dtmboL`]i- hfrbJW/$W{{{u jI5B&63$V>?W*Ѽ\^S C+3 yu9T"3+EacJPmc821i)UjSԩcI4&-Dg TBjrޓ2R&JPƤ:hh Ģ 44|VL~635j;o5 4MCP iMk{'D0A\!T3 + NAL)2D\Ȁhp8*oBS3I`0c?)$P3I~N?Vuc~DPCB!3W lE@B!Ԝ`H </80@!n +=lݬpƄZTUԘPCɇLۆǟP;BX"a|S@A!,b"jh$}ɬ%Xgb8'|%Χ̪9Q:bF$ ([25KEk2'0^9}~TS_4Co*"eI2φ/Z?";Zք2g+/zϷ.EmKFOr@(|g? 'фYFh>#/8nE{8^2n^49,š;胃1+ )J4ѤGU_ơvu-A}j7TvE(MT؎ Dsk ~ѤN*%zl9nK]JvVyRZxBيϿqtI(G*[\ps +T@XN=?Pnf)Euv:X0&#[k[Z @WF!1 ~1<@8 ]Nf;]"Y|+#/O> qRԈ edLц ݡO^`׋W 5HIC<<2c!3T5Ʉ1 ?(ظW 4aBX1J-;M4CW DkpjchB( # U>+*M|^P"9:,|/c-f +1"_ ㋅0;j uPWfNdRRjiR`*?YƓFSB4|5BV_$-CipFi퍆 W S+8<mRi6-/U rM +ĭoY&A l!D U"pԾV㟨b;6rz+O&&%9Tiq6_Bq/_]dRU!!]gҳA@(Y 6oIE>&{ EfBdc@"E-i<َ"&"I +irMc8oR}*4"&N ZCPFט?M:,H&2Y[q֊TLo=Tʗs|?ưH}lֿԏgPXz>{{6U3W ɰW Q3jJYZ+⺃ƴvTIwaPiyj=U<./hdtz'?ڲT<炃EN"3?4<M\N@A}m^.NVb(3@\9G>o:|z8>@E|B59`X|^?nLVt'7AUVr z SU' CEd@Ύ"Vhr6;##3%" A0}EӖ_epކP~)5k#@ZAC X[Kǫ-0OSgL +V ^3ն-9 "}̂ރX/?ڵ5=Cob6TMǾLK:aܓؓd gY]ZzEY[Z:A0zSM)Nj \; =nT\淯Г*k6 "c$bg@KBU.M5M);TtLMG*%AB l??}uK1hJA猛RzӠRVYR$Y gJrfy*/u+ l +endstream endobj 18 0 obj <>stream +Q{+-ښRvPJ.m]h譤>BDLs]YKoxP)"Vʫq?w>hz+7Ӗg,J̈́JvqiNro][Iզ&J°S5<BIVRRy>[xQIV(rnȽDK $:W<5+'Pl$X 0 =~qe +u?EP f'v 0`>BۨEUIbyd忮׌sr?Tёp=>yӧ&Rv&hT\;hEd\kT@)s $%@{ sV) @J;S@]Hˇ5CqW@/ZCK xso^B~Ѯ;ke=\K+3P\14TmҖ"7Q">nm?WYoͦ[A:m%y>B ,\تp x'27ih7kmҜf':B!|zToERa)dꎈbAșW_V,Bp˞:<;W=N֗ͪd|4ʴ_^].kn<bCgdvMTύ & CX>I.4e6.-sکxMr%NBzsKR712"5P5E 23;KɓKO`yb.!HbN _gi?G'f!&H<0pY25|M؂ Ψ|> wPSz_׮ G܃MA|ƿh)Ge5zq,Y7`ǭ*iUc  X(ANwCB~[h k5F?M3!XC6 `  ƿD!*MLRv;um˜mDA0D%@o_O}5QDMNW)DTvH/Дj%HW5u}w2DWX"8+!+oIf^ D½/8[vf;VQ%5 l;֘>pJ>FoxjzB(kCFIm Hs/yгAX24/P¯pG89?Xj)8B&"Ţ uؓ3wT 9L3zxzYCS^vޮHfIE|_ٕP>,iLiFDuJ]SK aj% {j'!"+p\J{mQP@l)+v.ǹE e{"RK^h/5%% ~B/%J.hِ#Ea#. ViR$ۭCK TJ#8y[gp2 Ř;Xj$LK \-9hW|L2(W +X:ppQT-3S6E؜602cskhz["\Ķ(W9XOԈ7hA E.HfiUG4bf# jiFW g=qk̅M#Y +"z@3F(> +p4$$AF\H4H#4|eL R]*jePύ{.@R 8p,qݺ -+EٌU,kY'?*oNa`Ec/k0>f<ьi7N@4 251:#7T:75#J=hN^ ܚ?Pr5=BMhL{m{Z@'68"P:.P@RM5xl7L$K#HK #nt +Ƅ&]Xԫ5*PB`|#F:zrL~ȜyH˥K:߫8p<D1Kq] +H"ŨJemzЏn6h{aWhSmd[2B[Gy%].MGD 'JC0`CB3 9mSˠqm,7Ka8oIBPcX#_ɢΚ;2vN;ҐIR$6L"P77Op'n8|~ +:07;tg]SU`Hs3{yi,PDRSђ 0 ]p,o5J޲C8Nqp*Q܂sTjk?n7>I?{,}A2Ju_Ђ.F!Oj`ךYf9|'J˞ JF7]cK#Ɇ}%]/]$>=pkX~).a`}X.$P{.!};]CqeH9aVh4s`zs~93MC})6Qy +ԧ Jbl'pBr=FuLrKF+&(1msƱϮ&9u[YHq|uX>N1$( ܻah l '+2[ d! Ė̛p Ցm^~K{#b7XZɽsq_gq=-+$|VS%`߂`efldwKd$fAgºxDm3QsAg*Q*}'OG]2GUѵ(Qn@Kҽ FqK$=h\߱٨lJ X.A@)+PE| -Z]hkM@>h Ri}u3.|+VhsOծ"(h/ lҌ' ]iNԦEF9cΡ rRx.Ke\xC9^"믛:*X,?4#41pK-2+]v,Ey֎U/`8&"XR$SeQA!BY"( J qU_<$ҽ9YwZXJ"usj"=D|q./W + ,+ U+ ‹oɄ!ghn hI21Enc6+GOA ))aN@`TΡIf2^_kw6NdD} Z/+`vgWĤ"ɿ![.czfU${2nP zᮥdkAΕNVFp&n}i0aPY |d S4"4\q%{WH8;@Dݓ%)SP>Cp=[ A"AΊj_UAܳ\ CUPx&Fke#s̱|9(_K,VsQv垉njw#cXY9Hhm$2q\P#kF/ܿ!㧴ɹ_&>^:q CN1掳n3Y0]śGa$>uKs`VU/H8ZܗfFƄC}`9? +˝*E'hkzMP/D,K:`&Ke}PKәHlɒgqHdłY !%>@Z4: Za*%H(8&9В!Qrqx؀:Ń0$ +!ЂR:@Qeqrla),.iFR Q#4q" 8Mt8:T"$0fQP + y0s2ТPHEC8,bPG  +@kh؀A2@+GBJ($#Oi!'9d4YAYגExp&lXBWd3`@jd4!++#  &,8) x 2#T[)'`d4J qɪA,#4A.dnt'!(RB5&J >C.D!iPyT<!ʀ+BF#GՆ@gc!j؀|`&LxH (1 E@A"<JZ"SFHHVJEXX 7PA)JEkCHq9liqQq2JɈQGE +f~%)d + 1] +k0 +g D*dqic0/( aKB `^60px1T2 + K9T +|B:*ͫtVH>Yb0A + "M:xQ r# Z0B P@WSFFZ6B |HDJ`8 „B%hQ(ćDŽl D࣒q7%F%rj// >+&#eCR:NiDPi \  w@H ɅIp NLFx(H&*8 h1>rS6^N< j3a@>-+qnC'cI QND`@2d4k( eB |OI0 ]hp2gLM .L\d2aF(P;@ ' %! +PPp6B8<Ĉ0;K$i@mD//M5R1@HtA@+,UG(?\# Zgy2A\0)d,D˂F#aAC,h|A@QsR0 Hа)0@t^9oңɃGz@A|`A -&L(-sF ˄1DŽLBBt@ńF5:& @4J ]b8|X]+Z&6A#.,)рpR9 s +8npx`/#kp""<<:}"HV4:\pB +z> )I +)B +y΃  l:T> 9D0Op2B&LLjet( 8B/QLDHx< vw;}hLcu)7~fkm}v[y|}g +jTm-m+1+j_?شэ~f|v9rEqbg'hkkm5SS{z-+WSیig{ޫxT.j>?"w5eB:hļtP4(X;1/ +dӟ?VF९9u޻xR֊JKΤ2_ZW3zi~.e6\=RlΝϘ[>F]{~I9&)eT߱/ch&2D>p3mU\L*.ȭK_uJӳ^vWυ޿oVx/s9]~?|iEsyt6h"׵Vm]̅M2sފjKTj׸~ݒUV3Mps={J6ոw]Q~_~xE-df^|7cj*RmT\4yswtM~];7x)6FsGh" ӗ)ϷCui_7w>[gko}=klvq.ħm5qٓs)b_/?\Ԣfw?+3ї7W>[ծnRmO[>^X/ZavyfLo4,a`92 ([hLXHNFcB +0,DhN Ȗ'%o A-B 6T"HE$B ŀ@@+⁉l #u(VRN@Ѡ'sXO ) ' f fyYHv(9ٮĄLib&6TO0DVi}LdE,dȊD :"q:TxDA9[4`E^!@B͏}Z>>V鈔>Ba Tl2a2 \l`sTpxSup)P}r W'%X'9(&*`r %v:'Bd`q"@A@׀`!"DѠtKH$khykݶ=q5w_/Ǭ,sQzsv~F5&k%]u(V~5_{{[zfEq벢.]ޛ9ml_}뇫[<q=ۺBrsݱy2nڻhˋ+oypioskwC]x|iMSua/j]V +ͧSW}C^U=[~n7QfV_rZۭΦy%߽66e4GwMݯOF{]Mj'V}ͯ2ybb/l2Mwq'.'8fvJϳ6zvvSYQ릏s[}ے5Vީڐ/=؍ZŦn3-tK~u,6}Zq]l5AZҵ/]RS}߽3Sj_rk?7SzlNJs^+w5s%>ǝڻT;{{.t/=x=YզU*Lεg渻wm~ [tu+JOw3u9V熷N[c#ۦoE=c[R돘ٺ~&Vk̝јl ?e^VvݫK;3l}㪶oGſ췖az/ӵjmm6Ŋ~XQnI1'RrGwL[\Qɦ9{3W~Sݟ2ٛxmV?WSʋ.v֣S|OW{:b1?}e}K}}3śn-=8oe2̶UzeZ^z|kgϕBfˮz2uo91zgjVzm^SKurEu5QmL٘Ϯ-ήDp2 Z P u:!q9ŐPd4/'797Wd^] VUe[|$Z=əTMhl'1NM$ӖT2u*t? T&%3juBJM&}18yP51QJ5T٧TSd3GBt(h@N&,!ńee"DYF@%:/}[隧3lib36u[RDw|޺,s75m9rv3*=_r>_Sw޿y~KZ~#*g4[n4u7.%5eNU3u_{l7W=3so1Bgصx2xk] TV#Cwݮuk_>Ltm/hL36Rwnt9f4Ssng^6v6::ڮWm_}~^ͷ_Rmnn_Zٹ!{k~5gTa+ϊ~TEcd]׏ƿͦo} w1Vugیfůu{6#3 r2:s*bg6o26&r6qut^۝blO_?L~[̂rqrX\bf~mݕš3:\Pַ~kznq/6.Q})U{Oƾ\ߛ{L9R ݷmOS|ԶdV_oK{-^[KrRޅԣvRfoz֊9b(e[~nOoz=D[ɪg|3yqa*/txkyw_u)|޸ʿ})?e|?^J5~u/]T?own33Rwwo+Ж ^rW՟}%Rzƞ=?_UϻmiEqRTꎍ{iRS꒕V~gUޥfڵףRoϙ͉ _QN]uWVof[uO;qQ=̂)422 c +dbD&zj6>4:$$"`P `8(E1 +T Q՟Jvzt{M֤rG/C +2Na\&euf%tTV%6GJZ'yp jAyTy-}qMp^b0Z QjHe}%%'i.;d<7ϣޗ>XP]/g8B&Rm\Q5aON1LkݶGɴC +غvgyjx[;3COơ3cCt?碧кɴ='*n-ݼqb=<}6SŪvZ\Vi$_vWA)'8`WY p[2cxw(+})m:+eJTB;+k3XSKWL%4za :v-P1W)xmuyE&lzSg#%I Ɖ1kD.@Jb%a44o%uĆZcCR} ɈXk4”1TzL>ѡKwI/o]&Xf/ZѸѐtgzQJ냭CUDuB<Ly;RRՔe؝&yGaݝbkN!}žj˕1_,u$tKJolc[M9h;|UN83T#Qߙ߹Q1+F7-]J<l0roC.ʷi7x?}ddmJt2t=w-n5_fPUѷzRg8Ӱ"a:^4rDlw|$)4L Gq. 9|f\ax֎b:jLkx=1Kw|xLI(MorR|!<BzV^5~F4$\zQٱTr% H5kiO{T2#w !Al*`a6E,f'PIZ<›;]֥.So{o0c2kQ@.mIUM"px?A-ݭ=E5>@Q|z/AȫyskjT#P #۸ vBO7j`P;1 +)@뻆N},.EB@`hQГ$o 8.[jRP"m'u;Z/Ӌm `o)珵k9S}SKP؋ՙ]Btb.+x~LIKudeB|ipc*<99: 8?{QT]fy_V +*MU؊1Q@#xʭ_!GQGw,gxU$|syT8z'b5D.lV(2 +k!-̢]!-\dϲ޲DfF#AP"43haCh8R6O"-80'i)[y0M}D˂;, +e#xPv -28wH?pH jv?:U IfW dC:/}ߟbZuN`0uOкμՃ\d}%@ >1i]iw4twˑIDWOqqF:$αXjq|{s A!DifS,l`DV*|-kչL:Bt/ +ڕrĈBձB: $,U eA6hَ&q)GVvRqjTi,݀%ŕ[bG+8L(b;y?O[_^V+`[:A)~&!Whc.tg"B tnw vdzrZ3q<F դxi@@n)5A ˊ[ᷣR2E5gFh)p[Z2j\1ʏT˲#,\$OG2͞}C6t?Zkۤ!Tty@:h$(%-*Ig0:zolAؾpO৹Dm1/ú|@7[uFuT6eT;&%Xy.k%Za?US-xfKH+ B11fLVT\Hp5UL Y SзwC#ѷrc: + :!MF‘c\̤]O|ЙܶBWsVھ bTn|BM| ]O╆Pjr4o+ZWUSgަXqꧢ_jIo]rFvOs8 x(܇d 8Cb9f1N͎`]nf73}֒3 :!Ky!>Rݷ biz 84c¾ <><{ (r>i05k%-9q^zVäP%&c}jSu^]76E}駠 ;9&dnƴsھV*:tIy ր$n<1'J8ie0'8H؝ҌUyeJ?{Iz?(˛` |X_?k=52dWNYO2z_Bٷ%w;J t;f<1dV!>uw"KhypQa1^>Ft4rso3M g1lL2B{ҎAșe.FAG"(\ZK +8'pFEP58ɒ"\yIi E]cj '{acK/q1v}(Q߳"get Qg7lya/ YY@sP\ݛ3& cr!P.Hec$54n*T$ +3VIL{c}l;TRkt 앫jX꾋BQxV OB>cnIf&cxy'`Ŗن +m4^\FhY>հy0I{~W) /ri!*B3lzL ϬHn%yz!6cᆚ E L:K2qXK.j>Q /1u +_ +2! Ұ4gXwD_N;),M@!ubke +"R?#1htlJy +A +L罦 ~2+WDv!누I_k}MM-%vK%q/rEZ`Ֆli_ƃ}gdeFg 1 MyX'2 r-K!'!WtĉW~iS='}l}_GD5 Ō! w_dd,ɴĺ4=a2)(jKkbQt +tf.L怉.LyUqT[.jvTjBIjKjаtlP]'2DWL'NlWdHȬ4r S|t~+x̦8<"w4K%̩ŖOɱ+PAITO! +1FJ;w0Ko +?4KX7,i3 +TԪfH1)PIb y)5˿sd P xiQPȀux#Go]Px/_![ %V"\'-3Kru6RmvG*ȢG1{rmئI-Nsv+!BE%̳K%" Ԇ-Phb11B`ϲiCQ!,kF@\"ٗ_Ӽ +1e 1IG$OLWOerNՐtGpDL\rQt:fC0$Gj΅H7%'F_' TRGr'ޚNJ$|!ZYo6{$>hG3]p+j 7_` +=g*uD1fxqR2p1\D$7訶(&+d*3ؚP;]]-:)Fbg,'3eQmyY.J^]װFP[ոO\TdڒE^6ҦPWp{S)G +T[j˱/I2Ֆ0isυ&#%z!SbLv:in&TJEv[Ws+#!yQMÌІ u\܇ +]0o b܇Ki}p\q"č +~~(#?m& jno VX1q`ZRRaK!IUs '_{ECrQO<,4 +S0Qq$Nl&-#䭫> ~>Dq#j#>|8~qOj 9۰z-n^mAV@5Qm۫-t#s8ú2"Ng~|XE8ӽFgQqvvsRghxkSyEh<H9Gx%MvRmQƹՖc[^8Rmu&҅[TblGv'oo $j -ew>s;@@D )fX\< ]3*%HF +,zQffNB7Jwe]x"m< : JY)i )j c~PrC`LN +D; 0%Knz`nBnu<OVQs( SSHM=Nck@CY-O-2\ułMfذ(.s4O@hN? +%aPp*:;u2;",Զ (.Ag# +GFU-Z0#SDcY8UsIBG쪤bd~f@2G/pYwu-\^~>0娽2sAPn-͂\B |Zd֣ t$f eU71l%hXcD\^{Xg/ YB zÍ#̼GnB= ksRv ِ[B#c"lc[jNbt7x̶I3cR/~/ Xlzq1uA=Y9vE?qК&\O0`٫|kEίZ6v<ZSbגl>e 8TT mH.=۵W>% We#r_pi @m4|,teV=GڌbZ{UC4`EFf  }zNxy4"qgr;h2u]H ,qdv!%Hklc^(F,azv* ; d;YN#&J~5 %_N.*c=Z|wiI9l[0Oēapʉ^Z|c ͮ1VIN@@  گ5+09}F6>5d^aI$~.5$A듷԰N啧6©vgh|ZwƎ~fI%z.;:`%6#-MmqA0c71ăq614nf`?>;N#G)dgW0NpjH9;FT^ҀW**l,(GE΢x1@4*?-,eT*t#Fo]ubҨ{*A!2cBCipR9b0tZl~D:u[x@ѫ&9x򳨁CHCxڦpd$2/c +Ǣ8䖠V<d_p|V'?|2|u%?,Odbj |nVX>2nCf +~ .+MlL{bflMr]10.w꺮\`q#oS*fd]Aۄ1&o m*}>~t]00uV_x0|u%`xB>rd!ލ宰gnwM0c~Y>t]! דYyen.my;wkU34&?(O`T2u0K,k!͖2~kaCp߹ZO_yzm^-I1])Qep.{Hd P If$׶,?}t$NH"wGCj\d_$˫_GT&OyIÊZfӅ{r =cU>00>n%C L9 +zDկA]y^2| n<~8 +; &@ (Szy[9t9ľ}H5 bW=[fjmo[aB^?Ag9bڕ%ۮJo=]=.y\sWN:NK PoPRwK|s0 t$nv@l"^VHoJR=e*͝{ ){5:ސ]Jg"Y!9c>y[;Ǜ%`a[-aI 桁أkγ E5L )gWC_Vyk8 & |%%Q +wNgEFMaꓖdc#{HL:ȷ235v>\=nӄ'9.v +. sk(O20xr 2Vيz>=g̱C>z@2]}8GX ח֐]Llsώ;є.+mSf{6h9jbN`=ͧZ8CCk tM6 iѰG)o,2(6Um{f|J߶fF\*=BA&]cJ ΜckƍzLNc)оqI,g_P6%Dq~9!9k߶xr6mP*vNDl2 c2PO@?W`Vc.4jСiO?y0#-n(?R@\{;I:sS&2g_iIqGX6@gʢ7K +6H>`:bVw8Hs. >2^H&}Mp DF.$b-* IX7w5'^e ήk.̹}cֺl䃮Qwg/.Y \6zg;v.hݾJ4˥BVzDZ.Mgg sR"~U}L +G jPev#Ô.NIW j&)Xt +8Yg6yL.1ϥ02C;tn  CrLXG4S H-E]N?Y%F>:5?oHT$ھK0֙/gp'e% @Mr 8 Un"߼ 5Y F| `Vs& C⃭^0s -Xx͇eہ-|Te f; +?`LHy-o B_ΗE˺0!IMX|n3ׅ渼/][ktl&SllL7 WYWCRIyPhs3h\]O8S:KrpDJUBɼw=:֭r<[Έ,'K1^^ C:. +cQWy@%~ j@JHJ#N \>-3%^wHg@\^ !+;5^XdU C7F҇ocD~3c4Lխ'~Ʌ**  >'=iteYU@`C=G$'6O(Va%n1PR +UGJ4\ +8[^>A/RYj+R+Rg8ת񂂞tS  PԮ2f +=pumK=s*zQJıч!H]UʓC R1.c pyqO4*X]D,8BAqe]Du<+QmNtas[#+ )yV<ZUDiSBo@AIԡVJp)͚ i5=QƵ +\5'Ǵ߱SAxjωd,aAgA<܊zV"چU@Ox3C2_Mz%* 5^15Vй!H6S|xSLBFT60/DD +1O?֮&YbN,&mZXfܽ_C&f +cSDFAڥ7YUXKg1;]FC:G[ixyAhܭV +GWfeVLEF0* $o~mԩ}ќBh1Xp* H* ,jwelҷחDa+<"v$( +endstream endobj 6 0 obj <> endobj 19 0 obj [/View/Design] endobj 20 0 obj <>>> endobj 11 0 obj <> endobj 21 0 obj <> endobj 22 0 obj <> endobj 23 0 obj <>stream +Hd_HSqv⟮t[^՚K*C6"pFK-5k>VCDPC>jȁT`E/! +E)|s8 BĬ]pqydf*]W0}2 Q'vWWD8ZwaO 1nkӆ]I3X$޿mg,";\l<˺-v=c$%*ҴlV`kr[Z/[TGD$[BrH%&-3 #t<(ȣDKPneo$49:.H1/SRiM@IZk&9֭fZINfR$Kpn#Ёv"[i쿃hsrȩI35n|?7OdUm/=?M7kȥH"1:2Q\`mu-Bam +?Gt;N.`hd3W*9I>U1Y{z }P;K Yv\ӹl4jng#&> endobj 9 0 obj [/ICCBased 24 0 R] endobj 24 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 25 0 obj <> endobj xref +0 26 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000405478 00000 n +0000000000 00000 f +0000405529 00000 n +0000633864 00000 n +0000638077 00000 n +0000405961 00000 n +0000635385 00000 n +0000635272 00000 n +0000634050 00000 n +0000408357 00000 n +0000408431 00000 n +0000408649 00000 n +0000410269 00000 n +0000475858 00000 n +0000541447 00000 n +0000607036 00000 n +0000633934 00000 n +0000633965 00000 n +0000634234 00000 n +0000634330 00000 n +0000634621 00000 n +0000635419 00000 n +0000638100 00000 n +trailer +<<983C7FB00256364E951C0E622C4F0C4F>]>> +startxref +638314 +%%EOF diff --git a/01_3D-Druck/Puck_mit_Text.svg b/01_3D-Druck/Puck_mit_Text.svg new file mode 100644 index 0000000..684597c --- /dev/null +++ b/01_3D-Druck/Puck_mit_Text.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + R + A + C + I + TRANSITION + \ No newline at end of file diff --git a/01_3D-Druck/Puck_ohne_Text.ai b/01_3D-Druck/Puck_ohne_Text.ai new file mode 100644 index 0000000..21cfa05 --- /dev/null +++ b/01_3D-Druck/Puck_ohne_Text.ai @@ -0,0 +1,5215 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Puck_ohne_Text + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUv1jzDoeiwetq19BZRndfWcKzU/lX7TfQMtxYZ5DUQS1Zc8MYuZAed65/zkN5SsyyaXbXG qSDo9Pq8R/2Tgv8A8Jmzxdi5ZfURH7fx83U5u3cUfpBl9n4+TBtV/wCchvOV0Sthb2unx/skIZpB 82c8P+EzY4+xcQ+omTrcvbuY/SBH7fx8mL3n5l/mJqTEPrd5U9RbN6H4QBMzIaDBHlEff97gz7Rz y5zPw2+5LZX82Xp5TyXs5P7Uryt2p1Y5kRxQHIBx5ZZy5klDjQNYIqLVvpKj9Zyxrps+X9YAqbVv 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 2Kv/2Q== + + 0 + + + + + + + + + + + + + Cyan + Magenta + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1324.18 936.921]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +HܗK$u@qHmx%,|m-$,t}}d?daofXdfDdd_>O~?|OGoj1$NgdQ5X%T8d?ً>#:yiZ]k|^kOfۑBx![Oơur7NEUxu0*rgi|XpN;TV'BsץYS`ňC +}h6Cg4zHy0 uT JBlyD}PEQ)aGB6.d/?cCCt A]|kp@#ZQK %@Hi)Ock!F)QYmMI8 +i7(A +4~*_u0I٢9?6!|>PkT;kE6+#76E ̀C?h Bjp܎sWQiǤ}8hL>9 ,O_{^;֧S`uުF#lIkgrYR%Qvo9?;kꭝ3 )BFdz۬ad !0dНTv%WTP꼄WT8Vf퐮m*F/~(>xbָ2 {[ ++5,>DSeQԑ_d8qe# +׆SR\JJo"iVN}{I)ѴS ˚Vj9L6,+ӯ>ҫ' +ݧpuU{O?;?c+ځ%J**zI xi,$k*5wckWRh ;nc\%lAE9ܸ]!>/V5]7/GTyat Ukwx4Cߧ:5J+Son̟_uN̦)oxwE0-%E͒4`M[zh;AZÕ_}cݤ_4f vuZܟ~{{bZXI^5ڛ4f5>SUѽIE7ߙoT`MiR:(pH#^r9Ga +Ej._ DHW\Wn`2;h"vcn&Eh_u?%gݵ{Jwv.?rgDuFj۲ľn .S n󞶣Ko]T͆Jt šS(>4T׵ڵc{; 2 3k|Z\? nZxQ-q|~ =b +endstream endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-148e27f9-5377-499a-bea9-222b6cc4f231_.tmp) +%%CreationDate: 6/9/2026 1:56 PM +%%Canvassize: 16383 +%%BoundingBox: 378 -752 946 -184 +%%HiResBoundingBox: 378.625694556606 -751.925720214844 945.555793480518 -184.995635986328 +%%DocumentProcessColors: Cyan Magenta Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Passermarken]) +%AI3_Cropmarks: 0 -936.92140921411 1324.18157181571 0 +%AI3_TemplateBox: 480.5 -280.5 480.5 -280.5 +%AI3_TileBox: 241.2207956708 -766.060710710572 1083.08077614223 -171.040752214477 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -925.040650406478 87.3378500451545 0.75 0 8197.29268292686 8452.99548328818 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -925.040650406478 87.3378500451545 0.75 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:80 -580 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 14 0 obj <>stream +%AI24_ZStandard_Data(/XME 6 Q  LXZ3olGͿaCB RʔR82 +c~,}we04yT hY j\Dblm +3Wk7 BU +#$b/0TeAP0<񬨁2 3( +`h03D*22 +3LcH0En%L6.0QEeu h &P4} $"15a^8"¼E$42S"ABF5v "qv/ XXI R9E57VRTQ4FX65xWdeEf'[ (a͔݆D%s`Q]݊չj9g\I!4.8$1c?c2 4CAq4 E@U7h$4D̆2H, 88A1hH(#35Y tTY9,+"`G$ h[A4#(|YaZ޳g%2ev8dCk,qjV9gvl6LCa@ƕ1[0 C1aFRÍqlLCQgTP4 0Fěd|mXt;A=V氚WٜY-fgoiX  B$ De!7,z_,^kdEhhΰ`h040ްhh444 cHA B$@#)ᗗ"^!HUA1ǀH4 1$"D$*"1 "q D#2X " E1 o1 DˆDрH04 S WexHE"+va%|njjA$,,-'Y,:zweܭ)#A$b!5ERldF\H4hX &XnqrҊI63fN-0E$j2"qHsQC$"/pH -h DB$ԈDa" HwEe5Sg8@≆H8 (-hF6(D:!VHH4C<"Xf4"h,?<"=- bh(ʈBA +ʴip" , Tx H;:=ƎwX%HDe6'K[ cDB@Cqc&9R:ɻ9HvZ(gwdKʣ]V/gcV jrW2f_犨gY⤒߆&\u֦`?̑Nf\A$6`4SD.X c: /S W, pCH R, "H HBh4PH0EathZtGDHӷ 30ssH P@$+V ':g"7 ehCc*ZE$䶁(G1y\Q8"Qa: = h0B "PH@ .Lx + 8\`, \@,@@N@ +PBp,  +@cC*PC#H +*pP ,l " &P`8Al

|HSֻ~s%`M]_?eSpXudVn6({j脗x{,m&:`NRfVJMM̬S6OlZV&~qRCdy>ܽt#DCw,\굧nwrڪR!k#BO6"=x2{҅u)2<զyMkIcWVV;Td}/v +WC)w:꽰RRzEzo$:W'Fd4؛<#Iӳñ{LGy,˹nϳLryyu_y-VMlUfywXJ=l%Z +Q<+ܔg2E ՕYrmWIkf/zj'>$UsÓ^{:jꪱ][x2lQ};!͘r㊍k2Z}ҔOnL8YO#1He]6aq=K;U;Lۍ32͙}|GiN^4 WWWSsBVVΜەBD+͠i߇ZOIJtۋn윑*јI 槴񤮃ԴSŮrWb[*4+s^H_i=3G& ﯗl$bi;395xG.>gM Vo%:^+ Kg0%1'sG'l F5?-:хn}J͓<w%IX; a/g4X6x\;ɳd;y[] f{ZoٝcB:d.;]4{,1+ X1Yӟo9G^Yo1Kޓ'=vP0:"R"_ʽjL|Н gjKJ|صiZ6MC4x*ґG3 Xs]ʽ-^ +M̵PlvktB[ItGKUΝWmS£T4YZ5Rռ!`bVQn.w}ķ3!33+MexvwH= $8{5IbuiU,~k7K JOSdi$| _M4f.m;حWm~cœ눯NO9!AovW46'ɑ B;ea~ԞX&7j;)a`{ ~+8iL-:IWDD‘ġ#o?3}ba:W=Ea2{fnEfۘ{Sk&wӓy?Wo!;&,Ne(M//hӅG9zX6wv#$PnN΄㹴a +]R?Xv:uDqSkz2[:>l{_\h2vXQ +a/vSuTȡe7hRYw8>:W)X[c6큦{3F@q GƁnXVi[SIpc+8xvG \Gs hȦ\wf:hʛq눆b/-Zϩ䃌N5=dr?rz!,Ú{Kk|uc]\wG֫n#̓fr[~U~e#5>LgXm3#eGݔQ}%dWʼ˛J~1kL9(RJ3VRIZݩ{zt.y!"݋IBU3%sx[ӣXycvs/gv\{JI[U$vx,˩B ܻ)Iz\d^xmNvF89>l 9HxID2G]XF$Wa pAplauyRÒ?4;$ÞHJJj1q̃:sMry%Q[:NW7ҡ&yG,(wym$GO=[eq!I#٠YwM>)F>^eRJhTIQ+9AE.'I@!L:SG#C棙zH|&uzy$UzAUǕFG JY"zW~x+̖8}MZbtTIVt+7eru`\t+sIj#לBå x>)U:7[(*{FeS*($)}PV{G&iс'%}vEr2Q^LJ;q{#t8^1;貊>6I2}Tv>>?;O8$ih8 MEfSOCtDXH&! +8`8r;7lξ[O;YceC,1/˝92MayfZă@{_]^D;H7v"_u ȫ]):3ވ ;ʕsɄ-fě1f~\+zH>#9X)Uj?X9I<3vtfmFrH^^0n/'enQeW;CczNɒn|BX#~ρCI5(%-yBKR yvE1:TG33n9DuxE77uFs?:Ǫ:9KJ#>J̴Ux;H.]StڛҪ|Iwi>qU%t1BlX#4ҫ2^ j4eڥYi9t0ܧJVXeP]W7Ve]v܋&`(X_݈[;~*Q&)jL*͵.^TDfvY'eY-yjR>#+ڿC볳5f^5Il.xX8,+z{ktMy^όjgldgJsI=]yK]vl +-/w+;qeWg_fY Y(99}sY=뮪(^J,w\$~=2]hwS޼S&^WJ>wEujM5ڻ?Ifӻzֈ¢55Ո[Mƒ & abC *\@]89ljsiU,hT*C"=i!;mGu|}#ʦZZU};&VMmSlb[$ӞYӞyTcKUUs/\YqLJ7g= Ye١ə9E=\DO!uf<372;ë㮵S\#)[mDvNT%t)/eDVy)#V|vVdY{bnni^8ߠVPǓ,<,g2s}Ԑ4c^Tw _㪱tGتZIf9Tc*"V_XYSU:INNtZ9i(4MhBGV<'ne^nE="b6ut%C2M7ʉ£18&8-x:jxfcGd:˷袥QY|Iody+JEXeyUIF4b(dT:*[F<5r¹⑝R5+C3Ȍg(iIɨݨN&~+J38z]فi~i.֟$;oHϼHX֋ IypLS_Bxj:_|ʫ|Yl£fnlQSd|'b?z+d?cidZ؜:L?<9& g^'^YwHu9M37oG-)ojx枒? +xVw$«953d%WkzWe>ϱ+I$Ra3z/.bM:WnϸH:pu/Ś%4wbdY4ױTAوeLz2qu0kgIv$4JFNS佦YX;ISxN<-#BINl0.<%);cڻ3UnM$=>,,+,BI hxTG:NJw&i |P$ !T7Y9_2GU* OA=DrjR׳+9(ՠFRj:=JZأmյJJ&e +.[FDJg%dﯛ4}%Dtvy +>\J{٩>~ Q[u/[ʔtE=r TAvGQY])>Du*gE7M쵌912b?u_i i84U%M]ѕ$$9:fIN٭$XGdι8udǃ[&#λɕ;#;vy)T;jyR.wN[RII3n>f%ilI:1wm:LN(Ee/L4쒱hIE: ?#Oudk4ug-Iqh4VG:91CMIN3>(4I)ޮhBqrZ:* DLNc )P#088 AN~B^@AFzNd XJ07.vpk mq|dQ>7%jB 0)ՎMvzK͖`ga*'oU-".dz|!pl\\4sr6N BPҕAYie6sT/;ψB'GVÌ YrB,w p@Lc)V[jLrHM?YU_013Cձ_+UF H#,Rns;3=~w"uB:aɟAͭwx 6Ʒ$<2d6S53rm(oFV0q&2ܡ!@O=;`upJxjrٱ(\f (oR'x)u[62M\$r); B!u.Ib4Cj]D+3ym,bЉH?|}QB\6ti 4wXۊ}BՔSuQTݵA jeJ*_nqQgr'@Dpjtl@"G q EJ0Bˠ! b$cU{HI2;/5gv5͓碕-p^KpQg:Ex,׼f +,o;p>#Zx'ŴI: }e>ֱV)1XE˝ !u + trЕ厄F 9Qc. yVh<@;'314[oKgRoKt:RWYqӪ_bp.s^ )\ðߕ|-:$sJ`crZJsV̟Z.a@ }l7˙WDd6~ꠛR`DMzK )7,fmfE$bH g4E7atnHSl*ՍG;?L^n*JERk*_Z]bx$mhL!JEJy.1Og|Oē6"2` +nY..Gq4.Gݝ!JJME"bb]m}\}x7^O{P0{(d-16rːL:-= 8 + qc_Ka6>kr&qqz.<"Af+- ?Cb{-YPF#,3kz#ثa5} LemF "!_$a +hsJp^7pn^*NDu|+;;au;N̆~zd>'EYʿG xncS /D 5̑L񺏾@VUA*V9 p$Rze-m2*򧘸=+w@;Τ7! M&_ۂUd(Q^ uoJsZ \gY$_+M]P9\7A׻a>a?^!v6e5,Ce'$+6?* qN^z++z9{*@߷)+/t`k zvVgfzM{+Fb>mL613}";Y/4 +GKsMFǬ *5#5/YbnÖyH +IA-ϸ5 +((?穜9t__Fhz)NA9KClc@`chrE,q;/B2sXe +V0-+wTҰً8o%jfh@&et<ͼsWS Xv 1ܫa荇2J kcfJkyaQ{ C rU=֯Զ?:$a§j-M܈q\R8~6?CAP5GBlP! 1l@'Q賿Ua5`8)<Sn4C)Ë:DVteMY1Zv5# N ٬J!l&f9֦ÅYM$.d WN I<@re bWlmmU-)ɑEXop PQ'PR ,Q{π;چ;' =3$);3ٍOF?*$:<6o5+5O~1&/yDQه8䩖 +? j MHJ9YlC5-Pe59EBL&.7x•Ngγ +r& [KKMT׈gͷH<DAܵT >!xsՀJ;tÉT9L/3a ϷVR\5E.loChKY@n4n(eJ!U4ĔܔϜCSk|hNX%Red%yRڼCc"@&x4  NڞZOCfgcew99F6I +i*6%!, +9y2Բ]I1q +ke?-6>Qܲ-I(ײW$>WI_ʪaDȵ)[+HNU;H<4]!ty%D4n.fbthE}O`#c(6y߇ʹ|WZ`dER j6xԄ [3$Rb::&,%csH.kڗ$k1/!&#@_,Xy/Bj/pݑȌ{ +讹VY/|f2Ii^? f@Pc"yQcgY/ +Knb;I—]e7y|ȈoۼlXDD w aDAr4"يW~E 2Si{l$2-`A ig{YQ^mjF&_#d <{I!AqP4*\;KC[F.M=J}`+go+eΝ¨4VSsn`#R,ii ) i6AOSv;Y N.գ*tlH+jxҬ!w.R ahKh\77)WS4{:jC0isVө)vr:F#s鬜m py.K@qum$N+@@/ q$i wH.gTk}V|#NE޾:bQ3zZͲ& ^զC{jLÙw2\9ܟJ@_!uӂ7PFI]'uvø;Ѣ\]7+ۙIt[&ew/Ebn§HܜGuQiɩX/BO/y@ tO*ǥPe?ܨ aȍ$5\ZHrX߆Z,h{h,*ᲺOWiNy$ø?_ӲְY:[K}գ'pK #fB1fY@Ċ%&C7yFYʹ@Ep)n?YZp< %9C]-dCOw闾:*+PѸxVƌb , ]~'m"$bdNg9-= 5[4G6o.2p7cge\_2/хPnHN\ #fjU>/&7"I^k6O4=*J/3B^[hZxtSՅ@K`uʠ\ɕ'ϠW @I0a>8֤lKYtdË%!5 r)rZib13DPkӊ_}OI e\kēP9*e8no B ~=$v{^=^_1ۋ'6Or atbN7ifr a+|rhM zϦd+qr%)a ƤMbBN6FZ:mUVd7~0E$qL.Sjd7YZijp,x9&N:,"蒤fDS;{& +iF 4qcؓjw2qѿˏ:LY]YPSSDYdb +ҮFQ򫭮EC;!V_ʓP`SDhՈ򴔰KÉj:C6hrR%UiCuV F#jvbIs5DcyT(V ҇GyUy*L96/ɱtuQ+-O)JC/i＀r`ߔ,PMU:|jn( Z>@6 qM#fVbBZ`AQ**_"CgSHyɠ]Ҫ2x  83h]מ&3O%?uHž2-V|H镼yEYVO7G fAMNlm@Opـ +$0^w2e|$e5<2P%:^!hIdT[+SB1&mi&Xcc}qoS^^G#Pp@ebӤGLȺ[vZJ"3r"mH1I8Z#ɆhL{7 }Y`rĂ3Rr9*?Etx1Tlμ1mMgԫ7_יxksH_ o; r f7b1(|LnSˈ/rn>_WXDZ'Y[wia&wOِH;Y7ԏ\:X*j§u)r) *1d|2Zv$H |0yBJ~$%nKa4NNH7fIj 9=[5%BjHU?<ٿW 狌UAEz͊`UG7]$ӸBU%F4W#Vf_ uFg_spF!e`̐Phuu8vfG8L4AJ㽘Xg +UwhM[pd,K, KYo;F"@RO,*Ͳ"w]%CK %Z\.ӂ+Z+ުU@O%(ZG.ECE4ݬ ~P),`wV +YL!lHʋA.!Jj8 k +$vi/b;԰T +p11 +&TKWh\ЍFLB6>JfC tXEŧar T$e)o"HG#v7P3K(?BH"}^"Jv$zhkbHᶰ`Tu[oX^r >\Zl8fy|hK!k~]?ThYo5rЄ:.`5xN!;y߬pK}0^4Dw@y2+T,f" _Ucm ELȆeeԝJ(}LMKKB9ZC_@Ua`lW j/fYPE)N:0zw9Jdص&@ь!yH ƎF% 4j`{cjEYaNGQ3)W@BBA68N@geq .gXphͩdrFڌQ2 PrHa.d">:;Ԛƭ`ú`rx>‘ѤFl!J'R#^mv rKQtثMz-%䳯{xՆW=} (%g7b2C y>ؿt2F0nk#WQofrOE~>8$ˎ BlOpOe =hEUAQHs`4*cC!Lُ>3DT"3 THiC%:gx"D{a`otaR~U0qA2#.϶#--b͞lX-a lEZn-y%*䘆3nqC y~- pĢu BrleKiس=`šBI7{uБ[Ejq;P˘i\.@@qqZGkeZoYMYB7]L<6sJ8~YRҸZݐs,kHru'F";}И b* +.YJklgB|R=#Y3VB[JdG b߻۔Q85[XpZLeĂn?h鈕 (A4bm.ƈpk+âΰvknB +,aIv 5V %gbPw~#9 +cNci1tx븲|,$uS +Mql +'!\9&+eQ;?G陉~Wv|u^ +7Ϯc3t nӞh f_m'zIz%"^A.L-)6b"in/,WB>J(6/'!w8@ʝo6ڐAnI^8ɟ:(ZY<<Ν-WOɀ8U[qQ̎$ёfЃ, b Ԙ+U_" Ys H.(WM_|GP!i!Ջ3 /];dWhw.Y~^&a T# knJL4oi&u~3Q8=SRH 0ᐙˠ;l3h +W*bIp +3kD!I_:|W.B6de6i=$_Z -d̒~fM Arf⹗ +zS;zsjLn&̂fsS +2j|/ +wQ-g:8+^1TnWSƿv.?f>u,/X[8x}"F? lXHݦTPHM+.m,/&lm'}Ibtf#Y^H'n$+ nh*:T]Z Gp `3E5':>@cmߙRn%giVmx_~ ̃X^ic5?\0~]lOvر2>2h2D0BL,De[P$;g,]&^$$AM%&Jk) ^%tUR8XKlqz| 0I0\ yp6ޗ:E| @"&̱8p/5hͷzX,p3+U9_|3Ίw{%t98kPAO2ħù`XLSex % HmrjVࢗBu.-k/KAAͧ64g4R(,_ +l4sZճ@)97-fl#e' Q`S}1uC]~3Xg927 +ŀl`MPߕe?Ɔs5Ej`= g{2mE22S;+RNNYl]~7J-,i?^*AiTbLq&Ei +WꪡD#%EVOI3AdCuHwJ͡ޕ aԡ`\d; ^w 5RA p%٧t-?ԓu =fi~m?4kN&d +ZPԪ +g0tbl^h8E߃RI-"]TŒSl]SM6w5̪շ.W1$2}V"~L L@=x_rAqP +;ʪ𖴚Yy_SjS)Rz@Ǧ:62AtER8ODGw zNVPv*_q¤3ܡ`Z +JG[c)i󤰠YVp<wNROoyoY]W+P;߻$ogEzc%%H\hD=ͶB&2C4 xaA-!OyĿ%p;hiWt+nUjuݕ.1@ 2HG;3I}_)zc -i}ѾGEj?ws\I{B@ݾ&O)<-Zx=Û# +Wj|};+ +{'Mw bn-mz:IȾOp OTH"}r,25=pHgan0^ϝK6Jf _|)B3(бL|rFior8kd'#"8 cĊ6H҃*#ƿu\}su]k']omU~ePmvN6JۣжhՆ/lk6f4p9'9%Jtd VEkI VJR lnY͜GӠZ]=frhM IIwq'#6 Z{Dcb!x2Nd7*t,99EmHfJ4LfJQ?Wv)A2xk43D cT@b*h tz[hg$z(pq^CB_Vvv/KjoS%~AA% N#f@MQBP5gU%FBXDyZKϷ9*тNטesY\ 1WNhX:߽y1;$U6/~L_:DjVO*0T"k¼rm'>Dxy1q( :!<ېEZW3$ s*Ϛy wy-BǸ %ݶ஄n{$dL*sb!tXk]8|zIe`|\Gة^>j4OΎ}yyH geȈFShc\+@v_ ŌL2ۭܫ PrܽY2`%zվ҃r35Ug'+RT;~H:_ _vlt)$YghUq)|B&8e7gjiW Rd +eIN,[ f#g +46A+:NvJ4HaUk,˟;6xE(m#c.g,;um2 ĩz14{#F"X%;C}k-(dIyr>yg]!!.* >y Jm~@F#coOJeTXKM/9O$Pѹ6a{Gc11 ~[]=+ɺxozkgC]3z;pCμ?/5Y;݈BI<1&s5<6/_]1PatM@ ؤaWֶH)Sy=_"-þύcCP=A|#$呾d^{o EjY8T]ܝ. PdM pys(EXCq\׆n=_"X2;ӼBlAyM[cRܸn,{4?Z#G/bj 5 )ˑbek]AͥӺېsvYW'+_ Du lC)Vt$v`cnt2X[?νtYL%K\mtwoᄜnS/"Ee ү)@? +X!}W\Hc`gy~ KCSzNEVIj@V ZYORRYYV#7ns ى{!.Qz_З 7U޶uIiZnںGp!7pNd8z, VQV}Kž1w3 xht#琢pu8"56hU#F"T|GA)d{&.gC }dtl ;J dtZధ>hlQ3*7L +M=[l*$bʮ+pS~sF֍(a&T820@B;v7,1B bNB]2d4J㢦.oܴJ_m׿]^eb^ +X Op[Z`~<b N` ~p}Q}9 W uzX 8w`ɝ1BMGz+sM/j!-'#?=3hRr`ŹLڊqטS[[* ;>ʴaXR.+LC`ӋNO +\Pi1j Ĵ0e,rbIFޝrḫvs˜~lQ-m+ !7 +hnL?%3"ߤ<;/T$<\kSP5lTʪ՟_ +AlwF +DT3 cUUfǴ5+d_).V`k Ímc7mzƿ_V4-k9S/'nm-ƻ%앥;v=KHզFo:6prq3V7`>[k ?(GymѝeXYX/B-w4P C{nUUpL!|U}Hy@,!ݚ+>]e |Ɵ :ǹQ8 hXCY ƘA﯁voo::W&me%cucf%C4[ W5?IجP: ,`לٕ Ф  +gaN0D X1yu=l`K&Kԥ |އ •̨Mc:ao>~4 IRfͩL;C\" /ՁČrήc<80V_í $-)L`e54;/->U4 o(DO%,qVK+[ZBv%]GTS.BeNU͝Q%#%x$tqJnN;qd-Ydh׏Ύ槴;b8N kɀVdtQK ~WhFוVf[)* +b#ˆλt极wE9%7`5T!P[mݦ:M>sWehSf&OV-K_7S-g6aieuD4ys0}Ҕ| rc<3Il]Ch>[.EW(3{ T@X=!à^{)ZfZÝ(iXi W_=KHb+ΒG<㈙5S p̄2 ٦ 8 (` /Ir{XkBht C}x .aA)+9[A藺tk5p๯@XNȬg @fS ^|8L٢#lgrHcJSkAqEq^J%S|x=^A@ԫzL*u"x~ka. J* +x--ƢNƓDSSX2UR_hPz{ +m{b}r%6DJ˜1ܩKa\%_ +y?em4 9m\*Li2ZC*i + III,w[ w Vޫ7,xXRT(m&Vs:IvsDtTԞ]y[X>GJ= |% wI3,JJKcm ETW=<pc8w^}, + 81Fj b+*1eX&z-J4Uq$tL]5Qzz]^jX0~N(M]$^6!aXPꯢUaS:cWe_ъCQkL*,v3oBُB/CNY[u*M@ C\{2o2~M6ԧ'/aۅZ` 5HU9_ +9%gбmPS3PoeKXzo3+o >#iERm4USt6翥ݢID +OqD/o&H aQ +eS gh{N_s+珤_ݙ>l8nj4?fz\DfU=uO3$h_5[Q/T s+r9M/7\4u[2Œݚ%'z/瓽1b[SVFC!iT) ,`AP6Q w^GM% j+b:H;(#`kJo1X ]S!%\un }Rh5m0\GCyhDՓKō=Bt%[4p%:q`;4p.%[3`[XNF0 {:z d6΢W|7S9:~M壪ـFkP?O rh "49w n\!ofw +\3X:7Sܖ?)/u7RUX j4tLr&m|0ǧT%.;8-f+|^;XcFp R-&x#_*m U8]lDͶ%k( BBEq»[K=1Z+^NliކFoFVJKKT]rCUa5?XJݞFPDnK;m\ØK L(weZflz׆TBizOh[!"v<W{U`Zjfll!u,M7b"m wD'jf|~oW~r$2E`Z/̳ԁ5P7s|:#yH~3 +|[vxA샥{q%5ovrԣz<缑e5§IɫX<qo0g\ BW9 1+*JB*9ʁF}ڳn?;x–$75 `b t/xSncW> #&kU&vYmn,nίlPaU[s-bp%Nm*A~؈?#ÝEϮg6}G׏C-٣¥`(Oms?ݯd1ͰҚ];!?b2JȶP*\ 4"oP IFnīa=5p=rfS~OwTkuE0cyI,"8U\ q33ݩV>S-wsRO9g^^Um۞I`q^'Fտc C[=XV7壟W>T[À ϿP 4fCmXDJ'l<rS>݅k\9EfYa=1j3|-2d* o3{ZS1`<ڧ ( f`=\j _vR lqp ,Kh邞qw-o6<sܸ7ըo#G#aZ*$,6EKx ZTze%y"!߱FxNmm"VnBGH%f" + 3x[NI3^$W_T/_=W`FRbmB-mJ)E^a] +ܰN;d =_ܷ(mYNZ2xSRz|$Ix ^bZ-!ƶla +neO{rBÖXUqZu<ќLjyxD*rɔ ɚ?ڶP Fhh7o\{.GX}$"esrQt>yc}8LH&lkVIw,cx-)Z{ͥ=͠'wڸ?Vk|p=S q wg{ms-D +{O!W hڄ䗊cw40P@%gmZa8=2%hvH%ESVԔr^wAflh116SK0u_6ZuW#?^?A #FP悾-99 +|.7Rb%~&pq}Z0^`:pL6Ez%Ǫ8=d!!/>/=5a7 fbMfƫ y78x Nm#[Dfed}lKҏ-m>U gꔢXy6<$ئV+ %8I&MYiVn (-/a|]h.-kU{sl; 01e5kmY+ +$ z6p*FW yPiӨ[Ke[kP᷁p3^p f`\N.y&uCusŮNdlM#0bbm@>OG˞]h-tPb,hB +kW!)(Z'TvBMxɄ%,zR>Ba#QM\%bOn"\.dwZ@ ="f@ Y|t_fxLC:l]=6*̅ =GYH.t;L3vMp\ c$Cq;z*Z3Q]CSUj\F+IǬ{<&>:WUҰTYr4Wnsݱzq^wpO)1޶ޱÈyDIw>ϥN(;Pb"3[R#n9aRN}rP%m !q㨶7 0 5+0bw!G,'] ,ц%VRsp[qb&I*y-yJ)\ QɆW=Q|^6}׏G 'J)n@oG` " [O/N(t4 2hA?z\a^RwWzap[|+utXkJAOua2kCi_[>Ի"j+L@LvN1.sYfGR+Ob꫑v0N% ȭ$Vݎ$ ig%3gNAwSRZYr$ga؍,Ľ}vZ &D1pZmHQӤc4 vL!wKŒ-Y%T)%o(|&: B&9$#ѿDAC|$D #Gnط6kHqdFTdVŧ.˝mʳ o͘~B~ +o~o}pXNr6 +ݙU +z S4(}ZSCqJ4ZS~BGu ųa N"~$,b#B]N',NX؂Ctb䊥QF]by)^Ā43 +SEzp Oe +L0W +,zf}Q{u^%1(1V^^ܮ>Mw"ljQ`yrUf p=ByފaʷErN__ԭfԮsd"4VZtX:33+=Y!0{`Kxq5Z(+U޼k4caS,-%K+wF˯9VX'XE8/he`?/Ƈ?`4]6c #as*ݱ7MhPG($ԧ/IKM+e̤b4܁h@7;g7O;uH1<.Z +h+{dft֍{PC-]”Z%?!>P@T${"ȯG,I%xay1x+iP8Lp\ۡSz U*4)=v5ɕ>pˑTDr +Z|:(dF&&&o-_*0NL %3LMr4\56#f<\|H]4CGUPK&wӛP"י`V姷ѰM?, ^ rl>bQm-RE]f 0oОIJc8m %^DfJ~d4ɖS@@TH=Bd썂*=7VLlCXQAV'|:^zr3kj0ӭڦ\zUPԽ"M/^(U(Ad9* &vJ$>7}"oe4b9; rAkw}`U#&e|l%29U$Ju +@|dKLMW)wp{g)*~@9rT?!hΣRj\ok`bv8Q ɍ!ږ!e$ۛ\$m#V\w55DEC Pz ىj_jsmz?:zr˻2E}kGZ_bߗ30#P1 :CI~zm _t'bNoZw\u +t0=%3Gt= K2'OLDGf;Q-Q3(VӰbЪ>fMիD\ +)|fie' FHV"T +R(X/DML [JMgh9&5#rmk>%a$(q*5j#VռZ`X=)լJ]*ּ"pcQ +ؖ6@)FaxPSB,l4AKܣa@+e"X7+W|PX:@Pǒiܝ7BQ'WDӏ WEPZ\"7J Kǣ2zq"{m#t(׸|x]"aȪd!񄰄d1?zI0D\^)SkE@7hf +V)BB//PU=D*:µyԬ5:QE0Sh DR#O^a@ +ij q!$2 iAsqP+#4A-tI^2=:oŁpT턟)k#p\<6SQ.Pp)C"P-a&Ry'8dD+h2! WuQ-Hߞ4`thj"ߠ*뮏+Pk+-wAlPA}Z\3ːoKo4k/ƛƫLRpДT=8H^A&&S+h gFaȅr3ޔə rJ!]d&LB3F1S"Ñd?DKf.c }e$hհD3 LEAfL4p8Oa"j#!B2%%(h«\ RRACDPdEe0bQTWUX  +⋬@m)+ә˖gBCȃGh B",!HyETDg% %3a0M4,R&TB %U%$$U231BlT*QK.v##3VK<>iy +::??vߵ3!9 5E) " L9L,^4-`3M<N D;l$Hc\Ts^y#G:R6#s_QQInQT*| ?>CVTfOeuV&2)L[tEUSwV_z9ܲQ8C2݄k= r]1wPȯ7NHbjiD[XRMj +I׌8!ۣ]dñ|((<#q\Ñ\*6)ܼ5#LSbDjf"hf&2,~^ +ULPq< K#VKQTs ujf?>!*;2TUCU(X=#1clnߑ0=A0۰197C(op8C3 U.WjF1SkzoK=>ὫӹtON'B+u;/yA5{]S(]A*zG=+?ׂtR%4DW cx^"8ᝯs&꽼cj]U:r EAP>6 ':la̼crdf.lhNz]4Z|^*HljiR!aN(jE&P}"ծ0: |J,\ܦK<&h-Rp`xUϦF"R(!HσS8QSK㱄D\ B~H`ILɒ|3u*(cuLc +ulKW*fQx`TtF݈g֚hA۔}4"媎MQꎽ\B:+( +qp8/˫oAI :!Aؤ&dAw);D]M$UP\&AbZo 3J_m*(;km#7v63|᫴Fxє[|p^8HuJLa1/AUy16Ej +%.1~%f1u؛ ~8K2I'd뜰+#+R1qQ8̐ 3i߸) |vl(C\D,5>J=yFIuH^-x,1gLEDd"CfdS'ΏLgNMƙ͠Xc]U4ՅgFv: VQ ?d^u!g:ŔmEbjDhQIϐ9J!4TlYCES3F4.*RNE{HeOh1g +t3KpQEKHUYm$֓ES\rIYq!Pr2$m0VR: H6|Hl()PlaC{]I Mn֦ȟv.&2T(TRV/>3*{(CHhO/$T($Cy)ː9q<$bΩZɺˣ I>qrM{SH"3LmP Dig4%g('f\+xAGe JSt+'&zښoxEcG{fGsZimf*32mUE҅u3)dzGeH؊/ +2e&Y =x&E#wh*2I!qd$"3Ed׼> th~QpfۢZMpRDkW>%W#VI-JV9<δt!䬘V! AcKt BLh9hioc"Eٙ-v&ѢJtU:nmcr:JLRȦSCo^r1#b. b> 3= ᅠ0 T@5Q@"mZt#&w܆Iaf:FA$. fYlTaO0yT S ޅX)<>4QMi8@u(r*)Ee +?t4^_ӑIA L/E1T}|塕^"fK Nѭ͔^ *1x eP(LxˍCm¶XmM7Ze&7EM GBMu21!~q/B{_w'p5KTpx~2@R K'O tt *C)P*(?]e +I"OtPSTE8]Vt P $êQԃ*Pg6ZPeOC5"&aA2SX00d01j #H"|2LLjɠQA24A +:(RpI"~ .(VI7kHx-5S4ї۴ AjCS˨f 7&񞡓)(\8E&3~P1fyrƏ.s(*7D8?猑rh1߻}{v5UϯGo<> t$4($f3dUS*4"N`@ +Cbxx4~D aqPT\ {l8P a¼8l@d^̫!H%pW .mnZ%t/mzI֔ +'Ǣ,LQD,C|n %g))kM"HSlźwݶ,9A8'cY6 ?L&TP O.NtRi[3 pRBA["@oҦ}6){$ʞ춽{P?$a,a*7!KdXZ* +6Z ]Ӏ=Sn{fV': dd p'}A?qwh^K!o*zj,"KpQ]v7uƊAxM;*vR7Oww^&^lX/FN42eBxVjދqvqZ] * D!Ȣc#8]Tw HOߍ:~\\NQ.5*> + + il*tȸ~PdWD&$-`-q {- +XO/U1p(5K9}#kH]!޹`\PST|H. 'E>\Ұ|yO -d7iۣXr H kQy4&|sk%6Qeޡ:$_{_ݎ/DrI0Jnbԝϲ)ΚYWd BhrwTyW'8m->$ԝҠ!f :kb,_U +<7_}`6J^츚[ZiWaqNd2mz>Al@g>Yio)^F*m@|ڈH+IC5'CRN#aᅎ^b"ų=A/$U/=!ԆG[C$ea)4Y/a 1}B8ۡ?AHĶҜ SYUi,)|2+_A &[17xKZjDpxɌei3Hޞ +/كѨA"Vhq' %=4E +~2IL٭rP{1ۗS5E9h}z\H5plv>m(^cAhm售>L5  qNՙa%+r3P*/V6<|Y'@Brl]=}6dYI#t8KwwzN}*FQ{?\):0\CwSp*_DBrz|l{"]չMccyEXZD.I,'0zr-UpxOKEk`_aŕDXV:r@6 ߚf߄ԁ)W'65qg`C&xR ^&[ǂE vH4  +Duؗ PҲ4P%d.Hha+\n.~CLHsɼ0[UJcrUӴxx OҔC zj3jKN.YI!rD$!P[?^ʐ*qPW A遴/G P夋hwm3XLjZ@qP%.'z 3.-^ȍ@b1xL +0_ =DCE1M%K[pn=o +9VZb>ܚu2Su:+$)hSmiQJ*9l$֐&Yni~_U$/pF!D-;lkl4?8C޵&k~] OzBgBR3$ALS0R+2S.VTOz&Trjѳʎ%MP3r蠓u z:R x`շI&Rf-@#x#G3K%Gda\) +LHs{` (SE[F||xB Z9>*} f@mMJ*cw/NF(tE$7q fp:,vA9}PBAp|42zF rt;`ޏ2=v7{gw3g!6`J˂z6(BsZxQ,A*: DXp"uJTGrr˽; R(~BFܮɈ̏ .'倌mW/h<aKB-.N/bL'9=3/hMs,^ߓW=sԒybzޯ=uJd3A( q<9 1|)"2 c) ]TU)UBж[8(;濳 +^&@k}Sek&XmT6kB_GGH+RE'qwtr{<7_T!0='MwuGlauz ^ oV_WV"Z71rSrКZ-H C4BmWƃSůʌ3" +)Yn+K̐^X4p*p)HʤCM/3_w00#cj_z,Q;cO&1;6UBk~t7o| Hr0>X͜-gj&N (=)8}rR~t+eO #`/!rz lSS".R:] N/ W0RyA2ei_%v[3wk:Oh"UOq@;(J/HDZ!`$n G_yZETd +.7p_!/1VmK7צvrzjd4Lݦ]uez7B N՗F~d(,0XBT IO4:D{t%ПO: +6Mw?{ +HnO<(4T{ +FT3P)Sf"b1s $cM]MTmdqM7'ٱיy"5Ȩ2i/_vD},tfQmĜH_ Z{Ӛ|¨ƃB{S&/ܱE)x{=愳$|r!A +!*?mh[gPgϟcF)3L*L'hrmy RĞ5rnв-l60F@  +RKz(s;d|GX@^Sq\`"Z˟?ʟ(E߼ +rqwA;PrK%f<#Lqrm1aHA] )X4ZcilBhyӲbI70w7Agj}hp~ЄN(RҤ{z@C_Dц8e![Ẃ]jk;Fkf?]] !o8&oBY,h|[DD w?-m.SMn!›5/6ā_ȺE.iB{3%!;# mrr) xr'*4kf"eZsi7N( c;鮩CF$y̟آ1 hQh~cJ_94BHYjr;ddeαk㌮"F54lnl{q1-Zѐڔ%k1B˦',)IM^ĪLպR_ΣvfdoUJ07w_;;5>o7!xyd[@ >ڶMDj_hf+_1*x4u*4ix7x|tW]11[,V7QHu<Ƨ!$sA|r 8lKHwWgrSfhn53֞N9Dc"k!߾HZ`I =̤!8֎R৥BOs]o裿cCqx:n@G|n" +ȋ#XFlfpzpHo!B8^8P?.=@N6Rt`Nr@cS`u2-//*Ić^~՛bӐɤFaD"w| {ӑZX4ED8}yЀIU 9ҟIT8 4]NE\Dd,w2H5Ya Zެj| )'uI#I2]L1L)8"=yID퉒 MŞy#U#OƬ"dm"%F FN&)5gƍIkܽ$%@6U& (.UGنؐ$PIj~$SFH ԹHL  I5&[$SER H28"6$+z I0BBp0=O CA q/h?rGY$)pQr#1G<";C"[]s?î&~D"~Hi5DDFd[D DR"¯:D6   t@ 'AG +7=!DpfqDv G06L-jL"Tl\6>8%>,= [ +v@{ o{P"J{'ׅJxpF]=BK=VR6鑀 7ˢAaݺyL"Y +$+yy8DO<Dr +ED7wK6 wp!Yw`PDЅHᦈX;v;YَEJ8Q""cxb$^##Q"R_Ы"jQ"D:{#?"i" @`f|DHHD&D\ơH>"UDH1_#*E$@w:Pd: BJG\UD2_t:t2EzækcT渆"Iю9Z}_H]ˁԧ 2ʱk&m$9 +om"G/BFǕb$!KYE7)q8#$^idŁF6SmV8.#Kґ| ގ98 ECd8w}$0Qo|# !7dH+@*X$59wÞx$tDcIĖ}Lk&;I|o6$JTFR4% O>*I6QƦV2JcI +5}f)["_*lhKHuIHK>wh%կZDέVMk?t SCBs`'b үb`MU UP w"!N2L OG!D`.vaD0y'.x"0<8|)D ++ ["[X źa +}En{0,蕅mEր"R&+Z݊b@+vɌB ]MRV@UX0_ ]O Va,a|%pUaY4ME(AeaT<.KSN*Ή%@*,@"Χ)U)B 7%)G)0ߠNb N)*oI3IOSI+#6+A %]\yC}2BRouguZR/&%I!CD0- +E^#3DKJ8a !-s{HGF|Q-ƭ(NBMшQ:(: +0*g#bPh/(T*XA~TH'Cz @UbyhqG"x=\Zt -!2C-}.%Z2&F[ZP gOcږBf۲[Pr񔨤hQTcp-s .Xp: .$܇.Ȫ:\6lEjKXC>\ʏŨԝS ZIƸO%LaSk= v-A.ӧ& ټebO}0.J[J!+("F0?.O{M P'0JV`a2ĽA^ $(&E~(O##O$#E(eHHU6i.$.z E@C˒?<] /,sDxcGN(/8B(#U7bzFj/jD{F_ˈ;Fh/ˆ&/"7B\GF-m#NJ >EZi'"LD!#_bD>t/r?a #M` "*0j@9qa1J!ELB"F"1D3慘b\3)b  +ڌ2vT71ĬlqKAb0L ;I!3Z0ĨtdPX2#&pj +|2. nRFz޽ GVf%Blڙó`25S=3M`ШeO&`'hfinYy hu/ث0FaiBFWPspir&չC{5yj9UCv8jbޮ& +k! [CtX5Yí:X׈~H!7064c3PA6,ץlʗsz2il=m_6n8|m4 m?86bz} +|!7WnM0v<7n|M xxg,! +F+!དa64;6&0l8 WܺBӥk`cXDlj8'wԀpF `870p3 vGp)qצ8ʜ mqfGqma ?h!/D֫$L$G GfG3D g( ' r2_v<2Gd92K3@28 ޏ!19ç1h :rԤC NІP[d:C(ej0\dS5`x:]Չ/8E Y\G!uH cv*Ζ'.;\Y2-߅$vT/>Sl]r]8KKs.`z 4jGQ\Hۑ.mazs;y;R I ip'Y@Y,PNrGX8Hw zc,+BQј+wϸ[>x +I0<NO(WE3oEMh'T +.0!yγ*=jSMg~i6Y>|*v=d,ci*PT.G < 0Q-:SSB}BG8C7)[pe@*PmNd!)$dgK!RPHaFGFh(Q }7rABD +)(ȣ~gٻ'{J m^}6p2F`@) 9>4RyB7{,ŶN`h^ ; caΝt4Nh3p'D{/^tƕxz LaR8hQ[q3W8!s 'p|FeSN |AS.k#&d!l 1FnA _v.7|y9䖇@|c{rO7wޗ#v (/[I[+1 !Z  J0;E4I{, 低&i`Q1-GhsoIخ19$] #ٽFK-q6NHBԩRL# d)#AqKv Giy(eH  JY@gW?!9x`{#ˈmtG@Y jV`f#V pn\*YHhA{.v<#]D@O]^J!&.`)GzZaZM;Z8O6yP[!4*{l$fW!̷`9aPE7KQGusJ BpBm%M ̝[A8nA xmSZ!P΄ +2mB +>۟ ǘ.VW~;$)@ivX{CABDɹ<+ӼDQU8ud=$[/-}.+%?Bro̪珌y`0ǰArP;ȥA2yP؃Z]EM35Ðg~iZRj[;b+.YĠ4:'zAt<;wtqpf=xw{Q4"ͅoҚdE9Є )h6y@󑍃݉vELSD.Q u,opKd wāܨ^mtYPeuI n$ AdZq6p +$>,pF!YT)y's?!f:XXΪ4[N%K* J2*<4`mFiRNcl4H04 \ST҆R3>i3axa(:b}qԓa0/K)r"yB!3c8,!4 L%T< BWĠFE/j xˎ(3kx#%X__j/;enieJ /yO9+| r@8jqwݰp~xb2H,32 J)K.Pc oA"IA/ѵmR, +ι(_kCdvIZ`)EvPhU-T#ef) 5k3sFC V +k#s߶ +TJZSW\*81;~H`nvS +xBg缲)PiY(/$'ݤ[G$(إ ҀPr{aP`0/{W+)؝"'OluQԩ_dSmNFvJƺ<ɪ2 uPM4%q7B66t 'd +X2_^|JP ٢L? 1+zwB!H0V#!*$KFn|Wدm -{t?g<`a?"::cNX;Nȱ*r"G&=;GmZ̐ }ME7|!8I~HGk\ ʌ(M +A{EkB0q֣ayA0.mV![걸YR}GIb"Bqz00ٔ2|^B.xD,;bDt< F$ x@}v@OMs@L g[%9: eUϛ36GҒBrv&u R4n]( %Áhu4U770{(lMX91ljF } +l75Ge0 lVL-EDA byWا PciLm$$SdìFr ~bN]6rv qN3^ Jbr?r/@rXnnY ar^3- Ի:dw`T]LL\j%o'm8;@?oP;8EN_ `Jhj6Bt/KBΠOg]y*ˣ'G4NHFu繈&PzE_=_IV)#='t[[4@Hͻ xa$_.6TNB$b݅q(>оl @ a4^a|7R)2ۘxA$Qb DxhrarHKQ;4[@(-€b0o@%F5#-/-0; +`PW95dZl_Ċho?MXOkиC\lYI4davwBsQ& }ԄEbf,#'4SpT#˂~qߔBтi4U ݖ1QΦZs,'ZuA>el/I>P{.Tg,,j+nl.~Xۏ#7E-c{i2Mčq/fwIPb?^Lx,:WB`hՐrN/uU\]'wåQNi<)ܔ޻Ywùg)k|~NU[+!j| ?ǽɡXw9b@K]׵þNPFyTH'H۳*z_&f1^ 1h?W> ,WB7 BFgS" +aDmSNc7~'u_+d=V%{PQ}EQU_^Hkqjhз>clDv徚e/{VGZס"(C}S.SeM[P#4C sL&6`K I?SOf?,]tVIKЅ_x 50aȉ@0}n}u,m▹ ;H*YI闠8eWRau^.U-:_SգAvkH}2Ed]7wQMHGЯ4]{l&/< "סQiVt~d8v:@̷c*$JҘ?=.~i%~FrQ0MVi+ų A2pd7vi4% + 7غof7 +9H>C b/2Z5bsR +Z_nQ%DB:4MFl&|_v)#= aItN 9Ww|.')&v1qȁ@NO"įهl!!8{"qc$* :NLσ5[h;|oZO aKƭ}C$P=w $eUX +:v~#iA{#_5Ж?]+5`ҜbɔYV?ٷZDǾ/I8fZ)0}\h;pMR"k!z0;9:x럧~2"A]Vqv~YjX.foN[g]=A'"GcϡXpQ]~ܙs<^aA}N t"l+M>"C|tڞ-0p/3g ]{(x3>X{ՔQ^=/UVN*u]i/TРkͱ^ȯ@=Jez[ &$eN?Z~W6asI+CN*mˉH_c>rK ْc&(bԗ 뽐bs8?]+vܥVp;<&ȔҿJdĂ%6cJ bՠأv7 gP e\4}+;Ɩ3؁2&eb?e5Yl~7ؓ= o#%Q +;`9ɀf =ʣ qnj}~Fu(u9Ý(Xe3G'@:h5TQ}ׯÙ;B/NшEs] :ZC\X^#͌>\Dx uqPmF֡2c8l&Y"ٱ +rrLl/ i|uߪd;簱D55VE2{S.o񊞢za[T/3ӹCG֦DWwX)hEq]t- `e86mQc u !JP0TY\T+50)<=iNgcic7xcZ6,۩}٠"##ͮ3偗n+oV7Ks'9ҍ̎( ̑ޗtΨwʀ#j;I+<풴7c '9:ڼn/x^M5:S rF&wfZ+cщ2H G=U09k6Ftb'UƼz39H|}'ÝnŶ>k tۆ-7lO.~޵ηˢzEтDV\Kсk=jݖ/@NM3ztQ1h_^@w.=cd9tܔv+dHrD> +,EqcOt?/ڐb; +蛕UjbSE/8 ~M)fte}'X^pMɧu t-)eެKnJߪ]|`n̂lI='.;ayx z[ 6 :rSZ&}s3PzlAEoJcL֞:JxJ}гAb9נH[:iEæe:k׌玉A-d>>\ւ/U$ٳO00 ̹A6I# jѴb&2l~x7`rQ5[4HĈ+I\N[QW`Q@+I%pmq\W%0^ dYfy[-`~)]WrN%). k]{*2u0{.|~E1%q|q,oZKt5 +i*ā.^R. JŇ/.,,[61Nӂ Y(a,k삮)Ki8)^ ŊN'ZUq=C$M.W_L~ OCRfS`UƇe'2T}j{ ",hA^f2BƐX 1(\@GzE 8L Q/ >0/dR>G)0=ő/* :>TTzEc?z3faL\N7.&(x$83]IʿS"zs] -̺7YY߽;hr̥sҔYMA ]}*rJ2U8Ԙ!CHy!:o19ªv#O*\ E]mu!% JX{r欧V#W5?s@ܶ2XJ]{smbZ +pfB|~%'}mc1hN}}U Fa%z (n!|_;+&E#9d/Afk[)h"6!Mg"CO1E.u}1i$\Mj-%2<5rAw 7=G[Љ7m pJar`gVx~Ԩ pDR*f:fd0k4v̦4f(ː+PG6e ӎh'#l=MɖkD"{ddX6yQ9$*|QD@lNjt:DzE6,j|5ֲ/-ybǿ99l5w ۣ 5PViwIf[{63xכJ'J:{v ~6SL LI.ے\^X{Mۀ ˎm,|-EЍda[5FтM_JElσd21\e`8O4Ϝ?]ѓʽ [{JrsNv#.A{o%xCt$`WՠH6ۉv:BYFi 6Q vt3쵩VnR񂭣KA} d)w_8P1TiIa?ˍ*N NNoL lH߷L!/Sd)-֡Z3S/6t2ȴUdR땾5'VebӥZ(-˭qbBP Êi-OHowfHJ淲+y~"E=^7"SZp4 DOt]_s2Jע[rɹ.L`` X>N\-=.تmܪ p__zڹ-SJ%nk ѥhmRe,h:?fpMrXb? ++ihfTwO?oeVu\(!ru؊0bT&:b *$׸'AUoܩ1RbI{h*tĩguFd5zw>(Ou=`&PT}+u_ZlnI5g~J4@RU2jaTmz֫jjȨ\zTQc5CJh1x/E'NJ#j3FTC:j0Na V!:R8I-, *1(Ϭz2 4ʹޤ k|C){hJ.O c㪚ug=WY =]< J!}$w#yw-rnzheOֽ5-׷KuAʭB.ea+1?AavKD*,ZvG>!*p2#|0Heո]^qq +u亂FX[bDҌ:W6L |J~$ݮS.h"vVuuTCƝ M :ٍGUv({ڷ];

4N a?t ;NtYh7zտB%; 3[&X|W0,oTpgو2ͼ=\ %=ةz5г[m 'eV.ҙ}XO<* ȻؘlqdVJj4d P"a7 @tr9e9M! +/2[7ANRH=#MLoxspH'K ]:T1 +5HБ,7!Ő/Fax1*` XLƮEb8!"wjDP"5ca3EEBR9 c <V،?<=v czaG,AF% ye2Ű; Um". 4X(׫Kg m6F<ܝ5c:#N_=DDKj6e( "[,sXyUE!+[},+Xl=++ >,8u̟-CT OCe(;ꎶˋmsuZ>i^[Ī9?NYF>δiIh_D⡙{p/`6"Cm."֝YGiT51HepiLQFEK&c)Ht# -3-ZZhَtKZLL ȻQ-?h/C|(땊FBt]cKB+ee>]-+},ƾ:YDz;Z j#OAh +endstream endobj 15 0 obj <>stream +rp,.%$ϗdH8'ƆX9+*:r64ƙ=wRj1S½5ZGkC& Es^Kٲ}#NJ+;*N+Zv"P rK'(S5DI.UyųrAz8R* oSY;/0$)tsː$3[w嗦ռp(;Bz'| K,au2?88REW!yn%)b XF{7(T};򍸻\EyJR^,~_KGB)a⅔r&(Oy2^̻zFjyN7<6OYC_-)O9RimWFi!K*Μ r*kW2M~\ |wC2Ξ[3a'FF#T[6Q?(]&!RU .ex& -]5ׅh8`jr ;^t,6KP oj2PGHf]rk2|yP=ECXșETY4i"V+Xѕg"@bȇ7E)$Ǒy^|N|X6i7UԸA/؊Xa*SxH,?1հ_Ed Eԕˀ=0֕ 1rOj-bLWtEewbeh~ +7|r$lSR :]ɻR˗К\%`PYXnneâPegϫH9&f;O#*̩tzmcɀcz.nkLbZ3nfKR&nےfvϝSu*$Nacsbl3NL+ٰ!Ξ2xͮy\M3S]@?Ԟ +.Sk >|+ ,#i5.%#tiHh b6kiR?i# E6aiݱ6v<YF-57ROO/T0=kImC]I@RS3zoq;iDrNstCOѴ45L\vKzjh~_ĞvӘ+A]m:E Kj L :[J;)S&S>{ZOȒO7uC7-tYDhO#a B8P ,aQۄ+uy"U)A`#g&1Ѩ] h >FNJ/:~*\ ՑqQl(Cf8jp2i}h BQI=eE +u  B]N؇@vn S@{:ܳ rE!%a˶^$r5"{W- -(⳥BʸuRLPVҟ߬a-O*n`ZuKlX"Kf=(~lnr|H*<=2.7=*u綥@'P#("R_jJ4el +iL&#z~әZSJC"JTayjl WBI|{ G<Jͨ 9=7=A"'t@_)DznklTTOX>ạZ%Yhz +k,}![K0/ձZ.geBoU\kûoí\]ca#X|=lGZyovp;(YVg!asmDqICcdc ypXʆl 1f{ +޲IYg+7{|6:,(mr3m{\am="tn=X^[X+˃ }8 mLfƵm ƯڙncmgQطE\ >]p-{fD=Qn:17laE,Fo^H8>;/.v[&f +O懮4AlyP'R);^! cMwWg=o\Wo +{#{gйw ƻmh}[$~P6𛗌Bƙ$v\k3bX|[6 Adx[$LA5ט S- 7#uٮd-*Y`nT6$۾)Cgqb4t&˫9J(CL)ad4Mmi'=9Z̨X< ߌdEOȐu ?ҝxB̓s NTU|\pm<]5/K!]G =C.7 +F `xPSDz{s9g,] (|:%ȦmvVW=n~zwE%Loc +>#annߜ6fyR5^6ܦT!gm9L9d36>ƞG"q)(q|.FXoq*}c4w~0ewSkkBI~y"P:"*?H}>_Lao8RtNŬNe\J7Um~s'2a!~̒#wMiH'QO |޵dmS~7+~X c{\c,@Uh'@m})϶jW D5~7bI 1b wԀD:zOUP@rxĎ.o(ζ' +?-7K@;ՠ| +Nڝ|G6KaH H<&>hHߠ>* :-C|/@,|޳1r }r54Њgy3줆Wy"7 :~xn6}b}%b@ +1g|8bKR1%GC1,{ˇ"`厼 (hUpNCC_p_އò|>}8vv8H:>Z(I]G,^X'ȆxZqy qdXm#]@!N&5Su [ޓ!oax^!в:B!n&3'(Ѹ +tzZ!^8] +_\w3ӆ +Bhq5/.dF +J0 XPވs6qHLg6il&8M%EZ#`%C/Y %>UfO,amOdQe}-q--qlt߹`[>l[OI=tLu45%ɤзʱ%#в18~΅`v>M'Y4ԕ7^aH3,%#GxЩ΄ sPbRcGMFgv3Donҹs1`۹NgtIït!3nD}Oau@v;Hp8:y0O꼞 M0RA[,ۮ@z}磰f[=Oı*CSKV@;4vV xk +`W ">vNBxr綈yj~3Z0s_qi>)dQO7 uw\;ĉ_ LU{;H RqSq9wuB]ai<*? 5jr@k yv;UD)3Oٗ&Bd2OOKK1߯XC3t>r N dH|!|a/~j 3w}@On`WD +!cxN075lWG +l܁9:1&w^% `Y[F|2v͞`gc@W;#L'X$':ҏK^~H۷ψE+1=cLx\~.C+O^5QE1Dxe;wUGIz_rhx~ZtGÿ4=yIU_bm)sZ]S iOP!u+osWW pp;!Ϻ/|0adS'ZPRCwdG"@r#`^P# @І9|bW +heksG+>|([ؚPL %@>'(qO +3@ *T g$ hS}q `MjPpB#j7lÀ! P@\e$,5¥O(P + +H B,] H!} q >@T1*Q!L\ o 0S"i:,$SA8Kw ca6u`$g Ո댎ڰRe-1D7N¦-b(XèMIygsV+n?sAI2o);I.]:H?'QGF@oXn;BZN']oS spYhݐ{&"L2Vjv^ʂB6Ӂ# b=>`aWյ\%`3`ZƐgBWНٶ9D)1ﲙd9:mxT[^ + +!\P& l a1B +tv\ke9ij՗hW |-(a7k^:j*躰S?JVpEGؼtD C4fehs4⬑\*ƕ #M:kLæ ׾N9P%`E˶7W2{ɀDMx>Yq,qByykxؑ{2/bbR]dzw>e0wF@V@;6_Al~eJ%(B j@5w1}dQV gSHN{>j:AZFJ`H(5G7k Ĺv]5K+E +6:^%)&6٢C`kAJsM7v.H߸%|cf#uGfٍ yjq DQj[tirW! A A\˘5YYUZ *ԗ2]aDebpT j9O=o✎NCT.eX H%Y2NG(ֳ\0@4aL%=ܙ [ ld 4i?2rv Vkfª%:O)b[=IHEb 1U\;'Hr"@:H$6')wf3ܴȥwB謕9Y礒sM ȗ +)cbS!W_x ] 1Uؼ0&XAgЅNȐEdTVr"5T@LLsgl6X‡b=5o+?m26%"~]ґ.bvp-б鷙$ЬJ#g^nj,7$ttL+;C@FiU,;^.I0 +X 94NNr ~hPei*>2\eh1Uc8 Qliݪd?TK4,0x"45޺-5*58A l;@lG?v!4)°+՝A1N +gcU]Ѧ5$Dp*˚5L9\uk+h`AsRn=Y`R{lYF]Psqs1x<&ٮ ,q:y0pN»2 +ߛ3X5\/c6{7ߴ:I8{xwfy{;MoO\lLv{iݸ׋ݽlAdzAGy^<uQAgWwMg{wmgWw]q;؇3x1., lE#S1f<0/ )]^RNx Jx6)_빵rh-^❀ e_pNhb(WPx)rsaAɼZP03/FdjjBXǂb«PT +`_YEYWVI;%,UZlF X >4; iԝ,I`\ 3Jg<{\~Zk[=V'jλ6H+ioN/q_nOč)غ\:Xl;{뭝pڷ^:cv_ V9;ݫyVns?=zsuV_{Q >1>]ۏ3~tKb fNn1}>}/zOz~6牱06T sOdA#2}8d̋rn0̃qqAd.ZTO75*&Z%Lxل GFcMd'V<7XP23קjig\1#F6 Lhbʍ ?25 ±A\FHcKP1b Bp/2'r('@vO -sC+qM. =t`f^8}3Yʇ& S=56ZcdFfhMEሧVb'S8R:("dCpyb#i9"F#$qgTđ"PuIzHK%]yb#U+tVtGO mŤC~`9 JGt0&2t*iФ#1,!@7IPEf25nWVCWBjj_M`)'<Lx^BZJ F6a E#P5jfd*ڊE2$3 A}Ⱦ2FwP2X*6Ryd(˳xb ˇ#>v&rD*cRJx($HhD\"D7~褨rCAHNX'R 82v' qHxE4؉"G6&}7elS`R@ +2lЁ. 0i!ig\Y#Ѝ4"8y@ .F("<`"K\DՑ +!GP9W16 ҄i$48(Azhl;5;N) S:HG@CBR"I‚g9$M;$R nl WH>6UR8BAvdj7/4 gf}0D02Vb| F= ^X;n#v0fO%44!Et0S'4Jcn)r(g #LFtB M>%Ce3J3 ,lMՔNƊqH/%,~URĠCpnęGnVh3炢,*_ +l唳\ 5SCZPHH@4iψRc9DdHdD$IA +EuA(ѻ44Qp$[bōˤrӿ(C@fup^b} 9 oUt(jP2EIxGR0]l9` ]ŕC,Bû@ϴm'nwC/f0z=3:%Pb@uS%򡂤Vn)3g&' +)R碨GDfݖFylŴ\:[lh' e;ЮsW`N Y4RM# +D +Ĉ`ڹ…Ӽb #P'; |#"ϸ%j?v&Y)5 G},dts?xsmϻ@x½'-k<ތ׎qrjN?w[eԆ|h3/ yR`k/tDZ1渚XK\F9PgX_8UF@+[[lJA3c67}7|6_Is9FDBV`Ӻml q7=6]nrK v>9o \D/Ano +<)>sqv?|X8aEGV"CMPMX@5yG<=3#uwtWwfuW!Rv(7?2lVWK4{&fƁnJ\C*Q/H1f_^6ѼN3 Ƅ2\Q0ޱ?n9iЅuU`EHyLn__,,JFTWT +>ʔekhVGt,\7sIq=HAvO>ĆBv͋WG@jLHpQ-l!xܠ 4-(ଢ଼<'auPZ{P 7;~L1! 0A˄X5U-?@6ʂec26v& 6Sw0.G2 ØB31j<ʻ (0:>iɶXp ~DyWB_5m]^,g2D +u+b*mxa ٵ["|B̲>w;qB>/~j*6]*mGN  +G +xGAIw$ˢģNPf ik(A? Vp;JҤiO"-:J9dM?7.n/gBXgQ'0<{b 5X4V2[#㫫 S"`> ;LXǂ:Փ`-U!"ԕ|*haIІ匢)RЋ"} YtK~@|Ő~v Z@?!:X(v#O}k`2ma'g s23yyPVv. /~`,G~3^ER_>~c}5 IUtӡV-9,!L2U1|QTm&2-0qqA "ԧ +^4Y(oF!'RE%S+7l8ap+r @mQ`l + 73vM|HȊ+20RVmX,1՝B5!~OlpElA(oqkg҂g^qʨrЍoJb}e\7J5xt,6+.Rdr" Yu񦺧GQ;uPs%$?ցfY?Qa#7="f j$,fNVMɊVo*m後'=&ծ ?e#a'rC~XWDao@vX#04()O4nnN[>DFŞhÛL\6 u_ 5Q^@'2uDŧQjh71q]{2) D wV5y9|J6e;mU3BH{9ih-^O#3]0,(#\MG\״F +],"hfr \pD +05~bpP>f@Nw"bCXa_M?T4"Dj?Nx :5[fH7,hi_bg:JvB8L +" G8 gy6CR_a Su򆰢mX))}N iI̖~N2N$?674q}&UDn=hO.$U貼0C5ŬfbB+f斃WmG  /OR5d 1TM-";;B \4ލ c-aFSh y;sr!o cA7W84[,(!K4%y {5 +r7S0-l_w Jhfcg F4SPS D3a RJ|r$N40,4]+$@ηd.R 2:Hr|i'QIdD h|;TLK\m'CEEaXDf[Sa@6}$|^hf6L2 ڌUJCgdI=SE\bT#ގ /Fb1pB<4t w?ۭ&C$ SCҞ!IQJ0|MI; 1Qs;&䗼n=PǨQ0yEmgs*Ŭ  C) +xO(}S(޻C b89 S>ZI׏_x@±23 +:#F(<;;eJ0118ݿO8C1Gn(Ǖևh>9?4HR9.)5DAw%Q`Er'{idؙwXf! @ @ԋh4”OװZTfj;]璾JTfX0jA(y + U_ͩO g Ba +63d '}TȽXmv7 &d,4M,##a_f+ +Rȓ+Vk+R2mP;?Hճ<\*N]H@:9]A-qAUxg?yY)ak!ti[(8f׆N9ї:GHΖ=@.\1-?>{[s +}Q&%.BPv(>h<$bA/0[U'27,hOy|="=l1Uf  4N c$U6`t5fEY`y-nAm; m.@J?Lwkۦ%2Rvjmn6ˆ̯EWL= +3RI>q-!?UZo 7\ /W=XOj}Lt)sW2d/9}L489LV y0v7~}~`O|A3d +IV:{1 +qeW k@PհZu_ԚgjAe?;A2n"{EʿT)-#`$>o&ԫ Yr8r1슴}Vv8UgY"{ v[^"3qM 9= Af0yKui||+3č[fdI MI$Ax6ƛ =\Ď/_(q>W9zJ A ӛ E;ʑԳ(Y q#jǁoYeaid.L"J۸L?HOzYzN!'@#O"$}2?ɘKo?^?Χ'FMYeU'ZE?ʑԓ5=PS_O~4\{$ pMp#(髡ͬ¡eVfǬ>{ +gϤr ғ%U߅J(J8 c->/oQ2pf8;Vr E˶9{=9ؔC]G.f9|WHy5aR_w9{fv3!̝97fdN]='niv[mv2+I?Ea~=Z%CLk#~ל%Rgv5$_fXy+LP-ԍQ\V-־AqcWeֳ Ui w 4{C'&CP7GI'EOy-ڣIK+ Dux%~/?7f8j!^M_d{.%9 v[wIĠ~9D aoGAWJOI~/SCK9zjw=u+G՟r4)F~ +?L9q;FA}uxIװFJ:#[O)#=>u߭5;XUӸC +׭-V3ê~+,;2lqz\vv〖}ċ2lY5w*"O}ܯion9qn[*X[qdFJlW4:|%1th]*ֱ0VUî൐ Hn5?\ +.fYFQvVPg(ulq?I~٪!OU]zٔeT"9fMq=Rի M:0)p˰y%O cjpQcj`i$jM԰Tv(zXZ ^)CF15es᧿,-k˪B?o=J:SmGIo)IG DI`tLv5[kâ.;m[Ӭ:ȨDo22O[IG;–f9~ω&rtC!MDsBJ!޶}S5ыl>~4U<(I|VFn-app 1hzt1ϯ4sJϨ_ׁ۪Эy1B5w/oæ?X[Ȝ9-RBeg^V~ RWSӾDx*R/L*Hϰaש YK B"U1 +O\ċ5o%ƶ.OԿ#*c6$C;2[(FT85:'9{ 炖ֲg/z]v=uxmK(G>oGPr `NLJ,v=~xLue_V_#\ljqljl:,bBpǭDw #ߺo.iX=2(,y+DVєN )zEI;˨#7;[8;Oc Xqt9&ԿDi)1B pVxA.2v&>/K A !XAؾ4aim!̜x;\Eѭ6ѵH+TB",V9.μJ;UϤE*Y8}nE٭~6X{M}{j&z9%n*6p9[=ͭL9s@M9k(;%ᴮq,Ibt/菳9V{E3haÍlm[e|$*L bGwMO~yr[қ A E+ "M3!h.!CxȨҶoe!39^07_F%Q҄#b,2^65rrLzĻ70~[Ď^33^?1ҵ,Ǧn"K;m}tLT3,ӶnRčtgc9lߤ1mSEHh ^I2TM#~"1' zgP kfrc<й +2ȱJ;.)IRbd"XeE='n~:Ď7ִŏ"GzeWAy5.K){FgDH[%_d֠E ["`bJr"f7!z[Nbתa̯fǬ9fuZcv1;7fΪDl*(>*Fnu,$@;Vf\X 9y x<.4%i:O =bG$U? <,u@ %.61;IY 4"dhvz׳78LB^R!.ٓcU mTwa$@'АUT`hQ_4󻘾=³!\ I6&Ʃ{2q6j$b7K} +,]T _?B_ϲDYڶ ן5zYUXZ!;<6[<#)"elli*24*;x#535.rgv*JU.>x3+TDNn )O (`7vPA* U Y=S%gQEzu[ϲ!Oqeo7cnUٵ92x#~2]jv,ͮٽ;[nWtgFoA3Z!Q9IS=vN (U* 0Uxt(i@Ӗ0U}o0C0!.sUicNo=KWhf{f5oᚇIUͨ_L  #c>R="fnZOQv={ӹ /\XbEjG޵j=Vv>8!X{Mܭf*]v1wK>)0pϪI^GPrmV4M;mध}1:*HiCzFe./ bFFz%Wƚ-? KOњ%kM +LVM(BP:~Bt 7:RϢ9'8eP]_f%f7;?v(CI$Q/NٯE }"$m42۾uwY~WC;{%f=veN-kE[hApU,NYCF\b* ,lޥ/aL =8͈ &xڑi;!88Ez) ӵp14,(BQҕ2iVƜfTBZ̫ y(~]1H +V7ɐsn!'rVpϬRaݟC̐U SaI2fVQ4t095{ &=.\F0ewij<$ xhG4qң A=@ ,!`h&EVM'}Y:~< ӔvAsz3~<$ꏑ坌6EW -do|L,X|-Z Y["mpY,Q4@;ah(}x򕤪?!r7x%b%xztرF/]z3i]$f19\UEI~ +? ++0(ÞB<υ>#9ٕ+F\Q{$wa( Cg&d"ۣM{lZ6y&F~7 $gapՐ'6]Pܪwv708eǰ9ͤvx v(ب 29</Cx@ќB3xD@Fi.LZA1!βdMAzvHiP ?dܤ_̟aK+O&G=x@ҥ0 jWbdpx=n\} $@6LĽEz٭w ֣S?JiJ/ +Y#jD05~%cNMIx~6nŊoׂQ*S9z w>bTOI4[KT l`r +=#CV@VIvӧMseicjt ~:(jOWZ/s^G/NYuYz/[_k7pm_+*UDc%svFY +Щ{Î"6| +h ltv7x:-.f/&juՎQI1"_H6IǦ?b@~/PپKOÇ^bkQr;ʨ1B!0B"(C B!"w{:Dag,϶c?ra&8.&>&pI mNh@O0~S( p!%L'nd}{1=8LuU97`tzGdg7%a*gƧHz%v>jb4 S\fcdϺK&Hm0Ƨ'Ξd<̿ Y30=_~B^gjp8.QKCw@S^ut~<59><ξ8sӳj˷̆o,cWn|P|S~K]7[K_$RV`CȍŒmB^fG~]U\/Z=`g]`ї;>$ F_3p.&7ǧO\W'+7?Y3OɼGq@[lwĿ;\O*PCPzWLm@9p/|߳QY.}Gm/*2]JE\L˖/0a- jR@춲ج aL =:Y)MF)A __L=g`kD/i{`y-}M*&/_.1mTCX.qHKM h%IشLImgt/p2%h 6C@9@=<<0eT~9eM8k(7||m07Q4mhj'Dy sl>0 mV $5ω\<>~ K ^ן[Dl |;ʛ!7auc;8dk8N5&x160 .yE:PEW{cШh0utMXޘ5zaU'̓2aR{BZo残uXyG-xO%R?;`d%VުLxXnb^n~8'h pҮ{ qS8֏T&f2=qi)|Q3BY+&IKj ]NHzomY8n})@ +Krƞf[4W <:0:YMsVve;x߬mF@i- +6nXeⲼUH>ӊG5ܟq 2^O&+p09 C<=^7[Lr}\ZWT$#0B! ID'}@%϶4 {ǘ`z3*2* iQV E]ULa50}Fkk eQ0Q5}dOj؜U0q`܃84% +Ƕ}ӄ9մGu=^Cnitrީ&H0jQh 8^ 'in7:<quZYlFۯ G8."NKǨE SQVf ea̤w^t-J@3#AQRsU@zj4R`Ɉv0D+X"+0T6+g`w4.{ 6` 4WF_ID׏ mE5!( HUˤ،0(6 F7k:Lڔq)ͣANN|&=>z4-(|n Ҝ@I a+I!1,Ͼc.⶗p2Fw>񌳘l7dOl\2,f*ob Ox{q2NvΉT.3B6Lfg|=N7d/sko@gh/ KFhˀFnkҬZKIhl' [wmx\:-%H^@e$;J"/*2@6$ 삨">;2hlAևJmhM`m ]Y}0 PFΜ<ևf9i}-&YT &ͼUaڢ Ĵ +xI'`n?E5o8=r< ,`w>h=iL^wQ%N!' o)o;uhEdwfsӺM`Yf;u'"; yb0BkQya%xW`) +hPf<{n(<9"q4!9ttxk^I U(&eX?$cҤ@?J{a+ǰUq&_?y' ~!Mf+A5|aܖ% FU({2+ Z +aP>ƌ~P$u. wW~D g!=i}TH2# FDc4+`2`Ѽ@ _b4-u0_l[V/pX@Zض[@u\mCIrZ^HPśixvsj2],~c 8n[H\!)u{`9]w$#ƼM<.ڕEhl/x7XiƔ7M']P42d[oˎ8T(x3?͢3pLyf5~^?0F Ɓ'z˸[H-$Ad4?=O&9dc_@u}d4Vs&U_J2+ ݪ'k :mM1 *tZ:a{Ӫcآ>%E\A@ 4' ;E;JJb4^ ĴKjbt3x2 +IIB=n`u!hxF^&@;D4>/ )Oےmxrcخf71#:01ʢ>$_ʣX<Ҡ0ImeW1wMpq"~ 68=/n =my{h_NVɶE}Msw&FCis}j[$ͺ 3O#70$mo˻b_D~h~FI]Pm"t)\&?׿:m}Ǔn:H +&䌇wxjPe`y(PB$cE 9Ƞ"zp8lF,/U~ebr'K:ɛN%+Hǝmm'O,v Ze.,7rڷn.*`Q6I6]>ybN!M"}wRÞcKXFNeocWinMbR*.%r\@^E(P/Nr&UJnJeȑH!;(>YEHry"' 6ɳFlAq<ᮣn8Y?"BXͼнDTq&,a'g5LO +W])I#>.S6qG\,Ai2SՏJ{HNV$[^ZVK+:+qblӕ"*P !; kvۇ)-$`q<-K֑bBw /{Uzw'_=տβz U¿d%;EH|̖OD4䃃tI ،;\zjk-3yt+#[j7X@BxsNrE1ꊔ +Ji.r`<@!HXTM"PD:ygE?Zk-sW=C= +hhxm|;G&?7V K:7P=TŻݼc/;A<žt@sѰ߁k:ݍ3E#I'Hœm36;Jx&ol "tET½Ky?ˠJ(sBI O_蔛wsi/"mFt{QI ?SswLc<7-ݸ6O#Uj +ҐvUs(ҹ?s ͣkqjs +q9@xιZGf\3gh%m*ft2Ҵc/iJl53^n-yE%Wi3]O8Upϼ CA̅ə6+9<&4?A; +iMCN +dO22f n8^QemST֦>MyFn6p2 ]j6Q7T`7j1+u7 +*Q^X]ژ[5H-ӵ"C~tQ@+TQd RfJ\{r Zw/QTZCV ߨ|.u\>?tVDEpDNJlդy<*ܶ*mXlV[*LJ)ML12r$JZgcզ WR֖yV»}+$ErK,% +!ώ M0m$tf*IP%ժ(6u%WFZH/Uz )i` @sDMyZ&.*kڥS}C ;\4K5Z5 +Wr] qu)4s#4Yi/mL.ذ{ܬL'ۛXgXݚ)6266>*}MYi6.JxH[YY\Tm +&z&5W%PҨ#C ߬smq *p>4e?1RCDt&HNl:!)Ա+|6M)tAfaeRTVQɟ:[VhAS4,hUGe%2h鳱z'X@[$c/2/N]ZZI BS4VZks {fս U"U]\ֻCoҽAk$cF1HKerhJ%*YLB!YT/# ݏEGՋ!(s?<1$،EYRSC}>'4>1hT"mvqn.cܨv*>4NKN;9sїҗP,gm ?vr"PCxlkd3}󀭨A !LHA:" '5kmͨu gJ61h9sPgHe̼*3傐%>L BqmzfI9, ^=0dؑ"%=א̺ +v8|o*r3vf̥'e<5&VϽk]?"?*m{l>r_A` GĽ[nrGoY;ܰͰ +fW,*vֆ֡`ή)Eto3S7/tail~C_Q41U(8U}Fؿyyҏ'!ҧbκȊW ~|tte łofIhd>6b3FIbhKFG 4ob6S|A2UdL܎MKuym:\Ah<ʺJ-fdFAi[NvvD{:6Jg. ^&]ZN9 Ó }DTo4[%@@'a»Ltn^̲IJ}ѷ| |\e4IzVO +ѥp |ABi979CʚW_ރAo[VlYEc13f\:oQNr~/ ) {XĢen L=3R"?&`Ny[7 Zp"2VB 3=w3)g8Q|Sqh5Y#CרK-|JJEdY@O2&"z$kdg<)RO@oM5mS)Br+crs{6"EMG(+ . ,mqAXd]\}>5#*` JE` g t:' +,+~H! ěCdp<)w3Ai9#qEuw O$]wnmi1Y3M)B1RD .F隙&>Dyq{ +:,4I* sp K&d7E["9 |j^JA^IEo`7=C]B#`ufd&c^U ox;2a"pccvL#''ad:n & w鯢(Dµ#Jȍr>=*7[:zD@dM3gUyj>okyU}^~#';N6 \%'pe8)G ?u1r5B1ש"f4K6=!nkzAK<)=ՏOy 4=!SLG( +נ#p~ vo^>߅S, 2ѳp˜me8L oNQ˭Srlo|NV4D^JL ut^Nwj/֩3R(afv>J֜_r}Tz|Q\vkiSz;ˆ\C{<˓^|N#MmbFI8uZUR@AE1T^!% $=a9YCɓrgsD/.cxwi򤜙ps|G +^9mD4+Ŋk^QsIz~˼|K< /23o9TDF#J'^ m2 NÔ;u{g6L9bs3Q`xQ9̸ b~^߅ԯΫe/\uHn=KN[j4H[=70c^ +`5yh$3`kLsBzY6cOb ;StثDEM:+(wSbC@e.r<=?7Շ1- غ]e0ߋ(7;ۼN-ܜZ>DF$xZ >9)i=q1;;|#s-kc}F7% <Pac~%o>e0_}S_>|ϼͿ|S1_6k( + =le8d ybtvvlC/H*؀LP@} e!| *oɘW" ס3M??9CKS +z @?AW))atT ށP9S(w@832 e +=<ِ8DtXLmWÇ[M xQTOCPqfFT}9x +^D_aJYJC}0eS* RWarD~|׼P̚ U |,{ìBvR\^45qPHHqI['UH]ȆL: +T!jMu҃5( + GӚ>+I'?' ="Gb?IF5>d;-Ch R1Ó;3$5f?$f<4 3XXI_yQNooc(E/rЕL@@"—*˰*z7 +>\㮔m_Z$g衮AT6?4}"j|G0V{`\*.4g;=ǶNbB.-s0x81qLBosiF^pm<^v{; +$Y" +z>'\@TW@y՞/^z}*QyT,1*zp'g/'ѿo3k_FMtezI$m#ĉN%+;,u#S;|EJ@]gsBnыX"p Wg z >oy7>l~AP +:9.OJ:[1$4 GiFFlŴ81P(yc$2cG8F7 4Gf3[a}KkЛ=5(WB*4hv~&聨>Ccy*UG/LHYѱl_Gn7b!1Ǚn-fV'k4s;sw=u멛N/'k5}Y+Aw7֞&w/,*2  !i;!--,G An-ЍX%Z,Ui"Z(.ׇ(jξ,-\ZTZ?2]#[0gL΍]u Qkz )&ٸt>"VvbvVQ6t*~H%$jrCb ˿TWύ:0Dí YVgl@Už-B]0 "E$^ y=f=k#*Rӂ@eGSvřR3-1~dvta*bE%XSv|[rXXQno[-/NEkWzqrZx1'G5= +0F\YE ׊cUS?MˮzV !pKCGYzeUd` »q9փ#/yj< eݥ')zN+{)sj+@WTp&E 7Q3m[xI2)'ZCVB$:l{ ˊ(L@0##v^RnuON%,<aP]ED^MV?nd.뭛^\rK%ڎ%7L*][5Š΄s/U0s~)st3^OL1zjZXoaGA>X1WdIGܝD:$$Msh+@bbؾUW@E] pEݻҝ +]W] /BGv,+Z1Yy2)e!^tCV$ՅYL-[%z[c +V^q\F>S&xy@&UT^%ec] }e/k%ʞ+8sm0EzxKAɾa@?^ 0̖aY]a̦EĨ%rC l,Z`ʇJ@ b07%U +8^`}Ճaς5Pc-g_+\Hb5O2B:::QmhSڰC`KYk3$bfF %qf2Z"2ӽ%tS,S.h1f15k;޶XkÂ%> j,Wi}gfUu+rta˰EvԛKc/ OOl?t3Y1ssBJZ]t! Jj~Ē%1"^ϸ.K@ +K N}ڷn-qFw"|g}\W9t/ GV_:l !en{K(?]Nbx#W1o!?0Hv5y, ӻ=_9'"*PB8sai~E̽, wln}+I>LJ`hΆi~a>sn +5&e8:9A!uAcqp(Z:vh>^>jh: ^c-L)I)CT\~h`56ƚ"7`L mB VgyW"8G(1[@QnvPi7Di?8VծV/30T[> f>PTXX8LnNES[J8aJ?Zi +ZhTy+UGs xMց;qlCRor T6.#$z-u)X +5!%{9 +K5EquT$8 P wKh$֪Yu٧ J>MJQ`a(X:L62؊wb(^UY4˙JY%Iv&.XvjfWNBAmRu +`ĎJ !5eNK0i.]XI:ÛAޚ=>r]6C1UQdܱ͜II?)M$)UŻJ|~aa"1 \XK" &Uj([UyVMXx2mBa#s#@*X1e-OX 0{N,̕r X,Mn$_`u +zM.i&$H_{ +F +)ӏ7o ,~Y0k]>Ys2rbcY<)ICį^/laX5.[Za: d>Vr nZ +-DTaZVͬq!Qz gZ͔4<5Үwo!'i?< S;B(f)t ER2beJyqtr^¸^@1pi /aNprE3iģ)H᫲pFtt,!$oH3#5WXBeߏ@†b@SV<9*2";r2Ф~yW˵\Y1wjXS% ;/4},jȸyG[q(/U ͂@`ڨo#&ny: V]YUɬqqqF9EIO~xaĽP|\)o+,"hf)x?\]mBhxeƸ1qa^i׍( p r.;.9FtNal\ CUR&3c'G= A῞ذ-@( +j/K^]MňvzP@m.g$JsQ)g Nt¶~vC} &%s>J%@z_A_YwYbdȺ揍wKCFy2}q zAzj 'UPi(SATk9XA[H-B 4R^hsroLIdC[iLL,g!QaF(F*l#Q pNgnwc> +>n\'"oݣAnN*楹ŷT&n4'uP;mh90؜um1ybZҕmLm Je'5SG\Y(N ^哾JWiUJ=IMzHHmE.IkWC{HidO-4_6hώbTL2k9 }ѴWL_Y gn?oߨp9tZkJU Yfq,,.Uc8o% q>/UR͘Ǚ BL"9Ke餣|\&/bLhH=cY8eo ?GݧȠZEcs9kT^x%sڳ ZQH+gbƐz0jupJ؁2ЍK+~-,ꊦװ}ϯoX@og3$u_3ZVgyʊ{+ZB+cNv(xU['?DH:?:=QR>V8?SK)I%bYoTgDNW9@A4ơg9;bn;'Mvày?f˶ *Ed#Efw;yR<'a0,(HF fb:"sKQ|JDg1US $"`g_nc %4zH[8=XD(>鈣`WCW- /Ej#A;d$ sῚ闒l9t=hRJASv5Pc;aì3uf77Ewܚ-#'֯d_1 )|\B/pLJNJ + ++̍0ma[3Y,ˊd`z2pՄYlXlTm +Do_!]gIjtB_uhOR *XnUM@Q{Y9wS0f#2P]op8u~SD)O:jI'4/VsgZSA?{O JL ͯgfqXKƮLNJnSGvJ7&[ŹYZ׳\PB-c -U\l@V @5mAOi '~ĺ.7`|U&\'w 5[ 3Ñ汼5XMNaCT[F>!>nM^mֽty.]uIq۸4}kKx٫;Y-.޴4ũPp8)F81nvn]z厫F[]X:t +?N ,bI>zG1W@5\TP+ZMN2e; p#`cx~:Yz.i ]U˻@XϺ3E pZ!l~=OOQEL}[ w*9C%hlrwq^6ߺt_%sQ׹pAG-E]Ϻfk m\Q C*ű^|7Jq5Z|Ew&|C8/s'6qW4[άW;yc/g$6m? s[K+Yym]ʾ|K{CH}G:Awo'1r Ey5}n:[83dc;)ќIa\q\<Ψ#>@JhjܭChg=wwh\+xJH(i#2scs\\1r&fɺ;RQ!W4~k}fOM9w<h7F Ln(7f/vnu>:uj_ҩ1TI/N9X+';;tfXw 4hT:&rHY2tam<,u.dV `m!S0+#04qmԔDM9IʹCY Yə*rPltu<\IM gV +BIoXcnc +zlNj0 )* +g+ +*0m +Q`?$4aܾ_T]>bd(|2=4_5?ĢCU1qa4[ʩi\ PRzމFLM2,4юQ~"@݂)&DH ,F)M8EU]ނgoL^+_־+Y׼Hw'n]f(~'tT&!ơYW52fon^Zgkp>'17@?_gAyv߇}y˯Ag<]}TZX{蓒DJG&{O9hW +BI/&F[>Rjb:swq ƌ@ii6<+e"ʁ'?_HK痒k +O)ɉzV-z eԃP ryE^Upp{ i3RBJ1%*"ZF2i3aGf<.%2C#QW) +P +TKC(Żu +E;8W<}u$-asQVs[k[AUq*K NahGe\3kF_%mJ:`͜+wGY'R~G{b@)u@D D)Mdn|WQBnO= hD~t&9WaxWQɆbܫi7o̻dclm *je LZB:q'# L d[3wkAc݃Ƚ yv"Ny;w`X(y o$S:5Hj4vH@掭IѤ|z$TƟBv Ҽg`0ξye:\Yv1n|!ct"f 0PXu +.T ~OW6gL:Qn('{8ouRtBiEjTN!eLnjKxʌ.@8 +39;jf@ck&> :V5i 'RG7`LA&> UgLt)3aVhAXcHh;t=FNaL zM[66_ø22[XWĵ`輶?{= f!UV+<ŗ*Ka;qZCe(>M/P>vv)`!bb+)0٫Xg'7jHȝK_ʼtLauiHe=ŚXJ.N,|(yHK}xeO#^IbRO2]%!=gQA8_9\SI6,lu5_tGUjm·-2vdݏ +;P^@|6_}!i4{kumMg1"~-Қ*ɦ_!lP ,wlO. Y/$(ǽ0m"Y3值) `ğ ؽPJȍ h.^̹\sRB|^"K>o +5Zf3{gG[]uo0 ἏgwE+IS + r:TW/[mpP_=Dǵ|gG>{Dǿ5d$ p,r,1':eCfv%^]LXDş8(+ƸN36y$4!S3+@&&3ZX;r TS]J $~* [ +x(u&n 7ʯUlzehvhT X"TUB_@:Ah!d;t7$o%n1^=T 8?,~%jK5D }=ѕw v*eGaX;pcb;=@OL(&ZVB}τrxKꨠaf+)=6U1303v/\o7 ĺI>G$ϡ^E+>xܘ72OçVohK!ă@Jhܝ1p_[]MVVè+-s.})/ e>79lyD >_]hlv oZZWlS}VKO(3^a/1`9qP]`TG2#ڧq& )|qfcob7P3ګWn`'HsKڗl*.I0JS!xŊih:2vogg4M _VTXA5!t+ZXY@*‹z̫hX'w?j?BGg +¢w^ H/k5[{ēk5Dޠ2JQp,✭8oRq +j29PK$A7F:HE~!=Nd Wl#X';]j-l3@;quLXiO: Ϳ_Լ4A5f=dIL"4MIgN7o~_¢G yu]A7nޏލCCe̾;HE25nH=k6Svi +H7ƯFܫo>`]fàynY׬Saz82{Zw$5@%<ƺ33VTT6 v+歌&(Vm- [+h@ 30=hFҢȊDgJ !SXr[Xq(:r5owf{Y\[bwX/l]9fN,\OU|D%6o)l0V"D? 诘x~]t6n0l>2oX#@K UL2 }B'aèW|I1!"BF` u B"~`:e|O}4g[Ɵ9Ru~B8aVn=bp{Hgac?ش[$vXq>nӵDGg.?_KOGW}VÜّ- oUkVۓd Rujyeաfq&[)ezнP_5SS0AUUPPPvճ8UOR + XiIC.I=+2f'J7/pLC{Y%P,KS]^\YȴvC("x A {.@)wplyf'׌VzF0V`S} +Aw q' ׁ&!`5vy#7od?Bԃn<-f]A +ٕ.Bdd3ďXgdȶnuE$P,:\ +d;^h2GI2}Q|HDƻ|Pװ59j;oAG02'6L@vqqDqǐHҳ + qAkPZ?l<zy^->EJXǾMfqf"}BE>1{u]$$(#<4p| Cp'cI7P{'GZ/Y3=s8mE ITi+U,bĻ1H`(WJ$('XU5Xv +?5;:Î&L~?Bzv +v?'Zp mrDyu|k zY^8] vRfo֜y;C|͐9sgߧZU?Yp> S({eGpC`uJլDZgțۼ1} +3)=0"b`}ySVjA|Xv}W,b[ʖt/ 'C%&pa_: : MYƜ0 ><Îo)[n42SG:rR feu&oqn-OAVbdu(U⩈|ɋ hT%T) uEijMmb7L" M=uS,`RV襤L4ia]gGmܩ ɸz eB~:R/\,f\.y>K/]\)2DD*DE}j5mP[+v3 ۗ/"cм8OZMϗZװNmq* /"xyB|iނ]Zb?co +n!ǁ,."S(dk_]Ml״yYc.* 9W9"C4@1~"o`{rt}$z[}t@dVC/dqQj +>3uVg"):0DC@L/Ϡ!`C}_7$E2\K`yTn=ϞKop1U3.a~ ޝwO(ɛv"@/V4xr.VIAHs@!tڅw2Gc@, +ݺ2Ω++`A{Ud$D7iY"H?\ KĐ6kdO;&r(0=h:0@h 6Z~ yvsHZQswC|O4nkk"e_2ϞO@|YT0>Xw7M( 1@GK>ْny/ծ= ?zؓMV@8_1V8Ol@PxQA^:|Fo\zwڗf Me0"EPY]?u޵ΐۙtx_5\+v#Zoђ>uֺ',mȼq>2LrN +9h@-#csOr Ga_ANa&Ehap26AWdftyN.LƷgvezj*n)ne^zr<` ?`0e$>/[@*u'߲:ڋb9Ad7i5;aOoN/0W ml"dKѥwB%Ca{̝ @4m2Wh5{M::MיT֕ju N 9h x7 8,~AXcj11<6kf-, y sfG]}"['S7濓ְ1awEZ\/֌rϟT֛rwzYPvy[ʼxL5fҧlTTQ*W>Iۜ:vuY͖hKٗɣz =jMe0Si#I[_?zW@/Uewr 1L=8_oq*[]G/˙$9ɓ +f,Sxʍtgre ?l_iM8ʙ= ~|!yߝoX@l7EYA}a}ř%G<rNADA~ϾѠ﹣ڼ53N +$wC[kb4S1~${&hx& xҌ. [}͖tCd09 >h/ym!qk tSqF||7Aׇٲ`t:MX]R#99R G։QG7D~y40+ 2g^# +txcag +RhrCDI)0 S]*K,mȼJG@fjYQ;sO$awA"nI?f@El^k,5N (  F:rmr5G`qCQ!wOjݼaa'J?Ģ{ծT-䘓|EiHOg sgi[P{ vf ;>S=Y?*rít͌bq* /TF6?O %*0ZVnp;#|}"zOs螵 lE>܈Pu~ +8^.itQ{ bǕlpx_FH0y]WqV)`ƹgס$m7/wU*bYtrX;CJQE"(C#!!ZDP c h{(,>"lI_^'0`!_?|M)4וL3Sj]]$cJ^9 xMcƮ (1h;a< +8C';H~l~xYE-0aWI}_ϓ!](Gbu4O?7ɥ^{b. ]'b1#uU]ER1V|On.H+&/5NS\y$,p+4fHYߟ}ۍYsΜG˦*$g#B80מM_'S7#7-1G .rd\Oqj;ʂOk z+>p$\'绿Ia~,%~LQƝ ,xu|@p!aƜ qҪpWXO<~|gen?'x +%Y`i\%$zC0=?1TjlY}>YdJmW*p^qT'N4UHv!r-T7ׄamG1aRHǿ\0]ҚEsckAx_}Ϛgs=,n;Yܢ;`'m!0%n]خ+Pp,x~֡.)#)2 98sH  A$54L9F{#AIrV΁orilD!D!T + ]2ba835607-0a0d-4915-8cd6-cd630066148bf76d2877-1576-436d-aa37-9d7ffcc6762910 698.25237fe9c9df6-763b-4cfe-bfe2-c3b564d18d2e8b2ac81d-7cc4-4fb2-a47c-564e441bed5383.469812525379913. !"< +50 MXj'b89 +?8أM/ “]O6{m֐ 6*naw9fSA@=p6, Y +xJAg#nN`PXyssJrV#Fr=`D!?1b572d1e6-7cbe-4a7c-985c-5d0016ef15d37de2266b-47d9-4be2-8554-8f31c25c030f71.ml10SVGFilter +/ : +/XMLNode; (xmlnode-attribute/Arrachildre(140%nodevalu2 /Inttyp(hnam; ,ww-2xxAI_AbgeflachteKanteMitSch_1ididyySourcnnblurresul4stdDevi,1feGaussianBoffset2ddyyOspecOulighting-color:whitstyl5surface10pecularExponenConsta(-2000zz-5xx1yyPointLSing22operatoComposGraphickk3k4litPaikk11arithmetMergeNod/Def ;00xxAI_yyobject(turturbulencnumOctavenoStitchsTil0.0baseFrequencT4fractalNois4AI_Dehnen_radiudilaMorphology66Erodierer66GaußscherWeichzeichner77151Holzmaseruyynnredofloodblack; opacity:0.FloonnshadowCdiffu113azimu6elevDiD100133442211Grays0matriMO--CompBlurT1.CompXferFir(tab2 VFuncR.7 0 G1BmTransfCompAll41-5KühleBr41.nnnnbyynn0bsAyChannelSelecxDisplacementMapnnbb0 1nnb5freezefifrom0beg5dalwayrestartotononaccumulineacalcMreadditivNNanimc8cccccc8ccc1cccnnnnPixelspiel50 5R(remo 1;20 15;200 200; 15 20;1 11spliindefinrepeatDc2;20 20;11yellow;green;blue;indigo;violet;red;oran1181relyy3412yy688AI_Statis50.nnVerwirbelung853$)HHp( IcU<Ba0CB0 a(B(ep[J*ۑ#Jr7> o:ڠBU(G+AocUTቱ >ǓPTڢI׷B\$b㔛!^7OiSm}uv_zV %j+ݦڸ]00 A3F +QIH-Cҹb-2$G3 #g %0)ErW鄃o;@ŏp"B}T%uj۪3tYvGKtX5t r&Svb:9cΡh43_^*rP%*ZU#!*َ3FP>בHG?RV>ӸQn 4^I?'y\&梧d8N +\c& u*X">ݛ'BIxFRД!'|XEh2Gbw_pѪDL:gJ)3З꜄èr=umMr&5ѡvG6]|0b95TgE8U[SL"d& +12̢Pd>9X9D |(K윐>wq?egh èx'#Ȩ+H<:(ඛN 4nsʺaws`iBHƀh[ qe> / J|?~)Ge| 4G,>J,r(alOL?I,$UZX;&@(8W/ '"ُ.cB^uzȈXy\~4]C1pB{g_6W a"d[dJ sg3D" in)S`U{ xe ڧVOwH$[NfDϥ?Dmw]޺ + /Ԏqlw8}F^8d&?ߢ 7G#B{WJY*;WQ-Ȟ +\Rڞt>srŞ6f!m6W.c< \%{ܥs`gWמR'X]K^1֭v;|ٱ?kէb|5}h84ק 1 fc+gZkaOCk-8sT@3ѥ3q6juA6o!u6&peFIH"#)-~"*gKTcI"O@tc1٨< y&OR矻hC]ˉD`Id0I)Gl':mT"@e"R<- qTTE} +URȝpk[Y%#z%X*H` +UmF3()B0ҥXC^XKOZ!{9:lOA(U, 4(kUԆ#xEKA4} NbŴۨ@DP0I +jPDWL҅ +g/Bs jM٫XPdԭ&vJ>15XU%Te +h&Y'|jLrY='M]TI*%RwԾ-v:,xSi=Z~\lT9F^E +,̫ϟ׵/"_E\"4<4@=E/[B_ uQ?y۔GWW$~-񟐽+Ё͛5GΕyjޞ]7Nl z Bt-5=9#V!b38, pjow&AT/:BK8w +t}/| hkRuBƜH\d/}b) +I3?<>/ G4DGiZd~DV3J{o7)nrQxń^,dꊾ?٣1kJOrKlk)~#"A^F+x5^%?-0̍{Gٲ +)xvys³~0HGJr5N2xP`H=ko8&B0^ Fwf4D1 iںh2e +rۦÏgl2bY& Ҳ$W^joDݎr ?KQ!ma(NZc$0.r(T޶אnڝy=aeȊjzSEw/ NV+p"vб*]I&d& F4lKPF^*,Zez$QmMΚ^LXr+y`GHLo@1$G@JVG(?FRP"0*H݄7E4Aq|NtULor1([+>;/iqz0Ɗt(wǗsxELQǩ:tIXw^ڨ*LfPE2{KJ_ywy6i՜ahZ9hr0lT}4PΑ3rLQ/&@u kIÝlS݈g$C4/ke"Vt=N=7)ĨL<ܴ+VN8Vs3A +53w5pOE=Y2 +./TQ>.(UvXE7w!.՝с8[DDX*@G9v%xf#H ݓ[ cԜe #z'e属Nk 0|uѳtŤ8k gkCSBT0Z6U>ikDjf 4{" I .Ȭx} Y¨􆈼ɀ +]{&KR1+;dSQP΅R5DSs9ӏwSb*ȈI85+Vv)(dkU;_mVOOB|4\z ` 7LG=A]9Rs0I`+1aȱe/5ki A1Scja_ZqH4/f7_C%)2bW<چm>+lͨ8$3{l4hK71|R./W7aS(UF]8F_U_xKQ`(y3T5!^Uq5v#D>$ +1$v(ch8xSU8[f^Hg2 +ßR_a >+"g#!5frԩ +Y%]zLJ$[GTLmN`6xĕz, +axDB&Uw>;=^EG=y;ܱ\uAw5'}aq̥LU +"GGZ^ +M)<`kA`7A`I6BFIV6:#H)F)RJ-°GevV7m\EcKΰ/6%CWtwn SaШh4хt >ӛc.,i NDžºRB<$ HX8D@ebta{wzD # 5.Q%ga 6χHRj\,0wfr0 Tm֛Z#Gօ&L86LP VKKC@ɣ]-ە2n*H/2oӢ\*ޝ*:SE>meUfuET6kbp*Eq_+r#&ۢr|eDU7*femTW'NWM 2a^k7MI=!^nTTB9TYUJ8`Li,T(*0@ ج^9rpA:7mQ&Kƅ+6/'O^~{VU:Fbzȃh@.B]ם;*D- Gu0 ,P5eT %Tˇ*%TƩ^E}5o6G #G{w ) (<242 "Q024* HFyHLaa" 11ٝYj8osVs<-,p3.s `W㤹kfӈL6"ac0}"hS/QZ0&ֺk7Z.|.=gzBȗ/>& cʃ"&* + O1iiiv# iBt  E`@$A) OBlD#)턲5aw'@P, lx#=Pr#39:ʎwxii88 tuZ%i,`Pxy4 &,L/ ?Փ!2r?ss-}%L֨;%by{y籠͞k/=:'~WbEE|Tc?;{}O{;zM ;m3[o[]N$ )"CEI2!͋7ۼr/FnFajl1tL- '6L05EsFҝRҪM͆ P|;֙lYv iFQg;0 d 4UB +($*&~06,g,OTt6D-qlg'=ETi8&Ğ!0 PFiң5EF lNֲbfaew&4W;lJe;Txji}a*"8Njk9- ]O͑%&DOyyDv3ۢ +HXي)/;m7CA0JDNBDDŖ8rv"]R$yE aQI)_nIJMEŷ0+"lp`Ä/?-Cޙ~3e2\UK*ZBu[E,T`a + ?V.gg̬TUs0|T( AI 9b<#Y8 ,iq8y4y<͝>G|Jiq{G#"LE3$;, Y88 G8$&IdRh<*0aaf %zRVFɹ0@&<8(Lp L@*E`f4 <0%C +|hT*4   FB$Bypa@IcH!aaCAp#@M($0Z\0aa *a%}q@0 +#2+x,0" #RP $ەj@pXV*paRqqA@9* +#a"z<(&  24*&,p`D&:, *VaP9& C9(0  +)7S?$vo$h]X/JӱQyyyyyyyyy|_m1/mu6,+&uDQ-e5OĦg0 Fc,)25Oݨm'*OٶmS3-75Q?D+=c'}^\ + 6`PGB1* /6X9({b; ckn^&&<Qaձ=DJp"ɭꭞBl~w'G۹39#УBy8 쿯xؘj --QZ*SN0l Dlj[Yyh/mF$ $- @#P( e1@mj<\<JrDa0c  RȦ*>`q㔆m#0{P qM,пBbUwqׁdZS2GEbq(Pذa2sZDc_6LNr3 +OeHrT',rѥt2ԅؼ- ȧ(>*~ᔶ泳n94*<Z"К~R +"'T,غyX =oȃ: &4tsXz@̤]VˑjͅA@{4Qm($ĒB¡od汗&zD +ڇZ` AV`{V'9 fq%^WPpxu|8]ZϠP% +vTq-uu !`^lxphnX.B.Wk)FAȹûrܣD:–hIfLɈ{D:#`9v +xd%)J@L|F-[ +,@"'2A# rpY& +>ˇZ<:ë13WXدWm h7ޓI;W1M7 +WHօg3z.1Ԃ AEZ~!WjDF UkQ @45f +叮?};>>#HO ؒ;h@ عO4#"9o cQǕވ:≂Ԧ)ϻe1vw9棅'+(7n!_m+oHb=uT/2hyU )x#Hҧ P y4JV< +QجՌ1(prRʐ_)LFE?~||'VW2w4 +}PA1\)dN,K={ HWWga9Iߏ _MuiC$ZUbr1P4X1|}MфKsobjwRjvX>B'>CQ:煥 sf@uΘF̌NWd<R=C:.uUL)U$jl0G*,951qZ +{jzI1DB"|X/:_D1Q'UQ=i2/ BkbO>;j {׷9H[e]|!p Fh(y!l.[ ڗ|[Q3Za&LLc0Vћj/*mop\Hxqir0OU䶉%oH!㖠OYŝ(G!Έ-z8˪)N=h56p{!C)~8:S+vXӴ1>,@g@ 0)VvL D4w5U^p8&0X#PȮ  1Lհ{^S|m|4Y;;@`JÌ\*-x327?ˌOr +Tk<@am b|Vf@2Vw@/ՏO49VKbaBI1ÔM<0$ gљoIʱNݹ-Ixlcp94̒Ru.l"$驎/IM/90O |al}Is0&;Qo^N9ͯfALN}[&X#ŋkhmd ׅЅ $}ܢpqH~i3 C"g%/Ut>vTzq>FM*ݝ͈̉ (]̖xZ w*`x-0* + +bTM@, !쀁c\  t,# kL oO<1|DEqk6r(O6@ԅRꄓMm]h4GV!v:k4hhFp# +84|n +1?Ѕ:(6%+9zePNMmSgTMH QW+FV0 .6ռi/%G<rtNBr")8: TM4 _NWPrIO-&Ȳnm%Rh?ϏRm?%9Y pX,OQk*L\ 0A˧M$$9Q ͏x 8F&d(K;e-Ksb?FBߴndEM O k&ۙ@i!ޟZʆL(P7: +}4OPȺ0:O44E|#IeNEPN9a |w@k%J= Ez+ddΚeGj +'| +Ӥfx dX* M^A 㟞p(P i![.L'rIbd!Flg75d \oKEz'7 8=֡|-+30+ӱ௠,G 0`_^"pN+ӟ7 Tplw܋͘&C4ĊVmŖ>3^a $wp'3zI`&!*D94o]ۼ2*hd,ڕ2[F]=h8UKڅP&w$Z%2!DI/aUhdG[?XEeьsĵP5&gl.w܀܄z?Kk|IS9?WGYx 1k5Hξ`1dp%XRzR4m=iвzB=K‡Iѭ`% +~< RF%ulPrqH/Uӿ$JHCٍZUҙ% *>CL40G-'Xv-:b3 +BDc_|CϒpZ=dI6JJSwğw޹`rO١h旣rf=,^C:!WDii !ib2IX0I=Stxx,aVK DTsy-E S U"!&V23t险17[L:2(}}c\aR~'^Kc;AlXfuCigm Fx$gАY&}bSen@$hBnL9_(Bix0n|Gx4 +c]bjs1>S}@]IȡQ l(kĈDyΐv41^@reݪP3NVQ qC;U5:@T38;͜ 1P 31.It`1) ,eA $6isu{]mOv,mIsYT\BH/\N++nPr ]r N$C_6)4S^v0`Eށr,W2"e˦҉PRbmcn]8

U4ܖ۬.n\2*ݩE,Q,I +a mw<饹qxzA?MM$-ׂ>"fNiY9>߱%#8*25>)%LA=P=z):/V]:/x$2 1AJMf@OE(1`mt/ m5$C[S{{ %נ)V<0 .ٻC% ҫ}jƜMVRoׄE[m= +kkxXX}겜<9aFco ^-c\(R[7H.^nqoBg) 4a퍂`&# ;nIo(,?CnzzBDVW;Ҷ ~⻀E1:kṔ=e/x7WbwX0k1F)6@akqY_©:a# 4 ~rn'&_`Ѷ-؁3bmġ 4420Ixh).ba(@gxG0Azcd@a_dce2Q¸X\x{JSjU+yx%7 a"s%dM? G|)r7 ZU# ݡs>Vv: \s.C@&ߢE*6R@sDB(ɘNo`/!xG 5a粔ʒ^\չGwnUB 1n $ bgYD$\AOosY)S\;JE?L _QHe%4u77aON5n#uSiHVp,䟓7WHԧu_%٠Wikhwcj!p{'ل:*9dLt}Q{4tz ~p N68kGq 41N`ClVH49Үuԙ%B]-p]GEPl9rœ 1rɔ~*URRZ{o))kW&U|'$bRM@+m/'= Q"Bz阒'lgH7?]퀨(RHD +n]fe0m(/a-ZbDF#rctT䶛x*Q"/ _ ;՗o +nVDy'a +b_Wf8R9"C̺i±A E/ٌ^؍ű4҂==Cf]* oZϏ~V?dވ[2ά5<X ]`Y=ڝw'++ zklw|V*c킘knV +gIU=5g=CS>Z`b ܌1S8?xAŋ<&Kk+nw,ܖAR^ ɋYpڈM :tV!< 8*, + J&b_4Gr, +pBddvvRGĄnJ\>tc @B&B^^JBL66%}\6[I2㰷ML[z0 RY`d4:i(vpVb7ޠARtombcf p#V|@ܪDZEU@!r$, jC*QQQz^l?wad 5(ld ZY`^w耡 {_Pi :<@ưxFvkrfdC}zt#E>X8/%p/M',EX.UP^Jo3BlbTr +bKDKlɝo +2P +P0߲:&! sѢAvx2]\p?b_c/<o"f2)`GFaҫGq5mq{rxpIXHKa8[ a+nfU Yܸ Ղ3-sj/O]*Go)YK% vL2wf/9D΢0K {~e5ke@OU!"/+PR%o? *oF1 +endstream endobj 16 0 obj <>stream +a +] Mvz (5^uS8Mzѭ7vy{&ti...\|l~PM,?RO3&!2< R弧 !FM\ѾxW>TvK=ͯYFˁ3:y 4){A *5í˲|kUhb3ӌa tAt$O6KK=,n[e1j&v{;SOH5{ +R{1mCă„:eAh&ubm6OM@r"Ԫ0ˈV/mU*Z9LD%v +5low EW=-~\\^^@˽druM9B6 :se-­k?9+Kd4owdoyY9+*_!S\WF艛&l/d98q/3sVM &nREvZe%DZHNN}v7 Yn^>" +>LyDr.򛿡;>mzѰWoU h3J8i]bjE %5|RIhuGu@4 t -6>eT2xoߏLʄ~eGRe'IDoU},V({ED`̌D>{џ9 [Iq5(X7)_3chSK:tb5N} !) +l羐Ȣ\L);<{\e_lݟƲo+&vmϊs@L-B +X8$pB.,v#Z>YHvߪ[/Y-J苇uܡ@F m"{Z?ȗ\[s8&*E2Lvх m+trR.`(+4?p!j +5KnFR"T~YP |K4Y81:ˤ$Sѻ]7U߃AAIې 2gv&9ZGg7:v rW:e__yLHl 2@m(0 мIV5ֿ-MvLoSDs xl֌u;q-SUu=3^yoђ_Z:*sVMD ҂tjmw~}+CŁrq.dHZEPmɳ2,  +  M &Gj + ɴ!X@L,GAdyDBQ`mX*g,Z&z0 Œ " Xu׆w 9 Y5Ѭ@+ck9Y4OR2(+r!h$" ZQEbf;{CWSf3YjU-XjqmxQ;!))zy^no*U=dVemzyo{Ǝ*>lC<3Sp4tVl1 ڲsO=tֺqY䉝ja"@@H.C͸H+Ź<^0D0@d9@ +X 6.e0ЄFùa(&@KH4'\2:FM@ų:|8"qXVEṈȎ蹐ri(Meġ\T"9? 3r.}u,U&: OY4|\W}olHܷn,%q4K#Z2VFV˳w@!~!s6ԉGEd^[;^u<ҧ;?gSet0XGyjRF,SaИW|&'ЂBd:M*93v BBY5%8>J@M\5*e5o(}Stv)<=Wdžh>:ec +uVpHi*X/n sm2MT@"jLh|EPs`6 ZyaS Ѥ|(rgf7A7m^ݑ#'f%Lo}ņ5! TiE:㦯K|@i_7D)-w622ꌳ + +nxjpa žSoYqYWaԈ 2B2.86"$5DG!M +Ea3SOD9 j6K΂ nR ;>k0Pz$νP Yf';̃˵(aQ@b]6kռ, +%x860ܧȄu}^~*e<{>ei#!*SUi]~n^J(0xD{o0zNL=9bFpq6"E8E:㽴) 0@b zXYє;vn4#9Kߊ @f>B) XhZ_1(ʔpI-f]hx?e7zuqqoh ^ &bkC )ĞDO2Ԧ%!v*3F z|Gak] +}V +𠶄g26b.=Aט5i*>kSF2uF[KF>v"TBV휗rf+`d&԰ bahR,~ZLk >G]yn_\zf$~&XwmX}h>V@ӋRKo1p2 5eB, f V܃ԹwD}b%tJܢoALFX!IyIQG$]2*":PÕᆀ@S[G2ǔGWcQ9Cᕲ+i7"sl{o@&Lj5ѹP -#”PFf1!A +lKEg{0nݥ?.יSS۔UK#L2HI@v$MH~L+ƶK9*M,TSO=K2>A/kjj:GmLFOwQ΄ 3 qB`BBs6n"GغfɃ(ڮq%DzHqb6C~~+1~Nyܘ>"5߹~FVdqd1w؝Ǣ9:&TCrEE3aDG?!IIN$*B6j2+?:t<6UbHP=3>SgHd;wyja% +rhbA-4G~b6QzM + +K a'EJ3vCsvU)d~j!7u7v TЫ̤6;<5 $KɾM(xh uwce m6 TR98(sד SùAVG2{|E4%C*#DEκ1A 6vܜbNn[ +A&sjP}*: ) kkJaы^&<3gd LdNRӌ"wظX刜zAFqyc*짐.c*zK Vs\͚;ʉWER;Q\*7WgKwU ۵W7U>2mUqb,ØiU1SBӱ ++uoATeZ'V^W\nתSȌC(8"L`(AX H,xА9D8` +4DPA„`AJ 4D8\9͔uHk66 + &0d04`B + @$Dy6@UDrc7H\FIl|We*H@R!@0A?^ ?A88pft D*|0L  BP `` +(0@@0P H@Ap0!B$  F "1:0hP xPB  8с1 (xP 0A bAB + DR4SX` `hA 0tA < x +*Dp@. (H >h0A *4h +!` H@P`(A{DqP@aC + D0 !0 +$DT *HB +. (L@<@T`04 *,HX" &H@A D(?%`H(6>p 2xO@A%B 0 &/,D@ F 8a`!. ` @``!`X"x +h*H T 40T L<p 69E:@A*xP P +R9Ղ!*0X B `h(A>@@T '@"H + # 8  4|' ``A +pT@0 D{ɐuDi}5i:iLC/*a!뫟.@@!B@ Ĕ ` % ` DHw&x>}R.WIf0@Th"Us?!cӄHضKך]UiWj6]˪''#R K !!@D2-ވƫ%#~!` luWkTJn,S<߈ ))¦j/KuM_62y@@& F`CLPDbd40tЁPxBxVoUQ3a];P3IKʟp )^ɪz-Ӝ+fF':Y22#KlXhCKg:6{WYHlA@!h xTWDk&fNә iqAQ3sDQ9;?B%۫(5<=C&e""7ퟑ~.?#q*DC ٷ16'$cRyGyOB h ^lUZc ` 4$cV>%VL*3@@L ͘re&I;B@XZ7]խܺ_ ` 8D0P \qf6{晩!VĈ6SR(4&ww*Jy$j:&Y\C6#ؚT5 ļHCff#n h St*69!chlϐG&"Fn4,~*"#s;Yxxva%S6eI5ԎeuG努$J̦/Ȧݎu,!JfI%|c,wW1#$| ק= >s>z |/5Wj~aj8!YDzo}3 YY*t(fcΥt|AP}IyFV8;tF]ZȮG",H̯q96_f\1yȑ9=rOe9acvLtXAQgTKvj gl]DS^4J'guїSIs 9]MUJTbi5Ubdzި9ק'nLO}i.LGݶ!]sdYY4GmUGi2^b SwSK٤*A6ԩ  Ι%W!F_`T";͑-o|8t.Xewn3څ5Pi=ZݏT9R~KEdz +[ OS55Β{UNea.~H~/):ItY71\ư赸~aTG)4pY)Ӯqfĭ^V0͜|͑]u)? FXa#3WFB:ՠ*ͨ& wLfBRQeuuQ挌DV-Q65V5WqDrIN8\{N4!aCظ2LLt5bԌmayЅƆ\MɤęMu(Hu=VgBA%);RlfyjMqˌdBQ ](E2(GIDSH5.u'iy'i4Zy?8uWT0ͲJ-jđfU!dgp .e*:۰|H-I}H"{n:#tskQ2sb +{Ԣqڸh xvVzE(3W*->4{UgVR~Lj8Ba}J"'뇹XPFltnD*}IvGT,XHW)cdά.4HhOR$Z/k5,L̼WÎyxHV=rhfpXnK 8V6}lTFwz)T7*7Ŋyn=ֈHGϠUH.HĶQrSbBT^HO~]$ِJ<#)#S3ƑdnUR'GT,l8;# JL[O%h2ܘĝd'Bil7&փv8NPd.uÞȰE:PR{$d.eS YYGW/Et3ţش=gzYO-) XB1=:c nΨ޽A:~&59C,,ʋl\vЌ K* 92X:V5d*c׃D"d.x 評QW (D+}itLH?K$!nE&He; ϼ9ytFc,y_ָ jATS 57qkr%&aFZSh*2sB$Gw01ivl\:U!geC"D6Ioh͑͌jKk.Kr +lSdtΫsONa=dd H.è+;hz23'\9!.h/|5>2~zZ"uF.Ϻ̦z)(Rɰ=i|FDuu|c~Dd*&o$V3Q VA  9Ǚ(Ƣn9P}]՘lȆox3Y9vq)J|vJEJJe*['F3^_qqH/:2R{5|!IX$}ƘBTzL3-7lRĨexHFQ]}ɛ "QrF2&ra%$51 JQt8$9ٵp.2)1Uh,ŏ.152Œ1P N8 5*ؘѩJk&JDzSXc|#1Ϧj*#n?G#$s()Gb%w {,K*#J;Y>lŐ ݆INn|毩wiJq~5ʻjwӈ:1r.7U*ǥ;fT޽sõ6q盚23I>c uqIqWMWǛq^Vo>"h1~obWvs)Ttu)2j1-},ytiWs3eIQJ<5z!)HZe$;r檱˽&^vvN<7)*NikBD[N2 +XFk#dƚ!;9Ҩk4g+IzFJZm9TUln8%&"Ao[!W*1:12 K)P]X$jB7zD#]P 2sJZosPBˠxZt ;d8j?4:F!H\IǑM>NˀQ;>8=5ڥ#17"[y jAPjf#+ݴq>m]l#QC<4Oߠ D?hZԹ,Aܟ f,sܹ\3'Sy2%Thx75QLe0ċFh xa1M?'d*<2ǘӚ̧U|O[+53qD۰*/Ffox't E/qޘѯaAV:d}ɮZiW`eރQqŴz$r]])ކ-( +!3byܧƣQ#L&c=KUEl\) =줈UɧLjb))¡1d1\˘ ++!rt 7Yyutf#uLUU2H>؋_mHӚFpu`Sw7ƹkJ5e|ΑԙDL܈H6z۸Hdmq6aT}m!5:':/!#iO᥇;)=^]\4 pel(~:.w±1 Io IW|1{?'s=Irzl8>xل3UbTa!*9Cr<Θi||D10o**a)"uK(8}.f2m3iS5zHDi9Քhǒ%;kq{v4#(WĂn2cSƦn)}\P4ヘ!R̝Z!ER4o# ASt:f_!+= LNF!ޅ܉n%ly3՜bDToVh\CƔv2e3U*Ҕw_U0wޫc8qBI9U?g9 mD 2f_ӝckfeU''4#]w.q=4"f:[7Lc+gEq,}Әm|i>N^CA@vc_se6H*;Ĺk˪IǨ]XGwǪF2"ҙ`͠cy]vr&.RM=D%27 g6:6hsc坮*J.t\_0vҔ1{=U=:qP'DܪWd y%sլt%g^Z4v*˄elVcR[k/K1g3keņ[ylvꦹLRPَ̈́$jFd%j!-hN7Zs9ͬn=;Ĕݨdh\"hYTJl4 Ƃp.pu@`Đ1`@\ [^ +-|wb;f`9<+[ۍ ްʥDO^hRrK;jWXU\]Se|tv؎`fv=z쌣S2P FWР芬CF޿ETng;(G:xL#^v9F 0 C+<mϥG(.Bׁyx|ycrb{oWؗC]7Gգwn*3뭹)b)SJﲇ5.|%"7=9LX{֜Hw7iC{XsR#\]*\"\+A%odSg 2ШS" دBT`[MT"p)%"F"e:Nl1"mbU +8R[ː*M9\SPL'2sl@q8nݸ`?Pa\6n4w Ь8qi܎R\[ ġ)H.8=DuxZΧr쭐Ɋ vrw4+,b]2y&V:atmD>3*wmuwY !;Ki\+Wq+],a \3!34iSFёf>i︣ˈV)vՌj E` +zBea/VW bfs1>*sTt'Lqp[@o cn3gBHdk`D[pPY=.hktaÊDJ*gq/+@AחZjL1/`@-.(Ѯ(sP i +I-(Ck]z6\+@7s}UxEJmZ=O,jOoQ1S >Ƈ;L yqtjUaP1o^YDŽIpaQx6`>إ`/l":etq5JcC1S5%*B@ +w >r[4"k41 숣u+$}aҌ )Mι?K*C}j(Źt6VTtN$zaPMwi }+dQnJVz% +eY7&Zqd涋SxM|EnR?#0w|3i9kUE\4>RK7piXpdbdO$/!*\@DcR Po$ +fihq(g]<ӹ*/,<%T \I}D+؃2φ@z;ΠT$o +烡eL;З`9aPy&e.`‚;N9A`H€`oN2ӹ$bΓ|=eEZa>͍!.h,] c>)Ҩ'5E O͊)M) `Q|`IuPwx#5 wx5fO񼵱Ñ2RdWxhJA>3Y*`n`I$'MdO–T-)Ɔ,ɡؠ$s2 $: rU828,'4)G0\T~?.)AW)}|Ia/o^`F B^6oLVx'g_ J"o>".FYT=)Y v@;RmR ?Q"$fRf,s$*#+~̀| 0Wp3Xj]'q}zUؐޤ++r Ě̸ePd'- Ńk7?Sb!orm9Ahưbp5@NiNsR0DhP箂K 06,@Ȑ 8rRBC $ +Pf3'A6Eh/:{fH"A`Ͱ&&>pJr|hE!r(ӆ$9,3,h^H*Atď +nHۿxcs.,j21j@4$8t=( 1uxF}1⟈.Nڀb`4{Ht:M&~Rq; Dš5:Y`~C2}W/ +5gq4ݣ5l1BrW؋i!WXG9c CRy΁"֥jrdvJA-5JY%TglƔ!h/+ -wl ~0 i&m(≒*M3H7u +$@x EV4Ζr$%%0wH=A| [Hgr +!3>eSWI[*'6'k邗v sk9]%}7uCDAr##_bs {V>>i%w FEb怾*\l1c_bnwJاP/ A@sJƀP=+P:jp~8.]]1MQdX`$EQ64[نcNBBy4hO=~ ε'4$,MW0q }+% "HopR_]=3Ҟ"'{r#\ kKqKZUxd+8pʹ + #Us3Hr K5Pw?MFHf]eN`BWˇ# j^!1ǔTmHh=QNq^($Kf:q!k* |T?z5VcPZ7Mb~^67C!G0*9ËšJͤS9Q** 6 26vzQ1ScðQK8n!Qppn-<+Zyqz 0<6Z1)gƫ᢫ +4QsƓѱ_Ne!KRIS&mY(8CS59N6ܰoek{!p|z*'f.+f"*Z:csxIaU|'@H%%knG~SBVHpشy`9d5`9*aBGƒ1ЎJes11m<3vI%.&r:3+͆"Za3hgaZr3*a \kvXd\T`^_/&sPTaDΰ̼G&lvR*-7y+V ^u/8/r(zR)tߟ` )@G!tTqFDNEbG/(IRjS5ː" C1lj\pXmjDK^$nb b(r"0="@a|z570]@Eq’ ԕ={aPCzeL\d>}Œ~7Lf( WQdVqCP%h&T$S V383ʋOCQFi [IQv-E-P&+MvNb HغQ:Bm*(wD*fY%!.*'j7tz +^hǔ]_v5"/KMu"I +mcޛ(cf&Prs w# 7Ngи|A^A;jS'#MdLSXBGܛpLZ6I)%& +ffb>a0Wۓk 8vi_"ȫQMQp- Ch d | iMl&=Kh3Sʷ=$6fh>^5J1)#2c*xb9w.n<[=,VnK*rRϡ_ˌ}CR| VZFi"r*l A]pzYƜM˚<4Q7. Vn#Oݽ-=DF4LZ"-P@[Zt:4' '2+?IJGh#v}daObmJ#(#PߍJ*#\/@]NH~7l=dpM9[oz>um ] \H_@NE2ۏI5>Ȧ @0Ja8O4j}6lic +d"[H7oiOzG̃^fR"N LOip0`g 춈ɶ,Y5fGMQl/)`t@bB+ԡr"' +b8J!'$W[ZHyc'롑pꚑ[)$ga9 +u^b=N&ؐZ#{\vT#VJZ6]Bo{^jO+_!K~gU+?vgPP.uͱKyla:pr@ߣ%Ԇ~q1}8А2l嘣=T(gsQx7(#N mBrf֮bH'5'&֝N ]6=&\@ ]*'|2Dg#_"V*u +J4B"ʹ`l.$ ߐ $Wl$3Ndp V Br%Q CË~F)p[j̑}"?6RC/+%/`M{pF,!iV_v9YP:2S0Pba[,5VfxqAI bVN0 *p !ufRC0oC-(,i@#$(nPSj$zmAZ_px19u NXYL,$Fm{蘆"i}!-23 +vX{]1#;;Z),k"ip [N#GaC1|ցA \@#>OD8*(% |%w;9R^-ܱ ֚l *&z]Qv"z,=RZO}çu(Hy2Ɛ)><>0[,`aYKk!ը:H{!_:p7CC$SLWx#{J R6MOڸhE +`F9nPK_.Ag, ~n>n +cȳg0 n)A"ہ)R^iܤ2[L@=)/7YZ#"BLL,.wL!.=r*  *&P ^Fx9zةT{θ%-FAB'@۶ k8-߯vh ϱO8P(X5i=LJZUG94"5&?yskI[N #d]sodr:sL*%nV<”@h4Uy8˒|D(5W#aSZ!M JlMo{Y=cJ,).+:!ݾ=vfhØld;Rk9;WOU☨\N\}~ A:vNh#;)S~|ڻ:f{;ϲDеuy8_F;߉<cI#|-G&2&l;.(uLϬsH#FUcݦ-P;pYdxh }9Dv‹yru#HkǼAdھϟ7vqֳ(lGEآg˸FxgL>ZБ)ꮂ&Pmf@{A[m֖!s kо_y6Ѵi[+R7 C)I:U@#~ ~Y5>Y(h]wX\@͘!KlCN]5jA`P0 -왨0g- K>7Cg@A2/V<@͡}r6֏uIsoodD(Np$B}FqēDuOk6-r\To,RyjGqRA{ZX(^ ,zCAwYlU+!Nȿ^clg+]GiiaV'P_EX8!i'_RPT7n/TA-L+ŭ)K];\v ۟ ('Ed!>*葏Vo5Fc:3]U"4hfY *}rݑDYE O 2E5+Jʃ@-x^AYAx>7dx/W;ybG0-.HN&؝"d?q<3/mNК2F醱L2JurJɹ! _g/ߩɲoL&qL^׃5eTݙWB i!ܣ'lħ}`'3^ *(WFx4:!nl%LͨA>!&L4{;"C+)RAN+ف7T0 a]|Ve]xLEU^2z@KIW @2=6Mog6q}H)in.^OAj8dkeN| Ga$ ,w +̍fLw7J 3RkFmZK3?g%,٬$8lDV{,*F\ǽ$ۥ:)o0&J,sب o؟m7VD "Be9)kJ;ώSbjmHE"sW֡%㸞|q{ +w$D5i#RS{ +'sl\tm%H_rϊtY~4ܓ˩$'AXoGc#:` +-.9='RfKO]!Du߈lh!nT  BƂj8vg nm5l[d +]u M&8)Nj糡K2|$ w&L7aJ'Lٲ{C[D- ]*wVnT"ntr욲0gqkH +P/*>䖄>eOϛTD?q{/JP!- á +ЧĔ$;~VzPO핋[Ҝڏ)C%"K[mSP7ː{to#ql>A +d!vAE[N#2"7}LKrQ*)+FSbgV a{ZE6Se5f ەGs#/3o- lG\lf>l..PGT3m<** FdhRD . 5̎dOvpt9(| 9<@Wxz u.es[pTo0x\BO& \Ml͒2:qc<:$=+v`6 ?1ǡ`E^ fLNY G޻*O$ @ trK#jw;d_N+?afX9Jz<^pۺd{(#m\u#}%%sFcׇlJgt>#M}T< +8qh($@ʥ9= +ǚvD Oq jSheKnVUd؉5*/9=zUz!j!ݼdj}̋1mZ$-@rM63L8ۿ{|oHc2\['Cx}"Q%ueVxckc oY؛hxk7h6 +$ + P9l>ijP']G~)bT5z>"UPD$<*3^`sE$A@;̃XƩ!r^u]# I",(>K +]s96s RWw*y]Muc"75$p86` 4Z~݄u)1oׯ6H`<GjT$`>Ux'ޓGVURz^JERb  )$vÄMiFAÊ[(D==S V+p"R+qo#`r1SpƓra%GLf:ش:4W?{:4u6( ]TLkgDż)-^Yd9~hBu.F O^%ёSxgJ-ryzY)̇/\%3>L"Jl-"Pl`sZ^vZZsa=I3rH Org6a  Kؾ%Cza?v2AoIZkj!?$k*AR0"t(?6g nc .AHmJr⨐kq~d=glfJI'\#`э'L|=AX/)AM?L\y `q:6E)l^fԔ#*b!U.03 +Ic y13d+1Q(+waQ]x1x5XN氢552顰 gh/A| (.D])g + zwL*4ڎR@ VVw+l7Vl)w"p+ 2p@4(IPݣdao»Raa +HP+^ۄaOl s"nlcZejFhKXABf;fm6ŒsשdRy /Tv\Heq[_d:Yb]GH J.Ͷ tž$EHH7 LOć8b?B]@(,4~s+̂T!Jy9&9[q.aj +ntJwǸ:pu/!8zTmNbrV*wƯ,[ |RW` .8*4ƋVq}n(n|j>!3w3s-/+$RMQ mU+{S9/rGi1{*! \J;=ooߎr )v˸p4Ȉ5Y}x3?'Úɞ qO7R~XP.7E߀ >EɳiqcvlOBQjĔy +Zc>"ߥC+E:)._ lMX] +Lp`ȑ$! M8rԃO*=t O.çU^)ڤR\*ȎeB]evnLrS}e:}27= 0T5֗Z} +mB5M=#BXʙNz<"yd1+ Cp\7Xd* ]V̈́~n31gEPf*Fq@ʏu ;ʦ{O=O[`(LH6i"K.Ei-7nƒc@>o,LG* Y0cRTLDޅc+PʭA7z/THq0:[jeFsZDm0 +ps? oT&z{ F^b> WBܧ ‐JuE[~2RP g>:E :,SN1=.-0u&l,y?ŌO|0#x?xNysJ"|PqyOrlMRߏFyF8 [sS2Rvx) SSV σ/W0rn-ߋJAk,քr::49r͉8eӴ^|pELٔ4088ߒ.6׸G69֔9NkރN:1)ߊo4/6d|iL:9yaB  : y=:mB[%lXd&932k61p>L4O:Q']|cUl 3AZmtL%kln)lbKx 8/YSB#*RB?l<lMt42Qx @DRf$0`מ DU mHDbGZ"9Bԡ[dI=v +;΍< Nb5SMEpD1tTKCOh[p.l:[dsđ8\R&+gd C(^DŽ-[L#bj:?O0u0;۫\^Z-&lفy{TXcC3\qMg.P{j&+m0U^ 36;kh}7s{P;,z\ޚyqZʕqe-= 7Ҷ\Y'<,YA, 8YzmK6B!z)'JYvƢ/)Ik};Ǔ/(O*GozߺW;aҮlSTfItvg&d͌vF흼*XgIfjGyEyRAUuc4wKp)re"O{3Ma{,:ZY+Ӧ3λR˸;QQՄ[3q8WK/:Tԫo0$2M1e|K[3* +%Hyn=@ rXwlkͶ6kLΤ]'tz8PVPh_Bm\l3Ҧ9z0-dveFTew`by0H>J%;\f\KC0dF]3Xvui#\U_ WW & /G~Zla1eQS޺W:ؾk`"a=+# cKNkT(Ѻ;[iI2},6Dq SamDӆsZyv6=Dtl9leSB Nl/A΋խt 5h0ANvyqRPف|n%3ʛR3 XMJ s:UPe +rx O4?oi3if4MH xh.c-< %D aHR!eAٴtJ<&Z[GN,}m$6otFyp}bCl,Ͷ&fUɶ< +-k=1zI:CyB w#Jb<3 $׶q ]-@N/2?CP YMp1T$ USQuL}~( Rp]r7*{7tlH#(S_&U;@U/l7/E'y#sE7ҁg*4%} KC3T_6U;EUqktA "OULõ̯F$-d]?,[7l7,D|: +E!<Ɋ/U hyqG$Fj? yzË;yD +m ]Yg9G4jgw'*J-,)J1@"J7|H +$[ +r'ؤ0E/upjX.<,'bGXahfswk3_Er򓍇bYEg'~-(a8h+)ʖAŚ60B JR&=3D#zFR KNl#Jc, _q7A$ƒ:tAOKNzؽDFamN xPIM4Wfk+\*r(1 tj\nOt-lg00l) >Y,A3[a SB*}5L v!=Qa'scU?]`aW`"|-uH_͝(%Gaxo`Kw) /'9i#NK #Xcb?AZlNY)RE N\v#}2Ud[f3C> G* {ad+hz= YB`MYf:Vx 4b1D:5q6o%7\<@8a>z 6v{()1-bBOX\#96*+kTTY~ԟ \_F#i]rm. +IB +,T>^ؼxFR'*lnVg-%5NnHF\*k0&+:l[#lA\[B:oPU%\B1 sE@J( 3g r۽fH1_ BT|yzM  +镉͛%ꊴkʴ!s5oN-ʍHxY 5z`#ZɽFyaM=-S}I{b=mqt0#",'k +U*e0/ +ccGy ˁ%RZM0RxxPG¤e +E~StѲoȺr> oPKn`K +lc LZnd^uDZ\޻lω#̋d~ϲږ\b:RGƃúK#s.CFsmi(P0.pDjZKˊzޱt(^O |s0SQ2~dzć$N>)]~2|hbF8LzEYF?߆TOk*b@ɚNEbȽuD?P]¦W-|y]ي괣^ډsples냋sIrX\sH@h%] x},f&Di>`DT0$E  ٝXD]XԹ,X.؆\\fgnَo")%S{FBE *kNڠB4ʀ5{.8y~\yb|0d!Ȧ& cj*fy%frƞ;w5 okZ V@֋ʤ2ojcUgv/Jx]a[G¶4/CݨKV]1E# )JD!FVoZS!d S%%$bnbBQ-e] :0yzNjf(g|d<"Sr5̌ y $fUΪTϦR\\v`f,_](,=m#P< ܈5 K"$q6 +D`Zg"l3`d<T{l vɟus$e7L+a"134uJD\≃Zu8QtAky8+t4x¯` Y|=y Pg,zֺ -/ PC5p[#M0AL@ z2A3`F4gߙzJ}}zgZ Ӷ]_'>G|w~S #S^%T̓B,obF3s@4ibY tQ@A=pf + jT=`x]`5>Ad `F@NS:OX^ԩGQ Mg*XN0H:E+h_"wPQGBG6jكeH+S \mQĸO{qeEB8#,L\N0Eqpg  PT1'., 8 8Ɓr!Fω<|E +?:n6Zteegeëk|SukB@Lc +" {ڦR8}.aαf~K<zI|.-3ѻXd=1LB=u.iS +L# ̧螶mm-;:+>;x'U +I:;k”&d?*;6?Ӷ5zWN"C=>@!%.23|]>h8]"{9=wmvLŮ0x1Q2w.i[ >0GYyZd(ݯQ.Xu.6paZȝIM㝕4Gl|x\΋ Q ł\FqfB*p{`%{B4 IB1[1`Y z^Y3y`F斦C  yRJ.b +`b +clbݕֵYC"% %~ &M4~ J nH+$iGz|! Gkc<;d Bxڦ". o(Q'xFYBIyxG5S脊~xs=qůZNފ+>(Ems!>4Lr-[W]WpHb` - +N+˒1Q{H_%"T,'ḴjkVX99{g|&o hRP'*i9lO<Vg'y4vGOO:rߋI -;fxRa{*!ޡ@HaX Kɉ!g7­ :\ ƐҙO 2xT4 OQdΆ}rEQB.\nyf&Eur|@mh] p 4h d:"A~Dm E՚nX$'-XA)e ($̤wL]5" (a |&櫧f{&2~s_pC`ji届xB{ƀB z{& o F` :]:dHt:Ol8)*#:DF 8z~fYU" L>1@)#ي&}j2Uizs@ǟO2?>GL (\ $6"}"ۇy󙼫^Y2&}M9zBq螶Y'9,Uk\);!&IlfbeL~\)ٿGO40ƞi +,? ,L`Rݓ[$>uC^KwSG擾X$KjFy>%tfLeDhȩ3АmlAxږ WADN/;i`Y$ (`]HgVc `(oaYz޷k'*~-~'nd9#VoR` ;*rZ4GV)iM` +F%DFzz,}dcڊOo +;+9d=mS mA Ry/F"n= +Qiy%-SO< S)+0 ͑+{˅} +]3%Z;l;b^aΞY"e;C=ъ뿑UupyvxS+H֠AsQJ_4A3>8`ɂheɖ!mjjI@W@Ʀ*'M#(1Y3Bsd `eK ^1Ҕ}c +[9AD3ؙ,i[Q>鐝RgIef! ?HkH-eU;*QPROn뿁шTx`l(ȁheIW3-2׀3(XelV>gEVВWsn( ӒʒږdI!00\#L>ahY"B0< c|N>j"#[YQAi(TĺKR2̀')}din5"D8#'@5̃JHHG_],^LOQ98/I$'Nڈ3FڪP/F TBs/v iN}m۩ԶS.jSf֧AI"eT=}R:jAsgn9/7*"6\;E˝%,)/{6O};:[#/U Û!8ޜ1j=x132#̅=mQzCX=ƆW9~$pvpRL$tjyJܡ(FiN()dҘQ +@T)Q Dئf1SџX'b_%yIjQlqht]ZOm#y>9(ɡ.K2C@-=T2J[ƋuaKn[_̐v*m;HVhAÔ-cs̉u6- -)$)kSm`5 +߅+>z> Kz>|'gwL? KNؓ\dq}4äeĢ]ٷ I]zePVD];qu#C!O3WOm\F[pDD3dӶp4v~W`i#H 0kF (>Es#Rn!@{DsˠI'oAsQТHjs؁,% +  ǴQLӶ г 7`癩C#VEj nN3Z ) hNy x Q)a'<ӶMpƎ"zچjVI5N53iygx8ch4dx@;td\2%l&hp +7JM.E\3@TlS_BFi[x4#9e ʫM$ SCd '[8a梹wL[IluJ:ga;gvP|F%LsmUlΒ ݡئԞ$0XrR(Fd {&[%d`B&'Iy_c[2-Kv4܈Ӷ1$Lz X)kFDF< S){fרLn<3JM939)#uVaP2O͒&S2iP?x(eC&/wjG3&͒IP +Ea8metv\H8 ЄA}eA.|I"ԅ_Q>wv ‡06k u.nݧ'FUij mpƤ:9 8 x@$tʢ9{p6@u1zCWP6K_ٛ3hv;"IBFL@=Px#T+/Ʃ@[0BK5?=m60g6OTS=b̎&䇥*;x 8$.\<,d )s'c4cx6=mKTȰ@u+#G=ɉL$b&n,85(\\Z]^j3)5JSWCC;iRVCݝl kR@'љy?i[L-oKQײG4,lîjVQwVͣj6A{.K+2}FgJ:[?+Hpb```s Z0Џ*-*yB|Et +V"Fxg:bm%?KdLκVb(BĐCv)TvZ"r%76ޗǯ. xj@3U*S*h_`'x +}j +GA ETODD@=;ɯLb FDOVL?+ٰ,#⧞ `<r* 8+@KV9+,ҥo%/,P3+K2ifeICbIYYͬ,B+OqA%ęWYM8+pL-~8vJwL.[Zq$eeIS`?plOv"w%ˤ]IX,*R +?J@ʒ'"%UJke#)F؉lOz3skD騨țBω2Kl,ywRll(`QU 0L=3.%K%G{eɱ|+ډl{VD/C +]7 +7:btCz2 d/ނ SHvŲۚ*8XRm`>˺[̯J1iH2MJAD?c(FW$QSL@  +H)&@>l,2 6,P0@ +( +cI9&2KLPT(Tȫ +KUWD=K,ީԡܵ-h{i NmZw Cns[@sY^] n4=-(.Cp(VuHC{rl7n9\sg9ūR<4ymE$H0VWu@XV@6o`cu?b.pApmp;:?P?xJ0#VC)o}H\{VJX4zկu_ +զX‹}P[moR{A9Cr>\wT.8|_1*uBm“ƩV qjCuuT5XJ SM2Bm]!&l8f(@3 o"{S`G2,J?@lB& EBah];OHb#G8{WvssLУGX.o$..Q~뜶nT +b \w7dZFD)s)Ŵ ; |iYTSOH!$&KR>i,iyhLgꆁ e&4Q%Ln#մD,4*$ ge)Ex-Q5͝)aCNv}H2Tr绎^Eb~3oco`whDb1ehf㕛\$ d\P<~kS#av˧w] -мacpft.:Eq #IbptuH˾@0O2A-H2!G6wH`ƎT>+) ZLnɅ,WȪp%$Agr!N!UC9JS*siK.Ryd1[xGJ2^|x`5FTԖF= +kli` #A@2OAIRܧY%"~h!}#hMh{tG{4ztTTZ|q>CV*'x?my)==j< v}to>ɟbG DC1Yuߒ+VO~4åXɛ $ 2I|2,Nl9hɯ~$aaFD!'Lg޿αoOE岵зqjeXﱤ!o,:@(0ٞM}&;[tC"XH_DE7ᓅ @$5L!tCOXb~gjɮ;HcL5>hE7gsvDdI8RtgݩK&3%q!SKK1q mGy"|^`U((n!0&.m$Um[u H0^b-S!#GxQ3W|zR?_y!h>ba,CZ=yrUE]aDBhUg5z|:-kv4 A_ԑG#YwhNʣ9E̖MMH Ձ%L5Dz:u@val=sOr:榳C rP4yv(3?4آYQ ˆhǡV \-V4\JxqN&EGpH[#`vnĝ5r$u: `.`gU$#ݖ/63B" +>,;8铩&Dir1-:@`$x) +vaL|.I7cWgv͎CsJ0a:Wㅥ&>m +iVebUi+PБHGYt~q H?NhS`Ϥ<%6# %3n ǐ?* NR.̧:׸o'؄da;2!QKg+QeB+;4jn52^{sӆ;m.F$;Zq=wo!%*"£:8㪔 ʨ-uq9}S=ZPs?15eH* +|%np?|V{lS{e͋@ +t؅ 4yy/>(:A]ə  #;";1YA>[Ipw;Gmsy}vHEMxH5Π~sCu,ֿ͠~?G3FWtR g8CN5(=)/.WP(ʫ]g:1pB6 _Ry*\dpOƛXϓe߼͓ȳƓTL,=᫩RL/ńmOg*v`JQR ![n@<|؜o$t<& 4@w*@(.<`\]?Lhkjۨb` 3O=h} /rUWf±1  ŝCDAՏ{RR>N>8zcGs Z=`[j.G^AYP9Mpȕg%1vWIM؄z JGl !_$qJb=OlO1Ag +d.Xig fС2ez/fcFcfR~ETuw7sޙ bzW6l)iP?~׫yjXSg{GNVH$ft= 0]n8W.1w;B}jU,|",>D)M@##I +c.fqvNmax Εu䯹]h7 Z<^ޠ}QźNو-1!|Rf{hkwelHO~h`,> ܂7xN5"p7я AAje0Xj,ptP+^*gDʋ&pyfHy;XHe! UȤq8 0Ӭ:渁7wr >YM*;{. t˜XbY|Ip Iqү'9hOmxq8;T ׉kDШpR/]gbӪnA>Bwߖ-7%3cb l6n nco"^zƭs *9C +Q_Cv((!D+hAb@ub%ub-\k +Y0PU}R+S%4~(-2|8Tο$ 6п[;|p~7%F뿰XNY|pF G[KMo6m,aAc0]JSV|𥉮=S1fyű| p fvR[C=Nvv]r4`q(t >Z{xKrhY5I%YTn'[ a#@(s& XY\~`l^\擮][Lm` PK߁!+48Tǁ''۫ r:U4j}Z _=sLO8 +DrR lMڝw@>R'?uz4~]|#lҨ +x[vqȹE)ꭞζ{(>POo\/]:p Ep0,}=(T5$;@nD*Zde|T 0>R<̓ n^$CG$038(_qQ#$D)Nϓlot@i4^ OY'va3HdWŠr1fVa;y|l4ڮ0"XdC黌kO1+tyY" uGB[ΓDۊC t A] E;d٪\M8,&I]/.I' -{%.MU#~8fC#Tcx.C5Zʷ q%h{:۱DϓR匣M5pFB0`E GKygnўnRŚ3ވ}g1+ikL%ml䷑&Ll^jfvG}tAqS+dyQٸr킳9P*s6$ێ8;TIyQImcT@lӭ';-BO\XCOcN5eP޶=VK1 +ُN?ץzCKhkڎш}lوS+\ݑz0W@s[yN6tmWx"r\ب9tLe:]=XG _ +~Qt]E-ݒ!ܑAx +f(}[/>[GEC ieg'`ءaY@$)(k;2Xn f$檒*b]LнMA5H5q?ڗ]&1( `~T\}MP`m#JLߞH+uTPz!PG"8sŸkГ(<.,i +ܘk*LvYjcwrvUd7dx `\Kp b f[:Ƹ2fdx!4f+TQ ~<k/n Ma`b Ge +PYM.mcBoFV\EV@dp=,"1JJ7zt\e컎D_dRqU[%lS@ bsj.-niSRWXB ʥOeЕy/EM+P $FrXs1B'uؼ +.+$p11 /%'! J*!4v'Dz+Pbqm8SaT +Qa7C&TVPLP$jLyd_5XE]CR"'L0$I]*'ux)fJ}_' LbP3l` a}a-lxPn p՗GiL;:b s{Ae+o .hjz܂$t m^2hןN&`9:=DlಇS7`6 +Xarg@S˶`5~ztt ^0B[0钋/_r5h" 0RXȈL"А]6X:HWs +W\EdJ<>(0I +CqTg^L-`~ 5az(AB xC9Sm& bIX1@)s:C>6g?m' X4~1U%D׮< ]j\n]d)Օ)4Nk$ՅDw9H* ZŶ6Ɓǯ +hHxo!C46"'i*!Z}~:Qg>@_ y]\BoBtFxL4ƥG}3N#DlE4‘~T͸?F{UÜeql:h ɦ2RUm.rgKbYs1:i~Z# kb .yW9 g&Q.X":'5/ga09 D%԰Kfmsp!NtHƹN +0˻h$KBW9XRd6Od,4{c^\nwNSnLDR +n/l +E-|bNjȋiqM54N|3 +NiCQ?b˼;Snrq 'a>ǐ[}8~Cr4T(9DVFcu9UdV]<@M:&.&ڳV5 'GlX#vYHLNY$AK~!r0{V;~/z~WVIfSPy )֓MKZ^:~%t7aeI23VFդ߫gL/%i^tSߋ)Jt,[^S @x=@3kXwb[]#>yR~Hʤd^c Nr3WmxPBihU"f; 4=YG ́H Iˠ"K=fpTO-Q9,\=tc@f A'lvXjpS128>rmr5$@A2gz\V?.#|׎rjv+ɜp.^{,ݳ~c{_58t@jj5wmYʩo Zʝ5{Z I/j5'~oM4qhDS( Z;p/wj2m˴Ԙ\H4(&cNOd݄]hIMe~8NaV flsuB3Xq{r+=U8Cv}0b+9K"wG DTɆ6Ӷk4tH{᫨h3Acѐ ӦaL}GBhw_z&w/UU48X)fV +SE-MGcȎCLa42(0s41i/Eq?4_H]47EESG$p~gDy~Hk %;yEY4fQE.e IǕ@.oM2(pfqtRtWv'^7a?ĩƓ;Y",QT,T ZW󙂀lg!J mi,~><&Zu<>@A&h{z򍕱jX=5]ڍ7uws~m4.9: d '&R{}(0nHbO'/}m)Uy~^|9^&hswi4+eM}ǷԾX␤:V,R$NI g.h*wAEX\z8TCr *~fǮc>p)Ɂ9,kWuoJO\^|򘻰t~nn%Pw aǓ*yJ~yj2a]E|Eh +Av5`Kt5uu?L2=, Q[ ڍfzl2Zeۈ7Lc.26ڀXR7 +7ֽIbRl-3rh8AW%f5X2=MXJP! (5Iov|[h7pC^LU.n +U0i ov| _F#d p=Tx?("VLr(hku'ab<3kyѩ>::I%ۘ6\jNMgD@EN/O '@΁k2ܳL:&+Æ{+9/bԻ #5}-#).m'ldt'_4 O1#5}Ѧd\xџ%2:4ZŜ<#e}:a2cJJR@^\Λ^^t!2+E'/ Ht4wf]B2"A_ݲPmlcZ6E +'? -܆ԥ0km}IMn7E l}Ĕ'u0bydR+'״i3 (86Eit'J $;IH$~ЧJm(49*~ LDbF+`r<n H;Ʃv)k\Ӧ ,VݍGMAY5B.P*jQj5q<~Dv\0ZDbKVFN{u/Hw>8B3uw!S܊K4s7ʥwn]`+&|V$F1wucO, !mOR_:unߨe<]ezݼBHFX|Dר~!H[O ƎkU@Sί.# R8ZK/lC`= fs`elgE>d E9"ԕdՇ&G+$#1)fxr{I;M\ꝸehY|ꜱ_hxJԡ;hjI.8.攧4GkΩvLPb]J8SEA⭟]Lyf% )e@AJ~9X@#-Q,Hn5~K9[i&4D|ŷ#R0wnbJs6 .k ~7:&aǩ@@CPJk60_U][嵴bseOh\|Az#U钒&l-({& [&MJdZbt|O0|8iۯV"??T2eًL%֧bYptbkI,]r&ӥ,D';KWg\>FN"x_ ¹$MPcz]n'.),t'>< / PF$Z.N2RgO#8ޜ@~骅İe} ~G3!7`Sş<0ok[kK-Ϲ 9"0@XV.p.l"AHdN4&@W|}Y}3(ԧtCэJ[>֛"jqj?(rP@y(|UJrJDc9=>zO[Y%_O ԁ@Y/v8Rh`4,;TKV7ElSDhIOj+u]Caf<;;qj00R/&8`9~8ПMbl'`e0w_*fi=kcs״(E?r@u$ԌbQllI '9LQEy,}-~+yMNeEqlxg\=+$)lz^ rcTl[NKߺ@mA]#{|$s0!'@gHXhc 7!JzjAE7ը!İ0Bg XUj{sɥ+Vl2>Vфu>AإBhdë HhmCd 7T9kKLwBn͍T|l-.aUܵ} jk74hL`{N9]~6N*p +r$S;_Ω(kMiN#U?ږu`#׍ =zR#0ظay0 >vǹy.h{*(8#$4xȃ+zSUZKhSh'R&pF! Rb;^N桫'W[${O]3>aWsRUtj+\lFV۷qъ(OM4 +~_QHkҋIHv|qK538&j۟Mo,bky;jyԝ)BUÂ5ۜ{^4;bеuyI?C kMBOd{"Tc$Kw" w3R +U# +Rܝ g-BS奕_ȖO授( c|#m5kD-ElUjnS#]( x KDY %(Ņ:y}DLYn$ +!k1b Ռ- Z"FIX;`GBӾJCez7~#xX²Pj2AD0Oՙ67XEdBsw~\'™ƥOYHdH_NIEď` đXHhrFa5{^JmiuyZ~A-+a\$e!i%Q v4RGg`CzMc#oGB +m7 +_6zmswPpkﲟbjQl/)P:*'KF\./yr&ǰ|63mG_ \@ăyRxI4LG#*UHzgIP | 貏\Ym(Ԧf+FjD# FN8M>@VM!Ti3ް彩#klF |F+2%zG1Λ䍹PO⍮3޻pxocy)nwqɯr )I>]Tm?zeL'vN+>ϝhA.gfyRn#*n6f-L]Pサ44)sPU?^7t"(AuG aM;֬7+I+\-@OӞ$*IJ|yF8G7Πp + j/LPkFI v-0 J?k.A$Qiƙ! +cjv@9ĶMM o"Z}8 su\ZXQODHu?H*w;=!})\ kط8UiW?@ݪcS9@jk4<hQN#1l_`>XsjV*ߥk(+/+ѯqtҰMHxiyֿ[)CCD +aRӐIi`92D4kY=4N͑cS9X˕ǎ]i]Z)%O^/\ ̋y!"68< E0AppSr'0MէڮH{T/%.ej)W =m#OQ~ƪ#YեL=Sm]zQhby=#=8>.e9);}8?)ahw,|+4dRz]+_̞}±^)}& r^y@KBx[u}*(!ͺ|LO^(rsj _͂yeDN~c( + +"n |(kNEJI@&N,I;#wIg!N0^X"$3tCN(>;Q/,ѓ)i,i9%_ cg&8/xM"Е;y/p|\#E3$alXKKm]"'+K;%iFIQn}r:!ELZ9i`Ȩ"U%M27*Lc BuO$'cJ(o,<R~$ՓV<@r:v"ۇo2Kv&Yr%;D χag 㵚e#;#O.џɳ>L/јqGQ!qހlFXBB;D  61{ǿtTﮜ#o\tJ I(a!(yh\b ym4QEm.bHϏX|pSa|"~RYx_dȞF_B: uQ&OO^_.Ӷ3:~3z+.Sg#Cy#r8nGzƣzɁwip!ږXp +Hcl '@SYV*EM +#52 z$/{imm2g"n؁|*"axBx7LƱf%2}̪ׅP* :i#c8|4UՍpZYmGN1 + +NG'ꃇH0#w$$Ug~RAIXu9w#UCઍf3Q0˘X(B QJUu#J YT5sTDrg'ew֊?Kh=mIC.AñxRmO#G 2KB[vZ ~=AjN3&ɖ)څ0(uA]p@ q߯u BsP̝=G/1 rYׁbhB]eH"tZ0 _LI[oUy}b>O3cC'S8sɉGkh-m҇IeT&a3VQ8y +B} ҟI@VGW]c~% /"fu3S$ ^ըbLOmCyG0Ϩj565w@7oKlq|O紦kh59'pmg|J +-w8-`@QGO`m^IOܼzmf͇͋ڼHh}PUV`j,Z._U~ܼlLU`C8%:$"KoY _(;Ԛkw6~ G +"N7k.1w^N\MĜdȅzSs=|\<{F H {/hA"rkmXO׻wTbNi0|~/ j[ZϨ}.iŽدX_6 il;LXG^6PIɭ^$^Y䨦gƥPsiUO{dL"-"RyN8TBQjlXi;(Ξ*%WH^BKG2 X,my+]<%{9exjTێ2m)ޖҕRAؾw $zo'S$D*SkFGOm(KU;њ= Omt\"Sj#p{jrKHhuf?6K9G7ꋐuα vjFP Q>(tBB'qSL5!k['e 40[[8` .,$`>6Hx17R݅byd̊$*h.lWL<7 ϊԕ]n6ƠsGL?4dQ~?:ϟOґEO| ˇ+KP*ڈ XJLmxrTzbE+1鯶\acjUŽSbg'y +c#Rfe dm'rǯA }aWYw\Γj-՜m}A TvRAdK i0p.CDKG^Ϫy%Bf1V!.@ȩ CAjRG uXwj +6| m4UI8̯lVѝQpI{XƖ8&]d!5LRiC=BWЋH&Z&QFoj~wygΤ󅪍F6T8r1uS$Um#ʅJ)b\kfTm5A[>T f +fzBVćস Һ;ONPy3Zj?Ud@$3N9 +C )6f(MwHK'X\f|q)%ܦ8z~] +&_4%/^g㷵\kPwez35jSF^FRA Ǥ}8Es ѷ ~zҢ\E`DN=n̩'!?,6z(/'<<E9Nj毁L2mjȋfeRdt'D}?ZÙ"(/Z-]q֕r\m_4UTF}x%k8t5~Sv&X2^YF/naN&Uԃd_ER[+?V85R_td(2e[>6=~*k8yT Q(A=ѺʏxMMG48}|^Rc#Pjp++)-81@Cf\]r&v*mf~Roӏ8j3Kէ6h yE@ ڰ_>xTm\_.;bHszդ_8^}_,OUAuLpMF֚Ð{}uN~9f^Uh9+iCAQa,]! +=9>X*jȲ:=9`ـ6VjS]# UqmDX>tW Qi)U6=XZjNm%ֲ&-s^w@\S%YK<ǾyQ`bm0e .=vF&]S\LScHxU'q)!I1(Jp跅yuV#vA,Z"3*}m}ZT QK wqI;x 6G? AP&]CZ/sr'D."O_c{NyЪI"˅'"[!G%H:"J 7Suw>H5}clnfK\|Bk&'7 //ȁJڀ6HZ |'^0gCћ++Hxjc weshGc6" _p|%I ߔGjI :Gv8>-lbR£9L&:\*R}))~{9炪 F˾}J4SSu!fVUWS4coUR\2P0y(=CӶra#KXw\v6ؿgJN^xʮ3KH42z ҩ q{ +ڈ Zr ]7TE-#yѼ{5ǙBynlMRkLsEMG[/]kw-S<~;WGpy",˸bGrj僩!8V]v~1FY@XeM]@ gc*k1lzwzL 9 x Mo$ؒA)2GF?Jڠ ZO4ZUUD?1<`60 S>F ,86p_Ǐ3 6<l?6%=`?Q9V6[9@>=~g;HF3%C\Wo:WA+`_ +ö +d9cЋ\Vyj ^3ؕi6x B @r*|8D8XmF:Gym"z#&"bQ'ᵸm"ʢnE#k60>o:>9qu!4 gX>1&E4"g8OlQ7ݩYFpbąl@Om,&T }jz(ל]Cf5C;~EḰ { B0U7io,([@}zT 'HKSjsu))8e`*Nmw\=Ea9 7lU1l B!W;T"xT =AG-kIfOKՌȨ1/?C CJیWܧ6${}s93xZP=N9A%,s᭲1J9?-c.jC5eHfR<6( lJ l7YQ + }%ͨ$| T|K]'`(4 ])qU/wfI~S +% ( ʮaSLֲvk4:WAh;~mvة BU=K:],%E6w 6#s]! D(}<)~ +|1yR yazdY#͜qLA\TZfpRɔPs N*WpAI֦NVnq*^ +#$`\p^ +Cn,l9y)̴YDf!{;x^O+l ~:"e2 RgGMڣ C60Mِ{^ίjhôUw,ZX򦪍"ypE +,E,Q6'Bˠ&ҿ›NU|Y̓0HtD /_ḥ"ިUXmTmt+!EAIG#Nգ*&U!”iPṪ6 +Sy VPՆ-[a`<gB 1M],$iuitÄ0֘64;H!_f\` +$Pup*O䩃PЭP>stream +Ґe##LvD'r:9Md.˾; +2/Mڟ!s6er:-i~~uT*pv2&P1 ݞJ#$|(05~ԩ3L2 =V" zKѣn$DAK>;C]2)o՛zz_Cm=|an63-<"65lsN  u(`4(F) zRspC!iB_]ГЗ82 +V*th340\;tN]Cѡd;tc. ZPr_CY Ci%EvsqCkT6Z X;-*~^p\NEeed%= Boa ;JHs5w㸄E/L-q&XɃd +A{op0U2?ۊOKع&R4ZIf95oo5o`/!q%[|䷗GDC7Fb( b.ꉙ_ekSR[zfL|J#M~-A,E"ym[?C4/vHQs "26LN'׳}wpxxWP:BwI`fPBW"V*/`*d[~͢4 I7h4) 'O,]Ra8HlWIHHpi3@.LD=qsF⻂x^xwI/72GJ%̀kq] nkQQCY*LxXyi-O5 _FHZBư@$`tRU^Js +%AN@L8'߀&t6 /CS3f-d7,1ĉeou(J0r2Q8:,VpPisۊ"E>Uj]x{GFoVX<[+0^sSy Zvf*2ދE4!GfhσF +,3Qu@mlhHC  A/fLb?"[4>XD BiQc,cFg@  HD(<!a`44<|h4NtT!Qa!L4A4tL'!@`Ce\GxRBSrXܑ"42  W@ɳ,l8 AAJ`d,|#2l$*F$CQr(GIFE41F4*9 X`B$̅,PcKq@ <iXƂL(*| IBt $A3: +@ uQ#|\$V |PB둡hp$+ ,+w"Q$XЃ",&6$jD z : ah.&t$-DI8BwCBE#\R<g +ŔLL0"Z`(aN4a.@RĠl81qL`Ep؄Sha!Ql8 %: chHIȣAdA@O6xA9Y Y`pA L:Nhfl84u"4ǀhx,?  +`+p\~SH2`:D &,~egl8 Gq!u$ 0 @)/(`:D92A~>$$/!  m4>4ddD@Xq(>ч @ Б$ @B)$ +p"hAQbȬ,"#(  !j"v$j2eAF3rP, rP:/S()A$|x=28@.<(?(?: b=D- c%7p!(Q eAQR$8a90<2B|NjTm٭JMӶO=6mtg3#$/)loyRjSָjvYߙ-DW{z-'ǿ+6*+c+~EGGε_t FżmR3sRBB&E Ͻx}{[^_:L׺ZoaZup%߳]yw뭪ϷQ^Nǝy7qۼwM*{;e̶\l8ȧoUrZU^Gg]h [UwU-ϕJ{qR뛟 ]kjuժR1ߵjMSL'u{m^:g.eOp(ٜ[N-Qծ%NV7 +e꜇ 'l׫qzRz~Wul!3sdVK}=2.G^\ݿ{Rη8{áP՝[=7^7sŦtGp( ӗ'9mq_7w<㩓s}{#^/WϺ;iB|hkiɓOWε_} P{s!?۫E䳕~ -'+7 +֫Ve륛}ӖO'*fqw~p\T32>-dk`ARpX8l8(ʔ27/φŢ'bJlЕ;>%kA)A"@J>4,,$""b!a>+$>DPil8 c-`p+H2d&JBBCDbb2amI.b.4H./]Iõ!>4~PT&h/i"{ + +ML"#HQkȐH9"0LRx\KƉ"fD8b0nAĔ&])]h198DVB t! 4؈Rφs.>2x@s QĄgy!gÙA</- d}NFF/  z)"I ""`tL\D) N&xJ:3CA5L4bE @+( #B꽙ӖVF>^?\jݗtą$nٶ[f~c55 'E[V֚˛ֽ8)vn않ټy4s.<4]kۦWq-㽜~{wOy!zyu1f.lF}_yii:[sK{m\mhǩ_|~}^u:^uSyۛ4祋Ye*k?5>R3sO^]_L☻٩k+g7.לԽ6zv#ܜԺ-n?TV߶d5mGWכӵ!3"%gU=_\ll쮾xBIvz:m 7}Zq]lU=/}Q=/]U_w/~ '%/YՕ2祲=ec Woss^>;b2~fW{ܩkkOUMͽROMW}ɟ3x}qզS*6ݳ\˺wm~ [tu'k̿w:7uo鏼nzƶT돘ٺ~ +٘{I3d\ֿko󗽫ckVW#v6?jgfg]gƏf'췖a%O֯mk+S1'RMۥﶙyRɦ<)tt\2y'f_߬xVW -[zzqd̶SzeZ^z|kgU!s_WVgj˛5W^O͞*5.VKuq|ֶ]lKM_gOږ֋oְ'զvw;}pRqWy w=l6E pTVNbFШ̬( gFÉio]|or}S1Ty"5FtUpRn*o4l]KDk^fnzɭtRܙw}sz=~j/{zvǎ(NzF^ufN3}r|ܺϼlmmn˝::ڮWVV[jzJ񮻹}d-8'tsWm=NKU^D]l\ghlzַu]̕n*/&1_ yq1:fdt7uܜP;ͷy-uwz/_G}\{mw~hE]qu]yQကPyaX\֘ոޓR~ֵ?嘓e.ꪷ>4s땖jud߳D~5_{ʽx 3mgN\WTDEM)43#3Fd2D{o<@48" "q8 +Cp0 HarGbſ: +$h3΄Q] ib/"wϲ‰&d7kuj#3|u_G]!0xX#̂EVݬ]P5;ո}N!R?D֬U},n`w7r$K,\lhi)Aܽ嘷kDm,W;0 ˉ?)^qYg2Lڑk /~Bߠ萿w<҂# r帷)ׇ|Ѥ ml: $aߎߍC,;梬qX1i'%Q^ӿkR'ƬhSJL_зsKu|uix(<,G8`KQWel^W'wj]=^,Æ`ق`F^842r\ >#o}5U-x!?JmVR*V*V\%(T>7h-EXziW #f'BjnL|C#*yج*ӱE߄['.,Bvt7AUQ㛊bnӄa -,1 4* *oOxMz^olOP֬f0W}=z%m6g%7;ky0e_(҂^ +^z&E.G>3Z;//TrwW[7; Fx{8ev?IgPQFa4)6ƃsPW^uǥE7cHhCص S:!IEvGא;Kn@ǚ$ 9_髛.)] @oI1w +b^UߧlC?W +xF^v#B7 iRT, -C+ⵒv?VR ޺ M/ +Bi])ؗi Yhan_I + SYq}楽Qm3Kb)G6[So5w|=>S, +#-ϴnK8N:Ď~fž^=V{G*ܵb8rAS$"Y>Q(2,}B/ iP "JJfK{jLLVgF!ɶpv#p5z/R]`Ϋ&zygZ#Xb0%4 q5yZ@Zub]N|}yLfqc"j"NTc{uzHGFx[-]#"C6R q44!ߺpڹV+ZOWykkU~z Ƌ\ p.E/Z**c\zOeJR¨wfR-9ASժXҖo6&CǴRv,\X1rE{ԯL]ҌNK<)G(+*}h"e}2IQQDSGfI""R/A|p5LE(BHk) 7@)@ FЁlлE`te"ߓXE}DJ^(rk +a,qBU'A'Rֿa9""cv~ Ğy¨a +ޠHͺ;Z*%kMUzNuNM*UkЩ nȠNщCs-!Uɏ`Qxa>d)hPNJݾWnJɻ+ .~ 23 Ń)C3:H7*T +7Jd!񷼤)]*[t3SH7˿?n0@]Ыh˽N HN%δ'- +̓ϝ<0 cmH)BE^DZ2, ұ) UV^GϩX/;,6A*k~ 15JGg4'f5929( Bf񂧭οP2+ d*_\L_:*L&DArӚ_ѩl߼AU9>vljff;Z5_iGVm)0 ֏x\)l=EZ~A[M,e,Ots + iP;0$-\!$MXG?=5hk.%omR|sB\ۄb^^^~{lrAGb{!N,;|Nѣ[wk0S)L\ֹc>_k8N)~Uw.\ ok3RF_ +i~l:5<ʹ +i>]Ӯ>O&-s3D@0 z}Sn)]D|K/F\{6@. SaBϮg[,ӜVlu%4,)6v. +M\7Ct309~سwbaoMihx֭8)f ѹyRdi}kwPsRQA;RiS(p}t@7T7Ս/f'PnIh8C8O.ao2&seUzr0dƄ*=}q{U&P +-?\!y6Z#8fum?hJ;viA;EKY?iqVKj(Me-z`=(7}.jo[(Mw~I՞}NM%~{[Oz`>kA>oHVcF9|f]Rof*uYV@>?Pr,/(w}#O + +vp䄾9=B+3hgWӤv-YW{>J|0;좃J6F[JWzMF_{v*g3&B͘Sof.Ҫ:f¨}q +N?/YY8'!wp=RZ1H-(4H7qYWh5 ;Hl\^3AeI{ ?híx_BZ-d r}9mOoFD( N|DBd^lXIlt IjW+_SCT+F'֙U!͖}ʢ01L*̳ +(`ҥ&\Ղ |:8#:~1![3VӖ6[tqPChuvrZʱD\bC/rl8TXFVb4ȑ(9#vk.h@Ӡs vWF(L6p\ɉRWI@l 7՘P_2p"lw#\TԞnqJ2ŹTJX]b9z!Cp "LuK>f#٪ǛiCɍANΐJ\jNYׂ|0I$@2$ݵXDl8k)xBLр-Q^w(-X!ZcT}iG9h(PsMq{#̩ ]嘥Rum*2Fs=iwPY-ŗH֙a$zOnp`}#VFF3ҸvХTgVXt U`Urx_Cֳ8/Fv lYb:*w6=BGM[%rH=l(,\F}/A\FC$A:H#J,l4GEdQ蜖1(8<)FfUͼ wʭX@mw \B<Y*Yte x$pn yeJ#L&t؀fW &<λYʬijWN0H\S*1sf|cA0 +${U&&a+2bڈWE[` yI͈[vɈd$%d,C5eXZo=.=;;CD&XkPH ~EOr|u_Ml-5KKge/PR[$&A#8O99ƉO9~b їu'yi֓3O]"M>ÔSЙ"@hn j\Kۇ26Q2ݓ;jS$r:ms,a(%AH 6G6h5^3૊D|';Ed6>_mqQ"KHV&qj*V+IN%%cJ`L{*7CugXN|XD]'NDR֯T}E%9Bg|M \a}uVXfI:( ģe(f? آxs^)ģr2׻3I@M8ZX[eRi<wYfk$M5F΀1+Y!D <:ڔ6V-#]XZN+ߩ_U䕐~`TVZb)+Yfa7M"%=cp^{MraUI t[kCKu rʰ+MgbFsUCErc(TH vG .V^di-wl\B޽S$$}H#$t{ID%C@I %wMaЁ'H~ɯ-L=$lJ!zHi+#V4DiP8Y=/KweY6 +P8B|܆_18UCۗhvI(Okb]8CPM>#P$P 7S_4>ALzStX C*8-Jrʽ_gv<ȈIˑT_8CA|uo:)öȗ;(b%2|gTp'`oC⟒o\"fwrDŽ2d= &P_a"bA|4N@4EhƆ.b0rj X*ް\J5]=!I>"]pgh*zLUWrT8 ƵGFDt*44|46M{X2X:(GnY>M\DTP9&ׂYF܀@fWHXrHxI%CC-lm9' ̕F +lT! ?_A!1q1h/~o8]vU&-\A9aؐ{܌(fF'.q"'jboW=7B$WJY(f"$%BWX:%_ j.t[/<1uU['9݅:pGU^ޟR.vt?e&tiIPgBsboGt$K +SeB oDž2Xѳχ֋UNm4y18}.џi+.pxHiWIqpҋdt[3RMS~{j,$$SXz=$.q"`| GWʼn&-Uj + |u.@XTFՌ6 8a9 q2r0|ɡ~NɸgAE5!8x[ M*]s- ~eۜb=  1(9' rTw2?<egIYN8qBO0b$wEǁpC਌E@|\_ aZ+;h]Yxk46δ(ϟq&6ő(06%tpjL#TmLg~?6tTA66XDoS?Tm~:~jc1S elVr󾩻hgG Y*h Rɇ¤ !cf +rCqM 3#;[si}"=Q,Hy?Ouf/0}@Z÷ XK}8|jpZyWaVƹ J8q9nßJэONZ]]܇[S-c&6?p8)gwYFaODBEƅnؼϹ膿I-/渫+AʱK8ŽeiI6V٦͡6ꩢwOD<:!`DYqꀗn:Dl`4ɀ*z $2퍜aO`F{n(,Q^aC@$Q,wrӊ WR')[ݑq[m}^奉a_qp ScOɹaIɣ\uF|VM-4hR]sѐB;,Gs s(Ḷ"F &:1]!k-̼߱xOmnO kAy}0vۙA6͍gKkg{ѻ<1A#tG5oC쒊pP{1G96@ b26kFv6pÝhUmZ|IՆ)Ss6V  :ZO#, +ȳ8)}ϓɖ;ZUUyn +525'\[7cYIgh6\}NmjS@Ϧ;RqG4EKd(dHfsJY cTOm $uv㖘x6ޥnb`CL%g=ŀṁ%ñ_eD`Wmq"M_Ug' Q;763n  * y U +"'Qm1`b03=HUogƧ6:<̯6۴ڠed2T` DHE'{Nm̘OBxUh%xXާ6M.Qy f~1M@94.^ <ЀjTH +KK]!t +ZXqb7igO3D;ae-hhw.518djM8t^x\nTqi}T#$?MᣀrR54u|yB.p=ǴI0f0~YigIQ_- WA:@wǮhe$oN^w3'11#M*׻8j0'}`ޛF<"~ `?b`{v +l=E' )cejNm8 +W FUxǎ%Y,,-_q@`^y-ľ2h`_;9a`9G1j`ADixIp򔞰36W|2ʨjg7ߒ!Br"❷u}r27`@IjRW\(pkuC-^Z{AujC Vv^e6>nW-&R Ћ)}ѝ'Jb5v}YWa-(c xcNmtoح NUNm8 +߇! Z_55Ђzx{XKٿx9i""KjHS ~98t:,"Tδ^mO6L*ܡj.{j5}SӴۓ%l,$xuN]u/z +#w/8# h"dNmX.4+ү<1jJ+*Ҷ3H.ӔgZ|lf`/.x#kc^emBLʷjג +P7BcwQxw&fH8jy3dPX1N  -gB蘀0\GSx nf +VFk"ڰuP7S;U"0VݐK -[ *ԗ场#$ξo=p"+~5lsV2 +J6dqDmfgm +~O^{GYki'q5t`CJ *̿C;T_al`C#/D4SqJ,{seYxP"%'yg[ +OgʳoFF gr]WNek dFlsB{Um |jq]quӊj%Do^ca 9#ᚁ yF&W""o&:vQtDSTLJ6T߫ _-:1DoSڨ٥;iy=2CnHQ9u +i  n6blܕ<"Ѥ2b >\7sOg8_Z=zPqB䏩 %ALzm8+ [FUJƽ6w.{9 (&6IppĔ 6@iG"%#`4V8_v c89.!q@T6NZ]wzhU*Z4J5V/ôM2D Dy3[S>3C +/[lH92u`J˧Je1rˆCtGUD˔@xyvj$h cS\ے:̜+$3DN>viHkUd ˧6i90 ezm1Omh%f]\q2bv5 *8x.4-  +23T$nFکjcb s"Ppm~g r[UۢexyBL }o<$4QH̖.S/{ dnd4h4YJ 4JLފzc %S2/֒E GMq{p8{P!ǔSDm5B{NunIf6Wʣgt)6Ab3ۅ,MOmdˍfΏdS̶4՝ (!WwU͋gnIꌇ@|Y%T&:o.s*3LA>=;3.hm #e(O˥.Z:u^XlPtڲymlC/56yəjᬵV2Chk^e#\Jr0ѩ `HhLVpeft + 0/j98 +/iƚ`SKш0~ifF |k{NeIRuM.xO?]/|MUmhZ;S\P4y4X 2;[~?;6ݵjNmj#];~o  _Tmd!%!5ӾFhK#_'; o ߍȠ LEj:/5kDSJTzhs)Sp3lOmp7jgMq3!eZ["Lsfg6nJoÇ%>a¬%c&Y)lqE(SȡI) @ՆKĩ rֳ@i%h&H8nKp=6sdz20 t H2f3;UT9Rbq-;><6ВF֦-0&oy~tTͼeףA&"ㄸfNmHW1Kٟ@>s1 L-)Sq[(v7|57{ʁIo^s=z \6t33yVi 6 +m^w2Ѡj#ujfG$W;s%@N^9P-eW_A؈ .)_$Y +endstream endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 20 0 R] endobj 20 0 obj <>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream endobj 7 0 obj [6 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000405382 00000 n +0000000000 00000 f +0000405433 00000 n +0000628637 00000 n +0000631628 00000 n +0000405844 00000 n +0000628936 00000 n +0000628823 00000 n +0000408134 00000 n +0000408208 00000 n +0000408426 00000 n +0000410041 00000 n +0000475630 00000 n +0000541219 00000 n +0000606808 00000 n +0000628707 00000 n +0000628738 00000 n +0000628970 00000 n +0000631651 00000 n +trailer +<]>> +startxref +631866 +%%EOF diff --git a/01_3D-Druck/Puck_ohne_Text.svg b/01_3D-Druck/Puck_ohne_Text.svg new file mode 100644 index 0000000..6e6f348 --- /dev/null +++ b/01_3D-Druck/Puck_ohne_Text.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/README_3d-druck.md b/01_3D-Druck/README_3d-druck.md index 4e9503b..4ad959f 100644 --- a/01_3D-Druck/README_3d-druck.md +++ b/01_3D-Druck/README_3d-druck.md @@ -31,7 +31,7 @@ Verankerung und Steckmechanik. Avery-Standard — Bezugsquelle prüfen.) - **Figuren werden gestellt/reingestellt** (Sockel Ø 20, kein Pin): am Puck in Mulden Ø 22, am Aktiv-Feld auf flachen Standfeldern Ø 22 (gleiche Größe). -- **Materialempfehlung:** PLA für Pucks/Aktiv-Feld/Chips (formstabil, günstig). +- **Materialempfehlung:** PLA für Pucks/Aktiv-Feld (formstabil, günstig). - **Kein Action-Stein mehr:** Das Szenario (Action Card) liegt flach an der aktuellen Station; die aktuelle Station führt die App / zeigen die gestellten Figuren. diff --git a/01_3D-Druck/blender/README.md b/01_3D-Druck/blender/README.md new file mode 100644 index 0000000..22fed70 --- /dev/null +++ b/01_3D-Druck/blender/README.md @@ -0,0 +1,42 @@ +# RACI-Konsolen-Board — Workflow & Spec + +Rundes „Konsolen"-Board (ersetzt das alte 40-Puck-System-Denken für die RACI-Station): +zentrale Acryl-Chip-Mulde (Stations-ID, pro Zug getauscht), Ring aus 10 Figuren-Sockeln +in 4 RACI-Sektoren, Action-Card-Steckhalter. Gedruckt **6×** in den Phasenfarben. + +## Aktueller Workflow (Look via KI, Präzision via CAD) +1. **Referenzbilder** in Nano Banana 2 erzeugen — saubere, isolierte Ansichten (siehe + [`nano-banana-prompts.md`](nano-banana-prompts.md): Varianten **mit Labels** und + **textfrei**). +2. **Meshy** (Image-to-3D) macht daraus die **gestylte Schale** (GLB). +3. **CAD-Finisher** (folgt) schneidet die **exakten Passungen** + scharfen Labels rein — + Maße siehe Spec unten / `raci-board.py`. + +`raci-board.py` ist der **Funktions-Blank** (Blender): korrekte Maße/Anordnung, schlicht. +Er dient als **Maß-Referenz** und liefert per Render eine **saubere, neutrale Vorlage** +(`raci_preview.png`) als Meshy-Eingang. + +## raci-board.py ausführen +- **Blender** (gratis, 4.2 LTS): https://www.blender.org/download/ +- Blender → Reiter **Scripting** → **Open** `raci-board.py` → **▷ Run Script**. + Ausgabe: `raci_preview.png` (neutrale Vorschau für Meshy) + `raci-board.stl`. +- Headless: `blender -b -P raci-board.py`. + +## Spec (Maße — der „Vertrag", gilt in jedem Tool) +| Element | Wert | +|---|---| +| Board | **rund Ø260 × 14 mm**, Rand gefast | +| Mittelmulde (Chip) | Ø **50** × Tiefe **2,2** mm (+ Greifkerbe Ø14) | +| Figuren-Sockel | **10×** Ø **32,8** × Tiefe **2,0** mm (Figuren-Sockel Ø32 + Spiel) | +| Sektoren | **4 gleich große 90°-Sektoren**, symmetrisches **Kreuz** (Trennlinien bei 0/90/180/270); Sockel je Sektor gleichmäßig verteilt; Ring-Radius 88 mm | +| RACI-Verteilung | **R 3 · A 1 · C 4 · I 2** (= 10) | +| Labels | RESPONSIBLE/ACCOUNTABLE/CONSULTED/INFORMED **gleich groß**; Phasenname (z. B. **DESIGN**) in der Chip-Mulde | +| Action-Card-Halter | Steh-Schlitz **70 × 5 mm, ~27 mm tief** (fast volle Höhe), ~12° geneigt (Karte 60 × 90), oben | +| Druck | **6×** je Phasenfarbe (Design/Transition/Operation/Support/Review + Gate-Rot) | + +## Ehrliche Einordnung +- Nano Banana/Meshy liefern **Form & Look** — **nicht maßhaltig** (Sockel-Zahl/Text + ungenau, Mesh oft nicht-manifold). Darum die exakten Mulden + scharfen Labels **im CAD**. +- Sehr feine Gravuren/Muster überleben Meshy oft nicht — als echtes Relief besser im CAD. +- Funktioniert ein Meshy-Mesh nicht sauber booleschen → anderes Ergebnis nehmen oder vorher + säubern (Remesh/Cleanup). diff --git a/01_3D-Druck/blender/__pycache__/raci-board.cpython-312.pyc b/01_3D-Druck/blender/__pycache__/raci-board.cpython-312.pyc new file mode 100644 index 0000000..9ee9712 Binary files /dev/null and b/01_3D-Druck/blender/__pycache__/raci-board.cpython-312.pyc differ diff --git a/01_3D-Druck/blender/nano-banana-prompts.md b/01_3D-Druck/blender/nano-banana-prompts.md new file mode 100644 index 0000000..6c9fb3d --- /dev/null +++ b/01_3D-Druck/blender/nano-banana-prompts.md @@ -0,0 +1,52 @@ +# Nano-Banana-Prompts — RACI-Board (Referenzbilder für Meshy) + +Zweck: in **Gemini Nano Banana 2** **saubere, isolierte** Referenzbilder des RACI-Boards +erzeugen → in **Meshy** (Image-to-3D) übertragen. Wichtig für Meshy: **nur das Objekt**, +plain Hintergrund, **leeres** Board (keine Figuren/Karte), klare Geometrie. + +Workflow: Nano Banana (Look/Form) → Meshy GLB → **CAD-Finisher** schneidet die exakten +Passungen (Chip Ø40,6 · Sockel Ø25,3 · Kartenschlitz) + scharfe Labels rein (siehe +`README.md` / `raci-board.py` für die Maße). + +> Hinweis: Bildmodelle verzählen Sockel gern und vermatschen Text. Nano Banana liefert +> **Form & Look**; **Präzision** (Maße, scharfe Schrift) kommt im CAD-Finisher. + +--- + +## Bausteine (in jeden Prompt kopieren) + +### A) Stil-/Isolations-Block (immer voranstellen) +``` +Single isolated 3D-printable board-game part, centered, filling ~80% of the frame, on a seamless plain light-grey studio backdrop. NOTHING else in the scene: no table, no miniatures, no cards, no dice, no hands, no text overlays, no logos, no props, no environment, no strong reflections. Soft even studio lighting, minimal soft contact shadow only. Near-orthographic lens for accurate proportions. Matte single-color blue plastic (#2f80c9). Clean, precise, CAD-like surfaces with crisp edges. +``` + +### B1) Objekt-Block — MIT Beschriftung +``` +The object is a single ROUND flat disc board (thin: thickness ≈ 1/15 of its diameter), ~210 mm across, with a softly chamfered rim. KEEP PROPORTIONS ACCURATE. In the EXACT CENTER: one large recessed circular WELL whose diameter is about ONE QUARTER of the board; the word "DESIGN" is engraved on the FLOOR of this central well, centered (and nowhere else). Around the center: ONE ring of ten shallow identical circular sockets — each socket LARGE, about TWO-THIRDS the diameter of the central well — arranged in FOUR EQUAL sectors forming a symmetric CROSS — straight radial divider lines at the 12, 3, 6 and 9 o'clock positions split the ring into four equal quarters; within each sector the sockets are spread EVENLY. Counts: upper-left 3 (RESPONSIBLE), upper-right 1 (ACCOUNTABLE), lower-right 4 (CONSULTED), lower-left 2 (INFORMED) — total 10; the whole layout looks perfectly symmetric. A thin rectangular CARD-HOLDER SLOT (~70 mm long, ~5 mm wide, recessed deep, empty, slightly tilted back) sits at the very TOP on the 12 o'clock divider line, in the gap between the two upper sectors; ACCOUNTABLE's label is engraved just below the slot. All FOUR sector labels — RESPONSIBLE, ACCOUNTABLE, CONSULTED, INFORMED — engraved in the SAME small, subtle font size, each near its own sector. No other text anywhere. Empty board: no tokens, no figures, no card inserted. +``` + +### B2) Objekt-Block — TEXTFREI (für Meshy; Schriften später im CAD) +``` +The object is a single ROUND flat disc board (thin: thickness ≈ 1/15 of its diameter), ~210 mm across, with a softly chamfered rim. KEEP PROPORTIONS ACCURATE. In the EXACT CENTER: one large recessed circular WELL whose diameter is about ONE QUARTER of the board, smooth and blank inside. Around the center: ONE ring of ten shallow identical circular sockets — each socket LARGE, about TWO-THIRDS the diameter of the central well — arranged in FOUR EQUAL sectors forming a symmetric CROSS — straight radial divider lines at the 12, 3, 6 and 9 o'clock positions split the ring into four equal quarters; within each sector the sockets are spread EVENLY; counts 3, 1, 4 and 2 (total 10); perfectly symmetric layout. A thin rectangular CARD-HOLDER SLOT (~70 mm long, ~5 mm wide, recessed deep, empty, slightly tilted back) sits at the very TOP on the 12 o'clock divider line, between the two upper sectors. Absolutely NO text, NO letters, NO numbers, NO engraved words or symbols anywhere — all surfaces completely blank. Empty board: no tokens, no figures, no card inserted. +``` + +### Kamera-Zeilen (eine anhängen) — Multi-View-Set für Meshy +- **Vogelperspektive (Top-down):** `Camera: exact top-down orthographic view straight from above; the disc reads as a perfect circle (no ellipse), perfectly centered; all ten sockets, the four sector gaps and the central well clearly visible.` +- **Seitenperspektive (Side):** `Camera: straight side elevation at table height (orthographic, no perspective distortion), showing the thin disc profile, the chamfered rim, the recess depths and the upright card-holder standing above the top edge.` +- **Untersicht (von unten):** `Camera: view from directly underneath, showing the flat closed bottom of the disc and the chamfered rim; no sockets on the underside.` +- **Hero 3/4 (optional):** `Camera: three-quarter view from front-right, ~35° elevated, full object centered in frame.` + +> **Meshy-Multi-View:** Erzeuge dasselbe Objekt in **Top-down + Seite + Untersicht** (+ optional Hero), +> identischer Maßstab/Hintergrund → das gibt Meshy die beste 3D-Rekonstruktion. + +--- + +## Tipps +- **Konsistenz:** Erst Hero generieren; für weitere Ansichten das Hero-Bild als Referenz + mitgeben + „*same exact object, identical design/proportions/colors, plain background, + only change the camera angle to …*". +- **Isolation verschärfen** (falls Würfel/Karten/Tisch auftauchen): „*pure empty background, + the object only*". +- **Text unterdrücken** (B2): „*no typography, no writing of any kind; smooth blank surfaces only*". +- **Meshy:** Single-Image → Hero; Multi-Image → Hero + Top-down (+ Front/Rück), alle gleiches + Objekt/Maßstab. Export als **GLB**. diff --git a/01_3D-Druck/blender/raci-board.blend b/01_3D-Druck/blender/raci-board.blend new file mode 100644 index 0000000..543b592 Binary files /dev/null and b/01_3D-Druck/blender/raci-board.blend differ diff --git a/01_3D-Druck/blender/raci-board.blend1 b/01_3D-Druck/blender/raci-board.blend1 new file mode 100644 index 0000000..72723bb Binary files /dev/null and b/01_3D-Druck/blender/raci-board.blend1 differ diff --git a/01_3D-Druck/blender/raci-board.py b/01_3D-Druck/blender/raci-board.py new file mode 100644 index 0000000..693414f --- /dev/null +++ b/01_3D-Druck/blender/raci-board.py @@ -0,0 +1,187 @@ +# RACI-Konsolen-Board (rund) — FUNKTIONS-BLANK · Blender-Generator (bpy) +# SLC-Workshop Tabletop · 1 Blender-Unit = 1 mm +# Ziel: korrekt & schlicht (Maße/Passungen stimmen). Der edle Look wird SEPARAT +# interaktiv draufmodelliert. Hier nur: runde Platte, Chip-Mulde, 10 Sockel in +# 4 klar getrennten RACI-Sektoren (R3 A1 C4 I2), Kartenschlitz, lesbare Labels. + +import bpy, math, os + +# ----------------------------- Parameter (mm) ----------------------------- +R_BOARD, BASE_H = 130.0, 14.0 +EDGE_BEVEL, EDGE_SEG = 1.6, 3 + +CHIP_D, CHIP_DEP = 50.0, 2.2 # Mittelmulde Ø50 (Chip) +NOTCH_D = 14.0 +SOCK_D, SOCK_DEP = 32.8, 2.0 # Figuren-Sockel Ø32 + 0,8 Spiel +RING_R = 88.0 + +PHASE_NAME, PHASE_COLOR = "DESIGN", (0.184, 0.502, 0.788, 1) # #2f80c9 + +# Sektor: Name, Label-Mittenwinkel, Sockel-Winkel (Grad; 90=oben, Top frei fuer Karte). +# Lücken zwischen den Sektoren (34-36°) > Lücken innerhalb (28°) -> Gruppen klar sichtbar. +# B+ : symmetrisches 90°-Kreuz (Trennlinien bei 0/90/180/270), Sektoren in den +# Diagonalen, Sockel je Sektor gleichmaessig ueber den Sektor verteilt. Karte oben. +SECTORS = [ + ("RESPONSIBLE", 135, [111, 135, 159]), + ("ACCOUNTABLE", 45, [45]), + ("CONSULTED", -45, [-9, -33, -57, -81]), + ("INFORMED", -135, [-120, -150]), +] +DIVIDERS = [0, 90, 180, 270] +WORD_R = RING_R + SOCK_D/2 + 9 # Labels ausserhalb der Sockel +WORD_SIZE, WORD_DEP = 6.0, 0.9 +DESIGN_SIZE, DESIGN_DEP, DESIGN_POS = 9.0, 1.0, (0, -48) + +CARD_CY, CARD_BW, CARD_BD, CARD_BH = 116.0, 84.0, 22.0, 16.0 +SLOT_W, SLOT_T, SLOT_DEPTH, SLOT_TILT = 70.0, 5.0, 27.0, 12.0 # tief bis ~3 mm vorm Boden + +TOP = BASE_H + +def _outdir(): + d = os.path.dirname(bpy.data.filepath) + if d: return d + try: return os.path.dirname(os.path.abspath(__file__)) + except NameError: return os.path.expanduser("~") +HERE = _outdir() +STL_OUT, PNG_OUT = os.path.join(HERE, "raci-board.stl"), os.path.join(HERE, "raci_preview.png") +print("Ausgabe-Ordner:", HERE) + +# ----------------------------- Helfer ----------------------------- +def clear_scene(): + bpy.ops.object.select_all(action='SELECT'); bpy.ops.object.delete(use_global=False) + for blk in (bpy.data.meshes, bpy.data.materials, bpy.data.curves): + for d in list(blk): + if d.users == 0: blk.remove(d) + +def cube(sx, sy, sz, loc): + bpy.ops.mesh.primitive_cube_add(size=1, location=loc) + o = bpy.context.object; o.scale = (sx, sy, sz) + bpy.ops.object.transform_apply(scale=True); return o + +def cyl(d, h, loc, verts=96): + bpy.ops.mesh.primitive_cylinder_add(radius=d/2.0, depth=h, location=loc, vertices=verts) + return bpy.context.object + +def boolean(obj, tool, op='DIFFERENCE'): + m = obj.modifiers.new("bool", 'BOOLEAN'); m.operation = op; m.object = tool + try: m.solver = 'EXACT' + except Exception: pass + bpy.context.view_layer.objects.active = obj + bpy.ops.object.modifier_apply(modifier=m.name); bpy.data.objects.remove(tool, do_unlink=True) + +def apply_bevel(obj, width=EDGE_BEVEL, seg=EDGE_SEG, ang=30): + m = obj.modifiers.new("bevel", 'BEVEL'); m.width = width; m.segments = seg + m.limit_method = 'ANGLE'; m.angle_limit = math.radians(ang) + bpy.context.view_layer.objects.active = obj + bpy.ops.object.modifier_apply(modifier=m.name) + +def engrave(board, body, x, y, rotz=0, size=WORD_SIZE, dep=WORD_DEP, ztop=None): + z0 = (TOP if ztop is None else ztop) - dep + try: + bpy.ops.object.text_add(location=(x, y, z0)) + t = bpy.context.object; t.data.body = body; t.data.size = size + t.data.extrude = dep + 1.5; t.data.align_x='CENTER'; t.data.align_y='CENTER' + t.rotation_euler = (0, 0, math.radians(rotz)) + bpy.ops.object.convert(target='MESH'); boolean(board, t, 'DIFFERENCE') + except Exception as e: + print("Label uebersprungen (%s): %s" % (body, e)) + +# ----------------------------- Aufbau ----------------------------- +clear_scene() + +base = cyl(R_BOARD*2, BASE_H, (0, 0, BASE_H/2), verts=160) +apply_bevel(base) +block = cube(CARD_BW, CARD_BD, BASE_H + CARD_BH, (0, CARD_CY, (BASE_H + CARD_BH)/2)) +apply_bevel(block, width=1.0) +boolean(base, block, 'UNION') + +# Chip-Mulde + Greifkerbe +boolean(base, cyl(CHIP_D, 6, (0, 0, TOP - CHIP_DEP + 3)), 'DIFFERENCE') +boolean(base, cyl(NOTCH_D, 6, (0, -CHIP_D/2, TOP - CHIP_DEP + 3)), 'DIFFERENCE') + +# Sockelmulden (4 Sektoren, ueber Luecken getrennt) +for _, _, angles in SECTORS: + for a in angles: + boolean(base, cyl(SOCK_D, 6, (RING_R*math.cos(math.radians(a)), + RING_R*math.sin(math.radians(a)), TOP - SOCK_DEP + 3)), 'DIFFERENCE') + +# Sektor-Trennlinien — symmetrisches Kreuz (0/90/180/270), flach graviert +_di, _do = CHIP_D/2 + 5, RING_R + SOCK_D/2 + 6 +for a in DIVIDERS: + g = cube(_do - _di, 2.6, 1.4, (0, 0, 0)) + g.rotation_euler = (0, 0, math.radians(a)) + g.location = (((_di+_do)/2)*math.cos(math.radians(a)), + ((_di+_do)/2)*math.sin(math.radians(a)), TOP - 0.7) + boolean(base, g, 'DIFFERENCE') + +# Action-Card-Schlitz (oben offen, 70x5 mm, tief bis ~3 mm vorm Boden, leicht geneigt) +_sb = BASE_H + CARD_BH - SLOT_DEPTH; _sh = SLOT_DEPTH + 20 +slot = cube(SLOT_W, SLOT_T, _sh, (0, CARD_CY, _sb + _sh/2)) +slot.rotation_euler = (math.radians(-SLOT_TILT), 0, 0); bpy.ops.object.transform_apply(rotation=True) +boolean(base, slot, 'DIFFERENCE') + +# dezente Rand-Linie +rim = cyl((R_BOARD-7)*2, 1.4, (0, 0, TOP-0.7)) +boolean(rim, cyl((R_BOARD-8.6)*2, 2.0, (0, 0, TOP-0.7)), 'DIFFERENCE') +boolean(base, rim, 'DIFFERENCE') + +# Sektor-Labels (gleich gross): links/rechts vertikal, oben/unten waagerecht -> lesbar & passt +for name, wc, _ in SECTORS: + rot = (wc - 90) if math.sin(math.radians(wc)) >= 0 else (wc + 90) # tangential, lesbar + engrave(base, name, WORD_R*math.cos(math.radians(wc)), WORD_R*math.sin(math.radians(wc)), rot) + +# Phasenname in die Chip-Mulde (Boden) graviert — durch den klaren Chip sichtbar +engrave(base, PHASE_NAME, 0, 0, 0, DESIGN_SIZE, DESIGN_DEP, ztop=TOP - CHIP_DEP) + +base.name = "RACI-Board" +try: bpy.ops.object.shade_auto_smooth(angle=math.radians(30)) +except Exception: + try: bpy.ops.object.shade_flat() + except Exception: pass + +# Material (Kontext-Farbe; fuer den Blank zweitrangig) +mat = bpy.data.materials.new("Phase"); mat.use_nodes = True +bsdf = next((n for n in mat.node_tree.nodes if n.type == 'BSDF_PRINCIPLED'), None) +if bsdf: + bsdf.inputs["Base Color"].default_value = PHASE_COLOR + try: bsdf.inputs["Roughness"].default_value = 0.5 + except Exception: pass +base.data.materials.clear(); base.data.materials.append(mat) + +# ----------------------------- Vorschau-Render ----------------------------- +try: + sc = bpy.context.scene + # Meshy-tauglich: heller, neutraler Hintergrund + gleichmaessiges Licht + try: + bg = next((n for n in sc.world.node_tree.nodes if n.type == 'BACKGROUND'), None) + if bg: + bg.inputs[0].default_value = (0.92, 0.92, 0.92, 1) + bg.inputs[1].default_value = 1.6 + except Exception: pass + bpy.ops.object.light_add(type='SUN', location=(140, -180, 260)); bpy.context.object.data.energy = 2.2 + bpy.ops.object.light_add(type='AREA', location=(-140, -60, 180)) + bpy.context.object.data.energy = 9000; bpy.context.object.data.size = 320 + bpy.ops.object.empty_add(location=(0, 0, 5)); tgt = bpy.context.object + bpy.ops.object.camera_add(location=(330, -410, 370)); cam = bpy.context.object + cam.data.lens = 50 + con = cam.constraints.new('TRACK_TO'); con.target = tgt + con.track_axis = 'TRACK_NEGATIVE_Z'; con.up_axis = 'UP_Y' + sc.camera = cam + sc.render.resolution_x, sc.render.resolution_y = 1500, 1100; sc.render.filepath = PNG_OUT + try: sc.render.engine = 'BLENDER_EEVEE_NEXT' + except Exception: + try: sc.render.engine = 'BLENDER_EEVEE' + except Exception: pass + bpy.ops.render.render(write_still=True); print("Vorschau:", PNG_OUT) +except Exception as e: + print("Render uebersprungen:", e) + +# ----------------------------- STL-Export ----------------------------- +bpy.ops.object.select_all(action='DESELECT'); base.select_set(True) +bpy.context.view_layer.objects.active = base +try: + bpy.ops.wm.stl_export(filepath=STL_OUT, export_selected_objects=True) +except Exception: + try: bpy.ops.export_mesh.stl(filepath=STL_OUT, use_selection=True) + except Exception as e: print("STL-Export manuell noetig:", e) +print("STL:", STL_OUT) diff --git a/01_3D-Druck/blender/raci_preview.png b/01_3D-Druck/blender/raci_preview.png new file mode 100644 index 0000000..7b80217 Binary files /dev/null and b/01_3D-Druck/blender/raci_preview.png differ diff --git a/01_3D-Druck/board-layout.svg b/01_3D-Druck/board-layout.svg index 5e565d3..0186c96 100644 --- a/01_3D-Druck/board-layout.svg +++ b/01_3D-Druck/board-layout.svg @@ -1,8 +1,8 @@ -Service-Lifecycle — Board-Layout (40 Pucks) -37 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø100 mm · lose Bahn, Sequenz links nach rechts +Service-Lifecycle — Board-Layout (39 Pucks) +36 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø100 mm · lose Bahn, Sequenz links nach rechts DESIGN 4 Pucks @@ -428,7 +428,7 @@ REVIEW -6 Pucks +5 Pucks @@ -439,7 +439,7 @@ rv_01 -Taktische RCA + KPIs +Service-Reviews durchf. @@ -451,7 +451,7 @@ rv_02 -Performance & Improvement +Bewertung d. Ergebnisse @@ -463,7 +463,7 @@ rv_03 -SOR Periodischer Review +Aenderungen definieren @@ -475,7 +475,7 @@ rv_04 -Service Improvement +Aenderungen starten @@ -487,24 +487,12 @@ rv_05 -Redesign / Erweiterung - - - - - - - - - - -rv_06 -Ausserbetriebnahme +Aenderungen umsetzen Betriebs-Loop - -zurueck in DPM -rv_05 Redesign / rv_06 Retirement + +zurueck in DPM +rv_05 Redesign / rv_06 Retirement Gate-Puck (rot, Etikett G1/G2/G3 + Icon) diff --git a/01_3D-Druck/gemini/Puck_Entscheidung_gemini.svg b/01_3D-Druck/gemini/Puck_Entscheidung_gemini.svg new file mode 100644 index 0000000..c74de7e --- /dev/null +++ b/01_3D-Druck/gemini/Puck_Entscheidung_gemini.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/Puck_design_gemini.svg b/01_3D-Druck/gemini/Puck_design_gemini.svg new file mode 100644 index 0000000..e9c04eb --- /dev/null +++ b/01_3D-Druck/gemini/Puck_design_gemini.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/Puck_operation_gemini.svg b/01_3D-Druck/gemini/Puck_operation_gemini.svg new file mode 100644 index 0000000..ddf2f42 --- /dev/null +++ b/01_3D-Druck/gemini/Puck_operation_gemini.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/Puck_review_gemini.svg b/01_3D-Druck/gemini/Puck_review_gemini.svg new file mode 100644 index 0000000..4ff2d68 --- /dev/null +++ b/01_3D-Druck/gemini/Puck_review_gemini.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/Puck_support_gemini.svg b/01_3D-Druck/gemini/Puck_support_gemini.svg new file mode 100644 index 0000000..c731d39 --- /dev/null +++ b/01_3D-Druck/gemini/Puck_support_gemini.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/Puck_transition_gemini.svg b/01_3D-Druck/gemini/Puck_transition_gemini.svg new file mode 100644 index 0000000..b46ebe4 --- /dev/null +++ b/01_3D-Druck/gemini/Puck_transition_gemini.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/node_modules/.bin/semver b/01_3D-Druck/gemini/build/node_modules/.bin/semver new file mode 100644 index 0000000..97c5327 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/.bin/semver @@ -0,0 +1,16 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" +else + exec node "$basedir/../semver/bin/semver.js" "$@" +fi diff --git a/01_3D-Druck/gemini/build/node_modules/.bin/semver.cmd b/01_3D-Druck/gemini/build/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..9913fa9 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/.bin/semver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* diff --git a/01_3D-Druck/gemini/build/node_modules/.bin/semver.ps1 b/01_3D-Druck/gemini/build/node_modules/.bin/semver.ps1 new file mode 100644 index 0000000..314717a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/.bin/semver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args + } else { + & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args + } else { + & "node$exe" "$basedir/../semver/bin/semver.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/01_3D-Druck/gemini/build/node_modules/.package-lock.json b/01_3D-Druck/gemini/build/node_modules/.package-lock.json new file mode 100644 index 0000000..ef42122 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/.package-lock.json @@ -0,0 +1,101 @@ +{ + "name": "build", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + } + } +} diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/LICENSE.md b/01_3D-Druck/gemini/build/node_modules/@img/colour/LICENSE.md new file mode 100644 index 0000000..292c550 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/LICENSE.md @@ -0,0 +1,82 @@ +# Licensing + +## color + +Copyright (c) 2012 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-convert + +Copyright (c) 2011-2016 Heather Arthur . +Copyright (c) 2016-2021 Josh Junon . + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-string + +Copyright (c) 2011 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## color-name + +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/README.md b/01_3D-Druck/gemini/build/node_modules/@img/colour/README.md new file mode 100644 index 0000000..a33e4eb --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/README.md @@ -0,0 +1,15 @@ +# `@img/colour` + +The latest version of the +[color](https://www.npmjs.com/package/color) +package is now ESM-only, +however some JavaScript runtimes do not yet support this, +which includes versions of Node.js prior to 20.19.0. + +This package converts the `color` package and its dependencies, +all of which are MIT-licensed, to CommonJS. + +- [color](https://www.npmjs.com/package/color) +- [color-convert](https://www.npmjs.com/package/color-convert) +- [color-string](https://www.npmjs.com/package/color-string) +- [color-name](https://www.npmjs.com/package/color-name) diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/color.cjs b/01_3D-Druck/gemini/build/node_modules/@img/colour/color.cjs new file mode 100644 index 0000000..d5b7ee2 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/color.cjs @@ -0,0 +1,1596 @@ +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// node_modules/color/index.js +var index_exports = {}; +__export(index_exports, { + default: () => index_default +}); +module.exports = __toCommonJS(index_exports); + +// node_modules/color-name/index.js +var colors = { + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + grey: [128, 128, 128], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + rebeccapurple: [102, 51, 153], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] +}; +for (const key in colors) Object.freeze(colors[key]); +var color_name_default = Object.freeze(colors); + +// node_modules/color-string/index.js +var reverseNames = /* @__PURE__ */ Object.create(null); +for (const name in color_name_default) { + if (Object.hasOwn(color_name_default, name)) { + reverseNames[color_name_default[name]] = name; + } +} +var cs = { + to: {}, + get: {} +}; +cs.get = function(string) { + const prefix = string.slice(0, 3).toLowerCase(); + let value; + let model; + switch (prefix) { + case "hsl": { + value = cs.get.hsl(string); + model = "hsl"; + break; + } + case "hwb": { + value = cs.get.hwb(string); + model = "hwb"; + break; + } + default: { + value = cs.get.rgb(string); + model = "rgb"; + break; + } + } + if (!value) { + return null; + } + return { model, value }; +}; +cs.get.rgb = function(string) { + if (!string) { + return null; + } + const abbr = /^#([a-f\d]{3,4})$/i; + const hex = /^#([a-f\d]{6})([a-f\d]{2})?$/i; + const rgba = /^rgba?\(\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)(?=[\s,])\s*(?:,\s*)?([+-]?(?:\d*\.)?\d+(?:e\d+)?)\s*(?:[\s,|/]\s*([+-]?(?:\d*\.)?\d+(?:e\d+)?)(%?)\s*)?\)$/i; + const per = /^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[\s,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/i; + const keyword = /^(\w+)$/; + let rgb = [0, 0, 0, 1]; + let match; + let i; + let hexAlpha; + if (match = string.match(hex)) { + hexAlpha = match[2]; + match = match[1]; + for (i = 0; i < 3; i++) { + const i2 = i * 2; + rgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16); + } + if (hexAlpha) { + rgb[3] = Number.parseInt(hexAlpha, 16) / 255; + } + } else if (match = string.match(abbr)) { + match = match[1]; + hexAlpha = match[3]; + for (i = 0; i < 3; i++) { + rgb[i] = Number.parseInt(match[i] + match[i], 16); + } + if (hexAlpha) { + rgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255; + } + } else if (match = string.match(rgba)) { + for (i = 0; i < 3; i++) { + rgb[i] = Number.parseFloat(match[i + 1]); + } + if (match[4]) { + rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]); + } + } else if (match = string.match(per)) { + for (i = 0; i < 3; i++) { + rgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55); + } + if (match[4]) { + rgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]); + } + } else if (match = string.toLowerCase().match(keyword)) { + if (match[1] === "transparent") { + return [0, 0, 0, 0]; + } + if (!Object.hasOwn(color_name_default, match[1])) { + return null; + } + rgb = color_name_default[match[1]].slice(); + rgb[3] = 1; + return rgb; + } else { + return null; + } + for (i = 0; i < 3; i++) { + rgb[i] = clamp(rgb[i], 0, 255); + } + rgb[3] = clamp(rgb[3], 0, 1); + return rgb; +}; +cs.get.hsl = function(string) { + if (!string) { + return null; + } + const hsl = /^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i; + const match = string.match(hsl); + if (match) { + const alpha = Number.parseFloat(match[4]); + const h = (Number.parseFloat(match[1]) % 360 + 360) % 360; + const s = clamp(Number.parseFloat(match[2]), 0, 100); + const l = clamp(Number.parseFloat(match[3]), 0, 100); + const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, s, l, a]; + } + return null; +}; +cs.get.hwb = function(string) { + if (!string) { + return null; + } + const hwb = /^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*[\s,]\s*([+-]?[\d.]+)%\s*[\s,]\s*([+-]?[\d.]+)%\s*(?:[\s,]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:e[+-]?\d+)?)\s*)?\)$/i; + const match = string.match(hwb); + if (match) { + const alpha = Number.parseFloat(match[4]); + const h = (Number.parseFloat(match[1]) % 360 + 360) % 360; + const w = clamp(Number.parseFloat(match[2]), 0, 100); + const b = clamp(Number.parseFloat(match[3]), 0, 100); + const a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1); + return [h, w, b, a]; + } + return null; +}; +cs.to.hex = function(...rgba) { + return "#" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (rgba[3] < 1 ? hexDouble(Math.round(rgba[3] * 255)) : ""); +}; +cs.to.rgb = function(...rgba) { + return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ")" : "rgba(" + Math.round(rgba[0]) + ", " + Math.round(rgba[1]) + ", " + Math.round(rgba[2]) + ", " + rgba[3] + ")"; +}; +cs.to.rgb.percent = function(...rgba) { + const r = Math.round(rgba[0] / 255 * 100); + const g = Math.round(rgba[1] / 255 * 100); + const b = Math.round(rgba[2] / 255 * 100); + return rgba.length < 4 || rgba[3] === 1 ? "rgb(" + r + "%, " + g + "%, " + b + "%)" : "rgba(" + r + "%, " + g + "%, " + b + "%, " + rgba[3] + ")"; +}; +cs.to.hsl = function(...hsla) { + return hsla.length < 4 || hsla[3] === 1 ? "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)" : "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, " + hsla[3] + ")"; +}; +cs.to.hwb = function(...hwba) { + let a = ""; + if (hwba.length >= 4 && hwba[3] !== 1) { + a = ", " + hwba[3]; + } + return "hwb(" + hwba[0] + ", " + hwba[1] + "%, " + hwba[2] + "%" + a + ")"; +}; +cs.to.keyword = function(...rgb) { + return reverseNames[rgb.slice(0, 3)]; +}; +function clamp(number_, min, max) { + return Math.min(Math.max(min, number_), max); +} +function hexDouble(number_) { + const string_ = Math.round(number_).toString(16).toUpperCase(); + return string_.length < 2 ? "0" + string_ : string_; +} +var color_string_default = cs; + +// node_modules/color-convert/conversions.js +var reverseKeywords = {}; +for (const key of Object.keys(color_name_default)) { + reverseKeywords[color_name_default[key]] = key; +} +var convert = { + rgb: { channels: 3, labels: "rgb" }, + hsl: { channels: 3, labels: "hsl" }, + hsv: { channels: 3, labels: "hsv" }, + hwb: { channels: 3, labels: "hwb" }, + cmyk: { channels: 4, labels: "cmyk" }, + xyz: { channels: 3, labels: "xyz" }, + lab: { channels: 3, labels: "lab" }, + oklab: { channels: 3, labels: ["okl", "oka", "okb"] }, + lch: { channels: 3, labels: "lch" }, + oklch: { channels: 3, labels: ["okl", "okc", "okh"] }, + hex: { channels: 1, labels: ["hex"] }, + keyword: { channels: 1, labels: ["keyword"] }, + ansi16: { channels: 1, labels: ["ansi16"] }, + ansi256: { channels: 1, labels: ["ansi256"] }, + hcg: { channels: 3, labels: ["h", "c", "g"] }, + apple: { channels: 3, labels: ["r16", "g16", "b16"] }, + gray: { channels: 1, labels: ["gray"] } +}; +var conversions_default = convert; +var LAB_FT = (6 / 29) ** 3; +function srgbNonlinearTransform(c) { + const cc = c > 31308e-7 ? 1.055 * c ** (1 / 2.4) - 0.055 : c * 12.92; + return Math.min(Math.max(0, cc), 1); +} +function srgbNonlinearTransformInv(c) { + return c > 0.04045 ? ((c + 0.055) / 1.055) ** 2.4 : c / 12.92; +} +for (const model of Object.keys(convert)) { + if (!("channels" in convert[model])) { + throw new Error("missing channels property: " + model); + } + if (!("labels" in convert[model])) { + throw new Error("missing channel labels property: " + model); + } + if (convert[model].labels.length !== convert[model].channels) { + throw new Error("channel and label counts mismatch: " + model); + } + const { channels, labels } = convert[model]; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], "channels", { value: channels }); + Object.defineProperty(convert[model], "labels", { value: labels }); +} +convert.rgb.hsl = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + switch (max) { + case min: { + h = 0; + break; + } + case r: { + h = (g - b) / delta; + break; + } + case g: { + h = 2 + (b - r) / delta; + break; + } + case b: { + h = 4 + (r - g) / delta; + break; + } + } + h = Math.min(h * 60, 360); + if (h < 0) { + h += 360; + } + const l = (min + max) / 2; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + return [h, s * 100, l * 100]; +}; +convert.rgb.hsv = function(rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function(c) { + return (v - c) / 6 / diff + 1 / 2; + }; + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + switch (v) { + case r: { + h = bdif - gdif; + break; + } + case g: { + h = 1 / 3 + rdif - bdif; + break; + } + case b: { + h = 2 / 3 + gdif - rdif; + break; + } + } + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + return [ + h * 360, + s * 100, + v * 100 + ]; +}; +convert.rgb.hwb = function(rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; +}; +convert.rgb.oklab = function(rgb) { + const r = srgbNonlinearTransformInv(rgb[0] / 255); + const g = srgbNonlinearTransformInv(rgb[1] / 255); + const b = srgbNonlinearTransformInv(rgb[2] / 255); + const lp = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b); + const mp = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b); + const sp = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b); + const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp; + const aa = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp; + const bb = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp; + return [l * 100, aa * 100, bb * 100]; +}; +convert.rgb.cmyk = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; +}; +function comparativeDistance(x, y) { + return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; +} +convert.rgb.keyword = function(rgb) { + const reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + let currentClosestDistance = Number.POSITIVE_INFINITY; + let currentClosestKeyword; + for (const keyword of Object.keys(color_name_default)) { + const value = color_name_default[keyword]; + const distance = comparativeDistance(rgb, value); + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + return currentClosestKeyword; +}; +convert.keyword.rgb = function(keyword) { + return [...color_name_default[keyword]]; +}; +convert.rgb.xyz = function(rgb) { + const r = srgbNonlinearTransformInv(rgb[0] / 255); + const g = srgbNonlinearTransformInv(rgb[1] / 255); + const b = srgbNonlinearTransformInv(rgb[2] / 255); + const x = r * 0.4124564 + g * 0.3575761 + b * 0.1804375; + const y = r * 0.2126729 + g * 0.7151522 + b * 0.072175; + const z = r * 0.0193339 + g * 0.119192 + b * 0.9503041; + return [x * 100, y * 100, z * 100]; +}; +convert.rgb.lab = function(rgb) { + const xyz = convert.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; +convert.hsl.rgb = function(hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t3; + let value; + if (s === 0) { + value = l * 255; + return [value, value, value]; + } + const t2 = l < 0.5 ? l * (1 + s) : l + s - l * s; + const t1 = 2 * l - t2; + const rgb = [0, 0, 0]; + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + if (t3 > 1) { + t3--; + } + if (6 * t3 < 1) { + value = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + value = t2; + } else if (3 * t3 < 2) { + value = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + value = t1; + } + rgb[i] = value * 255; + } + return rgb; +}; +convert.hsl.hsv = function(hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; +}; +convert.hsv.rgb = function(hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - s * f); + const t = 255 * v * (1 - s * (1 - f)); + v *= 255; + switch (hi) { + case 0: { + return [v, t, p]; + } + case 1: { + return [q, v, p]; + } + case 2: { + return [p, v, t]; + } + case 3: { + return [p, q, v]; + } + case 4: { + return [t, p, v]; + } + case 5: { + return [v, p, q]; + } + } +}; +convert.hsv.hsl = function(hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; +}; +convert.hwb.rgb = function(hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + if ((i & 1) !== 0) { + f = 1 - f; + } + const n = wh + f * (v - wh); + let r; + let g; + let b; + switch (i) { + default: + case 6: + case 0: { + r = v; + g = n; + b = wh; + break; + } + case 1: { + r = n; + g = v; + b = wh; + break; + } + case 2: { + r = wh; + g = v; + b = n; + break; + } + case 3: { + r = wh; + g = n; + b = v; + break; + } + case 4: { + r = n; + g = wh; + b = v; + break; + } + case 5: { + r = v; + g = wh; + b = n; + break; + } + } + return [r * 255, g * 255, b * 255]; +}; +convert.cmyk.rgb = function(cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; +}; +convert.xyz.rgb = function(xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + r = x * 3.2404542 + y * -1.5371385 + z * -0.4985314; + g = x * -0.969266 + y * 1.8760108 + z * 0.041556; + b = x * 0.0556434 + y * -0.2040259 + z * 1.0572252; + r = srgbNonlinearTransform(r); + g = srgbNonlinearTransform(g); + b = srgbNonlinearTransform(b); + return [r * 255, g * 255, b * 255]; +}; +convert.xyz.lab = function(xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > LAB_FT ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > LAB_FT ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > LAB_FT ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; +convert.xyz.oklab = function(xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + const lp = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z); + const mp = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z); + const sp = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z); + const l = 0.2104542553 * lp + 0.793617785 * mp - 0.0040720468 * sp; + const a = 1.9779984951 * lp - 2.428592205 * mp + 0.4505937099 * sp; + const b = 0.0259040371 * lp + 0.7827717662 * mp - 0.808675766 * sp; + return [l * 100, a * 100, b * 100]; +}; +convert.oklab.oklch = function(oklab) { + return convert.lab.lch(oklab); +}; +convert.oklab.xyz = function(oklab) { + const ll = oklab[0] / 100; + const a = oklab[1] / 100; + const b = oklab[2] / 100; + const l = (0.999999998 * ll + 0.396337792 * a + 0.215803758 * b) ** 3; + const m = (1.000000008 * ll - 0.105561342 * a - 0.063854175 * b) ** 3; + const s = (1.000000055 * ll - 0.089484182 * a - 1.291485538 * b) ** 3; + const x = 1.227013851 * l - 0.55779998 * m + 0.281256149 * s; + const y = -0.040580178 * l + 1.11225687 * m - 0.071676679 * s; + const z = -0.076381285 * l - 0.421481978 * m + 1.58616322 * s; + return [x * 100, y * 100, z * 100]; +}; +convert.oklab.rgb = function(oklab) { + const ll = oklab[0] / 100; + const aa = oklab[1] / 100; + const bb = oklab[2] / 100; + const l = (ll + 0.3963377774 * aa + 0.2158037573 * bb) ** 3; + const m = (ll - 0.1055613458 * aa - 0.0638541728 * bb) ** 3; + const s = (ll - 0.0894841775 * aa - 1.291485548 * bb) ** 3; + const r = srgbNonlinearTransform(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s); + const g = srgbNonlinearTransform(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s); + const b = srgbNonlinearTransform(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s); + return [r * 255, g * 255, b * 255]; +}; +convert.oklch.oklab = function(oklch) { + return convert.lch.lab(oklch); +}; +convert.lab.xyz = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787; + x = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787; + z = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; +}; +convert.lab.lch = function(lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + if (h < 0) { + h += 360; + } + const c = Math.sqrt(a * a + b * b); + return [l, c, h]; +}; +convert.lch.lab = function(lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + return [l, a, b]; +}; +convert.rgb.ansi16 = function(args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; + value = Math.round(value / 50); + if (value === 0) { + return 30; + } + let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (value === 2) { + ansi += 60; + } + return ansi; +}; +convert.hsv.ansi16 = function(args) { + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; +convert.rgb.ansi256 = function(args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; + if (r >> 4 === g >> 4 && g >> 4 === b >> 4) { + if (r < 8) { + return 16; + } + if (r > 248) { + return 231; + } + return Math.round((r - 8) / 247 * 24) + 232; + } + const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; +}; +convert.ansi16.rgb = function(args) { + args = args[0]; + let color = args % 10; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + color = color / 10.5 * 255; + return [color, color, color]; + } + const mult = (Math.trunc(args > 50) + 1) * 0.5; + const r = (color & 1) * mult * 255; + const g = (color >> 1 & 1) * mult * 255; + const b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; +}; +convert.ansi256.rgb = function(args) { + args = args[0]; + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + args -= 16; + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = rem % 6 / 5 * 255; + return [r, g, b]; +}; +convert.rgb.hex = function(args) { + const integer = ((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255); + const string = integer.toString(16).toUpperCase(); + return "000000".slice(string.length) + string; +}; +convert.hex.rgb = function(args) { + const match = args.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i); + if (!match) { + return [0, 0, 0]; + } + let colorString = match[0]; + if (match[0].length === 3) { + colorString = [...colorString].map((char) => char + char).join(""); + } + const integer = Number.parseInt(colorString, 16); + const r = integer >> 16 & 255; + const g = integer >> 8 & 255; + const b = integer & 255; + return [r, g, b]; +}; +convert.rgb.hcg = function(rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = max - min; + let hue; + const grayscale = chroma < 1 ? min / (1 - chroma) : 0; + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; +}; +convert.hsl.hcg = function(hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + const c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l); + let f = 0; + if (c < 1) { + f = (l - 0.5 * c) / (1 - c); + } + return [hsl[0], c * 100, f * 100]; +}; +convert.hsv.hcg = function(hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const c = s * v; + let f = 0; + if (c < 1) { + f = (v - c) / (1 - c); + } + return [hsv[0], c * 100, f * 100]; +}; +convert.hcg.rgb = function(hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + if (c === 0) { + return [g * 255, g * 255, g * 255]; + } + const pure = [0, 0, 0]; + const hi = h % 1 * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + switch (Math.floor(hi)) { + case 0: { + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + } + case 1: { + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + } + case 2: { + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + } + case 3: { + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + } + case 4: { + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + } + default: { + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + } + mg = (1 - c) * g; + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; +convert.hcg.hsv = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + let f = 0; + if (v > 0) { + f = c / v; + } + return [hcg[0], f * 100, v * 100]; +}; +convert.hcg.hsl = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const l = g * (1 - c) + 0.5 * c; + let s = 0; + if (l > 0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1) { + s = c / (2 * (1 - l)); + } + return [hcg[0], s * 100, l * 100]; +}; +convert.hcg.hwb = function(hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; +convert.hwb.hcg = function(hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + if (c < 1) { + g = (v - c) / (1 - c); + } + return [hwb[0], c * 100, g * 100]; +}; +convert.apple.rgb = function(apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; +}; +convert.rgb.apple = function(rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; +}; +convert.gray.rgb = function(args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; +convert.gray.hsl = function(args) { + return [0, 0, args[0]]; +}; +convert.gray.hsv = convert.gray.hsl; +convert.gray.hwb = function(gray) { + return [0, 100, gray[0]]; +}; +convert.gray.cmyk = function(gray) { + return [0, 0, 0, gray[0]]; +}; +convert.gray.lab = function(gray) { + return [gray[0], 0, 0]; +}; +convert.gray.hex = function(gray) { + const value = Math.round(gray[0] / 100 * 255) & 255; + const integer = (value << 16) + (value << 8) + value; + const string = integer.toString(16).toUpperCase(); + return "000000".slice(string.length) + string; +}; +convert.rgb.gray = function(rgb) { + const value = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [value / 255 * 100]; +}; + +// node_modules/color-convert/route.js +function buildGraph() { + const graph = {}; + const models2 = Object.keys(conversions_default); + for (let { length } = models2, i = 0; i < length; i++) { + graph[models2[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + return graph; +} +function deriveBFS(fromModel) { + const graph = buildGraph(); + const queue = [fromModel]; + graph[fromModel].distance = 0; + while (queue.length > 0) { + const current = queue.pop(); + const adjacents = Object.keys(conversions_default[current]); + for (let { length } = adjacents, i = 0; i < length; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + return graph; +} +function link(from, to) { + return function(args) { + return to(from(args)); + }; +} +function wrapConversion(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions_default[graph[toModel].parent][toModel]; + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions_default[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + fn.conversion = path; + return fn; +} +function route(fromModel) { + const graph = deriveBFS(fromModel); + const conversion = {}; + const models2 = Object.keys(graph); + for (let { length } = models2, i = 0; i < length; i++) { + const toModel = models2[i]; + const node = graph[toModel]; + if (node.parent === null) { + continue; + } + conversion[toModel] = wrapConversion(toModel, graph); + } + return conversion; +} +var route_default = route; + +// node_modules/color-convert/index.js +var convert2 = {}; +var models = Object.keys(conversions_default); +function wrapRaw(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === void 0 || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + return fn(args); + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; +} +function wrapRounded(fn) { + const wrappedFn = function(...args) { + const arg0 = args[0]; + if (arg0 === void 0 || arg0 === null) { + return arg0; + } + if (arg0.length > 1) { + args = arg0; + } + const result = fn(args); + if (typeof result === "object") { + for (let { length } = result, i = 0; i < length; i++) { + result[i] = Math.round(result[i]); + } + } + return result; + }; + if ("conversion" in fn) { + wrappedFn.conversion = fn.conversion; + } + return wrappedFn; +} +for (const fromModel of models) { + convert2[fromModel] = {}; + Object.defineProperty(convert2[fromModel], "channels", { value: conversions_default[fromModel].channels }); + Object.defineProperty(convert2[fromModel], "labels", { value: conversions_default[fromModel].labels }); + const routes = route_default(fromModel); + const routeModels = Object.keys(routes); + for (const toModel of routeModels) { + const fn = routes[toModel]; + convert2[fromModel][toModel] = wrapRounded(fn); + convert2[fromModel][toModel].raw = wrapRaw(fn); + } +} +var color_convert_default = convert2; + +// node_modules/color/index.js +var skippedModels = [ + // To be honest, I don't really feel like keyword belongs in color convert, but eh. + "keyword", + // Gray conflicts with some method names, and has its own method defined. + "gray", + // Shouldn't really be in color-convert either... + "hex" +]; +var hashedModelKeys = {}; +for (const model of Object.keys(color_convert_default)) { + hashedModelKeys[[...color_convert_default[model].labels].sort().join("")] = model; +} +var limiters = {}; +function Color(object, model) { + if (!(this instanceof Color)) { + return new Color(object, model); + } + if (model && model in skippedModels) { + model = null; + } + if (model && !(model in color_convert_default)) { + throw new Error("Unknown model: " + model); + } + let i; + let channels; + if (object == null) { + this.model = "rgb"; + this.color = [0, 0, 0]; + this.valpha = 1; + } else if (object instanceof Color) { + this.model = object.model; + this.color = [...object.color]; + this.valpha = object.valpha; + } else if (typeof object === "string") { + const result = color_string_default.get(object); + if (result === null) { + throw new Error("Unable to parse color from string: " + object); + } + this.model = result.model; + channels = color_convert_default[this.model].channels; + this.color = result.value.slice(0, channels); + this.valpha = typeof result.value[channels] === "number" ? result.value[channels] : 1; + } else if (object.length > 0) { + this.model = model || "rgb"; + channels = color_convert_default[this.model].channels; + const newArray = Array.prototype.slice.call(object, 0, channels); + this.color = zeroArray(newArray, channels); + this.valpha = typeof object[channels] === "number" ? object[channels] : 1; + } else if (typeof object === "number") { + this.model = "rgb"; + this.color = [ + object >> 16 & 255, + object >> 8 & 255, + object & 255 + ]; + this.valpha = 1; + } else { + this.valpha = 1; + const keys = Object.keys(object); + if ("alpha" in object) { + keys.splice(keys.indexOf("alpha"), 1); + this.valpha = typeof object.alpha === "number" ? object.alpha : 0; + } + const hashedKeys = keys.sort().join(""); + if (!(hashedKeys in hashedModelKeys)) { + throw new Error("Unable to parse color from object: " + JSON.stringify(object)); + } + this.model = hashedModelKeys[hashedKeys]; + const { labels } = color_convert_default[this.model]; + const color = []; + for (i = 0; i < labels.length; i++) { + color.push(object[labels[i]]); + } + this.color = zeroArray(color); + } + if (limiters[this.model]) { + channels = color_convert_default[this.model].channels; + for (i = 0; i < channels; i++) { + const limit = limiters[this.model][i]; + if (limit) { + this.color[i] = limit(this.color[i]); + } + } + } + this.valpha = Math.max(0, Math.min(1, this.valpha)); + if (Object.freeze) { + Object.freeze(this); + } +} +Color.prototype = { + toString() { + return this.string(); + }, + toJSON() { + return this[this.model](); + }, + string(places) { + let self = this.model in color_string_default.to ? this : this.rgb(); + self = self.round(typeof places === "number" ? places : 1); + const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha]; + return color_string_default.to[self.model](...arguments_); + }, + percentString(places) { + const self = this.rgb().round(typeof places === "number" ? places : 1); + const arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha]; + return color_string_default.to.rgb.percent(...arguments_); + }, + array() { + return this.valpha === 1 ? [...this.color] : [...this.color, this.valpha]; + }, + object() { + const result = {}; + const { channels } = color_convert_default[this.model]; + const { labels } = color_convert_default[this.model]; + for (let i = 0; i < channels; i++) { + result[labels[i]] = this.color[i]; + } + if (this.valpha !== 1) { + result.alpha = this.valpha; + } + return result; + }, + unitArray() { + const rgb = this.rgb().color; + rgb[0] /= 255; + rgb[1] /= 255; + rgb[2] /= 255; + if (this.valpha !== 1) { + rgb.push(this.valpha); + } + return rgb; + }, + unitObject() { + const rgb = this.rgb().object(); + rgb.r /= 255; + rgb.g /= 255; + rgb.b /= 255; + if (this.valpha !== 1) { + rgb.alpha = this.valpha; + } + return rgb; + }, + round(places) { + places = Math.max(places || 0, 0); + return new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model); + }, + alpha(value) { + if (value !== void 0) { + return new Color([...this.color, Math.max(0, Math.min(1, value))], this.model); + } + return this.valpha; + }, + // Rgb + red: getset("rgb", 0, maxfn(255)), + green: getset("rgb", 1, maxfn(255)), + blue: getset("rgb", 2, maxfn(255)), + hue: getset(["hsl", "hsv", "hsl", "hwb", "hcg"], 0, (value) => (value % 360 + 360) % 360), + saturationl: getset("hsl", 1, maxfn(100)), + lightness: getset("hsl", 2, maxfn(100)), + saturationv: getset("hsv", 1, maxfn(100)), + value: getset("hsv", 2, maxfn(100)), + chroma: getset("hcg", 1, maxfn(100)), + gray: getset("hcg", 2, maxfn(100)), + white: getset("hwb", 1, maxfn(100)), + wblack: getset("hwb", 2, maxfn(100)), + cyan: getset("cmyk", 0, maxfn(100)), + magenta: getset("cmyk", 1, maxfn(100)), + yellow: getset("cmyk", 2, maxfn(100)), + black: getset("cmyk", 3, maxfn(100)), + x: getset("xyz", 0, maxfn(95.047)), + y: getset("xyz", 1, maxfn(100)), + z: getset("xyz", 2, maxfn(108.833)), + l: getset("lab", 0, maxfn(100)), + a: getset("lab", 1), + b: getset("lab", 2), + keyword(value) { + if (value !== void 0) { + return new Color(value); + } + return color_convert_default[this.model].keyword(this.color); + }, + hex(value) { + if (value !== void 0) { + return new Color(value); + } + return color_string_default.to.hex(...this.rgb().round().color); + }, + hexa(value) { + if (value !== void 0) { + return new Color(value); + } + const rgbArray = this.rgb().round().color; + let alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase(); + if (alphaHex.length === 1) { + alphaHex = "0" + alphaHex; + } + return color_string_default.to.hex(...rgbArray) + alphaHex; + }, + rgbNumber() { + const rgb = this.rgb().color; + return (rgb[0] & 255) << 16 | (rgb[1] & 255) << 8 | rgb[2] & 255; + }, + luminosity() { + const rgb = this.rgb().color; + const lum = []; + for (const [i, element] of rgb.entries()) { + const chan = element / 255; + lum[i] = chan <= 0.04045 ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4; + } + return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2]; + }, + contrast(color2) { + const lum1 = this.luminosity(); + const lum2 = color2.luminosity(); + if (lum1 > lum2) { + return (lum1 + 0.05) / (lum2 + 0.05); + } + return (lum2 + 0.05) / (lum1 + 0.05); + }, + level(color2) { + const contrastRatio = this.contrast(color2); + if (contrastRatio >= 7) { + return "AAA"; + } + return contrastRatio >= 4.5 ? "AA" : ""; + }, + isDark() { + const rgb = this.rgb().color; + const yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 1e4; + return yiq < 128; + }, + isLight() { + return !this.isDark(); + }, + negate() { + const rgb = this.rgb(); + for (let i = 0; i < 3; i++) { + rgb.color[i] = 255 - rgb.color[i]; + } + return rgb; + }, + lighten(ratio) { + const hsl = this.hsl(); + hsl.color[2] += hsl.color[2] * ratio; + return hsl; + }, + darken(ratio) { + const hsl = this.hsl(); + hsl.color[2] -= hsl.color[2] * ratio; + return hsl; + }, + saturate(ratio) { + const hsl = this.hsl(); + hsl.color[1] += hsl.color[1] * ratio; + return hsl; + }, + desaturate(ratio) { + const hsl = this.hsl(); + hsl.color[1] -= hsl.color[1] * ratio; + return hsl; + }, + whiten(ratio) { + const hwb = this.hwb(); + hwb.color[1] += hwb.color[1] * ratio; + return hwb; + }, + blacken(ratio) { + const hwb = this.hwb(); + hwb.color[2] += hwb.color[2] * ratio; + return hwb; + }, + grayscale() { + const rgb = this.rgb().color; + const value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11; + return Color.rgb(value, value, value); + }, + fade(ratio) { + return this.alpha(this.valpha - this.valpha * ratio); + }, + opaquer(ratio) { + return this.alpha(this.valpha + this.valpha * ratio); + }, + rotate(degrees) { + const hsl = this.hsl(); + let hue = hsl.color[0]; + hue = (hue + degrees) % 360; + hue = hue < 0 ? 360 + hue : hue; + hsl.color[0] = hue; + return hsl; + }, + mix(mixinColor, weight) { + if (!mixinColor || !mixinColor.rgb) { + throw new Error('Argument to "mix" was not a Color instance, but rather an instance of ' + typeof mixinColor); + } + const color1 = mixinColor.rgb(); + const color2 = this.rgb(); + const p = weight === void 0 ? 0.5 : weight; + const w = 2 * p - 1; + const a = color1.alpha() - color2.alpha(); + const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2; + const w2 = 1 - w1; + return Color.rgb( + w1 * color1.red() + w2 * color2.red(), + w1 * color1.green() + w2 * color2.green(), + w1 * color1.blue() + w2 * color2.blue(), + color1.alpha() * p + color2.alpha() * (1 - p) + ); + } +}; +for (const model of Object.keys(color_convert_default)) { + if (skippedModels.includes(model)) { + continue; + } + const { channels } = color_convert_default[model]; + Color.prototype[model] = function(...arguments_) { + if (this.model === model) { + return new Color(this); + } + if (arguments_.length > 0) { + return new Color(arguments_, model); + } + return new Color([...assertArray(color_convert_default[this.model][model].raw(this.color)), this.valpha], model); + }; + Color[model] = function(...arguments_) { + let color = arguments_[0]; + if (typeof color === "number") { + color = zeroArray(arguments_, channels); + } + return new Color(color, model); + }; +} +function roundTo(number, places) { + return Number(number.toFixed(places)); +} +function roundToPlace(places) { + return function(number) { + return roundTo(number, places); + }; +} +function getset(model, channel, modifier) { + model = Array.isArray(model) ? model : [model]; + for (const m of model) { + (limiters[m] ||= [])[channel] = modifier; + } + model = model[0]; + return function(value) { + let result; + if (value !== void 0) { + if (modifier) { + value = modifier(value); + } + result = this[model](); + result.color[channel] = value; + return result; + } + result = this[model]().color[channel]; + if (modifier) { + result = modifier(result); + } + return result; + }; +} +function maxfn(max) { + return function(v) { + return Math.max(0, Math.min(max, v)); + }; +} +function assertArray(value) { + return Array.isArray(value) ? value : [value]; +} +function zeroArray(array, length) { + for (let i = 0; i < length; i++) { + if (typeof array[i] !== "number") { + array[i] = 0; + } + } + return array; +} +var index_default = Color; diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/index.cjs b/01_3D-Druck/gemini/build/node_modules/@img/colour/index.cjs new file mode 100644 index 0000000..25596b2 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/index.cjs @@ -0,0 +1 @@ +module.exports = require("./color.cjs").default; diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/index.d.ts b/01_3D-Druck/gemini/build/node_modules/@img/colour/index.d.ts new file mode 100644 index 0000000..ca2461f --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/index.d.ts @@ -0,0 +1,929 @@ +// Generated by dts-bundle-generator v9.5.1 + +type Channels = number; +type RGB = [ + r: number, + g: number, + b: number +]; +type HSL = [ + h: number, + s: number, + l: number +]; +type HSV = [ + h: number, + s: number, + v: number +]; +type CMYK = [ + c: number, + m: number, + y: number, + k: number +]; +type LAB = [ + l: number, + a: number, + b: number +]; +type LCH = [ + l: number, + c: number, + h: number +]; +type HCG = [ + h: number, + c: number, + g: number +]; +type HWB = [ + h: number, + w: number, + b: number +]; +type XYZ = [ + x: number, + y: number, + z: number +]; +type Apple = [ + r16: number, + g16: number, + b16: number +]; +type Gray = [ + gray: number +]; +type ANSI16 = number; +type ANSI256 = number; +type Keyword = string; +type HEX = string; +declare namespace route { + type rgb = { + hsl(from: RGB): HSL; + hsl(...from: RGB): HSL; + hsl(from: RGB): HSL; + hsl(...from: RGB): HSL; + hsv(from: RGB): HSV; + hsv(...from: RGB): HSV; + hwb(from: RGB): HWB; + hwb(...from: RGB): HWB; + cmyk(from: RGB): CMYK; + cmyk(...from: RGB): CMYK; + xyz(from: RGB): XYZ; + xyz(...from: RGB): XYZ; + lab(from: RGB): LAB; + lab(...from: RGB): LAB; + lch(from: RGB): LCH; + lch(...from: RGB): LCH; + hex(from: RGB): HEX; + hex(...from: RGB): HEX; + keyword(from: RGB): Keyword; + keyword(...from: RGB): Keyword; + ansi16(from: RGB): ANSI16; + ansi16(...from: RGB): ANSI16; + ansi256(from: RGB): ANSI256; + ansi256(...from: RGB): ANSI256; + hcg(from: RGB): HCG; + hcg(...from: RGB): HCG; + apple(from: RGB): Apple; + apple(...from: RGB): Apple; + gray(from: RGB): Gray; + gray(...from: RGB): Gray; + }; + type hsl = { + rgb(from: HSL): RGB; + rgb(...from: HSL): RGB; + hsv(from: HSL): HSV; + hsv(...from: HSL): HSV; + hwb(from: HSL): HWB; + hwb(...from: HSL): HWB; + cmyk(from: HSL): CMYK; + cmyk(...from: HSL): CMYK; + xyz(from: HSL): XYZ; + xyz(...from: HSL): XYZ; + lab(from: HSL): LAB; + lab(...from: HSL): LAB; + lch(from: HSL): LCH; + lch(...from: HSL): LCH; + hex(from: HSL): HEX; + hex(...from: HSL): HEX; + keyword(from: HSL): Keyword; + keyword(...from: HSL): Keyword; + ansi16(from: HSL): ANSI16; + ansi16(...from: HSL): ANSI16; + ansi256(from: HSL): ANSI256; + ansi256(...from: HSL): ANSI256; + hcg(from: HSL): HCG; + hcg(...from: HSL): HCG; + apple(from: HSL): Apple; + apple(...from: HSL): Apple; + gray(from: HSL): Gray; + gray(...from: HSL): Gray; + }; + type hsv = { + rgb(from: HSV): RGB; + rgb(...from: HSV): RGB; + hsl(from: HSV): HSL; + hsl(...from: HSV): HSL; + hwb(from: HSV): HWB; + hwb(...from: HSV): HWB; + cmyk(from: HSV): CMYK; + cmyk(...from: HSV): CMYK; + xyz(from: HSV): XYZ; + xyz(...from: HSV): XYZ; + lab(from: HSV): LAB; + lab(...from: HSV): LAB; + lch(from: HSV): LCH; + lch(...from: HSV): LCH; + hex(from: HSV): HEX; + hex(...from: HSV): HEX; + keyword(from: HSV): Keyword; + keyword(...from: HSV): Keyword; + ansi16(from: HSV): ANSI16; + ansi16(...from: HSV): ANSI16; + ansi256(from: HSV): ANSI256; + ansi256(...from: HSV): ANSI256; + hcg(from: HSV): HCG; + hcg(...from: HSV): HCG; + apple(from: HSV): Apple; + apple(...from: HSV): Apple; + gray(from: HSV): Gray; + gray(...from: HSV): Gray; + }; + type hwb = { + rgb(from: HWB): RGB; + rgb(...from: HWB): RGB; + hsl(from: HWB): HSL; + hsl(...from: HWB): HSL; + hsv(from: HWB): HSV; + hsv(...from: HWB): HSV; + cmyk(from: HWB): CMYK; + cmyk(...from: HWB): CMYK; + xyz(from: HWB): XYZ; + xyz(...from: HWB): XYZ; + lab(from: HWB): LAB; + lab(...from: HWB): LAB; + lch(from: HWB): LCH; + lch(...from: HWB): LCH; + hex(from: HWB): HEX; + hex(...from: HWB): HEX; + keyword(from: HWB): Keyword; + keyword(...from: HWB): Keyword; + ansi16(from: HWB): ANSI16; + ansi16(...from: HWB): ANSI16; + ansi256(from: HWB): ANSI256; + ansi256(...from: HWB): ANSI256; + hcg(from: HWB): HCG; + hcg(...from: HWB): HCG; + apple(from: HWB): Apple; + apple(...from: HWB): Apple; + gray(from: HWB): Gray; + gray(...from: HWB): Gray; + }; + type cmyk = { + rgb(from: CMYK): RGB; + rgb(...from: CMYK): RGB; + hsl(from: CMYK): HSL; + hsl(...from: CMYK): HSL; + hsv(from: CMYK): HSV; + hsv(...from: CMYK): HSV; + hwb(from: CMYK): HWB; + hwb(...from: CMYK): HWB; + xyz(from: CMYK): XYZ; + xyz(...from: CMYK): XYZ; + lab(from: CMYK): LAB; + lab(...from: CMYK): LAB; + lch(from: CMYK): LCH; + lch(...from: CMYK): LCH; + hex(from: CMYK): HEX; + hex(...from: CMYK): HEX; + keyword(from: CMYK): Keyword; + keyword(...from: CMYK): Keyword; + ansi16(from: CMYK): ANSI16; + ansi16(...from: CMYK): ANSI16; + ansi256(from: CMYK): ANSI256; + ansi256(...from: CMYK): ANSI256; + hcg(from: CMYK): HCG; + hcg(...from: CMYK): HCG; + apple(from: CMYK): Apple; + apple(...from: CMYK): Apple; + gray(from: CMYK): Gray; + gray(...from: CMYK): Gray; + }; + type xyz = { + rgb(from: XYZ): RGB; + rgb(...from: XYZ): RGB; + hsl(from: XYZ): HSL; + hsl(...from: XYZ): HSL; + hsv(from: XYZ): HSV; + hsv(...from: XYZ): HSV; + hwb(from: XYZ): HWB; + hwb(...from: XYZ): HWB; + cmyk(from: XYZ): CMYK; + cmyk(...from: XYZ): CMYK; + lab(from: XYZ): LAB; + lab(...from: XYZ): LAB; + lch(from: XYZ): LCH; + lch(...from: XYZ): LCH; + hex(from: XYZ): HEX; + hex(...from: XYZ): HEX; + keyword(from: XYZ): Keyword; + keyword(...from: XYZ): Keyword; + ansi16(from: XYZ): ANSI16; + ansi16(...from: XYZ): ANSI16; + ansi256(from: XYZ): ANSI256; + ansi256(...from: XYZ): ANSI256; + hcg(from: XYZ): HCG; + hcg(...from: XYZ): HCG; + apple(from: XYZ): Apple; + apple(...from: XYZ): Apple; + gray(from: XYZ): Gray; + gray(...from: XYZ): Gray; + }; + type lab = { + rgb(from: LAB): RGB; + rgb(...from: LAB): RGB; + hsl(from: LAB): HSL; + hsl(...from: LAB): HSL; + hsv(from: LAB): HSV; + hsv(...from: LAB): HSV; + hwb(from: LAB): HWB; + hwb(...from: LAB): HWB; + cmyk(from: LAB): CMYK; + cmyk(...from: LAB): CMYK; + xyz(from: LAB): XYZ; + xyz(...from: LAB): XYZ; + lch(from: LAB): LCH; + lch(...from: LAB): LCH; + hex(from: LAB): HEX; + hex(...from: LAB): HEX; + keyword(from: LAB): Keyword; + keyword(...from: LAB): Keyword; + ansi16(from: LAB): ANSI16; + ansi16(...from: LAB): ANSI16; + ansi256(from: LAB): ANSI256; + ansi256(...from: LAB): ANSI256; + hcg(from: LAB): HCG; + hcg(...from: LAB): HCG; + apple(from: LAB): Apple; + apple(...from: LAB): Apple; + gray(from: LAB): Gray; + gray(...from: LAB): Gray; + }; + type lch = { + rgb(from: LCH): RGB; + rgb(...from: LCH): RGB; + hsl(from: LCH): HSL; + hsl(...from: LCH): HSL; + hsv(from: LCH): HSV; + hsv(...from: LCH): HSV; + hwb(from: LCH): HWB; + hwb(...from: LCH): HWB; + cmyk(from: LCH): CMYK; + cmyk(...from: LCH): CMYK; + xyz(from: LCH): XYZ; + xyz(...from: LCH): XYZ; + lab(from: LCH): LAB; + lab(...from: LCH): LAB; + hex(from: LCH): HEX; + hex(...from: LCH): HEX; + keyword(from: LCH): Keyword; + keyword(...from: LCH): Keyword; + ansi16(from: LCH): ANSI16; + ansi16(...from: LCH): ANSI16; + ansi256(from: LCH): ANSI256; + ansi256(...from: LCH): ANSI256; + hcg(from: LCH): HCG; + hcg(...from: LCH): HCG; + apple(from: LCH): Apple; + apple(...from: LCH): Apple; + gray(from: LCH): Gray; + gray(...from: LCH): Gray; + }; + type hex = { + rgb(from: HEX): RGB; + hsl(from: HEX): HSL; + hsv(from: HEX): HSV; + hwb(from: HEX): HWB; + cmyk(from: HEX): CMYK; + xyz(from: HEX): XYZ; + lab(from: HEX): LAB; + lch(from: HEX): LCH; + keyword(from: HEX): Keyword; + ansi16(from: HEX): ANSI16; + ansi256(from: HEX): ANSI256; + hcg(from: HEX): HCG; + apple(from: HEX): Apple; + gray(from: HEX): Gray; + }; + type keyword = { + rgb(from: Keyword): RGB; + hsl(from: Keyword): HSL; + hsv(from: Keyword): HSV; + hwb(from: Keyword): HWB; + cmyk(from: Keyword): CMYK; + xyz(from: Keyword): XYZ; + lab(from: Keyword): LAB; + lch(from: Keyword): LCH; + hex(from: Keyword): HEX; + ansi16(from: Keyword): ANSI16; + ansi256(from: Keyword): ANSI256; + hcg(from: Keyword): HCG; + apple(from: Keyword): Apple; + gray(from: Keyword): Gray; + }; + type ansi16 = { + rgb(from: ANSI16): RGB; + hsl(from: ANSI16): HSL; + hsv(from: ANSI16): HSV; + hwb(from: ANSI16): HWB; + cmyk(from: ANSI16): CMYK; + xyz(from: ANSI16): XYZ; + lab(from: ANSI16): LAB; + lch(from: ANSI16): LCH; + hex(from: ANSI16): HEX; + keyword(from: ANSI16): Keyword; + ansi256(from: ANSI16): ANSI256; + hcg(from: ANSI16): HCG; + apple(from: ANSI16): Apple; + gray(from: ANSI16): Gray; + }; + type ansi256 = { + rgb(from: ANSI256): RGB; + hsl(from: ANSI256): HSL; + hsv(from: ANSI256): HSV; + hwb(from: ANSI256): HWB; + cmyk(from: ANSI256): CMYK; + xyz(from: ANSI256): XYZ; + lab(from: ANSI256): LAB; + lch(from: ANSI256): LCH; + hex(from: ANSI256): HEX; + keyword(from: ANSI256): Keyword; + ansi16(from: ANSI256): ANSI16; + hcg(from: ANSI256): HCG; + apple(from: ANSI256): Apple; + gray(from: ANSI256): Gray; + }; + type hcg = { + rgb(from: HCG): RGB; + rgb(...from: HCG): RGB; + hsl(from: HCG): HSL; + hsl(...from: HCG): HSL; + hsv(from: HCG): HSV; + hsv(...from: HCG): HSV; + hwb(from: HCG): HWB; + hwb(...from: HCG): HWB; + cmyk(from: HCG): CMYK; + cmyk(...from: HCG): CMYK; + xyz(from: HCG): XYZ; + xyz(...from: HCG): XYZ; + lab(from: HCG): LAB; + lab(...from: HCG): LAB; + lch(from: HCG): LCH; + lch(...from: HCG): LCH; + hex(from: HCG): HEX; + hex(...from: HCG): HEX; + keyword(from: HCG): Keyword; + keyword(...from: HCG): Keyword; + ansi16(from: HCG): ANSI16; + ansi16(...from: HCG): ANSI16; + ansi256(from: HCG): ANSI256; + ansi256(...from: HCG): ANSI256; + apple(from: HCG): Apple; + apple(...from: HCG): Apple; + gray(from: HCG): Gray; + gray(...from: HCG): Gray; + }; + type apple = { + rgb(from: Apple): RGB; + rgb(...from: Apple): RGB; + hsl(from: Apple): HSL; + hsl(...from: Apple): HSL; + hsv(from: Apple): HSV; + hsv(...from: Apple): HSV; + hwb(from: Apple): HWB; + hwb(...from: Apple): HWB; + cmyk(from: Apple): CMYK; + cmyk(...from: Apple): CMYK; + xyz(from: Apple): XYZ; + xyz(...from: Apple): XYZ; + lab(from: Apple): LAB; + lab(...from: Apple): LAB; + lch(from: Apple): LCH; + lch(...from: Apple): LCH; + hex(from: Apple): HEX; + hex(...from: Apple): HEX; + keyword(from: Apple): Keyword; + keyword(...from: Apple): Keyword; + ansi16(from: Apple): ANSI16; + ansi16(...from: Apple): ANSI16; + ansi256(from: Apple): ANSI256; + ansi256(...from: Apple): ANSI256; + hcg(from: Apple): HCG; + hcg(...from: Apple): HCG; + gray(from: Apple): Gray; + gray(...from: Apple): Gray; + }; + type gray = { + rgb(from: Gray): RGB; + rgb(...from: Gray): RGB; + hsl(from: Gray): HSL; + hsl(...from: Gray): HSL; + hsv(from: Gray): HSV; + hsv(...from: Gray): HSV; + hwb(from: Gray): HWB; + hwb(...from: Gray): HWB; + cmyk(from: Gray): CMYK; + cmyk(...from: Gray): CMYK; + xyz(from: Gray): XYZ; + xyz(...from: Gray): XYZ; + lab(from: Gray): LAB; + lab(...from: Gray): LAB; + lch(from: Gray): LCH; + lch(...from: Gray): LCH; + hex(from: Gray): HEX; + hex(...from: Gray): HEX; + keyword(from: Gray): Keyword; + keyword(...from: Gray): Keyword; + ansi16(from: Gray): ANSI16; + ansi16(...from: Gray): ANSI16; + ansi256(from: Gray): ANSI256; + ansi256(...from: Gray): ANSI256; + hcg(from: Gray): HCG; + hcg(...from: Gray): HCG; + apple(from: Gray): Apple; + apple(...from: Gray): Apple; + }; +} +declare function route(fromModel: "rgb"): route.rgb; +declare function route(fromModel: "hsl"): route.hsl; +declare function route(fromModel: "hsv"): route.hsv; +declare function route(fromModel: "hwb"): route.hwb; +declare function route(fromModel: "cmyk"): route.cmyk; +declare function route(fromModel: "xyz"): route.xyz; +declare function route(fromModel: "lab"): route.lab; +declare function route(fromModel: "lch"): route.lch; +declare function route(fromModel: "hex"): route.hex; +declare function route(fromModel: "keyword"): route.keyword; +declare function route(fromModel: "ansi16"): route.ansi16; +declare function route(fromModel: "ansi256"): route.ansi256; +declare function route(fromModel: "hcg"): route.hcg; +declare function route(fromModel: "apple"): route.apple; +declare function route(fromModel: "gray"): route.gray; +type Convert = { + rgb: { + channels: Channels; + labels: "rgb"; + hsl: { + (...rgb: RGB): HSL; + raw: (...rgb: RGB) => HSL; + }; + hsv: { + (...rgb: RGB): HSV; + raw: (...rgb: RGB) => HSV; + }; + hwb: { + (...rgb: RGB): HWB; + raw: (...rgb: RGB) => HWB; + }; + hcg: { + (...rgb: RGB): HCG; + raw: (...rgb: RGB) => HCG; + }; + cmyk: { + (...rgb: RGB): CMYK; + raw: (...rgb: RGB) => CMYK; + }; + keyword: { + (...rgb: RGB): Keyword; + raw: (...rgb: RGB) => Keyword; + }; + ansi16: { + (...rgb: RGB): ANSI16; + raw: (...rgb: RGB) => ANSI16; + }; + ansi256: { + (...rgb: RGB): ANSI256; + raw: (...rgb: RGB) => ANSI256; + }; + apple: { + (...rgb: RGB): Apple; + raw: (...rgb: RGB) => Apple; + }; + hex: { + (...rgb: RGB): HEX; + raw: (...rgb: RGB) => HEX; + }; + gray: { + (...rgb: RGB): Gray; + raw: (...rgb: RGB) => Gray; + }; + } & route.rgb & { + [F in keyof route.rgb]: { + raw: route.rgb[F]; + }; + }; + keyword: { + channels: Channels; + rgb: { + (keyword: Keyword): RGB; + raw: (keyword: Keyword) => RGB; + }; + } & route.keyword & { + [F in keyof route.keyword]: { + raw: route.keyword[F]; + }; + }; + hsl: { + channels: Channels; + labels: "hsl"; + rgb: { + (...hsl: HSL): RGB; + raw: (...hsl: HSL) => RGB; + }; + hsv: { + (...hsl: HSL): HSV; + raw: (...hsl: HSL) => HSV; + }; + hcg: { + (...hsl: HSL): HCG; + raw: (...hsl: HSL) => HCG; + }; + } & route.hsl & { + [F in keyof route.hsl]: { + raw: route.hsl[F]; + }; + }; + hsv: { + channels: Channels; + labels: "hsv"; + hcg: { + (...hsv: HSV): HCG; + raw: (...hsv: HSV) => HCG; + }; + rgb: { + (...hsv: HSV): RGB; + raw: (...hsv: HSV) => RGB; + }; + hsv: { + (...hsv: HSV): HSV; + raw: (...hsv: HSV) => HSV; + }; + hsl: { + (...hsv: HSV): HSL; + raw: (...hsv: HSV) => HSL; + }; + hwb: { + (...hsv: HSV): HWB; + raw: (...hsv: HSV) => HWB; + }; + ansi16: { + (...hsv: HSV): ANSI16; + raw: (...hsv: HSV) => ANSI16; + }; + } & route.hsv & { + [F in keyof route.hsv]: { + raw: route.hsv[F]; + }; + }; + hwb: { + channels: Channels; + labels: "hwb"; + hcg: { + (...hwb: HWB): HCG; + raw: (...hwb: HWB) => HCG; + }; + rgb: { + (...hwb: HWB): RGB; + raw: (...hwb: HWB) => RGB; + }; + } & route.hwb & { + [F in keyof route.hwb]: { + raw: route.hwb[F]; + }; + }; + cmyk: { + channels: Channels; + labels: "cmyk"; + rgb: { + (...cmyk: CMYK): RGB; + raw: (...cmyk: CMYK) => RGB; + }; + } & route.cmyk & { + [F in keyof route.cmyk]: { + raw: route.cmyk[F]; + }; + }; + xyz: { + channels: Channels; + labels: "xyz"; + rgb: { + (...xyz: XYZ): RGB; + raw: (...xyz: XYZ) => RGB; + }; + lab: { + (...xyz: XYZ): LAB; + raw: (...xyz: XYZ) => LAB; + }; + } & route.xyz & { + [F in keyof route.xyz]: { + raw: route.xyz[F]; + }; + }; + lab: { + channels: Channels; + labels: "lab"; + xyz: { + (...lab: LAB): XYZ; + raw: (...lab: LAB) => XYZ; + }; + lch: { + (...lab: LAB): LCH; + raw: (...lab: LAB) => LCH; + }; + } & route.lab & { + [F in keyof route.lab]: { + raw: route.lab[F]; + }; + }; + lch: { + channels: Channels; + labels: "lch"; + lab: { + (...lch: LCH): LAB; + raw: (...lch: LCH) => LAB; + }; + } & route.lch & { + [F in keyof route.lch]: { + raw: route.lch[F]; + }; + }; + hex: { + channels: Channels; + labels: [ + "hex" + ]; + rgb: { + (hex: HEX): RGB; + raw: (hex: HEX) => RGB; + }; + } & route.hex & { + [F in keyof route.hex]: { + raw: route.hex[F]; + }; + }; + ansi16: { + channels: Channels; + labels: [ + "ansi16" + ]; + rgb: { + (ansi16: ANSI16): RGB; + raw: (ansi16: ANSI16) => RGB; + }; + } & route.ansi16 & { + [F in keyof route.ansi16]: { + raw: route.ansi16[F]; + }; + }; + ansi256: { + channels: Channels; + labels: [ + "ansi256" + ]; + rgb: { + (ansi256: ANSI256): RGB; + raw: (ansi256: ANSI256) => RGB; + }; + } & route.ansi256 & { + [F in keyof route.ansi256]: { + raw: route.ansi256[F]; + }; + }; + hcg: { + channels: Channels; + labels: [ + "h", + "c", + "g" + ]; + rgb: { + (...hcg: HCG): RGB; + raw: (...hcg: HCG) => RGB; + }; + hsv: { + (...hcg: HCG): HSV; + raw: (...hcg: HCG) => HSV; + }; + hwb: { + (...hcg: HCG): HWB; + raw: (...hcg: HCG) => HWB; + }; + } & route.hcg & { + [F in keyof route.hcg]: { + raw: route.hcg[F]; + }; + }; + apple: { + channels: Channels; + labels: [ + "r16", + "g16", + "b16" + ]; + rgb: { + (...apple: Apple): RGB; + raw: (...apple: Apple) => RGB; + }; + } & route.apple & { + [F in keyof route.apple]: { + raw: route.apple[F]; + }; + }; + gray: { + channels: Channels; + labels: [ + "gray" + ]; + rgb: { + (...gray: Gray): RGB; + raw: (...gray: Gray) => RGB; + }; + hsl: { + (...gray: Gray): HSL; + raw: (...gray: Gray) => HSL; + }; + hsv: { + (...gray: Gray): HSV; + raw: (...gray: Gray) => HSV; + }; + hwb: { + (...gray: Gray): HWB; + raw: (...gray: Gray) => HWB; + }; + cmyk: { + (...gray: Gray): CMYK; + raw: (...gray: Gray) => CMYK; + }; + lab: { + (...gray: Gray): LAB; + raw: (...gray: Gray) => LAB; + }; + hex: { + (...gray: Gray): HEX; + raw: (...gray: Gray) => HEX; + }; + } & route.gray & { + [F in keyof route.gray]: { + raw: route.gray[F]; + }; + }; +}; +declare const convert: Convert; +export type ColorLike = ColorInstance | string | ArrayLike | number | Record; +export type ColorJson = { + model: string; + color: number[]; + valpha: number; +}; +export type ColorObject = { + alpha?: number | undefined; +} & Record; +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions +export interface ColorInstance { + toString(): string; + // eslint-disable-next-line @typescript-eslint/naming-convention + toJSON(): ColorJson; + string(places?: number): string; + percentString(places?: number): string; + array(): number[]; + object(): ColorObject; + unitArray(): number[]; + unitObject(): { + r: number; + g: number; + b: number; + alpha?: number | undefined; + }; + round(places?: number): ColorInstance; + alpha(): number; + alpha(value: number): ColorInstance; + red(): number; + red(value: number): ColorInstance; + green(): number; + green(value: number): ColorInstance; + blue(): number; + blue(value: number): ColorInstance; + hue(): number; + hue(value: number): ColorInstance; + saturationl(): number; + saturationl(value: number): ColorInstance; + lightness(): number; + lightness(value: number): ColorInstance; + saturationv(): number; + saturationv(value: number): ColorInstance; + value(): number; + value(value: number): ColorInstance; + chroma(): number; + chroma(value: number): ColorInstance; + gray(): number; + gray(value: number): ColorInstance; + white(): number; + white(value: number): ColorInstance; + wblack(): number; + wblack(value: number): ColorInstance; + cyan(): number; + cyan(value: number): ColorInstance; + magenta(): number; + magenta(value: number): ColorInstance; + yellow(): number; + yellow(value: number): ColorInstance; + black(): number; + black(value: number): ColorInstance; + x(): number; + x(value: number): ColorInstance; + y(): number; + y(value: number): ColorInstance; + z(): number; + z(value: number): ColorInstance; + l(): number; + l(value: number): ColorInstance; + a(): number; + a(value: number): ColorInstance; + b(): number; + b(value: number): ColorInstance; + keyword(): string; + keyword(value: V): ColorInstance; + hex(): string; + hex(value: V): ColorInstance; + hexa(): string; + hexa(value: V): ColorInstance; + rgbNumber(): number; + luminosity(): number; + contrast(color2: ColorInstance): number; + level(color2: ColorInstance): "AAA" | "AA" | ""; + isDark(): boolean; + isLight(): boolean; + negate(): ColorInstance; + lighten(ratio: number): ColorInstance; + darken(ratio: number): ColorInstance; + saturate(ratio: number): ColorInstance; + desaturate(ratio: number): ColorInstance; + whiten(ratio: number): ColorInstance; + blacken(ratio: number): ColorInstance; + grayscale(): ColorInstance; + fade(ratio: number): ColorInstance; + opaquer(ratio: number): ColorInstance; + rotate(degrees: number): ColorInstance; + mix(mixinColor: ColorInstance, weight?: number): ColorInstance; + rgb(...arguments_: number[]): ColorInstance; + hsl(...arguments_: number[]): ColorInstance; + hsv(...arguments_: number[]): ColorInstance; + hwb(...arguments_: number[]): ColorInstance; + cmyk(...arguments_: number[]): ColorInstance; + xyz(...arguments_: number[]): ColorInstance; + lab(...arguments_: number[]): ColorInstance; + lch(...arguments_: number[]): ColorInstance; + ansi16(...arguments_: number[]): ColorInstance; + ansi256(...arguments_: number[]): ColorInstance; + hcg(...arguments_: number[]): ColorInstance; + apple(...arguments_: number[]): ColorInstance; +} +export type ColorConstructor = { + (object?: ColorLike, model?: keyof (typeof convert)): ColorInstance; + new (object?: ColorLike, model?: keyof (typeof convert)): ColorInstance; + rgb(...value: number[]): ColorInstance; + rgb(color: ColorLike): ColorInstance; + hsl(...value: number[]): ColorInstance; + hsl(color: ColorLike): ColorInstance; + hsv(...value: number[]): ColorInstance; + hsv(color: ColorLike): ColorInstance; + hwb(...value: number[]): ColorInstance; + hwb(color: ColorLike): ColorInstance; + cmyk(...value: number[]): ColorInstance; + cmyk(color: ColorLike): ColorInstance; + xyz(...value: number[]): ColorInstance; + xyz(color: ColorLike): ColorInstance; + lab(...value: number[]): ColorInstance; + lab(color: ColorLike): ColorInstance; + lch(...value: number[]): ColorInstance; + lch(color: ColorLike): ColorInstance; + ansi16(...value: number[]): ColorInstance; + ansi16(color: ColorLike): ColorInstance; + ansi256(...value: number[]): ColorInstance; + ansi256(color: ColorLike): ColorInstance; + hcg(...value: number[]): ColorInstance; + hcg(color: ColorLike): ColorInstance; + apple(...value: number[]): ColorInstance; + apple(color: ColorLike): ColorInstance; +}; +// eslint-disable-next-line @typescript-eslint/naming-convention +declare const Color: ColorConstructor; + +export { + Color as default, +}; + +export {}; diff --git a/01_3D-Druck/gemini/build/node_modules/@img/colour/package.json b/01_3D-Druck/gemini/build/node_modules/@img/colour/package.json new file mode 100644 index 0000000..38887d1 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/colour/package.json @@ -0,0 +1,58 @@ +{ + "name": "@img/colour", + "version": "1.1.0", + "description": "The ESM-only 'color' package made compatible for use with CommonJS runtimes", + "license": "MIT", + "main": "index.cjs", + "types": "index.d.ts", + "exports": { + ".": { + "types": "./index.d.ts", + "require": "./index.cjs", + "default": "./index.cjs" + }, + "./package.json": "./package.json" + }, + "authors": [ + "Heather Arthur ", + "Josh Junon ", + "Maxime Thirouin", + "Dyma Ywanov ", + "LitoMore (https://github.com/LitoMore)" + ], + "engines": { + "node": ">=18" + }, + "files": [ + "color.cjs", + "index.d.ts" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/colour.git" + }, + "type": "commonjs", + "keywords": [ + "color", + "colour", + "cjs", + "commonjs" + ], + "scripts": { + "build:cjs": "esbuild node_modules/color/index.js --bundle --platform=node --outfile=color.cjs", + "build:dts": "dts-bundle-generator ./dts-src.ts -o index.d.ts --project tsconfig.build.json --external-inlines color --external-inlines color-convert --export-referenced-types=false", + "build": "npm run build:cjs && npm run build:dts", + "test": "node --test" + }, + "devDependencies": { + "color": "5.0.3", + "color-convert": "3.1.3", + "color-name": "2.1.0", + "color-string": "2.1.4", + "dts-bundle-generator": "^9.5.1", + "esbuild": "^0.27.3" + } +} diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/LICENSE b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/LICENSE new file mode 100644 index 0000000..37ec93a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/README.md b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/README.md new file mode 100644 index 0000000..fe1873f --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/README.md @@ -0,0 +1,59 @@ +# `@img/sharp-win32-x64` + +Prebuilt sharp for use with Windows x64. + +## Licensing + +Copyright 2013 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +This software contains third-party libraries +used under the terms of the following licences: + +| Library | Used under the terms of | +|---------------|-----------------------------------------------------------------------------------------------------------| +| aom | BSD 2-Clause + [Alliance for Open Media Patent License 1.0](https://aomedia.org/license/patent-license/) | +| cairo | Mozilla Public License 2.0 | +| cgif | MIT Licence | +| expat | MIT Licence | +| fontconfig | [fontconfig Licence](https://gitlab.freedesktop.org/fontconfig/fontconfig/blob/main/COPYING) (BSD-like) | +| freetype | [freetype Licence](https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT) (BSD-like) | +| fribidi | LGPLv3 | +| glib | LGPLv3 | +| harfbuzz | MIT Licence | +| highway | Apache-2.0 License, BSD 3-Clause | +| lcms | MIT Licence | +| libarchive | BSD 2-Clause | +| libexif | LGPLv3 | +| libffi | MIT Licence | +| libheif | LGPLv3 | +| libimagequant | [BSD 2-Clause](https://github.com/lovell/libimagequant/blob/main/COPYRIGHT) | +| libnsgif | MIT Licence | +| libpng | [libpng License](https://github.com/pnggroup/libpng/blob/master/LICENSE) | +| librsvg | LGPLv3 | +| libspng | [BSD 2-Clause, libpng License](https://github.com/randy408/libspng/blob/master/LICENSE) | +| libtiff | [libtiff License](https://gitlab.com/libtiff/libtiff/blob/master/LICENSE.md) (BSD-like) | +| libvips | LGPLv3 | +| libwebp | New BSD License | +| libxml2 | MIT Licence | +| mozjpeg | [zlib License, IJG License, BSD-3-Clause](https://github.com/mozilla/mozjpeg/blob/master/LICENSE.md) | +| pango | LGPLv3 | +| pixman | MIT Licence | +| proxy-libintl | LGPLv3 | +| zlib-ng | [zlib Licence](https://github.com/zlib-ng/zlib-ng/blob/develop/LICENSE.md) | + +Use of libraries under the terms of the LGPLv3 is via the +"any later version" clause of the LGPLv2 or LGPLv2.1. + +Please report any errors or omissions via +https://github.com/lovell/sharp-libvips/issues/new diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll new file mode 100644 index 0000000..5b6c370 Binary files /dev/null and b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll differ diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.17.3.dll b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.17.3.dll new file mode 100644 index 0000000..de23d88 Binary files /dev/null and b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.17.3.dll differ diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node new file mode 100644 index 0000000..41acbff Binary files /dev/null and b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64.node differ diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/package.json b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/package.json new file mode 100644 index 0000000..8b867b5 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/package.json @@ -0,0 +1,39 @@ +{ + "name": "@img/sharp-win32-x64", + "version": "0.34.5", + "description": "Prebuilt sharp for use with Windows x64", + "author": "Lovell Fuller ", + "homepage": "https://sharp.pixelplumbing.com", + "repository": { + "type": "git", + "url": "git+https://github.com/lovell/sharp.git", + "directory": "npm/win32-x64" + }, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "funding": { + "url": "https://opencollective.com/libvips" + }, + "preferUnplugged": true, + "files": [ + "lib", + "versions.json" + ], + "publishConfig": { + "access": "public" + }, + "type": "commonjs", + "exports": { + "./sharp.node": "./lib/sharp-win32-x64.node", + "./package": "./package.json", + "./versions": "./versions.json" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "os": [ + "win32" + ], + "cpu": [ + "x64" + ] +} diff --git a/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/versions.json b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/versions.json new file mode 100644 index 0000000..fec67b1 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/@img/sharp-win32-x64/versions.json @@ -0,0 +1,30 @@ +{ + "aom": "3.13.1", + "archive": "3.8.2", + "cairo": "1.18.4", + "cgif": "0.5.0", + "exif": "0.6.25", + "expat": "2.7.3", + "ffi": "3.5.2", + "fontconfig": "2.17.1", + "freetype": "2.14.1", + "fribidi": "1.0.16", + "glib": "2.86.1", + "harfbuzz": "12.1.0", + "heif": "1.20.2", + "highway": "1.3.0", + "imagequant": "2.4.1", + "lcms": "2.17", + "mozjpeg": "0826579", + "pango": "1.57.0", + "pixman": "0.46.4", + "png": "1.6.50", + "proxy-libintl": "0.5", + "rsvg": "2.61.2", + "spng": "0.7.4", + "tiff": "4.7.1", + "vips": "8.17.3", + "webp": "1.6.0", + "xml2": "2.15.1", + "zlib-ng": "2.2.5" +} \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/LICENSE b/01_3D-Druck/gemini/build/node_modules/detect-libc/LICENSE new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/README.md b/01_3D-Druck/gemini/build/node_modules/detect-libc/README.md new file mode 100644 index 0000000..23212fd --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/README.md @@ -0,0 +1,163 @@ +# detect-libc + +Node.js module to detect details of the C standard library (libc) +implementation provided by a given Linux system. + +Currently supports detection of GNU glibc and MUSL libc. + +Provides asychronous and synchronous functions for the +family (e.g. `glibc`, `musl`) and version (e.g. `1.23`, `1.2.3`). + +The version numbers of libc implementations +are not guaranteed to be semver-compliant. + +For previous v1.x releases, please see the +[v1](https://github.com/lovell/detect-libc/tree/v1) branch. + +## Install + +```sh +npm install detect-libc +``` + +## API + +### GLIBC + +```ts +const GLIBC: string = 'glibc'; +``` + +A String constant containing the value `glibc`. + +### MUSL + +```ts +const MUSL: string = 'musl'; +``` + +A String constant containing the value `musl`. + +### family + +```ts +function family(): Promise; +``` + +Resolves asychronously with: + +* `glibc` or `musl` when the libc family can be determined +* `null` when the libc family cannot be determined +* `null` when run on a non-Linux platform + +```js +const { family, GLIBC, MUSL } = require('detect-libc'); + +switch (await family()) { + case GLIBC: ... + case MUSL: ... + case null: ... +} +``` + +### familySync + +```ts +function familySync(): string | null; +``` + +Synchronous version of `family()`. + +```js +const { familySync, GLIBC, MUSL } = require('detect-libc'); + +switch (familySync()) { + case GLIBC: ... + case MUSL: ... + case null: ... +} +``` + +### version + +```ts +function version(): Promise; +``` + +Resolves asychronously with: + +* The version when it can be determined +* `null` when the libc family cannot be determined +* `null` when run on a non-Linux platform + +```js +const { version } = require('detect-libc'); + +const v = await version(); +if (v) { + const [major, minor, patch] = v.split('.'); +} +``` + +### versionSync + +```ts +function versionSync(): string | null; +``` + +Synchronous version of `version()`. + +```js +const { versionSync } = require('detect-libc'); + +const v = versionSync(); +if (v) { + const [major, minor, patch] = v.split('.'); +} +``` + +### isNonGlibcLinux + +```ts +function isNonGlibcLinux(): Promise; +``` + +Resolves asychronously with: + +* `false` when the libc family is `glibc` +* `true` when the libc family is not `glibc` +* `false` when run on a non-Linux platform + +```js +const { isNonGlibcLinux } = require('detect-libc'); + +if (await isNonGlibcLinux()) { ... } +``` + +### isNonGlibcLinuxSync + +```ts +function isNonGlibcLinuxSync(): boolean; +``` + +Synchronous version of `isNonGlibcLinux()`. + +```js +const { isNonGlibcLinuxSync } = require('detect-libc'); + +if (isNonGlibcLinuxSync()) { ... } +``` + +## Licensing + +Copyright 2017 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/index.d.ts b/01_3D-Druck/gemini/build/node_modules/detect-libc/index.d.ts new file mode 100644 index 0000000..4c0fb2b --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/index.d.ts @@ -0,0 +1,14 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +export const GLIBC: 'glibc'; +export const MUSL: 'musl'; + +export function family(): Promise; +export function familySync(): string | null; + +export function isNonGlibcLinux(): Promise; +export function isNonGlibcLinuxSync(): boolean; + +export function version(): Promise; +export function versionSync(): string | null; diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/detect-libc.js b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/detect-libc.js new file mode 100644 index 0000000..01299b4 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/detect-libc.js @@ -0,0 +1,313 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const childProcess = require('child_process'); +const { isLinux, getReport } = require('./process'); +const { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem'); +const { interpreterPath } = require('./elf'); + +let cachedFamilyInterpreter; +let cachedFamilyFilesystem; +let cachedVersionFilesystem; + +const command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true'; +let commandOut = ''; + +const safeCommand = () => { + if (!commandOut) { + return new Promise((resolve) => { + childProcess.exec(command, (err, out) => { + commandOut = err ? ' ' : out; + resolve(commandOut); + }); + }); + } + return commandOut; +}; + +const safeCommandSync = () => { + if (!commandOut) { + try { + commandOut = childProcess.execSync(command, { encoding: 'utf8' }); + } catch (_err) { + commandOut = ' '; + } + } + return commandOut; +}; + +/** + * A String constant containing the value `glibc`. + * @type {string} + * @public + */ +const GLIBC = 'glibc'; + +/** + * A Regexp constant to get the GLIBC Version. + * @type {string} + */ +const RE_GLIBC_VERSION = /LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i; + +/** + * A String constant containing the value `musl`. + * @type {string} + * @public + */ +const MUSL = 'musl'; + +const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-'); + +const familyFromReport = () => { + const report = getReport(); + if (report.header && report.header.glibcVersionRuntime) { + return GLIBC; + } + if (Array.isArray(report.sharedObjects)) { + if (report.sharedObjects.some(isFileMusl)) { + return MUSL; + } + } + return null; +}; + +const familyFromCommand = (out) => { + const [getconf, ldd1] = out.split(/[\r\n]+/); + if (getconf && getconf.includes(GLIBC)) { + return GLIBC; + } + if (ldd1 && ldd1.includes(MUSL)) { + return MUSL; + } + return null; +}; + +const familyFromInterpreterPath = (path) => { + if (path) { + if (path.includes('/ld-musl-')) { + return MUSL; + } else if (path.includes('/ld-linux-')) { + return GLIBC; + } + } + return null; +}; + +const getFamilyFromLddContent = (content) => { + content = content.toString(); + if (content.includes('musl')) { + return MUSL; + } + if (content.includes('GNU C Library')) { + return GLIBC; + } + return null; +}; + +const familyFromFilesystem = async () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + +const familyFromFilesystemSync = () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + +const familyFromInterpreter = async () => { + if (cachedFamilyInterpreter !== undefined) { + return cachedFamilyInterpreter; + } + cachedFamilyInterpreter = null; + try { + const selfContent = await readFile(SELF_PATH); + const path = interpreterPath(selfContent); + cachedFamilyInterpreter = familyFromInterpreterPath(path); + } catch (e) {} + return cachedFamilyInterpreter; +}; + +const familyFromInterpreterSync = () => { + if (cachedFamilyInterpreter !== undefined) { + return cachedFamilyInterpreter; + } + cachedFamilyInterpreter = null; + try { + const selfContent = readFileSync(SELF_PATH); + const path = interpreterPath(selfContent); + cachedFamilyInterpreter = familyFromInterpreterPath(path); + } catch (e) {} + return cachedFamilyInterpreter; +}; + +/** + * Resolves with the libc family when it can be determined, `null` otherwise. + * @returns {Promise} + */ +const family = async () => { + let family = null; + if (isLinux()) { + family = await familyFromInterpreter(); + if (!family) { + family = await familyFromFilesystem(); + if (!family) { + family = familyFromReport(); + } + if (!family) { + const out = await safeCommand(); + family = familyFromCommand(out); + } + } + } + return family; +}; + +/** + * Returns the libc family when it can be determined, `null` otherwise. + * @returns {?string} + */ +const familySync = () => { + let family = null; + if (isLinux()) { + family = familyFromInterpreterSync(); + if (!family) { + family = familyFromFilesystemSync(); + if (!family) { + family = familyFromReport(); + } + if (!family) { + const out = safeCommandSync(); + family = familyFromCommand(out); + } + } + } + return family; +}; + +/** + * Resolves `true` only when the platform is Linux and the libc family is not `glibc`. + * @returns {Promise} + */ +const isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC; + +/** + * Returns `true` only when the platform is Linux and the libc family is not `glibc`. + * @returns {boolean} + */ +const isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC; + +const versionFromFilesystem = async () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + +const versionFromFilesystemSync = () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + +const versionFromReport = () => { + const report = getReport(); + if (report.header && report.header.glibcVersionRuntime) { + return report.header.glibcVersionRuntime; + } + return null; +}; + +const versionSuffix = (s) => s.trim().split(/\s+/)[1]; + +const versionFromCommand = (out) => { + const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/); + if (getconf && getconf.includes(GLIBC)) { + return versionSuffix(getconf); + } + if (ldd1 && ldd2 && ldd1.includes(MUSL)) { + return versionSuffix(ldd2); + } + return null; +}; + +/** + * Resolves with the libc version when it can be determined, `null` otherwise. + * @returns {Promise} + */ +const version = async () => { + let version = null; + if (isLinux()) { + version = await versionFromFilesystem(); + if (!version) { + version = versionFromReport(); + } + if (!version) { + const out = await safeCommand(); + version = versionFromCommand(out); + } + } + return version; +}; + +/** + * Returns the libc version when it can be determined, `null` otherwise. + * @returns {?string} + */ +const versionSync = () => { + let version = null; + if (isLinux()) { + version = versionFromFilesystemSync(); + if (!version) { + version = versionFromReport(); + } + if (!version) { + const out = safeCommandSync(); + version = versionFromCommand(out); + } + } + return version; +}; + +module.exports = { + GLIBC, + MUSL, + family, + familySync, + isNonGlibcLinux, + isNonGlibcLinuxSync, + version, + versionSync +}; diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/elf.js b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/elf.js new file mode 100644 index 0000000..aa166aa --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/elf.js @@ -0,0 +1,39 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const interpreterPath = (elf) => { + if (elf.length < 64) { + return null; + } + if (elf.readUInt32BE(0) !== 0x7F454C46) { + // Unexpected magic bytes + return null; + } + if (elf.readUInt8(4) !== 2) { + // Not a 64-bit ELF + return null; + } + if (elf.readUInt8(5) !== 1) { + // Not little-endian + return null; + } + const offset = elf.readUInt32LE(32); + const size = elf.readUInt16LE(54); + const count = elf.readUInt16LE(56); + for (let i = 0; i < count; i++) { + const headerOffset = offset + (i * size); + const type = elf.readUInt32LE(headerOffset); + if (type === 3) { + const fileOffset = elf.readUInt32LE(headerOffset + 8); + const fileSize = elf.readUInt32LE(headerOffset + 32); + return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\0.*$/g, ''); + } + } + return null; +}; + +module.exports = { + interpreterPath +}; diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/filesystem.js b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/filesystem.js new file mode 100644 index 0000000..4c2443c --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/filesystem.js @@ -0,0 +1,51 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const fs = require('fs'); + +const LDD_PATH = '/usr/bin/ldd'; +const SELF_PATH = '/proc/self/exe'; +const MAX_LENGTH = 2048; + +/** + * Read the content of a file synchronous + * + * @param {string} path + * @returns {Buffer} + */ +const readFileSync = (path) => { + const fd = fs.openSync(path, 'r'); + const buffer = Buffer.alloc(MAX_LENGTH); + const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0); + fs.close(fd, () => {}); + return buffer.subarray(0, bytesRead); +}; + +/** + * Read the content of a file + * + * @param {string} path + * @returns {Promise} + */ +const readFile = (path) => new Promise((resolve, reject) => { + fs.open(path, 'r', (err, fd) => { + if (err) { + reject(err); + } else { + const buffer = Buffer.alloc(MAX_LENGTH); + fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => { + resolve(buffer.subarray(0, bytesRead)); + fs.close(fd, () => {}); + }); + } + }); +}); + +module.exports = { + LDD_PATH, + SELF_PATH, + readFileSync, + readFile +}; diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/process.js b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/process.js new file mode 100644 index 0000000..ee78ad2 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/lib/process.js @@ -0,0 +1,24 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const isLinux = () => process.platform === 'linux'; + +let report = null; +const getReport = () => { + if (!report) { + /* istanbul ignore next */ + if (isLinux() && process.report) { + const orig = process.report.excludeNetwork; + process.report.excludeNetwork = true; + report = process.report.getReport(); + process.report.excludeNetwork = orig; + } else { + report = {}; + } + } + return report; +}; + +module.exports = { isLinux, getReport }; diff --git a/01_3D-Druck/gemini/build/node_modules/detect-libc/package.json b/01_3D-Druck/gemini/build/node_modules/detect-libc/package.json new file mode 100644 index 0000000..36d0f2b --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/detect-libc/package.json @@ -0,0 +1,44 @@ +{ + "name": "detect-libc", + "version": "2.1.2", + "description": "Node.js module to detect the C standard library (libc) implementation family and version", + "main": "lib/detect-libc.js", + "files": [ + "lib/", + "index.d.ts" + ], + "scripts": { + "test": "semistandard && nyc --reporter=text --check-coverage --branches=100 ava test/unit.js", + "changelog": "conventional-changelog -i CHANGELOG.md -s", + "bench": "node benchmark/detect-libc", + "bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js" + }, + "repository": { + "type": "git", + "url": "git://github.com/lovell/detect-libc.git" + }, + "keywords": [ + "libc", + "glibc", + "musl" + ], + "author": "Lovell Fuller ", + "contributors": [ + "Niklas Salmoukas ", + "Vinícius Lourenço " + ], + "license": "Apache-2.0", + "devDependencies": { + "ava": "^2.4.0", + "benchmark": "^2.1.4", + "conventional-changelog-cli": "^5.0.0", + "eslint-config-standard": "^13.0.1", + "nyc": "^15.1.0", + "proxyquire": "^2.1.3", + "semistandard": "^14.2.3" + }, + "engines": { + "node": ">=8" + }, + "types": "index.d.ts" +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/LICENSE b/01_3D-Druck/gemini/build/node_modules/semver/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/01_3D-Druck/gemini/build/node_modules/semver/README.md b/01_3D-Druck/gemini/build/node_modules/semver/README.md new file mode 100644 index 0000000..5e03abc --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/README.md @@ -0,0 +1,680 @@ +semver(1) -- The semantic versioner for npm +=========================================== + +## Install + +```bash +npm install semver +```` + +## Usage + +As a node module: + +```js +const semver = require('semver') + +semver.valid('1.2.3') // '1.2.3' +semver.valid('a.b.c') // null +semver.clean(' =v1.2.3 ') // '1.2.3' +semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true +semver.gt('1.2.3', '9.8.7') // false +semver.lt('1.2.3', '9.8.7') // true +semver.minVersion('>=1.0.0') // '1.0.0' +semver.valid(semver.coerce('v2')) // '2.0.0' +semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' +``` + +You can also just load the module for the function that you care about if +you'd like to minimize your footprint. + +```js +// load the whole API at once in a single object +const semver = require('semver') + +// or just load the bits you need +// all of them listed here, just pick and choose what you want + +// classes +const SemVer = require('semver/classes/semver') +const Comparator = require('semver/classes/comparator') +const Range = require('semver/classes/range') + +// functions for working with versions +const semverParse = require('semver/functions/parse') +const semverValid = require('semver/functions/valid') +const semverClean = require('semver/functions/clean') +const semverInc = require('semver/functions/inc') +const semverDiff = require('semver/functions/diff') +const semverMajor = require('semver/functions/major') +const semverMinor = require('semver/functions/minor') +const semverPatch = require('semver/functions/patch') +const semverPrerelease = require('semver/functions/prerelease') +const semverCompare = require('semver/functions/compare') +const semverRcompare = require('semver/functions/rcompare') +const semverCompareLoose = require('semver/functions/compare-loose') +const semverCompareBuild = require('semver/functions/compare-build') +const semverSort = require('semver/functions/sort') +const semverRsort = require('semver/functions/rsort') +const semverTruncate = require('semver/functions/truncate') + +// low-level comparators between versions +const semverGt = require('semver/functions/gt') +const semverLt = require('semver/functions/lt') +const semverEq = require('semver/functions/eq') +const semverNeq = require('semver/functions/neq') +const semverGte = require('semver/functions/gte') +const semverLte = require('semver/functions/lte') +const semverCmp = require('semver/functions/cmp') +const semverCoerce = require('semver/functions/coerce') + +// working with ranges +const semverSatisfies = require('semver/functions/satisfies') +const semverMaxSatisfying = require('semver/ranges/max-satisfying') +const semverMinSatisfying = require('semver/ranges/min-satisfying') +const semverToComparators = require('semver/ranges/to-comparators') +const semverMinVersion = require('semver/ranges/min-version') +const semverValidRange = require('semver/ranges/valid') +const semverOutside = require('semver/ranges/outside') +const semverGtr = require('semver/ranges/gtr') +const semverLtr = require('semver/ranges/ltr') +const semverIntersects = require('semver/ranges/intersects') +const semverSimplifyRange = require('semver/ranges/simplify') +const semverRangeSubset = require('semver/ranges/subset') +``` + +As a command-line utility: + +``` +$ semver -h + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-n <0|1|false> + Base number for prerelease identifier (default: 0). + Use false to omit the number altogether. + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them. +``` + +## Versions + +A "version" is described by the `v2.0.0` specification found at +. + +A leading `"="` or `"v"` character is stripped off and ignored. +Support for stripping a leading "v" is kept for compatibility with `v1.0.0` of the SemVer +specification but should not be used anymore. + +## Ranges + +A `version range` is a set of `comparators` that specify versions +that satisfy the range. + +A `comparator` is composed of an `operator` and a `version`. The set +of primitive `operators` is: + +* `<` Less than +* `<=` Less than or equal to +* `>` Greater than +* `>=` Greater than or equal to +* `=` Equal. If no operator is specified, then equality is assumed, + so this operator is optional but MAY be included. + +For example, the comparator `>=1.2.7` would match the versions +`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` +or `1.1.0`. The comparator `>1` is equivalent to `>=2.0.0` and +would match the versions `2.0.0` and `3.1.0`, but not the versions +`1.0.1` or `1.1.0`. + +Comparators can be joined by whitespace to form a `comparator set`, +which is satisfied by the **intersection** of all of the comparators +it includes. + +A range is composed of one or more comparator sets, joined by `||`. A +version matches a range if and only if every comparator in at least +one of the `||`-separated comparator sets is satisfied by the version. + +For example, the range `>=1.2.7 <1.3.0` would match the versions +`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, +or `1.1.0`. + +The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, +`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. + +### Prerelease Tags + +If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then +it will only be allowed to satisfy comparator sets if at least one +comparator with the same `[major, minor, patch]` tuple also has a +prerelease tag. + +For example, the range `>1.2.3-alpha.3` would be allowed to match the +version `1.2.3-alpha.7`, but it would *not* be satisfied by +`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater +than" `1.2.3-alpha.3` according to the SemVer sort rules. The version +range only accepts prerelease tags on the `1.2.3` version. +Version `3.4.5` *would* satisfy the range because it does not have a +prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. + +The purpose of this behavior is twofold. First, prerelease versions +frequently are updated very quickly, and contain many breaking changes +that are (by the author's design) not yet fit for public consumption. +Therefore, by default, they are excluded from range-matching +semantics. + +Second, a user who has opted into using a prerelease version has +indicated the intent to use *that specific* set of +alpha/beta/rc versions. By including a prerelease tag in the range, +the user is indicating that they are aware of the risk. However, it +is still not appropriate to assume that they have opted into taking a +similar risk on the *next* set of prerelease versions. + +Note that this behavior can be suppressed (treating all prerelease +versions as if they were normal versions, for range-matching) +by setting the `includePrerelease` flag on the options +object to any +[functions](https://github.com/npm/node-semver#functions) that do +range matching. + +#### Prerelease Identifiers + +The method `.inc` takes an additional `identifier` string argument that +will append the value of the string as a prerelease identifier: + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta') +// '1.2.4-beta.0' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta +1.2.4-beta.0 +``` + +Which then can be used to increment further: + +```bash +$ semver 1.2.4-beta.0 -i prerelease +1.2.4-beta.1 +``` + +To get out of the prerelease phase, use the `release` option: + +```bash +$ semver 1.2.4-beta.1 -i release +1.2.4 +``` + +#### Prerelease Identifier Base + +The method `.inc` takes an optional parameter 'identifierBase' string +that will let you let your prerelease number as zero-based or one-based. +Set to `false` to omit the prerelease number altogether. +If you do not specify this parameter, it will default to zero-based. + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', '1') +// '1.2.4-beta.1' +``` + +```javascript +semver.inc('1.2.3', 'prerelease', 'beta', false) +// '1.2.4-beta' +``` + +command-line example: + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n 1 +1.2.4-beta.1 +``` + +```bash +$ semver 1.2.3 -i prerelease --preid beta -n false +1.2.4-beta +``` + +### Advanced Range Syntax + +Advanced range syntax desugars to primitive comparators in +deterministic ways. + +Advanced ranges may be combined in the same way as primitive +comparators using white space or `||`. + +#### Hyphen Ranges `X.Y.Z - A.B.C` + +Specifies an inclusive set. + +* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` + +If a partial version is provided as the first version in the inclusive +range, then the missing pieces are replaced with zeroes. + +* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` + +If a partial version is provided as the second version in the +inclusive range, then all versions that start with the supplied parts +of the tuple are accepted, but nothing that would be greater than the +provided tuple parts. + +* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0-0` +* `1.2.3 - 2` := `>=1.2.3 <3.0.0-0` + +#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` + +Any of `X`, `x`, or `*` may be used to "stand in" for one of the +numeric values in the `[major, minor, patch]` tuple. + +* `*` := `>=0.0.0` (Any non-prerelease version satisfies, unless + `includePrerelease` is specified, in which case any version at all + satisfies) +* `1.x` := `>=1.0.0 <2.0.0-0` (Matching major version) +* `1.2.x` := `>=1.2.0 <1.3.0-0` (Matching major and minor versions) + +A partial version range is treated as an X-Range, so the special +character is in fact optional. + +* `""` (empty string) := `*` := `>=0.0.0` +* `1` := `1.x.x` := `>=1.0.0 <2.0.0-0` +* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0-0` + +#### Tilde Ranges `~1.2.3` `~1.2` `~1` + +Allows patch-level changes if a minor version is specified on the +comparator. Allows minor-level changes if not. + +* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0-0` +* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0-0` (Same as `1.2.x`) +* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0-0` (Same as `1.x`) +* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0-0` +* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0-0` (Same as `0.2.x`) +* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0-0` (Same as `0.x`) +* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. + +#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` + +Allows changes that do not modify the left-most non-zero element in the +`[major, minor, patch]` tuple. In other words, this allows patch and +minor updates for versions `1.0.0` and above, patch updates for +versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. + +Many authors treat a `0.x` version as if the `x` were the major +"breaking-change" indicator. + +Caret ranges are ideal when an author may make breaking changes +between `0.2.4` and `0.3.0` releases, which is a common practice. +However, it presumes that there will *not* be breaking changes between +`0.2.4` and `0.2.5`. It allows for changes that are presumed to be +additive (but non-breaking), according to commonly observed practices. + +* `^1.2.3` := `>=1.2.3 <2.0.0-0` +* `^0.2.3` := `>=0.2.3 <0.3.0-0` +* `^0.0.3` := `>=0.0.3 <0.0.4-0` +* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0-0` Note that prereleases in + the `1.2.3` version will be allowed, if they are greater than or + equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but + `1.2.4-beta.2` would not, because it is a prerelease of a + different `[major, minor, patch]` tuple. +* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4-0` Note that prereleases in the + `0.0.3` version *only* will be allowed, if they are greater than or + equal to `beta`. So, `0.0.3-pr.2` would be allowed. + +When parsing caret ranges, a missing `patch` value desugars to the +number `0`, but will allow flexibility within that value, even if the +major and minor versions are both `0`. + +* `^1.2.x` := `>=1.2.0 <2.0.0-0` +* `^0.0.x` := `>=0.0.0 <0.1.0-0` +* `^0.0` := `>=0.0.0 <0.1.0-0` + +A missing `minor` and `patch` values will desugar to zero, but also +allow flexibility within those values, even if the major version is +zero. + +* `^1.x` := `>=1.0.0 <2.0.0-0` +* `^0.x` := `>=0.0.0 <1.0.0-0` + +### Range Grammar + +Putting all this together, here is a Backus-Naur grammar for ranges, +for the benefit of parser authors: + +```bnf +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= prepart ( '.' prepart ) * +prepart ::= nr | alphanumid +build ::= buildid ( '.' buildid ) * +alphanumid ::= ( ['0'-'9'] ) * [-A-Za-z] [-0-9A-Za-z] * +buildid ::= [-0-9A-Za-z]+ +``` + +Note: Prerelease identifiers (`pre`) use `nr` for numeric parts, which +disallows leading zeros (e.g., `1.2.3-00` is invalid). Build metadata +identifiers (`build`) allow any alphanumeric string including leading +zeros (e.g., `1.2.3+00` is valid). This matches the +[SemVer 2.0.0 specification](https://semver.org/#spec-item-9). + +## Functions + +All methods and classes take a final `options` object argument. All +options in this object are `false` by default. The options supported +are: + +- `loose`: Be more forgiving about not-quite-valid semver strings. + (Any resulting output will always be 100% strict compliant, of + course.) For backwards compatibility reasons, if the `options` + argument is a boolean value instead of an object, it is interpreted + to be the `loose` param. +- `includePrerelease`: Set to suppress the [default + behavior](https://github.com/npm/node-semver#prerelease-tags) of + excluding prerelease tagged versions from ranges unless they are + explicitly opted into. + +Strict-mode Comparators and Ranges will be strict about the SemVer +strings that they parse. + +* `valid(v)`: Return the parsed version, or null if it's not valid. +* `inc(v, releaseType, options, identifier, identifierBase)`: + Return the version incremented by the release + type (`major`, `premajor`, `minor`, `preminor`, `patch`, + `prepatch`, `prerelease`, or `release`), or null if it's not valid + * `premajor` in one call will bump the version up to the next major + version and down to a prerelease of that major version. + `preminor`, and `prepatch` work the same way. + * If called from a non-prerelease version, `prerelease` will work the + same as `prepatch`. It increments the patch version and then makes a + prerelease. If the input version is already a prerelease it simply + increments it. + * `release` will remove any prerelease part of the version. + * `identifier` can be used to prefix `premajor`, `preminor`, + `prepatch`, or `prerelease` version increments. `identifierBase` + is the base to be used for the `prerelease` identifier. +* `prerelease(v)`: Returns an array of prerelease components, or null + if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` +* `major(v)`: Return the major version number. +* `minor(v)`: Return the minor version number. +* `patch(v)`: Return the patch version number. +* `intersects(r1, r2, loose)`: Return true if the two supplied ranges + or comparators intersect. +* `parse(v)`: Attempt to parse a string as a semantic version, returning either + a `SemVer` object or `null`. +* `truncate(v, releaseType)`: Return the version with components _lower_ + than `releaseType` dropped off, e.g.: + * `major` removes build & prerelease info and sets minor & patch to 0. + * `minor` removes build & prerelease info, and sets patch to 0 + * `patch` removes build & prerelease info + * All prerelease types remove build info only + +### Comparison + +* `gt(v1, v2)`: `v1 > v2` +* `gte(v1, v2)`: `v1 >= v2` +* `lt(v1, v2)`: `v1 < v2` +* `lte(v1, v2)`: `v1 <= v2` +* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, + even if they're not the same string. You already know how to + compare strings. +* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. +* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call + the corresponding function above. `"==="` and `"!=="` do simple + string comparison, but are included for completeness. Throws if an + invalid comparison string is provided. +* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if + `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. +* `rcompare(v1, v2)`: The reverse of `compare`. Sorts an array of versions + in descending order when passed to `Array.sort()`. +* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions + are equal. Sorts in ascending order if passed to `Array.sort()`. +* `compareLoose(v1, v2)`: Short for `compare(v1, v2, { loose: true })`. +* `diff(v1, v2)`: Returns the difference between two versions by the release type + (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), + or null if the versions are the same. + +### Sorting + +* `sort(versions)`: Returns a sorted array of versions based on the `compareBuild` + function. +* `rsort(versions)`: The reverse of `sort`. Returns an array of versions based on + the `compareBuild` function in descending order. + +### Comparators + +* `intersects(comparator)`: Return true if the comparators intersect + +### Ranges + +* `validRange(range)`: Return the valid range or null if it's not valid. +* `satisfies(version, range)`: Return true if the version satisfies the + range. +* `maxSatisfying(versions, range)`: Return the highest version in the list + that satisfies the range, or `null` if none of them do. +* `minSatisfying(versions, range)`: Return the lowest version in the list + that satisfies the range, or `null` if none of them do. +* `minVersion(range)`: Return the lowest version that can match + the given range. +* `gtr(version, range)`: Return `true` if the version is greater than all the + versions possible in the range. +* `ltr(version, range)`: Return `true` if the version is less than all the + versions possible in the range. +* `outside(version, range, hilo)`: Return true if the version is outside + the bounds of the range in either the high or low direction. The + `hilo` argument must be either the string `'>'` or `'<'`. (This is + the function called by `gtr` and `ltr`.) +* `intersects(range)`: Return true if any of the range comparators intersect. +* `simplifyRange(versions, range)`: Return a "simplified" range that + matches the same items in the `versions` list as the range specified. Note + that it does *not* guarantee that it would match the same versions in all + cases, only for the set of versions provided. This is useful when + generating ranges by joining together multiple versions with `||` + programmatically, to provide the user with something a bit more + ergonomic. If the provided range is shorter in string-length than the + generated range, then that is returned. +* `subset(subRange, superRange)`: Return `true` if the `subRange` range is + entirely contained by the `superRange` range. + +Note that, since ranges may be non-contiguous, a version might not be +greater than a range, less than a range, *or* satisfy a range! For +example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` +until `2.0.0`, so version `1.2.10` would not be greater than the +range (because `2.0.1` satisfies, which is higher), nor less than the +range (since `1.2.8` satisfies, which is lower), and it also does not +satisfy the range. + +If you want to know if a version satisfies or does not satisfy a +range, use the `satisfies(version, range)` function. + +### Coercion + +* `coerce(version, options)`: Coerces a string to semver if possible + +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). + +If the `options.rtl` flag is set, then `coerce` will return the right-most +coercible tuple that does not share an ending index with a longer coercible +tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not +`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of +any other overlapping SemVer tuple. + +If the `options.includePrerelease` flag is set, then the `coerce` result will contain +prerelease and build parts of a version. For example, `1.2.3.4-rc.1+rev.2` +will preserve prerelease `rc.1` and build `rev.2` in the result. + +### Clean + +* `clean(version)`: Clean a string to be a valid semver if possible + +This will return a cleaned and trimmed semver version. If the provided +version is not valid a null will be returned. This does not work for +ranges. + +ex. +* `s.clean(' = v 2.1.5foo')`: `null` +* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean(' = v 2.1.5-foo')`: `null` +* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` +* `s.clean('=v2.1.5')`: `'2.1.5'` +* `s.clean(' =v2.1.5')`: `'2.1.5'` +* `s.clean(' 2.1.5 ')`: `'2.1.5'` +* `s.clean('~1.0.0')`: `null` + +## Constants + +As a convenience, helper constants are exported to provide information about what `node-semver` supports: + +### `RELEASE_TYPES` + +- major +- premajor +- minor +- preminor +- patch +- prepatch +- prerelease + +``` +const semver = require('semver'); + +if (semver.RELEASE_TYPES.includes(arbitraryUserInput)) { + console.log('This is a valid release type!'); +} else { + console.warn('This is NOT a valid release type!'); +} +``` + +### `SEMVER_SPEC_VERSION` + +2.0.0 + +``` +const semver = require('semver'); + +console.log('We are currently using the semver specification version:', semver.SEMVER_SPEC_VERSION); +``` + +## Exported Modules + + + +You may pull in just the part of this semver utility that you need if you +are sensitive to packing and tree-shaking concerns. The main +`require('semver')` export uses getter functions to lazily load the parts +of the API that are used. + +The following modules are available: + +* `require('semver')` +* `require('semver/classes')` +* `require('semver/classes/comparator')` +* `require('semver/classes/range')` +* `require('semver/classes/semver')` +* `require('semver/functions/clean')` +* `require('semver/functions/cmp')` +* `require('semver/functions/coerce')` +* `require('semver/functions/compare')` +* `require('semver/functions/compare-build')` +* `require('semver/functions/compare-loose')` +* `require('semver/functions/diff')` +* `require('semver/functions/eq')` +* `require('semver/functions/gt')` +* `require('semver/functions/gte')` +* `require('semver/functions/inc')` +* `require('semver/functions/lt')` +* `require('semver/functions/lte')` +* `require('semver/functions/major')` +* `require('semver/functions/minor')` +* `require('semver/functions/neq')` +* `require('semver/functions/parse')` +* `require('semver/functions/patch')` +* `require('semver/functions/prerelease')` +* `require('semver/functions/rcompare')` +* `require('semver/functions/rsort')` +* `require('semver/functions/satisfies')` +* `require('semver/functions/sort')` +* `require('semver/functions/truncate')` +* `require('semver/functions/valid')` +* `require('semver/ranges/gtr')` +* `require('semver/ranges/intersects')` +* `require('semver/ranges/ltr')` +* `require('semver/ranges/max-satisfying')` +* `require('semver/ranges/min-satisfying')` +* `require('semver/ranges/min-version')` +* `require('semver/ranges/outside')` +* `require('semver/ranges/simplify')` +* `require('semver/ranges/subset')` +* `require('semver/ranges/to-comparators')` +* `require('semver/ranges/valid')` + diff --git a/01_3D-Druck/gemini/build/node_modules/semver/bin/semver.js b/01_3D-Druck/gemini/build/node_modules/semver/bin/semver.js new file mode 100644 index 0000000..9ae8aad --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/bin/semver.js @@ -0,0 +1,195 @@ +#!/usr/bin/env node +// Standalone semver comparison program. +// Exits successfully and prints matching version(s) if +// any supplied version is valid and passes all tests. + +'use strict' + +const argv = process.argv.slice(2) + +let versions = [] + +const range = [] + +let inc = null + +const version = require('../package.json').version + +let loose = false + +let includePrerelease = false + +let coerce = false + +let rtl = false + +let identifier + +let identifierBase + +const semver = require('../') +const parseOptions = require('../internal/parse-options') + +let reverse = false + +let options = {} + +const main = () => { + if (!argv.length) { + return help() + } + while (argv.length) { + let a = argv.shift() + const indexOfEqualSign = a.indexOf('=') + if (indexOfEqualSign !== -1) { + const value = a.slice(indexOfEqualSign + 1) + a = a.slice(0, indexOfEqualSign) + argv.unshift(value) + } + + switch (a) { + case '-rv': case '-rev': case '--rev': case '--reverse': + reverse = true + break + case '-l': case '--loose': + loose = true + break + case '-p': case '--include-prerelease': + includePrerelease = true + break + case '-v': case '--version': + versions.push(argv.shift()) + break + case '-i': case '--inc': case '--increment': + if (semver.RELEASE_TYPES.includes(argv[0]) || (argv[0] === 'release')) { + inc = { value: argv.shift(), maybeErrantValue: null, option: a } + } else { + inc = { value: 'patch', maybeErrantValue: argv[0], option: a } + } + break + case '--preid': + identifier = argv.shift() + break + case '-r': case '--range': + range.push(argv.shift()) + break + case '-n': + identifierBase = argv.shift() + if (identifierBase === 'false') { + identifierBase = false + } + break + case '-c': case '--coerce': + coerce = true + break + case '--rtl': + rtl = true + break + case '--ltr': + rtl = false + break + case '-h': case '--help': case '-?': + return help() + default: + versions.push(a) + break + } + } + + options = parseOptions({ loose, includePrerelease, rtl }) + + if ( + inc && + versions.includes(inc.maybeErrantValue) && + !semver.valid(inc.maybeErrantValue, options) + ) { + console.warn(`Invalid value for ${inc.option}; defaulting to 'patch'. This may become a failure in future major versions.`) + } + + versions = versions.map((v) => { + return coerce ? (semver.coerce(v, options) || { version: v }).version : v + }).filter((v) => { + return semver.valid(v, options) + }) + if (!versions.length) { + return fail() + } + if (inc && (versions.length !== 1 || range.length)) { + return failInc() + } + + for (let i = 0, l = range.length; i < l; i++) { + versions = versions.filter((v) => { + return semver.satisfies(v, range[i], options) + }) + if (!versions.length) { + return fail() + } + } + versions + .sort((a, b) => semver[reverse ? 'rcompare' : 'compare'](a, b, options)) + .map(v => semver.clean(v, options)) + .map(v => inc ? semver.inc(v, inc.value, options, identifier, identifierBase) : v) + .forEach(v => console.log(v)) +} + +const failInc = () => { + console.error('--inc can only be used on a single version with no range') + fail() +} + +const fail = () => process.exit(1) + +const help = () => console.log( +`SemVer ${version} + +A JavaScript implementation of the https://semver.org/ specification +Copyright Isaac Z. Schlueter + +Usage: semver [options] [ [...]] +Prints valid versions sorted by SemVer precedence + +Options: +-r --range + Print versions that match the specified range. + +-i --increment [] + Increment a version by the specified level. Level can + be one of: major, minor, patch, premajor, preminor, + prepatch, prerelease, or release. Default level is 'patch'. + Only one version may be specified. + +--preid + Identifier to be used to prefix premajor, preminor, + prepatch or prerelease version increments. + +-l --loose + Interpret versions and ranges loosely + +-p --include-prerelease + Always include prerelease versions in range matching + +-c --coerce + Coerce a string into SemVer if possible + (does not imply --loose) + +--rtl + Coerce version strings right to left + +--ltr + Coerce version strings left to right (default) + +-n + Base number to be used for the prerelease identifier. + Can be either 0 or 1, or false to omit the number altogether. + Defaults to 0. + +Program exits successfully if any valid version satisfies +all supplied ranges, and prints all satisfying versions. + +If no satisfying versions are found, then exits failure. + +Versions are printed in ascending order, so supplying +multiple versions to the utility will just sort them.`) + +main() diff --git a/01_3D-Druck/gemini/build/node_modules/semver/classes/comparator.js b/01_3D-Druck/gemini/build/node_modules/semver/classes/comparator.js new file mode 100644 index 0000000..647c1f0 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/classes/comparator.js @@ -0,0 +1,143 @@ +'use strict' + +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options) + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options) + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } +} + +module.exports = Comparator + +const parseOptions = require('../internal/parse-options') +const { safeRe: re, t } = require('../internal/re') +const cmp = require('../functions/cmp') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const Range = require('./range') diff --git a/01_3D-Druck/gemini/build/node_modules/semver/classes/index.js b/01_3D-Druck/gemini/build/node_modules/semver/classes/index.js new file mode 100644 index 0000000..91c24ec --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/classes/index.js @@ -0,0 +1,7 @@ +'use strict' + +module.exports = { + SemVer: require('./semver.js'), + Range: require('./range.js'), + Comparator: require('./comparator.js'), +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/classes/range.js b/01_3D-Druck/gemini/build/node_modules/semver/classes/range.js new file mode 100644 index 0000000..766d505 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/classes/range.js @@ -0,0 +1,573 @@ +'use strict' + +const SPACE_CHARACTERS = /\s+/g + +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.formatted = undefined + return this + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } + } + } + } + + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // strip build metadata so it can't bleed into the version + range = range.replace(BUILDSTRIPRE, '') + + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE) + const memoKey = memoOpts + ':' + range + const cached = cache.get(memoKey) + if (cached) { + return cached + } + + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} + +module.exports = Range + +const LRU = require('../internal/lrucache') +const cache = new LRU() + +const parseOptions = require('../internal/parse-options') +const Comparator = require('./comparator') +const debug = require('../internal/debug') +const SemVer = require('./semver') +const { + safeRe: re, + src, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = require('../internal/re') +const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants') + +// unbounded global build-metadata stripper used by parseRange +const BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g') + +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + comp = comp.replace(re[t.BUILD], '') + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' + +const invalidXRangeOrder = (M, m, p) => ( + (isX(M) && !isX(m)) || + (isX(m) && p && !isX(p)) +) + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +// ~0.0.1 --> >=0.0.1 <0.1.0-0 +const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') +} + +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +// ^0.0.1 --> >=0.0.1 <0.0.2-0 +// ^0.1.0 --> >=0.1.0 <0.2.0-0 +const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') +} + +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } + } + + debug('caret return', ret) + return ret + }) +} + +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') +} + +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + if (invalidXRangeOrder(M, m, p)) { + return comp + } + + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + if (gtlt === '<') { + pr = '-0' + } + + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') +} + +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return `${from} ${to}`.trim() +} + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/classes/semver.js b/01_3D-Druck/gemini/build/node_modules/semver/classes/semver.js new file mode 100644 index 0000000..5438127 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/classes/semver.js @@ -0,0 +1,350 @@ +'use strict' + +const debug = require('../internal/debug') +const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants') +const { safeRe: re, t } = require('../internal/re') + +const parseOptions = require('../internal/parse-options') +const { compareIdentifiers } = require('../internal/identifiers') + +const isPrereleaseIdentifier = (prerelease, identifier) => { + const identifiers = identifier.split('.') + if (identifiers.length > prerelease.length) { + return false + } + + for (let i = 0; i < identifiers.length; i++) { + if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) { + return false + } + } + + return true +} + +class SemVer { + constructor (version, options) { + options = parseOptions(options) + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + if (this.major < other.major) { + return -1 + } + if (this.major > other.major) { + return 1 + } + if (this.minor < other.minor) { + return -1 + } + if (this.minor > other.minor) { + return 1 + } + if (this.patch < other.patch) { + return -1 + } + if (this.patch > other.patch) { + return 1 + } + return 0 + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('build compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + if (release.startsWith('pre')) { + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + // Avoid an invalid semver results + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]) + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`) + } + } + } + + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier, identifierBase) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier, identifierBase) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier, identifierBase) + this.inc('pre', identifier, identifierBase) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase) + } + this.inc('pre', identifier, identifierBase) + break + case 'release': + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`) + } + this.prerelease.length = 0 + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0 + + if (this.prerelease.length === 0) { + this.prerelease = [base] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base] + if (identifierBase === false) { + prerelease = [identifier] + } + if (isPrereleaseIdentifier(this.prerelease, identifier)) { + const prereleaseBase = this.prerelease[identifier.split('.').length] + if (isNaN(prereleaseBase)) { + this.prerelease = prerelease + } + } else { + this.prerelease = prerelease + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format() + if (this.build.length) { + this.raw += `+${this.build.join('.')}` + } + return this + } +} + +module.exports = SemVer diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/clean.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/clean.js new file mode 100644 index 0000000..79703d6 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/clean.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/cmp.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/cmp.js new file mode 100644 index 0000000..77487dc --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/cmp.js @@ -0,0 +1,54 @@ +'use strict' + +const eq = require('./eq') +const neq = require('./neq') +const gt = require('./gt') +const gte = require('./gte') +const lt = require('./lt') +const lte = require('./lte') + +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +} +module.exports = cmp diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/coerce.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/coerce.js new file mode 100644 index 0000000..cfe0275 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/coerce.js @@ -0,0 +1,62 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = require('./parse') +const { safeRe: re, t } = require('../internal/re') + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] + let next + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1 + } + + if (match === null) { + return null + } + + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) +} +module.exports = coerce diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-build.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-build.js new file mode 100644 index 0000000..99157cf --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-build.js @@ -0,0 +1,9 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} +module.exports = compareBuild diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-loose.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-loose.js new file mode 100644 index 0000000..7531634 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare-loose.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/compare.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare.js new file mode 100644 index 0000000..63d8090 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/compare.js @@ -0,0 +1,7 @@ +'use strict' + +const SemVer = require('../classes/semver') +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/diff.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/diff.js new file mode 100644 index 0000000..c99ab51 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/diff.js @@ -0,0 +1,60 @@ +'use strict' + +const parse = require('./parse.js') + +const diff = (version1, version2) => { + const v1 = parse(version1, null, true) + const v2 = parse(version2, null, true) + const comparison = v1.compare(v2) + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0 + const highVersion = v1Higher ? v1 : v2 + const lowVersion = v1Higher ? v2 : v1 + const highHasPre = !!highVersion.prerelease.length + const lowHasPre = !!lowVersion.prerelease.length + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // If the main part has no difference + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return 'minor' + } + return 'patch' + } + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : '' + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are prereleases + return 'prerelease' +} + +module.exports = diff diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/eq.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/eq.js new file mode 100644 index 0000000..5f0eead --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/eq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/gt.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/gt.js new file mode 100644 index 0000000..84a57dd --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/gt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/gte.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/gte.js new file mode 100644 index 0000000..7c52bdf --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/gte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/inc.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/inc.js new file mode 100644 index 0000000..ff999e9 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/inc.js @@ -0,0 +1,21 @@ +'use strict' + +const SemVer = require('../classes/semver') + +const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +} +module.exports = inc diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/lt.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/lt.js new file mode 100644 index 0000000..2fb32a0 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/lt.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/lte.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/lte.js new file mode 100644 index 0000000..da9ee8f --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/lte.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/major.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/major.js new file mode 100644 index 0000000..e6d08dc --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/major.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/minor.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/minor.js new file mode 100644 index 0000000..9e70ffd --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/minor.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/neq.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/neq.js new file mode 100644 index 0000000..84326b7 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/neq.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/parse.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/parse.js new file mode 100644 index 0000000..d544d33 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/parse.js @@ -0,0 +1,18 @@ +'use strict' + +const SemVer = require('../classes/semver') +const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +} + +module.exports = parse diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/patch.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/patch.js new file mode 100644 index 0000000..7675162 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/patch.js @@ -0,0 +1,5 @@ +'use strict' + +const SemVer = require('../classes/semver') +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/prerelease.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/prerelease.js new file mode 100644 index 0000000..b8fe1db --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/prerelease.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} +module.exports = prerelease diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/rcompare.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/rcompare.js new file mode 100644 index 0000000..8e1c222 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/rcompare.js @@ -0,0 +1,5 @@ +'use strict' + +const compare = require('./compare') +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/rsort.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/rsort.js new file mode 100644 index 0000000..5d3d200 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/rsort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/satisfies.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/satisfies.js new file mode 100644 index 0000000..a0264a2 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/satisfies.js @@ -0,0 +1,12 @@ +'use strict' + +const Range = require('../classes/range') +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} +module.exports = satisfies diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/sort.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/sort.js new file mode 100644 index 0000000..edb24b1 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/sort.js @@ -0,0 +1,5 @@ +'use strict' + +const compareBuild = require('./compare-build') +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/truncate.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/truncate.js new file mode 100644 index 0000000..8314e4e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/truncate.js @@ -0,0 +1,48 @@ +'use strict' + +const parse = require('./parse') +const constants = require('../internal/constants') +const SemVer = require('../classes/semver') + +const truncate = (version, truncation, options) => { + if (!constants.RELEASE_TYPES.includes(truncation)) { + return null + } + + const clonedVersion = cloneInputVersion(version, options) + return clonedVersion && doTruncation(clonedVersion, truncation) +} + +const cloneInputVersion = (version, options) => { + const versionStringToParse = ( + version instanceof SemVer ? version.version : version + ) + + return parse(versionStringToParse, options) +} + +const doTruncation = (version, truncation) => { + if (isPrerelease(truncation)) { + return version.version + } + + version.prerelease = [] + + switch (truncation) { + case 'major': + version.minor = 0 + version.patch = 0 + break + case 'minor': + version.patch = 0 + break + } + + return version.format() +} + +const isPrerelease = (type) => { + return type.startsWith('pre') +} + +module.exports = truncate diff --git a/01_3D-Druck/gemini/build/node_modules/semver/functions/valid.js b/01_3D-Druck/gemini/build/node_modules/semver/functions/valid.js new file mode 100644 index 0000000..0db67ed --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/functions/valid.js @@ -0,0 +1,8 @@ +'use strict' + +const parse = require('./parse') +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null +} +module.exports = valid diff --git a/01_3D-Druck/gemini/build/node_modules/semver/index.js b/01_3D-Druck/gemini/build/node_modules/semver/index.js new file mode 100644 index 0000000..bc1f608 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/index.js @@ -0,0 +1,93 @@ +'use strict' + +// just pre-load all the stuff that index.js lazily exports +const internalRe = require('./internal/re') +const constants = require('./internal/constants') +const SemVer = require('./classes/semver') +const identifiers = require('./internal/identifiers') +const parse = require('./functions/parse') +const valid = require('./functions/valid') +const clean = require('./functions/clean') +const inc = require('./functions/inc') +const diff = require('./functions/diff') +const major = require('./functions/major') +const minor = require('./functions/minor') +const patch = require('./functions/patch') +const prerelease = require('./functions/prerelease') +const compare = require('./functions/compare') +const rcompare = require('./functions/rcompare') +const compareLoose = require('./functions/compare-loose') +const compareBuild = require('./functions/compare-build') +const sort = require('./functions/sort') +const rsort = require('./functions/rsort') +const gt = require('./functions/gt') +const lt = require('./functions/lt') +const eq = require('./functions/eq') +const neq = require('./functions/neq') +const gte = require('./functions/gte') +const lte = require('./functions/lte') +const cmp = require('./functions/cmp') +const coerce = require('./functions/coerce') +const truncate = require('./functions/truncate') +const Comparator = require('./classes/comparator') +const Range = require('./classes/range') +const satisfies = require('./functions/satisfies') +const toComparators = require('./ranges/to-comparators') +const maxSatisfying = require('./ranges/max-satisfying') +const minSatisfying = require('./ranges/min-satisfying') +const minVersion = require('./ranges/min-version') +const validRange = require('./ranges/valid') +const outside = require('./ranges/outside') +const gtr = require('./ranges/gtr') +const ltr = require('./ranges/ltr') +const intersects = require('./ranges/intersects') +const simplifyRange = require('./ranges/simplify') +const subset = require('./ranges/subset') +module.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/constants.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/constants.js new file mode 100644 index 0000000..6d1db91 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/constants.js @@ -0,0 +1,37 @@ +'use strict' + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +] + +module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/debug.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/debug.js new file mode 100644 index 0000000..20d1e9d --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/debug.js @@ -0,0 +1,11 @@ +'use strict' + +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/identifiers.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/identifiers.js new file mode 100644 index 0000000..d053472 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/identifiers.js @@ -0,0 +1,29 @@ +'use strict' + +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a === b ? 0 : a < b ? -1 : 1 + } + + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/lrucache.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/lrucache.js new file mode 100644 index 0000000..b8bf526 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/lrucache.js @@ -0,0 +1,42 @@ +'use strict' + +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/parse-options.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/parse-options.js new file mode 100644 index 0000000..5295454 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/parse-options.js @@ -0,0 +1,17 @@ +'use strict' + +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }) +const emptyOpts = Object.freeze({ }) +const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +} +module.exports = parseOptions diff --git a/01_3D-Druck/gemini/build/node_modules/semver/internal/re.js b/01_3D-Druck/gemini/build/node_modules/semver/internal/re.js new file mode 100644 index 0000000..2ec2c22 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/internal/re.js @@ -0,0 +1,223 @@ +'use strict' + +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = require('./constants') +const debug = require('./debug') +exports = module.exports = {} + +// The actual regexps go on exports.re +const re = exports.re = [] +const safeRe = exports.safeRe = [] +const src = exports.src = [] +const safeSrc = exports.safeSrc = [] +const t = exports.t = {} +let R = 0 + +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + +const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value) + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + safeSrc[index] = safe + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined) +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) + +// ## Main Version +// Three dot-separated numeric identifiers. + +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) + +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +// Non-numeric identifiers include numeric identifiers but can be longer. +// Therefore non-numeric identifiers must go first. + +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIER]})`) + +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) + +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) + +createToken('FULL', `^${src[t.FULLPLAIN]}$`) + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) + +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + +createToken('GTLT', '((?:<|>)?=?)') + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifier, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') + +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' + +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') + +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' + +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) + +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) + +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') diff --git a/01_3D-Druck/gemini/build/node_modules/semver/package.json b/01_3D-Druck/gemini/build/node_modules/semver/package.json new file mode 100644 index 0000000..ddedbf7 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/package.json @@ -0,0 +1,78 @@ +{ + "name": "semver", + "version": "7.8.4", + "description": "The semantic version parser used by npm.", + "main": "index.js", + "scripts": { + "test": "tap", + "snap": "tap", + "lint": "npm run eslint", + "postlint": "template-oss-check", + "lintfix": "npm run eslint -- --fix", + "posttest": "npm run lint", + "template-oss-apply": "template-oss-apply --force", + "eslint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"" + }, + "devDependencies": { + "@npmcli/eslint-config": "^7.0.0", + "@npmcli/template-oss": "5.0.0", + "benchmark": "^2.1.4", + "tap": "^16.0.0" + }, + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/node-semver.git" + }, + "bin": { + "semver": "bin/semver.js" + }, + "files": [ + "bin/", + "lib/", + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "tap": { + "timeout": 30, + "coverage-map": "map.js", + "nyc-arg": [ + "--exclude", + "tap-snapshots/**" + ] + }, + "engines": { + "node": ">=10" + }, + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "version": "5.0.0", + "engines": ">=10", + "distPaths": [ + "classes/", + "functions/", + "internal/", + "ranges/", + "index.js", + "preload.js", + "range.bnf" + ], + "allowPaths": [ + "/classes/", + "/functions/", + "/internal/", + "/ranges/", + "/index.js", + "/preload.js", + "/range.bnf", + "/benchmarks" + ], + "publish": "true" + } +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/preload.js b/01_3D-Druck/gemini/build/node_modules/semver/preload.js new file mode 100644 index 0000000..e6c47b9 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/preload.js @@ -0,0 +1,4 @@ +'use strict' + +// XXX remove in v8 or beyond +module.exports = require('./index.js') diff --git a/01_3D-Druck/gemini/build/node_modules/semver/range.bnf b/01_3D-Druck/gemini/build/node_modules/semver/range.bnf new file mode 100644 index 0000000..a7a4bc3 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/range.bnf @@ -0,0 +1,17 @@ +range-set ::= range ( logical-or range ) * +logical-or ::= ( ' ' ) * '||' ( ' ' ) * +range ::= hyphen | simple ( ' ' simple ) * | '' +hyphen ::= partial ' - ' partial +simple ::= primitive | partial | tilde | caret +primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial +partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? +xr ::= 'x' | 'X' | '*' | nr +nr ::= '0' | [1-9] ( [0-9] ) * +tilde ::= '~' partial +caret ::= '^' partial +qualifier ::= ( '-' pre )? ( '+' build )? +pre ::= prepart ( '.' prepart ) * +prepart ::= nr | alphanumid +build ::= buildid ( '.' buildid ) * +alphanumid ::= ( [0-9] ) * [A-Za-z-] [-0-9A-Za-z] * +buildid ::= [-0-9A-Za-z]+ diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/gtr.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/gtr.js new file mode 100644 index 0000000..0e7601f --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/gtr.js @@ -0,0 +1,6 @@ +'use strict' + +// Determine if version is greater than all the versions possible in the range. +const outside = require('./outside') +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/intersects.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/intersects.js new file mode 100644 index 0000000..917be7e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/intersects.js @@ -0,0 +1,9 @@ +'use strict' + +const Range = require('../classes/range') +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2, options) +} +module.exports = intersects diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/ltr.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/ltr.js new file mode 100644 index 0000000..aa5e568 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/ltr.js @@ -0,0 +1,6 @@ +'use strict' + +const outside = require('./outside') +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/max-satisfying.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/max-satisfying.js new file mode 100644 index 0000000..01fe5ae --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/max-satisfying.js @@ -0,0 +1,27 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} +module.exports = maxSatisfying diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-satisfying.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-satisfying.js new file mode 100644 index 0000000..af89c8e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-satisfying.js @@ -0,0 +1,26 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-version.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-version.js new file mode 100644 index 0000000..09a65aa --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/min-version.js @@ -0,0 +1,63 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Range = require('../classes/range') +const gt = require('../functions/gt') + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} +module.exports = minVersion diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/outside.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/outside.js new file mode 100644 index 0000000..ca74421 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/outside.js @@ -0,0 +1,82 @@ +'use strict' + +const SemVer = require('../classes/semver') +const Comparator = require('../classes/comparator') +const { ANY } = Comparator +const Range = require('../classes/range') +const satisfies = require('../functions/satisfies') +const gt = require('../functions/gt') +const lt = require('../functions/lt') +const lte = require('../functions/lte') +const gte = require('../functions/gte') + +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +module.exports = outside diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/simplify.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/simplify.js new file mode 100644 index 0000000..262732e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/simplify.js @@ -0,0 +1,49 @@ +'use strict' + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null + } + } + if (first) { + set.push([first, null]) + } + + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) + } + } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range +} diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/subset.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/subset.js new file mode 100644 index 0000000..a949832 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/subset.js @@ -0,0 +1,249 @@ +'use strict' + +const Range = require('../classes/range.js') +const Comparator = require('../classes/comparator.js') +const { ANY } = Comparator +const satisfies = require('../functions/satisfies.js') +const compare = require('../functions/compare.js') + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If LT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} + +const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')] +const minimumVersion = [new Comparator('>=0.0.0')] + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease + } else { + sub = minimumVersion + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion + } + } + + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !c.test(gt.semver)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !c.test(lt.semver)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +} + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +} + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +} + +module.exports = subset diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/to-comparators.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/to-comparators.js new file mode 100644 index 0000000..5be2519 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/to-comparators.js @@ -0,0 +1,10 @@ +'use strict' + +const Range = require('../classes/range') + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators diff --git a/01_3D-Druck/gemini/build/node_modules/semver/ranges/valid.js b/01_3D-Druck/gemini/build/node_modules/semver/ranges/valid.js new file mode 100644 index 0000000..cc6b0e9 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/semver/ranges/valid.js @@ -0,0 +1,13 @@ +'use strict' + +const Range = require('../classes/range') +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/LICENSE b/01_3D-Druck/gemini/build/node_modules/sharp/LICENSE new file mode 100644 index 0000000..37ec93a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/README.md b/01_3D-Druck/gemini/build/node_modules/sharp/README.md new file mode 100644 index 0000000..47da52e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/README.md @@ -0,0 +1,118 @@ +# sharp + +sharp logo + +The typical use case for this high speed Node-API module +is to convert large images in common formats to +smaller, web-friendly JPEG, PNG, WebP, GIF and AVIF images of varying dimensions. + +It can be used with all JavaScript runtimes +that provide support for Node-API v9, including +Node.js (^18.17.0 or >= 20.3.0), Deno and Bun. + +Resizing an image is typically 4x-5x faster than using the +quickest ImageMagick and GraphicsMagick settings +due to its use of [libvips](https://github.com/libvips/libvips). + +Colour spaces, embedded ICC profiles and alpha transparency channels are all handled correctly. +Lanczos resampling ensures quality is not sacrificed for speed. + +As well as image resizing, operations such as +rotation, extraction, compositing and gamma correction are available. + +Most modern macOS, Windows and Linux systems +do not require any additional install or runtime dependencies. + +## Documentation + +Visit [sharp.pixelplumbing.com](https://sharp.pixelplumbing.com/) for complete +[installation instructions](https://sharp.pixelplumbing.com/install), +[API documentation](https://sharp.pixelplumbing.com/api-constructor), +[benchmark tests](https://sharp.pixelplumbing.com/performance) and +[changelog](https://sharp.pixelplumbing.com/changelog). + +## Examples + +```sh +npm install sharp +``` + +```javascript +const sharp = require('sharp'); +``` + +### Callback + +```javascript +sharp(inputBuffer) + .resize(320, 240) + .toFile('output.webp', (err, info) => { ... }); +``` + +### Promise + +```javascript +sharp('input.jpg') + .rotate() + .resize(200) + .jpeg({ mozjpeg: true }) + .toBuffer() + .then( data => { ... }) + .catch( err => { ... }); +``` + +### Async/await + +```javascript +const semiTransparentRedPng = await sharp({ + create: { + width: 48, + height: 48, + channels: 4, + background: { r: 255, g: 0, b: 0, alpha: 0.5 } + } +}) + .png() + .toBuffer(); +``` + +### Stream + +```javascript +const roundedCorners = Buffer.from( + '' +); + +const roundedCornerResizer = + sharp() + .resize(200, 200) + .composite([{ + input: roundedCorners, + blend: 'dest-in' + }]) + .png(); + +readableStream + .pipe(roundedCornerResizer) + .pipe(writableStream); +``` + +## Contributing + +A [guide for contributors](https://github.com/lovell/sharp/blob/main/.github/CONTRIBUTING.md) +covers reporting bugs, requesting features and submitting code changes. + +## Licensing + +Copyright 2013 Lovell Fuller and others. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at +[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/install/build.js b/01_3D-Druck/gemini/build/node_modules/sharp/install/build.js new file mode 100644 index 0000000..2ca2245 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/install/build.js @@ -0,0 +1,38 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const { + useGlobalLibvips, + globalLibvipsVersion, + log, + spawnRebuild, +} = require('../lib/libvips'); + +log('Attempting to build from source via node-gyp'); +log('See https://sharp.pixelplumbing.com/install#building-from-source'); + +try { + const addonApi = require('node-addon-api'); + log(`Found node-addon-api ${addonApi.version || ''}`); +} catch (_err) { + log('Please add node-addon-api to your dependencies'); + process.exit(1); +} +try { + const gyp = require('node-gyp'); + log(`Found node-gyp ${gyp().version}`); +} catch (_err) { + log('Please add node-gyp to your dependencies'); + process.exit(1); +} + +if (useGlobalLibvips(log)) { + log(`Detected globally-installed libvips v${globalLibvipsVersion()}`); +} + +const status = spawnRebuild(); +if (status !== 0) { + process.exit(status); +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/install/check.js b/01_3D-Druck/gemini/build/node_modules/sharp/install/check.js new file mode 100644 index 0000000..1cfb7d3 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/install/check.js @@ -0,0 +1,14 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +try { + const { useGlobalLibvips } = require('../lib/libvips'); + if (useGlobalLibvips() || process.env.npm_config_build_from_source) { + process.exit(1); + } +} catch (err) { + const summary = err.message.split(/\n/).slice(0, 1); + console.log(`sharp: skipping install check: ${summary}`); +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/channel.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/channel.js new file mode 100644 index 0000000..3c6c0b4 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/channel.js @@ -0,0 +1,177 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is'); + +/** + * Boolean operations for bandbool. + * @private + */ +const bool = { + and: 'and', + or: 'or', + eor: 'eor' +}; + +/** + * Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel. + * + * See also {@link /api-operation/#flatten flatten}. + * + * @example + * sharp('rgba.png') + * .removeAlpha() + * .toFile('rgb.png', function(err, info) { + * // rgb.png is a 3 channel image without an alpha channel + * }); + * + * @returns {Sharp} + */ +function removeAlpha () { + this.options.removeAlpha = true; + return this; +} + +/** + * Ensure the output image has an alpha transparency channel. + * If missing, the added alpha channel will have the specified + * transparency level, defaulting to fully-opaque (1). + * This is a no-op if the image already has an alpha channel. + * + * @since 0.21.2 + * + * @example + * // rgba.png will be a 4 channel image with a fully-opaque alpha channel + * await sharp('rgb.jpg') + * .ensureAlpha() + * .toFile('rgba.png') + * + * @example + * // rgba is a 4 channel image with a fully-transparent alpha channel + * const rgba = await sharp(rgb) + * .ensureAlpha(0) + * .toBuffer(); + * + * @param {number} [alpha=1] - alpha transparency level (0=fully-transparent, 1=fully-opaque) + * @returns {Sharp} + * @throws {Error} Invalid alpha transparency level + */ +function ensureAlpha (alpha) { + if (is.defined(alpha)) { + if (is.number(alpha) && is.inRange(alpha, 0, 1)) { + this.options.ensureAlpha = alpha; + } else { + throw is.invalidParameterError('alpha', 'number between 0 and 1', alpha); + } + } else { + this.options.ensureAlpha = 1; + } + return this; +} + +/** + * Extract a single channel from a multi-channel image. + * + * The output colourspace will be either `b-w` (8-bit) or `grey16` (16-bit). + * + * @example + * // green.jpg is a greyscale image containing the green channel of the input + * await sharp(input) + * .extractChannel('green') + * .toFile('green.jpg'); + * + * @example + * // red1 is the red value of the first pixel, red2 the second pixel etc. + * const [red1, red2, ...] = await sharp(input) + * .extractChannel(0) + * .raw() + * .toBuffer(); + * + * @param {number|string} channel - zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`. + * @returns {Sharp} + * @throws {Error} Invalid channel + */ +function extractChannel (channel) { + const channelMap = { red: 0, green: 1, blue: 2, alpha: 3 }; + if (Object.keys(channelMap).includes(channel)) { + channel = channelMap[channel]; + } + if (is.integer(channel) && is.inRange(channel, 0, 4)) { + this.options.extractChannel = channel; + } else { + throw is.invalidParameterError('channel', 'integer or one of: red, green, blue, alpha', channel); + } + return this; +} + +/** + * Join one or more channels to the image. + * The meaning of the added channels depends on the output colourspace, set with `toColourspace()`. + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the `options` object should contain a `raw` attribute, which follows the format of the attribute of the same name in the `sharp()` constructor. + * + * @param {Array|string|Buffer} images - one or more images (file paths, Buffers). + * @param {Object} options - image options, see `sharp()` constructor. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function joinChannel (images, options) { + if (Array.isArray(images)) { + images.forEach(function (image) { + this.options.joinChannelIn.push(this._createInputDescriptor(image, options)); + }, this); + } else { + this.options.joinChannelIn.push(this._createInputDescriptor(images, options)); + } + return this; +} + +/** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * + * @example + * sharp('3-channel-rgb-input.png') + * .bandbool(sharp.bool.and) + * .toFile('1-channel-output.png', function (err, info) { + * // The output will be a single channel image where each pixel `P = R & G & B`. + * // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]` + * // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`. + * }); + * + * @param {string} boolOp - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function bandbool (boolOp) { + if (is.string(boolOp) && is.inArray(boolOp, ['and', 'or', 'eor'])) { + this.options.bandBoolOp = boolOp; + } else { + throw is.invalidParameterError('boolOp', 'one of: and, or, eor', boolOp); + } + return this; +} + +/** + * Decorate the Sharp prototype with channel-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public instance functions + removeAlpha, + ensureAlpha, + extractChannel, + joinChannel, + bandbool + }); + // Class attributes + Sharp.bool = bool; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/colour.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/colour.js new file mode 100644 index 0000000..e61c248 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/colour.js @@ -0,0 +1,195 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const color = require('@img/colour'); +const is = require('./is'); + +/** + * Colourspaces. + * @private + */ +const colourspace = { + multiband: 'multiband', + 'b-w': 'b-w', + bw: 'b-w', + cmyk: 'cmyk', + srgb: 'srgb' +}; + +/** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * + * @example + * const output = await sharp(input) + * .tint({ r: 255, g: 240, b: 16 }) + * .toBuffer(); + * + * @param {string|Object} tint - Parsed by the [color](https://www.npmjs.org/package/color) module. + * @returns {Sharp} + * @throws {Error} Invalid parameter + */ +function tint (tint) { + this._setBackgroundColourOption('tint', tint); + return this; +} + +/** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. If the input image is in a non-linear colour space such as sRGB, use `gamma()` with `greyscale()` for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as `toColourspace('b-w')`, + * which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * + * @example + * const output = await sharp(input).greyscale().toBuffer(); + * + * @param {Boolean} [greyscale=true] + * @returns {Sharp} + */ +function greyscale (greyscale) { + this.options.greyscale = is.bool(greyscale) ? greyscale : true; + return this; +} + +/** + * Alternative spelling of `greyscale`. + * @param {Boolean} [grayscale=true] + * @returns {Sharp} + */ +function grayscale (grayscale) { + return this.greyscale(grayscale); +} + +/** + * Set the pipeline colourspace. + * + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, + * as defined by {@link #tocolourspace toColourspace}. + * + * @since 0.29.0 + * + * @example + * // Run pipeline in 16 bits per channel RGB while converting final result to 8 bits per channel sRGB. + * await sharp(input) + * .pipelineColourspace('rgb16') + * .toColourspace('srgb') + * .toFile('16bpc-pipeline-to-8bpc-output.png') + * + * @param {string} [colourspace] - pipeline colourspace e.g. `rgb16`, `scrgb`, `lab`, `grey16` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspacePipeline = colourspace; + return this; +} + +/** + * Alternative spelling of `pipelineColourspace`. + * @param {string} [colorspace] - pipeline colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function pipelineColorspace (colorspace) { + return this.pipelineColourspace(colorspace); +} + +/** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * + * @example + * // Output 16 bits per pixel RGB + * await sharp(input) + * .toColourspace('rgb16') + * .toFile('16-bpp.png') + * + * @param {string} [colourspace] - output colourspace e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColourspace (colourspace) { + if (!is.string(colourspace)) { + throw is.invalidParameterError('colourspace', 'string', colourspace); + } + this.options.colourspace = colourspace; + return this; +} + +/** + * Alternative spelling of `toColourspace`. + * @param {string} [colorspace] - output colorspace. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function toColorspace (colorspace) { + return this.toColourspace(colorspace); +} + +/** + * Create a RGBA colour array from a given value. + * @private + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _getBackgroundColourOption (value) { + if ( + is.object(value) || + (is.string(value) && value.length >= 3 && value.length <= 200) + ) { + const colour = color(value); + return [ + colour.red(), + colour.green(), + colour.blue(), + Math.round(colour.alpha() * 255) + ]; + } else { + throw is.invalidParameterError('background', 'object or string', value); + } +} + +/** + * Update a colour attribute of the this.options Object. + * @private + * @param {string} key + * @param {string|Object} value + * @throws {Error} Invalid value + */ +function _setBackgroundColourOption (key, value) { + if (is.defined(value)) { + this.options[key] = _getBackgroundColourOption(value); + } +} + +/** + * Decorate the Sharp prototype with colour-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + tint, + greyscale, + grayscale, + pipelineColourspace, + pipelineColorspace, + toColourspace, + toColorspace, + // Private + _getBackgroundColourOption, + _setBackgroundColourOption + }); + // Class attributes + Sharp.colourspace = colourspace; + Sharp.colorspace = colourspace; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/composite.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/composite.js new file mode 100644 index 0000000..1c3e5e6 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/composite.js @@ -0,0 +1,212 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is'); + +/** + * Blend modes. + * @member + * @private + */ +const blend = { + clear: 'clear', + source: 'source', + over: 'over', + in: 'in', + out: 'out', + atop: 'atop', + dest: 'dest', + 'dest-over': 'dest-over', + 'dest-in': 'dest-in', + 'dest-out': 'dest-out', + 'dest-atop': 'dest-atop', + xor: 'xor', + add: 'add', + saturate: 'saturate', + multiply: 'multiply', + screen: 'screen', + overlay: 'overlay', + darken: 'darken', + lighten: 'lighten', + 'colour-dodge': 'colour-dodge', + 'color-dodge': 'colour-dodge', + 'colour-burn': 'colour-burn', + 'color-burn': 'colour-burn', + 'hard-light': 'hard-light', + 'soft-light': 'soft-light', + difference: 'difference', + exclusion: 'exclusion' +}; + +/** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * + * Other operations in the same processing pipeline (e.g. resize, rotate, flip, + * flop, extract) will always be applied to the input image before composition. + * + * The `blend` option can be one of `clear`, `source`, `over`, `in`, `out`, `atop`, + * `dest`, `dest-over`, `dest-in`, `dest-out`, `dest-atop`, + * `xor`, `add`, `saturate`, `multiply`, `screen`, `overlay`, `darken`, `lighten`, + * `colour-dodge`, `color-dodge`, `colour-burn`,`color-burn`, + * `hard-light`, `soft-light`, `difference`, `exclusion`. + * + * More information about blend modes can be found at + * https://www.libvips.org/API/current/enum.BlendMode.html + * and https://www.cairographics.org/operators/ + * + * @since 0.22.0 + * + * @example + * await sharp(background) + * .composite([ + * { input: layer1, gravity: 'northwest' }, + * { input: layer2, gravity: 'southeast' }, + * ]) + * .toFile('combined.png'); + * + * @example + * const output = await sharp('input.gif', { animated: true }) + * .composite([ + * { input: 'overlay.png', tile: true, blend: 'saturate' } + * ]) + * .toBuffer(); + * + * @example + * sharp('input.png') + * .rotate(180) + * .resize(300) + * .flatten( { background: '#ff6600' } ) + * .composite([{ input: 'overlay.png', gravity: 'southeast' }]) + * .sharpen() + * .withMetadata() + * .webp( { quality: 90 } ) + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains upside down, 300px wide, alpha channel flattened + * // onto orange background, composited with overlay.png with SE gravity, + * // sharpened, with metadata, 90% quality WebP image data. Phew! + * }); + * + * @param {Object[]} images - Ordered list of images to composite + * @param {Buffer|String} [images[].input] - Buffer containing image data, String containing the path to an image file, or Create object (see below) + * @param {Object} [images[].input.create] - describes a blank overlay to be created. + * @param {Number} [images[].input.create.width] + * @param {Number} [images[].input.create.height] + * @param {Number} [images[].input.create.channels] - 3-4 + * @param {String|Object} [images[].input.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [images[].input.text] - describes a new text image to be created. + * @param {string} [images[].input.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [images[].input.text.font] - font name to render with. + * @param {string} [images[].input.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [images[].input.text.width=0] - integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [images[].input.text.height=0] - integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [images[].input.text.align='left'] - text alignment (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [images[].input.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [images[].input.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [images[].input.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for Pango markup features like `Red!`. + * @param {number} [images[].input.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {Boolean} [images[].autoOrient=false] - set to true to use EXIF orientation data, if present, to orient the image. + * @param {String} [images[].blend='over'] - how to blend this image with the image below. + * @param {String} [images[].gravity='centre'] - gravity at which to place the overlay. + * @param {Number} [images[].top] - the pixel offset from the top edge. + * @param {Number} [images[].left] - the pixel offset from the left edge. + * @param {Boolean} [images[].tile=false] - set to true to repeat the overlay image across the entire image with the given `gravity`. + * @param {Boolean} [images[].premultiplied=false] - set to true to avoid premultiplying the image below. Equivalent to the `--premultiplied` vips option. + * @param {Number} [images[].density=72] - number representing the DPI for vector overlay image. + * @param {Object} [images[].raw] - describes overlay when using raw pixel data. + * @param {Number} [images[].raw.width] + * @param {Number} [images[].raw.height] + * @param {Number} [images[].raw.channels] + * @param {boolean} [images[].animated=false] - Set to `true` to read all frames/pages of an animated image. + * @param {string} [images[].failOn='warning'] - @see {@link /api-constructor/ constructor parameters} + * @param {number|boolean} [images[].limitInputPixels=268402689] - @see {@link /api-constructor/ constructor parameters} + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function composite (images) { + if (!Array.isArray(images)) { + throw is.invalidParameterError('images to composite', 'array', images); + } + this.options.composite = images.map(image => { + if (!is.object(image)) { + throw is.invalidParameterError('image to composite', 'object', image); + } + const inputOptions = this._inputOptionsFromObject(image); + const composite = { + input: this._createInputDescriptor(image.input, inputOptions, { allowStream: false }), + blend: 'over', + tile: false, + left: 0, + top: 0, + hasOffset: false, + gravity: 0, + premultiplied: false + }; + if (is.defined(image.blend)) { + if (is.string(blend[image.blend])) { + composite.blend = blend[image.blend]; + } else { + throw is.invalidParameterError('blend', 'valid blend name', image.blend); + } + } + if (is.defined(image.tile)) { + if (is.bool(image.tile)) { + composite.tile = image.tile; + } else { + throw is.invalidParameterError('tile', 'boolean', image.tile); + } + } + if (is.defined(image.left)) { + if (is.integer(image.left)) { + composite.left = image.left; + } else { + throw is.invalidParameterError('left', 'integer', image.left); + } + } + if (is.defined(image.top)) { + if (is.integer(image.top)) { + composite.top = image.top; + } else { + throw is.invalidParameterError('top', 'integer', image.top); + } + } + if (is.defined(image.top) !== is.defined(image.left)) { + throw new Error('Expected both left and top to be set'); + } else { + composite.hasOffset = is.integer(image.top) && is.integer(image.left); + } + if (is.defined(image.gravity)) { + if (is.integer(image.gravity) && is.inRange(image.gravity, 0, 8)) { + composite.gravity = image.gravity; + } else if (is.string(image.gravity) && is.integer(this.constructor.gravity[image.gravity])) { + composite.gravity = this.constructor.gravity[image.gravity]; + } else { + throw is.invalidParameterError('gravity', 'valid gravity', image.gravity); + } + } + if (is.defined(image.premultiplied)) { + if (is.bool(image.premultiplied)) { + composite.premultiplied = image.premultiplied; + } else { + throw is.invalidParameterError('premultiplied', 'boolean', image.premultiplied); + } + } + return composite; + }); + return this; +} + +/** + * Decorate the Sharp prototype with composite-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Sharp.prototype.composite = composite; + Sharp.blend = blend; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/constructor.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/constructor.js new file mode 100644 index 0000000..9aac810 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/constructor.js @@ -0,0 +1,499 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const util = require('node:util'); +const stream = require('node:stream'); +const is = require('./is'); + +require('./sharp'); + +// Use NODE_DEBUG=sharp to enable libvips warnings +const debuglog = util.debuglog('sharp'); + +const queueListener = (queueLength) => { + Sharp.queue.emit('change', queueLength); +}; + +/** + * Constructor factory to create an instance of `sharp`, to which further methods are chained. + * + * JPEG, PNG, WebP, GIF, AVIF or TIFF format image data can be streamed out from this object. + * When using Stream based output, derived attributes are available from the `info` event. + * + * Non-critical problems encountered during processing are emitted as `warning` events. + * + * Implements the [stream.Duplex](http://nodejs.org/api/stream.html#stream_class_stream_duplex) class. + * + * When loading more than one page/frame of an animated image, + * these are combined as a vertically-stacked "toilet roll" image + * where the overall height is the `pageHeight` multiplied by the number of `pages`. + * + * @constructs Sharp + * + * @emits Sharp#info + * @emits Sharp#warning + * + * @example + * sharp('input.jpg') + * .resize(300, 200) + * .toFile('output.jpg', function(err) { + * // output.jpg is a 300 pixels wide and 200 pixels high image + * // containing a scaled and cropped version of input.jpg + * }); + * + * @example + * // Read image data from remote URL, + * // resize to 300 pixels wide, + * // emit an 'info' event with calculated dimensions + * // and finally write image data to writableStream + * const { body } = fetch('https://...'); + * const readableStream = Readable.fromWeb(body); + * const transformer = sharp() + * .resize(300) + * .on('info', ({ height }) => { + * console.log(`Image height is ${height}`); + * }); + * readableStream.pipe(transformer).pipe(writableStream); + * + * @example + * // Create a blank 300x200 PNG image of semi-translucent red pixels + * sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 4, + * background: { r: 255, g: 0, b: 0, alpha: 0.5 } + * } + * }) + * .png() + * .toBuffer() + * .then( ... ); + * + * @example + * // Convert an animated GIF to an animated WebP + * await sharp('in.gif', { animated: true }).toFile('out.webp'); + * + * @example + * // Read a raw array of pixels and save it to a png + * const input = Uint8Array.from([255, 255, 255, 0, 0, 0]); // or Uint8ClampedArray + * const image = sharp(input, { + * // because the input does not contain its dimensions or how many channels it has + * // we need to specify it in the constructor options + * raw: { + * width: 2, + * height: 1, + * channels: 3 + * } + * }); + * await image.toFile('my-two-pixels.png'); + * + * @example + * // Generate RGB Gaussian noise + * await sharp({ + * create: { + * width: 300, + * height: 200, + * channels: 3, + * noise: { + * type: 'gaussian', + * mean: 128, + * sigma: 30 + * } + * } + * }).toFile('noise.png'); + * + * @example + * // Generate an image from text + * await sharp({ + * text: { + * text: 'Hello, world!', + * width: 400, // max width + * height: 300 // max height + * } + * }).toFile('text_bw.png'); + * + * @example + * // Generate an rgba image from text using pango markup and font + * await sharp({ + * text: { + * text: 'Red!blue', + * font: 'sans', + * rgba: true, + * dpi: 300 + * } + * }).toFile('text_rgba.png'); + * + * @example + * // Join four input images as a 2x2 grid with a 4 pixel gutter + * const data = await sharp( + * [image1, image2, image3, image4], + * { join: { across: 2, shim: 4 } } + * ).toBuffer(); + * + * @example + * // Generate a two-frame animated image from emoji + * const images = ['😀', '😛'].map(text => ({ + * text: { text, width: 64, height: 64, channels: 4, rgba: true } + * })); + * await sharp(images, { join: { animated: true } }).toFile('out.gif'); + * + * @param {(Buffer|ArrayBuffer|Uint8Array|Uint8ClampedArray|Int8Array|Uint16Array|Int16Array|Uint32Array|Int32Array|Float32Array|Float64Array|string|Array)} [input] - if present, can be + * a Buffer / ArrayBuffer / Uint8Array / Uint8ClampedArray containing JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image data, or + * a TypedArray containing raw pixel image data, or + * a String containing the filesystem path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * An array of inputs can be provided, and these will be joined together. + * JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data can be streamed into the object when not present. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string} [options.failOn='warning'] - When to abort processing of invalid pixel data, one of (in order of sensitivity, least to most): 'none', 'truncated', 'error', 'warning'. Higher levels imply lower levels. Invalid metadata will always abort. + * @param {number|boolean} [options.limitInputPixels=268402689] - Do not process input images where the number of pixels + * (width x height) exceeds this limit. Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). + * @param {boolean} [options.unlimited=false] - Set this to `true` to remove safety features that help prevent memory exhaustion (JPEG, PNG, SVG, HEIF). + * @param {boolean} [options.autoOrient=false] - Set this to `true` to rotate/flip the image to match EXIF `Orientation`, if any. + * @param {boolean} [options.sequentialRead=true] - Set this to `false` to use random access rather than sequential read. Some operations will do this automatically. + * @param {number} [options.density=72] - number representing the DPI for vector images in the range 1 to 100000. + * @param {number} [options.ignoreIcc=false] - should the embedded ICC profile, if any, be ignored. + * @param {number} [options.pages=1] - Number of pages to extract for multi-page input (GIF, WebP, TIFF), use -1 for all pages. + * @param {number} [options.page=0] - Page number to start extracting from for multi-page input (GIF, WebP, TIFF), zero based. + * @param {boolean} [options.animated=false] - Set to `true` to read all frames/pages of an animated image (GIF, WebP, TIFF), equivalent of setting `pages` to `-1`. + * @param {Object} [options.raw] - describes raw pixel input image data. See `raw()` for pixel ordering. + * @param {number} [options.raw.width] - integral number of pixels wide. + * @param {number} [options.raw.height] - integral number of pixels high. + * @param {number} [options.raw.channels] - integral number of channels, between 1 and 4. + * @param {boolean} [options.raw.premultiplied] - specifies that the raw input has already been premultiplied, set to `true` + * to avoid sharp premultiplying the image. (optional, default `false`) + * @param {number} [options.raw.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `raw.height`. + * @param {Object} [options.create] - describes a new image to be created. + * @param {number} [options.create.width] - integral number of pixels wide. + * @param {number} [options.create.height] - integral number of pixels high. + * @param {number} [options.create.channels] - integral number of channels, either 3 (RGB) or 4 (RGBA). + * @param {string|Object} [options.create.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {number} [options.create.pageHeight] - The pixel height of each page/frame for animated images, must be an integral factor of `create.height`. + * @param {Object} [options.create.noise] - describes a noise to be created. + * @param {string} [options.create.noise.type] - type of generated noise, currently only `gaussian` is supported. + * @param {number} [options.create.noise.mean=128] - Mean value of pixels in the generated noise. + * @param {number} [options.create.noise.sigma=30] - Standard deviation of pixel values in the generated noise. + * @param {Object} [options.text] - describes a new text image to be created. + * @param {string} [options.text.text] - text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. + * @param {string} [options.text.font] - font name to render with. + * @param {string} [options.text.fontfile] - absolute filesystem path to a font file that can be used by `font`. + * @param {number} [options.text.width=0] - Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. + * @param {number} [options.text.height=0] - Maximum integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. + * @param {string} [options.text.align='left'] - Alignment style for multi-line text (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {boolean} [options.text.justify=false] - set this to true to apply justification to the text. + * @param {number} [options.text.dpi=72] - the resolution (size) at which to render the text. Does not take effect if `height` is specified. + * @param {boolean} [options.text.rgba=false] - set this to true to enable RGBA output. This is useful for colour emoji rendering, or support for pango markup features like `Red!`. + * @param {number} [options.text.spacing=0] - text line height in points. Will use the font line height if none is specified. + * @param {string} [options.text.wrap='word'] - word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none'. + * @param {Object} [options.join] - describes how an array of input images should be joined. + * @param {number} [options.join.across=1] - number of images to join horizontally. + * @param {boolean} [options.join.animated=false] - set this to `true` to join the images as an animated image. + * @param {number} [options.join.shim=0] - number of pixels to insert between joined images. + * @param {string|Object} [options.join.background] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {string} [options.join.halign='left'] - horizontal alignment style for images joined horizontally (`'left'`, `'centre'`, `'center'`, `'right'`). + * @param {string} [options.join.valign='top'] - vertical alignment style for images joined vertically (`'top'`, `'centre'`, `'center'`, `'bottom'`). + * @param {Object} [options.tiff] - Describes TIFF specific options. + * @param {number} [options.tiff.subifd=-1] - Sub Image File Directory to extract for OME-TIFF, defaults to main image. + * @param {Object} [options.svg] - Describes SVG specific options. + * @param {string} [options.svg.stylesheet] - Custom CSS for SVG input, applied with a User Origin during the CSS cascade. + * @param {boolean} [options.svg.highBitdepth=false] - Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. + * @param {Object} [options.pdf] - Describes PDF specific options. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. + * @param {string|Object} [options.pdf.background] - Background colour to use when PDF is partially transparent. Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Object} [options.openSlide] - Describes OpenSlide specific options. Requires the use of a globally-installed libvips compiled with support for OpenSlide. + * @param {number} [options.openSlide.level=0] - Level to extract from a multi-level input, zero based. + * @param {Object} [options.jp2] - Describes JPEG 2000 specific options. Requires the use of a globally-installed libvips compiled with support for OpenJPEG. + * @param {boolean} [options.jp2.oneshot=false] - Set to `true` to decode tiled JPEG 2000 images in a single operation, improving compatibility. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +const Sharp = function (input, options) { + // biome-ignore lint/complexity/noArguments: constructor factory + if (arguments.length === 1 && !is.defined(input)) { + throw new Error('Invalid input'); + } + if (!(this instanceof Sharp)) { + return new Sharp(input, options); + } + stream.Duplex.call(this); + this.options = { + // resize options + topOffsetPre: -1, + leftOffsetPre: -1, + widthPre: -1, + heightPre: -1, + topOffsetPost: -1, + leftOffsetPost: -1, + widthPost: -1, + heightPost: -1, + width: -1, + height: -1, + canvas: 'crop', + position: 0, + resizeBackground: [0, 0, 0, 255], + angle: 0, + rotationAngle: 0, + rotationBackground: [0, 0, 0, 255], + rotateBefore: false, + orientBefore: false, + flip: false, + flop: false, + extendTop: 0, + extendBottom: 0, + extendLeft: 0, + extendRight: 0, + extendBackground: [0, 0, 0, 255], + extendWith: 'background', + withoutEnlargement: false, + withoutReduction: false, + affineMatrix: [], + affineBackground: [0, 0, 0, 255], + affineIdx: 0, + affineIdy: 0, + affineOdx: 0, + affineOdy: 0, + affineInterpolator: this.constructor.interpolators.bilinear, + kernel: 'lanczos3', + fastShrinkOnLoad: true, + // operations + tint: [-1, 0, 0, 0], + flatten: false, + flattenBackground: [0, 0, 0], + unflatten: false, + negate: false, + negateAlpha: true, + medianSize: 0, + blurSigma: 0, + precision: 'integer', + minAmpl: 0.2, + sharpenSigma: 0, + sharpenM1: 1, + sharpenM2: 2, + sharpenX1: 2, + sharpenY2: 10, + sharpenY3: 20, + threshold: 0, + thresholdGrayscale: true, + trimBackground: [], + trimThreshold: -1, + trimLineArt: false, + dilateWidth: 0, + erodeWidth: 0, + gamma: 0, + gammaOut: 0, + greyscale: false, + normalise: false, + normaliseLower: 1, + normaliseUpper: 99, + claheWidth: 0, + claheHeight: 0, + claheMaxSlope: 3, + brightness: 1, + saturation: 1, + hue: 0, + lightness: 0, + booleanBufferIn: null, + booleanFileIn: '', + joinChannelIn: [], + extractChannel: -1, + removeAlpha: false, + ensureAlpha: -1, + colourspace: 'srgb', + colourspacePipeline: 'last', + composite: [], + // output + fileOut: '', + formatOut: 'input', + streamOut: false, + keepMetadata: 0, + withMetadataOrientation: -1, + withMetadataDensity: 0, + withIccProfile: '', + withExif: {}, + withExifMerge: true, + withXmp: '', + resolveWithObject: false, + loop: -1, + delay: [], + // output format + jpegQuality: 80, + jpegProgressive: false, + jpegChromaSubsampling: '4:2:0', + jpegTrellisQuantisation: false, + jpegOvershootDeringing: false, + jpegOptimiseScans: false, + jpegOptimiseCoding: true, + jpegQuantisationTable: 0, + pngProgressive: false, + pngCompressionLevel: 6, + pngAdaptiveFiltering: false, + pngPalette: false, + pngQuality: 100, + pngEffort: 7, + pngBitdepth: 8, + pngDither: 1, + jp2Quality: 80, + jp2TileHeight: 512, + jp2TileWidth: 512, + jp2Lossless: false, + jp2ChromaSubsampling: '4:4:4', + webpQuality: 80, + webpAlphaQuality: 100, + webpLossless: false, + webpNearLossless: false, + webpSmartSubsample: false, + webpSmartDeblock: false, + webpPreset: 'default', + webpEffort: 4, + webpMinSize: false, + webpMixed: false, + gifBitdepth: 8, + gifEffort: 7, + gifDither: 1, + gifInterFrameMaxError: 0, + gifInterPaletteMaxError: 3, + gifKeepDuplicateFrames: false, + gifReuse: true, + gifProgressive: false, + tiffQuality: 80, + tiffCompression: 'jpeg', + tiffBigtiff: false, + tiffPredictor: 'horizontal', + tiffPyramid: false, + tiffMiniswhite: false, + tiffBitdepth: 8, + tiffTile: false, + tiffTileHeight: 256, + tiffTileWidth: 256, + tiffXres: 1.0, + tiffYres: 1.0, + tiffResolutionUnit: 'inch', + heifQuality: 50, + heifLossless: false, + heifCompression: 'av1', + heifEffort: 4, + heifChromaSubsampling: '4:4:4', + heifBitdepth: 8, + jxlDistance: 1, + jxlDecodingTier: 0, + jxlEffort: 7, + jxlLossless: false, + rawDepth: 'uchar', + tileSize: 256, + tileOverlap: 0, + tileContainer: 'fs', + tileLayout: 'dz', + tileFormat: 'last', + tileDepth: 'last', + tileAngle: 0, + tileSkipBlanks: -1, + tileBackground: [255, 255, 255, 255], + tileCentre: false, + tileId: 'https://example.com/iiif', + tileBasename: '', + timeoutSeconds: 0, + linearA: [], + linearB: [], + pdfBackground: [255, 255, 255, 255], + // Function to notify of libvips warnings + debuglog: warning => { + this.emit('warning', warning); + debuglog(warning); + }, + // Function to notify of queue length changes + queueListener + }; + this.options.input = this._createInputDescriptor(input, options, { allowStream: true }); + return this; +}; +Object.setPrototypeOf(Sharp.prototype, stream.Duplex.prototype); +Object.setPrototypeOf(Sharp, stream.Duplex); + +/** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * + * @example + * const pipeline = sharp().rotate(); + * pipeline.clone().resize(800, 600).pipe(firstWritableStream); + * pipeline.clone().extract({ left: 20, top: 20, width: 100, height: 100 }).pipe(secondWritableStream); + * readableStream.pipe(pipeline); + * // firstWritableStream receives auto-rotated, resized readableStream + * // secondWritableStream receives auto-rotated, extracted region of readableStream + * + * @example + * // Create a pipeline that will download an image, resize it and format it to different files + * // Using Promises to know when the pipeline is complete + * const fs = require("fs"); + * const got = require("got"); + * const sharpStream = sharp({ failOn: 'none' }); + * + * const promises = []; + * + * promises.push( + * sharpStream + * .clone() + * .jpeg({ quality: 100 }) + * .toFile("originalFile.jpg") + * ); + * + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .jpeg({ quality: 80 }) + * .toFile("optimized-500.jpg") + * ); + * + * promises.push( + * sharpStream + * .clone() + * .resize({ width: 500 }) + * .webp({ quality: 80 }) + * .toFile("optimized-500.webp") + * ); + * + * // https://github.com/sindresorhus/got/blob/main/documentation/3-streams.md + * got.stream("https://www.example.com/some-file.jpg").pipe(sharpStream); + * + * Promise.all(promises) + * .then(res => { console.log("Done!", res); }) + * .catch(err => { + * console.error("Error processing files, let's clean it up", err); + * try { + * fs.unlinkSync("originalFile.jpg"); + * fs.unlinkSync("optimized-500.jpg"); + * fs.unlinkSync("optimized-500.webp"); + * } catch (e) {} + * }); + * + * @returns {Sharp} + */ +function clone () { + // Clone existing options + const clone = this.constructor.call(); + const { debuglog, queueListener, ...options } = this.options; + clone.options = structuredClone(options); + clone.options.debuglog = debuglog; + clone.options.queueListener = queueListener; + // Pass 'finish' event to clone for Stream-based input + if (this._isStreamInput()) { + this.on('finish', () => { + // Clone inherits input data + this._flattenBufferIn(); + clone.options.input.buffer = this.options.input.buffer; + clone.emit('finish'); + }); + } + return clone; +} +Object.assign(Sharp.prototype, { clone }); + +/** + * Export constructor. + * @module Sharp + * @private + */ +module.exports = Sharp; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.d.ts b/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.d.ts new file mode 100644 index 0000000..89ff39e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.d.ts @@ -0,0 +1,1971 @@ +/** + * Copyright 2017 François Nguyen and others. + * + * Billy Kwok + * Bradley Odell + * Espen Hovlandsdal + * Floris de Bijl + * François Nguyen + * Jamie Woodbury + * Wooseop Kim + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// SPDX-License-Identifier: MIT + +/// + +import type { Duplex } from 'node:stream'; + +//#region Constructor functions + +/** + * Creates a sharp instance from an image + * @param input Buffer containing JPEG, PNG, WebP, AVIF, GIF, SVG, TIFF or raw pixel image data, or String containing the path to an JPEG, PNG, WebP, AVIF, GIF, SVG or TIFF image file. + * @param options Object with optional attributes. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ +declare function sharp(options?: sharp.SharpOptions): sharp.Sharp; +declare function sharp( + input?: sharp.SharpInput | Array, + options?: sharp.SharpOptions, +): sharp.Sharp; + +declare namespace sharp { + /** Object containing nested boolean values representing the available input and output formats/methods. */ + const format: FormatEnum; + + /** An Object containing the version numbers of sharp, libvips and its dependencies. */ + const versions: { + aom?: string | undefined; + archive?: string | undefined; + cairo?: string | undefined; + cgif?: string | undefined; + exif?: string | undefined; + expat?: string | undefined; + ffi?: string | undefined; + fontconfig?: string | undefined; + freetype?: string | undefined; + fribidi?: string | undefined; + glib?: string | undefined; + harfbuzz?: string | undefined; + heif?: string | undefined; + highway?: string | undefined; + imagequant?: string | undefined; + lcms?: string | undefined; + mozjpeg?: string | undefined; + pango?: string | undefined; + pixman?: string | undefined; + png?: string | undefined; + "proxy-libintl"?: string | undefined; + rsvg?: string | undefined; + sharp: string; + spng?: string | undefined; + tiff?: string | undefined; + vips: string; + webp?: string | undefined; + xml?: string | undefined; + "zlib-ng"?: string | undefined; + }; + + /** An Object containing the available interpolators and their proper values */ + const interpolators: Interpolators; + + /** An EventEmitter that emits a change event when a task is either queued, waiting for libuv to provide a worker thread, complete */ + const queue: NodeJS.EventEmitter; + + //#endregion + + //#region Utility functions + + /** + * Gets or, when options are provided, sets the limits of libvips' operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, useful for determining how much working memory is required for a particular task. + * @param options Object with the following attributes, or Boolean where true uses default cache settings and false removes all caching (optional, default true) + * @returns The cache results. + */ + function cache(options?: boolean | CacheOptions): CacheResult; + + /** + * Gets or sets the number of threads libvips' should create to process each image. + * The default value is the number of CPU cores. A value of 0 will reset to this default. + * The maximum number of images that can be processed in parallel is limited by libuv's UV_THREADPOOL_SIZE environment variable. + * @param concurrency The new concurrency value. + * @returns The current concurrency value. + */ + function concurrency(concurrency?: number): number; + + /** + * Provides access to internal task counters. + * @returns Object containing task counters + */ + function counters(): SharpCounters; + + /** + * Get and set use of SIMD vector unit instructions. Requires libvips to have been compiled with highway support. + * Improves the performance of resize, blur and sharpen operations by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * @param enable enable or disable use of SIMD vector unit instructions + * @returns true if usage of SIMD vector unit instructions is enabled + */ + function simd(enable?: boolean): boolean; + + /** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ + function block(options: { operation: string[] }): void; + + /** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ + function unblock(options: { operation: string[] }): void; + + //#endregion + + const gravity: GravityEnum; + const strategy: StrategyEnum; + const kernel: KernelEnum; + const fit: FitEnum; + const bool: BoolEnum; + + interface Sharp extends Duplex { + //#region Channel functions + + /** + * Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel. + * @returns A sharp instance that can be used to chain operations + */ + removeAlpha(): Sharp; + + /** + * Ensure alpha channel, if missing. The added alpha channel will be fully opaque. This is a no-op if the image already has an alpha channel. + * @param alpha transparency level (0=fully-transparent, 1=fully-opaque) (optional, default 1). + * @returns A sharp instance that can be used to chain operations + */ + ensureAlpha(alpha?: number): Sharp; + + /** + * Extract a single channel from a multi-channel image. + * @param channel zero-indexed channel/band number to extract, or red, green, blue or alpha. + * @throws {Error} Invalid channel + * @returns A sharp instance that can be used to chain operations + */ + extractChannel(channel: 0 | 1 | 2 | 3 | 'red' | 'green' | 'blue' | 'alpha'): Sharp; + + /** + * Join one or more channels to the image. The meaning of the added channels depends on the output colourspace, set with toColourspace(). + * By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. Channel ordering follows vips convention: + * - sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha. + * - CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha. + * + * Buffers may be any of the image formats supported by sharp. + * For raw pixel input, the options object should contain a raw attribute, which follows the format of the attribute of the same name in the sharp() constructor. + * @param images one or more images (file paths, Buffers). + * @param options image options, see sharp() constructor. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + joinChannel(images: string | Buffer | ArrayLike, options?: SharpOptions): Sharp; + + /** + * Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image. + * @param boolOp one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + bandbool(boolOp: keyof BoolEnum): Sharp; + + //#endregion + + //#region Color functions + + /** + * Tint the image using the provided colour. + * An alpha channel may be present and will be unchanged by the operation. + * @param tint Parsed by the color module. + * @returns A sharp instance that can be used to chain operations + */ + tint(tint: Colour | Color): Sharp; + + /** + * Convert to 8-bit greyscale; 256 shades of grey. + * This is a linear operation. + * If the input image is in a non-linear colour space such as sRGB, use gamma() with greyscale() for the best results. + * By default the output image will be web-friendly sRGB and contain three (identical) colour channels. + * This may be overridden by other sharp operations such as toColourspace('b-w'), which will produce an output image containing one colour channel. + * An alpha channel may be present, and will be unchanged by the operation. + * @param greyscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + greyscale(greyscale?: boolean): Sharp; + + /** + * Alternative spelling of greyscale(). + * @param grayscale true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + grayscale(grayscale?: boolean): Sharp; + + /** + * Set the pipeline colourspace. + * The input image will be converted to the provided colourspace at the start of the pipeline. + * All operations will use this colourspace before converting to the output colourspace, as defined by toColourspace. + * This feature is experimental and has not yet been fully-tested with all operations. + * + * @param colourspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of pipelineColourspace + * @param colorspace pipeline colourspace e.g. rgb16, scrgb, lab, grey16 ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + pipelineColorspace(colorspace?: string): Sharp; + + /** + * Set the output colourspace. + * By default output image will be web-friendly sRGB, with additional channels interpreted as alpha channels. + * @param colourspace output colourspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColourspace(colourspace?: string): Sharp; + + /** + * Alternative spelling of toColourspace(). + * @param colorspace output colorspace e.g. srgb, rgb, cmyk, lab, b-w ... + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toColorspace(colorspace: string): Sharp; + + //#endregion + + //#region Composite functions + + /** + * Composite image(s) over the processed (resized, extracted etc.) image. + * + * The images to composite must be the same size or smaller than the processed image. + * If both `top` and `left` options are provided, they take precedence over `gravity`. + * @param images - Ordered list of images to composite + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + composite(images: OverlayOptions[]): Sharp; + + //#endregion + + //#region Input functions + + /** + * Take a "snapshot" of the Sharp instance, returning a new instance. + * Cloned instances inherit the input of their parent instance. + * This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream. + * @returns A sharp instance that can be used to chain operations + */ + clone(): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A sharp instance that can be used to chain operations + */ + metadata(callback: (err: Error, metadata: Metadata) => void): Sharp; + + /** + * Fast access to (uncached) image metadata without decoding any compressed image data. + * @returns A promise that resolves with a metadata object + */ + metadata(): Promise; + + /** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepMetadata(): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A sharp instance that can be used to chain operations + */ + stats(callback: (err: Error, stats: Stats) => void): Sharp; + + /** + * Access to pixel-derived image statistics for every channel in the image. + * @returns A promise that resolves with a stats object + */ + stats(): Promise; + + //#endregion + + //#region Operation functions + + /** + * Rotate the output image by either an explicit angle + * or auto-orient based on the EXIF `Orientation` tag. + * + * If an angle is provided, it is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * If no angle is provided, it is determined from the EXIF data. + * Mirroring is supported and may infer the use of a flip operation. + * + * The use of `rotate` without an angle will remove the EXIF `Orientation` tag, if any. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const pipeline = sharp() + * .rotate() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-rotated using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ + rotate(angle?: number, options?: RotateOptions): Sharp; + + /** + * Alias for calling `rotate()` with no arguments, which orients the image based + * on EXIF orientsion. + * + * This operation is aliased to emphasize its purpose, helping to remove any + * confusion between rotation and orientation. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @returns {Sharp} + */ + autoOrient(): Sharp + + /** + * Flip the image about the vertical Y axis. This always occurs after rotation, if any. + * The use of flip implies the removal of the EXIF Orientation tag, if any. + * @param flip true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flip(flip?: boolean): Sharp; + + /** + * Flop the image about the horizontal X axis. This always occurs after rotation, if any. + * The use of flop implies the removal of the EXIF Orientation tag, if any. + * @param flop true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flop(flop?: boolean): Sharp; + + /** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * X = matrix[0, 0] * (x + idx) + matrix[0, 1] * (y + idy) + odx + * Y = matrix[1, 0] * (x + idx) + matrix[1, 1] * (y + idy) + ody + * + * where: + * + * x and y are the coordinates in input image. + * X and Y are the coordinates in output image. + * (0,0) is the upper left corner. + * + * @param matrix Affine transformation matrix, may either by a array of length four or a 2x2 matrix array + * @param options if present, is an Object with optional attributes. + * + * @returns A sharp instance that can be used to chain operations + */ + affine(matrix: [number, number, number, number] | Matrix2x2, options?: AffineOptions): Sharp; + + /** + * Sharpen the image. + * When used without parameters, performs a fast, mild sharpen of the output image. + * When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * @param options if present, is an Object with optional attributes + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + sharpen(options?: SharpenOptions): Sharp; + + /** + * Sharpen the image. + * When used without parameters, performs a fast, mild sharpen of the output image. + * When a sigma is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * @param sigma the sigma of the Gaussian mask, where sigma = 1 + radius / 2. + * @param flat the level of sharpening to apply to "flat" areas. (optional, default 1.0) + * @param jagged the level of sharpening to apply to "jagged" areas. (optional, default 2.0) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + * + * @deprecated Use the object parameter `sharpen({sigma, m1, m2, x1, y2, y3})` instead + */ + sharpen(sigma?: number, flat?: number, jagged?: number): Sharp; + + /** + * Apply median filter. When used without parameters the default window is 3x3. + * @param size square mask size: size x size (optional, default 3) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + median(size?: number): Sharp; + + /** + * Blur the image. + * When used without parameters, performs a fast, mild blur of the output image. + * When a sigma is provided, performs a slower, more accurate Gaussian blur. + * When a boolean sigma is provided, ether blur mild or disable blur + * @param sigma a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where sigma = 1 + radius / 2. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + blur(sigma?: number | boolean | BlurOptions): Sharp; + + /** + * Expand foreground objects using the dilate morphological operator. + * @param {Number} [width=1] dilation width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + dilate(width?: number): Sharp; + + /** + * Shrink foreground objects using the erode morphological operator. + * @param {Number} [width=1] erosion width in pixels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + erode(width?: number): Sharp; + + /** + * Merge alpha transparency channel, if any, with background. + * @param flatten true to enable and false to disable (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + flatten(flatten?: boolean | FlattenOptions): Sharp; + + /** + * Ensure the image has an alpha channel with all white pixel values made fully transparent. + * Existing alpha channel values for non-white pixels remain unchanged. + * @returns A sharp instance that can be used to chain operations + */ + unflatten(): Sharp; + + /** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of 1/gamma then increasing the encoding (brighten) post-resize at a factor of gamma. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation when applying a gamma correction. + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * @param gamma value between 1.0 and 3.0. (optional, default 2.2) + * @param gammaOut value between 1.0 and 3.0. (optional, defaults to same as gamma) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + gamma(gamma?: number, gammaOut?: number): Sharp; + + /** + * Produce the "negative" of the image. + * @param negate true to enable and false to disable, or an object of options (defaults to true) + * @returns A sharp instance that can be used to chain operations + */ + negate(negate?: boolean | NegateOptions): Sharp; + + /** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @param normalise options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalise(normalise?: NormaliseOptions): Sharp; + + /** + * Alternative spelling of normalise. + * @param normalize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + normalize(normalize?: NormaliseOptions): Sharp; + + /** + * Perform contrast limiting adaptive histogram equalization (CLAHE) + * + * This will, in general, enhance the clarity of the image by bringing out + * darker details. Please read more about CLAHE here: + * https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE + * + * @param options clahe options + */ + clahe(options: ClaheOptions): Sharp; + + /** + * Convolve the image with the specified kernel. + * @param kernel the specified kernel + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + convolve(kernel: Kernel): Sharp; + + /** + * Any pixel value greather than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param threshold a value in the range 0-255 representing the level at which the threshold will be applied. (optional, default 128) + * @param options threshold options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + threshold(threshold?: number, options?: ThresholdOptions): Sharp; + + /** + * Perform a bitwise boolean operation with operand image. + * This operation creates an output image where each pixel is the result of the selected bitwise boolean operation between the corresponding pixels of the input images. + * @param operand Buffer containing image data or String containing the path to an image file. + * @param operator one of "and", "or" or "eor" to perform that bitwise operation, like the C logic operators &, | and ^ respectively. + * @param options describes operand when using raw pixel data. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + boolean(operand: string | Buffer, operator: keyof BoolEnum, options?: { raw: Raw }): Sharp; + + /** + * Apply the linear formula a * input + b to the image (levels adjustment) + * @param a multiplier (optional, default 1.0) + * @param b offset (optional, default 0.0) + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + linear(a?: number | number[] | null, b?: number | number[]): Sharp; + + /** + * Recomb the image with the specified matrix. + * @param inputMatrix 3x3 Recombination matrix or 4x4 Recombination matrix + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + recomb(inputMatrix: Matrix3x3 | Matrix4x4): Sharp; + + /** + * Transforms the image using brightness, saturation, hue rotation and lightness. + * Brightness and lightness both operate on luminance, with the difference being that brightness is multiplicative whereas lightness is additive. + * @param options describes the modulation + * @returns A sharp instance that can be used to chain operations + */ + modulate(options?: { + brightness?: number | undefined; + saturation?: number | undefined; + hue?: number | undefined; + lightness?: number | undefined; + }): Sharp; + + //#endregion + + //#region Output functions + + /** + * Write output image data to a file. + * If an explicit output format is not selected, it will be inferred from the extension, with JPEG, PNG, WebP, AVIF, TIFF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * @param fileOut The path to write the image data to. + * @param callback Callback function called on completion with two arguments (err, info). info contains the output image format, size (bytes), width, height and channels. + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + toFile(fileOut: string, callback: (err: Error, info: OutputInfo) => void): Sharp; + + /** + * Write output image data to a file. + * @param fileOut The path to write the image data to. + * @throws {Error} Invalid parameters + * @returns A promise that fulfills with an object containing information on the resulting file + */ + toFile(fileOut: string): Promise; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param callback Callback function called on completion with three arguments (err, buffer, info). + * @returns A sharp instance that can be used to chain operations + */ + toBuffer(callback: (err: Error, buffer: Buffer, info: OutputInfo) => void): Sharp; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with the Buffer data. + */ + toBuffer(options?: { resolveWithObject: false }): Promise; + + /** + * Write output to a Buffer. JPEG, PNG, WebP, AVIF, TIFF, GIF and RAW output are supported. + * By default, the format will match the input image, except SVG input which becomes PNG output. + * @param options resolve options + * @param options.resolveWithObject Resolve the Promise with an Object containing data and info properties instead of resolving only with data. + * @returns A promise that resolves with an object containing the Buffer data and an info object containing the output image format, size (bytes), width, height and channels + */ + toBuffer(options: { resolveWithObject: true }): Promise<{ data: Buffer; info: OutputInfo }>; + + /** + * Keep all EXIF metadata from the input image in the output image. + * EXIF metadata is unsupported for TIFF output. + * @returns A sharp instance that can be used to chain operations + */ + keepExif(): Sharp; + + /** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExif(exif: Exif): Sharp; + + /** + * Update EXIF metadata from the input image in the output image. + * @param {Exif} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withExifMerge(exif: Exif): Sharp; + + /** + * Keep ICC profile from the input image in the output image where possible. + * @returns A sharp instance that can be used to chain operations + */ + keepIccProfile(): Sharp; + + /** + * Transform using an ICC profile and attach to the output image. + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withIccProfile(icc: string, options?: WithIccProfileOptions): Sharp; + + /** + * Keep all XMP metadata from the input image in the output image. + * @returns A sharp instance that can be used to chain operations + */ + keepXmp(): Sharp; + + /** + * Set XMP metadata in the output image. + * @param {string} xmp - String containing XMP metadata to be embedded in the output image. + * @returns A sharp instance that can be used to chain operations + * @throws {Error} Invalid parameters + */ + withXmp(xmp: string): Sharp; + + /** + * Include all metadata (EXIF, XMP, IPTC) from the input image in the output image. + * The default behaviour, when withMetadata is not used, is to strip all metadata and convert to the device-independent sRGB colour space. + * This will also convert to and add a web-friendly sRGB ICC profile. + * @param withMetadata + * @throws {Error} Invalid parameters. + */ + withMetadata(withMetadata?: WriteableMetadata): Sharp; + + /** + * Use these JPEG options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jpeg(options?: JpegOptions): Sharp; + + /** + * Use these JP2 (JPEG 2000) options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jp2(options?: Jp2Options): Sharp; + + /** + * Use these JPEG-XL (JXL) options for output image. + * This feature is experimental, please do not use in production systems. + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this. + * Image metadata (EXIF, XMP) is unsupported. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + jxl(options?: JxlOptions): Sharp; + + /** + * Use these PNG options for output image. + * PNG output is always full colour at 8 or 16 bits per pixel. + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + png(options?: PngOptions): Sharp; + + /** + * Use these WebP options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + webp(options?: WebpOptions): Sharp; + + /** + * Use these GIF options for output image. + * Requires libvips compiled with support for ImageMagick or GraphicsMagick. The prebuilt binaries do not include this - see installing a custom libvips. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + gif(options?: GifOptions): Sharp; + + /** + * Use these AVIF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + avif(options?: AvifOptions): Sharp; + + /** + * Use these HEIF options for output image. + * Support for patent-encumbered HEIC images requires the use of a globally-installed libvips compiled with support for libheif, libde265 and x265. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + heif(options?: HeifOptions): Sharp; + + /** + * Use these TIFF options for output image. + * @param options Output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tiff(options?: TiffOptions): Sharp; + + /** + * Force output to be raw, uncompressed uint8 pixel data. + * @param options Raw output options. + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + raw(options?: RawOptions): Sharp; + + /** + * Force output to a given format. + * @param format a String or an Object with an 'id' attribute + * @param options output options + * @throws {Error} Unsupported format or options + * @returns A sharp instance that can be used to chain operations + */ + toFormat( + format: keyof FormatEnum | AvailableFormatInfo, + options?: + | OutputOptions + | JpegOptions + | PngOptions + | WebpOptions + | AvifOptions + | HeifOptions + | JxlOptions + | GifOptions + | Jp2Options + | RawOptions + | TiffOptions, + ): Sharp; + + /** + * Use tile-based deep zoom (image pyramid) output. + * Set the format and options for tile images via the toFormat, jpeg, png or webp functions. + * Use a .zip or .szi file extension with toFile to write to a compressed archive file format. + * @param tile tile options + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + tile(tile?: TileOptions): Sharp; + + /** + * Set a timeout for processing, in seconds. Use a value of zero to continue processing indefinitely, the default behaviour. + * The clock starts when libvips opens an input image for processing. Time spent waiting for a libuv thread to become available is not included. + * @param options Object with a `seconds` attribute between 0 and 3600 (number) + * @throws {Error} Invalid options + * @returns A sharp instance that can be used to chain operations + */ + timeout(options: TimeoutOptions): Sharp; + + //#endregion + + //#region Resize functions + + /** + * Resize image to width, height or width x height. + * + * When both a width and height are provided, the possible methods by which the image should fit these are: + * - cover: Crop to cover both provided dimensions (the default). + * - contain: Embed within both provided dimensions. + * - fill: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - inside: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - outside: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * Some of these values are based on the object-fit CSS property. + * + * When using a fit of cover or contain, the default position is centre. Other options are: + * - sharp.position: top, right top, right, right bottom, bottom, left bottom, left, left top. + * - sharp.gravity: north, northeast, east, southeast, south, southwest, west, northwest, center or centre. + * - sharp.strategy: cover only, dynamically crop using either the entropy or attention strategy. Some of these values are based on the object-position CSS property. + * + * The experimental strategy-based approach resizes so one dimension is at its target length then repeatedly ranks edge regions, + * discarding the edge with the lowest score based on the selected strategy. + * - entropy: focus on the region with the highest Shannon entropy. + * - attention: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible interpolation kernels are: + * - nearest: Use nearest neighbour interpolation. + * - cubic: Use a Catmull-Rom spline. + * - lanczos2: Use a Lanczos kernel with a=2. + * - lanczos3: Use a Lanczos kernel with a=3 (the default). + * + * @param width pixels wide the resultant image should be. Use null or undefined to auto-scale the width to match the height. + * @param height pixels high the resultant image should be. Use null or undefined to auto-scale the height to match the width. + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(widthOrOptions?: number | ResizeOptions | null, height?: number | null, options?: ResizeOptions): Sharp; + + /** + * Shorthand for resize(null, null, options); + * + * @param options resize options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + resize(options: ResizeOptions): Sharp; + + /** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * @param extend single pixel count to add to all edges or an Object with per-edge counts + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extend(extend: number | ExtendOptions): Sharp; + + /** + * Extract a region of the image. + * - Use extract() before resize() for pre-resize extraction. + * - Use extract() after resize() for post-resize extraction. + * - Use extract() before and after for both. + * + * @param region The region to extract + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + extract(region: Region): Sharp; + + /** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * The info response Object will contain trimOffsetLeft and trimOffsetTop properties. + * @param options trim options + * @throws {Error} Invalid parameters + * @returns A sharp instance that can be used to chain operations + */ + trim(options?: TrimOptions): Sharp; + + //#endregion + } + + type SharpInput = Buffer + | ArrayBuffer + | Uint8Array + | Uint8ClampedArray + | Int8Array + | Uint16Array + | Int16Array + | Uint32Array + | Int32Array + | Float32Array + | Float64Array + | string; + + interface SharpOptions { + /** + * Auto-orient based on the EXIF `Orientation` tag, if present. + * Mirroring is supported and may infer the use of a flip operation. + * + * Using this option will remove the EXIF `Orientation` tag, if any. + */ + autoOrient?: boolean | undefined; + /** + * When to abort processing of invalid pixel data, one of (in order of sensitivity): + * 'none' (least), 'truncated', 'error' or 'warning' (most), highers level imply lower levels, invalid metadata will always abort. (optional, default 'warning') + */ + failOn?: FailOnOptions | undefined; + /** + * By default halt processing and raise an error when loading invalid images. + * Set this flag to false if you'd rather apply a "best effort" to decode images, + * even if the data is corrupt or invalid. (optional, default true) + * + * @deprecated Use `failOn` instead + */ + failOnError?: boolean | undefined; + /** + * Do not process input images where the number of pixels (width x height) exceeds this limit. + * Assumes image dimensions contained in the input metadata can be trusted. + * An integral Number of pixels, zero or false to remove limit, true to use default limit of 268402689 (0x3FFF x 0x3FFF). (optional, default 268402689) + */ + limitInputPixels?: number | boolean | undefined; + /** Set this to true to remove safety features that help prevent memory exhaustion (SVG, PNG). (optional, default false) */ + unlimited?: boolean | undefined; + /** Set this to false to use random access rather than sequential read. Some operations will do this automatically. */ + sequentialRead?: boolean | undefined; + /** Number representing the DPI for vector images in the range 1 to 100000. (optional, default 72) */ + density?: number | undefined; + /** Should the embedded ICC profile, if any, be ignored. */ + ignoreIcc?: boolean | undefined; + /** Number of pages to extract for multi-page input (GIF, TIFF, PDF), use -1 for all pages */ + pages?: number | undefined; + /** Page number to start extracting from for multi-page input (GIF, TIFF, PDF), zero based. (optional, default 0) */ + page?: number | undefined; + /** TIFF specific input options */ + tiff?: TiffInputOptions | undefined; + /** SVG specific input options */ + svg?: SvgInputOptions | undefined; + /** PDF specific input options */ + pdf?: PdfInputOptions | undefined; + /** OpenSlide specific input options */ + openSlide?: OpenSlideInputOptions | undefined; + /** JPEG 2000 specific input options */ + jp2?: Jp2InputOptions | undefined; + /** Deprecated: use tiff.subifd instead */ + subifd?: number | undefined; + /** Deprecated: use pdf.background instead */ + pdfBackground?: Colour | Color | undefined; + /** Deprecated: use openSlide.level instead */ + level?: number | undefined; + /** Set to `true` to read all frames/pages of an animated image (equivalent of setting `pages` to `-1`). (optional, default false) */ + animated?: boolean | undefined; + /** Describes raw pixel input image data. See raw() for pixel ordering. */ + raw?: CreateRaw | undefined; + /** Describes a new image to be created. */ + create?: Create | undefined; + /** Describes a new text image to be created. */ + text?: CreateText | undefined; + /** Describes how array of input images should be joined. */ + join?: Join | undefined; + } + + interface CacheOptions { + /** Is the maximum memory in MB to use for this cache (optional, default 50) */ + memory?: number | undefined; + /** Is the maximum number of files to hold open (optional, default 20) */ + files?: number | undefined; + /** Is the maximum number of operations to cache (optional, default 100) */ + items?: number | undefined; + } + + interface TimeoutOptions { + /** Number of seconds after which processing will be stopped (default 0, eg disabled) */ + seconds: number; + } + + interface SharpCounters { + /** The number of tasks this module has queued waiting for libuv to provide a worker thread from its pool. */ + queue: number; + /** The number of resize tasks currently being processed. */ + process: number; + } + + interface Raw { + width: number; + height: number; + channels: Channels; + } + + interface CreateRaw extends Raw { + /** Specifies that the raw input has already been premultiplied, set to true to avoid sharp premultiplying the image. (optional, default false) */ + premultiplied?: boolean | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + } + + type CreateChannels = 3 | 4; + + interface Create { + /** Number of pixels wide. */ + width: number; + /** Number of pixels high. */ + height: number; + /** Number of bands, 3 for RGB, 4 for RGBA */ + channels: CreateChannels; + /** Parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. */ + background: Colour | Color; + /** Describes a noise to be created. */ + noise?: Noise | undefined; + /** The height of each page/frame for animated images, must be an integral factor of the overall image height. */ + pageHeight?: number | undefined; + + } + + interface CreateText { + /** Text to render as a UTF-8 string. It can contain Pango markup, for example `LeMonde`. */ + text: string; + /** Font name to render with. */ + font?: string; + /** Absolute filesystem path to a font file that can be used by `font`. */ + fontfile?: string; + /** Integral number of pixels to word-wrap at. Lines of text wider than this will be broken at word boundaries. (optional, default `0`) */ + width?: number; + /** + * Integral number of pixels high. When defined, `dpi` will be ignored and the text will automatically fit the pixel resolution + * defined by `width` and `height`. Will be ignored if `width` is not specified or set to 0. (optional, default `0`) + */ + height?: number; + /** Text alignment ('left', 'centre', 'center', 'right'). (optional, default 'left') */ + align?: TextAlign; + /** Set this to true to apply justification to the text. (optional, default `false`) */ + justify?: boolean; + /** The resolution (size) at which to render the text. Does not take effect if `height` is specified. (optional, default `72`) */ + dpi?: number; + /** + * Set this to true to enable RGBA output. This is useful for colour emoji rendering, + * or support for pango markup features like `Red!`. (optional, default `false`) + */ + rgba?: boolean; + /** Text line height in points. Will use the font line height if none is specified. (optional, default `0`) */ + spacing?: number; + /** Word wrapping style when width is provided, one of: 'word', 'char', 'word-char' (prefer word, fallback to char) or 'none' */ + wrap?: TextWrap; + } + + interface Join { + /** Number of images per row. */ + across?: number | undefined; + /** Treat input as frames of an animated image. */ + animated?: boolean | undefined; + /** Space between images, in pixels. */ + shim?: number | undefined; + /** Background colour. */ + background?: Colour | Color | undefined; + /** Horizontal alignment. */ + halign?: HorizontalAlignment | undefined; + /** Vertical alignment. */ + valign?: VerticalAlignment | undefined; + } + + interface TiffInputOptions { + /** Sub Image File Directory to extract, defaults to main image. Use -1 for all subifds. */ + subifd?: number | undefined; + } + + interface SvgInputOptions { + /** Custom CSS for SVG input, applied with a User Origin during the CSS cascade. */ + stylesheet?: string | undefined; + /** Set to `true` to render SVG input at 32-bits per channel (128-bit) instead of 8-bits per channel (32-bit) RGBA. */ + highBitdepth?: boolean | undefined; + } + + interface PdfInputOptions { + /** Background colour to use when PDF is partially transparent. Requires the use of a globally-installed libvips compiled with support for PDFium, Poppler, ImageMagick or GraphicsMagick. */ + background?: Colour | Color | undefined; + } + + interface OpenSlideInputOptions { + /** Level to extract from a multi-level input, zero based. (optional, default 0) */ + level?: number | undefined; + } + + interface Jp2InputOptions { + /** Set to `true` to load JPEG 2000 images using [oneshot mode](https://github.com/libvips/libvips/issues/4205) */ + oneshot?: boolean | undefined; + } + + interface ExifDir { + [k: string]: string; + } + + interface Exif { + 'IFD0'?: ExifDir; + 'IFD1'?: ExifDir; + 'IFD2'?: ExifDir; + 'IFD3'?: ExifDir; + } + + type HeifCompression = 'av1' | 'hevc'; + + type Unit = 'inch' | 'cm'; + + interface WriteableMetadata { + /** Number of pixels per inch (DPI) */ + density?: number | undefined; + /** Value between 1 and 8, used to update the EXIF Orientation tag. */ + orientation?: number | undefined; + /** + * Filesystem path to output ICC profile, defaults to sRGB. + * @deprecated Use `withIccProfile()` instead. + */ + icc?: string | undefined; + /** + * Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @deprecated Use `withExif()` or `withExifMerge()` instead. + */ + exif?: Exif | undefined; + } + + interface Metadata { + /** Number value of the EXIF Orientation header, if present */ + orientation?: number | undefined; + /** Name of decoder used to decompress image data e.g. jpeg, png, webp, gif, svg */ + format: keyof FormatEnum; + /** Total size of image in bytes, for Stream and Buffer input only */ + size?: number | undefined; + /** Number of pixels wide (EXIF orientation is not taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is not taken into consideration) */ + height: number; + /** Any changed metadata after the image orientation is applied. */ + autoOrient: { + /** Number of pixels wide (EXIF orientation is taken into consideration) */ + width: number; + /** Number of pixels high (EXIF orientation is taken into consideration) */ + height: number; + }; + /** Name of colour space interpretation */ + space: keyof ColourspaceEnum; + /** Number of bands e.g. 3 for sRGB, 4 for CMYK */ + channels: Channels; + /** Name of pixel depth format e.g. uchar, char, ushort, float ... */ + depth: keyof DepthEnum; + /** Number of pixels per inch (DPI), if present */ + density?: number | undefined; + /** String containing JPEG chroma subsampling, 4:2:0 or 4:4:4 for RGB, 4:2:0:4 or 4:4:4:4 for CMYK */ + chromaSubsampling?: string | undefined; + /** Boolean indicating whether the image is interlaced using a progressive scan */ + isProgressive: boolean; + /** Boolean indicating whether the image is palette-based (GIF, PNG). */ + isPalette: boolean; + /** Number of bits per sample for each channel (GIF, PNG). */ + bitsPerSample?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + /** Number of times to loop an animated image, zero refers to a continuous loop. */ + loop?: number | undefined; + /** Delay in ms between each page in an animated image, provided as an array of integers. */ + delay?: number[] | undefined; + /** Number of the primary page in a HEIF image */ + pagePrimary?: number | undefined; + /** Boolean indicating the presence of an embedded ICC profile */ + hasProfile: boolean; + /** Boolean indicating the presence of an alpha transparency channel */ + hasAlpha: boolean; + /** Buffer containing raw EXIF data, if present */ + exif?: Buffer | undefined; + /** Buffer containing raw ICC profile data, if present */ + icc?: Buffer | undefined; + /** Buffer containing raw IPTC data, if present */ + iptc?: Buffer | undefined; + /** Buffer containing raw XMP data, if present */ + xmp?: Buffer | undefined; + /** String containing XMP data, if valid UTF-8 */ + xmpAsString?: string | undefined; + /** Buffer containing raw TIFFTAG_PHOTOSHOP data, if present */ + tifftagPhotoshop?: Buffer | undefined; + /** The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) */ + compression?: HeifCompression | undefined; + /** Default background colour, if present, for PNG (bKGD) and GIF images */ + background?: { r: number; g: number; b: number } | { gray: number }; + /** Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide */ + levels?: LevelMetadata[] | undefined; + /** Number of Sub Image File Directories in an OME-TIFF image */ + subifds?: number | undefined; + /** The unit of resolution (density) */ + resolutionUnit?: Unit | undefined; + /** String containing format for images loaded via *magick */ + formatMagick?: string | undefined; + /** Array of keyword/text pairs representing PNG text blocks, if present. */ + comments?: CommentsMetadata[] | undefined; + } + + interface LevelMetadata { + width: number; + height: number; + } + + interface CommentsMetadata { + keyword: string; + text: string; + } + + interface Stats { + /** Array of channel statistics for each channel in the image. */ + channels: ChannelStats[]; + /** Value to identify if the image is opaque or transparent, based on the presence and use of alpha channel */ + isOpaque: boolean; + /** Histogram-based estimation of greyscale entropy, discarding alpha channel if any (experimental) */ + entropy: number; + /** Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any (experimental) */ + sharpness: number; + /** Object containing most dominant sRGB colour based on a 4096-bin 3D histogram (experimental) */ + dominant: { r: number; g: number; b: number }; + } + + interface ChannelStats { + /** minimum value in the channel */ + min: number; + /** maximum value in the channel */ + max: number; + /** sum of all values in a channel */ + sum: number; + /** sum of squared values in a channel */ + squaresSum: number; + /** mean of the values in a channel */ + mean: number; + /** standard deviation for the values in a channel */ + stdev: number; + /** x-coordinate of one of the pixel where the minimum lies */ + minX: number; + /** y-coordinate of one of the pixel where the minimum lies */ + minY: number; + /** x-coordinate of one of the pixel where the maximum lies */ + maxX: number; + /** y-coordinate of one of the pixel where the maximum lies */ + maxY: number; + } + + interface OutputOptions { + /** Force format output, otherwise attempt to use input format (optional, default true) */ + force?: boolean | undefined; + } + + interface WithIccProfileOptions { + /** Should the ICC profile be included in the output image metadata? (optional, default true) */ + attach?: boolean | undefined; + } + + interface JpegOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** Set to '4:4:4' to prevent chroma subsampling when quality <= 90 (optional, default '4:2:0') */ + chromaSubsampling?: string | undefined; + /** Apply trellis quantisation (optional, default false) */ + trellisQuantisation?: boolean | undefined; + /** Apply overshoot deringing (optional, default false) */ + overshootDeringing?: boolean | undefined; + /** Optimise progressive scans, forces progressive (optional, default false) */ + optimiseScans?: boolean | undefined; + /** Alternative spelling of optimiseScans (optional, default false) */ + optimizeScans?: boolean | undefined; + /** Optimise Huffman coding tables (optional, default true) */ + optimiseCoding?: boolean | undefined; + /** Alternative spelling of optimiseCoding (optional, default true) */ + optimizeCoding?: boolean | undefined; + /** Quantization table to use, integer 0-8 (optional, default 0) */ + quantisationTable?: number | undefined; + /** Alternative spelling of quantisationTable (optional, default 0) */ + quantizationTable?: number | undefined; + /** Use mozjpeg defaults (optional, default false) */ + mozjpeg?: boolean | undefined; + } + + interface Jp2Options extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean; + /** Horizontal tile size (optional, default 512) */ + tileWidth?: number; + /** Vertical tile size (optional, default 512) */ + tileHeight?: number; + /** Set to '4:2:0' to enable chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: '4:4:4' | '4:2:0'; + } + + interface JxlOptions extends OutputOptions { + /** Maximum encoding error, between 0 (highest quality) and 15 (lowest quality) (optional, default 1.0) */ + distance?: number; + /** Calculate distance based on JPEG-like quality, between 1 and 100, overrides distance if specified */ + quality?: number; + /** Target decode speed tier, between 0 (highest quality) and 4 (lowest quality) (optional, default 0) */ + decodingTier?: number; + /** Use lossless compression (optional, default false) */ + lossless?: boolean; + /** CPU effort, between 3 (fastest) and 9 (slowest) (optional, default 7) */ + effort?: number | undefined; + } + + interface WebpOptions extends OutputOptions, AnimationOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Quality of alpha layer, number from 0-100 (optional, default 100) */ + alphaQuality?: number | undefined; + /** Use lossless compression mode (optional, default false) */ + lossless?: boolean | undefined; + /** Use near_lossless compression mode (optional, default false) */ + nearLossless?: boolean | undefined; + /** Use high quality chroma subsampling (optional, default false) */ + smartSubsample?: boolean | undefined; + /** Auto-adjust the deblocking filter, slow but can improve low contrast edges (optional, default false) */ + smartDeblock?: boolean | undefined; + /** Level of CPU effort to reduce file size, integer 0-6 (optional, default 4) */ + effort?: number | undefined; + /** Prevent use of animation key frames to minimise file size (slow) (optional, default false) */ + minSize?: boolean; + /** Allow mixture of lossy and lossless animation frames (slow) (optional, default false) */ + mixed?: boolean; + /** Preset options: one of default, photo, picture, drawing, icon, text (optional, default 'default') */ + preset?: keyof PresetEnum | undefined; + } + + interface AvifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling, requires libvips v8.11.0 (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + } + + interface HeifOptions extends OutputOptions { + /** quality, integer 1-100 (optional, default 50) */ + quality?: number | undefined; + /** compression format: av1, hevc (optional, default 'av1') */ + compression?: HeifCompression | undefined; + /** use lossless compression (optional, default false) */ + lossless?: boolean | undefined; + /** Level of CPU effort to reduce file size, between 0 (fastest) and 9 (slowest) (optional, default 4) */ + effort?: number | undefined; + /** set to '4:2:0' to use chroma subsampling (optional, default '4:4:4') */ + chromaSubsampling?: string | undefined; + /** Set bitdepth to 8, 10 or 12 bit (optional, default 8) */ + bitdepth?: 8 | 10 | 12 | undefined; + } + + interface GifOptions extends OutputOptions, AnimationOptions { + /** Re-use existing palette, otherwise generate new (slow) */ + reuse?: boolean | undefined; + /** Use progressive (interlace) scan */ + progressive?: boolean | undefined; + /** Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colours?: number | undefined; + /** Alternative spelling of "colours". Maximum number of palette entries, including transparency, between 2 and 256 (optional, default 256) */ + colors?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest) (optional, default 7) */ + effort?: number | undefined; + /** Level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) (optional, default 1.0) */ + dither?: number | undefined; + /** Maximum inter-frame error for transparency, between 0 (lossless) and 32 (optional, default 0) */ + interFrameMaxError?: number | undefined; + /** Maximum inter-palette error for palette reuse, between 0 and 256 (optional, default 3) */ + interPaletteMaxError?: number | undefined; + /** Keep duplicate frames in the output instead of combining them (optional, default false) */ + keepDuplicateFrames?: boolean | undefined; + } + + interface TiffOptions extends OutputOptions { + /** Quality, integer 1-100 (optional, default 80) */ + quality?: number | undefined; + /** Compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k (optional, default 'jpeg') */ + compression?: string | undefined; + /** Use BigTIFF variant (has no effect when compression is none) (optional, default false) */ + bigtiff?: boolean | undefined; + /** Compression predictor options: none, horizontal, float (optional, default 'horizontal') */ + predictor?: string | undefined; + /** Write an image pyramid (optional, default false) */ + pyramid?: boolean | undefined; + /** Write a tiled tiff (optional, default false) */ + tile?: boolean | undefined; + /** Horizontal tile size (optional, default 256) */ + tileWidth?: number | undefined; + /** Vertical tile size (optional, default 256) */ + tileHeight?: number | undefined; + /** Horizontal resolution in pixels/mm (optional, default 1.0) */ + xres?: number | undefined; + /** Vertical resolution in pixels/mm (optional, default 1.0) */ + yres?: number | undefined; + /** Reduce bitdepth to 1, 2 or 4 bit (optional, default 8) */ + bitdepth?: 1 | 2 | 4 | 8 | undefined; + /** Write 1-bit images as miniswhite (optional, default false) */ + miniswhite?: boolean | undefined; + /** Resolution unit options: inch, cm (optional, default 'inch') */ + resolutionUnit?: Unit | undefined; + } + + interface PngOptions extends OutputOptions { + /** Use progressive (interlace) scan (optional, default false) */ + progressive?: boolean | undefined; + /** zlib compression level, 0-9 (optional, default 6) */ + compressionLevel?: number | undefined; + /** Use adaptive row filtering (optional, default false) */ + adaptiveFiltering?: boolean | undefined; + /** Use the lowest number of colours needed to achieve given quality (optional, default `100`) */ + quality?: number | undefined; + /** Level of CPU effort to reduce file size, between 1 (fastest) and 10 (slowest), sets palette to true (optional, default 7) */ + effort?: number | undefined; + /** Quantise to a palette-based image with alpha transparency support (optional, default false) */ + palette?: boolean | undefined; + /** Maximum number of palette entries (optional, default 256) */ + colours?: number | undefined; + /** Alternative Spelling of "colours". Maximum number of palette entries (optional, default 256) */ + colors?: number | undefined; + /** Level of Floyd-Steinberg error diffusion (optional, default 1.0) */ + dither?: number | undefined; + } + + interface RotateOptions { + /** parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: Colour | Color | undefined; + } + + type Precision = 'integer' | 'float' | 'approximate'; + + interface BlurOptions { + /** A value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2` */ + sigma: number; + /** A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. */ + minAmplitude?: number; + /** How accurate the operation should be, one of: integer, float, approximate. (optional, default "integer") */ + precision?: Precision | undefined; + } + + interface FlattenOptions { + /** background colour, parsed by the color module, defaults to black. (optional, default {r:0,g:0,b:0}) */ + background?: Colour | Color | undefined; + } + + interface NegateOptions { + /** whether or not to negate any alpha channel. (optional, default true) */ + alpha?: boolean | undefined; + } + + interface NormaliseOptions { + /** Percentile below which luminance values will be underexposed. */ + lower?: number | undefined; + /** Percentile above which luminance values will be overexposed. */ + upper?: number | undefined; + } + + interface ResizeOptions { + /** Alternative means of specifying width. If both are present this takes priority. */ + width?: number | undefined; + /** Alternative means of specifying height. If both are present this takes priority. */ + height?: number | undefined; + /** How the image should be resized to fit both provided dimensions, one of cover, contain, fill, inside or outside. (optional, default 'cover') */ + fit?: keyof FitEnum | undefined; + /** Position, gravity or strategy to use when fit is cover or contain. (optional, default 'centre') */ + position?: number | string | undefined; + /** Background colour when using a fit of contain, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: Colour | Color | undefined; + /** The kernel to use for image reduction. (optional, default 'lanczos3') */ + kernel?: keyof KernelEnum | undefined; + /** Do not enlarge if the width or height are already less than the specified dimensions, equivalent to GraphicsMagick's > geometry option. (optional, default false) */ + withoutEnlargement?: boolean | undefined; + /** Do not reduce if the width or height are already greater than the specified dimensions, equivalent to GraphicsMagick's < geometry option. (optional, default false) */ + withoutReduction?: boolean | undefined; + /** Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern on some images. (optional, default true) */ + fastShrinkOnLoad?: boolean | undefined; + } + + interface Region { + /** zero-indexed offset from left edge */ + left: number; + /** zero-indexed offset from top edge */ + top: number; + /** dimension of extracted image */ + width: number; + /** dimension of extracted image */ + height: number; + } + + interface Noise { + /** type of generated noise, currently only gaussian is supported. */ + type: 'gaussian'; + /** mean of pixels in generated noise. */ + mean?: number | undefined; + /** standard deviation of pixels in generated noise. */ + sigma?: number | undefined; + } + + type ExtendWith = 'background' | 'copy' | 'repeat' | 'mirror'; + + interface ExtendOptions { + /** single pixel count to top edge (optional, default 0) */ + top?: number | undefined; + /** single pixel count to left edge (optional, default 0) */ + left?: number | undefined; + /** single pixel count to bottom edge (optional, default 0) */ + bottom?: number | undefined; + /** single pixel count to right edge (optional, default 0) */ + right?: number | undefined; + /** background colour, parsed by the color module, defaults to black without transparency. (optional, default {r:0,g:0,b:0,alpha:1}) */ + background?: Colour | Color | undefined; + /** how the extension is done, one of: "background", "copy", "repeat", "mirror" (optional, default `'background'`) */ + extendWith?: ExtendWith | undefined; + } + + interface TrimOptions { + /** Background colour, parsed by the color module, defaults to that of the top-left pixel. (optional) */ + background?: Colour | Color | undefined; + /** Allowed difference from the above colour, a positive number. (optional, default 10) */ + threshold?: number | undefined; + /** Does the input more closely resemble line art (e.g. vector) rather than being photographic? (optional, default false) */ + lineArt?: boolean | undefined; + } + + interface RawOptions { + depth?: keyof DepthEnum; + } + + /** 1 for grayscale, 2 for grayscale + alpha, 3 for sRGB, 4 for CMYK or RGBA */ + type Channels = 1 | 2 | 3 | 4; + + interface RGBA { + r?: number | undefined; + g?: number | undefined; + b?: number | undefined; + alpha?: number | undefined; + } + + type Colour = string | RGBA; + type Color = Colour; + + interface Kernel { + /** width of the kernel in pixels. */ + width: number; + /** height of the kernel in pixels. */ + height: number; + /** Array of length width*height containing the kernel values. */ + kernel: ArrayLike; + /** the scale of the kernel in pixels. (optional, default sum) */ + scale?: number | undefined; + /** the offset of the kernel in pixels. (optional, default 0) */ + offset?: number | undefined; + } + + interface ClaheOptions { + /** width of the region */ + width: number; + /** height of the region */ + height: number; + /** max slope of the cumulative contrast. A value of 0 disables contrast limiting. Valid values are integers in the range 0-100 (inclusive) (optional, default 3) */ + maxSlope?: number | undefined; + } + + interface ThresholdOptions { + /** convert to single channel greyscale. (optional, default true) */ + greyscale?: boolean | undefined; + /** alternative spelling for greyscale. (optional, default true) */ + grayscale?: boolean | undefined; + } + + interface OverlayOptions extends SharpOptions { + /** Buffer containing image data, String containing the path to an image file, or Create object */ + input?: string | Buffer | { create: Create } | { text: CreateText } | { raw: CreateRaw } | undefined; + /** how to blend this image with the image below. (optional, default `'over'`) */ + blend?: Blend | undefined; + /** gravity at which to place the overlay. (optional, default 'centre') */ + gravity?: Gravity | undefined; + /** the pixel offset from the top edge. */ + top?: number | undefined; + /** the pixel offset from the left edge. */ + left?: number | undefined; + /** set to true to repeat the overlay image across the entire image with the given gravity. (optional, default false) */ + tile?: boolean | undefined; + /** Set to true to avoid premultipling the image below. Equivalent to the --premultiplied vips option. */ + premultiplied?: boolean | undefined; + /** number representing the DPI for vector overlay image. (optional, default 72)*/ + density?: number | undefined; + /** Set to true to read all frames/pages of an animated image. (optional, default false) */ + animated?: boolean | undefined; + /** see sharp() constructor, (optional, default 'warning') */ + failOn?: FailOnOptions | undefined; + /** see sharp() constructor, (optional, default 268402689) */ + limitInputPixels?: number | boolean | undefined; + /** see sharp() constructor, (optional, default false) */ + autoOrient?: boolean | undefined; + } + + interface TileOptions { + /** Tile size in pixels, a value between 1 and 8192. (optional, default 256) */ + size?: number | undefined; + /** Tile overlap in pixels, a value between 0 and 8192. (optional, default 0) */ + overlap?: number | undefined; + /** Tile angle of rotation, must be a multiple of 90. (optional, default 0) */ + angle?: number | undefined; + /** background colour, parsed by the color module, defaults to white without transparency. (optional, default {r:255,g:255,b:255,alpha:1}) */ + background?: string | RGBA | undefined; + /** How deep to make the pyramid, possible values are "onepixel", "onetile" or "one" (default based on layout) */ + depth?: string | undefined; + /** Threshold to skip tile generation, a value 0 - 255 for 8-bit images or 0 - 65535 for 16-bit images */ + skipBlanks?: number | undefined; + /** Tile container, with value fs (filesystem) or zip (compressed file). (optional, default 'fs') */ + container?: TileContainer | undefined; + /** Filesystem layout, possible values are dz, iiif, iiif3, zoomify or google. (optional, default 'dz') */ + layout?: TileLayout | undefined; + /** Centre image in tile. (optional, default false) */ + centre?: boolean | undefined; + /** Alternative spelling of centre. (optional, default false) */ + center?: boolean | undefined; + /** When layout is iiif/iiif3, sets the @id/id attribute of info.json (optional, default 'https://example.com/iiif') */ + id?: string | undefined; + /** The name of the directory within the zip file when container is `zip`. */ + basename?: string | undefined; + } + + interface AnimationOptions { + /** Number of animation iterations, a value between 0 and 65535. Use 0 for infinite animation. (optional, default 0) */ + loop?: number | undefined; + /** delay(s) between animation frames (in milliseconds), each value between 0 and 65535. (optional) */ + delay?: number | number[] | undefined; + } + + interface SharpenOptions { + /** The sigma of the Gaussian mask, where sigma = 1 + radius / 2, between 0.000001 and 10000 */ + sigma: number; + /** The level of sharpening to apply to "flat" areas, between 0 and 1000000 (optional, default 1.0) */ + m1?: number | undefined; + /** The level of sharpening to apply to "jagged" areas, between 0 and 1000000 (optional, default 2.0) */ + m2?: number | undefined; + /** Threshold between "flat" and "jagged", between 0 and 1000000 (optional, default 2.0) */ + x1?: number | undefined; + /** Maximum amount of brightening, between 0 and 1000000 (optional, default 10.0) */ + y2?: number | undefined; + /** Maximum amount of darkening, between 0 and 1000000 (optional, default 20.0) */ + y3?: number | undefined; + } + + interface AffineOptions { + /** Parsed by the color module to extract values for red, green, blue and alpha. (optional, default "#000000") */ + background?: string | object | undefined; + /** Input horizontal offset (optional, default 0) */ + idx?: number | undefined; + /** Input vertical offset (optional, default 0) */ + idy?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + odx?: number | undefined; + /** Output horizontal offset (optional, default 0) */ + ody?: number | undefined; + /** Interpolator (optional, default sharp.interpolators.bicubic) */ + interpolator?: Interpolators[keyof Interpolators] | undefined; + } + + interface OutputInfo { + format: string; + size: number; + width: number; + height: number; + channels: Channels; + /** indicating if premultiplication was used */ + premultiplied: boolean; + /** Only defined when using a crop strategy */ + cropOffsetLeft?: number | undefined; + /** Only defined when using a crop strategy */ + cropOffsetTop?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetLeft?: number | undefined; + /** Only defined when using a trim method */ + trimOffsetTop?: number | undefined; + /** DPI the font was rendered at, only defined when using `text` input */ + textAutofitDpi?: number | undefined; + /** When using the attention crop strategy, the focal point of the cropped region */ + attentionX?: number | undefined; + attentionY?: number | undefined; + /** Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP */ + pages?: number | undefined; + /** Number of pixels high each page in a multi-page image will be. */ + pageHeight?: number | undefined; + } + + interface AvailableFormatInfo { + id: string; + input: { file: boolean; buffer: boolean; stream: boolean; fileSuffix?: string[] }; + output: { file: boolean; buffer: boolean; stream: boolean; alias?: string[] }; + } + + interface FitEnum { + contain: 'contain'; + cover: 'cover'; + fill: 'fill'; + inside: 'inside'; + outside: 'outside'; + } + + interface KernelEnum { + nearest: 'nearest'; + cubic: 'cubic'; + linear: 'linear'; + mitchell: 'mitchell'; + lanczos2: 'lanczos2'; + lanczos3: 'lanczos3'; + mks2013: 'mks2013'; + mks2021: 'mks2021'; + } + + interface PresetEnum { + default: 'default'; + picture: 'picture'; + photo: 'photo'; + drawing: 'drawing'; + icon: 'icon'; + text: 'text'; + } + + interface BoolEnum { + and: 'and'; + or: 'or'; + eor: 'eor'; + } + + interface ColourspaceEnum { + 'b-w': string; + cmc: string; + cmyk: string; + fourier: string; + grey16: string; + histogram: string; + hsv: string; + lab: string; + labq: string; + labs: string; + lch: string; + matrix: string; + multiband: string; + rgb: string; + rgb16: string; + scrgb: string; + srgb: string; + xyz: string; + yxy: string; + } + + interface DepthEnum { + char: string; + complex: string; + double: string; + dpcomplex: string; + float: string; + int: string; + short: string; + uchar: string; + uint: string; + ushort: string; + } + + type FailOnOptions = 'none' | 'truncated' | 'error' | 'warning'; + + type TextAlign = 'left' | 'centre' | 'center' | 'right'; + + type TextWrap = 'word' | 'char' | 'word-char' | 'none'; + + type HorizontalAlignment = 'left' | 'centre' | 'center' | 'right'; + + type VerticalAlignment = 'top' | 'centre' | 'center' | 'bottom'; + + type TileContainer = 'fs' | 'zip'; + + type TileLayout = 'dz' | 'iiif' | 'iiif3' | 'zoomify' | 'google'; + + type Blend = + | 'clear' + | 'source' + | 'over' + | 'in' + | 'out' + | 'atop' + | 'dest' + | 'dest-over' + | 'dest-in' + | 'dest-out' + | 'dest-atop' + | 'xor' + | 'add' + | 'saturate' + | 'multiply' + | 'screen' + | 'overlay' + | 'darken' + | 'lighten' + | 'color-dodge' + | 'colour-dodge' + | 'color-burn' + | 'colour-burn' + | 'hard-light' + | 'soft-light' + | 'difference' + | 'exclusion'; + + type Gravity = number | string; + + interface GravityEnum { + north: number; + northeast: number; + southeast: number; + south: number; + southwest: number; + west: number; + northwest: number; + east: number; + center: number; + centre: number; + } + + interface StrategyEnum { + entropy: number; + attention: number; + } + + interface FormatEnum { + avif: AvailableFormatInfo; + dcraw: AvailableFormatInfo; + dz: AvailableFormatInfo; + exr: AvailableFormatInfo; + fits: AvailableFormatInfo; + gif: AvailableFormatInfo; + heif: AvailableFormatInfo; + input: AvailableFormatInfo; + jpeg: AvailableFormatInfo; + jpg: AvailableFormatInfo; + jp2: AvailableFormatInfo; + jxl: AvailableFormatInfo; + magick: AvailableFormatInfo; + openslide: AvailableFormatInfo; + pdf: AvailableFormatInfo; + png: AvailableFormatInfo; + ppm: AvailableFormatInfo; + rad: AvailableFormatInfo; + raw: AvailableFormatInfo; + svg: AvailableFormatInfo; + tiff: AvailableFormatInfo; + tif: AvailableFormatInfo; + v: AvailableFormatInfo; + webp: AvailableFormatInfo; + } + + interface CacheResult { + memory: { current: number; high: number; max: number }; + files: { current: number; max: number }; + items: { current: number; max: number }; + } + + interface Interpolators { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest'; + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear'; + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic'; + /** + * [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). + * Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. + */ + locallyBoundedBicubic: 'lbb'; + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo'; + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs'; + } + + type Matrix2x2 = [[number, number], [number, number]]; + type Matrix3x3 = [[number, number, number], [number, number, number], [number, number, number]]; + type Matrix4x4 = [[number, number, number, number], [number, number, number, number], [number, number, number, number], [number, number, number, number]]; +} + +export = sharp; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.js new file mode 100644 index 0000000..b80191d --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/index.js @@ -0,0 +1,16 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const Sharp = require('./constructor'); +require('./input')(Sharp); +require('./resize')(Sharp); +require('./composite')(Sharp); +require('./operation')(Sharp); +require('./colour')(Sharp); +require('./channel')(Sharp); +require('./output')(Sharp); +require('./utility')(Sharp); + +module.exports = Sharp; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/input.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/input.js new file mode 100644 index 0000000..728b718 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/input.js @@ -0,0 +1,809 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is'); +const sharp = require('./sharp'); + +/** + * Justification alignment + * @member + * @private + */ +const align = { + left: 'low', + top: 'low', + low: 'low', + center: 'centre', + centre: 'centre', + right: 'high', + bottom: 'high', + high: 'high' +}; + +const inputStreamParameters = [ + // Limits and error handling + 'failOn', 'limitInputPixels', 'unlimited', + // Format-generic + 'animated', 'autoOrient', 'density', 'ignoreIcc', 'page', 'pages', 'sequentialRead', + // Format-specific + 'jp2', 'openSlide', 'pdf', 'raw', 'svg', 'tiff', + // Deprecated + 'failOnError', 'openSlideLevel', 'pdfBackground', 'tiffSubifd' +]; + +/** + * Extract input options, if any, from an object. + * @private + */ +function _inputOptionsFromObject (obj) { + const params = inputStreamParameters + .filter(p => is.defined(obj[p])) + .map(p => ([p, obj[p]])); + return params.length + ? Object.fromEntries(params) + : undefined; +} + +/** + * Create Object containing input and input-related options. + * @private + */ +function _createInputDescriptor (input, inputOptions, containerOptions) { + const inputDescriptor = { + autoOrient: false, + failOn: 'warning', + limitInputPixels: 0x3FFF ** 2, + ignoreIcc: false, + unlimited: false, + sequentialRead: true + }; + if (is.string(input)) { + // filesystem + inputDescriptor.file = input; + } else if (is.buffer(input)) { + // Buffer + if (input.length === 0) { + throw Error('Input Buffer is empty'); + } + inputDescriptor.buffer = input; + } else if (is.arrayBuffer(input)) { + if (input.byteLength === 0) { + throw Error('Input bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input, 0, input.byteLength); + } else if (is.typedArray(input)) { + if (input.length === 0) { + throw Error('Input Bit Array is empty'); + } + inputDescriptor.buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength); + } else if (is.plainObject(input) && !is.defined(inputOptions)) { + // Plain Object descriptor, e.g. create + inputOptions = input; + if (_inputOptionsFromObject(inputOptions)) { + // Stream with options + inputDescriptor.buffer = []; + } + } else if (!is.defined(input) && !is.defined(inputOptions) && is.object(containerOptions) && containerOptions.allowStream) { + // Stream without options + inputDescriptor.buffer = []; + } else if (Array.isArray(input)) { + if (input.length > 1) { + // Join images together + if (!this.options.joining) { + this.options.joining = true; + this.options.join = input.map(i => this._createInputDescriptor(i)); + } else { + throw new Error('Recursive join is unsupported'); + } + } else { + throw new Error('Expected at least two images to join'); + } + } else { + throw new Error(`Unsupported input '${input}' of type ${typeof input}${ + is.defined(inputOptions) ? ` when also providing options of type ${typeof inputOptions}` : '' + }`); + } + if (is.object(inputOptions)) { + // Deprecated: failOnError + if (is.defined(inputOptions.failOnError)) { + if (is.bool(inputOptions.failOnError)) { + inputDescriptor.failOn = inputOptions.failOnError ? 'warning' : 'none'; + } else { + throw is.invalidParameterError('failOnError', 'boolean', inputOptions.failOnError); + } + } + // failOn + if (is.defined(inputOptions.failOn)) { + if (is.string(inputOptions.failOn) && is.inArray(inputOptions.failOn, ['none', 'truncated', 'error', 'warning'])) { + inputDescriptor.failOn = inputOptions.failOn; + } else { + throw is.invalidParameterError('failOn', 'one of: none, truncated, error, warning', inputOptions.failOn); + } + } + // autoOrient + if (is.defined(inputOptions.autoOrient)) { + if (is.bool(inputOptions.autoOrient)) { + inputDescriptor.autoOrient = inputOptions.autoOrient; + } else { + throw is.invalidParameterError('autoOrient', 'boolean', inputOptions.autoOrient); + } + } + // Density + if (is.defined(inputOptions.density)) { + if (is.inRange(inputOptions.density, 1, 100000)) { + inputDescriptor.density = inputOptions.density; + } else { + throw is.invalidParameterError('density', 'number between 1 and 100000', inputOptions.density); + } + } + // Ignore embeddded ICC profile + if (is.defined(inputOptions.ignoreIcc)) { + if (is.bool(inputOptions.ignoreIcc)) { + inputDescriptor.ignoreIcc = inputOptions.ignoreIcc; + } else { + throw is.invalidParameterError('ignoreIcc', 'boolean', inputOptions.ignoreIcc); + } + } + // limitInputPixels + if (is.defined(inputOptions.limitInputPixels)) { + if (is.bool(inputOptions.limitInputPixels)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels + ? 0x3FFF ** 2 + : 0; + } else if (is.integer(inputOptions.limitInputPixels) && is.inRange(inputOptions.limitInputPixels, 0, Number.MAX_SAFE_INTEGER)) { + inputDescriptor.limitInputPixels = inputOptions.limitInputPixels; + } else { + throw is.invalidParameterError('limitInputPixels', 'positive integer', inputOptions.limitInputPixels); + } + } + // unlimited + if (is.defined(inputOptions.unlimited)) { + if (is.bool(inputOptions.unlimited)) { + inputDescriptor.unlimited = inputOptions.unlimited; + } else { + throw is.invalidParameterError('unlimited', 'boolean', inputOptions.unlimited); + } + } + // sequentialRead + if (is.defined(inputOptions.sequentialRead)) { + if (is.bool(inputOptions.sequentialRead)) { + inputDescriptor.sequentialRead = inputOptions.sequentialRead; + } else { + throw is.invalidParameterError('sequentialRead', 'boolean', inputOptions.sequentialRead); + } + } + // Raw pixel input + if (is.defined(inputOptions.raw)) { + if ( + is.object(inputOptions.raw) && + is.integer(inputOptions.raw.width) && inputOptions.raw.width > 0 && + is.integer(inputOptions.raw.height) && inputOptions.raw.height > 0 && + is.integer(inputOptions.raw.channels) && is.inRange(inputOptions.raw.channels, 1, 4) + ) { + inputDescriptor.rawWidth = inputOptions.raw.width; + inputDescriptor.rawHeight = inputOptions.raw.height; + inputDescriptor.rawChannels = inputOptions.raw.channels; + switch (input.constructor) { + case Uint8Array: + case Uint8ClampedArray: + inputDescriptor.rawDepth = 'uchar'; + break; + case Int8Array: + inputDescriptor.rawDepth = 'char'; + break; + case Uint16Array: + inputDescriptor.rawDepth = 'ushort'; + break; + case Int16Array: + inputDescriptor.rawDepth = 'short'; + break; + case Uint32Array: + inputDescriptor.rawDepth = 'uint'; + break; + case Int32Array: + inputDescriptor.rawDepth = 'int'; + break; + case Float32Array: + inputDescriptor.rawDepth = 'float'; + break; + case Float64Array: + inputDescriptor.rawDepth = 'double'; + break; + default: + inputDescriptor.rawDepth = 'uchar'; + break; + } + } else { + throw new Error('Expected width, height and channels for raw pixel input'); + } + inputDescriptor.rawPremultiplied = false; + if (is.defined(inputOptions.raw.premultiplied)) { + if (is.bool(inputOptions.raw.premultiplied)) { + inputDescriptor.rawPremultiplied = inputOptions.raw.premultiplied; + } else { + throw is.invalidParameterError('raw.premultiplied', 'boolean', inputOptions.raw.premultiplied); + } + } + inputDescriptor.rawPageHeight = 0; + if (is.defined(inputOptions.raw.pageHeight)) { + if (is.integer(inputOptions.raw.pageHeight) && inputOptions.raw.pageHeight > 0 && inputOptions.raw.pageHeight <= inputOptions.raw.height) { + if (inputOptions.raw.height % inputOptions.raw.pageHeight !== 0) { + throw new Error(`Expected raw.height ${inputOptions.raw.height} to be a multiple of raw.pageHeight ${inputOptions.raw.pageHeight}`); + } + inputDescriptor.rawPageHeight = inputOptions.raw.pageHeight; + } else { + throw is.invalidParameterError('raw.pageHeight', 'positive integer', inputOptions.raw.pageHeight); + } + } + } + // Multi-page input (GIF, TIFF, PDF) + if (is.defined(inputOptions.animated)) { + if (is.bool(inputOptions.animated)) { + inputDescriptor.pages = inputOptions.animated ? -1 : 1; + } else { + throw is.invalidParameterError('animated', 'boolean', inputOptions.animated); + } + } + if (is.defined(inputOptions.pages)) { + if (is.integer(inputOptions.pages) && is.inRange(inputOptions.pages, -1, 100000)) { + inputDescriptor.pages = inputOptions.pages; + } else { + throw is.invalidParameterError('pages', 'integer between -1 and 100000', inputOptions.pages); + } + } + if (is.defined(inputOptions.page)) { + if (is.integer(inputOptions.page) && is.inRange(inputOptions.page, 0, 100000)) { + inputDescriptor.page = inputOptions.page; + } else { + throw is.invalidParameterError('page', 'integer between 0 and 100000', inputOptions.page); + } + } + // OpenSlide specific options + if (is.object(inputOptions.openSlide) && is.defined(inputOptions.openSlide.level)) { + if (is.integer(inputOptions.openSlide.level) && is.inRange(inputOptions.openSlide.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.openSlide.level; + } else { + throw is.invalidParameterError('openSlide.level', 'integer between 0 and 256', inputOptions.openSlide.level); + } + } else if (is.defined(inputOptions.level)) { + // Deprecated + if (is.integer(inputOptions.level) && is.inRange(inputOptions.level, 0, 256)) { + inputDescriptor.openSlideLevel = inputOptions.level; + } else { + throw is.invalidParameterError('level', 'integer between 0 and 256', inputOptions.level); + } + } + // TIFF specific options + if (is.object(inputOptions.tiff) && is.defined(inputOptions.tiff.subifd)) { + if (is.integer(inputOptions.tiff.subifd) && is.inRange(inputOptions.tiff.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.tiff.subifd; + } else { + throw is.invalidParameterError('tiff.subifd', 'integer between -1 and 100000', inputOptions.tiff.subifd); + } + } else if (is.defined(inputOptions.subifd)) { + // Deprecated + if (is.integer(inputOptions.subifd) && is.inRange(inputOptions.subifd, -1, 100000)) { + inputDescriptor.tiffSubifd = inputOptions.subifd; + } else { + throw is.invalidParameterError('subifd', 'integer between -1 and 100000', inputOptions.subifd); + } + } + // SVG specific options + if (is.object(inputOptions.svg)) { + if (is.defined(inputOptions.svg.stylesheet)) { + if (is.string(inputOptions.svg.stylesheet)) { + inputDescriptor.svgStylesheet = inputOptions.svg.stylesheet; + } else { + throw is.invalidParameterError('svg.stylesheet', 'string', inputOptions.svg.stylesheet); + } + } + if (is.defined(inputOptions.svg.highBitdepth)) { + if (is.bool(inputOptions.svg.highBitdepth)) { + inputDescriptor.svgHighBitdepth = inputOptions.svg.highBitdepth; + } else { + throw is.invalidParameterError('svg.highBitdepth', 'boolean', inputOptions.svg.highBitdepth); + } + } + } + // PDF specific options + if (is.object(inputOptions.pdf) && is.defined(inputOptions.pdf.background)) { + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdf.background); + } else if (is.defined(inputOptions.pdfBackground)) { + // Deprecated + inputDescriptor.pdfBackground = this._getBackgroundColourOption(inputOptions.pdfBackground); + } + // JPEG 2000 specific options + if (is.object(inputOptions.jp2) && is.defined(inputOptions.jp2.oneshot)) { + if (is.bool(inputOptions.jp2.oneshot)) { + inputDescriptor.jp2Oneshot = inputOptions.jp2.oneshot; + } else { + throw is.invalidParameterError('jp2.oneshot', 'boolean', inputOptions.jp2.oneshot); + } + } + // Create new image + if (is.defined(inputOptions.create)) { + if ( + is.object(inputOptions.create) && + is.integer(inputOptions.create.width) && inputOptions.create.width > 0 && + is.integer(inputOptions.create.height) && inputOptions.create.height > 0 && + is.integer(inputOptions.create.channels) + ) { + inputDescriptor.createWidth = inputOptions.create.width; + inputDescriptor.createHeight = inputOptions.create.height; + inputDescriptor.createChannels = inputOptions.create.channels; + inputDescriptor.createPageHeight = 0; + if (is.defined(inputOptions.create.pageHeight)) { + if (is.integer(inputOptions.create.pageHeight) && inputOptions.create.pageHeight > 0 && inputOptions.create.pageHeight <= inputOptions.create.height) { + if (inputOptions.create.height % inputOptions.create.pageHeight !== 0) { + throw new Error(`Expected create.height ${inputOptions.create.height} to be a multiple of create.pageHeight ${inputOptions.create.pageHeight}`); + } + inputDescriptor.createPageHeight = inputOptions.create.pageHeight; + } else { + throw is.invalidParameterError('create.pageHeight', 'positive integer', inputOptions.create.pageHeight); + } + } + // Noise + if (is.defined(inputOptions.create.noise)) { + if (!is.object(inputOptions.create.noise)) { + throw new Error('Expected noise to be an object'); + } + if (inputOptions.create.noise.type !== 'gaussian') { + throw new Error('Only gaussian noise is supported at the moment'); + } + inputDescriptor.createNoiseType = inputOptions.create.noise.type; + if (!is.inRange(inputOptions.create.channels, 1, 4)) { + throw is.invalidParameterError('create.channels', 'number between 1 and 4', inputOptions.create.channels); + } + inputDescriptor.createNoiseMean = 128; + if (is.defined(inputOptions.create.noise.mean)) { + if (is.number(inputOptions.create.noise.mean) && is.inRange(inputOptions.create.noise.mean, 0, 10000)) { + inputDescriptor.createNoiseMean = inputOptions.create.noise.mean; + } else { + throw is.invalidParameterError('create.noise.mean', 'number between 0 and 10000', inputOptions.create.noise.mean); + } + } + inputDescriptor.createNoiseSigma = 30; + if (is.defined(inputOptions.create.noise.sigma)) { + if (is.number(inputOptions.create.noise.sigma) && is.inRange(inputOptions.create.noise.sigma, 0, 10000)) { + inputDescriptor.createNoiseSigma = inputOptions.create.noise.sigma; + } else { + throw is.invalidParameterError('create.noise.sigma', 'number between 0 and 10000', inputOptions.create.noise.sigma); + } + } + } else if (is.defined(inputOptions.create.background)) { + if (!is.inRange(inputOptions.create.channels, 3, 4)) { + throw is.invalidParameterError('create.channels', 'number between 3 and 4', inputOptions.create.channels); + } + inputDescriptor.createBackground = this._getBackgroundColourOption(inputOptions.create.background); + } else { + throw new Error('Expected valid noise or background to create a new input image'); + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected valid width, height and channels to create a new input image'); + } + } + // Create a new image with text + if (is.defined(inputOptions.text)) { + if (is.object(inputOptions.text) && is.string(inputOptions.text.text)) { + inputDescriptor.textValue = inputOptions.text.text; + if (is.defined(inputOptions.text.height) && is.defined(inputOptions.text.dpi)) { + throw new Error('Expected only one of dpi or height'); + } + if (is.defined(inputOptions.text.font)) { + if (is.string(inputOptions.text.font)) { + inputDescriptor.textFont = inputOptions.text.font; + } else { + throw is.invalidParameterError('text.font', 'string', inputOptions.text.font); + } + } + if (is.defined(inputOptions.text.fontfile)) { + if (is.string(inputOptions.text.fontfile)) { + inputDescriptor.textFontfile = inputOptions.text.fontfile; + } else { + throw is.invalidParameterError('text.fontfile', 'string', inputOptions.text.fontfile); + } + } + if (is.defined(inputOptions.text.width)) { + if (is.integer(inputOptions.text.width) && inputOptions.text.width > 0) { + inputDescriptor.textWidth = inputOptions.text.width; + } else { + throw is.invalidParameterError('text.width', 'positive integer', inputOptions.text.width); + } + } + if (is.defined(inputOptions.text.height)) { + if (is.integer(inputOptions.text.height) && inputOptions.text.height > 0) { + inputDescriptor.textHeight = inputOptions.text.height; + } else { + throw is.invalidParameterError('text.height', 'positive integer', inputOptions.text.height); + } + } + if (is.defined(inputOptions.text.align)) { + if (is.string(inputOptions.text.align) && is.string(this.constructor.align[inputOptions.text.align])) { + inputDescriptor.textAlign = this.constructor.align[inputOptions.text.align]; + } else { + throw is.invalidParameterError('text.align', 'valid alignment', inputOptions.text.align); + } + } + if (is.defined(inputOptions.text.justify)) { + if (is.bool(inputOptions.text.justify)) { + inputDescriptor.textJustify = inputOptions.text.justify; + } else { + throw is.invalidParameterError('text.justify', 'boolean', inputOptions.text.justify); + } + } + if (is.defined(inputOptions.text.dpi)) { + if (is.integer(inputOptions.text.dpi) && is.inRange(inputOptions.text.dpi, 1, 1000000)) { + inputDescriptor.textDpi = inputOptions.text.dpi; + } else { + throw is.invalidParameterError('text.dpi', 'integer between 1 and 1000000', inputOptions.text.dpi); + } + } + if (is.defined(inputOptions.text.rgba)) { + if (is.bool(inputOptions.text.rgba)) { + inputDescriptor.textRgba = inputOptions.text.rgba; + } else { + throw is.invalidParameterError('text.rgba', 'bool', inputOptions.text.rgba); + } + } + if (is.defined(inputOptions.text.spacing)) { + if (is.integer(inputOptions.text.spacing) && is.inRange(inputOptions.text.spacing, -1000000, 1000000)) { + inputDescriptor.textSpacing = inputOptions.text.spacing; + } else { + throw is.invalidParameterError('text.spacing', 'integer between -1000000 and 1000000', inputOptions.text.spacing); + } + } + if (is.defined(inputOptions.text.wrap)) { + if (is.string(inputOptions.text.wrap) && is.inArray(inputOptions.text.wrap, ['word', 'char', 'word-char', 'none'])) { + inputDescriptor.textWrap = inputOptions.text.wrap; + } else { + throw is.invalidParameterError('text.wrap', 'one of: word, char, word-char, none', inputOptions.text.wrap); + } + } + delete inputDescriptor.buffer; + } else { + throw new Error('Expected a valid string to create an image with text.'); + } + } + // Join images together + if (is.defined(inputOptions.join)) { + if (is.defined(this.options.join)) { + if (is.defined(inputOptions.join.animated)) { + if (is.bool(inputOptions.join.animated)) { + inputDescriptor.joinAnimated = inputOptions.join.animated; + } else { + throw is.invalidParameterError('join.animated', 'boolean', inputOptions.join.animated); + } + } + if (is.defined(inputOptions.join.across)) { + if (is.integer(inputOptions.join.across) && is.inRange(inputOptions.join.across, 1, 1000000)) { + inputDescriptor.joinAcross = inputOptions.join.across; + } else { + throw is.invalidParameterError('join.across', 'integer between 1 and 100000', inputOptions.join.across); + } + } + if (is.defined(inputOptions.join.shim)) { + if (is.integer(inputOptions.join.shim) && is.inRange(inputOptions.join.shim, 0, 1000000)) { + inputDescriptor.joinShim = inputOptions.join.shim; + } else { + throw is.invalidParameterError('join.shim', 'integer between 0 and 100000', inputOptions.join.shim); + } + } + if (is.defined(inputOptions.join.background)) { + inputDescriptor.joinBackground = this._getBackgroundColourOption(inputOptions.join.background); + } + if (is.defined(inputOptions.join.halign)) { + if (is.string(inputOptions.join.halign) && is.string(this.constructor.align[inputOptions.join.halign])) { + inputDescriptor.joinHalign = this.constructor.align[inputOptions.join.halign]; + } else { + throw is.invalidParameterError('join.halign', 'valid alignment', inputOptions.join.halign); + } + } + if (is.defined(inputOptions.join.valign)) { + if (is.string(inputOptions.join.valign) && is.string(this.constructor.align[inputOptions.join.valign])) { + inputDescriptor.joinValign = this.constructor.align[inputOptions.join.valign]; + } else { + throw is.invalidParameterError('join.valign', 'valid alignment', inputOptions.join.valign); + } + } + } else { + throw new Error('Expected input to be an array of images to join'); + } + } + } else if (is.defined(inputOptions)) { + throw new Error(`Invalid input options ${inputOptions}`); + } + return inputDescriptor; +} + +/** + * Handle incoming Buffer chunk on Writable Stream. + * @private + * @param {Buffer} chunk + * @param {string} encoding - unused + * @param {Function} callback + */ +function _write (chunk, _encoding, callback) { + if (Array.isArray(this.options.input.buffer)) { + if (is.buffer(chunk)) { + if (this.options.input.buffer.length === 0) { + this.on('finish', () => { + this.streamInFinished = true; + }); + } + this.options.input.buffer.push(chunk); + callback(); + } else { + callback(new Error('Non-Buffer data on Writable Stream')); + } + } else { + callback(new Error('Unexpected data on Writable Stream')); + } +} + +/** + * Flattens the array of chunks accumulated in input.buffer. + * @private + */ +function _flattenBufferIn () { + if (this._isStreamInput()) { + this.options.input.buffer = Buffer.concat(this.options.input.buffer); + } +} + +/** + * Are we expecting Stream-based input? + * @private + * @returns {boolean} + */ +function _isStreamInput () { + return Array.isArray(this.options.input.buffer); +} + +/** + * Fast access to (uncached) image metadata without decoding any compressed pixel data. + * + * This is read from the header of the input image. + * It does not take into consideration any operations to be applied to the output image, + * such as resize or rotate. + * + * Dimensions in the response will respect the `page` and `pages` properties of the + * {@link /api-constructor/ constructor parameters}. + * + * A `Promise` is returned when `callback` is not provided. + * + * - `format`: Name of decoder used to decompress image data e.g. `jpeg`, `png`, `webp`, `gif`, `svg` + * - `size`: Total size of image in bytes, for Stream and Buffer input only + * - `width`: Number of pixels wide (EXIF orientation is not taken into consideration, see example below) + * - `height`: Number of pixels high (EXIF orientation is not taken into consideration, see example below) + * - `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://www.libvips.org/API/current/enum.Interpretation.html) + * - `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK + * - `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://www.libvips.org/API/current/enum.BandFormat.html) + * - `density`: Number of pixels per inch (DPI), if present + * - `chromaSubsampling`: String containing JPEG chroma subsampling, `4:2:0` or `4:4:4` for RGB, `4:2:0:4` or `4:4:4:4` for CMYK + * - `isProgressive`: Boolean indicating whether the image is interlaced using a progressive scan + * - `isPalette`: Boolean indicating whether the image is palette-based (GIF, PNG). + * - `bitsPerSample`: Number of bits per sample for each channel (GIF, PNG, HEIF). + * - `pages`: Number of pages/frames contained within the image, with support for TIFF, HEIF, PDF, animated GIF and animated WebP + * - `pageHeight`: Number of pixels high each page in a multi-page image will be. + * - `loop`: Number of times to loop an animated image, zero refers to a continuous loop. + * - `delay`: Delay in ms between each page in an animated image, provided as an array of integers. + * - `pagePrimary`: Number of the primary page in a HEIF image + * - `levels`: Details of each level in a multi-level image provided as an array of objects, requires libvips compiled with support for OpenSlide + * - `subifds`: Number of Sub Image File Directories in an OME-TIFF image + * - `background`: Default background colour, if present, for PNG (bKGD) and GIF images + * - `compression`: The encoder used to compress an HEIF file, `av1` (AVIF) or `hevc` (HEIC) + * - `resolutionUnit`: The unit of resolution (density), either `inch` or `cm`, if present + * - `hasProfile`: Boolean indicating the presence of an embedded ICC profile + * - `hasAlpha`: Boolean indicating the presence of an alpha transparency channel + * - `orientation`: Number value of the EXIF Orientation header, if present + * - `exif`: Buffer containing raw EXIF data, if present + * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present + * - `iptc`: Buffer containing raw IPTC data, if present + * - `xmp`: Buffer containing raw XMP data, if present + * - `xmpAsString`: String containing XMP data, if valid UTF-8. + * - `tifftagPhotoshop`: Buffer containing raw TIFFTAG_PHOTOSHOP data, if present + * - `formatMagick`: String containing format for images loaded via *magick + * - `comments`: Array of keyword/text pairs representing PNG text blocks, if present. + * + * @example + * const metadata = await sharp(input).metadata(); + * + * @example + * const image = sharp(inputJpg); + * image + * .metadata() + * .then(function(metadata) { + * return image + * .resize(Math.round(metadata.width / 2)) + * .webp() + * .toBuffer(); + * }) + * .then(function(data) { + * // data contains a WebP image half the width and height of the original JPEG + * }); + * + * @example + * // Get dimensions taking EXIF Orientation into account. + * const { autoOrient } = await sharp(input).metadata(); + * const { width, height } = autoOrient; + * + * @param {Function} [callback] - called with the arguments `(err, metadata)` + * @returns {Promise|Sharp} + */ +function metadata (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this.on('finish', () => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + }); + } else { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, metadata); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + const finished = () => { + this._flattenBufferIn(); + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }; + if (this.writableFinished) { + finished(); + } else { + this.once('finish', finished); + } + }); + } else { + return new Promise((resolve, reject) => { + sharp.metadata(this.options, (err, metadata) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(metadata); + } + }); + }); + } + } +} + +/** + * Access to pixel-derived image statistics for every channel in the image. + * A `Promise` is returned when `callback` is not provided. + * + * - `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains + * - `min` (minimum value in the channel) + * - `max` (maximum value in the channel) + * - `sum` (sum of all values in a channel) + * - `squaresSum` (sum of squared values in a channel) + * - `mean` (mean of the values in a channel) + * - `stdev` (standard deviation for the values in a channel) + * - `minX` (x-coordinate of one of the pixel where the minimum lies) + * - `minY` (y-coordinate of one of the pixel where the minimum lies) + * - `maxX` (x-coordinate of one of the pixel where the maximum lies) + * - `maxY` (y-coordinate of one of the pixel where the maximum lies) + * - `isOpaque`: Is the image fully opaque? Will be `true` if the image has no alpha channel or if every pixel is fully opaque. + * - `entropy`: Histogram-based estimation of greyscale entropy, discarding alpha channel if any. + * - `sharpness`: Estimation of greyscale sharpness based on the standard deviation of a Laplacian convolution, discarding alpha channel if any. + * - `dominant`: Object containing most dominant sRGB colour based on a 4096-bin 3D histogram. + * + * **Note**: Statistics are derived from the original input image. Any operations performed on the image must first be + * written to a buffer in order to run `stats` on the result (see third example). + * + * @example + * const image = sharp(inputJpg); + * image + * .stats() + * .then(function(stats) { + * // stats contains the channel-wise statistics array and the isOpaque value + * }); + * + * @example + * const { entropy, sharpness, dominant } = await sharp(input).stats(); + * const { r, g, b } = dominant; + * + * @example + * const image = sharp(input); + * // store intermediate result + * const part = await image.extract(region).toBuffer(); + * // create new instance to obtain statistics of extracted region + * const stats = await sharp(part).stats(); + * + * @param {Function} [callback] - called with the arguments `(err, stats)` + * @returns {Promise} + */ +function stats (callback) { + const stack = Error(); + if (is.fn(callback)) { + if (this._isStreamInput()) { + this.on('finish', () => { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + }); + } else { + sharp.stats(this.options, (err, stats) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, stats); + } + }); + } + return this; + } else { + if (this._isStreamInput()) { + return new Promise((resolve, reject) => { + this.on('finish', function () { + this._flattenBufferIn(); + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + }); + } else { + return new Promise((resolve, reject) => { + sharp.stats(this.options, (err, stats) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + resolve(stats); + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with input-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Private + _inputOptionsFromObject, + _createInputDescriptor, + _write, + _flattenBufferIn, + _isStreamInput, + // Public + metadata, + stats + }); + // Class attributes + Sharp.align = align; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/is.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/is.js new file mode 100644 index 0000000..3ac9a1a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/is.js @@ -0,0 +1,143 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +/** + * Is this value defined and not null? + * @private + */ +const defined = (val) => typeof val !== 'undefined' && val !== null; + +/** + * Is this value an object? + * @private + */ +const object = (val) => typeof val === 'object'; + +/** + * Is this value a plain object? + * @private + */ +const plainObject = (val) => Object.prototype.toString.call(val) === '[object Object]'; + +/** + * Is this value a function? + * @private + */ +const fn = (val) => typeof val === 'function'; + +/** + * Is this value a boolean? + * @private + */ +const bool = (val) => typeof val === 'boolean'; + +/** + * Is this value a Buffer object? + * @private + */ +const buffer = (val) => val instanceof Buffer; + +/** + * Is this value a typed array object?. E.g. Uint8Array or Uint8ClampedArray? + * @private + */ +const typedArray = (val) => { + if (defined(val)) { + switch (val.constructor) { + case Uint8Array: + case Uint8ClampedArray: + case Int8Array: + case Uint16Array: + case Int16Array: + case Uint32Array: + case Int32Array: + case Float32Array: + case Float64Array: + return true; + } + } + + return false; +}; + +/** + * Is this value an ArrayBuffer object? + * @private + */ +const arrayBuffer = (val) => val instanceof ArrayBuffer; + +/** + * Is this value a non-empty string? + * @private + */ +const string = (val) => typeof val === 'string' && val.length > 0; + +/** + * Is this value a real number? + * @private + */ +const number = (val) => typeof val === 'number' && !Number.isNaN(val); + +/** + * Is this value an integer? + * @private + */ +const integer = (val) => Number.isInteger(val); + +/** + * Is this value within an inclusive given range? + * @private + */ +const inRange = (val, min, max) => val >= min && val <= max; + +/** + * Is this value within the elements of an array? + * @private + */ +const inArray = (val, list) => list.includes(val); + +/** + * Create an Error with a message relating to an invalid parameter. + * + * @param {string} name - parameter name. + * @param {string} expected - description of the type/value/range expected. + * @param {*} actual - the value received. + * @returns {Error} Containing the formatted message. + * @private + */ +const invalidParameterError = (name, expected, actual) => new Error( + `Expected ${expected} for ${name} but received ${actual} of type ${typeof actual}` + ); + +/** + * Ensures an Error from C++ contains a JS stack. + * + * @param {Error} native - Error with message from C++. + * @param {Error} context - Error with stack from JS. + * @returns {Error} Error with message and stack. + * @private + */ +const nativeError = (native, context) => { + context.message = native.message; + return context; +}; + +module.exports = { + defined, + object, + plainObject, + fn, + bool, + buffer, + typedArray, + arrayBuffer, + string, + number, + integer, + inRange, + inArray, + invalidParameterError, + nativeError +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/libvips.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/libvips.js new file mode 100644 index 0000000..881dc5c --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/libvips.js @@ -0,0 +1,207 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const { spawnSync } = require('node:child_process'); +const { createHash } = require('node:crypto'); +const semverCoerce = require('semver/functions/coerce'); +const semverGreaterThanOrEqualTo = require('semver/functions/gte'); +const semverSatisfies = require('semver/functions/satisfies'); +const detectLibc = require('detect-libc'); + +const { config, engines, optionalDependencies } = require('../package.json'); + +/* node:coverage ignore next */ +const minimumLibvipsVersionLabelled = process.env.npm_package_config_libvips || config.libvips; +const minimumLibvipsVersion = semverCoerce(minimumLibvipsVersionLabelled).version; + +const prebuiltPlatforms = [ + 'darwin-arm64', 'darwin-x64', + 'linux-arm', 'linux-arm64', 'linux-ppc64', 'linux-riscv64', 'linux-s390x', 'linux-x64', + 'linuxmusl-arm64', 'linuxmusl-x64', + 'win32-arm64', 'win32-ia32', 'win32-x64' +]; + +const spawnSyncOptions = { + encoding: 'utf8', + shell: true +}; + +const log = (item) => { + if (item instanceof Error) { + console.error(`sharp: Installation error: ${item.message}`); + } else { + console.log(`sharp: ${item}`); + } +}; + +/* node:coverage ignore next */ +const runtimeLibc = () => detectLibc.isNonGlibcLinuxSync() ? detectLibc.familySync() : ''; + +const runtimePlatformArch = () => `${process.platform}${runtimeLibc()}-${process.arch}`; + +const buildPlatformArch = () => { + /* node:coverage ignore next 3 */ + if (isEmscripten()) { + return 'wasm32'; + } + const { npm_config_arch, npm_config_platform, npm_config_libc } = process.env; + const libc = typeof npm_config_libc === 'string' ? npm_config_libc : runtimeLibc(); + return `${npm_config_platform || process.platform}${libc}-${npm_config_arch || process.arch}`; +}; + +const buildSharpLibvipsIncludeDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/include`); + } catch { + /* node:coverage ignore next 5 */ + try { + return require('@img/sharp-libvips-dev/include'); + } catch {} + } + return ''; +}; + +const buildSharpLibvipsCPlusPlusDir = () => { + /* node:coverage ignore next 4 */ + try { + return require('@img/sharp-libvips-dev/cplusplus'); + } catch {} + return ''; +}; + +const buildSharpLibvipsLibDir = () => { + try { + return require(`@img/sharp-libvips-dev-${buildPlatformArch()}/lib`); + } catch { + /* node:coverage ignore next 5 */ + try { + return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`); + } catch {} + } + return ''; +}; + +/* node:coverage disable */ + +const isUnsupportedNodeRuntime = () => { + if (process.release?.name === 'node' && process.versions) { + if (!semverSatisfies(process.versions.node, engines.node)) { + return { found: process.versions.node, expected: engines.node }; + } + } +}; + +const isEmscripten = () => { + const { CC } = process.env; + return Boolean(CC?.endsWith('/emcc')); +}; + +const isRosetta = () => { + if (process.platform === 'darwin' && process.arch === 'x64') { + const translated = spawnSync('sysctl sysctl.proc_translated', spawnSyncOptions).stdout; + return (translated || '').trim() === 'sysctl.proc_translated: 1'; + } + return false; +}; + +/* node:coverage enable */ + +const sha512 = (s) => createHash('sha512').update(s).digest('hex'); + +const yarnLocator = () => { + try { + const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`); + const npmVersion = semverCoerce(optionalDependencies[`@img/sharp-libvips-${buildPlatformArch()}`], { + includePrerelease: true + }).version; + return sha512(`${identHash}npm:${npmVersion}`).slice(0, 10); + } catch {} + return ''; +}; + +/* node:coverage disable */ + +const spawnRebuild = () => + spawnSync(`node-gyp rebuild --directory=src ${isEmscripten() ? '--nodedir=emscripten' : ''}`, { + ...spawnSyncOptions, + stdio: 'inherit' + }).status; + +const globalLibvipsVersion = () => { + if (process.platform !== 'win32') { + const globalLibvipsVersion = spawnSync('pkg-config --modversion vips-cpp', { + ...spawnSyncOptions, + env: { + ...process.env, + PKG_CONFIG_PATH: pkgConfigPath() + } + }).stdout; + return (globalLibvipsVersion || '').trim(); + } else { + return ''; + } +}; + +/* node:coverage enable */ + +const pkgConfigPath = () => { + if (process.platform !== 'win32') { + /* node:coverage ignore next 4 */ + const brewPkgConfigPath = spawnSync( + 'which brew >/dev/null 2>&1 && brew environment --plain | grep PKG_CONFIG_LIBDIR | cut -d" " -f2', + spawnSyncOptions + ).stdout || ''; + return [ + brewPkgConfigPath.trim(), + process.env.PKG_CONFIG_PATH, + '/usr/local/lib/pkgconfig', + '/usr/lib/pkgconfig', + '/usr/local/libdata/pkgconfig', + '/usr/libdata/pkgconfig' + ].filter(Boolean).join(':'); + } else { + return ''; + } +}; + +const skipSearch = (status, reason, logger) => { + if (logger) { + logger(`Detected ${reason}, skipping search for globally-installed libvips`); + } + return status; +}; + +const useGlobalLibvips = (logger) => { + if (Boolean(process.env.SHARP_IGNORE_GLOBAL_LIBVIPS) === true) { + return skipSearch(false, 'SHARP_IGNORE_GLOBAL_LIBVIPS', logger); + } + if (Boolean(process.env.SHARP_FORCE_GLOBAL_LIBVIPS) === true) { + return skipSearch(true, 'SHARP_FORCE_GLOBAL_LIBVIPS', logger); + } + /* node:coverage ignore next 3 */ + if (isRosetta()) { + return skipSearch(false, 'Rosetta', logger); + } + const globalVipsVersion = globalLibvipsVersion(); + /* node:coverage ignore next */ + return !!globalVipsVersion && semverGreaterThanOrEqualTo(globalVipsVersion, minimumLibvipsVersion); +}; + +module.exports = { + minimumLibvipsVersion, + prebuiltPlatforms, + buildPlatformArch, + buildSharpLibvipsIncludeDir, + buildSharpLibvipsCPlusPlusDir, + buildSharpLibvipsLibDir, + isUnsupportedNodeRuntime, + runtimePlatformArch, + log, + yarnLocator, + spawnRebuild, + globalLibvipsVersion, + pkgConfigPath, + useGlobalLibvips +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/operation.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/operation.js new file mode 100644 index 0000000..ebbf54e --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/operation.js @@ -0,0 +1,1016 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is'); + +/** + * How accurate an operation should be. + * @member + * @private + */ +const vipsPrecision = { + integer: 'integer', + float: 'float', + approximate: 'approximate' +}; + +/** + * Rotate the output image. + * + * The provided angle is converted to a valid positive degree rotation. + * For example, `-450` will produce a 270 degree rotation. + * + * When rotating by an angle other than a multiple of 90, + * the background colour can be provided with the `background` option. + * + * For backwards compatibility, if no angle is provided, `.autoOrient()` will be called. + * + * Only one rotation can occur per pipeline (aside from an initial call without + * arguments to orient via EXIF data). Previous calls to `rotate` in the same + * pipeline will be ignored. + * + * Multi-page images can only be rotated by 180 degrees. + * + * Method order is important when rotating, resizing and/or extracting regions, + * for example `.rotate(x).extract(y)` will produce a different result to `.extract(y).rotate(x)`. + * + * @example + * const rotateThenResize = await sharp(input) + * .rotate(90) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .toBuffer(); + * const resizeThenRotate = await sharp(input) + * .resize({ width: 16, height: 8, fit: 'fill' }) + * .rotate(90) + * .toBuffer(); + * + * @param {number} [angle=auto] angle of rotation. + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {string|Object} [options.background="#000000"] parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function rotate (angle, options) { + if (!is.defined(angle)) { + return this.autoOrient(); + } + if (this.options.angle || this.options.rotationAngle) { + this.options.debuglog('ignoring previous rotate options'); + this.options.angle = 0; + this.options.rotationAngle = 0; + } + if (is.integer(angle) && !(angle % 90)) { + this.options.angle = angle; + } else if (is.number(angle)) { + this.options.rotationAngle = angle; + if (is.object(options) && options.background) { + this._setBackgroundColourOption('rotationBackground', options.background); + } + } else { + throw is.invalidParameterError('angle', 'numeric', angle); + } + return this; +} + +/** + * Auto-orient based on the EXIF `Orientation` tag, then remove the tag. + * Mirroring is supported and may infer the use of a flip operation. + * + * Previous or subsequent use of `rotate(angle)` and either `flip()` or `flop()` + * will logically occur after auto-orientation, regardless of call order. + * + * @example + * const output = await sharp(input).autoOrient().toBuffer(); + * + * @example + * const pipeline = sharp() + * .autoOrient() + * .resize(null, 200) + * .toBuffer(function (err, outputBuffer, info) { + * // outputBuffer contains 200px high JPEG image data, + * // auto-oriented using EXIF Orientation tag + * // info.width and info.height contain the dimensions of the resized image + * }); + * readableStream.pipe(pipeline); + * + * @returns {Sharp} + */ +function autoOrient () { + this.options.input.autoOrient = true; + return this; +} + +/** + * Mirror the image vertically (up-down) about the x-axis. + * This always occurs before rotation, if any. + * + * This operation does not work correctly with multi-page images. + * + * @example + * const output = await sharp(input).flip().toBuffer(); + * + * @param {Boolean} [flip=true] + * @returns {Sharp} + */ +function flip (flip) { + this.options.flip = is.bool(flip) ? flip : true; + return this; +} + +/** + * Mirror the image horizontally (left-right) about the y-axis. + * This always occurs before rotation, if any. + * + * @example + * const output = await sharp(input).flop().toBuffer(); + * + * @param {Boolean} [flop=true] + * @returns {Sharp} + */ +function flop (flop) { + this.options.flop = is.bool(flop) ? flop : true; + return this; +} + +/** + * Perform an affine transform on an image. This operation will always occur after resizing, extraction and rotation, if any. + * + * You must provide an array of length 4 or a 2x2 affine transformation matrix. + * By default, new pixels are filled with a black background. You can provide a background colour with the `background` option. + * A particular interpolator may also be specified. Set the `interpolator` option to an attribute of the `sharp.interpolators` Object e.g. `sharp.interpolators.nohalo`. + * + * In the case of a 2x2 matrix, the transform is: + * - X = `matrix[0, 0]` \* (x + `idx`) + `matrix[0, 1]` \* (y + `idy`) + `odx` + * - Y = `matrix[1, 0]` \* (x + `idx`) + `matrix[1, 1]` \* (y + `idy`) + `ody` + * + * where: + * - x and y are the coordinates in input image. + * - X and Y are the coordinates in output image. + * - (0,0) is the upper left corner. + * + * @since 0.27.0 + * + * @example + * const pipeline = sharp() + * .affine([[1, 0.3], [0.1, 0.7]], { + * background: 'white', + * interpolator: sharp.interpolators.nohalo + * }) + * .toBuffer((err, outputBuffer, info) => { + * // outputBuffer contains the transformed image + * // info.width and info.height contain the new dimensions + * }); + * + * inputStream + * .pipe(pipeline); + * + * @param {Array>|Array} matrix - affine transformation matrix + * @param {Object} [options] - if present, is an Object with optional attributes. + * @param {String|Object} [options.background="#000000"] - parsed by the [color](https://www.npmjs.org/package/color) module to extract values for red, green, blue and alpha. + * @param {Number} [options.idx=0] - input horizontal offset + * @param {Number} [options.idy=0] - input vertical offset + * @param {Number} [options.odx=0] - output horizontal offset + * @param {Number} [options.ody=0] - output vertical offset + * @param {String} [options.interpolator=sharp.interpolators.bicubic] - interpolator + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function affine (matrix, options) { + const flatMatrix = [].concat(...matrix); + if (flatMatrix.length === 4 && flatMatrix.every(is.number)) { + this.options.affineMatrix = flatMatrix; + } else { + throw is.invalidParameterError('matrix', '1x4 or 2x2 array', matrix); + } + + if (is.defined(options)) { + if (is.object(options)) { + this._setBackgroundColourOption('affineBackground', options.background); + if (is.defined(options.idx)) { + if (is.number(options.idx)) { + this.options.affineIdx = options.idx; + } else { + throw is.invalidParameterError('options.idx', 'number', options.idx); + } + } + if (is.defined(options.idy)) { + if (is.number(options.idy)) { + this.options.affineIdy = options.idy; + } else { + throw is.invalidParameterError('options.idy', 'number', options.idy); + } + } + if (is.defined(options.odx)) { + if (is.number(options.odx)) { + this.options.affineOdx = options.odx; + } else { + throw is.invalidParameterError('options.odx', 'number', options.odx); + } + } + if (is.defined(options.ody)) { + if (is.number(options.ody)) { + this.options.affineOdy = options.ody; + } else { + throw is.invalidParameterError('options.ody', 'number', options.ody); + } + } + if (is.defined(options.interpolator)) { + if (is.inArray(options.interpolator, Object.values(this.constructor.interpolators))) { + this.options.affineInterpolator = options.interpolator; + } else { + throw is.invalidParameterError('options.interpolator', 'valid interpolator name', options.interpolator); + } + } + } else { + throw is.invalidParameterError('options', 'object', options); + } + } + + return this; +} + +/** + * Sharpen the image. + * + * When used without parameters, performs a fast, mild sharpen of the output image. + * + * When a `sigma` is provided, performs a slower, more accurate sharpen of the L channel in the LAB colour space. + * Fine-grained control over the level of sharpening in "flat" (m1) and "jagged" (m2) areas is available. + * + * See {@link https://www.libvips.org/API/current/method.Image.sharpen.html libvips sharpen} operation. + * + * @example + * const data = await sharp(input).sharpen().toBuffer(); + * + * @example + * const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer(); + * + * @example + * const data = await sharp(input) + * .sharpen({ + * sigma: 2, + * m1: 0, + * m2: 3, + * x1: 3, + * y2: 15, + * y3: 15, + * }) + * .toBuffer(); + * + * @param {Object|number} [options] - if present, is an Object with attributes + * @param {number} [options.sigma] - the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`, between 0.000001 and 10 + * @param {number} [options.m1=1.0] - the level of sharpening to apply to "flat" areas, between 0 and 1000000 + * @param {number} [options.m2=2.0] - the level of sharpening to apply to "jagged" areas, between 0 and 1000000 + * @param {number} [options.x1=2.0] - threshold between "flat" and "jagged", between 0 and 1000000 + * @param {number} [options.y2=10.0] - maximum amount of brightening, between 0 and 1000000 + * @param {number} [options.y3=20.0] - maximum amount of darkening, between 0 and 1000000 + * @param {number} [flat] - (deprecated) see `options.m1`. + * @param {number} [jagged] - (deprecated) see `options.m2`. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function sharpen (options, flat, jagged) { + if (!is.defined(options)) { + // No arguments: default to mild sharpen + this.options.sharpenSigma = -1; + } else if (is.bool(options)) { + // Deprecated boolean argument: apply mild sharpen? + this.options.sharpenSigma = options ? -1 : 0; + } else if (is.number(options) && is.inRange(options, 0.01, 10000)) { + // Deprecated numeric argument: specific sigma + this.options.sharpenSigma = options; + // Deprecated control over flat areas + if (is.defined(flat)) { + if (is.number(flat) && is.inRange(flat, 0, 10000)) { + this.options.sharpenM1 = flat; + } else { + throw is.invalidParameterError('flat', 'number between 0 and 10000', flat); + } + } + // Deprecated control over jagged areas + if (is.defined(jagged)) { + if (is.number(jagged) && is.inRange(jagged, 0, 10000)) { + this.options.sharpenM2 = jagged; + } else { + throw is.invalidParameterError('jagged', 'number between 0 and 10000', jagged); + } + } + } else if (is.plainObject(options)) { + if (is.number(options.sigma) && is.inRange(options.sigma, 0.000001, 10)) { + this.options.sharpenSigma = options.sigma; + } else { + throw is.invalidParameterError('options.sigma', 'number between 0.000001 and 10', options.sigma); + } + if (is.defined(options.m1)) { + if (is.number(options.m1) && is.inRange(options.m1, 0, 1000000)) { + this.options.sharpenM1 = options.m1; + } else { + throw is.invalidParameterError('options.m1', 'number between 0 and 1000000', options.m1); + } + } + if (is.defined(options.m2)) { + if (is.number(options.m2) && is.inRange(options.m2, 0, 1000000)) { + this.options.sharpenM2 = options.m2; + } else { + throw is.invalidParameterError('options.m2', 'number between 0 and 1000000', options.m2); + } + } + if (is.defined(options.x1)) { + if (is.number(options.x1) && is.inRange(options.x1, 0, 1000000)) { + this.options.sharpenX1 = options.x1; + } else { + throw is.invalidParameterError('options.x1', 'number between 0 and 1000000', options.x1); + } + } + if (is.defined(options.y2)) { + if (is.number(options.y2) && is.inRange(options.y2, 0, 1000000)) { + this.options.sharpenY2 = options.y2; + } else { + throw is.invalidParameterError('options.y2', 'number between 0 and 1000000', options.y2); + } + } + if (is.defined(options.y3)) { + if (is.number(options.y3) && is.inRange(options.y3, 0, 1000000)) { + this.options.sharpenY3 = options.y3; + } else { + throw is.invalidParameterError('options.y3', 'number between 0 and 1000000', options.y3); + } + } + } else { + throw is.invalidParameterError('sigma', 'number between 0.01 and 10000', options); + } + return this; +} + +/** + * Apply median filter. + * When used without parameters the default window is 3x3. + * + * @example + * const output = await sharp(input).median().toBuffer(); + * + * @example + * const output = await sharp(input).median(5).toBuffer(); + * + * @param {number} [size=3] square mask size: size x size + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function median (size) { + if (!is.defined(size)) { + // No arguments: default to 3x3 + this.options.medianSize = 3; + } else if (is.integer(size) && is.inRange(size, 1, 1000)) { + // Numeric argument: specific sigma + this.options.medianSize = size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 1000', size); + } + return this; +} + +/** + * Blur the image. + * + * When used without parameters, performs a fast 3x3 box blur (equivalent to a box linear filter). + * + * When a `sigma` is provided, performs a slower, more accurate Gaussian blur. + * + * @example + * const boxBlurred = await sharp(input) + * .blur() + * .toBuffer(); + * + * @example + * const gaussianBlurred = await sharp(input) + * .blur(5) + * .toBuffer(); + * + * @param {Object|number|Boolean} [options] + * @param {number} [options.sigma] a value between 0.3 and 1000 representing the sigma of the Gaussian mask, where `sigma = 1 + radius / 2`. + * @param {string} [options.precision='integer'] How accurate the operation should be, one of: integer, float, approximate. + * @param {number} [options.minAmplitude=0.2] A value between 0.001 and 1. A smaller value will generate a larger, more accurate mask. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function blur (options) { + let sigma; + if (is.number(options)) { + sigma = options; + } else if (is.plainObject(options)) { + if (!is.number(options.sigma)) { + throw is.invalidParameterError('options.sigma', 'number between 0.3 and 1000', sigma); + } + sigma = options.sigma; + if ('precision' in options) { + if (is.string(vipsPrecision[options.precision])) { + this.options.precision = vipsPrecision[options.precision]; + } else { + throw is.invalidParameterError('precision', 'one of: integer, float, approximate', options.precision); + } + } + if ('minAmplitude' in options) { + if (is.number(options.minAmplitude) && is.inRange(options.minAmplitude, 0.001, 1)) { + this.options.minAmpl = options.minAmplitude; + } else { + throw is.invalidParameterError('minAmplitude', 'number between 0.001 and 1', options.minAmplitude); + } + } + } + + if (!is.defined(options)) { + // No arguments: default to mild blur + this.options.blurSigma = -1; + } else if (is.bool(options)) { + // Boolean argument: apply mild blur? + this.options.blurSigma = options ? -1 : 0; + } else if (is.number(sigma) && is.inRange(sigma, 0.3, 1000)) { + // Numeric argument: specific sigma + this.options.blurSigma = sigma; + } else { + throw is.invalidParameterError('sigma', 'number between 0.3 and 1000', sigma); + } + + return this; +} + +/** + * Expand foreground objects using the dilate morphological operator. + * + * @example + * const output = await sharp(input) + * .dilate() + * .toBuffer(); + * + * @param {Number} [width=1] dilation width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function dilate (width) { + if (!is.defined(width)) { + this.options.dilateWidth = 1; + } else if (is.integer(width) && width > 0) { + this.options.dilateWidth = width; + } else { + throw is.invalidParameterError('dilate', 'positive integer', dilate); + } + return this; +} + +/** + * Shrink foreground objects using the erode morphological operator. + * + * @example + * const output = await sharp(input) + * .erode() + * .toBuffer(); + * + * @param {Number} [width=1] erosion width in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function erode (width) { + if (!is.defined(width)) { + this.options.erodeWidth = 1; + } else if (is.integer(width) && width > 0) { + this.options.erodeWidth = width; + } else { + throw is.invalidParameterError('erode', 'positive integer', erode); + } + return this; +} + +/** + * Merge alpha transparency channel, if any, with a background, then remove the alpha channel. + * + * See also {@link /api-channel#removealpha removeAlpha}. + * + * @example + * await sharp(rgbaInput) + * .flatten({ background: '#F0A703' }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background={r: 0, g: 0, b: 0}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black. + * @returns {Sharp} + */ +function flatten (options) { + this.options.flatten = is.bool(options) ? options : true; + if (is.object(options)) { + this._setBackgroundColourOption('flattenBackground', options.background); + } + return this; +} + +/** + * Ensure the image has an alpha channel + * with all white pixel values made fully transparent. + * + * Existing alpha channel values for non-white pixels remain unchanged. + * + * This feature is experimental and the API may change. + * + * @since 0.32.1 + * + * @example + * await sharp(rgbInput) + * .unflatten() + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .threshold(128, { grayscale: false }) // converter bright pixels to white + * .unflatten() + * .toBuffer(); + */ +function unflatten () { + this.options.unflatten = true; + return this; +} + +/** + * Apply a gamma correction by reducing the encoding (darken) pre-resize at a factor of `1/gamma` + * then increasing the encoding (brighten) post-resize at a factor of `gamma`. + * This can improve the perceived brightness of a resized image in non-linear colour spaces. + * JPEG and WebP input images will not take advantage of the shrink-on-load performance optimisation + * when applying a gamma correction. + * + * Supply a second argument to use a different output gamma value, otherwise the first value is used in both cases. + * + * @param {number} [gamma=2.2] value between 1.0 and 3.0. + * @param {number} [gammaOut] value between 1.0 and 3.0. (optional, defaults to same as `gamma`) + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function gamma (gamma, gammaOut) { + if (!is.defined(gamma)) { + // Default gamma correction of 2.2 (sRGB) + this.options.gamma = 2.2; + } else if (is.number(gamma) && is.inRange(gamma, 1, 3)) { + this.options.gamma = gamma; + } else { + throw is.invalidParameterError('gamma', 'number between 1.0 and 3.0', gamma); + } + if (!is.defined(gammaOut)) { + // Default gamma correction for output is same as input + this.options.gammaOut = this.options.gamma; + } else if (is.number(gammaOut) && is.inRange(gammaOut, 1, 3)) { + this.options.gammaOut = gammaOut; + } else { + throw is.invalidParameterError('gammaOut', 'number between 1.0 and 3.0', gammaOut); + } + return this; +} + +/** + * Produce the "negative" of the image. + * + * @example + * const output = await sharp(input) + * .negate() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .negate({ alpha: false }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {Boolean} [options.alpha=true] Whether or not to negate any alpha channel + * @returns {Sharp} + */ +function negate (options) { + this.options.negate = is.bool(options) ? options : true; + if (is.plainObject(options) && 'alpha' in options) { + if (!is.bool(options.alpha)) { + throw is.invalidParameterError('alpha', 'should be boolean value', options.alpha); + } else { + this.options.negateAlpha = options.alpha; + } + } + return this; +} + +/** + * Enhance output image contrast by stretching its luminance to cover a full dynamic range. + * + * Uses a histogram-based approach, taking a default range of 1% to 99% to reduce sensitivity to noise at the extremes. + * + * Luminance values below the `lower` percentile will be underexposed by clipping to zero. + * Luminance values above the `upper` percentile will be overexposed by clipping to the max pixel value. + * + * @example + * const output = await sharp(input) + * .normalise() + * .toBuffer(); + * + * @example + * const output = await sharp(input) + * .normalise({ lower: 0, upper: 100 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalise (options) { + if (is.plainObject(options)) { + if (is.defined(options.lower)) { + if (is.number(options.lower) && is.inRange(options.lower, 0, 99)) { + this.options.normaliseLower = options.lower; + } else { + throw is.invalidParameterError('lower', 'number between 0 and 99', options.lower); + } + } + if (is.defined(options.upper)) { + if (is.number(options.upper) && is.inRange(options.upper, 1, 100)) { + this.options.normaliseUpper = options.upper; + } else { + throw is.invalidParameterError('upper', 'number between 1 and 100', options.upper); + } + } + } + if (this.options.normaliseLower >= this.options.normaliseUpper) { + throw is.invalidParameterError('range', 'lower to be less than upper', + `${this.options.normaliseLower} >= ${this.options.normaliseUpper}`); + } + this.options.normalise = true; + return this; +} + +/** + * Alternative spelling of normalise. + * + * @example + * const output = await sharp(input) + * .normalize() + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.lower=1] - Percentile below which luminance values will be underexposed. + * @param {number} [options.upper=99] - Percentile above which luminance values will be overexposed. + * @returns {Sharp} + */ +function normalize (options) { + return this.normalise(options); +} + +/** + * Perform contrast limiting adaptive histogram equalization + * {@link https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE CLAHE}. + * + * This will, in general, enhance the clarity of the image by bringing out darker details. + * + * @since 0.28.3 + * + * @example + * const output = await sharp(input) + * .clahe({ + * width: 3, + * height: 3, + * }) + * .toBuffer(); + * + * @param {Object} options + * @param {number} options.width - Integral width of the search window, in pixels. + * @param {number} options.height - Integral height of the search window, in pixels. + * @param {number} [options.maxSlope=3] - Integral level of brightening, between 0 and 100, where 0 disables contrast limiting. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function clahe (options) { + if (is.plainObject(options)) { + if (is.integer(options.width) && options.width > 0) { + this.options.claheWidth = options.width; + } else { + throw is.invalidParameterError('width', 'integer greater than zero', options.width); + } + if (is.integer(options.height) && options.height > 0) { + this.options.claheHeight = options.height; + } else { + throw is.invalidParameterError('height', 'integer greater than zero', options.height); + } + if (is.defined(options.maxSlope)) { + if (is.integer(options.maxSlope) && is.inRange(options.maxSlope, 0, 100)) { + this.options.claheMaxSlope = options.maxSlope; + } else { + throw is.invalidParameterError('maxSlope', 'integer between 0 and 100', options.maxSlope); + } + } + } else { + throw is.invalidParameterError('options', 'plain object', options); + } + return this; +} + +/** + * Convolve the image with the specified kernel. + * + * @example + * sharp(input) + * .convolve({ + * width: 3, + * height: 3, + * kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1] + * }) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data representing the convolution + * // of the input image with the horizontal Sobel operator + * }); + * + * @param {Object} kernel + * @param {number} kernel.width - width of the kernel in pixels. + * @param {number} kernel.height - height of the kernel in pixels. + * @param {Array} kernel.kernel - Array of length `width*height` containing the kernel values. + * @param {number} [kernel.scale=sum] - the scale of the kernel in pixels. + * @param {number} [kernel.offset=0] - the offset of the kernel in pixels. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function convolve (kernel) { + if (!is.object(kernel) || !Array.isArray(kernel.kernel) || + !is.integer(kernel.width) || !is.integer(kernel.height) || + !is.inRange(kernel.width, 3, 1001) || !is.inRange(kernel.height, 3, 1001) || + kernel.height * kernel.width !== kernel.kernel.length + ) { + // must pass in a kernel + throw new Error('Invalid convolution kernel'); + } + // Default scale is sum of kernel values + if (!is.integer(kernel.scale)) { + kernel.scale = kernel.kernel.reduce((a, b) => a + b, 0); + } + // Clip scale to a minimum value of 1 + if (kernel.scale < 1) { + kernel.scale = 1; + } + if (!is.integer(kernel.offset)) { + kernel.offset = 0; + } + this.options.convKernel = kernel; + return this; +} + +/** + * Any pixel value greater than or equal to the threshold value will be set to 255, otherwise it will be set to 0. + * @param {number} [threshold=128] - a value in the range 0-255 representing the level at which the threshold will be applied. + * @param {Object} [options] + * @param {Boolean} [options.greyscale=true] - convert to single channel greyscale. + * @param {Boolean} [options.grayscale=true] - alternative spelling for greyscale. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function threshold (threshold, options) { + if (!is.defined(threshold)) { + this.options.threshold = 128; + } else if (is.bool(threshold)) { + this.options.threshold = threshold ? 128 : 0; + } else if (is.integer(threshold) && is.inRange(threshold, 0, 255)) { + this.options.threshold = threshold; + } else { + throw is.invalidParameterError('threshold', 'integer between 0 and 255', threshold); + } + if (!is.object(options) || options.greyscale === true || options.grayscale === true) { + this.options.thresholdGrayscale = true; + } else { + this.options.thresholdGrayscale = false; + } + return this; +} + +/** + * Perform a bitwise boolean operation with operand image. + * + * This operation creates an output image where each pixel is the result of + * the selected bitwise boolean `operation` between the corresponding pixels of the input images. + * + * @param {Buffer|string} operand - Buffer containing image data or string containing the path to an image file. + * @param {string} operator - one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively. + * @param {Object} [options] + * @param {Object} [options.raw] - describes operand when using raw pixel data. + * @param {number} [options.raw.width] + * @param {number} [options.raw.height] + * @param {number} [options.raw.channels] + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function boolean (operand, operator, options) { + this.options.boolean = this._createInputDescriptor(operand, options); + if (is.string(operator) && is.inArray(operator, ['and', 'or', 'eor'])) { + this.options.booleanOp = operator; + } else { + throw is.invalidParameterError('operator', 'one of: and, or, eor', operator); + } + return this; +} + +/** + * Apply the linear formula `a` * input + `b` to the image to adjust image levels. + * + * When a single number is provided, it will be used for all image channels. + * When an array of numbers is provided, the array length must match the number of channels. + * + * @example + * await sharp(input) + * .linear(0.5, 2) + * .toBuffer(); + * + * @example + * await sharp(rgbInput) + * .linear( + * [0.25, 0.5, 0.75], + * [150, 100, 50] + * ) + * .toBuffer(); + * + * @param {(number|number[])} [a=[]] multiplier + * @param {(number|number[])} [b=[]] offset + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function linear (a, b) { + if (!is.defined(a) && is.number(b)) { + a = 1.0; + } else if (is.number(a) && !is.defined(b)) { + b = 0.0; + } + if (!is.defined(a)) { + this.options.linearA = []; + } else if (is.number(a)) { + this.options.linearA = [a]; + } else if (Array.isArray(a) && a.length && a.every(is.number)) { + this.options.linearA = a; + } else { + throw is.invalidParameterError('a', 'number or array of numbers', a); + } + if (!is.defined(b)) { + this.options.linearB = []; + } else if (is.number(b)) { + this.options.linearB = [b]; + } else if (Array.isArray(b) && b.length && b.every(is.number)) { + this.options.linearB = b; + } else { + throw is.invalidParameterError('b', 'number or array of numbers', b); + } + if (this.options.linearA.length !== this.options.linearB.length) { + throw new Error('Expected a and b to be arrays of the same length'); + } + return this; +} + +/** + * Recombine the image with the specified matrix. + * + * @since 0.21.1 + * + * @example + * sharp(input) + * .recomb([ + * [0.3588, 0.7044, 0.1368], + * [0.2990, 0.5870, 0.1140], + * [0.2392, 0.4696, 0.0912], + * ]) + * .raw() + * .toBuffer(function(err, data, info) { + * // data contains the raw pixel data after applying the matrix + * // With this example input, a sepia filter has been applied + * }); + * + * @param {Array>} inputMatrix - 3x3 or 4x4 Recombination matrix + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function recomb (inputMatrix) { + if (!Array.isArray(inputMatrix)) { + throw is.invalidParameterError('inputMatrix', 'array', inputMatrix); + } + if (inputMatrix.length !== 3 && inputMatrix.length !== 4) { + throw is.invalidParameterError('inputMatrix', '3x3 or 4x4 array', inputMatrix.length); + } + const recombMatrix = inputMatrix.flat().map(Number); + if (recombMatrix.length !== 9 && recombMatrix.length !== 16) { + throw is.invalidParameterError('inputMatrix', 'cardinality of 9 or 16', recombMatrix.length); + } + this.options.recombMatrix = recombMatrix; + return this; +} + +/** + * Transforms the image using brightness, saturation, hue rotation, and lightness. + * Brightness and lightness both operate on luminance, with the difference being that + * brightness is multiplicative whereas lightness is additive. + * + * @since 0.22.1 + * + * @example + * // increase brightness by a factor of 2 + * const output = await sharp(input) + * .modulate({ + * brightness: 2 + * }) + * .toBuffer(); + * + * @example + * // hue-rotate by 180 degrees + * const output = await sharp(input) + * .modulate({ + * hue: 180 + * }) + * .toBuffer(); + * + * @example + * // increase lightness by +50 + * const output = await sharp(input) + * .modulate({ + * lightness: 50 + * }) + * .toBuffer(); + * + * @example + * // decrease brightness and saturation while also hue-rotating by 90 degrees + * const output = await sharp(input) + * .modulate({ + * brightness: 0.5, + * saturation: 0.5, + * hue: 90, + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.brightness] Brightness multiplier + * @param {number} [options.saturation] Saturation multiplier + * @param {number} [options.hue] Degrees for hue rotation + * @param {number} [options.lightness] Lightness addend + * @returns {Sharp} + */ +function modulate (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'plain object', options); + } + if ('brightness' in options) { + if (is.number(options.brightness) && options.brightness >= 0) { + this.options.brightness = options.brightness; + } else { + throw is.invalidParameterError('brightness', 'number above zero', options.brightness); + } + } + if ('saturation' in options) { + if (is.number(options.saturation) && options.saturation >= 0) { + this.options.saturation = options.saturation; + } else { + throw is.invalidParameterError('saturation', 'number above zero', options.saturation); + } + } + if ('hue' in options) { + if (is.integer(options.hue)) { + this.options.hue = options.hue % 360; + } else { + throw is.invalidParameterError('hue', 'number', options.hue); + } + } + if ('lightness' in options) { + if (is.number(options.lightness)) { + this.options.lightness = options.lightness; + } else { + throw is.invalidParameterError('lightness', 'number', options.lightness); + } + } + return this; +} + +/** + * Decorate the Sharp prototype with operation-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + autoOrient, + rotate, + flip, + flop, + affine, + sharpen, + erode, + dilate, + median, + blur, + flatten, + unflatten, + gamma, + negate, + normalise, + normalize, + clahe, + convolve, + threshold, + boolean, + linear, + recomb, + modulate + }); +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/output.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/output.js new file mode 100644 index 0000000..27a6ac4 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/output.js @@ -0,0 +1,1666 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const path = require('node:path'); +const is = require('./is'); +const sharp = require('./sharp'); + +const formats = new Map([ + ['heic', 'heif'], + ['heif', 'heif'], + ['avif', 'avif'], + ['jpeg', 'jpeg'], + ['jpg', 'jpeg'], + ['jpe', 'jpeg'], + ['tile', 'tile'], + ['dz', 'tile'], + ['png', 'png'], + ['raw', 'raw'], + ['tiff', 'tiff'], + ['tif', 'tiff'], + ['webp', 'webp'], + ['gif', 'gif'], + ['jp2', 'jp2'], + ['jpx', 'jp2'], + ['j2k', 'jp2'], + ['j2c', 'jp2'], + ['jxl', 'jxl'] +]); + +const jp2Regex = /\.(jp[2x]|j2[kc])$/i; + +const errJp2Save = () => new Error('JP2 output requires libvips with support for OpenJPEG'); + +const bitdepthFromColourCount = (colours) => 1 << 31 - Math.clz32(Math.ceil(Math.log2(colours))); + +/** + * Write output image data to a file. + * + * If an explicit output format is not selected, it will be inferred from the extension, + * with JPEG, PNG, WebP, AVIF, TIFF, GIF, DZI, and libvips' V format supported. + * Note that raw pixel data is only supported for buffer output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * The caller is responsible for ensuring directory structures and permissions exist. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * sharp(input) + * .toFile('output.png', (err, info) => { ... }); + * + * @example + * sharp(input) + * .toFile('output.png') + * .then(info => { ... }) + * .catch(err => { ... }); + * + * @param {string} fileOut - the path to write the image data to. + * @param {Function} [callback] - called on completion with two arguments `(err, info)`. + * `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * When using the attention crop strategy also contains `attentionX` and `attentionY`, the focal point of the cropped region. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * @returns {Promise} - when no callback is provided + * @throws {Error} Invalid parameters + */ +function toFile (fileOut, callback) { + let err; + if (!is.string(fileOut)) { + err = new Error('Missing output file path'); + } else if (is.string(this.options.input.file) && path.resolve(this.options.input.file) === path.resolve(fileOut)) { + err = new Error('Cannot use same file for input and output'); + } else if (jp2Regex.test(path.extname(fileOut)) && !this.constructor.format.jp2k.output.file) { + err = errJp2Save(); + } + if (err) { + if (is.fn(callback)) { + callback(err); + } else { + return Promise.reject(err); + } + } else { + this.options.fileOut = fileOut; + const stack = Error(); + return this._pipeline(callback, stack); + } + return this; +} + +/** + * Write output to a Buffer. + * JPEG, PNG, WebP, AVIF, TIFF, GIF and raw pixel data output are supported. + * + * Use {@link #toformat toFormat} or one of the format-specific functions such as {@link #jpeg jpeg}, {@link #png png} etc. to set the output format. + * + * If no explicit format is set, the output format will match the input image, except SVG input which becomes PNG output. + * + * By default all metadata will be removed, which includes EXIF-based orientation. + * See {@link #withmetadata withMetadata} for control over this. + * + * `callback`, if present, gets three arguments `(err, data, info)` where: + * - `err` is an error, if any. + * - `data` is the output image data. + * - `info` contains the output image `format`, `size` (bytes), `width`, `height`, + * `channels` and `premultiplied` (indicating if premultiplication was used). + * When using a crop strategy also contains `cropOffsetLeft` and `cropOffsetTop`. + * Animated output will also contain `pageHeight` and `pages`. + * May also contain `textAutofitDpi` (dpi the font was rendered at) if image was created from text. + * + * A `Promise` is returned when `callback` is not provided. + * + * @example + * sharp(input) + * .toBuffer((err, data, info) => { ... }); + * + * @example + * sharp(input) + * .toBuffer() + * .then(data => { ... }) + * .catch(err => { ... }); + * + * @example + * sharp(input) + * .png() + * .toBuffer({ resolveWithObject: true }) + * .then(({ data, info }) => { ... }) + * .catch(err => { ... }); + * + * @example + * const { data, info } = await sharp('my-image.jpg') + * // output the raw pixels + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * // create a more type safe way to work with the raw pixel data + * // this will not copy the data, instead it will change `data`s underlying ArrayBuffer + * // so `data` and `pixelArray` point to the same memory location + * const pixelArray = new Uint8ClampedArray(data.buffer); + * + * // When you are done changing the pixelArray, sharp takes the `pixelArray` as an input + * const { width, height, channels } = info; + * await sharp(pixelArray, { raw: { width, height, channels } }) + * .toFile('my-changed-image.jpg'); + * + * @param {Object} [options] + * @param {boolean} [options.resolveWithObject] Resolve the Promise with an Object containing `data` and `info` properties instead of resolving only with `data`. + * @param {Function} [callback] + * @returns {Promise} - when no callback is provided + */ +function toBuffer (options, callback) { + if (is.object(options)) { + this._setBooleanOption('resolveWithObject', options.resolveWithObject); + } else if (this.options.resolveWithObject) { + this.options.resolveWithObject = false; + } + this.options.fileOut = ''; + const stack = Error(); + return this._pipeline(is.fn(options) ? options : callback, stack); +} + +/** + * Keep all EXIF metadata from the input image in the output image. + * + * EXIF metadata is unsupported for TIFF output. + * + * @since 0.33.0 + * + * @example + * const outputWithExif = await sharp(inputWithExif) + * .keepExif() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepExif () { + this.options.keepMetadata |= 0b00001; + return this; +} + +/** + * Set EXIF metadata in the output image, ignoring any EXIF in the input image. + * + * @since 0.33.0 + * + * @example + * const dataWithExif = await sharp(input) + * .withExif({ + * IFD0: { + * Copyright: 'The National Gallery' + * }, + * IFD3: { + * GPSLatitudeRef: 'N', + * GPSLatitude: '51/1 30/1 3230/100', + * GPSLongitudeRef: 'W', + * GPSLongitude: '0/1 7/1 4366/100' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExif (exif) { + if (is.object(exif)) { + for (const [ifd, entries] of Object.entries(exif)) { + if (is.object(entries)) { + for (const [k, v] of Object.entries(entries)) { + if (is.string(v)) { + this.options.withExif[`exif-${ifd.toLowerCase()}-${k}`] = v; + } else { + throw is.invalidParameterError(`${ifd}.${k}`, 'string', v); + } + } + } else { + throw is.invalidParameterError(ifd, 'object', entries); + } + } + } else { + throw is.invalidParameterError('exif', 'object', exif); + } + this.options.withExifMerge = false; + return this.keepExif(); +} + +/** + * Update EXIF metadata from the input image in the output image. + * + * @since 0.33.0 + * + * @example + * const dataWithMergedExif = await sharp(inputWithExif) + * .withExifMerge({ + * IFD0: { + * Copyright: 'The National Gallery' + * } + * }) + * .toBuffer(); + * + * @param {Object>} exif Object keyed by IFD0, IFD1 etc. of key/value string pairs to write as EXIF data. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withExifMerge (exif) { + this.withExif(exif); + this.options.withExifMerge = true; + return this; +} + +/** + * Keep ICC profile from the input image in the output image. + * + * When input and output colour spaces differ, use with {@link /api-colour/#tocolourspace toColourspace} and optionally {@link /api-colour/#pipelinecolourspace pipelineColourspace}. + * + * @since 0.33.0 + * + * @example + * const outputWithIccProfile = await sharp(inputWithIccProfile) + * .keepIccProfile() + * .toBuffer(); + * + * @example + * const cmykOutputWithIccProfile = await sharp(cmykInputWithIccProfile) + * .pipelineColourspace('cmyk') + * .toColourspace('cmyk') + * .keepIccProfile() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepIccProfile () { + this.options.keepMetadata |= 0b01000; + return this; +} + +/** + * Transform using an ICC profile and attach to the output image. + * + * This can either be an absolute filesystem path or + * built-in profile name (`srgb`, `p3`, `cmyk`). + * + * @since 0.33.0 + * + * @example + * const outputWithP3 = await sharp(input) + * .withIccProfile('p3') + * .toBuffer(); + * + * @param {string} icc - Absolute filesystem path to output ICC profile or built-in profile name (srgb, p3, cmyk). + * @param {Object} [options] + * @param {number} [options.attach=true] Should the ICC profile be included in the output image metadata? + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withIccProfile (icc, options) { + if (is.string(icc)) { + this.options.withIccProfile = icc; + } else { + throw is.invalidParameterError('icc', 'string', icc); + } + this.keepIccProfile(); + if (is.object(options)) { + if (is.defined(options.attach)) { + if (is.bool(options.attach)) { + if (!options.attach) { + this.options.keepMetadata &= ~0b01000; + } + } else { + throw is.invalidParameterError('attach', 'boolean', options.attach); + } + } + } + return this; +} + +/** + * Keep XMP metadata from the input image in the output image. + * + * @since 0.34.3 + * + * @example + * const outputWithXmp = await sharp(inputWithXmp) + * .keepXmp() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepXmp () { + this.options.keepMetadata |= 0b00010; + return this; +} + +/** + * Set XMP metadata in the output image. + * + * Supported by PNG, JPEG, WebP, and TIFF output. + * + * @since 0.34.3 + * + * @example + * const xmpString = ` + * + * + * + * + * John Doe + * + * + * `; + * + * const data = await sharp(input) + * .withXmp(xmpString) + * .toBuffer(); + * + * @param {string} xmp String containing XMP metadata to be embedded in the output image. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withXmp (xmp) { + if (is.string(xmp) && xmp.length > 0) { + this.options.withXmp = xmp; + this.options.keepMetadata |= 0b00010; + } else { + throw is.invalidParameterError('xmp', 'non-empty string', xmp); + } + return this; +} + +/** + * Keep all metadata (EXIF, ICC, XMP, IPTC) from the input image in the output image. + * + * The default behaviour, when `keepMetadata` is not used, is to convert to the device-independent + * sRGB colour space and strip all metadata, including the removal of any ICC profile. + * + * @since 0.33.0 + * + * @example + * const outputWithMetadata = await sharp(inputWithMetadata) + * .keepMetadata() + * .toBuffer(); + * + * @returns {Sharp} + */ +function keepMetadata () { + this.options.keepMetadata = 0b11111; + return this; +} + +/** + * Keep most metadata (EXIF, XMP, IPTC) from the input image in the output image. + * + * This will also convert to and add a web-friendly sRGB ICC profile if appropriate. + * + * Allows orientation and density to be set or updated. + * + * @example + * const outputSrgbWithMetadata = await sharp(inputRgbWithMetadata) + * .withMetadata() + * .toBuffer(); + * + * @example + * // Set output metadata to 96 DPI + * const data = await sharp(input) + * .withMetadata({ density: 96 }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {number} [options.orientation] Used to update the EXIF `Orientation` tag, integer between 1 and 8. + * @param {number} [options.density] Number of pixels per inch (DPI). + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function withMetadata (options) { + this.keepMetadata(); + this.withIccProfile('srgb'); + if (is.object(options)) { + if (is.defined(options.orientation)) { + if (is.integer(options.orientation) && is.inRange(options.orientation, 1, 8)) { + this.options.withMetadataOrientation = options.orientation; + } else { + throw is.invalidParameterError('orientation', 'integer between 1 and 8', options.orientation); + } + } + if (is.defined(options.density)) { + if (is.number(options.density) && options.density > 0) { + this.options.withMetadataDensity = options.density; + } else { + throw is.invalidParameterError('density', 'positive number', options.density); + } + } + if (is.defined(options.icc)) { + this.withIccProfile(options.icc); + } + if (is.defined(options.exif)) { + this.withExifMerge(options.exif); + } + } + return this; +} + +/** + * Force output to a given format. + * + * @example + * // Convert any input to PNG output + * const data = await sharp(input) + * .toFormat('png') + * .toBuffer(); + * + * @param {(string|Object)} format - as a string or an Object with an 'id' attribute + * @param {Object} options - output options + * @returns {Sharp} + * @throws {Error} unsupported format or options + */ +function toFormat (format, options) { + const actualFormat = formats.get((is.object(format) && is.string(format.id) ? format.id : format).toLowerCase()); + if (!actualFormat) { + throw is.invalidParameterError('format', `one of: ${[...formats.keys()].join(', ')}`, format); + } + return this[actualFormat](options); +} + +/** + * Use these JPEG options for output image. + * + * @example + * // Convert any input to very high quality JPEG output + * const data = await sharp(input) + * .jpeg({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @example + * // Use mozjpeg to reduce output JPEG file size (slower) + * const data = await sharp(input) + * .jpeg({ mozjpeg: true }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {string} [options.chromaSubsampling='4:2:0'] - set to '4:4:4' to prevent chroma subsampling otherwise defaults to '4:2:0' chroma subsampling + * @param {boolean} [options.optimiseCoding=true] - optimise Huffman coding tables + * @param {boolean} [options.optimizeCoding=true] - alternative spelling of optimiseCoding + * @param {boolean} [options.mozjpeg=false] - use mozjpeg defaults, equivalent to `{ trellisQuantisation: true, overshootDeringing: true, optimiseScans: true, quantisationTable: 3 }` + * @param {boolean} [options.trellisQuantisation=false] - apply trellis quantisation + * @param {boolean} [options.overshootDeringing=false] - apply overshoot deringing + * @param {boolean} [options.optimiseScans=false] - optimise progressive scans, forces progressive + * @param {boolean} [options.optimizeScans=false] - alternative spelling of optimiseScans + * @param {number} [options.quantisationTable=0] - quantization table to use, integer 0-8 + * @param {number} [options.quantizationTable=0] - alternative spelling of quantisationTable + * @param {boolean} [options.force=true] - force JPEG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jpeg (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jpegQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.progressive)) { + this._setBooleanOption('jpegProgressive', options.progressive); + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jpegChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + const optimiseCoding = is.bool(options.optimizeCoding) ? options.optimizeCoding : options.optimiseCoding; + if (is.defined(optimiseCoding)) { + this._setBooleanOption('jpegOptimiseCoding', optimiseCoding); + } + if (is.defined(options.mozjpeg)) { + if (is.bool(options.mozjpeg)) { + if (options.mozjpeg) { + this.options.jpegTrellisQuantisation = true; + this.options.jpegOvershootDeringing = true; + this.options.jpegOptimiseScans = true; + this.options.jpegProgressive = true; + this.options.jpegQuantisationTable = 3; + } + } else { + throw is.invalidParameterError('mozjpeg', 'boolean', options.mozjpeg); + } + } + const trellisQuantisation = is.bool(options.trellisQuantization) ? options.trellisQuantization : options.trellisQuantisation; + if (is.defined(trellisQuantisation)) { + this._setBooleanOption('jpegTrellisQuantisation', trellisQuantisation); + } + if (is.defined(options.overshootDeringing)) { + this._setBooleanOption('jpegOvershootDeringing', options.overshootDeringing); + } + const optimiseScans = is.bool(options.optimizeScans) ? options.optimizeScans : options.optimiseScans; + if (is.defined(optimiseScans)) { + this._setBooleanOption('jpegOptimiseScans', optimiseScans); + if (optimiseScans) { + this.options.jpegProgressive = true; + } + } + const quantisationTable = is.number(options.quantizationTable) ? options.quantizationTable : options.quantisationTable; + if (is.defined(quantisationTable)) { + if (is.integer(quantisationTable) && is.inRange(quantisationTable, 0, 8)) { + this.options.jpegQuantisationTable = quantisationTable; + } else { + throw is.invalidParameterError('quantisationTable', 'integer between 0 and 8', quantisationTable); + } + } + } + return this._updateFormatOut('jpeg', options); +} + +/** + * Use these PNG options for output image. + * + * By default, PNG output is full colour at 8 bits per pixel. + * + * Indexed PNG input at 1, 2 or 4 bits per pixel is converted to 8 bits per pixel. + * Set `palette` to `true` for slower, indexed PNG output. + * + * For 16 bits per pixel output, convert to `rgb16` via + * {@link /api-colour/#tocolourspace toColourspace}. + * + * @example + * // Convert any input to full colour PNG output + * const data = await sharp(input) + * .png() + * .toBuffer(); + * + * @example + * // Convert any input to indexed PNG output (slower) + * const data = await sharp(input) + * .png({ palette: true }) + * .toBuffer(); + * + * @example + * // Output 16 bits per pixel RGB(A) + * const data = await sharp(input) + * .toColourspace('rgb16') + * .png() + * .toBuffer(); + * + * @param {Object} [options] + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.compressionLevel=6] - zlib compression level, 0 (fastest, largest) to 9 (slowest, smallest) + * @param {boolean} [options.adaptiveFiltering=false] - use adaptive row filtering + * @param {boolean} [options.palette=false] - quantise to a palette-based image with alpha transparency support + * @param {number} [options.quality=100] - use the lowest number of colours needed to achieve given quality, sets `palette` to `true` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest), sets `palette` to `true` + * @param {number} [options.colours=256] - maximum number of palette entries, sets `palette` to `true` + * @param {number} [options.colors=256] - alternative spelling of `options.colours`, sets `palette` to `true` + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, sets `palette` to `true` + * @param {boolean} [options.force=true] - force PNG output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function png (options) { + if (is.object(options)) { + if (is.defined(options.progressive)) { + this._setBooleanOption('pngProgressive', options.progressive); + } + if (is.defined(options.compressionLevel)) { + if (is.integer(options.compressionLevel) && is.inRange(options.compressionLevel, 0, 9)) { + this.options.pngCompressionLevel = options.compressionLevel; + } else { + throw is.invalidParameterError('compressionLevel', 'integer between 0 and 9', options.compressionLevel); + } + } + if (is.defined(options.adaptiveFiltering)) { + this._setBooleanOption('pngAdaptiveFiltering', options.adaptiveFiltering); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.pngBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.palette)) { + this._setBooleanOption('pngPalette', options.palette); + } else if ([options.quality, options.effort, options.colours, options.colors, options.dither].some(is.defined)) { + this._setBooleanOption('pngPalette', true); + } + if (this.options.pngPalette) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 0, 100)) { + this.options.pngQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 0 and 100', options.quality); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.pngEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.pngDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + } + } + return this._updateFormatOut('png', options); +} + +/** + * Use these WebP options for output image. + * + * @example + * // Convert any input to lossless WebP output + * const data = await sharp(input) + * .webp({ lossless: true }) + * .toBuffer(); + * + * @example + * // Optimise the file size of an animated WebP + * const outputWebp = await sharp(inputWebp, { animated: true }) + * .webp({ effort: 6 }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {number} [options.alphaQuality=100] - quality of alpha layer, integer 0-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {boolean} [options.nearLossless=false] - use near_lossless compression mode + * @param {boolean} [options.smartSubsample=false] - use high quality chroma subsampling + * @param {boolean} [options.smartDeblock=false] - auto-adjust the deblocking filter, can improve low contrast edges (slow) + * @param {string} [options.preset='default'] - named preset for preprocessing/filtering, one of: default, photo, picture, drawing, icon, text + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 6 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.minSize=false] - prevent use of animation key frames to minimise file size (slow) + * @param {boolean} [options.mixed=false] - allow mixture of lossy and lossless animation frames (slow) + * @param {boolean} [options.force=true] - force WebP output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function webp (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.webpQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.alphaQuality)) { + if (is.integer(options.alphaQuality) && is.inRange(options.alphaQuality, 0, 100)) { + this.options.webpAlphaQuality = options.alphaQuality; + } else { + throw is.invalidParameterError('alphaQuality', 'integer between 0 and 100', options.alphaQuality); + } + } + if (is.defined(options.lossless)) { + this._setBooleanOption('webpLossless', options.lossless); + } + if (is.defined(options.nearLossless)) { + this._setBooleanOption('webpNearLossless', options.nearLossless); + } + if (is.defined(options.smartSubsample)) { + this._setBooleanOption('webpSmartSubsample', options.smartSubsample); + } + if (is.defined(options.smartDeblock)) { + this._setBooleanOption('webpSmartDeblock', options.smartDeblock); + } + if (is.defined(options.preset)) { + if (is.string(options.preset) && is.inArray(options.preset, ['default', 'photo', 'picture', 'drawing', 'icon', 'text'])) { + this.options.webpPreset = options.preset; + } else { + throw is.invalidParameterError('preset', 'one of: default, photo, picture, drawing, icon, text', options.preset); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 6)) { + this.options.webpEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 6', options.effort); + } + } + if (is.defined(options.minSize)) { + this._setBooleanOption('webpMinSize', options.minSize); + } + if (is.defined(options.mixed)) { + this._setBooleanOption('webpMixed', options.mixed); + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('webp', options); +} + +/** + * Use these GIF options for the output image. + * + * The first entry in the palette is reserved for transparency. + * + * The palette of the input image will be re-used if possible. + * + * @since 0.30.0 + * + * @example + * // Convert PNG to GIF + * await sharp(pngBuffer) + * .gif() + * .toBuffer(); + * + * @example + * // Convert animated WebP to animated GIF + * await sharp('animated.webp', { animated: true }) + * .toFile('animated.gif'); + * + * @example + * // Create a 128x128, cropped, non-dithered, animated thumbnail of an animated GIF + * const out = await sharp('in.gif', { animated: true }) + * .resize({ width: 128, height: 128 }) + * .gif({ dither: 0 }) + * .toBuffer(); + * + * @example + * // Lossy file size reduction of animated GIF + * await sharp('in.gif', { animated: true }) + * .gif({ interFrameMaxError: 8 }) + * .toFile('optim.gif'); + * + * @param {Object} [options] - output options + * @param {boolean} [options.reuse=true] - re-use existing palette, otherwise generate new (slow) + * @param {boolean} [options.progressive=false] - use progressive (interlace) scan + * @param {number} [options.colours=256] - maximum number of palette entries, including transparency, between 2 and 256 + * @param {number} [options.colors=256] - alternative spelling of `options.colours` + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 10 (slowest) + * @param {number} [options.dither=1.0] - level of Floyd-Steinberg error diffusion, between 0 (least) and 1 (most) + * @param {number} [options.interFrameMaxError=0] - maximum inter-frame error for transparency, between 0 (lossless) and 32 + * @param {number} [options.interPaletteMaxError=3] - maximum inter-palette error for palette reuse, between 0 and 256 + * @param {boolean} [options.keepDuplicateFrames=false] - keep duplicate frames in the output instead of combining them + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @param {boolean} [options.force=true] - force GIF output, otherwise attempt to use input format + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function gif (options) { + if (is.object(options)) { + if (is.defined(options.reuse)) { + this._setBooleanOption('gifReuse', options.reuse); + } + if (is.defined(options.progressive)) { + this._setBooleanOption('gifProgressive', options.progressive); + } + const colours = options.colours || options.colors; + if (is.defined(colours)) { + if (is.integer(colours) && is.inRange(colours, 2, 256)) { + this.options.gifBitdepth = bitdepthFromColourCount(colours); + } else { + throw is.invalidParameterError('colours', 'integer between 2 and 256', colours); + } + } + if (is.defined(options.effort)) { + if (is.number(options.effort) && is.inRange(options.effort, 1, 10)) { + this.options.gifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 10', options.effort); + } + } + if (is.defined(options.dither)) { + if (is.number(options.dither) && is.inRange(options.dither, 0, 1)) { + this.options.gifDither = options.dither; + } else { + throw is.invalidParameterError('dither', 'number between 0.0 and 1.0', options.dither); + } + } + if (is.defined(options.interFrameMaxError)) { + if (is.number(options.interFrameMaxError) && is.inRange(options.interFrameMaxError, 0, 32)) { + this.options.gifInterFrameMaxError = options.interFrameMaxError; + } else { + throw is.invalidParameterError('interFrameMaxError', 'number between 0.0 and 32.0', options.interFrameMaxError); + } + } + if (is.defined(options.interPaletteMaxError)) { + if (is.number(options.interPaletteMaxError) && is.inRange(options.interPaletteMaxError, 0, 256)) { + this.options.gifInterPaletteMaxError = options.interPaletteMaxError; + } else { + throw is.invalidParameterError('interPaletteMaxError', 'number between 0.0 and 256.0', options.interPaletteMaxError); + } + } + if (is.defined(options.keepDuplicateFrames)) { + if (is.bool(options.keepDuplicateFrames)) { + this._setBooleanOption('gifKeepDuplicateFrames', options.keepDuplicateFrames); + } else { + throw is.invalidParameterError('keepDuplicateFrames', 'boolean', options.keepDuplicateFrames); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('gif', options); +} + +/** + * Use these JP2 options for output image. + * + * Requires libvips compiled with support for OpenJPEG. + * The prebuilt binaries do not include this - see + * {@link /install#custom-libvips installing a custom libvips}. + * + * @example + * // Convert any input to lossless JP2 output + * const data = await sharp(input) + * .jp2({ lossless: true }) + * .toBuffer(); + * + * @example + * // Convert any input to very high quality JP2 output + * const data = await sharp(input) + * .jp2({ + * quality: 100, + * chromaSubsampling: '4:4:4' + * }) + * .toBuffer(); + * + * @since 0.29.1 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression mode + * @param {number} [options.tileWidth=512] - horizontal tile size + * @param {number} [options.tileHeight=512] - vertical tile size + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jp2 (options) { + /* node:coverage ignore next 41 */ + if (!this.constructor.format.jp2k.output.buffer) { + throw errJp2Save(); + } + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.jp2Quality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jp2Lossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && is.inRange(options.tileWidth, 1, 32768)) { + this.options.jp2TileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer between 1 and 32768', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && is.inRange(options.tileHeight, 1, 32768)) { + this.options.jp2TileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer between 1 and 32768', options.tileHeight); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.jp2ChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + } + return this._updateFormatOut('jp2', options); +} + +/** + * Set animation options if available. + * @private + * + * @param {Object} [source] - output options + * @param {number} [source.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number[]} [source.delay] - list of delays between animation frames (in milliseconds) + * @param {Object} [target] - target object for valid options + * @throws {Error} Invalid options + */ +function trySetAnimationOptions (source, target) { + if (is.object(source) && is.defined(source.loop)) { + if (is.integer(source.loop) && is.inRange(source.loop, 0, 65535)) { + target.loop = source.loop; + } else { + throw is.invalidParameterError('loop', 'integer between 0 and 65535', source.loop); + } + } + if (is.object(source) && is.defined(source.delay)) { + // We allow singular values as well + if (is.integer(source.delay) && is.inRange(source.delay, 0, 65535)) { + target.delay = [source.delay]; + } else if ( + Array.isArray(source.delay) && + source.delay.every(is.integer) && + source.delay.every(v => is.inRange(v, 0, 65535))) { + target.delay = source.delay; + } else { + throw is.invalidParameterError('delay', 'integer or an array of integers between 0 and 65535', source.delay); + } + } +} + +/** + * Use these TIFF options for output image. + * + * The `density` can be set in pixels/inch via {@link #withmetadata withMetadata} + * instead of providing `xres` and `yres` in pixels/mm. + * + * @example + * // Convert SVG input to LZW-compressed, 1 bit per pixel TIFF output + * sharp('input.svg') + * .tiff({ + * compression: 'lzw', + * bitdepth: 1 + * }) + * .toFile('1-bpp-output.tiff') + * .then(info => { ... }); + * + * @param {Object} [options] - output options + * @param {number} [options.quality=80] - quality, integer 1-100 + * @param {boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format + * @param {string} [options.compression='jpeg'] - compression options: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k + * @param {boolean} [options.bigtiff=false] - use BigTIFF variant (has no effect when compression is none) + * @param {string} [options.predictor='horizontal'] - compression predictor options: none, horizontal, float + * @param {boolean} [options.pyramid=false] - write an image pyramid + * @param {boolean} [options.tile=false] - write a tiled tiff + * @param {number} [options.tileWidth=256] - horizontal tile size + * @param {number} [options.tileHeight=256] - vertical tile size + * @param {number} [options.xres=1.0] - horizontal resolution in pixels/mm + * @param {number} [options.yres=1.0] - vertical resolution in pixels/mm + * @param {string} [options.resolutionUnit='inch'] - resolution unit options: inch, cm + * @param {number} [options.bitdepth=8] - reduce bitdepth to 1, 2 or 4 bit + * @param {boolean} [options.miniswhite=false] - write 1-bit images as miniswhite + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function tiff (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.tiffQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [1, 2, 4, 8])) { + this.options.tiffBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '1, 2, 4 or 8', options.bitdepth); + } + } + // tiling + if (is.defined(options.tile)) { + this._setBooleanOption('tiffTile', options.tile); + } + if (is.defined(options.tileWidth)) { + if (is.integer(options.tileWidth) && options.tileWidth > 0) { + this.options.tiffTileWidth = options.tileWidth; + } else { + throw is.invalidParameterError('tileWidth', 'integer greater than zero', options.tileWidth); + } + } + if (is.defined(options.tileHeight)) { + if (is.integer(options.tileHeight) && options.tileHeight > 0) { + this.options.tiffTileHeight = options.tileHeight; + } else { + throw is.invalidParameterError('tileHeight', 'integer greater than zero', options.tileHeight); + } + } + // miniswhite + if (is.defined(options.miniswhite)) { + this._setBooleanOption('tiffMiniswhite', options.miniswhite); + } + // pyramid + if (is.defined(options.pyramid)) { + this._setBooleanOption('tiffPyramid', options.pyramid); + } + // resolution + if (is.defined(options.xres)) { + if (is.number(options.xres) && options.xres > 0) { + this.options.tiffXres = options.xres; + } else { + throw is.invalidParameterError('xres', 'number greater than zero', options.xres); + } + } + if (is.defined(options.yres)) { + if (is.number(options.yres) && options.yres > 0) { + this.options.tiffYres = options.yres; + } else { + throw is.invalidParameterError('yres', 'number greater than zero', options.yres); + } + } + // compression + if (is.defined(options.compression)) { + if (is.string(options.compression) && is.inArray(options.compression, ['none', 'jpeg', 'deflate', 'packbits', 'ccittfax4', 'lzw', 'webp', 'zstd', 'jp2k'])) { + this.options.tiffCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: none, jpeg, deflate, packbits, ccittfax4, lzw, webp, zstd, jp2k', options.compression); + } + } + // bigtiff + if (is.defined(options.bigtiff)) { + this._setBooleanOption('tiffBigtiff', options.bigtiff); + } + // predictor + if (is.defined(options.predictor)) { + if (is.string(options.predictor) && is.inArray(options.predictor, ['none', 'horizontal', 'float'])) { + this.options.tiffPredictor = options.predictor; + } else { + throw is.invalidParameterError('predictor', 'one of: none, horizontal, float', options.predictor); + } + } + // resolutionUnit + if (is.defined(options.resolutionUnit)) { + if (is.string(options.resolutionUnit) && is.inArray(options.resolutionUnit, ['inch', 'cm'])) { + this.options.tiffResolutionUnit = options.resolutionUnit; + } else { + throw is.invalidParameterError('resolutionUnit', 'one of: inch, cm', options.resolutionUnit); + } + } + } + return this._updateFormatOut('tiff', options); +} + +/** + * Use these AVIF options for output image. + * + * AVIF image sequences are not supported. + * Prebuilt binaries support a bitdepth of 8 only. + * + * This feature is experimental on the Windows ARM64 platform + * and requires a CPU with ARM64v8.4 or later. + * + * @example + * const data = await sharp(input) + * .avif({ effort: 2 }) + * .toBuffer(); + * + * @example + * const data = await sharp(input) + * .avif({ lossless: true }) + * .toBuffer(); + * + * @since 0.27.0 + * + * @param {Object} [options] - output options + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function avif (options) { + return this.heif({ ...options, compression: 'av1' }); +} + +/** + * Use these HEIF options for output image. + * + * Support for patent-encumbered HEIC images using `hevc` compression requires the use of a + * globally-installed libvips compiled with support for libheif, libde265 and x265. + * + * @example + * const data = await sharp(input) + * .heif({ compression: 'hevc' }) + * .toBuffer(); + * + * @since 0.23.0 + * + * @param {Object} options - output options + * @param {string} options.compression - compression format: av1, hevc + * @param {number} [options.quality=50] - quality, integer 1-100 + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=4] - CPU effort, between 0 (fastest) and 9 (slowest) + * @param {string} [options.chromaSubsampling='4:4:4'] - set to '4:2:0' to use chroma subsampling + * @param {number} [options.bitdepth=8] - set bitdepth to 8, 10 or 12 bit + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function heif (options) { + if (is.object(options)) { + if (is.string(options.compression) && is.inArray(options.compression, ['av1', 'hevc'])) { + this.options.heifCompression = options.compression; + } else { + throw is.invalidParameterError('compression', 'one of: av1, hevc', options.compression); + } + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + this.options.heifQuality = options.quality; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.heifLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 0, 9)) { + this.options.heifEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 0 and 9', options.effort); + } + } + if (is.defined(options.chromaSubsampling)) { + if (is.string(options.chromaSubsampling) && is.inArray(options.chromaSubsampling, ['4:2:0', '4:4:4'])) { + this.options.heifChromaSubsampling = options.chromaSubsampling; + } else { + throw is.invalidParameterError('chromaSubsampling', 'one of: 4:2:0, 4:4:4', options.chromaSubsampling); + } + } + if (is.defined(options.bitdepth)) { + if (is.integer(options.bitdepth) && is.inArray(options.bitdepth, [8, 10, 12])) { + if (options.bitdepth !== 8 && this.constructor.versions.heif) { + throw is.invalidParameterError('bitdepth when using prebuilt binaries', 8, options.bitdepth); + } + this.options.heifBitdepth = options.bitdepth; + } else { + throw is.invalidParameterError('bitdepth', '8, 10 or 12', options.bitdepth); + } + } + } else { + throw is.invalidParameterError('options', 'Object', options); + } + return this._updateFormatOut('heif', options); +} + +/** + * Use these JPEG-XL (JXL) options for output image. + * + * This feature is experimental, please do not use in production systems. + * + * Requires libvips compiled with support for libjxl. + * The prebuilt binaries do not include this - see + * {@link /install/#custom-libvips installing a custom libvips}. + * + * @since 0.31.3 + * + * @param {Object} [options] - output options + * @param {number} [options.distance=1.0] - maximum encoding error, between 0 (highest quality) and 15 (lowest quality) + * @param {number} [options.quality] - calculate `distance` based on JPEG-like quality, between 1 and 100, overrides distance if specified + * @param {number} [options.decodingTier=0] - target decode speed tier, between 0 (highest quality) and 4 (lowest quality) + * @param {boolean} [options.lossless=false] - use lossless compression + * @param {number} [options.effort=7] - CPU effort, between 1 (fastest) and 9 (slowest) + * @param {number} [options.loop=0] - number of animation iterations, use 0 for infinite animation + * @param {number|number[]} [options.delay] - delay(s) between animation frames (in milliseconds) + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function jxl (options) { + if (is.object(options)) { + if (is.defined(options.quality)) { + if (is.integer(options.quality) && is.inRange(options.quality, 1, 100)) { + // https://github.com/libjxl/libjxl/blob/0aeea7f180bafd6893c1db8072dcb67d2aa5b03d/tools/cjxl_main.cc#L640-L644 + this.options.jxlDistance = options.quality >= 30 + ? 0.1 + (100 - options.quality) * 0.09 + : 53 / 3000 * options.quality * options.quality - 23 / 20 * options.quality + 25; + } else { + throw is.invalidParameterError('quality', 'integer between 1 and 100', options.quality); + } + } else if (is.defined(options.distance)) { + if (is.number(options.distance) && is.inRange(options.distance, 0, 15)) { + this.options.jxlDistance = options.distance; + } else { + throw is.invalidParameterError('distance', 'number between 0.0 and 15.0', options.distance); + } + } + if (is.defined(options.decodingTier)) { + if (is.integer(options.decodingTier) && is.inRange(options.decodingTier, 0, 4)) { + this.options.jxlDecodingTier = options.decodingTier; + } else { + throw is.invalidParameterError('decodingTier', 'integer between 0 and 4', options.decodingTier); + } + } + if (is.defined(options.lossless)) { + if (is.bool(options.lossless)) { + this.options.jxlLossless = options.lossless; + } else { + throw is.invalidParameterError('lossless', 'boolean', options.lossless); + } + } + if (is.defined(options.effort)) { + if (is.integer(options.effort) && is.inRange(options.effort, 1, 9)) { + this.options.jxlEffort = options.effort; + } else { + throw is.invalidParameterError('effort', 'integer between 1 and 9', options.effort); + } + } + } + trySetAnimationOptions(options, this.options); + return this._updateFormatOut('jxl', options); +} + +/** + * Force output to be raw, uncompressed pixel data. + * Pixel ordering is left-to-right, top-to-bottom, without padding. + * Channel ordering will be RGB or RGBA for non-greyscale colourspaces. + * + * @example + * // Extract raw, unsigned 8-bit RGB pixel data from JPEG input + * const { data, info } = await sharp('input.jpg') + * .raw() + * .toBuffer({ resolveWithObject: true }); + * + * @example + * // Extract alpha channel as raw, unsigned 16-bit pixel data from PNG input + * const data = await sharp('input.png') + * .ensureAlpha() + * .extractChannel(3) + * .toColourspace('b-w') + * .raw({ depth: 'ushort' }) + * .toBuffer(); + * + * @param {Object} [options] - output options + * @param {string} [options.depth='uchar'] - bit depth, one of: char, uchar (default), short, ushort, int, uint, float, complex, double, dpcomplex + * @returns {Sharp} + * @throws {Error} Invalid options + */ +function raw (options) { + if (is.object(options)) { + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, + ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'float', 'complex', 'double', 'dpcomplex'] + )) { + this.options.rawDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: char, uchar, short, ushort, int, uint, float, complex, double, dpcomplex', options.depth); + } + } + } + return this._updateFormatOut('raw'); +} + +/** + * Use tile-based deep zoom (image pyramid) output. + * + * Set the format and options for tile images via the `toFormat`, `jpeg`, `png` or `webp` functions. + * Use a `.zip` or `.szi` file extension with `toFile` to write to a compressed archive file format. + * + * The container will be set to `zip` when the output is a Buffer or Stream, otherwise it will default to `fs`. + * + * @example + * sharp('input.tiff') + * .png() + * .tile({ + * size: 512 + * }) + * .toFile('output.dz', function(err, info) { + * // output.dzi is the Deep Zoom XML definition + * // output_files contains 512x512 tiles grouped by zoom level + * }); + * + * @example + * const zipFileWithTiles = await sharp(input) + * .tile({ basename: "tiles" }) + * .toBuffer(); + * + * @example + * const iiififier = sharp().tile({ layout: "iiif" }); + * readableStream + * .pipe(iiififier) + * .pipe(writeableStream); + * + * @param {Object} [options] + * @param {number} [options.size=256] tile size in pixels, a value between 1 and 8192. + * @param {number} [options.overlap=0] tile overlap in pixels, a value between 0 and 8192. + * @param {number} [options.angle=0] tile angle of rotation, must be a multiple of 90. + * @param {string|Object} [options.background={r: 255, g: 255, b: 255, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to white without transparency. + * @param {string} [options.depth] how deep to make the pyramid, possible values are `onepixel`, `onetile` or `one`, default based on layout. + * @param {number} [options.skipBlanks=-1] Threshold to skip tile generation. Range is 0-255 for 8-bit images, 0-65535 for 16-bit images. Default is 5 for `google` layout, -1 (no skip) otherwise. + * @param {string} [options.container='fs'] tile container, with value `fs` (filesystem) or `zip` (compressed file). + * @param {string} [options.layout='dz'] filesystem layout, possible values are `dz`, `iiif`, `iiif3`, `zoomify` or `google`. + * @param {boolean} [options.centre=false] centre image in tile. + * @param {boolean} [options.center=false] alternative spelling of centre. + * @param {string} [options.id='https://example.com/iiif'] when `layout` is `iiif`/`iiif3`, sets the `@id`/`id` attribute of `info.json` + * @param {string} [options.basename] the name of the directory within the zip file when container is `zip`. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function tile (options) { + if (is.object(options)) { + // Size of square tiles, in pixels + if (is.defined(options.size)) { + if (is.integer(options.size) && is.inRange(options.size, 1, 8192)) { + this.options.tileSize = options.size; + } else { + throw is.invalidParameterError('size', 'integer between 1 and 8192', options.size); + } + } + // Overlap of tiles, in pixels + if (is.defined(options.overlap)) { + if (is.integer(options.overlap) && is.inRange(options.overlap, 0, 8192)) { + if (options.overlap > this.options.tileSize) { + throw is.invalidParameterError('overlap', `<= size (${this.options.tileSize})`, options.overlap); + } + this.options.tileOverlap = options.overlap; + } else { + throw is.invalidParameterError('overlap', 'integer between 0 and 8192', options.overlap); + } + } + // Container + if (is.defined(options.container)) { + if (is.string(options.container) && is.inArray(options.container, ['fs', 'zip'])) { + this.options.tileContainer = options.container; + } else { + throw is.invalidParameterError('container', 'one of: fs, zip', options.container); + } + } + // Layout + if (is.defined(options.layout)) { + if (is.string(options.layout) && is.inArray(options.layout, ['dz', 'google', 'iiif', 'iiif3', 'zoomify'])) { + this.options.tileLayout = options.layout; + } else { + throw is.invalidParameterError('layout', 'one of: dz, google, iiif, iiif3, zoomify', options.layout); + } + } + // Angle of rotation, + if (is.defined(options.angle)) { + if (is.integer(options.angle) && !(options.angle % 90)) { + this.options.tileAngle = options.angle; + } else { + throw is.invalidParameterError('angle', 'positive/negative multiple of 90', options.angle); + } + } + // Background colour + this._setBackgroundColourOption('tileBackground', options.background); + // Depth of tiles + if (is.defined(options.depth)) { + if (is.string(options.depth) && is.inArray(options.depth, ['onepixel', 'onetile', 'one'])) { + this.options.tileDepth = options.depth; + } else { + throw is.invalidParameterError('depth', 'one of: onepixel, onetile, one', options.depth); + } + } + // Threshold to skip blank tiles + if (is.defined(options.skipBlanks)) { + if (is.integer(options.skipBlanks) && is.inRange(options.skipBlanks, -1, 65535)) { + this.options.tileSkipBlanks = options.skipBlanks; + } else { + throw is.invalidParameterError('skipBlanks', 'integer between -1 and 255/65535', options.skipBlanks); + } + } else if (is.defined(options.layout) && options.layout === 'google') { + this.options.tileSkipBlanks = 5; + } + // Center image in tile + const centre = is.bool(options.center) ? options.center : options.centre; + if (is.defined(centre)) { + this._setBooleanOption('tileCentre', centre); + } + // @id attribute for IIIF layout + if (is.defined(options.id)) { + if (is.string(options.id)) { + this.options.tileId = options.id; + } else { + throw is.invalidParameterError('id', 'string', options.id); + } + } + // Basename for zip container + if (is.defined(options.basename)) { + if (is.string(options.basename)) { + this.options.tileBasename = options.basename; + } else { + throw is.invalidParameterError('basename', 'string', options.basename); + } + } + } + // Format + if (is.inArray(this.options.formatOut, ['jpeg', 'png', 'webp'])) { + this.options.tileFormat = this.options.formatOut; + } else if (this.options.formatOut !== 'input') { + throw is.invalidParameterError('format', 'one of: jpeg, png, webp', this.options.formatOut); + } + return this._updateFormatOut('dz'); +} + +/** + * Set a timeout for processing, in seconds. + * Use a value of zero to continue processing indefinitely, the default behaviour. + * + * The clock starts when libvips opens an input image for processing. + * Time spent waiting for a libuv thread to become available is not included. + * + * @example + * // Ensure processing takes no longer than 3 seconds + * try { + * const data = await sharp(input) + * .blur(1000) + * .timeout({ seconds: 3 }) + * .toBuffer(); + * } catch (err) { + * if (err.message.includes('timeout')) { ... } + * } + * + * @since 0.29.2 + * + * @param {Object} options + * @param {number} options.seconds - Number of seconds after which processing will be stopped + * @returns {Sharp} + */ +function timeout (options) { + if (!is.plainObject(options)) { + throw is.invalidParameterError('options', 'object', options); + } + if (is.integer(options.seconds) && is.inRange(options.seconds, 0, 3600)) { + this.options.timeoutSeconds = options.seconds; + } else { + throw is.invalidParameterError('seconds', 'integer between 0 and 3600', options.seconds); + } + return this; +} + +/** + * Update the output format unless options.force is false, + * in which case revert to input format. + * @private + * @param {string} formatOut + * @param {Object} [options] + * @param {boolean} [options.force=true] - force output format, otherwise attempt to use input format + * @returns {Sharp} + */ +function _updateFormatOut (formatOut, options) { + if (!(is.object(options) && options.force === false)) { + this.options.formatOut = formatOut; + } + return this; +} + +/** + * Update a boolean attribute of the this.options Object. + * @private + * @param {string} key + * @param {boolean} val + * @throws {Error} Invalid key + */ +function _setBooleanOption (key, val) { + if (is.bool(val)) { + this.options[key] = val; + } else { + throw is.invalidParameterError(key, 'boolean', val); + } +} + +/** + * Called by a WriteableStream to notify us it is ready for data. + * @private + */ +function _read () { + if (!this.options.streamOut) { + this.options.streamOut = true; + const stack = Error(); + this._pipeline(undefined, stack); + } +} + +/** + * Invoke the C++ image processing pipeline + * Supports callback, stream and promise variants + * @private + */ +function _pipeline (callback, stack) { + if (typeof callback === 'function') { + // output=file/buffer + if (this._isStreamInput()) { + // output=file/buffer, input=stream + this.on('finish', () => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + }); + } else { + // output=file/buffer, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + callback(is.nativeError(err, stack)); + } else { + callback(null, data, info); + } + }); + } + return this; + } else if (this.options.streamOut) { + // output=stream + if (this._isStreamInput()) { + // output=stream, input=stream + this.once('finish', () => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + }); + if (this.streamInFinished) { + this.emit('finish'); + } + } else { + // output=stream, input=file/buffer + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + this.emit('error', is.nativeError(err, stack)); + } else { + this.emit('info', info); + this.push(data); + } + this.push(null); + this.on('end', () => this.emit('close')); + }); + } + return this; + } else { + // output=promise + if (this._isStreamInput()) { + // output=promise, input=stream + return new Promise((resolve, reject) => { + this.once('finish', () => { + this._flattenBufferIn(); + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + }); + } else { + // output=promise, input=file/buffer + return new Promise((resolve, reject) => { + sharp.pipeline(this.options, (err, data, info) => { + if (err) { + reject(is.nativeError(err, stack)); + } else { + if (this.options.resolveWithObject) { + resolve({ data, info }); + } else { + resolve(data); + } + } + }); + }); + } + } +} + +/** + * Decorate the Sharp prototype with output-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + // Public + toFile, + toBuffer, + keepExif, + withExif, + withExifMerge, + keepIccProfile, + withIccProfile, + keepXmp, + withXmp, + keepMetadata, + withMetadata, + toFormat, + jpeg, + jp2, + png, + webp, + tiff, + avif, + heif, + jxl, + gif, + raw, + tile, + timeout, + // Private + _updateFormatOut, + _setBooleanOption, + _read, + _pipeline + }); +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/resize.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/resize.js new file mode 100644 index 0000000..544fbba --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/resize.js @@ -0,0 +1,595 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const is = require('./is'); + +/** + * Weighting to apply when using contain/cover fit. + * @member + * @private + */ +const gravity = { + center: 0, + centre: 0, + north: 1, + east: 2, + south: 3, + west: 4, + northeast: 5, + southeast: 6, + southwest: 7, + northwest: 8 +}; + +/** + * Position to apply when using contain/cover fit. + * @member + * @private + */ +const position = { + top: 1, + right: 2, + bottom: 3, + left: 4, + 'right top': 5, + 'right bottom': 6, + 'left bottom': 7, + 'left top': 8 +}; + +/** + * How to extend the image. + * @member + * @private + */ +const extendWith = { + background: 'background', + copy: 'copy', + repeat: 'repeat', + mirror: 'mirror' +}; + +/** + * Strategies for automagic cover behaviour. + * @member + * @private + */ +const strategy = { + entropy: 16, + attention: 17 +}; + +/** + * Reduction kernels. + * @member + * @private + */ +const kernel = { + nearest: 'nearest', + linear: 'linear', + cubic: 'cubic', + mitchell: 'mitchell', + lanczos2: 'lanczos2', + lanczos3: 'lanczos3', + mks2013: 'mks2013', + mks2021: 'mks2021' +}; + +/** + * Methods by which an image can be resized to fit the provided dimensions. + * @member + * @private + */ +const fit = { + contain: 'contain', + cover: 'cover', + fill: 'fill', + inside: 'inside', + outside: 'outside' +}; + +/** + * Map external fit property to internal canvas property. + * @member + * @private + */ +const mapFitToCanvas = { + contain: 'embed', + cover: 'crop', + fill: 'ignore_aspect', + inside: 'max', + outside: 'min' +}; + +/** + * @private + */ +function isRotationExpected (options) { + return (options.angle % 360) !== 0 || options.rotationAngle !== 0; +} + +/** + * @private + */ +function isResizeExpected (options) { + return options.width !== -1 || options.height !== -1; +} + +/** + * Resize image to `width`, `height` or `width x height`. + * + * When both a `width` and `height` are provided, the possible methods by which the image should **fit** these are: + * - `cover`: (default) Preserving aspect ratio, attempt to ensure the image covers both provided dimensions by cropping/clipping to fit. + * - `contain`: Preserving aspect ratio, contain within both provided dimensions using "letterboxing" where necessary. + * - `fill`: Ignore the aspect ratio of the input and stretch to both provided dimensions. + * - `inside`: Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified. + * - `outside`: Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified. + * + * Some of these values are based on the [object-fit](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) CSS property. + * + * Examples of various values for the fit property when resizing + * + * When using a **fit** of `cover` or `contain`, the default **position** is `centre`. Other options are: + * - `sharp.position`: `top`, `right top`, `right`, `right bottom`, `bottom`, `left bottom`, `left`, `left top`. + * - `sharp.gravity`: `north`, `northeast`, `east`, `southeast`, `south`, `southwest`, `west`, `northwest`, `center` or `centre`. + * - `sharp.strategy`: `cover` only, dynamically crop using either the `entropy` or `attention` strategy. + * + * Some of these values are based on the [object-position](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) CSS property. + * + * The strategy-based approach initially resizes so one dimension is at its target length + * then repeatedly ranks edge regions, discarding the edge with the lowest score based on the selected strategy. + * - `entropy`: focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29). + * - `attention`: focus on the region with the highest luminance frequency, colour saturation and presence of skin tones. + * + * Possible downsizing kernels are: + * - `nearest`: Use [nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). + * - `linear`: Use a [triangle filter](https://en.wikipedia.org/wiki/Triangular_function). + * - `cubic`: Use a [Catmull-Rom spline](https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline). + * - `mitchell`: Use a [Mitchell-Netravali spline](https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf). + * - `lanczos2`: Use a [Lanczos kernel](https://en.wikipedia.org/wiki/Lanczos_resampling#Lanczos_kernel) with `a=2`. + * - `lanczos3`: Use a Lanczos kernel with `a=3` (the default). + * - `mks2013`: Use a [Magic Kernel Sharp](https://johncostella.com/magic/mks.pdf) 2013 kernel, as adopted by Facebook. + * - `mks2021`: Use a Magic Kernel Sharp 2021 kernel, with more accurate (reduced) sharpening than the 2013 version. + * + * When upsampling, these kernels map to `nearest`, `linear` and `cubic` interpolators. + * Downsampling kernels without a matching upsampling interpolator map to `cubic`. + * + * Only one resize can occur per pipeline. + * Previous calls to `resize` in the same pipeline will be ignored. + * + * @example + * sharp(input) + * .resize({ width: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels wide, auto-scaled height + * }); + * + * @example + * sharp(input) + * .resize({ height: 100 }) + * .toBuffer() + * .then(data => { + * // 100 pixels high, auto-scaled width + * }); + * + * @example + * sharp(input) + * .resize(200, 300, { + * kernel: sharp.kernel.nearest, + * fit: 'contain', + * position: 'right top', + * background: { r: 255, g: 255, b: 255, alpha: 0.5 } + * }) + * .toFile('output.png') + * .then(() => { + * // output.png is a 200 pixels wide and 300 pixels high image + * // containing a nearest-neighbour scaled version + * // contained within the north-east corner of a semi-transparent white canvas + * }); + * + * @example + * const transformer = sharp() + * .resize({ + * width: 200, + * height: 200, + * fit: sharp.fit.cover, + * position: sharp.strategy.entropy + * }); + * // Read image data from readableStream + * // Write 200px square auto-cropped image data to writableStream + * readableStream + * .pipe(transformer) + * .pipe(writableStream); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.inside, + * withoutEnlargement: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // no wider and no higher than 200 pixels + * // and no larger than the input image + * }); + * + * @example + * sharp(input) + * .resize(200, 200, { + * fit: sharp.fit.outside, + * withoutReduction: true + * }) + * .toFormat('jpeg') + * .toBuffer() + * .then(function(outputBuffer) { + * // outputBuffer contains JPEG image data + * // of at least 200 pixels wide and 200 pixels high while maintaining aspect ratio + * // and no smaller than the input image + * }); + * + * @example + * const scaleByHalf = await sharp(input) + * .metadata() + * .then(({ width }) => sharp(input) + * .resize(Math.round(width * 0.5)) + * .toBuffer() + * ); + * + * @param {number} [width] - How many pixels wide the resultant image should be. Use `null` or `undefined` to auto-scale the width to match the height. + * @param {number} [height] - How many pixels high the resultant image should be. Use `null` or `undefined` to auto-scale the height to match the width. + * @param {Object} [options] + * @param {number} [options.width] - An alternative means of specifying `width`. If both are present this takes priority. + * @param {number} [options.height] - An alternative means of specifying `height`. If both are present this takes priority. + * @param {String} [options.fit='cover'] - How the image should be resized/cropped to fit the target dimension(s), one of `cover`, `contain`, `fill`, `inside` or `outside`. + * @param {String} [options.position='centre'] - A position, gravity or strategy to use when `fit` is `cover` or `contain`. + * @param {String|Object} [options.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour when `fit` is `contain`, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @param {String} [options.kernel='lanczos3'] - The kernel to use for image reduction and the inferred interpolator to use for upsampling. Use the `fastShrinkOnLoad` option to control kernel vs shrink-on-load. + * @param {Boolean} [options.withoutEnlargement=false] - Do not scale up if the width *or* height are already less than the target dimensions, equivalent to GraphicsMagick's `>` geometry option. This may result in output dimensions smaller than the target dimensions. + * @param {Boolean} [options.withoutReduction=false] - Do not scale down if the width *or* height are already greater than the target dimensions, equivalent to GraphicsMagick's `<` geometry option. This may still result in a crop to reach the target dimensions. + * @param {Boolean} [options.fastShrinkOnLoad=true] - Take greater advantage of the JPEG and WebP shrink-on-load feature, which can lead to a slight moiré pattern or round-down of an auto-scaled dimension. + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function resize (widthOrOptions, height, options) { + if (isResizeExpected(this.options)) { + this.options.debuglog('ignoring previous resize options'); + } + if (this.options.widthPost !== -1) { + this.options.debuglog('operation order will be: extract, resize, extract'); + } + if (is.defined(widthOrOptions)) { + if (is.object(widthOrOptions) && !is.defined(options)) { + options = widthOrOptions; + } else if (is.integer(widthOrOptions) && widthOrOptions > 0) { + this.options.width = widthOrOptions; + } else { + throw is.invalidParameterError('width', 'positive integer', widthOrOptions); + } + } else { + this.options.width = -1; + } + if (is.defined(height)) { + if (is.integer(height) && height > 0) { + this.options.height = height; + } else { + throw is.invalidParameterError('height', 'positive integer', height); + } + } else { + this.options.height = -1; + } + if (is.object(options)) { + // Width + if (is.defined(options.width)) { + if (is.integer(options.width) && options.width > 0) { + this.options.width = options.width; + } else { + throw is.invalidParameterError('width', 'positive integer', options.width); + } + } + // Height + if (is.defined(options.height)) { + if (is.integer(options.height) && options.height > 0) { + this.options.height = options.height; + } else { + throw is.invalidParameterError('height', 'positive integer', options.height); + } + } + // Fit + if (is.defined(options.fit)) { + const canvas = mapFitToCanvas[options.fit]; + if (is.string(canvas)) { + this.options.canvas = canvas; + } else { + throw is.invalidParameterError('fit', 'valid fit', options.fit); + } + } + // Position + if (is.defined(options.position)) { + const pos = is.integer(options.position) + ? options.position + : strategy[options.position] || position[options.position] || gravity[options.position]; + if (is.integer(pos) && (is.inRange(pos, 0, 8) || is.inRange(pos, 16, 17))) { + this.options.position = pos; + } else { + throw is.invalidParameterError('position', 'valid position/gravity/strategy', options.position); + } + } + // Background + this._setBackgroundColourOption('resizeBackground', options.background); + // Kernel + if (is.defined(options.kernel)) { + if (is.string(kernel[options.kernel])) { + this.options.kernel = kernel[options.kernel]; + } else { + throw is.invalidParameterError('kernel', 'valid kernel name', options.kernel); + } + } + // Without enlargement + if (is.defined(options.withoutEnlargement)) { + this._setBooleanOption('withoutEnlargement', options.withoutEnlargement); + } + // Without reduction + if (is.defined(options.withoutReduction)) { + this._setBooleanOption('withoutReduction', options.withoutReduction); + } + // Shrink on load + if (is.defined(options.fastShrinkOnLoad)) { + this._setBooleanOption('fastShrinkOnLoad', options.fastShrinkOnLoad); + } + } + if (isRotationExpected(this.options) && isResizeExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Extend / pad / extrude one or more edges of the image with either + * the provided background colour or pixels derived from the image. + * This operation will always occur after resizing and extraction, if any. + * + * @example + * // Resize to 140 pixels wide, then add 10 transparent pixels + * // to the top, left and right edges and 20 to the bottom edge + * sharp(input) + * .resize(140) + * .extend({ + * top: 10, + * bottom: 20, + * left: 10, + * right: 10, + * background: { r: 0, g: 0, b: 0, alpha: 0 } + * }) + * ... + * +* @example + * // Add a row of 10 red pixels to the bottom + * sharp(input) + * .extend({ + * bottom: 10, + * background: 'red' + * }) + * ... + * + * @example + * // Extrude image by 8 pixels to the right, mirroring existing right hand edge + * sharp(input) + * .extend({ + * right: 8, + * background: 'mirror' + * }) + * ... + * + * @param {(number|Object)} extend - single pixel count to add to all edges or an Object with per-edge counts + * @param {number} [extend.top=0] + * @param {number} [extend.left=0] + * @param {number} [extend.bottom=0] + * @param {number} [extend.right=0] + * @param {String} [extend.extendWith='background'] - populate new pixels using this method, one of: background, copy, repeat, mirror. + * @param {String|Object} [extend.background={r: 0, g: 0, b: 0, alpha: 1}] - background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to black without transparency. + * @returns {Sharp} + * @throws {Error} Invalid parameters +*/ +function extend (extend) { + if (is.integer(extend) && extend > 0) { + this.options.extendTop = extend; + this.options.extendBottom = extend; + this.options.extendLeft = extend; + this.options.extendRight = extend; + } else if (is.object(extend)) { + if (is.defined(extend.top)) { + if (is.integer(extend.top) && extend.top >= 0) { + this.options.extendTop = extend.top; + } else { + throw is.invalidParameterError('top', 'positive integer', extend.top); + } + } + if (is.defined(extend.bottom)) { + if (is.integer(extend.bottom) && extend.bottom >= 0) { + this.options.extendBottom = extend.bottom; + } else { + throw is.invalidParameterError('bottom', 'positive integer', extend.bottom); + } + } + if (is.defined(extend.left)) { + if (is.integer(extend.left) && extend.left >= 0) { + this.options.extendLeft = extend.left; + } else { + throw is.invalidParameterError('left', 'positive integer', extend.left); + } + } + if (is.defined(extend.right)) { + if (is.integer(extend.right) && extend.right >= 0) { + this.options.extendRight = extend.right; + } else { + throw is.invalidParameterError('right', 'positive integer', extend.right); + } + } + this._setBackgroundColourOption('extendBackground', extend.background); + if (is.defined(extend.extendWith)) { + if (is.string(extendWith[extend.extendWith])) { + this.options.extendWith = extendWith[extend.extendWith]; + } else { + throw is.invalidParameterError('extendWith', 'one of: background, copy, repeat, mirror', extend.extendWith); + } + } + } else { + throw is.invalidParameterError('extend', 'integer or object', extend); + } + return this; +} + +/** + * Extract/crop a region of the image. + * + * - Use `extract` before `resize` for pre-resize extraction. + * - Use `extract` after `resize` for post-resize extraction. + * - Use `extract` twice and `resize` once for extract-then-resize-then-extract in a fixed operation order. + * + * @example + * sharp(input) + * .extract({ left: left, top: top, width: width, height: height }) + * .toFile(output, function(err) { + * // Extract a region of the input image, saving in the same format. + * }); + * @example + * sharp(input) + * .extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre }) + * .resize(width, height) + * .extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost }) + * .toFile(output, function(err) { + * // Extract a region, resize, then extract from the resized image + * }); + * + * @param {Object} options - describes the region to extract using integral pixel values + * @param {number} options.left - zero-indexed offset from left edge + * @param {number} options.top - zero-indexed offset from top edge + * @param {number} options.width - width of region to extract + * @param {number} options.height - height of region to extract + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function extract (options) { + const suffix = isResizeExpected(this.options) || this.options.widthPre !== -1 ? 'Post' : 'Pre'; + if (this.options[`width${suffix}`] !== -1) { + this.options.debuglog('ignoring previous extract options'); + } + ['left', 'top', 'width', 'height'].forEach(function (name) { + const value = options[name]; + if (is.integer(value) && value >= 0) { + this.options[name + (name === 'left' || name === 'top' ? 'Offset' : '') + suffix] = value; + } else { + throw is.invalidParameterError(name, 'integer', value); + } + }, this); + // Ensure existing rotation occurs before pre-resize extraction + if (isRotationExpected(this.options) && !isResizeExpected(this.options)) { + if (this.options.widthPre === -1 || this.options.widthPost === -1) { + this.options.rotateBefore = true; + } + } + if (this.options.input.autoOrient) { + this.options.orientBefore = true; + } + return this; +} + +/** + * Trim pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel. + * + * Images with an alpha channel will use the combined bounding box of alpha and non-alpha channels. + * + * If the result of this operation would trim an image to nothing then no change is made. + * + * The `info` response Object will contain `trimOffsetLeft` and `trimOffsetTop` properties. + * + * @example + * // Trim pixels with a colour similar to that of the top-left pixel. + * await sharp(input) + * .trim() + * .toFile(output); + * + * @example + * // Trim pixels with the exact same colour as that of the top-left pixel. + * await sharp(input) + * .trim({ + * threshold: 0 + * }) + * .toFile(output); + * + * @example + * // Assume input is line art and trim only pixels with a similar colour to red. + * const output = await sharp(input) + * .trim({ + * background: "#FF0000", + * lineArt: true + * }) + * .toBuffer(); + * + * @example + * // Trim all "yellow-ish" pixels, being more lenient with the higher threshold. + * const output = await sharp(input) + * .trim({ + * background: "yellow", + * threshold: 42, + * }) + * .toBuffer(); + * + * @param {Object} [options] + * @param {string|Object} [options.background='top-left pixel'] - Background colour, parsed by the [color](https://www.npmjs.org/package/color) module, defaults to that of the top-left pixel. + * @param {number} [options.threshold=10] - Allowed difference from the above colour, a positive number. + * @param {boolean} [options.lineArt=false] - Does the input more closely resemble line art (e.g. vector) rather than being photographic? + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function trim (options) { + this.options.trimThreshold = 10; + if (is.defined(options)) { + if (is.object(options)) { + if (is.defined(options.background)) { + this._setBackgroundColourOption('trimBackground', options.background); + } + if (is.defined(options.threshold)) { + if (is.number(options.threshold) && options.threshold >= 0) { + this.options.trimThreshold = options.threshold; + } else { + throw is.invalidParameterError('threshold', 'positive number', options.threshold); + } + } + if (is.defined(options.lineArt)) { + this._setBooleanOption('trimLineArt', options.lineArt); + } + } else { + throw is.invalidParameterError('trim', 'object', options); + } + } + if (isRotationExpected(this.options)) { + this.options.rotateBefore = true; + } + return this; +} + +/** + * Decorate the Sharp prototype with resize-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Object.assign(Sharp.prototype, { + resize, + extend, + extract, + trim + }); + // Class attributes + Sharp.gravity = gravity; + Sharp.strategy = strategy; + Sharp.kernel = kernel; + Sharp.fit = fit; + Sharp.position = position; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/sharp.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/sharp.js new file mode 100644 index 0000000..1081c93 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/sharp.js @@ -0,0 +1,121 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +// Inspects the runtime environment and exports the relevant sharp.node binary + +const { familySync, versionSync } = require('detect-libc'); + +const { runtimePlatformArch, isUnsupportedNodeRuntime, prebuiltPlatforms, minimumLibvipsVersion } = require('./libvips'); +const runtimePlatform = runtimePlatformArch(); + +const paths = [ + `../src/build/Release/sharp-${runtimePlatform}.node`, + '../src/build/Release/sharp-wasm32.node', + `@img/sharp-${runtimePlatform}/sharp.node`, + '@img/sharp-wasm32/sharp.node' +]; + +/* node:coverage disable */ + +let path, sharp; +const errors = []; +for (path of paths) { + try { + sharp = require(path); + break; + } catch (err) { + errors.push(err); + } +} + +if (sharp && path.startsWith('@img/sharp-linux-x64') && !sharp._isUsingX64V2()) { + const err = new Error('Prebuilt binaries for linux-x64 require v2 microarchitecture'); + err.code = 'Unsupported CPU'; + errors.push(err); + sharp = null; +} + +if (sharp) { + module.exports = sharp; +} else { + const [isLinux, isMacOs, isWindows] = ['linux', 'darwin', 'win32'].map(os => runtimePlatform.startsWith(os)); + + const help = [`Could not load the "sharp" module using the ${runtimePlatform} runtime`]; + errors.forEach(err => { + if (err.code !== 'MODULE_NOT_FOUND') { + help.push(`${err.code}: ${err.message}`); + } + }); + const messages = errors.map(err => err.message).join(' '); + help.push('Possible solutions:'); + // Common error messages + if (isUnsupportedNodeRuntime()) { + const { found, expected } = isUnsupportedNodeRuntime(); + help.push( + '- Please upgrade Node.js:', + ` Found ${found}`, + ` Requires ${expected}` + ); + } else if (prebuiltPlatforms.includes(runtimePlatform)) { + const [os, cpu] = runtimePlatform.split('-'); + const libc = os.endsWith('musl') ? ' --libc=musl' : ''; + help.push( + '- Ensure optional dependencies can be installed:', + ' npm install --include=optional sharp', + '- Ensure your package manager supports multi-platform installation:', + ' See https://sharp.pixelplumbing.com/install#cross-platform', + '- Add platform-specific dependencies:', + ` npm install --os=${os.replace('musl', '')}${libc} --cpu=${cpu} sharp` + ); + } else { + help.push( + `- Manually install libvips >= ${minimumLibvipsVersion}`, + '- Add experimental WebAssembly-based dependencies:', + ' npm install --cpu=wasm32 sharp', + ' npm install @img/sharp-wasm32' + ); + } + if (isLinux && /(symbol not found|CXXABI_)/i.test(messages)) { + try { + const { config } = require(`@img/sharp-libvips-${runtimePlatform}/package`); + const libcFound = `${familySync()} ${versionSync()}`; + const libcRequires = `${config.musl ? 'musl' : 'glibc'} ${config.musl || config.glibc}`; + help.push( + '- Update your OS:', + ` Found ${libcFound}`, + ` Requires ${libcRequires}` + ); + } catch (_errEngines) {} + } + if (isLinux && /\/snap\/core[0-9]{2}/.test(messages)) { + help.push( + '- Remove the Node.js Snap, which does not support native modules', + ' snap remove node' + ); + } + if (isMacOs && /Incompatible library version/.test(messages)) { + help.push( + '- Update Homebrew:', + ' brew update && brew upgrade vips' + ); + } + if (errors.some(err => err.code === 'ERR_DLOPEN_DISABLED')) { + help.push('- Run Node.js without using the --no-addons flag'); + } + // Link to installation docs + if (isWindows && /The specified procedure could not be found/.test(messages)) { + help.push( + '- Using the canvas package on Windows?', + ' See https://sharp.pixelplumbing.com/install#canvas-and-windows', + '- Check for outdated versions of sharp in the dependency tree:', + ' npm ls sharp' + ); + } + help.push( + '- Consult the installation documentation:', + ' See https://sharp.pixelplumbing.com/install' + ); + throw new Error(help.join('\n')); +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/lib/utility.js b/01_3D-Druck/gemini/build/node_modules/sharp/lib/utility.js new file mode 100644 index 0000000..c0ad39f --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/lib/utility.js @@ -0,0 +1,291 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +const events = require('node:events'); +const detectLibc = require('detect-libc'); + +const is = require('./is'); +const { runtimePlatformArch } = require('./libvips'); +const sharp = require('./sharp'); + +const runtimePlatform = runtimePlatformArch(); +const libvipsVersion = sharp.libvipsVersion(); + +/** + * An Object containing nested boolean values representing the available input and output formats/methods. + * @member + * @example + * console.log(sharp.format); + * @returns {Object} + */ +const format = sharp.format(); +format.heif.output.alias = ['avif', 'heic']; +format.jpeg.output.alias = ['jpe', 'jpg']; +format.tiff.output.alias = ['tif']; +format.jp2k.output.alias = ['j2c', 'j2k', 'jp2', 'jpx']; + +/** + * An Object containing the available interpolators and their proper values + * @readonly + * @enum {string} + */ +const interpolators = { + /** [Nearest neighbour interpolation](http://en.wikipedia.org/wiki/Nearest-neighbor_interpolation). Suitable for image enlargement only. */ + nearest: 'nearest', + /** [Bilinear interpolation](http://en.wikipedia.org/wiki/Bilinear_interpolation). Faster than bicubic but with less smooth results. */ + bilinear: 'bilinear', + /** [Bicubic interpolation](http://en.wikipedia.org/wiki/Bicubic_interpolation) (the default). */ + bicubic: 'bicubic', + /** [LBB interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/lbb.cpp#L100). Prevents some "[acutance](http://en.wikipedia.org/wiki/Acutance)" but typically reduces performance by a factor of 2. */ + locallyBoundedBicubic: 'lbb', + /** [Nohalo interpolation](http://eprints.soton.ac.uk/268086/). Prevents acutance but typically reduces performance by a factor of 3. */ + nohalo: 'nohalo', + /** [VSQBS interpolation](https://github.com/libvips/libvips/blob/master/libvips/resample/vsqbs.cpp#L48). Prevents "staircasing" when enlarging. */ + vertexSplitQuadraticBasisSpline: 'vsqbs' +}; + +/** + * An Object containing the version numbers of sharp, libvips + * and (when using prebuilt binaries) its dependencies. + * + * @member + * @example + * console.log(sharp.versions); + */ +let versions = { + vips: libvipsVersion.semver +}; +/* node:coverage ignore next 15 */ +if (!libvipsVersion.isGlobal) { + if (!libvipsVersion.isWasm) { + try { + versions = require(`@img/sharp-${runtimePlatform}/versions`); + } catch (_) { + try { + versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`); + } catch (_) {} + } + } else { + try { + versions = require('@img/sharp-wasm32/versions'); + } catch (_) {} + } +} +versions.sharp = require('../package.json').version; + +/* node:coverage ignore next 5 */ +if (versions.heif && format.heif) { + // Prebuilt binaries provide AV1 + format.heif.input.fileSuffix = ['.avif']; + format.heif.output.alias = ['avif']; +} + +/** + * Gets or, when options are provided, sets the limits of _libvips'_ operation cache. + * Existing entries in the cache will be trimmed after any change in limits. + * This method always returns cache statistics, + * useful for determining how much working memory is required for a particular task. + * + * @example + * const stats = sharp.cache(); + * @example + * sharp.cache( { items: 200 } ); + * sharp.cache( { files: 0 } ); + * sharp.cache(false); + * + * @param {Object|boolean} [options=true] - Object with the following attributes, or boolean where true uses default cache settings and false removes all caching + * @param {number} [options.memory=50] - is the maximum memory in MB to use for this cache + * @param {number} [options.files=20] - is the maximum number of files to hold open + * @param {number} [options.items=100] - is the maximum number of operations to cache + * @returns {Object} + */ +function cache (options) { + if (is.bool(options)) { + if (options) { + // Default cache settings of 50MB, 20 files, 100 items + return sharp.cache(50, 20, 100); + } else { + return sharp.cache(0, 0, 0); + } + } else if (is.object(options)) { + return sharp.cache(options.memory, options.files, options.items); + } else { + return sharp.cache(); + } +} +cache(true); + +/** + * Gets or, when a concurrency is provided, sets + * the maximum number of threads _libvips_ should use to process _each image_. + * These are from a thread pool managed by glib, + * which helps avoid the overhead of creating new threads. + * + * This method always returns the current concurrency. + * + * The default value is the number of CPU cores, + * except when using glibc-based Linux without jemalloc, + * where the default is `1` to help reduce memory fragmentation. + * + * A value of `0` will reset this to the number of CPU cores. + * + * Some image format libraries spawn additional threads, + * e.g. libaom manages its own 4 threads when encoding AVIF images, + * and these are independent of the value set here. + * + * :::note + * Further {@link /performance/ control over performance} is available. + * ::: + * + * @example + * const threads = sharp.concurrency(); // 4 + * sharp.concurrency(2); // 2 + * sharp.concurrency(0); // 4 + * + * @param {number} [concurrency] + * @returns {number} concurrency + */ +function concurrency (concurrency) { + return sharp.concurrency(is.integer(concurrency) ? concurrency : null); +} +/* node:coverage ignore next 7 */ +if (detectLibc.familySync() === detectLibc.GLIBC && !sharp._isUsingJemalloc()) { + // Reduce default concurrency to 1 when using glibc memory allocator + sharp.concurrency(1); +} else if (detectLibc.familySync() === detectLibc.MUSL && sharp.concurrency() === 1024) { + // Reduce default concurrency when musl thread over-subscription detected + sharp.concurrency(require('node:os').availableParallelism()); +} + +/** + * An EventEmitter that emits a `change` event when a task is either: + * - queued, waiting for _libuv_ to provide a worker thread + * - complete + * @member + * @example + * sharp.queue.on('change', function(queueLength) { + * console.log('Queue contains ' + queueLength + ' task(s)'); + * }); + */ +const queue = new events.EventEmitter(); + +/** + * Provides access to internal task counters. + * - queue is the number of tasks this module has queued waiting for _libuv_ to provide a worker thread from its pool. + * - process is the number of resize tasks currently being processed. + * + * @example + * const counters = sharp.counters(); // { queue: 2, process: 4 } + * + * @returns {Object} + */ +function counters () { + return sharp.counters(); +} + +/** + * Get and set use of SIMD vector unit instructions. + * Requires libvips to have been compiled with highway support. + * + * Improves the performance of `resize`, `blur` and `sharpen` operations + * by taking advantage of the SIMD vector unit of the CPU, e.g. Intel SSE and ARM NEON. + * + * @example + * const simd = sharp.simd(); + * // simd is `true` if the runtime use of highway is currently enabled + * @example + * const simd = sharp.simd(false); + * // prevent libvips from using highway at runtime + * + * @param {boolean} [simd=true] + * @returns {boolean} + */ +function simd (simd) { + return sharp.simd(is.bool(simd) ? simd : null); +} + +/** + * Block libvips operations at runtime. + * + * This is in addition to the `VIPS_BLOCK_UNTRUSTED` environment variable, + * which when set will block all "untrusted" operations. + * + * @since 0.32.4 + * + * @example Block all TIFF input. + * sharp.block({ + * operation: ['VipsForeignLoadTiff'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to block. + */ +function block (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, true); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Unblock libvips operations at runtime. + * + * This is useful for defining a list of allowed operations. + * + * @since 0.32.4 + * + * @example Block all input except WebP from the filesystem. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadWebpFile'] + * }); + * + * @example Block all input except JPEG and PNG from a Buffer or Stream. + * sharp.block({ + * operation: ['VipsForeignLoad'] + * }); + * sharp.unblock({ + * operation: ['VipsForeignLoadJpegBuffer', 'VipsForeignLoadPngBuffer'] + * }); + * + * @param {Object} options + * @param {Array} options.operation - List of libvips low-level operation names to unblock. + */ +function unblock (options) { + if (is.object(options)) { + if (Array.isArray(options.operation) && options.operation.every(is.string)) { + sharp.block(options.operation, false); + } else { + throw is.invalidParameterError('operation', 'Array', options.operation); + } + } else { + throw is.invalidParameterError('options', 'object', options); + } +} + +/** + * Decorate the Sharp class with utility-related functions. + * @module Sharp + * @private + */ +module.exports = (Sharp) => { + Sharp.cache = cache; + Sharp.concurrency = concurrency; + Sharp.counters = counters; + Sharp.simd = simd; + Sharp.format = format; + Sharp.interpolators = interpolators; + Sharp.versions = versions; + Sharp.queue = queue; + Sharp.block = block; + Sharp.unblock = unblock; +}; diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/package.json b/01_3D-Druck/gemini/build/node_modules/sharp/package.json new file mode 100644 index 0000000..0c0d009 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/package.json @@ -0,0 +1,202 @@ +{ + "name": "sharp", + "description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images", + "version": "0.34.5", + "author": "Lovell Fuller ", + "homepage": "https://sharp.pixelplumbing.com", + "contributors": [ + "Pierre Inglebert ", + "Jonathan Ong ", + "Chanon Sajjamanochai ", + "Juliano Julio ", + "Daniel Gasienica ", + "Julian Walker ", + "Amit Pitaru ", + "Brandon Aaron ", + "Andreas Lind ", + "Maurus Cuelenaere ", + "Linus Unnebäck ", + "Victor Mateevitsi ", + "Alaric Holloway ", + "Bernhard K. Weisshuhn ", + "Chris Riley ", + "David Carley ", + "John Tobin ", + "Kenton Gray ", + "Felix Bünemann ", + "Samy Al Zahrani ", + "Chintan Thakkar ", + "F. Orlando Galashan ", + "Kleis Auke Wolthuizen ", + "Matt Hirsch ", + "Matthias Thoemmes ", + "Patrick Paskaris ", + "Jérémy Lal ", + "Rahul Nanwani ", + "Alice Monday ", + "Kristo Jorgenson ", + "YvesBos ", + "Guy Maliar ", + "Nicolas Coden ", + "Matt Parrish ", + "Marcel Bretschneider ", + "Matthew McEachen ", + "Jarda Kotěšovec ", + "Kenric D'Souza ", + "Oleh Aleinyk ", + "Marcel Bretschneider ", + "Andrea Bianco ", + "Rik Heywood ", + "Thomas Parisot ", + "Nathan Graves ", + "Tom Lokhorst ", + "Espen Hovlandsdal ", + "Sylvain Dumont ", + "Alun Davies ", + "Aidan Hoolachan ", + "Axel Eirola ", + "Freezy ", + "Daiz ", + "Julian Aubourg ", + "Keith Belovay ", + "Michael B. Klein ", + "Jordan Prudhomme ", + "Ilya Ovdin ", + "Andargor ", + "Paul Neave ", + "Brendan Kennedy ", + "Brychan Bennett-Odlum ", + "Edward Silverton ", + "Roman Malieiev ", + "Tomas Szabo ", + "Robert O'Rourke ", + "Guillermo Alfonso Varela Chouciño ", + "Christian Flintrup ", + "Manan Jadhav ", + "Leon Radley ", + "alza54 ", + "Jacob Smith ", + "Michael Nutt ", + "Brad Parham ", + "Taneli Vatanen ", + "Joris Dugué ", + "Chris Banks ", + "Ompal Singh ", + "Brodan ", + "Ankur Parihar ", + "Brahim Ait elhaj ", + "Mart Jansink ", + "Lachlan Newman ", + "Dennis Beatty ", + "Ingvar Stepanyan ", + "Don Denton " + ], + "scripts": { + "build": "node install/build.js", + "install": "node install/check.js || npm run build", + "clean": "rm -rf src/build/ .nyc_output/ coverage/ test/fixtures/output.*", + "test": "npm run lint && npm run test-unit", + "lint": "npm run lint-cpp && npm run lint-js && npm run lint-types", + "lint-cpp": "cpplint --quiet src/*.h src/*.cc", + "lint-js": "biome lint", + "lint-types": "tsd --files ./test/types/sharp.test-d.ts", + "test-leak": "./test/leak/leak.sh", + "test-unit": "node --experimental-test-coverage test/unit.mjs", + "package-from-local-build": "node npm/from-local-build.js", + "package-release-notes": "node npm/release-notes.js", + "docs-build": "node docs/build.mjs", + "docs-serve": "cd docs && npm start", + "docs-publish": "cd docs && npm run build && npx firebase-tools deploy --project pixelplumbing --only hosting:pixelplumbing-sharp" + }, + "type": "commonjs", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "install", + "lib", + "src/*.{cc,h,gyp}" + ], + "repository": { + "type": "git", + "url": "git://github.com/lovell/sharp.git" + }, + "keywords": [ + "jpeg", + "png", + "webp", + "avif", + "tiff", + "gif", + "svg", + "jp2", + "dzi", + "image", + "resize", + "thumbnail", + "crop", + "embed", + "libvips", + "vips" + ], + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + }, + "devDependencies": { + "@biomejs/biome": "^2.3.4", + "@cpplint/cli": "^0.1.0", + "@emnapi/runtime": "^1.7.0", + "@img/sharp-libvips-dev": "1.2.4", + "@img/sharp-libvips-dev-wasm32": "1.2.4", + "@img/sharp-libvips-win32-arm64": "1.2.4", + "@img/sharp-libvips-win32-ia32": "1.2.4", + "@img/sharp-libvips-win32-x64": "1.2.4", + "@types/node": "*", + "emnapi": "^1.7.0", + "exif-reader": "^2.0.2", + "extract-zip": "^2.0.1", + "icc": "^3.0.0", + "jsdoc-to-markdown": "^9.1.3", + "node-addon-api": "^8.5.0", + "node-gyp": "^11.5.0", + "tar-fs": "^3.1.1", + "tsd": "^0.33.0" + }, + "license": "Apache-2.0", + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "config": { + "libvips": ">=8.17.3" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/binding.gyp b/01_3D-Druck/gemini/build/node_modules/sharp/src/binding.gyp new file mode 100644 index 0000000..c4ec70c --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/binding.gyp @@ -0,0 +1,298 @@ +# Copyright 2013 Lovell Fuller and others. +# SPDX-License-Identifier: Apache-2.0 + +{ + 'variables': { + 'vips_version': ' +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" + +using vips::VImage; + +namespace sharp { + + // Convenience methods to access the attributes of a Napi::Object + bool HasAttr(Napi::Object obj, std::string attr) { + return obj.Has(attr); + } + std::string AttrAsStr(Napi::Object obj, std::string attr) { + return obj.Get(attr).As(); + } + std::string AttrAsStr(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As(); + } + uint32_t AttrAsUint32(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Uint32Value(); + } + int32_t AttrAsInt32(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Int32Value(); + } + int32_t AttrAsInt32(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As().Int32Value(); + } + int64_t AttrAsInt64(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Int64Value(); + } + double AttrAsDouble(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().DoubleValue(); + } + double AttrAsDouble(Napi::Object obj, unsigned int const attr) { + return obj.Get(attr).As().DoubleValue(); + } + bool AttrAsBool(Napi::Object obj, std::string attr) { + return obj.Get(attr).As().Value(); + } + std::vector AttrAsVectorOfDouble(Napi::Object obj, std::string attr) { + Napi::Array napiArray = obj.Get(attr).As(); + std::vector vectorOfDouble(napiArray.Length()); + for (unsigned int i = 0; i < napiArray.Length(); i++) { + vectorOfDouble[i] = AttrAsDouble(napiArray, i); + } + return vectorOfDouble; + } + std::vector AttrAsInt32Vector(Napi::Object obj, std::string attr) { + Napi::Array array = obj.Get(attr).As(); + std::vector vector(array.Length()); + for (unsigned int i = 0; i < array.Length(); i++) { + vector[i] = AttrAsInt32(array, i); + } + return vector; + } + + // Create an InputDescriptor instance from a Napi::Object describing an input image + InputDescriptor* CreateInputDescriptor(Napi::Object input) { + InputDescriptor *descriptor = new InputDescriptor; + if (HasAttr(input, "file")) { + descriptor->file = AttrAsStr(input, "file"); + } else if (HasAttr(input, "buffer")) { + Napi::Buffer buffer = input.Get("buffer").As>(); + descriptor->bufferLength = buffer.Length(); + descriptor->buffer = buffer.Data(); + descriptor->isBuffer = true; + } + descriptor->failOn = AttrAsEnum(input, "failOn", VIPS_TYPE_FAIL_ON); + // Density for vector-based input + if (HasAttr(input, "density")) { + descriptor->density = AttrAsDouble(input, "density"); + } + // Should we ignore any embedded ICC profile + if (HasAttr(input, "ignoreIcc")) { + descriptor->ignoreIcc = AttrAsBool(input, "ignoreIcc"); + } + // Raw pixel input + if (HasAttr(input, "rawChannels")) { + descriptor->rawDepth = AttrAsEnum(input, "rawDepth", VIPS_TYPE_BAND_FORMAT); + descriptor->rawChannels = AttrAsUint32(input, "rawChannels"); + descriptor->rawWidth = AttrAsUint32(input, "rawWidth"); + descriptor->rawHeight = AttrAsUint32(input, "rawHeight"); + descriptor->rawPremultiplied = AttrAsBool(input, "rawPremultiplied"); + descriptor->rawPageHeight = AttrAsUint32(input, "rawPageHeight"); + } + // Multi-page input (GIF, TIFF, PDF) + if (HasAttr(input, "pages")) { + descriptor->pages = AttrAsInt32(input, "pages"); + } + if (HasAttr(input, "page")) { + descriptor->page = AttrAsUint32(input, "page"); + } + // SVG + if (HasAttr(input, "svgStylesheet")) { + descriptor->svgStylesheet = AttrAsStr(input, "svgStylesheet"); + } + if (HasAttr(input, "svgHighBitdepth")) { + descriptor->svgHighBitdepth = AttrAsBool(input, "svgHighBitdepth"); + } + // Multi-level input (OpenSlide) + if (HasAttr(input, "openSlideLevel")) { + descriptor->openSlideLevel = AttrAsUint32(input, "openSlideLevel"); + } + // subIFD (OME-TIFF) + if (HasAttr(input, "subifd")) { + descriptor->tiffSubifd = AttrAsInt32(input, "tiffSubifd"); + } + // // PDF background color + if (HasAttr(input, "pdfBackground")) { + descriptor->pdfBackground = AttrAsVectorOfDouble(input, "pdfBackground"); + } + // Use JPEG 2000 oneshot mode? + if (HasAttr(input, "jp2Oneshot")) { + descriptor->jp2Oneshot = AttrAsBool(input, "jp2Oneshot"); + } + // Create new image + if (HasAttr(input, "createChannels")) { + descriptor->createChannels = AttrAsUint32(input, "createChannels"); + descriptor->createWidth = AttrAsUint32(input, "createWidth"); + descriptor->createHeight = AttrAsUint32(input, "createHeight"); + descriptor->createPageHeight = AttrAsUint32(input, "createPageHeight"); + if (HasAttr(input, "createNoiseType")) { + descriptor->createNoiseType = AttrAsStr(input, "createNoiseType"); + descriptor->createNoiseMean = AttrAsDouble(input, "createNoiseMean"); + descriptor->createNoiseSigma = AttrAsDouble(input, "createNoiseSigma"); + } else { + descriptor->createBackground = AttrAsVectorOfDouble(input, "createBackground"); + } + } + // Create new image with text + if (HasAttr(input, "textValue")) { + descriptor->textValue = AttrAsStr(input, "textValue"); + if (HasAttr(input, "textFont")) { + descriptor->textFont = AttrAsStr(input, "textFont"); + } + if (HasAttr(input, "textFontfile")) { + descriptor->textFontfile = AttrAsStr(input, "textFontfile"); + } + if (HasAttr(input, "textWidth")) { + descriptor->textWidth = AttrAsUint32(input, "textWidth"); + } + if (HasAttr(input, "textHeight")) { + descriptor->textHeight = AttrAsUint32(input, "textHeight"); + } + if (HasAttr(input, "textAlign")) { + descriptor->textAlign = AttrAsEnum(input, "textAlign", VIPS_TYPE_ALIGN); + } + if (HasAttr(input, "textJustify")) { + descriptor->textJustify = AttrAsBool(input, "textJustify"); + } + if (HasAttr(input, "textDpi")) { + descriptor->textDpi = AttrAsUint32(input, "textDpi"); + } + if (HasAttr(input, "textRgba")) { + descriptor->textRgba = AttrAsBool(input, "textRgba"); + } + if (HasAttr(input, "textSpacing")) { + descriptor->textSpacing = AttrAsUint32(input, "textSpacing"); + } + if (HasAttr(input, "textWrap")) { + descriptor->textWrap = AttrAsEnum(input, "textWrap", VIPS_TYPE_TEXT_WRAP); + } + } + // Join images together + if (HasAttr(input, "joinAnimated")) { + descriptor->joinAnimated = AttrAsBool(input, "joinAnimated"); + } + if (HasAttr(input, "joinAcross")) { + descriptor->joinAcross = AttrAsUint32(input, "joinAcross"); + } + if (HasAttr(input, "joinShim")) { + descriptor->joinShim = AttrAsUint32(input, "joinShim"); + } + if (HasAttr(input, "joinBackground")) { + descriptor->joinBackground = AttrAsVectorOfDouble(input, "joinBackground"); + } + if (HasAttr(input, "joinHalign")) { + descriptor->joinHalign = AttrAsEnum(input, "joinHalign", VIPS_TYPE_ALIGN); + } + if (HasAttr(input, "joinValign")) { + descriptor->joinValign = AttrAsEnum(input, "joinValign", VIPS_TYPE_ALIGN); + } + // Limit input images to a given number of pixels, where pixels = width * height + descriptor->limitInputPixels = static_cast(AttrAsInt64(input, "limitInputPixels")); + if (HasAttr(input, "access")) { + descriptor->access = AttrAsBool(input, "sequentialRead") ? VIPS_ACCESS_SEQUENTIAL : VIPS_ACCESS_RANDOM; + } + // Remove safety features and allow unlimited input + descriptor->unlimited = AttrAsBool(input, "unlimited"); + // Use the EXIF orientation to auto orient the image + descriptor->autoOrient = AttrAsBool(input, "autoOrient"); + return descriptor; + } + + // How many tasks are in the queue? + std::atomic counterQueue{0}; + + // How many tasks are being processed? + std::atomic counterProcess{0}; + + // Filename extension checkers + static bool EndsWith(std::string const &str, std::string const &end) { + return str.length() >= end.length() && 0 == str.compare(str.length() - end.length(), end.length(), end); + } + bool IsJpeg(std::string const &str) { + return EndsWith(str, ".jpg") || EndsWith(str, ".jpeg") || EndsWith(str, ".JPG") || EndsWith(str, ".JPEG"); + } + bool IsPng(std::string const &str) { + return EndsWith(str, ".png") || EndsWith(str, ".PNG"); + } + bool IsWebp(std::string const &str) { + return EndsWith(str, ".webp") || EndsWith(str, ".WEBP"); + } + bool IsGif(std::string const &str) { + return EndsWith(str, ".gif") || EndsWith(str, ".GIF"); + } + bool IsJp2(std::string const &str) { + return EndsWith(str, ".jp2") || EndsWith(str, ".jpx") || EndsWith(str, ".j2k") || EndsWith(str, ".j2c") + || EndsWith(str, ".JP2") || EndsWith(str, ".JPX") || EndsWith(str, ".J2K") || EndsWith(str, ".J2C"); + } + bool IsTiff(std::string const &str) { + return EndsWith(str, ".tif") || EndsWith(str, ".tiff") || EndsWith(str, ".TIF") || EndsWith(str, ".TIFF"); + } + bool IsHeic(std::string const &str) { + return EndsWith(str, ".heic") || EndsWith(str, ".HEIC"); + } + bool IsHeif(std::string const &str) { + return EndsWith(str, ".heif") || EndsWith(str, ".HEIF") || IsHeic(str) || IsAvif(str); + } + bool IsAvif(std::string const &str) { + return EndsWith(str, ".avif") || EndsWith(str, ".AVIF"); + } + bool IsJxl(std::string const &str) { + return EndsWith(str, ".jxl") || EndsWith(str, ".JXL"); + } + bool IsDz(std::string const &str) { + return EndsWith(str, ".dzi") || EndsWith(str, ".DZI"); + } + bool IsDzZip(std::string const &str) { + return EndsWith(str, ".zip") || EndsWith(str, ".ZIP") || EndsWith(str, ".szi") || EndsWith(str, ".SZI"); + } + bool IsV(std::string const &str) { + return EndsWith(str, ".v") || EndsWith(str, ".V") || EndsWith(str, ".vips") || EndsWith(str, ".VIPS"); + } + + /* + Trim space from end of string. + */ + std::string TrimEnd(std::string const &str) { + return str.substr(0, str.find_last_not_of(" \n\r\f") + 1); + } + + /* + Provide a string identifier for the given image type. + */ + std::string ImageTypeId(ImageType const imageType) { + std::string id; + switch (imageType) { + case ImageType::JPEG: id = "jpeg"; break; + case ImageType::PNG: id = "png"; break; + case ImageType::WEBP: id = "webp"; break; + case ImageType::TIFF: id = "tiff"; break; + case ImageType::GIF: id = "gif"; break; + case ImageType::JP2: id = "jp2"; break; + case ImageType::SVG: id = "svg"; break; + case ImageType::HEIF: id = "heif"; break; + case ImageType::PDF: id = "pdf"; break; + case ImageType::MAGICK: id = "magick"; break; + case ImageType::OPENSLIDE: id = "openslide"; break; + case ImageType::PPM: id = "ppm"; break; + case ImageType::FITS: id = "fits"; break; + case ImageType::EXR: id = "exr"; break; + case ImageType::JXL: id = "jxl"; break; + case ImageType::RAD: id = "rad"; break; + case ImageType::DCRAW: id = "dcraw"; break; + case ImageType::VIPS: id = "vips"; break; + case ImageType::RAW: id = "raw"; break; + case ImageType::UNKNOWN: id = "unknown"; break; + case ImageType::MISSING: id = "missing"; break; + } + return id; + } + + /** + * Regenerate this table with something like: + * + * $ vips -l foreign | grep -i load | awk '{ print $2, $1; }' + * + * Plus a bit of editing. + */ + std::map loaderToType = { + { "VipsForeignLoadJpegFile", ImageType::JPEG }, + { "VipsForeignLoadJpegBuffer", ImageType::JPEG }, + { "VipsForeignLoadPngFile", ImageType::PNG }, + { "VipsForeignLoadPngBuffer", ImageType::PNG }, + { "VipsForeignLoadWebpFile", ImageType::WEBP }, + { "VipsForeignLoadWebpBuffer", ImageType::WEBP }, + { "VipsForeignLoadTiffFile", ImageType::TIFF }, + { "VipsForeignLoadTiffBuffer", ImageType::TIFF }, + { "VipsForeignLoadGifFile", ImageType::GIF }, + { "VipsForeignLoadGifBuffer", ImageType::GIF }, + { "VipsForeignLoadNsgifFile", ImageType::GIF }, + { "VipsForeignLoadNsgifBuffer", ImageType::GIF }, + { "VipsForeignLoadJp2kBuffer", ImageType::JP2 }, + { "VipsForeignLoadJp2kFile", ImageType::JP2 }, + { "VipsForeignLoadSvgFile", ImageType::SVG }, + { "VipsForeignLoadSvgBuffer", ImageType::SVG }, + { "VipsForeignLoadHeifFile", ImageType::HEIF }, + { "VipsForeignLoadHeifBuffer", ImageType::HEIF }, + { "VipsForeignLoadPdfFile", ImageType::PDF }, + { "VipsForeignLoadPdfBuffer", ImageType::PDF }, + { "VipsForeignLoadMagickFile", ImageType::MAGICK }, + { "VipsForeignLoadMagickBuffer", ImageType::MAGICK }, + { "VipsForeignLoadMagick7File", ImageType::MAGICK }, + { "VipsForeignLoadMagick7Buffer", ImageType::MAGICK }, + { "VipsForeignLoadOpenslideFile", ImageType::OPENSLIDE }, + { "VipsForeignLoadPpmFile", ImageType::PPM }, + { "VipsForeignLoadFitsFile", ImageType::FITS }, + { "VipsForeignLoadOpenexr", ImageType::EXR }, + { "VipsForeignLoadJxlFile", ImageType::JXL }, + { "VipsForeignLoadJxlBuffer", ImageType::JXL }, + { "VipsForeignLoadRadFile", ImageType::RAD }, + { "VipsForeignLoadRadBuffer", ImageType::RAD }, + { "VipsForeignLoadDcRawFile", ImageType::DCRAW }, + { "VipsForeignLoadDcRawBuffer", ImageType::DCRAW }, + { "VipsForeignLoadVips", ImageType::VIPS }, + { "VipsForeignLoadVipsFile", ImageType::VIPS }, + { "VipsForeignLoadRaw", ImageType::RAW } + }; + + /* + Determine image format of a buffer. + */ + ImageType DetermineImageType(void *buffer, size_t const length) { + ImageType imageType = ImageType::UNKNOWN; + char const *load = vips_foreign_find_load_buffer(buffer, length); + if (load != nullptr) { + auto it = loaderToType.find(load); + if (it != loaderToType.end()) { + imageType = it->second; + } + } + return imageType; + } + + /* + Determine image format, reads the first few bytes of the file + */ + ImageType DetermineImageType(char const *file) { + ImageType imageType = ImageType::UNKNOWN; + char const *load = vips_foreign_find_load(file); + if (load != nullptr) { + auto it = loaderToType.find(load); + if (it != loaderToType.end()) { + imageType = it->second; + } + } else { + if (EndsWith(vips::VError().what(), " does not exist\n")) { + imageType = ImageType::MISSING; + } + } + return imageType; + } + + /* + Does this image type support multiple pages? + */ + bool ImageTypeSupportsPage(ImageType imageType) { + return + imageType == ImageType::WEBP || + imageType == ImageType::MAGICK || + imageType == ImageType::GIF || + imageType == ImageType::JP2 || + imageType == ImageType::TIFF || + imageType == ImageType::HEIF || + imageType == ImageType::PDF; + } + + /* + Does this image type support removal of safety limits? + */ + bool ImageTypeSupportsUnlimited(ImageType imageType) { + return + imageType == ImageType::JPEG || + imageType == ImageType::PNG || + imageType == ImageType::SVG || + imageType == ImageType::TIFF || + imageType == ImageType::HEIF; + } + + /* + Format-specific options builder + */ + vips::VOption* GetOptionsForImageType(ImageType imageType, InputDescriptor *descriptor) { + vips::VOption *option = VImage::option() + ->set("access", descriptor->access) + ->set("fail_on", descriptor->failOn); + if (descriptor->unlimited && ImageTypeSupportsUnlimited(imageType)) { + option->set("unlimited", true); + } + if (ImageTypeSupportsPage(imageType)) { + option->set("n", descriptor->pages); + option->set("page", descriptor->page); + } + switch (imageType) { + case ImageType::SVG: + option->set("dpi", descriptor->density) + ->set("stylesheet", descriptor->svgStylesheet.data()) + ->set("high_bitdepth", descriptor->svgHighBitdepth); + break; + case ImageType::TIFF: + option->set("subifd", descriptor->tiffSubifd); + break; + case ImageType::PDF: + option->set("dpi", descriptor->density) + ->set("background", descriptor->pdfBackground); + break; + case ImageType::OPENSLIDE: + option->set("level", descriptor->openSlideLevel); + break; + case ImageType::JP2: + option->set("oneshot", descriptor->jp2Oneshot); + break; + case ImageType::MAGICK: + option->set("density", std::to_string(descriptor->density).data()); + break; + default: + break; + } + return option; + } + + /* + Open an image from the given InputDescriptor (filesystem, compressed buffer, raw pixel data) + */ + std::tuple OpenInput(InputDescriptor *descriptor) { + VImage image; + ImageType imageType; + if (descriptor->isBuffer) { + if (descriptor->rawChannels > 0) { + // Raw, uncompressed pixel data + bool const is8bit = vips_band_format_is8bit(descriptor->rawDepth); + image = VImage::new_from_memory(descriptor->buffer, descriptor->bufferLength, + descriptor->rawWidth, descriptor->rawHeight, descriptor->rawChannels, descriptor->rawDepth); + if (descriptor->rawChannels < 3) { + image.get_image()->Type = is8bit ? VIPS_INTERPRETATION_B_W : VIPS_INTERPRETATION_GREY16; + } else { + image.get_image()->Type = is8bit ? VIPS_INTERPRETATION_sRGB : VIPS_INTERPRETATION_RGB16; + } + if (descriptor->rawPageHeight > 0) { + image.set(VIPS_META_PAGE_HEIGHT, descriptor->rawPageHeight); + image.set(VIPS_META_N_PAGES, static_cast(descriptor->rawHeight / descriptor->rawPageHeight)); + } + if (descriptor->rawPremultiplied) { + image = image.unpremultiply(); + } + imageType = ImageType::RAW; + } else { + // Compressed data + imageType = DetermineImageType(descriptor->buffer, descriptor->bufferLength); + if (imageType != ImageType::UNKNOWN) { + try { + vips::VOption *option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_buffer(descriptor->buffer, descriptor->bufferLength, nullptr, option); + if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) { + image = SetDensity(image, descriptor->density); + } + } catch (vips::VError const &err) { + throw vips::VError(std::string("Input buffer has corrupt header: ") + err.what()); + } + } else { + throw vips::VError("Input buffer contains unsupported image format"); + } + } + } else { + int const channels = descriptor->createChannels; + if (channels > 0) { + // Create new image + if (descriptor->createNoiseType == "gaussian") { + std::vector bands = {}; + bands.reserve(channels); + for (int _band = 0; _band < channels; _band++) { + bands.push_back(VImage::gaussnoise(descriptor->createWidth, descriptor->createHeight, VImage::option() + ->set("mean", descriptor->createNoiseMean) + ->set("sigma", descriptor->createNoiseSigma))); + } + image = VImage::bandjoin(bands).copy(VImage::option()->set("interpretation", + channels < 3 ? VIPS_INTERPRETATION_B_W: VIPS_INTERPRETATION_sRGB)); + } else { + std::vector background = { + descriptor->createBackground[0], + descriptor->createBackground[1], + descriptor->createBackground[2] + }; + if (channels == 4) { + background.push_back(descriptor->createBackground[3]); + } + image = VImage::new_matrix(descriptor->createWidth, descriptor->createHeight) + .copy(VImage::option()->set("interpretation", + channels < 3 ? VIPS_INTERPRETATION_B_W : VIPS_INTERPRETATION_sRGB)) + .new_from_image(background); + } + if (descriptor->createPageHeight > 0) { + image.set(VIPS_META_PAGE_HEIGHT, descriptor->createPageHeight); + image.set(VIPS_META_N_PAGES, static_cast(descriptor->createHeight / descriptor->createPageHeight)); + } + image = image.cast(VIPS_FORMAT_UCHAR); + imageType = ImageType::RAW; + } else if (descriptor->textValue.length() > 0) { + // Create a new image with text + vips::VOption *textOptions = VImage::option() + ->set("align", descriptor->textAlign) + ->set("justify", descriptor->textJustify) + ->set("rgba", descriptor->textRgba) + ->set("spacing", descriptor->textSpacing) + ->set("wrap", descriptor->textWrap) + ->set("autofit_dpi", &descriptor->textAutofitDpi); + if (descriptor->textWidth > 0) { + textOptions->set("width", descriptor->textWidth); + } + // Ignore dpi if height is set + if (descriptor->textWidth > 0 && descriptor->textHeight > 0) { + textOptions->set("height", descriptor->textHeight); + } else if (descriptor->textDpi > 0) { + textOptions->set("dpi", descriptor->textDpi); + } + if (descriptor->textFont.length() > 0) { + textOptions->set("font", const_cast(descriptor->textFont.data())); + } + if (descriptor->textFontfile.length() > 0) { + textOptions->set("fontfile", const_cast(descriptor->textFontfile.data())); + } + image = VImage::text(const_cast(descriptor->textValue.data()), textOptions); + if (!descriptor->textRgba) { + image = image.copy(VImage::option()->set("interpretation", VIPS_INTERPRETATION_B_W)); + } + imageType = ImageType::RAW; + } else { + // From filesystem + imageType = DetermineImageType(descriptor->file.data()); + if (imageType == ImageType::MISSING) { + if (descriptor->file.find("file.substr(0, 8) + "...')?"); + } + throw vips::VError("Input file is missing: " + descriptor->file); + } + if (imageType != ImageType::UNKNOWN) { + try { + vips::VOption *option = GetOptionsForImageType(imageType, descriptor); + image = VImage::new_from_file(descriptor->file.data(), option); + if (imageType == ImageType::SVG || imageType == ImageType::PDF || imageType == ImageType::MAGICK) { + image = SetDensity(image, descriptor->density); + } + } catch (vips::VError const &err) { + throw vips::VError(std::string("Input file has corrupt header: ") + err.what()); + } + } else { + throw vips::VError("Input file contains unsupported image format"); + } + } + } + + // Limit input images to a given number of pixels, where pixels = width * height + if (descriptor->limitInputPixels > 0 && + static_cast(image.width()) * image.height() > descriptor->limitInputPixels) { + throw vips::VError("Input image exceeds pixel limit"); + } + return std::make_tuple(image, imageType); + } + + /* + Does this image have an embedded profile? + */ + bool HasProfile(VImage image) { + return image.get_typeof(VIPS_META_ICC_NAME) == VIPS_TYPE_BLOB; + } + + /* + Get copy of embedded profile. + */ + std::pair GetProfile(VImage image) { + std::pair icc(nullptr, 0); + if (HasProfile(image)) { + size_t length; + const void *data = image.get_blob(VIPS_META_ICC_NAME, &length); + icc.first = static_cast(g_malloc(length)); + icc.second = length; + memcpy(icc.first, data, length); + } + return icc; + } + + /* + Set embedded profile. + */ + VImage SetProfile(VImage image, std::pair icc) { + if (icc.first != nullptr) { + image = image.copy(); + image.set(VIPS_META_ICC_NAME, reinterpret_cast(vips_area_free_cb), icc.first, icc.second); + } + return image; + } + + static void* RemoveExifCallback(VipsImage *image, char const *field, GValue *value, void *data) { + std::vector *fieldNames = static_cast *>(data); + std::string fieldName(field); + if (fieldName.substr(0, 8) == ("exif-ifd")) { + fieldNames->push_back(fieldName); + } + return nullptr; + } + + /* + Remove all EXIF-related image fields. + */ + VImage RemoveExif(VImage image) { + std::vector fieldNames; + vips_image_map(image.get_image(), static_cast(RemoveExifCallback), &fieldNames); + for (const auto& f : fieldNames) { + image.remove(f.data()); + } + return image; + } + + /* + Get EXIF Orientation of image, if any. + */ + int ExifOrientation(VImage image) { + int orientation = 0; + if (image.get_typeof(VIPS_META_ORIENTATION) != 0) { + orientation = image.get_int(VIPS_META_ORIENTATION); + } + return orientation; + } + + /* + Set EXIF Orientation of image. + */ + VImage SetExifOrientation(VImage image, int const orientation) { + VImage copy = image.copy(); + copy.set(VIPS_META_ORIENTATION, orientation); + return copy; + } + + /* + Remove EXIF Orientation from image. + */ + VImage RemoveExifOrientation(VImage image) { + VImage copy = image.copy(); + copy.remove(VIPS_META_ORIENTATION); + copy.remove("exif-ifd0-Orientation"); + return copy; + } + + /* + Set animation properties if necessary. + */ + VImage SetAnimationProperties(VImage image, int nPages, int pageHeight, std::vector delay, int loop) { + bool hasDelay = !delay.empty(); + VImage copy = image.copy(); + + // Only set page-height if we have more than one page, or this could + // accidentally turn into an animated image later. + if (nPages > 1) copy.set(VIPS_META_PAGE_HEIGHT, pageHeight); + if (hasDelay) { + if (delay.size() == 1) { + // We have just one delay, repeat that value for all frames. + delay.insert(delay.end(), nPages - 1, delay[0]); + } + copy.set("delay", delay); + } + if (nPages == 1 && !hasDelay && loop == -1) { + loop = 1; + } + if (loop != -1) copy.set("loop", loop); + + return copy; + } + + /* + Remove animation properties from image. + */ + VImage RemoveAnimationProperties(VImage image) { + VImage copy = image.copy(); + copy.remove(VIPS_META_PAGE_HEIGHT); + copy.remove("delay"); + copy.remove("loop"); + return copy; + } + + /* + Remove GIF palette from image. + */ + VImage RemoveGifPalette(VImage image) { + VImage copy = image.copy(); + copy.remove("gif-palette"); + return copy; + } + + /* + Does this image have a non-default density? + */ + bool HasDensity(VImage image) { + return image.xres() > 1.0; + } + + /* + Get pixels/mm resolution as pixels/inch density. + */ + int GetDensity(VImage image) { + return static_cast(round(image.xres() * 25.4)); + } + + /* + Set pixels/mm resolution based on a pixels/inch density. + */ + VImage SetDensity(VImage image, const double density) { + const double pixelsPerMm = density / 25.4; + VImage copy = image.copy(); + copy.get_image()->Xres = pixelsPerMm; + copy.get_image()->Yres = pixelsPerMm; + return copy; + } + + /* + Multi-page images can have a page height. Fetch it, and sanity check it. + If page-height is not set, it defaults to the image height + */ + int GetPageHeight(VImage image) { + return vips_image_get_page_height(image.get_image()); + } + + /* + Check the proposed format supports the current dimensions. + */ + void AssertImageTypeDimensions(VImage image, ImageType const imageType) { + const int height = image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT + ? image.get_int(VIPS_META_PAGE_HEIGHT) + : image.height(); + if (imageType == ImageType::JPEG) { + if (image.width() > 65535 || height > 65535) { + throw vips::VError("Processed image is too large for the JPEG format"); + } + } else if (imageType == ImageType::WEBP) { + if (image.width() > 16383 || height > 16383) { + throw vips::VError("Processed image is too large for the WebP format"); + } + } else if (imageType == ImageType::GIF) { + if (image.width() > 65535 || height > 65535) { + throw vips::VError("Processed image is too large for the GIF format"); + } + } else if (imageType == ImageType::HEIF) { + if (image.width() > 16384 || height > 16384) { + throw vips::VError("Processed image is too large for the HEIF format"); + } + } + } + + /* + Called when a Buffer undergoes GC, required to support mixed runtime libraries in Windows + */ + std::function FreeCallback = [](void*, char* data) { + g_free(data); + }; + + /* + Temporary buffer of warnings + */ + std::queue vipsWarnings; + std::mutex vipsWarningsMutex; + + /* + Called with warnings from the glib-registered "VIPS" domain + */ + void VipsWarningCallback(char const* log_domain, GLogLevelFlags log_level, char const* message, void* ignore) { + std::lock_guard lock(vipsWarningsMutex); + vipsWarnings.emplace(message); + } + + /* + Pop the oldest warning message from the queue + */ + std::string VipsWarningPop() { + std::string warning; + std::lock_guard lock(vipsWarningsMutex); + if (!vipsWarnings.empty()) { + warning = vipsWarnings.front(); + vipsWarnings.pop(); + } + return warning; + } + + /* + Attach an event listener for progress updates, used to detect timeout + */ + void SetTimeout(VImage image, int const seconds) { + if (seconds > 0) { + VipsImage *im = image.get_image(); + if (im->progress_signal == NULL) { + int *timeout = VIPS_NEW(im, int); + *timeout = seconds; + g_signal_connect(im, "eval", G_CALLBACK(VipsProgressCallBack), timeout); + vips_image_set_progress(im, true); + } + } + } + + /* + Event listener for progress updates, used to detect timeout + */ + void VipsProgressCallBack(VipsImage *im, VipsProgress *progress, int *timeout) { + if (*timeout > 0 && progress->run >= *timeout) { + vips_image_set_kill(im, true); + vips_error("timeout", "%d%% complete", progress->percent); + *timeout = 0; + } + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during an embed. + + @Azurebyte: We are basically swapping the inWidth and outWidth, inHeight and outHeight from the CalculateCrop function. + */ + std::tuple CalculateEmbedPosition(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity) { + + int left = 0; + int top = 0; + switch (gravity) { + case 1: + // North + left = (outWidth - inWidth) / 2; + break; + case 2: + // East + left = outWidth - inWidth; + top = (outHeight - inHeight) / 2; + break; + case 3: + // South + left = (outWidth - inWidth) / 2; + top = outHeight - inHeight; + break; + case 4: + // West + top = (outHeight - inHeight) / 2; + break; + case 5: + // Northeast + left = outWidth - inWidth; + break; + case 6: + // Southeast + left = outWidth - inWidth; + top = outHeight - inHeight; + break; + case 7: + // Southwest + top = outHeight - inHeight; + break; + case 8: + // Northwest + // Which is the default is 0,0 so we do not assign anything here. + break; + default: + // Centre + left = (outWidth - inWidth) / 2; + top = (outHeight - inHeight) / 2; + } + return std::make_tuple(left, top); + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during a crop. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity) { + + int left = 0; + int top = 0; + switch (gravity) { + case 1: + // North + left = (inWidth - outWidth + 1) / 2; + break; + case 2: + // East + left = inWidth - outWidth; + top = (inHeight - outHeight + 1) / 2; + break; + case 3: + // South + left = (inWidth - outWidth + 1) / 2; + top = inHeight - outHeight; + break; + case 4: + // West + top = (inHeight - outHeight + 1) / 2; + break; + case 5: + // Northeast + left = inWidth - outWidth; + break; + case 6: + // Southeast + left = inWidth - outWidth; + top = inHeight - outHeight; + break; + case 7: + // Southwest + top = inHeight - outHeight; + break; + case 8: + // Northwest + break; + default: + // Centre + left = (inWidth - outWidth + 1) / 2; + top = (inHeight - outHeight + 1) / 2; + } + return std::make_tuple(left, top); + } + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given x and y offsets. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const x, int const y) { + + // default values + int left = 0; + int top = 0; + + // assign only if valid + if (x < (inWidth - outWidth)) { + left = x; + } else if (x >= (inWidth - outWidth)) { + left = inWidth - outWidth; + } + + if (y < (inHeight - outHeight)) { + top = y; + } else if (y >= (inHeight - outHeight)) { + top = inHeight - outHeight; + } + + return std::make_tuple(left, top); + } + + /* + Are pixel values in this image 16-bit integer? + */ + bool Is16Bit(VipsInterpretation const interpretation) { + return interpretation == VIPS_INTERPRETATION_RGB16 || interpretation == VIPS_INTERPRETATION_GREY16; + } + + /* + Convert RGBA value to another colourspace + */ + std::vector GetRgbaAsColourspace(std::vector const rgba, + VipsInterpretation const interpretation, bool premultiply) { + int const bands = static_cast(rgba.size()); + if (bands < 3) { + return rgba; + } + VImage pixel = VImage::new_matrix(1, 1); + pixel.set("bands", bands); + pixel = pixel + .new_from_image(rgba) + .colourspace(interpretation, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)); + if (premultiply) { + pixel = pixel.premultiply(); + } + return pixel(0, 0); + } + + /* + Apply the alpha channel to a given colour + */ + std::tuple> ApplyAlpha(VImage image, std::vector colour, bool premultiply) { + // Scale up 8-bit values to match 16-bit input image + double const multiplier = sharp::Is16Bit(image.interpretation()) ? 256.0 : 1.0; + // Create alphaColour colour + std::vector alphaColour; + if (image.bands() > 2) { + alphaColour = { + multiplier * colour[0], + multiplier * colour[1], + multiplier * colour[2] + }; + } else { + // Convert sRGB to greyscale + alphaColour = { multiplier * ( + 0.2126 * colour[0] + + 0.7152 * colour[1] + + 0.0722 * colour[2]) + }; + } + // Add alpha channel(s) to alphaColour colour + if (colour[3] < 255.0 || image.has_alpha()) { + int extraBands = image.bands() > 4 ? image.bands() - 3 : 1; + alphaColour.insert(alphaColour.end(), extraBands, colour[3] * multiplier); + } + // Ensure alphaColour colour uses correct colourspace + alphaColour = sharp::GetRgbaAsColourspace(alphaColour, image.interpretation(), premultiply); + // Add non-transparent alpha channel, if required + if (colour[3] < 255.0 && !image.has_alpha()) { + image = image.bandjoin_const({ 255 * multiplier }); + } + return std::make_tuple(image, alphaColour); + } + + /* + Removes alpha channels, if any. + */ + VImage RemoveAlpha(VImage image) { + while (image.bands() > 1 && image.has_alpha()) { + image = image.extract_band(0, VImage::option()->set("n", image.bands() - 1)); + } + return image; + } + + /* + Ensures alpha channel, if missing. + */ + VImage EnsureAlpha(VImage image, double const value) { + if (!image.has_alpha()) { + image = image.bandjoin_const({ value * vips_interpretation_max_alpha(image.interpretation()) }); + } + return image; + } + + std::pair ResolveShrink(int width, int height, int targetWidth, int targetHeight, + Canvas canvas, bool withoutEnlargement, bool withoutReduction) { + double hshrink = 1.0; + double vshrink = 1.0; + + if (targetWidth > 0 && targetHeight > 0) { + // Fixed width and height + hshrink = static_cast(width) / targetWidth; + vshrink = static_cast(height) / targetHeight; + + switch (canvas) { + case Canvas::CROP: + case Canvas::MIN: + if (hshrink < vshrink) { + vshrink = hshrink; + } else { + hshrink = vshrink; + } + break; + case Canvas::EMBED: + case Canvas::MAX: + if (hshrink > vshrink) { + vshrink = hshrink; + } else { + hshrink = vshrink; + } + break; + case Canvas::IGNORE_ASPECT: + break; + } + } else if (targetWidth > 0) { + // Fixed width + hshrink = static_cast(width) / targetWidth; + + if (canvas != Canvas::IGNORE_ASPECT) { + // Auto height + vshrink = hshrink; + } + } else if (targetHeight > 0) { + // Fixed height + vshrink = static_cast(height) / targetHeight; + + if (canvas != Canvas::IGNORE_ASPECT) { + // Auto width + hshrink = vshrink; + } + } + + // We should not reduce or enlarge the output image, if + // withoutReduction or withoutEnlargement is specified. + if (withoutReduction) { + // Equivalent of VIPS_SIZE_UP + hshrink = std::min(1.0, hshrink); + vshrink = std::min(1.0, vshrink); + } else if (withoutEnlargement) { + // Equivalent of VIPS_SIZE_DOWN + hshrink = std::max(1.0, hshrink); + vshrink = std::max(1.0, vshrink); + } + + // We don't want to shrink so much that we send an axis to 0 + hshrink = std::min(hshrink, static_cast(width)); + vshrink = std::min(vshrink, static_cast(height)); + + return std::make_pair(hshrink, vshrink); + } + + /* + Ensure decoding remains sequential. + */ + VImage StaySequential(VImage image, bool condition) { + if (vips_image_is_sequential(image.get_image()) && condition) { + image = image.copy_memory().copy(); + image.remove(VIPS_META_SEQUENTIAL); + } + return image; + } +} // namespace sharp diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/common.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/common.h new file mode 100644 index 0000000..c15755b --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/common.h @@ -0,0 +1,402 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_COMMON_H_ +#define SRC_COMMON_H_ + +#include +#include +#include +#include +#include + +#include +#include + +// Verify platform and compiler compatibility + +#if (VIPS_MAJOR_VERSION < 8) || \ + (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION < 17) || \ + (VIPS_MAJOR_VERSION == 8 && VIPS_MINOR_VERSION == 17 && VIPS_MICRO_VERSION < 3) +#error "libvips version 8.17.3+ is required - please see https://sharp.pixelplumbing.com/install" +#endif + +#if defined(__has_include) +#if !__has_include() +#error "C++17 compiler required - please see https://sharp.pixelplumbing.com/install" +#endif +#endif + +using vips::VImage; + +namespace sharp { + + struct InputDescriptor { + std::string name; + std::string file; + bool autoOrient; + char *buffer; + VipsFailOn failOn; + uint64_t limitInputPixels; + bool unlimited; + VipsAccess access; + size_t bufferLength; + bool isBuffer; + double density; + bool ignoreIcc; + VipsBandFormat rawDepth; + int rawChannels; + int rawWidth; + int rawHeight; + bool rawPremultiplied; + int rawPageHeight; + int pages; + int page; + int createChannels; + int createWidth; + int createHeight; + int createPageHeight; + std::vector createBackground; + std::string createNoiseType; + double createNoiseMean; + double createNoiseSigma; + std::string textValue; + std::string textFont; + std::string textFontfile; + int textWidth; + int textHeight; + VipsAlign textAlign; + bool textJustify; + int textDpi; + bool textRgba; + int textSpacing; + VipsTextWrap textWrap; + int textAutofitDpi; + bool joinAnimated; + int joinAcross; + int joinShim; + std::vector joinBackground; + VipsAlign joinHalign; + VipsAlign joinValign; + std::string svgStylesheet; + bool svgHighBitdepth; + int tiffSubifd; + int openSlideLevel; + std::vector pdfBackground; + bool jp2Oneshot; + + InputDescriptor(): + autoOrient(false), + buffer(nullptr), + failOn(VIPS_FAIL_ON_WARNING), + limitInputPixels(0x3FFF * 0x3FFF), + unlimited(false), + access(VIPS_ACCESS_SEQUENTIAL), + bufferLength(0), + isBuffer(false), + density(72.0), + ignoreIcc(false), + rawDepth(VIPS_FORMAT_UCHAR), + rawChannels(0), + rawWidth(0), + rawHeight(0), + rawPremultiplied(false), + rawPageHeight(0), + pages(1), + page(0), + createChannels(0), + createWidth(0), + createHeight(0), + createPageHeight(0), + createBackground{ 0.0, 0.0, 0.0, 255.0 }, + createNoiseMean(0.0), + createNoiseSigma(0.0), + textWidth(0), + textHeight(0), + textAlign(VIPS_ALIGN_LOW), + textJustify(false), + textDpi(72), + textRgba(false), + textSpacing(0), + textWrap(VIPS_TEXT_WRAP_WORD), + textAutofitDpi(0), + joinAnimated(false), + joinAcross(1), + joinShim(0), + joinBackground{ 0.0, 0.0, 0.0, 255.0 }, + joinHalign(VIPS_ALIGN_LOW), + joinValign(VIPS_ALIGN_LOW), + svgHighBitdepth(false), + tiffSubifd(-1), + openSlideLevel(0), + pdfBackground{ 255.0, 255.0, 255.0, 255.0 }, + jp2Oneshot(false) {} + }; + + // Convenience methods to access the attributes of a Napi::Object + bool HasAttr(Napi::Object obj, std::string attr); + std::string AttrAsStr(Napi::Object obj, std::string attr); + std::string AttrAsStr(Napi::Object obj, unsigned int const attr); + uint32_t AttrAsUint32(Napi::Object obj, std::string attr); + int32_t AttrAsInt32(Napi::Object obj, std::string attr); + int32_t AttrAsInt32(Napi::Object obj, unsigned int const attr); + double AttrAsDouble(Napi::Object obj, std::string attr); + double AttrAsDouble(Napi::Object obj, unsigned int const attr); + bool AttrAsBool(Napi::Object obj, std::string attr); + std::vector AttrAsVectorOfDouble(Napi::Object obj, std::string attr); + std::vector AttrAsInt32Vector(Napi::Object obj, std::string attr); + template T AttrAsEnum(Napi::Object obj, std::string attr, GType type) { + return static_cast( + vips_enum_from_nick(nullptr, type, AttrAsStr(obj, attr).data())); + } + + // Create an InputDescriptor instance from a Napi::Object describing an input image + InputDescriptor* CreateInputDescriptor(Napi::Object input); + + enum class ImageType { + JPEG, + PNG, + WEBP, + JP2, + TIFF, + GIF, + SVG, + HEIF, + PDF, + MAGICK, + OPENSLIDE, + PPM, + FITS, + EXR, + JXL, + RAD, + DCRAW, + VIPS, + RAW, + UNKNOWN, + MISSING + }; + + enum class Canvas { + CROP, + EMBED, + MAX, + MIN, + IGNORE_ASPECT + }; + + // How many tasks are in the queue? + extern std::atomic counterQueue; + + // How many tasks are being processed? + extern std::atomic counterProcess; + + // Filename extension checkers + bool IsJpeg(std::string const &str); + bool IsPng(std::string const &str); + bool IsWebp(std::string const &str); + bool IsJp2(std::string const &str); + bool IsGif(std::string const &str); + bool IsTiff(std::string const &str); + bool IsHeic(std::string const &str); + bool IsHeif(std::string const &str); + bool IsAvif(std::string const &str); + bool IsJxl(std::string const &str); + bool IsDz(std::string const &str); + bool IsDzZip(std::string const &str); + bool IsV(std::string const &str); + + /* + Trim space from end of string. + */ + std::string TrimEnd(std::string const &str); + + /* + Provide a string identifier for the given image type. + */ + std::string ImageTypeId(ImageType const imageType); + + /* + Determine image format of a buffer. + */ + ImageType DetermineImageType(void *buffer, size_t const length); + + /* + Determine image format of a file. + */ + ImageType DetermineImageType(char const *file); + + /* + Format-specific options builder + */ + vips::VOption* GetOptionsForImageType(ImageType imageType, InputDescriptor *descriptor); + + /* + Open an image from the given InputDescriptor (filesystem, compressed buffer, raw pixel data) + */ + std::tuple OpenInput(InputDescriptor *descriptor); + + /* + Does this image have an embedded profile? + */ + bool HasProfile(VImage image); + + /* + Get copy of embedded profile. + */ + std::pair GetProfile(VImage image); + + /* + Set embedded profile. + */ + VImage SetProfile(VImage image, std::pair icc); + + /* + Remove all EXIF-related image fields. + */ + VImage RemoveExif(VImage image); + + /* + Get EXIF Orientation of image, if any. + */ + int ExifOrientation(VImage image); + + /* + Set EXIF Orientation of image. + */ + VImage SetExifOrientation(VImage image, int const orientation); + + /* + Remove EXIF Orientation from image. + */ + VImage RemoveExifOrientation(VImage image); + + /* + Set animation properties if necessary. + */ + VImage SetAnimationProperties(VImage image, int nPages, int pageHeight, std::vector delay, int loop); + + /* + Remove animation properties from image. + */ + VImage RemoveAnimationProperties(VImage image); + + /* + Remove GIF palette from image. + */ + VImage RemoveGifPalette(VImage image); + + /* + Does this image have a non-default density? + */ + bool HasDensity(VImage image); + + /* + Get pixels/mm resolution as pixels/inch density. + */ + int GetDensity(VImage image); + + /* + Set pixels/mm resolution based on a pixels/inch density. + */ + VImage SetDensity(VImage image, const double density); + + /* + Multi-page images can have a page height. Fetch it, and sanity check it. + If page-height is not set, it defaults to the image height + */ + int GetPageHeight(VImage image); + + /* + Check the proposed format supports the current dimensions. + */ + void AssertImageTypeDimensions(VImage image, ImageType const imageType); + + /* + Called when a Buffer undergoes GC, required to support mixed runtime libraries in Windows + */ + extern std::function FreeCallback; + + /* + Called with warnings from the glib-registered "VIPS" domain + */ + void VipsWarningCallback(char const* log_domain, GLogLevelFlags log_level, char const* message, void* ignore); + + /* + Pop the oldest warning message from the queue + */ + std::string VipsWarningPop(); + + /* + Attach an event listener for progress updates, used to detect timeout + */ + void SetTimeout(VImage image, int const timeoutSeconds); + + /* + Event listener for progress updates, used to detect timeout + */ + void VipsProgressCallBack(VipsImage *image, VipsProgress *progress, int *timeoutSeconds); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity during an embed. + */ + std::tuple CalculateEmbedPosition(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given gravity. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const gravity); + + /* + Calculate the (left, top) coordinates of the output image + within the input image, applying the given x and y offsets of the output image. + */ + std::tuple CalculateCrop(int const inWidth, int const inHeight, + int const outWidth, int const outHeight, int const x, int const y); + + /* + Are pixel values in this image 16-bit integer? + */ + bool Is16Bit(VipsInterpretation const interpretation); + + /* + Convert RGBA value to another colourspace + */ + std::vector GetRgbaAsColourspace(std::vector const rgba, + VipsInterpretation const interpretation, bool premultiply); + + /* + Apply the alpha channel to a given colour + */ + std::tuple> ApplyAlpha(VImage image, std::vector colour, bool premultiply); + + /* + Removes alpha channels, if any. + */ + VImage RemoveAlpha(VImage image); + + /* + Ensures alpha channel, if missing. + */ + VImage EnsureAlpha(VImage image, double const value); + + /* + Calculate the horizontal and vertical shrink factors, taking the canvas mode into account. + */ + std::pair ResolveShrink(int width, int height, int targetWidth, int targetHeight, + Canvas canvas, bool withoutEnlargement, bool withoutReduction); + + /* + Ensure decoding remains sequential. + */ + VImage StaySequential(VImage image, bool condition = true); + +} // namespace sharp + +#endif // SRC_COMMON_H_ diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.cc new file mode 100644 index 0000000..2fde7bf --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.cc @@ -0,0 +1,346 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./metadata.h" + +static void* readPNGComment(VipsImage *image, const char *field, GValue *value, void *p); + +class MetadataWorker : public Napi::AsyncWorker { + public: + MetadataWorker(Napi::Function callback, MetadataBaton *baton, Napi::Function debuglog) : + Napi::AsyncWorker(callback), baton(baton), debuglog(Napi::Persistent(debuglog)) {} + ~MetadataWorker() {} + + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + + vips::VImage image; + sharp::ImageType imageType = sharp::ImageType::UNKNOWN; + try { + std::tie(image, imageType) = OpenInput(baton->input); + } catch (vips::VError const &err) { + (baton->err).append(err.what()); + } + if (imageType != sharp::ImageType::UNKNOWN) { + // Image type + baton->format = sharp::ImageTypeId(imageType); + // VipsImage attributes + baton->width = image.width(); + baton->height = image.height(); + baton->space = vips_enum_nick(VIPS_TYPE_INTERPRETATION, image.interpretation()); + baton->channels = image.bands(); + baton->depth = vips_enum_nick(VIPS_TYPE_BAND_FORMAT, image.format()); + if (sharp::HasDensity(image)) { + baton->density = sharp::GetDensity(image); + } + if (image.get_typeof("jpeg-chroma-subsample") == VIPS_TYPE_REF_STRING) { + baton->chromaSubsampling = image.get_string("jpeg-chroma-subsample"); + } + if (image.get_typeof("interlaced") == G_TYPE_INT) { + baton->isProgressive = image.get_int("interlaced") == 1; + } + if (image.get_typeof(VIPS_META_PALETTE) == G_TYPE_INT) { + baton->isPalette = image.get_int(VIPS_META_PALETTE); + } + if (image.get_typeof(VIPS_META_BITS_PER_SAMPLE) == G_TYPE_INT) { + baton->bitsPerSample = image.get_int(VIPS_META_BITS_PER_SAMPLE); + } + if (image.get_typeof(VIPS_META_N_PAGES) == G_TYPE_INT) { + baton->pages = image.get_int(VIPS_META_N_PAGES); + } + if (image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT) { + baton->pageHeight = image.get_int(VIPS_META_PAGE_HEIGHT); + } + if (image.get_typeof("loop") == G_TYPE_INT) { + baton->loop = image.get_int("loop"); + } + if (image.get_typeof("delay") == VIPS_TYPE_ARRAY_INT) { + baton->delay = image.get_array_int("delay"); + } + if (image.get_typeof("heif-primary") == G_TYPE_INT) { + baton->pagePrimary = image.get_int("heif-primary"); + } + if (image.get_typeof("heif-compression") == VIPS_TYPE_REF_STRING) { + baton->compression = image.get_string("heif-compression"); + } + if (image.get_typeof(VIPS_META_RESOLUTION_UNIT) == VIPS_TYPE_REF_STRING) { + baton->resolutionUnit = image.get_string(VIPS_META_RESOLUTION_UNIT); + } + if (image.get_typeof("magick-format") == VIPS_TYPE_REF_STRING) { + baton->formatMagick = image.get_string("magick-format"); + } + if (image.get_typeof("openslide.level-count") == VIPS_TYPE_REF_STRING) { + int const levels = std::stoi(image.get_string("openslide.level-count")); + for (int l = 0; l < levels; l++) { + std::string prefix = "openslide.level[" + std::to_string(l) + "]."; + int const width = std::stoi(image.get_string((prefix + "width").data())); + int const height = std::stoi(image.get_string((prefix + "height").data())); + baton->levels.push_back(std::pair(width, height)); + } + } + if (image.get_typeof(VIPS_META_N_SUBIFDS) == G_TYPE_INT) { + baton->subifds = image.get_int(VIPS_META_N_SUBIFDS); + } + baton->hasProfile = sharp::HasProfile(image); + if (image.get_typeof("background") == VIPS_TYPE_ARRAY_DOUBLE) { + baton->background = image.get_array_double("background"); + } + // Derived attributes + baton->hasAlpha = image.has_alpha(); + baton->orientation = sharp::ExifOrientation(image); + // EXIF + if (image.get_typeof(VIPS_META_EXIF_NAME) == VIPS_TYPE_BLOB) { + size_t exifLength; + void const *exif = image.get_blob(VIPS_META_EXIF_NAME, &exifLength); + baton->exif = static_cast(g_malloc(exifLength)); + memcpy(baton->exif, exif, exifLength); + baton->exifLength = exifLength; + } + // ICC profile + if (image.get_typeof(VIPS_META_ICC_NAME) == VIPS_TYPE_BLOB) { + size_t iccLength; + void const *icc = image.get_blob(VIPS_META_ICC_NAME, &iccLength); + baton->icc = static_cast(g_malloc(iccLength)); + memcpy(baton->icc, icc, iccLength); + baton->iccLength = iccLength; + } + // IPTC + if (image.get_typeof(VIPS_META_IPTC_NAME) == VIPS_TYPE_BLOB) { + size_t iptcLength; + void const *iptc = image.get_blob(VIPS_META_IPTC_NAME, &iptcLength); + baton->iptc = static_cast(g_malloc(iptcLength)); + memcpy(baton->iptc, iptc, iptcLength); + baton->iptcLength = iptcLength; + } + // XMP + if (image.get_typeof(VIPS_META_XMP_NAME) == VIPS_TYPE_BLOB) { + size_t xmpLength; + void const *xmp = image.get_blob(VIPS_META_XMP_NAME, &xmpLength); + baton->xmp = static_cast(g_malloc(xmpLength)); + memcpy(baton->xmp, xmp, xmpLength); + baton->xmpLength = xmpLength; + } + // TIFFTAG_PHOTOSHOP + if (image.get_typeof(VIPS_META_PHOTOSHOP_NAME) == VIPS_TYPE_BLOB) { + size_t tifftagPhotoshopLength; + void const *tifftagPhotoshop = image.get_blob(VIPS_META_PHOTOSHOP_NAME, &tifftagPhotoshopLength); + baton->tifftagPhotoshop = static_cast(g_malloc(tifftagPhotoshopLength)); + memcpy(baton->tifftagPhotoshop, tifftagPhotoshop, tifftagPhotoshopLength); + baton->tifftagPhotoshopLength = tifftagPhotoshopLength; + } + // PNG comments + vips_image_map(image.get_image(), readPNGComment, &baton->comments); + } + + // Clean up + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) }); + warning = sharp::VipsWarningPop(); + } + + if (baton->err.empty()) { + Napi::Object info = Napi::Object::New(env); + info.Set("format", baton->format); + if (baton->input->bufferLength > 0) { + info.Set("size", baton->input->bufferLength); + } + info.Set("width", baton->width); + info.Set("height", baton->height); + info.Set("space", baton->space); + info.Set("channels", baton->channels); + info.Set("depth", baton->depth); + if (baton->density > 0) { + info.Set("density", baton->density); + } + if (!baton->chromaSubsampling.empty()) { + info.Set("chromaSubsampling", baton->chromaSubsampling); + } + info.Set("isProgressive", baton->isProgressive); + info.Set("isPalette", baton->isPalette); + if (baton->bitsPerSample > 0) { + info.Set("bitsPerSample", baton->bitsPerSample); + if (baton->isPalette) { + // Deprecated, remove with libvips 8.17.0 + info.Set("paletteBitDepth", baton->bitsPerSample); + } + } + if (baton->pages > 0) { + info.Set("pages", baton->pages); + } + if (baton->pageHeight > 0) { + info.Set("pageHeight", baton->pageHeight); + } + if (baton->loop >= 0) { + info.Set("loop", baton->loop); + } + if (!baton->delay.empty()) { + int i = 0; + Napi::Array delay = Napi::Array::New(env, static_cast(baton->delay.size())); + for (int const d : baton->delay) { + delay.Set(i++, d); + } + info.Set("delay", delay); + } + if (baton->pagePrimary > -1) { + info.Set("pagePrimary", baton->pagePrimary); + } + if (!baton->compression.empty()) { + info.Set("compression", baton->compression); + } + if (!baton->resolutionUnit.empty()) { + info.Set("resolutionUnit", baton->resolutionUnit == "in" ? "inch" : baton->resolutionUnit); + } + if (!baton->formatMagick.empty()) { + info.Set("formatMagick", baton->formatMagick); + } + if (!baton->levels.empty()) { + int i = 0; + Napi::Array levels = Napi::Array::New(env, static_cast(baton->levels.size())); + for (const auto& [width, height] : baton->levels) { + Napi::Object level = Napi::Object::New(env); + level.Set("width", width); + level.Set("height", height); + levels.Set(i++, level); + } + info.Set("levels", levels); + } + if (baton->subifds > 0) { + info.Set("subifds", baton->subifds); + } + if (!baton->background.empty()) { + Napi::Object background = Napi::Object::New(env); + if (baton->background.size() == 3) { + background.Set("r", baton->background[0]); + background.Set("g", baton->background[1]); + background.Set("b", baton->background[2]); + } else { + background.Set("gray", round(baton->background[0] * 100 / 255)); + } + info.Set("background", background); + } + info.Set("hasProfile", baton->hasProfile); + info.Set("hasAlpha", baton->hasAlpha); + if (baton->orientation > 0) { + info.Set("orientation", baton->orientation); + } + Napi::Object autoOrient = Napi::Object::New(env); + info.Set("autoOrient", autoOrient); + if (baton->orientation >= 5) { + autoOrient.Set("width", baton->height); + autoOrient.Set("height", baton->width); + } else { + autoOrient.Set("width", baton->width); + autoOrient.Set("height", baton->height); + } + if (baton->exifLength > 0) { + info.Set("exif", Napi::Buffer::NewOrCopy(env, baton->exif, baton->exifLength, sharp::FreeCallback)); + } + if (baton->iccLength > 0) { + info.Set("icc", Napi::Buffer::NewOrCopy(env, baton->icc, baton->iccLength, sharp::FreeCallback)); + } + if (baton->iptcLength > 0) { + info.Set("iptc", Napi::Buffer::NewOrCopy(env, baton->iptc, baton->iptcLength, sharp::FreeCallback)); + } + if (baton->xmpLength > 0) { + if (g_utf8_validate(static_cast(baton->xmp), baton->xmpLength, nullptr)) { + info.Set("xmpAsString", + Napi::String::New(env, static_cast(baton->xmp), baton->xmpLength)); + } + info.Set("xmp", Napi::Buffer::NewOrCopy(env, baton->xmp, baton->xmpLength, sharp::FreeCallback)); + } + if (baton->tifftagPhotoshopLength > 0) { + info.Set("tifftagPhotoshop", + Napi::Buffer::NewOrCopy(env, baton->tifftagPhotoshop, + baton->tifftagPhotoshopLength, sharp::FreeCallback)); + } + if (baton->comments.size() > 0) { + int i = 0; + Napi::Array comments = Napi::Array::New(env, baton->comments.size()); + for (const auto& [keyword, text] : baton->comments) { + Napi::Object comment = Napi::Object::New(env); + comment.Set("keyword", keyword); + comment.Set("text", text); + comments.Set(i++, comment); + } + info.Set("comments", comments); + } + Callback().Call(Receiver().Value(), { env.Null(), info }); + } else { + Callback().Call(Receiver().Value(), { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + delete baton->input; + delete baton; + } + + private: + MetadataBaton* baton; + Napi::FunctionReference debuglog; +}; + +/* + metadata(options, callback) +*/ +Napi::Value metadata(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + MetadataBaton *baton = new MetadataBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + MetadataWorker *worker = new MetadataWorker(callback, baton, debuglog); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + sharp::counterQueue++; + + return info.Env().Undefined(); +} + +const char *PNG_COMMENT_START = "png-comment-"; +const int PNG_COMMENT_START_LEN = strlen(PNG_COMMENT_START); + +static void* readPNGComment(VipsImage *image, const char *field, GValue *value, void *p) { + MetadataComments *comments = static_cast(p); + + if (vips_isprefix(PNG_COMMENT_START, field)) { + const char *keyword = strchr(field + PNG_COMMENT_START_LEN, '-'); + const char *str; + if (keyword != NULL && !vips_image_get_string(image, field, &str)) { + keyword++; // Skip the hyphen + comments->push_back(std::make_pair(keyword, str)); + } + } + + return NULL; +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.h new file mode 100644 index 0000000..6f02d45 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/metadata.h @@ -0,0 +1,90 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_METADATA_H_ +#define SRC_METADATA_H_ + +#include +#include +#include + +#include "./common.h" + +typedef std::vector> MetadataComments; + +struct MetadataBaton { + // Input + sharp::InputDescriptor *input; + // Output + std::string format; + int width; + int height; + std::string space; + int channels; + std::string depth; + int density; + std::string chromaSubsampling; + bool isProgressive; + bool isPalette; + int bitsPerSample; + int pages; + int pageHeight; + int loop; + std::vector delay; + int pagePrimary; + std::string compression; + std::string resolutionUnit; + std::string formatMagick; + std::vector> levels; + int subifds; + std::vector background; + bool hasProfile; + bool hasAlpha; + int orientation; + char *exif; + size_t exifLength; + char *icc; + size_t iccLength; + char *iptc; + size_t iptcLength; + char *xmp; + size_t xmpLength; + char *tifftagPhotoshop; + size_t tifftagPhotoshopLength; + MetadataComments comments; + std::string err; + + MetadataBaton(): + input(nullptr), + width(0), + height(0), + channels(0), + density(0), + isProgressive(false), + isPalette(false), + bitsPerSample(0), + pages(0), + pageHeight(0), + loop(-1), + pagePrimary(-1), + subifds(0), + hasProfile(false), + hasAlpha(false), + orientation(0), + exif(nullptr), + exifLength(0), + icc(nullptr), + iccLength(0), + iptc(nullptr), + iptcLength(0), + xmp(nullptr), + xmpLength(0), + tifftagPhotoshop(nullptr), + tifftagPhotoshopLength(0) {} +}; + +Napi::Value metadata(const Napi::CallbackInfo& info); + +#endif // SRC_METADATA_H_ diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.cc new file mode 100644 index 0000000..daeba5a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.cc @@ -0,0 +1,499 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include +#include +#include + +#include "./common.h" +#include "./operations.h" + +using vips::VImage; +using vips::VError; + +namespace sharp { + /* + * Tint an image using the provided RGB. + */ + VImage Tint(VImage image, std::vector const tint) { + std::vector const tintLab = (VImage::black(1, 1) + tint) + .colourspace(VIPS_INTERPRETATION_LAB, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)) + .getpoint(0, 0); + // LAB identity function + VImage identityLab = VImage::identity(VImage::option()->set("bands", 3)) + .colourspace(VIPS_INTERPRETATION_LAB, VImage::option()->set("source_space", VIPS_INTERPRETATION_sRGB)); + // Scale luminance range, 0.0 to 1.0 + VImage l = identityLab[0] / 100; + // Weighting functions + VImage weightL = 1.0 - 4.0 * ((l - 0.5) * (l - 0.5)); + VImage weightAB = (weightL * tintLab).extract_band(1, VImage::option()->set("n", 2)); + identityLab = identityLab[0].bandjoin(weightAB); + // Convert lookup table to sRGB + VImage lut = identityLab.colourspace(VIPS_INTERPRETATION_sRGB, + VImage::option()->set("source_space", VIPS_INTERPRETATION_LAB)); + // Original colourspace + VipsInterpretation typeBeforeTint = image.interpretation(); + if (typeBeforeTint == VIPS_INTERPRETATION_RGB) { + typeBeforeTint = VIPS_INTERPRETATION_sRGB; + } + // Apply lookup table + if (image.has_alpha()) { + VImage alpha = image[image.bands() - 1]; + image = RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_B_W) + .maplut(lut) + .colourspace(typeBeforeTint) + .bandjoin(alpha); + } else { + image = image + .colourspace(VIPS_INTERPRETATION_B_W) + .maplut(lut) + .colourspace(typeBeforeTint); + } + return image; + } + + /* + * Stretch luminance to cover full dynamic range. + */ + VImage Normalise(VImage image, int const lower, int const upper) { + // Get original colourspace + VipsInterpretation typeBeforeNormalize = image.interpretation(); + if (typeBeforeNormalize == VIPS_INTERPRETATION_RGB) { + typeBeforeNormalize = VIPS_INTERPRETATION_sRGB; + } + // Convert to LAB colourspace + VImage lab = image.colourspace(VIPS_INTERPRETATION_LAB); + // Extract luminance + VImage luminance = lab[0]; + + // Find luminance range + int const min = lower == 0 ? luminance.min() : luminance.percent(lower); + int const max = upper == 100 ? luminance.max() : luminance.percent(upper); + + if (std::abs(max - min) > 1) { + // Extract chroma + VImage chroma = lab.extract_band(1, VImage::option()->set("n", 2)); + // Calculate multiplication factor and addition + double f = 100.0 / (max - min); + double a = -(min * f); + // Scale luminance, join to chroma, convert back to original colourspace + VImage normalized = luminance.linear(f, a).bandjoin(chroma).colourspace(typeBeforeNormalize); + // Attach original alpha channel, if any + if (image.has_alpha()) { + // Extract original alpha channel + VImage alpha = image[image.bands() - 1]; + // Join alpha channel to normalised image + return normalized.bandjoin(alpha); + } else { + return normalized; + } + } + return image; + } + + /* + * Contrast limiting adapative histogram equalization (CLAHE) + */ + VImage Clahe(VImage image, int const width, int const height, int const maxSlope) { + return image.hist_local(width, height, VImage::option()->set("max_slope", maxSlope)); + } + + /* + * Gamma encoding/decoding + */ + VImage Gamma(VImage image, double const exponent) { + if (image.has_alpha()) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image).gamma(VImage::option()->set("exponent", exponent)).bandjoin(alpha); + } else { + return image.gamma(VImage::option()->set("exponent", exponent)); + } + } + + /* + * Flatten image to remove alpha channel + */ + VImage Flatten(VImage image, std::vector flattenBackground) { + double const multiplier = sharp::Is16Bit(image.interpretation()) ? 256.0 : 1.0; + std::vector background { + flattenBackground[0] * multiplier, + flattenBackground[1] * multiplier, + flattenBackground[2] * multiplier + }; + return image.flatten(VImage::option()->set("background", background)); + } + + /** + * Produce the "negative" of the image. + */ + VImage Negate(VImage image, bool const negateAlpha) { + if (image.has_alpha() && !negateAlpha) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image).invert().bandjoin(alpha); + } else { + return image.invert(); + } + } + + /* + * Gaussian blur. Use sigma of -1.0 for fast blur. + */ + VImage Blur(VImage image, double const sigma, VipsPrecision precision, double const minAmpl) { + if (sigma == -1.0) { + // Fast, mild blur - averages neighbouring pixels + VImage blur = VImage::new_matrixv(3, 3, + 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0); + blur.set("scale", 9.0); + return image.conv(blur); + } else { + // Slower, accurate Gaussian blur + return StaySequential(image).gaussblur(sigma, VImage::option() + ->set("precision", precision) + ->set("min_ampl", minAmpl)); + } + } + + /* + * Convolution with a kernel. + */ + VImage Convolve(VImage image, int const width, int const height, + double const scale, double const offset, + std::vector const &kernel_v + ) { + VImage kernel = VImage::new_from_memory( + static_cast(const_cast(kernel_v.data())), + width * height * sizeof(double), + width, + height, + 1, + VIPS_FORMAT_DOUBLE); + kernel.set("scale", scale); + kernel.set("offset", offset); + + return image.conv(kernel); + } + + /* + * Recomb with a Matrix of the given bands/channel size. + * Eg. RGB will be a 3x3 matrix. + */ + VImage Recomb(VImage image, std::vector const& matrix) { + double* m = const_cast(matrix.data()); + image = image.colourspace(VIPS_INTERPRETATION_sRGB); + if (matrix.size() == 9) { + return image + .recomb(image.bands() == 3 + ? VImage::new_matrix(3, 3, m, 9) + : VImage::new_matrixv(4, 4, + m[0], m[1], m[2], 0.0, + m[3], m[4], m[5], 0.0, + m[6], m[7], m[8], 0.0, + 0.0, 0.0, 0.0, 1.0)); + } else { + return image.recomb(VImage::new_matrix(4, 4, m, 16)); + } + } + + VImage Modulate(VImage image, double const brightness, double const saturation, + int const hue, double const lightness) { + VipsInterpretation colourspaceBeforeModulate = image.interpretation(); + if (image.has_alpha()) { + // Separate alpha channel + VImage alpha = image[image.bands() - 1]; + return RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_LCH) + .linear( + { brightness, saturation, 1}, + { lightness, 0.0, static_cast(hue) } + ) + .colourspace(colourspaceBeforeModulate) + .bandjoin(alpha); + } else { + return image + .colourspace(VIPS_INTERPRETATION_LCH) + .linear( + { brightness, saturation, 1 }, + { lightness, 0.0, static_cast(hue) } + ) + .colourspace(colourspaceBeforeModulate); + } + } + + /* + * Sharpen flat and jagged areas. Use sigma of -1.0 for fast sharpen. + */ + VImage Sharpen(VImage image, double const sigma, double const m1, double const m2, + double const x1, double const y2, double const y3) { + if (sigma == -1.0) { + // Fast, mild sharpen + VImage sharpen = VImage::new_matrixv(3, 3, + -1.0, -1.0, -1.0, + -1.0, 32.0, -1.0, + -1.0, -1.0, -1.0); + sharpen.set("scale", 24.0); + return image.conv(sharpen); + } else { + // Slow, accurate sharpen in LAB colour space, with control over flat vs jagged areas + VipsInterpretation colourspaceBeforeSharpen = image.interpretation(); + if (colourspaceBeforeSharpen == VIPS_INTERPRETATION_RGB) { + colourspaceBeforeSharpen = VIPS_INTERPRETATION_sRGB; + } + return image + .sharpen(VImage::option() + ->set("sigma", sigma) + ->set("m1", m1) + ->set("m2", m2) + ->set("x1", x1) + ->set("y2", y2) + ->set("y3", y3)) + .colourspace(colourspaceBeforeSharpen); + } + } + + VImage Threshold(VImage image, double const threshold, bool const thresholdGrayscale) { + if (!thresholdGrayscale) { + return image >= threshold; + } + return image.colourspace(VIPS_INTERPRETATION_B_W) >= threshold; + } + + /* + Perform boolean/bitwise operation on image color channels - results in one channel image + */ + VImage Bandbool(VImage image, VipsOperationBoolean const boolean) { + image = image.bandbool(boolean); + return image.copy(VImage::option()->set("interpretation", VIPS_INTERPRETATION_B_W)); + } + + /* + Perform bitwise boolean operation between images + */ + VImage Boolean(VImage image, VImage imageR, VipsOperationBoolean const boolean) { + return image.boolean(imageR, boolean); + } + + /* + Trim an image + */ + VImage Trim(VImage image, std::vector background, double threshold, bool const lineArt) { + if (image.width() < 3 && image.height() < 3) { + throw VError("Image to trim must be at least 3x3 pixels"); + } + if (background.size() == 0) { + // Top-left pixel provides the default background colour if none is given + background = image.extract_area(0, 0, 1, 1)(0, 0); + } else if (sharp::Is16Bit(image.interpretation())) { + for (size_t i = 0; i < background.size(); i++) { + background[i] *= 256.0; + } + threshold *= 256.0; + } + std::vector backgroundAlpha({ background.back() }); + if (image.has_alpha()) { + background.pop_back(); + } else { + background.resize(image.bands()); + } + int left, top, width, height; + left = image.find_trim(&top, &width, &height, VImage::option() + ->set("background", background) + ->set("line_art", lineArt) + ->set("threshold", threshold)); + if (image.has_alpha()) { + // Search alpha channel (A) + int leftA, topA, widthA, heightA; + VImage alpha = image[image.bands() - 1]; + leftA = alpha.find_trim(&topA, &widthA, &heightA, VImage::option() + ->set("background", backgroundAlpha) + ->set("line_art", lineArt) + ->set("threshold", threshold)); + if (widthA > 0 && heightA > 0) { + if (width > 0 && height > 0) { + // Combined bounding box (B) + int const leftB = std::min(left, leftA); + int const topB = std::min(top, topA); + int const widthB = std::max(left + width, leftA + widthA) - leftB; + int const heightB = std::max(top + height, topA + heightA) - topB; + return image.extract_area(leftB, topB, widthB, heightB); + } else { + // Use alpha only + return image.extract_area(leftA, topA, widthA, heightA); + } + } + } + if (width > 0 && height > 0) { + return image.extract_area(left, top, width, height); + } + return image; + } + + /* + * Calculate (a * in + b) + */ + VImage Linear(VImage image, std::vector const a, std::vector const b) { + size_t const bands = static_cast(image.bands()); + if (a.size() > bands) { + throw VError("Band expansion using linear is unsupported"); + } + bool const uchar = !Is16Bit(image.interpretation()); + if (image.has_alpha() && a.size() != bands && (a.size() == 1 || a.size() == bands - 1 || bands - 1 == 1)) { + // Separate alpha channel + VImage alpha = image[bands - 1]; + return RemoveAlpha(image).linear(a, b, VImage::option()->set("uchar", uchar)).bandjoin(alpha); + } else { + return image.linear(a, b, VImage::option()->set("uchar", uchar)); + } + } + + /* + * Unflatten + */ + VImage Unflatten(VImage image) { + if (image.has_alpha()) { + VImage alpha = image[image.bands() - 1]; + VImage noAlpha = RemoveAlpha(image); + return noAlpha.bandjoin(alpha & (noAlpha.colourspace(VIPS_INTERPRETATION_B_W) < 255)); + } else { + return image.bandjoin(image.colourspace(VIPS_INTERPRETATION_B_W) < 255); + } + } + + /* + * Ensure the image is in a given colourspace + */ + VImage EnsureColourspace(VImage image, VipsInterpretation colourspace) { + if (colourspace != VIPS_INTERPRETATION_LAST && image.interpretation() != colourspace) { + image = image.colourspace(colourspace, + VImage::option()->set("source_space", image.interpretation())); + } + return image; + } + + /* + * Split and crop each frame, reassemble, and update pageHeight. + */ + VImage CropMultiPage(VImage image, int left, int top, int width, int height, + int nPages, int *pageHeight) { + if (top == 0 && height == *pageHeight) { + // Fast path; no need to adjust the height of the multi-page image + return image.extract_area(left, 0, width, image.height()); + } else { + std::vector pages; + pages.reserve(nPages); + + // Split the image into cropped frames + image = StaySequential(image); + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(left, *pageHeight * i + top, width, height)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } + } + + /* + * Split into frames, embed each frame, reassemble, and update pageHeight. + */ + VImage EmbedMultiPage(VImage image, int left, int top, int width, int height, + VipsExtend extendWith, std::vector background, int nPages, int *pageHeight) { + if (top == 0 && height == *pageHeight) { + // Fast path; no need to adjust the height of the multi-page image + return image.embed(left, 0, width, image.height(), VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + } else if (left == 0 && width == image.width()) { + // Fast path; no need to adjust the width of the multi-page image + std::vector pages; + pages.reserve(nPages); + + // Rearrange the tall image into a vertical grid + image = image.grid(*pageHeight, nPages, 1); + + // Do the embed on the wide image + image = image.embed(0, top, image.width(), height, VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + + // Split the wide image into frames + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(width * i, 0, width, height)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } else { + std::vector pages; + pages.reserve(nPages); + + // Split the image into frames + for (int i = 0; i < nPages; i++) { + pages.push_back( + image.extract_area(0, *pageHeight * i, image.width(), *pageHeight)); + } + + // Embed each frame in the target size + for (int i = 0; i < nPages; i++) { + pages[i] = pages[i].embed(left, top, width, height, VImage::option() + ->set("extend", extendWith) + ->set("background", background)); + } + + // Reassemble the frames into a tall, thin image + VImage assembled = VImage::arrayjoin(pages, + VImage::option()->set("across", 1)); + + // Update the page height + *pageHeight = height; + + return assembled; + } + } + + /* + * Dilate an image + */ + VImage Dilate(VImage image, int const width) { + int const maskWidth = 2 * width + 1; + VImage mask = VImage::new_matrix(maskWidth, maskWidth); + return image.morph( + mask, + VIPS_OPERATION_MORPHOLOGY_DILATE).invert(); + } + + /* + * Erode an image + */ + VImage Erode(VImage image, int const width) { + int const maskWidth = 2 * width + 1; + VImage mask = VImage::new_matrix(maskWidth, maskWidth); + return image.morph( + mask, + VIPS_OPERATION_MORPHOLOGY_ERODE).invert(); + } + +} // namespace sharp diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.h new file mode 100644 index 0000000..c281c02 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/operations.h @@ -0,0 +1,137 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_OPERATIONS_H_ +#define SRC_OPERATIONS_H_ + +#include +#include +#include +#include +#include +#include + +using vips::VImage; + +namespace sharp { + + /* + * Tint an image using the provided RGB. + */ + VImage Tint(VImage image, std::vector const tint); + + /* + * Stretch luminance to cover full dynamic range. + */ + VImage Normalise(VImage image, int const lower, int const upper); + + /* + * Contrast limiting adapative histogram equalization (CLAHE) + */ + VImage Clahe(VImage image, int const width, int const height, int const maxSlope); + + /* + * Gamma encoding/decoding + */ + VImage Gamma(VImage image, double const exponent); + + /* + * Flatten image to remove alpha channel + */ + VImage Flatten(VImage image, std::vector flattenBackground); + + /* + * Produce the "negative" of the image. + */ + VImage Negate(VImage image, bool const negateAlpha); + + /* + * Gaussian blur. Use sigma of -1.0 for fast blur. + */ + VImage Blur(VImage image, double const sigma, VipsPrecision precision, double const minAmpl); + + /* + * Convolution with a kernel. + */ + VImage Convolve(VImage image, int const width, int const height, + double const scale, double const offset, std::vector const &kernel_v); + + /* + * Sharpen flat and jagged areas. Use sigma of -1.0 for fast sharpen. + */ + VImage Sharpen(VImage image, double const sigma, double const m1, double const m2, + double const x1, double const y2, double const y3); + + /* + Threshold an image + */ + VImage Threshold(VImage image, double const threshold, bool const thresholdColor); + + /* + Perform boolean/bitwise operation on image color channels - results in one channel image + */ + VImage Bandbool(VImage image, VipsOperationBoolean const boolean); + + /* + Perform bitwise boolean operation between images + */ + VImage Boolean(VImage image, VImage imageR, VipsOperationBoolean const boolean); + + /* + Trim an image + */ + VImage Trim(VImage image, std::vector background, double threshold, bool const lineArt); + + /* + * Linear adjustment (a * in + b) + */ + VImage Linear(VImage image, std::vector const a, std::vector const b); + + /* + * Unflatten + */ + VImage Unflatten(VImage image); + + /* + * Recomb with a Matrix of the given bands/channel size. + * Eg. RGB will be a 3x3 matrix. + */ + VImage Recomb(VImage image, std::vector const &matrix); + + /* + * Modulate brightness, saturation, hue and lightness + */ + VImage Modulate(VImage image, double const brightness, double const saturation, + int const hue, double const lightness); + + /* + * Ensure the image is in a given colourspace + */ + VImage EnsureColourspace(VImage image, VipsInterpretation colourspace); + + /* + * Split and crop each frame, reassemble, and update pageHeight. + */ + VImage CropMultiPage(VImage image, int left, int top, int width, int height, + int nPages, int *pageHeight); + + /* + * Split into frames, embed each frame, reassemble, and update pageHeight. + */ + VImage EmbedMultiPage(VImage image, int left, int top, int width, int height, + VipsExtend extendWith, std::vector background, int nPages, int *pageHeight); + + /* + * Dilate an image + */ + VImage Dilate(VImage image, int const maskWidth); + + /* + * Erode an image + */ + VImage Erode(VImage image, int const maskWidth); +} // namespace sharp + +#endif // SRC_OPERATIONS_H_ diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.cc new file mode 100644 index 0000000..5f0a3bb --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.cc @@ -0,0 +1,1814 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include // NOLINT(build/c++17) +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./operations.h" +#include "./pipeline.h" + +class PipelineWorker : public Napi::AsyncWorker { + public: + PipelineWorker(Napi::Function callback, PipelineBaton *baton, + Napi::Function debuglog, Napi::Function queueListener) : + Napi::AsyncWorker(callback), + baton(baton), + debuglog(Napi::Persistent(debuglog)), + queueListener(Napi::Persistent(queueListener)) {} + ~PipelineWorker() {} + + // libuv worker + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + // Increment processing task counter + sharp::counterProcess++; + + try { + // Open input + vips::VImage image; + sharp::ImageType inputImageType; + if (baton->join.empty()) { + std::tie(image, inputImageType) = sharp::OpenInput(baton->input); + } else { + std::vector images; + bool hasAlpha = false; + for (auto &join : baton->join) { + std::tie(image, inputImageType) = sharp::OpenInput(join); + image = sharp::EnsureColourspace(image, baton->colourspacePipeline); + images.push_back(image); + hasAlpha |= image.has_alpha(); + } + if (hasAlpha) { + for (auto &image : images) { + if (!image.has_alpha()) { + image = sharp::EnsureAlpha(image, 1); + } + } + } else { + baton->input->joinBackground.pop_back(); + } + inputImageType = sharp::ImageType::PNG; + image = VImage::arrayjoin(images, VImage::option() + ->set("across", baton->input->joinAcross) + ->set("shim", baton->input->joinShim) + ->set("background", baton->input->joinBackground) + ->set("halign", baton->input->joinHalign) + ->set("valign", baton->input->joinValign)); + if (baton->input->joinAnimated) { + image = image.copy(); + image.set(VIPS_META_N_PAGES, static_cast(images.size())); + image.set(VIPS_META_PAGE_HEIGHT, static_cast(image.height() / images.size())); + } + } + VipsAccess access = baton->input->access; + image = sharp::EnsureColourspace(image, baton->colourspacePipeline); + + int nPages = baton->input->pages; + if (nPages == -1) { + // Resolve the number of pages if we need to render until the end of the document + nPages = image.get_typeof(VIPS_META_N_PAGES) != 0 + ? image.get_int(VIPS_META_N_PAGES) - baton->input->page + : 1; + } + + // Get pre-resize page height + int pageHeight = sharp::GetPageHeight(image); + + // Calculate angle of rotation + VipsAngle rotation = VIPS_ANGLE_D0; + VipsAngle autoRotation = VIPS_ANGLE_D0; + bool autoFlop = false; + + if (baton->input->autoOrient) { + // Rotate and flip image according to Exif orientation + std::tie(autoRotation, autoFlop) = CalculateExifRotationAndFlop(sharp::ExifOrientation(image)); + } + + rotation = CalculateAngleRotation(baton->angle); + + bool const shouldRotateBefore = baton->rotateBefore && + (rotation != VIPS_ANGLE_D0 || baton->flip || baton->flop || baton->rotationAngle != 0.0); + bool const shouldOrientBefore = (shouldRotateBefore || baton->orientBefore) && + (autoRotation != VIPS_ANGLE_D0 || autoFlop); + + if (shouldOrientBefore) { + image = sharp::StaySequential(image, autoRotation != VIPS_ANGLE_D0); + if (autoRotation != VIPS_ANGLE_D0) { + if (autoRotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(autoRotation); + autoRotation = VIPS_ANGLE_D0; + } + if (autoFlop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + autoFlop = false; + } + } + + if (shouldRotateBefore) { + image = sharp::StaySequential(image, rotation != VIPS_ANGLE_D0 || baton->flip || baton->rotationAngle != 0.0); + if (baton->flip) { + image = image.flip(VIPS_DIRECTION_VERTICAL); + baton->flip = false; + } + if (baton->flop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + baton->flop = false; + } + if (rotation != VIPS_ANGLE_D0) { + if (rotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(rotation); + rotation = VIPS_ANGLE_D0; + } + if (baton->rotationAngle != 0.0) { + MultiPageUnsupported(nPages, "Rotate"); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->rotationBackground, false); + image = image.rotate(baton->rotationAngle, VImage::option()->set("background", background)).copy_memory(); + baton->rotationAngle = 0.0; + } + } + + // Trim + if (baton->trimThreshold >= 0.0) { + MultiPageUnsupported(nPages, "Trim"); + image = sharp::StaySequential(image); + image = sharp::Trim(image, baton->trimBackground, baton->trimThreshold, baton->trimLineArt); + baton->trimOffsetLeft = image.xoffset(); + baton->trimOffsetTop = image.yoffset(); + } + + // Pre extraction + if (baton->topOffsetPre != -1) { + image = nPages > 1 + ? sharp::CropMultiPage(image, + baton->leftOffsetPre, baton->topOffsetPre, baton->widthPre, baton->heightPre, nPages, &pageHeight) + : image.extract_area(baton->leftOffsetPre, baton->topOffsetPre, baton->widthPre, baton->heightPre); + } + + // Get pre-resize image width and height + int inputWidth = image.width(); + int inputHeight = image.height(); + + // Is there just one page? Shrink to inputHeight instead + if (nPages == 1) { + pageHeight = inputHeight; + } + + // Scaling calculations + double hshrink; + double vshrink; + int targetResizeWidth = baton->width; + int targetResizeHeight = baton->height; + + // When auto-rotating by 90 or 270 degrees, swap the target width and + // height to ensure the behavior aligns with how it would have been if + // the rotation had taken place *before* resizing. + if (autoRotation == VIPS_ANGLE_D90 || autoRotation == VIPS_ANGLE_D270) { + std::swap(targetResizeWidth, targetResizeHeight); + } + + // Shrink to pageHeight, so we work for multi-page images + std::tie(hshrink, vshrink) = sharp::ResolveShrink( + inputWidth, pageHeight, targetResizeWidth, targetResizeHeight, + baton->canvas, baton->withoutEnlargement, baton->withoutReduction); + + // The jpeg preload shrink. + int jpegShrinkOnLoad = 1; + + // WebP, PDF, SVG scale + double scale = 1.0; + + // Try to reload input using shrink-on-load for JPEG, WebP, SVG and PDF, when: + // - the width or height parameters are specified; + // - gamma correction doesn't need to be applied; + // - trimming or pre-resize extract isn't required; + // - input colourspace is not specified; + bool const shouldPreShrink = (targetResizeWidth > 0 || targetResizeHeight > 0) && + baton->gamma == 0 && baton->topOffsetPre == -1 && baton->trimThreshold < 0.0 && + baton->colourspacePipeline == VIPS_INTERPRETATION_LAST && !(shouldOrientBefore || shouldRotateBefore); + + if (shouldPreShrink) { + // The common part of the shrink: the bit by which both axes must be shrunk + double shrink = std::min(hshrink, vshrink); + + if (inputImageType == sharp::ImageType::JPEG) { + // Leave at least a factor of two for the final resize step, when fastShrinkOnLoad: false + // for more consistent results and to avoid extra sharpness to the image + int factor = baton->fastShrinkOnLoad ? 1 : 2; + if (shrink >= 8 * factor) { + jpegShrinkOnLoad = 8; + } else if (shrink >= 4 * factor) { + jpegShrinkOnLoad = 4; + } else if (shrink >= 2 * factor) { + jpegShrinkOnLoad = 2; + } + // Lower shrink-on-load for known libjpeg rounding errors + if (jpegShrinkOnLoad > 1 && static_cast(shrink) == jpegShrinkOnLoad) { + jpegShrinkOnLoad /= 2; + } + } else if (inputImageType == sharp::ImageType::WEBP && baton->fastShrinkOnLoad && shrink > 1.0) { + // Avoid upscaling via webp + scale = 1.0 / shrink; + } else if (inputImageType == sharp::ImageType::SVG || + inputImageType == sharp::ImageType::PDF) { + scale = 1.0 / shrink; + } + } + + // Reload input using shrink-on-load, it'll be an integer shrink + // factor for jpegload*, a double scale factor for webpload*, + // pdfload* and svgload* + if (jpegShrinkOnLoad > 1) { + vips::VOption *option = GetOptionsForImageType(inputImageType, baton->input)->set("shrink", jpegShrinkOnLoad); + if (baton->input->buffer != nullptr) { + // Reload JPEG buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::jpegload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload JPEG file + image = VImage::jpegload(const_cast(baton->input->file.data()), option); + } + } else if (scale != 1.0) { + vips::VOption *option = GetOptionsForImageType(inputImageType, baton->input)->set("scale", scale); + if (inputImageType == sharp::ImageType::WEBP) { + if (baton->input->buffer != nullptr) { + // Reload WebP buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::webpload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload WebP file + image = VImage::webpload(const_cast(baton->input->file.data()), option); + } + } else if (inputImageType == sharp::ImageType::SVG) { + if (baton->input->buffer != nullptr) { + // Reload SVG buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::svgload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload SVG file + image = VImage::svgload(const_cast(baton->input->file.data()), option); + } + sharp::SetDensity(image, baton->input->density); + if (image.width() > 32767 || image.height() > 32767) { + throw vips::VError("Input SVG image will exceed 32767x32767 pixel limit when scaled"); + } + } else if (inputImageType == sharp::ImageType::PDF) { + if (baton->input->buffer != nullptr) { + // Reload PDF buffer + VipsBlob *blob = vips_blob_new(nullptr, baton->input->buffer, baton->input->bufferLength); + image = VImage::pdfload_buffer(blob, option); + vips_area_unref(reinterpret_cast(blob)); + } else { + // Reload PDF file + image = VImage::pdfload(const_cast(baton->input->file.data()), option); + } + sharp::SetDensity(image, baton->input->density); + } + } else { + if (inputImageType == sharp::ImageType::SVG && (image.width() > 32767 || image.height() > 32767)) { + throw vips::VError("Input SVG image exceeds 32767x32767 pixel limit"); + } + } + if (baton->input->autoOrient) { + image = sharp::RemoveExifOrientation(image); + } + + // Any pre-shrinking may already have been done + inputWidth = image.width(); + inputHeight = image.height(); + + // After pre-shrink, but before the main shrink stage + // Reuse the initial pageHeight if we didn't pre-shrink + if (shouldPreShrink) { + pageHeight = sharp::GetPageHeight(image); + } + + // Shrink to pageHeight, so we work for multi-page images + std::tie(hshrink, vshrink) = sharp::ResolveShrink( + inputWidth, pageHeight, targetResizeWidth, targetResizeHeight, + baton->canvas, baton->withoutEnlargement, baton->withoutReduction); + + int targetHeight = static_cast(std::rint(static_cast(pageHeight) / vshrink)); + int targetPageHeight = targetHeight; + + // In toilet-roll mode, we must adjust vshrink so that we exactly hit + // pageHeight or we'll have pixels straddling pixel boundaries + if (inputHeight > pageHeight) { + targetHeight *= nPages; + vshrink = static_cast(inputHeight) / targetHeight; + } + + // Ensure we're using a device-independent colour space + std::pair inputProfile(nullptr, 0); + if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_ICC) && baton->withIccProfile.empty()) { + // Cache input profile for use with output + inputProfile = sharp::GetProfile(image); + baton->input->ignoreIcc = true; + } + char const *processingProfile = image.interpretation() == VIPS_INTERPRETATION_RGB16 ? "p3" : "srgb"; + if ( + sharp::HasProfile(image) && + image.interpretation() != VIPS_INTERPRETATION_LABS && + image.interpretation() != VIPS_INTERPRETATION_GREY16 && + baton->colourspacePipeline != VIPS_INTERPRETATION_CMYK && + !baton->input->ignoreIcc + ) { + // Convert to sRGB/P3 using embedded profile + try { + image = image.icc_transform(processingProfile, VImage::option() + ->set("embedded", true) + ->set("depth", sharp::Is16Bit(image.interpretation()) ? 16 : 8) + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } catch(...) { + sharp::VipsWarningCallback(nullptr, G_LOG_LEVEL_WARNING, "Invalid embedded profile", nullptr); + } + } else if ( + image.interpretation() == VIPS_INTERPRETATION_CMYK && + baton->colourspacePipeline != VIPS_INTERPRETATION_CMYK + ) { + image = image.icc_transform(processingProfile, VImage::option() + ->set("input_profile", "cmyk") + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } + + // Flatten image to remove alpha channel + if (baton->flatten && image.has_alpha()) { + image = sharp::Flatten(image, baton->flattenBackground); + } + + // Gamma encoding (darken) + if (baton->gamma >= 1 && baton->gamma <= 3) { + image = sharp::Gamma(image, 1.0 / baton->gamma); + } + + // Convert to greyscale (linear, therefore after gamma encoding, if any) + if (baton->greyscale) { + image = image.colourspace(VIPS_INTERPRETATION_B_W); + } + + bool const shouldResize = hshrink != 1.0 || vshrink != 1.0; + bool const shouldBlur = baton->blurSigma != 0.0; + bool const shouldConv = baton->convKernelWidth * baton->convKernelHeight > 0; + bool const shouldSharpen = baton->sharpenSigma != 0.0; + bool const shouldComposite = !baton->composite.empty(); + + if (shouldComposite && !image.has_alpha()) { + image = sharp::EnsureAlpha(image, 1); + } + + VipsBandFormat premultiplyFormat = image.format(); + bool const shouldPremultiplyAlpha = image.has_alpha() && + (shouldResize || shouldBlur || shouldConv || shouldSharpen); + + if (shouldPremultiplyAlpha) { + image = image.premultiply().cast(premultiplyFormat); + } + + // Resize + if (shouldResize) { + image = image.resize(1.0 / hshrink, VImage::option() + ->set("vscale", 1.0 / vshrink) + ->set("kernel", baton->kernel)); + } + + image = sharp::StaySequential(image, + autoRotation != VIPS_ANGLE_D0 || + baton->flip || + rotation != VIPS_ANGLE_D0); + // Auto-rotate post-extract + if (autoRotation != VIPS_ANGLE_D0) { + if (autoRotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(autoRotation); + } + // Mirror vertically (up-down) about the x-axis + if (baton->flip) { + image = image.flip(VIPS_DIRECTION_VERTICAL); + } + // Mirror horizontally (left-right) about the y-axis + if (baton->flop != autoFlop) { + image = image.flip(VIPS_DIRECTION_HORIZONTAL); + } + // Rotate post-extract 90-angle + if (rotation != VIPS_ANGLE_D0) { + if (rotation != VIPS_ANGLE_D180) { + MultiPageUnsupported(nPages, "Rotate"); + } + image = image.rot(rotation); + } + + // Join additional color channels to the image + if (!baton->joinChannelIn.empty()) { + VImage joinImage; + sharp::ImageType joinImageType = sharp::ImageType::UNKNOWN; + + for (unsigned int i = 0; i < baton->joinChannelIn.size(); i++) { + baton->joinChannelIn[i]->access = access; + std::tie(joinImage, joinImageType) = sharp::OpenInput(baton->joinChannelIn[i]); + joinImage = sharp::EnsureColourspace(joinImage, baton->colourspacePipeline); + image = image.bandjoin(joinImage); + } + image = image.copy(VImage::option()->set("interpretation", baton->colourspace)); + image = sharp::RemoveGifPalette(image); + } + + inputWidth = image.width(); + inputHeight = nPages > 1 ? targetPageHeight : image.height(); + + // Resolve dimensions + if (baton->width <= 0) { + baton->width = inputWidth; + } + if (baton->height <= 0) { + baton->height = inputHeight; + } + + // Crop/embed + if (inputWidth != baton->width || inputHeight != baton->height) { + if (baton->canvas == sharp::Canvas::EMBED) { + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->resizeBackground, shouldPremultiplyAlpha); + + // Embed + const auto& [left, top] = sharp::CalculateEmbedPosition( + inputWidth, inputHeight, baton->width, baton->height, baton->position); + const int width = std::max(inputWidth, baton->width); + const int height = std::max(inputHeight, baton->height); + + image = nPages > 1 + ? sharp::EmbedMultiPage(image, + left, top, width, height, VIPS_EXTEND_BACKGROUND, background, nPages, &targetPageHeight) + : image.embed(left, top, width, height, VImage::option() + ->set("extend", VIPS_EXTEND_BACKGROUND) + ->set("background", background)); + } else if (baton->canvas == sharp::Canvas::CROP) { + if (baton->width > inputWidth) { + baton->width = inputWidth; + } + if (baton->height > inputHeight) { + baton->height = inputHeight; + } + + // Crop + if (baton->position < 9) { + // Gravity-based crop + const auto& [left, top] = sharp::CalculateCrop( + inputWidth, inputHeight, baton->width, baton->height, baton->position); + const int width = std::min(inputWidth, baton->width); + const int height = std::min(inputHeight, baton->height); + + image = nPages > 1 + ? sharp::CropMultiPage(image, + left, top, width, height, nPages, &targetPageHeight) + : image.extract_area(left, top, width, height); + } else { + int attention_x; + int attention_y; + + // Attention-based or Entropy-based crop + MultiPageUnsupported(nPages, "Resize strategy"); + image = sharp::StaySequential(image); + image = image.smartcrop(baton->width, baton->height, VImage::option() + ->set("interesting", baton->position == 16 ? VIPS_INTERESTING_ENTROPY : VIPS_INTERESTING_ATTENTION) + ->set("premultiplied", shouldPremultiplyAlpha) + ->set("attention_x", &attention_x) + ->set("attention_y", &attention_y)); + baton->hasCropOffset = true; + baton->cropOffsetLeft = static_cast(image.xoffset()); + baton->cropOffsetTop = static_cast(image.yoffset()); + baton->hasAttentionCenter = true; + baton->attentionX = static_cast(attention_x * jpegShrinkOnLoad / scale); + baton->attentionY = static_cast(attention_y * jpegShrinkOnLoad / scale); + } + } + } + + // Rotate post-extract non-90 angle + if (!baton->rotateBefore && baton->rotationAngle != 0.0) { + MultiPageUnsupported(nPages, "Rotate"); + image = sharp::StaySequential(image); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->rotationBackground, shouldPremultiplyAlpha); + image = image.rotate(baton->rotationAngle, VImage::option()->set("background", background)); + } + + // Post extraction + if (baton->topOffsetPost != -1) { + if (nPages > 1) { + image = sharp::CropMultiPage(image, + baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost, + nPages, &targetPageHeight); + + // heightPost is used in the info object, so update to reflect the number of pages + baton->heightPost *= nPages; + } else { + image = image.extract_area( + baton->leftOffsetPost, baton->topOffsetPost, baton->widthPost, baton->heightPost); + } + } + + // Affine transform + if (!baton->affineMatrix.empty()) { + MultiPageUnsupported(nPages, "Affine"); + image = sharp::StaySequential(image); + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->affineBackground, shouldPremultiplyAlpha); + vips::VInterpolate interp = vips::VInterpolate::new_from_name( + const_cast(baton->affineInterpolator.data())); + image = image.affine(baton->affineMatrix, VImage::option()->set("background", background) + ->set("idx", baton->affineIdx) + ->set("idy", baton->affineIdy) + ->set("odx", baton->affineOdx) + ->set("ody", baton->affineOdy) + ->set("interpolate", interp)); + } + + // Extend edges + if (baton->extendTop > 0 || baton->extendBottom > 0 || baton->extendLeft > 0 || baton->extendRight > 0) { + // Embed + baton->width = image.width() + baton->extendLeft + baton->extendRight; + baton->height = (nPages > 1 ? targetPageHeight : image.height()) + baton->extendTop + baton->extendBottom; + + if (baton->extendWith == VIPS_EXTEND_BACKGROUND) { + std::vector background; + std::tie(image, background) = sharp::ApplyAlpha(image, baton->extendBackground, shouldPremultiplyAlpha); + + image = sharp::StaySequential(image, nPages > 1); + image = nPages > 1 + ? sharp::EmbedMultiPage(image, + baton->extendLeft, baton->extendTop, baton->width, baton->height, + baton->extendWith, background, nPages, &targetPageHeight) + : image.embed(baton->extendLeft, baton->extendTop, baton->width, baton->height, + VImage::option()->set("extend", baton->extendWith)->set("background", background)); + } else { + std::vector ignoredBackground(1); + image = sharp::StaySequential(image); + image = nPages > 1 + ? sharp::EmbedMultiPage(image, + baton->extendLeft, baton->extendTop, baton->width, baton->height, + baton->extendWith, ignoredBackground, nPages, &targetPageHeight) + : image.embed(baton->extendLeft, baton->extendTop, baton->width, baton->height, + VImage::option()->set("extend", baton->extendWith)); + } + } + // Median - must happen before blurring, due to the utility of blurring after thresholding + if (baton->medianSize > 0) { + image = image.median(baton->medianSize); + } + + // Threshold - must happen before blurring, due to the utility of blurring after thresholding + // Threshold - must happen before unflatten to enable non-white unflattening + if (baton->threshold != 0) { + image = sharp::Threshold(image, baton->threshold, baton->thresholdGrayscale); + } + + // Dilate - must happen before blurring, due to the utility of dilating after thresholding + if (baton->dilateWidth != 0) { + image = sharp::Dilate(image, baton->dilateWidth); + } + + // Erode - must happen before blurring, due to the utility of eroding after thresholding + if (baton->erodeWidth != 0) { + image = sharp::Erode(image, baton->erodeWidth); + } + + // Blur + if (shouldBlur) { + image = sharp::Blur(image, baton->blurSigma, baton->precision, baton->minAmpl); + } + + // Unflatten the image + if (baton->unflatten) { + image = sharp::Unflatten(image); + } + + // Convolve + if (shouldConv) { + image = sharp::Convolve(image, + baton->convKernelWidth, baton->convKernelHeight, + baton->convKernelScale, baton->convKernelOffset, + baton->convKernel); + } + + // Recomb + if (!baton->recombMatrix.empty()) { + image = sharp::Recomb(image, baton->recombMatrix); + } + + // Modulate + if (baton->brightness != 1.0 || baton->saturation != 1.0 || baton->hue != 0.0 || baton->lightness != 0.0) { + image = sharp::Modulate(image, baton->brightness, baton->saturation, baton->hue, baton->lightness); + } + + // Sharpen + if (shouldSharpen) { + image = sharp::Sharpen(image, baton->sharpenSigma, baton->sharpenM1, baton->sharpenM2, + baton->sharpenX1, baton->sharpenY2, baton->sharpenY3); + } + + // Reverse premultiplication after all transformations + if (shouldPremultiplyAlpha) { + image = image.unpremultiply().cast(premultiplyFormat); + } + baton->premultiplied = shouldPremultiplyAlpha; + + // Composite + if (shouldComposite) { + std::vector images = { image }; + std::vector modes, xs, ys; + for (Composite *composite : baton->composite) { + VImage compositeImage; + sharp::ImageType compositeImageType = sharp::ImageType::UNKNOWN; + composite->input->access = access; + std::tie(compositeImage, compositeImageType) = sharp::OpenInput(composite->input); + + if (composite->input->autoOrient) { + // Respect EXIF Orientation + VipsAngle compositeAutoRotation = VIPS_ANGLE_D0; + bool compositeAutoFlop = false; + std::tie(compositeAutoRotation, compositeAutoFlop) = + CalculateExifRotationAndFlop(sharp::ExifOrientation(compositeImage)); + + compositeImage = sharp::RemoveExifOrientation(compositeImage); + compositeImage = sharp::StaySequential(compositeImage, compositeAutoRotation != VIPS_ANGLE_D0); + + if (compositeAutoRotation != VIPS_ANGLE_D0) { + compositeImage = compositeImage.rot(compositeAutoRotation); + } + if (compositeAutoFlop) { + compositeImage = compositeImage.flip(VIPS_DIRECTION_HORIZONTAL); + } + } + + // Verify within current dimensions + if (compositeImage.width() > image.width() || compositeImage.height() > image.height()) { + throw vips::VError("Image to composite must have same dimensions or smaller"); + } + // Check if overlay is tiled + if (composite->tile) { + int across = 0; + int down = 0; + // Use gravity in overlay + if (compositeImage.width() <= image.width()) { + across = static_cast(ceil(static_cast(image.width()) / compositeImage.width())); + // Ensure odd number of tiles across when gravity is centre, north or south + if (composite->gravity == 0 || composite->gravity == 1 || composite->gravity == 3) { + across |= 1; + } + } + if (compositeImage.height() <= image.height()) { + down = static_cast(ceil(static_cast(image.height()) / compositeImage.height())); + // Ensure odd number of tiles down when gravity is centre, east or west + if (composite->gravity == 0 || composite->gravity == 2 || composite->gravity == 4) { + down |= 1; + } + } + if (across != 0 || down != 0) { + int left; + int top; + compositeImage = sharp::StaySequential(compositeImage).replicate(across, down); + if (composite->hasOffset) { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), + composite->left, composite->top); + } else { + std::tie(left, top) = sharp::CalculateCrop( + compositeImage.width(), compositeImage.height(), image.width(), image.height(), composite->gravity); + } + compositeImage = compositeImage.extract_area(left, top, image.width(), image.height()); + } + // gravity was used for extract_area, set it back to its default value of 0 + composite->gravity = 0; + } + // Ensure image to composite is with unpremultiplied alpha + compositeImage = sharp::EnsureAlpha(compositeImage, 1); + if (composite->premultiplied) compositeImage = compositeImage.unpremultiply(); + // Calculate position + int left; + int top; + if (composite->hasOffset) { + // Composite image at given offsets + if (composite->tile) { + std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), + compositeImage.width(), compositeImage.height(), composite->left, composite->top); + } else { + left = composite->left; + top = composite->top; + } + } else { + // Composite image with given gravity + std::tie(left, top) = sharp::CalculateCrop(image.width(), image.height(), + compositeImage.width(), compositeImage.height(), composite->gravity); + } + images.push_back(compositeImage); + modes.push_back(composite->mode); + xs.push_back(left); + ys.push_back(top); + } + image = VImage::composite(images, modes, VImage::option() + ->set("compositing_space", baton->colourspacePipeline == VIPS_INTERPRETATION_LAST + ? VIPS_INTERPRETATION_sRGB + : baton->colourspacePipeline) + ->set("x", xs) + ->set("y", ys)); + image = sharp::RemoveGifPalette(image); + } + + // Gamma decoding (brighten) + if (baton->gammaOut >= 1 && baton->gammaOut <= 3) { + image = sharp::Gamma(image, baton->gammaOut); + } + + // Linear adjustment (a * in + b) + if (!baton->linearA.empty()) { + image = sharp::Linear(image, baton->linearA, baton->linearB); + } + + // Apply normalisation - stretch luminance to cover full dynamic range + if (baton->normalise) { + image = sharp::StaySequential(image); + image = sharp::Normalise(image, baton->normaliseLower, baton->normaliseUpper); + } + + // Apply contrast limiting adaptive histogram equalization (CLAHE) + if (baton->claheWidth != 0 && baton->claheHeight != 0) { + image = sharp::StaySequential(image); + image = sharp::Clahe(image, baton->claheWidth, baton->claheHeight, baton->claheMaxSlope); + } + + // Apply bitwise boolean operation between images + if (baton->boolean != nullptr) { + VImage booleanImage; + sharp::ImageType booleanImageType = sharp::ImageType::UNKNOWN; + baton->boolean->access = access; + std::tie(booleanImage, booleanImageType) = sharp::OpenInput(baton->boolean); + booleanImage = sharp::EnsureColourspace(booleanImage, baton->colourspacePipeline); + image = sharp::Boolean(image, booleanImage, baton->booleanOp); + image = sharp::RemoveGifPalette(image); + } + + // Apply per-channel Bandbool bitwise operations after all other operations + if (baton->bandBoolOp >= VIPS_OPERATION_BOOLEAN_AND && baton->bandBoolOp < VIPS_OPERATION_BOOLEAN_LAST) { + image = sharp::Bandbool(image, baton->bandBoolOp); + } + + // Tint the image + if (baton->tint[0] >= 0.0) { + image = sharp::Tint(image, baton->tint); + } + + // Remove alpha channel, if any + if (baton->removeAlpha) { + image = sharp::RemoveAlpha(image); + } + + // Ensure alpha channel, if missing + if (baton->ensureAlpha != -1) { + image = sharp::EnsureAlpha(image, baton->ensureAlpha); + } + + // Ensure output colour space + if (sharp::Is16Bit(image.interpretation())) { + image = image.cast(VIPS_FORMAT_USHORT); + } + if (image.interpretation() != baton->colourspace) { + image = image.colourspace(baton->colourspace, VImage::option()->set("source_space", image.interpretation())); + if (inputProfile.first != nullptr && baton->withIccProfile.empty()) { + image = sharp::SetProfile(image, inputProfile); + } + } + + // Extract channel + if (baton->extractChannel > -1) { + if (baton->extractChannel >= image.bands()) { + if (baton->extractChannel == 3 && image.has_alpha()) { + baton->extractChannel = image.bands() - 1; + } else { + (baton->err) + .append("Cannot extract channel ").append(std::to_string(baton->extractChannel)) + .append(" from image with channels 0-").append(std::to_string(image.bands() - 1)); + return Error(); + } + } + VipsInterpretation colourspace = sharp::Is16Bit(image.interpretation()) + ? VIPS_INTERPRETATION_GREY16 + : VIPS_INTERPRETATION_B_W; + image = image + .extract_band(baton->extractChannel) + .copy(VImage::option()->set("interpretation", colourspace)); + } + + // Apply output ICC profile + if (!baton->withIccProfile.empty()) { + try { + image = image.icc_transform(const_cast(baton->withIccProfile.data()), VImage::option() + ->set("input_profile", processingProfile) + ->set("embedded", true) + ->set("depth", sharp::Is16Bit(image.interpretation()) ? 16 : 8) + ->set("intent", VIPS_INTENT_PERCEPTUAL)); + } catch(...) { + sharp::VipsWarningCallback(nullptr, G_LOG_LEVEL_WARNING, "Invalid profile", nullptr); + } + } + + // Negate the colours in the image + if (baton->negate) { + image = sharp::Negate(image, baton->negateAlpha); + } + + // Override EXIF Orientation tag + if (baton->withMetadataOrientation != -1) { + image = sharp::SetExifOrientation(image, baton->withMetadataOrientation); + } + // Override pixel density + if (baton->withMetadataDensity > 0) { + image = sharp::SetDensity(image, baton->withMetadataDensity); + } + // EXIF key/value pairs + if (baton->keepMetadata & VIPS_FOREIGN_KEEP_EXIF) { + image = image.copy(); + if (!baton->withExifMerge) { + image = sharp::RemoveExif(image); + } + for (const auto& [key, value] : baton->withExif) { + image.set(key.c_str(), value.c_str()); + } + } + // XMP buffer + if ((baton->keepMetadata & VIPS_FOREIGN_KEEP_XMP) && !baton->withXmp.empty()) { + image = image.copy(); + image.set(VIPS_META_XMP_NAME, nullptr, + const_cast(static_cast(baton->withXmp.c_str())), baton->withXmp.size()); + } + // Number of channels used in output image + baton->channels = image.bands(); + baton->width = image.width(); + baton->height = image.height(); + + image = sharp::SetAnimationProperties( + image, nPages, targetPageHeight, baton->delay, baton->loop); + + if (image.get_typeof(VIPS_META_PAGE_HEIGHT) == G_TYPE_INT) { + baton->pageHeightOut = image.get_int(VIPS_META_PAGE_HEIGHT); + baton->pagesOut = image.get_int(VIPS_META_N_PAGES); + } + + // Output + sharp::SetTimeout(image, baton->timeoutSeconds); + if (baton->fileOut.empty()) { + // Buffer output + if (baton->formatOut == "jpeg" || (baton->formatOut == "input" && inputImageType == sharp::ImageType::JPEG)) { + // Write JPEG to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + VipsArea *area = reinterpret_cast(image.jpegsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("interlace", baton->jpegProgressive) + ->set("subsample_mode", baton->jpegChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF + : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("trellis_quant", baton->jpegTrellisQuantisation) + ->set("quant_table", baton->jpegQuantisationTable) + ->set("overshoot_deringing", baton->jpegOvershootDeringing) + ->set("optimize_scans", baton->jpegOptimiseScans) + ->set("optimize_coding", baton->jpegOptimiseCoding))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jpeg"; + if (baton->colourspace == VIPS_INTERPRETATION_CMYK) { + baton->channels = std::min(baton->channels, 4); + } else { + baton->channels = std::min(baton->channels, 3); + } + } else if (baton->formatOut == "jp2" || (baton->formatOut == "input" + && inputImageType == sharp::ImageType::JP2)) { + // Write JP2 to Buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JP2); + VipsArea *area = reinterpret_cast(image.jp2ksave_buffer(VImage::option() + ->set("Q", baton->jp2Quality) + ->set("lossless", baton->jp2Lossless) + ->set("subsample_mode", baton->jp2ChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("tile_height", baton->jp2TileHeight) + ->set("tile_width", baton->jp2TileWidth))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jp2"; + } else if (baton->formatOut == "png" || (baton->formatOut == "input" && + (inputImageType == sharp::ImageType::PNG || inputImageType == sharp::ImageType::SVG))) { + // Write PNG to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::PNG); + VipsArea *area = reinterpret_cast(image.pngsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("interlace", baton->pngProgressive) + ->set("compression", baton->pngCompressionLevel) + ->set("filter", baton->pngAdaptiveFiltering ? VIPS_FOREIGN_PNG_FILTER_ALL : VIPS_FOREIGN_PNG_FILTER_NONE) + ->set("palette", baton->pngPalette) + ->set("Q", baton->pngQuality) + ->set("effort", baton->pngEffort) + ->set("bitdepth", sharp::Is16Bit(image.interpretation()) ? 16 : baton->pngBitdepth) + ->set("dither", baton->pngDither))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "png"; + } else if (baton->formatOut == "webp" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::WEBP)) { + // Write WEBP to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::WEBP); + VipsArea *area = reinterpret_cast(image.webpsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->webpQuality) + ->set("lossless", baton->webpLossless) + ->set("near_lossless", baton->webpNearLossless) + ->set("smart_subsample", baton->webpSmartSubsample) + ->set("smart_deblock", baton->webpSmartDeblock) + ->set("preset", baton->webpPreset) + ->set("effort", baton->webpEffort) + ->set("min_size", baton->webpMinSize) + ->set("mixed", baton->webpMixed) + ->set("alpha_q", baton->webpAlphaQuality))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "webp"; + } else if (baton->formatOut == "gif" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::GIF)) { + // Write GIF to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::GIF); + VipsArea *area = reinterpret_cast(image.gifsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("bitdepth", baton->gifBitdepth) + ->set("effort", baton->gifEffort) + ->set("reuse", baton->gifReuse) + ->set("interlace", baton->gifProgressive) + ->set("interframe_maxerror", baton->gifInterFrameMaxError) + ->set("interpalette_maxerror", baton->gifInterPaletteMaxError) + ->set("keep_duplicate_frames", baton->gifKeepDuplicateFrames) + ->set("dither", baton->gifDither))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "gif"; + } else if (baton->formatOut == "tiff" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::TIFF)) { + // Write TIFF to buffer + if (baton->tiffCompression == VIPS_FOREIGN_TIFF_COMPRESSION_JPEG) { + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + baton->channels = std::min(baton->channels, 3); + } + // Cast pixel values to float, if required + if (baton->tiffPredictor == VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT) { + image = image.cast(VIPS_FORMAT_FLOAT); + } + VipsArea *area = reinterpret_cast(image.tiffsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->tiffQuality) + ->set("bitdepth", baton->tiffBitdepth) + ->set("compression", baton->tiffCompression) + ->set("bigtiff", baton->tiffBigtiff) + ->set("miniswhite", baton->tiffMiniswhite) + ->set("predictor", baton->tiffPredictor) + ->set("pyramid", baton->tiffPyramid) + ->set("tile", baton->tiffTile) + ->set("tile_height", baton->tiffTileHeight) + ->set("tile_width", baton->tiffTileWidth) + ->set("xres", baton->tiffXres) + ->set("yres", baton->tiffYres) + ->set("resunit", baton->tiffResolutionUnit))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "tiff"; + } else if (baton->formatOut == "heif" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::HEIF)) { + // Write HEIF to buffer + sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); + image = sharp::RemoveAnimationProperties(image); + VipsArea *area = reinterpret_cast(image.heifsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->heifQuality) + ->set("compression", baton->heifCompression) + ->set("effort", baton->heifEffort) + ->set("bitdepth", baton->heifBitdepth) + ->set("subsample_mode", baton->heifChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("lossless", baton->heifLossless))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "heif"; + } else if (baton->formatOut == "dz") { + // Write DZ to buffer + baton->tileContainer = VIPS_FOREIGN_DZ_CONTAINER_ZIP; + if (!image.has_alpha()) { + baton->tileBackground.pop_back(); + } + image = sharp::StaySequential(image, baton->tileAngle != 0); + vips::VOption *options = BuildOptionsDZ(baton); + VipsArea *area = reinterpret_cast(image.dzsave_buffer(options)); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "dz"; + } else if (baton->formatOut == "jxl" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::JXL)) { + // Write JXL to buffer + image = sharp::RemoveAnimationProperties(image); + VipsArea *area = reinterpret_cast(image.jxlsave_buffer(VImage::option() + ->set("keep", baton->keepMetadata) + ->set("distance", baton->jxlDistance) + ->set("tier", baton->jxlDecodingTier) + ->set("effort", baton->jxlEffort) + ->set("lossless", baton->jxlLossless))); + baton->bufferOut = static_cast(area->data); + baton->bufferOutLength = area->length; + area->free_fn = nullptr; + vips_area_unref(area); + baton->formatOut = "jxl"; + } else if (baton->formatOut == "raw" || + (baton->formatOut == "input" && inputImageType == sharp::ImageType::RAW)) { + // Write raw, uncompressed image data to buffer + if (baton->greyscale || image.interpretation() == VIPS_INTERPRETATION_B_W) { + // Extract first band for greyscale image + image = image[0]; + baton->channels = 1; + } + if (image.format() != baton->rawDepth) { + // Cast pixels to requested format + image = image.cast(baton->rawDepth); + } + // Get raw image data + baton->bufferOut = static_cast(image.write_to_memory(&baton->bufferOutLength)); + if (baton->bufferOut == nullptr) { + (baton->err).append("Could not allocate enough memory for raw output"); + return Error(); + } + baton->formatOut = "raw"; + } else { + // Unsupported output format + (baton->err).append("Unsupported output format "); + if (baton->formatOut == "input") { + (baton->err).append("when trying to match input format of "); + (baton->err).append(ImageTypeId(inputImageType)); + } else { + (baton->err).append(baton->formatOut); + } + return Error(); + } + } else { + // File output + bool const isJpeg = sharp::IsJpeg(baton->fileOut); + bool const isPng = sharp::IsPng(baton->fileOut); + bool const isWebp = sharp::IsWebp(baton->fileOut); + bool const isGif = sharp::IsGif(baton->fileOut); + bool const isTiff = sharp::IsTiff(baton->fileOut); + bool const isJp2 = sharp::IsJp2(baton->fileOut); + bool const isHeif = sharp::IsHeif(baton->fileOut); + bool const isJxl = sharp::IsJxl(baton->fileOut); + bool const isDz = sharp::IsDz(baton->fileOut); + bool const isDzZip = sharp::IsDzZip(baton->fileOut); + bool const isV = sharp::IsV(baton->fileOut); + bool const mightMatchInput = baton->formatOut == "input"; + bool const willMatchInput = mightMatchInput && + !(isJpeg || isPng || isWebp || isGif || isTiff || isJp2 || isHeif || isDz || isDzZip || isV); + + if (baton->formatOut == "jpeg" || (mightMatchInput && isJpeg) || + (willMatchInput && inputImageType == sharp::ImageType::JPEG)) { + // Write JPEG to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + image.jpegsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->jpegQuality) + ->set("interlace", baton->jpegProgressive) + ->set("subsample_mode", baton->jpegChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF + : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("trellis_quant", baton->jpegTrellisQuantisation) + ->set("quant_table", baton->jpegQuantisationTable) + ->set("overshoot_deringing", baton->jpegOvershootDeringing) + ->set("optimize_scans", baton->jpegOptimiseScans) + ->set("optimize_coding", baton->jpegOptimiseCoding)); + baton->formatOut = "jpeg"; + baton->channels = std::min(baton->channels, 3); + } else if (baton->formatOut == "jp2" || (mightMatchInput && isJp2) || + (willMatchInput && (inputImageType == sharp::ImageType::JP2))) { + // Write JP2 to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JP2); + image.jp2ksave(const_cast(baton->fileOut.data()), VImage::option() + ->set("Q", baton->jp2Quality) + ->set("lossless", baton->jp2Lossless) + ->set("subsample_mode", baton->jp2ChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("tile_height", baton->jp2TileHeight) + ->set("tile_width", baton->jp2TileWidth)); + baton->formatOut = "jp2"; + } else if (baton->formatOut == "png" || (mightMatchInput && isPng) || (willMatchInput && + (inputImageType == sharp::ImageType::PNG || inputImageType == sharp::ImageType::SVG))) { + // Write PNG to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::PNG); + image.pngsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("interlace", baton->pngProgressive) + ->set("compression", baton->pngCompressionLevel) + ->set("filter", baton->pngAdaptiveFiltering ? VIPS_FOREIGN_PNG_FILTER_ALL : VIPS_FOREIGN_PNG_FILTER_NONE) + ->set("palette", baton->pngPalette) + ->set("Q", baton->pngQuality) + ->set("bitdepth", sharp::Is16Bit(image.interpretation()) ? 16 : baton->pngBitdepth) + ->set("effort", baton->pngEffort) + ->set("dither", baton->pngDither)); + baton->formatOut = "png"; + } else if (baton->formatOut == "webp" || (mightMatchInput && isWebp) || + (willMatchInput && inputImageType == sharp::ImageType::WEBP)) { + // Write WEBP to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::WEBP); + image.webpsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->webpQuality) + ->set("lossless", baton->webpLossless) + ->set("near_lossless", baton->webpNearLossless) + ->set("smart_subsample", baton->webpSmartSubsample) + ->set("smart_deblock", baton->webpSmartDeblock) + ->set("preset", baton->webpPreset) + ->set("effort", baton->webpEffort) + ->set("min_size", baton->webpMinSize) + ->set("mixed", baton->webpMixed) + ->set("alpha_q", baton->webpAlphaQuality)); + baton->formatOut = "webp"; + } else if (baton->formatOut == "gif" || (mightMatchInput && isGif) || + (willMatchInput && inputImageType == sharp::ImageType::GIF)) { + // Write GIF to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::GIF); + image.gifsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("bitdepth", baton->gifBitdepth) + ->set("effort", baton->gifEffort) + ->set("reuse", baton->gifReuse) + ->set("interlace", baton->gifProgressive) + ->set("interframe_maxerror", baton->gifInterFrameMaxError) + ->set("interpalette_maxerror", baton->gifInterPaletteMaxError) + ->set("keep_duplicate_frames", baton->gifKeepDuplicateFrames) + ->set("dither", baton->gifDither)); + baton->formatOut = "gif"; + } else if (baton->formatOut == "tiff" || (mightMatchInput && isTiff) || + (willMatchInput && inputImageType == sharp::ImageType::TIFF)) { + // Write TIFF to file + if (baton->tiffCompression == VIPS_FOREIGN_TIFF_COMPRESSION_JPEG) { + sharp::AssertImageTypeDimensions(image, sharp::ImageType::JPEG); + baton->channels = std::min(baton->channels, 3); + } + // Cast pixel values to float, if required + if (baton->tiffPredictor == VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT) { + image = image.cast(VIPS_FORMAT_FLOAT); + } + image.tiffsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->tiffQuality) + ->set("bitdepth", baton->tiffBitdepth) + ->set("compression", baton->tiffCompression) + ->set("bigtiff", baton->tiffBigtiff) + ->set("miniswhite", baton->tiffMiniswhite) + ->set("predictor", baton->tiffPredictor) + ->set("pyramid", baton->tiffPyramid) + ->set("tile", baton->tiffTile) + ->set("tile_height", baton->tiffTileHeight) + ->set("tile_width", baton->tiffTileWidth) + ->set("xres", baton->tiffXres) + ->set("yres", baton->tiffYres) + ->set("resunit", baton->tiffResolutionUnit)); + baton->formatOut = "tiff"; + } else if (baton->formatOut == "heif" || (mightMatchInput && isHeif) || + (willMatchInput && inputImageType == sharp::ImageType::HEIF)) { + // Write HEIF to file + sharp::AssertImageTypeDimensions(image, sharp::ImageType::HEIF); + image = sharp::RemoveAnimationProperties(image); + image.heifsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("Q", baton->heifQuality) + ->set("compression", baton->heifCompression) + ->set("effort", baton->heifEffort) + ->set("bitdepth", baton->heifBitdepth) + ->set("subsample_mode", baton->heifChromaSubsampling == "4:4:4" + ? VIPS_FOREIGN_SUBSAMPLE_OFF : VIPS_FOREIGN_SUBSAMPLE_ON) + ->set("lossless", baton->heifLossless)); + baton->formatOut = "heif"; + } else if (baton->formatOut == "jxl" || (mightMatchInput && isJxl) || + (willMatchInput && inputImageType == sharp::ImageType::JXL)) { + // Write JXL to file + image = sharp::RemoveAnimationProperties(image); + image.jxlsave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata) + ->set("distance", baton->jxlDistance) + ->set("tier", baton->jxlDecodingTier) + ->set("effort", baton->jxlEffort) + ->set("lossless", baton->jxlLossless)); + baton->formatOut = "jxl"; + } else if (baton->formatOut == "dz" || isDz || isDzZip) { + // Write DZ to file + if (isDzZip) { + baton->tileContainer = VIPS_FOREIGN_DZ_CONTAINER_ZIP; + } + if (!image.has_alpha()) { + baton->tileBackground.pop_back(); + } + image = sharp::StaySequential(image, baton->tileAngle != 0); + vips::VOption *options = BuildOptionsDZ(baton); + image.dzsave(const_cast(baton->fileOut.data()), options); + baton->formatOut = "dz"; + } else if (baton->formatOut == "v" || (mightMatchInput && isV) || + (willMatchInput && inputImageType == sharp::ImageType::VIPS)) { + // Write V to file + image.vipssave(const_cast(baton->fileOut.data()), VImage::option() + ->set("keep", baton->keepMetadata)); + baton->formatOut = "v"; + } else { + // Unsupported output format + (baton->err).append("Unsupported output format " + baton->fileOut); + return Error(); + } + } + } catch (vips::VError const &err) { + char const *what = err.what(); + if (what && what[0]) { + (baton->err).append(what); + } else { + if (baton->input->failOn == VIPS_FAIL_ON_WARNING) { + (baton->err).append("Warning treated as error due to failOn setting"); + baton->errUseWarning = true; + } else { + (baton->err).append("Unknown error"); + } + } + } + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + if (baton->errUseWarning) { + (baton->err).append("\n").append(warning); + } else { + debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) }); + } + warning = sharp::VipsWarningPop(); + } + + if (baton->err.empty()) { + int width = baton->width; + int height = baton->height; + if (baton->topOffsetPre != -1 && (baton->width == -1 || baton->height == -1)) { + width = baton->widthPre; + height = baton->heightPre; + } + if (baton->topOffsetPost != -1) { + width = baton->widthPost; + height = baton->heightPost; + } + // Info Object + Napi::Object info = Napi::Object::New(env); + info.Set("format", baton->formatOut); + info.Set("width", static_cast(width)); + info.Set("height", static_cast(height)); + info.Set("channels", static_cast(baton->channels)); + if (baton->formatOut == "raw") { + info.Set("depth", vips_enum_nick(VIPS_TYPE_BAND_FORMAT, baton->rawDepth)); + } + info.Set("premultiplied", baton->premultiplied); + if (baton->hasCropOffset) { + info.Set("cropOffsetLeft", static_cast(baton->cropOffsetLeft)); + info.Set("cropOffsetTop", static_cast(baton->cropOffsetTop)); + } + if (baton->hasAttentionCenter) { + info.Set("attentionX", static_cast(baton->attentionX)); + info.Set("attentionY", static_cast(baton->attentionY)); + } + if (baton->trimThreshold >= 0.0) { + info.Set("trimOffsetLeft", static_cast(baton->trimOffsetLeft)); + info.Set("trimOffsetTop", static_cast(baton->trimOffsetTop)); + } + if (baton->input->textAutofitDpi) { + info.Set("textAutofitDpi", static_cast(baton->input->textAutofitDpi)); + } + if (baton->pageHeightOut) { + info.Set("pageHeight", static_cast(baton->pageHeightOut)); + info.Set("pages", static_cast(baton->pagesOut)); + } + + if (baton->bufferOutLength > 0) { + // Add buffer size to info + info.Set("size", static_cast(baton->bufferOutLength)); + // Pass ownership of output data to Buffer instance + Napi::Buffer data = Napi::Buffer::NewOrCopy(env, static_cast(baton->bufferOut), + baton->bufferOutLength, sharp::FreeCallback); + Callback().Call(Receiver().Value(), { env.Null(), data, info }); + } else { + // Add file size to info + if (baton->formatOut != "dz" || sharp::IsDzZip(baton->fileOut)) { + try { + uint32_t const size = static_cast( + std::filesystem::file_size(std::filesystem::u8path(baton->fileOut))); + info.Set("size", size); + } catch (...) {} + } + Callback().Call(Receiver().Value(), { env.Null(), info }); + } + } else { + Callback().Call(Receiver().Value(), { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + // Delete baton + delete baton->input; + delete baton->boolean; + for (Composite *composite : baton->composite) { + delete composite->input; + delete composite; + } + for (sharp::InputDescriptor *input : baton->joinChannelIn) { + delete input; + } + for (sharp::InputDescriptor *input : baton->join) { + delete input; + } + delete baton; + + // Decrement processing task counter + sharp::counterProcess--; + Napi::Number queueLength = Napi::Number::New(env, static_cast(sharp::counterQueue)); + queueListener.Call(Receiver().Value(), { queueLength }); + } + + private: + PipelineBaton *baton; + Napi::FunctionReference debuglog; + Napi::FunctionReference queueListener; + + void MultiPageUnsupported(int const pages, std::string op) { + if (pages > 1) { + throw vips::VError(op + " is not supported for multi-page images"); + } + } + + /* + Calculate the angle of rotation and need-to-flip for the given Exif orientation + By default, returns zero, i.e. no rotation. + */ + std::tuple + CalculateExifRotationAndFlop(int const exifOrientation) { + VipsAngle rotate = VIPS_ANGLE_D0; + bool flop = false; + switch (exifOrientation) { + case 6: rotate = VIPS_ANGLE_D90; break; + case 3: rotate = VIPS_ANGLE_D180; break; + case 8: rotate = VIPS_ANGLE_D270; break; + case 2: flop = true; break; + case 7: flop = true; rotate = VIPS_ANGLE_D270; break; + case 4: flop = true; rotate = VIPS_ANGLE_D180; break; + case 5: flop = true; rotate = VIPS_ANGLE_D90; break; + } + return std::make_tuple(rotate, flop); + } + + /* + Calculate the rotation for the given angle. + Supports any positive or negative angle that is a multiple of 90. + */ + VipsAngle + CalculateAngleRotation(int angle) { + angle = angle % 360; + if (angle < 0) + angle = 360 + angle; + switch (angle) { + case 90: return VIPS_ANGLE_D90; + case 180: return VIPS_ANGLE_D180; + case 270: return VIPS_ANGLE_D270; + } + return VIPS_ANGLE_D0; + } + + /* + Assemble the suffix argument to dzsave, which is the format (by extname) + alongside comma-separated arguments to the corresponding `formatsave` vips + action. + */ + std::string + AssembleSuffixString(std::string extname, std::vector> options) { + std::string argument; + for (const auto& [key, value] : options) { + if (!argument.empty()) { + argument += ","; + } + argument += key + "=" + value; + } + return extname + "[" + argument + "]"; + } + + /* + Build VOption for dzsave + */ + vips::VOption* + BuildOptionsDZ(PipelineBaton *baton) { + // Forward format options through suffix + std::string suffix; + if (baton->tileFormat == "png") { + std::vector> options { + {"interlace", baton->pngProgressive ? "true" : "false"}, + {"compression", std::to_string(baton->pngCompressionLevel)}, + {"filter", baton->pngAdaptiveFiltering ? "all" : "none"} + }; + suffix = AssembleSuffixString(".png", options); + } else if (baton->tileFormat == "webp") { + std::vector> options { + {"Q", std::to_string(baton->webpQuality)}, + {"alpha_q", std::to_string(baton->webpAlphaQuality)}, + {"lossless", baton->webpLossless ? "true" : "false"}, + {"near_lossless", baton->webpNearLossless ? "true" : "false"}, + {"smart_subsample", baton->webpSmartSubsample ? "true" : "false"}, + {"smart_deblock", baton->webpSmartDeblock ? "true" : "false"}, + {"preset", vips_enum_nick(VIPS_TYPE_FOREIGN_WEBP_PRESET, baton->webpPreset)}, + {"min_size", baton->webpMinSize ? "true" : "false"}, + {"mixed", baton->webpMixed ? "true" : "false"}, + {"effort", std::to_string(baton->webpEffort)} + }; + suffix = AssembleSuffixString(".webp", options); + } else { + std::vector> options { + {"Q", std::to_string(baton->jpegQuality)}, + {"interlace", baton->jpegProgressive ? "true" : "false"}, + {"subsample_mode", baton->jpegChromaSubsampling == "4:4:4" ? "off" : "on"}, + {"trellis_quant", baton->jpegTrellisQuantisation ? "true" : "false"}, + {"quant_table", std::to_string(baton->jpegQuantisationTable)}, + {"overshoot_deringing", baton->jpegOvershootDeringing ? "true": "false"}, + {"optimize_scans", baton->jpegOptimiseScans ? "true": "false"}, + {"optimize_coding", baton->jpegOptimiseCoding ? "true": "false"} + }; + std::string extname = baton->tileLayout == VIPS_FOREIGN_DZ_LAYOUT_DZ ? ".jpeg" : ".jpg"; + suffix = AssembleSuffixString(extname, options); + } + vips::VOption *options = VImage::option() + ->set("keep", baton->keepMetadata) + ->set("tile_size", baton->tileSize) + ->set("overlap", baton->tileOverlap) + ->set("container", baton->tileContainer) + ->set("layout", baton->tileLayout) + ->set("suffix", const_cast(suffix.data())) + ->set("angle", CalculateAngleRotation(baton->tileAngle)) + ->set("background", baton->tileBackground) + ->set("centre", baton->tileCentre) + ->set("id", const_cast(baton->tileId.data())) + ->set("skip_blanks", baton->tileSkipBlanks); + if (baton->tileDepth < VIPS_FOREIGN_DZ_DEPTH_LAST) { + options->set("depth", baton->tileDepth); + } + if (!baton->tileBasename.empty()) { + options->set("basename", const_cast(baton->tileBasename.data())); + } + return options; + } + + /* + Clear all thread-local data. + */ + void Error() { + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + } +}; + +/* + pipeline(options, output, callback) +*/ +Napi::Value pipeline(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + PipelineBaton *baton = new PipelineBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + // Join images together + if (sharp::HasAttr(options, "join")) { + Napi::Array join = options.Get("join").As(); + for (unsigned int i = 0; i < join.Length(); i++) { + baton->join.push_back( + sharp::CreateInputDescriptor(join.Get(i).As())); + } + } + // Extract image options + baton->topOffsetPre = sharp::AttrAsInt32(options, "topOffsetPre"); + baton->leftOffsetPre = sharp::AttrAsInt32(options, "leftOffsetPre"); + baton->widthPre = sharp::AttrAsInt32(options, "widthPre"); + baton->heightPre = sharp::AttrAsInt32(options, "heightPre"); + baton->topOffsetPost = sharp::AttrAsInt32(options, "topOffsetPost"); + baton->leftOffsetPost = sharp::AttrAsInt32(options, "leftOffsetPost"); + baton->widthPost = sharp::AttrAsInt32(options, "widthPost"); + baton->heightPost = sharp::AttrAsInt32(options, "heightPost"); + // Output image dimensions + baton->width = sharp::AttrAsInt32(options, "width"); + baton->height = sharp::AttrAsInt32(options, "height"); + // Canvas option + std::string canvas = sharp::AttrAsStr(options, "canvas"); + if (canvas == "crop") { + baton->canvas = sharp::Canvas::CROP; + } else if (canvas == "embed") { + baton->canvas = sharp::Canvas::EMBED; + } else if (canvas == "max") { + baton->canvas = sharp::Canvas::MAX; + } else if (canvas == "min") { + baton->canvas = sharp::Canvas::MIN; + } else if (canvas == "ignore_aspect") { + baton->canvas = sharp::Canvas::IGNORE_ASPECT; + } + // Composite + Napi::Array compositeArray = options.Get("composite").As(); + for (unsigned int i = 0; i < compositeArray.Length(); i++) { + Napi::Object compositeObject = compositeArray.Get(i).As(); + Composite *composite = new Composite; + composite->input = sharp::CreateInputDescriptor(compositeObject.Get("input").As()); + composite->mode = sharp::AttrAsEnum(compositeObject, "blend", VIPS_TYPE_BLEND_MODE); + composite->gravity = sharp::AttrAsUint32(compositeObject, "gravity"); + composite->left = sharp::AttrAsInt32(compositeObject, "left"); + composite->top = sharp::AttrAsInt32(compositeObject, "top"); + composite->hasOffset = sharp::AttrAsBool(compositeObject, "hasOffset"); + composite->tile = sharp::AttrAsBool(compositeObject, "tile"); + composite->premultiplied = sharp::AttrAsBool(compositeObject, "premultiplied"); + baton->composite.push_back(composite); + } + // Resize options + baton->withoutEnlargement = sharp::AttrAsBool(options, "withoutEnlargement"); + baton->withoutReduction = sharp::AttrAsBool(options, "withoutReduction"); + baton->position = sharp::AttrAsInt32(options, "position"); + baton->resizeBackground = sharp::AttrAsVectorOfDouble(options, "resizeBackground"); + baton->kernel = sharp::AttrAsEnum(options, "kernel", VIPS_TYPE_KERNEL); + baton->fastShrinkOnLoad = sharp::AttrAsBool(options, "fastShrinkOnLoad"); + // Join Channel Options + if (options.Has("joinChannelIn")) { + Napi::Array joinChannelArray = options.Get("joinChannelIn").As(); + for (unsigned int i = 0; i < joinChannelArray.Length(); i++) { + baton->joinChannelIn.push_back( + sharp::CreateInputDescriptor(joinChannelArray.Get(i).As())); + } + } + // Operators + baton->flatten = sharp::AttrAsBool(options, "flatten"); + baton->flattenBackground = sharp::AttrAsVectorOfDouble(options, "flattenBackground"); + baton->unflatten = sharp::AttrAsBool(options, "unflatten"); + baton->negate = sharp::AttrAsBool(options, "negate"); + baton->negateAlpha = sharp::AttrAsBool(options, "negateAlpha"); + baton->blurSigma = sharp::AttrAsDouble(options, "blurSigma"); + baton->precision = sharp::AttrAsEnum(options, "precision", VIPS_TYPE_PRECISION); + baton->minAmpl = sharp::AttrAsDouble(options, "minAmpl"); + baton->brightness = sharp::AttrAsDouble(options, "brightness"); + baton->saturation = sharp::AttrAsDouble(options, "saturation"); + baton->hue = sharp::AttrAsInt32(options, "hue"); + baton->lightness = sharp::AttrAsDouble(options, "lightness"); + baton->medianSize = sharp::AttrAsUint32(options, "medianSize"); + baton->sharpenSigma = sharp::AttrAsDouble(options, "sharpenSigma"); + baton->sharpenM1 = sharp::AttrAsDouble(options, "sharpenM1"); + baton->sharpenM2 = sharp::AttrAsDouble(options, "sharpenM2"); + baton->sharpenX1 = sharp::AttrAsDouble(options, "sharpenX1"); + baton->sharpenY2 = sharp::AttrAsDouble(options, "sharpenY2"); + baton->sharpenY3 = sharp::AttrAsDouble(options, "sharpenY3"); + baton->threshold = sharp::AttrAsInt32(options, "threshold"); + baton->thresholdGrayscale = sharp::AttrAsBool(options, "thresholdGrayscale"); + baton->trimBackground = sharp::AttrAsVectorOfDouble(options, "trimBackground"); + baton->trimThreshold = sharp::AttrAsDouble(options, "trimThreshold"); + baton->trimLineArt = sharp::AttrAsBool(options, "trimLineArt"); + baton->gamma = sharp::AttrAsDouble(options, "gamma"); + baton->gammaOut = sharp::AttrAsDouble(options, "gammaOut"); + baton->linearA = sharp::AttrAsVectorOfDouble(options, "linearA"); + baton->linearB = sharp::AttrAsVectorOfDouble(options, "linearB"); + baton->dilateWidth = sharp::AttrAsUint32(options, "dilateWidth"); + baton->erodeWidth = sharp::AttrAsUint32(options, "erodeWidth"); + baton->greyscale = sharp::AttrAsBool(options, "greyscale"); + baton->normalise = sharp::AttrAsBool(options, "normalise"); + baton->normaliseLower = sharp::AttrAsUint32(options, "normaliseLower"); + baton->normaliseUpper = sharp::AttrAsUint32(options, "normaliseUpper"); + baton->tint = sharp::AttrAsVectorOfDouble(options, "tint"); + baton->claheWidth = sharp::AttrAsUint32(options, "claheWidth"); + baton->claheHeight = sharp::AttrAsUint32(options, "claheHeight"); + baton->claheMaxSlope = sharp::AttrAsUint32(options, "claheMaxSlope"); + baton->angle = sharp::AttrAsInt32(options, "angle"); + baton->rotationAngle = sharp::AttrAsDouble(options, "rotationAngle"); + baton->rotationBackground = sharp::AttrAsVectorOfDouble(options, "rotationBackground"); + baton->rotateBefore = sharp::AttrAsBool(options, "rotateBefore"); + baton->orientBefore = sharp::AttrAsBool(options, "orientBefore"); + baton->flip = sharp::AttrAsBool(options, "flip"); + baton->flop = sharp::AttrAsBool(options, "flop"); + baton->extendTop = sharp::AttrAsInt32(options, "extendTop"); + baton->extendBottom = sharp::AttrAsInt32(options, "extendBottom"); + baton->extendLeft = sharp::AttrAsInt32(options, "extendLeft"); + baton->extendRight = sharp::AttrAsInt32(options, "extendRight"); + baton->extendBackground = sharp::AttrAsVectorOfDouble(options, "extendBackground"); + baton->extendWith = sharp::AttrAsEnum(options, "extendWith", VIPS_TYPE_EXTEND); + baton->extractChannel = sharp::AttrAsInt32(options, "extractChannel"); + baton->affineMatrix = sharp::AttrAsVectorOfDouble(options, "affineMatrix"); + baton->affineBackground = sharp::AttrAsVectorOfDouble(options, "affineBackground"); + baton->affineIdx = sharp::AttrAsDouble(options, "affineIdx"); + baton->affineIdy = sharp::AttrAsDouble(options, "affineIdy"); + baton->affineOdx = sharp::AttrAsDouble(options, "affineOdx"); + baton->affineOdy = sharp::AttrAsDouble(options, "affineOdy"); + baton->affineInterpolator = sharp::AttrAsStr(options, "affineInterpolator"); + baton->removeAlpha = sharp::AttrAsBool(options, "removeAlpha"); + baton->ensureAlpha = sharp::AttrAsDouble(options, "ensureAlpha"); + if (options.Has("boolean")) { + baton->boolean = sharp::CreateInputDescriptor(options.Get("boolean").As()); + baton->booleanOp = sharp::AttrAsEnum(options, "booleanOp", VIPS_TYPE_OPERATION_BOOLEAN); + } + if (options.Has("bandBoolOp")) { + baton->bandBoolOp = sharp::AttrAsEnum(options, "bandBoolOp", VIPS_TYPE_OPERATION_BOOLEAN); + } + if (options.Has("convKernel")) { + Napi::Object kernel = options.Get("convKernel").As(); + baton->convKernelWidth = sharp::AttrAsUint32(kernel, "width"); + baton->convKernelHeight = sharp::AttrAsUint32(kernel, "height"); + baton->convKernelScale = sharp::AttrAsDouble(kernel, "scale"); + baton->convKernelOffset = sharp::AttrAsDouble(kernel, "offset"); + size_t const kernelSize = static_cast(baton->convKernelWidth * baton->convKernelHeight); + baton->convKernel.resize(kernelSize); + Napi::Array kdata = kernel.Get("kernel").As(); + for (unsigned int i = 0; i < kernelSize; i++) { + baton->convKernel[i] = sharp::AttrAsDouble(kdata, i); + } + } + if (options.Has("recombMatrix")) { + Napi::Array recombMatrix = options.Get("recombMatrix").As(); + unsigned int matrixElements = recombMatrix.Length(); + baton->recombMatrix.resize(matrixElements); + for (unsigned int i = 0; i < matrixElements; i++) { + baton->recombMatrix[i] = sharp::AttrAsDouble(recombMatrix, i); + } + } + baton->colourspacePipeline = sharp::AttrAsEnum( + options, "colourspacePipeline", VIPS_TYPE_INTERPRETATION); + if (baton->colourspacePipeline == VIPS_INTERPRETATION_ERROR) { + baton->colourspacePipeline = VIPS_INTERPRETATION_LAST; + } + baton->colourspace = sharp::AttrAsEnum(options, "colourspace", VIPS_TYPE_INTERPRETATION); + if (baton->colourspace == VIPS_INTERPRETATION_ERROR) { + baton->colourspace = VIPS_INTERPRETATION_sRGB; + } + // Output + baton->formatOut = sharp::AttrAsStr(options, "formatOut"); + baton->fileOut = sharp::AttrAsStr(options, "fileOut"); + baton->keepMetadata = sharp::AttrAsUint32(options, "keepMetadata"); + baton->withMetadataOrientation = sharp::AttrAsUint32(options, "withMetadataOrientation"); + baton->withMetadataDensity = sharp::AttrAsDouble(options, "withMetadataDensity"); + baton->withIccProfile = sharp::AttrAsStr(options, "withIccProfile"); + Napi::Object withExif = options.Get("withExif").As(); + Napi::Array withExifKeys = withExif.GetPropertyNames(); + for (unsigned int i = 0; i < withExifKeys.Length(); i++) { + std::string k = sharp::AttrAsStr(withExifKeys, i); + if (withExif.HasOwnProperty(k)) { + baton->withExif.insert(std::make_pair(k, sharp::AttrAsStr(withExif, k))); + } + } + baton->withExifMerge = sharp::AttrAsBool(options, "withExifMerge"); + baton->withXmp = sharp::AttrAsStr(options, "withXmp"); + baton->timeoutSeconds = sharp::AttrAsUint32(options, "timeoutSeconds"); + baton->loop = sharp::AttrAsUint32(options, "loop"); + baton->delay = sharp::AttrAsInt32Vector(options, "delay"); + // Format-specific + baton->jpegQuality = sharp::AttrAsUint32(options, "jpegQuality"); + baton->jpegProgressive = sharp::AttrAsBool(options, "jpegProgressive"); + baton->jpegChromaSubsampling = sharp::AttrAsStr(options, "jpegChromaSubsampling"); + baton->jpegTrellisQuantisation = sharp::AttrAsBool(options, "jpegTrellisQuantisation"); + baton->jpegQuantisationTable = sharp::AttrAsUint32(options, "jpegQuantisationTable"); + baton->jpegOvershootDeringing = sharp::AttrAsBool(options, "jpegOvershootDeringing"); + baton->jpegOptimiseScans = sharp::AttrAsBool(options, "jpegOptimiseScans"); + baton->jpegOptimiseCoding = sharp::AttrAsBool(options, "jpegOptimiseCoding"); + baton->pngProgressive = sharp::AttrAsBool(options, "pngProgressive"); + baton->pngCompressionLevel = sharp::AttrAsUint32(options, "pngCompressionLevel"); + baton->pngAdaptiveFiltering = sharp::AttrAsBool(options, "pngAdaptiveFiltering"); + baton->pngPalette = sharp::AttrAsBool(options, "pngPalette"); + baton->pngQuality = sharp::AttrAsUint32(options, "pngQuality"); + baton->pngEffort = sharp::AttrAsUint32(options, "pngEffort"); + baton->pngBitdepth = sharp::AttrAsUint32(options, "pngBitdepth"); + baton->pngDither = sharp::AttrAsDouble(options, "pngDither"); + baton->jp2Quality = sharp::AttrAsUint32(options, "jp2Quality"); + baton->jp2Lossless = sharp::AttrAsBool(options, "jp2Lossless"); + baton->jp2TileHeight = sharp::AttrAsUint32(options, "jp2TileHeight"); + baton->jp2TileWidth = sharp::AttrAsUint32(options, "jp2TileWidth"); + baton->jp2ChromaSubsampling = sharp::AttrAsStr(options, "jp2ChromaSubsampling"); + baton->webpQuality = sharp::AttrAsUint32(options, "webpQuality"); + baton->webpAlphaQuality = sharp::AttrAsUint32(options, "webpAlphaQuality"); + baton->webpLossless = sharp::AttrAsBool(options, "webpLossless"); + baton->webpNearLossless = sharp::AttrAsBool(options, "webpNearLossless"); + baton->webpSmartSubsample = sharp::AttrAsBool(options, "webpSmartSubsample"); + baton->webpSmartDeblock = sharp::AttrAsBool(options, "webpSmartDeblock"); + baton->webpPreset = sharp::AttrAsEnum(options, "webpPreset", VIPS_TYPE_FOREIGN_WEBP_PRESET); + baton->webpEffort = sharp::AttrAsUint32(options, "webpEffort"); + baton->webpMinSize = sharp::AttrAsBool(options, "webpMinSize"); + baton->webpMixed = sharp::AttrAsBool(options, "webpMixed"); + baton->gifBitdepth = sharp::AttrAsUint32(options, "gifBitdepth"); + baton->gifEffort = sharp::AttrAsUint32(options, "gifEffort"); + baton->gifDither = sharp::AttrAsDouble(options, "gifDither"); + baton->gifInterFrameMaxError = sharp::AttrAsDouble(options, "gifInterFrameMaxError"); + baton->gifInterPaletteMaxError = sharp::AttrAsDouble(options, "gifInterPaletteMaxError"); + baton->gifKeepDuplicateFrames = sharp::AttrAsBool(options, "gifKeepDuplicateFrames"); + baton->gifReuse = sharp::AttrAsBool(options, "gifReuse"); + baton->gifProgressive = sharp::AttrAsBool(options, "gifProgressive"); + baton->tiffQuality = sharp::AttrAsUint32(options, "tiffQuality"); + baton->tiffBigtiff = sharp::AttrAsBool(options, "tiffBigtiff"); + baton->tiffPyramid = sharp::AttrAsBool(options, "tiffPyramid"); + baton->tiffMiniswhite = sharp::AttrAsBool(options, "tiffMiniswhite"); + baton->tiffBitdepth = sharp::AttrAsUint32(options, "tiffBitdepth"); + baton->tiffTile = sharp::AttrAsBool(options, "tiffTile"); + baton->tiffTileWidth = sharp::AttrAsUint32(options, "tiffTileWidth"); + baton->tiffTileHeight = sharp::AttrAsUint32(options, "tiffTileHeight"); + baton->tiffXres = sharp::AttrAsDouble(options, "tiffXres"); + baton->tiffYres = sharp::AttrAsDouble(options, "tiffYres"); + if (baton->tiffXres == 1.0 && baton->tiffYres == 1.0 && baton->withMetadataDensity > 0) { + baton->tiffXres = baton->tiffYres = baton->withMetadataDensity / 25.4; + } + baton->tiffCompression = sharp::AttrAsEnum( + options, "tiffCompression", VIPS_TYPE_FOREIGN_TIFF_COMPRESSION); + baton->tiffPredictor = sharp::AttrAsEnum( + options, "tiffPredictor", VIPS_TYPE_FOREIGN_TIFF_PREDICTOR); + baton->tiffResolutionUnit = sharp::AttrAsEnum( + options, "tiffResolutionUnit", VIPS_TYPE_FOREIGN_TIFF_RESUNIT); + baton->heifQuality = sharp::AttrAsUint32(options, "heifQuality"); + baton->heifLossless = sharp::AttrAsBool(options, "heifLossless"); + baton->heifCompression = sharp::AttrAsEnum( + options, "heifCompression", VIPS_TYPE_FOREIGN_HEIF_COMPRESSION); + baton->heifEffort = sharp::AttrAsUint32(options, "heifEffort"); + baton->heifChromaSubsampling = sharp::AttrAsStr(options, "heifChromaSubsampling"); + baton->heifBitdepth = sharp::AttrAsUint32(options, "heifBitdepth"); + baton->jxlDistance = sharp::AttrAsDouble(options, "jxlDistance"); + baton->jxlDecodingTier = sharp::AttrAsUint32(options, "jxlDecodingTier"); + baton->jxlEffort = sharp::AttrAsUint32(options, "jxlEffort"); + baton->jxlLossless = sharp::AttrAsBool(options, "jxlLossless"); + baton->rawDepth = sharp::AttrAsEnum(options, "rawDepth", VIPS_TYPE_BAND_FORMAT); + baton->tileSize = sharp::AttrAsUint32(options, "tileSize"); + baton->tileOverlap = sharp::AttrAsUint32(options, "tileOverlap"); + baton->tileAngle = sharp::AttrAsInt32(options, "tileAngle"); + baton->tileBackground = sharp::AttrAsVectorOfDouble(options, "tileBackground"); + baton->tileSkipBlanks = sharp::AttrAsInt32(options, "tileSkipBlanks"); + baton->tileContainer = sharp::AttrAsEnum( + options, "tileContainer", VIPS_TYPE_FOREIGN_DZ_CONTAINER); + baton->tileLayout = sharp::AttrAsEnum(options, "tileLayout", VIPS_TYPE_FOREIGN_DZ_LAYOUT); + baton->tileFormat = sharp::AttrAsStr(options, "tileFormat"); + baton->tileDepth = sharp::AttrAsEnum(options, "tileDepth", VIPS_TYPE_FOREIGN_DZ_DEPTH); + baton->tileCentre = sharp::AttrAsBool(options, "tileCentre"); + baton->tileId = sharp::AttrAsStr(options, "tileId"); + baton->tileBasename = sharp::AttrAsStr(options, "tileBasename"); + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Function to notify of queue length changes + Napi::Function queueListener = options.Get("queueListener").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + PipelineWorker *worker = new PipelineWorker(callback, baton, debuglog, queueListener); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + Napi::Number queueLength = Napi::Number::New(info.Env(), static_cast(++sharp::counterQueue)); + queueListener.Call(info.This(), { queueLength }); + + return info.Env().Undefined(); +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.h new file mode 100644 index 0000000..ff94659 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/pipeline.h @@ -0,0 +1,408 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_PIPELINE_H_ +#define SRC_PIPELINE_H_ + +#include +#include +#include +#include + +#include +#include + +#include "./common.h" + +Napi::Value pipeline(const Napi::CallbackInfo& info); + +struct Composite { + sharp::InputDescriptor *input; + VipsBlendMode mode; + int gravity; + int left; + int top; + bool hasOffset; + bool tile; + bool premultiplied; + + Composite(): + input(nullptr), + mode(VIPS_BLEND_MODE_OVER), + gravity(0), + left(0), + top(0), + hasOffset(false), + tile(false), + premultiplied(false) {} +}; + +struct PipelineBaton { + sharp::InputDescriptor *input; + std::vector join; + std::string formatOut; + std::string fileOut; + void *bufferOut; + size_t bufferOutLength; + int pageHeightOut; + int pagesOut; + std::vector composite; + std::vector joinChannelIn; + int topOffsetPre; + int leftOffsetPre; + int widthPre; + int heightPre; + int topOffsetPost; + int leftOffsetPost; + int widthPost; + int heightPost; + int width; + int height; + int channels; + VipsKernel kernel; + sharp::Canvas canvas; + int position; + std::vector resizeBackground; + bool hasCropOffset; + int cropOffsetLeft; + int cropOffsetTop; + bool hasAttentionCenter; + int attentionX; + int attentionY; + bool premultiplied; + bool tileCentre; + bool fastShrinkOnLoad; + std::vector tint; + bool flatten; + std::vector flattenBackground; + bool unflatten; + bool negate; + bool negateAlpha; + double blurSigma; + VipsPrecision precision; + double minAmpl; + double brightness; + double saturation; + int hue; + double lightness; + int medianSize; + double sharpenSigma; + double sharpenM1; + double sharpenM2; + double sharpenX1; + double sharpenY2; + double sharpenY3; + int threshold; + bool thresholdGrayscale; + std::vector trimBackground; + double trimThreshold; + bool trimLineArt; + int trimOffsetLeft; + int trimOffsetTop; + std::vector linearA; + std::vector linearB; + int dilateWidth; + int erodeWidth; + double gamma; + double gammaOut; + bool greyscale; + bool normalise; + int normaliseLower; + int normaliseUpper; + int claheWidth; + int claheHeight; + int claheMaxSlope; + int angle; + double rotationAngle; + std::vector rotationBackground; + bool rotateBefore; + bool orientBefore; + bool flip; + bool flop; + int extendTop; + int extendBottom; + int extendLeft; + int extendRight; + std::vector extendBackground; + VipsExtend extendWith; + bool withoutEnlargement; + bool withoutReduction; + std::vector affineMatrix; + std::vector affineBackground; + double affineIdx; + double affineIdy; + double affineOdx; + double affineOdy; + std::string affineInterpolator; + int jpegQuality; + bool jpegProgressive; + std::string jpegChromaSubsampling; + bool jpegTrellisQuantisation; + int jpegQuantisationTable; + bool jpegOvershootDeringing; + bool jpegOptimiseScans; + bool jpegOptimiseCoding; + bool pngProgressive; + int pngCompressionLevel; + bool pngAdaptiveFiltering; + bool pngPalette; + int pngQuality; + int pngEffort; + int pngBitdepth; + double pngDither; + int jp2Quality; + bool jp2Lossless; + int jp2TileHeight; + int jp2TileWidth; + std::string jp2ChromaSubsampling; + int webpQuality; + int webpAlphaQuality; + bool webpNearLossless; + bool webpLossless; + bool webpSmartSubsample; + bool webpSmartDeblock; + VipsForeignWebpPreset webpPreset; + int webpEffort; + bool webpMinSize; + bool webpMixed; + int gifBitdepth; + int gifEffort; + double gifDither; + double gifInterFrameMaxError; + double gifInterPaletteMaxError; + bool gifKeepDuplicateFrames; + bool gifReuse; + bool gifProgressive; + int tiffQuality; + VipsForeignTiffCompression tiffCompression; + bool tiffBigtiff; + VipsForeignTiffPredictor tiffPredictor; + bool tiffPyramid; + int tiffBitdepth; + bool tiffMiniswhite; + bool tiffTile; + int tiffTileHeight; + int tiffTileWidth; + double tiffXres; + double tiffYres; + VipsForeignTiffResunit tiffResolutionUnit; + int heifQuality; + VipsForeignHeifCompression heifCompression; + int heifEffort; + std::string heifChromaSubsampling; + bool heifLossless; + int heifBitdepth; + double jxlDistance; + int jxlDecodingTier; + int jxlEffort; + bool jxlLossless; + VipsBandFormat rawDepth; + std::string err; + bool errUseWarning; + int keepMetadata; + int withMetadataOrientation; + double withMetadataDensity; + std::string withIccProfile; + std::unordered_map withExif; + bool withExifMerge; + std::string withXmp; + int timeoutSeconds; + std::vector convKernel; + int convKernelWidth; + int convKernelHeight; + double convKernelScale; + double convKernelOffset; + sharp::InputDescriptor *boolean; + VipsOperationBoolean booleanOp; + VipsOperationBoolean bandBoolOp; + int extractChannel; + bool removeAlpha; + double ensureAlpha; + VipsInterpretation colourspacePipeline; + VipsInterpretation colourspace; + std::vector delay; + int loop; + int tileSize; + int tileOverlap; + VipsForeignDzContainer tileContainer; + VipsForeignDzLayout tileLayout; + std::string tileFormat; + int tileAngle; + std::vector tileBackground; + int tileSkipBlanks; + VipsForeignDzDepth tileDepth; + std::string tileId; + std::string tileBasename; + std::vector recombMatrix; + + PipelineBaton(): + input(nullptr), + bufferOutLength(0), + pageHeightOut(0), + pagesOut(0), + topOffsetPre(-1), + topOffsetPost(-1), + channels(0), + kernel(VIPS_KERNEL_LANCZOS3), + canvas(sharp::Canvas::CROP), + position(0), + resizeBackground{ 0.0, 0.0, 0.0, 255.0 }, + hasCropOffset(false), + cropOffsetLeft(0), + cropOffsetTop(0), + hasAttentionCenter(false), + attentionX(0), + attentionY(0), + premultiplied(false), + tint{ -1.0, 0.0, 0.0, 0.0 }, + flatten(false), + flattenBackground{ 0.0, 0.0, 0.0 }, + unflatten(false), + negate(false), + negateAlpha(true), + blurSigma(0.0), + brightness(1.0), + saturation(1.0), + hue(0), + lightness(0), + medianSize(0), + sharpenSigma(0.0), + sharpenM1(1.0), + sharpenM2(2.0), + sharpenX1(2.0), + sharpenY2(10.0), + sharpenY3(20.0), + threshold(0), + thresholdGrayscale(true), + trimBackground{}, + trimThreshold(-1.0), + trimLineArt(false), + trimOffsetLeft(0), + trimOffsetTop(0), + linearA{}, + linearB{}, + dilateWidth(0), + erodeWidth(0), + gamma(0.0), + greyscale(false), + normalise(false), + normaliseLower(1), + normaliseUpper(99), + claheWidth(0), + claheHeight(0), + claheMaxSlope(3), + angle(0), + rotationAngle(0.0), + rotationBackground{ 0.0, 0.0, 0.0, 255.0 }, + flip(false), + flop(false), + extendTop(0), + extendBottom(0), + extendLeft(0), + extendRight(0), + extendBackground{ 0.0, 0.0, 0.0, 255.0 }, + extendWith(VIPS_EXTEND_BACKGROUND), + withoutEnlargement(false), + withoutReduction(false), + affineMatrix{ 1.0, 0.0, 0.0, 1.0 }, + affineBackground{ 0.0, 0.0, 0.0, 255.0 }, + affineIdx(0), + affineIdy(0), + affineOdx(0), + affineOdy(0), + affineInterpolator("bicubic"), + jpegQuality(80), + jpegProgressive(false), + jpegChromaSubsampling("4:2:0"), + jpegTrellisQuantisation(false), + jpegQuantisationTable(0), + jpegOvershootDeringing(false), + jpegOptimiseScans(false), + jpegOptimiseCoding(true), + pngProgressive(false), + pngCompressionLevel(6), + pngAdaptiveFiltering(false), + pngPalette(false), + pngQuality(100), + pngEffort(7), + pngBitdepth(8), + pngDither(1.0), + jp2Quality(80), + jp2Lossless(false), + jp2TileHeight(512), + jp2TileWidth(512), + jp2ChromaSubsampling("4:4:4"), + webpQuality(80), + webpAlphaQuality(100), + webpNearLossless(false), + webpLossless(false), + webpSmartSubsample(false), + webpSmartDeblock(false), + webpPreset(VIPS_FOREIGN_WEBP_PRESET_DEFAULT), + webpEffort(4), + webpMinSize(false), + webpMixed(false), + gifBitdepth(8), + gifEffort(7), + gifDither(1.0), + gifInterFrameMaxError(0.0), + gifInterPaletteMaxError(3.0), + gifKeepDuplicateFrames(false), + gifReuse(true), + gifProgressive(false), + tiffQuality(80), + tiffCompression(VIPS_FOREIGN_TIFF_COMPRESSION_JPEG), + tiffBigtiff(false), + tiffPredictor(VIPS_FOREIGN_TIFF_PREDICTOR_HORIZONTAL), + tiffPyramid(false), + tiffBitdepth(8), + tiffMiniswhite(false), + tiffTile(false), + tiffTileHeight(256), + tiffTileWidth(256), + tiffXres(1.0), + tiffYres(1.0), + tiffResolutionUnit(VIPS_FOREIGN_TIFF_RESUNIT_INCH), + heifQuality(50), + heifCompression(VIPS_FOREIGN_HEIF_COMPRESSION_AV1), + heifEffort(4), + heifChromaSubsampling("4:4:4"), + heifLossless(false), + heifBitdepth(8), + jxlDistance(1.0), + jxlDecodingTier(0), + jxlEffort(7), + jxlLossless(false), + rawDepth(VIPS_FORMAT_UCHAR), + errUseWarning(false), + keepMetadata(0), + withMetadataOrientation(-1), + withMetadataDensity(0.0), + withExifMerge(true), + timeoutSeconds(0), + convKernelWidth(0), + convKernelHeight(0), + convKernelScale(0.0), + convKernelOffset(0.0), + boolean(nullptr), + booleanOp(VIPS_OPERATION_BOOLEAN_LAST), + bandBoolOp(VIPS_OPERATION_BOOLEAN_LAST), + extractChannel(-1), + removeAlpha(false), + ensureAlpha(-1.0), + colourspacePipeline(VIPS_INTERPRETATION_LAST), + colourspace(VIPS_INTERPRETATION_LAST), + loop(-1), + tileSize(256), + tileOverlap(0), + tileContainer(VIPS_FOREIGN_DZ_CONTAINER_FS), + tileLayout(VIPS_FOREIGN_DZ_LAYOUT_DZ), + tileAngle(0), + tileBackground{ 255.0, 255.0, 255.0, 255.0 }, + tileSkipBlanks(-1), + tileDepth(VIPS_FOREIGN_DZ_DEPTH_LAST) {} +}; + +#endif // SRC_PIPELINE_H_ diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/sharp.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/sharp.cc new file mode 100644 index 0000000..7678975 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/sharp.cc @@ -0,0 +1,43 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include + +#include +#include + +#include "./common.h" +#include "./metadata.h" +#include "./pipeline.h" +#include "./stats.h" +#include "./utilities.h" + +Napi::Object init(Napi::Env env, Napi::Object exports) { + static std::once_flag sharp_vips_init_once; + std::call_once(sharp_vips_init_once, []() { + vips_init("sharp"); + }); + + g_log_set_handler("VIPS", static_cast(G_LOG_LEVEL_WARNING), + static_cast(sharp::VipsWarningCallback), nullptr); + + // Methods available to JavaScript + exports.Set("metadata", Napi::Function::New(env, metadata)); + exports.Set("pipeline", Napi::Function::New(env, pipeline)); + exports.Set("cache", Napi::Function::New(env, cache)); + exports.Set("concurrency", Napi::Function::New(env, concurrency)); + exports.Set("counters", Napi::Function::New(env, counters)); + exports.Set("simd", Napi::Function::New(env, simd)); + exports.Set("libvipsVersion", Napi::Function::New(env, libvipsVersion)); + exports.Set("format", Napi::Function::New(env, format)); + exports.Set("block", Napi::Function::New(env, block)); + exports.Set("_maxColourDistance", Napi::Function::New(env, _maxColourDistance)); + exports.Set("_isUsingJemalloc", Napi::Function::New(env, _isUsingJemalloc)); + exports.Set("_isUsingX64V2", Napi::Function::New(env, _isUsingX64V2)); + exports.Set("stats", Napi::Function::New(env, stats)); + return exports; +} + +NODE_API_MODULE(sharp, init) diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.cc new file mode 100644 index 0000000..b1fd27a --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.cc @@ -0,0 +1,186 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include +#include + +#include +#include + +#include "./common.h" +#include "./stats.h" + +class StatsWorker : public Napi::AsyncWorker { + public: + StatsWorker(Napi::Function callback, StatsBaton *baton, Napi::Function debuglog) : + Napi::AsyncWorker(callback), baton(baton), debuglog(Napi::Persistent(debuglog)) {} + ~StatsWorker() {} + + const int STAT_MIN_INDEX = 0; + const int STAT_MAX_INDEX = 1; + const int STAT_SUM_INDEX = 2; + const int STAT_SQ_SUM_INDEX = 3; + const int STAT_MEAN_INDEX = 4; + const int STAT_STDEV_INDEX = 5; + const int STAT_MINX_INDEX = 6; + const int STAT_MINY_INDEX = 7; + const int STAT_MAXX_INDEX = 8; + const int STAT_MAXY_INDEX = 9; + + void Execute() { + // Decrement queued task counter + sharp::counterQueue--; + + vips::VImage image; + sharp::ImageType imageType = sharp::ImageType::UNKNOWN; + try { + std::tie(image, imageType) = OpenInput(baton->input); + } catch (vips::VError const &err) { + (baton->err).append(err.what()); + } + if (imageType != sharp::ImageType::UNKNOWN) { + try { + vips::VImage stats = image.stats(); + int const bands = image.bands(); + for (int b = 1; b <= bands; b++) { + ChannelStats cStats( + static_cast(stats.getpoint(STAT_MIN_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAX_INDEX, b).front()), + stats.getpoint(STAT_SUM_INDEX, b).front(), + stats.getpoint(STAT_SQ_SUM_INDEX, b).front(), + stats.getpoint(STAT_MEAN_INDEX, b).front(), + stats.getpoint(STAT_STDEV_INDEX, b).front(), + static_cast(stats.getpoint(STAT_MINX_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MINY_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAXX_INDEX, b).front()), + static_cast(stats.getpoint(STAT_MAXY_INDEX, b).front())); + baton->channelStats.push_back(cStats); + } + // Image is not opaque when alpha layer is present and contains a non-mamixa value + if (image.has_alpha()) { + double const minAlpha = static_cast(stats.getpoint(STAT_MIN_INDEX, bands).front()); + if (minAlpha != vips_interpretation_max_alpha(image.interpretation())) { + baton->isOpaque = false; + } + } + // Convert to greyscale + vips::VImage greyscale = image.colourspace(VIPS_INTERPRETATION_B_W)[0]; + // Estimate entropy via histogram of greyscale value frequency + baton->entropy = std::abs(greyscale.hist_find().hist_entropy()); + // Estimate sharpness via standard deviation of greyscale laplacian + if (image.width() > 1 || image.height() > 1) { + VImage laplacian = VImage::new_matrixv(3, 3, + 0.0, 1.0, 0.0, + 1.0, -4.0, 1.0, + 0.0, 1.0, 0.0); + laplacian.set("scale", 9.0); + baton->sharpness = greyscale.conv(laplacian).deviate(); + } + // Most dominant sRGB colour via 4096-bin 3D histogram + vips::VImage hist = sharp::RemoveAlpha(image) + .colourspace(VIPS_INTERPRETATION_sRGB) + .hist_find_ndim(VImage::option()->set("bins", 16)); + std::complex maxpos = hist.maxpos(); + int const dx = static_cast(std::real(maxpos)); + int const dy = static_cast(std::imag(maxpos)); + std::vector pel = hist(dx, dy); + int const dz = std::distance(pel.begin(), std::find(pel.begin(), pel.end(), hist.max())); + baton->dominantRed = dx * 16 + 8; + baton->dominantGreen = dy * 16 + 8; + baton->dominantBlue = dz * 16 + 8; + } catch (vips::VError const &err) { + (baton->err).append(err.what()); + } + } + + // Clean up + vips_error_clear(); + vips_thread_shutdown(); + } + + void OnOK() { + Napi::Env env = Env(); + Napi::HandleScope scope(env); + + // Handle warnings + std::string warning = sharp::VipsWarningPop(); + while (!warning.empty()) { + debuglog.Call(Receiver().Value(), { Napi::String::New(env, warning) }); + warning = sharp::VipsWarningPop(); + } + + if (baton->err.empty()) { + // Stats Object + Napi::Object info = Napi::Object::New(env); + Napi::Array channels = Napi::Array::New(env); + + std::vector::iterator it; + int i = 0; + for (it = baton->channelStats.begin(); it < baton->channelStats.end(); it++, i++) { + Napi::Object channelStat = Napi::Object::New(env); + channelStat.Set("min", it->min); + channelStat.Set("max", it->max); + channelStat.Set("sum", it->sum); + channelStat.Set("squaresSum", it->squaresSum); + channelStat.Set("mean", it->mean); + channelStat.Set("stdev", it->stdev); + channelStat.Set("minX", it->minX); + channelStat.Set("minY", it->minY); + channelStat.Set("maxX", it->maxX); + channelStat.Set("maxY", it->maxY); + channels.Set(i, channelStat); + } + + info.Set("channels", channels); + info.Set("isOpaque", baton->isOpaque); + info.Set("entropy", baton->entropy); + info.Set("sharpness", baton->sharpness); + Napi::Object dominant = Napi::Object::New(env); + dominant.Set("r", baton->dominantRed); + dominant.Set("g", baton->dominantGreen); + dominant.Set("b", baton->dominantBlue); + info.Set("dominant", dominant); + Callback().Call(Receiver().Value(), { env.Null(), info }); + } else { + Callback().Call(Receiver().Value(), { Napi::Error::New(env, sharp::TrimEnd(baton->err)).Value() }); + } + + delete baton->input; + delete baton; + } + + private: + StatsBaton* baton; + Napi::FunctionReference debuglog; +}; + +/* + stats(options, callback) +*/ +Napi::Value stats(const Napi::CallbackInfo& info) { + // V8 objects are converted to non-V8 types held in the baton struct + StatsBaton *baton = new StatsBaton; + Napi::Object options = info[size_t(0)].As(); + + // Input + baton->input = sharp::CreateInputDescriptor(options.Get("input").As()); + baton->input->access = VIPS_ACCESS_RANDOM; + + // Function to notify of libvips warnings + Napi::Function debuglog = options.Get("debuglog").As(); + + // Join queue for worker thread + Napi::Function callback = info[size_t(1)].As(); + StatsWorker *worker = new StatsWorker(callback, baton, debuglog); + worker->Receiver().Set("options", options); + worker->Queue(); + + // Increment queued task counter + sharp::counterQueue++; + + return info.Env().Undefined(); +} diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.h new file mode 100644 index 0000000..88e13c6 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/stats.h @@ -0,0 +1,62 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_STATS_H_ +#define SRC_STATS_H_ + +#include +#include +#include + +#include "./common.h" + +struct ChannelStats { + // stats per channel + int min; + int max; + double sum; + double squaresSum; + double mean; + double stdev; + int minX; + int minY; + int maxX; + int maxY; + + ChannelStats(int minVal, int maxVal, double sumVal, double squaresSumVal, + double meanVal, double stdevVal, int minXVal, int minYVal, int maxXVal, int maxYVal): + min(minVal), max(maxVal), sum(sumVal), squaresSum(squaresSumVal), // NOLINT(build/include_what_you_use) + mean(meanVal), stdev(stdevVal), minX(minXVal), minY(minYVal), maxX(maxXVal), maxY(maxYVal) {} +}; + +struct StatsBaton { + // Input + sharp::InputDescriptor *input; + + // Output + std::vector channelStats; + bool isOpaque; + double entropy; + double sharpness; + int dominantRed; + int dominantGreen; + int dominantBlue; + + std::string err; + + StatsBaton(): + input(nullptr), + isOpaque(true), + entropy(0.0), + sharpness(0.0), + dominantRed(0), + dominantGreen(0), + dominantBlue(0) + {} +}; + +Napi::Value stats(const Napi::CallbackInfo& info); + +#endif // SRC_STATS_H_ diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.cc b/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.cc new file mode 100644 index 0000000..4154c08 --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.cc @@ -0,0 +1,288 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#include +#include +#include + +#include +#include +#include + +#include "./common.h" +#include "./operations.h" +#include "./utilities.h" + +/* + Get and set cache limits +*/ +Napi::Value cache(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Set memory limit + if (info[size_t(0)].IsNumber()) { + vips_cache_set_max_mem(info[size_t(0)].As().Int32Value() * 1048576); + } + // Set file limit + if (info[size_t(1)].IsNumber()) { + vips_cache_set_max_files(info[size_t(1)].As().Int32Value()); + } + // Set items limit + if (info[size_t(2)].IsNumber()) { + vips_cache_set_max(info[size_t(2)].As().Int32Value()); + } + + // Get memory stats + Napi::Object memory = Napi::Object::New(env); + memory.Set("current", round(vips_tracked_get_mem() / 1048576)); + memory.Set("high", round(vips_tracked_get_mem_highwater() / 1048576)); + memory.Set("max", round(vips_cache_get_max_mem() / 1048576)); + // Get file stats + Napi::Object files = Napi::Object::New(env); + files.Set("current", vips_tracked_get_files()); + files.Set("max", vips_cache_get_max_files()); + + // Get item stats + Napi::Object items = Napi::Object::New(env); + items.Set("current", vips_cache_get_size()); + items.Set("max", vips_cache_get_max()); + + Napi::Object cache = Napi::Object::New(env); + cache.Set("memory", memory); + cache.Set("files", files); + cache.Set("items", items); + return cache; +} + +/* + Get and set size of thread pool +*/ +Napi::Value concurrency(const Napi::CallbackInfo& info) { + // Set concurrency + if (info[size_t(0)].IsNumber()) { + vips_concurrency_set(info[size_t(0)].As().Int32Value()); + } + // Get concurrency + return Napi::Number::New(info.Env(), vips_concurrency_get()); +} + +/* + Get internal counters (queued tasks, processing tasks) +*/ +Napi::Value counters(const Napi::CallbackInfo& info) { + Napi::Object counters = Napi::Object::New(info.Env()); + counters.Set("queue", static_cast(sharp::counterQueue)); + counters.Set("process", static_cast(sharp::counterProcess)); + return counters; +} + +/* + Get and set use of SIMD vector unit instructions +*/ +Napi::Value simd(const Napi::CallbackInfo& info) { + // Set state + if (info[size_t(0)].IsBoolean()) { + vips_vector_set_enabled(info[size_t(0)].As().Value()); + } + // Get state + return Napi::Boolean::New(info.Env(), vips_vector_isenabled()); +} + +/* + Get libvips version +*/ +Napi::Value libvipsVersion(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::Object version = Napi::Object::New(env); + + char semver[9]; + std::snprintf(semver, sizeof(semver), "%d.%d.%d", vips_version(0), vips_version(1), vips_version(2)); + version.Set("semver", Napi::String::New(env, semver)); +#ifdef SHARP_USE_GLOBAL_LIBVIPS + version.Set("isGlobal", Napi::Boolean::New(env, true)); +#else + version.Set("isGlobal", Napi::Boolean::New(env, false)); +#endif +#ifdef __EMSCRIPTEN__ + version.Set("isWasm", Napi::Boolean::New(env, true)); +#else + version.Set("isWasm", Napi::Boolean::New(env, false)); +#endif + return version; +} + +/* + Get available input/output file/buffer/stream formats +*/ +Napi::Value format(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + Napi::Object format = Napi::Object::New(env); + for (std::string const f : { + "jpeg", "png", "webp", "tiff", "magick", "openslide", "dz", + "ppm", "fits", "gif", "svg", "heif", "pdf", "vips", "jp2k", "jxl", "rad", "dcraw" + }) { + // Input + const VipsObjectClass *oc = vips_class_find("VipsOperation", (f + "load").c_str()); + Napi::Boolean hasInputFile = Napi::Boolean::New(env, oc); + Napi::Boolean hasInputBuffer = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "load_buffer").c_str())); + Napi::Object input = Napi::Object::New(env); + input.Set("file", hasInputFile); + input.Set("buffer", hasInputBuffer); + input.Set("stream", hasInputBuffer); + if (hasInputFile) { + const VipsForeignClass *fc = VIPS_FOREIGN_CLASS(oc); + if (fc->suffs) { + Napi::Array fileSuffix = Napi::Array::New(env); + const char **suffix = fc->suffs; + for (int i = 0; *suffix; i++, suffix++) { + fileSuffix.Set(i, Napi::String::New(env, *suffix)); + } + input.Set("fileSuffix", fileSuffix); + } + } + // Output + Napi::Boolean hasOutputFile = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "save").c_str())); + Napi::Boolean hasOutputBuffer = + Napi::Boolean::New(env, vips_type_find("VipsOperation", (f + "save_buffer").c_str())); + Napi::Object output = Napi::Object::New(env); + output.Set("file", hasOutputFile); + output.Set("buffer", hasOutputBuffer); + output.Set("stream", hasOutputBuffer); + // Other attributes + Napi::Object container = Napi::Object::New(env); + container.Set("id", f); + container.Set("input", input); + container.Set("output", output); + // Add to set of formats + format.Set(f, container); + } + + // Raw, uncompressed data + Napi::Boolean supported = Napi::Boolean::New(env, true); + Napi::Boolean unsupported = Napi::Boolean::New(env, false); + Napi::Object rawInput = Napi::Object::New(env); + rawInput.Set("file", unsupported); + rawInput.Set("buffer", supported); + rawInput.Set("stream", supported); + Napi::Object rawOutput = Napi::Object::New(env); + rawOutput.Set("file", unsupported); + rawOutput.Set("buffer", supported); + rawOutput.Set("stream", supported); + Napi::Object raw = Napi::Object::New(env); + raw.Set("id", "raw"); + raw.Set("input", rawInput); + raw.Set("output", rawOutput); + format.Set("raw", raw); + + return format; +} + +/* + (Un)block libvips operations at runtime. +*/ +void block(const Napi::CallbackInfo& info) { + Napi::Array ops = info[size_t(0)].As(); + bool const state = info[size_t(1)].As().Value(); + for (unsigned int i = 0; i < ops.Length(); i++) { + vips_operation_block_set(ops.Get(i).As().Utf8Value().c_str(), state); + } +} + +/* + Synchronous, internal-only method used by some of the functional tests. + Calculates the maximum colour distance using the DE2000 algorithm + between two images of the same dimensions and number of channels. +*/ +Napi::Value _maxColourDistance(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Open input files + VImage image1; + sharp::ImageType imageType1 = sharp::DetermineImageType(info[size_t(0)].As().Utf8Value().data()); + if (imageType1 != sharp::ImageType::UNKNOWN) { + try { + image1 = VImage::new_from_file(info[size_t(0)].As().Utf8Value().c_str()); + } catch (...) { + throw Napi::Error::New(env, "Input file 1 has corrupt header"); + } + } else { + throw Napi::Error::New(env, "Input file 1 is of an unsupported image format"); + } + VImage image2; + sharp::ImageType imageType2 = sharp::DetermineImageType(info[size_t(1)].As().Utf8Value().data()); + if (imageType2 != sharp::ImageType::UNKNOWN) { + try { + image2 = VImage::new_from_file(info[size_t(1)].As().Utf8Value().c_str()); + } catch (...) { + throw Napi::Error::New(env, "Input file 2 has corrupt header"); + } + } else { + throw Napi::Error::New(env, "Input file 2 is of an unsupported image format"); + } + // Ensure same number of channels + if (image1.bands() != image2.bands()) { + throw Napi::Error::New(env, "mismatchedBands"); + } + // Ensure same dimensions + if (image1.width() != image2.width() || image1.height() != image2.height()) { + throw Napi::Error::New(env, "mismatchedDimensions"); + } + + double maxColourDistance; + try { + // Premultiply and remove alpha + if (image1.has_alpha()) { + image1 = image1.premultiply().extract_band(1, VImage::option()->set("n", image1.bands() - 1)); + } + if (image2.has_alpha()) { + image2 = image2.premultiply().extract_band(1, VImage::option()->set("n", image2.bands() - 1)); + } + // Calculate colour distance + maxColourDistance = image1.dE00(image2).max(); + } catch (vips::VError const &err) { + throw Napi::Error::New(env, err.what()); + } + + // Clean up libvips' per-request data and threads + vips_error_clear(); + vips_thread_shutdown(); + + return Napi::Number::New(env, maxColourDistance); +} + +#if defined(__GNUC__) +// mallctl will be resolved by the runtime linker when jemalloc is being used +extern "C" { + int mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen) __attribute__((weak)); +} +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, mallctl != nullptr); +} +#else +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, false); +} +#endif + +#if defined(__GNUC__) && defined(__x86_64__) +// Are SSE 4.2 intrinsics available at runtime? +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + unsigned int eax, ebx, ecx, edx; + __asm__ __volatile__("cpuid" + : "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx) + : "a"(1)); + return Napi::Boolean::New(env, (ecx & 1U << 20) != 0); +} +#else +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + return Napi::Boolean::New(env, false); +} +#endif diff --git a/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.h b/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.h new file mode 100644 index 0000000..a1719fa --- /dev/null +++ b/01_3D-Druck/gemini/build/node_modules/sharp/src/utilities.h @@ -0,0 +1,22 @@ +/*! + Copyright 2013 Lovell Fuller and others. + SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef SRC_UTILITIES_H_ +#define SRC_UTILITIES_H_ + +#include + +Napi::Value cache(const Napi::CallbackInfo& info); +Napi::Value concurrency(const Napi::CallbackInfo& info); +Napi::Value counters(const Napi::CallbackInfo& info); +Napi::Value simd(const Napi::CallbackInfo& info); +Napi::Value libvipsVersion(const Napi::CallbackInfo& info); +Napi::Value format(const Napi::CallbackInfo& info); +void block(const Napi::CallbackInfo& info); +Napi::Value _maxColourDistance(const Napi::CallbackInfo& info); +Napi::Value _isUsingJemalloc(const Napi::CallbackInfo& info); +Napi::Value _isUsingX64V2(const Napi::CallbackInfo& info); + +#endif // SRC_UTILITIES_H_ diff --git a/01_3D-Druck/gemini/build/package-lock.json b/01_3D-Druck/gemini/build/package-lock.json new file mode 100644 index 0000000..82b0bf7 --- /dev/null +++ b/01_3D-Druck/gemini/build/package-lock.json @@ -0,0 +1,563 @@ +{ + "name": "build", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "build", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "sharp": "^0.34.5" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.0.tgz", + "integrity": "sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + } + } +} diff --git a/01_3D-Druck/gemini/build/package.json b/01_3D-Druck/gemini/build/package.json new file mode 100644 index 0000000..23430cd --- /dev/null +++ b/01_3D-Druck/gemini/build/package.json @@ -0,0 +1,16 @@ +{ + "name": "build", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs", + "dependencies": { + "sharp": "^0.34.5" + } +} diff --git a/01_3D-Druck/gemini/build/png/Puck_Entscheidung_gemini.png b/01_3D-Druck/gemini/build/png/Puck_Entscheidung_gemini.png new file mode 100644 index 0000000..b7d8b6b Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_Entscheidung_gemini.png differ diff --git a/01_3D-Druck/gemini/build/png/Puck_design_gemini.png b/01_3D-Druck/gemini/build/png/Puck_design_gemini.png new file mode 100644 index 0000000..73b868a Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_design_gemini.png differ diff --git a/01_3D-Druck/gemini/build/png/Puck_operation_gemini.png b/01_3D-Druck/gemini/build/png/Puck_operation_gemini.png new file mode 100644 index 0000000..1eed969 Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_operation_gemini.png differ diff --git a/01_3D-Druck/gemini/build/png/Puck_review_gemini.png b/01_3D-Druck/gemini/build/png/Puck_review_gemini.png new file mode 100644 index 0000000..7044525 Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_review_gemini.png differ diff --git a/01_3D-Druck/gemini/build/png/Puck_support_gemini.png b/01_3D-Druck/gemini/build/png/Puck_support_gemini.png new file mode 100644 index 0000000..71bb777 Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_support_gemini.png differ diff --git a/01_3D-Druck/gemini/build/png/Puck_transition_gemini.png b/01_3D-Druck/gemini/build/png/Puck_transition_gemini.png new file mode 100644 index 0000000..2db5fe7 Binary files /dev/null and b/01_3D-Druck/gemini/build/png/Puck_transition_gemini.png differ diff --git a/01_3D-Druck/gemini/build/recolor-render.mjs b/01_3D-Druck/gemini/build/recolor-render.mjs new file mode 100644 index 0000000..6f1975e --- /dev/null +++ b/01_3D-Druck/gemini/build/recolor-render.mjs @@ -0,0 +1,70 @@ +import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; +import sharp from "sharp"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const SRC = join(__dirname, ".."); // ...\gemini +const OUT_SVG = join(__dirname, "svg"); // recolored SVGs +const OUT_PNG = join(__dirname, "png"); // rendered PNGs +mkdirSync(OUT_SVG, { recursive: true }); +mkdirSync(OUT_PNG, { recursive: true }); + +// Original blue source palette in the gemini SVGs: +// #3fa9f5 = disc face (light) +// #0071bc = structure: ring, dots, lines, RACI letters, inner circle (base) +// #2e3192 = central phase word (dark) +// #fcec48 = yellow accent rings -> KEEP, never touch +const SRC_LIGHT = "#3fa9f5"; +const SRC_BASE = "#0071bc"; +const SRC_DARK = "#2e3192"; + +// Phase palettes: [light face, base structure, dark word] +const PHASES = { + "Puck_design_gemini.svg": { light: "#91b9e1", base: "#2f80c9", dark: "#1c4d79" }, + "Puck_transition_gemini.svg": { light: "#f2bc8a", base: "#e8862b", dark: "#8b501a" }, + "Puck_operation_gemini.svg": { light: "#8dcaa3", base: "#2f9e57", dark: "#1c5f34" }, + "Puck_support_gemini.svg": { light: "#80d0cb", base: "#18a9a0", dark: "#0e6560" }, + "Puck_review_gemini.svg": { light: "#bba3e0", base: "#8358c6", dark: "#4f3577" }, +}; +// Entscheidung is already red & correct -> render as-is, no recolor. +const ASIS = ["Puck_Entscheidung_gemini.svg"]; + +const reAll = (hex) => new RegExp(hex.replace("#", "#"), "gi"); + +function recolor(svg, p) { + return svg + .replace(reAll(SRC_LIGHT), p.light) + .replace(reAll(SRC_BASE), p.base) + .replace(reAll(SRC_DARK), p.dark); +} + +const SIZE = 2000; // final canvas +const INNER = 1440; // disc size -> leaves ~14% transparent margin all around +async function render(svgText, outName) { + const pad = Math.round((SIZE - INNER) / 2); + const disc = await sharp(Buffer.from(svgText), { density: 384 }) + .resize(INNER, INNER, { fit: "contain", background: { r: 0, g: 0, b: 0, alpha: 0 } }) + .png() + .toBuffer(); + await sharp(disc) + .extend({ top: pad, bottom: pad, left: pad, right: pad, + background: { r: 0, g: 0, b: 0, alpha: 0 } }) + .png() + .toFile(join(OUT_PNG, outName.replace(/\.svg$/i, ".png"))); +} + +for (const [file, p] of Object.entries(PHASES)) { + const svg = readFileSync(join(SRC, file), "utf8"); + const out = recolor(svg, p); + writeFileSync(join(OUT_SVG, file), out, "utf8"); + await render(out, file); + console.log("recolored + rendered:", file); +} +for (const file of ASIS) { + const svg = readFileSync(join(SRC, file), "utf8"); + writeFileSync(join(OUT_SVG, file), svg, "utf8"); + await render(svg, file); + console.log("rendered as-is:", file); +} +console.log("done. SVGs ->", OUT_SVG, "| PNGs ->", OUT_PNG); diff --git a/01_3D-Druck/gemini/build/svg/Puck_Entscheidung_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_Entscheidung_gemini.svg new file mode 100644 index 0000000..c74de7e --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_Entscheidung_gemini.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/svg/Puck_design_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_design_gemini.svg new file mode 100644 index 0000000..0abcc78 --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_design_gemini.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/svg/Puck_operation_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_operation_gemini.svg new file mode 100644 index 0000000..79749cc --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_operation_gemini.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/svg/Puck_review_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_review_gemini.svg new file mode 100644 index 0000000..e75d103 --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_review_gemini.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/svg/Puck_support_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_support_gemini.svg new file mode 100644 index 0000000..a246df2 --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_support_gemini.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gemini/build/svg/Puck_transition_gemini.svg b/01_3D-Druck/gemini/build/svg/Puck_transition_gemini.svg new file mode 100644 index 0000000..64f7309 --- /dev/null +++ b/01_3D-Druck/gemini/build/svg/Puck_transition_gemini.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/gen_board_layout.py b/01_3D-Druck/gen_board_layout.py index eb0d422..ed7e9b0 100644 --- a/01_3D-Druck/gen_board_layout.py +++ b/01_3D-Druck/gen_board_layout.py @@ -52,13 +52,12 @@ PHASES = [ ("sp_11", "RCA & Workaround", False), ]), ("REVIEW", "#8E63B5", [ - ("rv_01", "Taktische RCA + KPIs", False), - ("rv_02", "Performance & Improvement", False), - ("rv_03", "SOR Periodischer Review", False), - ("rv_04", "Service Improvement", False), - ("rv_05", "Redesign / Erweiterung", False), - ("rv_06", "Ausserbetriebnahme", False), - ]), + ("rv_01", "Service-Reviews durchf.", False), + ("rv_02", "Bewertung d. Ergebnisse", False), + ("rv_03", "Aenderungen definieren", False), + ("rv_04", "Aenderungen starten", False), + ("rv_05", "Aenderungen umsetzen", False), + ]), # Arbeitsstand Frank (Change-Enablement); nicht im YAML/Konzept ] # Layout-Parameter @@ -132,9 +131,9 @@ svg.append('') # Titel svg.append(f'' - f'Service-Lifecycle — Board-Layout (40 Pucks)') + f'Service-Lifecycle — Board-Layout (39 Pucks)') svg.append(f'' - f'37 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø{TILE_MM} mm · ' + f'36 Aktivitaeten + 3 Gate-Pucks · 1 Puck = Ø{TILE_MM} mm · ' f'lose Bahn, Sequenz links nach rechts') row_y = {} diff --git a/01_3D-Druck/materialliste.md b/01_3D-Druck/materialliste.md index ebea60e..0a83e0a 100644 --- a/01_3D-Druck/materialliste.md +++ b/01_3D-Druck/materialliste.md @@ -32,7 +32,7 @@ Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set. | Figurenplätze | **7 Mulden** Ø 22 × 1,5 mm (Einführ-Fase), auf Kreis r 33 (Ø 66) | | Etikettenmulde | mittig Ø 37,5 × 0,3 mm (Rundetikett Ø37; Puck-Rand bleibt sichtbar) | | Farbe | je Phase (blau/orange/grün/teal/lila) | -| Menge | **37** (eine je Aktivität) | +| Menge | **36** (eine je Aktivität) — Druck von 37 empfohlen: 1 Blank als Reserve | | Material | PLA, Infill 15 % | | Druckzeit | ~1,3 h/Puck | | Datei | `openscad/puck.scad` | @@ -45,11 +45,16 @@ Stand: 2026-06-04 · Maße in mm · Mengen für **ein** Workshop-Set. | Transition | orange | tr_02–tr_08, tr_10, tr_11 | 9 | | Operation | grün | op_01–op_07 | 7 | | Support | teal | sp_01–sp_11 | 11 | -| Review | lila | rv_01–rv_06 | 6 | -| | | **Σ Station-Pucks** | **37** | +| Review | lila | rv_01–rv_05 | 5 | +| | | **Σ Station-Pucks** | **36** | Die 3 Gates (tr_01, tr_09, tr_12) sind **Gate-Pucks** (gleiches Teil, rot, §2) → 3 Stück. -**Bahn gesamt = 37 + 3 = 40 Positionen.** +**Bahn gesamt = 36 + 3 = 39 Positionen.** + +> **Arbeitsstand Review (Workshop):** Die Review-Phase nutzt **5 Aktivitäten** nach +> Frank (Change-Enablement) statt bisher 6 — daher 36 statt 37 Station-Pucks. Details +> + offene Punkte: [`../00_Konzept/review-phase_arbeitsstand-frank.md`](../00_Konzept/review-phase_arbeitsstand-frank.md). +> Noch **nicht** im Blueprint-YAML / kanonischen Konzept (Michael-Freigabe ausstehend). Die Pucks werden zu einer **linearen Bahn** ausgelegt (kein Ring), bei Platzmangel mäandrierend. Als optische Linie + Halt empfiehlt sich eine **flache Unterlage/Matte** @@ -70,9 +75,9 @@ darauf die Stationen. | Material | PLA, Infill 15 %, rotes Filament | > Es gibt **kein Gate-Tor und keine Gate-Karte** mehr. Gate-Logik (Keeper, -> geforderte Artefakte, Auflösung) läuft über die **App**; die Entscheidung fällt -> über die **Entscheidungs-Chips** (§5). Das „Tor-Gefühl" entsteht durch Farbe + -> Icon + das Stellen der Pflicht-Figuren + den Chip-Moment. +> geforderte Artefakte, Auflösung) läuft über die **App**; die Entscheidung trifft +> die zuständige Rolle. Das „Tor-Gefühl" entsteht durch Farbe + Icon + das Stellen +> der Pflicht-Figuren am Gate-Puck (die entscheidende Rolle bleibt als Marker stehen). ## 3. Szenario-Handling (kein 3D-Teil mehr) @@ -83,7 +88,7 @@ Der **Action-Stein ist entfallen.** Seine zwei Funktionen werden jetzt anders ge kein aufrechter Kartenträger nötig. - **„Wir sind hier" markieren:** Die **Companion-App** führt die Stationsreihenfolge; zusätzlich ist die aktuelle Station daran erkennbar, dass dort die **Rollen-Figuren** - stehen (7 Mulden am Puck). Optional reicht ein einfacher flacher Marker-Chip. + stehen (7 Mulden am Puck). > **Kein Druckteil**, keine Metalleinlage, kein Kartenschlitz mehr. @@ -105,16 +110,7 @@ Puck zeigen „wer ist beteiligt", das Aktiv-Feld zeigt „in welcher Verantwort > **Goldene RACI-Regel: A = genau 1.** Je Aktivität ist genau eine Rolle *Accountable*. -## 5. Entscheidungs-Chips - -| Merkmal | Wert | -|---------|------| -| Form | Münze Ø 30 × 4 mm, Symbolgravur | -| Varianten | Go / Go mit Auflagen / Zurück / Ablehnung | -| Menge | je 3 (= 12) | -| Material | PLA | - -## 6. Rollen-Figuren +## 5. Rollen-Figuren | Merkmal | Wert | |---------|------| @@ -125,7 +121,7 @@ Puck zeigen „wer ist beteiligt", das Aktiv-Feld zeigt „in welcher Verantwort | Menge | je Figur 2× → **32** Einzelrollen (16 × 2) + **6** Team-Figuren (3 × 2) = **38** | | Material | PLA, eingefärbt je Kategorie | -## 7. Phasen-Ring (SLC-Übersicht ↔ Bahn-Köpfe) +## 6. Phasen-Ring (SLC-Übersicht ↔ Bahn-Köpfe) Fünf 72°-Ringsegmente bilden **zusammengesteckt** den SLC-Übersichts-Donut (wie das Konzept-Schaubild) und **auseinandergenommen** die farbigen **Phasen-Köpfe** der @@ -151,19 +147,18 @@ linearen Puck-Bahn — das **Design-Segment ist der Start** vor dem ersten Puck. | Teil | Menge | Datei | |------|------:|-------| -| Station-Puck | 37 | `openscad/puck.scad` (Phasenfarbe) | +| Station-Puck | 36 (+1 Reserve) | `openscad/puck.scad` (Phasenfarbe) | | Gate-Puck | 3 | `openscad/puck.scad` (rot) | | Phasen-Ring-Segment | 5 | `openscad/phasen-ring-.scad` (je Phasenfarbe) | | Aktiv-Feld (RACI-Fläche) | 1 | `openscad/aktiv-feld.scad` | | Rollen-Figuren (Einzel) | 32 | 16 Rollen × 2 | | Team-Sonderfiguren | 6 | 3 Teams × 2 | -| Entscheidungs-Chips | 12 | (einfache Münze + Gravur) | -| Rundetiketten Ø37 | 40 | via Generator aus YAML (ID + Phasenfarbe); ablösbar bevorzugt | +| Rundetiketten Ø37 | 39 | via Generator aus YAML (ID + Phasenfarbe); ablösbar bevorzugt | ## Kritische Maße & Passungen (bitte prüfen) - **Puck = einziges Bahn-Teil** (Ø 100 × 6). Station vs. Gate nur über Filamentfarbe - + Etikett — **ein STL, 40× drucken** (37 Phasen + 3 rot). + + Etikett — **ein STL, 39× drucken** (36 Phasen + 3 rot; +1 Blank als Reserve). - **Figuren-Mulde Ø 22, Tiefe 1,5** für Sockel **Ø 20** (reinstellbar, Fase als Einführhilfe). 7 Mulden auf Kreis r 33. - **Etikettenmulde Ø 37,5 × 0,3** — Rundetikett Ø37 (Puck-Rand bleibt sichtbar, @@ -174,7 +169,7 @@ linearen Puck-Bahn — das **Design-Segment ist der Start** vor dem ersten Puck. ## Hinweise für den Producer - Toleranzen Sockel↔Puck-Mulde und Etikett↔Mulde an **einem Probedruck** kalibrieren. -- Gravurtiefe (nur noch Aktiv-Feld, Chips) 0,6–1,0 mm; Pucks sind **blanko** +- Gravurtiefe (nur noch Aktiv-Feld) 0,6–1,0 mm; Pucks sind **blanko** (ID/Farbe via Avery-Etikett Ø40). - Farbtrennung über Filamentwechsel; **exakte Töne frei — nur klar unterscheidbar** (Phasen 5 Farben, Gate rot, Figuren-Kategorien 5 + Teams grün). diff --git a/01_3D-Druck/openscad/README_openscad.md b/01_3D-Druck/openscad/README_openscad.md index aae7a0c..9b6ee3a 100644 --- a/01_3D-Druck/openscad/README_openscad.md +++ b/01_3D-Druck/openscad/README_openscad.md @@ -41,7 +41,7 @@ Mit dem Wechsel auf den Puck sind weggefallen: `aktivitaets-tile.scad` (eckiges Tile), `aktivitaets-plaque.scad` (Ø60-Scheibe), `gate-tile.scad` (eckiges Gate-Tile) und `gate-tor.scad` (Torbogen + Gate-Karte). Begründung: Der Ø100-Puck vereint Station-Markierung, Figuren-Standorte und -Beschriftung in **einem** Teil; die Gate-Karte ist durch App + Entscheidungs-Chips +Beschriftung in **einem** Teil; die Gate-Karte ist durch App + Gate-Puck-Etikett abgedeckt. (Historie in der Git-Geschichte.) ## Hinweise diff --git a/01_3D-Druck/openscad/board-common.scad b/01_3D-Druck/openscad/board-common.scad new file mode 100644 index 0000000..98b4747 --- /dev/null +++ b/01_3D-Druck/openscad/board-common.scad @@ -0,0 +1,100 @@ +// Gemeinsame Geometrie fuer alle Phasen-Boards (RACI-Konsole). +// Geometrie 1:1 aus den Illustrator-SVGs; Schrift als Pfade aus dem SVG importiert. +// Aufruf aus board-.scad: use phase_board("word_design.svg","#2f80c9"); +// txt_raci.svg -> R/A/C/I, graviert von der Oberseite (text_dep) +// word_*.svg -> Phasenname, graviert in den Mulden-Boden (text_dep) + +/* [Board] */ +board_r = 100; // Ø200 +base_h = 20; +rim_flat = 95; +rim_drop = 5; +edge_round= 4; + +/* [Mittelmulde + Ring] */ +chip_d = 50; +chip_dep = 2.5; +ring_mid = 32; // Ø64 +ring_w = 2; +ring_dep = 2.5; + +/* [Sockel] */ +sock_d = 32.6; // Ø32 + 0,6 Spiel +sock_dep = 2.5; +sock_lead = 0.8; + +/* [Trennlinien] */ +div_w = 2; +div_dep = 2.5; +div_ri = 34; +div_ro = 93; + +/* [Kartenschlitz] */ +slot_cy = 85.4; +slot_w = 70; slot_t = 5; slot_depth = 15; + +/* [Schrift] graviert */ +text_dep = 2.5; + +$fn = 96; + +SOCK = [ + [ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60], + [ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42], + [-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58] +]; +DIV = [-105.5, -73.3, 57.3, 123.5]; + +module board_blank() { + rotate_extrude($fn = 240) + offset(r = edge_round) offset(delta = -edge_round) + polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop], + [rim_flat, base_h], [0, base_h]]); +} +module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); } +module well_ring() { + translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1) + difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); } +} +module socket(p) { + translate([p[0], p[1], base_h-sock_dep]) { + cylinder(d=sock_d, h=sock_dep+0.1); + translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1); + } +} +module divider(a) { + rmid = (div_ri+div_ro)/2; len = div_ro-div_ri; + translate([rmid*cos(a), rmid*sin(a), base_h-div_dep]) + rotate([0,0,a]) linear_extrude(div_dep+0.1) square([len, div_w], center=true); +} +module card_slot() { + translate([0, slot_cy, base_h - slot_depth/2]) + cube([slot_w, slot_t, slot_depth + 0.2], center=true); +} + +// SVG-Import: Dokument ist 200 mm breit, Board-Mitte liegt bei (100,100) -> nach 0/0 schieben. +// offset()-Roundtrip (Clipper) raeumt die importierten Pfade auf -> manifold-sicher. +module svg2d(file) { translate([-100,-100]) offset(delta=0.02) offset(delta=-0.02) import(file); } + +// RACI von der Oberseite gravieren +module engrave_top(file) { + translate([0,0,base_h-text_dep]) linear_extrude(text_dep+0.1) svg2d(file); +} +// Phasenname in den Mulden-Boden gravieren +module engrave_well(file) { + translate([0,0,base_h-chip_dep-text_dep]) linear_extrude(text_dep+0.6) svg2d(file); +} + +module phase_board(word_svg, col) { + color(col) + difference() { + board_blank(); + chip_well(); + well_ring(); + for (p = SOCK) socket(p); + for (a = DIV) divider(a); + card_slot(); + engrave_top("txt_raci.svg"); + engrave_well(word_svg); + } +} diff --git a/01_3D-Druck/openscad/board-design.scad b/01_3D-Druck/openscad/board-design.scad new file mode 100644 index 0000000..f2ce3a7 --- /dev/null +++ b/01_3D-Druck/openscad/board-design.scad @@ -0,0 +1,3 @@ +// SLC-Board — Phase DESIGN +use +phase_board("word_design.svg", "#2f80c9"); diff --git a/01_3D-Druck/openscad/board-operation.scad b/01_3D-Druck/openscad/board-operation.scad new file mode 100644 index 0000000..c52991b --- /dev/null +++ b/01_3D-Druck/openscad/board-operation.scad @@ -0,0 +1,3 @@ +// SLC-Board — Phase OPERATION +use +phase_board("word_operation.svg", "#2f9e57"); diff --git a/01_3D-Druck/openscad/board-review.scad b/01_3D-Druck/openscad/board-review.scad new file mode 100644 index 0000000..028d6de --- /dev/null +++ b/01_3D-Druck/openscad/board-review.scad @@ -0,0 +1,3 @@ +// SLC-Board — Phase REVIEW +use +phase_board("word_review.svg", "#8358c6"); diff --git a/01_3D-Druck/openscad/board-support.scad b/01_3D-Druck/openscad/board-support.scad new file mode 100644 index 0000000..cc8ec36 --- /dev/null +++ b/01_3D-Druck/openscad/board-support.scad @@ -0,0 +1,3 @@ +// SLC-Board — Phase SUPPORT +use +phase_board("word_support.svg", "#18a9a0"); diff --git a/01_3D-Druck/openscad/board-transition.scad b/01_3D-Druck/openscad/board-transition.scad new file mode 100644 index 0000000..200914f --- /dev/null +++ b/01_3D-Druck/openscad/board-transition.scad @@ -0,0 +1,3 @@ +// SLC-Board — Phase TRANSITION +use +phase_board("word_transition.svg", "#e8862b"); diff --git a/01_3D-Druck/openscad/gate-board-text.scad b/01_3D-Druck/openscad/gate-board-text.scad new file mode 100644 index 0000000..e2de023 --- /dev/null +++ b/01_3D-Druck/openscad/gate-board-text.scad @@ -0,0 +1,80 @@ +// Sonderpuck "Entscheidung / Gate" MIT Beschriftung — 1:1 aus Puck_Entscheidung_mit_Text.svg +// Gate-Geometrie (ohne Trennlinien) + Wort-im-Kreis (Original-Font als Pfade) um die Mulde, +// von der Oberseite graviert (2,5 mm). Farbe Gate-Rot. + +/* [Board] */ +board_r = 100; +base_h = 20; +rim_flat = 95; +rim_drop = 5; +edge_round= 4; + +/* [Mittelmulde + Ring] */ +chip_d = 50; +chip_dep = 2.5; +ring_mid = 32; +ring_w = 2; +ring_dep = 2.5; + +/* [Sockel] */ +sock_d = 32.6; +sock_dep = 2.5; +sock_lead = 0.8; + +/* [Kartenschlitz] */ +slot_cy = 85.4; +slot_w = 70; slot_t = 5; slot_depth = 15; + +/* [Schrift] graviert */ +text_dep = 2.5; + +$fn = 96; + +SOCK = [ + [ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60], + [ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42], + [-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58] +]; + +module board_blank() { + rotate_extrude($fn = 240) + offset(r = edge_round) offset(delta = -edge_round) + polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop], + [rim_flat, base_h], [0, base_h]]); +} +module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); } +module well_ring() { + translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1) + difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); } +} +module socket(p) { + translate([p[0], p[1], base_h-sock_dep]) { + cylinder(d=sock_d, h=sock_dep+0.1); + translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1); + } +} +module card_slot() { + translate([0, slot_cy, base_h - slot_depth/2]) + cube([slot_w, slot_t, slot_depth + 0.2], center=true); +} + +// SVG-Import: Dokument 200 mm breit, Board-Mitte bei (100,100) -> nach 0/0 schieben. +// offset()-Roundtrip (Clipper) raeumt die importierten Pfade auf -> manifold-sicher. +module svg2d(file) { translate([-100,-100]) offset(delta=0.02) offset(delta=-0.02) import(file); } +module engrave_top(file) { + translate([0,0,base_h-text_dep]) linear_extrude(text_dep+0.1) svg2d(file); +} + +module gate_board_text() { + color("#e2001a") + difference() { + board_blank(); + chip_well(); + well_ring(); + for (p = SOCK) socket(p); // KEINE Trennlinien (Gate) + card_slot(); + engrave_top("txt_gate.svg"); // Wort im Kreis, von oben graviert + } +} + +gate_board_text(); diff --git a/01_3D-Druck/openscad/gate-board.scad b/01_3D-Druck/openscad/gate-board.scad new file mode 100644 index 0000000..21a2c05 --- /dev/null +++ b/01_3D-Druck/openscad/gate-board.scad @@ -0,0 +1,80 @@ +// Sonderpuck "Entscheidung / Gate" (rund) — 1:1 aus Puck_Entscheidung_ohne_Text.svg +// SLC-Workshop Tabletop · mm. Geometrisch identisch zum RACI-Board (raci-board.scad), +// ABER ohne die 4 Trennlinien (DIV leer) und in Gate-Rot. Z-Maße laut Vorgabe. + +/* [Board] */ +board_r = 100; // Aussenradius (Ø200) +base_h = 20; // Gesamthoehe +rim_flat = 95; // bis hier flache Oberseite (innere Flaeche Ø190) +rim_drop = 5; // Hoehenabfall an der Rundkante (rundgebogen, abfaellig) +edge_round= 4; // Verrundung der Aussenkante + +/* [Mittelmulde + Ring] */ +chip_d = 50; // Mittelmulde Ø50 +chip_dep = 2.5; +ring_mid = 32; // Ring um die Mitte: Mittelradius (Ø64) +ring_w = 2; // Ringbreite +ring_dep = 2.5; + +/* [Sockel] — Ø32 aus SVG + 0,6 Spiel fuer Figuren-Sockel Ø32 */ +sock_d = 32.6; +sock_dep = 2.5; +sock_lead = 0.8; + +/* [Kartenschlitz] */ +slot_cx = 0; slot_cy = 85.4; // Position (oben), aus SVG +slot_w = 70; slot_t = 5; slot_depth = 15; + +$fn = 96; + +// 11 Sockel-Mittelpunkte (mm, Mitte = 0/0, y nach oben), exakt aus dem SVG +SOCK = [ + [ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60], + [ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42], + [-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58] +]; + +// --- Grundkoerper: rund, Oberkante rundgebogen abfallend ------------------- +module board_blank() { + rotate_extrude($fn = 240) + offset(r = edge_round) offset(delta = -edge_round) + polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop], + [rim_flat, base_h], [0, base_h]]); +} + +// --- Aussparungen ---------------------------------------------------------- +module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); } + +module well_ring() { + translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1) + difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); } +} + +module socket(p) { + translate([p[0], p[1], base_h-sock_dep]) { + cylinder(d=sock_d, h=sock_dep+0.1); + translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1); + } +} + +module card_slot() { + translate([slot_cx, slot_cy, base_h - slot_depth/2]) + cube([slot_w, slot_t, slot_depth + 0.2], center=true); +} + +// --- Zusammenbau (KEINE Trennlinien -> Sonderpuck) ------------------------- +module gate_board() { + color("#e2001a") + difference() { + board_blank(); + chip_well(); + well_ring(); + for (p = SOCK) socket(p); + card_slot(); + } +} + +gate_board(); + +echo(board_d=2*board_r, base_h=base_h, chip=chip_d, ring_d=2*ring_mid, + sockets=len(SOCK), sock_d=sock_d, slot=[slot_w, slot_t, slot_depth], dividers=0); diff --git a/01_3D-Druck/openscad/phasenmodell-alle.scad b/01_3D-Druck/openscad/phasenmodell-alle.scad new file mode 100644 index 0000000..22759f4 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-alle.scad @@ -0,0 +1,7 @@ +// Phasenmodell — alle 5 Teile zusammengesetzt (Vorschau/Kontrolle, nicht zum Druck). +use +phase_part("seg_design.svg", "#2f80c9"); +phase_part("seg_transition.svg", "#e8862b"); +phase_part("seg_operation.svg", "#2f9e57"); +phase_part("seg_support.svg", "#18a9a0"); +phase_part("seg_review.svg", "#8358c6"); diff --git a/01_3D-Druck/openscad/phasenmodell-common.scad b/01_3D-Druck/openscad/phasenmodell-common.scad new file mode 100644 index 0000000..679a593 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-common.scad @@ -0,0 +1,22 @@ +// Phasenmodell — gemeinsame Logik fuer die 5 Einzelteile (1:1 aus phasenmodell.svg). +// Jedes Teil = sein Segment-Umriss (extrudiert) MINUS die gesamte Text+Icon-Gravur. +// Nur was auf dem Segment liegt, schneidet -> kein Aufteilen der Schrift noetig. +// Aufruf: use phase_part("seg_design.svg", "#2f80c9"); + +part_h = 5; // Teil-Dicke (flache Kachel) +text_dep = 1.2; // Gravurtiefe Text + Icons +$fn = 96; + +// SVG-Doku ist 300 mm breit -> Mitte bei (150,150). +// offset()-Roundtrip raeumt die importierten Pfade auf. 0,1 mm noetig, weil die Icon- +// Pfade (Zahnrad etc.) Selbstueberschneidungen haben, die 0,02 mm nicht schliesst. +module svg2d(file) { translate([-150,-150]) offset(delta=0.1) offset(delta=-0.1) import(file); } + +module phase_part(seg_svg, col) { + color(col) + difference() { + linear_extrude(part_h) svg2d(seg_svg); + translate([0,0,part_h-text_dep]) + linear_extrude(text_dep+0.1) svg2d("pm_engrave.svg"); + } +} diff --git a/01_3D-Druck/openscad/phasenmodell-design.scad b/01_3D-Druck/openscad/phasenmodell-design.scad new file mode 100644 index 0000000..9e52e38 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-design.scad @@ -0,0 +1,3 @@ +// Phasenmodell-Teil — DESIGN +use +phase_part("seg_design.svg", "#2f80c9"); diff --git a/01_3D-Druck/openscad/phasenmodell-operation.scad b/01_3D-Druck/openscad/phasenmodell-operation.scad new file mode 100644 index 0000000..0e5f9e3 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-operation.scad @@ -0,0 +1,3 @@ +// Phasenmodell-Teil — OPERATION +use +phase_part("seg_operation.svg", "#2f9e57"); diff --git a/01_3D-Druck/openscad/phasenmodell-review.scad b/01_3D-Druck/openscad/phasenmodell-review.scad new file mode 100644 index 0000000..41d64d6 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-review.scad @@ -0,0 +1,3 @@ +// Phasenmodell-Teil — REVIEW +use +phase_part("seg_review.svg", "#8358c6"); diff --git a/01_3D-Druck/openscad/phasenmodell-support.scad b/01_3D-Druck/openscad/phasenmodell-support.scad new file mode 100644 index 0000000..8b5e537 --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-support.scad @@ -0,0 +1,3 @@ +// Phasenmodell-Teil — SUPPORT +use +phase_part("seg_support.svg", "#18a9a0"); diff --git a/01_3D-Druck/openscad/phasenmodell-transition.scad b/01_3D-Druck/openscad/phasenmodell-transition.scad new file mode 100644 index 0000000..d7004ef --- /dev/null +++ b/01_3D-Druck/openscad/phasenmodell-transition.scad @@ -0,0 +1,3 @@ +// Phasenmodell-Teil — TRANSITION +use +phase_part("seg_transition.svg", "#e8862b"); diff --git a/01_3D-Druck/openscad/pm_engrave.svg b/01_3D-Druck/openscad/pm_engrave.svg new file mode 100644 index 0000000..4cce896 --- /dev/null +++ b/01_3D-Druck/openscad/pm_engrave.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/01_3D-Druck/openscad/raci-board-text.scad b/01_3D-Druck/openscad/raci-board-text.scad new file mode 100644 index 0000000..ec55e93 --- /dev/null +++ b/01_3D-Druck/openscad/raci-board-text.scad @@ -0,0 +1,124 @@ +// RACI-Konsolen-Board MIT Beschriftung — 1:1 aus Puck_mit_Text.svg +// Geometrie wie raci-board.scad + gravierte Labels: +// R oben · A unten · C links · I rechts (RACI), Phasenname in der Chip-Mulde. +// Phasenname ist Parameter -> alle 5 Phasen erzeugbar. Text wird vertieft (graviert). + +/* [Phase] */ +phase = "TRANSITION"; // DESIGN | TRANSITION | OPERATION | SUPPORT | REVIEW +phase_color = "#e8862b"; // Druckfarbe (nur Preview). Design #2f80c9 · Transition #e8862b + // Operation #2f9e57 · Support #18a9a0 · Review #8358c6 + +/* [Board] */ +board_r = 100; // Aussenradius (Ø200) +base_h = 20; // Gesamthoehe +rim_flat = 95; // bis hier flache Oberseite (innere Flaeche Ø190) +rim_drop = 5; // Hoehenabfall an der Rundkante (rundgebogen, abfaellig) +edge_round= 4; // Verrundung der Aussenkante + +/* [Mittelmulde + Ring] */ +chip_d = 50; // Mittelmulde Ø50 +chip_dep = 2.5; +ring_mid = 32; // Ring um die Mitte: Mittelradius (Ø64) +ring_w = 2; +ring_dep = 2.5; + +/* [Sockel] — Ø32 aus SVG + 0,6 Spiel */ +sock_d = 32.6; +sock_dep = 2.5; +sock_lead = 0.8; + +/* [Trennlinien] graviert */ +div_w = 2; +div_dep = 2.5; +div_ri = 34; +div_ro = 93; + +/* [Kartenschlitz] */ +slot_cx = 0; slot_cy = 85.4; +slot_w = 70; slot_t = 5; slot_depth = 15; + +/* [Beschriftung] graviert */ +font = "Liberation Sans:style=Bold"; +raci_size = 20; // Hoehe der R/A/C/I-Buchstaben (SVG ~21) +raci_r = 45; // Radius der Buchstaben-Mittelpunkte +raci_dep = 1.2; // Gravurtiefe auf der Oberseite +phase_size = 7; // Schrifthoehe Phasenname in der Mulde +phase_dep = 1.0; // Gravurtiefe im Mulden-Boden + +$fn = 96; + +// 11 Sockel-Mittelpunkte (mm, Mitte = 0/0, y nach oben), exakt aus dem SVG +SOCK = [ + [ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60], + [ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42], + [-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58] +]; +DIV = [-105.5, -73.3, 57.3, 123.5]; + +// RACI-Buchstaben: Text, Mittelpunkt (mm) — R oben, A unten, C links, I rechts +RACI = [ ["R", [0, raci_r]], ["A", [0, -raci_r]], + ["C", [-raci_r, 0]], ["I", [ raci_r, 0]] ]; + +// --- Grundkoerper: rund, Oberkante rundgebogen abfallend ------------------- +module board_blank() { + rotate_extrude($fn = 240) + offset(r = edge_round) offset(delta = -edge_round) + polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop], + [rim_flat, base_h], [0, base_h]]); +} + +module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); } + +module well_ring() { + translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1) + difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); } +} + +module socket(p) { + translate([p[0], p[1], base_h-sock_dep]) { + cylinder(d=sock_d, h=sock_dep+0.1); + translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1); + } +} + +module divider(a) { + rmid = (div_ri+div_ro)/2; len = div_ro-div_ri; + translate([rmid*cos(a), rmid*sin(a), base_h-div_dep]) + rotate([0,0,a]) linear_extrude(div_dep+0.1) square([len, div_w], center=true); +} + +module card_slot() { + translate([slot_cx, slot_cy, base_h - slot_depth/2]) + cube([slot_w, slot_t, slot_depth + 0.2], center=true); +} + +// Gravur auf der Oberseite (vertieft) +module engrave_top(txt, p, size, dep) { + translate([p[0], p[1], base_h-dep]) linear_extrude(dep+0.1) + text(txt, size=size, halign="center", valign="center", font=font); +} +// Gravur in den Mulden-Boden (unter dem Acrylchip sichtbar) +module engrave_well(txt, size, dep) { + translate([0, 0, base_h-chip_dep-dep]) linear_extrude(dep+0.1) + text(txt, size=size, halign="center", valign="center", font=font); +} + +// --- Zusammenbau ----------------------------------------------------------- +module raci_board_text() { + color(phase_color) + difference() { + board_blank(); + chip_well(); + well_ring(); + for (p = SOCK) socket(p); + for (a = DIV) divider(a); + card_slot(); + for (r = RACI) engrave_top(r[0], r[1], raci_size, raci_dep); + engrave_well(phase, phase_size, phase_dep); + } +} + +raci_board_text(); + +echo(phase=phase, board_d=2*board_r, base_h=base_h, sockets=len(SOCK), + raci_size=raci_size, phase_size=phase_size); diff --git a/01_3D-Druck/openscad/raci-board.scad b/01_3D-Druck/openscad/raci-board.scad new file mode 100644 index 0000000..38e97d6 --- /dev/null +++ b/01_3D-Druck/openscad/raci-board.scad @@ -0,0 +1,94 @@ +// RACI-Konsolen-Board (rund) — 1:1 aus Illustrator-Layout (Puck_ohne_Text.svg) +// SLC-Workshop Tabletop · mm. Geometrie exakt aus dem SVG (Maßstab 0,35278 mm/Unit, +// Mittelpunkt 283,47/283,47). Z-Maße laut Vorgabe. Ohne Text (separat ergaenzbar). + +/* [Board] */ +board_r = 100; // Aussenradius (Ø200) +base_h = 20; // Gesamthoehe +rim_flat = 95; // bis hier flache Oberseite (innere Flaeche Ø190) +rim_drop = 5; // Hoehenabfall an der Rundkante (rundgebogen, abfaellig) +edge_round= 4; // Verrundung der Aussenkante + +/* [Mittelmulde + Ring] */ +chip_d = 50; // Mittelmulde Ø50 +chip_dep = 2.5; +ring_mid = 32; // Ring um die Mitte: Mittelradius (Ø64) +ring_w = 2; // Ringbreite +ring_dep = 2.5; + +/* [Sockel] — Ø32 aus SVG + 0,6 Spiel fuer Figuren-Sockel Ø32 */ +sock_d = 32.6; +sock_dep = 2.5; +sock_lead = 0.8; + +/* [Trennlinien] graviert */ +div_w = 2; +div_dep = 2.5; +div_ri = 34; // Start ausserhalb des Rings +div_ro = 93; // Ende kurz vor Rand + +/* [Kartenschlitz] */ +slot_cx = 0; slot_cy = 85.4; // Position (oben), aus SVG +slot_w = 70; slot_t = 5; slot_depth = 15; + +$fn = 96; + +// 11 Sockel-Mittelpunkte (mm, Mitte = 0/0, y nach oben), exakt aus dem SVG +SOCK = [ + [ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60], + [ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42], + [-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58] +]; +// 4 Trennlinien-Winkel (Grad) +DIV = [-105.5, -73.3, 57.3, 123.5]; + +// --- Grundkoerper: rund, Oberkante rundgebogen abfallend ------------------- +module board_blank() { + rotate_extrude($fn = 240) + offset(r = edge_round) offset(delta = -edge_round) + polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop], + [rim_flat, base_h], [0, base_h]]); +} + +// --- Aussparungen ---------------------------------------------------------- +module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); } + +module well_ring() { + translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1) + difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); } +} + +module socket(p) { + translate([p[0], p[1], base_h-sock_dep]) { + cylinder(d=sock_d, h=sock_dep+0.1); + translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1); + } +} + +module divider(a) { + rmid = (div_ri+div_ro)/2; len = div_ro-div_ri; + translate([rmid*cos(a), rmid*sin(a), base_h-div_dep]) + rotate([0,0,a]) linear_extrude(div_dep+0.1) square([len, div_w], center=true); +} + +module card_slot() { + translate([slot_cx, slot_cy, base_h - slot_depth/2]) + cube([slot_w, slot_t, slot_depth + 0.2], center=true); +} + +// --- Zusammenbau ----------------------------------------------------------- +module raci_board() { + difference() { + board_blank(); + chip_well(); + well_ring(); + for (p = SOCK) socket(p); + for (a = DIV) divider(a); + card_slot(); + } +} + +raci_board(); + +echo(board_d=2*board_r, base_h=base_h, chip=chip_d, ring_d=2*ring_mid, + sockets=len(SOCK), sock_d=sock_d, slot=[slot_w, slot_t, slot_depth]); diff --git a/01_3D-Druck/openscad/seg_design.svg b/01_3D-Druck/openscad/seg_design.svg new file mode 100644 index 0000000..06e2c90 --- /dev/null +++ b/01_3D-Druck/openscad/seg_design.svg @@ -0,0 +1,4 @@ + + + + diff --git a/01_3D-Druck/openscad/seg_operation.svg b/01_3D-Druck/openscad/seg_operation.svg new file mode 100644 index 0000000..85f6773 --- /dev/null +++ b/01_3D-Druck/openscad/seg_operation.svg @@ -0,0 +1,4 @@ + + + + diff --git a/01_3D-Druck/openscad/seg_review.svg b/01_3D-Druck/openscad/seg_review.svg new file mode 100644 index 0000000..3e76230 --- /dev/null +++ b/01_3D-Druck/openscad/seg_review.svg @@ -0,0 +1,4 @@ + + + + diff --git a/01_3D-Druck/openscad/seg_support.svg b/01_3D-Druck/openscad/seg_support.svg new file mode 100644 index 0000000..154b1eb --- /dev/null +++ b/01_3D-Druck/openscad/seg_support.svg @@ -0,0 +1,4 @@ + + + + diff --git a/01_3D-Druck/openscad/seg_transition.svg b/01_3D-Druck/openscad/seg_transition.svg new file mode 100644 index 0000000..87ce39f --- /dev/null +++ b/01_3D-Druck/openscad/seg_transition.svg @@ -0,0 +1,4 @@ + + + + diff --git a/01_3D-Druck/openscad/stationschip-common.scad b/01_3D-Druck/openscad/stationschip-common.scad new file mode 100644 index 0000000..51fd151 --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-common.scad @@ -0,0 +1,10 @@ +// Stationschip — Ø40 x 2 mm Vollscheibe (1:1 aus stationschip.svg). +// Liegt in der Chip-Mulde (Ø50) der Boards; das Avery-Rundetikett (puck-etiketten.csv) +// wird oben aufgeklebt. Aufruf: use chip("#2f80c9"); + +chip_d = 40; // Ø40 (aus SVG: 40 mm) +chip_h = 2; // Hoehe 2 mm + +module chip(col) { + color(col) cylinder(d = chip_d, h = chip_h, $fn = 200); +} diff --git a/01_3D-Druck/openscad/stationschip-design.scad b/01_3D-Druck/openscad/stationschip-design.scad new file mode 100644 index 0000000..b97d133 --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-design.scad @@ -0,0 +1,3 @@ +// Stationschip — DESIGN +use +chip("#2f80c9"); diff --git a/01_3D-Druck/openscad/stationschip-entscheidung.scad b/01_3D-Druck/openscad/stationschip-entscheidung.scad new file mode 100644 index 0000000..81e6f85 --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-entscheidung.scad @@ -0,0 +1,3 @@ +// Stationschip — ENTSCHEIDUNG / GATE +use +chip("#e2001a"); diff --git a/01_3D-Druck/openscad/stationschip-operation.scad b/01_3D-Druck/openscad/stationschip-operation.scad new file mode 100644 index 0000000..9e61f3a --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-operation.scad @@ -0,0 +1,3 @@ +// Stationschip — OPERATION +use +chip("#2f9e57"); diff --git a/01_3D-Druck/openscad/stationschip-review.scad b/01_3D-Druck/openscad/stationschip-review.scad new file mode 100644 index 0000000..954d44e --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-review.scad @@ -0,0 +1,3 @@ +// Stationschip — REVIEW +use +chip("#8358c6"); diff --git a/01_3D-Druck/openscad/stationschip-support.scad b/01_3D-Druck/openscad/stationschip-support.scad new file mode 100644 index 0000000..e2e6643 --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-support.scad @@ -0,0 +1,3 @@ +// Stationschip — SUPPORT +use +chip("#18a9a0"); diff --git a/01_3D-Druck/openscad/stationschip-transition.scad b/01_3D-Druck/openscad/stationschip-transition.scad new file mode 100644 index 0000000..9b857bb --- /dev/null +++ b/01_3D-Druck/openscad/stationschip-transition.scad @@ -0,0 +1,3 @@ +// Stationschip — TRANSITION +use +chip("#e8862b"); diff --git a/01_3D-Druck/openscad/txt_gate.svg b/01_3D-Druck/openscad/txt_gate.svg new file mode 100644 index 0000000..f6930b4 --- /dev/null +++ b/01_3D-Druck/openscad/txt_gate.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/01_3D-Druck/openscad/txt_raci.svg b/01_3D-Druck/openscad/txt_raci.svg new file mode 100644 index 0000000..2805c39 --- /dev/null +++ b/01_3D-Druck/openscad/txt_raci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/01_3D-Druck/openscad/word_design.svg b/01_3D-Druck/openscad/word_design.svg new file mode 100644 index 0000000..99e8d80 --- /dev/null +++ b/01_3D-Druck/openscad/word_design.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/01_3D-Druck/openscad/word_operation.svg b/01_3D-Druck/openscad/word_operation.svg new file mode 100644 index 0000000..9d27c5f --- /dev/null +++ b/01_3D-Druck/openscad/word_operation.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/01_3D-Druck/openscad/word_review.svg b/01_3D-Druck/openscad/word_review.svg new file mode 100644 index 0000000..f4af609 --- /dev/null +++ b/01_3D-Druck/openscad/word_review.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/01_3D-Druck/openscad/word_support.svg b/01_3D-Druck/openscad/word_support.svg new file mode 100644 index 0000000..b22a0dd --- /dev/null +++ b/01_3D-Druck/openscad/word_support.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/01_3D-Druck/openscad/word_transition.svg b/01_3D-Druck/openscad/word_transition.svg new file mode 100644 index 0000000..73133c9 --- /dev/null +++ b/01_3D-Druck/openscad/word_transition.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/01_3D-Druck/phasenmodell.ai b/01_3D-Druck/phasenmodell.ai new file mode 100644 index 0000000..4914685 --- /dev/null +++ b/01_3D-Druck/phasenmodell.ai @@ -0,0 +1,10300 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + + + Print + + + + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUFqmt6RpMXq6leRWiH7PquFLU/lXq30ZKMCeTOGOUuQtg+r/nf5atSyadbzag46NT0Yj/s nBf/AITMiOlkeezmQ7PmeezD9S/O/wA1XBIsobayT9khTLIP9k54/wDC5dHSxHNy4dnwHOyxy8/M LzreV9bWLha9fRYQ/wDJoJlowwHRvjpcY/hCUT6tqlwaz3k8x8ZJHb27nJiIbRjiOQCFws2QN9o/ PN7HkHw/P/eS95REOqanCaw3c0Z/yJHX9RyJxRPMBY6jIOUpfMpna+ePNtrT0tUnan+/SJf+TgfK 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 + + 0 + + + + + + + + + + + + + Cyan + Magenta + Yellow + Black + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 5 0 obj <>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/TrimBox[0.0 0.0 1009.0 946.803]/Type/Page/PieceInfo<>>> endobj 8 0 obj <>stream +HO,9 )j N +ObyH|q%շYnN/}װGF\o?oz|}-k_lQ?o }-!^SߞaoݶgLi/9mqsj#x"V-}IHlO^{$R.y ѶħY Y??=~|D/̫"U%e*w m{&+D;mщIeU[!N@T:!!Wy)Iq[%+L.\U{X) k(o^+^-N1^9w)yz?aԧzEIZGOmB(~e/7U<9emS̏|4Xmsh(gR]iO[Q0v\J/ TcUsr"1j +z}wʵ??聢#)2=;Ғ&QV[ւi.7bӱTҝ}}P:_97NFZeB;RݣB[r䎹>xsh{y{Aij]Tۗ*i1,& +k&4UoSd[j|r$&8lm߾?~oH8&G!Oq%_5䐙YˑDYUٙK8$Le˵;\Yō]r &Afή#9 +0q߾q/ԙz8 |`w>*\:8Y>57}zXLSڶ7vx8e6GeIoˑ`o `H +N`4 ԅa921M'éGGغ rd8 =a ހMtݓ0mڵ!^ka!z9L11O{hj̼ k[o1ՑܘRA_ߣil9[Q.;5N6Wa9J +{x8%KDӮB׵7uSFj4@s( Sp1/4Rϴk1YU "`kpHYMTBӉ x粪$$5pN 19O`j91@Ӯg USނhA4v-roMނۡF,@0k!͍[DE;Zj1?`kQʰJEY5{4΄8L+JŸY˨kZsT`ޜ7 !CB:D('Mkv(F6n*(3w\@fs'ih ͸Mh'xK8K$ +ebY˕QO#AӛDϴQ;xF0KP,r!3<  m5.ck@M)g'E.8pk H7rC"!Ô enhؤ/w 95\y}uT6;tpT)Q^t']@CSQNG J@9,Oӛ˫HY`FK Eݔ$t]v9 JJ$x;F8Ot @ҚH+F1[*_ڶrKഌ~@h»d[@NeC!l$[ʚDu1]ipjYn.鋰_v9Z_5^yh\0#8,15fqqe"V# +mٹ޸f@*aN*oP̣Qmni۱a6t@ _/ME\oJ:=. e}Lf48`k`NW0Hi[vӬdUV`tDd$P=WpȵO;?iqf9ta-N]Iۅ%R~u$ȺfN\ +cٹ"\41g`qU+!r0Y05Z V#2]^o.\@8xv!4)׶eI-cԥl?4ZmmӆS:P/tz ӣ#^ļ/  ǘw,sls{zPE7|eg"\>0͹.ct+dNOPW'X2: +1ÅD"9%aGݞ0&!Jzזφ$}(ҴiDĩ/bΨfr@h @/$-ZVHݞ= +IaZ -{z]P$)Yoq i/{zC:$Fr FwEzXt7m(JB۶1Ckpav.9Y`ckOr"f]L$'1 ArԒ38Ӝ{"|x 9eOw6649[<)/{z@Qhgjj7ЎRԚ3v(cU'!0kcEMu.7 @5ss݄)w*d$GѽOhHj;,~ %zQLR]:#ӡ X 'b|FreMD+i<>YFg ąD_n,)9S=~OJ}ź=MaJNȼq̃u{ȳ יKԠ$bݞ:f9W'h5̲]0}/{'D.ۿjܛ5l8qXŋ2Rɴ_xN7ޭZT͠VסZcHx:@J^c 1:=gI6kZ?0F$lӧܔm/~O^DPis>jB3!>ZN7/ڸ-v/d#Y6mymx`_׸j{gH?D2Q,4@- t8pre"2LP3|uM@M!'p݄J6n~S4`ᢠea}زT샹vŏK/t #xJ}22#x!# *lujeǭ-=n6uy]jܦ +#t‚8x *2e;H1iD*М6cU$ e(1B]]mL8ǝ\Q[ٚÀ$(γ`(^6},穾2LJ0#5b+,%Xa3Uev Q@ls_ xf&MћQBvȸ&F^2?ڵE +endstream endobj 12 0 obj <> endobj 13 0 obj <> endobj 14 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 30.5.1 +%%Title: (~ai-edfc0123-7181-4a0c-b730-6f2e0f7405b0_.tmp) +%%CreationDate: 6/9/2026 4:55 PM +%%Canvassize: 16383 +%%BoundingBox: -130 -841 721 10 +%%HiResBoundingBox: -129.696838378906 -840.795288085938 720.696838378906 9.59844970703125 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 3 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%CMYKProcessColor: 1 1 1 1 ([Passermarken]) +%AI3_Cropmarks: -209 -889 800 57.8031496062995 +%AI3_TemplateBox: 298.5 -421.5 298.5 -421.5 +%AI3_TileBox: -125.369990237057 -713.198431300367 716.489990234375 -118.178472804272 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -761 99 1 0 0 0 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -761 99 1 2125 954 18 0 0 1403 107 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:-8 -817 +%AI7_GridSettings: 72 8 72 8 0 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 15 0 obj <>stream +%AI24_ZStandard_Data(/Xt>V :o@|^?;_$2ɔv6 ( +8 +39/ǃkIuILI+Tk~QIS`k` $F+~W*dVXHUMʪ2WU)e¹/KVZlr1]+KY ͗2e˖HLW\R.ΗfKaҤեM9[YJӎe.M򌄗uw1$&P,`bxyp x 1 $&P,*HB 01!Xx0b$&P,&$XDHfHL$M8LX  +LXT0>`F2&xռzSZu, [%ۤt74+WM +.$t XP`A2!RLQ,bACdD(Phx@"B뱔xrJlJzm%ؕ2ɋlFP,2|0 U1bc)S,*t0 +R>R, GQ46Yabx8 8GC8R I`h(W)z0p4mł- +)Z̖]ۿby8+łFy0ijR,H410Hx8'*T,\4bQ6h0ge*ZXln<PeMLR-|I b(fl:em Z+G'&L@:t)FeDe X[IXLMěEx8XbaI"ъWR,i+UeX{*+_Cp@ ;LŢX8U, .K%s<.x{J`$HE W6W,geR,(iBOyebUgH!CP,X A ;^+2X47Ţ #E&bM.Q,(4ee$*Z>P,̣X08XE)-b;W!| *X4T,q3?q< #aE9\h4 FX Cl R" ˦ ~q.zP㨈hRG^)dØ3Ie+aZ7W꒚^J+R9%y$X2m̶\RBP, F6(Ţ G`gCgg(P,װbXW,TVbbqcC  #u xg9S, b㊬l6r!@łM(jdegYS=>Du eIf$-Lr7Ϭ Dh0~b!ł XV,Xp< x BP,xL jQ k\ٸh@ qA;aI?a{#!l6 )6 (dۆoicTjb/:( *N R,A5.p? 1ZT*+GAjd -ư9ac/Ǹ9qc"1@Ţ| pI鬴|2|$$uCaA 3bqg4P,\vg4C``00h<x<`x0<2B +!A )HA b!IHB9Q,q@@ a2 f(b0c8d@dH3`h04 Ãa``tR6't`xLD<4,4rs\û90jc G9Qzea]YUZS afNbqh47kXnPi00 Cp0 d ((c qg:3$$F2yiYXG`(e )baA +x<ƃ#==x8t(c Hp4 Ţ lDh$LXPpC" $ C@4!,2A!D 8LH4@` &  +&HD0$ LD(D$@D&LhP +$d0 LD  CÄd4HD& H4@4<@   H(@d!" 48 "I$"& D( *d! A!D!l0!DD0X 4h<<ZH&HD`yDxph84 LHT1A *`C +P!$ +$I xDdbP,"0H"$ pD ""!XTXP!b!a EDBȂbYD ,D(<\aDDDDX&0 ,d@BC Xx L@$YP,  A`0 cބ D "$" <X|BÄ EÃC &&,D&*@hD$2XphPB&(Tp@ƒ   "D$"$D$ "h &"  8HxX lpp D4WBH"$.Xk +D 4h@a!@!"qp[ +""H4LDhXDxpYȀBCDHpP,&0 B$&h!A "h @@ +p8 +(HpX0!0 "8  'HD.P*4Ph20A"!8 CDaB +Ppxq@R @hxh$xx\ iHhh@GR +L!1Q=8adT:Hntޯ(D"&%LZ AR" "@ThL0b5 " +6hh +*9Z%D&h0a< l +1apxPE "D84 I  L0bbeT@A"B(S +" +$HDL4D$LX$S rAD S.KWv\9֊f7ձ[6!# mel`eOtnK"zWVGwfݞ.q4"S#O}/M>nkbs[!&Xgz/fn+V%DX$GO:^ּչ{*弝E^^MLzU䋙y.݅TMnU;},[bפw+uʫSۯƥׄűX~1lNI՜TR2ҽUJY[)io ]MǤ^Y2ΪwZzh$>6XZԽZ;ݯP51Ib?=3_I*J» :R]rךrTq8~ Ix% W̴+WkT:U'q*o*uJ˘xeƒO7Lt*}.KKUL3ٔ?toI:f Vr3Oœxf4W]QT{r/ab5ќfo}j˻z +9wXktήy龥d6"`ڿ25Y2¬̖+OUa|aK_yz|9d.JK$$T]Ni>7f$)-sMWYf2ߗ݆ye~?ўELo\͎ʓֳͲYXO1Pܜe-sxl +}iy34i,gfhxu=9re˜jhy+tVY7., 9L-Re|ܜ|_awSh9fUFfѥY:wy.c+aZywiCjżZ7U7j/ X\a[6ŴԪ(ٌa1 +YUs,ztO+VvDl0-sr3rnVe_V M[12rPYR\R/Y*4{Ҝ-y!KK<"*c3B+Vs$JBYLe_U]-iteY!Y XJy[bN`M/Wm%v#-E ]r*(31+Rs6TcMѬGzbz aLψ*ѨJ]݉U,KL8%3ʳrA|ؗ+mŧ ?MZ.+zBISTyXYL\y9k媕%/]uI8cgOnt?+;O77_R,~R2r5˽&4Ǯn^喴.JЮNt/餒HK~!Vi%TK,,aJpPޝ^äD50gYz)YJ;ټX.1Vu^%*KjD,_jɩYzIMrRK򊟼+gbZ) +̓3iwIv\*SJa+Z"KL$4,;;JUdEsmrsO9dI* +X Q $}yO $#Ƀ  8HL44!"pBh$6|ͳPG+6)X M)s7:Ȏ$vT͐reZM˗q(98f gڥC :2aUM(ou㡒gdήPr4ʝ%[}ޖ*%8EMAH%ID嘽dYggT/1sЗcjsgۘ;oS-Sx.񖸬)ymiNi]L:nC*Gܷ-1<-]d!M%^Њ')TQbw,:ޯGruZ)/Rj'uY)/iȥȒQ=GsC*>⣲br ӍHs?W?k~ⱜ'oCן*T}U.u}Wzb^=+D4lw֙ݬ9;!bkm T)D+F4uGnxWZx%i|g[ٴܵY35vftn*u[r]uW-zYȵuraZ/]n돮u)̵Y;fK_R3,fg%pXHtꄖ|-ge悦RSzU$<.`7O';F1E5Dxˋ.[YzTTJFԢOխ 6p|.6hKY9\s5G+8G.+6iEYYrJ NV)RD_k+2VE*gFWiN˼6=>R୵';^ 56X+yzyEc9}~9+VfPŖeGyF~Cag>8ݵt- RӶAlKuŮGUg4۹Ε%΍:'jSk_Q)Ԗw,[/?ds=mZ*[7!fyCu"r9Mڹn"tfB)K=4NA̞Xi4v˦֗GX̳^RߞW~L)KYeV5;bm;ZFea[EV]MbmЛy,p^"WRY1⡙OJKǃ>Tɢ*._2%MQaen;++M^a.Eg%KHk"Py‰;k_F$6EBJ,zVb*{C>}>f^g"*-ӷ%n|kTћUde Y_64,^zXg/6]2;oa},NhݾCY?ݫ-ت4;S {twb]׳d_Xj!ǵ 뉽 ӰC}QRoVzVV2Dt!)NM*7?_=DFͱzOXΫC5,넿EX!Ĭ*Q["VUβ+CO|fFa%='U I4::g6IXs\UD*߈lGHWgotYe^45j8Q_n%Ȋҷf *TQn¢Ea)jL.[2Y'MĜD.x!2 (|ZN _)8Ϊg<<_OUO+>PZ-U*#`oQJϖGס*[KZvKar&\v-^%ǟ1\}lwʸ[b3G~m~O,+d8kίgԬğ|kWJ%hKͧF+qz՟+{W*,o \*&{9 떘gwM97J:csMZwRhBbnb:+DWɗCjd-LqR^ݴ9hXx<&2y=,7GRyQS̻ɝ!I7쨤܂K/a|.;+p *Ss ]R11_j=ˏ x,T;]J_u'~ai zˊ%7kJpo +M_BxdD{Bʹ8ilHk%vJ<`U'Mȱ;rV݅ X卾ˡ(NVy*sX~NT>ZLIWgh2?IwsN]vnӿ6,hnDW*ԞY7<*4dIs]3Ė]MrCtKTՇڧ )!Ίt+Ǟfz,uĎCcN viڌKκesQnC8EN_rI^cmb^h>SZ/^=؛ԔyijnYYCg%;۩Ųo7/Jf?,IQ0:'f>ND]NGuVΘYRyS.Oi $T7cmtTDI'fEde=Gߊ-*FIWy9>FT~TTMOBJ:#ˣKIG6Js,oOuHi$y)}=4c\ yوK$fNm;!j1km;Q/+k "8/FJcZ C3"49u5 h⤄*KisN"$̼j Uy\ŸJ!,ӳCf9%4V)̺"f&}LL{8BX[C7lYiؼLgjsHIC<$Lʴ:MRR6yV`-Ve];CM|MKMu)Nݝ̳ʊ}W6xyk~8ٟ6;hsB$1/Oϻ$**=&;'M,TWmI*nD0i'm=ܻ㵌'ݪ!Sjjey?lSi>y缱n±IQslKNOdW켹Rx:}rRnTu])峳3ayش9 ϡlogS^>UHTkE׵ cM9TVyk!t)=ƈئ9v{i41i*M'-Е1\sve0}7gnLN{>#:NE}o3}R7&T t24mQAtgpjs=B,E2Bb2bVnۛu/MmCՓ}"<+QSk\z~fu檦Q˭u?gݦj?4f9 9LclxӖhxsO^ys[gKy}ͧ9ňBdĚ'MTw[n135q_vKc+}Gb1Ҥ]4໱7o*FbT04,iXF6z!pμ9.y%yl6ӴsrGMA4BO֜ޜ q86pUa׹|Nʺ~2Uҫ2sUYkҬ^3 [ V+,dןw=̖e֐[YQٮʹrVF5e+Ltf9+_e _̫O+_MjfCU*3*F.iM*s5YV ._Uu6U>]Jge̱闉UDVEǒ)Us2"f̧ȜsҪW|>iSulQ^^>}^ZS,ѬԤ99=*^J'LS>ng>(gOSU˧k,ʲOeЕfi+jU&Y%u.Tjթ;z*sZeSPY_fVU8s}nyT|zܔ= y+ʳR+Oo*hg<+x2S,aS3>Q:so;W,;s?Ci-<M ˍD8&g'ϹJdVHj7ұej]yd'n9OrDZaUowKڕm_Ź2&{af8Rm͉{s7i徆Vlv<$sod+6W3$S_5.e7 +m62Vb6 d}>UqQK +5WS4OԸeELefJnd=W.".=[Zww57}U^n"Z8w}2h gIY\tBD76 e^ zZ4T8"Eѹu"Q DdF`Ff ;'U>M1ޒJ9 T}Aau}R: jQ< +urT ԕPWjH 1mN}+M}'/ڽNQt, +%YN!PJi!p;TyO ďT;!%J|@2Q.T%v0W:ɖ]f(*)H"u(|0ƨD\0:2 |58x@oGnj@5\)dA;4+0@a]"x1*g'qb-qaFUלhB9DfrƋI'pͲ._gcCKI'M1 7gr/,s?/s +<)ž MrAZ$Cӻ0z9th X}LZ1)1&2hGP \RJ3<|VτXF&bcEˌ;)ba`J.Ԛ˵9*15o \m:'h370`y>Af|k1{-YZD:ܾތߩj3K*N@_> &3Y}*\,wQ. 75#ܑ_{.׎AWܶ I{40a#!PUp N@w5cV^F4@Z٫Z9Wۚ +X^;ke ,۷D72{_1 )`YCu+WQCe G*v*z$,dڼ~7ȰEd=|m_7p1~n-nL]` +㕞ۈ=_i3'GqT3ݾMF, }{RY _2u/_[M *tL];Q; +YHSߔJz;l!EDb4FU"sUBr-E'MO/D 冺ʸ J_f5HfXQP9=D4 1^pZYﯤpg'ۃeY}\oCe|!Nq$~_o ˏuի FD%A4p_ZZPT#p_ap}E4c?TPA4">BsM lUl޶^U8j~u'lqKfZy +1II'VoKDΈa((F4~D75>zAK$YCYp#=(;U~ 1tN-BG5lyhG.kbkoSon>\_q1Ajhstclݶ[pW J:{!auutEjZor;zjۋU?x+DQAOӬ::3 Z/DхZ"zY 7Q0ZQ-*WݤVz #  tYF!8! QM"`ɬ%%RFqw(D(膥F? +#Aj4Msz!Q\(/hv|(ێJ8q(?4:(:3֎6; +,Db"鹣%Ot<nLTRzCqײUܙVU X"5AMzeݮǦ~K* YT5o bcK9DF4Ng2=tIRXYRVJQ0(Ő U 8bS^M(AѼ;6\5M"7:- +6Cznp1 z(zD )fA~(*EA zExGɇ +B 5Lק1 @H.(Xx-Pn$ܤB^<.z\;=\9>@"h"WD[7φh@$⿒/H1%ƭҋaT s__SA]T)cRe{(||b]KT@p5Ť-ϨqP6EHON"m5%-vy&)&SP D?/>d )jeG(o-yDr= E%886_>z-vR[daFD2. DPWz- +Iص;TMA~mu,tt_K]6 SPgzsJW.ԣ < 9qCh&/.%PwAS`=?P3f ;qIv8{@OZc@E`E& ByH<8S3z*=#cn?d6yY71hDpeO5P qC, 7ֈ}Oh\a0V};L,_&Acu!@ DibwYI| yr5~U6 \ZWQge[J]8B61S%$3[;` Ua\gi8P-[LO#EV2d %,Y$Ax +WX0ؽ:)o,SaBZg;!%xm`%s]%d:<{OhL&]RfP{zVbYEmѣCҌy WR8&i@KIv$ +QZbGVO•JO+6FM:'ȉO5Jk7-R|KnZb=͑%36"$FÖwBMDIY^R +$Q%:}rͨ' NJ$"RtDKC0}q̡Ϥk/fmVD59z/Y"΍EzPˑk6Nh~k*p=LXZ6W@y?t,_jL]"=)Hhk`!=LAݱNU/ryiYJaYDLjId]S<6Deu7$h)'a8YFSDA U-KôE!Uj_rE$6J$ '`2'S>1-U +áj:eQ)a7tgbXDX8ahX`aF*㦢)?HBPI\Zhfhh_])Kv!"2azOE)N0-@v8'&uuˏs;oHݨH9 99o} α5Prd +g%/_iHb#Kb7K{i̓*>b:'!j,*א( +ZշHnOgd R6r ǃQ{k/$zvCb6OWo1 3p]d~!G?c<[O5N9qD:jIV^8h}G$}5F>³H:; U;h3uR 97@F+LP Lxzx +ŵ| )Xyz{TGrB3!.[PRґɈ +QH[q"D[J +2879#~}3/|Rgt\{ {  } 0HK2Y ᑓ 'CX@wFlOC0uaY@(T)t; mf!ˡ^*9iRgY,utpπR0~CChtnՍBhpLkAspkHv5Uoak+aW<[p +üARnf^Ȥ٢fœwk/- (Ϯb2qeG+M&R.McȌ XT!W ~S +AZ\ ïDZKiJ)+PXA!8*@'W;<` *M`y|q@uI>kPb*tڋGDC\'p\9ӧU{BXHN (>&8ӄ;9L`(")|K\֗dd;rbn 3R;a#s H(> <#l0xI.s97ڍۀưv5곊.f4XV.к.*GP7ȸp^p= ]y a~-9c0`\:ݷA(; w:Ea; /$_ +P,A'l9`KBRx䈨8UTz +ά^qQRRό]L?8bU7_h74Kٓ8?]!ZcbLP d6]nǨ+gP6Ly_(ggPV [ְ>pgY BҤ[` ;E9ߐ/A>%hb;9!𳢚ʡne?fBx'!Q; P7ᆬ}T\?( !V> \_++/ =q!zqAO9]*}[8Ϟw }<:~7yJ[V4s0SGπ]r܀O lP>嫹Jh(k?[f0̕)hbePg*‰ E%3{hQNS0[ |옊__ 1Ze*:>OXj* o [=i²עb*i*>QlU PU`ۧWWtX3 kdճbE^gŎb2iVd)MP,Wq='BU(\t\Ǫ=鬊nU2m_EcxKȪI`U+ӪXhar/UMK2qxkqvō}ywQT/ 1O @_Μ'V}PğT:-J„7.d0oB$B:OI[5(`^دqy< Bf'OCعB܆QNf[`7ghi۰(tH2d2zÙVY%B1Yj%hjȋޙstBu!Ιobc]Jy 4\]vY9Tn]#-L_m:\Wg-f.%Xeh/9sw: ";BcG7wIk0Iuն\"'p=4x/9$;pn>i*ߖ-pB3G@pYЍp{FuIjeN9؏鯟BBEWwr" ݇Oiq1+DT|j +Dž)O#nxf>-a d=F4:@g1A81fdz}C/$޿`}&9}|7*IIwRKPKM>`2_7US=Ǵ|%q3>l7٤WKi-UM|,&Γ~\0<V?^~-k0eT1:#E:5-  n`gYw3]4?H)=0xbJ+KRsIp%A&pe9rYx @8gH$,h\`?JZLs -NHDHIHL>eƝKt-֢,U²W8>ɟ2H)RIQ Z&܇JcuD_l,f&dCz?(FYiepE]hm4F,XS!#1 +y*fѦJ8Y֋Ҩׯ|?\E0޺\YcF(J=jDf O&+ +@͛;EDwB2Y8m3]ha";X}PPCGHd@N>e?WrI W"(z]sD8kN鎏VrVSٮF~ NM\0\MsIkzO\&w:0e: Tִ+:j"> tM6%[$ꟸ>=1_/F`D:L1]EVwHtYL5w/DQKR@"^ZĆ[ud.%#촄# S (d[[:@x5 ܁L,(}{gz9baю"a hW^al0* &<\-qlAC_oZ[5F|e ywMY켾 ]QtkVDha5a39 52vitglLŖֹ j?Ԋ}yTSVy!z2M/hUN 33J抇 +>MXKX+B&,Sitq6UC +İ Ki>I3 4wU 9 (+*OOa7,U[o|Mk`ؗRκSYVYѳ 2tY +tfy[04,G&bgOO}rW);mӖaɈ:>l(Yu,5~.x`(-kYYWyXJ<)6[OSe +*{fXuq0knV~>nsy AyOsa\*'b gP=0M Cpph|g;ojy `ָ0VT0ѩgrUFpn +Dfbt]Jf8aP9!4…? x%q`(2NBRDr I]۝GB!Y)![,@Ղ>)} $雚b13u~JF`=>:C2JƱhn]ZEP>XMX=r6ɲXhȗ\Fft䥗GO>cSLlƥV/(xANYŗz*^w7w%k@PR| +DB * z]qA$ЮZ<)]4+ǝG|Pue8<U_cg\u'q8藜@Mz/kba8v$QM'<;=nV}KxA/!&s-eaMAc7Z6V1Jm>342I^:*` -Љ?v M<4w> /Vœ#=Aq_{QǀL歘rOd~ +(Qz/r׻DZ]REw@sS}!Mm0Z `鋠Y,>l@w@/}@GS`g]-j&Qx:@p1)zkcn A'\!9eΠYA4*<,6BG_>e%hw`L^dsbC}WR|2z sHaʤ߂JjHŜ4#I@5]rjVD`"&P>2ٟG\\>RQAEU1U$ЯdTP, KɢS, +rKsY|H"SמFr3aPQ_ L1Rd{}'bɎ!FLC1.5w"FCSV1z#\0И>E|40*Aޅ:}˄ `ι7 B$Y7Hͻ ECaFF_1 h<=Vdz'+0XU15ʁ9>9џ5.(g?E}Ue\ˋj%eiVp%7OB@V J ndJYrύjFs7S Rim5T4%W_KNqhJ.*9{rؾSCP9):凇<E#/)WƩ)wonS3*U8l`OEr*8!Z5W[ Ȗׯ`Iœe"jw@dx#EW= i%,Es+hn8J[d}|n;PB}7Aw@_.] +`r:l =“5ӚI K!F#1hc>7?;8E\5=ƍZY{ uwE:RTQ-nlEE6oЈZ)Jd>Uz7@K@-,RCN} ژDGr١,N[M=@_'ANOW urPOҏp_ќM򿮳Go.*pu?Zeaӛ =Qg'bU>$0v4iJ7ls YZRCo^-B +Y!d)!Q< +8Qx!99L= KVa`|ߥ?tN#廬m#q:xr +`dPH)Nxi]qIvI՗rhE,3NK+lm w#?P ;ZoeJ+yz=W* +jBӈdXSDLT3B'DuXLKW宅jX-)nW|ģh+ +Ԍ?1&miL#bQ>u%?oOM@k>EG>E'' (< cLn]U+z"zRbBa;NFvḾJR}wD2ѷ7YbYǨ"Œ⼢,KE5{ .]e<`#.It1b'r*$׊2y1o|g +8ĀQ~@'KEf {1/)l-ISRL IJ#UG4|o#[A  th@ւB)+A R!LM/;XL.38`-[\X`|wP -I :`&P +%fNFqO~pE3eL{ +$yh5EYѴ{ص8:]T$C;sX"91VQ< E" +9klO + u%案:t. a9}try/R% -ITVHq3+R9-"(74exO"AZzA#,;V1F (G UPy5AŇ +%7?U >ۛ'a75R؃ ]xݸ37x[ȴd契fQREayY2C_Ka$Ck3F42TEYs*{Qj K(;q𨀡 D1X',c@>7i#0P I/AzW t*yV +w+En+ ʠT\iʘ2o^rJ9~6FԽdn!4'H5DOc5aa\Jxljt "1?&pGRӠ KGS7&j'hANמxV9^ Pu^i%|?E[ЌۇHhǡ(lrsCՐg$. իVfn>zDՇ5~ +&9=j]diٱ+}Vu-:S"K*#i WWqd6V\ىDoOV1.G:B SAYp)uKngsR?^X6cXj3z6*ʈ-<U n_0BƛHR,2*"]4@焚$ܫiH5mKs0u#76~E@#pc\/#,Vs2eJ #͂%@^VO@`t$25F RZQCͱmU ϘCu:2kXv=(i)sX3o& KYZBwmimܹs Qza]:àdC}+TRݥ6f annnq39O@r刏,Zom@BWݟuW D.PlwM4Mk֌ S:tPf:43VR?<1dQ]-/{rM\~<κYpB sqU~C"Yխk$h91x\=7Է⁳m (VPAu\c ׋Z5l^kOPNi~*zCw( pNQݐ-oRehѐF) Zfh}1H(-npsOoD쓲{$ fQ3vP@>xNLs^W2pa䩺3vn[BJJ^n@}"{B /-ttGõLJ9藭>N %--@2@C_pP9>p% RN}]/sMJS~RG=T5x9%3A_G!n.G,FA^z 荫k_h} 8XxY7*sr53A?4&B\$ +Z' D%FR|ھ6}ph߷VQ K'N{W?7wlI Ϻ< 'H0DKKeQ嫛45 2(*`TL +IaCCQ7CoZ0< +{X 7Nc&+bcBPL9tZ0Qi: +gٻe 8a\Fe0@D DR`pGRbuEpV͠܂.қdZv6%KMy}f* zv2@y՝1=+Z#;}mY}gűV앝rC~k4m(3jI({뗅TapN7rNڈ7 `N(3uskB=+G( +lwO{ tdA}O sFHaX%"`>9~ DEgO;v4FOrU2e7ާkUF}^'_V9{ /ܓ )z&idOH>G9'fY?jb +sV/ܬK3[VJ]蠘^1MS"$CƦ5p[$+ k%iCTsaqyOkqQn!d LkCHsLv\/ 0@|J&lPXbE^"yԓ= c|c, 62AE-XЯ tq/TeZzBQ*ժr*Q^tlrD _%dQobԼ)1|6e7H5$ ޠ$/2|IXRs=Ѣl B ճkƾKxL:"%.hgP ڤi[G'Mb]粔kNr,l;N(>ROQ-;s&$~`d>P+Z [ao7_$^ +ϋ&HX,l.,A'!A \ e i]51NBPH>}צf2%?QYGfrU#)ݩУCM3!,~.[ 238j6ɩ¾+$z}^^;c#l-t$e'6 o ċ~YJȨ}G)\$%ppKI?vx m|NE T@Etd _௡t 0MGLvt09U~Y0M&r3=qfRGDz(,e :?%CԳon;Fsa)VhWc +UZPze0Va!o9E-ddfIj[<N9%W)iF +ܘ>'@MKZu, _ %+Joܙw[FfA0Wґ׍1V`aV2YiUfy?$nb2bA5k y#tD%:ؒ]4iOY6̺2{F~EB@,.BW˽WlEuh[_%"tAR|G1:r^8B1{`@KuSA8&͒tO"'ɻD`7 +i) +6JĆ!K1*n j(nLnuܨW>TV-ڊZ%O^h2x!@t>q$Nba}>8F ZLJi:u PPvikvz_:QG`]GIl#d8_YpZ[5gY7;Efq +eɧo6a+(4G ^]4|7FLG$A6 +VDI-zSD~m>,q=eњGaI"_EVif[u[ )څϖAfJIyq>nW,^E +0X 2AרixGe:࿣Qd\<54}5V\30V FwJAߔ|eaDZ|eJML6?jO-;[B-g_g&١. +TB5AlP bv )"S`eA1+]Ֆ5R琫ƛZ܉;\ST.D*a$qh#G8iK d[.BUEEdL ECLEPGE(P$5^-X8BG5PIF{$r$(?EZmv\ upP >B?TnK¿ Lb"`vn؟'Xrj# +G.y̤ +[B,Zw7½4Dij_]1evGD1Qr&ԍd6? +&pQ><$[(CuKflh@]=|Ί{\| {Ak|OֻE\7DBnHog@ +eu(pVDAwCBA ( t|PMx*$!V k9ڙ =BKj2f=1)D3 C)0/$z$T2h0|% !z__5q&`c4n[t RU=cj +:<׺+#mmAlgZ=wkS-jpZhp~7ZQ}j 8ˠĶCV!,4>,X ;.+V8DDGBcUJ R-ʰ&4u9q +ckZ$kæ -ڏ!QR)pމx2 4*}_FCn> +<=BVw6u~/zlyԿRs'{JT3[*J7= +}()?t )P$T;̙pMϜFo45XS`7!(#ڙ)S<)"wp6Z +{ҞbٺuH3R8;׈yỶʟ]#k̭G־W߯9+;K>R̗$~#\FΔ_5/Ր8!rh/zeI̯nfNe;CAv:V/CQ?)xsx2\@V?bc u1P7MrOo} ߠ!izLPFY713b3Zf W.Ebw-IsSOeF= !M0erFeLl岋1_r gnvFH:9`n-aqi^[P( S98d6H K~+VY\wuP@JJ*d?3xJ6`UaΪ Ĉ)~> CW~ ?[@)$NEӍiJp&vB/LXhQ242i+UeλC&wlmA-;a_v.[ՏL.OC7]Xhz}v3jf*VrxӐ3Ơx'6|H 0췕uD2Ҟnx׀^JY)|Ì~&+O('TrD$aHY }^&`*<_罾C +HZЇj^ 3+^L`ԜAuDz {:L&30asoa22ٌ4Wj]X;WcRQsYi`v( +я70xt[ɝyx\N;q(?>1^P8'(p`&CiUCg?zb +iM>gp̎Ne׷N^|am94_)OLq](S_{Ԇ7j*18OovS#Rc4c7.<@ 3V ݃@&d9U5R{"1AL<[uD`p{}SpKt,e¥O`Cr N;ty~&=Pޭa|+a N +'U9y܇"ٽ޸O(7`|K7+NXPmɩSp8BSu~pE/fEN%aWS +&dvh\ׇXSO*RJ+{`9Ҁ>ͣhkH< 0` ;D]y֝D`F15ﶯ3$X#'&saCmxbz0-~DPpD7pcqb;y/$CW[]8FQG)NYXȖ8M] +D$!98*H# D2ܕSqQ<.V_UK$~ฎբ@#GNᔧksT$b3;"14 #)x$Hdƃ˅\ :.,FFx u[`#mƒdbd^#eho5!&xvVA򅝔JH 0~ʄ: zB?Uc٫^EFӾצo軫wsRnz-#i-%,3dF[ӽT),31,)HII2P +,i9Wy5TUNE].CKq3J^d`ʥtmj$h%Q=W&jHW} Oͫ'/r(}ݓ +˧cH^Y|*Kqꖡ{U/ +LGr ^T#%4!= ܞ% +=7q$ +Pd\3DzDͣ5Ґ$#|"V}yA_QPY:aM1;LY6%߅(U#AewbTU|vT#g+>e!zG9S8%nf!G/ y홶5Ug؛F֕15qɮRpR5߅H8 ͩ*"eSߞiЋXhGIw&DOoFȚwwNc>j;jINrf%IXu`Zo"JsʹԢhTc}OMq3Djb)ZzZg/GsdH1R +>FɈBѢwiQ;iuhLCessrR&vqKZH:X6U!\*'ܧjaXhX* R+A+30|ȴ2c5K !P>&Pϔ<E$i))$HI9 z]JmE!<`HßU4"f̃HdopԿ/"p +=|c*L&vEG{ IyD #%˴/A3鉦 +CCw&bhBlʏEah:I=,ZB5G2 /;BJD842A^qid xd|ocx)x!rP1ɱ P3])mfdBv$=4H ))WCA5+f\]$3 D2C4%e$nEc3c.|s#"`ahqPj62 +i]1D2Q i(Es\(iIY4h֋kJ\\`,Tj71:s0ůXSJ#T̔/r*w&Oqo'Se!)P1Sy2RN(KG RTF xPDgùV^5DCu4ŚRCU[n Ry.J^"‘|O8%V!!4U!Ty^PzCD9UiCBB[xO"C(t9u +jFK$6*$QKޙ`IbhbiRg!S5B-y4ӖoXz,} aSiI=3 {%T2:bIC-Ҙ*4cӞi]4QECLL(lfBc aC哘 +.8dV>za*L{xQR!/԰3&wtԠJ]S b5H%EShL:?zl]bU!UplOByc4ݙq s3h"$ON YEH~"ٝrx[lͬ6$C) 4u$N4]8qJ^JNyx:1xhx{ =# +0´zA,/ᛔ"z~FzL\FC^Hk% P<-?uQ9F>M/gUhBE[EhgZ D#Ê\rcN0`\ #aĨ 3c KU.f"Gv9谊!jPk(i=9EsAiqvގ< mA.ΪjBI~ٵ`,"%vP(S/!L/ ٙs$ZF93IJ ȳ+b03!ꀺ*W!J5 )gfx"φyQ66LFB490D*dydEydJje,^[. ,\&d)DhoIYh& ɺ)XƟ>(%<"li0 P)A Q#Ses l+*"Z9&5C#UT'2ڪHp/|AIPbF z@rcS.F_ "ȜJ)S 3!d5D-r:򨚔R- UtE\̑L/3jBt:dd8FخPj(<'(,H`J-SE9I X,/ؽ%uTF"Hd&ZwmB|Kk 1"UUR"C]oӃ}EU43TX|ל¢պa9h{ *W/ 5x1~L`䞐K`ETk4yusOwUUs[^R _n(M +<فd" <7A+萑`J +ǎKPîj)x =+;1M_зHmۅ4:' YNҐZ?e9eFháS"¼53+ t^QNCKM‹ "RU9\k$R$T\B1 vG:l@|UTH8-߮a`1׌y,8wN&.'"P>rf,=PYeYFѢ!/Jq%P!ViQD(&$2Rs=>AόeG*hfAwbS-2=HB1FARmhb(#tO5$<ޙ*wVU:=hbDK؆5ՉH\qW0"2q0Њ2SQQE 5"j.UEAj\NVQDQrDLhꂬ6G1ajM(eCPlSwFjRzBԺ%J?[F  !ݍ]"ȞL`b]2K%·jNWbJ_: Gؔ\#teʽQULt55u7 :+V:_:x:3#?D$QOrKii3,jA҄} iT>;iRŞl-Ii;!ZHdJ&CT=TibuK1=]B1$?oEEOvtjUstW$~4 5N +oeJq20#ilr1/J%^wBinS4Y42CX&^Q}vCrx545R]!ʸJ%;ZP*=4§ZU*Hbd z?"F(WAfht:TK^ȴCVuÆ =UAh^1Q㊉ NE4Dk\ I(ffaPu%\4AT|%+ EJȩ'(0 Ccׂ+ǰfGU RhD!,?Ag;[p, +t,ܪwjuW1Nq9xkB逜 +Oi| y4y:P}f\,NP%Xth,ri+TFNFS27JwIVrGK$O[܃HBy:2QkZhdjıbLh5e2Rhr?"u[P+X2ÒaF VI1+`w$e$8(9>j"4ۧqPS@AĉXt"SURů8T%JQQb*k+ofPUW Z+z$Z9,H@j(Xq/嶨g̴/yU(7ks]X;_娅Hu밂(.cYGvˋHUd($c܈f +EgdbW$N4BO^ 곟b!1T +IT,r/ l)ye?rڵ4|tnM?Ѧ~DDtb>&X5Uqh !E`D"F.!՘ʎ6\7Dejlu3"Ld{>6$E|R RVWQ EQTD63NX!qp6=!}LG)H\Qv0iI 6wPsipɗ~4| +>}¿߰Ij" \d|!G{Z4VH!h4>ŃS5 +{o`CzpZBRV쒤}Md&o8 }wLm'*. \KbefQ\e($jUP?F^FDPlGh rEt:) fEB6ьthw2)amx#SKXpwX~(Wj̒E#44jj9؞c!5gsOJ(VE^CVЋ /cޠxF܏G"\D3mK5 9+:HQˆp.Q %rJrVisռ^_Iq OwH1멿7b8(kSi XH]#o<*l,mѕV6T*B~ieMI֞?W!cM[!oTyψW#yLȬ\Y*BU|u1ӴtCff⩛|l5!עִvRTufPhΪ~[i'y%yQ>[FB9!K\nzLa!Fz MN3h'yH@ a=L&aɨu8sJfݐ'rWTq&i&eǃh2$O+[y҆(־L"]zt| QH\Rť(k#'SX bb9bY)q%o3\LqϜ特,^x]R-^IĘGX!,'r}OICɧ<2FQߋ"?$11*h~nXOY*+]rטPXDg^fQl^r<:oWnkUz.j&jѣ +/ q=Xl}T񦱶}Ms_3 +f&Xd{2035 +Ƣ)/S<8i\ 3+"3Ÿ4_q[q"qB%ޢJDJPSEC߹hD.C ! KʛF8N +!!A#oI-䑗t+=AEV[+Z _958]bANv +ҽ}4W4:'Ȁ{#I>s +|H iTr+jyGa^~BGorTCRBtHhm29 Yyu^;sh ڔB%y-ۥ.q/ /"KLFj"1H/ˇ2ecpNꄱay6_I?[1; McsN֚VV!Q 71.t(ac}/͆_'=X;E&PA N -0  (Q? 2nrGB7|UPWJZ9!CQM#y!2ӧY 9SظqcjJ)jA}"dY'>kDyg! +H) 12 +3 賖N})-۱bYg[s,w}V"VQ5,گW]o~}VJ;g?Te hJu]3 MhϊbRj DdgU% +Hp01jgmn-Erw?,*uu5l]Vk^ʨŕ}d<YMjgYXK'> ekQ vԇ}V[QjGge &Ԏ,EP~3g`yTY~oJYF9~f SQ7 `aY͡nH5\$ zԈZ ᳬjY#2WLY4zR2^,5\ 2C$wϺexzݳ&5 z ad!v9m2`C}Wy|+,"gmG/ȠY#=l_maE @'RlY9t7S㳚߿>k?R*SG0|ڶmJn=g%)dTO'5t|? t&tG vYE}%@(G Y'L@|ڜl$b푱G|U&8" gaKY$i9q&Ջ#bYzN^nQYWܴcfŔl@ӓ ^$Z~%9Zl=H >5:-uT +[`r.7R)Y<A7 +tdۀLJM,wZ0U&> $&-mOLdP̯fJgU ]YbxÂ_Q^{gM9-/uUҟ] P,#;'^>g5U%]$&%:,^EYęy>A:K՟{!7 9=1u:Q>]j?Eؙ6{(0N=,W,YRH ,ٌO8c +`-_> %ckЩ[S:c9btjT~糐> G1K>dejH#ИKܱd?1 !%lZ<R[汗gm XA>+ 5ҥY(]YQ,Cݑ9a"O8#f#4zY5 Eé}V%Ve +2~}vcp`ڽ lJ[MG/OjYs'r?Ht>ˑ? >7}֓zsYI +У,PN%&1Y@  ?rрJ~ee-c6YWcG >fAg}dEW(i{^,.֞@ BϊYkIgiQ¿gthB".c?sPǬ$:ձ H28ނ~־~Vnu#~ϒج֏0*&8&Uq +tY`^ͷ>+_.rg ;6K!D}-Gx}rϪ,Qg}lrY\A?|uMp&ukAX2ɢsmS~Pjt9? v զ!EaM-SBpO}Q֌Yn]1ߘ>{ʓ}VZZAF}V>r^>kV$l҉cΐԆ> EΨFzM5jf>+uʩtRί&Ϛ +Ҕ{˯v߱>_ J2 Mu"91#a|g*Q2ŸŵdguѤɟUl?M [!uڬgUJHHD&YLոw%%_Y$i'9Ϣ59rA~~LƄzf?0V6iv,&9YT&= 9_>^a&q)0=~uF=VP~V:C.4<g> +Pgau"A(l쒟@L0tcx:TؠXgb9gM;gIƪ쳂 dZ0!u|v> 3'JAljC3ud"j=DIQ}VBϪ o',;նi`ߎ~w#[z.:b[:]=1C#c_^UUI^8p?"B +? "s/Q5I<[gU-/nI~zq %:Yʥm*j?+G9?fUOAX1Lg1;$v|a?K磷Uu{%44Z@4S lhULYʸ[";!#rf$CsY!G=7Y31 +Y/RVt'^- Uů[F~]g`ႸOUԁu:53j0P]7Z? 19rX +,&GO͠:_V`́&hE DE3(o^2G&f: 1 ``a/\ j20t&+1&_ǿkȘUs8Hvw-Ƙ5 Zw).j-TXi6UQPΚ'- Spַ5zrVx -Z"55mUNJܔЪ}Ch󦔲l2PGhJObVsIgBhCY[$ޔz%PNNDh43)o $by8:5_CfALR DFAVuCqTCA 2+iK13I}V@ l FI:ͳ{zX\ڄҀZD/[xZ?+RO0D!,|BKm/8snJփx5&vu~nAKt^cxu]dE̊V"ۂyP3X9 a>V`MtA+W-HП9ӯIc Z78uG{Т1Їp 0!X?q56=BK8Bg2Sv0W\EhagCʢZBg2]bТ^Ѯ="!jWLFh(pަf"qT+y_jZ2iͳ=muQƬF2 jCAeQu- qVI*BUpf~VdR9HkZd^SZSeCY- *L8o +d-Ax*$0YSJZgZ\ >٤7`qYA.b Jp. ZO9 #7h&V[F5bNȁ1< h679A;Ҫ(^)/tś ۏA|)sw*L%R*t UfWչVyCdYxŋNBg63STԔJpʟ BplE# Gh5:jjShV1Dz"y^$R{ TZnBMhG:g`t0Z@O6ǣ5dj_1em4Q2J8D&&sn-5V,vɆ^ 25nbOeB!G :ǠCIb/,ߠe>AtcBUElPY*/;Yo 7h4\!AbM%`s% ɤa|?h%dcB $dZ\j]0/܊r*! +8<\D'\?UhiYbxJi0 #0PYhQcpV)f +v4VPw:$&3E.p -M􉊘}A1O\Y֭\{;zc-sY Z.@|"\GI e8#"ͫetZi vB " e]G2tV!"ѐl,8, {Tgf eM,DjvNcm>Oh!^ @:Uxރs 嗞a +-u*m!ُв]{D~I|-BL%',S!vWk,,KK,0їbW%ݭ$+Z#; +ǹi%U5,:2(r +-O?;J-~2 hMX$b!Yh!Ic{%UC}XhyC=!;-^0 A_.{=OڈZ<ZK^YiyZ%B+W0ʊBT&U.S}#B|U^R7Qhy>$I,OB鐱oZ 3Q +-uc:-4-IQhuf*&K^ +nB"B}jB;tQq-&H0%Q8_Ht!bZ'-'<qu3KNjK` 6K,Qt>P)9h++zX+`6dicE (2W aca]BEd(( .Hl8N:PM*?\,J6}⼔|N2a%keP8qA}i+i|3h_Ls1EQSWPqVlֈ#̱a{N\[ %B(-}f;4S:G2#oWܰx,!A~-}C~qWQc:NςrlݥHyK`\):`nV9'dpQav%\%FRpJ +(x`*[g/B[>j_!,qm-RUtZ#` ͜40oAs'X[#r%/cN _euf<~ٶe-"%ӌ+0U-8э.OqWYD!8&l|c/19 Oyb2Lz)c]dA*f7L٬Y칚KJWRvgQҗxmbh@-j UjM @2bSUT"$Y/R^_J8r'4b)b_SutJ1WgA֤2&q!6H Wc*L>T}ape.϶]%O ?@nag!ŧInfy(7`سt6=执3?}!2z {PL 5j%!e\hs;o6-_]E-p~}e$IqVW8lá/>4bWIOuh<|y +&YcJ{s.i`$ٶ9}=5Ӭ[ҳͥʺ9p:ϋf϶)nrrԜh9}SB,-Fe8 S$U,o~VeTaՄ2pި' ^e}R3&?20J:c!^!B EάR f O6`d-"87ݔP6@!V! 6;=֠ q+ԎUeZНLeoZ *5(/ Xi6eu Lw;Bx mS "jư<uKHKvi + RD +a%BHL8R(]B1y7HJ<fQZ+85E"˔bsӉ5`G@&43,⦗䗍|rʘ㶗 Zll3 bQ+;`3v]/qtcO?T"aAr~@djf#=8JY' y +4\iL5RAr7H p6Ҳ&: d#e` ۛh9'VnBW@s]7R\ϻD7n{okX j Ku9 3ޖӀ* C~vԴG#_!Bt$ᱼ' +4&fR탙 }vi{VPLzPE<;nxKu)Ec꣼O@|%dڢꎘuw zHGSQF_vۊ-Rf*)ނkW2Xгbf5 F9$tA1}C &QISzHi͑͌| +eu{lŦphMiу1"=BX"drt۰!V=*R牀:;`3`l+ "#Q?js^sZ%eQue[#%juO*Ԋ Hvn,U)'2s=*)tP׷`ZUfl )*li1:p"#Ca9LVeF8 MAtE]g6!?\BU[!w1@ zOKdpCSU]Y. C=)aޣ`Iu Z[\}yW0: Xh$իy*TNދeUZpD`HU',ی&OyPtz+yZe'PFȄs{(R&a|j>`4!#|=*V\vovSLvݗCx/4fnc@HQxjs`zYT붱w.ANq\QdMKC fQQL?@HFdD\bp1ҷ,E6:>ʵNI(~} i*Mҁo圴wO h%&8aw 702¶:|ɍ{m߉{(JYcɵВʽ?o-?J,Au/raTVnv3qWs𲵑ʍ7Y<'unfՠR, `nvJa[&AnBA:SiI'Ku } a*B>}#*rQe +%lPu}p}Џ.2NsttH#!W:H<ߒvB˃53!7]W}jZ5+n3E0x!Ʈ,Jgi%8-~ɓb. =wY5ZOkzQET8+W^a-5?Rl*VwUq7Lv~E .Â;@S(T둮5@ /}_Z4: +02nE[jyϸs1cFnqV_5nhK@'ñ` }Ac! +͘Rl[Pϼ,(.8&Y)O[w;V[r`ZIG=yu+Ta16a4#FBm?#VprkHb>(,Kl3+6sw*ŝN]*x>g%FU +Na0yI)swu2L,}[AuwwfpϷ"[0΀R3k Ï&ËfARXr*˨m "q+pE H"RD+@ۄ$|/qy ZwU:l4܏gh=qFՅ(}bUBPoFJFuG8TH(@&6tl9u +?Oi 8nRU}~B ܀hMdVJ- ^8[1PM4PTͦD|[]udEcZE̺EESSe%h=MY11X.N: !T0hlgB;,CAc+r9㗻 +M d\3qmG\mvF DQ}SR,| V' +8HSayu77dP)/BBڛUG ݒ.i^sa[Пj4yz MR7(Tڏ o,[3=\1\aolЀ8M92R6vpPR4XxB3!'άLMN#"4~ 3ߔb4*:\>c7 ,D63˪8Re0ޤS`;C=3v ިÜ.Bɲ3nE'uô%=,sUK4h&!ج( +1f@_2}'vxlYmnzg}̕5[\ ͽJ8UR5Í2jQ9\n^\dA\TQNzTڶB$Ś*3E&f!N.ӌi:HKq%'a`FY}Vj?*co$\rMo83W30m*-H5=I +V)b5a `8acz]u4'chXrh!%u'ZY='.OihN>&,:P4G16u +M`I!?CfA\QOn­/]9{|zri+~ynzEW7?G2s 5ܲ4QhgYiS7i-"uŔ(H.j6" ƀ/sɠ S[zB _"WGU."b>J&`[$Zg. 4FCeٽ&{j쓒?/ @\Yҕ콳\n$sЎ_Ve;5wW"<$P`QKmҨ4sGCiMN\f\ڒ=`TKs->M@8!)}nzo4 o{Ӂ-D Jtt;57{Ai!l@އA,O eq3g,Rptm|Gb**n 2fV"0wJI^ V ⿦4Q~ZUqjB wߘaW@t^,$5@ ߺD,M%$~?ʔ@ /fLEmLgs"[IJ0=j':)ꎚlRhN)I<,~ +cew rs>R]?;fC(`(rݐ66ADyk7L}z>2!Rf/XRY.B /1>c"4 +TWL $i%2 c@nE=(8Zc' I4dcl`lo=Z?H3iY5J s6bs32CC eM[owHEր/2C(`*WNv9`vOa2;i L0-NBMҧtU>4yjR>mYC<Sj+NfҼDgr,7mA.p81CQ$pRãUѥ7䥿rGrkʰ!T`]zjؘ]?mW 8WtGE)J(22~(t uh5L\!G\n6 q̗Xlikx6Q;@ٟR)M@qx5ӕxO񴣨6 `:wbYZxV ճh8c +94Smi$P -XQ&AR&6p=kSWi r$ϪvgZr1 XMO(+0 +ׯ&cZRhWhkD?}nܰWiL`'%o!7uZt(x,"ZA^NqPS+0-:=DZRj0*fbO+( >ԘdWNDBts֢E6"FﳶQR3\ib/*cj\*d * szVВt+M ^Au+ܬLcd6U앧JJ!(aJƈf%(JPZ5rL +# Np&~{Pʰ ͊dz__* )ڪ%8bM*oy}")BNMg"Iy"c}fU,Tmd M=c]<bΥ_v|mT߱ޅ@aJXefI2د4b!\S W̻*uh[D9C.1xq\ɐBi+MhHn` v/ \Fћ|A7+h//P$f<)>O:#U_One 3̡M5.N=  nWvmE=D9,G_GJHUuϭN*:n.'M,N{r#2 =aI MWlW +C,)"ewb}/PG&Կgt +SB9t6z]_!r?%u7/#~$+,[͊5C>"NDl纠fyѰw9a-u?pt'6Z~ .U6m6/wD,h$$=@N!-P&xrG [)i/q{dCDEG;u]bIA܎5@v7g7@M.kV.GdyN#@T&so:yMq Kk촜Ӈ٨0:;d -c@hdQ 2g5&ꅖYKσL\_ج>B5,;ϡ{:Աk[RQGNeaC)cY/1n9/,v1խ  k-sp EK]4S/&ٕ0:> @b.m ֌xZw4܈-MpjW@IB??-x 茍wx*+Tu]*=~Qnsi.҄;0(Nn+I#*&/:!^o?;sL@d +'wnC,Pп)bsbjompAI"Ԣ3Jb5 \_K wr|| +SDM2~/ju˚fT}*9fYtH~+Bp[k40zWDn-McځfP~ΐF ZmhVШDAK>Ģ:U\EAτȷCYz4Qz;hx3-*{jb\ ТH<%D{0Ɠp+4l* ȬEbruZd}ꗊxI\L8? +LsAˆ +ױ047H4 Q=2n eNRs-. *vTe2H::]`2S\ܷj)<^N\Vgu$(,3+ c?>&Ι1[tc%%wIK:{|NmX@1i;r\yu#[w&q:ݞe@:ʺߪu#69h&ĖJ9z-IrʼaxJ1YTXc 6F#TOO=E(?MK<>Y7>܂{!lT?rۨ1 #yHҐjjTFNR?R >D AK:{ +.?h-'-ba%2춘mmH8I(L#OғrnV'ؓZQGsgBQVr?R,%;CB`]^?[woQ +bd;+W9Ȏo F\l?0(Qcn/k0(Ԝ|P/᱑0|CG?-/qyH2w0RNJUaEjqD#$q M"WWZ %Mx0. + #Ŋ)å={wR9W! rvrFr +ІD&4D\%,|"'G0 e? ĖcrWFu1.=^wnCȸWXt7 s]V= +sic8Wd񡊛j" ?];Ot3j/3OT#o: &bv o<:GYcE?L\4An0%"@;s~r—cb84c@O ;z)'+H!h bdʰ=uxbR)KvcL[ -nf׷^ +zS>. 7 +' U^01u9 Ǽ ( `o%kac$LGX[q_`4&{η{^w@Ųui>.sJ*0}8lae-}߇Fiv~ׁE'+`&șE(M(9/r`~Pj&ЙuoRP_l7)ň0mҾII@#+#06$tTm\v䓻a+6hmL8hu"9YEcb_I *ḃ}ӛ)q8*Wf)$@&lq{;%(aX 3,*2K"h3@2LlpY=MXU0]N[Tx6IDI_@a-9Q"*\'9ܨI( +jwZNCSb{֐jBgEΒ +dgj_"шdB*@2a@ WFuUxy5P#s_  Uzs؅6FteǔBa~e@[/Z{A\x:3'ܪ.Eg:I@(CD3ND^ 0ՌcdO:Cx&zWbZ^w?N~v]%r"xFĖtp$d^(Y%]=% +y[B2]E^ +~ϓM3 2 + $EGo& "ߠ~(GPJ`GvWV8p/$r\Ѯ(&},%/hiHx%8S:NO wӊ$ SK(vq-4+3`Cm4QuAܾe=#mlKB9p:4O 7ނ5F6i&rT5.+{wN}vfskO +{$b??AsE7BEOqo[/, +Nzlڡ3ycbcD'F6:˂i#MX:]AB] D:I_<R? +nC*(:Ulf}+a?yAÛA{mn N$5v:($0'\ոP8G1L13]ǀ:\ѨQi"JLjnWh 1!ŧlzYHMceAq$*fa+\,  1hL=_g{~GXWehP9+ff@pA-nH{G`YHMu- +ؠƒ =##} +T$^!kVtWV;Haa=pn.Ϝ<łEls0C_|01{8S!ɂOU 85ǟɂ;9HG0. 0)jxz롰%z^7v ɂo׉ϰ3s>_ ~qGٵq=ꕦ$bbA3 IJ,cIf8Vyz(zY%` ,(t* UzY9@&SZ/.&R$^$zO,0UN Jkt:IUom;"TDG7 ->lnLS ʶXMk]n9E[l-㳋'"/&(x 9F3a,q}„)"T_fuT# XB2bq*],I>N!T`_Au]GLsKwXG]MI "$ ^8%a+NjQ`u& 0XD(z zY,gK,!YUUMtV%/ |@UJ̠ *?} 3kOF r$65d b:tXvR0WBXhV%X0u! Yyd !0Bj,T^/k25jz{^oAJEH&!Pze#.i{}`Y kXSPw= SIr_:X¨1b}B$ :Hj&ZzT+%5h' +;c, lCRxǁ&m iEbb]գu'~`"#4"G 4B/?RG7^cB\0,F Z] &`@o攚 +Epq^p=ØgPul f!?B K.KUf]ĘX„W.8?>.l1 X_ELsW&W]X$&Qȇă92 +T;V/Nv9ĺ<T'w $*_7MWZ֓_D'~3@=pRAgQWXtYY& *72ą +R:a + kQXYץY0[%֝n2`rTDV_3/9)w/GoJXȒ>)P Dyj=dMg%1XnLB8Jv$}ڋBE-G+Z$kTj D #7HxTtN r[! Tpl88arHU&FlXIGF_s4PaX1vipz.D0x+$YW'@' l=%gב۲ߞDږJFd^ A1A|`! h`V1?dL/l:dqH !u+4Z'(_>r-tKW"J'} uE/@̈WaWA8]* R^F|:*-<)x;>(>lۑ +p},sw3|{;LkmtfPu}p,bSAOJoy SHW$P|m9c< pHl, $H)Y+%"Bw#_WEQkl%9xR̮3=aP4ELBɚ^ ~MA~Sb@ݵŚMGq])YXmS}t^:LW\admoͣUۉOMAǣ + -jA>i$G, J)NFZR6:Fvn* }4@Kp8# 3`3@*PQr_&UsǛ993ƌ;,+:E@(& 7 ZLp7c8 [+q 1!1/\xK7WqBz`D4 Ӑx +XN4ZBȰ AtLquĿ.@ꪨ 9m{\&ٗ̕# +<_MaD%սUT"[n NkRm&Ŗh`R9w<7Z83  >H͇}蘺$!ܯ{B@[gCz +endstream endobj 16 0 obj <>stream +W=EOa~:Ώ + +tD\<x5Q꜐~pjQDt8х+YZ{6{{rJ+HxշұҊ]H.A%h'lq[R\*&˱]NBVYI4&•p94%BG\}#Q:S5ktȑO2Vl]2oLG"CL;;F'qvbfp@a(ܑJۓ*¶m_kh&_S/eĶG}IdεךXC-pWZ=-k n?.ke\ +"~@ Qۺ5{)T+m,ȣt0Bڂ@9մ)|j~Bs:{͛قYJ˗ZT>vLAKLirY͕-@-SlAkl5:+t(mרJ цHjR@ӝFy0yNj_ &c/B!IOQw,La3[l[}z.5v{[3_?и}=Hʁ8ZWV.Np4Avzɒ`r&1 >|]+3C`Kŗ-҈WItF#JE ȸH48:gKG׆: |C' fh+V5;@P]m%4ȽJ?@2|sv~q^!|}atA2?.yeLG$w֍PiFY\3g,̍blfLB4ҵO*9M+';'ЇSRAIŠל۰Ҟ6LLrzL:4ggo(<_ׂ\gd?>;LF njFD5Θ\{1+(g‹ \n[HE|YKݗrtsLetz QIRPm6o6=b`|y8#:^ ӈ3 +|+qNb/%"aNyͬN&>x'|BqZĘJ%gCggym&oٝ^gH."bKf~Օr,4/!t :AآiVw }Qm>U+'r(OᗺKf;Bmv3:[2=uyŮ QZ4a޹V6JUEfRp>n_T1ރtr~HziÇ3tz_ (y'z!*HKRN-!1lCPվGOENǰsPku%8s@^5ߢy'@2\ɂ. Mh2xɦzD`Bha1G߳(WR$Pi+Sx̝ I no7HL1NQHݕ0y1 {*=ֵkRG6LNU ɑ˻mSRO03Z#rnϽ)Q鎔h,WTO;AH)(R +jءh&M]K^7vҌ@:aը0qLew~;\ K3z[fmZ{uدxڱ YWݯ`oZ[T=B H12N) bAv]uĘ d*p[`)^H'Z"$f3'u0|ؠ~ax8$l74wEg1TH WȕTvt <õCU{n85?{{nyo)D(!(fJA}1¹BcpěOO,z +HB 93YD +5y.K$hk0ٰ8HKP֝ӺH4~X||IkFI! #d2m! ƃjg}F¿ET [ߑum~0D]񱰑:%lOғ|qtD;(4cUwX Xs^zId5}Gd%04̖JG_sϒ9f-ʋ 0mEV@E'I5C +ĂĭRIF h- +pMoj4 +5l@ +w0k1Zt z!w,YT?L#IE0U&6Ы.dc¾ѿ욈fBGd[-tU*cUB0r'\9Ͻȸ}~f2$ȎWOiFmŀ~A٢N50vơ1e7GxLAQ%"ZTZ^@Ih#wq5uFJcg4R%B:Ġ_6L;B6+yI@.ou [pw&A(iDD10䕧M~p %6R啖g@۫nL^iaܦ?KҩjCLByGzKeM||E:2W+qU6Ds0|6C%dvۂʹ0hp9516Ѓ< MJŦ f&56J/}!QUx~@fc%oqVyxY/-&lmc8!yx:%3YVkH=ŽG5NPc; nQwQǻn!%,&L~Ang,4Y*;ѓ6gRR 1R"r^̙.2M4#I^~#001a=/n7yXkgT}WCGM%eől$Ի\& mf0g}3&Enrx_;I[F9$Bٳ|Vt'(}SȑADZ!:oT\iԳk-Y bOnMa$lbCc؇;Hm"_{}x"xn=ТseןU3Otn i9LRSP*kSǧגw,s.ešv' ^mh2To1=`w9S}hsFٮ`>$?#ӆ(^AJ\ Ͱh"X(]UJ81wvVh.c MVf$`/^ k"v!' nYc,|]`0lH:J#Fc!g;ꯐfkUzGb/a୴FsjG "2*/+gqP|%4x(ڶZx7Dyo93RCkDz$HiF,.v~I]L^QO-)Y59Xչ3b<乷= M׶̐mSy1NűlF@%T:^|ͥMRƤaOL)`3l23',?Y *{w]]IbQ#z#AoXNRdװ̷ă2[d.SC" Xk_tp.t㹈pj_"<6% 39,^e+) '|;}`kl,=CL&d|N 9Uo3MkZ&ޢ>=wP_QWǤ4:q4vSh^1(:6=rT= Y&*,~4^m`;yb:Kfuz~@KaD-)``꓃AyJk lȌ3 %+%Փ¸^[!%gR\ ^@t-Uĩz'3ҁ,(yWt.qQzf;ɮV1ED+pPH; =pb"}*CCW"MQe $ 9na8P,. D ey b+"RDt,KtHY&KQvq$$qۢ"]9h ˴(^ՊWhdUEӘiA"JHZB|zy舩nN1k*j/:o{A5TόuWV:V ֏ԥ>ܺj͐FG]!2Swff|U{ +YPekS[F]+;.샭}rpBճGK3ʇD-RH7&K9gZxPǻKwjM:g?eҍ1?OP.}M*'+&~M!UB顚8ȪIi!(G(Gi!0W%}XNE} +i꥔HeRb +=k^2BBF[bce%#9/JPTnj!i<$蹃hߜg,&S/%4nd|wD+5#F?v׻ PU'}, +ȏtfDW!ރL,Q {WKB";*/V!](e1JBJ'$QOIyqz +9޼pW2TA,E!ouM4ZAǥR^ϑQk|;י| vV8hf/916pT@dPC5?K"%E;{͌NzDNc,>!Q.i9hӒ$Ά^&?H(AԇRoWQ'HHVFeӤT*EKnLHXuLP=%%b(Z=Fj6sQDn#,Rdd#{Y96%L9ň7eRB$!QHjVjFrL&贙8jZQ#Mh6SӀ|Mt4_t4buLl3m&֩P"#w^YEH.աŒBUSBU˨H䰴RB` 2$VQ$q;k&$Ja-PEyy8$EUuӬD'y4[JhhfZxل)LDfc*=0י?B"jF6c^Zb:dHs\*LNqWsnr.17t]1$! 4,Iz˖֖.]uj +E,B: s[B]dKĥeZ"y;)ѩbϐbi̎c T.?H: U CK9[L12%uHr(UQS5?mTJ1nZیL:H E#qȖkFDDqȌCHVEcQ(*eLdm4fTRZ\LQQ}ԏXAS!SGSu s:٫+[Z"ahNHG+Dz8>j)6YL1MH$aZkFR#;v',MDP#ɹGRjsN($FidfglR{I>J(quJ4aG4ajUJ):1[žUUE #Z,&Tw~x\02=R+"cuIELIs"QYl^;".FRi߹bV!Ik:27YŠ^^D+L7[czEL#6cN6|iZ9;336U>+[k?6gSbܐ5m r4ݴ̺G^0D#]PJId#C΄ȳqRRKzB\iV?" "R'Ue"7y$ o㉙މ#.MHF*."O3(O!ݨ[.X*JJdDN*V%X3 x<\#wR2Bʹ>uZH"cO#84bB\2@AC +u,;[Uj&OXRh7[Ud)7) + lR#b\1KCar)jXDNe6RD^]GGAMXj3\o-fj2=6A"*10<Ԣàzo&C! _O#+o"Lտ0cXBs"2TPOLO(E*N9Fu)9" d 3ʒR4;fyhb%qBLyhE\CYMfJ#"8ފDLrV{,LBBB b +&i2]NZm~l֕ [j0Zd_٬PFDyc76} +"DNzYђ)/QIA~_zTȾTטo"3Wkvikf쫑}h(J +{V^\%ZLȰA\H9\?,A=aIc( [6Sz@dXElž4Ȓ:Q[$l5B"R|ċ',2 +:YQE,'U$r"r$Cƹry+f/֓G-]ZΕvR˺Crk#U;VH0($rhj?jb˜!"=D"$'gt(v[[jD"Weڍ+!T)Q2Kݒdre æ!ŋ^doUi>U [#zܥHzT8LLHQfDj53oqgŎ I~diÖmغx\[ 6D(j8nDw8IVbY vک4i\o$$R!HX.iDx4E֪B*hj!GS(M֐a$7zT BXf"8&Bah`p1g( +Tآ)P~3mK *LSŦiyPLB +ϗbRX),F)4Ƣ.BB#l7Q3UqC.: +~ɢP0fG8( L6Zi-BJ%NHfP`[ 5.:C h'܂Br9̻. ̜Hy ? +t,ٴGv`:ut+&իFE=`_(P A ~Ҫ+r`B -d5kf +l +8d9n +cۻAA%(pvM(($A $ S>'٦'t,@y†0ĝ@e^'1 Hr/8.hp "7X}P܄"܄l3xlZĩ ApX:m_i3$̞63뚰zk#J &`шk5hO: 5>"Dଌ޵˚p1=YkR"H-7&)m +]]1`YqgCZ{M4Q8JgJ䚐˔>Bv % `w=2;`BzMH|=+rMXzQ]) ^b8'iSZKP L V6gђy% )  F nWmu3-Au+LPxcx-4)oCQLK!~Ra(,2h^i|s``2M%؏X\< Z%@ 1R2h5HeuL&e4F`fLf7*A6ԠJ Z@jPJXRR &1^G./4 v^L)Di)̈́c%\bN}Ym*e 5 DjOLeϵ2͎fL2 vmAj\Pș+iP-GeA]s "&!/Lua/Asln `^].{ HJx!&+qm7G#J0s %n !?YIO 6e xI 3KldS%^ Me ()Y*!A*d<%8F Tdip'Pf|NPcIPz$\L 4摄"c$!IK=x$g$("!4Đ`s$( rLi bPُW $Ώ s:I:|=@4[GH?{EqUfcҠˆԞ14l_Ოp1/t `VM"T MEةJ`2(9A7\"  K"vD# Ke$O H3D2E#Z9Lu 0`./ =BP!UOY+%x`kjD jЊе5~ 4_ b*-iy~`g!I@FVbӠߔRᤄ10?`ƙ`#a4k?`K~@3PF 4>P$}Mn>bz=HAE{P#=PN\=xI.5(D=+=X9btUb7a Y2T&1dȇԠv,AJvd5vnF.ApLA5t@\"<| A94ar9hHqEeXJ i0p0d-87xTeSj05 n Fķ_Dcm&\a m5 ȗ b,ڧ % DT6RJ5@}4@*4h9)GР|uae,>;0g)b l0(E0&20~e2H O2c%ϫE(/: !  r[@1(,'#m e a+ F2D9@/,< ޫAFJ`c ,`,gj5\/5jݜ``x5&%*Yj i9o N W}VKΪS/*`|=K l^Eq%EtxZ_@N cAUf)EE5h}} 񾀔 + GVL`] 劆tj>,V%^+u$k `/ 6:O֠-E.*Aq/M|jʾ@aPCkb" `\|^@H3 (Ԑ3+PJp=:FaR +L>\ C Zzw/U ~^ڳ.pw=F4o +:zgjU/\f&Z@ q@ҮH]0pAg&=[C@$ E92*оقTvCT frpÁHRޗbi d;iA rBD_}xTǂ_+7fE +H9 +XcU=7@LՓrM]ɕb Ye rOȴzWp躌K < R FqW"y16f +6;Fۿ..f!7Ew1;8Bq  +BüMZE]M(*@|MZ]*}ݑg3 +X7m +|_Xk٭3:/v$J%@"*T~X +֎#@V!wRpVs" BQ HR>=fv#}D9zd0DJƒӾoeQ$Ę'3x48 +`}"e]˯ %%w%*<2$X1 CynV.E|N J)7] +t=$e7EZ4ua d\ 7[ 2K7|* au㗠Z",] C%wd&&\ !P\&0Kj)ٕ:%@TntM=(ym4&ɓ`>a}ә j.Ǎ]1P%ಙ$A8i:"ven P;$BĴjW6-Zd#j?5jG`Q|0V!#2@XM`@P@DF SZé ,J{ZZ#sz H(Y7"Rc| +jSa,zիE&XHYhN `cs@:*f|'#QHЭɩ&لo<w C +08XX T>8%9sM4&[6C>kYQHtF.u3[N45J{Ҷ>} Ȫkm3ߐQ!oMZgCR`/2@4r 6ZאـĈ$ygk<$pSFCZ&ůɝ-) Vk>ł5Rup^kN3m;hHqoE3$U`dsQ=`1Pc =y)l/ELC_X|N .5f\89?ʳPx=$YX(]{&%Ju?>{H.|Ujī8ݒ0.wЗDw`xx˄;d\nR1Joa!Tþh>+KbQJ;\6rJXP֤?VhX ތP߁PcZ\3u&HWl8MPƿ;8M2H<Woz$>;E7%MQaƾ?ϔiG7yw5 [02>V~!9(|_g2$w30Ŏ]J8-gqxnjE4:OԻViR>M`kd*PN6Dށ @v{NK@F1Iűp "+DD0[ +cbTpZ %*,;p"#ʼn$@hVC6򪭣{MU90Q;cE99S$Qo k2Nf0tw`ģ.y#St]Mx852JQY(b I:92ݳ;\.Us@&6#}.O20͎2|_Ԉ~WADzQnrR4j\&w@ 'H1jbxH.l"x?Ku`/uR W fͪՁ,2r16z?oFsk |h8[:wpX*?I#a8;pbH&ގ)8"G4j4:ৰ eՁtn̎y.Hw~Ձ=7Xu`a :U(jcxנh _ss7EK Sxo ]H]1@TdSSqܱ@J'Kt22׀j"z`Tb7ku텕:h~oqjAoJmk^@z c+Ƿ] 6jckd?&oQl)x=L +zBbg!tu.U-kA뀲!ɽԫE;zۅi@,<v&0g)7=g pČNӜ|ta >뀕O ]dh qg@"|1V%vbQZP":pݫ(lhO}:ξCWA7zTr`{B6iBo>^*p+kn + 2 +;Eg**7:@oƷ!5 _Y\;RC)?B +]-E"Sa17u*AIJ𣳝~Ife,ƁJUPCͻI5fؼ$0nzrp:5FԽNԁX|}ws%-7 1R(b_{hNs2 .m*(d)i¯t '\~[ +<)'jۤݗEQj>g֠<%.lj7ؒIZ_! +@J Z4Q(XYK%'C9[c._|cN}! '}Fl\ .ҵ@jΪ*JY+v +y(vGUK0pvE͢hجb6z^ 0DKD{]fyᘛ3X[?)Pb߲{5QEńK.?rk$,,-&ݸvޜEۗbB&, +umhg,lXYERf 0 1*[RHmY ש[ +Q>j@k3W +uu<-QNJU >?R0 7S ʻKT=D -Rb =aR)0;(d#F8V7P28ɞe5 C Lvw,p|A5}{HiKa&@A ME&- +X#U0bՏ7(CtH< kCXI BhEJ;y T!p: *҉nPv+  kB(۾j,(%QRMH;^围&sMن˜KA܌-o2)bBx86Dag+.BcO.x;d.o  +ad$$50`7y4@<m߈trЩ#̵9▭%  qLX` v&ƥ>xDQ2Ǵ$C$<@\C֜(xXE҈P%l2qަr75HZq|qh+9u3:;pCTHL@LR 1kDuvDP>V.?~fl`6Eɷ=8%k 7sS}{1F̉t@l8?#N_'s/s/0b[|9\KWP# p_ҏ*9Hyޠ@!CIY7߀r^ͅCίnRa#@hb4X7 oBP--#˳^D0t 4uw_ݐuO@(Aa$2R6(f@X@ /<C9n<.'U?P/;| H]`#..&[#^"g1K'1 1spa8nQVca`vR2"*1T̼b`8zvǀԆѮ^>o1rj&֟ѠMo2@ǀN[pNW?i"#t6 ^Rn<62 C|9 +[h 8o<7 Fd@L`rnx ] (L:# MΦkqqG%P\2V8ɀsTxJ2]$ZH +6y =\o+Ҝ* _{n2=%'pw)D4IMZ7jn Hdf(L^cJO ֤֪8`gtڈ^lsE&b@՜1L a@O_@aL_ .86Zm= +$8($-S^lBae_( @% ĐIʘX⨧mz '!䯮Zo_Kj]l؎9Nh=R)w/ea`JLr +K)0@'=;ő^X/h/>uIփ2?PJԭQtnҚpO@ቖ@"q-uG-e:@=%+xj@r*:rY! _B5 +_=AA@ɚr%/S- vPwRppMty3.v9y$'U8uNkpiH]8@d,JsW_efM@i A.oE4S1eG& }mt‰0F} %K4O,MA@>C5tS` V* tRt5z@@2XJhEf'2G13EO&^Ҋ'% 3xXK}.A]кt8W!ሞAJKj".X!zr & c0/YN"#V ;< iasF"!ɕqבR9/|o/cƠEH +"3u_ޣj +h(d:L  tGwHz~^SZ 8y?xV)__?<ǩur mK ESY܌WPv馄I')EQ- ? 3%1ϭ'IԴx](eX_ MnJ: +DtN@הͨLӫ +(-(xAa_‘e1hX\+rgHҸ+[֋kģ|)דTBgUW) |{HIoG *}gp0VA +\ H)OAu|ff7L7X΋,v-!X"p.k)K{ H]o-NkhdknnB$z˸(GS +giͫI[`&u rF!E谳xХ 諒S +}Q(YO/p,_+#ՌJe =*6*~V+W=m~qoV/5i<5AGm'Gb"f?eNذi4ێ.9=*ěs4_N߭u5/'T110[bܢbleb`D?R͋s@wտѦ ͓%coGW EF ۣq< YjSwW]?2`3h4 +u kP}B-,|2l6+GripB>-zW΄iKgTi52OboB=MxqY#+B0lc<od _-p?"3?!|OERF'fq_EgK}-ۮp>]2-}k SkU1R)OP4[M30PْT +!8?J/\ (QE#ݲ&ZSU0.Hs\kC&acv6 &(s_كD< \;iPm1JE\e> OuYCί7]HwCl& V)pKZCГU gȤSS /F1R7gzV_`aAun&W2bEtXIP.љ +ag1 A^}QB +,z;$ +8G]pB[ ͱTb,$v8䄄6wmrTU(뤓;8A%o,c-oc` z/vq#oF=Nc^dtlD*7 L.BW' +k(HxM)Txzw's } +$G^6B.Q.Hd;H/KM=HtWwTi7@*U>ov(#dr&-dOXb_Oͳ|"ʉ8]!Mo<+ɼRѿC)2di0wNRm~OB_A՟ע{ `67 +I>x(#л?7bVv4Adآ^4Gq˻WO[5ys>{9gIGҿ⧰"_,}S '][~~(!bGjFOeɠjp.B)P=c#-)c*fl{D bb)!Ee'.>CcIʣV1 b< qv9hk O.'N^S ZC)'}|Ӡ#۴] +ċKCDXAt#L{d?yQ |D"쇕>72 [nH!?t8>)Y?G~Z/I!Wjٮc:?i X:Q(P'ְc_Ȉy{pPk]dj48]k,p3>F1ta2{%FN+Eh!Ov߿qGk|š҃n~xY 6G:՞e0NT/XX]mn俊ɜ-PlƔpaxrnw٥cgyw~BEľ/ބsޛP4 +#OV?jPqm!x_^28jHRgVPK1jJE: %VS*)rkF Ob7@VM +g- +VeFVN>R6m_8B ).d~-aاo\vl!˖-MKN}łꞳ(y0~ +pv"~. gɽ Y2ؒAžm s'> WE%F3AQBԏ.%BV*NXau:| E.?*' ˝7Ʌ䟘MZ-ru`.}+sfw*@SO,4L m G"çO6Ib+Y/6~s fm0=C?q1h+̌>! QР?Oԑ=Jg>'gP465s7o%Hx)%?..v}Ȕ Ё|z@T|v +ɲX?56Bl|˶ +{އf~S!ǀYFo#׆8S8.a/ a[e,Vb3$l|tw3 i'N|"ܳR~u O%# cP߬Hp# =2#* FHs`hc#_38a19B~.ZSpd52" S8dsjt$N7T,V&\?˶ShExVOj@OEYmDT#S]҆@꜎cA:J%m_/`m#(z)']S2,Z|#-@N3/ 5\]sћ@#ث~`m]u[D YkJд h6Ж@M\ ~Ы +'8&r~2X`l,QdQȱXo,ڋ^0d4VdAـ>bu !I~VrL"}/(5Ungk+r_t,;v~K +>S{glF\*5^ +cGhλW.`R1xdєKt?4;;KɭD&, )݃$,ٯeu{s:Dнܗ,AXAEnh˧LI:N˻ώu^s:*S2!3IXS7Ao:С\%סDyPA\dt˄V%+DZv"ea^|Q0xݴ͎bA/Mlj.ː uV缋 %-|[tjlXC7N쐗J̝U7eyqĤv l軧k[xㆡdq\JU4~0#\Y TIF?w!Gב7leJpE.d۔J}%%,*L& ZTwsht! ^#./*5 ++n)>O:A[GprcR/ѣiͼڞ8)I ?jW;SdIɼd{}@O^uRz:{'D6 +OO@]03!lR'΄>W$ԯ4au8D,çwN3ϧTi~8ơfu4 f lK5 w6NtuKn0TdWw7Gu+fYccT!|븎Y@8ꤵo$ܻ +AH"fDZDZSJAL[k覔.pDՙ![8x`뮓ԷĔh7aIcG*W}DfΈ;%:鉉jlSŞN76OSN&,`G+}Ϡ95z+xɄKoZte}MjiΓk F[qrY{(5#os ;R ̠\ROu |Iyfu v:z +vRLRi.Z[ dpb*٠Y:MDA> +U2T@Qx!e찊A;:;VnJ.AE6';NS iM37h;LJ`a/]yaE53H.,pNx&ЀrYQp[WsRTe璸'!* {5@U۽hk8Pō̭kEAT*$x9io. J}h'F#€7Ŀ0Ŷ$(;M[tM Vi_ V*y!]u9/$?t fl堎ˢmTPT¤7]"OVuL뺍J T,qƝ+a<&A9x&V'}@P oeԳdOv>eJiKD=>"BuGwǴ%+ *X +7ts@*qGu>ާ,Mh5-><]ڼ)qBƣƲx|BytCR~ +l2 iPz +84 sCfVbyF΄TsԎ~zvWv⥪}þmI(HE;L=G:ը=4]'ű=.RSG|Rbވcˑ#298"kzn#1X:6MTCM)\st%W1h?|`&L"SY#(CdD=$Ӵ|TYS$, ƅnLB#3 t ͖H!\VIYOIs`ڟ/VӣOeJ'pўZNj. >Π=to~'?vԾW):-^1z\,B@$#MXqS**g|NJ$$r; DYQBϫi5g\c4@Ou9MEHAH#Jg|s6%ܦF0^3 Пb1B\M .uPiy`ԺOSo7[&:&]s c1Mёh0D/01 ˞&MznG@l[d 1ɉn;ip(5z1h<AN_MM,GA ?`a?Y_4 e6IGZ›A"os\}pM?6M& _BZhb!2H1Oe \_A.T v!A7"DVqP8^8.⭘Ž \ k&!vV8KݥvD?PJ { Pw$|EtZɅbo9ADl +`G>vbyJ1uR00D# 8ْ7N%-6IXߕ }peBP=}ưja +ikT,;zDG; iHE`A#z'DȪ +HB[ON#@4%q:o*}TG)+ 6%ϤhWBF"TŴ-pm**$8/dM}`/Fݵ7#tcF$d/*HhX {y0&^ i3M赻TYƤ^'pByKEã\ +iUVn`A%"N"}l4N+PLxͩt_Ë&w&11i7cSP?#4XN&` +3kD⊓S\JhVES U/䂋j5˯+Np B+W\qJa_ʙ#Oȡ5r4N0 ]. (rq?"Qiħ 59LN(y%׆>Oh&%AAp` `$OVB !\ d;́h sG#[J( +oMʥ+UfBB[& gBd;%h˄ˏLȊA@KLhWLM 2!Sm™'uq*CSfC'ftL>Ǔi8 sBɘ,!_جM'Ir$=F;HX{0$5!^.3j>c(QHф G!oGѳ48],ʘQ>NNvyG![?gMaw +[eC$S@9"GQ ,K8ugx@r"cLȡ_Vk0* +e6v(_$b][a*%*jZD~r:nQxrjxw%WX!h 6('[ݕFVaO` +ɨ+9+F,}Z!^$T*nZ!ӪMEtb*BR9%2&W/ S5Q̬l;*KBZ"R0|c!A4@ͣ U W&+' :XM[_hk_Tt9&+ !*AX VuR}W l)w'@EOKHc<ĜeӇa'т̀.6 +DL\>4ͨ!Ί@4ek'|%Txb0HxoňIm0Oj#}p$꺖DjN]^Oz:$*T F^>(w" m;ʧPPEnˮHCOigŒXe/Z4 { +Osg%R?u463H>/t|}Aqa`/i #bu:$P@%g #1.(3݌­*LUS#OA@@6/F0ta4jFa#7H*ܳh\Q{rHEIhOV/z+!#tJ04T0i6Ł%۔; +Q;,C ^)aP}ޢ^ơCf~r+Gwz 5ӫ@>q/h~GFWDm $ÏUϓ`G!rd?сz[tesݞAOUE=>CHH#EMKHrsD|$)UM쾥>9L$&"$;6bbҵt9V C[΃ombOr*8 ٣=6|ҹQW%v7JV.C*)JN[)"F}u)hTXL +dqJkipJ oR_\Da ;C)>qʋ9l DɟuQ@a)e\6ܮGsO?gH9SoIqhOϨvv,IT[( ),S(_`i=~L%?0ʒ%1E߅[bHi0~VeIh,<A`ݲT=}IeyJ ։t0\,K) = ᵗ%weIf׸S[|~ TJlIc +t _R=X%魰"Zꋎ\KӪ-F\J4ۧ|w71)/yvԐ5]o{R`ɴrJrrLVp$dR93SԿوTS@S;3Rwal>LDz +L9V*3y[-T'= frC,q/L̑~L2frm^tDXl3]Ȧγz;7jKN*w3*TwCKLT| y¡fS*BfP(B= Df&- X7]Sb/hfIR-[nT;X(Twnkf ]ڹp0\6f%(~"JƮLy )ζ4l[(Bݽe܎B8Iiڇ2ϙ" =5nӰ6O&P e'IAWDxP)<'SS=0ײA BTS&Ҩ̭w +iؑ]ez ,7dpam)( +1)P vҔWD#%ƥ.au9H&v%F$zb&l)aj(QdADݸ0L|U^dk j@v6I&-tpb ( nΔmq&0=.FÙe2Fy1e=K<)K1=tV2-Cx)L-m0I`. w.O{jIs:7"Lm'M_0鼋I&=M2a7ׄ5,T1pPcF#). .پ/S| +41a(Ҙ0֘AĂo0Df{0Lux*6)MrԦ-#\2YY $jug$C2NIeo&b4utwW]fy*mȕ6{%OT?kGeRwP˄)*LgC{oMSUPcOi-kH2I +ː^꫄T&RmKU6E:On,8n)X $Hjn0cp7@2GE.Sj/$3{55O@h3U&)ml5A`2U& U1-Uա7m\) !~LƾI(ɥmgtXIzLtLC1c!KACS\wʮS!?K1jFqY^p6f8*Jp1qVG(jdڈT|p`*U-w2FYT +/zA~[|aT(iޒx m7|YS*dK/mYթ~dMW*YGN"x|5,7=DqLF%х)}FzjtaRjJf: : +SQ5k TD!:Jh!E$ ׮*[GٴGgΠыj\חg >j&i !B3Ȉ 2мT +WPcGEхLKd@+#=*5)RI +p-=S)? ) p +ȎZY( e*=rMvqf<[^(e{ֈD``@f@N #Z&dn8}Qr+" +)|R|:~D 7 +V‘#~auђdz-hKST -:EWfWo>U,,Zm5ߌhҍ8l-3vO[p-ehEcro@&dh {ȩU!s"Nλh8cʪZλh 1R:<\fHv4;hFk=Ơ]5\HH%!ƈhh֒Ž.Z'Ϋv|P@yRu1Au 5ICqYްsᢥfTE+l /uR-4cF d 4Y+ZjEt(x3Z + ~wZU{@QQhsYx]MYz2Zv2Z֫gvvVcFˀn3KWM0c1vD[dA0?V6$FK &I+ϢcOKm g\LW\T*s,E tSa8ka h5*AAt?Eb.j3]vi  U}| VD V+m!$hJqJ,Z[0\Z/b+I ?cca8Z"C׫Cv:gtY`stzdBmsLd.ʷhe|?X*Euhz&$Ƅ̴h T- U5Z?ru)F 7{/^D%WX0lh1M`hE  fxgpCԝb9_h]8Ȳch2/^B# +( Wɱ-jm XG?Ғ%ȟyh}^jhYaF+y ϫT] ,.o`hYŨL-|>9Ekb +&?aD+XUXH!Z5!ec5,hYǛݟ` ZDߍnBy$/DkZ3~SX!Z1ݰfIN(oZ10OXORcg g4r僥'=Hu Y{I,0/E&vJRІ5h9VZmwBELD+Z,=[AGxYxlDkz?Si{N-KƚET|)`Ձ7S颱JcBuP#Z u^_Ck +ޡ;SZ[M) +%OCKkWJpUㅖʳNZh$ݪ?RY B f( -i[ 7JG lև `vI'}V.OB_IN -smaAJtBk"cm9?ZRIV ` 2Ȫ7UBh'^;Zw +?Df5B -xJsHc/ 8Z~ RF~BBXS1!-jz,'x-"_Yk% \G*DZB-.@ -le Y;kL9!CKhdHFyu|SZzsOkSjq 5XO+Ie{VJƽ?wcKb۔}W!/zR%0H%''E(FY[ŗR7{-U(R%NϞJH&dP+5 S*0k]t oy)p;Hha]k҄]fCh4BZ'Q%bBKŎPj0 pBKӵP JG_ -DTifhRS Rrzr=ЄLpB #-ƽ"6{p_g!,{w|kb<W%xt"Zx0o(ν`%;(Y;*h=)K}@ɓzq ɳ.O#{RCt*ˣŚ1Xy:4|:Y_ bZ3ͺ96~zyppXFEgD&kGO`Z~pp\>k"{y1p_N!TҷZ'xױϺ40i%R#gYѱpiעtS}Ma^>kVygw d +&gbԴs4kE%Sٞ /?j`{+Y Xuˎ/R#=,bڧM4><8߽h}Ɛ"k:}"fc|ѮM,-r_%mp( 4>}EmVh +fr#8BXpg߾p26z33aD7AI o=|>fv\]|N,蒄)A,[]8USg=ģL%3f1[~xKg 7](_եϒ e賔\l*%/=E%Bՠr9W\ge $Y+ +,곌2 h`>V +0볤E/ }b-Hz{> DOKXwS|DdD,gXK݈ +J:C4p#&N0u#!oR>'*6TcFN㓼Hw}DeH>k>,MG&:-rJRnʴK C5e?KlL* 4|آ +#i:_qzN6C$9 <"1|,\r6^{(x +uULGQVl¼GA0uPŽgDӄ5$ +2=H C-FƆ-\2%B,R77FcBټ.{ɬ +NCXL +H#EGZk8>&-M21URAB`B<Ó">UqźE,fla(!>۵]|'ovw|`_4B*"QѢj b3#D3nEaOeeAx >{g<9)"?n} ,Mx9Kw\+*T|3C? phV"%8;c@E vau9->!Ȥa_# 6IRJM +ч3Z3k׋!K'_8<;?\鳶rBos, :.f5#DW'lhS}Eg~)eA0ҙzQeHH0@of2,V#-LzHGh?yB8{E0*Q80BUv> {eeDRU7Y92;iЮt$yϧ;Cd ;JBD)"~PC %9*ۊOFSX *g``Qk'&,lc,)҉D X a|ҟۆWnET_ǟ9G؎yr8&Ø~Gаc|V!TaWeWK$c]O=}9'H~M|Bk)bfi5ʍ#0̃. ^ؿ>Jx{{CB`#d_d,/WXVc)fliLyoTRD RubU z4AJ)NX VCC.g Rk6Kuk* MA$蟸t<Zp#o`{oἿF7iΣO2cxS(ѣl"x,[:> Hb{Do $?2?HC4(AjLR.""YA1ndC(_5NIYK$Y}?<{C R|TE|" +2Zߋ3G?`)f( I^0 R.>B |<#( 'qٶm$_)D{BLQ Fdvq!haT';kP!(W+0I5+ +dA̤V|A7cՠ~V>9 qߜ9Cu/54 NC߰iKj:|Y0 Ct!DZiv;RNNŘ5(brX7 [h†,eX1}y iY :̵x%rM "5} ~{85Xhjÿ*ptQTA/vcA3k@5jPNL5<@Wb5o R=v^ѫӸ46UN#5@&ixSӳ4iN#h,4>HAMe(#slvZiAb_ WFH4ެ: ה/=Ʌ b7bIG/z@D>t?ވ] [ 8#Rf>pd0l;+ܓFr<ʵ84HAPuW n : E &ώ*#'4L@1aQ71ir9mπ6Vquv3d$>2 7n͵_HkG! 0`{jU4H=ׄ5B܉>,=ӭA: hJX.RXXAҘ*\"v̞>*cvLH]zhnAS#Z4vWltf:aݜvכTbKf Jt=q'&|%jH#OPpi@-Nꒌ uO Y+{yڷ}{${ xƄJ"SRiT]ys%1or,N'&hIGkROk:i`ԨÙ] i:xD ^g0OCCE E< ɜتlۇ}`X%M6&Ofҩ8E=I/zǣѡֺ54j0oeAuz(ȉkTi@J_a9\1O^OC(u ?TUjUkwX;<{RRZp܎TU+&Aq$1OK@ioKyuO6_JO'|&H4@ҵ%B4Rt|K-,9AQZeiPRBW%x0IJovmzQ'iypu(RU-8iA&\[ +cϦ$ʨFU.ܑu)MO +[fT(%ښ)t/~UB3E } xpOӠ:-VOi~՚iS<p+d%xh+߰o~,{oHd}؞9&c ΞsdN5>!1iSy^ +4{[n 9[*MAi/qA$ š;=-͊f(~"l)csuG @,O$ #>n#I!Wd,55&݃*阤Өp8ih +ČU<$0YUO㽒Z`uSTOߖ~D$S;4}MiX2Sj4@{~"gVd4#> .~FhFa./by( e +W"ǧ!y4MoI4x@)? 'nqiܿLeo9nF]-eȤHi hLQƧ!}ʛwq<tS2|_Ϊ2lNܲq<Ww4&,gi%7˧1%OKc-pLr)4"=} tŕ٧! uTEh) x(ux0Jܧ!̯߬91Rǃ=}nZqo8Y9+y+اw0oÙoܝʨ!ȱcϝ'˜JZvs S!ܫ&F'l بp_>N}ˆ|ٮ*@'́QH +VbϱfJpNZ"—)C"扇`P ψC40t.)T}H"~'xn$ROgn-|!i"l!߉:E&>ꩥ6qK1潒RygswsD@uOc3Mc> rlv]eF^kHqm?sK*N,ȈJH'nlCnY0w|AȄ B>Nq)E}V4Nͅ iy,ieHm.-uXLE~4lEh7Lb @{(H<`>1dhwLޛq0O1爥K>1'GN29i/i!`f!O<.uuD9) bĈ 8P*0A k2Oc)g>kBAci dto"]MU(YO#4*qX魟Uv~:g/ 3cϧ +mQ[4bHN|ގjGvTgtxhÝiD4:2idT_4$K4$%OǭL*q~Ȭ{G}E1ѹL҉m搑hQƤmPOã&8wiwmw7CW{̑94} 8'Kr%c,bII'4 H;s~= hLA;Htw:Udc̎uW^UF8%eqل_Sr "§6`O5;؏&^4,xPlA~p{(ĥv8CIuUHi@UC#К[F jv +Fvc8|b\iq9,Wě.-4:?E5i4(4l .w b@EEOmGIXZw+uiԣ9K[;GVh [\b)";)4GygL"O!G;?,i h4N2^ smӰFA.ur(vX+QV-=eTA?Z|6_čE>!ppN2DGF#J>~%kֿK"Tit$9|_r;q#@H*8iM{FaX<@(>ϰ CՉçʟ҃OKAנ9b&ξ v(i@8}1f&> {L4-Q=Mhvkǧ1 +&> z/aTLQ7I"~AOO#9%FOf Viz Sz!W9> ^:eG!ѧ7SԙQO#;3>o2uF>woL4VBPkF}Ɂ>cc \libI%] =2(y X^4D13RNiD4WX hdΔàA8YPO6+O3FPK duu73廋z%i0SLq!|a0@O߯JʔP D%9]~bt4zMiip VФ)DxZHeFr* ^.D@'*bjgyqqCi,`zLϫy^xdĮ<(y0i"D8UˋGL\wnc 5E3!eA3[ehDii[gp8}"Gu?QHMQO䚲 }+i\,&O:Ξ-tq :z1kcΧ]P2"@D!5ׄ5;^r|4$ܭV=j|xzQqF +"$5Ί -uc1epGu0hF(_o0|_W c$A q- u%ͤjmMǧV;^X(@ԱY@[5V|qIEy|mJ/'-)8Bp8ȨӸLfM5 iOV$F0S4ǧ1TW 0 xe ICfO5Ԝ/*85Ka5(5dN9pD3Bi\yAC aLb1D@IY&\" 1¯=(\wYӘgpU$-`|Z}i1cGLؿ͊jp}xi|U§upov7;b&ӌ|rç#:`ܪEpO>Sצ-g| EHViceڂ귡< #*{Gşzə)ObmXf^C!4F4:J^}DƊӀ*w7ZNʸQ4NJ2'&Aݶ@1ŷ̙Jp=DFp..itiƽg|= xK3Z4^fBOcPejCOçdl}dO#U5lëJei$ Ɇai4؁Ppi |hع6b!Ap +IrWN*LBt]Їa9AoNF<;|^t(:'Foo qo}=CrBaDPkcH3xiS49Yg< G&A r58t/ߍ2큍vsX~þ u+  b '"FPbn8uxTsm܋̈́@QA1* +:DJ4:Y:BzկDt?WVBv8rx\< gYv>uD8"O#&IR t:/}Sך!%7uӍ<@#G8PUH`TjIw[>yve8KiWu!,?xf8|7C:%%TF^>ڙ[ס< I4-{ң✳=p%0Hgle4 'fnGӺ#B,&< :Mw`pIy , 4e Ӧ!ct=N6T /y}&biL62%܄g=t>ݎ kiϫ; vCg(= StL~i4? +M@g##z|^g=FH F?q#Az^l(q xφE>.su4vCcd@i@G3ûVpUPmY\ETWpcܞsdT6+\h_O#Elذi{V.!fVX#4hB> zbCtzq5JlCE46#4a74Ҝ]8ɞFȹ᧔= .fq:5 ++W\Vz]19kDyP`Rh4@z D+(kOԌl%YEu46~b r1O  L鞆M!.h' /9قRifR梬(thm*,&"A-ԟa誠xӨxQ^CzOq+1R = ^8\ ๨c:nҘitPansLKCBx~BiO#s"Fɳ4(̠< ZK?IiBI1OfRnHzyH_v}Y~≮=S=4A +dO`UB4hC)( V_pa +i\J7],+xVf=MdBXEٟR=ۋ;=TG;9Ȟz҇$N g6CyĹf}~M+`s06 eO#LC i~l#a㪗wJOky/s 'NiU;z$ 3snHԏ{'~Ŗm'Sơy +(~4 XhnaaA>f?mo\OGo}falZ[,byeF * ]pV:pI|p&1 v1OF9h@V MIyz6;4ZX}4.ĚŌ}4Ȼ bM@ QnGh~.say ,`.y^˦jf_&b &lӰ?ՍXTo, ǶU>ƈ + "'t+v< =t瞧J8,~ +G) ( R +ϹǏ1{Lo<+o~gq,ti7_ĥ\pJ$\XqBug8cUJ%0u4Nр*fLi%#ѫZm  ̽p^ݜ8,OcAesQfJBVDF~9 BPiyڞ[i;S +wM؁"ܯ(h4`״u>^N+G:0`5?kWQ~; /i32@m;y{ETH-,]HT[*48hͷܤAߑm|xP6^y!<Xi6kc]4&0, % O× 3,pH*GrEHDj[4vUis'\5xߴMN׭WFwSNJi(DnV kYH"] h}`a( ]_3 (&P=㣤X1UY1tAfp٦@8[Τ@ȫPp4ګU< @uް-gxO#c.ilM2!pyOG4bv4[ҤM)SYA0"(%<:Γڜ,% 8hi3FE5Yd X 7-:7CK}2_diԛU4"-ht)Fn0RWi: "&_雁ГöZO OFOb5`2VWe%5zS}38ucN%OUJa`LONJ(u |bj@޾]}3}-9L4i:=*Acro=$ |뛁 xx}/it+40.+i;d"!W[jx^v U EV.o<&9Per)oijִfb֢q͠bӏ>NizfN?Q@whNF.~Jѵ~3m&)yd -6wm1rnC:i4@$o`9vh~3d0l2mlbwEjU`.i4DۑS`\f*ςO< \'_;ǫi[bVQ"Xp}?YhJPe&MWaWl0y1 WNVixPJN-JɇiQ#4S- Ac bAfAv H<3|>0:8IgX(- M cNu u)3Ch]ûs^PY r!Wb*CeixPdJy]L z Z X́JNCO)B ckP(:f d2 >ck--T)fgp!?Ri`ۉΤ]}4 _6 ĹwfXleb ܊ei {zp#4>kdU5EgPlVPĮVW*w`V1r 8U+f6aJAi [TѿvIwU K(< ESN^Y ӈDYD5EgapdA)T2I6LxDA&:@yǢu1F:jf hjbVNpv\ }8 +0 aN^2ne`W2p >Ӏk/ l Del^#VjD%JnNø RM {|n_4\K̙'c%M +8[Fei#NC8#b}wi.E t2uH4tQyrCR +FL IFwp0l$'oXhKv N+46ޘГGu^\%W5'u+ v.D4"u-PIq'4rE`& 40Hf4oƜ(!j2HX0딀'Z,q(&vEB`W +DLЌez}TAN#5͖(l4-6= piF^^X2҈ i@߀)5Wa26iT"NC/}iB۰ڝh8%j3je-JWUl8]L2u!T+4qm, 4Dןq/NJq/TSbŽ첿)k&'KDӸ)ȕHeV<4R(}54nK;qC m4d`ݼzEٜi.%{x1+ "c4C  O4ND4NRwQ~^`4r P: -Fp9 8_9gS2` [Q8 EfD{p!ݗf_X}]B] Zd; NcE$H]],@O~ii<~ iG4`yFnE(iKm)i*mYLXO(\-- !, Ng1Vn:=0knf8̍!k0i x BA=-# F)iT:Fiݤ9_o--aqEfXQ5WFZN,_3'"vZ^zpݻ٫m z[,C39*%ic-N(^0y3C.$&&h@ ?qwݴP0܀hpZ!_.bJCY8ѧejᏙJ :uHmx*}|33M"@)ҵ"1%ڿfeN~VN#VPȧiԒjj4VwB[BG>2SEv5)R QuאnRb؏ưI)4ru=%-a$.XѩӰTɂY|Vv*Nc~_(4?w p(^ Qu9 >0ޚL1Ij)q@C{%=k ^;Ix@Z管B4~%*AJx$_c>t 89c@i05םi( /횥c* yY %Aiq HH)2!#hm5Fw qe h*Ȝ+Y~lA1C#54İcx | hzld(l<e\ɨ6N +й Exl$cL#ƙodd$!dL1-GF02r'2T=d1iQ![ +2d32X CE1* =ƴyuH1 81Zǹ79{c0cc(;έlq28c$c\䨆1c0,~L?̶ l2vİcs*EJ1Hc'F/1f&1,ÓP/ĠW> <Y3Q&K%TL;+y\_,3`Kae.X 5/C/+f Begf=ٸ3?,6ԬרV8KNfLٸ$3G^݌qdXbr8rV,u ̋ ;#x|3t0ԯ:ngY3(r! hnmÝͲ1V|ő-ޡh`&a^hm83~\oLȣMAZ,%Z$ҚU'giҎ~1rgiO ^6; Vr9jWjKu+t0@L>;=E:͂eTx *b0̂  .?oF0=0h`(c-΀qt d(!K_Z~u;~aL5-նųLx-+Մ#Iaƣ/^ &E ,;^Uc PUc:"b~!Bb #`ыTԌ +ߪ%qE^8ċ]ӻMh݅*qTe-h3.2.P %Zg]ȓXN#ɗ}57 +]j+bT;\Q󕋢\Z"G[/UN򎋏2.R\҅ jŶU& ToqF]a0 s q)жQ W Į%t|:vdrf]V![xh;k|^kqrjQR-~bmOjB|pZ<@IyG -ΙhbЂ6$>5ŨX[Y'k Y3&i,*]Y{A12fMct-i@mS[xHZXkBֺm)Z,nH5_M[%ElmfaXf0'%N[;ռeIjkF\`Gmke.]^e)( K[#:ڃ5~Y;&dAP0X,?(H޿ ^E,EZ $6bQ$Xk5|+Dk6PZX_,x PAOUk6 ZSܰ8]ah֔њlAlFma?jsRS֜uk"fD#}\c`\cr{k=;,=<(.iyX@kb*]kڝcla\+ҵaQb ivYkb^#Pa!Gk1XpaN{_)bWLW{l8{&W'u"h6,ەfCf-atf9W蜭#KCqІW6 +mŃ^f+TZU֖Mƴk S+lm׬%hl8+kxYMV6ݱb!y)A)a*-WXAnU$[5Wa>s[U̩UG̀QSq} ymPhSL >FSXl+ OZp;܍~7SG)PQXPʦ8x M NLq9iÍa +a9G4Sv;}/i⾋zRAq((Iqm]ߒ$AbH1nq)`댕N':9H? +k|0zG2KQlV%)DF~璃TޢX79 P.7!Ir•S!e9rQ|>4 Ŝ%&sYRnR9̚ umj\O9:\bb!Q9RB>&sN:ISN~ʟSku t)R7tϠ3QCMQ$UWqAG,.tt@tiGEBɣSNtb`>ڟ5(>Z"B]t9l󄟺,Pui8:lB zʬKQcWB^SUJ$FEQ:x(2ح;o(4BAEb%:!CNAq$ +\w{| aހSN(VB&b3>1kJ̲kl%]5ַui0DUCQ#ϱ.Zeu66%ZGtId=Z'fP#:?Yw,Hܕg%u~4quW_um`_}aۜm._uZ]6Ç%]u I̳q:BYu^ Np:eOaH}yL:Y=";>0,">oeO /UUZˬ+SNOKRo5u-鉈f](xuU(D[鉼h]h`\G.Q ?惝\B6윪.?vGy9( +N@ڑܵ3)MNOvKŽJ6q's ܨz3ѝA^֝zVCN'Z1kaZ8zuwRHH`ꉨtzbٗxB'/wѺUS;`PY’'bD x&/I +xx4 pFvBڀGOWv< ̴@|E:ٲE!%'DOUĥ졡"̕SكGAІ" 'B:U6_=+JDrBnÆ`{p +6{|1DD۽|-}*\|fUAXٳxxS6,|+C\ߝb0w^R0!>$D~6i-!}B} D(a v"8@ÀH[ ZG~`_󜧺SY~+_aoerE mln~ +22| +"VD!G.,g +jOw(?jt(A_(1]1`ˇbQKsjg=0nP6ps/R,{=l/ `I|<$E;yچ_<1bl½uA# {pxmPm_V} {ke#66HjLQBY  *  +,02 CRaL (4h apLXg_,PlhoKAsaL6OllH^ߠd mb7؛T +а4Sz O540'c ~FoMEp\ ԯ0ՠ677ᓐU5X.8@oŖi_v  +H9 0` %҈߰, Q5s\ԠʯoIa MO!R Jo4|. 3ހ,gT˻ajPnzn bn=n50 6mm@76ֆOj`!5heܗaG ]$)\g"6elCl0s_5HkXw>k׀6l N 5hg 5K8. \̧AOUCP GG!%> Q 4XlAy4- ; {## y$@ 43(> z 3ě3h9ü3 .gͰu )P3@vP jSrj@2= @/t~a96j0 w 肱/@BFz3hmx<8A ">M` ])<,ABwnĎI3(}G/ u|!j [H~3 >"FAh 3H;<|!h@ L+`*#Xn4/ ƠB&P2{ڶT̠ BS/ @/h@3 O5 w!} &.L] va:%.|хߞ ` H.3@r3ҩFf|B\$qApeo [Pn--wyėA੫ x9-|¤!E @ h͂e,$ ͔¨3ʤdaf6 ^,M,V3@=S ΙM@,(`a_ nW̼䶑f$0l +~S +"e)~VPfe +ƒ*6*vkUKii +v*kUT/ +֛ +@K]BA1.,R{l le}܁&>ZI\J?L Ad*ҜS9V~,2strTh;.RJ)Sn4)N{P͇3-]jQf5 WM{n,q̋w֗٥dji?;+62ZEJޓyVv[TfIJ*<{TS.*=uGe՞Գ%m%)0OlgVyɎ%adGvg|03͈ij\2U}#߽d=wUt֬jPCzZNCe[:}m{QZU6̇`5T͜>z~9SJIyGI*Mɯi־-J<{6hmЖ3c&MU>xU[:>uռǢus:vޡszO"6g-3˺niY7j$KU=S-S>?=iZ˪j &!Sۊuc)SVzжVޡӭZ*: Y֍lclj3TnRTv\,{e]cU[R0c -G lXΉa9*t BЀ&)߷enf2i9YϜ眕o&twgCdh΅,Tc|1)$9kϺq/YKoU_7/Mdvn|/J4o鶣<ɟy}!usI{tuSsvXtfdgetldw&ߚLVs]~?ӽ£;=XJx{t+ϔwf%CuNR-ʬ 52Ȉwƴ$qqKyIBqmmK&[ՌgICnN˫sL]eE<'[<`z쾊N]gtYRJEyT:tif*bbYե~LϽҿu5KXGV OV}ݕ 3 /IY,ݪ,ҤRCx;i\I:WwNUvdȮӟ +endstream endobj 17 0 obj <>stream +&!GDzi-I]jN}ZrPH⩢&*mEnV~EIzxE[kf^ξGG/>կ"b [zek:{tJznv,O7tjq~nܩ]]9WO} +WizWrm祅Ju^ss^kzKz'(A?@! ;Xxh`U2vdAq8~ +nB<`a+<\q_( +L(BC"HdPaI8(HdBg8(H#ɓ@#O1' DH@|C "VtC(ЃA ,0!DGP'+_ 0B[!8|Q L '% @ DyOaDv;r@\qHX8 !K4`OrIɏD1D(D1 = J8A(@'dx$MhXEQq'7$F#`/JX!'>V`!J8Ia#EEN-բrxذ  FA +6,ܘc":8 E@@ + +:Ɂu| jfZ~3'0`)L:=Ӕ߻flzj^ETQ17,v,y3-f `Wʛ͎~+vYɴTUXN! Es:Ij[`)KJQ\'G +&)2c% ae4 EFj":Ġ u?LɇW3/LX_&gh,2 h#+Wt=~-cuN6_ϰlJNJ9c2Qou]xAAu,`8D0OKD*B +]C  !C\pgWh`ͽ'˻f'~WvSt!so ._(6*RрdL(@M%<&yDeIȢ^'ǠJ +FU[N{l=jG(q 2a閅VЁkhH4l {r9N+ z>/*VD +R42ȳ̉}5o;̥A<&Y[X v5#V)jEݠ>DwqzPt$Cu%MWߛȼNsy 3F}`!!X!IB { vQ3!X_g@X BFr i),=+kk_؁(\Y( F[7a2RS(_K8 +L(;baҍC+|W +Eb,TuSC|0xaK^u=FE֥1Le>"ڝտvIwHaْ3EmMjesqr;e*vX2 aq _|G'nx@%UNsðw$O`SbVU{(tRU.!n 5[[]ȸ}pX5=浻pe5G_3:{#9ssA'Ӫҷ-Vo8SnaK1A_?$K$H5Z!rmvS;^PیE,Ee*:p4,{jPdž!&!#|TQINv?װL}voHFbc^Ix4gicXѱ_cC;9Ij#LrI?{(.Kzed{'e9ARqq\rSZC@x#D$>YGv!M*aV. ְx8$(|- xnse.bV'@69[ĉRzAKhOwL' +Ee/-eMq]ʀ]׍R@_&}@Tz&a0}Y:I 顶o\YLmdo0#(gj4㮔QJ3$$kqn͌6%<s4cA@@y1C1638 +k!{@:'^,ڤ8*=4o#˷+ԡ_AHV|Q ΈȯmUF},f<,PA,L"7ἕ)q= +XRE7Dҝ3SAVi\㺐FS+t,L($MIy/ #:Ɨ, shVS1${#:<|OEN't$`dӰF|C$ nCP9DP=5I%hU?f E% l]UqB1n%unw؏Q?(ɊOxӘ 7hX+%8>gJ8fhӃ%X( 9t@8b&RF{ʯdlђR;)mb4 oz'')KUu\_|2Qъ|$^6E(>b v7͔1wɾzGgp;PϾ!Bts&>꯳QALG] <0qÕ n0@% Q]z +h$kye1eO h)\ '#JCUVl_}{t ؑk`)~HBv[ ={a&.c# +q L5N_U)A r*ysϩ+X1Tc x~d4"ϔ\,ں !`@eC$hua, /ȭd*L`/CPuy)Y,R~l@?~mo/& 'I%Rsk +GL p晛LW]8ޗ|9MwQNL +?H u<"7a`TQ)=l|Vhm\וvAQmu>g(~aS>N\\cx \e&ĵubp4=^ tK;f4$1c J  |%.{†Ҧ}v/d i^ +Nb@hUWVh'Q1ݢؗU \%.zٴpXT*'8jV9w/`z Tyz3$]paB@lZ+cfe/=|r@?IMUĿ=uY-Ӗ`[ʡN53dMci*wk5D*htC0^0`{9giCO-KNfl>>ʐV7^@hF\ĜQ6 KY*! biQ]ϊ)!Au]0Om4 +aݝMW63Uu%uyja-CN.SU]Fk6\C01JrxIy|h!qEJEfrv:[-csrrPԨwNxdh}ݶoOrO:fi?ۑw!.1cpͼ7&hhE-}MYXbWǸ½NX/Eq'ǽz;6a'=&91 +4(x΂F7 =뤐&a{ +AjoQnr Ŀw\$;@D&L;!b Htћ%Owe->Vf"}d=b8vT9\Vў/{~S(]3,ݕ tr+5tr"nڌ*/4:&9deOM"͍Y7Rʽjw4bZʭ63jlI|6mCr#+$ +z{zr-bim)g Q!~\ +v!Ѫ!]T +^X??њH؇@],r۝ei:jՁ,%fj\bM'NvoU[efx=Rxo;0ٕ +#BH/NbCXTٵw|Q4j; ޮ@4je*eK4ԔoƽFYZqԍ\+&d[2Sjtvk9%3O1||Ezs钳X6Ρni#kW]EisQ`U{6P\O}Ij5gՂG ,vΒəz`iY`$i2,qkWݗ0IٕBmPDT)[t/co>̝v!nZ3O?3)V}CqfU􌝕ƀg y-`s]լiˋ9dϳQadrpd@a{$3&'c*#s-0BO_oL#K~QD7qZd9B`U䑘 )IqBY2%P G +f́V;g'kGӳTQ<3f3^1hj>UsIk.Оikdݴ҃Т]U?N $nkĘ1-MjKߖAp21 2fX7`i婒I[/.=X)ѠRF + Դ4xDA=ǭNʭI7Y!B* {Bc d3uu2i\̡.߰Ɗ0@Cl<ʜkΏkѸ7:f L0Z%lׯ YY քTmlAx"j#6a`@s3Q\BUx6g =4+Sc~c 8h&^̃V41K~ 5X=uio?Cs * 7+R"QpyWyfP/ԽlQ@ݒbȽurԶ/]jB,s{<ָh 8xBOOV$lؤsE5,U$Vg u)-4Y .w Cx i:dfyy~n}DһI)nM&uTH,YU'Y1r'%]&2GRq=Qɷ"mQ#3^!\+fQtbkKv<,9{x|-`UtNzH,RfDڰKB/Ei?}t$B-ᚅn:9sNaԄqibFVJ%"taP ⒡- oC0jX +G5&vG,}}J;@.*`ףpT㢹ǭP ӇMnXsmf(WN>찪iiU%/_V.7vne9e#ء` t}?~8+vIsXsX_.\#oAVfw&}­5װ*'wCzH C;~A lWC<ZlĊ{'Sc[Ȑ^4ۨ31#3L/ٗ8H@8E|fZ w8ھDʗ%u9WN*ӫ$͞]K+5F;j[DqcbKs.Gs}Lj*P c?p<_@e ːD]vkQHIn¸oFv1ܵo颺gw VD>:Rrc-X!:pϿC3R'!0Rg٧'νoV00pNa?u?Z{e+\őSҳD>8 Ͱ|~(SxDRQhJD1e0V`di%Z@`lC_&Ö-C~ Lt79 9*Wkُz1T +2qᶬiFw +drr ϐܒx6(R0Y4 }Cj TbfM:RĔbo R~Jfgih4RdY0?4<*Jvp8+I$g$-%I\VKK0?%?ٵfOŦnws8'暏;o'`[ɴ@&tmVT +杶{Z[bHe0[]Xs|Q"Ne!"&G8eݓ<ԚYkt/ZTzצ>u{Z_22RahL<'vGem̋r%hJ䣟Z{oCđL$d.G~Ub% zc. 4:"(J˾o^K㶦9Qx~MqIH\"c0DQ5WY"2v~nb3Uk2Iu|D9/ ¶8#<)rij,Y4vhp& GJi0ͺBft-<'X[D!lc6kr?JK1g4*ߍVL)^WQ*l'Ɨtƶ|/U^E,_+ gL*PQ(%OD 8/3,I,L%T}Zfbݴc۬r{$<ׅPĨޝ@HR6hU=FKiiߚ #e) y%`Q`4%N=^s5Ago% _3?+k*6U-#w3f}?n zm@<WoIEXu|Vvn+~Tc a$UfVS4/t[mQ1)?FKV倐z7wfU!ikH.VءݡHуNz\ $Kd_FfS7~c*lzM\c",Z>1HC*Ko-g\,! hBtBo~@fD3. +$Megh(7`5X[߉&R%RX` cҐJgTOM}N! +Թa,ՐŋU6Tl]~CDn+gM~gL0 csTV׼)&rUa,nL$GGtw9gV½~ld o7<7.+!QR>#Co_y#*3M}muSݫpJsتcȯ׈887=Dx=7'5"ݱʝBǜ!ʸh|&XI邠h_y#f+l`UH5n{"/{S51 +`Q^ѻjń/HT [%mCėWZDѨnW:@u/jZyĤԫ g\rFvX=-:X$\Qg Gd)Jm>fX Z 3߫Xb7Y1gue9HAF=̌]\ٞ {=՟=tTU#FME `+TsOt5/.}D4-1 9q(=̀(/, +\xՏL5` WPa;k uytؿK a +hQj~\E?ܠ?S _j})H՝c8(>6BZTONn"3bC+J 3`D{7&'Kw? R3U6{1+Y:vڒp} [OĊ69-A7X4`bL-ɘ!OzXjV|bS(;S΢S1.pKv]9%P<(h+F^% @ˆ~wuNküi.lMpu-<`nsʨjƾ֟sI +BBE6`]@ ٠esfKSPs!6PIEbt pWG`@:kǚٵ|r 0:D#KWٳz >~hh;,ʟ~ c* ~`Iw3aI Y{vW1NDIKt#yq*Īqim'2qpAe{x.Řڜ;5)TBu3:@cD5FK~Ӿ8SwnꮆR;]?)_,N(-wb͓QEirˌp,_Jd3q/ 4%#[gR"Bu݇? NSBUCZs[څ{pe0VY~P?#I'QZnwH^NEgA< 1&T;Uۑ c/۪ 0ljQ7&l9V @FYV/ d>L$M ωcy?tBg&U]9sc\r"ϴ [44DvR%H)J?Yk:)2-aG:IPL3+sxO|V"@ dÓr]Ի^SFZ;DنnfG߬9Q5-VEX[B{!rtHӟQfcFc9EƱ%;`%BU sT|}L *1Cy8FL*2E 92#` dI)j`EfPů3 2tD C?7!2-jX3Yre#>CF5h@ȶ]l.%d76!;H9#^oC&GC&\u<蘰DEqR/mQc\AV?&y2Ip&9&|QCca 1&dd=ab?fDEOrccjOfT dãbLO261@6hf 3ذ2mhzKm! FC6" ,DpJ!"XAuQ#;C6]Qbs+2 Rr01"ˡ6M"ԠX%\dF̦D|̩Id PHI|%RcE."!5ށm3dBȼdDԀuQ$κazFdf LT162W J2d=\5x [Pd2hiT9@\`,Z6ݲ3|! m`f'fFjP1 )ΌР.|jkӡD̮4oD͜7+b1$\3<4Chrɩ;3Wr=+|6~gRzsԐgFj(@Kj &5Xΐ\hvC$:J4:m}2qG$!- ]4I4J36ZZlLjPeihw9M4i<jTYN䝣V ԲƩVfRZζjI Ռ QjʇOPxv5UjƓ 6sd41I k2]Rcwfͯh8nLjt#2kZIDk$(TG%5=Ӌj͈WkbHɬDi%5^f&dC\_DjZI:Hd=kQ$ðv9_ =s5BS 9W(u׶"yv51j^UHNY_ zrraM?RcEj=[-!*OK jX{&GMWӮj'أjˁ竑WB~rR&W#.fjXfio3(˺iK5Rثםa ]88IR Wjo6l\1kxCkS51qJj5LRR`Hi5Yֶĸ*e%5j0;$5n qMRk"ow7뚖pkS? ̵?AյzlB!k=)*kVyaGRcV4RT/XHEj +98Ȼymsk׆g^Nw% JN0I AFjx1W6>*յH6ZR +5Ҫkkn8epk >j`5xs !ĵl=4v<߹&u!FNwT`.^ۖ5@}5eш5%׌F @<kUalVO^wG | Ua hdQG `11-sT B6t԰b%f𨑄l,8ؿʶx9;j8˳m*K1CBNIތܓ侏^99AOQή܆c@!5DXn5" X_R0wsnj. +=Cj(9C]ٜCsܥ9s=;$]3{Hr;ccsA;эmS*.ޢu ѵ%F]8QcGI!Y7Ym6H +vdv\뾐8ju׽: .9ju_752m_ QF<uAupԠs2]۟F֭._5k#Zƾl}lQc{;s#ֱШn̔´KSp('K4jO|:ܖDH.Q5n֨AWVtgb~5j<@b=UÔ2M4 ߥ5^b_:j<uuAj\:6Φ^2 +aS"Gݩ a&Z B}]ٛBh9i7ԎvvvVn{Ԑ~;Ow@qǃA0Nݥ4!k6jԙҨ&5̻5>%(t/N3w2jR5S|N> 䨑Q8JQݩ4Ґ]+^Ẹh1Fr. OحA\ H,{0<)fWL1j'%J`/;;zJ \54sll&>@LE`r5ELÕ[XR.jX<}=,i5|23{fbV֨qP4߫Ȁm1){F 53gfSyg4j9m,=4= 2lrQ@#)c()}PV5deYd^RDB,{q2 `9#j@W>={h䳧٣5dR`{qKa8P# 5]1=${=PZ^=o[{jPһ5NB?&jȡ@"[foPߞ̿3P}dւo 5qyoO0 5q ^0J 5Izw>u{9gkAI^|3@1tP8L._Q@OHVRW1rf- 5HoA71cKDlͷQpoicՓ lxOeQ~rQ+bQ|FY B,j+?(??-V6zX(ǩ!`?\)jJżRi؏Tq]f /}j`f6c~|Y~5$ +8S?1c5R!Zd~mbFkۯgqvU z]d1D[iy) !i_Q#&8bGFA;0^:.'Z^8;ʰa+o1E Np{ +8᷀{ow6rH*jU9ѽ'oMW/\ۢC领 )9gQCG^!r쁳/j*1(FbEYFPHDYLX 6'Q`UV`Ӣ.舾 \QA + 6EMhU!REnA ~/X!p6x]tLx+07HRiT0۴s4@ʻh甊NPzA+%|R4 Ƥ> +и4^wƮo\/7HnP]Ӌu=vшOn$KitL7xHcy I6bs*c۠3&;If/%[dK< O#pCH 6AEKO'nAEU秡4|qaţ2ig~JAz O-Z6x$lOK Ә Qy֠j 䧁0]$] ~jPOE}_ۧu~\jСڟ@RS-rҧtUs"8{}%!a9{iVOՠ ֒ ȞjHjyG)jݺZcY{5ձA:i6^ #> >;'0F|m@_[=&%v1P5MӸK3>> >bmqřfc<*IX8 +N :lp 3HZ O| RAاae ztMgv8|O9p5jlu]}OC> l%g}3(P QO˟Ock=4QkKܧTe ."tJOQ;M'kSAh}e ?L4{ *Z>EZD{!} iH ⣮OCs43§ x-$>OCwth}tىiPѷ~A0;xъi_7}d4;=}^ѭ|*? {^(Z 2g= zvw!В͐gP0xiԒ +/(˟4vEO#Wڵp< vS1< w?3l!Yhp37 n4ϠxAF;3}W>_Og= `+iHyҘN4F3O3H3~iBΠvz+v ua_=%4J< .Cu!D>xyxLXpYP xi^aҟA?M|mOCv# "ifAo5ﳧq th-+m8vʦFA&,卖^tՠb#W55Ay$OX< Ӏ?ͪ٣(P;Sv)7 R& AW > 5 5` wqQ%W\Q;zԠAt˹s`qÍ򻄸kRb1~vit*4lW.|BxilBGqill{GzZF28ǖSBL3\5"5zi/03$4h4mgjVeӠƇ v`aA;4PS iܡ~ġȦH'8BM[naHdK+SZ!*v)52~ ]!4xEݫj4J-0Z.6nERdu_cY6X?X1 +B=5OdB\uM3KYqr?Cy_6?k?l[JS)~  [5RZ{Sޭh7ۗ.чHV%0bsEtȊ7''z"wznٿ +6+2B;bePwy-ޢ!)z !$Q]Ay{jSnqE%-2yGuZ?vKQ-YsԊ:kE`%**؏f%8R@ )H8!&%aeQ2U}1?ae.6z`C 4[M $X;HSiS3<Tؘ` ()%FE^'U|̈*l]f%@zN 17|8엻 .Ƿy` )D}EfK^DP4.YJ[4>TbPah&  {G{ͷ%AH8e.Beebi'V׎tL)=q:ʫwH31g$> +:MMczi=q;3q;~Mјs8 Yr4}vĄ[K~MclR:cRENa,9Qp_Brj&^NurJ{ˬ=}Gy#ڎ< 'y_}ofQe}\ahB(JrH+=`ä̎ȏX 0/{qR1zQȷ|J5s9[ +hɿOqoQO! fRr +=>R( +^=q} Mi_Q p<QbDRT B;6=L gXdRbZQZqq *BEidɦlOYPf34Њ|Jȗ:ӯ 3w{UCH2( YfDvh,]PPY"=5P8Q -l7ZY: U w/G # KA`ҡsC#>٘a,e K،YX_҈ԻQђ티OގOA3rRkq_՘ĂODD(OI81G]dCb&PKehE];L\߂̏Aˏ_!h|NXw(t(T'O?@{nK;9ϻ%yk﫷bbz+뭘b>{?g[lu #-J'(/)6t6c"k-*1ȩfKs[zS+%^DL|_E7,ur 'H7,{|8i! A J +`%$ /G.ϒs>ᅍA$l@a޼#55!.s̓Xu=yw0݈zn'<8M;mڡ"2'q"7hA o>AHlr +r`r1!JEChJXxDgP16|TR +-2ceFSb\CG%:sz_ᄘ05_*7lƏRnh9>/3 d9qtSlG[-}sjgfֆUE~P4H (%"oH-BpʱЂQ ؼ+>BFsT.>fs:Z !EF[̷jOc{D3t3~-/Y?Zth ""M:ݻ!-0KNS0׀)a@%hT,cKG(*U?M^Bkj|:k 4%dΓH0'y{cۇSFO?W +@r/82:vҹ=o|5\Qo݀OǤfPӃYS#ا`^1, R<~L4Y=My~j7ܭnËT PBK2jq~(u%(DV?HVDM*"d%#"~Cw.}mǟfw8r9g~ᅥ6.29GyzjV+kl{ٗc,ph= n89C 2kj?+dn^;FSM)t!kOmh4?CRCH#X>WkW׬2b{V+)b~Zk&|p2d6[4$XʇX7+ݫj:e>뷔 (75trx #['0JHdqFv#Z<6vqCk,-qF(0➢&dCK*4߳Dw[J[mr|:qr?W8Y_s-N¸Z-/pR'| WpPishOnIџs7x> +'uY6e ѩzb1'ېDjZ;<aqw yZ\'q )}P$|~M5q{Z{'sd##DJR>+ BXBbq\Y +a^B*py-wc88pB:*)l=̊Q Tb239/'1~Nj5߄u AC͍@6@"BsDZB_/O>B AH`DK,~K``aUUl6ȪB;8aApd +35!С H(3&`'Fqvëd ,)33ӭl\!ekn4nYUG)0lrNS14sĠkjæ5;/vYmxAF%qT@XE}b-ݎQvS; W5"h.Pqof[J{8edS9;Wq"QO.{}Qm:#o1՛p_O{o-BQ5WG_fv:ͫ +"z|yWmjȾdWv?2PUmQXje EQ׌u PF1aӖz~F!`nZӋ87[\qgyC =^fE|s%5|ȬDv3uqwYv#m'|̀ZB+9쫶oƳdbtQaF5[`s?Bӡ!"n$ $ks+A.:Ag #D\)ɴ,6:_(AQQ`$diئ5)]mjg{ݎe(A/k;FwrJ Rbf5&1SE6u0?A SD5l8zhlǨ +׼Jdr f=FqYs)Sըq~ȡ7Weq񙳫c\r">[f<Gc!zήyt&-)ssK6!bz]e&Y2\dnnlߴD [l`:}=ױbG81/cj6SfAg SkDnz()KZ?Ij,G_Ԡ""! DKIܣܟ!4]Ύ̄x̌S5wou_19|^OF5p~ &' e!E -裨Cz49 ($7xPw^bAL Rt *.9& Be2O݀K۸>G]'bj s0;p ڐqf T@MY<5v$eSO#DRr邚9;@}erP0a.!僤A5tASZsWu=wc< uv=40lPAXqtߣ]I!<)^-e@Ĝ \c{k;.yeCJYO_1ݒQ\̐IM[ѴTcol'ۼ +w4biE&vuo30׸c!bj8ޜYxILmQu]Wؼ +oFh fuj13ͫoL|̀BNmq$Fth 0QhkU6y" 6kI) ͸ts%6kT􄵌jI 'ni ;ǎ%*vJi#):2B- %h BIX6Oνw3'-[-1O 9GR5BBBJGWP)ھ͖r(`3r:7!r-7zx0sd'1!_"**>=ObC0%Ј-jR;ȻԈ#^BL3+qjְp"PŸ_. & (%-4a^u\7z@2? bv(a~z}hhiF blYxŃgjRl) +9c^ʁd $ZLU4$ +\dONCN0Q919t@srg~#ȈBGyN?JVAHĂ0_|uC`0=DPbAWk,jyD, *Ys~P9 %t\w3IA0rv$XA%U~Zy73jZnu~:tMQ둷ʨ.^FO ςlFSmc!};74πRZ 0XgjC+ԠRy0G q +׾̈{iEڬbm=V;㚇3wyجd]UEFY+Rl^è +"+>K`B:bcg'x]iqb#[JaȆ˥i'Lλ i 6C}UkTY_W-zH5H bL\}}ogW04 GP :b_j, +6ct(6oޢ +sfOkV10N82q-f drq YlKF^CE5&0a!'ik)5UߓE$VFuʌ c  %!D|֬b߆ ^?J1kjnBG$ޢ}qA i!z"b&(E-PBci".x ?l0 f+&0"<f.DM)]T>\̏ xym)$ȔpClHL9#r°?,+`aA +XILȈ%nLN"ko|::dtGQKйǶ%VURzm~*1N(1"~̨̊{wANSffبi#6Z'!ӾJYnhbn"xٴbkҺ..j:"\ q/a!+s5?OZӵ&up4WC~K)/OSJC9'xGq#TEk<:CٌL88ۧ-AEЙ#|xE^v24ʛٲeT 0vO+ČP\$qVKCc(ڢMS\7?Belp l\47;ʳCNYf%W+?w:z2N; _ft!/xɦ:)AH2[ ZAK!j|F\,bxޅSots +|.2"5uqQ +:qQ `P^-/ӆ&%VEeWfEC4Y(5ؖn`So6ї[WfPҩ&*Vq@BFE~/Ye^e_7<"o;kiEG/R@H"ZDK+1nx0ͼBΚB + !Ki bV3q|lV*1%lnYzOWO]R;bZ+5q؛G Djشِ +QSΦpWw4[Ny7Qz?쿅ѝr!5p6;N}2P 'p=zK͋~FE=\OQJY-wP.҅>R\wB4gy{(!64t"{Xk܌;t~ CbYrwy)wU^6)}lԻ%+VQdDh̽y]^on>=έoqUJMjJZQn\ L q/ŽcU)2M^0CJ HR@#Wm9uRَR]_ 9Fњf6C]omҚlT)f+BUɻ)jIfF/1zoTmY0qFʾ1?JfVb|}m-&Z(3>̗K0>@P"LO%89BPL ŵ/>AZJJQK8tI@ch˗ Ã6| %h郙a"ݴ =7@P~IQ5AG%VƧj=͎![ݯ̈OZ[Ƕ"iNn9emvOb%l=N쐿->5]lY6INyv~h 9KTz*-)w[Xz GG%2!$ *KZkmQS /3SLrzZo=wC*vJi8ɨ : +^!ML")y``) f?S\)#bY|nGk<*2 TF5(Vag\/vOc`gxk78IKaoqE:S*X?yyhR?h%6Gو-X脁sݜ.Gq|L)+&轗;8_eV?yQN.sYB\]u4%&Y@ I廝f(0+7+/:*0&@Л~0']n8 + + VDMKi MMvrh4*T{bi_WUPq)D%L0 +!&T1r;Q{X9 q*hF5kOc̳"^;ͦc-Wjd%CO3dKN. ')XK4[ω8K) P.^0|!R%Ug\促+!)fj!3FČ<_S+xh^2ڢ|BBgi1o5ûy_ѳ̯\B}VиVlh\T!bk)̽a9E ҡD&|sV39GWVcܗh1q '~Zr +k\wtPNyx8b@ɺze&Z/AȷЙq .wMV8L~rC1vj}*1aL1 N\$1`cki1cpoلx1LWp "f !~ S 2N]cH?x@`8aO)zC} +y[G_+r-`rMǻᮢ'&$,&I"#vr43Fkܙ?E6o@s~X# UIf*gL cXX25OT!LX'j,eܷ2\`45nԄ^jg*ĴB >YjCN N&LM1Ȅc/ hOsʑDA =ĴH+jH8.W0pS;-bRa +j<͇S$ܾݷ`nC3򫛜SѧN8Tй '( +ОAf}Y{5Yz{TS3@lx,c6^w]qC',:xYeGtlj5A`XF +o=LZ?)AgAk: 5EDء}GpD%d`c_ +q;w;ٯ| +d#K",*5L@3ĄAj{Z"#2 \VZJ0YoXc>!vB)ItQt %Ѵ!5:+3 (vİs1y+BO6өq-{ݲiD BaK,OC81 +33#\CNYqB72#'NNjB):ai0_ECT/G3WV +A~rls)ٖRn!;>ce؜j.s n6cGة}VI/#+ni/p5o8I ȼa6l~hQL>q_Y}9쥥6+W9v(`2 z^XPf@)h ΨuEFG;08CJ0`% &`DJ)2vo;)rPefgjT;KQqHˬĄ,P_ D.l<1ѩtz: +Of>U,)H^J".fwW{]wCEJ8O!VE%:knQ +Z2b!ۘC10o|ʋcd6-h*kof<;W'!̌Wb4ڒ +2wyxhRW )":3$/ZC^dǬCg +}5(1?7m/g[jC-*YH^E5&\' +tU;/ao^-];-wvv!o""V:8v(l\gg+x)M Ƈ[ r:.FPsM5[8WoDvHZ{ùyXS +Y)elByR@R=LZ@uȱ;̥=%f>L U--mH.z>M+[qڡh*%a4 >Ob'aZHA%=E`>hDzδ?3O|NUYS+,pq/ {ůHo`ERA2~2!\BOгBj @N!?2^db(̭7eE[/Pe&\rɺQbFE&5Qھ] F4(rz~LOzsCEYҜSp|Wɿ\{QN闀aK u +:R#CR^B]EFkh""0"gMb#bػ$&Id?|dDBt(Z.-QU |nB' l hϮnaYFA 嬖O̝;$#964gG0p?Og-nsrHzV{GwK99a9bj}fGcR +'闰s2tOQ0oQ8/W:~5I$$ F37)U_Oӝ=% YH45lje.bWNCs5"`IQ ?djÜOHa{u[b4/cS:60th Z*Bdjh?#J+%3nN@h eo-uqsc#Bbs$8uZUKJ_W{jso%lcGnRH@1qctLT iD<#Z? +ȌJe̷7cÛ'xut1w\"rNN)]_4}-uv{(wq¸⺷Y޿ #v8tgwKsvTelY!-MEg%.ݟQ[ȯڐ}w[.ォOt> 8JEYrH ͸fh5|ڬ4&k]coZ39!4E{887?sa?i[FQQ9>>(?t |: (WQ,Uw D&-ڇ3̏h*nBU ͎b5ւGJҺ_SE; 1Zx!02K/R+zf?~M`teRp:Ws8hx"wߕƮ':?uW!OhƷGl;dn173mHمJ]Y\vZf+$JR?~.KbE\/s]Yg^A;㈌/yVy=G9[}o Q0?,3T&W0?$c$nELY]!&n2v_皦7Dx\]뛡/rHlp!nfH P75ٲ@ݷg }}WW"dWW1`"/ZTJ4\wj~MxhVb1+OCSkvW*MqLMy tԱ_m/ƒ,:$W[=y(pAmz_UP^ump`dMlY`ntD%2&&5 ,1WT.s]}lJ968aKAn[$%^\ }mA%S[o9_4Ta k~[P*qo(KςQ +0 l`8\jMUN$+&X\! +( ,e,?ԝLati9o,a3e%6X4<ܴ ;X3l[%hS04ǠWm1e7q3%`魧ZAOc'Ҳ:ҋÒn:7t3 +'&A' f,3(ղQǒ(4 ɖ64|Y8 0+2. Ig:q6)f BNldf +|6$RknPs6L0Dd b4(6Kq3\5 &wڠ,DYf8Z90jfoVnZnjS$PȂLbucf}AUrhÑ"HkN5W03pYZ " aCU(YghѦ$Mdxh ƨxMw;s( X0|؈VCzP# BʎN-mҚjs tx3B^|+qcUPVt9Vrg mga8~xL.Y`6)ٟxɒ2[wǪ8glQD*݂ ٥GGB k@xj훟mju0Sp7fu !2~Dyv0,E޸ p1YAABVJ"uFᷟ{yJ8y < +Ds,',ji*Z@څ9$ER+*EhX^{~(v4};@'Zezd6^3C +bO|/1%̰k^RIe*IFv)(Qe(.]L +5=dro`-)k؜M+NX$Sy;EW(9]A2B) g (mh*b芎VAMn03mFB='5! H-Q +)9Nmt(|8e0V5V\WKhz u1=\s"s>l䎁Ji IQH 7Q-ia(D)/y~k816F&,Q18ai`t^H 0X/N njtز1]!TTo?޴+bu B(: /@fV-XTraeBJh`>f<5oMmqe7GA|iw il~נ“ɖ[b|Tn;]vU-ȳ]#Y'laZwv(UQ>@[v)DIdGz+Eȓ|W+U~g.7^sdZƇ<JGy"g e{?}r(~ѥ0rz=Yo4;T3r2Wi=(@v*d%!HJ$s;jor݈S(ll.To~kr:\w9\th -ߋJg~kNBLAQ_z?HzX +5'ª$|.I1i͟-'D@3Jn]#̬9QI%=]zjĖԊ[w-ZB(+h h$[f;6M_-=d'kK7WzYw25F-wFsK`H }9hHv6_`ix(܇@R Y6v́[I>sU6 aa~ d:u;dr u>ӜGY+2CW .DE8`W45c$P23݃EZx%? #ZLTz -:68ZAI24*8e'ͲH̏ep )P\QE8{i=!1~¬ђ.\y|ldtPr3-Zu5s`%V\)FdX#FWawl/\n*YOSFє\Vq+̓",p ,Z3[ws0FL脾w \}?UuZSy &RPN%97T"/V4՜њ'U?(ם| $&27*SJ<*jtz2 W]t/Ү8!~ICsvHj.di5{F\}Cv!q|Bk(IM_Uۓ@*fS_s +#* +#"*14L: k`~Uo>4; skN(:BQۄ ^ ٔfg>b)8`9pjT]42 +0eG4FCaq:$ëGA#CIM%%N1<2 ηPgCIqkb7M9X'f` ^ 0 aŽDӂ5X5EzשImE tNLjx#-< :ڠuVLWbhMͷ}O$v7Rqn$Dh㓚0!H) +u߂!ư?z<\{4W Pݏ*  ,Bp01;!4 9Oϒ{xm*~M[p4|bd}!EVn-/='Hjx6|6I`zp>v폹1XF I^$dz +ŇC\Z{`6b%=p~tI~T]8PCE_bAH t,Njli Vf|  sǤfbeFjaKM]Q{ eg⵬@F)M|LfUpȯ9F̏.kgH8\eu +=6:Jp DTp>QeU(#хAFLV'@v@J3X1XJ] pdY߆oZ(::D &/Vt ^T )gD㗞^' 3DzFX) U@M^EU1KeY!iզ ܰ[£њ@Ԓ!_~?] Ѹ]1DՖAuG*}8w\wx@ڶ=!:Uw +rl:d~,V3Pizw-d%/BZGd=ddz4fQK`Za1 WiloHn p +ؔVZNWq?}asQ_t'} awڮ3MOfGHo;=B$VZK G6oz3$pR.epg5v]5+ckNȋ΅YىIf0^磻Hlx cY_'\5o^ ]ʮIog{p5Wgnp^&, \.0{dNpX+O{EQ 5/[ q+"QRt#6B/;lǯ;9PGIRQx * ,/$'9i"˭ ÉE~Tt( Lm..p\gHjvޥvG;5|NٮQ_CH?fMҘSPHOI(˴,&(fa*vKn{i$;a,t}Rq% =Jm F(%&-7GI/C]V^L]i?e9PdXTv [y lYlYC+9>-rX+Ի 0'$XHPj,G*AiՖEJ6Z1? fΗlፔ̃:^^Ea)V+pZkdv {Ш{\R|݄(Q>U&m| wCvdF' [Wt>aw?ڴF=P= + - ?`x0a{!ϱym粂L0!M5=6n|(ydۥ\tHAIDH, \['6H=;]y!Q0?ZW[w-06ZtP1@ZP/Y_ U,7KVMЁ c]ae;3r};<(Gbsl>OqJ / 6?uwpSq`m}o>\#Ϯ<"p~+$JJ 9,i١@E`5=OGH={캫zP.YF2\q|/rV5'S| +*o7}yrIra&{H'2ڟs}8@lc%t,8ӵXlh/K,v-K1\iv+ڞ]6oew 4jEmY\/3]xx"N>r+ m`fl4T` xL`{~#HђObxI.|B)P]3AeuiyrKA*o0j)l} 4&ecl?G zL\O/)*)~✺IqŏXQb;@fmFB=|u>P +{8\1]?P҇=)JQ]J X +78To3EܟBtX < ` L7?EH Pn2L06JV$BL,8͆$oHuQ +L(p?DB .?Bႉ?BWB(cv$*:=e-8(p KZ6 O8\#rFG?/O1| >H> +_/1aG4| %.,2L\p&d`P,SjzDeT6S|E5U \,;qDQ8ݸ +?dVyns 􀉗 h +(5\x nP[7ɯ `̪%PZ5Lg)1>&0=w&Zrά<틦læ+s[9ţe$O`~Ppe:~^xjǭ[晆{ҮO/\م睴mBگރ~`St-.g :W% *N\o躆4;d#4a31bAmw)` +S U+{3=Z}I)K`{%`|N`2.B11Z"El]\vXyGb.?Uސ.e%mQu{PUׇXNGkn4ڎ}Iӷ PftqfͅHRh}O3ޤŻpW9.An 6 9~bc[{%Xw+O.<X)h7av]#< bx +?rj: Yr`fyaiw8\p1-j.Uf;vy.[ v |ڮ\`Uyn֒sp;w ^ fmêpjUַu;fp8d_usZ^Ƨ=m}]5 2,FB/@I)08abFG˸} +b>@B,W-ﻐhv0]1W zDviP"MG86@ rlr>n4J20Xa&hC%SӜml^$֛iՄWᱛHm"MF끞 #` +H3@ʼnOBe'Dp<5YvE?+ RmW ̽*Gjuz-]b~ Q׃Q Lgӕn0, ܴ| §@I1@&N%) +*:eZ6nIg{QݶAcM0֗M;SS`w)޴WJY%HK*|0?䅀 +  |SN7MŹw %}r>Lڲ RnvhBv('iKπ0D&DA:K h$m! +V!Iz G42 j3U:0\ +9H%8h6|^ D}<=3Hۘ) y +mBq2l<*3ӜVW XʓW3])I kf "&'Q+U4EG25uB-W-XpL1;o<$q)Va[^sQ_fu +E4`bL@iGYz$oB]H-HQLJ>3vco"AUQ.6>Aӌ!t> ?d/!_ (S1)'3M37 "/L ^3Ob5V߻4K>7G/9I*^H0o/Hhxd~A 3|hр9JhjrPf^vd| 3=?fX4  +"$_ +DBϱ _CC@L?|!z4X\4! u3:ryN֬ $0 BB_@cQNf~J +QE Q$0ke6"5/lQLhQՅ0R- 5@ 2E"p s||ߐ@MPR(*R>p2Ϊ(,J=:>i(\q7RH4(@<84J\~??'c&*c9Y>ѝ"r7蘺iu%7n?E Vac#QÊO!dQ'@;@8pMF@DAybԃ.P\t \X45Z`~I7 |p0| FG'!pYv 1My8Zffvk.=+®D1/˪T),+G `$,"D>IɊF 'q,¤`j\_vaf'k&F4q2@o |H>G +נSxt|31L13II+M*7X^OT]޸}4S|dJT^{.^D +U$f{H뛞XYO}?b^yӗxx%Bpy(!=Tm-t֔ܠ]>Ү a: fuȾ#=;Nu +rl_ +窒냬e&ͰCTjykۮd]>iׄZ1!s/ƵeYՍNJ9J[ $[ '2퓜ﻄ-R.qI:+b{U. b6Kg9gŷ!hnubU\V9n$S)-Yȭ3MDJY`tKvUt(4߶+Mx\yp헮-]%D";u#4Dml6Q3M\p?5#]:aᗖ.}z1@4x*qpUQ{sP.=}w.a(+ňdVq0xNѫW\9j뚢3: ChlʓY}DmhB]eWЃwb$Gϩot/[7b QdY Ԛa &鶿"ϨgY/Xv~߀+.#SqLm8ʚ0px#]b9CcԾ!bs{wW 0t#gЊL'Sz]u=骮m2.w Nwa@Gٵras+M߆O,]Q@|q Sd^$moi^dc칽Ӣ} r=p ehoF'M݆?ҶΞ˷} \v<\9(.{03m qu3܎G5q'l̾_Tq,ųxS] Q5Cj،9,ջWj}+5?X3&:6#U3̎lY-@(}N^QMX7! 'i +/홲m|ʍyXnqiTӛB[IMـ;pLoղkZpdu#4I-/DeMۆ+i3Rk;P5igrՈ X!khڟtM8渝 -nW#@E pnUVʰgN&ZVSE7[g(tXEΙj kFeMr{]hXz_.]$>Lru+WVhwJdwMZRVWY[l#G{ F *oj{4ұήPVJnM"Y̓BSbC!wV?&-{PmRl'*1,bZ9_]hR&a6YMVj6jJq懴%[uAsMip| wr\xkvUm|mVmI,'sՂXѤ__oY|݄ +{s^xϱKnI|F7|MRX#4݇L8>˝[DRۇ,~IMW^̑0FDj&]t]3pKPcrzM E4EM*G:8UH ma"(,+2%&biLo3U]/^@S>r;z(v(ꢗJz(i?$kaЁNA  RLgv4,m8>5Ħ,{&c,D@a=YU#p<,` `9bGvAHZCZ]^ cBKI*cu1]<шۗpCgV~`hշoNӹtN!RC,X~q 0wfu ؞ VAerLׁnETu/#l*O0Q.:r(ҕ}?aqwK~W\gFUX_u } _kNWݹrx1*D%)Uӂ;N69 qnv#]s/au 0REsmt߅ncV?ᶡ<&\A$RW9L"m\ӏqcğj`Z-G&vs0Vr/D`2;mHܴ˜^ LG؄UAk{ +# .=&@&aUͮ43졮sg!,؟ po =g0ǹi9bG@*?lj94 XZ( +A_U$i|!A:=Ec)R[ sMH 9uIJ^` +` @Tm0\]bS5~o߽i:>ĈZ[b3 00[\}*Lw^T]=,+Myvn_e^i|-R`H:Q-g9wVH92)b 7Pc#=\y@7'b;hԯ ._%':Q9MNӍЧ6\<l"u|0P׸~}SlvR/\R+[i|Iu`:S\.Nm!Cu[U=1_;9ş` +$SSIy4_7R̲ݺ͑JB|i^c=?ftFR + lcN1bzcaP1N*> BVpV2;KQ+`f=(#93ltz6㘙rB".g*yRKbyPԚQa}'|Mc*~Ob$G2cxE_*P#2ܵ$BIvX 3Dm%/!հ*;M;Gܖf\-ٽ7us1*}`Ճ +4Dh9& [6!F%D"˥.(&Hmf F;XRv}l/Goj%ϣqD .*WEu-:', +ࡅlj襟Љzw)j)15vNp:Fm7&Hc4L_!?n d~қIw}$ (tLjыMnw^lr|.3aSaS~赛(?$ ͚~ d; 0PC2aw+jMQ_64LUV5(nB ئ)ۯW}%F"kR)ƣ!B,1!TLOB̪1,J&5/ +Lc7U2wc=z4uD+gѻ{;nçe?xzY5QڬƸUPôpűCgcny|j"g#'Q#PYcWny՚I^-BgP~WܠV!B,y T{&};\f_d1*~"~!8I䗝`NvLT~Z؇j8 !p 0aƇ+56"3|Se-Undެ>ѬxΒ0E8Wڶ~v Wv>(}k.]]8QG@=4Re#Os='`u%PC% )¥27"q [WgBQ[s[Rlg2S9YÍ!j<=ĩn帧]K^G$rGeX4!#-6IN_1V?RqۇYf$ŬQF:fḞlhQh9)"'*Ld'i>+YQQ~ڷ &5Mh6Dh}̺[Wd(l2Z5eȅtS/rAm4a 򊍌2ջdLR>2Ě$B-}e%rVe9nC'ߒhSF3vi+_Sz.A{ؕ>0?h?٥{o9VVJ;'1b}=z_jُcjGX0KIfoJ؝$wd4ݿ5tdVYمY8b[v8y_|ўU?JUuKrSY ޔ\.wYz)lLmIv*r,Ee b"w__z'lM`'l<:/ LU :LZ[8&PVT_*+\*>RC$QOݼO[g!j(+y +ݓ׌Rnϊ|i@)7*Bg6X-=qKߛv鼧EhUvB'f4tx( |88^-b8Hb/0QsjU2'Qp*SB??߸z;q~L|ݹF(>sb|Ms[܆ <->V%7v(D,{ƏCS\#x=w'JiU0ô +F{Q&O~e#ˠgv8+cY/'4Qe#/>֐b3FRN>^1nGCydǝ8odr0nPKd]5$"<:vpN ٵ[eN(/↪ {'14Ssʠ'N|lxOئ<ygw 0^K2ΡFŨ]!$)5HzĺKYw 1w1@se><36v'orDNR.bYe CVZ9f1f1 ̢l2օ/?XT,9һ +>z[DYM\Ӏʮ2m}9v/Y2V5A u2]SV-XlIbƉEE|`TZ~sk̭89?͐W r.C<ocyc;O O|MQ 6;B3l71fjL0J=En;%4meVt,j@GԲ TnWn,`@_U$pRNoQj7,g<%8U69 ܶLǀRh?W/C[f?ea#]QHd9Ma;&9OhXBd9nYx! +3G{dX.6f4e @STZ+\g#jVL| \`|~P U +R(PzLdfPdRW(R`U+ 藂:g!wFj,'E&|O/iS)e@J{^oqþ5tFv[ ^ qf +W$LzE UYK _9r.z1]B c߻^}]t0A 6x3+F$ ^QPhzO4%c@Æu[RĥEJ,C T.JlJ= +R0^1`c!N08 : 9N`%>-zr̯=hlQbMyz.gm֌@̊G`jP]1Jk2ټ8bAj,~Fc5mSv#nPa!7R:3јį;v֨֠ O;׍;#=RZ9jD(յs +K@37)lB"H_~$}  ySgF̈sY=IWd? ѼWbTd`tI)I$cVq5iHQxCL7)Ȭ4-A5snvYoW$GO %fgW9/ +c|Е"̾G~[pYc%Ao݄u`;8V8%kH3CT;C'6R"+9VբTcح'lKҚ}J@gG9ȠhI G}6­ׯH'J{@r@b&!cfhh4%4N{Fqso)HxXJ8rǤZQ$0&U_R>hhw^21 q=p+Jߒd~+ + 0eRy/ru,- -%Q@}N1~E!l @E ÍڂRnZv>"yjݲu"j7F<а T$-wc:dO +.DGIف p"N/U@j\ZuvbVbĪNLw2_EE/:h e{(61WcORtc%VhFb8b.ف؂-`" + !T-p]2&؅kքhfâI][c?P ++bj9y)B+6T $˃LVnԪ3emuo`98kHRů}Ȱ + xEցcZ[rUC& SGj.Yg:+*{;Qm$ԜgGmVtB>9_(z9K=Ƹ/n(ve ZΓq +-Cm5)x1N \BV!80 rlCصf1g)~bHЩ%`3D-vWOh[\GBЎQi PNl@L,]]R%v˲j'eQn'dV}gאai1Nb;og8֭_j@PIj!;4z0XRyO΁3J%S3$-;<ħ5%q%s" Kw#tVcZz{) ['vAƈ@ قLQ[ީZ% \E%$+&c2FcJggxRʟR0Zp^*m| +K?9^ (3B@ T2T&vGHY^QG~"XA( 3(Y1jg)ڏg]2]ٕP׿XuZ.¶%qG^7њS6!bx4JĆѢrm69"IˋG +A/1C Rt@I–5WAC&{E$<)08$1`՛fEAq ]'Z;2_ 3ƏRgIn6ʯ[p fZ2Ԓy`QvZ䖾N MxO_+C-y2\>SIqy~'z?v AAvɺ֗}]^91l)0Fo(}L0ϖUs _{HMaƈkaja} ;`*R,:$XÓ R@lҵ}Vv%hiM>){7Îa6~R`'6J1)m4JjCKUkQ!`SX` Pr3p] BNd,*8Nr'6+5ﱦ(9?O'dE߰u,p޻Nen(|Rj1r16΂H!k:*O\*. [qn!utуpô(*ua8 $4Rgjڌ H6':S1ů;5Z>1}@ŐBul"+{s1R-wAj?f9*,ܤǵ $4ͷ1ni9<7"o53̀ɰ ѰRJpݪiBܢOTjgxy^:mZ^5t7ΑG>fO>_iTh9ρ&H˅.l$@M^F&H ++~Β da3r(r *&@(̑)(@rT5ѕf%FA{x̟V{bg7o"\@xL^U{'c2ĕKQׄ!ے + 2ľCW̿%{+c$(0 rJR7-pW.IMD &jlHU\!j;B D1{)KWU|ZIL_WU. -ȣGzyF]a< Bs6 +09~%>!xM@bmcP2pqc^3B0mYN#:3r+Ph'ٝl~"QR>C漆ojCw&j2:ۭ&Jo D (NIhk_$- 5@L9-ī.D+:tLZZXFȝs *AP7#: UMpL f) *zB M5T@IKm(n=FZ Aᔌ,0c>MZue4Q r2栶 Dšbg%C'P"x"':QJF~W@A'.'0<46Gaڗs_qm#sbؔSv\-YE[2B"p;eZtDŽIQf\e`31KFk޽019GŕS\$eIСs ,-ne79FBb[p!RvJx.!sN] h1ekE a_#DwF /$\RK+tLY +m5[P]v4(}#|| !Pt`[?U[1uK&؄33ۗLryߦ4Ez][/▤gT5}LYTT@b{D,TZn 3Hq9(: Cܔ/tSy`#<hUɍP;=#eй&>5dU+ L5#..b~VnJi&%h>84*fEeUM1 +dfby} YbA)IpjK'`#ZXnF"5mO0?e\dեj١c `RN$Ł +P*'sN{%{'4aZ_BxP p+~tb9 Xa6 T毙 XcTyB.Cg# : P؊(hcM4'!n$@ec3ǰ^lM;Znא~S70)e3Xև n a-Iq x.)Pܲx -Զ!|IJ=vԪ\|R!xq\(Q\eaquw#8L,4B\|X2Bg,mL0Cݚp-oQ]}f$ی1 eP3S^HG١:c}FбN(O 2zExȮKxHM`M_!p6~@tVz8.YzP̅av;Ϡd7j,%ɰ#aFɽUbq]WlnhMz7@P ocsi/IAS%( +,Y.c:Gyjc^H0 2e$5'.ZEcNޟt/)-{jWUZ/5A?dm ]a*jW&|6C2w[0ƯWeK +4dtɥRnR9.OB47F_&UoM0 g#]Ə+zJY^EYJa(H\RS@Z7)!xŗAr+Ǩ<N׎eڬDWha5G3ّ8[Ȭ˨ b6#oQd>yL&5b*z]*9WK S_~N{4ߨ)%yvy~-0txBP†EѪiڂ 6^t1oIVY#WE]Ed<@sHvT`ǘFÆM 0mƱzXvlZLF$eFu FpC(nP/p"x`d!FZzptIIW_fyF/nIl=02uIJ1cD8[nfg5F+|N˅d Yd+,k\ ?09;YeHV9ZqdH$Lo4_ -icxU\,R8Iv L| ,'9'9'?7B^VJlΙ9~~LXSsRb/=+ ku ^mݶ$'J?aʮ2Ngi>Q9 1DvKY OS?Ui-Qu^VELehP-˄Dy4:|~׊篪P樝žYu-^ILZsYAؚ2\B +\kH^#J/1g$G.+s MuL ;"w ;Ixj@ >bt0cmcs-H$iA`$Wa]q]W~c?ow 9X!T p%8!JƍI|e +F`ICﲞaX˵|y?dEѐvYВ?Nb'EcDRRpʠeaj(@ɏF}>WD Rzc09bW+ (n惞|ϴYN#ͰSzo 79lHHkϨ 0iJգxeODn=K #,]gɵ_<0@Ou_|?x6 +Sͳ(4NnV F&t}5jz,q_ŦlL q⦽w)Kie~mW~ X #־'񓭧^F׸P +|#53x(=~NICQqe@3^yF.CwpƸ`KFBb:Y.3Mw\YF% H3쑛܌+"J2? E&EC5qq`=Y ж~FAv5Jp(xl21mHҊt_oBGk!LjanV$35 8"lHyPa&+J +1?.4DڄN) %C,ɠjR#p 7 h$zr[>@B%/B9lDtgq#)8A!{z4gTF^spd@rK!BE/ + 3L0]$3 pM\Th;Foarc"zMn2-&S$?sRgBԹVG +cTjAO\bn"C)I,,*PVmyK+q3P rXu4Jaiu] +wNb'<Xkp5xc q͠9~-ǫ 8?t4֌ %|ѦѸ"{^`}  % ƁEmwiGa#HNemr[JdBflw| 󳠓-cɯőjYzh1bڬf<)kq՟\EvV{>JY !bC#^b+)I\X)@NMSjSKx!)@]UbG`bSF!J`T?Qcv_2rMcw;9bP@Q&`^DJ0OS!RuDȮC<`W DBSLAot+ 6.AetwtD xO |Q# +PSLwVhU-B$ܟReA)_[~X^wce`<(ʯWq%75&ؘ(AeS-epE 8514O+z7ȩ +s3AR{$Ӫp:azb&=Mkݚ4lTCU:!5'{l~0i}Re3FKiIzkP#rW0,Chza|d0[T%V~ P>c`&~)nU9nWCӺBy!taeXsz7T}e^gT 1"!Frc7E +TVq +ɯC7u*Z(~^FW!rt]NDP8v(3a[z{!2{eXd]vePm3>{)bIIMAD. tcZ4a>.+72f?EvيօuKTaZh^y;mnZlENnOlf)lKX-yaA9z2@\NO!ؘZ0z[ 5"()\2`;)}jc{5YLv:_0c.nIsI2jpؼiV6v&>qJi^m،ln& OKǩk 5FE⇔%K!纂aEں z8癟DŽQhuu~k"4G3-?Lx (R)P *HNX7h]l Y'!^MS#%Faܼ~ Le .s ( ʫY\P.cwא ͌ˬB{ZQsdFz= ;ŔLzZUF(kFH.CLu'1%!F 06 U,EnT\=IFNR['=VS\(:Nw;*= +b$, +y[X*F9BLV D*3eE 4@x@؀ ui3 /Fv@`A& +AG*&#:V]P&Qt4I>T_ytIR$,@Q!{j&tV47Dd N%r F`"~4Uw^ThyueAR]4qkբڐs=af8Og;L=rL ,Hֿd~^7,'VSJ)DmmeFy)5!CPѓMUM'$`@v^ dn'n(P򈟥: *:Â`~^=f8Je`0:_%W6e⷟lJ4Y/-b%kM-7]?tTy5 )Hv-xD\\013>E 4$@F nGY @*˧9T5Pj,_6G> +KQ^v沍mCu-b'"HʫaLD#653!GTG"IPtQ YV2Mty d-`MQ=N^!8g" <Hφ,3 MjFט:c:;35hW iz ޗra` ᅎ)>Sscޖ+Dε]iN@E +aňu29A~۬'EͿ,CH:.ju!e#x)z%٤wb{wԪargcԞ"E[@2䚘cܢ ;WL0!-B1Lo!Cq1BtY|kXZ8aRHqS-_<8,ӽB H`3 ucSZDmJ9Ge!b,eqaR~,A(Z 7z8CwˈeY5K 7U%@WZg%;E |CNu CvTlGLz;)kD 5FAGiEgбoV],zY?Eo>stream +j}zl$5aNvX^+:<0 #]K`: +AO҈gX$a2XOmϬU fԝFlϒP\FG#ACp95T1}+pS;Ppl 5<"*Tb 7T e%3.n|Ot &|ׇVGY}m>Ԋ/rOޅז;fpvcfPϠi?›c؈p2 ,;nqE7.]Wz9 7ӰQR-tR$th8MQP51 +!uTVUgh :d+(]>-tcHnɑIz 3Ũ(t 樝{ࢸ0i#-Q%g@SeIy3yljQbu3S]dsp;f谔#) ,'PX 2/DwNdLB=[5Fo)a."i$>RQy J$AZ6I eIuqv֡sX vm"Z6VCqtLqHEY%h^®A/׎g~5B + ?^oN^KWв=g`~Mh1lg?PM;RXyy11b~ڿKMV.(+F9EyfDI-&w|h,rg4K8u侰& 1c=}h]7'>)kDR܃zÍ(vrU\>9K۵s'lT(b<گ;L +W *ۚd[ZlW:ۜ0P)**6rG.nX+g)jߜcO٫hsՐb>, Ht/GKQ@ tˢj9}d8LE {VZ873;AҦG_JIx;{_K +/S$ִ,.M) kEIdrW]9ix$}inLsd% &HyElLv%i0: ㆦN wo8J֒ZJ(/"joR09uA9 u] A]?R,a0HoD1#8Bi*1Jb*:h<6Y 3|̗dN/J̮]iO8_G;prX&5b#t5ϲ VBg)J6F54]+I] ~{fܮ#QIzUjONi'܌Gô7 +-eLgY$$na7+Ưk34G{ ELji +LAG7q+G@TA u%x!t&P/H+.)+U%%i%p))*:WqW+%{讼|jM6Bg0StQViVz8e7M"4Az9KU2:b +'Er=MjaB|$ALiH0v`h$)xqK.ERbO)|gu0Bqnj˷|ܠ`1h_˄|& `Ȏ ^ :L]hj5fȑZtI5'~jNr'6KYANY"~|3A׋۵QzjP'-#7h!3gڟYD*z>L>Uj]'}p6KAJWNiŹTm ` &G,8XJ#kQX$è{LKfiz<j{([+E,&-}4j)?wd Q2Nz7g9/MQY3H{m:[%[5'-Y0s **Zk()o+|Pm9K1CqWޱ{1jf3;Ht?Lْ2 3΁͈6Ea_WߡVF}AɷqI[i~YeFyMA ؁ )^0EQ=܌ ,l)N+ZzD߮QKYs 5KS63|˷ r֣,m,AqͯބQ%</̯l +bqqXT܇A|8y %f2gw*Qup)N}0)`bj%+c# Q}F(ڀ +. +iTvG &Cw5TakJ߃D@,K"Pp%FUm!Hd .Ds|i$mifR{T  X }-3GvV``=‰:ZfS#=>~i+pZk` 47Qs QufqMP}kXiĂvSpFŋt?Fp JxT hqbIFeة#~T9p6+FBW=2tTo2YFe?NcY~($]TlUa).89 ^2q2]WWߚ4 $$|(VURUr ]'D,xKsҊff鍽Xzh0޹\ѪR9Z(^U&[Ra;7RbNiZ HyVi .C,uT72U(ɨOUa~̑|% *71%Ur1eJo>(Sܞtg!h_4բ|f1shV kAIڌ@6h4CrI/45*Atn:*/?Fp9˿g*z] 6U Q=&AԠ&ĀYؤ>v8Af:)_L([̧|o%Ntb9,vS +/+3E'ٍ,= mneô@.iMqaG]¦an)[-;:D.T>zdxş1zmJ缃^#=ﲚ8\ˆ73*pC2wta7Eq)?Krq`;RۏwY2Boټ)f/zSZ2F0hu1v'/O{TWjc=rGo%˂i oކl!Z0DpJ,Bqj /~PZ#-Hʫ(qRq_>_JyWH Px.$L(@AB*z(Tr$b4A!q+F({/%&(J3mBdd%nCl +^[ᛗ x6PTbG; 6(@ M/'lmd~$3BȐ n]RSӦtOJZ:Zo)M}G10p=(Q@„$,x3L6,Ҹ$@#B:%6"TvP̕? R7 P6k&Dd(J\{7R)n5hT% 1,pOE% KMLX'.M :TRJ:JFwq) +I>jQkUzʞ` +Ml8NȀ40tQtOTEg ,ee^pA)^s섶F4TFm8Eo c{IRpL>(R<:,<8 Q@ SSKj60402!3žqhA8%'LE^wBVp*= by>p"$ b]dH,0<ذ@ҌKL37d3 +(gp+fp.HHmYlJj5oazO)2@ +:KY@' +X2\`Ҕr1LdQz@6jdP [ne(:be$?)8)BP 5+BUD-U02héRT}EJۣ{=dFʠ[2͗B)MUPDU7C( +qB͊M܉!K-D&C e8bD Vk{"UT#IJjU+zͩy$"k1vQm.m RF@I <6fND86xe7YmZVYqhRfлk7]PڋzDS^QwE5hsٙS$r"K4`Y$IG*A+lhGP1NM]ң+!&,TeVQqԨ]|fYynO$oDeW>0H\'l==)ϑ[]8M,M<($+hՔngd-׊.r)?ʹGm$^:~FM'WWՄQž}>+8̚ZRsp$\u۠)I zBo_!,bЫäZ/㐗^, 1EG魦4ޏFcPV-Qռ@3%VN%GSj%+V!R\j* OhSL;t,Yg * +JY~d2J{SvgHպN|=^j9^yR*~8D pJr,XqC I@CMȦ-#K?uYq =v.S/:_ݷ1]<+YUs(SzR0GΰRvr&0n)9ZdTOٽ^>qZybe\<4eQ:L8u_ >OMq8yaFi-ͬ니}Qރt04fEX4(Q $;d|f_R=-ˠVs>Hk[eT]$g4 Np得}׎஑UVrRJl7Z#rNV%S:4KШFJY:BP]#OB*͛=#Np*d YcY,1helFO2}1[(/~٤GtR] +Kqs?ŞbSG?TOt(N8GL$kTPTR[bJOf{(r]\TE*yz ^'.>DOQ$t i:Wz˵ŖRXr/ac&kbnfyj2+zzwb򦹙PC + $s{.2Jab0eۘ`?k2B +S}*۬UuV㭎fg%98)~U>k\hD{Z<'i McR*lUYAN,{9)=z2tfhQdgl')%_6 -\5/AGp0*5))) V[UxTQXUK H5&TUYѽl9e~5akEx=jOM}֬\gwCXw.u-oWZi +G`Ջ`];mU v;v+P-6"1j.ï,^ +݇Z|e6lq+. .S[/|a!<=P>(hm92 v`UiՊg6KJKIezŎjOY3pAo>'9eY^T'yfm)B=;v. (;̱'j"$`eJH9l\80>23JsuAϹE^Ȩt4NN[I9q9Pl j dA8 ^:WC%2P;aRrb"RLkd91[S;q,4XRLw zj^g?s6մB%ЅloH p Țp 8< D#6X=\@!ʸ#!-Iu/LaYkvk19H"9K$XdQD ^P3*T;8* ̊ED%!&0rHE)rP֝2r}3z?:iT^-_O & 60Ɏ× ,'@T$Xj1IEԁ@g*5QĪCrHED}oK,/Alwx'cozZ`OX3DVG4?0 C 01ʁf! dnVW@8`e&}p[,&A?%iHO6)< T.HZ I6 fd(0,a51BR2T~0TJ_D riQ$Rr!+R=]mFz!RiԞMw+34W|ϳo> +f +J 232 B`(@Q^&-b..K*3y}PjB|XɿgbWzM}v?_)oI@mE[Vqd9ܤFzp>F)5]Nvz`? Es!m!rϑUo)&v,p*I-NHlpfXn㰓ecV Z yyD( ɞaAoRq* D[ T~w~r+xrmXe 5wbHvq!<{olP%:3y0֏X4o1TWNw6c ~i 29xW/jVCЩ[ᄾz%3詳px#\2K3R%Bd{G²qk?;\ǤD$XEyd(Sg)Pu 3܉ x\sS[;o{-)=VDfMh,Yh_YPz4Z(~1x;j8 +Z|JPG?.7/{anSVq*/;"To8Wqn3q%r]Li(.+^O +Nf*bnW/bAR3z|<-ٟ۪/j_7tSrwͭXχcDO.Y3K6:ݶMVsDvIv:dۊ +dA*,GȤFEyD Uq-U)2 D1CsE͘dwZ2;laF}f_0}fzIuYNjc*',P)Mp +I-ƪʂuPgzLsI%NJMIVIr߳= ՜zSw n^dWς7nT'rSAXJ8bOWܷ*فm岞m:tp?\| vwߍ>%T.F[ېX0>#{h-#TMl~]O%k$۫8ʶTyեv/NxSkSicu:ϼb{QUur]dl] /H6ɴW|̶*qF=8a T@:vӥ?ހe)Yٕ6l+4]5&ZSG1|'+U6Fw +I%nBҮأ([g YC31Z#xmҨBaabbnRp~xJ5V'v +>V|)]>ߊQ;ҿ.b +>o92~.hmq2VWs%G~PKn(&YgϭEdwiXJeo):mU`K*.S W:U2u5>CX]@Op$9:N;&ަ 44XTprBZ1  +jH@͍=X:t5hj+(-YU*Kjs+~ +9cR[:!7 D8xsni`ij6}f`s@D)m\[g*+pl#:]ǁKyV@FW`+WR]0ӖYX,{Rk &'HQk7h*#Ueq +@D9K~0:H1/pY +)Zɲ::@:vK=WRK>,Z4P*5vJH0Z8bniިX RyT-L`HtѺx +q(F qDr.E|&B9;/HHCT?ω,ssn;N]aQAGx8ݔq+mڅW r-`,F_u!5JtFM1x=(/mw8}5Gm%WPdn[`G%$Z#tgA:L4?ĕ)l;- ex6C`{C[" ++i]O߳UOu?h3CZ8RE'k-ݣpr"k@_0Z&>q>]x!̵އ;Ynr=Z9*41NcZ2Sg"96OV' NpyMWzM2(U뜂YJU=8yfHne4n8fL%+>z+^4G>e#1P{$5J-uχSd;>(Fg<0@fvXc]5K8d4xp*ИX{-P;.η-`sPld* @ҋ(t= N"K 9`zH3v"]õXnr67ާopRpp3 K0VҭGq$IhyQN(r#Ȁn{0,z dzKf + ZHq>\q$- +0K` X$ʭ;Jf뚪o&ڦpRt%u4r%Ek6#]C~ Hj]}+6@Wm#,7?Yl-79_A۰#E' e@XV\(Wۅ*)1q<F+MqV8'[種d+:aLmș24{.ҫT/qIij\V (,)<VmG78߂KXOBZ߅:wՍ2M4w|q'I }⋑\y%R^R`a  @hG1 6b֌L~*P <긝#;_! ٯȱrcoXYY~ \nκ%I[ +@-C;0belS.Z + 7L`RfXm$k8Xhf&9TҬ,{$4\m=涢+GAL)4t"Nu]mU %xв}[*KAHy.dȋ.;Ft #5&cd;!bEĀt\`"xVOnn(ญ5nG)쀎ipBKvݍջ6VX&C]m;U".V2` Xn/#iL,ĘlP*0O`2b% 8@2|Ht)LMt_hbkm$&"+QH6$nD[0A;_I;SazMqK rm3HI뻞0w~T{4/=X ++OXnA~͔ QحfhZzѲrKN=MXz<[9SMJ$PjHvՙh>tDh8B\mǭb`& qT˝$!~zC<|O#<r"> +qLAAc%FohN%)Z΄BUgL|Oa%jiR- /;˔wSPtf?kO )^A+34X=[#"`H06 +0&,0ȱ ++iacdjYaP5k'Lf?5Ka¼82HRY;6c9Cj@YAul 6އC dDqH.p@s=@,@vq(4V}X!D +{@ 8U%@i*" U6XEPUvAP@rȑ^:? **hzboPL5@Rv!Fjͦ6,P2Y0GՙjRrCÅw{yP5\O需 mTHq9 "T#:r^z?-0&Ԙ1#:な&[e % '$E~:ߧ~synWVeOId~C-'~! 7 f/ТFdHDC]4xg +f +hԄFYnJe7/[r+Alq·rl)Zr(9_,-0}qYz8ӭ=Ҋ^BH4(`'I˚)HCJDP+~fD魇$-L=Ǒ:i#G. Q{C͂ 2=MYq+]GzcY$Y@__yCXrݷCcsΩ@I7S:z3Mk+_p5a'5fLg1w+f5-­/  M5vfE{CJ;|?^qBAa2XR4, +>!)74a(aa"~;8f9jlXUԵqkNA*-y̒^" ϩ䢳$z8.X + q0vZo0ΉX[ʦaTܸJ1K7eF6HyJ 'Jv)8o((zOQǮ!N#o]c5 )?*D>^: {8rep2@SlCE]=JåzQAlbXJZ[#$Fhe\aJIK~Z1v!̩7:82ڮXObjK=㹅i(psۦJ{@DiِZ s Ql)Il#8%U6 o]ycV[SFЅ" e< +3k.񊭥9TvS=[zЪ8'Y rjjv5ctWZ;t_v+N%/RI bfn{ o@0L##$I5xUpg+`pJ׿+9X+67Z()a֚4O^ޜ2|d< f<-ʏO@cl@.(<{K83m I]b|aB&=$+71nW}J{qnՇY~B5+vj4s=)x_֜fɆ +z㎔$$ XUÊ凰{8mH YvU0hϤ4wSNo0݂xPzPzS 2N(0F>g!q#*NÒ x'VL" +sZx/ 1,Ld6LC8js,+a\j45x-& yYY0^\ +5qH-FI^Es?YMp\(p(·0u 1Z1 ̮8HA\_.+DF%r eFЅY"Ӫ6g9C抎g7v'V%EaqJlm[YrՉ3?O)*V`Lj,ΐ׬KNB}$ל6{@K 5˄^ynEmJΏ0=VsH=9Of#La"D4嘞FL4xvO[ 񻚟њDuf<2j', C&b҅UO +V'϶?-;1~@ЊT10,G!=.f,oDkz/B/I2K}=SRl^wO ;Pdxf\COW1#~{-њhJ,GUPإ'|\һ\^ +@fܳ*EZ&2,z?zkL!(}ud-'i/-9 aZavS5^'%&Qnk*Aƪ! /Gh%%O^[ܲ-f$q TN\ d@ _@cXOz_: vd"x i:NR*@br&SmvNdl<K3M8{$Xۑ>c=-6A1g?kWfEXV?Zn+ +nv"}gs@R2Ttk/03]fJl `%e )brHl̴˖%j6nNL "Qk?Ѳ&># g| LkWЪaYI2_# "/*(1x)J(Is'$9gMɨl[F{&ޓ>$<}`ŕٳWdcz^v)M0(ǰ_}4͗qn-5siՊխ;Y!Wd8sm5M65'T9Teb< +Xr3c cL+@Oi_|wqvMn%~[n#0cص0#T5H菤RH b4UxqB[Bv@S^sz+_o?A辰3br9/qvHH W]x#"#J!naK9OZ0<]dQ3Ls*c!@c=pk@f H"\y%!bK1eB{9ءvp2TrҋѳbAJJKoCYܶD`3Gj>Sov{a2ʓl$o~cѸ?"&Af*5'12M5xHz)^Ԟ,rcH z$Zn@[n=iߛ~ui̒ljzy[[/i^S[mԬYOivK[kXpއaCX,XjM(;Fj BY%E!^'[jpZ^vK],΢C8-ʳuYI5& *-ap.2^U\>X*ۯA"ۉ(:I<gYC%㝔ވ*؍%CRxR]3-jY DOwgnp Hgx=Nsh6N .,`Z}.G5*6ݦ9G+9*]C!xYmp-ǴhmdӨ 򳂽!T~noaJ5z!K + XQJl,(o3Lv[F=jiA\/+Bݫ˭zNgj350ffodTVW䪛fmw_U '4wϮ;HRqS, 8a7P4ϪZq.Jr >JƏnA7M:F-)8Jd~?*7'Ӯ= @Q%K}c>/;;9Jg-aYl*̬QE򛆯j^u&%bE`r-?^{ U ~EZq̏iW^:ƣ<~A\uJ„^%6!&|կpv㽍Km*be#5"򄛧im' G_7'ZsvK[U:S#$7]LsĦū{~nX>yUqiҽoA4gN sΪ=SN=δCx%ǐӔw4ہh1N=N2o^f bs6%9Oy"UfbHVECi2|T=d0ϰbR7܆( +RˬĒŅС$r;̯%0~Ձh/ԮO]!.cPVwDd@P"9rBCdr(ؕUG\Oz4 VU:OrE"((!*GP*1+D&Ğ!xI$֙Й 5X:$&~[^Y n%ys0jD,BE 7 lxPb:R/N+{Q$sl9eN90F$X{k ow(+96I%`+4 ].tu\Sz ዊ-h1 >j$Sf< gfO;ZUvOKgu;M}콎W9,pϙgesB)_-HZV]v5An<įX6iovW22SQD6g|g?ӭ_aK~)9Bkvѭ[6l&YޗA9'uׁ#|[4%eJT#9_921R%-iz49MtsjqM-Âz3jz=-H <~Z 8b=xqvԯ9# x=Uy"6H_.40 Jõ4x;jwd',=-=q|'ZؾĦ~rG4Ak;Y#1vٕBf}4gG5Z>F5יhΫ&Ϫ@1ta7$wNbHeFC4mHYm$M-NT +ǑK^o?k]mحh$?Ԗz=HњK 8,;J%mE-Ln;Gt&cF1~7 SYh9${_xW1,6Nr_ ֑y&}qV:>^ ɕ`ﺢ6FkH +d&}E+WL"W3r$93$#ŀRu%kgd"x3/q@BH ddXjIxN4M?}یyPs/#vT.vJъu.u>$v*#;4r &_tXScAY|#̬֭nkOEePk 8G暜TaoW+<\lXߥo1R_B["t\4^`5.Ȅ@䆠$`)BȠn\No_1},2ӎx41(= r*gG-)þ[v[9Cgt6gIhdWd5(;꺨u>F|EQ lBNrd1ȄBpT ym_[9F4[I|GR4~ӜcI.F<h>Z/FqWlP_dr@ϷAKPb +.g .!~8λ`Bu;-1ym&8QIJ0gClܬo?u0қcn<+]{;G!Ey-ʮJ#&'u|*|s붡8.ݐyܸjF'juj p!K2q~ sU^audQ2kft>I5"W3z3v6Юsu!&]}AJ"0ٮ 1d: QzR'9wu~9D0/^YXl" x M&; `b4U^N/}竪%rã>P\.ARаjGґ:Jqu_TAƒJo6I(Z[CkD._́ThzjF̺]j[D|{\(oA맜 $Wdpԝ&%5)\6#s 3{qѧ%lVm}S݊{I.=)={$u䔍c>=&R.zߣ,:blF}$pq݀#䔢sq7΂Df5~z+V!E԰rNil!tf^op9'`7xv7EO@T ~ [L/ M4$>ȦQ,sL\*$`lRkmDmFOy&T,xUUܺtW{Dǣҽ&(:(Ď=g~I 7@Q1-Ď',Yױ!Ta*Z +oqZfdpbL`IH#al6o&9rx!I".L t ¤^ȉAukۑIa33R@SU7m(%kp3]5v ';vV<+M2!؎+~1{&aCfgy)dKr8ѡ5.@ݑPtTEpFꞒ*:+t]ZD̩^p;\:M_}6@Ql^@Q*ZF}}(meܮU{ذk K%f 0g44a2R^{jtpL% p8^з3.`0d4,\~>$7 8Hj8ӟS @ _!6i:O9ɨ!$ n_>C3CTW0ŦL/8o^Fo58pk&7]:MSr>0O؞#z17,%{ T[ n" ΔCNIIPA "3RÂ\,ȥԌd bg +' GfV7H^=4;F}Űz &y +/Mخ݁Tk5 jCf]k=_R Tʿ[赧ܸtXn{Tcav&8 wN~VAd0t> %E#TlgnKRo=((͋s*-ZA<@AJK +1GmH ̑1.E j~ap)+I3<.'ųlݒWrX9ՐaQ{8O{EȐD<`Mf;euc1z +IϼdM]xƗ_xEqМkݑ:}"SK_iW}Pn1b !whUtI畘. BY`Dgj0QPLi; Pr;zs"Gwlk:j]vwv}?芶‚gڕGB`o$cIR׶۾o^ԌҫCJɪ\Q*~eĬV9DӞ=UI1ٳGSɑɯgKX#,{/{v(WMD&Y`3CfjCqY\mm֧ܾuҋ9hۮu(w/JN1}y̖:ԢZ&%ג3*CJeDewusa2' ŔGPQ.".7DVu=+jK&{ED\0;DhJ.z"t)7Ј{A-۹߈?h2d|OiCgFf̾eD)w֕Spa$*&3fGHwniPtΐ-` `8gZ +`AEˮ&+f4aWdz繣AgÌgxꆟY6B()`3's |㧪rCmfْV+CCd0{MӭybUQܷg@ŧ2Ќߔy 8w#XnӫgDlHowmF)O b:Ș7 Q*0>qD5/jNm|U3mDR6PE0%. +B  A +0LS6<+W 9OZv:.6R!/,׮}\1j,;*h-'T㫞GZ +vq*Р)8)z?;Q XtOjZen[WNw&McPs"u#N ›/ܠJ1mюP_=;dB  +ʱFImضS;dCl2 =v'6zveIJ +.ҝ:d*b,sZ5ibB꺤5NA.#Lg_X1 Cг'uc֍lzFK:2Vˢ 6bWc,A#ES 7, tQ['6n߶;(ӛZ8́ce3j&t嶭C*]y Jp8jZ[vN`_*c?NB<8P7n|GPӻ&Jv3DZ]T~@:v}ARV)*k~e;5¨-^W>+jnP5pBPQ{QEtb-=dlDAmxN#.ӳqɎƘ'F])e Νˊٹ?b vMf r[HS!A {fĄ)ɫV̮i3Jeae9-#ia-n\MlTU08)٩H [4 6 +v.BE$oOnM]2L^(ZM6:$| *)bqCbC;ւ +U-~ T *c"{J@["bU
pn5٘_myvm$j"RHؠ4( >ɔhhܒ&9WۖV -YY߫LJ%S*/u!|%QddF=x&++ATݒ˾:ʕHM\">.'fԦE`hV4 %.X*3)kq%9a  {IJ;ؠ^&(LתK("|4ämˍ1\b l+&=O`!M\1WE'^x9Cn۴2$3a9Ī&xU>ۭm4}St2 +ҳo+6aIgRYsYCn96ܹ9r#g9瞃ܹ:\r#79sSr4wn9#\sCnr:wn9!Ws!r{.91Wr1riK1\rukΜϑkNSpt50944.76Lq-71S>tTlj/B,GuqT9'0bD`p3ElKsAqcQ= +D!D!DDwBD!Dcf263a53-5a54-4d0e-9cc1-eed59a5eb84d823a4f3d-b075-4d2c-936a-a7da92fc7102-7845610779776877262l5602371lh +WQ8Z7{` wCnT7.lިЅ4E/L@(w~C 4Brڣ6ʠ`iܲ;6 -6]o4r3 +\Dl!D!D<BDX!DiB| f258128e-5ad4-400c-bbdc-4441488fa700da527d8-d31e-4545-a3ed-30d438565773681.5570" AF`B|N6ϡ H'6,&)wdrHIxRdj:0E(:uP7ګr<[*IE1WI*A꩗P%ݫ䊫)+/At<(t_Jz$y\k*Iw(1ŗJ=.ɹrw\*\.x<ޔ[L)pgd87/Ĺ &G.f`˜dx1͹N_~SSudכ-F$[XHjHFN^}bJ[5K1x&{tݱ苹[ҋF2Bbbz)KYZpySp5Kzt_F4ҖtrީkTz jRT_)|ʒyzϗRs*ø'XS[$ST t< +gωʐ+J:Ȕ*$sH 0 > &"QN~0$ C  @!@ 0 RE1 v\l9ߛ1l*2-& +MqFWo?4x˥! ,<%DRFؽ0dYZ*A-I\M. Pu~p 2OdH{*d&Of{rR + uouD!˽2"W"Bm@bX( rq2آW:H8)VyeP;J\ib$|"k2,XRE?TO)Q_tO03zoԫ瞂Yփ*yzޱLWg +#HaG6`>^9(]%0(s/&iqI0Cu/MXdq!lkR'MdfƵIPS$KAnRlb,8; 5݄ՙ*hp Kp`qt k$PlbcET8I)D A6 % | "f Ю2n# CTw [`XM5y[ZbƘO$!jtte= j Q\NNp +RD g"e\‰\9e$di?V4&(5&v[`l,[=AKoWs!OPOF8G1''rCFL/"KO"+B >4NXBzNpɫTEV u*Z z= *V`vg}urB"t&dĭ>U x}VCueU=3E"ᢰ't'2yK!AL)ak.?UQA)+yoE +¢澷zVx(χMC8$Mf(w@ΤJe;Q]@ "L{%|ꩽ\֛N{E jRQ(u*nC:0/sQ*I7Rg*:UR#}%3x )F0aB=IDD9/5JI!ģ (,=+CmL}S9k,g6ER0;".w B#58ԺXB!"9 #t-,<Ao$%AM(ҫP49XQ54 -.Ateė+zg3# uTW$ 4oN DyZx6AXqD5i}cM&ü}l<2͏BęH3e*x}#|OBj0(ћ겴(%կ(qV7;,whmD;RO(A؄L +#z.EVjuK {|W^-t[OD/ R!N@kZYu6]Ռw͔L4$VSBam?6M1aH(D ٤z&@ h/a!}K] HH[W۲3%n#Ğ̻1EQIpAfqSnr&*@ 2 #1}/6Tvk+۔lp)$wfbfDCߵl`O6&i(0Z'3.:I/g| I+,]x;V 7r\gIGPy\ 6CAA3UߞB;~bUa`cH-.1hd`z0H4%#ɐ&r]oP9 +{d a#ǵw;JSs, S + 5.j;T˂.m 7a+2咲HZӦ(hԓ;r9kO DScvI9 oKRo;DD};"y Ur YF~C颦+#Yzj$ FfT(^c:PU@1ȋPatOf_Bkqw2k?2 sDmM2ݕ +2WBkqdCT'DS +ڕ?O?_7#d?98b%z1CF$89O" Y9836-B8喡ѭ3$fsYhwXE[*r7}߾M̜HilB~fo]A9ǵ0""#GD a̷*SM0dex#}i}"͊N339Z|dVPoV{T7#7ƊM#G4[h$U : gXX ^$|2| :FH9Vι:bY|x#p:֒,vyt=ڹZ>rb-`#RJ(d[Iǂv3s$Ps Z9X69YPM +~kHvl>-_PIF0enP\_Z[lw4/[8'9zIvb.œNOV茠,1:=SMd;פa|3FPdjxߙDSCi2p\Pl3 / s Qa&ʗn 5{}Im9Z*ڌ=2ɰ=gXeJµي\ĢIXJJ?4HUm\J`eT]TU_iU@I=Nھm)2tűEӧ@w[N<\B$9^K,DO{y>+&Έ(k!K 8t)Uq@~;VhJFaOaf$W eS2%cVE7>(Vsl;+\ڵI\12E!6>@ $atz¸VtcHLR)#KZl 'ȵ3, C1+ԝ'z^@^0kL͎)L=-5sm04*CN" WI=QtP]ְfNi>~ t_Ί:"&H-G bU"4{?q"##A{UCB6&]6Mz`!)/m= ?I%(hθU q}QL~8ڂvij O`&6K gègg$_|gO7c˚)՞$SWNY6 l޽4$e<$If*">'oNF2L^*+`ðc`KR^ZhEeL;⠕I=O^mJ!HNM)CeL8S/5Zv\ppn>pMa>hlY2dU 5ws-BNGmq =ݵa#+,_*@dS"RWŪI~֖TsS=@6x#:b=seGFSKh} PC3`#-JV)jOZ-v^~q\S-[6%25댰;f%wo&|8I6TkM57Lάϧ!l]YNrc_)G挏җX ٨nXjMGVO +om*шoPʴnpfZ+z}xC!_7SYImr+Ivf"#1rMzSݞTLTj;h߿T7[:rS͎FiKzJ]˺T.U^/ZhxbYHV ~:.%ota&q^VᑕYWOWe\]ԉ[Ǟ I/)&F;VJVX, qܯ%գfmt֎tF7g|j EIRՏrڨoqH/-V3Q9-J_E(ȥX/6LޕLCwv7+>qV>Z;62āXX AB* P(BjB +"0ܭ4DCEb%Tr5( y a3G+Z^|w֛יu4wgFjOoghv=,[MxѠiw柠AKhh@$,Hа0Aav"Vu8xkb$s! njoD vdxe3P!FW (v B[stiU9:R#H5dəO!nΕ]dWdM;+Wɴwt}]բ+^Sq(GQ[P|q0]61ZGa7}04WQ{dga{jG9 w +qld$= I0}WX2T8q - EF4;Z.% VAղ%uC~߈ǯł[aAΤ\=ʋxTK6ݣ[ +=-ݦdi?*0hdII299~gqNxpvMή.O Ja>t:\5֜"v1jmGJ +c'ꜾG3y +L;*,aJM-wh<8\< )2fG2G>UǦ0JwJwߣbYaT8XLP0)MM,,֚r6*-e $qLPG T(ibPxLuTHATGT^kBL+ +M8KK:@hLjV/ V`d31Z%&Y\)Z ?|=ơdZS[W[5 bF2R(_dC|.uG0u%k2aF>#[QY/}GJTJ uuRGC#ۣ;Gp?U`L` +& 0A @P  $3gH\:ߪY~kj7D:aLE_$FQņ<~w]ʁϙꪫL*qqwwwǕD2ku*Ee+qKفw3;Y|QyDDT4L0'{w>S=UEo|RZZ>'imoTu̻b^vs[SZZYZZwgGgmwz BD_1Pf>2IMyIy4Sj^$POxzzG{?'wP^kFheܣC>.xs 1%o7$v13sq Sq<ٙ&FnƫKF̮FBv6b#a*!!kfG#5]W.u Q-ljsUD""bv""f7<%&6^KK<Օ)uh{;[ۑ]^mV&ϐy9OfEHgxǩ?S#dTdD7 ͒>MMmddkMsMjcH@.7=f?=u3 %/#Up@H802aD(,m* +#M䵦y))a +/#R̼\eNIX`Aa,$hP"Ȓt"8xBbD`JԂX`Aa,@ 40@hX0XP3!aBDCBD ă + pxpP` p` OF*41IA + DX Baa  $PРPH$@|uYD +R%dmU6'[fZYw>J; _rXĿxdsqaʡM.v6[2uy[ײ׻;AK;c^|fOwWSCQ.TYTQm^&܃r}=[vݓl3~#Rm~yU(WQen&W6StXTuz51Ӷ=섻~?b17׸YYxDׄ|?/~7iW62o|dQ{Ϯ5ye";!&" ȃ)~V-CmaeE|qXC1ü-Uoi8@N +l*iV ,zG-|aljmaVxϨضwDwNq6bjyi})^ӕ׭^- K/͸D\99Dlj-KC$֜9msVS[*-TMc)C\Nc^%U'.5*bedwSKxÄMjVd9Va%1ko8q3*9*vE̔|vZ09#97Ꚏݚi&*gsgTG+̔sh  #"X"@~Hr4A2@.bR.ߪ=OS0rIE +xɿ1aCOE*5=eth1z}mdƆso k=-Z 3²Vy``40= *&Sj$燙^/ڠDlRc)|~ xZ>@?Vi\I*m(?$Ɖ޾UXT Z…pD c"ZOH *= `ˊsO)&O+]K/4j9ryRYzE݁b~ (>0Y#7.+ɕe7駆\LcWR QexT՞?юKR^ekLNݠQ|'wkݍ#ƣߓWFL(*Ġ8;=;sҥ@bH}Y@To?a?:VQE54ɷ#]F8=%ht0wTI +YQk +5E3=yѰ3Ӆ7i lL +=TNGk4dEXS,_y,(VC< ܮzCRG0(*},NlQr +Z5RT2J,~H +uԑyv!L箞Yx:JʾK?wulƹS9ز.ظ͞)TwbrGyh(yU:^{_2eP!wklM09,qK(bD}$zrrDj]òR&39HF.`Э2ɔ9˳vR@Y\\!{P|&IVlh X|/.Db .}H>ACۦ;ZQS[IbMaz:[ӛevt]|\9Kk 7g$Ѷ`M 69C8֋mvc !T ,tØ\3x xSo0t+yGD'SfJN5P h`aln{U=a8 ~HzE=͠c׻sDWleN&w@W8>3W3 9ԸoH +VH+UmV LqSPMFVj\&G j w[nwAǐH; 9IߺWkhr/#anߔ!KV:P`:[.ja,G>0HZqY;65X6{is#o D e#1_"`i# q&\^ 4 gj`6X3V̡bvߺqJo:]M"OC\t 9nװڒM8WLޟ vHAa?1{u (I4ʳ<) VjR#: o%,^VGc@qik 9 r4AeXȑ`bYu{hC:@P/MOƇ}]%D#ʫ'3V@1ȾJ,_,4829 Y9bXTT&fIՕp~`K+Dϗ(?iY3bLl蛔\ vY(B{fߋSzQm_G%A{*c\V\oAWp觡5.ۣ 2A_rs^!/.> D@^ŢU6LV3^(9Ǿ5Lz0.*pW;C$x»m"q ¼8hcpTv~+kFs2qQ"Iu}@âm\0')eMoܷ"sotõI5L'#1QK;];:E}5s6&s@g @s +C/cpcזcw0>F-[rr&{m9B %Q`DPXŇ?I'T:EݰZϭbQH79 tOb+bwOT'B(IX:~|mv ŭC4J<7hg4aɡT [91*fW L c(oyPQ-9/#eҋt4y\c53%@ÿTot9BI,=3-L$Hխ>8>üqpv IdΩ>:u\sD%᤾]BvrPκδe9cr}>I:G$nqsgISlۆtے@ JFsbLG$+|rxX$4ĭB組ePer>~ddP'z-Y_$a BR(`pȝG9O^/GGID>bi,, TG#a +]bvۯ#SDlɈ$.kagm` >xB?Teyɠm:N@/[0G/~ @%p.Nٟ.D[nF:d<íWLýk1۳z]aZ +Lpb[ue +&N7H8*ي b7OI,uEXj\})IB.@Iw쁑32)%w潁}4i7#ɛ7a̷v(6ϰ3_\bRϠD;;l(EpMCUQ_vAK6_ U'wqA&It`wCF>?>;À~x \PcK@ /}pKJc$6#"z"t8GbC'Hz ɉfۅ Ҧ24ղ x[D{Aaws銸{oX{>b~@@ zF|kbG D7GRI:?̏cgq5cH%3DjҤ9/Lzx2l*Ru_TύhLTA  +_/< m@Η;%A11~d˥  9" qE۪]{\ܔJt#{94KK +^ Eu-'38 +l挾i9jwG;ܴXݫ{j5x 6%;v8ĩB0UXgo-$dg +O) `^!):IK6m{,]%[54&!7=|x_>9Rk[;g)7Wç~ jRMen^KN Dʠ})12.?o^@a Ֆᠽ +/^ +gQ;y]{2~3ި٘ TJ`ڀ*?`_̬>^T̸D + otktѱ79 +ZD>c8T!t[wnvނ'&T dPڹ>M{dbp +B$ؕƼ(HGnb0  !L{~"{`(S?M*R>g|!shШ.+fً9 5`004ʫ5Θ/'$pYnY2Qʠma0=|:c]W/ Kcb/awMIoPZo~<iRKE:3`bsa;{o͍ҥF'pb*soݎO,v6B6ф;BGceć,!7:GrPF~_wI[K0(Y]6B7ݥdZXU+!p1&. Ѳ r-)厩c%KTDi<e5>gm2B~qH5N8ꡠ/8ƃ5TCo\Lf0O +`5"p<YBц= qbdLH.'vd+bZР<!o/eѪ! {EP-2n =p̭4u'/Z]/=IP>I-\w]P3'S\O,tHw&C a?}YpLfb"d&'_Vh]be0=W0r%"uAS \BЉ1^i3,|mp6|ІjI%!:bzHr4inBftoH4@r +oft]X0),džpm䲣.#Bu8Ohڃ يG[yΫp C`J*ؽ) /ZG]iy!BI +Rv5tހUk#=R0A!*Q>H?,+c۽;덖z!]F iWnFZ6/׆IHAҺ|2Beg$:17 ^1Iw獣)dO$+ki0=޻7:~edrQ7L`z:,1X)?{j5mm nrDI$Nbs3j,a.JUr8R.Gc]Ilj#0`xHʑn}-%9dpM򷈐ڙA3$)}*9&f': 'eUEu!k."ك9ˑTR&ۈ-,q*ZJ'uVin>ڂz\(s 9W1-sq슑IL~`(ϊ:T7Ӆ> y/)_'.>ck@A>:$I[Ŭw(OW4 P 1W>n ej3(!Jݺ]b+\m>̩>?%rt.w +X5ٛwueLm*ٛϊ {XɖH#JYkۓ%ɰ"׍zX1U ;# 2ѧJR+=nÂuu "ٓgHo kgiaϱ:k4=r&4@~i "ᾃ*K 59eD\]%/IP6!S)BO>uk6wqLf8)ә$^`̄?h󇨒fIGZKV,qJYgZm O*!F|!fr)􋯌ژ rM#zI GU?i(D] + @©%tqX;J0"]a0PRqšu4KD'T=ӎ3AsFc(}q=Jt8ny6ʡ!chXil/ jY>qDL:}X>9)L^7BԳ:浇e$ طصxax(KG+88'[y .z]SbQp5u+ơ20QJ<UzA8g(ćHS1T쨋=-$wvjwy;o9%=X/IopfS%חh\)2c!qX&q3}vs/n +s `λadM؛WMCBq BJo;;ꂰo(;;5H-)n" +k \䲦OhK;ߩ>H{3c8_G+Wt_ 6ۉܹ~tO fN}ߩfաrrvFӬFIJtg M +"MIs89Z]6EfW@R#iLRzF)& 9!Ed2y]D@ò p`QT\l!;OM##O?i[q iSXٮh{+?qnck8꧀P2<Z4 ʺA#9D߆z>A/Z,O pCֹ|e{TO˞óA鈔 1C%/[TzXή +F ONMtt!w\6O\VxhV>K`%IyZa([7|bWi%h <[J!/pV^q"-8畉{?C#xD-M H&1q\p Z=~ClV{j!'DeJ3, טB NT c GqētCkASMaߐ֟?)ZX&qBmpFw9Ԯs8 mۆ7BA@=B\=R/ 2D8zsLjiHQY^°KA{*Tʗopo!}@@+rhmrxSOàÔu8J `屗J +1GCvoGh/gj)θvKɇS/ya^_рE#p>Y &dQɪs>fW\ՙ(B0Te+CL}%[oQ +l:[Wy}bfC6Fоsz>z;sW+3}]?w h@:N̽F߱׳Ols !=4x7}(*c΋& +W!Wzf?VT=jr֫cEQ&9fZiQ~j|IGIShٮ1Ԑ=f0a ĮB'0uۑ 2bx)NF:`Ka4a 8aV!Ep19_1<`%:vKݘqЙk'6+}\osx1ytԭ:/H +t#9{=TL){XGњSց+# (:+ E*ΏOZD ++@)cl+_et|/BC` & G6;&h9U *ji;s 4A@ pv+|\U#xElD[[Yx)E6S&u+((C-ALvK݂".ƦxF$6?`Em hgTS 5,)oQ(AfF]hTY! S+Ejb*KcTH$ @75j5~q{T9ˏ*>ϴ]l?,D%Y|H}JW_*?(f&9k *l6=XJOW|Z՗Qoy20*B~I?D&A^2柖 {H*z Yփ߇ʻ9F_IwD(d{H ~ܔs ӽݷ? c xг9I0NSe% 'OQwFʥR4j24Hekumu'u3<||js9G^.a x d|۩TWwB4'(MQkO+ZJ9MkVOҙ[a{Ä)UK9!c$gS&Y`ʌ+;klZ{#h'+5𵙕lt2Hf/6 B^Ј4F2-rLӔŨ{p;c 걄+iXdItp#Q%~Ӡ[٤WESMPnyogg4٘C`Ebp/•NA4`2; e큵ܽSLHi<̈́ww `e3&)t#+Bwm EqT4f +tՍ.[SYnw;($45_nL|ݝ}]nyY"՘YèlgzJ9yNw;MjC`R9'DՓ *B.VnojjRp]Xڧ8z1wtrlp}sL Do}V =~|">2kpDT_ aCIR:;X: gJC4>#zBkTO vkHBĪn +V*dS'qGr?_w$L(gƺݵe5@|2XȹTX̢Of],Q~ctX&tW59&+\hHz_yhbNCݥdwn])]n o Aʃڂ^F ;Z/rK=Z;~ugqF ԃZp t"vgwߺ^uGql'd{ p8_xQE\!hZCzb(Bϒ/44'*5a"atbfxGxvC88Nq&Qf1"uƥ+DP,pWM]Pu+)o^#9,>&d"tW'fe,X/&sfL ! :iIȩCm*ÀFDEX0a,$F%8^O_u*e}OiP5Yl!= ZF9z^!ԓ&Ѫ2%@vX@A.~IF ͵g꘏> +;^*])uDv9ʥGa!c,\c)OwA-}PgueGk8;&(SqfEsOd{_oyݶu%$!j +2c#s4I`1~N¡Us:y),]l챷 B^I ^yx( e^ۛ[>3Bhq}@Ǡ\ Wln\:Qkm0dЄ[5QKDh3hC./c& T!pªi0|>'>ΖS-IpH[s,8l+nxɋw}w {(,;tF ƇUzw'RŔ i&j䖁}nskau(Cpʜ &4Rp,1*f}b{-Jt7v$hZ''~m +bq6z,_ݮMlX1jV+19U+9y/H'P eT0޼< ʐzuWzQ%817є(rSč)?$%L1\Ȋ3Pa@gĆGqC^w9nD +|Bm'0Ahr?G/\{k'7!;Kgzǒޅkcwq/aAJ:gPaf; %uRRYXV:vZu\zLWZSj)ܬϠt/G*j@Qtkמ.s v*8sj2 .L/}gF}S>v!'}Z#M[|3gN?Um:ۏ4|XrW'7|XdT#ۘܢDjV 1lF 9ksL˝\4w&Z."W4=-o?UWjS/t1/L){ +By"Xr؛UؓG vc}` ~59ߞv. SLf._Guo:;o +2ʹU=Pd1}-},,ʉj*8'dd0Og ߳^B Wk>2jzPѣ}'lˀ]ũd&̹'ll_,Y&nZѶt~|.3 -__aiioV;CP;-ɻc.S,"5][!2Z2\m//jEz3w!4ƽsXrn/킷H8#a'z^rL/}q)j՗ =Hc_,%IPKزh_.kȤW5, H8=V`UWGW dBߋD#icX(1Y} $bވMh/P0deߣ*NYWV +!E1e؈S)B>HL6oɤN&ڷdBaK#ρCt2QX=4dl01ir-H-`BQ¨[ONZPG=Sڬj>a&&"QU=XAV|CLG7BAGzxlm]|[$f`|߈'Y>_F7vFy)=.i~]T-9)7jBdj[sZb]RXFO^l@;UZ1$F;Cǿ 7,ʫ!cHORv[a=laxko[c_,xu 킳rX;]ꊨ:_5\?e9,/9zD4|j-m`[<0L1V̴&i$3ӂsC0ퟸdHn{Lᇂ<=Qb1Pc~WU08[]}֦9 z</r8鈙q4 +УBw.T +)FwmK NK~=ƈY/bGu62 d +(g?cIA:ΌbT1IJ9")bA[Hs' xݦr r*9`~]?C/ʾ$ aMz^TkFF{Q2@sPIZX5̔ٹ q +YEA,Hoޯ" ;!_P_ZY&GPT}i1j ;n/G("8zLK2A" EeT T?Jr[4d^5Lѭт̄WI\Rs{ 'a?WŜZ9vM8W +îP\}Vqtddq!t8 ,H%'vШJ D+$ +7?/|*p$8gNԍՄN|CTMcMHw9Z["A^7iؒ, +-$rC VxAiG# ->Wc)^Q':|eRϻ~*kjي-,ABg2K#1;,M* ę{%ٜ;=:i9Gn-ejÌF0}P㗌ImWgOCQFOuVڞaHdMۚ*2| A./uo\b_lU&9(Y‰<,L9ICncitPE/]kGPG! ,_}?Zeӄ,J,H@=4(ΪfQ@F`G } 'TQVc—{-/14xTtsaon 6tam0)ЦDwz/ +xQ jbOcer:GR:"[Bнz$s.RCvE[?}bE00XBYP#{붗q̝[J-}3wrs@ GVmESôq(6O0HJ<\>5j9^S)2& 5c嚁װkqZRyR۵MYljwz{9)Ӎf,6*/*[;|D DpE>RN*Y(c}J 1%/x%O~JT0x*.^KL tolU--1NYl{Py~U7Tr6!J<:V/o +w/2O?mP}f0õtRu&F 8V)ZUS}Z:)U+۲ Ԥ<4C%#tsBHTJw n&nG9 œϚJb* OfCQ3;l]g!%[+sH,8X.ZᘲBp'9 ,qF +ڀ`IE6nϠ^]4e(,Rn$Ѥ{Xr&/Ff=bk{>me̶Zɿk,_EBA& [#Gf!Tj,@d,s$)%?~};!H{((y1;H!~RAh KqCk(Tȉo|m3)#?51ևq}@(/K2.H A:YH)|3b( ŮNT =̌8F `fUP9 +M:n#>>&>xmZ5 +h'/_chA:B- ;ED ;N!TrLFuOg?fXAs>vC%40h[f*.PݙpM +Œ@e`yxg>qDbĆ\hIPL蘁8t>T^/-` dY<Cŗĺ!*n+E62ا;ħXIbnĢ\M% TCqQkWEPNg-R\#%}NPkAڕ̈2U*H&Im.4ЧW9D=ȑ +Ch-5 ^t/1_h> Ù.('.SX{bգꪚF?' p#NtPi7d#,u5Z_f@i5w{9zu6nEPeW}6%#wSi=jwwy׊Xk~I{>L Mmnzh*g1_*7G`̯ 3!/|;n^<:JN1 I3Pu Uᶏr,ZW턭KV'(*t`ffNT@%r&˴\z?xIōL(%Jh=x]n'D&4ʆA\@kf/y^J['ղX]5zh:mIf@ J(U |i4fjR:,} Nz}f1ʌ +p`m=b-jo+j8гRoxy =#.ΥhP~Vn6:->OqPMEˠmi@jՀ( $sNeN=ljLq+x#YX1^+71?iܞtL&I[Q{Qֻk+| Zn^y<nj}:XG;T7ՖH[eU5U?3:&g%U]VYuWaH뻠HVcR`Rx=iO(TZtw,P:QP4$Li&xeE㳅RAo6`E>&.K3ż hCwqQ\gj_BWRr6#)'V;Sd+~NvA砭VK NUpq9SviBDEtCvL&ꚛhj`|Yj]UC2Jg bȐKghP0¹ew&\x9C%PR;8,!qph \Q,Su_Ҳ2SeA_2,:ކ]"4QG0ݢRmK/ZPW'cȂ\60Q2.ۯ${ i/ѯ+$[:W}PK4. {րeݰeNCʹgaM<HkJnq[$2ɀ+<nqN}{&މG짉>_)Q1h=4ٞ#v*VZ(q +\g@n4ewNJy f +Dq;$ )اf ^> {tX.!:~4W* +OjQϩYs!\pO,WPi*y0bQ2( V3y/fO& +85t\K=IJcJ܀8O [E֋U*f`RS¸0߻TC.AD/ I.P)0}<$DjUSR,HȧsVJlW)dInGo +R~ $)lB.XFuGԽ4 ?Y׈1 +HvTekC)OCSRǶ7#r`܎Ly:Mdь>QYC%96!C@J}<_=&,w +endstream endobj 19 0 obj <>stream +Ӟ. *XwH ^/Z%:Ө#)#J>1E@;q-AsP>/i̐5IE6u>W, N  I +Iq) + FTS +iQn<-J% 0(儙I B6Vώ ړ-Ϭhͫ䷙6BQ"!t\Gp$VIY9x;#bJկҀ(O޵ySk^^i+~7ߙǩ$Ӊe3g)JU*\b0L|k6Af? uUW9?%VZ/D2g1Γ&S* "3\5 J#"a*`1hrG'&fOdGm֎"7d*K.5 +O6Y*E @ٱOW֎+d/'W3^=;DɿcLKKt9e KD3%Κ/k]Ah/% ֜o] ש$øM0Ko<*,|&8Dy\S|v MUl\ɻ8b6C *E,q <8==LTZc2@6Yp [S9f 3_WR"m"hf3ºP/ j1_JujO^_R-l( J\жe80R2/IrcdG0hT;6eJyu]t\u<[ש{ԃZYL]>\!M,[=,\FI3*;EBo~-kx!+ʶDTa4P*.g Bt:F_x@o +>YK065IvRs}m_ׯU207nP $\c4#߼6_ԣJ`L׫Zc 6qm RD׈sr]TH=ǎ#0e̤@S#cZ|l wtv M.&kdk:{j6@Jtd vvH^o!\`54M7KrsoҩW8U(8fR5BP{( TD"hfKa&{K&Ӧ/֍'MxJ]zxWCsaa6TM)j%]\xג$#InUé5am!Sr~I 5\wtKʦg6Ri5,8t4r)x7"cHH=rm.sDsN5C"4+.,=r7*ȓP7ԧgN7n,< NNi6BBmƤo('\wd.lwCM&]/YpIr >ԛFQY8"Tka.e[dn3M)pͦ"z߽.X@z~NeS^&}e/5%eg >13p ŀĽNȷ qrL;zW\ǩߟӃI2^s5N?aklqZp{dqW`ywɏ8>.U=KS!6'XOBvPaaLYKhi`0O%[$-8K82϶?HeJ}'9h6u9VWDe}tm( Drg }cSil$yf>MXѐ#oY=ڧسoJV&wJpb6)t{9r!zjE=jMMm>ͦK"{rz=W< ,( +Bo +B'IвcWl"d[HL5ͤgJ&H|Ea4)&&GtyPڻQMIf@ѤS'XRK҈(VBg~TyYmzO}R¢jo`C2ׁ`NSi؛60_^Z +]'7y+N Ihb`lH/seYXZIAHU UGcWF ) )zU+H3g`4J|a)L{<>xMTja +TdzRC'! F#w(˔ڿn C{Z +4FdZE`xҽSt).%Bh_=XI5z dF\̦,HQgƀ5|/ǻTtw +( TX>fB[bkÖL}5IT/?Cf<"{+ۍ/6J""hUv`: a"-qM?W_ VaAx߭]M #H7 2LFRq4Bun;ŒQʺ]7;TieYQJUXj]Weð,ˮ,>^yXwE$yY%`RXDrшrDbMe,rYfrшVuDP,rшB.XDF&ԺhDd"WebręQ( +f]5K&RQO(2' ..qfOL&Xę]4d(JՎ֋#3qv="];H\O)FGP:m۵õ"TSRc `^bWOUYsR5k|3rrs];kψU{PD <)\M Eд,:rX, ˪$ab*F[X;Bo5C5-Ky7Np%q|ig {|?9"GYYԌR]ʅeׅQBH iMzQB=EIb@UνQxď)(xSj +f`FzmO e) uC3&݊&L⃶<;gZ` a6̽va7Q;=(~H3Y܇m =tg(<>yzߩwheoN֐A8Z[zт֞ +f|77pҤ&U?~v*?߭N:g5-_cѾ\2.Hiu1b(A3F7J,U07v "%uGggUԽ 7u˷b]A#Ďmݤς8UуV.weM +"Q↠q:f5fft;MaPp pPn=oMi'qT~gBUa8'F*E$ #dTՋry/$WU$2I^,2d-PI#f߰zv[p4b^NjߟH)GZh(1d[)Iɚwx}dE1 +Qu;`=o%._j֋]MQIq zc 66"2zTCV!I_A;flqQw=HT]='W?n1pX?g-;*[`N0:ŷ=4;"E|oC5~I܏Gu(9vÖGVSkEVU-z8ΙNSɛ_9U^s( +uv[|];Z&qg u˛Өf>l(yhP$"Z-7lm4r4}jTC)ˇa_yScl)TԺlcpOš5^֔=-Ɂ8=\mS[7{+e fڲEҢX-ZBŎ.E)WQ\6vv>imo(j"[ZSޖ%ˑ/uH[ȩ=(qVjST9 +rbɨ%C +襸U~v:Sڃ߱@.}*h'eWF +?˿,aR[`"Q[kj_Zs$J׻ߴUv۾e *߮e (ۜT*{W5U^?杣֙S: 0 .` 0 } D@!_AKh8.Ƅrb'%@$(m,GcIh]Eޠ=zj8nBx4.Cd&4k8 +p-(n|"CXOG8pF^Xq' #ګΈ%D2,)Bp}pr?pMχ,Jߌ> 欕uH#jMhō5dJ08(󆅍tuw~mIc" 4NW<8!{sxI9<@͈JPEnR-DCы-b3wE|-x/Uk:.6J,]zށGMSHad p[R g0!ɔkR.Nv~ۚ#˄hl?S>?`GA3ڌ{[Ibޛ|$<)jyѨJ WjE{y&1%Ss Ɇ{r9PuVB[`'/a~H +]p rn)&W0beHHpl4b 'swV"3ucYHl䞨#YP==mˑ>Ǜɀ_ |]B(z+uʀC?t.GЦ#'Yjl%pfɟ;v"\"rX{:1'rQ۽wǀ}o0`$Hf*Ÿ?e2jj3:0-;y\1~+}I=D: h|Hij.r - U' H1+ZI'3.Jc]폝qV$.o6p+K AĒf.a\3dcr/ Bh_9i ^9/%ttkz’ =^ +vyKS4zy|,@1wʇͱ *L]6Xػ CjY6gG{eՏ4ml\ҴKUϐa>W5Ĝ,-yɰIrf  +_y!_0<dܰ5@msDOb-U3c]aJޝ6/>-*̒䗚Ga}w8̡4T#;8+Abݫ!J@ 6$PKqœpY$[tF)npY k  ]Tv4imLgQqh{ (揠E^an˩rnF|"瞠F}DJ3sMm%l &9cIw6Ǿ2pmaޠ +||♩f H $ڊgE +> F8l6uY_|捦 eL ^Q[!WTR!|gRJgP4=-tq^W;1x{@DAÐp|Eũ#[J${%'H32026vu"VȻY}˙3 /e"Z2DpoyŘ{ȻE_]]xw!pöS𹨒Nw(8',9~3~ZbVg)\C`C4ًfy%0ȾRA$ +8E-#9qLD؅⾃tc3)޼n/ .,`uKzN^vퟤЉ4|Hv7=50Q!@T^"x5H5`P }'C"u,f1n`Z.'xZY ʬ+ѧKKcVEI]dk/YAКd1Wf(@LHOb,aӠtgI({7$6#L7e .ějg@P;Ҫ&<¿9o1q.áSOflq?יMEdeXvDuy__vx]!*PY*0Jbℶ=侴]_JcX39~QN "/RJ*ڵ̒oׄq1#fpG@cKiTԵ*/S/їwS9۝ +>@(7&v_J2 jKr6xj$ZvW:sB$Vf5zdՄx<mۭA (*:Z8J)wNaҞ +] ເKZbخC1JY!DE{Z}H`9AjBldvwUxLj;e}Dw(Y5:xVH@y=?z\lR0f9twfWg =%~Sc,jN)h]ƎO)d, + +Oj֖?f!*L_:!O~U|d^5MMAͪ72>ȿ K+n[&J^ g%0q +rJog37uiOt&#nmʑ5Өo;$wthE+]IT>=m#QQtO$ Un}o-h okD*EsSE+ P\wӊNd߽V}–Ջ, yw +xîfl{ǶL2 +-MOPsxSVpuxZ붐ϝ+Sad9ߥztqSo@Y-t5P&NY|c:= }>LWp'qMc?bGe(1V6T<|KZaCzW00l,,S_ @4J7tK;Zhqa}GڔyDuSJk<ηMM +uА~g9]BN#rL(} f#VE%~S*Lba75* z?> +|\H~C_;,c+5z#}B|9 @nDb%1:}@Yv%k.}-ѢcѶM2ӊ?u:eoFm#35 ) ymXQڬ++imXJe^V-D/k΂^Vseϸ_n.L{5zOm +2E580'8)l, _ԣ(=>UvÝ/3y7ԇ-Hjic {8Mz/IP=Nb4Qa.bҷ~:IU|!3T/ەn f!,bXuOa)62W1SB&_$*gZ&0c^! G+q/.-}7g˹ñSVK< -|6<`7VTIpJ(TYSo:Q߂E +gLTxp'!qI3U!r$n|PS\;$8'9 lky),WZ%٭LRk*[efCpሐ ߼<"+(?vVb~bرK'MNSC0✴*r5Po?k2T`2j͕hI Nmt'V1"._haWX Oн#^(HG/?ׂaO,qN6w.y@I :5ߖu;frLM +VO+bUX`՘qX@*G0 +ހfe%&nSRq1W2d\*dE "@Ԓ A%/A)'՟e]S>_p#`Jo ݀*Zs ǚgӽ\qĿ#\Y)bgȈ d^uܛ[( +IG֩"] uÝGP^Wƥok( BE;Bt !&&35*I]+g!ly =OxL#'3?tjL/}ZbEe<)8+a cN*rT)BUIk2z}$؆uW2` T^PSS#g u^^r^G#f/V(Z)(j[Ӥ(&S#>l='](?%\d>wk[{Kfc=7q{'>i[ i nJF1 ++ =Ru3IF9R*v7+"E[ +2h D~ +sK-g'LX՚Q8K7&NIuBڡ%~ǧ{\ f'tb':* !_0KweQIdt +#B)m5 +悉rY#( t RvwX@|qYy>c*t p&G{q1nb@\L" ǤЇГ"EU>6$eIQzcu(5~e.Vzd}4oK6rpGJD, SQ/4F{'R>G3>qzXiSh36+wܠΨD i 0plwN"vr.sB$Coٕ4lGI#E&D| + =iHWP&\>N7eOT\鈳|;8XӔKҒżϦM"%VFs?`#6=MrC<ǤZfZ <8Ĺ܄@IQu3$5m}-؅dbeLY.V.<ȭ%p` pO&;{kF-bHޤl1J'1M~ ᯔZ>8dI~B`>r2 `+ѫJ~E7%C?鯇W5#ƘkCr[7!.2G)]*DH +K4b<=~dvg- B=9o#,K;B1+"c~ad(I'R R-&-hcN&oL r,I;%8Tbt-3{_F"RGW @2zpm'VJkd~s J[J m2Yo6>)W+y@Q81nZ]jy fTz%U[wNt<-RcLF&L|hl(rKnX@g 1Ձ!ɗ>|bw2!9吔2\l lBXnah-XIO Bc=eqiE8")#kw߆ chLh EXnĽlAe8W&b SDLax[ fPnq^:'Use1 _C@8^y-0墈e"}@|V, t8NIjgKKP80=Ӱ%\0ȨKIB^Z) ].p"[DJh31v>7R}L} m[ef\ ,[1U0.({zzGt(~Wk֯(KPS WBc- gΈ84N?ehl +F1_iqkXqx9#GٵJ/KpJ>~\<\Fuz&VqDR"G,U[:ڋkX<3)%d;oe_#+tغɆDRޑ{/1Rk$DBqV-TvѡsTfW7Y>:sk Z>>Pq'r'S*WmB-nE @`wg^RK΄6>R $|:2tCtz Ʊ V_8^n\{Z+5@`7P.RlL0Z,5>)S"*\r[ȝ(L%lxoWgti݌&"tj>o矉dKLQ%0N,WHu `I]iw&7=crzǍs8.YBWbjQHr?^u sAxf,ζvM T|QF\n5GųpBw:M O@kkEoRD:$PMC9]*!E+FE"0_ "ېߘ$# Uűb @J{І$!E/NzEzs,WlN,`t `)d al/Z9;7J  Sr 2%nU"ק:)!Gc 0)pWo A{U:CR8+,2)t[pP*TJkIa[;TK:L',g1?u-w5cDQ[6 Oy*cBP!sM(gNeǕ'kRxu{#LYol`Wy-)y8V ChپBesV.Ae@g]L˅͍ xDܘ\Һრ`Fa+",+J`.$VBsPg&F%%SyfИF?M֏+j bː\Id^] r*!TŘeLhF-3q+C'@%L#. !2,V~H$  aZxn&x5ʫt1|rWdǖsK0%AfڽUg\#z +Z$$]1)_&G'G3f=]L@Z~!h , 0 +sa*J0c@ټ; wUa_xAƛh@mDJkl@}Y{y"Foذ2%ox-+c5 +t/H#r ݞ` `B\V)ov"w[hQ8*/Tۖ[J +{YX rGơ %elhXּЍqشU)%I Vsd_kPr<# }ӧPo.LOS+.>q !,FQHhTc@,ld^&xY6S_4/@7hPD|1(fh+5@`\I) RrPN-^h/̉)^m.qOt6V%=XJ&\pEl fD" E! v4@ŏ-, Gq0Di Q&Gj_ +U6&z YJ>q 85 B1bV[iÓ,⼶D0=IX"a)E^|?|N@Z D +j ˆiM1'pJ@B2`jnC`qz œ#XAET|sx@7YɒdPIJRX_H _\wT@mchyju?^ +Bx Wio$},!g!}XQ>8`gfR8 ( S-~X8 + 'ky h/bcIIBYT &/Aufp~w,*xS8^:GI@P!a3C}X:s{?Cʋ"*hwL&x˴'9J$Ą:)1iu 1w )wYiW_ g21PXw3vK#Rnc(Q#BBxZjY+'~!pGO%K$m@|p2i)՗K *_~2DMF_ɔK[Og%M6g_Ap2߻&/}-}U9̞/ q#3ic"#! -0ˑ ,z7Q''uG8w40 S b%d,(uX/05~ NE&"yx4hi~NJ >DNUQBv\@U9MvNmv.ݐk*;."L~ T=Q!4E1 ](#w-Y"i wE"8 +9]COM즾.4@ T#ߣ8=(CF7| X[+BlMpݑVnTGq[o0֌^oUGGbB%nFTKZv$TymK HT F4rS& w1'@6!Rv2u{$EJc +_aϼqfվ"qS;Gqbs/熃x{O{hYghx$PC~ gHs޷4@Xz6|_DxY,(c:ƐN)husd[a.7bVAyPRtu"ϴ@(φ&VYk~On݊Ĕʐ1 R+ӁRv1ɹ 4<[_ToItDVu^u+~ h~+Oʐ*gHC<ނ=<%QaZ윝y913)$$|C*l+i䱋}f PnˣQ PyGm2RnZbEqF\>j h~:a|> S}fHB1L=GK(ƿJ^XVB4@@ O̓vzZ@2&󳢭`@!w +Eqt%&b$"y+a2pˠ G}SW>0*tN[3Q1]S Gk<ޫTʳ@&(e{Kř}Qk@:,;-(gpBũW5 JV:TYv rJ_Ed-hE  z  F *s7vP2c]YLO 3#^}FT=2`ArŒqJA})FS"(xˣDdQW;X B$Z ݫeLݸ^`wDkHVm沂g( o칊ql5sՉPkwT FV'1r +[B=_`ʄ:\e (8k_W,:vߢHW-̊xD I0= Ι_>wQz + `w.+ΎB,~*4%\8*4B}'J4`AD9=lH N0Ă?}+wbG[R +aO"V.h0Rl:<νU1܂` .L Q e߮u9ЬJꙻBQoN!*l &o$+(zM8!t^NᏇB_Ey~0\)|h-$9lHwk +yJXl$PZ[7фɃB.XpV\-)IG +cj) ~Lw[9X^C?k@@L| ЙިG|j *v" "d]9 Ƅ~~/,h{DiRؤHdqfymÕccd6bO{F;3 *-΂ql40#pY},C +w .ak ,9fxO[>ı6woӪB9zʤYV8I/A>?TqcݐFgâ즉 +Қ%;tlazCoJt>l!1L](G Fȵൖ'Vâ9")?<90Geqo"n + H¹  /"F|C5@>1.1gSz>h0 +ut=տKFJ䵆}xllEtA $c۔PJX .~o= HhLo_a\0@y?``;҃d6i(6U)WBĢuBK)qPC^Ĝh 4@@7uG&QR )qa-`n5TuBgPx +>t X `;f]RcUκ JQg)᫜8U;KE)7} CHv*7 2Ni8FuoCWþuUMG#g2bq/p .8;q_,tRe\OԃZ ~ Y"-JCMXI m"`Dii. "|~z :{By} @xhB\@\,0zՒ@yw*@2ЂFSw(H"9KK))+{hc] +L *,֧:ɎK} ZM/ c(i\C?Epb2 /l@4Ds +\{E[H][,D|+:~p_cO%8>8ue+c5(7"[q7namIr` l:zI2R Gwl@ERQ6,Et5}8z˝D^k@ +$1tOlCj )ǠQ G~ kˋť6}pM5cRvWҎr)L.2D7H(kµDTw-ȳM"1e`Vt^n,l$<rtv7)s&]!NYet7yScG6,4@uK25>N97"Td;;[ueC؇#ukeeIU|D٫{˘R6dbm8L.c oVF;qe42vGtc#E*ȬbTO/EIal })BrY9ϔ.械=?z }'y_/ܧfI~@ߟ Gx! +=J l=r;Yh Rg"o!t.7\D3b&{E勳QiҞC:AL\j ._>-bQ2wZE߫n%]iU5ive=H hU;DGN +\^o6~XN_:ilpaQ!/Fo>&~ՑNZ*g Y( Uc}foC`qw[&A3Z9݀)Nz ^í&w)mtC{jcW_4&PRCgDa&1"n*nLniIsx-þN6 qz4:mBYr ؀re;vCP4GO%5zQsб3A5fO;,Hy^pMق÷ +3!!V[h ҇l 9=|ȤHQ/ӱ)SC_vcDh@uwؗ}<4rgvi fS9v kƁu1iϨ$, [bF&Ylh6zd7u(q!sKyj;"ƓC}!zSkjH!ef5Q\Ҽs(o/ԲyT;F˧pY /n*h!y9CshCaTx3"zτo$WQ^d֏-gf)IEmdJ +䒄D ol܌;!98X5(.b52CA4xVz3` [htd٬dYCS`jW,ٮD JIs-\͒$&3$<8)hiCI:V! E!&﫨 pӼ>I}@_ <<=(ٙv%og2c(yK5ތ! +L;Ⱥ5@6*(r{.95qiт Npd[-&Xk>iwzԠ1Lܫ&S9P^))vz4w0LK@"5&MH;% JQXs*L,((4sqkʀBdU! IRgʵ i#y4]YCba`DYB5Qz-sǖWrQgTck4;2+!C(9Mge p%A\?p]g2Gv0;?b3!N] rQ,G0F*G"]AxH=dz?'"^9eҐK,ObH 0 +VL2 , ˦P+} F\yz }bqQ >D'`eDc +fg'\Z]R (\N8s;xcqiy{)M ƾi CZ/gJ4WE?L[C&rye8zK};㸑2靃tv#.U2;PI3? nI\a=dc:oTõS~#F7 іX:rPq^X"*Kh| ?` -h;^^˄˒=J{5@AnAqg IӊO&&['݉F} ;}UyChI%:r`We $CFBPi7Tddx" _ Q9&uZB2`Zrr0KMy(:C0ħSHQD ʸjT|L. )@>m oVtK0j,HWa?*Ȑ1 %́G1ߥaݍm {*l 7k_CD K,S?R& +]YA0FP$JPoŸ$Iy M@l ̺P|0G`U ˱~D381F%I*b˟YƝq.`NSf?K +zs/;;8/KϐǦ[$ 0 ;$2qEur+1\R`RyЄT>jDh. +5R802kgT;9ّ2ΑN.#wk o&)l)~ %q=d=G"L螣J< ! @,b&%.[NG{3 w|]9@KɖfQa aܑ5qIhNLoG)xqnjiadEeMrF7&Aa}KIRp4/'W>I2 !$hέ'J>eKX* +x*2xq8턃$Yqk@!2|%a$!<IU0POn9ҙ5$Ff䜃mN<lhI ?>`=RT IK$rX0 "/4˧4-n;FM2ȁƊBS( 'gYɠ Hp') ۬ +9qȌhfK4&̎Ԣpڱ L5k@}0䑮am LE(0-aMl*pK)bz2JLuj-g<_L \g*;ɱ{aʴX15GeRdoI* KJc,]:F6K +5Go~z.d + Gmw`*Z 7c+PJ}ZՌA7zvQ0sΤy‰ +0 ۣ@^W & #2Zwlbc`#U{U%wl `n$nQPD)/Uo=G4) Wy3tmB=$N p)[hVe3Y#{d̆5ylR_bxu ʋdaj0#n _}zdS  % İ5@ -ܾ \2Az z;Z!w,R8&!zjMURZ cc=OJ|M"|RgON0妃f UGxKcD(U%KlMx\ˢ2Oޭfa*+^n8€ʽmL4SV5ǬB궣(G.ڧ8BkwCԪE.@g5gpEO +yA'jO !snμqx(Y( NUn'n^Aȉ}.=ݻ>ϼLސ!On׎_2([%S55=+^P˲Y*7)Ǣ|Xc>5QG@mF H|.s2x[sB%@C;i0ab$)R5ot‚r8G$ ;NglwDkf +d̎G[A? q6ͣCGҒgN\ ^PmR & [8<Am)30<@JQc׆WXe A M%sMN̜bF0"P[yֱ$w:Ǘl;6w5@S"t͟HGyqI.p\$,p'>2 +0%Bw{t.*3oXXc̩6χt4,!;w }U~i עݲWF|sk VBr*JK2ĿTqYǚ}Ȝ!3:Tr4@pnž%CQ r *HqLKL# ++t-t{i/ %ަ P~!4!)I{ bFZ7+23Q7}=lpг+͌`SSw){6:9|zJ RFh8ngSA6tz#R1s+y]j;-[_DQ6^!Y\zC qH 0~ߨm)d(cjsP(Ix_l/YP~)Nf>.A@~E:ҵ2-<Dd#Uc|LlnQ5Vα;BeנCo3^(=)v`GyZJ?ԨsQRfOAp\5tM$0 _)eT8H_pcݺT~ {К` 9iflۘDX Jj=ݬfw$=~H䵛X?RB vxb @^y,; r{tˈ0ϦiƲ}|ų̘~1_-xh,'x@ԯ ~DxUc2nXę3x\o i)d"ېp_J^X?=2<:j^R^M +}&n^ARC.F7L\kpإV1BkZY'Îӭ-#5@Ce(2Aȿ MμV+WRJTKnB UutE8;{ pվmT~S=Q[ccl!3EMH]f|/G \OP}q.]&@[zMz 7J ~s`I,D.|< <Z3XSPF;`}?dhCX-ޭx P\([Ni;va^C&]htv'ӍFG PfҺ{s"B4i2o|StpCyYk#W\eS@0~m#7VEǴ+ic%0?5@Xmi(Y@9)ޘHɭ`v2mǾ21"u 앇]`#;v}ZPji=hi iaICv{#n6lC(huN(shQrPlDAƎ6 ˉ yE"·cq@f Q *]`×J "*2fSuڡtYRBXl52hPbUn 4~D3W;*7+5lC!gR̎$%tۂ4YP z2Ll\G(߈d MYBPLV򎆣=tq ^%AT&t>|*\Ǥ-T(CT ][2ks'#|\cj#u% &){/{YtSF +$LS{Z c݋~yϬMUK(H|cȋe@/߭Q:W16^A']$/>bq[a^WZ5@ ;-( {M:d{$"UɠHхq7Zd>E|y@[NATJUb y-3s^9 ~t!@=`#mcT[Z2[g>  +:NrVapfglIb [Jc`GUdh1*;tͻ$lndCs `갬17xxpԁn)&F9It pJ[@ѡ|2\C0#xp'Z25'&癦!͂eՇjYz{ש[D%4D/ ZZphy@У4N[IoM H&";ҹAr.GН+Uɘ$Ҡ.F'k/z_Rk# 53n]4yxo).DNO OnWŻ +@r~Bɂأl\ Eb.%%AY2$  (Ls0ف$ e#}Hg6( E6+3YHҦH^iܼK/#zJ3yGB +_B.QH^ ~) #*8̼k60nΧ-(gi){biBF `,gN2Py~-g*ȿYѺXgs3lɜZ]z2DO} ݥ%_5_E>5@<( Zx̐G\U%eyt] 0(|qNRKI>&pܘ rٞyV Z,w@Ȭ.gs q'*%gST^(?gIE/ wP[I=Û||5@`!S"dmC4%9HU*v'? Gr[%  + +9qA2]+f dLvug$ >l>]Eq"5z45uf 1ܖY4H ?ysIj1N`pU,3h @mJDhF/}..vc"4W<(-BAM`yZGX_ u'f _݅$YԚ1$u +i ܦGv0*[7ma)z;mIK4SqeÜy mDAlT!dr#*lC,L:T6ǵBscT P4.sC a(4`J҉ǟۢBIOZgpcT|0g"LM 7, +7L ,#8y8f_wt +r?;kbg$Qh~W"Џ}-Ozts$ǝ hp772ikHrOM7x舅NI U,b +MT([- G~ܥ$U>pI߱3:.P׵wjY ."9dCs W%_'a*EkV'mX1f!H5~X5J;'•uH +t3Ay 8>vSn(OItMhHJRhn'h=T4Q{>vGD(>̞Fِ.)QU}JOѕ^K_P5/.чddI1̫gH +{.ܩUV o9 o-ČR5`G2us*=*K8$ZITD*txU/# H$iH2Q)$&BaEA$X Xqlr2on0k',db#0I&JnI1RXZpIJX -$QA6rZ$wJ؏RSXt~.f)"CE;qhk@<'zT!I\;@:\|SbHC^A.b4~,Nwj5ۛ7Ud˫ +\S @+mmEU!]LUYj)rrc y&Q&UU|!6&ka\((GA` +ɰ .D! +IѫlݜD I|kG}#H^!0>d(&+y Sd,TCB'&]ÊvN xtXC-Yi'9ZhKM$6?#-XJg}nJoѲТal3RE0Vi1 fE]"NCv]B4@ ^)^) c\Qߜ xGz*UgY$Xge|GYXOJ: ^w鏅5xDޢhr;pZٸ9\3^~Ofg*/X"M7V{)Ű66Dzvre I$ BMpۗk>{yWvv!,빧|8='jȤz '.^- 4 #XEh \߇v.SZC鰧ScY0Qᩇ8#PǢ`D02 4KRH2fZm*ׁ>>3Y(D70b26Մ}~‹B,(O MIm(V)Nʋ(D  6tvhbk kgAHH72 +'­Býn~`[k1Y 0s~2Z=n,[6<)[+ʤQ/ +bB&tž{΄riq-.K%U,nYN r, +3&t`2t$%ckԤZ@3"\ ݈C29IB xHP,DEe'} +Vc%6}&$(ZֆGtM]j ؐ
2b> +938!w3c̆Ԋ$E#< ]u$LBv B<A0 A~'cn6…/2onxFȮa_1eRM6hK%,;]JkZ3u:@a9 V#!u •$$bt rw-v}ݲKQn?P'<ԭRAiK,΄OWж}o'C)s#Q޻Y*\( tu[l,B5Y;74{^6t+$ +ٙrVQE+i@YufX0+6yЪ~4[EYy5! sk&&Z]톔95@]}Tv4>D)Fp"igA`\Wg~ıbl M`kR+1,m) +1kxg x×8oFElЈϜ49tOqYۤyN՗zfkaQ_MusR\/&rl5@`HqX?f#J&0¶!2WVڏv# \( }AÓqL ͬs к/_<}p+9KTeۅYTnc=WHv嶦գ?#% K\M#g hw0ϸXw3: +j&'>%T8ta_qшӧq 3]E3gq׼&\ep. q.5@ ԡjq +}T?OĤ5<#[^B" y;d`!#5@\5~V' ]PyF4e&$ЎM&WQA=-95{-d*|h$x+/ƞk<7bu˘$0JfE\Lqb7gNEBia9(vs|,pWUAC\׌l34גJ#3 (V*w5(st^3ga2PVe2+#&ڽ(AϬ[ؐ8+ +hEFw3(H˘:} d{ӡHX>h>R-3-X8 ^]K߫ ЧHq{ʘM❢!fu@ Aq)}1DRwvXt ;N~e[.`5-W]K (r1h0lޟ;Ejad v142׃8!2~5@MlPb2T.t ?;RzgWY5XVd:AԣpK5\$3 vmer &~aQ5@ {rR͵)J'dGiAWV08;.7=7:C~KUʫ&忒r7F0k19HwhfRĊl1KJA= 4Z\ǯGE..wFX@K̕V!E#xϮa +)P)K/%5'ʱ <$z$tHX VФ%/AZj@Q?\ʨG'eV 9m`sS윩-4EFd s^Vu}! eE^2_&~Z T# 9(Z`5T~O޸E3kQ$оAq{%Rrj>8%럕v=R0$W<:د +PUq?}V pŢJcbHMzSeO!a2B<+@38HDo:' M<_d[Y)%#!Wwl_:Q![~_ޣ{̪.[#Dz#\Ǝ S|c|,S ~Ԁjзjk9+{d 3먖Ipf FJgh N5lkC< y{ʔD Y]VDdo,yY?NGǻU@Qkp\0zGT;~:7COo-ט'5@ nF9ᕥ!q0`* Ǔgbdgt,j#HȢ#/j@(Tp9M޹ك!v帪DK9)Me cB< E#6:b_m½LV'rl5@༨d)`_{Uљ,]^6*jtH٩}b*QggiANJH:gW8 _|* F}ki,Ίp/m&sATҎ902gYR=FK=%D[*Þ)x) w^W o6MwXؠc]K-l?,d#XgT-i('$Bi&hjZb.-^#3%+enDx'-1XK f> ꪐ4+jio|{ :D]{r-d7Tb^Z VoDjE PZ/u;h$ -Kiztn!OQԽC.0u/ 7+9|mS1e @Mnk +t|Q|ĸ:-b#O94[{M ":8UẈ[ +y ?$AcBN][Z7\k殕5>ȯH3oBϐWnCg9Q33WґYS 99EXCJ?CON  k 1G'<~$gu5өD\"`CpߒjovƚJbY.EcI$A^)~5P$ޮ>'BQVr!"w~9)@ݻw1UH#נ5DN" v?xdًO /63xИ楴8W~skޑɰ>鈻1'W\wo\3s(ތK0Pi*ɱSgwHoY:ڎt;Fm[-Π\QB7oU]8#_zbB|/1P52D̎nN\%>_ܙpQi췏z{o]ѿ;oamEFz%nK/ +(V|BU> KҖxT%ɽZ9dW&g^|0)Tlz?R`>V:{ݧci_vJcG!*oeAkh$Y٬ A7caV2(ѧ60֯E<ԛȟxqx}Ѐ^Qbg /IHO4<Ǥ=Z삃)5@/l>%c"d˅M_4V +Bё'ÅJ[.wunLt7fs,:;5,s^@g hD|pP3/RP i!Ak!2̌$~aZ/;b RC^=,_v)9˼ScW)Tct$MhI[;&ƬC/s0dw]+%P8P[Yz!W:ĉGn¥D ը3 `s?|oÐH!z0NS,M+BSN-pŧȒ &ﳿ Pnf[A Sa NQGA'FO,MjMR ȫ?9(~/aB &'˲"+Yajߧْ=ڭq͈UVY$?'$.X9+]s>tu2x {I Xeˋ`Rߚ]¥東ur[ŋgcŴu@p{{:}5C~=ol~c 0.P+ЫXgZݢFwghAD>JD^^u{h2,.7sȀ?`vesҀ}J Ouxnv_\aηi:m&݁(K}qTF(X8*Ip +`K5@ ~& +:t( X;i;Bw裲8a`9#da +T^]ϳ^öH6JYod{W#BPٺXcmW~2k,Tcf1KY ^ig_km `R+F]wXB Kt}فPMPM*@ZF2Nc @ Ie]Mmll}pv, K+~2YuҨ=&Wt0E ]epdp}3_}~p|fy>`PxI*@-;K*or'AAkdyF=Nɑ\G 6,[J`bS/ No/&Щ+fFIj}4HW<x`fapJX'[F_>ZdL΍YjηЯ.Z}Fwm+T5@AVm*T:tETqOyi4@PqҨU\(OnZ2ey!pp >L ō0ё f fg#.tScAk֐P}9Tt|/fBӁqzir.j@rCeS!  M%q{##v6r05@`4rxPj!sR.2#zB +B12J1Ȇ@7C,U+궀{-YVD PNSt*F1V_k7`zg +ln?q=N;HwxX@i"Ӑw.oYv5@ +[ 6 N7J͓焮W'" ȡ*$hς5t1K9h1-$a4%@zr5k@-x")(o)33}RɀK{AQwf|mY32PwJ.iD>R|bfe(/1#_i,u'dahhΟNQ*k~( + ۥ9xbP6r|% Ҭd[> + +s$ˀ͸M V;{7LٜڽK}} +:#Ȝ]:ν:^#_bA&g+3:,+ > 9*=2W6} h`tZ ňzu$[yux\V.a^|$ 2XjA@в%:ת$8VKl0^oFitR`*'[[2T7xw#iϞm Di[i  BxrM\9 R!Vu6Ѕ6[^h>7GAA;Kĵ} s+g+&5@IP5B76z7BYˌ|U [b*3e,8;$a678%s +5ۅT¹Vްx|FHy %`p꿮ؓ&3DVxG91WT?Fy4`|:TDIZvax!  b%gv%lYoVCr<&b܎xgi`,b5s"pjE,K/k̼nA<G&J)iW +E:אcָ`GAxE+g\|ٖ3A^sk&,4@GUȹ@=¨R|re$[rD2v St$kI B$2/?Ciߓ"izY)x X=5+5!~Ǚ%\,$y&b_\:;{rr}. P,~+@sIS3Mڴt ^&i 4)R +(59-p؊{g goPc8A2YTs%ysFK d8 <ܻ^/{yFdfp.,94Z{t!s aȋcrέJ11ie~̝. eh]5FCkvģNK)~>'fYVqn)H0:J-*ޙDg6 xAϔz3Iܳc mIüO-|Tjo.'/S $gK'i0 (SŰr L mZV'Gsŏը'TRCoH]o vXB-H+WLNrh{E|?ttYJ%9U>hLZ?;ޑ+]xVVbZZ꩝-N66nv+>})W0h]b PU훟0N^GM+@޳!z&M{vDĘCF*qTyJ)N)G c0g|` ? +T|* 2,QϰJ{rU)=ņNÀ̬%*-ig~ [)hTS*3XIC}k-j( yM>xj̪\r1j"I$ao\WdF +xIyf7oEd46r0. +mihЖ( TJ1CLVMBWh;PH(Tyb܁`2Cs}Bd,2']2^+aI7 Rg1_\| Wƶ qYtۃB*grpN۬}/u[9= "* MP @*uhMJ0EOőcו(_$ؖ_[kQ IG)%.{" +W lgS>^afy]"z \8F7?`sar˦AUIQcfiPcϨIr1(FɟTJK'Y%y&wA 2bclu|}fSKJ̘2+$^╈ҬlWDp{JぞR2C$蜹nد$4*%fSmR^]ͼx.:](o[6jj,yxnGvh1͋ |>` #<" +p K#s~z#3)=Xd#uah6+!Xy+ĠGB"-afn_uS;|ä9<;rDC2MBo&q=w]j868S0v漼z:Jd 1hMfb Hx*WK, xs1PSE +6bu/>d|u|xe- +Y"cjG`b1qĥ$Ē +&' G2RNFfdHp5Eg[v7-(=œb8}-{/T^ (M4#{Ģ8ypRV +/0 r)8OWpdM*HQ9x4'ħ&D>n>c 2ڔby,䄆d}8P7̑In 0o }x@c*BNpV'5KEGjr +riC0[wh4Tse).%&Щ%;#& h#Uv׉5>™3] /6d k>Jѳ%Fʖ,x(gbS4°G%b$ZxG렬,9-:yEJ +TJ.^橡$y)}!\r~@n]'=!sֈ$x X" #J#͡,{ˢ37 !UOl6+ +?R;>ţЛ90Oc 4o(3ZOFxƀ-N,$/o'Rخh,& ĵE0_?yav) wbQ*1!8K_==l6w.hp7$1yɔ4tҁi Uv !" Һe2_{t<9^w>>,c*J,p_0n/N=Z&2!]nN~jq^2r5 /a2R=,aYgNK>-Gh>QSѰ V57b<-éAKBh89= +l [#:2=D픖d}m2{Jr0oXH̹EWBVG}| -Del=JnuS0|v`ز'a@ (~} Z/re 2%Y8%N%߁YS׾7pN-XU=.;Y&LP_~$@r^7t* QJ֏zB(O,ҬƾV&Ҝm 95IAdiW-9mD0܊w'$ҴA=mq=?Q1z7/a ix>J&b)u]vK x^fl349e>#".~Z!'@> EG錥w^U"t Xq68 _S.|>}xKK2X!>=\Gr` H*RӖ@T͘WUf1BTv8 0z/:ؤ|A#Ֆy nN _P9g~uT$J9SWB\$UKT>~7-\B*5J֖?8^0O"r'zZ5Kd_)N5D8\lvifjm J + /H%YDb~Ia^uG}>()zY#B|1! mDc}!H 21㇬ X,z(^24 ݐ̢܏/EHsP=CΦs)+E{J8+ Y"bL[v=Sbbd9+QIVV +.?I|K-rlP lX`25)*aǝA[$PcW,h9^.Zo/)^Bu3mX=ǽbq`Y (7iY#4p"4<\pU@#[|H|*8$5@`bZ.rE€:Lʚ$AͰ'ǻA} +A#VȯJr_0ɡTIM~Ah絜|`j@c`>K +g;:hjR0o|%[^ yc{Cf^jx 8qtvblQ<4@c:|P}!n33YtJ>QI!,C]x}rA_O:6`m/M?ANYYn)TB8&-4;ɹ9"up#g]Us#ݑhgMaj)EH^':nE.TE$aPV13 Oݤ篹F؜b܄nq + pYԒ4ԀU./QgA0 JK]Ӊ5@e + +cQ-++.P)퐂-+O 5.]f2F<<]6Ֆ2< h=m3]b px\[uC/+ۅ괐c:nOB|_D.2e]e)oeisi.wBVOXNp,J?9<f삱 +xdBwN㆜ +]+pZNtCr/uBOK 1tD4|zׄU&VAaq*#\눃.Y$9?q>s#/L]Ŕ]*Zo +?ُՌ6[cSS?|J9$L97㱋Pg`Q #Mvwif46[L!r62i>|ǰ . \9̉Sci6Ӏ7Y#:: (Uo 7 @2:*-ITT`!aK0܅t4v ?]ыI IAoDޭtfF>g!5VI%6KjT;k1Y#6]\aOq{{Y ] ΃rkPd/f *^sAC)뗇 'CT<ڬ9Kꧠ_.FS[DvAR* ad5f +dmq$'g41HQ~/R}UN``:O^ +mڝ"K+`%Ir[e-pi/)~0Q7E|5l%Fn-6[94MHu(4$"9*8j@T8 nngUXM Q%od0v@2A6"]có,}o5Kz˽Xܘ-XC(0 +:i{@ MvcRؑUA.ʍwXwoGtqP +Ža~9M1]Pfn ".{ڱ? f\u0}R9*߳&Ly[ԠxR}R =Ό&!A6kDzB=T ig֬:jBZ30YH&۾V9톛[["awj7Yv >=_O/sk meG*sX: s3+؏q +I[LIըr ^ώ6sUu6K&0rJ_j̯!yUIS oGHdBK'o+NU2͏ٝ[̓[>]ZeF &LeH .۳۟<4@VǍh]T֞(lMBh d_||yJcCX-p;",W?JE?tqU`{߁:q~,)~ujY\ɩ.L>8H <6GG"e}%7!^̔!t2  (->%u$LpwŞg$;^nf$f{[39Y,TSPE=Ҕ\srC]5@D\ X-lnh +@A7σ7V:AQp{?jbXZ5,ڑr?U"CdYgHJ >Tܜk1^ph*ˌV&|4jA<j(9SW &'*Wmɨ~DgY6aj{pV:Qm}zr0T? +![/lN! Y˦(49SVk 85\|P[pu;v +@ڙc٦7jp'@T4{p!ՃfwE["CaUf@KLLd]*+Cj(d6wPȴ(nUlR荢buj3ELE3YG|( cfu]y`nCϖ+TX )##{6PLFrq&W'6S^ݦ#v A  +<p Hܦf[ׇO5@A87qJIl|bq_J( 29u?yxj, Ŷ9-a}Ʉrنj-Ugl 6 =)cT'y@H갍ÐẊ_)Rf9&` !;HKWۂ"KVr/YϠȓbC$mIA\= ! GY;qxrC K'[E*Zy7 'E=S5@4_RWLfXH#` W89YɅ 3 +1SHPؐuJ_Nu(s퉃{ 0(L Z{Kn2I.a9\GkKFsj:EXF$1 eQoWه|G.:$%FTa *d3(Ioa>7cѨ +awG\٧3C@zMҘetT $ڮ$`֏ѫJX>k@*D5aLeyhTm?CSjO֮RF&]J|ZXX"a̩`ӠE)R3١3/w:"B{aUj/K4 5fG).--4m0]6Z%yiqY"2,~Z +p_&cA .w~ A<ˁ.J)lDtdbbs;:b=6H45S +pboΜLd#4j׀1x3 h0;}^IⷕuR +i՜RիFZGP*S^; )+NNsKV}Zʺ1'5I(eӌQ{^/5$9f +z\K=TElqH19)@XłEucGerM~Z/܍UT1bB;'M1y+I|~.>j=w!rڅԿb"O()܎UaۜL)%;ʤY)+-`5LL<<'8C*&17S~xv `,H,&DY!%W`[m:~8 Xq_aڝ*DbwIu7ODdtbˎ|5a!ۛ9c[@6,-ڥ'|R(G }U3,הIK`0V^Ձ+kMjEZ8J{~g(F[2ưEI]lv"2Y95ѐ5QCdt+3,Qze{幔h~0oش5lb}\]YǢL%ps ge-RR zȚC09GA0k$pMɩ3J<JN-GJd}(a5A'צGZ8"(~A/0&h.E JUIg hKǸBNo%y3R{ayg>_ޏDw4: h5lJʼ7 5^ZjeZ,,xDD? "i-'eXtYMx jB_<^']Οx(I =#sH1矒XeՕ^t4Zƴ;»O DaxMzS;.8!~].$a `9.fo(f@꼡CGfHKpP5k +LِW Z6x<PP㡊y9y7WO9iޓvA NԄE`K$7qJXfT.Q L0aT4F`*B@>[Q}h$2ȌEQywcg}h=TBxG͆Oek{zHWN +vԵTj?4vҺN7@y5Dǐ|0s$hPBKk" 8t H ؝3fEKTeW9|&GaBKވ+GRΕɠx+p ﬧu!JM|<^83{%+=.6#VyDͪQH2(CNhAOHλQ%W^$%0vQ#w9 +`&-zdˆÏÆPNrJth?~ki~aT/[6$qA:7,hk^ݻbgMs_fM J T]I?,;24+wX;ﬥ̦%z#Hk@Yfv(IRC`rܜ̝zjM +o\zf({Z='N>X.{Cu¹лúE4$Ur,AxD7yP.6/$v4]pT )i5@ ȩWz;} QN95`"=]BWduhxsǂ +$Ac_  +(\Z[lYФ> ۨdXnQh(5 +0 v|ƴ57۱= +u70P攉x2Gv<ZV3aVÕ^x7_I[!_ n|,|n/*_dNGM ) ,AkMp\+6 ]dž=U֝$0 rGbzE\z&{64g@A|A,2, 3kљeLJi1o\wYCeF+;p r5քA1(O + +qPxD^kf=k@[o,QJY\ ͦ/:X6;=W3)&,c9>霮 +9<] +h:?obh|=[ f8FG\V~^GF&ԡÃϒĽCM /M53V(EAкmWlTkc{1iR|H֓ & H.&+}>FB$ +bcJS0} QZW4kPX&=(Ȍx9#jEs"C95*ׯ(!`w@G;1!qZyZ5lFNjc6rtN[l +ypCdL*]J@Cv*F: "c3%eB UP9kTO"pm-1!׬rJ܎y{B]'6F𫥙_ʇvCgan}`Q Sh2O). PRg|Qdѕ֓ފw6bA7}g0X4@!qEhd"2#[_2-GSit 4@/^zڃ!֨i[e#fd0S$!L ɥ{_|vTMAsJGM>Y:~,_c3gQ'v['L;aZnofK}݌٠KAizFex(~]b$8- OdYc OFVgXb4!ʛ}R+s'>c&|b +_;~~ "0QO5!e@1#.4*( *6eֶE6%'w2\~_Pm0CS?~_UˑX !Xf a3QHJͺ`.#?dS-xcNƧXHPЪ5sm`xBJL)YÔgD:,Y=\:'m`t.bus&݄x@Ig >(1%v`H[IWz'cR/ Z瓔$Ph9|7tߨ-S)޹O񦄹%D-91bxtoX{x,>a"UJT?s p~90+~Q7J]6{\P^E0}~ߞ$HdA4<IPW_);;G)! XpDiIQ$&;JϪM3{;g?zMXCiqY ujB(5=PNy5+vďLX/fpe44@`5+$4֍Sq^$0}5tΙ6M1ɩNB'7hU +95AN hg  +}T鈅nao/!H,$$EE2-K2Fu7·rG4!6O<CO(΢l::8 "NAu9'VFm]^Wgs'FH$11H,N SMX4ۣ$QrAcQnq4kj~,ݪ>ïwbB?:ar'u"hl9JksFGJnc +H$°WQv 3-! S)5 +Ak uiiҽyl$?K{Z"şpLLN_S]i-(L'Cp fӨ(d:m<21$l +t=~F4Z!"6wd=(1ʸQrKқ&Oeehl%b ~%Ubi?5~jvLcX2NyHҽ\{*,9+=%c` +uz^SU0 /) HEq]*uԤչH/T˭w<^4L8`߿qнEjTcB:TD zBBSj:UHX-.ߤcw%L`XO)H/K&SaaK_Iܵأq2Wskj(M~TZ>+6+npIl9 r/*n0jÍ'ҡ2Q6r7x8䏭ɧJ2C8[Z-]t v{(.Dʑ,NZķj^)earj8 }/|R<[Eq1ʶҊ D?cH0"a"8C Nm/(99%'8}(b>D5H sJDI}ĭ0 +v{2h9 u)%v0gq^|N͠ԿQ[@+(ˍE@ioLc,]\bIxp^!o9YΦWFO"E +W +? &(w2c1IO<*3Ǧ"!6𿥈5Ik!zٍqyG%өzE .Umq[ijX(7<)V`T"k %8uCRd; e_9\ @bެ"7L:ߙOYiDɗ?:zP˅jIKssvX[Ad$3AACg]Vi1nQG%D8x~d3I1v? *O&UWW Xꦌ=jIvńҝ"."q8 ;Ľ+ӥG`;+Ջ,@2[Њcu␜UU (kqVj:/#1w ɇQ@j|*:΍UE{1-KMI;:46qaEnmH-bx2XVsR[衫H'}[Ϥa"yTcYB5f6aG4-6:<_/-0<*ȁQёr@7r%yC]&J=.Be ^&WTY[f#;ld1r.cQ")7Tշ> wyT1t6$|DhW4ezx 2Ԅh1ĸ/ɃDo1hnC9m||K\nEQ-'WghʛNj:_/m!6(ֲ_{YԈǜf^BJsD qi*o֌O  Kq.&#q1lLVt([‹_TkGp_]Eۗ?رҁmMhKqQ :!4#{SU][^rƆZדx-TSZ>`W]b ("\(]L)xnD a#aԦj"y/ǡQu!X1áX jmAi5@<&"AQW9ŠЦ>+jr!ɱ@}PIR/xQ1/#w{K +sfzJhӹKjuTa +Ii1s7Q$b?>=Y>l3p- E"2xi*҉_9z&N͟do84@d:QjbJJ^UbNnr0 LgPV0ęPe| kJBq1#$EY4FHDju2ཡÖVuS/sޯ'%'xoSؙdƈUoր셀R7=HG}-i=5@ }̄Nt)D]'ҫij-s5Ex^W~+ Z7e^4}uw +{@Tm Bfc$k«W4PB$KzG8֋6Xԣ& eR]XJ;h22fԜby 4W  M;[ խWW4"FȰ`~1p &oI<"]AŶBaoG^ތE'ꭳ?Y 5@ Kuw )d6b&a@nN͞MVmfJ`$|3ԤbI+8J)s7pm Hzjhxr/ 1~*}@n M(<&s\ƱoNܛW JWD8A0g`<n +HOI1l&BjYZI>2=T\SyYֆ& Ђl:Xf}4Ns% jJ9^/1tU)>]>ar@ :f(X: BzyƋԞk K俴Ӗz=0"RJzBqk5>I,/4akGa L TI_i7vcM$/oňȹxC] "`eRӥER> +oOAͲ904q Fm{l:gǣjJbJ.H̟zL _96v`pk:CZJc%2j#rg;iT%,)HYϳ%V (UҊ Qbs#5@c"H+iťAbU9Kqu.qqĩUlm_L jBK>~c)ZP,O/cn|*p PWŁ*kU.WcAA7t<aaф+A.Z`y!8!JH0c]]ˌ$aB8LuT͏Z ߍBAzH wl w[Җ"k(M7RiҬUO&U[V5F5@)BU+Jx@\ߧ9"csCA~!71|h?3Rkټ%c/̕oEԬX h2%nCPMqxH\:4C[6'mРT7<:xdh8I  ip1?]ޅdV;!jEq7I8/Y UR_9Uv|D@&O{b]բ=5J +( +`gԁ\VfkJ/c^1"@~>+P끚_K(͑HJm>Mдݓ4ZmN6hWoDJ U8c7ȹ3e0p4GRO&~ +iDA1j3:E"0LJ.5  +:lFhQr&D9cu|C1aNc) H>p1aBo)2H:Wub{9 mf((X)]$,!Y[DL VVܬbY (Xs܉ VЧy^.ȉ/sΛ@ #9ە ܴrZ6Dq! m "@<A"iO5@8]ҩsTk !\8n=ZBdߊDŪ-ժoq~nDK}/Q[cW7O&]]݇v]l 7QGdE泺:=+dOs*ۊ!b(Co!at>>0烥"2a:ɨI9G +TɁ(pP2j P$bE\K*PV_6P"}w(VƦ&~&9ġAmNE,6ajPh2D_zH%ORDQ%pt-)OOq,0y8[c (uشei +H &p-<>Abbce>,$CDqNP 'ӊ 4@Ef@Lvmns9jOu'LZ  +gXm +endstream endobj 20 0 obj <>stream +i QTžNr39WXA1tԕT&lLb[n5@`)CH#wƫTjč(8Y;* ,zrQ_|5EXIiѳPЉ)Hath|U9p: {NxX^&]BrAKt&C;vӯ6Yf.Rdl]ة%yRj'rI. +h2)9m1ҍa8(AӦLH ](V~/Dc"r1^Xk$v|!xFɯ%EM7>R\VJJQx?IRU-׽ڬ_^>)(9B!Q<e>pU&fE-${[1 .-Rea5Z*Йx9$uٰmK+:(I7 Xg$ܴ~C}?Vl#TJ qRrÞ/^tj8HD N F6./-SlE)Zׅ`Vb]60) } Clm9$$pB#g0.5D2Je% l% BPw[RoOS?+4ٞFZ<8DBy~43!֚u_s:cRZ Ksg#Nh:Ltm y38 T~=.%DlE5тcfD5$ZgoZ4)ÒddcVRs"gs~㭻 G܋sak(uo ,tpLMN;1qVB-x=g8id{Cb/s2պwdlWgtvj dAԜVH*o Ť&bπКBIb \!n6T"ՁEdiIkpg\kpsDGł6kP'3 !B3ڬ3Et uXB='4ψ5~v)r& <1pH&`=9+çhߟrrR)DG%q KlPy>H)7M;T`Z`bO&o 4ߥPW9q]0$0 o^`4|8Hr`d(h h7G58Z=\4QI=>ˠpq\Mϫ 1(eL^Hr &u2ʢXil\աv e3%o35e?id#vLY]żӕ5żʐdm^-Ӎˊ|4 pdBU€Tu(k/rQ$DAHmc@djeQ&SE;Y>@80x620=PN%;h*/2Ʒnj(:LYYWR׬׍CP <G-| ? [71E _R}5@omLAkeqEuW$r![vaP,rEWԶCkJO$/:\J?9`]A \!d `h&f LAĂNj4Rͱc';Y醛lO.ګud֞0F(ÇB @9]>=% r\ ҶL3ss)EG33}D_9Bp& +'#-?B+OFdQzbOG̝D'sҮvNLXŽeWghm8s *8bK-hd`[sCi شg,^T̈́ a&.B!-z:a"ADSw]:T ݕ`* :%}+6 ,27l @i=ܨ|o9!.>&YP6ډ(COFcOduWIF3&U:z!WsB +Z(ĩotf^dK\#5訣(%BKaɋHA$-ݘTJek_ Zg<)ԫD_CJfk ۠TQxu"NNgT;thª_b6bws|QA #Ervž*^w1SHIZ4Ѻw[K5@FäOT$R,`5Yy]|H. uAJ\,),$ [A0޶aHv +dd5@ ,(z|"}h-rrEAsm]qA uM #ZrW'1o>iD&Xl&gr^R͓ʨ'1;i:4 O . ̍ [iՍyƝPLt&vaoA9Q: $&4Z3}w6-vO(\Js?Jm$c A9C$zHq,oaP(9G]oLLj%e)Q\/--dˮ&=`35qFS Se[(cDLBmu6Y( X <l,H@HF2oTeȕ+X 5DI"N5Wʘ+{c..[DBpFbN1Krb 6O` 0@P(~j25oEj&M ױŒqɹ'" 6CD%, Z](0#h AV@[VmG^M +`V!w4w@[>~H}oX{!75@K,1>h BB3aj?'ؔE.&PƷ饷q`o˰`֦x XScHz],B:ᬆl"ɗwV)XĺAfbsxHs'rzGt] `9 -5`k7Z%APiٟ udԱ)F7 0>iڑZG8\jgƪr5+B %Nk.ODqC}7/0$UB[ϫy fSMtBhk<)]Ϯ )ɟX$| d_Gy"ؕ*=̌/8{_Gl E1&% Z< 141Wȗ]TqFg*4~K('kk&Nےe^9JrD)ĐC\PFUcӾ`-)=SN"sGk7[m1 +1EP3`č& +e`mKٗJ r + f$V0Xҷ# my5EWR.̥bWff>YO8,[W@\8mz5E[/C%gPFV ,9GaDb +~a/tXMQh0;rQϔ}K_룗R@7<& + +I]njr9ORԃzFR#VlᨓkSDG=ٙGs5{ (ќitA3n4Ω/͐Gc +Lq;USO$ٸC +8?15 s09okB~]=B&jІaXQ% I VF9>K0= Db- MuR!30\j Tճ󎙪|\Fq#U֬i FsGg&eQ>8iAig[q6XB; Ef poG=l yLM'^L *peQٕ\r춽;l_/$cS}ȇ̩^G[[35 m=1zW%kJVB;Њ +cF! +a` ΁,N'xޒ$MRwlНrB.%GA+DxVOiaKaRK '>㹉:.UC밙.5D9tB͌jISt|e\ň!ĨF7xMCXDk[&n*yB;ko*i(FPv|Z\ jNt z.Q?G.m#xl{D |(#4φ9JgzX>op)~?Bgfwy^r )._]mM.j~fmQKtQE-jv݊.h:Ɔ;AYBQ 5jol9i!"Vg B\u }V$dR,gyt"_d*/C*6 +)D,NˍlN|(Bw߲Bflԕppxgt#?R;*юX54@@A1-]0Yhmxj:hL³@/M'ɋ7D4xP_(rD1ckѫ9-Qg#oAiX^el^$7^m<&inF,m-ي'al b Ga!H%k ^7ge rKî)Bʐb,E1#9RZƈ%-enT}-y]O#F qܕ/*ZԆ͢xIZ(DHR] jz +ݢJڗegz5@n[+i| šaJ 08Xi}72XB*"]O R,ʪd{y`U[ HE$^.n Y!MGZO_!xKӺ)5<4h6E{OI/B J6񓩳!hecJhrloRQK)ЙZ:oxvRG +EyYHՔ_W[ p7 ]&'l}~Y`jzGfm̭e.̸lCT +W$"`pMaO/jWlQ.>4@`$73t"O!ԉ )Ҙ\'n~؃nzkB688Y޹>2;J(C ۚ'Z|4{ܣ#/2NR/ulP,unFFGOX@mdݏQr%2)Ib!֪o/풦=U٪?ɠA -?kdIkdH @,Sك +k=ҜǪ {b] 8@x\knԀ8)`G!e^k`Pvp£B3dVꨕBv1{qf$(M=Chei\e#v)=|lچ[{؋DXW$iVrڴZ'P{Dd + kq\S ?ddr ,ҖC1B~UdDE- jz+%yBT*cW!妓L S[:ni + x +Ɍ M֗ߠ=uC~~I77} X$D:.|e UV-q[[Fw; f=0I;ܽ^&%8E/pYL#N0!u(03}s GK' ͧc-6;ކbQi5@lp-!^'BhVaK8q uh&n=2:$?!;pq % >-hu©'z8P7.G.g/Wwi^h2&y"O>O3l‚UR1>#W:Yck&%sԧfs.9+}z+1i.<-!#ۙGP7s0uY +|&́u]GHZ`>}vZ/Y1~g/rziG32BQ9egJxo +#A^ ҋ,:^+#cا kb nKӠ"nh B)de4.Lké1tPHPbWe#~ =U5o[jw-㣗'W 5@ҋ%xZqSPhX:%Dud%M,V_ʢ4'T>Ln|w~WS&6G +*٭5@cr漘8fI(I?|[c`Ɇ;=BL ·ë9v]$SgѡؼF7 ;z P)~+_t1x E փ/&u)d-I:Vu>(创Ww3z+) +Mj5@@⬌؞) +`YѮD0E_ k{(겾zx'"_pkVճ/v5@W* -Fu}-7~|l :GkBt8;ev$!2fLș% Pki@!)'$$Ѳ3+x$ONè2Pzn1`8n +8aO 4 p":.KFz +8y3WkNތe@`^[D\wvCRo 8{kHc!Dh +c&06hkH)@Z߆̑LPFۑ(AаG6$QSgVBq9 7 +QB'9ʦac2s6קrڄBY\Hcj(@ +gJv uN3?}¦^Zj[2CRAÈu]jaUq?hDAw5@IT8dTA~{8CYcgoͺJmu!c?ִ <^ztNSSB0 o +>ֈqs2;#/*4*5k7j-3VSjإ 74@e30vK7_\Lony XcG2Վ‹/z&4Op j:4"uFĺVl:fjujDdv7A!@sSB}/¶ǩ_[0m[yr>>[ˆSC'#~学!ir@,X;SxQbfc𘀁$H-pP61Y p$Ӟ׽+Q(^WБi[8c[Ng4"5˜ %a}rA"rv01:WpL4%qQbAؚ` dzl.Y +/z,P3hك[;AC-&-q.+x[ǹF"tܚ%&ĺ5YcѲC5@t%4[5F¾6;NW"7K-ާhx w6kZeF>,\A(+w;Sa̪v Vh˞58}B + Lh뫈PS̺g q]JZ&Bs@Sո1Ϣk[-_F# O+(Р}dE݊C3%h~@H ` nmWj "h5!d[u]Z\Y +ؙ4ٜh<$Swc+6"N +̋CoQZ=CXrN{R?΄ RD޹&ܓr 39k a22X5v![V{:yVIE<.v.Faըuc䖮MqʃAQQWkǃӖֶI:P?]cР0Eq4 b`M4~Ek$6XJzS&8 mjKHAEG_XZ M!%r隡[@\opj3<oer1z2me9Pjk=5AiY8Xn:ub=&lE Ն>mfQW؝dvR٬Q"T& 8Y. M&z5\nX8FBQ bng1H?auYWxt_Q}ME 0%l0 r!!Ni0RG;~+Bc9}ϓlE-s]3ޗ5Nؗ&sD+I \&+k!R_7z2vcC/EdD#4S˝^T䏶Zly3bCqZ +u/kbo"',oB!<#pe('Lܐ_i ##qCoI8$LWo) !_hTXnR"Q4avWV<2cл*3}cCɷEcFu]j4*ܻAKfGM?krٹBϋyڜp>@lt<ol p"3h24SAD2hgc t뤙ȗL+0 Xe^lt'[H0$uj`0` mf4CEEJK䀠G]Z8Q +%u ^038s 4VX@)k_CH$&ۤСcnwqjJU.iM^ }67M0ph  hB١YKdT[:b=۞U.. +1\Z>At:õl%jqȄۢ:}JUwŤI+ig˝`,H9~Gid Kt 9Hk([`X-qN4 *b€X; +heNGTBһh;o 8aȴ$krW4ޔ17Arm=LQOyo+p5]5 +NNlR񣁈&4@@Ndp|\{`0xJXvRerH`. i da2Դ ktUĥkIǕU5@Sùָ.agDwoHNQv@o1[V GsH( b͛1iICGԥggxx)|Bc3_9a{TFbKcI)6T'}vI(<If+ ,I,rB· ⻓%f)b<*d/ Uaqb9ݸڼhfTOZN+)SN|ᒂޟ^T76&rſ8HxcqCcֻ@ȹt%V!%RͶ0ohkc ew#̭5^;1xMJ|ΌK 霴;Wj3NK.R#H3MDt餾A(l/>##+^?:cΣ9b!ÝU\]f?Yf K(ans}n +{RJ`3am ]}1. #  84%~F(/,*^1 D!][EBo +TfCBp 3W>8p>qg#^RO|(X-Tm#f#!V V(\᫈ ճGx|(%\ +YJU7?>hd6(Bk|#8P-qs {yYxn7PY[Sa,XV@KS(a fm,4@'7$AM9k2-[ h88⣻6-c0pX#  .\ۧګ6Wugy^UN{HL8gMh-pt˖xMDgiٽճ/y#CLjNB,jl Kq@LB(6t@6J nDaX#Xmyv" q С8eaQ/p oF z C,H`I"ZSFLYIZt7+_&~W+SߛɋY6jkV\u7[5[vP_V%XL +z3TFkBHX݋z.v-E0\9ZLͷ,B{$ܦ)ﱅ1Ɠ/zYo/un{ӂ#Q-h UԓuO-˝;p bLAB$3D* F¼]ba|+ ff~sW(ȷLXrp5D `wmqXf ;G9GA+Ɗ[ nV>ذ7-_O 4#8pI<{=%7,i|.{5Q؅؋aZA)lVuxwXveDyྛgxR&|!טUbWLm}(`tV.U\ 8eruW䖘PA/5r_[x "O8b ~{ohns|hlElKO9kr; +TY UV,Efim|}b)$*%0QJy@FRh6C|6qKEJ%+G;<BtlptɍHcQ-\(g M$_K&j8g]l  VUBDFw?& ~ %l UX~Er \U;Zyye7"{˩cD qCR Md}eȒ` s'S/ZEʪ5C{K@[;ֲmN Iyž +I)˧9фwաf(cz8b!Y"*Ԛ]5@ FlF9ˠ}!H\D;(12ene,bL5H/-.TYSOx,l]@73nMOUHͫ)AL4 Opf(w~+2]; UZH0S_3`T{ Gx5ƹގ7]C_>FAT%;~ Ɗh*;B0! ==FCrzONb7^J6d]1պͧ|[ \6 MLؒcw'I=ĸJVBQ p ^:)K瀅K]eɄ BU0Z8elHN@,^VŁ,v*ɂURd<"3ٙSJ5@ KZ)~P4B/&=M81sCx$ei}%BQy/^JI^ OMT~vV]n] ܶn56<׫U~ ׳ :VЕ6qA&< 5ߣ i2i \ҘȰ5@Y$҉^qc>V)?Zs%ՎisRB1!U>&)1=jvaأVAcg #z#VFiUްJ?_'9WhgP]og:Pz_2[:f +P[nPPY`kX:j^N|c&%N%1'I4oa2] l+_Z =E7+/KP1Il!&k[Zi5`b,P +Jz{Tū8`صl)`Ek* +vK- ًgByHo$R.xA).m2q W%w㡳PJ+a2+B,)gP%h<MJpχ@aG@D".Rh@ʴB_.qW -6vPT7-`X&~ +nubɈ}y$ Q@nB5B ݗϜ{/>JP@,qc*PcE9n]gkzV { ?G_l.6 b9orI }0U[Z'.Xu\ u&Ү A_"xaIel_4v|" ձ;(u,I"l3 ڮL,\@bdtBo@{zirn%.:p:AԞrH/D舞|J ^j̞= )%]ըFpS}$ c*-;W,)PjMEȄ6w.Y1>JAޅq)P2;'3m/Ҿ8 I\ mwöZ# 8ֽ~xLqkHA$SM" rHgGJ|0; 8kVt2A?1\ ( Qi+]z +V耨AR+#9wzF<'+&n5@o k9j@- ~=d"Ĥp +M( +pxz?8 +_V9_v4֙ R2\H|3d`dT 5]|I1e +(QY9g~Sng #@n3{91fY_ɤ4@3=Ug9C0Ϗ(8D qCsxP•(&HKJDH(+D9)jR1P7-gYR_> cd}dϱ'a-Rc]۸jsDzO +""_&B ^~ڟ>.I}A#nR (q VyI|mk|$㤣JfX$R +!#mHOfǍv270 yPҮK>s_Ecpg,QS:"/A*MzԏN2J:ʋ zwX77ua|Bn5((t$]C(ʺvNOb! Gg'N'6"?-tj +XAÔ Ԩً*Y](s׭Oi"}0Hٻ, 8pEn7*,$> `I?%zXW)Lе1}˜脆Y0(w~wQ'|[7&3@ A$a))A5@_-V6tvBfw!Itg2%ok, ΤH}eԪ[i}V Џ\<:xlҥ!ܧNr\0hn}9\u ]>f;|KF}[BFWY>sRS, y@_Ì3|M]GFzDeZC t#JnR }Q5fܫ}.5(R?`;\!/1)'5-m4hsfKɼFЮd2:aBECd{m$/̾VgzˠBzj4Z>k{lZF%R$ϨZJyV%'PB7}}.M!5x-d'b&z/Tg#i5@|ÇC܇7dE]-h=G'6(Ӯ=VAH9Qإz}ѥG%tECp O2Q==t2+vÂE푒Bwzep>fi[aBaIp8oh9?yE_wzByY\d2ϲFʐ<9[E60Hj<ģ7B+=[$NUB~j)QMN!׍^t;r4ص%jWlxEk/R Uf +tY2$+N`\:;i&Huݍ3ѡM3_P` |gDa@x*0`)'qrIب@t pI7fMQ>ts|b5@!L@! ⓋO_M06wv'/:F)͢8_TDQ(p(8h㡈>0,P +-CbbaG &ؼ|R-n([8h-`xJe'8! Ŧ 0و =myu{ 1 Ni3? V;GjHͻN{wGxjz1I- +!=97P*«1m)t[Ģ oSYxvC!j𰬦n?42؆| #a js| jFAݷI,A %P:޲z^xrzuf#Igz|JwY#Qg->X&e*guY K΅DOSr:@F9)@cw)U+66$Fc ?8/yĔ2w p3p'Z?R (Y9c:&D-Bߣ872W? F|ҧZ  l݂LEe˝Yau;ࠖ{naE s8,xAEx}0۟ZbR ] +a aySC]U @,z"2J_V&DD[%q1T ]jBdj +o%⽔ִvU 6Hf7Gˇ\;Mɤ ?-) +1b=E:79n îK&bwP*:Ld92l>33R6DΫ6 / i}P#3`Mmc(  1bɖ6xG&q,lM=ƹv)"Jw=YhVF&#Y}k wqKةN+~by(ow&3%!>s^:S;B>KsxleW Z3nuA%_vG7"PL--dXG'+"f8Tzp `bV׮[UJI;oTשJd>lRph4 +88#D h)"@dRE٧*iB;L1-RV4x#==hl6?FCʾM"BtNY1)L ܻqN'8a4[#bp(؍2k.İ}jpF׫L>AYY͘4듺B +A +Rt @ S7RKEUpp04R2E!,mӥ皽DEy.7U)M/pv~' wB;.rp)+fHPJUL";%:{0 vbmQJ1ê7S> 6!.제s!3O2|+6 ~0|(SamlU5ElGs;A+Z, cGG"}ؒtR1|d4Ymthșۚ )ʼnȆHJgĜB7Q-|Ca74fM#b5@O9dGo8V}oQe6#4$ KmCƍ뎘 fUz*4&g/2|.֬.?! V F}MgX1|RaWLvwBz&{B3סz!i n P`6? +8ii#0pe\[1>]Ƣ˼#]q| +ng_FB"b/Qoh@#4#%KƝ|!|Qmgw$F?^j=QxPIqg"a1!oV^I(ERk-sJ嵦fт򬜑Ig:YB8_& Et)?>_C{N;EF4Wb?h $?Ci- F%ӢdCCt5˘֬ECP@&޻:ae>MQ{2/|εg>ڕ@ ȄV?zkqY͸1jxcNTof)?Q=^Gu(~B*-q=t&W^w CUسs谨5@rI^M.8{sWG٣(>3eۖl_Zs4BѷZ) 4کR&8#RUۻzϑp+QIc?&@-¬,sd㋀UYC~M(*}gvɩHXQv!2p\ +Jʉˣm|UQ"GM,7l-rm'ňt舶\Xl p):'u5@`~mGp';`}O9+;6݅IHcLz=Kk{oyЅ잧ʳ#D>F ƢY-<bi Dӟ{<wS9-|\ΤFckL7 3λ-7{jðdh|i; M[r{~~=+B5`;e[gtdcLi5vU3QАpG.Yy$|B|3o P@,x.}LiiiϼXJ'<l*LM|r{IO4Fy#OZG^#T*-ND|8Y̖ؕZ*S"v4 e?21YkleS' #MYʉ Lqk@~2"2bȿc[>FK~%i٫E&?<sk Qƹ :0 Ķ뎐e!Vd#WSS!-nq&0AI۱ϊA%NѧBH(/8_&~Q\]_dzr[O4z~B+{GTtڐL䠚P2%wsu"qГfY#ODFi)*>ze Moe+@8ߓ[gAc!QLklq;+yИ7%z?!IR2G̴&n}lE煖#C;+U,ugI&պGȶdފl2 tfc"^{g0#Χ2k[(Ӊe›1$>V7D&             uOP8 +4`ɬ3a@d:Њ["[6ӑU"_ZjsrP5+Scv8|n|~aM)2`Tm9(9¨?K/қaFLdRw>Hwb`BX!J UNG!yd,y us}kׅa\cSN4iyg!1z6OeiZc'kM/ӋKE: s™8¨WB3f'|UϤAOz6%-aR&/$*V~j"4CHP7׷v].ɧPJ(|5șd0G xOd>CQݰg\OcH%A[a8=oprH)O/$ z×:5@2j01C:֮ 9MfDXCfjU%n{T* [()A2$>-Fɗ򽎌||Bn3T-hIUǖwv_ͅф +3jV. V!k !dc6'wI4l 6[-8vY5|kkMu0zFҁC ,q%gĞ䓉5i)d&iv('r b9iޢ5@m,be2Dc[S2)g%3ua8R@pbiisi$Je\pS <={>i"$<N@9] O1Jt {C\ϊZ*pÂ>K3`۷baS?`ubt!qu8e# ǨuIR]3 Ŗ2`; Vo ccr^9KIwr1'iMUhK&6D݌pwݍ>E:+wKd֋œu'a δ!_RDUT>F5W]t\uœ<_8hIkb<#;[P1H^ȞP | X|ddF ~ɋDݬnrF +k$_57%SE)O |ij +Ao(s(a pR'\u*;OJUޑө"<JjAF@']D-V17C/M֩TDG!P9 %X,Trl>_ ꪗݑD.Lb .&%YpcE^żf;j{ƜVND60V5@ k$=Κu54%eΎ"ĜK+WQqgZ&Uzfl4k¸h!\}`V֪V8*ЅgQZ "̉>vr<_[m[tF"W q|MOU.9MC< ͹ 3*:)!wiK7%vl\jRD.*ZB$=5}x'sBXe {YXpaXGod\%N&"37|(~hm#CtT7EN-RpKͺDT?eE"}5@`pwtiLpڌz]qX$G +bSU, 6Ԭ &e13߃xʏ[.O1bH\Uہey˔=L^ r{s e':CEВDla1jn +H=3=D݌ %I}- w[Y\ 99_O'0n+ +J5@%Ǹ+mE;5tb_LT!Jj֮Kػ՘Ih+X)S{P R-t@pog)9xW?aS3Ob%V%fEF`2!J :`З0)߯)~WLCikyو./FDf,78Vj&%fgUoԲXg $%K8o`:yO"NH)Yg8`Of)^yO\Y#RkO4PM{61:i}=\Lx9Ji]9I(p\f?-AE_*Pu!1 b Q60=~=4 ei6bE~#]6!{-y1C ,7 +F1IШ3+ɓŨ+"GV#E +s9CI#9rJu[KxqNV OЇeDP eJZ zWJ=^LƇ^xP23!ҜI_JQ qj}%$b`iEG j`I`{HnlDFV!W-Usd܊P۸0_z{t7YTQl$ 9ĆT=_Z!5a/c(Z5aHf\O>HG`i50POk"5ˑ [YUL֖t6/1D#cNIA"6RU k%b aV?%F]AZ eK}bzh٪)kEֈ+*.ySN ,ƗTksR\(27a ֋}^vʚr#CCQgR`Ֆ*R+*{ka |7(*^-!(P]Sj+GQpؾVʂh,@áT (}bJRbQ ATSkK< a̘;y,!GBng n atcK`%l,dDZ 0/ b`/ůԓ†uX"2Mȳ?JEoT,1̿YtV袴4Ő5҄R^ pBFUv iGG +Ą.&,"aFuiYh N/Vq!E+VC~o( lHUKCK0Aw'kMP>ž<ҕVB,,BxZg F0ְeK߼'![e5@`ܝx+5Lu!йU*6k"FՠKrQhJ4B[J{=L)ip+x*S&^%<0a52yX? jX <*k\ı qW!/U(u7UDhGP?JQ$^qr%vr&VYИC(4mռ k2!KX(8kG+AɪCW5@ bSfuj3PZs):Ԕ]šDgJ[^AFk[*tZ"9Kd яX~Q:<ЪZq|QzoJ/ F;;j('4FE FHG;t3?NdWNwn&> Ldqlj`G&l =d^3eazQ=2M@rD@E +jtU" 9NdNl;d5Č6X Cf>|Ŧ$%6tI@C{d]1 W4~" _b7r>B8G">ѯ]"k@k!Jb`߂YZ4”E˫ Yb&X,ERb99Hz44vhI ,85h){$FMKܡ$8< 6`6QO(_m/dT*nйI}`˃KɋZi~D,W 4󮲛;r}pan]]nZH*}I`H/]wEJH}XII?BǓod7M)xy@Ȣb(Nk]͍4 R7Xq$i%ޮ?dZds-ו-5]S7ٞT8SvB3_)uTIBo x]kf Giz1!~&ïB;nhpDONKmiP5@[xj> FTzHi$b܎]wXĔ lHR +>@h7Z\opfo/lߞAz% }zK$dr*c9+ 8El O=e(*ęEXSART5@̻V\`' #YX -X9 TRtv*)cEg0H R2w`OQ9ʤ 0`8:+f{OAIUu23sE08lGߐ[Q ?zJh-څ5 +:M =6u5@`5YG]7JHιUU/3 ꬝2hu\=>->wom@oWLKT ŨrŽ)Cz: AHJB#96iz})I0!X<\2ouػKB*Te`T'|)$%#Sk ˌ0%r±¨32ss,3L'V%Ž T4ɺBZuA$'ڃ&bj#Vj 5-C=*,I$EB?bGwuwЦvfCQӬoa1\g2yc Vuƃ?_ +d IXgO5LfH(wțR>xֈfA]^'noSX̿3 xP/ii1-[tJLߍ iW+_X8@+yyY])SL ^A9!J>` XxL]m*QDЇRCaXrϷ+̲#1 +[It%Rsid8Pm^`0oF U!R3p HVvd2!p"V&F jK;PSO ՐV*YpyQ2ޡ=d0v2UB5B]Ϛۧ7,YF }] 6`t2xNKM,zA)5EO1f4N޴%ญ9Y` 4X9DH.OfE(rCBy}(RuhD))VBy\.sZ˹` ɐk)EAfB iND)hLV!`D%ȮpçTHiҮCAB!zc )=| z4@ rR5383 |£z]\+a}4Z*9#=ssϞjCg"l }FZ\<6>+8X~(fmġcP6IO.0K4JKL݉26~֮˃"IG̏ sћCP҄2M>R ߉FL49 jG?ɚgJ ȐEgN s +Lՠ~"&+ (@\u3֖I$Ahxz XViVkr{x>x֤ʈƗ)XӦ'_K +nC'ZtJLӈso5 Y;OtZ.dr=,'x~U[wW#,K ~P7׷v]9hğLeX/R#q7vڇ̶+6- @~hzML7Q77Fc"@4B巾TZ/v4c :,L֒"6v5 ax.RвԷv]y$qO%6 ټ+)v8:II)oCcJNFe5lDtS{M5@d\-a[6d-:r8jV裎f [Αb += +=?Ns89z.a3VGϖ(_ r pq FO#:,P=gaE$5-`E0fRh 5وT"'=1bsF%>!ԡ(0SD6HshǗ0]EsPCtdZ9 ӕjkFsNțDH֍(~FUGYoG mI 0 +ٴa7<# QpP+#YFX}`VuscYUrثsmתXh5W~1sGy9fFZOU U+i$:d[.Ydyz| ` p&3j G7&I[gn[IU:OSjIQUq& 01e|XDjyG#r4:n,ɻI:E?[hj="l!db6+g?r}keNH5D'Zw-ɔfyUD&b K'AM[*gO@hM5 Ak]Z_ +j|VSu'?6Cت@jQe^leWF2}sr֮kY-.+$=BS&O6vt!cI[9inGH5mr*T+^` 1JdI9*---5Ri*W8`> +vk=z31QG˶oi|!mpt`atbZ]F!mNٹ ?(e8% zeWmHm`_vrqIe5@{%ZCu310Az,3is?e 0rNc1B<R Y-;Guao7 6ªY4Ueͬd[͐ +t C4{Lf5Jg{n5hR!}_|Nnk\u[LWN m}V0&dJԂ!!-7L*C,?<,â# o^UО` 4@+e]]m\#YFqE2ʛNٓYBtvxR-c%8|)OpQ[M!O"i2ϰ譱8؊j*og_\rC4{3p5@2Tl9E6tRf#g +yِ4ƋYa $K% +zfTV PF`(5@@vH\Z21=9'sRm:`(EÿK +-ʁL'{Уq +uG' %#TCqV26k@ ApP5L 8aL2Hy1gv!ɶx7"9))$/KT*1L `rV(o+0ZVA| K(3G[Xƒb5@B7 mD-Sk:I'wM@fU*,@3aM`W W.]>Ȉ#. &OC~q|=C`BvvqS/BW==gFI6`UW-82 lj⺖M HQFKY*sNmWh(g M1|U^G PB)3_9m?9q +b׵=n"ͦxepHqڪrٳ(Gـ0;=? +CZc@|S&J|>lG:-L@]A]ކuHqMXa>B m!QvbJؓ @`#uqpX)MH2XBLe5s #A< lvl-9ô0fEl ZXEPEU t? +oh*+)Orq}ke;2 HOsdQ?a0j0" >D@jȫɧAeG8dDņaY%,;WCb#faݡbgD0֋DDizayt2] `VwdO4W7+3E$$M* l-ܔl[@FBk)QoE̵Csk^,kCxv#X6aU p9h -LjsI7r͞ AmÛBՅm`Q"S"r kYH߁rV @`{3&!'pƧ~rȓ9bʆHmX!q zø9mI`60ÚҿWJ JdV=i&v Tސ̝GDN\*@Dk鶒d}m,߉;zFJ+%IMjʻXZܻ[y4}Yima|-=AQ +"A܌rM]|"E}R +ȟ 5@  Σ +xD]Lqn[V+QJj#ĠE sBB>fJm3…8P0v_*;gN/ |ɼ 5.rͳ%E : JSǨk9;*p|RCk *ŌLZp{֣(*2)2ԡU.eՑܕ,`ԫx2໳{~'e#G"`X+MXs |]6WبM֖^ @'n>p g`䗍X%ZT)QxܚtOf+ Qgbv_eݩ0hQ%]i c'*ծ 5@`Bui$8#!XYB_g(;?ӣ(bүpH1 'H/(țQ +rMx  V6jۉ(\TX5@Mm&wS9jqORkQ|Sb(РK4'ًtkf5($Ƈ`5ѕa~ JaZN=k?N+eE7[,.f +JW 0v6Mʁځ$X򊤟R(4!2ȍ5@Aw n[kg]bcW9$nC2Az X8"+OL"7pށ -!$\;rDW^w/YDdAR϶C’HRl.EuC^br +حV Ng炉炷ۃhj's{Ņʉ] X#W/ Q0Vpabq t. (m1 l{m-H'( V!0ؚ2g U0AJR*\ti_y JC:k2E+vY5DC6vqݭ1)\V}zWC۱)Ҟjx,!W@PV{3˦Ef߀WP/~8$*I0v^gok=Y&qRŬsך4J SPf|`?7W%R؄ؑWN1GnZur+P( k sÖ檜DIVA1aʎs>a=Dp./i>A d,Q7''f +L\§~5e +3]l+DwxD#/E/p۹8 +)10Lnպ׆d?^O7^7%ƥ\gӠfF n[p=Z)mՠl6.R^oKRuj}anT͑}mVxZ7$ձK@bPʊftMrΦ*vURqoN"*:ʗ*y3Qgء6ňih;tElrr/$ZITKf*Dǖc%U/=L1dF*prP7BkjYث$Pu60y.1hg拝< FӴDyUK@hT&{B#6ȱT n_bP7Z(F8܎M C(Φc6c%DP.-R>ktv_{N0qT汎A'tA:{$6O)9G9zf7|whZFt)D@`.# pB]кz;C9;Sjc =dx |gJ +{CDBK{&/d YČP86S;hjI;TCRtd`όR*n +2(tK`]<dA<<@D!9RAPPyc x|4|uX, +SiqgUy*BR/VhsF,HoEC%uo Han0t`i}ʹzF5i")O19뢵Eۙ[N%axCX(q)lS/S :dEIM?% mior!QIK|]N0;n )hDlM=WJ\Z#m|`a8RRT8 WY x?Mywu}*ZPrrV6,x0=6dje+zBF m,ͪO(4hAWH)czބ*S4R_VǻZZUU[߉jia'2"b6| tElI%}m Bl `,S+L8u =V9ŊrN|trY*|W,kN׸m$F `ؠUHNtHqXe_x O/yʁ >>KBˏ6jcˈN1 cxTvrkn7A+8Vk.RCaz^+Dnyb}äb*J%zQSq +#.O3紂5@ N08En[M4|V:XU!iirc'btQzȫEXˆkɀ/ +J$Ƭ䝲tʽcU hhBQ~J hDW-#:GlMe2"1#} &0b-^,p{282кnL?8|`uUV.2a ߩ1T4Y}϶|JAWx56 ģNe2PIؙj: CaLcVK ^S䑺ĵ2S>^AB9;;dq g"1KMfy" +,c؉m`&Ƭ,p`u#UԘ7 !  h60 :c}Q&ek. p@ݬµź6|cv)q0m'^hx2[FA_Z:snf E^s-xƈsCX}""YNI60H 7UFE=PL* FOaQnu@VVllSƏǽV|RzcPx!I" y +*x +tvspi &d3׵MW(k 5b| >tS5 &O;}wa=y'rWW! AuskׅZ{j<$$N$Hd~qK\㭥DH=YHgX4.x6Kq #gl XF}2t~#RFJshVLNVW>a<:+pXQ]HI*:Z +xFVa>Yݜkbʩ!GdPtWG~W`$7 +/%bY*L 28Fuڈh7+^o}n40Kv=_!KD89ZQ!Fȥz懑ܪX'HI@5.w¦޷* g%G!4GBRChC/ANgk?tMioE+pD}#v"mپqo8؊[PP7v] +POɥmn\P6VPV2!b56}DpJ=Q6;ZFqPL")H*xOrB~^`L?gb%)P*|K7cLAFk@9J5D:g^@bJ~s/S{ۚ\r8 +&NrSKVZfQ ب\BgLi 8< ~?U1T~23݇ڱUgԝAOp82GѴT#&YE!M%F˼Gٝƭͫ'$ۤ E4oaPGn"蕦ͳh.  +uULCnXDS͜rnT$i,gum81hf)eSr{9GX! +{F +#9ܦdԬgFL?GذDg-Z ϤYA]<s^!_'ϵB54Na5(]'(]._~Nqʉ]#fLiQWM[Cy nǞnK"e׮kF Z}6#񴖐w!#M=[#gS9O0ߓ5:Av=:8 Jxh"}UPE&:ԍ!eF1 USv]ړta${z5ū͡$p9|ER +4x-^ P1i0:HKr[)$eLe fM~b BUJ>wNiKUk 9Ga-0x4 (^D "4&7] ԈS9G + Vnu͕Go> Mf8MPEi `Ni`ܑ^,9#tSQۀ3Ԫ) ]pJAz} ,ݽ0Ok iʬ؝6-FgvZ]ȾSV Uk5#l>KbXR- xd*a+埞%Di0S)\ZQ >&{7N4Һbd\u +V`=ŌÚdO pb  >x>b(okm@) U: +A#@lT[ڤkސ&f6\k +U^GE4ˣ U _i%)T +Z‡9Ss鐖uΜ_wKy}-E0RN~y@G)5ƅasQ$c$tP%3S#0@F^;2SMж(A|:]BB~ p$_Ba ;佳(b:-KWD2$Lx.r+͍%~ "64DXīK;D#%8\j-WsBlh% ]ڼ?u'EyF.` q ú5@qݵʬPc o9VZ4,3؉;U -wS *LH`=̑J=*d3XN/xO +%y\Th446"_<'.]$Tut}poB$>X:t54!,%(KiC[I)I[\hЪDFPsB +%{5zl_ =1`QA{L\ {&f'frW{~ڶ}̄yaf`RiCWIFL2 ZÌ?x3!DPH Dhb F>o.u= +# +PTEI)=#] .;;IB{d#PY&q6oCeXS< Fs_r"K+ @\B~<8qcP'/1)NQ7geSz?NiX&A$7ۍi>JN$T 2w^f"0r3hvt4)}r<Һ  Cmel!IY R{%1iBTQ#AV|DB]e 3{C#*t%9{F/B,V4 l?_X4fe\A|*|cN+dZ#X\+65V[Nώao$0ğ2ÄJuφ9€V{dc- 1h +c zylQ +CJTV}#5&8BZ x@;"!W!f vژ8,~"X0S=ہ/SdFL\Č#kY7D+T8dvhz+@Z훈\@C>ƨVt'OVC}!xQWL@T4g6BA,ffUbwqjoXW@@jD́,LȀQY,#J|Q +cR 鎜Q!ZuJR[D cB9lIq\ +>M=ƽsKI'?r7HSQƞ ;[if:9<!_vǝ,D/J'_AHciȅB>ܡ|jEq>2Y]XY8̸'U:%b*#ÂL!Zm8Y֜x ?D$&+ ֚I[֍3i!kVR!i-#*,5*)!KF0Tnl-X+ T"TocK7M|YCp&6,-B͜CDkNn@)y{x#Rk]PT,H Ln,zР&`0ǀqOdXuރ#]5>JO",m'@ORB*V遾эTl4DoA + cy觑b51H[@ ڀT ɡf$Nn +"/ZSjLHZ5`auw8{@2V< S8H/)_} E8<3۱a+dyoZFұu$ne&fҢA4K~z01E/+%[< dUBsO `:>SI@a/1Z +p̙^NbFـ0?S# +?_+_Ұn-\\?P ga eC;dQ[qCcI+ d㭋"^*!N&I7h|UON[4j υO&.WLepI5 c"+ d"όXtZnBؐBđdҲ"Տ&N֜!R}l#<1eP34_*gY]^.^_nWzAI0GfRtݼ;#Iy"@¬D=ERּDG˰K< +كki!C$t"8`ܹW}?QNJs 1ȼ{< +7Y8"3:!e%ΎAӠmIdN<á0aS۬񐲾UO\T +4U腎CcL7Iў<ދ^  {A-bj|;sOv:DB+ 0t )/&mŋ! 89lw3m2$R:H:lLX&3Q I~yt/D _A %C+q&O9eNEKF*8{["WsF,!cY80 +AKc!Za7O}cPwI_A8"fsS(4d~ 9p -n#_X32 GT蠭%d|1w`w]CKV"&_eVCsWnڜ-XHd(t?\K!iRʖ)p)p"χgI.ZHIЄDm$[8I#\^y k-f6#AxHC{l66hDBcV ӦtU:]Z#9$z: +OG˄Y!xʮV5"Mt?fÓ^S: W@YmF-Y*Հ.yTR~Qg6e3Pl^4TdCd۳HJ9 şjb`T6H6 zɨ;,ź"dp v A#7bLPbR2?%m}ö(P03F3+/]eq9^-7xf%㤯cGn"} я;;l\֬i9eP`af'Q@%b6{;VT y?֚?trT*ȓ+ 8{Ft'r%N"^]\PK."ה-g,)O^q΁3zcsX +pP:=+=,l (IhHa 5"ԑGy@V&GKa{Aiz +f%i^WlCh0["Grd,ޢu;k3A`5l %dmc)+79q~3޷81MDCy{T$<0dfucϢ>IvSi.YAiWJ޾_<oPdq(rxQeE~šnE ZmEV=9 VM!j@㡚sU| +  +=<(Goٝ%} V:7[P}gӡ4+*-|\W3 U H,9r Ke\(6y5$=U1@d]ӓ;̜(" 2EM>rVh=?_]t8هV!|H{rmkM< Gڃ%!ު+0>#us3DYߛˈ5 +&9 }2Œ#tfh$Qn9#0$ FbT Ƅ0g4r(? +P H + dwq _e|1Mٹby}#iQѢ&L5ȉNTOZd#.QҳDO-8{1Zc +D52 +`+r7L_Xder2%({h!gMU!#UJJ?+K[FJc3W4ۧ`N|65)ΝD!`\l0")O :!-F-NFNrA15($ܚ G'| cCW@/U_/ג5"flZUy}8 T=~̮\H6ƛdRyЫC%c9m1;{-V#W@@e'Q$4Lץ1fѭZ۪s_-'Lye5%cIeU-$OQ@ۼUc"G?8h. ci̋OZY虧|ݯzGw}Dl*qc!7~!CЫ%J*vNGƝ,eeB |8-67=MQ9K}CoMm'DC'Q1&-_RYӐmp>}Y'ˈ+[PH ]DW*ṯ%aBk1*wSQߴKDy`+9aZ2n>ѹ+3„rP]oܢR) C3mz?m~}:.3 T2o>[puHnVjЁr USC=T>F1V6^S W@S}dryӬSyT]PHZczxpH@ 6nʸ7Va.2YD6SK8[(TUAuܱe^hn8M%+[D 81g|TD `ށǬjcm;W&w^lA?W@`݉[PR,39!IRH,'WX;s,峄״[D$~-ݜc",RKx< +|B3DO;, H佨ɹ{# A4Dx@xɢV=a{AkQ[h0뛤trln'*?Xv^ t@ E`<ӄ>pfbDȜ?A2}/"ZT>|8H +>ءK{#l,R*ȣ!CC<^NjO)#܉y<=4t*xLED[q:P5<>D)HTo<6<yp-Tih~ *(Ayif,r,@݊զ׃E ǬAAšê4~gA%lι蟝2_$Ěx'͜}poTk6|W^YTL67ǐoG #m= L +\ßϞތmVQ4Sw[Ltx XaH̩ ˆΨ5B- T9`MGZ1V3p9+ };Q 7R\Lioݲ9@ }M5gphx<=5pe22/0X@W@`^VgA/SJmJIr|1/li=8 Hأ]_t%v{ $wY}*%W@"Zԩۺ@d9q g-ais(KҬk&o (=j#kXC $KQ9;lL""8+ Nl87WHBT/ }De춌P +DG*f$1Do&j75qgW@(Ҳ]nb>H`ߚ3ؤdbl{qQ/=\ +c`eu͏%fVhS :> +X}>YfɋH +I*) wN<4 0t}?M蔴'á?Wr?\kV>髊+ TPۼx2#.=̢ē)s,!k5B0#Įll<`x^ޅC%@Uv"z|_}mNFEe4z&*NӞ!OsA6+QI/zk4kdNǎ1pK{!P+JŁjLHB ~%W@ox}#$MrZgV|*I_(ḞnH1[͐e#'Z[\XucO"\838edCʴK"i|CEaFTY/uC#dF:WW[ bH26ЍtZ+ xnJ(A\#t[jZK +bfmqI +qiOH!қt y ve4k?sI+ #H5jo[Se)<&7yqnA(!pMDjirB&8D>Qbyuf<8JAbmJΨմpcaYPOZnA1DFSM{b"1=}|#1utrf$H\yzl9;~%G CK$N;mB ]UDJ Ob N+7(2y$Ys@wPOcC8R&^5#_LLE oc+ RKl ڙ\/21$HABz2ٜ 4i}9L8@ ౹̔5IЩP 'K9_b>J3udcW@32a^!Z l^smO^tۙYrǡ\ ȥ#%=y8U5s~bŬ>v < pAٓ5NY t)W؊$vlB~eeeteft>ee\, x&,t5yXẸ yH7ѰZud xRޱ`IZ/*L +kG +D{9bIW@pX DP`> ÇFLӀ?N9\nWS!G1kXB-t, +q8GW@JS:Udde_l +G sa@8FF*w=2:_=wXJGa`t+F_H0}EX| B5`aeK2[St{R RZ6J #Gި4.6HdpC+ 4.l'9DL$8DAZ?x1MrϔugXY9v נ7Ql5K $qiL3Mr)ek,IUwǂQ08l*c!ާMP1bqddBz$f;6"+bf4SΟ{q70ųў(mR S&o&i3*>(ØMN|a CSnO[0/p!'K~Aɦ1YX/zX_Y *.>W6#2_Jŋ@?|;WJy2#^%dM+:kmؑ/`rfȄߍd=Qw|F$Fk.%ro3j yYzH(d s^?cuNa5N5iWlb0n߇KUnMO~A6yOZln./l51U4puf3{ٚ2bNˍ&2)3߲*[@4ك(MF%RW@@I-ll0sˏ</;Nmʝiڐ t%֤ `x.}Q[W93\:,QywB@)W@ +={UԮA>cƍ }Yby") Fw!6`uXOU.ܸ%sqٖǘ|eʤ_ +;UѺ")T1il-my>˩Q- 2I:rP[\2ۨf>vTk/>`1 W@`n#.H-VFҢDA +7T7-PCLYoMR#yL^{(tнwo:E]S~ȹuW@!TxE`>#g1x5_&B-[0KuQd5+4Z̍Q&X1h!f+ 3{*ܝ~<=XC?7&XBY9¼8i5AXBs Wb#pʈW1!=(JhɢyWN-|Ga w'a ,݋C_4z\g(#<6?0pV;z,Bพa yc|s8t}R ͉Tx94b֚Fїe-S,'Ի\wp/DQ{y(1Y7hQٖ^PdzӋtm[:N *Jm(mx_yVmLU hP tVi + M,2BIsf W*rq@ | ^P\M;'R+sJnXlqdE^z ;uX:wrͥKgw]|':Qk%S4S3=\b3l oď,E_R4Mw75dVyK9+ XPi4 3DE m.GffQU`*Wʰ0>YӞm+ʲ9fp5I%4j41:XV&=~iԽę"ޓ! No1*w8NvWu:CF;%Z@ PQaJ8iL31MPtxݠ615 UCL^` +hE^&>o#HԎ +JL8$umR_(ʠo6Թv͑.W7"c%].m4}:`7RPDYIAP IX]&L %Th?OA~,VpެB5y>#{A+!CEv(r-a8*/:֧hPtR_@n,Զo@5*fq0c R Zקk3;Μh$Cs|,=t:d٨psJ79 dpREW!1&Y"sI&0`|\$'-ADָTsN1f3 KMа `H @;x0☜W(xm/ͨ<$<1ИBX)\#O)+!ח_AjsDRx"à &MaI**:%2ª#dahI*@ydzY!<ڠIxq}۴pdxQ?-KW2mRi TGt7įdY֕|+ :%\PQ +`pӊ5 Nبc,r+N#K%EyU=ua8NIpNL+ ;G'4e5i: q1@Ұ rDiE#\ +AJnYфnBp\-9}%%ߍ + +* Z X< :(í[$tBP'ЧyD5F7D1Iʿ_Y K Lie:IطI+ (QF,}-*55 QTx2"qGLj)b8a5jjӠ; +/Caģ(XPY'<)05TN<r-c 4u%KG K[(lciNڮ!P"t}1 +Jz֢lETe$5ӝ&XE>ɠ(Nax$Y'%D97j~EziE4#/6@*3!3:_A@uv }AUǠ*ǦAkɌĨ[UW '.T$+͕cm j3W@РXBT1XHwaǫ i4Ab'Nu6pFTn j+ Xx(1R࿙_>FKމ˒0[G?H*rjmө5KaLmyEܥTh˳ +\ACݴ[a.y55l5OH%1L{FBuWWN=']'[ܔxMMݯ{I“Tĉ\6K*°B~3.Жۘ1!/ߘfϧ5J7`z,毀>3VҴ^ Q sʝ:t^Zi;=_aUN`dx +#{28{lHH9C(mRd`x@pIsE`GgO!w?MN_(L֣ +1뙤X1 ^u_ԟ?'( HĆ Fo_<X囻IXcv|5G%XdW{qu6FW: MF5{'O:#sjgEp 'ʼn SWG$cڐMK$JW ]Ȍ +Cg)7ŕN#sW@@(C-[8HRT/I wYI'6hVT7o.w2J1ԩ>` #\\( +ŧYH^c$L?Fэ +^$̣:*4\P DL2vŤd\`=[9hx,]6,.l`'9}c0txܫpˢdb6*w*h>MLD;̤M*Ɛ}lӠtu""a{YLojML'׊AgB>g0 s;aQRRs2 ikq:%5ؤ,k4[+ }"ŷ?VXNdJUጕ&G :tg{TJUi 29 +Eyk +Ug$Ä+ O*?<TmK<"R_'pK^h Ҡ]Β;u#|#ւ=,}^N +5~bX5)|mjXZ!r}pLsLwDhIn!ݖA%UG:PJIo;6R.7:Բo꣺D4 +[|bYxl8pe$4d+'V x%4+CTb=ն>YDm͡AØC#mHsXęOYh!9m +FCƂ_յS,?tA;k'? kHe G*ZoHJ2X!Is}1B7A aܗƊ `fێnmdU7Y' #Te?詏;FaAGA +&4)WO$rZjh"j**GAcZqRJXp1"m_eh +Ic$~ 7MF֑Hл=* _:W`iaZWekW_t$}o/%טAc%H/QԎ@@=AI>N!jNZ2gqׄA byC+ (lH]P{2yd(\}۷ j"a abѣu +Mcl۠Q5Kɕ2)7W@zܳ#Si +,dr֧1X7! x9t*;@xhХeB5A KZE3~2;dT tkW@ෟi 5cX=i7 +F˛OQVuӑ| +xppTwRHUQ+ 9",a].[4&fQ)W7S3 f@2mQUcvaC\Ztz#%0}cK[ã.WRJee^DDt9i$;svP=( F +e6H0zU#JD]cG63;\AH5K9( ~AHQ L$ͭ B|lP.ᛤr^pZ1F4ldlƽ3W@|1pxfMr jAnE]רA7-)`6zb:sUQ2?(e42/,N/}\rZ3j91s&'ۥdgFڥpb>K>V0Ntڙ٤@ĵ$l9ҍhW@Зm }]Ga11Nq +}pI(.[_"q!S3Lt2Z-4^dȼ&kRb.Lz&Ǡ(W8IcJL&"aof2a>aE  ڇ5evYƃ']}a%B'Pw糗$ %Cѭ$G+6 a Q/Ϸ4tY%1!H/j6Vt!4fkn T<5TRD~2Ure>yHh=ox\&5`gn]Gk(97) @H& +%)vU +*tX5_:#gHw* 7F7|cT 4N [=>E" l,b5rhmVMfc&絵I9L }S)4Ey`RzLrQ~Y~meHg\렙džMѢ[JY?tه96ADf6lEbI6aKfc^Y&e5|C&!g4VNx*8Zؗ8L:z58J`֪ʘ7Rlwi{:42 40DgleʹΞr41YW@꿓܈S{e%<ٷU d6Z*{p4*hG#i=TkG+ +'JTKEdPԏ7y2H~ *0{ ]Uxn"O2UYCty3IJ NMۘBpBqCLe+UV葏%IEnm,4~bLHo4Q˞SoI[ӈpb\265^0>E"}p;NxPOXyZ,s{\JK+GʥbF*&@W@s=`G~aA&{X]ː MLPX< "\d^]]GOi\X*|O;Tb|£FiIRz?&9ZbJxC)@o +Ab_ѻ7%owW@9Abl!BrE.j QbK} 9n쵄90>V57T9>'O sOOQ +.vK9@} +@bINJŬt/N$nW5zvH[fә$7a>%,ysD~!_D̘Su&'egţT8lʂv[bwiqEP>`/]G\!c͹:e,P#'gHʣ72a|yXVqxbxC}o΋7aN2.X Մ\z.c4j^9ota3ᴋA'Fj2cU.ՠ,3*TF٫C\z,Jy"2̴\ +VO/?TՄb'[~SX򈡩b25l<.-я[yET+ǭ|L J؞yH.yw'\8e)%'Y ȏD2i8V J攼)?j5Dw ̧A5 + /jMRZa+OCC{e=wp2x*ժ[BW1;/%wpW< <_g-EW@zHML;EWDEcQL1Qat!4tķkQ=_ E]l+ `GrGPrxBG(VKnAP5^oɉD6o<%.<#T9 +r9$ϔqM'I\AP6XCt<(<6~z@h>%oc̈́{kyl O +_fm6;u懍8ӹfLZc;<`AH(Dw26!R"v}}$YpN^OK:5>PB6u,y g +mXA]]F56CѢ*i/ [+ơ!}^Qaˬoɕ[m5$cĐ-Kgj#+gy93#͊Er-t0@_֜90/#Tqc݇O2شٴ|*PKǤ#BW@P:jlxtEM$(?165h_?] < Jx.3X@隐JG"1k9=vKeփp6 6$39%>5LF`O?B>GX9@$saQ# c2a6 EQQkҨCb>̅8GGGv+ u(z͹|C856ZHc}]G20yITѬb|2-jQud#xLԽAm7'K%21, Q}=(-Y..:$)J֕S Ek҈&Y`U!?:۴7H=LI4J4:f9=z?A6_ЬzUeRvPQ "" $S?mb"l XNDhnM{G +SA#oAjO41bBTpZyk"W0vԹ Nr4fa$O +G hZD,~dbp] +JBC8J⡌+M%4ZsydFrU`{-sq<'Phɂ;"gT8zDQTo ^m[6q/ 7&67lC~mI{&փ@RX~)4DQ/<%<2hgıګ(TwWʚ+I5QzV^^# UYa2jSépn֍ZGQO܁n-evcQ:n $W@4:>(D{?pzo)4ȝL.liٶZKv*+.Y +Ofrc0EHKBMCn_j3͑N|f]p ^R{Ջv,Ϫ8ٵ PVGQD4!\VFxCvDuXO4+ tC<72OcVW +K'%dtЉHS@)F|˔8 8̢9sM>*/F|q$>mS[hbm`1cTs- +lף#"H@TNLzp$){xxĒ`FlU{'%vxzHl@Uġ\zdHKyq/'3dvEI\֫s{,>4!bQ8i$T> +CrRVL1.ª7>[3NK77D4e4LO$9 LH)o".Ja91خI\Dl@qO{#tW櫫}#E0k +SONI73n*2qw,&} 9T +aDoSϴ="T +"wIk_~ +endstream endobj 21 0 obj <>stream +)f£d>𑶪U )j}aAhs6Adi=Xo+ۯ~/8ښ2MD*ͳc2PIΡ)k3_GyQ㗏Mea=ȰYqv@8QGGq~p cq`pRӇTgEWb4'vPhǽ; Ȅp[_Q_]{s@[<}0Iy62*J^x#b_]:+3ʿPC~o{c` 7`+ h1C=1 8 exoXm)#[ըCٝAc6COXu08*dT.Zry2J,Vnt +Fn`y-pSe&Xف;IlCtH)۠CW:)z=>JY/QMF'!2#J!5\AJu_:E/0ҍ l}[jݖk Wz$Oj$!̾9[uHB9TDI@9}gA@u7Nsڪ~.H$cgC_iO_Ab9~ R +N1ysW!?t4(OEO0X:hTTkAK\HS=T}Rv džs_ RQSr0~x⻣=1}&pޛ4&e^eubW\նd[k* +@]]یfgA=o8|>IT?i<-h6EZ.䯀9f*9a~wJsbZ`\J{'2YiRID0h,8G܅ 94%ZxW@ +%/o]+ +gWDb3[\.maOC6+ }@bP D/?N䥒Cjv3@k +#WDܗQ޼XI5_ v vVHTg%ԚmDl5JXQ:zI>!Ogs8BzV"BVZ(*zcK 'p̀9?jgħ҅V: U=\ mHQdQgpթjG(Mf $篟\^A?Ad3<7=WBEH"g%@r rՐdO cV)Ƚ"J92ڪ@VNnz5oxDWgɹ8vw&;]`F&1=5%IDG+O Ϩ5߶#d-*+ d,]A*c!tr KQ!+}1 m {6AlivJQK$Q%$3NJo Rrr:| CퟲMDa =ݛYq9CcwmsC/uN`G٪0n+ ,$gL(QWԚs@.8Е-TfKb Ѭ8Foz<_UP!ա(P0I~M,~w&rgS29 ͈G^B7 0*X%f0j摿:r#,qP?/i +*7ꁬ) Z;`S/}=J=̨%=&( %{u遱_sU)vŅrP#УGD*Z:#){Z5UW%̅E3JsèTg1@;qv^!mY)UhDXg=w~ɩրi[` {UtsV/ۣU V Ō<2;VD +tE^ڶmSWQ[w*Sg+n=*N6XGiozgJit0v8& +pIyH`L#l+ 8N +QqV(6tON + j7-LJX \7Ic(#Z1mJ٧yfa"[ע"}:]u_u`aI4zhu3 +&$V:NE{`LwS 5A¡0l۴PV%;_N,4HQn^`mHh +>z1#*0GGK:xX{zmpn4bt0!_t˸6Z/95eQ熞2t+ 8s,h[VWS:IrS((/l˽u K$ )TZg  9e#$Qzzp~*F|XDkq]=9fd;Xj@9J)vbgsxFDQa +%V&!M@& .7ON!YE(Z;jtd>R k#,CC4BvQ(b&{ȃX~e6WM<6 sU%v<54W@-jpi$sp,5[1F2y7q|d&J"PjmcBsHC@z*_|/UDF۹W@XDG?HXE?˥2EtNJ_-4Sؙ6 iblqP6‰oSM׀Ekn%}c7ߴO6':n +ð)w} n!%!Bo:@XX:+cHV*AبZebM\_$6-NpÜ֟ 2_4†.#.y^ sI  ` +?̟BTTtkKVk!Lx62)V -%7Æny+PjxvgF-*\h1dj2G QCbɦ:?W@`Y3CYR3H<YJrf6pԱKC$Ed{`(A)$ϸ>BMnBP+4FPPM3iȱOadf|IڈM5hc g3f5⒓DZq1*K[hH)miW@ȁ D;MȽߍUn_ Pi)]S=-Fj?TxƷ㏂`hèaDCJGٰjW@2#CPpSXo6Ŵ:`}e:dJ'or(V4Ht4V;[yT-0oT_qM(U~7YgWPv$ENj>za.I sL+AVrDcsp(&Oڮw>[7}-mW"#cZ&m7 V@tDwhh:Frbf]7ɡSb|5 &x=KY'qNHyUPMu1)r:4aLPp#s2xqN3Ag:5_qxQ6t':wTIs;a< pvNuY[9n/#0t1а +6Q5->&/$A};M4X@q}6xN2]v 4c3!^ƵkzE-v0?+ wCXCaHX sJqˬ 3GhpYݪZ ֑F&y)Ÿ +(~ &LԱ#Vǜݣ=S+TA$6A} uĻ 8gɁ|ǔhf)΂1,8_ +4%h/@RJ-Ԙ,LHٻB@ɟ$AI&mI4e!tHWKyκ-ĝa^&;TUT:[䈁7gyglГ{x0O? S"tSǻuf]$&l Y>O51M4W᥄ah=dp(HsNGRb4Y9iZWٸ"?8Sg(e ƓYxfIMK-G;?L:'ML5-Ѿ.Ť׃d8.Q0U.(1_' tF4D*)eCg {Huv/$ϋqz b3ʩ`pIA3Zd+idZ&=TÍ1rO#_]#Kሔ?cٹhu+ WEV,}HAOa\^Mm}'l&m8Q=h"`an74]["0&ܯ@ xإ$CPLVV4Jb7G=RKņqdکPćC+nHP^$mƼk䫡B#Hi;vՃ.H0G-8rB6ČaeC$Za +9UV毀 $RuƧShaI I>pSnd@LjAnRRR5f҈/KA̢ imz6T\TbxB+ 3'Sc77f5!% +RV~_qzѡ`1,1ʔE͕dUt8' gC1=K h2'PqLȥ̠!$ψ1\f|a#M(ה=H$<Ч|S杶+Y^3UMգ,U^nN,m50Kp}lr H+S #~ks̓s$]88ɒ:xjVT_ )8V6tK\m'cUm ìhu+LEHWZ&>O-UEG9$N _5;UT]4!23 |SBb"d8!c¦52&#ĕF/:J?#-a$ӂC;喊3s[{ uTf|+ 9$,5uQBbR_Ws/]%W(C1DmB\ kaٷBJY%CܽEX0h!҂]$V pFvM.ҥ,\bdp;rbSl)}pY؞ +6ZrQ嫖9t@!|!.1`*q [Ze] +\Yؖ]=h7ֻv"/s}5ne+ @וjFw|iuL9ab3J )G2 a c;6CnUwyġi`Hi:iTi [wc`D^HܹL\`pͳZ  [b"L3`8L Vd]y0WL¨ihw$}5}S/ݹ| +!ܴe0QJl,IW@d9QR0xR0pI^> o3vV:`Sh+d_FY/|ь'ߓ>'RQx7LTn9Aj|l8B RvI)8#䌇:ŠGŐ˔oy^ +Jč^ \W[%㾨,/lG+-3>#mL%XN!` ~@|s%<4BeE"{7hHr4І%|0gÙ)o?+đ j(` *ژTNb",rW@0%6w66t`epZ">8lUb6]eɰC^ŌL%'B MGd;Iu7ϸ9ÄnԽ@o/2"m ov+ԳnwX'n|LٛzUKT !&&?s2 +͞#z +Xbe:%rMUW uUK*DE.v0/Cvj84 ]caf'm7Rf%M>gpԡhS=dw0%;'tofv37ȸh,=,6I>\AJoyuTo4ZSu)hg1HbvӞ(ݪ7$>p*˨aSQlM||zܶG!nJkTLV٭EX}8xxVm߭[5`^6|6c*A +UK%'qV @$ƳM~-Q?E"&a7 /0p/:y;=}T0Ul$|X\B +jNd.C'o'P/-V^n}m(4SyM~ ҍ|'-_*y"=vDΟhW/2.񈒈yfA}c yw*z@}ݟB0#ʔldKcQu(+ 0 ^8 +f5sJlf($f1ƩDQUpmR&)3D 惐aG=XHiW3GF;hxe +Wpu5!R6$EPD$C6jB\dv)p3bk2H>(Zֶ*;>Kƥ/ +jsx@)Zmƣ Q}֡|#MpP.$  _DDQ9 +uGDU>>aۇ_s! ,Y;4%*0k&V.W|Pz w1T9m㱗 +tKF+*HvȽrg @Æ@ +I7@l/i>`ӭJdf-.0J+bq g UWJya#gSdW%îQ:( +NxeWkdF)&9%+_/G~W ( ynprfJn}8W@@_k< + lMꢳbj3A'UB^?/tje8XhbChSg)Ӓ P<{mk^Qw|lzM9qY&*70KoNb*u9*rK3#O`vРETPñUR7I0СGd# Lt@y=W2MEtr<Մy: F:/uiZJ$uk092d *n".\Ha)pүad{|Xb.*ZwgD Rg#>vO3ODR<A藖t&7U>oY@><'kè/6^A]8&0Y^lԦHJ%"J8"מGa MuWU + :g"1 fЄĢ1ȁD-R_Ci6Ĵ2MV:mq^>:ʍٹ񀤌M|;9a1d˰B3Fl3Er!>uW@GT,4W ܺb!-,{{~Kn! r{}2)r)^Rt"!VnAš}+ s{އߺ# OV|,ayBQ[LHw{eʥS1_e*rD89'|3UU$YrM%} ~8fI!N"Z?:ŌEe-Brd$ϭߖpYֲ*\Ǭ@ 8+lp%!頂!j8C$;$|P-%$k! 03<6<|ȅNbJ݂Ԗ'+1*# ܴG2HG|{ +YvDЍjtMJU4]J6C*ë`i]B#H&v ݵ9Tjw,ĭ*$Jϐ2(aA{H8dg~< Bdjʧ +gKڃ: dvR$|^`wA?wøǨ+]w&Ҥִ8 *d"')rRһt9_]imaWn@Y HN{V,./J<\A7$1H2aLp)GScpLmNJP[uًw{a?T?[r` +7ɫHfFdFRB#J"qLT +#2Εb3|"H \nِt]!p[|ȇn"M{˩N){|Ha8ewZ逇bdY"X5Q,F9E*At9LѠ7bfqGDբ[^J6XJ0J +>ӚrY7j?t6Pk'ϩ$=mGiUe12GȋN#F]+ ڎ7>۽HK,֘KJRG;w'FzE2`f!lY-jWD踜ޭF,i}C*89  $|2 +2>88j* H (:tyNEF"CԌ]OK-:puG +4 Ew7"eu77D8vhۜt%jk{c4H9r}aG?j+ 3 pAxlQ!rqr]j.A9>;]7#Yx%GB Q#KUR9feOfsFa*~뀋mZ7-`ȥξrbn%qyx igcOڥR*Nshnp ;+ `W-u(B{<)֯Nk)#Ϊ +XĴȵU-tD$w^V +M'|n"qݭn+ 87j ;bܮWZ:mJՄq:*m߉#]{k$ dW"%tJCDr >1H"RFAË0-c~!¤ 'n [73{@^Y36jL1 mob̌|l4};r|Gϼ:|> ~ e6hJ[p)Ǭh,~#? W< RYӹnd;b@3V޺(oo&MrNԿ+.,!v5.h8 +jONP +Jؖzx6n *1hcMy〷HUЮd7יzfC,1ا2{ + Ff,%J;:&l*D}ԷLJĘUkQhسfȄ bUAwew^6 f +57d7*S2OFEEf.uA%bUsV0EgCÐ[~$w6d=x@ U*tB5:D=ӊ4QbdfsIQt@6źCd7/л,*|Q&p_) +/9OʙдYW9\$[ť<ͩ;Qxy%B6VR7%LF`c5WY< + \@B`*m ծ+kQA{SAiGG7EƔ:/NJW{Cqmujy#b7KlLS Qu͊>z -CKI2$E3%7_?59n6)5Ęwn47bȣShczwnΆ0AL=?YLxs1Cs:k,=DC +RA6MoE#-M[MDK8d["a̸´}ڧd>g'S.hɰYY?`_k\qIFH8nwe<XAa0lA xoXmC%3FDg葧 FeȑXPR7>$k4H[VF]Fh{EM=^çY*dNarId1Ql~5_L^A&OdEuêix窶\LhfV)E܈C +{y<DŦ bb"9z FkMGfr6i͏q/U!1UY0ûy.-" *Q&r>bёIW±&-?Ƀ%+ Pӎ> pRqQB7:gxF;ĸCg|jQD +Eh:p`\5XD`ݴ0GNKXKlD"6H0P86*Zc.P<,xJ4\PNl\ɵfqHuBmŠ9qOČm]Fhb cmɻVbH7x7,!OD” |%@v].D[t7( l4>(N;I!UZ!ZMLOR&_,pip Hga52! ԓwp?9 SF; +09Ga`RB[Q}Hx%/ع9 JX¢t ;1VlX + E&a[B +/*8Dm|{!(5o5!SPT*0xF +wbԒȎiaBFl +}ezo^Uv[ Dpk/HsnLk:DM>tK+Kh6+Fw6Ma2$R Pj +HvvOnlt ]~KeU笄  FRsfr +87[F2:Ò][ +m`'^:{h[n(:ڲrW##>L NՏ¼ciˉp:pFU <_~8Б7T.A1-h("-85{40a.$1%:~xWPi p\y1W +  l /^ +R"OA37u~ϝ& H^b,$;;,=5$!\Dgb&7EY!澾'AZp) _, BIwe0%MYv.^p7a"\"w+ tBj4Db.K}im Ex$q*:*a P' )l$N'PҤ咖xĢh.o +DIFzFxL²vJUe5tZBRM點 dbe<\~z˜i;bv`wdDm XqxH($W@\oe3>,]<8I] = (S*7#i[:Xl>qVPWz,V7Q#i@*ƿ#Ԍ#^wOzŋo^HZ<4B|>eyeqj d%/`t +B>^h!/{ d-[d X5`_ P^8 +h) =)≬o2ӄn٣&.^$ VaTmqDcsģ܁C +a"- ۾e͸M,Jq>ĈhNY {Ia)CF)6t{ fmQb' N_ x~(\6JX'[r-X#;p,9'+XgVn  ytqT(ſhKUIg ʋZ[M v}H`4|\Bؿ Ҽ&C"M|s\Ή}M b +%Txe[TMiMe<ȤPΪуa]+xLC,}Ac-ldVR2VL +=^"ۡ]4f% +9W@g~;MW.6>tTehoZh`ϊ3"caQMM7]Ʃ#6Z [qE@P u5E}:h :bGC(, +՝yˣ8N>wIPR76P>?s}(syC|:͌XPOx\:"b6veE&뷜OPp1}px h(00M>M+¥ :ðr~%wUCS/"b##CUż1wESg*/5g +T 4*I %$q=֋A2lAzoo#ײ ++uɃP+ Ha +TD/GY̸Ĵy%U [9,Z`mSo!B U:TgG!Tђ+ ȯ8ApW2jMr,c/vAA<:iP7I*hI5U:e/(.?^A":˄-naA랉 %x}&lø;}!5ua;<ȼM.϶ܻRu^c\9yk€ݪ~r|'xo0d-yO5%!L9j tTŒWiِ}$&Q rQ:gKB=pDHqM"uKW0q*"G*q%ʀo:{mq(pjSEΖJv\ %mH$F4_ 'NnCZ^ʛ1v.n[]9yww0{x,4.E~S+M_5s Bk4%>N"P`G)q{ ꘗ~\om(Qq"2(7(j\_d'W@Gs>>sA=vhH*o"Ā,md|)Z8k\0H+ENɢR7!~ey[.pW@ .D|XDi\pMJWcHzGfЈhBV d㍼ '/u+OD>e*# A|& 9/%_S>Lt@VD 2! +r$T +].es[X/_,FȄȊ +6 Q +&Ŵ +9|0{WqsHyB%6`pC +uV)D\kA<#ܕYT)Sl,j3Ugt|O =Nh7M wŵfmFإ;dn#,:J8h qW/$ȵh79Of*v=ʔJ^cf3:Dhj`ǩI}/:10JdJln1SNmzȷ#Zmgx$2 +va#&-MV hGAj\'ctHfkd2 9myENH 8ŸšAij5`Ua]Q ӗ 4ָs7Șۡj)1#'L.ҪbFL :]ҙtJlS W@Xj]s[t\&}J+Yq uxf:_aB#5 S? +lƻFnvFd +ƉE;t^ϥ_u2,/~"1f N'}v^de FmR@ζ )˛. ;=ET +s IduL#" k`=#N.dMw.9D#n'::?] ,lTrQ-nJ;W@E.F4)hlbsdVDJkHyi |%To#]DF!z ťX3j@ )zhsI!d9amԲ0 E$S͹\c砗 +5D0qH ѺW@`ם3Z\joLB.=U%d4>L"X,|C"?na7+3=6DG eaF +ǑNj$r>I !|GPx<$Ѣ5_lHzxO#E~(D(f<;fk+g}h=snlW@VA ?R"4vd,[tбI@:p_tТ@~@&' M!eV8t* KHrCd+ 8g~7ZwOW  C>hH>Lt6TkIѤp*ia帴7(^Ah8dՒ[V攪PՎO)ґv/ _b3 ]{yç@F.ρM˵:4K2;M(!~K^1O OQcs>q%/A!gtfPa4 20gI $Jdd[lFj8,+ X= +OJ*9 ]fZ~@'}6\dh ϿBz0sF4LI87$NJ$7S)^ B*x_Ap )D43),!M[WtzC]迦EȧVNԻJfugnJcdݠHW@*_&"G>4(F@K<`6[`MH13 ~k!,,柕Ռy rU4$Ư5f,FBҰ Cŕʏ4ځ8yBt}W<Biv,Okv0y&Q]кc۠}Y7ubs~/Jaӕ ! d+m]9+D6e5rtֻ>d|W߉E}ӑłV+~wc[N3GJ>qxD:bN+}~\,%/BQ_y7M"K}1:"A'yc^VgHZ+EY& KCQzF$3drKҵk"i+ OF ^yI\)q.Y2{3IE33Y=a]EaFN#a4*-rUn9G-j FDf t_kIrr,s,`!\!|=L("h2eŜ$xXd#5.>ny-)A">6 +0?@ DuBBr5Ydd/ +ѣ%k/ةV6ٖ%t +ܷќ}Mk u<E9|MT<j1jy4r:OthjΘ6d6+'CQ<=T*IXV]QD$Jې6Gp h-$ +O,ԋ3켐+C5w(3ٮdGhV2X2v'ou +8BH@Uy$V*8-u5NhI^7F&A`v[[NHg$b XeMh,{y \YyY.qXkx'(N>'*ngw#B!/rDt*O- [72<.Z=ѣr]]z poptTQ$B47N[USo`eM~Hjo6#mcZ(|䰚*sF?A#@0-=guǎB4jQ[dȽM"̩ +̮*?s]:aXP1vkA2II~7'O_XMֹİA3;P+iմ +xƼFC`BmWO &JqsWOMI62/ƑćSL +)S2 Sl|uxH@[WJ{gxUphd#jCfA1BD +&Xi Q;6%ebs^0sG_Kp Y}5ee/+'FjϵԀ!2PfR{ڃ2_AүTU,k\ՂBx9-T4 b#So'p(&52wCF YüD gH4y= + + `cteKB&A+ vqdC9_QSg\bӰqUTތH#ELx`64]FG7J<8RpI3!bYx鰚6tռ~ +V>1lWI1%%qS' ~Tһ0X\4[ҡud/HâfH߈0J." +|t|;GX.5O.Wn{e\O^P|4#LD4ww0FnTec +:.F#]Apg+hp(ă5 ZB-ߩO;,lcIgRc.Idi$ޜ\9;R`5^t(,+ 0DtĴ%"$GmCe n2ׄ"Lf ٺJ8s9 +Agn7"=W@P9My(js8g#<9%NnUr~nz(hPqpC3p;ډ6cS4+ ,%{R $1b"w'~i*J.4j69; LY"nXP#fb"gV%L1+R\ ajf_8PT6yڅ +?[,/)ѢX\ڴQWa k4D T .Q:\}d8)y-y6JRJ@A#CrsB62 +5 M#+.&۔ a]kz%ysJb𩣉=Ra)Ƭţ#4r"]W!_A0`zI;* |h,x @rQ7Q92ރc>,HR&I$<˕Ɲ-5G"_A0,ob{iGXL\c7˹6 +St,8^q1T[쭪N9$ZcU +RcUb Y,Yd#2"?X Ʀ,X¢5adwAJmeڵ:!+ C#rt( *J;4vB@ѩ A E:+.ЬTgF:"w3RǔĎW-bɦx[_ݾC 2uzL0IKCj-뱪;d#A]}H4Jcćڧ3d=VADigGZ+ T2LN6g yK p;JȀ bu-yw-eP-SƄ$2-aV*xY` +Hݝuv֊t&5Z*l슰y#vdTEuEavDbzG^G1'Bz4/Vjs7Z + %=Vap0taQ=h?1dRaY@2Z8=bΒfFB`%A1#S(  } N,+i䏎RuW8x?R(qARBƘ:—71M` AԐ!Ě% ԥjFV 3W +z`" +Lě`Tc܋ _S7c @ y~o2ʳJo- dȓ4yU2u"nx{*- USXBq 1`+ H%^QM#P  I=r%QbnSYM S|ַ%pƅiJg\&{nq!a hn,eGC—TKI + +N&ĝYVRS%ph"UWmJxTFK>K{Kz.)rOOubʖtaL>L1R;@C=/<<yrp&Yb +ֶ[psi1Y Z^6!Ԩ'Y֋MbPIbIڂ£@fmEFRTb/A?'4_K5WW%YUun>J[ CK{pL)b,w;A|[JIb9iH8}/@pALcuUd ui -X/m6R Ҭ ҲqcAa0{: +VhT,oh`@%U +O:W@JkY:$㗰=]c"]#832Փ0\iRon#d/)&C]RJdT",R +-/+ X},d | +qUxSTzSpQ Cyv + m!wWAB݌^1 vilW@rd^ z¸肏c@5u;~N*bBS}_X s:{+w,N 徑"k5~h|wA2))ąrKh9!XPF]""+pMkJWܟKSIy5qD }H + &^P(-WD{MXX*q״&Փ-y #~KPpHV1.#9yQ4U,@ŮO8⡶jPr'2 TŴVےTtt +`ƪu#N6plƣ1NYxQؓ#4}>$2+.85$Ŝݸ1Ą+]lJiU>%~FW w~>#كSԯؙ>ga#ˢwxx2C$BwS*< 6 Uؙ|dو0@Z` o|(;riSi0Myĸe՗]W@"T [-`VVS_2Cohw?G\%9 Q1kϖ1|ƚg2>^Eݽ8Ŵy#|jl)!P΢ů {蚦ZNCkeX*M-k ӄ#\zu|fc ++j'uv"r8sیźC12i?f@e="D41 [ g]k +L^1 mK @Z6^=4W hV76z ,t"3x .'/[,\>,hX$ +V߂XUOq+߄=yD Jd@XUje&֛pbU _d З3Itœxtt!_.Fw';Q3 %}FqT& ;)]1aB㰃T v:N EKv< Ӡ۪l#W@U_hfqdCG7N~YL 0;/7&ș_ +j! 1@^x8ʤYnm8_,+ m3_*ć׫:NLvn62閰.@`n~5Θ721RN5 "D.ƒ=AG/WKwH+;gD)X+ (9bU!^xFu|VqE*vUR͆m8ilj ,x,_Z*Cnv@ 49GmWvW{mCu:ƒ8ψR8"H*)N&bgDKtw܈f!{P<`Nbُ{\AIMm 6)z- 傐^RAWRZ +ьH7 J:ѐgT&@Ch5sHSv;("0J2':vAnm}w #2IX4ΆsSX]EiQX@:L)Φ a^%oNtc3uԤP=>rK#&d[,tCJ;xSyD`vY"'LS)\^b= qI,9](k ̰:zHcB+ \2 nm.?@lV]);7;3QoAPp@*?eYkkĹGŰ^8q:1(rA]8cyLT+ X5uɧ@F[j!U {w +̥ӣ!3e3azJ![}R-.e +H"9·ZWIT$+I JlEз# }1IhwA 32YS )h UK<'fɌ}ȅ -q#iF/}۞Ur̪{.9L3dn=N ߧ>. Fqj +79Zc;@C>p&JvrY* לTF4ȁb4;!q.ZDirFfv:ؐDNI̗_F[\5fJ%wHQi0rK{4?Gvؖ+Kwp\ <"w8'>+_A %>@͇cΌNB%Fk=}is"D^i%(EK,tfG`vQ^nrPJn!Xb)EBD#k_4b?cи/dƑ܎iǵ꼎X-P~Z/!1"6YDQ]sw"CǴ lxG%nTF/)$\?m +.|&ם 4QJpNKTdgT)~㌄j;KaeF_e~FUz@ aJϪm/+ HFޤhP@z"ݦn #B,1 N;#KKަ[7HγDJ$,}VH>K +> dǃ|ê)m)sC ZFY̘?esMfܰhUMQes&P"' TdG5Ў esmbWO8Q +lȬ]ơ+ =t@2M( P6-g^xϙĚbݽ@AszUϹ8@U+F>{D/g0 ʣxc#¬H֡ɫu3f܋*-jppv +d2U<)utB %ݬg—P'ma9mܹ~P櫒OӚQ"0Ԩؒf/2R"rD~6)U3&b>bs |S A :ia4m>nbJ=!E+i$ +ҸQ"yE_jՂ]s[W'1ƶ&QN 䢹ʽ(eiOD| +#@5:˦ebQVJFhqs[0!hPd)V-,kUOJABo`c gݮ^ݥ9hKOhY6H׍=ᄀ0W@Сک +ypPM9Z.WJt˳bXE%C ~b"Ȓbp"[U 7exAP +EMw] :n"섐yS P&VZz<Ќ $5}dkJ* 6 x<ϋNzuH׎y,qǨ2w-tx|0FgEHe1O{u!i sDAObIƜiyccajv򧌏#<$Ը=&Ŋ&yI.[HX1V7NJdD!8N 7X>**S$""eOަMUDߒ/^őSyB73O>92!3x!-Ȫe2s-LX}qg`(^ŊDz7snj d oQt z'{IY\\T*yg_>Y1"C*вAqrl1+ C!LVWN!,ъ+P%z"EyU+ Qq HŔ&na%ZVDZ&Hqe߰E|uE&@y% 9:ߒʐuu$&;Fq\qX"$qo 1fS*W@By@͌67R "̜ ?F4GViҷ@O>R`JP,Y1 j|4A_]b9 +l@4T?p\Hw`0`uPXPiMI7K[.CJ2M^Zɹ.w@i][Hdf9ζsj"(hЮ:ACB!bn +zrU|@ЗY8-޵Tpߺ +\fY<{Ô +|"#y7#*O-r qFc3Z4jlV5"֙i'A?Ql+(O7npF"0r% +.!ɛp"? c!ȿ&_TNkk_>3@>/Mk0O/:x"b! +,#S$6\r<1H1pgpa<_ }ww nN8Ĝz +bmr`A82 + B"wV-GwxCڸs\+Q^a;꽼<;.o55 us[VW@$;JPH"'O0RcJM5nn!eeɰH[X"jM?r0iҁ5\ pt¸*;SR;DJY$ me3KSUdiRS, ,GUܖ# sl)X +(g'残zSW"@=Nǻ_$ |0z9AMܴ'UC-M*;Æ13,4 +  +ARzùI*|KOkQ,-l +9 51[>L_@NE7c8q6TW@ɐ;ycƭK*2M2768 V>7 IQ`Hgb?})p"weE ? iדZ+ H]u=uJ~!FH+u+I +8YZ( 7>&NQhorc-1 O0^F`f2 }?H]ž%3F(;ĬaPE +َdXl~\NI⑉, sjƫH00YB2\AӡkUiPAJ({Xr$+zgD-e`_(BHz`hcHt6fK+;ݳjZPޜm7mnLN^ rg &O2q! @HS B٪ v⯪~aznbcfhˏb Sx|nj[.)8R܋9@Fq:΋c%S^eģGcAAי !|xOMZK<:0PSl 3ڋ]t8FT\aǚRX8΁Ɩe%C GͳzɿDx7&qD@B La1WY $&!pHX/pI*9¹*iؼ:o+ (IF|8 + ʵBAx louY5{ȡbΩ κ,5l^Lbm+U:J^`ﴒN!W1ְ/=ᔬKJ"B0lsm\]D/A;fAvd= 6mқij`dؘk![6m7"_HU +΅6$ +Cܲb$!df8 #t譠M:W>> + 7A#\Q>HP"2 hH/02^.U/"Yl:yŜK@,*g6d$jX1OJJ֡-îɻyTh|qhD7W<͘S{ +VvW{ ^M)=8|$=0|Ł6C~ mjHYw g-3-p]SoJͥ0ʏ@ntcdKɄW'FYrxn&²kLX1p_^W-X\YL3+Ʀ<@ᰅS-ڼd W0 J}w2V-lU=˓/">eQ`7k TOY֨H +B+ZbX5Tޢwd3}R) +ȶpoap1Y&"fP&Ein!p_Ղ̩c7EcDĨL&zkPEivT^!3; c]&FZIFc#B"%:5.VBoe<Ȣő=Co^4W@V*|q XGWγ44۷a8@¹Mv=l)x;jiu786] xAޞ|m|9.(tFZ#hHGŜ@҃$(kmntZJQ +ұJM];K(D +RT躥8ivC[ӭ26*ΛG4>k뤁C4hMH$ h4{6,Xٔhx~2LZ:YWKsvVr#_Ȇ,}߁J"2W#5}v1?] bG=Unq?bw:BƐK +L-*L>C)?)Pg3Һ/jRf:=ҦjMıY~(+ X-y錮*{ַEe(>0/89NXn6fkVYE*ڞ$4knȼo@uЖ(W@xUݰ +c:{|A(EVY]_DaX<s։y}z PNH)FRY͔7@SU,9K*&]8%:J{rܤLP`؋^o֏%^IlIѦRǯ># w + hT>p80lr6w@0if + Yl"V]yH߬(9փ4LV0+5yap&Ppn{[H~If:n8-fmzFDSb>*% f9;=i]Ch^B ;Xzj`b "_G*V`ͰVZoGEE5ZkwV> g.W/;[W=BJ +Th%.zۑEA1` 3mI\ +kNjOHB*&<)LаQUGahZ5/mPT"F^_f<,8{Za@mp!Zh‡5NURJ vCZOB +O`!1E&gXI,mSt*>IWJ"x}[ 6<^"Hnk.4$|rLmC53٧D0ZŊ4f_>jj2}JpjH |PWeb/ N7BR5{) z%ɾn9&I%b&s5ߒ*dK70yXadIg6 FLP&k:GJ;ǠCBQH>gh 34ZSZlě8I懴Z?TTFZN`୵eEu$p\ܱ M҃мa.߄ K@S7J,a< +BPlbMgÚrc'"jk7ZfyS)9^H"9mQbhifvuEӬ*ӎc!IŬ,5DHϩtT0!8FC~wc糤 B- Fl?H;NhULc+{t Iâ3g1i@Rv+-Y$#TaD(TDX $gL΍]ǦTΑCPاB<_Aɠr5))g|ώ7ge?rAH7FE"0@MLQ;cQLLXॡ3qF9+ ~IeGGTr@1[4y:q$g7Y̗<X<Ƙ.{ด<S"^W@0N )&,II$J 8pm b#)T,Y=5橵SMa8~ + P^ l8lQ +kAait2P9Eq5_и" Y6H;s)UVQAP6WVܵ8V@&Mpdːz'l|~ȳfݪ첞tx@2qTbX(M<̵ͬ9<4:_O)s"̊s89R!c y s{ +?ȠO͹%-sRP~3:|@K<}TL9i9 !>1SYW@4S#*!e{N>xd0:ZCqӪv nCOp|8k1%,^J޷\O{'/? qaǁcNgCóKorv҆ +H[v7b֫T$ qtIqG +iIKVڗ( +`Ok2T$[e-ڤ]%AoHDz[gh +n`PNR!h:.OT + sdK 2 !xp>!΁m +YYZĔnk|B>6!L$ DCL5$-22UڔJ/I7";Pz JKxpW.8[Xr\YDv(Y:Hf4wM/@Hj2u  +md߯6\1}lU`1)C2_Y3ߺujYPƙAsWm27Rđ,a$6 +^>}%ѝC_Hd;WD쌗*$[*oPz'ln +4ÜTBbV'-q(De0jԈ'7 BSv۪D|XbNVS e<+~iO'RQXK2oYyXm pQQX )$/Q-zje"^K4i`ϟIP_ziXA|xѳq`x3} ϛЊ+lQrM + Dq.衲V'C+^VيB\h$ {]ȵ?®\Nv[U3[Ί$=SXz5qQ,;#0&VZZoA84u[ +$ 4Y}T^x觅Ʃ! WtFiEN 9"4p[lTZR!FUfOFnQ Wv+ qܖ{1$VX Ia_0}&4Kq/c*K֧* v,{IcW(YR\Z4%8 tNQ7-Vپ9L1tܣǥ@yW@0LQ))DH33/h i5hБ 'Y֐C=9=aS"N6ǖ0 3 +NHW`%A䎝)(ΫWL3h!? +a3kɖilT`M| qS&MZ- +~͑o Ca 24c9o  U0o;eB|`:!]*]"ΠtJث_R?"s )T + |qG- +,V<%?0֮5'}d2^9Hl> +j3cڂme_!!zY +И8))د}NH˹%_Gfy|wHSkZb:\nAy]4,\Vz%yطf@Ez#:|e̦x..4=/&Zi$ V/\9 +?هDpoL~A`-q˔<h^ >;&p/FLamt}#_o@! w 7``򣖩rS^c*4fmȜ%sȟnܐv(h1 SyZϓ.4>Xh>i³iO4g$9퇏I6 &eCVߎS@W@0R f"MYRw9D +Zd'q?=HCALXI]cF\'ۍllėoqVb |1fx;걒>ҥr5\[X)8tfEi .Ri:i\[/|^lsH_Cd׍(󺭒-*I!ʞUW#džB.1'F39;PBvfB֜”T)c*;/ W@9˪#r@iӧ$-)n%漤}bޙbIJ(?4M.ɎDc-*6/&1_з'6<ҹJQ\n`4,kT4H3ٴ@N/"UErr !o7^P92>9v_A Ru:2'(\S^8T8_$å/.H??sՈ]@ΖIZ!4f`6.^:P jjʄ ^J4cwZUb0DAUofR9 0~ *h'u6X#CFl +M]hH88KugLŸC ?&Ym9ʼ>A(>^L\S#l[1`s/2`Ǝj"[\ȍ 3%L[~1!Q$; ` Պm9+$ I5-8al3LN^CQ\9bFB_%YZψۧoplްBZġN֤@2W.8F`oB,W(IuSjw.a%ӾM8P+H_b4k0<+ҁ*b׸pՂW@ #]AEjFw K-n=r EBd3{:D  {J1ߑ*,_:xZ1~$_脊CPO9s<=$鎴r9"zLfdӸ-VӅ4u S^HDw9;8x{3Ry*ahO\r_,o?aXj{&YD)ӖB"jW@pAxSa}ҹmP2s$T"h18Jvfts^1*u/0`+ H%5l5 P\L%04>QNwk̲M\BP ]|Vẹ x&"p{p,*$/`dCr u/Š&Fy^\@f}tx5Hʄ1p +L +Ofv%m[ҁs7>hwE4%_ ArPWp0DۑCpY `5eB +^ ".{2dUD7AD9?&=,*9kcO>gUƘU37藠V{FӠoCiW@PQ6gۆEX._P# i]wT[ u#3^VjQ:5IoMۥK͈2|T=BU `8y0֯D +@ tVR*ZSbUw2lÜZJ|4` cQF$6‘^>d L!@ +[i:\욭~v,1D?bNs 5/T1yF^7QVXAs^ܵ +GG[խouRoYhG6cijpw.!Z+R| o)uB-/ɲdLWap,$*`!tzɣل2/Tg#Ry[hU+ (*())E{, +;3B_1SQciWY7 !2tNDh[jUgJ)M8\vSxVV>V֭V[޺[[ ph|p{ܶ5JDi1,~](RAhuhH'VKOBѤbԭғ߭)٭H-nW@pW@pW@pW@p}p aC* +'ZHP>! N,?62iI_( 9 PȺSVҭZ%ۭtGB5v<=,5Kit2#db:[KIԨ\bkQz_ -Y6$$%bYZwب@\D+ S¼O¤OۜS 3V}]£*]H?\,59(IM^MbnI& RT!͕)A 1@)DA]@o/I/j"XǡNN@ړZ +an|:.[V#̹%Q", + +)dR)(Rש5ڀ.5]¥*_+ Q8545V4SvT8ѷ8z1;#}iYl~+#BՉkkMh5\~%\;(SK|$U:urF{' +})'hVTOs*n H#)QYX[]A:@-\sYg.\U:3V3Z5Q_SgC1MÇ/b~k(٨lRr~`M^hy$Ml:̞o#c—dQ+KVϜB護Y-X(sA[“4,~,~ad/Y:0=gZ|3 +2ދ z/W@0M>ζϊ~$ Pᨧ:P[t8gdR u?e:d *GOFU<^8&wB">`6S͚ +\[mB#mB5U?ST:Ɯޒ}Z=*^PDc|^i<1K!L.9PBDoPފxi{+ h m*:I!j*?@=֚%ѫb!H/!·? EpUS*oYyF[]Dh #Q0s@FqV +Ƅ˴tJ +ϤG +}(G k15[хo1]y_2kg9Ԇlne.;f@| +s I?)@b%! ,崻OOAnЏʀF [V +lpf"kE~+ >2ɐqN0S>e,SJYC({4L +JDtvQVs_ w+vUvl4Ed*䣿D5 6_cje<% +3E)40m~5L0ٚ*_ iϔ]\Kj[עóLƻ 5Wyꎨ j)|+R+ T5. +4R zQc[ + + + +-* =ڰ:GG, +>ʊ<>0 !xjRa$RT +%ae=xFVVW@`N"s&D*SX +G8mJWV$ŕVZS,( +~S?Me˷'𖮀HpPbij)jߩ k#6c":qG-4Jc8JEQJ/[\%hy12uM(J@48@wI+ (}>$Jd8mXy jZtn+'eTWZ4ECdj/Æ 7s̟JՍv%SyX0QPY@̧1m΃%w̌7,<L֟(n'C*Bdf2?]}$OP5BS]ǡ`&6܏[uY;Uao3eڸe@W@ +aGK>O| ] NP"(H#oJoJm}2'd'n:8r +f_:]5Sd:>BW@piXdPl"?D*,TH>`T4Ʊk ='',_pr(;p7Q +B1-I|H TrSvp6P'} {#vǐlmM:O9@\p KS]{|o;rA_Vv1RmƷ +.3o飸I7tVk&dc Jԋ7*Dh C 2AbE NfxJ"4^l#xQ+ HZ1~͞k\͌^[4Z%^Ӆ6jgPhh0GzW.BOA"(je*oQou\_kqs(V'K*Sčdov` NXgFMҲ} [%n·4NzHYL菃CJf)B@GNrJ+@+ȼPv q\c9+qܙéK(zDH?ބ)[W3Vp + 8S+X/&c:qxv D4zlVYMmb9gQ)5 !}ޤL%D8D[\Z1{pIbz$1d6%uJ]BVT">y+RS鉩i~h '3HvCq +H$~ĝ TsP}UJ̪[]AˉkEm%L˅RPsw0T(ܨY + !cBDTR<6l +dQJ)+PRՙ->0T)7tjBy $yJbE*TxYV𭮀zF'.C룡s-K +{p1H +EHmRt)I-dV'VOV㭮 + + + + O埿3DMNS +Ex԰tf[Szn RO,<`"g`ҁ#L:yFxr![?[]ʬ& }T uQ1#^rk͈P ww阈mV*ҡsdPdp %߈?bYCH=0@5k5ĶRNǐ )+sYyO."B ijMO/4u>92KOW@b:BjӁ69yeэȠq?>M_1ݟ]\j*%9U(b!SHęŐEˏ\2ˌf5~G>KuD~/ca7K怐;(@;1 bd2ӥIߦ׸dGb}F<|bģ]e`YݙQ3̴icK[Iō"dGp3Ug4/xwL"VaX&-/!\__Z!d"B1ahid1PzjbX'@GW@0Xe$D+M:Od("9a. 4SY7?d4!n"TtSW@$ZM=yH"RGL fH 2K*A&̹JSPCz:Uٔ9UO=~:&(b&IT܍gbR8 f}}8z1/t34US~ʡK<<=M+ MzIr+u V!5KN@7M)r0RW@#b-MSuG#3KһĀ%"8i-TDc衠x[]+f)u6IbVz+-]'G5 Y?y 48iTj߲RԬBui))\,M^W@ R۫X h(D#.hNn_2(O([e .Yߤ& G.;%:}U>+Cb}0sĺ(+ S +Q2~*P]%a,Aäѐȯ|`R߉NQ"|懄IW-@'TPt"IH*rI,#b;P e5F@Ѵq42,V IR>۪!\\Ae^9TN@Nq R-Gd ^rmU!;thR \AKۊΔnHʂ3&[TO"o-cEGLj1GےF~w:" >@ +njo |RF6>(ZL*B29`&EPtirsT8kVX[٪ʲ + Q !. +NRS"nvZj 3zdN%dbog'S*gr +>),OtTSrg#nȻ .¼ݏ|ώ W=s1rO?3F5Qh]-X\1 ЮV #C8z[0A) ?갨?(K\8YTpȦRSC6J?AP%/dL, zAlyF" l0 PWdv۱ l+ +pE`S7sR4(>nv).`-"W(&*| x-NRRٍaiĝ̹G} |lqCU-b!8VcMV/*^GU~܏5>`{l4SVb.42j|O@-trE1I+ +_LE dU)NW('sZ_2$bF-#w:aԨ5˖* IæiqM̴*"b %YgFaȡH஀ 3l?옓gj\1SckyX +D`I16FŤ2. zr"Jh+ gHaNeIFcK`[D,LMxه̌ 2 +JXNa X1:^m#< +$tDr;֫ {bՐʭRtj}B^sp̊E;*B<ChnzHC0_j*qGɺ¹<Eh#I|IU;ۀ$RV,"l0E>Β!_,Aȏ_9&ȡ֎VlVdl1TDc=ocӑ+ h6|'ɗJ-X*zo>Xk!Ɩ7*8qPF`cKیE3ˌ;,Nh$* +r u$f@S<8nm|<Τz (0YU.hB}kdC#c1y 6˛|]Ta*#zartg&G)r .-Fhd,ተ678͟ݩ#"Zyk>ϧ@u#9`j>6YES4B+ NA +dӗ#d刳h3zr248IYSGNn:iQ I{of3B3^^11Kv%o Y{JcvfSF0NZl_ vhE$c{ ( edW@h) ؕ|ߓ|1\EU1R5ܤdwYиb +UN%lsm)_龿 y`/HIS.F3Wt{0,-Z881J*Xmn{DlإlRRiFTQ +.L&B]ka<T%zIE <j/^ +r1"x?Q+ u+˚X/%?MuR I+ʾ:L0/RErE& Րr廐pSl>n- + X_?$gcs PgUJJ?{u]##AJUQWimrؼȉf7mW@@By.-Xi]۸qIV + ƑaB0<*"\+q1@ rl/'>p sSoe+A1+ z0]fu+#Me*bX7$is1)@2hpdk]Ț!SM'9ȭW@j Era $2֐N&cAc9Ѓ(B2(iﺧp)jhG~hBlֺ^N~SdzVzfKWuȅp-@- 5l,㬥@m <_2Ƣx1$y"jqDZB掂 %hIȧcW@`*$L(&2ܙ5 +!m mT>* Bg$):K٤D>B b‡6a.P|x"]XPc<8?ѽP[=~N/ҚQd8#)r svN˗cDN+ +)$>X0 6{KB<@GX"fJY'aR~1`v;qwX?:8a K~FV=],*#kMIf*x9Ge"f%;1w$MwF6P1mW.2W@@UA{i*Ra{zhFP0+L +ä)\g(s`Z@1yhX~Y~Y'aV5)i 5(cW)V(>NE5(6迂$-.U,tq|Ԣ~#*<c|&{+|ӲY/bv{(4J- q.b:9=f%zS\&oVSrW@@\ +ޠ'}_cRVDnCLcs(~.!!Bfl*u4WϮ y)+_W@௴VF;aj+91 2Xܑ{Ƅ`du +`nd5HMgcb[| V7  + `n+") %/o˨UC v3l[!y|.欍ҠV SCC@Σ_yS1ZM+ (`2.2C[+{@u gF2D m{ 3mELҘkŪCty^]R`f2$R +3!Lz*i !o[ 6BUhgB!cx=T("EdTGz|af c+uf+ 8 Bo/|} ^u#5SJ9sΫ- + Fx\˜6Z&,nJɿ!!ʗW@rE5 ?WS>_.> +SDlM޼샡{nT+\0B+Nw^Ad16pe51nYih|$.?q2-)0`RQoWWR@Q*`>ڕLw0o8 p`w$Z\7ۛn]d\;mWT3 +#$FCLB(LVM fX1WBlUnved 5U 0(VDyZ dGyPʉec"tYu|21eaՄZjzÁISj'G.&اA1F8Oz_?Eڎ>촓Oh|̩z7bO\q:eV:ODJ9`Clߤεr%Ox+)ToD+'̞f_%{"(a6*IVYʼn`Ħɑ~ϸzQ8֥ɑk؝M lU}aϣnѦؓ1bEaX:`"O91Cf8-JaQsbj(\4.^Bf'ؐGsE1JNׁm=UCA]Mey/I6xMgr[q :%LKJz6;hU+LcK 6eT/(T+ -!>fSwݶoWp&e_Q\=›T*ܟ@Y3ёe^FJ`W@dT-no[ZV֟pXMO_K?#d[e^馫s$'ɓG^47!褱6ɛ!qzxQcv(Dߠ*! X(qCLk3 #HJn5m[y6ĢJ@@M7ƊMU+ h1|S e0rA<)i?Qy{~ ɽ +yfQVԖIl"O&)-"Xd?Δa2i4dVkZW8f=R%3k-+n"ɡ\wn!`)V/ͤ8NJP&F-?K?ˣm@)x}tydIAPGZl0Z,xF8b3BȻ* g +a=tʘ)fs18B25 +(Zk>f 'ΉA>Z +H VmH 꼘UJܙ"ٻL*wۺ$r426\.sZ2@кx? +endstream endobj 22 0 obj <>stream +o$^ƨldDة2EQJEo Wbd*.X["L\UCHBmFYs\/y1W͠GserVzzbVn$\q >jeMa{Cw곥7;Av'ҦgfPdiwg#o큺l 2`w\63FUHQxXTHB׶6KY97XK=ċX #,f۝#]ޞHGkP5fvt6K;df?Vի6)kLhØ Ω@4n׷uǑEF4+ me4d,>- )"1I䱍G\h\_:BQ{2R ؊@?`zq1(![Ofh +B½[yҊQ?@- ֽRoQɅ({!"h[ua4+Y15]fjL)=:VZ*M⽔LE-cZPj?^[Q_2)T}Cd 䦄)*NW ;03 c.F7ziNn ĽOaC y}Xi-)Q:lN1P+Lk0sƒ|LLOЛ%nl$Yȭ6Ku*F'Če|wǡ#R禕ey-Hf [.?L U`h1G {6;y/!j],T%Kʩ|V0dBoe2wd 3iQmU PjcC8AbYCI.Cx-$ZVz\>,Hc +WXƹvn"Y~6|:Lk+Z:~H4J^VOe9-iJ ŵ_YPPLCUX2v;kN.ENR_&4R21VEyg8OUn$#U֦zgf^@Z)|q*-.!^".dejD0M 2*K|4)t¡|2.zndFm)e fH-VF^=`w^-'|h B)/}Z*`6i5(NHN1 ESA ^-S`sGxN,!*ش +hԬDŽKc`v@#J|Uy YYSH @yh6 笰r^#5+jFʭ_A5ilޱ&bǟIr̪ۈ +&n~ %TK؈CԖ utbWt#=J{5_MyR4-nkoQ5}P`ҷ[1@soC"-> Kbc4` +iU_Ad5pF"cxoXV ֍ :kJyPR}K ֘b xtYq֠g +D&:C>1}McLcCוGhh9ЀnkIٽUdO`emЅ2!c: +Jwl:ji#ui2 fH3 yo̭ sW@Vm9_ SsGsf6sĹ̬1dtp 05r vg*E)_pAfw39FdauЊ%MJ3NVYZ$ G$ EsCɌ!Nr!n |)R q= U%42LZVYp h޿gᇘ٠C9=ƯCpITZLgE>^>4@ +92^!-s>ž_}_}YE {9#VՆ7G] /\_hdd_AH{w} $[]-*xDpò>\P& +yi/7&Q =>d3:$\ +Di;$[ +H11Gp& (*I %8=Kq|^܎u`}(``G6Nn(=9C (Q!SXkaU:5Ku^!2Gy޽ȳ +w;B+sORrb.NO&syr`C 1$֏+W@PkuTR8\5Cj'}1+uSis +n .bE%a&SzgIoW@Rtۜ{N\Rݷm4-fӢ})gU`G 4S8|du2Onb?CxV=61c`Âq( 252sZd8A#[eˬ˭aFّ-yb4~ljZН_A"1+&tH>ل-2~q ?qmi}]Ee*+lAI1eߝ3?5Д*jwc + +QkSb̥ꊘtE+˴–}#,eȆxI(OZYB{s!/{*GN.kK_$L=S;D]w'[ + hc(mPpK(}Pg 1ㆪ?2 W@Ɣ-;P^Ȩ ?{p]Iu̡'A7&MvLkE/IF9-[JP̭jp+ (G 7.)6f4(UÜG/(Q z.S en;ՌS~/knPRˠMU!C D1xm٩ԜBUBB2#HG"x݄V1x2,(oUsv4 sa*H9FW@@)ym+U(=5q0a4?(QE +iÒhwu?LI5Wڄ )Ƌq^w"+ 0\-jGGQ+,l5^%4,s1U훛Z@Օ TQ0PrWc&G;H+ XB~QJAHkԋٵlygV +u\c/urTbFˌibŜOV*!UlTt d3JaUcxE-\%)IyƶQƉpM ƥ8Hؙ7npHNM ~sӚh:mj2a_#1pcJ/ϲB^ ]^N",W +7b_#,ɒN+ &3C CJ {I.AFBDh3z6&S2aP0)e3W@E12m6NGpw,fGd⼨imO ) U4fLA) +m%a$W@^fYz3V#2ORw$"6ZN1TrgWl0شd+` dłmiW +*w$V2)AZ4wPfTDHݑVc伞+?}i,شA3G+\ܐ^@T B_ ‚M&2"55Ft Wjj2lGT5s4Oْlt\(G+®i LN}6ᅛ{r-m1`'WOjp tR:zk.^4RrHک+L |OR,v` 3˱[TNsYeHR ZaN`ǑS  ia'D)Na}`rKZZ(.7 %\G"vgS Z9ƫ'H)F^m][o o@` +4mqWWEx<죊 FTuiU6<$/i#`UyY'rh}0xk$䪣sδ]gXt?byҸ#/5 0\v`( %HmV~@W@ w3wj2ƐVDRp%ؑ˃ajǤ=npM4N#6(4͖bH\+ bߖey{hIQ9N|hk!NAo li ;VF+ Vh/h) ٨J*@,@&@.u-vhJ߸'pmTK-.\XmƕTiT~y#󾪪* TB&86e;H5N#$1W*uXoh3FW@@/ xíFдU?&fѣGB.X]Ś-9JەYYz6]bm0䤔W58e +ƫ6 WVr{5Sm*TyD< xp&S$Ո>Ut`6V ![ +,LeNY@nv{r smˉ"eKG2VMgEfOȉ茇ָ,F<GmY^B? :Pj{TXb7n(i(Ervgӊ (&@ރ9{+§53%L*5VQr0UFS%O^OY%.8h89xko9AwUg)=C;M$4=KZueIX  )|#,o>Ras.0V詻eab +WfIF{t CgU)Ts^]eFQ{|TU\%/Y^Ϋ3 |Qa׻ts7,Uk8Wf3җ\ +V}dI~jZvRED5~ɷ:fu#Qd/7&.,xfaػO^EeSL+ Lby)BX=/J+daC0Zu*YJBiƶ*oJGh$fJ& r&g1Ouq"*%/5q :@BѴVZ^(1-y \.ب vP~ރ)D}+ЋV<MxCgi;N_Q__:h +Fb1u +=ZOr&(%".@ PtpWc Xby%_yBu+`tE`h*r0fHgw +{$މu?~Q[l\0bEeהەM>tU]r+7S5% #mõqț%U ;J!g/jV1)֞bFU6RR8qd*}p`ao ׁ[6YP](9irPAf~RLR>|0 iǏs>\R;- 䡽Om5CCV%*F% FI15ebCwW@0\RաM7X\]}/hcV\Kh=:Qkl[$L!!A!bF$r2C!C4BPG@)v &cH^L>r>KPZ)z89| ѕy0DW4*laWJA$ oTAU| ̴T{NIBxe+#v|@E +UB;Q[Dն.kRҪEԡy)+*!1*!tq.+Ur Gd!.ˊ +ujA0}Td~@.W +[ЕӠ`l +j^3Y1">wبR~ j܊WhH-0QZ ($?J#jkLW |yXq7RxqͫˆB`Y]+NAd50fX~t2 5_I, 2xc`{$lJnKޣ+LC" #. УQOc )uZ:L3ϨY8PT*wiKڸ$ 4./$VxJ5ti0S`R)TۦlDp >[W+ Y! +Du~WWW#C/"̄@cX wlpdy/x3NQP7'jXn4Z&($x*<*TXҷh9"+YHoUZi7ҍ5[\It LKX骢 +svl +qDb +I. §ΰٖei~S,IC%!j8(`8*ύ diђ P$D<6DvnVV䃧et߂Lb=11j0]pVr+S[K9>qaE8+h(Bذ᪨etJ @RqPuPRBL3Zz.K]>OACS$Is+$ծz=;̆5q}ǥRQl0nŜ7UH`>(ßlk@8-{<_oR*$X2@sj*E*4L0,[J!xj3'/Y3 +íwFLJ: ׌# %;~[q?OW$ϺrUw-UܪV9V ["2~N6REعE5s$8ebq1X 15׋ߤt@%P @} ! ^4bW3!î\ L8 Xr5dM̰z>]SNh!Ls}N(\M!QP^y2|_%@P(,u~Xj2:eqF3x2d𰨝 Ȃ,& [cbPBl8^IZ?Aï3%9QO8t&7'Xx.\|>7eP pJ +Cj-E&/}Ud lTW6 +*54G0mJELCMQKtC|Әo7×QQʄʢ>OftW8UhМg,[bltR'$ f"Bm^UzNyNVNaI2%`nEQӃ~%M>h@je|; c2WꔪKoc:'̜KOJt^ (v 6y%1+i}_. +Q0 +"GiVR5A=Re^ _Cn.]sa$cB ư ?6 q.M؎PNms\a:fxM}0BEQo_O0/w,O GU:|ol x+VLGC HG](8$íqsLtC)Q󢸁5 Vt*W-uK"I)Z^xWT + @XV6\P>B1 u}&OAUk;yyDo%cKndaGo +vЫ@ci,!Fl[,JGׄKzĈH2Jc%ЂKjHlfn$IeQ 7}S!AJXfgDRh)4W{l~W++cLi!Hf\RaIf]1zH[PgfQ{PwGRըMIō+.[YVZ9GϜ(^6x1 /9ϐTAI ]MԭI>oD, +js7TNkOPtzeW= +}ŕ~5 /wKVJH}L|I4-D} N}QEXBԊQGb_h8K^R5)ngߕ +: R%}Ke9gcV}ju/x# |W3efRcQۢ࿪lJTJ_<9gg_wbˁ& UTPٿt`>>wRr1P5@@]M)7T6*13_=hDXF"14'ԹN9"Z.,h̷BXKhD/e5,&(;M Y')p(C&eiاeCH)|Y A?9aq&6~$@d"8.{.IE55:,TnE8X8C~ qCVC-'g1;0"meq{sDWKK|&S9n[c +]Ph#dtlt}i',pe}gDv#:1GզG{v((=#/2U-nCG]́dAHmmʘt2y@ HG8x4M˅/si1aHlֶ/U#1xɶ*/ m"lh62E\rM (XiT8-Z~$Nb x="҈GJiG<:&0Vɫ3xȉy5)nl$l6*,CbFLP:%'"nv4$(+(apsŖKSgrKǣY/1$ꫀ#]pDpSn3̑Rw8YJh6U0Nظ^C'w@=[ GkV(ȦfT@T5)t⸠TPQZ%rX]խjUQ*5@8BEBMA.ȭ9MQ3,ehiuE1YPUJ5@ r +ruc(+(~F*H +aXc 98hETBz|CU08۬.d +S(XNwĄ<)ŦE1 ,O",C7J0e٨r۾dȫ1 v& i4*f6XϺ6BjpF@@* +# q1*Lm.^g4@`2 }bŸMG#}ib9I&iN I&w#3A. ѳ U=ki:Ii +fzV&pt cK q^0,lL($5!L"u%ͅ> qW4@ r'?|Q{×_$Ⱬu,ILfVJOm,AŮ:H8V X/G(H>'_ֆGcqꈳC/XЅ;ƪYIi.C|щ~Mꆯ؀>{Wv@~ `t`K1:PXtx,2B΋T śl~4:44@THsYRD¨Mr*O(]Gч`?P ?"^)Dh+b"%ʛ`'CS@L^B"J 8[.49[x>iC puN#Nb"'Z|RVS~>sn6@I@$VL8VL ion<.@KMyZ +j` (I#EE滘&щdM% -9$ogPc/sYC-zs6@!K1.W(O?MemUE[@ :=h( GHp$jBEx} e0=V"2*ObCU4K=UgY|/V:%6n ԲBr&ON8(_z3f.?)yfuQ\cRgl}X)⟭\-IB22~HjoOe 0K26Dk5.Q$õ<ӯHNcʔF65 mrZ LLgTЂe i^Pm$@Ucnv8.CcIFOZW*T)T-Y#u%fڪ|ྼވH];8]i-4Ҽ,;#=.{.Q @Jϫ,@(q# +Dc! +FN bM6Jk 'h'CA >JiI+9Gyn÷}jG˖SiԧnHGۀ`D{Zgh0:eut4kj)t$i;,PcJȆB`'|4d4.GP+JO,Z,˾/3&ʇPncS80`H N" ڜ.LU:6s:d̺.zz9P$ ϨBƻHKOL9RtWUgK,qcbHܮGUB +S+IBQ F?MW6W/Y2g qYOE23҈d9EaT)jdvj _ 9bETi:E "\DҵYe)dvv3 D0> sX?w"8R w +AA_ܖ9ly9WLj|@9̝`i1ki ZiI +BG?5eC">'߄3/q_O@_ R($_ͧO7sueRS“Z"EE| !4ca3}ZFtj? ~擑ot 7[N#-|) _Hko2) Cw$lee6 V }E8q >~NٿÌsQd$k&Z$u"|J~3I"}M |C,IqF91!\٠sX59?o*"9k_UO=wϾ[xe4-H_@hq>'K ᛌ cqJ7 |hyՆIl*fqCPohob]#lW}΍gd15;MkCo/qONw6k §'4Nz:w%RSNH-+,7R1\u g_F1z}3,IɈsK9N i5&8WA>=i7)-'jo4oGh V { t EX$D +Aʳ> аVZ >sE^es{QTގ aЛ!HP\)J#'},! `MMoR'_8۔}[_[nԠcbx'_(Ŵ NPU9y Xd2<?Xp^IUyɗG# ̈́^OzEdg +D$5YI3R:4g?O,1LD +?iDʕNj4rA2qD\Peusp=yΣ+(_w~\d)#\#Rgm]bJFܘ!XU +#QRMTK;Js) n-zY\f&r02OS2g熭S%`2JbHbLtpq7a6*n"v'EJF QIm9INt_F#D%cTXdh[[4j2X9^ $v(#i8n,(yIan<.d"bkJ=BjY%íH??тkY Ѡ$)|(RC&ԯC{ +%J7?xQ ϵ nd".ӂ(( ?ބ'wwRS߯sҮgHٰ*X+zQap5۪B.Jj ݆+ Y*kPf/GtpjצmPtFLQKY惔.PU$>t6Ŀ5@S+ީFG5pB Fio4*eQzy{Î=!/R9;.UjFثS?"a),RKOAJ]JeˡE⃮+Q=bQ:KÂ!e3cO  5@X1҈"itʏx͆AOc4"BKHOPق.lM.T>y{&CAQ;C;lK)|h͏%V!P)CLNպTA4pQA?Aݺd3B4"&SRW[kw x! ++TrC +r1#HLޗf<ڿI-|e)ɰib m +1\&ϗ)$|fT"14"4hx`ɨuYJXFQe}C|ӊUMz7k@sC3ɤy!)("QvPQHP| ] 4ڰ> + o4Z/W a)SySZ}~ߔ"YSJ[/@7wڜmԂ(4.)/(T_4@ XzfLߝ.I +FTt5 hZX>'Ѭkݗg}l_ Jcٹu)xr٨£ȤŘKc]!xF|>lK;rs|:S"э8j-RG9)8)L@h2ixRB4T6Q/(iXjQ C`w^cx;]W +I +!S<c&͹\R+DPP&)@)bekP;玫RaF?QxIX 1[OAD] =(q5|N}F8cs$*d=dr҉sl"UbP8Uȫ7\a_iƒciNתdrHjMS;|./ć߱t(?I/?D10ϼ;J&$@=OjsB̺ h&-wx[痎Z`?z}?كj_w?! +%y[1Be̪K c4 +auú;BT$kUAMx (Էhn9 +3~_j?K~_$Gn=Yߖ~U _7 l Uuc8Voe\ +tiIDK,>=*jj {@}4_Xj߄#/Rï_M;.!!5nf'A<*Ѡվt6$R$E4=i?vk/}&i?]W^ >/]!W_ʉw/H擵%j)DV0P(BaR8I,(n?z}e 5{~Ւqi?&>(2y CxL_ mG<*uR Z rwR> !MٗaV.ިAk}Xz<& |kݦӄ .Cǣ߂f# E(Ikf:4Wp. By C t `"$C U'v..n8<֡GVR$SPUBJ ^j2mI̕Idz$ D >{v4@ xRppP1q}"5g Eyl;G N.IcECH z0O? B-sL&RinK'5s&C]p Ub6Щ)26V]>#JåA0X?QW.+Y,yͰ !HZb*&`Xgki <o!8FyϢ/P58R/8_/ z1҆{NG\ sڮSN`nWiM^(G\~z2'F7i4~|>pqQsgJ|Vt*GY CHG*W2@%Gj! ~i|Ӑ]BCRvm70r4$(9dp'S ^=qis):"S80HSbg욅[Z"~0A5똎bVal4ein5cE0c1‹8&ak἗Ϣ(sbb84#a:t.0|eX-P +R +"ďyAƉ7_JE?T}g9Nbtj:D( +ƁȖGMwbFU&KdDV[C#A@ ƮɑLD @Q%\N'!ć?̯5?t;' pPk]01(w5x;alD6K gJxڵ+^J_'P4IT_ uSd|=s V 'xҾ4faPL*f߂h %XTnτ(D>H+L%w1JP}gN'8݇ L%iEE&̈Q9qɎ\3WVt *E/tgdDp|2$g„ +AG-uJ5@ ו( UZ$`2/&.FJxh R'D43?b` $>MS)}T}ţ3hLKst qgt%ȗ~iDÏEFS"<*(6j)̲:H6}nZȧ! 0&!!xF^gH3RTOĝsj_o_xC;ݡ+#Xyc_siy B*DWUcX?cxbA4'_T{$32yf t)ɧV f$~û?>w>8b.ʅuG fdə4 F8ṕ:8|Bث>$tz`Qb[@XlV@t)ǵCJ }Ox"g-R7mFd@"N!' + +ؐcO)dHk5!e!" Hap鴗ukef4T2l-}-׆ pHa"=ol[lGAJSq4Ȃ]7ފzWDJ`-8NnVuQ$<jGu?+[8 +;4<Ï3 ]CM4@@]B"6'iF=#S\s'Rc(ӾHzRV}dMc<%kɬ~樹qh_5t/K*'=M=J40(|HB.\d2RJYJkŰ*'s!-1 V|ņLB*$ɝ M܏7}G"⷏q/A+$OB;eG-7ΐL'M:(tB : +"suRF%Y/;BV),ь{;k_]Y'5/%(}z(6QJ୹"0"lr) gC'aLdOXF1+WSULoQ5A|ׁB|FBvwAfx BU<`SqF5\d61H ZE`,'d++w+<}Wuй2K  ,Hoçw\go(yodr$2UMK ЇOL*TKcz(){OI ./"k5t]B$h۳Z|ۏM'$iھql7?AWNY0& Ώh6;nodn1dp.Q+&QcG-n= +ܞ8 + +  6W(3KXo_Vm%>BgAJ +;jEu~e2D=%SzYz =CCi{lܽE8ה^×]9k* hTa[~+!od5@@4@@V!HOؾKJ +欝e +" (gdʶwٲϗ߇leuBnqh8ǡᣫ#S/7|} >o(c7!߭ިAWCİt'ZM/ǑLq$XKSH5( +ip`1V>8[vr) Jd*K$C=a!(┳'#Li P nY1,aSdyOpW뮯?"=+Y)0O15%~#Dz?F P00Ȱh;G +&]i+[[$$y2] D_G%uFG^t 1[M1!!xn@ȑiyIi  Pz 3m[.*PE4]HS3TۀBzrL.6;ltbuJ%"7:yRtDNN NA[*4TnbFfFZfPT9,+ f;ytp0 !~ƒ4/;:69+u6Q^o\y0:tNu$=Gu_$X +/|A=v~b2=kT9]韩ƫԝA#1|)ɋ:kfo4@`KT^1½e,C}>0ц*Qŗhᑗ(K%.%Zj4r6G-VvN0%x$DPpCwiR!: Qk2F(yCI",tz1ذ,ES,QQ!PnPa9WjH2 +B Fq!@7DٖF0OЃI ﻄa} i$&U紉{cTJTjJ,TpR1Ѩ)v<`6 ]'lPᴨF$ %.H,&J|->;P3l OaaR!c٭bV5«_A6l3tfeM>هDۏ;ds©Ҙ\Ik$! shxsK|~> ii%EDR]]a=0)} "q7k0h_[*8i +I Jjqq,RA\ɤi)P W]P6O|mû߹Y"2WH\1s#3j1Ly1lF!.6VBUG  T 4Y)BngaPڝZfw߮=Nn!~݅*5݅* a{V`qLj9 ˢPmˡT06]: J8!" oPes[5zj#Y pX8'x&+ÁTY)G-2d1eCh@5Sz"P2F[.rJr(t.ix|~}z>߻'Oj17-28eKhHai4DE8 c/|F +hGH Ĝv xqlCVID$>:yu_@g7۔aXCR%  0)s\Ti7(ޓ6gt;̰8CKʢNDBES kE܉o1x1GMA!ڔGegvYj1EC]gE[d:1ZCu.o(hޑ-dO?=.O澆1#> +i@>:gJV C\`.32%0*nr> )=|DxtxI:#KC* uzu_~s$eUfm,j>-Eai@kxүJ,'$´&yItJ U*&R´V@ 6F}'q_S@_eX F$ԃ~FZ^AaFNm@6 +)T ;) h*::"XVgZ%>?tvݗlss#>c ؙh@+Fp+hNz +zgTI^8QQЖzjT : 4]m?$ H^s?\Kfkֆ!E|kߥZ|F  m@i}SeժOUΒUOV:ZhCJ]“/pZdּu0#SG;y.PZA*ʡ'>:ҵIHKy5W" ~F`5f +~<5Z=!ϑE(gf;[H3W؇LՕ8i6m@i8"̷ ̟B.3?8,3oΤ\q:Bi_:_!T dž*lFNzY~jٵVaYeů t8# &#8ᖽeٙby^.dӻ%%/Pxȝړ0hET>;σĺζTWPY2R4YSQYX8Q: -O5@|jy==\^jkQK58U*4Y5۟mh(h% +Jy 4I[ IrH\'91ij(Okl3sڕP9Kפ,8tjf`" %n|^()֪D5@Y觱*QAiJR. K*uh!EuXC H8(Z^&[9dzTRʒc +C[I6hVzf@u TK]{Bm$ Rc@ijEO@WNPąvv5Idz4φშ34G 32L2zTmy+ZhyKtU8tpxPuc\TAH +2h|>5Tx܄I^HGWJp\M5@O2k#Ali> i4 H{KQ#OAEK 䁥dh)LxG0hBTHi@ECJ `[٪`d5P+gIg&3nHC Qb$27|X ̑F=Ձ}%>HR C%MƢ dK8`]Nt+]0̩bVs>mi9v0M\c |LB|[d4:xCKIJ P8R:Z}Nd o# $tԆT?L`yuV+j ` q"KMC}.GaQjd~xh\@[\eB45u bi0-gQ8nt%UBad"pRT +!V&  `l ûADA&,RcJqxx@= 䳑<^ZQ`j>+Ptk=GSS.XR4Bs5nd5^hW܅(QD|1KQ + + @E <%ņ"5X U^Cx WW4@~ḶH2=-7 [B2բv-lOc2nE8Y&&xl NhTȋp,8YrY@!$su}!udU7^IXo|h[-YhR!+V S6cCTڬ~b]q_HM뒟Kmj FO) NL^IVNǥȜ3hhD.bQ+Va!q;M7%Fo$i,iVmXbAqٰ5@@`IXR}"#r 1&H=.7̏1|~eD/ڜ%GwܧNvRY M .5jy2,j_UZ@3I*Rdi47L$" Y9F Uߴ'ՙK>O扲} WyƺdsG))AO6*3.t9(&r}>s1Z}éOSCΫ 0\7W^th9J,c!4=9% 0KPUL#. -ꑚ ((%#9zqI|E9MJṿ>ܗ%w 5@`Q-1=ޓ ,?yDBQ9Zq~R5BUDZMr6QW0H&~U\$! (!eq0&p67<yR +кqZ|dVXow񑺟m%'v?=/xu8#W@\!"K}&lzؓV:m=\;4*I$dEdRu~>']۠ QTr_\(Dc+K3-ܕȦ.LϾ?}eْQE8GrKRtIKNW ?:ݟ3~p/)JlEm?iMט*lM՞\;{G>M*MdT/~_VHjSJQ` H E `  8LkxۢG{Ǩl~뚪*M`Tul |Y_HgVΊk@O0G, f`/TZ"-NfVj6%ieieB"0U;;wkAO 2Q3,j1WH$76e@C#i9iI&{LE%zrsnu.8TN4q;"P td wM<ICT']xw :Q\gÃNՃ`PsDhccIĈd%  +x2`~&jZދ|;Aq ޼Hslt5iөHJ:FR*}[Y 8}OD,lo:g2BhU3$l,]%x{d#[B$f=Ts:u 鐼߳UjSj Rjh!j{km% c-ُ  H~NCrO+; +۝ΫA5@{g$zՠS k‚m y6Jר!z`Z6Y͈#@ wJ~b[Q4TetJoq  .ZSۖ^&5O1D3}5ʄdb eE # )K:PuGOc=BI@dȥ-͇9Q4EQIpb%3P%(z(H˔ `g|Ux "kG"yڈqPõFWpSrBsb^A^Їoi]W:\Q0'mUYJI| `RĦ0-1۷ p= z|#zl 5 +)"IS8ȥy|uJq(1.PZ&Hzy$~(5̖#kil6n !4+LTҰ? +Rgg΋8>,aި=9Q I[} kS_N'V\4<^ܒ0'O6RmPe3k8J{^&#EBG7 +OG)1p/psP. pBб;9x1U9+ze(`צ؆d[_4[B<&'(:,}Y*hT34Lچ$4G}$!FD"q-<_n㻠!X+UsDU +S)QN1Û l +azg}=$>ew_'R ')z@"9(=G, + G]tjJOzE    YLT 9~1!Ř'@R ТQIvNuvL&s(F /VޓwgGzv?O w! rPDhHwwA ZH>Y9z~ Ѝ` At:bwtuxFyQT0\%!#rLM`TXK7bpI:Rm^L @GE xJ/*T> 5*BT0V ˛"/#"EV'?4-#]tc\ݴzq&F&'+' Npde~F +BqH6 h xT,i4Q6!ңQ5Y%T|C۲ -o̖Ef˞$[$ڲmV^ yRױ3,Ex'|@7.q[ o81`*jjK:* IW(߬ aitcd/*nJXҍ&m/8LuSjJ +,#SH1Yuo(33ZH>N:F|FV[ {5:(uJ1=4@@Sq[U74ކ)4F&% 427by) .3f3pٔQ{4NyvtUi9  pP $h y@ux1T|M|%FtQ V뼓p0k*G%FTWLM#1kGsF +!@ϪޛygLޝAC*٧,Ţhp=d"H.v@o~~ [\w"TǶ!F,+HZ-CđnI д"'p5/j2 Ջ̦e+xLJu$I +)$&~Õjdh@a.[V0*50.cs!fK# eI D&'N0&@ar:H(% Rujh_3 oY($73l.H:6VJS > ]6:[OިY~w'!e,\axU|r]<{,qR)w"vNO7pO$pZy>6?mlSBda 1m~Pi>L rUM> r5@@a( JTZ=Cߤӝt`6oDKL^s78C/#zP/k8HTeS tNVW}Dc)D)A.ʍ\ ;i0j_@ZʂYxaEG̩Ӫ0jf&'A!zx6"=mz +K(Gdz\zzPSiKǠm#08I5@ -vF],/H]U%Yw)pD $H̎iiF(Kc:MgN94sq"~PD.a`t#ۅODA'P-OJm0:C%0c~2QfaG 6,w6cBn86^bl]-:zA``3;Vv$PcEQWQbyDAc4@r2I47TffƅReÞ9OM9/33ZY`'ڜ㾨* GI&}&=$4@P+oB2+\$}  Vt w>ʼ`f7X^Rg"ݕTi;D&Ɯ=NݪNEecԪzAQ&נHvL}Qʔ[Jb2bg刣~J3;jGg/Q^sL}Pq +~Im(ꍴTTu*|jpT/-VUZq;f@hi&d}cFz5zFSՇ,/WSvWKhWiU= \zvOTdP&ɁLpOEsRX%8/:p%?;uBG<3XEL-!ĺ?RkuUuѴsoa՟+@ WOhĮY\}P 71Ś)Jt<4^]_hU`NeDVWdŏ"X(N K ~hQ{h2I~?$߇ߏ́!0g>WTdVëkJ&Dup;֙S}bRk^}߯J}s<}K{{} YcjvF&}h}(&GkF[XDD%! !]< ETAQLU_:3+ }P^aH@+|u2s4Y: 81޺@3L>Vo*InLVڔ{J D+ +bD =XE"P!676c`Pwȍmlq2H T&sJawc9y >k街IZudƞ ͡k}-;e܉K|k.wHg^5 +Kj1FZ"mPGLh,Uh/ YTޗ3pD׺kD)D+oBdqCmK$")r,lMCYHtQR!ik 3I@ _)T9$.UDeG݁jL2bRJ+hj@{1zRxgPR 1b jWYT*~~(;y5Y@3}(]pjG!;i<[D^Aƀ[!Y-n()TQ*((Ξ]ZŞqXiɞ/$tXVɞX>B[}(d +2X# >a?!#PPv0nYC +T4[ ,SR|r +ZG9(y)WLbX.a}Ӡ*o"5aSg jT >@;? 3τÝSMxK("˜ΟqZ~79OIG5W?44@ #\p[ŽPѨN2D TF)'"$42U1$ "r=D  [3$nzƼhGj-fUg\}=^ժg9sbY$ +1¯Uk QƛFvTMhh8Dj8_ljO¢3&j#(%oT!3*5@@ .mŠ&Ĕ ;Џ% B܍H]M+2J"+Y2_XVLoN@NB{ͯD|:v#gTט#𓬰 ~ +R!:zr`^^rUCCӢ|}(^PkT +Ge5A*唥VI@A2SB\RIdh_}P !qWOZE.c0I/bPlg,/R6K **Wbv$AVbN#\#bwBKZT>]ɠbba!O^ 02^~htΏ>NU*TQUUU*#Y +ܰ(0z'GiDMu2eϯӰ} ||r 7F~ս' Mo&^1LZAI=H,A/4-2& WeD[_DO +s ލ'tD +AD'XՐF J)"^R(Cpڄ= j@= UU5pRi|:rj)l"h2gPs"m3,=/1%`p6(>%qL"IoRxA6jךp]\I +X\f#'B<,Wl+*ZQS*Y^hc (9+21:UDR ] (Y,<+3I4M\>Qw6<79 Ж:^"ژM!׎QJUqRn'7wq_!0fIB!1AB\Yw.S xB$|\w>=ko8( dtƮ$Ҧpw-7/g\9]<h!dmJu`@508=*+sg34"PC)>Y%vnm^uTjhRtBI +/-dZ7%qM_PK&H&= F4k iPNʹ[ R6L0vËoAP<ϸhO PI' yqgOG$2w@hKtRRxyBMT tJ?  ɒrǐɁVԚZ4R{Z%}\dէ)O`LdnO D6XEFEGoD {Hb& Wr*A97) +)4ۓF%bu~"pߏ#@w2ߥ1>U`_ts=PNJ`^8CZN +M*_&zI&"ygy~TD֜ɋpHSA +ne>( y ۃ3=Tt)E$m~Nf__EO *}s2IdΒ$E*[ݤhm\kA$J5 }r!qP'P6I!D+E;uV)-V=GD~ҊD"2z/dzd>iS:T(bR80Ki)fa-g+Eh(EF^TiUqO:) +-Zs/jd/ľJ_Jy+5@`ѠHQ$,S SQ(kyؤrǞ8 qyhXfX*sYzL2LRl+kYJ`^PՋ8ߜ꫗wȐW/(#i^gW0^dP;jx9^Xy,1ZͶi=([֧Sũ`+/d@eb\Jqx=-է_l:~v\WկT7ǶjqhK"n<.+æg%7k@>1ZzCe1=߿]{Rz\jӹv*Q'8G#_D1"X XkX(I(I)JE A„C: @bo/9#"=`'9ՐH0m.8:er"x=X,B*B(#QG{ F#M_)Hl;0'o :6@xx(7K9P&;T sij`IIpS'Oci1BzͧD\T!\X &:`‹:`h-]mD{,CMqq.;IeX&pryxtOqrTQQ +eC+zCIrO}fr?TfhK,ЎDhB!T۪'ċH6)k/fi%f5 +,Z;=쉠;^˕n(B:DuՐVef|i#L )[囹vy(N ih.ZL Ք N'(.@yAp }FOCgu4\>ee@su^J$*S.49!\1#(e'e*DqjrrD>\MK]GaCvV pS%QUiPQRaV}G0peU?GzKI'. DG!鵉ũK89+9exd:ׁ!.ߡDBRUXi8qZULm t0"ƞO5d2-Kqmޕq/2xMɠfZ}T+"rvj 6:jkK+D"g+ *>*}TWkiʍcLHD3*u(A\JA%|²%F$-tsՖ#^ͨYfH;h!~R[,%[B^s="'ឪ"-s ? pք>˭ *VTQ|}ZZ4o!xy~Q FM +HzZÕB9F 5亚ՁlL A`V$w,{u88cor({V~ +𹄂-|–e%EQs^9B2$X %y`|IQI(vl6G 0mI'MQݝCòP,pb͟>"Ѿ_,hf64Lz2a&jm$l n@qU9s86ZvIdO'q>V/ R}Rmi吱HqMnBøobZk9( X*%\2vdlhPTF",$ ^HK&DuJSxaG +p}T_/TΕ]B,:$j?bIjBm !/|J)DG`GYqIeB Cg!.lRMv8iJd {n +{ҙnOiu RK +}/&9;DMc +DW(DHN3*T{I9,#\TP!|8',>5 BrR-BGEEN{+F."REbriJOV.+lv z$Lgc [kƵE0tm}zmMA-ctty V,ž +4b4@g%(H>QSE|g1#բ&9980b @Ag1CfeىauQ7JED+H…ǥhsz(4@ڢa⹾P M ! =0?"OATI;Ũb%D!RA͙&(ME:i}4@U> +P)Ʋe]3O5 yפC\-D,Ѝ@/a#hc2FԈK.,e^6erAvy *lq֜4Dw7Mj, mRX^Y^řD +ϓ{i /6ۉb[#<2$DpCd̲$WM\ +~ FNZ@4.**d<\T7${P]$'DȔ!SVBVbjrRD78URʚx1 +e"p×k=B$ͥ['\4̼!=@懀>7)&tW[-dF4Y6CmZ΄lNe.8>Q3- ?!siψf*P0U*$jcG…v!ᓠ=A Pj)OP(GC%!,KX E.|a +ρd>.cq5,l:$-Cݳ:h{uIKȠ+(3kY^!CHgKN_ɨK`f;ڨh$n3]] ʳow6\\43aj7Pok|{zepMcT"C-e)zPL4@sAߞPw׵jcE.Q1}0٩@ AcHw@$>{X- VԂ$Ho(\xZp EX$nYv +/Ո_-)|j)W ~Bd߻$L>7rDdG/ɵo4QB.=VqF(4e ϸH܊GR+$ Ӈӡ5p*mGJ@֤ce+ЯX[eA.}%#|YMH:>urءӟvEihRBէ ]hyE+T~GH(xW}6įɪN<>&rH/tږBC|,xOѼo!UqȱuTlT~/HT-܄*8+wj&ŊWBi,[/(] +T _=XZҡmI:?$/͒s)$*7w\g%3g|PS|O|a/.NBTTLN j >݇e]t Z J)"_',B}Ԁ24@0 WhzAm== +NWQu"XɛE Al< S ħʤylz{n*maA7gUNvөzjt'=;=E ER8>h!~/)fNt'sF! ,$+-N+cmF=xdh+0bZE +#e,^@RTjFVm)bM~m?Zyq=C]FMT +aPkE-6;tIj\3&_%W73 c3 Qt +'DjDJID9qDZ  T膥,Hp"1ܳ"[| Šq%:ABga{S$0a %҉ ,X `Q?qX.\a\EBdwmm-bD'L/D@F dWY6X4@ZDW9Oh{H@rnm#Rj=FͱFUHA#A'Ǔ4Uv9{qJU $cdTNqp;H.-hͦ>&Mb-8: +q)$ZJG5&]]XrT7Q4e|5:!2T=ٽ? -W6nj G+(nJ: &$j]PPBB^-Xt6;AGAHnE[($>2Kq.ɔ1se9z1ǜ)T!+Lz>ą3Xd ` +a)3X̧dOq%PY(ÐQ9h(Dt[Mʚ)A WaxA0`b&Q9{,!VIb*hfaef'PǓHqAvN<|= @R(6H..cF 0oGQQjCE! jC}Y+G#r7<M3|* 1EA #f=(LAp ;RpXM,NiIi/ Z R)H%`]MzgZ$pupt88۩?^nCI&+wŠc@ FwlMA|k)nppZ&OzOv _lcTd/ 8mP5[Ȣsf*G͏ۙZw5 ō2h$LȆjDa0*oe~J>VcʅVI466iD|TuA{퓢CY(wmHΏG1? Lj@v-q;nƵsa#͠HJ4YC/Ktdp>lڜq-*xbRh} huYP9=fQX/B)Ch3N)bADŏ&9PɩR!j.~I ?O3ܔg|jDθFθ6_sdZȮ +IɎP:|$‹LXHibz|"s! +rlErqWhר2)*pd)t,D) OcA-r p/G-2Ymi-QʈBHUSY.-6 2LFhY([Uɨu݌Ƕ S(9i );K19}HPc%R ++dfoi{gkY D֙j4*[ +hQV #\trMbChY v|`uIa)XL:"LF&2Tм8p>3È1tp 0U.$T?>j UowBӂy;%_u`]6fsF +S `Rfm4!Sp"hsGR76v:>nOCFYdSTd=)W(A+rt0|#J\:ĨzBMrl@HnǦd Mb®9}rkR˖O;/= @J'~G2!PnFɐ +3}+U)B?)ո@%AZ   tFMz]`v|D$;jj; m=g Bizt29Pj9D$wt<\6ߓ+~4z-ݥd:n?[,]УjK߇A}f5-2l}w ~؛7$&e }g`iUdW2o%%is>[/㢷-7|Zjv# Ov^9 ~FE}uȾbfeqoJ5Ϥ&/H9||@@ z.*"~ ~ OĂbCWHX~8/=|.r>Ckv}tv})d2.l À@52P"jB'|ޜ%VGޟ +QEǗ sߢ.!k8Cꨘc-!+=$ ` 9ThƼVȏ*uȐE8osqC2ZuP§?Y̧ +4\̎ (e0o,;5^X &BGhm>H;R$Tx F7@_2_G4vW{dQY@CPW">?Pm4 $@̄Gdu +MDFDJR5@ x۸4X}udڇDbVz]VV6ZBLLGL-g2M{XuQPmY #C|&KmGd׆!yW+EySdS闅闫n` pS,B)a(jIv0b$tk|yL2㌌ka+fSVHat `iJv 3_#iF_HFmN o$ o"LSx>IcFjƮ +BD cx +X9ogJCqdFd&Bdd؈\ R^%#?4NSSJw!Y*F.AGz*i"LJ: Z!aEZHo\H|U +csČZbCs "[D?gܪzc%82~ ?/q.59-9pt &]|պiS pZcTKn+k4dEBt4?)T "=@@V0|GTi7ٖʩug 82kҒǦ!Ǧv^ݪ*RH.fd?jC,dɎ̒#T2k@:= ]6*v@ P5HՇ5.չ +o)p'MWiCHͳ֔γ̳z*hMH +Wr ۩`Ǧ)fa +#'wkgբ h`MTfq U[MSD`ƣD{GIEFa%:hqڝ` G.`6wXIf:u4ȘB$p*tRb./ +t[[cF_a5@@gM:1 +Lmdܒ]. ~CT%u + &5ELx$*yıHN&؂ÍG͔Pa:/}"U 4B=J>Vx%3x:e fa؆CņC3`.<\.et5d.2q7 vmc}6kyDh*L -Fl6I&|QBqudfWв٣%u \$7s)+;"[6vbH)Dt@7$[_K[2t;I*!>(o蔄/H0ȦKǦK& (2 DnVCw'PM!`Uk䩜&Abtrr6t4@u"wp9 eШ&kt e{/k?JY; 6 +i)k ($[V0T4]@NiY\"D=XX#1L'lH^fxb]<1(,I+Ipԋ❫WiǽDJe.G~AІ;SCqцXRx"#V.J-0 LG% &2 ˆRfMM؜wj?v. <حRN'!J 8OY÷'nj5@p 7i.GE-l"JHJ@hZ јf|csUN+ROǣO՗B^t4@uQ> e(&@(PF 9kqDl~B&xliv8 cQc\Ga^ >&iTmd!'I^jtixb*rKp$Plf1AHdxl@rB!Mt +GpAC,2rPpP{T*HҳQ>0 y9$F赗/cGc\/F"վ\vF=W?$ A]á2{Ԛ"L9DK5EӉs Br혰Ž4CŰ=P !i\VizG}Ad3|Ki"|wL@헧M0 5X:'UNwg{\&yN9DL\L|Oʠ&( pY*5;EuW KXbs0|Rjq4^qF+$I聮]fXgZw)btku7]C5ԸJ5FA)+RŎIvQ},wjUR+.|/> cBh_]q!qJwtt4oQi8)MRt1x cTע"Hʪ7n;-:r;D-!N} ~: >Z'J&5?MS J<kwR*&pL˨<$|C M|YtIzRG(X/+`\Kz9ƂоD͠^@O% k?WEvƊ+MaVȳXfwhm9>e,B`):zg_ e_妲/ a96_v8kP9J}x|II;>ʉURB[۱: +gam̞oBD:ُ;x:>4oQ}dޠƊ38%2|I&f42V'ʼ*:)ରD~zT|gef7wD`)1$(>P|D ٿBٗ#gs2 TQg BEBZ>w 9X; rٯ+KD gpe ~70  @k.%,|$Ⱦ$Eddd߅ѳ4ٯCme%I }m + P0s-!&X>7cya% E"{>,U>l1o6fk+wC%=rc`.1"H001Dc`g& !j 7 9' +ς' "bʛv}؍ZCFyq$} ddFJ/}X) >  S<) Hsfr3jE$@T G) +FÇ ` e ԄHJrt#E%m +P`XD3ϞW \ !zP0 Р%-%',NS(d7O aaF $%v1`#>prtI5[ q)m,jq ne| LlkĒ,ݧXab4) ʺ;B{3q@8B"ABC\Fڴ +-yfJ'@ZdpN9-8Ez|%S6N!p@W#,-P6*LNf|dgwE;ܧM-/ +jg=O+V.ͧG2z@@Gx;p 0@aJ!ZÐAbbqAE6҈fi.GuIoc 15@@MH狰*)믤::.'z<;iOV!扬@Mj(L|'L_\j:;%)]JN343ԂTUq} Ms,* +csI Pa 9M(%a#p4D8z0ڤ/f2Jb̘[%1cxnZxWa7 +}Hi9g\bͦVl֓>Z dQ5Q`5QcÓGm@IYлEri@فj`~Hdݓ$1cj`- ZyoƵ7#ѤFf=NoU86oU8p*#١ &`aqDY!{e}!,D-Tb`DnjxeD 1`&#͇ 9Lh/X`Brs@*;ު0 +H"8 E"ݪ*L>.p ې ռԿgLԎ)dE.#ɓсKAipa&JDSAE6RcRFG (OW5pfmP %/aw`ϗG1)$<&H#vR%|/$'9&Hw\:8Ha"_¥}ayٽςN[: eWCXhn D.F4@ 5tМ6U䵣S/T0(YѾ:CO>~zqD $^,d! 8C3yw粒D7EK +GyG|znf\O=)o9io)D ܶ,>& Oʦ!J)o/_C6@~;}fJstE- +y8>YCQS&Ď [6&^:v#9 4N;a~+&Q'Qx)^{ s\/@[*!{F>@@^},$7QIIÕV)/*}k DV)QSi=tש]E$ +KlY~; (UH.$ + )q8x}9OZC1I*1b'MӍXFlSr#F,tDv-b ,bX+f"V!fJ!Fn.!9$k.%NL Ò1vU +:3C@ D0/nf<= GW;,u8 +hbQ-Ea,?UpʢCԂc{4@U?/?DmƂFcRj*)&)#/N;&PZ҆M0x ,#/+O*Ǔa^lڒ[ c!hi鋋kU|i˟xa+Rcfd1ctIljGx^f>X"r/VJT ʠz~^ H >s"Ac)3_ů;RhhZmNo48&Ƿጯ6 {l ne7H6lLJ}=exGtR +&cT5၀cVh7$^pJS$P`1SvadVH_*4@a B@@èaڣ/E eFp0gpZT!HDD]$E?Jȗ)xv1RՑvz{=MxW}3TQ iH=l,@qVYG "NNJN0AHƒTn_sr a&fĀjX1qT$ JǠc29AOR[2 7yPIcܩV|B?< c>r"vX"$6e9v]CF9FN=;F+ C)NdlK  24.Pz2i|!A,qFI]6*Mr^&Vu O"A|}I RAÄ;c>ړ j0Ǧk'ZJ 4NZj!pkrYSQkKKþVd䵈dNSzbsO0$@~Ç5#:SHT >/2j4KV@EK(Ȕlp2j#kaS`[k! 2uW @R#Ů6đs2#ֲ@IbpQ 4@ i%PJī22EuxA6[wNъ?FA7+4Yn=ªXabV i[(gp}xA<ɠ2K8wf=LU Zx-Ttӓwm-Z̜/<&2r!vhICq%G{XQ!Bz.ҡE\H70 r*,p@>@ +wy~bΰ=ZblQ JD2 +/&X|4Jw62ZVqG"&{D@$i"N!zMBF oC4@3Gm~;)]JxeW5 z1F: #ºȩE"V$ `mK0^FT8;904˦jW>ghB)T9dJuidQ{T]tn2B"-r> x'*Z%(|+.5]`թF$ }p'+@4^5ekF|fcq1g6P\vw+FK*0WK?wxg0 Z89-Jl&A3 jTM_>mEI+N+$C;ETӆ: 2>['#.!>\dY 54aKtXORe_/miڇg"o8T].Q17TRQq.vObHYIg/'W緔gEt@qDm5 }k=a)zs8buqϙ<5@`#p)Ҧ}x}_~о?sE~b ~bt}:1vp:Dtb:%'6'+t$&c  @A짱T#0yJ @;rE'pQLlt`b2)31X +LL[p),a Y\L5AbR#1 !4b^2b3m:6jtwB5']FCY|94_ri\T%?b٘ՈEՈjĴ{1aڑH4b ew:b7bwNcX͂J8hUȘA>v%rY"SjhҪaO\YdhR$4b )RRu\{bbbԇ>DO+Ķbd +Sk +f +~B!V>kp +24 +> b)}3tEԎJ@ ZgbXD/A, Q" bX),ڊs(e["I T֠+,i@i6RPҦsj6i1W3:gFkcy2]$Tk 쪸KWQf72i|4th ` P =T,uC޲CoeBd>t~XFS1\CI'a)sFP)j[ jjyt|xAVʛ!!'^+cNuF)!|9S8 |(A+= Fɩ^b5 +jj)^$|Y-J=&u=rX6`;9SAYp/P/R4@K4v-G} Եy2htcƼ}^/87^|sJŅ ba)ܴ,ԛ|W04@`:@HHk`DD e 2cZTǪf2FBo29Z!)1dԔ'*D/1P`$)b̼"]Mx… KЋ͟蟬w27lx;4IG +kLx eYHc^ߙ7Nh6Up@N7\@,"槦S2e,zԬb\e%ʂS S'Z|a5Fc+lζe!/X_0XBB8ccigat:ǥ(Tk+駜ƨ.Sݖb¢FI!fdFĀH Io"0Ņ +!a"&`w(KrF CfC 6M,c4gL^^˔mTY6zQtcr1Dg(v߂ "7h'J0aB~¬ eJebYmTqJrRB00.ЂZu49~Cq,B@=lܼg^ 8 Z ДzK:;>h IFؚ~#D-6\'lVR DebO8b>DBYww xkѓ ikJYa9/*I5={u>ɞv0PM"d +M Y7!`Oeo:"&^'gjĭ^ .*Ktu J87flZkHn]BL'Xqaz>hrzyP:^iZS]qk]/yi}rE/è#-H 2{ V|*Eh2|h ,4D V=yQ&od-ZZԄZo4ڄ4`2uъfW&A:|hN7ziIbࠐA4*fY + hOMC4x\%"$'ĠlFG|)z(zP%*F EH6e']zQ,Lo9$vk@*k8YgPE.K“0syPyӭe P@ q1;A4AtǧȓdjUFFBvJ*S켾`#y$6(QQU 'Qd!#.x?erN?%3uɓ >1Uxi)CUFjGH,'!N=Ǫ "ETQdBcN J<\SXH=x3l +5@Tv ȩM*2+ך ?ք  @1.@HX)˥Ő)V'"b,0~<f}x̤i@!Jݠ`h X\HRYfPr06ROs!B&+$vM)=^lE爥 5G=,IklI"aɣsML hLJ), +X|ME"Z4IhP\E0pr3 xn:/B=@yIyk " Oo +endstream endobj 23 0 obj <>stream +ljw&53_R$Y6'$"uuR8lS4@bshuJZJZ<._݃-4E[5 KfV1)>{V\PTTlOnhpR90O.Vlahv%4,e5SmJmԋ]JHPhҶ$'rZ)+af^=:ť}ŤԉKj#`@Ð!d'y5bC">)GtBS6)'y<̫_SW_UffmSvSx&ǍxD#c,rhA@o> % ZέZu/R@qV#;i)!K*dEF\[bÉ7FWfG >h@߈>GR݂NRл5!K +"#p#oQ`c GU&0NNbpi:7U)D2? Έ0EϹ{)&=y}rtNE^‹xGX'F3Cgx 4@v\!z8Rٵ<,wT)1`|L?NOO:w{=j)|'XJ),a2hߧ#'Wj,2pЦxGwVɾS=AUا_O^O27C=xԂWawMgET_WaqO1}cG<5h߯75lNZ.J=iP'HNEBP8*a|31KpJ5xK$K@fXfD":c!1i +F67p+bf =j/ +?%ɽŁ^%.}-)39R$AH5?1*:a/Db _&1 B$1 `A$V#f_N#VB#6P`9Eb> +f̝2cYސ1-S}Jj񛁤4]{r +>bXuL]I%b%b%1́1e%bV.t`0~$PE <"L"}Vn `3@qPǯa \ѳbL(-vW%2%\\JBC a!k-+6r$,,U[j~C2)/H'A4؄xFWO$N&ANC{N!&(ŎgwT'FRCB F>n/Nł+?BJ"1?QE#u=h` H\48MuvqwKHI H:$Cۻ]ӄ22ieqEuY<.K9AP;oX𼛨$琪s cy,-GX"Y4ˀ*r-O R/% + ./T0 +ʁk)4@` ZmYd`Nu(g.M+EoWg<-,Vyx+ԉBsRړXTA<_J$Ve.~6*xZo{xd' sо(8DGCWcs%_HC`t΋X V9Ôa.yPX1 :R M|`D ejśyG8RHN YZB̆sCخwk>.9}f1"^bTA)80_0ME^F`ClOm4*yPm&&1CbW; J깯ھ2Z*)Sy 4ˆA0R +lpU. #?A(U&r!fY6u$IR/er:A +ɲghq].b&65E7IgB66 kMgXthBj1dCyV K5֌?RIUEDT25@`d`C v c؉GEڔS@ +jƂj 1;YX0=ԗ7X6Gjsķ^b1_KU3#{3I~BV'WEަvPd5|xTN3 i$kĈE-V11l@7%!N37SS̐hcArM=I Ɉ"44w!K"5%XƤ,5@@ TSng辒UW\!YK[* T*ۄE RHd7ծf5d P'PfN]0180e*O*50M>&SRgSS7KiB*47隲C1D<#ٷ"Ȝ1|dfIh y*XS1 +DCR貲?86>s9i#F|@Q"E=OR\Bچ:PZ@][Gݾf'l ȪD a:L@\Жj/'r`} Uh@(ѳiY#t\_6-E7Ud Bj. 0PUVA* [/f}".u#"ۭ-.@c]r஛+ + )X1fA%1` %edB,e+!!,w\t騂Tg"+ӋllxY7Xo4!b UޣCAq?VnOoNY$6 +Đ9Ib1A sDv&0;48,3zM&3,<Ji5qxD& x{Bȣ\yo;vQA($D ܇2^E0\GDCxBlɡBLN\aF((JP! 'As88`;~xj"'xOiQ3QbͩXŒWhY,dUdIH2DI2\"&+5FQARP,Mw^)mZmrkzDfV #sM@PZаv/IRIL2WdruMˌ%D + rWafc3ր¹RJ.Ҋ8Dɦ2:0fb` @e.)}1l#xԷh~]$2DѰ;"p1qVR%E/91F5@1ٸ +gsJСZId_SE{*r91Ej7K+s'ɵfq0C2 i6U 6ʋrBSmk\# +hAh",ڛeٯtԚ0FXԆ(G }!IB1۞х/K۪e˛57TsTp6\V#<C6hH/׆e2hD_lAZ٨y;y:HNL`.N霶OOhzbLB6j?AӮ>$]}z8zbjT|>wdxp&آA+K)A9aIӃO+!C=jxtj{ 3nU/^ +:)N=\^c o=#l{ +t!fђ\Lgu$yNN&NjV(O0=^]e<s)U[^*%R[b{VGҨ]J~V7Kq}=Qs^F|9\l\wrDa!ЩS#6 Si@B f"C6KV Y}MjߟjVio ѾEQk0wPj TT)Tꊨ2U,V\s+˿⫎XM!!h&""k]w־Gkc-Q!u%=}!}/Ҿx$m^#Iˆb], +ġXǵ:18ˉy, }b->O `KlԑYXPY*w]1o6 Eavֲa4vxXr \  UB,Ɖun;1b8*21M11Ӛ)&֡&I&%&0&F& H) +F!L4&6e9b'HDb B@!ϔF +5&xnfj{cDj3&}O@,K#RNAN,JixD6Y)X .]  B18Ro.&L>|~]⌐Ch3̝ls R; Ζߝ=K%H8\]L`W* "OB7*D\f|MbّC$Ya mp;DHWԐ@P6KA]Ejsix.#$UȋKтYk.',CK=/ RE鵅Ң +G%#_6[?ŴBȉ8'@D~R(v\=>C^;Q6Qa4P#, !*bEq1A^X+J[E2/5ӆ739Hќ܆-zⷒ*НªI'ޔRle\DVeQN"3Eik_+_SJJ-_Z06m1aDp2!!S2CC2T|e„vY#MGklr0b#Ea+$m0sF4bo`f<#J=mR꣌fc}I01RY;݁mAKsB(|\;#J$ &H΍wi%x4 e*˱UL +Wш` 0 -qG[4u ȳtBaʨJ zr{^0[69;M A\,V OGRF"y/N|Gf.e65|Mˣa+C|@F{nM)w;~=sk2iO.M|*b"p _!jNB(|X!##j,($8gԑIni,I 0lSQ5H!=jh<2s%qn-+@JgKinyF (,yDp^őYE;#tĈ&FXm܌)K%i/L:4;?#m;\ +]2{2 T!PpS A3;2;4@`'-CD`tf?Iw&nvA^~@Y6)g&Ɋ6< +(8-upJdVGg/gi 4b1|]L"FfW'}"'Gc.Q0x(ܙ|(/FiaY4@tj{JL68tm_]ɰP(LGOBF2Y_v%V4t$M%OTȣCI69"{ eZiUߴ<߀JQͫ'#g"s"؁@A!Qao"ΌR!irղJͷ*>)4qSF' 4- 2؞1v(Y=cuJV{A LF%цBo +,4٧qDdm¿"v91#2PƝ5kuI ~* +~(W!,Fen_-ʬiBK sJD]io*i^SJ҈ɪp+)í"ֻB_- wIJXj]%-Sx[%>{G{ {˧2G{==/Q}ogҾiS-/,miH#5\?D1#D +D19XcQ( JP +t͞e4hyT qy0.:ŃcWXd5EjVWaup2[.E`'V:{։Xʒǐ#@1HArtfF dͫl8mόl- B\Ebf1L#>`FBGͭfp =sꎉmb424d)JDc1XE44@Ztu6 ⩅mݥ\?Z봕",̧pԝ8T/t;rGӳe1p7 `ISpyGKu5WpHS@zЯm8us0vg +,5Bv'.PO_#2T,kۺ5C`HLTM`oR6 + ++dJHu]+)Yb:^ww*Y%u2&:(LO⬊eb $˯Y +$H͇$"\"0?IY>n>qP}f0tKW7HaiG_^B9E[]N5@S7J>a+ 2rF(m\tРB:|!R,c+фtxw'e'UɅ Kk6(PٓLYr:1b$B#T_Q82ڀZ5E7 p,IbS:Q„119$)G!o#"B>Jw0SՎν!w4S8U5PdJ,…*MNKi``Zs_]nNxrR2 -ȹ"3#76A l0^P:F,{dk4SUOR4S"ꍔj0܆UG>{so8d I(ySb9(bFXWL/|CTiGG(({:3Tθr8Ij@Fdȇ 4M:a7SŝRaI?n +OWD D"APQ@[ČtHtRWg!  a 7$ +A6Eq&Y*.@`HVA"Io,77Jb)!)b<)H:vxcqj@<_eسx*-D"hj-<Xrx>I~B.IVœ PRKhX!MH5s[")SAx`'f"H ܥ>1gZ(CEG`qAR[hd9#i Ѧsp{)x ^{>tR&bfטӅ +ES'(P Bm"aF*&D6H/HcAd~&7tҁ,B ,2y}p4|;ψc l;B_EE6 +UlJ4m2ܚIYJCCZ4 qW 9,ʚQL}ij@,бEU3D i0byu.&<8r.J,D bEpH%O6ԞR3@2R>亹eq~S]Tgj@hv7:>xB3kgދk%.EZ|K7ʷe="H6!̠lBÃu2q$FEOͼ*2f7 ++ݟuڵeen_XjfzƓ؜'}q8& +dH䰰peVpe$r˔!y܏yM].T3\=IIȚb*]x +i +++ ep8+NS&lDFŝz}׻Q-5 AfָXfV؝~V/3<ҵJŠ6-LgQ@ƹ0K8 x1nu^)<L~0&W38~e@P|J!>DyG7?pCςBJ }xqt rWvIQ8dl4\)%Wm>~#(>iι^$UDw/nxC_(B'E+E܈ +!w 26,K2IsR)oi$CIƤ.)&Fi@l{#*[+| $fV$ԍ41g|XfE ⾣%Mva޺ F +IԨ!@{ݐ !6h/IJb *1W48X5@TCq,^Bj-eK4žr2028a`kd, &b}XGb>lƚb!X5 Pnx1W8FEǃH hiߣ: +#K-L lSX0j_`t_`Rj!gq:$ Lױ6CGP` 2"eP+'؂L+ea #DK߶yD2'#]kK 'S`-S`P` +TuVӇJK;~xa'GDuTl$v<(+UbDQuu+[6W$ֈ8jbz,Mw6N ̔ay)a&az0k0׼'0U'XI`G%щ7-HG`h&D@L0-#+TQW 7F2U<:JuEq}>%a0faaKaaa갴lu0B갾cuP|(yuOaOMB{'k3Wk@ P/wJF6B$Yp>a 5##X_ XuT5)ZN$+*;NüaXa&{9l9&:g8<u&2YlmX .[EpQBfa I_aKv V"0T6%:k-&YL,+ 80N8Lp*pI }1%$=_0p̉mR@:(?)DnIH5(&6'SrHJlUU a؊!@`=@3-S A!id *қ4@27ajɠa Py`!~K߽Ls bbNW&vFpUC okn~%ZIt@R +`j;~$l(tO`_! Sns%N \>8ӥL*!"J,&=~U@K( 38~,at&Ha T.P p7?@ LCh@4f4I < ^QLKuZ\>C>VilKbTf(ު +=H,HNZۜ>臖K3 E~{pY>b$SS`46Ɩ?b V LgV1bB,%*n'Np&V[E3㉾Sr0F! +~F4p*H @fSO T2XW?4@ؐ>0"kU]U +(W Kڠo+9Z#-W^,njL( -sHDۓSCGp_()Z!)^+Uj(@8bhS⋌YoDQ({aUq/Хg%Jp!G M'? ,/5r;5@PXtSO%>\5\YN.гWZ>Dee\ ݑEHF(mr,Tx @TA XX.53\ p&[Q\̋+#&d tJ;(.&;2G$6tڠԃ֤ڕnrKWC5Nօ8Tb 6I~eȄ&((,RDNNR7CWSMcщ2>:<%$ ؉TD$-qX4-BCwEAsh +ؖkF($G=Tk(q9}\@Kdo44!fEERCb5@`*Bp>ʈ"H̜ݐJB1WLJ8AR +:=_C전ئS^6`T<57:nKf5@9ĎWAsUy +.HJJH.2G+ɤ¤졒 +bҕk >|䚩 2G$qnzsjWV4G6p X MZb"] +aB@c4\7W&gO|;B{?8:hC,gus:v9 HAԈ$߻b* vJRJ&]6 +65Tp%Iǹ]վR.&!RxZJ^+B:HӤA~ j:VY9p}|Ah \]ne |K$*vI.u^L6TG&ªzg3]:LYΤSj;"HWjBWxI&jS#S,=aKܮ  x\! 2^N5}j d541)0]%JSL2/Ȏ?gR|5 ͗F Q+GUPnF1%ʗMw…Y-$:8Gu2&E @ +Vq`[~Wm+%l,HH>W@pƏtOaXtpT2(eqHF6Ah"50Ul K_z+^ہU68ZtPy5c (] 8b<(\y &-57u?,w%ALZeץ4niJ2xԐOC$@Sݰr_EyLc#!G2 seK\$@0P6q`=AQdTayakʁ %{'], qr,R;%wp 8"{&xdUO,z-wlҺhDHÞkRzQ,b59{b Wa){E)fr eXLvF{#3r)Y(aU$/HMQ6uA}^ %CG")) +HW^)R$:ߒv_ъ55_5HȷXoFr(qͦVn"uD6x!γh+Y^'@S=P,I?oQU"E @êLj0w&XzBTUJXλ;.՛w{"9h"@8zNhT+W;H{HQjQGyQ}rj3>9IQH0`?Yx[0V*Cg xJlfh¼BΡDf:jުć)ć:inX?Ҫ; r4cKY^ٛ֫"@X)GX)Gf,Q-&)0J1Ҧ: кЋP`$\,N$ALYl\]e*PUKd* +(0+R`+X-k< SXؗb(Q`+V`(pǨ>QكۨXA d#vdA7xJ:s83j3KSM5@+\&bAʊ:Na0𰷋=L lSk i2Xtazyz^8=L:] 49荁'WJȴVpV4u"t(`]o}37A] +/,4XK[0#-EVJE$x* YF˅J'0M`!6 5U0Q(6(8(,gM:j TECZ0|qcECTde#'SP7Bq?Və⡄aj.p;QxE6U3 +&A)lm nF$[I 9^Ft04_ChiWt~ɤ(\&Q)0}nQ-#9Wѧ15N"" 2BmWFECqnuN"FyŠp)1͙ց-[&6VJdZ C)D+HW^|<(R4bɑWHT}I0C_ HXŲ0lԎbfNx[Q&,Tay^8娜,H"4 +6eLҾsW%zH>ArVo| +E+<8cY`ﯯF\9z ^^ ɤo"(u9C/ wPIff!cZ]8F$zI*i@PTUZ(4@QBLHX0B"QRGߖ2Ak. SCj +sSA$ H +T4ȩn#ѡw-dȣ{t0 jU,iTDEW%V*FЃ4/m\(% E$KJnR#XD#* s}J}0." cF1g WH%{]@ZSTTQX !=5 cZb9L$k48 HpJdEEM +8t  p EIS>| Ba0C w\ +l\dK?L(K j( |iJSsegqUB_ Ql9a0OfSC,l,OdXd3gBFjWfXlP8ZMbB}Q'GGeTfRݳ/(*CZ +Wa#=ߴ) -+r|扆]:< ld@ptm R*(i63ThpPBpE(" gyц/hY}l TYW,A^k.DVJ`Yx|8),Uy}'&Z\ ] +c19CyQ&7՝p#EH4(X8rFS+5j!?uI<4x'{D ql kR1/sMjΰMM=9J5j{Ký̄گrUyIXjwLx(( j /!5aB0DRtRzB@ fY ^}i5ӆmRgIS =+}fS] ^K-e_.HTc{ N$*ZSKpU1)Ay5YٍbdgvSZѓfb =PTo )u]3qu6!&kA;cy5X +SX"EIJI@dE)H4@`+LlV)k`E* X@eìo&%ΚkMAs +8__]B{UCL"~ e o T0EE+*=p]v+%AQ)MNjOI)t>3hrWRf-DRgzw\0=HU14tSoJ,/ǡ#\-#ܹKo?7I΅ 5Ih& 0t4|[$e-<%t%""|Z9v& urӁ.e# :>$j+xD6Stf'7{o)`ss;%=LMq<)5d)=WY9qfd hk&avF FEeEn@1pS +CgO@nī<  +y `xlEa Osk D-͸ɦI )(*4\yhۆ w\{wV{Nvh]YPsBCuu"@.ɤRɭP Ԩv6 @BDڰbAd- +!I"1/D%?:x%]<%:YJ %~6LbGbLh$)C$ + Z4fBb8IS6+3i5@@"'"$bv11}21ClvcQdB-:"؁f`=c"ha '㸇60*8i5@:YC@$K;: b-1br RgALb@Q10Ra`]f`re`bY\)~)0E[~klv:٢PWj-(tCY3%JJfOF=JFˇ·[aWԇԇiԇa*aG.ɇLJ)Hs{)>)| ,P mX ժC40X,Pw +ݷa9cu(SB `]EXa-m2a GEXF X.0. #F,)X`;R`Gn@E24@Q+.}[[PO O,yZXbppZA& i!ΞCxxX=,gWV +lf8Sq4SI* + +L==FP^<YH=JlMPnX ,x yI!! +wVGsb4mڵlӴb~:F3h$zX̀@7b1Bݷ5HbA[ri QtEUϡɟ!妀otkucܷ["p* +SD0kcٝB!Z;<}$s9 NL Dôw`笠I]!Dy^P6_E* C +أW|e'W&gPYQ YFZt#d +h҉XZ> ^% *B\ii@ +T<{~ +n|3QPB53MEOb6yq@dZ*^!r ~VP$S\hj@* TAZ0q0A뢟 |!SJEhxfffq$4(VIJ I˓$',--iXx{} PZcӑL@ +F ].wP!O7)1Xz'"P…Yne8$m7cmBRE>)rQ`vá 03WNJU9mD gjtF<}t,e/ 9n釖%ka]YyL%oyZJT]fS8l +1O6/~U Il*תƦy'ft2$Iu@JB9BÐ/lS.6È(BE\1w>ϫ(T>> \w=Q vRũبe؉a.7HD-u MXHb/0P9dTzAաyA)RtD)BfD)_ F)0Z-^lK4=マ]8IUf(5@ y "wpli;'>a@DUR+ЍG2.Zgh^4T$;TpmՋ>5!)#_H|d&$es{%$etu8vz{H,)Yh2b_<hx!W hOuX]5 !Tc If= D* /tnV.5+5wf/ýhndTQ +JdR.K TM_JMy9%o#cZ3!lXLP! x44>&20WV ad2'AW,vV$Mon^( gBz=ez8zBp䤚vu70i i\x +6hg!`Iĉam%<.P4 ȉraáIAnIfxj;9]6)*:$ sZ٫ )i@Y*mYjl,5u㺱˪{zjJc«PFJXMlBMe!9\9XٳkG;YP #o0HQ4ļ.#%jb!F+"3˕ 4#ML# M xV5`! N2dV}t&Pz;>HNqxhDGRG}څF1p7c2 }@vBzE}ο>c:("#, dpYcD^}\Ms-T*2:8D ^%:ڋ!g*i1\V|愸-+9=|ƿaJ$#1HW5NWCl`>MH2)vab +9Mޤ+K\[G;|,ap5!xtf]~^ȚZ]xJ~ZV'45:u05QOvCC^>%٢lv1ҩ+fFO"P 'LitF0}wՄQ*UN-oGH,ra_-XhzF~qV, B31 NUE4v2Ob'3BbFb^)pVR +[4@ ºEŨviӾ옠F#,CuxH2b2bIg~G#s!:W(b |5p'ЀX51tc κ m##dɝyqND+4⹃KӤ {b˃X%1T "BUqXހd@d"vy10dg`g40l"#\ZMmͶsM ](iLyJʡ DsŖ (&$ D9ud`, H6$c100ƅag0l|X|XS?q|Xr!z4\>Cp%9H= `A!<ɗuH|&u5D)iQo=P:sI&Ș} P>Ucf:`fo^ l^Sjh1C՛:7 $KZ-  Y#{ҋ4QAq:+}j$vbRcHXT`PT`HU`.U`7KQ`3Q`x+\;&M +l> + +r= +l= +L zwi;@G/`I~(O|. +ƙ0D4妓KFPr1[iaXnn +fV + +>|aa plLzH4%IZ==c.BՖwb Uɂ*]6WG8Mux G}Cjuq*_@)Wʚ) "aNZ&>PɊ!HQHCP^h$h@<-àTY 4x#7e0\jr~"eqM.(R1yX,C2K] KMx1qI@DX-┄j> &Z +200 ʰxņAS=H*B N+7&cH0{Nq$zRdflKLʓHGRETVwY8tǭd꼞e/P0LHutud>e! o|i7w\A-m܈;8}ƳΦЫ Mu`Ǯ;KVˮ}1`9@lh֘:Uؗ SkA4":`ԫ $G>8WtAF<+ p`ƙ9S+㋧*.RH>dik8qv%rfn\'5PEҵh}-,F>xQGiϭݦ+n:F+ 3aԘFY "h%P/ExܫG +P#Xxrݴ{ +!gx'lT,9jǡ#"pG=c9?^o&BG/JjgB I[=qZqyBm(#9md*7BT84j +z#^sB w .mg x?C/ǃ@/lJHm 1]`=`ō\!ɓdDP_FN;eRRJ2lbj^jgh }Bbj@XG,\k>9tr/zh5w/>On5Nj 44g P</g 5@UWW+X0HqgM yG&IJ Q2-$8Z +?Jj㥱뤥'v!GH`D&%ԷE岚zb]qu0E? C"Ic0'<eآSSy +:s4L s"h r:iڨfkT ]8DԊD9^Kf+̮ԅ,I6K&r(t`: rDj$eLb"7*`RS))j +ٕ"sp)gI h8j +aacn Sw;ݳj7e6qr'ѡ`<ʢ"CHqHDB-BhY,j=NXlM?+|Z +-*re \~P{å|,K,jx g2w}߶&tR!uanxr9|fY C2P;f}4=VEz#|Q+QF`-"J+ 7`cW}ubތ*96X~Y=\ڶ (d]S8 @:yo$c1L" rx ҃ag2(Z0-È@ *Ojx8ՠ}MN,".92-+GIk..H d/_:[/ʓg\wFE9yL" 92@$6MRnVMiEG~';#R%x[W#%Gqӳ.hԶ,7Pab@CTyL*.>LxIJ,`/WF)LJ|$MיSJMӣXoĚoC%g#:@ND,D]$(JPH4LJ Qt:sPX@FBPz)pKɉT +[ I•0-ia8DeguR:XPH ĢKj@0+d;6SEee^.Er/N};|&_\O&_ܾ@x^H$lwWY&;j+q`\DƂ `^:s 3/ 5hKTRK'K"H` ܔ(LknӆFk֤*LG,Ӳ@d{ɕ a7!`mlވ/t2L%YRbPr*GAsik ㈢5S%[^ +ɢ _RPT&# kZLrCA{V}SI =L\"ޯ($d1Ț^E4 +J +wkx>HW8ixH{-j]h?($S0Lfjƕׯ5_h'ou;o?mRClHI>{RgЧuZ#=d YBh.|/%h?]gځS!FBԌdi֩ipFz*rSnzf3IJeyk*Q!0I@g"3&]T!^{ip`W5|  3-RjR!u(&Q" mK62:waq3?P°CܛQ0c+BB&S-hъ5_+cKL=e7SrGs4@@tPΠ松`lGOI@@% uW(+4IyQd7#H?q椓@%pLN P<un(8psZ V77\)x \/> ~$! N R[%HVOi4@5yE-:2/ʈy8|>r +3>K +9xΚį4>7qO{^a?6kx{MQP}ߎM>5@tm|Sos YoŚ :9ѫ{szkWխ4%O.iϥ}ϰѾ7hD9{OmMlRMLpL ژX@110K,ayK%F=$ ۀY nY3SjdpJdV$,;= ? ,ؼXz@390J "10҄%i"3[`؀=eA܃?BIW +! +3Zd/TTJ*Lp$L0}0 X@&lR}a]k>,/5Qe>"|10$0{|`w|XOƎ͂⠒D4@ EKQ͍ᰩȰ>&Ua9@Mv>vJ3,NX`\`.N/0#^` `b #X/.05.0{Xo$Xaw$+%\!eˁG㝣c%K +iMx)HD.ÀM 80G8];>u]iewp "t&)a+\a<8HYd{.Q +m DF@>iypPPKU4Q1^쩣Ap&_S }d$ήtS84ʢad% #\h@fM |A47ٸ0OEE®up/p72ňݥK0"58|&! TJ?j4E(ĩh^dF Ɇy 'TDHt 4I](nRu7\"σK\u9t9]8e lLTg!Ⱥxl*佱R  2UQhbWU>YLE\$7OHj$G:r(K(]k(#hJ &&dP:BJ0/;=$Gz,V +k@AԢ(N(@5bі8E$ g `Xac#FJC`)wJrĎeM"'J|7B ƧGZ6:+T^Z UE&R<ybdŦj}?8%!}h+!}t` zUr  +qHH0Gb!A RjL;N#o TtHRE61oҡx($#OAYWױ1)Oot*Oӓpx 1,B7C> +`c:@ѣ?`ǧbWֈ,S1T)RQ\@:[ +6k*"[.ݱn'F6wJZ\obCLy8HpC pAY |\MQÉ =/ы `HQ!ٛT<2$ LKkDِmͲtEwv+} mJ6͸|ɘë$no P &Pe\q a2b)=9VR2j49**sDDIEV ǔԣS7qBh2U${uidrg)= =mQ#@Vz]CF(ODbs8K!-‚Ioθy5D<Oj(v՘j SPYJR#a'6E8rR}xRq~qȬ8]_8p<,gfʪJ4H68K 1MU+$\Z ;;tē.R\Le1$%LƦ[BκE|8(€PS$6҅ pl:Hۍr$̵E3n{ {Ӆc'\ ԀP<r(c(e+JJͶ4Nz6ē YJ +( +[{D]@ʁv'Ad'd+T؇w(Glx6 vP(Q :p {pcJJJuw*7T8e$I!DIz{aꈱa*yjj0iTĄj+1W (bS Uqf-Re#Gg`+;\V]!S{KA OsHk'a{BSĥ\H(R,;{9%ַ +;a6A7j+]bO= x!r +ڇ۴!d `-c6dc^*Q1EFqʓmKhL0MyTb.DP<\+F +3<|ɡ+N;J=4`?z(PbݦtDT89(ʼg$PP_O økQ*A`~ş".V%"Peg K&BC¿"5'E3pw@[jD +tb-Z wh5\k-Ɂ,\ ̛TZ攒\@`T qd"fŎX!,Hb'ɀkʨ\a*Z&tq ^@s2-JEatw6 1T91BŃY[DT^C!^l_,_A"q &,{L +hyיY1XF0^UaXLxxj\ӳȸnHd/;durMVX*hɤdDe؅8H3u%'L 阔R6{6:g2k/=ŵWdAu)|4p;@ٲ1:w2kU5uim F~Lff}Z2TJjg +=bf[ds<\N +(^U4@ 9M{E&' Ǘ4uy ux? <02iz5Ѡk#n] AkFL&$ WtT)gPnR9", +ƴQvȺ]29c8,1loOO@]gB;gOI眮iEɤJK sw%g'5:uQQ*<X + EՐ>H;d5;MH"C@QQMqɤL$kÕzK YpRO"=+ˣ0h4@@va:/+hLr ++>Zxw]:^$m3[Z&@tNRWOóOtѵRD>Ukj~ZH, hWOX7bνVM0L5 )YɯS]4$:<(Qlv@LvSj;|Mv HnuxJx7zX!R[%juxҾw|i߇7nE~}ʷۉA~hL,O{ [!5AS"*bCgE8R; >%-ǔh0uGjG,m%bv'b(K tk4xiՅh)9Pt:d#-AyM#m AM4@@El9ElZKk}DYdLDVC dBXNVqOQ:܂bg B$ xx ( &!\`[ .(yG 1Jhy>xC` `0( a0(ƬQIAcq| +BAHD+dwu+'Iџt@tϋC2R, G.ԴTRFd@<˲hUx@Kî4!,G)K@$E0;%M⋖}嗹@9١eUf`D(a+E0``@D="u`!ˏaE!o ;,@&,pAN4^Ua#)Ke7,/1@q=f2,f@)b)q55sD@];x`bK1 w >BƳ 93;|LSOT?E2Glڅ!  u3ӥ‹ hbD,Rdrтj\RdM@TVKYl\>,mEZ5 MД& |B6'6u[$F`"Y[co/Ttg vmM@ٲx_o6#7g \M($;.zqph`z^)1,ɒbVR,)o{ğbhB2RV|1l>y.\mCbRƏ ?J= $Д!hy+h'խɝ"IVhUVuKZpƚc\ΩU-Ɉ6|=gڸhOwf->~ jcWdZ˺~cRit IEppYvDZgb6 YKhlC[i33ؖD+E'xEA ^&EҶP64Y޶,dDhJ*PݚTez&-NO+,`т}r>Tcf_i$m( Yb"$V1_[iɍ ƻv6Ql4gomG$z$(j&58iqxTph3T-ڢ5@6*:b*t1+Ė$? Ym@荩@/CѾen3:L KNt,Q'&`ZIsj@\m ?"jp$W0AEZ +XB9B-(O-A2q ]J.6/H։txw=!,QS@\WM˯`H ~;%.ڙRHk3ﶎfjlB4pG,*>ALH HX.MKXlءC)ka Qpk776%a?Gڃ.ϖ9w^@E[Wf^3P$nѪb0CFv(@sH~6L= n< 9 +y*ɢхHRqEﭏ$`(J 2SXdyZu G +xh#4ta skAj*SY/BxHc4t^WM Q";/\ly (*A? lƐ=pfyZ+ʮXMGEI>Eg@/*9M70\w]4lDA2<*fq?U= +P!3Pa98 D'@8\@aͤr`@E!tQ!@A1 +(ġC4,_@0-OOYgZ_РyT* 0O[p %buy +,d>5G h`஬JElOsѵ +%!'h.(E;jZ<%8xSLUx6gq?[JHS8.zU58]4i LΘ)Lj(VsN +%oFAd8#:,ҨVŠ:d +ͪn +іߓ4Эej&Tim|T $"XNrA\뭽udkIKB99<&Yj]|K{`LEr? +UјTZ#1 eHE3b- +'Kwz|G!`UNP_ KrƢu8Q%5PT4;AT* b@٥Q͈FN|@T &_="A)TsA0j8.C=OSA.bw߳!ξ%i"(Ie|̽951˟r +pi'.'zo;N%7.ـB./UQpPLW)'s"qgTŠ+1\1=:EO:h( 'إޯ +f#Riov⯹A.;j*:л\!%B.XӰe@Q +P'd] wDrPz E u!eu38Chv-$pPmxa03@8L5RDՃfp2vJgM-2S&%$R @c~_TCGDI Q @T`F31,W0~\kQR`[4ZgHa 8s :5;`eCdMJ{\1F7v*B+`yPNv=%jD#L. 4CWD7&@a@u )w @tD#$UC@ye_,\o57Y5%\Q+|Ft(3q f0Up CΓ&b`Y4a ހ` + d2Vp}XY0]xXP-hW"V;v#T]Dd%?c-;I$Χ-P >n,GIE1 ]K qz%URp9OăѸah& :+KS˽}BbP[WfB؅rHwi0a]XӋL<Hr$NLߝRVj3Yt2X3NJ'Ps 8e%-,bKOr:u/*0Ğ3c;|ts"f*WC$p;AkAB c:@{ Nl@UV,,Gkcqؗ0Y.`r`fP> +{ ̕#SNxB&\f5kƽǼd3Cij +J +ҊB8 +|/ܪL/2M9*P.%X MB*.c6f"PI S&.&.L*.|A +0ԅ8i"" kdqR rIl$;ixgB̃lS0,&,l!X]h&u|"Pu S(c$jv<Fg #/#Y&a˸>= +Y=(k:I-P4,8U/ OJ8d6* f]1~.f )t9ky1Q +6aad~A\ѥRsNOtdaībD}gkLoBg ʃ&L*]BDlajSm9P!۴G(\e'$r">d="#ѩǎײ⧱B9@FmP]:s4:Fuw7_9{2bYiζnbPR +c aν/q`.2Ć2^ps+Or"2 ]"e (!LP nFnBfOFƙʕ xU}9.>RnuN@o^$$LY4*c`? +qf)jŲ 5Ȋw]" {n=gVB"H%G!{!QJPB@Hd`" etZ dYN8@A`pA=xI3 "1̤WRǣDfHBOª<Yt,? J֨`ᢚZ#I B$fԳ)#P@6ȼ-c|eY`"c +ゆqHyI{,A!W֠!p. +|0(9Dc[+@tֈգ|zSYD3JhӶEӴZsDp|Ј'JvD|x,OcʢXeqnA- ʊѬw=OьC2hhObDd$|v9-3g^zucKϚm$yEU]SٝQuBB3E3紃PY̐ka`XA֪kQv!LfV;8@titLfA2= +RC{B:OW}ˋhYN[:oH؈ʂ8EhqW#k&:RFetjt<0fhX@{,@y)WMxAyY _1ATd6Px +)0Etu{Ao yx1)5(itaHV݃ł4*:]hPw@83 q۲eo[8P,V@+A6oR>l%h0XpP/攉x%)'d$+e{*Mpʜl-D)jTANg!c + gh5м@.8_${~̨D +5go(9v'; +P g%$jX TAib. wh勾泋Fs +sȇb 1 p2jXI9%v #25viVBM4JXqVA +4W>\$w[Wpij(fvzqB0J+Tk|3|DB ;cmB07E rA~*['sbFg$́.Di (U#OWCVXa/ fp4G3쾨cp6-V/}[ #KqeTd:DX 7,:xLWK~BOvYHo k~E+HSҊ{fhD0\F|]bg@#fA}ØPN}̋SQ?tbx + J1&D?t0Pt&X Y!ƆᴊrcCByQQ#02C__>giz}h HVM!p&tĶ1dec>S EKpQ? S&{nCjY뱑cr8$3vd~|UO7S淝|PE?+]gG!l~DŽO>UE۲HSEP~C "!XYӤ%H,4e"A!Ppȟ %?qu\!GeQCQtk*Tµ ͠l`9e YKF>|J@2*1&a L>IϹ _c@㜎|b?1/N:q$p hj2wԓS*bf gWo˰a)܈rXCU뱘Utor|Y5)Or5/ g- +S< -!p,-0"'%+EkZ$1ՠ`gr[NX/"\QޫBjY¯9/~ # >$O{fu_$!ėAFCIk9@ dz,rL"pң<:fRF4V2!ppHu(6ہz _Ù3n pr>Hf"υHC\s .z +t)IU^֠zN[2 +`'9@a VFJH,0q]wWD0{9-X W_A/c /M|?!DYsp#HDY#@3ͣBٷIP ՔʪC0+\,#HPhH0Vb2O>PB9VFzYEC&Ƙn:8S(E:L3tF[KAFdZ`e.[Bx9ԵPkNRM=t< 0n(+8 pX"DBsof4L'c [Uه9e8eE vhh0Ӎ"gwPY^B78y֓{m>C1|MA-ĒbB"+橘;Pʌ~n՛ky4qM]X뻂Bv  A(3!(91"/uw +{8} N?@ҧ˷3`7b9@6]wy"NkGRQg\ol +r`?,Dt:)t̷̝l,.S@Fq&!VUfN2`\ [ `e#/(<;Vi +̏+o~I4_2c%[~#(%f@CО$nxb,d"D1cX*h| \&ǟSSW?QǗݏ?tZ#>_?XE(>J, M(Ϊs/ÈUZ%-yA,S +ZP|6ᳳUw~y^)X)GRy]!.RE/˯)|4T _|s;,F&xn՝c%H@W)Sl$xc {*N?hT~Cw1|!Oh 5, H߀i!|MV兿bbU9!, V3'T)^ĜgVGR!( ,gAGT߃?yg|/$2:(eZF + +>( p b 6zw:xL9#t ,1ZL*Ţ%VT}sR*ROp ߫#T{E|oyC|I{~R$ɵi&o;,&B6UQ8B G-h\SDm{O* V{{PGQ*{T)}gNy?5\@yfS @ƒ^{Qn{3T6^ǐb9u5)!j+x%CgTb1lܲIJg7{ 0qPBzo[˛~JGRܶ,%1bM +Za4726;B݆_B<9@(dN IB0е TBl%[ukH +""А &$.Od;$ͻ H41|KɺTyT٭ +/YOx= m_0ՅM ]fBampzv[dY% ZBPꝣHd.YR +[k +Kd` Jx 00HbMZ>]\c6A|`L_*eEq24d_T\(e00nXBќ i,q{Bj2tKvs:$5UWl +hS3ToC0 L[w 8y<ٽA+Jk Rfeu-yPst`w%pNDR (bl>hF.@WN#l Рv#hw&bx`42lh=401RR籇X`PT +qZ%Rfe(}"A|n7}&~Rk͹u"cҳ,!u %)`ѬQ̉N7<ΘCӢesoQF=οL8(:F% +1nMU1[f'1`.A\Fw`kFgXͬ%N9'H)>OVdL 2b4W @&+FMFP/yv]!Zyy:F9M +z9'd})8@ eE[5&iG  Ƹ2Ce8uCػ":F4TeHV"4R8@uD: $.)J&JS{c ՜D^XfAyCx +!lTͧݠ`:"!3bEowg!̎)e5'yS!%]N"̸ P}菄id:`g@r%BJHYqIu\q@#dgèڳaUKR<]Y}ZbͼSo~H11>b!pclG-.CľP`ӤDe8BZי`)l[gMZ_bX/3(Y_n$]}Φ;fOxF-iPp? 3iD N@͘iu.VPs &/|!Gٍ+lȭEgQ"?*KH +%Й.04Cw+cD"#.Am#CZr醠X9`S) $' gB3 1~:]&/DܧI#Bj| 4~%A3Fz +PI_epT]ŷ%U 2ўVGl A(&Jt>j^Ϫ0lUqb[܂F,~+_7E|{7:◂/ሟ9D18OhjaY [Ŋ/ 7F[]@g(A.dM tXa4)Da,2?9'h;ʄS>c +BP +$:Q·!%S _x>-%×Gvj17Q1JɌSi5O 4f`G8eǯ&~8'M2z, +g [D0„[XǩV$silbߘV3|laQ;4u^Ǿ: rW.ܪhi- ~DfO|5M}2{6c╫S/~YK nL5a& Е晷`Ba@*5ޑ+* }D?Y>esA@} +ee!lum3~q9C>YAEUu( zxe 6e\bzI4 &\32*mDA 6(ލ= z0U94x56~6T^ZA`FC1m2 ἶY)p9*p6Juz!b4E~38B-Wx!ۛ8jx4܋TUmD ۡ&4o쇻\|:WF{6N滛:Wi} Υ:Ě{T'?8{H#@C0'48^hK s4 "5L-M +5VgnCH kֹCy#."\jeD60UJ!kKҝy@ 6 L g"TEN("ԚuX3rcMj1!ʵe!/"U#}FNC m?$ZP2SD] +HWOa2R^24"\A&u/F[ɔǓ"IQ63x *I&T,iNeD|2'@\ [eHSPVv +8L0qhRqt5ba hK֎dM4E YvTz X#:wY^ 0[b +VTGE~xM!C)g4EM UVUR*V#CUҕ77颐P(2_vyw:ҤkDmZnj>S:ޡW:(pi*5K]*%8XK;ZMeU qT`~2Ȥbn`Ť[ M͓M]x.2$ŐLrMz䚔.Tfi⚥prњϭ2vuqTVDĖ8YC+^eTӕl|_٠9,=$@PuX!6 keS)]qpvȧ 8.J+ XgbkW[_[nNҔ\T>_} إvu&@ԻC`3e q,.<ݠE8¬ eT]87;b4&~25'bE4HGWGHNv]l fp cC7(l J!=%ZCdqCӬ:T +{A#eZкN5[d _e;,=F,JEAʰ[r eyCjB)Jֈ#iyӰAŵAsAsEG'+ +2- XXiAbͷ|P|Bæu>u6.5.fǕ W ;,62*g@VZ?z9ҵ$8UIS" B/|1A=;Miq-je$8!s^i _ڻ~)8^!+:RQBN#4tG i[憴]:)S4JʙDj~LsJIqw7Fq<.̶-SS߇skaQYc!H}ímm}7 +W uQ_qe'@F#֣OPqQJ:#y(BU0}P NRP_ ='/$sV`\Hca!d_R0R٘/?03_e3- +֎ad0 8Z +̙ rьv^bPsV'yGg#[D(_N|-?_!$  N,,'@8ʮ#&^VYW\z#4[^-|_f|O7QƇYłl#j|y:~K)!F{<#C%JN]1;W3=T!/] +YBLfUw G$Xg(,#H|J#|g+>7E'|`_ZGa^ lw+]ftŐjR0n#ec,.fS ׅ0g9S%?q7A|) ᯡAd{r_|!rpl Fm7 9evJ'{/#ORz]d"P8qLd}p#ewΕg%Ji=$1~L7wo]*N M:mI5h#F< ї:a2&ߨQ9D&c(lWpܝ.ZЁ;h]$1RfK&*2 + 'l'El=>*a3[J9ԦҎSeL%Z1nDtm7vg <D`hoI&..%$D thtl ﷴ̴TƑiқȩhtҚݺƪ+ujɂUOQY1 e'g P&T{ 0%mwmU$H CؾǦd + @,Xl8B RQUMʵd'ךa-8[+ ۽w =6u˶˚Ŝx0py<6VGcLP t nF38y,>@{58Z[?T]CL,f:iHҘ!݊)[)FP H~a /=:+Lp)"Mi050,`81Fc|6W +WUKZkHt Pɬ Me~i #Z%8@pF7aJC*J484X'ULR l8fUpP.WAZCY\WMnut75"rnح#$8$h>PH]"΄4E2i4MH`Ar t}fH>˭5ܲ"[JG -ͳ%bwIj]SlFa?3h4tCN_~Ӓ]8R0hSf#E]tDG_tg#sIuǜ `4Xh74S$9 fg 6XP;0g1[z[IPL2,l R#M936(.=7uNß+ t9MN>;-(*-aw MP52]jb Phsq ~ N4T$F>+!#stmWwW5:$8ѱ#@[P e g}]"+yXQRqexAc1ɜ|4i^MqP%i5.Pƨ@3~ -A( 8;.eodX\ O.V$+&Boʻ8\ifЬ\蹢{sG.l2fZCI}'gG{V9@@28(\/)O5R^XU(eŠl3DuJg>$i$`_a;qnl̾Syk!U_!_0-vIK\? ש{U6[ :;.npy59PM9WcDѷec}rBi}OQPDxBiKxуژ5$ KWuM_ȇdh+_6 ?;|Iܯdtv\pW#J`!ltT ?įm|aHoM0h|v^"׊I~0ߋ(/?ckVH;21-r=9R:F^Հ*ָI{4$G77~pϏ=x|?[4gq&{1 gXy)deX0.#KO`?дqqi-rp)-\y}~a _AO2'!/aÀ7 U{^?Q:өǔ0W*Y^"hlbMa7X|LK#nkȈ-Fm_0=t,q>;E*Ɇ='VݗԻDݯ I*t)spo?ΘltvDyAgAoS6::"&.[2+Tý ! }k3q)#H3hݷ .MЪ}pOiC^%dl[_5г Xi ]?٩Х5bjsA*=:&wkχPieBJRr,@c'Nr +A[ +RGH%xx2|(w5PA+ +sLոB``V"dVPΎcx +'J&0q\cAtƓT& ]O: 2(G"!A$ 8F&X ,0ՒGK+dKgQA,NŚFݨ#Eb, y\}A:$BV hA18d!S9@ D8SiV-lPABzįJɊyP27AlΠzĘ.RLe'FPg oelYJ=_+$܀a&še 1!>}-Az3)y%1-;&Xyri%V'9D(5Bd@]CJda< |$2(r ؒ8$%< =@\ԁxj\N2q#G$$dDb("ϲ"e]&q(tKO +8 [y%i̵8C=tb{8{XH=qr tbnb+b=RDm`Z&J'cܤ@%B{;&a*F&\D <7 >1 XƌjXzsr(sYl?砋?F-ǟT'P$9@HP:ޡoyg4hU%5KOU\UOͨ\ZGlŦ(q +`R@:3P +(9Cy!Ad@4SU:!̨b頷SkRqUw7:++뮵)p6t}V,t(Nm_é-LrcjO?$/[,c#Gۛ%W[%EF&_%Z#e7Z+Iwk:A0nb͔\oa|k適bHf UGxЙOLQa,$vjuq/qG4Z[;4ߔ\}\S+8\z:lru&\C( Ц ?j g1i:LJ6DŽ-ǫ $\YG >Hp,px0Pn9<*8 PpPpqJA% +%F0RRso9#Jf8@@BqCڇh'fҳksZ r9(b=L{LVJ{̚-*Ok  0;+Cn3R:Ft TkQz~м"M]6PVlLL>Yq/TaHraޚAՑz1"#^_ u 3sNH$MH ŴB4:gQT ukb, pRY1d]8Tf#̆uڍI.5"+hOO?lVi(Ș>/)B;=`66qFKӺcKʶqŃڈHۅd o~P 3A23| 361>m\o>1Qqvpzm;8?G$ QA>pv#V"LD:-VRFWŽT)2e@U(լ LS`HV+^鍫Fi2.F#K:EKt4B’1% \]H4!Zb:Å**T3( !ٛt3cp +1q@zYS X$rB7e5 +j#3Pl`0Lk @iNCܐ Z1,v< 3`+A u +a%dAA +n d*ԭ`93`9@tFh>:yGxp} 8 bJ.:[7ft&1jN9jN۾^"/G2Z% צ&7s‡h?_qsoMsNkcxIiBd]Ϡi)ui,>YaևpЁ"Z2(N{ȏ'qqۭ:D? Џih>doiW[!}B.Իq`w9@򱇌rBeę ]ׅl0ė0B+伛?s77#g#@As%2 9{3p5"XM(? -|Q/*0қȶQ-?CʿI +ĠsQ3|1 ++K!\)8 S>tJkry} 2v/ĺWpy1YGj|ϗ=*8q*o뼿Z&ȷRgQJ-9@yn5yWy Fp?:58&GƉ ?Iט+r KR(#U_=^P hK3gZ8ߎ 3U8J#Do lD  nU+{ԷM%Ԥ\*n{ % z[ b8+GGAϠu{O'ha>( +#z|믪{O'>J!>c3Grl +Dub,c-5};"YcZr%v"^I;Gn9O͎9IǦtf4ݗM]>YI%ѽgvшc\vF+wd&hb#/0$ O(&:K(Un>:ESnaiJWܯJD=c~c 0(O=&ra˟{u..CX^"qp׬Ό jwO89*9GX< Ts:B!]XaB?\O:{Ľrn erhs}M"p#ܧ]{/p/3 WLI}% +dvKt3S#jiB=ē$kʘU9esl-XfP.~Ml?GJ *g{r3~'Yۋ"B"fãy.$f>&^G[\%=]= 1 !2Evm2`%b٭Uz Je w=Un/>&bu {>zEsK#Mݸ݂o;ǴXNDK0!UĴrU6G!*eK;G!^IW_,2kE(8%C-,\`1L6ʹq\&DjK +VR\D=zbx/=F$nZQé."g LB.QEt$NM2`Am< ꃊ +'QH6 ekl ][m뜁p^0;VqtE*sxN;$f.4e+> (k`!LӨR # b!H!R*AB1`!Fd$%I0gL2kB<"WL ;+wcs|K•05оcc)r 9|2*Ҿv/_4>Dg ˪׾$Lr1skPKMdH N#GW sF_Z 4 K sD&2Oh%lj0ȳh(sg>R1*pT<9v$heykh XJ.У\ "/Ʈ/r9H]u ;ÄA+Td8Ґ{/BMҼ &|Lh3eg{ .r\(V 2'LW#dr_5>:BlD~Đ rMd9dYaU4<3C/3q ̜zlszi~W=܇Zpu!qxm󧐌$3O"^Q%(bvf7fhDE.6GA٢&9٤FdT"iY&Tm0g5y%T Zryr徎7P1T#A^HIʫT?@6 VQצV#Y/t egNV +Ae/?4QjIY"zJ~|CnQİWu<k\' (e- `ȲX^P;5*O8cxW(XGp? )c2p1) !6 B`iz&u U5bP[^Tr1.KqTG̙첊?8略,KIM_omR +dhvae%B +N14FT."bX5w;Nc,Zvqˈ~1@}͹hpc Ds쀋\_T @%sp5u++Tasqf TZYk~3,, 'D<8UۀZh4xp1#!,Q(+ʃ)y;\l07fQBWV#[^%aGM`?6+h"9Y M+z;ߗU|ڿlLO~ױhd|'SCE_\+[)8Bk $|1 +N2\K1ұ;8r,KKqKա+J0|ϭ>F7UMj:{6H~Z1]&쿭/CJX WIW#/J+!|"|s~,)˄S(|Qg s? U6H.Vnpd=#x`G(8 b/8f!#D(Z ?eYY`ܨrJ ґ;ZZq]hԓf#ĉQ&=dU+31i(t%|1{sSFD,KBeھ'.Cw@j+˧۷JlǔQ|q#Avv<>l>R1qB7愪AүE-E%H +b:2 &3r.m9;E8{Z|=_`Y/8/Ҽ1&aK<ȥa! #Q +~/@]B;*ǹKƥR"B" BZʴF5 tҳf/}~p Afr4MI"zT9v +s5xms-v \jYG@!9T|!RTQo? ijӏE-K1HDsE{bظQ-qbD:INNlEB:i1HQn^Rhg7bKH=ՓŷcDfIÙ I-M3$'SN ?'$'!Yo$.wIB`"rZĘvrB b d `MfASrɢ )~Yl Q%[妪nd 35{DE4uh*&%rm@8Ԣ0~HMΦFE jl@_qo(N99GIR,hmaMFҦ [DT{<^vҋǃ٫ٔ<թ}M0q!d4HEb2t89NI.#r[F7`SNďBqTR'J~!D8 XEjY,I`&!ɮ0fZjқZAFD +y;: EĽQ+ +gK 14JP\J,@ʬ5k/N@'C_g]ٌˁ 1yqP-.7nX,IM(7I|NIPfc"% +eIs> +bQ)'7,ؘ֐^ {Ta}M!IH8$] hrBSbr"g+zB GVb&AQ  $=1 _WeulLaSld\/(21iKWEfAUmlE2_ wr>8%e/ğOm(6O+ϓZ L-TFQSDH^OgwbrWEHWţF EaPX*Z&2G +#Z-ŧRX= Uc{jД@'=,Φt89)pU0:}W"1 ΒѪ\*Tx[:zD8z Z|rw(OΪ~(5P:K0uZR$c?+f7$Nْ]j7=C@Ma?#ġPK{'lji< +@NuGqL?} ?Fg.(ZYp/gDO(6 zYA#"n)T0el@, #bN/SyV5ͯa-YŸw5q}H{^uaogJxQ{f P +X|.@2ZpfW&rJ6ќ+veM{^txM`T9_`ŗ5ȇ.?-wCg0+¼WBjtS4[c"1tBO:ωцbl +׷sxά~y!>ߚڠ\F'G-aSH%2Gu/i)Ɣ8h}[ ѬC9ٯ,=bY`atD?S>F}AEF KF,V p:QpWRP>Ż DX,vfXK`8،vd,zԸ~۷Odp&x_lItX5 $hZ&'щPEZ E%-[/ݩ|rRo7цsHCL} _!_dE]xA|OQbԢLvJuX+|gqUd:Xy} +^`P?OcćG[#O`=Zm&BU#t6tH4G/,K1mWF:;IZH"݋PG>'܇?o@$Y`3RfvB Mu_ ' +L\:E klP. PkS ƿou%YRy7r^*}#O,I=,>P[Y%tUyYzw{|;`GuYg _"iVoR×[᳼OG+mI-ˠ}h/ tZ}кi.XJqwA%nQmڍ7 D_E[F֓=ză|}}1C2|c j~~kh8_UgY7-X:psiyƾs +endstream endobj 24 0 obj <>stream +Mi]z} + >AHSiZ00|I>iE__wz}Rk*7je@ 6~3+17M(زgٿGNR) +y}B~ȳ?B$/#8ͫ%nd q[ӝ+oԧR{E=ξeDgl+*zEѡ1c#/Ȯo7cFA! ^Wi`C"ca Rб8I(}Йy8|(ǵ ,+H넵:ed>^[R,nlrYd9TEy0%36NJ2Ȋc/k)bjc6c['d08DW<.qZg.l8pj/ P,#Tc Lt^pgPq+$hGDd52*Շ+(vS1$)ph:yT>Sd$qBXJSpL ?mCÊ 5ʔ(;Ů#Y!1k@$tP9ɂEWn +#Pï,"4q%UkN$MIXBA (( ` r3g9v2364NDKU|b]HL(TR-L4!`;GrpCC徏K$P_LTy'҄dhwdٝICI`j}(IzeK)"L8"_q&2lt~YQ$ҫb^퀟6!/th?`mWJ9LUM䨦DQЙ;"TMוs,ж + !W'87,BhJ2Z}ܩPpn@ U(Q}u wrj)~(~_jt.Nʴ\ xDaQ1DB*}0/\' @r;7&勤8  t5jZ"ú] _SoϕxY`]TZ0d^Q +r0FG\FW`$T=q"K Y4$><ȓܐb+b٭ 怫Vnq2-i(>Qvq?n{Jmz> ,LюM;0so@FWbͯI^ Kl/ژAABf`.U7!徧HW7&nce} E>UT)VQZaZ +j%Ev2X#'[ ץ|Bb$appRU+[1 xe"uWo>O-7S[|R?GGIqfhDm +Mt=r'U3[ʈQnd5i*t𚞞&q?L!_Zwϻ&Өs܊O5CW"w l?WJ(:Eӧz@NX)Q(q2RIj#Z,nIOx7O\bg񵾣$N,Jn93(O Zj[1&u+U$E)u,Bؠ(2}$>eKc5Tm?u\%BqD +`Q:&A6XWmJت0SCNv (nK^| $/iQY|Ts+@c}PnW?1یAkHF>"ܪ]J\W^T*[ "(d(1`'~6o3.G#K) iq'>hදcˈ ^&t8M9bṟ~ 2[Unݽ8Gsٳ@uiz)b*ނ?6Õ:?|te?L%P IcxQHoNw~#1OAZ+GV#}9G"P'7!8o"d,],Z *Cѹi _ /K, "Ή,@=uAnN~l훘pӛo&>dJd%~xQY\JېojCY }qmSr(Kzr3o=$>aJ6lu /;;_._E%'S)K*<2la%,1 t݆N&86x;x&\|xZ:xŢ1 WH(ǽ. pԘ67@l7|4@mŦ*omA!m\t^`孻hshHlDxD3=DY#~H02Z7V4o'Kv)@ZѰ4ZCmmp +nw<]<]<=pշT}G^Ҿ~" ~[+oqvYy"‡FSx !;ԒX>U)27xEToł:d)Mv'XFxM_mRWBpK0ܮ?Z> +}e͗M,.NınmQ$բ`gfd\*(t -QHSI3r|_mVD{_12->,,~5N$8)Q0LM2;k8a2osVX ⮠PpD~8)3" TssrO: |" AK.VRU],>S18,>ΝD4 ȖkҰ1))#r.+ܸ hG贵"@TW$myׄ'}Ƿ"$_?'.%.B/ۡs:=:b7۰p'ʙLM+bPNW"\A;tK#yM)zJ+-@ q>l)9koHa`&=̺U3*m:}\ÛaF9!9j;nJBō I[ +FX ݶ5͠miAp.7!:'h[f =&XF0Y;I!aYmʰ,mɄ<\']}6Ʒ ШOV=GaU$u_F-X%QngʲPǴj/b;]v來.a{ݯg1w>. @TMHFcyH^J| +. + &0:W~ST>&jHX~CB~)p_cr,@ srHE]-{n D&V9I?d9'夸~隀Z@q %qKL8­.%KhBk! ^q4J*\RVy=Pux8r"pǜg/^ItgT+*-?r\DlRxtJ(ETkC印|U??x}H^|:(~߽_Z +CWxRCsIiy%-p05Wrm@l`>'ͮgfhIXCXiO:b/ rLg0ŷi/80DDHfCmIB1ual3OS t7, ۧlpа[W+_\׃B BM}Qf*~bP|{? 4ш 3BR辶Bf +')1B+ Z%Dl)H|>y?vwz[>)m?e_MD@k,}7YyB*|lCj|RQţֿQbFČZqw nЄ%A9{d|~ L6ݾ2P|P|o&*uV/IqjҼ5)װfwy˕CT]_^Oⷓ%7@d[A"uK$潘;>yc!¼U,]']ޢ!7j +c7Цۿǻq&K_V#}-P|~ωv~KWyo /:0.rfdPeALӧK'ce+`/=2k$>&[' F"7<& d(9d +")lINqF&B ,*HPq0{rYAAWsPXKiIkTOfI, +!^XeO1"Qe4)GS%*<455~"U$=ȓ]czV8} +[H96Lex4/bq%LUkzѰEҦei6ll6[./S3/m WA7Ն K45ZKg4h6OF_[=ҿňKJ ݀aeNthx` x)2:7Zh…I٦UuLeN ,Ջ,9xf| "*cSVL\ 3%tegޮV* wN@;'fqN9l—EFƍ }F+=ǰ,codCYp +eNEUn]nD*r[*Q3AAAF7j+eB +32P}. [n.Oek+ӸD"*܌^l &s%X-`-as3"m8jQk~ֹЉ0">wKV:(]&&uN;-8p:Y c0ljܭ9"cAl0SdιUtK 'Bj!-VW$-b@ +Q c{ 㫛׽a8M11=H@ RIhY!nGt*o ]nloﴘpιE%1!f06tPإJ9ՠr=x.Ż@gCYW*`p[Tdz'mfC#|Ja㲞B9?c4XTh2ǖ@W-q?343' }ٙ3DǠU+皵9~ӷ.xQ0UY⽧< i0Q\o=I&yAa(] 1A 1`0Dh^Ia֝As"TR30U Gp +tzS~YN^7Ճg`v]ĦnbsyOO<$DN>^ԍi=捥ƔW':S{p~r^lu)$ l)8_L \rBEH\/!!%\rWOǽOmbKliT7ߥMqjTJs/q#ȸMߥ/#!TDL3QD![xj㙀+4X(i뺳OLKS{#_*MԞ=%.㾅rr/iY#3@K +9@L0i~W A^Jc< `qjGm.Y@0) e->S`7&}860f42FY@2\tY0䫑up]vn]xbO/cpSd8$3plr?pQ̑j+Uل UEN.lԎ؊5w (ͷ _|{}pj_pvh~$tHɢZq"k(NUA33U!eiG+kĨ9S)c +EĎlc.>Rq}uR#AJY`kSjT͕nO4z+½FMS N3^=؋T%(p_oTi_at"h/'L{RX|'ZWϪ*0*\M-FN-;%8랸rSUe.oX>? ,vT:3dK`I7%(˱v0XY\e]6Swm7R-nTǣV7-\ 8|Y d pP#,cuy뜌+V bV,YIfaE}O"ھY'[ZL-Z]+?1r,,]ҡ, ? ^"Fo$o$V0zV0BL9:FhFkX'D.$&T\Yl00 9|EvƓ]`7dhk MeϣA!5w'/w'QԻSٖ+0D6ō0J: -5DRuOv@h)ADB}(kbـ>eH9HJjulcDV%l(:il04 ct4S, s41NV秴XQ\Frs05˭d\ni TQ9g>)[vIx{SHKzk[)X؋䣺VE{In]qK*$ҵ-3;ݮÂ(ZQ2&\ wSUC{zdh00疜DĖH)l#ZvKdV0,  !JFJ*u%IǶmmmbmyNKh Kc2e@m@WD))g-W xP-ʼn!0`uJX&`"*9ZH̑JfU#&d,!,g(ޫAaI$I!hApB'>*ƫ,%3% h}F{v0?NgWyoa{7H5nPh܌ ++ qػ]Hi4L +< +PU`΋N/=U/yF^ $6 +&}+4I`4˫GE7I$|S}?5 k- )SFmK$s 4I/_Mbp foܜH &zȄw(Y4ˬR8 p#%7~F nBY`-D "xIԓv@O)nnԡpnC1F֞$]#5=cz*bp0JM#c B"OzDJUR5<<:N ȝg"m [&DUH)}X8j/' 3'G-fl&ti(a &Յ' ^huql]%n| r:Pǟ=$*np-MRh 5&+[)kˋh~=pjɴyې];I$ P6Ev3%DHuoej0] +E[69N2kY_ +gq%.xQ#gO"gF" /{"`,h`(@/(&q*!e֤DL<^}aH5Oβ: rA%R?V ş{B O$ c +ʽ$"$DꔠY^#=Ťɜ .#JXd֩JLx<(vSiG% lR2[]#PH*`i.ՎIUJhNVf52b(Ϟhʜ.M [[ x|{xCi{1ʅGdAPc6BH.6/(uC>(%P%0bC݁gҌ#rںFr~]A>/_ Y<`G$W%D)dF@J9Bh,. +5"-Xvã8'4RyPNz[ ~NZPmYP)R9Pq'"S_Apnagͅ6Ɵ'&OXF>3?$B DCF%aPyY1:/Lz AwXր v)Y@Rcl{'QHpBN'ZVҬyR)m)ʇT@EuCV׊OanH gH>GS 7)74 +gUMRƜ@zqC$Lq2y8q0^gx/Udf{U#.t87HWs`Նj$iMY @X%|d +甘bڄbx$Jɨ +KqK^[=npeqqagxy= ; }b'~rq!p? ϖ͖mf*`&RtfJ#Ќ8+i)dD"LI`;׎Dzp.^u6jl$&Xg+~3 2PC>HT4j2s 8AuJYfH5''$?,HAYB2\"GF;;~6(,Gk&aG5򑜬NbP,@70t5|-Nė8CD79B< +u0tKu= 鳯%ҥcc2w!Uk( s!%p!d*{ɵ-ɂӫI\q-e!:^>I>ɟ|8(ќI+n\uXIx(%xWԶjtaܸr{8{0;j˟}о=Ӷ]?!UN[ +!"GLi\E +l2]h里cP(cBգBn߫>g>)w +T@e8}Y %\%Y=>"a|~'J!'C0pΖB|rj򷗶|ˆ }-)(w}ojcW?)zSP8CJe+ŧAjB6*gH)r•"` &-glL" + J%T9"1l*)If?-Te0UH)sU8g OJ9Iy "myBɃŝJȌ@%@R=P<=<~b q> hu:"7@uj6w8Ĝ=@&z|0iyG{#:|cZf!\ +CF$Ǭ}iJAOBATfe:QEabܣ _,})F͎괫 tAy4Х YR="zKjC2: 02M5,&(苡j+.Z^ɺAc`Dbr3$]op弌DD`[7/ň BFB(0$>Q`0o)̇+/]4MdUJGg،G4(M#1>GE T`UvVE4, z-S/കpڑ3wfu0\rB3( ԊJDR5*xlzPEJ?moDogHoGo+2c`b @12V0ZSeaOqN61ZYmnP|SVJaeC=Ym.w| 6Be+, IR#'`ҟIo)ViDUh,"mQ*˳`w/6\Ȉ4yYA2} +b]JH,P4V.->văjxmh@5E0pY9tT7iJqVx\j2Ʉ+oђe̳ g:ur':A:N1*N [ǩB,7$9Z^ʜĽr>zM2mpN=%,pHv8^jG9&yA tFtTVjYFIOBP!TwW TcV53 e+KX׵jJ`fJfD{FIqJOzJ /ֹ`V%=bzʤI*pV;I"ec@2xvͥ뺮뺮뺮'NMR +պI]J]u]u]PN46s&58.]n1\WBJmHWW$$.=ՉtD$ssՆwJ_ )hjw^(K_KK/Ϯ뺮뺮뺮ۈwJsXuM;'HW|HNb@9w$Wg'Bڕ,t= Y`uhq45Q)ZZϑ|Ϟ%BI.}[;^2> %VKIb[csY KwR[k ƨ70$^F +L= =GHT%i:/JlRѸY$+)r:ю:eh"7h֎KNJiΡW18Vm4hXU(ke=B*,ρ!.ʱ1.6jd5wg#lMe}B+ t F:e$Ґe:w4*D鈇ҸHEE<&ˑG϶;O%4 +Y),:/i^=)uaI%QR,PnJ ۏd9٭ a:rIjhi1sg6ӹVNom +ɨT^ʵ9ѭt286!j]vH",(JU::YwVbr;۵ѦuQeU(Ldؕ@٩EYig[Z:t5G\bԔ@?2wڼYn95 ‹?e}3n8zX;I챺ǸZڡ, +r#X)Z01ePb ;eX$J"RIcd+pct@@Gyzl`KZs<Ҝ2%8ߙ)+OQ0l W$$ "Yv4pX>C&l. %2FD\@O-6] R +(+|ḼA^PP ۘ@uD{78)1kXeUL_R%UYJl0)((qn,Og$S<FamDtNKpNOi^s(C q.+^5h!9(T'?@I-]f"0<*9SZۏxK`"Z414Z臉 ˩f!Q ad%(7xܣ j/Ō}S'3."k- +aHJr 6E"_+Փxr!2"9D52đ!%Dg.xS?.ǖjZ8ujlS3ބI559f2ϣtQQ魲0$jd\ +,v+Ϥnd%5S$[ȃ4FYv4 np=H+P峵LL)`V(q"d k* Y d,0 DžOD.ыrc8w$/N=F):** $; &ej כv8мNG- ~k4ܾ89jbҳW'ᇢSHb`mIH`j@)Ԑ]dچU|:b3ToB&x(Ͻ6P DvQD7,iLV0]Vf +O/2`WA/^'"<þjI5:vX]egקy3+u&I+WENR甾/ĞYG>)9]< C )  [ M =+<j~^jNIܼW +Mn>FT߷OU3Gz;#yc^^}(^=_}a_`_}jy!HoЫ?+W)S+_W():u+7~+=+\H'DII pom| {_K({ww R/u$[z-Շx+6/PW/V^W ^޽rG r^D\=wۮ#O&^ԩ~]ޒ]}1o5nu ^B5}goȲu_ ī?ug["?0 WߘI{ }dA{~$~?kߋ`ʮ^h_d @տ,v{*sDSGb#1L!1)y JߑXur9h.DpČVA`^F5 J/#mn|I *hD&qWKs6 x$RH=srKV R!T%V1a@";^+ka%֎[xF IK?Іtv $cMGAY +.J=aL5Uqx/ox¹a6"}6&@Q]fhp g^ADpF7\"߰3g8r?@`I^TSC QVbu?n($2%( ?"0:_D,ye A*ma“A Ga7 +2̜CPvLXpt1 |H)YJTBw%`Uq$V1qq_r-!UYZZdfp6Cq%BpO|Y3et36.dڐRF(qIAʛIПX WlrRY +uȳɄ'l7Рj"L0pDf>~JxJBPLwuOe%O%bK̜ST2Y'D%l㈙9 $ }O8*Xi*Cۓ{dn^gOÚF/҈- PK#XޤH=?Ex |/R]pdqgdF-y#vBylSrJ0!5ݨ78E{Y@?H.{ORA.~H(9 E(Och =* *% p@"x*.)ZX[5EJƄ4`"K1n㝝5:SG#\+gu>uB!bcR;zTtg4g7Wm +qV}he:B|PK hW70,ڧ,\v.11ؠ &{4s+mVWcmB\AaZH 7 R-\9f+U AFP0 UsJ".L. E"kx4&I?ͱQ'ǹݦM^I"zOY#S- ,2?Rc"E!t+m6ͭ..)KO\C#]aNSJ3yֆ N.:UFpQ1tX=\hZmpv*FĚ*ovx =&\ͣIR g۰:Iȗ>ČG\p§' +f,8,upZ2PdQ=rXCUZ,1v;-Y9q,rmĶRm=c%WrLxSHs^2iU+ӫP(JQ⬨'K xt+hnGd pXm(:&wh3,Y?kv]d47zҬ>#|R"D6v<, x'SlTh+063JWЩ}a #FaUguiOk=uԹ0CqO(@H5>Л:a#"̄CLGg*$ 0,g lB޹8|fd?Z ~ܖĤy3%"OED.mót,kr胮32T +niIäNZ0аМDnEĥ8*Oߕa'48'g{e/NBH!D8xaehYI!qԤÕt@Xqd367pP G _˭`>L.[c4l^ J1S~7#lτƷ25'\ 1l,9MTvvrd`UPrR/4TK&fxUU -̊PՌݬw|@00|uap , +| n >PjUm&٠ ~EoUmfP DkjC)&c۫=x>E:n0\ƕ}PϾ=m_s hS9ԩJjTjK +av+ xjL?vk5z[>.׽QCMMg +y Id r{}Q |תVjbV8-VX/8jmTIY?pCkD +Aֹls8mM}|nyਝL&qG=AEQՃ + +zw_.M1BD$AkZзj ,s('OOF7_mon\Ԏ _r%!-;D-S)J"|Z +u } ط +"ڮ>~hY@%4r)UAe 8>EE #\DrcUbz^cUy [~ c +Gbe#1F#1 BbBb Bb$уB@s0Մ X1SXtsX< UgD 1"}c)4iBTluܠ).6Q4BY$6y"]p1 2Jamh.|Y/t."Z`M4{S>3v,& /MYj6YtehZ2۷mՏ׻IrZ̑t2P(܏x.xlpM-tr$Da"a"ggNKԅơ= s+*}FSt)EϚp,,D͐Rm` xF" 9&%,1 LRA&w* Ja^& ?j`CP5b3'%$fFrE9x s؆pJ5Qn` zu!v荞ԀT2Juo.(q PC\N;+{Zpw*EU!K&2s`%e)LFta9փ@< [Aʊ5j$5!3.B!@u +J*^y QC">˩|t_YJ/d5 e=Idb" OP[ q& d8CElC^*h-²|8H!jȨї+ Glu^PҗT7S0 Dz4PAhO(0^eyex W }ZDlK ?:/cr*Y(lc Nnb$f.bFtUOhe4~IՇ[H (SRWt]*]tA2CDކMU_ 4|c+:ׂ\k4r'DITAP:Θ:ލuETy B'vF'쌪,m!AnN .(sRE:hz̗n}7(]WfGhA)"q#3'MDR`M?//}]EDuLM<J#dh R0NV +HѦQ]1SK4 +TW"i1Fɟ-,c7]Th2֑ x7 ݛ׆p(cz:u47L^}|b8Q'4'*s_ϙ~-H;9$N|2ilTʂV1mJ끸BH[R!]Jb 4т@V/\|§\QBLZ4JD)%|zLee j"]Kf^gdU: JRF%UF:tjILNqA!U߁Ҥ-Fa6G~-P,rq[0-%]l6@mrm33us5ddӸWԪ,C=*K&j0,p,)^I(b!Ya[8N~1}<^AZAM@M +5=つ T&Kz* g9]T5)yBFFPㄻяB5եWV4\15-Eߺ_yKmA(96=r6r6.Gq7Mf +qL+戜<{ X!{% +zDzY%9'"g኿)n;2Hœ (=jIA!~Ri9zqQբT"?p5f8;1f$`1;)bO/ Y<=^=qO3 + 39/mc$IM(ÀTXY@7ٍj<{b"g>L ++0#`MlVo"iVa.>Oc3 \ %T9HG̙̙p:1@2m8UK +ĆpZSo5$lh(Efo Fn3bmJiՆrP"FOƢ«bpBpT|쁬,I| SVNztXzm+nc[+iMY~S~eC!o`aρ'7V$˥RĢ22v ?;FXvz!"A2$xk=V̉Adiu4a49 D<>59;P3"X֡җB`>t#"CT[oń߉pFao5KMzxB (3@ A@3)s=6*ͣ1f%o܅>Z`:Y6#6_Df/qg)Çok/{/ WR\vF,XC(TZf_bZq>kRRP,1ؑ h,7ԊYϽJ-ni m 9XO{oT)‡hohZG)(͌>Z`Z kPy)5>=+ekտB!xó{usӊ'cvr#E}^Ee嵲ߞBٗ)/ 7N gm *D]U Z5dT;k)Pk5>78nԼv~' =qScдab?Jbm#G1> j3| >焯6F>9?3ƏIP#ԤV4dC΁J7&Dh +29^zP.=#G=o_/!ߞJ,3g@Pw ~7Ya0om3q8' \z˒*^-&KJ?~_৺Vo2<ł*S`i1 nIw(6~ɳ -j?44&AI=""$G|8>3 + WUhc2/ZTO,4v",=xVOI0Y71}FaQa_CV gB}Qľ*v؟#!h}ر~g¾~|}4?e H"~oJoA[8 ľ`?>`߄clW9^i_|zvzuz_=`"o$"3#1ᑘ!BbBb$=ی *29@+MV/ja"%&B̜\.&ȎEnOΗ`$Ud+Q/W|4"Z[]AIT$̊h.dp K:pmoG$^NA\BagǬBW^^v.r*#Ym޿0|X/i[;4pxjQJINW> +kL"F&JOҽip<@B5 ɈO f: ZIrEJ^p2 (hѪJxF[# H (mA.iT c,K/z3sQaRƤQbC$Su,=ү#qcc$I;jTq[ڦh S1Jnm?&$iNpW6yb101TWa|PVfd4ʹ4pt;v+_:<Jv.$7ve _(Yh?<̆dJH8ohmӋW4ЈH Bx&0PWTasX9|FW$2Ͻ R1h$&9$o9d%MIZ$ԥjųdF +DZeba9->_9TE-^2TJ(Yj\pPnߌ 51&&U^3ׄ)W@([B*S8S.@TZ4fݢO&ʒ)O{&U~Ķq⹓&NH_DpUF+e(;:-&*WJn6|;HZx'B$ D6wC[1#-l6΃!$b jxIYT `7Vz_?#sG39I?QeIft@ުmU@[O3 .ǟw*'$8E܌6LXSҀ|DvIr3i*v0aOiҲRK†JZtUsB<5\njD:Sux@ۄTpA| :~o N6EJjh~JO<hh@_7S 4 ]83tP2"NL( XLC4(i~IΔ[0)' +1;xy$~':} 4|j|dq^Kp]0I**`%piP Kk +50ܿ@|J|yAu,h 77|x МocU]QMRbMvz oe3;7 AD|(.q۩^U|5՛T8$|(>"u %b +[$W ;1Z29Eȵ1#ςHV/&<\xLkBeث{r 5c^h_>'܈oJn)rXFa[-DzHQRI1a(#b T0<6> T$1khiVA( MTZ.u6wuvՇi;|B |ҒĄ&W+m 0 Q]f^paf!TtSwdŞ2Y[W+Hw$o,*pfEY3An>V>·<ُYџ,pn0 +.  pDh~\0xq85r|4OkvO0sҹ #2 O^bZWTN7a> +_P +m]1&R]z<œifje,W-ᗨIOl'J]l&4T#Sg,Io?_BO_O`xV6g!D7Mr ?$*8  ~ij LP"X%Wy^?[4h_đ }oON j|? +'EkMe#.LO]Vx b3)G|C|,(^= K5wI'nI#U*d"7!|9~[" CEP F3>>(d? Y&uIQ'Xԟ--,+$G;*"Dk136ોS%VxmA#oΗS˾N~To3_ߓeHgkOa]=B}¾$c_$x쓠/ΌD, ,܂?^?jٟX,tfcB_3l@&@,HDpmǓlNV9"ШOؑ.7{5Px{U`JrekiK\\ %p%f<bt\/8[K:`6&DH 7Qv5O@ BD6  gld ++(Z$'5NѼGeM' +BN +Eo(k^,b8TLRzd!s U+!%ϰH +6!GXA谣9:l^6ov[,&":#`,NE^w@I#7L?#Gyj~lf^#* ݒ.R &-De-`ĴWFW30#H:k 0B+3X"Ǥ-d`ar:u22'<*B5-9 9RMCdNhdےgrbKPe<4 +x>FrH~`je*nfu ex9|Q FE41WuXqsx h4.\Z<~b!~4w2W@5ar+~'a%GRo+O*,>r%` $Dp(V$!ra5* 6l)=h] BReɺ1͑/X꣑YB!e5#X[))7ϰ"xB5 +50Ew/nn)D΍(Ta6&CV,$M> )La.!F'UV-wolh]\&H$)+8t>D-/AH|LTHXa_gyUK%KH(DC;I ?Jr {#ԕHQDjMA*aUgwI|8~M/k Qtѕ8#̅1zS :7= +'A,R,t4pFsZWS( G/xUp("VEcRCRgjdT]hIb&UUr)\&sh#g(CK M/;Ƃ5AS0ȶ׈ 4BcȒ}րD'EU4P[&E{MACD.&an\b$-L4bXJS`#)]k@iMZ/M154Z`qH2#ʝ/_5ti_RAJd6@)ASpDI)RX`&pJOSQl9HWe+TNpHkq8PN$>Q~i ANtpKrZ/hH Gim^bQxpl: b3PKtHqқ5$D,Fg!քPcĪoWM>|T@X,H̢b@t(*EءZX:U䝘FӎP Dh7} +YB<ۖ$\&BuWckm̕kiBu +I xBOX&qL‘!/R.1;.jJ0'&)3Dɲ8j;= ha?-@F,Ħc +iUi}^*qc} tQt\6{iˮi]@A> LѮIm +:nFRج8(;tDz8&@XwaTȀ+I+@*@ďYv :|G+ap RJ9^XqeE,$me3t.J'%1uxD$Z;Pj1%s"uXdiY"h('alB|j_O!q? @)  FhyˤcH?0!dKУ\c]O$ӠDD^هbF3tN$j|ZjkPûdm_K>u_t_oß$Ԁ Co +fR6};񼺇䜷k1s_TdЇloJ"z`FВ]ȈɄz䫲Bm-B0b$~alBWQ=|L{NTu)H4 !ND"Ub%P"ٿ҄6ysƀZPp;+5sռ$ y!-,lw<,`#8ar T a-9ǟe0JJ +JdL%A};Ng-jEi*Q duK/0A''xy))taTFs +b>rYI2f,OktPND@=39T#X=BK@`N+L/)݈tׇ咽aj2XsHD%O%dMf͊ +S>SKWe+$j/$zM +;pbIػݵY7KD(;|OW* 2,-(=wTSxNJ,RYY"7*بOFC7hբd=)'wgԱצWqIe}j{ɇoY`boBO&U) +z(X6dGP+;Ɗ4j얣[h.a0GږV)18hv# p{WQ?=`ORI +7]F1ݸ:P(Bώ5,AxaJ5xa?vP-z` oCJJk +'¿E/*f57)Lv; +M3wL2ÿYJv(Ւ}w d` %IjCܪ'Z1F~F = ~j?QJ=cI#|E{>?XE"^A;Q Qv~Idcyd%P;c֞h@>g+vj=Fƀ|ߞxQvP`0 uP_W4}5x?NNYx"0eD$L*,| 0%P:-O[_3GA,f% ~hՒ > T߅_;Zs395&;dS$|G|ӡ _N#;f\+wbw2"9у*-n&7<* >aw0vSsmsm|>g ̐_;_e ?b P[/N+9'{k8Xx!ͮM_Ղm<,,%`JDII]mk|>AO},ો_V;]Y-MM(͒'h  &IO|ҽA@SU4F4m[ch(V 2§z٬A)\|"eC"Ey)FVX- p4ƴ5E 48NvB"H %"F)O W"5#p2,)e̸ "'28nR)c,2]$$($1)cȎaxN|:OcwO$QGiJ$9ġ: lb ȕjEhRxf7ɷ;sRalcҨRCJGސE~#q +6 IXgúZjؕװ}2e6nLajM+ 425p P$H!|aP8jx˗jM %tH3H$> +VXڦ(Sᔈs +\e &)ʨs@2!1 +CeۍXBD7>0 biW$~q"$W:B\q6 >w:#x1Jm>$7ebD4*{W7 v4 (/+-ǣ),ojhQ}Ct,šeeZj$4rqDm9DqK*ج"(XIHR(MZx '3.$nȳ;1?C) JR$Qb`fD$ԛw?.Hr&׭{δ.ˡ?K"%Jzw)2(G J끊R6+/ɲI2sʸ#[y#;D".ebXv>֒ +Pl%Jd\˵[#N' tK'BV$LTBW RPUO:m_=? +s(V噳1"UHN5z$oX2}nRIoDuɥ&YH=E`(0m|~:4b$B%Qg"Y%I WY+ש% +U !(x9XD:DתdVV |MSS$ xp| IQԡuj|°C% 2J[\,IeY׽iYQU˓aH鼤 +ڲ+),@gRIC:<:__m.R.&TuD 2ag ʄg*dLG*31x<%nHIfݔvݔDDc$MCZqܑXߏ-a>q/BJpj*Ͳdo@)E"\/OLkUK.P}ȣ} '~0)UBHSTBGhsZKDA$+ 1m1# TfPQȑ VZP"PxqkeFxJQy}eL9hirrSFSRR{1n8٦o@ǛbY>xԍ@$y +6jfRbNH*|+pjt yd%~Bi/,fL)w=sUVwنe󎦖J8D3@)gIoFvQ^26 -A"7W.d՗΁S"gQ_ϙ2&리v9VY?J +HZ^0jAрA!JN9$ԛAEU;Յҙܡ x,RmOO oL?Pt}ˇ}{Ӭ<[0 {4N) pDsBft#J&+)1*5IAՕEj Z1(K z>ihN|j)ĐdjI4f+L +ۧzBrmz+ ğU 9~V7 '0ͰQ&~d՘huB ׌{ CܞF S2e!#ZVB`EZ2D}`ro2վVNwy|=i ^%+ÕeCUiC>h_ARHqИLz8ͻ)WoܪZVyH+ 7 +nQ*  >ico +E4{4 Y') _lb% -yyn|,jPY'P'Up +W՚NU7b6;8T>@K^ |_ Y(> 6{P-ც[]W>x1hSOa9p]:RN'ɕQ3ZlEc]eoZC/AmJ)L=f٧La?R@ O0[gYO~+ Th{*M@{ +581V)NQxLE>ZWí4OOZ?Y7ߘO?W!rqS#RĐ)J4rNWRLB|nW>ې /b?(&.@ ɄYI3L$r(|#:G) 1Y~(0|w~:*X Q\B+ ķQ6IS?:_m?": 6BUg T/@VXq7FW<'~iP0|ͼ05Acmo?WMTEmqKH̳"_򇪛FuHS_e!*zdߗT^Az@7Y/kuf!sJGcאV)auLA+eGN(KB{7~1}vʾheߋ2"L9}OIVɣã) +GuPQ=1s +]v2։yxPyiCzn-{\&(HI QNL@GbGb]!R΃@Ab!uj5A} &)F K%S)B.gDo0*4aGŐ89dfW9@b/@b(@b1/1W4b%^3b1dXوX3(' +s; * Xbmhxy]!ErAјV0A +BDO D,L>bgȆX#dՂ1@l38s] ARH YDz< +axj +EB<VyG?鬷R>lT+- IJnj y_ #Ffa/>|XmXjBD A`E\ =!9kY&trHm.[ |3P“ +=>99Q[`  w0!#ŝ+Alm#]YI;Gụ̆)UJ,YcCO#Fo1}P aȵ}7J= 'Ej5G)x^|[:1 K`Hq6VG^qTťTHw=m_J tSJ:D7;7PcD ϛD!"i78=F (A:DVKaāe K:Ѭ]d:I<6=x?YHiz sͼxč}*Wʃ&#f8/H#J4gkF,gb*3kSN2w;j2.2jZUTuSyd:O ],Ap‡,zSG읜*[Q O MOCj(}^og Ǣ6fŹ AM!&/F yfl)rV +9)*d!d[b/'@vϤ`^10ԥ,qa-3 Ď(H >'#Āa',uO+H`Ř|}zQ9||L$Ip"3]z@%A2 +O~suC7sGn}RԠ`ul"=e,V5 CbSg# qUHZE`SE +GrZ\`pY(%(#m z$d&W/-rRd6%6s)%כ{6g|GG#CE襗(# +~DP)á9N>$[a}!%."&e;& @v֗dS,@TH !;Dt)J2CMIzfbQ-]JY?^߸"$;wҰY- $מȓC9G 3rq +1 vkC@uZWq۷x6sMg 6#f*dP(9ηL5C.y(T%ȡpz`E?9FZN7Q%&FNԥWY!$PZ"zp&þzY`O:}=:3!#tRNjP"ë-yę֊'mknA$)찞J%Ӎ'b9 Jz͛323,@^xҼ+niؗW?i^=M"u3"2`ivq&o +RtV +\Z#tL$2&/SsQƕzrәmIJÊUzq/Gr^Cr:~⹸ٸEڠw`޾/{k~$'v${kxkQ붅mT BEvek_Wd{Ti5ɾaTɾo[ +4NNnA,Po|Rַrx(kplyH_U'KJZAe;6H{VJ{td_zSXa)z`)go7犗AFu}p:n,o + ^;*Hd6M3ɐ"d?fߛf߻1\mɾʾ1lCm:-fgMSF|?[SySy,}qhH3HgH%QA5`BB#ᑘ!AbAbAbcJ"h<9fm`qAJ~B"؄yF'Yl Ii%2GHb$, K7 ψ7b +C6b|b2bo 1Qt% +K%:(B,`M' +H9͗5Ӄ.b)1uE ,E"6DlV""Fzb 1z-6&G@u@*Qd/ݱu=]/➈\0'Қԥ|6`yJ"Ψ rЅX_B !&9B  W vJ \=ALALj=؇8 +Y@p|= nЪOFSqhqVP{sPt%r)83#Bq"XWAwֶZ4)0^ @!`*c0bqRX̂9e;5)lT({(a,jbntQ/c`hBC)EYB +k"A +Tڼ u@yBw!3"c +t*Y>ˣA2"yHd$4 F)d]#ƴDžQ7G8 hXBx(:4%t\a`v5WeE'TSCu\%F)R, +zK2,& xB ڀ17*s>HOcZ]@<Q@G(fi39Qgg9gVѰ -{2YRH8j +pnUr*6}hlp0a~pd z@|8Pu;QL }F 04`?t$9P[Sd9K%S?Y=/] l2yXkm=Oo;TxӽkakՕx4̣]r66 `Ԉ 3rjmHPb̄˗"XΨLb| +b~O)D;"b#{K\"s{OтP:F)fyq.&yRr EL,ЦAA ܮDV+(AhHWЗ&'TǾ@k +}/Tx:P4oA,T@g0;ST@LlSrW&A =c0b-iAq$ba+jW[=~,G?~5X Ӽ_ dvP6;$*B.7=6S[)0B+El2\H @ +\4f뷖͹$MFG<5 Z- iH [ .f;q 戭1fFZBa.LDZ1K15 ?><6pЄX9Žu-G 2LXf1޶Ό-PWw1~`%v(A,|5$"EAz{k¥EllFW!-]7.+oi-;qK0Y`u$$0>"B@_j^ѩ8!J8$PGʐ ou2a|fREguDGgEupGzȠ>F4zM}lI`*ɴҐL2a('QH'է.iTBnFVDWV+cULu][RĴ! _F_}Gxo\(W0#tQ$ҚI"M4З@ +"f;MPhgQwmOhJBn`"x9UtB]'U տ x[.UY, 1+DW`[@&\YtʐKlc^z ޖ<[s]H{C|orm&{c{ ,gK̚+\zdXddsD}rQ-/`LT#C# +:pgQ,$ E M y4)C@N#Яy1t*H&W\BkLgZZq)~B " }KXWMFƖR:nz#W";fE> *EG^]iLo+W#M! 61ٸBǙ,@&lrE K+p#+4BjG NB۫H+N R% 89F0ƨd<).F0p4>F7lrnsĴv1K. ihEHt rY +41He`:)Cw8 .C{\8 Vl?br24g5ca};Vv +\ץoF"^ x 1} B _٫ Pއ Ď^Lk~r֙NFiqBa)b5H+Cc֊*0uu'Cˑth #Q% >*0*(H6?-Аdmq6Є}YȞw3Nm * h kB"LU@ m~ޛ?<> cE҃ +* M"},L,W崲OK\2)I4a奧@PSnAA4I$ ɂL9Ճ[}@ Ke>vEP$@ "UA\}H·h"7tJe"`P_JSr;v3s:AcvFr5DŽZ' +辷F 6vtd*UW&z[ ^ :zjDn +;W+gY6iI%s_R:& +,*^4D|5,voD*FhmҴ>>`N]:H*Y; 4B-x(bΡ"H~Qjn|Y:,z4=0 ^\)YAHMsP҅9Y82Y@ѭ>_7x3i!:t`JTޣQ Ҭp(dSI3˦XPjDGDa#' +l$|!S}f!ȄUiC.H*8IrhEӨX$JP1xZgoNl)Ŭs3֏;7_'&NuQjA #U"Fh%f"A9"Q³"/YEC1Ԡ,Br)ʣfJNA`h2JK$*|4daQQٴ4PB@Ȯ6(&AG$z5z.B0@Ot fAhS, qhdbfO baeaȬ(YYQTHRRX* `1O$eƗEb`f\gH3i*iepF׃cC2˻Hp A;YL+ !9z&Xgb9TrŞ;5~/aZb5tZM_i?!Gs"! +c$ r +nB"S:U@.A+J!RۮUO<y1 \MSsq3i,րKԩN qn ԑ 3#(UD&9Lڒl>-d<<,` 'O=`WU3u4 pw]Oi@t29R.4.&64$pT}*ϵUhzRyuB쌃! wQݰ)@ +Vj7 +ݒU C&OCTY@2(X&: ?Bb8 CS_)iR:eYaXRyZde=0'tr7vvh4#EY[hNUѬ2VJ7+Mpn*; +((ld_:̳'@<ny߫n V¨>XR"Qx *,QD"~\I5,{ r fR ,'s5$|xzp_ Mէ3{,,pNbX)sY(KP&; Dt)t?}1k@1;+҇C-.CUA>%TNzRTt*7:l@f5y1 ,RԎ0_D^Є6.l7r]nuRN(*=b L1I$q$?$5(8R:ԅ:`HUƄ0/;>/JW'u#DW2x n=+M L)5s1TLM)0.SӜSI@@+V+5j@G* :ݨ&P|kK80I+/ >'1Ѡ! 24hDJ~c2jv$^$ TO,jl||Y'c_+jNi,Tt%V80Zbf ;l5^/MY!Oͥ~78+|Fb" +TۙYTTWI׮$:`K J -؆k:5`v'ktoRޔ@˓H 'c8=o2~@~TzRvAG%?ڕh)5bTޫ\ (j%Oyka;7[wkj.rZK.Mu+ +NPqʸlr|x*[{rvGՓsYW-Sݶ-m25y^t 2yXh*^Bwi_ZnɞҰnzq"|h6|~dbR}9ʫL{E^zxe[2kJ,KSǟG;(fog}ŻT۝S{I߷5{o}"{za} e{]be]ߏZ1Nao;Nn|ʰ2yiyxyd4hsm<{=9>~Iޕ%}Hb}G~e>eU{}Ȅb^:}*`˘yYyK +;%Jߟ JCP~L>&}ϾGg߯4gߣI Z* +C)2S{XsgiҏBX^Xi!1 1pHlQHH0 t$FP/fh\>O,  U8@[$\<4L&kkfPmi+y Z%p!(HHbGb#1BbAb΃PAbcݑاs@X LgעbX2Amhuk +Q3 6 PC2 TUAw\U01W lI"I,$$?;-,+і΋,+]f<$U6dr`6H#!D" +\y@p.Z?@*}p\|OkYE8SHM8dNdvSo*)ԣ,1/.LB= $:|KVltCA#{gwKd,JNUjsqmfe- FuZ [Qw9­Č,Xx~#e^'2룃+Ȥx0`LLB"d.pI ;Zq{\y_Ho8$`d +,P# )F満0*qAtEp< +DqD(N#0eG1Y=c, IFo1,)!udNŤͿqTB32qW@z uX?nC+Kni,@6>q"(vd" po8nѤpf2n)8n:`7]JӶp tRy +JRV+TO|oK@z0BۉkþxWEoh16!QT;7<8, m 2)Dzqo> l0)N]?Af PA`r)V/o-5#~/2mhᤣ IGAdxZ1i&1Y)`Ҋa=GԦJ"Ù M=;0O5*MԋTj]ֻp@!CEG(mhŀaQWe9*.+|42Ɇ4˄@.=T +--K& +`dDf`q"<$v:թ 5WH/3l=)F#`q" q|bAKGnc +?j5)dV8V6jn#g,O^"6JF6J +!Fɺɼ%cɀqr(VjQ9/3RWG X%z9 :3oE +I'UG)V /X7vQ_ 3 Z&kMXN "3xv\U9hպd03s*5#rـFUEI@d\n)TX :WDJ̩HY "Gyk,I:UT'%2,Dr|Fђ >JPHSV,"q=%A? +!Fx "%J6gFЫ` i ,H. C0Lt%Q0=(~2j`pvz &6zDpXEEͬu[(Xە0D뀵HWޘfYn",:}(JWU߻%qq< eѳv@06Xm.4# nfd +s!ԡ.g@ I )d?V*XѦ"OKJp7 ƒnωPJM1pCϜRQSIV?sj@B'2W+/{mwUyX&xF +ZC#C0^X%=0H*Tn66 >D{+%2VtzVta!=BuHf[jet )$|h{<NB9. '%AtR*3#L a1F fI)IԈG3P4)İ([`ct@cf? *~?+9%9H$P N& oNg#'v`EIT8K·glQaSЩVx[L@GcqbFۊh|K PK‚Y[cYEɉ,P1PdHQGda'F(pghSPQYꔣMx@_jnFDtY%`zVΨYQdgx<4Sd}E'1Ā3r\ +>+aVԯvM3 +AN*lzePet&Vܨ%uD`GNz\Y=rQ4QED.VȻGW1kJ`ȳCssiP.?:Tvڳx:yyO7~ +.} ՎzVivYa nV +BnJ܅?r1bʴ B7X=*h5qNC#~4x\=]=]}a~^vzv%Q&_P\Be ?r.&Gߥ= ^>H*ԯS6{G G}GߋtU + ~|~J_V zWkJɞ6H{c"ְ>Yod؄[(ߋ H{&OۨQZ*!{)1LYg*q{'̋C{:Ed@~])}fF_7lg[SI?7U'}"7e1~}R~ߧϋUYļGb#!! | $6u8Lc +8 /CGHy,\p(S)&Q0GaP.iJ0/4LQRTG nI $6$|$6<C4<CK5 $&B=H=. L5!ͼsJɞ` +Qn[`螄\e_>oĖ$oLȋ'|ç hMF$1L)*̐tHbXH L=-A,Ê5C&UӖm"M*\K/Re nHL}TiNִ1Ah)2)YJղbAJD +%k!vtCrg.0bl-jYM{iD{[l|>b)+eZp +xY!.6 n"rX=58zi/K!2p">VF#uGa-9pbrz4” +opю`]ő +3+ B|o!ᝃБ9DQ<1֖~wuQ}Ox!!E^9SUx`"|ʒU#ߩ.JWepV +N .N|(:"wDsFx$tA< Ne PA#M?4Tk^ҧ,!z`bo%ī-,+h +r6G4ک,`hwE&2xH#<%ku5!lj!YqeoEd]17H_oH_Y AyŽkIˌ3HNx%' fх[Y^xIR#A '0,H'(+C54RXٖSUN!%$c 0Hh!r w_f{?15.:jJ8D(H47ZaKLb>AM4 +mP1"^bY3; |ׇI$e''['ܘu]gE^wc2%-"(!NFїò\6(V>v8Ԭ4<:yX I[rr_eRVeA!QLYJ Y%XyuDoL?Sxm7[o!:Pޓ) iG2o rIZ^buP,=%ml?)6ywJ+\%V5p0'kB׽Q zu-2GFn3H-{il; XĐ\^Di$R2$GS$J!ʖ+eE/t1BR7)!'|i@1L۱5 ِ>FmSd˭ourVɚP^q {;< %NE̱4lY"-|LJ4J2+!p$! "%C2HGHHII^Aɡit.VftGܦvf8E$1h $DG 7Hj)4,STP{\o&mg!% [=fJhdw&:( I:^E~aK io Vcƪ-zV|$Zr,C?q:dHai~t1G~ht\ո}ğ VA}@GP&ó]>0TݘA$HM"o(M:=+[n;.X,@Ay"G1&rZ,d vD n)컦$i%|F+E=WKҒ f[,J" ̠L[%ehuk. ksMy$8"tqY$GC4L9*7%Hq֊0hv5pHgseԏt-"0h,cRz oKnk,g 4>1 #@^f%I`DD.pѳS>ٔ||:% JS!TgF/M h9XX9kgq5A)|*,|G"}!| xqCjI YRlT >,Rd M%pI2|*Yt3KJ*b*#h/\aV Ceo"9l6C3!KM> _0 dcLĥ:Q(Y8;p96AZ2vܜopk32/xX5بeiq8VpVGcc씤Fj(IBl$#n4x6ğђHfp`>,ĐāJVruf909!ʫR8lSh868cp`-o ej_0P6EF`]!AN?YGHo@Fҗ].Z b3 78a4GL4I@-D0sVX;8SnaȂ+eQl}6A\1cyD@6S爁b**.1#S-M:laaƆ>aHaosa i lp00``p``*&heE1LQ``<10V10yeC>|mSZ$K0$P$f!䠈 &2o:(Sd axBY,0`]`9]` +k}1F(t N.RhG]2 +lx\(iDM(cؖDh}H{hxhv p#x} rr'51yt\L#P~P@P}29# 1! l1Yf/ (jFL_m U,>DCJX`$+ +ΚB%i0#H֙dNT^& f Ju 18yM6$L#kX О@8^ZbpψT'w%'Ddx3iC# + +"%!~ի_,J #ѿ\ `V'8ASM8:HPP8dyz̠ȧ6ZWJc17@X᠜P=фȕ2%4\=8y1PX\!KQk5h!Yb+. ,8qluDGuYx(@qZZ"7dHLR'VR(0KgiN1$񉷯t)=n&1t):~~\Է@<8Zth^VC43t*dEy\Y9[ H#ܒG]q9(e#"#h4Xf[ݘ8P ; 6ӭz(B +.Ĕ/^q(s1*QPUC +G SW:ך<Ɛ/FPzF̏5Pn 6JFà(pB/'3'X{U8tR;K.4;\͕Be 2f$-ô蛣 ^g2*INɃ5" ~eAO®CEњ1THF."Y@k^\INPL9*SUGǃr1 vF[h|V5 +XeV(Gȵi] +BPxdȋ4zlB`E"GDoeB! *8aW_ƎG*#4h ]X5Iи\Pd8xF ^NPY6."CdPV) nB)0ug6M$PNrB;TQ`U3IFJЉ*Qddžİ *t8TtP0ăsc +q̳x73QHb&)31Z;FI ~KXW=\87e 1T(*%bB{ &Du:|'đjR%n;T$7#@EKLIf‘^ q0BqU="b8V4dc$Գ8q׫N~QZ}9ST%:-T@TYiba#($-GtIAH%>X7ξPQ^$Y*:^\% SF3t@C#O#)ڑ@TOuVͤ,46Jx酲7 =ңY]`a"C"LLYt K iyM  _t7bJFiȬ%RRjS2ZIPDt0Yh +dȇ,sY2 \\_bjT53t W Bl̗j4VCzӉNqa bf( xd"$BBkD`<ĻTU+"dHb9p3a-!zLӫKT=!XiZ&[Lge=&M 1lx2-C!#[8^(fRa, +̵FK 6^ N{K `h`Ǒ鬏:cVNY0hk4 4X9MJmqVtq^NNj1UGkm4ڮ@xrTdD(r4ӄ)k5 N¼ yyV#7S`Z7 M&l(NNy'L] z_xp)g)(z*,0lփx&{hSE;ό:,QZSMrꞙaBɆRcHFDpxs#z5]JY?JZ<ػX6Ԭ!cqWmm0Ξ9URM>7Al I>["t<˔:b.tW6t"hχ/f_KVmLx&斤fn >a0$~I7A}pC+][S1Iu&9,bS#G8g]efO@T܂]]&+BZ/B^ߔmrܐizh<9V ӐY@;u^%[MSjOy@^ Ž}Sӿޮ,}:z5i[9`BKE +<b"HBICI% !7M'L!pOF1'&5YŏQ$toL4:\Nۈcs%:6ZY e! +Q%Uΰ*RIX88Y\a +%9ho +2qk}_ԹgG䛦Wyd =EUc.KVB|v./3`foj[ *I݊iB1FA6EJŅPЃHPUy~X feLzX@mA@q; /έFp/pc[7{Vz-P;%<}ŴgNv؝ N/\>ܲY5= P26G( Y˴{ˀ_<0X(X!$Y#1qHH$G28GEU2X eKFi)X-oK7>BZDB:Ո.DlPY؊VP)D,Dla"y{ !&pObo'0͉b#dD!j[-P +iPR 3 h!Ƈ2Km{P&bqZw9F\#̒ +#Eq)JlKC I($_Qz k 0 l% Pc`Qǁrކq444{)$FJ5OԹ(IEW- +0qvȗ@`i3dVaҀ|I$=fi `ZDkA>D%%ںYv%!ʄ&O6s(m͏(4.[Gh!'{ҝ q^P]#Ք qXqW:LN`׌dԄpPuj-fTgƨCLI߳M$oh&S ,`N/Em/*rrsad 'j|Y%'a/DP gyƑ (l$UA#iT;]DlJM+RU\g꩏(:€r.(0ƫшDN +Ⱦp6VpeKw%QG#FYsjBʆUPSPGJ„0ɰp J jS9@CB1H6,gC=TJ9B!pKvX!QE+=bxA\-2[eD$i%%#엛ujCF].Mp_T\c5>(ӆ[tdx0ώ>"] |g:߷@׿ +N#"+dq=#^>hfZldT,ܒҰ򥉅p1'im9+h^$hUFq.$`2VFAOա }mS>(S؝:6ah}MlBƫ-DgJ,cGv ۊDjB(0)4;b?m'? ) 3[PhadT\0P ~ Ngfkiyvu>X;Qa0Mi*c CU҇q1-Gu;2?FҚDPYIׂK>װ >tL )JA=29G~0֊gHH# )QͲ*OS B{3Hr(4jzG#W d0Hdc%j';ogaH'ʴQV2SB_kL֟ , +7-J}Yzl M1.KJS;@jM\64 Og \VlȮP+h~.)>$P4J}IK&'`t*&(j>9**Ĵd ^T4Ku=SBA2( 4Ѥz +جb +jS +f@Z3>E1Wá_*Wb^UYK- ETZV\AKǼC/N_bT#WVk%1 1o4l\IҞJ!e,#3A%ebEʵ27N%S`xBтqOI/{TPCz-& ,jsGؔdS1,*fĭlE_sϠf3 "q"A />p.J rERJnΛ fL4}B +|/^uEnAa$4U1S"5Zn*Gl8<9 ,UЪIe~`NO'z=:`iܗ-Y ,<XLo1z N)1V+y %^>-Ŵ8EOJL^i01ű*=j R(P>a0h/N8w4ei\(Hؠ- $Gd!` +QUo% Va I_ Ё`B0vB0Ł` `;G`^6$!eO\d\CiCfވH]d(|t)9u21 Tt8NrA:, D9.f2$rͫ:Lpa +^;,Ŏ:Lu; &fmq LeH ! +7^Xs5" #Ba = Ky(~Yz|LY~2*i0HHIւJc 'x%&,vt D,32ԃ(hdɵdԢ@y8AE>f@(h4E CX^jzu_ɶ/ l(H.4)!2ɑ%Dh22ɾhs% +ȠAxd2QY#aة+/Rq$l~x'yj`0zB!z/8zo2<_o`:n[qÉ@{u')F;P~]n#|)ln)3zZ[KQ1j>JoLqm15<X'zkЄf t#CXr0 T$'|X*Q˨Jz0xVn*館D@ӌTcDL?&zc"yJ%Pc2w%ԡ`6F;" D6bb4+(Qސ,Ŕ@hSCJ^,]&3ucE> 7x$8ܘ|5i82*ʦ U~'.53h81nv̐s5R >8B%I s1iGf JJQ$Aݡԥ”ǖ,ppK:c+Z8#[ZoGH%)4LRMn$KH!|"/ӲGfY$B#~(kDpЬ&PXFq`A?ei"-B'/_/h $ [c4,VM: ,Pφ[2PxXQϰv*PD6&gY((ڢ'b(dAݖQɝTrBГl)1%X,0!&Q.L$0usךĆMZoYARѐ.H0Cԧ8uh`1iiBѬBg!N[vxbؗ:KÃ}\uC2fD$Cæ`b.D4e1h4KȜ~dE$T`<ۂ56w!&LiaPVEU|*0] Jm0  Hdph +QMҌT|Bm\.D95q0*S)e`PrZ*G'w'9wKAHDY8W2bpىʱegCC34l]4fR7n$6bu4DہgO2"eklVͧK{u>X m%G& C}EtïdXZ,+m-x ˛,_k'm"qX$R%λ2Uf#7Dz>eO ¼դ =]@4e*vGD#PeÜPbwd:!JOkZXxF}1=v\\(ިFZ2“ʓ[Jt2>'R'Y<)애X_C +7\+h:LyZIUi)X3 XKY1b_tS$G)OkA$Rq7_n9$ +endstream endobj 25 0 obj <>stream +7D}G>b6Dqar-B +GTQ4HfJmY{E"i5 Ӓ@5f|ƃ!ePG!"mEW¹:s1k1m#SD2`/HoH$OJkJi& c}.屻 ʍR/M*(=*nKadcA:tBeZ]{5x4)IpcPGĥ M%$M%~4: HO}pAZdzS-v7&xh:XA6C6b&AZlޭ=U%U,T2(S_NesOe{AA}{gc-⋷XV7[}`ynY|rix|se6?sˀ7'r%OV{VDHF%FE[94nK9g:~R[Oa4dEl +PvsAh0OA>=h>*^)~ɾwd7R,| $ڃeE#VBbV$|Ķ1XXV ZĀm58,ar\(!F^mG$wH őX$;~r`aΡFzV)a#a*b6Ucx 86I! ڀNlp\=L=lt=2ƁM1Φ${\RAEq *@GATh[D (A,ZYBS +0zWjd 97?t6Y궥pAJ$*ԣ}U0v &I[.RqQSh+\{xȜ L1+Y ` KcR O2#=mY s oGJY!گ%쌉v2vOVPՑ`ڦ!K%G=h ; +T.*ږe +mW"t } ytSb7"UE2 x9#Ĺ Ī4I ݡXxOOv=] MYĄ UaF(C&N9ப`SX%M(\ >Sh",\ pZcdy-%gӣb F1i5N|pxU@3e?{Tښ{Wt?'$!!`vM$6MkL4h8_\B/f 3T!^mhF "v};l)yr C YTBp#<1 2 Z#r&1Qzrl ]9Uz" m6hFPXN˰Q9Ўu4o80BݫP5<$ 94 AJV V2TG'8K+ERh@1dBDJ[݆ | 7j*bZ"%MfQܾIg"X;AC- BFUϤ: +L 4-cIՎ*j]3Re#z z|YԆ_8/`KV࠭j &+AFOd#&zbB}@ % * ԩ LzijByc,nRBxD:a41o1ok7d BU b@P ù ӥb@3)9%. YC*; +G.;W'@RA3%%wHuiO5Yb|f&eQzJJJtv(hhTۨ1}HYp`֜lPbq/]bV* \ ǞIdK:$no{;, + NjRCR9+T/:+ %VVʶ,9[`P9pn>*9X@!:I +g8 +T*ʦaЋD7UΘ2(gD4IN Oe .).Qhf,(PC2TC,*Uw#ؘUlIM0\CE xLHq1'MؙM9# qE%r%W?_"w 23!| ڈ`ldlp$t)`02ss5{jkܹfYR"9eEUԔx "r:OE=QPT%KĎeI"D0b>$(/'! eƎ0 Nc& \4UNWP9yy3@Ғ92Q3 N0i@p \kxb Ord +gig t1$>)ZkB8!M1xې i%s*T]r*K ֹ2"ZCadM)iKS< <'glkZ|Dhz`9#TLA ^Vx[bIEvl<`I' jRT3`-SȮU+OPKo(=lks6iVx2%ˣZ~ƵiyCp^!>DE'eQKhYD12ÈG}*_X264Jht:we3ђhp|he\{B|R1!G& jPmN䵴,df>a]e GFT4ct.0Th`im5^h܅SypVcv3 +a0d]#f7wWv1chPHzD)mpgJ ne.F]%HR*?C)dQ)N,>~s@A;cL*Ǡ:_o)&=@dKyh'*\ P: fy~GMJd&Ľ2'=PgknGZea[{'@#LCOT-i D*.@,t6Z<2 +e2iYL+nP6(ۦM Am4c8 (&[YfDžbLm7ME2.+CZ,-b9 +֛sc5=P}E7d5ν4c<b.R(C9b Vc!"u`_Lơ`@Aj1?#0XIGGb@GLѠ-#A #qM")"3"`Q bF1 CLK&JC@ir,HLf8W\D1姩~t |]bV   uB,־ȇr XǑ)fyeUdnx J# xlR,5iMiM}MUUcd - -;P0zFeJ*;\by ޗa +SyvJ#@{mZ.)ej+|3S7JtNG!b=W vy  ؞> (AL`azNL2@NXҴ0@(܃~l*^CA(b .Wt:2Ir)WN'JliT"Db?c;,tX +Šq!X`b)Yɤ-F\x""!O~LiAԄZR`0 cOr6(q2XCJH(Ԣl ĞF[Wn<<@/{5 .GFZz$ey~,^lv Y3r*d'}Ɇ {+f:BXzsB-Ge#ULlKSY`RjzHR?4( C򶺁1Uo[`//Sdo׵c&xSp.$HzEPlC{)js/dKJjɳl+]Rqpjҫ&G9׉z70>n?Б-xPt9k#!^bOEL+N8('ec1)j]@NL8æ Aux{`=г<-H=89. V;|5CLT4+Q%2R7sG|EBw5I=M0~gtipYu6;TOGx:Ȝx')c\raڜw^644pÔ_+C<}.ZdY.f<[B.tdTQ'bިYp(՞ I Fta&18 nJ!րPngw[#J Q2S**$U95,ed/oBu.i[Nuj-)tJ1h ME.cNiYd7+Fjl]Ζ̘-Y_dˤ19(2@&ȚwNH:&[QO 8֘aG+uZF|p6ӠJMEGQ'յD:& [>D; S+]b*|p8,:0; \Xp.ɘ r&hJ +$$XP&bCAČBV4P`qKp_2S+`&@4I/yd2oe!`D:ڳvzxLzj76qOaB8c<_eD",(M&P$REQtj}(4`h% 7Podk̼tuI0χ'CK΢Y8ɠ +DE?1ame0ɪX$CWCv0ֲ؞, ~󓗯-;c8lri٤QDÁ%aZSyյƢ1d鴓W;BDegN,1$5k"Dv2$dHr3vE谭 ]ZiGI/w% u`੘jV|^iP9Ȝ +RP'&I\_A ):+aK6DOBx2s_Jflz~>(w@1(Iш^3`-\w{)z ? ~f6g,1z HxIqߚʾeߗ7$QC!E1 +`H( ( 2KB XL*0(a)   D04T.s"Oe')A$CR`JycLTz.mX5J&җ~y<.3<޻o#.3yT:p׀Y{E@Nw܋1uW_K:&*FOS/Jdol2/^4\Őv5_*s's)gyv82&<"(Zkce 4|VW.`cwiB +'K^` $j>-dJH 4g%c6IփY(=5ecCsA] dݮsYvٺe/)ٯ=$J ~,*,&!:F0$Ð؏W+Tit2`X?V$zҼWTB+}-cKhAâʸh< j +Ywe ٻ^B JNb}}ok+5ma=5kLJ@w{1_:>|⎂KS 'FЅ+QL&W R`'/` QDPKZ  ^}\>Wh`4mYi!qI :&\UdtuP([F܀x $t*,4rIG^Z#K¡2與TLrx^XorB [֠2t,Z0Ƀ&Zb5R핆sXBZℼN? 6\gC^?_LCfVU#Sg@gl=l +'jjc_H8(09P1E;ϐ`f +{Y tmss #f(ӆا `Z+a(sTW3۵{Sg r +5NwE ߐX 0t**"BN@`iCXD_u(Yg xA`1Vj葲\+JXu|,?%75.+ &pWrc>YӒ֔8r㘂 _m +Ef}Y N^@jp ND^l|uA,#yNV8iQ+o  cʭ`5/!\KχK5ʓع X8ׇ v@,3h͜%C,C}&DlymEHYs?~۩yV2٫`OPUj1J\X20$_Wïdhy $Կ.gBcfYVMF; 4K+̭~1!Lq 6NC#X{!N,H+, <9;{`k`96B@# /eц` \b_'rkkxxE{(1>t +y9H1_˷(069ѐ[ A`mj̝ ^q*a 0 X"|' +QF] .ê w5f5VV; +S|.QSV!I"YBy!HVP8?-8l0E˸CVh @mp-/ʯtlࠤ\HH^A!AHCALX)Nx ]m@ک-9Ht>*E=Fg@h\|rKW ^ 'L֘/J6"ӉXo3h/fUUYXBO G#^RUުp4|_Ua6;s k4M}LO Lyi5Cb@UvD c&`nk?hDw٢ $nrQ~Vb /bԹ:$ƝZBɬ +[lC3tpplvp$9"`Ęb2{F*4&+ NI4(+-ۿ] -A]_S+8D=E;[D?/5b 51,,sp a+V}A+NQ%pޑs +bL6iHY# +Tc!imJ]i?/Z/cPMZ`/C!T)\pAɩ%ojS%(!Ǥ"ր&&qsb;a.D6+s_A4A B ޷h uylRrйFc; BAS%?kR9;%n h;uϨ $&h2V7-["Z~U +§B +#ZW@)|:s0`9Ix+(-_Htÿ^N7DԿ& BWYr̪D:uup +_ޕ CYPls$|X>WG{O`~K tw/ℵE+Gl%ϑ.HU%4k@+Jޢi!;xMA2`m@ZQg} (g!͚XV9P$ 4*`y$7dP-s,8\]^gCՋZZFuoU.%8!"9IXI|$]nFZmڂ +ɭ ⏋v%jxEvW<*=D֨twqӮ..w+2rj/yhPW$x@I<~@.<Nń^q@{ +nY +q⭈ɮچA^鋻ʹso#Tprj++HyO H}r +b\>Yps|wqww(\p@1@w 6sG*S~ *Q?{V'ҁQr6Y݌]ov1LSZ>$YZo'Yn;_|FrF]6 +g}(atvAk]@+Pc`:11*#eU YfTXƇW L*>we+2dOC$հ q.~3cg@3zXY[!* VF+'Vr鮬CXIrpڵ_vqe n؆UL/2(rwmPf[4X4šfڞru _爘.#Nv,PgNdqe݇k4`,q@4Ve xLۊb# 'su+na56+VutjxZt# aV7s)q][`NGN NHpFniXD58od +*#]RU.H,QSr ݂ 7x㒈JW}xˢ?qP FGV #Q<"gwe138y *UYQhFi8CI5qu]9ދ@U~_ݵGf[֛~LBJbA Sɰd|y:MD'"#"e?9uQaq֥K-]L!FCt L5;? tR WKL y5ѰHDx Р*Hš g9Dfk~ Tothtr̦*jfJShy\_ +ȯڱ]V1aesjTؠ~˵YV +Ҧvr16AxjÆdmpp6:H)[=O7_3 O~$7Nֶɺ`}k N&]χ3$ڀ{= Ȑ'$?@#<9ASg9 -Uv9|[#x*0Q`"/\ 5' ֐Z ǚJrI{X1\;,o)䤟 98{sHZ{9Qn)p>CpeӴhH*l(,TsH1k7X ֆ(d]rhf/?#Z'H l ؎MhQȰe[$č6陝I]` ^xu;azP9 +Rb"Fq!3@K$AdF|Hʥ2(ikyYvUvenY}v8 +a )AL0AqZ[,ck1|"օ*ҶRʬCSRl,C`šqbutcu4%jhBL9 ¢b\8z&G;1Xhju%`2 hR l,Á3 noBo6;B=<2@`Z-۔@%Kv,Rex9ָx0"Q ˚5;:X 9v7;:(ãZiqaB#sn"]2%QטlS+e"!nXUp[;:?"9@^.7=z2P<@%AEPoiKHG EՔK*ϕ˂YdNlfR/+b3j 2̛Vcu*.4sXI$nCi#))ؘxWS3SpŏoӚP|;(ԮѥL"MXZ@Jx(1N]=7 +y#؂/jGi 0QԋdĦb -!3ZE7s`"ۓxO(%>2A ^:R&V54b +܄]4C3 vjuh-=nG? `wԧaJ BVF죁L̐:Ӗ^CLԉCVK=!:j],#hHaP?H(yT|$: sRǵ4*)ER o'juwyUYs.H0$hXQ':G,t /ݪ9>~Ba?`b_ed`U9xVAQj \ÁH+o\2eQ]>d8B᳾_yOBcwe3 DBBk2tƉ̀RUV?]s ,N!}!|% _d]ڇD/!0۠WPHo|ᨨ:T7X4bqQ/x;?n"fI_7i/Pth!0QV7#È ;4/2x,"$tOȿd_>7z#Y~i >- _w&X~0"?k:ꈢwp2A'|톢 }5j4GCQrOq2'O+cCgg 3~51T;~Rp +~;Jhlot%%y8`˗5U2 /" ίgDhU/~m'YwddY?=FZA,_sO0;Huʱ =Uˠ :L=Űԑ5XMє|@4u;3~>g9 3m d~~p_5l 3/Z9 E7r(eEGZejBP+.p0Ed `*}>>}Ƌ7g4_05 ~V%~E ũBC8J Շ Bv;}MO0bA $٪% ]Un?C$'J|.& - aaf/S[TK8I̩QGCAL +emJcm &Fs.,1 #η &W~lX6;*"2@.vZsJ/5Ii X۴Sy`"۽}!"*/,T?ɢMw3Wjy1ʪ`P**(eGjPJ,+m+e. >O@;sqD}s(c󼯁ѽҾ_0E-EQbvN+(t|yZTZ(uuvHV1ժă +'k96oI(->Օn)aJ%qXG٤WGՖR}=&ŔEG$uDD^P=wR6æQ?u$5+ic'hWAbEM'xF]\B7aӅvsxکcT.0d+tO'cNS9HKk "prHsF|"/z8R +c~-s@ X٠5zRQu%w aT`p?T”iE d`vfG|!ךb>RZQq8Z3+~tT%ɡ;濁I8.cQZBXDI GK %\ <7B~c"4jKpkX2X;t;vQ~EL,GΠG]NU N5_xJa[ k|t{=;GWbX/WW^Rx68iN#9̱{x%8]+= XR^r.m v(W0!$/š8z +Hj* +|:I4[]͸ƝLzk؛Y3dYK2oxt_p jv$ҤTHRF4EI*W6bE/W]jDFx O- +Xh}PRyR@ .$u*I ƚZ"`]nϵPq3➄oʤTLRsl&I v s%^ '.k3d]̙vPf v=h4/Ɨ^+<+%LbS iȕXSϙTRE!Jw31дyd@ 6$S*R NDRR$ ްJ@W"4ڰ[;bJb2֥Ay/BLABl  QvuHNa>..#0|; +'DfU4f}rG#ďDg {SV-)1_^l^؉ltte#GksTkn,H FAhv:^EҼwmo"KKxQ$dJ$FՔtfJZ0Z +lnjBdM̃ŵY|U#AmF`&Q2晉5<9gpگҪ_Sr_m:xHfkRbNc5Rdxhz3c0! ;(I@pDA-߱ $:2@ .IF^1aTbItBeV-%} |~4秀ӅL/cNJj7J[NU&4- oD)VF+ ްZ > X%Y~Eup?W6?P] P?L'LL ja-?F5AI_?Ʉ Py]"(@TL8ˈ +$Sbe{aeCwvUS*/ +|jGbbyYK:$(I~Tw:=$0t<HG/fK9:b B,nXCäRv¨C+?e⟬񿓑?/~?'$?D_U.JrEoV1.!?˿T2˞ *[l vk '1ou8ܗ~Uh_A'~~ + +afЯMVwV|A>V~@~ /7g2ct EJ<&}m|ΙzҷvC؈huaZBA " +~?_7'.s_[e) Fe&8$'P[%(<…CF0O, aH65m`%!Azc$톎∸[r#ީ_X +"Mjc̕gU .Pv2F0%W"{⳨&өԴuR}ϫ0" (Jp3!!`RņH""cjTM\(luMWj@(J&|.$Mg+yDM~_li9Q/2Xj# 9nJ@Ն|ln @`tXBP#b?I%Fd,h . Pb-4B\-J4HaRзIiȊDOT KYʴ6$\DZ(* +Ihi.P ݍE%* =R׭ NcDIb`~f#pL^lJ(BTaC>_HE>Ō#;҇nR x >EF +aZK0 {; ޮ8Jv ~{z1 ݂Q 5a#͘SC37 +;e22@bSp=3iA㾵aAU E %MlJʫS$U*5УVyXE Zi3$c^S[mXXCmN&AC94N226uF 6vC—:2f;X]Jbj$NJ‡ԡE;sGq*f>tt)^<(  t;H#xͽ2@ԉp#GC 1 t$fAc {g &~OxXMH%4p[6qI|ߌ hi;OMb B D iRΆWJ;ÆU枡O}[_?EK EU`$ @Du 3c`Z2.zqjrnaHb+OCk%*L EC+C*=X.4M (yg%;b3& +ƐRH*)v8NSxir!ZE+2j`ZH'ݲA 1Y!jדSIߝ.P?($Mܞ +kHB Х[OΠۚX>TAzBKv)%!4"ZtRȄdͰ1@z#6;9w)8XG>G+Phd! '%\)ou?^&*g"9  :%֊kxj 0: +2 fcgnty79X +D@1Bף3~֌x˶h-2(<$EdJVhhr杒` U0 +`hI,c ))T9\;G;>=˜ylzҲzC2@eAB2T.7Z!/] +} h^ϔ:hHT5vt@}2o2@> $$/9LD{\ɝB ..Ϸ:-oOxrPsW€RKyTm 3 F$M[%֘'1Q2@Tu$oQ6iEwrr[-vh=~N4ؠH0jK7룚l=-T1DZYeS0 J JC)$mjKeX* vmn୬[ڏ,DGE~b?!|r,.eD!Gt2JAuj~XR +*qX C)FI\?j!;f _ +߳A~F/$|p_#q83@"4k0/oA{п&'X-#~RA?qIϞ׉7+ˌN`d&9u9r6ŶӨuZ(._B{G,p2b&??Sq)珀 >V{G @B+ǖσ(xӃ8Ⱥ{ /FI\ā) +N0?ק9a;!W ")BOjOQosHIs # L3Hxmg*ZZL4dtQ^QJ C\JMU75ĥiI-q{j#$:_ +] Tl 2@` ̀ ^ {Ft-w,Pz6(;F4b~6~K`[QTH;*Ζy d:Cv$bNŝgVШ:&F-v%WRKaVy`bG nx>oh|P +" w6tT H;08WXh$$o(eL0-t_%n +튬 <tiUjhY=/u<^_Xx<ͣ;|u;5!)р?Uv\"f+ +#I)El) An&۟E>es6o@Oc`$2(c7~0 S L T/ <fgSpCU,l%f!WzF2jC,'aJT6<6)>c2ֹ'po{+ºse1&"uj! ( '9ꃈb0FeGeBOl~_K8$,bb.;b QFGH[2 vAvY"{c,O(*3@`Yݬ:ℸlAf*3$3Bn[gS{Bsz 5`f訁-8ѳuR-I B-jKGHB"_dґ/e aA?3nc&F;Rs0H=J_ORI7PP*r}U2窌7{I*3t--^I>^wxc1r\L&Q1Us+(?b>d>eSf>AqO1 ,PCP m򂒼hM\J]nR@!8glR;bTKް.(2EtЁ+1&V!5/N>dwA)JG1j,Vbi=%Է3UdQWq8zXe' E5w&B1OD9ۍXz\Pz'Q[Q-UM + xLd*MKׂ'Uo1 EsW B&)ZCP +c 2Q<!0D] '2+.2@jzW%B+~mZrZm$&ǞVB6NseOqՊ~z7c_dƨUg(U1ДqN'cv\2pXL>vawgb#Hd\•pB=o<+o L,c3`T{<>bBXh ./^UqAЍ,+,q.ͩżwz!eATC t¤  z]Bt.Zd`Ո0GLf"m`-"1FrY\cU,;wbh*rGr+9~`lr2CULw'2MXO@\VԤ" {.PO^Z|6U &T*.E!#*P9R6dmnήWI$pC?8#ڒ̜:у,0JV̼c:OE`ihppxQeJ&`KV%`8JV!XnA8 :% +SV G*HL)R3UvD$D!B5p!2zC՚4>rWydq֎얖 7OIG[R|(jJfbT0ˆ]LL(—K 7њz $hz~<i#l^!pqiكW!r!$)bdOwgDG~-]B6Qur:x(rWaF|@F}Pڴx'h.Z)ytK0 iCmR{Tnӗ)60c\1(u +=:>tɫCc,BYvӶ^mF;-T~JÿQ/N R9*p`a?!5-4,C >Cb}Be$xQФ i5n+}_5Z87 0S~Cu;63}q~`^lQ;m\ K'=ya>IC~IyQdWTad4|>ɽ-T~pXڧOZ|%ѕ#T"$1kzNq+{(C*v_Zm}pϞ=>M_cOǬA}¥>ze847 eҲ]#"[77HTa'> Z\%E3Ts"K6>w[7 +}Tκڰ-8˩k~Y~WMozK6i T)AlZ!( j}=L}ki$~ƞ O E}+r?%ȸo*04e;3@@ \=) 5m`2ٰW9Ji۾"޶/: ST d"~E@!/x#7Ce̲}(GLyIS]ͱ@ *:c )z< $T @A'/hwhѾhy.'UiJiۗeɿba3bئZ=PH[ӗjfu$r#H$Í)MpiARP*V$H6"e}P\_tU~p~V UX/A⢲`E Q$ +S^a +cc;y-Kыqj#Gq n63̷֭4IֽX,ƭCq4jD ebWȾg_Pd_QdP,h=27 H"Ae.# bE["+ǝÉס.fK6 ZIB刕C4)$R42ZbHXn"5(F$i "8!EVxW&,d(>baPI[܆C7NƮ+~?m} BNq~,HE,sLPջJuꌾA* WE*!=7%H /$/5|Hv&3R p+p!Di6(cݧ/( כ$ |^Di I"JXM~BnBc3lƛKbҎ֩}n%7'n1osg9A;4aKxP:mqF΃  +3@`J[|8X-M$Ý!ʞQkĂO NChXQiZ4TYݷm% a.RqۍW+w `[S3y80̣+Q*b9,eHdbĎ# +G !eQShA6I$8=Ŝ%hX(0QPIЀ(늣y;Sv\X/# F@-yMmA xSXSF1\ZMl?Cf8͡nf:>舂sh.+S1ޤP }!7M6`> +\֍jY(3$vݹP,D#R G +c(qqÑYxd!qzN`oe9e Mρg.Mج@uj 0t +3U-;%XdaxD1@rWM[Yؐcg +x>DaBnu4xt1\ `f@ya&L jMͿ̶'g/M3xBhvl FQ`@\J'Z ]} )sfC ĸRV3([\V54.gfz"?t!A ѣ2Q}BwBTj +=W% +MA)&4iti<ì9it䇗F!L E)9f5aBRC)b=ar!~fTK@77Bx EA ^#qA4@i|4GefGd=䎇;4.-{!=!DLɔҖhtZ4ٔѠ>̲b +KHx(@ee@~ogTAE*(*S %ɝ CҺ~)6WYX6 ?R/ Л›j=;CnMԛI rHC uTh>דQZA/)L^y>fa84wPo x߼ )$&X_h!ȃ~A\#oL>CiP=i:yߔWϵ}9wNSg@(2R=c(! MXN"!:0nႛ(աPc24 Ja._A%pOc30ԁ=K󨦕6TIN&c2@`VTHRp>4ƺ6mfl-w[-93d+۬oW +_6S1jٻ>\^|#IH QLҿүQ#V4 pZūQ1 }~>7:?(?7R'-ݠ3k d;t4 (VZ@VP_+H*/:hw q/T~ nJک/Y~?=@ tO]c&Nǭۍ_9{ba?9?2ȯ4HNȵc:vc%2TSuAK+J›UtzQs +rm8QX -YHToS7*Ud-a¿l/ v A$ k&NPW{BZMZHFhJ!dcH+pXb25ʰ'3U 4Ԁbx8z =;bJGOݤugH`0qJ") \Ts ^lmA5#|7p;m2lbi& ^4W/LlP9,/ƫ5 LHJ8$c`\ZVC͋R/{CW,#_Ǝ!%Bj^y&@xDQ)KO*{J<k|4qDs<*֚2d,dM}kf9tTh2c~ۻ;S}~Ƣ2:vfDЂ Qg>:=Xu\8ZV}qc&|tbp}D}lҹ)oX;_Idƺذ AWfAR +&M# 6|)>hn@1- )gLP`BNz1y4X":qjXپϷ"ש>gѶ&?~ -IgmbD9|Eb&`<4^K(A6Y2rYJtgadA~Ђ2EnJdZKJ$ﵿqTaѰE޾l#g%xQ,I|pc<& 2^R+ )G1*>Ay!oZAё%T -c@ż8nB58YãF28n7-au9H:+e%ָ_jdt]pwj((֒dmW&ZN])^б7{F%G-ёFsJ+-4dT.%@CvutPet{fN#j E@T\]8дpQH}*y*޹LD*T +GL,)8WR0di"}bębL$1J0FIC v%atJ4`ة1T-3XZSPKPF* S(dU"~VXD#Xtv(07VEUd$|1/B޿c_[{™xB!cCvy(K +Āa?Ipcy*K GbM8:䭵G{V9eִiG]qx]qlkz3@pXAG:b%>%%P$i⡲YIUVG9W 8 M#A=fR,TGPf'c<7o3;휵1n+#B=:Bk70E~fHz :rp2 `3@@{daG=@tdapd7͍E +UqUV]|Q+f&#dܞ"W+RbVA +GXg@|qbVhVghҳDBGL(,m`x"F䚲z]ZԙU͓ffdȴj[wr ~7La^^aTLD~I!ZTbT0K`0o9rSA,'3vƋS l#GNdKz.}@F%9Ո Bw^kLiމGB>e֌ld +/2)(bc9(iH BlK%X&#ߣ +OJ[7k(R3@9 l,!Zl̰fTƎnCH7b\:8nzXNg@kD)O+Qh4,8Rq8 š2X3 Ppُn +q~9XGҷkRk?.RM--FZ=}[ -y+μ&(RGXSHHɘko(*6-)^yYL+K36 ew'"6H3$h (xE#B#X ݊W>ҎD[Cmm6F*1CP[D4pjsjaI(\S"TydsWyN4pu+럤Yc~YXֿ}"KZV'p=>Kh4pD1 2~ZF_+GDO?mE? +I ,EYFP_+[p%qPT֗$h0?g=/N5-Y#H@ eҾe_>WRRZ$]oQ137Z=_*Yk~Tߕ^O#'?2ߒ_9r? " +U&J$Ɵ+' vF@. "$Y.dr\)Y!BWf  ~tM V&kوb aJ%~Gg'*~Ƨm-:^z=8;>q +JGSbKk;w8^p)=7~\Pb_S3 FG]#%M#;ߢhW-Z kn?Fޅ5WbǝE +Lh A*PhګR`nx50T<)o%Ic HB='@ς/ ߄N QB}O ʏ8HPu/Y< cFM;>#kW2$sƐUoLy_%=>{ u/r=~xA'H ~g96Bxa3#TZJCcR]l!u4zE }4꾫z__QHq/]6z7﫩de~hraw 2r("X1o~N +I_%"ݯd"wđ'RY2NL̨Hiؒ +aX!f@uMfЭl3ڭnI)k}qɃp_:_$ɂԦ#B VAi˨ܨ2FMmDMΔQ/=M*!kX!#lrÑ$Z7avEjY~@U uA\Xz7}g*A0/f6v6y k4˛8+rScIH5>OG[8΃2$όP׃A)m ;ؤz';q+(ʑnu@(mPig1dOj\Q 5|Y*LY9Ijw`qT1"GXoȧ QXXǙX +` " +u0Et$htk1P2 <-J˨H DbJ1ցZ1mu_k 87N ᜛nZg]u _|{gw'S,䮓JXOBD$5`6P` 3O*J8( tMynZo4 ˏRp;!bG'zV$46M +XջPu|K 1I9I\B ? S2dA`FJ]`p(YicEn1ִ'VyqE'z>ʫHRBR0DaIz +F/eB&Ip W*E( ^qٛRIaDͮjd*t^?OKТP: +k#™h 7rb,A&ֵPbO6 y GsS"?9 _c2QdiC{Ihh*RzZ^N=]L׽IDVQ5[ +K)6hxP ]쩛[C3@ EC(b#2ӓKM0@>X̺!!゙̎&BTh gَCl I i\rcGu3?ِC0Dj{1¬ blh.2No`M h=H7J!x 7DbgL̎<4cSUe[xJ;pts> R`# Bup߉Ʌ*+QȟYԮj\(-$Z;CSƋ膪5LjsDF4-!~%tW REK@ެ^>C)&Z5.@1DIqo!z1hvtcrgojvY bJ"hKJ$[=35x p10F}iis`WȐy"A&SByZ&.kJl$d 1w\_2oِϦe{CRC <I0"8HDL,8R,S^ݭTo*&+-ʷx'>/mbFaIw_z6Tu:Z̕K$+ ,Zr@ 8vv}I1A +3MϨ9kY4J D\':86." +q+- |qi_)d@ G͈F4Ֆsْ9P9p&I\W3'U҉PNċRB0o>G)3Bvp49'r`%yu=I`XOItsA.᩠)&nӅ~Q'JP$gTrWFsPa0`gln!DP%-#0!V!dB&ߐ eίN2eUd*Eiaepjp9sʿ4{Y"Bm1z_Gw6d0K4ς/{ƻ<њ Cq5 +OG?MWW|H9IoSc#L~N !H8|r򿨈bfC~d3s6o";F 'yO|}@&&s2-6m +~U҂:ۮ,6ťARd@X0*B `rQ@Vcb\?+B'Us~|}E:o! }. '( ̺NGbLԯQ^_RDÏ4N>S`O2dj>z_70@LPgҏ]c}Lny.w >C_yx>|A{`1$u7CBGIR"o݉t#"k26C{RC/*ݿ,ݗNp}RwO _>'E` `lvTBٖ˝-0D9YL0"[EƆh*%pC"+pZBCHi l.FPr06K <92 Ofe1^l`ځ +٘V0QZ)6hgpK'.@ X|ݣ mxidT4Xr3B\ TA3vA^q"<6q) _2g BU(k#&"'R\@fݣ$pu^ y>?eQ M;XC'%vdɜ:ȅk.ClE +UߒhlztӅM]y)D&\VבVE 5>'e| ]qD֐(W!:R1#Ôw=4IlD.WK74g >B -ؤ}\Ŧk3@ UٕrHE4$+ﵟWi죘Hr̷=P-Z`VjH%|XD94}$3@"R@gu5y] -eLan8x(,Q#WeQ\+iNL;FJY: Cw|OTv@Sa@)aaB;k 46)'X`Sa-O;OWG|g!B oH5`D4, 8RxCM!c]` !2M5lLE~F#Hbx*,Gfq'ɓ_T "!2>W)*c":*R  1!bQ,`ǪԷFT=.fN*HlBqd06 yۄYL!2@n$ t򓺋#  ݰ pAF=*䕆(c8@ЗyO=!9*(, iAI%)d +&vd s$Rs{ e ]k/LY}Rq8Lśdᑲ2ȄE(괈O Ϲ6?ALp˖4Wf5N}jHg*p=EM뱛AJږg1"q;}3@gU*l&4Y?&@H qAЦ[Qal&{7aKp~ gN$DM\АqЈ lw +qثA}WVIo~%nclf$BaiBm.jD %vh㞂x) wzTDɸ: AX[BK'}|c('2[ mjPbsQH8Mi_ W Q@pGC W@@c$cj$2K?Fx9|%%Ea ri ʖюbXpKCPXhousq- I45Ĵ^@Ul@wY$~p)Ki+ ,، I ⍩X4јф|4/+PJ?zwԪGbmbS< p^^z("Xpr2OT}RC1̙xZr3aaP: sJD0#uXJஜ nЏO%Tt(t&֒kͪdz [+CZC$4 Zl$&mr( +@v9l+1l)Rfx$l2@`gT/4O܍U~Z,{t"M[PWJ3@d +KU% CƠ +1@Yjo>&BFn9+pp٘(.%k$D@,5aA"JܿE7Kۍޅ 5L^YYF ` HNVy2TK^$ŀr䌘QFDuA=^S^"uR -ZbYZ!TT؆c_($ +\2K +NCfV#q`AQUY6/3hǹA݈hY9E tPLOk0\̍\j#hF@C0)L YUj~3xɞ^xd.pG_ XRFz+x61JT L.%>ҟd8| R(6g4rGj@. DNg%@#b!'8]ϦZыW"*}bPj-#Xg@/7͠p_1a7nzZA{<Oy]0ćgWz `؟pO*ȇf@)Җ %{DYdJF0 /բ]i;l?zX=jMPsH"~ Y$.5zi:E8D0WFX8T;W<4c      禷[A(Rx"H~^"ߒV&GZ(TD MhŒ1^3 hgq2    p      X'(Ob?oғd&#D H#2DcF85UD*?6ƗJt +0;Wi&ߣ̿aL?14̐].]r>M^)JrLi2~ 5LCN"%(?f'tMF=R5IՋ}$',qF!_J8 26h8i): `J#NN)@$?TW)a}f}]~6>.̉ͿQ$}*AP8Fr&yP>"h!i_biQ>zMRgݣvRUb/%;IM>$Uem +6]g?b ';i<6NI/*$p)h;p!@kTxearGiR/]A/lv}Ym>/)>׵19AZ1R1U )YleЗӍ1\5C8_V`uiin4;cl4vELe;=|Tj3He]AfJc;}e_[ϸX> ,\Adߘ»QF5R ]0/2@3ЩBxIȜ` aH1g 66VTIăP(_m%@B%=1K; +C7 +mF td=JEE^hfD:K%ar8$g@gQ^Sn+ǂ>e#a䱏fTR[Ku2} +}IeǾſZoL*E+e ШO!͑(*j]e=|N E1lb 'Z !O6SO0tw]J2ĊT쟴g\ g~f`[Hjb 1Ȏ ^N)5n =Z{ÔZ >) 5nM +FBG5oQTEBBD9?@xIϙ'hȵNVkqhaLHCbpC;C7Dxe !_Ǒ"JޒAGA*-^]߻3@`s" K KXeu.I@iz%Z'&ǾrÉMxG=pp[d$.V=F Eg*0KQ69*h +(q0E٪eZӹ"NE1  b9lS8X־ܵk͡"l%޸\8ʼn +j"{Ǿ^Cd^F{ ldGZ}M+f*ŨCɟlH*U"옡1Ƒ撍Z Zy@4-\ƹ̙tƝdt) Ց,Ĺ~ؾ?\S0)a +R` $"Ek.F}5+1*`Š9X62@ :]+Cb2}qG mL'x)24$`!CP)¡!"G$\$RNX8B:X8fqi,R30eLY $dB^w9mDp< +uR㙂!!) f=X!K H1\tD"gQ@0cjqE4p$y\~R9\&yi023&l'V܄58SSGd `蠈Db%IDR!)>(>"dq(0L/Mwky9hl~i$cfF^t W + WIA~P + v:B‰DU‘ǍMʛm%Ty;%/˃$c̭zcCj +&O#]: +MM)o2zPV?z*UbD_Wrf]:y&`1E5KݙhjSJ[QQ##*p^V'}eW!@z`lvB6h=94fr|E ȵ[WE_-tfHή֊j8z.AЧB7;`2LkǕ k4L:aIrBN2ܥ@YmllsҸu$V ybqKA; +asv6 'eQe;F#L 1 8Mlֿ&*&NdR4_%leɉda!Z0F "#\ZB[N (>GXeTP#k5.HX 1!*`$up10/ђV@~| ȏUoFGD4Pj]P ڏA6@*Ÿ+?YRQvK6A5^ ?ixA6k~ ~ ~Nja?@W/g6!~/{^ 7bTƪ5kF%.xȨ8j^Ǚ,>~ɴS;VV= ȕMdx% +mFzNr"LObA( yh3uZcDkjwBބݘ72 >o?or*L)pS_q>>c̺6 t_l У +aO_\x!=F*L$<,FiߠT}Nn?0WUH}MmOud;GD>J `B4Srs}{2x~q6ԩI(|ӾDԨ}j?2hah?S}AIE}C_Cٟ`Ќ4JKpCd +2$lcfE3@`uߑ+dX ξ~z&MV[׮Q(8yQfPkNN>>32 LIDaQ./DbY(lgjRs|%i֤"6 +K⠪{jS:S_^O^p_2b޲PZ?}M|V}-Xl+Ro9pg#WK=EB DJW e~N'_ GB[]˗)8T0hJ1Fw$Shl8,& +OvPG! +r@',*l"`  !зeWY*MgOmOgQOsX>e}/5:r@8ʷT!:˺Q%{MnNC0Cd%"]+id) LfBfO +D3AP[MPm]tb'=x~\N{ +|)KHŠ/eX8q B9Bh WxL6UKxd$ηqYvhG÷q H8nfaDst LWQqp"7 +Ht3l]"vr|Jaqh"H$~u=}7 Mf*,x21s93@ eLW#6g ˚h&0W{7ǎqPZ8a^ + DC,+PZBǸNfu.Q.%/G +3?!69Herb~~rJ UJdx+[֜3n)vH4(E0d HU$Ś0*g$EhG$\ ȅ9ҕsYy,g46E2tmNެoB'^\P g25Ez ZL0eluҲ4iVfbK[MΗz鞐u.0J@X@tZPhgJ`lJix}ͼ +Dj*C/4ׄAoF&361 +1R~±&?L_P˝)¥Lj + T3@akYu+}Iu֠43:9K8vdŸ21n:~'O2@`\۩&Ҏ87 +FeKW AYT[yyZnh1AIeuM)Yؙquf{TX"i\L̎i@ _h L3vu28  "?+C.9" 5ӭE^(Z⓷PE j +!3d 8[nD|Bq 2qZPk% +2kڕڵBWe6+!Z'f!̢͎ h-a*l^c5NDŽEn]fiXBc>CwM3jmHB a$Kd% J&iM9!hVS\(Fߪ1Ei*eZeE*D ʔҘRFd@iw,&ptJNJ(ea5QSN2V, .t +Y^Rq/bHR" iq!PP98xg'RVsx. Gz:b&,GátO1w|A"FVZ 3$EJKNl7Q$zXɘ"-lPe0N'IJ`TH=bC!֝h#312^$lnK$'?*cHE)U󝎗4'ź?@ΏԶ~X?! ++=X9¬_֏Rĥ [2h%U7CK(A~mBB?ӟ"¤DcQ`2]Qb $Yj}jwPϸ\&ؘ)翐+. :3g Yii&7oB4RYH~ B~ +'/0d .P|ARnMZIi[ҽE\bD|LaJ #AW+E!~㈟7PG ;~G_@_Oq$N7A=lw"F}6݇X2&@+\J3@ Oj6:7#J^+?ᅟRjG_$'%(rb_![$  aN) d;'UZ߂FVmG} ?'Y:ӫy}ֈk Z-|xe +*xJ\[݄Ǡz o`kHO}{Dby?WdߟhY}q2{+VJ?R' Lՠo. %-3E&_o5~^_7 EO uu<7{}A>+> /@֍{q" !ѝ" KA9NRh}ssrh2~~ +=>%qC܏/!o`} ~< ;?$=1k` @`?Mq @9$u޼d j۾b&% kd~omϊ$= +iSs0Nb L ŏ%cb<tבN8 +_xDkcYg$'БϛU*_V}m/2oh}ʥPѾ>adZ!i ` +4v ~U1h\f!u!> +orٗp}pg_K'K'N['9~cJA>+3}$, AV1oj$i!"@Dch{^X_ʹg} +|R`B.^S/G}ɇ0Z`x1 +u +d0@gKLU`84R3ym8>\  +gh8CUXkTnKJfSC:I2cŪ8/ +2NQ]6_03˨MgQlE ηZNi^HN)F*Q G%'H +N^b#\^* p%e3@`1qE/q=z^B^$Dn[74oV +r0J +NHȔH0F; c!}Ay4 H DsXJ)]Kl'v9G%rWdR"} +bH L^<"P_$MupB#agQ()0 +Q)txDh4(Zidq3S<1K2Cہ]=jY]߄'BILMaˡXY(p we+8텦t{$tqI8,4x2MNN/,,yb?^fD>dlĕ@S7Ax)2h "tJ@vZ*dFaC/zP]ZETʗ +zu]*3փC]X8)2(xy1niưF(4 u[hj +[eE iň̴hoO +ZuZ.Iz1%$8s)&dm-2l,’QCI[82@ s13:d p8.HdZ숼8qX<3"CĈ noZ'U;[+q><@`_[ 2NME>VboQ5ct  a7dhC SA_4Nǫ&BOjW8-ΘRُJ !ͱȱǹ31jmPiٯҲS&^Xڏdg\,F4B((=kx 0Th€"iK(8l> %N?~~f U6W\4c1G. VKnM^)hw7K |*쌦5J> HePac!D %PLbRj$Ԯ0wU!Cc"X yӶ +"b O8$O# =f~ GX$Fǝy +*rj#27- Zӟ?-,RJp$InNsH +t&Rwqq~um?V'"DĊ'2<(eg!zoX~T(i`(?~?qhx)+Qŏ3H,<~hyd',:#@U\zOYOǏ#>qSQ9;#Ð[!9F0N2j BaQ4.!O3I4G4)t~TĤ*(CT b}P?Ѳ) OOk6!^ >ڭqحdUף$ ׻*\{lZ':c[6PP4(ҊR\ uz$%~[Hdn 1gq .GP'eֳD9.76//֣dςt}d@p +b|)$Zx^Yӻ"ƻ׹~5uzG r8o}Mz(*(s + %Zj=1eW3&U3D'OI+Kt#/I6"c~${v2iPtv@V)R;OfXgAҢyk,03X#b- +@CʹuG^3W; @:c2 i]p2(B*rQ\;N:0q#J (h3ur2@v;#ϩOi0&ܘ OD)`TKiAvSjZ_ 9Ӣ[O08?OA7Jw`y0; +=< ^fjZ;N9RJ_J)+PZ 8YH7<e!!+)Q$L8Nw3Nb/x:&t CifPc2L'U}CvqBvuKgs1kxifH싞3-cZI`*#OAJhFS6o"H13Ch30H˰hY4,,rBv"` 2aZtuK=;H7g(_/ukh|3&%[>H쳓8#g$(WqѠ{ |V-VWo!m | F4}]hɛ8G|@QYm:t*@Șl[sUfDgB_P= ez30u[qi{ou#V (ޕq^&Ǟl..QRȚ᚜S\A(}-e ')0Gn]` +'8#IX#AG g&l\Q\t݆WA_vG.D)qsz+9Sf)QaMOQ zRǥk)FENJlvHRͅ>jƞޕ)(6}< \3^Irkƨ9`3`,x֘ +g"ocI.[LSPr9kq8kta?%eтl=.I JW'V4![Cfgfr;s>7]-^ GqoNs^6τՁ5Vh:<:UCFZt!$z}yE r +i=cd$z5 Ǐ e6e':9v9m+?*.j=~$`ߊ;_X__H9m<`Yd6œ(NN@:H(q0 VՁ&*TNtŦOT-~TvU2ҥ,e&&^{j!ԡD҂Q#La+r'Ovuד9e,'Tfcy!HJgP&PlY>˯7Ai>RH LF`N ]yF)0ʝgMF$0 ~Ka +Ο<,Rb^F}aU,_:_9_v`b`n^2ԉ˵&rok7)`'iwÃ5!9ũ9) ޫӅ%+L[ ~"ܐcҀ7I#f8&E MSӘnMH/ңx(ɨ6KN W,m +w~'U 0,c6أt@P3/Zx2}l$[UZ'ɀ w~P^æ"#ػ;VB"7 CI\!W0K P"ꜧZ=LhN)*:xFW;Y|72Pgт8\ ctLJ4RЯ (‰c2CT &+AMZF*GH {7l}x=ͯ=gȲv Tf%JW35soꋉ߼Y&uσv~n-QYĉ:7) +Z +ctbO(^ڀXW_P K$)I&A\. d@͉q6:9F:3}VUeBA %*խ…I˖f~^"b};B|vRx}{Bt6 d$e32 āwa5!K" V95G2QTt<&1ʨ_R"~9Y#\ ,>Z>  6̝BXKCr>r*Ԣ I#Hc$WRz$(b@WJ`XPxѮV7[5r؃XazjtzR~߄889*~>g< f +fN9ᨌ!0CKcIzĐK?D:ĺؿ3z{@~>x}gYZĢhaj,!-J>QA!}UQȺRPsF#뵞#HDzV_H^Q0Oi0^qr9q! IPcNJK jkOhT)Wʱ)i2"kuB,Q(Zu|D NNJ; + HI|(^U ZXbh/ڐך,X?nu}]ק׻w6+ כ1Os')N*&Xԋ,E\RIFCB7X!ף85g*/WL,]o.Dg\^Og/U Qs3@3vRe6 JˉcIDKٸ>n\R>搶dI[F[Or b>a0$t^5t}fiz Fן/Ցd: c#ɑ=l%` Oh!\ vRADS9VҥW5 ;K0A ULmj +]Pp<6Q}ӖP@p7/! 6?pߑ +y<Ubt0c"OKTZM'g {W?W/5s.wHn5bvٸzTu)/ШD f|Q;Z P29)[i2 yU МSm=&M=W{LO +{h>gd]“ 1"ZZs-hwkeRH +ЄcpaL{ V +JyDapQ dCFܥtP zCoǐrXV^6!_ꆬi0cV_ + '車B` iX2@`ҡ١bh|-"^hL +h`+#xQ3WAg>*_FQ؃8$Y&$19r.GĻ /z%jrA܈9:ҢA).>FH%Y|1ʈ xQasSH0 +!X0#_ {V=)E]@H * oV} +0QR$oR4z|Y~pq~\o,r۔^2ьrb_>Hq(tq)7Cb?\8$ L~obJ>BAeZ3kŢrADP&8?oaP:gX8l ]{}D6'ǐ)!d9rcHl`k +1D$H1KE$̏d6yJQ萁= D6ЅY_3_wdU+^/ 1|&mu6䤳h[tr'G(2.=Cfc ++RPvϡ%%dDY:-)>7`yW Jd?8>hu Nդ3V(r7 '{(=VY2@P}2✯`j|0@!p;.^cճWıw0Na2o +اr g>J50!*&Z c=xN !Q]j6weSp4K He% !yrZH  $gG~(|:Q$h1 kA0 (noz,4PЇ9G%&:TR +b < *=W{!N, лKxqhR&@Eܙ_y hώ~2$z3\f_ 5cZg``Zʐ@ՠ)UC K)$4N  ~LPR,N"IA +g H,ʼn{Šx[`Յ [#6P$R@1oQus&jT46Ԗ@DT{J鈽N:}oFGI`iRN[<ľ}i"eFȍX)[LY#ՐiyHZV"A*ܡ6FKJbeS9Eh`o:_yD?5 `1Cvłn 0+nR8nʊ ;vǣv[!*;&Km;R2 e5)=ղ,b/P_a`+tfBBwr*5jY4-SS`Z0G0%$4鼻tԺ^Up;I.uhRb2aMO@p+EkDWWRp"QKþJ¾e>B|=9A|,}`朐s𓃳uBGw^$:K{ jjE)Q(JmX[5y O@U6Lbao?'`aس9cr gOz B`EGo?!"?%¦wWq'W&'F~f",D wt瞃=?`i_o^_BZ&7Χ42\$敧uvjjP͕ yv +1GD[fOz׋:vE{^^ŗOݯ ׏ חRg®@'Z'G=c2E(ABC,T>dk+Qbh&[9>~u3~s_z1|=vQ^!  4RDz攱6V +'!n)Z\:iU6 +guz@wjּ>o^ _ܯ?S@׏כNg3;}nS4}Q٭vJXՈRFڝWx7_6p!WȢ9e'pvD,&M~i-àkbjW3ʺʺ^&K4&] Fk9YE)Yy? q.EaYn_L'8[)L4}#ll +\Uq w0Kp1O=Y4PJ%@8*qcwMFqQ.|ؤ/Uׅا(+N#!!C5{y&q0 +ChI4˴/pC2Y)I[zÌZ*Mn)qUNagzI z3Vgn9}W+d7g+8?KK%&KY"=dLAŌT(%2@pwr\@C(#LBcxGm]`h@)ɓǎ__Ď˭7 @AlY ,S@PXaX=g#1B}1Gh955?pE 4R2G'fQuZyb/ao F^ 2@@Ktuh$C`厮abu$(Pbѡ<.o$%#;v?-pɳzj L->e{ˇ{ 7n"yѠvAg,Oqo8\=kCF +J6C( ) >gqE?:"Խ{gˬ^ƾb9A} :Kw ʍz|!yLOw@qߤqp񍔜bث&$ ! Z([ RT4lZsl-F4A1TIfe(.eg+GjcJ1EoYqFd!c8( M6 Tݳ̠C`O6'!!D♗I>҃O^?u#]HT攑> dt(ʨ6d]V-q="){_ @~bI7Eԍ"=:!CA^>$,}$~lzo! +TՀc?~,br~ +=lo~aTZ)}yʦA<)e2B`~&4d5I>M}<V(ū؛H(?W4D q!c0o^#FxAЃNa2RadЄJef 8pZqlҬt +UyD^ &.e dۯTppGzz$Ф^D¾DA޶G >8 ˛sTQ&tiTcX*NJV۬!:Z}j43̃M`/ FrP!vT} +$^`rbT3(VHB2Oy.m؛rh/FkUŰIY*T/8C Uzו><7`z>$3hUH\`i\`T[QU ë4 3SHu({WhL8N>R_*؃!{ 0:}_vVن(PT*u@r@ӂ=GiXak'kׯ,c +yO^rÐ  P*pY;83&^*HhQ~,ũDSeDm*r%"0V׿_߆1/i~Ȧ7S{)sņ ( 6QUjԭŭ +tF1tYptƢdd(IT[IeԄ(*<6p_q$B"JfǮzn"j& xt7u¿֣GB>?4k,'C͖4"H4 :#*Erz#/Yl1g\]˿R 0D;P&D&B <̺)|̼!3f&6芻RE rl >n&=Ws}M`meWVwKqAU2&Ȅ*D2: yhݔ\q1 +C{g>ǔY! +؇v^@;l,׾R`QƋ90,4 1;B$R4MHdmmSr% +٦z jQ|>ñrT"}3@@IR0 c<5 Ik5Q/IFDc Z6Grh "ILt> +dM-84{]%z=NLXT63Ju9 \e 3[W*CWf-Ѐڧ/Sh&}`WbHC#CGƈ3ucĬ >]%D. Tɹ I0=ur-xjhL-[@7R{sE}et&sxC38@˷ ^.CʕH2ӜSz0\#}*ԃaEbrE+rd™e[f"7,z40X|'22N!>(BE8;yZ+Jlc{G{Wf3@-A;a +P(Ppeq(OD/BpZ/ƞ{1U#{%)׃ &$Xb`¾mKxRu(92)FVFN6 LB_m BBQv+fʞ'x pSPAP%Vz*>WK{Cc!XZ{}J;xL|9.L6H@AXwF3@Ņ($PX>02)iYz׳VS@t y(a"#j#M+Q%BQ(iFTz +^ܿd?p:*N'އ5$s/%- Xw|(L <9k0e#ec!~b~Nav0 (G%y`2@2rCq%4K9O3TL@"1R S)qRĴZ &ڐ( co +O7}T.@b3/*#]>lEAK،Q$(Fg𤬬ZF0@  dn.M3fn88q +z<(Ǚ@+.x.95r.O)lջR,l0=h~a_~* ]0nJӁ 04*HնxJAj ؿ_Kډž1*'3@ ﴑHLvɔ8.ApNRSY8%Bũ;q |tEj5)(h}c1y]WG_*5#ߺ=w_¾sZm0LFD`6>٣7mGr K|~yqJ{V>NI!Ajb/IC6{ NK qHBe-PЌ*x&URL⬡Mm/C &5 7a&D}D}낋=bR:?pgk {;*tN wWܑ0̖<O?c*T)*Qq[ !(׻]د=[,3- +׭/R"9   pB[bAgGxb3>yN Š* *n8* K)N{B(A7:DT Q@uÚazyIZyEz$@+Xk+hFCɵCtމjP3bRg A 8bm әȬn۫5&eXʏWtnDeOgj,؇8T.YO'\&8(( OQ?Z hBR! ,HNc REoŊͲW$ʤs4hH2 $P/k@%{9`EqGdO\ %QJNu0)룠d@l,-ep#踌^; +F{^AX=>F c-ɈQ'<ͬZc΍^Wh ?JيXxGt4ӺT@P7N0E+=}3' %"=5̂EdߥB!4Qmb'qC[d& "MwlT,;A6{5{c% )Ń9`TOYTa, m, Uyr!a8L952Q  DzjeGI"IiJOHל;:P@YŔ.'kuD&ss_lp&ڀ  Fc"<{tbVDBٗ<JFLyv[ʷ("yYON gŲRZR P'?uM)+CM! w ec =L[GPW6(PQB +K wHKN ~tec_r  )\d6S#RbWi.stTA}!˛6lK^d` =KIr'LN"9ȡHp-E _%BH+]aU+ޡٌ=y"= S9i>8.Hr{Y17A$GXnpm(ȥe0XT`z"QL${DŽ1b" Ke?E$X3B1(n5JUQt#Kpxш[{}#}HA>7 VK{Ѓ#cB>NgI #62D[ VIm4)FrTcOؓVo؇ SGHS,.d>FQݐ Ɠ EH(I +K :1 (W䰰%Z#~ǾA(=^dQDF  @8 ;P':--"եV"JeL^LgNAdUdqiF-PR{gaaOsb_j }] M̚ PvB1(,O7nMxCnNb$qA( +endstream endobj 26 0 obj <>stream + +nQΚiOPjb +roG$vFàtfRBnVRPNz\Dxg3m\ҞF0±9q"pIeš 5|Z ƀQh*7$J9ȣa#J|_Y +,uRw\` IM.H>r6 V!aqozA7䱻E8A7aٓn1 `(!p(Mc`\=?N28. FbP) +hH!!s hVvH"2VJrٌ,f`.;WĢ2>]e@lcfM։sGq䵟C/c%  -@-v:2 OLdѱFpH+^U(K`ҷzjVoDշu +ҷ*|OBm0 ο+fWۺjt DOBTY0`JxQ\ePT(C#-x76ϚnYh +W-yP*Tq[ ²I˘fst1%aלVe/BMs^pUo b2KkԽGx ,dRE*w J4!+p%{ALUaUP;U҈[zPVdw]s /Jϱ8d6'Ιw:]N@Q +շ]" /g'g܊_䗾MpUd C6erV}[xBtDw"0VNxӭ.DbJW=OQC53mbź/M +?+ G|[!n{l8RGe[H@]D dԴ$/e#k|ln_,$ؾ"}GL |рkQ{JHK շݚU:PHߦ@|EG\?k*JTmoSMmM׋+ioSS"WXCmG>r+NJZ, +v0'?@&]yaWuT߰Êq83pXA[QĊ3PŠl. GdQzӰnNlU7{ 8SXɚg/fc.qP*ـ:r[KO8Ҡ+c;+շiEг0oY"Nm}JsqUZTv +*U|*Cy*ϊ$]mBODkdB1pl/B ^H. MU #1DJƑ9qaꝪL8 t1p9+k⒧,QL  + IZ<0,*%܇ђ A]#1hd_tqI qdid@EA:J&g$= T0`, mlUO2P 'ur+"<'UqE n1Ν ".Kcx5Ziq Mb +34문l]t{j ]L@TY*K Ò пetb[U*^ +꧍UgIX=X1P[nWV' tLO-(z[}`+YJvi5.l<\|o +礆F5:9uk()ǐ.[\;H +MuMQ;DҬAӥ۱J~:wyW+qMb$e㇁*q6l`:!)5FV @엗 `oH2at ՝EQSjXk@vLe.Ie \v(;Y6W6BCJ}+z(N*b5z+7KD;}+]ԨW?ay34HU%qA]28<5˔6%+ 84J [Q>ۧ?ĸofʋoc6{oXvno-[lzGcu [3X݈4HL߶o=mӷ ۠)e3oJm[0oA>y{.UdLlw %a߆GF |NoP~l#u~^B;d5!L9).ez- [Η/VNxxEkK^CV7 21jq)C1-KaI\q;@K}ñ5j Z̀j#w*_|cnU{ +k5X6ƌ/&$=Y.lQr.} 7$U8hF &'e3 Ŷ +=&3Nf`fbMʀrwN|W;3veU:'u uesX9=X`㎥Ef''ۦE`o XE~[|gQרNHHd|am{\/y/<8\oUUpC ^4EB㑛 ފG5V'w)%e1hD$Gw#n -B' +b%,Z4hM6(́jB+TDK"Q&N +UMҶ}F}=e%fPcAjlIT.Ta)KʹȒ2+bЕ5ط5)kEXZujNxT;}9+ǨMI$aKEP0Ǯ-b `cWo!c*t.Sa$j쮩a@YȢ1ɢ 8kfah7e=5a^hދ +7\ǾgǸnJz 8V=rjUqx 5>"+ًX|u1tMeqi>{ִLmCǸ)rE *W1\jUuY4'xuo `X[qa0,p+\^ r1 ]u bBk0Gj]Dw5*`iOBqVwMcX A;TRw*Z1E4`2z/rxGi ,sXKl:#9+-1 mL(f0'jIׁ}[ +aauL!3܀_ K4Y1DPMXȀ2 O]nMC +~Mq^EOUBt9!Ah5\W +6|YOk>2< 3d)8hS*7I/A2 +aWegP=}!YnZс1МeX>Xnc5jRf?2o+U!BmW6৬34&rb +?6`1Tl@2Sa֧*G^]pM*" Q%LE9'tS #/KA}$m1C+ B htgg B|=;R Z|A؄SsDusiq\hhl`RB~o_{B(Dk6*-wт;v!; .lZu c1< islks=H]BJyh*8W H@N: =Y T|40h$+NeX +9 %IYj~3Ch:uxpݶUxVQπ0hKqhn2[,Hgi1iMc5B@rRe)hۼGD&h_g)^9+mǼ/,s@"ӂ~6byeu򚔵V~ Le=q;Vkϊ:qQJtda0!E@DIOu?LEHȎ|-| zJMzl=ekd}w#^4̨sN!"!3L p%LJXDpM:M+4WIq*:芌lG9BԗEѭ׸_%'G`RYo'A +1e@y>|EDH\KbBBу^QW8iQ|L23?ډ77;aZ)(> +Bzb{b̩.d*6XEQmE_ +DSU +(#9~y>òѦ&=HnӚ7Nh(Q3<;(Y dd{"C}誆$a*CZ2֯::փ,fmKBzj${kLvӿ~([3R>X2X\Hh5Mq9 V%p7%{Zfk#?GPz=b=c>^XoQ;x~KѿT^zhFƔ.AMrT* m٣ᣧz+ 3 'ޮ= z}`Lg!Z2AoYЧ爠ԑk/,Ӱ]aUX\!WZ^i~)egXߓ(`dB@oߟ.cժei, ?9-3E%o'"}yq1ՋD/^<ؼxi~[}`~񣸢4/>?/^I={nxcuiLxac5@r\f@\~,d˅fz=os[0! 6 3AA$Ur+p~)SffF44W-t5֑5T,X+3A@& 8XE |,e4@0$ ' g5)ik5Kyݘzܘ夞Qυf˜џ E2d4ŷt +V1HF;a0@.J.4L@М%۟Ho`ö/!f$PiƟœgFgԡ(Q&QGPTDXjly| č0{Ea_O4@8N$AfЯ '*]^i8Ix@@H&TK7~z0C"Z0S"JɔԒ4kuHeH<>L/D*#"9A=0YD\$VqB.cnilUv ]5@\pIjUƄ^^@v;\XTX*ΤF``rPCNTI $Bo'4H9;imDo]<` 0#&G5@ӱ +" Fu*)6L)RQx0ma!i%{ ѡYD.>H`ĸ08%iӄ{2)gF:|A&55M"?|aJ3/dX5B[Uı `BR>[sd-,g(F%4y42GDb4Q-aVyEC*dRK2njpj.)PTIZ$8kQݰ_Ut6BaxgʁոSVkm)aT@áY8Nk >$`HFR'LV1"Ѥq" UGk-WM;<OH :="ي8Oj'-HA/փ2 uTR0E\0T^-M5@ay.ާ d `H41|ԘA UJoNYөV3!z߃^4ZOr'vRQ5NN,N6,@Px2.2 1dӛYeF/9RM-%=V ެ:$ȁ"H>7Pǐ"u30oqxBO>tZ{(FzAfEhs/H$OD&B*1* a>N%Ÿ ZleZ CTKY#.Lɉ0#p|'G|UӍ\TJiԈCTG'Xy4hb ;[2p,4PhԀBE=l>rA$9Cl '[͍'gH9GLL M%r;$kKZ1Yh {InuڔP:\Z,\ʻa`jm2shXߓVa2TtI{;]p\$Χ<  .ʮ1"KGA`2?Z\keq =}~$GJz-V}\E@ZLbhТ(2jQ#nbJ+OJR5r &"F9 bXe +Q0ZZ.S&;/z?z P՟Vȥ*Q{~&ۑl1)CO0>!\I6'W +U%Q>t!֮!^b EJNVh}^$[_g( Zz6YZEh!KxmE)u>D*=Q[>p0~P_O R9 I!QԏI*7aߡȎ z %܊W%G5?wQ@XwCP_mx[ zrsܵ\=N +rG-V7ZDh,`)vBMEZJ[TiJ^$tq VuS)Tr)b³-e%U.Df_EPz·jrmԴa~`٣rbuwDӍ }=E~ + 1S؃DI1*LD,jvLGʃK(GoQMKIxBvx-7@hbXrվOU{T R0Z08,š TyX5@c/F]f.dU"'fvnŒ#C<ͨc +b;iYN(uhQ\D|k\~Ϊ 0FDlXEy5\D Q0PS`qGPkbV ΊONưhjXOM=I %bX>Hj 5mIvo%mj se9<:*NB34LY1v~]O7JS~[ACXNҪ:A\?X [H׳Ыփ(҃Ap|u(=ZtBN%]ZL*T,.Hc<:J$%Gy,z{ؽݭ,e0{7 +srz;&jRc#'GR sQ֯沰{ȩ%ROZ1&29+ Gh'ӧc)C(pHɹXmmիUcJ/u'e$F{I*<'t@!&Fw*A8jwMT>֫5v(B1Cғ(H+I3 -oY֐8lHCbd3|(eZԾQ|z$ qjz G揇lfr93#.aK-eyTVDM: ˇͪ(}SJ)&(N)?r54IcoqSz]/:o A&2Z`LW3sc^ͤWRIksU4kA!FcJ7d֞`2oV[(Z *(Tj⃸L(4F-lpdDx`mo h}j@.fpZܹ|+PbIA/ܠj{,UpEG5~j @(a#̗;:46RoܓtnXwٜ AT\3kLD g\cRD<>!Y"4=0BwOEMuHfe-Q 9п<֣.Q Wܟn֬ n.8,.# CǢHH}<$Z`?>SC|J!KW &X`z֧N;q[ǀ =Ǥ1 oP/PgvH|hwZ8$TO#2٣=T:D>{Bo´A_GQ_5@!J A锆J(1fx`%DkʌJ猘D͊"C(BKrDW2|EPhл0A/,VK[NNZX_Q"Ĥ1oH[4*.bjy o09M~^Z,.Aa T (M+K*1bEHc뽶 ]zJiDBl`f@&D'N`qNA 42e(KJTbP*+Z4@JJX({յ>.h_RCO˾JU3a;KcB(K֫&ˊ$?+ЅPAsٿZ2SP6J4 ,dO*aXZUnOw=si{l4zqg(z6jRI!U/zedBJM*1~BJ䓊s@!R]kRM|tVzU#f=uY/g;֓vo\ =˛D#a! ֧[eLtx]Ҫy?V$6QmÀG$|,i ] +WWpWUXXlLudzaӰ~ +R;X.or,J"赇DЧAvA_ֿK7VAP~[XM\ K\ ̉Dh@IgkM 4j#d,aڽ,|U`ŜSzаNkY ._(E?*R֖X˛"O/ +TYMhS~70@:%\b N<ĕ{ڵ5Ua㻧@9  !B +Z' E'?ĝiSϢ_1zrdG4@k qT5(h'^w,$NUpS} 3e`0$*]P2.r'/>/TFІV+*\W.q +#ωbVp8 +HgHp<0I]0o.x\BdqEhl!<"6/ϽVTQ7:9B'!t`iG>klBȸ8|JJUf*2)jZ-v{9& + !(aĝa_+\T'TH:[|#-/2BN/8"0HHv^ZBI9.RӈqR`c4H I^cLFJOdj5@A%:;~PNbLNbDED_#PA@ MArF4F%RXߙ#9N^3iW]C VR";y;cV|,1x $/(Ќ&4@\$$қE^"rN!ܒQ:B%9E9Dq&%|0b@z_}#x؄v@, /G4P(gj@ &eHZ%X%3c>EafJG哝"ϯg"i$J!:|X8P)}qJ*yIA;3 Pq +I& íOw,Ni \'YN;r#bPbB?RڛPBak X;ۼj&a;c/*Fyd_"1hYBaX:h!%A5@sr L[&L[15d'LJY,]Lo9JX"v^A& DIeHf,t? qpƉskQZ/׷I#IFNjMFJ)CpxH9Tl1' +^= 0=OYeI`16,0;~zMGŔ:q:k7ּhuУ*D- 3w&ALX, vR-3ޔY$.GCw *݀@$ 'Iº﫧sEBm)bnWH|IK@Q%nK|Y[T #.˕Kr2ZmlO%U)GkY$]P]A*^:< +ug2@;*A>įRZ|bY ZϬ (tJ9S)z⒦)H e;)VAXֈa#c  Kmyz=LIzGz  xf.kE-4MrJq[x1a6L0l$5&M @QR`PƵi^}al;X0 } +.&A`J%jPKTj<Ũd{#xL^04QLhXq;̍ t#n.֦e*ViM:.TF9/$.PT*!TX(-wח8טJ`OևHY m~G&=- ]ї #Ap6'-ϔk I:lٖ:haxB;>AU[ӆK g3dRN]G^ד\&ӡ}п'vzK*nW_6(ii֡zkӅPGN<{\c/J?u_CcjAR +2)i.zf?uy=E##3ۀ%.J,1X_).cqr- -X`;1S,UpZe@QҊ9 +B33Q =Nrlz Pءh9r icN}ϐnƩ4(ҫBuf}kLAȚN)ިS#/KHzji|_1\4wP2ﵳr@3095"ch^B3a OH**F:beiiL֪#X߅Va Ahլ{zHz6mw^dGB.Q7$7 h/T{`vәvcR +YQB"$/ujX ]huP +TK#Ïi}ke=ϴ޲ZoK1bIK3NַM3'KO,=zd +rF7Vi\h 2 b]ԟ:<9h}h}Lhg}г{^1Y0Y/YzFiB]jDC)g&],YW|j%=ӊq. ,VwiwC>+~WQYb>Cd=%zWeg=cg=9Y鏬l ?^Yxַ*CUcJ:'6dh}D,BZ+M:ewedPz\DzzzHz5EOze}oBaDasSc}pfzzL #k9w9w<>%Y?nփk,yM")e!!.WzLa=ڱ^CXntX XOz(zܲ2aI)~QPh}\$MR/!AC&Y dmzq\wឯ +1{?DaAM+aF2#$x;6ynuZ越'Ah&&6!IJnFXP8)C9j'Jv1xg&V1{*D +bFG;@(hKUNq(R64ؼz~y=yeiIB`=1f -ܲw7c ;Ep`(.؂U!R>8tGrآyiJiS$B*?~F΋sŵx`p5Z8M+07^i w0`1gP&^/f/BVL%™P™Ol0MU7`X8!zH`\4X6RUvcғo_=`儑ob2;Ӧx:r&h48-xX !bLdIwd|csoL$d1%e7`7<:*qT]0iPpNTږ262b]yM]K;@ VmB-ux,Pͩ5@vČMd2hWfz1Phҫ9ߖδ3QkWn#Tn}eOR\'ܨ=Zku ,+yuHR$7mD\$3\ U\R6h7#5\wSHp-:RѢtei$2":y*, I\3GegX~KGQEQ-ATڏT΄J_TM:(4@E*ʶaEn2hAR$oA/$pì}"Ґ$y)FbT!O׿^vϢc?-> ZX>5k e[Ʀ H@)LQjBS69&$lT}28Cg]S9T]?=%xH# o9+݊^xf c]Gf;/䑹ypͽ|-9;N/7?DN-Dl0#ރ&uSiY zPzfzZ^7GGU6b ȖdbCS^ {[u]b6XT, E!ƂDMu"Rry2Dbp{*MZ 2/ W[]rKנ7?.҄i|"] 甒øW-Lrk ~RF?d4JR:+/B||^Md]aj?ilB렯|L6 z ";Ȥ:{Vq:Qr+5)0,(y,w7U8S$U!W[X*t8 X=/kSwyпmk%9Z&ّgh"~Q}+p^dzujΫi ͪ W0+F]--d/E4AG>g-~d>:i:=A/DCbI\0⸫B_9XU^^j":ZρI{VZkTZGZ"-RZĭIֳ!m`Cbmulh}\:l} zcIwKߚ WTeZeM9jǏ:,mei='i}hC[kEk=^nֳ8HS֯c ַnփ:c$?t٠稲^_ 1" +9cMZc=Y;Y|V֟Q ֫hC~iShB𔅬zFQMcZ߻m3 dg=g}jY0YIל7/(= X2;nm^$jyd x/?uآW +H뤬Cf\zt2WWwIד4F^TtFB5@!Xl7Pz6  R^ F:;l%?"jC| d%,̾+$ج+ B*O7?M+%y!ҴFry=>(t; %2b`@,̋ƥNqy rXqX!Ka 1z8SŚnmqy16c!Y>V`MB&"⨡UO[ ZvPݗ&=˫)y%(3a wi=O;#Sd#c#:g#Dd#Z?Ž *$E'9XbgC{N:9JT`>Pl6R)Ԙ$+#t6fMa nSA.dj\oh2OoyZHorB6{3'Y I0) +RqWՠ{v!G?|E]hr)iYVʤK\S|?3D_ fQ0iP^Zώ`Rlvjo + ,=GȾ!IiUJN+!WoˏFDYd#Ph{yP3:}Y3]XRgyKRVy XDgI5]Y3OT[ۤ5 \z3U"*#E5y#&MBT,{!Ay=t/zRWS*\!m7J(Bb+EM)64>zhSr7*okAQ/&ix5>2\cp*p_F%YBEGg܅F= vbh+dі +EQ#Ҝ"{4oUD0Z]Mu@r,T:^6w% +y:Lr%)X7Yu8Y^" GPOڱX/ŋ9.1QEdžvOA> $:ۈ< h(c꙯mw c[@RzoF![ p1[wWp42>Բ C dPzi)YP^b/RCfN -J}&N|}Nkff 'z% +>l_b7CVW +7w)FAOR%"LtRPq8E%a xz @fT~x"Q}^̄zdRAg RCQi" 1g^gP rf/i@;;9WbRFN +A_h8: [&]`fXCfhӕ#FQ O&'*A"xA9jar>(PtO~D %՟BQOUXN-w rw=\?Z~bn\ |RKydr;@ Q>뇒kcRJc)rMA0Y)4J +0^,4faz+OG Bύ\3 ? #"oUDBY[_ނcA&\QS4@RWd< +J>$VX1Z)Dj}T*p(9҇A_>A/*"@zVs" BYfЃgلR9]NF>*UKsH,}ZE]Wi _4[*[oPޱl} z &AW3A<5Woe3{S^1;L"OL*?jTV,%Ey8Krn7Xy[֛,[c[0[ۭ+w̭b҃~ e T;z=;G^ЦRMo=[.ulZ[:[J[x[okK**O9{vJUc0ɴh Agn}:޶AOSB  ,+ZѻHciYn="En&ﲭE{+]#TFZn֧8oHKǦb~O~_]ZcuSП.3Q'dי@ǂ!4}FlGы#CEW6TʤcLVִWy?$'Q>>OV Vpy "XZ(2g!ȟ!, ":6*]U6Dˆq^)EjIA6SW&9vf!{7Z84ܜ2o*BAC҈q }}k*+<-&pL'GχdǭNBzhf?Cy}!؜; &>Ye\:Ò,ˉU|eJ/ ^$ ^\3=lHIUbȱ#X̣mXFLN@+P ٰlk8B2ԄS$֐ IBj^1s4f.̀C7RqY:E2:) +3:Y׶N"T a!5'tMĝhC9{Rؑĸ+ƈlj+AwpnvIAFLH@r},M-5Q2wT=@ܙq3?S "d@RQ{SYbk0Jdi{֎gK.oʠKjG8[6Ҹ>ϹAX<'c iv1О?1|6k㠯+b1|.R,+4:Ρxdyae`T?dr U>9 SI= pp Xc= ` z{ܷAUri!QSWimjfRD/cF: zʘ !Dh2xj9.۞+T n>sгtNEVX"+mu*IREWJG.藓bDɚ V!*5f^bك%#{f8^灳:(:#@vS5SxgRYki $7w̤LN:"1%66=j9p }?}F1)}V[0q 7Dg Ac4_KV uiPt5P7T2v| A/gV4jN QH2%#N&`Dğ =5]a@v#]v$ JZ]BF,7 VڢebJ7s*7T_WxhsO;?oP#ɨ㜭&^7W6B_T>^Ra.#k+(@vtQn3q9XN%tbr"!HOyRB y4@JMNMb&7gL'A"])A]oplqxZrż81.5N*bxŰgUt9tTTXU[i' дЏu=00I\s3\ӌh؂t N&ft$<K@AW%؈XT&VadGr TDYG`!UMH_t 2JƊO]J[a%fɳ_w=I1!>CpQ8'; ( VkFM$kpQ b@:K]JPI(UNi|l'}ޢ6U˗)aP#'J +W.R(´Hp +uCt}ݘ^`b0#czG$}k@J_7UڛFdr\pY+zbp Qic%(锞@PBbY`_ʦׇз$V\] b"Ћ,=KM^f|/a!yx2/?hE4@@79P N=kjʫ)b~^߮|?8^]2\/""Ifd(/ܷWM(߀8O4Pc Pi˂5!mD? UH-'N産8g>[`A=ȯ^5BH]r\r%%A=aGƂ*L:xCQ&4JE[F jabHf Ĵ # +U=WDP̺UF;[;x} #5vjzzULu/s:'GPʵO$Ԫt|B +HpAC"N42"BD +^?E T =*ONE.mgF䱘 D&E"z8>3d˛wxT_RdnbbQ}MP*Q\|¸:Pu=W +wR]2rczH0ajQtijuWwwXT RaP,%HieƧ \b֞pZ+Ռ7I-Z `OUЇL ǀF\aE#P(Fև"Uz?@b8a٩I5t$-԰Z J񂊫QΠяY>>#^$bq}Qr`%Tە1>soԗпJkVˈ +WiGDO"U?yQ @Z~H?΢"=B"ht`Y?]Vf~\T0?D0?WB{va~ť/A;WRˏq-a\Ih,D|B*&Ă(|= #{dN\g0IouaC[Вj!E5~ Y?'DB% +& ce fh4Qqfi@aqRavAa"SKm{/"԰4꒒$;y;ځhh 5Z@@3p p@0M)[8N':UQ!iRxC#!]€qR;s|E3|D6F j:3uSvؕ6(wUp(|.LXCZ\G +㌲W7^숹A+Ճ'9Da:Q9 wD ) C@GRVFz2P:Z@hF3Rnf`U >!40 q *#C" QAzT*rC`U"0 +!b%tGIl(DJ`6J$0yQej)JX?%PU&p(.3G\a9P#ijn2 Bs.R'# p2bhr=S"Q4Jbd {Dw㬹Xr˜^Z(4OiT~&u g &-7aKm,4_4@3 NӜC`b?/B[%IC^·zr k"sI.@46,mZ,{YO!*%_$cTӋ +;\fBge، JF4T_nn>='ɄQOTY٬sl$ld`ző#r2/A Kay7`Ri;̅SdCɂ2_r$i2#Rإehۦɹ|ʩz1zBͽ/ _o$'6Զ$ݒE> 8nLh +(nd2UdQ@x/R>hPk]a#ɀ5/q.ˊ1Wc^+{c!de@ɁG79yKqe8#Ῐ( +sZnL.clrduKd +C ӭa2ɒJٙTBg5ʎΦNgu{l.mo-o׏C DmSWJ  +"dsᴲePZ+XT|0 ڲ0:Ν·&#¶n|,;i?thA@<."bd4IL]Fj7qC$0NBUa +NPC2X<flFBZURwypqWd&ro MBڸ"B\U_*%ά`{$b(T &A!y&]S +&!.[ + +c[6U;Ivq2cAcE~Fv*g7s7&>$ x58mF Dr$( #% 32CF- "B( +9*`:'!~* i5NG:\xl &ҤM'=<#ICBdǡӃ'A .ĢIm0@b Cx)ƏA`_CE;}fhol/"Z"=$'Z0hK5I.:`>`eȥLLZ0:m> p :mT _}a/Jt7RzՊR+g~I˩0-i &i9njIõ4wQ={!CA`x)삁z,2w&e񚑉5n6XTJ&(vQٝѺ"JNO+; z˙ `hF }pU,ձ[.m'êi +%+rI rF2 +ᶤbɬ.9Q%&xo&7Lr4@E@D1#|3ht"b8a14'yTq0d}e~A..!`.[ÃW"VԺ"qjXxшڼ9gCu[>LX"j+M0E0 $Gs`ZΓWQdKdXX("Yi;_A_ ͔!/c>Sͼ`YKq7r| KpU޹C YkeڟS Kk3̡߄"#*"m3˥o<[}V%/ho ),WZ+ױ~ޑ rö\Ĵ{$*PI0 +Q|"4%FBH@1e35@,.=P$M\J +ϊ"5|zL'}EoM(?q\|x/Y!(A2DaJ +_SȠQ#  '45rr HL05VmRF~DoQzSKET, W'g*A4SE\/!ms1s3,&A~̏)9`묓$B&0vMG +6rLRjE$B<䫱px:tyɱyΘ$<<$e{~=IԉA#{=佄 4`7ORj֞C"C*̠­,D >-Iyy~1;eyhyx~<_؞d#*CsBszq&+7֫ohjt΀D/kТY=^Ja)keͰa*n=r{ A0ʧDB}1qjldyQiAqA8՟M1~{eP?i7@22g@t2 X_L%ӯr\r:'SUą^mZqXHb\ #F>QZ5 +m"p3F"X_GpG|F?Р_P_jC C?:@չo* p; 4@a2$2j@_!ǢyxNYǜzBWa6n[N\|bXB\$SR 8%> i1RK$J \~ +!;g2T@%Iƾ!K9˹M4ǙT "b5sbcHV"Z0*M8aBF Ȓ"<6+rP"IԌTWt/Qg %D΍,l2Dža&ǵi>)]ݰ+=jD@ +Ԙr0C{ppXb,Sάjܐ|CA( sԡ[Ȅqn4<#ZK<5t 88J J-C*5@{;-SFF4@ +N648\\y$g1 aܖ +17CHx +t,H>pCz^sC[cC.X/NQ#Sr L9k|ЫLb< i@7bhƺABE-Bdw-\Wc[`hKKm͘kFp: E&$N=h ,8|yYqH%OSRGmzʜ=ʄTx7TF MJ9Uhh9bOL!>Wmܙѷ%*nBLz:J/,I2oy"FG@y@$ƍG)i#J^mH4Đ>!Ir<u@*Hm WEj[ D [9q)4v1GrYܨd@#@>|褔Dt% Rbq 9Q"~ptG^d,nYTb F Fi-]$ߑ'sJ TMṳ}n::k*Uj_!t5CJ̊@ CjZ,Qr%RH?m`3 )_KF Ş`",}>VӀP6 2qV9-G6$aȈj,g#H5fO5PU;@=4+SAfqI0ĨA<[0k9D/ +Nsq&zl6A!~2 6Z)Kgt+ŵȡmih@ !`XSLuw˔elwǡB֜ricPeoMv̤fTkb%@0@ ȼf͇]VHVF1f=X=Y*_sV͠B ayx, J %PWT:2LD\06~0ؓBڱBkͬoI[\F0yCMO!8h"wsݒjS8{n)*zܛ`m(T(IgAGi1ء8melS$mk6b/J}Sܼ=gߴ,YK'/;0 ?t4)5IAv%R0IdodhDz  lvi"G"WBH[ݤl8aq'RC.:6?t,{yxP5@MOzo\q[L'DF*@0 |JjeVszbw'yHl@eH }:'F:hPcSCrٙ4bj U4T(G?G"SGW:3k"["yzr?qA~?wc6)OkV'V\$#^Kg+┉OA"UA*e.c!C$elHhan$R%I&*lq# `i[{kNJ[ !#PnPO΅EmGb\wc:dmZ7)4PN8K,QB%0WDn<&OtT,㒵>J5Fţ2|^..C.Bx:LyGL#A0NcP4XZ!%{Y(T?8՟x%nC_@ ?Ǩw /G\TNJ5,>L2~~9-  +h$^#k's3roA +z 6M(j~\0U~O_~p_ PΫ";hs&65> ya{@Ò jW%38[H4@zr :,Y4c6K+'-?oC>"!_\v,w| Srm" h@ +6Q l N A0&n¬>X!s+ȔAWS_2FJ`Ol(۳&6XH,P"rҨűڂم4[ +=Qx^TT3Ъ"A0?b` L 9*_dp D~wNJ:\S^hP^hЧUFl ]6J`z(F*T|q'Ll|$UT*X؋K #\65@\D͇ev v*P༊%6u_=D\(k!嶄*8M%D$4@s˒1JJ +7aʜeh*qe%:ǠUQ.yYYH4ܪAw*2IhĦĮdCC^eaeUʢDb`E񳃉%&%$4|+w/r;юɴ+\U]L&ͫ WE&:5?YC +O.>ΩODT*(I|i #' P9S҇Q<dbߦk-%(6Zx2"bMh:NP(;QqFT9f"./%Aet +l p:F9*'#Uƕ(Ҏ"H->SÒwY ol8LwJRؘ0p)W\2aJgOH "Nd t4%1bT$X5%![ !1V.tzQv([uJSUf2ܫGj> +o.4-8?VDݭJ0jC`B)Z"טIbD}h8d% RHQjqH%!7W]uLzpW]̞]Lk7#-O儠 ؓ4@ +o\ CA EvlI>Q4NY+4^nO(br̉G ovep'jɓMDʺYps"Z\dpʺ4: K3 $[ذ*=4@P@l,pż$ZRh8 (tO R#1FMA962YX2+f0}!HU: QG'Q!o`z޴c0uGTxhd0 ${O:gs%.O w#Ria١YJb` <w &RR"(RW4⩠jACɵE(9.A Uҕ`CjQP)|2l8-)#=^TZ= JZ |kj+ 9 f,$w ?`%|jrG:j"ԯQlĕ[(_ƢhZby?;f쾌 ݰ'DjT#bOzbihƲ1RX KÓ7'zy)92Be*Akn1{>}^+&>) Ս\B7?"$r/%YQA=%AVcd-FZKDE3U0`'l`Xcԗ1F +ò3LDʩPn'i0<͞h@fF'*(d:`ʬD$Yr {߷֓ӻ"KGpQm9MHr}Ў!$c<fB|WVD!F PJqjIHR(a6DSltDQM.F- Y!=} ŧO7+VQP cM4);|BBZܧ`'6XӪ`f\=yܱ?iTPyz d4@Aկ +PSzJR_0_՗VRωY5`m36H4KX.uO + Sơ3hAxzv p<+^AMhu +P`0>at!xr/m7Y1lTZ " 7`‡l'[qEP)Ǩ͙պHiչ\I8{爈7lilx΅ ]A +kJBRHH a3zh' j8d~m(EnF9D?MsXa! 6: thU}BlfE,%m!N dv4(U$IjeB(»`  6沬Wfܢ,Hfļ4y_w/JfPEvwGU 8g1(%Wߛ Xё jz[ٟZl%M?GNUeYMr\ feV ?0un~OeS޼ť:ˆm Q" FC/t<>Hӈ{ N{H ho L]LtQ2ce" NnzCA)[l":q7xۂN\xKdD2*RZ_x*ɫ\MWi{\X)mn=͛)MP62Oͩ]ֻ ixП!=\MlC*GRb2gŵV#4@6(ʓʳUYa3s`yU7ThIB ǠVa1C!ѬREƆ $^$^ R%BIXBOs<Fm<&>Yhe~j~'4t )hC(d=PPP JCJIځ@> + 9oVTA<".a|cEE +k뛳xؔ6D$& + @UZ#SAVXh(>hګpYpkRjvTZ@ڗڐ_V񡌶9k}gcNC((})v'ҪD*8RLqq04FbTFH9NguG=R49V[/BzBLcm!7#9 <#aC,0LYE=2:ԖqI^;ADЪeK$6Dlb倚3QZСr֤ X| <"wR*.h(o}"j1FQ@H8U)5]ZFxLjPq + J/vЄQ~%'N*sTBEl)VCiMp)Q*~txTE(Ld*i˵:SҶcA8vp$$, +kb 6P#8Lđ<J[R:' BsrGqsk0 3Ғg),HQ#`d9 @^H`])$u$U]:dD"@1ĕ%Si{~a=9JCu5 + 5n }S-Sl'wͷ]|T7Pzwd,`y$DJAJ 3鐅QknN;/9_>i״\<|4"1[k\)H,d!'߲o,ojͯ3/(RffidNIvJIu@/ -ϕJBKeMA@(s=zRt^`4@ +XjT"$&R 4vUc&OOO^dHm}qp;bF V\q UI-^{.-%_+b)F ;1p04fa6^d;{|4hfMJ*Cm7 +ydC28\ʞ T:7T0?iC%p Hcc[NX^ +)kPsI螛t(A'"ivJ%TJwN_QV-( )ߞI^WmzIFv;M~|Z:XK‘]%sâ`nc6 y &H@nZ})/Y_)-%&H\.5ety" L%rzuL] Z_\| 'Χ?i11l|+=4.^CH\4TϽxTx{΀TG+]bY\|itʋlI_:IK2nϯek fynEW`|k>cx^̅ ϣ/yl=yRg|f7pq +ÕC+Eںpv/7v.8 y'))3RLj Uq"'pb*5@;y:`7ݣ e>FpFKbbE{Qnn_`!oz"xae D[C.M2j>B\"ۥ&ºY!#yW4 +A842>H.TA8Oɣ;]π:w\$ ہgn)!CJ ĵX*T^t34daЕ !쥽'O}uX2`%Â38Q'!ҧv$!4pn b+ŠAÅFC +aFiQb& f2 +Tb\vNd+N:I! QӏXHxeZ!9/ fpˎdj~/ ŐD۞X4 ΢f30v}ʼn 'GWlV_.L!chVֈW5ViZ@ e[H]8䘌ʛ>$PaΥ7$eHXՑ#?/BfiPRPfAq6T[D1v2dӦ!AZMHM`;*ZZ2#8掀$9)R +Cf0ɔk$&cʖj7Jn xݦ>sts:ADH +H)1V86/b!ݺ Љ {W=nmH&g0C 85@`A~7&0Y)05EaJ8{L=c~6eb=S<~9EEv< j8HQ3.2R6 BMҕe;=Pl2YT&Rs^jXz FĆbdT !yja ZT\KX*&& +戺4I +XQ(! 2SM-Sp[?OXݱqYR&ܝxu@&R QP$8E +tF>POeTJU)e8I:,c Do$"$e P4 *d%j? +}tW+ H Rm6/R*2d՟EyI{?q,=i,*HS'RUU5@ ^!"\Zx! + dkh"p* ׂJO:\X3%A"JeL Ԇ2$ޠ>><"FK(Ťl;^'o]7E/,[[7W3{O nY Hm#r2is )mJ 7$;jqP{V7K 6}k@[KFV ũD7рgZ*UC%FVAQlѝ`,kPJE\ۣk5ܘ0ZfCpή&F9k_0B NDG8BiGF|p`^b# 3ZB8@ eed?*p)8 +: +f P+˺h tu)qUZPHH'酃{b1"0EDmSKX@5@iTrZ2gZ8*C3jk$ ^J8ëR6A9ֻ"W"/ء_$ HL3E%|HHY\H`BQ :ɤ q)b(*sĨ#5X2.`sN)^CN9tDO$I`%, >'8T@9B?LN#Ii+^+!8#_+g^s@-)BB,ų."v}\'GAi靏UX$ /jLb=d4@=0) 8tA?()DȡNDW+KW+/JV6EeY'**V`g69}+,BL ]Ymr1MytC)d;(2I$"3=QvQqu9Z1bz)H >3VdFYL84NTIo-}9m\úD^-^i6(`EYzH"=zHD0廘E aZSe +ӨB\;RwejP47 ,WmIG |;/M!I`O.* iR$pI,AjyУ=6;A?e/X0L9,K􎜗֭=z*Aj㖊S3PN\N +!y!O[N.& MA,EȦ$)arvJcvW[zGzrn=\%\ҒN +74p#UNI%~'RET8!RFY" 2с>cnUݡ ܟ͜>!Ph=1/̡CB6\xPqG5D  _ 56N I +}D\|oq qqXuLt YOy~Dy 8= = =orOH%LϏO\$6.^c/w}_`11 S҄_̘;YIڣ4AÑ` |s; oΘ=q†Xy T‰2οUWah#h=R$S+/(LST?7Ԩ~iR TЎvHb&FXNz)?;>aE kJ' @=1DU"`gytl%&3R b(Hl]9 !=iAٷA7PX\wX^\a%7 =-]Kr!Vً#P-k1 p%I9w.~bHJT\Fäj$Eo.H:@>́zq,ݴvգu:|"ɺPWOk4,4 *)B_k2='ؠEAD;H_V a V4@+ IpN$+ E)$1|pd(9&Pа>&uowtƔ!$,D̈́eg@3[윯V!~Th‰$ZjSVC{b'?xLMr x3/y,KBtT + zmIEhD'U=,qLX(R=9)ZG*8 ,* 'Y-/4_KpBp:f Yd 1qg1WPr{M04<i$Iď,4MA@>nL-+(N]q2az ;Eݺ#נd:wH|rW*J[ɑHE*RPH!ڑ2ƀǏrףp wn\"QX5Y7M=Z>RC2b94X(ZG! i)d|.ف?R,@ˊV—>Ae")YC==A2& X`smP3ojl3fcbH0fU _!D<1u#3?nNT d>*$~p[6x(pmxYB4g׽1S~QcQzhYz&Ȯ~\qT"H D&J9ZǴ14i_7w;?sx}i!AGt0%>a^%ԔsAZ[vjP&Ҋk]]jI"rO{޲sAu};B<1ݣ-h2GD:?<탞v c5ak\ h…{eE+T9Gҡw`!^3O&))6+;|G!.6樂 mR]zT]?hTEQD2*-zK,,ɆM + (n"2U +M4s˜f9 hlSn|[}xy5^, +ZܮJq.Fk 1N%q%qݒeT$1bt(ȮȺ#P<ZEn +j2v.1-A0B\ϳ5@Bco;ժ8b9#*MiAb6mp}:?}AANjP8QyAUcSbNNH/lPZVE+>զF.Š`w)T`vWɈN0 EF4IzH^!]2c}J*Fףk wTop\j r*,d[,tb*6å#~ݱa$DgSnIP$F)o |6h{ǾhL`6?y{@ Ts<ᲙKE}F a=L g39ww.Y3:ށףb?{s> Q,B*Tf!y[GN#!З([ !۸ 2g:-iOﱰM17\mLx䚷s4(H[< 9ہУYi} xq#Y5pAR*b޷Wi2(D7DuEvTo;Rt ACG!*e  ܍۠#uNaNj?ݠͰCzON Q'#lf +zA).; &n!5 Mcp#aИ'p0ϥVDPnWuF;= S'ʰ$ jsgP90dD+zyZB CVJdu)//_>L1[P-J] x5iD:7hK6rj}$(l26(yeSܰU2V(> SFDz +912yD6SqwҌ `+ XQtYXK;CkPjPu%Ǥt+CQ%_秙 MwP; ƟS DP atB4@C12 {"Ķ!oB݂'rA%($H1:J*,Q1Oͽ"˓k +g xT0- .Peݹ C"%K%J ѵH"H +@B6 cpHly.NsRo ݪ'F;A룅O I{ +k,X/.3B]m.ŠXaG49&YDۈp]BE^/j@\P\B5$C0K8sERIh!宨=?պZh 8z^,ғ I$˔Cn4,UnIw͌q9N8IJLW&*81u(pLmWr&w*]$tAaѽtW^$*V V0dOE㡈B̥ST 6 cR1c/3|)d^HL=zd,QJkpq!Vj;2f]2|{nnAK:׃4@`Ƽ +y<$M"hkFi 50E(^KEBj->n j;F̸M"}Y h0=v +"t1տrǝBڠ 796Tx( aPaQ͆,P4r] + fr-^ ;$;ZcDt0Mz[na-$%jm + I+b,(`#M̤!5@POtr`R5Ѹ"<h @rEU* 91,hIvʠ=tå*ij o٪mʇl +l[uQ7"LZ6#`Q*K{ۦS߭DHi>MXaZܓBf81*trGMcGduuZ1 ^m.lHH +DF7fˡK.;})ك5@ bs!x [ǩ_Iָ5ݱF*0-4IУE* +8s k#kk`0mhf'MQ=q tE=4@@&UBGq"Z!m'hƱGSeeRk5V +q Lp@y~J`˾ yiѢ#;H:*æfj>S):14M5cठ`0?VJ|9W8x*5@e}Yȣgy8| }0@oLv3M;3*Bbďb<#e$V\dGK*7DggZ+~^ Eޘ +b:j5 +z($foBr 'X cs)ABiAeЮ +=VLYoLs0ڰکZ/{JsK2? A4@oPdp_#˴$r]P(L 60=p9"h7giy +:bC +SzlQ@J C1O*DQ!SQz^?oi/Ov> +F&ȡ쀢`%AA +3V"^:}aem0JuAԧӶQW$l.VXsU䲕:W3mJiExb"ԧwQ-hQ +TQ LtM2ĩ{!U+c`$ɂ7SyFƍ{aw֜S$4@ _ǐ>Q`&`,gj@xBKf_[y2\~OeJ/"_zȵ~o/X#b|A$ђ22DY.̞ s~ʉt~S_\PrV%o`g^g0nhA sf#4@_2ҮH$/l;61 +B~NB&XO+g +XBՈ$fؤq4B D)pFf1}!i8@fHbWJp??*1ߒ$"W_F?Ow;]/?E.~.m[Z:*~nT~BW 1_(BW&YjbKa:ýM} +h dß_Sg;D( PQWN>[;K/Tt'x `Y4~ 8kvk&>j +Y:JDc-XGIgm۠iEßUCʉ"~W 3#~Έ/QU_qG0A|L +  PT ΜfQ,B09 wWi_eL/C. .798[ ?|]hHl*r_>ýRTڦϻ +O 0Bㄱ8C +Y"on`\9мf0#fDhJz\ H÷S5TR @>5B|T'e±SK  H!CEG&Y$M 0Pn&F"qnGAh,Jǵ+)uh%J  +&>($2 ܘ_ǭ۹+-|oi\,+}鹿ǧ}"2cZF.AP )H\&Od~"W)SYӅ +Z˯ }"E"k@1 +}2o4@Hŗ"ͧGmu<5:ʄXԔ7,'THƈ@Ƃ.?{ِ |KQ c$0 I`xv^1|㦢VS/Шa]$ZKP7a' !슂(OBڸRIXKaN`BMiDTk G1k\q٩᣸ Oe֬4@@#!>p:$XeɛCW8;ߕ#=wщ2HЛ#4,470mN (Ĭ(=e#]6W7\ʁt/!dNѰ{s)~>% +D̞x0 >B+& G;yr~`V%Lov3bj|i 9YEmw-3.&|U,Oˢ5]ć)5IE3ai%/bqG̅‘ +/(!CD_ڽܚÕ`3 G-)P(rUEB _i0F;oӫU>M%,w b14$aspv5@sC +X $^NG1*L3k$ z-ro,h&5΋FMP' C*bXT 0Xh7"w8,NNmYuW:4''XdN)F{cM(FN"gFT_䆒bqA,I h `nN`sKcP"B7fZCBft2 Ʌk$@; SC 9|y0'sD9.O5A>R) })ebeeed,2-*t((Z +N.j0]aFmCfXuT6 +'s?!pϱ~1~ rr+ ̫Ҡ$lmg |ܑ|iWoB"lҙ'ryN VM7.LqpCY//CB?Ε*˝ {arR\˒CvE|# $.EET#ݒS)W8BǑ,Uy.|C̈́oh*I-P~))]Dd X]jص>x᩸Eq-ٴԉsBBoU$#6u䚿\T\n'"tw7f!oTB:Be* r 8/lC^aFx#&.fRFx&axP$!2 I V`7XLaZ0UȬI۬)ܓƒK<*I 6hm`CT>!LkIТfb)R*2jm>iM% v+x7:~~P) +4 #w)4+ BBЇ%9Ws: buX?mHʿsEH,R~U{wTt&QHD%hc"h@% fgR!]F=Э'er8.cϐ<1zĉ/7 0/O0~OJ?o7ķwSv/&rZ(<釗)HB.GyiRjgbh4gaJ]XRS4?tgBsK*+X?__'%B)~rDߋƵ6Sx*Xw,殕Tl^ۢ1JdSTKAIQ) gװj1PEmc{ +#/AKA jŸ_(a_CC? .W#p׆DN]L4CP!h$ h*8.F:.M$41+Ӷ /kdk1,+z_%r& /m~btu;u RΥPࡺ*a`bdhʴPI H<K^oN*Z7V(p!jg]k|VbLe}2֋]X/V@GyG߫NOD`0EBCᾑ+j@RDpj@g`BNx2vޤb2 G -bG?'UciU&Ak>iG:$/DIunN 8!2e0˸e~rV294PVcL[gضHBaU)UAO; Gkߌ%8߫CZP~Ch#Q*&$'q14@x'yimKqO6#!ty"|]nyBcvR +G| +J=& Ju!  RTj $seM$ui1;XK:\Q4-Q!-d, laU +N% 10eP%L+bqDN 1q;T ߗo#Bb- 1g<(v?#LF<0:i\Fl#[-"ёidQ Fzŋ+!%PXY0tv|H=lQhQ_ h&{_A W +X +H:4 +@AYZh5N-H) L%R9 +='XER2׶ D z JEA<2Έa'jи'R.2" A+0`/l._M +v]Pl,aULb,دYQ6jFhZ"I)QlcH}T (x5ω8zG1$rQ荄Op l[bt`^|`R0$YLP +eN ύT"d`:@2B AȁlSpoŧP.Ÿ\1",ƒma1,#׈ +)-rF78R+2,4tĩY6N+덫hUz ֔yE.+GK蠸b K)DR,S IY +ԼsY2lMYvUyE1nDu49%\K\lZG0f ᴊ{xEh[S@Ӕ-4ʬ“;I؃L3$\lbژS1''ҘAcrcr~2g@y#B5@dgfORʦ:_A)Y䲲dn0 (4f#&8Zq /F]VU^ {şUaXkm NT!~~^g{R#|ҕI;FL@=p*V1r Fqo#uAɻRXJv 5\ i=#яh4ʭLJ¶*%<;1E[Bpj:ISό1  q`Ċ$sH#9ڇ tmK! )#kAY$8V1E z +N6:<ȀT+o42ThdB̐E=l\!Ee$Vr:.F^ZhMZAˆh1DlvD{G@VJdś`2a˂|sImW*.]#S]JTI!ؕH%⨬=IǶ)ljpZ`LT64"d0q04.F #—#tLo/dYq\[1zaF,nimra\擘 *0Tjd %H 2L[VrYэ\̢H,%t۲HcgL3.#X )_@a|O!#VE:Ib#bhL|N-Vm+K9JQ6WySn2%$aBe#)&q|ej'wbkBo<*El +8W-[stˉTO\j!sRA-<1?Vubu#q$,V-L)K3PI6v)y}*h1lP]ᔶ=̌ˑWF5 ̻kTLAM܈4K0\6IzyF(e,*[5&:5>tG + R#c4r|cu +y|DŎ0/Q̭PwcP`EK~9)φ +l )>㔔J2[ڷxcR.5XswKnj6cZyqYy~P$Yy%gSA OOfI~o`HjeK'$@J+Ă1`BbGj8f A?ؠC +?B + +Qί1Dp~iîCdةr>*! +. g"5 WyRy`א0⡚Sor#`)??+;BT 4twBm W}PngIC ;`~LbdNPb1KcF2kcg>?|=wVi;8_lK>1n>L"/U:+ AB˔;' -pb'u¼U;("~ܬ~OK-cڣ%~cG>)H@_P%A"6D yla8)a`ŽF'  >;KCMO꒿dA?-!2k/sk&M~Q_>6> 1ˠPH<mu@jBZ&S |@ ݚ# + lr0: +D,,FWՓCG% +qx pJw +Q6_ߠ + +CΦzed+GBY =ub +%2 K4?#!#M|vJ5ǫ|1CJNq䔋$"R_!p-X 'C烨2 )HHdJ!C%qMif +I.eY=nd]O<*#gJ¥2\T˅f`鵊 +t%\+>& !"d31x`aYްBIBHBD+$%@UvHMQIK mB~0Ls.㩘)-d68"&Ԟ0[2pT>9uFfvdGϋ ZR !N6$$Y j%D<>H0DB"ɎCeFs$ڌJϐau) Te +27m7EZ& VHJ `d/d_sivZ!0C*At$Xe µ_P+^Ezf[Ȕ/iKF`*a# 똮{DZY 8f7{dEc]ۅo%)FCO 0Xz y ̊.8cNѻA{:Ixɼ a}n3ۑfq v.'jw@E^7 sݔKSS<Ѣw@CgzheFQX"-Ҽ"`Jmm%Z vbγLw+3F~ Weo+n@!$X= \8P6 E@ҊfPàӘHÀ6 !'OV]mԠpDdJڭ(ahT( "LwAFp& @o=!KV*MnW J\T 9J[hFY$Pd0E7*t<^k $f)N6"4@`8/S3;V2a 4 A B<]/' 62QP8#PbhŢ\*1MΖ t)cBk@E576>W'CpL6n5.>:)F+KxlNLNFΨJiENб*fwJkIl)r#]r]!4UYB5D%(01"p3rtVЮg'HT&(Zu(pxRxlЕL>*̎*Ė7i*ԯ SqeL%R`4@(JgIYHkeEs[4r0:ddWtۭd2՚\qὼ"5@EHCO7X&-2 nL|{SԶG uGfr5$id.9\HstD~yLh< 6Q"q T";vPm@nӖvs+ȶyty˽u&4P/ܫ >h h!!EI6cNtx)nӼl0V'EQELj븛ê4A9 $ggJAQ2f|Tȏyrc) _T끕!Uy-D咆#ŝEhDa$I(}ja*ۤVJu +d$B]fԂ=ŤnjZo*x*WVW-FgE o5^Ryé|UyFTDgwT]*]eTgpRjV"cjKj|"XKiqZIfn\Y3@vSc ++I %8݇͒GNΔZ@]N]&fXHFcd.ƅ tBOu~SɋL& {:H8KDL$Ĕ eàP᫠LO(cD'kCp27#&wk~q0—$qce]TiCf2]@Ip@  0=҃;kxj-~9ˤѩR;EH~ڔ? I3L~%?#?w4$_q:KPC̭("iM +w]a!͖U[j$JsP?DV|szl1l0#LS tH|Љ/JmRn݉/54Ŀć&9GP4@`-AT9u<28ZBj@pk1lEĜhH4h¿WH϶*_^='~" BQ8+Nj`Au~X']2]6Q+m-uSuyZTT>h8M ȫ(,V^y+$pxil +endstream endobj 27 0 obj <>stream +`Sr Kd(T6)ˑ1Tu'[0Gq͙k{(`5&: i#OH(za"qi =Gx,*$'߁ +!C +-Ў:nHĖF57ٌ](sG8`T;s)9$sfpjs2-u'L +-*Zԏg̠)ڍ'78=&œ \Ma><-{=n1>5Vj {ZAGA]MaF >9'W/G(Qڳv{#-0+-7/Rb Ⱥ'' Ђƶ2Raev/ m:&c ]8^QA[ 胾-T$SD!XjR ׅ! #w$&U11fM'neRE`F I kzxmvg ME/OAy4@#䡀+L:h+ CCzpROY#W(]# Mj $)\TE %*TЀ>fF%?6$ؒȊFD`iKQUKJ +=Y/1vԾ0Z0&P)DnO$I܊D^sz$4鑘Om|E||T.O65m臁H) +.Pͽm3.(efC8 5d# M\ LyW6TTA3O E!1Yp;<>5F:rNV 'EB>V86%aX( +qg2V"n>tH3wx*p!E*$V9U`ØGU@Zba')&f3*n'S;!O*'O@KJJga1%'tth"a0KOo &Gqͪ A4csՏeldžJ)xLPMMΣ'Dκ(]٣Qy6P0=‹\ YFdclŘXf3r0EJdwuS +i"Zd,^WQO_@*4@y.Y Z/k}tf}E:TDl6*Q %5aI蠺đ)Ò(ryr y@*rqEgJSz'˜$*4+3b40uj˄U]|q: YТNP :WEd>i2 E]3J u*|p9Gd  * * !jCnqt" x4ʏʠR^ 醔G8FNC u` +,l|fɷ RlőGpzQ ޞ{";VX*)b f 4tSǮqKZ>ODcE1},ת9>ϙ2)@[OV()ISỻfR C. F ;9@ jz2`ZPppS2QZ-_zvU1} +@<0Zh}Y#5QSهLHQjkB%hPf=:$yԈL +W\k`!(DNt+bԪ~Q}ImNBPLrxk؂E.,,NPbTCͪ-HR(u\:$Tnn %xs}:1d(Ūpec²%!Jt ׈j.ns 3d2h Lv}|] F#Y\ p*hz,Ԫ\. EKXe1p=Z +ZA-BI-A +m~O`&49;=fjњO2oLm xx=<:ݠ[ i@%}3L|ǣ7KO!g?㊋7ɞˡkvh`@]6J S4#ޜn5' GQ G "ŷg:7iv.#5u+2zD30NuXtHŃ;{ + +Y!P6&6r&6YXf|| vSyyT@%SO 6bQz\ԩQj"/Y`NWzҽy +Ha%d!9%pPԕ h+]Q`=H/vJ-6K-+gDd&'6"W𼙫<*o7HV}IlQPC# ?HI=(9t/jP$vuH, MQڌ5|U_v~ ȼJCR iT?n w*kֻ.!|n3 -20YQ~P~h'"e!!FWhfq4!?#$!،6cNnHOj%T08VAOq1C;Ɵ8ov2 أI8p0_$O3k6`cRD+Kc0`v~HF&%1Ǭ%f^JR`}Y̿V=jtg^: dXf=cU4-hh,xc!bBt6l{0`r oEBy*xǻFP6 ,ЂM$Dʀ ;Й:rɂ(!J՞تl$B-v:O+VXdŊiL,8FQQ Sp*fcNIF CI&n3/JU CK`ICb +ZBDdyFTtԎp:J*5@LYIx+LS7|#ȩ%d+G1lgQccCyPU!yΟ)a@Y:h@_+*V G!X CΓa R2,}E%$+gtTD4Gj0%ZPS OQ؏蜤4  Z2E/x2/X1όk&GM'b+1 ; -DDhxN!}| YIH!_L=th4t1 j8)xڄ0V]q`BP^te(-ғOƲ2 $&t*"١Dh&O,?W #I{mK /gNq|!~ uL=BO}ljZ e`2;kQ`+TvIͩH$ќ%b>HMѴ8 QD3V0F6vA5FCĖw2-zƔTΚMETD6/V3̝i8~)CR I2$\2]Jr6 )MW趘:M 5ɹ;H-VCbª|$.Q#{k eI1bn_'ϼkho(Աp:B!4@!r9 9HӀ@8&FL7O(T0aT[j|T(0RRT v@l{M XY5C`#N.7[y滣pʨPt a7dy,].'?` Bf Ff 2=LS׉KSJARS7|e3Y–."JqCR\`,чQXc"6j#{O>8ک]mYm[,:UoǚP,<l!Zh|hiXR`fHbPV'83 bz LkATT}d@".4,H,\9Yt>:])_YN3bx#pt-qpʉ493 6_YNf%ahDd `b(*b]hGQ!㷄IF$f[:: = Z]6u^<$ "D2!p%9MC^4YVZrMI=zCH9r8!Y*d +C"^*P[j"yԠк|iyݒ)"ED04QWPoc]bBơÒK/uZw괒 O DHF\XA1h$ȖÆ$]x??+͉OU &a*IN# +ĵՑcGQ[sAчS<`'[hsw"8 r/ &S|J#,:]W3.ݰ/Z$߻CR^ !f >]o}IAb3U !"RJՊ!@ +'-D7HtIz 9(Zⶏ4A&QxB} 72a%pg k;6I@6++DfF'J1H +BP@ +{ΩcͦN3[BT9ӗA]ObeL Ү|HrD=d57[['Ou[ٻH{B"y8E湘5U bxhE@$rtOT2R֪e;` fXgJQ5UO('Niֈ(H"I>:yC#lyk"je|HuJE"AQlu$ 0Ė bMRaNjggj@.~AfQ7 5W8tJh`Rgd5c`DA TT 9UIsF ΑLe+i.T^!?㨫f֪X=/q-\x\ܪ ŧQW4_x3iXCr;nW]_`Ja]ަ@x f(d)OlWjY4 +gǞKQ1{~=:XhYFA2 [Ix $<B麣+A$TV=RFKiI2fٚ;RPDBsh8OA XĆj㲽cc]>w-nwvS" 5!ըΧ  #crnQRMdP.lLJs8w9( n' c54ݨ9: $LaR^sRya*ܕ 40rpxȁ#=AS +0js%fWC1NMHiD+Y~SKc%.}efM #USPiYYU^( -43H-9#D@W&9w CFnMHnB M/z|xI x2 +xHn ;i@K[jqE +iKEl{KCA-J h+A3N.iM6ᜈYīd N~3-LL\hA"96@>LLp29]G )WUr nWv:MM#לzkK$Ѱm/p0kW;Wף*$ 0V $d$>X2<,S? @e!$,v.\dZ||Hyؓy<>HޠV&'PTlLAkgkPIђyXSߩt@OUoīp*,\gT^# u]9ܱ"nܚ9<6*fŝHOXLshwj=MYkC5EctRVD}zUSŞ%a ~5PUw I $6pljc7/ -Ǭ !!ź_(BX(=n^|MT}**"*Fj N΋yU܃F_f5FV%8P&9˝>֑}\ECCbIWkeΑ6ʮ$k7ZuI\:)@Ok'f/`+ɐ#tZDű Ѳ94wXD>Gmv.jAsA$%/^A8X|,TVQrqznk%÷QC\'#GDSv;_J2''{)}'B ?:m^DX\^wZ\]X&E}d"<ܣU" il4 Iƻ`zPhh~bTqǤ-wL7)^Q,jpynAȣQ /+-WN.^.+BB:,hloh(["-L gX; L,=s4 WAΡ"$o]XҠ7JYɴ0eCT_Z^Gy*) fT'ǻzS +RMVZ-m^0|Eveھt ̯B<IuF(82uf*`es%w/KkBWw 54~!a4'>b'>J6ܿ߀*ω^b0h%"o"qD ߂]״#fr1LRdO11SRDBָWQcB`9Mtƍo_އ}V}>p~2?}I#mir\$гa,^D AFjzo6Dk)PHlo¯ wE0!u +B +Y~X6x?xoӝ+/(z_Rs6;M2<L f'($PmG))vYGDk%Q"3 |U&͟&f'FAtw>OwUMV7g_ᛇOwZ,216Trcf T:* {t/cDD0 S8w*;xŹoF܇*`+}} <9]_4~xt8tR[{1?%YRYS$R46B妴rI?UK5oR<.g"3 1Ҹ54f/* +/P:L&rZW/TAHh}s:njL* ReR[REP.Y+[:—]!+):J}B׬—{ۍI$%|2͚Vʧi& O*lh& Ș:H7e? ><~v| ̓Ϲ_(?Ϝl&tF9)>~z+' %:!7rÃ.:)<<";GȜZ J~B8bI:&"# ȟUپ,WdB5&(?5@1m/0Ʒ^~X{GԙE.˺89yS'4>a;\cg*p{&SPb/(f șd ^r]gCRĵH|O͠Ph^̌@wNVU"q +iU%:k<msyru']tQ .y:.(\"fw% +M= HzK*eaPd甼4Z`1pڲI=:`ьړ#-e!oqljqkQ,FsA 0y#u"nqEvB^AkL=")XtDm$2qpA%Xce0(jg\ZVqx2o3RPRiMx!FFxf$+$*t^^La иmdf;X, eRljWϟAkNޘl։I^l:-\':vbr,#;U / IaigMٵX1se$@s:3"Ƀ-$:\-yE0K -4 ZSt5V6we^L<:qjC4ɹlmYKVU01$v ef8nip(Y7o8\,5@ ތYhhW浇ld¼0ړJin%ef4@5QCl +]\p=^B❔$=%IYch*F DwMx[Cfes${TB;',b>B0rp@ F>28ШY=H7l3Y,_jL}?77u"W;[ T8.EA nmPYL=J'' \vu`lFŎb=\?.` I)s+NE`ohv\|9?ͪϯ3lv,o.{!Z,DsRz Iu׻)<79K~d4iw.wvw)9':w 3^#2N" Մ +ď7 /~%ja9+~ E"SEB~diLcIU{ *GP&I\ JqBU&#!~!~g AF$EfФ ފǖJHoo>pɂ(Kl,e_rHWiT3> w5ốK<|n5|y(ppwgY-Bᓶ^HD$ Y23rȩ>_ 0q5@ BmsYXKYlcd%/CV)/ٔsܗ᛺?'_$.J2|UX]B;P0ij# =W'7OV*SaGhCcP1KoU, ]?F߇=~duThEQj@$jtB+Tt +W)6C9NT㟾zoߐVOT'}xSQPB7>?iއW*bx*:0CG> 9v99S-WRAƷdVtg/ +DB>D 1rorI +%I%/ss3O.|QMAFp 6E' )5&eiiF"00AwOzѹ_rܧ=-/>]%H%f_/~4+O8'GICQp5l0 n(l<#G 9*3-DX54@#[r^ؒ'%+,]\L}"Ȣo,;As_apߐ] +Ye )a 153.y\^t'7H"X3 /A 6+ż JK/_!@C!C%'|@'3b"nU"z~i5AgK9̊d` LmMFĆ b sGxUHRFue + \]d +(R"(l6$kFNm(EAo4 ?B.`ubùfb\6+Ҩ  < cG!CJ8HG"5L*,Ix;6ʆ9K9x2@&\҈;:=uff"kw~4jv^s(\:H4ճ+4^ā-Ax&1Yo( RT +>U>x0D# Ȇ‹4[E~ƧI'] u5F{$K$,^fv5irh:#22ҒWP>.i`шNů:BXj) G0 QjHno0-h/Qdj/Qd8{"MVBD9R F R!E&3.;5^x~);CR <(']h=6%( +5PV x-klˑmK4_nΌ 9Ƴ;…JeSHʦM!PDQؽTJi'Vȹ*SH ~ G#U*Ւ+(>#xB<) } Ѳ$c<0O bкDpF0Z;45@֜IlrsxVJ{N{P,78:5EN(Uu0DS<+Kă &14@Qy҆j6|4@`|^-$-YԐEC tV))t%$Y* /F, QӖEk.mX̓pNZ4;E~` +"9b hRN$ ]ҽW F ZXg,2,>A3',W ^.\cE+}"H!ݦ拮JeW&cƈw且6_db:Ezn:K fFqc6CګۣL*)OR8̚IޮɷokoI 74B1 R ,ԟ9AU4@ 䒡~pNu +oo od+["KȀ_9w=nŞ' I<z{K82}׳ƺ:x3`HB~yTy/, XNû8hhQփԫVZ{:x$&(7VlVfS$"2/_Sv$=w͑83' +f_ۗPօc5zٌ +; +;,)OR}kV+$,Z'g! D2j::Iա?&Gl"_uGvՀ Շ)B&ݧ94QB)8@I"!.Z7"%^MG #ck Hd:`4"%Ә*G%iD⻡3 '3A#/%#5 Tw86'U`J\ZDk0 39VEy(Cj2>1msVޔk~؆ hkW{s׹04OD" @I +/ԛOctguK#yP{u -. s_ wGsGIc4@ "g8iSbϒ(6zj\I%VxuH^5;R +~.| ~m(~?rqLhi?0[ ~bChEV+ު~Nc ++GDP :\VxÐ}K]s"Ov/X#XkWihhc4| FÏ]-42J{|M bTBMKTP +i[^YaOE(, + 5>Gk@쨽Ob8^~D}y,9\h.o/(2>dhl #B{ZM4@P;ccRP`#3yG,|2 IH&C6[pENwQr#?zThUbUh S7>ޗp! +D-VۚH2`e]&phuÀ?MShȱL׀~J~߾{vw0ޭWE7 iN+|^!_v%9 a/ TꤍLr*d[X -Q ĬeF[1m(>Fbh@c¸.P'-2L/]a0>$-S9W^9A3ƬI+ka +q+XGq~+L4Tnψ fN0aґ."bN+'̀0 bz%LrmDCmªtcϪ'r6(r~Qm-(ͫ0R%HmǰOcCg΄`%_P*0!dpigF!"C61q Xzͪm2fk#^ Ӝ +[8l+ATMQ!8q B< L={t *1D1iQsFG*s}e ́4hC NĚ>64!lȱqb3d > M)BB˄pn054S[$HH< tֈ/i0 F 5#`B/sD/|JyPR] +8 0x`S!Ax;xY8sehs2D۱UP$O(+e5k$+lR}rW4Z&hTNp^xƖ ;xt,1u; ;UG:uJ +{*IEBD(؈JݐGMO} P"S֨MHR|)ҁX2^zHC'K]Ri`BRk+bi\m8zi3KvG& pr#.dNjpH +4iL!e'EWK,{REU90B!r@PT +IP_%FmT-iC 0I`T ۰j]'aAnE ~\3#R0oN[hLL%I1=FNRN=w(%٠nt2RboҗhoRQ)ԑ[3jVNj Ib/RŁ3́56 )cR)gL6pwp}貦\Lj}StN_k:Z aDYITˡcc! +D5+ѐג+!Ta J68֣6,߭ pڎ:o|z?F8݄%*&#A`;擄V2ev<[aGM"_l7$`=ڷ>8evd'WۑΑ쑸,eWnaI $&awP[}DbBi`\O.,K"pBZG +҆st5j@֫@ SH=tpRN`0.GrX#uxw쮯T~-d归h_}6&I"*:;?O0\$&I9b :#I+*;9F* 8-ޤ\fM9EH\({c:m"(BT@~AY[?@eE7 58k2?F~uB$0w܆+TMOIٰs%8|nL%, EII՘ckkk*`/(Q_LycBha߬1[GTiY`GMin# 294RY8Rj(gt <:BkqlÆmZx^*T"FfHA&:(ڨ>,U7U00%g @hi6#iO:A t#I 9}bI#H";u@␆F `ʜ$~Fɐx07&AJ2Yz}=XoJռOUbp')~y&UhN8#^2AJ^<#*; +ݤ1`jTH[<h1*`jߍ+Œ|-ZT)Pvn {  `/Z+TZ9? R(-/(,k<]U-Fgs)>[~ (?R~Uv7)_}KoQM̬1%>uOWJ%'-f'KOo%#J|+w'>$>>C?_!b⇨]7a !R(?Xw^8Rfw`e +1LO9/:}YN?x¿.O*mw7QG_'3{%DI_F_ z}'TD(KY6tݸ:l G G5ASd 5wE2@:E ~ +Z +?y{/^<2K7M&w3)z)lxw؏L , 䔤V`#ڰӿ$H!*6G -  + Pw鈘>F 7|;1| 1|>m _ ކn@ P}z9e)L $T!Y;:nZ#_WD( ei~ₒLe>o(ϻUoSzdQh)&]B!uFnD Q&"88 +Z HK\B~1dT-Ue}> +2zWT*; ?5#s,{_8&}A%tQֆt DE?.IPSJ"ed]f0YuEI$ +4GX\vRp᫒Z]T!-$A#.٬9\\ .3W1s?LX18b( kJqmؖgË {!dXFASauA1<h#m3k̐.Y~e)  uigh>s$9:jaN +SU1ISl4l32^@7D[`!Ę qDrh-am[Kj?%jƩT!X(B4'aF|M," +fM̐Ul7J/NVe[VmQן_oO;gq1֗2C)c`A[K4-|h4r5./!뛨Iv\yеsp /LtcШ\+G "L~x$|U+v*JY> +bMFų"m9o`F9"$]lߩT=ڡ^Ӣ, :HEM7ܗ=zU+'֋Z-c^C+dhEg/nV]xڢ,bɐaw; Ct[H y9Z-^jBdU.eT^mE +vzzСNmbkvBfy)Nv$O[8RR# 9)} +b⃭)rr(bΕA6-. Ѭ_:No%ז"ԯ(I'=2@B7Tn%fG8$&p_= kR;7U͚BG+gv`traQ.LwXp^T lL +)+W';Qu/Mhe2XHYzSs0zu&̺@K*,&JȣEGL)\,#ST^u-uԝ;)2JQSH%Y$r,$D/A[$ 0{A4\ ]^76υu&f n./'y>E G\-v< ; %f#SҲvE%x$2 5-j DAM,iC0i8\>e P3-SR"SJm3i@$31sw2|RܬigRs<\`rcOiNa>qDprZ_)IdehX9[4@TtJ.:hSa'B(^o\T&Kqf!X,HIyt% +A[|DiQ&iS.jRe"R ( +Mi7B#5XZg&Zu0AZ~Rئ"4G?$,3  Q_ (͎ PLOoSDR;,yIU8Q0_OTywB[E~֠QB46eSYÆEy&vr"TlтTq9~j-R) /t1~[%} + F@PYgY/cqՍry碡1w6PJ'~ͫ ~ƗVC@eůצ3A ~+W@0 )x& CFg="|A8 V'B$ "ADA|LAHAE&ZIA pJ &-bE +=)_meNg]ә_E~$8|ͫ;|y>29|[$f|a>aU?!׶+@VutAa\oꮯj@]d` ';xa1njkd H_ GS[TRu~_ԥ߈PzGLWa*<c̿#ڹ4uhNjΓF*ҢUb|PKWR>G_7ß7O3O> }o:y[<÷KkKF4Z"Qן]P!qe V1 ah k&h,hԫ06AL/O $M}=߿_/Od~bC ch Xk@"6ՙajNZcPX1d;Eg%+ЪS[!E뒩6RyS41 N g 7ra >BE*~ei2_C[@@Jx@j$ yF&労 Pjxd-0PS:ܑiќ0aВ$j;t:(^henOLyn[X3!>*!J: AA9EHhCScm$$tZ<E FHKƆuDNW$y/Ή.6Lpj Cb 9! +L-n0qfF\Q: pXHmX^ yvѧ%=8O#2+$| EF4POePO7~"I ,NϬJ /!"AA!BRpH4M0j_ETYN'D@)O08="{wn)Z"L4_܈p5@dPu2эXHNuâ} !$ N܅ /'Vl5Kם8u e?* f,gPR}Q2"`Wd2y칬CN̳ƾ : s{B*!c !Vt"ESA`6rQ"n jVz܉O݌FMO 8)F颂ԢMYWuLT,Kn|U,wi xo (1[f }{ +p!p}$.#.b8ED々 +(7Wǒf{ |  V׋d"A8AQO5N֨I4cY.X1 YJ ; +(#FRx\TTv9j +pWsj>V7P. 1`j {LBh*m0Ҩ`Jܡgæ  A/y͍hc8]s)^\P !E8O +<4h^2 +]_++TkP4[E¾cRFM"0plXBs@ „%\FBBP3|ПiG;QejlTCK +f*]ˢ#ȰhYgHdL< +C\xxRcYIW:G!|^$lK8 Xc`!<-[qfZN$W^ *x+#ӴD@Jtqrrs$J^)!zO +2`BR,6@PXSL +{%A"\.\9h2rPJR EnY׷I p02"s9Zw +` +I¿"DZ8DmN`';[c}Nmٝ[&QƊ:LfCڶ8qX4톁^L(J$gFJ4',;*eDݔrUf5mr-> k@!l +T{^ޤzE9Tc  hZF\:Femi᲼0'Pg |#:isZBuza`/["",v5T+Fՙ*sě-?)5VyPIa"hѹhC+gV~93ZҨ|`Fa>SQiz~*XmR"?( 20Q^erSRc ;#4%w#T߿S<|€8) +W` +/G<3 +p$ +eĿ)RH V*p9-Z :w+|ZBTv;7OfǤ?rD'?g+VkpƏ2 H,3E ̔tDc6PD<ޞ1u :2?48<=hd3l'0ǤGj% (jf\7 3c.db3J%4s@~b?B/l:لxEc-w4PK}aT*4Uʈ?,ge$~H$~qW#He#~EA"~ѳ[p]*O]6UXQ>t qMCjC[vo\(Md0H 9G|Р~c"S~׭_ԩ\0 "~o# 7YB ^y:62%Ƃra}. C+F^4pt<| @*/q>oy釿 C k]C|q:V@U:|:sYˠnAJ0ˀʡ$D~E"#KIf-'\\z^ C\UTtKʀ>-uusn6?DY;W@ҭuQ!e`*?@Hb$<H(v7񪾿HU1kpg94|0|211S>P>~%#1o _܆/ LG_thAU2PNR}H LD6c4UP\dHr0pw$/3*R.*d+P }MG~|?Q5"ZgD`t|`f 05sQ5.&/Xq"FoXNo RyFj5s( 9.YVYAwX d00^18cq& ,,W4[ "s{uj3y8ej^ rWIRF 0/ +;M"q<|_\;S+՚QS/ ">\TeƳUDFp?\Ӡ50Fa3!}BP\…s{9񋌸AiT, @N('0_2NNPԂO-GG"Pa2pG(qX:.<JgAÁb @ pp,">H4n8@#9 "@&WW +#' շiiy"8 ayYDJC$x֎1 Y̅S ]&اYxOUqYid$++O%eʵQz +=Y@a3hX%74Zƍn!(¬e3d|j T]4ROא p+QS/@" +*V6bYJW4?| P c_Yf…64]| /*֦a6c̄Ů2JcNQ'@(%&dvmw +; @>Jc,b>Ȏn#u:(2\%LHOf_p g+bȬK(VF`zX]LQuղt:pHXjL.e47iuA][OF5Q}P ٞWb9)ӡ:h.)E}us4@>Ď vpk%7h)a4خb g\&Y%7ŔՀj3;شQP ,Oj|؎d ϝ/6lDeVAI#Âv§^ːxL4JĶb'evT^ +(˛}E9b6PTQϬE#hP1}D/@5a&"ք#}1+,g1p4C,=c4bc]48o0iɴ)TH*1E +[y;FOya =f\! 큷XA„n1= P1&P?x~TdK3r19.>et<]<շʖ-ۤT[xJߖ1#hn9o?ۂ󊲛:0[8IzXDݜĞ<, \S +PB*]ҙev,uzY1n4+CVʢ}o^۬9jr/ujlCv" ރXp>uEY)-#P5WQY8!C{VK%®: dy7TV]e~%O_B =*nB[r : 19Hg.uu^y[E PWPG,ZAHָzP]1ΎX2i6tkwMkj^-aBĬ +Äy+=AbntAR!1gA efsw@ɂbB>|! Y#d.v>l^Ϟ. 1d{[E 5X8Dsz}|Їʨ_E3&Id%GZUx E|ϴ`Pj pNJ=4/lc1d]w{/rx*޵+"82Sum"؀5dUW1 rcU XJ p$kvcSkݼ<ܲw|`Y2^莗xHU}Og,x\e;Y6A܆źMpZZ'kIY J"zJYKn`Y1hy) HvoN0 B^cn`m!ߖ=X/ӼCW5UT  ``,kԦ *(϶1DXcRҌ + i* =.B:T^T* Ew .=-GcMhHv$g Uv`9B#M@h(n5 CF%o@g{J"X)RyM[h)1XI K`{R22BW) {;&/&}{0S. XLDF'݃JB ԣEH;~șKC:mVǒeEdFʿ"c",Ov1'>I MKQ:XF=9V*_n^/YQɧUJd#W-& ;=pC=E 30ϘPbR/{!rA |շ N9JF;,oQ o Wo;!HFC)شu%AJPp,qNo^yMUahm] H5Ft/4$^{j"#*z{ [,& ,ahA35iq(XRz?vR5EO D]t01f55ҢE)+{*hVx! ze+_g#oj+yĀPΖ_z6 m0*aj.xcng9IVdl4FFs0vymZy6n6[)xlFn _*}ĂV@2shߝ#1&}&<΍a!TFIZMfhl7'Ch +osshE^wnŽ,ۜ$8շA眂.H֩1]ɠ/o';Pi,4U;A#@hVxGnY{f9se'r[ؒuh7M1zec5V1,E,=h\{jJ^`z3d|>( +F+`K\'La D XO#Ik lOUtS͉0e'qR`}s7Fw*ރfB1B1hq&`O| IoHmೋ("Oǣwfy:(plb5]vΕ`8h6V}2m(Wߖ|m:~Xh i2#CH#a{ G Y4'oh$&XGA[;WUDZ,}G`_f8Qb\wx ~ܽ,;*O][NYUz^"sp!K6y^JY5C4m+} XIm_@Zџ_p.Qb +^Rk%7?JQHc8ފ i_)!4tJPR0 `1siJj T&ZmoHV6]P΍ ^}[0'#EC +Rs~/Φ~' C9 ^հ$E [W>r%#" UWj G^*Pe]ԟSOb=nA^EPY!1!Rf=Fl4Ld}vi=r&ZmyH#(e] *&7l!L;, W m i1>k.ĖnX +Cj# +S4y|baOؕ]̽&o-;k~T&CE$BtS}[s,Ho;Ūi]sO`mz//pL8"JdNнSCdy!NG TWvM%In#<В%^7Y,$ڼl +Yc>BLՐ!41WP)Vu\mCm-+a$V{r=xH{"*'FS[xB1EqH[ +ios.<\!fDT@W&b\sxJHcSkrVXƀa,Ʀ6m2@&j9-̭+/3e,V-5%gaOEבu' ̙X]xa?ylh񖡎BQJZHU=_t9pD?0rf耥ƫ) +d|*Ri \)qBjpqS4G> $@9'ap g": `h!D쭔H߶_A|(?n۸B +ߑҷ\0F, 0t=S?OH`㈔`**{ 04vj^VzB֪37t8K [Edêzl%mJoI`%t<B)Q. #aPr" tCIƥ +n&P-Qt5CJS>OX!o(Ұ4BQGU/D|8)a2~4u#a0 rd2JV/uiH |1A%M_lt&\>56LMu+&-%wm)F9IINm .$jv#8OxhmS$cPOH&շC֨S( 36t+b$  +2'uko ;T +B6x,dٜĵ R}%/6pt;O0x{ߕ pRpVPMhL;FtL h˜$;0nqğVDm' 6-Ż T߆t.PշPS;9~W@bGԊ u~Yۓm #>zbE7RA>nVׯi$e3+Rxc(*H)< -| ABXbxh7`Oʐ %ڐaT߆]@P}[:vt mt"i46MT{[6Ϡ1>@zg} l^ZW16yI*,w݌p(AW1dUIXI{qYV:;KP`ngH+¡+y}&EbT~XiO'ϨF)P7Ҙsm)*%շ)TlZ O!(Z6)( .tcUEtM +&.aL[ +ѕ/FdQ/MLK-.sg+D'urMx|V5PІ!炸g:.0qPpX櫌4gj69tpThB1@TŖX/\V OhE쭜홾`4\ _$Rt! CU Lͦ_*+Vֽ#gMH(bLho; woKW¡_շQۉ{wm$*.T_h $ o?R nCXR:J6@ ӣkq>l$(z=0xѱӮQ%(V=-da%iJ)0mvxV`(¦`ooET +0]#u𵜿+),i8 t[}HFR"PշDl%R;*_R@ҷBWԢzA8 OPj.RfWV~ E4T݃4bնdjLN=҈y jX-e\fJsx^)x-|{c'jVxdtOLLCJGӈdԢȃt0 `<[982M$bZ{f ` }XSy&a(^EEH"(Ix|;;y%&ɊJ7 =X֔LΕ qxYB\^m` t575;)g$wgv֔T"+Up(YAYd{s:<F'Lu i/@i:O([ ;Z̉RaC=#RVf!z4nhoQs:dgtls "JP[4(% No(j3joR4Ys踱K5F|4x={}&r 0$O}0мq +al-L,Pe1C}O!5kd%Y IB6뱇FxFc%:t$htV T"J#:G*,b&Rd)*G5}Ur#_v.|\jͤpl0V`#Lx"&ECGZ}UF/I[4&ƺֱ$K |Ό.J߮@1~uIaFW:kZT'Z^t3P̂#$ ^pz ~M7/~cblpK)I$8"A] wY_6H(lp@ح*?m߃;f+n$dl_'Hb78?"ο\3|VOR{~ +^d) 7yOq4HB yx+RJ8 sd#y8Aq4( '$kl|E/ʏє?G6f>f̟4"mh ;.R7L퀔ܑM|İ;di'|oݓ!?ʐozCkT )N>#ɏC"+*!F)'}H ' +}8ieZfȡ8QJ/",EL7<<>y2>fAf3~['ȫSu5j %DQ)uyk_$uJBP,4H(2R[ʊ.óS]ɉ_bSHj\!~SX_!7D|م _$5`n\ё#D%MeuzX dLyQCu6:F^Z-Z @B7$D ׌۲#=IP$ C3>POF#)lHl@Fw\τd@6* `P2[\(N^g?ρ0Ul|ouB5SaJ|¡(k +|#4[Pkz(_ A,R yc]Fm3IQY): +Ip #* ?n{A&>塿h.^3?m2o6 }ߚ{]_uN ]8cخ㥌H%D"؅d:hqh`"߹3Zd#(ᑬ<2<7%Pqߗ{}?2X?,a=Yy_+pLqR֊՟G,X!1*))uEFqgQk["#MPϜ5{zi0O~c?. +%~J0? +;h20\2=es|ǂIJ0E +%&0|3`H~Z}Ǎ{W(^Ǿ$|D7P KӽbWwOK2AlK,iF.0j1i +aTî)t5j%DZPh֍bHMs %nRÁ[}9qj ݏ!T%^~ȸ'ě;.'_ pd4BfJ}Ӏ㰡)60mxJ~]΄DL 0|q}phb(VcP@7 Vj 3LyC%9C$\3B8]` +{Kl ,aޓd[Z +ᓴޫ@•< ]Nh+2XLl)è*\|o +ف#BR&)' +sgC8d5X.ɱ5LЇ[BDf~-ȄgZ_q9BZ"0^Q%K1q۸Q |eRH +QKxצs4YTQt 2:i\H6iK1L]+ PHsCpgkg4vC!E"jRуAbk)ɚLbCIfjj!v9А+LʓtGDA2['԰B]]`jZF*m}a g>e1b~583* 286@7ryQ@VrWfQ0.3Y$@&26`[i83MZjtzAz々;=XkNF +eT`dH p6H8dJ0Fz/2c>&kAca"ӽ|W + $vO]XU0,Ձ + &{F@eTS@ + ocp­P Fup.KV Cz4xSIQtUVhQ73!=y=>@"}53&-zB숅 oOmmPu υ 8 +6\-b:r=*$AR'}{)۰ۚdo޹tKji, a[[˺M{hېMw@oTx43:썆:u) r@Sb\GM`70v+)ym'3'$5T A,=q=}9k]&G۩ mY d2_Abd!SA򃇊 a(xt\VHq4/}K)\!Cc}C>tmaEؖo5Ӛ`BQ_'_Cr<:dr} &0Ksa!qr /dN.f@۔%O!'F%kfV+*Ka +G+"WHEݒVL' 2DTw.BXhHm4She̪4k-{NL! 1[氵ICeDels7@tA{l "ua!dd[fGxeAze%l0 d$ ni֎vqhxgg_oFWa@ ѡbRE"2"o^i,h51 ( IBtTf-Xc4J7HX>:9z0qBو&kl78y !c A8\OJ ZudNBV*A&NrG}O Bȥx(i[w>鈃✤500Yh~' +LRZ3UHЮQe-,+klH|fv[ʡ*\cr.ຊvTi}~ݑV>[bdZ+`d$&"k"ݶ 9.}TQ3-+H4h8Fli{ 5~Ev/6I +Jd>R|yoG L|C~!]9??щe\V,bR9̢_!%IvtSU߀-14GH!f/}3n|΍`:Ϙ{lϐAX _@gJҥhCL2qlhdn%OiK݇_yᯌC > ߱v'YUs>>?òaN!r◴@|5ϭ2;xayC1檵uĐ`bDb4G]٩C] t.@'7&_-0]@4jX.@*c`8] Ia£V,!')v'!Ei\Dtaѡ( +1bݔzs^߫CsGGڵQ6)+xԆ7> &[?sK~JjЏ-26K('CmGj$Iyb 8P,BE}~_ˤU F;Ok1uh:?:Y8q.faݘ/!׉WЩj/̷mީENƛS~ʗiY3?%+o)xŒ |0V6rV0&nR0C#u;fSxh8N(&&_iG) "u'2_!W~E_?W>w&x1YI+"`?^77U;>ߋ$SDTPY'tAMwtJ3W,<C?2njSxj80&7jppCϭDv7(R5] |?gW )>& W|dB?CW["L=$e1t9h +bBC;~bpuhT.T]2O4& BG$!W_6ikBK悅''A|ڪ{9bQ *_J^-0,ϱ'3 },p%ZՂ_`[=j;2Q_7|Ep58/ |ht,X]`A ¶B)@I1ֺ,|Hr- } 7a7p^R1~c#ú{=re2Wo Qim u#5\QLh1 |<&iFipb_D}e>ý7WUP(7Ps16DUX"=xƶ'}JP,^/P @mB~V/M`FI=R%IBw_K}oT yu1Q':Y{w{V}iV3*uϘb&[NfTC9H3k`{C 0Z+NވH`%l%\`#'A9׺kJ}[]}g w_(t{k 0+Ŕ[=n#FFr+>%kT-{.C1NO }}dU%ՠo{i~ܧ$ +3p~p|*Sʽ$FW@,%A*sfECɴ^y $HZR`(ͱZtE? I4y;V=L^"lS8A+ǽo]+KV"n>ڳ NVEb#rUI)J H4< 0 o5|1h:C(A&j^K/#{Ze/g6lrY7Pqmc=ף?}`gk v]yܲBM]7vvfj *H tɍ0CkH=ň;8_#zXjJR{%( .s1\ګ$tk^O//+(5&P:>D4y}ؔg yZ5 ] ETz_< +3}϶ABATRd_&2}q~)` cVlB28FLvX0'(ėiEr*]R|<&SOBa:Z[:qrPX,K1 aBB Mq!'${`Ђc4d@$H()IV +3!%#7pIck(Tְ4 F6Tߦa0:շQm5BmUEtҷHm2SiξiWߦfOLU$aXCT'`9ءģ¾oxmGYZzЩ{ߜ Xm|W5w;kDI/L7d~Cʠ*Lf“*ܱ"H%ό&K3e-73Բ[Gz 2ÄLL{"T1&^e:߆A1L@eؘU#0\:\vHOd񰷘Ka!&VG(C(KncL 3^tj/GzE ³Gy5Iތ@l\oŏ9*>w cpN11(/ly* *7zPO*Ca2{K6Au c4De O)z룐ZL5h&{!d}]̓'xkeβvƬ}Ò@ZK.v= Q$%eqi!v MOىPyמT<ٞWŅH^wVTLKۆGWf1_ -c|Q;ln 2@ 3h~ +U` reƈLkokQX Z$b25qڻQѐPX^lbSxﺂmMW/&LRWT-+:QAZi67c (mXG$Q֦ǸDwLNE m{^ z:_6 !>1=շU߲;J?Ϧm;DMST8iN=[HYءW5UmPo>Y2b" /d~,srXcR2 UK|̪h>l'A\A, W'kE""[DThdzm mjadQV58̄\rLȘ Ə xw)ZVE" m[^l2y±c;v +M5ap=`qX" 'dzC˴YKorN ;"IK XYxn): &aB01ĝ;/aP(CEx|Z;ǴV&Z4*LNu5i*'H\v3|#M u<4=y?rDz m5rsw_ԙ- !7Z_Gi PIhLYZQmt ń@}5onZӌnuxSy~*\tl Lq!LWFq69"<Xk5|F!3ݽ$ZVŠF0(JNcLWa(U=;凩es|z. +e2.8IQ~L][E iݞo څ-<F9(ߎ 105k61sktIQb'8xaEGr˜|Y?D0|P.tf9U {A^"w]W,Z|9vE-C:K1*V3'lc<frHbp;z;+<ӑ2j8 'CZGPtv2!i D+41h4b! +!¢@+TOQ' +FN: +=w١6:N%Rt+{ +!WqTfCtLeW V0㌥HM_7CLQ'E23Te0w+JZŹz{>%ܦL҈\50٧y +g8 Kq8S]#+CT)gF̆>l<&9mH fzZГr[dܭG!8Cmy,*406Im$FjD[%aɲe:Ν,\y8S8 |aI ҏ6"1U)UI}.Bn%\|ܿSf8+ +RMHڑO68qXip%DOkhmg#& @*Zg1,϶)y1'7;dB! NB#h I2%ɤZ$IqדdL*GϷw 'ȮhX `EC@0BIU` +if)AxCt&* h2-(LY^P.{;zё;@=nP68[\9'BO@B`0slզ,AZL])! @6-tղ C[וzEjEl,h_-%VӪ-& (w!O(tȹN{*~E͊jC@BzwC џjHpD #p"[q K):yDNTglesPhG]m1Z +Ψ+A\e9k(U 8*NC@GIso, F٩AOhVr`w{qu1Q`4+U|!NjN\sʬ =\ڄ7+h,ѽID6}30ȗm3%ISrWtb~Pd~5Gr"T#1 7XJ:=[;H;roA\&51HʬF3ڤ[*1<%Yezڧ!_:&AVFH.*+d&+&`"G'V'q4ҕQPĉsw|Bkԁ Er--"KVLթ8 QmR (ex;Ȩ&;mN"DŲ[;M<7{e"냩1"|ArczZirX*CqQk5?Y"+"gap7h%!ak#4ɜE=vՉŁL! ~}k]URǡݩ2F 'k1<|! +n.`.]LZ0t .&eTfmH`2<8eb#jn$!f̊ĐjgVwq2y I+˨5JrpP"簸,[EEH@"lÜPLgEzs ; =iW4>hS0fA2 `,*D`[Mڵ֩gp^u/l }nMJ +,o3> )ŋZhK( +_1q܇mq&^E`guOMa5R 4pj  }$/t!p4xD0A8/R ē1^I‡D?Y.oBAʸm.%Okvt:Ub)6VxP TYTj@L18-́BH!CȈH "3 +T_|;uSK7SpªZtf=IÉ q4PڊJ0@a b,)H ˦;PEfOH~)cIy=XfU=#eZKJY9_6lK5`E;ݱeK<%W+>݆Τ +ҟ$i*-qDEX&JGIN.A(ã:k,{tP@'LtpcVCUtje':9u9גuh.ɢ^q$'4*7KGdؿ 4?x5]fNMc 62:40#CǚT )ukfZzf9^I3 N i]M@>`4 +oy3+AVR@23\#NQŲCݐZaL[V"t,!qrꦬXOZ"AZ^Ş3 ~jGIu+RmzLϏ0LIB},\9n`28ωexN;LM]{.Qp4Gu9 *^tҢFz9*2 u6ɺ2Ӧн{Y$H: +!cjPD׎u`Qg L֯2xT)hMVE+7b{ r +)y\UH=dXt֢L#K3fKF^n%la<*<֮ \|XĶER9- +rvohfa, ^Z3/8Rj^TP m~\E"GQ"u)t--;1{Q(_Y fE;n՟\1Yó{>B,ka]§u- w}T,+vy- iLR +ap_۩?>0RT7%qm-_V!*,M(s%s8]z5+Dm18(p9'h3 ܿ +Z%haa~ZBd5seTN}S9SpcAKIz.|Felb Wp.X0H÷]U" mu?YGX'ɍyThʍƥ + KLƫ?)Btj-)MsE]QY= ]KB0?[#S}70a.1}եB8y6Y*.A@IO;e俄QPl76ԁ{v^ .՚p6Y$eAac Zw& 8 .?D-xr?^ 79- *9)ͅJ5U'bAG(6$ʕ 6T^FJG۰p&VfxI%*hܸR8ςZ SCq؝TѓY&1d Z4mjd[¾JYRpΨ24$$a !`ʕt-edøk h jznJX WDQtS: %;䫦≛0vlibD,X*|~|"Ld5mJ~N!.*c[ؚ*cQ4S$SCF3ćrBWjBҎTCzN0$(v&NapuZ1 x1y &JQ{)aK9P"]f~r` +Հ/T늧 [Oh#`8rͲ"nL [c9O`: qT9o>-/PowD@*DSP9%h9iSW;Rʩskpۼ>o_D&KB>>=<P9 +Z rPI8l?("@ց;k7K'~8ݤ^ m{&JqRJM&TUhqY +ϛ[B1)%0 PZEJ?n$UuW5 6mVc<߃Vh 03ZT֤w_f?%~R&,2!: ++I24pynH&=ٶyZ4.#e +_ѐb [i:Bݷu{\BGZ3 =1$,mμ <͛>Ő~ +<}lpB! ]}id|xޯo;~IF֌+F>&B%YZ +4s#myݙ3ە#v}WC0Dk\^ btF0qPgsC +ڕhŹ㣱Gy݁DY.|EHHLpCӄuy)т+L:98E'䅉r{KjQ7 +wlV,=￸gqI [@=|k!̐[61gsc2VfK1f'$q>ɺu"YOrSHK{aCfuma^;PW \Dž >iMxVR@e4}mfwmQƴLO=ңqK={鵣;>l4Iw StD';F$$!zJUB27#_kɾKRu¶#z`K5Ě +h|M{x>4c +390) Mk.s=S(Ndr euxQՉH lg,@Fsf' >nض"l>X%p=Vo IX d&\4§lfp8t'Ps3BX0Dk+$ǀq vO,ta2X`p(ёls*HotNYAG wK[,#ᶈW8Uj7k9:E<A`^qiԶv\6N0hT q +1.[KTiCyCm]Pa!C) IA0=K6`LݹK;s+$hqȋ{'X$]owFWX=` &D3[PRpNj\:wA d͐ML/tx=ٝ[aw Pbsʇ,=MV9˃S =S'c\vOu2rq:G̒ox=c3$+QaO!c'%7+*ȿQHܥHIRBWK_h=Sgɩa T,npumx Z'` 'Rk,uTQ-!ͨ\NR/% Z"{rO:z>Ij?b'pL L-UKreӼ3ꋒQF ;;@H_$DV]$W(71%i;QĀ|'tf50Q̴}.uf''O0ϻ|&qõ6FHš1 m_ +yb, DIZI[ўq믤ι؅8D d&+Uis=)8b;`ip- 6_ݲ5?uZ,q \RӬR+ Ԙ̵ ǔ R +k"}Q'!zɦ g<%SQq罸@6<vW۞f5D,[j/zjJE5%I/m!rei1i N>-K;+)$ ?ln~^hȻH8g,6K%Uy'4섉kUjԶ,q-OV8E +nv MZ߀9~Dc{ԉiy%!]S}Y*; QrS?7W,"VS8Ʃ"xVt*envYA{Gk +209^6:4=Ah.iviRHL v h_SkvcGdkd_E2 M u'‘l8P/@:f{G Pԝ`@'G5/R : ܲ6y1Kd¯N.x罡eu&)2$Ug&Nߤdײjb|HsZ3Kw7 pFEQF6bj}>>x.b?N:'թ(-J"C4wN/ˬVIeJb+  U]f=eĚ>z A8;'hm[p:d/r5*4,Pss(PVpBoXFsLiNSMI^1X&/d*a|>zƣˣ_/"=+KɼaڊPav3|7%Qh Wkj:n8ȥY +t^(UȇV,2^Bg*>"J\z,Nȁ_1VpP+tUDRt>C/ɉFJ +(TFeŽ ۇFA@ +q'Cs+ RXJ>XC̆ʆwɖ vLQ1q% bxfzaɩնgv٣GSRoކRZGg/pwK pvM՛$.jf4Yd`a|-p۵]>;<<*͆ܖmͣQS؇r4N04ػ؇'aȦ}1~p2LmE-T{v y(zPݰ\g_=:uC.Z% j3d֓%WXg6* +2ȇI ۛDo|$'6"]B_>"1 #@@7N0<ϔvhS2NFxCwv\, WI:gVq\ᔈ=z ͒_ڢS w>yҋf6IpA9!j3 1K{6ta1{ZCܕ5Y5KH3j;j^1i=! -|F`U2|KcP'1&X *;Z{T?yFGP`\ԃh?W*= +_Hqkx$"G)D,]#BO'L#F +o9!3ЗĄ@ܼ%$O򩺤G'BܭS4G-|t @ˬP_0Q\f`Ւe&w {N0R{-ETQ9ߌEx+e'R~J>6*Eu9KsۦjCDrC MmSP w{d^]]%YDQO>MF PY6{\,85k `Y1i{ fN6f&&"^ +0{mBu TO, dOMlr$@'xhIYIdQm#-BL%5H'E;uzmtpJ)UJB5ʵf&1 k 0 h +DL+C\ +$,u"ת{ͅ BLKj̡mgf/ӑy!mSiVlQk YJ>$ĢuLZ,EKZQUZ1:n]6,#fIs.a|rQ}(}!`%>WpR7裩S7wC偝kB4 p1~Ј< 1>!}'{ p P _ &mo:C-S\%@Ӭ;!(._9ubBJ/a C(>HAW n.&tHӤx'@4/QZ1]ݧ~xRR|NIA?u*jpu~5?Ʌ"WF0s <- + !5 5նC3lMI{9-7vXAe$&fsYOt=m䷑/%ȓmG6Q=9?7ayLI~Կg{&{ȮLs* qEϚ a֜aDlUY4ˣ0Qz\\4wgY n &O5}LA@mwT9 <+La\)?r$RPH@v<|!gAs+c|lݤόgRF4bXh4[i7FHݟŐ V +$RplJ~h~8M̓Xl냡,ޣ0-yᝦKdD%;N7,ݛDo+N$95sH `®=8ch8?ԇ>}>S#'ZѻL݂p0EnQZ +ï磅& !\34GkNלƟU6 qa%d:;xKIGO0|F8s$²PAoz#=bQT3N. ~nɞeϏzEH1oO@bJJ[0$OֱoLnZ4>O!m#ȻG14_Ea a#>TdhEFVO EճE[R8Jb ˬ zV q<.ì磅s!~}t^ ,O_~ +WPnз_pUeWՐqaF{̟d*އՏ".F7%9ɝ`0*6r'TdvaH ɨYPs)fv w# om؆'RvNl?gksJXxI̙@)K!N *jU,,asUٟZy 5V Uj>~tQ'N0Ȅߺwr֞$1=^DԞHEQGn Y#;=}g+PkllL1skr'F/7De&{ĝD]Ţ ,[*b٩@[Hb^J|FPWN)m96y,QQb&}@V;%h2lY=x(o:@k?vvŐ +E`0 )mݓ퇣aɪ+X:vp>@s Ye&46R0bMD P[JV +{J x[ QE) sђJ(;=WW@l"X*"?{֝I[> +2c.X4G[HO `Tg7~n1PFVDÞ4w/ǃm NHeQp$f%AV*"IjXl'jlYeklY3 Tڳ3 +뀭ՐD߱G\c~QL XXMn'!6mֱaΨ{ C+V;'2 jYo|ok1Pfr1mg,@1I@:%&`ꭌW۳ h{~1Χam/prͽ•]Jx?v[ +%/,Znb\[d):Qb]=tDHmW2x]8*XJ@޽wjʠzG3= zuZj3uN0(X!.Fg(ߏ[5\ƅulvUlE￷T^HMe Z<Iv0գ,`koyG)`h>оXG#1%w# zvAH4>#?m/vo{7gXqm-%'{!A:%3FqxKkDq*G$߃RZwT%h .:jev=;/*?RIU^h) IUMDRyߤ*77M~rcX_sh64}Ǥ*S .O,m0"noTҊ%aaS,PDz͝[p*?3TkɷPN"K=̔f| "1_l y+;uD,%!eQs_R9*5j$0#DIZdY8$MSL8$>>V,2"2.qH,rIQ sLJ9 Z0% + +x$5$}W;p6sH!:QE{rBuŨ9 ]HXhs{F.\9D9Di5n`z =b[ p*7)GSlpZW*D|mԞBp@\8FVr2^ЖRaYG A!a>~0G UȟpH6]$1v &W T}mljvj$=W LQ'7%_})~zu,otu`X;Z)wQ$Ǿ0re6Lla5=q|sflN0TȏRB`1^IRuuӡC!gUx ̗:tR@؊% 𹕊F0FOuTCCLxo@Uc6/exM3[F=gH R>as<1}}NŻY mSZ!O3PD[R8\_LZBDKD KR@+f уNA$Gw·܄ Bd;WPDw _ \wcte8LV83w :Aj49<ⵦܺz.rx߸akma +9wa+D9jtaM%uRŽN5RtG\藷r*PU(]+Da@AZ7S֋DA;N&ܒ|#R6^0|MeD[˗O/jG0D6u"zDuas.av#+ G&nh m C.7 K2.0R&XWpN4Y.ƙ+<2&t9>+$qЦYwPSǗOP 4M0~]wlFM]Oie<35kDCs=!Y8MB G=4@nՔVq_+¡3ZR٥VF?}`ֱn'nܿIU)>4m=!+ yTIܚOEwۜ[ƢST} u@8BmFfDSp2kbge&p.1Mhm75/]VPJETCʐַ>TIumX,& B`(OaWFu1T$Vn wL$ʾHZ&ESYa@\Xԍ;?`r^]_ղXp;q30LQ3;V M +*qrb EBe\XIܭb Z:R9s7{%KYd߀%ۄSCh5uᖅL`,$yή/8S[l_1,qŠOR(nXEfp[k' {Z􉅳lRJߊecX%-c4o:b!l8>@s-D?]]i)+UHq :+"#pet3Z\qPȦ|~ ,YĪk<^c{lړBT](d.T]^c* J¾9ao w(Oz|:)aZu ɖnSe8ͅxLx͕h$`:݀: +oV x6Lr:$VkhYu&i +٣ \j+`m gt~f%O2gAcp4g) /QSǷæv]#*q@S6ZյD}[y媰#p6GO_7z*Noɵ{;gUhraICJT\JkK ~NrJʀH+ i7û%G8\)`>X +@ok~Ug;=?BũZ%imK(Bv.I褉R, q0OpQ*%_`zxY /fںHxcZ5ƛ1vt1wZH&rJG<5dn>cJBԣsd27 34FאU`K~{R=; bWN+I(^-e IRK~9#NW)TnDV۞::+*Pmnɇ~+)DCg4NvvY2n>-jmQ!E7=dk5AYzR%tCZxF##5Ʋg rQj,\hDc| eT 2醡RlcTh"h_?I8j|G݂>2d?U+904y|5NDn!2m͆myr܄ϥUM]&Ŏ 1iUw%*5b + v4J>k 3γhkʣ1"e\L<Rf5!ǿ)m8dHAx6zhÞԜ(37IsLTI9^x|,;ud%QKt(X,7Uo[!q)Gpxe؄nHWHhI@yE;ȅz 7uq'5h%:&lR ]k϶niۧ#M '.xݦ1њvzd๕rLLYBen2gw n|TzSB}N+ԋ X iZ.QXyr;Aw}3֨7Mh.Ո 0' }8p ;"{>[b0M+5*:A*55VM{z-Q5֮[@8ȧjƃ]_0vn{Y ֡(I\hڈSI!xB+]dx/0^9ĮGɁ|59dB2X;˜xߌ%FKdlB9+qw(t*` &j0@)+BgCNM$a+v@i_0g/]WC4j1uc`rښx{P&) Jfӝ35%^`АQWaKz +,Y}- ʰ{!L\#3ĂDb{lYw~fڧ1U^RQ&5YTl妼h-m5{%@ԃb;lHN 9e9'"?60?-(o#f4Mk(PWM(>[.)&]~ֻR_M +Gf%f-s\/af'T(|5 oT7`,K淮$Xh12r#!C_װx=Z<t:Qᶠv3!Ϣs튒և AsRPhdÐ00?*%fT{L0z_/1R,r!(u;^KCjHXfA/:?cc0i DQ ARnw&#/ϸ̂f +5g`x'Lm(ZFcpg0|s]H  2J48y=cdӮ+yz{0BOE 8'+vAG,Png rn]8Zb?˓%s.qGSzas{-&3g`-ƍF:dKx ' 3΂z8/$/C[PQۧvi'F F@G aZ&gL~^};wC*0{r + +ژ*`4 >lӱm +endstream endobj 28 0 obj <>stream +t2wW6@/:єP`"^0$8Rkc<QB!"?`8.mNmf%PCzp¨'h4NQA7Ai\B:7YBaܘsV ˽þ3,V~h.* t?asRh;4js?.e/ӊȍǽoucu;{HL/l[x?m{k>Qq+07M bu[a0x)طM@u!#6JyG_˃U ZǍrpcxpfṼK7 WyiT%USzͬ\7m0:jdj˚C^fq-傗 4HЯ^G+qʭ̝@Mm30.3Rg c>3E $*M'n[p@=Ղ " lx͓ 뼤 Ib$\`wA $׉4NϓH ϵt(h*X 8aT1qWu4 +BGVhV#$ Ĩc˦)6 !~I2#X3\CbRǜ_׹v! }>nQֈ@<dy5Sh(u JHԦ5T50]oreET)؛TU@+ e_8@bg;f\M[/e m uvl\9Q\hxbm%MicgĢh7x)6g:e3>PXҴCoz}LgT$8^w5> +W_s-m,<92q=ЅR{]#= Be\֢'|gUS( )P rwS@練lqclyj˸bc (=ۘ3 k zSu܋&M`!Rc-;Y 6jAė&#cUeƠ1sD&&`湍Z!HHн_ݑj߆W.dAHfbUre%%*zɭx󑬵L&B!y2[M9w*>_& jʳ୼]RYB Oˤ"hkGB޺܀ىSK'y\VxEhECO0jIɽ.wnŰ)HRsu bT-2h *]Y}pqP8"]fDC#"ǹx@vGx}7?gYO`ӖEEAB "G ~+ 0=y‘J ?wc*\ )3yo'LN$ 1P1ZR.ݓ l.@k농,0<;΂N)`LYf%(DX_7+U*^B`kG +P --| 8z(9ay1 sIڊaFiIN^)#q~MUu.^XoyJ`T}`1yd??|L[nsFtNFPP]K, +P8y[%WChS++#J5 $˺B 1L?asw7\X=| +] RҤI$I(޵RE@y PRJ"Q.>UM8ZHnh{ !\Y"꯱Ώ|! 9R(]H'1K.[a:KrGP' I#3'VHFM`ng}0qL@3؅kKf$C+ߺ֜ v| ~JwzwD(I`Dó'r[iDlAea 'Ď'Fze.]Ȩd`eS3zO+_lTXe*Fj/_j\&_'ڄ–h>@I}OkV.ңg4B\=J#1򽺠rcwȌ>[R/yڌ 0X5ͧ%P$'M:Ѹz_?ր6Qa4'C~=m?5fwFL$Jx#m~zN0㥦W2l.ZXg=l ZL(tRRnI'/Oon7gl!7$7r (W$Xvr ^c-,+'̡A&HpAv0mc=ЅWG".^'IEXQI&3kO{ %SɦsA{PK?ڢBjkU>w'\H9pkS~-^(s(,%O`KYrxzl+YSWF>?w-Y!r55OYc]&^!+Qh-g`!fE#۩#*gC Ց(t"{d +r?k$wh$E"6TFlHJ#YmYY/Xj,.:Ia*.9T֐40K-ן-asƍF9S( +mZ,.' ɐ3}y&!}gW}XY^*h]':$Vx [A;`8q +vǔf_I9t@~jpMpdBF׾ϰ`L`[,#˓|(ѡE58OZ>mmߓ/h_%O J(RM4&BL]rY䄆?]|ru1fcr d?HcCpWG +1 a4K/a/pqk>u}ncSqy0iy2}/  YLAqXA!L +,ﭞ 5#$$x0N{[8`/ +-~9߄S1esQlxKnJ@_YÊ㆏1|ӾxhtK +cg&,}cj>Lq'ALUm|H1~b"%;HKxh@djNHKC?P&IN~Bp*j7_L +OQT)fp̻ +:]sPԙصs92\AYYS-5a@cT^sG]RmԙWbdz\=8b%V<ֳ3A¨WjjYHb&Sɵ5q+큤> +kZkA.ҳ2L+̕5:*ӜŌfN 2ݖ/Q fze_eL2kc%2+m>F^ IsLsV5[d*ISB@ɯ: +ZPk +`#edso5]*qM*bSJUpD= !`<%.O Udr נnXu$. O߁<{6&2:/pEwFF/qX]fdteѳiK3>g0V)턉[v^,:2Asȍ/Qn. #]遲 !<wZ,*]~c6C{ݬ*= +?y!·Owvפ&P�Zr z3gڙǻU\]46r%;I3$z~Q!9~xiFt@]]`bA07 BE߱?v lS437sREu6ђ+1U8'][!&Ώ(Eocƥ][ٟO$0C 4z;y\VvM/543hxs)!534F79Fn +צ-<:SpYƭқ\f$rHXLhYQ `"Og7\$#VOy#'_nijWbF!rGtS,!- U(DeZQEս4 lAYo']dd KN?[oo “MCR㌣0arǙ^޲|pY,y2 vm_AGDd!V -u: 8[sl%MZES-K@'+WNOM(,lor=9lh[W؉汃j>9( @cS")0kla.w p!)4ؼi`_ "_ct~n%3I^>SLA''[0_Y(ULw`ò+5Jz" j~c5 NX}P!N5EN4עTIpT6ˣ}A+uGwL由'qWgl8'>/Ȩq%)CI[֮)<le`tzx E@m:OLoK> ԣJ7ufeA_7g I ]~Vͬ|4+n 0PjZvJ;ڽjƫ +7w%7Da_ +|A"3W5JGa؋*-J^}0\cYi㳩Җ &z@ S8~? =>f7:jB,WtO;4|OL^)/Mp b7 @ FM-Gr 6ĩ9XuĠ§eV2{=xAZSC$TT=-h/MnymJ;j)&dC mE#;& Z:\N YjPZ^r!ǷV0܉z>eڀ4[XĜK/.=9miؒڬ.>P} +yVG WW?}bB/Y&J\TŠZnKz,{'ɔK hyQ&v2d~ҜMrAt!+niRr cE[mگ֖@`i`EX.]ptH}P*ЬO=ґaØOQbE3,y&̋ 1/mUҮ63v'sTC3YVN!.Ÿ9GZR+쉬Vٍޮ&|*DfdG)/{=^s4Iaΐ_@!ty;6~ѓ>n 4xypOQ(3V83zc Ĕjwv2l ˲Rwъw'Ҿo8||垵I5-cb"1eSi9uSA}:DSı hfOS%ݗߟi*#IPӁx'ži̘GÂ{+^23J{>沑ґodr;HȬZ=& d$% +h_vǔִ_tBW6v'Tؐ +}',E2 GHx<+A>кMi8XC% pOfl!T 4 3VEkPqViܑkҴTїiAvbTAۿ3n +Fv\:\#T,]S2lzu[XB 0J*(Ogr^=]#Rq`Vwlfm]/I +78A ę`9͏jny܁BULѼ< ѨJ l:!x'^D`Xի40wӇxMp~{,RgM>q$?@4Ҙ,\%pܪ]7܄|HS:JUHdF2ue!,#*b[%:oT©^t'[":7~dʏ Q ͒\ gGD>C(0i}vV(k~LKk 'Y W+cH~g|rũDFFȒ >gw)⤫?"9}{O b@y )T87v2zkM2hz^~Eݷk MŊ=;)l B˕EJ6|O+*9~ +0 e ,~T4i+myZM 5ܳK_a~. K3 hlq'1ͨLLuV' pA¸,LJy\ aú>fv7jK\ 8=̧5Vg`MB6+^'!q ryԡ*"f{m{R\|lP)nҹhCV4=mFy6 9yO:垩p8GM 7{ƺv}"NY) ~>J]s^'we-+"]&E

AxEUW؊n#kWMiбODW*Dd+  < YQӋ0::'M/ΐAaBs ^W?aA@o~\ɍ#1SI F< q0Yرt~h:rNˍ^366G G-~T7 O!ί2=lJKP6G/Β,Ґ{N %Kav(΍,J'bcg}BlTC.aʍ,. 9d^8q~daNx@XGHm!& ܕ9#n4ErAգ_ NE]>CN_Q^q Ž 78K7PQo^$Pgݰ|f(*O@vu 矉jR"[PF*T~L"z>\ǰT+JѶbSwXY:*O@$>6Gxk[<aZŗW)aIx֪Oj/($-`MLPc80Z=wіa8744 +>7TG +$]d#Ki +>y٘c㜈$s֐AᴍT;EӋ3E DͶ:cp>m߈ȘIۺMqv{p|,a Ұ m,nJS"2DMg@Xܰ5!@}`@^7*+pDDZQfKsFCn䬏CF+a3%&&fsj:hҠMRnnڋ<7Y5WL㼖! FNJM*jڎ|r[@:Epږ >uI$EqAVYMuZu@=Q='#ۋIrFK%Pc5@s_LN`~P_k}.&VY@v; : TR&6j d2\#Avj⌉(T azqݗ(>TG؉ס3f(v#61e7r`0( Z.`X¬5e=sE9v_'x~+&XI@8) n`a8# FCjzv,Eү@.4d`V؄+|q®0_lM&p &-f3fC)ZOVc/VhҊ20H9(|ULP-++htއ::5C%.JČ.Q<.hi_K+A + xc*n=p 'UЋ +,)! B]Pa'x ;(N'S4U FHƓy"@M}- d +x+ZL] PaٸO ,rqڃH=P8KmgDP>ɚ1HItBC̔It kW&wbCWsuS;G +Bz$*IgDi46s(dUA$rC"Aov)kukcr?ĭ"`ꊵU{KPe ;n/B|l `䆤"#bCUGY؇!r8KH&?Dtlma#A:AZV:Ln gњgII~+B.@{NBVz. m$\&$vg\}QqPU:pL6T!ΜJiR11)VJo*2W\J% ?AOPNL|P}^LIH29AG^eF13SzϏgPymJ_X8/ lvۂ$@\^Ł<YcPVjƩk@л=>Ybɦ(dF^yF,Ļㅝܑp:ἀ(@^ϧ! +'$D2O Xw/B]na{A%3E` oՀȝIx_XG^B7EWRLvN#!mi9فAP'g9j#sY8{ sˍH&];đr3CXW(&+ Lި>dY>i8 )7DUy\n#Q&=SGܖDX v܌i@I+ x!*u)ɛF@btX`Wg^nIK+?H":$6$A@ca/)ʙ4庾#2=c%ATZckXnshkꅝ8rVд[܌|qХFCRLvhJyPzٴ8k +"ߙ9Ͻ!m=řa<_OnvRbr{=%qYŽOm5|r*舳1kI+ ֌QZlB勬Ä5 ܕDgx8S4U GO2=_`$uOuyZ"+x>]tR| ĉsf9&eLP<2VmJĠNzU18kEAۮŽ,-N jC4z< /'unŽUM* Ъ/NY2=GK5 +0oᶶP}UְvHD "6%i v2:\ ǭp 1:%qf .![$Q7veQؼ!ΑY+,Gї79/7ίC^>8qvlag/}J~jV`ږ 7YV*p@`}:PzѴQd`=Z8) +rSGG"6K!."< Z<O'u9Yx^Vt bc01Str~pR(>?F'!B:_xTE F +%[@%v#UQ.?muI c{t_Ώ(OFE=+ɍ7T X{N`8*Ύ +;>(u} +F,Uauj(}L^5Ji%P9?-I/RNr`<;**%gZI+u j>@%sP/U.mUDo+,'2sÎŐ^Wc9F[XGu솝F\jܩˍ& +0~r4λ]C62Swe{tmR#\lZCCypitY0y,`}X_DSN8rHswC_=lɓjBn&X;d(^t狮3:w2MGQ*!mo~X7ͪ +*{' ; J^:ĆX^ӗlprºC]ƵBlxLO9Ak;<+uK/Y#mK,>^ +Xv bIuoRlx%@DV. -`ب-ٴ=a c%@}U)ac/E ˍ7)pkom4ҷ}󜏾J.k{~"j;-0U0Α1 +7xފҎ b֪!7ηXU/'Z`tYR]GW-%N?@}!T0Q؝'sx]H.apR:8?qC@-Q SUs"!7%I|y}w@%VJPkF%J4DӒ{pRz-]瓨!sZ| Ras>+)p9zxӰt8/>5A4L\dA^'7 ~F_P83FSN٘4_ ;LIғMua}!x9a>P[>aZ8O`+ I=rR9"J=_;f|-$`8GJlH!7@%4ܤ˄u>B$t'3:#v.=ŇE' ;;ۋN ;c(962&vΈ'u#fb4Xiunw^o R# ,RTbzGprbtQN)'W ;0J Yl&\!m7aQ!$O @QZu]LOoح6_No(c:)m? ZawQ$*CZ" z"@&zNqZanGXfvFlfvFPVF}n8Ҿ3(b.񈪓{.>;W%xd!z:`FG/& ; :ltq`8%wՏ|Ԓƹ Ž8F7.8O#F} ,$3u܈;YW$ +;^y^NhqWM*1c8XH|)ZZLU|xT$]Jt;ah*`$wDZeGy 7&/vM)x))侌43:ɦqfXܡSoim^M[y~Q<92a-Ѡ42kC}A$~ra j8ǐnӰ;O͗0๩/gg(w~nӰV%K&Bbk@۫J͑Q`>f͘F@{Ξ8q6QW,ν ;cT=s' D.'KU[NnIғ8RuҰÌbr*{rtz{Fۧ$QGMijrPQ%mZ O|ĭLI JnȆ>q '?Mmj[t[&X2ar~J/:$`ƜDqy~=/^]i.hՖXUAI +aHxggaw.O^+rgЛy2=7k{'xLE3 ;z~, R'/^5B+־n@MߨzBvhrRBPQZ`N* rYxn#ɊEa~(Ӄ +f{(Ty]r;B*'8/t<C CVsIiS4 +aʹv#}uXgF)Bs +Lޅ|Wd`]@XKP뺯ԝPRZ}pvuJ#nW0]yD}` ьSGnKq9#A@ܡMRkN +9ad2兑3熊" Rn'Ǽ8oOۍH pr #*aEqDŽ$'mmJ*#/%D~Nya.]WF:Z3|203А)I&O0+)>QH +64Μ8q&e% c4dP}NE/~:э.G'Ξ5IJl/) "KlYd"d2%Υ 2=!u}orз\Q)-+A sƹiL |Ѵ(ͨ=ڈ,QVmqfۇLn<8mO /Pb{ʭRg?{Or" ۗmgFuEq\N8Q(JYGUJҊdriM$Fk1MlazhPr{TMtj[ }yYrbU$YJ I&ZLH2y#wI3OƹQ/u"'d^>]ִ+T|ˍ󎙴}<Ѹ,RbWʻ#?rwU'9l&|D+`/7 # U< G!k3!L@Ϊsio T>&#Xy8Jۣ(7{q~ <ULH"/NNHp3UԻ=m Dꌊs`pXIGg{0 ŽȭmNF5X߁$ӂ^hIt:}D%x.d) 3:;ziYxIPۛ0zY5 +Ac{/Th>4f_uR$HwJ #q{Ϡ\E2q) wf y9"0@Qm/!1?ܖBunm0ۡp@Eg{3=j I=":J +Z D֚ґɉ,v]tWӔNbg\6(346F[tcz4yqb(|FƲ>KLf<+i ;z$F(Rnm7[4+7mrhljK߾]"0Vf2 2ypdvtv*\@Af^] +E+MgeHJ4.Zh EKi+kBшqEdY+@zltm!bt0S(qPQX^^ [>haBcSJLvq҅E VGܘl|ֶ B6}L$ΥqB 5= +7GԨb8uP8;PdJ g̛茛 gOju:Hl+PVEJ!~ RC+j8<4ED7Ң'!r#jf0sz +V"+6ҀW0u9u9Ypsk. ^4S^,:s@ >mw:-6Vֶ/ kTZu91$hHʕN9^'6*@]D$h(L֊au@ # IuJԘQ +$IKBTbэQ56҉px4NhP g Y nv&P00Z4-&k("R8(zWf~@vqQyZ d=h.ԻƲ3oP9F1tުcl}@̈T3E˕T hD.15.R?IlV=460L)jb(~*Yhh2q6PT,DŽ']8Rz-7L}VL0 &F_>i6!Teu9-'΢AAF.+PTx/)6Y&487Z˒蓀bsh/.Bm.1<0Lj2훠#Ξ9q60 +<\E( :?KzWJc/:0rw)eȝiAF뱽G8-!^8A82~`-~Dq7 +6đQv #nq~ hHpIwCK|%D2 yP5:6f}yq~. m?~;? +^7%כؚo<-]ۃUJprVնE-p-0*A*k E1vXBPZܑr%wym /΍2qvYQ. 5rcuIgvCϓHV-UnP(89[T%VR/Չ/{6{R2agnܔ:}Hz}ֳ>`ڮR\xq"ג!s(SFȌ矎i{t^tEtm0rW>*KSwC(ΏkF_)}o2}úް4KsL!d1hfS GĒaMN.J!gSq <9ɡ2j|(fwdh4``Ar`800_U6Ո15Rԟ{?U)㱲 zr;N[3CQ"3R۰ `i fmV{bj.c +ڑwً@h}`S@^1z6"+X0>Lbſ4|9eȸW@Ѯ.}4ۥK#DcE뒤GpD6܂[`;HkˇhϿz}hᶎId<msz9dG*?t/螙"Gݰ ;_?%p7rĈCJ~DžGaI@6q=.Dr}ÐGtd2EH⛔G48!qo!wA,cj'QpHywkğ=Qg)6`hrnplxoCL_v85»uP_(P]xscD^Pg&Av-PxD ޵a XFV8zx +_XV }S˰ D,8ل=蜁-F*[t*̧LXœa?HbG`"e_g *|(qe%VԥOy%CTE"^4=6r:be5r٭vYo5iu!e)"an \}']…싪~eo /O.-^n8teFݡkIUG'- Vg.YjA?nX$`Di*Ԙİ3AO{랖.%+ڟd8Ǡ?ɞGm\?ɮloPhu^ȔG~T?@XEۍ7gsQmN6tNvl@N Paz35® 2y Ӻk4蚳aO7UM^_s7{[$^A @FKR6:?Q$PJ j!Yfʆ3wp lNqAT<Tw Ú jaoWE$MIX;cfz `GxƝv\.#vBoxep -`*7=?)# BĪo2L6?Fx_iP0$澖Kw>0I70MyȔ]_VpŸqQ |Q2|a̙(dQ*w +$`疶Eu_@&/ۢ1f߫ #OpEz\2.ڀYLN=~>T{M:hP]lSx9*[DC%18 m`kf 15#0!S| +{\E"lVk2p I(pnӞ>?΍+Gh% #X~֗ +6F p. GxH 8$q=[Hr`yp?}D| s<8w3NE_  dB\&`F Hq 8Gfܝ!?wp QA`Bce_{!Gq.' q^c5Z:.Ub[2Mg[l$VȰquQ42~i{081df8f!u<峷MgP-τ@2\mh'<M +guF9'@uxb |ezEYw\-F~.${]&h?PECؓأh)upk4 :_՟}j%: $"h+8W}3VB"ݒ #'Z{aŻg]m+p:jMXTYxhWlso mD4F-DcW]z8mqG 3N|B/ qR}z,5^[XZwbYuU^l +&zc/F% +Uپ܇VD/`V YjdEllQ@E6%G"ĥ<6zaqmCY28udKxaN 9,(z _n|Ǝ^Ok++#~`e@fI6Oz.R#/z;fWrxw}ЭaZً;Q1f[uarQ`r E@猓"Q&5DC +k`.d=gE}/pe4[^tœч (hDE?O2B{}x2:2R,n@=|2݋p,q)7J24AE[V%dz#_䝍_FZ/:etʎ egٶ_t2,‹~ی[|ⷂ狐xCdEuO2:E*#ld4 .jm'fG12v{nLEO ?ɇ?HSId4S5_6V gN7x<;Лx ldi:D ` caC? FN:%]}ig@JNG׋OhTduS Lx!BP̎r*7I7t<~b;1QJF46cmRlTFtr#$_֕8#5 >faGlʊ;䟍-,f*2KEQۀR=(kظְM{R}}'{x2_L?Ȟ6>yԥ(!yFPC[IҘBFNg؍>R]tى܂pꦂzD.ȱ7'>o4L8fho_bH/`x4211ؑ? )n =gtz,X (?]g/q>O%QOtZR'4뒝2m =S>2a\4 v ۸E(\ƓEAɢBZwO44FYcd k=y=U5`'Tۦ9"jYseldpJ8B'Jl7)Pp;@yPH5}"}ǘd,pJp;l>giik}\gO`H΋2aݮ5}HB2[uOwEEXN!+Zಣi銂xL(̒#l?S8gIb`{SUr 8`"6R~vN8K'څZ#6^҉ ntA6BDF /^`]pixkThSݻ"VjN鮨!i)Xq](PiqrQrvGalWBtREҏ266"ჍB +m6,-:urt +HGLN@&. ҈eXG̾?lJ#yVì+Ww6T#bcD0\vDN7у&]T%m ԞLRz`cN;E-ǃ CG{S,n*%i9۠3i¹:!vQRꕥ2WO,dYK_ ϲxHM5B]bh1"lgPb'Z?_l TCXDŽ& +4xݭ- ?\(-i[ +h)?D (6~``qS X8 =!z%,t*-Woi~_$O8_!L1(s(e +$D[ƼpiH?< {akۂZ /S]jHbI})*c 5vTqC+B;`H+r}4ZQp!@%~ˆjRl?Vڡ +[i.f}F!PM *)6j?UBoKȌvH+N Ċ U5=sN"A|+N s⻂֊|s)YsB5w*_`zJppT{A`f%V'&+;RKF>DcKhnLXZ4eǏx%,>,A5h;%_L j=gg YVpww3zKpYU,oX#-%6N5b!Y@KAnbř)yIpMc4 .$z&^MKV l%/pFc%9H6 z5r;n54dbQ4Ll5 +72u9 +lNT]mBiq\*t99KL[ +[u^tτTI{ 6 'N^ᯨ57 +ʎ,4esO5pARI~6g"M\? I2dƕDܭP<^ $kE/Ch}Eu*G~kppkR?49?D-li#$-RgfqrċWx; ߴC4Y>e5 + oiѿx+ +j"KccӃL! +-ӿy -s4SfwD}e\K`Mț0 f½/$ϩ DmC~_ࢾ3uC`"qQҒ6^{ 9[W!m) cI/TN7,Z#n ˉ+h{%#JԦ揾~nb rߋ!c4cS T jxѷp(]IB@c'8sb!.N 7G #!Hnt@!q"A67c;`j!YyZqVt0ɏV9oɑMP>]dk_aUa?) aLd^]6 ȈM1MMX_F6y;v&S؄&%l1I3s ΢]لMHlB/3*6M$p,l62& q?oP! WƘ 󯯸k "{xc; &Qv0"%c.ұQVб*d m$ FD .۪0ƫ"< Ȼڥ0Xk ޷BxͲ!ѩME39h_5T+aҁ!ԺjgHMInG:E˥xA揷h70%R-b[  ![ AQ_ +w>㶔L@M/^=FR{e29X|." +ğg[,e3WpV݊l۵fcpܑݒuȻ"(qo_Fn!@|0TC*3gAG4[n Un +Cg"U!K!:QF:E=׬CD)')v]D[nrrowKU]iujH *aUn.*R!qXAVy`5aU4 LtU,j Azvxawpv!nPaa'!{,숸gj 첇W遰/,[mv)eG\Y]`ay뜓]v)v5Zv&9Ž&E#a7S'vGY'f<\I0IXT~@Kpҡ/PB7So5"N$-/j.64yEVV1T/9z?=}Q qAb-IE\Luڂ1ux;QJ_l/&p\fIs8Kܻn~˱wWR{x8zӱ!" !9X]Vl\)d\h.k%˪VoL:q]GOk@U{ɲ_xVΌL].zY~ nAE킬*1׃ O:r_`% @a[oΐL$J>+4 +PX"}&EV̪!CJ/w'楅du'Nh–Rg{Hk'J Ah3S# 8+:j!Yq4u B!SbhSE[l ʥ,&y3+@d/+MVV.TY߇e#%M@&uݿ388FEǦP;``^g<pWW24Ύq3_P?ހCkڼ]*v!W"ſ v! c% :MzŎv臯!I5}zz+:ļ& 3$ø6O,x5ATcŷƬ컧18>MfPz#*]|>eާwWG c_n)<ɛS#Cbw'*(He0 $o +(^jDqR] *zV*R`+4^[ ݕSm T!3[)/5Qa wD. fE\r`A Bi @#BDCʼno:dSWCF=ĴTc\˱p"""#;bf xH+1riपu.S' +#8%Nµj@""^lpWO9-+X7Pv38[YyokJ^-^VaʺFg?H 1fݥլX!%W)ПY,g=,|f `, UiM*FiޔܕQtsx + }r 1)y)aYIgb$f n׉;7*ut2 XCv7^"fL"FǬfekoW+l*,^&[:vh"rr2 X"ړ1Fb.6^B3Tשox/O)Ճ L~V&[awPd8t+F8.3P#n3/{a}7_ !%+ +:bP8_dKHh z *6N%UwZɡ$I6X~7_<\Ij+ֽ4;y݉M"L"?(Hb>+I]N%pg#'ھnL2X0Ek%V<jMx(@*@l*'ƀ{֟ AOzTy +rޏ@iKhv$Ŏ +kof(RRQhHǍS!blRjOr 2=UC&bIF~~(ܰy!绡'Z&%(s)@d}Ʀ4J(gPLHTt0{HNfH8soGɍJsQ#˷J@'Rl (NDvl{2$\S%_>ؖJEt =#t5ЭiPWz狜  b5p (M}% ?e!+}Bw*WF6IhO?oz՛6&c^7$iҖ<*f6N܆*Bg̣*QiPuɆ|҅hɔN  D벅6VE)k8,+a +a=tv$gtdEӹ7:Cu6j@8",eq@" JWԨuOЋX"_Y 5+iU gNRz& ߧj,3पK 1TxagoqrNzcaa)dq M[%_=Y~mSs +]^?>AIvxko>B;>i9}g[j;oSU]*6"Aګ|;|4!H$AxTD1Ű]^É sj p˿e:9|kQ \n4[mUԪr>L 8P%D{p1;pCqAJzQa)Ma׆";6($r94kޒtڍ==;Sh|CA@( E*/J1A\J,)p +e:՝0nJGT +RSR2MGt>gMi,D+vɤHP 5ź0jF]Qg +Ò0Z%zTToD;'k^z`!uy;'k +W*[`@I)H$i$;l!ŌI=AS`D跖q܉H%d|:  oiȪF#1 +CCѠ܆( jCX)C.FTH: a8L FT|g7Tjg੘0dnё cƐ4rA %b ;83j) UDd$Cw]#!Kh͝"lR#Hvy$NhyHd7mFL!X#r}N +VV_m )U2HxX<>|YC@B 7 s]lP*6I}+ڣ2AJBLT.gPIĨMX6 FH%cb:Pb' G%wx0j#fC4P@"j`Jyisu<$yɥ+ާY>).m 1q)ԌR/@bi :0&aPTQKZGGD-i*IvrZI*o`Ji)Ve /j +Q6ʥB$Iw%u,^T ͘0CɤSD ; ;A!@BЂ@"vCQyR0n@'OREcs'MPv]ޗa0 c`sȁ0Mb ,ƺt,Vc0r1h2Uè.> |8@}HK,H' )1 +0Xiˎetc9O VX2K:H$tP&j6 +xx>U}F{XXMӍ`/KV+#±B r Xk@ct_5 Ld:&jҍ`0sh6[]6XAvнdf3, ,whDƺSk5s;o{Owۍm3>צY8ٿ3{˳ӟf[V6jVL~ƕJн+l`W2$HO޽?3v۱[}-usjg\W_wvǻމ}Rz5o:~nbuA{7}Ɣ~tZ5ۧ қ7>u{Gdz߹ֱV[ZZ+bx`қ|UӟukOJ> ~}iV\__')~;uk+v;K͓wRNG=y|kz~q>ֺ}ut{GPW73h75/tۋ_}ﳀ+V{7s{zijԗUb!EdfhS F$bD <8$J>J*6$p@`8 0AJJ)D/ɹ@F/}ep?flG wK^ ~ψto2wkF)0X'lyʗ2]oY#^|\&$M'f0c-J^ҟ:cƩ.wp"0!q~D-=LZa߬1X2cd'nҙZךVZ9gb 0u-J a@̯$YÖ5[L| LU(Ck$A.Kގ(zLpv=nL,[?d)~23 +;)3kq:^_38!- )pZZB_r.*sմTȔi͠wv 6 u1:{u`c?o{>`"dΙ4IcH@-bZ){K\rЯȂ`[)]Z^,!fV0H[Wb?p&?V#I$7yn>+46Z獩5BC+Kw+(h /e,ab'"5n2:ɩdNP$˸9弼 N`jx)GJF2"TJvlGULO7_Ti9D՘c2ׄ}'J"vj>ꄶ2 Y +=!DtzY9͢czsd!m`ǁSgXUPvCߵʮaO$@ KE'[+\euh\E+cEiB0n6 M$mpQ!u';)9jAm778 ;AW Ԡ4_PE&Ȑ%<ڌzOXń<@w3P~.wmPwUn +%qQ>-X-ڀ:0֤dPP?/`@`1PTTJ;ꅽ+HJۈrmr6u?JpǞP=PULjFd鉅YZP eGjD0em4tK{nKv#!]{b |/&AUsC:%uvC3܀D3a}Nʽ[oSVȾ(mK;H~yf!l?u'lcqıZ|DmT*<o: üQYWZ.OZ̢,"?ƌеURRH*]~] ]VjsY'롅0:(S8':x.trz4W,ggKSk*7'!:ᡍzV\=c锞$JܕXjФU|rE7 S:^ é`}&d"O(wD1kٚf1~_V98#jYys\zPG^ qMz?D.adQT)A>6`ޭD/@^Nl.H^>򰚣և* /VNF/MpJ_SA"d@z]4# mX4$#9\JP#ـ Ssr ,#Y> VmZ7ڕN鼡ifS r?m;p((sBC+T݋rQ)A!a@)2Q*[.Y>m/^0$>0M=&)A䵚 +r;iH`peXLq*rHk$)Wl/6,;c[h56M˜u7o'r[CY9Z! ՈTI钸˔#5`;L9D"5oYoxKvdR5'iവ Q.Sgn#UBFG"mPEP#0PސJd~% c ` vƋ%U3w~=òYn#q#lpi*cx&|0穘k=[|(=qc)j:~?Zh8VOd"&&5kYQJZ7kcZS'l[w)\R̋'H)!U]a@,Tz\Iw&$M}QќO\X] '(uM g +8j) t-؂ ]AR8q yI|o'K9(ZQ[` U*p`߇R£T[<{(Aw+*Lgذvh)pϸ =)`}1kۿ2FB K<viB|)RV߃XedeRނf=$p> 7;%2T/hK9oŋwGL-z5)"YҲҘE-ҹ%&K!M"YH.bcpk% g{{ǔ҉5gjRmLVQHc.!H0}ӭNhҢMDrr>hBe8vTZiFr%2e`˙ݭҷTL +Y ]MtMԂ*[p6G +'O-`v,) )ٯX[Ű]KK**O[\iz͋"k*0*vP!z P8q-܊Cmq`dzt6uV^1=m&먆u xA:[yS3¥rX3;[P`0^m@𐇫6ŋ N'hCnK,{T9#R GgBʒ0G%B\:iR _jBM/s~Iǚ]8KǥΒxYrPٜdI}l }/6c:\(,nY9xP[OC4ۖ^+BvLڒn2ֈ +cqRIX++A7wbmD:i_:iN8-,iB/Fh_ڡMYr[LF*ǯ Ѕ{rfCHT0ȝY%H6}l@0XP +d<+]oLDjpBa3NK(w|"[z> |<+gPmD>PIV4m)&Ly)ۊÙSX$9-ձ"v+NFԥ.Ҥf<^[{nJ{L +mDVv')/_LYaT^s Oxm,wnEmp@F"~U_zcj[riN￱i^ep#$0n?#j%Xf݁؄Mhegk^S! |OJ!ʁn?PF6dt`&eeXѨ7J.bYAiɯëC1`,j&uJR2\SS|0#h=+B2B9J'c0pX<?Բ3 zNFF4GMg5ʯ\\tR>&nod_b[:}d_4e7ZHJ׎_cfnMiIHsM- 2|hSNKeKu JRO\Ya7=-Ý3XJuFdAE΂ ;DFe(PmEbϠgR9iK1D'ٳ]̓0'-c>Gn2FOtdﶏ4["K`;%F$\~0A7ytDZJB)N,U:i50់*Zksԡbaq0V^d?oG fY|")p*m9zȚ{@JS,#$sTN7BDi(6&2:VNi! DqxF'jƁPO.f`lcsHXb/OsaFFNS"l,89jT4}YG>l'ΨSc`pd,fn]Zb1цW_Fu{&{DAzhUH~#[V἗vЖLjhׄ[(6FZ6 hg[Un>gVx(ϵ{X-li'dBcM3AZf/gvwKC<"2˺DAqHxj@g6*zѵvysg]XokWH΃S#CV)f̽ +>g6æd-E&W\~ .\&ʛ-翛snV.2cⵛ 1+_(e_#^NG> endobj 29 0 obj [/View/Design] endobj 30 0 obj <>>> endobj 11 0 obj <> endobj 31 0 obj <> endobj 32 0 obj <> endobj 33 0 obj <>stream +HdRmhSW>7=A'6ͽmz5#364T~w~mTZ?ĩUc#S (6c bqESp(<7}/`8{yxΫ*S%)z{x{aoQƎiQ'7kgFU~a~HQy6W*Xm_ _[d[LJ+_˘"0Pa11f16O`ֱ#{Ȟ+>]T^Kwu qЉNHLkO'SI nӟX#NvtH{_W͏1ˮT/7T/#`{{3&^ +?0婉$"o +ǐʌJ\rCcRaIIGvJֿgH I5D}% PS8Lq%^@-j/(d4mK[tw;(~o~+_/CG;OQA8n&S=잞&-6.0!UGP&#g_~rl1Y@j 3EsC;;>~͠'3p Ӥ#eٴIZƖ*˼ ?2E.Q꜠}B7c:,]"-qjtR}TnP>Y%qnO7oϩ+KLr +endstream endobj 10 0 obj <> endobj 9 0 obj [/ICCBased 34 0 R] endobj 34 0 obj <>stream +HwPS -Ћ!H $!.HZHǂ DAJQDқ4A =3μ;͛y;7g5u HL쌌]\t`-8`nn :\ ñQG܉n@% r KQd yy(D7/2Af)ԛ2 dQNr:@27T.YG3Dd,@/tWG`ϟ +pݑfz9eS+q*8 /?& +1r8jF=(HpE$=n2pjb ^]oMq G-?~:A엂D?0^0*MNQyPp?22W* Pjs5Z4m133u1)ccMcepiL\€*r]p337t4l6|-G,,ZS=MTWߛȔN6O MKkHؾq w"3FjVYvg\.4O0_䭀۷>İԵ,zÇ3!UOIE}ϳ MfրK/s+_ut~yMFp;^>l{A!vT#8jBh1?=1?;12_wt ̱2Kڅu⛰ŭov"v])@s0R%BBM4)t~0)FE.R#,86.'\a܎3.\(O)/?'"%hJ A*YG$FEFO:/ux1Ᏺw '.[$%&'>MN8{Mefޜ\<|[ GPߕg_tR21Uդ'IOKj:j꥟=~8 oh%|վ!ة:B;|m_xCQHcqiSgftgX>_] Z2[^L6~nUbqf6݁xk  LAQ(л;1ɆYyH35VO6U8+|#Ӊ ~Sg/̿)q4$C +Qߎ'JHKJKde+19X\#P^IA\G^iWyIeLOs' +]tub#NcfZ+ 3V֟N ~85`o08zzi/.[{P"ܓKK ȁ)M!}a,(h^bgT_x{q)DaoBT4'WFAKfZވ̺\p]{닧JKe**?sPD-˟ugmFME-}mKtݫ؎΁n7o= +{ /@? J ؏z~$Os9=}s&w6w|B䥸s+~_\l׍on"ߖvwǿM_ U D +2-&6Øa YNL(%#,Vk 3*G g >70^_><@QkbJ$, w\uD65eI(H2HKJee;J\ / УX줢 +W]TkS/?nyB@K׬] =I1!$?P9+F'М$埈s aN_bg8SaKbmk`/lvp:&ғIFGh HCH'8+y ;89E,{P8[R^4V< +Kxl qQW2:HG +r;A;bjJ +߹/3?z(HjU4r6\ttL(ӧ!è^+!d Eeo_87}/tg}KLsurc.p eӎ`qt 3,#|Zh80I5]^K= ǜ;yyC1TxA6G6zW[h +><1]^~|h hO#PT +>$P@%hیoK/{W4yw8 f8e D*RBy;`nQtVy:_@ϨgaJ.?c}z5M7D>XP j2{89 +O +#/a^#.y?FPgq?:K1b4wߘUuF]WqP&:=9ݵ`ez}1mޒpd7lY1-uCrjz19"z/ +2 caZnpHu| +zP1iDhTL.YeP]G&G,,` ]` Aѡ-/s">BUuF.{T}ؗ) N!"GB;dl߅[LpـnF9 ZXcL8xէeW[o@ē1VL-#C&k*K&vV,*p$i;Rxټ_PG?+\ʽMbL6))r>=@x5*fv]^Zduz]X?P41p 9Q~*^ *,0#%8b;Q'p*$LEf"޵wǕSC戽Hah :-"dk>uy7C/)d%x`'qyo SY "&]#6؂5;4uWy +tk/ G &0,#Bv"R9 59oQm@;/D5RIP+-GM#º'uhAt0";=kմ?{-We_]ډ[jA )H>Au%W#Ժ>D.ٜJA1~ S̕V asUB +䪪/j)+68˼=wpmbnv\ߝtGOx;`uKJ ̄wAߕx~Ϟl.ɂQ!h0RȥjEGlsܦ5# J58/G V//"N1J;mh`$?,Wq$L$0lJVzq+ĬЈAaix!dpTP/H_ zZYs-dqN +U)$Yǭ, H -Ϻg,7xeIHh6 <{*M@+{ Pw/fID. O-Me̙mu+M­y!@*D> Ox0LA % v[Flrt@q+ /4r +X8Dm*Q/ZB\@a8~r;E=,7!oM2D[..Reړ7tA};GbsWh q2A];%mi"+g=Uf*l3xݲ?I a~ /&.u +궥 +>'ggUi AN?oO%),z~U޶ 3^Gj)ȀZMۂFiPnQY#TVtgSVD^O˿:JOg+SMnveKlou"̋'gøSzّ[ oIpkк½+/eM=Pm4?EAO =Ф>˭=@tVw {[u)jW>'jcJ|e57R1a7/zu c\V˞ Bb-C~}5ְGU*Z$SmƩૌL "CƼ+g~>dwE͢B`Ѥ*]vQ)TTڒWЬ~E0!U~Jqb `,<7q |?ķz\w5)r-C#n[-V 1/ceSˤpm^/hOC0eծXd#GQ(HJ3`7޼yofq-Eߦ~_ڎOZKW>(C8(8>=%šЦx>ǝ/@'3EHeʹb#ӓ"=ݯQMcOu䅂A~d+ʡ^yk2͈pRtzdswB8u9]7}CꫲQ] )>^6&$Gk{«C\L`ȣnggw +;.ˊr_/C:x)P]aΥ:媀B3-⊗cpcـ=#ӗ=Z"#j%"b7KJːйcle/_>‡*E7@+V6ŸnvQGM]wTnG<2 !_,>P蓧VwN5[,*tgGvR20B'džɫ+ tGj x1jMTn"AKFoUkoȱ*h$e1%#*54N nRΝ7ⶂĎ +V"8%{4G(ȫ*d+~?ɟt#gG9w[wߺ4ݑĈvOrb4鴶ר=yR:p(bHY-Ƞ$D~)5a:GXmr ]c^vzKS8=UĊ3c7o1UNϹu!8EGpҮ69 Esu|?Wx5ɻ3FI a ~۸ߕ +TCY bY#thG:tW5-BG^pw+.xZ t#4r uI_o$郅t/*-]V:SI#< +BqEd_07Ɉp0 e,%(IkLgu=Xin## Ί9W"o;!t%-Izx`to[!֦Z?Q,YjwgW tCOTmW}9Ӓ B$pqL?5LRDH|]gpOhz셠kJ$ۨ +sOk|8C "rզqc (:/k~%Dj[ihH5nߛ-787_A%V"RjxwڶᎣͿ3"汬6EVÄA'X*{G~GZVAZv}&(lݽ6$>Yԟn-ZT3(( D;峰&pۜ :J2gkSIJ}']V +WC;KX_="ŸXʰ #ލ=Omp(e{K  nK 溞b@mfl_#va^Xw4"f0aAҰUҷ`,."4*kĔQ~$pwf k33vRIܞ =|߬oS-KmaRf@8(M_!^3<.ẂXש?{غΏ{h*0I 8G.6hy MBYnW"v vhZn?lL,6XS(i)IfړH|E8Mۀ])>ZɿݳzK=IǴAK)jT|~/|x7L |{R.YXv /hiqM:=cMYCgHZrqqeNfFz.R&)φ,+.Obp.5^W۸&P4^?7H~(+Pjřv$JӇi|zK:mS`Rץ~q1Zo8#π)Ɂg.<}CL(pd,KWJKJo>v܂1%~#6ÜGyuQ`|ƿopCćKc˴WbJ>5&0"J⛰)nÈij||bocv勒WJ=h0Ρ=("hhψБ{oj{;cFVPDJht"=ލ:0"ݜ6׉20}{bnbVEJҒN=~80="ZӋ2z&njub2~U/^IEz=F0fJ"5ƗƄˇ¨zqťm +aUIrÚ=! 0KN"𚙓0qq(ynmi]a PU>?IG<բ038|"5|;"yh!lYf`TڧHϦݤ<30ŝ)#ae^ڼxภl`ST_'HF<{ڤ0iN#({-~~r}f}Z}OGD~ C~7H+)Ѥ݁j~n +rI;fS炜ZKO^?Cm]7{‚+EܣՄ'd+т~@( rf"Zv&NܶCG67^4+(>0N?~/m r7if+ZegN͵ҊC:Y;7R5*g^W΃}̪qwen"Z/NPCF7>n*H2HSՃU}qhʙfe{/Yڹ=NZWBђF7#I*Ɛ3D.r݃},kq;e-,3YVNB'E7 *Xxi<|pķ]dྠZYHMmB}6S+ffOBT;|rp8dX0M@Bp#6񧴜+™@ |r|`p;˯dNSXMpEBPg~6-+- <{$*6aWm: ;^h(zUfb 3`7)GH$I܊賏[:.mjrupTFgʛQ_:= e4V}C?1]@8l^|Eb?,Υkz, +00X m[<?bPAߩ,C] IGe_ ߠ .1^IxO/'`c R.1B8- 梛x*g;ԗ~KtCP^W.T +Dw2EkH|0`W*q"]|P&XbĀC\1=.kCլĊIUl(ha^ȊKJmXpq}P9Vaâo^Q#ŜdD@@φPފ YAɈ~joJ V@ZK.9@Ya΃d˷glĝsg5Ņh7\ |[X̑BAa#7qb̔+z *&3(Vcҗ.' +&1O%D'M DzFHq K0;J5 7GdQX"/! C\8"wv%>+>r'ф1N[Mƿɢuo✔b/HRl+W|[{ṕ)LvŝiC؋pׯ—g߬ +1+KL!Ԙ@|m#>`V(S<{;PXVK~JxY'VV}b{7anWT4[ ҿ\݈lbR%oNCl:^sZEѯZQ-33*HqB6Jwhgڛ:gդ73s=?Wѐ*vn):AНy=liC4X Qע.273ghgq4WZܜtm|>x xRr!P s{P"_PŠyW;f3x^CSW) ((\< 25;} y$RrF|_*@uN$-'?hp +08^`lw`Yll`ײ/lp q28u{lbۇ̝9M;]w[c]|B[v4hL̫%B"HPgp"?es1c\cekE +B7)*ѧ7{>ĭGulk(67aRܶcS|}<()2L/ΤX.`sk$Z<%S0aF~l7'y i^2N@HS&xpyRF}Nք5Qd-!c%٘$cL# + Zx..m}1K橤ybI֜%sSBqrMї8mr0)YͳRܹB wWX8Je3)}U[ )WO{eTS pJJyςG5ꪲ5\E2zP$\ +YFtQwd^Nk+J*6VDy[JB~3{?=cƌifhEJcpn|\VtP rfW,ծB;?Cq9eXc8ß+͋ǚSO붅R.s+ƀ}tຎͰ՝W7۔Av+dol6\9)<:`Z2^M{ר8vWA1it}+4~iD?Q)pC63:>lm~8Q=ӌ*`{3~|wT7Q@AX-Re1CYTL/&Na%づ!o<.ΆD@hLX!V[0|rrɳ$ `M[q>/C +1wEtHt8Eu%UTTl^*!%U,kF܂0!wi %"I(s\׿knu6F rH( &U1?OP|vINI"(* b خ0'kMԸRO3 +KyشvYV:^tFƔ.{od%;V:6C&1nG(y%^eOacD=4ONi6썂; ˭L`f7Qk{2f7PI"ăW(^\ $b1S.%.F6;oAAj[ T>f+(n_I߉^ʻǫbȌ[nq 13ߏBb7C Ӂ|S綵<*/У%ڋDrܱo|RהulsUZ_fת@^uP6T)#:ςlama$Hl^z'1`XPҺ}*%]ibd9&e@՗}@v^HdnKn( +̖{]1;R ;e#ZT"?hpiK Bzޒf1zlRIP<΅R1bm],2;%E7THM>+aOέbw?R HGQK+6f[ev&ŧj|xR4X%kZ% Nhr  HzOޢ[WJk2V\^Jpsκ[GFH'3Yb}O. =דgM!.grWsG @d+Mw8|oA8a +6'GCg5ɇE-h-;^)(pdϔPY u_Te.#!S*0zo#,,~vï:9wՔsU CKWWP)PbE8ʊ w_{zr_ YY{X~ */? 9e!+s<>&.F6һL1jX:U*$ION{y/Yf?ֳb fRowgJ[9T ܹ,$~Z͠I3!MZ)%rKi&yNl!쟢#" ы? p{1(n?%#T3Bym#la ߼oÌW$e-meҡrlwũ ߏ`n9q#l#O#&&ELI +*&/x }vuL7 Z +ڡ>k$G-)1="Y_w: j˱LiYm! ;ʀ}bZFr'^;hͰYնg0hE6AL%eO%wAݞa?UBW24a:Qc᪜~yʦ/ dWm_Z!ÿlq* MlX[͔+l;):|UKeo3W # +)ln>fĆ3 _yL3̀yVii߇k4[p+Z~ɮNW +WB~l^Q%¸k=LzbBw -lƯ* +BD+R7[T*Pu2Gn.(+QO^K#6`.m@6?e÷ Yk7|RO;1KKCXo }Ic?bVx*r7k23{7}M ;=3˚P1YldHv^Jg1͘܇L>Lۡ=mz!b= ,;1) ,%=3|~XEq1o[9^iUSlwzXRkTNP'JeR@݌1p4@ٕK\Ƽ42i|S`D7n.\|"Pm4QX!:# 9Qqb.'$g/jj)?cNF=R%ȟ5TC"/A%Ԡ̟uVmvMI@V#Gxt%CG:T5ɻ5?I'Lwn|ͱ |!\d-CWnd l[ ujoT^6ݖDJ(?X`yt+`˃c8Be^bUvRs-ga>ru{?VK3(r[ܓ|%_#|F|=Iާi m߈0l108 1"+9L(h_UK4wFw#ˏqyZ)vԨ +"kSͲE~fy,pN<<6 eݽXYۻm-; ujp]ɥcRd94M8HjhpMq:)ޞ=3U޶ 5Oq}Ri'!.gEWOL::Le˾FMq.3J\%|G/)^yS +7%Tw#UUCs0}* ڇ(jWA,ӘTR r`]Crz5_VYA9?uayK$mZiin%44Q5Zq%!'Jj$;tр +a,ߛp,=Dշ{nk>Rg,*CcL57iRXZ#EoP ?ҶC_=~vǹ{*N6uW2'{R_irUR(5kx;$d#D^vS:2r[i<WΩ텇wƬw.n4]hlt9/ъx‘;vjjG)Df{׵'8yGWm~MSE"70]˝4Oڑ5|j/@@t'("2h8@$$j$pX]md%WO, 1{O?mShʌ#e3# ($NxX{OZlߢ@Ñ"G\t!nTӺ1~Z%I9zBu-r]f@&\Y˥%RMN:g@W2ݚ $cMSBԶ(~glqIeY8 +LԠ?2o$?9a s}DZ4qlse -X"Lk-?pr2i@$~Ó2Mʉii}ppʬdsƝX3K?P20l,$i|d%|_^pc˧jWSKS>񛎛P1$Nݎ/M,{oi{c6WK>112$6+ X;݉ӅQ8c{ anBzbݮVVJ>W1F$"ӘnD qo3nw9wQwkax_[y)SfVyGqz:{-|}Kŀ`}vػ}j}^~S{~kG%~:k-Ǡ%𑙂GmvEjs`^< RFߨ7:-i Zk/J恌\u9i$^;qRr凋Fp:V>-Y'q4ᐹu;iwrO]ɯR1#FQP:-kBQɘj``t¹Qhⓧ]H$QEp9ݡَr-L I'ar+tLhe\ٮQ=E9D@-2Fg X}F֌r^s˸hf\f$P٩EZ9pO- *7+~s>g[魱APnE97<,- %Yr[~e°Frcg2[{OPD9О,曹 ,ٕ{o$}߼lXrHf["tOĨWsDƦ8ܟx,ԛ\ 2r0ۊwDxlGŬy`*yYUyJz?h{3׫|p't}t~ S%? 8w>~lĭ~`/~~U~Jb~?KQ3Ū'iĢ Ђ?w;8kð:`r:UZLJJ.?873u't⡤ 읠8 ڂv>ks°`4>U>*J<χ?1H3 'C ,aIvsk'ޏp_hU%J ?R3'ģ%U x͏vk͖j6_TmI۬E3R'ˢ׎7Y [Hv B|j/_b$TaΖI>r43u8'ТTꎾ9f#-u¢CjU _T7IC>ԗZ3c%'ڡm#% niu`Gj/^к kS̴Ih>\>3Vc'ǖmH̗ЊXՃuҮi*^S$HѮ碟>:C3Kޝ +':Ғ1)Xtjwi|Ȱ^T5=SV,H?>V3Bs(Ț1V6IȋybtPyuz_v֯zwA{}6xBxvPŬ gcn +7N\VYgM`TfM~o1*:hgKxD:ppqR /Gx-5-Ӡ`_ol ts&+s0K2'AkO* +7UdAjD-Q&!Q B \ 3h(;l 0weX{!i)5$uۙ.mD&WdXQ6l44+\e8\SaOƞ*˞!}S|ILJ\ +h8񜴸x$<~PZ?wJQԔ5 FvS:r]P"6(F^]Se >:1*ٛ>LUh\W-[VLIkIHl t0,x Ԝwe\q$**&6(w$׮|~<NDYo@cuh"hA(w3$ϛvY?qz;*܁ˋ ͔o\/׸, %)gaNh{N*/P0v(= +0?ER.ocqE-輏'l$m'X +<۝|!b_7sD]&1b+r'"ؔ\ާ7-rܕbMxswq >"5OE"ϞGG2/#w5m_QwRrRq<$W`K(ABc>%%D 0oD`D :P˝nYE5e۹+F2Wͪy"9u/pQF$'ߕ>r3&=70N@9 +mUQ)!..U[_ +?KFJ4GĹÄY$ܐ''\]fG63IAv_mfax"C%k4BbT4TՂ"k<\{dq s7/d4V +{lhxZ]b[~=ifig 5Fb(ק9;O٧ViGGX_}n]wӸik6f:,p,@бkbmuFR!s37:!?`CW֧&`':gUDtx4DLؠ²CKh#NLoosR +mRҦUa9B6c.oo18g JVnv[[mFGvzB+J02Nhļɍr/ 䜲Cy5(raDlGx~H?I.ȩ GH;A!A0sARxJ8*ۛD[Ѯ~b +W.Q{!n(1_9W'IlCw'Cp^~u% ^pV& > Mфy6_E%.xA01݇"QC͈ZK+gD2sϑKtOt z nf9 ?Md$n|c-G\zx 1~F;ĚBtB":E&'>"3$vAPrfm#t&pJN866n^yOOMZ,z~ Py$;l*|\7󱇭 ؒvߪUDl?ᐺ,"uy )mܞhqS:wdREZk4cS>nW=kvKPmGYpfo&]*YV.#^LCxTrz )s=\||V+w]mԇZc&r~2fAcS_ he)>t*qQt`1x w֏+I۾:hYK *9I|8Yk^nT| uڿkVܥCA$r*S$s,ౝ+z`;mP걢dbP% @]6 +UUu +nIR:^ar]J& :þҝm)%қFҚp} 2e d';(MdFڶk ]*HДPPCjߙ m> wE2j샽/;Έ?* ,oqS6wniZMfOdI&~Ej*tcHV=֗7<Lk2XF]E=m,6rU蹲P/WSEFlPyzS8Q:/~`~kLS 0RߪnFS+d@wQlf6Vkd`j⻪5)0T5 8+F9yᲹl( ܺ),,&L@!A~VSHIe"3o%4*%yV "_;Sa8iqk¦&m&*F^XbBϓ.$%_d nC^36^$LI|yIB 3Uu ê+z;EQ^}NW%'%3mD35+۞AFI#7'_1m 1˚wEkG eZaV7Uͅf5‚"m/)euw"FYwI׵Xq [8f2n88EOfQk:sXpcuʒ@}5u ?TUf݅]m[-S]Лc<"_.×z;,^Aɝwp36 +i‡WRj|pI%(E:"L{+:eȾgdOژ9ؔgF:fՓ ԙdb:JJ[pdR"QfQPgeGE}bOSZ p0Jd9 ܽIrpGm]$h$0Åzm㍝|Si aYvq%ҞY[iS= z D>x̢L# dsV6S'ɷb]T%/y%7[]X%iLjj#]W=f&0]h=0yx\P ؋ǯ]uG_i?M^.ZRbG*I;Ҙh.}h!BQ0bPEYBtZi+m]xR)^FПf:s.C?!%8^k gbztٱh]3YQǟbFc:y'.!ܖYi3s{Wrp?sBe t`Y|u]NZLvB@w6}x*@z1y{l <1}8${ +uxo﷑yӚRPg΂MyiniƊc]*,X;߉aMAI6:)phgz<όۂx葿mݴbʯeW9.L2A\58)ݛ?htz2uzv{'1wR{Qx|Mlx|X4y}PCzZ}-ez~ z~-qԃ s-t;£9u(iv1}wjwW5xByvl,y6ycpm9+qr󊦡s2t|uivVKw߅B!x,[yiyweoSRp3q𒩠sōt{wu,lhv2Unw&TAzw+xXxZԳntQ gXSТ(LRp*৥U +!!$$wߛ{C I0B{M ED[T~{QfiŌ=~\C¤P/P%`vָ)Y /Y4T?5hMsqjq+:m'E)̐/kby@}{DR39놑>cvvSDžƖM t?65)`o&Z]d?qF4۳}lA(h|}]f;+ʹ @갋.+'n&oA\!R\;u"Q<7!ia2Sp>&ΠڴA2NPKGU;PomBp: oBv:khC8|Zp@_+nPy_@iiyi1&o)y -wSuP$-_gK?fBX/zQ է+v [+Џ3(-]tY!(y e辬9h ro/r%shxu/cP}O:kՏ@9`Ys3Crz 'Xk޸?i1GF)eDK;hز_6AЧ;rl%ۙ:$QFVwp04sf8) w|1-R͓ykx ELуCSL]*R)p̜:Rیh_<.9]QqAJKAmao:Bv/20%!;9)L͓ka{&(}{9lI:RV*҅VG܁`@*a/&]-ad{K͔5-O oۄs kgNO^˟J5YQhl:/=y%qNXD2D^Z@:3sz0ow=+,b{/. R0q 3NyG.:d*K%4U=أ9Wu"gb{3Umg5 g}xFO]RqޗŲfv5gW]eWC;SpFbHy flO0: W띀q\~#?RҤwPw@TzښY0ldӮ㣖e: s/:!g1!w<<>`Eսºshsj-AgAZB#J>ݍmȨtwXTa))A? +wGPXkm +_BIѨ+ ڣ㞠t7tj}7Deߣo]3%j%Hn- E/GXr#3,+b=?^'NC%}Uss6p)n2|0%wiC^0mo#703:|ܞ+¤ sW +TmJocz}a Ҽ؈ WǖSKl$t_@*CTV z7vdr]&4DiOQi lp;#K}&B׉/4"a$+08Mh~TRiu+a2&dg}y j`D/%@3J`<[rO@ojƛiCA F-y\H4tj Ys~T:eK3 +xJкDg&vhh\ +6+5DľGѺHs͉}dU3 ͫV>2  + ]-jxP$#LmNܫyZ44CDcXj66DgmZHSd}Wlɾ[oy@nę&)Ι;-~(.xrZG`znr YoB)`cТzٶmixC,WSeH)5ڗ>B>dS#YZ퐉FyQ R!,-j"~jo**e; +I`h]<nVD¤Hb,q(Ȕ4ZcGP=sQpv/R0!pxe_l&!?F%GNw33䊘""=XC7Βq/߉)˗M9h;F奢.qY8$I-BD/ĵ#L(>f+oZˎL;T +O'{XzE|H>PcU)'ItJ&}>wͧ3dQ%{z ;-'L5CXj>^!#ͪIWhMsfZC&9 +3WʏeL)!acE2'(h*A)?+f7GHtcfի-(U+bІ]Qx[Beb; \h3J0 DMM;Q[9Ԙ8L*fd@kR9rLDg5ٍBuJCa&NOlٯAM :m!vİ̞;('y *1\_M +UH1("D H٠hdC fܛABf"S"Y EQ˧ҴFTɍ +Ϧmߔq;K/G(:'ܷb^# jQtkA}R*SY<~522]t%/pN+t֬ Nh*{]YqxJ<+KKG/4x1%vJ1aKtׄ\&I0GIW)O1)}+% rD"Pc@?CNM_^(6ڔLAʯȿo>-}r7"w:()2I1_vZ4^u)j'6kV6V, Vb# ?/;̱;o5g:nĬ7},4mG6_n) yҰ_2l(󊞎hs`L]x7z.թQһޜ첱nEͣc:6ԥ4ݨ`j(a֍4kɪRM]Լe+-[Zb_Hq6Zن:2+}Ec]ZH&:LQОkdèi_V.36$o^ϰQ-E4<7*,+}3a$}r RHjgKV\zRffmÉl@$]{%qf,h`=Zo:5snX5~ ą(J||5v hGa};WO{p S*8"7xD"U+7euIR +wejwtpO1Yt37z h3HjYh+0`ҕ#ݶb?&ZQ~ )TKty ɘ1r)G^T>Q0ON\PP+8\6zQ-*Ze^Pxe +dP&ub~JY!Y/!]1h>@jVuF'lqV螩m1:UH≢8QEvWb\#ˡyNſ'\u/H$wuψ +MxoI&v}!&yh嫎\0txcL0UA6,*ilȔntmTiy+n^֯pLTqIG#s>jt2١2v&&Xw+Ix +̙+{Sޏ;~sRsi +t^yuSvHw>-xx2!y&.z_| 7~irzhz^{S[{H|=u|2}|&~NE hw GrW?gÀc]{RπHR=l2h=&j BP!qƴ%rgk݆*]ŅRztG77=_285&w3%ח :.q=Z\f߯ \wQ=7G= ׉2z&ff P!9pKfU>\r"QG,<ş:1՛׌t&W-  Œ yhYp,Leέ[_Q' FϢSu<{L1C`&A/; 5Èo}beHq[\P}FkǗQ<*#1g& ; un4dʬZnPM@FOQ;❰12D&Y <Ո6nk̫0d\Z;OE̠b;R1䛨%ꖞr TS_Ahnn^xo{TYcpJWq@WsP6OZt+v[ >?wy9|@%hz=tq^\uTI6uJHv@Niw6N;x+Yy j{$\|h=1~LW4h9zd^%szTzJ*{Z@S׀.IxB@%y6;+Ĥ7  +Z5x+!KVӘЍ ++B eq~[8RtH^ 6>ͧȚ5R*+p!$ +ɑK<ł0e9P[}Q-H.>R254$+a_!8F +feh`Nrj3.s%l5Vt#n#bu oJuqzvs[gzwtTaxv@vyww*yxfzyoѾotK*puH|r/v@sPw0thx"xuzyfPvyS_wz?xd{* x|fy|`m~o#~"p~8q~_Is~wt6~ewfI)wNgxE|k݇%mêo +gpqlqńvPsjd:tRQuu>Dv}))vgẃ~j +OlJrmo^pƋQu!r$c9svPt=u(v'w8i^kdminsx(tOgu@jgyiikȒl 8ԉp"GV_lRȑ!R1>f13fc3B}]ښX߯6ax4Ḫձ쵺9U[sKmyS GP mWlDk#XLꎇ }qK/cH+Mg53Y;+' 2rcz(NwV@87S߾kRn4M5> 6d\t"gE7scLìyCQte;Cop1\mFM9ky+@$z FJ(lSʐߑ44l1/W1cVģz&yOqu]&ЉO(aKv\qX!0͡#,WٖM + r]S~³Km#jc=Bf3>"d',EodbU})XO%yڪ!J@U~e ѼvӋ@qnM!{ n3۲c iwuCcS:dZ7;Kw%7@ks5N'A̝ra{;N93&`qhJۭSיά׺#420$j9CJ9gVK0+H`&~=s* Da%ZCC B l#n#Wϑ+Kd0y WĠFy怙V\0FjLMa o ".3y;XJēj3?$&LmB[Bzth1Cӑ|MƸkXm4LP3Gq!pbM-ܾtw$!2fFz$(b_n-zz1脝[Xdaz=YnQyKU?؎Z'c+U܋]ʅ3QC~"tN~R184֭5Bک+HR.MJ0Q ,; +=PmhbaOZG|mXs̩^4 >?@Uzڽ'a8,Y oۃ<)P [i H60?[^&=NBG 'i]a# +@LA5&i6u3QsN=g6P`f+]i@'RG@=`eU~Qa!:ǶWK_5PK)P>-hΎ7Tհ\W9'i6["%ӡvȘY) +IN0aI !5t9#$1$g]0d 8.{t7MO "nmaa1%T*CJPyj^^ln+T,@ :b̴S6,Ik0JA\,H!̭\R(`H:.pqIx5ͯkR|=m;WRq|)Yf+1~M"%gz6[*eF_gN>OEm{Qy%yI)/O"mr#yBAԐJ#ӖQz9Gz!dA[~2di"nw^XO(Y /"%gbJ'GXmlz@EIDz^9sޯ9̫166j?ǫ֢e,]wrUX>>%{|K@); 4jw@QOZO'8ey`2:<@}]bQ_fy֓hе>"!R Ycݚn0R}˶5\?fU$ 0FuR(` y>| \c]m4ӫ {RiB:okd"*> ~QuIP.|u7 d%T_bB=ֻI<~E=cn~ѣ#ߪ'l͞5u S[ 7\pBEbQL^:l +RV&yrQ՟2G4&sNwԶ3+Ji}/jZx,"d{~yGRX;w)G="q{,xں?U>)!崸tU3Dz.#>8DÁεǰ`G  5T<8 5tvnk0'#O<2PwndO(aY2~ ,⫈o0"fwqrMnHDKC BP.U%XdBfЁ0):}`8M{ğE[KHC沱K_Õ0A#^Z}G>lK0zAK؁7{"LA[ +CA# -nrf,lp%ǜ(l0yL@-yDS~-~e +S4c^z +]5Y&p^G6 +tk +΋@ qѶN6I`a?bꢗ `Pl{i0>#xz)FXہvgڮPxKkn Y^㫳3\~qUv*mI{RXj;,&9N\FD Dwx#YvZ򚹠NۙW)+(YCv:+4CYM,ٸrNF"I~y?)LZiI|`N]{ɿ;fHw2IİeL{Kx`*Q }7c}*72`Sٔ# (%,FS>?cu0 !.VvjnEe6f_^uUM~j~@∋j&}TX/jkB_yzn/a2=ȁ#v u({X/CߘGs ;9!猬/~u읪O8YeIqKLoRQӴfKK.ADcgT4X}nzQ+i=˸BXK}6T {e) rtv}I o.-p`-\񪰸YxM78WmM' :{*p^ʆ8_׾@u+dIWЧ-CRy:((f{3/ X']5ex%] +~%^ At "X]-ig48|GҴ 3" _pd=DSFEK T)[d/JsI.].K.,T *VWgŭu<9>GIy1iAH"M Pq n_}^1E:c:hڶ~*}kK2g%d_o: ~_/l9PKo:~Ty(mmaWHЫͳ/stMDxI,LQ5 SMzt)$"`rSh +K qr#D O[5}yH4&{zEk&Rkd)Y%V2@q3(9w1>h?h FFf &R#`T>e 7kv1ЊȬZ5mMӣЙC^(Vϗ~Z՞Iͼi:XjXG|(=EY6{T 5aȭ@<_P56{>HZV)r}{)owYWc\i#m5Zݑ4ӉUau +XQU<]-}!e \NfQ,u,.|O|f~\Z? έA }sy%*_I)ο`ߞ6_ҷ;I\la Ch)Ha{~ T' 3zIgKw{5czֺUw: bĀvX~fծrCi ˳?qLr(|# +/[cW}BwsZk>KcYpڸ?fr+"4'90Q&OVt\q]s_x>[2Tލ (Z_kN4 +LEF)"bv׸ۊ<.|ԲBT?X  hLcԀ ci.W$-lBB5 +_ƭ$SYo^,^rhT (ʥ )4gɒ?s"z`Gyو=\ϣ_RHO Oq|<  +6J rU>{E10Ipe6V DOy! + +ldRp*<s-qwTGJ*_Y$,';b,^vO'χjtZJԡ' c;l?o7t=-~Ԯui87uԕX.W涐h'y` Syn?wdT [{/\߻یל,yĐBs S-\r77dho߁Ua[ancOIw]}Yf#Z  ZBLmDCᖧnnGrν79 +Ep/dtu]9 _]l .}oz"{D| {~׋lajͯ{a{W%|%M,|C$j}9-}.VM~S"  ڒfJj*H`l`VqLŁvB x8ǝ8.+V"΂ƃ6 +/1(i2_VJLE0Bc8~u-"ٔ' +{ jh_`-RUKJB=8>ˉ-ؘ܉p"ۖ1vވ + <kсhcH^ۨU>K~Ab7--:K"ɕ  +.d!g뫮^Y}TO"KA]“t7]-q" ^ g|g[]٧Z9TLěJlA 8S7g-> g"W Ŏ .fê&]cSTJ]@Ŝȝ57/R-"q蔻H D=F7a_iGW¸RjN56l?D9m;EQo1qz'@sEwtbxvјz~a-oGWpANqUDr;3 +s1KuY'vxLϞyX |`ܹu)WQuMױvpDuwG;x<1 yG'zj柤{/;}ϕ![`oN{VM{QMY{D9x|":쨖|1}`'U~Z~9nK3`MVBMCICm:1c'<72lؚ3~_efVLZLcCJ:/1`Ӆ4'Sb[0(qtU!ɀ_gVL@Cyɉ:Y;1D'zQlqJ x_uU/LrڏC=#:(0l1#]'ό&ˆA0^UgxL&B@9s0/'uÎ˖H[[^YTUXKjBç9£Ζ0Ӡ}'y +5,~^BTѮŠKߞBl9I0'i6f *!^ȁ ne og +pirl(s7n;sGt\pBa|ur0O-vt<wu&xv ywxƹk^nmpx2nq;psQ+qxtrru`ctw+NHgŠ;i؉Ck\/m^no ]~pKr<9vsI%Jsuւtd6wfxhҐCjP}l{mn8W\oފK%q\8rN%rUWu'3cA.e#g蘟 iՖL|klm}[o.Jp8q$r1tb}d壉glif{jklҗ[nIp^85qJ +$q@t2ua߯媧d@fx\hozjX)jl2ZjmSI|o'7pN$qDsfaDceWgziͧj)kYmkIn7p;$}psN/`Jc0EeyO:gnoyii[ik8Y^l@Hn7fo՜u$ep&+sAt1dK#uf2ui`vk}wAmm wo[xqJ <ԉ]*DmW-9:E"%f}` rXJVwmzm,j[Q^KٍHG(َE4kXׁgJ./ w$턔@OxP +y9VlxZk|][$HC?nW3^#4#`'-q%;Q/خf̛`ƭrw O'erϩutKeJ4@x!@/I_!; y@8,Z=lKzQ{T/!G=Jl-x A 3F6rpJǚ;jhi-+ +4OyUVX=oRNwPFV<m1*GP<,yyfC%T/QyM&_Y88$ 8Rt8 +l/E@Cૺx+6]0Bl)q +kd "Ym?7hk$"P!(0 ,V ohJH}nJޣDY"?ޔU=a-\Zq`8g9f\ +Y|7j) +[ݤ^UtsNo׬!(rZ7C5y'gϫA;?JݎBņȐzc*K?]3'7(;\ޮ4*|KNsB!+| pF`OWp"+&ނhĤ=- {/5&2=(yA+=?9SJ} t*DlBU(ѵv"9s>y1zȭV!eQ6_T~7FD]Cw[k>D3 |LEH-'P8YOz2j = ^ u)>QJ$$~=Q Dp7!aa΄E?Z6n;u95~VT^>) +x\q})Q*flfwD,*'}=?BuppQF~)GOFWW/h4^֪͡kUj\uEʌmd_? +ʞouQ) E) Rp!%~^݀mlD+sbW4M +I"Tq`h孁;2-"1̄G ?XxAs~=pQN5F +T-Qjau!MPNi.? B+SO a_BL~nhw%G~y]wJB`E} oe7c[_j$'(߇ |6lTB򴽉6AX+aO.-P5醲=DMHPo5r1O+qkխfIRzjY).A[6FW|{./]Lm lcŻې/13p9紸9.Ï4F>Kع[Gi9—5XkhvY_݃ͩfs?% ixy@v '}̓7ŴG>yC_A^9zM4̠ug(.'z Oӡ }LՔFFO3^3iIfW +ENֆ\$,K*䙊,rBV.ܠeXyIiw[8Z'Uqhc%(>5$ܑj2\gvi,8ɂԂ;^ q8 +N(7O`AlYʿ3WGvRF wy&]=B)+D_7:zrzC%?*!SfS[x?j(S:PKѭt*tV{>9}ޣMJh 5ڙ" +)dfe$)eǵ5ߜJ \iC &)֬ Gb^QQCBe@|%xD2,Z*첄ɳMI}{Hϳ^k +:%(ʩ$?'펠dIW;Fs/K->#n\J5d["tY`L-UӮx["!.vψoKh++쭼 'VxhU]'V'7 |IJl!ԍ. ~;pcn +kT!8+G6|| {H+ƌ+h(4f[  Gg`W': h?|&b(~Rݘ!|_nCRעGL$ EJqtʽL:#sZD,QREIpY͊ŴX.ϰ),vUO_Q ǁ, &˵ +0kěY +0/J}+^,"8xd@1;t$6c-IC S~1L +%d57SE;g65N|v#e!!YH/(~*!)h#j |xT"JJӆ)0nGya OY9^`%*$'LTgw@!!a=>>j>mPbػnX!mSY%#C!ﵼ='4Ut|KaO+aWc%^^[^=3lXqv[^dVo{P fܮ=2spӏ7Bl{B +:ط3&N_=@ 9ˑlW>` =Fx8*>zL[`㛻ͱ%(U;hn頑̯ϛ'@5[\#/N^>-a#J-P +mW +ͲXY}^%=<\7yE0jw\XzZU͈޻g7{BmTtnj U5'_%_hI*OWVωsCU%oT_`-Id$,$5~u>UVjKDj2*u}? +MTC.aB.3j:@c~h$:䧒.u^H^*GAf5\џ] U-Lpt]TцPcY@V%/S%1z$f!h)ȥ,g$:b,6Ь5ex]>9R 'I*krG]ȴP$菜)LZ͈|s-hxVQWtTӧ'1uܭ}[3,n YYшXfU| qȌ5sg;\_Q=oqEI:GW-qU& _` "x{8pfj["PE֗9Ӗ-۔7ރڐ肇nMvz`'pCQe +D[;PCKE.x9Uu,ڄx|njozycp,%eregZiOel&DnX7ɑpY*r1fs u{Dy|io=ikdzC +9\ݔ.ޓ#܌iB  fhS_dU+LnȜB͒9qn.r9#ŏ` '2 +)eS}c\eRhHj&?0lB5Wnf*bphrC\s{w&}#di[XkR'm[H$n>ߠ;p5lr\*t6uw/z~Ud &oZqPQrHs>u 4ݜ"vX*uwFxKz:x} dcjuZIvQ swGx>"y4zl*Op{XOc|M=}]9<W;b| Yh|PV}G0z}=Ŝ}4O~*,]VCxGCbYpPf)Fʞ-=rH4v* v[H, aqXkO#FqÆ=*3ܘ0])𕮆X_oّ!؋pG`ٍgX)ȌO@ь2F|<ޚ93zn)͔#X f (`n!>WaNɟvEBt<3a͎)GOD4ۊr 5W:P_z.W1lN`tEYsרNx 6 x-<|y#z| G}3t&XQ{xP{GX|1>"|5ᣳ}A-&O}#ʝJ~r}<Xi`#5Z-W#ԜE(뙑eWق@4+X(4pOFܨ>.Fn5]-m#ݛcA8hdWծIO: F_=l5l,蝴R#ܚZ2 產9܆WpGN4?FSS=5<;,Ɯ퍐#Йƍ8DՋ <)WŖNvpF$>=˓@5v,A#Ù~P8LKVANDךEޥ=^.4,{#YTO +osP>j _kbӝmSewnhJ} p#jl{qm[|roZItAq~7u\si#ut Ixufihkjmlo]{n&qkForZsqStKIru6sw"t_w ewmxd's@ftEhuNEjv\zFl[wXj'n#xNYoy4HGqmz 6Arz"?s{ vk{a|adj|vf|h}1y +j}~il}Xn~ Gp4~D5q~i!q~U u~P`~Dbe,sg^wiyhkTWmnFo&59pz+!p tγ^}aR ֬:ڕPrXU6_Q8Z}^XpjCNd1dD @Hx*55{he5~,tUs;GyQF.9[YTʼn$fW`60|Di]FJ폌t;g\Ot*hx]/G$m#iZS;ڊ{s7K.>rv:܋¿zv ց h/1!y[D2j䛋 ~P4W?_Ia%lM wO ]mk~絬*Q5K_9]]V0c3KxVHK-/DP>H\/$iv",w ڬ(v ܳ76Ye4T" c.Ɂ\ 3[5]|ޢA +fL2`=t"C_P(2NW>K$ +Iy(¼=鏰5#Eli+qe#3^d]$ h7F2:c/۸# KBOq vJb;\VI; :O̤Ӥ`_ +Atp5X ]}=E-c&%k ~(N[঱) 4⧆x W@F6ȩٰuf#O~ W+ y_#Tw#B>(fbK%,rИ5yS02xbymbE##@ 4>-4zڅhx{]8)9lۜ{dX+$PV?V¸eexoz2u4y/o;I;,QjUO#?w1>5>S{)4\s(nfY' \[gv*!Ag6f˾NsN|r0q4Jby@Y}LN2M2G2+K7W <$?ъ0Gy+)~Ia/G<(z@K8;HҽYLIM )aQD*W3[Q'g4fp;&]It:\/&S1NbXsɣBߓ#A_3qnKnBp4E¦WعK%8\8{BOy$X1K!Cܦb b9!]?z_h8O.ȣmzL{8i H jE^ %g{2ekUsjOW W,X\5h[83] &ӧ~j"GmmnWi{^U_`LfF_~!q%>ߘu  "A6pGK1?noAV7nb֭J2wlk11`O'(S7JiO.v07U筂L,biHb ?D307!iX 4{/#R& soUAaW ^M;ēȋhmSNH>5VzgK'6J~.O]PCKCDkU-e' +TM3U$o;* -(oAnUqpsz?n 46ڝD%.C kXP$,P~ I)ldIN?Apc\\1k?6JCѩҩ9i)Ih_M͒'ږ6syuV*s_WaOUcJlt*! GcP,Iyi&Rae@(v\ RxBڕW/!GU,OdرAaV\ǨT0n|z E:G-X23nEOBQ`EH2ߊ8bc:t-= 0X(x6Ctca$CvnqOIl lO) DZ]%nbJx\>^O ~Z lV+Bܡ|߫8z~ܵ\_jՎxVGR?>4ցa?xN }g wFue>E'qʮvl"h(6xDQJ8PUd +/T$; +E1TIYA:H9>`'rd'G #0k6H,AE7e %a1% J"u|L8>b>_a~is[|3J e_*$6Rv{ݎ +|.'8= Ѹ)Î̥x{*\9RkD.25t{ʍoum xX%+0_NjEG7Ům}*V`JÖ2,fMsқE_g'ڷnejiRP GZ)E[Lёh_i"jeڿgm-&rG?j-< CNIUq-*lβEmS P""ϛMήӈhG#Gx\{"IaԤg@ry  #]3Ý HSGrDDD7]85/bEF"]PuI*2,[VAGBx͖;h/TZ><a(XdLg,hC~DW[޽j}2埶holpQITVE)\`MBU ^r"9vux: ɋ4W.Q26EpOhb۝{UȢ68dC]X=_v5oXk)aYAvKU`/IS9}Z=U4=h(݁{s07dZkNhm"}&\I&˭ !} v0V|bO&8>A 9Ѵ71iK]"]_@3W"CV}(s@pJvJc>a54.QS2ǜ(1#ZoZe]dWP_ֿIe^R-L!VgFz'j+~f]@fgy$#hw̦<{=IնS 9޷Ȯr>.~i-14%Q,{9&mP5&SS-\t94! l HˎrBSfӋV#aSL@Wb.{Qi\B;ыudqw0qecje* #3LMV* D4UA@e#CH `2_򒼑e(T-XQz=Qi-ZkUruz[-Bv )-|-=]󨌖d?PM;+{(h +ؓw8+x*ր!4Eǣ(ܨgè (1[ZBU/Bwߥ/ +h[t]<\,S +;H%JS ' aRWIzBr2ɑSads|b%P&Rdރ |NX9,DaB㬒;܆rKaH(_/DˆlYDzEFs<?;%-:m+ Kk)~xsnRB<Ÿry`^ye!d$_.\ +B>ق)p]4\RYNYenvV>2H5;qз=S$@ Ju"0@Gs j/fXfV!옫*մ /€,+ +]?TsdQ8i9CЦ1xWvWuZLOoeb0;\ hrC.LJM_OՌ5 NY@8oQ9Y7g:m]Řc pcMcu\Oi +h)%L۩Z<ËBMg˚pͣ1ZFx~|I=[BOIOPԧUAq6ڼEyio"Ebg7h04FnQ1b<IT?8=DCUr7? +sv2BԬ%F`w s0/Bw\CM0A& HԆ[p70NEӜ[" [2,2xKȈv@]uCE޷TzȓtST8{C2O%.x{)w95@j 6Pc@ N7a.% ֍.+:>XRP:UH(?˕7O.ȑo%[3ύ^D`S*7_&JapBc:%f1hu)j\m+;o: "Lr 㒐wPE}ReJfBeh9j1l( +npr Uu*Zy~R!jJK1l9BCm9UoB1[[p(trȜt7ěu 䗑xDÏ| QopIکqAr9ss1+u1(؝vxϛuwty 3{U<~WQnvIv:vAh]w99{x1ys(ɜzd{f2|} ~=} Q8{I:{A-.|g9 +W|0q}(›~4~s 3ڋxЀPH@'8X<0ϝy( s( -)PJH@*8a0( Ӕ, jl! UP1H^@{/8~fB0 (ъ  _FȀ/OťϐH &@=Us8N0cʎ|(~ L S`ËK Ï"|ЈvUPOdTGĢ[@ +8'ړX0E!(jk , pd:jkeZڣg^iCaLjdculg3eneiUplDqn3rq 5s0rw wtbdxdBfǒf]ihhk`tjemydlUo~Tn4qiCos52qDtqru qv.*rx +YrxwzRbu]Sdv:fwyhwkbjx]lyMnz\>Fp%{ -q]{-qR{w |ա3`~ b~1e~]xUg6~jJiJ~\kQ~M9m>=n4-fp3Dp)%u-cgfIYhQK WS`e)ꩈ X, (C-(8B {so !܈ WxĞj}V=u=p|?~JuՄ9ҊMnUMI)8eռ`y~~hcԏ.6vI6#e6W|]Agp-U&SMh[LӮ vuUnE![sK]iR:tP+gp6U~U/~(Cg=yhжsP"%/V%5}◄*q0Rœw0g3ƆoLD>>C|F^ 6oO WW.!$Ր OԯjSD-o!Z\))2ege.˟ 8PB$Ũh$v! + +fQojvlK|7%܃(.CDZaM\)>-́˧!ct (Z1n{sBsj*!-QU2!w\h?||s:#^.#LE)!56Fy.[%O:"m].^(-#9UdiҰxiGMF*]As nks!Yv-XsN8MU-ɉF-@k*uOէdB٬3VxeuP<4/۸X'ߘ&@\ٵm'FUpW?<]U4fˏ"VYղAkJ)n +K{vʯl1krȴDnʚS}n8)re]Նl*-QOdW*b@8~(M;H?e>amаcHlBy>ӡ/ʰ%iK:B/ߒI +};p"[՟z.Mfہ1vX˅\^0S}oe4FVZ~gZxe FaL ˮWܯMZ?Z[Xj~ـß++V!+*8X3 +syxhYSYhO>yi*6D `R}䪪p3=]rM>\ ^9#&ăOennfj)Ĩ4_Gg._'HBhwj7zЉ5T>)̵;*lSTmVlؚw +Ԟ64%O5:N '7Mu^.V~yG޵wBuh`4K%?#I>/%O +f c~՟%xoGP*/91KOGcjGc噉X0oNE +>X Jb'(%7^Rg#=X T@NKdAב!i0j-;2nLtO/o]eJl~?'{W x<}G:Eo-<e;Ѽ$Ϳ2H% W!'E~R'~cK2Lf nZlB''x j3i%y15Dȷ"@ 'c8~<F DWxwŇ0C\Tkq ̸ lbLst'FL<$&ec爗I՘=r_c>Cl)1^шnjK/׶PqB?]#-XkFϫ[ЃjϨ9Ruf";!8(ae E;˲Н]BSȨє(C HP +iw1#BmÌxhp;_dRJ I߰!_cΒ#Ղ*MWw[q#`~]\zii&Nw-;e-=aufKP;j WXuXs/zjՉ‹\57&Sj̵4 h3VRf(.wJgܺ5-\S ‚zt.1m͝_n|WX0R:rV4&DYovA^iTm &I5&`0dd(7FؔaXv[sG&?N}kb*7\}O愫V% þ>еK%J>=.w56]-8 +bsl u _7L^c"^hϥQ&RP=FeYs B1*Hյ!,^Xֈ6gv>hEs׷m}NWp:,g~a +gRQi"hū@>"iVV!dKAd2)Y酼8ʟ"/CgGdrǝ--D8cK(>5!LqU +r*d$("eu1Lj9YlhW ߣRUΗ4K !6=%5MQ&3 +s&$&H(QEf-1n%/ش‡i BnKL@h&>W&Ap[Z72(MIIҩl7l'i)3KhAwt-p]t"r"k;)%-[[_px޳:iqDG_LÎ̭q)?5u:gm/H "ϊU + +[Rb'3 )m{7Lm(l,!;k-X5;o)0w#+fk[ԑ<c6[^ h\@6Lzy: VZZQ0!V7߯-i7yOܓ|]lrcmY@x:I{sT3Uy9bWͱ\ȃ :|@Q*x%MnU͜ D ԕ{S˜8QU^{v[>o!za^5<zsr +/i DfhsSNF|QD1_-&AʘppL/lh2t3fQ{ 6 + RxW9)?§Xk%'_nXHG)_3p<Z i1TU<-t9K<TWRA2E  =[JW#ʼnPZw̗O{T[N: )8r.F!>2pĢS2-kBؖZ79=B)ZuRzt+Ey/Gب\rLiqZ-0  o^njCiFy=>2ҹ.Cv '[jxKuJ zTEz\qP]ټv|}%vOiG{l2FEYs7\"eJmA:}K:Al8ڲ65#feBZZޙ DNC@@ăLY+k'kwڬƮ)۲tl6Y{YSuY9[;ܤN iAEOX}]8E2ua<&"v'ĹIpL) +LWҞ3]LUiyZ _|pi#5M>AV@V! + s)lx +"hqblyR%I@SsbO(PIe+{HĊ&ӽ _[OBTF]|}ہEҷ-W 7O ^b:ޝ\TR]SJtæ|9د"cl 1V45.^z^t5{Z\6]͂pEZ[<-V;s{4%Ikp^?]ir{b pS/j8(@+Ԁ` Cr-L>Uduea;-(KOsaU3HEې#ce7gc?ݛ@fXO+ExF3ׯD+jT%nOgkGW%[XWw$g8g=I2N''$JxXI²;co򚑄2r%C[(f18dav1O f!}y︆d`@Xnd.# 9h-e12IaX\a :D&n= ~!mo/p¬鏆=^*KA׋oLdI?$%KncTM?UK<]VT=Nˆ^Ki+y*Q.` @,C7zuBz U8@îRmF$+~P=Vhʍ*zP/UQ/mx/N2Iyj>7K.g:R 0*g\rMY~il_MxĪSrPSwz6c9b Q6@['g(WZ8DmkIz8^":y@N> \ڛPay~+(a]3DŽ 9ݞ +nqwSwVfj92DT1DvPF k8b~;d]~>n.!NyN7NXəC+T8NIQS`Y0?4 x<'Z7̃g!mDmm6ߑ Q쬣?h:il2vNR? wϢEQYN,Vo"~rH-ķzte>P7ϘioΊdXYq[p0VkWUtڰ &K_$k8d0O#VneYH36`e. )2ZNf2LS~]@Ld*Jq7wE1-S &0)xnZ{DeYJ], A-bt?H4/s+5iCD9ڴ$"!Ղ@UDm#r5VY5?bkwp\|i_91:eM4m~2@WꞁlZ틐Vr+S#Z-^[s1;QثemYeֆ$9cքZ˺eM= ""Jy\@ +.lsMY#q3'dy)ZmŴ-IF^hFgmwp97ĤՌ^U,_{ܳ[ǯyTM'Ӗá5<\abcP%:9;ӉK}*WP­3`Ŝ(jJ:vc3%ޫ$(DJi}f~s4G1x"n<rz<"^Ֆux371|;qˁZ +8W8SX.yކ>MXƠjD!E8];SZ]O!ﲶ+'+{_"6@ cpZDN.᧩X3Agis$ 7 U +6ޢ*$EtQpj\ bnIH_xBPe4K˜\FTQ +FעkRrhiq< +CӰ:5տ5<)J)79[ |#{N9X2O=xp?AوQc_;|0,QPm Yůh{CM6gk uZk9>gjc:cY[.[|Uۊ9'a%9IOeUN97%|\-$_[׏Չx"e1/\gUjneji˜n`U[ %b%?dw}Zs,pvH[xr|S%PE9'#.xjy[/jm=jݿ!i<4]lmuS"l% :^hh^ԥj9ض3t"w݉e dzv~6CD],x36H!&V>;[hdtٻH{q d|Y,> c9xD$[B\%xLGԂwYlAMk2 `jP_4 TG2¡p[st?pÑ,4<qqr1g.56W[yJ忢)[HE|ou|4.X|$^s6lE2C#v/^X I/ӧ yD"Am |y̨,̬MHkU]{i%鉪Uo*c`YO.ӊ$&1P/* _l4 +qڞx 03&<@öAoްRӉ p-bѿ*pq&s[n)kŻ뚒ӊ50NC q,1˧ʯEϴ3T֒=Eʳ +_s] ʞDCheG)I oT?NbEܜf+'}#hX<'{NfHs$*'Ofb:JCi+ά֯cXgd2_ +y/\"çs T=u^an`. ґk# ,hs,׭c/K_jsH;s]d72߰Eΰήm{KL41#_myZHTm v3n8r4aᗰ3HeG[v;#6_֔>!IFQG '|6,܍7Xo`+.8aycM}M?E$D%Ւ۞M_M=.ZT@Q(KC[Kk%%ɪos<˲Khhp+PlJn i;YӎLucuj8R%lWf&EUC%X[9ᚲ~$~uۖ0Tq,D]S䀡m{W?Dn:V,QW +N*p}5y HQD lElY  ɳWd2DPpQڏB=ֽjښ‰@(={zW7?rv﬷@c />QhxּĽqqѻ?V*w}Pm0ЀJ:# J|)|)ǿ*RKDžQYk(PԱuA=- sIfXX@x?X<[Kz 'ᖔr"^lQVFJtJĹHqyB+h PE+(@tjp['y `-J9:ޥv]DWY94AK+EC>;z\5G?Ko 9 n-,@շ5^"0u;^=I'aEI挪(Wζ@_s͟a8+ A e5mu݋%a3mN&Rjoس?ϑޭg5hRRXL@,L u`~p),?CSI[O܃|_HKES<5JE)q@Gŀ!/S oz.A9"*Za[)h_1pl@`ڞlHR7x!l~敟 `sYC`OItny)ՎQԦd +AF~+Cc9/NtӯܲavUџ$MWM }ō1hmohF^*; q'-oܤcE[BZ[5)8!j RkIT}):Sה̨]\B`~] +4if$"׵aR?\]i1`qCC6g~zsə³2_D2ܪl~\ܟڀVCf?/f2]INTx9"Wsu.BuN"*Ţ}U4LN_ψU>Ѱ$%&]*_u7q28}Gjr442/%dt2m qS٦#;WC37Y((Z_qN՛oKc~V9iP0" +D729X.i' P# rCpRML޸;a7ʠ+-7c|\LY05|-lŭE0ERJ8:t;)adsNr j,܋KM3 g3l+\do9 c6 ]]7 rPݰ7sƺtl˛NYxnIFaxKX9|ޤpL.6"YƯ\fbl~#W.v ݠly%yrބöuW. SskhnsY'{[̅d6=Q20Ha `Y2}z-j:\Qw(LkK܎u3Q;OX-_Jȵs,ӢHy_al+I1\vX8Ɵ?3E xn>P0p_c4ET~OSؽxz!^߮nYn,9p^ƸiiEyS#Ui1FvHo6T_?SvSthfցS&+O(1;cQ.a";=JDPDcL&aH'lZ}GuyC cfBׯ:-IPS}*}!G{nu`Ev쀟i4i- 蛨I 2@""'t-æ՘Gj1#@ffkB +p͢Lp 8GVms\iiIIWBO2zig?UYng`N,DLs9Vv(ؐN\+f6D)->Èj7zYO3 M3v]@Ĭh~LcptGk4^ZbEJh}]K'eM=ƧYI/ #b Id}H/0,1hg*%X*$v="}U牮ℤu8QE S!ڑʉ!J%x-荺j8FD +q`5zkE!sLFI{ML&ًEt:pbi)8Ϥi/%N`s:Gu Mhp_y4!i2+ +l4V?lT4-w Jj?ƕN @hQϦ`RP1Ȧc+_UߗTB7Ia -P` &h +ަ^YvUYTWv-sVT+Ť`()z:ܚE<Cp BT_ "U/<,V#J PS0uF5E@ Fr(:Z'NWW8\[ P%BI m,3K2i+a) h^VS(9sP.D}ƴ%DfB+҃ +-6 +ڪ K(ڛt[ַ=sWƲə0M9fmS-E5i~[H3NKt-dI:;D&:I4PEJ͛$n3%lO +si9պ11BR:`.nX?/ceDh#-/~xV/FS,jLH|h,FB-AfC"49<jY2hďlBV햎PY}`4щD/P9[_񚏚Ή!3VTSsgO߯!5҃N,MC,RXQjT_Tښfbe_OJ{|\]EäۘɊm+>@3%io}Ԑ{@\ƭW}YM]LLyn(0rQ>bFH<)(K((pHOK P%:HBOTg=/v\e )/HŌމTyjj𔎡bj"!N}ܷ! vG*&)H!J~NN3wA|Rj&}z54E=sWG>Rm#,RQm:{Qưp>mhVɞ/ Gqr +Źd*G>ꈚ!wM/U?mvtKZȴ*;FQ3lI(Qe'NUܳmym˴+[o)>3SF&׺n‹9@-Υ/C>Sc%R_k!xԩBn2d^0Fy㫀h|oڒL6ǍB> 4 +6۳+ wկۓݏ?ݝR,R6dvCSO\e=~|?2}^k[Ez+Q f۶ xޤBB%],]`4M/%Cw)XMiz -J猑R/ܴ łb掲Qp5/_^%reD]}&g{ !e 5"b(,CssnօRї+cE)Jzo^.Mu?% ZN{J1FWś5\.9(*7Ǖ#h5WUL:[%ΑHۼ|R2I@wƷ*X[J:\ר +㉙"r^vۘ[z1:._%DUkv 1kD{$cf4a5_V}ӌCSNp0@jʭ4'Ua([b7$ p& +sn^m7&9都،_cDUPlZ[ʳ>${;^AǑnΔW{CfG Vj<0AP\2{#g? `XH-)7ٲTvTo4n/iL >f=4k=Èkԇ>B +R:Wj??8T5ՁzҸ9Iه8RRhLa<g-Osy:@Ɩ^gqɽӵI%*/9b{V 1]-6v= 1 r}ʌOex-HS\+MBɉWPGIx2^sMGO-V]UD` bOǞ ݓ㜢bZA<((&)<I/Hpq++Mt}B?5XHbcLb\k>Ex@X(eJSq!dUG3OMRiq |-!at.B.ɯR|])P!dHTOk$'QkV:~FnⰖmU W*qCZ\k>E +#ؤ'k#t]6M +^qwQXoM9CPAQ),go! X.zZ,. +ˈe1e*S%^[W5xQav53< 'xJ8:b$W[Tǘ%-HI;Ѭa4²6ܤ8z0҈p̩K{oU/w +K>R,VR;c=eNfMHNI?=)P7hkʔ]i"r:3S8=3n뼝X6&ՖO6O]DRǩGvT[UCay;쩢}.g\ 8^O(+omd)Ke/Ψ +W @4)q&*KJVo''7F)$b4^RuHUO0b +*vc& _'ddEP[+~!nZ}A`a e52$mGhTuxoHAR4F +u.ؽo {A6 +2:JӘ;rZ9C7h]]yz.olcG`z&y^F/~Ƞ_KAƧ fZ:ol#fCd$wg)xp{WJR;%=NH9ﵽFI+dvy ֻ^K0Ϭoo;X2 -G4KAĝuGZ5uQڛAmY@FO+/2vgrZ)*8߬)hR89\` $u,0(Ԗyn5bcr*bc('X=-%@gdM|eODs+' VÓ˶z4oПXS-տl1,ddnc ڌkwDu![M2$sV}@P9x4xKD1QKξ;t0;fN Htݰ 1}-_Yv,}{] inxuQ~LzC;5j_:O᳠Gʗ + *hPV5 ohiT$ǯU{O`[|qmWհ=$|w2gVkiVy4AeLRakpWC4tzEEgvؤ2yA3T8#)RbGaomUCuHa!n@ȍV0OlVZFkSh/9L6A,Q>ceZ(kWaTw)."1ߢnag=c 1 +R&!Ӎd%WS.Y]-㐧qbE($L\J%+49-MQ蜧H}1HRڂQɀ+CJencJcrZ٣}^$?)CL~5cMBɋVJSk`!rjY>E]Ϳ hC5d-~sޚ+2f;%l<)P,l\(N5زM1bǬ揙Lq8!1,ws["mqO~[tY^]Y|_~kMlkd&g~(5M'Vڔsm|2[Z]-j㪭<[鐟5 j|s$N;xGݮ^Zs_Z5PMYԤ_<]q(MO>\_HNW/Z7Buvff{R9VܰK [fISB3E;F<BBF>F97g9 +.V)mvpx"#nɿwqN-U5UqNs\PBQB[9zvfA4!k'VcdBuUWC~&?ܭ8ktJlf!Çx%< +U5D@a-{Q"1uE⁹&)?Gϳ7bɓ2`b<[X*v(4Y%bAi-ߠ54_L1ӑ~Lz e $Vٞ5=[TĺnqA+ +,} Z/xD@'ʻIMPO;k( XnfȇE zX,oau +)T_[# Hc (\8 MҫH7ZkM(K|)G^*QŤbV1Tڂ<(nAHPX)e";F~ 9 ztybTނ4]W@̆y!R[sdz|T&{}0G= +dgn=UTcn`"Ahn~k{/} +}Z[i1Xsɍ PSeWcsoD>/Dk:=*lagzN`CCU+kSiտ< Y6QU/r,gF<'H +IoGi'UQ2PؚEqmђO"ٕ-`#)t˴|7W2c4RruP>v +R*\a|k(㍇Wdngt~_hרZahGHU+]5T:9HcG~MLߩ]B5r4~ΉH օ/Pf +O(,Ϳ~*w&{,;>UϔRؿyXTԊG=d +V^0"@2 o=VL2'\0} Z.D"O! B!悰U )P)sy w" #|8/Fs6 |l9WQ}VөD]3n$3 +O fu[}M:L"C8fXI]jczI<8yS);GwwtƱx3e᫳2fשs6yZwx ԦҩIC_MB?H)]iRKx9e= {|e i,nAspTY꬯jzb1|#~6[(4 [`! + ."2.@HHɗޓ$$0PԖ{VQfHXlSD3l=;92v^µŁ`l'ԱX׊w`5qꨣڌ:~!vbht8x\JpFG[zP9P=V!:[1^Lע6cTDgt)egS:HpK>\S4փ>jo8D|(-@7*i cAx6Rw Dv_+h̔y յKCF'6^8I6k|.,jU +x4>40wPs)x|i5t{.ڰ{KJ :u[p \A Jz!`Q,Fiٌ8D?GHR; +[vq]'UNkB%?2/N,w.i$e~ +֌+3: e.BC1'N39OP;6Mz%s5[2`eSO)YZ6֩2nPDYY^gLGVɞcdIvuxn~ z똝KvPG*KsPydI=X&(I6SC7"g#]V3 NyjFo7e R 2!]$u#?*^M38_O/hPyn6* nen"°D shF0hÚc^'ѽBB-BP ;܄)WNܩߒ(-k!7o<&X7n*,4z%_=^ I6"56`F_T9ܴGsXoM +@FM1 + %Pw9'{l=nZ +ZĪ8njŢx\g}/N0NXe0Bhp]*lbNezW,Q򏐇ҍ*2er<+b"g!L#@rH +H4TGDR*>]&_ e Kk +PyP*Vo致ADZAZC .Bh3U0oPWT}wwI^8QP@_M` jݸb{?0Qe{DYP Ah ::*o=,:IsE3d=XX4?tS땏TIoCC#f \&IdR + C&X({%彈>S©!JT*Լ»gfDWCJPǚ5(ZLϒd(PwȪ5hTwTSo3 E|e8bvmrSe{9#Z?Bu&:f9I2 ,,H(2I0싟"[ȏX>6 bsx杴AWV$|mٛƚE<֋)zf&1HD7c #Xn +؍k"(oh3.w榈gF&r߆t]炻S8:c~_X{}[i}xLJxy_FopAhg,d}'UZ8 ͂Z1v4Ա6I@SؒӁ0R;`m4} +lQic5O򡖶c0g-űZ;wN!\ҝ?l !uK7#ө&n (m~RʝexꟵf>&|Igg 6Ͽc~&BNŜmȓ7`s2tIaunv:c* +zSҩ3 4ɛZmhe7]I&Bߜi$/P:7ji<zՂ O3d{4ycB>"FMA zK@~ ![Ea[mkn>9 |^ *Ř#tÑ}<H:S`9̌lv>h\4pEqyIu}^\2agYs&9~DV =W?8K{Za׷&[]P$`)9GݒFS6ИHzԱJl_Zp7',n)[O:kL8r 5l6rrK ȡ@}Md&pJ]zѺRU*RD_UŃ/y>y:?Z_>;6kfD>o]BnE!6oDYb-*c,{VU DkeQstl5ǕuRly"1 7YZ +RR V=jeپp@ݶ]c 1ij@#-+g5n@&efF}܇)2W + +~U^rViĠؖ?#SNf4sNJjKtrBs1t\ Vn-WT߆|pUa%jq.>!=NϢu HٯڥJ{e^ 0)A !@+b>"I$uAQOe {CrIYlPfh.<*4M_hAtr&Z^W,1薔#cƤ!F1G&yʌEHbh-¿$V屬y|,} XG]ߵeJu{py5w@]lq kAWy+ۇOy>muIMG<[QgD[0nIr+gKs`o)1op؈{JS6G'2rc%ddu*I[=*ƍ +u#jM|G+Tk*+g7Ls0U.lf!9q]gAiӂb1Yrރ^YvqM( Y^;嶧^GFxIZ*)zE b2Kύ R2J7q/8H;2 ((I ˥y]qj)[/V }P3oppsq~ǜP<*432%)m2sx}y971~X|),4)sk>TQf}-37$ö˲xIb4OxPtmNXUiY6^ٗ`K΋Z]I8XԩWsߡt5[ ;|?ݐh1S Q 5#A?0M:Bg/t]ڐfbNB(sdkBEu8$FxM;-Cfr4v0ࣰ@gVW]lB+6~ƈ=Kchۄkz&{nj&92ڌ.ՠq]!T!_2ؚ1SQp,a>~~)nZd|,&-AB "PwWl( ,Uz 5K%!DYE]EDVPOt mQqAXx̛7;s9|1*FJ=#ESkh aJڼ +AojJq%{Zpr?^lTcOVIG9z9{1!RSޏyk\7(I&dca0)>wM V{V+y?JEVH3\~;~FC]I<$m %+CU8S\ +pjƷ +i:T 7u8/ -O_zil,+'u^|,%Sbqz1LFt!&8t -KVo~N4Ғ B'~@ u3j,'Y9 +)qs~n +ͳs䖖')r|fql6s#f!xyu4_^O֐#&rw)6AZ o, [dm +rS VY< SNy>wp +zm9 1\09Maoԝ>jjXd|nY!^1GXYUaV(bpm߱q<'u KŭabwLf#fA +1 @(.$0cdJaFQBZU{c$+h&1Ľ8*cA4S"ӻɺ&nǠ8[E7׸m2{¡ 0\½ȏT7> &Qߥ|> R#` +cjmZҒ՟U**ByN,GQh<*.{KTmI1i!(GAO!A,9pyqX)0qP5T Of@`ͯ8h+a8 @;48:/:|@hx^lʻ$6Xqc<y/# `}ߝxC!`08b1 tT3J||5=sEI~*(8$K6#Z<+ųmָX;{'WI6FjR;#sCyvʺ&+6(7J7-[s~k?P]r]v7ir7Ѿa¿D`"c͟[87S?_MiX\FZ#P#jJt QSKրvB7K/Hoǫ5L +LffSV[uVC-6k!7)!NjZ҉LqrF&Yk{<@\+$;rH?<@0A%BCD +EEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abdef%g0hdۣ/Zߪ ;iǯ0Nlɸ +,Os>lśHq̙4WxԘշ 5I[lzy`F+qO, uO)lF!gD!l%m8c , + V # g;^0{N"qE  !"#p$G%%&'()j*L+/,,-./012p3\4J586(7889:;<=>?@AB~CoDaETFGGx?R@,AABCDqEMF)GGHIJ|K[L;MMNOPQRuS\TEU0VWWXYZ[\]^_`valbacXdNeEfd(؀+ˀ:JXkeVtA,|〟~׉~ˈҦ~ч~󆧨 [56j_M.Ub@p, w$}ߓ}LВ}=~e~#z~H}~tAi8~T~͆@'~2+|םB|"Υ|/}s}F2}||}h,~S~F?~p+~| |0|INK|gϣ||ݕ{m}+g=}S}Ҍ?!~+l~aW{{P{ӧl{|'w|k*zj|_fo}R}q>}Œ+{~{J޲{Y{j{he{n|y|ae|lR}>}r"+}D{ďa{ȯ{δN{0ˠK{lv{_x| e!|kHQ|ȕ>Y}%1+}mzhz8tz)!zU9{.ŋ{q6w{d|EQP|m>-|ڒ4+}3zB z[gzȉzNzv{;w[{d&{ɣQ |> |+}z*z|ōzNz ԉCpu>#%4cV5)jjJ:6.;s~jj2ըVCEJV+ǫ,o]i 6(S{.}_gH]W-Pđڬ%AiM>N{+q&CUro*pHh m7:BO"xQOi +a;|q7bA'):8%Xܯul4 +}D0[~->IpcOYd1XF h3SB4rE:"<;$;:ׯk"2wP\%U:%#y+hAZqgwu" {^!xH_m0ξJʹ(%@h3ҭyx +1@]!],\~HJ_? L@ M)LD"%9)ey% :h~!> n`NN<ٵ/?Ss{=ᰬjxkz^[uIN;3є=&^<仚 o҂WxM<iOC/2ECm*wdJ'ni}gOٲx1X{2M+HIP4#x06fV r]2&n2F߯dV n;ʣxfI;Q5Xm`\sc2EAV ]+< =.ಈKqytHK?dy]D{irn-< %c4VlsNg06Oߎ.'p dwIsmSzWzWc (e4VT8k^ԨxD͉I "ǍLŋ]ؐc?fljj5[c/ +ʯ]1GjÖNgGW,T$=]EN:uİwv E{䱙6Chf()VލLu&oޛ,fR@7W}(\N:__zQ> +}3;/e3ކTgMN2_6Ç=^9ADUѵ,S  ׂT]DA`ATT%L3Lf2i$!  D +b{}z_![JR?&Z;AHQan@({.YOwL/ W qxTd`Tk  +18mL~H nx`,F}/ék?٢ɥ<ܧ8d~G% I=='o\*_!9&(=zN4脹QQy,\e;B*LM//eG9?~?&ʯ -8QWeH. hU61f`@T'@@qˀp =­ ځWTz 6_B6P=)O-e7Po-&%x[A/ɷ.'c叺O( !#9KM?!׵MځZj6wu1g+m:z G ˷ˏY<"ExQtꁷ JJQwCy}yy]Y[B𬋆MGpm=>K;9qw 0\u^>>P5Pޗ4d},..^Z)QQiZokH + 0Q@s4rStvse<:lPYՒ&JȜ^4lM^1>Q#f/d!rE@*vNCkVT4*HyXG0L&8c;2: &w<-xe +3lX9cŬ* +d1zFzii0k + sʮS&0g'ǮSzO8-1vԪ{Xϲ5'&'P% Zݵah~Ffe-:K"D1o{|s6ƌkї2V}Jn-k_Gbʼ 6O+*Υq݋Ot7hgݧLK`z33tA7ʘ")>]UכY~ECh{,}4~O I61~W2U.Wg z wr4)6./s>LwW ^:9ɗ:- $ s\tPN1~C_Eb#^a>녻\6y5U׈Tw<)5>kN_*0`Gk;e[eZuNdO7"&ݵA|wpL: +V^!DL:IT- +˯^O8n,t +p6mreYME%wHҮS&e6Nx&Mƀ 0s`R#4l'2n^M\34\HW҆c 8a8m% #(5&^}?q% |^_S&5c8KS"C#%%{$:w"Y @'\,U֭I+Wfy/J깜3Y#q$tkH #ap%Xҭq_˾Llq~zv3^꥘C>e~)~ +?b#2i7 +T~-u\ŮPC3%yZhWr 0 Ulg8YLGBZ9@sʤCYxmԁw ݺrUO\ATDN8I,~,bFAWPeW3rReZ]< WݕiD`6pG,:l a'["[):ZɞmTu]RrdZ!?QipvJDSyB$#уQke7ֿ-^]N]mcQ{vWQLBc^6IpgMiK?=9`Un뢊g$ܕKVp jҙk<|?wbfĩFi ȫi vX˲&e#Z3Mt "hX xHur@j{)NGoAe4deщYZڣ e"J̴7x;buYMI :A4M +ce7F +XZ1 +Jpa;-6{\JdDӎ +aM'UL7,NnfȺU0*B7K8- +LGA_֍ɏCmɊעsO 3~6lMs8X?נ׉X2c B]UtGݡUJ9ܙJ o>.)Cd%ޠ:V uMt лohܮ=ߢܘ^HZHT5&{ʯ +|D=๝9_B.R?vup=oiHӑVuGU΋270=[Ǟ$2øR>6ǦV\l;Z܊V +Kv6Iz D[BGZO7e֢&[)\|Jd('Քȏrv!^!qKy=#ksbh'9rsrY[klʂ4jY8I{P,YM⑁ PƜEB@J=GLu,Z[1?+4֩}֮ZFOQ-81Tzw UsZf;9-rI7x8.ԜY~R8Ѳ}" %Ռ,GAW"VDD_d5৪x CaB=H~m?xH =EKEWOTv>}-jNH0sQIFa7;&1{'"kz,hV~}Hr[gǓR[[=P>F*M;Ec1߉'ъ~ ؝,r7MfGx[הPf]E;w1X( + }vWqĴufKқ[0\{PptE͞w;sD1݌(,x Y53Yh}qFeӮbZ̨P$nE ;`Α1l(I |άpس.ejZsOEss;Pjh1 m(b U>|+^p~neqZ,1O(EQa;C1(ui9 ڈsZ~v0}jr}` +}U~BKg~ATdi76.%Bdfu +jl_޹&U`K5A0.7ueg.&*%;׍ɂ΁9˂u;jx#_TQU:&K=Aτ7i.,q_%[7)̏#uEmjg؋_U-t|K +BA%7d.1͆ +%w*Ere u`È|j1{_r厱U"J@pO7bS.C%VŅ$Wu ܗQiݼs_%2TǰJéЎ@飹7c._m6%4pڀ2͟ tN i^ⵗ^TgJ/w@֣$7d.xՊ&iAwPGtsˠiMVD^T]җJ}9@Ȣk7kv.J&GN֩Mt2MSiѡq^YuT&?MJ]@7zp.ˍ>&t#qok)shź_i^2SKJA@~7{ .Օ_c&A@sh ]곗USѭ\J+#@7f. Y&o |zo|z̑}3{i\}| )}|~ }/{~K}gn~~*S,~~>~*(~{,x{o{ta|k`|ǂg}zX}lJfB}ł R:~>L~dp*~5yOAzrYzC{b{͈ڌ|4y|e/}Qa}x=}܃*\~;;yTyg}z zsz{f=w{xd4|gP|=4}a*&}׃lxE؋xΞAyJ"y!z5j>zv{M*cQ{܍O|i<|\*}rhwTx(3xy(NRyƉz@HuzՔb{nyOl|<|*(}VwՅwx'ex|,y<yНtzm}a{ +_yȤ!Mz_;{'*`{ދ眃tx؂yvz+9zқ{ˁ|?ur|bAI}O~?;ހ~)lẃ< +D#;큊ZtLsa1dN/xN;SY (5eڋȀ!Fvh$lXP+cu}*C+S,A@OB!@#&2*!Ȟ*RXQkN=%Ȏ &,1j= 6>Ǐ@3X-䬛RK>v'A5#g@x+7w~dCZȟB|s% 1 9ōA䩝SUYY=X3 dgcL3a ͺCnԔyr +lf;~7ޓ~~5f$|ZfDu`2@$\]G\@]zTe 9 4[y#'LY{@m!c>zn:> =.+E)pmp'^2%"qJl?o[:x``:X%>]RC K_ 8mI :u$iG@3zs( PZOr_xs.M"`/WS$nw",8X40m5<ńo~h n}DnaϠ+lQlW^Sl,]{ v`(`R顷Uږ6H['׳W6!EI>_pz)xxcvL0bquf 7?jjh>?^\Y#ʯG)RBQX ~F8F_D<=v~մgԦ4bDFzGv?VBa_݅Jh3Zd+XlJ˵a?wJ3AjVjIgu>LeX<R0EcrCBqf`cǒ02`j;1;/FPcqh4$p/)_uy{Q4hݓj|ۗ2<.LU$i42"L?`RԺR磇@*C!`(`@,2Dv_/{ @ 2]ZEWARSx*dR*WSq!Ѫ`$r"?lߡۨ,+@Ymyon-rI|Ԛ:Oe)Cd>49l'C{ K` HzZiLZsz.fT";ib-2(!-htB  _a' am/ruiP[FUYtc?&%'#'19Nu#7od%o ]#k7ak3RLhUkobJ2m% }01<:E4q2Cl^^)iZJ|jlk;> OP|"Oƪ/kQI +Q<_CUXyF|sM{v*4UWp`H +0 8Jm?qWߞS|lLwy ޙȫ +NL헡, +l~øjb7*&"4+\rT'Vn\5.q`&s S.R kICwv&[r{k\(1b0@5l@|=:s|ESҮ(/c[e4Mty^@8uX!L*<$TJx4k?.3wjnItv& Mҩc ,RHrܥJ]2`8ZDЎziX{!ZM)"pWXtly@@^3cW 3Z+mNƊW O16 HOl> sC +z!(A p!UjIRU:=ح.?\jDtE"5c9!ه=0 /F3h8{24Ulx @ڦ>_L֩l-@]Nk GY$"N (64{/ׯl"eGeu1Y/ìD6J*%F@M#x|hUGZ-*|>'叹5EJw Ty[uG)P*Gb!#a-v~0w[gcZ9w( eU2CKLM+2sZ*»as̉ͦEǟ3pG(]3o2ڴjyoM.}]?ڨ \4 n;b~g?3FG{(fi6-Q y)d2'ߢfX!:=\dLׁz|WcGcIJY)Ų܂FC"]AErrz{0j2[%by$(=]1l _dŶ yBsWܩ*pǤ +,g,{?//\~7&(O7Q +r# +jk|h?|s.jb6P^$@gH4<%"/+0i0 =yA ~'Y +NxR#po=F͵ڞO-t&73<á'$RM»"0XNG^1D>jhQߨM}&ǨpjO|dh2:'x iT+kmc{d4.W}iK?^-H,Q.So2P"rcWz$ajUNsZ2i󺩢qe͑ + hIGO^)uԿf}C&=44>-=m0 ji˹|\QXt:!ac7P{TN[\{$8nh/ymp] ve5"1 ԇ[SN[Z=E1U( +A%RV*Ȇ ^^{B2ણ𫟠pZ'Qw?ⷛK7Մ;wb] +Q.7 f#D(xabaO"Fޒn:`VuɖTUUNK}!oOrJoaxA؇u/PȆ2-6]*[U;/reU^ј +/.TklO"7{77T4^uo ?yi|Wɒ4}Z?K5ukqrt-D tP)j}6N_߳Tڸ4Iq2VQFޒH@&5(AJ)]?E,{zuq yɴQti_nE>JEWT$mT- +bH|apԠ#_RBfxS)yka +ex()S0I'b9F`" {1ϫ>ʑ[oc W[YޙwiP19b$,&ĀGht~In+d7*' W<̓'Hfb k| %c*p } +d>_RW2nqQُu5f%ďܖ5b9YŔg=0^n&kk;7O,5|Wz/é/O앗1/˹x%:Y0 +{XG(U.vabYG錝=2 D^9'rGL^ ;Zc3z7+g EHu`V5 IDI|31vba0fsq>5vGYyf?B,ѽe91x"wԲ`&`h5 f0ظAۣ]SMC4aZQIPD" B`Ic͛DU֒v#(snQqƨhM^{M 7nJ&*^(,Y(}ctS[WU>= ЖRl'[N]@X{χRzm0WIGe!Tht7h=¥T/sp% k2ADotm 4Py3#+: Ͻ؇eHqNC%{YIp؞ M+(z|= PW0aKFT }r=,Es(ŘVE:Ȼ?pT,CV(fiEGArCj$Qa_}$՚&Zu2kX(]Ϗ /&ōt}*vŵSk̯ޟaIVLB8疨/&ጥ\vHk[`H6VM9LV*Bs6+8֖D~/B&ItЇ^mܺ<'uݴk:=`QV 矛L#כrBR?8Ǖ/' "{ry&p6‚ykey[QzeQ_{5GǪ|#>@'}4J~,d#ˀzq~p ~ey~[0~QCGl>1G4i~,-#Ȓuzooe3Z[ނQ.GB>)s4,?#-1z7yGoo#dZFQ";Gi>&|4ޅ,P$3myıo(ǎ9d쌼Z0iPpAG}->%5"&,iP+$R8ׄcy n" +dsAZp|EPGP!>+5n+,$ˆW$ymÃ=nd8AZ-P}G*E=򠍌5 ҋ,"$ď1UfyAndEc"_YLPGG=65C,”vy$󎪈= +Kxˆ nc}YBPDF$]=ٟpu5,%2ވx|mռ*cr#dYl>Ow=Fɤ=ў5)I),%Bω F$x2mJc?ĤY<٠OFJ=ʞH52쑂-1%_c.syzuyv +òz|wkzwٝ#{bx؉{yvx|[zc|{O}i|nz}u6{ja| N|;}<) }v(ҿw w͇xw8y'yڄt zY`{GM{;4|S(}Qt咈uؐvӫ"wp(hx8yNryЈ` zMM{]:|(|t tSBuؖv9wvxTqy-_6zaLz։':i{(|rtsdydtTu6vFv8awƕ4px7^wy7L-zg-:'{?2(| ޝrήsctnuyQv^pfwIpx6]y Kz9zM({)4rdtʝsU\t:Su gwu򤴁pvoRwϛY]#~a&uhbIQ;5)t'VAZẀ|%搾0S#Vuv?aboUsmDցzA6 hׇ +ƻ%LP()HPu'^hvPءlDntYryW+Ŵ6x'&ғw-Sq4¯Th00"7 +R.'|aO&>0HS#ma7CG|3=7fx[:I_ƛ[SK'fAр/ńm8,po R-.\ [&g(ǂ\/{,` vbLT53E7\`NE^'[ϮVvӌ˱:'SQ1;Y!%f&]r}0z[5{rKG-Eؽ%݅!t2!mjPwE5;=~&HRߣ[9t1]8tslF0KꋾѤ[Pl݁P[ \Z\!֫MbtݜGh.3 ݤe t e^VAW7G<{;!5JD-mވdta~g4Mhw Vkٍ<%C  HtHH3@6! peP2箖墦!Hy]'N!zAdUE{ daOAy~W2+yzx5޿S?t7 #mE%Wir=#^+#>^Uu{ޓ&o>Y~<|Hr7%#SRI5(Eΰ_hwPI/6:%[?!.`D\bBnHjc(x8]+6J eAF4b+i8&VxqS:}ۍ<ɾI-w;@&@[Y%sd4(aBTiC0IvRNt>Xp^4$림r25BhBT +xG(=?j<@-h5-Ά1J8)5^6JnyE UD`)r.6 %'IBXEuǏoF_Y2 ;+CitSttKn:Inq;Ԯ +>M144b3fP/b$׌Zp 6NAy$Օ2>XчdmpG|j3'l5X)ی7=a/)JToKOӯGI!S~5{X!FM"U晚!(_'* RKQb%W!6Jӽȶ5T nQ + +*TArNr&f{.qM LqL&0N;580]aBe cJNZP6f[(V2T Z[⢸Fj #ldb RŅZMzjq0* UQ,%b 3!=HB2ʼn +n-ugzTnRkVA^BEp꡺a5+`_iiSDOG@r|12LEjPm,X >^{%(㐇j)~4L@}x!YDLPu&|:41L!oΉނym/4t}x2a\D@n]˽hV$s3UmIX E^a'LeW NmmioQGP}ׄR6GrgIoFUٸ +|Mvb [|(ߖLwud|іx\"qmw(Ta]g@5:^A D{l%Gly/@bjDؔ݀:lK1I%P&Er"=1@cJ:G$x|@෺z'ƛ;NP);09%*P 0[F]^k~m(WmяMQe + g*Vsfdj4!N̩nOGjmA8!#)9ʼֻJ'SaZS eod+ekٓ9CHL(B,6X uznzMA*\_OZw%A}a209Tw"G(>bʷp0D7JלX8e~T.¬0~{=#b[1m0#̇_g=dpbܦv/vӽsa>c|̝6 rKm"V7p}1]"%prږC{+uT @=-)fwPU :@b+[Y_璄 Ϳ8q5-,rXd]]a34sU9T/[y9 )KsPת +Vw5/mUZ /VHTM51R`Ji2Tud\ DxC|եߨ:msރYԵ#ݵ}\jb17U@ZGf&O +UxftpΗ~H7qN(s~;}!^p}x5 GwΡO=@7 +DEDTK)(.UR ɔd&ɤ 7a;;;*SAdmw)k{ Y<]%t@,kM@̑nc}ORUoM%I2;5kۮO22֠0}(d͇7-ӒOg`Av=u2"\7!s799x)gChUI!_V TZ8\ x545fl)w񎤲bNJa}(П\XI\t>b7XYR2~8<T5TpUUK +q}#{+yk|NB[I i B]e$5~kh2"uT'A)bƐ|Ϗ-:+<b,tDyI;Lzۏ77ֳnFt2+J)O *Sis%zagQ{p&%pV#/fCҊ/[AD][@ ]eofj̠O>+i:%4弭'DUeQ"h_-$cFۻ +sֲX;cC%gwb3$s-[r`OϐV i DBƃz+)@*sG,#:jg֗ߒ$|tIC尞yP5uTsYmg˶;K7?5'-qhuw~Iܲ^ƺHiw*}݆<f՝lV3_TUУWB- :v_ oSGgn8}=2oNw3# )jM +. 8c +q2 'vذݮhQ v^uw7ok;mG  ;#Cz/G`&0`CnqMP_@]j/;`'?ciwJ-?/L"=[DQFࡀO$FւKXܲ^kl(72"/4L~[mYeV /(Mo 4+1?("$Ca,HX"E>848o۴NzwuW%Mwz mKKwWl/*?/(B/ag}ADԁ(/W,kvkD嚔xUI5ᨳ-5i-LN?{GjkrtoS]sIMHqWRͥXeF XauOs~q.~,.'.v̼b #%vZDUEiF.mmXJM YKO-Yht3Mp;֛\fT4w;SE.!J~ٜ+ 3Tg8~*`-8Ov4 &+ODչTTBI~ɠ 1\"61zlxbAf9tű\'G7r0:b|zE~fS,:Lm~Z.OJ،%ISַZׇ 1,"n-(RD]uZ4I?f6ϓI2ktpW&ҦIZ$";k +TL "]Q69fܕjCf˴qC,4J}O\E+ ]x?<0»kǗxظ*O2ezuS&2V􈤫+hd& W粗uH/l16Nl7 ]p}|lU$巨djr;_֣s}@}x5} V:QOD4 +aO#%z +(*D[0LBof= B 0Bd6FTR<=\`i8ZjveI3yqƨfnw޼%{'J _X3N-ލ}wElg)i=3pb +&|ײP^"#}hKB8m/򻄙Ebov%"-{Dȡ@!5acNm֓;bEW=EEwQ1_牋}+{OF$m~HXҴX+NMDKzW-I +_[JL%k?zwҾ|B=3R{aHDLk½KȞTK}x*͕}Y>ރVՉ'sPF arʉe-3{yh+gԝ:9nb6$l`-6LK9 2G(k7%u}bLjQM4yWPD- +_CPny~3 +9[1הeʞԦdʤqM1jٛP6ds 3p:2_[(dQzI^M,)Ǫ`1;,Iڅf߰+ BkXnXZV0%+r34ߕ[IK265Eֶa:ҭN"ذ BgBS_5Ӫ8CT=ƕ^Y].@Ǻq0y7\U&64@r9ʥlG>·CP7W7Iֳ!|L} +a Q$<4t +&14$P,4]*@qtZYr_D #nǍc&k&p- +-;\T.Ls^Ӭ=XRcap|n;MȹsÛWR􄾜֢6{:~#x,aGp_1OE -:WhRϙ57e2guc# Ǚ*՟Yí+!{m]& ᜬ>6-/%{c#neې[9L@Cd4S6͚W ZFsϡ|/~ !g'>C'G:dTna#| *J|X8R;H4гg +2~WH0G]&&%bcQO\B6v׀QV#EҨ]4~|3.ZgEv7HT{DJ[; /2E:*?2]u4<"?ȥ:)q=DGaW◃da V5KUB*I%T]A%hXxU؝yd}gDP+.~pLRU< dPhz珪!΋+i{[U^<:jӡO x@{$h"WơD%,tt,ͻcdf`KI" .sϩWڞh{,-c(kyH^EL1 y{d79_9+Yx?|\F%-3Ϭ̟XH)["cf]k\dqcxV?6>Oqn"5f+ +Y䯇w͵[i1BHê'a"_?::_?{p9 ],P/e/Y8*݊o,B & 4_^}$!>ra9ByGOpx Ng5xX\ X InW ă-0WXsd$i4ScbX>uq9i6I"N`ASypCwhxY4F4]6mU(cggxc5:ͅoF R,.aŔQM,i8En?ҝ?!ÚGF$NE76[◘xx1),5G̋)El `#MIȑSAy9=h*2 @0Cay-?uF5הǼkEc"x0%zӽ !yr$z±ݠLlߩEkykxESbQl_/`4H 5%Sn)@$XٮC-guc砑 +zܰaZÅJ(J9WQXDhI+@E LhA|ؽ|*<|D7 ϝa4(DÞ 6ua ?rQ}NdƣT?;)IYArCOB_"O9*ԣۇުeE%V(0Fޝ^ F]*a=RÚ#,&AGlG+`GX̱5ƨV̥c7R!`)rt .5vxAL_bYY'Lb&Jq K : ٙd'{א(yq2a7Kj36)x QfE4WwSԙ.T3r<{W  F= 6}G6ݡgh||9Eu;(ݕɶ{?y/ёkup'᧎}oQocI~ki0ʪhJ[I;n$e]%tHzgtnv&6A%f82N5u754@KgdO~Csi4/9Snا]9y7~GƺѦ$$.lwS"'eQV%TOym+'cE$ʕ$ ^QQB^]-6Lj:l5}YMM. '\̔b=daBeHU +眛 %b5?Б9_m卯Iu.Q)^ƿ+zksm5fGN:JRIi:c}wΦLe}I^6,*-z>%X<=&=f&b$zarw;f@chvp u{v+Х6cF ~9lҙh5H#Rh9}.3/N΃@a.gP;)ADwAnlgr?Q#/NglxeFC-0O[5kV\Tک/X{IϚuxܩ)s.\ ##G3a{q P$[Ġ-xN)OS +!іk-h1@Ou9=R'hLЩfJb($i+ ( bW6Mrd'\r}ȀhZţr*BH߮lHZOqĭ~!*%AC {k!Lnt:򥃕=טOKl$M+E9S R +􁐿VC>uM(4Jv?{AEBHt&@Msp)( %ӜP3Xkez֗"§6s͟Fc{RH."#O7Z1upDp@K>am'fGCAe}cX:|Jx+~WLjm®H,wH@5[UHRPgMǴP 4cMnܙ~ZC> +lE8x?'} :遲;V.Ncj\DthU&ptW +T?Ѥm(G@ENux.ls 6*팵aai85Ts)S-?gOĢt78#@ox7~8D\bQ{U0E;C(~fRH)mс@b~uϫ @ߚVEGSojul6Si?*Bø;UJnv⬭6]g܋l0zWy7=O,8C= 4Na\I[-%T)m($[l(+0dj8J,:wa_5c3"*lcqq^yEc3حm b4"}I@zW* qK z]Vc¤>EB)/A{Y昖)yn__[NQStĮSsts( +Wj;й۩T7AZzd!p^;VmJË%zvM'f^cT{oȲXׇL V7!^tjT/h\'M+9T%$oip8oPW^ OpCϠQE#7V e94|uJ3DReb +^BH(~kάe՟+&IUطƕٗt=)Y ޡwD:%b!$gF<{|5bW;F!QmBd]LDdSwb [b3(gYo:@ƒÀZ4CYF>a剺v[_6%SiiGc^]ap;KF 'd܄1UOg^sN +[iMY_~$? c!EUaExc4ZW9Ab.h,0X.Y>=4<5Q:ݏeoB]5;Kq*V7 +/PW%=ƈһ"aY욑?pIWFn^|r g\9ˉQ䈫F;U1'لׇ L`|1@q[5f-a[GQe>Fd;njډ1'V>)暠{fјxpJeޗ[)ёPF -;kz1jY'TlsVzx9oܚ_e-NZh&P-vEƐ;:1%ч0wMn'mocqPY訉rPJ=tmFv%=vw4 ~y+0B{d" }|~wtAm.OuWcavcYw_P@xFy=Zz4|=+OM}"ߎ"~ v~zRl1zb{oYA{O¢K|F}>=<}4~+kt#RMIWu벼;l.-\bqX᥋uOuWFQ=4؁2+q#QubІ kKbQXwO~FL/<04+J#tk(a4XNŸ׈'E˛_<̗4s+T #7Xk2m񆝬wr`ysɄ+hu7WvFx~6y&z>jflnio(qpxrgtr8VuFPwy5x.&&zrʌjƹkߗ]m ro-݇pwwrKfsڌVHukEv5xk&CziIոLklݜ8npvqfsUUt@Exv^5ex&[yeǁhضjy|l<mZouq3earؕ{U't|Ev&5=w{&pyWGh-i-Tkm_+o +tp_dr`Tt yDu5wj`&yvsuokcqISsZDTu4v菊&x0$xcixkרy=myo݇zIqw zsf^{quSU|wE|x4g}zh$~L|2v3s0vtVwuvjx2vxwuyxeTzWyT{&zDk{{4||$}}tU|du(| u|v}6w}txu}dbyZ~QTzH~C{63|?$}rۅC/s˄^t9nu҃{vuswcx|SaygCkz3{$|q!pr͡stoBuXrvBbw/Rx؆By3fz$|qopدq̔KrstqvHaw&}RxLByo3:z%{ٽosvq r'珊s;QtUpuq6avQwэB3x3z%{8oO+plqqrsÚ|ot+`mv Qw^Ax)2y‰%7z;Qnװooq\^rT~!sANotj<_u&PvAx02yl%Jz89nh oyMprq}MrҦnNs._.u@GPvLAKwؒ@2y#2%[zaFn +o p1qN|rxms^tOv>IAwj2x莔%gz2l~i.b~k^'~mt~o`~qCp~s(`~tPvAI?x1zT#|;~|r +|sTw|t@Sg`ղTcC)ʐ + +ALV aPA9zwXS[Zz**z̃VS ]r7O;lW ~xL/'HhwGH\ŮP<7CUXy96`Ȅ7̨݆}j_, 9II[O@M .hv,-B;,Q9]U a4tNNv3Ƿ0/2&l}R|,sd6*Qe%LYp!=%*:|]|ӿA=b7 +L7+ziD-fU܀#Ogʤe =<}* `<bo4H[ Z%}$t!~WY*ѹ$׺]CsKT`[fr;]|K qm\1!7mFCzaHO8!ۢBgh tʼnPՐr`>$N3WujKB-[$9TdbZgsQ3){甎9iB {_okK]-~wzy.Nė+ڋ2nHZ\;a'fër,}9yqa/~`וֽƹ%1xaIiS>ģ՗y᪼}x2y ϗV؟mn&}1|R^Ǫ܋K:kk?Le(P"[Hs?x6@uӈ;)oogm#0 2׬nu͸ nz+2cœ]zXs^)<(l#Ng2qඉV#.|ouiVէ5Y) Vn9K;!V%NDWji?<kLX}~0U{w+z\JMBGδ;ZA.2؝|ւ;s{r`lj uAV_Q ˄Kh?mezlPg/uxQny|"_?=Ay"IJbSh`@U|QURYp[WЅ.Q^Ut4,N :-feWݏ1 _2-֕t |2CloTlD^)eG>:TXOdet=~ $t4^e}'RG3|w ׹䂜^iHG2Ʉq2ݙ"YA5BV,\{\_Rr><*;*>:θ#{^+f:PCs6d5e8,,XNӏ2EGUHBIn5m/=Л)oN+Gel$Ұ nfBP}ʚ;JRRUŇhvuEvo%{^;0aLr|0^%7ULXP M_e/BLm\D;6dY46otlFQ:ufEO771M)չ5ɂt?j1S]a]LXJDLKi3cOU! !_ +"g>xG=iu#J26|&Ue6'L_Fss*vp}04u v*CIi!Ɗ" .JA̗3^{ օbEzr\Uj{߿Jo=-u ++q>Ou&]=TsV\G;J +F0iYS0yHw +ob<ƑjJB5>;T +3D˞ 3wKHhYiE\6+>UdG0Fym^#:kyQZ`J)3AÊ@H9}F{:RאSOADvZZŵBg pg,VFY:{Kv,奨]{x}wG~ozwo߰^$JhoѠCɇHgItoV,&7D'@sBO8AL2CsʡݤwH1k M,uDK6~\K"r_+?8nB@O^3=&lƨ,_\MaG1,C)ÿA(8 \B~UVHTSb+{$=BL.1Px&1ЋɿwXsz։i;ڤ3ѱ~omȀ-U ׏RCuwqWpbu.o+PX: +2ҦpVv|[2 Y&;] +P 8EvgJhռYjrk}D 'rTs)$JЇI.t +#۵0К(w>n`A +NaX-STNHzN7 +:{t  꽭Yw J] ֦g]_W[Lh s0 A)iSc@ qn)N|bj% }ļE'$8ۂ}g M-4{VO +qt\xNa%+c +f6ҁL uDxI YTn32f8rܣ'L% Tܼ,Th +a| +;S|E\dD\)vmyxgyK's,%y-`#ڈ-Z&ԤtPUu<3T>^^Ӌo] bkҠH-$\wahu4J5`JkJ 9-YٗfVaj}aƃ $=.xy%WW Gj5Keo,J!Җ)ˤM)%k "١xO>W-'fm1`*ڮZ(-ꗉ,ŭlXw:eJUC^="]NFHWpևRܪɕV: B2lPRq(2IDw B 98r;w\5I?vB7jª=l Uit .= ƴҘWOBte.񭹈]hA#0_!sKT@cs|< ip3< hl"җ9t%0=5i6@L({|"l|=ZT--,Y}זTAn/ UoL.BF̎@8/#N&%eDže|Ԛ.priK_>lUiKǍAn8=7.,& kӂt| +ħorF0M~5\R,h#׉|)wm!dTсZQ@H}>5e,$˂%vףmAXWcZ4;P͖텺GօB>b5FJ,$&#j@Ovlc/oY^PkSGWE>+W5*r,$D{uU|8kbېYYDʎPōEG=֊?5,@$X=tkSbSX>O?FA =^4Ռ~,o$b؃ԅ.tuYjauߙXDǗ6O.̔FY֒&=j4,X4D$iK}sTj(aWfNݔoF=74ʎ,Fz$n8p)igCk]mT֤okK٠qnCs:;u1zWw)"y!"{*~ pof˫nq][rTsKuzBw:%x1Kz^)N| !t}>;oIufM(v]-,wT%hxuKLy{Bz: {1V|)v~!0wpMnԭ%{de +{\|{S\|J}|B~~9~1sU)!*҇Dn<,2e-D\4&NSQsKJ\B@y9ΕB1) +"3n&/mLdCL[^RퟰfJRB59H1)̍["eJqP +m d5([]IRWJ TxAЗ91c)ą3"#pl2cZR>e=IšA 9koG1wه)<"}2nl"P`cDOZpQܝő*Iq#[AX~9@ꋾ1`W)닿&"Lj'sĄk{bΤÙ^Z-Q:I*A Y9x1K鋭)Ul"هŇG;jrk1pbbKYȠyQ?ɘIH6@󕦒81:0)"uX"fj]=l1TmLYLoDOq<|}4'~-W&9 2Ѐ^dϴ \4SΫ3K̀CܢHL-Ӂ&h w`9d})[鮾PSVKr|C{5Bku/3w$x :cɮfd2hhj9lpn`p%QfrBt^2v$x`c,De y\̉ŲOjjQ\]S}\5GMӔ>JB!Œ"-[&Ee}nΚߓ&g[)2FJπ]8R=iF) åGtXhkIf zA$x7Wthv c⡒ +ɄYh?:_Y/;g߽vtئʋc&;:Gqr4% .\!s2Vx4$B-Z3bN# 鶧Wff( pe]duNM8w)u O5cq ́Β޿&=5$(N%ve;dGJ H@)zJE0.0;Og!" J/ݗR̠$\xf+"wC3f= 5ЏэH|EÞBOKlJ+Ju~&8GpO`# DH& *;wt֩Ƅzmc"OIҥt~(sAH醰=+]꾏2}2ug HܼOx^U!.vR:PL$RXJ,y"5Dm*]7ZC- lP52C1vb AiU91KnJto(JzkG&,kWU}O(*g#uutSBF]z15ʈ(^N@ZYYhJtM(pD#j[fEْ[i*QHoh~;YxWmz,\T/ +9_HS:) pT"j<j9 aDAچ 3魿ʱ7x=rAlB)ɫENm &}԰LB{6c."OAS쩜Zi!CdF3$aY"Z-Z֧R|@T֭u]>X}A\}e:rZUT֧?y%8̓QJ/"\j݄`-yH%s9Q7mj+cEk3PwL)4›G^xtiE2sF-#m_ UZ +"Ͳ%v^yB$51o2|]e{ayhwl>],{"ѭdžޠh՚6US+ٓ' 91!8,͖~S}EsWWA"}~kLt2!AzoWp#5 k:"}T/oK(CHaKo j6{yA@:v`wg\N!Ɏ5BK;%fC>}u,#LB&' v6ѵAr^(Rv p2U"N nKݢJՀ"/՜rЛ:<ŃC &vh3@,aʁ=Q/&*4$1 ^obpO0/m_c@9_]~\Wl/i=稯k>S@_ň +G62A/1n`jk/I{nJl4bMu!>ĠkL噘f6OS\SDT3q(ږDVG{ۆIAU[Fu5X* +Uh S݉&PBs u/lk_ YZښGP[K Rڲrǐt)~L_ 2]Xrs. mIDԅ /A~i> .rYd܄˥ݑkۈu_]1 K'횜HՒx)l#梵!L45'6PU@PαzQ}Aa!*]]eIH駣 US݊hY蜉MO?+>_-mxPzE%u渱UD#:9ҬlOH+zx8T⼊D7iDVJ*M^4-"ktZ =OSZj YN}L#;Gl YY/)!CQLzC0 u>Fz>#e6^pV'Ӿ=k U Jh#OP> +V2Y X=EV~Ԝ"2ɣґrP|Wd9/W9Ht2 C fL;\3HyUqtU{zv:&2'|ςZZKSNDf }KJpZOFnd]񁄝6"$Ե K6BEZiki P+;YzkODx..C熇`ɷ שwb6s˥=4YC zSE}wV!f wY˽:+~^068=}9I]Ԓ>*s=L~}' (s_Z6㤯XzStIV-nW ̯Љ͎TAY~,4 ]ClP qA3qTTeR<,L!~ Lñii [g,DtσM0l!F)6|HD$2w@X9IRM"|a1a->wØu7 Ign+%cBKKKDɢA㣲n="5~'V}P׫r6'ksO]_ XCWJŜKu*P/NOdTEE\sWΑ?>($7_b#dۭS+QFABu.HUeqtu[;J K{8X;~2a Y{|)NWTjJ2;tKԓۣARqCorVV H4Lt +/ɜ/Ņ6+vuB^IH_2`qұb@"c4\w'61](c&jٯ +FRO0~MNM6Q꿭%'s(;oHuۈ_]s,ED9AKOǺY~6$\5\v6V[jݤ /p+?W9#]Nqlk̫lnMYb EτkkU +5xF +ݬX0Ăw푷Nئ?3,aDWc'rKSj=`-lrvÝN0Rty o.\kcn +3w:mA3CA +lY7p ی+`qCg!S3S@o3fL] $+,uHQW'<^bH,O;={B eX!0h~O?Ί +zC#?HF^r09qD {T+eHsxcƒ"p;mjp~y^Sl u_ } ßքWkMS1ЪNX4ީ 0hn>O֩xJgf~;5` "(9`~UEjAwpKXe})c2{G\]%/8e< ަxOpGS&r?Et|7Uv|/ +x'lz +Z|zUI~ahp`rXWsOGSuG v{?w6=y{/{ +'| st~ vxgLv_wW/mxN۝'yFzq>זs{m64|o/}v'~} {sgG-|T^|V\}eNw }Ff~I>~6ȒNL/''ތY cef1^zɁVNvNCF >o6/#k 'J!!1/RIfH^ +U󝮆GMњELV>D6焂/&Ʉ(!N[ey']/hUM̉E>m6N/!3(%:!r l&7e/ő?]){U)?M+E_*=ӊ6`n/(,!gTʄPd!=\ݔT̛Lޘ}.E"fb=O6A>/.(/$!-?yqd' +\UXT&LDF= +6)ٍ.̋L(2ȉ !܆*/_jeWigOj!Gѧdlb@Z"n93qK2s+wva$fKx{;R}z_EkW@m#OanGp@Fr91t2fv+*>x$zt |W~^yqVrAO s~Gt@,v[9(^w2=y+M"{5$|ƌ~G|^} vVFwRNۧix)GMoy@Vz%9/{62$ |T+i}y%$~ AW^ {VB"|7NI|GY}/?I}9+~]2*)+3%HHMStu]ԬV!N`QFl?h8VF21Y|+g%{BI]UϨ:FN.zF|?88ꘝ27+%׃^̉)A]NUaMFՇ?O8ח27+Ґ]%Ɍ;~!{\;.U@MٌF`?^)k8AY2.Z<+܏w%䋨 !)\TݒM#`F4S?n }^pI~8Nrr~{?t~0v~#x~`Յ]cטf$Yhy{jălFm ]:oSN/q9?\sށ0v)#Ax[+_Y-JbBӗzdghfyi͉FkUl0$\znMp?sC0uc#xw ^.Ťa&ra0u#r#we-];L`:c䆟eAx"h2ij[=mAeLo>rA0te#w7\vƢ_|hbW dwLgcij ZlL\oA6>Lqӌ0tte@#v򅫰[ɰ^۬;ad`vfhxiZ9l6L nԓy> qu20ht$ v)[2A^TaC̄6cvf ևWSZRq/G%MAX"V*.@$\YwvBB @ L"*ZzQ!"jj+U#>P{(Gr\SN ?}kl4'3LR4ZI+N-)a J"Ck٭}:enLj$;ZiXAs*_FȟK|gd!Ib ./՝((ƻYVN)ଚKPt\ +یي1<6@yp .%Aߑgc#T{7 'C&(oN"yCWzf6? 3fl*֫ *g#ͪ拂}tcQ5$Fף{+[ˁG"3+[uS:ۓaB!kq{AcY 5S+R7%hP&s Y1lzi|q2N{aI{#DÃSѢo,R,'<=\-#:3/ 0y0o ^=V608Y}EsHSgr$/265b` +*-^z>wbά 5 @BI@h  +GY/xP9=kA)`Ooi7Jn\&ZVCY# (HJbo*W.AИm~7?d~DG&)#6qS_NV.Rݶ@Z wH +/\5I@MRLlM1SzfOS%JGIr2*l\_DoF< 3zV_4xCׅeb:gR"-R(#MXRϙSNѝ냨7Cuuhi=gfs{x)sOoXq a)$O^T%Oӥ>E#F~mQf(|}'ݳzl9+ֲHB#~kKA))b%-(VaPV )߳ڸI:suiyP# +ls=/Wc.U/7EG@_}yy[1n,֒!+-'swAs#Q@U;.zHzX(z . 6d^fU*1)~"3Ma| O8W2f1VM_u:WFS$4%,;Fg{J_Љk8fi17 V@^zF?r5x7:TN|&EI3OAf{ ԯ~GrtL@˶aͶE8=$6"qx6\ KMÔ(YCB(_8zjEu|VȮE4z4O} ވ}Bj!ʹEyͼf2i-akVLpXeҨ!z3AX+la,.> ߭"x~ߐt84թ[JWiupMQ9HtS@%*ʩr + +!$!߻^N "⁴ckʊ*:Aԏ~E"jjƣܐRKLM'FgOUw򫕨ݎթv (~ThP hE}SCBwıyhMbh|Eyۿ{ 'W9} +Ud;'Uedxk*Z+4#[GmQȈu4;<ηVixǬ~Br%.~Z %s5*KM#DiUuTY ShQ/W,\"e͊ |o٣&cYA76#5cB폢dR{K[2\Vq +sQ#ܢ|X1 7;;`RuX|ې5:ayhEDE;U^͞#j1:qB~CIou#߂ɸ`f%vpH gS`0Rc~F x*{-/n#\4D%.C.@`#8H +>(~,E납ew ̫\ HәA5"1E E 1L} ܨRc])j$.B'X!>Վuٱq 14+qD:xt9PDfԈu5dmNuƖ+b1q8>vX~Gi6^NބnHg˛L%UC vUۅfV[SeX"pI@і6*mR1ez/6.K+}bP>P+ l'0[3>LEEӴ+WF]eT }h̽$e<I$~V^mqa>aT+.Pba%8NWv4>XE{]њ";/(>D7Z!KK3!XJO)"A1}:+좭ۇ" ZLF~vr5)VԀޤZ܃JMc;‘yd-M:}'DDžm'ա=,NX1P@sWµ{Z5Ni0җ9n0mpxp?ggz4>g4E^Ji[!h~ CAx>0o[>285{iW. Hn |l}e!vm)6^v|#}?WkRS2;cU^/1?1JܶQ5~CĨ9GA3lw@-d_Wo')*T [.ډJMKmVn v{UO}s^9zb!*2ke2ܷf<1BmP ר7!~^lZtU(WO'ޥަrƓن*eAu3hw7 }}h9ǸUOqlZzn*d|i̬$,-g#-NkT@4l76sOx#7:bYCd7|.G8%~^JtG}kq5:H̤Z,4 +|ɿx7JsL.ԗS8mԑ8U4YKI}Z*Jo8Y\j. j iVQ O‰G%}_;oEˎvfYj7͜Õ{cz-9Lh5jg94|@[_tHG8悦FTS%5.u%kZ>2묊Cк|9k0S/LQz^Z(Jמ`i(4l// ; YYdX.cp7i :,s0#3мb ,n 7엠i)N9"C3/\/s3Ⱦ)pXx +Ǽ*qk4ߗ>+ 4'TADJ\UibJ(⩺dCW.nLTC--:]ўK$YDC}gF(-&lP( x>>54 b䬦_[Gl]3 41Έ"aWB+ {Q &6h5}$GN\P~y;$,1O؁F.0ViΪ+Q :QJkٱH4a s-E$."0tgU,aҶ@H#$ͽ[Wmߝn3 >_\+Tf! Jt-I;7ĕVnE펕;muTucf)LD|bejo0<4/ODzCC.I5 G.j޸>7Ʋ,J;i% %K7䰸GXٳ +d5,ɛ +ʱIT^bkKW֛iqƐv{Ÿt˝56..+YCI>f~h|s +) ~'mT5rKv'7SS9Y&$k"+!i+2? +9G 0>YK/6>0# +ˍG\v"ZmYYk9C$q7{/'9tfLv̥o$b]|'z4&dR+ zEгWmSy3e]}\9< V'ƛɒV:},Ȍ~&~` _|Xi}P.~Ic~oB~:T3̎g,ԋǀ<&?/$[__$XEPFTI JAғH:ѐPK3J,ߋH&^L T:Ăb^으;WPDnHڔ܆A?:93,vC&t F|iqC^8W3@O喡HAf:.3e5,މ܆7&`H ej؃^+V͘ +OHPbA4A:ca3܉x,ىX&憔 }Gł/]Vs1OP`HԐA ^:G]3ulq,Ԉ& C9YfaOQcJflC`Qi<~xk5뛔n/Kq(ݔt"ѐ]wz z*`|X[fQhJSCkC8mRgirvgitFhl?uYnwK q+x[OxP GbwdS}Z^()|g-bf&Cu%l񑍪o,lIP]0{mq^tQ!P^wI:lWM" :q\Z8Nm$ +dsKdۇkka3[{1LRȐ%x%]-']{X [ʵ3qiQ(.з?&{53KDX9)dgcsKU%LM7aIf}.{#;3%sܷG44&r!hW.5%+:HՌdW?P +:nE@RCPY"W`=]ߚ~Jؔ #V9`E2ECup}o~AdRY.uENJR֘^@័Kƅ*a8_T%x^bs2hΉkw%He𞬱bF{ŏ4|aZb]~lCXqYEdk +-=HN9O|F >S*~K9v׭!A0~q{s,sJUKm=c7%!5vȗ ~PQNηBm-^k:_'Cv>9D2ߡ +"J²y;Iw +!y{X*HL Ka" hzN7wI${{Pvx_u<=l.rX"|=SݒY¡Q٨8"o@HЍUơCt+CBQ'V`j/dSʪ2QtOy&!_$T +'! + ˉC46#}dzUۨ{NjH~|IW^GOYVѬvCK4z|D?N1[+-'b@6 +&\a> +UuPK]A\ +uXn2cHmeա@eHz0B|C1ocHlSDŽ[^^fw!#QwBqDg|mc[N. M`MGYDq'tLQ_U#=S{ a63^Vi*פ;6^DاL`RKVi{Iᵝ)Ҥ"k ĵz)Q35IL9sUn#LqK:c1huvtf[Ŋf97xE*}"=9+"q\+n8Wh}oϸ+tKyIoe>jJK٪8$^V{2pkN|zNU=DY6Q" Y**#l!!2~ aqhJkqVQx,z EEʝJ9yIyj0`ɨ4ȳ+?T&uKjOQZL +߬M;D=-XB"mNx2P_,V"'G9IDLj{d.-lim + N+hO.}iX *)ۉ.{KJ9N5P MA;@YoD(v\)ӾB?wq⫔X; <& %`(A`j7}LzXR$+;ܐ3P{ fH:: X+@ `#פ_hyX4uE㏺Qm٫˪,nî]35LUdL2hoE'l9?1͜.!r +{"ك/tysFiɤ3tDW{ju pro +<]5ǚLGfwr =dnﻓ4< Y\d(*)a s^\ml!7{Zެh s1\^XKsUMDװFBϲXo,bzq¦`?WizƖ/Rg= +Ә185sCݜxqjVD2z +FnX c6Zf#:)dbHA7aFJhA aV8 76clhF4,FvCM3zNE>6"{ +4 B.ǬHȫă'ƭC$jUA#Idr_hq7J:+ؒ4B]kNGFo?=:f-#,^9; )0.W"%׋A<mܿ s:67b'#ugUZW| +?E[aHŝ޶ɢTmAMRr/;WZXÿ5.㐘oqSy0s۹^k*TsR.ZJuRj|" \û6ywA|+W^=etѮe>Y3qO?5_1.o}bbG 'Jjx`n+}͏i%|rImx<~#7 +GB$}؉X\+crҨo$ Z}jd,]LAM qqZg}ldR4U,:K^$FB|\2Rn5ëQMA:f hzW{*ԝ"ɦw,¤}P 㚂X ]_8IA%tC] UQM׊ 13$}':n|cc@P#*;`=+pwy/;aX`DE&Q0)z·SoE8AcP<_IS4AxP{jLltݙ: 2L!d!\~&h~( w cAg1 II8Lvpː@KI֚=qㅘݐco( zuvÿ>G>)@Zw]miT7$Rb s(GV)A! omlA*Kȟ)v0${UZ,LJ*mr2E$eJ~` M26iPmW%jW Jt;;^^֐o;X$1r;^ qtkX#aBZ&rν-R[E:ʃvG, +YI 5sk/D/Bkdʳjܤ$i贪!5wqz6V3VGfm?$Q݈NE"AU>eUv ?5wϚliT + c^ ]:Kߡ4v=Ot==yMB]TQД.A,_{qSу2I_\, +gMtҌcn8a <^I\O2Y#,c9x%>786(^MB< . 'ྐ1,Π a:=<B ꥖"H_8k2}dz:?@I%NAŭoؓ !l"FcÛ5 שPeB/A0 Ԕ|ZO%}(]^k5@A(E++]jOASE/\"W4xVi>VZ6k־.m~?cj2&e_rNB']M1׌:ַX2@+jB?ⳍ]/2ǘe=c{nЭ$>mלHeru\0GVG +}#]?`4pУL[aA@m FB-Sf撘;/t*X9KU?8kxNs#yu7D#z2Yαm%v(dHwo0)>IL{r_ePk#Pewpo6J!7g*A8ٵ`QcYQ8Bew~>)2{p\bğ?lk#y(C ^e"F<iRy|"z_W$_lek, u2%*Bq9GV+v$v`>Mj!"r}ۈ.W4 1(;Z#eEw~c~j nMg6#I{;ZȲ(TjnSUZYE x̂*pYrAW {L𝑻1R7IaTBGt^V؞׻`*8􄉢 U^U_ +T)'@LSQ[]'4Ā㵺?n {b9^>2~V_ M֢5\lp[>:y[^=NGk3!:]U\>7 :"\vO(M3 ț4Y^fҦ 66DaxNⷯ6ӣB Vݩ4^&ԡkUyiU2i4)׌rI|CqA&znCTD_aMv_r.U;J6y¾z#qWO_"\8jE`q~a@p/V0 GR*Z/?#?)QTEdDTPQ.,&Sk +;b $YR,K'hq-hו,ilݴlt<3JЛ U'K@33b1PG1?ͻ5$ubpyuNX1˂4yi@ mFا |=ߑ -u`#]-;X1)fm"m*(XB~; Pef^UB8}X UADޮqeF@d35Mޭ_GuUEƬ:Tľ;U.'Ur87LdW8 +6FRAלk0} ΄ +cb7i|h!WnB;'76.snWt_ŐuD*)f%B'QP6xOgTm܏٭ +[n ]{*c{fai@$4 +}c(<;ڳe>kF[do//%x4!Lm"bPDK$`3]2~'ѽw`ÍR/%ci~6t81` ȉM菴5{S5E:I]Wm. _3kqq}Op=T,.oaXs&YQo&&CrNp?bV6-~aU*'AW3x/Urs%0(%bŧX0X,kUNSc$>ZH"ZrO3yc"AJń&C\iRKXo" jS SӢUeybtDN$~݋Y)|W7 IbYdO.Q"^QkVe(kePڒkdޑ_ +zpja2 +|FJnJzTs@9>P\SSǟ#US: rgUn}9(*P!+bȽ㰟 iWS@P[Q6YD "EDPB{yKH0`Z:ֵG6QaseUDK]Rg=>g|.뷛!_mŷD7l_>fmTNԬhGR`|˘8vqhhZ~du禺sʮw`+N_P8Ev] +IAZ1麣OCbs`]XMzƝ-G.jܔ4ߒ2~u,xLՙ,t7qmtbn!/r8xN{$sH%rOǝ1uЛhӓQ4vl@ͬXyꃂ8qM|띗y@?w[PbdP]O +-N}\Vf#xΓ!#J}fk&?'è8~rFo[U/oڣ"iȦTp90gKD +'^Q @uRt+)PP(jpC{XN!ztZ%0r딵GT q>;2Z5JݨQ$^ MdD Ə } + %ڂg9,5G%. +zݤ4LJ+P3ldJFb7Ykk ̉—ƅذSeSBmTBn^xƳij?,3ޏ*Dϙs ㇆ զ%mQ +G YJw\eo> R\9hyuOtAϑ-S?ԧ͚I8ӈņq$6|5[>21QJ8SkU %Uthn|$=-x$ ._D",V9 +D`Ue27Du*5 ),,RgS~5~W\vŕbhTf1~ђ[Y˨tN su !0}p5u(ւZZWQјD$mA AF@dF3 웻Wn]@.p@q{GxOEzjU + Q%O ܖzX)4xpmI]Bx% `0 QCX\{^|lT jB"5'Ɩ #äA4UYH?vB觲w0-C_ܬMm z* K@=)z=SlŭE;HJB{zL,LuߦݲCcұ bU LMn0cbhZfҭW|zz6%vSE0ٿ`=-+`,Eg¯V-/lt-]9zYw$[sQ=Uh;u?@ҖKX1Oai;[dUf yDfA:X?S=;4~p}S =6, @PLTQYJz(M4%!eDIT%-淌R/ک_uv~[Kg"h?RK{ŻEDln(U Fmá'Q5;Bu*`('pU~r" +}T"-ܒTuFM4&uz)b.'#^ ?bW;FMH9G,/K<ԧD!h0-=g& {|?'߉بX`/8:3Ш? _G~BaQ/dsBMXsz#$D/Ac4 = +XJdIGpo*"8flq%9j|{O"4>0SeV + bTe'̃U_DOnE5T/ˡ^r~|nU#ӥAmLwvKPBql3GB'+NM&V،7 I􁩌i_J-8: +LXV̐f,6 Rs/^Lg% /+qӺ/jZ_VI2E`Rxt$ǭ-ew&`voZ2Vs{gݲi2}zC|agex^,kz yeﴻ;֙L9@;Ö./zǷ:֦yXo'm2'2o|N0jٷK2ƠLÇ7ɹSd.)\?`T Xacb`A&ާɴ^|cN&g(tGy*Tщ,zK0ݠ8J縣D~!i +@Gx sTYHY_SJ%)=گ=qdQCCzRKJVn-3EzIvЙ"Xl=! 9䳁p,٣T 1T7ׅ,dv 9hI# + l$h8G RʵI%\ +hA͘<>\F  x #U33!̽Ttt|Lw}.Zyx)_4 ib _uT3IB+f"ݑ֎he{Y +_ky<81xO.VHSݝx[EGݎ ⷈrڿPg1[Kq_C]ӄt z4bk2O! +sH9?iRFCiӚmq +-Zuk,JQxl (Qq5,2ԓ`!MnpUE\I @IXʅd?\0rlZN&'C8n- ]pXTHw)'׃wE~".1cSuc'^EqKaIc>S.-,xE g9}IΆg CY%J?^ `aYZCdq,P2c"<3D/* ē7g> gl;߅ǿI_11agV"\ZSxutlY+ٸ3L[{1V*M6ך]QhTV)>In7ަpÌЙq4]ƛҢe= [%Qv!}5sk)Ea9>O'pwf;Ӗ6X:+c-|ߚ?#R1ުQz)ȍhh.GpϤ7:C\YκZ&QD_EQ M Cƕ~lN&ev>/ )6t!9g1M5IAES]8+x4g6=Go*286BW7h/qB_1\MNzHA;-) lzIj r)K܁ +(i"5 _%_z; +֏R=e*IAߋx`=U'pS6m`6_(77 B42_TNC1ȋQip77\=(6R<}c勞8WPH&#mOU"mIEIPiS>8 +Ndj3'yKҽ.RCG3>LMnڒ3p]AK̂B:vgHk+cZ[ZMU\)ɝeL61y^W,hg':ί k?]!g;R5XO7K+Zz5N(MKQwn-7(vXsUI۴ZVWqW:;V~BַeM_xzZV0QǞ=5&uò k9޸5ObLku^'SVD&97DVꁎI9/sQl=(`מTR,4E15n<ùN7TגZꆢ4BG29?,V \fSޮv}E:6*Cܼ@ms4ƷX̏ܔ 7%*S)^ղcD7 "x'9>M,Γ-l)Rn}F쉗YXR_AdIT]F}E w_`,uk<rWP`g +o 崉{\%D3ٟCnqNFyNHG8=}A8@h#~E'8or7GJ< W|:fz_SLf:[CPknEmhTe[8I3/k@@У=-WeDȐDECy!:y(mW~ +B8WZZ@G﾿cd'=KM"]]r/|G1uD;~pR|ڝD\p2d~!=♓o1`YPvV1rX zGҺ{M0hxQ.1#O{~\iU@~zX +A/iZKowϰ ~<͍BnJ2Y,c}Pt6mixJs-@/5午PyHH+4u +Ҿ xkyܕ6>.(+O>Jy=uTm 'a!:m\XYjH89}LlKOrOύVŇ:Om Y)ֈ@9n9%_dn3W|YPُj mV%tkd 0و'I v8ZԻ +6z_zjZ36hSios8)v~MBo=ff#CM SFE wFߕYfnr6#~r02&Dzk6# MH>* g<栜s!t> ZA)v B.ELUa+ }- +|yEH6#f ׼3_i/LoJf!ЕHVE&ħ:QM.Adh>NN8 +%q-~A";&0}[e?j\N<WJ6R$ ', 56ϺOe\s|wbn*?Zh5#*p)ꍌ%z]]A+to>gL +k+مY0ROnO+g'mf`+4@Yё&cba%n,qxvzЯlyB*ߓ͗=X˟R``\1YUt6xKy{QpE192>OP$zzDF+䷜(q7΃pf(fWyQWsi"nL "VJ =CƆkgDX_=%c%R<ߜG1s*oLX~]ij-xY"S Z_aCn S[Ptm]p)Um'A0THz WOfbʂ~fJK-BjK*W=?/Ľpo#\-2gEN\D(| JMMs ˡ]n֤C3@C)Cp'L|z\.9mQ7G"p3j4$4>FK7;cḺ܌q6>(9*E7S-ꢽ+fSv8r; .-%ÌYR#VyH5#"|{)Rs:1AetoT-RF_]rw+ji  lj$Onj2"JsPD @ h IHBK򒼼$rU)8Z-PGQA夶shUb]'ZZF|E{AUysNOײi{vlTʺa X˞‹\}ĜkF{ڬ;BjDj 0V)!"}Lo+-]YaOpBΕ*^{t׾ X1f{:v%aVe|k~[kmq,mTKm`QmQU<5R> +b+Uj c +<*j\GQP;Vd?x(K`W=ac~U\eNÛɁ/v\V3jbӺ TUoOƷug5Iʦ˜}e#hNm1,GfRStZdVm.H ہ6~Zgu\"T#ض p>GoAP > טLÕ4CKv^24P+tޤc4/f|l>څ -D` +˺.&OS'ku[Q0&4b'scmIU-5Mli6>VPwGV2b +T}GJ}u0Kd^Ӎ8N'5Zn8߰{7ф =gҝu=uW=JKjv^ԥj{ +䅓 779 +MEƪc3Yc VVLݵMo!bϫoN>Aij?* +ꧡo?a!IaN$n'Jd=ɓd!P3J)4#2Mnݎ`eM ik䈎W|dW]+Cy2S1L,1-ğ6](`~Dر;ZRW.M{䣼ݰ/n,Udx^m%F=)XESp?n^FBjB HT +qM@f1.1d"DŽc.%I$M7)\gX ߇n#鍆/qf3ix!^sr +𧎙q{hWwl$C ;GI8uhSfFb63Fh,yi] ɦ#U:}<3y{A9²+鄡2ۚ!G!-۴^Vi]@c΍,eF0ѕf.&[U?f\<Yvaτ0xyNBX?u!hkmOU[TGā||)gB`O+e=(8)7:!E}jlc)MmH;Լ&Πwj#1-ۅg<森ڙN4tkćͭq% @`Ŀ lK,aKW:b +eŖZF{ϵx2댘Q鸟JKƥN~' cp38mkm3gHLJ%Ģ7"M1CL⊼0e ߰0.yPJ-O{ݧ-!垊a],1ڧuqf\ +%azr.` $o>B7xevm >Y`վ` +Ь]Ȉd3t@WLGo(I^@x7ZcS<1U\pH)tEɚMdYj0  9N,O%&#w31ukm3ScE~|%2ˠ~aWU_QK\>BV|rEgmO`a#LghjҰ br|m b!02?cTnbUKst9ҴKWS Iy*ȫ1+!WJ +֡GOxLbFSV]6{ΌL0'EQV3ϴ ޲Ղbd9aulg~5غj:[rFS~n9:`ݙfk];h`ӐPDV7ܨg14.Rl7ָmʜ4J|hK׿7meMw]%ލ4`a!K]j5r-S8ԭV&E,4pVTNҵ'/9x +$PY4lw#6ScTBbpRn~/{R3҉@k1C{"c&l$$ >a$S 6p P%/6r:0,%*&#*rnAJ Izڠx$5 f89к +O =Rke;a.1FdCѧRܗ;@ +R5'w=e[Aar?k\bqĘJ-qSPȶdQ9,Hp7|/p[I.F{ڲ< ZB%cqGGb OYmq^<"9X֜ZA,&4> ^ΥkNH$]zKY"Ccu#ĸ3Zl$ +ݳ )BN33nqPQ٬Qp,6S--B1 I=?j9*̯ϼLV(.**-Y?*ͻj%ȶJ:g>̕iR6~n 6]8;[N"K/<.eA7)UW}:sl'0%rƋWXf7& +iPǕs)zVq?>3igefALL2(rSfrenU.^C#rP T94tSMVj.~BG+W.mKMsFH* qĐZ§'r4D+-qb@T 0'G:mh05)I D`J `P! AB z;GJt"oz+VDDkx;P'DU|z!ϑ xG[e$]ov^Xgo ŋA(XP9!~[Sȏ6>ji6if.@}!Z"5kAO䶸< ( ˳B1/ΏpV[jYH[ICmqA|h{"DS<]98%C}2_b-MN?ìt΢lky).mGl,JPN_ 3uuꓴnze[g8E(+2@. tr_4Fdf5g /Y)m't닶+nbE;aBG`i拪A>E/iG,?m"keʟܞ)]^y%bRZ+{%jP$:nQ+2ƲժVM1ת ˲# +ZQˎPUY 9bDM1 I;)sޢ.)w*ZHOB >G%,53=O3 + 2CȢˇɩDa@9I,5Ii- [%^’*z= +"=@w,k/ǿHb|By*!ò;$yU yqG=tQҦnUV5nyk/ C$, Lh +6(ev]%8h,H +4_(YH<*"iIEtH:Lp +)At} Ec:O(*}5?fV΀֘qx1vL6^ݖa {Zw܇/8$A[Y{ 򤶩_@~G܆rP;yN$KBka/r78h #~J_\u-2 ̊sc.'g'F+AZ %Ԟ _hp#8QBq (lk•_YƋkIw6vCB˱6L7On+l\SНP޴ku@lz#d}FwDP<]U,xxnR׭}ߑ7~5藤]k^5dN(;q,59 UNqChl* ,?dz=}eI5e*;|b]u`ꘇgstNE}oGvjӈ1V#RerWUg!^Q(0J~`j# N&̖$mfb'߂D_p=|Eة7k኱}*ۆ{3N-oc&)˨&GJoȘܻ !;:h\'xaSܐ\}%kg@` o:c@*ƩiJ$X+\=f~o$^sf:7` ]c?dDq|Rz:!wM9n? /EW:N.65,y ӿRQdֻFN s)w僄&g#5;nG!NH;rm,Ďhw1ϼA YX:8i`55nFQqp џ? Q2| [b{F}ewX2x ~z߉9cQVu W캑7p/<*s=et=I9IqM4uNŌ;f¨}Ozai`P6(gTtxEBÔXlE;F}D !s(-2h?m YLJyG2YgrObjr,5G%(E*}6Bωv׷&$E '//ֲ&u51>a9H̏qRZż%HSɆrL8w8Aͻ(=l$SߏQی!7 fe\0l!K/PZB͈~h3]V쓴4}Ou.kpmv|2V8f21^Z>yjo|H>ͬd^unj;0B- IU1m] Վ(OU.wp2 H1oY bҹO9N#tlGo4=l{RTx-҆.Q,un@Tj! fFJh6OkA9ه8Lg;5JvEi`ZHKzss ߥI<ĔvȎNػ~Jf)D'̹v<\sMIGK)eZ(}A{G)%SU!&C%yOc5ʃIz:-/&dFPEJgѾV⽼ߘY.yqCْL\Chi$WV5:t-z79ΨE /.d5ڜ)$>K^5Z5ؙfD.2#T^Bo MuY2dRG-N'ޠS`=2J7ʓ4$]}8q!i\ݫԶh#m4# .nW)Qڵi][SNv%p4M$;jIɴys 7glaKXW*hɤ&z&]gEnR=ğW{~@'/؟9Zp!Y +] 48~ p{+1\5,WJ]-هe]t&qAq%͗A7!0n+0ap[y0p\^I 7཯y^E7vdd:Ź):` ૢܶeQ|Je.l^"&o/{ɻU7\@ +1]zAm2NUz^ A͡b,:aoRzėxuu g  c<32qVt]\OZZ8UPAO^pvin4DR~63WZZl6{*̄*#xRdR1`e6G}yoӯ#TLGc5O4P6XT5*e -GYSJt &t{<='MΉJelS^^A"EC &P^Y>UF3T8v +Mm_hJ.59RxWUNvHΘcDD?wRXNqW=T ʘn(tISݪ8~`B(柦Ym<fuҊ [aqEweZe^oJ\*N"JU=_!p1w +ςю9&x.ʐu#R_ܘ+lTY+u=iQF _\<7cf׵~&bs"4ɐHXia95e}qB_4m [aGDyB?Tldn庚6DŽZ|@ҐS'd}P!ud>OA%6x/TBK{%UVjo}B1fsKd~B4kL0Ie}tB[qN$ٯ5PzxAۚ4S!g9 ZeH:mq!W̌&ibj[@Lusfw! a@Pv_ +?z! `*a6Rz-Kz 4$l,@B'0;̀tV.^ ;TyQ͏rM։U#nI!H:V{$[% ŠC MkO#wa:b +I|M0#ԄQLic~}.IH!='VL"8Vܬbfn\tVZSLt]˳ 85OLOb~ vb˪8+9ua+6Myr]~Kh_m^M݂$7XEq.M7;l$ <1Wbz.(% ǮQ^?hyYE!eLQ +鶻;Hiԩ曞'KtLK]EA5BM y/?4 :ReL6|L.$?m ,JMGx ;C'2sPP:T,V>]ikJr-ҥa uANx?ty ױ|UQZQVy[(˰ڔ㩗n3񷠃!x"l[j#1N- ~~Evc'gcKj"0נ e +BF4v{DRMӶ?.kNo\2[Iసj _ ];6=hXCR0_.Tq7 O^Lp‰A1:vZ!׈}[J1EBԩ8xlr,<@&”pC"4&|uCˠwX-17k_*´TKVFB&GH:fq%_[pBa-sty 'vkm9RO2kW=ʒ/hIaTc6p×٠0 +.{vm5+m _TS4[Юpney_iܑ|P}[ ?ߠǛ?|HB} esWpXMzJZ*ȫϕZ ?V+%&}@\`o +cڠ\w8{>%5ۥ3Β'WSe2Ī^nL.W*0K.% {vS -ބ={Xg8Sۊ0bh/NR5I|enOzRd[|ȟ .D6*^ݩtE|xUB.QP +ڂF34ZiMsy5uL](I{`E3cAfLD19  {H!z㚭2?sn]e!] +MpY"= +&_OQo[*B,lQPq>߈>tm# 4b%xٌO~H>pA-C$+:prˈ{q'P|Av1:ϋ +xp]YYz'Hךu9tIdKQF:"_k?-l1 +|AbUnWWlcZPgϣ/Xl`M"CmZtm-o .xNz*eOSaHñᆪE׎' YJG{D >-:Ȥ= &.rJY[XZ"C=N}sm,!t!,!aYz<oEUE8.ėV{F6)ͶSjYz_3j>浛netdqUd\XzX2(*#TznuVfgA״->禲 }DkyguZUk+2֑#۔k$唛zuH'Lӌ37{25;G7gLjU=eX/͔'ŻI%'Az%mAz19}B)w5Zь7H~8)5N}śg,D;Y4Ss$&""!(5FXSM\Ks_` ۀ^kq~/EB||tR=Eeޕrm@Q\xz( .Bva˰yĜ8\I'RݧpYl"\OI`.-ĉܸLU &T_Fw!0Oigc=T]kҷw0!5@c[2ũP#-F$,=gx-Χ|߆xSeÅg>ؚ<hx7Ӑ d^U1MHBBƷwZP<,ѳ޵*uE󔺽Z7u@ջ_5M4^^;J +u+.n2-^ժtB!mwRoh6u>h/jT*/WQS%ƧIRY'XǹSTz{v`A *s9&V1~zv_>sYwMք7zywL{ߪMߑJѬj$9Y,\z5RH\NgJ:2M8o96˚L-\eH#oɮn/'b0Δ?r.f2帢HY.}oǹ::Z-G sC̰$D=VX@t8? rf.F& c(8|iB5:1`ڬ@Y.+~Ģm`lJ<&lƛ lD=KxCToYjøuZDCˎL +v$7OPp +>/uY3}]zTk/-j.tDq ȓϡt$E4 `;Qs"(v'vpzsHh(R+ ɗQC|DEQ!^!x[&TiPgzI8eXAԟ$GJ/bȄ4S׏!޴<BMq=jRԈ3Pr5Pi62c-ڂL<({ͣҦXkm"p\O_m}6QT;/0;@ B1tEş>l{B~1'/R6u%(w6z @A]:몺,籚f5q" BJ@?4pQLIóasa + ϪPw8=j vcfӓޏK-1=Jh[Uc̀y@DT{#(+@G!ʤ]ilj&6`ISdUKaGK@N3Itn|Z*(jW\_*N + )ԵV]'j"4SҗZh ȨTWGFv:GC0"|KLF~C@LdH!B#ZG[1=O-q7kYѪX0ت5 +Z4]n5] ?}X?f .w;m=řq-maacsUˆc$cGmN?9>j1ޖ*_5P\Un5yHָ?D +hs8EgƝ勢F/]*=kl6N²SE^fKCC3Lc՟+=rwAcOm.[f$uDgPzI QĆ+[Sκu2s˶Z̷sAm:˵Er̡>D#B:4">#Cj2Ke>計 +:;:3XFJ^$t%8"MAN +!BbB/RHOsvv؝=q={92Si@b"S#]]B1;K: ߭Z:܃6d]䅨:fFm_vTw:W;d {@P\45>hz"΍"m;(:`X{ ;X>|\}- +R_"7-HUV75FO (C\RMHcہ=Hak@);hkjOh4ipdCf,/;^*YVSEev_zڿ|n6or_{T@]C_CG;zOhSΜ=w /_r욹uk۟o{xz + +  pNݤ{~Q̬'9<}l?b`r۽Y{8γtE9]@A&nFIA>k@%LՕ''+AiPAiP`bX Ka$ù= Ux{^5$_~)n&F +Iq.6aJS4>a X2kdk0ɍW|Md +۫څPI%j[LnJ$S4w#-F$ɥp7prb_ 7T\JP 񆉿="d*d\1Nw2+Ψ! b7ϙ%40Ĝp);XMBQdQ438 i34l)ߞ jtb8B3D̢EJq 2rG/"N)'b"2ovS,a}XdA9\UGЩ>%n==hF x[sd[pasMcf%aq ƈ$jT!%b))bTI+ӋDs +wT)՝dύC4UՄRb<=*L֟M T4r|d']eXD,⺺.>n1,aؐi5 ^%; +o{ńzrh![f (WN-Qͽ'fAV %4&a!Rvps>+5:#ؕV4O)ֳ&.ˮ@LZi1͑P!؅j}9>4OKJok2˿MUU]k0hzտ9g%/bgLȝ'pgYiْuWҜs0%c>-gg4( JҠ4( |prP\#Gy$7L}F~T0MR~"EmEYD~_9x2l0> N>Q1r=3{]8`RL(,7's7=ggPȊ{K--#s +U0A)ׄ.|LhmCsfbOvڴә>t3v7igfh&/[ 'DP#\r + + +(j<Lԇ<|Tϫš ~s&q]Ӂ?aE9 ܘM~}Uw l.kfEz崚Y`UnRmJ3~]~p ;ύĽGob$ eyȩΐrG,|V^hȔ B7nHtŁ s#DQ)g'扜a*_T ,B)bExfræ> `}<şòx!$Zē&(j赹!̑ο5k &̟qЬВ}qX!p:ui3SYJ*O'Q<{(wI\nc:| ݼ8Ğpa=YHYCs3)3֧c0D ,{8ۉ(q6T/ :x>c^PqP%4B֘y +]DLE]9d:0'A.p~}$ rF_ e0>DUm\:zf& ZiNV2.7)yȳ@uq8l K @"h2Um8ՈCklP]/xos|}~a{q8܃\Wiǀ-7ٺ!XhhD2in8XQ +uι)mw}AʽWïk q|>N:;ĪkGc_tRe m;?x}w"yNhxeXڹ_$Yp;3ns0)#(U&Z] ԉcjێݱGW'˴Ν$× z3a"5Z.** A|]\)(rn {m_-l#@zp7]Dz^Ӷ묚{F.=#,<}90Ag,p1'/vOzWر-70c(KdGFE:qwrlǵ,c[<@xKqXI֍$D+b{n+3mؽ3o A8"MUHƲ!*s~MDW񲎉fMx2H" fY|9@˥OZ]q" ?AWuϠ2,!źY@n@~Bh(IPɖ)Ɯ?R?7 /dhXz38pS ~9G[> pXX7IU$sDS2ט*}4 )ݹ]:{JE_AЭPGশ(1߈M`1Q9Ul5y"G] \]C^zi[~AȦWamԛ"哑(%ey5Z&e|$]V1*6QEitϥnr䲓r5{=/y Q|ޟSfEhd[93M4 Ia2 +O0`گ~tݗ{wy9yKNȞ#7\۾gf/vٻdo> +ҦD{T4,7p(Y  S Gwi_9vl;xj Jrk22S͛?ÏkB`V0 #Gn|l'[k;p bR߸P6݊HkpKku  hhH3 +w Ya va;o]V +\x5pF3N9ionlңD+ [_ZuY^ Z \{W?F\;Wk^ p c'7 G7[=۔Ԁ{T|-(-o@W敿'Pр}–jM%) 윾t|S|jr>^5OlRΧ )]1I C4u2XDzEr2${ ϧ*ؠsvHmy"QMR$*m2l (:Gz#V@kk +ZLJiBm? Åw{ @I:F +cw[6y+E,_( +GJ47f @?L{ +[]E@{hFPܹ("LI-}ӊ9d23]X?à zmva7  =E:_ 0 BŝÈHʑq$qkCHjNk1{_TPUtP3(/tQ0&`Cd(ĞIBSN"߶Rl4~д JY2{ʡR$-3K\kC&86d\❁HǜOaOeQ7ز y|r7eh!uXي*N\B7U^1)X%MS,b@&OoЊ 9aN!cY+Ӄ)^\LdN˓Zub|St͕4s祬ڧ?c-dӯ \ B>>uDR60UUB]`Oe)]BH+'Kzg(yZQm--gYJ3p 24A#ΤΠT@Dk%4[lau +`%m'l:C.ְf +Vz{N2==pҁIBRDWuXÄf:X٥Ӡ3=fiuۙLn-H$ +g gWB $ ! \ "_fӗ]_3;zm)Xښ6Ӕ9?Mᰦrؓy!C3d໺J=Ƞwȍ^rHp,hh*5yRcӛeqi턑 QY\)]sM8W};uҰK(q%k1J"=G";A#!r7@i#2p!ḫrsqCX<3ޣUU@&o&˜"4ك}ш{LŏRj#k|G]lj\P57v+K[ʟ MI FOB{辔)>P0TK|RcM w{;>b\v7<,>9_L PF5aIZ0V4LƍtFuZ= ڮluœ&w' 1*\e0g@& jp&Y][۸I-)bsR|)j1c1ձڱmW&+UDҔV? U!C ##@c4עi͒|%H"V$qEbl475R*3U*` 6ZjimL+:2}2N7ءϧ4ތswg]wvUW ] & Bt% ):BV t9"- E<_݋3#sgBe'cmm!4T3&pb?AF&V,HO TW\i6у]Ko2T3,( Ȉ[%K>cY ŒiliC/&"AzuWL ~ J [ew#L™f Z;KV<ܢ}^wK{"|1 핟?}=s_Woe204Ȇ+p% lF ܽ۾4a}<2;T˪]cӪ3^@b}7c޹,8Mc}8\r 2\ =vbwn|0 u6 Cob9n[lv[.[XuwX*$y⼣wSCik v +%@K S}r$˾bXZ%U/)FKx`x$^4 (Hq  >ƒ H] fV +ɏ$KDz%Q$[")eZ[Z5C- l K4!mR}A# \!RPv"!po7p+?e=<${%0p(]$%,DERbRV@/b4ǘ-VYOXR# 4LM 8Bx@:IHN 7VC,)Rr,QNחC!͊V#\]V+opƐaro Om>`3c3trU ճ6< nRv3uD^O @gҐlbO!1w|5}.ރj.z*ʞaH0" ! Vªzg R( +rǗwN51vD{zCf/Sfh S7ɽ.*`Jܛt%$n68>Mx.nO6/%Z|ZLfW>IOL3c1қd1R:^)S%);TLk +> +T@ 4xy4WkCiv~Vr-Zp0>KǖPx +UPѕwPrM!o)MPxK`!EzWghbߵ_.6QgdòXmVb ֦Ja: Ċnqrcکlu*:Dt(57Z%49B+O/ IQB)#5Qn<7*cemNO>USG!eJ-뫽P +Cԡ,^x}S*&>f1[C2QE5]aC`j*zUEFKYQ!fH{C8AݶR}&#iy q})6ZZTDΡluDbk +2E|H]0%ڀBPC48=lJN2o.ļ!dfp8zPmq/a,7;W8bی{_2 WR m#W664VP$T 5?{$l4wF.5}~)6ixymznC(%c̑k%ؒ!Jq`K@ t6p0}4Y=rqlD0*̭WwDۯӛbq~rm&_ddZ?T< (F\PjxNϾ.ĜmqgÄw{'5դ:<-QBj  +{C$u=!RY7E%{9Tfk7SΧ;M?p;>16ur>Jss QWZ{C!hŕZ@A2YR) tɵP\l;|ul._gn-<{5I)2s^.N𩎽Mh  l'KwV$}BW (Aȁo;ݷ*ۣ7-|0mr۳+6n%Lh"š`yRf0aIBװfd|$o?oYOEӠ (=*uBWr. x8yoc&k6FN.uUt"sř]5Z4M{H(~:Of~+%xęm@őPk'NzDOemBEeOJYE1bC8sY*Y|l"{6J +rm@ՑϠ׊KѬkT_V|p*0{*: =]vST~ѹ{q <.7G>^֜hbkזw"0;s.zfi@{ȸ-TҚU:a63l2:s#X" Hya\m@O6ܻGgϔ[ 8`h40"\㐈KQ-8+D  Tu454u=e IGt4mәTg>:7Μς3):?.7n\xcee缉st8mR71MOAmin.tٿdoq}*0=P8Xo8D.n`DB '0 qPX؅88#\mv0a;8 }]:۟{p@&|}4Fw)~Ł;rA>ygv4n;3۝:vۮu-r$p@EB$!!$@BBH g8EU*!}?N߆b_|><P8`M 3vbwzj #Bũ@zT"T'`[K"aC1 zԅ/3Ţ&2i?IFzCZ@iafB5ݶ;۶$,ʖ m+ro 11>^p#96.:򒌯XڼCn\*Ӆҕ5^ km6s!έXΟW$\/yŞvwe^؈8'tZ""A-IGÒwsY +$lœmGYZls +n.~VypYT|Y9_21U6+S{ ؈v0|\p1#ρ4.1?>|C_E+ =Ojj44N͍9Bz;Q>qf:j}~|x~Qp "Aehܦ[ϡ>%=.~UV-QXߢ]o. !8uc$Yv+1C1"2:c^'?W3§ +!5]Re e,\Qc(Mu'Ku㥣:WFY+tIq1!Z ; +? +M|]ɟotay9ڍ2MkʹLi$J0WM :nNZ}A N6NOJܺ.=iOFփΜۊ|UaI,,c6 +[?@n2[*US/eC3u!L]u_0/u a[5#&13>;:#+N^$IinEЌuEY3jQG-mQl2 \A^6Lss;}XU-<$pFe"[0`m3(e AcdP +o緯 ր@z 1`Ժ%%+:&%=ӛM,$ʮfNΥE,%Y[#l6akd9Ѐ}Y! +=ۖgɧQ!Δ/Yr϶jqeO3,wN&dpLZǰ1 (>?>;iM<_# ;K +UB +ٮ"a(ҸH(m9ʛlvoAbhD #U{``{h{T,DX59]B5A\?*5w +RPT[1Lhu ktpHܲE|:}'f]pyvCd6l8I@K-59lҚmFQK5-h蟡'//[9?޾}c"‡Ţ I9E8r3DTWȞ׃*>]a3\pNfLrƍނ& @ Gwξ:g˓ufuޏ +1}W|Za1ƃX:3;/Lzfsr-zЅLtb&g:.[м7r9]g|p/sv?[mk۪m3Vź(D c [%@B%]ƂPl.TbYDVYԢ]A%g.?0s.cG(geO9Oh"C.cr{n +nDէ:V ˽L-Pl15_]7~h)ܷ\L*&q7m !^CH s]1$@J9E]!shCPIP=ضvk&xEخ7g[ڷ.X39/}KvEM;ؓ* R#1G9ZX,*9>'Jru&A1pzo~޹cGafˋk8s+08PU$OX4>rW2&)ԗaIAy2T2)Pqҏ_`zƴܚE `MV`{L6$06^X/!ّ` v;a# X%tHH: $kp#2LiD5!ƅ|'< ,B-9HP +#IjTHXܒ/Qsm=uҧ+u̯'y`ʳr @"цVpD.nKfBor# +$VDʍTUUJHO3Roh-io<;.p@|=hY ^b6@`mvw BFDCHX|0ЕTjZH=:Z]Uhw1[_{)'XʡAv_Z#e 6Ģ =@xG =})txsǎ$D!Xh*VΣ>-vWk փN`C@h3\H! @$N 'AFW(ưWJ:{Y=<9R֔wC֤oz$]=ܝ9 +Wez6|"!mH +;kP9@E 6GEφ_''}T9/5>:͘QV]YޜV^O݈͝eA<S ɖ{A=YNMp,1 x' '#SC3~gǵOA`_< tz4yGv7Du܈^$ Ag+-@4x;!FA|gTQqH G` zE=' Cj +B/vp~+|(Qp;gA{q 6ģ qrb͡oED"qA&sYtv3YD8aZOTRn;WYt)i ++mVՕ Q{D[iCk1m/?^'\$_ hC®o rho eD2}\}.ŤsSP݊(5Du7jtףuWbZ~j-s&!ifP[} }P2VN/O r2Xfjx|Ycr\-ZRW/ cb/넷EM&)I >ί! +wD*xg%"ȿ(,)'JRP$EEUD'ΊkRY-io'4VVt˃d! mH|}E5aYq( Xfd,EzM( !@B -HDRC )8H 0]"u|[^gnw^/G`qhg/噘_GkILM)dX|~wWnuoGPԞ/Z . / +/6|1ۣ "1= ęA|lbbDF.Ji^ +gǧdVf׉xmlNOsaAr[RWԲԒj?l}/ |.16-)VT; + +q^64v,W՘vRRs")fWK+migTZZ>bvlq|Ǭ2*NTѳ]%gҫO4Wvs*y|evi*SY@+J'IYJ# F[f|8qGɻo !ae$]*;-fpSNWg4񛲺k2eJU긠M\-S$LS&+'3*&e|i 6hYNIiǃ^f=\VQTGmtv]Reyojّ)̖$5N -R]81hR$աj4 P6b kjhhΜ572e⑀ jLHdZPl)eByX}$x/SD.mLjbE=z3} m =[U`kmӯWunZ~;5Nt_%RZԴxd>$d0&MiG=Q(eSWJyn#ZylL;cĚm(3 BfXmz7i[w^:yx;mHxIi9E3 utUD\Cx0|<5ldkdC mi7F414ע Nm}_}>n}a2Oc-#ƃyYw,z{Zq+ y#͘G]]K ˪_ p^@/U!Wo +BgoVkz:PkLu~¬{te2P~f;lX&ۮ7cRO|֒_z@.uV +ʡ>e*{.y+&bީXZHzjCed»(WDk-k5o 뛷bWݒiUb=9g%]൒T@|O|\\ k*e#rG̍k#s둑U=D-`W<偽O*8ǁcT8у>?S}?2?0B cainS>5kt_ Z:[Ͱ{! \@ OB\<"Qᘈ ~Y,-f ~VeA@ _c~ +dec"巐T= Ō˻XEl!,Ƶ q<6Cۧ?^/2c"II<iJdYV/Z}=Ys cʹۚsםӉiKBm"6P~S4[Cq \\PbݯJ<) +͏ y{7ť{hlYQ}_|PHVR:ͤ_Meu$6_Mcm $[e5]A3xm/s{ r+ ?<>v5JI_ i;B#)Td,٤jԫm:j4}XUVU2**{k dBP߶']aG$D+W3K>3KBu]0JFVWzܦ=Tb0|n5Pr/F͏́;,a"qa=Ehez!":#aeYJLc`)tlm֖qjK9Z5{{LŽUj0m [e乮{/̾.X7OԜ>Rv"6hSM +&ir q+w]w`]uڮ@Kщ8w|8q2į;3NVqq`CXe26̚<&;]օnp'WOn}vb-W3/L/*-9*5TgmV5m]ۤ۷JlZrz +/M[ƂIp{yb.iFnN$?!Z|'jt;L}/9Fv|ٚB0lVY&I\kݔ^[ITm~_umD.}g檉 ZDR6L{cqGٖe K5U.ܓӭMkZVpd ~Xo +˹Zyw 6NN';;Ɠ:grIXOG{bTvS*ѥ4Ʋ,Yzb?r)8ME VV׎BV%3|VO{Xmӓ4G]Gjn'z .Q9Q1n06x i5T 0%ePxK~eɥІ6iw2&ʡM5*nB'X?nO :);V,X7x$redQv$'{X,x`iR!'@YiM(V'B!WHU9L`?m3ݿ߂e 8J aL",D @& E|1(QȑEP0lrL7~&EB$H!6߄Ybk<=LS'L +>R0) L*Xc" w8sC  ?9{i!d뀓S9_S :#Q3O1< a;x.FH|4") +5tjRQN @_T}{m ) N+@&c=|f +1c6 nIE<|^A]#"4a-0op¼ ٘ pV֡at+_l=+F g! Bh`YHXoq[vi_ 1-N9׀ZAbV5:oST6UϮ Q!ݑh d86R +q[R*HةuGt: YHC;l[]!SkF_ l{A 5:dB. +)*0:$5U6h۳Ac@O' GGRnߦ6ްg li6mG]Dܗ*Ӎ*!<(nQ c&B%`C!@+_檜 V;Ʒ)rSIyͪe6yOi^]P"|tP~ <7WHX(03(RCU,aN5ky%<<=bb3\5؄96io_t'y48dc< k|( +ca|0ӆU*ŐԨL[jy_vvtZ:ė% '6t_a4fTսBLOa񟇢o ƊhiyBlʐ#+0w.*_4}˒v'mcegZe{hkɻԫmW=KQAhP8c\ 8#ޮaQ^e]Y\S[Fq#YEwk|~^kS=)kMVUtI׹삾z ;2"( @Yr¡Ԙ%zrx_RKD*]Ou:ݜ{$ḛ6vf/sL(qu+{|~{׿oBxll,zELCГG\ \L@(23d i=ro rwo)-71o m-|:ʁ̀v;.K~gWgțĘalYԋbRGh](UHۣmQCVkz#f!.v!6uz76{Ow۾e#oE/0I6o#pݸ$R{ ~ash)ysـie1k,]< +7Ϯg}7ls8o2Ky/|g$ckȰn*ۖDHiƓZ,sp㪸UF6[?-rfYn7 $; @xGUWT];<`-*ijӪ 4E$\PD#u@Igr ߐ +pY1/'k;,;(;w}& LH/'QEI, /Te"H%d"iH'N$Oeb Yܣ6R.UviTٕC׏("aȚL,@+pZKRr9)*fY)4\'MyCVi=;Z,էs]?u]jU QUX|1`3$iav*#Gq)y JZ'gv(RCóh->Xў9~ҎJ[&̿&,ύiD8r.b3it:GATzB)6eJڐ~)Qy*m4gc,k5}kq:;nGW+ *)\lHgrl:b, YZM<URÊ|CNߐdo8LA__g5suGLk8硦j5JԅQ +å3);Yϣ1LYW7OUѼ!e gXa6duu ZtɛͻZ{|vjNik +‚# NUy 2-(P u8W.)U" Hi)GG,zm4iՇʝF[PæNojju߯k9QࡸZ> T$"TdBWKea0MVAfB .ƥuaH6ZhIx:]mŽm^.뗥M7 HF-2T"~A3QZ?"EZT`m 1?/lFR4eH2\[ hW54Qj[ 3is=s^υaP NcADn`=keo޽ hb4Τ߬}ńنZmc4Um 7@Sa=jU2|j{â~3O}OݰxJ`{5=v#(HCYCzDJkt-nnL4R +zj]5j8N9Ex#6HO| >#*Q{={l5>xChIe A}MFУ.#iMBeVZJ]x g>Ř>9s7|hhyR+N5_,_s̨!h@A-nA%&Fcf++VbV\#|.pߕ3NRzyqGAӗ1 L25"CS JI"$.#A-b$ rTSBP +\0JCA0?{vwN=0_ɛWHM[3 ZEJZz)R6KA.u%~Q󺬏D}#}uʇ@>>xB1 9M + I#*j{VN{fu/g{Vw_;[ieS4hKԷd57L#;x +|`J AAZ ʈVTdE^~y;M[־4dR[BܢT?7C(]FH:#^W.>r2̠C;#,!{1;a OթJĬ[KJ6K<==(.)t7Wr/ ?O9dgݑ톂@7GLxԙ^5G٩˞ ņ{;FM6 >oYnjײo/k^ռ;o?J2 M9yW-JxSK,3 [2oWKMWuKMj.d42՞4]3yjj-<6%gCO TW̙6sa sEͿ,[yӾPFoμQdT]+6\[ +T|2g-}̭[Gs/}Pz]lOsw8S\PP:MoMXåҸW,s%eE5=l8dX_qCΊy-{Ts۲+T5o1h\,#ﭙNkc\z_M{RB{uI"eNQsIBKۼ=*w寴(dm.hn36ڬ?^n-n.zՑ?3vwFxT+ެl= ¨+S5:afXrɶqUmk̝!un`jv5_m5rw#ZAĹzr-Ơk3oo.2wVtͫו6T-m^]zzU鹚5ueߑjOwCqG,j"19;Gܒah9w&E#PYҷvm?<kIűbaQ#jJeTѰGJi3Ai^53YxEcLJwLIned7R\jI5;^o`pglrEd0e^FE,QS6bԕBv-Wۼ [lB~LЙĘʔ +Nz.]\X)UfXՙ"auZѥԢ[UGTy'* ƫ(!YU?`3ZmӀݚ0c&wQmf(50ftaY1߾bL:v.9'^v"\ZtP+4쬠$LU*i}E ,;#SCF?`U +uKԐ$L\7,'wM?2|Yw5Zfn\虑'﹚P{fIf:87{'?g3}*4G;={/8|a,y `*@' +P+]6Hn^0{*yc/ǾA|G{?IZ Zy-Նz> x2}i-mi=D̟:p&@ x$ U'K_5Q.X~cg2jq_kwD׊߁7no~|] >~+'H0}hChz 5OdGyꚑJ5  ߵ}Nk.n\> t\#:E=`7ۃwW]>u|YvW&4Y`*Ҕ/_@#n௦}YZںs@#l1c0a)5f='2@~1suN|2i[qA{38-l-͑deAV&i,wb!07@>֛#_a  c@2ebPQ1 7'ouE--G!5ҷ@he`]dhcmD&Ź$ځhO +^$dL0| +*N*ָE5LP{.6B#h::h[UxmیZjxHKc5U0A,t،vhcff::Cm#dGBgbTvFg?t\BIUΘ`6f166LsNnrCn;*Jgnn}Kw%J]%z-G ڌhްܟ{[wQ /# +P^/S`5.uK{ryfb{Gr [S% QxضQzix\‚g;I3̄נ87Gр#)g#04DyEF+ +Pz@}JSdvq=V:g'q_ !GDRGHz0)=y?Jw>M>K7ש~z?>Li|~~!؃-zGډ0ꖱL=]DGS-;( f;ocV?!kidcn!Pl!p5/v ټxR^5Me8.K| 1̀|V)Uh`>8˼ +Ǽeu}`׃&9m+\SfgeVƣ\F׷bH'L@{̉euu.s]ȹTù94rn_}2m厇^;f"{Ye$To4­x<0O Up;)a7z^;7w5Rk =#v9"<Y8>Y/3 l b)267YٽI8PW?Rl'wkҐ~Z%~@x_.<_~LxZ$l!<q7DD_T}1G1Eb$ i 2篚E|(kU_I&e4/U\~-1#c"3D"s'" +qaq]TXEѨIm351#E#U? $9es y6X1S7;7yZuNw2׵qi9qqDq(Uz4&+6&_vXT&;$: k*Cy|䃼QD2D VlH]<{ֲwmm ~fy\HQ B|(N-;ST+cV$쉭M(6&I[vK+KʢBĮxSec{s!nf .)X9x팇7,ٷlz&3ؐ:"$ĕȵRYfR,_U,+W +d |%uzO+T&~ @d9Զ?~/[5M;JV|0b*5Ҙ$uRB0*5E&GQVf*ni>~@W oMb-fC v6Z4n)-rb{1->˚Xpꬨ=:ITV.S+r5LefڎtrozV<(ROڟQJ*_kMKsŶT`:RhoWng]dWOmUh {K˘nu^ݪW2#AէS& TuI|W{W^+SҕiJF])̑j%b,+K}hzwHS^f󹠜?S[ 5뮞iyjyot6[ktz=-8y>UQi'bmHZ<150e`o¼}ae{Êu +)\4r׻Utmws_Eậ9, )bMlct~}Bpݖ-][l/IZP¦U w74 nKMT4~?^ @w P{u Tu[ktQ:zMbib;BhPx[DDpkl֤֝9ۊckbۢ|oGnjQe.y@o_Pm(kv.cށ;R[n̤^¸?@РkQa6)} +.9s>-gϋ@1/! <)wPK,6ORZp.>08te\ S߫ xѷ׽嘆*/'g=\pw}7#)/U~spoWkAV;`}~A owd(^x/=_9].2`|T6T*st~!v~@$}J84.Vuz?\3p5aۆM;fsm}E۰+q8 ߇ģBXP8K pXx.OwHoUn;BgG:`Mvrφ?/_6ez{i:MH'`ƍ}%`3IXL&2Xj{l+v't*| 36WSGH\ D hmvfd"גb+ʬieO%[TZ`5&[Xb +<KJ (|A]Z +Ԟ 7KPPhfL2ڙ#)S+@zbeal 0P,\^3x @zѯB'@=Aa 5P{/!p.ճAC}k45f m|@JǺ8Ö`6nR I=5B1 $(3dK-A"Yq,dn%ld|G+e#$@V;LQ0I 1N"!3!ac Rr%Hy"L+$v&ȧ ӴFHv"KrJp_xq>2>*ȥJ#$o E(vD- +Yȋ$@!d&0" +'9n55ǫ'gyg/ *gZp3%|ƞE#$1*#ދ="DrXg , Q`aV4E]P@8B +/17%:,:Û7q'mq'Ǜ'cr̩|4y'u~ Qz57@g`,CO9lŗ@PެSpZUY[4!} ?:~VƤ5QF{sY'X~N;oP>'_BG9 o } 7U);YkC/4 +cAֵjUGjXB ,$$,@, -`TmpaТ#.z*L]+hթsMo{Ͻ?`AQ!_!JfAu/#_D~u"YـȫDkd] #???GB}!K/[7-01pH7 ;bAH^oQaϐaOE !DՄL4Oƴ?z{&h"J8z$>QXL=۱#0F/xp9c|ʒ6,߲-ٔеϘ()*3y+CG`ˣoQøu|+5G QW Kħ1 `i">C-={-/ o+wCc^e/ASiح[N0IFT_!1I&̅v^Y|+4e*2=I?NN*$[ _ q +vuN\fT+'2#MLM=fF]/RslB?pZB죚Z $x~MI'u$$M5#rx,Y J}>8[;G/o)6 Iw%"0\jCGdj;AkeюҚYc& z#mR=CҁX@uwi^Pc_*o~\N?c7\VwR +q<>+q-bf:9jല9'Y8:v- ]}6Y<= //l}e=[m=_o3x(kB.v[ҝ9Bh荩zsy^mJ5pוbKUx<,Է K`#zœֿX=ZMw˶:\/ T aˉĠL^"E*g+((7Jiłiz"/i:kVww)0s xYyǥ^~/UnBiS0~Ā =!F(<=_""!]+ +[qX#/шfѿ5yp!Hru|{=}p%c{EҸMz^oR}2PqL-edY2x@f%/2YBG[h]g[~A~.E Z0uk*(ᢅ]]fT&S*=nWJ|'"ϝXeW%*/mU?*ms#˹wNkTP5AyB'qra&kb|$I=gu`)u.gL0js, uuM;zKcx'W77֎ڋ_xK:q5mo@o6кVU--jrX^ٜ 5{jKKܲFejݤkז/7?BdF$i}+ 9{ }z -SRΈiNISAwjؖN<^{ľHt-h׊?i^~.=?TrU\eHeI.8WPY +q~߉x7#?{~ƬHm@H5 tݠұC򭓣ϑdl&dt;S<FK+X$A}8W=By7_VG(1!ӝ@ ZXaZQU W&h t!$qaHXΆT&Q9vbex#t[p!1BoP@jiM s@üP)0D%@Dလ < #âPXI +ќ_INT!~7 Xd` $J:s1[z6D~ XxB_Av kmƄ!c\2bT<1,>(ƀSA "a84 r@-p]$rϰ] s@=v >I%{BZz'3.1 }2`@$K +2^8((b H, ҵuAg]|ն_b;Lܳ'~wU.qLޔاk}ګ6`{ iY48]ilUKZucccs@Au먦Us_\s_$=Nꍹ՝wJA  xL %2Nh((L]t;%'X}ó2ɳ^WzB_ݫV_=b)JCUrj86MV V`5p +Й>Vf ~ȟٵh6ey<.Ө&3 !,"b]gpfT . $,I Ⱦ}$$,DVIQ1V8G@=c9贶3cJq~{sq 1TAEGFO=M{:@{A^~ B-[eþ[Ϗ +}u7"畨iuU6'q!F5~!c^9KauFsя1aװ'wqop癝&(mb]Q[jG~m3 6;*b% sS8r[MY2BAe#tsZ]B43NtsGl)ąHFFB8%PWM_#fͱa7M& +1.goVJx~8G&v I_IiPZjGm\4'Ӝzۜ:D>". HHiK +|a2URqZ!Zޓ*NJ\sKQYh7 + 8&&+WH-R*u KòY:&*3ɾd/&ٛ\'A -d$ CaB-r0Q)h螅g)+OHZ]&NZ\]+WhT\J/,QŊJQQ/5(Z~^1"*n +(IWyZkQ C +3}2q LRp~_{`M^fFTNPB9 +C^3jdZU9TkJMRV43JBA.׼*/%@ &}wV LGhpֹ3ې6cmk5!UEd&rq!hpuX+d:ZitNHש՝Q tj{= e@|D0__ ;W5Ӱ\vM`SlH_yi4gm!;e6NB@[تHlWF "cg=qP4^S1L ߔ̢g +<Ho=wvω65u[pgK|dK3:٘]$mω?\J58xMĐTHsejrHŰXtK*VҬrj'XRJ_Ȩ%/@R K'`h1־wqO6z kuL6p3uj1PrR*k%G8%"9Il\Bk!(H0ofG4ZPߓޕCޥo'*OEMl2s#O-?S_28g?sg@ݹ(`A0MZQx&mz#$ P>a|f6 -㼎Lb0 ݴ 㴴/1}ﱁgP]pva`=2X/}(V8j*Ŵh(nkB\~*ïASUi^KL0/ϽO +| J~8"U#a& +hol Vțٿ;}pmTحIɜ={Q{P q)Sw&Mޞ4&3/=w`y X`-wÁdn5B015Iۻ2k6q-fmL%$ͱ7'Ibu-ܫ?lgTe)[g;[a ,.KY\P@XrED`ƒĘxDWAF(F"K"KP"JSʓד/̇ߗ9s?Ϝ3GxD~0@{K1$~pBkZ+B!45SnfOls=9lZ&O3aO?~ ml3[VRg_!T- ճ){߃8Ъ~m2ڡN S: .KSn- 53zSW E|/._K/ PG>_/_gB~u?@( qN#t6)tDFXo,*#U/Sx2|Xڋ LI@<;zoM d@vad Naw%I8՝@%AH@1L&cn"Ŗ,) ~,5l,<|l X +h)ĊbpS{ +#I*({2&K_ Ƀ!~[#[~  dofe\Wb3w=>;:a:DQ ڈ,mDrFDR]^[.1:@8BtH8 qlA2L|}|n$[ak2ƐcPV/h='.E' @<c x"Hx4qiRҰ .(sÊ׊ك/v@!/`;U@17p?';R&:/7/mzk +-*4o<i gQ!@ +:<:54Q\l^:׫^Vu|GV΋]aamìgVTw٬kf>ukw5oҀ +*:4tIBc"د#S]|A[jֈuO#6["7#x=җq* '9 ?ssoG={0$j=H/(P!f'$ ÈϢ2-Q$DݛqqѸ[xX*a*]7fIt5A@|)B̠ L3Aq@M=5S= i4WOթC5I'ꂫ'_WD}drohQMEh{fG9sNs.fnڌ iրY䜰K45ɫ4'hK٨J٪=G[r@uRt>ҕvEO}Y +}S=H0?#̥^,Nxء1G0/Z?;vz&czh5;*}QdeZ"c}yZo2XJɨ֋Qֻѻ:dac߀W<N0rzEAOsNtaާ6'{";YV5kZhmV2󌥙M%M{3י3cړ%fW֞Y):=\֬-Yq3 3!~d85pf;X-@7/Je5yI̱E웕m,0v׌;f2o1o}Ŷ){ێ6*'}kl]lZ +l}olc>8:@]W3ίBq,ĨX(*[4O437aUЂ""lH @ '# {!& +ղرGQYVt~=9wm"nK'7perj5#*ΉJNd9rTg"Jy*, "zW?'цL?9:! Q0K9@9{aR$pZU?H+D+b~[ltl=ǟ+cX9,t1>?:'?`R7apn]?/ّq {ɔb~zH/T2"C.+f 1O dLh.^&>&s);@}+2ʍ0t)3nSsb]dLLvpIR If0rS +d)U,q3k!`\cc_$'SK(us&PY0Rm|Nwq{IB]}^su.û@RPA/"7#9V7!s~T$z^"%KFyBɏ<W$yN̳IK@Aç Q@b VmڝUކW5-9yYv@#JMؓMb!_rBGθ,`e|/`IcIeK89R0_[xzBV~nVʓRhq*̦<ʡDIw+bgIr>-5')Nrd2a,_ 1ej!CvJ] LL9eTjX'6z7ԑ֖R7TŸV0|J%\@Γ,~\!+tE /VqVLhY-w/,L=Ewpe bj;hVZL*CV5FlӶTq5 *6S.f2}I1J9+ZYDSIv3J/0"Kʙ8J,#xQ\^)t(5(F9Plm#@s Եo׮Gj3鑵rzHqq!0=BcL]/&\99k1j;WOu읕w hg_foAWdH tS6-zĩ+|l7\fp|Bڐ`.uip9p hh36{]~R<{>Bx\ gb>m80Y#^N9Jpp$H=j_jW\~L<3Z'6 oDO^!S"j'Dt)Bt!RMszYei!S3'm.V~T%xSdб|7O^{16Fؚzqt nJ'HO$K%KjGT C}U[z4_y5?viPp'Bh`YHc[Hs~`J _żU &Nh=[4FM.;)̕,,լnNޝ{WRΤ#> I|v$Oے<96'A`w@aGD;;HYVoT쉙uf _ }!]l6oOJSJ~ƔŁ۵+뵕[uچͺA53t7u]#}!CuZecO, kǮLٞJnT'J'LM خl7gkC7闆VWnWVUO_ _R6b`Ċ/كS5d"[XGv?|)fڥdMːo09|azzCQdabababa]T.jiԯZze{KR{~F zQ*T07hsf\+m v)nu$?wZqjpd>*#=t)+ruQi1+?j[n\ԸZظIPyeSFF9h0t=N;oZ`+aNJ$V +"iiU85'+22&,17np/҄ L+Te*\6~l1%[c~2P> Bˏp +ڜyv E=%~v J^D׵ӴSSGONW,d9O=\8%4$~$Sk\ڌm%`(sԖzUž۷ʬDNٜ>W嗑bcZԒ dm*I[RjɉCI o^e^bUBڡ$~$Kpgm a*A_TlYJ'nvX?s.I޲(x馥 T+s$g$eoU*rcs&(s~~TDeQ<ϛ[3;˱sU PK5`gtۨ2|6Y;ז+f*Ӷ-hIhb +B:6FFbt QryAwd爈[aydo"f?`;n*jt3v/oYvZqYV౨"Yܑ(_]*\^YVYk~DyCHxIYxyWpXݠ/CK>Qo8EVЄto@>=̡yw&Tn>l(ǔ8פ=J݋F, g BkN wICw}dϥA>U~-]*[{gЀ~Fxlr_{5~f˾ +r8|bҡh'g!uvAb +f ; < =  w?wWÿ\oA7 ξ s9{hl(l +=.U'` 7nqoVsellȖ).נ敮l6e˼zgcN~-Om5hiɧixH.;8Ww[1#Zʏ=AjXHtT9&XY{m@ο}o2k&I;6I;J't8:~NYfmשv$ݷQ}Dw:4Hg6= +vt6v,|V V{[y|a5'ҳH٫7mhlF;!;uIt; si_@U#6S>צq{=K׃n7Ʈ7Ʈ7SoLoܹ:޾Np?v@W4;a=K1060li])x&=M|dk&;fl7Kghg}H0N{ ]x}ث7|x).o8${'v{7ֺkJ\dFA>fF%4 PY;Q4߀x=cE]CB/\86Ą&ƒ劉ׄ8q%s 4ُ4k_| o2 fWD8_`I}3v(KmF14B-∸_?Y H>R2 +wńqMDf +3!Dcd %TPz.Fp[6zI=O}bF wc=zq?_~_A/Ӊbbd/"BWGD!gBxF>KÂ*Z'~fHx4>J4>A0iL~M.LnoLR/M_SMg3%o1^L$6"ba'".{Ḧy)/4&auFĹAq!y[sY侳lbX2-O11/.1/n}V'VGcL8~BE@%7wqL@" +(K垦YVXYg76m>}ֵkN,gz}9_ vr4|eqsh2$A;;2t)eM wDY _ .Y>P: vaۂۉ[#S 8\6xp_äsاǎ&\ ooNfDH3 ѝXj9)44yxIGx\riĿqiý^؉\kK/h{ aNa/ac'蓆3;n_nAtHN@4߅hSM;w lw)dҤGKFOOWy?^?ي3D1B8A'd!\}it?K h:΀foxfv0W ۀp+?3?)R ^`1n`vPfP+FOHׂHW.%1st EE_-.|-ȖZ_`+mβslN )'9Z(rN9RqQpڎp`7̽k'.G?۹i 18ƠXW1ě83Pdnyc/džD-8َGy*üeԃ"WGPVSw78 vw9tqƿE¥u37Z/zx> + !!ƀ_LIpN Nl<<c7+qFRA\qfqWk{{xwxgxZ1񏌎qӾmq__w@Їb$Xz +u \̘Ng;۟a:e-qO z2.rNIIjJvIg*Io@dgJɡ AM ~ OAެ=P߹295.>P`&Ǫ/=ڝ֕VHZ*+fU1e!MYwHl0tl$Vv&Zv;J&R)R' + L"{h9\ӠEZ8owh-6eT"jԧ-5%%ElL "j+"孬*yB>Y.,\T,H''HV~#[h%yQhF(`Co Bo~zMda[fWSzR@2-&53R,W*%&N\[WjW4)/4F[.L0vpסpXXtLI["wFYʋqn{e2SBT,R5PY,[UGk\&ZEZ,=J#HS" +uEl)VMRoMT RyD=!ffȲ!..3YNm6R7$a[-z K X RnY(e 97(ja'l4senZeij_ˆLwIGb:!Y/ҾmO%A.;2XVHgΘaWĨ&'.7Y;#Ӑ#rY3%dω/蓾g^=ּpcR^&qm)ʠO+bjsש0k3 SEIю)Jq&8du??o# 4NV8;*pIBk²KaI%,}_ڽ-)cvro[ lXGDbSK\i?ƗFĨ~pq!wSWgnd2[wK IN Id]h]oJ&Xu^ n@/cZMm9cY?@ݲ֡X\Xm_ˌ$ +*ߖ蜽얾53Ŗh96sۧ{f-Zkk;he;<{n˱|ʀN2w 2Nw=`3]Ŝݥ̽T{>ўkcmmiie_þCw~H}z}Įa;߹fo?e4:u L '9"2.0;|8G2ڑE:.b.b6r&r:XխҮ <4UT~ ,,_KKM +9o0s?e@ˁG 3:8끈,lحSpU*]x˹aN9!|awHP&x] $zV!?^@Gr=n cotO™IS>53yc.Ħ5ч6~mFZ(7R˩#4;ɗ+@u$=` pioh[LբgR- H"xM #&-zG6۝`!}>$0 +GdrG;6\@ (ZAb0 \"DG‹0QXs 8s:pz?}tpRqLqL9f %%xxxxrqSF7Hj֎?NtjN=YĆy#b~p_[]} Mvn97p,\1pU쒁;wuqC; ^ͽǏ[1NiF:s"X+cPTJ1~5FŸ]Ϯx~b^5Coi_.?˥>\q Nˍ +5(UɃT:'e+K~j:O?Cvx% O)`Xexم eUAeAvòSNǂɏPT&>L$]/=/"!5fŵqҹٰϥasS'—(PX1Xq$¦!b"_ +.&48Pr%}$  ^$p_ ӄF@E몣zutY۝YwNv,U}fgyy{>7.G>6[\߶b[ rfHc32p+I51&(F%~b"w˳(щfb߈4Wg~LB|A\)kQi*e`L[@jqSs3>m؜hf dBƁbƆm1[f%3tF˫ en5f*zzb}>> ,a6gYO6 Yy) vsw8HC2m%pп53)zn_K~˶Zv89;rdKRE\鰀78[NN}!9|(!, $8NW2|g ѝt{t-pMmvAZJKٹt>w9㕻\\\\gxziޘ$o}w}wccs ^{3d-U !6@7Venr&n9 +\gӂ")~{=oz|>zY+~}~=un]w|ҿ3H2x5|O=p"wTe^B#vbTVX&3)(Ȩ 5B}`OxPWѠNbV!Oĸ6n[VqZ+<>ܭBd`v4޴ 65Ęv3,jj%ϭZW]ZZFKtiQK)\E7Gяg+f,.Rq293$X"9}`ÓP+}| 8Fh iNoNinbmHqxՊ59QUxb&./̲6nF\X>I/g ?O?`Yҟw70 Odo]gtukѶ5$NJ4iCvx^}^\v*e Tl51MJUMbSL3F~Br=!槄귌j#_>Z%X{߁.+4!F]Ne/H%ۗז!R*_]BOU+R7>Y=AKj>IMRrboc8?ű~y +xzν =| ީۆZΨA`Gm͋ {{LΜд)$mM Wk{pxG{"] ck&va~`yTzg?'tzp~ȇ_=lFPͨ7 3*ʆ1!x0E8 L%%A( f뛃݁,XK]e0u/^{7{|j;B+2 + w <7P4ϸ"@-4}{tdIsD;{"ߓ5.bWjODGĨ;}|Ε>+~K7W7b߻.,{JLXBeS(dHpUԺuZێc[[ ZHI@Dj]X*dAEuDT78$y^~wi .@Ǎ^ |{v ͢\O,&WUMgXl ɶft$_mm xg;VWi'&C4VRe4wS| |RDg ͞D;0, ʆixz$:wdt&X>1,MsPgzs*qT9qIi,XYKjKiͷk %ŴA= d+K +U~0W @BUW'JVYQU]F{HlYkZ&tH\%!$x_4K˨L5$B~JRC@TZ/b` '!#|`_ oǜc}j< vx=g/%wNړvQs@YU;@a\ m{VZ@{~4-CnI%J$(!sυԽ:n*ҽ)NeP<ɝy֠HnbN n@w PrސC -h #bdpsNr;DhE-Zjn8b{.]^Y O\dFbOe o>t*{^D?"Fe!=Mm>[*%[Y[CK |&8KrZ@P+K^-yJ<$zgSPD] +V]_*c]&]-AVnʓ2vdNK0˿7%bS< + izaahIqygojd&(+RM*OڕWΤUΤoTŪҤIs\f.U+<泚|s{w}s[7[X7Zn]o]kNjk*q֫˭zzݡ'ܛ jTq#uc2o~(AzG<~^j&n.Nɲsdx@z} Êhq1jLاEXMu  o WjSiKQmV+RRkRVQPof~"Z~/ +i,oi͍#u7ߵ H5E&0Ngk .R^QU]X]XSء[8Y7/p^n=Y3g~__qH/Kb`,03Uar.Ko9WG`sD]|UDJyXFIhvaHn~H~nHANHaVHaFHQzlԐ!;BΚ$<1N l 1??k4p}~l`_'aQt^r Z̝i&-)6IbUe~ʅ!Yi&)If =f3c×DŽo3 +?͢?F1o Ïiǀv66~+,`;;abCwc[[CouHYtaRNBFF\^JlQbLY\tELteTtedtUx4%Vd{\ƟBBJT*Ԥ, ilem0DEZ**kRewY9,n+X붖8O}1<+Iq, Qq?A럨xᗨx盨|\^gGr=@c&)Kٖ#*Κ]*6͈Ln8iQj[r[pleZ@2G\8SY!+w㔟* QI~.M_|Ut~-l`"TjQl44n<_üIfK_eH똜:7mgd*U@*KZ(Vɧ6LWɢT_EE>\72E||:A|`i&uˀu,)B;k +&Jf,lj̍șᒔ5=>sw:o:S.EK|[|۽#gշ3z%B?R9tVrd +Z#@YU䩗QoZ2D2RbmRAc|~eyD-KQ{Eh{kJ<5a5G&kΌv }=8[\΃ENR Ek rJ-Y6e2_e$EqyH51#W'8Fu.t .q]>.T[<6D[=<&HcЪ[+q}|tpG[ 45 + {mR=V\?w}QbUuSNn3b]XŜQ 5'X>|m@e7J+o퇑}p%{yp~vpޕt[JvS~+y7[Hz?}fy,?YGcI,L #X 4`+0V_D@X@H;,XJ;* x&GN"gi"񿢏dj+$m J*+7yp9*r.)AqAX5pl.Ę2>V2ƅ1ap=c/n17l'nI둸6qlv}a3v[KBndA'z!^\HK]Cr\C?"Zl}P$7.Rھ'ʶ/ʳ+*#*-7w 춋0'~5MO{wpN]n>u7 gLNɄHx}K{TB0Lh avF;n!8 D&˩p!F1ĴK'qeȵxj#~aK/0Op<+6K騏&S`,%7YhS~(I5qˀDYgIY"V԰:%n n>!V~fyFuosg`$|ͪdV`<*);c +_ܗ"gu'gxtʲ=;d2MZnV[u^MVFYwlwlԧVvȧFzηZzw_gJ+c?K/vT}]`D͡ .[g.QNˤnTw\(mj5FjyG@?RcOpgwKR斤387Nq +7|Ds1AVv9~0AɊס^ئ2to2BYTs- +jE}Pb}P/X1bVR 5)n%4?ǐ_Ƞ9`>\G9o0+(ƱCo [VxC0j>ֺM+o̎wS*oef&guF6Ti.V +5+ +5&eKxR<aPNGP^ЧOO'Ð7|u p% s`[ yVMvuz¹Zaɖj9f:ش\Z3# *~1JҪFEg5Og|M"5d{؋wxP`(CtXn +f^?^q q+Y]SpCv6Omk +,MV@Adf +2t͟5/j?g{1Q{P}P~ oR E 'V=<|=<OV{vdڂXj].u8a";mMZꡬJI$Wd$Y a9TyTǿ*2 +3(phv-ԫ]%T]dqAEDEE2a7izMCzW.|g~2F2|?Ұ/ְwg{G^1]wnak衍똕d36KyHQ4WM`NVx5-R>=5fr8WR%Os4=6iLjÓVy$mpNpJ*pX2,sd''wu O\u_El$ޔD@r^:27l{Œ3T=fLج)1Y: \Qq?]fCDoxf}xf- ɸgpc{mڋڴ#b[RyM^6VybR  +1 T2 B:#6QElt9C1.lSa| .e^sEHmŀG]//OkJo~ t{wJx3evCd?te/KceYy`Yy,мI1 +RVSzV]rC]P\U:wY@r x7@ڪÑxr "I 6ڸqm#,T0=3"Nְ޿S!V sU(_0 ؛2^F@8.ΉAn$|qrOYskNel{w`荤7^_z]s _K5;F:$w=!up{q@'7N.Ɲ;9;9:)=`tg3OpĨ~YY}&MGr_ YDW +̠'|: +^3?*G-G"N6Vs=^_DT!e}w<䱬o"7Et-k5OzI'<: +( T5LЌhbhQJRN"vjsH8!0z0IlȖM'kqBa@2Ǖ8@*UF4Ѡރzu lqjmcϰDETA&:B~)HpA*'|e\~8 ǝDBv\VCԻG&tKC[jܶa"Xn^èr? +rg2/Qbb?"ڟST#7usP6jc_rXVZ$R=\,@yeՒҠIIiIq7AOA'DH~  <-[.o8% (T%T zC{GD([!J B6AT*fJbiBjn׶_w)r"diEKI?\^Oxڡ."„hnxynD7[^'ߩ{W^[ء[0*m͊8 ^I4cATWN +^5*&&Q%iғkle'[-99zkzu[riأ;}~=G<lOpAǹ5.h!I\;0]"փxgy3;iރIg!vcbz_7C1 +̜ܱq^V Ζ6Yu7U, ^. /U! |-o8Fr?D[))3tf_ E=j)zF)Ky8TlaMgaC%VE|T:WZ6+ 6P'- a'&4ƅ#QfE.GXa>(9 '(\I/ +R{*;0^VÚ6d8Eς<'`<#MKi62bL\i5EFYDQâAhh:Oc`.2Eovvg}ka,Sowp1MǬ=YU ,X,tU>ɦ(h +yT= 2%X+1H,]҉3(=&=4H3[$%%z z7|=xЈyk9uadt?[ 2\UJPJL +F&Sޘ`mVPR|RgR䯥N>D;Y#{y#>m\^G.X1c Tnd!Z/`X# +{VURI+)Mʎe^iM(gV^eocW)LV|Z1Z}[|ȹ`pb=3z +؛`9gDMo'4:etF*jj5FVVNzT/q N +G9BKL4YsڻÇ^E^iCZYJѶicZ3z y-Vk*oLW%4SʐivUh&2 $\{#,] [Tg C m>ԺэrYBf:>S8!:S~P}O1,K#P&Hɢ&Vi1%hG)" >O,h}T`xT}N\Ϙt"675H! i8W;P3XH}2:,6'1fi>t`qؼqy1\FMd9XQ ?4ҡ~4 FwT ++/HfKUt>Z1\5:2u`XdEz͈#iß ~Kxbw{~2}@Qsz0 +l;'jBz*lOgHMLMHxU --nRsBs)ٶ7C~wSr7'{/¶3}@W"b܋I\s qA|$ JdGr|\")<r +rh&utg9,jȘ?}3O?qSرmFm<#b s +EW pR!om7!ו*r {\\* W?AdiI?QӾɫ}V$./c穌qՐ =rȵ! !'uMݥS_3Gі܁'17?q0gb3U/l  '?F5 + xSMďXXX'c(w(ŷ~-xpfun2Ȧ f68 gxȍ"s +y %J^yd"W(#g9U\i _b3|ǸBG b#AiO/="ȜD^2?_Ȋ''$qlrV +ZKN9׭lgviqqmIr_'}[ȇ  sD}U;0rfDN +9KD'sr99Xa3׮>YЋ=K-&'i;F2 4<5Q%2jV 'F*kq$!Cl%|< Y٢{-.Z܅F64X2GsؽFw!xʣ| #㴙#zp^4-NQhvx4.钊FYd+wY`k9j]Pֈ*}t,M(UP.7W,)XjYX1.+tݱ4P0h<=bLyEBT{+[rūʰk 6z 6x7 ʼ y*(-\DXJTmc;dW{d le MCaRg'TX)3Q'NX $,Mn]*,]-\FoدNT[Tw(QMU~?s^s|[luF5l5قa0lW( +**r^^%^ULQ+EBEq28OYdJ8WYmRd$[yti{II I,?rj{#m٦FwT"ThR +1-0-Oϑ/Odge2UfT[UKUikEGA0=tՑQr96i\QyOX4L\0*tuh\XHl#J3GΔfLI3,Թ%V) +zduM\76#~NiחP71|;ӖJcL. źA_\L3GfhVK5QiA٤ͶY4v~dMm.QSn?GSgiv90#c|CӃ vot=cG?XE5V}.Lby GgQV$#4<-DchLmm6>I;~v\"YLzSVm[S)Uwj\xze+a 9'%ϬMS++kzMȚw<Qs#ç8<|SozLVA= >QUz%XM>JnּP%6Gf586rєՔ٘X>=mjaV)8O^&{)tgnLmPVx{V^ Fi)(cj6ŷ+}bڧEO7DGqھ1=ir[ӤRжljm&uڏoo?oXHaL>fqOz +ށ nZ^;~) U^ +(:^Sadhi`gg]h.5C.Ⱥ.pfw˿ u>/mowG|;Cz^I-uȻR:lUgI.owhlxv);J35;YftkT}ӈV )=)9~MλnyM=" w#y.])-ƞFB{5) f$W[mr%aB졈3yKχ]I[j%s`wKpISKIcJ#`|Qt|"@,}9C!#>=!x&>ÄzoԻl5o2=&M}RӒ3bĔrC,Ƨ8x,fgbKYMT#d7qFj򨃳Nlء qr}|?7n4%K r8d +N=u69zrI#zFO2zM}dti:F{^轿0}D/}`p4O^iES +g%p4&X1;qȏq28LEmdäbA?K }sF5}faf_d T"B!$!! Kk "ET\ǵV;N=:NqsfNOt3[mg?j7%sˇ;?_{>ufco:3grZ +.1{18Oy8M>($ +ނU8F ПsXf23hO/ysN>ܦlt.GZBγ g8~8 NrwVyp7 GyKpKK ~ saV`'Vh Zۻhh\&\HJt +\gX-%;XVvVX R\?,큅McphߴsL Sa2cHx"'Ohh8nJ.~b$n[3`ukMr찐T a>I0 ɻa*y&_y~ +aaLzWz0"oa3:iH#?Sb9oq\shq`55Ӷeʴ98-+'U'e.kF~Y q\ z{eC>ҫҰ|4$?M_#C? B?^" (CG˛%gpZV2 dŒ"8#O(RʘFrRFܔ,/eOV+eP (vSCQjbګ8LٱFqTܡw(hWѦxh +o[zGE9s_rXE\!L%4Xn6eDOVR)=^ѭ`t){aF@5lWdGU"UY>&g&X^wHx8 5@Gk\èvqOA&ew~._ch.5S]ѡeYj?˯l D44Q^ +As59u?p\#߲]0ەfZ9#}k+ƌQh#*N"䞢Zga>]gjK#[Q>ݤus]m^ukGyui^<ߩ)ph.NPU/~U70{~}r90cĜkb`i4&M71}źHo]/㺋켺~mQF*t{J?)D6 +F[>E!~#7}U~k2g‚,@U]谦e&PϪ35Fi(T"]ih0AqqBl1.bhxOl0|"6=Xu$C*2x lDVr-dBS\o˦N]Uf,er=M&sh-1X%%CeMRdy#XȗүBS8ȁwYA搉jw{ sN1x[L# +:i**,ff1T-hUI +mmLNۮ5{bu1/1j:7j. K42 8CCu@m] +QIt)|ciхNQh8j^qs.&y":H+R: sT=_FP w:<dAzv7R@W#MPM&ؼrRYc6A,/,7p@="EQAg9~p?f2k3k^ +2k‚;dqCH5~ l~1X`,%k2K"|Wqw +_7'7DeV2|W"3vJKVz+Bfӌ +=2}{Ǐi)R>o?eH[^DH[#n`Po@[p@m_;|G{J EA~H  BN(3C:JzH*hiP-%IH(GI}I[&mWRbS福+x,; v'j7uzfeywa@ +,. DCxFSc5$bQDYdFQQAĸ%ihXj665X($9{bFH/K W vF@csWogW/Tcς9CXA!QehP%+8k#CpcpSvxU8N#)Z" u)j"ʂԫ,T=]VbJPkk]5CA +,+RDzJ_UmKMY/6Զ1AFKQyχJ`.^Y* Ě/{+@wV{wڹ{o=E>ty2V㊍0>>zED=T<{:\Jx*zɷ"/O 5  a򼌸p<0Cr5EFذ }Ox @_ U -qp&{1C~6nldB6KVLvz?&5060624G#q4hFl`z";R=b1{TJd)H"A- 0ꥠ.;݈njve qC ~>Yla,nEx̵Ԁ:$ O헼e L.\x舁A(&n?2=E'l{9qQI%3KL#7ٲ;y1f!V#1x:N3s aҧ}K ˗FU^4u|Rث{!EYqMmb 3#;|#|J?5N*tu7Z + JHnQMYj'\y9*'j1g jR/%ρ6Ùc̅US>99aZgP~NhsDH}7H}5㲆{YeLc-$8Kh"]\ǩQm^vt/EZԺ `}&+kNNc1F*9g\vX䂷:-DC;uOho\[b |7n8[5k$6F +0|,XyŞ?EhQjfy:|#3=M+٫u+E9/a g"+O#pҩx&lX`TsCZ*TIWqsܞiQvH5kihϛd$mm4\Uh9GU-w*-Zm٪UTw\+.KemjYTڶs yo WY;-moյզTqFj] +5ZUY*׊r,hJ;ժnw:|K]rti~0/q9̑\oun}Tս" +Z2^* IUif84GEa* s laKySny-B= Y?fâf \/bPϵ\+}?ZU1DW:ZEdZ'iM:SKg2F: #K ّE5; Q5Ώ:k̈a+= j~&1WaƏ}#WoՋ̹}O\}{Pdgp~at؆m#y׍9mYE4L\b+c6bLcfƜs;5[ߣ,+?Wϩ@F۵I]IJ"NZ^*G{W}i}iA(qMNNei/I_3=~yZ6sJ~)|'ۯNcdlhoLk\yl.O`,>+e9ߗp&kIRrzlėL}%j0<3!75a}%̱$,LItX&'ML\7!D{TǿI \B؊7.rk  D$x74 +s^ܙss.Nzܙ=kV;OV=V?'%}~83~.ɸHG= +s=8%k#סxz3-XzrЕHȍ.Ihe[uy-E!lKhSv1FRV8̙!uK-j݋2nHVޖ۲B}*e=ٲldG={15: Jc`a^@s~)OR7a52#ZV[/+.MS=佪,Sϫc*seqeqηԸ<1 GAj'g\]Zn4Y)NP"- v%vcX**ebtJK%UjWm2i +G5Fo4Up[m0_leIM"Eժ2X4yzme6ڡYi5YWԙ73t{'/%qz`/Trn~u7?[j!9SQ#Nhq3 P*uJUVe:ӾPa_N4ˊÊTiyJyr-yrdcem\yg oQkj: l`DI}T(2֥rBrjYBt*׶Sk)ݲmҤ$硰Di<IBMI?od׋D-:J56po*V*5Oe9ͩYtW~|94e$j$.dkYh[zbx3(ዐoB%赏#.XKvE:g"rbRás@;$a;C& nkP4׽ (ֽT +voj0gJ4k%Ef."pFOo7黒KYs.w7yځ P#3 I٘G'U0ד-EQR]4 iFz|g;v 8(◈h#"e .Z8uɷMmf^h%һeN"CY$殕 ; s1yMtzM]n't/D׃IލxwAv?]'Xs7Xuʕ|Om\Fw3wY'`5MZ @DS|Ihh}P2A+W0_B}KB׏޽m<Q_p->D=g ߍ<̻5odU.@l b!/E2F?B&~gYX?%LN'Hn% n.9v1߾T;Bo'm̹fmd]  :No8 r/AnlA&9{~-nB<oS뼞nU. +XzF& H8W?buq@20a60C+ԇml:w齐vһ>}0Ŀg~@va /p>!,#Ύsa=FxņaY1 7q?rv|uM^c0t?JA+|89NMN&gb q8σx?B0'xqu ˭e6\әg=#=NNS,%aϢS;ԅ @b\ `~{*ktc,jE;FZ.2zXk۶09~Rz G.R@K]Ĺ:ap=rSr@c}bv'yI)f?C  +%!f7F.wVү^irtҧ 1J& > +2]TgY\CjQ_eܣ>8rB"\$ $B.@pI%"[EUzFVڪtvuvڳvs;s׳v]f_ywI~yymxHuXntvS3)}xN!]."}wut>U)t81 ?׀ +t + {TM"5:C7ұA.14X9,uǫKD"f"S=KEÿ<<#m +0jhNރe8ccϡ|E:rr749X@-  /φ=7|_,,'F ;Îa"8==8\@,NQdH0k](}E\Tm]~oh!pQ`4!mt880</"r#»}YAaDRrTMoZ4XvS8U# NHmlCX+~>݋<,M284 ?(?Bd(+%*Pϣ4^q +tDd":$.YI9T>IHi4%I˦hLvF'h|vߤ[4NQ_BOYR~tvi[9J=o% ڿH3+ +hzVhrEƣkh,F[hw143N11ڱ,B+ߥm>U؇U;`YN<[ͣ4:֤Zři4N#qWJqA @\L}izg+9ښp:^whsGԖW5_Nk|~r0[)J) {-S,_M7$Τ Jʡ<ڑTD}I%ԛTN=IUԝ\lMna$oa:-eiMgS8R/sSiH9>ܺ/o6ײ`}~lu8lMδT&RR*R8[.NiW8mZNӬj6qz$N= Ojկj7U?+Uov ZcAbwx?[4|ڡYF۴qԥMa:lnm8xMQSʫT4u_TkU`0",-Q_Gs_5 \Yf{Ny ¶>=C=zbisŠ4x\~X/ u%*]0Mr}LC\j %^qIc!uߗ.c[4b >| {:Lj5&S<՛R9\ hfa&*q9~/R5Kec̝;"sȊr;rr嶜Ϡr[vDv^G3oڅ~m 1RM~2S[~Q䉋-RDTȋ,!aianf[y֣ +k^c͖&Xk6Eث`E |P@CxN658rDQUa, +S#uhA贙Ņ6ns lelFamRm[L!E}JaQ*mWY6[P(,NFklj= Ż[F{ēʸ"N`w]R)79Yq6*] +k@wM:<:#t):$:4EGa/Cyp<.A pms#xzJ}"*/'-9K_)g>x WYzyC4 Y4wZ{C'VyUJC_8h@-P('`كTL$k015ܜ`6_6P,@Dl;q28'L n \V QrCqdqH^Fp,fn%*;Dy!)Cd p +LfXՄL +yP`c8,H R1~RoChunb5w %T})|"\:oP+!p+- ֣o$$ ݦgHۼ2SzstGEyq73 ˈ,NI$j*# #, +hPAlLhƪQGE&iM$-&&>䏟wwHxcu1:4o.6 0k!h]aYvZWCp7Ơv`bREQqV4*1&dDyO6?E4HPca0t(؞ {;5֠6+߬HWC+u0I[;/ ҄liLgY"/;P#Fs$:f1_^tdD}Vvʵ\>k Jn9Bע9 +{ LNFI}Ұ"fϕR(#r7y9 SN:c>ruN9[F'u2:yP[¦c,5Y'4¿gu!, BسaO-$҈R)\ +gTg9j\kjq׍/ͽSKZXk 0d)C4YJP:$` :Z +K}^ų`#`ь44h3M`p]R\N>O$p 7KoB/VhǡO<\JmơFkq$c|~߾{L[>W9y.D`ÞQ#=[/ o`mܶ%\9+2J;5.ƎNN`ޅ]UW> o>,X`$X#]s2S*Z8Ll\vS6tĽJn'zl=t }~A %f`͆Oe ַa> %ZF5Sda+f'xt\nhX?_-%ѭ0B›cM3?BObTOg{`Up`Tn^ӋzX줙o:Xa;+e硾K&ltZFr䅏A0OaJg- F*OaP1UFVꢕOycHZf*l߫/~~hnb/R8> 58az׳^;ɞޖۍ.7f `MzL3Qqj6%ʴ\kLY4e.*wY2*uJ7TzLEUvMn_m/6L%Gp;[i/7uWc?5E5O~?VTUzR\9=s<3]%^9*rGU]|P}+}eT=-zGL5=`V(UǩtD bWB')?MYJYlRz`AkyQ]Tju- N)A=: @4G/׏-Mh=Go`:R* PqEa a>_OъtY#rQԈ*7(ټMIN-1bCa.ָc<s3Āc%T1WsF飂m0eEUFGM59E5F-0D%m%ņĘJâ˜-?9ds)>)>E9(bjQ%eù_]!P%@AZ,J4,7$[&,gܣ.8*{h 4-Ih&I/I/Ii^S +I)% +r+q΄ 3wc(nE6d v6D&>iɛ U갹A]gnԚh3j2Vj]@:e|WON}`drC,(RIԹHun]US]4~][/vRcT7y\Mզ:'W%:8\+gJv-r>OyC>{6gW¨cgT䏔'UU1}Нw{ nwi{r&8=ϜgqݳF@9lLVMּ5Vu7 ^[ +ًE4xJ^R.>X)MT{-R"ђHSM22fFs`!=mO OCV.Ԓ/wk-ee-ÚDPM~9K[ $7(HVȬljKȩ ̡]z(jЍB*mJI>͸Kc*/+>&OK.{+5%iF"~ZaoV$N'Y~X%3V}pfl^=&ܬNգ+T›U#V?J{MAjoW셽 J Xk+(ܺ*|/vσ]sNaa3"L IȸYD'Kr4WFEdd4 IZʰ\]&ePd 3~-iĆU;ஃ |; n#ko)jUˊoIiX_"I2,&Ccdp!bnIl-!(}cPl(bC'WtCLMd+N`>R/Ěð+aG-{4iHu\ 2 _ŇIx< J*S BEuuqq6Y`llf\φ;|.l"6|؝l>X\"R/U\$FGs=r0#)Ic?ۙ ey jJy7SmGQ#llSyYFwS/+t]AD1D?< +{zz &&۲lٲl!ɖeK^$lK^$o,Y6^0 8o iBH&2ӦM:> i;:N6]( +Ag7:{=sȲ墅2:9^ڎ0c?ʐL 92EG:݋\<=ynA}>>>~I'c!AN#qwi?HrGy<ɘ"c簃vyE\3|sNrO +S?Sw}Õbw>%J2hM^f~cLS#d1M62h{q%72s29w&u>#7wË\WLe"9p>Z$#´#c'b393d,02wr%Ǚ=$f$/s?vuxgxQ; "~O4- g-͜;~291r63IV^݋"wl;hymu5~TۼSgy0UEfyFZKN9-tY}$5D&rN1peNp<0&y&f\soLj^w:kG8~H)【Bfb9 C$SpJE{d^U{Be-^{i +̥%af[uH7b<c5hHF32۱!3hfYQ d!5pBٌq_FYWwtoQw;WIJ`7弦8ɜ| `CѼ*ϫ@^"ymkЧEP3Q hѭ݇./ >ЦuSl˿'+E!`,אMr.8B +S-@:#B:+:zu. +uM2$TPG[$qWeZEI*q$W*D"τ,* +=uOwZ4}*jI$kiFM)[ǵ@-6m+ac7e"|e*"CWz|ߠ y Bo +=d٭[ͷϒ" Qd(o ןmc*mN +( ?`&P\.\NY2clCz`/VE&>@4@FTX2cx,Ę+cf$ĪsAk2)e#eeӸ VL+\/x^2'3?; ^ QD@ C2dP@ ȺLe4DEjոjIm!i&jILmO{vx4$Üw}/elcRhR_4Rr6i2[:luaeXP\6X@r5RM+jUU_lqKZ8%\HsN;#EW*M\.C5s F~`4EY nX76u$W .Ko/ߊ"!׋@>΀;(b& Z ^GL5K6XXr,<蹎 \'çKCI;E2Gv."ڊ ljrw +ܳ9RI:᧴,o cY?Ơ Ən.${)~7ﲹGv}oJÝ D;= 3wY=?C>'[v ;0Cc;s{P-u^ +x%$܍nד:oN'dǖ^ʹ _va!>==HoԇH!8\xYVj]RON;<u8a>҈w"]a@K,&H'+qikZ' ?8ub w$S爽|y^bCUpzЯgs,YPXަ7ޡ&~I`?.RJTtcq/u&ƱGw zppDYu~X$ H/Uzzwg9EtQZ?Dq8k=w%2Pgy҅%(*}:{ %;TU(h(̋4ʇ(ߒq=?)V?L11C@&x/"?+EG]|8,/QJ_ǻ+%ev}C_E)GH_pp{/ryCE×HpR!-Քr4`) +, urqbWxR#3߂Gc6\Q_.?O,.Ķeخ%kS 6;iu& =L.dk?}Q_ȉq^nmr-jGRs <^ G؟<bq)vk݀Uګ0(oA@6Uӧ^!x4&%bj7h&;qG s</NUQF:U[Pd3^=gV7-x4p2=虡w|18\'bO~fط28͜uu+kDztOxCz{*\nO$qp$a= ,8Bx,pQ:Ob +k:c's) +̇k!:+?m|wC nks)G) VD.yu^2_7E2uA.Vt$eNZ&%ͨN[&hڄmY_{X15ZQ~}JF{=pWؓȁQ-俦 z5L44cC$9J|A3+Ӭe橱ejqe\ilD۪4D_U_ЌǚЌ>[ᬇ2&U " 1k3=5[Mh +xSeϒ%:{23ۤDf[snv*a&%ԼNaޢIe=X D`V ,*F`Mx.X JeD0̍$ < Z$Z$ӭ%(Ӭ2%֗?垓)2em_:DpPL|d,[,v)D$K'=P&#2ޞ.,[eLڛE)/UPQ(P D)z,ݰkZP.l칅b|O)ޯ\$BF;}/c:#Ed;DN' W/FxuSqk.ƔTbyEV< pWk0KQ>5/mâ% &M]UdL={n2.eшCM@sAa&1r: [-& PᭀWC ; vRHS$:(2 + šse.`.w;?⻻P?ն#dY.ըqa`b)#l4])KZx|ЋVkF/6.6ǚY6zր0z.he&Zyͷ]J-VVa9 f`?d`nާyѬwx5\g;h EB[|L͕?I6EpaTpyKFWq_C8+ [r{.&GhxDg=r󟠇o.> +8jg|._//%@qrM7pgؼS, 8~AW_UݠQK$~E| #W@Rb;E'kHfb&f#귲Uv3:G +??|Nm1:Vě_ +#D%v!K]AjbxװڙM5'/󯟕9ɑYF_31=#>01mc&]H|3.$v)GT_KF|&|/ҥ-Y.}G;mv³FJrO&Z:yϑ䱍6Ɍn`M6"@vVM>E34\s9~_;^HD#\a@Ka8`8Y}&-| WөUtdVRy3;YGShf*\I]2É@sdZMYFW)q%M|94լҺt}'x\caswrwhWJ +':8Y^i"ȣQéQ'5u)\BLHd7;&zTpf 5ȵ5sjJ f pXqaQC&,,8|VJJS)qMbW[\<87@97$kI6lv6l6F;rTP HZ E:(:ig?G?b?}}~7zLч}ZsꌾI74/6^j{nտ@z!$8-1Y`Cb]Z8 +ߩ)auM(4uDWGV%5ZPspKs~`m te%y^K$%JӦjaE(b.(uXjjU@MR5ZݪϩR]NjgUMnf*w|y+mfٞvʸlg[q~a*r1G\{߂,_C`tK+q6dKV-Su<؊U_Jy,h2v3ϸ"A,~ؔ4))]2E7܋:õ zܢ!O;{-=Qv|v*rrݪ(6ΒSh5(4%#^0eMA _Sc+};Vr/j?up>; @๥o|Vy5&ðSt`ߕڈ6û3̫\mp]b_Bn)/N&eϰg3d9ll?p?>3 c˜0ԋb;p5@ApWs9vJ9dR@2\A.?`qID:ό`&#n6[t 5-!|j졋س\xMb8a.bX|a^(ea!L+  n9;%&֚4YXK3xG:4(EwW;v-Jq u5}\t.nT>@&C𳭈6pKctql!66~Zl]0`j77艍7u@4]C.r.,xH1XaZbJ;rbc>$qۻُ=Ǯkܷ]ͺNJ!Ϙ|;'G9=rD Ft?QzY^8rR:tE UpQ\M77<MgQ܄19H>AMN79//R3ӟ/\gřx>: ^Wܭp&Bj_!fqT7f ҙ zX^&7Fs7 I&{{x^0iF}oZ_0p;!W]9XטNr_?%:l_^[yK3u/'|xݫxwԮ%x.ئ3?Iqb;N8Nbra'qprrZhҮ +bE6mҤUbڪnBVi''}_~¸5x?Oi@?Dg^A]E722~Cp;!.<6xꈥNb~j +~oeo.DO3NFA_<B^-JoTX5S䏖Q&5QG5 hi0ƨ^ŏx?/rϱb>KM,%uӇ32 -K3peR{mد_/ha*(e0HOVOQgY\3X\NEO.xޏǾ;9\ Đś[]~aG= loނNh*<1jr+Gx&C<%XGTU8|G9z kƗ>cLQАNQ2j5llEޢ.5PdZnkzT.՘0+|"Ggz#p=23jʕև?!wKGi̙j1g6lUJnK}+ҫ˰˧TUIn٭Ti}VֳZPy;ߔr[Z& f$4({?ڙ3͠"M\+(SuM +*l> +E;vxBeߑqA%k*^%2U <Nx' "RrU%*KUU;MtZUtZ]/KujUZ3 s͸Lyve]'epQ*y[7TP}KzvfQ@;|\tYdqmPI}}* UgVZˠizlʪ,{vU9ut|Em4Rq 0@hwpy$G1E{ 2zKUTFF*ǷNYl^RF~7Wy^UGJnR>Rj]&uIM3 O?m :nehDejm{r%[w*_tJ)?Df%?:)7ڿ's#4vd[y )[HPNW2k4*9XD7!H2 D:` ) ANnt^xi;OKpOc p vn5+cS2 cz?}Jp G@"4wPg#<AĆxaDcFSB}LN=;&&x- +z VH.B!JCh^gTI@fQ jJj%bx\z T1C.]`؅]`K +D +YOP3hb3mjĶW֦M[M6visۦնN&L&v=EwbOtCH-`52эbZŎ>rOC>؇䣗r-duCotwNFPsV5nvp@)@?ܵ;6`FGm p r lz ܂[iq35u#um-"T͠T]ɞvj$-54I),<nŸ89|ng %L} qFc~zuއS{!{|켥օ7EcMy 3[ ~ NYgX +(=;F^Ǝ4q[_Ȧ3va;uﳱ|lƎW*v\q.0}:|ĽHk˯pA.?O$XÉ^4-UR#𷒂w +nxPHuF(R2ϑ 0ζ3NIS;ܠlmHk(wc{>{Yͤ?Vu +nJM6Q#xsߍA.77ib<#p[vw( 8Lj(8J}>FĎ8@=AN|sރ}=)n%|hgVxxmf/GP!D #4Cl{cةS[9b! Xu~j} \39p8zL pGȱ +_8vlS-h̥»2ŊDdU$k-U{vx`8j.Xb *tjH 7ût9|ڀeD9T}#iנ'bpn#f^1qcv' 8tBǃO G}̥N X8f:ZGR3Nˇ8jGFH+Q|^=-ETJ7Z^hU543%YN&+ +.KTJ9J>xCBs3lW +ӥg<ǻ&lc(՛4+Ȧ fTcSPUe\Y*2OTB>Uhޫ1_/|!?/L+gb [ڒ&93[^mY5a1jzX*2TpJKT1]Eu*j?jW(/Oޘʉݯrǜ;\7.P+Z}ԀmrD_)ӱ2ޤpī$&IE*s"W;V9NhSVr{iӲO˘-甖xE7JMa@N60V8U1c4S--Qʷ$(bT5[$\IL~H r(=Cimهb;$YYS.˒rSeM~ 5;Xՠg%+˵)&=NvT9R]JOSZZiUVJ%;xTTǨg~I7Rk>Gc5zKXO滈| +3|{d8(ԌD2lJPRGBY\JtTYvŹ(ƽIQY>)^VX7 +_?+lc5E @px<$Lʙ o0/yV?6G?cLMFhb3W A;Ķ62||Vr|ᶃye'fXfc.[6؎;]d $;;ogS'DnCQlDo#?Ybk7^q3qj-@,!td~<9S}vA%Gx`z9o_cqfZf95pPbN'F58w\@,#@rryu>~gȏ)wxQΉ("rI07 ·>!C O؜gNJOp{Is296qrrLEP9(uD4Ģ~ٽv 25"):5 0vE NH4b=lx\3>eDp|\C +`tI3":xtWA$ ( |+{؛?c##8>bg!~AO{u6{]`WVk.3x!NC: w#܂[p aѯU7UgS-uT/PW +~\ƏK12(iڟQȟ^hHy=3; 48 ~ 6x/9z-q:L.. ~jHy3["xy4, ufz\< Ykm! tO p(K8r\l2{]X knlc;Jf>Zgl0JB2D}1 +^Fh'͓n>P \v#ҠchGQ^GvG8D9^dp З{( p?0FLM;6@XmDŽbcjߊNX YHſIdU@\E1fOx8FhZm~-`S[( &r1Hdy`/͌~:`Mk`;ƌlU2D~0~l!ď  \n}K=duҡ똘Nzt)#kN55ȌE;<; *& FlN ;|s/m9"G!Japu`FKV`?,JSO-M=\M]Me86-[qz&|@??Hoqr p5V`9 48'"SN*4ı ցV)>΂'xlÓ O>2~S0KK,f9c-*IRQl +c06_si2Yk+;EY]?JKثdO8%{˲Ž)cY:XZXꗂ*ޗY ,EHB[7Ϧyʶ*Re$yIe!Ouf *6DcJTeY$ni}#QV"|Hj^+@ ㏃ 'Mʴ(nU=E)YȖTrjҖ)1-ťo%cbvf]q +}[9Mݷ@[{-GA/)p3( Qq9oQec6gd[6.̖-&3ٻk =>yŇpı(X^oGjعu8Zsj> FT )JĀҒ_uѧ%zM^q^((_gՑWq(M2ݹԔ.ug|=֐)Ҏ s-OˠzX+{GAѫ( +* =:Mѳ-zTwD^}AT,#-ô4orʦ\sVA3{ iC /X^\  c3(}8fݏb1fm;0s4'A[9/ m2a~2HL%ejKtE#( K{b[s1o;`v#bsWLSx 9sTȐ ?pXMbNk ^;CjwrXH\C\Ω0a\)baʪ?vFB4Xu/Xɢ:t%KI\cܸBnWp +B1`-z9Y^nRߍ /N6h]lT{8ڄ/m%g=^Dw.z\Ck }>Ew^˨5zn,pgb:_C 1.e@i>`r|rKg vdߗ[ +ܤ^n#r㈘ٷ- 9śl7Uzc%_YQػ1gc¹3Ǘp-2x ({b8#a}0'ʏGq\?,b6:D(El8,ܛ!wJc $}IxCKziwjVI>g |h:ܥ_w_9;`R*{?C)9VL8hVkzmΪ2? ‡b+$1߷ή]-+E 90~ Ɓ_:}^9#5cP?Ì_3/>޲}[u;;G=Nz^piR4' z.^ͺyk8U936=,u|O~=mE} cM dܷ_Fe[8 ٴ* rK_ d%w";Ys-"Ri5.8+ˈZϥ+0P#G=fJ^;ctܵJ^/oEᥘ>&d:ʵgS$$zqt+ڢJ "AE ObUpUpxsevU}2zn5%}/u= GkhT$V^.)ށm7+.IS~D?L'C)ҸqBTi؃;<5fABb;Vt,.'`Z)(FC4 +e]Hmd'2r*( e +F2vetU:=Op ҈_:{V zG4&2Q3_i4JfzP `1SO)Mp0RNHzz$Qǁh~GPs/.1:GDk֋& +L fYxB_AAO. EGDp"Xؙ-R8YsBqrF:H$s-akц;&E՞ERE4ѐ:ݭmvh(((8D} NhHp#^4ӎap /rOTH6h6Ԏl,8*Aq|ts +T+(;!洌~ۓq)cA3yz0q[$i4ȔX 㲁va|$2IjQa\2$ӤN s6ԡ,x1QCyy((`rb yٟ}*=pJz{ (Drȷ텎*xc$19˦3d2.0c'F#3GO d+ tAoG`!5}=VP [c/&<ʼLǏBxfNf3fcTKSx,`}N<&ixx9&4{s_{GZkW`/zY(E殧xs@R:t v(9fD?Hl7 {1Ȱ4)2e~f*a<ǜЫ1u(Q-c>ثL@l7җBY+)d+ j:EXK[Iscİ"Y5 aل[跰6c"/7c&C=.ǜX`ק-beLd,OVP ۀ"?e&vwm|kt&LnvVT347&u;`ɛM1<>e|¢$h"ʼ{?G'?0l +1["GFtةs\|SH處ݫwn4G>G~<џ>'ۧuM/\W^~˯n~8(z%JtJvJy$%>MD~ҟC#`2ara26LS>RFʼnʊxTB;~x^G6+K*O^ǔ7+زKO>WT(oj0rʞ?Aơ3ʢsʣtYtCt׳KPDAi ְo˲{oSK.ZrMuϿq-uZ-v#ЦUJ4 % +DD(Jԑ g؄ /^B/_Aoܸnݺ}NK07Uef4VNj:_Rg.RUjUkU+m(P_PqhơC6m8&WmzOjWRPg-]v5֞笽 +pޣ8T>TԐs69*az97s(}9TgΙxoqݡh}?u7Vu9[ѣׄk5gs6e^*CC堃&=6{|}M)h-k-YSL=d)>Ynmyyk3pXq.CSElurpݑG3Ǟ>U5㽚 ֲWvC8<4Ut6$MM9u,}ɣkv<;U;;;j՝]*vEEEzAQ@O")"rDP;m=("GN'@0BnDpncg=}L|IqF Z% y0wd7oR}کrʫ,B_V 5 {voxm^s]pJ9Gub 10MV4kկZ貤y{K۪Tq`-7Hy&"$c<<ՂߝM߰b~eԯ~+ 9F?հ8fjo#I=l]Z]ZFKhk.e3aenǏd2Gb!(N ~l5^\^Kq-Tw}B7<ݒxy;trX +aj_Buauyp,gъl8t4FO՞|`mGy]w󇮃?^kà)Y@FzQvj N2&)@qg{\vr g&+g1LcnbOMJQ #q^wOgʙ9Üa0g32TƦo08ۗ_,p:`,ػWb],ܯCFb):Wm9̼]nF GKHn o<ٸ?0x 0)" +)]`/qg VE ;,hrwD &`A =&9#˿vDwH0؝x`2̞q]`o(rps+}:0Zfx"yQGâFFt#н^>FU DN6I91m|>tENg.0 +X2$X7$7$NoEbꉈm4A~vC,6@[nw4@^=/o4nT /b|Y=KA2Pj2 5CXJp5%srt MH]{v&ht.7G$umQPH.8A\-~lu^l5J{ (Q{pЪyu7~ڢ]n`}"QL} 5aapэpi@C}k]_t߽PuQ D}x6/SqRpN"L4y$4p浴-~_d+߲1AyTy>ѺYm0g[gkQQ`P(pͿפ_Dh^9y7Π^oy]5z{^KgB޻eQ_wUDWDtaTtϞ|}lAl̃V{UaUnEE~>z$-d_A+J,4g3 ʠJ`WÅNJJ@aiy(\~ .Ǡ1 HlX~e/aˢ 4I1NW諿akS6eu^ S0$.4C/EweB -k'P8iEW1(Pcη+0O& 6k_7HuÄRlEW걱Zl"0dt1006}ȩ ƙطo&e#!J=.݆=Ӡœ09` K3 6pl-{Ɓt!؀?UGp *lN` +0L=?O>14"+S6|\ +Y~i4H4~&00lA=HpZ%E#C[`~`cl6ɒARxE)%R:lƃgk`;N;}X6Ä\  )kC;Ϙg5Pxmp AmhppBs $@6, i)٫ +Zϝy<]-_sů,/٤)S C]'rVCe(zm$Ԣu%qi%n{Kp5g.!0ƭ +sUO-Cj_R oLwp,)+g[jcd;錜e#IcTfUpg<[|&:Kp&)9mQN~EPeaj4aL"LLn=J`7<[S{mpvy +">U/ybt?_A9-+t )$QT i4[ÿmRLX~:(kkt7wDzkS7caM_"C-sl&*j,A?\-ď$7&I2(m)tU=;?||g^LH(Lk`PX:UWEɫQ(UYgHqm@ɗ_=I΀9EwSG澯jf,OaiA`Z+/IsB;Tayzo":(_{w~KϾwU X?tM?TWNn,՟mf g ^`9`n6wKοEojxfS?U_l?=Qe +@WmD;O?l!A^p Vy .s`JҲwvH X.ێ#/YO[ϠDY.ЁPP:vPiϻ{7D;yCW]ͱh{cB!1[*QuC#ť"ԄR+JAǕnX!04CcÈKMfvWG0yC0WtXΠA6T n{m{vB4O `kb1vBbmaИ=V30\7LhS2Q1Abg4nnZfУ=! +01 t:Nza$ .oL[?9)21~ ֬1wU՘e[2핁y +[a.R Nod5g5G7؜7Oc RK_wU]e?Z5X;N} + #a ` G- #XOLA]k~nT̩%6|AYS\W9/?ps27\X\C)1x %n$';=#A~5[[Yw4`8̢)rFۆ{C+5 +FX/ғoulC?nR +l="\7/IABV$c`H}8mH+---q8b}淂Wn^M+OZ+f`ĶSG]&YIK ɂ +Pu6|#ɖ"alj#s"V:~M7] =3Tb{%SIX˅ZѽidŎ{qǼ+//\ tQjRdov:)wl,:_?|ݡ\_ysڃpcvk!l$]nBr`}v6pM\ˁg8p3 MXWLA.[p"+s/Ϻzxހl( V`mS#y'`W<Cr(DǓPϦx.x,]y/]Iu_Mt{C[?oOA@WV[|p+\8i>ӎMlNODev[KBq%\jI$[$Ԓ 8RCOdzWï;飡P DhO]!@hE3 \%xcAaB) /7%&EnJMr-frdJ gృ*hyoW@w/@*h "?ǴsmBk6ZbN0(&PeC)49dh|)sB` n4hTh +j +q\[YZkΒO=6 hʐ^2d֩4 JenRנoPJ 8BjV!\m4NPgT0*}nd<02E2Gu:uLvOƾh@W/GPlF +ЀPss1Z]at [;gh & Z-@ް 0BAƐܥ{X(Sz +}qZ-ҍf5cbژ6& a%4][c}20y.` XA9KЊƈڙht]\h+ R^6U+: hفevHBS9+5)61r}Uz8_%d8QTF1vZK)FniZ P>u@qgA}+'9EsqN6uQfj2o|$d-|)6ʪM zhq$@ٌO/{͸u^ %/j%ioZV^bVhX]OIdk9i kē㫬2^J1P:h`_|ǽK_HӞ XϺZl}qSR6؜>~7E : j8ζ3خngۺѭ+\  WBr$p I"G@9Ap&((ӷug}}{JҜh)b"ceJh`om mJoƮ_YvntN1Ax4>ֹxl6^Zco ݰof‡7_ѫ +*;E]Ù +&CI 4B$pYȟkFJw{k ÖmrKG92U{ Fú˺vٞ(VJ&R+&Ҋ`{_iPݔ0hk!LS5r +SxU8"~,̧iyO;ʞ%IK'WHo\۟ U 2?jRGU;r{y8\SK"⁀.EII3G*FʍCnn78jM7el^ڍM\t"zRZ4O +$e#>͹}:|#'q2f џЛ(#@ڨ6w!n 9sۜZm9cP"ύZzTł}Tiny*F搧"qG= +vGt :QEFRGv_mʬ㓪LJ,l{-}+֑ET%dʥ8wS|ZKʢnR)~'TXl[P:̑SFrHj8K;2/S[ G%_m3DfsgPDs5Srk$zɂGa`Ux#Qu4EJ|^oLjb΍&>okPm+ц#x>!3]gǍ+t(%t ;W D~c8O&ԔjXl1M w{`oR~tk`ˊ^J{dRH6QkqߚF)A%@&&Rkٵ@^>HP'EzVKj +kmUddĈ9,5trY NYepI +CXHOdw:Bn.XР hБjt2YhW[F.4䘟r8@qby3Vd"!Z1y[$ՆdʴܦA6~,iԑ2Uq0E{EcD@C.4p-N48ay۹IklKGZT1M̓M-qM-aF_\h`CB<|2pw!\>Og)irN Y6CnD: j@8imbvi;uWz X!N}@`7$ r$!!$ ! +NPC‹%ѵZIZIEh&Ԫ9 +Ґ4o/[tBfOPJО;w;{rdRAGhmUWqx9I]=(@JtB̻ؖ& &U7/ Mz_Z߭_Ȏ*U9ҲƜA>ֻ}Z-! D\,ɂjA^" S{F% +cSׯ2-5ZIb䨰q;nԐCMҽ1@o+cAEuANO}_[]#s k?u_a购o5lG0XYO[=a< +>C5>ábjߑLh)G9$ IX +H6t.kx:~|i5M`ԷbI]2K&͛eM3&9cv|ܘ{%n̟{<'H\36_u0k@oWZ8e˓ɖ/k1CŎ/Q8`D +i1-VyL0&]'qDm>M^榢Tj-1P(ب;wŋ"[>c Bn=; +&m!F,'.I^fM_XPc ;ؿ!/B|tfYHОŶPʉ}G7nY- v'l_p-㵬Kt}hf`] ټƒm $; ŨtqQzJ!ߋZq׿V8 +E{pGQ+{v:6 b-VMW068Ug͵DZcJ.݃j@mKgp\3Ni38n{TsApVQQH B8B@ W IHH! NQu֫*tE(sGl%xB*$ D0v8o99);9l9ǃ aYG)ap62sgA5AX'|JleJW ZEBMbg1}l鞣tMewX{rWK8 +J A +׿ܗP('Ky#=טi5K4Z]RAr^jj.Ӣ̵4z Ϭ5TOY(!C)2gPu8Hmph ):,.yZA>)iK+:fLw=W7A5iy& z胺NI6 JA7yC7l)#q/1VBR1/%WHX\v*6XFhҍBhPE~GA;a׶ Wh< +m~34M7c%E#)"ڬ<+CtЛQ ag 6PG9CSmUUuL&.&r3})C2R۪+/`rZkVKkCղtV7GA;*C1hp<ߨ.=F-c#x}Cl:5N6f)z2YT"UqZm&`kFaA*(љ%zmʑ^r> nCoՁ/!^?0A1o,QqL*YاhnmQE!vgQV?Y\;,Up66W3hlQG>2A|ݏBOAC^ "g"63ؠOR6ɔry)OT<%OQ$Uy|L=Z.j- A2TT~$.-եc/_7zW>}=44-T[-l d6RHݣ (Z3#kP R?@ǡ7}>GǖG{ܼ:r+8Yw#@9×db'MOQZJKkԣ7[r9VgufG`DOr'/Y|?}ݻ>sx|%x~`b74ldYLhߞfM,TcHoOtI}J@RdaQP 24g8~{=;O<,A} ţl0vu"cN0D,GpefƊ + +J@$$!@(!AJBP""EQYGca,((lXh"g{os|os~K>9/\ݩ>BЍۗDo]ykP0@&[3zS>ݫ55_U?`gT7Bb2CJr>e߹J^Nu ?+J=]o~U\Sz8IPWekupPg&eqϓ-o t׍fw M;J dD +28WAWYoJoO֝v<:o?T4_55۴lh}B~`wuckgm->ai#i~~hǸ=N#)ep,/.|8sBE jCd7Z1|{ ޾xԿvaݸ9jZ5V>*PMLmr]&0)` +Y>y/3_x5Py5PT)A\Th}L0a$DOZ|Ib+X.nCL7u( u8NIM?R?Vk ^WD- a<5Kb2" FN2򈄉 >s^{61qe%seBӄ$ibdrدySI-5q]o55KJalؤF8l 6@a'&~n0 a;)C4)Sr$(}%PUDJ&Vj=Ogq NcFɁj~{0ӱ]ö\k W< x35ĭGqAH̀,ѓBO?}Ofml +F{ahS'sPMaM { pܯG['4%B; ?4qh;tP{k 'c3lڽ&0$Pc006J +e Hl`>t [b7ޗƀ'_H0bAK%3DPKRZJ"H*Ƴ)VK¨W|ȻCtǫѰ_? cn߅"@OIn%TD6$~t; IJ 춄AnGB/S#V 1Zاe޺B3cll "E%,Iv@E?+ +ҵtUbrkHb5[ ڒ?t$u&uu'X!l#Bt¬D؍@`TJ7Ep8"}έT>~'}٘6nJkI)z;NŋTu7_ zbddYY" BA/bR2fsf܊fOqʚa^˚e˚j>dһJolRd~E\ 51D%qΈ{A Lʚf̙ff>4:whzδ烜QnCv)G`wP࿲:rBԃLkbȆ}dCu1ގ9H@R^8AJH W=qdң wTޤGuq##M[i> +m5OɆ \A){fgTw` + +0V2=靚7wtܳ DyO$-Z o)ѬȆx!z.6EdPLmglWdoC|1Qtor'^Nxϙ^ڢuJ žݏh:^T|CT|+ #bȆ؍j9ȵD\&{.8&~' f~ 3_Vv^. _>oB +iOr08w\a2&J,i݊& IRL]HSӨ ֠ Lu=ppɸwJCOozqTHk g7Tǔx 5TYV6u-iKV`dlefvXNeFFݤ da>0BFr9yV'3{.mjVbQ :ؐʥ8:F{%)CթLkl50oreNjxsjԑ>GrW\z`zeSPUɪIc+RTܶ +Ыm-eULʸ.65d` m j-7-m~nZiKy?>.B VU)%!.y8KY%t!Pr 55"E4|rb[Ʒ&6^C>ɜ.tu/%TmWf6uA}`QoCH1\;Ӂ,ÕjU' f+{vbK-3vD锽{; ajf|M`oOG!UjabHP?XX; rPg/{um3Y;O0Rϓȟ;X98_1 Kl3bңwk<1ɬx+?3(;3=^5zG?vW9V @ +(ߤ 뼽MOsu{L [k_R\)9JLԬ=oNyqfC\R +]SX+M#4%Gg j_.Yx['=OG*>Xp[3DM~Ka.8-:.D:,2ޖfٿgۿpz=ry:v}8["ufh]@Cblx8b¬`)I疈3mS>:0?xN ʠ>]I#}K!}iO20Q(F +FztQ +ԺQ Q9s l9Q<V1Kd8?|m.ĝZlb^ZZVD[9RBSؾa2[]!Z[ `l&d?8 G`A$p +NZ[!8bBNB >I6!4Bq$"T JhM.B=iP(A8j @"7(T po9xo3:,/P$!+#x5ua&Of,+vElªRdHAZ$I ! t B";0v8VDVaDZe݇}{>\ +LVzb+8bFٲVvXu36oۈm.`?KP"~ L###퀑foR!Fa4 +9 S;b2{3tz5X +,,r l-vQqZ+sX!1|68ۃdf0\yL8Y ḏńj.Z tpx ?z Ge= cQF5M4; T +Q c%[gB!\p=O!{W_;ǼQ },hA4",n 3B|L ^Xx(põP׆x5.!=^ѫ߂#ǂGaoѽP:l]:4 3Dl~3.$Dy{# 3 +^21<ҥpO[i 37|%}W,d>?8~؈N9`Lw  |q[7B;Hи|I$J3/z睵O^'I{-wZl/c>ߎNlV\zlDC |u - ?:, J/Ko_][JekFSꗁU/hݪQFH1R.E& p$ΝHr1$V@ig$P!P + +ɗ +SRj5O%#)_RFB&0&uE=JHs=O;ӟ~ "xDk<fY d4~aѿrcHHr==!5{N?`Ocvu9\>ȼۗ3/$//x$͙ 27ERdحFi=r?dyN>SDJq?9/64735qXl2xѐu鐞F{XySW)Z#7FO,Q\|0yobuH|({ޒ;#+,!k6M}=>7M"۴IIj!i}b;1c^#|@ʌ!keE^ȕ_]]rmcAHg鍪l(z N"y*[ԗM(Y[6=yQ*Kt6I۳_Sl +i+G=oj.Mh29vV{gxe5#H~㫈~[%H H_Gm ܑ45uˇ|,x&5`zPu>WCHyBiiOj-+F3|v6a.2LX5B</J䏄%J⎦'zR3~.7;2n0?6AOAO#!iI#?iofYopN8OT d%É/(c<BJ\ql+#]Ā۠R SGȵfBZKHcBa^́f,6]quQƁ'KXb8!A,c@)sFBBa)$vZtf;a2|7֘c,B,25 `X fc&6 ZOCI7^tz-׵8gqD/4BJGy%_B0> +> hW/Ac~た_Bf`;XN[ r0.v 0Hi(/%pOr?xcaqPDՀB*T]<xLp>`+'3U +mp. 'dp9Mi]ƝP0}( +7"^>* " y© 70l!a?>rb`P3GFS +SuY0x<[9|>yeòAc±JT1Ab+*ODJ_QI%8]*x?TgP7>b(xXZ9_:քq<"AĉZjU:PAdB FP!X Z@"EP,EVk[O<ߛŹ@/`i5x;yOD+p)g'd fܿ7u fk3;~0h;< ',0Vh WCa;7~ X#@&ML5t {%F^y~;IŒ q,~<-q8]s_XK [i g aIvھe@q +G}e{)s^)Է^9Y"33i6ʫ"& zQ٨k7Noh_a%ж/ .=ysȠ3XLl(8Ob<ϊ~xTʘ + J+!!}4|&:3s 7jO "C: 9C̶ ?l}y?α*y SFŬdk8 +nM j}3;Axi&6^p/u9l bНVK{-HI{>yFwY#1ØxJʽR x=_u[M w4DPC}">T.H怱*[`_ [mAҜ7~|)?qd"{)„.|' m*UR#9rR\OJM&^O&GM&EM%FMdC@r\q!q5[9-/wM)O;1$),&/lH$M,eJZ.5.ѯ˪ +DrYDr s"Y|$+b>." 8{k:XC:+n~=Fsmۄg=e>9o3bcㄵiy byyt.?YrAA@z^D`n.vtGVO=qMБlԙ9{EB$` *8R$SR :v g6B7ȋʉȎO7/(io搾Nw6KMWU.P:»%S.J!''T9US6er2ù{9ܑl9wT!\ P ˀmo5f+X>.wxam{w:g^3 e\/;#AN))"_$\&5I!?'ˑF4S3 8v搼m3yU#v}[}k) =]ÄUh}ʈf$sDV(JEڢxQ+nqDw + uȈ MPI2)Rb)3 u.!7\FYV;ߗ,͊(-F(ʅofK!F˗"=K]7-;Mko9;^9ﴼ%8D܄$6`ؑZÓӂ/RjkzA SBK!urd€DF&1=1Xei2Bt~^ D}VwlQϸu"麟?3Kkc`Z!-q@kȿPv)?4*FYGvPYfXgfFQͱ5ڤYZDQ'T nƠF B"ޓ}>}}8^ޡu}tm/ [ %!׿!ⷴe?rq +巻5c]AԦrZ V.}~zRWRm;Wj{[=Zi;'"7ҴԞ",ݽO${~:y N^ۦs_.k; +_6{.;K4}e}}Ka=!#=KG 9wcW 8|ON'-'{n^J!K(蒙m]<),Vw/.V*Rţ|@[%{?W([}{L+ !'j w>ܠ5̨Avg' +ՆAI5_bGp]8&?;i潾eCzO'n?!Or-B>m!d㈿:M]ːYD,;29zsʤЩyk8(Їp֨22,3Q'cz.a!hNG״nMԴ)W pZ%BJq#6ڊ$`e"͇ˆ-?6~ +*󱒗 lqq|=LȷDnڃA+!; #ĔiŘ>É`BՈ &ND6e"=vJ*DHM15E$5KSXɡOΞ&EB'sڃڃ턼LXL*f&Flfd"WStWul ʹB<"d3222U2]  4L 703"!шdA #P0f!#2HH"~MTX裠 l2 +}nV !`e +=99MB G%<."em.,%H!A^ RS%H jHbd" "p z͇pX"_d4f`3;Gl H_ 滴ViȐ]XeH?I}/CF MRduJq>#"!@ A4CDI +H^+GRd#cئD濕:@S"9W`Q!aB: 9Elh(Hb!a'B*cAlBWN{Pfj}pрwF~jTEb(h +TPwjP D:4*9h,\ȜKwi!XO n :GI=^K[u#n+_MڇZ0`Pφ4.́%3VQLקK*@Vitq&˘teT2"oV5R3ͦCv?øyehf UtL1ap΍;=d9[jǴr=ǀj_fOᒭxezd}hGMQO1W}XUk.,zF愠(1,ѹ,g{agRj3.u>5c˴-]S_m?8;Z ]##- y3a+= %㭴0͉} wcV鰮+z`Ok޿<-y4;{/F.z%JE팪j/Rۣobh5-ՄzMUI\iCٟ`1o4Xen,akof[2<`&ņv'P-t1N ̈́JЄ4_EBgj+f +9R_'kC`к5hsAdm"iVeI#r70nNt&JXL5Ϫ%gUd52SpSJPEKV>e>52 R۵KX^S8I"qIJTFjQ2 @(d3F@4$&= SYBt1g@:Cj#H7чu(ݠ>ΜjxtlL˝t۷(½؈ +)GM + RiR,@KL4P|&NG&s>7y*< 74ƆY +f~`b#xR@j^צ ++zQۺܸ__sάyMٺ Ǽ2*WJ d)f +e8eqN^z&84(L6!I' Q@;e  +2.o=Jz[SuK- +[sCqhbbU<SFᆕBK"~pY}fpu^P87d:#8:3T1*w0X F^W V&U_q'x 8战h*F|N@]!ۿ.տ;ůaOx +TqDU R=hu7uACV;Tvso9pIt5N j1t|wDo5f|m^`=IHBF xf5].0G?~y?(VhXӷxo+c"D\AB + 8F|C8 р tĝ r!x!84*W9(`Y!F|CV7C|86 ] +BɄdL:  B^ +ɛP 1vv#.\)D$.rEѐk`nkNC! CHCDZScBFe7C句"r" +b {hblB>pw' +rP ^EtEWe c#_E EV.E6l0l #?;7u˸籈x +Dw&" %=+$څred01)Bz i1*|8,]lM`Ҙ7kc^-/~G== _%EL<"Z"$OB\g2H& ?;#yPs(!/A,z:$7*e"󤕊ɛORRNo8w?jܽ;}[#Iӑr9iH;D)P i4[;۠9hdE +^o^V˜G,uw3tf5jNݒz#dj_wS]lA39r_n?/<ʑ SU÷ +0N+G]njb~(ʭ@B@muJLy"iOPsbIhoiPiDIxH$U(=o CL) [Q$"a-Fkt`䄥1g/;Y]*"5i)yNW.#IHK%u% Ni|ɠ$NQiaBtgqhF9@ySC-7:I҄ݫ)}_tyێ:)kN +hHίؕQ%^ 8( z ?zBĮEψbJgDټbY0BrϤ {_]GI8߳N˝S=Nm:巪d]H A[RlVK]9 {"jAD@nx?a^a7OL??pt/NS{:)7{VX' s;gONdw8EܰNhѬγ!n |]!MC˂@yA0Y p"ݳ>eP?Y9Δme: y +a&pӂ{ ҂zSڒ'͒ڻ$oSߤ~:[d' 0T^Q+I_s߶0˾<0mXbeHkc#!^>Fx{o,:;d_\8C'qy{O$(mXƻ1a0c t+Vﭝ|Ƅ~[Ǜ}nz{N=}샏Msndw^=dH,FD* 2pX;6&YAGj7 iCt4BMGC:2 ~!.B &d$LMV*X ÞtOB ɮ,BY2^DF#.B9&]&1M~f+_lwXCE !3F0@H0 + APDTpV\.TVUuԅ (=}?>s|lV~3dՌ|zA=ڙN+F{-VX)-jX MVk+3ȿ-,~ŌUSD' P8p6g)8V98R,f)| Jo6pDm 8 ͺ\}v/n {W; \W l,=$pہn둍/ZgfŒN'.´!G)9[ Y+//H s|x0_bmV@ Bpf;̐> '%U>[nw4ֿq$M/(R& uyn}8w. |P!,D$M?,ƣ#ቮ/gTqXף҃Fpd}"Gut;g^ע}Dϑ0@9G- +2+`sx׌`ܳXG1h4Zo +1u7bZ +p~,2lGqVC8=! r/k>WpRMҧp55>'r2d($t02DŽЁԋ{}ag% ?4ˀ#I}p D0?CZI DM|ɱ=,#c؁ ̼ȳ2if /v2y'Dޔޘc)b܊9W쁔ǂHg|hbB6H>ʹ^+p(tW~}]n1$w凟bKb)O+N8Vx8mKAv+>J؛$3ÚtXk8 C>pu@K4ޫL43.k,6YE52}O8aG2xo){yթyM~Oj;k'V!jIm@)sA"4ں2}i6Rh=VcwJpWKYúIE-ɤIvAg*mq]FA/o`W/ǫj4Z)J0Þ "2dDښ_::ZWZn Ux/ Z-BgGΏm[%2NS*cDP/ԉEjaap趰BFX.((˚e}ASC&7ha`Tc:/>T@*N\ǥ(̭y9|a({\\.lK6Hz$%䆤XR\,'E̹ Vw!p04 +e%]~]⺠6pHxβd6uzI 9rY*[iXZW(m['SIO)WϤ +黜1qAx2g"k._|LZP޹[a74˵@ vYx-69W2}7Օ6fKU9Y|R^(_[X+oT9c +|0_,C.͕Hec⹀ BLs\a(wު@e9S-GokZDnfTWpeBX^&URPY(w2T<@WPWg* GBܹw K`j ǰ (s.Žkpo[m4DiʌҜ\:_-VҋkT4|~zXZ46mH^7oeըt.4ڐ{ +]PϿS;ԉú:IzA-Q[*GvEyeaJM7K"MBYU%7E5*!D \n($:)M2Q""ʢc x}Uϭs{{mܓ6ue^|̜ϲSsSXbYrn풤֬ĜY)R׿΁1+hShWQ: s(+URqG%ꭇ7'ΜvLߝ1ewLڙ`qڅ[|waތ鹽 9F seq3`']䯢Uz+$p}JζPӜח|Zl<4+j^YE ?L*\:7py gPTa\QkŹޏbܑ̉'zπvP[ pՎf۪'Xm2ן +׮<U9~yʔi1IeKRJ̈-M)۟Sv,1襄iGGI(bL*|7c$ݴtSjSG4u Jtc ߅(G8/8=>LĤꔰQUbVDUoYUeS>"S58FؑtP[\p +Sg#`U!p]b}OlȺYuO +6o Ұ{┆#k&_e AX!#C9F9?pzf1d4;Şu$0F7D4CCntcye>{Я&k`s3z^GxRhe/H;HU>i19wXvOfksEJB&´q3/Xig|okT}H9cPՎZ}ڏ*݃KW6]3ov.ᘘ.exgsWaCwܧ;T"FrBܣw̽wԭĵ$&ֽz"r9((N[@Cv_ȹ +:['{ +fVcC![[B^:l;318Ul"[Lq@JS`%W9g˰g5NQo#@?B_?`< cb Zb\GЅFO 1\\ıu65 Z[`^EͿy?mȺIVv!X Y:-m(dKQE'5zp,Џmm?\b ,E9ȿɿ7H`Bg3XrKJldX!fɫ Fn1qJ#2,Wjtb/ Z%h +Qt!Z,ีңSzTףf$H^T^}FF_9;V=蕦z핡TAb|NUׄ}gQ>-U>1Pi8ïAxOnR7j pˀd"$Ab.NV0I%AAdmqRklvnvLܣTdTb{/B殩NjY_4 /;PwPA(EPVF$@$-a`uøh=Fe~t~\|绞F8m<;'àPN(r)p0p` +W[+ e'Ҟ?6;2>.x|`dz2Ex>j||;5sl_qoW12_Z9dl9tΐuG?79ܝ=Sdn6Ѳ&ɺ:kk~WH._>\ s$oΒ`` ƺ:@:M?=_ YeKݢnPuר9WhB;o4NoH?4J :OaL1<@?Z0`77u\h;!v|" v/ĹӽrXc ̰saViYVu 9 xD?ae_eߊ8yyu:m uYNko%6J^ +Lk6gIS@[WT1!'`$.!dall/τq'yu.^;'|t3F7!7*r-Kr)N[ xNzUm1 iǰ/9%aIASK>&( (G͔,U Rxɵ +6qa<{w6mױ,N`.`VB(Y*-D_0 +M +a1!OaIQMȖ_O˿EG/r3 eq{C7Js!9=@O՟;+#״[kK>bcrŴ,$QtJyzF^7jD'BݨJR +to´2QGX;+̊~ v.@=<@Fᅡo@ +,um+ *iޥfvi(L bչ*$;U!4qb PNsrMbl7㣔 Ŀfqhxb #;`N4f_ך(5LJn!T*fʊdטlceX 4)f3g19baNbPWGQȿZwvֶ/8-Y NȫXnEeŘ E1BF%^1GQ31ŵ0G!INGW 0oF @=Aր!/̡gUAx;CcQaD<`M[#}UaPl;Lpd!=0< F.9^9ڃ.VC c@е1fEi:jN}C BB nPpuutZWwkcujm[]j-QV7j\KAY q5̳.dè6[0EhQڣTaI1ȇԁFa}KnyZ#{@j~VjDO';ZJg@y`C7j>8PtF$bQY[τtJ7 +§7Ma'z;Y#[,f 'Ҽ#8Lo7o +3t)7QU&@=G(B<Rh0 1|R,,,# MCR4e4O|H{q >򃟃|"= +Z1,r & d$RD2Q +YX:6/5d=@:e~1@3S7,ա:b12DK?eIP$!e. Y?,*hrJM*e) B1bב"!!rԒwgh0C¡^ UKuLvgQS˩ 0((FV$BA*E(&D/ pț9^}9T<vI,r4(Bfˑ %ˤ(]!A 3(ePA~RΠ3i7=Nq7ZJ3 ~"E) ȢQǣB rTQ_Ųw>Mҷ^iaCp^x]!ybb(4ÈaӇz}=4a1h є|z>1Og+E7W/~P 1]>gsډ0WcΗ`d#W^8MWz-x^NXoJXX՘B:-sɻ e*cMrL)/LǓGR$/O +CU*t/d0K.qFl=3\y+-oJ-n5٦yi̧f>dm~3ZeVZ*3-噭ÙOfܟ{ɞ = i  va U<>F2͹1ʆt}}V"f V,FzU%])7B?~)(O$`97ywsGh|&3~6Cyaˎk]K&3̆ݑuEZQϩTq+qc}\KNONrUD,$`Kqsd`*v>p4?ʹ37.߁$Fm]ORt)U]AP-(R (/ZX~pɄD3_%OҰsb-׊ tvpԅ2XkݫWon +HJv:WWV$,H+iEi.',QeB?q*J72Y-=ηL '*-(e0xnE><9Hi9ZIv^edIǥjT<1Y\T,RI|j: `)-ľʱV[i 5Ƌvz]kecc9ǥTDP\$ (yiHT*\'jN'I4eb͓DX$HPE2u cl2΃UPIo$3rM!xY$P"1͹QhC;Ō4FD؆Ymxx#aVx<:".]b(;>7J yǃeF8Dqv't%6#!l26@q$ 8a& 6B7T#z?{{~I^ @;rF$/3q)ɬ,2ȼ@/0pk|8દ=(td/w!z>΃уuM6[AX14KPv<-X}V:g}ڟ37sFWr/){/aF`QZM/(Jz;(n/G5#]Ȯ\LtF5bT6O3VH&_kSXU^WR`8oI0&a +a)A:l#pIhhVRBVgX9Ypz,8^'x'0r`4kOe#g2_CS`6o 䊡ӹu2Yx?ft3L:!WhKY-M\w*w;pj5Qsy9LhMgZmG>NN<~۾\iTg (.T1.I dCB%laAhdQ.(cucuZێmO3=Vxo~x?ΑU2Z6KF˯x㋶z.@;ݽm'{]J"ɋ|!}ܙYmQjPnS;nQKn /$f|SKh^X:K{㲋1A>ARњAPxX8^gyI_R=/KW-0.z\ʹW0[>fv\ba^u5juv9gYokN^;D'(( +Qm+b|qϏZ'\ɪYv%.r֝]_,!poG??/]"cv"Bt=W||7Sn`nw̘xM|hՉhդ~`y@bndzoC]GݰKݩPnWW(fՏ&կFnxGvB"kjp//sa2v-~Cw(#?Y؆8pƳFJ䍹e<'6&vzc}4ceQZi0ߩqI,taqMqsz#y?8b߄RPX.4 77+YP(*EYDG$Vt\8N8NXOqu0PH!RqawcV:=<9ϹpNw{,ftRE +!rY̡9 oB`]~^lL)6'SXf8{dsb+|G7i?׎(ԚY|#ޙUG_D޽y42;00o +z$9#JuqSE;RLnQՑ\#+TETT,Q qۧ21uX)8S z@|9]|i`q +Y-È` "jCkF&$au3ġusġD!DA? 5/Ej&;ä+%!՝Ctr.9(R ܩB. a7z|dW4Ze D2A/%xO'ُI}D8,Oi^"U& h%*o "BIP6 ń}NЏя#ǀUT`N0N&w|+q =4]T@Ho~g"hzfľ5aR2!P%e+fxG0gc3b5J vԎBaUW8K4|X? qzG)020ޥ s()YGl&2țMVzQ(G6> +O LrdF02yES; bDpE yf z#<ὰpQkH1Ytitх! CK-D,TG~!=^z:j*ji)_vT"49L\ʇt)5,1v-bj{s+| I M,"<($5B0|&:U~fLũQs'b>RY]]*Zz$.p>גx8BmQ7vϋ{Ǵ{cv[_"x6^[G 4 \mB*!Aq,ab4MK(I\Y=E5 my.\53cmJd~Ďaè=Oh}e6S"5FQj^+JJٟoe7E~=-;Y\,k!z°hfyn ܒ7IIG9RpL OMJtϟ6Րc6w@=(Ӷp_rx$!BAGGP-<`r&lM٦ Ӗ)+~y2eu"û2=W 4UB_ )ȗhÂ?4_42PID#=s;'Y_0vW; |g5E85hbH=}6EE0_QUԉ+D!ѺS"Uu2[2g2 R3 B/ܕ!k`Աb}ρB9mX0pm[bǚrm[&[fӆfgTJp'<]pX*NU> +) +)`{F<9s'6$sbj-1Օέ(^뼱0~~Cg.?{RH<*UmJQwF&FHWĒor^ab6 x^uT`s;0WN*jX_?"d,ҩT[SꗩWdÒt:cDꎆ.uC/Baz&x8?s 6507ϡXf/:SzSeCRy=F_ +GUUuAUUUGU}**1~R'4N6fMu6dp!}m;NEhl /oqIڜ<9cmSWI-6LܰvЦ5!7zfM`X[8уs :`0m$wِǑ4=+X=\).,igcܶ8KfJ9wUx\Rh޲<ؼk|x |qQKxm2fxFQ{b-ptcAI52Ia'JvF =_ԗܛq-t^зޏޛos{'nfW.OC lݎ:]wnY$r!WrgG ڊSK,%עr\{/ˁk}=cG{=,nfn聓Ex.hG!2`5 ';Hzd" :PՕg"*FحJ&['svk$7I]+Co-Yfm3Ň;ɋ1ݳ^9wYGDljOafӪ3Z~v-b- b]%) X UFXoIw&;54vf&8 vx-W$Q̇DDsD+?&rL4 ͼfOלh4:\ &5VM6ch>%!7q 9}58K$%@ DcD3?'uۖ>θ݈0n*S{hh>^!x? pw3eY#DDaq-6 +!`.]!DOp ?$z ~?ay+⮂{ܙwv߄KK#7<S;=_F_+.!ǠHى^@{zĝp3A\p*6/߁Se䙅)}Md@X%&DvD +"(#TVǭ[іVkjTkmz0,^!H Z,^5tAW#褗ԃx۠8Ho.(snGw<7`d +& [xp@xJxHv.4ˠUZ24#~+Jҁ]vT1G ӿ.25ܰ?M Fxx3 +Xϔĝf*Q\q7 /ttٺw\Lhτzz+d:&0etC +Kr55AtN{ G+"< sTy{0#̀tXbfl{.~3YtJun1]TUa5].ˢF$ZCE .>3C y!t-:-~B'Mp21Sa&|3 xoy?9q5QtUHLy>}n1.XVѐ:g]Ogmmvtb.{=9jsk>tGLwh 5\j=u2o9,W64l?sQ9;.{%{µ;Z=V;^;⾒w} n~_$JNH.wIl0&`z"NП%=\o覽!]tq!Sbtz'|[*W)[,\[$%mv}{D02N?f llrAz#3W 8o`@@J$,B! T,1 7*k#0jgTlN١ћdC;dwCi a`&^;׼}냥71]uKP. 0W@pgX}a c{³[‹L6/0tcDiGD6fmZ# ?c~Ӽ)ao-W1ˆ)̲~ +]` l/Db1w%7Μ>HQ3ɖZvy:yuOkmVWشhia(])[.jW7;-m)e1}Y3 8k@a@*{UynQN2ܨjc]:9:~UTCcTcCTc}TFeQjDr:\=󢙏fq^ɜ*#0?9DsdZH}I%YH oSWEZR*f%91n"{|uµFmZ*fJE{Eaab^0ג6w&=bij}ueaR"1ݫrKԋYD\gNSDYfH KyZRL,Lɔ'$M^4'yE65(#'(-iO&tPJ)h]s _Hԍ 87Bj(/ /̑۔ύq.Όȟ䓝=)#($-RI%%v$O=i| +}އKØ=wc朏s.h)#j(סTSʩ,(1*)0/[pɘR,U͞ɕ)rBcrF笒EvyFEyaygfP$C ])"* 5ZU$5;FeETPK,XH<)Qˮ&w;Gx{KꎘAIgF~idbH/&릓fշ*o 'Iߣk2:BK3IHtj猕,:a1 ӗJJώ1*1}{DBzՀM#;B= _"E|yobc>vIN6ku=Bt]l."!=i?cM˔ 2 +M OH6B[2\[=m 铀ؕ"pnnr-'}d)ZGz\X yafǨ[;J3>gk }>e++5zŮWQY72\ͫV{B7͓O?%|wl, M+0yո6I5#&:MwRg4b\c ΃ +8Ev*(x80 % v z +paB;.۠aYyKsH@rSJ;|%1xCe1h(c@c:lUh٬!eV Nhbٿle@Y5eݏ,vu|wvaF{}H 1] + 0ZjG|d +d8E_hi4WmJ{垦"iT+V_\Ȝ*_+c0K{~I!3eJ~ P x0KTɰymXj0GC5P}PP +-zDlwZz؃#Q1 xPCY{ v^G@<ڹsaۮr3|@~Z;וNu5V$KohKs`{P]ӌno7\_^Fy11 øp7. y$ xj4pX#$" fD&>s-F{*[P{u8ǡa,: .squ!ܖ='G.j= qs j:$U{5HUJRc>.[(^nr|};&}]c hD`/I:o,YM|KWWW+ /*T2jF$@ m @H!,Bl2ŎX b10x9^&8v67iII̸36dit'3դ{|s=w1ܶ3Yxa"oS'p.?$beGm\\aj(c1HB׽Lu*OɻVeA`s[8yNyV%{zm +6x ? Y]~'E너ҷ8bqy /ya`zv#\Ϲ\=oKwZ)fD6fRѧg!$'$y~,/GYO>;caG~^r..Q6Ě6qsЪ,>F]SSBdx;xF|-dZ|/dRI/C3t4<" )_HGqѿc K"a[zD.X--IU!y>lN>+튘GLK"1VJHѝ +W(s!i. "e`$hAPW~c%gG +P8Tq=E eTkiYqyeԔ&zB;.o{Fq)ڠdf.١-{/S4;Cb;'|5x\ :mvFCum"iEXdTꒈ1*f\K*OPIfErb<[1ܩXe{ֲGtcͥK6HAN;3zh^Goo: +`>S3y$E+ (b*+{+tnucJ=դMkWfFiPm3U7zfsf򯩵aԖt$3<{-}}{.ѳ mLslxYQk :yLW*ѤզU3#ˠd7jzNĩsT^ck+fk*>CTQUjK) Z1s͹тۈ>bõ,|_,|\뢋n4ŨxPbdLàmkcI7MJI\ZD)vYKtaϱ,%si{%L40nasMK iZ Q#hχ lՆWZyEfh c@Lre x!0 >ʽņra !{ t 1^ctpwMv2VM_ȚKV9YBF6y<5 +8{\<l%aO44g!PXZǍX&T;6K|_6DgAAv,52X9pwmhξhv W-vn২vP38Ճ3P垃-%o<*DD=DL-o)|ğz`(K[w6#~hK>)CG[>#=`ha >~i7ɸ7ݸ7d_IjB&~;L}1i+,k{e~^\YUO3=;} Q5 CG7)6-bV?JEy |ErEE""WQlVT[f)-Yeh*u;U=dǏ lƋQuťGO7-RN(Pj+]UαQd+m6 em6M.eB 'fpv ƿK'Əl>oA{@qf~Z5jk]5JCVGM:0+.S/CeD5!MJvLVe:&U*'r?96󼀇Ns~w;Qp?>5=G9nOCɧ]ZsP&]crdmz!EwZHـXDx|u,6X6/x,&x뜠#AQAdQD +ggʩ[wx/΃8~miӮUzLwƲC_M8Co:umN0T?^;C6_;-V3p&~P&E>G-ɣ4Y#&B + yd 5[C*l?7R̸bY#E# Sg(lu@izϧΔGOv9kJg.3\W0dsSsJ9O]]wK +urOy;Y??<*_6BI$M "&(^E@\Mb Yje65SS62:Ӵ8eY3{=9WzD<K[VUsqF9̏.]17կ,!y3CF.3{)'gqtvNStVΚs6t2sGed_Lxx#gaYF(y++Rʕc}/Tz˂UST]VQطlA򀢢As g ͝]P5$zF~ՈGoN˷LͿ0<9asH5!,%6u8?si c2_W%UuOCEeLqE,L- *:8oxFqiZQeԢ:SjQkTJц){M.:1|ĢC + Mg&!er?J;vpkjWEpG9_^PwvUʀ{22+gM K-\^1lrymĤ K*XLsA}8۠R#(kҡj$ +uf~J>XMy}r&x];-dv$sapyQp Cƙwk~z`k~qU7cT0%j\aIzK;,Ԝ SVh\ӛ'ޖڔ=)s@Rcƹc'47.7߸]>KYzkw?Uc Yc9|?_وotj%+N棻ڂ5-!-irxפS<ƭNo/5;;oLkK;[۽FmԪRmr3Y\, o2%s9%dpf9NVP|yUԁ wRFizmiW5T&k"qìI40kcuPkc!0dV)` o"7~ 'psk8BΫx֯cpϧ%$m.) -u lE;l6K;mmnucMn{urw?w:ۥ-<2 sA*X=NgLC|RrK˱;Bws ͏^7[7jؿEwq\[`ЅkndW󺁏Ws.iީI㟐FuIag,sq\.p_ȢȢw?:RkF>ypu3g<(/I>{Ex~9%9$UfD_&W]|[-;oy=)ES >^^o;>Pj}(}J}>,}nb\b5q|LAqo<gz؆{]z385 ߌYxG\u |ç7b5|G,7i~ +Mm .h6`ȇ~=7fEBf>`ʾ?>18{CF@pf<| +G-SDv+pQAJv/z29r9?-|l.37^ 9pR 7!D3g2G> pT0eQ,8ְ<{#c??0zUtI>FM"2t^10Nc- g(O!2=jؒ xZYCgØxc^$Q l/_3N쭫 +k"Rqݍ'nΏu8qe㙋JW1gƛq"ueŵ񻴏O?pQ:Nds݋# Ot/!i›#N):2CLں8~$HH$@ 6؄e  @!.@،X @@l/qvid2ͤq4i鸓6m&iףowB`.c!cr4`5iނ+p9t.݃B`咰3!iO)y'R|vO~#.K>/nEe~\1pE+# e8'ހmE߄3†. ^'/1QClqoc[="7m\LLq&KA]: \./*k^=h^+hV943<3Y >W~1|V>d e9 s < *A-\o\X.YU(ԱI.91635igԸX7{T3̳ݚ5 g@}ӧusTN?\veX+%Vh ׵LX)HN+̤Oh:քVhmanmK>kǸ}K֞97xwy#ZZm%ÑfOz=,ZDZ[r7>a A8Qbk9CA}_Wѫk9t.S7yU\t5h{Ѷ?F+D"$c FehC / <̇`^i0cYFW AcL.5F:K 6C6E"aAd+YK,%U*TJG}Լ_ٵl༅x173NUxkR\Uj\m0D*MAb+o㘴8'2IKRSزǖ~-.3B$O0=ndἅb,SձmÀMNq2N*VTW֪*IM-5l2|:`މ/6+ޒU|&-2}%)2rR3?A4\G!/g~52)zΦFSC(VSe5MqeM2řPl9xd:J|B\4flSIn?Ĺդ( +$~~Y#+? 22ۄ>9]Hhdj#nkS,-(cIhh74; ZT\^ò4Dp[!T+8VTS J_YqG{ tMw&3jT +g>C+n7B^hhbcRtܱ$P9ss?n82idfwQM$?0;idp:\8o3:H~ SW)-*#._jlbDk߄* K|ArSI\C%2]8284h,&=o$.fv[òܭat8GgY!)䡏Gdƒ^.E|<29u03@': +<ѐ?-t2dQM`((}6eaL51zNڤ'o&M8 q-agQ28ndz{Cx*2cH@#)4) DH^%7*y+i^;-Iy8,EH{p!!+!sL~8z DswQrd w sg5*C!n]R@Sȗ_),@zDOw}uE]fq; 0 &TU@W1exɼ /"o("xKMM-Js5-RE~@|?>D7RwHQCvK}qr(`Cw|qq֥zd_^#rGouj95 :kh%Z'5{5_?p-7;paLaƌ:N7 _{4R}@wCw:cٺ1u-вA-4Rc+}"$ao999GxQU~.7Rnu"ttyDNf8 :| PpހAOn!](]Gr8~\(Qkd-u9H/LsX+}@hO7isMp +-܀zA ] }8<+n]ea430Q= `,L}2-ӿu([b,H瑜OT:dFGam1^%:}AU22J~CS o5Rي"+=ZCyhF@oFobO^* +*ezItEvqdZ:]ށZM\CmGnݨW/W4Ih̠Ө\7NjQ3R~lGiܪ7JnFLQm`S ?Uw3Gs_1 Բ=X)34U; TmLW|mX˵3O֨kMUfگ *>u>WT{[kn;}QһJG7| 6H=jwW՚U̩*0U6J[+(EA*PY"m ViHևimFV8t +Cju?rMy;Zeu+rk2g;qGpkm1 QmpKUYõE*Z%hc*m=NZO63TffsZRa[JUNZvJþ1, mso+7"WP>P11͐aUd!7rK+;w.1.2fwe̊|ݸ$Cȯ<D j8O>u /qUxX"k]6*Pf|cU +x,z4L,%19^cƔԘE2eDoJunn>+6S`v'VhpCN\wqvqNS-;6gmbY ls|3m}ږαmijs<+ߌ ~)?MuM6Om||O'b?TA9K16 ޤUZٻain{z/;|3~O5˰OO϶?koyƞmiϳ̰طLu `R0!>`n7~8K4H wĒ0jEe Ӓ~]<۷yN?-qh@jg:Nw +4\dGNӎ -I8#ñʠ8oE,+%%)3$w2<5sXO},8dh#\k89M +D {"9$!NH\sBuI0b󨻚uڵVӮEn{P={#t>'>yI$s`VRy`fmɉ/&& O >k'}'>s޿UZ`3Lg, 6jNʳC eCJ\ 1S3'yf$dM⟙TԴ䴪ऴ=&m?hb)'M&}y7˙;`=i1c<'4ykM2Etɝ-3';=;?%++(Xo, 3VL4Z'W5ڂO1^y/:__tzo9m6bZ>H3 ŅUX0C~aSvakƴ=N6eL4bM%AgŘjǚ cm;*OT#nzG̶ <#=\7mb(oJR7OPΌPg;OR:-dd=2Б{zA8]%U7ҷd̯O-exVYgmآ.?# ^e~‚'?Kqp;<ʽSo0 guM4T$~2qñLJYj#LnOB}E~ByE W'z˨PW+_"L;Y%c>˱RfKtKuߢ کW9@~|a):qEΞ8Q(Ꙅ'GoK"lJ:@X6ΰ6NI'1zqT{u??ÌwP?Rǣ1܆[p >Tj "'z8Qc:Yrd-48VgVVD{nfZ0`;WnXX)zquqTp%F#32T[g%Mv`ΓV Y>=ߴwɹi?Nˍo(ai,xҨ'X.മ+*@ @ /$TkAH#@BBhA+ZXBK0X+֊v!xq\glOu3dIMd6mtIf:i36i$/vx0s;B:tu5wr "k^Y͛4qѰBlZV +E,;Ir:ާF:`Z7Zzfxi9#@K -j(y2f~f2/Д:EӄѾ`9toCgzZsg +q, 1Ch-@+9f)Ym`m\n7gVL8Sc.™[mrFqrCA_qra'VȄvv < qڈ$ZޖOI\fę)q7QC? aN4 O  WABυO+-xoЊ:,'Q +`CVZ,QҼMs9b޸5:L%.h{tX4d FDӴϴ">ӮxKm|QYO'bVnx/+hwUa pbYA, LJǭh<Z ECVx[Xz~Kg I{-ieQi9!XvdmȚ̯weCMm|L{\w`8Qn~, ]DcU +;2`UoT_ixNkoIw;m~6h+ZmfۦmlPU-Y7_&8˞:֋.:XmE3X&S@Gk4J{XskڭlnOl܎ucD]U1qNUzW=JU5fXi +U+X#Ѐ8 V|=|6bAL 6*}lN[j4*-rw]}bEru'9]}ծP5\ZMΨ+\'I4|4WJ A~jK` YRLG[Tj4T&k5MM*wGOpݑ${E]~ZuDmEqu1.VC/}(I$,+{ :7'A(>#DjzPCUZ 1byL`+ Ć@(#) "]`;.7pE+LBexY|9^Y01B m{REH@eD:N%c8J…>l+x.$ w +y^f7#t~dX+ۇNehN0r@ G\a"8QѤ#ɤQn$#z:13JFG20QX-M ȻY&ǡ?M5ǡR)/N{(eBjRGH!%&FH]#y$K$ ߣ㟒(>:<   "h7Cf:Kd'Y$J[!ن$)$S\,1 bVjk#&C(^6 amއ3,]ù%ppdu]QQW0# 1FabE2( QDA( +YP#b4m[5Zm!$icMM\ӓhbr2}F8wf{{^rJ$F$q՛mH:V66eENefocxldžIaR/ ޙsLHܠf\lon| m"=Ž.ۭر&dȺ n7ʟn0nf@Cnv]ڈq=UGs9<"#az`LnD=DC-]4ec7=6ux?&-|l1yPs[\ܠɥA{o~t" "G}i |׊viX!:?HZfb]s*&tXs Lox/.:NS2h(EκҐ_ G.\"?>Bz tF|)utWN8!I;E0xLK΢s"_9T45vGxF+.[mƎ,z=YMK|b׉pm'DL6 xN~No+t^F)^n;W;>O4e1"{BF4̛J{ţddyvɭFFvSֿIڻWwؼ[+&z>GW̼2-$ f|wY[ɆQc1e0V¨Qk& 0s$'2Ob/;adž3bμ'#a`DZ&J1sG1>g̘WZ"ִLjKлrLΓ0YwCxFN9p'q]'N"4R cBRd )Ycլ@ڶ̻-J %tRFCrP>&}E (xMO)$swq;c18*0Vv#ى#{m5+!Qw >+I?,0?`M1F2g~6B"r0jl8MmJ|AGvzF=ZJ|5/^XVL"= #Oa,ױcMv'[f.N܈G;aTzP znLxP}F geaAclV6R+rXJ3M0v}T;GXwWꨴZ5q ;U|vZ):V;߂+pf?YpYQ(MFY.jiP:QmժR:-+RtKVjHk/5FH@aUޑR/}'EJ}37GH)+E~B.EEI<پs}~TfؕYvC +Uc[f W))Kdq"S.0ũMNyNLwV-GVGֻGFnsy-|u]x=]ծ ut޾Xr!13s[AH.ƻ!2+GRT !Slcb1)IY[CDlN?!=,f[.(+30JpAQ\p820qe\\uh5QSEsRck5f&mԦO$9|8߽w JH*(;Ao;ߝkRoJ,IY C3D4<+G#!Jf2 $e1|Κ9,WfFp̜F gu,YnbqieSY; vy:^B4%)ebRy;58Y%Dh`N'Cn>9M= #,]8Kcf@Q1{_w"G~GLo@ VXky.WfI;p9Jvļyq>]|ɦgs)4upNr.tmiw/',okjk3uV08X{8|g.cbzK'\V'W7CGWoCk1e3wٍ\m]S + &oRW|a5xA͞dhz}vڄ5]AEn>5mm灝8ρEȂƊpT[wڸ;;^ajjQS$QHA +pYgezKV}Uda;I/ip9={6xo_ u+(4'DV +W#Ogy/'Ef]<3d,,f1e?`\xRWaIP.m pHHjb\ ci((rɕ2Kn%6,[U$.Čݖ1k9<9`ϒ7.pa%R2)*%y@rQ`5yT0*8h rmNi%&r%= dd4υm'np;`[{K`H֒" 䱁<6xTG%^%VE3WnЮ?'&'j%(5( M]!l +ӲQ2Vތ^D/n.&=kջ v}e0 ZIvjBna6"Y) fuc^Փkh7=f89`o0d< ]@_wǏ{.ů$gSjq9_|zuFPg~SUqnk ^u9\zy[z%"]$c]@ ~ײ Yx``T75U_{M a2N E4gl9#=[itP'ͨ-̻PWDHx̋%$jy%38\8S1(_%˷YP֡?{o +p}h7zJII{ӎhYğO.QJˮ"ZlؼNo+絏!G+̿nke0#%V"$Éoכ8y$ZOTL̥@9xv3~'k~QM_yJn_F׷ V4 4d,!I5QBb.ƞLo TQEWnb7B}Z Lq?T?~HXzH#U?J|ă!Vau-aEV(2ed<EǯB+^Gx`Ǧ ʀ0Z88g&-&tZn2c)K%tbV~q{Oc]3k_IVY1zPS8'NVh?c=(;WRD}kׇZ fW-7&j h_Fjiߥ*4jDsm\A04MC,z]f?.l7pݬVn/UyLJHF0&vl NlØǜeB @HsY6KI5iHKd%ڤM[VvJ6Mؚ֩v賿`E#lN0І2suLR1ԋI&4cXFc$5Švk>DX'}ɱujbyɫ +q>~W)s(˳1z̤0ndncLۂQma gF19g<ͼK:C_B6&eW +k㙣$ݪtfxN#W: {0!uCBnB ]BОUhͿ-y4})iʍIrCr):0QjY{>Jۦ>z F 0\XR!b aSgpKz~IU2vK;1i4h\gdM2c2w2|}UJIUFW =wSg 'bI'%f4dudmfb/6<-z͇ŝS2)֙Ě_99uY)_;MD4qe xZ˚NAfZ6y q~_ᵶ*vZ{n됲:RZO(嗔Uo(+S>U,+lS1S# ;p8@6!xO?v%:+RV`e$WXEOEN`AuKJnN~Qv_i}ҲSYcz8:E" 6Ag5ZkuH)vEFtU +GG:Ɨ9- *T}OY\ʢUE:pWȹZCAkr5 F0VZKa<44sr$nѰ#ZisT]~u-/uMYUkYYzAat]3ԿWPoqzgLwT}|]܏ 1@M;qO:_ +jYp W.*|uRWi("_Tamwd_Jsv~&v?]1c|ܗsM~f>@2 loCyQX8X#7wX._<" >/*ٺmIf3I,{cur@J9bD%p+ka$6Jv>T-fiNWH5(E!=k)mEJWBJ0&cWȷJ%0]\D'n$w m=K"tDEҐAvĀH)2#vh#uH%ҎH) h H HuO3P 1e$&[{6r]G>z0}-J}GT-$F3̓fԈr$Vaè]PE{B9qH_0L6c.C|IHc@҃#v]nd:Ӛh]{ )SM ,d$$$d#l44ok$ 9rp\=<rG:rL{8)2 6yhy6?>Y&rq`?cϐo$w;9țE9z?EY[KKxoBpq,Y̍I]f"3l;~ٟu0U1FDv˜̹ț4RiȿLIq"Ts88V*Uns,9N"۾>7~'AGq<|D9goys]%'8hKK /S| +W᮲WЕl|\~?COqΜ= @4rn8wi]r<IJ!Ț\gM^ܼFa8nR!|s |ŠofOxa~bνysgV2LrnWrFpi.p S#!isp5yss?B\X$xb> 9C+'d@ 4(DRY/pV/R=L1/tnj'gi[Va.;(pސ kq$|Zk?r>3i)kh㍜!O2JQ+?1~N̷:B?/Zb8B +;\N*'jKMzBr1ݼN_UiژP3k2Ss[Z5A+wW6V]j6uVTY%˵TT5dIOP,DyC&ܡil9avi3~i1nfnggo&upp@7Wi(g:'ANoJsR MzKjb5!Μjκ7;s߰ ycY<YO@ hSxVT`M/- +bW%8]VM+Cp"UnHsM6G_w=3L[6fBڨ[jӯvp,A|bHaN,w݉J;Mҥ TLMrר 5ݦs/ŸWj횈Jx%Wqŷa..ȯ>5 |yW'hE.6Zx+Dm&{PUJ'B=fxD]yJ1jmg&3S陯{SUo?1ЪSRTTB~Mp_ o!|Y^kpiWÏ\JzP7Rua[-1u2gH_DJ X_JH][/#[e}b}YN~_2>l\4V FF⁢" +7*(&#ʼnlؤI:ƚ8Ij&UkcϚM'ix{}dܖgC^s-v·FbdTNlE壽 +`@@[-)Z(Kq&YiA yح`ceLT*q-QD`h +T9⥌-Yd'=zZHvPrr pGˤLUIɽ]...iy)l}&z 1YxE4 /Pt|U>P'\r=( D'=9O +ލҀ,8E,s-h.V.VZ+`[Zyo\Y.k C +mJ@H!*1GJakA C,GS.G߶q0¤. u yF=7.Bu[zex>A 39Y b_J)X σщk| fuSnM.q|v-=х]Ʒj%:P9Y@(x'w''dx [YtƁ&+G @aJr9OpQ>=%fd4ӇR$֠08ݝ/>Zrp-śl;˸t/k,?q/ I>^߿c%p] dbD1NgB8wu@A,,&}4AЇS3+J:L4c܎7׼vJ..C. <.a›m`A$OӫXR%OS~c? Ω| 9~Xxg\GGഋ7[>8΁.%Oѫ_\ +_sEouq1?ҷhoкv2З7Q +Njp@J^Q0QjHHP'zp#pcμ(&Z+%c% B8􅪰߀rkgq?>Qd(Џ5^؏%MX}6'LJkB<pY?јG.~_&/~Lݔeʶms={CGp>WE $_xBቂgj*K$9z ?WKr?(a!TԤC}|{n.Y*rl13_k\V5K8zItrT +?uw.emCVͰkb(ZGa0u(Wҝ݌-ZTa-Y]Kwћ]pϸ(r; ',31)d;/:EO;UFgtҥfWͻT p/#}5~a 4x| +Ix3T|)pd‘Gدr-Z]B6VQmxիE4sz q5jFV׵qNk3L'4xhQ 7`}L+J5BՒ~V<2m' +2ZFǖrbW36_Vxz_Z +,g4B[FaVU9Ie *JRt,y*kJ^lNezoRe,'2䜒\wxp d]J\ YAcZ|fa* SOlǪw +|7Ky~V2+ߨ4%J^IK3)ﬦ^wCӇ33Y5vgpxY*wJdդ).!.!n0U8GεէTw9+Y 3+/[#(E*%"ΐl7̶&s 3yka8bl]ah|ں8>q\ؑwaclK[bkch暯a7ItmPƓJSJdF+1jafxcBd㴨ӔlӤh)?d{TǟSn +^@ +(rM0@\" +LD! +P$^@ +/jkvNԪt ZkZ[[^٪k;/vt'{A y| 5ШT׫fN՘xXMJ|C'|U q^պ&x*`:.5rcO1ۍdq"fA7Μdts6\Y̓Rcs4Am^̏j95xR}IIZޫ"MIHj0'Wg{|JI(YbtK.bRR-5ْ-Gh˴ehY[Vh(v%:2"u]TGj٫E<",H1dAJ@0V$7[/C ITk$[tfkbILUo%Xxkk֩#-%2g3g%lM%4ͫZ[JxA@>Fefq'Snmd%z^`+1\%VMUlJVn[ adHs\$!Y7$Յdzmr+uk6E@!yffdSR~$X +ILADd(QvDسt|n/PLj/M\.}eפ?ȀIzu[͇ύL,9pH#b@pH3\œ2̩12ؙ)!<tOHsuJf G#+jU ߖlA9k PwJD$T`W t \䊕H_WqEsR*C!JMS,S%%6.''󮬅|v|.vm,0݁T + t=P7͢u3nMau9s@X N\ oSp|p}w %9SA1ȃ +wTK$z: !" OAGyx<s/~=">`}p=zC*KMRk\{G7 (4LAZgu7\_#r0(_>G}J\"R[.i՗rK-8^*ߡnni%gB]Ir}#?.{q?1J_lXJ G:pL_ +͒UROW43)d=ϋ/3d9]jfš_"ݻ}+xSjO0<,gCD8}gHTRY I#6i":c!Yw='ާ`Ijg(D^48*#m.VSdzW%':{4yְVOl/  W"? qpe] 9 9 ǒkI9vCIMHd͵r!G G)rJ+Ppl:Y:j`- cu:-G~{~OSkٓQc'אEtsºُn]7]gZx;h3 *gHGK5Y>ǔK1\eQ _ٓ5>pw7+dmD 5L5SMF>FRݱ17 FgxHLZkJHECZ@!NT'Fa kSGXj PK5RcayßR]9ՆeBRu5)gRp63Ƞ`y#a85K,u-3X1ejTklc[ۥƸAyUE];ʸ}N1,! l:GO|Z?Ekb'-\5'ȗTCRIՙ}5w<*VUnީ2!'2霊^#Ip[Es:1/G*"{6"9]%9BM)jLM7ժ4B;8$8Ka1 Lz AJzx5 qv. Ω{5H>2-La-')"gSxm6Z+ơ׌Zhkhpn&6`Eph)!p륙%mh}^zyًLczWݨWR>Ͻw. ϕ|,ZV?B O ܡw0 f:JRT1ƒ#x0j`e4RD 5rh>xk,#BbRፇ7 +2 ?!hbC7PdL7[ +} eS\g?&VqT؛#-mj啠/ps11x:.Z'-wPf +f[XV NmlgO3blc?>Lf/5$!ZlCM49 ;!f}:}4}^6u/sץӝW'Z@eyDx|Lo^D& ES!H2 g8xG) 8}e.}QO-b.&k7j{|h@|Oqp|9y9M~F|Cw=MBO)D{]ISel'ip,q.x0y$GLIt y~||1xu\F{f^ g1?P*r]D̙ěoc*y3\@+`PC*]7nGU<9lyѯ~ɏ U奐(6N87f<z^@U@m!xߧ? +*I1 bƑpQhEC}t{黸wذI,uԯx5t.o3].M_W@c +y88p^&q2N$N8BH 8+€hśPʠ nCv]ۍ+FW[L]Ѫ[ǴZω+M|{(S2|,Oya1e#~?~o5 Wwds9 |} +EOwib,pt\-74G@f:y5x?^ƏSx ?P0.spgx>ar@>b >s,",8E0aa!쇉e%ǰN +< $dP,+S+oo 7ѻzif'H~JJcM~+9c^c;8ʑ>C)^_|dETl "ξ?z5F23_2|!XcSI 818JQ:͚| Xl쇸ڋދ8N"'Ǖb.QKl4~??hݹ+e/WQޝag\77S z Osqv CG!e(j%zMDJ;ᄰ06h"-x[t̜d;i +bӶvLj02`% Nqp*pj` +kYC3y('dU_-st=rbW_J]DZ2vMo%i!,+\8p\&8-P+L:[hj91N`W}z}3RNO$r6oGO_!"|%*`K;`7kz٭VU*tr>:{/tE}ڠGj.Hm6Zǟ5s\tˁWDlNxUVY}6 +mVq:0RqZ~73\ k/kCvz\+h==qޏ0 і0%hy"27߮eKJ,WFu%-US>WoϼI]j0Oc>:E՚.&?P3^i?s j5)7] y9.ϩ{vKUTyGU?%GTs[(3x070XP_D(QErg8_%*wTQ'P08}"*C#"cr8XiqZ\pKւ!ch)9@!ԁ y[-ιp.*gYJˊRF&C`w*5lפ\_յOe'VRkaZXw%W)K:/؟.rPj- 7߫4*IVTP] T*帽[=tZ(ŽWTL4u%V/SgJrEuA3*B*fNԀjQ[*c\O=)[to,^RA%{uw\IMJ<1ͭ ua5jnXswt1d'1n;F DjMUv36$[Y[̲X)W>J5*PBK涌в47Ӥ7q;6Bp7$G$;keχP q)1cK+) in!cBAô1s3q+ҝJK |+gjF +vl%k! 2, +L Hj$9g &>EP:>:O|n.GvN>fS3`K?sYyw$'+3z`y2C~6yQ}eڿW>|nO|~w 9{'lW>@ٿҿة.E4y|X? q_Ӄg _>RoDJI,Sc; Y8Öu-~`hM%1=AO7D^7G;p?wkFC~E.N**iZ,N&[hv8fc{>mzm%n~ +0l'|wV:iQ08Į}دdZv*I؅; 6 ǩ {+~=证]e"nf>R -苙6̠&-F*Z D*W ;M ZQT%PjzT>Ƶ#EH\mCAAigQp W.qW +_%2w\3??1c +z%ta 'D_¿ξ{*H/Gq6OCh8M +ibCンT;,OaE L4ԨrSJMTlZ&OnVQ^MpG;{|#?hM:|$aQT PeDDUYjTdOns2/W_4SF1V+ĺ\ LxgcT1ѱ*4֡*˗;DqUʷL2U96eY*ӲL5[3%Ǿ kkJX֘ȿy) +`W}=52?*I4(1J$*ߚ)5W9VF(VLfaT%Vjۢ^Y+6b?Vb\ 8:ϋ9x 5XyMSvMYQʴVPe;Ju+"SŲ8V){vTzE)7eNi3b{\HzP @(Bߙ1B(3MiNRy9KduUsMsv(ڹHQ^E87),sFdVhYW訿k[m ¿3,j*@1(.-sBk-"+Y8ʑQl^]jT +s-p +Up.b8;u]AYCNhD,w;ɇjxZ@b`fڌXDF;MY`<y=!`]?ON ,o+ *w.DFrY$pL Oʹ uE1"dȏ-Vm豃ALP!tB ,׈kGRVl~s=ؠz ~#0* ˂nb3NN$ p$ȏbaZgr#'v;or2bikĿC +V]ک=`Bƕe`R%W +YVY\z\ %!g!5]ʄۄ{U[FR5)DK 8r)K9&2 ޕ(F\W(k~+|~Vs@80&4|I+&/oA^0S}}J|B>&I>ˆJ]w8N +?a6/$Tn \cS_?I~Lf{=~C(Yvٚs0Bʫu3*1pT]8 7OD!߈|/g>56zG7/ux =^)6՗)S$w3$W18Hp>^-N"ȷ#Ʌ2Rh@2qi҅O{xFaCH=p>&^0v+jڽD^ϳ2t2M~f:vs?t1'h${`GX0&Ȗi1~G}Q7;a9p]mfdLchcq]Wgn|ͧK` rNZ gp"KFeS9YTgt*!MK}\X\FR)G#%RI&Qd)M,q9dQKr$[['fvKv@jG%E;&)I +;.b 7·eqg;M9%_#f2I4t0 qQDb⟐%BV%\w%cطk`mT"Y\\ {9 2x.-1T&FK)^MI2[b9O1$y3(f 7_jz^4Iw27h8?m$1jPX^rgi $"IbZٮ 2r r#,{\*(bN١VVcީVcʨMdi戚ci}~?g{?> +)i14C2m1($dVG^fs\3#bX`"M|ޏ|YN/tdV*`2d`8mG1dTR2!Ҋ_:=rK#OIgXK,%Mp%yrL~='jaPEPcK"F:_9"roe&zWNj;V+k +|[VSl~a58Vшc%L^18*wVFOjD\+ik*Iޭsn5`VѓbMwfӠ:^E0Ѹ9ek"rD ^a5HF$PMivFݾi0 LzBI9],jPq`? 3u.s.{ͭw6i4|3ģ!7j6 KfG,:4VA݋`w^/ҧvw~Kk>9les r`֧v~ƹ-K͋s/KP#rzJLJ#|\Oֳɉb1{A+wnoNLۋEJ+E{4YITmA}Wb}~|~yx|X,W$#o{^.ڗKw~ Qj arhp,w[珇 +N/ḻ(}rwٹb` ؝N9]?\R{9O4eONr\< aϛ] } +=v]@'%u߫eK</o½p; +78??ǿF;m'mϯۙQIZhNH$3@>%OH]?m^e1˽]i6> ^%x-q/w<:x4=0pu=c1>9,~@q$K;{IߋIJ,-< +tC'T;ݱE -?6JOW_Ix.r^ΣR8^ 7]ֻYeJlw$vIS;IV99n"ZAYNJIlۆgq7eɃ^2k?=>/z"MṅN\GGqW +.Cr=.~ύnx +SoNZ\i;4rBP%dW]džFЌc.q& ƱS-لKT7 xτi==?X!/2Xȼ)O%S#f9W,'{5]2uQۘ"ͮ7v='z݃;S'ZTXHZ=0PDb<]CUX).4+d햲dʅ=_)? W^)/:3{4 8&x +*UZ2[ktEϵhJ)M:E0[g$)w"%km{uvHLׅrcZwK^:lffMYR/ˠZQUzEJ 'Z]pp5tXҫguKVdl勖5W!ɸqM֯Ebk +UdíL- ۍdhnz 5Yݽ?N1P7M\%܉ +}>ih(72:ͳ=߭^ҮncCa#C@Mp8W9 + +(<2 "J 1"W fYo}}qQ[ZK"SեDei_=/Ɨ-8(.F]#Kňp̳Q0`;v{78b+ۀ|N +Vz^&DfBQTO((c\y[UFIŜ]$+VȊSbD9QP +Wndg{>m?kqH>Z:&y#zDeQ1l2123#FL\∌a1c8ΨNXc筦CtCg$ˌs} ֶ&Bgrj cL]q׏qd}mflXN謁BToPDuY-(OV3"wwv:vhD:UC1 qT6I&j\ݪ5-stݦɞפ 7ꆍ::~[o {¬\$ n,I@qi\SF勥3۫7C 16w.8jhuROy~ 46k j6:p@{8'Bqgjaաu1I/izţw>ݖi.JӡPIv O { ٳe溙9ݯKG w!3[sŌ)U`NiK@3&~J@&!v-z?tBMt+9&؂}1ۡ2G, +lX:K8 L,Ps;u1c ?mIgLt]^+#r0'w/cdHLxCcM.Ial-1>;Z(? Rssr~%=V$1Y zFuV8|-L+߆Xٍ.Yו3#fo_%kӁg8M\ΠdlHglwLM񧼮(?|;qvu+eȥ\~Qƃ%  q&?/ԋb+.syQ s>6]~k<wk:mO*z\-7]{B}K^vy6w͕\V&=0 Rd\&Y M"{|LˋAN<rO[O%MK*[S‚0# qm l/ w}E~Д|?#8)Y6s|5ݑr:/YB%-ai=^|Xd=^R+/(ӂz&$?Źw%1,ڔ3/YƧĄ/YTH9)x^WMxO?}>⟒-~S`4O)?LSOHXDhiޛiJh ɖy}Ed-xm(skxN 7Mp|n8fZd4,M5ѿIB4b]9[߳xFP O +~9=?Sn: ; ހKAv56oLO꟤~z~&=qqX>/lJ 5UpjdwJ>rسdy} n5ຘw:Ql~Vyp \[< in5Jȫ[l&$&zH8@n&k4]Upu_][x k7<64MSoZӲV"k|N.rlN|^_LJkxTl oz[8}[Će!xt +j[iY^s0Hnyǐ˞؜ѝӒQ11Ω;71=4uxjEnZCIF6UY՟Qc2F"cH2l,\a4 + @:dF cU+^k&Wٳq x jxk:~où ONŹX6at@Uųf45 +5kU]fq2xM76Qx>t f:1?heec<.0~33!36d&eR& ) d) -C -AUAX .bEn (",E*EqH\:?.&<'3/>>7d1%N6K!PD"$PC b3$DFt9b I7M^[yg WY %Dr=O'ajPLAb +`SXMubzDLigJ)[<(:3oQdxcn?xXcw>`&mi%K謹"V*®`<0E໕+2}߅g`Ǜ1aFNzyK`'>\c ):{xlv*ʎISi6 iBH`e +D2߉m.M|Xt;$( 6o{1G f`" bLzF5|2 0rNML"V4uA 6A.`^,z Ӌ1 6*Dld:bhN79Drb;ΐm)@hO摬Txe8KHXwciN6tOM$ՈlkIt$o"]0Q㤌pҗ:hցS@p=|¹fVr㻑kXsC29$㔒! ^<{[#aP# Pugd1iUdjHESp \z._1Z#kNuK.'f\|c4G:O\E .h-Т5%N$MVte1܋Sq1iμd>ȣqE\;fl@f%HW+{#C5z +=M9&lnfbOd2@!yϑ[xK4s"y8V^al$D;YN^gCb`N4N#ҭG>MlgsK-n;k't׌NoB̀W=:Q̚E/-B=DF/Sg1uj_S쫙B 2 ŀmMeydMfb +⽈KH|n1J tNs=g*cEIa 2GD & me>:5oB5c6b=JVL?,-(߆X'؆^bG0xj19=B=V)R  />n4NfÉm(MۉGeKw/Hp%5(l7ԌV"_CQp| -*TJ*xWZNx)nkyrFj +@ *2"G @Kqj#K~9O̓:F? b pDF8c&$&׫ %aM{YZyɌv;detzsns{]?``g>b1c?/䗧L6}F+89[o3oE,}>GW\Oӊ*?۴e;w}<ŗG~8qgΞşy7nrNS}e?8[ih;I#pOS+og"@G@W%AV"S* B!JJq(h1ILu%\Y$yWi QT)G5JuJ(YICiq>WT)yAcJ)%9%DTd[9X9^n7xytz &tG@Ŋ!aE4ATAtAGmǣ tJJ߷C= /3g͞[s-Xd(U-k>k8zH*Є'Da +U: 3g{/^3/_roܸyo߹snu-(,^.m.x̽c{cnMEl.(eȂ[G,?etq;W?Xv&YʭEm9PCm9PÊrXrWdVoE7v/pṽCNS9uϟ)]=a99& 9l^E-p`щ/>PXy`ϐ];?~#eN.dŇ'rO6 5iՕneϢg>wo84pwTy_/89Ɵ}X<9Zk69]T7cf~w<ѡ#Vm]lV5J֏=RˡE{]&7etqˎ圝GŲΎ&PzBBB E: #M]e& +"@z a5$Rġ/ܻ=-yx;EhILx|fy0ݺd~YOnZ…/i; JқL eW+7tA +-9Nb٫뺘F:jgArCҙ + -jB[;P֤">.-g$w[?k'V=n"5ome9vI0C+w~PqIԅR` -FB~\֋^|~D'fUDb{-9!1,V~x?J'ƴ/v[2?m6}?dAC{qxwUK-K έ {@Jҩvsc7/0ueڬIQ#fÆA.<{^ΰLPTt@24tςA#mb,gyDj쮁3geo\=Oy$PԊ0P#ni:{k{YKo j" I[FJzLM(rU(d%WPPefKjS򣮻ٺf -i:*U|v.h +\< Y%?MwP0 T8A‚)؛1:Iݐvv?PdkEih Y:ꐍ6dfF,$RN$>= MQ‡%! ɐUUiL +[`m'p?zem6UF7uqNLW=APY옸}a8|*7rl'FM'QÖ>ܼR9ɦe]{D ^3߯"[ @C !S{(Tg|m]ᰁȯg,5K)i]WFP]_#קڗ]7v'b 4Vo79tFtIwg0ecI=vGͤ urc;!LĐ)srOTmyetXG7wԱ[=g8WM YPs-stK~k&ֻ!pntkrj+v,o@EiAeP ^Z)7 + +Mŏ`S",29wqr6jr6o;.2VˮnQTMm&nE(x#s~4!d,oKg;qpyv=B"R`HyzS:!R[@&.k u'O]yðitIרi ʹp;`Y)ixǕ}'X& M_]g^?1pBObHx%nh>n/v[yG6 +/aAQJjp0 迮剜{v F!ytC9YYk[/<(3xֶw繮׫V)EB# a +@,D K2BBD~?>]|V;kSwpxQ%pPR@͖ ..:^+OFeeLŒy v hH xA>ߊj+Urd{p ᜡ'(cphzX0t1cWS0uCo`M6,Jؿ-8=epTN({)M8c@%9b1fi8c> h/2*4ݐ( O@ +0&ÙA#-'QOGEL&JdVUR5׊\~+^Ҿ  b]<,]eE@.َ D7˜*+X=i|*ZY 7 1$# GwdL~'cz|搤@t}PzJ4VV,Hӝ!+lQkym+y@ZKJ +}P>~3d)BrS|}9.İe+BJ]>өTVLjM淪S_Vц،>Iφ?1T4l>1} % yemfZK c% 1l&bȒ +j +&F`š'*^ vۧ-va ]u>d~TW=,`% ?[2t }@<}cq3c{bH.3rG#ͭ1DtW@‵g3dKobRyt!sSzECWu469f4˻Ս/.&T\k#ֺ έ NBQ]E'qrlP|z_KJtukeKF KF۷WI(sU8pى}x +[qIݛ `~;Qi-q`I3MasאemgSHsX8B| ]}6#?p;Ѵ?k?/KFIx&,7LƑ&]^ڿJ'ZgG75$?((/XyXjX|dsۤ%%bP9RǍMUݫA3sAߴgCOܱxt'Yjx扖Q_prw (YP҈4Ԭ@ÙCrdktb-] 1'`?؅b>8b]%n-j{T6`Nf[)ۓ'%| (Y=?PxPw 3,֍%N\#XYTqܪvV=ӎ +ک#TE* @v @""@lB D7I`EP?Og^6>|?>872(OQ2TnpF~2 c3кfknWPp u,,/Jx`+d2UCQV"Hf!c[K [Μ7ŘR̒i,3Ns$7x]njA DĐC !?Lh y@?n-w)O'΄gBIzd0?\Y2_ӣa{P6 9J_Aelhfs +\<[%ĿMCMcƧGd _Wصc8A,HSX)l򪪑'dF !WK +,NƭcsnɈ.HHԍ&7DZ_ڻy5ܮ +AKAUڹaxd@쫺PŞa\<{} dz_\@R;Lo{W?ԛ.XftIii<.h2z +)}ܡ!|C-P6 ;^XOUW7^[@̈0?zDTq/6a\ĉ&}8RxbĢ>y-@A $@UZCͷLfX:M> pHsw{T KMHi,?p6ɠ "կxIX}4)YJWrDy!Oi;P;\sM!KïM͚uΠ ;2'~zK]t{[hWO`{د#FAywv{:iÐ}fߚ7/~;.|Ř^ߛEyTLلuV(`Ю,Ͼ*COKgo{wD[OR(M\"OPo3(n|=wV ~Mt@m{?y} +F=8׺zչ9Kk$Y5jy}0Z8?gD}@:ڱWfh_3f-_șE%$M w۰0.<H<$ L&`(n;kO|ǝk|9wdݪ^9_g;i`7J;fEv{i[8@qcF|#!t{4DM:u]plTo*;h}tcS |]L S^[?˲p&Lx&³Гx +>e^q>)]+?Ihjgq\z~+!KNQ {1s9sޱsAa1%V++ <ٮ _W_mȇSaؽ  78Z/ Vp" +L E067SsC@]k\ {ziA|d@r4/wH 6"!y9$L] *.`8 A<6O} +CQj4_H!!1  d\w$@~-,iA¹VL/_Ѥm@񠇜jW!?lt@q;d` GL[ħRsfe寱IըZ[#T5 #lĐ%$$@5<t`׮BfF-5&c>.6'ѪgJ9a\ЖG:ntͧjkĐR d=MjC1<[mB !}3k.5obzK|9n~2,}NP,m7tשgH @>Y+ss]aFfIDtr +{$(s0D(n hP5Y/@ + 0/rPez[uuP-eOS  ܇T(rp$S2Hdq_ w⪐6A{.օPil˕7Ur1nJ5=YҘu.PMWqxn?5'ܮj@A y!1i48 \+kY[ W$ߟ< -(vc[nvZZE +EQZ(J("+ח#R @;| ՛Zn2ks|37GـeIk"j%u[]eI `AcJg&U@F ۡn`\m4Y[ôk͘.^GPo.&tsR2ITezNVjQKU q@M&';, _lq3Mk `XvTZyʌ8|BK̩R؃)<!1е3;7X >pc|5Z!%e[15UP>ўUyS"(C+q`y2U|4@69}KZQ߷4ȸ3Oy-CԏJXAyMmI<ώVSj r,n`aT XZ_B+-\ۦS=?kg?_PV™aESNI\ܿ6)z{ Ǵ]Wfz*#"ykA!b(6Vϟ+Ϊ?9{pNςJ4r羱²fmy3)G:~©"p܅5z=?(h|}rXy1OՀ#`l\UlŹ󆧄+˦K5>m6Ҟ2@t.pp{|clJ牔 +r'eA޿~ǓC놟;~waκ> QNԪPhD+ȾEd @HH l@1Y EVqT#q<:[Ϳ^t.|^[.Y/XIyMFBbF#g"虸3҈tiL4lVP6[*7&Kn߾z/5 ]Q HL_!0/Q8蹓輰 sļ9 +R./oP >EݺWοg f2_ 9'p4: 4Χ Q3zR5uG .-\ e`C` ‘XpȓޘO`lD!wbp~@BbA +56eҾ۴v}=` ;(8~u|>'}0hOݭnjlb5JU(%VZlm[`Ɓ)k\xyx;x+`d"!W/zP( C>1,ײaz +l2N4 67|kn`t898;;Qpwc.G)@6r6B@; 0\@.0Ȋ9xH9I\ +Dـb`\[2NZ 㮱$Lranr~{tOyO5d"ݐ8Ft +6m%I\N`/%sU=yH^3O-?nފWcfF@vyAA R +.D)7׈_&%L\x&,5)UO 1d[}\ۯdB7{Bad%į䦒ge1eoSE*+%A]W?\;&~|,ZI>}0~3j+ۚĞ@ŧB1D|.55%|^X,U*{JyBT=&v?5L' +_mk^'(@ yeX[@pp;V'C/`0d 3f15!~XhV&̠?~;VבxZ k8v8 +σ p]D/ƽ$ G,td~4QvX1EJmOokp2yV!#bY6(u 2Zw5AocbW$g) +Wu$JLN I۩!h;F憔}C1n +]P~`y!,e}T̓Z,i*sOQr #W9B-2%ڞ>ӭ$tקh5i*9iQ@ + X| %6[ksvMSȘ_/Ɠ&sɒIvPp5]Zeo{vޥmHݗ*2t-,6A` nZ|^z̬2."=%O0QJ,h,m)W0~IE) "&(1Z{F7VA4꘴i%u>E<\!$jn0:빼>9KdJNS>OOb#Tۗ]-ߨ] +yq^M@(wT X}RH- mz˦k5 @ Ala2/AamQj'~ +?Si. s5UƺbF_;WP<|hu41'(Ab֛n7ϵ^%}{a76g'P+/*ȊJ,S WΉ|֥sVC!b(@ RPgZ6ոA'~Ə=ڳ|E*bz[A UK/JIe%i1u$Y]Z}!b/;uuq|hcWڶEiKw1!!1č13q'UDv"j>-]a^뛧-r|qJgCW֌޶6gc{׻\-wh9+.75>]o =RS;U{{R+hs,P@4 *ܨ:&>y`-yii-9̹Sp7x{@Y f8qhShCԍquyj,P<DC2UtIY2xm1kG^YG|K;ۙgor̖ffkᕀ['_Lo._hiQ2M%ڠ4%ޮ^ECk;G o4bϨ`T5=wHUuۧhraE >Mv,PL4)goqv}/ukk$h}_׎ɩ#ι1C.A/O=~Ʃ|[<]Rz]R[:xqG,PJ4)S{:~o7Y/07g+1[n'ظOio܎҆i" + +DpyșcN#e P6gVȏ] +_ڊ7zi uS&䊯f +R2'&m"&c)~\ +MD &kMFuDp0 ,> <00NGqD(z$3i{_I+ڋAuxz7OS^5Ȯ9|3~NGu'yX˟ RXdm5d@J,☭dc>;mV`$ETr^VuoPQMaڮ?jڂn4nsV5pS24$-[ѐQl,6OWڒ'*D4ѣP`ƿ x?8" +]r*կR(\r\Z e݆11[.3 cvc%գӯ~:ۣI?&Rq<;&#A-(ds'Y):@YdUQPdf VaXYdk Ǽn4S,v0nHfQ)U&@Z7?}'Nq#/E{9m3=sO~6bTA 6Q^-T ԡL:CQ1Vv] \M)k(6чZS}h=dg'vM V1M\.kWp3:P]8׶Ylt0t/vC+ƫfshtP&}=oK{/%:a&d^otu0u ?%PoTUCDX=Z9o~˭)LTHlϡYշŪ[MRD5/uFKzp2~'B.F,oMjB]LknLJVN3mg it4QH:JݰJ!Z>?qNICo6)h dh>+Q(U5Ѝavh.vھ:7]gQW^?|q3hrҘ9Vئ3ә%,̯Nw-df>T]5@Ti{k!ph|vpɜP~M\еyX<ۦ!dFѭ?͙?|td}/z'D-[ "aB A b> Xl=(8NRWt25(h#OD[G-,;Zv:;Y +H IF=O8k +[n7Z_uxߥD%I:PG6d Mke0ch:G\< (7pswO'p@pnx-uG +% 5K`N.5HcKyaF!8lGl<p?Aa`N!jAJ$N2hGކp0w=_ 8vtBAluB餐@@h! 0QPbAAāuAŻYϙ`>s=%w^|/`#l (0;B}P8<( gs zvJ ~^|HDNap="" ΦQHzs!䧨QX[P8zo[[c}!f7AܾM@8 0胀H~$D RhM X@9@ƍD { ̙!~ <~2 zA¶5Ym` " +h + r (dMuT=q +DB!~B&P1kP ?b,|hl [C@ ޳X @ <Ѣ)t&3ZED&u?D'c^1z jjh.(܀x[Vwnİ@LJNhOy{Ϛֲcww`Zx.0ћ$O j{9lG0] +?ǥ ڼRvCʁ :2ŜSpw g-G7 ldۙ֏vG=;Չ蕴^ +oѿsak -w"$?'NOp m$ %S8ُ֘=/4dy٭觲&Loj +Ht |p]A҃!3cֱ=ӑı>@s<)NW>ƛʮߔb*oa*q/~XcR5̄e!{H.e"dD]9Qd0Tzo";;>)aᾪ(֝m6ҼfC<(ظfe6E# +bIRV!.Q\r7 g*N2Pn5hmbb5iKaa$wlH +9PuR}x>U+O<1 #;51%E g~M㞶%Fͫ8u*c QoP[*yNu.~= p^.pw6h7`G垕{-~TI7 +ɼz=4 JJEIU$@XfR +kMfS&MAƽqkk@3|]@~{Xv{͑-ظbU 5)X3rV&*WHf'+,RKF"7X$I7,bAQ,(ok큤Ӏ7 Rܜ!s&q2δu}!~/vM&Stl!S]BM-W34 +F)(ITy8&9X#LX7&7xVOԮ_f [US&h-mYo-d[C\GZӾT6fzu:wx6wloz(JdY 2I5Qh +|yw>ԺNH))as090FN贍Jmܕ.b}umu#][)܊"S!u?u}Ug+q\幘5ggQ>8sTS 9TCT4Zi +lϺeyIDžp{II0@tKmUqEJ.R\vF~r)ٕʤWOJ.ԗJ{tD8;M.2tBMimK_:Ψyvѕ-lf}A掻:OU:D\帨fw1a]Q6 h:(\ TCp|T'oI}^mk]eB?gr +bsZ76qed4YyOv6-O~жs}.5ME8eL:.M#OnO%Hm2.Fk->{} fa2׿fe;s"-u\AtƂ|mC;#O~{%Sxj +Mљ\{,.Zo7%Stn03_Hb d 1Tbc[giv^)B.F4ks*ZO/S7LCaKVxj+9Fs#m\i4f _rljg%R'gςsDZrW(,e"B^ߙ`1YNDԟLDߡ< + N8w9̙`G!xT@ma;QtD)N {{8{"y,D\`6 Sxo(} {7䎱{9:Ac< +9Q %9[#ƋE,&%hp8+)WWS&- A'oL7,Foxc\ + o3C5 Y*eP{:po%D /hJ<)\LoIƅw%c&裴O/{'w?K_FuzP- !b4HZINH`z!N@=qlHl鄰P>.<Ut"fTtN9*_W ~?$~~+~%S ͢.H42D, 2 )~HcA2/J2EUU9"Ѫh$% 3$}ҚO҇ɽ)ݒυ=O%a.H҅H6UcҰ96Y !U_IwC8wҋJofvKguI6:6Ie6H{䃚: {CCd>R`v/A9!ّ? oF K>OnKVh:uȎm);BZ.m;5u}y:Ż*uA3Y`xyȰ fͷ`@(wk;=%#!+]ӪسY)TXyNۨ}[mmքcOAT8+ukKZq!dȖ!! !d@!BdeQQdEAXp+j;'?ol9JO йY8@z!?ƺcJiJvW쫨)v{#*mڜ6Gˇ0@ՐK>Nn}-?/=1S{4RfbF yr^זkPuOɺ, ӿXGkHq;l ;OB7jOl~U:' qEe'%ܦcȘŸxFGN!"VpA#E^4H01fR.cfKt +`*n[T{x +3 G&jYh M Е|W,e%8aM-NQ#_osbnD5'!}BcagV1ˇC*Hu]?f}sǴnZY߀8>D(Mm(r uJBM2 R:{PE=f/PV02a6/oW[ql͓n<_!yF&LBͭSErKF'$eCYFVR0$+"JɄrpE0f. +,`l3\|'O?t%̻W&A.kn`zsv2&Kf[Y`,azSh _P4~ytDW}`u[dXKDK#3b>VgV6+S+J$SՔmL@G)e+f&0Rי@WFm2|ߺf[ߘ7θjl~N(V%b8M)TY:$ɪsH>Iħ7&V yBp}79/fv{pwࠛC-=ǚC%?E^hK"[ܦ nZFPOɄ$V]#׊c$1©J] X@`<1-F7^>e7}a1̮qx:8#ІǴEQTaT[ :*szȉPLVFoP~o  v6C |V $A1L@&}}VON}A! L A')awe!Cزsť#U%kEqr.V- T>3g)_.9]鿞:VL@Sh'Y3伀 ?w9HﳅlE.@wE U=00z&7zwL]x:ߺ}S^Esq^ +HZ M XK{NyBxKm*̛D] '2upOGFw}ɧ͸v}tu*x`7Cȥ#'b}–N.y} )9gLgrHϟ0?gB<|g"Uܹ@.M聦Ơ3NTe ܘ ݞ퍅 < }N`0:D~`1q5Pu{7V4eqQ)t vYp?uqqnl*D6,@B-%ASVі:jV굮R7PDE@Ox{+ļd1jT h1 ^ld1Ȏ CI, +qQZ!OdvG'A9EG/ľoh4i%&/)jY>.|{MIe^  @DD#aAء! @Z?rCŒ +VRƤ;O{ AU`"{J̭ftG&]ip;^>!boG"9F'xRܠqEܯ9~ ^!nH+l(1916Όc8a7{>fŝ _OOtG+z:# "?p|f*g!ޛ7 O0#)3/ -;2*VLEB;H0NDEwI"4X lD| +Yi`")I )HLx9oiE!. +MQ`s?y.Bҟ;TIo`Q'c1O_ِB6$x9n;R"|7p0Q F 54$n!^R' IcL'ɽcQX)1֖9L9A6BZR8E#IVeX`7g7IG"]O\.5 +AB6;Bj3 tDB8Ŝj)/?G:$|iʢDzu%KHwihI;-!\/f2NggT|0YS!i,]Q9nץ%^N=_*MYKI#+V*3v(af_|}Ojv?o/m--7yfP̰f;OA9,[Clz7SmK𼿙W~qmLM*j}jc^uu{vi^]٭l*}jhUjQLlș>Z)q2Cy`H;]oqlw5f~U).;/ޣ[bܩ]QV^n[yk]?4nԞll]{ 双 e5/L!:;3rMߌn][ŋ{hNwq.nNf~ntoMiՎ +%Vy}ESKSFݾݱzݥڊͫ?3jZ^n +P`cOw}EE}`a3t0T,(Ezuzg&J:  HD"\$e=;{s'%BX E]n~#Gw{](:Nҧ=G9aĮ³E,veyN)X9ژy1Ґ*Ҝ煼`,!n> G^^`]U]q!}чC4g/d{psDH/T|[UB40]]Sܜ]rroprsӲWҳ6*XJx{D0QB $}}V{=d"ttEׁ.n g+s3 ηɯhK% %5^k|JCBޯU Oyb"".X#UG1ҋ +I q# !psoOkg䩺2bڔʴؒ҆貾;-Q%+ Qх+x8"Ca9;RӉ`J ;Q7>}Q蔢9I%gkcj3k[j[zC9M!冐պP;I/ *bXMݳ6iaXQ"4Vqwϫf(8d "17&lw\QlGrUXk'> j  ]жQ4~L$2c8i;x<(/ȑt~?6ͤ]f KOs>| 4?ҿ7PW7pwpbߞ/syd!,!#Gwau\㇅y2\#cw.NaŢ''3c +-K-:9_=^[=ѝ5y%RW^#oX^CiX&HK~WȰpoت*ԽjxiJ>ø #s靴50S\J\Vu|W:sJR«$3 fvj6:,^#y"6BϿVo?ڰ;E>Zc'=LJt[Mp]cǻwƹ:뼱tՏQ#x y `f`b [)p{wDzޚQRb^0^1<_ +qy:. +MI wVk/Wuܾ 0;0Hdz&[R|UJ[Y[TOџL >Ӽ>nNܙ-?OOdۿrl>|be֙H\;st4) o we2w%w5dw)^Fft6td#m-0sfȶ26`i3xϜWn\  @ )%= (? TwAmm{ףZ"L fao,OEu8F @s@NEa8P0edPAUT-QSZhHCs +)HB&Q1RK 4UJXˍWn?hZ({ + c_$H{dLQ+꠲5P[EUTTETAYJ2(G4QRy_L ?@ 2x":![#>3:hbRT8(%BFQEN5"U0DsYI݇2!->>hHxt=ήW7{~%0Pt%2BKiUEEFhgCAk&'*tiTq6s_JӖlS2 [\PPAQ@DdTD\%%qi۷iV+L˴,g^| |r vUx_Q'os[ =|1c,<i$6s m|̖Y?f+/ei~yC`7t1t1|#)b1G c9Sd%bY۹Bћ cDBPr23 +]@C~ǜDc:c!!#!ϡCq0 p_0."1i*Dm,B}&1 LZxHNX![hy/a?cPطA^8'5;`.9Cy@۸⽗ 41?XC:0~5J3H-$9Ym6̆U+D}I^{8)3iHE Y +W2Yay=M~ӡWT'KJ\4+ sMh;kulHsų~䯴4zWtâе&츤IgP~%EB^JUVx +e9r?r/}do[J2b 4{+9Z@漙[4ch̏,<8-Ŭv^GȢG(XLVf rTuR]"<.PzaOZO[1Y'd;+`Za&dLӾO+_3UFGU;Y^y>&踎Fl԰G٩uerRf6 56P0eicSxڜ9귰!tÑH}4~o"++ JN*L]\]mkۊh9WgtMRUo3M8kK̚VS[W6{R?A 틧tauw~s3z]mcX uKRMٌ”uQlAZxoͧQ^R_k(n)]QMi@PGY)`@HH_ )@G 6P׎ǎut:2XW,mԱ (*E1??s_7;`qgj\ӑl+;XMǏ(:;@ZLR4ۆiT%h?-)\bq- U-_wn~{<Q;bx=Wӕt҄%ʆ=4j [<`dNé)u RdZay|7?nk¥j]2vph% hE- 2A3^<>.Vxo,Ɣzbϵɍ%c,w&ûFû$;z}SSE .d`;8/m%6†NnsZ{zNi :MS!(h9ڔQXK^md? y /4_5M*sRX5(ԨsR#XM;&ѷf~tFC qHa&Dꡖ%@f%U{L,r$hQ2,Fᇈ(I8.qj;8vh+D+>"BCG֥wCՐbGC#><b1D(3BP5!AXʉ#,g~dX҇DcG.6tڄ:S÷9BzG",H`c ` + +d.+OC>S{ut T aX_v1 ~En#`}u{,mLfP4@H +AFm ЌFt9Ƞ]uQIB/H<%V3鉤=Ajp7#\͠  6GrdL>0x9t +FB7b_-0lga<,w_/ۓoLd-zs씽@hAd ٷ `XX.X.lB&J`I#9W 8'av&/bZټ!LfTZZ'TߔS*ߦQ֧6^:ҠxiC f` {{F&'o!͡u2kNZR>,>ާnvpoӪFQVۮq׺f >J.q3t6!^>pz"?hC$j[}LjM66ڿI/I~wU_en3)_md~ߵ<_Ze~LL@lp7suV0 ӯ=0D䃡?.ӯ&< ?aŽm]FuVZ d# Y%$dO Ab Ⱦ"lAٱ`E+vڪԑSȇ}\k` ؇aL I8 /[GQ6}Bn&f w/v74MTx8xZ0|e@wIY r/ɛpG0[旉ỞILD= *cfb {V4tXIE#MZHK+ۤ1,y*v +b02w@oF`ދ MP=bϪW̉Ol|8z};NLjhשf85>W¸W3C>kCF' ΆXw@l2H\r/?bF;'cR?Jf"PCtef6/rX.n'涳rO yڜ@Y }޵}0leԴţ#3*jȨLSxbv7-s-B.rȅzĕІ4.#MH=o/$!khN>$V,t{j5Y_Xu<|`H $S싈Jҧ4%e DuZYKt-r"j'Q%R%xP.x*M~OwF{G]KjVzCz79nyP +a3tƉY2!UԥEgFI GJ+iAV.+MAV2#+Χ +׼lw@rt 4ꃽeB +>|XvWAcMؽ]f Qg*D|T!.OKDfe(OU(*SթEI3Ie"U; ii䣾^MA`h| rlVy0p,BV;k|‹+7& +t6\jrsz̞aWfd z%V>n*뵊g*4MRH @5=%ƾ<- SH%U׷EtQB̈S\J5 +DiHSu*1Me5T%&I$U$iRZR|!q/F ~s\Wvu0Cgv]mo('p3B9|[";'[b4*4tNkNfY]%Yw f3fDDh9;`xyA/<(/0Y F> {u;URWMvE<Y2ED1;wY1,l@|sMaoz^esiI0/U;0YL-a41N5gmm*aM8\Ű|`zB8~~pۺ|׶ӻbHPmˉM I_[ҰNEq0DdŒ"[z\QZܬk(%SiԒ9j=P`:l-`uϫ Z:z?GEm f ]#Fv!l@B))*rMErV*Hf/=3%!:D$+bqf4B3C tvlT/=&;t3j=%H㴰f~2I"mҋbWE +Քw#$koz%vTKjv@+p\] JGvڇȾrdc`.@THJ_LCӉ |(!SuppeȞ>fd4={Ӏfn&FE;QPxs ț=SxdZ>X7Q|D"E59b41Z>@Ň_W܎u;/l0-^㋁q} g:34ݑdQrX8B {.<z\rwzFI.η;9t璃7~;\o {e`v2#C]6E/T2_h '<7 nF󙓩s/K!/_f[ٽ{anz&6o[md棡X q 6a`Xra: 7߲3eM*UE8싦W}E&N_ul:[}2b`#^G*]&fiZa{jtYTgQE$Ɩ@ 5,!aֵUgm][\V pj+:֪U\F93Wz;w<^HX9o9uí4: !n2!^N(U\L 2pC8Z$rK|+F ]=kXkHm67፲McY+ݿ_u=ҧ#'Q?Q4<>WX.3A@x;bcdL ig-\Z#^tЎH U.7"O9ݝgVjyV‚ g̳Ok2Weךl6e:ljm35^6Ͻ/Eڞ‘Hh,FbČgGPb?t+gO@hշX6b[FЯKux*7R8t`^vsRsS~yAyo=s *<=VmCmeHReH 񴩘fc +;+q[>].[u2 sq‚tfEIMUsK,YVPp{ɗ[K */=Tu鹢M]E˞lx=mC%L*FI I?ZO I8K\,^԰,ֺYЩ[fk$.75LrnQ}үY U(_[TEE[+ueuUuG͟U!sULc!QmcES,FHo-[$]$:?UO9"s&Ҭ=vF5aaKAV"" +*K HIHHB+!A,JYǺ8uiQ3:=Eq;si{{;D|QjO-窹ռz~^ {,w>[:[Ϥ)8  SX0[i/ :Cvh4\o= +_տ41<%@~fBXZ+(9UJF+ Ke9SܲR;N t!y( "Vۧ Mpm/~0>UGge¶]YuTD# +˅R^IY"vJ +$R$_K$EeڔZ^ +|ֆ;M:pu 5m.ڭۢ5Tg% xLR(䪥Pr\*\%Ҝs9o2=G9&-[\h_h@kXܸ\S¬ܝ))EbL*͖˹ZyT#ϐI,L}[^B!{QQ05L"]u + +l!+:Dl5rMsSW:1PYQJgLa@U'M-))J.VqJZI%=sQiR3IRBNk5w>:( +2  `0.s8ݽZkp}mLϽ-~s"Rsk3Ӹق*q>[Q$KP(ef) j(/Ny[|*bUMY{fXd3@G |ub7#8B:ig\{-ic&wq "Q\\*7Y-drbԣ|z~KeּM:] `Wprnz-'X rPl~ +NHILjJӈL<;FE5sz2m2GӢڞ04FlF($5׾@OtkZ42Q ەqgncq$1z=Yrdĉf%} +х̈N;#3A2|,; pMLa؅aPqчVx!`|sޜ11a̰Ƙ.F٨3ƒOυ?c|p$w]h%;X mPܲ[kt ozo*`Z{HOUf@vpȕ̐yu`H#g<VafM ! C?BWn!_% sӒswwVGEn>KGwtӶڰu|m[̹|=<0| ` ɀ#WS@P'i'N1eNr i*ൾ c6 tdէO[]7=[ʍlv|1.6 u;GH_Ew^B+KWSN&aSiSLmp4it_^3=fN3nodQ9,[7{b麹{oms6F:p4y77?2~H֢|oR?䃭 +X%ϓܿK@Y@mhx mDڙS\E[tY m)l,i7b3s15C #눿s?@A Au +8#ښ-Cs[t1Zss03F3 2eLE'r#@!`N ^PK&_ _A˃N`Fv[롣6~FH@Z1f@40LX 4-0l w{! T)(( (9D J5 b~tۀikpnVxm A `~aNO1| Ko|-:b.d` +PH b7c0 l#~xXz.Wqzf'IqI17u`93Kx  >pYD t 9YJDP7~, ?3?u0QP#5zzwQ֛됟YB>y۪acC8^(>`Z˽"%7e ( ďG#BƠ(0yUY^o^^/Dۼvx= [hq!v)ð^ۜ{/897#=oD51uUu [_bp Pd҇\@{-adzDW<}Q{?{7{GĽ%nwroHy%=>IjT?rQ csN^geLcgeN⅀Z4 G5,4ջFb5n ʻ%ܐn ,x!ବW#MIW ŴXxX-A="l}KcȲ7&L_jhk˱i +]9:a\xFQ#:hm':-=z$F衸ↄ] AO>63 e1hAXE47E)}h^U'9%TBfqe~D4R|(N| IܕGܙp@/#do#ɞ?{PX)DMa nlzRg%f׋Br%:)JSJN~t"kGdm菲>Y+zT#zQނޕ7MkE5fw@3Val EP)fnpkӊEWJ #'އ;3T{ՙmyVUUEl6ICߨ:ߠꉯWT֩^+RGu:5D֪!LHLB2 &Oe󐗛 hȵ*zvWa\4U6kuYꤺm][][ԧ}hZ>Lf H:yT!5TJ l50 e%~My ٙ[3֡U5ZUEIӑQs,Ls9uqZiZTiaui& L>^ҿmr}; i|6ȖPJge۞M +nk$ctIم YeRmuzQSݣ)h/didgL+O.ȞQdB( 1z;Xި5@n WsN4Q#qiQԖUi7f&e*Y9֬,݁L,NVF@6oL͛Jf~$b0eX2W=\ہe&rը{'Ϭ1Į^l&WT$oPJ֧'g r5ԂfSR?3*3B(Ә> C3tP&" "Ĩd(XPcAJtCqml&q5&h@ s|͇ߙ/9yWnrˣ/WmHYi2i&c6|{(R{%@!k<:Բ,ʥ$ޫpoR`;U2 r֧mX+')o*nCB{2 +3 U)3}9}.IɪkvMM.^EYq;3 +k)6h`ulhj\䊸T3tC.߾Ϡ2FCh8f +5\jV)vvϫ\@RȺԘOW'%d]pMtIꨒڴȒUR"J#KFUQ%ˣ1n&^>UzZ]'jNI)Jvq?iM5VYJLM(L,O +UW&U/  ;3iw3Hv28E 6-zEM­OgEA$>5<.#&nK첺1u +\ZRR?R;tpH .SP_P<|6m7v'Jm炬Ά:'F*c}Û6 iܴ#xIsYВA3c>q )ԽPu`e]tٍySvD$ +u H +H[Йпsg_Qf]v ttvnYܣ=AR=򷐿:hU'>{iA-)eaM7vbRmhtcߍXޕ.>Y.޽΋qXxͫ +ϛ垽/o +umh:iggeRȸ +낪_o y0O`AWgł֘+)L=+0[܁[4tiH)Wi_wRDY =yo<=K'k{ȻOT ?`iMtNXZ軽&E)T]b:U`6g.䚨+'9FŖ] ;_EOȟwO@[:spB 86hɵ@]x2Tr p1W 6 都 Y;pɿo'؇K`М儠@-=kc!e"elәJ3#zV]}:8MWMOɿ9?x$h* tSC=1j PA&<JhL^+‘?#ȥ"hnJ(Z2N̗ ;@h2SGF, 6rDY+ C(xJ`@ibOftM,Ehb-FC{ PgH +E"/" +J(Ga5E(:Fq+ %L\bA/wqI)LHQwOoj&D SZV&s ȇƼ U4!@b>PvFh|M4ici7q65eo[7o/Ռ1sd hd!DK#!ʄ(7.R2DCy$Fmt=|@mUɟ:{giNڜ徵Пp^)9!5B~@l܄tљ~]) WtV!ٴ"K:eg־P2P"~p@cppԹE¹]0r?z̵민?qS"h-B.*\2ᣗBʹk<f22yxmȜj*MKGTdth*eH1$^  mIhA0 u;:ZΎ:rQ猌w_ϽsC;mݫ痡/FszO;f='pt'j4{=$Y I`j鏨wxpI^~x<?W=wW^Ǒ"]M/dT˨ >h>99 yx[)T15]+W$*z_ŠX$V|/H}.PAz +R.ȁl ߹ϔpXX%n@YsVjaQlUVN甤kEi)rN Kk iGE٪DYi?Md|bk3 })0u!! UEuL|&̮"acPX IT.+39's([di_RKREIj/ɪiY`-wԅ|`7&s5؃=^f !=uǶj{S%ӷ,1$PR$M^zrzV)5 +Ƥh{"B=#hd7q|I"8A}4{ Bn gPMȹLPFdѴ $ZOPE +%2Vz +dIDRted%ߥʓewI`CR=\DQ-;[-67h5¾9n]uͳX\kĨwKreРRO_/:%ÈmKg߅? } N!~tw9.? S'ny~⚊} %-L_]3/419J "jl~ukXªՇSY.z0~`0<*B]D\jDǐ >mVl[y ACrhsxI +rYLS.a2pz6IkaPhY*4O6-M0n)/]+E]D<׊2B!w قaP9h +_?HtlH;qC{#ݒXFW֕Kv( ]$Jwg<{$=M$uߍ&uGwEu^0g20 ˰;" +56[UMk5FSX[kVm[DpK\P AEQœcy?޹{}snM݈ܦwBh{vlMgϽ,+%%!bԳ%9ؓ5p\` ֱQiRR?|\1*`wDRĂ&k.kB^hN/|B h;57S䧳 +TJtZMfy>,;lj-I3JǗ./[9:lèزز*[Y9@9z9FRT >_T,jw0`[ |.T>6ZVTnL񊮙]gTgڿ"j#s kԇ[B{NPNR^U(:KgI繐ݠ7NzI$mTG5$؇7d:X':64>i6y Լ]czKQM>Ed p-ɿ0r'fȽzI4v-/qHKjU)+PVM|zwK;0n>2#C_HH/<0,9cz*X|KȿȘzRgA2(dwԥwD[2Ë"<@,`5=QNFuPfy B.qQEE*vAOF~C52L38Q$B~$*>g5)pN+G̩'?ϾFoD?;!z 8Hr"9:ӇfcD.p.p)p5⟯ɿ$j?OL)}!\ ,_ "G9C^H^7D"YD.f8_>jxԠ[" rjK"EaaKV0Dۉ|e|&N@"xAKPF{ ԨAIz5 +ǫ?U92,"S bV"n0O='o0=A@wj=W+]9Xd-,m,*3(B{ +NO([)A_T1vP(B 5~/a򞰃ZuF7'C@âDj ++rt\!rtPdi5yKOR&zzDԣ?#|,|otn(l#ZQ2t%QBVZ%hc;Ih־4L Q|nXRԸFA#ޅ.L!Q"dnPr͌t2WY@X9*0[`-:e:<3Ovc}cUg-ʗ],mߴnXdW-A݊AE}*爳#@_-2Z)ƨ$$X}aAۂr2O{;t{ӺnRs5lJ͏a[4MyKňjBy\-L#m]$5QV"5e0mB1(D 4w/$iw=˱1ݥ% Nl:}tVS'Jk㪜kN9W]q9R\NPWo8)sX`8/Q)њ4]}Dr;8DBCmR ǒW$8٣*ew))eƃ)Ǎe)S[%=Ec}o0u0B$bV2R6.-ui߱o^NF ֐`4S{on+{ڎ֛Kaq{TiZnPǝJ/dWqӫ et3DdVEb(lm{F#Q֐|}+x _wTlkU6#kN+Nl,$k4Ұj9B*$(O"٤e _9(( r lœduܜs8$R6?f`|>j=}<F `s;"nwqD@1hSB* +ҢK5 +VZ](UlQR2UE +՘(]HF +5VI5lVa zof- ~j)kLg7Uh⸟)O*QOFi܂,^V^)sOIdFI'E"̉ŚqJ_y$摜s{=ǾQo ۮ>ĩv=];"%4MY/!ZmJJQDTT'jS8Y;+h$(&9bmͯ1 s;bp kuö--Aꚢ>240z(qT*]^/)N +^;+~X&%7\m[%x&f p~=P)vQg81c>`'ŧQ^#I8xI(̡ Yc.uPCC>C7FW"/ ǘFAØE.Z>?e!sF>( +uN;ÚzDO<#'Ԟ%hĹfЉ%뫟_}J'ݨc9ٛЃ iYmT#vpȖo qfX>g dZN Zt \`y~uw)I׆F񫘃I ,rɋXvۈeoAˑˬM~˂M2$wϊJ G]wz#+oy.פ}r5 }Qh +s7vjPHX?>u^[zۈU5T#a >GәEfIb3>H|23!hꆴ<iS}'/ui =viKYW:!'xEMe-DA8,+ GQJ8 h"֓xGj U+;nuVnUj[ʻt_&3}}߼$T^ׇ7 W;r(_he+R_祲T-jf j猚KmIK'YJymEBMxe""+b$C^^Q^^=Z~(zy^!2+e &DЇ+1o!/Pr̽3[>vgQoլP,v-[[UʴY̕+2U,FP422?e*NRe), cO}+Y +̽U#rU^F6ڭ]QL++N).L']Ζ)bإde{lr_lØ~b=ɒ"0)k}K1?W6f=xnGmkgp6՚5Rx%~ʒAV S +c䭎[66!s=Ҹ^I\g# Y!p&Z +5ϮZlшyjjB ZkauGf<_^XZ)SZiU-SwGJ՗";Bz(L X!?('/#30s`ųyov+Xn +jr]35s™usjRa\LjjEjw;4 Npf(0r$ r}5OkG:Z\aD5Ó+mk^lY"qMki K4. 4G7jZ"#/5ܙ+\?' ױ9y%jpa=Q[n#څ9y'Q5(iK]SplYҶFML =aKgLG,q{?-/M'j#lokgw my;u[΁~si7ֽDg=1^'!1>up:x)??3̟9 +&I4Èk2/ܧOd1/vw^-<=f tM8d:u3)MzN⭹fa۱?z\vh'Dip'\$# +3UG^n"D^׉o9=0%LJ6p"?=lsǑ"$TdZ\ ǿ=bpCLD͛w.[w"ܒw&'$}eLa+̆92a8_}@_ wמ'*%ʺL%p d'DVO.D3Y bsr6 N'|J$JH +Dsy \m3i?w ebp w`՚qy[Ji&*a Zx!Q(f~Q^QِllPT)naw2c}qDW-zDW0جSMe`Rë/Gh2MZ8 ]4ArGhp84tOHNI$ժ_kURb'4XHڬ%[l6Kl:%l6|ɶ=;mZ$[5K%X8|JȽL;c ѱX6uo.ش_f SuK:&6&VfSyVtU'}X+}o_+v5Rl)ux3̙uȞi1a}"QJ!%zh&Lz!]HHc[D2E,+tilջ\d=n5A*٘{{G[sivE>>Oe sB? 3F HD{]շp齉BFgZpfE4kCtk]T{<ףZ^Y)*7yɻ%ESB NwG~v?O1B `3o?y rqȠyq&ehoN 4lO3TRHV2ֽ"&ѫTNQS(-T4(:y0/KqKW<+p2b-[039،b}d4X 8mv4g6O J9݋q^Yl]OQ')UaNbf^ :L ; $σP_0Po=YZk 2,s(J&zg&%3V& +UU N-P1ÂhEAW|n +E9&`rrUBv!Wm.%5tjK טDdd* Ԁؔ\"4(*a<3(2eG,0OU$Gfe eY%AaYuAҬЬAHX$\@p]I ?I$ |c39p`gСt; E+^eU<<>4M.Q'- ), . \[mkF-0e7q0x/סE/R!ጐVu#Ybp2XΙzs.̙ uj8J5 )j(;X{.v:WѹN`G=YFDE+X*V&uUtHC\ark*+]mU%W2T9" N^K*ʀ^@ { vtjUhUn cpY]uPW ϡ:'|=֝MEz'? X**"}p6P %yEX /zz6$'OȋssY;00{GH8DTJ P( xoK:Qcn +:л 63N/d}[d.r4}?{!{ ^(BeC,sHeh+L^`:s\L;["ZKppUGn3:f~k{ F'܍:a +CVhjzs|hħCLeMtz2Xpo5i?Jj[zj+gϱەnB:cxhs>N4Wa׼i~zd+7U3'87sq͸Wq=Y?x@g!.x9qe9*[VL8!N4ILBQAr!="*YܕoMʧBTE)7}$]5}$]j75oε_K3+VK:NlNJRh),T|_. ~<,`rЈ( +)Ijgf/~g?E]`|%0^QOqpt1ЉJWl/eKG+ vAKjea9gQYw[i +"vɳmn3Dg?xڍ>+( n{9HVvEiʢGjKciKb&k:c u{VevmZsb.}m6kaaU6 f d )$ 8 ՑD]IBPcqh S 澫\1]AMg@P9p߉  >ÝpnFn +(*QkN[iNc;;}g~{y +{~=nʙYqXpXsXgNxɵ`LYY3%R{DAZQsp3K!i͇j.YKZSǴFѿDd kS| zO#a C1N#TL"';[ܙ+NOŭ-SMbݩLXx=L% ?:*UhUb2 6/ǹ%j? _R )OXlsnZлS*lˣ6%aDMh%*'VJE?."~SD|YD|VDI3?c- ﺍ\E>p+F+X=\Ne(QNPUaJiEt>T[,c(% d)@r3N.I\C122).a&>a-Cω~{s⹈Xc*譎8s\SJi,U +Ix鹂(eA C!/dr-S*eJ \u&!̖#;#GM4!'H؇o_`P.z? +3 H75:]8ڦ84UPU +|*˳KJ0E,ZV(+Da+봸P:ee)23Ff gL1B2 +4 eq{wnt)p^M3ko9tڶRUYR+ +TTWJD!./gYea|&AP^V/kLZQie$=4gkc\ïj1@9twB{gt-ۘ6խINj{aso~8h Ϫ+P24U{_5HU]MیN\:ڏjȰ௰~ +p==ᇪqV +R\dO=+ 54M =U'ɚFlJ =yE;ާ&P9$c ua1#.̎aP;4hK&HOdez zrRҒm3D>dkNcu1Hwcs¥<y +}4 I 3(tdLN؊ƒG'R.=tRD]/[W{Z xt=+ {x+J I =Lĺ{7Pom,Kٜ5y@,L+L-wȹ$ra]sKW%V?}o1_̽}eEZznMM` Pw gD=p @@Ol @51\3Oc&PRpPnZ8Yp23 vI3;Em&wPSMY]}]QQ_Y1 ]`(q a͈e1b v T Ƃb }- K,uk,}ĶρsxZ9.h v AyЏG4٘5r._Ek'謁o=X.ˬI! 8speE@Ci8j9r0 .]^{ܣ{LIr=+YE̽O;ǨϜggj*QGrDA><EY^!NJWW޳1IaEdjgα̹qgNԔHMFK3:CJؘވE+ԟQ_Ga*h@L$5}02餐#H^a ^b^`98G;7~5~ozC0=4ЁR7D3PLPOPx_3~5Œ#bty +!yC=zw5B@Wug~51ө1_WPgUp{r619rt{Br';Rߍu=4 ^J/ٗZC-x$Rc&n:󩳘eY*SQ\y/pǾ{8jZ2A4**J/Zẕ -|Icy'Zz΢N15Rc)5V2np?N N,NqV=ةYK𐫅TJROp ?S7h)"nҨu`YY'|:N qB18Xr jU[pHaMq~Wn݅1B \I2== n4UM9Yp%z[8Vo8xa8蝇cO v,Go%vnv=w +[ƀG!U:#D LD@z~Ix~ߖ6 A6I ,iG8i[\ikilinQW*#ڈ5+z( eyDCٟثr# uAN8Z}Qq|[=Wo6DQ5J.*G6jbutEetbUBFV٢,9\sA$%B,󗽤~Va1 |D+q(Gʶ0(7hj䰦UU/ء Sf:.1u\l(u\dXYhؠY`ثg84piNX<-"e 3sm[NMk/l6dUJ+2c2c7%>._.4vo:Ϙ:8۵8n[Q\[a:YƝ37<{͟h~3lsN|Nz*s*ĩ]kI;|SJLz2= M#^Ս{v4Nnnn{O  O܇ <Ǩwߜ3I_zvD۳cN8xԄ]Bu0#Od&=G6<\ Xyǿt9t.B%ݯrJ*TrSJRQ'B]tB1:)r\Y-cw,3̎ٝ"fƼy3$y?Og'Ev7Yv7Io[$$F\y{.m!}_}غE#Q] ge[̋MuȞ+s⑞2;U"_&MR|4A~P:[~R'AqOy샒}Xؘ|wRHAF ,rlgd&8f${$ϛ+Kϑ&ħK ^?3]+N7:׌4x~q.~ 1UKZ yCM#2fJ]>;{wlV4fb *ӳvEeu;"WĂW >\g .0-pݣ6Hn&(Za$‡.M*uxThEw"gbO;BQcj~[X5).y.B?Ρ~.g58G_GJ}5cYØbq䖸Ku3L:,8j ӕrH|"Ԣar)cCBG:-p/gjUYԒJP]n1H/$ǯ0nUxpU) PUCj}ldQTvA#&m'<v*aD``7 W +rPC5瑔os2UC^5Un*AћŒ#7Fc'ULTZOPZWW[lXy"<`#3iE_0̷T +}v=ӻ l!HaۜZ1b!u@ݰ`FA;fcXfPԿTZįfo^#C_5~hؽJJL V:qS7rOKb{xB䄠&oq:M!z(ocwcWcgGJ߭JϵAϥMwleSRqS r==4\OH6I:DL>i ॱOjEΚfx&AIkD5ŢȮu7l[P'?Z~Yă~^ր:ԭ* kpH?qE1yBZ3XkGJKi'\; f ΃ڵ08Q -8 =9o&>րz:[Kߒ62:NA'ͧy@sDV@#$Hዸ/.|Md.\ _ +?<@ʼ鮦N%9Z 0 {`l'0`~\_t>f|y{f%e áoK a͛w1`+]Do*khO v?=t!w_ȗ#<&Oy |Ja{gɓZ>^MuNcqukw)G}|MoS-yX`M^}7wN/o_ykbAUAYO`M +n R_" LHYA֒ +T:n{H3qGZ<^s}xI^1JX0QS,`"?"2AGRDjRzx-]5kXcβ4e+='P`:01pzKOtd*rfmtUO^^Cci2s?X_nƠ0c`~F(k7d2yѳu lHVӳogq'./a{hMn~/\0{;x[4f@W=9̥/߱RޚtlkM:α7o\e.sHC0_t!b *Ud+X*w +s/9ͧ+y,g%=*zq ؆+KEyg)#8o +2j2?$pA*!$$&@+wo[D*ެx *bvu8ڎcg;uSlۇ?>{|ר/*F\ƨW~db@%}򚅿#po<q! +>quzܦ-^0|2`LuAz.5Xqܟw/8Cidчdal- [O71s0wdXgo.3uqa$9Q8pN\EG>7p28@z9+liτy$Ρ]?p-TYp1,^JY +6PN (ݔ#) ӔCaE&uN'YяI/"#kƿ ǣm^,T%dpXN=p8v8prkV vDHi=ô9x%뛦6Mt4"&{=l}kubؽ;n +T6 gINA>'1g%I-}O<%wuN;J]F.{.wCҧs>^ qG0ۏ3pG ,˜trO0s2#'v廎n2ۈmm}H6>(pyp #2vVJ^֧K-my_(f7ȧ8yN,Z~[%o[!ɩH#و;?ĕ.X0q@DŽ Ɋ i{3<:ro.o*ݤ2rfn_(*eU9ίPǷ(Kkf @J# s]7KXpDw}C?r0Cy"ޜmV]WVWɭ*5 +MY`:L\ 1kFB5|ͪ+S18OM$ +_,:AwƊz}|8p +|VC(ѺO~{~5Bed5>Ճw`?nTR̭PE5nҷ$h1h ++om?޶đn%/Ꭓ׾֐xWRޅ!K(~i)vC7r-v::]r&ѡIjKh/`R{7}%XO^[[^{G7>Mo뀱(Ɏ]gʣRvahA5EQ RIAt@njxn1c<[FclgO\z36r&E]0hg0u5k +%Id1Ɂ02jK Pl.QT :ףuGĽ(D( +DR +Z[낎XΨպ͏91y{ޜp͜(1*;FFv62{ox}mm-YkehBmvu/[*$##UMZ_l`B!NYx2K_̅]Q}ޅъB}}}e7{2؞SBz-Zeo,r9VsOsJx6$ 42R +؞us"Gw胮 8x1q(O|Rzq .۟ealEӑKG.րWɈݬAQ F蜡8A팁s<7K'Ef:Ϥm8Y*Y:+=\>}z^GQ4ăẞ$AT70:upu\hxGGy !Oɋ6jX +Zm 5茣3ǀzq$1|F>yȹ_CCf 7]y&x?<{߽GQU 0\]!000!O}XJ@J$#*k#m;>үa|0kIobM +FVy=I3߉W:=5x~: KƧæbD~ 7X[>&c| =b=9LEm>ӆd+:OfG1z#.WOO&7M.76S5[]>XeSy>6dxjdsg~_aoad,JH"I&:ErxRJW=n8OC@܅3yot-$)ܖkpsr6\g-β_Nq>Nk| Np>1'u~0.S虿s 7ItcNcLL\fXF*zɠ'|_G#f!?i^Zj_AVӯ[Jsױiݟ5e^OTzObzqk 䀐}bU8PtbXj*M>CzeY%q{݋G^`pQi1'5uCq=2LAq!jKQ㞂jnMY2ZzawwnB#Ȱ(ߑ;^]QMY$@! *JAY$ '@ KJ",QqIЪ5:uC*TRSUO[3cպi7h|{Fucʛ*-Vu{͖deTrnBT0*!3ujE3ob>߬p+wBgGz9<2M1NChf73p݂{P.-kdjL`&{7*&[\ϳ(KB+ +elpmarXy@T<%*P^ʗ,& q=x?i>{}*ıD"{Qd+uo,LQWlz15J'yV|+u兙Uhq~P[*VH4i9RG+"#},qB{ ܋Ph~+4(S}Z0fP^k0:QfLQ8Jdizy$_t*]4[WkT" Ҍ=IҋF~=(Kq.Gy0zx֎,TcQeUZƻI^~EI.dDDn!04HI Έ4z4chpJp7\V<'T0q58n6< G\"bB] ~T( ]S4ƹ5${̚9KQM懤Z|O'[yVGpumPu77!gr`|ĚgܸLЄj&xM8; `]'<vM ke5rۤjae&x[xL:G/ Lpl5p- ޶?޶fD.8Q?6iz:F? $0}zs9ЏNvLI `$S1`+uAGʂiIvň{O'^3^3k_:"f~WaĎw=fSmVgmo za9]p?s|9=hKI]bJK]Yq1v=ir>v:E,;/-%\]x/bCA[}x Q58-ͽX"R@l 1GzI;$r'%) b؉׽ +\8+&[ +p+?wAo&"f{F\\A.O⹸Q+q%'?|\!- XxFx xMXkaC"ش5X{YQN"."n"='_  `czuNWO_oA hFMQPA#O4]D8` @6 A~b!,pp >Ƌb};Co^ ЪGLzK<=$&%B: f 7 'D0` 31:[ pȜAcAa?9 yo*.f4+YM4}Ht{{??őDPˣ] +:⸁:5 +5 ywC{1jk #O%L=Q)"14(אp5F kD,0|/Y°zGFt/Cv=BQY8 bt@79F|Ft?w7 ~?MsK$> x^?xN_xNxNE +T:%u9:9S_hL[8~7c>[to?x6$ ЫJi'i \l=}@و5}t6tQ}1xrG ,W1q"U=@wi֟Bc)a9tVcKbX{ :B_q5|*V/Epa8B bB U7_ +R2j d#’A-H ,a  "HAJ23nTqZꌵsszjggfδL;˛/j߼{w. 'loE:l{40r8`>eކͿq69@W)ԁ ^ 8x[=`a ]3-:nl)pf9I7qᩫxR,K? O13Dr1kK3B pȶp +N8C`̀s.<+m|^G<᳠. 6-ZWS^X9US N#8@ucƎkt' >B]g_ Ig8n?[.nʧsSvs6Ig.::cQ:5IҬ4\o~4|IL/Gcqrm%qr+7!tWE)t6 NqJtXROM]4#a) MO^9#IX#U>%Zps}+űc{jJQ;tA*y2:R[+tpfVZr +} 4B{WUh| hᐟP5z5ģ/ e<{Co`}me Jz:*CkjKaMY{ XᥬJhx-k$5b Etz99ys[䛞ݑzvE~'#ᴿP[8} ]L7h;/hz}0]ڥJܩJV將Tfޮbؽ*'Gt9[Ճ-qNzۮ>uۼxoT #} iDh>=ڡɾ8oڭYF;5aC&ۧhLx +ow7[nMKբjL FCsKXw޵% '=#"Y3*Wax +FR4՗NNmINjf |K["lV7i7x;MލZCͧ^OvҷV{ķF3QvQTدBw迢$~v־XcI fbu"=qTwC\@\k`q &8_'DwB%xz;رwlڒڲ)RiB.#6!+&'nKjK%vIBuDcw'bc ~j]( +& +\W>D.0ƀiccZɡ&19WP3elRyTA#'ё'o(mihS;:D*ǠzDŽO:ǂ0]AdCA߰ZF-b]Om#xh'1}(DPҹXXvBc\"vU +׹Q6H?µ: s]|fBWH#X/K^A. >`4|gu Tn.%vIӽ_,.4sf L᠌mke%몛*A((0*%QTk"[^*))`V'q\r3Btyn}9؜# k_k39\bvV{;Mz7z=2wX#x|:@pvz,V7]޵ {M+@6W]s+֕F1i#5J52pWŠZ\E{ԥ}/J]P%cj?~YI7VURf"D)niJFqwܑw +vVgDurTwV,_y|vRzTgQKo˧sOws̺*P#yQgO!(QIA*ߚH6I暡2ՌsP5Z5ɬ™i e%Kjv7hBw]ƯmkI4 `=(El,4z8G{x(\ +$oZGsP uj'm]8۵EBih\4 &ٶK;vJYW;pSw +Oь\4f +nA/!Fn_ 7[y8̂3(8!O +|h?Wk xA sI|^?Abqg-rқFK+ 5p0qE, 3})4ig4I=>B7vL8<s70xAL^yBK-:9Ġ~?.VA+J[CмH('ߦߓK^֧4:Ӯ_3K*t#RE°|;<x#if +dge}(Ehz=N6uo%Fw?lMZբ+|{}.t޾ l0E!;zJw5X3`EJVªSG[ϯ)݋:;΢3G6 fw `RM1|}\|)%Y +j}8uXSP"o >&Bno0ŷn>3}0a,<(P gIrQ[@ay.zu͆p7%s>HI'J1F>dJaԛ:W1=jjo|&1Q#8F ga*>‡ T6j!%Om#'ͪ:Rv@ގe[9^Ѧvy7Q+}F,NRlj;8L]гpÙ gT<iwHLQ'`hOS' lX@6֑ZbQC]TcVtB r[|=*m׏!9{І +qiRO^T{J{?eQ)*/W*¨YZМgfαd̷ٟŒi`ɰZgZ3NL:='-gj.Ԥ7|$;~Ityd5,1MfǦU{TVH7e9[2C>sOJ;#y%OQ?Q?Q0ѱ=9ǡO9 |;plM9Sƿ^c8J4E(&G{UV&ˌ1)6UqJQHQJy8!8Mgm\irojFZӚКSj)yGm +۱"XJ+Sz`+̓Y1>e )Co ^jsMUSm2ֆefl 3eK3 K5Хӥ{iiF/0D`k%8f_U)5ZKs(JszNYU:z9S>Vr/ێhsr&k{j$@J:IAI_]2HSm)YVbQ'$C7>A`5qԱ  +VxM5~?tHG <$Ƣy::RE,cV܊]1@U1TctOvFCBcjB;8ܪaCAC{ v\ Tz?h*Y 9>N]kw q&VTb$/b ^.ƚ(Erp$4*K@LU^Ъ!UՁuW Y>/U]?_XO@x'QDsq~kٳGH9F?S'^ qΡgPgw3'i,tswsWxF~}jO({OLk]Q;L>i>Pdl y"QēL~beHCgWJk p%)ҕe?WRTl$^.3:㢯,HiO%x$؆v2G >yE< D"_Z4v^%q=R;On'uQ5%`1<8#߉V47a֭a+"N˱DVbJ$ҵ[4jQ7wUs7GI`s4ſ)[| +Ży((`/c[H.uE%~w}6;#{oG t7nϠa=g"! [[4 Z~ZxkrmmD_1+npD?׸6~:PγR`7c ؊l,Bm #m "m۸E+܌Ȧv6 +4#u+ CʦxCV7E"6v4wvA\»|:h +G﹌&m _3Y"@6I`H"="S?瀒N^ Ň"x3?r~x 7'*|([ހ^3_E-Zo|GdZ}wp~= ^"'1 js.Fh/B{U`^Ss/PN%Wsɗp;X. yy< 1<%o {K z{1qhLBc* h!n24Gq\\}L^@ܤ}"heІ6t9XCdNNqeys IW6f@  $EbX*dˀ121`b;ނر]14iԩxmL3]2M4i'4Ii3mӸ/+@s|gp&7]tΣ\F4!;ާȨgkxd_>Ixjax&JQSmE߇kq9 +M y{?} Xs\,9H'v򉆯`~va?Cn|@QMeWV858]3NgqW GOLG~a8Gq:5'AczPj߁GO +_CIi`UN-8Mx@qXc44Xs<syExLZAs{^Y(i̿RZU!vbіD033UBǘJ:«Cf: В` MEY"&Ktvߣ)hR M8ba 7J}h71lDK 01tDBʳi?[@KJ-sºzڻַl`Ѯ3hh2&K4|Fߣ?pȷ4>A}% [hW\MÌ Ӂi_h"o̠M4J3ae3\4J#Gh4bE4q|+4Gz>o(x^ovjFMh#6K4Bѱ3&bi<6%]UAQ5ҐC[U^Th nf޸%;~錿#-|wbWЮ@H$R&g0FfkL:^U}6^ff:vi4m ih@jnߥ-th[UAֶ [f퐰)}BԐWJ?,K?+I*NؙġIim`9`>m +:$4 >}4yɼv]ߣ3[uQcV!V\,uHjuj_Z:7d6eJǖckcYZб_zAԙIŘo4.C6"αIrJGVn蕕F6㌼Ը_^l<_W>MQ=lN ߯} 3~3F^c:ƠҞϒ T+_ï5g +&Ҕ/-7 +yNQbjeL^jf ly5Oy\h k0Lk{lo"71ŵQ "LCtx8C8xEZAU/.I-VbWZ|KdTY*I̱W꭫zͲZiʹpBNU)_˜ +_|;jB'fl<$tl + ") &gY$U%0T~=Kd%BT[d l[RoTll}ʹ/+2+r,,WyjؔM)`\oΉ5֢=G`߂vZZw8qNaY4w me$w(&q1=ǏuǸ/6_ED|ΏhVȉ9)Gw>vFG2!Fy8 ҼLjo"%yL7T^/[͋Lwa¼iSuB;I-lOy85 +90ONމ{uhϑI#a],Fب +I[O1M틥("}˥0_mU_#:)7LZ;H9Jo3=)920N` z+q7zDГ9N%`8Uޯ!_G +]QQWffƥW " +2 +***. ((*qcqnU0z\$M4.1mcmRcbD-1N#G9o}d+H` rd.(q^9;m54Nʻ->a[Y7LTЏL3?|s);?Ze.4@P Af/J(p F7I nEcR^ W˳k5}:[[ +L4/ZUpTxT81['ڮ 0\0| K C_nS7ҋ N _Y"`j +?cSd_p|x٪ ڸGԮGN0ܪƽV!A˶*ʖxNXjq|&Y +x.{ڳ T3:՞n6艝Gڽ`5vK9{g~R WjdxLr`3.#,,(q3\BtU*08tO;g=\x2IOJMii6=80a!5p X}YJ,ɧq!.4?手km{E Lb @cz`hOSx9%}@}'ڲ~WqN1&uqCW>V"`Zp-΀d{ x +>'3CIשMVCC{(*u A; P=F>B^@Rr} +2R/e,]o\|v UR V3 ͇c7 Zu:>+}gLJљљwpO2Ñ D8fKqQ)R*b[_ <)q,ٸFnZgYO`rp$wIceG&c?v\xONfO J p\;O-y_ <7?ચe*VCua|{FC+{,O\;r`/<)ēN,EOٰс)^zF+ܥ-ɛb+B6]Zn9je &^pgVhFH؆[9+*Z<]M$tK9le2W׌-YpP?ɇ8c8\qĔO*< uٵZ79'xϖtjp/jaӆqH +:/{՘8[c%E+O"4xO&W\s*3S '`/4xG&4\-:H--Fbmo{U^=;AK}Uj-dju4ߚB[Jo+[(1lf4w5 KAp&~>jssV6-Rӎ*iMhsE?hfhXMR W"e4 GYG5MlU ʭ0\^|a`%Z*A-u +tܶQ֡v}4]r); ]FijKSOy~&.+pҘ# :QA52!#mG֎dz$/prP FZӱѴ{iJp&'kbp&120&$ǐR`Đ0"taXAcz KMinSZ{j̊YXWDZSBj3r:iZ eu颉] Xø8Øa)QaCa#úN7w7 Zl^aJ j~99WR[V3Ƌ6C*5ؘR.C#'ʨ5!E(3ad8"iXDyhDyHD9-bWjXASR"D.N*N?jOBԛ>񑟀o-m9M_+F t*\1썕io15fj4E0= zwRPDhI~1 ,1+q1U1bް:c.VG358F/ 2v8 #?#i:dfJ_'!6fa}v̰teX[^[uya}l tw3,!D$!B^f1A2$dH2^$ DD)IkֶHUUc:KuO϶]U*Dړ=g53}~c܆x=x+/+pؖI//Ïyh:~Ltcg!SblV'%kMFıC3 i8c!ָ0T9ȴ3ڴ_?tLeeL|9m'abofFd2 /KcR%t";(sw1{K9La4P O IONM'Om`^2#S*= O 3 K~Mr{; ^:~CZELNV|MIK[@f+C,8`ue&zLn1QG%ˣe."HFZ Mݧ:$:rG4'](GHMĿ=h^W;. jb"V?`kb5ZeMPO7#Gi­PkuթZ4\{B2zQ?[?έ=: >wr&*;[~2_ A^H[Og p[b}l[26^fS*,PLYa*~6n?ۛ|[|2+^VyOtH pO?.D"փE@$_&&/C%Ү>9]$8OrWNGK}_?{3no{t˾Y:TK'CiϥS#Vu*5ȠmE\"+x~GnbaЋ8"#]1J::bpdQ :RU~(gӢD߈jSQOwA @nE~HL|oF~3Owi[t@:9@TQ8zNFsR<VVsxϤup\]]ƹD"O#'~ړ_DžuqX@\/r뢉,|*umȮM?]-I6~ ׋0)c*/V{(c )e2JE)MD`hm5"bװCJvklWYUIHW1(y|Ψ  3PYZ"ZQ䣒T2T*x1$g7~J6UtDf9 }$-߳`P{ .{Y ~3If䢆Vw ESXjfҴ9 $:2#Z]C;4%@C27Uh ߑexY"IpD|xBd|0iÛKX2Cz8 IfI3&k&$y g)|K_B=Ox:>8L +>\O.!#^E-jrfdy 9pf9=g"pul:ql9p\l"?H}nӯw93?pG$_5s(@'`g號ņZ !;̷oP:4_Ѵ_4w(m}·7v %pM/ WJ(1p"v%\+؟E,Qo4F}OT-tMG2*?ڒ?*cfc4lZ-.lPXZ! zѷ` F ߇cX~б EF[sBE"_p>)d8foP 0Ps܌sX8Ë92 C `}}ѕ^:t6&5]݀ձۃhFK 4_oK +M / +甀?s S~]w2LT6Q]%s4.À02LhyoI+RyKnl7|+sUٞO2Y(cڎjKBE$L̖'m&-9"rRҨ-(iӚKz&fѾGɳS \rs9g96˦jՐJKլc;-l#>jlbU(p8"QXG9B,:JfC69\J^ɫX*&9۹[rNJzy)yW&'M9\URT&gx.)=_뜳ȯ4p*,,\F!U$\e2))%e4i]TQQ>'II/e_kT*Uϼ`Au {֮.2/rcT0'y0zID'^B!kҽUbw6)5BrݠX7&,;F3xbjU1Fe1~gZĮ r!V楖ϕY _|:H/F }w ƿQQDc[X{? ?hPzU0!fV%1ظ=A^~VyK.bHGtR, +h@X{0/0 m`r$kд} +M rwPV0mz>Z b- ޯ$ ꙛ a 4yA=A#`1b]b{|!4-khB:bx\cM'^c_M@4s20H;ȡ6;73XJdz~*>*uT=_1/C;!`Ai=@5q@N^(=h$##Co;=vv&z >f?lBs +v#Q9;:TN||yȧ܌|F"/-x!vF@gSƙSlzOT;fw%Y<kp/yvc@a!/=$I +I")))2S,I&(J)Lߡ&i +ivvd.0g,k˷<:m:[αDQN)HBR貈ĻpO(DgXWYfa@Ko0ׯwU:0S\w/u&3uWc4sI +;½PCG111_} K` 8B8X2]+1G/$>Ɯ9ػ'̣,8oB’!dB2f 2L @BL1!YѲѪh]Xqmm"GAKRԥ9usK2Kޤ?N ܑ4I's8W&>xFsa<4"Ć9Q($<؈XȺL4B^| "ly>JMqsO_м߶1JjY_uRB2}U(+u5wPV"F3Zo]x;{; F 2QdE]ZZu{u]'txs;.(Sz:O(0 S0~;`&K,.x^>] 6z]w]JM8{u+q+eKQG) NQh0tўž$\Es&~#V +ss~Zc0[8MM I+?u9BUqÜAԦ҇{Z*Oēt`4w?Wse]|o>!n>P}P^b_~z0S9W^pjDYuq$;c?=OPoSv ջܝ?zi*>ь>퀗F-&o0ap56LEvөtP`o#?SqqqIا(QgK ̀SsVts>XK`u_j9u7j)X{/c?e?zw"msqp怗WqzL̆5|X a-&-"d.e.`zg@OgPO,OnVx7Gslfx_1ӽ7K=a{\dE?bېG׶"z{37FxЗ)/230V73ʗFZ))/姕ܴ–,l{?8C?"nakaJ|)DNHI Rʯ*rUUhL x #=4@RHRJCՇ_)3#~F، [>fBykp?y$fz5ZrGkj} JoRjK) ӔP!{^I%/S|p&*6x&(&5< ]bQLmށ܉aI{GO?wR>"oi(%b59dWbȡPBE*PƷRtqDu^D_ ّf\(ec8F +(f9P-Eϕr.gXn\ˉE B.!h%%[8BGH>ƸK=>$\[w0 >=QM=Q'v K%SƅSp)zYB'?<:X$RBټ] %7 9agc KعN b_(?gi)$j۷B!<{y;8o Xb=5".8c? ǝuAnNa䤑HQ5ٓ+k OՂ|8߆M}w]Z8{gW(/QJ7Q47PS>B>A }L{ mՂZB \C#xNO!Hbnjf \3 sl+~7?< +'3<1qL'Žر(xJ 6^,'""V@P;p͛Q(=uWߟkbNjroN p+cRKXL,wVyDJ><*z7A%N߁fxϳbx]*ci++9)%'_\CaOp%Õdr'rG?cTѤ)MMv,AX{Y~Sa-cg=ĵ,swUKO-tN!vԜsլ. e,n断]뙮Vej{<6jKU y4)R<V̄!k z41A x=-'GE%ulOo/KPv7+0eӔ_$*g2{ejb\ )իD)^6%{P+J>&{mjyVS U6:d ܁-[kPVPֲr\>A}+o|(gf(7[If*%/V|Mq~w\#Q P1ی~m9?a$A Vűb|2 "]~ޚJT*!`j8]52hbjxpj( ࠋ93cPcP`}޺H]XmQ:<`hv*9}1& +ؐᡓaFt\cHسƠՆTnDӯ -#t b +mfs[X3|;fcG6j6Q}42_1g H2̑FTd5*4LFy1\iA '`gF2ww"QP.YX +A!ⵀ^*I5Fcz 3$j=64uLL'cV'L8fq8_}{m$mɣjtrUG1~P9K /Q܋ ׈h QtlX!*60$n!2_j_jKXeI {ZAWm:JoJ=Nc.;y^/ G8lj&ZM4{hD&St@E%HàqÀ&+ؼXA3oTCS|Ewm,KSOgg|F?nAx2@Lig|ibZNDBz+8 R` +ƨ5Y}/j5Oggz_gz)zI/w{V|K_"VR'Y򵅪mmmlaːfqI m,,o18탣 eȮ +ft%>x7&㋕[8F$MoF YD}4Sh3L3=h!$  GT7n½Z0i[ha` w=\mx};.4=~'9= whwHΣ߻ok3[u(yHyx[~݋ƾ0#Q8Ɛ IGc_+۳#a;[t 0uz="={#=E]t|?tIN⩆|bH" SpDYp-/ŚK0\#'D|~~z6۽@FBbFGvlF{6;lQ߱BD} + +=qJC] \/M>eD}{軻;h̛aŎ}u9 +~\虿*?Av +/i>VёgIU}U9p>#`jz5:z2]7JjcT_"~gh Uyu5x5z=I sv@ۇ7yqț?|W.OsB"la +^A :J6iuJh/Q|xӭ]`'\"Vk o~ nj0ۅ؞bv>[G5p8±?xakw?gJ DV 58Fa? Cs_π| +쿁k6oRkқ4hWQu p?-Ϲv=gDjFHL8B֧QE8>óuTFcOv9RGfkv_񅻕ϻ!l{<{j}DWO*I'duǏQǹjKSExWJ"*ΙOwϣgN> +`1ɯ*2/9ODM҅c'Sc!~TG@Tj.`uAqEt]u{&:뿍7WW6ܞD 0,a1 lr5:3t:($STNU*:O?0o(UHo۹6n-c~%Yƨ],o  k8,p WʇoJXd.SDEM&lԄ +bfҕ7ēFֱլe+XGy9er0:! +p%KpkLPٌsePiƙYi{5tJcLe1ݑ`fy+]+]걒uTrF%iӽ{(r{2>E^\XXaQV"` x j +ZD#* F31M8Zc3mMRM;1NLzLLOzǪo_F HBPq +VзVC[|.A_P}У? އ[b7YڔJ kMHr"Ge!-w`5|@9T/WpBʔ2A΁X% ]+{6PjBovO)ޣ3y^N7Zj_u~M@Fz(,@ +prmrgaʌqGMUZlF/͸FIƭJ05o(xWGDNCuPsz~!/܍rvD:/ːGy9Q'j\\bUJp)\4jKMB]> +V+J~.S`W߂!.(WA :b +0(sׅZo=A&%V'_|6>5pO(7rկ8@}Jf@M.a`1@ϗp#܋>Px_ɿ8,Ϧ[\ +?b[W%h?Ct4hE=NBV>nּ[W¡k8NpIiLmWE{/#$.\s:ƙðρl9 E2sYsWp~]+VmY+iFcJbJ;Շ Y%^=iB4q5џMbZ42Pl" +\lg>:p L唫~5O|'wp +FF h--ԣҌ h-G3*]_~oa,ڗ^d +^׋6bhC2#m\Dm Wʋ g_cgcv%qy6> O+xwd^v7K<.n7Mwu2ysO*|Ne $,n觵1<\=c^&o00q3r?N-⛜UGnĜO0!9{7b3rc @cx̾sf"3rFD1//k {@"rc:"~7I3Cv Z2y +t/<__@a'm-g?0$>mޤ9>dnPJ+>)8OZ~(EDߡ?Tráw'^A3+!N;,q;e6hՅ_W .{'{`͊:bhߒKܢOZ,8F_Q]{ +=!,cvw=٦W^%չq֣Ml-Fo=)|FrYȓJ]/)+?LjrT<6\2h0-d}ѥt@&pY N'='`SШ( {GƏ/i\ Q~h5׸$|m5Qx`qSN85<&/85 +jVNmD +H\WQJߋ2]zh>_ҮDHNCdND +2`-!S!Z^ID%~KRfqr:Jwm5hN/gV!z9k.VS#h<]̛ N|,;WK j7iccC`Ta\&Ib,|6znobj`)d 7-h>byTJ"TdBcQʏQ^TrKeQvBe.-%e5)|X7d-h\i"iƜq7u~k᱂xYD԰80+EqʌRF\g+-%kG) MJNX$&Y,JH -odXwO1["Bv3 +nE,c9RP%ᛜ%8&&)%)]IJ9G3eIFHi9eL;zHQdL!1Ju>kQvQ.n*ׯ# X*9$kX-Z5#-[qi>W1h֥ve*6` l?PPƇ +TӺ={uٹzkcqTbp&ycU\VLYNQTv|EKnVX"4+(w 7"\f\CۿFOLmfVtb6lpo$sd̏TD~ +f* C<E +t﨓_!c!lf{͂P.cjK8cmU>; +F R&$c+$I8I"'$НkE.dx.a.Gi0y0wkikyE,8IWh\)ς*㞗\wqHU7<:C+?@J/>yOy>J# Z֒S +IV5c옞 +⡐x(nv 7 &(@ 8`.A$;v~s=Pdma78Y#nj +ditk@b7,A=;^2&-aXĤV t`<Ph?a@_&/R:R;3v Y >Qͬݲآe波B$xW@+1^36ӁW,g\ƴ38Ot!.Gl5çp%Dy+앝::⢃uPP vk-נ&'vc8G{i^x*/.Vl W+-G/\r^Y?Ybqli`dQr)xcR,i͓D*ov F21O7p}\^X1$K:di8xR{"J;hh%-t[3]p#^C\ẹ4of86J>E,r,#Mɕ}El +mT_ +Nfk22W̺ę/X&YAxamK%&&y$ 1*rY!0fWh@B*T +Y)ܡA-jUy[ޑ|K>fF.<ׂ쨡FJuԈ$ lA^ +lYUᲬrL\&?kVw~y>-32,yX+"سe#DZrVdW'yV+]n~DovĚƾi'E<=[MOz.|jbUBLrI:\HTk|eWUvb.WG\c,l IC,Ձ-E\zG yOˎ5|nĤ.%pYN$}c!&>rO0%nD#%Q@kyI8܂J),Ɉ$nďI*?%>sc'3 o/J.Y05\4Na`$ISgD:qah،ў NL q(6n>ob= puR3$Yea4m͛ITdC<gr0|K[6DS&2%p΁lGGk_'v3vHeKRj(#\3zERȄBQȰ/ +) +8`c!ςjY)?֯Y0I3%55n rc1咭Xqn&G9(&I^q@jK\)F[ +ypβNTGI } +q5f2R͏/1qa(.b0'uĢZǠ&j)~TQ uTZrQ4d6P2G@ P| _op%(lג!4vRX Ýh.h6ĵBhbF4,nި麇kS^S1*ٖR)p .FWbՌc/ ^=iC!E]v̈]g: %; LiK1\hNe;de C=2H,iA +j'GsLFl:IFec.0 Z@)-hJ\ + +xAT@ܤʥ "" +At2uhEbLlL̜Kys{\+ ƺD|C>Hkƃa^+kljN3qϱEGwy?_:>8U[|3$b߷I -.mfVخ7kr>s\[%bsoc獇/0KD=`t95Z?~w.z1VX#Gpg q1q($Yq8: 1< g3rJ_RS~k/< &(~S}ktD1qc}a&DٺNƛAx_M>p8g̊3Gv~3S*c.#j7ů _P99ʻh- {7|Z|R;_qk/_gхo`>C%f~SuC'xjPX謇>n󈬼gO;U[DN;[zgS+ei-vw=4ԭzw⿘8O&F^wKd k\aQ#۵0.QhU: `Z[2M^ӳGw4Q'{3NcQ?1;WB^*Sj0FC"Q1ڵMdk%sJ^>ao} A2]J}M2O>nP9P,O^v(L'RwwIWAt+Dݔډq5Wf -^b{* +XUj`MU2XWš ka|5r{c<ɉ5 jMZ^6BfcNpY&/&g7)y +dPX`tTZ`QsǪr]eThdӤ>nL>=꽅>>%}a*5r*xc^jLt(2҉t>*p=1f ;5ߞQyWF ;Hr24j$MfD@{Hxª9;TE`dS_h:cYqnk^k$*-s&' +hRwڒY["3-n##Sxǖ=J^<,Nqjrhr|;_̈́NkY39zG~FVKy18r FGӣG-k^_8ҲWE%5R_GR'y6KrngC/fM~7B9)sv +rS"gzdeeEfv^Y{EF{\\]s# ts.qև>qsJ6qI 0Q#BZV.=FFnf} "oI$_R3j>s4@ӑrwvjm\Ú~1. dNN2JҏLQ]5 +U\&*`Y~Ĝ b@3 BBp[B +'}쭬F`X"ͷl9ie.p"}GzZC[jjRE+@KmZc1kC2a A:R(ơxYΥG7ˮpRX}Rn|UEsU+ +ìPJ \pX"WXd+ +`abgcTKY 뢛35qx C]$ .IQ\-o5QOxpNSI5TE8=Ql]5-A,^dFj+pc%g[rBRz]6;&a\bCl^\)n 2%eKW'iBo^)WCQ>Ad.{x.vJ6͎:ccw; WX_%?Cp͕T5"\4IQܨ&7jrecTdBafe ^ARJ%I'ҠUTd&K2||W}眹Ι9_羟e + +zt2 +h2rL>5񸽍m֢ǟC +C=,#d?%ujA'=W|oRX8+)'y8ps Lh1dƲdg` [ 驘u57CWpy{}0q ,_W1|41_\tOϣ<@#iࡉҷx"Q/{wT}L2=>[45#>+d CŁĩXTt ^x_ ЁB1\|PV?7 +2bOR2ɾH+>/Y]<7t !t}?lR] biv6&E H0q;N$^@4 ) kEuR kzr\3_([&LR7q(d}=Q,)o~b!ޜqQ8RS ?, ;_e4(/UTAJW;qϊIQ/@iG:=}~^x{ѠdjFAA؁Ml.׃pd6 mg7(ַ,+Y9,C8٪&xI j!.'*LQ\Ty=.ӇC]Wh-`+KkEk#jd{Xqr CMO5lʢn(z%=+^snYs#EWVO*g.Z=2>nvLPjlcy\Ɖ=d)' +Tei$j6,6'oC}a\j|@PXiØꩥVw,GʚsNX۶ + 0F/@TCUs:˂w|p=h77;bK.`Ӓn^Y .O}Pj,T6݃JcLߦa}V][zžfg_ULػ'=L :q\*עtgh;V=36g -xO]}s b6 0f{s4@wHb\  mwpf."O~OWG8Ww,ta2lvdK +9zKBѬ)AKe;FkUl~q7D +;]gNw3r 0[P{B&1+.z]f#te dpI=c"f Nk1D>V3@. ]m8-\n6> _ion߹n(a/U.e-/uz=^Ƴsa, 2.7V\0.00̸z`}HlF ˙~h"P2?B[8lۃb⏤S ?׹_Z1:r^Jw/]H8# @D +( +T!` P` qP 7Hƕk&" \Qr83dĀO/6:w(CgFPaó^jB#A' ˞ 49lǒɝ`(2 +»I@tO`M5he((@c2"`%|@AK!M1XNE0 A? &|EGGYkRGpOOv4Nwѹď +9VP0@S > +Ë)G +sLlM<` '`V 8ٕڦ>P\ $lbW0G&]@يGPR]uW~:v8!fv1Pɇw U\h=@W#n2@)`K`@"]qY3NV()(@Dg8ћȇwCi +41HjE/`&ף#5IHQr[rt,+n6.m͌ @cEe"/ 10Ƈg\tM :p'FQ| +@&r)Xp7!N{w, [ eLC cGjϤU y:{D䕷PRz|z +ωDy@VzR7M88bJ'"Kr ybm @O[⠅ +nb:pDq)#Jv7"@Q +6!"l_Q; b!zX8d|im{ln=_UaAe#}$sQaK'U +C80kK{R71}Rce"J +Sk')F}D ݆rxɉjr?5oRna/tXbKIVmM*ˮUQSnVf:d`av`Yf*+8)p = Ł17q\~aoL{!i(7w"{c ÝWA@5|5Bs륤a`#(GeQ'_J_[<82o >WrFm-5޾EWӢV?| VO/&e88C<] +4MS @0d}@_*; t-P@;c^X%uO{7՘biov;t7P #PݭzPRB|'Kjue8^O{ JJi?ؚp_ 85!(( 7WMNA#OVBpݾx4k_65 +*#&Ys ϨAO_kge𧻓ϟ={J2BzoXmOPt2&J]~88Ӈnci5VS=p b h%> A +*Pc õ߇͜wU P$qr*#ٮەZ򄧕acpLZuc-U._(9_T|uՏ|W673162nja-[enhgDχd ՖUj +9C&٣G;}(9%5];2YQ&K|xZ̦X;y$Vq]ԕ֧@RSVCѩCq1{DFF,9KL 61T}@- /Du3("1&;=l蹞qRȤiMλx͵'[9H;->,9;|N}}Ʀnj8#jWV_o6z~=,D#& /''Wq:r&:'5Ba,Ax:3UojӜCne~G]I~K%|Xm|T{âzq3IIoYʊ + ](^_?a*!qy +QU[VZ[n?NCig_*7*+b߹7%UlŠ&|͟ͼ&o8GH.\ +.Y v[eQ8uUkn~腛c(xߙ[Z7q7?TL7de>|G7bO 3X i ,S&cӻVWlݶc\8Tۺ`5lm(wgܲ`޽ٳf[nמ#W6ONk~{%.A,gi9T}r=p5'nl_! ;2 +endstream endobj 7 0 obj [6 0 R] endobj 35 0 obj <> endobj xref +0 36 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000410731 00000 n +0000000000 00000 f +0000410782 00000 n +0001315992 00000 n +0001810525 00000 n +0000411210 00000 n +0001317807 00000 n +0001317694 00000 n +0001316178 00000 n +0000414914 00000 n +0000414988 00000 n +0000415432 00000 n +0000416962 00000 n +0000482551 00000 n +0000548140 00000 n +0000613729 00000 n +0000679318 00000 n +0000744907 00000 n +0000810496 00000 n +0000876085 00000 n +0000941674 00000 n +0001007263 00000 n +0001072852 00000 n +0001138441 00000 n +0001204030 00000 n +0001269619 00000 n +0001316062 00000 n +0001316093 00000 n +0001316391 00000 n +0001316505 00000 n +0001316814 00000 n +0001317841 00000 n +0001810548 00000 n +trailer +<<3EECCFA300E9954ABDD8E41719247BBA>]>> +startxref +1810731 +%%EOF diff --git a/01_3D-Druck/phasenmodell.svg b/01_3D-Druck/phasenmodell.svg new file mode 100644 index 0000000..1880671 --- /dev/null +++ b/01_3D-Druck/phasenmodell.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/01_3D-Druck/puck-etiketten.csv b/01_3D-Druck/puck-etiketten.csv new file mode 100644 index 0000000..9278bb7 --- /dev/null +++ b/01_3D-Druck/puck-etiketten.csv @@ -0,0 +1,40 @@ +ID,Zeile1,Zeile2,Zeile3,Zeile4,Zeile5 +ds1,Definieren der,erforderlichen,Service-Eigenschaften,, +ds2,Design der,erforderlichen,Service-Komponenten,, +ds3,Beschreiben des,Vorgehens zur,Implementierung,, +ds4,Vorbereitung,Implementierung,,, +tr1,Gate 1:,Entwicklung oder,Konfiguration?,, +tr2,Koordinieren der,Entwicklungs- und,Beschaffungsaktivitäten,, +tr3,Entwickeln von,Anwendungen und,Systemen,, +tr4,Entgegennehmen der,Service-Komponenten,,, +tr5,Konfiguration der,Service-Komponenten,,, +tr6,Erstellen oder,Aktualisieren der,Betriebs-Dokumentation,, +tr7,Testen der,Service-Komponenten,,, +tr8,Formale Übergabe,(Build,abgeschlossen),, +tr9,Gate 2:,Entry-Prüfung nach,Build,, +tr10,Ausrollen der,Service-Komponenten,,, +tr11,Vorbereiten der,Service-Aktivierung,,, +tr12,Gate 3:,Go-Live-Freigabe,,, +op1,Early Life Support,(ELS),,, +op2,Bereitstellen von,Leitlinien für den,Service-Betrieb,, +op3,Durchführen,laufender,Betriebsaufgaben,, +op4,"Ressourcen,",Dienstleister und,Budget managen,, +op5,Überwachen der,Services,,, +op6,Erstellen des,Service-Qualitätsbericht,,, +op7,Proaktive Problem,Identifikation,,, +sp1,Bereitstellen von,Leitlinien für den,Service-Support,, +sp2,Wissensdatenbank,,,, +sp3,Überwachen /,Verteilung von,Incidents und,Service Requests, +sp4,Bearbeiten von,Requests,,, +sp5,Lösen von,Incidents im 1st,Level Support,, +sp6,Lösen von,Incidents im 2nd,Level Support,, +sp7,Incident Record,(Gelöst) / Request,Record (Gelöst),, +sp8,Schließen von,Incidents &,Service Requests,, +sp9,Anlegen Problem,Record für nicht,lösbare Incidents,, +sp10,Wiederkehrende,Incidents,analysieren &,Problem Record,anlegen +sp11,Operative,Root-Cause-Analyse,durchführen &,Workaround,bereitstellen +rv1,Durchführen von,Service-Reviews,,, +rv2,Bewertung der,Review-Ergebnisse,,, +rv3,Definieren von,Service-Änderungen,,, +rv4,Starten von,Service-Änderungen,,, +rv5,Implementieren von,Service-Änderungen,,, diff --git a/01_3D-Druck/stationschip.svg b/01_3D-Druck/stationschip.svg new file mode 100644 index 0000000..a09871a --- /dev/null +++ b/01_3D-Druck/stationschip.svg @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/03_Karten/README_karten.md b/03_Karten/README_karten.md index 2b7570c..1111afc 100644 --- a/03_Karten/README_karten.md +++ b/03_Karten/README_karten.md @@ -1,6 +1,6 @@ -# Karten & Chips +# Karten -Alle bedruckten Spielkarten und die Entscheidungs-Chips. Layout im +Alle bedruckten Spielkarten. Layout im Freiburg-digital-Look (rot/weiß, Wappen-Logo) analog zur bestehenden Action Card. ## Kartenformate @@ -9,9 +9,6 @@ Freiburg-digital-Look (rot/weiß, Wappen-Logo) analog zur bestehenden Action Car |-----------|--------|---------| | Action Cards | 60 × 90 mm | liegen flach an der aktuellen Station; werden separat selbst produziert | | Störungskarten | 60 × 90 mm | gleiches Format, anderer Akzent | -| Artefaktkarten | 63 × 88 mm (Bridge) | werden in der Service-Akte gesammelt | -| Service-Akte (Tableau) | A4 quer / A5 | 15 Slots (A1–A15), Artefakt-Sammler (§3a) | -| Entscheidungs-Chips | Ø 30 mm | Karte oder 3D-Münze | > **Keine Gate-Beschreibungskarten mehr:** Gate-Nr/Keeper/Pfade/Artefakte führen > **App + Gate-Puck-Etikett** (`G1/G2/G3`), siehe §4. Auch der frühere Action-Stein @@ -44,15 +41,16 @@ oder über ein Gate zurück. Beispiele: - **Budgetkürzung** → Review-Entscheidung erzwungen. - **Lieferant fällt aus** → Build/Support verzögert. -## 3. Artefaktkarten (Ergebnisse) +## 3. Artefakte A1–A15 (in der App gesammelt) -Wird an einer Aktivität ein Artefakt erzeugt, kommt die Karte ins Spiel und wird -mitgeführt. Im Blueprint tauchen ~20 Artefakt-Bezeichnungen auf (Schnittstellen, -`umfasst`-Listen); für das Spiel sind sie hier zu **15 Kern-Artefaktkarten** -konsolidiert. Mehrere Dokument-Varianten werden bewusst auf eine Karte gelegt -(Spalte „fasst zusammen"). +Erzeugt eine Aktivität ein Artefakt, wird es **in der App** bestimmt (Auswahl im +Artefakt-Schritt, „nochmal" bis richtig) und in die digitale **Service-Akte** +aufgenommen — **keine physischen Artefaktkarten** mehr. Im Blueprint tauchen ~20 +Artefakt-Bezeichnungen auf; für das Spiel sind sie zu **15 Kern-Artefakten (A1–A15)** +konsolidiert (Spalte „fasst zusammen"). Diese Tabelle ist die Referenz/Datengrundlage +der App; ausführliche Inhalte je Artefakt in `artefaktkarten_gamma.md`. -| # | Artefaktkarte | Phase | entsteht bei | fasst zusammen / Notiz | +| # | Artefakt | Phase | entsteht bei | fasst zusammen / Notiz | |----|---------------|-------|--------------|------------------------| | A1 | **Projektauftrag** | Eingang (DPM) | → ds_01 | „Freigegebener Demand" aus dem Demand-Lifecycle | | A2 | **Service-Definition** | Design | ds_01 | zentrales Artefakt; im Review fortgeschrieben (`service_review`) | @@ -71,67 +69,50 @@ konsolidiert. Mehrere Dokument-Varianten werden bewusst auf eine Karte gelegt | A15 | **DPM-Rücklauf** | Review → DPM | rv_05 / rv_06 | Variante A: Neuer Demand (Redesign) · Variante B: Retirement-Plan / Decommissioning-Auftrag | **Ergebnis-Hinweis:** Die Review-Entscheidung erzeugt entweder eine -**Verbesserungsmaßnahme** (rv_04, fließt zurück in die Operation — kein eigenes -Kartendeck nötig) oder den **DPM-Rücklauf** (A15). +**Verbesserungsmaßnahme** (rv_04, fließt zurück in die Operation — kein eigener +Akte-Eintrag nötig) oder den **DPM-Rücklauf** (A15). -**Konsolidierungs-Logik (für die Druckvorlage):** +**Konsolidierungs-Logik (für die A1–A15-Datengrundlage):** - A6 bündelt die ganze „Betriebs-/Support-Doku"-Familie (Manual, Handbuch, - Richtlinien, Standard Changes, Known Errors) auf **eine** Karte. + Richtlinien, Standard Changes, Known Errors) auf **einen** Eintrag. - A9 deckt die laufenden Betriebsdaten (Monitoring/Alerts) mit ab — Live-Daten - sind keine eigene physische Karte. + sind kein eigener Eintrag. - A10 trägt Incident **und** Request Record (gleicher Abschluss-Workflow). -- A15 ist **eine** Karte mit zwei Rückseiten/Varianten statt zwei Decks. +- A15 ist **ein** Eintrag mit zwei Varianten (Redesign / Retirement). > Hinweis Datenqualität: Nur der **Problem Record** ist in den YAMLs als -> `artefakte:`-Objekt mit Inhalten/Verantwortung spezifiziert. Für saubere, -> generierbare Karten sollten A1–A15 analog als `artefakte:`-Block in den +> `artefakte:`-Objekt mit Inhalten/Verantwortung spezifiziert. Für eine saubere, +> generierbare App-Datengrundlage sollten A1–A15 analog als `artefakte:`-Block in den > `service-lifecycle_*.yaml` definiert werden (Single Source of Truth). -## 3a. Service-Akte (Artefakt-Tableau) — Spielelement +## 3a. Service-Akte (App-Element) -Ein **gedrucktes Tableau (A4/A5)**, das **neben der aktuellen Station** liegt und -mitwandert. Es hat **15 beschriftete Slots** (A1–A15, nach Phase gruppiert) und -macht die wachsende Service-Dokumentation sichtbar. Layout: `service-akte.svg`. +Die Service-Akte ist **vollständig digital in der Companion-App** abgebildet — +**kein gedrucktes Tableau, keine Pappkarten**. **Mechanik** -- **Erstellen:** Erzeugt eine Station ein Artefakt → die zugehörige **Artefaktkarte - (63×88)** kommt in ihren Slot der Service-Akte. -- **Befüllen / Aktualisieren:** Wird ein bestehendes Artefakt erneut angefasst → - **Status-Marker weiterschieben** (`Entwurf → Final → Aktualisiert`). So „wächst" - ein Artefakt sichtbar über mehrere Stationen. +- **Erzeugen:** Im Artefakt-Schritt einer Aktivität wählen die Teilnehmenden, welches + Artefakt entsteht (Choice, „nochmal" bis richtig) → es wandert in die Akte. +- **Vorbefüllt:** Beim Einstieg mitten im Lebenszyklus (z. B. Normal Change an Gate 1) + liegen die zuvor entstandenen Artefakte bereits in der Akte. +- **Sichtbar:** Das Panel **„📁 Akte"** zeigt A1–A15 nach Phase, gesammelt vs. offen. +- **Lebende Artefakte** (A2 Service-Definition, A11 Problem Record, A13 Wissensdatenbank) + werden mehrfach befüllt/aktualisiert. -**„Lebende" Artefakte (werden mehrfach befüllt):** +**Harte Gate-Kopplung:** Ein Gate gibt die Entscheidung erst frei, wenn die geforderten +Artefakte in der Akte liegen (siehe §4) — sonst Hinweis „🔒 Es fehlt: …". Das macht +Artefakte zum echten Spielelement (analog zu den Pflicht-Figuren am Gate-Puck). -| Artefakt | erstellt | aktualisiert/befüllt | -|----------|----------|----------------------| -| **A2** Service-Definition | ds_01 | im Review (rv_02 / rv_04, Improvement-Tracking) | -| **A11** Problem Record | sp_09 / sp_10 | sp_11 (Root-Cause + Workaround) | -| **A13** Wissensdatenbank | sp_02 (Pflege) | sp_11 (neue Workarounds) | - -Alle übrigen Artefakte werden **einmal erstellt** (Status `Final`). - -**Funktional an die Gates gekoppelt:** Ein Gate „öffnet" nur, wenn die geforderten -Artefaktkarten in der Akte liegen (siehe §4). Das macht Artefakte zum echten -Spielelement — analog zu den Pflicht-Figuren am Gate — und bildet die -Prüf-Dimensionen des Blueprints physisch ab. - -**Debrief:** Am Ende ist die gefüllte Service-Akte das sichtbare Ergebnis: „Das hat -der Service über seinen Lebenszyklus an Dokumentation/Artefakten produziert." - -| Merkmal | Wert | -|---------|------| -| Form | Bedrucktes Tableau A4 (quer) oder A5, laminierbar | -| Slots | 15 (A1–A15), nach Phase gruppiert, je mit Mini-Status-Track | -| Karten | Artefaktkarten 63 × 88 mm (Bridge) | -| Menge | 1 (ggf. 2 bei parallelen Tischen) | +**Debrief:** Am Ende ist die gefüllte Akte das sichtbare Ergebnis: „Das hat der Service +über seinen Lebenszyklus an Dokumentation/Artefakten produziert." ## 4. Gate-Anforderungen (App-geführt, keine physische Karte) Es gibt **keine Gate-Beschreibungskarte** mehr. Gate-Nummer, Gate-Keeper, Pflicht-Rollen, Entscheidungspfade — **und die erforderlichen Artefakte** — führt die **App**; am Tisch markiert der **rote Gate-Puck** (Etikett `G1/G2/G3` + Icon) die -Position. Das Gate „öffnet" nur, wenn die erforderlichen Artefaktkarten in der -Service-Akte liegen (vgl. §3a) und die Pflicht-Figuren am Gate-Puck stehen. +Position. Das Gate „öffnet" nur, wenn die erforderlichen Artefakte in der digitalen +Akte gesammelt sind (App-Prüfung, vgl. §3a) und die Pflicht-Figuren am Gate-Puck stehen. | Gate | Keeper | Erforderliche Artefakte | Pfade | |------|--------|-------------------------|-------| @@ -143,13 +124,6 @@ Service-Akte liegen (vgl. §3a) und die Pflicht-Figuren am Gate-Puck stehen. > Gate 2 die „Übergabe-Vollständigkeit", Gate 3 die „Betriebsreife" — die > Artefakt-Bedingung bildet genau diese Prüf-Dimensionen physisch ab. -## 5. Entscheidungs-Chips - -Vier Typen, an Gates gelegt: **Go · Go mit Auflagen · Zurück · Ablehnung**. -Als Karte (Ø 30 mm Stanzung) oder als 3D-Münze (siehe Materialliste). - ---- - ## Druck-Pipeline (Hinweis) Karteninhalte lassen sich aus den `service-lifecycle_*.yaml` und `spm_rollen.yaml` diff --git a/03_Karten/service-akte.svg b/03_Karten/service-akte.svg deleted file mode 100644 index 7e89cb7..0000000 --- a/03_Karten/service-akte.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - Service-Akte — Artefakte A1–A15 - Erzeugte Artefaktkarten in den Slot legen · „lebende" Artefakte per Status-Marker weiterschieben (E→F→A) · Gxx = von Gate gefordert - - - Eingang (DPM) - Design - Transition - Operation - Support - Review - - - A1ProjektauftragFinal - - - A2 Service-Definition - lebt (Review aktualisiert) - E - F - A - G1·G3 - A3 Service Design DocArchitektur / WIEFinalG1 - A4 Impl. BlueprintEinführungsplanFinalG1 - - - A5 Gate-/SOR-VorlageGate-AnträgeFinal - A6 BetriebsdokuManual/HandbuchFinalG2·G3 - A7 Test-ReportTestprotokolleFinalG2·G3 - A8 Aktivierter ServiceErgebnis Gate 3Final - - - A9 QualitätsberichtSLA/KPIs (+Monitoring)Final - - - A10 Incident Recordinkl. Request RecordFinal - A11 Problem Recordlebt (sp_09→sp_11) - E - F - A - A12 Workaround→ WissensdatenbankFinal - A13 Wissensdatenbanklebt (sp_02 ← sp_11) - E - F - A - - - A14 Review-Bericht4-Dim.-AmpelFinal - A15 DPM-RücklaufDemand / RetirementFinal - - - - Legende - Status-Marker: E Entwurf → F Final → A Aktualisiert (nur „lebende" Artefakte: A2, A11, A13) - G1 - = Gate fordert dieses Artefakt (Gate öffnet nur, wenn es in der Akte liegt). G1: A2·A3·A4 · G2: A6·A7 · G3: A6·A7·A2 → A8 - - diff --git a/04_Tablet-Quiz/README.md b/04_Tablet-Quiz/README.md index 4a7170d..228dd27 100644 --- a/04_Tablet-Quiz/README.md +++ b/04_Tablet-Quiz/README.md @@ -3,10 +3,13 @@ **Status:** App lauffähig (PWA) · Deploy vorbereitet · **Typ:** eigenständiges Software-Teilprojekt des SLC-Workshops > **Umsetzungsstand:** Die App liegt unter [`app/`](app/) als statische **PWA** -> (offline-/kioskfähig). Sie führt den kompletten Flow durch (Action Card → -> Startpunkt → optionale Tour → Station: Diskussion/Quiz/Auflösung → Debrief mit -> **Markdown-/JSON-Export**). Inhalte (40 Stationen, 45 Quizfragen, 6 Use-Cases) -> sind derzeit in `app/index.html` eingebettet. **Deployment:** statisch, siehe +> (offline-/kioskfähig). Flow: **Karten-Raster** (Action Card ziehen) → **Change-Art +> bestimmen** (mit Legende, „nochmal versuchen" bis richtig) → **Phasen-Einstieg** +> (Lebenszyklus-Phase anklicken) → **Stationen** (Handeln am Brett → Auflösung; Gates als Entscheidung) → +> **Debrief** mit **Markdown-/JSON-Export**. Inhalte (Stationen, Quizfragen, Use-Cases) +> sind derzeit in `app/index.html` eingebettet. Die **finalen Action-Card-Grafiken** +> (Freiburg-digital-Layout) liegen in `app/cards/` (`s-c.png`, **24** = 6 Services × 4 Change-Arten; Major/Normal/Standard/Emergency). +> **Deployment:** statisch, siehe > [`app/DEPLOY.md`](app/DEPLOY.md). **Lokal testen:** `python -m http.server 8099 > --directory 04_Tablet-Quiz/app` (oder Preview-Config `.claude/launch.json`). @@ -59,16 +62,22 @@ steht, sondern in der App liegt. ## 4. Ablauf (UI-Flow) ``` -[Start] → Szenario wählen (= Action Card) - → App führt zur aktuellen Station (linearer Lifecycle, Fortschritt sichtbar) - → Station: - → Gruppe diskutiert am Board anhand der Kurzbezeichnung (App noch zu) - → Quiz (vermittelnd): Frage(n) → Gruppentipp → "Auflösen" → richtig/falsch - → ausführliche Auflösung der Station (Erklärung + RACI + Artefakt) - → Gruppe reflektiert; optional "war unklar" markieren - → "Nächste Station" - → an Gates: Gate-Frage + Rollen-Check - → [Ende] → Debrief-Export (unklare Aktivitäten, Quote, Pfad) +[1] Action Card ziehen → Raster aller Karten-Grafiken, eine antippen +[2] Change-Art bestimmen → 4 Change-Arten + Legende; falsch = "nochmal", richtig = weiter +[3] Erfolgreiche Kategorisierung → kurze Bestätigung + Warum +[4] Einstieg finden → Lebenszyklus groß: Phase anklicken (falsch = "nochmal") +[5] Los geht's → App nennt Start-Station + Begründung + → App führt ab Start-Station durch die Stationen (Fortschritt sichtbar) + → Aktivitäts-Station (schrittweiser Mikro-Ablauf, 4 Fragen je einzeln + Auflösung): + → (1) Was steckt hinter der Überschrift? (2) Beteiligte Rollen → Figuren auf die Puck-Mulden + → (3) RACI → Figuren ins Aktiv-Feld (R/A/C/I), mit RACI-Legende + → (4) Artefakt als Choice → kommt in die digitale Service-Akte (Panel "📁 Akte") + → Abschluss-Screen ("✓ Aktivität abgeschlossen"; an Phasengrenzen 🎉-Feedback) → "Nächste Station" + → Gate-Station: App prüft die geforderten Artefakte (fehlen sie → Entscheidung gesperrt) + Pflicht-Figuren + → Entscheidung wählen (Go/Auflagen/Zurück/Ablehnung bzw. Entwicklung/Konfiguration) + → Konsequenz + Verzweigung (Konfiguration überspringt den Build; echte Rückschleifen; + reicht die SOR-Hoheit nicht → Demand via DPM ans Mission Board) + → [Ende] → Debrief-Export (bearbeitete Stationen, unklare, Pfad) ``` ## 5. Funktionsumfang (MVP) diff --git a/04_Tablet-Quiz/app/DEPLOY.md b/04_Tablet-Quiz/app/DEPLOY.md index 8fe2f1b..6c5bd72 100644 --- a/04_Tablet-Quiz/app/DEPLOY.md +++ b/04_Tablet-Quiz/app/DEPLOY.md @@ -1,7 +1,14 @@ # Deployment — SLC-Workshop Companion (App) **Auftrag für die Server-Claude / Ops:** Diese App **statisch** ausliefern. Kein -Build-Schritt, kein Backend, keine Secrets, keine Datenbank. +Build-Schritt, keine Secrets, keine Datenbank. + +> **Neu (v0.10): kleiner Feedback-Endpoint.** Die App sammelt jetzt Workshop-Feedback +> (Phasen + Prüfschritte) und **speichert es auf dem Server** zur späteren Auswertung. +> Dafür braucht es **einen** schlanken POST-Sammelpunkt (Flat-File, **keine Datenbank**). +> Referenz liegt bei: [`feedback.php`](feedback.php). Ist der Endpoint (noch) nicht +> aktiv, geht **nichts verloren**: die App hält das Feedback lokal vor (Retry-Queue) +> und der Header-Button **„⇩ Feedback"** exportiert es als Backup-Datei. ## Was das ist - Eine **statische Single-Page-PWA**. Alle Inhalte (Stationen, Quiz, Use-Cases) @@ -11,6 +18,7 @@ Build-Schritt, kein Backend, keine Secrets, keine Datenbank. - `manifest.webmanifest` — PWA-Manifest - `sw.js` — Service Worker (Offline-Cache der App-Shell) - `icon.svg` — App-Icon + - `feedback.php` — **optionaler** Feedback-Sammelpunkt (Flat-File, JSON Lines) ## Ziel Den Ordner `04_Tablet-Quiz/app/` als **statisches Web-Root** über den vorhandenen @@ -47,11 +55,61 @@ slc.example.intern { } ``` +## Feedback-Endpoint (empfohlen — für die Auswertung) + +Die App schickt jedes gespeicherte Feedback per `POST` als JSON an den im +`` hinterlegten Pfad (Default: `feedback.php`, +gleiche Domain). Der Service Worker fasst POSTs nicht an — der Offline-Cache stört +also nicht. + +**Variante A — PHP (empfohlen, mit nginx der kürzeste Weg).** `feedback.php` braucht +**nur den PHP-Core** (json + Datei-I/O) — **keine** Extensions (kein php-mysql/curl/mbstring). + +Konkret auf Ubuntu 24.04 + nginx (PHP ist dort nicht vorinstalliert, aber 8.3 im Repo): + +```bash +sudo apt install php-fpm # zieht php8.3-fpm; Socket: /run/php/php8.3-fpm.sock +# Datenverzeichnis AUSSERHALB des Web-Roots anlegen und dem nginx/php-User geben: +sudo mkdir -p /srv/slc-feedback && sudo chown www-data:www-data /srv/slc-feedback +``` + +```nginx +# im server{}-Block der SLC-App: +# 1) NUR feedback.php als PHP ausführen (kein generelles .php — Hardening): +location = /feedback.php { + include fastcgi_params; + fastcgi_pass unix:/run/php/php8.3-fpm.sock; # Pfad ggf. anpassen + fastcgi_param SCRIPT_FILENAME $document_root/feedback.php; + fastcgi_param SLC_FEEDBACK_DIR /srv/slc-feedback; # Daten ausserhalb des Web-Roots +} +# 2) Datenverzeichnis im Web-Root (Fallback) niemals ausliefern: +location ^~ /feedback-data/ { deny all; return 404; } +``` + +Daten landen als **JSON Lines** in `$SLC_FEEDBACK_DIR/feedback.jsonl` (eine Zeile pro +Feedback) → für die Auswertung einlesen / zu CSV konvertieren. Ohne gesetzte +`SLC_FEEDBACK_DIR` schreibt das Skript nach `./feedback-data/` (per `.gitignore` +ausgenommen, von nginx via Regel 2 nicht ausgeliefert). + +> **Verifikation:** `curl https:///feedback.php` → `{"ok":true,...}`. Nach einem +> gespeicherten Feedback wächst `feedback.jsonl` um eine Zeile. + +**Variante B — kein PHP verfügbar.** Endpoint auf einen beliebigen JSON-POST-Empfänger +zeigen lassen (z. B. ein kleines Node-/Worker-Skript, das den Body an eine Datei +anhängt) und im `` dessen URL eintragen. + +**Variante C — gar kein Server-Save.** Auch ohne Endpoint funktioniert alles: das +Feedback bleibt in der Retry-Queue und kann über den Header-Button **„⇩ Feedback"** +als JSON-Datei exportiert werden. + ## Verifikation nach dem Deploy -1. URL öffnen → Startbildschirm „SLC Companion · Schritt 1 · Action Card". +1. URL öffnen → Startbildschirm „SLC Companion". 2. DevTools → Application → **Service Workers**: `sw.js` ist *activated*. 3. Flugmodus/Offline → Seite neu laden → App lädt weiterhin (Offline-Cache). -4. Einen Durchlauf spielen → „Debrief" → **↓ Markdown / ↓ JSON** lädt eine Datei. +4. Einen Major-Durchlauf spielen, an einem Gate Feedback eintragen → **„💾 Feedback + speichern"**. Bei aktivem Endpoint erscheint kein Fehler in der Konsole; in + `feedback-data/feedback.jsonl` taucht eine neue Zeile auf. Ohne Endpoint: Header + **„⇩ Feedback"** lädt die Backup-Datei. ## Updates - Bei neuem Stand: `git pull`. Wenn sich App-Assets geändert haben, in `sw.js` diff --git a/04_Tablet-Quiz/app/cards/s0-c0.png b/04_Tablet-Quiz/app/cards/s0-c0.png new file mode 100644 index 0000000..1323b7b Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s0-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s0-c1.png b/04_Tablet-Quiz/app/cards/s0-c1.png new file mode 100644 index 0000000..acf48c8 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s0-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s0-c2.png b/04_Tablet-Quiz/app/cards/s0-c2.png new file mode 100644 index 0000000..178c14f Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s0-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s0-c3.png b/04_Tablet-Quiz/app/cards/s0-c3.png new file mode 100644 index 0000000..5b083f4 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s0-c3.png differ diff --git a/04_Tablet-Quiz/app/cards/s1-c0.png b/04_Tablet-Quiz/app/cards/s1-c0.png new file mode 100644 index 0000000..805b992 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s1-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s1-c1.png b/04_Tablet-Quiz/app/cards/s1-c1.png new file mode 100644 index 0000000..f1bf064 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s1-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s1-c2.png b/04_Tablet-Quiz/app/cards/s1-c2.png new file mode 100644 index 0000000..686062f Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s1-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s1-c3.png b/04_Tablet-Quiz/app/cards/s1-c3.png new file mode 100644 index 0000000..25f787c Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s1-c3.png differ diff --git a/04_Tablet-Quiz/app/cards/s2-c0.png b/04_Tablet-Quiz/app/cards/s2-c0.png new file mode 100644 index 0000000..47fd6fa Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s2-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s2-c1.png b/04_Tablet-Quiz/app/cards/s2-c1.png new file mode 100644 index 0000000..7815cc5 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s2-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s2-c2.png b/04_Tablet-Quiz/app/cards/s2-c2.png new file mode 100644 index 0000000..8b31800 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s2-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s2-c3.png b/04_Tablet-Quiz/app/cards/s2-c3.png new file mode 100644 index 0000000..29ea579 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s2-c3.png differ diff --git a/04_Tablet-Quiz/app/cards/s3-c0.png b/04_Tablet-Quiz/app/cards/s3-c0.png new file mode 100644 index 0000000..5e5bf03 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s3-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s3-c1.png b/04_Tablet-Quiz/app/cards/s3-c1.png new file mode 100644 index 0000000..7de8777 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s3-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s3-c2.png b/04_Tablet-Quiz/app/cards/s3-c2.png new file mode 100644 index 0000000..3a8bf58 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s3-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s3-c3.png b/04_Tablet-Quiz/app/cards/s3-c3.png new file mode 100644 index 0000000..73599c3 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s3-c3.png differ diff --git a/04_Tablet-Quiz/app/cards/s4-c0.png b/04_Tablet-Quiz/app/cards/s4-c0.png new file mode 100644 index 0000000..3bd61da Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s4-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s4-c1.png b/04_Tablet-Quiz/app/cards/s4-c1.png new file mode 100644 index 0000000..ac2a0fb Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s4-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s4-c2.png b/04_Tablet-Quiz/app/cards/s4-c2.png new file mode 100644 index 0000000..150401f Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s4-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s4-c3.png b/04_Tablet-Quiz/app/cards/s4-c3.png new file mode 100644 index 0000000..22582c4 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s4-c3.png differ diff --git a/04_Tablet-Quiz/app/cards/s5-c0.png b/04_Tablet-Quiz/app/cards/s5-c0.png new file mode 100644 index 0000000..bcb3a77 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s5-c0.png differ diff --git a/04_Tablet-Quiz/app/cards/s5-c1.png b/04_Tablet-Quiz/app/cards/s5-c1.png new file mode 100644 index 0000000..4904766 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s5-c1.png differ diff --git a/04_Tablet-Quiz/app/cards/s5-c2.png b/04_Tablet-Quiz/app/cards/s5-c2.png new file mode 100644 index 0000000..a4cd916 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s5-c2.png differ diff --git a/04_Tablet-Quiz/app/cards/s5-c3.png b/04_Tablet-Quiz/app/cards/s5-c3.png new file mode 100644 index 0000000..d7ab736 Binary files /dev/null and b/04_Tablet-Quiz/app/cards/s5-c3.png differ diff --git a/04_Tablet-Quiz/app/feedback.php b/04_Tablet-Quiz/app/feedback.php new file mode 100644 index 0000000..0f9fe85 --- /dev/null +++ b/04_Tablet-Quiz/app/feedback.php @@ -0,0 +1,61 @@ + true, 'service' => 'slc-feedback', 'hint' => 'POST JSON to store feedback']); + exit; +} + +$raw = file_get_contents('php://input'); +if ($raw === false || strlen($raw) === 0 || strlen($raw) > 65536) { + http_response_code(400); + echo json_encode(['ok' => false, 'error' => 'empty or oversized body']); + exit; +} + +$data = json_decode($raw, true); +if (!is_array($data)) { + http_response_code(400); + echo json_encode(['ok' => false, 'error' => 'invalid json']); + exit; +} + +// Serverseitigen Eingangszeitstempel + Roh-Metadaten ergänzen (nicht überschreibend). +$data['_received'] = gmdate('c'); +$data['_ip'] = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; + +// Datenverzeichnis: per Env SLC_FEEDBACK_DIR überschreibbar (empfohlen: AUSSERHALB +// des Web-Roots, dann ist die Datei nicht öffentlich abrufbar und git pull bleibt sauber). +// Default: ./feedback-data neben diesem Skript (ist per .gitignore aus der Versionierung). +$dir = getenv('SLC_FEEDBACK_DIR') ?: (__DIR__ . '/feedback-data'); +$file = rtrim($dir, '/') . '/feedback.jsonl'; +if (!is_dir($dir)) { @mkdir($dir, 0775, true); } + +$line = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "\n"; +$fp = @fopen($file, 'ab'); +if ($fp === false) { + http_response_code(500); + echo json_encode(['ok' => false, 'error' => 'cannot open data file (Schreibrechte prüfen)']); + exit; +} +flock($fp, LOCK_EX); +fwrite($fp, $line); +flock($fp, LOCK_UN); +fclose($fp); + +echo json_encode(['ok' => true]); diff --git a/04_Tablet-Quiz/app/index.html b/04_Tablet-Quiz/app/index.html index 94058c5..5567294 100644 --- a/04_Tablet-Quiz/app/index.html +++ b/04_Tablet-Quiz/app/index.html @@ -4,18 +4,20 @@ SLC-Workshop — Companion-App - - + + + +

-
SLC Companion
- v0.5 +
SLC Workshop Companion
+ v0.10
+ + + + + -
+
+
+
- - - - +