commit 2a34df16f42bf5f8e47ba664f61037eeffb8b16b Author: github-classroom[bot] <66690702+github-classroom[bot]@users.noreply.github.com> Date: Thu Apr 28 08:39:46 2022 +0000 Initial commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..51220d5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,29 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Default formatting Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 + +# do not trim trailing whitespace in markdown files +[*.md] +trim_trailing_whitespace = false + +# explicit 4 space indentation +[*.py] +indent_size = 4 + +# explicit 2 space indentation +[*.{json, yml, yaml, xml, ddl, sql}] +indent_size = 2 + +# windows specific files +[*.{bat, cmd}] +end_of_line = crlf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..022b841 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# These are explicitly windows files and should use crlf +*.bat text eol=crlf diff --git a/.github/classroom/autograding.json b/.github/classroom/autograding.json new file mode 100644 index 0000000..7271258 --- /dev/null +++ b/.github/classroom/autograding.json @@ -0,0 +1,14 @@ +{ + "tests": [ + { + "name": "Run PA unit tests", + "setup": "", + "run": "gradle :PictureDB:test --info", + "input": "", + "output": "", + "comparison": "included", + "timeout": 10, + "points": 2 + } + ] +} diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml new file mode 100644 index 0000000..06a5358 --- /dev/null +++ b/.github/workflows/classroom.yml @@ -0,0 +1,15 @@ +name: GitHub Classroom Workflow + +on: [push] + +jobs: + build: + name: Autograding + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: '17' + - uses: education/autograding@v1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e62b0b --- /dev/null +++ b/.gitignore @@ -0,0 +1,77 @@ +# ignore files generated in exercises +copy-*-rmz450.jpg +copy-*-rmz450-spec.txt +CharSetEvaluation_ASCII.txt +CharSetEvaluation_Default.txt +CharSetEvaluation_WIN1552.txt + +# InelliJ IDEA files +*.iml +*.ipr +*.ids +*.iws +.idea/ + +# Eclipse files +.project +.metadata +.classpath +.settings/ +.loadpath +bin/ + +# Netbeans +nbactions.xml + +# Visual Studio Code +.vscode + +# Maven +target/ + +# gradle files +.gradle +build/ + +# ignore logfiles +*.log* + +# OS dependant files +.DS_Store +.Spotlight-V100 +.Trashes +Thumbs.db +Desktop.ini +*~ +# Thumbnails +._* + +# compiled files +*.com +*.class +*.dll +*.exe +*.o +*.so + +# packages +*.7z +#*.jar +*.rar +*.zip +*.gz +*.bzip +*.xz +*.lzma +*~$* + +# package managment formats +*.dmg +*.xpi +*.gem +*.egg +*.deb +*.rpm + +# databases +*.sqlite diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..0127671 --- /dev/null +++ b/README.adoc @@ -0,0 +1,266 @@ +:source-highlighter: coderay +:icons: font +:experimental: +:!sectnums: +:imagesdir: ./images/ +:handout: ./code/ + +:logo: IT.PROG2 - +ifdef::backend-html5[] +:logo: image:PROG2-300x300.png[IT.PROG2,100,100,role=right,fit=none,position=top right] +endif::[] +ifdef::backend-pdf[] +:logo: +endif::[] +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] + += {logo} Praktikum Input / Output + +== Einleitung + +Ziele dieses Praktikums sind: + +* Sie üben den Umgang mit Dateien und Dateiattributen. +* Sie verstehen Zeichensätze und können Sie anwenden. +* Sie beherrschen den Unterschied zwischen Byte- und Character-orientierten Streams. +* Sie können Inhalte aus Dateien lesen und schreiben. +* Sie können das Java Logger Framework anwenden. + +=== Voraussetzungen +* Vorlesung Input/Output 1 und 2 + +=== Tooling + +* Installiertes JDK 17+ +* Gradle 7.4+ + +=== Struktur + +Ein Praktikum kann verschiedene Arten von Aufgaben enthalten, die wie folgt gekennzeichnet sind: + +[TU] – Theoretische Übung:: +Dient der Repetition bzw. Vertiefung des Stoffes aus der Vorlesung und als Vorbereitung für die nachfolgenden Übungen. + +[PU] – Praktische Übung:: +Übungsaufgaben zur praktischen Vertiefung von Teilaspekten des behandelten Themas. + +[PA] – Pflichtaufgabe:: +Übergreifende Aufgabe zum Abschluss. Das Lösen dieser Aufgaben ist Pflicht. Sie muss bis zum definierten Zeitpunkt abgegeben werden, wird bewertet und ist Teil der Vornote. + +=== Zeit und Bewertung + +Für dieses Praktikum stehen 2 Wochen in den Praktikumslektionen und im Selbststudium zur Verfügung. + +Je nach Kenntniss- und Erfahrungsstufe benötigen Sie mehr oder weniger Zeit. +Nutzen Sie die Gelegenheit den Stoff zu vertiefen, Auszuprobieren, Fragen zu stellen und Lösungen zu diskutieren (Intensive-Track). + +Falls Sie das Thema schon beherrschen, müssen Sie nur die Pflichtaufgaben lösen und bis zum angegebenen Zeitpunkt abgeben (Fast-Track). + +Die Pflichtaufgabe wird mit 0 bis 2 Punkten bewertet (siehe _Leistungsnachweise_ auf Moodle). + +=== Referenzen + +* link:{handout}[Praktikumsverzeichnis – Quellcode, Projektstruktur] + +:sectnums: +:sectnumlevels: 2 +// Beginn des Aufgabenblocks + +== Dateien und Attribute [PU] + +Im link:{handout}[Praktikumsverzeichnis] finden Sie das Projekt `FileAttributes`. +Hier soll das Lesen von Dateien und Dateiattributen geübt werden. + +Der Klasse `DirList` kann beim Starten ein Dateipfad übergeben werden. +Falls der übergebene Pfad eine Datei ist, sollen die Attribute der Datei in einer Zeile ausgegeben werden. +Falls es sich um ein Verzeichnis handelt, sollen die Attribute aller Dateien dieses Verzeichnisses zeilenweise ausgegeben werden. + +Beispiel: +---- +> java ch.zhaw.prog2.io.DirList . +frw-h 2020-02-24 16:49:57 630 .editorconfig +drwx- 2020-02-24 16:49:57 96 gradle +frw-- 2020-04-23 06:53:39 6392 README.adoc +frwx- 2020-02-24 16:49:57 5764 gradlew +... +---- + +Im ersten Block haben die Spalten folgende Bedeutung: + +* Typ (File: `f` oder Directory: `d`), +* Leserecht (Read: `r` oder `-` falls nicht) +* Schreibrecht (Write: `w` oder `-` falls nicht) +* Ausführrecht (Execute: `x` oder `-` falls nicht) +* Versteckte Datei (Hidden: `h` oder `-` falls nicht) + +Die nachfolgenden Blöcke enthalten: + +* Datum und Uhrzeit der letzten Änderung +* Grösse der Datei in Bytes +* Name der Datei + +Falls die übergebene Datei nicht existiert, soll eine Fehlermeldung ausgegeben werden. + +Was bedeuteten die Attribute Lesen (`r`), Schreiben (`w`) und Ausführen (`x`) bei einem Verzeichnis? + + +== Verstehen von Zeichensätzen [PU] +In der Vorlesung haben Sie gelernt, dass Java Unicode zum Speichern von Zeichen (Character) verwendet. +Nun ist Unicode aber nicht der einzige Zeichensatz und Java unterstützt durchaus Alternativen zum Lesen und Schreiben. +Welche Zeichensätze auf einem System konkret verwendet werden hängt von der Konfiguration des Betriebssystems und der JVM ab. + +Im link:{handout}[Praktikumsverzeichnis] finden Sie das Projekt `Charsets`. + +[loweralpha] +. Ergänzen Sie in der Klasse `UnderstandingCharsets` den Code, um alle von der JVM unterstützten Zeichensätze auf der Konsole (`System.out`), sowie den für Ihr System definierten Standardzeichensatz auszugeben. + +https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/charset/Charset.html + +. Ergänzen Sie die Klasse so, dass sie einzelne Zeichen (also Zeichen für Zeichen) im Standardzeichensatz von der Konsole einliest und in zwei Dateien schreibt einmal im Standardzeichensatz und einmal im Zeichensatz `US-ASCII`. +* Die Eingabe des Zeichens `q` soll das Program ordentlich beenden. +* Die Dateien sollen `CharSetEvaluation_Default.txt` und `CharSetEvaluation_ASCII.txt` genannt werden und werden entweder erzeugt oder, falls sie bereits existieren, geöffnet und der Inhalt überschrieben. +* Testen Sie Ihr Program mit den folgenden Zeichen: a B c d € f ü _ q +* Öffnen Sie die Textdateien nach Ausführung des Programs mit einem Texteditor +und erklären Sie das Ergebnis. +* Öffnen Sie die Dateien anschliessend mit einem HEX-Viewer/Editor und vergleichen Sie. + +[NOTE] +==== +Mit einem HEX-Viewer/Editor können die Bytes einer beliebigen Datei als Folge von Hexadezimalzahlen dargestellt und editiert werden. +In der Regel könnend die Bytefolgen auch in Binär, Oktal oder als Zeichenkodierung angezeigt werden. +Für die meisten IDE gibt es Hex-Viewer/Editoren als Plugins (z.B. BinEd). +Alternativ können Sie diese auch unabhängig installieren +(https://en.wikipedia.org/wiki/Comparison_of_hex_editors) +==== + + +== Byte- vs. Zeichenorientierte Streams [PU] +Im Unterricht haben Sie zwei Typen von IO-Streams kennengelernt; Byte- und Zeichenorientierte-Streams. +In dieser Übung soll deren Verwendung geübt und analysiert werden was passiert, wenn der falsche Typ verwendet wird. + +Im link:{handout}[Praktikumsverzeichnis] finden Sie das Projekt `ByteCharStream`, +welches unter anderem das Verzeichnis `files` mit den Dateien `rmz450.jpg` und `rmz450-spec.txt` enthält. +Ergänzen Sie die Klasse `FileCopy` mit folgender Funktionalität. + +[loweralpha] +. Verzeichnis-Struktur verifizieren: Methode `verifySourceDir()` +* Das Quell-Verzeichnis soll auf Korrektheit überprüft werden. +* Korrekt bedeutet, dass das Verzeichnis existiert und ausser zwei Dateien mit den Namen +`rmz450.jpg` und `rmz450-spec.txt` nichts weiter enthält. +* Im Fehlerfall werden Exceptions geworfen. + +. Dateien kopieren: Methode `copyFiles()` +- Jede Datei im Quell-Verzeichnis soll zweimal kopiert werden, einmal zeichen- und einmal byte-orientiert. +- Dazu soll die jeweilige Datei geöffnet und Element für Element (d.h. byte- bzw. charakterweise) von der Originaldatei gelesen und in die Zieldatei geschrieben werden. +- Die Kopien sollen so benannt werden, dass aus dem Dateinamen hervorgeht, mit welcher Methode sie erstellt wurde. + +. Öffnen Sie die Kopien anschliessend mit einem entsprechenden Programm und erklären Sie die entstandenen Effekte. + +. Öffnen Sie die Kopien anschliessend mit einem HEX-Viewer/Editor und erklären Sie die Gründe für die Effekte. + + +== Picture File Datasource [PA] +In Programmen will man oft die Anwendungslogik von der Datenhaltung (Persistenzschicht) abstrahieren, +in dem ein Technologie-unabhängiges Interface zum Schreiben und Lesen der Daten verwendet wird. +Dies ermöglicht den Wechsel zwischen verschiedenen Speichertechnologien (Datenbank, Dateien, Netzwerkserver, ...), ohne dass die Anwendungslogik angepasst werden muss. + +In der Übung `PictureDB` verwenden wir ein Interface `PictureDatasource` zum Speichern und Lesen von Bildinformationen (Klasse `Picture`). +`PictureDatasource` enthält Methoden, um auf eine Datenquelle zuzugreifen, welche Informationen zu Bildern speichert. + +Vereinfacht sieht das Interface wie folgt aus: +[source, Java] +---- +public interface PictureDatasource { + // inherited from GenericDatasource + public void insert(Picture picture); + public void update(Picture picture) throws RecordNotFoundException; + public void delete(Picture picture) throws RecordNotFoundException; + public int count(); + public Picture findById(int id); + public Collection findAll(); + + // extended finder method for looking up picture records + public CollectionfindByPosition(float longitude, float latitude, float deviation); +} +---- +[NOTE] +==== +In Realität erweitert `PictureDataSource` das generische Interface `GenericDatasource`, welches die Methoden enthält, die für alle Datenobjekttypen gleich sind, und definiert eine zusätzliche Picture spezifischen finder-Methode `findByPosition`. +==== +Anhand der Methoden ist nicht ersichtlich, wie diese Informationen gespeichert werden. +Es können somit unterschiedliche Implementationen für unterschiedliche Datenquellen implementiert werden (z.B. diverse Datenbanktypen SQL/No-SQL, Dateien, ...). + +Ziel dieser Aufgabe ist es die Klasse `FilePictureDatasource` umzusetzen, welche Datensätze des Typs `Picture` in einer Datei verwaltet. + +In der Datendatei (`db/picture-data.csv`) sollen die Daten der `Picture`-Objekte im _Character Separated Value_ Format (CSV) gespeichert werden. + +Das heisst jeder Datensatz wird in einer Zeile gespeichert. Die Felder werden mit einem Trennzeichen (`DELIMITER`), in unserem Fall der Strichpunkt (`;`) getrennt. +Die Reihenfolge der Felder wird durch den bestehenden Inhalt der Datei vorgegeben. +---- +id;date;longitude;latitude;title;url +---- + +Damit die Datensätze eindeutig identifiziert werden können, muss jeder Eintrag eine eindeutige Identifikation (`id`) besitzen, die sich, sobald gespeichert, nicht mehr ändern darf. +Die `id` wird beim ersten Speichern in die Datasource von dieser bestimmt und im Datenobjekt gesetzt. +Da jedes Datenobjekt diese Anforderung hat, wurde dies in der abstrakten Klasse `Record` implementiert, von welcher `Picture` abgeleitet ist. +[NOTE] +==== +`Record` hat nichts mit Java-Records zu tun. +Es ist eine normale abstrakte Klasse, ist nicht final, d.h. kann / soll erweitert werden, und die Klassen benötigen einen Default-Konstruktor. +==== + + +[loweralpha] +. Studieren Sie abgegebenen generischen und abstrakten Klassen, sowie die Klasse `Picture`, die bereits komplett implementiert ist. +. Überlegen Sie sich, wie die einzelnen Operationen (insert, update, delete, ...) umgesetzt werden können, wenn sie mit zeilenweisen Records in einer Textdatei arbeiten: +* Wie kann bei einem Insert die nächste noch nicht verwendete `id` bestimmt werden? + + Bedenken Sie: +** Es kann sein das von verschiedenen Stellen auf die Datei zugegriffen wird. + Sie können sich also nicht auf eine statische Variable verlassen. +** Es können und dürfen beim Löschen von Records Lücken bei den id's entstehen +** Die Zeilen müssen nicht geordnet sein, d.h. es muss nicht sein, dass der Record mit der grössten id am Ende steht. +** Die Anzahl Zeilen ist kein guter Indikator, da wie gesagt die ids nicht immer fortlaufend sein müssen (d.h. Lücken von gelöschten Records haben kann). +* Wie aktualisieren Sie eine einzelne Zeile bei einem Update? +* Wie entfernen Sie eine ganze Zeile bei einem Delete? ++ +[IMPORTANT] +==== +Die Lösung muss mit einer minimalen, deterministischen Menge Speicher auskommen, d.h. Sie können nicht einfach die ganze Datei in den Speicher laden, da die Datei sehr gross sein könnte. +==== ++ +[TIP] +==== +Da sie nicht gleichzeitig in der gleichen Datei lesen und schreiben können, hilft es gegebenenfalls mit zwei Dateien zu arbeiten (lesen -> schreiben). + +Die Klasse `java.nio.file.Files` bietet statische Hilfsmethoden zum Erstellen temporärer Dateien. +==== + +. Implementieren sie die Methoden der Klasse `FilePictureDatasource` +* Nutzen sie die vorhandenen Konstanten und Hilfsobjekte (z.B, Dateformat) +* Beachten Sie die JavaDoc-Beschreibung der Methoden. Die Signatur der Methoden soll nicht verändert werden. +* Testen Sie ihre Implementation mit Hilfe der Klasse `PictureImport`, in welcher Bildinformationen von der Konsole abgefragt, als Picture-Record gespeichert und wieder ausgelesen werden. +* Stellen Sie sicher, dass die Unit-Tests `FilePictureDataSourceTest` erfolgreich ausgeführt werden. +. Ergänzen Sie die Klasse `FilePictureDatasource` mit Logger-Meldungen. +* Die Initialisierung der Logger erfolgt über die Klasse `LogConfiguration`. + Analysieren Sie die Konfiguration. +** Welche Konfigurationsdatei wird geladen? +** Welche Log-Handler werden erzeugt und welche Meldungen wo ausgegeben? +** Wie kann das Format der Log-Meldungen angepasst werden? +** Wie können Sie die Konfiguration für die folgenden Anforderungen anpassen? +* Verwenden Sie verschiedene Level von Log-Meldungen (INFO, WARNING, SEVERE, FINE,...). + Zum Beispiel: +** Statusmeldungen → INFO (Record saved) +** Fehlermeldungen → WARNING oder SEVERE (Failed to save record) +** Debugmeldungen → FINE, FINER (New id=..., File opened/closed/copied/deleted) +* Passen Sie die Logger-Konfiguration an +** Auf der Konsole sollen Meldungen des Levels INFO und höher ausgegeben werden. +** In eine zusätzliche Log-Datei `picturedb.log` sollen alle Meldungen (inkl. FINE, FINER) zeilenweise ausgegeben werden. + +// Ende des Aufgabenblocks +:!sectnums: +== Abschluss + +Stellen Sie sicher, dass die Pflichtaufgaben mittels `gradle run` gestartet werden können und die Tests mit `gradle test` erfolgreich laufen und pushen Sie die Lösung vor der Deadline in Ihr Abgaberepository. diff --git a/code/ByteCharStream/build.gradle b/code/ByteCharStream/build.gradle new file mode 100644 index 0000000..6db4a29 --- /dev/null +++ b/code/ByteCharStream/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 ByteCharStream' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.FileCopy' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/code/ByteCharStream/files/rmz450-spec.txt b/code/ByteCharStream/files/rmz450-spec.txt new file mode 100644 index 0000000..a759488 --- /dev/null +++ b/code/ByteCharStream/files/rmz450-spec.txt @@ -0,0 +1,30 @@ +ENGINE +Engine 449cc, 4-stroke, liquid-cooled, single cylinder, DOHC +Bore Stroke 96.0 x 62.1 mm (3.78 x 2.4 in) +Compression Ratio 12.5:1 +Fuel System Fuel Injection +Starter Primary kick +Lubrication Semi-dry sump +DRIVE TRAIN +Transmission 5-speed constant mesh +Clutch Wet multi-plate type, manual release +Final Drive Chain, DID520MXV4, 114 links +CHASSIS +Suspension Front Inverted telescopic, air spring, oil damped +Suspension Rear Link type, coil spring, oil damped +Brakes Front Disc brake, single rotor +Brakes Rear Disc brake, single rotor +Tires Front 80/100-21 51M, tube type +Tires Rear 110/90-19 62M, tube type +Fuel Tank Capacity 6.2 L (1.6 US gallons) +Color Champion Yellow No.2 / Solid Black +ELECTRICAL +Ignition Electronic Ignition (CDI) +DIMENSIONS +Overall Length 2190 mm (86.2 in) +Overall Width 830 mm (32.7 in) +Overall Height 1270 mm (50.0 in) +Wheelbase 1495 mm (58.9 in) +Ground Clearance 325 mm (12.8 in) +Seat Height 955 mm (37.6 in) +Curb Weight 112 kg (247 lbs) \ No newline at end of file diff --git a/code/ByteCharStream/files/rmz450.jpg b/code/ByteCharStream/files/rmz450.jpg new file mode 100644 index 0000000..951aa25 Binary files /dev/null and b/code/ByteCharStream/files/rmz450.jpg differ diff --git a/code/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java b/code/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java new file mode 100644 index 0000000..57e0b18 --- /dev/null +++ b/code/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java @@ -0,0 +1,71 @@ +package ch.zhaw.prog2.io; + +import java.io.*; +import java.util.*; + + +public class FileCopy { + + public static void main(String[] args) throws IOException { + + // get the filename from the arguments. By default, use 'files'-directory in current working directory. + String sourceDirPath = args.length >= 1 ? args[0] : "./files"; + File sourceDir = new File(sourceDirPath); + + // Part a – Verify the directory structure + // Implement the method 'verifySourceDir()' + System.out.format("Verifying Source Directory: %s%n", sourceDirPath); + try { + verifySourceDir(sourceDir); + } catch (FileNotFoundException error) { + System.err.format("Directory %s does not comply with predefined structure: %s%n", sourceDir.getPath(), error.getMessage()); + System.err.println("Terminating programm!"); + System.exit(1); + } + System.out.printf("Source Directory verified successfully."); + + + // Part b – Copy the files byte resp. char wise. + // Implement the method 'verifySourceDir()' + System.out.println("Initiating file copies."); + try { + copyFiles(sourceDir); + } catch (IOException error) { + System.err.format("Error creating file copies: %s%n", error.getMessage()); + System.err.println("Terminating programm!"); + System.exit(2); + } + System.out.println("Files copied successfully."); + } + + /** + * Part a – directory structure + * + * Verify the directory structure for correctness. + * Correct means, that the directory exists and beside the two files rmz450.jpg and rmz450-spec.txt does not contain + * any other files or directories. + * + * @param sourceDir File source directory to verify it contains the correct structure + * @throws FileNotFoundException if the source directory or required file are missing + * @throws InvalidObjectException if the source directory contains invalid files or directories. + */ + private static void verifySourceDir(File sourceDir) throws FileNotFoundException, InvalidObjectException { + + } + + + /** + * Teilaufgabe b – Kopieren von Dateien + * + * Copies each file of the source directory twice, once character-oriented and once byte-oriented. + * Source and target files should be opened and copied byte by byte respectively char by char. + * The target files should be named, so the type of copy can be identified. + * + * @param sourceDir File representing the source directory containing the files to copy + * @throws IOException if an error is happening while copying the files + */ + private static void copyFiles(File sourceDir) throws IOException { + + + } +} diff --git a/code/Charsets/build.gradle b/code/Charsets/build.gradle new file mode 100644 index 0000000..6a9ee2e --- /dev/null +++ b/code/Charsets/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 UnderstandingCharsets' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.UnderstandingCharsets' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/code/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java b/code/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java new file mode 100644 index 0000000..3eafe77 --- /dev/null +++ b/code/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java @@ -0,0 +1,48 @@ +package ch.zhaw.prog2.io; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + + +public class UnderstandingCharsets { + public static void main(String[] args) { + + + /* Teilaufgabe a + * In der Vorlesung haben Sie gelernt, dass Java-Klassen fuer Unicode entworfen wurden. + * Nun ist Unicode aber nicht der einzige Zeichensatz und Java unterstuetz durchaus Alternativen. + * Welche Zeichensaetze auf einem System konkret unterstuetzt werden haengt von der Konfiguration des Betriebssystems JVM ab. + * Schreiben Sie ein Programm, welches alle Unterstuetzten Zeichensaetze auf der Konsole (System.out) ausgibt, + * zusammen mit dem Standardzeichensatz. + * https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html + */ + + // ToDo: Print default character set + + + // Todo: Print all available character sets + + + + /* Ende Teilaufgabe a */ + + + /* Teilaufgabe b + * Ergänzen Sie die Klasse so, dass sie einzelne Zeichen (also Zeichen für Zeichen) im Standardzeichensatz + * von der Konsole einliest und in zwei Dateien schreibt einmal im Standardzeichensatz und einmal im + * Zeichensatz `US-ASCII`. + * Die Eingabe des Zeichens `q` soll das Program ordentlich beenden. + * Die Dateien sollen `CharSetEvaluation_Default.txt` und `CharSetEvaluation_ASCII.txt` genannt und + * werden entweder erzeugt oder, falls sie bereits existieren, geöffnet und der Inhalt überschrieben. + * Testen Sie Ihr Program mit den folgenden Zeichen: a B c d € f ü _ q + * Öffnen Sie die Textdateien nach Ausführung des Programs mit einem Texteditor und erklären Sie das Ergebnis. + * Öffnen Sie die Dateien anschliessend mit einem HEX-Editor und vergleichen Sie. + */ + + + + + } +} + diff --git a/code/FileAttributes/build.gradle b/code/FileAttributes/build.gradle new file mode 100644 index 0000000..c3d49f2 --- /dev/null +++ b/code/FileAttributes/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 FileAttributes' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.DirList' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/code/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java b/code/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java new file mode 100644 index 0000000..0cce4df --- /dev/null +++ b/code/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java @@ -0,0 +1,26 @@ +package ch.zhaw.prog2.io; + +import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +public class DirList { + private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + public static void main(String[] args) { + String pathName = args.length >= 1 ? args[0] : "."; + File file = new File(pathName); + // Write metadata of given file, resp. all of its files if it is a directory + // Whith each file on one line in the following format. + // - type of file ('d'=directory, 'f'=file) + // - readable 'r', '-' otherwise + // - writable 'w', '-' otherwise + // - executable 'x', '-' otherwise + // - hidden 'h', '-' otherwise + // - modified date in format 'yyyy-MM-dd HH:mm:ss' + // - length in bytes + // - name of the file + + } + +} diff --git a/code/PictureDB/build.gradle b/code/PictureDB/build.gradle new file mode 100644 index 0000000..aaa305c --- /dev/null +++ b/code/PictureDB/build.gradle @@ -0,0 +1,68 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 PictureDB' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + // Junit 5 dependencies + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.+' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.+' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.+' +} + +// Test task configuration +test { + // Use JUnit platform for unit tests + useJUnitPlatform() + // Output results of individual tests + testLogging { + events "PASSED", "SKIPPED", "FAILED" + } +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.picturedb.PictureImport' +} + +// Run task configuration +run { + // enable console input when running with gradle + standardInput = System.in + // set system property to load log configuration using class (takes precedence; if not set or fails, file is used) + systemProperty 'java.util.logging.config.class', 'ch.zhaw.prog2.io.picturedb.LogConfiguration' + // set system property to load log configuration from properties + systemProperty 'java.util.logging.config.file', 'log.properties' +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/code/PictureDB/db/picture-data.csv b/code/PictureDB/db/picture-data.csv new file mode 100644 index 0000000..2733f27 --- /dev/null +++ b/code/PictureDB/db/picture-data.csv @@ -0,0 +1,3 @@ +1;2014-03-17 14:30:05;2.324744;48.864506;Another Monkey;http://www.codemonkey.in/images/Code-Monkey.png +13;2014-04-01 02:17:33;77.598736;12.979842;Bête à coder;http://www2.craven.fr/blojsom/resources/default/codemonkey.jpg +14;2013-05-07 13:45:13;-71.098270;42.302583;Need a coder;http://blog.stackoverflow.com/wp-content/uploads/code_monkey_colour.jpg diff --git a/code/PictureDB/log.properties b/code/PictureDB/log.properties new file mode 100644 index 0000000..8bb7fdb --- /dev/null +++ b/code/PictureDB/log.properties @@ -0,0 +1,42 @@ +## Console handler configuration +java.util.logging.ConsoleHandler.level = ALL + +## File handler configuration +## see https://docs.oracle.com/en/java/javase/11/docs/api/java.logging/java/util/logging/FileHandler.html +java.util.logging.FileHandler.level = ALL +# %g = generation number, %u = unique number to resolve conflicts +java.util.logging.FileHandler.pattern = log-%g-%u.log +# use SimpleFormatter instead of default XMLFormatter +java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter +java.util.logging.FileHandler.encoding = UTF-8 +# max log file size in byte before switching to next generation (=10`kB); 0=unlimited +java.util.logging.FileHandler.limit = 10240 +# max number of generations (%g) before overwriting (5 -> 0..4) +java.util.logging.FileHandler.count=5 +java.util.logging.FileHandler.append=true + +## Configure format of log messages +# arguments see https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/SimpleFormatter.html +# formats see https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Formatter.html +# format "[date] [level] message exception" +java.util.logging.SimpleFormatter.format = [%1$tF %1$tT %1tZ] [%4$s] %5$s%6$s%n +# format "[date] [level] [logger] message exception" +#java.util.logging.SimpleFormatter.format = [%1$tF %1$tT %1tZ] [%4$-7s] [%3$s] %5$s%6$s%n +# format "[date] [level] [position in source] message exception" +#java.util.logging.SimpleFormatter.format = [%1$tF %1$tT %1tZ] [%4$-7s] [%2$s] %5$s%6$s%n + +## configure default log level (for all loggers, if not overwritten below) +.level = INFO + +## configure root logger "" +handlers = java.util.logging.ConsoleHandler +level = INFO + +## Application specific logger configuration +# loggers starting with "ch.zhaw.prog2.io.picturedb" -> use console and file handler +ch.zhaw.prog2.io.picturedb.handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler +# do not forward to parent handlers +ch.zhaw.prog2.io.picturedb.useParentHandlers = false +# Set log levels for specific packages/classes +ch.zhaw.prog2.io.picturedb.level = INFO +#ch.zhaw.prog2.io.picturedb.FilePictureDatasource.level = FINER diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Datasource.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Datasource.java new file mode 100644 index 0000000..ae7421b --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Datasource.java @@ -0,0 +1,67 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.util.Collection; + +/** + * Generic data source interface to persist items of type T extending {@link Record} + * What kind of persistence media is used, is defined by the concrete implementation. + * e.g. InMemory, Files, Database, ... + * The datatype T to be persisted, must extend {@link Record} which contains the id field to uniquely identify the record. + * + * @param data type to persist + */ +public interface Datasource { + /** + * Insert a new record to the data source. + * The id field of the record is ignored, and a new unique id has to be generated, which will be set in the record. + * This id is used to identify the record in the dataset by the other methods (i.e. find, update or delete methods) + * + * @param record of type T to insert into the data set. + */ + void insert(T record); + + /** + * Update the content of an existing record in the data set, which is identified by the unique identifier, + * with the new values from the given record object. + * If the identifier can not be found in the data set, an {@link RecordNotFoundException} is thrown. + * + * @param record to be updated in the dataset + * @throws RecordNotFoundException if the record is not existing + */ + void update(T record) throws RecordNotFoundException; + + /** + * Deletes the record, identified by the id of the given record from the data set. + * All other fields of the record are ignored. + * If the identifier can not be found in the data set, an {@link RecordNotFoundException} is thrown. + * + * @param record to be deleted + * @throws RecordNotFoundException if the record is not existing + */ + void delete(T record) throws RecordNotFoundException; + + /** + * Returns the number of records in the data set + * @return number of records + */ + long count(); + + /** + * Retrieves an instance of the record identified by the given id. + * If the record can not be found, null is returned. + * (better return type would be an {@link java.util.Optional} which is covered in part Functional Programming) + * An empty result is not an error. Therefore, we do not throw an exception. + * + * @param id of the record to be retrieved + * @return record of type T or null if not found + */ + T findById(long id); + + /** + * Retrieves all records of the data set. + * If the dataset is empty an empty collection is returned. + * + * @return collection of all records of the data set + */ + Collection findAll(); +} diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasource.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasource.java new file mode 100644 index 0000000..a3a9b90 --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasource.java @@ -0,0 +1,106 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * Implements the PictureDatasource Interface storing the data in + * Character Separated Values (CSV) format, where each line consists of a record + * whose fields are separated by the DELIMITER value ";" + * See example file: db/picture-data.csv + */ +public class FilePictureDatasource implements PictureDatasource { + // Charset to use for file encoding. + protected static final Charset CHARSET = StandardCharsets.UTF_8; + // Delimiter to separate record fields on a line + protected static final String DELIMITER = ";"; + // Date format to use for date specific record fields + protected static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; + + private final DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); + + /** + * Creates the FilePictureDatasource object with the given file path as datafile. + * Creates the file if it does not exist. + * Also creates an empty temp file for write operations. + * + * @param filepath of the file to use as database file. + * @throws IOException if accessing or creating the file fails + */ + public FilePictureDatasource(String filepath) throws IOException { + // ToDo: Implement + } + + + /** + * {@inheritDoc} + * + */ + @Override + public void insert(Picture picture) { + // ToDo: Implement + } + + /** + * {@inheritDoc} + * + */ + @Override + public void update(Picture picture) throws RecordNotFoundException { + // ToDo: Implement + } + + /** + * {@inheritDoc} + * + */ + @Override + public void delete(Picture picture) throws RecordNotFoundException { + // ToDo: Implement + } + + /** + * {@inheritDoc} + * + */ + @Override + public long count() { + // ToDo: Correct Implementation + return 0; + } + + /** + * {@inheritDoc} + * + */ + @Override + public Picture findById(long id) { + // ToDo: Correct Implementation + return null; + } + + /** + * {@inheritDoc} + * + */ + @Override + public Collection findAll() { + // ToDo: Correct Implementation + return null; + } + + /** + * {@inheritDoc} + * + */ + @Override + public Collection findByPosition(float longitude, float latitude, float deviation) { + // ToDo: Correct Implementation + return null; + } + +} diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/LogConfiguration.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/LogConfiguration.java new file mode 100644 index 0000000..4f8e6fc --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/LogConfiguration.java @@ -0,0 +1,70 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Locale; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.Logger; + +/** + * Configuration class for Java Logging + * Reads configuration from property file, specified in the following order: + * - System property "java.util.logging.config.file" (also used by LogManager) + * - file "log.properties" in working directory + * - file "log.properties" in project resources + * If this class is specified in system property "java.util.logging.config.class" it + * is loaded automatically at system startup. + * Otherwise, it can also be called at startup. + */ + +public class LogConfiguration { + private static final Logger logger = Logger.getLogger(LogConfiguration.class.getCanonicalName()); + + /* + * Static class configuration. + * Only executed once when class is loaded. + * Load Java logger configuration from config file + */ + static { + Locale.setDefault(Locale.ROOT); // show log messages in english + // get log config file (default uses log.properties in working directory) + String logConfigFile = System.getProperty("java.util.logging.config.file", "log.properties"); + Path logConfigPath = Path.of(logConfigFile); + try { + InputStream configFileStream; + if (Files.isReadable(logConfigPath)) { + // if available and readable use specified file + configFileStream = Files.newInputStream(logConfigPath); + } else { + // otherwise use minimal config from resources + logConfigFile="resources:/log.properties"; + configFileStream = ClassLoader.getSystemClassLoader().getResourceAsStream("log.properties"); + } + if (configFileStream != null) { + LogManager.getLogManager().readConfiguration(configFileStream); + logger.fine("Log configuration read from " + logConfigFile); + } else { + logger.warning("No log configuration found. Using system default settings."); + } + } catch (IOException e) { + logger.log(Level.WARNING, "Error loading log configuration", e); + } + } + + + public static String getProperty(String name) { + return LogManager.getLogManager().getProperty(name); + } + + public static void setLogLevel(Class clazz, Level level) { + Logger.getLogger(clazz.getCanonicalName()).setLevel(level); + } + + public static Level getLogLevel(Class clazz) { + return Logger.getLogger(clazz.getCanonicalName()).getLevel(); + } +} + diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Picture.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Picture.java new file mode 100644 index 0000000..7d6e63f --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Picture.java @@ -0,0 +1,81 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.net.URL; +import java.util.Date; +import java.util.Objects; + +public class Picture extends Record { + + private final URL url; + private final Date date; + private final String title; + private final float longitude; + private final float latitude; + + public Picture(URL url, Date date, String title, float longitude, float latitude) { + this.url = url; + this.date = date; + this.title = title; + this.longitude = longitude; + this.latitude = latitude; + } + + public Picture(URL url, String title) { + this(url, new Date(), title, 0, 0); + } + + protected Picture(long id, URL url, Date date, String title, float longitude, float latitude) { + this(url,date, title, longitude, latitude); + this.id = id; + } + + public URL getUrl() { + return url; + } + + public Date getDate() { + return date; + } + + public String getTitle() { + return title; + } + + public float getLongitude() { + return longitude; + } + + public float getLatitude() { + return latitude; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Picture picture = (Picture) o; + return Float.compare(picture.longitude, longitude) == 0 && + Float.compare(picture.latitude, latitude) == 0 && + url.equals(picture.url) && + date.equals(picture.date) && + title.equals(picture.title); + } + + @Override + public int hashCode() { + return Objects.hash(url, date, title, longitude, latitude); + } + + @Override + public String toString() { + return "Picture{" + + "id=" + id + + ", url=" + url + + ", date=" + date + + ", title='" + title + '\'' + + ", longitude=" + longitude + + ", latitude=" + latitude + + '}'; + } + +} diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureDatasource.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureDatasource.java new file mode 100644 index 0000000..738684c --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureDatasource.java @@ -0,0 +1,23 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.util.Collection; + +/** + * Declaration of a Datasource to store Picture records. + * Beside the default Datasource methods, it declares an additional Picture specific query method. + */ +public interface PictureDatasource extends Datasource { + /** + * Retrieves all images close to a a certain position. + * All images with a deviation from the exact coordinates are returned. + * This includes all objects in a square range + * from [longitude - deviation / latitude - deviation] + * to [longitude + deviation / latitude + deviation] + * + * @param longitude longitude coordinate of the center of the square area + * @param latitude latitude coordinate of the center of the square area + * @param deviation deviation from the center of the area in longitude and latitude direction + * @return Collection of all Picture records in the area + */ + CollectionfindByPosition(float longitude, float latitude, float deviation); +} diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureImport.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureImport.java new file mode 100644 index 0000000..63aec07 --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/PictureImport.java @@ -0,0 +1,106 @@ +package ch.zhaw.prog2.io.picturedb; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Collection; +import java.util.Date; +import java.util.NoSuchElementException; +import java.util.Scanner; +import java.util.logging.Level; + +/* This demo-application reads some picture data from terminal, + * saves it to the datasource, read it from the DB and prints the result + */ + +public class PictureImport { + private static final String PICTURE_DB = "db/picture-data.csv"; + private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; + private static final DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); + private static final PrintWriter out = new PrintWriter(System.out, true); + + + public static void main (String[] args) throws IOException { + // initialize logger level + LogConfiguration.setLogLevel(FilePictureDatasource.class, Level.FINE); + + // create datasource + PictureDatasource dataSource = new FilePictureDatasource(PICTURE_DB); + // read picture data from the terminal + Picture picture = createPicture(); + // save the picture to the data source + dataSource.insert(picture); + // read the picture back from file + Picture readPicture = dataSource.findById(picture.getId()); + if (readPicture != null) { + out.println("The following pictures has been saved: "); + out.println(readPicture); + } else { + out.println("Picture with id=" + picture.getId() + " not found."); + } + + // read all pictures and list them on the console + Collection pictures = dataSource.findAll(); + out.println("Pictures:"); + for (Picture pict : pictures) { + out.println(pict.toString()); + } + } + + static Picture createPicture() { + // asks the values for the objects + out.println("** Create a new picture **"); + URL url = null; + do { + String urlString = prompt("Picture URL: "); + try { + url = new URL(urlString); + } catch (MalformedURLException e1) { + out.println("Malformed URL: " + e1.getMessage()); + } + } while (url == null); + + String title = prompt("Picture title: "); + + Date date = new Date(); // now + try { + date = dateFormat.parse(prompt("Picture time ("+DATE_FORMAT+") Default = now: ")); + } catch (ParseException e) { + out.println("Unknown date format. Using "+ dateFormat.format(date)); + } + + float longitude = 0.0f; + try { + longitude = Float.parseFloat(prompt("Picture position longitude: ")); + } catch (NumberFormatException e) { + out.println("Unknown number format. Using " + longitude); + } + + float latitude = 0.0f; + try { + latitude = Float.parseFloat(prompt("Picture position latitude: ")); + } catch (NumberFormatException e) { + out.println("Unknown number format. Using " + latitude); + } + + return new Picture(url, date, title, longitude, latitude); + } + + // prompt function -- to read input string + static String prompt(String prompt) { + try { + Scanner scanner = new Scanner(System.in); + out.print(prompt); + out.flush(); + return scanner.nextLine().strip(); + } catch (NoSuchElementException e) { + return ""; + } + } + +} + diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Record.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Record.java new file mode 100644 index 0000000..591d15e --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/Record.java @@ -0,0 +1,43 @@ +package ch.zhaw.prog2.io.picturedb; + +/** + * Abstract class to be used as base class for data records, which can stored in a {@link Datasource} + * When a record is created it gets the default id of -1, indicating that it is a new record, which is not stored + * in a DataSource. + */ +public abstract class Record { + /** + * Default id for new records, indicating, that it is not yet stored in a datasource. + */ + private static final long DEFAULT_ID = -1L; + /** + * Identifier of the record. + */ + protected long id = DEFAULT_ID; + + /** + * Set the id for this record. This method is used by the specific data set handler when adding the record to a + * {@link Datasource}. It should not be used directly by the user. + * @param id new id of the record, when the record is added to the data source + */ + protected void setId(long id) { + this.id = id; + } + + /** + * Returns the identifier of the record + * @return identifier of the record + */ + public long getId() { + return id; + } + + /** + * Returns the status of the record. + * @return true, if the record is not stored to the data source, false otherwise + */ + public boolean isNew() { + return id == DEFAULT_ID; + } + +} diff --git a/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/RecordNotFoundException.java b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/RecordNotFoundException.java new file mode 100644 index 0000000..c28fa38 --- /dev/null +++ b/code/PictureDB/src/main/java/ch/zhaw/prog2/io/picturedb/RecordNotFoundException.java @@ -0,0 +1,26 @@ +package ch.zhaw.prog2.io.picturedb; + +/** + * Exception indicating that a record could not be found in a datasource. + * The reason why is given as a text message. + */ +public class RecordNotFoundException extends Exception { + public RecordNotFoundException() { + } + + public RecordNotFoundException(String message) { + super(message); + } + + public RecordNotFoundException(String message, Throwable cause) { + super(message, cause); + } + + public RecordNotFoundException(Throwable cause) { + super(cause); + } + + public RecordNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/code/PictureDB/src/main/resources/log.properties b/code/PictureDB/src/main/resources/log.properties new file mode 100644 index 0000000..1f229d9 --- /dev/null +++ b/code/PictureDB/src/main/resources/log.properties @@ -0,0 +1,13 @@ +## Minimal log configuration setting decent defaults +## Console handler configuration +java.util.logging.ConsoleHandler.level = ALL + +## Configure format of log messages +java.util.logging.SimpleFormatter.format = [%1$tF %1$tT %1tZ] [%4$s] [%3$s] %5$s%6$s%n + +## configure default log level (for all loggers, if not overwritten below) +.level = INFO + +## configure root logger "" +handlers = java.util.logging.ConsoleHandler +level = INFO diff --git a/code/PictureDB/src/test/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasourceTest.java b/code/PictureDB/src/test/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasourceTest.java new file mode 100644 index 0000000..ca33d64 --- /dev/null +++ b/code/PictureDB/src/test/java/ch/zhaw/prog2/io/picturedb/FilePictureDatasourceTest.java @@ -0,0 +1,279 @@ +package ch.zhaw.prog2.io.picturedb; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLDecoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.function.Predicate; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.Logger; +import java.util.stream.Stream; + +import static ch.zhaw.prog2.io.picturedb.FilePictureDatasource.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assumptions.assumeTrue; + +class FilePictureDatasourceTest { + private static final long EXISTING_ID = 13; + private static final long INEXISTENT_ID = 0; + + private final DateFormat df = new SimpleDateFormat(DATE_FORMAT); + private final Random random = new Random(new Date().getTime()); + + /* + * Static class configuration. + * Only executed once when class is loaded. + */ + static { + // logger configuration + try { + // show log messages in english + Locale.setDefault(Locale.ROOT); + // load default minimal log configuration + LogManager.getLogManager().readConfiguration(ClassLoader.getSystemResourceAsStream("log.properties")); + // set level for class to test to WARNING (minimize log messages) + Logger.getLogger(FilePictureDatasource.class.getCanonicalName()).setLevel(Level.WARNING); + } catch (IOException e) { + System.err.println("Failed to read log configuration: " + e.getMessage()); + } + } + + + Path dbTemplatePath; // path of template database + Path dbPath; // path of temporary test database + + PictureDatasource datasource = null; // datasource instance to test + + FilePictureDatasourceTest() { + URL dbTemplateUrl = FilePictureDatasourceTest.class.getClassLoader().getResource("db"); + Objects.requireNonNull(dbTemplateUrl, "Test database directory not found"); + String dbDir = new File(dbTemplateUrl.getPath()).getAbsolutePath(); // required for Windows to remove leading '/' + String dbDirRaw = URLDecoder.decode(dbDir, CHARSET); // replace urlencoded characters, e.g. %20 -> " " + dbTemplatePath = Path.of(dbDirRaw, "test-data-template.csv"); + dbPath = Path.of(dbDirRaw, "test-data.csv"); + } + + + @BeforeEach + void setUp() throws IOException { + // initialize test database file + Files.copy(dbTemplatePath, dbPath); + // setup datasource + datasource = new FilePictureDatasource(dbPath.toString()); + } + + @AfterEach + void tearDown() throws IOException { + // cleanup test database file + Files.deleteIfExists(dbPath); + } + + + @Test + void insert() { + Picture testPicture = createPicture("http://test.url/hallo.img", "Test picture"); + assertEquals(-1, testPicture.getId(), "New picture must have Id -1"); + datasource.insert(testPicture); + assertNotEquals(-1, testPicture.getId(), "Insert must set new id to picture"); + assertTrue(testPicture.getId() > 14, "Id must be larger than last existing"); + assertEquals(15, testPicture.getId(), "Id must be 1 larger than current highest"); + try { + String insertedLine = readLineNo(4); + assertNotNull(insertedLine, "Inserted line does not exist"); + assertEquals(pictureToCsvLine(testPicture), insertedLine); + } catch (IOException e) { + fail("Failed reading inserted picture record"); + } + } + + @Test + void insertNull() { + assertThrows(NullPointerException.class, () -> datasource.insert(null)); + } + + @Test + void delete() { + long pictureIdToDelete = EXISTING_ID; + Picture pictureToDelete = datasource.findById(pictureIdToDelete); + assumeTrue(pictureToDelete != null, "Picture to delete not found"); + + try { + datasource.delete(pictureToDelete); + } catch (RecordNotFoundException e) { + fail("Failed to delete picture", e); + } + + try { + String deletedRecord = readLineWithId(pictureIdToDelete); + assertNull(deletedRecord, "Record still found after delete"); + } catch (IOException e) { + fail("Failed to read deleted record"); + } + } + + @Test + void deleteNull() { + assertThrows(NullPointerException.class, () -> datasource.delete(null)); + } + + @Test + void deleteInexistent() { + Picture testPicture = createPicture("http://test.url/hallo.img", "Test picture"); + testPicture.setId(INEXISTENT_ID); + assertThrows(RecordNotFoundException.class, () -> datasource.delete(testPicture)); + } + + @Test + void update() { + Picture originalPicture = datasource.findById(EXISTING_ID); + assumeTrue(originalPicture != null); + assumeTrue(originalPicture.id == EXISTING_ID); + + Date updatedDate = new Date(originalPicture.getDate().getTime() + 60_000); + URL updatedURL = originalPicture.getUrl(); + try { + updatedURL = new URL(originalPicture.getUrl() + "/updated"); + } catch (MalformedURLException e) { + fail("Invalid URL format", e); + } + Picture updatedPicture = new Picture( + originalPicture.id, + updatedURL, + updatedDate, + originalPicture.getTitle()+" (updated)", + originalPicture.getLongitude() + 10, + originalPicture.getLatitude() + 10); + + try { + datasource.update(updatedPicture); + } catch (RecordNotFoundException e) { + fail("Test record not found for update", e); + } + + Picture readUpdatedPicture = datasource.findById(originalPicture.getId()); + assertNotNull(readUpdatedPicture, "updated picture not found"); + assertEquals(updatedPicture.id, readUpdatedPicture.id); + assertEquals(updatedPicture.getUrl(), readUpdatedPicture.getUrl()); + assertEquals(updatedPicture.getDate(), readUpdatedPicture.getDate()); + assertEquals(updatedPicture.getTitle(), readUpdatedPicture.getTitle()); + assertEquals(updatedPicture.getLatitude(), readUpdatedPicture.getLatitude()); + assertEquals(updatedPicture.getLongitude(), readUpdatedPicture.getLongitude()); + } + + @Test + void updateNull() { + assertThrows(NullPointerException.class, () -> datasource.update(null)); + } + + @Test + void updateInexistent() { + Picture testPicture = createPicture("http://test.url/hallo.img", "Test picture"); + testPicture.setId(INEXISTENT_ID); + assertThrows(RecordNotFoundException.class, () -> datasource.update(testPicture)); + } + + @Test + void count() { + assertEquals(3, datasource.count(), "Count for initial datasource not correct"); + datasource.insert(createPicture("http://test.url/hallo.img", "Test picture")); + assertEquals(4, datasource.count(), "Count for updated datasource not correct"); + } + + @Test + void findById() { + Picture foundPicture = datasource.findById(EXISTING_ID); + assertNotNull(foundPicture, "Picture not found"); + assertEquals("2013-05-07 13:45:13", df.format(foundPicture.getDate())); + assertEquals("http://blog.stackoverflow.com/wp-content/uploads/code_monkey_colour.jpg", + foundPicture.getUrl().toExternalForm()); + assertEquals("Need a coder", foundPicture.getTitle()); + assertEquals(-71.098270, foundPicture.getLongitude(), 0.00001); + assertEquals(42.302583, foundPicture.getLatitude(), 0.00001); + } + + @Test + void findByIdInexistent() { + Picture foundPicture = datasource.findById(INEXISTENT_ID); + assertNull(foundPicture, "Inexistent Id found: " + INEXISTENT_ID); + } + + @Test + void findAll() { + Collection pictures = datasource.findAll(); + assertNotNull(pictures, "Collection of pictures must not be null"); + assertEquals(countLines(), pictures.size(), "Number of records does not match number of found pictures"); + for (Picture picture : pictures) { + assertNotNull(picture, "Found picture in collection"); + } + } + + @Test + void findByPosition() { + Collection pictures = datasource.findByPosition(-75, 41, 4); + assertNotNull(pictures); + assertEquals(2, pictures.size(), "Not correct amount of items found at position"); + + pictures = datasource.findByPosition(55, 23, 1); + assertEquals(0, pictures.size(), "Found items not to be found"); + } + + + /* + * Helper methods + */ + private Picture createPicture(String url, String title) { + URL testURL = null; + try { + testURL = new URL(url); + } catch (MalformedURLException e) { + fail("Invalid URL format", e); + } + float longitude = -180 + random.nextFloat() * 360; // range [-180..+180[ + float latitude = -90 + random.nextFloat() * 180; // range [-90..+90[ + return new Picture(testURL, new Date(), title, longitude, latitude); + } + + private String readLineNo(int lineNo) throws IOException { + try (Stream lineStream = Files.lines(dbPath, CHARSET)) { + return lineStream.skip(lineNo-1).findFirst().orElse(null); + } + } + + private String readLineWithId(long id) throws IOException { + try (Stream lineStream = Files.lines(dbPath, CHARSET)) { + return lineStream.filter(line -> line.strip().startsWith(id+DELIMITER)).findFirst().orElse(null); + } + } + + private long countLines() { + try (Stream lineStream = Files.lines(dbPath, CHARSET)) { + return lineStream.filter(Predicate.not(String::isBlank)).count(); + } catch (IOException e) { + fail("Failed to count lines in db file", e); + } + return 0; + } + + private String pictureToCsvLine(Picture picture) { + assertNotNull(picture, "Picture must not be null"); + return String.join(DELIMITER, + String.valueOf(picture.getId()), + df.format(picture.getDate()), + String.valueOf(picture.getLongitude()), + String.valueOf(picture.getLatitude()), + picture.getTitle(), + picture.getUrl().toExternalForm() + ); + } +} diff --git a/code/PictureDB/src/test/resources/db/test-data-template.csv b/code/PictureDB/src/test/resources/db/test-data-template.csv new file mode 100644 index 0000000..29bd63e --- /dev/null +++ b/code/PictureDB/src/test/resources/db/test-data-template.csv @@ -0,0 +1,3 @@ +1;2014-03-17 14:30:05;2.324744;48.864506;Another Monkey;http://www.codemonkey.in/images/Code-Monkey.png +14;2014-04-01 02:17:33;77.598736;40.979842;Bête à coder;http://www2.craven.fr/blojsom/resources/default/codemonkey.jpg +13;2013-05-07 13:45:13;-71.098270;42.302583;Need a coder;http://blog.stackoverflow.com/wp-content/uploads/code_monkey_colour.jpg diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..1b09d63 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,7 @@ +# Used to set properties for gradle builds +# (see https://dev.to/jmfayard/configuring-gradle-with-gradle-properties-211k) + +# gradle configuration +# (https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties) +#org.gradle.warning.mode=(all,fail,summary,none) default: summary +org.gradle.warning.mode=all diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..41d9927 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..41dfb87 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..1b6c787 --- /dev/null +++ b/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# 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 +# +# 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. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/images/PROG2-300x300.png b/images/PROG2-300x300.png new file mode 100644 index 0000000..584dd90 Binary files /dev/null and b/images/PROG2-300x300.png differ diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..14ab6ce --- /dev/null +++ b/settings.gradle @@ -0,0 +1,45 @@ +/* + * Dynamic Multi-Module project structure + * automatically adds each exercise as a sub-project (module) + */ + +// use current directory name as root project name +rootProject.name = file('.').name + +// dynamically add sub-projects in handout folder +File handoutDir = file('code') +if (handoutDir.isDirectory()) { + handoutDir.eachDir { dir -> + String subProjectName = ":${dir.name}" + include(subProjectName) + project(subProjectName).projectDir = dir + } +} + +// dynamically add sub-projects in solutions* folders +//List solutionDirs = List.of(file('.').listFiles((File dir, String name) -> name.startsWith("solutions"))) +file('.').eachDirMatch( name -> name.startsWith('solutions')) { solutionDir -> + if (solutionDir.isDirectory()) { + solutionDir.eachDir { dir -> + if (!dir.name.equals('images')) { + String subProjectName = ":${dir.name}-sol" + include(subProjectName) + project(subProjectName).projectDir = dir + } + } + } +} + +// lab preparation tasks +File classroomDir = file('classroom') +if (classroomDir.isDirectory()) { + String subProjectName = ":${classroomDir.name}" + include(subProjectName) +} + +// Example: manually adding sub-project with name == folder +//include 'module1' + +// Example: manually adding sub-projects with different name & folder +//include(':lab00-module1') +//project(':lab00-module1').projectDir = file('handout/module1') diff --git a/solutions-exercises/ByteCharStream/build.gradle b/solutions-exercises/ByteCharStream/build.gradle new file mode 100644 index 0000000..674306b --- /dev/null +++ b/solutions-exercises/ByteCharStream/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 ByteCharStream Solution' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.FileCopy' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/solutions-exercises/ByteCharStream/files/rmz450-spec.txt b/solutions-exercises/ByteCharStream/files/rmz450-spec.txt new file mode 100644 index 0000000..a759488 --- /dev/null +++ b/solutions-exercises/ByteCharStream/files/rmz450-spec.txt @@ -0,0 +1,30 @@ +ENGINE +Engine 449cc, 4-stroke, liquid-cooled, single cylinder, DOHC +Bore Stroke 96.0 x 62.1 mm (3.78 x 2.4 in) +Compression Ratio 12.5:1 +Fuel System Fuel Injection +Starter Primary kick +Lubrication Semi-dry sump +DRIVE TRAIN +Transmission 5-speed constant mesh +Clutch Wet multi-plate type, manual release +Final Drive Chain, DID520MXV4, 114 links +CHASSIS +Suspension Front Inverted telescopic, air spring, oil damped +Suspension Rear Link type, coil spring, oil damped +Brakes Front Disc brake, single rotor +Brakes Rear Disc brake, single rotor +Tires Front 80/100-21 51M, tube type +Tires Rear 110/90-19 62M, tube type +Fuel Tank Capacity 6.2 L (1.6 US gallons) +Color Champion Yellow No.2 / Solid Black +ELECTRICAL +Ignition Electronic Ignition (CDI) +DIMENSIONS +Overall Length 2190 mm (86.2 in) +Overall Width 830 mm (32.7 in) +Overall Height 1270 mm (50.0 in) +Wheelbase 1495 mm (58.9 in) +Ground Clearance 325 mm (12.8 in) +Seat Height 955 mm (37.6 in) +Curb Weight 112 kg (247 lbs) \ No newline at end of file diff --git a/solutions-exercises/ByteCharStream/files/rmz450.jpg b/solutions-exercises/ByteCharStream/files/rmz450.jpg new file mode 100644 index 0000000..951aa25 Binary files /dev/null and b/solutions-exercises/ByteCharStream/files/rmz450.jpg differ diff --git a/solutions-exercises/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java b/solutions-exercises/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java new file mode 100644 index 0000000..16b0172 --- /dev/null +++ b/solutions-exercises/ByteCharStream/src/main/java/ch/zhaw/prog2/io/FileCopy.java @@ -0,0 +1,111 @@ +package ch.zhaw.prog2.io; + +import java.io.*; +import java.util.*; + + +public class FileCopy { + + public static void main(String[] args) throws IOException { + + // get the filename from the arguments. By default, use 'files'-directory in current working directory. + String sourceDirPath = args.length >= 1 ? args[0] : "./files"; + File sourceDir = new File(sourceDirPath); + + // Part a – Verify the directory structure + // Implement the method 'verifySourceDir()' + System.out.format("Verifying Source Directory: %s%n", sourceDirPath); + try { + verifySourceDir(sourceDir); + } catch (FileNotFoundException error) { + System.err.format("Directory %s does not comply with predefined structure: %s%n", sourceDir.getPath(), error.getMessage()); + System.err.println("Terminating programm!"); + System.exit(1); + } + System.out.printf("Source Directory verified successfully."); + + + // Part b – Copy the files byte resp. char wise. + // Implement the method 'verifySourceDir()' + System.out.println("Initiating file copies."); + try { + copyFiles(sourceDir); + } catch (IOException error) { + System.err.format("Error creating file copies: %s%n", error.getMessage()); + System.err.println("Terminating programm!"); + System.exit(2); + } + System.out.println("Files copied successfully."); + } + + /** + * Part a – directory structure + * + * Verify the directory structure for correctness. + * Correct means, that the directory exists and beside the two files rmz450.jpg and rmz450-spec.txt does not contain + * any other files or directories. + * + * @param sourceDir File source directory to verify it contains the correct structure + * @throws FileNotFoundException if the source directory or required file are missing + * @throws InvalidObjectException if the source directory contains invalid files or directories. + */ + private static void verifySourceDir(File sourceDir) throws FileNotFoundException, InvalidObjectException { + if (sourceDir.isDirectory()) { + System.out.format("Directory %s exists.", sourceDir.getPath()); + } else { + throw new FileNotFoundException("Directory %s does not exist.".formatted(sourceDir.getPath())); + } + + // mutable list of required files + List requiredFiles = new ArrayList<>(List.of("rmz450.jpg", "rmz450-spec.txt" )); + + // check all files in the directory + for (File file : sourceDir.listFiles()) { + // if found, remove file from required list, otherwise throw an error (invalid file) + if (!requiredFiles.remove(file.getName())) { + throw new InvalidObjectException("Directory %s contains invalid element %s".formatted(sourceDir.getPath(), file.getName())); + } + // check for valid file type + if (file.isDirectory()) { + throw new InvalidObjectException("File %s is a directory. Must be a standard file.".formatted(file.getName())); + } + } + // verify all required files are available + if (!requiredFiles.isEmpty()) { + throw new FileNotFoundException("Required file(s) not found:" + String.join(", ", requiredFiles)); + } + } + + + /** + * Teilaufgabe b – Kopieren von Dateien + * + * Copies each file of the source directory twice, once character-oriented and once byte-oriented. + * Source and target files should be opened and copied byte by byte respectively char by char. + * The target files should be named, so the type of copy can be identified. + * + * @param sourceDir File representing the source directory containing the files to copy + * @throws IOException if an error is happening while copying the files + */ + private static void copyFiles(File sourceDir) throws IOException { + Objects.requireNonNull(sourceDir, "Source directory must not be null"); + for (File file : sourceDir.listFiles()) { + try (FileInputStream inputStream = new FileInputStream(file); + FileOutputStream outputStream = new FileOutputStream("copy-bin-" + file.getName()); + FileReader reader = new FileReader(file); + FileWriter writer = new FileWriter("copy-char-" + file.getName())) + { + int byteValue; + System.out.println("Binary copy."); + while ((byteValue = inputStream.read()) >= 0) { + outputStream.write(byteValue); + } + int charValue; + System.out.println("Character-oriented copy."); + while ((charValue = reader.read()) >= 0) { + writer.write(charValue); + } + } + } + } +} diff --git a/solutions-exercises/Charsets/CharSetEvaluation_WIN1252.txt b/solutions-exercises/Charsets/CharSetEvaluation_WIN1252.txt new file mode 100644 index 0000000..f330089 --- /dev/null +++ b/solutions-exercises/Charsets/CharSetEvaluation_WIN1252.txt @@ -0,0 +1,16 @@ +a + +B + +c + +d + + + +f + + + +_ + diff --git a/solutions-exercises/Charsets/build.gradle b/solutions-exercises/Charsets/build.gradle new file mode 100644 index 0000000..409a020 --- /dev/null +++ b/solutions-exercises/Charsets/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 UnderstandingCharsets Solution' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.UnderstandingCharsets' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/solutions-exercises/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java b/solutions-exercises/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java new file mode 100644 index 0000000..8dc2e9e --- /dev/null +++ b/solutions-exercises/Charsets/src/main/java/ch/zhaw/prog2/io/UnderstandingCharsets.java @@ -0,0 +1,94 @@ +package ch.zhaw.prog2.io; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + + +public class UnderstandingCharsets { + public static void main(String[] args) { + + + /* Teilaufgabe a + * In der Vorlesung haben Sie gelernt, dass Java-Klassen fuer Unicode entworfen wurden. + * Nun ist Unicode aber nicht der einzige Zeichensatz und Java unterstuetz durchaus Alternativen. + * Welche Zeichensaetze auf einem System konkret unterstuetzt werden haengt von der Konfiguration des Betriebssystems JVM ab. + * Schreiben Sie ein Programm, welches alle Unterstuetzten Zeichensaetze auf der Konsole (System.out) ausgibt, + * zusammen mit dem Standardzeichensatz. + * https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html + */ + + // Print default character set + System.out.println("Default Charset = " + Charset.defaultCharset()); + + // Print all available character sets + System.out.println("Available Charsets:"); + for (Charset charset : Charset.availableCharsets().values()) { + System.out.println("- " + charset); + } + /* Ende Teilaufgabe a */ + + + /* Teilaufgabe b + * Schreiben Sie ein Program welches im Standardzeichensatz einzele Zeichen (also Zeichen fuer Zeichen) von der + * Konsole einliest und ebenso im Zeichensatz US_ASCII in eine Datei schreibt. + * Die Eingabe des Zeichens 'q' soll das Program ordentlich beenden. + * Die Datei soll "CharSetEvaluation.txt" genannt werden und wird entweder erzeugt oder wenn Sie bereits + * existiert, einfach geoeffnet und der Inhalt uebeschrieben werden. + * Lesen von der Konsole und Schreiben in die Datei soll leistungsoptimiert geschehen, also vom jeweiligen + * Input-/Output-Medium entkoppelt. + * Testen Sie Ihr Program mit den folgenden Eingabereihenfolge und Zeichen: a B c d € f _ q + * Oeffnen Sie die Textdatei nach Durchfuehrung des Programs mit einem Texteditor und erklaeren Sie das Ergebnis. + * Oeffnen Sie die Datei anschliessend mit einem HEX-Editor und vergleichen Sie. + */ + + char c; + try (FileOutputStream fosDefault = new FileOutputStream("CharSetEvaluation_Default.txt"); + FileOutputStream fosAscii = new FileOutputStream("CharSetEvaluation_ASCII.txt"); + FileOutputStream fosUTF8 = new FileOutputStream("CharSetEvaluation_UTF8.txt"); + FileOutputStream fosWin = new FileOutputStream("CharSetEvaluation_WIN1252.txt"); + BufferedWriter bwdefault = new BufferedWriter(new OutputStreamWriter(fosDefault)); + BufferedWriter bwascii = new BufferedWriter(new OutputStreamWriter(fosAscii, StandardCharsets.US_ASCII)); + BufferedWriter bwutf8 = new BufferedWriter(new OutputStreamWriter(fosUTF8, StandardCharsets.UTF_8)); + BufferedWriter bwwin = new BufferedWriter(new OutputStreamWriter(fosWin, Charset.forName("windows-1252"))); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) + { + System.out.println("Enter characters, 'q' to quit."); // read characters + boolean reading = true; + while (reading) { + c = (char) br.read(); + /* returns character read, as an integer (32bit) in the range 0 to 65535 + (0x00-0xffff, 16bit), or -1 (0xffff-ffff) if the end of the stream has been reached */ + if (c == '\n') { + continue; + } + if (c == 'q') { + System.out.println("The End"); + reading = false; + } else { + System.out.println("== Output using Default Encoding"); + bwdefault.write(c); + bwdefault.newLine(); + bwdefault.flush(); + System.out.println("== Output using ASCII Encoding"); + bwascii.write(c); + bwascii.newLine(); + bwascii.flush(); + System.out.println("== Output using UTF-8 Encoding"); + bwutf8.write(c); + bwutf8.newLine(); + bwutf8.flush(); + System.out.println("== Output using Windows-1252 Encoding"); + bwwin.write(c); + bwwin.newLine(); + bwwin.flush(); + } + //int dummy = br.read(); //clear CRNL + } + } catch (IOException e) { + System.err.println("Abbruch wegen IO-Exception" + e.getMessage()); + e.printStackTrace(); + } + } +} + diff --git a/solutions-exercises/FileAttributes/build.gradle b/solutions-exercises/FileAttributes/build.gradle new file mode 100644 index 0000000..52ec0c4 --- /dev/null +++ b/solutions-exercises/FileAttributes/build.gradle @@ -0,0 +1,50 @@ +/* + * Gradle build configuration for specific lab module / exercise + */ +// enabled plugins +plugins { + id 'java' + // Apply the application plugin to add support for building a CLI application. + id 'application' +} + +// Project/Module information +description = 'Lab05 FileAttributes Solution' +group = 'ch.zhaw.prog2' +version = '2022.1' + +// Dependency configuration +repositories { + mavenCentral() +} + +dependencies { + +} + +// Configuration for Application plugin +application { + // Define the main class for the application. + mainClass = 'ch.zhaw.prog2.io.DirList' +} + +// enable console input when running with gradle +run { + standardInput = System.in +} + + +// Java plugin configuration +java { + // By default the Java version of the gradle process is used as source/target version. + // This can be overridden, to ensure a specific version. Enable only if required. + // sourceCompatibility = JavaVersion.VERSION_17 // ensure Java source code compatibility + // targetCompatibility = JavaVersion.VERSION_17 // version of the created byte-code + + // Java compiler specific options + compileJava { + // source files should be UTF-8 encoded + options.encoding = 'UTF-8' + // for more options see https://docs.gradle.org/current/dsl/org.gradle.api.tasks.compile.CompileOptions.html + } +} diff --git a/solutions-exercises/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java b/solutions-exercises/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java new file mode 100644 index 0000000..be24ba2 --- /dev/null +++ b/solutions-exercises/FileAttributes/src/main/java/ch/zhaw/prog2/io/DirList.java @@ -0,0 +1,33 @@ +package ch.zhaw.prog2.io; + +import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +public class DirList { + private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + public static void main(String[] args) { + String pathName = args.length >= 1 ? args[0] : "."; + File file = new File(pathName); + if (file.isDirectory()) { + for (File subFile : file.listFiles()) { + System.out.println(printFileMetadata(subFile)); + } + } else { + System.out.println(printFileMetadata(file)); + } + } + + public static String printFileMetadata(File file) { + return String.format("%c%c%c%c%c %s %8d %s", + file.isDirectory()? 'd' : 'f', + file.canRead()? 'r' : '-', + file.canWrite()? 'w' : '-', + file.canExecute()? 'x' : '-', + file.isHidden()? 'h' : '-', + dateFormat.format(file.lastModified()), + file.length(), + file.getName()); + } +} diff --git a/solutions-exercises/images/PROG2-300x300.png b/solutions-exercises/images/PROG2-300x300.png new file mode 100644 index 0000000..584dd90 Binary files /dev/null and b/solutions-exercises/images/PROG2-300x300.png differ diff --git a/solutions-exercises/solutions-exercises.adoc b/solutions-exercises/solutions-exercises.adoc new file mode 100644 index 0000000..857a6e4 --- /dev/null +++ b/solutions-exercises/solutions-exercises.adoc @@ -0,0 +1,127 @@ +:source-highlighter: coderay +:icons: font +:experimental: +:!sectnums: +:imagesdir: ./images/ +:handout: ./ + +:logo: IT.PROG2 - +ifdef::backend-html5[] +:logo: image:PROG2-300x300.png[IT.PROG2,100,100,role=right,fit=none,position=top right] +endif::[] +ifdef::backend-pdf[] +:logo: +endif::[] +ifdef::env-github[] +:tip-caption: :bulb: +:note-caption: :information_source: +:important-caption: :heavy_exclamation_mark: +:caution-caption: :fire: +:warning-caption: :warning: +endif::[] + += {logo} Lösungen zu den Übungsaufgaben Input / Output + +:sectnums: +:sectnumlevels: 2 +// Beginn des Aufgabenblocks + +== Dateien und Attribute [PU] + +**** +Siehe Musterlösung im link:{handout}/FileAttributes[FileAttributes] Modul + +Dies ist ein gutes Beispiel, wie mit Hilfe der `java.io.File`-Klasse eine hierarchische Baumstruktur (Verzeichnisbaum) traversiert und Attribute der einzelnen Knoten (Dateien/Verzeichnisse) ausgelesen werden können. +Problemlos könnte die Anwendung erweitert werden und ein ganzer Teilbaum traversiert und ausgegeben. Dies könnte auch als rekursive Methode ausgeführt werden. + +Alternativ könnte das Auslesen des Verzeichnisses und bestimmen der Dateiattribute auch mittels der statischen Methoden in `java.nio.file.Files` erfolgen. Anstelle der `File`-Objekte würde dann mit `Path`-Objekten gearbeitet und die Attribute dieser ermittelt. +`Files` erlaubt auch erweiterte Filesystemattribute abzufragen (erweiterte Berechtigungen, Links). + +Auch wenn Functional-Streams verwendet werden sollen (siehe PROG2 Functional-Programming), bietet `Files` mehr Möglichkeiten. +**** + + +Was bedeuteten die Attribute Lesen (`r`), Schreiben (`w`) und Ausführen (`x`) bei einem Verzeichnis? + +**** +Ein Verzeichnis kann man sich als spezielle Datei vorstellen, welche eine Liste von Referenzen (`Inodes`) und Metainformationen (Name, Typ, Zugriffsrechte, Grösse, ...) zu den darin enthaltenen Dateien im Filesystem enthält (Inhaltsverzeichnis). + +Die Rechte auf Verzeichnisse können entsprechend der Zugriffsrechte auf diese Datei interpretiert werden: + +Lesen (`r`):: Das Inhaltsverzeichnis kann gelesen werden, d.h. die Metadaten (Namen & Attribute) der Dateien abgefragt werden. +Schreiben (`w`):: Das Inhaltsverzeichnis kann geschrieben / verändert werden, d.h. es können neue Dateien erstellt oder Dateien gelöscht werden. +Ausführen (`x`):: Es ist möglich das Verzeichnis zu traversieren, d.h. man kann (z.B. mittels `cd`) ins Verzeichnis bzw. durch das Verzeichnis hindurch in Unterverzeichnisse gelangen. +**** + +== Verstehen von Zeichensätzen [PU] + +[loweralpha] +. Ergänzen Sie in der Klasse `UnderstandingCharsets` den Code, um alle von der JVM unterstützten Zeichensätze auf der Konsole (`System.out`), sowie den für Ihr System definierten Standardzeichensatz auszugeben. + +https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/charset/Charset.html ++ +**** +Siehe Musterlösung im link:{handout}/Charsets[Charsets] Modul - Teilaufgabe (a) +**** +. Ergänzen Sie die Klasse so, dass sie einzelne Zeichen (also Zeichen für Zeichen) im Standardzeichensatz von der Konsole einliest und in zwei Dateien schreibt einmal im Standardzeichensatz und einmal im Zeichensatz `US-ASCII`. +* Die Eingabe des Zeichens `q` soll das Program ordentlich beenden. +* Die Dateien sollen `CharSetEvaluation_Default.txt` und `CharSetEvaluation_ASCII.txt` genannt werden und werden entweder erzeugt oder, falls sie bereits existieren, geöffnet und der Inhalt überschrieben. ++ +**** +Siehe Musterlösung im link:{handout}/Charsets[Charsets] Modul - Teilaufgabe (b) + +Die Musterlösung wurde erweitert, dass sie neben dem Default und ASCII auch explizit Dateien mit den zwei häufigsten Default-Zeichensätze (UTF-8, Windows-1252) generiert. +**** +* Testen Sie Ihr Program mit den folgenden Zeichen: a B c d € f ü _ q +* Öffnen Sie die Textdateien nach Ausführung des Programs mit einem Texteditor +und erklären Sie das Ergebnis. +* Öffnen Sie die Dateien anschliessend mit einem HEX-Viewer/Editor und vergleichen Sie. ++ +**** +Im Texteditor sieht man, dass das Zeichen in der Datei mit dem Standardzeichensatz korrekt dargestellt wird, bei der US-ASCII-Datei hingegen wurden die erweiterten Zeichen (€,ü) durch ein Platzhalterzeichen ? ersetzt, da diese in US-ASCII nicht enthalten sind. + +Im Hex-Editor ist ersichtlich, dass in der Default-Codierung die Zeichen einen erweiterten Code haben. Entweder ist es ein Wert in der oberen Hälfte der Code-Page (Windows-1252), d.h. grösser 127~dec~ / 7F~hex~ (€ -> 80~hex~, ü -> FC~hex~) oder es wird gemäss UTF-8 Codierung zu mehreren Bytes erweitert (€ -> E2 82 AC~hex~, ü -> C3 BC~hex~) +**** + + +== Byte- vs. Zeichenorientierte Streams [PU] + +[loweralpha] +. Verzeichnis-Struktur verifizieren: Methode `verifySourceDir()` +* Das Quell-Verzeichnis soll auf Korrektheit überprüft werden. +* Korrekt bedeutet, dass das Verzeichnis existiert und ausser zwei Dateien mit den Namen +`rmz450.jpg` und `rmz450-spec.txt` nichts weiter enthält. +* Im Fehlerfall werden Exceptions geworfen. ++ +**** +Siehe Musterlösung im link:{handout}/ByteCharStream[ByteCharStream] Modul - Teilaufgabe (a) +**** +. Dateien kopieren: Methode `copyFiles()` +- Jede Datei im Quell-Verzeichnis soll zweimal kopiert werden, einmal zeichen- und einmal byte-orientiert. +- Dazu soll die jeweilige Datei geöffnet und Element für Element (d.h. byte- bzw. charakterweise) von der Originaldatei gelesen und in die Zieldatei geschrieben werden. +- Die Kopien sollen so benannt werden, dass aus dem Dateinamen hervorgeht, mit welcher Methode sie erstellt wurde. ++ +**** +Siehe Musterlösung im link:{handout}/ByteCharStream[ByteCharStream] Modul - Teilaufgabe (b) +**** +. Öffnen Sie die Kopien anschliessend mit einem entsprechenden Programm und erklären Sie die entstandenen Effekte. ++ +**** +Die Textdokumente können mit jedem Editor geöffnet werden und sind identisch, egal ob sie als byte- oder char-Stream kopiert wurden. +Bei der JPG-Datei sieht das anders aus. Die als byte-stream kopierte Datei kann auch weiterhin mit einer Bildanwendung (z.B. Bildvorschau OS, IDE) geöffnet werden. +Bei der als character kopierten Datei verweigern die Anwendungen das Bild wegen Kodierfehler zu öffnen. +**** + +. Öffnen Sie die Kopien anschliessend mit einem HEX-Viewer/Editor und erklären Sie die Gründe für die Effekte. ++ +**** +Der Vergleich der kopierten JPG Dateien im Hex-Editor zeigt, dass die Bytes von Beginn an unterschiedlich sind. + +Der Grund ist, dass einige Bitfolgen keine gültigen Zeichen aus der Code-Page darstellen. +Ungültige Zeichen werden in ein Standard-Zeichen für umgewandelt (bei UTF-8 ist das '�' resp. 'EF BF BD~hex~') +Damit wird die Datei verändert und entspricht nicht mehr der für JPG gültigen Kodierung. +**** + + +== Picture File Datasource [PA] + +**** +Die Lösungen zu den bewerteten Pflichtaufgaben erhalten Sie nach der Abgabe und Bewertung aller Klassen. +**** diff --git a/solutions-exercises/solutions-exercises.pdf b/solutions-exercises/solutions-exercises.pdf new file mode 100644 index 0000000..1466250 --- /dev/null +++ b/solutions-exercises/solutions-exercises.pdf @@ -0,0 +1,4246 @@ +%PDF-1.4 +% +1 0 obj +<< /Title +/Creator (Asciidoctor PDF 1.6.2, based on Prawn 2.4.0) +/Producer (Asciidoctor PDF 1.6.2, based on Prawn 2.4.0) +/ModDate (D:20220423192256+02'00') +/CreationDate (D:20220423193206+02'00') +>> +endobj +2 0 obj +<< /Type /Catalog +/Pages 3 0 R +/Names 10 0 R +/Outlines 31 0 R +/PageLabels 37 0 R +/PageMode /UseOutlines +/OpenAction [7 0 R /FitH 841.89] +/ViewerPreferences << /DisplayDocTitle true +>> +>> +endobj +3 0 obj +<< /Type /Pages +/Count 3 +/Kids [7 0 R 21 0 R 28 0 R] +>> +endobj +4 0 obj +<< /Length 2 +>> +stream +q + +endstream +endobj +5 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 4 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +>> +>> +endobj +6 0 obj +<< /Length 15315 +>> +stream +q +/DeviceRGB cs +0.1294 0.1451 0.1608 scn +/DeviceRGB CS +0.1294 0.1451 0.1608 SCN + +BT +56.6929 758.2318 Td +/F2.0 22 Tf +<4c9a73756e67656e207a752064656e208662756e6773617566676162656e20496e707574202f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +56.6929 731.6338 Td +/F2.0 22 Tf +<4f7574707574> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.7294 0.2235 0.1451 scn +0.7294 0.2235 0.1451 SCN + +BT +56.6929 698.5718 Td +/F2.0 20 Tf +<312e204461746569656e20756e6420417474726962757465205b50555d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +60.6929 688.9518 m +534.5871 688.9518 l +536.7962 688.9518 538.5871 687.1609 538.5871 684.9518 c +538.5871 464.5289 l +538.5871 462.3198 536.7962 460.5289 534.5871 460.5289 c +60.6929 460.5289 l +58.4838 460.5289 56.6929 462.3198 56.6929 464.5289 c +56.6929 684.9518 l +56.6929 687.1609 58.4838 688.9518 60.6929 688.9518 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +60.6929 688.9518 m +534.5871 688.9518 l +536.7962 688.9518 538.5871 687.1609 538.5871 684.9518 c +538.5871 464.5289 l +538.5871 462.3198 536.7962 460.5289 534.5871 460.5289 c +60.6929 460.5289 l +58.4838 460.5289 56.6929 462.3198 56.6929 464.5289 c +56.6929 684.9518 l +56.6929 687.1609 58.4838 688.9518 60.6929 688.9518 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 665.5575 Td +/F1.0 10 Tf +<5369656865204d75737465726c9a73756e6720696d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +183.1029 665.5575 Td +/F1.0 10 Tf +<46696c6541747472696275746573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +248.4729 665.5575 Td +/F1.0 10 Tf +<204d6f64756c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 638.5289 Td +/F1.0 10 Tf +<44696573206973742065696e20677574657320426569737069656c2c20776965206d69742048696c66652064657220> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +279.2229 638.5289 Td +/F3.0 10 Tf +<6a6176612e696f2e46696c65> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +351.2229 638.5289 Td +/F1.0 10 Tf +<2d4b6c617373652065696e652068696572617263686973636865> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 623.5004 Td +/F1.0 10 Tf +<4261756d737472756b74757220285665727a656963686e69736261756d2920747261766572736965727420756e6420417474726962757465206465722065696e7a656c6e656e204b6e6f74656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 608.4718 Td +/F1.0 10 Tf +<284461746569656e2f5665727a656963686e69737365292061757367656c6573656e2077657264656e206b9a6e6e656e2e2050726f626c656d6c6f73206b9a6e6e74652064696520416e77656e64756e67> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 593.4432 Td +/F1.0 10 Tf +<6572776569746572742077657264656e20756e642065696e2067616e7a6572205465696c6261756d20747261766572736965727420756e64206175736765676562656e2e2044696573206b9a6e6e7465206175636820616c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 578.4147 Td +/F1.0 10 Tf +<72656b757273697665204d6574686f6465206175736765669f6872742077657264656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 551.3861 Td +/F1.0 10 Tf +<416c7465726e61746976206b9a6e6e746520646173204175736c6573656e20646573205665727a656963686e697373657320756e642062657374696d6d656e206465722044617465696174747269627574652061756368> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 536.3575 Td +/F1.0 10 Tf +<6d697474656c7320646572207374617469736368656e204d6574686f64656e20696e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +239.3129 536.3575 Td +/F3.0 10 Tf +<6a6176612e6e696f2e66696c652e46696c6573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +353.3129 536.3575 Td +/F1.0 10 Tf +<206572666f6c67656e2e20416e7374656c6c652064657220> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +460.5929 536.3575 Td +/F3.0 10 Tf +<46696c65> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 521.3289 Td +/F1.0 10 Tf +<2d4f626a656b746520779f7264652064616e6e206d697420> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +193.6929 521.3289 Td +/F3.0 10 Tf +<50617468> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +217.6929 521.3289 Td +/F1.0 10 Tf +<2d4f626a656b74656e206765617262656974657420756e642064696520417474726962757465206469657365722065726d697474656c742e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +480.4529 521.3289 Td +/F3.0 10 Tf +<46696c6573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +510.4529 521.3289 Td +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 506.3004 Td +/F1.0 10 Tf +<65726c61756274206175636820657277656974657274652046696c6573797374656d6174747269627574652061627a7566726167656e20286572776569746572746520426572656368746967756e67656e2c204c696e6b73292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 491.2718 Td +/F1.0 10 Tf +<417563682077656e6e2046756e6374696f6e616c2d53747265616d732076657277656e6465742077657264656e20736f6c6c656e202873696568652050524f47322046756e6374696f6e616c2d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 476.2432 Td +/F1.0 10 Tf +<50726f6772616d6d696e67292c2062696574657420> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +176.0229 476.2432 Td +/F3.0 10 Tf +<46696c6573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +206.0229 476.2432 Td +/F1.0 10 Tf +<206d656872204d9a676c6963686b656974656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +56.6929 445.1347 Td +/F1.0 10 Tf +<576173206265646575746574656e2064696520417474726962757465204c6573656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +233.0729 445.1347 Td +/F3.0 10 Tf +<72> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +239.0729 445.1347 Td +/F1.0 10 Tf +<292c2053636872656962656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +301.5429 445.1347 Td +/F3.0 10 Tf +<77> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +307.5429 445.1347 Td +/F1.0 10 Tf +<2920756e6420417573669f6872656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +391.9329 445.1347 Td +/F3.0 10 Tf +<78> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +397.9329 445.1347 Td +/F1.0 10 Tf +<29206265692065696e656d205665727a656963686e69733f> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +60.6929 429.4204 m +534.5871 429.4204 l +536.7962 429.4204 538.5871 427.6295 538.5871 425.4204 c +538.5871 153.7804 l +538.5871 151.5712 536.7962 149.7804 534.5871 149.7804 c +60.6929 149.7804 l +58.4838 149.7804 56.6929 151.5712 56.6929 153.7804 c +56.6929 425.4204 l +56.6929 427.6295 58.4838 429.4204 60.6929 429.4204 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +60.6929 429.4204 m +534.5871 429.4204 l +536.7962 429.4204 538.5871 427.6295 538.5871 425.4204 c +538.5871 153.7804 l +538.5871 151.5712 536.7962 149.7804 534.5871 149.7804 c +60.6929 149.7804 l +58.4838 149.7804 56.6929 151.5712 56.6929 153.7804 c +56.6929 425.4204 l +56.6929 427.6295 58.4838 429.4204 60.6929 429.4204 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 406.0261 Td +/F1.0 10 Tf +<45696e205665727a656963686e6973206b616e6e206d616e207369636820616c73207370657a69656c6c6520446174656920766f727374656c6c656e2c2077656c6368652065696e65204c6973746520766f6e205265666572656e7a656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 390.9975 Td +/F1.0 10 Tf +<28> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +75.1529 390.9975 Td +/F3.0 10 Tf +<496e6f646573> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +111.1529 390.9975 Td +/F1.0 10 Tf +<2920756e64204d657461696e666f726d6174696f6e656e20284e616d652c205479702c205a756772696666737265636874652c2047729a7373652c20c929207a752064656e20646172696e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 375.9689 Td +/F1.0 10 Tf +<656e7468616c74656e656e204461746569656e20696d2046696c6573797374656d20656e74688a6c742028496e68616c74737665727a656963686e6973292e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 360.9404 Td +/F1.0 10 Tf +<4469652052656368746520617566205665727a656963686e69737365206b9a6e6e656e20656e74737072656368656e6420646572205a7567726966667372656368746520617566206469657365204461746569> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 345.9118 Td +/F1.0 10 Tf +<696e74657270726574696572742077657264656e3a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 318.8832 Td +/F5.0 10 Tf +<4c6573656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +107.7329 318.8832 Td +/F6.0 10 Tf +<72> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +113.7329 318.8832 Td +/F5.0 10 Tf +<29> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 300.7747 Td +/F1.0 10 Tf +<44617320496e68616c74737665727a656963686e6973206b616e6e2067656c6573656e2077657264656e2c20642e682e20646965204d657461646174656e20284e616d656e2026204174747269627574652920646572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 285.7461 Td +/F1.0 10 Tf +<4461746569656e206162676566726167742077657264656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 258.7175 Td +/F5.0 10 Tf +<53636872656962656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +129.3229 258.7175 Td +/F6.0 10 Tf +<77> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +135.3229 258.7175 Td +/F5.0 10 Tf +<29> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 240.6089 Td +/F1.0 10 Tf +<44617320496e68616c74737665727a656963686e6973206b616e6e20676573636872696562656e202f207665728a6e646572742077657264656e2c20642e682e206573206b9a6e6e656e206e657565204461746569656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 225.5804 Td +/F1.0 10 Tf +<65727374656c6c74206f646572204461746569656e2067656c9a736368742077657264656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 198.5518 Td +/F5.0 10 Tf +<417573669f6872656e2028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +132.2929 198.5518 Td +/F6.0 10 Tf +<78> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +138.2929 198.5518 Td +/F5.0 10 Tf +<29> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 180.4432 Td +/F1.0 10 Tf +<457320697374206d9a676c69636820646173205665727a656963686e6973207a752074726176657273696572656e2c20642e682e206d616e206b616e6e20287a2e422e206d697474656c7320> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +439.2729 180.4432 Td +/F3.0 10 Tf +<6364> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +451.2729 180.4432 Td +/F1.0 10 Tf +<2920696e73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +86.6929 165.4147 Td +/F1.0 10 Tf +<5665727a656963686e697320627a772e20647572636820646173205665727a656963686e69732068696e647572636820696e20556e7465727665727a656963686e697373652067656c616e67656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.7294 0.2235 0.1451 scn +0.7294 0.2235 0.1451 SCN + +BT +56.6929 122.8204 Td +/F2.0 20 Tf +<322e2056657273746568656e20766f6e205a65696368656e738a747a656e205b50555d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +61.7929 101.8061 Td +/F1.0 10 Tf +<612e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 101.8061 Td +/F1.0 10 Tf +<4572678a6e7a656e2053696520696e20646572204b6c6173736520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +202.8329 101.8061 Td +/F3.0 10 Tf +<556e6465727374616e64696e674368617273657473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +328.8329 101.8061 Td +/F1.0 10 Tf +<2064656e20436f64652c20756d20616c6c6520766f6e20646572204a564d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 86.7775 Td +/F1.0 10 Tf +<756e74657273749f747a74656e205a65696368656e738a747a652061756620646572204b6f6e736f6c652028> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +287.2029 86.7775 Td +/F3.0 10 Tf +<53797374656d2e6f7574> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +347.2029 86.7775 Td +/F1.0 10 Tf +<292c20736f7769652064656e20669f72204968722053797374656d20646566696e69657274656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 71.7489 Td +/F1.0 10 Tf +<5374616e646172647a65696368656e7361747a206175737a75676562656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 56.7204 Td +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +74.6929 56.7204 Td +/F1.0 10 Tf +<68747470733a2f2f646f63732e6f7261636c652e636f6d2f656e2f6a6176612f6a61766173652f31312f646f63732f6170692f6a6176612e626173652f6a6176612f6e696f2f636861727365742f436861727365742e68746d6c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do + +q +77.9133 0.0 0.0 42.2697 56.6929 785.4471 cm +/I1 Do +Q +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +413.0011 802.2483 Td +/F1.0 9 Tf +<50726f6772616d6d696572656e203220d02049542e50524f4732> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp3 Do +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +57.6929 26.7827 Td +/F1.0 9 Tf +<312e204461746569656e20756e6420417474726962757465205b50555d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +291.313 26.7827 Td +/F1.0 9 Tf +<312f33> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +480.8511 26.7827 Td +/F1.0 9 Tf +<405a48415720496e4954> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +7 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 6 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F2.0 8 0 R +/F1.0 13 0 R +/F3.0 15 0 R +/F5.0 16 0 R +/F6.0 17 0 R +>> +/XObject << /Stamp1 38 0 R +/I1 40 0 R +/Stamp3 41 0 R +>> +>> +/Annots [14 0 R 19 0 R] +>> +endobj +8 0 obj +<< /Type /Font +/BaseFont /2f6b5e+Inter-Regular +/Subtype /TrueType +/FontDescriptor 44 0 R +/FirstChar 32 +/LastChar 255 +/Widths 46 0 R +/ToUnicode 45 0 R +>> +endobj +9 0 obj +[7 0 R /XYZ 0 721.5318 null] +endobj +10 0 obj +<< /Type /Names +/Dests 11 0 R +>> +endobj +11 0 obj +<< /Names [(0x5f76657273746568656e5f766f6e5f7a65696368656e73c3a4747a656e5f7075) 18 0 R (__anchor-top) 9 0 R (_byte_vs_zeichenorientierte_streams_pu) 25 0 R (_dateien_und_attribute_pu) 12 0 R (_picture_file_datasource_pa) 30 0 R] +>> +endobj +12 0 obj +[7 0 R /XYZ 0 721.5318 null] +endobj +13 0 obj +<< /Type /Font +/BaseFont /078004+NotoSerif +/Subtype /TrueType +/FontDescriptor 48 0 R +/FirstChar 32 +/LastChar 255 +/Widths 50 0 R +/ToUnicode 49 0 R +>> +endobj +14 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (.//FileAttributes) +>> +/Subtype /Link +/Rect [183.1029 662.6375 248.4729 676.2375] +/Type /Annot +>> +endobj +15 0 obj +<< /Type /Font +/BaseFont /840090+JetBrainsMono-Regular +/Subtype /TrueType +/FontDescriptor 52 0 R +/FirstChar 32 +/LastChar 255 +/Widths 54 0 R +/ToUnicode 53 0 R +>> +endobj +16 0 obj +<< /Type /Font +/BaseFont /bf8a34+NotoSerif-Bold +/Subtype /TrueType +/FontDescriptor 56 0 R +/FirstChar 32 +/LastChar 255 +/Widths 58 0 R +/ToUnicode 57 0 R +>> +endobj +17 0 obj +<< /Type /Font +/BaseFont /8c65da+JetBrainsMono-Bold +/Subtype /TrueType +/FontDescriptor 60 0 R +/FirstChar 32 +/LastChar 255 +/Widths 62 0 R +/ToUnicode 61 0 R +>> +endobj +18 0 obj +[7 0 R /XYZ 0 145.7804 null] +endobj +19 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/charset/Charset.html) +>> +/Subtype /Link +/Rect [74.6929 53.8004 499.7029 67.4004] +/Type /Annot +>> +endobj +20 0 obj +<< /Length 18290 +>> +stream +q +q +/DeviceRGB cs +0.9333 0.9333 0.9333 scn +78.6929 779.5278 m +534.5871 779.5278 l +536.7962 779.5278 538.5871 777.7369 538.5871 775.5278 c +538.5871 744.4992 l +538.5871 742.2901 536.7962 740.4992 534.5871 740.4992 c +78.6929 740.4992 l +76.4838 740.4992 74.6929 742.2901 74.6929 744.4992 c +74.6929 775.5278 l +74.6929 777.7369 76.4838 779.5278 78.6929 779.5278 c +h +f +/DeviceRGB CS +0.8824 0.8824 0.8824 SCN +0.5 w +78.6929 779.5278 m +534.5871 779.5278 l +536.7962 779.5278 538.5871 777.7369 538.5871 775.5278 c +538.5871 744.4992 l +538.5871 742.2901 536.7962 740.4992 534.5871 740.4992 c +78.6929 740.4992 l +76.4838 740.4992 74.6929 742.2901 74.6929 744.4992 c +74.6929 775.5278 l +74.6929 777.7369 76.4838 779.5278 78.6929 779.5278 c +h +S +Q +/DeviceRGB cs +0.1294 0.1451 0.1608 scn +/DeviceRGB CS +0.1294 0.1451 0.1608 SCN + +BT +89.6929 756.1335 Td +/F1.0 10 Tf +<5369656865204d75737465726c9a73756e6720696d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +201.1029 756.1335 Td +/F1.0 10 Tf +<4368617273657473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +241.7929 756.1335 Td +/F1.0 10 Tf +<204d6f64756c202d205465696c6175666761626520286129> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +61.2829 725.1049 Td +/F1.0 10 Tf +<622e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 725.1049 Td +/F1.0 10 Tf +<4572678a6e7a656e2053696520646965204b6c6173736520736f2c2064617373207369652065696e7a656c6e65205a65696368656e2028616c736f205a65696368656e20669f72205a65696368656e2920696d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 710.0764 Td +/F1.0 10 Tf +<5374616e646172647a65696368656e7361747a20766f6e20646572204b6f6e736f6c652065696e6c6965737420756e6420696e207a776569204461746569656e2073636872656962742065696e6d616c20696d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 695.0478 Td +/F1.0 10 Tf +<5374616e646172647a65696368656e7361747a20756e642065696e6d616c20696d205a65696368656e7361747a20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +307.6929 695.0478 Td +/F3.0 10 Tf +<55532d4153434949> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +355.6929 695.0478 Td +/F1.0 10 Tf +<2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 675.9392 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 675.9392 Td +/F1.0 10 Tf +<4469652045696e6761626520646573205a65696368656e7320> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +215.2229 675.9392 Td +/F3.0 10 Tf +<71> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +221.2229 675.9392 Td +/F1.0 10 Tf +<20736f6c6c206461732050726f6772616d206f7264656e746c696368206265656e64656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 656.8307 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 656.8307 Td +/F1.0 10 Tf +<446965204461746569656e20736f6c6c656e20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +181.3029 656.8307 Td +/F3.0 10 Tf +<436861725365744576616c756174696f6e5f44656661756c742e747874> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +355.3029 656.8307 Td +/F1.0 10 Tf +<20756e64> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +92.6929 641.8021 Td +/F3.0 10 Tf +<436861725365744576616c756174696f6e5f41534349492e747874> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +254.6929 641.8021 Td +/F1.0 10 Tf +<2067656e616e6e742077657264656e20756e642077657264656e20656e7477656465722065727a65756774206f6465722c2066616c6c73> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 626.7735 Td +/F1.0 10 Tf +<7369652062657265697473206578697374696572656e2c2067659a66666e657420756e642064657220496e68616c74209f62657273636872696562656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +96.6929 611.1392 m +534.5871 611.1392 l +536.7962 611.1392 538.5871 609.3484 538.5871 607.1392 c +538.5871 519.0249 l +538.5871 516.8158 536.7962 515.0249 534.5871 515.0249 c +96.6929 515.0249 l +94.4838 515.0249 92.6929 516.8158 92.6929 519.0249 c +92.6929 607.1392 l +92.6929 609.3484 94.4838 611.1392 96.6929 611.1392 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +96.6929 611.1392 m +534.5871 611.1392 l +536.7962 611.1392 538.5871 609.3484 538.5871 607.1392 c +538.5871 519.0249 l +538.5871 516.8158 536.7962 515.0249 534.5871 515.0249 c +96.6929 515.0249 l +94.4838 515.0249 92.6929 516.8158 92.6929 519.0249 c +92.6929 607.1392 l +92.6929 609.3484 94.4838 611.1392 96.6929 611.1392 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 587.7449 Td +/F1.0 10 Tf +<5369656865204d75737465726c9a73756e6720696d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +219.1029 587.7449 Td +/F1.0 10 Tf +<4368617273657473> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +259.7929 587.7449 Td +/F1.0 10 Tf +<204d6f64756c202d205465696c6175666761626520286229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 560.7164 Td +/F1.0 10 Tf +<446965204d75737465726c9a73756e67207775726465206572776569746572742c206461737320736965206e6562656e2064656d2044656661756c7420756e642041534349492061756368206578706c697a6974> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 545.6878 Td +/F1.0 10 Tf +<4461746569656e206d69742064656e207a77656920688a756669677374656e2044656661756c742d5a65696368656e738a747a6520285554462d382c2057696e646f77732d3132353229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 530.6592 Td +/F1.0 10 Tf +<67656e6572696572742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 499.6307 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 499.6307 Td +/F1.0 10 Tf +<54657374656e20536965204968722050726f6772616d206d69742064656e20666f6c67656e64656e205a65696368656e3a206120422063206420> Tj +/F1.1 10 Tf +<2220> Tj +/F1.0 10 Tf +<66209f205f2071> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 480.6021 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 480.6021 Td +/F1.0 10 Tf +<8566666e656e205369652064696520546578746461746569656e206e61636820417573669f6872756e67206465732050726f6772616d73206d69742065696e656d2054657874656469746f7220756e64> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 465.5735 Td +/F1.0 10 Tf +<65726b6c8a72656e20536965206461732045726765626e69732e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 446.5449 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 446.5449 Td +/F1.0 10 Tf +<8566666e656e2053696520646965204461746569656e20616e7363686c69657373656e64206d69742065696e656d204845582d5669657765722f456469746f7220756e6420766572676c65696368656e205369652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +96.6929 430.9107 m +534.5871 430.9107 l +536.7962 430.9107 538.5871 429.1198 538.5871 426.9107 c +538.5871 278.6821 l +538.5871 276.4729 536.7962 274.6821 534.5871 274.6821 c +96.6929 274.6821 l +94.4838 274.6821 92.6929 276.4729 92.6929 278.6821 c +92.6929 426.9107 l +92.6929 429.1198 94.4838 430.9107 96.6929 430.9107 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +96.6929 430.9107 m +534.5871 430.9107 l +536.7962 430.9107 538.5871 429.1198 538.5871 426.9107 c +538.5871 278.6821 l +538.5871 276.4729 536.7962 274.6821 534.5871 274.6821 c +96.6929 274.6821 l +94.4838 274.6821 92.6929 276.4729 92.6929 278.6821 c +92.6929 426.9107 l +92.6929 429.1198 94.4838 430.9107 96.6929 430.9107 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 407.5164 Td +/F1.0 10 Tf +<496d2054657874656469746f72207369656874206d616e2c206461737320646173205a65696368656e20696e20646572204461746569206d69742064656d205374616e646172647a65696368656e7361747a> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 392.4878 Td +/F1.0 10 Tf +<6b6f7272656b742064617267657374656c6c7420776972642c20626569206465722055532d41534349492d44617465692068696e676567656e2077757264656e2064696520657277656974657274656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 377.4592 Td +/F1.0 10 Tf +<5a65696368656e2028> Tj +/F1.1 10 Tf +<22> Tj +/F1.0 10 Tf +<2c9f292064757263682065696e20506c61747a68616c7465727a65696368656e203f2065727365747a742c20646120646965736520696e2055532d4153434949206e69636874> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 362.4307 Td +/F1.0 10 Tf +<656e7468616c74656e2073696e642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 335.4021 Td +/F1.0 10 Tf +<496d204865782d456469746f722069737420657273696368746c6963682c206461737320696e206465722044656661756c742d436f64696572756e6720646965205a65696368656e2065696e656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 320.3735 Td +/F1.0 10 Tf +<657277656974657274656e20436f646520686162656e2e20456e747765646572206973742065732065696e205765727420696e20646572206f626572656e20488a6c6674652064657220436f64652d50616765> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 305.3449 Td +/F1.0 10 Tf +<2857696e646f77732d31323532292c20642e682e2067729a7373657220313237> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +264.6429 303.6426 Td +/F1.0 5.83 Tf +<646563> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +274.2041 305.3449 Td +/F1.0 10 Tf +<202f203746> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +293.7441 303.6426 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +303.9291 305.3449 Td +/F1.0 10 Tf +<2028> Tj +/F1.1 10 Tf +<22202320> Tj +/F1.0 10 Tf +<3830> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +341.9291 303.6426 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +352.1141 305.3449 Td +/F1.0 10 Tf +<2c209f20> Tj +/F1.1 10 Tf +<2320> Tj +/F1.0 10 Tf +<4643> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +390.7441 303.6426 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +400.9291 305.3449 Td +/F1.0 10 Tf +<29206f64657220657320776972642067656d8a7373> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 290.3164 Td +/F1.0 10 Tf +<5554462d3820436f64696572756e67207a75206d6568726572656e204279746573206572776569746572742028> Tj +/F1.1 10 Tf +<22202320> Tj +/F1.0 10 Tf +<4532203832204143> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +395.1429 288.614 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +405.3279 290.3164 Td +/F1.0 10 Tf +<2c209f20> Tj +/F1.1 10 Tf +<2320> Tj +/F1.0 10 Tf +<4333204243> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +458.9079 288.614 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +469.0929 290.3164 Td +/F1.0 10 Tf +<29> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.7294 0.2235 0.1451 scn +0.7294 0.2235 0.1451 SCN + +BT +56.6929 239.7221 Td +/F2.0 20 Tf +<332e20427974652d2076732e205a65696368656e6f7269656e7469657274652053747265616d73205b50555d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +61.7929 218.7078 Td +/F1.0 10 Tf +<612e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 218.7078 Td +/F1.0 10 Tf +<5665727a656963686e69732d537472756b747572207665726966697a696572656e3a204d6574686f646520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +282.6029 218.7078 Td +/F3.0 10 Tf +<766572696679536f757263654469722829> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 199.5992 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 199.5992 Td +/F1.0 10 Tf +<446173205175656c6c2d5665727a656963686e697320736f6c6c20617566204b6f7272656b7468656974209f62657270729f66742077657264656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 180.5707 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 180.5707 Td +/F1.0 10 Tf +<4b6f7272656b742062656465757465742c206461737320646173205665727a656963686e69732065786973746965727420756e6420617573736572207a776569204461746569656e206d69742064656e204e616d656e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +92.6929 165.5421 Td +/F3.0 10 Tf +<726d7a3435302e6a7067> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +152.6929 165.5421 Td +/F1.0 10 Tf +<20756e6420> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +176.7929 165.5421 Td +/F3.0 10 Tf +<726d7a3435302d737065632e747874> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +266.7929 165.5421 Td +/F1.0 10 Tf +<206e69636874732077656974657220656e74688a6c742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 146.4335 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 146.4335 Td +/F1.0 10 Tf +<496d204665686c657266616c6c2077657264656e20457863657074696f6e73206765776f7266656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +96.6929 130.7992 m +534.5871 130.7992 l +536.7962 130.7992 538.5871 129.0084 538.5871 126.7992 c +538.5871 95.7707 l +538.5871 93.5615 536.7962 91.7707 534.5871 91.7707 c +96.6929 91.7707 l +94.4838 91.7707 92.6929 93.5615 92.6929 95.7707 c +92.6929 126.7992 l +92.6929 129.0084 94.4838 130.7992 96.6929 130.7992 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +96.6929 130.7992 m +534.5871 130.7992 l +536.7962 130.7992 538.5871 129.0084 538.5871 126.7992 c +538.5871 95.7707 l +538.5871 93.5615 536.7962 91.7707 534.5871 91.7707 c +96.6929 91.7707 l +94.4838 91.7707 92.6929 93.5615 92.6929 95.7707 c +92.6929 126.7992 l +92.6929 129.0084 94.4838 130.7992 96.6929 130.7992 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 107.4049 Td +/F1.0 10 Tf +<5369656865204d75737465726c9a73756e6720696d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +219.1029 107.4049 Td +/F1.0 10 Tf +<427974654368617253747265616d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +297.0129 107.4049 Td +/F1.0 10 Tf +<204d6f64756c202d205465696c6175666761626520286129> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +61.2829 76.3764 Td +/F1.0 10 Tf +<622e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 76.3764 Td +/F1.0 10 Tf +<4461746569656e206b6f70696572656e3a204d6574686f646520> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.2 0.4 0.6667 scn +0.2 0.4 0.6667 SCN + +BT +206.6929 76.3764 Td +/F3.0 10 Tf +<636f707946696c65732829> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 57.2678 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 57.2678 Td +/F1.0 10 Tf +<4a65646520446174656920696d205175656c6c2d5665727a656963686e697320736f6c6c207a7765696d616c206b6f70696572742077657264656e2c2065696e6d616c207a65696368656e2d20756e642065696e6d616c> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp2 Do +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +56.6929 802.2483 Td +/F1.0 9 Tf +<4c9a73756e67656e207a752064656e208662756e6773617566676162656e20496e707574202f204f7574707574> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +413.0011 802.2483 Td +/F1.0 9 Tf +<50726f6772616d6d696572656e203220d02049542e50524f4732> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp4 Do +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +57.6929 26.7827 Td +/F1.0 9 Tf +<405a48415720496e4954> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +291.313 26.7827 Td +/F1.0 9 Tf +<322f33> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +352.5831 26.7827 Td +/F1.0 9 Tf +<332e20427974652d2076732e205a65696368656e6f7269656e7469657274652053747265616d73205b50555d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +21 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 20 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 13 0 R +/F3.0 15 0 R +/F1.1 23 0 R +/F2.0 8 0 R +>> +/XObject << /Stamp2 39 0 R +/Stamp4 42 0 R +>> +>> +/Annots [22 0 R 24 0 R 26 0 R] +>> +endobj +22 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (.//Charsets) +>> +/Subtype /Link +/Rect [201.1029 753.2135 241.7929 766.8135] +/Type /Annot +>> +endobj +23 0 obj +<< /Type /Font +/BaseFont /438c3d+NotoSerif +/Subtype /TrueType +/FontDescriptor 64 0 R +/FirstChar 32 +/LastChar 255 +/Widths 66 0 R +/ToUnicode 65 0 R +>> +endobj +24 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (.//Charsets) +>> +/Subtype /Link +/Rect [219.1029 584.8249 259.7929 598.4249] +/Type /Annot +>> +endobj +25 0 obj +[21 0 R /XYZ 0 262.6821 null] +endobj +26 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (.//ByteCharStream) +>> +/Subtype /Link +/Rect [219.1029 104.4849 297.0129 118.0849] +/Type /Annot +>> +endobj +27 0 obj +<< /Length 10908 +>> +stream +q +/DeviceRGB cs +0.1294 0.1451 0.1608 scn +/DeviceRGB CS +0.1294 0.1451 0.1608 SCN + +BT +92.6929 768.8478 Td +/F1.0 10 Tf +<627974652d6f7269656e74696572742e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 749.8192 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 749.8192 Td +/F1.0 10 Tf +<44617a7520736f6c6c20646965206a657765696c6967652044617465692067659a66666e657420756e6420456c656d656e7420669f7220456c656d656e742028642e682e20627974652d20627a772e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 734.7907 Td +/F1.0 10 Tf +<63686172616b74657277656973652920766f6e20646572204f726967696e616c64617465692067656c6573656e20756e6420696e20646965205a69656c646174656920676573636872696562656e2077657264656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +83.8729 715.7621 Td +/F1.1 10 Tf +<21> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 715.7621 Td +/F1.0 10 Tf +<446965204b6f7069656e20736f6c6c656e20736f2062656e616e6e742077657264656e2c2064617373206175732064656d2044617465696e616d656e20686572766f72676568742c206d69742077656c63686572> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +92.6929 700.7335 Td +/F1.0 10 Tf +<4d6574686f6465207369652065727374656c6c742077757264652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +96.6929 685.0992 m +534.5871 685.0992 l +536.7962 685.0992 538.5871 683.3084 538.5871 681.0992 c +538.5871 650.0707 l +538.5871 647.8615 536.7962 646.0707 534.5871 646.0707 c +96.6929 646.0707 l +94.4838 646.0707 92.6929 647.8615 92.6929 650.0707 c +92.6929 681.0992 l +92.6929 683.3084 94.4838 685.0992 96.6929 685.0992 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +96.6929 685.0992 m +534.5871 685.0992 l +536.7962 685.0992 538.5871 683.3084 538.5871 681.0992 c +538.5871 650.0707 l +538.5871 647.8615 536.7962 646.0707 534.5871 646.0707 c +96.6929 646.0707 l +94.4838 646.0707 92.6929 647.8615 92.6929 650.0707 c +92.6929 681.0992 l +92.6929 683.3084 94.4838 685.0992 96.6929 685.0992 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +107.6929 661.7049 Td +/F1.0 10 Tf +<5369656865204d75737465726c9a73756e6720696d20> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.4 0.4 0.4 scn +0.4 0.4 0.4 SCN + +BT +219.1029 661.7049 Td +/F1.0 10 Tf +<427974654368617253747265616d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +297.0129 661.7049 Td +/F1.0 10 Tf +<204d6f64756c202d205465696c6175666761626520286229> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +62.4929 630.6764 Td +/F1.0 10 Tf +<632e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 630.6764 Td +/F1.0 10 Tf +<8566666e656e2053696520646965204b6f7069656e20616e7363686c69657373656e64206d69742065696e656d20656e74737072656368656e64656e2050726f6772616d6d20756e642065726b6c8a72656e2053696520646965> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 615.6478 Td +/F1.0 10 Tf +<656e747374616e64656e656e20456666656b74652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +78.6929 600.0135 m +534.5871 600.0135 l +536.7962 600.0135 538.5871 598.2226 538.5871 596.0135 c +538.5871 504.8707 l +538.5871 502.6615 536.7962 500.8707 534.5871 500.8707 c +78.6929 500.8707 l +76.4838 500.8707 74.6929 502.6615 74.6929 504.8707 c +74.6929 596.0135 l +74.6929 598.2226 76.4838 600.0135 78.6929 600.0135 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +78.6929 600.0135 m +534.5871 600.0135 l +536.7962 600.0135 538.5871 598.2226 538.5871 596.0135 c +538.5871 504.8707 l +538.5871 502.6615 536.7962 500.8707 534.5871 500.8707 c +78.6929 500.8707 l +76.4838 500.8707 74.6929 502.6615 74.6929 504.8707 c +74.6929 596.0135 l +74.6929 598.2226 76.4838 600.0135 78.6929 600.0135 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 576.6192 Td +/F1.0 10 Tf +<4469652054657874646f6b756d656e7465206b9a6e6e656e206d6974206a6564656d20456469746f722067659a66666e65742077657264656e20756e642073696e64206964656e74697363682c206567616c206f62> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 561.5907 Td +/F1.0 10 Tf +<73696520616c7320627974652d206f64657220636861722d53747265616d206b6f70696572742077757264656e2e2042656920646572204a50472d44617465692073696568742064617320616e64657273206175732e20446965> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 546.5621 Td +/F1.0 10 Tf +<616c7320627974652d73747265616d206b6f706965727465204461746569206b616e6e20617563682077656974657268696e206d69742065696e65722042696c64616e77656e64756e6720287a2e422e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 531.5335 Td +/F1.0 10 Tf +<42696c64766f727363686175204f532c20494445292067659a66666e65742077657264656e2e204265692064657220616c7320636861726163746572206b6f7069657274656e204461746569207665727765696765726e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 516.5049 Td +/F1.0 10 Tf +<64696520416e77656e64756e67656e206461732042696c6420776567656e204b6f646965726665686c6572207a75209a66666e656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +-0.5 Tc + +0.0 Tc + +-0.5 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +61.2829 485.4764 Td +/F1.0 10 Tf +<642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn + +0.0 Tc +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 485.4764 Td +/F1.0 10 Tf +<8566666e656e2053696520646965204b6f7069656e20616e7363686c69657373656e64206d69742065696e656d204845582d5669657765722f456469746f7220756e642065726b6c8a72656e20536965206469652047729f6e6465> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +74.6929 470.4478 Td +/F1.0 10 Tf +<669f722064696520456666656b74652e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +78.6929 454.8135 m +534.5871 454.8135 l +536.7962 454.8135 538.5871 453.0226 538.5871 450.8135 c +538.5871 332.6421 l +538.5871 330.4329 536.7962 328.6421 534.5871 328.6421 c +78.6929 328.6421 l +76.4838 328.6421 74.6929 330.4329 74.6929 332.6421 c +74.6929 450.8135 l +74.6929 453.0226 76.4838 454.8135 78.6929 454.8135 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +78.6929 454.8135 m +534.5871 454.8135 l +536.7962 454.8135 538.5871 453.0226 538.5871 450.8135 c +538.5871 332.6421 l +538.5871 330.4329 536.7962 328.6421 534.5871 328.6421 c +78.6929 328.6421 l +76.4838 328.6421 74.6929 330.4329 74.6929 332.6421 c +74.6929 450.8135 l +74.6929 453.0226 76.4838 454.8135 78.6929 454.8135 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 431.4192 Td +/F1.0 10 Tf +<44657220566572676c6569636820646572206b6f7069657274656e204a5047204461746569656e20696d204865782d456469746f72207a656967742c20646173732064696520427974657320766f6e20426567696e6e20616e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 416.3907 Td +/F1.0 10 Tf +<756e7465727363686965646c6963682073696e642e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 389.3621 Td +/F1.0 10 Tf +<446572204772756e64206973742c20646173732065696e69676520426974666f6c67656e206b65696e6520679f6c746967656e205a65696368656e206175732064657220436f64652d50616765206461727374656c6c656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 374.3335 Td +/F1.0 10 Tf +<556e679f6c74696765205a65696368656e2077657264656e20696e2065696e205374616e646172642d5a65696368656e20669f7220756d676577616e64656c742028626569205554462d3820697374206461732027> Tj +/F1.1 10 Tf +<24> Tj +/F1.0 10 Tf +<27> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 359.3049 Td +/F1.0 10 Tf +<726573702e20274546204246204244> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +161.2029 357.6026 Td +/F1.0 5.83 Tf +<686578> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +171.3879 359.3049 Td +/F1.0 10 Tf +<27292044616d6974207769726420646965204461746569207665728a6e6465727420756e6420656e7473707269636874206e69636874206d6568722064657220669f72204a5047> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +89.6929 344.2764 Td +/F1.0 10 Tf +<679f6c746967656e204b6f64696572756e672e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.7294 0.2235 0.1451 scn +0.7294 0.2235 0.1451 SCN + +BT +56.6929 293.6821 Td +/F2.0 20 Tf +<342e20506963747572652046696c652044617461736f75726365205b50415d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.9333 0.9333 0.9333 scn +60.6929 284.0621 m +534.5871 284.0621 l +536.7962 284.0621 538.5871 282.2712 538.5871 280.0621 c +538.5871 234.0049 l +538.5871 231.7958 536.7962 230.0049 534.5871 230.0049 c +60.6929 230.0049 l +58.4838 230.0049 56.6929 231.7958 56.6929 234.0049 c +56.6929 280.0621 l +56.6929 282.2712 58.4838 284.0621 60.6929 284.0621 c +h +f +0.8824 0.8824 0.8824 SCN +0.5 w +60.6929 284.0621 m +534.5871 284.0621 l +536.7962 284.0621 538.5871 282.2712 538.5871 280.0621 c +538.5871 234.0049 l +538.5871 231.7958 536.7962 230.0049 534.5871 230.0049 c +60.6929 230.0049 l +58.4838 230.0049 56.6929 231.7958 56.6929 234.0049 c +56.6929 280.0621 l +56.6929 282.2712 58.4838 284.0621 60.6929 284.0621 c +h +S +Q +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 260.6678 Td +/F1.0 10 Tf +<446965204c9a73756e67656e207a752064656e206265776572746574656e2050666c69636874617566676162656e20657268616c74656e20536965206e616368206465722041626761626520756e64> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.1294 0.1451 0.1608 scn +0.1294 0.1451 0.1608 SCN + +BT +71.6929 245.6392 Td +/F1.0 10 Tf +<426577657274756e6720616c6c6572204b6c617373656e2e> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp1 Do + +q +77.9133 0.0 0.0 42.2697 56.6929 785.4471 cm +/I2 Do +Q +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +413.0011 802.2483 Td +/F1.0 9 Tf +<50726f6772616d6d696572656e203220d02049542e50524f4732> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +q +0.0 0.0 0.0 scn +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +/Stamp3 Do +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +57.6929 26.7827 Td +/F1.0 9 Tf +<342e20506963747572652046696c652044617461736f75726365205b50415d> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +291.313 26.7827 Td +/F1.0 9 Tf +<332f33> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +0.6 0.6 0.6 scn +0.6 0.6 0.6 SCN + +BT +480.8511 26.7827 Td +/F1.0 9 Tf +<405a48415720496e4954> Tj +ET + +0.0 0.0 0.0 SCN +0.0 0.0 0.0 scn +Q +Q + +endstream +endobj +28 0 obj +<< /Type /Page +/Parent 3 0 R +/MediaBox [0 0 595.28 841.89] +/CropBox [0 0 595.28 841.89] +/BleedBox [0 0 595.28 841.89] +/TrimBox [0 0 595.28 841.89] +/ArtBox [0 0 595.28 841.89] +/Contents 27 0 R +/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] +/Font << /F1.0 13 0 R +/F1.1 23 0 R +/F2.0 8 0 R +>> +/XObject << /Stamp1 38 0 R +/I2 40 0 R +/Stamp3 41 0 R +>> +>> +/Annots [29 0 R] +>> +endobj +29 0 obj +<< /Border [0 0 0] +/A << /Type /Action +/S /URI +/URI (.//ByteCharStream) +>> +/Subtype /Link +/Rect [219.1029 658.7849 297.0129 672.3849] +/Type /Annot +>> +endobj +30 0 obj +[28 0 R /XYZ 0 316.6421 null] +endobj +31 0 obj +<< /Type /Outlines +/Count 5 +/First 32 0 R +/Last 36 0 R +>> +endobj +32 0 obj +<< /Title +/Parent 31 0 R +/Count 0 +/Next 33 0 R +/Dest [7 0 R /XYZ 0 841.89 null] +>> +endobj +33 0 obj +<< /Title +/Parent 31 0 R +/Count 0 +/Next 34 0 R +/Prev 32 0 R +/Dest [7 0 R /XYZ 0 721.5318 null] +>> +endobj +34 0 obj +<< /Title +/Parent 31 0 R +/Count 0 +/Next 35 0 R +/Prev 33 0 R +/Dest [7 0 R /XYZ 0 145.7804 null] +>> +endobj +35 0 obj +<< /Title +/Parent 31 0 R +/Count 0 +/Next 36 0 R +/Prev 34 0 R +/Dest [21 0 R /XYZ 0 262.6821 null] +>> +endobj +36 0 obj +<< /Title +/Parent 31 0 R +/Count 0 +/Prev 35 0 R +/Dest [28 0 R /XYZ 0 316.6421 null] +>> +endobj +37 0 obj +<< /Nums [0 << /P (1) +>> 1 << /P (2) +>> 2 << /P (3) +>>] +>> +endobj +38 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 164 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.5 w +/DeviceRGB CS +0.6 0.6 0.6 SCN +56.6929 799.3703 m +538.5871 799.3703 l +S +Q +Q + +endstream +endobj +39 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 164 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.5 w +/DeviceRGB CS +0.6 0.6 0.6 SCN +56.6929 799.3703 m +538.5871 799.3703 l +S +Q +Q + +endstream +endobj +40 0 obj +<< /Type /XObject +/Subtype /Image +/ColorSpace /DeviceRGB +/BitsPerComponent 8 +/Width 1364 +/Height 740 +/Length 308262 +/Filter [/DCTDecode] +>> +stream +JFIFExifMM*bj(1r2iD 'D 'Adobe Photoshop CS4 Macintosh2010:10:20 16:41:04T&(.HHJFIFHH Adobe_CMAdobed    +         W" +? +  +  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?mv5*,x{E\˝ů3 qe̱C]}OVZul;Ä?FuMϫ};qSc}ƲֺѶ[p_G1`(5$O贽3+q}.Yto1tګX=61w:Y˿JFakZKw8L~nKwTҫ`kCݸmW7U_!ߗWr?Kt6[oWus^kUU{voN?IېEjfq꾣X]eiStuWStƋǦc'6 !I[6ꈀqu[>ϡ?ER^;c26{a!1n\l fSXax5i?*_kzo1aIq&F~M}?Sӽ/KkF='{9iK?kfuUVEoXƸ\ָOmFclxA6z?"YX h.qѻ"ǧJasv9YX%$B@$j$I)I$JRI$I$TLHh.q5$J]$a܊o/Wh(2Ʒ+%(iǞh㧹ato7_EiosZjݯ?~]U:s^X44{<}V/M/Vr,F5slppSĒoMBcIk&ͤhZDYZyYWדTEH 1 6DI@T$eTֽcsIH +g= |JdI$$Ǵ=i8%2I%RS=HݲFJdI$UӤ~qpmΆ}"˿II:0&"Q1;OOYceǹ%sd{l]ןYzsȩ:Fĭ߹r]_뗛gLńhmp8}j-oM_&><LGw+&)Ҕ].]s4^Eu % wFUebKGo]_T륭ckZƵk~Z'MH@0|pe\Ԛbɋ /ts謹Jߺϱg𞍶CԲ:w_u$ʵ{lwScen[`z=y'E:wϵsbQأ6/lGZ>dW5&ۛ][*ٶϡIz}羰}V6ޝȮ~q]햽~j\3v#AGxlWOًԟ;f#MjOS!>~33!kTv;Uܳ_QtWUm܍܃[͍C XFYVSs{s22ny/n$MlT}_1yӆ'G]oձ3 7Qxa2 +:. {ax=n=W:?fegh ǐfo5!} [Vi ~VEcʙk@MVao*/( o?}`tNv>U=r__QAw1і Ӡ@ AjӾ~2ml4㜋_hދ6}^]3zvpǠ.wOMɒ&1Gp]LHomtXٗ +fQN?ܿQ7KV:ֲ2uƀMdYIk{6V=<33(d6M-_f3nV꣤uul36~nbt¤ +$|p?Zo~-]$IVgU0>~@02Oo&oK^_7]`j.ۨX^Xʫݾ!bZ~ϝ+C/2?=f>G+<Fgh@iM<4+[\\<:'Jsh'85:7Է}OϫS~tnz~?EnUξὕBxO᯷ sNHfBn__/}_Yxe}6Q/{_߻~0CA'֘9- #Yq[FswZպ?_5SHwYѺ+=Ò,c>T=7WW=eNj5ldGLc_/KuŸ5RI}^c]xKY^ŏ120kx- ŇHao߻Mp]'UkUNS_/aU==mn=T|e_œeuF\/֦x_:x.q?S :rlcv08wr i͌4 j1Sx Ŀ'+׎zSeog髳[U:\`nuG6eTܲ]mlcXNv3O%So2 +jmw3) ]b]GW};)6_YoRl_Cg0, ~[Ժ{:5=9lwz/ 1,K;z446n5YαJKţ>zY9]DbF; >0}];hV;q+xm ;C#<FkqRG}4b;bo:rv7]ro?- +,K]mAޣcrvTf]S_(hvƵ#GcRܟݭvgP:wwTWn+L羭s[{oO?/kzoSë*ÉWLmm03cn}otY]"\\6b66Zisk5{zSmCwfCqH97l-o6{=9@#॓1]O;u܌K0r\׿*6!eNm!z_+  eӗhCgóm%:g]N:RJ}MlizŅA9. nf; {._ҭiN L(iz?ňNγt).~6\urS{~ջ gHN;Py$[SߪYxd]]N'q!Fw?X0>/nh&|l}[EY[R,' 8GuY`My4}J:oG9RP_[1#94sF"u:wUŮc0?Vg`﬘lkqɰŸu2krޟnב35ڣoZ*n^T{̃ǚ]g"Gl zcI$U$I)I$JRI$I$$I)ԧхs𲱲,quF/c\K )=_}_ǭZkcsjkۏ rK[cgbڏ/{}vH3Zjȡ{][,G?^ѱ6?Tu~/s^ bu9s~z%5{X?){/_Wow~ GԪmfYz[_K`S +܊mweGeN}޾rIsu?{\ykƯ[u?c/kS6yx~k]Rkzv759_5;pCo' ꤗʩ*RKTSRKTSRKTSRKTSRKTSPhotoshop 3.08BIM d-zhaw-zil-sw8BIM%m';L/D<(8BIM8BIM&?8BIM x8BIM8BIM 8BIM' +8BIMH/fflff/ff2Z5-8BIMp8BIM8BIM8BIM08BIM-8BIM@@8BIM8BIMMT de-zhaw-cmykTnullboundsObjcRct1Top longLeftlongBtomlongRghtlongTslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum +ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongTurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong +leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM W JFIFHH Adobe_CMAdobed    +         W" +? +  +  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?mv5*,x{E\˝ů3 qe̱C]}OVZul;Ä?FuMϫ};qSc}ƲֺѶ[p_G1`(5$O贽3+q}.Yto1tګX=61w:Y˿JFakZKw8L~nKwTҫ`kCݸmW7U_!ߗWr?Kt6[oWus^kUU{voN?IېEjfq꾣X]eiStuWStƋǦc'6 !I[6ꈀqu[>ϡ?ER^;c26{a!1n\l fSXax5i?*_kzo1aIq&F~M}?Sӽ/KkF='{9iK?kfuUVEoXƸ\ָOmFclxA6z?"YX h.qѻ"ǧJasv9YX%$B@$j$I)I$JRI$I$TLHh.q5$J]$a܊o/Wh(2Ʒ+%(iǞh㧹ato7_EiosZjݯ?~]U:s^X44{<}V/M/Vr,F5slppSĒoMBcIk&ͤhZDYZyYWדTEH 1 6DI@T$eTֽcsIH +g= |JdI$$Ǵ=i8%2I%RS=HݲFJdI$UӤ~qpmΆ}"˿II:0&"Q1;OOYceǹ%sd{l]ןYzsȩ:Fĭ߹r]_뗛gLńhmp8}j-oM_&><LGw+&)Ҕ].]s4^Eu % wFUebKGo]_T륭ckZƵk~Z'MH@0|pe\Ԛbɋ /ts謹Jߺϱg𞍶CԲ:w_u$ʵ{lwScen[`z=y'E:wϵsbQأ6/lGZ>dW5&ۛ][*ٶϡIz}羰}V6ޝȮ~q]햽~j\3v#AGxlWOًԟ;f#MjOS!>~33!kTv;Uܳ_QtWUm܍܃[͍C XFYVSs{s22ny/n$MlT}_1yӆ'G]oձ3 7Qxa2 +:. {ax=n=W:?fegh ǐfo5!} [Vi ~VEcʙk@MVao*/( o?}`tNv>U=r__QAw1і Ӡ@ AjӾ~2ml4㜋_hދ6}^]3zvpǠ.wOMɒ&1Gp]LHomtXٗ +fQN?ܿQ7KV:ֲ2uƀMdYIk{6V=<33(d6M-_f3nV꣤uul36~nbt¤ +$|p?Zo~-]$IVgU0>~@02Oo&oK^_7]`j.ۨX^Xʫݾ!bZ~ϝ+C/2?=f>G+<Fgh@iM<4+[\\<:'Jsh'85:7Է}OϫS~tnz~?EnUξὕBxO᯷ sNHfBn__/}_Yxe}6Q/{_߻~0CA'֘9- #Yq[FswZպ?_5SHwYѺ+=Ò,c>T=7WW=eNj5ldGLc_/KuŸ5RI}^c]xKY^ŏ120kx- ŇHao߻Mp]'UkUNS_/aU==mn=T|e_œeuF\/֦x_:x.q?S :rlcv08wr i͌4 j1Sx Ŀ'+׎zSeog髳[U:\`nuG6eTܲ]mlcXNv3O%So2 +jmw3) ]b]GW};)6_YoRl_Cg0, ~[Ժ{:5=9lwz/ 1,K;z446n5YαJKţ>zY9]DbF; >0}];hV;q+xm ;C#<FkqRG}4b;bo:rv7]ro?- +,K]mAޣcrvTf]S_(hvƵ#GcRܟݭvgP:wwTWn+L羭s[{oO?/kzoSë*ÉWLmm03cn}otY]"\\6b66Zisk5{zSmCwfCqH97l-o6{=9@#॓1]O;u܌K0r\׿*6!eNm!z_+  eӗhCgóm%:g]N:RJ}MlizŅA9. nf; {._ҭiN L(iz?ňNγt).~6\urS{~ջ gHN;Py$[SߪYxd]]N'q!Fw?X0>/nh&|l}[EY[R,' 8GuY`My4}J:oG9RP_[1#94sF"u:wUŮc0?Vg`﬘lkqɰŸu2krޟnב35ڣoZ*n^T{̃ǚ]g"Gl zcI$U$I)I$JRI$I$$I)ԧхs𲱲,quF/c\K )=_}_ǭZkcsjkۏ rK[cgbڏ/{}vH3Zjȡ{][,G?^ѱ6?Tu~/s^ bu9s~z%5{X?){/_Wow~ GԪmfYz[_K`S +܊mweGeN}޾rIsu?{\ykƯ[u?c/kS6yx~k]Rkzv759_5;pCo' ꤗʩ*RKTSRKTSRKTSRKTSRKTS8BIM!UAdobe PhotoshopAdobe Photoshop CS48BIMHhttp://ns.adobe.com/xap/1.0/ d-zhaw-zil-sw / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / Cyan Magenta Black @ICC_PROFILE0ADBEmntrRGB XYZ acspAPPLnone-ADBE +cprt2desc0kwtptbkptrTRCgTRCbTRCrXYZgXYZbXYZtextCopyright 1999 Adobe Systems IncorporateddescAdobe RGB (1998)XYZ QXYZ curv3curv3curv3XYZ OXYZ 4,XYZ &1/Adobed@T  +  +  u!"1A2# QBa$3Rqb%C&4r +5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' +sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?AϚ!w_]=s;wvCI۴vXj,%c*Spāǹ}ݹKgHZFᏈ@ }sLyo$Dxqb=O'{cA GOѪrI#[P?_=a~]`>|8;b{3uUbTx;,K6:I_;]4g?oy':[e0@Ď#$ N(Eum瘹 nfݮxRNNbB>CxlzKFd3^fk#nfsXyqչt Y8 Ӥ2H]2<FbKXx-i Th OK M۹jA,pnR[H9 B@Z + WM|K![qaMhwm_3Íb_/OYM^sw!oij_;dtG\QLJW{"/~ +f{W=X+$-]ӛ=Y׽u~{ߺ^׽uH_w>ijտqcޏDo=/?nZ`wo?/u/yqR^׽u~{ߺ^׽u.?^t\Q_ag*'[cs{^׺u{N?P#rG[kauڗ[cs{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺTQ?I&gaJcEgSlj7;E\CO:xgc?-)Ys`|6}Վ]zJMM>+aFd? +?3|O?we1؁44h9}5o왼>nSi!hF&{{q/MͨJ\J׎1&DC̞iwg$m֞c+el \GϷsnM7cjn˧ju:e6Z H'N"#k]z(/#YSu +(htg[)^>jFdj5R GCsdYٌv[+.duu +5UemSdQmWIlٻs*ݔc=W{I$R"+ ~v67Ф`87nݡ䀵̠ݐp%Hz_aPgvnpY#*c9|i?݃]ab-.k{X;Pˎ,c?չĴFelR|ۢ:8>͉B~%tٝM]jUYܞ7 E^ȼUr3EEJFM<;ՠ7eUDAB+7l ANdw Xt-vK÷{d1[3Eʝkƅ@>!rƫȞX>-,OM/s휄YIq{cdiM=[R3uRfyii)TT=0G9kdSouy lƘ$mHG + $ +h_q9{ogyNf\F]cw*Y3@, Z3' ]߿%~`o#; NL>MO󒡩M㹲] <5.bwgm,ۣU8UcHDP2wBt7om ,kc//_ˣ??ɞRv[6o7f>m۱KYGG')v +Hu_='[+<ʪPrYQ%S(P EE4s>GG7ݵ,p6(&XK$%+Rp?W ִ ]v2Ltx;m9@^M] t`_@ }witmG3jӦ'Yuz#_ng&.{K9a]:KƺFZixtiip|O~ftQ}&-ص'ĵS9Dx11PRFKboN7c6莐KxO(\kҨt5溞J3Ov߾= $%tjyb(4T{w vI"es:LJ>gv,jlfom k&%]":T4˽ٹ_WżP0:K)CZWIw7r7w^-ѹ9` xu,s[ՌC9c⿘'su^?=x xvvfڸ=Q/Re22>1B8" +4YM{ە;·}m4;gsXSTP*WWe2C_ 9{8s9>#+U6X짾#G˻\i:ir +ʆ:OΛ/qs?i[In9Th]${EWֲPU֡l:ruۗ/xOd{1/1eք SZzǎf͓O9s~mIzY(↾fo_?Z ̪}>/- ᕡLTxoJi!J1k/o\,.% %jƧɤcJ vܳ(+?l AfĢ]N ꌾ6'ߓ_Sdb>QEؘoKػ^ 7Y~ /W/EU >3uD@B'h~S-C >aѐiS$̤QwX?8r9{d1Hu0`khh#zb|Bݟ[a>O~*o]9v=C'_VͬT#3gi攢sQ-p/&saXjֺL^,r,a#PjQRJE[7ݣxvxmbj M uRRİVj>P筺}_,?]뭩oʔ{q$4lͷH]?E䧆 +{\t޽^B>$sD+xd32 -ݣaսƵ42N$F$J*k˯Uڝ[s9NXPc٪i0,-ROI E4A7"oS&L_Nnv&¦ᆭ#ӭ5E<ڡTM;Z東-2"TQK)PJԬue s$s[^jKՄs9`$] Ccc0"MG67ڙΉpj%a*s-%FKSP,5^jI%E +e2_c`mOhq \ :рRϿm~[%K׳)B,H"Wo,ۓ> %ۨhj+~ŵ;sIºE\Ƣ:jzh)cCIp?gMlK{`Y-==}“eƸl#i#VXHѮ@Ɵ>wOqw>P=χ>$0!TK4RLdkUQ?KDl/]+~gr䢡~ ME[w䞦4(*qO:L$3'6{!)pX>bH@b[RѨ+NM'-[s3KqGP14K,;Z^|Ch0sqe{[qnm3oEGm\3#Y Tj*ۯt}-n-C7^$:3@u(u2[t=Jߓ.t/*U`N9%cpw?_T? { + >S36 M6,-6')5ZM,`Oby瘹j۬ *Md; +~IFuY%5"y"ז9U'3Ʀ3#j!CQݧE?-X層u)lm4 fԯA{t/UN>1,HdPí)l׍vD`E`F(YTDy}wMw~y/c$T,I!iYkݧJPŒQ_{bo~v\U,Wbd]s'5MV +0ɌRc+[ T`W~r|](9S1H7nj4j|2S8ְACAM#oa~;)\~a +h\BW3T3j "':[~+ƨ%H +%)ZcET$Q ?b|!K;7+ؽg`bdkߴiYXRM:$d 2)ixguM?Av}ݔ[FmjMǘەsQ8Hfy:ӔO{$tBY ysܢVJ71#czkQS r;/Ϻ:Cs1owvAGQly +PpA*isY f9%CM)WȾcs~P sN/ą:;P *1?xor7K[YREBGw)JBX/:?EٞeعvaQ95uw%5 5^+'AYSD7n]|MJ⅁8G~#q+F*۟~gu\vY B2񘙘C:tɧ1v=v2kv`oeI4<{S,)=<Ȅx[wkqcu-ڔduz}a [R)'EOVI2F{'KOcZ,NעO{>Hwp;VTH+~α4kX1=uf?ފG_/{m4}?/ճ'_k"-ۧ!$preNgr5.+'ƈʪMמ1'D4@iIz e,p568OO6y,UyR1m"r f1rp<%D O\~;{iXE[[.[W +`?uǼ3:wɟ}s[Wsum~=׹Ӌn&ɷ6a 5IIJOU(>y[7=mok;}~$4iwPhB9Õ s Gȫ,#҄pUh2EZ6-D)SrG"HWGF bP@HXh %aPu~fZ?]a;_x2F>ٟ!m~T7 -ٛ`=CdʵV P2SyAgwܷc8QoNKZ)hg4y˅龒Wm +JhjUPV4t- h??=v1dmH?}/)of?Vlu/d纗;;#?Selӭ&ߤ+BՑO" o}ߓ7T;X EA +9L5*z+Cޫz˚/屸vv˘HPR5+ӦSB!6kbzZO]KMS*ƒ#YIw&M0GD$"5ALe-ndbP|:`qcY׽uS#m(F0{ OciCәӭ%k|o^vwdc={79R\TԴ0"(̺Pc9op7;XD73D*jtT}y/l+d d 0"3Py +yup|.f ?p۟~? jXU=~ m>}ջVM/&띟Fߓ-YH*4ƢT$sT@Beg۾{ o7R!ܗ\aϹ{.Ͱync6$)ސ[Dj4]>p>ݥd3>5PWFAIm=ki_?:֟*t{>///)鮶կZR:yv;ev;)hg;I18'>sf^=UϬ OzF?-4˪uMc\3oF:v_&]LuS(Pt[l +\)F _/Ө@փkqMfE^>'S ?ꖾPy|'4#pęnةtiN1ψ7s*}+}yJ !Ovu֟?.~Ꜵ&MչO->+zg?ñ635D}m Le?p}ⷺ_SY58χu^'?E}ΰ-Q;{mNٔXϼT84u)|4F<0"4 +m;6 fr K$Ty;rۨ-ԅ2JS(*|TsQtawܽtm2LyʪGWT"jBEۯvݹDOVSMBX٣S%ż$#l*0EA)jJj/&XRd@@juud&o'g7yg5>=? HӃ'$2/%z{_?'ogo:+ &T19ۋin>ѥ|FTE<+Qh$Yat fƙgnۑ6b"Op I#iR8(A GS;/>Zr’ٕЁ$R,KD$TPAVe8=Qn;A5='zYν)W(河wD9$ Q>H;qabBϲ;}9C&(b轉Ϸ;oZKlOc%Ozg|i|tg}KCCGx;w^ +9wSlm4ROjxJMI"fg{W&_j 4AȄI]F*JE4֫U߯q3 OxlBc01o<@W5CC$r?/I׃?2<޲*Dbզ5WLrKDK?lAwڔ5ӎA-4xS8ݒ5 }Exi#V^3: ާW3:b7s^#qnUl6*EqSZK E:Rmnc,&6)-x2&ژ + *C9s+워FΟ +)$UMlQt)5:E:֓GW]G<Ґ Ȳ4RI"72$2b8>ض+2$$b/UUaP~xٞSz$Jy-N^{ļ_on~?]lG +{ʁkG+lxnuʹg#9^tGWh%m]8eSubtT>H~ .ue?zZ}(?#9?aeB܎?:uڗB) t?Z w!T1N` JĤAOJar{}72>'ωOG|<d.d 1vg'p==Qzqfc-vvKa{>fWmjGOId8^HшPgۿ9 ݮYZ&e&I; &zZ>'"}6kI$xbhT\E{?ivy9=Gݝ*uZ׍hପX7ڝݯbb=̅ + BUpJ@/1{/9v\HK :P–WБ tЫﮰ= +꜖mR +E $:HVhS({žxݶi sn bO]}|;^ü͝pBY?Li]$H +p8tg}z~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uґ;7hv~m k4"661YlV>gZ\q}F/Q,Ih]^[>kgss,x yc Q@ ט5{s5 +ophe`N@]Ub?^s|&E1uT8V+Lxn>EQTU +od=.9I ffԳ3$RI$rOS$xt`KknLxBUTQU@`AӇ=#cn;^Xl骏rΞݯc7g򍬟;ȍS{ປ-c_#ʈTA&{ o +YN57Yæ']/TFgDRpJTeV:nOyf6;Kf֔c>(Vh ":3O=o! tw{*ݞoۻR͸:s'QWG8< +NiSOGYL$cSdٞ[Noc(!m FYR+VSP %~sO \̼q<53W@th^IҎ(HJ1X~7ornNڻ?|Mٷvπ;p#5E-1VR3OI414lː$ t{5ԒDBčI571>k5f8X㦷F_?HЁIK~, N{wOJki dWJl<3T;'v68!Q3ù\g>]d k?hmoq=b<9_nnx,X~7. ծNڗ#$S Ʀs͵縛՜,O9*ʲKl6[K؞cPQl2WG\=+#?--U]ߝ+dv" ~sog{_=hX:JWo%T2cQO =Lg7-EsBYd`J#IFO*# +=9[Nx[s+F,Fd& !IHfA-C;vwv1Kp&Sr{''*qs(M4IFJ˛_0–JRbsEgUҚmzi,n^ZM!354-n'U$VB(~(|2Ϛ+);wiWC텸p-Wb7lLLd#T뫄Sj|rNooֻ[fg\*Die=8NO<{Onq@C[іeRqz>&M,5v_v:_6Xg&/rf ?Xih>ҎH|'Y_J0bǵ[gw2mwPq/ <>](0*G[}myJHgmr*]*C6(@kоGWGUF=r'#w+|/~⧋%mw?w .?}}GkG|}qъr_˹sgu/ކNMOG6jn7v>JHfa+fȱBZjx)^V|TfZFr$ʡFU΢}awm(1HZ,.X9"M + hwߓw&&hr]>ܛo!_3MĐ +7%0)rɽ9!d櫩ck$I$tנ}ދvQc|1AF@1Iu=f#|ۮH<1k@ mG @jp3﷿x^,짖)6$24HHQtsT#&iƊa_bF|Q8w 6>l}~F婥hdTJi]a(зo9n7 +gp®[A `@R(ZxQo(6jRJnhHIП&4a\#knߴgG*2W5M1s7eg&pۛdȥ}cՉ4Z9Ooq=ۓ9`l *Ѹ~<9b5dQ@R^Aw{]N>(lg1T+dOsqtZLn;LN0qOEMc1snow=tӥ +x +ƨ%gyӍEQ:,ޤC'ZئNn8 IJ:%c5u J|#YlIm͇pQCTcsuPMYW ̳OH +J3򿸛I,=ŒkI$U`+*We7{cݟE1r@:RWzw;;ϲ:Yz +*k?osg+1ZȪ&RiT xEZ)cU`g;_r}nL[( NY3)bf]?}n^ٸz'ݴrٌݧ ?^5U,éj+A%L<|˛/ { ksnۢn8+Pq iPjCk7r>vP$Y54aSĖfHռ5g`)hm~T{WFlݾ!LHLjܞܹ NVVb31SU[2ǧ#;Q3}˿nv4Ex:=)vdN[YhH @I'sN$Xsp?6fv} &_qu\.ruNԹVI" 56 ۟q6מnVr,<䫣VW*H#RWV>l<2nԣe`?":QWvghؕؾuy:-wRMj ny vkwM+ex# +e# D  O!7ٷ痶I.$,!* t+ OC(!_3H펶۝yEr</.T-|MKM2#IJAo${w7ȣV^9{jY6,X@G綻m{B 8%&: $ը  +J$WG;zj?o}}gM}q*g{o+-4p +*U&]H߽^mRB*Le&TSN\s&m0r9ķ6h +$Jp[Huj?ŤW 0?~ݙ_zA;1.> [;&~5wc!1SP(D58z;`Jt]uЭLJF hƄ難jB ,yΛ}ViE2HHyH?W*$i*O[>Buz=#C62]E_376$Y3m5`U[JGzHدsOem;u Kt1p>\(Lxoi^wT][ + 6 xgE%)'{ ]E?%~ +v&2WRDiire6dޚWx^C#OiF_!cV>rBJufcV}c]nywWK=^`(kw(Ď$5*(o.>duO:6o6fs r+CYͣZ2ML1U\4뢡#rgw;S.HL%5 )y^3ì7v-O]s8C)t +7oz?Mѿ!<]nl r[M`>UcKL% +4pu#Ű]2J[*S-h^7bt(EZGB׷̖[o5r/qs3!mQH O:ջ&||>?|oO2RGt۹MI_ǧUyHCL )+!T֢ﻟ.Cv8ہޱXgX0$*v4OgWt#G鼁^"ݤɌ1>ZNsRu^ݛc;ݟyj|slc1ⱴ1#X iBF2~w1,( bDbĎui3(G@-=O|vne;I^HtP"BƆ8gBV%’:S/a=ى9{w)WMQq6'MطiozV:ViQ^# ko{=~kb]N +uijV1?F_G݆rdDo&YF )GtHx4iQ;^vy )E^+AHYd }ˎ\fUF:-@NVh܀HGb u_ǏKam +.>vdm޻I6Yn+2]D1,>eۏJcf$ +v#@Vme2s;D^9!`C7ub͋\߹/%=VDcDG,Sģ BTwo?S|uSߎ}ۃwx "dD ݙᕢQ+Gb)N÷r6{䛖4z8]B4ZF™&D]*9t##TV#&MTeyY#YU]2mכnw_nQm.gbmz)3Iv r$g7ܷ qoNdyd#]ͼlܱm;\w&(Y$JFHJ֍QQљYC nw!Q7N31c6z &Go+UbcȲ% +!ot͹z+x-E5VB){o|k}-͡EeE ˤPkS3o)?>=~|Pٟ+8m޵;je=sR&c6T:fUiG~aoxy7].X 3lcrϺ{&3Dz[FEqQ. ++v63Jt?&}j:~6ڮ9<3~/DFoADG/ĩLK+[g۞Vɺ&LmEcxt9PIlV'/ݽwnO-)6dc P^׺u{{^FO滞&8=t"f O0 +ȯY&zQ؏4t)Ϗhmn=nϿ\ +\ӴDC%=s˝s7K-xi14Z]8s3O>H~^HSQEhabeXH5͂fo%E=ApcgܩXHV~O_w~qkklH zNjݽ]N{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ/\/a//XGw$1E{_5M|42{/VT;o_ԻEߘAzc-X*7+s3Rۤ1M o줌iLS=H?y?pÐ,vJ‚]A" +okAꬦ:|DqyTTK*.bt>Ǹ +4XUvz9HX4脟RTq>(}W^׽u~i(/rP?PvN笀4K[W;=xkK)q3/'X٭\9:CH&C,-LO`WqQ}91+k.vO :߰67Wۏ+ڹ n{-Y~tcՒI!TRP̦ggKۮlY#YK$ hѺ='փKُg,6xm23F3$oI!Aξ>Ks?-ob۝pqVd`#3xoeE{lytve4ͥQ1bI=L>nۆ{FZ$WSͥ*< t4׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺\9%wi]jퟵw֤x)I1 !0 @t yع+ inq$bC-[DhpPqoo.Mq޷78粒1F- Q|IdT Cv7f|C>7fh`r[Jm`*3ܚG2!HQbH!μ|mfײŷ: +HZsD7]xߦ$c0XFK R)ǠO==-:;}v%v/6&2}nԓmGjZ +EC2<gy}kwͲ=+ex$,"# DO3w/ns]\F+TBf =ô~ܛS;xWasXҢc׊x$)ؑ~}[^{ZFXil2 LXa]JtbRYH %ߛfWv+{ܻrfwXh#%&,?Y?oc|voMl |;S4TLP>xϟ@~5q-%$z/%yu?OvN[vvޱn;w uoYNEij+gW%ihĵz==򏶻\6Eee€OpH-YX(#U~'z*WV}MooB[|Y.ɷfY]֍uy)ʣzOX;%݌-UqS̔vd&~Lݬ՚shk 8gXkq.k5.%tPDGS[>ۮ71n+.3Zfҿ O w u:tTp|O;썛YѤY-6ǼN\rej>*XDTbC9ÛyykyG*Su@qy>HǙ><g"8V`˫mOT h~>w7ɽFs9ϑicjJl QSGey:zva!779;UD{dbF 3JĨRz)x|s$ E>$"k_ kEX{欞_1JLKL*rX%~Nzy*Y| ,dD3Z#ݻmT5͚i +y$ʯ\Q#cL Ğ{{sxmoUEY+5 S5yT;1|ϗS#a>/w_ Vr،72ո/#D5=E<Ȓkv[{G% qee5H ^ۧ17f-i\>G#OMO<[b+oΖ.'[hF#Ē9cg*43? c/}_k?;6LBq]߫5UbQ :rLy}{Eځv7)KE$]MJP[r۷FJkZ͠Wm Zԅֹ]O>z=Nwg?j35sZG8mǸsPQOU*j0*$TQsk۠]x5P*T2ae8u ϼu\n/lhTB54 "HѣI,4@RGɯ9ZxLVar[?vfrmꭽX6>]ORh*azlE%~:G-(uIʼ>nr3l_+,)Gb"C0ꉃ"t= nfM[ĈQfS,,NTѓYƿ<#Oin>ۿ~1'29ӒRu6ʯSpO<,,AjHLg-xѬbbFcqt+V :;{{{w]Ks"(yy m: + cJORGJ|\̷@|8J\ f_K[>7R*(Uyij*q}补\*"yd;==;],qR' +#֬,A6vvHQ^?92B˭ *IiEeQju,_#GeFPQfv6m!c/$pH&Ej$JW/<|{6]9*wP7@&F%XB\{=nD fS,ᑑf)IeI- (` /K?_Wwk+럓Glfe=ڕM dg6C Qm Ǻ+f4ܰ=Kip1I bg9M߸l($` .LTBYȼœ;g1·6I!'@MS~]PpnOmܐuom.d;GwTͳ(vMWرmmLѽDR=Y^ٲ_'*[ZҪXXA .ԙVB^=~rr}A M!ZV1ml)Ս =?1O'ݹo.zbRxزXMSaf~OCYefVb* +X熢i϶]˜ܷ-D˨+iiʱp +U%YUCϾ{ȼ׵mU}%2A ##LN&eDk##''dg7_Lm޴e#nI-ܙr8z8捍Dci'Q߿nCmgt`ʩA$m +)j "Kp?vjݒ~gع{4iJ .)VyI@J@Yxj?'_b|:~otNw^kn TT8<h&s$3nHy/U6X+KDS$5PTפQB?&'yc3@j4JwQAFV,z)'|?>#vvS>6u^vsw{k$4V{\+,ꑘ3M`#0_0w?{$5XmȎih AP,"Yuv~{2ʹZjd}AzG3xfh*(ZEhb#[ɼp6~tRcȬcQS m^7YȬh:甭|; B6VfӝҩBrFvU%"vFܽ4=[ܛ{c'SRn道;Xy)^{{Xm[c"$&1@ݴϟwmp߽7B]\<4I%{\p72ܽv|vn qh6}5}uo{r +܅ &Q䲮i$YF:qOSZ’zWW{͓nl6JQݩKL90Pc'P*_þ7^lR%%jQOf(y{*˘c}C|],k5cS\q;MC OGYU_3-"[Q`6c5v $OU\=whi/ +¿ѸpPu1{y͖;w6^R+ӿQv{T>4d~iOF-C^TתNP^x骻[qU%]XUxo)*FZND{1r70r`CxW5+nŽqOG }s=COxѱ2k OInX6qgn4O7IEU ֖sQ)//i`wwe[nihcH/eHK?tCp$ۮupV;JOͨ@)F4C}qׁFWez9)Zߟw \K{$l3i0w>_d8(=c3uP3YAOI/AE*Ir伝 K=*t ڂfasRcO/ /u2(pʡ;ΊI( ^?v_;k)3}hdFakcj =lOF[L%HR߻]5;^f0]Q$$IqwOnz^Op͸7`8;;mVs]NNQ`T" ߹ wKo8Xa5*x IUEju*/ {(qˑ*駉<΍T;}շgG%7Sƞ'xצGmL ~hc{s>ƒw]GTn,,c; v}a5duTš N +BE.r<6\a^Y`X̱aSNJJ0b/4{{yςy͐;wC*$BwP,Nm$PMw||,?'zZN\VJyrj=CpLcWcORM8VY!/kbxM(e >c K$ +Əjըh{'9s/X7;ԁ0RU#Q\A dUfwΥ7 ۝opt;N` Kk'ѫPU#Ɔ,K4|eߑgv=gH51[b.>a%}^ٮg21䤆62KA<+*3;q7lvEtt,#ą8+,EBX(`yNl`x!I2be0o7xk&Uzևy;/ەN +n/[* V%ЬT:GIɶ;?7/򫋘.MlB HP&dNĚ>'2s*3b@5(*;iu +FWs|{T{;?>$uu4Scybǵ2woTܵpA5UX0%Y)˻_oܽjK7@А/C]( C2?yNeЀUKUb#'0[ +o?ʋ<ʟ6;7vtKwH3;#2[RLÙc3tTq9JD3ަV{=c.nؠ]'ʾ# +*{RH؝lǛk6yӒsdfX#,+9>@o6[,#ycQҼYT14k/pe#|UKomL3kQ$E@ooOq7ђdwgFJ3]ܘ}vK T̘zJVCQ-|N{r&s_1خ縴~ Tr'r% #3m^yWj_5/",qTdw^4#SJƑg/{oi3l]w. *lz;5VRR1Րh#r7ܫK=Mʿe57 +I$k|{~`qhEqIdYP*8R?~b?w/hR޻JQVep޻u%mFQYnu䡰q{kUMQX[yMǐּ-[M$2$W;D̫ +=k㫾p= }?';?wG콪ܦ'\&[Q% f;zibm3,Mېٶ/ɡ]&I%)#LQ'Wf!{\XѫG*(u#%ѲMvM?5;sahwnZudKTbS1gU3S=ut*TJT$ ܋7){{/)s R4N{eVxq2(5VRN L{w9%a904k*G J_H捊tp@*[Mv[OC~uf~+Ɏ='zڕ{qm8_R/)Pq/[߹˻^_ "9`KRI"7Mdܶ[;>#卂jsֲˣz|Kvmտ{8 ] Q۹mAQVkor`^\MhpOįq8:{Bzc@ۮdh{lʾ$zLݢX,5w3dq>>^˸v&G|uǦlfQgaScu~VU7Iz.[N\ݲepO)_ QO75(>*v pߏlyvKl[-BWҵ^5ä?yn +1{"J,&όъzF-VlDo?>,pGs [  d'9'O؏lylMgZ؟Q4$"ce `<>fN_v.֨b@dpЇ?uqqX=dL}O,u-tdG9=PF{3Ɩ?Hڋ$SZ$TsBo\ )͠ܫmH?Z^8aFI$* +Fo kntu64k*모jeY +B"/G*7cm^=CchQY@9%v.o\4cXIwB̳# û+~9cKd2:4)2gmdܸcDL $egІowCQ8mSnWqu$r֡XJc:tN$?{9Z7k Hh5kBFd>s}f;GyT>xlͰuwVUCTG] OMQ:Go6﷐{G/6ZD!O4\Ѥ.+HIW:u\?վ&Jg/Y+XeE%#q2Yo/9_zlx$FĒy +#Aj=GsrTA5C}'"A6uS[;f؛m5fsqnvOmHu=DYږbkav_HQGn +2|1y  +u^>l<y61TއLB {.l^۔gnPσڵC]ŪjZJwk ovwa7u.\T@Q?z>Ym g;kH8KRh<ؙj|ؓj3=۽moP;og⪷nƭ{G&W\fG +d({/[5"rmA"JDB9B&"/i$`V{{`,"xcd*a-,ZR?xКUP{wwڠEۻbzK.s[~[(iիQA;(d' -} i^G֎>L:aNlOsK,G{N:Y%քӪC1<+2LDEPw' C$TG7~,k\ #O꿶252w)E|-l?*}m?(?Dm/`a?m?hw>wnjMTx9mG}KFm1 ؋V[vs눏kCoOP\鍯CgG}\7U7o;M`i?62[=5b?biʓ>B RDsU[m*" +aϰ;{ zbi"d/h _zkt7T +V:uH?-r>o.iE2V?6!K Ux&zx~ ʜz_Bھ'u~OiOU{^v[OyNT{ qkjk%( eOa|=oq#N“ - ̨(iwcs_s4bcŻI}C=G^=ܝZk)x/pS˱4:n 5!1v±,68b\e`mJ1㦷齥GG2XiT𾗊)6['3GR ƺHda𱲩`Om߿YJ.v%5ԢC,\=<2sտ#/r*GzdۚbBō؊4OFQ&K3/1T[zj.=DOWwrk't͹3]3J,9 q$>a|vnC^ǒJU {cb?spR)l\Y)+jc,rkuk%o/A>nA$JC^I$B4CQ{y>s3\rdz[dW u>AUm"aW(bC#2>V|St}񻽷gʏ]Q=ۛ:Q>;alڽSmmI @yʸJȋc>QcgKd{aI UY1"FMubCF<_x-۔+ty-"HboUuM"I1_!~Ų_'ރW?Wi7} +e7Q}< U415L0h=W%D1FI(1D$+0*eʦi fU>sC*|7MQ_CA_ZNu]ܽ%/Y?Z~e__wǯ_eU'GO?ӟy=hI㮯^+?nb?A?Ӷ:a|ʐ}ݢnCX6MLWA Vnul>ٯ_t5% iǦ$݇j``cj65+=aP0NTx\{\{=WO c^uU_u;iU)֗ʃblݻpXѶh"rV2|j&kCnjx5IƁ̚Pq{{[YG4na(bhIN 3î~{%eeHP36({Pճ7Q{#VVY[1YXXAQh-̟y;ZEmt`=sw_ֵ{ob{),eX=m v.#f "HlF7PrvpVq-MōThGXסGڎqtnbkv!uq4iЃWɞV QҊܮÐ4֧yM!` 6_D U}G-׼ґ\ s)no^ow}WSl*M|ϙSY)|]Ӌ魧λG)Sufh^+_ ,AOA՗_ѽh&ٮd?BcSQ_w}w]'kk^#I"POj^=jvE9~ԩ}5t6eDz 8 ,{ſX8dtFq::csvdIfdrLQ׷9-fʾuq:Ӽ]ޏ CIGGYNɏ3̌ Rr%x%Ճ%X8?7cCì|ˈ}[%xV{\HeGe|iӧ'mdۢ Ksf+62zk/riA{GSH[ku!Ȕ;6,W1yڵuI[3RVBF>ǠC)GaboC[p?B?;g7Vmֿ/Kt'kEWxs\ +Lbv+%X**ij#WX^9R#ӓ=;kQեY VȂ  z"g{ Ocg܄GXcdt$XW *H_|"Igr캊UɳfV/:鲻Hr?0Cm#fX9UIxeO! +Fh@Cm?̣bK(7{zk d-torcj'cuI9%X{uwOlf;Q7{wauvG*T9P2̫}rc<ζBt@xTI )BŤe҇HjAꮿ͗Wem~l5TTtu2mb3i^5"Hr,!q-~pmhlR0IRUD-.6w1[=v{~$baYS\R,h jŒ1z?;_/q'F[?ot 0HNݴ{>].Iz`T-!.2Jt.]-->qq'%0?NК&V`\#H[_g}=ҋ9q ^9 HXcJn[k<>FI41K%$QJFӶСiف()$v[و'|̿v})?Lxh}r@=rR}b菑Tz>G[g{{MwG[/`}@aݗG4|G[{;xMǝޙjp`pוG6BIM\-El&S4,'Bծ;X}}H"WPcHP +uTb+s n?w \|cK$E4=]PtS7sak7i`Cէ1mNPbEnS95:FViHc{:m,mƊ +/lĜJ4dt۵ weU@y(T?G W[ravfǴ{SdEVlXAm!h]Άj̑ 3bc~-3|GZcvnhj:M!x Jxj:l"LWv{K͞#b [YeB_BQi}.hHԃ4=x >oC &*,6@H C +v;SoWKF<n t0O+xoP9s'Xe);w>_vx]YlQ:|=ga9wmʂd+f9n>2[V +1(hEA.fn ^tӼAhZST 8qecy{?_v2m}N_w.kdr!zq;c){)wEensn=_Mzʜ:`%GU1'3r \O +doEkǥ{?G*{7:mŴ9L+ƴ.)àkr?VTi8O\y,w~6M޶unG6'~L}yqd{Qr湢G_?zڷ#j oyg,;XcK5[?[Mγ;{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uѸRd|Lflӻnݓ!l10 NS/mZMc*>ouJѦ5ZW4nNRK^3ҫ +Vc]uoeaRv3 e 0CY $@m,C)3;0|z[t㵜v*psO.`6-mi2C2{@epßܡkMc=K Z8jqHU`x #/?Bzg}2۽&g*aRɂjm4m-FJ,F9fy$9&r&{C6ۇ3]o +A y3Bk#hY@we{9jm=[-69B`$ZL1De9K/kbϽa,w^hi]$Ҵz}6n۷-䀼|DdjPEi>_ULTRi VPAY(&ʠaʬI4i($@2zkudp;ymUۃvL;lf04=4IR,J +-*c|쵟$l1Kqr|)k5y?Q^m;_{Z y1H,ҎVHNJH*5P ~g4>V|&>ۺ.Uf#Q>%ij@h߻a2xSzxR9?$Ai)]}ܶXT344?|ކ?T/ 6`b2nm ɏ;#_+y:;Guτcp<)|˅`vE3ϐ#v2.ݽ׻\T(Zz:9Z0URO?vw=-UwXHd-TЩ +T}oalc}KJ:wB` +  0h˪[=vdum(sj,WӁo}YH0j|pÕ)U8qljܬ۷[tQfrLrh51"]+ۼWc5q0YRA !jtU,~hj?z1?6nvwx^e(8NM><•+$xZ*iI£G?i77-uMw X" + +"##Ԇ"uUg+U7VɳղnbVH$̈c U{n(X^؉$RVR,G}bYA_7}ItVXT`AGC2-I=ӽGW4x>: -T\/r0pW>>GI$R1<)m:j\ȬPMU4` +g>}vl_rRVE9hu2,!&*쟑7 >&cw.Uz<{d6Sl[6櫯@)f$DHUh}?wmww v$kWPj +tw}wnl$yct0fXӪ8BYNUH CWKN + wJpR߃ll.2lsTC=T %]etF N'%vdX!7 f5]4)Қ iY_o7~A7;eBQ8Ueʝ:H]M\Kmo 7>K}uژ,r\4o c:MS$1`-&}ݷh#e-: P@G0aeΧ=˛ͦ1H0귐Č&X + :>ZGV%aWmۿ{hgh ᮦT 0"׽9-kI q@4_#H⣍:7-_ln1O{,+* Q#Pֵ*~/ _]yL_֛|+jeٴQLFr+PMdb^O݄[(9Gyur&6 +(IRukc Ӑ=ܹ je]R]binr +zf`.?ptχ}IɋcQ;0S,d?Ox-nw\!N[Y'ivqc۔{ YfUԕ4*|_̱ȎM$6vsw/\!24aѕ]/Beps~ӹm|˵ŵD.8b +H ^z0ߚ?SwwӶ2mrrVt}L4TizSE#C <*e6m=b)au-Zi,F ]ZdfcAԉ̞NqlS[M}E̍]QV"ƦJhҭ$)*Q?'{?Kw5.;}GyJ)qJh~_QAZ*(ѯvkڑU9;[ &]!A,Lpƒ{;6q`tQ/US^݃<2f,r^JG`j +mLL/#5!u!Es-y`MaIob,)$iY4.cAMNImI}}A{F~ީv\~VU[WU2GuQ/QOQ"LE$g"}w^}}x&hRb9Bu  _w[m+U-VYXJeKڪ1Fz>]}-[ϫ6VM70$b$UU XZHƯ.ɾn6[[5QxFFcgԚC 2:>on-Ie,(YVUM/AmC0RV;+6taD}^.7/.?n>q4x +Q8c9*DCs( +{Vɽm{eZ0C&P-t $:{CϷohV2,#*]E9S?U:9aݳ=S=W%FC c(y)cvs3[}ꦦidK$R̶%?0^-f(/5fQ4S F +]rkqVE TGG+*X VR#YPVPbwuWï{|c*v'42jY$}qQE%DE*4Ρ%gmx-;.HLH" @$tw}^ee-7*Q_Q,)8BAbX!W7M3ǬGsGtqt`s h%)+گ!W^Yj~ZAO+uH hp|WfI@!TՒV5PL{u+K/1;$X)DMH.} :zuyOq/0;Ru6aS)vz_nڕ;/jRC2& lq8\BאK#]qQB3E&Y^)erT #q8%cPqV=*Atp=-4#EUP>|GFRYII5$1E1,1*(:u6?#:ln_su]Sy|n8mڳ Q_9YBpe(ĥAh-veFɹr,hMbVU QEt<1=ZSu;{2$Km)$m 'k蔯!O[SL5fxݽ9*)2Sn vUT]8LΒ"3[ө}.b\IGo)[ЌSŒAPM@:~ܱ7,{_hq/^[VDu5c@$yW +:ٻz|\ w&쮤تꨶ'Gy~ꢟeMl#ؿ}ec͗^̐.ꀟ#@XM<,/MbIoA"4g x*i^_Sn꺼zz6ߗ%>ש9nEut@)g֭:ղ+#ghSTo9n$H"IqeE4G\s[fѲGkoeQH>ǶlDupn^$)X$,jc=N1?mvǟ1ۿ{d:'{bmё(߬,feQԭL5 1;ay8S9Fgܹ8py9_J㠎XĤR&]!f4,(iK߮HKMj[R$;%5QIA!T4*•pXd8-1Ldv{*30k*AQ#RO$aCN}La7zIMݽg!"X':dap^`E6 vk0 +_ qQ%Xҭ#q|{;'?{u-oIu%nW?|vW-'[xGVd3TupQ NUl# +27J,T*X~V~nOx֪YFVOc cQUhʫI_w{iWo[aU4&U-!UeBQEV*+bx>QFojaoo3@WQxݩ4/E4w)2kyגOx]@d*r{˔%{YaR5^ afi^ wu8$bMibGV))@cw}e" QW' Y="?S@9ӠcP?ĿU \jo~ރpñ:pcŘ;eWH_ O 4pZgSI!1v^rAI(e4o JbP))$%u.N>r?:I7s wԥ|W JFX@_{}PƒEo +헻(i߳5{s1M*mcҟsB)0!4u@yqQLOXéqGzA)玃\nQ}[-X!f(i5ixgu-;j|/vmfXedss1W8dHpVKsMIo`?8SR@`RG_gk#m3*)Hw,wv\E:B J:򟷒y˲R[ɭ/&EX4۲LU"`WPU:,]_;Wrm:s`xOwDd֠/p}~7Wa%2J4%Iˠ>o+$$FBG "7&gq./X]5WjCPUe2uG8YJJ +yd*B!O osv]cEJ?FQhq}m.mcidh㢢c1€Ip:߅Mm~X]4'귆d4hrpST*G/E\[n[X[FCn $(I*^ciCwp^H dȷ-,jWQ ^V橽^n__$-l>[ 3NvrMc nJ/ u?ATY3vQs,nwĈž,lQVVF29{gN7$n7!*$J:jW 0iF!|;>-)>sѳ ,y y Kzrxzښ|M tGUS_[$Rl{q~{YqmכWhWN OF2*J,q\sWr.߰mgmZKD2,J!%H@.;8ع7<6C]u٩1WH)fXRMZYd 2細8ǿ'AW?W5n˴ ]śa Gjx2MXiS+/W{#F^s˞q̰C<29 +ͥS¤ c;4{i5 o<3Qꚑ(UQG +m'ǯؔ;2NndF'w*k ]f)V{2*!/y}-v\L UX٫3jJB,?K ]}K.l4FEZAMnf +Ő?@?,2&~doq|ܐEo!Uƹlc^,1CLf;y?AOl9qk=UP2> ۱eOQKm$rg;i;幼\i񄑡UT_ +Jl ]|/5_6~9&u156 c!Xe H =n{K` K^C?g ƍç%ڛoy~fܘiX]h$!+D-«ǣ|[m|—scS媣aq;s&{?&:13+aC5%43,"TF9ZǑ9,F{~% +FQ2Rެ̤T,p nzpPȲH%G"G0];{aW +Yq;_1{;)j-$m& +f)6,,Ku{Ps;\U6 u Ѝn] *Y#\{}6ۗYe`"h YKB:/qR^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽tݻdow}ݻ{߿,3EBQ<ڻ;_oHvFFT_mv[pEȡÂ20~]7쮮>Zn뭋iO+hљD`VFg$vv7F pG,!'gMm6ϴ)MPxHx"~ޗ^2׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^c]=ouܕ"Sc񇞲},4qKQ; dz]cpMd{>ASO6'N*}6^X$9--WTeEA=j9qpI-,]Uj0uiIM>K#+2&>0Ku׍ yNFᐌ{>APSv -TiVF$|Qgʚ + ZN,ODSE״;4 p}k@lIO9NO}0<:uy u򀭸f̒sqc>vI|'S+qM Gqgπ>†>nuuu/qE~ET5qa1z"V&-~ԛ4?"nѳ]o- _G+$Aԯzoq6i7tXe +Hz7EqskQ=f_bAM#I)3TQM0Z?6~6̚-UhN0p=fW^g)m2/@ZEe+* etJkgԯ׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ@g/iW7yv\bƚ#3z|&RzK%={HAEB܍ub#cSsKIa}_p?Bo]XUpdQ%\x>";={ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ>‚fV?Z_W+#u"<re-a5CQGI+7rD{+jO'[)/_ +^9OiL}|$"!\uzu{{^׺uޙН{a7\lnXj%j:L螞YapQfdķFȌ|M[ 2:7rùdF򪜫5aUu8e%N ǼnwM;U|=}Df9&@1T2Be+/ii#!<p= +0v\v\˷+Ȗ@+RpOFᑾjzt!׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~1nÏ;gq̱q[c966QV@K7&Ҡ\^]Eg+-xUQIngjdE,iW}s}7bYVۻro\K;ә9KynoϾ0m{|mVH=5Mw7[YnW>#czHY{{^׺u{{^wMlݓy +Q7O|t2[WJ5TϨYX@K9:Z a$,P3S)^܇wjl.FxG:+O756{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~Oۣe +/\de#Ab>NL[I(7bN^:u{{^׺u{{^lKMC|ݣijH'S 9bb=Lȟ@,E}QCl.H}%SOY8v)Q ΂`lxmu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~?J?'^}Kؓoڿ'Any'x'_/_}[{ߺ^׽u~{ߺ^׽uG%-@OR]lxnu~{ߺU/|5f+lewu96'\yvWZ|dRVj[/?Zf"BRM%xƯQo5'3Anqgaㄬ^g/S^Σ2nAZ][T#U"}3vXusꑟ4U$1qacgyG2J!%k5G}‰?}#t#}ڝuW0xzG#]:u1TCL& ++O! +F@@9U}н'ť,@IA44M fW3HMuDbp[v1yK,B +!7ڸWB*|cZb!A)~zqذ>2uYiRLD=<|\dٷ{9팉xxj?ϤO.pOaGB&wo:+6fM,Q鼲L +ճmVWHE .A n}gkiJ+L׀M|T}xxmN7s 4{{V)W55} +>8wnɡ3MU>ΰrWܺQ *JX<) #9o $Ic?5^(A8ϗζU𥾁ܓס;&ݑv߂K%uu=dX0 xk$[N__}yZMq ? A }a{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽t[cu~ka S;7 d/ &d˻,q=QAf,6^y 8՝¨$d'!ܷ=f}v;kx^I]Qp1Tg'=Rgt‡> B +GlKl01Hw}5zL\8#fv?wk>`L+>R8 zǎamJZL$Uәb= +xE*R;*C2$q v d1@E(<oWqռ-?W;}GN)U@i SxؿG{WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_׿'xqw=Gd[oe{xؿG~WpLц_*_o)ӬeD|Lߔ4$%F7vV[!(HrgrշPxѠuHt?|-s*1$ϣПχ}m}7wWDgr2c㫈e9^?7cX\$"%PUF%ѳ42! VH + ct$2*F ЂS7>ԿzT{4] sGzQy͋\q>a-6#:ufXJ&/oz |WvT&<4XS;ܯ~7r j>b/k֡.g/*:r^hJͥfJ Q<2S2%%]-384"3/}~K 5ZTQCǬ|}x/nͥ}5bE$`L|BG(NB/7ܥC׽u~{ߺ^׽u~{ߺSq+1PVX+iSUVS2 #RѴ3(t`AV NE,J*He# 29duy_ _ʿaw'~0x;g@Mx^pd +]EW$XҪ9<}GC#]٩1[w?҇=+@2J9#}s*yZj\B|L:'g͏50ioI ;n}Xq=nvvI +Up<ԓcMS2ox]̼ncO*ա8ȕ!]j5*<*{嫑&}oŰէs6qf4予,PO˪rP8{ka2G vِͳ$$M:M`BxY`L]H&kپn*$ "Yu>K +ȵ^MQ.w Qͧh1~Ήvon|/eqɢ7tX +Q+P)dIĨ,fASdދh\~r~x}qŵY)ivYqx8+tjGK̊lW՝a];'SܸAhd!RpݶMa6[լ*2=F*=>GeNcw '"Ƞ$oU4# ^7׺u{{^׺u{{^׺u{+?~ |~ Zlگ3 8A뱘՘ QHuR'Ts1ɺ^2$NC4j@GX?yD}M)9ab<:`hUdf%%>_'w[tdpK gn\FRc0T{Q DJx]"y%uB~ʻso$EQVs@(TҮG'8nq)6s3bPJtI1bWm !u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uzm>{}ʼn[7ibk3rgk!0،|&zTDQ6UUy߷O3D@K3@}#7 ]r`K#xZv')C ?_qvFyi(s'ҵ|NZyAꍫ<xo݃m}F1W̠&砺17_%Z^5auwO꣫ 5>-]u_Gjc1e:(1]+*WevCQWC25 S~s\kyOhO ,2>UIbqԥǽ|\c4רUʎ-+2HYV[.]׺u{{^׺u{{^׺u{{^׺u{{^)7=]ٛnѺrXL&S=vK ĀT@ZQAf[yM8Գ +' tqܶMu-I"(,=NzA묥n7ew] 8cVxFn_r,YA`}MHّ2·p`Y):Ǝe&3[l6)#X%d?0OEJE%\ IUKB(}\0i࢟cS$? +Ӡ?ꇱsԜ!1o6TȺb?a:GnjU"1 >ޮ?Yʮju~b;JΫJl~;pW-Ti jcOݚ(ίp?{E͞ ܕ.,ٴ%d 'ʠ8W'ۏz7ܷk-Q*(2,-[vlqGR HZO_>o<@|Jxv eC^-}I 8Y TVlE^Z=T.,PEѾF9m;4@xYfZ1} Ǘ~{n}T ¾AW=>)**-8>׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^?M{ a|ydm:&P+w/\MX1YxQ +VGV5?~>Y4VrE+$ 0FxfPROBoֵf&8'^]ֻ/:?K6Rn UCT +54$4t #(Vn>ͺbrȏ0x"0CAtcc-ݚQ5ǘ>Dq hURt"{-עG+t{rwW[-?wV$}qï{^׺u{{^׺upc rnL7ߎs3[M8n¬yH$yfW + 1~˶I#^*"*I4dWsogownEػ3I&d3罺&pW|Oeo]}Komj^s|&%dcGZOj֛bGk=ɣGhhE R ĹHSRwyyoU$Y"8b?JKQ,T( +` 31f5'$${Z׺u{{^׺u{{^׺u^ظ;mg0 X*BH&OL|ve$7Q܌Y +{5Vm^Z= +~4h,1pS^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uBs`~TtGBA$fK$?m*h[9E /槂A=.0ȱEfhOh}e^``=AO"Pˍ{m.ܵ!.wb;ٻ *ji*Fҫz{; uvN;dgLv.Ȃ"SE<+$P]bvv͎;XFA<51|݉f9$u%yD +0fu~{ߺ^С}} (L.M@WŜED+jT"5\rA"dJg&۷ho"r{%L/qf,*2Y#@*LS.u?kyg[_HBErL3I2AV#1u{ߺ^׽u~{ߺ^׽u~{ߺD&{> ߻Z0-ae(YmH-$KQsf@lmb7mh4R\ŭOUmeOɂ?#Mdz오Lg]Kj1R:7\HIbwXdHؤȇR::؂#D(r[ usGbn륷䯑snI&ZrI'}򗜬mov5H=9~J܍]nkIdoWOFoO^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZŽ?>쭝Mᙣ#6n1-bW"m>O{:kKI:H?:;՗VUo/#I(~(9e}A#oG_y96돚wnկﮱ4$_u۲lnLMCDUʺ*jW_ϰwV۟#nwjvϓ$m"0:{g]>lLREZ5UE?'X^c`:u{{^׺u{{^׺u{{^׺u{{^eEgv + 31 +.Y>߀^$S1sw=aX~XV#c*K6u9"I3JHH播ﳾr'/wu;+NU _Tz|rI*/.=^NdR69-SEii2cT;{^osvSaK__=UAHՕ章L62BC55^>n@-oesț[/'WV6da_Į@S=}dl,&ekR*dfV5_Mo|{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ւ?S̝֘lWƺYml3qu4jJ#I*i!tt7.K9&-tt ; _|Jq!?x|ymɲ [ƠĄ< xiHzsX׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ma k; ND͈wTU؞4 )$\2eaJi }7w6huamqAHfR2NNׂW ^ce7V?  |C5M"TQ=+M'6ۮb6]Y\Uegϲ?;m18,2 9VHxb{zu{{^׺u{{^׺u{{^׺'?~PEOqQn=l<}XY vꮋmb 1V¤3R5m*u.^bDRH!ȲU>Nr^B{fPXSL*x4Ujq(Wtn}ý.[1_wNe7ej'_%*dI5DI,~ vVh#TDQETPT |uw-,ӻI#;,̱$za>M|u^ [=cmڒΡnVփOSVc>QO Ξr![,>$ƹQERZ8{vm8O!d 5o=%;&yba}|s:m>LLNR9M VYP<{o>v)1]eXK5X&6?sHn[qIZ4=hq ?鏰?1ݭI7VXCGA:qu ]rx u ܒPQK(]hI?Һ[_m{m{nƤgO3E)g`wW6Jj]Om2Q7 W$ O~.|^w7v2^3T?.ڌp,zt9[s=@HIE)VM2P>%b=rVdetb2ᔎA}H5}-.F|bVM4 6P͋Fyi睬d|i,[rAsB"(D̠Tpwwnts%݄k#KHQ,cuVbIgVcǫpu9u~{ߺ^׽u~{ߺ^׽u^̓>Cvh?l?Yo:y<|߮Mu~}7~ .M d>ӷV,]/`{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~k{ +`Q_XX=oVx4]bgT{X,\|F 1|*${>Y_ks fdvI# +IQJMZ:Fi{Sk~k^ek5DxbMlR$Vt5c"|*kh }mn`2##TTm\>c)a< Ĭ'/?GRiyEj7ZM*(`Ti ,+]Jǻjn+ݦ#nD?QROugWcĹH\nA uG+t{rwW[-?wV$}qï{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u?> ٝdͯ3G/Wd'`A6o #}{N~Yi@-?eN$w"G n9}c]F? b5Ё$P Xvx-0kehgtq[n +~g'N<54N>}K;1 2:WBU" QZm."q$3"8 2A=={c{ߺ^׽u~{ߺ^׽u~{ߺ^׽u)uzfH77zM(giL54ȣl-\hK*ߺRsf|xBĕ ?#`}ZWh7lCD|8d +B~ *4]s{^'o߇ec()h e5P"([ﲛe0QL.E_1,5lSI_K1V܏ƺ >FkZ8?7} +Hƞ<"EMP 6쿹;m=FܬN٤y@)ԅWr-W5ʫ' !$)*e1,J:H ^ѱGYM8 ":DFC+AA պOnq!ZOrG6o,F<^o~o&u?s?p?a{i2ul+l.?#Oox.ﭩFHv\ԕ-t5\S핀$1ܳ=tbeh[R(Wq4t]͞{yR5Ƴc42D榁rO)(_NO:xPԋk^!,a3-4ďf_Q?Hd)(`tTt<7\ݧ]5r,T;#-M#o.@[[ +^xf/qyU9UcKޥIy%ȧUN_)u}P(p-Mֲ҂(xr "{e/݋R\}iQ*iwǫCnGb]]YO3;PƘf5; #Dp`TM@Or$3OZ ["K:fVNؽ#f$6sP63s~rӴSJ pj8hUSGu=L) ^.Ql{n)L5nA?xI]@R'4q>~#%Đ@nχK +^gusNJG?)JC[fҊM[[<2D?i>ʯް[ޠqI1:ZDj~ɪUSݴZ/PJ$[ou E<ɜʭ,&;!1貭cc OS-s's GDeQd1г{^׺dп{ϺhϽ;g7ZY{>цe]c}U x)o] N׽u~{ߺ^׽u~{ߺH~κ]WK}tUM;c .G3,1)bxPOV]-o%"FJix>Mjpnbx4 Wq>]Ugf=Uu8kn~ЯSY,@'T~ZJc [[ھnh$-AdSOAS=BSmQ^xhE0Al<&|jե=m 5BauYX3\Ѧ5 ?pOW،}ѯ+JgҾ\iz &iZjmJrS}Z]ڛjy}rWenNղW ,3eց-Ơ=ě۸7Mc%%FڬѶn^fq~BEsZ^ta׽thuxXR17vs&`Iy̰@P4,@qK-g34UPX8$s;x#y%u5Y܅QSL?ٛSoD=׺5w[ s!WqXl>*vi*e#ݔ-F,g.I +HUx/_ovr=qO3Ȩ3I}r{^|ZDZ7lu3pÿ #AS2YIV؏|Cx=w i g,+ + P]~ln[Cny]Sa=ZQ|߱]ݬؔeۻK\7Q-E2;XFġ +<|To3L:f1t&}M;63<[3G#/YU(>D_.d]zu{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺIi~;JI6ondxe7сڛ+8V 8yyKDOh3ǃSA2{k7ۙI(38 C Z,*k%Q y⺁.`:E yA\XKK$L  ={ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ѽ_ty izOuiԴDq+~l<{{"Eav?6E$ϡ׵r*Fd%J i{]~|Q;?^Ĝ+~=y: s;Չ:z\p׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^x?O'{2UyjLUHTVV%%!WÓǕRV +QC7#ei褵8 8kB']soܙ/+^>J6hxn$OEO cl.{{^׺u{{^׺u{{^׺9o=#)Io{&'*aOO6FLWaE=s M}o =J)[|Nݸio(T Jy>:uW{auXl1bM,unKAv%z2V 6&Yn?3rIWk2KjR V$!W4m>oʜV8oLZ*$/X״Ird }AcÐ^>ΎX>6~q˔Sn7QbT=˲H4JhaRGY+sn,;po-םz9?qfeKQ3$nK+cTB"EUs{gSWGgv>K{^׺O|:inZf>JiM4jvDYp552/ƪT y~Uv{ȅ;.P$ !5Z^p#WV&" ɈLN>at.ɐKGW$tohnm" +);~1N^ŚfnGSqbljDغuJKG'XǮVKnnn9ϛ[[kvFČ2$wRH. G<輕r'%Jp\VWmY!cD`QwpB2+- +4QQ,<4L,K+YdrK3K17'!B(]c;33cRrIO{ _o~>?+3Y9,ӹ*&{$G'xp4*p̑R' a lhoPEz| tlXDHkJij7Rs{Oc#Ka#cX\d"Ҥ{obwWl^,yػsMVQ]=e$JJW:਎Xdр\lxwQejBRkehpg  jwۋ+uj5Nc!YrY|L5I!6}ۭ$#PU@}'r'ݏ3=%׺ug+Kspc߬^QVdfyu67\ֹSC!u_kH}>}a#e@,G FG j-F7Jv{-{%%pNtk:kMZ֪w9󛦾yu =urcs8)qzywO]*H2=PYq(EU=sSO?ywonR=ZdZe(H⬬)}ܽo+h(xHA>%jipWE9H{ߺEoQӛ́ѝ}ŵRzmUM*RvFQ+!Nu#v9$?u>v&1RZK18&_N>b?.\"_!c?ds<55]6h"XxhfXUHV`lG#%XP|εee QOz}k{ +`Q_XX=oVx4]bgT{X,\|F 1|*m[rTZ@ Y㈖djVO}je +s +*24m =4U+;qb1PI]JFkS9veZU KZxLA"o$e0}+h,.$ SƎt [_u{ߺ^׽tp?;|]rxQablto +MPA/E# bX_& IߺV6tpOGUe>D~[o-tY$RD qWFea>׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ւ_7Ko|dwJimt{ڶKa@j#MUcP{qs?$EL:& ?Aƅ_6xDm"w-qSLOuH|Jy$8ʭǟ7l^8VǍGԡl܊vDj\n"I[Hϯ$뼣6JmӴ*PC$e:/EWo$[[I?IV^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺV~@п#i*lrWNFcḭɲDhN!txDrH=>^: +aK^ H~=:~yg+v;l?ba4Ѓ8?^׽u~{ߺ^׽u~{ߺ^׽u~p?/~3vߛm۹ʘ|7< '%OL)J, !+hi;p[߽A=*[Mp;F۞BH_R'ȪX Ծ}|{oENNەS~*׺OQ=$UR55U4STO<.$x&GF*p"G[Vd`H A#ԟ̿HT Tn썻KA.x1%&{ϵ;nYi9#l~{˴^rx$q" +:$|_mG}_)kɵĹ\Tޑ H$ܰNbʾwsdǀ%'`~z/=X=?k)xd#s + eڵtXNoώڹ!ᦏ|?#Xt@?5fR^o>#OI5.CYY8VsoG oNsmR54?Ʊ%U%6V}1;ׯ7n;?;N*hۇ'O/X%͈ ؂=w]Pњ4r+#*;oܶ7 x`U$чzU{I޽{};r3"(ԙ 2ST%m; +*k_™huȏ׷s?01JR;d9@}D@x? Tq3Lܥ)D/POtvB=b|5?% PF߮qUK3 33P9$i׀$ugOgȾژ~m۶sԐd^lҫ |m.O+$uuW&N9s?~_Jp0Bi(xPz.D_2G%$f3-S^=QU9q a%n_hPLGzd*BOO,,$h<:"m$0 +Sz'the`<1_yH۟;܋(51Tz?ip>`|1O='V~߂{OvI/ٙ9SOUTM&/6|{l2 +t"iQ`Jhi2{u +XjT%8j)RJ@av /&0;VYhN}GSE!sS)\FqoIZI{vE'I'KB4-MzϺ{5n| m+Hf @5,1ҵ)`s|Oݭ'lf=:eO7o{~5׽t};Wx:w{}_3o퍷f2:zJefҊIek$qI#*+0EVE2A#ST|H@~׵;[^LR8Գ12O$ `>ޛv7=/J%O1sI%KC`oqCK[{M=v7& {SO恃GtC'W9s_[¾ q"HI$p~]|SٙNmE.Kr3mbiciyHh|ϏFY(~Ky=eoEI*ʦS@A>|s%mo04{ ,j20,EY'Z8{ߺ[j{##?e%Nr۝IV,Ef)pq%{LɄz_Ϙ6ciU :}ս>Cr]DTʤMQ{9᲼{JK܃8ft')NKmǃwN5Nf̔Yln<''Hh9c$ =K;1 2:*J [-."q$3"Ȏ828 >L=9USQSTVAIGIUuuROMKMOz!QAgv $F ,h$y$!UA$@$o7wmFtël9h6-_v9祉kYZE!=/-bu[pK&B1?:ȝOQEϹ5n~شV@R?b5!UN%_kQPb={IȡEUui+-:6BaYsڷZ`L)ZV¢jv +51U277XlJ :LTEj*YڇB($ГC0?6XJx{'߰w7R'l݃$Zln8\:3*XK-Ig#SFf>HKkpdh+W/Ec7&No=ŸwwI=]?X*Mf0fj/amlm,RC]X]|Ր(/[_y-y"{mtJUvv*8I ;Q:!`{Dyd@HY(+D5UROt3ۣ֫k=Cwgt휭vp F31c*!cdhdVI#u-m.eU2e#GX_ygw]aC4,QVFSFVSAj:M?ߞN|l->wr9 +#O\uvْYi[nUM-↪*+}ͺGΛTz`b +jRPſMd?ur6yx]ށ홏sWIBT#dx[)Gabou[u{Rvbn}s ʻ,/K ՗SliWv?{^׺u{{^0C:VA?{9)%DZMK)_:Qν>^rdͶd(\4f ku+y=A%#C$U ѩupvvFܻ}[yCqn}ǘ59,k+Rus O#@UU +ӫ =-oas%vsܥi.F5gv5f'!c}#?3C ='Δ0&Chx_X,`a15 67P&JY XN?{ɗl{,#pN0jgpdZ8g +w{7۷J5E٪yI md}EV2MCe,;߯2,c X y<>)ԧZҾTY~~}7.JiAZm4+O:?bmq擽:3Lۗ!Y-Ձ +dwU-C E-4#gm}96M/C1܀Uϔl3]cwm7yym&"rD\G箱ϥ\v&M{7_|l\;r:MX.TSKdc 6xVJm61,XPhAцӺJau7^*j>A`H G_I+p4~0u~ad6LV;:m ݘhs&g sB뗧%& Fm;^]n۝>fyWL?NPyܕFRrzS_2z.Pל 6kڛ6b,ND2 yOwrF\$ZK^*9kG3 VԌ I#zSTn2qVPʏO#v~!꾐NX<6wauvRe`mOSHuydgXW K2mq@̨Oh PPs\iO*as~%h eP鵕,P ӧj}{ߺ[i|#CIP=C7dR\;i۔Lb)3>8tƤ,Ւ =翼97amdQH.@E'>Jˬȼ;o2nWw="GXIP֮c͘o_'7IosۛqIPz^u"STy{Mv5ĆFiF*Zo+`׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^T~mfҧWin!= N}ՄX3G⪦gUXIEܑ{"ooI^#$3MQ=h +J +e%P7tRDHeZ/߂ ~ %FM?*کdnwtfcDu>:~ x|.s/IGx1hOr]jjnhu;v 0LFuJ&zu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺Sl͛v9-Ѽwk6ӵ^O5-;ENEHK}{i˸_ȱA +b}^a{C4j*h'OM%{jKc;߸-8T14A "ȰQ9jes\۸F<+dEGϫMʝGE>Ꞛ"l.*,h`aybN3d_m=6Nlwx3i6mrS4J~]dVIK]o 5ċ/ѻłXcZ[Mi rѣ5ʣJEv"zĦ7,M<|SC@}Bi-|>|izشPTO+V:}m%肣9[˦=no`Nv߽N#6bm )B:C5-{ƥM)gxG^9'3|Y3fw5ؕ1m\ƒfŇah1MHmMǹuaxJ<)ګbJylytBSqر"C.cOu{{^׺u{{^׺ڻ-7F ;3}˅eYmD`xϴvZKep+\azSew>y ,!d`"_Tx;}6ď х7@<7N+X˶n7lywFN>h6l-9W϶D3:WE{{^׺u{{^׺u{{^׺ m*jϰ;lv]CNf]1qK+K,M 3Z,YC۟u۫tKl'xڄ%5UѨs=ϵ}[]%`$$P%$)'C*?o_:ٺ»z喗:^!)>sjB3X׎=-T6%cWsSl] $OS4Ris~l#YjD}^01ZՍQ$y#)u'~In 4yc<gL=5nGƢBc39w"OW`{#2|9=^ngٹtĶ2)s!> B%GOW]׺#~ی;{d*zv4)$@%isϻěŠ2BDւXNު:ٷ<+ ]ؚUS]MXiv>bDk+j㧟#4qA "6,{\A\y Ҫ:*soe=MB 0)hPf5̓>Cvٿ[7o{~5׽uwQzo&7RwH+1yZJݥ9W[ld% r _xzRȲH KP~$#?v/olONr5D_O1uu'$q*$Jȡ7] ?_{Q:V6L"jQ?hw&X"xoabp`jPc x +Xs 4ټ6"ŞhYzn%,r;d ID(N(ĚZtD=Fl T_FDg~RrDQSJ@0]%kt&lTj zX9'8?YqAכ[q𵚱̀|9=>ut_*}`uIZ#KOGmNje2*WMA*JOK}`I.ckZ3zȐnI~S҉ӿ}]D=lm ?=Sxb~>bX݋m4sQI:& .MTuE=e%J2 +x\{'3JA"U@FQTu =eK޹뛯\{ZQbX5iG[׽tYai_.8vBZGzm9jɵ:3_]$ir l%ԧ?1'#e0YIq|.FOETu$I4W C) +#qx%VS2~`tޚ/1ޕ6N/^kGMK<%kaqBu99XiYzLm1QE&u#'Bc#PcSV9?66vׁt̒oNڤeԒstʱAXr[Пӽ8jנ݃ݞ)47c.q=4C`ZxZ?PtR +ز%>mNfqJB5%G +|0kˣyNYrm3]*AJ5S5vQ+:uˣ~:tG,J>w]zdп{ϺhϽ;g7ZY{>цe]c}U x)o] N׽u~{ߺ^׽uw)k d)y8Vn 혟k` X<hh ksOϸ4l~L{H)Э62S!I~rl| r+m?фke>! GuQRcqv>*J***HHR8B{,<ř$RI$NI74 +j rQ2!$5n`{qLSƺ"I2P`*M eܫs7Oa߀7l?UyK֞'wWJ? >ݿ'0[c={*@_sUі?)o׿;/o >ݿ'0[c={*@_sUі?)o׿;/o >ݿ'0[c={*@_sUі?)o׿;/o >ݿ'0[c={*@_sUі?)o׿;/oH_~t{wF¶ؠn-*ieO&ᱞq K3*xZ6>Ŝ4dzlqnܾσTYUϟw^Q% +ƶiH%bxM $TlbG^׽u~{ߺ^׽u~{ߺRhtQQQ-M]e]LjZZhC Ri UMS{,EgZ'(X`c5*巳v۞c.g/GN<E%qc],VuLO^FyppX͵x\\ƱU$hjt=Ww%޾Is<Řx(QEQ;i,k-QcB( LjrĜ_џ^׽u +:%:jjSA(*J0 AvGh:GU$C2 *8 :&-ikA)kst +Ky^l ,T| %:E"" 3O{nasN{,315b+P}Z"KDFZx|!EL +(PZ0JQ=XO׽u~{ߺ^׽u~{ߺ^My;r|HK8jE>u0jXĘ%tZÙ>X +j2uY̕묞'tcc]6'vEO)Շ:u{{^׺u{{^׺u{{^׺u>Nѝ[ٵ Gݻ/4pEi! +R2؇eg]pVc WCSg~R#v{Jj$g2SZaN/'ob}g]7hNV]rSC|l$j/bGhISd) +46O;ms7LoOBcZ6nھmsE/~i8YuR] 3;{o {32I +zv[Vy~ k13ٹѕ1'#ct~o-'.8,>ՌGT/ˏ*BRE=زM!wӚkM%bÑ_-{ɼtrĔRq>$`GP'5mMezSVC!0؟#S j4Pvͥ +Ii ⴥW|H=?a9'ZɆVXO1I>AOY3[ >h4͖9ip}n[ Ƒp(\p=\U/[r7$C^5w,k'#gHz_6 ϺV8CORT[s ((YcU_QuX\_=ϸZW%ʮ?eG]mkנw]^HGULs/;{ߺ^׽u~W`s|Oݭ'#y7u{N}f/_7}7]{ߺ_MoEM pF>>ԲD+zYW1RK#I嗸\}Āˮ`rdqm$d~gs{^@o0/4}3Dl_~4>_*z~F1?PYvz7u^Vy씞lo7_!-o-nKqIyYݘI[xc-mXGب!ޯ.f5y'F'1语7+spG|T2/cm "LqU rY9`_nIybY؟}uяePospkn}'cӬ׺ug_lAyIGJ!S)KK D4ۋvtaUUER =G}n?GnP־u\!׳[rdG\yY)FSaqߟ˝j^ϥ}˂coŦE?o?zpwLW _]S+sˢVeleX.nћ]*c93%(WUG:;IȾI5#Y\}-\tqG{ن| .sׇ||粪) C礌$pv?%2bȥn}@mٰ]N Ā!v3yg/&Y.NP218|_(:^׽uJ-Mu;O:pbZ|Y +қVGG.Nn<$s$[ćApO/X[d{g_=3e*ydx$IhX-Qf単8im4=GLc@*[l{Wa*\X_n &Z RCNȿI]w΅*?"I[WS<ӊ.T,ގ-xKw͸d_L|YgCNtڅ>^$ђG㧮iJt{^׺7h5zrRqK~8m",`rQ-tEڕ +nnXy`yy!}? iuスpev3XG=jT:O~6>:-֝+(-56;LU͍hf_.fy3۸Ky׬]=6/ PG~ycT;{]33|g_?XYL}=oYz{\~׺B)w7DG7?묾ӨؿՅu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ@wϑ=U_wguolDibX;Slct5y:KNVg~maضHڢ)$9҈2 5V{ÿ"|;LqF*|~{_ّ4M5lx>ޜdkLiQ4jYUb{G[xLi"4ZT\;7+'z3_x܉ۆ% 5H ,TE#ǝG]{ߺ^׽u~{ߺ^׽u~nUsu&sl_!dk󔰹|Em2IG7EBqT#1p >@K識cyy93e73?( +6El>^Ɲ8!V)Hb½M"ٗ-u{ߺ^zsdw佉9;V{-tRwuվ׽u~{ߺ^׽u~{ߺ^ȟȗdc;q/A-;;-K F7{ 2ŚFJ.KG:JUdGo DK_q"[)YFI +Ȭgl~e$AmLYCF8<&~s~{ߺ^׽u~c"(xXU)$RVR,GՊhFA]iYJ8 #m|{+j_{:GI;ezO<>V +}4Z$tHuKJG~HmWv2CY#(p5Sq?I aL,r1H2|0Y^>{{^׺u{{^׺߿g%-~ϣlgiTo–6$dϾx}X}кSbcdDSDv;;8Fk5Ǡzt{^׺u{{^׺u{{^׺*2~^uo>T*p[clb6Fd'vjHHgIG|:arnl,}_[F*jLI}Q,e4 4TKE{q:] >oI*'ÕjB*p  h}}ҷ{F8TJRR)$fqSg^׽tvo96VawPSe0٬NBO[cQ:GwVQHMGBU*FAtq% XP) |e6;,6.3[ +k']i7/%UK Y`39ck眹~rY% P4;F@)JuɟwyBӑywoFI+Ѭ$1Չf Mz"^n7a>y3o; weK^[ +&{I@o!w_:Y<Y7V#OZ׾QU&5n2*$MNuQ$H_]n;Q\y#>|z}g'S*N<8tGIާ3rX*y"%}IS$,Tt Ԯyk9-[gi#"OGHw\`F{чr 4!<j:n{{^隿q]\4<]POE_90T:udRn>ߎd2E2$) S9 SI廵SJǀfP^8(?"|i=ٿ[u7yz\׺n]|,=|`}oX6^ u}K?=ONj\y{J꛽͝@}l W`ޓU {? eWmxO_}]u +oT~&>Tju}.~ױ%gw,85#e^Cq2,h5iO[lcil$#1B +ڊh .ظ5JLBu{/ť(0bϮ}wo- !?k,_oYQ׽u~|wo~xb +>'9*qS$*bucI {e&=vvᇣxJX~Dur=$*xD`=b=n S7ANK=fYtfB4!C5@/zmh!8<~&ǽ$ ?8㑏oB)[oW|9),j*OO{7 ,&ZTKBQ^HՍ LG)48hď=m^NBQQ>~BIy<:xu|t`Wؽƶo+Aʋ7S/yM)cMVOr\[j^6Q<9b=vSERkJG9Y]Uу+C++ R8 ɒ)gTu߿u{9 +oJ8 +zicbFYSg5֦@zXuR\' kyo?ӬrW%WwV/ڥ>~^?Z{/\M%M}]- /QW[Q%-<`'C(噂>A$zh1Rp_VlyCb0[T*v%!c$ SP[^>s/\I8&vmk5V@]k +`Q_XX=oVx4]bT{X,\|F 1|*)L'.LwAe*#C1(bEU_P`"rKcW~;Z=چ>$R +SR*[#Sl&ht3[{^׽u~h +<NڔSG 뿏3GS3ۯ;GVcW\e{^@>V_$qGW뜿{.ȷlV;40џ]cWu 55f2#ųUJyr( cxۥXZhc&>tU">ms3-ioms! +[]03|g_?XYL}=oYz{\~׺B)w7DG7?묾ӨؿՅu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~}{=msw%>oqkԱ0()娩㧤Yt5guRgl0nDFk +<ϩ'@f$PI wk孢}zAklsT1!U@,BI|o/5cvEnFW+ F"9y4ziiت4=ۭZK8Ss7uL署B.=_tC}T;uak*pdB +"ZN{{^׺u{{^׺uI_,3QmwLUݸ}~6lwpfcIG2C +=/y=!PJR6h馇kT*bSUc'&FHq 7\˱oLf[($ FU]GL}ٽdzgDV[@;$FX*Ȭqé + ^A׽uL+Cs؝alPTGbaI^uӷV,]/`{ߺZ>yqq'{[e5.??=khMΠ>BWw+Կ0~I*=^+<'sr]џCd ylU8`Jי5{sTd5@O%},LTor\=#d*zrPW>i)rs}՟#q_TEI݉~K/d1SJQ)ue~g^~2s'}ز)/r2;3M4g# C=&\+6@,:ZU_k"lMLܿXTԩ>M-<4jKRE{i%^LWe 0k|G<(kI,,+I#IwwkI7$}%Ԟ{Z2?[Wo7w@)[>mZ+ZOo'>oG %?8w9S9JN5$€ܷ'3[ۍSAq5a+8uv7=z䱕T򝻞e1qO D#*+uCyqk`8sZ|%aF[tV1B2 7\k̜)2-fVSUke`(T;ȤUzׇIu w|j(V~nD-ֲ~VHX㩂Ы1YE |鸳isE?%=J)'grNi+hu"$zόhՀ$[dп{ϺhϽ;g7ZY{>цe]c}U x)o] N׽u~{ߺ^׽u7)wŵs-㍖ +LoM*\zZj|aPV$ZMry)YE%>JcU{W7D֒ ѳK~nKO:GZ.ϣMC7^GMU96&j;'9G6ؚO#,flU]ZҙN ,G\}ˎBtF<T!cA"d@mou(81̣cf\<:];Gd^9 Ѳ vKWEW 2:0duWVQˍoo7S#`)`nv;J["daPG+wH>͑]{;Ss{_bLv6=l5K4Vjxi]"ZGU&VP\f[8?@x۶ }wCmlI_Te_3!3_*Jw<QTfq,v ^ߞt%d|~^X\ːr+r -c +0BKy^ Ce*H:o䚧9A2Bfhjٓ%Q@EP?>[NQ݄IB?Ŕ#>ü\yxכbu5`ul +n+0m!*x8 4aE(bBGQU@T ,ʼnf5'$>TP 8:]o{^׺u˟%]%I_mW<ʓ X{{^׺u{{^׺NPotK]?yjz]k69H !@Q+y}Ckܢ ҷTXߺě-WnK)XW?-=O]׺u{{^׺u{k}{̗ۙ[ǨKb{#>.?[JoF*Ǝ>BSW>z6Q -#Jcּ@O}똝{ߺ^׽u~{ߺ^׽u7'?ŅovO?7]!Ӱ{pu}>׺u{{^׺u{{^׺u[}Dx _Fz}[j9dU 1G-V&UVdcmnCmAhEcR,0 @QߺuˌBNi- qt D$$@&|{RݏC|V r+dq*F$o#Y`2$3ǦnaXEmtu5  &]q݊I2!="迥V;ӭ>'zܛx`^tmGogU iPe2E\i!;tv +z>7;Dg콽&*c*A񫬫]P'zF Xa&7Cq]Ӽ-s.f\DI媮h(:K}=‡` Mۃ>u +4@'R{g?2ls{ +Ϊ*ZTaMzcV'랝{ߺVo1uxh`m%n ~wvXQ%<0@ (V؞A滖h^,̨FԜĒNz93?&&ܳǸ[FHդ(RUtP(guPU +F0UX=ruqK6lvIScĪy]B+cbkk5^4V1H+)0~][46VQ$+|>;3w~X͸^#[6Ą!MK$0D1h'i6==h-DAEI9f$KI=cvnùKowss1Hj@aU@U* =Y?_;moTc(2>궪0˚xY)Urd4Ftuj1ik>KpnQqC].R>9 +N'rMե=ޡE_xPȑѸ<W'?.??kIf=:OӨ癿M^wGTߎa,/&N;~_mѲo׽uw]Awu_R\޿VTld/Lw}K#mXe,n=n:/TK~e>T|~wGXNS~< +i߫kjwfݢztGʼnEip.c}uEUu&7>6bXntt ={Mnٖ1L* H 8D}]{ߺWŴ0}ip;{O^mJIm^u +sN1mTet6?]gh +y#syXu\`r #MC2L۫ry%aiY.@>RIMGQQBa0m>+Pap4cXDPR4<]N7 ^I1Ƥ$YഷBG" +U  #X)Q%ThElAl F*_;39kb15c{.'[<"v US==PeRZeO^+G4>,w)X +, jʯz?o KhMZt䦇]VWwN8KQ%/XKS]RhsA̼svG0[-\27⌎=Tyy+wMZtUI]4 0Fx-/f|HsE )W]=TM4{{5ܲŬ؅"y-[m׼Gn0hAS|=UMc`^+I:+WXƒ>Tw.{NAQECwtژ3cꮛȬh10ՃS 8>\׉o3>,dWE C!A`hT$mq)}&r#qVSB=G^ܑq !)"Pu.{sO:{jGȷ6,KYh._J-s|lhaPءD-\~5ϸP}jwӢ>j~z.ƛ9y|Jq㦾~kϪ_Q V Mxẓ`SbvzdcSeVOQYh%ږ +,B}6ƖjcRx5PS+oHYjKhXy3Գp.W%5?/~dlޥ ]R6&Y(Yš `Jg:|UFGE7Tߑ>cg;~`m̋S^O۹#'֯2=A]eKF<n/oԧ׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^O39#r:z n3ANU uS$P HK, QK< +]܅UPK3@$2NM46Äff!UUEK14 $֊eenލ KohS>"tȸJi90ـ,+Nielߑ_vp8Ta`H|4:u4sdd٠lȦG| Tᝰ[n6BXb,Q؃㨀N9W#yq[Fh/[?'W:Iyyw];~i-MFzj_F{3觯{^?om.[q Iՙ|N)KcIHHГon.-!k(U*,H|k[6W4TE,}TO _';g7쟙XN;*ElE1}BTjd8̉W6vx$%|zV/)8X˵ +ɿoab(OZ\6M*no{_olm&)ql.&htc$TQso/. /233311>66{e[v(( +t|̧!cI; wjU;R˻_%VՊY|q6F*e*IeeHs6+kJ +PPy=xSAp67^_Tˠ>CXZqcwܘp2Ul3ESaږ2xI`TxT +]VG"GRYXUYXTA#uۛk;FX0 8=KڛSroϷ^d.Y~nm=,Lk+TXm, ,?'{k%0wv4UUf'+ӖVW{[}m4hƊI˭zkDuJ:܏UtW}d,*ݍ(vULLdHIۤ{2nCJ\8ɰr۱Lu= Ga#'+^_d~h +%>iQwmV6}ݛj&p,qۯbcj綤KOA +߮:Ac{}Fm ԕ1"IO,]>E3Wz[6pW aCӴI +o*|V +=c[dhwk W.Rx-Tw&槢O%Bv`ξGVR&8ifA@+ `g cEOYDtA"%,A!bEPj[=Ĩ5Vm:ν{i"]?9ӹY['|efzɄarݪTc5f/jl6r:0+FJdGY 4i ;yAy!-5%jR)XJԉժ3НtI;XnD~Q5|4sK~Mv>d Wqy5܇,u,+^峛eB1u>?g=~rUgeDR*TI'=d 4[/Sm EKQ.WbƼS}Vi95=Suۮ*VXi4 +\t,42-=DRA<<3C24R,LRH*A \X0 XPxz}k{^IΝn4'yv^Ƀ{{%+}jcqMN%MC$H9wP Yo[FhoaWTފ*Oewbvi-"Fr + QEdu_ARl/P٬ګb᪬dvm 'zcqIJ,]KOG1BIyw;(kp@UIxj(cZk11{4{pf2ͷN%I#J:DC6wBgV =?9>>mi-u9z;UhO0*u0&դ>s%,uv<JN^YƠ'NV8PkkkF)ov;d0h'@dB()SKWDӠ^׽tt~,/1rԔ)ԙ4ʕݓie^9DX*?ԘSVG)N7'T%Y@D#SP>aԁɞs>Ω.ГG2 +kE=n7Q|͹쿐{*>ޗ L[WqzpsR5U1ıE{p-T]&pRpfwZ-MY'^n. +"1( PQ=M{ߺAzzD7$Y-r;ySUSɨ9LJhzʀ(iM!KI DAߺv^> YwK>G!4Gife;ym>QBhk# +n{bm{_o㶮x׺u{{^׺u{{^׺u{{^׺+}zW]?zoy+Wk&wNG/1p7-jsfϜ*dz0"A+bc =Ndf{-n$n24(%?uBo}?8wIvpSkvv8؄Ju@'xu M )ؑ?2jz~\>#蹺f`)0;ow\/M:M??/\·ZTW&u|ȒsAFKSv~C1 ᐋ/swE)uN[83M{66;v#?\pۛgm=&[{1`& c# ]^747v,f$&YX@1$1/‘T?!:S׽u~{ߺ^Gzu,s6N߻zslxmӅKC< emsy-'hB훵m⺈IcIpGn77kW$uU$#cԙD@}0^^lǶ{epG0Uv^d}şcS?ad_ʔ1P'嫏ǒXuJҟ$f&@1+3مIO!F%$*jˤ N$]G! cǣտz'鞗k)T6Ӟ;U)Yvf Iݹ7׽OvFG+H7+.&oP?(-^d~{ߺD뼿[?yn[QWm˔Esy=]x,٥ kc]nxo):E:R@\wAq?1&FzɧRWÿwOG|}jtpgwM%5Jx1tO]]I *iGk9.uqinS\B(|2BFHY# +G`H!r}ɽͮ i#!d>aHϣu{^׺@vgUus 흉;eLo]wK<jĤȣu-DzeQ>vtWq$8'X3, M>sL,Jߓ,a_Q~{Iu!, hZf_B|6ۛ;GgG; v*cƘ(1XdqSƒGqHK!,]؞%$2I=JvgcC `*GDQUTP<t펔u~{ߺIӴvT6wT}3-=0!MWE#?oIollsiBRDWCKw[V~"'l +M^a` >rSDc \u8SڝKOSy|)O:I2|QȒ͹""Ѱuf7[R:a=oz`Tg!EQЫ$Xdh~ÎT|9ѵ4[3Hcj}ŷlnhDL۩"A:KrHSw^oǼw7Qs㮏ϧC-'Km6/ Ę|O޾%1з{^׺u{{^v}$=##<~&޾m )w%E1laS>{G7V컍ͪΩmS_{OB_~n\F~R?& +&I'u}ENCIG($h>bPw!'&2OO@'bESI8>)҇k)ɳV#YQ"т67zd)u!qpl,s/cnDߝkҫ/d}Ńcc?fg_ʔ==v/\۽{i`f|4:WJxH`l8Onsy.$<^Wiğԍnn-6x(4bt{ߺ^׽u_?hnZ߼>*'49Y͓uT䞲kqԲO#]坠2;ĒL>jV[4‡)pW`:7Oene2$%atROiRrOFW>8t?͹6莨=[)P<%5 vn)^̰z܌ѩ(WTJ꾕`a}.E0^Kw"LHPx_B ܻ|6ǖa$ ^B8 V ~Ⱥ~{ߺ^׽u~{ߺ^ +Zjj*x*()#1OOQ* }`J0A>DuWD r #v5u9 7jr5ON7fddW%>yf:!zVÝpoAW*Yu>@S{{K[лqdbc_2h$ɯg)/ {;׳/;8]?drN\z!'Nhrٚ!bJ,ZҾ;ŘbI7/s=}]27YZ55+#E8cڏmvWYv]iFhVWCJ^9 TEOOpAi 0‹P(@XcRrI@UUP(d׽u~{ߺES~ICwB4EIO+4lmFے䦥fh@Yr>*Dr5ljc :,#pPMN:s?g>}}YxbݑPUU =T^l^WQ2zfxAÂ=s4&MqHH0#˦k.B ͮ iI 0Bϣw{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ;OWۢh4T`{vJ<SJ +HٌȥVE*~1l@5 fq"x¤ >-pkf!)ysQaG X׫U?yqu~{ߺ^׽u~{ߺ^׽ua˓{Gh6Tm .쵆6jj䑩89Y1i]2T̾$ogg[[h+Rȉ* +Pu0S`ՊuqLFUY(DkP *zLuǾ;Իjjl-1TGXR&/U]Y12;1v'7sM}xqpřUQQF@r/<[;" ke +?1rKSХ짣{{^׺u{{^|Q;?^Ĝ+~=y: s;Չ:z\p׺u{{^׺u{?/_<_m=޻X?j}fv?[cs{^׺u{{^׺uoۭP^a?m?hwB?xs;Bu_=O}떽{ߺ^׽u~{ߺ^׽u7'?ŅovO?7]!Ӱ{pu}>׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~k뿛uwsvNB!˲pҒykidk.ztw)Y8&dڃ*}l:\_CS j=x` 0 㛐:o CL?ш$Hڧ$ŧ'zu{{^׺u{{^׺8~Ύ/YGJLb E QeZxz̲4!His=l>0g5Xa4. w5%T=|#cu*S7>Կz{ߺ^׽u~{ߺ^׽uS#m(F0{ OciCәӭ{\׺u{{^׺u{9,/c3_*?K?[d^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽umTp__3U|xsݘf^HAIBX孧}xK3R쏳ͷ d-q#O )s1#92G NU 0jjD%iYYWyjj*e3TUTYGfwwbĒI>#A`*(:T<ř$RI$NIsAUj\*8.8Uz׷Ǵ(g4i ZeۍdF!1 +{׽u~{ߺ^׽u~{ߺ^zsdw佉9;V{-tRwuվ׽u~{ߺ^׽u~{ߺ[d^x?{w;Ϲ/޶f^׽u~{ߺ^׽u~T[|)+:~wnz?-zu{{^׺u{{^zoN3 x~nCRa'OV}Y/׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^,7?楁9fޭߘ5tSCvܮ۞k%S\.:@I*QcUN^Iqϻݷe)۵ԫNW+QN:S=۝3 7b2iH  +3Z-Ş7N_#7.dsۃ;+e޿'VYGYēsV"J@ +:ԗ4LIgv%ĒIzfLu~{ߺ^׽u~{ߺ^Хҽ1!;CgtR׿wbR#xѥ:J=UudEe;r>J!R*,h,/r;;ñg` +* +4} P,(ܽ`wgGM$u7Nl?~>}=ަd 3܍]OX$[A\Ff @\E:TuԿi} +W̎+DZb"vanN{{^׺u{{^׺u{G+t{rwW[-?wV$}qï{^׺u{{^׺u@z`ws_kmν{{^׺u{{^׺nAS#i{=Wu? i|=Z~{ߺ^׽u~{ߺ^wg/O?tNOβ_{^׺u{{^׺u{{^׺u݋s;V|v=sRsomÊXH&Y9DK0+$#J+=6y[ KۂDGҠ3yw]iجqޮbN2L51O=W^k,,tؙ#ժL/Y^:&x)vU3cuKؿun#cXSڡ_V \}}&෻q#ݔ<(xG>G)#/o'i?h#}_7^V>D% :/훯+o"?c?ugm{ff׿?O{{F:o?yKf`ȏĽa=OYG^7ٟ<٥u+iEI<5OOw:5]fԎ(>?h=.m $W'/٧`f̛`H~;=нF.Z=-jLXt^ciߘlf|E!Zt8=UMH7ߴIE9A_¾?ZTM_$Mޞ3w}[rVI +_'o%<_F=bW0zwjp 4 `H Tk8Հ|p?>w3>Z*~UT +}IE '۫#"iaC-E=E-%HP$Cu'dx 4XJj83h  C}OܫP,-!X">*ʏJA"}M{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~SϏI<k;ݓg}zoZ-lѴr &>d,~{f7wl,XȥJ@S:pԁ=rW;^Q"Cir!5`]DJ?mwEn*ᢇ}a]ô +AK)TPRV. NQ09nk_#$@Iwod*;F>u@\p[Ndd"r&Z0EF8l#qa[೸3dVҳE==D.4lUу) 'ki rFYXhAY[Aw]ZHee` +*/mt^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺU_?_\) DӬꦥ,u+릓=+ bʬî9+UQK-QmCۑX1#&FSJ+{{ahD?O8QDJE2Ф?NM[tvOc\;1Uܻ5TyJI#(!,qDJ۶lm{dK +E)I$I$uwmvbH80Hk/׺u{{^׺u{^ۿw݃[z,?n퍹29Rih$(,5;-QY=jrdX`Kh*I08m׶D\:q34dzU,nd_}{7yRx N+e*L}+ڶH`҄dH N~%hu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^1ugfnǎ'c?؟TV ^5>@WVIKz` xtqo%FET\HW[v-7>Z[1w6je\Jy%FYmqXY cEU qvsrs,H;fc,I9OIz߃v˻kPnzꌌ}u{E\M<{Z&:-K&Rzjuq-G=>;mTZ_ F4acēL;\1^1qiq<(S!UP`^{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~W`}gbmE>ҕ8V:ٸ\{";EIAG +=$*#%UQ';rɲ!QTq'fLgjpUQQTa@t{8華{^׺u{{^׺uqb8,mvc7b0e,,W%Rxn>ZIgH5,T@Co \0H*XpNS$%U@$$u}T:EK0 U;&G{o"uPLLZo%V44ٹ{#mڠM˯#H棍EV>{X/0zJ[X 20 ?:4#zu{{^׺u{{^׺u{{^|Q;?^Ĝ+~=y: s;Չ:z\p׺u{{^׺u{?/_<_m=޻X?j}fv?[cs{^׺u{{^׺uoۭP^a?m?hwB?xs;Bu_=O}떽{ߺ^׽u~{ߺ^׽u7'?ŅovO?7]!Ӱ{pu}>׺u{{^׺u{{^׺u{˟*#%|*say?׿?_;{uG?ΟEoOumOxuE>s{F'{S|cǿ_z~^ц7^`?_!Xo:ay?տ+>>~QzVav^k%o]B<ע \~2cl$B:W!=ۖ.r)M7-*,P +! uP*E]-;{7wΐ} 2D,FDag(@Bw1}g^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ϝ;7A09 kN߸immrWG,IQQni94[ Ic5v办AhnعȞFZ:fQ!UGIZjKOQН_oo,H"$T<$e& .>LFz1{;O,5q0-Oq "D!_KĀug*w*gI7y-Dy\6hօbVu䢊YM$ZXݟ|ogyFo/nQ2uC0*$%*#HRu`+>}r߭m^Q VkB{U @ЪuM}] ׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^FI~Ctmo[zwfs הU;~u ˠFǍR>cZ3}yo{y,T#$SiJNf.S^k[qrm퓹tHh5d(ʦ6@q"??Ώ[j){vNYzy+< vz\d55-¬$@?vrȓJB-ʯ5of=綍 5o(<شaz߳-[|ureq8*T[1[&csZTy|Fy^ x!@%'n|?+ί+45Z]#21*VF,DQ|#C NDm矷! 4U!vV* fPl~@ yiPƊ0dF5%Uw)Pv=9[p̰cTSr>ژ$j +EfҚ+KQ;Q4ҿIK6~KvTyf4#ISPTV8|s&4Uc5$EI%ؗf${׺u{{^׺u{q$$Q#,j^I$snI$@8XQRz[-)%|5뮼REA?;G`:O#*`|}<4ړL"OD}4r16Z*%%HX.񟬯׺u{{^׺u{{^׺u{{^|Q;?^Ĝ+~=y: s;Չ:z\p׺u{{^׺u{?/_<_m=޻X?j}fv?[cs{^׺u{{^׺uoۭP^a?m?hwB?xs;Bu_=O}떽{ߺ^׽u~{ߺ^׽u7'?ŅovO?7]!Ӱ{pu}>׺u{{^׺u{{^׺u{˟*#%|*\\KӀI +K1 +@c%@ʅcL5}GSG*{ɜ~W"eh)*VʢJWgs]Mɗ635Nj̎O'd +x"Gip>VΖI#DPYUTTI$,{XK +*h $ Pٻ]ME sQKv'^alIDRV3(+]uOݷ{Qs7ڱ噵dguܾX^X>A ZX\CQud>o|n[7{nͫo=Q\W=HN#YNRRDwxUyÐoϘ/9@)]1QQUm.* P&YqyK;{ 6RMi44:Yu#PĂoO39#r:z n3ANU uS$P HK, QK< +]܅UPK3@$2NM46Äff!UUEK14 $#(C|Z5$ؘivS'㓆;m?wq;e[Yj t$q;o_zOk7WM B:ѧUA3;"|6K72]sM.&#|*g# &q:vi5t, +?jˑ"[w:D0=^JOPM ܉"3Y(5&C|A%\š {u#+|3jm]6+tgl%>Niq ùXl\Tjauh2be_b9t8 j]P$+~ʺz'nRm{q +"ZFgH,+R +|Ah{6Y˱wV6È'd| + cr5J':M|`W$/ x<T+x衎'܉,bx–yÔVN,#v*2@ƽJ71Cl6#ߑ ҽ~ِW0!"K@=~pA6,'8IJ#NlO9!ǹ uK0 QD&p}z\(F"?\.tI4nm׎tAM-̚#JOb>߲DW?{/l}1A0R@1cC_V>ٙXpENyF*Vb4͟Ũ)QרE}}3kڌUfb?"Sw[y%6B?vQ:ͥ6۸߱>[S;J]͵-FS⤖d$9#=÷Wu_M$Q2u8Xv̗J*FYIR>ҏn~{ߺ^U]] ][%7>#n_ lvFAA +>l@ɰrͯ6Qy4,z EA'uVȬ؛$Fi!I8{.)rD"0Y}}ͿA$ZM:WE:7Oߴt8.#o%?l?j=4_oUK>C|z7&o=UO{nlXzƭW<qAFznF˩Glm/fFD4e`UhAoqowȲ$?mt^׽u~{ߺDG?/Un%h&4vsdtQV̟r>CPYtX43C܁{Y3F;\P$ djN:mNFwxVd1DZy|M8 @7(Y#`>EoIf۝ub7Q۸nx:+7Td$diӆASҞuQ}޿ rD1_OV8"kh8dV3Ӯ/m54y^Iyj7wZca!+ yGll@ݳ܋PLKsO("c|F~YOlZ[u fe>x˺ ğ"'zegkA|Zx\l n8I(E]\f.ք晼LEhj:mKv|l7WX!_ $e|Mh˧b#G^T3 @O@Ny'}KgZq /4v* @5jekwcLu&O,xnZ:wb8;Ddm6fo![{£Q XɎ ,E,Ouz/kk岝C6%("%b@EH:L%-}U=u u<UsSIYIS$r#+e A:@'_+b~>_F;{JN Voqq>~msVF;E_rUCO޿Yo[ [KL~dybm,VHe7vqP ir@ (~xK_nomAN~RAvRږ³ +$Z7#Kqk~x.trWEYQ"LTZ +tb=u~{ߺ^!?%:V݋tml~y85&O7%8 QOpLxh)u_QP.}l<\x]_kWHrVUޠfwZnGA{Rݕ;?jc3?AES$BoXݥU IWs'SǸkyw^6嬶*$pQє>Gb-q^@N㥀5FVA^m&k3950؜lsVWU4tPK3v _wHm*fbyVt2s6D1\Tڤx**P4&u/!IIUsḿ HR4KqZUMhm~If^ T#ܧϨ~5+ONeuWZO:_?sf3m?_AV %[?gf kO]zjjz~ӫ8Ѣ'j\uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^wM {zji7ujIղ(Z:xfʛ:ol;*jL$B,WdN_4Cd? Q#S.";ϛ5kGu;k+%^;v[q#DK-DRLAYj$i 1tg 6}C9M1y]hB%HE,Ǖ{2oAUjE\"U ;dU'~ƽu{{^׺u{{^׺$(M? 83] [ToujTy0ShQ m'e~SUn.!a|`{cgC9AhV/̊(GhӵF5zu{{^׺u{{^׺u{{^׺u˟%]%I_mW<ʓ X{{^׺u{{^׺#s }Qn}?c??7:u{{^׺u{{^GQO`Q_q#3'[uk׽u~{ߺ^׽u~{ߺ[sٟX^go{?ĝOgm'?Aӳz 'O^ώ_׽u~{ߺ^׽u~j= +p}wŎ m|rIRQ5m\C%2W;d^[}66aRvOE;lvZ᜔ Ÿcz +?|zW-e?YlΪ{7nQf3]is,XYDxr tTT:@0{[; @N."aI#2?,\*w/rvEa"Kc,&F%yDqPV|c?!>yo̷bgYPdbtU&ڴJ(+?_GH)㥧eIo=o1-(ܸ,>uP Eڬaor=rufL6Œy$# +ԝ!܉e׽uzIથjjiឞx\I M +)7VUu(E9 NАA#G[s$廻s`~|5p)ޓcqVe)uԒյR%RySG34ofY9۔FV( A H4:*9nr9Lf,\بb1HSfdj?xh~oK`ncs[ꎲCE{V%6#%Lr1$Q"~w{~>Tk%bBpH"4 $*~lK]MT J +rV( CJY~U 3TߙQRsh6?b fn`DB#zUN5MD]D9Gys6r\YHRIʼn9(UF:7:4w>dir|8VA1GZ(]Wf9t ׺Sl绺t`ݛv|YM6R `ǼsB*n -퍞i%OK&R#]}^Ǹ=,$:0VR?auw_OU:e0#1]Kk1RvSM5Vl* + +/ 2qRS)z" sRc/5i[;r5[U5Ժ'Wie=ط9{OohSlK?)H'U;,]y)+ut+s?~O/gkLUuC}]d?Q͍]{9mCH >ՙ@}7Kv$%W0+ +:<+Nq'€;r_ݹrl|}}ێjyUM[kRX*d{MoV +|8t&mެܣJt,8b_Q/|]{;?LvNר4~?w6۵j̍K}sb*R6sDZ'[ݵwcTW78I&Daz s^ٝ3Z]MxLKQ,Q@0 YI'>ezsAv)>!{kbe޶0' +| BS#A`*(:™$y]3I&I9$xݺ^';ocn:)nt-dT)[ZPe E^14LH'iiێ_lk]0(P?݇_A:֙*s}eY|ɝrʑΈ" Xc UCo[ +$E?MPkFNJt=oru˗LY-ޯo/$ +kBqS˫um#}igRd2U䰍1ǸQX#花bWB!7hl+۝CuS\EjgC ;Ztڟv/tv=}E5Y+38 @Tkgԯ׽t sGtnz}v=+΍3lfzܕk2/fFyol"8~EpTQc 4Nɛ$mk;8׋ +I + 0|r%df3Sg疗[G+-sc;/uu=rc)<|CBj%K^{%ܓwwJ()zA@8 ru(:8=y,$mk|ċFrxԈa߹{^׺E][cSUG]EQ--e%L.$>$i*P„PA8#$% 2lU/ico?lgzvjnomC9[sbs{px|'Nx7!H+"1xAwiscs%m1GGYYM +9z i43(tt!ՅU# }OTu + ]/z&#W;r3E5Ny~c6WHjߎbgW篻o(ou5<ďB 9ַr_u SL׈ ޠ8cֆ 4Oev/Fߧͦ+hvWv^7}YRb].r"qRyPI?/kZ=s[OD@jEE2u+>d)Y`vsI4Auophc̬kU,+Bz.'qesVeHE2SЦݦI7FՓxl2XM?v|QBpRq:ȯE]"b ҭ@ryYB6Vh#4Ojk5ʩXwKytOo[fUӾwg\|}4ۊinl%e8:& WS*$HeYި>FOi2jqBh/($PpNGԵuVʿ{qfosn~;zg*j'j#*"YX/3/%UUTUUUPuh-v]hP[F GiSĒjI=qkzݮzb]$ItX +p: #n}iEmFK!ۭi2r5L f;f䑘Sc(Xm9=ڭso[ryk?k8g?6'ܷ}1vi|1"2պ{<~{?9[<λhI3Kol,v~4FO#uask簻m$ +ܙ,W@O؈(?xrorKA 1-j(;}Am`~!)^\WȴuUl:XyɳT!% +`>X}ݒkmwU5hdhXtlrPIdfn/f{ Jn@x@U3TP)'T^r +WU[ >u~Qwqnτ-$p_YQ]9=X9|vwpPR5Rj1xƅmj53A[>9Լ'T[Tl@]Or!)Ē X ^C]6*$ђv +8 I$ +,@vojvGto,a݅ 2{uIXijoFz廆U1ʾi*pt> )VKo?:~U' kvbTy[i-6CQȬ~X*pHn $F?Kix4,QpQL?Yk\mt?עcVrm?^O +yXO}GxyZߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺA?xwwYsݽiv9B;K2cx(%UmmDR 4.}l;۴;&vҪ1Rx*A'Nc-Y}AklNMT ,;0N`>_q:jMZMSR d&h3Y2u`uH!O J:C;_[skp>X"7s,Gw?wX,q50ҽAWTu_>n{{^׺u{{^׺uߏWg}ۏ:yd0Yaƫ=m=,D3:$ \ɴoлxѾ> d={l_>лxѾG[^?m9e7^;񏩿.oq׿O3Y׿&co ,luq09_u BF n?}{ d={l_>лxѾG[^?m9e7^;񏩿.oq׿O3Y׿&co ,luq09_u BF n?}{ d={l_>лxѾG[^?m9e7^;񏩿.oq׿O3YуSvˮ{mck7'Wov ޙdg0TSf˱]FX3&û$яKV;'oUi!LVKyS),fo/?1v>,򖊖ԑェ&a&LIT"jiX׺u{{^׺u{{^׺u{˟*#%|*ʝQ:6=5P\͜{9f鮕YNaTtϮ":>'`Ľǿ ?:??icl{#Pؗ'ihFG4n(? +|wK߿4u#}X7^i?>;% ?:,훡ۤB<q⪻g!iTC=lͷxPd\L}=Vze\J/O#\oqt]jv2JjcRLYk0I˿z_r}zmC^$e43_>??ֻű<)BVʖ +yuH/>?/}go,YlMA ۅR-oI +u$w{|ptFLDhtF!*nzܗmhۙFW`21p*WIDQʇT{Owioi-ڇdhOGYOȂAMyd9u6Uу+`:t?hQwwHqO7`MLŢ;mSgfZh#!Vôɰ׻$-ib *p_ЃEzj+kj Zc=ED򐨈R0D$2z9wH! + $I$8m̟6sGU׸zꍕӘiJ|7[`+$Rبe,j9(zu%AȜm+汊F*My+>{[bmc&T< +iN+]*rQFWn_ǡy,Y-Ϲs5M{# 4m_urQROSUNU=<(KyۗkhV:cEҢ$E£#3{sq%>ǡtXϹ}g26u84Ӓ|#~m_BzFV p!,8B̭|Olٔ!hp42jK%"U KO[̨(TH- 43hY7۹! + ot?l;v!q|M㧥gՋ#:_E7Tߑ>cg;~`m̋S\]) +)e#A~"=x GJ7V-kwnϒݳ1yo)X:j f2isDR~חu0ĥ݂Yҫ =nf +ƥUP $t'c=c͑ZO7+\% .bcVeϤ,C.o٭giv|ԾMܻM}.wۻ}X<L`V))ɳ3]kv~-E6Kqk M$o=~nc =>2TRI +Ay;||]ɷ\JBhTQI X{>\|EB Ij"s +1%BRO۬x׺? /Y4'?;[e3 +wyS55XmBDIy [ ~; 򑊘x%]xpCYg^R@PRP=h`8jvޑ7l?x?t{_kkpcW/Oh[=HW%c'z/E;5])c%0\|=(isb +\:[mMQO>my̑-X 0LUsUՈ}EP_v˒le>Vң dhdDd2k#:#;#vN̛}j & <U$7'f%!#i۳>GZ_TI6ݩ f-Rr +mduʳ V`<-7˭rFFUֹCsz,s͜g̛Y^+\2516 LjSBz=}րW\٥9TU7E!n˩HNU:II(#I"]P~<^*)#8tpM b B%96n|6 hP{evpiAXiP֛͝@}ûcU^J}vOؽ(*6ϥ$6eU\b 2M-=:{N.:q-D6@B8MtF!3LھbCuk-CC=˂cMrtF*̪ a⨡Lgewm#V^m eMQDði&"Zj}^►E4=pmh,#+K#&HGsc{a'i&x=+nb*`byc3}}-ms"F*kI#˶T>d=B]@G3[jjrJbܻK+SFzv 4RFSE+27>zٓzԧj "4A4>`UIDo7y=.;jb?)"bWȂ+UX:+ŝzS/;/;%^Թ}u*o3::a>ZʑTWӉyoaykV;c#R69%*@9X2x/ۍ]PK"j+d]RWW&Lm ε) G-?WWi6b,[δsW;c?m۟IOܽe}fq:Q7lϲ,+c̮FQl0e"8U'ȀGG[s=ՙ[oQ? +daXy!Qie`h fb@U=3 |&Uf`*NIQCYCkhIOUIӽSMV8ڳ11n3mirYHhk(1R=o%rMm+xgWfTC꠳4M>n񥍋g,Aj=ӣx].G~@6Tpo;:2bhr|ohewKk@$5>j! >eFz˷:77Tvlnaۙj)h43SKQ$t2K +ٷ6ط}eUx"4*2 Ns}ط~Zf7q" +$z SՆ*|wxSOI;ҖhZlG2CCQSK>ZHAer\d D1$4 +SW_s6b2JUF=K)y)ST!#Ġj h 1]u޵ӑuN M"yz[n`I;T4K\;7Љ@x=dl?sͨ[%imS;]lo=#(s{j*ݟUBzzwhZ:#uB^,ϗKX_#I(*DRddF#* 7~Ym@yRMUI֯"hj ׽u~ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZ'=Ϟ?#>l۷Hu^ej VISL&86xMs(r,/1?zcW ɉ_jEc\76cr'ڜv!Ғ2HGTC zƾ{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^B쎑{zyvՉ]ܻz+eS! E4xc -2h7Mx.-dqP~c0⬤2 z4wۗw(a5IЏe<XaU`A#'5ۿ+q nִ#vqۓ)Z:^‚b"CRzY&矻\uօ.$9da e[EW _d?gh/Bú٨YO8uɍ{/_.~NwO|''ߵe^N*N<7bN^:u{{^׺u{{^lK[G4xGڟY8׺u{{^׺u{yoE?"6O{OEP7PmSG^׽u~{ߺ^׽u~oM fa{ySxH~_$_O|%u{{^׺u{{^׺u{{^ʻ,/t{'ʡYN?owWt׺u{{^׺ʈUUO{4h:O,^}/] +Nu|+3Wcd%%"1eGVU X0x^r0V-J|ՊR0Azw-/em[ E a2 +0 ӇGԕ֛nk?䁺Doɳ4tu3~o}Q9.X-3pڠ L} +TֺYb r}sN+0\Kiɧ+]ʨ>UGqcVK̑t)=O0WI\|yݙ}M)6ؘjl6LZZbUIId%|wϙ7iS-f<3T~QEEU ܿolm"(iŘ'sVw9f%OBO [s?×lRlyl̫GNk0y͸Qm"K2vv =ʾs/{4,Dw-2 |W-9gPd"lULA?cLӯ_uʞ{GYOWY&u,T*H*zzx9'JFEP{?ܽ(rz?NXUF}`0>]76oxc*d64}mVʊ9x--&Jd2u!=#jV4j𥺴P̊ug{k7N$Ҝkr Yi:\׺:*8?? iŊoͽ.<:1e]2ɅM9 rw9y6[{DQ1]@Xu8X=nG [[qU HK^,IqR^քϷ.~oV ~BJ^4p4MMcSSObR8W[Og.C[+/6!5&-!'*F:wccV@n@j)0LSI>ndFZo߿tBeSw6QsЯ8:WT- +0aazy _x4}G=չg~u?n>?OitlՏ<:{g]3|g_?XYL}=oYz{\~׺WkAIuav&B5ivU`s/Ld-UL3!XFg!7{1K}6!P?.CGDGROB>>\y0כt#ɥQc7Ya׽umߟ}6f2>eqt⒇=Mr8m*z"WRE!鏳sf5f/_ͮI[,Uvxhfź1Xjg1ޢlRc,n{W2"Xo7Mࡊcelʲc_xyBGqجMq,E2#,c{8$OaqJKvuoK㶿lc'W:c\Ff"Q'&5-!OJKvrFbH o:m_1ܩ`zxJk_w_ƿ?#cY%l)WQoï`mRǐrcV"#9l]Q4I8APy5{>n dK;#eHJOWPzwRh*t4UAIGKOK=MULzx"Kwv + uwH!TI':h,@dpo]Wtn3X->o$>]h7jxyTTіw1@%>m7\6]1M{ BDJvfI^rU re.[FaOԸp Hڙ4QkE`{ߺT->C}1pI_ó3B5t\KQ8&4X8#ZY^+~l~EU,qe*=@xLmu)鐉Ζ3R!?_?O} }3γ4[[|31Yr†YP5<#+%{o[-جwQITVԭGkPxy~$Kg4s- *cp?&2$A_S &cJVsAUFt[EP <3%o0Xz4##ռwPI")Vֿ?!~Ųؿ߼yJ&Ӭ`ӷ?y֐vu~o?_oMw|mLnc s83Q?ڵ5RMǼy,d!$jc, ߸̷a3&`&E4L4=7M@*Z[*[sɹ(%GudTv  R]d^׽up׽u'϶,Ϗw<uuMxuw~+?|÷i_v'_SO{{<=VGSeM? 6̿Wa-ԝG:#PS㶶˯p [R&R3xKyyx,8ǩKI(dlҝMkn xIcAqG\_B*::L}%--= <tTTpEMIGIMq""U'w̒ĒI$NI'Ƒ"U0pG~,.X7ߟsqW +%n_g.Gu`W!PH//!Zd)ʿ1\żLE( $oA":?\k6ŷsJ}+hI$MGF3u_Z]Mb9zZY㰒 +lA2VmR=ABhwu3FYc AviKS>tIPNݧٙ阎MfP.>'UT[(*]sȵH%\950ɈLN=ȭ;Upf"gRᠦyk&%=\/7TIiZj(]GGܭsG2XWHw +GE%S#:eu7[);kLDK-D5Dz3,؞Uϼnrn.]/EF@umf۹{i6V֨ƣTS'͉3$ {.Ӧ=ͶngPdZvc |vS]N<3#"=rhAVȂ&-%A,3## +#y wEzNfnx-SPX9{MQyVcK4we$ p:>rrܹk%m'&*ꉏ͢(O'E؟^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~O}/wuS&K:znL1$Snl,m:iQ4MzH@ I {n9퉾Q!1 +sy[w>a_Y B"d*!WU__UQ]]]Q=emmdUf$ř$}a#A`*(:㤒<ř$RI$NIPT骇7VD[ݏ;٭9{3Fo; o5߿ݏ;٭7O^7VD[^ћ+o"?-ckgl{/fgw[ϫ3lnզC=UlaD5Y;3'sT4SStkbI$=Zveh\Q575A8Ö/pٶxd:inɓ$AEhAV:O׺{3"m7_|Y6aV_ydDC<]C$_d8 VP9~˷[6>л7_^Md/G7gϱ{Nߘ?[}h"׽uSȍwo?Y}Q2Ǜ7 +5?-_"qL)*~QƇ U_OݞI(?Fg+$1OG?z5 )Ϡ:._]s^mcm7lK,ifƷhHi}LX@'-m +7_Kp8~j/Kk,irFG,[8"(E8P (`GI=v*?z}{ߺZŸ06?OT[޸ +&j*y;{˧)7/> $-\z ŸQ:- Ra(]jW0~/kwݾ~ iMw/|7E _B|]P(Ņw?XaAVEy7VWswG>ݳJVV?v_*ocoaei130ҶeEq{^ kWW%Nbe7V7S׺гoܿuS?_?xu=y:z?sX.M_6'oʁgKﬥȽlg>Ca_[撯sogi~P^VqTC P,(WyB,yOk+Kt(<^s}!%s^=ӹǟ=1"13sL,K9M,5D̵};Ӽ4"*ik;k4r* H҈o.EYWրvGݷ#x_t=R%~_߿wm{)F?^owoy߻ nr#,W)y|~VFeEu@ dMTA$(btB(~ig¬I4۝7<>hd>dnFST5~i'UPo!-1Recsl2鼪<bE]Pœ'6Wg1\P>:\HIbwXdHؤȇR::؂#D(r[ towoy'/Hr7}k#~ݷ#x_u{K9{ݿ?~/=R%~omW[s%=M5F+4L9%*J AF5"AێQ琂(Av \cھ~}Mz OJ7HۃԽqδE3f1:&e^G&9X.9{ofJ&F+<>9[rouv+PX5GAǗd/[|<}|i;}?EH_y;:XMFRcVGjkjHdXbi@IbyH#i4}W~lf!h&BÌc"PD`D?mܷNj;H՝zM;u;}pFTP?`(_^׽up׽u'϶,Ϗw<uuMxuw~+?|÷i_v'_SO{{<=VGS0~|rRPgpP~$ &}G2;Y;V]{ߺT- +0aazy _x4}G=չg~u?n>?OitlՏ<:{g]MSFvjyZmž'ޗӋ[4 fWK7D"gnzg׬ܳsVfkHqY&*qbk=):>m]<`H6/kn!&򌌺ZRn/;{Wۥ}ڠqKx6&DBJz/bC]u{^׺>|dϺ*5'RT<Vbp%TQ\GIQ*IO'(I9.Tblc"r+Ps/ +dՍ jEi\(4 (A4k׺ߺ^׽u~{ߺ^׽u~{ߺ^׽u~T_a??i5=Ixh +ZWUH:ӵ; d'SngC[8m(:>/oVJ֔~څG=|=o]u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~}+?_WJ;4Lj']]OW '9$lo^--ݙqi,]U@H$eie-GcV0IUQVrnXCkquc^{{^׺u{{^׺'{ᢘSn-{R_In;;]hBluQbeWܶkEbJyFGcg_ɣăIe*ē1uβ{^׺u{{^׺u{{^׺u^.쫾NOwWՔ+=~Nϱ'Ano_OuP{?Ǭׇy?㣭㮗~{ߺ^׽u~{ߺZo›?zcM_yX=վ+&<ֲ>??'V}>Porͳ_+׽tS~{ M3a,,&>ӷV,|Ƚ??u~}!??"|j#y_dl_̿Šۃ}Qeyc[T&se-L VLC-Xv-hIZM4RFN3J +58&qZu뛝:w7 eqc*V*ҶdpQտ϶n K_E*~5==mq%wQ|qy~}}R:}`;C7emJ6۵ȕ8MӇ9:puA:=Or6keqѱVEnVmPE}RD.:u8v>?'x%co֟Af;Vf4~dm;öyaOwju:˱ﷆyWwڞy=j+~~/kwݾ~ iMw/|7E _B|]P(Ņw?XaAVEy7VWswG>ݳJVV?v_*ocoaei130ҶeEq{^ kWW%Nbe7V7S׺гoܿuS?_?xu=y:z?sX.M_6'oʁgKﬥȽlg>CEڿ&>D|Cmm+ƒ:h7#q~=۸mm} +\k+i,uYO^ TC/avͻGnVчMͰ0aٸ'[G6fMYQZ1dfynm٭eKt$WPc5Fie7^owoWq\\ +DIH+ +(Tm/?_]?' +=q\_Son9폯5(9Psm}{m7rֿ׿ςYu{({?k_c g,:= +=q\_^Mܿ5aRNYWSG$節 +G .NJP1ȍbtV)Qi` DW1[*>`Q՗cy0ڇif ȃGW F|;8:6t{Sl}ٜMEeV_p}S +Sg6vjHA+QqB:wii@R4 +}I$,IxIB6:$^GlU*PU +@U3̙fڍ)Ӌ^1.#)~2̋:7em$ʜ! v 1ǝxg뜝)N?{Gkj1g'Œ*ܬTzYj#5*vDg + KlfCʑE5 RThM:YEm>RFP A |[5Ps?n9폯5(9Psm}{m7rֿ׿ςYu{({?k_c g,:= +=q\_^Mܿ5_t`?8_z7| +)"팭s 2{b-juxM%j2,m\SFb2PxpM{4J3[!V 4˦K s.qn]_<,X0jPWKSuvྲzJBQey!_MXoeK(!}\MZ +lru.. y.tqm%5f饧D!b=o<;%䩆X%#I>c WOdP_T/|={ߺ^׽up׽u'϶,Ϗw<uuMxuw~+?|÷i_v'_SO{{<=VGS0|K?q}gޫI/Թg}䥿+_m ή{ۿsvx#?h?:J݃÷nh'4:z[Jj}X3)kRwM(Kv<ͧ힫hoUh 6%XG;>=##O| 7Ndm*.O +d?XՓ(NuuCo,]4*o'h,^T`G%G+33=%޽m ]N3SQ~x[+zb_fm1+@D%O"S8uw{^׺9vg'1Kݱ6\$ ]lnܱO yZZi +ܩ'mm~mqLiQϤҼOʿ41 ?1"R]U߹_o{^ߺ^׽u~{ߺ^׽u~{ߺ^׽u~V_*['WmݧQNfBFb+ԇ 궥J~nmSh3 1}Dlo^6 +Q%o*LMΓK:7^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^CwT#IMtg]˛09Tx*AǾYGBj]ME??]}jde';8 ڳto:Daj*|n4A#Тxw6yc֞ P2^{mܓZJ*M&ZUk"=99+-NVC=t?VPc{{^׺u{{^i8|o49'ݚ]$榛S KQG4{z 05G? <̜% -c>DB[#ȃ3I멿wSt|ZA |0|,ZmC˫[5~{ߺ^׽u~{ߺ^o}i~'F:xl 5wvQW +5r }웤iii4s/?#JE;ouǍHU1ó:tu'boy7ܔ^33$LH8t*J}wjܭ7vmpƒWP49Gqxگ6=fWDR/ZP]׽u~{ߺ^׽tw&gpT\{'Ac(W*҇AKi4_ {jyᵁn$qfcUEI? '绸K+*",@U2H~_NժӭvQ1j:ؔ YŬtVeP~K{W8ոo洺##SX¯ay?mMVvYX|Bb~{ߺ^׽u~{ߺ^׽u~{ߺ^wX^ߑվNCj;oqÞv?y$-!=϶ۙ׸p{cYٴ9j .5' + Wd EK\? kuyİYҿҊYA8 ~ז>q{*C\ NʋR@y__zF6x^p@ѿ7-sA_zF6~oq8dzm9|=MggWA2={p}{>tWэ߿?f8[x>:+OSYPn? ^r-<_Bf?#Wd!UmB'h*ee%X؂>TI R8#=E,S%TotZo›?zcM_yX=վ+&<ֲ>??'V}>Porͳ_+׽tS~{ M3a,,&>ӷV,|Ƚ??u~}!??"|j#y_dl_̿D`WNSGY^ٴ*7ѫyO '`itny9Sc(fC)=G.@9vY&!4DKVDU'_3#))Q'hE)$r! ,A{@ !H*Jp_8o&7n;eGkSrٚ"|RJʙHeD}r_Z9\2he(",xFm}ڶ>@DOHԌ ]X ؅*>҉lzz*xjijaD +&A$34d  21GhAqz 2<>`Y>T`V߸ͻTM-E5n 1bvYGLo9 M3i'q]`iM@y"(I%( ,XtN~~AtKPfuĜ^.ʵ=|a|_1>EvGcYoAPT{Oh)v$IQDα'3Tѥe+TZ`^"IB<14:WJԁ*9oqP8Ҁj4S#SCdFZo߿tBeSw6QsЯ8:WT- +0aazy _x4}G=չg~u?n>?OitlՏ<:{g]3|g_?XYL}=oYz{\~׺B)w7DG7?묾ӨؿՅu,w/"~TqgOsCGO^o;u&ˣSw Y/F)~/[7Yϼ}|`=a X?pm!mHjSg\u[`SNX$߽fmǝeZ,Na}y^^]BT75Kϑf&_ּA4k?-ngdR /L|ǸV +F7<}kqIE*#T:_(^m.UcP2_]jTqB=˴.ln\G#BhʅXtÓD KUM[MO[EQ]\URUE5U5DbX*)爕tu!ԐA{:4lQVSB##Ȏb 2X5p=g^) xiiD +x!C$4*"(,$ݕY"I4dx=z2rOj?Auu?n8:E;tAQ3VcSA*9ҽ"{ZBSSOw#Yύ$AT#;J2#PcS)u}k}ۤi%䀼D +ġ΄e/vv1;1[3A읛i3"gԞz<&lQCTQgJ)$sݯfD$u +HDHjI$E!j\}ozßbK9TD'QZpX !%Y]Uу+C++ R8 SQeUkȎњ]{.(|u{ǯk[wCk@H#k9Wvf#րG01;7w=vHT !J,MhuX׽u"P?ύ[mw *=+LҦ7 ٸ]!Ht_#zg^{ww5ռgm봐8XhV=$C?>Ys(is(`dnKYdk#RBq׺)1>itgB]&8Vxg *kg)KL<9+|j(e(M5;TUބ(44s<0KJE +;]戕TWR;ҿ/כwegTjYrkHۛ%UU=2IOFc`X6h;krzwH$AHP<>xu{޻[ڢdF3)9f>eV1筋w=0퉺hyužxCޛ=E#zizV'8ߵWnsau‘hX\5QAR:eSm;VrDtj-]K0e=[zJBQey!_MXoeK(!}\YO/cO?@ytw?m]N1gzu{{^q{^}/OmY/xy<K!}dW_:'o0YncҿdNO/\5bxzrP[MaNpϽW_sK~V]{ߺT- +0aazy _x4}G=չg~u?n>?OitlՏ<:{g]_QWy;z~+1DMOם[csO p9O1$"A92/q\6pSrJ&D y*Yo<lڧ" B(+$ Ous4uxZ ++(h疚Q55U-L%^9#uWGF "PAGգu&*AFAdruW̞=wU౴M˵u4x8F~ ׯ9 +٫Uڢ>sFLg ߒw9-h$ 5*T!Hݮj꣦{ݲռNoQ(I#r +9q/r6/{zYҺwZ{y|jԙZK;_t:&tF^mwH.bx6`fP2ckwK-V0u6BB~ͰsMmk2\o)XmԆ1t"|AZ)ϋ7L_qgk2N5?#UvFOI4<ߒI PơUGU|sqq=ėW,^IYfbK1I=5wzuߺ^׽u~{ߺ^׽u~{ߺ^׽u~6fɆ>WWs8RdqYJGUGG ݂ygKv)$lXqVSPG雋x.䵹Pʬ+OȂACk}r +UUlD}/=>1YO:VnuΖ|Zh0sOTek|ػ6=gSZ 97_O0bS,A=Uxb$:iJ^s<o.keaBΑ)2¡VaYgo -#-cl{h Df`qfnUTUDP*T=4w{y˫)򻨱n׭vNf'Gd:UD>KL-m4I-LO`ˇ7M} +;,Uv>I H +DlHUc3$m-{ڭTQW4j?dFXC; EVFdu*J*lU~}\A>׺u{{^׺6cç8fdwb#*ɗT3jxC>{"rZXU5=piFD%( +vڹt#?l^핇r[ +EejC:WqE$QDqơ#4QO|$Sz@U~u{{^׺u{{^׺ ~wtJa~E14c4 a78oCKVPճŘw?rHܚNNV^ާW:V"{QJ v]:PNw\[^܋I[TTeaMCZHS6'{TckQx[`4íͽY׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^2EOQOȞhfFXei$Re R.V1?ie5Ԃ8'\qdXPAIu%+׽u~{ߺ^׽u~2lm}ݚfj%V6w`qQu)g?Dۻ{?u n[~l/]k#*:~/kwݾ~ iMw/|7E _B|]{ߺE7Tߑ>cg;~`m̋S^O۹#'֯2=A]eKF<n/oԧ֐3igs,oM[-(_Խ}5* U㊲I6ôG̚w 5cb%]x +U$ϼwWOo=cG޷[}\[_vC$OKv)[XïFuھo!?#?}=c#vJE{'s|GOݭ_d{O3y^:ykc[ k?;_7}؞A*,"kO"U['L8R|c?|M2KmEffb^B+EL`_A<>}<Nzydφ@X(?)s--pd~N&HUK|XxP4le(Jx5=gW=Ntw+cS۰F>4nxټLu.G>mwb>{2Ġy!ԲƿЎE_:W=X/G8$b&9qM,U +A!2uTCç|]K'{^Oi3O1[+Gͯ8ZݟݕK$$\Z^(쭩[)3jJYJHaCDl3]/=x/4o$j٥iNvN|k AhQ>NjȿђF\WMsk::Z^ ;6kyoυ;g +j{!695b4h3Isܬ}}pq;%@X6{-} R$Qw`9>Bu7|m= 6m_T5 +*%rM'%n~k!|Wg51j:텯e&P?3J~t ?|Q̧vߟ3u$J-ͱ++KOU+KxѠi`B(A&oط)-0c4+ڒ6*(!sO\[\GVTv;UXHxG9K݁rl> 6^ VG1ʄ4,LrZ9Jl۷'۷X 92EAmЬ6iWx9M8H< cinm^3`Fu{ ,6so ǎi}ǓlYt:N&ecСX;gݏ%YwSF] PFE#9Q}-lZ8I%})Ig⍁ i;績Goܝr(əU(Gi"aq>6gh) 1Hcyb헖vdsLƬ|1OX<Ϳfۿ1Iwp!<QQh=~z#hLNGGI]I}V,vwtn-ET$bqTƦ+_f(}w5v]ƤR|m>M'6;)[dmA5<+Ic]^j%Za[{zJBQey!_MXoeK(!}\YO/cO?@ytw?m]N1gzu{{^q{^}/OmY/xy<K!}dW_:'o0YncҿdNO/\5bxzrP[MaNpϽW_sK~V]{ߺT- +0aazy _x4}G=չg~u?n>?OitlՏ<:{g]/^}{aws5N9ÎNc*fY0a{]}b9dt` N;}ϵ1mcxCԫ)A#3~7~l|&K1՛!ɒj"cU<1e-HUMDHij)~iR  +9=@91= FTjrolwoli,,ַ:$A,u *4p4:_^+221VRYIVVSpG >Epz$J|&ڃmߋ7xDy~1I^ ՠGkk"<-?6je&-Uբ7sZwb )\͢i^WʝI$<,I$^I$sݮI$ܓxt$,Ƥ=;odF8Mr5-^Chndyy)d=t)4<*D1Q1rJ:":<50B?=۽n;q x LsE1*I2+F{c{sUk{x\Ҹ #$UYt)=>u>ۨlv[o/ a*FC Ղ1By/>V1q\(!g2VW>MZ{˛6lD$;%((dkJL}u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~_F4OeTj!ݛ[Le#kFVL.c'}C7HA14ҟ \ +iEj!{k͞"˗Ɉ%pVGwZiR7/{~tTRes9)=Y(anզK-T8lNC{TTO~}E +1ֺG LxVo Uzu[&5yaGZPG_6b?{^׺ֿ#,{e'O=9Go ;/1+"tďys,sO"Z;$35#sJ6}?;+W[c޸YO${rcw8iUgT7hN̆-r|2XlΛTQ6EfqU f^b?%Mp :=`M_ UAg՘*=KHd<hb3]SS䱝G;+; cmiM`B'x`t&NUF*xokgw[Uk?4<'B+4$ +u}hpc{+F[Sq?A[|*Q'[m}6N mqT8=t4>ZL~7UaU#$FiXƥNI=g坝ik 0DDUEUF}O^׽u~{ߺ^׽u~{ߺ^׽u~{ߺZP:}ܻ3`^;fM」غ[Dy7Fs Y*djUɈL1Q,3z"isؿuK\--lDžVh0]hEu9sz/ƛRtZ#VOAfV"RG$Ruu&;>?7^U޽u:C:7Q미h?Fmy$9EO`loߗ?ܻB~8 +Ez +⽽&o:Sx4u4ӯ۷mmsY v^JL'/jjJ%n.2;trY`C =qro{&$Fee4 213l6>/Rc1Xe%E~K'ZZ~>^YWH4gw` {Q,AO;DTN$hadB9 +31UHRp:h| 8uA?Tm\vWUJ!bhIIUDE$?P?Vλen.$h :Qr5( O*Ӯm]!m;ѬQGWc!ߦ p]1n+br4Iq$LUG`{Y9#`JV! GL[۽k,R)WGPŒA #k~ar˰M)zk-j}EVO+J7%e#r( acA_ym,y" ғG!hj9ȷCov6{zT/J(:G̣kj ]8v?[bhD`}"1{TKBnx=r@[p6J}~xw_\  p~gIlbY9 \XQO2;7kcQC.[rd)@2"ϼZfx,)'ݻD1l)>nFRHվ|>nʼ'w NnRd?ՙFn*l|%$#XلUC9mS-EE&X>KynLXEOKDYDL@0AV| ` V4Z,p E==o}diZYP$U:u+O]׿:<4~^|UUC%65~ءwn$JO8Ne۷)isJ@iMb'ix? [ۓc\<[_-_[{5G6?-Z!TxTdtapG]{e" H*¡ {ew]aC<,"8*hE. FxpTXl ESf2*c15ygWH$,B$Z@WNwbUTU'uKkk˄FYX""Ɗ$8}:>uS~)xT.w<eΖϠ[0K4%!+GZ}>ֺ[RhMDn;GKc(V7Ӥy)E7!J[b}ͅb PvVF ;MN#$'2z̟-_sAaI#Ÿ? D/;u%W.b䌔UoM=IG y8dS}tdMyVPV +DǑAHڊ8d|%SލlV_Ԙ -U[%Ͽg7[֞.G#m Ua̽uk u>~ ;Kzuugi\V;6q&Z:9H2AQ@4$sC"Jiݷqvfh. `r" o;6;\. +Z)I#qP0ѕV3߉qd穚Jldjsܛ6zqkMqH+^Zi7={w80<\4VLH|1Α^}y`Mϑnv9oU8c!bƣ[hfkfNԹLWa38ڔTqO I?"`[9XU]2 >/]\5O h"u>GL?^[wef>{! U٬tlQq4I*!>عo$X\v +f u]*O:'{q;&GgR/ øglL TXI%RL_x~U^Ӗ/2Zd>&ܴ.'BԳ*(xSMu˚y~`Ưwɣ#TЃǮ5sw-_2^rd#@NAU4 +08t{>9/7t>:_jo]f yn/7A%5v='+:($DGgx_s1}w@ CxH<5"4=uS>Zok- Wx(SrȤJQբ{::S^} ͫ>}[&#h㶖¥jP<@wY|onXx{I\R<8dj ?y~[ٽк'C4/NӦ$D HI^!Y 4qzoQ{hu_ܸZ^s;'hUlRS +1.r<ԏ]:|ԕ?za\pYLtт!b8u$dutnYwNhW P)`|G_U/ @Ԧp[:{n {^C_}Au֛j.9 /iO5J8":55Vi95i~`qdqWI%v4 +c ""Wj47Wu[jfx(2H̬NLG_>}=߆}>I|NXrLU$N+)OvnU$S"ݔܪ;0W˖9Ry`/#)X.(:OC@m-bгM4zJh4T*G^E _$z3]۱pA%%d7\'HPVI0Qrfa7$+/Zعje+dGFdqC#֭_(?5ʇ#?{ %EU/['a7:߸ +z<J+q$1/,SAe$ImVMmFF>dy*x(9^둯XH?fEew&Yj^ +/bhÔʈDd4hV)u_I#28c55+C%}MIh RA(aDdmf>I r?2hxy%_ H~X4 '_=ۛ{5.C +*NN%lPOZzZ:2-M-Z }]N pCN}K)@5Hgt#9?sgx7+e@~Xf\␿FI*Olb᚝54t&*cV7̡BHY;)} e5>;sh>ur"j + #}8O\N׽uߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^6ۛ{war;ou۟n)ڏ/8)Hr8K),l.{~u UъUe Vi{Mч+WB\YQBSubӛtK'?%N + įUeߏs6dՠ.#YO%S_BOPu}թUhE<= @7&ल"vtGt}#EXbjQRas\yiy3mHر"r[P|lXςYu{({?k_c g,:= +=q\_^Mܿ5_t`?8_Y_~/O~oW?׿GSw/kl}{/?_]?'A+k#o)>@|C߿CsZ^k> eO Psn9폯5(9Psm}{m7rֿ׿ςYu{({?k_c g,:= +=q\_^Mܿ5_t`?8_Y_~/O~oW?׿GSw/kl}{/?_]?'A+k#o)>@|C߿CsZ^k> eO Psn9폯5(9Psm}{m7rֿ׿ςYu{({?k_c g,:= +=q\_^Mܿ5_t`?8_0S?/X2=i;g!B-,2jl<[k >2pb.oJfV*|OVǡNjgf[^S32Qն-m 6ژ*U흭047Zln#T$1?Sn^Wi Ybՙ$lK !D4TE~t{^׺u{{>>t]6wN$z%6۸F.G`QNuC1j9{\j lǿr7Hxܨo(:\|~\_+(o#H?>k=˿{VMW}4'eE\)ٴ}, Zɦ`~ KP~?XCu{W^.k@>'? ~|%c2!ή|`6} HNX D1#t[/Hd%(jua/9Svc]'W7͎}ŧxߘjmObG,A5Sge"ik<z:>ޤν{{^׺u{{^׺u{{^׺u{߿>.J~1SJlWh7}!Rk'R$%=r`5@yכ9MrVdN6?2Ӡ3&imG̅eQWz _?=yN;^}[BJ²orJMAkv&v_yoqc:Yܟb_:~ImG:~37j>mNO,A+2ۏfY"s)1,j/ma괹e,V5tw=e(ᐟ,.?Rulme' og5p(Fkg> +ER:allBv +Ǿ<;vK_HZ#'s?6-q* +0y51r}Cm%)2MO1J^Z1.C~{{^׺u{{^׺u{{^׺u{{^׺OWm'6F}z.6ob3UE{SH#WUfyzK%dv'tV^Xf{7 CHQWU63L^Y݈vwmKڀ]8I%bٹrv+Kt$@SňU2Ƭ|EYѷ^׽tR>@|$-7SrS6(>ڞw BAl}c +Eyst8m|:ԑx:m9<˶Cs-)Q(&I_*tF~vt=f8ݙ{tCφ{)[G+-Ѧe,UsMYk( +Ƭ<%j= gOF4I&iOTJО/R^_1ѿޛ&#+ٽú6U&"x6ݽ +nM۸jLeC<O,R1,{G\ZB԰/@tFlTVÞ{˞֤Vq-`%H%rF -] +Ncz+rt&AGOq;;g ybtcX:jE/=S\`7bh(ɖUf PJ*叽-&&7Ԣ"au_R!LY.7&s{?jl'1S-f;'ѳ=<:K 9WRIxqo=ktWFYYMYM rYemsoynv*GBYXUYXT 4##_l^֊_~ %i^ZJjSJr!t"ݒh`Q3Slҕrʵ> + |GS欤`wKPofڡ5 G#%ʪ0t`ME {>7SUcv7iJNS-b}a v ϒ=*i(vt͑yzev6+$fnz^y]øjV;_YFiV޶ZIj%wyXĴ#j{ܝZXnxj(9=$ *ySxOڽw1`|$I|<ɰa 8#Tt(׺'w蒝i*7tqe6𬥎7v˩dZu<0 9w^v8~`ܥ j#0kRDrErkb(eR)@X9Վ*u¿9ȷGHxػ?uSB ݕk;'ϾuD%fjjiA"B>s5m7Y&18Ϻ8xjTYNCPJu*❲L:q¾u{u u~{ߺH^ͣ]valkWk &?pa+|MYq8K$(D^6WP~ۺn[5n;L[O$lQTB0G0AnF׾Xټuo'Е`EAʬңGsoKtt&QSAQ +P"d)ƿٙᎬGgl͡{c v/gm%`6P`v)1\qAjfrf,nI&6ܮqSWF.}YOxu*XmU{v +[4q UPxsҗ^u~{ߺQ+(2u8&G[ PWCYGWASKP# +$8&*j$}AKSFbC +`#Ѓ>މ?`-SQ]%enl==EUv8eJ\${m x8 u>@St-̗f!b}I$ɯϠ^/!MOcU:xBÇr5$g=Qovk|h'vjMö́:z6T3ݕϤ~@3я? +:z ]|[^ԙv9;j=Ǹbݼu ZVNzސŹnR!3cˡf폷 v)(G a_>UETE + +,@>0:A~׺u{{^׺ ;;:WcQi OO[mo~ =Z) mo'OhԘexa\c58tKr/s b@5S9(sǢG2˓Za7ay!YTx;@-SOdר_hK4$CW =8ul'嫴e?cU p*}/^J3+2]{"mQ_Xb Q39~Gb!m<,'d*ֿ![[_Z$id댖&i%vfy"&f7ܓ{Nlv j@fIN/j붾vX|V:X$I',H?z1} K]~'zscm1]@Ikȴ*$btQWQgyUe)n+)>eTЯy'6,!^5dp<1ʝ?a΅{ߺ^׽t[;tʼDMMfM/J ~=6Jw[V#f唞}9w9WoUj1d-LVנ3'sO> F(IqҲ)YO@N+_ۓ|%BVsu>C_ qOO9PTæX7]"Ǜ׻> n#0"X@H⦠agYKg&C$ C)aFDt}}I{ߺAmQҟbwG\l3Ε +7GM]m9,qFzZcx@ϳ]}yznԖMq9RG MUtMr'm H &%EpQUaSFRW=ܘߊ;2"TՂpN-"jnn-!1ldF =w-$1ƲW#_h~"$GӒWM=X#n a0z\f#XVѪCƫQD*fs$K31,Ԗ&rI5'f -c0Q@UUUE`m^׽u_?uLrfk[%mZ22Ia|&)'*f Vvf&G=#b[-vDJ9Ia@4QA]+o0ݽBeffYD $UKI}??.(67X^8d{1MXi2&*cq8gtF*Iqlu~bFU]hO + = gGcxco2/0Hڤ`@f ъW׽uC?8_EM,LuZeCy5Ώ`읯c~ڧM_pbzԵDsA =s]u1O) (KaݧIV87c#y6nmجe1')y@{u A~6|Xέc'˴7tul]ّuߐc,)f1 &`9vۥ] ZF rKEK#QRʪ5tۯ(lۜ-JBIJH$V84 +OW#:ud2 +ܦRT29L4tpE]mm]C,qCjI$Tb'IXRP $@$2OTX"@ +$I8oξ1'wy329FjmQ<,ICD!,J穜ܗ2Io +JP3Pry>oט5w1”G1"<:):Uӟi׶_:qǸT +~7mz>^?M}:Q_h=>/@_,u0?Kd'5{[:cS[WhA:iNkK{u7ڨNq;}fǑ,^}MB*!tuq|WpeJ1krNjW+j̆K![R$3#vbI$(aPUTP(`y溝n\$Yى,ƬNI$I& +쨊YUPY*$ OMI!d BK{k;7~@!Tal녑dǻUʡ+j?9爹Ϝ,] jYGT2"7]B}/"r"IȋdR#TCd˫} u;u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_)M{%t{ʛrg ݩ`$%<RAU D꿾5B4 +!OàOS/MƢH]_ZN221VRYIVVSpG >\Ab^=ꯔ[O5[&7o#/II[{ I <~TfBn5V4F5]OS}me3}l 6#QKPᒴQM,?'_Gs1`)%u,B1/;|[R_] 6hdY='XЉԝU;dz6?Qu}þ q@,fe ]MeSG$wvtGol# +8h,({.{ŶŴFecG1O;*Kdow|޿WW{W=_q7/\Z|]A}3U?kZ)_ǧ\uߺ^׽u~{ߺ^׽u~{ߺH=}cxcl>GM&_~n1p~ᨧ({f~ӺUOLQ_={ϲ6TiGv[]m$;=Y Jn>ȎAs ۃgzOr/!2Ff +}+AIun{I1Jz n`>} +7GM0 )l='Zy BނJ!,\Pgn}^g+ Ʋ4UEQO,sVzĖݧӹf[Zn;acϵyPj_8Oί܎;lSvKwNDACJUU ZIJh%CU1e MR,?~{ʱ[-djLGFUebL~fMܾWj"}P ©](ueuWF +) .H>O$륋GAG3 H*s5'/Yv㎅_"\\֟[Y᭻$kY$?$V=Qp”>.mIzociO=Uͱ^T5#1 F (7[D4@=j$`}GX}6ɚ=9Kh҄PJ%#RAt'u)gUCO76^v/v:\ö&#R=ʶoS}կQ lHK4 $M=z8ھV7H͠YO(!OCS|cl_>WV_w +>:F;shqɻbuObE>#%V/^s(#6F[tɞFͧ#_㝤K]Cu&e$U|9 R9ǽ]K={ߺ^׽u~{ߺ^׽u~{ߺ^]~|4;qߔj~T[{Yē,NϚOJO=^w%z)d]5ow9 +|SJx9EQq SR_cœ-lE?rgig)s%l-q\ݐE=Vר}ZZ?U[R-Lg7PG=Epo6)aS>V{+(p]k(~!WHb{M^:2x8P }#^dsʍq[kB%_u*rދ۝EmVfP b@i5g[m<+ulÃ{c;I~qw*Vc$!&/cxeёԣe`?""-/-7 d'A$сVRU:|={ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺU `{G _~D27VJG$Wr>4䖣%Jfݫnom`F7b t$k{QW~X{bmکXa,yoR;%cf!Z5|:sgRʼK7,xm-Fd)墨):_C=oyw/]Pj +{П)#4x+TgqW&s?%_䵒IaXE H4cNb.{ߺ^ҏilٿ+hlm7%ll>C?V8cq娙2l i/lg 1Vy"(fbiUvl/q<h}T'mSw6%C}Ձ?&R'ώܽUjWQEH$Rԩ^k/,r;7 )5 +SHaP0B~}f/!p|xx,# UK)$JHVrH6f_^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~k'?n~CݕLhUM}4ޫx|Y I̕ lEXc*U{oQr9X`|EXƼT +a_we/qjHA3y (ȎBj_P뫷FOdN xa0evv@@ece bQiaʒ9{~։}O/x]H7X+m{xvo%4r#ڬ1.{^׺xԽ{=ksa(nGy6Ik".DC<ϰܹ- ?ˆ*@Oˡ,1_-ZIw1v)#_;(׭gٟvv/aυ'7F5)j6]a$Hf(CCNO~} ʹ5Uc8ypj1#-M=[ K_޻KeH2!5R?u\Kߺ^׽u~{ߺ^-m{6oZcYy̐q.d;G2niAG1A` .].e˟9.1EJH-l/ʼi}JozqZ!a玵# +V?#uq!XWl *h6>S6QF{r qn&q== #褣/sok-m[s\qB˪7?;J| ]mJc hi!vpsFYu7={oZ.d_Kg$,k\ߺ|Yg&C@֟Gi[s&k-sdg25lT/S_^JMϹ> {{XhT*$]Yس$ޚ={ߺ^׽u~{ߺ^׽u~GoBTG?LwjG ?|6FOoN(jcMlb !ĺfBx\^=_w7{-|Whgk2l +x/ .lJb5yC\XFU|P>p7y?(Zz|-w)[iliOn¯8us?1AEe1y*X+,uTU1))I ḀIXA G=dRQuD&d0=\ߵlܗ {y65Gnpt b5c oϓ˲ ]*tr25N!p9BN? Asito/BeaB)ItOa߶fa6)u#e5VFV:o׽u~{ߺ^׽u~{ߺZ6烞g?;bU`# +zE_!N$  ϯyUbd[<  Op +JԠ?{w0]M͠JOzOم@ӕivHڠekrJڼO%WS_Y]_]Y3TU3I,$Hřf$}q kJ( Iib3KjI'$NI'N{{^~ +2?C7 VuD_QA!?9ZWֱթ:lykrEvDW(n$uPW˵JffkI 1H?^>" + a;|Boԟ5:Wo_P-ܛk"aMɱwe$)&WjnJHYTA)P!x!fE>|6&ż{ֺ%D> X`=tߑ9c $mO@ *# 2{ +t2׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺K-o>_}ml [ow>߯UUfរP.l3l[ͺi-^n>R~Gwvߺڵw0#}UuovEVA:BbK6:4IJ=.ٞ 8^tdUU~}TFo +bxYM|P5}\6h^idg2#_|x{/MRdߝTopvɚb?夬ح>*k[#qS@lYo7MmAVПOBf.Qnr M> :o䷬# p{xm䷴sx7*[Ń\uyJbkЁN+>/xً7]OWڻv7];$WW*MeTX[=5'4J& ٮ9*Tu3r&(`孾 0Œc@˿f= zu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u.,{:ON%4ja Yՙz)[HԒF~g;71oܻ9د&sJdN|}]{qk60^ѣ(~jAV.S-VavXҼǰ{?qIL^AwRӝ$K,pU@K;w# =7T@xD=C;݋mgS_Ѹo:|I۴Wʨ宅r71bYK<=?z"ojں?ow#g^GY"Ut T~ЯM7fv,B8-.'T*)c [5}Z+ +(w:::lvie%)7Hq#Q\j]w=q[ffu^qK=&o j7 1^+)w<ϸrw=n]L^Wi1&p]MVϴVkZ@#5:PSx>>te׽uߺ^׽u~}Qae?7띉Еۇq};ULu,A+k'žj& r-dطcjN1Ul(#mvNWx h*x*Vw4E Zv&/~J9{xcA]KEWU" +)`ݳm Ԃn?M+ +/A#.A!S &FU*N1u$@3kzP z;-{vM357vo#sZ4i%R +NXvc–(ƪ*:Ľr7{7Y乞SWWgv>I?+_Hu{{^׺u{{^׺u{{^׺u{|InJ-d5Yq:8MsO*>:iZ=E%S2(_`tϔ97`'qtd4Z$r mH(Onu?ǏlƏ~@}Zi7Te- r,/U vK OPpf9K_\O 3M/Yo@]O ҙ*M)ġ :J~;׽u~{ߺZs‡vdwwa~unH_^F1Ebܽ]N]%Q|fݷ"[7(=Ψj>A$VDjhJGX&[=ڤ.I9ӊ¤9 4@Ozu{{^׺u|7Waޣls[Ϣ+,-ُ|ش-Kl,A"ү%w~=sڔ1]>8 HF$&@9V&kmd3̓JȠʣ]11;zu{{^׺u{|w,`TS;63o5~XO֮Gie&e:驣|rG/蹯qnicafG +p.83\\7'm!M I"5H5Ye z݋3K33by$@SuI돿u{{^׺u{O̓36>M?ƞcAR%>U/&?81I=5(XWޏl ͌fGUݽudO&*ߩ؏v=۷''huYnWN|Q慑: + Zc& I M*C+) 6VF( 8 ^xЂ# Y׫u~{ߺ^׽u~Qٔƒ:0q})s[r'G3GkAN}C,'TFeT@5"=<lHrkU]&GUa3rW)ɴɢu`{P>mKe:}j~{ߺ^׽u~Z?ٔCn37+q{#1rhUuF `xҵ~sV3VӠ8"' -~"U&Q  F8^_cɛۮr[oJv +Mz uBLfEnꮌXVRYX\2}lL"u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽t@ ԇs6為:WOw颱B~ K+F27ECG H{m&<+h30:#S?VЀb u6l6܏w0"H+7D ҴPB_|}Q}ݻgI[%UXɛ-Wo(AS[1J_&r/.&6݆ĕe "QS^f߸\&w^bZaScJ<94)~:u{{^׺u{{^׺u{{^׺u{{^׺u9 >B/qufOU=Cjh+idhdU)c`2@>,QC2GYXB8 pGNE,Jee$25 dr9nCY~+|½2gXR$Bf'p>: +ȫ_ޟdbIy?F;PIX+Dy?2C| otq1K R2ν{=ϸqGmך[p妍C3 A&JDF* XrasZKyu+/f!G=&[ۃHFv>Y=|gwqb͹{+{n}c+̩5PBc≦1DQU@:˳v&mيEkq'lj45=q|ݮ|5i&|׺G.@ +zA.u{{^׺u^É޻{gm2d)v Cd+)㖖T.$O^ccn*"T7T"7,%0]VS5f_,2W {8#5b0Wcr4YCY` Ibuu$gt1Ve4 SA^Ej~r9g?6=qӜ9y/%g5М#H +䣠'؃^׽u~{ߺ^׽u~o>T~F$-ג#>;f6Rs=~Kf)jI:S#јsyy(gtK +Y +2Lj|M/6{wڟ阓Vh؄<τI.{{^׺u{5Umt܍Fkt!F W$KW~l+{kd촒CHH:rm>_ƭ-%/VQ9_ʟ`s'Pg^׽u~{ߺ^׽uU]Ր^pSlV;ijWfjLtO[2*[_lQ︻f_ :GKz7/3_nwT-nqsu)u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^6G +t}/2뭍ZRd|V +vW0S"94r:m1G)Xr1V5 +Q>{mA4i @sE,C ҧM7l|ѹ7FC Vͳq(H:jhɵIIWg-{<[wn,r~@ni&3\L~E qG̒XA/gu{{^׺u{{^׺u{{^׺u{{^׺u{{^5=DUK'wuϸ\vJrIpIK~ lxE{z>o̡^~USRPm1z!ZAFb_$d { Os͗mUQWNBmLkZieؖq2ަ>ܝWJK/cOge{X}<0;c̢+W }K{ߺ^׽u~T:[uw:wt<.[˷(I F7r|ExC3D jwi|c%z\׺u{{^׺u{{^:uOp}X rJfc|uɽC906,-C[QɶάO*jDkc'~|vZzfCF',3w=to{^׺u{ չq;3kM៟p[SܹG6')W NަHQik5VVL=YU#׷pms_1@#EE,ݕ7;4|=۷;>"|Yy֝l8˶4qwܧw[[dvvϞX{{^׺u{{^}/OmY/xy<K!}dW^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺ^GڮsÀMS='W^w|nCuw WdWA)(cq6'$|5}~{NV8ȐЌ#Z{3-ŭ{[I3A>GU=_׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺8?~Tg~V. v>.[qu~:4UQHM] ++ ׌{VW{x!hX WjjqFew:\:Ys$$QI[dܕ"yueq^773y\VJdcrWC]IQ+$R$n̤ˉVu(JBGP—925 *>`>%7h`u`9|&-fѐT*7& e`Zj÷nۀɎ={ň6җx~2g垾V54uT5=]DT$S e*{r:ȂD5VAR#=Fn׽u~{ߺ^׽u~n9 tȞ-UovVic\ dSϊo$Oޓe7ͷb(_ZVb>]g ~r7up 顩V_~[׺u{{^ToSmhZ*?u];krP^ѯSW~s@v^+t?ii%O ;!yn6f~BS֥>׺u{{^׺u{{^B?_vف#Vׇ= #>2Jasٿ C1M)!~׮ݶ}ڃ<<$Bc ƾA׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ߺDuwo%c[&7pa:#(%hjq~A6NЂ%ScOw2׳̺uy4q4~L?oQ<'*qp6cdYf"|Vg_4}D]{ߺ^׽u~{ߺ^׽u~{ߺRkrUQQc** X)(媪KOgb@@O<$`8hzq+Rx '= ؏"7/tf@Eq[2L)h\%7ng|nĹˌ{)sUѥw&+o3cq9~]㎯]O6 +Tz ]!{}G` K}o&fOJ1L1JAO~zu{{^׺u{{^׺u{V:]#Uհ:S=!`ʡIi?]k'—-b[|`]ܛtvV>~0u7̞̏3j5̓HV"kRNka vVWxU4&NRpGA%ZG%ѽڍsV[S ăX0#uOy9xǹLmpF<;N~J$*A=orQ^׽u~{ߺ^׽ux>^`8YR!Zn)+E<]f6-E7>f_p/7dߠ7C C:Ϻ6sn7+y j~d7:#>g^׽u~{ߺZ +?NI?[}'y5zI {2 O옫^PCGm-XQsM^ +XzOo{ͪ Һa] +,W2bz6}M5:DU6~ u{{^YoSl诎'MU{;qvFd\%<5q ;%]lOM6o$*ON0PӀoX>^FēoȵEx֛>g׺u{{^׺u,v +\sqe,6>uO_V%:H훋m-亸m1ĬO $\il䕕Gf!T$nA[+fJZmMjg3H5;1g}sewj껚Y>^#Pc.4YA ? +5JJrIBu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺT +%qЬƖz L]ҕ15D[ğy(b{>:ApW4^*|=UGZ⽾ 9sC:_^׽u~{ߺ^׽u~]GOs+}oO㊮to5efܴ.6[i*dtuJeZf_po=<#L`"B<cYC=dw.uxrܿMЉ&BfOV*xRd.:ٗ5_MIS:P$Fm9&t*s, 5V>EPr~$CoKe~Uꖿ]Es2>+YqJv !]021ki':zQ;S1@(AO+Ɵks%;n_o䞦}hv TcH"mF={ߺ@i|owIgeBhi["BI=L(%TugO3[ZyE+X)"=R~bBmx3)`} #,TJZ bR@˔\ݴ:[2&oZ)2y:jjfARztV򜏵\Аiɑ*qTJ֣+~wɗ{gI=f8)7 DM#O4NӗXꠂSc:rm]O*bU  7׽u~{ߺ^׽u~{ߺ^׽u?'gY5!zW7פ2+IݩMA*d2dP~6wHOǪ>Б1H~mksݷM˦u?ay%h=_G|%u{{^EOQl~zS5V=*)MqCwQ\IP $~%ݳg\w_K >!QB>7>;/s֍UۭGT~ҒFQ .{^׺u{{^׺O_tP}yxx=H~טm[6֝MwX{a.l5^I)(hq^~Ru{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺDC'm9 &mhdg\n3*+hj,ߣpv9 :,_YK^#N]}u)Ō%gU_?zhO_6}<뒝{ߺ^׽u~{ߺO_k={Ch`tlom FO1dieHE$=ݵ,Pĥ܅UU,2IMwm40DDٍUFI'[Wbp~d`65RgvOT3R"}Tٌ =ts$G\13<(WU%(PW_wm.bXt$& =VY r +FԨ-^{{^׺u{{^|sן7>X|5y>޵k>C53T3  iT2# 9w.C8w&0B4BOz´ A[W>-o)h'@xҽ(,`9͗irgpj8!&/- +HDRF}Cу2+ +{gsKax9vWF*~aj:M׽u~{ߺ^׽u~mK MGU:Fx,d)%,FQ*gc bOޭ쒑+?HfG@v o[u{nq~A/]M[I j*%֬lSSػQl$KZ`7/|6ISAz*TKᱮ(\D9,Z=ܠuMh* +VgKC5lWO\׺u{{^׺u{G'2fiA$;$eMxX|Ke(҂vI2 ]q~<ͺ"sd9?6h~}`~{{^FO'. #c|A7MeVҝ?S&^m}睫kaU"4`^yx&}$u1#_2}M={ߺ^׽u~{ߺ^׽u~{ߺ^\Gu|:kF2*޵܏@IdWo.l[^ǞHZq_0jy_tA;/9ͼs>4p HZ^=g^׽u~|>nvߒ{]þ+6F'(3r\E,ʼnR'M@SMr&m9Z haPҟFcǟq7̼o-)\CP~]b΁{ߺ^׽u~{ߺ^_^YZq]]H7qX!2.Յ?z.bo[6@@4Hu_/,}.Źslw*HCkrHJ*>{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^րSvSFO\;;lJu3^,V0Vӹ += K-_^{;m;T1jNū ->2@'\r3Ewgv!{v&p`h5{zu{{^c}[z덱{xeikli)TRxSY +j3[aX˹rgw4UQOd:_{C08U̓@HTshTݛ4}vbs9qU<+dT0*$Y2xPSwõm%anʵ?87~{#cň7Y׽lPQ{u={ߺ^׽u~{ߺ^׽u~|?|Q?|oFQTNKUv7bNjy=ZHJD$=/tMf'eSǢ'@6׺u{{^׺u .z'R;Y;43:P$̥V;#CUM[C[SUTD2I2:${RI 4D!j(牠C#AP=>8>gQ9&\ܦ;s7,XoO#vʏڸe:ͻ.I_9Iц&6mV/]:u{{^׺u{5ܝ3YY7>E{CPSƄfSǼlI͖[-ܡ>@?o$cty6`7!zGpQxJ>XvJӃɦ>D~@zw.HNH=h>^׽u~{ߺ^׽u~{ߺ^׽uhɯU_bu>R3)+[p;Sn;JGG"{vseD-u>@?`{D4#Gku^{{^ /_oEQ)/'ˎy߰ 1+cPQH姸jm|V0#q'c?AڹyL@Q4aJ|{;׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺ^k?ֽ[{hb_oܺKਈ8RzJYc U%DUͽnżl5R:DjHe`U!7݇hmm}nmnKաC+)WRXR7>p}2]);d=QS F(棙iw +(6-c?W͎Cr +Ys6ACsB}DA^}wzvF%ECЃg:9cQ3m` +w:YHX,63;B@`,~r۷H FMSTdY 3I,c5u5-FU-܊)EEtKPkw*/qR^׽u~{ߺ^׽u~{ߺAmY6ݹ+9Rc2 +j8XMt|$pGPL}~-m3%ˬẖO3*Uo[w.l; 6F>JlƊ2B/-}A>ޝWWy:SI " qEPɵñ֛-ZC*}DHN=w7RK均Fr :(׺u{{^׺u .z'R;Y;43:u t!*qԆE[bTC1uO0i3(ײq/!Ǻլ.#b}#~r4_}dK~o5qz )%˭=G]׺u4ve{OJ\lݝ7% GdnH9j@|GfdRu*MdWvM}a +j|Wȕu_{OG/)qyk_0b=WXy׽u~{ߺ^׽u~{ߺ^׽u~+v}sb͹pϫFC>ZhGCm7ҺoOKvtĖ*vVv6TjF{W; $ʌ@&|[I!vFUACZQN"Uu t]{ߺTI +NzHܤ$ݍَ$ T\lq-RY+JB+#z}m~~F70O=v?`hSc\׺u{{^׺uAGo>{vGRQ˴:Y}~A(@9#{0V=D4b4>$D|п)Lw;D!0PEA[Zm[]cm''厖^t{^׺u{{^׺u`}6Wjۼv&/tF?S"6{F}ׇx§z,mᷧTaAEoy2 j}=)d bjVҤt ,]ŸM݊2B/9B +gizn{a[+G:LGR!)Zq#Q~;3kUlM5J#%&`O 6bsws+A,E!Ԅާ}6]n793DfϡOu/U>w;k\ QS.(bMڕ5]d8OK Qߴ*:{O5DH|%;ssZimIk%u W!QjtIrQ^׽u~{ߺ^׽u~m7 ]9>_Ov;w%-iZǧoOxguu~R?s,uT^ݛ{(]nw$ob<)E':JA,:}y'YJԋqϦ"?id?ǯ,m%\r=te(I bA} 뙝{ߺ^׽u~{ߺ^ѤGI?.9EObOnlQ0do%-SX>}@ yw=FPQW ߇,sӿ9Җ1,_8_N|{ߺ^Xc#+`ˋ'UbիݥuG9RXZEI?seFpp?2땟x ߻;jΖ#Tq9DC]{ߺ^׽u~{ߺ^׽u~{ߺ^׽ufP]>1g͑{Nę&ꜵFE9$ePT }Qysi~~bDOݗ=us؝o$yl +x}K{ߺZr™gt|o +jPnKkq%`F# nGC"TjE[;8 +kj|Jӈ~O.b .M _^ ֱ~=׺u{{^׺uTE|'V^)kr{ AnZxiF[J(b?ޗ휩˳]H>J PQ5>\^ug%X)G<<g'^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ^׽t?ܝi<(7xoݷOuP*݂Sӻ?)?06MN>H2@: o|\ +k2? F~-Tgz>Hݤ3,⒗+30Y"h@׹ =Vj|=J +uyi̾V9Ϡi?hb>8m :Zz؛wbbivh֡nWݤwxbB@iu|:eoC4B$W:'".~ڐ,m̡ s8L;Ӕ,Led 1P;iǁFqR>)#l,@ϚJҠ4{v?O'`l!tdxL_ߺlŕר۝AYEvwl-qOĢMۊpU69~Z4Y~׉sw5/%ă3( _ (q  b/i=[5?߉_nՑ?.}]ý^Ivfm_Ov;w%-iZǧoOxguu~#;b`{KwYqW{gn]i#OXiyHsgp/l.6t4DFׇmyڮvѪǪHȞ[ݡ׹su?E\OȘeʐA ӹ[]hkQʟdP4;]ǻlZK$.?oʣ.:-׺u{{^׺u{>8R9-{G=w`˶V-,=lQa@Se>~A7jEQ|97F?Lpb@m.Wpf*HZ\^LBHcv7 qߵ;KqIYQG1 +H=66ܝ1Œ}f?c|fv7;to|YUMל=WT?OVaնEKn3osԲL}9vlzE]^׽u~{ߺF>3nNG_@޽{{^׺u{4ߏ zZY=ߔM(/}$Lo⊳nTE\GEݢ?}U?2(%ut=\j֗)2 |@˞s׺8nLgf + IXO$4vef!agRW0-kh|viT6A)}?{\+U [/tXEvI}]D={ߺ^׽u~{ߺ^ыB:mPGnBT͘F'&/24O4}/'ۍ6@X;OZA#uoخX_Hf kP#g'V[.]׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^ߺ^׽u~.6P&C ֽvml2T!^#HbnZg).4fQHƘᩁ>U'\\k|"k+Udu_R !я^\4OMI_COEJ"0-NvOKrvFq -,MGu}W}y)T:i?=>D.!q~.غkKZfJ]'URTYR'_ZvH< )} _?S7s'sV7i&㧡XBkPp: M-DTK$#4;K,YĒMB(]F,YI'>^ֺu{{^׺u{{^׺u{{^׺u{{^׺u .z'R;Y;43:u{ A]fʥ#zU7Jrsup*lt'AZ<?riC;̓ri\ +pxR Ǡ/sX׽u~{ߺ^׽u~o  +woUՉr=%۹ }Rlyb(H-&zpt'}6QaPъ-}dF"tcY]:p%_)u7s(:ӿ˷6秪J\sLiJSuGr.RY=H#2 hVj«v¿"сϨ>oW^H OYJuN;׽u~{ߺ^׽ul)˩-1]ӻ04@GP( +|:_9`F[;+6 $e&1>r>W{ow*TgR + +ȣULVFdu*J*lU~p\A>׺u{{^׺ܿjtc>.V> +]錟uxtM~?r[؟H C짟Y=Pw6p@YTQ߶Y?uѮ1=owbgF am ˽3OHbv|EzVSp>kvM K%M#_GH7M lnI_˶4.僻Fg|nϽwOn s[;Wfu)r:9cgnX~Zl iXz*(U0_^n7ngT݋1='}/^׽u~{ߺ^ё}u_%PWEADs #2l*S|!d*oG< sʛk W1/iJ/гm[PJ=83+ޖ +J:H":zjZjxPS +(|wiƤOO=v)#A`*(:[{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺ^{vnݯoyomÆ{Omc2ۃrn.' RF(QgàMum4Ґ +[e*A*Yv +f4}j{3w:Dy1F[!Nis4Л<J㡧uv#Hop[8ڊ=/rWOs $qVwcX۸*)4_>_t/nJv. +j߮p8zi㮦e5bk֑'>GsU«in#qCA%bF^KxGٮhZZ>׽u~{ߺ^Ժ + +̭}3M5nC#WMAAGNI+&ZzZh#쪠}I$m,*$*IIXbU$'}H>;MEt/Mt;*6ݧdr,Gz娑[˻7ܕ˟ YWP@unU#YK;xaǙY`X2z1~@?8Nu|4c@hM)GǨ 7iX j݉nH tc)?o2KxǤSRh?._Q^׽u~{ߺG/xo$)qSZ]ݕ%վ 5$=rV{i1(}^]f݉ұD}#Ozb{]zoC`Z]*X,Z?ffڌ* OK!Vi1pO:ItjU$pJp}綠r{^׺u{{^׺o#z|oYJ>'zRZ(e6a1zPt-dEMX/kN\kp<VWJ,~\ÛyemП)IZHRUa +Ң׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽uߺAjv_^-ьٻ dgn=×CKGI 8AwyY))aVy8aGIѴ;ѴNQTP*YTb'z{kzf[{ku/#y2hB$ց_Ͻ6ǶK8휬l~|ҺQoNzY*̫o2SP#z#oGvBM7;Ig# ^1CQU-4z7sͬZvXmːM%!)Tw_rP^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽twp>ޟv,Z3Kj7" +[C6N &X'UMO{^׺Qt;oNܐGqvM@,n~sV T9K5D.؃yglw[I0ֿR5\6r˓RI\\|_/|6 aP15xܕB螎k)g_"20RDg8M <)WBU~`u۝7׽u~{ߺ^׽tvpD|S՚ f;6ARm_`n?'S#-{X9vu;[M2C~FͻiDHG5`I]^!nߘsuI=Q.Lz=ڼJ'[jqs-;{A䛝}cG\bm6hګch;!?Z{c{^׺u{ T5?'=='1I5I{ +jzxK?7w{zSU>jM|?l{.N-cOhRFU?aPʻvYm XGk +jԠ_IWmѽwwj(r +]jmjS&w%#U;/d7^`uQGnGQW0{ElǠqi)Cg={ߺ^׽u~{ߺ^{J/͍242Qn{¦J=[jiL +M7w ~qkjnDZjZ턎Nsjr93"bdPs^{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{ߺZ-<_9_{9ncscjd=872Kè W*)9/qƼͻGo2Tay<j3݉yǘ6i^X<ɣ" $:Oy 3~{ߺ^׽u~{ߺ^׽u~{ߺ^׽t%l֨]=5m"´bPҹ*v-K%X͏W.кk-G,q}Ѷ6k+HaS_J"V9?v]!_pvl(ρc}<{}ٔn?o!?cRwc|e'm8㺑"Dz_.4od: #nkvvΑo:bEoʷ_yZ۔, "I>Ո~#(>d7'v{7[vk0[_cJߪn„:Sθ]cmʼn;WMS:8RENw5S34+coon{sq%sŘTࣂuOɴr;FӱGkm8*КcVc$u{{^׺u{0|K?q}gޫI/Թg}䥿+_m ή{{^׺9=»GHiviW>z>dw!="(wYX!›7[,V=btzUojm{g`z"|U8H,w,={͜^m{ -#G?0~coc}޷5mK/TGȬ@z"F{ߺ^׽u~l }ki5u^`: pUlU_Iќ0 +iP~LT|`}әd\Z!?;b>j(>:?Q'K'a|J?._Gk9K9H}LnyB}7ömNM Y"e?,<7Onyk&qawh>^׽u~{ߺ^_G??_a*j^Gw`u]te xHfKCT5wvqs:-PJ𘏵b~dS}ٷQkn&?̪>@y׭t?ANsgSy:OzV8JL4S0= 4,AFۈXQo"g8_z-RX+Uvx L <:sX׽u~{ߺ^׽t"uZ{ר.ߛO`]2Kwg`RT"q$İ[&uei7cBѮŴ\ݦgBp&:]띓jR}{WolͷCu?epzK>:x#N8>xuKq#b6$mov}tmE$j^t{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^|n-]QSuU$]nZ9n2^& +ژ&T`jO0=Nx@'*3HUHSY)5=!}suf/o[r %aa V|=Vu~{ߺ^׽u~{ߺ^׽tm>>w򕠛:\4wa2Md@Cios9ܷMq4tpkHR*1.5)JRVwruQTh3``RGjq3{s2)# Bރ M O!u<_ts &mb{QG_R>}X[,Rv_{M]C\zftZ֣^U5~|1#km~x0xjT蜙wܯ.X0)AIc/s)y:{di!{K>dorP8 {UOPŸ4lEюn~)j 3^a'16ө&K;&Y>?ie8^׽u~{ߺ^׽u&?it7L?e?zk=Y׽u~{ߺZ—]/CU&c7TcUDmHgKP-uxA$QbX[,>[+J؝13͕?dgӬ5rǏm| +F"'䬒A֟?׺u{{^׺umK+hʃ3yڸԝ=E-TkQ`%|,0+)זƋcH-.-}"95]sv^\ܵNdnP +֓n_!_TYd+ U[[;TTE}LQ k CJ(:礲<y5?U۶ZP[T_Q?3'y7=[_#xc ׺u{{^׺/OBM9C6iefw8NX~BW2np7t{~v%ܥHh|YU6IH}yg߹#wk ZTx%?:;ȿ8?zG^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u1_-6DPֻz+rT!$;[)$ 1 +M!Ce:$_&!OPUN4wy.xڱmkHHAJ+wX׽u~{ߺ^׽u~ Oޓ}n7i*jf6͑gEih)UOUPꀕuK$h|{7*m2o[ x~Ego%$A,r;[/@n.e/1$Kn7{pz OrF# Y!3pKDA\gK.^f,M@iq"(T~ Џm휡PȻ(Iq[h8[P9' WKKMEMOEEO%$RRR=5-5dU@@ u{ߺ^׽u~{ߺ^ַ%Ņ}sN}o?E&}?I?ՉqϮ{{^׺u{{^iL?_/nx~5.s)oJ=?[z{>{^׺uG#g?ȞZÖtMM)i^ţjhE+#m9[n4RS\xR) ҎXW~XyHxύ %MN LFkNh"u{{^׺u{WJ|T[-<#:goe6eScehzݷʫ_Rǜw/Zix~Ş8Ӎz9?ߗ+yh1vG;YGI_]": >>{{^׺uPVek豘irj + +:t2OWYY2AGeUHI$Hie!UA$RORM*,BI&8Aߪh+zkhW,WY>3#b?SG-Drߟ|]an\rʿbr-߰EJY$4:x C{պ1nHk ?\o`m +Qn^HǤsxG <;׺u{{^KٝՕTotTúv 4 +=ˏH -7?|J4P&`y@Bߜ}q `G 4$DO*9=׺u{{^׺ut8m#Dg>C5}mPe=b ka$͌r(䓁y~aq5caIG>zKt *MrAޱF/Gɇ[{>{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺&O%ퟝ_+}=oyo&&Ȳɲ̪Jz6~@[XYʢWîC{6F5ȧR'1GE917׽u~{ߺ^׽u~o`+R0F vbxd#1NMi%TEE$9!QuDZJ;ێmvg?AC4y AZkjͷ%L;c4GrBT0(5B%.w!@u~{ߺ^׽u~{ߺ^׽u)dz)zr$g 2]%6CD ʪDž9oWٮ}R/#DuL:Ͼgj0g)ϼu{{^׺u{0|K?q}gޫI/Թg}䥿+_m ή{{^׺uĩh'h}N\l}omKO0-|Tn~H]Z̬P/O"möIOb婐0#F{q7]LK;If|?5 Q^׽u~{ߺ^׽u~{ߺ^׽u~X_>1>:N鮗7UKSSdž\t4D̩qnw[4wžPZkԥdCguGwl |2:7^׽u)G&g(<8ʭS5iV q[Z:H\7"_{o(֋}lcc%䟟,c^bg^׽u~{ߺ^׽u~{ߺ^׽u~:ఙm͛m L\e(ViAV i4r9W 8Գ1ઠ''缸K+*",B2HN|}^1zilW!EG2iOܯYfb Qs.71 =C]$?;"G%ʛ 6oBPEF52 Yvd= u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_Ҩmӝ;qnz yܾvM9Ted&ԲHuHTj<^inZPPS +ˮ(^ܵ䷏J榦ōN+ǏL>t{^׺u{{^K}O{V/K;/blʑz{K}`zg>_{+/lo7$oW11ÇFXOC1$>\x=i))b1D"%F.1'$ēO]DHG + +`8V׺u{{^׺u{{^Y~T۳ndu] +^zyҦnzg(j":%2 +ITztٞQ~O+K;ss[!JF?[׮T{ΑҖj8KjpF ++HӪ*u~{ߺ^׽u~{ߺ[MaNpϽW_sK~V]{ߺ^׽u~j +`!ߟ~LJͿW,GOTR(th1EPiߺ1x~6auW:d9iVHϥd>g8'sֲ12d2֑cVye~{ߺ^׽u~{ߺ^׽u~{ߺ^7ݟ!;涓]7_u̗co%QFOIHA]߁m305G>]f`a9EŬ s# [{Ž{^׺oQM]GItWiMSTX2ufGa琏OfksD-@?e?$>;Omwjmr]'/Z,Ͼ׽u~{ߺ^׽u~{ߺ^׽u~{ߺVz =0Μ]7Ow/66ۚ5`}{{ {>~5|Q8\өot^<#e =+Я8:W^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~Ӧ}{ߺ^׽u~{ߺ^Ѝ:׶`v.dڻ:iB X_eՉ6{}D2_O+5wo[5=|9qc3^w ]OYlNJA5&CZ +YWX$FPAygJ:2~`=@692eaU A8ozu{{^׺u{{^$]. rRugYfcӐ2h&FD 0SNA턼ٽ/3nu,`1HMA펇SƏWPnIwʱSkwH*B;ҁXs{{^׺u{{^׺u .z'R;Y;43:u{{^׺'/~Q=n,e/vEk:/>@-$`3Ki/*Dz|\oLWLmd'Oؓ {?֏kw(c]SY=0TIg^׽u~{ߺ^׽u~{ߺ^׽u~oUz}mWJ`}Xf@*GZmSa/MlƖ cNSˮyxlC~I7)51XNOWm !u{㧣:`};naU+.ԭ>M)'[P{vys[kq lWv*vƟ) +k Su9")bvHRG".b"=qȂ +{]{ߺ^׽u~{ߺ^׽u~{ߺ^_^YZq]]H7qX!2.Յ?z.bo[6@@4Hu_/,}.Źslw*HCkrHJ*>{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ԫ2xw/\Rϰ;[6L´˵w}f +Ha BPXk{G/ a\(5|H_:׏\a]c6MJP+%)SO +t7藯{^׺u{{^׺ݛ1C}ڛ: +S2vWUaV3dmXԀ =L~csÂx/lvMNt"-czڧ+\1fI HYNvuybB Q[(UFLAj!]}WYW׽u~{ߺ^׽u~Q3sMꎔɗ%LY-Եjwo|s߁ץOO^{s굞Նei#GL9\s2으}P YN((F~-sGdn|[-Sۛ9RjYlQɦDE 0ī1*E$h3ml6{Ͳ%<̓RI$I=st7qvݦk/$j@Po ׺u{{^׺u{3 +o 6hAGbdmcj4 Yx`Ǎ cޒٛ;\dF?3-~WJX2YkxG'\ܳaO#.Tx/yӗ>lyrJ$jO@ooϠ ؋^׽u~{ߺ^׽u~{ߺ^f65TWe2Ԙm:랲ih`_#({nYc&bbxI? 3Ӑ-*Y܅P8&&}Iz(:;zGivKU˵>K#3<ŻIoܵwCXd'x_{g܍hUҋrF=#$?.Q^׽u~{ߺ^׽u~{ߺ^׽uЫǎfv\a};X{w[22 +,.#Tְ姸y-I,#?_4R~dl9dr m\˦H`Vå~] y׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_hyS??26uc6rX$vj=-!cr0Ik~]kH,1OA߼.?/{0ZE,wI%h>"A={ߺ^׽u~{ߺ^ܛggۯigscsܕgJe'+x秨EWhYX>غ{;XRe P;Z`"1WFSPAV =m?^qO_|Lp]bUa-S]WSM_쪸ť8ϟvWy +U@ēi33z$2|ZPu}|cƅ*(,~s4n;O~E z~Udf xD2ٚVs%Mlfyiwͺ{p\L_:JjEYarO5/,dQ.xV*2װC{~VuUe[/Pr[ym͟@ IfᩧBݵXXdzgݷy<kC_J"s]/y)]SKKOZ(UYk~5m. |ta?Z 5;>h0%eTEyo~oul|'ܸV"Mr2'H'/#%s jUEOR 8[_gɸ2?fWUar7A:=$4*Y1y9;>ro*^jA2 +e59%׺u{{^׺u{{^׺GP": +ݹ}kWKENrZ@?[*֯ |@$O?vvvbsE{rOFdA(Ou{{^׺ut _w6!\EQy*T4o'4@N܊-Dav^a<+U骣7Vb~<>\y{9ڑ?e)]y'+u~{ߺ^׽u~{ߺ^׽u~X~2:Ogç1}UE6HaP 3 }ƞo=o5WfiR-ɗTqL.M3S>>Xu{{^׺ҭ~KtyQRS),hOvuf`}ULX4*Pk~q}ϫ{CWH(\Isq˛cQ/l}el,`>ks'zľ{{^׺u{{^׺u{ӭji ^ߋ~Qo +JC"}񛢮Xcu sc7= $15"R>h__ا/Ym G38?' :M]m׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^־/Pڮɶ>Eq(, +eGRH%[?2B!"+QGOkN (Agq۷oUCpxǃn7AOVi!_մWRYܮ"fFȂ:콝_ZE]C)lt{^׺u{I~{6S~?o4m *횙[fZ(#O&I2CRqnJi_}ÎV[oƱjZyX픻+Yc1J?҅JHzPM=s;{^׺u{{^׺u{{^gLM][Iz}X`j&MQSmRѓO W\;{_&g/Fsq3 +kfOYB<}uin95XT*=:u{{^׺PMOشt\DTƚMTύʙH +p@۷ݾsD 0N(0%ky/_뿴+ $AMENI׉zNbkMf|A-68UA4\]25KHȖoxnoxosu~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u߃p&g6 jq|&f\]};d $T<2k#s22e! A鋫[{Y,Iª+0G=|?O?y:sIY_vԫ{cU~*_'wzXRaL_py^-H[cJH;Vw=כeX3YY-%<~|䈝5ֵF/׺u{{^׺u{{^׺u{{^׺u{ӯ>6Oim&ع|X7{Ѡzl-jx4N@ +$XRJUnH7.gdTbZQY2T1rT{W)so}=܁疔E" p ^׽u~{ߺ^׽u~}?fVØduXn܆۰ ~@槽{\{O۬1 +,,4w]Xwzf[?'<q_S^׽u~{ߺH;u~m~ٛbn:u6y{ >+mcC?c~׸fi-ʇ`w-wf)!zQ\;;vD!kFϢ+G-3Sa+rby gX\}hx5(O(a_ƽiwRkIF >DQz,׺u{{^׺u{{^~%|l[JK<~q紌=8֜5e(Nmf^Hr[RDQ?ӟ^Au~{ߺ^׽t|{äg,h**m0E򭫋>کo؇fߖ9%l5[O)<ԭ弱)<ھyVRUc+椭6zjiL5*U> 2 +Gv@UA`zu{{^׺u{{^׺3(|=]J ӽv9k#pQγh-:s 6V05EBU*!?T(&s=so;|m<$f*phÊ= VR~rԛHZU 25#|2%@u`l܅~ԌD RF੨*QHnh}ƙ7]=Χ3I'-3cSPzS?y|>뽣=Szxu8LI)ϊuu%WTI:}77Λqy Y P*Pi(S@)BzI=XS!&]b¤ׯٻwߎ> ͋&;?2rNÂbD}Gal\7#Ď`!j'D"v*i*uʗ8-5#'KzV%Or L@??&[gwǯ{^׺u{{^HPLT||DQPgj O"e1Թ(:כ~fw9Er[Ŕ_ ِ¦?Zv}mmSWu95 +},{ Q퍏Y9C{#g*IAG jTUK>-O:6D67h[yErQGGi$xu?!Iɜ=eӴ;5gҩ!c1={zu{{^׺u{{^._Y-ࠒfzvp->+vl5[4LѺ\I00?']LԜy#8!3#FR??g0-d*FAz"W,0OTGF (E Q(H4**`8~XcRrI +Eu{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺u{{^׺ߺ^,;~xulNýC[7_vf*x_ 8Z:!_5 y`t>ނh+ +;5,{-{~#,`.4ʓ#Pk\& +ˡO;n|gmqz}ܻZbnd`d!(ɋhڦECtplM_Ee*z8IxH197E9WQa9)7(]FA}}F]{ߺ^׽u~{ߺ^׽u~{ߺ^й ܿ"][\VƽTtM(dsIJQhՈd*!s$9MsV-oQ¿ڕ#4E;z*cG;5 r夗;cZSƞ* 244RQQQRD *EHƊT/I#,YI5$I$Ǭ8bB@`0JN֛]ر\;|m.5@-rr!ː ytښԱKcnW[qS]J#jz +!mV{kLG cDjkh2|OKeu~{ߺ^׽u~O:Cナw-óT.[hz;sw̤UAR@[4^P˓9ߘv'H6+Mw(=9ۓ{嫞Y\/k E r6iT|>XR˸_rc8VۻkMPbw~կqiJST,s$k.PH͖MHt?R5G eŒ'}^_ߣ"eWÚ2HYco5j}@-^zu{{^׺u*h()j+ ZʺD4ԴІy$Q1OhdUM$pOV7(1*I8I[%OUﮪǹ|,Gꎿxm5 Ǖ!h C;K^빍cepT>q%b?Ztv@460#_ᢧmW>{{^׺u{{^0?#ǍZ\&좐^RSy[⠫ cދ)L e/R>tݑwNv۫ڛceUC\NVQuuT5u4UpH}-طͳ67Q5†VXqVSUe9Vryv]`!0\1WSx20# 2FA_nzu{{^׺u/eݛwblMݻv[ome9| +JHgwcf!A!-g.J +wrRI>],-mGƀ8_AO;z&H7BPe;7=ۙF iafu ++by4qsr5ZU6MInOtL +ַ29YY}z{MWwscYZWW0#%%-UEɾIr%:A}DZRp?G +b=bg?}Զ]y%5?M6'$NhDֳ$/}p{nvvn޸BGN754e!㧭 +\<(I_8*9%aa<'eC/A8;s$3ae4xCGBVPA{׺u{{^׺OO=\R5MULSSOQ<#!wv!UTI 2rO[Ug` $I' _GKlnm4ihMiyZs$وo9h2nQK*|wRJ|쟹UXo[!g_jg&ˮF;qȬשkl^3yDSJ ̤&7#;grV1jOqI%5IMS=d&vFKy7l(McA`a]lU]ӟvm&}gi47𝫉<3U^$Yr7j{KӸR]LMTC9k`[v+8ơjvg,,'{^׺L=;i-v+uۇn]4IWI?lAX^mn43ѕG=#6-]rgJI + uWDy|i|Ln٤%Q8X람Q>t)%lQqY,/_6s{gٹptQ)G0,#^{lyfywH Ռ+sn<Ɛ+ F%VĝM={ߺ^׽u~{ߺ^׽tNj|ߝ}ZqXy=e~ xv %l%}bZSVJMxЧptJ8}W漄I^*nNG=VK{^׺u&7/^tOZnU=ߠ/Aiܹڣ.P*k250˯Q˰ܹ;XEh\(#EЃSq]仜ҡAR9FvUz b%UvM(ZJɶ"'f1-V(5sn{ߺ^׽u~{ߺ^׽u~W[6,Xݥ(b7yObTn_$!R]gS${uve>=xHGԧ>pp p]@EK~}=@.A:K"rcb)Ku?̟zUnĒ`{gW<'Nu"FJx\~Z*j*8 >9'Rp5[UNQq^ qsMص4KA B9$S߯{^׺u'φ?#cBugu,UpSg}D2bΊb[xը3-*̪šw6s,rMSIO(͜j)=̣= 3la6=)`r{V:j]F8w:6-7fGfqQg;*N02kquZ,]W4t}}× Si#U`!vc; g{eG"?vrԐWSru9u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ_ߺ^׽u~{ߺ\$ˣšM>?^\Z׽zѥ;uF2|_d^yf/&owO3es$?_ixOzS[wx:QCֻ} A߹qѧ'P7٪~4M E(+/J*|>}b27_U?q֥+οU1Jo3w}ǫz+G܉kxֿ[:iQZV)__. ?xjoԥ|u?#~Go}zj\Ϻ7Q+~}8skZfKJѧe_M'q7~M>/V~^[/ u֣e)WΙCM}PZ{^|\WSOi~wM?{sz?>ӣMNaAxt5O_W4SO,|M~-E>iB+C79e7~Ѽ3z>|ƿO^>k8soT]xi>_vR4Ӭ~LuZqךq!~{ߺ^׽u~{ߺ^30fo_I^?sV׫jի7{oQ~kO|O>RP?S>j_q^U_fϾAy{GV4_o7h>-{|1M1|_:U) 9`F~x'SN֥+]YGɏz/3~ļ?q|==>ZŽF>Txt )j\ʔ<գ|D 7M?O_ѧ-~_?_rSI_^4Jid_>?/?OZ=xW_mk30?.+}>?6wU~xI?֯\~)SJx:{)HKҧ~<-{y=:o~' uikZk™TƦZM3Z\SVW[;7&_}yUi4)LR{i5JֹuuwX>@_qsW?ssgg>fx? o\3N?ˬ:?7ïIS?W4+K-k{ǯ_5[ofQb마iΝ[}7YtSWJjVU72kKi@?s!Mky?o_3?oxtyÆLӬO_*K_/ V?n;/7ЧcKW?m?gMzji_tɿԿD_>PWWMZ=a}{ߺ^׽u~{ߺ^׽u~{ߺ^{vt{&OOj达/M}\5׷FU5[9yh}'tz)ݯ_nqՊqQo_},{'~뷟߼?𾖘ξ}<\~]`ǹ.x/uxzi?Zvg$?/Hmrxgg'.qmok߃yy;?X|OxtͲ`H}+?svhWx}9^. +sodSOOHA@}t?Gs>x{8F+QƯNgT?՟_M:vSKWѿ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~{ߺ^׽u~ +endstream +endobj +41 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 163 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.6 0.6 0.6 SCN +56.6929 42.5197 m +538.5871 42.5197 l +S +Q +Q + +endstream +endobj +42 0 obj +<< /Type /XObject +/Subtype /Form +/BBox [0 0 595.28 841.89] +/Length 163 +>> +stream +q +/DeviceRGB cs +0.0 0.0 0.0 scn +/DeviceRGB CS +0.0 0.0 0.0 SCN +1 w +0 J +0 j +[] 0 d +q +0.25 w +/DeviceRGB CS +0.6 0.6 0.6 SCN +56.6929 42.5197 m +538.5871 42.5197 l +S +Q +Q + +endstream +endobj +43 0 obj +<< /Length1 14408 +/Length 8171 +/Filter [/FlateDecode] +>> +stream +x{ |Tՙwk13IB&;ܼH&!FQ'Ve&ObkR.H-bir'"bVeMwi_K-; 69=;|w& C[>gCk +m9W]JK\ѺҤH^߁5_oitܸǻyusI t5NȔV:>^՝$>]1gH www;q}1>+#sH[;֭J*Eus??;+/zdU| g#qhmG 80~pw岝ǧl04g. `{;?s< 'K?0F#q@4ʰ▥@?(ӔU5 d:(La>@tI^T' iz,ؒ ÖaXa0,WyvtˏZ~BR1l n:Ia?8.u Hކa@HJA o|]e6,4L1? JyvJ,7cH: n$␔<#ś:3m7[M̬997sW _`M,9 q˗h-wb]jQԸ2F@c4נJCT*4הPKUxtG TVi UJ(TU JVv+Z@UI8C29Gg<2UAPK jPlK$c(5>WT)?-D*M_ weتM 4>~ׂT: + VNz%b`D8e>)Z]/uA%h`gfP)JCP}}T5j"g-BiK‡H1P_Hn}A҄yWP!#:YꂚEd=[By̍P"J.RuSj51LJUe hP7>-pK׼.(yůYr0Y0V.jeXZ4҈h8)\9(Z|M!AVˉ( +ڠ9kΪ%hN4[/YMZlڝ%,.Řp>ͻpU\U Wj\z0*#ÁID_u5[=l9>EaNI3"NuU\Ҩ4XGa!\ʠR+-/VŐPtLex-9`JLJj 7 +k}';했zr$1 OODHtXtXWФ\U5r=6yb}bޤNcQ{5 ]~ +51cGLԏYQ?:A蘃1߯TȝG! U1i̧[js`3H[pJ3bxQ_GzڼH<5A̎TˢIN_)a 5rx~( ăjU/P#Cu-E{WOM7UGa 9E͍+ 'xJ"&- +eb9Lׄ'W$_uo +'r9=vv}23vNFs<ŒS||텽n{TsB*O:꘼n])F:g}Hᇸ|dC >IDwO?o3)SL)x_ GdqCħ}BP't {_ +Hҫ8Kl++V5hkKl} -1ɱAa2K4.()X +B 9AlNx8bʫ@w/E*2od\dknnrs} ሉeAp$8\ΘX.mV"X$%RRn$VG7rON ,@*͈Cy\G6򃃃crDBae,"؉'抳3KK +=nl{n·} }r9%T8?7f.>[cCG i(C-];UJJ3p GJF xVNPGZEF\qKU"VҞ 3UWdO-*! LuQ]E ,h5灝K~RC{ɬIbAco=?ıc?o/ݎq*P|XXExDALG<n#nQbA99rYD#>j'V̬4RTXrPgP ,DT'#K}]WyU)q<}cOn 8xlso.{ s/qЃYm φg,PC=GjGoox{n9NO(!>C==&'C 9%nqP +՗N9,nm# "jC8ݛ;2b>'G~9r|N\ 0'`d@r@CjqY%at%m7э\> lǜq AQ/W3N}H7?ݸUSM/.S=exg7kJvKglO;plo@-d*f +KvCs0( N!|fn;!8׎.&a^߮лd^I<@>#Αx[aN %<8tVRCO©?=VYI#3xV!燩4N˜ a$r(t +dN, cJw0xvwø ;h2p;tu@t'j"V A$||DH9B"G1RcgG=?%Q?KM2r41 +%[ԓh1>ic)T 2{B?z_߿ѡCQ7rEv "T(@DD"L] c!"0K1ukl AN;"i<D,_WT#1dBzĠk ~ueА|?lzm$tagݙWBx16Y}y'DuKċ'I,Q[Q\'vȾ +fhj} +1!3)/j3yTOÅ݇C qC?{dݫԿ/*篷ge~ so7>3ă~I޳ӏaHl;+gµr?PdQE!Eݨ%ÇRf$y1V $3 ᩍlQֲ8l'{_&ea{_^|;!1i'mm/#(xV4}С""4sd#{0o圫5-D -5)=9/8T3$ZFФC#ӕȧK=йԔP_ׯ66M/|J5>]GϐE Y=Ҟo7u@$B=xFV|Mh03i)3Ldl&k&%J$_1GX2uN'~(;W-=ĉN84Dޫ;݁W>wM#31$C8`sQp 覙(/+\cWY$tmfZ bV 3i?#S RJ0c`_d'$&whx{]mhœb3`j)u.SAo:̃bfphb.*l>LN츶.e7+b\-r3k[˰* ۇnlA1/s$ћ$ Qҳh)/&>Sc VMԡ3j}LJOsSwʪȳGEgdUJflat_ߔv~R*ԝ"@ř_lko r1u^?mtCV 0UXo .bUn6lBOC4z{۫6,10(TFقwnx)LhJ”}zˀ 5AMscϤ{2Xaƅ8.w\;_i#{[XH%8෿ zdL˥AoH^o$0;P7T2PQ9ۢ $},T_,˃圻t&?htQCY7$@Y=#/3QhD@X0A`Fcsx/MgfW]3/>?4O54z}*'HӟΓ':qfw$;=(hR@VUd|SF}W`E!HR階:TH`V_8)i{R1/.Lm0FΈi .U; +K +Bguy)/PҋY:)=,u nIY掹unw>qSF۱3iA=F;Inzq4* v@+fܬDv`-+J gf=ܓol|sz÷ύ<3ފl]ޤt'_,(fm9.%J U" +^?zks]֋@ /4ɟ `^̻Hbn0Nś]GO=ȽKӴfh?̀cx!T|NDD/ Fۇ騸Uqۦ\8]ONi-ɔV !O;OZ.OMO>9ۼO ǯ9(<4k +!KKP޸gxϞB LbRhS< %חEᶫɤ_~>rp}\2+إrXc"n;{g%1;/RX&Աti3nV75jج7XItG_#H Ķ/C˨*/ߛW-^r]8 WsG5eY̙QїFMM[7)A}׌ S8Ow]C w̃p-bᮼw+>)MtlCtENp~-z/έ;Zv2g2R wףs5Aa-u C-L.xI<.~QǛk3)83P2V&I6%w\~ҕVv^Z.^aHFiQ{gY̵͸gB&v +v5;vo`\~8Ӊ:53ژֱXgYf\5g˨Nc;O +ba7ס֘q7&tiaT:'P'=3됳q.f2}9evMp$"4jg*[4 +)`RMm +l ZȬBv^F,o|fncҬaR`2toelO3fBL)r'XD,D&ĐXG≃8$7DD B$$WX +vڳO'$dl2\'y$߲ͱce&2OI̔ڤ_c/,>J/< +endstream +endobj +44 0 obj +<< /Type /FontDescriptor +/FontName /2f6b5e+Inter-Regular +/FontFile2 43 0 R +/FontBBox [-738 -319 2583 1090] +/Flags 4 +/StemV 0 +/ItalicAngle 0 +/Ascent 968 +/Descent -241 +/CapHeight 2048 +/XHeight 1536 +>> +endobj +45 0 obj +<< /Length 1278 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }ik/y_!}t~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=n?[i(JKiU:JSz2QeL*EJ̔Ye,*+eU(NU-уk5x5F^ky ^#k5x5F^ky ^#kxZV^kZy-^+kxZV^kZy-^+uxu:N^:y^'uxu:N^:y^'xz^^zy=^/xz^^zy=^/o xo7 Aހ7y o xo7 Aހ7y oxo7jo$JI$$*I$ITH$$QI"IDD%$JI$$*I$ITD$$III$$u>M&Iބ7ɛ&y$o›Mx o7M&Iބ7ɛ&yUoa[5joSor4ۂsޮ>,x/x;Â31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x e#e_y+h܊7k:/Z5dUluz5n[eB&Si|y(%q& %+S%*ABijPU6\h,(+L,4G5sh>:OVRP*#i|e0U,*oU/*[U,Nmlx:&\}M)L2\%CHF7էʻBL)jƻJ1:%H߯:=S۳zrmkO媳7 +endstream +endobj +46 0 obj +[281 994 994 994 994 994 994 994 994 994 994 994 994 460 275 356 994 464 605 636 642 994 994 994 994 994 994 994 994 994 994 994 994 676 650 994 718 994 586 994 994 264 994 994 562 994 994 761 634 994 994 637 994 741 676 994 994 994 625 362 994 362 994 994 994 563 620 558 620 582 360 609 590 237 994 994 237 869 585 596 609 994 372 522 363 580 556 994 994 556 541 994 994 994 994 994 994 994 994 994 994 994 741 994 994 994 563 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 596 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994 994] +endobj +47 0 obj +<< /Length1 22308 +/Length 14945 +/Filter [/FlateDecode] +>> +stream +x| `[ŵ̽,־Z|XX$o-vؖK8{͐BRhSHZBH[~q(  KGXgqBls朙+!F{wIAG68<[Z6|L"Dm\~߫/!aʑ->G3W>^!E BZbdx>^oB6HVߺmCZ(?h$z!ٟ ݾ~dFP߲adGt'BKq|h |o?EHpDW,뙖!iߐ@Շ?#sSaIMX Dq-Ϝg7׮Tߝx B?@|h)C>T-@[h>(AAҔz?Cc3 +Q ^#Y0z-2^39)KOQ3w4Aƅj/JDAxڠv~ + vT3: } +> >Dyj1'¯f??*Em#I=1(GxD.?FF$5SMf?Ec0B#D]D^UN݋|y߃NdދJ.T{o$mP-(ZJ ~(q$C"9n\\" V+VZ&nUkq SB)DJ 6l<+1NSHEu#uFS4rErRP3)亴&CӅgJ 3Gё=H<Rt1+& ںI7eqZ 'vc970t}H:G` h=zRpeE7[:{NMLe Ok+dF+sP!ite@ @RH2.ypR!1u-tЁS8Nw;QiZ Vr1'ULU~VwrM&U5`[MjȖD{O*b  +~pb~ZұdQwwtl袏]G@rMR5]-LKGoITg[ kLu9),2ȰC. pD+,؈j.K݊t=S>ƹ$ 4})ؒZh;h ȣ.]GjeV0}*$Kp#8&ǟ4_K# Yx.A9Y6'dl\P4Wl9(bZ:Ιt oDDDbNbfY"-D8,уLgoW.2jO!( 4}AF]P;m,p%$a! HXp<.K/ˆa|J(X.\%*1:(m}G|$f*:LiL 2'̊I SMc$?|!H`Oᎃ:o:U*FX IVBr;F;ESi힜Żgl'ggt; +vlz5@k9zc)Q7΄:Ʊ;C^W3p 0 !OAQX=Ismgp+UNH}B1bbbᎧCaD7W xzQ=ka_Y4iƂُSH:>|\< }ݿgͯћ<-W\cG̏PA= {`{IQsg1,#Oyȹ#{; GfIZ|hSBpGiu땳f!o,0^f_ag՛WVPQv(= M BP|Kf{ԺzXsw_w}Eэ b D 8'hr,`Au}LII/Hq=. ptW2%uX>0w;?){u}Fչ-ܾQ$"Tݷe˖n[ F[rT q-['։-xp TFpP nC!5pI}7n @{ 7! +9D >sw +݋,/ݓ.\U:x< tA >:~7…e0['3:A+ 8:B_7 +y>t|dUb +|hDȳ+G->=E_ICIz tXւ6B).o#*^?BBZ+9U|g/gwT:w ڛb.Ѐ\=(AUZvQy{D@-x] + QOQ\oq- +Q.;e/H*+93 я@8-W|oGDeAx!y$;5܂P6CXސ Q+p~ +WCx!m%"{!3O_"d:y-PzB\!|!9@20V>w'*<,J /zby(P\0=uJPYD(WJ!TA<+;vVl'<0D -)Ed1  %/,V*3>j]j^ 7~? vMjnEmuK4,6#xQ6˚%X*1K|ZrwuTi[*UW WWv_S0oNu~})^jyb4Kl:6ShKܥ(M˦$M|R0iy< ܣoufL +WR/MR)!C!Ƀ@ Ԛ`Pm@EMU& +{)&O@Jw;uw|~{{{ܩ*<2`y VHxx2ԓ1?Z+++Vs徖PNaFUyɘ,قrc#={5] noxk~r;4cor#["Ue¨ \Uݲeq>U4u4 eu]O6NrX8b&Po:QWiff*yS|XIg5诒t\"CX @{wȏ ^ +Ȭ#l7+]xwY^URv|γ` c%K Y CsCZY9q hef2 Ex,{71 cS!P(Z;UXcVō٥%~~珗 ϾCƊ&_Ç" E:ާySGtHvw8 N&Pq>lؽtŠ&ϑi-U;Vu㖥*Z2Wj=50pOSN _)>B/`>@ O?0T= *I>uLXsKŔqDA}'yBMd} >Ff|QY-|gAع[!3*` o + )pHx'ei`@RN_ qȉnpE"A91~l)3:aFѸ\J"qhCլSejfպ"C Z ˲fY9[B-2G6Nka_0߸S&+C m 5&:IoI oC-W%&}pq'~cp#+M4}}ɽɞ|(>4tt:{kC4thv +<f4FG$xdQJd3/eRLTZK3V:al%Bʢj)q\DKt.Kr<17잚|-Vm&F}#ڝ,(z'Ƭ'+%׭zjg)-\ +ibTj+L~`@2[Ebӥ +Ne6ؚ'2J}3ؐSFRėÛ/%; M+Z6T[[uꘊV>-~Y|NLCdvzTA#M M+&ܤx>Uds70T/*71}L}i.8k&L3\SX[ 7U._T繍[7QU?|d3S +Ҿ +3$jZ +xybm] +X9VZ3Qe-X3КHoGˋ:OneWxv_^6,Ѧu'aa<"7kb.ʔ^Udadҋ#<?Nn@O.\0Joaζv`q/[)Qj¯8~AaJ͘5FKO5ݏ4mF b%hJEZ&dӲop\Ewmo2lOXgkzo\:TY\;un}`zȼhͣy<3(;{F_}ȚeOG=D7n)^/*deU٣[ŒfqT@NAȞݷDlz:ʯY~_EV{\K(>uΪ'60G6O"v+}6&"A E"r cC>7_sBI"G5kS`bX3:&%+$1x[ wsL\]"89NJ$Cv8)VX[Ηt +J|8>+4g-9a ɅJM{:g*x\βaY[&i8lk\OuK$"/*G6b6}y +wX`>Y`nDyRUipMbiXeOj5mYӋ1 ?YetFAUBM [C9_cÁI rҮ9<[3=K?+vWwW_&uE\si܈K" G󝃶۰φ0$Р8iA.D +@ef_L&[V>>TT5f_~ΐcbk<ʛ8oo*1sR[;q7AHDD_y'͞H.g):u~hm (%URL p%ɝ(4kH4͋/M=t.s+RNSP1c6zVM#ArHO*.\VrEdSS`{!Vb]pԢNH\ Ȧ$0@KMIA͐4)~7?aRe3fXۏ&D6Mu??;MFo:8UV'U]$'=_[5z\f>>y306b0^qe &\ߓQNɧf`rUcDp g&Jn$%DӐe_SƬ7ZsӟLj^~uЯĚy2(Ȉv+O ZJp'WZ5ʁ }V 8zkq@L7'C[ @TU'ÓKyw8Ǿ7'WIؼMrMjPvulLA# 4at a Ęob, VHK%TehĕI$BB!ho;uU.V'HEL=pYa0Jy3IWAi{{ cW|yG<z@`: >^uY>F%= f,d]p%r,/l3ygPJޒ״:O"F2y^iA]}hތV79?ՙq=¬ ,5X>3$*Y̝uGx{?ɉ˿ۼyVg֮}m ) ?`mi`(0x:(2l?Hfܴ^12s 53m"ۢ_?%ڏ'r|?6:pjok$P;{ww.T t RS(he0f: rxAB)"hzTQ:-+3;^Tᎌ@۪Jko7~`?+Ҭ>mv~N CaLL/4-|%~|sG+,u僶Vڄ@3S,_uIM =2C5sbqyx*AxI;$NS; '7dI<; 9_vv +/}[-MVf??0Fݝ6Y*iUTQAcAu;i5HTӜcF`n 3̷3|iŭ z#C_l;1˂=poUyͳ?U-kE-}JM5vgzlƟhZP4Rc/Yk1#d]iAl˺Y\4QLR۱SȎst F> ќbNs.n;E}7uuYD fVDJ,ČW9*xM6qK4cDviy9r.r!2jaSϢi9R9u쫟ovv(.jTwkt߮6{}gMcK`}OB"PjPUPzBPZ fVMdڐ*ž[CL97,Kd7EhpDIWbj,Y/1*諌fͅrYakj}&7c'{y-:`/(igV|0uH|x&Sȁq &W+[\tO"2# cN> zpM%h9FŔQb!SbebqsisZH8KJN:L4#>Yڮ!;H!d$4q8Myy& {dK9"䱙ɓSg0y@9b ^e?uK ͏/eL ly1'@H"@Ek=kjjɤFy(TlYLnZyMMP" VmpY^q5 AYBXNujoBh#;t0ƒ|]EgDgd7qϟ5s&zj M!oa5s +Q I( + +S(va=~Qf(dZARe98=5Rn5iR¿isv6g3%ɮoU0''6ɍǥy|g^2MDe`'S doe9ƽqϳp~VIVcփYY,uQ܀Obk0D2R~V]Rci&Dكj EYC7t".W>?iP^$V:T~"/;p`kJ?w_IN^Y lXkYG!jjwҢphuT9tZ8b*Rd)FѤLٴ;'q\] kHH9ttWhp3hɕWE ME"T4?;-5<߼꤀ĖRGKe f޵8ٱDŽD 9?ہTXW\58V%UW5#{]2cknR5)S/[m(ɴs:q2֙\% +Ara]6o{dͣ+ʇ[5Y䔌*Ȍ oi WxtM$Y޾5vEsr#??z79_w73Prk ^wb|퉍XuQq` EY]!qK>^9 /жX!p v[ nbi^jߚ{궺Oإ2gMqPkO } +{'U/^j(ǫ;wc9L} yqkfPwՅ*^cU8ڨBd*ivF&$s\3`q(h +y_Pix-<œp8ź +M&MSIW*`Ժh-W|-?,PhQ. x4^V񉵿y +]z8$XרC1k̎t.Z,ghү'GMMP)8f&zܼSwOP>\Bͥl}a~kڇ8r7~sU.?#p  _;.Tj†\]ўJ2>gd kUb-?SZDRԻRVqWeDدá֫&gs{/}CIڳr[9@#cK.R;-9\ܛWj "t/xPZvaWJ** +Z4v}*2iW@&|[ŷ_߀jeTmo> Ҁ9@ښMUm궬nbjʦd60+it3y,8 +N/v4WJ9zaR8wf(&eڱ꫘yo%hi MLrP#ԆJcLe݋'T tsJ8~XO6)33+G9׮eZJϲ?Ȧ +ҎjHEܢ16N\Ǘ@*gFf+nM@ +^`;8 h@@p +bjS6_kc}^JEfbQ.3?IpգgHe?T"R\ʯ] h' Juֈ@*>K+ (F'nwb?-Tt)% B0uܾ-]7htbduEA|@;u$vI<.q-U_Hm#͓+)^R`: UJ|~ր9D)CL*Cs0֨ac_z'%t0^)qXa{jTpK=n_YOg +|}c}/'R*J-iLJz~>i9!9.UCқ m({~Qw Ȕh9Mbsmk?U͍}޴5%yZ&Xd AAumLenNO%(̚ eXzmn1- :v0QCe/Aᓲ7=1?_svڱSFQfnmfI; K=2nx'wV'>#6լmm]Sk&ʙ|?wYܷ{ۼ-ee[`llײFUϢ p"[Y!ReJ5z 3cC@* \kl\ḵzv{^ulD"Z= xL}ͿSI.3C^˖+:fyk8Nvsǀ9Aֳ2x7X#mv)dv0lVlDib'mQs܋`)#7x t(nFAJnunɲ[e"@^F ɹlȿS&e1^giIX +׫ +GǬ'ގ(` ;-#zd)8>ռQL>c>W5D{j5s &1?^ +J[x̍sܘnF&cZSbⰞI$^%aëȟΓ'k7:= +MqweԤ-]ּxb#2՞ > Lڎ-5+b +6Eu.G0UFj59L:GIͺ +ɫn[ƶo s#[zdF YY)}nCvlN/Em)&O8)g Rp$4^i*( +662lg&/v yG/XLe4y͜gX,ktI\‰Lhrώf|_i( CX|ÅO\Ujr:v䗧ŖZKL~:պFK-ΊŔC׋i +auqlE2:jYw)ɶ9gκ&6ѕ6M4a7.p" +*"ѡ'ksG5R{m3×gCb<mrŠjm{)C+Ok@ +!o.1-1ŧrr)WninS.-R9YD#ʁJ ߰S)+岖ZȪRVKIY@jU]*ZEhcڨ#ha@ p^^q~m~W>O*jbYPB[c|UZV_ #*GSmi| +c7;ah'sLϽiԩ|HRS3 +4ʼno[/X|֐vfCP> ^yzkS)㶀ܯM,2/Sk%bգF+ּynfFG-vp]]}vvV +޼l1fɒe &TY%9UƔw))e%p_rSܔ.;h y%RK,lU7h$g ٻY\IO/8p +ɆFF+bԱ/`Ot83; +*N)% SɤkDܩ^6kp)v%\:К -S?δ1yF)mx8Tg5je!,C>Jzu4Sʥ)4ihkD'/`u$ +3f@4#5TɉGF*ӻ-.xNa:; sPQֿNmDR{y- iP*6ɔ`F$˛-֊:$ (Rj2b⌴ H ֜@]rY 79 +Rcj3+%Wj W&rQ/uAK+ggSo A2t/Ah*wgkȎݡ"p\W͋FfQ+$u] 4Zq7cϲK׵|E,Y4$MXX.H5εK,%cQJM<h3 +r}b3A)X'*Go*1Q*vO +[wC%ߎ◢(ţQű(QD)8n_>w6T 9M'G&gnCZl̍'O?܎(Hdd3s)}*XtAc8́YCqd>k)4ff -œu?Hы?p@#MCcBq +e4(q8oq!:>OE?g||&#KPUgB|U:R'lE#/vo\yAh#ڎ6h%Z" +5@8C+ ,G^UA:x.j Z-pmz+ iZ+V(pFY%+[Y^m8Xx༺9HG l# +nh-C_FIo2|3w+7 +jn\VJ7suGJRn9% f-Gy‹ f+rSP-ྱMne`qj]_!lHٷ ZkB *hG]RpOp'$Э`F^*u}BY( NnȼP3`rj@鷁Ձd$f`St U +endstream +endobj +48 0 obj +<< /Type /FontDescriptor +/FontName /078004+NotoSerif +/FontFile2 47 0 R +/FontBBox [-558 -250 1360 1047] +/Flags 6 +/StemV 0 +/ItalicAngle 0 +/Ascent 1068 +/Descent -292 +/CapHeight 1462 +/XHeight 1098 +>> +endobj +49 0 obj +<< /Length 1278 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }ik/y_!}t~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=n?[i(JKiU:JSz2QeL*EJ̔Ye,*+eU(NU-уk5x5F^ky ^#k5x5F^ky ^#kxZV^kZy-^+kxZV^kZy-^+uxu:N^:y^'uxu:N^:y^'xz^^zy=^/xz^^zy=^/o xo7 Aހ7y o xo7 Aހ7y oxo7jo$JI$$*I$ITH$$QI"IDD%$JI$$*I$ITD$$III$$u>M&Iބ7ɛ&y$o›Mx o7M&Iބ7ɛ&yUoa[5joSor4ۂsޮ>,x/x;Â31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x e#e_y+h܊7k:/Z5dUluz5n[eB&Si|y(%q& %+S%*ABijPU6\h,(+L,4G5sh>:OVRP*#i|e0U,*oU/*[U,Nmlx:&\}M)L2\%CHF7էʻBL)jƻJ1:%H߯:=S۳zrmkO媳7 +endstream +endobj +50 0 obj +[259 500 500 500 500 500 742 220 346 346 500 500 250 310 250 288 559 559 559 559 559 559 500 559 559 500 286 500 500 500 500 500 920 705 653 613 727 623 589 713 792 367 356 700 623 937 763 742 604 742 655 543 612 716 674 1046 660 500 591 359 500 359 500 458 500 562 613 492 613 535 369 538 634 319 299 584 310 944 645 577 613 613 471 451 352 634 579 861 578 564 511 500 500 500 500 500 500 500 500 500 500 742 716 500 500 500 562 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 577 500 500 500 500 634 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 857 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +51 0 obj +<< /Length1 5700 +/Length 3419 +/Filter [/FlateDecode] +>> +stream +xX}lS= Nȗm#رI$! qmJ`cU֊&:ujשKWDVFRmF7mں~byٹh{}{s}F!"y:,SEFN]Q)BFSПP ڔvx!(ybl$:zէjxm :T@VƓӱwyx>{r(@` sxtz +=L2x.\z5yD2Ȟ"}L?IxV# cS m|6bY/?$mg*oa,O$@)^G+մWI{*Y4f@r{4)=-Yjq?`/"S>]@%hd{Jw $eaP0{@2uYz"@1Q Z"W['ؗy.b `Uw`oZB:eɀTABz"Y|rJm^k֢¢ް3/ϓ_~gC?U%m9`4sy#Jrm̾&q"^wkfV,UŷjXēZQo:,8~),}_p}nFxJd 55 CCf3k} aВ"12]̆>Bģdޗ3D?`xy?yH| `'VXKħAkcǎCǎ[(4 (g,8ahԋ uG:GY)( +Hj\BKVsFX.{ʼ|ilnupPejI oM펑4sm&_fq&g]Z·$" +[a7R;4Rixya YcwYrwer +\YSLIwJ.fE:ͨፔuBS&UrfpיZF2Ldem{CWT{z[Z{}aP,hZ6[6TZR|r.Qд#;O#d/dìpNlq=M=;Ќo:yh\@Ƣ 3pg](g%8&OE&n}'縘Ӵ9>y{4T3Z ˽JAL:lH $jp2]ʴ8To(QP_ZZ߁B 5s^咨5Xy>Z͵'CN> C8V̷ED֜/;+ S/Mkp߮n(x<3!,0 k:ٟbs[qi#BdP1?-SG0wbǞ. p1Jw@<c"v1h8|_K"'ߐ/rsFj> 3Kg7 RP+H-%n` v;fTvk-J!"aRnм?:lG &8X8=|4g %MquTO^^uRgפI?#~!~<^Z>C<< gM}厷3 tTt淌B|AS][8+49zzblX j8I/0 +h 5na,=@|vq+΅!DG]g 6se'c逘ECQ^:ɶӺ/C[wzd__ 3,@R|O{W_<\y2a+Sh?()(,(o|:|d>gb=̯@6M_ֱă ++ +EgAKQQm6ט7Gx46h (FL}(gQ4oAfJ%h @{8¸ V*/8;ahǠ/NGQI'ߘUp2bD 5ơYַ0*FAnxo*6)ފdc9Fߗ,s(IG qqMW @@woc`Y ћ8u7afjC$&i h!Fcҫy֜ Kl&I$H,F"Qp=SKhdP&m1Bek,#TIJZ{7$)n%`Ҫ ':(> +endobj +53 0 obj +<< /Length 1278 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }ik/y_!}t~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=n?[i(JKiU:JSz2QeL*EJ̔Ye,*+eU(NU-уk5x5F^ky ^#k5x5F^ky ^#kxZV^kZy-^+kxZV^kZy-^+uxu:N^:y^'uxu:N^:y^'xz^^zy=^/xz^^zy=^/o xo7 Aހ7y o xo7 Aހ7y oxo7jo$JI$$*I$ITH$$QI"IDD%$JI$$*I$ITD$$III$$u>M&Iބ7ɛ&y$o›Mx o7M&Iބ7ɛ&yUoa[5joSor4ۂsޮ>,x/x;Â31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x e#e_y+h܊7k:/Z5dUluz5n[eB&Si|y(%q& %+S%*ABijPU6\h,(+L,4G5sh>:OVRP*#i|e0U,*oU/*[U,Nmlx:&\}M)L2\%CHF7էʻBL)jƻJ1:%H߯:=S۳zrmkO媳7 +endstream +endobj +54 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +55 0 obj +<< /Length1 9032 +/Length 5800 +/Filter [/FlateDecode] +>> +stream +x: tu3 @K'A),(O4iT-ǎhUJr>^e-mWĖ$#I:_R*׍r]B![T?҄jr7`"DL@3?ˍx@v)cwvw*&"tt99x4(Apao!!9=53G#0!7<=FHt܃XmsݺM٥zWT*}ADh>BJ%BaOLP'z@;KeL#5"BaH94%5R*A7>nي8xN>J\ݨ8E-uFsP@Gb=e%Ԡ!FI (4!<-g--S-P>򬹃0^*5hQV6s1|bODoOέ[6ook475 jk"`yܮRYl5ܜ,FR*X`INr'%>@8 ^#qISΑ84xzTr1^o%+.ff2 #upIbm曇>/ZfTO/ XHYn uVb\!+k;>o˷]Y))%,ܢ‘%=ړ  LlaA H|T~o`[b@vl2O)pyn=.^OP.{ޅVk]H. ._X^QgF-s.1\1u[uKB"Vnl(5v8>u:ᇗDi+9BDZ̯\!݉u1Ai~ӭ4^}6/rU8')u:dA/#率Kvm0r)OK&J_'TAS9&MIQ;%e&jZ]h$w+*~~GHr|2qY&5:Sj:Wj+hnnAwt/P|F  Po!!7<3>w'sQiyakZEޑxeܡ dSb)%^"S R"E8PIQE^V&%dz%hhl&4@cccc ~F0oXD-i&)o(Gt% 3w-c{V|3]،: "j +y@1$=Dk8qtb 4(SPB9 2%FbqgWJ)OΕ^ +[yh\XU@c^ mZh5Jhjd +C:ư2r=M(E~Z7/@a'xB 6gZIJP8pye^~Wa7<|nwUK3/-ksZ5fB\NB!PLaX|*O'Oϟ~tʃNp=ֿ|μ>N`|'8{l걳1t׿zq<>~x8#gc8zl1=б1;{t?8!9G܇ ז*Vb%h LpDa~u!qsй!E^ثX\d.3n{vc{===°6WŨi.)tD 0o +^%U +>ժ[$|HruZ!)Iw-E?GQSQTCC-ZPS̬ ?4͠4ٹ]3xeL%(lM)fd*+MȌ- )N)^nD!5) =Џ=ux~wi?d8ZJoهoCvlE.)pO}*]3و̩x8Q~#UiZ]f8DJҮ rTET-gS(eƕ쿳Ix7k;R{VWDdʿˆ> `/0c2=B pyֳpS3B%ֲ`A*$Y +B443v-QQAw"a l¡`ଆ1r`Aũc۰ͭ 7r3 E38_3.st8( zP@8 +€0iE(Mo4VUUs|mm_~lw?paZ<{Р 4xE ":WNuEB +^ߪhX-,. ~8L㥊l`YUs',n_;^&Sy*Eq* +D`l +\,o6-㵺Vvv8>[?oVkv{~K5LaQTCCу)[b We .Q;s=f'Gɾac4--} w7 2^1X"snaΦ?/i޽tI?Z_ +AW /Lشؙc+t.ɵBHܞ:-M k)B$$R' Tpmhla3`FS`O2g$9qYvX + +hCYۢHj8Wiv!㳄SBOM-{j"[i]$-Iy"?9iѪ*.&*ZT m]= Tic]=zlkrjc`C;Iw8(=,Ջ=kFq>cꯪ_T33Im=œX~ikDL?ZcG_+:\Z۝`ʛ5ݥk)9sk2쁨EEAwE|wEBź2xS |]Sj4,!`JA]bHi!.?Bu:.Z JAuFdd!tDq6{JyGZJ׆W6ճ{Pf=l>dۓy;k c {*K7EK)4Z^ב`|`BZzVp:Ef$ң-{\k +6=ݚ|OQiei~kqGM vh&]։,&SBM<5WlM%:5K^ī7$*B+V"=jkP-n\)Y8QB@ +ujHa{9L +G_S6}ɯ ՚-Ӧ?Ikz>'M2;iSC +}Qԓ{}Mv"9d ƻnEgwP_-iwT*& %YH D>[Qcmmwu9ZX|=`apc;CHꢂ{x2u!POa7!b]zۨ`m6ŗl9w'' 8=|.×_7Ya83ԗD\,jeU%>o.pipWeOL7Q.t* TT%"nV"Fl/.b ZDAǕQ*M]p\v3kC6Q^K8pIY\ww5 8&&j%u-_!-1)C̈́#7*:J8Ҳhw1|f20=Ԃ,re`*O v֠2 E"Ne,TO8d3R3LNu5MM f4Q4f*P6 +ڠw +hvt;ڋ5emWF0 k?CFBPL?7>]?OA7Q}Pn&"i3@3q`, _3j\{,p˜aY}6M> AK@G,wV}X+Sf?ߊdggzg3΀5M>"ǁFvٲa7y5YxYਃ-)3O|~Li(ga_ɯh9+Sha/idS_RdA xrc.Tȹps}`]V P6A /ٚ)ge +endstream +endobj +56 0 obj +<< /Type /FontDescriptor +/FontName /bf8a34+NotoSerif-Bold +/FontFile2 55 0 R +/FontBBox [-559 -278 1500 1064] +/Flags 6 +/StemV 0 +/ItalicAngle 0 +/Ascent 1068 +/Descent -292 +/CapHeight 1462 +/XHeight 1098 +>> +endobj +57 0 obj +<< /Length 1278 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }ik/y_!}t~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=n?[i(JKiU:JSz2QeL*EJ̔Ye,*+eU(NU-уk5x5F^ky ^#k5x5F^ky ^#kxZV^kZy-^+kxZV^kZy-^+uxu:N^:y^'uxu:N^:y^'xz^^zy=^/xz^^zy=^/o xo7 Aހ7y o xo7 Aހ7y oxo7jo$JI$$*I$ITH$$QI"IDD%$JI$$*I$ITD$$III$$u>M&Iބ7ɛ&y$o›Mx o7M&Iބ7ɛ&yUoa[5joSor4ۂsޮ>,x/x;Â31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x e#e_y+h܊7k:/Z5dUluz5n[eB&Si|y(%q& %+S%*ABijPU6\h,(+L,4G5sh>:OVRP*#i|e0U,*oU/*[U,Nmlx:&\}M)L2\%CHF7էʻBL)jƻJ1:%H߯:=S۳zrmkO媳7 +endstream +endobj +58 0 obj +[259 600 600 600 600 600 600 600 399 399 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 752 600 600 600 600 600 600 600 600 600 600 653 600 600 600 600 600 600 585 600 600 600 600 600 600 600 600 600 600 600 600 600 600 648 526 600 570 407 600 666 352 600 600 600 600 666 600 600 600 522 487 600 666 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 666 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +59 0 obj +<< /Length1 2424 +/Length 1177 +/Filter [/FlateDecode] +>> +stream +xVKL\UϹw^tF*CSLy`a xaf̅҅4ML1qhb1MpnM .B]&{@y$Vw2#"7G +u 5J?E^݃:ĂM%vB|#o#"Uq(f=Sq%ckηq.MsݤYDԖ.q_/% DVֳ]zݸOguA"R_)~OR__~o{L'sAO%v/;hW`I:(;"E0^-V2)a4 *H܀^Ϧߗ,vwߪ+I B9RAЇlIuƪؗ/X}>xNjٝT&eAGk((/+ikלL/>;2ty6w]Jiu::rEY)XPro(JJl<֨:RjA@.%2~3?MUSF.z_XFl *s_恷›NƗ;"pDV'(*{i0ʼv, *lZ ߮ے&lv_W,fd Y(sj>oȺ מ^9f;D#~dm~T*h +endstream +endobj +60 0 obj +<< /Type /FontDescriptor +/FontName /8c65da+JetBrainsMono-Bold +/FontFile2 59 0 R +/FontBBox [-1735 -300 1170 1020] +/Flags 5 +/StemV 0 +/ItalicAngle 0 +/Ascent 1020 +/Descent -300 +/CapHeight 730 +/XHeight 550 +>> +endobj +61 0 obj +<< /Length 1278 +/Filter [/FlateDecode] +>> +stream +xenFὮBtHs&@nu{stԒ + }ik/y_!}t~]snVyg쾝+|<.÷}v)[eO/_q9_ɯ}ഏOmt_LLv͵LJ1w9)e6=n?[i(JKiU:JSz2QeL*EJ̔Ye,*+eU(NU-уk5x5F^ky ^#k5x5F^ky ^#kxZV^kZy-^+kxZV^kZy-^+uxu:N^:y^'uxu:N^:y^'xz^^zy=^/xz^^zy=^/o xo7 Aހ7y o xo7 Aހ7y oxo7jo$JI$$*I$ITH$$QI"IDD%$JI$$*I$ITD$$III$$u>M&Iބ7ɛ&y$o›Mx o7M&Iބ7ɛ&yUoa[5joSor4ۂsޮ>,x/x;Â31x; +JJ특xxx+!ÊwBxbx+ށr;2kΜJYeY7+|x oS7+[ƛețךyޢoV浖 -㭌"RW*4XqC^J[(^1»y]k}YM-x e#e_y+h܊7k:/Z5dUluz5n[eB&Si|y(%q& %+S%*ABijPU6\h,(+L,4G5sh>:OVRP*#i|e0U,*oU/*[U,Nmlx:&\}M)L2\%CHF7էʻBL)jƻJ1:%H߯:=S۳zrmkO媳7 +endstream +endobj +62 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +63 0 obj +<< /Length1 5948 +/Length 3642 +/Filter [/FlateDecode] +>> +stream +xX}P[Wv?>}! [ij8 06dAI6:!.%Idv@w'R'.ܘҿOD)euh_0ql";?jhWߚ9;Xw%4k}oE~k77 |(aM'L%w#/{ 1IH&O5 o;?lDNQsWܸ%뗗ahΊ(V–q-k*8#` +hiLiЋ% h>#WPګZ/ܒ녟A|IRЎ=,Dت0GCk2>;lH$(FMiY2yr +B ;w_OwWhZ)uja1/|Rjlo%{) +ٰGcJ@;$:KEשKq3/.Y`,.I7BEیd^PJSry\|~ͼz0N!uY$1t渴`?%Gû2!NE٦lVМ<:vzށ#j9sqs#97= ]1тwZpq8ʶuG"vX0*zĩm5o:Ƣn3̕jbQ- lD O ({9˪RXJbsc+&Cp뒅i'L%දOlc51H\RFޣ";?)؎Q&g,2-ls'C-\OsgXKz:jXŁE\<z-ċCHGxq+B\(e(#2y:ߕfTΏ/a #0Dse ir1VpʓcGrQq V8.*aNW |+ ^be>~`![gZ_0)o~-~A^z; `VVwս h}< +q@y{{=-0WQ+Vz![Ka_Ûp/i׾s ,!x^>e!SaX9 Xs =ԳRΪ>=G:w0.6'{Fg$ם$XOۡ^CrwSJCgӑ%#=]G^:jvhڭvqj`n.nƷV"voQT\_jhM6Jt[Ys'va kQfziZ˰"ƁVOqaktDyida~t6wh.αMyG}^+|*Y+j [{_"el5?,Ѵk?*S{!&t#P/oF 4&3-ƔqxŨ5j +Sx-A6oiMv59wj7v||wk}=r XC* Bl$ı#رd5* +F{=rUi=|T;U6v7;*-Z Nt!|@M0$@w7L@')`C>* lLkEJOrGn(@ݓ؊xbO$lSiWgQsӝFNfNi-FuL,c\~χǹ$#Өy1lQ4>kgI>8ڝxE5MٺN5L槖'PzRͳ1W-=:Ck)sy=3rɢKCrܣ6Ո<^xr\ujQ4΃[3~\N~ĶF~^ }bxl] +endstream +endobj +64 0 obj +<< /Type /FontDescriptor +/FontName /438c3d+NotoSerif +/FontFile2 63 0 R +/FontBBox [-558 -250 1360 1047] +/Flags 6 +/StemV 0 +/ItalicAngle 0 +/Ascent 1068 +/Descent -292 +/CapHeight 1462 +/XHeight 1098 +>> +endobj +65 0 obj +<< /Length 246 +/Filter [/FlateDecode] +>> +stream +x]Pj!} d`\\m'BFqie9TS]eQ4<9 8l% qu7庵if'-!J1ARgc-[>L:kJ?8c( X߃EGF/:7~Iw%DK2%D:\ggufJҡ4 v|PTxO{>TSgՠ~P+7kΔ֘>SU Dw +endstream +endobj +66 0 obj +[259 354 559 1000 1000 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500] +endobj +xref +0 67 +0000000000 65535 f +0000000015 00000 n +0000000416 00000 n +0000000618 00000 n +0000000689 00000 n +0000000740 00000 n +0000001012 00000 n +0000016380 00000 n +0000016808 00000 n +0000016976 00000 n +0000017020 00000 n +0000017069 00000 n +0000017317 00000 n +0000017362 00000 n +0000017527 00000 n +0000017693 00000 n +0000017870 00000 n +0000018040 00000 n +0000018214 00000 n +0000018259 00000 n +0000018495 00000 n +0000036839 00000 n +0000037252 00000 n +0000037412 00000 n +0000037577 00000 n +0000037737 00000 n +0000037783 00000 n +0000037949 00000 n +0000048911 00000 n +0000049308 00000 n +0000049474 00000 n +0000049520 00000 n +0000049594 00000 n +0000049880 00000 n +0000050117 00000 n +0000050378 00000 n +0000050676 00000 n +0000050909 00000 n +0000050984 00000 n +0000051256 00000 n +0000051528 00000 n +0000359964 00000 n +0000360235 00000 n +0000360506 00000 n +0000368768 00000 n +0000368983 00000 n +0000370337 00000 n +0000371251 00000 n +0000386288 00000 n +0000386500 00000 n +0000387854 00000 n +0000388769 00000 n +0000392278 00000 n +0000392501 00000 n +0000393855 00000 n +0000394769 00000 n +0000400659 00000 n +0000400876 00000 n +0000402230 00000 n +0000403144 00000 n +0000404411 00000 n +0000404631 00000 n +0000405985 00000 n +0000406899 00000 n +0000410631 00000 n +0000410843 00000 n +0000411164 00000 n +trailer +<< /Size 67 +/Root 2 0 R +/Info 1 0 R +>> +startxref +412080 +%%EOF