S08: Teilgebiet 01 Iterationen B5 (Trainings als Tabelle) und B6 (Bullet-Einzuege verkleinert) abgeschlossen. B5: Trainings-Bullet-Liste in cv.md durch Pandoc-Multiline-Tabelle ersetzt analog Ausbildung. B6: build/post-process-docx.py um dritte Modifikation erweitert die direkt die numbering.xml manipuliert weil Pandoc die Werte aus reference.docx ignoriert. Bullet-Einzuege auf E1 0,25/0,35 cm und E2 0,80/0,40 cm gesetzt. Word-Konvention dokumentiert: Einzug-links zeigt (left - hanging). teilgebiete/01-lebenslauf.md und agent-prompt.md fuer S09 fortgeschrieben.

This commit is contained in:
2026-04-26 21:50:28 +02:00
parent 6429ca5f84
commit 3e672dc8c9
10 changed files with 471 additions and 386 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
S08 S08
Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt. Teilgebiet 01 Iterationen B5 (Trainings als Tabelle) und B6 (Bullet-Einzuege verkleinert) abgeschlossen. B5: Trainings-Bullet-Liste in cv.md durch Pandoc-Multiline-Tabelle ersetzt analog Ausbildung. B6: build/post-process-docx.py um dritte Modifikation erweitert die direkt die numbering.xml manipuliert weil Pandoc die Werte aus reference.docx ignoriert. Bullet-Einzuege auf E1 0,25/0,35 cm und E2 0,80/0,40 cm gesetzt. Word-Konvention dokumentiert: Einzug-links zeigt (left - hanging). teilgebiete/01-lebenslauf.md und agent-prompt.md fuer S09 fortgeschrieben.
+18 -18
View File
@@ -85,34 +85,34 @@ Setze zwischen sinnvollen Zwischenständen Checkpoints (z.B. nach "Marketing.md
## Aktueller Stand / Nächste Aufgabe ## Aktueller Stand / Nächste Aufgabe
**Letzte Session:** S07 (2026-04-26) **Letzte Session:** S08 (2026-04-26)
**Was wurde gemacht:** **Was wurde gemacht:** Iteration B fuer das DOCX abgeschlossen, plus zwei zusätzliche Anpassungen:
- **PDF-Build-Fehler endgültig behoben.** Pandoc-3.x-`\def\LTcaptype{none}`-Bug ([Issue #11201](https://github.com/jgm/pandoc/issues/11201)). Fix: `\newcounter{none}` im Template. **Iteration A inhaltlich abgeschlossen.** - **B4.1 — Heading-Farben in destengsblue** (`build/build-reference-docx.py` Funktion `set_heading_colors`, color val=`0B5394`, themeColor accent1 entfernt). H1, H2, H3 alle in destengsblue.
- **Build-UX-Fix:** `build/build.ps1` mit `Start-Sleep -Seconds 3` pro fehlschlagendem Schritt. - **B4.2 — Heading-Trennlinien direkt am Stil verworfen.** Bottom-Border + Indent-Trick (`hanging`) erzeugte in Word linksbündige statt zentrierte Linien. Wichtige Lehre: Words `right`-Indent begrenzt sowohl Text als auch Border — eine Border *schmaler als der Heading-Text* ist über den Stil selbst nicht abbildbar.
- **Iteration B durchgezogen — `reference.docx` programmatisch via `build/build-reference-docx.py`** (Python-Stdlib, holt Pandoc-Default-Reference, entpackt ZIP, modifiziert XML mit ElementTree, repackt). Inhalt: - **B4.3 — Markdown-HRs aus cv.md entfernt** (21 alleinstehende `---`-Zeilen). Quelle der wahrgenommenen „Doppellinien": Pandoc-DOCX-Konvertierung von `---` zu VML-`<v:rect ... o:hr="t"/>` (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. **Vorfall:** Sandbox-NTFS-Stale-Read der cv.md (20043 statt 20201 Bytes) hätte fast die Live-Datei truncated, sofortige Wiederherstellung aus `git show HEAD` + HR-Removal erneut mit der git-Version als Input.
- **B1 — Schriften, Tabellen:** Theme major+minor auf Calibri (Pandoc-3.x-Default war Aptos Display/Aptos), Stil `Table` mit `tblBorders=none` auf allen Sides. - **B4.4 — H2-Trennlinien via Post-Processing** (`build/post-process-docx.py` um Funktion erweitert): nach jedem H2-Absatz ein leerer Trenn-Absatz mit linksbündiger Bottom-Border, schwarz (`000000`), 8,6 cm Linienlänge (right-Indent 4196 dxa), 1,25 pt dick (sz=10).
- **B1.5 — Schriftgrößen analog PDF:** DocDefault Body 11 pt, Heading 1/2/3 auf 15/13/12 pt. - **B5 — Trainings als Tabelle** (cv.md): Trainings-Bullet-Liste durch Pandoc-Multiline-Tabelle ersetzt (analog Ausbildung), Inhalte normal nicht fett.
- **B2 — Header, Footer, Page-Setup:** Header (Name links, Lebenslauf rechts) ab Seite 2, leerer Header für Seite 1 via `titlePg`. Footer (Seite n / m) auf allen Seiten inkl. Seite 1 (zwei `footerReference`-Einträge, default + first auf gleicher rId). Page-Setup A4 mit 2.2/2.5 cm Rändern, Tab-Stop 9072 dxa. - **B6 — Bullet-Einzüge verkleinert** (`build/post-process-docx.py` modifiziert `numbering.xml` direkt; Pandoc IGNORIERT die `numbering.xml`-Werte der reference.docx, daher MUSS das im Post-Processing passieren). E1: Einzug 0,25 cm + Sondereinzug 0,35 cm (left=340/hanging=198 dxa); E2: Einzug 0,80 cm + Sondereinzug 0,40 cm (left=681/hanging=227 dxa). Word-Konvention: „Einzug links" = `(left - hanging)` = Bullet-Position; „Sondereinzug Hängend" = `hanging`.
- **B3 — Schusterjungen/Witwen-Schutz für Headings:** DocDefault `widowControl`, Heading 1/2/3 und `FirstParagraph` (für Kenntnisse-Subsection-Labels) mit `keepNext` + `keepLines`.
- **Iteration B3.5 — 3-3-Regel für Listen-Bullets** über neues Post-Processing-Skript `build/post-process-docx.py`. Erster Versuch (Compact-Stil mit keepNext) hat Listen komplett unteilbar gemacht — Folge: Job-Stationen begannen jedes Mal auf neuer Seite, ungenutzte Seitenenden. Auf Wunsch von Thomas Per-Bullet-Logik: bei Listen mit ≥ 6 Bullets bekommen die ersten 2 und die N-3-/N-2-Bullets `keepNext`, dazwischen darf getrennt werden (= mind. 3 Bullets vor und nach jedem Umbruch). Bei < 6 Bullets bleibt alles zusammen. `build.ps1` ruft das Skript automatisch nach DOCX-Build als Schritt [3/3] auf. Sandbox-Verifikation: 26 Listen, 184 Bullets, 93 keepNext-Markierungen, Pattern z.B. `KK......KK.` für 11-Bullet-Liste. Auf Thomas' System visuell bestätigt: Listen werden sauber an guten Stellen getrennt, keine ungenutzten Seitenenden mehr.
**Nächste Aufgabe:** Teilgebiet 01 — verbleibende Iterationen: **Nächste Aufgabe:** Teilgebiet 01 — verbleibende Iterationen:
1. **B4 — Heading-Farben auf DesTEngS-Blau und/oder Trennlinien analog PDF.** Bringt das DOCX optisch näher ans PDF (für Direktverwendung; bei Consulting-Agenturen, die das Layout ohnehin überschreiben, eher Kosmetik). Erstes Aufgabe der nächsten Session. 1. **C — Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm).
2. **C — Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm). 2. **D — Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder `\hyphenation`-Ausnahmen reduzieren.
3. **D — Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder `\hyphenation`-Ausnahmen reduzieren.
Nach D): Status von Teilgebiet 01 in `zentral-index.md` auf „abgeschlossen" setzen (R2-OK von Thomas). Anschließend nächstes Teilgebiet nach Priorität (laut Index Teilgebiet 02 „Zeugnis von ASMPT"). Nach D): Status von Teilgebiet 01 in `zentral-index.md` auf „abgeschlossen" setzen (R2-OK von Thomas). Anschließend nächstes Teilgebiet nach Priorität (laut Index Teilgebiet 02 „Zeugnis von ASMPT").
**Offene Punkte (unverändert seit S04):** Zuschnitt und Festpreise der KI-Produkte (marketing.md Abschnitt 2), KMU-Direkthonorarsatz festlegen (marketing.md Abschnitt 2), Vergütungsmodell-Wahl bei erstem konkreten Fall (Notiz in marketing.md Abschnitt 2). **Offene Punkte (unverändert seit S04):** Zuschnitt und Festpreise der KI-Produkte (marketing.md Abschnitt 2), KMU-Direkthonorarsatz festlegen (marketing.md Abschnitt 2), Vergütungsmodell-Wahl bei erstem konkreten Fall (Notiz in marketing.md Abschnitt 2).
**Hinweise für die nächste Session:** **Hinweise für die nächste Session:**
- **Sandbox-Pandoc ist 2.9.x, Thomas' System läuft Pandoc 3.x.** Output-Unterschiede zwischen den Versionen können Build-Probleme verursachen. Sandbox-Pandoc emittiert weder die calc-basierten Spaltenbreiten (`p{... * \real{...}}`) noch `\def\LTcaptype{none}` — beides Pandoc-3.x-Eigenheiten. Sandbox-Verifikation des kompletten Pipeline-Laufs mit `pandoc cv.md → PDF` deckt diese Bugs nicht ab. Bei Fehlern, die nur auf Thomas' System auftreten, **synthetisch das Pandoc-3.x-Output-Fragment in einer Mini-Tex-Datei nachbauen** und damit gegen das Template kompilieren. - **Word-Indent-Konvention (S08-Lehre):** Word zeigt im Absatz-Dialog „Einzug links" als `(left - hanging)`, NICHT als `left`. „Sondereinzug Hängend" ist `hanging`. Daher gilt: `left = (gewünschter Einzug + gewünschter Hanging-Indent)` in dxa.
- **Sandbox-Reads über den NTFS-Mount können stale/inkonsistent sein.** Wenn Sandbox-Reads Schäden zeigen, die unplausibel sind, **nicht panisch reagieren** — erst Thomas via PowerShell verifizieren lassen, bevor Reparaturmaßnahmen ergriffen werden. - **Word-Border-Limit (S08-Lehre):** Words paragraph-Border folgt den Indents; eine Border *schmaler als der Heading-Text* geht NICHT über `<w:ind right="...">` auf dem Heading-Stil, weil der right-Indent auch den Text begrenzt. Lösung wenn nötig: separater Trenn-Absatz nach dem Heading via Post-Processing.
- **Sandbox-Schreibvorgänge sind zuverlässig** (Write-Tool und Heredoc via Bash). Bei längeren Skript-Dateien (>100 Zeilen) bleibt Heredoc trotzdem die robustere Wahl. - **Pandoc IGNORIERT die `numbering.xml` der reference.docx (S08-Lehre).** Wer Bullet-Einzüge ändern will, muss das im Post-Processing tun, nicht in `build-reference-docx.py`.
- **Pandoc generiert für Markdown-`---` im DOCX VML-Horizontal-Lines (`<v:rect o:hr="t"/>`)** — sehen aus wie Doppellinien (Embossed). Im PDF rendert Pandoc dieselbe Quelle als saubere zentrierte Halblinie. Wenn man saubere DOCX-Trennung braucht: HRs in cv.md entfernen oder Pandoc-Lua-Filter für DOCX-Build.
- **Sandbox-NTFS-Stale-Reads sind häufiger und kritischer als gedacht (S08-Lehre).** Sandbox kann auch git-Status, Datei-Existenz und Datei-Inhalte verzerrt sehen, ohne dass die echte Datei betroffen ist. **Bei jedem Sandbox-Schreiben auf eine grössere NTFS-Mount-Datei: ERST git-Version verifizieren und als Input verwenden, NICHT blind dem Sandbox-Read trauen.** Bei seltsamen git-status-Outputs aus der Sandbox: erst Thomas auf PowerShell `git status` ausführen lassen.
- **Edit-Tool truncated regelmäßig** (mehrfach in S07 und S08 erlebt — Skript-Dateien, `.checkpoint-pending.txt`, `agent-prompt.md`, `teilgebiete/01-lebenslauf.md`). Faustregel: Bei jedem Edit auf NTFS-Mount-Datei nach `Edit` mit `wc -c` und `tail -c 80` verifizieren. Bei längeren Edits oder wenn das Risiko hoch ist: lieber per Heredoc/Python aus der git-Version neu schreiben.
- **Sandbox-Pandoc ist 2.9.x, Thomas' System läuft Pandoc 3.x.** Output-Unterschiede zwischen den Versionen können Build-Probleme verursachen. Sandbox-Pandoc emittiert weder die calc-basierten Spaltenbreiten (`p{... * \real{...}}`) noch `\def\LTcaptype{none}` — beides Pandoc-3.x-Eigenheiten. Bei Fehlern, die nur auf Thomas' System auftreten, **synthetisch das Pandoc-3.x-Output-Fragment in einer Mini-Tex-Datei nachbauen** und damit gegen das Template kompilieren.
- **Sandbox kann nichts an `.git/` schreiben** (NTFS-Permission-Issue): Lock-Files, korrupte Index — alles muss von PowerShell aus repariert werden. - **Sandbox kann nichts an `.git/` schreiben** (NTFS-Permission-Issue): Lock-Files, korrupte Index — alles muss von PowerShell aus repariert werden.
- **`checkpoint.ps1` ist robust** gegen Anführungszeichen, Pipes, Whitespace-Anomalien und Index-Lock-Reste. `.checkpoint-pending.txt` darf ganz normal Sonderzeichen enthalten. - **`checkpoint.ps1` ist robust** gegen Anführungszeichen, Pipes, Whitespace-Anomalien und Index-Lock-Reste. `.checkpoint-pending.txt` darf ganz normal Sonderzeichen enthalten.
- **`build.ps1` pausiert bei Fehler 3 Sekunden pro fehlgeschlagenem Schritt.** Nicht überrascht sein, wenn ein fehlerhafter Lauf entsprechend länger braucht. - **`build.ps1` pausiert bei Fehler 3 Sekunden pro fehlgeschlagenem Schritt.** Nicht überrascht sein, wenn ein fehlerhafter Lauf entsprechend länger braucht.
- **`build/build-reference-docx.py` muss VOR `build.ps1` manuell aufgerufen werden, wenn `templates/reference.docx` neu gebaut werden soll.** Das Skript ist nicht in `build.ps1` integriert (würde jeden Build verlangsamen und Pandoc-Default-Reference jedes Mal neu ziehen). Wenn jemand die `reference.docx` von Hand in Word editiert, gehen die Änderungen beim nächsten Skript-Lauf verloren — Stile gehören also ins Skript, nicht in Word. - **`build/build-reference-docx.py` muss VOR `build.ps1` manuell aufgerufen werden, wenn `templates/reference.docx` neu gebaut werden soll.** Das Skript ist nicht in `build.ps1` integriert (würde jeden Build verlangsamen und Pandoc-Default-Reference jedes Mal neu ziehen). Wenn jemand die `reference.docx` von Hand in Word editiert, gehen die Änderungen beim nächsten Skript-Lauf verloren — Stile gehören also ins Skript, nicht in Word.
- **Edit-Tool kann Dateien beim Schreiben über den NTFS-Mount truncatieren** (mehrfach in S07 erlebt am Python-Skript und an `build.ps1`). `mcp__workspace__bash` mit `cat <<'EOF' > path` ist die zuverlässige Alternative für längere Dateien (>~150 Zeilen). Nach jedem Edit auf NTFS-Mount-Datei: `wc -l` und `tail -c 60` zur Verifikation. - **DOCX-Pipeline ist jetzt 3-stufig mit drei Post-Processing-Modifikationen:** (1) `build/build-reference-docx.py` baut die `reference.docx` (manuell aufrufen, wenn Stile geändert werden sollen), (2) `build/build.ps1` baut PDF und DOCX, (3) `build/post-process-docx.py` wird automatisch aus `build.ps1` aufgerufen und macht: 3-3-Listen-Bullet-Regel, H2-Trennlinien-Einfügung, Bullet-Einzug-Anpassung in `numbering.xml`. Wer das Bullet-Verhalten oder Trennlinien ändern will, fasst das Post-Processing-Skript an.
- **DOCX-Pipeline ist jetzt 3-stufig:** (1) `build/build-reference-docx.py` baut die `reference.docx` (manuell aufrufen, wenn Stile geändert werden sollen), (2) `build/build.ps1` baut PDF und DOCX, (3) `build/post-process-docx.py` wird automatisch aus `build.ps1` aufgerufen für die 3-3-Listen-Bullet-Regel. Wer das Bullet-Verhalten ändern will, fasst das Post-Processing-Skript an, nicht die reference.docx.
@@ -4,32 +4,32 @@ post-process-docx.py
==================== ====================
Wird auf das von Pandoc erzeugte DOCX angewendet, NACH `build.ps1`. Macht Wird auf das von Pandoc erzeugte DOCX angewendet, NACH `build.ps1`. Macht
zwei XML-Modifikationen, die ein Stil oder die `reference.docx` nicht drei XML-Modifikationen, die ein Stil oder die `reference.docx` nicht
abbilden koennen: abbilden koennen:
1. 3-3-Regel fuer Listen-Bullets (B3.5): 1. 3-3-Regel fuer Listen-Bullets (B3.5):
- Eine Liste ist eine Sequenz aufeinanderfolgender Absaetze mit - Eine Liste ist eine Sequenz aufeinanderfolgender Absaetze mit
<w:numPr>-Eigenschaft im Body (nicht innerhalb von Tabellen-Zellen). <w:numPr>-Eigenschaft im Body (nicht innerhalb von Tabellen-Zellen).
- Bei einer Liste mit weniger als 6 Bullets: alle Bullets bekommen - Bei einer Liste mit weniger als 6 Bullets: alle Bullets bekommen
<w:keepNext/> (Liste bleibt unteilbar - bei <6 ist die 3-3-Regel <w:keepNext/>.
sowieso nur durch Zusammenhalten aller erfuellbar).
- Bei einer Liste mit 6 oder mehr Bullets: die ersten 2 und die - Bei einer Liste mit 6 oder mehr Bullets: die ersten 2 und die
drittletzten und vorletzten Bullets bekommen <w:keepNext/>. drittletzten und vorletzten Bullets bekommen <w:keepNext/>.
Damit gilt: nach Bullet 1 darf nicht getrennt werden (1+2+3 zusammen),
und nach Bullet N-3 darf nicht getrennt werden (N-2+N-1+N zusammen).
Trennen ist erlaubt zwischen den Bullets in der Mitte.
Bullets in Tabellen-Zellen werden uebersprungen. Bullets in Tabellen-Zellen werden uebersprungen.
2. H2-Trennlinie (S08): 2. H2-Trennlinie (S08):
- Nach jedem H2-Absatz wird ein leerer Trenn-Absatz eingefuegt. - Nach jedem H2-Absatz wird ein leerer Trenn-Absatz eingefuegt.
- Trenn-Absatz: linksbuendige Bottom-Border, schwarz (000000), - Trenn-Absatz: linksbuendige Bottom-Border, schwarz (000000),
1,25 pt (sz=10), 8,6 cm Linienlaenge (right-Indent 4196 dxa bei 1,25 pt (sz=10), 8,6 cm Linienlaenge.
9072 dxa Textbreite).
- Run-Properties auf sz=2 (1 pt), damit der Absatz selbst minimale 3. Bullet-Einzuege (S08):
Hoehe hat. - Pandoc erzeugt fuer alle Bullet-Listen abstractNum-Eintraege mit
- Ein schmaler-als-Heading-Border ist ueber den Heading-Stil selbst festen Defaults (E1 left/hanging=480 dxa, E2 left=1200/hanging=480 dxa).
nicht moeglich, weil Words right-Indent sowohl Text als auch Pandoc IGNORIERT die numbering.xml-Werte der reference.docx.
Border begrenzt. Deshalb separater Trenn-Absatz. - Im Post-Processing wird numbering.xml so modifiziert, dass alle
abstractNum-Eintraege die kompakteren Wunschwerte bekommen.
- Word-Konvention: "Einzug links" (im Absatz-Dialog) zeigt
(left - hanging) = Bullet-Position; "Sondereinzug Haengend" = hanging.
Daher rechnen wir: left = (gewuenschter Einzug + gewuenschter Hanging) in dxa.
Voraussetzungen: nur Python-Stdlib. Voraussetzungen: nur Python-Stdlib.
""" """
@@ -47,11 +47,6 @@ DOCX_FILE = BASE_DIR / "output" / "Lebenslauf_Dr-Ing_Thomas_Langer.docx"
W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
# H2-Trenn-Absatz: linksbuendige Bottom-Border, schwarz, 8,6 cm lang, 1,25 pt dick.
# Textbreite = PAGE_W - MARGIN_LEFT - MARGIN_RIGHT = 11906 - 1417 - 1417 = 9072 dxa
# 8,6 cm = 8,6 * 567 dxa/cm = 4876 dxa
# right-Indent = 9072 - 4876 = 4196 dxa
# Border sz ist in 1/8 pt: 1,25 pt * 8 = 10
H2_SEP_XML = ( H2_SEP_XML = (
'<w:p>' '<w:p>'
'<w:pPr>' '<w:pPr>'
@@ -67,6 +62,23 @@ H2_SEP_XML = (
H2_STYLE_RE = re.compile(r'<w:pStyle\s+w:val="Heading2"\s*/?>') H2_STYLE_RE = re.compile(r'<w:pStyle\s+w:val="Heading2"\s*/?>')
# Bullet-Einzuege (1 cm = 567 dxa)
# Word zeigt "Einzug links" = (left - hanging), "Sondereinzug Haengend" = hanging.
# E1: Einzug 0,25 cm + Sondereinzug 0,35 cm -> hanging=198, left=142+198=340
# E2: Einzug 0,80 cm + Sondereinzug 0,40 cm -> hanging=227, left=454+227=681
# E3+: proportional zur E2 (jeweils +0,55 cm fuer Einzug), hanging analog E2
BULLET_INDENTS = {
0: {"left": 340, "hanging": 198},
1: {"left": 681, "hanging": 227},
2: {"left": 993, "hanging": 227},
3: {"left": 1305, "hanging": 227},
4: {"left": 1617, "hanging": 227},
5: {"left": 1929, "hanging": 227},
6: {"left": 2241, "hanging": 227},
7: {"left": 2553, "hanging": 227},
8: {"left": 2865, "hanging": 227},
}
def log(msg): def log(msg):
print(f"[post-process-docx] {msg}", flush=True) print(f"[post-process-docx] {msg}", flush=True)
@@ -80,8 +92,6 @@ def has_keep_next(p_xml):
return "<w:keepNext" in p_xml return "<w:keepNext" in p_xml
def add_keep_next(p_xml): def add_keep_next(p_xml):
"""Fuegt <w:keepNext/> in das pPr-Element ein. Falls kein pPr existiert,
wird es angelegt. Idempotent."""
if has_keep_next(p_xml): if has_keep_next(p_xml):
return p_xml return p_xml
if "<w:pPr>" in p_xml: if "<w:pPr>" in p_xml:
@@ -98,8 +108,6 @@ TBL_OPEN = "<w:tbl>"
TBL_CLOSE = "</w:tbl>" TBL_CLOSE = "</w:tbl>"
def process_document_xml(xml): def process_document_xml(xml):
"""Tokenisiert den Body, wendet 3-3-Regel auf Bullet-Listen an und
fuegt nach jedem H2-Heading einen Trenn-Absatz ein."""
out = [] out = []
bullet_run = [] bullet_run = []
table_depth = 0 table_depth = 0
@@ -165,6 +173,42 @@ def process_document_xml(xml):
flush_run() flush_run()
return "".join(out), stats return "".join(out), stats
def process_numbering_xml(xml):
"""In allen abstractNum-Eintraegen die Bullet-Einzuege ersetzen."""
import xml.etree.ElementTree as ET
W = "{%s}" % W_NS
ET.register_namespace("w", W_NS)
root = ET.fromstring(xml)
stats = {"abstractNums": 0, "lvls_modified": 0}
for absnum in root.findall(W+"abstractNum"):
stats["abstractNums"] += 1
for lvl in absnum.findall(W+"lvl"):
ilvl_str = lvl.get(W+"ilvl")
try:
ilvl = int(ilvl_str)
except (TypeError, ValueError):
continue
target = BULLET_INDENTS.get(ilvl)
if target is None:
continue
pPr = lvl.find(W+"pPr")
if pPr is None:
pPr = ET.SubElement(lvl, W+"pPr")
ind = pPr.find(W+"ind")
if ind is None:
ind = ET.SubElement(pPr, W+"ind")
ind.set(W+"left", str(target["left"]))
ind.set(W+"hanging", str(target["hanging"]))
if W+"firstLine" in ind.attrib:
del ind.attrib[W+"firstLine"]
stats["lvls_modified"] += 1
XML_DECL = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n'
new_xml = XML_DECL + ET.tostring(root, encoding="unicode")
return new_xml, stats
def main(): def main():
if not DOCX_FILE.exists(): if not DOCX_FILE.exists():
sys.stderr.write(f"FEHLER: {DOCX_FILE} existiert nicht. " sys.stderr.write(f"FEHLER: {DOCX_FILE} existiert nicht. "
@@ -176,11 +220,16 @@ def main():
members = {name: z.read(name) for name in z.namelist()} members = {name: z.read(name) for name in z.namelist()}
doc_xml = members["word/document.xml"].decode("utf-8") doc_xml = members["word/document.xml"].decode("utf-8")
new_xml, stats = process_document_xml(doc_xml) new_doc_xml, doc_stats = process_document_xml(doc_xml)
members["word/document.xml"] = new_doc_xml.encode("utf-8")
if new_xml == doc_xml: num_stats = {"abstractNums": 0, "lvls_modified": 0}
log(" keine Aenderung") if "word/numbering.xml" in members:
members["word/document.xml"] = new_xml.encode("utf-8") num_xml = members["word/numbering.xml"].decode("utf-8")
new_num_xml, num_stats = process_numbering_xml(num_xml)
members["word/numbering.xml"] = new_num_xml.encode("utf-8")
else:
log(" Hinweis: word/numbering.xml nicht im DOCX (keine Listen?)")
with zipfile.ZipFile(DOCX_FILE, "w", zipfile.ZIP_DEFLATED) as z: with zipfile.ZipFile(DOCX_FILE, "w", zipfile.ZIP_DEFLATED) as z:
order = sorted(members.keys(), order = sorted(members.keys(),
@@ -188,12 +237,14 @@ def main():
for name in order: for name in order:
z.writestr(name, members[name]) z.writestr(name, members[name])
log(f" Listen gefunden: {stats['lists']}") log(f" Listen gefunden: {doc_stats['lists']}")
log(f" Bullets in Listen: {stats['bullets_in_lists']}") log(f" Bullets in Listen: {doc_stats['bullets_in_lists']}")
log(f" keepNext gesetzt: {stats['bullets_keepnext']}") log(f" keepNext gesetzt: {doc_stats['bullets_keepnext']}")
log(f" Bullets in Tabellen uebersprungen: {stats['skipped_in_tables']}") log(f" Bullets in Tabellen uebersprungen: {doc_stats['skipped_in_tables']}")
log(f" H2-Headings gefunden: {stats['h2_headings']}") log(f" H2-Headings gefunden: {doc_stats['h2_headings']}")
log(f" H2-Trenn-Absaetze eingefuegt: {stats['separators_added']}") log(f" H2-Trenn-Absaetze eingefuegt: {doc_stats['separators_added']}")
log(f" numbering.xml abstractNum-Eintraege: {num_stats['abstractNums']}")
log(f" numbering.xml lvls modifiziert: {num_stats['lvls_modified']}")
log("Fertig.") log("Fertig.")
return 0 return 0
@@ -169,16 +169,16 @@ endobj
endobj endobj
78 0 obj 78 0 obj
<< /S /GoTo /D (none.1) >> << /S /GoTo /D (none.2) >>
endobj endobj
80 0 obj 81 0 obj
(\376\377\000K\000e\000n\000n\000t\000n\000i\000s\000s\000e) (\376\377\000K\000e\000n\000n\000t\000n\000i\000s\000s\000e)
endobj endobj
81 0 obj 82 0 obj
<< /S /GoTo /D [ 82 0 R /Fit ] >> << /S /GoTo /D [ 83 0 R /Fit ] >>
endobj endobj
85 0 obj 86 0 obj
<< /Filter /FlateDecode /Length 3132 >> << /Filter /FlateDecode /Length 3132 >>
stream stream
xÚÍ[ÍŽ#¹␍¾÷Søº"ê_€a m·Ø[’¹-ö” {É’K^?’HQ”ª\vÏLg‚†Qv•¤’øóñ#¥V‡?êðË‹j×%ؤôa¾þû�ýGùåå_/�{«‚Z¢÷‡�üŒ;üíëËo¿çÏŸ_s“âá?µé׃ufqÖäïÿ<üõåÏ} xÚÍ[ÍŽ#¹␍¾÷Søº"ê_€a m·Ø[’¹-ö” {É’K^?’HQ”ª\vÏLg‚†Qv•¤’øóñ#¥V‡?êðË‹j×%ؤôa¾þû�ýGùåå_/�{«‚Z¢÷‡�üŒ;üíëËo¿çÏŸ_s“âá?µé׃ufqÖäïÿ<üõåÏ}
@@ -195,31 +195,31 @@ r
�y×脟œ^]»];3q1ÎÝÌŒ�“­�=ä¶l2VÏe•Í”/¯X‹d}ÄÅòøl«™vÿF^ÛJÝm@'�ÎÜUD´;^m½nE[§ŒòÙm»ß«aL„øôsŽóœçQœ"§T–GH�aÞCMm—¨ØÄ²DÛ–ÿs…9ùÊ1²7«Ò5ó|l‹vOãÐØú§å3¼�àV‡§+PÒi@”tîÄ™y/’ˆ¨î‰ø�ƒ†$Æ– â“R×Ú‘ɲz"©ÞÇò–U‘”ÛÎäwñ#b„%}à8ÐØ|»²Pv³@ÂGß ÈOªg ¹Lÿ"üT�Ûkâàµ�lŒî¼?®‚×IM± oêé”<§n}7Ø}Ðò.çú&Pr-P¥ñĦ›Olöy<À/jEg»ïà×FýÅÇÅŠÿ\oí‰x#�20ó\gTiI^—}¨žP¹löâÁØm¸Ž\æíñl¶ ÑAž�ÑS7«GK¤ëû——ÿ7(Š �y×脟œ^]»];3q1ÎÝÌŒ�“­�=ä¶l2VÏe•Í”/¯X‹d}ÄÅòøl«™vÿF^ÛJÝm@'�ÎÜUD´;^m½nE[§ŒòÙm»ß«aL„øôsŽóœçQœ"§T–GH�aÞCMm—¨ØÄ²DÛ–ÿs…9ùÊ1²7«Ò5ó|l‹vOãÐØú§å3¼�àV‡§+PÒi@”tîÄ™y/’ˆ¨î‰ø�ƒ†$Æ– â“R×Ú‘ɲz"©ÞÇò–U‘”ÛÎäwñ#b„%}à8ÐØ|»²Pv³@ÂGß ÈOªg ¹Lÿ"üT�Ûkâàµ�lŒî¼?®‚×IM± oêé”<§n}7Ø}Ðò.çú&Pr-P¥ñĦ›Olöy<À/jEg»ïà×FýÅÇÅŠÿ\oí‰x#�20ó\gTiI^—}¨žP¹löâÁØm¸Ž\æíñl¶ ÑAž�ÑS7«GK¤ëû——ÿ7(Š
endstream endstream
endobj endobj
82 0 obj
<< /Type /Page /Contents 85 0 R /Resources 84 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 90 0 R >>
endobj
90 0 obj
[ 83 0 R ]
endobj
83 0 obj 83 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >> << /Type /Page /Contents 86 0 R /Resources 85 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 91 0 R >>
endobj endobj
86 0 obj 91 0 obj
<< /D [ 82 0 R /XYZ 69.866 813.476 null ] >> [ 84 0 R ]
endobj
2 0 obj
<< /D [ 82 0 R /XYZ 70.866 779.528 null ] >>
endobj
6 0 obj
<< /D [ 82 0 R /XYZ 70.866 743.931 null ] >>
endobj
16 0 obj
<< /D [ 82 0 R /XYZ 70.866 403.899 null ] >>
endobj endobj
84 0 obj 84 0 obj
<< /Font << /F39 87 0 R /F27 88 0 R >> /ProcSet [ /PDF /Text ] >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
95 0 obj 87 0 obj
<< /D [ 83 0 R /XYZ 69.866 813.476 null ] >>
endobj
2 0 obj
<< /D [ 83 0 R /XYZ 70.866 779.528 null ] >>
endobj
6 0 obj
<< /D [ 83 0 R /XYZ 70.866 743.931 null ] >>
endobj
16 0 obj
<< /D [ 83 0 R /XYZ 70.866 403.899 null ] >>
endobj
85 0 obj
<< /Font << /F39 88 0 R /F27 89 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
96 0 obj
<< /Filter /FlateDecode /Length 3940 >> << /Filter /FlateDecode /Length 3940 >>
stream stream
xÚµ\Ɏ丽×W䔆û$Tå2ÀÜl÷m0'ž‹û`_üû&ƒd�¢TÊ™6Ù™-‘ë‹E-.¿_Äåç7�ߟßÞ~z*‰Ktʙ˷¾ÉtC\äÅ‹%8w B,VÉË·ï—_¯B()„´ké·ýHµêü[¹t=Ýa}—n®ïZšôKçËŸé¶JŸô3ÿ%Ýú®´Ë#^)“ó%áàï:Íõ0d�xYh¼␍k¤ßOœ�¶)üúÛ·_ÞÄâMê2~ÿç÷ËÞ­¿þüöøööïñè>ºÅk{ùû÷·_K7þ‘>¿¤I:†Ëaè÷‹±z±F§ßÿºüíí/•°#�¥X¢H: xÚµ\Ɏ丽×W䔆û$Tå2ÀÜl÷m0'ž‹û`_üû&ƒd�¢TÊ™6Ù™-‘ë‹E-.¿_Äåç7�ߟßÞ~z*‰Ktʙ˷¾ÉtC\äÅ‹%8w B,VÉË·ï—_¯B()„´ké·ýHµêü[¹t=Ýa}—n®ïZšôKçËŸé¶JŸô3ÿ%Ýú®´Ë#^)“ó%áàï:Íõ0d�xYh¼␍k¤ßOœ�¶)üúÛ·_ÞÄâMê2~ÿç÷ËÞ­¿þüöøööïñè>ºÅk{ùû÷·_K7þ‘>¿¤I:†Ëaè÷‹±z±F§ßÿºüíí/•°#�¥X¢H:
@@ -237,22 +237,22 @@ mO[
4X÷J"‚'´]þ¥Ó£âþk¥Zد_˜gÑ[ D/®ÎËRp§%ys³~P:¬£˜ ÷Gþ³„™r1Bî¶·lB^þz•ûê␍ç—`Ï4+Ã[wÝàÿ{JâLSð1ˆÂ·šñî÷’mwé^ÜöALþ?+r_[.¨.¢µ·•÷d!!9§ž•ɼi5L3ªw]øýøöö?Å C 4X÷J"‚'´]þ¥Ó£âþk¥Zد_˜gÑ[ D/®ÎËRp§%ys³~P:¬£˜ ÷Gþ³„™r1Bî¶·lB^þz•ûê␍ç—`Ï4+Ã[wÝàÿ{JâLSð1ˆÂ·šñî÷’mwé^ÜöALþ?+r_[.¨.¢µ·•÷d!!9§ž•ɼi5L3ªw]øýøöö?Å C
endstream endstream
endobj endobj
94 0 obj 95 0 obj
<< /Type /Page /Contents 95 0 R /Resources 93 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 97 0 R >> << /Type /Page /Contents 96 0 R /Resources 94 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 98 0 R >>
endobj endobj
97 0 obj 98 0 obj
[ 92 0 R ] [ 93 0 R ]
endobj
92 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
96 0 obj
<< /D [ 94 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
93 0 obj 93 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
101 0 obj 97 0 obj
<< /D [ 95 0 R /XYZ 69.866 813.476 null ] >>
endobj
94 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
102 0 obj
<< /Filter /FlateDecode /Length 3596 >> << /Filter /FlateDecode /Length 3596 >>
stream stream
xÚÍ\K�㸾÷¯ð-«øÐ0Ðm·Ø[’¹-ö” {É’Kþ~HV‘,R”, xÚ-’Yϯjuùý¢.?¿)þùùýí§ú˺¬�¹|ÿûÄu�‹WKpî”Z,Âåû—_ß•BP xÚÍ\K�㸾÷¯ð-«øÐ0Ðm·Ø[’¹-ö” {É’Kþ~HV‘,R”, xÚ-’Yϯjuùý¢.?¿)þùùýí§ú˺¬�¹|ÿûÄu�‹WKpî”Z,Âåû—_ß•BP
@@ -282,22 +282,22 @@ o^
ôÚ«,öÜ«,ÝëÚo€@) Tx¢eÛ¸ˆãï#ßkóím|7°`,~¦ß ¤O}¾!t Õ¯�N@<;^%_¾€î$üéMÀGW¿xgÏ% ú¹Ô«vô†ëëYËù‹<²ÔÒ¹ãÙ|nuA€Óm¦ïÿ%·ÀŒfA8Ɉ~ëC°èQ_ÓÁá=‰;¿÷çÅß-8¨{£ëý <»ÅËïâm’n“?×`£�×.Ú,‘VÕ$¥wŒ�˯Nin!,Fã°Ì`oúøç×÷·ÿ—ÐUm ôÚ«,öÜ«,ÝëÚo€@) Tx¢eÛ¸ˆãï#ßkóím|7°`,~¦ß ¤O}¾!t Õ¯�N@<;^%_¾€î$üéMÀGW¿xgÏ% ú¹Ô«vô†ëëYËù‹<²ÔÒ¹ãÙ|nuA€Óm¦ïÿ%·ÀŒfA8Ɉ~ëC°èQ_ÓÁá=‰;¿÷çÅß-8¨{£ëý <»ÅËïâm’n“?×`£�×.Ú,‘VÕ$¥wŒ�˯Nin!,Fã°Ì`oúøç×÷·ÿ—ÐUm
endstream endstream
endobj endobj
100 0 obj 101 0 obj
<< /Type /Page /Contents 101 0 R /Resources 99 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 103 0 R >> << /Type /Page /Contents 102 0 R /Resources 100 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 104 0 R >>
endobj endobj
103 0 obj 104 0 obj
[ 98 0 R ] [ 99 0 R ]
endobj
98 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
102 0 obj
<< /D [ 100 0 R /XYZ 69.866 813.476 null ] >>
endobj endobj
99 0 obj 99 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
107 0 obj 103 0 obj
<< /D [ 101 0 R /XYZ 69.866 813.476 null ] >>
endobj
100 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
108 0 obj
<< /Filter /FlateDecode /Length 3841 >> << /Filter /FlateDecode /Length 3841 >>
stream stream
xÚ½\ÉŽ$·½÷WÔLšdpK P@uV·Ý,ÏMÐɆuñì‹ßÜ"\2+k42„V·ª¸e¬/#%.¿_Äå§7Q~¿}û˧r—uY­²úòõŸo2|!.òâÄâ­½x!£äåë·Ë¯W!”Bš›áos?êñoeÃçá;áo_$¤/o_@êðÄ�ßÃ×*ü„?㿤½}Q`ãĵ|’'Ç�„M{|�0×¥!·µ|, |�Ö–Ùá˜ÂÝ~ûúó›Xœ^…ºô¿ÿóûeï«_~zûøúöïþÑÝjæò÷oo¿þ¾øGøù9L‚Õ_þ›†~»h‹Ñþþ×åoom ëEŠe៉d�õ‹±+JV~„àÒEVã³”m3¶ð¾� hø¤™ŽÄ,ŠŠàÒ*Ÿ7uU’& ¤ÅFKø›Œ2i)M{Oç5¨�-¯␍#éÓæaá˜J§)7�Cuœ�KÇ¥@•MÃ"„Á.,* $ Pïù¬yzÒyZXSྌgy�ˆÊ 8ÝlÙVж’LU¥éUøåð€ªZÍlìaY�ë“g@H<\zÎbÒé{t‘žY¥G¦Ã«¨»â²<‡¯‹Ä㣠sÁO -… xÚ½\ÉŽ$·½÷WÔLšdpK P@uV·Ý,ÏMÐɆuñì‹ßÜ"\2+k42„V·ª¸e¬/#%.¿_Äå§7Q~¿}û˧r—uY­²úòõŸo2|!.òâÄâ­½x!£äåë·Ë¯W!”Bš›áos?êñoeÃçá;áo_$¤/o_@êðÄ�ßÃ×*ü„?㿤½}Q`ãĵ|’'Ç�„M{|�0×¥!·µ|, |�Ö–Ùá˜ÂÝ~ûúó›Xœ^…ºô¿ÿóûeï«_~zûøúöïþÑÝjæò÷oo¿þ¾øGøù9L‚Õ_þ›†~»h‹Ñþþ×åoom ëEŠe៉d�õ‹±+JV~„àÒEVã³”m3¶ð¾� hø¤™ŽÄ,ŠŠàÒ*Ÿ7uU’& ¤ÅFKø›Œ2i)M{Oç5¨�-¯␍#éÓæaá˜J§)7�Cuœ�KÇ¥@•MÃ"„Á.,* $ Pïù¬yzÒyZXSྌgy�ˆÊ 8ÝlÙVж’LU¥éUøåð€ªZÍlìaY�ë“g@H<\zÎbÒé{t‘žY¥G¦Ã«¨»â²<‡¯‹Ä㣠sÁO -…
@@ -311,25 +311,25 @@ U[
¿ÀØóïsµã•¢÷‰¿€‡6=Âäø=k�'%Viçò|ym␍8BË{Í›°ÓKT®ßµ&Ýv³val»`Õ@S¯v/Cpþ¤,Êúˆ€¹Qñ;oYÃvà7*Å­‹ì2Ãlù!jtë8ßgô #™·º7¤Æ¬Å"<¤¾Ž$dC5â?ø^¢]”ñ'p;x¤«[σæÅâul&jøª#Ja§ÔÙûؘp\�þz ë’zã{é¶4yÍžÒH¿hPÝ4ݾŽ¿?¾¾ýF¾\Ó ¿ÀØóïsµã•¢÷‰¿€‡6=Âäø=k�'%Viçò|ym␍8BË{Í›°ÓKT®ßµ&Ýv³val»`Õ@S¯v/Cpþ¤,Êúˆ€¹Qñ;oYÃvà7*Å­‹ì2Ãlù!jtë8ßgô #™·º7¤Æ¬Å"<¤¾Ž$dC5â?ø^¢]”ñ'p;x¤«[σæÅâul&jøª#Ja§ÔÙûؘp\�þz ë’zã{é¶4yÍžÒH¿hPÝ4ݾŽ¿?¾¾ýF¾\Ó
endstream endstream
endobj endobj
106 0 obj 107 0 obj
<< /Type /Page /Contents 107 0 R /Resources 105 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 109 0 R >> << /Type /Page /Contents 108 0 R /Resources 106 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 110 0 R >>
endobj endobj
109 0 obj 110 0 obj
[ 104 0 R ] [ 105 0 R ]
endobj
104 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
108 0 obj
<< /D [ 106 0 R /XYZ 69.866 813.476 null ] >>
endobj
50 0 obj
<< /D [ 106 0 R /XYZ 70.866 293.162 null ] >>
endobj endobj
105 0 obj 105 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
113 0 obj 109 0 obj
<< /D [ 107 0 R /XYZ 69.866 813.476 null ] >>
endobj
50 0 obj
<< /D [ 107 0 R /XYZ 70.866 293.162 null ] >>
endobj
106 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
114 0 obj
<< /Filter /FlateDecode /Length 3599 >> << /Filter /FlateDecode /Length 3599 >>
stream stream
xÚ½\Ë®$·␍Ý߯蘲Þà¢�Û�kÀ»$³3¼JoâE²ÉïG¢(ŠT©º{<v`´»o•T’(òð�b�:ýzR§ß~_¾¾ýðiâ)o9˜àN_ÿù¦Ë␍uÒ§¨¶Â))µy£O_;ýü®”ÑJiNªüöåcζþ6¡\/÷T:Ñnž¿XíÊ/[/_ÊmS>ågýŸç/ƆÚ1ã•Ö¹^RÆøbKßMÎ/+‹·áå÷'ö.ÓTñüËןÞÔ]Væ4ÿç×ÓÑ­¿þøvÿúöïyé1‡-Zúûoo?ÿRnü£|~*�lN§ÿBÓßNÎÛÍ;[~ÿëô··¿�`gkµeUþãζ\+Ä´ù�»„}hËÀôÆZùÍù<·¶úü; xÚ½\Ë®$·␍Ý߯蘲Þà¢�Û�kÀ»$³3¼JoâE²ÉïG¢(ŠT©º{<v`´»o•T’(òð�b�:ýzR§ß~_¾¾ýðiâ)o9˜àN_ÿù¦Ë␍uÒ§¨¶Â))µy£O_;ýü®”ÑJiNªüöåcζþ6¡\/÷T:Ñnž¿XíÊ/[/_ÊmS>ågýŸç/ƆÚ1ã•Ö¹^RÆøbKßMÎ/+‹·áå÷'ö.ÓTñüËןÞÔ]Væ4ÿç×ÓÑ­¿þøvÿúöïyé1‡-Zúûoo?ÿRnü£|~*�lN§ÿBÓßNÎÛÍ;[~ÿëô··¿�`gkµeUþãζ\+Ä´ù�»„}hËÀôÆZùÍù<·¶úü;
@@ -355,88 +355,101 @@ j
ªâ:Îò:•ˆÉLÝœ‘H„ß÷¯oÿ´� ð ªâ:Îò:•ˆÉLÝœ‘H„ß÷¯oÿ´� ð
endstream endstream
endobj endobj
112 0 obj 113 0 obj
<< /Type /Page /Contents 113 0 R /Resources 111 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 116 0 R >> << /Type /Page /Contents 114 0 R /Resources 112 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 117 0 R >>
endobj
116 0 obj
[ 110 0 R ]
endobj
110 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
114 0 obj
<< /D [ 112 0 R /XYZ 69.866 813.476 null ] >>
endobj
111 0 obj
<< /Font << /F27 88 0 R /F44 115 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
120 0 obj
<< /Filter /FlateDecode /Length 3048 >>
stream
xÚ½[ÉŽ$¹␍½×WäTŒ¨=€BY‘•␍ÌÍã¾␍ædÃsqì‹ßZH‰T,Õè j2;B+E>>’Juùó¢._^~¾}ùå¡Ãežf¯½½|ý× ¤ê— ¦èý%*59␍—¯ß.¿¿)¥A)pרÒwwKújòwíÓóôNÅë+˜òòújÀ¦o&?~O¯uúK_óÿÀ__µñ¹ãŒOjçüHù2Ç«I}Cir�ñ±2øºŒ‘¾?°wZ¦
×?¾þú¢¦`g¥/ãçÿ¼ì½úíËËÇ×—ÿŒ[³Ÿ‚q—|{ùý�ôâŸéï×ÔÉÌñò¿ÒôÛÅ:39kÒ÷_þþò·&ØQÀ ¦Y¥ÿ¸„g“ž¥i|œœŸIÂÎ×màÔ”›Bpck}«‚Uô¸º7”ËB¢¬ò‘Çs§ÈÍMóÛ"FiÀçºví=Òy@žÊT°Ô�³jÖæt­ã␍WäË9çä Ãnó5ÒxÐzÚ2ßkyó!ôç†i°,ØÉÚ¹)øŽ¨'µ’¶h¯QY4pC ç•}T±É͸º™ 6cWK¦¦†L#˜~„rÀÒÊVƒ*M×<dYQ\[Q>·…æ5pµ¥±+}ÈêŠ-Ì®B}íùšËÄ >¯ÄBÛ¤)ÏmS«²I‡38ÜÊ®Â6ÑdSäSáGam¼ “␍t&u5Iì&rÉ“ÂýPt˜ægk␍УÈú~UeHZ¯¢)Ìžùy׊á-ý«HáŽÆüQ€¤´uãYñ‰dÖæ†¡h�¯¬ó#ÿÑS¥¢E �®@ mùtpmw܆ÊOftù}‘‡ÓhªƒtÁ$'µxk÷ãi±ƒ�Lh–gŸÏ×É_6Íô×µ F}v‚¨/~Ž“·íxçmå‰Iy\çý+­GUõ"Ý §H<Ö•56WíÈÛ=ªÉBŸAt7ÙiIMʆõ‚ራžtlW4ý2 ƒîz€¡ë·�@”Ã÷5 )îç½}ƒC¦‹ ‘g½w`Ý€éÌdûÏ@¸Q3—4畈�ÂÍ�þ1qUË"߇SpL¦‘‘× &ã³]Áµoœ Eós0o^„ì�Þß›‡mÒÏr‰1¨:rÊ␍'<ÓŠ×^˜ÄÒ?ª ¸�§ÓñæâöÄA=
P¿5�À'‰pâ7«v ÿ—‡™áJ_g-¹�·në;¾àfͲW]Èg^“5õÏW«ßÀoEÁ­õŒcÏ;�çB{¯„ë&Ça}␍�\ë‚°ÕG1�.TH§iâ1F÷Ó-]8L3ÝÍg 94™H¦þÀ¨:óøÆÖ8! Rh%.IüÖ÷؆¸"Ø �¡£3IiæÆT�XcQœž)|÷m&¤"Yn�Ù£›ç_‰Cq”Ùeô„Qé�wî¤S‘�¿ƒÐãÚM ­ˆ\—åscoÃ<Ws›œúUüa”º§éŠºÏô3:¹t"ÈaÄfË[ôÈîi`l'j“¬`aÐ+í¤]�¬B_w5j?u“½á¡h­5ˆø5«@ÿ)(ðŸ†/ À3–N&AX.Ü?tQŽáþ®Íÿ«rÞLÂŽU¥~QÖÐ~ôüÈQ^‹˜ŠxæQ•­âÏ]{líÇ/¾GëèNFPÙéÆüç™C�Õ˜
½O\x”F@�ßIu‹S�ÌÖ␍We¦–ÅË–çÌËâûæ18yê¸ÞHUã!óºZ¿{:D;OÁÇö�Mè[güH¯€îœnÑ>œ�žÄ¯ò±(ÝS³0rbÈ{×Ç ¾µe\Žj#Ú×çÍ tWÑæÊ$�Ë9-�$�>]LºQseÛ¯~û‚@
é|\6¯5�B:3ÕÂ$2 ð�ÿ·È¦ËýÇæîÄ´>»ÊÝéyÞÏÝ}—4ÎdúhQJM ›2ëEFMÌË,H„óçãØ{%;ùÇÁOJ}TÀærÝý ËàPÚ™ 0?ÙÝL`Y�þ4ÅM:/Æ`�KîÄáXæR�ø•Ö¤Ç�üùŽ´­
Stf”HKK,ûûÜà-␍¡ª£ømô“ �=tÛ¤x›hmHÈž’P}]Ï`ƒ4Û`Rh,ÒÆ4…Ô.–¸|/–ŠnÜû0ø:GV3€íZ�$ŸD+˜Â ã$>`ô¡$ê é–5è’␍cn´q–�„U�Pax>C*EæÎÞq‹é?63.ÈûmªÜ h ôz(€læj8mØTX7O¶ÃÅÊiÝÔ£e„0еo»s3¶Å`gw-ì&¦ýÛhÍúN'Q%¦q¾¤ÈU­ºwuÌ÷×ÕÖnÞ]šê¦4­›fÓ|^ÕÌÞR†<3Þ¤5þ
ÅèóÿÆbØ‚AÛRƒŒ[ÍTС­Ü$Ú·Ú‡f
Ì'”þ<›×%€9ÕܺpÆüwGt¸ãóGl¨]þ,eB=]š˜Ï�kç\K,¤ÅµBÞˆ`FO&êΓ[çœç88á}¡�´Ô�rgÏúø3IaÁƒŒÄ±wÓ!i¬–\�¦Y…[ÛXúÓOC²û—å¬Y­ÃŽÓÝj:›¦’¨Y4-éWB
Í áæsä9%h7P‚À+¢xNÇ•‘=ò^ ó}þ¤:0xX÷¼ÕÑò’´Áï;x®Ü¤£ᮓ쿬ԯ
ˆ�Å␍4Q†Ž<!#˯CI·¥›\oX´™“g7–'\šF-+kÖ%=eÍÃÀ™â ¸‹-½kearë5Ù“Eb.ÇÑ(ÓP08R�Å6扢Ò!xp¿Çöþc@ãÂä{åœyxØ'Ö½zÿÃâ@ã|ŠÜ_žŠkF˘yR.žË�±úZ„šðŽU-“çu’žp,Ña␍OJ––Ê5<ÇÀâäø®ñ�%“?/í”ó’'§æç"ðÁŒ�wãÉÖu¤+]_±Œ[g%Dò6¦XËá#È{x‘zÖ~éñqæhš–c[=•ç²üxõ£EªP’ÅGÍFéOÊS´ÝIx³˜Ðê␍qÚæZ Û”¥‹¼èç;o—Èš³öÝ «Qó0f �Yù�,ô' pNCã'ÊéÌ ␍:|ÏO�Eçͯ¶"c ˆ¡Fÿ%>­‰Ã“iÏED¼†S-ƒ=’␍æ‰<£M ªOÈSűqAÃ/nÊTý$™"m·½"ž•‘ì]H­ø¸/gÄ�‰oºv‘©•�;�·€ó”’˜ èsNdhL涭ା%¸1—5»LÂõ/0tbTë¼¥õC&Kø]ƒ�²|zÙn�
àt¤mÀ¥ùSh�¶0iÛ‹¹±_æ`ûY-ÛýÁÌ'éúdçøWgÀ�k¬Z› X�5V–ñÉJ VzÒp’7␍�ë”ä]›!b©áRÑ:X_žJÞ¼RsFü`ðY댅BŒ@Ñ™}d±öyS8
ˆqòþ¤Ô†Æ{ëo?µ’à&€ùäJdãa%=ó}Õ¾£Uú†“‹m÷à†r?<OŒ*;ïáâäpk[dZ1òµxÿÎ9Ždaã¤ôÉk’Cc}[׋–~)˜ÒõàƒiÕ$t…Ôù^W—␍Xƒ½ù`·+ЇÃË¡`ìdÃI×:4®L=SŽÊ}�©+Ö kz(Ûö‹+tÓ·êð†Ô8nuKVu¾¡°·a�@WŸÝ°l¬ßDztg6�ÕOÚ¨– Ø~Oç¯o[[^ÈeA²–å%åß—äªÀ““Va2ÁœÜ¸l¬5’?·±Y^ ^0u�÷™yÖS1ƾ§2=x’Sty±¶Õ‹kÕ¢'< IkIðµ9­îÅl»À–‚
ò{î{|8³™¢¶çÎF¶•(r6¯{ôó�„l³9ûSÑX£ãî…€ñŽýFjÿ‡7F Aixq7°f5rtåX\ÁưÃÏ`u²ZµrÆñ˜Z5\äýDØò^©Çp~íi„º_bá—üû)˜Ñå|�®‹ëÉœ�XeÛdÊŸÒ4a¥yo9æñ‡[p°9EÛ+Õ*zeÎ`úÞú\RK“ˆpòSIMh›9â�à´%œ|“Æ=vÓòö~¦@äÿÓ_�
endstream
endobj
119 0 obj
<< /Type /Page /Contents 120 0 R /Resources 118 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 122 0 R >>
endobj
122 0 obj
[ 117 0 R ]
endobj endobj
117 0 obj 117 0 obj
[ 111 0 R ]
endobj
111 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
115 0 obj
<< /D [ 113 0 R /XYZ 69.866 813.476 null ] >>
endobj
112 0 obj
<< /Font << /F27 89 0 R /F44 116 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
121 0 obj 121 0 obj
<< /D [ 119 0 R /XYZ 69.866 813.476 null ] >> << /Filter /FlateDecode /Length 2989 >>
endobj
75 0 obj
<< /D [ 119 0 R /XYZ 70.866 510.077 null ] >>
endobj
118 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
126 0 obj
<< /Filter /FlateDecode /Length 2923 >>
stream stream
xÚ­[ÉŽ$7½çW䔬] xÚÍ[Én$É␍½ë+ꔌ=¡€R–ª�¹y¬Û`N6<÷Á¾ø÷ AF.J5Ô†1¨©êÌX\É�ºüyQ—oO
 @®|»n†O6ìËôa|ñï�R"KFUF:³"(‰"©ÇM-Ï�åùÇ“„ïëÇ釧çIL^{{þøó¤Ò yVç Eôþ¥N«óÇ·ó¯ïRj%¥rs”é·»¤�žMþ­}zžÞÉ8¿)S^ÎoFÙôËäÇ×ôZ§Oú™ÿ§üü¦�Ï'xRçGÒ—5ÞL ¿_ߟ~yèp™§Ùko/ïÿx‚ôB]àÔ½¿D¥&§áòþýòû‹R”w�*ýv·ôÑW“kŸž§w*^ŸÁ”—×g6ý2ùñkz­Ó'ýÌÿ}ÖÆç‰3>©“ó#åËÏ&Í␍eÈuÆÇÊàë²FúýÀÙ‰L®¼ÿú¤¦`g¥/ã÷¿ÿ¼ì½úíÛÓÛûÓ¿Æ£‡ÙOÁ¸Ëß¾?ýþGzñ÷ôù5M2s¼ü§ ý~±ÎLΚôûŸ—¿>ý¥1vd0¨iVé?ÎáÙ¤gi'çgâ°óõ¸␍å¦Ü8Zß*c•C=®îù²++¤xî$€ÌÑ<4¿-l$–|®ëÔ>#ÉòP¶‚¥~iÜ%а¶§koH‘/rÎä„á´ùi=h3mÙï¹¼yúsÃOZ,ó¶ÙG¼vnJßaõ¤VÜã5²"³nÈáLÙ[e›<Œ«‡ â0vE2␍5dùËtÊË([␍ª }\ó’…¢¸¶¢,·…ö5pµe°+sÈêŠ-Ì®B}í9Íeã…Ÿ)±ÐiÊsÛÔªÒá�„¼«‹°C´ÙY*\ÖÆK°0Ù@¢0iªIl7‘«HÞî‡
É<Áciàu™#ý~ÂèĦ óo?�¤v’ú<~ÿý×yëÕÏ?ž§ÿ�[“Á¸óïßN¿þ–^ü‘>?¥AfŠç  Ã4ww¶Ö=j€œ ïWP•‡¤õ*J–¢`öÌÏÛ¸V oé_… w4æ·âøP e¬eÅ7J.³7Ì‹Öý
é·³uF8kÒïÿž9ý§ v°’b’é?*áɤgi…óJØùº␍˜@ )- PÒ‰Ü8B_º³ ’p]žèžeœ5 ï³šš`ÓÇ€äü¬tz®’vä-}‡ô¹ÍÎóÑ—úVÚ¢–ü¨¨2O¦«Âò¸€ôÆÀlô’5ûÌo3WùeY'¿q@©ñmð�î;fѲ²XÞ´‹íÝ�SJ§`­,“òwÀýWNf%aM6ó␍Ä-‹ÂÔ¨$çD²-Ð_ÜÃâE 70~?kÙÏ(Ù¨§oÉ&¿0¶X‰ºÔ/]MC>¸õተBE}f:6ÛîŒ8™xô0 &Ûva m?¾pʳÅ&ˆbšã;òš�V=2ºà_™ŠÎRߦç*QX‰&T~%ÜP8»›uF¥†08ß?Ehm Ú •8˜K[­p6ÁçR␍7¤iÜ­�7³ÆÊz�jXmë�­àh¦¬!ëY5=g"cgå(8‚5%;³Já”–}Y˜·ñ%+@£Ü�4ªR'»6]•l–šà$©ö$+è^•DÌÓ0Ã+rH¾Ä•ƒ¦êw“Ómô-}xåtE¹2Ì5¹µSçWÏÑV™@ó›ÞmÀn9cceí˜ ¢'´O$ˆž�Ɉ|ÙI;Ñ~Y¿£r¯ Fß’RªOŠðÌx–Ú[[—´Š“è^EÅ ŠÉfSˆÍ£�áL È2¾2ô@SE¶»oA@¶m1àü›eœIBK ki⹑c×Eã ¢ÂWAݧ�Àº~>e~`vYVÊlIºÐ`ùõTÇZßM›4‰É"6 ~0 È̘{™P£M0hq"›çVÈx=I’…yÂ@Sî½�ZLj+ŠåȈ‹þ"1F‡â˜¨3ò~7€ÔáÐ2Oc2Vo Õ0�i_yiŽG�?šÆ¸Ù¯!Žò{žÖû TØò´4ÄúÙ}B ’\³éø>@…évx÷ ?B„À�—ãHÅ­3œ>*gy‚$í=krJXû hÔ�AæIІ¦P£„u¯n™›M‡{ú÷¹.ÌBB«vèÃlÞyОMP~Lt6w␍æz+õ=%K¶PööD+¾7 q”Aøu�[EMDœš}‚Ma>XCOˆBûI®?’ð@[c·àÈW€ç3�çžÁi+R®÷¾²‘qâ” \¼Çt}�®ã„V-b²d{TÈ;ÓŸ ì++¬™˜Ü9ølä)_ñ‚ÙçdíÐÍTÁdÁÿðL‘æZÎ ©¹—F¨\¯ „æ¢ÅJ”íÑ�x=T1*®2‚XR¬NÕ¾™¹H»¨ÄvÒ¡Éq dÁÞï ãiaÁD“³f™Vmw„Hû4 ¶0Ç+;%"—]?+1î[Ašž �oùCOLJõ�tº:ZhçËÒAÚîx •ŸÌ
Ãb4-‘ÔÇ6+ü¾íûоŸñ:6Œ)_°¢„âóc0».Ǻ½´Í•<Éù(¬n:þß;�sVÄx, à´ i.ÐBÎ^0@šùv¿-w^iHú.³—CA‡f»ßJù©D�6rÐÐ&mƒòv9IýÁ咽,ÐßAPàV cÔA‰sâìd6r.«Yɇ¯+¡VÜ ªöxÖA„¨w òû§Ñ<TwÒÅ'9©Å[§¥]Øv2¡YžQ|”ÒÉ_Íô×µ␍F}v‚¨/~Ž“·M¼ó¶òĤ<.Œƒóy‹•VQU½B7(Þ)RÏëÊ
4Ûœ¾j€¤dÅéiá*Ší¸V´ ´¾èñ¼ç¡q²TË1DÄò‰Êùš‡ÊrKS.¸¾¾bÁ­ÙŠ xÌ5 ÓšÚ©6×- ©º6äÒeŒuQ¬by.E¸á�&«XO¶<ºêß)¤ªçïVmy,äëUô†ÖUzAŽ–�QwÊŠO-ªº7ÃòæˆZ{Ç~ó<Û÷¦ßÔ; ±ÁPÚЖ}·ê©š­åAK Š›«ví•�d¡¹èn²Å$’—␍›ƒˆ«žtß®hûet,ÌuW†®ß‚Q.ßin¤„Ÿ×ö ␍˜“GžõžÀº“ÌäøÏ¸p£fÎ hÁ+…‡!ýc쪖E±·à>™VF\ƒF˜ŒÏv×J¼qÍ;óEÈéý½EØf ]–KDƒª#·ÜÂ3Q¼ŽÂľ�þQÅí<IÇ›‹PÐwêQ8õ[Ó |’'þ²jÇõÿò0³\éç¬%¶óÖ¦÷}gòæ
(Àý´Œ‹ u.,r#ì6FÔšMCþ…XÈ0ó„#žÅcwãÁ Ñ«.à3ÓdMý˜Jc�ø«0"¢sk3ã8óNë¹ÐÞ+º Áq·¾v�Bë‚pÔ[a1�.T—N3ª{¤�“‹1ºK·Lánšén–-<äÒd"úƒþIæñ…Ñ8 Rˆ—8~ëglK\ÑÙ �!јŒk¢SAú‹ìôLá{Dh;!É|ëÈÝ,8þJŠ{™]DO>*½O9ø=ÒnZjEàº�Ï�½ ‹\-lrèWýƒüÐ#MWÔ}¤Ÿ½“;ðNär°ÙŠ=³û00¶ƒµ‰VnaÐ+—âtDètW£ö£Q7Þ;‘Ž�íNkíD|s5«ŽþS®ÀÚxá
o†ÞªüˆÙ¬y )…�†I+ÎÕ°r%¬úŠCä…³šòЫx$�\I2è†Æ‚§µbõXä�|Y-Š<n¥ÈÓÑÓÙØd5›Î�“Ûzì€x�T”5°ª¥'Zÿn;àbóäÕ¾·°1åàÆóqÑæ£~x ŸÿÕ|Ç´ËI0ÂEw�NLÑÛy®æ¥�Æ¿^Í3ëúcQ¢  í‘c/·ì±a½HR=¸iNœ‹ƒùçÍ'Ѿé¡:v¯$å òÌǸíQ*L·ê¸È› C÷Zªq,0'ÿ* ²Ú #SžçÞ=t†¨Of7V¦o劔뭬ÊR¯ÓôiYÌP] ‚žõd>�FÈf’Âùƒ Ä%ƒ,H6£×Èb»U q«� tþ¥␍„ Ò7À‰Ë0À9Yõo]w¯©V¥Þ¯$Hã~b;¤ÙÛš7Âúé‹·j$N!„o|×Eúº‡k²5jHös␍�M'ļF¤ý¹6s‘Öîþí$&u°ž;#`4� �V¬m „÷e›ü坯 ªŠÑnijÇæT÷æ­d/‡rÁ§R £µˆú`Ú6¯…Y‹Ú 9Njè/jçGP<!¸ð½š¨kí9ÇÍÅŽ?Ú)ÚÖ´³�8ÛYJXÑ·YR¤îiº�@®‰ª¯-à ´²|a—näæ <CédäËEø‡ÎÊ1ÝßµùŸ`UÎëÉØ½ÈŸæEiXÃø1ò#Fy.l*ì™GU¶Š;xÚc?&xñ…0Z÷îdEÈN7äà?�ê®ÆT×ûA�Òhò+©n ê‘EØràªÌ4²DÙòœEY|ß"OÝï„RÕxˆ¼®Ö¯�= ÑÆ)ÌÝÙ?6]ߺÒà‡Dzåè>r§[°w£'qôWY,Š9[‹á©YwrbÉ{×Çæ@}˰w¨␍hXŸ'§»Ê°V–\¸\ÓÒÎÎéÛŤµV¶ýê·oèH!ÉÇAØr¤'›á‘�ïø¿e6�ï_[»K”mÖîô<ï×î~ˆg*}H”Mùcyƒi‘Y‹2 áüý8Ž^`ýäC?ÉõQ[dÈóu�3¬‚Ce;D&Àâd3�UAúÓ”7éLŒÁ$—‰ "ñ,¤,ý TX“Šç;ܶ*L1Ä�#­,±ìŸs·4'°U]±?噯7ÑvÛ˜xgm0ÈžbP}]E°�™mJ´"pŒ¹RHébÉÊ÷2©èƓ˵ײZþkâ|ÐJŒ|­ ¹öð3%=ž`m!A—J ¡␍¯ÔL$¬„ê‚ç3€¡Â`¡ìOø�±c³ÚBI¼ß†ÉÍx8¯‡æÇf�†C†MeuqÒ¾ñs~´nÚÑÊA˜åÚ—Ýp¹Y Û‚¯C¤;Jv«Òþe4e}'QT–i\…“º¢–U­ŽþJm�æÝ5 ¡n²ÓÚ)@ xU␍°tKåñ w“Úø+“Ï?ü #Ä0‚™A;Rs·Z¦ ©¦ÜDÙ·:‡v
w”[5|ÞŒX̱}’µk-¶«Ìgä¢=wZd¿a“Ú{qT'””k¤” 8%K.'øvs†n@V¬[½Ç´3¸ƒi 挫 , ”ù¼”×9€Õ<ºÆü¹£s¸ãóGÏjh\þ.=B=0]f™XÌ�ëäÜH,ˆÅµ.Þè¿RΟ,öDää™ÖÛÉÈ9,Nξ`G"u§×ÙK>þLE�àA9â8´éà¦V$W£iVáÖ6–>úÃ|ì~d9dV몰ãX·šÎ¦©$\æÁ6^;Tr␍_XÌ‘rúÏnÀ�·CQNÇm‘=ä^\çë�ùIu`ð°éy««e’´Áß;]Ù)y)‘ë: ý ¥~Õ=lnÀˆ2oäÕÙ{ú¹­Ö,Üõ†E›9ahp¼ÚÒ4jYY³.‰è)kÎøN¸»ØjÑ»V&·¦q(�,Òçr?e
¬'ckYˆI·×”ýB ‰Jz4z¹bq(¬v¯^¬å"\L«�¡åË"¿y5œ)苦<ŽËŽ…´/2k[IgÏÌ$¢Üª*©|Í©;3’·ÂtÆšCò¤éT�ÁDEdê1h7V!eó„,_ç…׈û=AxRºã—‚iqÙ* ņ~AªŠµ{×5Ë1Qd¢Þ@Øu¬ !SÉ–k¯ôÑ=K‘•#ÐwÚÊ–çX4žPíE:¥4çlalè©;éé.  ¬ã5/¸I±�/J‹ f̱¾Ž�Ð~å␍véý­Ô‰9e5)áo'«f¶Þ˜'g˜…‘G[RŸöði&aŒ>ž™‘–5*íØ¤ ␍×1ÔÒ¸¥� #!ŸÒÛTÅPv�D9/B¯�íìVÆ‘¸]0J†i²B Lrª<x�J‘‹¯ë½Ã•nïòŠŽƒ{&²ß#åwor [+(Q1ô/nó îv¥f�ÐG‹Q1¦î˜ “ Ú}òÊ®ü=ªLº»ô]HÑ•„ùú/%°–߯.û[ÛõÄGÕz)ØŒMõ¯UV÷Ô 'á�Vâb-Y÷èfÉ(ì4-ÊAà© ¼"È�¡}¡Fƒ0Ên7qò�ÖIÉܯäúÒ�Wi«~S>—CÛÉklÌÖzØ\dz[‘AÒ¼‡Ü`ðcOîú ÍÝŒ,ÀÅ”Fõ{a7´�Ö„[–oÈö_ô`êÚôÔ'„ËE g+m ¡CNòƒÁ»µ$¿'RÕ/°À‘÷w‹Ký²è“œDIîI~{¯˜êjn<Ç­PBÛ$u]jŠÜ{±qµƒ£È�êÀrÒݦ—ß‘]Ï·þŽ“.�–x6VÈ^Yµ*ë’�58IQ‹°F�Ã4?šðýø8ýÜ„Ÿ †@
²sÂÖ<ÑQ:t<.±½ÿÄÐ8?�iÀ›ExØGÕ½uÿeI q “Ïúÿ+ 4&L‰%"ÚT÷™¡8ë>LN•S›±o-½¨iÿRÑ‚ç×J˜ºÕê/\ã «·aë&ÒéBžâïXïH¼-ÄêxÕ˜ý8N;Õ»€B"[�³¼~š<¸µ`ã—ž æXŽæaY7©h<E,™$¿ÕÅ�Úd‰š§Ù˜ÊÇ,Dz9 [M�5`ÝÕÀEFlˆÕz–Øam»‰u§Q> [f�Þt^J0l®èvã<zö“‰ö¤ˆ#^A“<ç]®ô‘–9FÏ2fÂí ¦hJIÕjýlóŽÍºú·ÔäO×äϰ´¢å"°ŠÆœŽD=EcE…Åðëp›\ÉŠïŒù*®\›ÂPk7+Ï>û1[mŸSh‹-­Ü S¢ä(³Pž;¸�CEóó¤£ãÅ µ«d¥pŠ’µž­z—ítE‡Ò‰fQ*¯-Ç2ú!swÞöîéÑÀ�S÷¾dbš‹¹V$V-­üyA8…
QlŒý^ ;È–\9îÇáL
øÿy>n÷iði^gO␍˜ŸìIÁœ†=×é×-k¢%o} ð¹b÷¢t°¾Æ“ÂZʼn,ŽúƒÎˆØµîXbéhéfF–ø�·„ƒ;<_GëNrMÞ£¿yÀø)J|LZèOR"”ôÒÀ�õ�ލt6X8I¥¼W�5TŠài+0ÔLâÃ%¾á±h´Ê6äè ¯?¸Ç7,L0Ÿå†¬oëÞÅÒ/¨RöZE7˜Lël¤_J´èøYW�o–S³7o¬Ó�5^T&oOÞ)WКQC-S)Ö %zh!öKtë´jñ‘©IÉêÆ¬zNCqzïÀ`'5Ï',ë×±EÚÁÉcu�½F¥mÅéìÕåõÍ_Ë ¢L/‡¬e™¤ü·¹Hý�¤ó_\œuŽb¬ÖˆÞÜý²Ñ¼Ë oÖòœb yOþ²,:D’SWEyÛ°u.k ½Wß
FkÙµ1­nhl‡ÀV òBuž{,š˜Rwuò²°+}ÈÙ"ãÑEv˜t8û7#|¬Æ°ÝkÒã]/ú[�ý?1b ª‹;j5­Î9‘ci[Ã×åa%W­ZeSáÊ¡õÀEÞ“ƒý%ï(qÿͯŸ!ˆ�K÷Ëü²™c’dt‘î
9nüY•K21/ '&‘Pr–␍sK”åN…Ñã4-ï@áwÂàÿBIßå
endstream endstream
endobj endobj
125 0 obj 120 0 obj
<< /Type /Page /Contents 126 0 R /Resources 124 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 128 0 R >> << /Type /Page /Contents 121 0 R /Resources 119 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 123 0 R >>
endobj
128 0 obj
[ 123 0 R ]
endobj endobj
123 0 obj 123 0 obj
[ 118 0 R ]
endobj
118 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
122 0 obj
<< /D [ 120 0 R /XYZ 69.866 813.476 null ] >>
endobj
75 0 obj
<< /D [ 120 0 R /XYZ 70.866 508.858 null ] >>
endobj
79 0 obj
<< /D [ 120 0 R /XYZ 70.866 346.515 null ] >>
endobj
119 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
127 0 obj 127 0 obj
<< /D [ 125 0 R /XYZ 69.866 813.476 null ] >> << /Filter /FlateDecode /Length 2958 >>
stream
xÚ­[ÉŽ$7½×WäTXû$ÈÕ€oc×ÍðɆ}™>Œ/þýÑBJ¤bɨjcP“Ù”B"©ÇGR§¿Nâô㛀ÏëÇÛOåOqŠN9súøóM¦â$O^LÁ¹Sb²Jž>¾�~= ¡¤ÒÎA¤ïö’þÔ¬ówåÒïé™ó»Ôåáü®¥Ißtþùš«ô—¾æÿ“n~WÚå�~©ƒóO•w¼ë4Ö‘9ÂÏBÃã2Gúþ„Ñi™ÂÏ¿}üô&&o¢P§ñóï¿N[�~þñíññö¿që>ºÉk{úýÛÛ¯¿¥¤¿ŸÒ ÃéŸ"úíd¬ž¬ÑéûO¿¼ý§)vT°SéLÃf’A�¼ “u5ïu0
=9FaùàZ˪ðéû-ýTqÊö±÷¦tQÍ!l•EËQyú¯Å+ð¡F›v�l¢lŽÑ ru[Q'½$U[5p[Öqá)íHa'ïí8B]º•·»ÙžqËÙ Õ}–±9WúÓà=n–*oó
ªHê“·Ù:>ú‚J-®™*îœ'Su�õR|^Ãl|3+㙟æUå‡å=�˜@áSïšÜwÌÂLÜf,¶ºáJ©œ„we�”{Ü]É,¼sá<YÝ¢LŽFÒqR¡{+{;:b±:¡›•8�®ÊNyÛ�[îò c‹›ÈKýPÕ7ÄcÕWñ¼ªtämØ8¯éœ×Ïl´~ L?IuÙe9»2ÎáŒk�ìHæe): p/“„èCå[O‰³ÛYehn§ç0¸¨Ým!{¡io++‹ðw©žëÓ4öÖÆëYá ÊûÕ³ÚÖ¢{}°Lyœ„lgÙ윅´™¥¥âÖpÊÐxÇ´ìËÀ¼m]¢F)4ƒ½3�FS&O:i¦dƒbF8J’!ê}�š9þ{ÑC
¨¶œ4Y?›žnc€íóÀ#«*Ì•a¶é­�:·zFˆµÊª¸_<#Ü€/Ütvtß�tͤ¼ß€ô|L°��´ã�ífЬw4îu±Ð÷d”�ê/Eyz<Kí©©†KÖð%Jô°"C�â²ÙB )d83²Œ¯ z�¨}åÁE÷@/ƒµB€3l%Z�ÃÐâé»”õÜȱëªqÑ૨îB"Nª‚O¹¸]Ö•Ô[’-x~=5²ÖgÄÒ:M¢³Šõ‡ (òbô½L¨0Œ&48‘Éó?+d¼ž$éB?a .÷œÞùIú¸ÅcFErébÁ@ÜÑ¢B"UaÆÞï†�:Ü^æitF«‚á␍¶ê¢;í›/Íñ¨¤ÙŒ;þæH·k�•“1á57Îà<«g�
…'ÙæÕá<€êwÖî‘„(ÿ@ /’ª[e@}Ô•å ü./v:yŠü ˆò
m qñ+¤¿ò„õ¸nX MÇ;þ{�\_ÌH¡‘;� ò~ÖgÎÛ³ J@�Hags×à®wðR×3Óä eoOôâ{ÓÇ9P„[‡¹UÜTj’®ù'ø¦Å•|í'¹~I1À�l1ŒÙ<_QžÏŸ{'ÂääË'm�NY‚Æ×w^×wi;R(ÙX“!»¨Ø™¡'ÏTŽ˜W~X�þ29¹sø#FØÈU¾ sÜÉö¡›©ŠÉšÿá©ãzñ Ö(lð哆š�?‘¦g�õ:(çTdlµ$¾Níþª„as “z;%Š–Cõ0 +®¬ý¾pžF␍"MÐn+õ×­Ý1"íS3àÂ<¯ì”¨\tû¬ðÜ÷‚5=†—ÑÔDÐ(Û¼ð;ÖmÎ /úþ…úØP¦|À+'$Ÿ íºëöÒ6Wr%›Kc¹¦Xmü¹uïpkR&í1N0/ô¹PA#ž½l05‹ïn[ó„b)Hý.³C]‡æ¼áJª°ä$d™8´IÛ <…YNE
ûÊ¢žŒîoÐT¹r“é(óBå\8žŒÄZÌ%oÕ+Yq[ë
Ý
{ÄjoÍRM±3¡•2Ͱl._-@3dr*.‚EñÛJ7ž–]+¦¡a Z²eŒH±ˆ"sÖæ ÈÞ’• ¾_]±îÖ|Åz<èŠPµfvK
ïu 誶␍¹tcyK�X¤Kì7ìÓdMà—­˜.ûg¢Uõüݪ/�åXzU½¦Õ•^–£Õ`°�‰qÒ®ÙNÞŒa•sÄ­½c¿yžÍ¹Ù·{‹4¥␍m9x+¢ÊÙN[¥ðøqÉŒ4␍/ŒY‚f#jå¦aÿB-d˜þ‘Øâ°Ñó`å7MÊoUÄmVb† v
’•J+ÎUb¹B¬¾yù¬æ†œ|Õ2� Ü•$„vè/8Z±!^�¥È™å¢ÔcWJ=0=�m™¬rÓÇ™r{; ^Ue¥VµE«àmv£‘ó*Z¯&u¤¡U,Î…‹5õ�ò‡îÆŽ¸»&¯.„ÉR,ÄÂFæ„ï2v’^hãy=
«ùcY¢àŸé̱\ö–¡åä”<¸g.œ „ùçÍ'ž«¡Bv¯"åòÌGÛíQjL·¶È“ ÃöZ¬±Œ–@ˆ•™?#3žã±ãs¨Of7:Š”¬d?ƒ°
ÐîÀÊ,�9Íž†1†`zÖsù<Ê�µw‰yûƒ æÂ%ƒ,86cÌÈj»U˜±«4ŒÐœiN'Ö~°ì7—␍ ½W²Ý î^U­F+k¿ŠÆ£Ä6¡ÙÛš‰‰Øš3rNµuÁª‹öU'k¢5kHösM�ÍÄbF =º6sÑÖîþµM4û`p„0šÅ4OkÖž6üyÙ+ß¹•€kUjÒþ ©˜ì–¥v|NöXÞŠöb(|*Ò"Láh$„×HÖ¢6CŽ“ºÅ‹êùW!L¢{»ªÕçÌš‹´•ó“>
Úƒpö³”®bl3¤ HÃÓ<tÉ•4õµ‘1œàAkËv êF®¯ð@¹UÅçíˆÅÛ'YÙÖf±úÀ|Z,Tp_¡ñú␍ŸTVOþh!aæV)%C�É�K
®]¡¡›šìÖGï-܈IɃ!uæ —TZOÇÖŠ²ÀI××ÔÿB �J‚4Fºâ a(¬ö°^¼;ˆeLo/QC‰—e~k8WÐM,<Œ¯Ki_\¬iE�=OPnrÛ|Ê÷
[`Уx+ýA¬%GZOÕt�”$Ó¨A{²%[4d;/ÅØ&Ü/MÂ/¥K~)¸–í�1Pn襪Z{„]óÄ€B:¨␍„�]‡ú"\TòåÚ1}ôè’GdãÁŒŸ¦.Ëq<O¨Ô‰¥³¬³QYß“wÒÙ]86P!¬äµH¸)±‹/2ÆÉ„.«®c3´_|Ãc]ú+uâCaYúD␍†–²ìD³uÇ9ÁŒHmJ}:ÆK› ƒ9@Ðô(ËZ•flSŽ…†ëHö‡DnéÃHȨԶTq“}1f²Gúùžð Ü®%G 4]¡Óœª^ ’äþëz÷p¥ß»¼¨cᮉè×Iù␍œÜÆVJT ûKÐÀLƒ‡€]­éä?GÇ ŒÉ;æÂ$ǃ†Ÿ¸²‹�ª“ì_Ѿ )º¢�ä©�bî]¿\¸ìom×Õê¥d3¶Õ¿VYÝ3ƒô“9ÊŸa%X÷èfÅtÍ¢a
¸aCŠö…"‘Ï™ª<Ümââ�“’º_É␍¦;/ÒÖü.] ñ†ö“×
ؘ®uÎ\dz«‘^Ðć\apcK.ºˆÞ®Ç%ÀÝ”&õza7ÈXHgÂ.ë7dû/Z0õÝôÔ_(—»@ÏVÛxCÎò]Jò�ZËò{&UÃûOYòþnai_F=ÉAäZ�àøŠ«®VàÆcÜ*%´;àAS×¥¥ÈŃW8’\«ö,)Ýíy¹M™õdqë?E²Â¦ô<œ´™DÏÒ�Ì6„Lg␍M¬ “Ñj¦øÑ„ÏÇÇÛÿÑ·ºo
endstream
endobj
126 0 obj
<< /Type /Page /Contents 127 0 R /Resources 125 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 129 0 R >>
endobj
129 0 obj
[ 124 0 R ]
endobj endobj
124 0 obj 124 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >> << /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj endobj
132 0 obj 128 0 obj
<< /D [ 126 0 R /XYZ 69.866 813.476 null ] >>
endobj
125 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
133 0 obj
<< /Filter /FlateDecode /Length 847 >> << /Filter /FlateDecode /Length 847 >>
stream stream
xÚ¥VÍnÛ0 ¾û)ôQõGI‰]èm[nEOÖËzØ.{ýQ"eK޳v xÚ¥VÍnÛ0 ¾û)ôQõGI‰]èm[nEOÖËzØ.{ýQ"eK޳v
@@ -445,31 +458,31 @@ xڥV
Ø•aw¬«îšÛ¹KesÓS!Û¼GÐè ‰ô’‹ä�cÝ>´=Q?„¥ž¥�Ï›³×IþžY¦—Þ~0C�®ÑK}•æVEóæì) hdÙ‰µãqaíÅæ¿â²¾ë·lhFÌõ {¦M#«H4ÚB�¤q#¿NÙÎ/_P ­ŽÂ:‰×•48ƒ3Ú'a¿AG鬹6kæñ÷æoÝ—T9 Ø•aw¬«îšÛ¹KesÓS!Û¼GÐè ‰ô’‹ä�cÝ>´=Q?„¥ž¥�Ï›³×IþžY¦—Þ~0C�®ÑK}•æVEóæì) hdÙ‰µãqaíÅæ¿â²¾ë·lhFÌõ {¦M#«H4ÚB�¤q#¿NÙÎ/_P ­ŽÂ:‰×•48ƒ3Ú'a¿AG鬹6kæñ÷æoÝ—T9
endstream endstream
endobj endobj
131 0 obj 132 0 obj
<< /Type /Page /Contents 132 0 R /Resources 130 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 89 0 R /Annots 133 0 R >> << /Type /Page /Contents 133 0 R /Resources 131 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 90 0 R /Annots 134 0 R >>
endobj
133 0 obj
[ 129 0 R ]
endobj
129 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
91 0 obj
<< /D [ 131 0 R /XYZ 69.866 813.476 null ] >>
endobj
130 0 obj
<< /Font << /F27 88 0 R /F39 87 0 R >> /ProcSet [ /PDF /Text ] >>
endobj endobj
134 0 obj 134 0 obj
[ 130 0 R ]
endobj
130 0 obj
<< /Type /Annot /Subtype /Link /Border[0 0 0]/H/I/C[1 0 0] /Rect [ 517.436 29.433 525.406 43.381 ]/A << /S /GoTo /D (page.8) >> >>
endobj
92 0 obj
<< /D [ 132 0 R /XYZ 69.866 813.476 null ] >>
endobj
131 0 obj
<< /Font << /F27 89 0 R /F39 88 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
135 0 obj
[ 1 [ 583 ] 3 [ 572 488 ] 6 [ 511 307 508 ] 11 [ 565 264 ] 14 [ 519 264 848 565 550 572 ] 21 [ 364 ] 23 [ 320 ] 30 [ 623 ] 34 [ 565 ] 42 [ 784 ] 44 [ 679 588 ] 48 [ 577 557 ] 56 [ 600 ] 60 [ 600 ] 62 [ 600 ] 67 [ 600 ] 90 [ 273 ] 92 [ 293 ] 112 [ 328 328 ] ] [ 1 [ 583 ] 3 [ 572 488 ] 6 [ 511 307 508 ] 11 [ 565 264 ] 14 [ 519 264 848 565 550 572 ] 21 [ 364 ] 23 [ 320 ] 30 [ 623 ] 34 [ 565 ] 42 [ 784 ] 44 [ 679 588 ] 48 [ 577 557 ] 56 [ 600 ] 60 [ 600 ] 62 [ 600 ] 67 [ 600 ] 90 [ 273 ] 92 [ 293 ] 112 [ 328 328 ] ]
endobj endobj
136 0 obj 137 0 obj
<< /Filter /FlateDecode /Length 23 >> << /Filter /FlateDecode /Length 23 >>
stream stream
xÚ‹žý•IAç@—ƒÃ*_| xÚ‹žý•IAç@—ƒÃ*_|
endstream endstream
endobj endobj
137 0 obj 138 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2729 >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2729 >>
stream stream
xÚ¥W PS×¾×pŽ€iÒKK®æFPkT\ª¯qC+U±µ¸` ‚ ›‘H#Z«,¢.ˆ¨àV±E­¢Å¥Ê�E¬µO­ÖÚVkç¿ôÀô�¸¼÷úf:Ó™wgnæäžsþÿ»ßÿý_rXÆÎŽaYV<}n@À°ÀI³fë´IÁa±ñ^� aº¨pÛì\Ñ]ôÈ‘*Å~ŒØŸ•RFz‰*‰8ÀNy»ÄûðÒ^ÄY*©“Ú31÷³+úý)êÏ0ìB'Ûg©3`©;IWHÚJ14gÿ„’ãç.^mùËÜ£‡��¯U…è­ÓyªÔɪ°ØdUœ!,<!*<L§Òh#¢b£¢ô±*}„*!R«2ê␍šxOU„^¯‹3èéðX�**6<,.L­ÓÚVi␍½ax€>.Ùµ42A5j¤÷xM­ xÚ¥W PS×¾×pŽ€iÒKK®æFPkT\ª¯qC+U±µ¸` ‚ ›‘H#Z«,¢.ˆ¨àV±E­¢Å¥Ê�E¬µO­ÖÚVkç¿ôÀô�¸¼÷úf:Ó™wgnæäžsþÿ»ßÿý_rXÆÎŽaYV<}n@À°ÀI³fë´IÁa±ñ^� aº¨pÛì\Ñ]ôÈ‘*Å~ŒØŸ•RFz‰*‰8ÀNy»ÄûðÒ^ÄY*©“Ú31÷³+úý)êÏ0ìB'Ûg©3`©;IWHÚJ14gÿ„’ãç.^mùËÜ£‡��¯U…è­ÓyªÔɪ°ØdUœ!,<!*<L§Òh#¢b£¢ô±*}„*!R«2ê␍šxOU„^¯‹3èéðX�**6<,.L­ÓÚVi␍½ax€>.Ùµ42A5j¤÷xM­
@@ -482,10 +495,10 @@ B*
(ˆ:T§è¼xòAÇÙeó+¿ªA—T«x2|Ìp‚¼ÏÍz”$\[…ZVVDÌVŒŸHýfímT+g…¢1'îiŸð2#e[ÙGâv‰ø˜"¡¼wçâ•¢0qîÁ¨ƒsF²RS“ØÖÄÖwÂ-Še3ÅñŠ!<‚~$.$b)&ÑÄãâPp¶4q¾šºÊ6Tl*§êEÐoïÅ?òmGÞóÔg/[Cåéä5”—•æXÅKͬzW"&[9òƒ|8Þo¿ŽŠ'·ZÓÉ3ßX¬´êPû�êm|gI�:m]‚9CÈY<eìT²•h^OöFât,+¥Ü÷¯3Œl…˜+=\Ë ?zh“´'~$f ※ût'¦M@Ѐõ¤?‚>¢Èåâ·»‡!’õ|QÔZYpø޶KÄKb&ý&·9äNX2„8´{åTYÓgÊ\³†Jå5âL& tŒÁ÷>55„(HËù„~Þžg)°lnÕ^øŽo¯^äc2¯¤ÈÇ¥ÏCÛö¼ 8öH%·M\uAÙÞM‚e‹¥ðSÅž¤‚e¡+õqk•æ sÚjÅò++”2RE—Ã!à\ªARyñÿ±M>ûqÄ߉n!ýçØÖzI+,àÈ jbÞ_y␍ϸ½ú€LQa+¨²èÛ½Àÿ^ðê·‰˜¸;ò:YL,Š—ûA]/�½¢ƒBÁ~n‹r:þzl%éCdŠe¶ò+SÞŠ#ü`úçÕ�n­ÜÁ^‡Å@#ØŽ}E^:˜˜‘¶ƒ�ÙÅ”'¢M0 |óÊó0‰Ìwnê­Œtî©CŽ´O½c}Ÿú�RéÅO¶K_[¸9,ÍË (ˆ:T§è¼xòAÇÙeó+¿ªA—T«x2|Ìp‚¼ÏÍz”$\[…ZVVDÌVŒŸHýfímT+g…¢1'îiŸð2#e[ÙGâv‰ø˜"¡¼wçâ•¢0qîÁ¨ƒsF²RS“ØÖÄÖwÂ-Še3ÅñŠ!<‚~$.$b)&ÑÄãâPp¶4q¾šºÊ6Tl*§êEÐoïÅ?òmGÞóÔg/[Cåéä5”—•æXÅKͬzW"&[9òƒ|8Þo¿ŽŠ'·ZÓÉ3ßX¬´êPû�êm|gI�:m]‚9CÈY<eìT²•h^OöFât,+¥Ü÷¯3Œl…˜+=\Ë ?zh“´'~$f ※ût'¦M@Ѐõ¤?‚>¢Èåâ·»‡!’õ|QÔZYpø޶KÄKb&ý&·9äNX2„8´{åTYÓgÊ\³†Jå5âL& tŒÁ÷>55„(HËù„~Þžg)°lnÕ^øŽo¯^äc2¯¤ÈÇ¥ÏCÛö¼ 8öH%·M\uAÙÞM‚e‹¥ðSÅž¤‚e¡+õqk•æ sÚjÅò++”2RE—Ã!à\ªARyñÿ±M>ûqÄ߉n!ýçØÖzI+,àÈ jbÞ_y␍ϸ½ú€LQa+¨²èÛ½Àÿ^ðê·‰˜¸;ò:YL,Š—ûA]/�½¢ƒBÁ~n‹r:þzl%éCdŠe¶ò+SÞŠ#ü`úçÕ�n­ÜÁ^‡Å@#ØŽ}E^:˜˜‘¶ƒ�ÙÅ”'¢M0 |óÊó0‰Ìwnê­Œtî©CŽ´O½c}Ÿú�RéÅO¶K_[¸9,ÍË
endstream endstream
endobj endobj
135 0 obj 136 0 obj
<< /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 137 0 R /CIDSet 136 0 R >> << /Type /FontDescriptor /FontName /SSHRCC+IBMPlexSans-Italic /Flags 4 /FontBBox [ -245 -245 1180 1120 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle -12 /StemV 91 /XHeight 516 /FontFile3 138 0 R /CIDSet 137 0 R >>
endobj endobj
138 0 obj 139 0 obj
<< /Filter /FlateDecode /Length 496 >> << /Filter /FlateDecode /Length 496 >>
stream stream
xÚ…“Ñ‹â0ÆßûWä÷¡kÚ´ÛÝE­ÊõawÅÊq¯5½‚¦%­pþ÷—ä«»pœ\ÁÂÏù&óÍd:ú¶)ùjöŠGζÔ5#)Ìߪ6�–�¼œI÷ïDŠÔ-Ú½²�idI=çŲÐuÿ`Å…–§‹¢›êߢký%quØxG?òü¾Íó°X¼mNô»¬t}uªeÈ]Þ®îOVÿ?)³qv7ÎüQ?Ètu£_YôÈ9·¬´Ê›³ë³ &ƒW6¹¹?ÔZ™Á0Û;ûA3UË~ ÿ–g;0—\^»žÎ…>4ÁtÊ&[ìzsõ΂ɇQdj}dã».­ª¼´í‰œ#ƃٌ):ØÃí¬Þ«3±‰B¡l´î¯÷§ñ•µ»¶ÄbÏLËFQ×V’L¥�Lí øŒM×ö™¤Õ_q1¤íòWe¼<²rΟ¢™'ŠA H€ž@)(=�žAhzå Ð xÚ…“Ñ‹â0ÆßûWä÷¡kÚ´ÛÝE­ÊõawÅÊq¯5½‚¦%­pþ÷—ä«»pœ\ÁÂÏù&óÍd:ú¶)ùjöŠGζÔ5#)Ìߪ6�–�¼œI÷ïDŠÔ-Ú½²�idI=çŲÐuÿ`Å…–§‹¢›êߢký%quØxG?òü¾Íó°X¼mNô»¬t}uªeÈ]Þ®îOVÿ?)³qv7ÎüQ?Ètu£_YôÈ9·¬´Ê›³ë³ &ƒW6¹¹?ÔZ™Á0Û;ûA3UË~ ÿ–g;0—\^»žÎ…>4ÁtÊ&[ìzsõ΂ɇQdj}dã».­ª¼´í‰œ#ƃٌ):ØÃí¬Þ«3±‰B¡l´î¯÷§ñ•µ»¶ÄbÏLËFQ×V’L¥�Lí øŒM×ö™¤Õ_q1¤íòWe¼<²rΟ¢™'ŠA H€ž@)(=�žAhzå Ð
@@ -493,84 +506,76 @@ xڅ
ƒÖ øÌ8(ÁugYB½ýÅ8%Añ„z1|&¨/=¥¨ à,Å$œ¥¨ л”8EÀ‹@ueדHQ=Fé�7÷”¡^Œ f¨¿ø+îÎ]®ÛÕÏm’cì*ù…öÛâö¤Öô¹ómÓº,ÿóËíóuô±þ8�+ ƒÖ øÌ8(ÁugYB½ýÅ8%Añ„z1|&¨/=¥¨ à,Å$œ¥¨ л”8EÀ‹@ueדHQ=Fé�7÷”¡^Œ f¨¿ø+îÎ]®ÛÕÏm’cì*ù…öÛâö¤Öô¹ómÓº,ÿóËíóuô±þ8�+
endstream endstream
endobj endobj
115 0 obj 116 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SSHRCC+IBMPlexSans-Italic /DescendantFonts [ 139 0 R ] /ToUnicode 138 0 R >> << /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SSHRCC+IBMPlexSans-Italic /DescendantFonts [ 140 0 R ] /ToUnicode 139 0 R >>
endobj
139 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 135 0 R /W 134 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj endobj
140 0 obj 140 0 obj
[ 1 [ 534 ] 3 [ 580 503 580 549 324 528 ] 11 [ 568 250 250 527 272 873 568 560 580 580 367 487 351 568 492 768 507 499 464 641 653 621 671 583 559 695 707 400 510 634 501 812 707 708 606 708 640 581 572 678 609 891 613 593 580 600 ] 59 [ 600 600 600 600 600 600 600 600 600 ] 80 [ 694 891 399 ] 86 [ 588 780 ] 89 [ 565 272 ] 92 [ 292 272 292 ] 101 [ 474 ] 103 [ 475 ] 112 [ 335 335 ] 118 [ 383 ] 122 [ 927 ] 142 [ 600 ] 157 [ 396 ] 194 [ 567 ] 200 [ 534 ] 314 [ 560 ] 344 [ 640 ] 355 [ 568 ] 476 [ 708 ] 515 [ 678 ] ] << /Type /Font /Subtype /CIDFontType0 /BaseFont /SSHRCC+IBMPlexSans-Italic /FontDescriptor 136 0 R /W 135 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
142 0 obj
<< /Filter /FlateDecode /Length 44 >>
stream
xÚ‹Ÿÿæ`xœÇÊpH��‰�…��7 1p€is /
endstream
endobj
143 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5351 >>
stream
xÚ­Y \SWº¿1¹÷¢†¨¹ÞTˆÞ±¸�â
²²U«\pa,Š`«†vêÒçÔjë‘Zµu¦* Õº#
Å\µ
b©¶Öê|7ý¼w:¯óës^_ 7œ{¾ïüÏÿÛîù"£
J&“qÓ¦…Î �óx=$"2#%7:aÙrÇðTi ä¶Q)Hý)i€L””$v“D¹¤S`¥¼R©À||¿¿âÖÏ?Ñ(J6ª—ã½­�”¯t#Ÿ´…ÊWV¥;åDÑ,-Ø{à«’_¯5väø¸]BùËÈðÔ%®Ô%,[©ËÌJHZ‘ž”�¡KNIM_–¾"ݰLgHÕ­HKÑå²’—{êR␍†ŒÌ,LX–¬K_–”�™�˜‘☕’•eÈjÈ\™•¾8m…n̨ÑtdM]¨!+s¤.8#C×yc¹.+eyJVvJòHÇ]$�“Þ�µ4!#8Ù�˜òzrʲé+VRä%£ä”‚¢)†b)'ª'¥¤œ)Õ‹êMõ¡ÔGõ¥xJC½Bõ£\(WJKõ§P%R:j åF␍¢^¥Ü©ÁÔj(5ŒNyPžÔj$åE�¢FSc¨±Ô8j<åMùP(*€šHRAÔ$*˜
¡B©Hj&EÅRqÔj.OͧP)Ôb*“z“ʦޢ6QŸRT•ÌO6[–$»ÝM.'pÉk65»ùô*µ•ú^6Vö¡ÌÚ­g·¹R._'/‘7(F+ÞP¡{Ñiô‡ôcF`☵L=Û›}�Íd÷;õqZà´Ëé¼ÓýîáÝ3ºoì^Öýq¶GX�7{Tötê¹¢g¹Ò]¢|K¹_‰Î>ΩΛœ›TÝU³T_«žôšÖ«¸WMï˜Þ'úĨjõuˆ:V½J}Ný7n*WØ·{ßI}WöÝÊ�â£ø·øMÞ+ô+›ú±ý
\z¡ëÆJÛÐJYQ%­”i$OÛn»'SÙ‘ÌÛ†ÂÑŽ¡¬*ÔXmßJ˜p]}Â
ïZ¸UÒS$bA|{�Œ˜?Ë œ^@—ì=ºÿ’¶ñHRˆ8Û�Åáá1ÃE®ÔãÊ �ÕU_þLØÌp«æmÙ³ø¢–+Å·ÎñIûΊ»Ù3G÷Þžy3±Q‰‚êMc]r¶_i9ê& 5s«š4ë‡ W:­°ô�Z-ð·Ÿ‚/øú=E>,6cj¦¸ªü‰j®Ò;ø�‡¯‰0‹=_y¬¾õ\„—0–õŠŽ-¨^5ÖJnµ²’f9ì7ò�®�6‹3¿¢#␍ñSµžs¯¶Š÷ØÖÒ«í—OdÄî® k—êϸkÑÝÛ␍}Ñ·É␍ÜÅ‚w¦ŠtŒÕXl¹þXµž¹š[¦EÞ�H�½£ïm7àkK‹®
v"D—åüèèKmd©¶s—Zë+¢œÅN™‘"¨¢Œ&iÈ5Y‰ŒEFþ¡ù´©XŒ:JGeÎycªÖ#êZ‹¸Gb³0Øû
¨óˆpBÛ@Ð ÒREc…~”˜‡‡?b[«ªï
*<¸;[Š2ÁH“ h‹h�Eй å0’\&2A©sÃÄA>áVV5Ó®‚gCÛȽb4©�7Ä[ƒ®ÃJëÛ␍Ü�“¤Q|Ó¬2ì+`7&þ�� ‹ì8°UÜPðéû;´\{ô¸Yÿ´â§R‹ÄâG¦@vÑ[Ë’ÄwYîI^¾aÉG©ZìâúeTÕ2q=Ëý˜·&5+Î5mÇŠ}«…<–{:iöꌥѮ~Õóa<øYKŸ “ÖòÑq†1B0ã—qèdQÁçÅ"Lb,_d&Š8Êx¢{ò¢¢q/[s¼¨¦æø“;y¹¨Rv?7�ŒøÏz‹œ¸üÌT_*ºróH¼—€& XYè3¥n`à”™YB§û¨P"bù90ð‰úÆ£1î1ô±õá|ú…˜Ï~±êÓôôU+3…5lfÁÊ÷ ©£o‘ò;1ÞdsýÉM¨á}¢›KkEé�?{œyîñKt©ºÞàÀÛ v:sóÂOè‡ ¦ÂUˆ†Eôpã耱ôz)ݱèÝ�&Û˜N X«1ÙÆøw¸³óö§U*ØÕI€±3~Ö8~¹Ûà«�ŸÙêÊ¢Ë7>ç€ü{¡èò­ƒóFýƒ’éuncçÌ�ÎÞğˆÂÉZÿÅ‹bWˆëIìYýíùìsj»4¯·p7Ÿ«}9µ w²Krþ‹àGüyÚŸÁ˜àépdÁ³Ó‘Û‚ Ö*ÆëËA&šI~©*on®ŠE™Ì¢L;ž¤œœ␍‘u’î9
’6a<o�C2/M wÛêÏBº=þé�{ø«ñOº»‚û¶4֡ܶÈ߇(yøËøþEp‹2ÿ2°ñ�„·)–NkÆž°¥e‡š…Kã?îJq];ስ§±FZ#;2oÊá=BR�úªn-<ƒÌ1i =í?Óv�q-=XX]}"ã�Ï…òÓtY¬ Z·€9îµÉí«Å£kéšw>ËHr�Mʘ<uÞ¾3IBÔ|ZêrR»V…o4IJ’␍¤Lcr“”@›�†A¡lZž1]˜Þ„ÌœN?JéLuù9jK§±s¥!‡Ç£�urDÆôÀÄ’6Lþhe±OMè³æ¯JJw‘<§B¦Ó£eŸJñr8©�©R>ÈxáÖh £×1Ñ6¶Òþ ¼nϧUàÝ5»Ð+‡‰š‡Lü錦?`Nâè:üý=ˆ†IL4.�Ålú}fdO�åt3—Oï™Ù³ÈÈDF5´KÛn)E¾[Ó€;, 71àŠ èoÔÃN˜
›è1 öÇYô_�Yô¦áVZ¥ëŠdÙ" …àË|ÞåVì␍?9ðÆØ‹“±í~”¹±ûÓKŸ‹ð¶­7@vìÖEl±ä&—B5&¬d¡LÒЕö>á¤Pâ){/z
«"ùÍ’wŽìs©M.ý]ƒlzZÇà†=ÝĘ ‘†ƒŒ éQPÌãZzÀz3£*Ùh†Mu�kV?°BYëë­ÜÓ01OnޜƟ³IÜÂrÒ©�®úÉdaµÈ
x„±Ú{ð�ÄpOëN¤„‹éløÂ”P“©D1 'UI‹ ÃIi¯ è
Œ␍ÒõÙ…V9´ïsjªztBœrŒ2èçŒÑ¢2ì. baPm;(›/ćîjŽÒúŸC'-†¹a?\�«Ÿ¾ÂDÕÕ�f©Ä,#ˆ¿o•¸k8ÁjX�äŠ!"®a¬
^*�á,°·ýQ‘aQðó'øU+È®×™a�C‡\úDcÆvX␍fl€5Ðn¶vèYU<áôú‹I®�ëpÎŒçÈŒ&³}œcF‹±!!›a_ƒúB«4 ‘”ìcš[€˜ #_#ÉíU¿9ÃÑÅ·␍hë}èuïêüà"áú1úþŸKØG‹“±ò¸
×@Oä èYméÕâ&Fõ¸ @UŽc§ÏÐ/4V›Þ«ðTùtè­Ñ3â"‰ÄE*Hì�!0hLäŠG&,d¯Ϊ<óÌ2¸o•?²éù`xÏ>‰“°04lñ±Ê5BÐJÚsçµi@i¡Gcô¥í¬jïîl›>§“œÍšŸ,”A>”ѯ2¸7␍AgzƒÄv"XÍ|Ýh•ÛF³MÑ%°Œ°yƦðq‰Ï5J‰�ÄR�RÓfæ"v<þpþ"t§7Û›mz¤œoW’ ÀxII£¢sû]²`k”KÛ5mz_û­␍ŒxáÇR =¼Cß(ÝÚÄXÑ‹VýøÂ¿¤QÄÅþF\l
ñŽk␍’+N!?NÈáÂ2¹Â±A�ÎÞ­¤,€1LS+8ƒsÓht"~â=�ÕFb�³fØÜéke­�^pbI!2Ý„^Ð+ü&ö±°CÏXm
b™ê¯OãØiÉ‹‰ÛÇ2ªq‚鎹 [`l+at¯kb`Äîï 7¤»þ
 áGTÃøUB¿�dË' Ž„þÿ{€€-¯û%X(çÁ‡,§ÛUôýÝ¥×t.¤U‚¸•‘œ°™ìé—ÐUYF³Tk–]¾åwäpŒÐ9¼µúþY‰ý Ũ|zì®Eû«]*¾j¹]¾$ö°pùmŽ >â¦Å#¦`o�)¸eâù5t[ö¡%¯»úÇÄ␍ñ›yðê\!"Ž:÷Í|PhUéÄÀ
♈הþÌö¿CV‡‚pɪêŒ␍¶^9²{V¸k•ß#ŽkÅâÂKž }M;,¤Q>ö0]…coì½È.‚ƪ6uyÍ.©š¸�Œ$␍Žc³O°€xW  OéÑ ¬"©Q‡ŸÏ·µÉáKÍx\M*ÈÌÜzÓ˜L4Œg°eæ“´>ò½¡…ö`ÆbËTÜN*ÄLØ>‰ŒŒa Сñ£.…{¤Kò=šïHþ‡SD)§Èé ß‚ŸaI½ ûB"�¡PHf ¿£Ukºda ‰äV␍±°^òqÌÕc‹£¤è;W&ìGã>VõfWüRÚ,—Žšy»7#␍•NÒ7ìKƒ%5kb?II›YÕZc½T_/«¼çïÉ¡œXÓ¿\ rCÀýÑ?]0sëÑüÅzÊ}Z´Ç¿ÈŽ{ Vp$Pí"òФZÛïð%1Ý ðSl
|…Å .�…0˜@d¿ˆqÁŒc¢t¡A&y·È¥ý¢œ�H˜H·X®ÜÊzN´’r©�ðõÍ–ÑÕ;�”5k›�ÇŠFvÊœð©3‚+•/-pì¢vÖÃêµ4¤eÒ=îDHƒù�FöQY¼¯øGÖ7.~˜w⡊ÅÂôyôŒã—"ÁY níw@ù4ôܤñC–{lÞYùu«+Ð#.“œ«ÐÏŒN.Í£Ë÷?P§5ŸM␍ßc§Ì›;‚l�Ó“dÌ‘I=-riž<6␍–ŒØ‡Å“ö·é`hÅì:›3¿Ùˆf:Ñ‘è›i–Id¯ëۃɲ÷­}‡.ÚWôÅmûÙX/ñÖkv¬§OÚ ˜Ç*#ÁI CîµCÐŽ½�Ê�Ô¥ñKÄ÷˜]°“†‹ÅõPQ ;rd×îÂÉ»røšØO×ö- €~ãï Ò{΢¨%⺃÷�û0 d.Ž\ªÁè�I®è×âîÂÔó^1åߊ³ß~]ÞÖöuìá�수X¯Î­Ú˜:Ùõ9|ª�›‚6Ûà‚ ¹ŽÅ] ݉a� Œõê -“ïÂ[¸öNG{‡<'´GUø|NTsëÿRrÑâúÌ÷:Š(ú¾6п$²>‹¬Ä=ñY5ËÓÙ;ã`¬P¯}êrBÿæÜ©‡ÏͲـèùÃøVÁ=ÿU­XÀÖ–|u÷nIr˜°Š␍‹O×e“µPQÿœ i¿¤çÁoÌ�èN¬#Ȇû5OeÓ™ãç‹…Íï§ ÷„Q8 e.@1 ¨'„y!dµî¥TÜ3šR³¡¬ö]S×ÝÉýbnrÙR•£ö÷ÏNì(ÛzÁ¥¶û3"߉̙�£ab¿{¥uem®-¯U␍EYhðˆˆÂ¸Ós®$49,f�«îÆx ¥ÿÒŃ{.ä üÙ1ĽgM_0=]H:™yäˆë6¶üèÑóD(ÇÞÈûÄœª'Û¿uºøë}Ì �— Óæ¦hI®Bç*à«¡ªÄJÙÕkÐÝ
É×axµÜæ?ƒÇ·œIJ› Ì/²0úÁ r›DBÜ Ã„ù,Ê—¼‘ºr{™ç_›¼ž=¾2í€^;Ò/Œ�4ìv؃ªCÅå%'ŽÙ[ŠÒ.kA}šTPöáT�a$æ¡NÂ?áFðDoxK„U ®ƒ­|Ø’“×E {½ødmmqòlU¬>=-œœM’`{³ì:l—ÃØÎ7ãöñ¬j%ì¼AV¾\*…�ü␍{~yJé´Í–ÛV9;f“ÁDô5ÉöKÈ¥"ôåMöÈ£ Þ5/k•úùc;÷ §Þ¹{r—§“SoúÎåÇȺ×È,8¼º TÜnüÒ©Ü"ÉKñR5wßõóÅ ;O«ÙÌm9_¬òâ—§%%8]cΗ0íº�=H¤+‘_®üÛä¸Epðå0úÙ V[@õ␍ÑYmïþ&�»a¾æ7a~åc¢¾ö…ú~àúïU¿üÌËî4ÈïÀUã1ð{áƒÔwÁ0t®Í,èjÁä?AŒû¸ À×bN’Òf"1à~—Lù�ZôC�ëxuÁ8)¢î{k#B\nËÍ‘m…fùmôàaûϽèP·ÿ½)õfcYn6\+K/ƒ/ÊÈAüjLª_Ç;·¸ò5R.©õ�Œ=—Ôñ#p�|Þ}E®¨úF™Ž
ǾØ÷|øc¡L1Ópä†XÉÞØ{äÂ…½IA 6È�4S�þ`W½ûä·‹©ÖžÜ�ÃýK<¤@\␍ÆAJ¦`ÜdˆÃâû©äÉ'Ov6Èa.èù–ⓎìÅ%'ÇŒY² R0°‘Å ZUrWgÎùI¸I␍´â�£ožwèRìQä �Ç~Õ¥ãB#D¿¬)õËVmëõ ëÊG÷,ÜŠ¼ÿOÃöhÞ?wlWä=oÙÍ{YÏ–ëI…I°öŠf÷vÁ2y¬Á ôš—ÜyÞ"XKš7¬››¹Úßßâ<GJç~ˆÆš´NcÔ8LñÝÍǷ޽ɭ–l0Œ¿™t|ØçÂÒ�è9Û–í<ãzþôçV�[SRÅ€.à>©dÂÄQ¨ÖÛ8L¶‡}vìì·ßž˜=PXG@½ÿZì(W�+Ks…Â÷hîL…±`Y’kì⌈ØÄÝÇÓ„˜ytìÑs-(®Wý þ£ßª'j‹%‡’máÒÑuÙÿ¯º.\:§Á%Ráï` ëTvë9_þ¡ù‡Ë­Ä ÿ¦³1Š-�?ðÉνâ6vïÛ;ÓÓßÎ5FÖðIn¤ÿýÎóst{¦¾gýŒ`ú«•«ýíÇ Î³®õw,êø:®·¤U@Q”—ã˵³jã6‰Þ·Aà¶ýÛLÛ&íÚÂ
KÜ+þKÙ}£²§¹‡¥gÍ¥²fÛ¥³ô„ÿoç]w›
endstream
endobj endobj
141 0 obj 141 0 obj
<< /Type /FontDescriptor /FontName /KKCYEW+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 143 0 R /CIDSet 142 0 R >> [ 1 [ 534 ] 3 [ 580 503 580 549 324 528 ] 11 [ 568 250 250 527 272 873 568 560 580 580 367 487 351 568 492 768 507 499 464 641 653 621 671 583 559 695 707 400 510 634 501 812 707 708 606 708 640 581 572 678 609 891 613 593 580 600 ] 59 [ 600 600 600 600 600 600 600 600 600 ] 80 [ 694 891 399 ] 86 [ 588 ] 89 [ 565 272 ] 92 [ 292 272 292 ] 101 [ 474 ] 103 [ 475 ] 112 [ 335 335 ] 118 [ 383 ] 122 [ 927 ] 142 [ 600 ] 157 [ 396 ] 194 [ 567 ] 200 [ 534 ] 314 [ 560 ] 344 [ 640 ] 355 [ 568 ] 476 [ 708 ] 515 [ 678 ] ]
endobj endobj
144 0 obj 143 0 obj
<< /Filter /FlateDecode /Length 736 >> << /Filter /FlateDecode /Length 44 >>
stream stream
xÚu•]kâ@†ïó+f/ xÚ‹Ÿÿæ`x”ÇÊpH��‰�…��7 1p€i< .
í…5óeÚ"BM¤ôƒZöãÒ&c7 ‰Äë¿ßdž±…m·`áqÎdÞçŒϾ=-·Eýêú2Ïn_šÜ␍ÒûÕ.:;Ëêü°uUûà\áŠÓêþF<5u¾t­8OÙ¢*Û‹®xQå›CáNU_MÝ[Y}”ôçˆó÷spw—þšý,¦÷O÷g¹ªöƒ¸ßðR¶›®ð¿5¢[Ÿ„ßüÝ5û²®n„¼Œã¸{cVi½í•öÑ0ÄÃSÐuYMÈ&^û¤‘T¢(ó6�ÿŸo»Þô›—Ç}ë¶‹j]Gã±>w‹û¶9ú¬Ñð±)\SVoâüs¼nyyØí6®�"âh2…[wOíúñ°Ú:1ì}E·Z¶Ç/Ä?Ê_Ž;'”gI̼.Ü~·Ê]³ªÞ\4îÔã‰Ï»¿IäªâŸõ«„m¯ëü÷ªñå²+�㑜xÒ�‚ ¤! hY(�FД@Sè
J¡k(ƒn¡4…æPêIÆP…Ô3HAs‡$†pHð“8$øIü$ ~‡?y␍á'o!ü$~ ~¿?‰_‚ŸÄÏ„,ø²(ü Y~†,
?C…Ÿ!‹ÂÏ�EágÈ¢ð3dQø²(ü ½Vøz­ð3ôZágèµÂÏÐk…Ÿ¥×
?‹ŸÂÏâ§ñ³øiü,~?‹ŸÆÏâ§ñ³øiü,~?‹ŸÆÏâ§ñÓ$Ó8h’itH†ƒÉpÐ!šdM2ƒƒ&™ÁA“Ìà IfÙ§ØgÃݒ̲OÑkÛ©þ#!í‰,–;²tÞrGŠ[±Áw‹‘â6m0â¦G–grÞ(œÀS’�‡„œ
‡„^+NOÂéôåŠ'\gþ™Šî¦á»9zÿΧÜÌÌ[IÍ“æ¾7Ò²–ùSäˆ.ν‡ÌpÌ|¥
“ª{³sažõ¯ŸØï£5?4M7WýX÷´Ÿ�eåÞ'ÿ®Þõ»üËÿdœ~¯zzœGs“¸ƒ
endstream endstream
endobj endobj
88 0 obj 144 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /KKCYEW+IBMPlexSans /DescendantFonts [ 145 0 R ] /ToUnicode 144 0 R >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5333 >>
stream
xÚ­Y \SWº¿1¹÷¢†¨¹ÞT½7bqÅdd«V%"¸àÂ*X4ÀV␍íԥϩÕÖѺUgªZ­;¢ .à‚ ¨�PpAm­Õ÷Ýô‹óÞ Øy�_Ÿóúú›¹áÜó}çþßvÏ¥PP2™Œ›4)<fêd�·C""3Rr£.rO�úHnk”‚Ô‹’zË$AIIbI”KzvSÊ+”
ÌÇ�{)nþô#Ý›¢dC»8ß[ºIùJ7òI·^ù¦s AéN¹�E4 6ïÞ÷Mñ¯×1dT\Š>!‹üedxê—è.Ñgf%$-NOJÈÐ'§¤¦/L_œn\¨7¦ê§¥èsŒYÉ‹<õ©FcFf–‘ &,LÖ§/LJÈLHÌHqÎJÉÊ2f␍ 5f.ÉJŸ—¶X?|è°Ñz²¦>Ô˜•9Dœ‘¡o»±HŸ•²(%+;%yˆó®’Þ‰É`ÌZ��œlLLy;9eáâôÅK(ò’QrJAÑC±” Õ™RR®”ŠêBu¥ºQjŠ£ºS<¥¡Þ zP=)-¥£zQ½)�)=Õ‡r£úRoRîT?ª?5€H␍¢<(Oj05„ò¢†RèáÔj$5Šò¦|¨Ñ”?@�¡© j,L…P¡T$5…Š¢b©éÔ *žšEͦR¨yT&õ.•M½G­¥¶RåT¥ÌO6M–$»ÕA.'`É+ŽŠë@>½Im ¾“��}*³uèÜ¡^®”‡ËWÊ‹åõŠaŠw‡è.tý)ý”˜8fSÇveßf3Ù½.Ý\f»lw9çr¯cxÇŒŽk:–v|Ú‰íÖéÝN�]:/î\¦tW†(ßSîU¢«�kªëZ×FUGÕTÕÕ³.»u©îÓõX·µBÝS=X¬ž§Þ¯nâFqæžw÷èžÜÝÄëø1|
_¬yGóô�%o<ë±¢ÇO¨]SaP!+¬€ÃòB�äißáðd*^&óöpøåVjªŽ6ƒoŒ¾¦>fƒ­ÜRé�9° ¾‚]‡DÌšjNΦ‹wÞ{Q×p()DœæÎâ ð˜A"Wâqy2ÈjË‹.})¬c¸¥3×ïšwAÇ•à{gùˆ¤=§Åì©Ã»ï /¼™Ø¨ÄAõ®©69[Н…´u£
›¸¥�«íS†+™XPòN�ø[ÏÁ|ýž#›1!S\•þD5Wé/ø�ɯŠ0•=Wq¤®ål„—0‚õŠŽ&¨Þ4ÕHn5²â&9ì5ñO®ž´‰S¾¡#�ñtž3®´ˆwÙ–’+­—ŽeÄn®î£kN¹ëÐÝÛ␍}Ñ·Ñ␍ÜÅ‚wª
�tŒÐXí¹þX¹Š¹’[¦CÞ�H�½£ï-7àkJ
/Ÿ¶!Äž‹øaÑØRW‘%àTvüä”Ae2Ký¯ÊŠmp�`,4ñ�-'ÍEbÔa:*sú;tQW›Å]{�…~Þ/P@½W�£ï÷½ -P4”†Šyxð3¶¥²êŽ Âý;²¥(3 1Ë€¶Ê�ÖX¥(�›QCÈe ”:#LìëncUc0í
xÖß¿ ¹—MfõÑúx[Ð5Xb{¿žûa¬´%ŠoœZŠÝìÀÄ¿óyAá¾-û6ˆ«7oýx‹Žk̓N7êž—ÿáDj¡XôÄÈÎ}oa’ø!Ë=ËË7Îÿ,U‡CÜB¿Žª\(®b¹òâ–§fÅiÓ¶,Þ³LÈc¹çc§-ËX­õ«š£ÀÏVòB»‚�Ž3‚¿ŒÇ 7ï,Ú,ÂXÆúUf¢ˆã ”'ºÇÍ-¬w³ÕG ««�¾3N0²ãæ’‹*eÇ+Ɉÿ¬²Ê‰ûÀOLÕÅÂË7Å{ h¶‚�…nãkûÎI™’%´¹�
%"–Ÿ}ž©¯?nåžB7{7~ßæ­_‰ùìWK·¦§/]’),g37/Ù'p’^vã­R~› Æ›íÚÿ‘|ЈÞ'¼”¹±¿¤F”ø³‡À•çž¾F—* }áÕN¼m`'17¾… ü‚~Ì`*\�h˜Kb° A¯’Ò�‹ÞYc¶o“€s�}¸ÿKwvæÞ´rAÛÛ0µÅÏrç/w |5ð[UQxéúþW�Ï^º¹æÐP2©ÖmÄôѹÂÇŒÅQ0Nç?onìbq‰=›¿#Ÿ}Em»æUVîÆ+µ¯§–ᎷKÎú9øÀE&„Ö0F{:YðlsäÖ> ˆ5ŠQ†2�‰’_*Ëšš*cQ&³(3ÄŽ"éÇeCd­¤…‚ä‡Ç�Ï[áÀ§ÌkÃݲù³�îˆÿGzàÿ*Aü“îöà¾%�p*·Ïõ÷!Jÿ2¾Üâ§Ì¿ lü#ám¼µÍZ„±glIé�&¡ØšÁøÄÏš±D\ÙJ8"Fílª–TËÎÝ€Ìrøˆ�Ô©®òû›sN!³ELZOOüsÚöSÚ’ýUUÇ2ÞÙ)”�¤K¦ŒÖ¹Lw÷¨In]&^AWðeF’66)cÜ„™{N% Q³hÉKI­:~¾Æ,)I6`�R�ÙMRmFú†z°iy¦tafx#¾d¦·ùQJ[ªËÏQ[ÛŒ�+õ×8=íĨã"2&&ßÀì�6»U‡¾hú¦¸d;És*dÚ<Z¶UŠ—Ãq␍L�òé@Æ 7Dc½’‰†°a°�ögàmG>­ïöÙöX9ŒÑ<fjáOÇ`ý s‡ÕâŸèïèM4Œe¢qQ,fÓ3!{<,¢Ã˜ ¸hRÛÈTÈžJFÆ0ªíÚvH)òšfÜa6½–-Φ2h€m0ÖÒÃì…SéÕ ¾SéÁ LÄ␍´Jßɲ-D
À—7ú¼‹lØ~tâ�q%cÚ/ü0s}ÇÖ‹;ExßÞ• ;vk'¶Hr“K¡3V°P*iè
G·pR(ñ„£ =žU‘| ‰É;G¶Sº/—þ®ÁÕv­gpõKÝȘ!‘†ýŒé¡PÄã
:Áz£*^c�µµ�kQ?°AiËÛ-Üó03ÏnÜ\F�¾V\Ïr҉ϮøQ ²°d<ÄØ�xHb¸çµÇRÂÅt6|NJ¨€IŒT¬€†“ª¥E�ሤ´·ŒaT›MõÒµzÙù9Ü'ÞçÒXùä˜8þd4L®CeØè+þÈBßšVP6��Ý-T¦Ïñ?‹.: sø —='|…‰ª+k,R±EF×"'p—3
p�e° ÉCD\ÎØ^*x©±ÀÞòGAD†EÁÏŸàW-&»^i�åNré �[a%Ô[°–C«ÅøÒÀªâ §×~žá¸g-x–Ìh´8F:g4›ê²á öÔ«Ï·H½HÉ>¢¹ ˆyÁ0ä-’ÜÞô›>{úÞAšÁvºÜ½2+¸P¸v„¾7Ûç"vÓá8ì„<.ÅåÐ9zQSre‹¸–Q=mP™ãÜé ô+�ÍnðÁJ|•>/␍6‚èq‘Dâ"å$ö†˜4æ�Rù3…?q” gU„ùóܳɟØ␍|0|äËO˜6ïHÅr!h í¹íêD tЩ¡:‰Ò&Vµ{G¶Ý�ÓFÎ:Í� H}!Jé7œ‡kû£+½ZbÛ,c¾ƒ´Êm�Å®hXHØ<eWø8 ‚ÄWФÄb©©qs;‚?ž8w:Òë�␍vR Îr(IP`¼¤¤QѶývY°7È¥MšÇvƒ¯ãæjƼðs)�ôÒÐ Ý\ËØÐ‹Výð³IC‰‹ý'q±ñÄ8b¬åH®8žü¸ ‡Ë Ëä
ãÅzºz·�².Ä0�-à
®�ÃPÐ…ø‰÷0tTkˆN[`]›¯•¶´yÁiˆ%…È|º@—ðØMÄ‚—ÆfWðËT}3o¢ÇNLžGÜ>–Qý€£Í·-íÈ Ø
#Z£ƒy}#ƒw<‚®�®ý@㨆QK…06~É–Ï9üÿ␍v[VûK°PƃXF·28*é{;J®ý .¤U‚¸�‘\°Žìé—ÐUY&‹Tc‘]º␍e·åp„Ð9¨¥ºÿY�½
Ĩ|zÄö¹{«´õåß4ß*›{P¸t‚¶ÄrÓaïÁ㱫Þ␍ÜBñÜrú~ö�ùokýcâúûMÙe†G�ýv(tªtb`ñÌÕÄkŠ Ç_ƒ!륂pɪjMõö.9²»6¸c“ß%ŽëÊ✋ž`Cu+̤¡>Ž0{Î␍Ç®Øu®z
R«ZÛî5Û¥*â0‘48’!Ì>ÀÍÄ»a3²ðœÆÀR’UpðÕ|û}9|­yO«Hù„¹ŒîáSú㈆QL6OÆ|’Ö'@¾74ÓÌlž€›H…˜›Æ’‘á :5~Ö®p—tQ¾Kóˆä8Aô‘2p‚œÍð=ø “ÔëÁ�°/ Ò
t?²ð­ZÞ. ëI$·h �…U’�s®›�%Åж2‰`?÷°ªwÛóà×Ò:¹tØÂ;¼i€tœ¾îX,©YGÇq:HZǪV˜ê¤º:YÅ]8wWeÄšþuÐr!7z¢?ú‡`OÌÅÜ:ì þb�es�N†ÝÑG ÙQÔ Îª›ëAšT+Úã¾&¦;F~¼]�o°�Á%±£éÏ0.˜qN”Î×Ë$ïf¹´—@”3 cèfëåë@i¡ó)—º_ßL¡~!]µíPi“®éhl hbÇOŸ0Y ¸RéQÒlç.êa[,«WKý›ÇÞå@„Ô�i`Ÿ”ÆûŠd}ãâz'(Ÿ'LšIO>z1\uàÖz”ÏCÏŽÝ,~ÊrO-Û*δh�|‰ä\…aJtšpq&]¶çè¾Z�åtjˆø;~æŒÁdƒ$˜z›%SŽLêl•K35Ðû©¹ŸdÂn,w¼OC öfWÚ]ùuŽ@ü Ó†ŽDß‹LŠ {]éôØNL–£{ÍtážÂ¯.ëZOÇz‰°^Ób=}Ò~†y¤"\tÐÿn+ô݈[¨ I]?_üˆÙÛh¸àT\å5°%Gvõ¿#‡3Ä~úû¡7ôu•ÞÓçFÍW~r¼o߃� ëéÌ¥Šì�Þ˜¤E¿fwpþ£Ž÷Š){(~Î><Svÿþ™ØÁÂÙÁ1±^m[µ3µ²kõrت�ÍvmqÌÆÙõ@r‹Û_2t†]f0Õ©Ï7�»;îŒkæZÛiÄmòœÐU¨æ×ýµø‚UûÂ÷Š(ú¾ÕÇ¿8².‹¬Ä=óY5ÕS‹ìí‘0B¨S Š>ñ-9¡{öÄãÇggÙl@ô¬A<Tp�GÆS#nfkŠ¿¹s§89LXʆÅ'�l·É–(¯{Å„´W2ðà7üt'ÖÁdÃ=šFƒ²ñÔÑsEº�SÐ{ôPˆ²ž@1 ¨#„y!d™þµTÜ5™S³¡´ö\U×ÞÎýbnpÙR¥³ö÷/�m)Ýp¾gM5öbVG~™3␍‡Á˜wKjKïk›ßª€²ÐàÁq'§ \qhrXL_­þú( ¥ÿâ…ý».äóüéc1Ľ§Nš=)]H:žyè�v#[vøð9"”ãhà}bNÔ‘íß<Ytf�“Éã圴Æñ:’«Ðµø*¨¬±Bvå*t´Aò5T%·ûOæñ}§�ÒÖ¦ˆX˜= /9á�%!î‚aÂ,åóߊH]²©T€so�[Å]’¶Ï âFHx+ìAå�¢²¿‘Ç´õ…i—t >I*¨{pÈ0óÐ ÇâŸp␍x¢7¼'ÂRWÂ>lþñk¢•½Vt¼¦¦(yš€*Ö�žNÎ&I°©Iv␍6Éá6lâ›pÓ(Vµ¶]' +_.•À6þº#?ˆU%¢¯Y¶WúD.¢/ov|BžZðŽ xY=¨äÐËÄÙ¶k9àîËÝ•��»(�pÓ·-:B–¸JfÁ~àÕ� âv@¿×NåæJ^Š×ª¹ó!¨_-yr/M\ÆfnÌùj…�¿(-)Áå*s®dŸåŒv»ŸH;W&"¿\ù·Éqsaÿëaô°+@­¶‚ê[¢³ úØ?üM:wÀ,ÍoÂüÆçD}ÍÏê{€öß«~öþ‰—Ý®—߆+<Æ5`àw>Âu©GÁ0ôÚ&ô5àòï… Æ}d`Œög1'ùg„˜p¿C¦€¼␍ú¡^;ŠE}0ŽAʃ¨ûÎÖ�GÙssd I~ =xØôS:”ÁMïBªºÅTš›␍WKÓKá«Rræ¾R ckÁ×ùÎÍ+ƒ|�”KÊz ãÈ%%û\埞3Cw‘+,ƒîQæ~ý¢Â±;v?þT(UL1º.V°×w:~wR�0™␍2&M¤?8T?‹}ñÛÅT+`Wµ 6_—ý‹<¤@\5ÆAJ¦`Ü8ˆÃâû©ä!'OvVËaøæ¢ãÄÝì…ùLJŸ?;R0²‘E³›Ur{ÎõY¸Y␍´â�=¢o_5ãRQäL�G~Õ�ãCD¿®ÿôË®lË3õ1Û’'wŸ­Üâ¼ÿOoöpÞ?7gç½êÎÎ{]{–ëL…Iœ°v‹aw·Ã2
y¬Ñ š×ÜyÕÿ!X‹›Ö¬ëš¸šßßâ<‡Hgˆ}¦ê´6cT;MñèÆÓ›Þà–IvÈßH::p§°à3zúÆ…ÛNiÏ�Üi¸åÅ• èî‘¢%ŒŠza%±�Ód»ØGN?|xlZa%õñ[±Cµ—ç7ä
ÑÜ©rÓæ…IÚØy±‰;ަ 13éØÃg3¬:P\«ü^üGkTÏÔVk!$ÛÊ¥ÿ¢Á²÷_5X¸tNƒó¥‚ßÁ@ûìæ r¾ô}Ó÷—ZˆþMÇ0b{:¿ï‹m»Å�ìî÷·¥§¿ŸkL¬ñ‹ÜvHÿû�WGèðB}×ö%Áô7WóÛOœgmËïXÔù­[WI§ì×›¢(/çwhS›6Jôzè³7îÝÈ`ÚFiûzV˜ï^þ_ÊŽk”�-�¬�«×+•Õ×+]¥gü˜—mÖ
endstream
endobj
142 0 obj
<< /Type /FontDescriptor /FontName /LLEUTO+IBMPlexSans /Flags 4 /FontBBox [ -260 -245 1241 1119 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 91 /XHeight 516 /FontFile3 144 0 R /CIDSet 143 0 R >>
endobj endobj
145 0 obj 145 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /KKCYEW+IBMPlexSans /FontDescriptor 141 0 R /W 140 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> << /Filter /FlateDecode /Length 732 >>
stream
xÚu•_kâ@Gßó)f
íƒ5ó/i‹Õ(ݶTwÙW›ŒÝ€&’(¬ß~“9c ÛnÁÂqîd~çŽ^/¾=/÷Eýêú:/®­�MîÓïë}tq‘ÕùqçªÃ£s…+Ϋí�xnê|éârºÈUy¸êŠU¾=î\õuÑĽ•ÕGIޏ\¹_ƒ‡‡Ù�ÕÓ`1ùþ¼u–ëªÄý†UyØv…ÿ­Ý‚ø¼ ü柮i˺ºò:Žãî�YULë]¯ÔFÃK ÏA7eU4!›xí“FR‰¢Ì�üÿ|×õ¦ß¼<µ·[T›:�Äð¥[lÍÉg½Š†OMáš²z—ŸãuËËã~¿u}Gã±(ܦ{j×�ÇõΉaï»(ºÕòpúBü£|uÚ;¡<KbæuáÚý:wͺzsѨS�Çb4ïþÆ‘«ŠÖo¶½nòßëÆ—Ë®<Ž9ö¤!HC2PY(…èJ¡ tM¡[(ƒî¡4�æÐÔ“Œ¡
©g�‚æi á�â'qHñ“8¤øIRü$)~òÂOÞCøIüRü$~)~¿?‰Ÿ Yð3dQø²(ü Y~†,
?C…Ÿ!‹ÂÏ�EágÈ¢ð3dQøz­ð3ôZágèµÂÏÐk…Ÿ¡×
?K¯~?…ŸÅOãgñÓøYü4~?�ŸÅOãgñÓøYü4~?�ŸÅOã§I¦qÐ$Ó8è� ’á C24É šdM2ƒƒ&™ÁA“̲O±Ï†»%™eŸ¢×¶7RýG8BÌÑkË­(îÁl-Šû³Á�»M,Ïä„$…xJ’‘:%™"uJw§§át:qà Šn3ÿLE?§áÛ˜¼˧ÜÅÌ÷Tjž4÷Ý�–µÌŸ"ú6÷2Ã1ó•*̦îÍ~°… Ö�¸~F¿ÓüØ4Ý$õƒÜÏÌ~Z–•{Ÿõûzßïò/ÿ#qþ…êéiýjµô
endstream
endobj
89 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LLEUTO+IBMPlexSans /DescendantFonts [ 146 0 R ] /ToUnicode 145 0 R >>
endobj endobj
146 0 obj 146 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LLEUTO+IBMPlexSans /FontDescriptor 142 0 R /W 141 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
147 0 obj
[ 1 [ 569 ] 3 [ 608 517 608 562 361 552 ] 11 [ 596 286 286 577 303 894 596 564 608 608 404 504 383 596 538 841 ] 28 [ 534 518 685 667 651 697 607 585 719 724 432 559 696 530 819 724 714 656 ] 47 [ 674 624 584 694 650 973 ] 55 [ 607 600 ] 59 [ 600 600 600 600 600 600 ] 66 [ 600 600 ] 80 [ 721 ] 82 [ 403 ] 86 [ 588 780 ] 90 [ 310 ] 92 [ 330 310 ] 101 [ 535 ] 103 [ 539 ] 112 [ 338 338 ] 118 [ 460 ] 194 [ 647 ] 200 [ 569 ] 314 [ 564 ] 344 [ 692 ] 355 [ 596 ] 515 [ 694 ] ] [ 1 [ 569 ] 3 [ 608 517 608 562 361 552 ] 11 [ 596 286 286 577 303 894 596 564 608 608 404 504 383 596 538 841 ] 28 [ 534 518 685 667 651 697 607 585 719 724 432 559 696 530 819 724 714 656 ] 47 [ 674 624 584 694 650 973 ] 55 [ 607 600 ] 59 [ 600 600 600 600 600 600 ] 66 [ 600 600 ] 80 [ 721 ] 82 [ 403 ] 86 [ 588 780 ] 90 [ 310 ] 92 [ 330 310 ] 101 [ 535 ] 103 [ 539 ] 112 [ 338 338 ] 118 [ 460 ] 194 [ 647 ] 200 [ 569 ] 314 [ 564 ] 344 [ 692 ] 355 [ 596 ] 515 [ 694 ] ]
endobj endobj
148 0 obj 149 0 obj
<< /Filter /FlateDecode /Length 39 >> << /Filter /FlateDecode /Length 39 >>
stream stream
xÚ‹Ÿÿÿýÿ¿?ço`X¬ÃÊpˆ��70`2E xÚ‹Ÿÿÿýÿ¿?ço`X¬ÃÊpˆ��70`2E
' '
endstream endstream
endobj endobj
149 0 obj 150 0 obj
<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4888 >> << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 4888 >>
stream stream
xÚ�9 TW¶Õ4U´)�¦[é6U␍¸ ;Å€Œ¬j ʾŠì:P“‰ùÎ÷ëG£ƒKFÄ%n ¢¢¢b0¸q4&5.xPÆx‹¹øÿ8?™9Ι8ÝMßzwß xÚ�9 TW¶Õ4U´)�¦[é6U␍¸ ;Å€Œ¬j ʾŠì:P“‰ùÎ÷ëG£ƒKFÄ%n ¢¢¢b0¸q4&5.xPÆx‹¹øÿ8?™9Ι8ÝMßzwß
@@ -597,10 +602,10 @@ ZQG
Íÿ“+ø¢ Íÿ“+ø¢
endstream endstream
endobj endobj
147 0 obj 148 0 obj
<< /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 149 0 R /CIDSet 148 0 R >> << /Type /FontDescriptor /FontName /OANFAB+IBMPlexSans-Bold /Flags 4 /FontBBox [ -307 -275 1332 1150 ] /Ascent 1025 /CapHeight 698 /Descent -275 /ItalicAngle 0 /StemV 103 /XHeight 525 /FontFile3 150 0 R /CIDSet 149 0 R >>
endobj endobj
150 0 obj 151 0 obj
<< /Filter /FlateDecode /Length 690 >> << /Filter /FlateDecode /Length 690 >>
stream stream
xÚ}•]kâPEßó+î<ÚkîWÒ4ðaÚRË0¯6¹vš„$Âøï'¹+¶0LGPØÞsröÚ1Ç«oÏÛÉ"¯ÞÜD߆âŵթÉÜ$ù¾«ƒ««U•�Ž®ì�Ë]~9mÄsSe[׉ëd³Ú”EwÓoÊìpÊÝ¥êßEK÷^”Ÿ%Ãqýê~Nž�éb9Ù,¿?Üïí®l'Ëê�O¡ëµè}õÿ E*¾8þ2?\ÓUù äm†ýë2Oªã@ØÓÑ¥˜^|ï‹2oF«âm0H%ò"ëFå?³cÕм=·�;nÊ}ÌfbúÒ¶]sö®o‚éS“»¦(ßÅõûší©®nð#Â`>¹Û÷—î3zÜ�˜ø›¼?-ºóW9|ö¼žk'”×ÃY•»¶Þe®Ù•ï.˜õ!„s1Kû×<peþ×yli{Ûg¿v�/—}yFrî•F)”Ai”ET„²¨¡îP1j‰ºC%¨{Ô xÚ}•]kâPEßó+î<ÚkîWÒ4ðaÚRË0¯6¹vš„$Âøï'¹+¶0LGPØÞsröÚ1Ç«oÏÛÉ"¯ÞÜD߆âŵթÉÜ$ù¾«ƒ««U•�Ž®ì�Ë]~9mÄsSe[׉ëd³Ú”EwÓoÊìpÊÝ¥êßEK÷^”Ÿ%Ãqýê~Nž�éb9Ù,¿?Üïí®l'Ëê�O¡ëµè}õÿ E*¾8þ2?\ÓUù äm†ýë2Oªã@ØÓÑ¥˜^|ï‹2oF«âm0H%ò"ëFå?³cÕм=·�;nÊ}ÌfbúÒ¶]sö®o‚éS“»¦(ßÅõûší©®nð#Â`>¹Û÷—î3zÜ�˜ø›¼?-ºóW9|ö¼žk'”×ÃY•»¶Þe®Ù•ï.˜õ!„s1Kû×<peþ×yli{Ûg¿v�/—}yFrî•F)”Ai”ET„²¨¡îP1j‰ºC%¨{Ô
@@ -613,23 +618,23 @@ x
" ‘†ÈB¤!²iˆ,D" ‘†ÈB¤qmq­q­™§q¦ÉSãL�Óq¦Çé$¯ÇéøÔL7øÔL78Ó$hp¦IÐR©¨´T*R²CÖjø¹˜÷Šy–< ÚÑ'DŸŠä#K׌ƫÐ�Óq“§ÂYÌ�VÜ•d|¢�'+!·µ÷#5~RÏ!-g+ß+#ˆSïG�`•øõ1î‰a‘ ;ñcoe§¦é—–_œ~3␍;©(ÝÇn­«zèòo¿”/ƒzJƒ?éŸ* " ‘†ÈB¤!²iˆ,D" ‘†ÈB¤qmq­q­™§q¦ÉSãL�Óq¦Çé$¯ÇéøÔL7øÔL78Ó$hp¦IÐR©¨´T*R²CÖjø¹˜÷Šy–< ÚÑ'DŸŠä#K׌ƫÐ�Óq“§ÂYÌ�VÜ•d|¢�'+!·µ÷#5~RÏ!-g+ß+#ˆSïG�`•øõ1î‰a‘ ;ñcoe§¦é—–_œ~3␍;©(ÝÇn­«zèòo¿”/ƒzJƒ?éŸ*
endstream endstream
endobj endobj
87 0 obj 88 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OANFAB+IBMPlexSans-Bold /DescendantFonts [ 151 0 R ] /ToUnicode 150 0 R >> << /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /OANFAB+IBMPlexSans-Bold /DescendantFonts [ 152 0 R ] /ToUnicode 151 0 R >>
endobj
151 0 obj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 147 0 R /W 146 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
89 0 obj
<< /Type /Pages /Count 8 /Kids [ 82 0 R 94 0 R 100 0 R 106 0 R 112 0 R 119 0 R 125 0 R 131 0 R ] >>
endobj endobj
152 0 obj 152 0 obj
<< /Type /Outlines /First 3 0 R /Last 79 0 R /Count 1 >> << /Type /Font /Subtype /CIDFontType0 /BaseFont /OANFAB+IBMPlexSans-Bold /FontDescriptor 148 0 R /W 147 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj endobj
79 0 obj 90 0 obj
<< /Title 80 0 R /A 78 0 R /Parent 44 0 R /Prev 76 0 R >> << /Type /Pages /Count 8 /Kids [ 83 0 R 95 0 R 101 0 R 107 0 R 113 0 R 120 0 R 126 0 R 132 0 R ] >>
endobj
153 0 obj
<< /Type /Outlines /First 3 0 R /Last 80 0 R /Count 1 >>
endobj
80 0 obj
<< /Title 81 0 R /A 78 0 R /Parent 44 0 R /Prev 76 0 R >>
endobj endobj
76 0 obj 76 0 obj
<< /Title 77 0 R /A 74 0 R /Parent 44 0 R /Prev 72 0 R /Next 79 0 R >> << /Title 77 0 R /A 74 0 R /Parent 44 0 R /Prev 72 0 R /Next 80 0 R >>
endobj endobj
72 0 obj 72 0 obj
<< /Title 73 0 R /A 71 0 R /Parent 44 0 R /Prev 47 0 R /Next 76 0 R >> << /Title 73 0 R /A 71 0 R /Parent 44 0 R /Prev 47 0 R /Next 76 0 R >>
@@ -659,7 +664,7 @@ endobj
<< /Title 48 0 R /A 46 0 R /Parent 44 0 R /Next 72 0 R /First 51 0 R /Last 69 0 R /Count -7 >> << /Title 48 0 R /A 46 0 R /Parent 44 0 R /Next 72 0 R /First 51 0 R /Last 69 0 R /Count -7 >>
endobj endobj
44 0 obj 44 0 obj
<< /Title 45 0 R /A 43 0 R /Parent 41 0 R /First 47 0 R /Last 79 0 R /Count -4 >> << /Title 45 0 R /A 43 0 R /Parent 41 0 R /First 47 0 R /Last 80 0 R /Count -4 >>
endobj endobj
41 0 obj 41 0 obj
<< /Title 42 0 R /A 40 0 R /Parent 38 0 R /First 44 0 R /Last 44 0 R /Count -1 >> << /Title 42 0 R /A 40 0 R /Parent 38 0 R /First 44 0 R /Last 44 0 R /Count -1 >>
@@ -698,102 +703,103 @@ endobj
<< /Title 8 0 R /A 5 0 R /Parent 3 0 R /First 10 0 R /Last 10 0 R /Count -1 >> << /Title 8 0 R /A 5 0 R /Parent 3 0 R /First 10 0 R /Last 10 0 R /Count -1 >>
endobj endobj
3 0 obj 3 0 obj
<< /Title 4 0 R /A 1 0 R /Parent 152 0 R /First 7 0 R /Last 7 0 R /Count -1 >> << /Title 4 0 R /A 1 0 R /Parent 153 0 R /First 7 0 R /Last 7 0 R /Count -1 >>
endobj
153 0 obj
<< /Names [ (Doc-Start) 2 0 R (none.1) 75 0 R (page.1) 86 0 R (page.2) 96 0 R (page.3) 102 0 R (page.4) 108 0 R (page.5) 114 0 R (page.6) 121 0 R (page.7) 127 0 R (page.8) 91 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >>
endobj endobj
154 0 obj 154 0 obj
<< /Dests 153 0 R >> << /Names [ (Doc-Start) 2 0 R (none.1) 75 0 R (none.2) 79 0 R (page.1) 87 0 R (page.2) 97 0 R (page.3) 103 0 R (page.4) 109 0 R (page.5) 115 0 R (page.6) 122 0 R (page.7) 128 0 R (page.8) 92 0 R (section*.1) 6 0 R (section*.2) 16 0 R (section*.3) 50 0 R ] /Limits [ (Doc-Start) (section*.3) ] >>
endobj endobj
155 0 obj 155 0 obj
<< /Type /Catalog /Pages 89 0 R /Outlines 152 0 R /Names 154 0 R /PageMode/UseOutlines /OpenAction 81 0 R >> << /Dests 154 0 R >>
endobj endobj
156 0 obj 156 0 obj
<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260426202917+02'00') /ModDate (D:20260426202917+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> << /Type /Catalog /Pages 90 0 R /Outlines 153 0 R /Names 155 0 R /PageMode/UseOutlines /OpenAction 82 0 R >>
endobj
157 0 obj
<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260426213236+02'00') /ModDate (D:20260426213236+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >>
endobj endobj
xref xref
0 157 0 158
0000000000 65535 f 0000000000 65535 f
0000000020 00000 n 0000000020 00000 n
0000016450 00000 n 0000016450 00000 n
0000063710 00000 n 0000063724 00000 n
0000000065 00000 n 0000000065 00000 n
0000000266 00000 n 0000000266 00000 n
0000016510 00000 n 0000016510 00000 n
0000063616 00000 n 0000063630 00000 n
0000000312 00000 n 0000000312 00000 n
0000000399 00000 n 0000000399 00000 n
0000063520 00000 n 0000063534 00000 n
0000000445 00000 n 0000000445 00000 n
0000000548 00000 n 0000000548 00000 n
0000063422 00000 n 0000063436 00000 n
0000000595 00000 n 0000000595 00000 n
0000000827 00000 n 0000000827 00000 n
0000016570 00000 n 0000016570 00000 n
0000063324 00000 n 0000063338 00000 n
0000000874 00000 n 0000000874 00000 n
0000001316 00000 n 0000001316 00000 n
0000063226 00000 n 0000063240 00000 n
0000001363 00000 n 0000001363 00000 n
0000002095 00000 n 0000002095 00000 n
0000063128 00000 n 0000063142 00000 n
0000002142 00000 n 0000002142 00000 n
0000002669 00000 n 0000002669 00000 n
0000063030 00000 n 0000063044 00000 n
0000002716 00000 n 0000002716 00000 n
0000003178 00000 n 0000003178 00000 n
0000062932 00000 n 0000062946 00000 n
0000003225 00000 n 0000003225 00000 n
0000003952 00000 n 0000003952 00000 n
0000062834 00000 n 0000062848 00000 n
0000003999 00000 n 0000003999 00000 n
0000004558 00000 n 0000004558 00000 n
0000062736 00000 n 0000062750 00000 n
0000004605 00000 n 0000004605 00000 n
0000005132 00000 n 0000005132 00000 n
0000062638 00000 n 0000062652 00000 n
0000005179 00000 n 0000005179 00000 n
0000005636 00000 n 0000005636 00000 n
0000062540 00000 n 0000062554 00000 n
0000005683 00000 n 0000005683 00000 n
0000006155 00000 n 0000006155 00000 n
0000062442 00000 n 0000062456 00000 n
0000006202 00000 n 0000006202 00000 n
0000006688 00000 n 0000006688 00000 n
0000062331 00000 n 0000062345 00000 n
0000006735 00000 n 0000006735 00000 n
0000006998 00000 n 0000006998 00000 n
0000029618 00000 n 0000029620 00000 n
0000062257 00000 n 0000062271 00000 n
0000007045 00000 n 0000007045 00000 n
0000007969 00000 n 0000007969 00000 n
0000062170 00000 n 0000062184 00000 n
0000008016 00000 n 0000008016 00000 n
0000008794 00000 n 0000008794 00000 n
0000062083 00000 n 0000062097 00000 n
0000008841 00000 n 0000008841 00000 n
0000009856 00000 n 0000009856 00000 n
0000061996 00000 n 0000062010 00000 n
0000009903 00000 n 0000009903 00000 n
0000010557 00000 n 0000010557 00000 n
0000061909 00000 n 0000061923 00000 n
0000010604 00000 n 0000010604 00000 n
0000011265 00000 n 0000011265 00000 n
0000061822 00000 n 0000061836 00000 n
0000011312 00000 n 0000011312 00000 n
0000011938 00000 n 0000011938 00000 n
0000061748 00000 n 0000061762 00000 n
0000011985 00000 n 0000011985 00000 n
0000012457 00000 n 0000012457 00000 n
0000061661 00000 n 0000061675 00000 n
0000012504 00000 n 0000012504 00000 n
0000012582 00000 n 0000012582 00000 n
0000037424 00000 n 0000037367 00000 n
0000061574 00000 n 0000061588 00000 n
0000012625 00000 n 0000012625 00000 n
0000012698 00000 n 0000012698 00000 n
0000061500 00000 n 0000037429 00000 n
0000061514 00000 n
0000012741 00000 n 0000012741 00000 n
0000012819 00000 n 0000012819 00000 n
0000016082 00000 n 0000016082 00000 n
@@ -801,78 +807,78 @@ xref
0000016631 00000 n 0000016631 00000 n
0000012869 00000 n 0000012869 00000 n
0000016389 00000 n 0000016389 00000 n
0000060952 00000 n 0000060966 00000 n
0000053989 00000 n 0000054003 00000 n
0000061309 00000 n 0000061323 00000 n
0000016214 00000 n 0000016214 00000 n
0000042277 00000 n 0000042317 00000 n
0000020893 00000 n 0000020893 00000 n
0000021102 00000 n 0000021102 00000 n
0000020734 00000 n 0000020734 00000 n
0000016713 00000 n 0000016713 00000 n
0000021041 00000 n 0000021041 00000 n
0000020866 00000 n 0000020866 00000 n
0000025025 00000 n 0000025026 00000 n
0000025236 00000 n 0000025237 00000 n
0000024862 00000 n 0000024862 00000 n
0000021184 00000 n 0000021184 00000 n
0000025173 00000 n 0000025174 00000 n
0000024997 00000 n 0000024998 00000 n
0000029406 00000 n 0000029408 00000 n
0000029680 00000 n 0000029682 00000 n
0000029241 00000 n 0000029243 00000 n
0000025318 00000 n 0000025320 00000 n
0000029555 00000 n 0000029557 00000 n
0000029377 00000 n 0000029379 00000 n
0000033609 00000 n 0000033611 00000 n
0000033821 00000 n 0000033823 00000 n
0000033444 00000 n 0000033446 00000 n
0000029763 00000 n 0000029765 00000 n
0000033758 00000 n 0000033760 00000 n
0000046458 00000 n 0000046498 00000 n
0000033580 00000 n 0000033582 00000 n
0000037212 00000 n 0000037155 00000 n
0000037486 00000 n 0000037491 00000 n
0000037047 00000 n 0000036990 00000 n
0000033917 00000 n 0000033919 00000 n
0000037361 00000 n 0000037304 00000 n
0000037183 00000 n 0000037126 00000 n
0000040739 00000 n 0000040779 00000 n
0000040951 00000 n 0000040991 00000 n
0000040574 00000 n 0000040614 00000 n
0000037569 00000 n 0000037574 00000 n
0000040888 00000 n 0000040928 00000 n
0000040710 00000 n 0000040750 00000 n
0000042128 00000 n 0000042168 00000 n
0000042339 00000 n 0000042379 00000 n
0000041963 00000 n 0000042003 00000 n
0000041034 00000 n 0000041074 00000 n
0000042099 00000 n 0000042139 00000 n
0000042422 00000 n 0000042462 00000 n
0000045638 00000 n 0000045678 00000 n
0000042698 00000 n 0000042738 00000 n
0000042803 00000 n 0000042843 00000 n
0000045880 00000 n 0000045920 00000 n
0000046616 00000 n 0000046656 00000 n
0000046820 00000 n 0000046860 00000 n
0000052938 00000 n 0000052956 00000 n
0000047355 00000 n 0000047391 00000 n
0000047481 00000 n 0000047517 00000 n
0000053171 00000 n 0000053189 00000 n
0000054139 00000 n 0000054153 00000 n
0000054336 00000 n 0000054350 00000 n
0000059941 00000 n 0000059955 00000 n
0000054826 00000 n 0000054840 00000 n
0000054947 00000 n 0000054961 00000 n
0000060180 00000 n 0000060194 00000 n
0000061107 00000 n 0000061121 00000 n
0000061426 00000 n 0000061440 00000 n
0000063804 00000 n 0000063818 00000 n
0000064101 00000 n 0000064131 00000 n
0000064139 00000 n 0000064169 00000 n
0000064265 00000 n 0000064295 00000 n
trailer trailer
<< /Size 157 /Root 155 0 R /Info 156 0 R /ID [ <DBE25BAF6621814A2FD60CEF82460B80> <DBE25BAF6621814A2FD60CEF82460B80> ] >> << /Size 158 /Root 156 0 R /Info 157 0 R /ID [ <D324C19D44EFE59AA9981BC6CD487EBA> <D324C19D44EFE59AA9981BC6CD487EBA> ] >>
startxref startxref
64925 64955
%%EOF %%EOF
+9 -7
View File
@@ -1,4 +1,4 @@
===== Build gestartet: 2026-04-26 20:29:14 ===== ===== Build gestartet: 2026-04-26 21:32:33 =====
Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex
Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx
@@ -6,17 +6,19 @@ Output-Dir: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslau
--- Pandoc -> PDF (LuaLaTeX) --- --- Pandoc -> PDF (LuaLaTeX) ---
Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (66.6 KB) PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (66.7 KB)
--- Pandoc -> DOCX --- --- Pandoc -> DOCX ---
Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md
DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (21.9 KB) DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (22 KB)
--- Post-Process DOCX --- --- Post-Process DOCX ---
[post-process-docx] Verarbeite: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx [post-process-docx] Verarbeite: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx
[post-process-docx] Listen gefunden: 27 [post-process-docx] Listen gefunden: 26
[post-process-docx] Bullets in Listen: 186 [post-process-docx] Bullets in Listen: 180
[post-process-docx] keepNext gesetzt: 95 [post-process-docx] keepNext gesetzt: 91
[post-process-docx] Bullets in Tabellen uebersprungen: 0 [post-process-docx] Bullets in Tabellen uebersprungen: 0
[post-process-docx] H2-Headings gefunden: 7 [post-process-docx] H2-Headings gefunden: 7
[post-process-docx] H2-Trenn-Absaetze eingefuegt: 7 [post-process-docx] H2-Trenn-Absaetze eingefuegt: 7
[post-process-docx] numbering.xml abstractNum-Eintraege: 2
[post-process-docx] numbering.xml lvls modifiziert: 18
[post-process-docx] Fertig. [post-process-docx] Fertig.
===== Build beendet: 2026-04-26 20:29:20, Exit-Code 0 ===== ===== Build beendet: 2026-04-26 21:32:39, Exit-Code 0 =====
+13 -6
View File
@@ -206,12 +206,19 @@ Juni 1986 **Abitur** am Oberstufenzentrum Elektrotechnik in Berlin
## Trainings ## Trainings
- Dez. 2016 — Ansys SIwave Training ---------- ----------------------------------------------------------------------
- Juni 2016 — Keysight High Speed Digital class using ADS Dez. 2016 Ansys SIwave Training
- Jan. 2008 — Gustav Käser, „Management"
- Juni 2007 — Die Akademie, „Führung und Organisation 1" Juni 2016 Keysight High Speed Digital class using ADS
- Apr. 2006 — Die Akademie, „Gedächtnis- und Konzentrationstraining"
- Mai 2000 — Seminar „Persönlichkeitsentwicklung im Team" Jan. 2008 Gustav Käser, „Management"
Juni 2007 Die Akademie, „Führung und Organisation 1"
Apr. 2006 Die Akademie, „Gedächtnis- und Konzentrationstraining"
Mai 2000 Seminar „Persönlichkeitsentwicklung im Team"
---------- ----------------------------------------------------------------------
## Kenntnisse ## Kenntnisse
+1
View File
@@ -46,3 +46,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse.
2026-04-26 13:29 | S07 | Teilgebiet 01 Iteration B (Iterationen B1, B1.5, B2) durchgezogen. Neue Datei build/build-reference-docx.py baut templates/reference.docx programmatisch aus Pandocs Default-Reference (Python-Stdlib only, kein pip; pandoc --print-default-data-file zur Laufzeit, ZIP entpacken, ElementTree-XML-Anpassungen, repacken). B1: Theme major+minor und alle direkten Schrift-Refs in styles.xml auf Calibri umgestellt (Code-Schriften wie Consolas bleiben), Tabellen-Default-Stil mit tblBorders=none auf allen Sides. B1.5: Body-DocDefault 11 pt, Heading 1/2/3 auf 15/13/12 pt analog PDF. B2: header1.xml (Default ab Seite 2 mit Name links und Lebenslauf rechts), header2.xml (leer fuer Seite 1 via titlePg), footer1.xml (rechts Seite n / m mit PAGE/NUMPAGES-Feldern, doppelt referenziert als default und first damit Seite 1 trotz titlePg den Footer hat). Page-Setup explizit in sectPr: A4 mit 2.2 cm oben/unten und 2.5 cm links/rechts analog PDF, Tab-Stop am rechten Textrand 9072 dxa. Beziehungen mit dynamisch naechster freier rId in document.xml.rels, Content-Types-Overrides in [Content_Types].xml, sectPr regex-ersetzt idempotent. Sandbox-End-to-End mit Pandoc 2.9 verifiziert (sectPr und Header/Footer im generierten DOCX vorhanden). Auf Thomas System: DOCX visuell bestaetigt. teilgebiete/01-lebenslauf.md um vollstaendigen Iteration-B-Block ergaenzt, Naechste-Schritte-Liste auf B3, B4, C, D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit Hinweisen zur reference-docx-Pipeline (manuell vor build.ps1 aufrufen, nicht von Hand in Word editieren) und zur Edit-Tool-Truncation auf dem NTFS-Mount. Build-UX-Fix in build.ps1 mit 3-Sekunden-Pause pro fehlgeschlagenem Schritt war ebenfalls Teil dieser Session. 2026-04-26 13:29 | S07 | Teilgebiet 01 Iteration B (Iterationen B1, B1.5, B2) durchgezogen. Neue Datei build/build-reference-docx.py baut templates/reference.docx programmatisch aus Pandocs Default-Reference (Python-Stdlib only, kein pip; pandoc --print-default-data-file zur Laufzeit, ZIP entpacken, ElementTree-XML-Anpassungen, repacken). B1: Theme major+minor und alle direkten Schrift-Refs in styles.xml auf Calibri umgestellt (Code-Schriften wie Consolas bleiben), Tabellen-Default-Stil mit tblBorders=none auf allen Sides. B1.5: Body-DocDefault 11 pt, Heading 1/2/3 auf 15/13/12 pt analog PDF. B2: header1.xml (Default ab Seite 2 mit Name links und Lebenslauf rechts), header2.xml (leer fuer Seite 1 via titlePg), footer1.xml (rechts Seite n / m mit PAGE/NUMPAGES-Feldern, doppelt referenziert als default und first damit Seite 1 trotz titlePg den Footer hat). Page-Setup explizit in sectPr: A4 mit 2.2 cm oben/unten und 2.5 cm links/rechts analog PDF, Tab-Stop am rechten Textrand 9072 dxa. Beziehungen mit dynamisch naechster freier rId in document.xml.rels, Content-Types-Overrides in [Content_Types].xml, sectPr regex-ersetzt idempotent. Sandbox-End-to-End mit Pandoc 2.9 verifiziert (sectPr und Header/Footer im generierten DOCX vorhanden). Auf Thomas System: DOCX visuell bestaetigt. teilgebiete/01-lebenslauf.md um vollstaendigen Iteration-B-Block ergaenzt, Naechste-Schritte-Liste auf B3, B4, C, D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit Hinweisen zur reference-docx-Pipeline (manuell vor build.ps1 aufrufen, nicht von Hand in Word editieren) und zur Edit-Tool-Truncation auf dem NTFS-Mount. Build-UX-Fix in build.ps1 mit 3-Sekunden-Pause pro fehlgeschlagenem Schritt war ebenfalls Teil dieser Session.
2026-04-26 16:40 | S07 | Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF). 2026-04-26 16:40 | S07 | Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF).
2026-04-26 20:35 | S08 | Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt. 2026-04-26 20:35 | S08 | Teilgebiet 01 Iteration B4 fuer DOCX umgesetzt. Heading 1/2/3 in destengsblue (build/build-reference-docx.py Funktion set_heading_colors mit explizitem color val=0B5394, themeColor accent1 entfernt). Heading-Bottom-Borders direkt am Stil verworfen, weil Word die Border bei hanging-Indent linksbuendig statt zentriert rendert und der right-Indent sowohl Text als auch Border begrenzt. 21 Markdown-HRs aus cv.md entfernt - Quelle der wahrgenommenen Doppellinien war Pandocs DOCX-Konvertierung von --- Zeilen zu VML-rect mit o:hr=t (Embossed-Look). Tabellen-Strich-Zeilen blieben unangetastet. Zwischenfall: NTFS-Mount-Stale-Read der cv.md (20043 statt 20201 Bytes) haette fast die Live-Datei truncated, sofortige Wiederherstellung aus git show HEAD und HR-Removal erneut mit git-Version als Input. H2-Trennlinien via Post-Processing eingefuehrt (build/post-process-docx.py um Logik erweitert): nach jedem H2 wird ein leerer Trenn-Absatz mit linksbuendiger Bottom-Border eingefuegt, schwarz (000000), 8,6 cm Linienlaenge (right-Indent 4196 dxa), 1,25 pt Dicke (sz=10). Sandbox-Verifikation 7 H2 zu 7 Trenner. Visuelle Bestaetigung durch Thomas. teilgebiete/01-lebenslauf.md um Iteration-B4-Block ergaenzt (B4.1 Farben, B4.2 Heading-Border-Sackgasse, B4.3 HR-Removal inkl. Zwischenfall, B4.4 H2-Trennlinien) und Naechste-Schritte-Liste auf C/D verkuerzt.
2026-04-26 21:50 | S08 | Teilgebiet 01 Iterationen B5 (Trainings als Tabelle) und B6 (Bullet-Einzuege verkleinert) abgeschlossen. B5: Trainings-Bullet-Liste in cv.md durch Pandoc-Multiline-Tabelle ersetzt analog Ausbildung. B6: build/post-process-docx.py um dritte Modifikation erweitert die direkt die numbering.xml manipuliert weil Pandoc die Werte aus reference.docx ignoriert. Bullet-Einzuege auf E1 0,25/0,35 cm und E2 0,80/0,40 cm gesetzt. Word-Konvention dokumentiert: Einzug-links zeigt (left - hanging). teilgebiete/01-lebenslauf.md und agent-prompt.md fuer S09 fortgeschrieben.
+19 -1
View File
@@ -198,6 +198,24 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
**Warum kein Heading-Stil-Border:** Words `right`-Indent gilt sowohl für Text als auch für Border. Eine Border *schmaler als der Heading-Text* ist über den Stil selbst nicht abbildbar, weil Indent den Text mitkürzt. Lösung: separater Trenn-Absatz nach dem Heading. Die Underline-Alternative (Linie genau in Heading-Text-Breite) wurde verworfen, weil sie wie ein unterstrichener Text wirkt und nicht wie ein Trenner. **Warum kein Heading-Stil-Border:** Words `right`-Indent gilt sowohl für Text als auch für Border. Eine Border *schmaler als der Heading-Text* ist über den Stil selbst nicht abbildbar, weil Indent den Text mitkürzt. Lösung: separater Trenn-Absatz nach dem Heading. Die Underline-Alternative (Linie genau in Heading-Text-Breite) wurde verworfen, weil sie wie ein unterstrichener Text wirkt und nicht wie ein Trenner.
## Iteration B5 (S08) — Trainings als Tabelle
**Anforderung:** Die Trainings-Sektion war als Bullet-Liste im Format `- Datum — Beschreibung` formatiert. Auf Wunsch von Thomas analog zur Ausbildungs-Sektion als Multiline-Tabelle umgestaltet, damit beide Sektionen visuell konsistent sind.
**Umsetzung:** Trainings-Bullet-Liste in `source/cv.md` durch eine Pandoc-Multiline-Tabelle mit Strich-Verhältnis 10:70 ersetzt (gleiches Format wie Ausbildung). Datum in Spalte 1, Inhalt in Spalte 2. Inhalte normal (nicht fett), nach kurzem Feedback-Zyklus mit Thomas. Mai-2000-Eintrag braucht 4 Padding-Leerzeichen statt 3, weil „Mai 2000" 8 Zeichen lang ist (alle anderen 9). Sandbox-Verifikation: 1 → 2 Tabellen im DOCX, 1 → 2 longtables im LaTeX. Visuell durch Thomas bestätigt.
## Iteration B6 (S08) — Bullet-Einzüge verkleinern
**Anforderung:** Pandoc-Default-Bullet-Einzüge waren großzügig — Thomas wollte das kompakter, um Platzverschwendung zu reduzieren. Konkrete Wunschwerte: E1 Einzug 0,25 cm + Sondereinzug 0,35 cm; E2 Einzug 0,80 cm + Sondereinzug 0,40 cm.
**Umsetzung-Pfad:** Pandoc generiert die `numbering.xml` selbst und IGNORIERT die Werte aus der `reference.docx`. Daher kann das nicht über `build-reference-docx.py` geregelt werden, sondern muss im Post-Processing nach dem Pandoc-Build stattfinden. `build/post-process-docx.py` um eine dritte Modifikation erweitert: Funktion `process_numbering_xml` parst die `numbering.xml` aus dem DOCX, iteriert alle `<w:abstractNum>` und ersetzt für jedes `<w:lvl>` (ilvl 0–8) die `<w:ind>`-Werte aus einer Konstanten-Tabelle `BULLET_INDENTS`.
**Word-Konvention (wichtig — kostete eine Iteration):** Word zeigt im Absatz-Dialog „Einzug links" als `(left - hanging)` (= Bullet-Position) und „Sondereinzug Hängend" als `hanging`. Daher rechnen wir: `left = (gewünschter Einzug + gewünschter Hanging-Indent)` in dxa. Bei E1 mit 0,25 + 0,35 cm ergibt sich also `left = 340 dxa`, `hanging = 198 dxa`. Erster Versuch hatte `left = 142 dxa` gesetzt — Word zeigte dadurch Einzug `-0,1 cm`, weil das Mental-Modell die Word-Logik vertauscht hatte. Korrigiert in zweiter Iteration.
**Sandbox-Verifikation:** 2 abstractNum-Einträge in `numbering.xml` (Pandoc nutzt 990 für „plain" und 991 für „bullet" Listen), 18 lvls insgesamt modifiziert. Auf Thomas' System visuell bestätigt: Word zeigt jetzt für E1 Einzug 0,25 cm + Sondereinzug 0,35 cm, für E2 Einzug 0,80 cm + Sondereinzug 0,40 cm. Kein Bullet klebt am Text.
**Hinweis (S08):** Pandoc verwendet im DOCX-Output `o` als E2-Bullet-Marker (nicht `–` wie im PDF-LaTeX-Pfad). Das ist kein Problem — beide Marker passen mit dem Sondereinzug 0,4 cm.
## Nächste Schritte ## Nächste Schritte
1. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm). 1. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm).
@@ -213,7 +231,7 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
- `artefakte/01-lebenslauf/templates/template.tex` — Pandoc-LaTeX-Template für LuaLaTeX (Iteration A inkl. Pandoc-3.x-Hotfix `\newcounter{none}`). - `artefakte/01-lebenslauf/templates/template.tex` — Pandoc-LaTeX-Template für LuaLaTeX (Iteration A inkl. Pandoc-3.x-Hotfix `\newcounter{none}`).
- `artefakte/01-lebenslauf/templates/reference.docx` — Pandoc-Reference-Doc, **automatisch erzeugt** durch `build/build-reference-docx.py`. Nicht von Hand editieren — Änderungen würden beim nächsten Skript-Lauf überschrieben. - `artefakte/01-lebenslauf/templates/reference.docx` — Pandoc-Reference-Doc, **automatisch erzeugt** durch `build/build-reference-docx.py`. Nicht von Hand editieren — Änderungen würden beim nächsten Skript-Lauf überschrieben.
- `artefakte/01-lebenslauf/build/build-reference-docx.py` — Python-Skript zum Bauen der `reference.docx` (Iterationen B1, B1.5, B2, B3, B4.1 Heading-Farben). Manuell aufrufen, wenn Stile geändert werden sollen, danach normalen `build.ps1` laufen. - `artefakte/01-lebenslauf/build/build-reference-docx.py` — Python-Skript zum Bauen der `reference.docx` (Iterationen B1, B1.5, B2, B3, B4.1 Heading-Farben). Manuell aufrufen, wenn Stile geändert werden sollen, danach normalen `build.ps1` laufen.
- `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz und B4.4 H2-Trennlinien). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen. - `artefakte/01-lebenslauf/build/post-process-docx.py` — Python-Skript für DOCX-Post-Processing (B3.5 Listen-Bullet-Schutz, B4.4 H2-Trennlinien, B6 Bullet-Einzüge). Wird automatisch von `build.ps1` als Schritt [3/3] aufgerufen.
- `artefakte/01-lebenslauf/build/build.ps1` — PowerShell-Build-Skript (PDF + DOCX + Post-Process) mit 3-Sekunden-Pause bei Fehler. - `artefakte/01-lebenslauf/build/build.ps1` — PowerShell-Build-Skript (PDF + DOCX + Post-Process) mit 3-Sekunden-Pause bei Fehler.
- `artefakte/01-lebenslauf/output/` — erzeugte Ausgaben plus `build.log`. - `artefakte/01-lebenslauf/output/` — erzeugte Ausgaben plus `build.log`.