From cd32a19c2353376ed226092ea4e8edacc8b2feaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20Pre=C3=9Fmar?= Date: Fri, 11 Sep 2026 13:38:34 +0200 Subject: [PATCH] feat: add an embedFonts option for AcroForm fields `NeedAppearances` asks the reader to regenerate a field's appearance from its plain-text value, which it can only do with a font it can resolve that text against on its own. The font pdfkit embeds for its own content streams is subsetted and addressed by glyph id, so readers such as Acrobat fall back to a substitute font for the field. Fixes #1096. `initForm({ embedFonts: true })` embeds a complete, character-addressable copy of each custom font used in a field, as a composite font under a WinAnsiEncoding-to-glyph CMap (a simple font with `/Encoding /WinAnsiEncoding` cannot be used: fontkit's subset encoder emits no cmap or glyph-name tables, and its CFF output is always CID-keyed). It costs roughly the size of the font file per font, so it is off by default. Without it, output is byte-identical to before. EmbeddedFont knows nothing about AcroForm: it offers `completeRef()`, a complete, text-addressable embedding of itself, and acroform.js decides when a form needs one. `embed()` and `embedComplete()` now share one `embedProgram()` for the font program and descriptor they both build. --- CHANGELOG.md | 1 + docs/forms.md | 17 +++ lib/font/afm.js | 6 +- lib/font/embedded.js | 236 ++++++++++++++++++++++++++++++-- lib/mixins/acroform.js | 29 +++- tests/fonts/Montserrat-Bold.otf | Bin 0 -> 235192 bytes tests/unit/acroform.spec.js | 180 ++++++++++++++++++++++++ 7 files changed, 455 insertions(+), 14 deletions(-) create mode 100644 tests/fonts/Montserrat-Bold.otf diff --git a/CHANGELOG.md b/CHANGELOG.md index 47a94d8f0..cd88cc299 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Add a `hidden` option to form annotation methods, for a field that should start hidden (e.g. one an interactive action reveals later) instead of the usual default of visible and printable - Fix annotations placed under `doc.rotate()` marking the wrong area, because `_convertRect` derived each corner's y from the already transformed x and mapped only two of the four corners, so the rectangle a viewer makes interactive did not follow the rotated content. Fixes #1153 - Add `onClick`, `onMouseDown`, `onMouseEnter`, `onMouseExit`, `onFocus` and `onBlur` options to form annotation methods, for the JavaScript a field runs on each of those events. Each accepts a string or a plain function, whose source text is written into the action +- Add an `embedFonts` option to `initForm`, embedding a complete, character-addressable copy of each custom font used in a form field. Viewers that regenerate a field's appearance from its value, such as Adobe Acrobat/Reader, need one to resolve field text; without it they fall back to a substitute font. It adds roughly the size of the font file per font, so it is off by default. Fixes #1096 ### [v0.20.2] - 2026-08-29 diff --git a/docs/forms.md b/docs/forms.md index db6f4d952..ab024eb9f 100644 --- a/docs/forms.md +++ b/docs/forms.md @@ -388,6 +388,23 @@ Some form documents may not need to generate appearances. This may be the case for text Form Annotations that initially have no value. This is not true for push button widget annotations. Please test +With a custom font, a viewer building the appearance this way may show the +field in a substitute font: the font PDFKit embeds for page content is +subsetted and addressed by glyph id, which gives the viewer no way to resolve +the field's text itself. Passing `embedFonts` to `initForm` embeds a +complete, character-addressable copy of each font used in a field, which +viewers can resolve any text against: + +```js +doc.font('fonts/MyFont.ttf'); +doc.initForm({ embedFonts: true }); +``` + +That copy holds the whole font rather than the glyphs used so far, so it adds +roughly the size of the font file to the document, per font. It is off by +default for that reason, and only affects custom fonts — the standard 14 +fonts are not embedded at all. + ### Document JavaScript Many PDF Viewers, aside from Adobe Acrobat Reader, do not implement document diff --git a/lib/font/afm.js b/lib/font/afm.js index 53e72c66d..f3a9f4829 100644 --- a/lib/font/afm.js +++ b/lib/font/afm.js @@ -1,4 +1,8 @@ -const WIN_ANSI_MAP = { +// Maps Unicode code points to their WinAnsiEncoding code, for the block of +// codes (0x80-0x9F) where WinAnsiEncoding diverges from Latin-1/Unicode. +// Exported so other font embedders can build the inverse (code -> code point) +// mapping needed to describe a font with a standard /Encoding entry. +export const WIN_ANSI_MAP = { 402: 131, 8211: 150, 8212: 151, diff --git a/lib/font/embedded.js b/lib/font/embedded.js index 269218939..995820a81 100644 --- a/lib/font/embedded.js +++ b/lib/font/embedded.js @@ -1,9 +1,52 @@ import PDFFont from '../font'; +import { WIN_ANSI_MAP } from './afm'; const toHex = function (num) { return `0000${num.toString(16)}`.slice(-4); }; +// Inverse of WIN_ANSI_MAP (code point -> WinAnsiEncoding code), for the one +// block (0x80-0x9F) where the two diverge; every other code between +// FIRST_WIN_ANSI_CHAR and LAST_WIN_ANSI_CHAR maps 1:1 to the same code point. +const WIN_ANSI_CODE_TO_UNICODE = Object.fromEntries( + Object.entries(WIN_ANSI_MAP).map(([codePoint, code]) => [ + code, + Number(codePoint), + ]), +); +const UNDEFINED_WIN_ANSI_CODES = new Set([129, 141, 143, 144, 157]); // unused slots in that block +const FIRST_WIN_ANSI_CHAR = 32; +const LAST_WIN_ANSI_CHAR = 255; + +function unicodeForWinAnsiCode(code) { + if (UNDEFINED_WIN_ANSI_CODES.has(code)) { + return null; + } + return WIN_ANSI_CODE_TO_UNICODE[code] ?? code; +} + +/** + * Builds a subset of `font` holding every glyph, numbered exactly as in `font` + * itself. + * + * This goes through the ordinary subset encoder rather than using the font's + * own program buffer untouched, because the source may be a WOFF/WOFF2 file, + * whose raw bytes are a compressed container rather than a valid standalone + * TrueType/CFF program; fontkit's subset encoder already normalizes any source + * format into one. + * + * Including every glyph in ascending order makes the subset's own renumbering + * (fontkit's `Subset#includeGlyph`) assign each glyph the id it already had, + * so glyph ids taken from `font` address the resulting program directly. + */ +function completeSubsetOf(font) { + const subset = font.createSubset(); + for (let gid = 0; gid < font.numGlyphs; gid++) { + subset.includeGlyph(gid); + } + return subset; +} + class EmbeddedFont extends PDFFont { constructor(document, font, id) { super(); @@ -120,15 +163,63 @@ class EmbeddedFont extends PDFFont { return width * scale; } - embed() { - const isCFF = this.subset.cff != null; - const fontFile = this.document.ref(); + /** + * Returns the PDFReference of a complete, text-addressable embedding of this + * font, embedding it the first time it's requested. + * + * The font `ref()` returns is a Type0 composite font under `/Encoding + * /Identity-H`, subsetted down to the glyphs pdfkit has drawn so far and + * addressed directly by glyph id, so it carries neither a character + * encoding nor the glyphs a caller has not used yet. A consumer that has to + * resolve arbitrary text against the font on its own -- rather than being + * handed glyph ids, as pdfkit's own content streams are -- needs both. This + * embedding is complete and addressed by character code instead. + * + * It costs a full copy of the font program, so call it only when that is + * actually needed. + */ + completeRef() { + return this.completeDictionary != null + ? this.completeDictionary + : (this.completeDictionary = this.document.ref()); + } + finalize() { + if (this.embedded) { + return; + } + if (this.dictionary != null) { + this.embed(); + } + if (this.completeDictionary != null) { + this.embedComplete(); + } + this.embedded = true; + } + + /** + * Embeds a font program and its descriptor, and returns them together with + * the `/BaseFont` name they must be referenced under. + * + * `complete` says whether the program holds every glyph. Such a program is + * not a subset in the sense of spec 9.6.4, so its name must not carry the + * subset tag and it needs no `/CIDSet`. + */ + embedProgram(subset, complete) { + const isCFF = subset.cff != null; + const fontProgram = subset.encode(); + + const fontFile = this.document.ref(); if (isCFF) { fontFile.data.Subtype = 'CIDFontType0C'; + } else if (complete) { + // Required for FontFile2 (spec 9.9, Table 127): the length in bytes of + // the uncompressed TrueType program. Without it, Acrobat reports the + // font as one it "could not be extracted" when it loads the program + // rather than just the dictionary. + fontFile.data.Length1 = fontProgram.length; } - - fontFile.end(this.subset.encode()); + fontFile.end(fontProgram); const familyClass = ((this.font['OS/2'] != null @@ -149,11 +240,16 @@ class EmbeddedFont extends PDFFont { flags |= 1 << 6; } - // generate a tag (6 uppercase letters. 17 is the char code offset from '0' to 'A'. 73 will map to 'Z') + // A subset is named with a six-uppercase-letter tag meaning "an arbitrary + // subset of the font named after the +" (spec 9.6.4); 17 is the char code + // offset from '0' to 'A', and 73 maps to 'Z'. A complete program is no + // such subset, and tagging it anyway would give two different programs + // the same name, which Acrobat rejects. + const postscriptName = this.font.postscriptName?.replaceAll(' ', '_'); const tag = [1, 2, 3, 4, 5, 6] .map((i) => String.fromCharCode((this.id.charCodeAt(i) || 73) + 17)) .join(''); - const name = tag + '+' + this.font.postscriptName?.replaceAll(' ', '_'); + const name = complete ? postscriptName : `${tag}+${postscriptName}`; const { bbox } = this.font; const descriptor = this.document.ref({ @@ -180,7 +276,9 @@ class EmbeddedFont extends PDFFont { descriptor.data.FontFile2 = fontFile; } - if (this.document.subset && this.document.subset === 1) { + // /CIDSet lists the CIDs a subset actually contains, which PDF/A-1 + // requires of a subsetted font and only of one. + if (!complete && this.document.subset && this.document.subset === 1) { const maxCID = this.widths.length - 1; const cidSetBuffer = new Uint8Array(Math.ceil((maxCID + 1) / 8)); for (let cid = 0; cid <= maxCID; cid++) { @@ -197,6 +295,12 @@ class EmbeddedFont extends PDFFont { descriptor.end(); + return { descriptor, name, isCFF }; + } + + embed() { + const { descriptor, name, isCFF } = this.embedProgram(this.subset, false); + const descendantFontData = { Type: 'Font', Subtype: 'CIDFontType0', @@ -231,6 +335,122 @@ class EmbeddedFont extends PDFFont { return this.dictionary.end(); } + /** + * Embeds the font `completeRef()` hands out: a composite font holding every + * glyph, addressed through a custom WinAnsiEncoding-to-glyph CMap instead of + * the usual `/Identity-H`. See `completeRef()` for why it exists separately + * from `embed()`, and `winAnsiToGidCmap()` for why it is a composite font + * with a custom `/Encoding` rather than a simple font with `/Encoding + * /WinAnsiEncoding`. + */ + embedComplete() { + const { descriptor, name, isCFF } = this.embedProgram( + completeSubsetOf(this.font), + true, + ); + + // One width per glyph id, matching the font program above, which holds + // every glyph rather than only the WinAnsiEncoding-representable ones. + const widths = []; + for (let gid = 0; gid < this.font.numGlyphs; gid++) { + widths.push(this.font.getGlyph(gid).advanceWidth * this.scale); + } + + const descendantFontData = { + Type: 'Font', + Subtype: isCFF ? 'CIDFontType0' : 'CIDFontType2', + BaseFont: name, + CIDSystemInfo: { + Registry: new String('Adobe'), + Ordering: new String('Identity'), + Supplement: 0, + }, + FontDescriptor: descriptor, + W: [0, widths], + }; + if (!isCFF) { + descendantFontData.CIDToGIDMap = 'Identity'; + } + + const descendantFont = this.document.ref(descendantFontData); + descendantFont.end(); + + this.completeDictionary.data = { + Type: 'Font', + Subtype: 'Type0', + BaseFont: name, + Encoding: this.winAnsiToGidCmap(), + DescendantFonts: [descendantFont], + }; + + return this.completeDictionary.end(); + } + + /** + * Builds an embedded CMap mapping each single-byte WinAnsiEncoding code to + * the id of the glyph it represents (which are the same numbers as CIDs + * here, see `embedComplete()`), for use as that method's Type0 font's + * `/Encoding` in place of a standard name such as `/Identity-H`. + * + * `Identity-H` only works when whoever writes the content stream already + * knows which glyph id corresponds to each character, which is exactly what + * a consumer starting from plain text does not know -- and fontkit's subset + * encoder never retains the font's own cmap or glyph-name tables it could + * otherwise have used, no matter how many glyphs a subset includes + * (composite fonts, which is all pdfkit ever produces elsewhere, never need + * them, so the encoder doesn't build them). This gives such a consumer a + * character encoding to resolve text against anyway, without depending on + * either. + */ + winAnsiToGidCmap() { + const cmap = this.document.ref(); + cmap.data.Type = 'CMap'; + + const entries = []; + for (let code = FIRST_WIN_ANSI_CHAR; code <= LAST_WIN_ANSI_CHAR; code++) { + const codePoint = unicodeForWinAnsiCode(code); + if (codePoint == null || !this.font.hasGlyphForCodePoint(codePoint)) { + continue; + } + const gid = this.font.glyphForCodePoint(codePoint).id; + entries.push(`<${code.toString(16).padStart(2, '0')}> ${gid}`); + } + + const chunkSize = 100; + const chunks = Math.ceil(entries.length / chunkSize); + const ranges = []; + for (let i = 0; i < chunks; i++) { + const start = i * chunkSize; + const end = Math.min((i + 1) * chunkSize, entries.length); + ranges.push( + `${end - start} begincidchar\n${entries.slice(start, end).join('\n')}\nendcidchar`, + ); + } + + cmap.end(`\ +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo << + /Registry (Adobe) + /Ordering (Identity) + /Supplement 0 +>> def +/CMapName /Adobe-Identity-WinAnsi def +/CMapType 1 def +1 begincodespacerange +<20> +endcodespacerange +${ranges.join('\n')} +endcmap +CMapName currentdict /CMap defineresource pop +end +end\ +`); + + return cmap; + } + // Maps the glyph ids encoded in the PDF back to unicode strings // Because of ligature substitutions and the like, there may be one or more // unicode characters represented by each glyph. diff --git a/lib/mixins/acroform.js b/lib/mixins/acroform.js index 8178c4a86..5fb55570c 100644 --- a/lib/mixins/acroform.js +++ b/lib/mixins/acroform.js @@ -206,20 +206,39 @@ function mapFormat(options, pdfObject) { } } +// The font reference to use in the /DR and /DA resources of a form or a +// field. +// +// `NeedAppearances` asks the reader to regenerate a field's appearance from +// its plain-text value, which it can only do with a font it can resolve that +// text against on its own. The font pdfkit embeds for its own content streams +// is subsetted and addressed by glyph id, so a reader given only that falls +// back to a substitute font for the field (see #1096). An embedded font can +// provide a complete, text-addressable embedding instead, at the cost of a +// second copy of the font program in the file -- so this is only used when +// `initForm` was asked for it. Standard fonts need nothing of the sort, and +// have no `completeRef`. +function formFontRef(doc, font) { + return doc._acroform.embedFonts && typeof font.completeRef === 'function' + ? font.completeRef() + : font.ref(); +} + export default { /** * Must call if adding AcroForms to a document. Must also call font() before * this method to set the default font. */ - initForm() { + initForm(options = {}) { if (!this._font) { throw new Error('Must set a font before calling initForm method'); } this._acroform = { fonts: {}, defaultFont: this._font.name, + embedFonts: options.embedFonts === true, }; - this._acroform.fonts[this._font.id] = this._font.ref(); + this._acroform.fonts[this._font.id] = formFontRef(this, this._font); let data = { Fields: [], @@ -229,7 +248,7 @@ export default { Font: {}, }, }; - data.DR.Font[this._font.id] = this._font.ref(); + data.DR.Font[this._font.id] = formFontRef(this, this._font); const AcroForm = this.ref(data); this._root.data.AcroForm = AcroForm; return this; @@ -389,7 +408,7 @@ export default { const { _acroform, _font } = this; // add current font to document-level AcroForm dict if necessary if (_acroform.fonts[_font.id] == null) { - _acroform.fonts[_font.id] = _font.ref(); + _acroform.fonts[_font.id] = formFontRef(this, _font); } // add current font to field's resource dict (RD) if not the default acroform font @@ -399,7 +418,7 @@ export default { // Get the fontSize option. If not set use auto sizing const fontSize = options.fontSize || 0; - pdfObject.DR.Font[_font.id] = _font.ref(); + pdfObject.DR.Font[_font.id] = formFontRef(this, _font); pdfObject.DA = new String(`/${_font.id} ${fontSize} Tf 0 g`); } }, diff --git a/tests/fonts/Montserrat-Bold.otf b/tests/fonts/Montserrat-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..cdfb83df2f2f621d232b38ea40aaa1582c91e0e5 GIT binary patch literal 235192 zcmdSC2YggT*DyZ!?!9-D-SnPpwxnlMHrrDn*))2Q-UL!fAS5A$04k!Q*u^fW2#6pG zh=2`{CV~Z(uA(R^Ac~@5xzR=Pote42dy_|>*Z2SXKkxT`;de4;X3m^Bb7tnunYoi; z#F#N7Pykwl6sV-EveNMN_%(3|*=|S7rNRN_6_tl}ynhz43HuRZmkt;?Vzj!vDF?C1 zV-Vv=9x!@r>D3%}JyJ}Zhfu$g5u7= zC%kg+)!&5sI6KfP5Q|fxg+ov}d$mXWp8zheN5sJXiAJ-hQQF^uq5zHN*Q3#j0f@o4 zH^k`^q3l!tL0E`lSqwKqy$Y1}w~z^W=|EEoGU8AM%s`OuIO+%CAZB3CcL1LNtN{2O z(h$H%Oat-55EeiPG$;sQ6yRrBZO@NhI19WyFa?d~=0ki68U%ntFDUMl@W!6YiX9*i z29Sxb=q;OEPHwU+Zz#0qe*ti;d4fNOJpx^%#%z!riyLo9wY0OtpKc0WG5aY~OFwaOxX(U|t7inp1 zJj_7}xJO{#y-5LdI-1Xeu?gW{0XIUHj^~pF<+2NVe*HU8;C}iK0{0>s))y3^Xy88q zc0J1c7idH&?Ee5L&Y~0y>=rbT9f1sg3)@g4dq3pkPzKx)h<8Eye-bi!F0la2Ey$1E z33dG)9E7~B(2lLJ-jcBAJ$5SwG?2+g4gee$GTA*Mz>>?2?Yc50a_`3q7aVa1`MICK=WYS^O{Ymw?|e z6wYi#e$4AAkc1c~&~w!jXJ0@S{|H_Oy1#<|s{FW~ZpC`=H~IiO8rHILJ-_`U(4!=_ zFHA))&>hy{e;gEF!Mq0GPXEW}X9Cj-{Wgt2p%e~eHqkV80SOJvw4M(+2Qn~EpbBO! zVo8W`0zDU`c&_4eRM8ipuS@B05JYP z1d2z&X8>RyK*QKJ7$1KJ2O$3x3TNdZ;M{pgFa2+U@xMjC24pHmS^^nR&w~*EckmMA z?*Y0CFwb!)111*@lb{6r=L{yd=L*0@fQKR74?+>b0hFfaAcPi7!_Griz0kj)rVN&uK*=tos0R+4|z#N?HCPXw&}!Q0xIYZUDJ3 zV0jip*c-}v#nWIfB>}OuvbZO`SGWqsehApJe+PJu{1ey-bbkf^RoUBnt|-1nk$nOD z9+sU5zT7_n7fNRP0-o3Z1EAQ1To`x;`lbZw|6{NQWwDXarhhjVUqwmGZkR(7z&y&3 za5J;J=aeU13IjZGGT&t7JaY|)cph=V6hNQD{tmc@WqEk4CPCl*JNT!4^9Ho}ui(EZ z&jp|XeSv)*mHs2BfW2NHfVC-}c^<_m^ssh(iN>?v09+%%Xf$3?jDp!!5SM_baf$LAny9tu!Q1iDF({~7SP z1_dknp-{z(kdEt)g}N4@D0Uz4886Arfs9I!^*0o&xEAQgK%Ns|In)V!6-Qvd;*s?& z*h^#h0jU&Upb$j}$^dzd0OJ)CqJlK~K0}uuj;UU`_e}`s))E1btxy{(&HSDmMe#_#=vj zei*OF?%4?EN8|I0oy0qBo|Z?P8o%(Lg) z4t;SP4N=ECuE_2w#WsatqiZ2^9AufwdA}VhH#X6uyA)W(k%fr6LFLmjUjD zavKRgm>mgtH0ZCs=PCvmH+o1@fIpW2>*o-~yA;@mf&N;6=RkjxA?;1zcL?HXAm2!U z;c(stZGt_Ng0c3jWHphs%SU;NK2WxWL|cWNm=*7(hF0yMgAFo>j27RI zfOg_OgSK%I(7x+H4{xI)!25xp-H)A!ia|zy#eAR%1i)he>j~sx=OYdD2Lk@_cprt! zkUa_1*J~dyuM^`dkdxHq@yBbRjt`)Ysi;`-Hq3wA?~lQFk@h#BzZ8jI0)z=(`90+! z#AVsLL2vjxZ9eoF-dldu^AkBI$LF!@;0)<@(8+MzuRT5Ni_nJApu-!$RyLtH*n49? zDFSqnLFu6We?tfRl5l`Q0AUgYKo|-T0}u}o0T2cLj0s>dKo&p_K(Z7%AnXr-^RoeP zKBlt){4E{ul-DcAu^fLX1El}Eyno8${|X&?wZ{r$Wsn46e-Va4T0FA__W8H>oM24I z$r4fn~6*SN!~VvK>1K8R|w^c zAPj`@90_AL5_ACV`#XN5-Ayo7n~)AyeuOmm#sM}~C#-|87UF)8ejL_Toc}S**ImfO zeGd2;I5z{GgI#lCeY4|1FBB%pa8Fv_&G^`#0Bj53n+iU62U+_Q zo3Il(6|<3s`xa@~31}$56aXv0wE))uOaK@RFcJJQoIV5q(_tLvOoaY?AJTA{TLE4NxDUW4h2tRqPrz|LE(fFO3XGzwrI5Z4!vC(U zedYXb$oJ%an(0`)Zk3nlLj^|5y2Nv_+h}GdaH+rZ`kXu+}mRj?!zhaANY#Rv5$g102=mAkQc#B zAt5sr&R(F`;kZmHU_fjzpm2ajf5r}V8PH0E+$^nw8_NV45c4R`W#foFG7#!GroXpd zTmzMXK`Jys!db+jY6(}MI8-m;912E@B%DV@$Roc1>F-MEekc^3l5l?+u12xwqLdyW z!voP$hLh5RP#p6R$jEU1AlGJCV=2yn4>483S@1L4BwT^)(3g~kgZb^D=g~Ykm!atb z%=vN&_XGP{E#dw$T#c-X#Zr2J3=d=su+O7>f{>j%S=Q1zzpZgbLx;g?wpa{f8tM$g zTADlB>)P6?It(M*T4vVObQoNn9StpQ?S}M*j*iy$f}ETgjU5f0)ux)3**Swdn;Ppn zs>U`|<@ib(eQ0S*Q*ExvYBm?*{w(xmWaAuP)PSSo>e|{HTbd2Dz{t@Cvzej|Egdy2 z&2tSFli8G)S2(+BR$WU+y{W0O+G=u`oc7#YhmRHEEXid6!J1p4)mCSKgr>%ty5{z}T0>`ZZC#t812i*w&``sO z*1Bd&Jd_e-89YK;OcoPp&{r0-shV5W*i=>BRA=Y{of)bOm9A?HRUHKeNu2hYw#L?u zc2j#}lc}X`M$U-Jp?{x)%1{exMe|V`YD6&uQw;g1|JPf^R7>Pzh3a(9FFK&GYX<0Lx3;7n1$qbMO{|ceCRcIFQ#5DDgid$U` zGMkVCzzMcB7ydc^3z>WC%OGj28Mw{`P0xbf#Qli%PPN{J@IMn;K=LSsNBbs_s13A@ zd%BVIS|w>K9tWcVs|P+^ga(fTN`a-WfmSpFeI4lC0R7htAs!nBpr>PIG#UhbU_c{4 z4oqu6KF&jXae%!d>Z@t2Hw<(P{#CsmX{w;rRlpCAnrirsD*?NB4`?IsBED4qeD83E;o{(mY%R~}e>*a*pb$74%L;sVnR_S+wc z!ebD^k0+$DzxypbCJYls3nPS8!V%#IVT@2M)CiTrYr+trSr{pdL-;dxY18-NH4(C8%EuK3odQhIS2r){O;?HNeQ|1g+hSozquE((6FY}(W3Lyc3cm@{gg2p8p(q9=fOc;}ccXWidzcl>!^{)RGtAS> z2If`f0JD>MgZYyAmO0CuXM@-fR?CL5v1~RwhMmlUhb#Op{3@&vUKD;31_?j1gM^=j z%fc_p*~&Iy7t){=!dt={!aiZI@RIO>a9DUxIK;mzyv?<6t^C`}S~gP{B@7o12=5DP zg#E(1LWj^P3>B84a9F`tqBX2Vm?g{<<_imi>xAotox)dert-B=Bs?w56}s5Z*)zf) z!a(5$VV(fznlNu!@Q{npcr+1BM$^zO=vHXqQgi^ljoxFvP|i`#SI$*7E8CUxlV zWtXxAacb}<89x{VO5&yj!U$W)+{oO=Jix3XT7926&Rk@EU^T2B+HGTV*@^4}>`rz! zdx$-);1mIhU`3chqexbyD@+QDB2V#|#@6kVn+N0+NB)D6;&)=kzm>RNQy>2B5Cr+ZNMsBVSscZ1px zVu&=v8FYq3L#n}Suo(&r<%Us)R>OS59fnngHHLMD^@dG`Eryp2+YPTLgeOELBqpRL zWG0vr#w1KlSeD2p3W>pqVTqB6af!Ob%*26-(-Z4bR;6rBc_robl)WhjQ{GAYX5HOx zwx@@T_CT1KX0(!MVkPqejIaI7F&GDzm_Jw@o57kTO}xhLVh^w%DUd<{O@x9bk`$># z6ArH?5EsHlaT?CdIk`fvnw!bBad&bD_z*shPv%WJKV5(>LKm+y=#q6AI+M<+E6|nd zhUzBirs|q>^K^@J_v#)XnpkO2f+oTYF@|`9foQ^N$d@$HVORv3c-pWQH1WLQMZ-43 ztA?FkO=N&3Mkh>8SPGipK@*{%iCC{DYExFGY)N@JWoOEslmnoN3+wK3Gd(@ZWdiII z@K2A455wWrd+=}hPtT5?&Yphq6liTQr{s{LNAZWETk$K*K?BSl@V5W|`1$I!FLjvD z`Dp+(1WP@?`uw5u{myltuRHfD{JZ7cRmc<0%W6D#?%ervN6)Q6=-hi}FP{Axp|h}y zI}5wFvrhv&cXq|u>(5R_=!LY$B+q+-4ho`m0@0-O=f{%cK; z4*N9teN^~JI3;{4obk{Irzl3sp9cyFq*R~-j$aCAaXS9NIQ;&9+TIJxz}jMKy%OxP zDEtIg`ZCu7R`-C=D*UXR3%2|XAw$Si&IW7!qcBj}Dj2y|u*oGtKfxu80=vwDosA=_ zh6dJ+B3L=BU~{KQHa88{k)_1$u0(eWJJ1UB9ndtiNe23DA-nYFOO z9Dp?juQ1=j8Urf~^CHX=EvzzOU}Rxt2hJUL!#Un3@NN1-IKw%}jzy>7Tf+&q27L@?@n_g(bRNEGe2sp9)99bz zR`ZYSLUu5EfYqZ9;QL4_oH)D;UQrvPoKi+ID^VV^4^AxKLX((tsEYXx-NnYBWo#z1#<JPAb+=JX4SR>lG4z7!v$6d!=&)vW+jkm5qu;c#Ye*mqv3VDo;UCbu-2sVX?!}Yz8QQbpT%eM zCf>|jcpGm8>*L___@6VU<<$OG>(iMCR-;Xcii}@1X#TW2}d?}y8C-OPGlY5%4 z($8F=sb1(4|xR?2f+$;Pf?p1y=_ZmNi+s$x}h8QgxpfqRp0gcWrrU&9^bXK`=wP2Ai3Z0;St znR}OS;STYw+zxpVv- z+^IJMpgUr)B7OgI&DG4H|&`a5u9wF7SOe1yg@pQCG-Ptg?SYcz+s3a4EN&1Dtn zde$G^04Ji0*g&+3HKEmP4tjz$qQ}{Ew2>`9FR(@EHMSCMX9u7yY%zL?Ek!%nf#?nP z8nhoyj6Y>(!YNuk`jTx$pR=>k7iC8nmmH7tU$Ht@kSsl6!ZXe#xMxr~|D0C-$$iw9W)dYDZ_kFZJTQ8pPp#3rCa z>?HI)dF5|+g^sh;a4I+reap^6->_ZiB79Bzp1n?ZSa?)eE<7SUE;JDz zcsB8Z=YhZd2YA}g2 zfi>@xa9lVE>)%1}u-_B53onDejeYX-!neZL!bRbN@SX6D@IBhfmSCS6_C(~T=OwW1 zfAPcMD{u_Mg!DO&!D*TCeg!DruaJrND`LANxT}JDMZ9p|A8+yTH|`3Ch`{@G=W~A0-MxktiM|!5OIq_T zgJZyZ3g*JOSkAzuaVFS76mq59AZ{c#9(<-6@So>^RlJqh$>rQC?pbalw-x(P+`HTn z?i6>9`;PmW`<+L;k`Dq)r~|9z0NXW!ui|I$ZTt=V9sI-mDt;sX8vi!zO26R0=YJP? zAym)`nSxU&1wUbuP!C?gjlylh1K=|}2cv5T_z6dZ)57<{?@C@7s?;itN{7;=9I2cF zYeBp6M&(_~N0m=2Ur_E)?o}RC9#x)Jey_ah7w8x3m*SV{XZ7pnH_Go?zuA8C{g(JW z=(ob}Ilq_u_WHf&_p#qOzaRa6^B4T1{1g4t{d4{M`493R<3G*6)&F|`+x?gNKjHtZ z|5pFk{NMCH;{T!l8UKs^qDr9(R%uiTsw`Ems!TOnHBB{JHD9$@wN$lSwN|x7wM+Gm z>ZIy|>K8Rq2dHDziRx^1zPeaFSUpMIpl(;sS1(pSq+YGwq~5N6Q+-5zTK$ds2lXET zd_Y8iAs{s%JHQ@L7*HB8C}3p3_<*SabpcHQ?Ewn{ZVI?P;J$!I0-g+57qBT{Tfp{! zHv>KhI1%tkz?T8v1pF8v2K*VQ2vh}z2F3*H15*RD1MPwR11kcD296G#6j&A55ZDqp zH}HnQ#esJP-XHjA;Of9lfv*Pc4m=R}PT-Nij{-jrJQw(5pcr^HNEs9q6d4pBloXT_ zloezR$`2|J8WA)us5+=Qs3T}W&}~6?2HhX@SkO~JYlF50Z4Y`g=-r?XgFXv77jz-$ zhoIkrt^_NBRl%XbF~R!a)Zpx3dvIZJY4CvH;lX2rrv%po&kXJgUKo69@ZG@=1}_hO zCU`^e*5K{Idx8%H9}WIE_)PHE!Iy%633i9DA^stuA@L#UAvqz=kbWVhAp=8(hKvrG z6jBw^5YiIT8FGEdEg^S?+#m8t$de&!LY@!V60$qwK*)O`$3s2|`7-1}$oC6EP{GCZaiFLBwql4@9hpcrIdd#Eyt}BR-Be8}V(#uaSIYc%(iuGtwDZ8aX_2 zQsnf=S&?%iZ;iY^@}bDbBUeXmiQE@?Ao7#QvytCNicw6IIw~?sA7zZnjdDc|i5eR< zEvhl9J?h4&JE9(ldLn9V)XPzOqTY!*8ufY9g{beN#3*-EPqbfjXmosZMzlRTFS;Un zNc5QKYoljG&x!7gUKo9Q^!?Gxqt`@liQXA~Ao_6hspzxOm!kiOQO1PE#Kk1Xm}2r` zN@Iq`jEk8bGc%?mW?{_DF}KAmjae46I%ads?wCU{Cu7dUoQ=5{^J`2`Y+!73tR^-! zHYc_;c1Y~R*qYdu*z00%jlD1SvDnqI8)9FK-4Xj{?EA4tW6#81ioG0rB@V>}$LZqI z;>>Zyag}i+<0i$`#?6kK6L($Qjd8cf-5<9y?zy;aaogke$Gso-VcaKiXXCz)b8C1_ zuqIZMq{-IgYRWXjG~+c@nwgpo&GnkwG)pzhHET56G`lo!X^v_>)tuM-sQEo!86OfK z7oQw&inqn*#uvwz#Se%d89y<;A-*mC`uN-8m&QL7|785S_!r~1$M28-ApUgxck#bz zkyfRR)@rng+DxrOTdWqD+6$u*>b|k!$@NvS0 z1QE__A`_DnvlE?(<%y#b>k{WD-j%pK@#(}ZiTe@{CtgVWEy+JACdrtTmoy-0Y*KAf zd(sU_cPBlbv_5G|(wj*iC4HUrV^UADUvgA(a&lhsfaGz>RmrW%Hzwbc{7CXs$a_J~o6}xN+m-fa+M%>#X{XY@NV|~sL)vd?f2MQk>h!Sm*mOgBTDmFSkzSNu zmOeQBn)C_j)6(nHXQy|hUzdJ!`W@*@(;rP=k^W5jhV-rJ+tc@^zm@($`pNXu>1Wd~ zre99~-H41zV~{b@7;j86W*9BTJY%u3(m2dG#yHtnZEQ5Q8oP`Ojkg-_Ha=)vZd_%2 z*7$<)W#j9{{l<5VM~xpF<ZpUNZh_ypo~FP-TQ>#AN6*QZuqM>=}g_r5S@VMrMr9 zn3_?S(Uj4iu^{87jN3Er%XlQ?$&57_&u47Ocr9a3#=(q}8Rs&7$y8*9WhP{rGmA0@ zW{%06p4pT+FLQC`(#$6^pUvEsxhL~b=0}-lGk?sylI52bk!8rr%F4?s&l;IEC95H; zBWqFC-C2)it;yP)wKMCjtm9c{vcAjuIqQ#XCfhGNI6Ep^o1L7UnQhI^&o0RxkUczm zZ1$Awn(Ud`bF$}U-7?nj>8$CZ>9Xl}_Fn!hmrXzsBDS+tfcOQB`3Wum3Q(q*~L z@~~x%WvgYk<$cR(%XgM;D`yR{##_^^c58`ssC9z1*4k>l-g>+BA?r%(2J5TV{no?Q zPpucMzu1s1z!qamwwY~3wt==Ww&}JeTf1$6?IznTwmWV2+m_i@+Sb`N+g`QpvAu0O zZ2Q>uh3#A0W!oQi&K_uwvg_>WcB{S6UTPm`A88+NpK7nSH`&|m*Vz}_@3uc;UtwQo z-)w)?zR!Nhe!~8l{k;8>{a5=Hhr*$9ggRmzdPk}w+mY+&?8UIIeRn zcHHfF$g#q)&av6C-LcPc$Z^8)nd7|UlB3(nI91LtXS_4jnd5Xi`#H;LdSD)9FwspO`;Ae@1?Dep~+h{6+ao^6$xi zDF5;N)%ol5H|M{SzbpUE{6qQ2^UvgelmAQpl>)9Hpdh>;t{|Zxqrg&-S5Q_kxZs+C z2?f;!vkKY@t}D2?;I4v)3RV`pQ1E)ey9GxJJ}x*@@J+#w1!BR~LcTDdFuX9XFrhHL zFsCrDu(+_Ia7f{(!l{Kb3+EJGU$~_3fx=~lYYI0OzFN4q@KE80g`X8(EWBL!dl6Tp zE($Bs7Nr(hipq;d6pbsYDrzd~Dq380SJ4AS%ZgSOZ7AAWw7qC=(OX3y6rC(OU39kS zV$tQItNnud>H3-a74#e2Z&JU8e)Ia>-tVD)EBkHex3k|{{Z95f-|uSwp#Jgw)BET3 zAJ~6P|N8!I{TKGXv;QOg*Z1Gje@FlK`k(IqL;s%Q;9`AoPO+ys@%zOe7JpWJuK2s+pNsz}VM_c;f=i-Gv?bXkxh1ZWAtmEVs!HaR+*I;t$+IO} zOLmpKU2?qS^OA2%esv*Nh|AzIyGmRmUDI8yuG?I9xgK||ckOV!NY zu+k~6>bAPMb)C(PmI_w|2}+$bFw?+F13Ls}OIbOIxo`{$l+l0|aOKgM3j#BI_@^-` zz+52F>Y80u)7H}LYMIf}TsO`5oQ1pW`M6% z1K>Ww>?+!>0lllVV!_Oo3j4t7sy4#YN^7@N4D>Oe8TLVg2YLDuG);xIRt)ORu?&~D zRFvUtpmGhOjTl759@Np;REr0L+3d2LZDz~hUbTQEc|&BZLSgRO;zm;q1L~i3h9t~ zTw;xjx^nYMNBg)sX-l2X(KU6ojZIBeqkX+Lx;Ix#g_Cl1Qg->YWll02EP0h|mExq*J1fR|RByJF+lU%0RD=pCaE|pVw1Rd@C9SqXQg7MVKAN;tR8)+W zX)@O});p6x0Owe2DaLw+r==n{Z#+@JcwbY;&uFWfTQ|P8v97JIy|I0wFNf$pk2bZ^ zK9SH7v29cfm2~!2=1n3zC-t5(`PM-sdD>u8Q%gjT41abG)08;IUyg{dI4up|`iK|&*$c#7lR^I}?3(4w6nO=`ukR ze2Sz7-c#ICVWDlW_$wWi%Jf|((@UAG{bk;!fvNO~0&9Y=j#7&I771AvRdGchg_X*+ zO>36c5MNP?Od^X^1Dyyyno`=jN|G{w{`TpDt}isTPy6L74JGi7bP^@w(dyL$UU*3Q zAo_bS4Sc=VcV5tZpD2U+)K7;BRn8#qw83MG)+`MMGRp}sl3YgBHmHv_%e>mvWO<97^N0Sai|xFu^Mi!N=3zKJCa>BAV4} zfYZf^WK5*LeI;cp70v2Zl1P{*Gg_5&^w4FD6u^VVYV-Cis7huB^|cWmLK{+Qu@{MyuIT=dF$uEu{@Bl^T{?N83QzQbra>oy?nY zNCj|}W@|q7LBP~j&LGmvAd=1SHExE?gPS3*8Ol&STP+RV?Ew|SLYrZAG!kwNK5nE+ zq6SNawX%_TG-E~$A;OkX*Sd@-$!acbqz!4D*+_+N^tfLz*vOv7>~!Hx!pz?6VeHJ3 z$vkUDTU}i<+{UhLtZ5?s*F+lHB%^79b`cRMUkeezQemS4*=-fQW<)dL(p-g~&ueRG zZK!J|44Y*P2{SuYk3F}}vv-i(@B9|us4k~{Tu%FhxU;aKpe4&mE3IbQQC6y3n=~ls zfGMkN@w&R@RNM+WT*@gyIqixHON-nl(Qc@0kqs3GE#|=Np=(Q9`tBVlKRf0J8=3Mp zqJ=in^tRqj2TMnVbWo8k66?x#QidqUiJJ%;3CX9=ZI|{A?Y_=z@68n!3Ch(;**Wu@ zTAF9HcMu6W=m>-b24{i*R2TVl{5z@a&dN@Y;$ii`dj%k*s+NXwMQ*28ofWi8Druz^ zl5)#C`{)rC1F8~BZl_G0xuu=bl%t~-n-bFS-25)0g)U!1yFA0Ii!4g>eL18=9__+P z$9$4a(kkiDuu)Z1<}V;T7s%%)%mZ5^NuD;-vva5-1{OB^aO6Qzq7a|ib;(xrQtE(^ z`bsT6no_#%(sb$^1CFgPW$6>&SH|U~!**GgE~~?pFH5H`NR>x3o*ZnsJveZpcvYXZ z+~pMz$SE!vc2ZQb?iBZ~vp!=_GkgwDm82@V26$@6W}M(OSC&bQJIy15(^CXC2DIsQ zf2E>Qnd&9qkEpmz*5ER4%V1;RRVlQR;;{Xun@?J~cQp6}D5W~C>!Yz!ug3?xXqQOK zh_9$c)>Rg%K03sGG^O6IHCr9Ds(O;!M1T7R9yP)=RW{FQ0tikJ(tew_UQoGgh}fvi zO~g(S@)p_^v@Es=B$XNn4?k=nyf~N%4-T`%TMt+oZ#w{|{nAA!>D;AgpHB47Vw&sI z@O+Xm-`9581gBZOx{Wki?paq-Wz*SD3J{V?ue`7xdfNmGIn~huLP_lcMSWw@XD58@ z@+pfk(;Dg8pj>jsKtrjoYpNtGQiE*>{PLt%L#zgaCjl@xa>gmrI!MreX|fqN zsut(T=5|e8M*~hKUME2$UZizquWrm(^H>hA7*xGr#%eq^tA_fdkU|P$dj(1VA_ulr zlmc5S3G;R$wo+1>rxS^V!cFtoC%`?2=^kQin`%6kiI&H931ieM)p%_Z&BYc;!f-v3 zkLyXpwuqL+mWX0_S3xkCCVmb#pRyH!EOL^lJzN>9#-$TvUxe;Q`?%B-aU%Do9q}MBrPhJ3W6K!t5%vhAPS|I zeRc4ZtMH6-D={n5PQsJx@bYqa=wM5M>-O}8Y^pk1Ayli-Hc$w(~t5k38WJxS-h%oc-3X`Ns8-g$KdHWD1>(?v^Y2dxHrIxQ$tN8 zb>eP;5kWqC5L9j|L16EfH7^sd4A>8$ec;4hKclW~Hf&O>o3IFYk)aMujmLc043x)r}o@yU`V-K(oF9v+bONGoxKK3E>_@NfG!N47Rz>6 zI9b*xy3c~dc>wbz zgqB5pqV(<^tXHyM^o|l(Exbdj-qRa+*(Kb(UK)+{(r|BoO(N)JhiRJJ{Uj+wm&AP| zQQ|5|UkxN@j-<=nGD_ELg!Dad@ks3T(rB4phL$E29d3n+$_lrdF z8cva3TJ(BjG_UtED&ylFPedKWIU~8$Lz5B8?UCfQQP#cMIL9LmUVcfwv<6eW*D%9s zpsTT`8hq&JDM#cX>#`@8o+-$bKvrm)>n+tw3G}Sen}_Qot2Qn3HzSCw-<0AnM-W-b zY5u>?ZL+4*Ole`K5xf^5tGh2smUv&3tn;#{ckU8JkQJZi$`4QFO`~f+rRhB?2?yc@ z(A++jLvGi-P646Bz5p$PL=k~y}jOO8Udx+uBdJvFvc00Y4X1CIctW+ecBqyb`lCyogl}cu%wOgr3Rw|NJ zl11W4>!a7R?DR{EoqnyengIvlwUkWJed@61}Es#&;B-f_Qb{Fjj7cEXMMM5Ge=a5uDE=58jElw^>LX1jQ zN{g4$;-$1&a{JP3CzlN&AmtpA>ga_+JGrh1d6WzJNNKi{kCYHlP0(+6cJf6J5~;Gt zH951L+>e8R)<^Hh*~#5GNThO>(`J%;Z*UKi%1Q3TL5!BGpz0ylyC9L4tDxm7sAS~M zm)TxP+ea>0L5vo!q-w3Ca{2XMlqab_cn9W_Cy;l6 z=Kx>ODjhJ24%gCNQETs9IEf;}qX!b={JdUKm+P;hWdp}j&fc2{FezXoM=!7d4(p)@ z_g$yLbJCY?@!n_vdaxfJ`aF6Ef$+yi44!n~3Aq_&o-f@BCutrUEBNGITqcjXLY7`8 z!)0~hg9}etvrIPWN)44qCa3HIiQOgRDf=2?FPF)QmrM`;a__YS7-_P)%4PCY$l4`c z6(KT6H#-RKy9t6vmyf@6)dADMu<@niBLt5OE~*@jSglTHE9ky+w!OtBDY{JMPOV)0u=G8$d$)#AcoqXShfKGWkosf1ai(QgM;z{eX)7fUHl96i&AQ??` zNX?{;wo}O*l&6E%;GnGOM`b&`#A>JCqwVD8tJzM!{@R_ihFmIjE@hohWBF2y^311l z=FSZmr7vD)8Z~#oLnja5?Y*GIDr@~PHw1xnWV+(4HY}RjBO`( zHXx6bb4UwRDXpE{0Rf{)hX%b3ZYMXzA(5(p+@gjURV%sm0wbFC7`+i|Cszm{k;+M~ z7eI{4Nv;M!jLKO-%aLmXU`c8F;6pfGa>+Mv2xz$qDj@ydZ6_bbVFJ+hl~HDuv^f1d zZLg%-t)#^(Y4J)z>7WjVgE|-vy6!v3H5f3jl#+b-29*;o4lAtz?itCgEPVOu742qA`Gt1R4&lM89@Ee2e{>y_JEDtm9K z>}9=)drM`n=#>ku9pNl3GA=5!XBo+tI7_*3W{Zi34WY`1b7UMHJ&Jaoq-RgGTxRxc zw6UHn8|?y5RBF2?YLnS!p!C^A+1llh)5z>JK1=r6QQ4XRJ>^Z$ldUIq86SM)?n%zoQtJf*MNq^v_mBm1fhGttLWx}-?x@o~OK27KJ_#lfxj;P@2Y zgX6P#4~{o(UL1}AJUHHnd2w0UJef|UFTz*`8}%-2)Nt8K%UT;D*=iv!F9fayb!{!C zmiBu1^B5d-bdgv`16-oQ@%om|HWD_@CGmFnDxq0inbLV<00=A(9b<@Pib>35P^7oJA$W7?BJkw9TE>?U-{rgrv<7VpW^- zu)T!@(SY@$CLQvCr& zM5=9WnJp<2lBgm9!CY__mXd@-mlz}MCkSpoMkq&uflhHq8Dfku#0aUZxpOvrD5*2y z5OXFW;fyiDnIM=mMzG8zBr;=+a>f|pj1kiAT;ida=^ARL+ZQugX5sD%RT)|GAx71i zOVyc+7f(pcm-?qw>YrAre;}k|va=Ni1&s4{j9~dNLUjtEq|?@Rk1AU|s%$0wVj*rE zd`YoaSJlj--@9t6+Ur{D+8SGG@n4U@H}F~$PO9!~YO3oXXrEkcddpm6NY>x7kcg_` z>sMVITWpiE|W#2+C79G z-Xt#1>y<&ok~1O+m@U?IF4@mQfL$K=8%8>C$q59+i1TMAyMBmCB&B7e2yLmO7Oq3q zw^cRQRCKnr&@^gX$krbINTIx`v8{?`V5b|-gs}q&8P3+ac6dygrcv`moKc{lwUFZg zAjJMZ1SHXFkpgPE9M)#g(wxq!Cb)20g~vF?@eKxoRJFFYwag=EBg_Ce>Vgr{+A$yM z1zX+5kb zOMY%uTU$$4XDf~6kr+`t!Em3_oO}|;-9zI}60dIQXdp;uYi+ZHkfBU)+JSh&k|-G< z-Wcg=9K-w^WzMFS1#tW<#d7QMOsK7HnMZP67MOTdGpLk~QYVSk63HCoRK@C`cFaNc z2@u1+7;q(hVzJopUj^MDtq%V& zsnlNbccl$2EwiesTjqk|Jk27z3me^)*y!1h%~A?qd#dZ2TDrV+^jytGPsD6==Vqhl zKsI^~WTSg~8{N3u=vLiEx9T>!RR_7q=%T`r&gc`j^oiSL@mx8MTP=%|&LMHHdStnz zoBG7%rAuXbRvBI<$Du~K1WuCY?G_m&>95|ozE0~yN2TzNG+C}(KHPV5&5>@E(N+?? zSLgb2;r53#P0i3ZGF;XgTQBY=Y6^U$&~WT7o1w!^^phJI+;|-xH>hF^?M}M6!*O31 z^roP@L0<{FrSrw?hm-OQHO77!Tb3&^JS@|A7xp88K=#XQ~BCyc4ASe zHZdw$6pUgQ9RiHvRS^QXdG4Xbs6>lV8G)>rtciq;SvKql+dgrdEKcg`6PK4KwUYd~ zb+B&2GTH>&Gcaqj!65~WwYD|R#w(U2Hf24=_w}mXZ1EI?yNqyS22Z43DZ|GO9qKJW zIniSb&nUK*o{I3q|M*Nmv0KAt!30@_A7(E8B^{qrt zqdo9{q5KN3@{MQaGB-18m`|8r;Elad*2PX^=dp{~2ia%Yv+VB*g(5~_gtzhL!)wBu z6~{S$csVZ$4`btk+R_ptgY zcrk9XdYk%7crETqKy*N2Kt@0jyb`x4;5K;o%^%)*n-*9X*c^B)@XNp}L7Jenppiin zgW7}U1)U4NCU{=({lV*l-wZw*{B4L35+0HfVhwpHgiZ;a z89E1EMB5npV(81EyTZcY^|J|K)54a*t7lJ#ZH8CRc82W@dn@dG*!N+-z>8;z;o0H# z@WSx1;mzS);oISDGi^jdgef8~qJKnL#8`OQtTEyyc-ib8c-d@E#5)m3A}&Sz8L5a= zMkYn}gZIp)Mb<<<9eFVF2)tnSb>z>HSE5i94{w-hq9#Tyh*}J9mOU2rWYor}Z=+E( z7p;j-j4p-O$tFctMK{3vWDBC7i+&|~Z}h=vcMOUVV$x#@Vv1u1#!Q8m$mYa!#cYV# z7ITigJ0`>i#D>R~$4-r{jh!32Ja%R5+SpC8+hTXdeiEmM^NWj)D~p>F*AjPA+>*F^ z;6<^$aUaE<(SKO6r_{Lc6<;(yU9w0_zEZMfE;wQKXW<=Vm8k=n7^ z7VT2)7VXR0L)y=@KWTr}DRe4b2)swGg?HJrbQXA*eVlHht`1%zUkLAl-2-p3FVnrM z`%w3bp3w{XKz#(f24>Kw=xzFI^i}#ceV6`v{WASF{plI}{nKk3n=CzDnuJ(sjQ=}6M)q_asElP)KT$!v0XvL-n# zISbwuD^DJpJSuro^7P~ecwKB>^1|fB$#*6%g*V0?hgZh7B=1OmKlzK~Us9AQaVc3T z#VI3GCZ|-V%uH!d=}K9YvLxl+l!sHENO?Ntxs(@Dw!z!$@27m2@=eOmDZi&GQdOyu zsfN@{cy}x}wJ3E^>WI|osdG{nrQV;qJoTy67gBep9!mW*^{dqHQ-4nFPGi!PY3j7F zwCFT_T3VVZ&7M}2R+=^lULzZuHYKe(ZAMyq+RbVAr#+drA?-DIjqHuIx6JTI-4Gnu7g*|%<0bb{^VjO84XPj!RH#QqPj0=p5 zjEjwT8t*ecWPF^wK(^Jm3*I05zYu5a0*S4VDB4bpyha{d0-b!Do%AG_y?N8{Yji;l=6yQU3zMDKo5IQ+=2 zmyc@HHWeY#=bhsl>Z=!w(sYRLMjqN;KW4e!y?g?H{@%U2Kh~&gXE#?@ub;DJ%lc=w zZJYgUtv*O>6?4UGu}-Ygic3|Zj&p}*cR!%|=DZjxhJIsq$GT&)&F)YTBuSgB4VniJ z?x`bFwXf8UUO7nP&T{*^k-ML}p9rCtb!`9Y?I3e$swy{G2AyO#RTnnop_h{u-0ApZHcIP`;C>`w&~_8Gp0^T99Xe>^Hkk1 zH^)zU`(oQAjX3g`uf-|)?lHY zUlsmKhBmyrSQX@s6s_XBO0mMtfA7xKK`XzCJf-~n)t8SQdu@8Iu1E=TWL;t0ncWQU zb_n7PSGL@78$Wq&`@HFzrkRheY}b!+EBK~O2j}n8e0O4t7`0n3F6sV&SA*#1bmB(0 z*}Y%sF8H=s)Vz0a&Gv0j`_4@-?A+1t!lX$JGbT^kG-D@jYLVd9)T#uvyIJWD889x( zG9=4`L<2Jej zlHC@!MGQz5jYkfwdUcz=LzyvoqMNNOd3y7;v^(Cp)b^7`948{&AL__~s_<_IsKP%L z-@}MD{JUYQpvZ2Awi~piRBzwhI_)0)_rfjo zv616i*R9{Q;px}5uWN5;XzrM*4|-wK(8C%rNu`bq|89mV{POg+xx!1Tklo~lkaS98>bo5x@O0nIBLB6 z;21Ghqn_K+cvFKWbHJgWem(rb5Bqn{y>^TK=L`JdQTZF)oW^|(h#KauaJ$49cc55y zaQCw3w&~TE_P%!V@YYt9J6xw;GrD+rk;Xm3o@bi0y6TkgCZws zMTK*yU@0Q6b;5 z<@mf~8g-E8T>%;r_Yr^ zOKzE}RTmB0_sutN?>n{g<&Fu@>czlA{8zQsoo-&^E^~*vm2RiHP!)dtCt7hZx9OQV z4GnYVG&Ih6X49s%&uq}Ec~L2-7p~rP%O*|tds?+S*UcH-6?*r(q7|m2$P1!nlu9io z^XjRQ?l~|;Ozv8Dtq7qw2V1%BRVp`_I(Mu7%4c6{Ygaa^)NU3^xK)e9Kru-4gMUFa zUFsuGZQFS=Zp*@r^VZ@4|HyR@&FzSr-qbNcH}RTfFxb1G=4^KzSW7jG_)h-(mOUT+ z5(j$p|IR%^=YB(cRwa%X6NCo^QR5!Z-`+hcvUuXP={k2z_fD;F>Gi4o^+B&_MV(e% zr49ON`Izes--NpJV{W&}>FB}wK1tWP;M18T(@rRir4h&rbgPz}N6Qk5CwD3f5@(QiG`{x3cdgdMT=7JH9>=r(|0tF(&KfHWm z`^g9N*+TdyElXz1o2Uu@aN>*=>z0s|k_S#qxvUWf{TZ@SB_0*T`JzSCi49@{3|F0d zzFsYMsD`W5Yqc*zl$+cAF$5vq+qGidrErA8JCPWn3ZI33zQ~7fT=b;MeGQ0W5C^yD zJI(x1ZTM`|K9CQ8X_2^G^`fY}@8Zkvd>oquw4G?ol#wkJnxM#KDj2_Ww0>%Fsbay%U=7P>=4wkr^ek zM@`g!X5lw&-uA?P&FTHs1DETsWD0jKyko(QabSsq62J+_6N9^Xm2SnAfsqvxUin~= zUVKuhTr^>Nxh6;q?m=zWd1m#NO!@ zPw3q*2}hsU`_gfZ`xI9?_Laj6^x{iG#e%WZU7DaecZ&F=Veaa=;(joOPBAu2yk0bJ z6Z6~}F)zGdw_BVLd1}(z1?zO-{U6naKY4t|oNR)agbooASTQS14hg_fmzI$ za{@D%b0rxkO~Ibn`#0ujUQp$GS0J*d0y`@P@$o!>eC<3VO_-@dVK)l+q= z3T_NA_ln~(Z_kZ1IN2wWTD9{sygx5Pzsp(!So!TXyPQw_fKh zN00B_a?x%{caC(c*kzS)dP6sBR>le|!TmO1?nv zM4P4+DA6|%^J1sQNDWkn!T;;&9&@8+w-aY z2_v_8$qhUkH`KeYS(lSe041Cd#Rr~S2o~!U7FM@xvWUR`51DE@6!NgXy#NWC&*GJL z!r-H4#$F8ksYkfCNvUwr?(Cy&wsL=6jo7+*V%&P0wm@?VJ$J?&rTrbC4Yl^_J8$6t zJO7nCg~aHDmJI{4^bDKX%FTp&3ENa6M#ro0Iy8;>G>zLPIymKp;M=B@eZ5*VYtgGz z<%+9!N4lmFb@9tU;&{<-zH-k`weD)UR@lvBN2n#G&O@?}oQ48^eWzGB30wM!myr?-Z`^a>OGG@q9#+?;Qttx|P%-o8_}sk7zPCuie|G`I5Ti zYqGrOwYQLJL{)Ar{2uA7Zl|qtG4bv9Pn0SC$xMutBvea-L^x6u=>o2-;V`e-5%SkcfS$M z?S%^wwarj?UVcj_ixd2dkm{VOW#b1;+HviR5JFfXn@Mgs;e#a4jpLrY2mR#ce(Wfb z&}LrNs1{HgSS!>W)VYhD`_F!Uhg$*<9f}*Y&3=ZPg-z|MFC|D6ujM7m9-s~4W@6`2 zv_u}SX>EKpJlFEtduflYVQrF5TsXDo#;qfr8#HLyrKa5+5l5)28~x~=?Ib?CfR{9? zp43_OrZHWpvw%6buX2yTKlYCww39lMg-va1EUgx(_0aNbf!bs(hW6Bpx8Nb%<0a3- z{c=Cm0`0xEN7l+6_MJIEODgWygQ@cebYI zNrXWcsG)qj+E4ilk@4Uc6(i51@V?r1o+(+?*-{qDu%B`JfntB4TI#E(q?VO=QIS7W z+X>EgJk-%tD`L`~IimzMN-JZcgYZ%z$V+r95?HExt#GX%k=NnBs0T?TYm0IS(8@&&uZNA@amT1`)p0NUmS2dP#&mQlHzA*!#GGkh}YXsil+{^EtnUP zIx{92jk3#jNQ}&h`BT4L0Oba4bfzmwhgUf68?6zzEQ%YCWEP-v>EL_{e-b6DC zeGlFoc{`AgBhoER;9w95hU{9DeLfwQYOVHMxNvm$^@oSrMmA{HxdzFs@zS$*SLVj1 z^LLU3mMwg(defSgDp+ndQus&7P9+}|n|U8EErf{8XibMUpE7(paRSvnQP2$HDQhk+FlH*1m zDRolz6aNU2(}%ArcMZFwY@3;svQ0nfU4; zwTJckM}^NbSzf0omb>K}3~bfSF8^FAXe%~RA8%5ur)1~0+K@)DLLwTqf) z)s~wq4?gHdv#<^vxp=dk*E4Zb zg9}=ATQkkPOiWrmFv_llnrbKXKQPADeoRdN+5z-6YRJI0wh@~76lp9ME^w3n+UBK; z*V(p^1T^y^idI6@e$!QGl!r>(%waqg4Sa?=_L(GX<*z> zGRi*0Ol2;-IP`R51l1m%k(Bi?xnnmk+p)(M4h#m37VBWEs6ZDTH1Pp=zOoWMzf(&(RRy&b6Ua7 zfoc%Z-+NwJ^Ppo<*v12;OxpQyiHnNax?bXA$gZ<<@utnY0uJ`r6xpxe#L+`-YugF) z7ymwcNnlT!OocahIkS^`^0elg0Gh;Lngp*UnfWTkhacl*E!%l_&F!9I8CaU+n`OIN zgIaX8WB=I>eJHkgRmeoN$dS0jI)0#f@rT^~PYD;vne- zN&8-k{Gt@kqvhiHOTP4xiPTN~n-#Jj*Su)H3a=qq4$FO&{qh7}P?0nJtYvA3ijg9C zGnsqaRWce9fi)F>2cSuKfNx4Vj>Wv>oB5<_nbt}j{WBg+cYUm^Kq(cJk#ZC#Ao zo?B(oPEsU!Gp|V_>Zb74u}nWD<9RhYJ=gm^CEKN^=1HfWP*RJo3H`T>A%SlZQs{iR39C=cT)rycSl1l{ zlaB4(eezVN9W7dP>eeh`ZG?fL;!lk%1K;}Lld4Ot; zm0L=d3|fN{|G^mTd&#O>p#N!+w#kqAoM((L;YK5GCnujd`tafDmX)YjIm`3P+AVFc z^@+56>C{O}Y{bs?BRb*XE zx=dd!$n?dVaF6#yAXzps`*?p?P&d@FkvQFyne~|iToz&lFk-F@>L6&|RP<}p==NBIz>Qkjs>(1rvW^J_9GLScs zEZc`&7fvYKH*J2p!`^7OkUP3v(}n?c4|jNGGgq0=S2`<`h?q}@y12sQXt{ZHlKV1m z74lW9V3V6D2l!`&HTt+;6R(S@wqO5qz~d7{Fv^F_KiEhv`dg?f;JQYnB}+Qth#;f08n z#EP2SK?~DJhibTAD|cV>vYB69KJ{jXZVh_YX-NMrHp|^ELpJQC?=pYO*DKFyeTh0d7R){N`0w(w(}wrsOj!R?}x(q zNqwyjxz_3l@1!_m>7qa`b5hVuBKOzj-_wXl#f6Cpu9L+=(!65jEEb(i3Zp7M*DYjD zh5t$mrjAoIU)j2IO%OdrQCy{hn1Mxxc?JWzH_)-nD-9q}>ltrgI`H8OKj5PYNE+}cmLM&=ePH% zYSTUvGE6ny-AmthW_>Tk$-q;v!aXg3Oqd51-i)u8EO&`n^BS6k*Az61NF%99BdI|Q z#LtIU`U^AkeNB&t%%k3a;2w6Km*ztnp(v}ZIVrZzrKAnklezIPEYYh*Q&shf>DsvS z!_M?10TlL93!>igCg0@6?Q+bP$>?Xu%yOG$QXp~%cRLZ!d2s1}y^94*w@lIN0SOHa;3%LX!76*AH1jV8-L`4@hh z82Xgyyt-CYt*^*!5_l3R`5n~klAO$Al4bR{vdVOH&6)!?J}lE@;&USw?T)x#0ITg!qPD7j(TN zHn8W=WwMocZzGpArwL8Hi9Ypk(ej$#_<5w&)>76nCvx1dVaJaC8=}dnxLddN{prGV zDhYkU_b(nXzEhVaYjtHpttZJ$EuT04s(nw(Nd}QCirEonr9nNEoS&?+RzWkrl;l<& zpA`)ZZCqdTnPz`49-O&az9m_bWIEidCMCo#x6759whXhG+t;Ywb(d_?e40mSs9$5{ z?nbu8nkT`G*L}VOYP0wwLea8jS;tu!o;Q$JAR~f)iBXQEwWw9lFEPUDm<;0uwINzT zLGv{6a;buLp49*ICSE>-ELp`gH|{?!M!icwHi1Bftkr+U-D6~8n4Nfbx!bY#L;ehu z<9WJ5H$f|jkrCS!N2q5M(uejCZ#0n@7PTc`NE`5Ul5wL(;bK}PyLOouA&7j**@WMc z5?34uyttL$k$RD3E|oxoAgn&7g9bTKT|=byh~`jqVT^hpmaS0_7}xM+R=!?a$LSya zzh01MX5GKH#-N?xUwngDv3a>I+v)BY$POXVi`%h z5=K?i6^eqQR?KP83aSQyv<^AKx=hhE5R+LIm8~RC=J0a_RQ4)_2MC4{+DazE&PB## zGM>|48kBc-l{D{I{qP>52Xu=|WS(EFp&O5QDS`|nKbagoLD!4aF~qL)ajcLgJ6l;b z&>qw#vG-ZxSLtF#k>ivJ&I?wJ5I}o=+xqePEi%%|HE-q1S0h{_VSFR}BMpI&yv(0S zmOqFYe7sFp3BDCBX}-1E#Euwb=k>MX+5?k(Q}K}<2U_a)6}s&H3nPh(kZ3L?$4GZ+ zJ;poM@-)&N+WM-bvNhwsxpch(S~sD*yn6onrR!{(vRW9?Wqj8j0l_!JxsPqVNZ4Y8 zd`6k3Emz|t(eg(S&u6lXBv4>}t(X@`7FCWf#@{K#joXq{Bwq576I2WFw!9>)Wa9r! z9>KkQWZK%hJaix*rt~LWf*{qGaQ;jtA&?X=^Et{rwU~5XykPgxIAM4vlkqLpmvuZ{85K_~g?&(oIykm4Z zyLr4b)mpvvk*7}%AHI3xXxq@zE!&V9Pb;m~&N3U2V}%&0JU#g|g0`)YnqN_y(-j~O ziKF$c%o!Oz>067vyagR^erN*Esg{nF30CkuI$pDUBy@D13QkF+ju)5hnzyKxuPa+? ztF#9}JdSSda>$&ue^cYEO+Mf0K!t^}YE@!o8{GrSWVt&d)7iTq&m}PMg5Oh!CQ8it zL@UadN)uvrU8SmGc_8Z-JxAi3lY~=?O7@A|OPD-<#N?5IopiIRY*K?ryP6=Wxurk2 z?I7WX%tiSWXW88Wa9&<(|r0aU>G6S*| zB>xuhaz?&G=BN3X_iTE`Xd@rvmNEMMx6z_mjaBFxm$Y)ZTO7SrJL`@@-lq_qw~qCZ zuV}$!ZzfY20R_^m)SZ&-%&C@CR41)c`h+`CF}%(VVkT-K?wLjxHEX3)bc7VXi035) zds) zD|?zWq3o&3$9L0qk{$50&Jo>6Gnz(dRrdYcvBG?6)s`bS0?b!e>^gQozw!+v+zJ4IhuPb@)Q0G zahGvljcReZ_XIK%2p>2(M#>vUkw%kDY@!7@^~gK!+4viRbh}^ZsGr2_FSHNxU0U)^ zytJG=FnK$H1ws^L!ZtHHt45h^RxjuaV^uH8TD2J7SU352%LJ~>?3r4{_)Hya<-MF$ zcrUez;JN~S!(Y(SmF4&77U~`^qPmenxHhvXVU6kBb1C;6#>Et#g9L)7TvorW>pZeq zV7aEdFORaT#0H(k$oN=HD^9=bxPB+fTG2S}ueRX6CyAwy<(fvU4t6vp`=_&vmSpYJ zZ~HB~yfsZICw3?)jOsUe#HfItYX=`CS+JVy&?ZM+k_l#QwP?=L9n~HRnVFgrt<&BT z`W{aNOBZ!x$YPyc?zxJ_UXuSVXknsmCsWhOM&jrEs`<&hAg{>_%F|s$A~)wn)fjr_ zNvaB|?K`v*L>-AlV*+1H_w|cE^Ca%&Z0)=u({d2kC;cFYx=`6nA3F8hcKi0mZF~1^ z=w7W_|Lz^_vU*L@3DB~f_MS|dx=L}7+mfg*ZHY?gvw4?j(sTRKZGcP$#ST1>q>NSG z!YyRxiz1y*ZZfQMX98t(`9tz6F>5amKB8AG`<)}?yy^(T_f{R>=_czeyhnp?N077x z{ohV2%!_F4WxA9|J$m5Im0d1-vYfTSN31I0Q`h#2zo-`l{*=@bT|{b~xFscq%!dAa zS1fxbH*a2dP@}-Yp{G6$va6>=`Ng1@@04|XBK?#n(f5oO`HQ_Ey`qRQ1M)E4e)&~a zFIs1CKfyU(=0g;{?Ra;7%NkXa-x^yJIxPZ2@l$J+ddT~7`!BmXL6495SD=JcL+B%}Faz-It zRJ~CDkeroB_b|$*+J$c=|Fp_kDz9whCUuC_S;eFhfzyf3ah9+Kft7XCbWK9r-gJ#w zomATF`dM1Z*Q9G}d27*3Q+rL<`Obne-%4}WmTDd36q+z(%VL-Gs-R0RK2Xwm4X-qs z8|Y;1`ONduq%3hHFHc)ZGPfGfrTNDCtmbyvs1DaR!{n@@(O?*#z`cxW0?GdN zyhM9?9($M1r-6|^I)W(R6w@|bH)`u;bpVM(8qxz<{ZsgCGOu1aF>a|`uy)O&B-A(3 zIBt;-gnWv7D)M68K1HIksxD4S(Wa65Nj##gk>8hz?U?Bt*5>{sT8U*6!XcGE8;xT; zRgg>6ZC3ObYS7Gga5Fje@uAL(gt#{fW};!@DP;(zmTAii5;M(mXUd{6vLb51L1CJA zKRO00d8qYN_dN|(*kt3E>sHlI^>g|W8?XQD8DB$k{C9#tB-$BSGpNU|(jji6owl(Z zyu4bUtn~6vGgWjh-Lh~A}>gwO_5)m+HsbbCfAYU1cwKZB9Iy@ zYq8c(yiFc56_?^8=|GY9RR4Yhh7&rjPO9BSK2(l<%d5)_!N6v)DI&Ij%@VK`>{lQW zY=IHmz!m}9fnUHD19=!*!mtBunF0C05`e{EE8UPE*a^1IfL&l41?&df#;^x$hdT-| z_J@dqV8`502<$Yl7winM59}a`3GGPW#4D2CL9PE)h z{s2k<2f_XXlE7XII0Tkzz+teDo|p;t4LAb!mjSbYlE5;c6f+n^ib60*%-{hWg~3xW zSYYshAqP+f2CIOwz%dvC8IHrC04HFu0ViRw3x@nKcCkTZi+Yu!+ingVR#B$fZ>@DRN)nH377)| ztwRlFc+GGbhBO%7GSmXr!|>i{_z2VnuE3CPz*QK&2)G7=#&8{mOu^^|qY*}dp$;>; z!)Suh!(jA+(G#c#quF4zz?dDV56lH_z~}?qgppS47K~N{Zo}xujDau)z?h4n0gN^S z8p4>{fJQLp6)_KJ3}a!S35-SEaR+D$+=Y>r`W}qs1SG>)*?{{nhI?W@jE#T?Fg7-T z2(KBi3W#9FW+Ixy*xG=HFt!sZh{V_hXaQq1j9p>u=7yHQBN%%#Jch9^@C3$wz*89e z3&vqE4uvtsXdDIONEk;0t(b9)5p5Wr!8i_h4&!(M?O>b=ynu09cH>eQm%zBJ0s1lH z8>2B5#uOMo1i590n>XAnaPxs%4!HTk%?h`i%q&{`akoZrYY4Z-o^I{o76rF< zaO)7_HWhAD;5NN&3V5V>Z(|`eB6=0&XL;coqLvLU>(1#%g=mo?A z)c|*37)%ZQDa6Ut-3^_=iU2(T8h;;{hzPsE)EB1y61u=N!hmR)M#D4~rZE5=v30-( zU$uLcIg9wa-X%%D_grwdxw+?sdmgywliW+ey##YF4fk?z4>gz;(@rpwB_J-Zb2>W4w6eQ&PD&@4 zNnm!cGGO&c0)edoI|23->?`qZ7#hOR8HN}bX2Y;b=XyH-Dotzx#sM&%hg$`>b%fhc zxW&V50^Huf?JI-=5b8k~3Lyr)T`c6{amPormcKOe);7!My<7E5f}s+=sz^8Qf36{SMqe!y^Yg8o{FnJjTOgIXoUi z3V~D&(o9IdLV5$~FUbCoLm@YY+!69p$eSP^hWrrnTgaL4%n#3+@N5Uq-te3R&t>r3 z3D3LmV(_xUD-XOP;nfRXli{@yUb|oxVYb2C80P*kPlq`H<_9pRAX{E!D}!u}kgXlE z9YVHS$d&?c5#D*>T@Kz8;e8F>uaVso+5M0`AF`K2_8Q0@iR`P9eJ8TthK~t8Ip9+S zKK0?2{H3Hv74Pr-fw z$en`RnF#hqaDD`bA-Fk$haz|!f@dRmGlEYd_%ZUhAy0nfDUCc$k*72A^hchl$g>=I zb|9}6c}pU1C*+-pyt9$lfqb=)ZwB(MM!p@$cO3byB7Yg=uZjHQkUtUmA0YoX6ex=V zHBn#;3amhZqbP701yT{>h7ezbR76N8gxo+u4-{;Gg8fl&5(+Lu!M!N>Ckh3iPze+o zfI=ft=l}}cLZJ*4_Cn!c6fTRx%}{tG3a>!nV<>zJg}e^9tx$3ZO8$b9TTt=}NO4w4M`ht5mif}YEM*Mg{oUo^%$zAA>0k&zaxAP!X2oV8`Zj?T0E*PL$w{K zb{5qhquN(gcSm&_s+UFex~Se6)kmWGIn?k%jR4drh#J*UV<2kGMvbee;Xus-sM!@Y z=b`2wsMP?qnxWPd)LMdC`%vo+YJEg)5w)$T9fI1CsNEN}<4}7AYM)2#*Qn!(I=NA& z66%aVojs_tA9d1DwZ4vK)SHcZ+fnZ_>b*w& zT&Q0H^&6so8`R%}`WI3EPc-mDgHSYRhX#|;U@IDYK*Ks{*aHpEqv2gN{1c6Q(WodI zRYarCXfyzg=AqGXG`faHAJNzkjYHA6E*iH+rccl;7|rUS*;q7NgNRT>)I!8CL`*~kecg$OqlmbJh?j_PBGMm` zg%KHs$OuG^(f#=%6A*b7&D){*1T;@T^Ydu_7%c+PVm4YFK#N;w>4}yV&~h?b?nKK+ zXyuMpMbN4mS~WqdacDIMt#+W*5wv=MR$oCtw{-!uZi3dM(RveFUqb6|Xj2Mp!qKJ; z+Vn-6rD$^kZ9bu`6>X!@b~@TFL)(35dmC*(qMeL(3fdJ!yQ*l{2JHr*-DI>&K)c;& zcLD95Aj*!YVu-4Rs3=4YMbunGJ=YOJ`}}C%4ejTn{d084jt;faVH7&7LWgtc@E1Ck zN5}r?xE>uJppyZeLeZ%`I*muCo#^xioqf@{Gdll@&KJ?8G`f^Qm(%FV(A5iFbE9ih zbd5&WSBPea_D6ILM7KlqXhd&B^dUqaLG&F&e?T{eZvN<265VQ{TPJiIg>GBX&4KP- z=w1=s8=`wBbpH+Aub_J>ddTR}06n77V;*`2qh~er9E+Z((aQ(Ds-f3R^!fw6UZ7Vd zdfU*uF?x?d@1^Ly0lg2R_Z{?3M;|Zr>5M*u(Ptj|tVN$p^v#C81<|(#`gTCy;plr1 zeKXOo4*E?*zjx^00{u^5Kp+Mb#(?S=&=v!RV!&DqID!Gm7+4kq`(ofk47`Iu5(X8= zpjH?(9fMY3&|wUEi9t>b_QT*Z6bXRAy)bw&1|P!UR1C3TNNo%mhassL>W-oLF|;Oz z&c@K!7$#y^5ey5*u<95VjbYs}Y%+$e!mvvib`Qf+bSxU9Af`HES|Mf{VzwjZ9%7A% zt&G?R#P&z*bi{5%>>f~eF=7iwoW_Xf zgfKBO4@TC<$Y_k5ijng%@+C(8g;7?FDvnXLF)9+HI$_j6j2ePbD=}&(MjgXwFN`ja z(XBChC`M1h=v5ef8)JenCJbXbV$5`m*@`jeFy_m*+jj<0g zHWP8V5H}EUQxTVhxXXxpi?}a{_e6XM;;SIO9pVQe{vgIl7-z${Y8clL$ZYM@;<%Q)go84orQIX|b5L6w?l2+ABI=#Lq*Fk>@j9K?(?%*=_IzECgjpXjyBKB)AIcG8F z0p`k>8;rU2Ft;`44#3d_T-DkNF)ie=+7? z!2B=xH6MO$iC>4|*Jb$iD1Lp61@2f-7z^rS!DcMjjRlwRn}FYn;kSQSkwlK`eV^vEP95;-dLOui<@F`FDxE|#apoWK9*F+ zlKEKjCzck&(neU?4@-Aq=`D}}YFTkCYl3C*ST+mGmSWjKEIW*4Z?Rm$^4wTnAIpbf z`9dsD#PVBMVZn-4STPFA zwY{-+KGyEX+DBODiFGBht~1shz`AQ#myY#bSRan{1F?QJ)~8@YI5u>_hB4T%2pg_q z!#j|^w$Xx(1+cLJHV(wbMcB9n8?R&I2W%>ZP1UfeH8#ay(=2S-fXxCnSI6e2*!&x| zn6M=XTdHGACu}*5Ew`}cJ+_ir&yKAXv9%Vqw#L@M*t#2A&tq!}5)~wdBe4S#`yp`( z5?3Jc6cV2yF%8?u05}2LmSNj&Y`cbSY1rKYv#*T;B zk%pZ{?97Rs-LUfpcIC&enb>s(yUSvCP3)eJ-8-?z4SR}VPYLX4i9NHh=Nj1qu{RKV zt6=Xu>^+Hny|J$^_Wg!^hp~@ie?IJw!2THQKZ^aSI1r2jkvOmf2NH4MI{pa5AHDF$ zB>Zs?2Spsrg@d6u*Z>DR;$S}<9FK!LaWEMNQ<3C`q&!Hfh@^T*YLBFeNctT~Taa`d zNiT6I8xA$Wp^Z4~g~M%e_y~>!;z%JJ>5U^Raa6?7a2%b1qvvom6~}tw*f<=UfMb(z zY$}fZieoB{XTxy?$6MlfZyXvEY7vYxr;cLjB_7w-h}hPIA0Ox8{qtCoc|5y-{Jf>TnNO4YPiq_7ou>X z4=&8Wg{8Q#7Z>i~!fRag!o}ZkaRV-%#YG1$1>jPBT#Cb`J-C#K%QIu>m)3sKb{@Ib0eM?!1ED!ei6^F z;6-)3sD&3@@gfEW! zPZ@vyia#BA9fj8`@%jc{-@@y^@Wz5S!+oT=Ax%V@H`4r(7J{_WNUMyr`bdjJT5qI{McOo^ z%|}`S(l#M&57N#f?J?3`BP|VS-|$hyM|XVm#zzGo^W$SBeC&;nL-BD8KK_D_^YL*R zKCZ{dz4&+xA7A3*7o-E}64I?mwU5e~ok}KGnge!T4;#=W6);D?Y!)mxlOq4PT4n>nMC3 zi?4I=brrte$Jal}w+g&4csuY@;2)sYg1QyzHmEzHUV(ZY>Ih#zka2M#dLtW@x#f6@?ZCtqrtc&?ZCs9oji)8k|-*i^EwR&X#b-z?qE9 zs>tk!%n``khs+dw^T4-Yd<(_5aD3~EZ;|WFA!Vl}VMD)R{@sn6!gQ5133hy&ai6lgS&I zXJO{KiFrO@p3j))OXejpud2*z2=f}oysk5|#LUB)c_K4!Vdg{3{F0eJuxwVAEkDcF zm}Q&IvYltyZnJD}S+>v2+nsrPGVfsK-IRGpG4ELB9ml+9Fz;WPcLMX?!@Mst?W&xZ9y0buq1r}q0;ViHz3+&7S zV_D!-7MREa53<1fEEia=oGe#9ma8<&RiEW*%X0N*xkj*Dzpz|OSgxHc*Cm$g1i>%YrYm;M*+tF$+#%c|2I2FqWq!%hQkLnZWW)44QsT zJ$a4oy3aq{H}3LPXFHlYXN&jsAitCRgY%@x93!bk6*b*AL?VATx+bSDe`ffHk|TKL zGzwCRk*+?_%Pfv@#eW1YQQ7Ug+)FRMkTI{NH1LsfL-#*>vyLh=ewo{hS@l(g0-dx= zlrupK6}5|cI)w`2IbKNM_r!CQU_*P(*IFr1D}fue1VJ-ssri(DG~O%2zk#y$k*kQ8 zJjK+)*Nv)2Mz3h)djyqU_cnRSQC^8*x;G`~H!>PnE!tTrOtEl^IM&YVW4`E`$M?y# zc1$ZO@%`T?_r1{KxJ8i%{Jg7_UsfE8GP+Pi#pme~Kj$j@F+bhE|HlONSJa{O`2TT+ zdi&*gvmZ_C%PwB0*`1`>t;(ogLelbRIVd_It7q3^zV%<`81eC+PxU?He>$dBRd}86 z(|SlQ2E6Am$;cD)OWd3}i&o&r6tc$eSnB)#IP9O~(cdwxg2d;2?}`t;$JEjr`{mkvT@%k-642D&1F~k6b7Ds3$3lgC)ta zOtV>kL^1rAF|HHIi_f`6jrp5`h?sAYXAEDcd&a0fyt~4Oeyil__@CwE{?3;w9QUf6 z2`wqi9W`?H@W6rptU6rck>sF5qe|CrOSq`f)m>dv2HI$>d^|oaJJcna$+1XB`QP^Pzqy=IV}f zgHCpT_8 zc8yqM$(vdYoA#FSdwdfupLxS~*SOd7HfJiYv1`qFZ>pHQcVP48od%GHaTy+_S83*q zvQi#`YP^~Fc>jQ=O*#xBH&F7?*TeBFSJkp{l-)%cPthfMUX801x6p%9ycFjBs8Vl* z-*HT9A$9$hPp?F=bFM-)RzGA9KPx-ODLel)TSu(R^IuQc(J0;_>MLVu5kDf6oOdNl zgLqfwj-%AYzh&-d6z|I1arECaceIHAp1FfYLIJP(iTpqz9~58El2@h>Aq%f$c|Z?l zl~!hFF8)4`B)yjh|1uB1=_(OKqT-62edHUbXcUlBmK=6E4gaq za$BcQFw-7E5w@94;}nOx^Ws+N+wvLwg>p{euI5hssI4||Of4#Xh;-GZI9$C=J^og& z*h{&Y)$?ico~=g?LI0uiSaQ>?L3PQg=R(jnp}lR5A-T&x@5@X{Oh0f%IM3}(^YNgI^|HTlJvkuwBD(fxcIC$_(qZqT$OkX zFDm`$fF9|4IMVedKPEY1e(>QD&TiI!chJ;NiZi=t9!jeitI!b155CMUl0N@zMq8tG z%%|vW-(IubK znyzFql;dFDTa&h+4Dqn1lqrhZ*81I{r}Y)>R^~%1A1U$Cuq0sptsJ;>vUBia~zfRqZsrIf9v15CZFATR+UmtYKfWCT#x5EruCCzT<;hBnR(Ol zTC1Nq%hlvV?zfsENhm)=8(y|8_p{u*r;bo4QaGEov4~>1snz*ev9iy7UP%j6J4%)` z8iR}VRM4L~4Qe8##rk{N555KK@`wiK@0hkq;W@vLpO7HQnYJ(0coM&kxQ5hFqs(2d zaS$HV=SHx=N@%c(lI|LRJL&Uty?BvhEeTrbYG$UZw{VGksC^!$6w=4Co6pk-2MJWB zmCbBwvg|*}GbCEATf{pCByZ+rHz!+O@d-Mn%OhDH5#xB}3W}$cHItt!KRxlY-0*qN zxJQy2rtm8I$`|{VFYDVP*Y0Z`5mq(7M2Q~iw{azUC`m#4^$tJk@g|UmJ#(dlXlpVb z;74@qbpgKkEm=o7#GT zYB}Ajmy$|OSIxBdtt7MBied*SJ&a$gBWit0kI+eR6e55b)S=GzcUwt3;X4tLckw-nPbj3`QbK7MYB}DPV76ms zGbyuz)A4fvDf$4^L!@2|ma+ml%_UuUC~MUoeG^YeRrG1LjpYHcjM$2i|3)z&e7+vc z=hf_99!hi9oKh=ZGHHhLrz#)WDQL@FLpM_#gTABRUHvN&*I1+zd=Ub~w!g5I-2W>{ z+LY>qAw*ZjP=1@c6C%t*`&1xCz07?{(CLMtsxNI+l6sD>w|>vECt5~lCE7FnOteRu zFhA<6Z)DQn8~Gn8jd&Chm8)f=>U8Pkz7a!+f&Q~Ri=~bHUjBp5LjUBpKWUW23>TH6 zD7XvCLtdHaFZ3?2L?LBHHN+(&$~4Mqj;8zf8#<#CDPqI_CFO?E-{H5_eMG&02X^VTWa9vPRSN9rc<|D&o0N{|$rIkx?(iUQ_AuRpoLu@tV}C3ZWsYe{ zd1zc|0yr|-G?TQ6wAq%_csk{w|4Wj>gTCBH--9*Z&r;StIA`fwug_3t2sGNh1Sa}Y z@*r4lky3n$*CT|fdC)xjDtfXeI#Wi;d{W|%bq>(+TfPvbud@9CXNp=uXS|s+-SR6Z zCHkTR(PtEAwNr5%b)nGr)1{~M{gs|mMxFYz%Kx3S^M6a=qP26&<7&TyN<{yDwX6AT zG{@_w-YII(_5P%P5fD_*{Q#oHDB-L=1icR7P@2vr!l9e=YNV>h^9&t|e#wHOsd}Qg z&+%&&dV!|9RF@QI^yyN}p6k_v!=!_RsQ4|)U7fjDUxq{6Z`UJzk&g4G(sBLSI9^F9 znDsD;D|;W&wE4J!H6wq5U@cF-qDCw;K8a2D)TJ&#VRJ5%*k` zX1{!|gSghZbXcBwMDMg90MY*Jy+V^(2v5BP^fQ)uXJgQs|x3zu$SJ zzmqyga_!9j=uTarBWz0&Px^1&xn4VakF-zMZ1wIQsfBA&iWI&@qXdZ$smn)ycX?Rv z^3jjkg{oZ@*8pL;9M2s(9=;V%fcSDe3AWww{E^m?)+d~rxEcR<8}xu0xfxHbWNr0G zMRWhY^6olq^YK31VYF z$}XFiM-H)d={-EUYk=i&-9sIo+vqi$v~0cIGIsC&-ETJ7v_JX#?|JzCna-P%e81xU zHlhU@zoV?fV1#=N{Ua(d zGsvWkpnNPgtrr<#=rcNFEmq9rCX-z=+UFY$=l3Vij5+wI)stSy>%kTTSQq%vhN zQN74M#mgyr5oNcel)e=5)J?Yxj8_PMtG*7SRm)8P{BBlOMoLz0%1Vb)QqPj~Jxj3V z!FZ=9Kw{emy4bPEaT74I3SizU>JPO6p^m06Rp;DC>Ju z9Vw}~UEgYf{>|J$a^}`S=oMZlD@#NWWr--D8|MF|QPrmJOG|COwVcHJ>FPJNtPWFt zHcM>!FKRhw8_B{|lTs#vw^myGU40!L7VH1W3hYC#Q&zSGMAu{E)vvrWrJYpvZQu6p z+~pD7FWL_AY{KsPB@;>qYV8V#{C}jq2Ut``7dMU~tln2K;bx73cb6EuQ4w2;1-nL# zCC1)0b|p5jyNM?D5=-n#>q&^POO0 zTwA!yhyM6xY3idl0Xb&EZpbUVU-sDKbNjC1LQgk7U7sYvA0&rJ943HE!ccdx8oML{ ziA$R3TnYq}H?rRJrm{$M!~=*vjmDi>lO~52@T4cS(^dS|hR*e-W+1V;qB?DQqrWDy zLS@7GO~@viXez)pLFH!lW%QsF0jIyY)!%_!z`=)lbl$$>1-z1l&` ztd2|l@uFrG#TRTK0x(x%MF^a3hgtq`{Efgdp{HJqw(?TGB}dn7CUOV*)sEy_ z5w!`AV-}|P;%7L*Pk6EK5F}H2Kk_WN&hq;7?)eU3FuiaKtViAT@Co!nq~7mLezn$N2KQ~FbtCYf+B4=9A*9A`~x+;-pLWhlz?I1&}d zwZR{Y5`6q>>!f9?2F;fzByo&5^0X4F{Yr(YpS9T2m{u~Glw|7mo7lBQS0T!l{*io z1gH*24QEmb?H!m9s)6}>%{zI*#H5Gapra(m3y==}5m>D(-c*#J@i_oCi#mrGizjhK zVSlFdWmRO~DeN}!R~cZhQiwy~<6BUZ$7qs{CN2~a(!o#V%SI8DTm2Q**UeHjbuKhk z9O^BU^wGJhW^eNupVM!j#~s{6n*_yUlVO_UCGqy$U1^aKYn)7@f+9^44qdw*Xh;_;!)`<}FSh7yF zo%4*@Tm|<;TV&;pff(Uab_(1gcqcsHzzy9ZX6U36>cj=2`5nZI`4{`|-u!ROLJUIq z-u`^543K%4G+%fMAAxe%kM~EtKeJwWXAQBpgeIpy9FOUzJ(~6r&)3@H8&8qvgHMzn z>0xWh#VbP9$wxxfd8D~VRXfxWUn{&3YOX>Dv+eD@?VSpVCG0Kq8VKQ5&sT&XDMD2i z;Uk*)vgsm2ED{JZ`<*Ys08K$$$SFR4qtOu2J*s)z8`)bf&_-iq@+Xgz{LIzX9^cqQ zeQ3?-Vw_L0eHZ|#+MCrf!nqE3eN+NY>Lb68OiB6A~~V*>-)L%VXq?5E~`;Zf}kfe zE2#_75NwC7qx0|(=OGo#{(x5#`4(s+p!mwQgL7}pp>UMqN54t#PM>%pAwd*$`n+3E ziRjx1_jhPEar;Y8}B%Q$lSi~YL$<( zVm|DSuh_~8QaGlKkbi9Sk>>(2F#=YwfJt;DAF#mt^6+Lt3z5WTXww}Cm13l%QB#bh zG-{?hEsc76CX{M3G{2`fVa3Av*R04&1J*qjc$dVRdpL+Rs;E(j|L1RZSWFc(HB1k8 zD=v!76mo03E96!m3c2OiT|+=yd3k@XBx(E&Ey19!=FbuA7IF+(gbSw+1;5=+W*YP< zMVe_q5w%;{p30{wbS3r4Q%(_;9i|eRN5xUnBMOC}c(7P00@XGnNnm<%rruvb~C zMwS*XwO1%keOBmcMdbOO#stz>Ub#qP!jEF|P~6i;xR)YKb)`renf8rRs`3U>6)MBf zNUnmhNx@53bN1*w8#N?R$s34D40t3g@drdvJPAOZe20gu-L=a`?F*ndtR&3JOA zwfK*vlnEPXx4aChY{z8~P2>CwmJ%}&+Mf2%du1QCmdLI?3YUSDx((2SR6Vw_yF^F+ z@ghYY$t_;n&K3jgc`Ph4f=iU{}S}uKE?I2uF4ye=tn-S z(V0sVzQ|TI&t}@D&d=RSd>_Yov%0~yOH&uw_9<#7+uJp>q0qP2G4$zoUp;;hvGKeL=<6!NBZ7ZeTnW~*H$QYT(4Fk zBfbjs`w5Svesr)GB2<}0bsCWQN6zME8lgZ7XKh976Gb3k_vopZJ>4vFBW@QiG{_zb z_#l@-W8_2vm#BB*huTTUFs$QAIQFw#$DV2!K&eJFLb)tdS{mB=*NNP)&ay3u%Cp4lq;c zakvnZuc2mP-njR$q}OTf-%wAeLD<2jAk1XhKgZPsj2LA)MzH!Fh`g}%`ba=uFypFe z0Qd~%R)08qdxD#)fy&VCamgd5I0I-)fy!Lb_#UD%#~jb-%Sql?K^!^EQ(!en&!4~#iSlNIv)>%E?J)b#1uN}@A6tbC`zr8# zG>t_^3C7kez0um9NIJt=A}WP;-C?JpcU8!@UGsxJWn#mAGC$V zS`!e_W=p%e%fAUkVuAk@6OFBo+Td>Ivlz(cVq#4h$KsJozz^nxq#WN0HGOUKB&gv? z<-IjbQ3v&aWtNi+1gMH`9T4rd4!DZQhlWv+~evKb^!Gu?m`bai~zQ|jR5Y`SXWWIZD<$fYA464tNWw5uI_ha zVMu-xsaw|3(D*}a&I>X>HP*fjO8;P~^sf?xn1sH78ck4R0X3YUc6^98tj4Y@P;Z`} zplm_}*+6?W=*C4Zor&{d1FSq8%5fVh$6J$fd^g47^rKjugQar(4k^cn5qp6 zQF53QL<{q9ge^l@TwlLUkR24YS0VoJR}cPhB>2Pe#2*>}V4ZYbVZTXI+Ep}~ptxY- zo1|{LMGKFQ9p#A+(Z7*}P7?9%pOsXe!)~stW>QZMhg2h7JEg1CZ)B^~d9AE942qCi z;tyHzva2F^{g7;4|2Ihix_UwreZd0jA@KbnAk%q&!rvsks=s!AT0(P=`K}}bquHp}xE6jX=)7nG{mWzQCVCI5Q$$i3+Iz`6e zmq67~Gy*__SgaZ3LxoslQ}4c`dUgv?_cq?&E!lz!NPoC@2Iw0{;GtY39E$4#GA1i&&>Mm^=?q=8y4*g?nTYOc$nKU?cYIAG z+pjP%Y-|szrSfl~;;B%tZ}T43yAalHRCr~WpRk@(Q(8G2wUPSB!VaUwQ)+SR-4;*L zLVY6EIMKvqcQy1}K6F-2Ic5-TqFf|XPu)R_~L*Ui(+)jt;&#vGn0slNklCyY#WH|gh z%3nw+8YV79H`O2_z~EBQ`0-Ha%i22Efd=iR*Da8p%xWZKrWbe#+VF`T%<4f@yntR_ zxX}0Cpa4@)JQux37$$6GP&cV)o#BB4!Aww`H|^PP`Nl9yZIKrm=kp`41hVSL*iqNY z{-HE@exUE9bpBR5!Yrj(U8#DWufeFtt#^K6%W4k2^8_+7s9;iGg%V2t4n=49(=)Z6 zi6xQd`Gph&zCW^|n)v0dKO};Cl`FWIfPlW6*?I_>WW?5Eq3i*jgVS_79SgjKESlIx5?nHz*B{@bGDL){W{aN`wk|%2RqIREOAcM!{wG^V%#|YiV)A&sD zVemy`D3p9rB86fpw(e5IaPvZvwk}5a>%7#;-Z|ndSYFUXXk(#mv5LY34l-0K@~1F( zQixi-5R%>jXyGNwe-)&DuM1LLgA(fq6;KthDX=t<&)`uPwb?j|{F!8rKZZP1ejayG zo2Ojlzsg4}3+|ZxS=R0@H!n$6UA5)sK%M53RMqo4dnU<#9*@uSu#ZWsItpS{I*73> z7Vp1(hnpKMM_<&~9qfLOksdG}>`AblkiCUVYTY6SR6|hN41(2a>H(e~RJ%3=Hu`WT z(4?*?Q%NQoV?Uq^SNE27SbQN57{%*pY77rhW>Wy;{}}bgq!5D{qGml`FMN zV0kUwAbD0`+k(4*-NsgZzmR9hQ^VW5UrONhbHZ9PYe%v!wBoPo*uR2L!5e8Y&Wi!j zqW&X$wCX)JqQk+9z7KO6GRYvAERV%dt3rR%3~}1k_>Rgn4Y~y?I>0ksv;gH3Wch&{ z=)0bdigk zgC+?t#vyeZ)zpLhKL*J_E%z{{X*d@WHOa=w$O(f)ynxXcuO;J3+8qkzBo1pFT}iQ_ zGFgz3DQI_Sim#p~2=|lRiU2kyR8Au*Z!y;!EY!lS$c&_f<2ZpUXNrYud zyx}5H2<|RwD$3*EEtjqVgWoA8%XhXM4`mqb5VA`<^Jh1oAem(LB?)q1?BI`l0v0f2 zatImdB6Xi4j*^i-;{kl6%8998 z!_E&acC%wh39-*e39*~?L>f3mC2#UYg{uvif69?{@f)q`NVME-Bq&$+u-3A_#H-gS zlK(-70Uhv!6G-nhwk`Ueh{^}48-y7*I^xI|o)Rj1N)0u-!f*6-GxWXA;z9ucrPXCV zbkz88!V)zlaha&4Pu)F~K>H;4&AmSqn(j%Pv?Hxj_U!E|L9e-)&aogCqfpBSA_6e8#o7Mfrlq6Ibjb{6))h5l}l#NBcmKn+=kMBAzk)Wv21;Qo9 zLFgm^w?cIY@znDz^sJ`pcmXJ$&dLGQnjD~H4u+&-7)2Avjp21>gX!*8m+PIn-%IxE zMFaAp5!KZ#?mmcz_;>NJPNUX2umGFVSGBbk9$29L2Wwzj3&c*ZjgH`Z1g-$z30C@+#)ceUwaYjy$|G-y*-rDVw#SE}Trfp>QGZj4mPO}?-s#3+n)JZ+8xa$EkOt^SpAgun-o#UcsZ|E^9;g-GaFsoE*5GY&za z6m>^;Hknee#k9XIxfLTu3nsd^W0zuso`5p-v+8yIX zKL!cd5ebrm2d7!0S>2k|?pOUM4g?_{7Gt%D$nl=y!T-um9qa1-{~o2a;&WN3cH*TZb- zlak^5OUTQSfT9S=C?nV%mOl||zD)!@D#olsEyK%^Ks=1(;d|J0<;|Qs@!N011pl0m z8lk5k^nk=aQ4COFHvT8!TaBN2bD$*b{y5PTse*t*_JI8h^ zuiu@)E$tjsr$EV0Ql6gUyt1~^>Gci*rcGk88t_e-AA8%!n8gxP8L%{bK3;S2BG#E3 zc`f=-(%M1zuSUdrmOm`Qe+z65*MO(Y4$N9Cl|#!A|K6YG)mNVv zZ|}_gyW+I-BHAAsub}ZKY}IGVAJmY3t)*>+q*0IPo8(cjN6tV9auH0*YlCyhcqil6 zHu0AS2s8D|UK5CBbP7H$6V8y`R_A#9*_}*vNTLK6=Hf(#B)$*O9HWRYVTqO(In9Iq z4q~N-TSk=QL@=WhM~$1%XZXn97mTt16rG*eMC|jl*_Sr$KU4(Q#E`_9dd?vvPBC9P zAaf3_@V)rQf!L%#KRH#o_0N#q(nY$%U&EW;SD*7qXo+nl4y=Mdn*n|isT=fevW#xDDUN9+fPUE*zf2ae zukGJo*Zx0tL^F}z`#-~Dv|Ba{!F`OWNK1XtpOJcig1Pqi7fN;^tv6dsyaAh}HvmtN ziq;g|5c3uYyP9PV1 z4rkCq!~w7aj?n}aw>}NvqU+9Q+Z+|?`-A(m52w*R|J0F(zVM+4_TbH@W)*;Gt#k!_ zDv&{z^fdknTZR?K6n6z`&Wq&MQ zv}kelw8GzlVfvpN1{W~=_H}4A@Zr=Mg{pL-x(an3`rr*5mxuZC+ z#lKf*wtIOjY?Iq)xnSx8E7|*OG6ZC8w2S0SD!-hUho`c`dzA+Nu0-V_GJCKoe4m+; zu<`ktB?kGoRt@R0fL~VXu$hW0fr82JcVxiY!Y(U(IPztw8Q*{pJ+9&4mc}1!g~p00 zsq)G37@|g&j??_aIL&|OJbWs$x_@U@{|10-0Pr^fxTXVmfTu8;XYvY?wA^OB8bZvD zinmcQlPcbJR|K1ls$SF=ov@oQD;$a1Pf+_NYCoacH;r+z0l3$Y_Ubr%NT0EEq-#%H zw`SYA@hijTTlqKOrS8ZfJww|&X#0%X-qG8pBkxli779(v>}YN9sh?TvPt8~e^$Hgoxk0QD+w1GSr)+1QlO ziMRopJ)6s{TGYqP#e)lh79dFzExoT&^6n; zTARbauhXf_q0a+Z*(Zls?w!`#zA)brc)?e16@TsOvG_Z8j&=;K-MS+JB20~BMeq<< zuE>i>W|`uj!%#hwGEFyw$7-6u|5N3Sl+m&t{;ZVjNJD-arYKW&=hPxvduKhDZz?}b znM;gpwAf!^_Jg3i$51S=!p?oULR*}b%>Dg>?<-{YO zZF|SR$YG^LvORQ1K4)cH!N{N{Kc)ELV>plICltyW= zz@WXEs7&Io1}mctu#Z_$|Jm%*<}A25GJzFUE^zx!D7Qov8W@_S>*}=etOywEE^tdI zs+_SeXbZ~`!$5Y#C2f`3G5?(l|j#p=usxoWJ9`Kyx&zMD{VJ8b6+qvW5 z{@&YKwd(z2$BsLHJZ4q@aTLN3*%IfdY{y0xPV-3wB3D_|OSX+0zdaME9`h2#9na4yJfDVaEdD3>chECK zWAd@{2y!tFBRAm@*sA%oTq&TBTOi7IyJq4e?QQygPHwWAZ=1hciXD`q?;s?v(x71J zkHmLuL|=0f>|(nqz`xuN- zl!CE&GI(`7hl1^6knp{x^GJvy)t`7HTG+u$RL!25v#W7CbHfel*>@6yYvK0WmU>R*$3>q-3Hi)Xj*ryuz9(&?Q&m5NuyCl>Xl zun`TL8p)wLz0TsG4myoC$YXyUM3ga&A0^Is)px8j#3DvfDi!&&HJb2x#;Qg5?@qtSba8-xGQ0H_-0CF%gi#pItf(1EO$kyuu(b6k86|QN{#CY-X3mU=QA(+1DxD&+6^a- z+I5=^>(axb-nJRtWZI}7cC=7-;&v43x!b4eioEwm)=A8_1#$VHV)1$ErRV3ENa)}=4&-ChG;~wFK^8Ou3_LoflgSBwB>{u z2jg^gMmkI2A?Hf54uh7DkXf*{D<3;DSPuas`I>!_htf(uI>GjWqcSOkE_lg4=i7N- zTrF7p=cD8*g*-5dGWd4+CT=2v$j=ui1QqmwVh|UZRN*9(Z!+(Yv#(4UxIrHemXg@DYLP@z6no&a?=`0cg>yb;xupGGiVK z-8O6as?}7+HjB`5A9}lGt^reQciLV>Ug%MAWc6~8$9x`$U`_3Wsb$$Soek%IR zUXXlvTR6k?@7KwTS1+1OoD@0oj;Hdj@0BOo7f5ejcX4l0jgAcG-$;Skrl+hFE$#%~ zX0iF7Jr^Ib{{*f?(PJ7C(L(=Kq)kpU)9OrK;4QoPy+S<|~O0w}1{5kJOW`CeB$92sXa8LAw(7tlj`asl@uSOKtb#NUa z$KlW7K8+!2h7FQk;0-Plz*Na_1D3}YriY{KOW+5b5emUv9=Zlg94J$hRyf$ZBFJSc|{mjG%?S6!3;zWhFqb2Srf?)SE5sWh3%m?U~Sf*Q@te1TKU2xa+9oupDqEb5&nlv{m zN$=hql}c#T?-0b#NW~2ejpZbljAOLuD*;oIZVc?MCKfogBZ{a#X|$4SD{r8Azf%0< zFNlxy53Cm5HSL@;{?UvAa<%2H=%Mv5TVh{qxY-VHjsOuyV*7vDc%0|oT(w6wtNt1UwL99G@T`iUDMe+O*X^yj7c#GeNzS`IRApH1z*T3#nmRH|67gjEb=H_|Ex zsO>@r|1_#zle&?cJ6YO^JTMfs#fDuOapTvK!Q^GzLK=#1v$fIw*yDp=tni|1=hFh* z7=nO}kOoX-0u#7Q-xO2k=NK~FZdoLhS?pWx=bE|tHpS5n{4OCKqAeQzZ>+{*44(vb zONft}1Ua|*7|47>$VBV_EHc5#dZnmu=i|9i59q~RMa}BCy-}MFoC#n``G*jGejy4}5)CYl z2xQBgZc5p^JNewsKHoR*+%t5VMHD=QH`vvE16#K2KCp4W;dAB>vyMhC`=2-M|8-X& zEAuji6-{q@y7~sIpKwB&^n!Tn)AnD?qDUwSkM@}oSFhcZEmrEfplhI?STu?9hmz!p z7hpxryr4E+6GM>}7^s-VPis%8#9uGzF$_tqW0_x?@VhHhc?PggMX>nvOOgL})%ul^ zy6Vj&$Rk$?=!J9Myq0}|S$K=@9{ZMa^f9}j_h7kw&>03mV&jjBhw~7Y-ycmjXR2W= zmamh>$Fh!WQgUDOTj7@BrQIr&ZJr(lVbY;MEW#Ezi}?_ows@WW#H+6}8$G!?hD;#1 zGCF=pr=rm@PX<`$!3-+)e?G3z+)ss08v50sy11#QC{|zc=!6Lp{BV;~g@H_BR z+-2fOg0{@>t5cKM}MQJqi$-Glkn2u2}GXm+7$MwA-^+eYP6K! z#TtBObWT2#<@*lphq&5HQ62kE0>CpCJS6~l5ePaku@K93Z;1NgMtzn*wC%D@nLLRF zenz4jiv}~a$&%6Ax2z7Tjz(1`$O=s#>Vc-Por*Szbq-d-7&QF%OUoW1;PAf)f?hi9 zH+mJtgNY?2a2zaT2LRNVo7z0r)FYZrBZYDMpnzs&Ye5Cl1>*FK2KGZC;Xs%JCe& z@^Rb>X5fut)E-B*!lOOF!Fozg9bLa_CU<<-o?P_D7)#qan{o1 zV4`9}SrhRefC~@3sg;9BWfITw=A9w)78M-1MH!ykM^yD?;f`p?(|uV4kM{9nKWqLo zv%XP(vhO6>`1ZkwKBL`->Y6@|vVUX$1v;<9MrL)ds{}U-m3gUy;80i#s&;5@sx>mp z;zytlEFLa7<9Ke)pe7kp7giXqmO4y+n7@Q)%3B>~X$*4?zvIpC7ZSbMhE%*fephn+ z%pG8^<=-T+qMv-KKZf_bm53kuQ@4v^bW-&W^ll5{aneZ#jcuNbU52t|omAE| z6$2z}>^QyZU=o~yZK4EA?#tU;5gf3BX zMe`BfP%Py~$XEO%B?x`tV+jd$9Ak5SW*Nl6taE+7LX-WTCcA+q+udP9b%E(#mYUG~ zx!8~7+AE=ppXt3^*)Yo{WG5q+dpXeLv-Gyf?aP|9(;#VsQEYKD%jL_yl|LN~os-P0 zB4nKvec3XINtr*S9tEs?J4x!;eWiuQ6BM}R^rT(2yfrC+2mPg~%S9}6YAr~m%8D!M zN`8zcq(-|b*(Nxq^M^SWsm0)jV{l;qlQ(J6D624i4xAP zL;yOIC}JJezSJTKqb)SpeL=4;dvD~n{Q57wQ*Bs)(aXJQQY42Ica;rc(#ZTP+9o?% zY16S|BlOtZ6NJaFLKa^uLM3Tf8i~hFRM2UK`3P`JD}rRB!9i%WBFJduMtwEfG`Q`) z{UGk8l9tvGxTouI3p=W)%Ot#k0JluX8uaU>!y(koFYjO#i52?5btpc$8IBs7V9Pu91xsYS$ zxmUOu)*+e||6u=ypy>OwU*)Q;WcMWd5e0(@gd<;}ZybPLVW5I6(Xc(&CN)C+6bLjs)lo547ZS|vBsd*Pd-GmA-LhB=q(9W@2FfCz?vTe>*={9Gp$mVQYC}IfM z%<8I8Ilr(_OmJ1GoFSUzG(P)(Y?otCHrED#=GUgd|K5^qC&IrVGAHF<90}6@`&^y& z&udA<|M!-L6y(pjtf4TQQ7nhoV=jjG`&>CZyo3(H#*CI0Rvg>x-%7d}#@ah3m>aa) zm@wSRi(mI)b*71rpNX=8HR=!P+`*dAv+=r0fz`;O&#LapHZZ%hv)8w<>1$NExOY|*>dn6`oHwqfjy`OLmPZI)TZ(hfc|O@AFba>L>% zb6DZ~b?cf;NL68frQ6nwv}OG%=}MH%(MUi3!)=Cn&5zF9U6i-JFt6DLErr6Kuza}V zw@Le&iV9yxQ~J#@L4GsrYp`psvrC};j|@V5Jtys7=Lq)%QHZ*JEJ5h@H6Tv)m|=X6N_<)Sd4X!NmvH5 zdwHgy0OR)7SJyRG7`|YIzZk0>H3k9lLu33B+|*$rJTcCKav{m|1^r!e@%8H*$K-dI zz5u{O&8KA>zo2NgXHlta^B1Ft3}Buqv?lCh*uc;zD=XHOzJmtA z`enI>L<*!2r2J$f-m_&Pp@RshQ$rN6I^y_Y1p5_FCb5s~ zzNC+3D<=I8iGcpWP=O}BZRh&N`?wXLDWm{Bk*xsj;oQRP6lnb*xV4iA-ptk@z<_un zQ?4l^JMt6{r1b~-^K)X9}aPb(E{~(dBuV)XRZn1z;cWUQ7%07qjGSM z*J0T=QB53n?D^-(7&D{2AG^Ah`re+~7RRFi%qBMoyK6k`$2Tr|w5u3^5RVX9AG zh_>14Qt?Du2701Ij2CqwIP^f&--zMjF$q@J#PZyM4z-ENn1~-&rL^}Bq6opOUttw- z?v~qEvwY?TZ6$H7K*V*rFh3K)ffZ}_Yu&*L!LL>AY}mEdd~`MX_vgQ@*q20pvK z>F7bLy1W_@(H>)32CAJ$fQX)pmqc`Rd!JdRzm6QaZE@6dOM3^oq`jSWX|ITuf+jo$ zy%~czX{{zcx%@5rBrfic)myMsYawg8LWK?#P8iKADLrU;Vp)MSQQ$6g&G|(UDQ!xt zS1GxxDQ9B|8xki#Pdeqz%ef^^r66&Va9CJ22*;ot&3i%;B|G#J(Vns>0NX@{ykTq= zNu%0PJvDr-R&p;%qSS4=Eb2QlNu2WmSyZ%376mvzNLf_SIy1q@IdhjdN=`wFqlUZ1 zQOsnIF}GI+g=?F`c2ayH3oFvlymRx0n3zFqo))&#s>`Z!Lc}x-aTWDU;;R4NF(g*e zkXWIjH(Nc)EEmJ-IY^5bSjCWAv2>07t=Q+&>wAYOWJu2@O$Nq1u>7c@0M9HcYfl#* zo80h&6>xD}H?vV$V#zR9T#jk zdr|*ZkN)``JZ%rZ3+;-Q>nb!qkYAP8u1I?k`l*ZB8XBKmlCn%)QU=j7BxU8b$7}go62_WSgdh_)!VyTnnN(&@zj%HnSre3>%UoNs~UG! zR4?H%@ahn^$zglSsDL4dA#TeeaT|?~Uhym$ne{G5Saq4qf3Q;UkZE5YvQvREK|v~iyrttv-}7_qko|{K7HilXj?RJjD4?! zJtg*LlShes>9?V4cq8Gnx5FkI(Mum)uwHZz%Ra_@y1s^!)Z0;({i^-S|Dz3wlnwhq$d$p)+fA~Gno5n-j1QP_ zt~Qa4C%KoEU?!Jwj^E*&VGh15ZTvZ)kP2hIK!# zmG$fAEZAW2>kZ2xA6QBDW>%pxi!H)`6Z9ol7zvuMX7V=X9h)}niW$7|$KHd7^z3z2 z;aw;+8hz>gBYoKvw!_-V(MFmJoo8Q=C`SC@NcLgnefI^5%uA6ZITUvRE99q z%2%H=6T)OvKEm=I1%jjbA&3m3hOOy8aM*aIz9KKS=d!kS==;l)CVOt)x_0f>EyLCh7%*(uzyWKAZMFJMM<`|u z*M#03tBCj!d5^Hlh<TS`$HN&=AnCX>S+%i?gz0ii0=gH(kuwMLP z-ntHOhXU?!z(qx?Uk8oH!^()yEmRF=RLivvM1pu-g>SQO1hFj3K88^TeNIiqS9a6> z5xB)B&X3Hfu7AH8%KSDVCJDgYLLfIO7@M?eQ$!RgylwvvsXzl)xBir!OB80&Rw*Dvfo*Wy}psi zmf2Ha9g!&6>l<*%J0nz*bad#ua>EpBd0$isop+`4%Rqd4c_r@ZJpEhPl)j@n1Y&BP zXlm(+Iw~3}zu2ony%1zCY*w$b!Vt#!`l=~aLg6J+<*JYT0g6`Khs`ETJt)GW7V*C2pEibJWzi(2kL=hgp~s1LUjP%X6@tQ&M1uoX|S=hKxL z>|5tSg8A%&RX&uq&$Gc@3TPQf@26`p&1nOZclbD8!#t-u+Yr>hmuq|shFA^cYA*sW z7GS3p#}SjbOoXnQui730JRjB_)|epzs!rQ|lh}#h9Ss9^;I!uFMNi&qNvCva2u@^zAK4;8(rMwGBApgo+Sy%r``cBo}U1-A}(5AyWwd^Y>~mLr#n zlz0R;y3V~jkNhDp2dLwqwmP&HHh$8+3Bvhyws7=LKyB|pZQ=5y%L%ug%>`J_@3s9$ z(148hXRum1135x_Y&kG6uk9Af23Y1@EG(OWx8+Ut5rQU!AZS7r?{kXZCC&AfrGf18 zBKE?YlnjulHCU>{8mfPR-hqbr_zqZPritDV@by< z`R!yX)i^>|RRhN&qgq4w5(HzzH}UH+s4Vl75}InEUX>)9HDdo1CXhYW||QvdmGz+&~d0eEmdT;Ak=V z*idJ4aV=(vKyPe(4EMuLw#_hiXO=LeaOD#QGT# zYY5=8dp1Bu0c0>v54m9>?6eK`K%m(F=-P~zWN?}8B`Nj`FKVshQ^zq|L=;>28XvEK zUISK1%HG$N2sWOIwH<3Ew!tP-*?5?27DX^(yG9-g4P>E#0oU}ozL1D&=$g2`o))6v zy^XHe0177>`~tG87^2{9oWZgi7Gx~6LA)C{9?I_-_i0OvBhoD9JNCat=fnb%Y<$ z-3+7}0p0xvboa3oJsVGy3|C}{-yAmqeY6dZJ^5e4NZAa1<4bRLhu=0=tU9<$JL{d| zK3jIguQ(WZ`()eNORSFX5sAJDEaX074fzC3G_)*mj5OD5yXV?CE8FE8I-x_?nt^_N zE2#P>aDu+b{$)>~UPf?W4cSWBx5}NCr-kow_@8dYnQ4eKgj$!ORsdgv(C<25bD8*> zvj$%iqw_Uih(l%_%4I;Ysxdks$V7s`YIg!j4}hH|h=n&_$2%gtk)u632W<`F92XFa zSpXuD)zNqXjdz0Nqz)`gL~)Z}KM*P;oGR{(9JnBP7aYI4i%|Oj@=0in+dr^0Dhke#~rK%&!T{7Lq%m-3&vzbwh#KyDDwfBnR zU4`;BQwI3fQQllL`7Mm(OOUUERnq(tBKdypbY^K*$v*>xc7ilww)f*p%(akvFbVas5lCVenznnUhTR`Ol)Qr6Hc=UzJ3d(ca^IHw!yj8jO2ev z0qDm!z;HvMKGZk-EA|`3VT@7eYjH{CQ9$>BWLLYRWT9l;0ck(8?8jgMYaLlXe@&5e zLcFgRV!7Y>F$msDg{2qOM(D7$O4}7w)?KNlz?CXwTsqu_SVj9suo5O;sz-(|)q|R# zu>@@pM1c0LW_C*f=c<30YA;OwQxYJckq6a$@}LT7%09*NJilzWn741-uxrr#?yYwn`#zE3yE7jzLOVR#Pu`sBr&Cj=*&XV~>wDAf^HNqUhMdls>W-UQHfW zt~r1cMcq!)$EvyAubK3*s%!Mbs^0W>A*-k|1qUjAt2f8^jOjC2XzRv-k#u&H_)LY^!_ z9C%jlO{6r0Un_U-kGSvuGyJSV=E2WOy~l>y&1Qz!?e}yqs>`Cd6CZMGVt@_o+C%1- z3!%;{dBYma%6CeS83N2f_^2t|V9sjrAn-c~l{vsbtC!5lj)-c}bRR&QxG?+|P$< zU4gsQ2SJNkGgv_m-^1&CpT^qbsxUs_86r`6Rvw9hwEC`6$mhHCr2WD)s0esoUfIYp zxZmM0^QNqzh$5G%1X4WI0@1oGdqDkJq#l@vxa=r%BvVcJO2MSPJ+uMTEnZ-CnUy9H z@)Y?7u@l?l%!_l#I4EinUq&M};K)K8l+pS=J&gqc>sqjFBD;+Mrf(I#gH=*H^JJbZ zF^p7-Vvecx@WCB>4~X0mhCn1$D){UcQN~D+ZSfMSw2i$Gc015m3Q!Nk08x4!v9Panjl4iR%rB2V>WH4p9b5nbdg{U8{R(9odNzq!UB2_aJ9 zvLf=-(Kp;aNKP0bzl&B#PPj0VWkAHs6wPlTn~i0!h#wWb!C8Ype9&+hw%1A+Gtq{S zCAdqzB7T##qOyh3%o-5j^K<|(#0FBj@gd93Jp0E?z zR)|griN`d}Seb>=g~^2@M|WBk%#R+7fKEaQpIGy;pPDx0mGGex!fqC=_Su9usJ6}h@p;3Hib@XFC8k?<+UID>_KPya< zhZA<2!7!h3Gt9}7VZPr<;U)#2FU=Qd;(JOS2-t4O z=j|3dvCCH_yZo?|f>H{OUsw?($r9QsM1ahrJLOj!&OMl`ED99;1*%531JriHRN zVvHZ_7JzA?V2o2jC1dIR=`5||=rlPa zp~egtL{3K+H&`9}DVH3{3QkZU+m544bmk3f&Ouv+F)mq11U@atmb19Z$ef)6%Ckjr`=jnvN z8aCdB(o~ejQE4hl(YY-GgMZ8{>8y%`a?7qm$wa+dR4?;@u@ZpvgS{{UD`LC63uqnS z;0gpNeV71sn>`_pUQJ++MKJ2$2EYUYcpDv4{ks%Q^b)+dCTm0V&b<&tl0pHhxJ#b|L{4HnEU-o_ORDiPRPkJyQ7vPUlPH-d>*D)oq88II@3S$0x z!HNd3tqLOQ`ilRsYNISY29E0Gk;rDpj)jZY!i7lYvKjtsIC9xY@1eahJJL2=#7?%w z?ArZh8rCmQr@zcmNp(Cf&vs+YkJS_xrm(KpqXl-vKVqfbIii z)M6`Vu-tGB_z1p_1!$iv2dPViNwAbq?J|iT;uDcuG!zYBHkF(8u<`>C1UcenAxM6s z6R(h<@AZY_EVt#ZNcHt=jrYkHxX~KodYl90AQ9oE^fvk8l`jiVrBi}3A2e$sc&wx5sYWon)8ZtkS&}RO;Eae6Sh(FAqgFQb5=I1gCdHBi%I5*j+ zlo+sZ$(tes8WWpHbO9Uiy$@JyY zZpds0C>`{x4Sk_-BC7z-$~EjySQDT3C*}+6yf+=O-?1Bv%ICHzl+QI7`89&QGhy{X zA8;qRzp>VI3AT3bdJV=;FO<$u=jn3$mqpnV3}>hxoy*Ot6KwmxY&|F~oT2pE4UrvF zg2%$V#G7o4m|zZtEriCrT-_aQ&7?~d!Sqs}*#LDtoT8rCkZ@3aWvklShg@dcYol{E zU9at8ekI`>mC-8WU$0SZ#{TOyqQesC4$SgSvJ9jB1Y*g!#xhDsDjPh+Dsn ztnBF=g~&(JH!5(+)ugBJjd~AhQSy;FGv|2eaXv-km}M5+*($iPpuWB9hyZ^}P)_3+ zhT+d*HReGLSQJVJV!FKj`|Zw07|pG zJm5HN0E92=k&45nw+*+gieLqU!+8&gEs+9b9*#+8J`IwUTaSI7n6~~ zu&FD5D*aYkXd#uL=4cORuBZ>D5)@z4gUQuIK78lkvCv5qOPsKQe$;*Fuzo`qk6JUy zI_w)CJkx!nFZe9oFgtQtK=jbH-61zJhC~9yzsZ;cFYpAUHZ)|2jp%9Znl2dq938n) zL9gtxw7Op-dcy}$73B0gqA+-t^w-!ETTOT&{s+rPN4AS|7yTRx#UvFzCB}7{Gf@Bb z;9^5|16~x^9vM7DJ`9@Toq5$127U{%9{}X3E+^^o&gT}y4<2*DhUN(S1pzHv+JYUhYt*e!9)vX`tgXo$1qcBL-POU|y33m8cau=z@-O(ID%N1|2m zcFV!rVcUm3%VbrgN*Pi8xv28IG<3*_zqCQ~PvRFf$e3lC!hZJr6(YZd(xx_%ev>U))XIFlCan-IvHv^Edu%HuW z4+OU{32-59ukazb7@o(ZFh;=5LK;GFg51LXLc46(NL#4Ue25XmoPN@3(xmA0Uh!gE zi4A;AY~T$qPciEiFPEGZic;QEx;dqLWdp@WOdqJmvVl8P+^B{+5SyZ^n?3y2`MJI` zNZ*H&DmsJM)VWCiEM1*|Ao6tTK+E%n&9EPUo0FX~8a8$QM(b@bgf}BlaaJaTy}`I_ zyMY~PhkRYBf`dn7P!7I-CW;|9B6W5NoNFWIfL}(1<_ZK`bE5sFqjDwT&=mnsOV*YSb6`Afe(bf$C9YKqX;|KScWyS}%>&hXW?dUU5pDjrA0@v=A}RhF_$X|FOcXPIGULN)gA_0nP`L7R>-423X*x5AS) zyIlgoycG=Pyimk-8c{-y=JlnON`mVR8DSK>&RSF{5W4z%=<_vFAn?4)ras#`mkY&qmU0Ju2T#t4KN#mBNAUBxZK?azp zAa{4WgY@p81c%w&$RL8eJ4i<(Eh}vV^D(CXQa9NBrLbp<6!z=_@ZmK0UHagq6$>hsmVQV`8!%oMh zJ&6u!_`~fVRO>{QNnf2tWyY+On=~BXs-Bm(qMzK zjO;R&%Udbb5m7_K$K0t0@sXXBB(R$!Ony{w;8FK6FF+%E=o;8#8rMT(SdVo{!CKZ1 zspQaG3iXzb-X5bjq0sv>KjbQT@sD4x2-y$IovDtG)cacRtZQDl>-OxF$b*}UbYgjZ zFzE5!0cUI^0m7e<@kO>C-oI1JfQmQZsD@;WA!IZ&K9a1}6Cyp$)d7@}F}ml7E~K6^ z)|jNid|MxdU>VU5i6^{kvwvq0pL^NF=YdXq9>K8gg=4e1T<>)|c5GgC)QZ=AUSIW5 zC}Gq_W5b`osjWHeQD~-kPeSsPJySySIv8!dL25mH7!Ms!%*GV|u>nk`1cN`p2?C6m zBa{-f777t9V~qE`kWhpq)M;LlYNf-};zPqCcsIP{un1ndmp&{5TGFwDuGhXmR9_rImY}i1s%_sXhKgnA1>WuV5&Y5Aq<`8QlydJs1xZl6KFPHk0YW zm9V+yN}Bg*t_$3wmV~9bayTssOLIN99$PNW`6?T$Qjl2=Dz#zEhb4h%uon@&7mjh} zft_oQLbSyPws)4`9?kW##2x;mWQ98Lf~@92D2L`iF&SZ%$MH+Zl9vH&*Zjj|qgG>+jwVEdw?K#Z z6Ssm*KZhkU>abR;R?eKY%F@68SY%c=9wN5wJ4qf*=g$PHdr&D$)-4Yb5zGMu_faAU z?t?@a7DhUDxfb_f=sSy>7K%PECsLpIQ&S((Mug>y0=btt7avUz;M=f!5xIhUwrp#C zSjK1f_M_`h1)ho@(q+BXQB8#Uh(I{JR%N9E$@Ha>b%A5J`MVzLV#2L#HB8t?naZ{O zwgMyzRSk<2Tv0#LV++!bH@u5^Z_F>@(N^_(9DJ+PM{9dDTih^E)GHAzDp*B2?xjxP zI}3rB`7MW!TU zySmDcL*4=@xdgF{%vIno@1nKKh}JGLXzenc*4A+RMnJwHAf2*-6xVw(3|eHB?0zUc z<_UeMx><{Q&NbK-1ZNxD4_h0Ux8x2{!uW*_ir8IIF2!y8uy#5VFMnB}`swNt2g+Un3xdFCdQV|BBVTj)a)-jVM8{sLy%F zc;($+^n}oh8`J#-gTU72h1wG=$xC0q=G#&KAw67}yhW z7xpCOz(hc^}njF6|pM}i7LC@40_O{?-q?HNTn;d0h#oTyB z45+}=QQ^EB)aGPp!Y{z+sRBd#lbpKr z9v|Jz1S1oFnOY4WLPikVVFY2+t*Noo=&3&}H@swTZu<${%3`^_fHRn2*C5!-3HH-S zhJ{Df+^sM^!)YPV1gfnvuw zOO?>3M{+Pvdl^&%*I7YKXFBAYHu*w^p~-0K1YtjLvR1V+*KIYTJA%-rQoVRrJ#09t z6$^WC*v;m5*SbozVo__lt}S|iB+iz7sF^~2J*Lu>>A1eyJ4-?TW78mG$MiR`8k=c9 z9Ds2luIvNNkYmf}HieqR-A>q>e12EYuPovoi0@-O2pCKZren(g6+9*hNw4`BO*EA{ zMfDWl<*Tfe)8^V!bq`z`be4 zU}@s)8kCG)NH7Yx)d_AzOllF!uu1cmoXg&hmT?iUiSfw5c{#^3okATifZ*Atzfs;Q zHE~_mGTtcL-+iMX#H-?35imdKImQNT|5+)VnZtQ^sXzV;gadB$Y0x3RvDajQlQ~0nFgDo(M4q;v<$Q?^;%7lYbsQ@usR4_x8SW0-AzF*t_@RfiUNf#ddoz$pA zX#Y0f4@b1g?I6c(i5wr|3(f3?5~Jny6Qyu>cF$znB8;+GyqNhQGx?yrM5*B&zp^F@ z)Bg4GD-JIxBFYG_(&(W(y6*laGYAPu5|q3IH-*#;0F8_HF`3b`e*_fmt{$YW;Wlg$ zP@^fS8eSJ-@ftcQ{DDrS1|s^y8i-P)fiM8+WHoyxFpC=J7znGK?FwS=!#&b1feW=; zAS7%mpkMHq6F35WT6tl(8iMf6!TZ6Z=*`2L9W5#Z#cK7u09covabqBuc|H zWAZ!`4+a?%WIQu^3rP@35Jc}0QbZ3Tx@ai~qHIx?W%b^>Bw7R!qFbHSNi55&TW#+% z&Up9#InN|(_xrxz-~aku*Z+T!Wad2QIrTpGx%(|7|NHFGPW41)ZT>)p&l*s_Fit6_ zE=^NVBY(Nj#4{}*T7Io$QR|SXg`sK<-6?43Zhn~sby$TtJu zp7NLE9o8ysHT}fCl>Ao5rD*eqNlX4Z*RXG0@IN|ZO{I$p-B0w2Pi4NhH4XWVe$thx_GAieF6V3mM=vM;o@uw(jL*$ z-?SIO=p13)HVMA#|01kgD_$gja0$U^l3qXoCG>R^%T_9S`(bgUpBtJCh-up{cK03Y zKMtnP?b6+=Mu-6xq5`-B?(1x`^wOBR_dL;H%cn z3)&Md<><|(^#;ei(y-e7`9E5`sp>8Y%^%Qv4-B&b(j7yp76Ug=K?3Bq{#ruMoH7ik zGV^QQ)U*~Csjkpmib4DV{}8b5Ci~K6f3G7FP}GHI`8HAK-)IN-JQR3xL8TN9OWu+6 zQgwF@B>-Hx3p~vkwKXIAa@_`?0+RXn&=g`^Ei}rv%HIYd^cm5O$P=y+!V5aK?l(($;^`TH^T-20>kPpI0VvD$YKMDEZtA8BC7hezJ#}sOVU_klp zuUB-tg`y*ciuDIUwq7IEMG2cP*3rkYrl7dBf?{Yo3w?Dg`l;ZlrtTOb)E!5}8ihDE z;w>%-b%z@+;qgMKYc1OAT^$8$MB^PkI{40$`AR_sXl6L04c?Rj5&GubTH-Qz2WfYmdP@ zva?gSXB|!*9u+lsSWlbruyDrz0`a$5_lW9K1`>8Z@}P$@ zwS9k|%9E$>b>7&EIQ3Zd>}XYo6rhb%Fa^`Q0y}gy>fvsnv^{WPI4`l>bH>zfHpsj!ZVO ztLY=c!(vB5Ie~8HE#KS|7a9^XGT3IU%Bm=j{&ZQJ;-Y7FL>}O2XtF-* zt5&7k@Tabd&_pEZ5#`10GuNwJ z|L?NmNkf7z|3c!0d)m$-HwcbDUZmS1(fkFDl*o@9y(HF)J}Ok(K#y2Y$!CAjhOM5;)4|%&QxF$ZIXt2=DFz=AZ(+Vd>%=5jjOsDV9x5SVUVuXV`4j27O#SKg z97h1u)Wz92g|;SQ`Tgk{`Rmzvw7E(ct%L%(R-Xd%-*A?yvIbMC3t6udR<2-(k5G?= zE3ha)#cd$5BVcv-9hDI+v1tf@f$r2D0~B6@9a2qKm_Nu7S)GPB;U8YYZ)=spk*=6~ z(Fm9%qFE&L@YCB13E2I>%g|WI1@dFRfSqSmRNX>*4?R+Yghpck*edNiajbdoKG6tj zl8N}voO-(NLfoKOknFLVHOc4d^wA8W7(P8bWtsIFuhGK5r%vJ?+=X}aQZaT}&i zvNoX_w+u9O3AiTYdGbVf)3#=U+kkD#wJzMnlj~ZC@(Po!$Qp%m-Q|;1aVfqSxMf-J zDRS|I_VSpz$lg`INi0Yqg~H&X!E~$xpzo5Z+YhtpW5RA3TVSTbs@RrlthMU?h;35s z195hEea8iU0h{_!VG|Wro$Xe|c^r+OQCMgDQ_*fc<+HC?Xx3JH_v`a;oI&>aJFOkm zGMGNv?Ko^klAZ0`r<(UgD+AHW-+H2Nka6aJVpjF2TTIv_jl^KN(8K75ogXpneL> zFV65&^oxNS{hmuzV1`Vp&uw1MI+))yBcE6wswm$%Ft~mDKCw+~#{N^rtGaAfL#3Nj z`Y3C02ykbYz{$7rl8Nqn?UjH_d=Lq$TJX7-<7`M*U4o~}Z`a@GSA}!2OH1$}gqx9-ZS_z`1d;qFZgRq^I-tUS?jR zO5cXoQLXn5Hkiio>Ls-XL<0~l}rW$t5@yHBCAEP_0ANPG$$I%7(% zLIF6C`+>YGicQ4Pg18nic%C&ecMF@A6k@~8G>gi7DO_;WXpv!ER>q<|mb=+~eQl80 z_)!Z3HLZS+*9Kc1h!v=qK)Z4O)gbE>ZPD#sSnv#cgcxyWUWpgxO@@ki6C-JhSnu8c zLf%f^Vk=dJnQ>PO4S}R;oiGls&4<_=xvt!;&J*}odOmp~v~5r7a8K@82Pq(I#=RJN z2x!Iy82Ww+)I7E6l>pyPyl@SuT?-v+^n9R=R~31mn#$Oh5Q(bu5LhsU$~;@JeS9Z$ zV`1<>jKqzyEHf&9rm{c}b?T zKMff%FV0dkv^#f+weceSSIM-Mhq2KTZy_5aFqL)hDM~xyj zF5$JPRHm41Nu-e}qn+QC;u1yJQdcweqEA%Du~?8VG|jMn|Gve$Ef3B{)<$X>->@!C z=n7z)ORu;umc2)}sYwy=`>l@~8OY265s$kd1K>Xy$sHbN0B9ExZHraR{Q%}V>iXlatzdN}A!jL@PdCRkoLgQ+MQuZ;of?m48>qB7O zED#^-&YF?9L~+a9efEe}q1^R}7(T_-%WvDgiN?)r+?K^B;v-KL4%KsZFu zM{U10CaAXi#G7%MyYnza{NlwAR=U;9%DuVU zJ8JUBp$~Vj*m&s+Qk9@EUV>XZ`7CfkRVn^N&cc=1R#VovoHJ8?wqzcfzx1$;?`2QT z4-U1%)m|#Hc0dnX<6}MkB@*H&N3K4!8n?pYHGg6Pp+;d=qwIy)1v9`kpJFl46ty~Q zD;rkk&%?c&n}qOX~B$Q0Ikh9&L1VlaS)UT`{i0UJrS~DnQouzt*1Ns338v z4prepK%xyH>ywJI@uV2a1wi|+Sf){Sq}ajbPLn`%@Xj)b5ac0B#{we{_b9QzM}g~E zI}Py(s^bfl7L=-!?r4XLyo}?lb`e|z0rCV*KLQNDL8dieL(nc_s>$}60=)bL1>>O} z$Nb=o_2CiBLU66j6qCGc7@8bAHRd~b{rhpn&}P}7L-#zXH}~UlhyeA>hnh~eigQxj zu`OAC&u ze$Tx;8!!AuVlYp6M(Y&1jg?yuGG$!?(qYV0LCDrHH4?9O!>gMhtuIxTs*iO;2x^;H z;YL&*;iw-hyPJOgEZQj}+G&J#xLv!w1H|nefZIC&w5(YW`5<65W`*qr1^X22#y?n= zBfOuWOcN*pRWV6_EJ|y5SxtdQ2ei3QG#u0sI0yt#8e&Fn1p*?2Y|4IF{V^}n!ZSL4 z?4a>U^A{yp2f`^jao>Td2Q5_M_H`$bgzLe$2kY0`5Tsb^f!j)$ZU}Q#jq=Y$UWGwW>jM=5XeXN zjR1^PLt>xqQzI=kBQt-s;mrE+o&bpVeiWL0V)42&IIITPcbDYbaO$fF4!0ccaU$pmABdcDX7fc(rlqQj}^@ayiHesi*bx5RB@_$6!b)-o6RmeBAowi<4Jn z%>)lWEnb;{<^LT4d#fTVsv`)!gJG@CcB#85@NhiB>;~%Tm#RwDFU!Hr{euX=H*Icn z#oR=d?#NuT7|B2rshb#XU6{PQp(ISYNOv;`YbTM4B9q|BK0bExX#4D6CMhfYH9k#S z`cTo_;;PEqPFk7ZZ#8Bv;B(mpD%I(V(o3pXJm4B^lK>l$A7}x_Z$F4kE*isBwE*!t zr5Jzyc>&S~pkH`P%c&La#1L^jTFP(^j|XOrmv|?cW+4piB5s!mpBvJ*;O8GzzFxbtXaBL|22Du% zQ9IUpDPe!+)C>z1`qu?g-gzN8NJVOFGo}NXo_S9hiMnO>a6Lf#3@)elyn;-%{d zn;8j}0xi>~&6%45x?JNB@6Xu2>AUq1?(792v}K{~N2)5MOV?$Av1;Q=EXp{f7xtfW z6xIspcU%f zQ?U-+?o^XzO--4VVuAOLK<0jQ9mqTotCwNz@S#Ru&RMZdP>y#!MpG9X!7b_8`~mxumYOI$9aH zy0%3gxq6a=k1(@V22$g%HQ=tE+_hyOSL3ZlUu#J?BAN5oY@5oR_c8MsQav-)b<9n!@0O^gDY;?afVK-B}YZP)!x%E|ql` z0#n-TxbCBB*VQ7WA5gc8=>sjpg;Wv3>H%Hqj%#2sJ?F)`r5(#TwB?=+_@NXJlTA<1 z%yTreK)C^93w8hp#bGsgBSF*^bpdWzT7hhvxL<4Z$uCd7qQ2Gus4{qNa8a6E6z}#C z)l5z3ypV}rRnds451MJ>53*skkb^eCtvy%hizjKrZ3}_4))5+HFa`~9N)=3ES&%HC zpQVZdrk%9H84_mN~yr^W#>Y>a8X(yg!GZl+eyN`G{ zS$mk>L!qT9WMiGFJc8P!16vIM$BJNqXlAs%riv7YSF)xLFbQA&J8ETj_M*`+3 zrxd)wk`?#-#vbFk&Ss*)SR@ez9s{O<(Tn4l`=8D(=ZVf7E97ZHrrkFm;ZFs^pK3ET)v!~9`~~r2o~e`a=w?A3kvx(?QIN; zL|*rOed=nRLx>;SW8W>j@|r3d?j9W6&Spw$85P|CxK@v-vsmqO?<+%CE#ySn?C-NQ zHp$$%^W?bpY`XGN6A^h8h=_QOA%9-I$>5xq?l;~be_oH2iGnn`4Z{x zCZ{R|WoQRt_;}cqf;K$^`cmJ0s=!k zaHsq#x!g%t}w-Ct0*t1fOcG8Y>it{|Dhyx9R z)!9~ejbPPv{YPUs3K))d8eGT*bOYNN+e;jZqrt4se~_Bl$3SWx4d&fI5#qc|2`)G= zM}z-5F?@AfUB^IrLyN%|Y!(cJFOl{Qme+D!zddGRq{8CtnyP@$Lia@X~y!C!bD55aOW& zh{EC@poa0P`aAcr#yZNGgThYUe{eke-o0Z{4H`#vZeTOEnEi>0{EG~quyB~1e2^JR)*|F7pWKwxf56D3uJAW+3*n|W3_{INam;0@Y%((0Dm?tJQrK!& z(ckny0y1w%y{7RhP#ABLjSCPR@q1nh0*6#8<-Ulj{Q2h-U@Y68F1zu^w+&T+=;}3n zfWl?CV~9M1he)Pz-|)hdD>j?y7B9qG-%}NXX$&&Z8V#mBXbs0 zQ%m6VMA`Lykmmy*<_gyaVD{Y-i2Yc~C-CRNUz!8wcSA3!xJz>p_vxlbrovV!cbGTKg?&1)4N9~YEa@h_zAWq^-y^6B!9n&WA&~4HzTWZ7 zti2%O5}Of*NQ92MB+`d>K{B^YC8K`AA6Rqm#QXOfQZ2Sns{vl|^$s|XzHL|?kKHg&{ zOQj?PDWkUP0A!@!PA#$0_ogF9^t7)qgGdwln`n?lL1#?k@|$A)U>sDCR=L~i8o82ehI8K6`P$%BNE-WgGg?QLl%syAnx*aq{3=Bn@x|DEb9P=gjCpWhEqDIF*kUurL2?IK=< z6dr=&Qse_bSSnME$5+sTYw$&0-ZmT!)FPi3@~N$3yLTHovI|7*4Ze0CLO$@%)zfE~ zJ`_`E1Argxj8YE({Gpn!2XX#T(SwD89nrAVz)8qE>^MmlrTE_=@>*l64z zJVCy==JftMmeX1B{rB2_%ahKB`=?fhn+r%6H{pj#_)9I`KTN%F+*UVN>OY{zxKQX+ zPbs=(qP0aVlUx-?*|qFP^*9Srs8$y+OpVz&D9L-PBKYQ95q#6Plja?9nc4RMKXO0u z+))NOg_r{wD%?+sH@%TcsN|Oua1RuWNbg+EFwR>Gy4U(QVcYG zxg5XmUl92UU$qww3iksMMfNG{jqnu&ZZxpg4Uq|h25PCQ`;p}iyMoB;h(}J|u!z0S zwy42EquRr{y!~!Kr%G$pE+?KnKXv@(jZ@*Zy}N`Vrc*ndF7FS}yqFNhrydO_o1U@+ z@Yb!~ikAx77j|Q$jTh%FC2AMGcKO5v9i7?21%JKWn8D1TqJA2`y?@PyHOv(^Bc1+CZaSN7= zxAy0fg!Lhh>vySyjn4cv*WMb)y1bm3iWLQwLGYxmSbf zVNtz#>9YOGOH@nVcvE`1A$3Q#Wj*f!^>dF+^0A%6d^gxO28*YB8tZ_l>%0OlPZba& zp|Xnm_oeXR%9x|}2F|WbwS<~2dnwZ#R+Y6h*W)RYX(L1^FC^YXrpY2Fu8$0N z4G+369bLO@&34P;rQd(I!e&~yoT^EtIX?}Ln>WVNr02i}uzlfGFpst`AUrRndoM17 z?JQG4I;R!Q02^(A+1gUi7rZA~492#sfr!!Ir-!0)iy3dMqf(9_aqemumTlj)V29<> z$szu&`gL!}0u^XxT(A(;Dm>xUW1_#A)CcHd77GTeSCR%oaRgF<7E%RB^siA#vo}&{ z2xIy+XG-g}D!-ITSMV(*}+mGwAN1vW}_M5V% zRaL2~!PNLY#1yM4+LqN7-GqhBT8)Z2Oy+qAvR zo6>d=k4q))j~H@%pp^8miT_|4sAYonrRZHjckZr&h8geuBH$A)IwI}MWfiQLCuqQ@ z+!H75j5u!}Lxrl{=aJ(vx{pSLn_aX?%|pI42sv^0?9oVwP+BbU1~ME921)_w<{aV( z)OOSnZ#|7^nH zbF@Gmgmm(zEi#VO01bPJn=Og`fhHU~{-PeB2K@~rBQ7GL9G!x@D@SbgaIDlQL4m&( z+r7fE-uc3CK_ozTx^&yF1=}r`PH9`-Kx}y-=ayH*mJf)YF}W|c+?GPRfCSc&inym@ zTCP+9;`|Dl!ffLVBvhX9F=pz(?+5=-_WIe3yqBJ&`aS~u*Qi~KR}b9Y{7AT!7hTZ& zIwWJaQm>sk0rQtLQp3*0S`XSF*s)Ls?i!C zVtV6YQ5@LbxR%@D$_2yIA)oXZg*olkh$HuW;z)o=GCSdfw8CIAG)Qw2Q839$)a@YO z^LIq5KcFDs`2@qbl(EyteCPIC<9dev3&(9f<_Q-oU*6cjE8OWs6|DYupBpyK-|*AA z#csTpMsbOoixA^ikgU^0LshOSuw}#Q?t;EFDiOH9y%>evl}edmflK~AH@JI?kTE^` zS!o^j{Q_$VT4{K7?C|YNdk56F@-&R{sW=bCz{jkll6vx2AXlX#UKE_4$c_c5l#UAJ zX&kI^5WGQgM@8BLC`d-_m0bV8pNym206;nc1Ih0UHx`}Rvi~4T@GdH)tGLJ$>=T4M zOVHpy;u06Uk478seD^(h&lHXquUT&p$nOM!j2Ps?Q5t;93t9!f9o|AOTNqi5>LQ;_JSX_{zdz4p-+Q-C1!A16Txh z_@J|3=TwF)*f1ZPO0iB7pf^qBy$z9LM)w~ZzhKD(+_SDy;`YN+4_l0zH4xMg zmS{rYp|7|KowP4cNh0{9NZmay(S0jmyf{^j00x}^D=5sjhhf6t0n=hE9bz|Kv_UB5 z!z&tid4NyFQ%9Dr*>44`C*xwvLWFj)H-BKi-+_iOQeXk4jZG~5~FrJF5CHha>N zw>PG(jhB$&_rL?&wyWiRvlY4DJ+UcktIZT23;_n-4XAaC2O{WHFm=`X1-lGEM=hBB zgVKgmIQ2vyhh6A_$_uxH++#wD5PYOS@}XtL6?IKJKX?5`1^+F^4Et9wTyN+y;0fUj z#YZQ@mBt@{A7^2LkUg(QhUScKRq<8h&+7>OJW=rHyhOWiMRu!s!a2zupl<6;-hG`a zVnPTc_(23Z*x#Vi^wG(*pGWmi@rswYcB#JGU%;NMxes$-H+S3jm1 zYgDlBB9d1DH|}RI4h^yYmqAWO9i8J63yW6e(vzw^BuJ|-@DoJI=|tRy9-XQpJr zF6_7hid1F3W#72ci zB>)bcuof4xq;vt0zavznmw8lJyGiXVEqbrto4Re)2^$r91-95r4j-{<=dScMS8`5F z9(%^Nn_Q$F&6}-kX#qCXh1H7M6@7FZ)WIDRWBYaStVnL{sdjGO%G9e?W1K*PmjQ@r zf-^S#>GGY>6zmcLH~n7%9N^8S4sRJKFghM6P_P<6fjbThGZ*vqdsNKE(qJduPua=h z6}VBep^stU4uQnH&k=h2X@TfUa|TYENxYJb&jg|m`lGrs^$?^x^o>SD@h{4s;%uRe zrAo%gS%10=6=Ru~;_~v)OE0SG4pPcj@cdxl2k{x^YI7v2^ww~8*3OCDJR^sU>paJ5T*!RkFvX<= z))KrRB&5C|iG5&bTZ`73sR=k;7hWYWbY$09tLf4mUgOIs?Hca3`{d}`mOZs4z;ldB|>gI-_$Dchved7N8(_ys-Palyy&er*MyQp(bq;DpU z|31lLoRfbCMdQZm@4O1d6~YFJ732Cg>j*U@zwd7$iuchQG<|8?`600KmWv)(2G5{WPW(Lv^q> zBA3=MW`WH2%8tFK;WgvQOJ3rTK5$D5?rY`O4MOVPf~-~ufo){FPF}g)FMDsb@rAH+ zyLoKKQLBj^J2I?8yZ$3u*=h<=F)}5aJ9pXji|rH4(QfV^(yDpLpb+q4)@fAuPnY5G zC;oI9RP^GXE+Z$6q9UNRY9a-Nm!9@cGe3N|e)mONpAXX5ehtR9w1oCsk!E{L_nJ^2 zPb$pyr@6IR)1+Y`*3631nmt!np0u3VJz=oTm*2h3dwF8>3|*-_82$t5R{BL@qp-H7 zSBOt_|FlS~Q(d@#!!%Re7PzASi#!)`{RT=+Ssm`}sDq%zMQETny;!EDIIP=6RtG2y zqNSVI25*YKiMXomz&n-z&0iQc^CjKs1Z0F|08h{81BF2re11d5&$r=-RPz?E)}~eR zh!)m;FdANSE^ES}|-L}4n9vweQ|ur3`U`#0$CtG}4`;(_Y9ui&U7qK*yal@P;p%lErH3aq-N?L;Gx|h8=!00P^YmG_4sElQCL* z4%=mhiP16j%IOUUQ7fqvf znptOor@W!;T65TPaR=Q}R-g&^YzbRotqn|-v60MbcD@TnE|gybe-pra<+tGM00+?7 zhqX69`u7H@+h39|pdBzBkbMn@>?@mHg6u1VRYkG~D3%2v^gAQMDXdkyLily^_|2Oq zA^hqZ2H!W{7`xczIY?)xmS?fJi#rIhNEhny9AX|5f(4h^41?7oH43x&%~)}d zg#-(cMo0=ss>omnH3UeT(p*lDygcFRxAApF1n7`p5xOhQMT-C(5=^BRzc}~8(^zG* znjs9jHWsk5R9*{GG&aS_%-T#_Qh3Fe6{zA^>$qAX2G}4i#T_E1*_4bAKicem(NeXQX}M%-AvwPHZe^AYLU2pM1hpZ3)I?Rp2kKVj_ z{MfxaCnJM{!@33Gv?eG(M_U9siu>>AsI*2{c2)`!8h7~{y#DxDfNa)hgFV*#C8?f0 zNp4m1AF!L854(uCb3`%iWc@`SE4vzMsHWi$RU}}^pfBqG86T#p%txV@RJfvQOjDs0 z!&g>oqI%LX86`7dsi3mi0^3B2qr2L$9QvM)FhdebfLyh!Ks&{{-OE=|-TJ4B%5;FXIh9nt;$YuGKLX&4U%_#K$rISD76J!o z<4Df$Z7fYybUDCF8=#@150Db`HVA;|${X1n{ZKs5(05Nx!etB9{RAhp2Gkg0G97Pb zo8f3;ZV++$$!|Gl9^5|>QnzkcXhUq--*MPKvuq1K7`d?pn-zlL!2kWF3q1$#^2tRo zFYp(xi_l^&f*nTa+rnLHtAT$*3j+mOxCyl2|Lz8^QjfrkyiD7OmhaWY!8M^1J?SNt1s#Kty3p;^w*mtVC6JymCDTuS_I)--^K`MZsf~}^>baDAv zSlkf88f;0XLO5?!_oIfROtAE-i@{)07)&<&Bdq3j;mPBM+f03+Y3m9;d<1gVe3Q_* zn`Qch**{FP2_vKFtG0Z%!$QV=*oUDDZS!6tq%TLl(ADU%8MPq)_gEP#Iuwgj*4hJu zZjYtFXm?{NV#HF=_GHpEPr%8A)24dHIicD zfZ(`#uMHGsjo)0w(QSH$m$UZb^UQ6AZ9iknCWGP3#-zU8294@qGme-D)ExQg@f)fS zLAo2%hBu($4$|g0QEZrr!rnlbULQTx=Sp?ZJez=%#rA2tTb|4fE@=}uW^OkStDb4t zzGn9-Y$@i^Ic5On(OGpe?RCcknmVyDifK^_y#p*Q*BJFhf>9SmfThjBBy};H76)qw zJ2n_6dvUOKv^#5@Ww-)!i*V7z3K#hK2;OsN3ZinDR;D;nL5jcyDcT!}N?Lx$wfhL( z8`-VtDtgtl&^Mjjx9RRC$5W9VWxS|GmD~XxJ}@5>{7F6d!M5l&ar|i8Z3+j6 z@`B^{{lnY`pL+@prPfP6z`#9!ZB5Oo?)wXng%xRVl6zYF@+Ib$gSQ{H?KZ4ilLiBl z%ezMO?LBm88^Cyka!&b8-36UULvqt4f=Hq4eC*kjkS0lWa^-Zm>fNf^mPs!noVN72z~mM?|!3 zlM{IbhPUJX9R$n$gD?_> iB_Mk2@Kf}trRV8CG96VSgiL4fZu$&9f)4$+r+zcn6 zG>qCN0>_tzi%>A~tCZ#w`9yG6r774(s%xXLiy;5%ow#`K{)u+*>#7&l4%n58Wbl`S zJ7qPP{4Eg1!X8xKamnctT}jw>hQh#*6%{=#6ZTZ~sh0Hm>FRTrJ;_u_hlLMG8PqA%#@F+oq>5}4l`$BrOkrbGaQiS)EQC!et9-kb6~)bl z02lTk7%>i3;eLHc1%C<4s2y+v@KkrJ&DPQ_brZt(r3-&!(-jCNDjQ7cAp4UId>+hf z34(&9Y=Jsg?K*`OQtiDiDYM~9K#V-$PU#N`6eLD(u|Tb`Kqhbnov=VA-U|OpL8ID< zcftah5G##5T?0Fx18Q+Qb1pac3{vcIx6Yjq-9THQp?@t9d*xi9q44{DWiVoa%m{y2 zR>$C}r>BEtHdBe$(u-d%(2YE)ZQ73l#LX1!^M}h`WAWAwZzELP3A65Qg@DULo{Q2!Y5iDQvp> zRN;NX6}}R&9jd_!&3szP1>vZDRe7Nh6;H&Q2+-YN7>#aiGw(<@^RK^wF- z03y+7wox=j9?JRl;*~qfyWCUsr=QayZ-U^fu3`}?zXX9Vn4xQDBvEMPa%N^XGN z)SUGfEw}a!iyS;9wgX^ys|LGi0(R$XuscX})13LyHl=O=Emr4i09;nsVpISC4^lBf z0C0@x?HT~sq^6?|w&xsGGNqp@0N_ea0A65#VG#frE^_Gr;2*F&%mn~^Q8ZJQJ_Du> z0D$)k02b@i3V`MgSK$ztQM+pZ34jaVlq z96J{ZaI7tqfMe%E6~OWTx=`rG1#o;(K-~Wu90M3#P{&2UdNqLhgaSy%7j0(Ad{LdN9rpEpc-D&C{rnT_rZ)|RR)vHx`8OB1h z*kJ`nd8qRBP>VJ&)x~0}(=pTKVy56c#i?fX#7w7Sq9epar<0e$8ik^Wwmns7n-~_H z=i#d6S}-v2Rb`SG8f|;@k|CCl3mmUEvF&1v2!1Uvj1494R78JW$s|@uWjzk50e=9$ zh<7j+wpWaWw%t+K0WlaDsuWl3p<*bs?Y_chiLs!jmtv2?qEAyWmh0MB?uoH@|1}nT z1&bA;UJ{M?h@NKT_k@>3M-PC?rYY#>SJ98Xs_19JVr8}{70plk|Gjy~0$lyPKYOm{ z{XM8TywIR`dOtgldgl&%M3K4fkkGlp8&+?+|6ZN$aF_{^n6hrPKgxA=Lx%PkX1&)_ z+Pr$_ihY(N>k>vMO-mXu#0H|Erqq_+g~Mr9S!XFtp=hihQq{(k?o>{S#_X zH7_=o`agoC2^OPzwjPxcH+CqSWd=3;SECREV+{Y>2yA#o8->+0EQKXg5A$^;zpG39 zX(07A_|}!$oHm?TKYpaBJ0dQrOH{=2jj`4Njik6eza(9^XaF({6geOSOCdm++;ZuM z{5hQY!<6-2rD(^N{{hy?0<5#dU6l-2DtOaH147p057Q1-fz>gawupuWEFSKpns$iJ z5I$iqhWTHb944CFA(|W}u0KWHm78#@U{~nPYuIVKFe9M9&S^!a+sF-TN+{3#6;tZ5 zK}c6nK00B{&_13`Z%08ESLAl~Eh`>pj@cQ##wu!n%`QJuw7Tihgj?x2Dm0ZLRP+9` z+CU42nQ<25+<#VEm62z)v1&b}qleV9|JlRHvjsh*qleV9fAx@-cLPhfi}duZ=qB+; zR*uy*-{^UqSGC5<3vNi%Etl_+$MA0?GRt?@PGHy6u2E6T*Tvcf1WBXzTpfQ60V2*_ zxNf7Lp~(@0NQ=fG(tiBUK_vc|KM2$Su>GhF;^i%h$aCNFk}bf(Wx0H$-DWZhtn|Bd z$zkL*UtT0H18bURHYEp(){ms1_3YsPY&|(Rzjf3A*AP5X;Y-=RL}cr!o2dKKWxLR5 z^b#SX8nEBZJs$8v?S3GmR9l|Ijl9sso()LXnd?FiH=sfnXK|zST%HMQ*+T8J9&p`h z2wc+?M>$vnc7tFeQV(0Bjx=87zrhM^K1$~5G2q&)jN)iHogxMK!zmK3FS{rbM{6)h z^ABb!uX661ld-4PMd1G`vFgS%$*&#@XEEn%egj2%!uDaH?ILx)#?p~xGe zv(nSW%d`fBxk_urZ=<8ebZW~sChD>%T%Swdf$EgEv);nh@!6LsR#tJ;fT*~g_81YV zGR$EE`gf1o8*}2s-aXkz2J8#7odc&0?ecI(ghU}Q{{eFMgBg`SeqeF2#vY_+#~5Xcugb7iC@m*&e<}ZCBKMQXRbE5*Q%%;sNzQMTAlC7a`BIOy?QaweivWJyyCc%OWZ`s6;>4;o#rNV^b7^h@Ch9`3-Vt=5jwicO`n5wxuWG5G>NXRXeAJJp{Oy6 z`YKGXqSHyQw3VYtSh`nY>E_d!SGog?=?}mcn6Xz52FG5#N?`^6Pt$3<^Enw4cm16F z>fgyw8AWPk*a4K~x5M|rgs-IT9Hr^cQKlIR+LAmCRo!ne3z8(w(^IP(R28G(-KZQQ z5{crCqPW2g^GTHz@;Hg$fFHHWv`eduTH5!G;=5MM$fL9aKTt6}{DeTm9)JfP#qLo( z0LwGg^pN1Yfzl-^kFrloWTGCGK@>r$Vh@LAxkIkGkR;svW?lI4k`Fqg0?5 z6a{>Akj*niQ)fiNhfKn>_Eo_g3ZAEG&s*TRY3*M#dB{=|;UI&N<3%xHtsqqth? zgBrC#(lb?npbgL*1yR#+oIR5hI-{vM3pcX})wGt*A&zzQo`kK#mRU`qs4q%?)Jj90 zrQ+>fbbPi3#6bA$o|%P-H=&1$&gs7gp=`AGQ1+uJ3)RX1zwCNGc;|P9M)O<5vwIq_ z=QoDe3SQEtAdZ1^0!BxSn6xej(>3y3V66@GGvaabNHf78q8=Me_|c3b8aW0_&MMnP zm1gz{u#T3go?|e4<_E)gK?abc%6y~aDMn{>_-OyLjN;Fp#fYH7o+na;#I*?hx_)&>M$6C4m zE%F#qA;Y_c4>L|(tMsyrX=F_AUZcXNyYVG720{6Le(-Xm)zQ-6wXx#^(s>$@Gnm}; ztS~~f(H_J0saxXL45DHe$_%;P{E+uzHOQKpXvq=@=E3_yAEeT@4MB|W9^W`S3He-7A9;-U{4aMY~ofC-f%c_ zESb%}vkFV6E=gHDx$K9Rak~a@8L+18ZmKDH%cgN7c#*_;iSrWXl-+`8M&3BYdYGY( zQ-=0@Mm{EiN%IajOWRQyfreG(BZ@x?wh5Iy~v%xINa_uO-t>zo%7Uss40BOs{3# zEv8G|drcZUz*hCGpYNOM(%6{EeR_I!U)F0=jI~OYN4}pvO7VL#Cm*&P&Rn`~x9wBK zM^CH%j+Zy?U4H0@CnE5bGdJ#Z_U6rVXYbrT9}*ngAp{Zj!WJcLNU-;VExkMBIXB*3 zM|_S**hTj>ub96%X$Rkv|On7SZHNo@UNC!Ac6>w5_d=uXa*gGl_ zOZrh(-pJ5mL5t1Z)5E#3%<DGB++Hkds zVI<=gVFf?lYgg?6H(DU_DqoFz^|o;-;I%w!+U)#)(~4H95kQj6y$(|OYSaqathWX6 z2789awSpD(5aHJn2SZReW$V1zd*PESo7b?Yp5; zfSe2`_dK~fqESVDGjhxT%b0`(OD5VP;pdUK<)CH+^xzH|m)nl8N)nZomr+rPTjhD% zrDF@WZOpV7Q)W}Mz}yFrymcZEcZfIxVChhqT{4r0W0PY8Vu2+EzJkej9SXq5Cn9%Q zW-cH8fTgRq7sDBWy-XxEalI3hJg4fWIChMD&BG@SpEm4!H{g_0-(-zB&>J`<S%88+SKvEAD%`kGZ{o`$=u_)P&Jj-VdLr}bRuGvwq-Hq9~RD8wAfQPkU!!bnl_v; ztf@7f7ninNzOwYZ<;CtneJ4(xGI6TS(J9d0B3J&>f{!*|kiSovIeC&N;%&(O6!Ndv z8xB0Q_6OfJIK+2seT!Gjj*RsymTy{OV?nuJ5Kb=xY{>Cfl#>XHIMHoAI&OZ&8yFC4 zH3uj}=HK%iDUNaw;UlMJ%~$+5n3m(4Wtz#4OCogL_jFt`jusM6T|WHj@EKywg9IjO zMjoG$BYsbnZ!S5p`m=K%1iX!?7Vwtq;HS$V3*|3m}#3w)TiGNG=4TwHf1-9sMv!HJp0juxsiJ*dOQnRj z@QAg-^NMYQgbU-pCD!%}D`w8CM$-`;rip>SW5}Nh&t^CAh|*%kTxiS%KZ7~+&jx*I2H`nI_xPD@6{k>9i;Bj5S76J9zy%kaCoIihw5psHeiO2!Rb3F<5jJ7Qtam5zJoOao;>k<)aOv+^C?aAFdEq zT(t7Vp9aDb4vShwesiQxlcwGKRJWOCv(E#MnS&IXq@=<=zBwQWLt6|GUMyl7VfSg5 zaGuYy-(@+1q%`e(5?$>Ww_3!2vUsIxfp5d{1C|D7@fBW1gtKh2y*c(I!$u`?tH^Vl zSZdMig}_tqWYZf*9bThgAP7^_q-j*28aCqt?aZG5;0_iY)WAAcm=z8toBSj@7HUWlcX&J| zR1|a5u_gd(yFdG4&izspCa#7na}FkK9PGxw1hP_c+gW`gx!wZ(fCqJlYb8?qTo*~U z=SwfsPTY9!x%6RfMZ>f;Q&vx0;pRLq!LLBg!$vv(v>eB2dBtaJm0z98`lKBbt2ie8 z;i#nJt!<;L)qKl?|2iWEV=4&xk$I=`bWpkZ>wjhrGy9b1_#`7b86pAuGdN4)YXFUv zjX#M1$m_)DDnn3TjtFiDad!8B7D{!@ad9Q063J@5g_{l5L6W< zSRD#tW2k{+3_gk$sA(RkztuUCalf{&$8%X(oc_Hy`I+|V0-SO3heO{qlrCz44p%wK zO57`uI)@`FA<#Q@*6_Q(hTp~KT;BOObqu+(YT9hYrW?>eVZDNY7rP4vYhp zT2LGrsR_{N6f)}(3Bbq9o5Q%zj7-VRU?|;;HvxO!gqq7nRAn`kb9iC5iZ3c_qI<#+ zw_*W{GY33|j>!c5k}04b46sUa{N&Xm0o*9hd(2BvNy%92G&MX=#`Dxr2hmJJJ)9ll z#L%;{F!bKBLwoc{AAHcpr$JY>TSe4?kJ>|w84ri_)E=Va1{kor7zwL`Y7W_zjUuCC zlo(*aBg~@?q=StOr+^c&~%J`g8Ea;3W(MdvX3NFDCJl2K3ZU5*n<(Dxs%mX2&Sr4w5fC#$PIF;79?6aPdYo zHd_qTZbN1v1O1F33iy%m84Wd-$lc%=@GFQ-o5*t}`_B=99&;M!}-Oj+~Ix(%MR%Ai}=8MJGpUXLS(AMeD z*$C3Zd*NSCQC7_72`^@IH02k}U7|Bip3KNNb$L&p@N`>vY)qdv7FN%r&4A3~gKWps z_GVtToXUs}>k=IeXLX34>!|i9(3_fY>!omR$~GL^xN+Zxbu*@{vhEXP=dfOjdRVx7 z^B~bhHa&)s2`o(r*eb#PE#h{is#=hG2<3o5QF86ex8(oX{fmce90$2o89TUKWVc{? zT7ckz-_i={qXByJ;^AdIE>_6%4!Gg#A z_RDzg$-E^#3maG(UJ{NZ%^Bd#=OD@Wn@~p=qv7~z03C7;jLbFy!6Q%TcyoA{8Ohyk zYq?okzW?z2BNnQ3w*jwhn`t=Izw^eX7G8msR%j8ti!1VPZP&gOHMfY`fAQjx{kN_k z>(jAwkDkIFvjZK6nba{tGQDocLikNH6_Hs(6-76;rDq)2ItXTO-Hrv19Msop+Hs6d zC=Xm&h-zeK@!qbtRQ0W}`s?X}_w!#im39&D7jgOeerXry`)hy4`>dqLyK6T=-6}0_ zR;kjm87{OU*P6YvIZ8e-qh&nqJ2LI&&8=w%GPcDwYc?V_+Gec1n~h`8|4Fn?t^G4= zulpBkEmUFc%n`JjugD3kPa%EyC?5A~J(#n{9ps%QV{HU{a?u?D!htSmChbsapTvvL zSW9GiVExT~5R7OPjq>bO@r3#Y*if=;$}m(JHEAMu>uu)ahX0uY5&#BwzKw zKNF(`)_P#s5 ziDTP;WocLTE*4-}U?e2D+jMZ~frQ>e$8`*s2aAwR6_-hs1b%IYJ|GjiRTL} z^@8EaIX3zn-p^^fY%G2W}Z7}KI4M8$7HZn6_Cg6oUUvgT?;@_|v&mWNAL4?Bw z0!$N=vPB0BN!3(Kc<+ zV>ak9I_f6OX}%+SI<1%0uVgj@6T8>6RV63R+dlKBVp`!e+=`_PZ|B6cK2ps@XQo8_^%af(Cuu-Pcb3et|t>;et)BQQo&; z8{(DDE4HqiyL5ks8^ZY{L`d!3ZDMDKWlD|Fp218su(4nkLYdXb#zN|BgDn-*AAGG2D>xNIvletQB=sVb!WKdtCV_&NfB+$w;iO^pEwPUXIB>CmcItQFIF)`0ogZ*`;Rppmb)L#ypQ6Jzf?U}UT2 z_2w+=>gtM7y8ou@!_PZd+@%u_w~SksI@fKzvS!KLb(`#3*5|fGv*#_I={i2{=-ch> zgU5~>@}{fScXdC@v|Fydf8f%6*6seK1BO+Hvsj2K9x|$q_ibtyr`kn!A26}^&#;O&lYNoh*$ZHudJG4ScRiF;g*MrPdq~~sX@lftDBXgt>JQapRo%Yj)YSNiBemd(0abj7sU9I;sn3>|^!WB|4ea#F8KT3}tB{v>z5i zXQ=Q z+9EaR6l;0fuq=x;KX1g;GRSu4^oiTIYo07wqUNimN}aCtoBNb0x!3CL+gGp7%v{~8 zU2?CUFoyzVg?n-qi=nk9h+v=90GFM|Q!Nfp_7I-G*D(2?EZVSlAE*mpuJ|!~8F`I- z*LLdY%49}zrrTJd>C+~jz_S<%?o%y}@r@oI9FTTgba`3HRvRKtD=y_y8 zKyZRpJch=8Vr7$`4OK17BYUgI!v4`@?Y;^=)=tLU)S4t705@CA1B$_-d8ZDZGNY1bqSicxB1!!C8aQC-cVY}mbuRpi2w*4SGaqk{wy z?IxVSx(OuDE@S=lCZ>O&d*7{>trsSP^tr9uCI`r$3*=AzCQxt)8Y}8$|IB&p39J5u z*n&ry>R6}sdgl8$Hav3}PEOBM=i#hUuuUJDa*Ej>#ay0K%yoAVWT@AK{}#5G z#nxo@r>r2%Bi%i3Yqs-;m9sZ|wYiuUvV6**$wS^8QLNlK@!0BRKkl(#sFxW{Bvq>2 z@}-n-`()s7)*Ds3_3hBep7@{vi#T#1ZDpqGU`ryXZ>sOu(!U)$V$`^?orb#yE}k-T zw*80Mb241k8*h5UZB6?vUa|PwxohXquJmAW+)#-8VBkl^QwO?3K`dP$r46GmeM zav+e`p+0JdEz}6KUTrOVW_FY-Y1NYd5RDyy9=p@q4bx0GkH+J32J33jGVf4fGHiDw zHI^q5+wf4Bcd8n1O-ocC*-Bx(DEp*nP0M~25P}5o#i;f7Oku5M^^rQtNo7ZqT+}i> zZ{ZNwv`a&6m0Gh7PF7rkN~MG?y|>T7L|d45tZK4$*D~2?r#jxLZC9_XLlMS1D|>F) z*gBd0?qsuQ7%yb&KWu(_`hxk((&rEB*KgRcelVnYpA~Ro!!(p-1Zy*JJ=mV}KrQ9; zPB_~JE!^%jyq9^SJzvj}t*fdzt-~u|BhX&d=E0fNGfP>hx*D5z^#0kbWx(p=1GS@* zcgk1VH{Uuv1uyGuOB>oP9%I%)@c90|L!zaf>Jpi}_hC$(h?RQJ=j@0x=bh4Jdu7i% zrwv-#RU^(qx!Fwb!9D)A9*o%4&#`SX+5kE!qvTgm^V@8I0gI(cM(taeqE%mZX3n3t zV*bS0Lq7v?Xz<9OO@3t5PO1%TbEU^W@4dHr((*C$-R1g=UrqRI^ay*O5ySerFi+R| zpvSd7wz^Ji$Si8WR-cI7teDXosdcwyES|q=)!+qv`VL7=Nm(>(g`2f4vO@Rk+h;KR z77xq7NR^Hw8s$1kvNqw^pwUcx5~i)Zi+Ly}-W6r_6=#_DD|+>Yvf55<@JZA{%Y+GI zHUU=9v3%Jin>U@-1YEx3s=+&5EpLS5u&L#*ddou>pfEV{-zCp6*Pi+gdGb^hU4=HpoWbZGBcdrM(Yud4MlR)NhR5BlT^kB=t2<6|tsd@l4Of#dx&m zbi%q+?aZ^1z{C5%L%)x=h&m1)90}nSkp~M|4Rr2wmV<$w>A*nGM|m;uS?vG@dZxlk zfFB3xY&Hu#0ywDl!&)OpK|Pd?gr2EDLJCDl_^fOI3G>8zRvk#FN72#HGZkp4dk|VB zdZq&3vQHAK<@##2+jx>%b_su;v`2MZ8Ee`*zv$(&}MaT zK-!A*W``XX&wGEyp=ag(fJ2`5^5GC#m!lBkc63rh=omELk3n>3fW`B5J`8$R&W}M~ z=U~vYl7vBlcW)8A@0Fj~0~q9)1Psz!K*u4^RKlUdIu42v&Az_poZrVoqdo!!Cz5UO7GZOZ0NY1I zvG>bFbW6*Zc3o->T-c9YIiB8sBB&>LAFH>k5{Xk=)1Wh2eQ@1rO$Fi00O131(kYrz zog{mb)frCp)>9-ru{CMX5ci)^w2X|$3A2Fn-%bMDA#G-Y0FEj06t7{l#@8c|^7;JNnf9Z0VxA$pQhsb#| z4B5M!)@l7Fj~U~#79TR?KvRdcbhEx4OSw-=*5Vmora^VH89%z-0{WfPeFgRId&Ek= zeAZtKqF%3~UNiT&L*SM@1Yvv7o-A(T|KWMbOyu+HIrlIU-SaXbr4{1C+W4k4N zi(|h~KZ|MyT^q_C7`;PPyNx}#idmG!J40>4z6o1<4rR?$zlJVQDfKYBf&Bwe4Ql53 zhYeap;HI)Mm)`HZj8U4+;X^r?tTO7Ay{y1q1FLfYhlZ$EYL1U95ICXW0dia(6A(n5t`8mO+oI0BB@3BKwl7@;pai078?{9+S8pP14NTR> zU}Ing?QBieHwIcf6VDpF4b=#v_K$i{Z-G*tGYqrlIBWOKP(9JYu_r!_TLG?jnBLXq)D{^bxpl%Nk@m;}QPIoJd1zKzU*6+Vb0 zF-?bgr0!%2Ouc>L6j%}P6Gc2zlAXh~`9uf;p5RZW{6uH9`+Zpjpg)WkI%jH?^l&GL zWSr7Qd)@-c*Z`7oN*y6&iHtoJY`z@q zJp_H;Va{O7t2h{UABA?YAu>xjCDUPw5Gu2wGRQ{^I=i0X7&@N~Ut)vQuO4hoSiFgm z%z={y;*D&`LL7IA-B|IG#WH@Dnm+6MZ$F=vHS332lGbCHZAEnFEZ_-nM*C z2L-1Fj|kowd?NT>h&`lrNODN0kO3h}LbitNl+E%d^4Idu@^!_aNQy-%tVAf~m5NG3 zrJ2%F8KHcyEK^o1dzC}V3FVA(L3yV9Ucg+SK!J7zh8B3Ez>Na;LW4t#gt|jN4E;7V zBXoV}HcPyvvgLcrCd*OFIm>;^qk`cDodx3xmMA#B;EaM_7W}^8@`4)+?ku>kP)wnE zg_;&>UZ_{0b%k~o`nk}dLT3tHE_AODE95QwTH)4(dll|icvRuH3%^%*Y2j6c*M|j# z6%FeaHau)%*hgVA!)Apo2wNWZQ`qUSD`7sXWL2yf*Q}MTHLdlnO|31g$=0sczSbqy zP1ZfupRGr%Ppuy7^YGyCn&C~t+lF@v|2jM^JS+TK_!FDaX0{cyHM4cI4YEzKePCN` zTW(ux+hW^pJ77CvJ7c?KyK8$~#8jkskupV+inJ`!smP=v9~Jqm$gCoBi)0o#RMc3s zXwihC6^d3VTC?cuMaLKYr0BAunML;&{k7=HqFF^R7rhx#B%*9Y^@x5E<0AeM@m0i} zh(!_U5vwEiMI4Ga7V)f@RIEU;qQzp0l`2-gSk+>+iZv=Wtk|St|0uSi*uG*Hi(M^t zx7dSXPwmC+N%kuC+V&>)w)U>}KK6n35%%%+H|X_vC!ZFkFonxuvN5^i*FOFl5EXQTXEysPw6UVdS#fm$N*DU^8 z@m9r?i+3*Gqj;a<|0q7K_~POj#n%_#T6}l${lyO#KMpI|1)ZgwRh>1Rb(~$DeVhZG zBb+mw3!ST-JDk5bk2|xR*PM5qs!MPMy9&B&u4q?HR|nVYt`yfu*E_C{T(ewDT`OJd zT$^0mT_;`l-9c{I9qKOXj&>)w%egDNYr5;WlidT{L)>q=KXHHMp6$+X?{WX)KHMa2~lrHy%+US)TdE%qSi(2 zi#iu|IqFu_y(n*Vq3G!7^3heI>qa+^PLA#z-79)v^oZy;qTh<18a+Mw^XPA)zmJ|5 zy(oG`^!Dgu(U+rdN8gVz#@J%)F{NT^#Jm>MCZRnV5?)*J2*Tcw>WNLt`Uii^oRA#>bY5EgxGcwq9(z*lw|dV~591ihU<` zTI^S`^JACBX2foc-4*+D?6KIhv6o|S#@>y668k*P7#9*38W$ELfHuXr9nEp<_a~gkA~#6GkRXN_Zz>dcqe8X$eac z)+KC9*qd-L;b_9?gewU*6CNk{5>1IAiIzlbVnm`dF*^S-U#we^RZAAGSu<#1iW23t zU<#MuR7%Mfu<i{6qg)!tSVWQ_U7TZ`}BaZEz~Enx_5YKgH+(onlm7 z+DFShrzM>IP>>FqPGd$b4Lo~utT~ZAon^2t$DldSaO$DWRHpus-|qf;iU@A+q0``D`F6Kgn({bi`ozG{jD{{ zm0(s#1x%FEml-)v1pw~CwJeR;VvQRhEejHMM1nQ zdGO$OCX95=?<{`y&CD6!I+T8Ww>5Iqd%fGsAGps-i$3~h)&hrO>kgK9*vzr>rnrZ{ zEFP264~gF_oSycrJ$={@-CY)2{f-MVN4nMMQ!sG%fmZmQRvIf9nx%!TRB&3VcI;NK zVXrmkT`U`N-P!b~rv@4Qm)@fyDN4@$fYfrkM1fN72J7q3a zWO2V_e!p_1Yoxhs%Il??Hkq@klj}8TNp{(DVdx_VG>VM3u!mcLC3ZA+4G9M#QX|8l zM3PfkxOmR5n={`Uoax%ejN;-B)n?UpXcfxUjdN=Q+3Bk<*$1bNt=qUx+LF$$_E_XV z%h$ShmsNB#GCFX=yj6B7`r%I6ACGoY>JRPO@>M&Qv&EMn#uuL~*l^ILEM7SG(Dq%E zuxPZEg^1~GYJ5}2p;apRiYB@qw3eGGiP}Rv`mPoOd2}m9|Ih54G!OX zaOBW$yEc#Ry2}0NhIqJjwdI=0p|yI0px6#5Zg=kb{EhqFO5c9_8#q{J=ZcSJe-99- zdR1&9E6?n4vI3LMIO^ds+YF279lS@?UMv*#5$nr<%a^5&BW5pKnKA!T=B~GfZE-6D zySzHKDRd*}uUxt0`(18q{SKCtq?E3;UhVbc6&E{!)<0`j`t|8KzO|!T>oo@_xYbgU zl2R6+``)nCt@?{55F$8Oaf0|$RHbGSRDhWN&kO_O1Nu;lHlKxbQx6PnFE1Ir{`hs;Y) zUo>~a_60)+_Zu(*D^IG&wtLmeZJSb7v}%>oyHlrCy?476u5p zF_yLc?f8<-n_QhXo*eX>1IGW14_ODdTET3wX>B1GYOX?)7&ZYGdB6O}6tPF@pmDt% zqep)H*)VqsRBhi_wQ@>^<7U=&ChT^zt?E|MVw)mcXFr0Xbox-)I;015R-Qw-*RsjU zP3|j`mdOgqL@WwcQk;=fWdc@ShX|z($=hX^<2Ae^ce@M{u}l* zx*1GcG%qPD>9c1qT4_I0cQaI+gu0#U^`1RAeH1IWh(P&r+whP@Kj^X0~ z%sq?8m#_QzqMa3sKcgk#tR?n~la;+AJ%#dSn?3_-yUMZ#H>Bek194!D4HM{A&h$5+P5@u~NoEZKd^&6Slck6#_lMqPWt3MrGFY>yT@84$bFlsste zvSmx>Y}>wc)PMm4N8&){oOG~&Sqdv-No=OD0q@zZ?AzeDUxAbf@zk;K3#gRQ)!dhj(!0&Fyg;l+p zU{q`PQv5}nhj{MHoTD4vjrUv{dew3B#Nu6B-PR#hu8RFqdW}zZSks5I{kHu-_G$Yq z4v6b0PBUNJz4NroTVe<7gX*L6xj~28W3jEDcF(4d%sWq?-ZKhCmVH9+94+1c(9)Ha zB{F7*#T1+x2#p{NjIG-ymT0vDTZGgi0NdhbES$?&e(#Lm9w+PRQfyx7B~_A?DNf6W zW1LEZR!(TXX=0a#joo*m#qC?qEL70rshNkz+E$HHyIjq9u^ssC?uD+79UoRI9$ zjETn~vT)tF#)===GrZkax3a=X){d64GAW~Evfew0L^`#Y275>BCz$%uDI;FIGIqXJ zuRow|clVy&O&8U2G-xrRD^}*t?SqL#oNBuH_T~+T4`cvW=9=;N>(8rt%CP&5Ln_>@ zoyy2bvQn=0z$TsD7qtpdTgK^oimha=!L2*Gvnq(`8Eath^4Be?$#dP_Xy{JYn#Kwz zu+l&w=wyhpd$zZctx1=R9TVK_o2_E`_uI9v>9AyN*>LpW>YmkHScgnvx6Euf;CNzF zP;PA)AhxWQ0y|mw$H@n&;AwEKa%G(Cnd;VDrY9F0#m;eiUy&ZBT|D^I;caV*ta9+d zC^xjU<3?3(6y<=K5(sL#g59bE1NbnqqPd_PGZ{v)T-bi_P+fy9>DD{jmoC}-vmL9f z(kbv8)im)Htzfgoowg5jSsym&->Xe6I}G*^X=) z&^EctfVy?NEz8`oaoMkK7*!r`s?=`PzJ1$QUb?ii_iL}UNvY(^LY7x8RB1 zFRS(bcPw}++IQXw(9SHaek$L(2EZGc9gpnq4n*)rubYH$o8EpYx!3p%L0mULZK#>?JA z%9Po%68G*u%GP$gGiBPeDefsy*1UWK`+mBP|{FmeL$Ok^n2b+BHylwgeyp&0hyi8mAdKz} zprjq7bwmZRzy06EM=e`K?SxfcL-E^K8TI zZtUzIXCt0}ZrXcOX1j1G=xlN1!Z%m0MYm}+Z6im`_-riJ2-$3L&XAdXy4y=MsE5-j zp%dMfff}h+wU_wVdr6B>3z)s(-d?(bqrxiPIC2jf^V;d8>vrV~otC9ecPj5-tV(2i zJ{)s}#f9wz-qnMpu+2L?FbHG-OTpqq7^Z{0={Ww5a{xqQuD^PoL3Xtax5)_6UUc?h zbEz&ps zfhJI(E^?jO6tE$dCt8vMGd9`BPmUYS%AX3G^B8t4gRGlbCu|xZE)3KvhY@rA6GjZ@ zQ0Tmv%X;p`+*r=E5ZuvFa7Q+6JhatYdzqHwdr#g9CJS%E;Z}XvmWMls+6rJ zIaxs`&Qml1*WK5ug0;1mud2Dh|6bI3R=ufx6kC<;Rl3#rSy<9C1}pD!sAY<-1_1u3y0X*?O%C3|A#rEZqraPVqTHt6=_l_o}S> zb{unEjk%!?Gzfa*Zmo0ts;c{1xd6?U{W$t4|CBEObWhPrSC#v;k@q?+r;2bXo=`_tI`$jc^L2Zpt=+N#PmRIcLe9Kchhjk!Q(mr&kSI9Ud?yONRp0$W_f;wvYa@#t+< z6z2-CTM8>AOBkQ3WnW~q-D)Q+z{Sh2^iOHhvB&(ay#56W*=KW1sVb^YE z87Flbv0$ScF%OSk)b(rEk6))P!WLcsnXlV%=If>0GhfNx_G{*iDXr($b!erbX(_;P zc1;j|ftCJcXWIHzZfyp`{?2orRI|3uTbXl?*mrqRKJ`|x(&U2~S0F)3@08D$4i!>}5qbpRV4RO%^9d|HYHDQpV+ zT-54F+MC)`5&QkhdvPEP%sn4CNCW?VaJ7?IMT|#Qji=7Al%&lEEUEcrV+#9Ziftin z7E^3#PPPEp8Nr&{mN=DI`BE#Ct{vixaH?G~oq_m(nH4(2wfZDmEYgmx+^v>XARa5Ro5NqM`c{2AE54#QSI3{ju4Y1S|vJz$?_Q- zZE0dfo)q1*&aTpAW+Raa4GVI9J;uS=z!V&QY`FVJUIP z=ASS}xOd{UQgi8a=Rzz)N*MiW<5)-C77KTDa>teutN-!<$J02VHeCjzPG8nn!@t%C zbmCPYjUp>k9!I064c8unFZ@DQvTwn3k%3GX!6=FH&NrB?g5NsJDxyV_SR?QUZvyML znz2)|iWqs^e0|k`n0l&Z%~?ATYd-Yc|Su;i;!wxr}hkcp}J}p z&869`cEn}!l0cXKNP8oE*f?8^{r{x&MJfZ~b!_r7ScEX!|MvVI8^RX`Lq{&Qm zezirkq^RR$wh;PYih5t|CtIgYa9WFV;g+>D#9P+lx`4~tOxN9ERh_Vrg43bX0gB40 zNvxAo=`>>Dj~}?>BxTL8^yZ%`P*j1vzOQ$SRi$B3WFI`0?2Ko;IX8Vuy2J8;_|pf= zMkU*m2c*)e5T1qXd$3+w*c0$lrDj`n^}>Nz@X>8ww_{}Lz{nkG){_s+mnd-dI& znbDOdDI^SSsC}b0)Rj|9tK}r+>G>tc_qgM3h+R^;jB4jlZeI`&?EHG!YP$l#F{ZIt zA_m#;312}O+T$%Ul|BfrN3yYGbV(bFGbYulbWoJK5(5Q4YYj&##rw}%gNOkT(*2yIybbj~;=xaW2iN5s zg8@87HRe}D!`_$SD1{Q1fzyf=fH68jVJ)1Ja<~DD4O7NoT4gu|jGPMA-~uTh5d#aE z7(~MJwOE~h<*(W{McYwhv|)hS-#7q@_il-0J*y*XZpmV^-m2}i9*6GLP34w183Mm~ zW^D4ah@}sj&#xGf(xcmm+Kn2_TH49oL6gKjyKjuS;$W|xzj9B}TsCX^PN&=2HDk%r zODkQ9Is^MAmw{EGRe&IA=i+hwdUYLHw{hdI7qoFJj}Nwrif+^@+O4cy^~KD2V10`H z%pw%e%~PPI`Q+}*1^GKvc5pxp`-;wLPEwAlE1hq9<{Q;swAZqtq|wTPXTIchsq1a5 zuJNK%9WV_?OyptfAyf;PiOxGY?|C9UKNSeL3{*J||D zN>NWr|XGIM+Q;@ESQdoI?&u3r0#ZNTNhZ>PONe#C=)2^F(+-!9f|2>duCHN zJC!MHp;Lj?VJI6_Rlvo(4*twG)~Wm^ok8z+C9}{hQ}z@zL22#i^S%epTJ z=7ZL|{#7CCQ=0VNRo?*vQw6f#Fk1eC1&J_h9RgTr1>su-u2rkzR$w6;>|>%fRV%@! zije0+`{I~$3A)KGuT{WyW|M#b($^KDLVNv2RMiS(c}t>kSOg9q598{+3Mdkp%2sf4 zBkMgz3CMxmN+}#4rEqa(UreR2D^N)z2?BP7(uluB->v1K0*q$3MdskUwHU@H z#3-JIQ5;8fl%Y}ljQQ4jjN%;z;4AhpY5Vj&X4r8?d(1`>I}%Egbcgg%dsWmngVEiB zJ!`e8O&|gogC$76=%4203ak#JFtb@ZomO@StyEu0uxWlu$+CX0BU*H6B4mkSEW)XH zUd5iLXjyq9`Gu>LbYPo;^AJ*TgitDEp5Ud%;+&wdsuQPdKe&%g<{%u4(4w#WRI!5i z$s6NmjCC*{u6IJ$p%+=)9}VgwpDDXuBt2D|;f&!cuIF`s)WQ%vRD^HK)?M zZR>%rH+Ea-R8-Kq&D9g;#X3ONmdn(FNURb{Vpqq*-aT^YDGnB_|E8B`0DXam}Z}dBD+R!qUtVRdv)IButa-0XIe5e)z*c76$vUGmslbs>&)_rROb`Bil0%DcC)`nH;Du7J(94B{U=p zI&=8;?HY%%3=~wOL8($_8n7U@qMBsuNN68hyi;DZoUM$+ngt{=tbl9@qhe|U$};QN z(dz5Wa+o0LV^+aBRyihH2dm#Yy+zD_UWmY;2PNm}+A}UytpsiAD%u203j>CXyQ}3C zDW&gN5)F{XvjPfV3A;fPLb&*>rcs?veg(?nAGD5)k*Hp$F zzcTD9WD1H_>O&wFj(!Jwf)$! z)|m|(v`Ma0XJ@;^7#Vl2hV{8#E8Dc`1?zLGd+u~w_NQfRKWVodp1o?v8M_6Y_gG<4 zI%!SfC|R$dWPr8$!EN0-@`(8M8zcWQ+R=BEqIDM!l4%pJra6JsG|><^b!GLA(FfHK zS(z<|LBOJD5pSWs!E{EDqIPiJVy>I83!{9`U`I4WQlK+vP(XY?&@P#kAzGZs!r|FW z!r`vVK%KZT1q`*YEveXAw0Lu96L48cRzX>?V8-VQ6l}C97pAD~F;(gB+^39uXCzb% ztiK7sL+=4CRXqSDjRV>+^#HghK*nSYt=Mo6xG)f0VCFFhn>xlAveBQ*SQQ19cpcs` zHbt%XhEth1VcPUJaMrq2{Kw)&?=Nt$Y6=P!adk8-T43uOKN?BtCu5TM{1xW3WtwlU zU3b-W0rrC|2R8O;`wiC6I*8Y%Z{K#>VX&Prt>+-jQFhN+n0e5yGzGb7iy3p~Wi3-u7A^Q}=67y| z_7|Y1TJKVxN!V0Vs#@Pho!!5r)X69b4rU^|%&i&4VZAPn^#erzj!BgAG$8$Z3??)a zEWW~^FM3~LW!ea4kc_EEAa($Eo3F2Y>6#1AYw8z(LA;=4W5{}m;J}*#T3uM!#NvR1xz4ggG$4l9@>)l&BNm*>v(Aus zK}xNHHs)7=vA_U|ph(t@C^*bmjfax(hbp8g>_?dPAeKfyu^4AtDc%Q9u@#k#64SI% zk|iu1b}d1u*=q{#)iVTZw!q9+F{r5k6&QE;TCC4TnHAE>fgp}Bay;PkK^lfXpxO7t zlBDB|dNA#k*#VGA*3!wkDmeB;5R|=gZ7@geQ8_YGP@YKmrYuaGFl|$Se0&>K!J1!px7+PiAcJJFg`|&b?>=N4jpf#7e+7%?$zudAO(y-2c5 zgswH#DpAH_k^<@ZQN{g`4S?~WhZ@{-imp+F6I8iQ(K!`>Nc9-O3Y>cw%Q}TA-Zkum znKgQt4I&h;VDD#Dtl_wDSHXrmHq;=Y+ z!8nMi;Q0rvp~8*!Y9?;NS6QPrv7MLZz?uXm@m&UwOc^`slds0OEUnib8GH$YRT7Ti zQNCs9<}YY2jnjy*yI2{A*%f9qy;*O-K0E7F9#O4iYZ{* z`P@J~;JkuxM|K;uf=7&6tb*;FQ^;=D6i{B+k1aXTNuZl_khy-PX^N)21+sdVg_OR9 zHIzLV{UGvD)B#RI7P09?)c$0|MN7bRJqsOIo;l4Yj$;&@?Nq|N6EKjIT%{yi3^G>U zGai#>MO-eWe?4iuf)nxDf##I8v2X=K?r<#5JVrZz3sv5E*A12g*}{--D)(e zduXkqjx=Bv9*WaU6jeb`u&-B{Ya{TC&5~J%F-q^1`*64ujv1P*bjBK)uGFK%5Xlvu zK4OYO>=Y(Ud%%Wf%14V3?wFl#K2p4%y=X+UynBp-Z4HuvZ*#7ZV^twJtLfhn%M7IigQ1L}3fyXj)^OVzlHqnR zEQGt*kO6m<;V|4I2Bcs(6C?|UpaMa!!mSJsnHHOt!d-4c`#`^ZJKS9+l)<#ebP(=g6I#i1$#e0W@2-=EycEQ+l!syb`@WT+e1u&+ehpJx1ZP#?f`K(+>zoWxbKMX!u>$}0PaWP zM{qwDKZE;)_$}NtaW32+#5Hi&i|gTT68FG8ApRm4q~+3b!C*F;dk9AJMDwR`zc7CZ zcnA_g;A;_r%!SNRaAVBz2$yIs0k^EV5qz4NUxVAi{5sr;<~QL^L44W`APBM{-grhZ z)@#tLtq|U8-0(p{?4TYahX?}%6G5uaCm8Wp5W5D72*x@MTSp4fuQja~DU@x~x=y4} z-5$GL2EB}ClrPTz94r(S z;{DGdLIid@=wW1`n2_jyRs_3H!v9ZpF@S>LMi{VMQ{qGg)#$s4gqvXJ|MkBSIT|@!{?B?61xYZYJ&eNtl&4_e9bso3p^4C1=p^(+ z%LSw5ItU+#L4|klH`x`N_-^9;x*J-k?bal>?j1j@=g4T@x`vTg^#3sj_5W$-1PL8( zICeyk(CLQbcK!cUq+mE>=V1sh?Z`787-Nv;5`;*fqFw&z%0kfTrxYW5R`z3zhUI{3 zUSEdqkx%s!F>k5tGb zaHK$2C^;w%T}k-qSA_qczRO5~-u1E~-<)ssK+rFswX`pt_RT!9q) zx#{1-5ypsbJS1-;)X*Qo=ug#-vgS!2&~nXp2cdB57kW@{AL`2mxcy)7^egoQ{%>&i zDgTnM29y?lw{z0Uq9+Q^uSjw!1l%crzMu6r=W%XO%|H)jpN2rPzh%Pl6pk9vg*Nk- zCDGsB+&kd-j`1fN!EoiK?EjvxoPIz4=exqo6euIb&4IK$;VgNc^FGSFCn)v2Fi!6} zOymu#KkI#u5!8R>=?#BP`3D`J_+ufo)mc30A@%q&g++f*+vq+#sNYEfTvIQG^R|5o zoV*iAn_33Gr+8b2qLhF~_{n}OyAKNS)OU^2;r;Xo-&_QN{Ozd_bbK!L&BaES(lN$^ za}g}Q^%(0*36+2!GB^Vn<+P&>CD3shDHTF)ltxwL(8;%pm)Q(hB6zxk_iW#N)bAju zh8b~Vc`6oR8ZRFeCz<7dV=n%bzA{!08_MC%=4ofeHsMe;N6AJsrx;pC^BE@iOqoTqhToa{cf` zsnMOU=h3o(T=c+!uO`%}lJ3Rh1pLDTn4a@3@bE_(ME-$Td7pCg3zR6}V-f-wLoJdU zH$W=`Ir;x}==+1G{u+oIz^6bC)B^fXr+0ejyjYl%+>2q!w-532^%sv2$R|K;c+GNp zGEmQ)wDG`k*&iYhTmFkY`B;`Wa?W$0p86<|+s7}iCygThkukRpe>=}V(z@KX%_-I& zAN)N<6prVg2mbQ}#R!`JqVPP9?w!+~s2x%a&HF81L@}q9I;EvN|Du%slF?Uc%RqbP zOV0lyfoIXb2Vf{K#Pcuy)OZAX{)@KV_JZV5PokpuQpk7Pw~RvgvcQ?0;#^#Wf0f8X!);JeOU zo%8X3(f>dN^W_OT8JY`c{xEm^oF2XYv)0yw>uxOn(`g^oUcX*UZ>t7AwBErUK~yWx#Zv@#>0dDFnL-QzW0#+HwaGk$X^#3BWa$VM>vAC zaKE3#d4H@>QdS5Feup3}&xlDM=*p8Hy>bYmTo>~(Q>RWjVW>udONR!G=6}K!$^~t- zlwb(u*dB<1mNOL&QnS9?MI5h zEVNfBQo4`%48r;^*-wY0yyeXKrq5V_AxL`{mwPPc&)L3vNbjESVh-o3^9lm;pv%ES zUDiv+eeyVC_sRBM<-CWE6~vp!C{2v-SNszP zY(^-$D0Vge1PAi~!USFx{6_@*c_<1QxB}1q@tD&w^xt35vs@19kMRTV{{I)%6RGau ze7K%xX@9x@s-6UE5$MTZ!7G6C<8`IfDR$`qwejOe0OI~$J;5dZMLhxkf4Bne^apQX zTn&^(;(bBf0>&y1aez)<(!waK-airGC>%l@`jgXDo=_RM)bfc!Bw)+}J~$dPg>sy} zQjSefYaPN>E(wD4jbA9a|DsTN%NBUf+n-d=tAPmk&x!ql+6Ut22~LlIPbyt0(2LT* zqivj$W&1KARXBxrorf3DOQ5DiCE>Rg*p&$SRt~*b198pB4fFx?0h&>ihI`HTA(g=Q zBQi+jDSDCGHJ;x&?!F1gk3!qhMe|n~x!>Ub;C?jkyq~ z?{|P{K}d&ac@V-;y8mAiRp@ z!6;@v6b=$Z;$-;`Aqx4f1LB?vM!>8tmHoRlD250nP=?FCeW1Qx-!?wu{u$DHlu0NK znnZY*Macr9Q7-sH8bIT^P}bkhg6|5-K%+Xav`_<;Y5+K%(jeU`*&Esp~#LsGz}ytKT1{`7NZ7Tkwu8|6b|BF8Pbdb#!a0e$523;y7DsI>paMdJn0 zBeW;VrO%_u2Qo|@mic#mq%(m6VN9XCQ0}L`=Xhd#e52m@yH|jk{JnS-3+oZQt*FfU z_(rfoU;aW4lwU1fn9lWr9^0Dg!ij<0<7jCRJD?f)M5 z=RJUMga`hM_fFvDpZ&=n1qa z?+-70z^CQSgx3*NEZ^l1;V&i1j(B-mGGEyLo|i!D{t;^aX>K}Q`=>$je&kS<*Mle< zTJ|WY@_FA$-z9LuMAwd?eQEXSF`un?@y1~SUx<$L7quEu4{E`HAO3Sz z6p;pf!#ahYCZ3-MLZbijz@9&L-o7(zzR3GBSy(4r6mA)U4V4WkhEENdunbu|s7cW0 zL0QH`<8b3STJylx{i&&6?6;vN%~>BJL8iL{$otN=pr-?$UT^n)Ic#NID~3 zfu%>2Im{dj?UbtKKIXB(WrJ%4w+?;Qw_YRO*4dzaU8) zuokKy#Ym)B7AZDBibauPtl^drgjC~^stc*cBGpnzHS~W&zo1RR3>SSGTCqG@u?$+V zHd@h*RxD$<;k#wH>0@Y38(Oot;Ws?r#kYI-zc0iXFe0I46VbA^pqG8Og#S(H|8+ab z=)0%ryE5pz66m*h^i@3i=_&dt9{uzb{S=QriUsEVZ^-{Ytt6p;?C75;^iL@IB@}%U zjy`cgYv(fh<%*DqFH!gsg)fPOQU9aAn1J`;hKINx@p^=V)?O4Q!gq{7-(2|S!Z#PM zV*$fiJY5!AqMnsNT?V4AH9%cz08(p#s+2;#E1}*s5V|ZVNfJ?h-#w`Vf67Fo=de7QXFFWdGN4@NZ8@O-c zzJ>cX?mM`D!+jU`J>2(k|Dgp9s$dTa!fnKD!Y$&4bTY_{I~aEeZW%Z9B7+Lx4#jQ3 z4SkHDO1LZIu7bNN?rONJ<9-=;4UD0OXnyy{9Jx;=)T|O}RtYt$B>erJGGSz{fsr{0 zBXbRm#x;=Y74-B~+>ivJrqnC{+Q(oT1MbW31`UTCH^{KkcML5Zil@qgD`+@o47q*? z33+g?i(x2l3V(VwqMuwSRVVa`OUVD0H|D?3o&0m0elfP^D}Qc%^OW}AX{-FD|L^2} z46Ai1UJ&H>5kinyTSyY80t0Y%vhRY_821p|Lvg3#9*KK2?r}nhG#(2JZ{U9d{@;P$ zySRVEy%G0j+`Dn_!F|wo!Q4v-5rS47AYS&T9S2CCXE?asqL7g;$DFF54`Uhl@l)WV z&tS%L98#1t==R)%oN*s!vuT(C!Q4BZ9zb@ZK@wv|n46G_xP-DK1%cl)_+0m8V4Y+m z=4Ui-IsxD7m`UwJDjFmLB)buPYj8tWFI0xlBZRtwIlu#Oj@dO7ouz&s<6 zKL6@Lz4OdX^M3okedf|vYF%0vdFq#C@R_Gx)4xvtPxCs=w2=zUW$FJ9vsd)EzXrKA z%zdI5|LF^oEe+B@^cQ4x54hY7b2s=>FF-QS`*k}YNJbw&rXI&P>T55R6wrxYLQJ#? z`u!o7l$dBA3gY`nf&iGH5RA%==Le9%kpvCeusk%aWj(}v2`gFf`3+$U_`^~uNG_+# z7%6=~6_;j`rsse83djPGwja*)q>v9%MIO3~IRf5D`l|O4;nwdod*=Rt1GERpSNR2B zl7mvK0AsmJ@=Nm5fYG$ZM9=gi=*fwPFg!O(gn#8<{2~9VwUp70)WSM^QJx%Ycn@>k z0F*$-rW?Gs0fDsA0tkn8B7H+ysV0Fsa{UgxbL~gKD`*vJL7E!`GrZ=I^8)_^slu1! z#Ci%;vwYGQz4m$!atXtAo)d4!f8}5;#{&pFj}l}f9T8NL(nl{LJxGI5Z;7v>x(K?U zr|=ZCayOL(s0YKOdAsGIo=Uoshog_CmVr`zr2&}}SPBLU*YwW`=~N(pZ|HII(}zFD{DaS5 z^jiLu{}AUt^7^l#`LDA1du7Y**S{Cr;H?JRRi9G{W7$_`i{OO;Fz`eEkjd?eG&>c8T zbP+LVZSuNM3!L#i$gS_-|0-nFH{nMb0kq=y095uS=;s}{B#kDC_7%z*aY0@E?L*o} z`~n@Oczo0j_~rcjDHGmZNOc>2%y$UsZ9the@?AU>A{=@Gd{l-@V*x#Lxiu&*cAOwQ z(Q_{-<7sgCE@=Oee%@g{7mNW1gu*BpYR+lxdWe@ZQn6BO31s;vS(L@I;qC$NT8vKa48= ze7P^BpqFSBttnw0| z{d5TC8vDG>@J<(MMVdl^i%0}IT(ozI=&;^yw7RcS1W@irs3ZC{(1Q4)|8lvo zTRE|s`p(i0?@qn3V*l4R2e0J`QvuZ8+%;!7eZ_fzOi-tjH-r6ZIF zCB6q}y9)@WvE(uIv@U?g7Db#3sO150AIkR*v_ms6HamV_D+6(GzkggP5hZkiQ5@SR6W0r^2TW&vl>+7FQ)#woN4 zpKnu3>1Fku%dI2)sE_hoNb!jNN?1r2+9(t5bzWYYOK^WaqVeyPxBr3D!@x7jtkYHQ zq2nrAKd;WO{v}(7aFo+u2c)RyLH(Btt2qfHoWE>&^QJQ91j+LdC>`2~Xk5MvezcQ> z<}@^00R+&MzfE+Ghx>D^45Y_{(h4`HclsL-#i1hbu7B0za4g4H{qpGU5f8c(l7I;Cns+gdX8YFoW+Bc+K1aR= zj_m^ATm|2|&v%kb5eoA(H-VBk5N;=M3>r!Z^9=G++F$Vi^owXYNlL&|ASJ5*b);|| zDU{^?B%|8r+W~yM0seSDV%`R{9oI1osbNM8diE69&&OcIr#U{aBSA-=o};vhYHa5; zj(Bp?vLO8#!bn}Zas{QDgF4(n8E$gwx0mDWS>6Y?!INUe1+}NR7f>6N8mVR@7RO(n z_fyinN2=$1d*~~*1gP{4=$coR41H1@$x&vP-HE|%P{b>S5 z{k6#DwsYtO4}A+Eav&Qycu+c$ArJ>fFi9g@HqDJewOpXU;l6q3nQ-*qP4vnsNYB4R z3THXQUO)>S2mQMXo@5v1FMvvL-vk>g!D~g}|3~y=IIjg!n`_{BvO!nR<43cKXep1~A8a0<(i3Av=PM9er?{&yO}@Hbkj_Mq$1~a-*o6u_G2G3cxBxHsqXx z_tdO`i~I7v=eg)wg8E0a7fM5tGRW092gXxC`*=xXnNq}0Lv4r-PP7MpapdqC-%Sd@s7)PDLlW7fJQ%8gfWxT7ror@c_i?hD{fXZFqrHXPa;+TY)aamWx#w zY0)2f!{mL>>(BEc9qoglbR;3C8d4ekyeVo+)SqKXZmxOYpVLBrIfxSaFQlRG`SHtz zUL*xVogA14L%*Hp`wXMNK^{E>Jyi(M>Ot!k1-DK6QAj=xeS6$AM<|N)M8pDqz)$Zd zE@wiy$)?O@jQR9V)H~2>{*vi`dOPRydcjLBr%NCI*lsU~@Grgioc~{j`p*Z*o9}<3 z9{)}W(Qk!7HTVci;fcSXzQP=c-oQtpf9VIy4+L}Yqcsnjhtv3b7?hXx+EMQ&fwDmU zNg=@fN}L0@Ly(DgeH0~5F6ROrT~~|L;D5M(xfU*Z=%~i2D-ws;X=KeTIE*5;9L@CP4@R0%1r($Z#`2A|OOW zL_|PTj204hsz{(gxFCg6^mIqcGWu}yZv49Ur&-r7?&l&{r zH2m7l__NgN07j(!Wy%nl&k=bSZF!`Y5sd8KMaM(xg5RuRz%)y)M=%}ucWRfQf7;vI zUM*h&k#~TTD09%Of{B(JsTZ+~I}wupY+ogUIpQ@0b(H4`NnF~MnF{$R_x;F|b-E)> zhqc`sEzLpPe-rM?mN-T~{1QJ=Y=s=q!;?Z?BC#NeYbDT|;9ZQo^G^78urSezS0i+f^JgqBIYw21o0udp+H3{aKEF$z3$fd2M*$ukj}KpALN@STbG|NiSRd4;|zML$WT zOZw2oNXk9b@}!8rqZM)Dw?qHtKwjgy8W`U!Na`#+xhffRPW(d$y~4XL+3WQ8IVU|> zmx$owE@XM;f%G|Ig=nqJ1nEoJ^VtSm@WLE*P-^=Vxu6&1*?Mwaw7%rrgWCNI80dfM zWbV(f{*WJ>XL}e+*a|*!5(cq5NO`ebz=f>?i0>gC+WP^b0uqDzE3TxVy*P7$-pGMJ zDR+-cG*W!iNZGGAqw2Z%U+Ty_R*8cPoAT?VZO z6B!$f%a`~q{=*KAYaB*jVj4U_)CI@?Ewns;D_8boq;34P%ZLB1B0J$Lw&efM7e^XB zeq@xj1l0)E%l~GD5WNvCRf0J#RyALU%VCb;l@2_f`hgiDAFhi`?uOi<7x>Z1Y8UeACNQ_6=7^OV^dJtHRSJPeh&WfnNIuSED?mMJ&EJM1y4g zO7zji+=>B&6Jwy;hxwNXEe&4^t93kNtDL|)fEvm(V6ZC&Ov#}qV38MqPCha_p#ecL zg|BL|MKjfkh{)PI_Rb8qHn^ z%H+6w(~6@da+I=;?UD!SATR&y)c<0CbMIsq+RkS!^W%7h zAnWiFdzq>1*Se68^1|t4q=aQn9Npgp<+svHDAVtGu`U7+0%aegje#7;{6cgHJCM); z*i}H=KZfTdJCmGWxB{&sJ{NlCuYB(Ug@3=mK49hUnf*Kw1Iddb#p?IR5ce`1OBLW% z{u#TwF60)Z3}Q{M8`9=j7<5TOTWnJ z%x~{C`rBjm&72q|`bM%t+rN?I_y`JBB}RQW=Gq6CMKboX2aOpBiC2bSUvZXg=X}}; zpZ+OIMt_dM;)oO`mMqu0td`(@kt0SkLfrn1dG;aVk(k%=;@rk*d+}EB%g2g5z!Tw6 zQmJ6Od{NE@tA%R@97J=91$!K?h(%5b!>6($vqVb%jTd7RUCX~5u&hN)<9Bif1JB1x zIP@!6P;2nq&=$y?T0{}vgzotRbWcL`d708eGnVRC3q2iZL5`f^S3pY0zWTAf3W6v6 z4?!7UL*n3t(hY9M#wMVOYCb>uVq}JlJ0KAr*u)Y!71@fDVZQ7aGSs*?z6xpg%N+A? zMvgCzi@zI%KiI_^@iMspX&`$FKFyba{L+0p$wwbGMd`kr7b=&vV$|-anYy@$+DF@d z1P$8$FV5{O*mv^uPQ?8VYrEj(E*c9d8 z)u+sbJIUm`>(^mz??=i^#02BJ&ePQusY_SaP@}hlYYF}u4}KlRZ;6ci5j^vKjI{QD z_-dD7|3g0CkUfb1%2W7dR`PS`S!VL!HEqEz6Lvtb;=jbN4lDN1^M|tr1>`OIb2mTNJGSBfJ?`$!>S499$G{>DXZD+(*kAxV4ld~CpWII#(x)003Dt%1}%O7Cy)LC z3H1(UXfn=`iRUQKKND{|)wgI+SL_9%RTA;{&^NoVLn3G1q>nP_aUS5Di$T;jazEOB zK(haLM9n+4%XWiiD{>i zk?Z(EuN;BvNO81ZuAp+RWz$nL`y@Q`1x`&qDu z8;=@d1py1|TC^4@{MZ%lcLYZE{iObpr+DJ5HW1ypqb~o*BfA;VS(%6yF$Z&D6krA5 z9E;l7xN2GVc@ULz~HPH($9G(0PjzO9D-~*e6~Oe{9Cbb?3Hf=|K~7X zTWBZlZI_RKV;wM}SXYr5eVBZNERV{^PkkMNSs>5e6#0lV?QD_gtKDeHF4X+*Xv<+I z<$M{6azuXaf)D$9xrgW|FWLWz#I6JqJsf?BH1XpGT-PFl(1)_SATR%nfV4@@oyy%r zw6=In5>i1A9ahKo>zxAN0e+}Ic1qF4_c0c@lLV09Au+)91nl8%MLcoWq3vj?j4IA< zK~{N4Wi%5o4!!UezYF`Ra^4a&{>~;&FQQmEfA&7~EYHj0H+Cc`d-$JF=sDae9h_!) z3lX1S#Qd6dT4^BVsjc!7nT>Rxq~;4HibpS{;}!K;q?G{<_gP^^iY|=I5ubLKfBk=! zqW10cF(@y1I!I7slnENqy8b<3c$$D;U)CEobFkh%!&n4T8yx9-;2K*EzT&^Mx6&`? zxY8!s4-X`jZPO7h(v7v<$z-TujGD%c(BV$(_PUwz=P6%&e88M(y*Z*-M2^`gDkQ>L_2&As@G7KoDjAyth}%V8Y&)7*tcn?2-74!Dl?mm9oF>Pidz-9eYwx?$qEq{_PcY zJ6d~=^_pv+1Kwfq!qXV>OhIj5fX^I!=HYY2F_dxiKG157dQ`2m;^eJ1;PXNNzXEu( z+N9pa_jY{ts@+IGR{L??RR>9L9o&rBV;#gyMY50Eewwq)pCbq+&ZEweU~nR)t{j8<-15UT{uy#wYAl_Hlf4 z0-kn!9P~${)!?HNAfb$pm9VY-x0{G(NhTKJQ;ZL0Cd-!czs=8{PWicsLxOUvg6lh# z)a_{PIo4}BF$~^VJqb7~lK?L#5&vbK7=uqDK6v)zH}>yQ+i$7(Iq~!2uSgpx@Azx* zS?I(3eS7@k$glY2J{-RyepUP$A4~XA16~)Q2A>z=H^{H}SMb?n;NOkk9QhUhZv6Ik z_~S0{d*gSv)9jDJ;CfK-2`)a#32}ro0hc7?CG^Diz=Z0A27H$%wD|cG#*$_NaFYYf zbii{HW+u!EeqZW;lg@xaH9vAC;f90-5g7O-ox`}Y6rVd1?nzkf!#-X7!GwqK`*D2M z`526<_SIu!W@#O!A!Dp=jKV!hp8}Q4~xf&m= zWto$S8&MYKr@RxDLH}kH=Cv)6-~L*YUlBg$x=xq?ev^G#6HeTgxHB={$0zPe+>`i) z0e>BZlWZSOib+aOj895T8<>=HG&rfyrwMWu%Xd;KKH;PxNmckBiO-nessWR3ypJb5 zDGCcD>&WEeUri$a4sAiZlBNb%&q1CGeAsNGKgWE$z)5ogdbBZVUbKx#Qv+D)8OUMQ z|C)ea@C$ud(xk;vn7?laZh6v*q*XpXX$^h{GMU#mB(00&NP5AClU_;Ml(adZ7x-NR z-X5U_pWR6x%de!p`0S73lieiBUcq#L;|zSV0p}&72mE((&nS%CCFCJ|s*}qJHvpcH z+>$&N-;Vgok~$}n6MX0SaOxGQ*Q72KICU}8+kO72 z%TrgRt}^H&?Ol`lXzIEkufQ7&_=Ny|C3RDKpBxTv4*E*)LI0#eUM9OiUZWpUx1&}c z2Y3S(OzQ3cZ`6}@-s|H@6Uf+9qt3|-QV*sDWf6`G_@F*%$`&r8QOnuM%$HcE7eWSpEzuidhx{-LFK9-ac zakH#*1@D|p`gQh+fTs)WJS?fL$$z2Xtya>vlFzk-M+>YZK5D7`On*ttD#D*LT}3~? zh`D+QAN51QTNet(9!hu#uS#stvX%X7lwQKCeso|aX=Yd!a?K>A-?w45D@+W_vd&?y z6UgUcrWe}3L5T;*;Z~`MJ(_sd+`5x_?<78-^&H9c4(Ak#V#|Jw<<27f9Uo?ivpAP#G1nqqmE9@JMg$w_0@5tuJgH)?Q<>UK zCop<4Noed}5OX78o4MQ|uhc46uG+c8EN59uSpOS?6g1Y2EX9_q>J8Sskhyx0bE!md ztOmjj;Ag3m2=}tHf$wE+L0TgiyF2kUq_45x5xo5Z@Q6hN{yp)CZ3509yq)kFgwG)T z8R#v`dWHBg#E&8V31WUGsXf_;d36e5>?9!96zeHTiEk#R*-8M$&)ZD=vrJ#+)$bDa zSJ_~~iGo+p@oJ*_9C;Io-$G0Y;T42`!nC(wY_4Cm%EBD8))Es>IE6GRf>Fx_Rv$54 zZhs1R8DYeg1eRV>cL?4(o0u2v`M})Cs96EaJ&AnIm#bC-d)^-ft}<&C%l#$sLlKX* ztlLT1i+QJ$=j-+l!E-rz<`KV-G!SoCpF-PkR!p%%iVp>9cNdU_X=}mYoQ%W1lmx`mwnf+t!Bs_uXSk~nClG@Xl zCKErJ^JKcfb`oh8OX^U1*cRKkjHRDK`qP-Vjg+Se-p*!T%YFv6@;P(OTGL2hN6OzY zt@AM~v5qw#M{ewAYc%KZ6~sJ1`qN1NDAQ@A-yyJCPfT@?N*|794M&sav>=sUdQ@QW zLW@ovIB{t-Dq6l)*~js5%bz(e`lIo7QLZX~u*1hHf294lQ;uDj@-6sm!w1n@mM!If zo1f=9<>!>|3d%*)G-$Kb?P%>e)@yD#PMx7`cKOTrY*e}&&z-KY@rl7F@fgZDYWv;V zq2Zw;hmL8K=NUY&FkrKu*BE@d zYRf_+uUUu12HwnjyMZ_1NZ#e>uN47}z^ejy4d6!ucpcyk2K<5nzhc10LbEBL-wdAH zhrTPnhJK9C?f~8k_~6j}#Dk{X4e(*W$>ni^FPA()-ts&H?ulz9K7IMX^78U(zbwKH z2HbL-@YsNU0(hEvBX}umvcYq@0h{H{H1M+wo?X>*u0d~>d#Qn+-vw;)jO1N_{<$Hb z7kEhkF9m#u0pIft@an_pA2R44H{b}*^`L*T{5iQ&{;K3Hf1U8#23}~k1~ewT!=U-3 z{L}J%K7Zyv;KSv>S11Gax`0iZc!MU@fU|tKq99t<5&U}@^k!N8qWDNXnKz)3s}+NM z8p4$ZTtfFu`&BYz*yTVso9^}2spuZmc zZ>_kgVi~^g!e?brp9iCGImg$>3taJt0k4h1T!+bZ6y*oiU)-etghx`4k3@Lz-8q>13cr_zq*t&EAnCjZLBD84e?fO7&^_;*pa z%EAae>b)&!<3_-{0{H7L@Sv$IH0bw4;I7+VSsW<~?K0~bz``L~hpy{v_El$mr2ixM z%2L#Gh+j8JE316CG7Na60go}@@c}%k3!2065&EeH{W*Xy2>1v*$AIS<@D&DpjRBi^ zBQy&St3gE{<(-~g!uJ43i@Fu+pKi37%2ww8OXz+a1fX#Zo zZt&@Yy3C})^KA4lFe>^DH8`lL6n_1#HqRGidHI;FSUV zV6?2N!}&jA(3@qgHSj?_nKz)3t5whVG=!fw;Fo<^Y__V6zO7aDCg3eTzG|BR?*zOn zzze*`fWI){uYGv9-I0EHOc(gX0H5BGzAC~erzLZEVL($1xN7(iq@}|Thr^xVM;i1d zJjTF}A3kaLRQx^%AAv70;5o+toAmPn`YVpY^BRL^XXPGiUbAjy9ZdW}qb%41?QJy6 zz1_f@d6x(H75H8i^uNGs4ERw4UT44&nhl_TA;1g#iUDsj;LQg7ZUApTO5TqR`rQT` z@Ra!+@wEvz_%wuD40u)mUmT?$zIXWk;RgerfU8{tjx*q7AFj>>O(%HaQ=NAtJ@F>J z3HR)RXMktk5`*VJ12*ef9_7ILKQ)wk5NALQt;2utnru zJsqE!20Y7v=Nj;_&|DhO&zJA&1=Tko?FwFE&@46JJCNs|An)qxhpHbBcnTcY9@PRr zXW)+oelehb^{~7VyzqS8;Q6)zo8@jb@H-5iUDfjwgWjy?rv`rCk#OZX=!XLaKFC|6 zYP_0wA77K&l39~wzy&@mX-zK!?sp9EAcLmTfNOoYrU^V-Yev;f#J34!EqB1rFlgEW zc(y@van0p5R|PyTuDQPECIi0JfR}Xvn>2SBG%F4G!2o{bu(Hg&YYqBnS(n#5W8j}R zV6)Bvykjmjy1-8j_?&YXeZZ&og4%htSJcj_y$06>UTDCJyMS*G@XJAO(nRpWXN8e>l>wXl z*BJOm4R~Du3;(X_wjrQ-0rh?*XrsWJ0(f&5c%gaMpx++AM{E1XM%~PMw!`2l_1ukb z;j`DE-*3QXU$y52eP{5&mdrZWuiLOCfa83)E*UV^gS_kVqHUCUTi4Ua6D~2}fdTwT z7c__C1A3Xm5uSDBfUA8zgc}Sv(1XN}HSiM**vuQDnS2<}=>ffo7dV2S33zVZth!6_ zJs+PN>K4>3!MBMw;iU$>;O_|Xn)rJRn$>j=i9D}+93Q}S>!WZ@zi)<3`nu-=`WL(A zS@){Jv$JxKHLp=Ovko2VTpKN`?)50#p}lV#c#~&@ek-o;2*wEdw(e5{-e+pzyH}kGF@FpDOm8;=rd>X>f2lUYA;f=oi8GbXoCA=-b3%t{ScO56ZC!qfV ze9XKNyzu`z%Cp{%!e+VkF;RSdqQSF^de)~$>CJNMbE5eA!Xx2&*aY>ZQG6tC{gC>q z`mm3$AL-i?^zZl;Jz5{%Fl%DwIe%^W$zrvtd1$a$RmcWl1@HzwDV89WY7f`2O0Uof(J$cs) zzF!m;Ioyt~4B%I~&MPvxoxaw9BRn^ujLiXF;CBspy8(Y3z`G6lz4iO+4+eO^4Xy#l z8E~=>H)MjQ6MVho%{!8wc$40Qdv?Jyz%y@&!E>MioAoS@^69cI)ka>k4nba))exoW zz^5gOZ!qBqAIy`6u>p<16MVQ~GT`X}JQMIN1DYX^G5LC z->9NI8@(uOmfIK~#W$uJJiDl8V^);jEVr>Bif`=IIozS`L7j(T-Zl2~=^FDw<*>Xn4Ei<$j_{ui`pX+HmMe`{;d4{t^@MLV@ItdJpfTaQ z44RdV4>mp$@IM@0Yv7;h0yb%$H)viq;Ee(N=3!--dAAt!L0N)n+-Bf+8n9VslYW;^ z!@PS8_zNHIupY5C8^8APO*ZEL^do7SVp=kr(wh>Sa_}v1p#ewm#fQ;!g)a^A4l(Gf z0FP`6H;uvfczh-W^_d!l8#&fKUf`y4qHyD~0OpuR@l6+WfuG~!o94+Jh|)*+G+oiO zuxWAAHBGmp9D$b`@QNqh>2gL>`<{$Lay;Tmw9506OhoaP98gkI_&@EnoXk~yMhz(?Q`10HC=1CVhnFAzXhv7#D%p z8}M@m{GtIzXkG>V>j7Tiw+(o!0q-#2PXhSUqvYLZ&>t}1fagfnk~z}z@r2_IIMsl& z0=OVb-`F&=*T{Z8p70<8t~B7<0G*qd{+$`=){4awII64s8$en)c+#ZP3NR zSQ8G$w@Y~EVf4Y6l0F#64m@{_+%xhEziuNBhrf>Eo9)iwktR)yL6hji&FP2nH|cW> z`hdS+B6gkBr@1gnW7acLAGz9G?9&h~HQ*sWEVfy5m2Y1)hXIfD@y%nRa2Wm6Jl@9> zo@BsN0~qtR1I;;I;4kp;&2tW;5BN0C1OA%kD}?F@cwr~_#fQ<~9?+QhYycBr80WUZP*rdN9pkHzno=Xj$ot1m6dCj_+bujUF7-ijKz-GCt4ZN8*pl@D< z>uZ8B68KRAUT44?3^+pb0(=4Rk#{rT=2r}OlL2ow;CBOf`%&_KY|!sE;0VvXC~JR! z7x-WlZgCAb&WBr)qx8pfm+!IP&8v>-*;Ksm@oL^_d9`yM?xecf`B2hBXAs_v`@Y6G zk0H%+ULxibrgB&0)y|Vl7@}RL{x1zW!aZ)+Ma-C5O&I-tj{3 zj^mwXykpS5h&7qYnoMQsQ-!nLPg-Z4&AgwpjZ+Pb0Ig^f9dMS$M@~IkCA2r)A!k;_kCD$xdR9nf$Lp|+zCa|mtENcSGI+J-P zGuLG1n#^32Nq;8k&AYh$d(?SXwzY(mODIp4_>_*wlc|&^eK>+kID$)9hb1i6zx#R# z<%w}`ww)`byBA1(-1CI9+e)~VYrN~b$E6>tICEx69c+i?&SJU#z2&pmmRT%)7F#`w zbLnTwM(_RX(3zOwd)W^oB~^Q+H`Ien_e!nQUa1dKS&4hO688#EwO2|6Mpoipa`x{$ zciEG!$ zsAp|IC77ZqI#W@)f0sU=CZNtDPd-f`&=H>tMt#oG{d=lU z3*dvudm4H2UT$lu)JkpQ9q-H7iX3vADmq9lbM9n%3vx}B8U}ac|Cza#$$V2g16WF2 zChbCsb_Mt9FO%8=MvtjwJ_oktRp#Y==IU<3ceBoSlf&JtZJ0ggKLH`k{uxBfAW|-q zJMgV?sWa+%Kl!8Q)qSkbeY`*aKDMY)QaeHLb^`fK_1nl%*hZe)0t{+yO_ka@cNG?^G<$iG2vplsy-7Ksf^2K|Lg$FK-3563zD*|)7akA*gvOnJ@#ik`?H>J5q^tLZFq~%(Rj<=guHLrzeVal z)uND;h2&hwwiJ?oAzSe}ODSY2h3wBv@=Rl{H0DZUt~AnTlK#l28%!hRG*V8Zw3+5p zinOu&bM(L9xKHD_`%f{L#&V~z+-YnbpKD<45N^&ZQWNJD^6dKQ2{OC7k$)Xae4C}z zu@wK=3U#b`9m}d?S#|7BYAZZ*2Q$IqQ#{P)DX4eY4?|__)H~$7o9po%89O`=Mdr^Q zp-~TUtbf9>E+PG6#4IOf05N-ngZhb#zS_glXI^U$OW(uZ+ryUbko#bE44LzIHp&u1AYbv_+0AlQ45tB@?aoAAy-ZU3 zFN8-D-cGm?=^k?1LvDOZg*A>CKI_MtVGExb_93S7#FH6LD$*vYk9x*B0dNE9ClRxW zn2E$Rux@g-4ybl$u`c!lUvYU zsg*UudP`Drpha!XBW4~kGw8X@AmaT7K=+O%GG2xGy_ha%O=claa5c0nZqhYDLSQFLLI3W%+)3}w97eOZRB={ z1B$W^fia`kYI7wUk#&{j02DDfyR@e<}I* zWv)Kt*@wCMFjpVa_Z50PcUe+AiGGN2LFV^dGT4e;14$E8Of@ zA7dRbx*@yku zc97u7-d80oLEGb1vGVX+tf3=6TBYJ2EmQG-FTL7hZ<~e3!Oha^NMQvdMQakqCR`!> ztc41a+#d9Q^g+DI{sGRrY31?V(<-qB0vd>KNz3uBX6j#W2RQ=&9r9mJ=c==rPh4@nrSVtV3B;&zYK^aba1oSYM_Mg0T>-Gv4BfALv~a=-1*gGb@{ZME?cl(F_0 z`t0a!OI8hdx8O4t?+I!$B-3>Kcj|OC3-7t=QjRF>cZ~4{rkFP!|KCD97|aa#E{9f% zZ*l0m;#B~HNC{HdeMm7QaTT)!S6?CqGG1x#bniOvdT*hJ|HV+r-aXz*??G>k_mKC9 z_o%nld(wNud(->O`@6T#`#gjPRf6V3uN8m$Hr|_}V!Wx|RF&pU_ol0KZ-zHRWq9X! z=cr6?rZ-b{_u9NRmE~RFU7)hPIo@2A<9*+|UFCc0y=PRNx53+>8oZahmsF#7&^x4> zLg$9gRU<`T>P>ow$bU5nJ#)KyKs~2^qn=m4RWGRDsTbAzYMc5%ZC4+v9f(|f1nKb? z^@;j#wF@@tZuK{-)H(ytM?BM-YE8pRKg(KaJ#KBZ-mtb?JFSnb-PUK;->t9kl)Q3# zoPDx=zWtPQi~BuyuGiv?@udFOXu%Y~BhZ3o^*FxQTEh@qA8w679C@sDvvs1i z4(~{l5Es>qGZ)_iAg0d#!tmwadNDz0La4{fYY%>wvq= zU1ojd{@h(*eeK@k-fP?LD)#}~b${tTV#m0TyN}z6?pk-fo#a02K5M7D&$+*|Gu)Tl zm+V~kKizliJoi0!hh66GbU(6(xu3Y7+QZ#F?$>sMd&oUxkJETys@Oy^jJxv$u68mi3PxrHD>LI$)K2HzV!|hqRUN_no>XEwH zo}(w|3HDq)QJ-dCq^IiX_V;z0o@HOE=jluAEA8JEl_HzBK-eCV+ z|5m?j->F~Guh{qMjrx!FO7Cv(ZhMvY3-1^9{ocLaz4mJFKJPyJ0gU--`$3HRFYPtn ze|Z04|A+T0?^pIim~pa5b)kKwT4Ud3->sgte_=nZer-RC=ihFze}m`NzGwdyF`=#Y zHhY`eWsBweS9^!OL+y5-aGy|r(-}HbeX4VH54A`4(!JH^y07l5{;B)xQngQKh;08%JmAp!WyRU(f3(ZdX0X_s@0F_$EX$A732_hI*O)gQ9sw`wrz|Dvi#8#bv1_jPxx8ts1QeyAp)MSoVOqg5ZP$?h)q zQ*{Pp$3N9{_e=LH)g}@|eFqXGMa|M_I$d3%Gj*1lj}b0YSL?xgh+3-4b%k1n)(=z5 zAup=c&oRPH>P|gMk5Vhq7h}|Y7~xj6N{`nQ)dTu;eWrRyPt#|q$Mo5HrdkUL(x%qy z3-kr*X+29{te$~1xmx`W5@exzP2Z$%Qg4a`QEx$l{6uZWXy2)}V4PQ~4RI)O!faOSV7G2nZ$eY;P=A7! z5_|TaR)6*1)&OgmRRC=;!Rl*Gv?f_2V2?h4xb!crN3CVhRIghrs2P3@DIaIOXvf?2 z*5_D9qwKy|M|17L_Qm!!_UZNld!5~8ueaZ~@#I{mzx`WhfD?8?PJ?rvlkJ@EEOzRh zTbw)a>n`U$=OX8R=XvJ`&I`_q&QG0}omZXZ&PF%Mx!X-~bDa;}e7C~c?GAH?yV|XB z=eRMPO(%rlZ-q)ieeq9om`$M*LcK!0`5Q6}a}5!NP;#h9#fJulMyZ0(*w8pNJalsC zELDR!c$FF(x(+k36};lUf%?2q8>nZ6W~tWDcSGM(Cx;HmN@PHT{~3*RSi>Re^p(zoByVoBB-^tKZUZsa|@s z-VB;Q=|8C~{kDEv4b=ao|4S9?EqaS8(eLPYRDyn2zpHxa_w;)zPjA&*Rd4;ieqR;o zZF(E>exN^4*?PO)j=Uf057h~f)sU)Ud#Ik?7;g+(b&@w0mex3L99q>1dn*KcYdkQg zc&Fg+EGBppV0E49O@xhgns*xLCwY?~&rkPGSB2hW5B){UEXO;`J4-p<+1}Ym&-Kn# z{k-$M^Hg8&eD8du-|@bq`cwY*^yYcB;^fN$__K&~5M zXQp~Lc{jmcTX0CSz?A-XE zH^t7iXy;nAa}#Li+SH~twP_-Ivm3PO_mNBbG#0kwC1}6&Y%HwE%K%INCb56hjs8tH z`ZvkD%DW1^DZL!;UE^H?So%7ieXZHoA@+5g(bsWCUnjAzQ`pyO-p$_4u)(Frle`~$ zKgL)t@s?or+~VB=_*U;$z%mj^-tDl^vyJiS#_{MzYoHtZI*YxG|3g!4TrmT| zq!=rvjAN`h#@#u_13AVq9OLdB<1CJG4#&8VW2`yG#auC^!HSWQPUc7#2kS;WnqkK3 zN$2Wuxq4i#o(zt68OJ-B<6Xw_PULu(al8{b-rYIgc^vNouBSYXcLCQ^caFEes>(Uu z$sF%;j(3RT9n0}9<9H`=ZIyAnleo6JbG)-T-nks_B93==j(0xCy9dWRpX1$w!Qe={gkB^;f`)bnPkDFRqG=9ZDHHnDeHX>$r^b zri|;jjO)0J>p0U`$7z(tCvY|Qfa7=c)6NcL8*DZ|Ld=kUk2HT}+K# z42}J3V4j0-sntu++YRtBcYyn!@s5G^{u{V|3LPE?{V%cF&(#;8`KOhvPO?%g*+a^J zZXXEGvlN&CR=Mg8U#|jn8D=#jZNdLGxYp^`WZ=)R&QhK=!SbSKU!<~OJ6s8PzI}}v4GZE<(;%9~U>>0DHWa_INEU4qN3pt`nyUoxbp83SoT=Kw5@p&=)$b&Un?s zndK}7e2a4n(&g}RP7_N6>HW?_s=M=&^Qy{n{^0yU7& zig6dZ3t_w7=-!C*Cif=zNjJmdjd6eM{ur1g?h?R1b$<%{&)uKHzP-b}1NarNdmUKn zzX1MT_g>JzW(T~=T?JSy;ok0QceM(^68J#o-;GcA#1ia3DO2xYC-SxQo zwEHwLzlEI~1CRRmu)Y7_ZUp5Y-9G~Jrn?#N+wK;?@4MTOe&Bwf2GV}+?e1_f58-tq zTI2q=``@74?fwnvr?90@f-Sull>6QNfWLIVRGxbPc6FKiwfi+_{^kA)*7!m9AW9cY zyFq+)1p`mJ%F~_>sgrb!j=>6x)v>Tf5_PgF6Ym`sOBy_n2Jzuxv1I5BU@~>KIu(|A zzN*p%x&SszAv~~Cbst@VRQ#|i`1bt)m%e?=qaE%6TUz;e1YjGcP4y+Y<-?S4>ae)7dTaaM}G(SS$Y=W z3-x!=(m8rA@?NB|QY7L4{H6MGV6M>f!41&|&|jsm0sdOO05m_+Kf+b`j<^cn5%?SR zji~v}`exu4>&0l7cotRgCYOL75ejgCHwnt+`Yyn~(7ynDuf7*FEA>jitMn?Q_v`zC zS*;%c&4cgn;+(*@MiW2mQ#sHe-Rr-xBbpH4m9LOnf-db*T)dL;Gq2-)8nY2TdAR2si7xQLsw8kPoRdbpoVUyhOVH7ZZ<65G-~J?YUng-=$gRd z6^m>FEwWRnp(jv7pF*u%L48~iSh=QUi-?lyEwKSrC2=Ld;=K%!=#na?4^u_GJH%V% ztx_e_zC*m#-fB>a4jw`sTuB`~ggST#b?^}C;0)^EO6uSt)WNyb!TqU&E2x7jsDmrK zKX`wD^(q#1g@;&`IyJDX5wSv9VqFiSbzM!ZoarHY1-w|=b=1xI63GHaVzucK&r-dq zq0<;$(9pr}s$A$@SLNevQ~Ns5s=cA9i}B7?eN=zIrFiG70f>vb@SdR^5#yEr`W8JM zqfS<`n>Y#YO#DaHOu(YKGt~u%hR3T5@lH^)@y=A=RTlxi81FpweKim8CF(NJUygUC z`hmI%@YQ(dscY1=fEVCYSrYXBDwKOa-pOh;-Wjw8lGKChSFk6S@4c5ajSO&vkL&U*`7!AxAYm7=n6nQMtan?9s zTCGz7PqZegJnJ-T5@4}2l4xh7!_N4Qij{pV)!n+#LjPEo!{*4O&5#DgeY4&9 z?tEZ==w1z7c&!VG>0aml2(W17BzKX!2=EOqJVRGBv_lP@Mh%@s4V^>{o$cP@-U3QQ zwUHvKjTBLBq@uG^sk0sTPWMjmyvw~Cc+uaPh<4utjOg!JYVK@TG=|qM$eY$IP$KAUU#V1)2P>TsMoV4UXH8JxxWF==iTQ4i;mBB zUvOUlhu^us1Lh_7C8WQ1UqzpY)=#3=&vrMtuc5@(-8XRcP4`d0iv^J7zT>_F%zN&8 zNVg)6mPVT(n>K-Vx4YYcm&jTYErTpX<#(d@K5{<-UhIP;MA>%14*0A4SMV2G!J(~S z(N@szKU~a4_n(NtS+pCHX*Z>W>srf24@|BNg4BCsBW-i25T%)E_CL{zwt^M~bLF zQqjSA)Vp~S^#_coKT<^fk&0%`qfX6}s6Svt{gEQ-k5u$!o<#kTioVRFrp%*u%+r6= ze}qmF>FiK0JCw+&l*JCEutzBzL-`w$s6YI7ME&6-ir*9RHhLR@5lNaSQGfW(5}Syn z+)SdZOrn%bqI^t)7qA|lgZL#PA7@iOh9DhB03HcBIF@p7HsxRla&RW_BKtIC-?f0n zcL_mmtp+R}Oo%dTHf7d0%B*peSr<`eg($OP=*`4YPIaT4il>}Ppq!dTIW^nxY2qlS zrUgDt8YI+gN~kfEP}3-(LX=S7p@f=E|K>aNZ#-)>WYcWOrb$Re28AetV(II|(bq|& z+?hpRr`3AUdQi=!$5V``=j&<${hng(CCsJw(?;*-JnSp{6O`fuwOL=%9r#|$b`Z$%&IAFw!>gk-~z)Gbr)yMg$@LhB*&AFT$4+@2ZjB)d+f5Bk5h8N$+aB^H1lW$SXcpCVi|v^s!E* zkJZP`c5~HKH_y#O{66394Y=4X2HeN(3s^j`6X=1R;0|zy122A9ANpa#+!5|sD(ud1 zzoVMzlbuPQEGh8GE_N?fv#}#`8Kj};iP_W>@zfJzp(hpqbDet~u3is4F`IfK1U+#B zV9^jEYKRzWhLp+?Zr@M%%;wWr_UEd%@I${5u)bkhP|5y!A(5BcxsNZ&>Rl~BVJ$(_H`ZyEWTif zIwOWUBY`?2p1xoV_I#d2ZL#kIO3@z<^~Y@Lk9g>h7l9YeVPi+-Wx&4I_$su>Y-*7Z zwMaa*$XIHT+4Lhr?w_Db#!{EWQXO;6Xps=L$TaLteWuQ$E*V2zGMl>OBUlscq0h#faI9x7tQ;wV2*&8@<(H?5_=g=OjLB1AW$F`m9a#S?lPtwqgIR z3N)g<+OQK>4Q}GUw$XnbO#ii5hq3!OfnIDIz1Z`x6WOFj)0b_dFWaP>q4VZqAFl=6 z#IJ3lUt3JSwt+iZdGv1E=-oEyae5qhijUidJ+AS{dx|~sH|Rxr zks3mexs4w4dEAA|qTgIhzj-jVdolgyCVh*(1*M4hTqirSsK4m@EPB#yT0H4G?1kQq z_F|6~SH-Jt!w%j($R)mYF@5VceV@KhrO?A}qlaBg54(;Yb}=o6I@!}z-=m*hhrQKx z*vS#=p-!*Y>rtZk+-3_>vfD>W0$o^6x{qJ=8-~AaaKb!t{HvRAZjFy)&T0Vf$@5&)E zBk#|c`9ON)W%S4g(jzaUN8X{8Z zQ}53Rd4ER2`_mQ-(Niy`MHr$*IF3GgF>OKL3Y;x_{AxD+>1P)PezsVL zv*~RY(nf5fjToYzeF`nbe)O}?puHHPpIt*gJ44QNsPkz-hP+7YlYcB(Y{BiI=+j)kbKOFP4+o#DXFNLC3>ij$(UomAKyE^Uqk+8iEjju35* zkW=Y|!J*!%S7}azGaB$1XAIzzV2i}i7D}OkADnOanaKX#>sq z&iTMx0DC0{_R7sDcQGQsF07Uxt3+oBY?oBpE(x?HDvN2|TeRgZTJ9EYc8j*TMLXJ}jcn0E>`e=CAV;p6BbP!8v6`cm z!qKYcXr*wpQZQQMR5eE>krrY#EyNUBh}G=n6!vm8d%2vwT+aS2q=nd-mGRnrm!Dt*pDgf!D{whHSIoFeX#pd*gJ)^`+Bn%`mq;=)9$lr!CAE3EZS=p z?JtY=ltnAakA_>cUo2WBex%!?-C@y=u&DVhYI{GL+27c8^rM+Y#y))vrD=ak(|k(P z!IY*+l%}PWrfHO>y(mowP@2Y3nhv2f?N4c1KxsOd(lnXU)TT6bC`}V6O)Dr(Gbl~9 zvA>)_X_`rC>hCO9P>%MX94)3Cbtpl5P=fk9jl(E4t0*HAC>;}w9pnUK2RVb%F`Lpc zm(nqt(lM9PF@sXDl2Xv$DNdjijHeV#pcIU!6wKhxVR!Bv4y8oQ;GSU)_YCv6XPCo1 z!#qmL3`$CiGSZ@4v?vREP!=Xo7A8;@CQ$w*Q1V%nd}Wk;>6CdEWnNFpJeShWqJ*=! z`!|SkPS#R_ao$5SO6oBh8e%jwa^6FBA#Fx9V~#lE;ZmZupY*W02Y$HRF_6JEnn6$7 z=1TP=f*JIyGwD}na@A(gqju>_d-SEd)0Ym>myY$l=)iN99l#8F#ST|_20dX-A2^0S za4db`IQqbK^nr8e{pQg7t)urFruSP*@3)TLZ3N2 z{pQj8&7=2QNAEX@-fum<-xPYkY4m0a(`^};E8%OUqhu&`;z26*qzjgF}>*@X0 z)BA0p_v_O8O``XkM0wVYk}Q`pESJ(Nm(nYjaw~xnE0?k=mr|;cQmTVOqiZbEq$0A`Y?WkGKW4)8oif#dM|bKTf+2P>glo6 z(PIhISIMET5~i0Drk9dKFQuMdN)El0dip2z^i1mMlZ5G$eQv1bI`}Lsq>qqU^liIJ0+V2E<5oOeS zgQ)ig(~Bsl7txd2Zy2>-HML(4YQJIBeueZL3aR}D&}S&3&rn34VIcKkKkCDN^b`8g zLnx#68%n)5lzOj>daoDtUT<3e{iyf)Qt$Pn-s?-fS4NFDgc`4mnyrkQErUKl4)t3G zeSl2*06Elk8Ps*dsO$Ps*Y%^W>u2n*^`pffrryh-uFIf)%b*=!PA!)~3tmpH$eG5! z1{%pfr6RjfE;Wx!oujF9x;~8}=TPiG^T-JlJ2+$FpDU3QB}LRNMbs(<)FcJeAqCVS zMbse$)E-6D9tG4D!>A?dsU;ezCF-dqMp8=@Q9l$>GZaw|j5N-P45J+AxIsEj8`wizljy&;kEN4CZQy%8|4)aWhoa3+=J+p%o96YaKoYAlY znJu!pfU>!WvbmA6xqz~{fU>!Wvblh=xrnm4p0c@!vbm8`xqwo+fKs`D^0NWoic8cNE`Dd_GIA*CFvviJG4z-(q20M=>|pcgI=5sbT*lwnWDgsp*oBI6>@>aXh1AzW*1;k&fp`$8n_NInpT{=}eAv7Dqah zBb~*OPGNK`mgAkk=vXXAJ%OX{an$|O+T9Glu$$o*rf}5LIO-W3^<0j63P-&=M?IUP z-kqbKO&yxTQTI=wd_I=SXBPTBRMZ??| z&E>vmn0}heebI2>t;xP zzDnxwKJ@p>sL9i*$xEoo)2Yb^P?ML^-z%U#FQq;&rH@xeAFqtMeSo3c`%t&{VdN?; z(D1UiSz|=5YK+KL%@L8S8hU_9j9k?ik*gXba#cf%UtHbBS2c_V4l|-yLxU)m>}}REmQ}-OU@aqBHH-$<(vC=`9g)l!SB(+lN@a}8 zkMz~itMu)Qh*v3ln_=#4=5TK_%)QN6?rr9BZ!^rj%^dD+hUtI0+}jM(3v~_KB$i&N zOD{B*dz)F@+YAS1Rps9xl2R7^E@IK$lGjO7kzE_XP?^ky}8IK%X5UE{QC9DUl@;IymkaAt9bGt3>%Z0>M| z>FdUFhcnC_&MfY5hK(K0Fn2gz`oOW=;mqX@XPEx5%N@>Kdd0Ea;mqO=XP6#xEO$7| zxx<-5Z`q}{9K#*XFn2g}4A0r+4riGDv&$XMLEPc&#~sdc?r?^=!#SKb+MvKjlT)^N z^s!y;aE6Riwju6t=5U8I9QfXjc2s^~)5%$y;oRpOWbAX6bDuNJea<|3<}UX+L-fxJ z=%2gv&nvjkSx8H;l$Kx#_c@Db4_0uWvyfI{1+BtTT7?y~3QM`q*_*auI&H&J+J+_c z+skMnR&bxQH|@jTCAWCUrC#>l>3~%3u&>IG73;hyS0>dYYBHUix>+i;~r)qE!hgj0?N3D z*_&2v1$QrtXxo<3wymITTS42llo5e4TDYZ*2$V4*P{tk0o{S5WamTWd_HPC4-%>^g z3TOqFGCEMk9m`%FEMnQQ#Gmfr> zz{0e}D(DHj^o0FLugiU{Fg;QKOPM@2Vk(|Bsrc*am;sZ$epCvzfoY7%v7 zDs^fS^(dZrY2(QpxI1$l_&kOCy&c@8`LyzQpR>pNoIPq;i}BP1=-N#xB{)H}9rsvh z>Q}j+;0c_rlhgOHSoxVMnQPwSnos4LPv%|Fsa)r=xC^>JDCG=864!Pt*LEt`Z9G?O zELUj^S7|I)W-3=^ELUa{*JLW!WHQ%eDkE(!S7s{K)JrN4)h^|4%gsa$)>Sam-DMotbS;U4U3z*ElDr*d5-(eI1p zDoW-mis$-C<@!lx6wT$ziDCRKma8S1>!cfZ`D5h{ZImm!`LUSy&jJ1oPRGY`j>cmm z;F&J4I!Ey|UaMhsw$kbxL#wmZusU0L4zJa)H(L#Rvz7Md$+S05KEmGgj0jF8?adfk znys`nN8z0C7dQbeaUB1Q@F<)SPFJn8G5y^_m)2z~?aGsQ(yo<~#Y@zLm zr*h(C@esrI?8mjykCB}?Ms`NwPWww$D=n`IT3)TRyeesVjiKe$O3SN)mRGA`d9@y4 zc~u&gSEX^Ptktl*T4{Mz(DG`f<#n=Qd5xjv)f(JAbPvuTx6^JJ}twN*)L zYYeTeR>RsFLu;$jI8W9}YparWR)t|_g=lBB($1=&oi&Q5l6^a?)v&WH+F7G%VYSk> zvS?e4HLNPnu&O*-RTZ?VT4`0CM0;wiaVmKfZKzhmdh%#J4Ku8#CR$JFl%)BTq=P9* zGiW_E(Rxa!_0&YEnosMgiPlp-t*8E!u(+=YcQ)ly!s0mvxU;E+)>9L$r~b5_nrJ zok4lsM0uSQ76mg%Ui65kVD%lof@Kvwp9yltNzp$ zIkd2vs53HXVdYbEG*NTJ)6Qz5os~~JtA%z}KJBa)+F32Mv&PZRYN4H#PCKiKc2+*^ ztYNgX@@Z$a(9Y^ZJ8Km0$r{BI=&d{%Hk9$l0>&T97=J9~zDy=hhSf6)Ih0Yz5}sv9 z<5`AW#v;oZi|oNzWQ}o_p*#0(>KKt6%7|oNo@Gd5Tr!XLT^x6Fx-sgN&8Sy0W0XaV zdWCtG;S@$Hix~Cl$*9)}jCxfw>Xpnroe_+B)pAd#8>3z$7`04b)GLv(%LJYY8_%d$ zA>)|YjALdqy4AqwRyLzs4UBFTF}l@@(XHN$ZuMext2d)tMT}QwGjf&1cx5&tS6Pf# z`gcATF&?~GvNDw~n3Y(^NfY1NM6ssC1X^Ns3f*ODbeg8I?{* z;v|eDm641j2}#BnNs=T9A?c>3IhEv=IEmk9efDNf^XoS=%`fwsKYDq2Kl|DHd7iWP zv)1!npS9Na`(4&!T98Mk7@Xux0;f1rK;)D`Y$vkHfHqpyLmM+2v>97s?TU}y`tvw) zk+TTbS?nx^hc9x@;GLDuO1%Cve2_h6ZxQyy1-*6y&H} zh$<NHJ>^t!11-J)Is^wL1F5kWa^+Wbx>?ZEJ_`e zM;(+;9TcSw%BK#BQU`^pgQCYymKPd@cdCiPAh^-d<0PM8`eOpOzpDGO8M zJ>X8UX zf(keWR4raVY&2AeO2nhjLWoKv!qJ}~HAsjWq=4$fqwa`sl*gmzLIQP1h`Ph0AG@LA zhHAQX3L?UBnE(}pN6+&B6@*LeP@USrr*=3szh-?Rs!}^dIPwypYKU;m zB}&zhMAZ&C3SlaROe%#al|mMkLNb*? zlu99=N+E+vAxfnXrc%hDQpluI$f8onphn22Mo6Sa$frigqDF{PBP3BHM5zv<)CFPc zf-LHSWa@$_bwQZAAep)#lZqfpMUX{BkVZw2L`4v$BFLm7NT(u*QW4})5yT>`!_)#{ zYJn_jfn=(He5!yXs(>il{|vVO`E38AZ2yzl{)gHAN7??@V*4Lu`yXb@A7*Qx%XU7A z?R=E&e3&hKm~DG{`7so>sM%~wbJ&(vU@Mx#RJy{pK+^qh4T3lFl|Hvz))3%QnG_``g(Z9O-NgayT!O z&VF)E+>6dek|o4^>1erQz1D2@OJjCAm3BIfb~=@II-7Pn)(egGKl9oDjM-_2b~>G{ zu%VsyXs0u2r(;p8G4C;tR@tLfmbmwrjX;V;r)HM(8?!C-Q)qwZICIecTF(NP*4Lx; zJ>@rM{R_%_jCr)X4(+bc?rQe&Jlb8M-HmyVd9=8hw6&SEwH|G)(AIjiwT4zU*2)`N z*>qag99q^4TGpJn51EbHF|?OC9JNlTMGVm*#(c%nXb}@=3q!Pm*|dMztOqHyf2p*8 zF<-GX_L}l(|59lALbQ3=w0Q}%ZE37MDYR;7v}!S*uvFT!G}^O-)1y;eRW_|x3awWv ztydbYR|@+%G3yni-Abdy3b8+vU(WX{jkYR*Rw|oTDuGrimA#jITB$Tzsfx5xAzG=J zA6P2ubR}A*5c?|Gv`jG%urykx1ol#5mMO%ZNj@!83awEBtx-1ZP!=sv%=ati%MkPZ z%4ZKGpEfCvJ&=4_rVwpXHf>VO_bZ>zRV7-cboM&Z%W3^w+NVTXrbJq%BwD6ehNN8D zrvU9!fZDwZtyC;unKr59@D^-D3Dlx9tZAP%lv{H$*Qi;^) ziE)oBo6#+n1?+z-@ASClwviAqdy`CiWAoA}6*ApYN|kBVrhONc*5|iF2Bw}qRK70xN}5x zD!QU=L>0Gedu2q8>(H)ML`}M)b5TUCj$aS?a#a;oS6zU}-D}j%$T%~V< zMD156C0TOejb;D3%}G`X+W2hDQFl<+B8$NYb-#K9bJi~+=g?N<8ag0KDj+W)RyDx! zqQ=Fy55&(m$V-r~>Zyy6CE+?m0N<&`tLf0x%b=XM!8#rkL3ZpaQa66Qqf+rp>Z|6M zG4G)Us=L$#^(bb>UsCIskMNLKB^{BoRZ|sg(Y5jtOGHg?*%@5lu0{8VI@;l~ z_7SPkv3;wEbnARshlq^pf@5TPm(J}XQp&%S2E&l13RDBtLUlsU$wA18I72<7maEs* zcI4(gEJji!Uyy^G_rb%xC{ztqk-A*(vfq^8Hq9euSvhk00-= z4EO>xLX>o8)k_UVK8FX@xZon!jrD!!g%-uh2GFGHCjzpvyf|Im3j+)2w$l(2}+h!M@@}gKM{E{YN_)uF5Ol2Lq>}+YKnRi zy{4Cud*TCRH~wBiQW-hV&xs$OgfZ;1P==QvOX7{{c6Fcnotmu{qn5sn+>>9c=hJvO-8B%13Oe6Ei8e{{q z8QF&HM0O|pl7qk@d(XWHYkp)**cdCAK9yk=@9iWPfrnIh-se$B~oB>EtYO9=V8IKG=T4 z)#N&IBe{j#Nq$IvMt(`|Cy$WFEt51EAd|_op|EmE*<^&QM%E@9kmr&YlC8)~$xh@| z|Z_;ti~(<^0aXh23j7SQ1Iuywj&a;b3OQd{`~WQ?%ykayg*ypdwnLD z%`5-%G|b|bi>v=Py%MNydneBXBfRpNU?pBTowPkrK`+iSmE@{g%I2*V^i3^e>v1OV zb$|?!T=x{YZtXE#6Yh+#fY<-!X>$Qq!L|R>TS1T6-mx>mn!NIvU?#78CRmkMJ`?1M zZs@n#yZy^DgV#J0;y(Qk}+nHhfxR{lW-yCM>}GTiQdQpIYdUtC>bwPWCm76nh%f46|zP) z;11v}q$a}RW1HCxzG!GCr5|!dmdH%*X&k?lqiG_TH@3$iCp5P}Y&$Wwb#r28V0^bt z?8?Yl#J}L$NDrKe%tW!RT_?%z+qKs1_SENH;`^QB+mZ3@UGeRh_;zf3YgY-h=a3{k?iQxO= zf9yjjFBfIt!eCQ`X8{ft8k#8pcD#TYB_b$`k>1$?U&-hvPJs)`;aHUg!EzD1Hz@U%JvE|M=8+(oXdSDa3K3K%-Haz_b8P@S$ z?0cMp*A4u0Pk+|T?w|e}7h$ii-yCe>x8O0S{(4J((h6+kBO9&XL`fB7C;jzK{VR7W zZzO7aGRCDlV{FqwetcvCRXP4R+{d7g`8|~Ncre3%0L&|Q#26ldwbF3JSRQfT-yJat z`;B~L^~3j=0$%7(2HTXoMhTCYz#}H|hzEIu+` zL3050RC3$mf5+GsPc5I}+~(MCivQT+z1m9WHo)1-)f(MeUxvNHa(j{+#q%q~OspU@E@sS?agVTCKqMoo67V77cJX33|yk6=dXQP{%AxVF?xoEgA8 zg9cs9NzK8Gl+8%4b72#luiYo{3Vkxf(0t|W#hm&q9Ir9q9Pqq1u{dD(_-hnm7@vv_AA3J6?-r08g9m%n+7k(pF z!8s03d(5=s^OYx$fU8gL0oOu(O3r%Rd7ZOGg8Fm)S6!;V&|m7W^j`h7-lxCO`}F~= zEqzEI*5B$Q`a6A8AJb*}xc)((&?gPT3XDd8n*+Be4=XGMOwfdopQ(~bG)X4eR4^6s zI>n@#G?Q*JOs2`g3QXB1Y;sJl$um_<#N?Z(DKLems;OqGn;NE;ISW~x>L3ojo~dsd zn1-g2X^gB+=a_TNd8Vm3-!w!1tqYNftA!~tEln%a+O#njo3`c>WaMgZIv|4XGSdkW zbe+u=$jEh#xyp1k-OSadJ6(y#Z0fEjNl zAhQ>8ks?}el9_C#nBSSHSXFA8c?2~-_G|Q0lYq|NOSz-QURwDD)D)Tbdta=4&R=tW< zt6nqf%oc>`-#y@|NLx6CHJ6*d2*dU3)3Q7pXN#(zt__*<=*f9C7OuaQ&bE1v|?Q#__SVwNbMW2($kGt=jkTzH{K9L zXpcm6buprEKJq?>FHBwkY`>mgA3CHV+OEcExz6#=_0RL0`se%2{0q>AUF0|S zTlhtOOTU%h+Hd1u?6>tV@h|n;VePb$ez8BnFYzDrC;AWhll;m46#o$=m9285g@fYO zvJ3B6duX%&L4WCw@Scqt(sE4cti6bc`c55H$5fg6UL99Is1ulpMpy~vdkyARUGxro z%uxn0kC=eDz9jS&Dq!XqndxoJ3FbyKFn^haImT?v1Lj}`I}fwU5zOF5G0R$rnb2yO zt*n6=#aeO}{BG)?k8!rtllsy?8e;wB#^`aJV`mTLd}$^Zp!ac+G?x}qgmvy(No({) zE|#`7enr|Lex(C?CYMPkxg4wEU4b0-$X{>$IN`-ve*M;-(hI$pK3Jdm2J}g8l>TxP z`ZBl302wHQo?ymBjp|`mV43b87*VvJ{gO6 z>v8e``al!pT=@Qs)?@U2daS-*kJAt6@p^(T(GTj0`XN0@Pu5fP@AOptu%4zL(bM&# zdIr|o!+JUJ7W%!OrJvNZ^;3F|{)3*YpVspIM2ay-+`|7wN@%iGD#Z)h{9z z>?IomrdJ>aY^DA)a_7ISS0mJ7%3-hJ< z%Iq~?n|#r2hAaK*nDe_AU^u2IcCbt_vX0y!JIHB9dz{^?HI?w!Z4oWI{_!? zgq#E?(MfWW5kp-OvC}C|s*~oVI~h)PzL#L6`*lB|NipZ^qxa#wrX3ho9h0aAzbEkz>P2vMLh3O#F`+6 z7oMW*FfKcV*jrs}MAFR#>3Y4E?-S-+IZ{zn?SyuyCXys5wcr{DY^^*R2T zviw_*qf5Mh@xN8%|NmG2^PWZdU;Xp@5pSY@@M{bDb6U_Jx1Xn4&mXm&b`;>Bwx3U7 z`S z_rFv5Kc(Hv^#jZ4ca1js-_!7SLc{;Gf`8a*_)3kWkshRPM-=oZD9wpbl{26q=Rz$m zfiheL6}SP4Z#&f89*j=x!$?FK#vMG2Fr;8KArB)5wJ=i91fv2)7z5~Nx}cxm6FvF? z=)Dg|Pkjt}<&)3@e;mE-dFWX$MK5|addwTqJKhPE_!$)8eyG3WP?{VnWPxWRXSMXfq4qJjKzE$2@Z-ckl+wSf5_IRa;U^wiRp^xVI ziGGTo<>&c@el7IYnxJP^gwpHeU*%ux_xAhygZyC_87TJ0qAxbZpYG4}=lJveCH``M zmA}^C;BWS~`@8);eyP9DKkSzUusClZF_03-3giU}1GNJ60!;$V0!4wgfsTPLf$o8x zf&PI(fnk9Wf#Sfpz{J4Rz?{I+z}mpJz-NKOK_{3NEDSaZHVrlpwh6Wmb`Ew6_6YV3 z-W(hpyghhVa8z(yaAI(3a7J)eaBgrxa8Yn+aCvZLaCLBPaD8xNaC2~5aCdM|ur#LmCL zhS{{{Cm zgJ4!bpO9qmq*OqDcZE3yZII&t)Pk7;QweLKSz?RXqr0k#@6O+_*83CPcRo@>cfv&n+EVs)}|qRj<{2&axvIR+Je_$O*n0OAj_CG*GoIFr?dxeln!7o=?L}~ zj1!wa(h2M8EW6-z;#-VWyj78%b7>~v^VE=Iqj7#Gh7@IBu59kNMgL)!(NIwJ~)|0?*^|2CM2NU^V>$SY0m#YaoXXYMx#O*4D_OBcDjA!LuU=jjh#J>gC{7 z$g87GSG@x4rvC(9tyhBG^`F6O^eXUL{W5r+UVXZ5mtZ9?ty{Bh|3R<8r*rkI;M007 zW)Lnj^Ym-jdq%GV=j+$OXZ3n;0oMLPUD6xC*Y%s=dc6^RL%#*uEIz19SPv0(NpA)> z>36`l^%iim-U_~>w}D&qyWm#69o(jOfbZ&^;CB5UxI^y(ck1`S_w;UX7jmFz%-nnf zmO9^oUtoP-%)mH%F>_tw&Ov0>gP5Daokz=x`;0jq+-J<|;0~juor}*Oai4Z^kJ0Ml zz9Qmi85%<4?m@en=cT!O-JRHX+)urlUKKCh{n~vG`>y+$SIdid8SXxJ7xq2(FWy;R zzL)8K<4BVU_UV10Q-T_-4S3rJI@fPp=zTZAM~#KH&y08 z7%9fpGgJke7svkpNo9NuMvXC6jM+x`n_({A#~f{fpX^ukEBUE@8fIy;p^B>b5kDWc zU;9zNP$|EfUkA1xQJpvg9%wi^6|?>seneG-eyXLyer+6)%e!Vq1(u9?4E=8#Fq9vHw$zT6K>DI z5!lntQn#yp7g-bMsY0RRb)$0`brLISM}4rzC`^NS)1-vD|!AQp8qY+FXQ0EBG;QnES$~Y zr4a8`4cpp?5zECab4ScTUx`?#3*jp@08wVQA*QP{vrk-)j1#+6Pk2i0QN@TQKBVqr zuB?Z#4(=wkm>J|YF!RHk%mufN8Li&c1N30^0iuPA)gG>KaR76LW$KVV4hj6McmuX9)mQX#G(0MGORxF{`ETPL;LY-McLs&w0u!P3i++rvv zTSDVmHWN`cCGrrD6JZ94V0EGxtDA#wJe8?YAh>|IpTbjTuZm5yuwmk zV`J^*RT~>EYu&DHSCpkK*L5t{jV#wqEZ28fu3M~SlC3rukbK}>;$0#iT5BL5S!*Dl z*r!}Rw@Mi7bIiNQ2iGLfp0xGDTeD2>vThUVO;?w^=pZ-tz z^p`RNz<2iPR7aVGz)98XwO{eTvt78(YuDk);y5V3aq6LG9Xmn=kK zx0Tw~ib@@8Go`Mzfzp6>wjq9bBEO&F_d`pDwoKD*8rsbYw4154n|ZXGRcJT!X*Z*^ jn+3F+g}8&ZWf>(U@QlfWwu?Z&MWN9Op~I>{Yqk9!!o%xb literal 0 HcmV?d00001 diff --git a/tests/unit/acroform.spec.js b/tests/unit/acroform.spec.js index 81c47e520..c2c60ed18 100644 --- a/tests/unit/acroform.spec.js +++ b/tests/unit/acroform.spec.js @@ -1,8 +1,21 @@ +import zlib from 'zlib'; import PDFDocument from '../../lib/document'; import PDFSecurity from '../../lib/security'; import { logData, joinTokens } from './helpers'; import PDFFontFactory from '../../lib/font_factory'; +// Returns the body (as a single binary string, stream bytes included) of the +// `n 0 obj ... endobj` entry logged by `logData`. +function objectBody(docData, n) { + const start = docData.indexOf(`${n} 0 obj`); + if (start === -1) return null; + const end = docData.indexOf('endobj', start); + return docData + .slice(start + 1, end) + .map((item) => (item instanceof Buffer ? item.toString('binary') : item)) + .join('\n'); +} + // manual mock for PDFSecurity to ensure stored id will be the same accross different systems PDFSecurity.generateFileID = () => { return Buffer.from('mocked-pdf-id'); @@ -532,4 +545,171 @@ describe('acroform', () => { } } }); + + test('without embedFonts the form reuses the content-stream font', () => { + const docData = logData(doc); + + doc.font('tests/fonts/Roboto-Regular.ttf'); + doc.initForm(); + doc.formText('field1', 10, 10, 200, 20, { value: 'Hello' }); + doc.text('Hello', 10, 100); + doc.end(); + + const acroFormIdx = docData.findIndex( + (item) => typeof item === 'string' && item.includes('/NeedAppearances'), + ); + const drFontRef = docData[acroFormIdx].match( + /\/DR\s*<<\s*\/Font\s*<<\s*\/\S+\s+(\d+)\s+0\s+R/, + ); + expect(drFontRef).not.toBeNull(); + + // The same object the page content references, and no second copy of the + // font program: the default stays exactly as it was before the option. + const pageFontRefIdx = docData.findIndex( + (item) => + typeof item === 'string' && + item.includes('/ProcSet') && + item.includes('/Font'), + ); + const pageFontRef = docData[pageFontRefIdx].match(/\/F\d+ (\d+) 0 R/); + expect(drFontRef[1]).toBe(pageFontRef[1]); + expect(objectBody(docData, drFontRef[1])).toContain( + '/Encoding /Identity-H', + ); + }); + + // Regression test for https://github.com/foliojs/pdfkit/issues/1096: + // a custom embedded font applied to a form field rendered with the wrong + // font in readers (e.g. Adobe Acrobat/Reader) that regenerate the field's + // appearance from its value, even though the same font renders correctly + // for ordinary page text. + test('embedFonts gives the form a font readers resolve field text against', () => { + const docData = logData(doc); + + doc.font('tests/fonts/Roboto-Regular.ttf'); + doc.initForm({ embedFonts: true }); + doc.formText('field1', 10, 10, 200, 20, { value: 'Hello' }); + // Also draw with the same font in the page content, so the test proves + // the two usages embed independently rather than sharing one font object. + doc.text('Hello', 10, 100); + doc.end(); + + // Locate the AcroForm dict, and the font object its /DR references. + const acroFormIdx = docData.findIndex( + (item) => typeof item === 'string' && item.includes('/NeedAppearances'), + ); + expect(acroFormIdx).toBeGreaterThan(-1); + const drFontRef = docData[acroFormIdx].match( + /\/DR\s*<<\s*\/Font\s*<<\s*\/\S+\s+(\d+)\s+0\s+R/, + ); + expect(drFontRef).not.toBeNull(); + const acroFormFontBody = objectBody(docData, drFontRef[1]); + + // The AcroForm font is a composite font, like the one pdfkit uses in + // content streams, but addressed through a custom CMap instead of + // `/Identity-H`: Identity-H has no character encoding a reader could + // resolve on its own, since it only works when the content stream + // author (pdfkit itself) already knows which glyph id corresponds to + // each character. + expect(acroFormFontBody).toContain('/Subtype /Type0'); + expect(acroFormFontBody).not.toContain('/Encoding /Identity-H'); + + // The font actually used to draw page text is a different object, + // untouched: still the subsetted Type0/Identity-H composite font. + const pageFontRefIdx = docData.findIndex( + (item) => + typeof item === 'string' && + item.includes('/ProcSet') && + item.includes('/Font'), + ); + expect(pageFontRefIdx).toBeGreaterThan(-1); + const pageFontRef = docData[pageFontRefIdx].match(/\/F\d+ (\d+) 0 R/); + expect(pageFontRef[1]).not.toBe(drFontRef[1]); + const contentFontBody = objectBody(docData, pageFontRef[1]); + expect(contentFontBody).toContain('/Subtype /Type0'); + expect(contentFontBody).toContain('/Encoding /Identity-H'); + + // The whole point: the AcroForm font's /Encoding must be a custom CMap a + // reader can use to resolve arbitrary WinAnsiEncoding field text to a + // glyph on its own -- built from `this.font`'s own character coverage, + // not from whatever `this.subset` (the font used for the page text + // above) happens to already include. + const encodingRef = acroFormFontBody.match(/\/Encoding (\d+) 0 R/); + expect(encodingRef).not.toBeNull(); + const cmapObjectBody = objectBody(docData, encodingRef[1]); + expect(cmapObjectBody).toContain('/Type /CMap'); + const cmapStreamMatch = cmapObjectBody.match( + /stream\r?\n([\s\S]*?)\r?\nendstream/, + ); + const cmapBody = zlib + .inflateSync(Buffer.from(cmapStreamMatch[1], 'binary')) + .toString('latin1'); + expect(cmapBody).toContain('begincidchar'); + // 'H' (0x48) is in "Hello", drawn as page content above, but WinAnsi code + // 0x21 ('!') never appears anywhere in this test -- the CMap must cover + // it anyway, since it isn't built from the glyphs used so far. + expect(cmapBody).toMatch(/<48> \d+/); + expect(cmapBody).toMatch(/<21> \d+/); + }); + + // Same regression as above, but for a CFF-flavored font (OpenType/CFF + // rather than TrueType). fontkit's CFF subsetter always emits CID-keyed, + // nameless output, and a naive "subset then embed" approach still leaves + // the AcroForm font unreadable by a viewer -- the composite font with a + // custom WinAnsi CMap must work for this font format too, embedded as + // `/FontFile3 /Subtype /CIDFontType0C` rather than `/FontFile2`. + test('embedFonts resolves field text for a CFF-flavored font too', () => { + const docData = logData(doc); + + doc.font('tests/fonts/Montserrat-Bold.otf'); + doc.initForm({ embedFonts: true }); + doc.formText('field1', 10, 10, 200, 20, { value: 'Hello' }); + doc.text('Hello', 10, 100); + doc.end(); + + const acroFormIdx = docData.findIndex( + (item) => typeof item === 'string' && item.includes('/NeedAppearances'), + ); + expect(acroFormIdx).toBeGreaterThan(-1); + const drFontRef = docData[acroFormIdx].match( + /\/DR\s*<<\s*\/Font\s*<<\s*\/\S+\s+(\d+)\s+0\s+R/, + ); + expect(drFontRef).not.toBeNull(); + const acroFormFontBody = objectBody(docData, drFontRef[1]); + + expect(acroFormFontBody).toContain('/Subtype /Type0'); + expect(acroFormFontBody).not.toContain('/Encoding /Identity-H'); + + // Descendant font must be CIDFontType0/CIDFontType0C, not the + // TrueType-only CIDFontType2/FontFile2 path. + const descendantRef = acroFormFontBody.match( + /\/DescendantFonts\s*\[\s*(\d+)\s+0\s+R/, + ); + expect(descendantRef).not.toBeNull(); + const descendantBody = objectBody(docData, descendantRef[1]); + expect(descendantBody).toContain('/Subtype /CIDFontType0'); + expect(descendantBody).not.toContain('/CIDToGIDMap'); + + const descriptorRef = descendantBody.match(/\/FontDescriptor (\d+) 0 R/); + expect(descriptorRef).not.toBeNull(); + const descriptorBody = objectBody(docData, descriptorRef[1]); + const fontFileRef = descriptorBody.match(/\/FontFile3 (\d+) 0 R/); + expect(fontFileRef).not.toBeNull(); + const fontFileBody = objectBody(docData, fontFileRef[1]); + expect(fontFileBody).toContain('/Subtype /CIDFontType0C'); + + const encodingRef = acroFormFontBody.match(/\/Encoding (\d+) 0 R/); + expect(encodingRef).not.toBeNull(); + const cmapObjectBody = objectBody(docData, encodingRef[1]); + expect(cmapObjectBody).toContain('/Type /CMap'); + const cmapStreamMatch = cmapObjectBody.match( + /stream\r?\n([\s\S]*?)\r?\nendstream/, + ); + const cmapBody = zlib + .inflateSync(Buffer.from(cmapStreamMatch[1], 'binary')) + .toString('latin1'); + expect(cmapBody).toContain('begincidchar'); + expect(cmapBody).toMatch(/<48> \d+/); + expect(cmapBody).toMatch(/<21> \d+/); + }); });