From 8d958730b7d5902c08823f41c6ddd0b15d536cb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=27=C3=A9lectron=20rare?= <108685187+electron-rare@users.noreply.github.com> Date: Thu, 9 Jul 2026 15:27:26 +0200 Subject: [PATCH] docs: index visual sourcing, track roof model Two usable STEP files (desktop CNC GPL-3, C-beam gantry CC BY 3.0) and four CC0 Kenney furniture meshes made it through the account and bot walls; bus and PV models did not, documented with the fallback of procedural modelling. The roof concept FCStd joins the repo, stray agent-download HTML files removed, ignore rules fixed for the visual library subfolder. --- .gitignore | 7 +- .../freecad/lib/visuel/INDEX-VISUEL.md | 176 ++++++++++++++++++ 20-conception/freecad/toit-concept.FCStd | Bin 0 -> 52160 bytes 3 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 20-conception/freecad/lib/visuel/INDEX-VISUEL.md create mode 100644 20-conception/freecad/toit-concept.FCStd diff --git a/.gitignore b/.gitignore index 548c0ba..7224aff 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,10 @@ blog/.hugo_build.lock *.FCStd1 00-vehicule/doc-constructeur/* !00-vehicule/doc-constructeur/INDEX.md -20-conception/freecad/lib/* +20-conception/freecad/lib/** !20-conception/freecad/lib/INDEX.md +!20-conception/freecad/lib/visuel/ +20-conception/freecad/lib/visuel/*.step +20-conception/freecad/lib/visuel/*.obj +20-conception/freecad/lib/visuel/*.stl +!20-conception/freecad/lib/visuel/INDEX-VISUEL.md diff --git a/20-conception/freecad/lib/visuel/INDEX-VISUEL.md b/20-conception/freecad/lib/visuel/INDEX-VISUEL.md new file mode 100644 index 0000000..c59fc9c --- /dev/null +++ b/20-conception/freecad/lib/visuel/INDEX-VISUEL.md @@ -0,0 +1,176 @@ +# Index des modèles 3D visuels — bus-atelier + +Modèles 3D destinés au **rendu d'images FreeCAD** (pas de la CAO exacte). +Tous les fichiers ci-dessous sont téléchargeables sans compte, licences +vérifiées. Import FreeCAD 1.1.1 testé (STEP via `Part`, OBJ via `Mesh`). + +Convention : `lib/visuel/.`. Les `.obj` livrés avec un +`.mtl` du même nom (matériaux couleur plate, aucune texture externe requise). + +## Fichiers obtenus + +| Fichier | Contenu | Format | Licence | Source | Taille | +|---|---|---|---|---|---| +| `cnc-3d-printed-desktop-3dthat.step` | Petite fraiseuse CNC de bureau imprimée en 3D (structure axes X/Y/Z, chaîne porte-câble, support de défonceuse) — proxy réaliste pour « petite CNC (3018 / fraiseuse de bureau) » | STEP | GPL-3.0 | [github.com/3Dthat/3D-Printed-CNC](https://github.com/3Dthat/3D-Printed-CNC) — `CAD/3Dthat_CNCBuild_STEP.zip` (branche `3Dthat`) | 58,6 Mo | +| `gantry-cbeam-cnc-mill-v3-opensource.step` | Grande fraiseuse CNC open source à portique, profilés type C-beam + chariots/galets — bonus « gantry avec galets/chariot » (machine complète, pas un profilé isolé) | STEP | CC BY 3.0 (D. Koch, S. & S. Schütz) | [github.com/Sebastian-Schuetz/OPEN-SOURCE-LARGE-FORMAT-CNC-MACHINE-3D-PRINTER](https://github.com/Sebastian-Schuetz/OPEN-SOURCE-LARGE-FORMAT-CNC-MACHINE-3D-PRINTER) — `CAD-files/CNC-Mill-v3 v20.step` | 19,1 Mo | +| `douche-cabine-kenney-cc0.obj` (+ `.mtl`) | Cabine de douche (receveur + parois) — proxy pour cabine ~90×90 (à rescaler dans FreeCAD, proportions natives proches d'un carré) | OBJ+MTL | CC0 (domaine public) | [kenney.nl/assets/furniture-kit](https://kenney.nl/assets/furniture-kit) (Furniture Kit v2.0) | 72,4 Ko | +| `etabli-base-kenney-cc0.obj` (+ `.mtl`) | Bureau/table simple — proxy pour la base/plateau d'un établi | OBJ+MTL | CC0 | idem Kenney Furniture Kit | 17,4 Ko | +| `caisson-tiroirs-kenney-cc0.obj` (+ `.mtl`) | Meuble bas à tiroirs (cuisine) — proxy pour un caisson de tiroirs d'établi | OBJ+MTL | CC0 | idem Kenney Furniture Kit | 13,1 Ko | +| `chaise-atelier-kenney-cc0.obj` (+ `.mtl`) | Chaise de bureau à roulettes — proxy pour la chaise d'atelier (bonus) | OBJ+MTL | CC0 | idem Kenney Furniture Kit | 50,4 Ko | + +Tous les OBJ Kenney sont à l'échelle "asset de jeu" (unités arbitraires, +proportions correctes) : redimensionner dans FreeCAD à l'échelle réelle +avant usage (ex. douche → 900×900×2000mm). + +## Non trouvés sans compte — recherche documentée + +Un effort de sourcing exhaustif a été mené sur les canaux imposés (aucune +commande git, aucune création de compte). Constat systémique : la quasi- +totalité des dépôts de modèles 3D commerciaux/communautaires bloquent le +téléchargement automatisé soit par challenge Cloudflare/DataDome (rendu +JS, CAPTCHA), soit par API de téléchargement signée nécessitant une +session navigateur — aucun des deux n'est franchissable avec les outils +disponibles (curl/WebFetch, pas de navigateur pilotable). Détail par +cible : + +### 1. Autocar / bus interurbain ~12 m (PRIORITÉ 1 mission initiale) + +**Non obtenu.** Meilleur candidat identifié mais techniquement bloqué : +- **Printables.com — « CL1M02 - Long Bus Coach »** (id 1627545, + `printables.com/model/1627545-cl1m02-long-bus-coach`) : décrit comme + « handmade 3D coach with PBR textures and emissive LED lighting, + multi-format GLB/FBX/OBJ », licence libre (usage commercial non + exclu), fichier `CL1M02.zip` (OBJ, 1,29 Mo) référencé dans les + métadonnées GraphQL de la page. **Téléchargement impossible en + automatique** : la route de téléchargement (`/model/{id}/download`) + résout une URL signée via API après exécution JS côté client (testé : + aucun pattern d'URL statique GCS deviné ne fonctionne). **Action + manuelle recommandée** : ouvrir ce lien dans un navigateur et cliquer + Télécharger (aucun compte requis d'après la page). +- Free3D.com : bloqué par DataDome (JS + CAPTCHA obligatoires). +- Cults3D.com : challenge Cloudflare (« Just a moment... »). +- Thingiverse.com : page produit ET endpoint de téléchargement legacy + bloqués Cloudflare (`cf-mitigated: challenge`). +- CadNav.com (accessible) : modèles « Luxury Coach Bus », « Motor Coach + Bus » etc. disponibles en **.max uniquement** (non importable + FreeCAD), licence « Non-commercial ». +- archive3d.net / free3d.io : page produit en React SPA, lien réel non + résolvable en curl ; formats limités de toute façon à .3ds/.gsm. +- open3dmodel.com (accessible en lecture) : « Marcopolo Coach Ideale + 770 » (Fbx/Max/Obj, 1,0 Mo, licence « Personal use or Education ») + repéré mais bouton Download purement JS, aucune URL de fichier + exploitable. +- GrabCAD, TraceParts, CGTrader, TurboSquid, Sketchfab : comptes requis + (Sketchfab explicitement exclu par consigne). +- GitHub : aucun modèle réaliste d'autocar trouvé dans les dépôts open + source explorés (simulateurs de transport, projets véhicules). +- Wikimedia Commons : 0 résultat (recherche API `filetype:stl/obj/glb`). +- Kenney.nl (CC0, testé car-kit) : uniquement voitures/camions, pas de + bus. + +**Recommandation** : télécharger manuellement le modèle Printables +CL1M02 ci-dessus (le plus réaliste et le plus libre trouvé), ou modéliser +un volume simplifié (boîte chanfreinée ~12,0 × 2,55 × 3,50 m) directement +dans FreeCAD pour la mise en volume en attendant. + +### 2. Panneau solaire avec cadre réaliste (~1755×1038×35) + +**Non obtenu** en tant que modèle dédié panneau+cadre. +- TraceParts, 3Dfindit : bloqués (SPA JS / 403). +- GrabCAD : compte requis. +- CADdetails.com : challenge Cloudflare. +- GitHub `Tjoppen/solar_stuff` (AGPLv3/TAPRv1, FreeCAD natif `.fcstd`) : + contient des **supports de fixation** (`solar_mount*.fcstd`) mais pas + le panneau lui-même — non retenu, hors cible. +- Kenney space-kit (CC0) : pas de panneau solaire architectural. +- Fabricants (Jinko/Trina/Longi) : pages de téléchargement = fiches PDF + uniquement, pas de CAD 3D public sans compte. + +**Recommandation** : c'est un objet géométriquement simple (boîte +vitrage/cellules + cadre alu en tube rectangulaire sur le pourtour) — +plus rapide et plus fiable dimensionnellement de le modéliser directement +dans FreeCAD (Part::Box + congés/tube extrudé) que de continuer le +sourcing. + +### 3. Siège d'autocar/coach (posable ×9) + +**Non obtenu.** Mêmes blocages que le bus (Free3D/Cults3D/TurboSquid/ +Open3dModel tous inaccessibles en automatique). Kenney Furniture Kit +contient des chaises mais aucune à dossier haut + accoudoirs + ceinture +type autocar. → sourcing manuel navigateur, ou siège simplifié +(assise + dossier + accoudoirs, ~450×450×950mm) à modéliser une fois puis +dupliquer ×9. + +### 4. Découpe laser K40 + +**Non obtenu.** Dépôts GitHub explorés (`MKme/Laser-Cutter`, +`haqnmaq/K40-Laser-Cutter`, `daniel-thompson/laser-lab`) ne contiennent +que des pièces de modification/accessoires (buse air-assist, axe +rotatif...), pas le modèle complet du boîtier K40. Cults3D (tag « k40 ») +bloqué Cloudflare. → modéliser un caisson simplifié (~600×400×250mm) ou +sourcing manuel. + +### 5. Imprimante 3D FDM (Prusa/Ender-like) + +**Non obtenu comme modèle complet.** `github.com/prusa3d/Original-Prusa- +Enclosure` fournit des profilés STEP réels (`Frame/STEP/*.stp`) mais ce +n'est qu'une **enceinte accessoire** (extrusions du cadre), pas +l'imprimante elle-même (pas de gantry, pas de bec, pas de plateau). Les +fichiers CAD officiels du MK4 n'étaient pas encore publiés par Prusa au +moment de la recherche. Non retenu car ne ressemble pas visuellement à +une imprimante 3D. → sourcing manuel ou modélisation simplifiée +(caisson + portique Y + tête d'impression, ~450×450×500mm). + +### 6. Réservoir d'eau ~100 L + +**Non obtenu** sans compte (mêmes plateformes bloquées). → cylindre +simple (Ø~500mm × H~600mm) à modéliser directement dans FreeCAD. + +### 7. Chauffage diesel type Airtronic 2-5 kW + +**Non recherché en détail** (temps insuffisant), le motif de blocage +observé sur tous les autres petits équipements rendait la probabilité de +succès très faible. → boîte compacte simplifiée (~300×150×150mm) à +modéliser directement. + +### 8. Extincteur poudre + +**Non obtenu** sans compte (Free3D/Cults3D/TurboSquid/Open3dModel +recensés mais tous bloqués). → forme simple cylindre + poignée +(Ø~150mm × H~450mm), rapide à modéliser directement dans FreeCAD. + +### 9. Module batterie rack 48V type Pylontech US3000 + +**Non obtenu.** Cults3D a un modèle (« bateria-litio-pylontech-us3000 ») +mais bloqué Cloudflare ; GrabCAD nécessite un compte ; Printables n'a +qu'un support/étagère (« Pylontech US2000 holder »), pas la batterie +elle-même. → boîte rack format 19″ 2U (~442×410×89mm) à modéliser +directement. + +### 10. Bonus : oscilloscope, poste à souder + +**Non recherchés en détail** (temps insuffisant après investigation +exhaustive des priorités 1-6 et du blocage systémique constaté) — même +motif de blocage attendu sur toutes les plateformes commerciales. À +modéliser en formes simples si besoin de silhouette dans le rendu. + +## Synthèse méthodologique + +Sites testés et confirmés **bloqués pour le téléchargement automatisé** +(curl/WebFetch, sans navigateur pilotable) : free3d.com (DataDome), +cults3d.com, caddetails.com, thingiverse.com (Cloudflare JS challenge), +traceparts.com, 3dfindit.com (SPA/403), printables.com (téléchargement +réel via API signée post-JS, lecture seule des métadonnées possible), +open3dmodel.com (bouton Download JS-only), archive3d.net/free3d.io (SPA +React). GrabCAD et Sketchfab nécessitent un compte (politique du site, +non contournable). CadNav.com et 3D Content Central sont lisibles mais +n'offrent pas de format exploitable ou requièrent un compte au moment du +téléchargement effectif. + +Seuls deux canaux se sont révélés fiables sans compte ni navigateur : +- **GitHub** (fichiers commités dans des dépôts publics, servis via + `raw.githubusercontent.com`, aucune protection) → CNC + gantry ci- + dessus. +- **Kenney.nl** (assets CC0, lien de téléchargement direct statique, + seul un bandeau de don optionnel à contourner) → mobilier d'atelier + ci-dessus. diff --git a/20-conception/freecad/toit-concept.FCStd b/20-conception/freecad/toit-concept.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..8123354732a88ea05d9bc8fcdbfbb262c7655351 GIT binary patch literal 52160 zcmeFa1yoks-aSkU(g@N>gLI2XHv*E<-Hmj2H=>f#NOw0#2!e#tCDPI*UEh8H&(U*_ zzW4q9_ndpjdmV!@p0zi7@3r=Rp5K~l{q~%5NsB{5p@V^e!GhJ>FRNieyIGao0t4f6 zfCNJT_6l0++L`NH*wQ(go2^exJB*7)H*X)DVyF;QG8^KklEHzGk=lH)a<1(oPc*9= zIQdNCV`iG5iAWr@R5Z@Kd*_QLn>Q07ytFi5S4{5+GBe|1G~J-kJ09`FWX!q_8Ti zmiwENZD*fH>Yz;cdYtYNXhfu+?-1Fgx$mpd+d^WnM_eRj^v;v7?D^lhkhN))a^7AE zVqN0IHw?N!k+hiIUh`Utc)7M}e6DSX<`!6XXvkW%m~n5;(VBV9ZfV-ie}IqUWMnrh z>nO5LrnF6Xn_Y4?Xjhg;j@7i6e$I$NtTe{@AlAd7->I`*{apcb;PH0ZIL&l&sfWHu zBfkE06INIfr!uF=ozg{#50r_Il7?^!H}e>bMjnX^pORslZ4b6S{kZ~fn`aBIfzAUopFWOeg>-(H3rl-l&@dM^M;TT(t<0^X zuw^)Aavx~BYA#te_KuZLX&MWHHd)1A8EkHI7F^(P;E za*0HGR{jwiiDR3xAgPvUYp+ z=;hiw{0N>l^;WZw7pKQ4aI^|dj!$+Nk7%*mr%2;zJ+jI+AC=kC+ty-cE;qg2zL{<`zg_~{oLy}a~}8b_8*cP@6WZPs|z*c zA5t~0kJZ-h@=xuk7WA9f1f1zLNwFo1PB&d_ukGGhI2g#NW4ER-a?;Mj7)l@ATjf)& zSe4l=RgK^%Xl{C^u$?lL{c?&>tk06dcyc;+K98@m0k>}?CrbI)D)P<9So9iQpBenV zHHTQhnX;`t8-diOXxerQW0ptP{>Km?@)4JA#9gX^tj!LzfZD zM4s~t`gX{C=*FYXU7AeU&J&v~W+`TzX^x0zud5zy?(E9&?2GIo*A9d|5aT(yNF-@W zAa5A+pK@ZwM^5ZWq?tIsbMf-5uZarEP?@Lk;cA)BBlo5*wu8hx+kh&H-r)KH8ip7i25Rcc_e@DseC-Jnd_q^xBg(K+8)qtqJs|4`ZcNm+r&FD6#d;F#YAv6Lz7O#w_{vBOPPp%Pa zU58Z|mGR|A?$rmC$<>w#s_IeoGJE`yq5{sFr;8n5LP^flN$R$<@6{JL&T2qC=CLXg z+BjWACvmu_E)c@GV{;HOu9C6M=x`Bxy*a9q@s^P~x%yt)hLu|S!(7){jR@A<%r1(J zJ*D*E>&;wXQ^;)Z)`3dK5u*b)a8U(rE6q1eh9gE?J|i`uG#-f#F{GQNc~ulrjkxZ) zQ|jgDm8W6{%00*vtXapfNBVl)5(87FSQS{p>&&4l26OAI@0f5slC|sg*H#0DiJDe>3@@l^pG;+lWXpFY(4~E0cyZHd0OJKgrYyE)ZT*KIiB~_{d)Z2CLcoAFGopS?MPnMro!0D3}NL8l>x_8Y-(mLm~C0Xtj@GkQ#ykf zDUX8B)BF@aY^}WquQp&pm+$Uns?z5-L@%9*p$;6NuQG7C@%UD> zZ@heWJeFy-?O>FbOz(2YcE0GiUG7q}DiklAn6S`yyQt)F%YXY(3=i$OtknzY8HzeP zT#I*&qoWSnxtM+NTOS3}>kQr|j^l9h7*#x9g~s&=Q(^aazcss^_u7srkZ0mnG506e z{uM;tI!mK&d;dmCO-&7qZ^M`jnZ`lz5NX+QtNw1&FmY>#Btn5&)6R8;LdchzxI z#@;$9<;O|Yens)S8}{9E7o(?#7uBi+imC($m7E)WI2j{%JW7t1Evqsv?8T2QFG{Qq zeR>9tY*}!^2MX}tEe&)lvsxx3Ps&x=B^B&+b2&AA(R9NJn|r&)qGDgF>LQ!kpgR$_ zY|OZ`Ta=GgGTnVbl*CG7krd_lB=MtJ_uR=xhKHERR+@fcKA4aE+%>rR! zO$*@>i(6)~ELHSdxYX&_IOsSZ@4r-jHEw?JNiJbs@*_fBzy$kRa&H}F!`pqgv8v_h z%7UYb(pDzx&Gi#v%c;I?*P`jE)H*ZM=vTC5GNsax= zjRRv2#~l-yq%PiNwY8leOkc97_t{C6Qh&}{`%wSHgexw>-uga)`BZ12@PoEhD*HbA z#^m`2W1C4kaiyx9eQ}Qr6^ncF_8(U*YYyXDWT_*|S3Pbr({SDsE<>$poRG0{t=Swr zjhBe(&WOpVsw)qJdEi!Fr7rmR?W)JKjq}yOktYWaFbfZ=S41k1U6BxWC?jxEV6wqY zJaJ$@W~IPrdg0)uV$ZXoHS>+l=Nimy4TRvXJzG^=gQ2obpa=^SFU_i_4JqA(MjT$a zvF$Ttd|MC2N#O0RptXqK5hATz0)vKU9DxH(D}lN58Xe%4}Rjw zR2m8!tN?|=hezBWoFc#ng#r##n_;2A3x)EUkkKWOmzw|Rx(p2}V#jjg z&(grvd4WskBwzp~2GMtyyPr$Z0d44%@%5LT#F#S6X#i*r&{R+rKy!dw0h(h9+AYmpLkST~ zD1zFe@T`s)FD;aY#9N9QB9IUX)kvuSPaabW=&pe~o1sJjTK_(nml`--5*0!P)s_-y zY6>i+_h8RWpoB$gaJjpS0u!ipo|2#XOEq;1QCBAuF;qFw!dcMy_&0$P@C^{!l|cX{ zn4mEMpvk}~z;g?S0GfbO0Nh6ktT%cp&%2M4hb^zL`2uEP*&)I`Nkpd#Kf$tl^XahR zX;-}9MeEAM6yrsk7xliW?qd(tgh~Co7D~lXG{6H3iB2&R zr%cuW_D1T$HQvEFeGNl7GjkU>7>o=y18N-2mh!R&Y41Tqc%TG4f@f%#r%-}FWWV_^ zg_f_HtUub5tg{R%q7n)}7^q7LBAU>y)f*_m1SyvTyM1?-+tG@l?nn1a2iK7S-$=fk zw}>im6Oq8B{`4kjf4d2UWtFy z#Jb8?;Q3R#hg-(to@h|A5aw_k=np;7QlKdLR{WuX5&~M881PJi}FJu z^c5l=v&Mf&2o(?fMt#AEcwtdMzfqtBJdp?#BO%IUHCS-|NPbv860_v&CwmM2g~&wm z$#fIGyqFNagyAThu-XJSLFWNmz%Laj0l!odC}e)h#OpI9c^(XvpAIS7zg^^m9m?uv zBXR^C9ERfh=cnHJ{nW0<<`EZBGhlXl6DY0--~x_X0-xWcf81hg{EX0%4(G~%?1%gb z@(_$WvR29q`TW%NQ{GnKMvkKgrWgM6o_yJLHdnAaqBA~mc*Vpa(LOF&iv3_LN@;wp zQ=6{UcW^?v)zrw6XW?TWP_9VNgWcyviiFHLL7)Fb9qB`2>oX|~!AY5*c8&&VPuPjn z($9LB7p}p(`nnaYWrZ^Y2tDLe2dv@Xs085bKXy?`#7}Ou@4N;2M&CJU-%_5>uq2%9 zBu_|$u=sFDC_zs<6pW-9mI3s%ffDev!%)$CKs^+&*BdK!A%LI<_C_{IcW{c4FfVG` zU5Fl74)n`z5S?$u02(L(zrQS47Lu!e5HEnZKa?;Y)kxSAHG|PxgxMR(4^;~a3tSlJ z0=<9|&@Y2_1D$LOP%EDBmfEXo<`$xr&QfAW7LpX$S#&Q0AnZWB6wqtgm3adt;G2{K zei>KYRJZ_eag-jQ#%9w*Lr6YoJHB@C@{Qb)*8V4>SO7NehZEwEvEQ zrG@Lvhwu~uFDOEAQ7|Cv6g{B`fw04kEFOQz3#UH-4|Iywlze`vbrnRfr$0XZRF&#` zBi(l)=e7jct$A$-b)ZuKO3hFVpiTiO0bfcG+!s)%5DP|*cZ2-!e7_O+Cm4Bu92j|L zE0mBSfK8y|!6kr>0URg+9fOW{8Z*#Qy#@|MAum7ePiLM%@zcYC0oAp>l9<10?{Gi9x%s?i#iQYRJU8&({Y%%1&Zy8Mr2t4siaT zJ*cmz01v7^ju7wGXW-y@ZGPTAeMrFWtM+&kN^A*4xRB#zMCR)Pdm&;8QGiqb@wO#_ zM|bsHXV@8l*3SU91RM-~>w^^wPmo4`%r_mbVu~*h4_P^qN6nY^yF^t_!O*(M?;R44 zv@m#E6>2h)WEYQ(zJaBh{1}xY?HeHDJEVMDpcy4vJa`0w3=3i%2u@&=0SW;WoInZq z9T;8(r@tprAfvDSW%qeBWX3wd?Jw=tXod^n28-p*F0jSm>qH40qXldMeF0Dc`hq?b zPJ~ojYewL5!9a=R4hUNfT`-xqUI_z)8S=;)xEiS~<TA%`s8Y~EZ!Z#>5 zx$E20On52bX1LxFKpp%DGfd}h@n4)Lk+o5SL6riB0l`jmdW5LGORio^JYR`M$v^fb z4H>3sKgQ@PBfljnY1 z4!bZA0@??anvV?57fB5}i3rYDd>1xkvp0>!`TXnr*BF4zB$OVk_cd5OmH;>;R zLV$tAk${0=0;xS~OFJ`dLw!wMOY0{#baF=8PxR?@te;FNsauXSpt~IuZOySoza6nh z+fm{>C^vq_J7pvIAlO&5UF6mI$^8*%RBay~QT`i&!cX1YHt#PbP4WvnJbOQNnDi(w z#zeVi`ZJ{Kt7L=Z!ASHZ+wihLol}nE#@nWHeja zNydV`K3pVqY9&xZ`lPnG{4M%;X<=d{MCqVa#j*y3Ra~usC0yLr^C^N%#`XgQBls7P z=C;w!SqeAro4rTdX*qX z{gYMAyk%#Z!o|9UlcwfS3H#Ni1qm*)Qto!^J%L)B`?^t~cWal1*J$^W0=zDgHWRw) zHjkEkRK|lko-NPUxXKXFlR7zaoVLK8&^~IqAOF&`n4|V4)QUi(?+wEk;%Oc5$- zu!k53MiliPrTw9(qZsktb7^7y6kn7(8id@K4ACx#-NBPbWv8h{3X3#(#Uo9Iqh^Ui0So zPSrc{cVLaUj@hkNQ?GZZc-wRD9>@i3y?BPOcRvh`{b;g3qGm8=g=TP>;ml2n=4I9@l&7^BgTl337) zXvav)_z42q{l(5gx|rmJ*n9UEAB}n%zS3G2JwYOn*r_{DjK^}ld+VcL=aZ;C`I|6N zrsm|eej%-sI!j7y>;yP3i8?&jKEXjo8j@s&1;%OTwxHWtuMrBn@VAGC{?&@5Vh0dM>uRo3@Kq)~n8E$Q@PQAkgk($md$n&}l}AYz&a8cEAIffmp+}&m)aJ$I7IKmMp{5N7pkTRr`Y|M4x+J=@@ z>mZrH$^8{Oj3josZjJLVMc%dZL$Z6mXC;BtXNt?c9zMKk0Z-_g0kBj5fb&Cy^!{nLJlKx+04r%%a*MNF}-V~)|RL? zQm|v3yn9GhmZ@i&?K|cg`E9Cws)2Jr3Om9!}VC8^azuaqdhRZa53G3AT2v zp?8@wmo*~vE&UE$!4Efw8gpx18h2g$IrE@7Ym&K_=s7<5ks?b4SfXh+wXN2*J0qYd z=$K;lH_eON7}+BoZ9MJAVHrAJG3M>&afh}sx$V@qc)TF)f4BNH7B)u_(YJr|WBDk5 zr_UGW!O`xj^~aUec=OeZ;#8+gim(u*qQbY(P4Q8+U@-I&pLYol^BEk%#@&~zM?j;7 zM|a4^wIHRt-Q;kw*{%^*TJs@1NNaQ!Wt#cr9_>i2vZ|04?1>X5AFxNX)#X?dk z?QS@}*=HDZ4BoP%FGtmaev~)ig$#-f@L2l?yiphekH`H4#=BIOn!b-8;+$}2Q2Z$V zD1I3K1LB8UNp0vxkRnC}>g!jzx?v8hBNXS=scLB1bEC!PpTnKjd2cS2O>x1(*ooCFSZLegZoAw zZs!!y-{*{)4A0kj#cE7)v|hhI%3+$i+u0Vf#;J9nVC%r;$MK9i>YUBhWBJ`9;)C0a z2fmR#kn)>PPHvB1Jf@jmY=0<0IpJ|$Q>#h8Gvr$3dXXISblKvJB6*oYU_48Pu2D?! z-n&?0-FP6Cy|3Wdhv|8tv7VP(xAdUzMo*ba^Rts>oAWeC4bhz~+e32HeewE6)%*@H zZL&&#@H6p7mH>mL$V~#c0zNq)BMDP}I;Y5xW$^UCtWdL2FV?#|A}G>%h!^&3Lo$Tc zms6BSAgsZ4LPNiq@EXPa_U(Y`xGLE^uo3Nym z*D9cPMtD|d+vVUwV{M2sfqFd_)}Iz>o2ylM+PWa2;xQBq6v5WuI;QHNCS5z{d)=vQ zh*Q=yW6`w|1F<)ZZ>wQR8xtACeNN#~YCZ3TF_0nd2$A2Qw8QM4EvJB z&yK$Kx8RilXGxGsju4j*Oe>bwgE4(01Ia}T3+|I$q|TmEkZ*Sm|9$*u(Tj!r41XB^ zjrc<(>kh)7JtywZApAK*m$`xY3x9s$&wmpBa1~Kf{S1E?|Bd+bP5d-Jc8ffeml65v z;wS1~Jbt_QHGcbV7{5sZbG)D757WO9f1o3$vOQqL+>($vZfM|=a0?B-hK|V%XZ={9 znS40sZ!MM*uG?Cf`e3mF^6v8`wFxB%E4$<24NnQrpqU{?oB`K9-^%{`dJol81@QIV z@SeTd9ru^2OW!-5yt6Rij%*D7_)T3SHMcHxdsbuP+?J^IgVNv^!x>@oRlDQ5tNDJt zB)8~GcRi<6-%stKuSgt=9#3qYy<&b4G^yG)d5fP7S-PQhUDfD9vBWh2lbSKr?BZx? z#l4|Zad&FxOjAQRvu-chH8UB(I9a&nkX(I=K{q(mxOPN$Om&7!6YSijq9}JGX_NB~ zOP>k2)J9g{Q3#SF(c9L6nFPU6`t4(j5&}ry7o#{ZU+9lM;Ke5jG`f(M!$?*%I^*>3 zL}|wJV@RSeb@ym1QFaK=5Lowj%w1lr-@I|Z@F?o$#Sw-# z7+lnQsCE?*s8~K|Wr|m&PwgVHx%mxx(dm8Kx**!|SNw5-&6 z^L~c-$kJPVzkCOcrrntm-pUV_`Kej7u|L69SGjhq9+muDxpA)c(aAGuG1l;$H;hAI za)^(zR8+)RMco{+$MPyiZ%({ZlX4${FdUz_E#HPAV(hVz_NFBm2iiWB6$P;_QUo(9 zxRy{xJ-jwv<4DZT>9P8T5Q6U>T%lo;DYzxoX5D&2FCA1a8Gl`5*aGW;WO1je3KL_8 zy=`?&_0S6pyMSnxPLxP|Yb~%H(zIN{%xKkH(MG|#H*jmgg`oS*xZSwvWQc-W_@83u zV~ZeuDJO(NNNcp8iL5LgKBE7A{6^t1Z22?%Vfr`X&o}Y&ObFfJ!0!q)R7oF z-z^%lZRk|E#vk&!y=gN5f2_XZk3cZO@A$*rFs}I6q0b=+Io`0slVael&HlIfgO^wN z1L&*#0o!H%;LdOPgTpxmhO7nRr7^W8wYQY;blk$%_`^(_iDC`HpT!+X7mW3r@b@bL z{5iP7pVv@+Dk6@td``*~nOFED2*RI+wuhYUl6I|OZSAuM8y97xc`_`Dql{<>suJ5= zua&2n3ld7M@&}_Em~x=}0p5FoscgtrnGP=|q#l_~C!*f{6@LT~4)@?H z4V%ob@F%gC&M}wF6@)*un+aNxRmFPp1QRne8aj$V{!J3mIFgX?!F)5=yqMr)zEH#} za+(qvApd4`10AE;diU+FRnSct^xMJjw0hW8_@%7*Qv?S`=3a!)r876F#? zQ^^#4W_FWW@cp!aS{bK9>R12USx{=SUYFur^`B+o)Wlc=)g8rtG7EZ@^bc=Q^@~n3 zYU^|99Ef2~kD(^YrYk+~y*QZKe`JWsIfT}z-uY%H`aqJQQ&owHD#F~kI%f1T3+K-w z`b`$@jX#iuQ@Y)O#8wU&d{e9DX#QIk0&ObAeIjY%6;n(kV`|gH3-IsLa3vSX^Iy|& zKM0|pq0rwILh!d0_xNVzh0Fy5<%ddy>-JV}c}z;v!3|nTjFQ`S*V_~NS-&*J2_ejX zG%`*biORrO&mk-jzZutmnO;*h+2p!Fn++PczSA};bN9p(eI=+3vItq;zC_Jk;I=Uc1P3$x3S6AK*Y-> zB+|vZZ;>F^q1p|8{h~Lna78y@eB6cpG?3@^*zUk}=_tiX0p5`*k<;)y9?$X>k4Nj0$76cQ<2nD0 z#}mS10d1o~XPwlu*Zm^2^wX>^X@&+X3V+js0iByfH$L=9>(Wh^E50u*j?_({&v}xp zNdy~7h%F(VZRZ<+{XE7_hYDBuM%>I@CYwyhWio}?yBpH?CPmd~+&9m8LK<*{Z2a&^ zUKh6$HBzvzx@6ihR|YqGHbW9joaqD~cfX1yan8nl5zr)ybMlqP11|;Q@r-sifi+(8 zcotG$#Aw|e6bOo-_Dv4bE0dsJ2G5efJr>J!Wercr#EEX=fqMbUBH+m(G7NpP&24`n z?=$KbGpJVaT4B^c$7N^Yw$i}I@)Y7i_J=1nn5>J6@+)J1hEsM1=Qf&QZ4@$bL&?-}yd*cAb#(vD1c8%Qtu*n;CNFvSdX2mZ6i2mt zLL~dR1Lrq2gLDU@c0xbx?zk6vmsO!LjdwAJx@i@!aC6(%3KpVqqanZQXFRl5h5f0~ zrQG3Stxo2xSyS(w-8PVSjGF?={is^ir!kUKU(CvBPFpz=*5E6*i<%A!?<6>_m)H&S zFL?!Fj@EQ+6nwUDxoJo4MtEj^c>W;{A9{n9e*=y?!6p0S%sy@T#RJX8p4}H%a+MdS zrmX7prI&Qln3$(;Eza&G0CdvHuXNH#Vu9c3q*6uukB6pq6PJ7zm1#e{wcUBy@YxeH zijxz+QOx%YEo<}kDkHCwSAjO~MO0Bw>e&7H6A^yXe)-kBEO6TMYK(WrHJwguBlL<) zUEU!PPp|2u5+Qee@j!Ia8rK00p}H3SaC3l8>UKpZW#CI4MkO$i)))@DqLXHIzKffE z6{8fCRV^^}gv6@ku;Ju_X5R$82g5!Ts`YljVbZ7k&A8#7Q7Q;X2xLdIgOIx`^f5Z& zpHnU53CKEK@A?)0a4(-xSAlM+Yzoe5AA)vU z{u>?Jwtra!X;nZ^|OV{RH`tEaE5zS33AKF`sY=*?>D8Ktn zL>J*&*PAZZ*aH&Ll@L#dC^rt>VM7mepDI2^)<+_-ir>QB>mxMowc%T8#?@_m6-Zu< z5@(|GyQaZtHnv#ubF|YGplM(qVY$txlvr4yN=Twb+yF`?+==Z+`aYFVw`J^cl}g}P zBU(=ZQV9pwsf5dkkQ6ADUqiAQ0l( zx&$GTPjAn@-1m47eyOQ*eFl3%_Gp@xP1my+O|{kYoJ@0Epv$&Gb!bRzVDG!5ePC1_Gsa#K&JFG0wIe&6JI&x=bCl5>@MGF+v$ zYG8)p1@0xnS$Wcqz853TDDp-69u=~OKFfX(*D&2%c5-aYq&A0J1|=~b;I5ckl~!-^ z1gPm>%Vr0l-BE<)x%JjQPT@V|qqyj+RKmnnDxu=LR6@mND&gH9Qwik1rxF%Hsf6-N zNs!5vBuHfsluB6rE|sAAT`Gar(hihLctw`JGHP&@N|3w9n!)GoxfTgY5=nvj7?F`} zGQPMim)*WN6<>M~EUzc4uY-(AP)3Q8$%l2$2pZ5dc-@rIta~D=s=RuN`8^2LVab$z zeIfMcse~Vq68`28x=|SK)AlNuy!I~(q05=jzcPgSeudC~LkMA^#Z3Mjg?>a!_&Y+# z_}#N#DD(@3{A^n56+tym! zUf&i|fyLKti9v$v!aKyv21Dis4;t)jpNfafy_np?^eOyb&ZGNE^ z6zLP&_zm=$T|)O=(vi1bxW~I^@&xzfioR*jbWAK-T8MI`&uSN*&cBP|b~zIwAc=f6 zCVAXPSn_W7wQN13aJ?vtu&-x%5bJoM1|SZK2gE@^SK=T$$hZ@o@i%CJbIaXR;Bikn z2ixyDw|m=5*VMP2KOdP&DT&u8%ZM4-lffU~TwL?ickM_P?^DV=tQ;}KCAhm0r_xSk z`hidGzHLLXYhVE<)h6-kzDC`xKK-Ul5x8lgCJ$Q$il?SaODderyUcXcd`C@P?GyQG z!HoKKC&}F>L-k6%l_3WnR@iZ7iXOo^?j+gVxC^bA_eW}&{PiT>H&}Fk3_LiUz1W;; zr2N>BWLL=2gR}i;gQBlJB-{a{2Re5V80DJXlhk2`g3T*tMfj|_^NQ<>*nFJ`KW;zz zm-h0Gp*uV+FXIF14QB0o>H#ok;|^X$Lj zI6*jPP}k)crbE`n&%y7@8fg}zFO0X~D$i_e^K zrin33mq<+Ni;D7-=l9uab!(|-7T{Fd`5Kcs;!9BYTM5rqoZbgFak9G(;z0+6TYvc= z|2Bf7Yc<@OUW_n9_=y=;hwaDS4+rE2<2fkvPhsciRaH!SpJ|npn>4qX_0615&e+Qj zyH z$l!%Yy6dy1o{?Q0u|~`R*K|;*oYm{^-Oxu;)XOhbmA)X5V0;)qr`FH6{f2dxKMjr! zs!cL~#(r=AUGngAaR^DgTa|EAOoh0egBSz0wB8I!g_8gSAwW?5Wtt+5(GBXDm{=*N zDR9K0FY#mz^@BIa%BOqAz`M8FfM}7{d&g(BjiB21f8VIe$#`FBG0Mur8(vu zO)G3{OGS^JoO3~GH<*P13Q)B8>UE~MOhq@KZXWquG&!84IUYC<*L+|z9efZMs=1@6 zzR4fev2?cSUtHI|9Mfh1cjX@9F`o&FmJ^E0XnAHF(d}X3d%wWKnxJQI;Bjd1lOr}X z*=Z2zfTLR{m+;1WDN)@_%lJIC!s0+(T!3_NNAnh}G$A&PbT)Sj2||gYE&7XsG@q_5 zgctYuG@RpJIL0TeKvywgzTNzA;nHZ6uBL|FA~i7NJE?iU^76<8g&=UT+SSeQsSkzqC;z4BjXN2aR-lD zugyoh@v@d?kC|rQPN~A2IiqO;x`J(P)BtY+p}6OhV?vHff|vDsGUn1~gJiUB;VOhG z)_P9uJoe8Aaw5!&0+hS6MK3T54!eC?MS5f+KU0d(=RMv@58tUxpABa7hZ8wrJh;zA}PJ0I9GFi!_+S2;#N8HbT;WOm4fm! zB>si|y_RDl`vn;{%o>Z$ng`oz`=-v%x76p)((5>aUOwO%nFmiwwmL?NzQ|Ln@9BC4 zyxwuSuyJaN$Lt=n-#*6xlGFBkS+OfpP(y~&+^$hJiPXBHZ)j>q%*SxIlXwmfKpG$xA9Zo;xsUK^W+D|9*b=yR};56PPa%t8QkVQrNG zp^IJ4CC#lX5kQv!0A0u#5j%$?b0fQS*HuDwL#$9qo$s+`dPl*dI73>h>P?y{Vi(Ee z3o45e3o3c))zLA}dMd^&X#2lPMaru*_y6Khmof|lOQ>!FcqKNTCG%rbW@+wPgo6B6 zQ(5my-s88bBhpKaQXw6m4ZaWcL&1UB9_b2EI9+%>lfFnPYWqAr#^A+ic6$8=35VE{4X3?IENK z=&ViXDsZgtDFTD^g5H;WY@h~By)h_1pg*|oET z38B0hcmb&7W+Sshj{FIx5CxW<-no|vRmiEZ;D%MXVbdDK@?9k67m*68yMwjA)pJR9QF z1V&;J7hkdEY9uyrITG{L6aCRhjC?NU^l?XBg22{y#FGP~w7R?dS! zvEs(KZgtcV#*j56&|6m1sMekh8&mc4dL*WNTMp_zXe7q$HlU(k(?WdxCiHS7R?M4v z3>#q(*zk2EmXr#_ia324nv{*4`V(rKr>BJ{pjdg{{$d>q&YvvvFz!=+fZB-x4JZkH zLv8Ft$Uav4(P(NSmdh6f;TKZ#CH8mUFt%53p*196$!R3Qe>wrP#MP@GFJw|nmkvTp z4o7iEB%RP#CPQM^S6(qxT3anPNiY!gsDd{!e#6+qo{6m$|9YE6u7U+}Ax+#skG6-K zEIQ00&O+SLsYSsmax*L3;9Y?9V!I|ay~=jXjev;wbi(&C;Tj6xU`q}vjcOlLVpZ9f z^tb`>CI(RuyO{(MQtV9w-MnQuyw;YnksX6_6aQDqj6 zsq&L^>Q@CA10qPsasCA`A*%%93jKX6UuS5u2^7$o-Q3cVwX>!C?qySQpo{yN+YCO+7vN$@oWFUDqb!>TG&N3)pszmK9vQW4;mQ*)* zqlVQ*ykSZEQ`6E(=FW!8`B6%={p_|LhZCLV^A311f+VDAh8Fjb0f%sM3c~#GLI|&8 zGR+pBGV!N?1c3`q5~JM&yZ<=CwCm-HIl*epakW6&Kp_AuLycZ2D=P@$Z^K?TH-SB^ zff_Kjd)or>)Vu+p4Y)xP^9Jg%2$rCsX+()~kv*5erX*?$zzpp3L(9O_uc2rccx;Q( z9(&pde@?Uias=vE`hn)auo`mUkp9Z6GH(NS zg--s4u=Fac8F4<<^Ju3a>}Cf@WIOi42TB^y*-ESn?kgyb)={b4Suzk5$+*XiF~_or zejNCjO`AdfAPdCsM>js(KKZy@3ak&a=q;}OZakYVpSkKwqg%i_zShV0pA_*Lpy(uR z-Z2-nRG|p@!qN&7AkrX)^AUI8jSVgAl;Q1?cTB?JZsnuX;2TfB_7QU*X_C9;L$BXb zhl2g6H0j}MUh9G$!Kx=#v8ro$-7p;jKFsr2k@%e2U^`}Q<*1Cz5|3lk9);t#86i{R zfbY#bTbe_c3ysoA3q)89m9qORCItIA(1fN{{h<@~-kLP02QLD9UEVx>5Zvf{DAi8xLO2-NIyQOboZAaQMRQ z@iyk@G>p4h@z{7j?!2>dl_pMaV$H5Zd7gTQD_LK4S6jd|5hl+qr3M#MSb4`P&v}$8C4+0W%jnJlsmeDaImv(NxYQ&_q9PpvwM+9)tu! zQTY4VMHljNzh0upD>w01C|BoVS&~NBT*vVXMwZSgllNUjRkN8s?x}BMtKQ|_>mdse ziJEx&IKQ0SoU|!%gh17h)|Md7@oD0XwU5CYg;~;uA4EP(`)|@Gj)~2GBwkEHDRuH( z!MB*^KWW-onBde5g3~|g<54_V6{?KijNZK1Wn!8txX@$X)$9K!O%M&~$^X#=Q41G~ z;X4yV*5i0%-Vl%pq6*zkQcq8J%q4l6I768grKR3wKnI=(8AP6@pRNSR(@!Gj;^}j? zuF2Dq()o6Rp4jq{b}TQ#@_pWIp@PWM*rWLveZP^uh zy6}%Ch`9nf5v<}&;bL!u2)EaLSk1X1XB6U1!VuOe)a2_hiEUjBm!+XfI}vj8G&CIvQ*KMv0ZU`*;k zv>T=C;n_a~(07yn--lJe=iT=%I)ID84_tIaxL=Mt@r83gFSUoi;wCP8&%Y+vYzTeQ+l#pK$6{2Wg)7HMaAS&IHWTo-& zK%)X#=m0*VTDh;6;oSwe-j_vRv4r#hEMl08ujC> zjg%jR4qCAutXO-IEFYsdw4l+(tCal7dB5)VR_0FQ#K+Y&{uCABa`-W&k2{TUx1Hd{ z$rrwJL6rT5wl;2U+Je^o)di8}UNZNcm~0dw?bJ?$;m~xlFDw*L4+U-3TZnY^(|0w$ zpWbNRIdT3O0R2>Y@YlM4K*^%+s_sowGD_Hj%{80qw&etm2Y!}YtcoKclU9-BVHt;w zi@GxxaaH!JeCA}>hInu=+JG@-E|uDwft=BVIIYQ1mfqYT)XDYQ&<1(v!DOS~zQAQ#?; z!pcv!8PQ~ma9~rX6O9@DA|aOzvl(M7$McL7l{!m$V&tp)icp|LBN50c2RT|=5xTlL z7_R_`=r{F_MebJ@-ekaqH?5{6{HfNcPVgpN?{SjxRA|9vBCW%|DK_og`tD*N!HV$0 zOc7C-+gAYcqW}O%d2K-xY#O@W_~rJ_r3>#$YFh_JOCQLE_r(`axy)DYQFk@N=Kjou z*9vgqwV%;9Dje4WTzE^kj?CfnjV)DvbK%{kHu?PjsNO+BK0vFhElsm9`PZp;7#Nyf zf&%DA0Q6Jk!QU1@;B&d$qA$C$!(i$DIRWW1VB_}T%EpZpWaCB)vT^hO-NtSH%Erwf zWaB1qY2&uA#S5}=dpevQHh=Hh#trfoeX&gh$i{6SWaGwrZR2)xQq_0zmMh!AwT+uY zqiezvHDe}V;|7`l{RTjw2@utt5J|pf{Zd5x&FMl(kb3WzG7Uvi2Mr^OCX#ytnzDvKIV1W$oraP}VL1 z=yw5W=5IE<%76`TJoOroEuhW(Id2;0!zjg90CEHYP`k!C^p<*a!W(RQWRMMSD#1fn zHKJ3H4X=tAGP}OY%KyZh_Fv3J1Z;S3O+1^fY>wa0{LO}!u_?{}|4~4?zV(E@B#)YU zCG%e>ARW$(1OFKU{YZEK8o~Y5KJdL@r2yTAGDqr**AfVUvVu9PK?wBb8~v!+D4T5u zNI$ys(iB&mu<+6JIDRDDrG8ZRT0bfQ(vPNt^rMcy=||JA^`nj;{ixZsepC$5kCuFh zFMoP!f2|+Yn-#JrCzA%cpT8>){z&@Nn5G3q&^6sA{+cWBHGxB+M z(FPMjU-yH|_S^gf8Of<{G#br|O4VlwJ6JVkXLy?UQ3&~%;!~7X1HqWH30E`Z*-DX^ zT17z01N}%P<&@u*2VY5_Knek*JebM1tQqbZzfvBo?1#{Tlm|(lODyEU&vD+fd_RPH z#di)3dl^CZE|mvL$ogN0a6SEy8gXn0&m{azUb6kk5Kf#r2POxZp2TJ7HlRF+TYbB! z@=3yF;y2}il9Eh%GhI1Mnl|RnXMR~3Ow!zL8O4EX?+xG;kBnU(>N+JFF~*%2$D2!&=z_O#*J4R+U!`@H zMr?8|9k%&}S!T^myv1+o)7;VL_Lu|6HXiYAi#(<493kXmY%c0%w~vC|`V7YuJVu{r z9ov!Q@~E+g5+cae2VG$6?*-9q!7AbE(mfu0O_p1IWyQN?)hff7J$EHLSm*5;{Z{)% zIRB0I?E`z`|73;u5U@gg3*e7l=0{zm8_v8bf%1gkCSFawX2V}*&H5;M& zy0crTw@l`%6{76&W5~OEb$_rzdF7jA$r2fURohK#}e(AK5BVPvWmjYP7GKf z7S*>skPJZkmL!jvw~}^?@zV&! zXwq3F^r-wthlvM?>Ra;S$M&f>-Krn&y(YBOew)o%ncmvaR#=#u{eUHd@1f^xBqXFX z1?t>Q9i3`c8Nk6{7Nj1{2RRr3ODTlHk!A7+VdusPi+?um#R6&Hg#K(P63YIM>OVuE zABhewm2ZFT9LQH7ehZXD$dR)3x12&(_;B*GUare8^f|NBXV zkZQ`JpUr`OB02cW5hz81q2U(-{X(GsXarK(8@zNv{81L}r-FmOcriIT*(6{!1z|C_ zG-S?8H+cQO(hYv$U+e~-{L2mgzrhXufn!)E>~$I&q#XU`J?cN;UR(nrroS)h&ar|Jlgx_K8V;{GS-P zO-#pBa;_-H5v40J3=Zqwk)hKswXu$Kf$K=h$a`Q`WJi?LD&8TnO1MQzxOXNh*S6g z_!qE!c_wjWg7;@^gb*N=T>?*^Q)A*&P~6kDKVL;#oY`Q^C!}Wee1D0~SVD z57-Eg+B`LrwOsZmuGt97Yu;HZEmhZS1Q>vgAiPi_dHphVqdyV`?weHh=##H(1bbjj zMu3gL`8^wf6vRew1K0@W`USf@-?I@$A1V3&9EE1z{+xSY6D78+IF?W7G9yAL0>>tZthzA55Bi@TW`rayRvdy zE)FR70a>|WUR$|=jHtLSt=xnFD>wXNyJ5bsR&I$PE4Mw6m7Dq>t=#7J@yjprlp1?N zUi`+1oBx&*#|=;t97REtgvKjM0@vpfy!BQ)UW;LOs~QajZ+QsP`osWQpPpW#X)d&J&rB6fE<~fFjsmSmc|bb5#=Ry=21Cs~ z)ORpXnE$hbp^602Jnu2K$-9MweX0qJ+ty~gWEdN}rcmH$q(1*&duJX^W#9F2Qjro# zWGKlzXD;&?iiAuNA&E!`nG?zsAw(H6&z_JXLnU*W>x42UA#=)*yua(9%ekD+d*AQ# z-1mCddT#yGvg*6`;@W5buKnBl^W8@LD0uRa_jLXV6*JD!0|Mf5>z#daR-ApHnK)sc zPT1K8I0LUZ`%EF6eIi<*k%Xt{nK&?#pt?4a&{a*Hhjs@3HImR}c3NTGNWwj|GjRKQ zXJASc8s)~1M7hPlD7R=d$}Jy_a?4mjxxGPOsAjE4xmjbN+#Z#_flzLdkwKZJ_kc4n zK)I=YXkV>DLC}S&&`Wd`%7SL%Koug$7RH>3+XFevar~-6h?%%SDn)YKRp@s!34g;m z&PU+dN9`q%V=aBD7z=hY?y7ymy8Bp{;jYCZP2Z#9I02F@R#Ed=~{iD zcOhl_#O>nfccGM^zYym3&%4k+JjDMC4{=vBv&`CH0``vF??w~;j(4GTIaCV03mMeo z5oo8z=ni~XnDv*s#1^$V<}i!Z?h-RYk=wFI8im0AwszXZG0Iw^yGmfe?)E1_mO}4F z26eDtXUPsN*xg6*xOLJ)3w8(Mce*NxrSrd^b)TX>4HoQXxo;ANb%kpM6&^jqR1uBB z*EipHW&ho)Ua_uUy8XwC(oWj661MjELJM~4z1;^t#`P8y-yD&+)FZQ45irnx@sro-e`nq$-M?G zxtHjcT+}zHCHH~x0m({BE)w06JH6VH(*o0_P)m-<#{;t^mk+n(jzZI=>sxX~&~&K) z+>$#b^8OgwodjC2GqX=YyOU7#?7lzCjVhtmS2!!(yDMbOgHK^;P~+7uiS}Fdl}6Oi ze#0a5f*sgz`0#7L!TSEx2{RUJ(p%XZ9)%eFSUsa=B6)Ykqr+XI@~`VIOYpxGXax^&T^4s=udE$nhi z1i75bt+os8Oc*#z0&O_$~e3J~HhL%$nN_&W}Afp=M=S@xM ziy`);U>^C*5#6L;IW)4GLt@Ar+WV(>g#J6ndnlrhXqJ8@=bWN&O2@Jz)K3QGkVM;R z4&ftni2cv*2$3u?X_nK}sA`fl^u+rd%d}MiX7yX|T3!}?(|;^e=F5xYmcQQ-;+Xv+ zd+`8`BSQ!e(;f$z#1c9OZr4H9H-lOZ#qfMwX-4Tpk(21t-i*k}Fq37eW(erU=EH43s<=wJ^<;`Eg@}9zLc+HA|<=rMxx6OY1Omj>~&_H-Bl!C~Mdy zH0RUP!9}UEAQi{aiVhVi>VC;vc2lY)CB`=>s9Ue()#N{Z;aZO8=JF^nb3ATBoL;cW z5??JfeCP|JC8ryL|AKg>C1<@8YRO5FpY~p9$xT5mIcUNZ-IAj;aD!TMTQ{`iI)Am~ zI5)K97@?M&!mpOxzL6WW{(;bhsrf^lB=m&o-lD@Vzi&2oZ-ORFckLy+`popHk&3!! zF@?Q6sYBBAq|PzZ_;;qS!-7o1Z2Oem#EdCj=c%4K;oH!dmx>oolXLmHuua+eP6~ut zMOrXR^xmAnFiWzhlVLGg!taQ?RIJp%HR;99dz7bM?oqVx98awN z5pe9^HQWBWx+S#pKWMi7&>`#+1VmiJ@T|=z{BJ-+Z8U}l01+1pEyATS(C{dLhG#$m z5yx4Qo=!=`e#)EYkFP*e-d>fr(swwEO5&%RzNHj29U$&J$ zOkABR?em`Poic;dzqrAc*YS=gA`>7v0}wNPp>S!V`1L zJz3f6RQ@)o*%#9ch0_V8+q1#0_X+W+rI`IpZd6M@JM{K#$&HP>XiM7E^u&#DaJfEe zV#Qc)!ZUYuHI;sO06kTDPGITiNq6D;G+w)0do!ZC+iQros^y-i?&_tk5~BtdFDh*vN?QxJyd69e$4H_A2H`=ZL4 zDcJ+81^v7dSw$(cGf_mzG|fgoi%qB9Pg4Yam&!zzAkD9vaMImJQQ)Ov4wy!Gvx2N5 z`Ir)==bu)b!Sf`dSjnSjse;N?B%nV4V!@MZ{!qF6RxZ`OAQEjWmpif^!}InwM|`d6 zm`0FkfNdYMiwIw8sVG3a;dcwyKIuSUc%pX^-p^k{yr}}jThEph!GXKy>DqQ2dfj^^ zCPO0zAl}R_m|K5m&v5PON<*=@dFS-A_1uFfJk8C4721Y{{k$PN>6sN}5|il41huBa zgQxS+gtv@cBi+;AhD&2p=vBuHHJ>*y_SF~_6}I1JeQsjWaxJtYuClT?sasvoPVmu} z1z;#=TtN!@*Fneq>g_mW18&fX6&gw;u;Is4vGUeXfH{OvHV*Imw(Zium>!L+!b;&G zxI1_C8?Iczm_kss=|4nKx~Mbvg!^876F^o$@X)L?+u8vTF=dr1Vl-5IAo1|o8WJz& zJqnQmaUwI~e7F0Su3nXLNeJ)H(WNLLT_EZiemqRF6k((7ELblxzvw2x8~M?k@3qK6 zWz41))V{28Hv7F^T-qJ`(w8`u!=ZGcI#dOg>imHzBaz>zZspj>lCM-Ad(`HU!@^dy zE|sO14ruDAbb%`%@iWCD(nrHsR}pXN28Je{^`n=XPpanWwKj|{BvUhyOUpml~ zV$P=N);U^9LQ3&nCC4N}XyoA37(gOQ`e^UJDi+; zd+zbRdFrT%gdb8>{ifPnRet#&hI$(6EaQ01yQ+qq431WJz3Fkwj3>%$IyyhC(CCo6 zgMnJ(N?upKNWa8-#G7it>C*7JIU&!sDIO+gw~pmYL{Ihadnjk$#4~1w?6egxb;-rc zdt7BH+^Q;Lq~dDu)1L8FMsXc5@QKRWd*kvvSmZ_%5ycuz0#}HLP`+^K2>P`NqVwe- z)_iF?8NC}bUrKB!>E}1D_>&P=L>dhl`8?jRzZljT=jH$e>Fv- zimhQ|`LFy4PUuB0P*X07W_PAixAu%(KL*i5gDtk+J%3sJ^(p4p(#4;{I`q2SkHy4& z|2BMUn|GT0zvR z3y!C>=~MwfRA!AIIzSBbLs2`x+|K!_snK=RDj|r7c*t)-*H^B@{ZZvI9_I1v)AkSJ z5E1dWwFQHSh`|u~-ua7&Xc@l(5S8SZ?P)4z_hZ}n&Q|X1W*LejHA8Xs?j~oGy6QeV zy46g~pxi>6y5|YphKy2;=JTuy>Jx2?>bgITI+vf5nz1P2W4*ZZ6`e@pLjQ|C;zX4y zRgUkxn>RO(5S;0iF&(3^H&!Q%BJT(1v!^bu)oDVCRSCfmZ&xG;O?fLk6L=sfjr04~ zS|#H|-V-gHl!e~)Z8vnGe^*|{Pl)TR zFE5Rtyx4*Aa@ZY|mpZD60yp*=gD;Jqyc0SzR!6#cBs~U*g*$S8p4Xg_Z-&Z?nq98@ zN_jbhCWt;?EiWIS^75uX_Jf*XzRvCmjfXdfmX^^3(fF4xM2FNN^p4H995ip2wfbT+ z-7AKmnyM&T`~IkW`?-}xv$g7OEKJvEw|21H0U^RqU~x` z%HmvrwDhKovtF{Zq5EHxxjqX1l&Lj(oBuEq;O*)do@b8xl$r{Nh~$8`E7j<9iK1%H z*j{BB=G3pz&FS>fQ?E~R;1l4Jo)q~WIC7}+{=ekJ_`ZG4VL(ZSvUaBI)d+a-6{5Vg zL6kRFf+7-ruBa?x6x*r9muZa2Mg$p-dfEYSx^$&dxAf$IbYV!L)`-DRp{7$4IHN4k z%u}*sEPG6nS+&V^akAP+$~a5B_PeIOK%d-&&s9Bay!ul*g!e)Mk`ijwnRpvGrqYvi z9VlX%@Z)J7471zN2aj~kS#w(9};ywn+_+Kc} zx>8q|XFEranJy^Nps4jk#0^KWKTkx2*wh4wqu8G%BF;ibvHfz@HUsEc>+Rxfz%!eN zYor&P#cF6S=|E>ORd5zVGk0h)&tmw0%UO(ra-zV5{pg*saTvD?oyEFye}2^bBWE#? zEGpH!^Q&jE6*x6Gi%Ed9*h2_T4bEZQL9ST|J9=fV0?sg&@wgvsl+-Ljh zojU#_@BG2|vMIv3>IxN`xhAN#s29~44xwwyG^i~iptcx1PW(~nTe(}Q^>Ep(9tpEO z1p5Lkm=_gEqj&GP$!7)Vp^|kqLQw!hc`Y+4^B5}VVrsGmnOJbH3#H6n4V|w-%#7~t zK{pD!`C>_~?B_Ts_p_b8Bf&cQC(X7pNfe=IVb@>>UVX5R+eIbY$0CZf)JoRJk7hg& zvgC}<<)W8eEWaA!Qyx2XNy+|0%4eAw!M<O1}QruUASd%#&f)t;BUugT^bmr?}7@17@LeQ#k- z5%hlP8;YM&b*He&+on9r+fB;p&~6H80&fi%(-l>Pq}pOhz(F*n z5?vD8QbpOGM*GLf#p9Y^6P!CQFQ$Zx65oF+^Hn(2>1|>`oxa7-m8EN;J`>O7U*xt4 zkR|A)>+>K>AaG7t?rN4e>wVi=hPt&}0cNEy1AzN{f`zuflOwp8F;pq#d=1E&e z?n%qrH7a|}Ke2>;^QS2HDPEpNEokXlr*dB02qk~_o=EEE z;Ss<+%(8~EWPfdP2S%10bC%sM(Ra^;TvLUEe17buuIy!AJnJW4xAR*>W$rX%ZI_V4 z$Pz|4OS-XU$(`2z+bda;w3;RC+bWE^ZK_6+k`$HIo72C?3AJ!x)5-R)hOIBIg`SBU?t9;oozBB9nyEJ{$HlgD)E#f( zT-B3Pd>KdfFvxE|L6?m(I2l3QSqI$R$V{`z8Nq%5-+-pRON_wQqQoQGeT=3?Nt0kM z4Sy2_0R`B{A;K$l95&dy#ohMdZah2*Cjz`3;Ja&Igt#>DFR)&_e_N~~CvaKvN3f5xQg|)COKh+rw{mND(CV8x|qC0E_&QLW<-c z!%8PEVo}2J!$y)|VWr?p8o$Xq6@*Mh3iR2?pncGXTz{+;fM>lbpmT8Mqtyz z^|T|W?_sS^cd=^WhzmJ~3~RC7$EJnriAT<3!dh1GShaA(g&a(Swek|NY2kY6kpnug z)=UakEgW$nClz2V;S5;oj}%hmJua+dl8r?PM@+~YE?6ln4~r6xLW*qu!%ENdu_)mv zq{z-FtTg@zR>IaNMOIT}_Xt*^D8{0M@pIa;75djg;Lll7JUr1-JUlYIqjqLyax(G< I*50T82Ymch9smFU literal 0 HcmV?d00001