Přihlásit se

Joomla 6.1.3 / 5.4.8 Security & Bugfix Release (20 srp 2026)

Dne 19.8. 2026 byla oficiálně vydána Joomla 6.1.3 společně s Joomla 5.4.8. Jedná se o verze s opravami zabezpečení a chyb pro řady Joomla 5.x a 6.x.

Phoca Image Fields plugin verze 6.0.4 vydána

04. čvc 2026 17:45 #151290

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

24. čvc 2026 12:30 #151318
Odpověď od ferino
Pokročilý uživatel
Ahoj, vďaka za ten plugin - vyzerá veľmi zaujímavo, chytré riešenie cez custom field, ale má to jednu zásadnú chybu:

Pridám rôzne druhy obrázkov (na šírku, na výšku) - plugin mi z nich spraví náhľady, ak treba, oreže ich - to je super. 

Ale: keď kliknem na ten náhľad, namiesto toho, aby sa mi zobrazil pôvodný obrázok - zobrazí sa mi druhý náhľad - ešte k tomu orezaný. Takže vo finále nevidím celý obrázok, ktorý som pôvodne nahral...

Keď potom vypnem Crop to Fit a skúsim znovu, tak síce vidím obrázky celé, ale s nepeknými náhľadmi..

Všimol som si, že plugin generuje dve sady thumbnails - neviem síce načo, možno to má nejaký hlbší význam, ale vo finále predsa každý chce vidieť obrázok celý - nie orezanú verziu...

Šlo by to prosím ošetriť?

24. čvc 2026 13:49 #151319
Odpověď od H13
Admin
Ahoj,

toto jsem vysvětloval v roce 2007 a myslel jsem, že už je to po ta dlouhá léta všeobecně známo.

Zásadní funkce jakékoliv galerie na webu je neumožnit BFU dostat na web nesmyslně velké obrázky (dřív to byly BMP, dnes velké JPG a PNG). Galerie má za úkol tomuto zabránit. Scénář:

Uživatel vezme fotku z foťáku, nahraje na web fotku velkou 5 MB a úkolem jakékoliv galerie je udělat velmi malý náhled pro zobrazení obrázků v seznamu, ale také velký náhled pro použití na webu, aby byl dostatečně velký na prohlížení, ale aby byl rozumně velký pro prohlížení na stránkách (dnes bych řekl, že do 300KB Webp je rozumný).

To, co popisuješ jako zásadní chybu, je zásadní funkce, která je tady z mnoha logických důvodů a ve světě, kde se měří na webu každý zbytečný KB má zásadní význam.

Proč?
- rychlost načítání
- šetření trafficu
- stejná velikost malého a velkého náhledu (např. ořez) - velmi důležité pro Javascript Popup knihovny, které s tím pracují při zobrazení detailu
- stejná velkost fotek v popup slideshow
- atd. atd.

Standardní galerie nikdy nezobrazuje originální obrázky nahrané uživatem (z mnoha důvodů), byly výjimky, např. Phoca Gallery to umí u některých Popup metod přes parameter. Např proto, že u nějakého fotografa na webu chtěl někdo zobrazovat přímo originály a měl tak i nastavený server (velikosti, traffic), ale to jsou prostě vyjímky. My zde jedeme ve standardu, v zaběhnuté praxi postavené na logických důvodech.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

24. čvc 2026 15:12 - 24. čvc 2026 15:56 #151320
Odpověď od ferino
Pokročilý uživatel
Asi sme sa nepochopili,
ja nenamietam proti tomu, aby sa šetrilo miesto, ale to sa dá vyriešiť inteligentnejšie (napr. JCE Editor má šikovne vyriešený auto resize v Pro verzii)
tento spôsob: jeden original + 2 sady thumbnailov akurát len zvyšuje objem dát na serveri.

Keby urobil auto resize na nejake parametricky definované max. resolution tak, nepoviem ani slovo, iba chválim...

Ale:
zásadný problém čo som sa snažil na začiatku popísať je v tom, že plugin mi oreže obrázok tak, že ho užívateľ vo finále nevidí celý!

t.j. ak v thumbnaile nie je celý obr. lebo majú rôzne pomery strán, to je v poriadku, ale nie je v poriadku, keď ho nevidím celý po kliknutí/rozbalení na celú obrazovku, resp. v popup-e

predsa nemôžem urobiť "Crop to fit" na všetko.

24. čvc 2026 19:16 - 24. čvc 2026 19:18 #151322
Odpověď od H13
Admin
Ahoj,

já jsem nic o šetření místa nepsal. Aby nedošlo k nedorozumění, webem nemyslím hosting nebo server, ale koncovou stránku pro uživatele, tedy na serveru velký soubor máš (originální fotky), ale úkolem galerie je tyto velké soubory neservírovat uživatelovi, ale naservírovat mu náhled - tedy šetřit trafficem a zlepšovat rychlost načítání stránek (velikost dat na serveru v podstatě nikdo neřeší) 

Všeobecně máš v galeriích na výběr:

- mám nachystané fotky a mám je ve stejným formátu - nepotřebuji crop, definuju si velikost, pokud chci stejnou jako má originál, nadefinuji stejnou a v podstatě to plní tvé zadání - zobrazuješ v podstatě to stejný jako originál

- nemám nachystané fotky, nepoužiju crop - pak to prostě mám rozházený, nepravidelný, atd. ale je mi to asi jedno

- pokud mi to ale jedno není, pak to zkusím upravit alespoň cropem, abych měl alespoň všude stejný formáty.

A teď ta hlavní věc, kterou bych chtěl vyřešit asi každej od začátku galerií a cropu - oříznout to na správným místě, tam kde je to vhodný. No a to prostě bez AI asi moc nepůjde. Problémem AI je, že je moc náročný na výkon a toto asi nikdo podstupovat nebude.

Takže se vracíme zpět. Kdo to chce mít perfektní, tak si fotky nachystá a vyhne se i cropu, kdo nechce mít práci, prostě:
- buď neřeší formát (nepoužije crop)
- nebo řeší formát (použije crop, ale podstupuje riziko špatného ořezu)


Tedy v případě co popisuješ, je řešení nastavit velikosti jako jsou originály a nepoužívat crop - mít prostě nachystané správně fotky

Další možností je zapojení se do vývoje: www.phoca.cz/phoca-image-fields-plugin ( github.com/PhocaCz/PhocaImageFieldsPlugin/ ) a navrhnout nějaký univerzální řešení (ale takový, který nebude omezovat ostatní vlastnosti, jednoduchost a funkčnost toho pluginu)

Příklad - máš crop na malý náhled a velký náhled crop nemá - pak se ti ozve polovina uživatelů, kteří si budou stěžovat, že malý náhled je jiný než velký, další polovina si pak bude stěžovat, že při kliknutí na detail dochází k nepěknému efektu transformace na jiný formát, atd. atd.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

24. čvc 2026 19:52 - 24. čvc 2026 19:55 #151323
Odpověď od ferino
Pokročilý uživatel
Ahoj,
ja som to nechcel komplikovať, len som chcel poukázať na to, že ten crop by sa mal vzťahovať iba na thumbnail - nie na to, čo vidím po kliknutí naň...
Pretože potom to vyzerá asi takto:
nahlady

popup

original


A toto teda galérie nerobia...

24. čvc 2026 20:06 #151324
Odpověď od ferino
Pokročilý uživatel
Ale aby som iba nekritizoval, mám návrh na riešenie, ktoré nebude potrebovať 2 sady thumbnails a mohlo by vyhovovať každému...
Přílohy:

25. čvc 2026 15:29 #151326
Odpověď od H13
Admin
Ahoj,

kritika je samozřejmě vítána. Testuju to a nerozumím té změně:

Místo velkého náhledu je tedy originál? A při uploadu se mění originál?

Jestli ano, pak proto bude muset být asi udělanej kompletně novej plugin, protože během asi dvaceti let vývoje mám od uživatelů ruzný pravdla a to jsou např:

- nikdy nešahej na originál a neměň ho (z mnoha důvodů, originál např. slouží jako zdroj pro vytváření nového náhledu - např. někdo se rozmyslí, že chce mít nový rozměry, používá se i pro jiné účely na stránce, v galeriích pan na rotace, stahování originálu, informace o fotce, atd.)

Teoreticky by se dal udělat novej parameter, kde by se výslovně zapínalo, že se pracuje s originálem a že se originál mění a nepoužívá se velký náhled.

Otázka je, jestli tato komplikace je nějaké řešení - místo tří fotek budou dvě a zničený originál. Většinou jsme se s uživateli a vývojáři shodli, že místo na disku není problém a že server unese náhledy pro fotky. Prostě proto, aby originál byl zachovanej pro různý účely a proto, aby se na webu pracovalo pouze s kontrolovanýma náhledama.

Ale možná jsem to špatně pchopil. Ten problém je v tom, že prostě nechceš mít dva náhledy, ale jen jeden?

Mimochodem, stejně i při tomto řešení dochází k tomu, že malý náhled má formu landscape a je uřízlý a velký je pak např. portrait neuřízlý (prostě problém cropu se nevyřeší).


Před změnou (crop vypnuté, obrázky v textu mají formu, jakou mají i v detailu)


Po změně (při zapnutém automatickém crop)



pak se při klikutí na náhled místo landscape zobrazí portrait (malý náhled je oříznutý, velký není)

Pokud prostě mám různé formáty, pak nezapínám funkci ořezu a to je asi to nejlepší řešení. Podle mě, rozdělovat crop funkci např. na to, že malý bude oříznutý a velký ne, to asi nedává smysl.


Ale možná to jen špatně chápu.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

25. čvc 2026 21:24 - 25. čvc 2026 21:42 #151327
Odpověď od ferino
Pokročilý uživatel
Místo velkého náhledu je tedy originál?
- áno
A při uploadu se mění originál?
- záleží od nastavenia 
[img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABtgAAAGFCAIAAAD4kGBkAAAQAElEQVR4AezdCVxU5f748aeuKIIKlCAmFlDuZuIt1KzErrm0qKUm/dJSs6Q0c6nEcrcSM5VKC7ukmHbT0lwqlzaxMpFuYCWuCZR4RbELmrjff//nObOdgTnDgCzD8OF1mDnLs77POl/OGa48+t9zDAgggAACCCCAAAIIIIAAAggg4NkC9A4BBBCocoEr/3blFQwIIIAAAggggAACCCBQoQIUjgACCCCAAAIIIEAgkjgsAggggIDnC3C+RwABBBBAAAEEEEAAAQQQqHKBK6/gB4EKFqB4BBBAAAEEEEAAAQQQQAABBBDwfAF6iEBJAldeIQQDAggggAACCCCAAAIIIIBA9Rbgkx0CCCCAAAJuL3Cl4AcBBBBAAAEEEEDgMgXIjgACCCCAAAIIIIAAAiUJEIgsSYjlCCDg/gK0EAEEEEAAAQQQQAABBBBAAAEE3F7gyiuuEJc1kB0BBBBAAAEEEEAAAQQQQAABBDxfgOgBAgggcLkC3BHp9rFiGogAAggggAACCCCAgIAAAQQQQAABBBCo9gLOApF//SUYEEAAAQQQQOCvvzghIoAAAggggAACCCCAAAIIXK6As0BktY+y0gEPEaAbCCCAAAIIIIAAAggggAACCCDg+QL00OMFCER6/CqmgwgggAACCCCAAAIIIIBAyQKkQAABBBBAoKIFigYi9c/f6ev+SwgGBBBAAAEEEEAAgQoSoFgEEEAAAQQQQAABBDxewBaINIUgTcFHu27/pX5Mj4CrMX4RQAABjxOgQwgggAACCCCAAAIIIIAAAgggUNECKhApQ5B1al3pX6+WdQioV8s21PcKsAxX1fcq96FyCqzjJRgQqAiBytmAqQUBBBBAAAEEEEAAAQQQqPYC1TakgDwCCJSXwJUyCuld+0rvOlea7oXkFQEEEEAAAQQQQAABBDxQgC4hgAACCCCAAAJVLaDijzIQWdXNoH4EEEAAAQQ8WoDOIYAAAggggAACCCCAAAI1XkAFIms8AgCeLkD/EEAAAQQQQAABBBBAAAEEEEDA8wXoobsLXPmXu7eQ9iGAAAIIIIAAAggggAACCLi/AC1EAAEEEECgBAHuiCwBiMUIIIAAAggggEB1EKCNCCCAAAIIIIAAAgi4u8CV4i/uiXT3lUT7EEDA7QVoIAIIIIAAAggggAACCCCAAAIIlCDgAY9ml9BDFiOAAAIIIIAAAggggAACCCCAgAcI0AUEEKjuAldyQ2R1X4W0HwEEEEAAAQQQQACBShCgCgQQQAABBBBA4DIFrhSCR7Mv05DsCCCAAAIIVLgAFSCAAAIIIIAAAggggAAC1V1ABiKrexdoPwIVLkAFCCCAAAIIIIAAAggggAACCCDg+QL0sIIFeDS7goEpHgEEEEAAAQQQQAABBBBAwBUB0iCAAAIIeLoA/6zG09cw/UMAAQQQQAABBFwRIA0CCCCAAAIIIIAAAhUscKXgv9VUMDHFI4AAAiULkAIBBBBAAAEEEEAAAQQQQAABTxfgjkghKm8dnzr008HDF8uzvsNfr3r+oyNlK/FC7sF/H8i/UGLmi3k///Tbf8u12SXWWXkJTu6YPOOrvWcqr0JqQgABBBBAAAEEEEAAAQQQqCIBqkUAgSoWKOM/q9kcfYX9j3/76ISUAlNnsuNbXnFF9GbTRJles1eOHRqXXFCmvOWW6di693o/tUg/DJix9rOMU2WuYO97/xq9+PMnXkk+VuYi7DOe/vfaiatPFF68ZA4mXsz7/r33Hx+jtXnMP8cl/HTMSfTw5I6ZMz+fEv+vN3+yL7To1KkvFnw4cfGnD7+7t+gSV6d3z9YYZ/+7aAaz8ORyAylagSvTZ4U4tW/83OTDriQuhzTa3mG/81im1D6jLVYj5VCVgyJU8S3jsx0sKdss/Z6qDgrlWXbZWkQuBBBAAAEEEHBjAZqGAAIIIIAAAjVd4DL+WU2LiTuOmn6y0tfG+G9+snOn2F3l45mbkrQsbt2+8insckv5W0CD2kEN/uYlROGx/yxc9K95P50vW5GNQgJkIQGNGgWULX+RXH/smLnkP/nNOs35v+tqy0VnDi6e8uGslIKcS3JCiEsX9v383dDYtf82utfPr2HTukLUqt+ykZbe8KVBSLAqvmVY+bTasJ6qWhDceeoj1wYcy5j8r98qpQmhMSmmvebo0R0TWwjR9wPL5NGEqEppQXlW4lZ7anl2jLIQ8EgBOoUAAggggAACCCCAAAIIVLHAlZdRf7DlJ7R9v7jk5InX7Z8zfeW5yyjQmrVTfMFfBfGdrNNVOXJVywVxjy+Li9nwer9hKmb3vy8/S/tvmRp01Z2DNrw16l8xrVRgr0wl6DPtXffTL8JnYL+/19Pm7v3gq3WnhKjbaPzUkZveGrV+1m13yDjj2f/ELdl9QUtQ7KXZyHmjNr3xyD3BxZbYz2j1yOOywAU9S0pnn6saTdW+6baHQ8Tx77774o+Ka7WtZG9/y34TrEh1k/7etlTVZMyd9tRqQkYzEUAAAQQQQAABBBBAAAEEPFmAvjkXuJxApH3J7aNk4HBfbq793M3RV1yhf1xTTVsfPD23L6FfqLd6MNW7/dB1CTKpeZFKZc6lniW9IjopJb5fsEp4hX9UrOURcPuaKnzKq0m/OxuqWnJyM9Wb/M23PgrdZ8J7b+7Il7O0Qc1/1PyI9NKZ6zJPa3P1TyKbx7Vnlq1Pf1seXlbZTU9Y2xerlWJ+OfjlT/8TDa7pGmaa3r3ux//Jsb/3631XcC05UvvqmyYMaCRHCvdk7FA3Reaunawe2Z797e43Y+XI2n+LIk9MXzq8ZbWp0gEz1i5ZuFS1auFuWcK/F8r0i3rrxke99+PaBf/soxqfMOq9g6beyZSnM5JnxiaojE8lPL4guXRfvJibPEoVuPaLjC3PqxYu6hO7+ovD53Wt2viz6oisR4iTmWsXLB2g0i8aELt67YFCba56Of3TxnETVIP7xL6/5N1VqjGTLY9+/7F78SuWXDM++f4PlV77DejcyV+Igo3/tq5BbXbVveQ62t51e4XWMjUdvVmNZse3vKJl3Dr93pR7rmDz2Pb+pn2m/Vi77zk4t8supSpB/qriWsYlrxva3rRLhkav1O3MuXK+qTTv0H4J+yx/b9AyOXrU+9y+pGhTQVfIDPFVtM/KbjEggAACCCCAAAII1CQB+ooAAggg4OYC5ffPanKzs4UILsVNXQUytPHkev+hm/YePbpruhj75CpDq1XD+iX32px1dO+mkaHb5kTFJhumrNAFpy9qjz3XquOrqin898JV2qPQfwuo+7eLZ//cuHyV9tT2+X8nqPnHvfzvaNcwRJzZ8fmmJ949qHLofxvUCVJPfNeWr74qciiX1W8ZIl+NipWLdENW5r9lW0Kvvd40L+vIPjVS/+/NtKapcVG7dZMb1ciJf+sq/+aDbRtPqblFfk9/u+aJ9cdyLgmvurXFH//5aI815lckoZrMTEl5J0sE1JXj/8tM+Xz+DvWs+oWfPnliUcaOU/8LadYwvNb/cg5mjJ9riQDKhK4O/5m/6NdMoR6Ev3jq2Py5S8etP5bvoyYLj2VNXPzTBVnOmb3zZm565+CZC1c17Nzob4Wnjr0Tv2atKWaWtWXU4qx9Z4WoVbvemYKPfjwhk5uHM7tnv7JtXc6Zwlq1A2qJwmO/z3rlE+tz61c1C5b2+/ZkqvLNGarwrSzb+/5JMZt7rdt3NCv97V7Zy+5vGdwypmBsctbRrK2z2+97vdvQlZbYodg/aejKlgm7ZMql0QUyZUyKtav7J/WK849Ti97uVbDqoX4JJtaClb0a378uNF7uqVnp8e2Tn2wVbSvOmlk3cm5ldKthm0MTLBnGde6XZCpKl4hRBBBAAAGPE6BDCCCAAAIIIIAAAgg4F7jS+WJXl57blxQTu1N0Hdor2NUs2Umxq873/CA5oVfL4OCW/ZJ2Le1pmLXj27vWxbQPDW7ZKyFhZJ3zybtkzNMwcUUtOJn50dcFsnDfm5q1km9ZKW/u+Z8Q9YdNivnXvJikHv5CmJ7aztz2s5zvM2z0w5NiBv3zsTAZavTK+f2QzKIbGt05aJl64vvxZVM7tJMhRSHCe/S4X+IZFqvLLMSFnILjMktwgHnuH2fkpBA+jWQJ5llC+NU3Lb5w0TpLiLqNRo998P3ZPdrp5gmR+8WWE3JGQOuu/5r3+Oo3+g+7Sk4ZD6EdPnrj8WXzho4PVWl+3vO7EOd3fP17vhBBt937z3GDFo1rGSSXHPv9+1JHn2r3GzVydVzMhuHXyALEpTp3PzdKTv7rIe1e1KwjkvHCjz9/KUONDW5Y8NKgqdPuG9hAJvzzyxRV078/+1U5NGrzzhuP/+uNoVNa/00uMw2H1v3wjcx1VUtt0YNPhAhx9vcPUyxB2aaNwmW6rGOyfPle1UNZtvdGz6zT9pHQ9jEJ8V3FSe+h65KGyn0mNCo2fmwjsTl5l6VXdUauS46Te11o+6FJmyded3Jx/Gbbos0p8doirZCdpkwFm9ftajRy5bqhck+VxcfFthDr1yVb8jh6T163XrSYHm/OsHLzgkdDhVpBjtIyr9wEKAgBBBBAAAEEEEAAAQQQQAABNxe4jEDk/nFh2oOf6qVuq2EpnRbsWDdUHwhz3vV9KfvFTb06+VtS+QdbRy2zrO+hocGW8eCWWvDLMlnx7//NGKo9Atx70qZ1/5WBvGtjH2omaz320xEt5nVt16ZCTjbq1ERFstRT28HajY1nVry7du23Bw8366ECjtP+Yb51USa1G/K/iE/ZIec0ahPbT/XRuFiZyDbk/6FuQmx0tSnSaJtf4lj47bfd0zzwKj/f2vqkZ478Irsmane/p209NT84XLVFjTn+9amvJfMN8FHLC8/KxtTpOm7UprdGLfu/69SssEYt1VsZfusEXV1LZQsJUJ7Cv5327Hm9ulp7L50vFKL27YNkRZviemqkTdqFqOTa728/56j3znd2bqrefa8P0dqnxnN/1u7xDL+5nbYo8NbW9eXsX1QIVb5bBq18y0QVvpdle/fX7SPBcvX5B1v3JzV6vqDA0qHQlrZdqGV0dCOxa1+2eZluUXBwsHmm8I9emZub0Msy6e1tGTN8j+rXV+yfHj02aVd2wTnh3WlsUtLQ9oapWYAAAggggAACCCCAAAIIVBcB2okAApcncBmByBYTdxy1/OSf/St381hbVLHkRp2TAQrRUhcSKTlLFaX4W0CD2kF1/6bV7j9+6n03a9Gtw7l/qjnHMsxhypkZ2hdHXig8E3DPyK53XyUu/vc/73zw+RPPLu4zWf91hCqT9fe/X2+cr2Jn9Z8YGaUFyIRxsdZMthGvunXME1f7qDsQxZlj+tvOzpw33QpZ28ucyvDt1J/H1LI62tPWaqwsvxfz1Ddmat/P2Pupbd+UpQgX81w6tmPj85MTtC+pXDRljzXXn8e0GxxtLNYlIj9TRVpF5ucfqm+NfGrR0M+11XfxvP2z2BfyT9ry1Igxx3fB7QAAEABJREFU/2B/sT9lXwl9PZe9bmxUqPbdkVdcETZufwnJhXf0uqNrh3qvi4kIC6h7RXBU7GZrGLSkrCxHAAEEEEAAAQSMBViCAAIIIIAAAtVc4DICkSLY9lOKr4Y0g3mrLLm5+sCZeYmbvV3VckHc48vm/eNu9ZWIBUtXm79wsWmwuqVO1PXv3u5a3dDQVwb/rm779Euj1s+6d1bfsBvryojk77MWf6vFwey7lps8ZbWKz5gfytYWOitWS6B/uahuRdRmhDVpqd7//PFgoXo3/e75Xd1rKRrerO7gNM0yeA1uGKKW/O+ibLwaKcPv+e8Xfqi+MdPr2tFDbpsy5AatPWUop+QsF3asG7o865f/1unaV1Z0Wz+t6Vq2htebnih30IuAcG1RUMg1upV1bfcQn9NaTstL7QA/y2gNeS/ILRAt2oc67e25ldFh9ye3TNgl/97wl/zZNMhpctPC4H7xydnn/jqbv3dTv4I5vUPHppjm84oAAtVYgKYjgAACCCCAAAIIIIAAApcncDmBSFdqDg5tJFSsw5xWN9q+V1exbWWyisRpC3WLtGk3e2n28D3qUdf8H1M/0/7bcqNmDX1lE8/+r2nP3hNi7pPDyM7X3vXIP24+m2z6788/X33dzT3vfnW09qB2zgntfkmZwTrkrl2s3UQZ0mFWv2DrXMNi7QNkAVereyGP/ZFvydi239/VPZs/rtv0Re4lNfPk7tkf/EeO+LZu01m7hVOOGw8NW6o43ZnPtpr+W0tuZq5xWsdLDm7TIrR39L3vns433XqThuM45eXO/flH7fbN1rdM6HnTrZ1vCNee5NYKNT9R/k3Kj1p4sfBQjvVf7gS3DFM+xy82ePAxtbImxHTtelPLkQNbqX5rmdWL+d8QqVG3+xXCeF8qXWOz92VbM+xbufKYaN/eedhY+8bHobG9Wvp7q4wl76n74jsFd4rbpxJ7+7fslRA3SJzcnGKrVS3gFwEEEEAAAQQQQAABBBBAAAEEigt4+JyKDkS279WvzrE5Q2OTs3OzdyUNbT9siwU0ODr2Ub8tD0XFbN5XdJEliVu9X3Xnbdr/RSlY+sFu9Txvm66x6n+h/Ll07uIBE/75f2MWDVz83cSFP54Ovkm7R+8/Uya8Pzth7fML9+UIEdCupf0/hxHH1n3+jhZP8/pj97jYfz6qDZO/zhNGxdpb1A7xDxIiM9caiBStHvpHvwZCnD02f+Zi9fTxpG3qf7PUvSZ2eFvt6xXt8xedCr6r3zUBQhxP2ST7MmDMmqUObuAsmsd+usnNIWrGNx8kyL4MiE35UU2dzz+r3sr3N7y1igiLPdsGSLQJSfOzVfGnz5yXbzf3baO+WfJgysAxco0kzVL/TUjOVkOrh267o64Qx/Y98UzC/8X+c8BTy6cs/zzuW8sNpIePqUhxcEAjldZNf433pdI1+PziflGx5r2u15zfrpsY28t5Ae2jOor908fGJ+/L3rVOxiNtO7FBvpZRUd47J/Uaum5fbm7uvs0xsavEdf16Ob/t0qAoZiOAAAIIIIAAAgggUJkC1IUAAgggULECFR2IFFFxyQv65s7pFtY4rFO8iH/b9lSnd6+klKV9C5J6tyq2qGL7XNbSr3vwnoYyb+GetM/UDYO+N4/+v/k9GoXUFYVnL+SLv7Vs3W7+6L/XEwF3PffglHb1fS8WfPPzf3656HNjp64LY1oViQYeztG+o1CIi2cvHD9lHvJP/U8Io2JlzbohLPzmWkJk/37IOs+n2chZD07p5B8i58uZtWq3bHdbUtz9pm+0lDOcD/Vuvn/OQ9eE11Lt8Q1r088UNKql7iJ0ntGyNOCusb2faFbb69L/jp8R7e5s111GRcWFnBwVH7SkKZ/3q+7sJ9mDaonCUxdESJvR7RTt8WMnVHS4adScUTfcKKu+dOHC1dcOa6fdC+ql1evTdtJU2UIf31r/yz914ULd+nf07R17u7qrVS7+78FcGS9u+XftxlA57Z6D8b5Uqva2mJ0UvS+mfeOwiGEr/Z/ZtCuufQnZg2M2b3omNHlct1ZhETH7eq1bKnfiXbv2OcnVPm7XjgXtk6NbNW7cuFW/zf4TZS3O77p0UhiLEEAAAQRqjgA9RQABBBBAAAEEEPBwgTIGInut/OuvfWNN0apiQqFj9/3118pe5vn+ncauy/1L/ZzbldQvRma0LhIth67LPmdeFJqdLOr4+2u5dMXbFyaEmjasWctcXi+N+j2i/jvzS1HWu+Tqmf5f81uP3B9sqqRBq34D/jlvlEr2RsyC0be30gJfwivw1phHVr9hmj/s1Ufamp7/1Rd482ht6Vt2r4vMz2gbFGuq0/zarPtNfxOn/rMtyzyt3mS9jzz8T3O9jy+IuamRKQanlgXf/5Kqy1KFnNV2klb7pJvluBwKT18VuUDLu2xkw/9qd2ve2LyJXGBu6ui2RcaLTvqE3z/u8Q2yzDcen9rv9glxqrqpt9cRokhFMp950IOI4KhFMq/V1jx5v7l1N9+vkN8yTfpK9mWmpo6LuifmcbVo3N9VPFKIfNFsqlb16mm3eB1Tj2b7hjQxr0E/2cJhpvWyYd4jk3qG1zM3JH9HSoEQ/nffHGCeUTlvalu27SimOovOU9P7xpr3NKN9yS6RLEe3/8gpoRab61Gj+2L7xVj3u/he/iqJ/C2SSahpy67q3yt+V4HaUf/KXTe201C5E++L1QKLKpGlefpxoZpq2rf/OpedHGetRVbE4LYCNAwBBBBAAAEEEEAAAQQQQACBihUoYyCyPBqVndDJu+XQpF3Zudqj2f3mHLspLrZTeZRc7cooS4Nb9bvpRnHmo3Wm70MsSwn6PP/9et34Rev6jvmn9mD1Nu2x7msf7NRAn6YajGdsnLho08Ax6vHw/xuzRnv4vf7D9zRz3vILP333fo4Iuu22u652npClCCCAAAIIIIAAAggggAACCFyWAJkRqOECVRiIDI1Zt7JX9vROYY0bh0XEJLdfsCN5bGgNXx2l6f7VnacOvybgYMrEf/2mnkouTdbiaa+68271WLdQD4kXmh4zn3Wfi491Fy+tyua06Tql7zUtvf53/NSF/Et/CwkJmzLLevuqQaNyd8x87/f8Rm1e+r/rDFIwGwEEEEAAAQQQQMBDBOgGAggggAACCFStQBUGIoUI7hefbH18c93YTpaHRKuWpPrUrr7YcUBDX69apqeSL6/hAbfaHuvWPWZ+eYVWem7fVj3vX2B6WP6tmH++cPetJd7kWFeIBi3nPxfVtNLbSoUIIIBATROgvwgggAACCCCAAAIIIFDDBao0EFnD7cuj+03vHPTqQPVNjuVRWI0sw6/zS9P+Yf5yT48GoHMIIIAAAggggAACCCCAAAIIIOD5Au7dQwKR7r1+aB0CCCCAAAIIIIAAAggggEB1EaCdCCCAAAJOBQhEOuVhIQIIIIAAAggggEB1EaCdCCCAAAIIIIAAAu4tQCDSvdcPrUMAAQSqiwDtRAABBBBAAAEEEEAAAQQQQMCpAIFIpzzVZSHtRAABBBBAAAEEEEAAAQQQQAABzxeghwhUbwECkdV7/dF6BBBAAAEEEEAAAQQQqCwB6kEAAQQQQACByxIgEHlZfGRGAAEEEEAAgcoSoB4EEEAAAQQQQAABBBCo3gIEIqv3+qP1CFSWAPUggAACCCCAAAIIIIAAAggggIDnC1RoDwlEVigvhSOAAAIIIIAAAggggAACCCDgqgDpEEAAAc8WqCmByDFzPmRAoCIEPPsAQe8QQAABBBCoUQJ0FgEEEEAAAQQQQKBCBWpKILJCESkcAQQQQODyBSgBAQQQQAABBBBAAAEEEEDAswUIRHr2+nW1d6RDAAEEEEAAAQQQQAABBBBAAAHPF6CHCFSpgApE/nrkpMcPk0bcy4BARQh4/L5DBxFAAAEEEEAAAQTKTaAGfPLCCgEEEEAAAScCKhB5QxM/BgQQQAABBBBAwMMFuOBBAAEEEEAAAQQQQACBKhVQgcgqvSWTyhFAoGYI0EsEEEAAAQQQQAABBBBAAAEEEPB8AWc9JBDpTIdlCCCAAAIIIIAAAggggAACCFQfAVqKAAIIuLUAgUi3Xj00DgEEEEAAAQQQQKD6CNBSBBBAAAEEEEAAAWcCBCKd6bAMAQQQQKD6CNBSBBBAAAEEEEAAAQQQQAABtxYgEOnWq6f6NI6WIoAAAggggAACCCCAAAIIIICA5wvQQwQuR4BA5OXokRcBBBBAAAEEEEAAAQQQqDwBakIAAQQQQKBaCxCIrNarj8YjgAACCCCAQOUJUBMCCCCAAAIIIIAAAghcjgCByMvRIy8CCFSeADUhgAACCCCAAAIIIIAAAggggEC1FnApEFmte0jjEUAAAQQQQAABBBBAAAEEEEDAJQESIYAAAhUpQCCyInUpGwEEEEAAAQQQQAAB1wVIiQACCCCAAAIIeLQAgUiPXr10DgEEEEDAdQFSIoAAAggggAACCCCAAAIIVKQAgciK1KVs1wVIiQACCCCAAAIIIIAAAggggAACni9AD2u0AIHIGr366TwCCCCAAAIIIIAAAgjUJAH6igACCCCAQFUKEIisSn3qRgABBBBAAIGaJEBfEUAAAQQQQAABBBCo0QIEImv06qfzCNQkAfqKAAIIIIAAAggggAACCCCAAAJVKVA5gciq7CF1I4AAAggggAACCCCAAAIIIIBA5QhQCwIIIOBEgECkExwWIYAAAggggAACCCBQnQRoKwIIIIAAAggg4M4CBCLdee3QNgQQQACB6iRAWxFAAAEEEEAAAQQQQAABBJwIEIh0gsOi6iRAWxFAAAEEEEAAAQQQQAABBBBAwPMF6GF1FiAQWZ3XHm1HAAEEEEAAAQQQQAABBCpTgLoQQAABBBC4DAECkZeBR1YEEEAAAQQQQKAyBagLAQQQQAABBBBAAIHqLEAgsjqvPdqOAAKVKUBdCCCAAAIIIIAAAggggAACCCBwGQLVJBB5GT0kKwIIIIAAAggggAACCCCAAAIIVBMBmokAAp4sQCDSk9cufUMAAQQQQAABBBBAoDQCpEUAAQQQQAABBCpQgEBkBeJSNAIIIIAAAqURIC0CCCCAAAIIIIAAAggg4MkCBCI9ee3St9IIkBYBBBBAAAEEEEAAAQQQQAABBDxfgB5WoQCByCrEp2oEEEAAAQQQQAABBBBAoGYJ0FsEEEAAgZosQCCyJq99+o4AAggggAACNUuA3iKAAAIIIIAAAgggUIUCBCKrEJ+qEUCgZgnQWwQQQAABBBBAAAEEEEAAAQRqskBNCUTW5HVM3xFAAAEEEEAAAQQQQAABBBCoKQL0EwEE3FiAQKQbrxyahgACCCCAAAIIIIBA9RKgtQgggAACCCCAgLEAgUhjG5YggAACCCBQvQRoLQIIIIAAAggggAACCCDgxgIEIt145dC06iVAaxFAAAEEEEAAAQQQQAABBBBAwPMF6GHZBQhElt3ODXIWHErbc/hCOTak8PEqFH4AABAASURBVOeE8XHflrHE/2bt+jnHhbwX8n5OO/hfFxKWY8cqraj/bp45evnB05VWHxUhgAACCCCAAAIIIFCzBOgtAggggEA1FiAQWXkr7/Ca8XffH60bhgwc99q63QVlbsG+hPFPz5o5cuLGY2Uuwj7j4TUzY7cUFIoz5tkX8rYlTB76oNbmB0eOfuP7Y06ih/sTR46Pi316yrrj5twGbwVfzHw6dtaUwW/uMkhQ4uwf4jTGuJ1FU5qFR68/XHRJ5U0X1hbHPp4Su+ZI5VVJTQgggAACCFSeADUhgAACCCCAAAIIIFB2AQKRZbcra06vAH+/AH8fL3GxMPvf70wZH5fmJLznrJKg5qFeQgSEXRPgLJXLy3Ynjl/xW9C9U2fd7q/yXNjz5uin52z59fhFNSUunszc+sawYa/vKNQmi78ENQuXrfEPDdFyF19umePfKMRPCK/w5oGWOR713vTO2Im3+WSuiFuc5VH9ojPuIUArEEAAAQQQQAABBBBAAAEEEKjGAldW47ZXatPLr7ImA+KWLn5/6ZL1q+IGhspiz3yzatt/5Xvph6vunLp+7cr3x7SvXfq8xXIUbFz+ZaG4adgQ1Sa59Oclr23KE8LnpnGL39u4duW6JWPu8BHizI75CT84jpsGdJ3z4cqNS5+8uaTWtItZvHHt8oX3NZG1eOJQ++bhA1qIvPUJX5RttXqiCX1CAAEEEEAAAQQQQAABBKqNAA1FAIGKEyAQWXG2JZVcO/Th+25SiQ7s2a/ehDj+w5sTn+6rnjseMnDc2ztszzjn7bA9Iv30lDV7TBEu/ZPI5nGVV3uSWhuxPLxsy9734Ynzd8r4oqk+3Wv+D18cECLi1s7mMOIPG7eoB7RvfGzMXUFqVu2AW8fHqNYWfvflNhmJzFn/hKri9S92vq2e3Z73gzDPGf9hjlbshex1M819eWL2spmjVatM7dkxT43fLbMIYRp/ImHbh9bECXusX7D4393rpzwxRHuYfcjQmev3Gd2MqVVY9MXcnte/2P2vcVohfZ+YvTHnwqFPZqsG3x/dd3Tiz9YC8/dYGhAtk32437pAn/61xbO1h+u1lqvqjNZXwK13NRfiwLZv8lUqfhFAAAEEEEAAAQRcFyAlAggggAACCHiwAIHIqly5py9oAS8fX1/ZisIf4sbN23Qg76KXX4DXxcLsbbPGvf5vGfITF/49b+KsLb8e972hU7ebQkTejytmjkzYI3Poh9q+/toT337y1dfLtOSacHXTYeEOU/aLXgH+XhfP/PZl3MTiD4NfSP+3DIaGR7RWQUeZO2vPL/JVXPP35qppalSI2m1vbqHGfvpxt3rTfncsiNtmfnZbm7a8FH4RF/tOet5F4eXr73UsdVOK069MzNnydtLuC/V8ZLsv5myZOUf7bzkX0l4fOeWDH/NESMRNIV4Xj6d/MH7yxtJ/+eOOBVM25Vz0UkXn/bRwYkzskj2FvlpNR76Mnfe9BrwrbvTMpPQ80eSmvzfxupj3U1LszHVaOPX01/OeXvKT7KCXj1/t4/9en/ofSweFKDRaXzKJ/41trxHi1x/TVfFymgEBBBCoLgK0EwEEEEAAAQQQQAABBBCoOAECkRVnW1LJ+Xve//RXmci3463thDj08XvfnBGiSZ/FHy5+/8M3n2iunoN+/+sCIfZ8+Z1cEDhw6ktTx0x6J7arDDXW3r1rn8ypGxr1mvr+0sVqWPh/LbVvdQwfPOHBECGy1i9W2a8Z+Oby95cuXzr8Bllu8YfBD2dly8JCgizf23i8QLuZ75qmsgS5wDQE+DcyjWjlm0Z9Ix6ZvzhhhXazpGmOes358qN0+e5zR2zCR0uXrH+zj74YuaDo0OaxFbLX7yeMa6OW7MuQLBe2faq+jjLg3lnvTJ30zpw+QXJJ9pc7tPigHHV58Os9613VhtjOKssZ3+7zl8vJ959urSb375GMF77bpOT9e89fOGnWwlkDlcFvG3ceEeLIxo9/ksl8b5vw/vuLP/pw3kAV2JUz1GC8vtTSps2vkW/7DsiOyHdXB9IhgAACCCCAAAIIIIAAAggggIDnC9TgHhKIrPSVf+SDkeqh5ui7h8/cJINd/p3HPyaDYkd+1J6YDu95V1PVosC/R6pI1v6Mg0KEtpRBSZG3bt5rH36951CLx8zRRpWs+G/Bxplv/yhnhz40sb8Kmx1O+7d6wju0+91aLLBRxC3q/YDlYXCZUhuOF5wUwi9ARfu0aVdfrhk4/O6WQf5X+ZrvpDTlu3BgjwoY+ncd2FG7oTKkWbhpgdFrgP9VapFvPe3f7hQWFgpR+66pKzeuXfn+Y9p3VoY1a6kSlOHXt5G/1rYmoarj4oZ2YaqQer5+6u2MVtOdk2RFG5c+er2aFdpSu+1TjV749Re5goRf9wduqaemm7TU8qpR4WR9acuFl3zTOiLfGRBAAAEEEEAAAQQQQMBtBGgIAggggEDVCbh1IHJL6m9uO1zGKvMK8PcL8FeBKiFuGD3/mc4qWJeXqWJeInPJ09pXIkaPXKE9BVx45oLw7zdhQvcmXheP/DvpzZlPD36k72j910faNeS/m19beEDOue6JCX21gKY4lq2Vk/3eMFP08+kPVIhQnDnt4KFh3wBTo2QBQf5aSPA/h7XUcoYaLpyRAUI1Yk2mJhz8HsvXvobS1xQCdJDApVkX8rYlTH7iYdN3RM77xqU8ZUt04di3ieNGD9e+nTN61neWQo4XHFOjOhY1afp1sr5MCbTX/DPW77vUpl16cdttnoYhgAACCCBQDgJufHVH7xBAAAEEEEAAAQQqWsCtA5EybNMz8jr3HGTbyjiY/2v2pN4+soBfl64yfdtjoPZ9jiKgeefu3brahjA/FckKumX8wuXrFs+aObx7C39x8ci2WfM2mv5fjSzCNuRsnLpYPQscPnxMP+32P7moUeg18lX433CHvthu1wWYY4pqoeW3MN/6zHVY6xvV3P/8eECXLn2XutdS3PT3tmqZk9+mIVqlQpfXSWrHiy5si3t6zpZfc3xvfmL8mInje7dwnKwc5l74dt6w+V/uP+LbebisaExfdf+pVmzINSZFR91wur603OolwEe7lVKNuv7rnhs8rfIQAXc9osKLAAIIIIAAAggggAACCCBQEwTcPRDpevjG3VMWbV/rh4fcIOcVbvnXunz53qRlWxWYzL8Q2DfmyfFj5PDQHRFdnxjS/qqc9U+omxlf/zGo2c33jVgwVfu2xAMH98tMdsORD+e9lynnNH9s5n3qoWw5KoemLVqrGy4LLja67zGt2CeH3nZT98f+72btjkeZwDQE+fsJcTJfPcVtmnHL3T1Ve355940vjms3T+b/EPfGDrnM97buXbVnneW44dCkmQrhHdmxbr+WN+egaphhaocLftqhvmVSdHrsmX6339q1Q2iJdTosxZWZP6b+pJJFPhJ7361db78p3Ha/5zUtFeR/tn16UOvGkX1ZKqH2a7y+tMVCqJiur6+yN8/gDQEEEEAAAQQQQAABBBBAoEYI0EkEEDAUIBBpSFPRC67qNaJvoKzk1/eX/CDjXO2GPHmHDP1lb3h60JCHh43se3/M1PkzZ31dKEK69lP36O2YNWzyzDdeGzdzg4wW+t7W9e8yq244/MkbSer/zQivnNVPDxspS5DDxM15ou1D42+T5f720fhH+sr5D0YPnvVG7Oxt6kZLXfamYeqrGHOOa49Ua/PbDX+2t2zemZ8WjHxEPS0+fJ76jy4+ncfH3FJyTDCk+zBVad6m2McGDhve9+kN+ie8teJLfGnWTvVapMwbLjsycNjbv6gcuns21WT5/LZooyLCIvWNgdLn4ZgFGarYwoKLQjS5e4h6bv74likDHx458MEJH2mPz6vFQhiuL23x4QPqifgQ0+2o2hxeEEAAAQQQQAABBCpFgEoQQAABBBBAwH0FCERW4boJfTj6Jll94XcfrJOBOt9bYhdOHRpxja/XxfyCk8Lnuk7DZ02501cI/7tnvTmx23W+hb+mbP33/sLAFj0nLJzQvkg0MOfAb7IoOVw8c1JmNw+FMsLp23nC/LjBN4X4eF0sOJkvfMIjH5k/qWuRR4ZrR9zcQojM9D0ygyxEDbVbP73wzYk9bwgy3SHo5RfebczSpaZvtFTLnf7KSmeNi7zGS1wsLPRtN7i79qC3EKainOa0LPS/e+qsoRGBXhfP5BfWbjnoke7+csnJnCxbA+V0uQxX9Zo0f/BNQV4XCwvOeLUY8EQ3P1ls/pHfZE31Oj4z/+mbQ2Q3zpzxbftQ7zZyiRy0bhiuL5mg4JfdMhB5Q9eOqtFymgEBBBCoMQJ0FAEEEEAAAQQQQAABBBAwFLjScAkLylugaf/5G9eu3LjQ/G9kZPH1TP+vee38B9WTzEIEtH5w6vyPPlT/LXr9+3Om3tfMHC6sHdh1zBzT/I0fvrkg5pZGMrMQ+gI7T1C5VPmyCsvwjvaPs4Xwb9d/0jvvL1dLP1yycNLdLWV4UyvB9hJwy13NhUj/focMv1nnynpjXkrS2rPxw8ULx9zayBr+DOn7jqrF0nKZpcicwjONouPWyzQfvjkxpFB7NNv8H6vNTZ1wi8ykHy866dvswalvmkqY1f/u8UtVB2fdKVtwS6wsdu3K2I4yh92gBxFF2mOefKazKUfHZ5TGWtOkb8v+k7RuLk+a2rffmMVq0VTTA+iFhUEDFiqB5UkTrinUHs1u0UbdPaqKMVpf+d9/cUCI5l3vCFCpKvGXqhBAAAEEEEAAAQQQQAABBBBAwPMFqm8PCURW33VXvi33v3tId1/x09Ll2gPel1t2wcaZU2JND4MPG/5w3I5CIXxvG9C9ugXm/rt59vgpsf0eVI+6Dxxmfjj94Tud3+d44d9LVu8XgX1j7rrqchnJjwACCCCAAAIIIIAAAm4nQIMQQAABBMosQCCyzHQel7HtiPmDrzv+6cwp3xZcdt/8754woXfzQFFwMr/gjOkx86XFHie/7FoqvICrej0zpecNQUL24mSh6an2d565ubazeg9/HTfnuzPhg2NHhjlLxjIEEEAAAQQQKJsAuRBAAAEEEEAAAQSqrwCByOq77sq/5U37T43r6e8rfMqh6KBbnp6jPVi9dqXdY+blUHRlFhHY2fZwusFT7fbN8b0gGj0wK878ULz9MqYQqP4C9AABBBBAAAEEEEAAAQQQQACBMgsQiCwzXWVnrJT6fNvFzI+93ektf5XSjupbyVW9pi4cYvlyz+rbDVqOAAIIIIAAAggggAACCCBQVQLUi4DnChCI9Nx1S88QQAABBBBAAAEEEECgtAKkRwABBBBAAIEKEyAQWWG0FIwAAggggAACpRUgPQIIIIAAAggggAACCHiuAIFIz1239AyB0gqQHgEEEEAAAQQQQAABBBBAAAEEPF+gynpIILLK6KkYAQQQQAABBBBAAAEEEECg5gnQYwQQQKDmChCIrLnrnp4jgAACCCCAAAI1T4AeI4AAAggggAC+QOsXAAAQAElEQVQCCFSZAIHIKqOnYgQQQKDmCdBjBBBAAAEEEEAAAQQQQACBmitAILLmrHt6igACCCCAAAIIIIAAAggggAACni9ADxFwWwECkW67amgYAggggAACCCCAAAIIVD8BWowAAggggAACRgIEIo1kmI8AAggggAAC1U+AFiOAAAIIIIAAAggggIDbChCIdNtVQ8MQqH4CtBgBBBBAAAEEEEAAAQQQQAABBDxfoKw9JBBZVjnyIYAAAggggAACCCCAAAIIIFD5AtSIAAIIVFsBApHVdtXRcAQQQAABBBBAAIHKF6BGBBBAAAEEEEAAgbIKEIgsqxz5EEAAAQQqX4AaEUAAAQQQQAABBBBAAAEEqq0Agchqu+oqv+HUiAACCCCAAAIIIIAAAggggAACni9ADxGoKAECkRUlS7kIIIAAAggggAACCCCAQOkFyIEAAggggIDHChCI9NhVS8cQQAABBBBAoPQC5EAAAQQQQAABBBBAAIGKEiAQWVGylIsAAqUXIAcCCCCAAAIIIIAAAggggAACCHisgDUQ6bE9pGMIIIAAAggggAACCCCAAAIIIGAVYAQBBBCoKgECkVUlT70IIIAAAggggAACNVGAPiOAAAIIIIAAAjVWgEBkjV31dBwBBBCoiQL0GQEEEEAAAQQQQAABBBBAoKoECERWlXxNrJc+I4AAAggggAACCCCAAAIIIICA5wvQQwQMBAhEGsAwGwEEEEAAAQQQQAABBBCojgK0GQEEEEAAAXcVIBDprmuGdiGAAAIIIIBAdRSgzQgggAACCCCAAAIIIGAgQCDSAIbZCCBQHQVoMwIIIIAAAggggAACCCCAAAIIuKtA+QUi3bWHtAsBBBBAAAEEEEAAAQQQQAABBMpPgJIQQACBMgoQiCwjHNkQQAABBBBAAAEEEKgKAepEAAEEEEAAAQSqqwCByOq65mg3AggggEBVCFAnAggggAACCCCAAAIIIIBAGQUIRJYRjmxVIUCdCCCAAAIIIIAAAggggAACCCDg+QL00FMFCER66pqlXwgggAACCCCAAAIIIIBAWQTIgwACCCCAQAUJEIisIFiKRQABBBBAAAEEyiJAHgQQQAABBBBAAAEEPFWAQGQZ1+z//t9feQVns3NP/XrkJAMCCHiMAB1BAAEEEEAAAQQQQAABBBBAAIEKEnCjQGQZI4JVlO1EwdmThRcu/e+vKqqfahFAAAEEEEAAAQQQQAABBBCongK0GgEEaqoAgcgyrvkz5y+VMSfZEEAAAQQQQAABBBCoQgGqRgABBBBAAAEEqkiAQGRZ4P/fX3/97/9xL2RZ6MiDAAII1HQB+o8AAggggAACCCCAAAII1FQBApFlWfNXXnFFWbKRp8oFaAACCCCAAAIIIIAAAggggAACCHi+AD10UwECkW66YmgWAggggAACCCCAAAIIIFA9BWg1AggggAACjgUIRDp2YS4CCCCAAAIIIFA9BWg1AggggAACCCCAAAJuKkAg0k1XDM1CAIHqKUCrEUAAAQQQQAABBBBAAAEEEEDAsYAnBSId95C5CCCAAAIIIIAAAggggAACCCDgSQL0BQEEqqkAgchquuJoNgIIIIAAAggggAACVSNArQgggAACCCCAQNkECESWzY1cCCCAAAIIVI0AtSKAAAIIIIAAAggggAAC1VSAQGQ1XXE0u2oEqBUBBBBAAAEEEEAAAQQQQAABBDxfgB5WjACByIpxpVQEEEAAAQQQQAABBBBAAIGyCZALAQQQQMBDBQhEeuiKpVsIIIAAAggggEDZBMiFAAIIIIAAAggggEDFCBCIrBhXSkUAAQTKJkAuBBBAAAEEEEAAAQQQQAABBDxUgECkbsUyigACCCCAAAIIIIAAAggggAACni9ADxFAoGoECERWjTu1IoAAAggggAACCCBQUwXoNwIIIIAAAgjUUAECkTV0xdNtBBBAAIGaKkC/EUAAAQQQQAABBBBAAIGqESAQWTXu1FpTBeg3AggggAACCCCAAAIIIIAAAgh4vgA9dChAINIhS0XP/DNr+/o5M2YPiXmx/4gX+8fMipmRuGL774UVXS3lI4AAAggggAACCCCAAAI1QIAuIoAAAgi4pwCByMpeL4WHtswaH/fs0tTUw6fPXNJqv3Qu73DW2qWLHxmf8Omhs9osXhBAAAEEEECgBgkUpq+YuuZ3j+kwHanGAr+vn7X8AH8dr8ZrkKYjgAACCCDg3gIEIit1/ciPGWNmf7PrlEGlpw4vnf3am+mOYpFHt0wY8eL8dGvGizlfJI7RbqjUzbQutY0c3zi3/4gkWz7bkoocS0/qP2Lup0fLrwrV/VIXmL74xf6Lfy7WiLzvlq/4dL8j5GJJa9yMMjnblFR2/VZqW1JpY7qVXvUr+sL+LW8u35lTwZ0vXovDCl1M5jCvNvPn+XaHIG2eW7+oBk/YmFeqNqoD5uQtx0uVp8oTH01bsuSz3Wcqoh15n062HkX14y7Upc4CZTj1uHpqc6EFFZqk/A8vF3avGLMoL/LWayu03dWk8LLsvEKdgEp9nVBNQCqrmVbDayMjMt+futGlyzh12Kz868xyJanoLuiuTMqn3U5O6Koug7OYk1yuNatMO6auaL1zmRpz9sDGFUu2u7RZ6qq97FF1OnPp2FK4e3Xs09P6j3hxQimvPS67iZddgNr3L/cCXq1fg21P374LJ9KWvDJ7yAj1UOCQ8QsWp+ZdMC8u04lVfwnk8poyV1hBb8WaUXho2/wZs6JNXZ6Y+On+Py01a1dW2ny52VgH9dFerRGXL6JUjcrTWoIa0T4C63Y0rS5tpqX26vuu+qKUhFBHPB1g9NML5n+RWfa/ouk3p1LyyJZU2I5fpl2jlO2vkuQEIsuTvYSyTm6fs2hvQQmJziUvStx6soRE4veNL63K8uoy6PV5Y4e1KJJYXSiYds4iC5jUBP48kLp3bWqlX8dodXvcizoTVNhh9zK1qn5FF57ISt6WfrDE3fnyOmpfi+Hub5/s8qokdxUL2K/lM5nbv0/zkEOas1NbFaPbV1/uh5cDSxfvbT4s5t7G9vUwhUDVCDS+d2wP34+TVnCHbtX4l1Cr/Qnd/oxgnNU+l3E63RIXQ0u6HK6OlqExQlw6krH3s+8z802VqOCLy5EaU5YKfb2YtjA+PS/8ztfiYid3qSdEuV8hu7qiK7SXl1v40S2TYtds92o9etLYxHmjx3epm/pO/CTz3zzKdGIt50ugMq01pyiF6UljZn+eHXzH5KmxiVMfHRyet3Ru/Hz9XUdt+iTOi9UPI9s6LdHxQv/7J9kVkjiklUxYph1N5rv8ofwlDdsUHDnbBBj32Liouhmr3nXxr2gOCiznzclBDa7NKqJXpl3DtZqqNhWByErzP7tzycYM+9p82vd/L3Hy8+1r2c/OXbgkzfLXIfsl1qk/8vOEf7fu7UL8AgN8rHMZcUUgfPibL787JNyVpKSpzgJVv6IDusSsSYzp5lexii7W4mKyim0rpVeEwPUD3k2cMvz6iii60susNqe2cj685H+x5XOfyAe71K10cSpEwEDAr8uDt55bu2K7OehjkKqKZ9fU6st2Qi9brgoyLlNj6nd77uU1z3UJqKA2XWaxJ/KOC9EmqmtYw/oBfhzMHWse+PL77Lo3jnuub8frAwP8Gkf0j3ltUHD2x599d1GmL9OJ1d0vgQ6sWHJQ3DJo9siuba+tH3Bt854jx45rc277ys+zZI9Ng0/dAD+5zdgGXy9tQXBgoPbu4ou/j60EVaCPKqVMO5qLFVZtMv/QYGsDvP1NgA3DO/aPGXdrrexN2w5YF5Zq5PI2pyaNS7XGXG9ZmXYN14uvupQEIivL/mTaZ0XCkE5qzti+3fguqvTFL/ZfdFCIgqVTXuxvfw+8+tPliFXbhdi+6EX9E9kFh7bMmageFoh+OmGF/msoT6QtNt0rHjMrdvkeB3cyqzvD9ffq6yL02p8it6SvmKA9IR49MdHwCy6ttYyYNmbBlgP6RwjtFm3LUechs0uhtc2y5Mw/zXNNb9ZcRZudv3PJAu1u/2kTlqQd15Vmyqe9qr8omm/i07qw1fIkhakLF37fZrLqHzN7TrLuxklrpaoX9k3Vl7B99QT9Y+nWXEWbqrXF/HL2wMZE04P2QyYmbvlda/fFA4uffnHIwjTzStFWxIQ1pvacPfBFkpn96QWL03UfEwyrc1SFVrux88Wc7eZaFMXGYje6K734pbki++N4uyfxz2R+umC2egAhZtbUNbpc2nzT2hmzQAd48fetC01r7UXZfbutyLA7WtPNL0YrvawrWji00kpbs8e6gY1ZvNPmbtAFbX+0/bk+P32F6ZmdIp5qj5782W7LrjRkYtJ3J8x9EwYlWxard2st2oiD3V8lEkJbam3MxRJWrimP9J+sjhv9Y+w3M7lUtzaHzFix09xgpTQ12bK3/r4+ZsTsFZYbai5sT+w/IlFea5pasvWQ44NS4e71U7WDVX+5yyxJsyGL/J3L34zRjjb224ltfUU/vWDJbkvtspH6Qddgu81PW91asdNiFmzJ+EOfxzquHfeW7zRv2CPU4cXSMPOiFa9IqLnm76OQbqbjqjpW6I54apdJMjxm6lqoIxXClGt7kmrk4p81Pfu1rBJYqpZNNihHy5hkxC7s2qzbPWWBxYbdS6b1H7/edg2tGmBb0frkBfpjo/7Uo2ukdXWoHaH4qU2X0gmLVqltS5BbiPlAqi3QvRhv+Y4EDiyf3X+irqfqODxt8X5ZntrUzecRNfPF+dszzZuH/XFPd0KRO9E2g+83yNu+LTcwMiJMFqwGrXCjo422xRY9Xxxard/XhHYnzpAlputwxyxqe5i8euuaN+Ux2dwRVbX2a+qR7StdtI3c9KShWteG23BF7bwOu6y11Pj8pS22f1EbmNGRVgjr8dl2GDmzc9aIF+ek2r7IRZXwyjbTvu8gvazO5GPZW+UM+8HxudvBujDa7IXaNuZ/kbbYfGSePcd2anaySLbC8WYgFzgxbNu9Q2BmWupJmcrVQevL+p2W7w4aMlmeHS5an1dVtrovxrFWrY72dpegf6YvX6D9O0d1WN66fG5/3bWuY3khjDc/feO1CwbLecThUULrgv2uoVsd1uOVVqhNVXXN7uyjVaQeGFTnC8vlaP6WV17sv2DnBS2zfFF1jUjcqV30yUk1qL3PdJBRU9bzppoQImvl7P7asVfLqE7o2oj9GUElvXQ83Xxxrr+i0BKrXELbkCYYHmRUEaY0T35cIHK/eVL/rPHZPMcXQg53IlNJjl51jdGOMGvStiwwPa6rxPIv2raBITNWW757RKXUvnNJG1Hni4MvSWRHT5sabF0q44TlOx2fsuVVh9126Kjdcp6j7UF1Z8o32dbPX+pQ4OgKWWaXg1rLjj9bqXJGODhTa/OLrWhdS/TnRy2xaUXLykSRr61QjwmbDyCzYu2usoTQCizFBbx2cFYXJyPUrmpwBaW1wfJSeOaSm5vM4AAAEABJREFU8Krra5mU7wGR9zz/xK2hcsy0WerONVvtLyF051PdBzRFrbsEUuVYfh2d1k3nx6LbgCmHKqrYWtNM5Imy/4hpemRTjpJf07///Gy9br3b6bpc97a7bgy8mJdd8qG1Vm1ZwUXjT0lyaUlD0Y1Bl740x1Inx66LOcU/LTqU1LaWolcvQvt4MtnVs4au+ULh6Kct40HB9cTZowfMH0xsR2n7K0NHzZYlqJabN6d0GW+Rhxf9YD3UWDctVw4a1sQufihQbSiyHarzu+1SzWibNB1YDC5HZefccCAQWVkrJfNg8TjkmV1rHhnx0qu7LhVrRG56ZrF5lhlthsQmDpMfWLR7sF+4M8gyX74H3RWTOK9PpBCRw2IT5w1qI2ep4eDid462f2J04tRBPRoeXhu/freaKc83P8+fsSbVJ3JyXOzb49pd3Pb+hJWWmIEpQcmvB5du8B78Qmzi1P5dRNbS2e9/pw8ymrKf3D411lxL4tS+zXK/mTR3i/lb887snCMXNejx2rzYtyfd2STz82cWWm4FPbpl6uxvDgTf+Vpc7BvDm6avTJdnd1N54oxRs8+mL1746vei26jRifNiHry45Z1d5hxO3w4uXiMGPfeswvHJWhr/2pPxe5tES8bRz0eI1BWW55KcNfWzqZZnMVxuql2LcjYmTPo4r9lw2ezRw4OPvjNzmWL0aj5sZKvauz5bsV8mPvvdym+yr44c3b+xEEKlX3U0VKUfO7l33dRFC9/cfVYmMpbRshSvQuYxdr6QuuyZpYeDhshWjX2tf+CBj9+dk2z6/CWzaUPbQYnzHrs/WDTp/pgE79FYmykvwpavOtB20BvzRk/uUi9j0zKt/XLR0U/nvrs0t+lo9WDC3dq63qnFWM/uXLh44f76w+X8uMcGBx9dOjvR/NUEhitalmYdXF/prq1oE69DKyGyN61a6/WP2fPGvjaoaeEPG+Z8YQIx7oK1mULkJ785YlGWb++H354X+/rwpkc+tn9wIPf7Odqu9PakHm3PHFzwjumzrkslWysx2P2ty20jJa9cmfbinjdnrPncq5V6luSFrhdWfi7/wiFna8OBxRMtazPu4UE+Wa/OSEo/I5c0i2wjMvabI1THdx/IE6e/+8F8VMnYnSXCW7VRf6CVKQ0OSr+vnxCfWhihKY1sdvH7Nc8uNwdT1N6d6nXvOPUsz+jwvKWzEz7VwvJZK+MnffxnpDZ/YqT4LH7hCnOFshbrYLT5ieNfyL3vaFj/x96eN3p0i6wV2wy/PCN72+fahj12xgONC75fM0l3tMzetjE1+M7nn7infUMhnBzxVHOMjplGpCqPEDLXuduG9H++e9OS1nIJ5Sx+56ijc4HxodhUv/1r2y6tfE7t2W5x3p2eJa5u3cXBdxseXLj8XM+x6tRzb0Pdri0crw5Hp7YSurN0g5lFNlAdGA32XLnUNBhu+QZH+OZdWwf+cSBD29JkCcfTf86u26pb0a9DkUvEdofHvTNpC+d+nurjcCdSucy/Jw+k5taKaGsnmO34aGNwML8+8rYGp9N3W74R9Wja1txat3VpLst3xpKbviQ9YPAT/YdF1JMpXR7k1ujovF9RO69Bl2Vzjc9fcqHjwfGRVhSmJz1rPj6PndzFchjxadetjUhNl3/3NRX289YfRJtbOwQIg/SmVLq91TzD8qbWhcNzt0yQq18Xzjd7sX3NNq/+lquUj99duF27AJCFyPOvwSJVtcO9w7nhtc3aiNzt6QZ/3dFqdPCSm/rO/mbjXpLXdT3antz76oy4MabjQNyjDzYu+Gzu+ztNcTe5wcz+5rj1aC8vQS3/qSlnTcJL2063dXRYdrymZCNkafEOzx1ymXU4+92C115Nrz9cXrVq1xvycsvcGGsS04jd6nB8vJIJjc8+Z9UJ6/vil6MBkbcEi4xfUk0CMvq9q0C06RBhPi3KIoVo3CqiwaUDh8z7coY8b4qs7eanOPMy9p/2iWglPwBoSdWL4zOCwXauMuh+sw0OMpYkrUbOi53d3V9ojz3OvCvQNN8ol+GqMWUr6TV702cZbQfN066v5Bn22fHxS8/cOlNuRc9Fhp1In7Y4zRq91UoK7CFXovooFDZuXqzpEVRtvuVFbg8GW5dMYXfKdulSU2ayDo63B7UiJkU2EcL8+cvgCtlaitMRBxdIqvyin+9KOFA4ruKo/Hj1eXbTvq/LT17jIn3T1zy7eI/V1vGJTDjusizf9Ssomdg0tJF/cTuVunDlgXzzXiCEX3jHyNYh+r3AlFS4et1uTl7kzeC0bkpltw2YZslXB2utTMiyKMtw/Kjclxu3sTu9C9E2OmH+iBKel2rcc95LPYNE6T4IWKot+d1wh5X7joNjqeGxy/FllQNJ41O5bKyLZw2Z0jwE3vvSc0ZfZVN4SsZVApvIC3JhWKnjZpsLN7+pi1J5eNGG1wc39RLeXSKbqWUGB42IkS+Pj1DL7X7L8KHAkZ4Q1lJL2CYN9mJrdvcaudK9muO5rdGORHbdC+z62JrEl+Uwu2s9uwXaxBF15NLGir3U9qkf4KOe5lb3YGv3XduSeNUP8KsrD+ZeMo1fXcvfCoKHvTC05/WBAde2Gx59o8/Zw9nax6oDa9ZvFzeOe65n24b1g1r0nTwoOO/Lr9NtZbkyFjb6hQER6lbzDk9PkwHQrLXJ8oBrl3H3ms8zro6crNUScG2Hp1/o0ezwN+9o90wV7t6b1eDG0eM6hvjVD7q+68NR/iLjZ1O4Vt26L3ON6xqm2tZzytgI8xWQEIbNPpm29odzkcNihkc0DvBr3HHk2NGOPi7aNU5NNB35nKkLJpxzzfs/OthUwvA7I8XpA9rNmE6amr7hexkinFyqpqp6Lb8nty/9+ESzQTFPR6pmdxs3qEddM2Pttv2faH/p8+VbcvavX5rh3WN4X+3q8+cPbekD294dM/qWc8kb0mRIzFjGsAonzhkyuBAcOayLbFVg2F0PT3ygVaCw/zTiVTfAr76/EF4N5FZX37KxiWb9Y8bfFR7k1zhiyD096pqvp/O3r196OPiJFwZ3VFtLx4mjb/TJ+Gar2g4Pbs8Qob37dpPzG4b3HD1o2K0BQvsjoWF3LHLqvRQr3aUVLaNIRqtDVudz68NxQ9T3IYTdNWhwuDiYeVjOFMKwC9pS08uBD9fkBnZ/dMrdzYP86odEDp6hHkVZbQ65yiR1b5w4TW2HQdd3faJ/sMjM0iLvrpQsM1sGL7kiiu/+lqW695JXrhD5279KPhs27rlo6w7e3lKCeoxULpqmrc2Gze99blAPcXD+mgNC1G0TESz2Z2WplHmp3xeEBvvnpe89riZ/z9gvQts3l5/h1ZRwfFDSYpfNBkdrShHRE5+IaO9zSW7b4ug3K3641GN0zL0tArW9e8Sw4BOrvpQ1ZqbvFm0GDR6szY8Y0rWL0IVjtJrki/Hmd2DthhNyvUxUW6zamyY6OhrLEuQgk2kbtko2uXs9/dFSbhhvDO9qupJ2csSThQgR5vCYaUyqZVJcMYO7dOh4fYBwupZdKMfBucDJ8c1UfdHXFh1uq3v6u+9NkcgD29MvBUbKzxZFUwmhdvlu2qln8Nh7IkXup9vVCcJodRQ/tbnQHQuL8YFU3yyjLd9Q4NqI2xoUbE1XzRbiz4xdBT6RHVR4T1+oNu7wuHc8+avtck9xtBNpmSwvh7MyRMPmwZZJ7V1uVA6ONobdvLZLZL3s79O0fU3k7z9gDpgaptfqkIedlwb3jOzQtnGpniJ0vA1X0M7r5Jjs5Pyldc/Ri+zytOJH2sxVSw5euHWQdnwObBs99Inw02s3/SwPaJGRYeKHtHRTSfv3pIvgbhH1hTBKb0onD26WzdI0w/xqeO5Wy2XDLOuipM1eRA6xXeeMk6HSTd+Y1rssx/Ei482gJMPAsGD5tyXTmU4W79rQIGLi6K7q4s10Ojtbq9uoweo40LD5A4M7BIrDuzJVOVk/ZIoWPSZajvYPtheWk8XPH24qkMdbR4dlQ3nDzU9VZfk983Pq4Xo9Ro4wX29Ed2gisrbvtizVv+tXh+HVi/HZx/jKJCCyQxtZqek225N7tmeKyC6trJdPWhOujYyolb0/U4sNydh3vdDgWqnpWjT8YmbGYRHR1v4I5PCMINvvYDsXRX4cH2Rsibx85TVeAzmtHnv0lR8t5KgQBrkMV42WqeSXwK4Pm86wpuurAq9240Z2VFtRi3uGdaknMg9oF0W2cizni1qykQE+XrYF2pjx1qUWyy5YT9kuXGqqLNZfo/OXOjX7eMt2mD9/GVwhW8txOiKPIcXO1MVWdIkHCodVpG/4Jju8x4yRHULkJ68WPacMb1bww1fbtatumd7hicywy6IUV1CycNNQO/LR1wc1Lfhy2Ygnp415ZfWW/Xnapm5aWOTVtev2Ipksk4andS2BfhvQZmgvxdZa2ZC1skrz8sMq9b9lrHfeWW+7U2Uc3J7h+FOSWmj3W7B0you6cnS3xNolM00Y7rBGx1KjY5fjy6pikk5O5apBDVw6a6iUJfxezN+/fuGXp/27RqqQoPG5z3Gz7QtXBxk/+cGqfoDXwQ/XHPa9pe/ICHWxVKqDRlk+FBTX0zWsxG3S4V6sK8C9Rq90r+bUpNbk7f760+3qG5f9r65Vwf2uH+RnqaFBQJB5NO/A/nOibTvr9+EGtLg2UOQdUbEhcwoX3mpZL02ET+vIcJF9uEj+owcyL/m01f391q9Dz3B5XZslC/eNHJowP1odKeSEELXV3q2NCdm2SyK8mRZ30+b41Lfc0y4XGTRb3XPasE0Layl1/RtoeUt48fa3fsmmhuPlYynBS8V0Cs+ckwU4aeoReYle2qbKEq1D5sFdouFtEZb4jGjaxsZYt+PwuyNzv3lm7i/ilv7DTHHV37MOCP/Ittb0Qv4FZs0LXQIUmqGMQRUS08hZtIkIE7mp85fvzDpx9oKo2/zuwU9HFfmLnrUPdiNBDa1tC2hi2fCydx8WTZtHWCZFeFhbUXAgV2Zs1qWNyN60Ysn2zONnLgqv5vcOH9xN1SPbZtAdmck6lGKlu7SihbPVIYKCrV2r73+1tRFGXbAmEOLowYyztSIiVMdMc7Uzeq7txmc/644pZHjXlEYIF0q2JC3VuysrN3t/rmjatLl17/CxPUpzQC4Kb9XGukg07xZZ68z+LPlhOKBF89BT2h1k6iav4HufuLVN7oEMeY178vCBU/Ui2lr/oODwoCSC2jYPFAeXLtyS/vuf8to0KHLA0/1bS/QLmYezRVh70y6guir/Fvry8iHy81j4Ay9Nst6pIUQttbDYr+HmdzTrwFnRRncnmpOjsW8Dy5FBRhMjwnyE7Wip2zCcHfG0dtVyeMx0Qqrl0nFp00YvpShHO9yZyjE+vpmWF39t3qNLvbxU+ccKIX7fm37W/95bbdu2LrWu2V6t1J6unSAMV4cup2m0FN1xuueaSpOvRlu+r+HJSAvw7dqjouEnf96aWeu2SLnVyeVdbJAAABAASURBVJKKDg6Pe0cOF4imjnciff78E7L4+v7Ww6O2TLdR1bcdbYy7GXZr68DcA+lyXxN/7vo+1xwwNU6vKtEddtSkq7+Ot+EK2Hm1Bhl2QZ4jLgnHJ18to8MXXZdtR1p1fBaRtjUb0Dy8njh8VB7QakfeGCmyUtVzCeJA6t4z4R3ay9VknF6rU7fZa9PmF8Nzt7Zc17CSNnthu0ox/e0n9+gRrQz54nhR2Q0DmzQV4qK6CpKFuzr41Pe3JNWQa/nL8Ixpjpe3r7hUqG6fF2H9xyU819VyRSpqW9McVd1xfFg2ljfa/EzVml99Oo6fP2mk9apX1LLWaU5gfdOtDuPjlfHZx8mViV+HHjJ2nPqzPMFd2L03QzTrEWk7s5jqb942TGTIRULI2HfdsJFDWvns3nNALsvM2i3CIm3tl7MMBl37tVXgOJnjg4zjtLa5jnMZrxpbTqdjvlfXtyzXjng+clMxz/BtUEucPVdonnLpzXDr0nLruiAPIy5camq5TC/ZhlezpuXl8qo7hujO1EWKLvFAUSS9Nqn+JNykRXN5WaVNChExdE3i09Zb8xyeyAy7XJorKHN16s0r5K6Yd98ePfmBZv4nf3lnbvxD43XfR6QSWH+9XfmAZk1dZMT4tK4S6rYBNWn0WyZko8KM5xf5ZzXaP5mxpHb9g4C//T+rsT4WaSlJ/268wxoeSw2OXUaXVfra1LjhaUgtFK6dNbSkjl5y1ddH9FeR3Okj5qZd7PrwG+oDgvyjoeFHbFebrWo7+93iNdtFq9HDTc/Xl+qgUcYPBapag98St0mHe7FBYVU/+8qqb0LNaEFQ8a8v/SNr6VL1fSIOASrs606ttf15XH5i+eF9bb/V/oQyMzVPFGT9YU1Q2hHt0uHMJXl1pcuZl50rgq62nfKE0JKZU1w8nrp66sRppjaob6Ixz1dvoU2tMQs1afl13uwA053YlsTl+G7U1LMFF0WZmmpumxboPLE0VlsF6hj60oIMIXLVRyCVwqfj/V29hah3T+/WtdW0EOqfOQjzuGmO+dVQxnkVBo0XtSNHJI5qVXv3xmdjX3ooZvbUNY6+QtRcdYlvfxacEuKw9TzxYv8nN6QKceREnhB1O4579vnIWruWv/vkmOnRE99csdt036Vhd4pVVp4r3blVsapNM4y6YFqqvebmHRH1mjTQxk0vfvX9TSPOXl0o2Vl2w2UlrVxLxuDG1k+JllnyPS9PRpCvrq/fq/2vricXqEE9VlaQkXn2gvyIFd6u/bXNI4NzU3eflRHejLphkQ6jVSqb5ffavvMm9Qj9I3XOzLiHRkybsHC76XtjC07KSI3DzV6Ikwe2LFwwJMa0B63abilJ9+5k85Op/MNsMWU56dqgPhtckvt+sdTOj3hFktdXASZ1zHRKWiSTs8kyl2N0fDOsTIW9tKezs77fkxfcLtLyzQyGGURdXx95EJBHNuerQ19AKbrj4p5rvOUbCqieZv6866RQm3TdVt1s0XB9Ux2OX1QBF8c7kV36i9qfu+xmGUw46+a1Ebddnaueor24J9USMHWW3qCKUs62bsNCVMjOK5x3wej8VbpenPmzQIjkeNMxRL0+++VpoQ7aQni1i2pz6btUGQX6PTX9Uptb26njnpP0Tio2PHcXyVOKzV7m1MJMlwovytGig3XR5Rrm5smYbNHSy2H6zwNfJJm/N3nEiy/9YCnxogw5GRyWncgbbH6WQs3vF06kLXlltvZ1by/2177Rz7zA8M3p8crZ2cfoyqRuZBcZZ/wl9eLZ1NQscUsH6x/jbU1o2ypSHM34XWTJv/VEdGjeonXE2azU30XO7sNnwlu1MYye2gqogjEnq6YKWiOr/NPx1iWX2A2uX2qasjndHkxJKum1dAcKS6MKjp8SXnVrWSZdeXfeZYNdtcSCvRpH3D145pwZH8T1j/I6uGDGSnmQLTFTKRMYntZdLqdsyC4Xb01Y5J/V2N3hW4oPAupBST/tDj71WtfRR0VLlU52WMNjqeNjl/FllaUu7d35aUhLchkv2tdHJM6LffuJZj6iVpvI1qa7l5xU6mKzZZvykxMXZHj3GD04wnzsLdVBo2wfCmS1RkNlbZNG9Zf3/CvLu0DKMxAIb9amyJKrm0bd2kwGI/zb3hpp/iQsLD/BEeGW0Yp6V39wa9L9Ubnf6ofhpfiUVaRleUdkeMKnlv2BLzA0WBSesn2BkRBaMi3rhdRlT75zODQ65r231SPqa0Y102abX47/oUIP5gnbm/Nm/1kgo6u2xOU2ZtzUuvJP/WVqqrltvj7eQoSNnherXwuJz91pDgAd3bJ42yX/uqffX2P6RkUhrg6QAVr7aK+pKEMZ51UYNF6VGRAxQF4lrHl78usjwwo3vT9mufY8lVpS2t/66u7UNnfb9XFe7Mwo2RVZVEDHIU+/kfDyB2+Mntj20tr4+CWH5EzD7shl9kN5rnTnVvb16qccdkGXIDiwibCPW51QN33oUhiNllSyUb6S5ru0cv/409FOGBgYLMSZs/qNUN35Za7x2jYtROrugxm7s0Lbtw4QgZG3+qem7t29/6ho29rxvWTmjOY33+u7jp82ZWXi9MRJdwbt3/hM/HbZBn8/9fFfX6M5tfh9xSvLPrzYYeZL09ckysPI2GGybZZllnfnm9/pIzJKbknq6vsfedmiltz3i6V3dsQrllg7GKpjpnPSYvkMZ5SxHOPjm2FNQoW9Tn/3/fbt6aebdY00H6+MkwtxVovKBQbJv0XJiLzh0UBfRCm64/qe63DLdyagepq7NT0vPTXLfJuhvo3Oxr1U7NXxTmSXzbR5280ymHDaTXXzZsb3Px9P/yXVEjB1mt6gjtLNtm7DKlsF7LzCeRecnL9Ug1z8Vfdi1LvnOfuz8Lz+2jVb3YguYWdS0w78nv7dqWDtuWyh3bthlN64SsNzd5EspdjsZc7j6nZa3T2qcpZlsC66XMOr/f0tZZbje9aahZM2XOo2duwH6tD98tsPWCpRd00aHJadrSnhcPOza/DFtAWxazKa3jP7DdP5YlAXu8UOJ5ycPpyffQyvTGpHdIgUWduT07Zn1OoR1c5BrV7hbYJPp+/fk7H7dESEPG2263bL6e9+OJD9e4Hu600c5KvKWU5XTeU3zHDrKtoU1y81TTmdbA+mBJX2WroDhaVZ/kENxMWzlyyTrrw777LBrmpYcH5Watruo7ZPhbUbdng6upk4e/jAUcM8ZVvg7LTuaokuIl8sPPmn/q9BF85I4VrCS1Wj3Ydke4BGzZK/u1fGjLd8Ib6cFMLpSwV8EHC6wxodS42OXQ4vq4r0yPlpqEji0k96+6vYa/2gyHsGBZ/7fI364CALcV6pK80WR7e8tCI3sPujI23hkVIdNMr2oUC23WhwcZs0yu528wlEVtYq8etwj3ZVa60vsG2Pp4d3CROi9rVd7m9ruZ/ItLhNly5+prGKew0MDa91ZPfBQm3XlX85D/CrJYS37bFBU80N/eUnzItnrOeMP49rz9SYFgqh+zv8GfXlNaFNG1sWmd4bNw+vlZeenmWakq8n93x3WLRpIfstMuTs4Nb3RjQ2Var94UKmkENg8xa1zuzea8t15k/LQxmBhs1WoV7t3itZgBrOqrvw1Eg5/JZzU/UtCg9rJg6nZ9bSVoH2hyxxqbb5r2H5W5eqL3OZ/VxkYMbGxaZvK782rLkoSN0tgzPmUg6snBuzUIYpncgYVeHE+einr8yO3fi7qsOrbkhE9OBbRMH+gw5vi3DlmiY0PFhkHjygvuNG66Nf/dpCqPV+dMvU8Qs+1eqp7dM4Ysg/uohzGfvzhDDujmqT5bfcV3q4kZWlxuLvhl3QJW3crI3tO/XU/Pz0A9mipL83uFKyKqy0vy6t3NAWcpXtzThjKfzMWcs+KJrLRRm/pFoXiQOpu4VPizB5rJCp27QNE/s/W/yD+UFs9ZRHxralu09HtrX7S4NMWWy4mL5kdoz5O+m9Aq7vOqy3v9h/MFseJMObhoqsXdoDklqu/K0LZk9YkymO7k3/Q7SJ6hrW0EubX+QApc0TwnDzaxzWvO6l9HRt+9PSFvwhLx+1sWIv+j+oZO0+LDfRJkWOdiqLsyOeWm5wzHROqmV06aVs5Rgf35xUem2Prv55X25c+0dwt8gAg3Ta341Nyy7uVd9zFN5UThmuDrnMfihFd1zacw23fKcC13aJrJfxw/rkjHo9u8qggH0TnU452Yn0+Wr7yT9HGYYt9CmF026G3dI6MPOXpduzArvcam6o0/R2JesnynLer6id17jLTs5f+s64MK6OA6dl0Md2Fva6JHzqypOUzKw+ep3NWrvmQF6bSPOFmdP0MovjwfDcXTR5iZu97pLs7IHdJ0Rw4yaWMhwvMtwMSjTMU18+46PO15Yayus9LyP9tGgb2fP6AJOz7direA0Oy2qRwzVluPnZNXf3z6nCv1v3diGmSyztpGaXwNGE4fHKydnH+ZWJV4cet4jUVRvlHwy62D7c6usObNO2XvaX6z/NNT+ILc+qeemfrc0wn1X1SStlvMijTo7qNFw1jhKX6zxHf6E03rqKVu3apaYul+H2oEujH3V8hVzCMVZfgOG4kwOF9sct/Qc062co9afiI/sP2D5C7F89ZnzSd7bLOQfVGXZZrXSDXdVBMaZZf25fs2bayp+t15Nyrj5sJyfLa3B6Wi+hEutac4KsK+LgkglxEyz/a0vOP7D/sKjbuLn2z1JExK096has3bBHt6Ge/e6LX/K8AkNd+aRfQR8E1Lor/bHUwbHL8LJKOsjBKml8KpepynEIvHfIjT6Zny81fWQ2PPeV0GxLg45++s432cG3To7WP89VqoNGGT8UmBpg0zNNa6+ubZNa0urwQiCy0taS+r4/fSgyb9u7pkeS5eukbad17QgePbyD6cpMN9P1UW/fuiJ9+075x3D9gb54/ra9bw3N/X7a3C27T/yZfyJz6+L4ETPW7C7ygI9X8/bhInXl+1t//zP/959XzH3/s1P6krKWxq9P1xYtmbshVYTdb77HzZambf8ebf5IfclUy+9pb77y+cGrI4dF1Zcp1LktN3XpxgM5JzJ3rkkYs1R+tpez1dC8+62hMteCbVkn/sxJXz8rPl2GptQCIQyb7dfh/lu8U5cmLEk/aurOQlvYwpS17K/l3FR9Q/wiB91Sa/ui+DdTj+af1Do7+bU5yeoioXD7moWZ9e4f3CXo2r7ju9bavmRNulo77R58oOHBVQla+rysLxLnfHmueZd2vs5kDKswdm7cJlwc/Ph9rRbZqpUrfhCBEa2C9C1X496+PuJIemrWyXz9HwPVEvvfgKh/RImDr85YsVNuLSePpsvVPSFpy0khGrdq7nVi6SLL/OVfbRfmS23DFa0vudxXuvHq0FdrN27cBV2y5g/2D877ctmsjQeOy7WcumLaqtwmvftav5dHl1I36lLJuvRq1JXd36WVG9DlH1F1sxbMXSl38OOHdr45Y8NBhBPcAAAQAElEQVQuVb76DbirZw+5yLQ2Txz4dO6qzy+Gje5vDn3UbtuqzanTedYHsa9tFVH3RHZucGTbuiqzs1+v5i0C8374bI6mdPzQtqWbCkSbduqw2fiOwbfU+nxhwqf78/Ll9rM8aWGGd7dbw4W6lhLbN6zceSgvZ/+2xZOX2R+gzJUZbn6i+f19Gsr1MueLzOOy2DUJc+wOxebspre8L99/c7tMpna6l748Hdj9TgeP1Anh5IinleP4mOmcVMuofzFcy6Usx1ymk+ObOYWjt6Au2r8PDG8XaXgxnfvOKyu2HspT5474z6wnCNPqcHA0KFZLKbrj0p5ruOU7F1ABvv1ZqQ1ad9FfixZrbfEZTnYiu8RNw9qIE9p35trNdjDhvJvXRtx29eHUjHq33WppqPP0DirQZpXlvF9RO68w7kJz4+uE3ctnxyzfo3XGlRd1HMjelGg6PmuHu9eeXX7A/LnRq1VUm9OpGQWRke0sF2ZO0xtWaHjuLpKjxM0+deWyFfI6Rx6ylicsyBCRve8IshTheJFfpNFlhhNDrci8rFz5l2P19wMh8r5b+OYc7f9NaYsu80V9lhM/fLUkNfP47we2LJk71XbsVbwGh2W1yNGaMt789M1UH0oL1q7csvv3vKzU9bMm205q+lRFxg2PV07OPiVdmURE3egjhE9EB6PvewyLCPP543Se5UFsdVbNPZFtPasWaaIwPCMUTVj6aS8fb5G7J/XQn/knrXckOCzFaNU4TFxOM328fUTW9tS840Xb5mTrKlq1S5eaukyG24MujWXU2/AKuYRjrKWAou92K9rJgaJ222bNRNbShTtz5AWn/WeoiD53hGZ+Pm1xmlwkr7LmLEwvbNEhQm6OReuyTRt3Wa10g1317IE1b05daTmK2gq79v7oZv4ZGyYt3CIv2+Tl3O4vVjy7PEuER3Yxhe1sKS93zPlp3bh0u7XmBFlXQthtt3hbLhHVB5wF318K7d3VfE0smg8e3kz88P6zi3fKj7T58nC3OH5BhneX6B7qlhxTKWfOyg+A+sH2kaosHwRMhTp/VeuuDMfSYscuw8sqIY9L+k+Ixqch5w0t9dIWPQeHX9q+RvsfboaVOmm2rcKcjSuXHq53T/StviflAVAbzqjP4aU6aJTtQ0FRPVujhGvbpC6DafRo2vxXErceNU240SuByEpcGX5dJo5q5V9Chd5Ro0aUEJ4ooYTm90c3rb1rw5Oxnx1wnrJxz3lx/SPPpL4UGzcidtmqP5o9/0J0W68ieQJ6PtG/h9/hhTPjRrzy2ZE2Pe6xe/Kx2YPd/1zxStyImas+PxP2xNRHbyt+MvPrMtNay8z1B4PvmD2tr+ngG3DX0Mld6+3esOyZ2GVLfw+bOKyZvNLNMu0kjXvOnHRH89yvn42Ne3ZlXkR0RKi1XYbNrhsxcvTzt4qtixbK7nzq1fOJ9tY8lztSQlOfiwjMLFVT9e2RzX529gOBB5csHDEh7pnFmb59HpsYFSDOpC1emeXftf9g7RNl8/49Is/uXbhSrdKQu2Ms6eMnfXm2y6jR4yO0EI8zmWctWeJsVchWGDuHRY/VZcny7f3wvP5aU2Qu21C/S/+IJidSn52QtFVGFW3zi415tX56zmPDgrUNacLC+eneD04a0VPFL64dPE03f3et+8eONnVZGHZHX7jUK9+VLgs0sNJXazdu3AVdsoCopxNHqSfcn5RrecnhJg88NtuBpy6DGnWpZJXQ9uvS7u/SypWrbFr/Hhf3vjQz7sm539eO7qF7iq35SOvajH1/1Zmw518a0dG67/s1jwwWPpEdrBdh3SJrieDmbdTqtjXU4ZhvlxFWpSfnfpPf4u7XR3fQPvzL9TL6+YizqxbEj5Dbz/6AJybF3KtuSGw+7LkekWf2vjo7/pkFaaLPoIebiuxM2580zLXIvlgbLLPbNj8RdJfcmxpnrXn3yQkJi38PG9zV8Agd2vXOsNRVYybEP7vqsH/Xh+fZ/YHUXI96Mz7iqaXC6JjplFTLqXtxspZLVY65SGfHN3MSR29+YZFXi2a3aN+a52i5EM1GD/HeEr9QniA+PdHYdoIwXh3FinG9O3ILKXnPNdrySxBQAT4RGBlhOnMVa6TxDNnTF+6W26ejnUiXS+0yl9J3/66bZTTqvJvq5k1hFzB1nt6olrKc9ytq5xXGXTA+f108czrvzCWj7hWfH3TXON2R5+u8tv1fG95cO/LItHUj1LMrYV0itfOsnCHkccNJei2FoxfDc3fRxCVs9l36RBauSZBHwpe2n4scNHJcF1vDDBaVxVA16veDGSK4S4T6y7EQfx7Yn3sgU/2VVC267N+2Qx57os25re+8++TM9z8X/5jcu6HIPWp6DkYelmfIi0NHh2WjNWW8+eka6td1ylh5tfb9tJnxk9bkRYzsI09q2Zmmi05dsiKjci92fPpwcvaR4E6vTMKbtxW1butiOUkWqVFOtmgdIUQb03eSykm/dt3ChfHXmzg5I8jMlzUEdOl5f/Dp92fHvZSqv2HCQZlGq8ZB0vKa1eIfw1vU2v5O/JMrTRuOrVwnW5ctkWnMpUtNU1Lt1XB70JbavTi5QnZ+jLUrRTdRZEUbHyj8uqrPm/s3PDPBwWco+fGqSeZ6uUhe2hVG9n9tZDtfXR0ORo27LHfV2Q84vIK6dCQzNyMzr/gNMb4RQ9+O69/+VNrC2epy7qUNR/279E98oYvRgxUO2uParBJO64aFFFlrxsi2ErT9vWu9g8vlleTCl77Ib/7AYzPvVleopiS+EUPfeO6OJpkb5UfaETPfX5Hb+Innxpo/uJlSZGyQHwD1w+LdpgXytQwfBGSukgejHdbX8DpcK7PYscvoskqIIpJSqeSLNK2Oy3wJ6Nn/Rv/cb5Zul387MazUuNnW2vN2fX9CiNOfxb9mWzWvfK0eDSzVQcPPMAyi1WT0oaCInpbW/OLKNmlOans7k5mRefSA3c1ktoVVOEYgslLxfSMGvzHpjvYNDCpt0HTYpGefNgWViiSRG33iy+PlhYlpfsTQNYnPaZ/DTdN2r0FdYt5NfHlN4mCZPOju59YkDpUj5hSqHF3Ghh1Gqq9jk4lnJLwwoKPDv0fJNC/NUN+/ljBp4t0dh7/08ry7A82lCREUMXhegsz+8so5I3pea4liFmmeLMFSyxvjeja3BixE/Ygh45ar7DMS5PwuqlMPWA7dvtf3nDhH1StLvrfLgHn6/uoKtG92QMfh45arvs+YN7xDz9EvrxnZztpUy0i78YmWLqh2FsHRIQtdSudNbTEg7k1zU3uIgmztr0Dm6gybal6uvdVtfveIN5TDy2sSxo2/K9xXzvXpMP7Nl98dYrlO9ek4MdE6aUu/cs7TwyN0p2/D6mxZbFXIWoQwdtZnmTSzv/mrf7VMtpfaLQZoLR93r9x41NalBwy8V7+1+ITfO26StnZeXv7S0J7XWz476efPeXpwW9NnHq0Kw+5oS80vRitdt/pKsaJlofqOW1aH3cYg04iIkbqty6ALRfa+gIjBpu1kjdqVtLWsStKKeqlnkDauXvStNShZJbP8FqklSLf7W5Kod/tk+j4arlwh/c37/riREV3ljmM7BNkaNmP5tMH2hw613pdbN10hmg+ZsUbXQfuWCKE2G9tBSac0JW50lxAv1XjtV1vR2m6i335qX9vVdKCQG/bIyNYPTHt5zegOWnrdBiCnbQ223/yEokhQxaqjULchz+mbKvPZhqvVBrzSdHgZYt0dVGf1h0SVXro5PuKphY6PmXKJrYX2pPrtQSbTBru1rBLYAIVBOU7ZjQ7FqneWo6h+XGvE7+mf/xHc0+i5bNWqod3a2o6NthOEzG1rpP3qULl0fbFLWSKLWpXa4Uh3IJUl2A36NPot30jAlPnawXNeTrALPeu2LrUBGx/3GnexbZ9XFxwQtXxtZ0BT4fI1sEv34LzUdMuHaV3hcqHQDhG2c5m+C9YDlJZOiLD+k9bMN/+pzzxL28KLs6jtQbdXWhJb3uU2bN73XT7vC1FRO69BF2RbDc5fv2dkimba9wDINNZBHbT1XVYbm+0CQNf4STOHdNCdVtW/bluTOOI227FIFek4vX2ZKp3dr23d6c/dDtaFbQex3+xNpenXzl3X1jbNNL0aLrJVLQ+V5ssMLYuBoVqW9cOevPAOlluew4frr0nUcvOvar/lOlONF0XW7dH6ncXr2p7mS4IZ8oKtbf9x8mK1o7nIum1tF4d3eJ0oED71rPyO5Z1tfuZC5Zuv7oh0b4uO8qT2Rn910amabdQFmc22OuyOV8ZnH5lHO2GZzhfFLkcvpKel1m3VrYVMZjSog8BM7eEhLUX9bi+8bDkUqxn6BsvpIN1538l2rsulytefuVQu20FGFmkZvJoP1g4F8+6SV/4l5DJaNZayhK4B+nF1cinaGN1WpMulUuocArs9N0V9PBnZ2lqFecRw61Il6OtS6eVeYzll23+mUAvVr9qvdZuxwfagXczozwXCfIWcOE5dIauCdL+yUg1WuyDsaP1speuslljtMraq9StaLba1pOiBQq4L66ezIp+hrLu8rNp2rFMV6RtvD2WryG4XENrB2dEVVP1uz728xiC8WLthh+EvmD8OrHzzOVsb9Ffaytx2fC5mq9sUVUoLkX7c8IObfdeUo91v0bVm63tRZF0289c4qq3R/grflMa3RU/zlUCiLGRozxbWTzqqMSqXOlaoT9OmcdvFtsxva8DLy4t8SpJLTYNdx02zzK+6LUqrS7eby43E+qlEtxacnMqFo2OX/uSiv6wqvv3rU9quXlQLdfu7KNKXolumuV/Wtwj5cUyfXS5oES3DIBPNf6JzXKlp07VcGumabatd47JfL7YPCHL/dX7QkM2wDrrE9mEQlcLoQ4H9dqjb4GUm2yYhNyfdR7CiVqoL5sPd9QPeTZyi+6ZLWYpbDAQiK3s1yBPAlPmxrw2LjGxaz6eWVnst78CmYfcPG/ne/Jh7r7dEZ7QlvLi/wIXdKx4bn7BCPSf1Z076+jkrs/xv+Yf5m6Tcv/W0EAEEECitwMWzxw+lLVmamlcZX2dc2sa5U/oT22Jj5i5WT/T/efzQzjcXpeY1vfV+R9GHgKiePc6kfqj+gO9O7a+ebblwKD3d547RdwWI6tl+d2n1mZ0fbhL3D+6ij8lWStsu7l4y67G569N//zP/5NH0NcuWZnhH9bELDVdKMyqmkot/5uzfsmB5VmCU5YtcK6YeSkUAAQTKU4BjV3lqUpZZgECkGaJy3+qHdek7cdok7WbAl9ckTEmYNmJwl2vVfXCV2w5qu3yB2m37T+ztvXtJwogJcc8s/rkwov9rI1vb3aFw+XVQAgLVS4DWerbA/jVPzl6z1Sty9kjTg/Oe3dvL6F3DrhNHhh3ZsOzJCXFPzt6ovpnkOd29z3YFNx85+sYDK9/fesJuLhNlEKh9fd9503qGlCEnWWwCRz+du/H4A0PN35Rim18JY15tox9+mfoxQwAAEABJREFUsG7m/FfiRkxYOCf5bOSo0U+X/BXDldCwcqjieHLiM3O/z2rbx4XvZimH6igCAQQQKBcBjl3lwkghRQQIRBYBqeaTldl8dfey7rb5yqzaveqq2/yuoZab26fEDfeUv9u7FzKtQaAKBXRPN1xOKzzmmNl28JrEl5e/0Ff3PRuX4+LJeQMiBszUvmNkTeKM4o/k2PW8RfQbo+t9t82Vb4q0y1epEx6zDVeqWjlWpp7Psntqz1a2k0W2RK6O/Z6aHv6w/mvOXM1YLul8wnuONn1vz8sr3xw3Uv/9M+VSftUVEnTXOHkoSBjZsdLvM626PlMzAghUuECFV8Cxq/yJuaASgkBk+W9XlIgAAggggAACCJRKwLdF9JSS/4dVqYokMQJlEri275QhzXlMxwU7kiCAAAIIIIBAWQQIRJZFjTwIIIAAAgggUHUC1IwAAggggAACCCCAAALVUoBAZLVcbTQagaoToGYEEEAAAQQQQAABBBBAAAEEEPB8gYroIYHIilClTAQQQAABBBBAAAEEEEAAAQTKLkBOBBBAwCMFCER65GqlUwgggAACCCCAAAJlFyAnAggggAACCCCAQEUIEIisCFXKRAABBBAouwA5EUAAAQQQQAABBBBAAAEEPFKAQKRHrtayd4qcCCCAAAIIIIAAAggggAACCCDg+QL0EIGqECAQWRXq1IkAAggggAACCCCAAAI1WYC+I4AAAgggUCMFCETWyNVOpxFAAAEEEKjJAvQdAQQQQAABBBBAAAEEqkKAQGRVqFMnAjVZgL4jgAACCCCAAAIIIIAAAggggIDnCzjoIYFIByjMQgABBBBAAAEEEEAAAQQQQKA6C9B2BBBAwB0FCES641qhTQgggAACCCCAAALVWYC2I4AAAggggAACCDgQIBDpAIVZCCCAAALVWYC2I4AAAggggAACCCCAAAIIuKMAgUh3XCvVuU20HQEEEEAAAQQQQAABBBBAAAEEPF+AHiJQBgECkWVAIwsCCCCAAAIIIIAAAgggUJUC1I0AAggggEB1FCAQWR3XGm1GAAEEEEAAgaoUoG4EEEAAAQQQQAABBBAogwCByDKgqSxXXqFe+UUAgcoXoEYEEEAAAQQQQAABBBBAAAEEEKiOAqULRFbHHlZQm328vSqoZIpFAAEEEEAAAQQQQAABBBBAoIoFqB4BBBCoAAECkWVEDfSv6+dbu9bfuDGyjIBkQwABBBBAAAEEEDAUYAECCCCAAAIIIOCJAgQiy7hW/3blFTIWGRrc4IYmfgwIIIAAAh4lwIEdAQQQQAABBBBAAAEEEECgAgQIRJYxEEm2ihKgXAQQQAABBBBAAAEEEEAAAQQQ8HwBelgTBQhE1sS1Tp8RQAABBBBAAAEEEECgZgvQewQQQAABBKpAgEBkFaBTJQIIIIAAAgjUbAF6jwACCCCAAAIIIIBATRQgEFkT1zp9RqBmC9B7BBBAAAEEEEAAAQQQQAABBBCoAoFKDkRWQQ+pEgEEEEAAAQQQQAABBBBAAAEEKlmA6hBAAIHiAgQii5swBwEEEEAAAQQQQACB6i1A6xFAAAEEEEAAATcUIBDphiuFJiGAAAIIVG8BWo8AAggggAACCCCAAAIIIFBcgEBkcRPmVG8BWo8AAggggAACCCCAAAIIIIAAAp4vQA+roQCByGq40mgyAggggAACCCCAAAIIIFC1AtSOAAIIIIBA6QUIRJbejBwIIIAAAggggEDVClA7AggggAACCCCAAALVUIBAZDVcaTQZAQSqVoDaEUAAAQQQQAABBBBAAAEEEECg9ALVLRBZ+h6SAwEEEEAAAQQQQAABBBBAAAEEqpsA7UUAAQ8UIBDpgSuVLiGAAAIIIIAAAgggcHkC5EYAAQQQQAABBMpfgEBk+ZtSIgIIIIAAApcnQG4EEEAAAQQQQAABBBBAwAMFCER64EqlS5cnQG4EEEAAAQQQQAABBBBAAAEEEPB8AXpY+QIEIivfnBoRcEeBcxcu/Xqk4Luf/7Ml9TcGBBBAAAEEEEAAAQQqWoDyEUAAAQRqoACBSHcMCdEmBCpZQEYhdx3ME3+J9s0a9oy8jgEBBBBAwOMF6CACCCCAAAIIIIAAApUvQCCykgM+VIeAOwrk5J1u6Ff3hhD/enVru2P7PK5NdAgBBBBAAAEEEEAAAQQQQACBGihQ4wKRNXAd02UEShTI/eNM8NU+JSYjAQIIIIAAAggggAACCCBQbQRoKAIIuJ8AgUj3Wye0CIFKFyg8d5F7IStdnQoRQAABBBDwaAE6hwACCCCAAAIIFBMgEFmMhBkIIIAAAghUdwHajwACCCCAAAIIIIAAAgi4nwCBSPdbJ7SougvQfgQQQAABBBBAAAEEEEAAAQQQ8HwBelhqAQKRpSYjAwIIIIAAAggggAACCCCAQFULUD8CCCCAQPUTIBBZ/dZZdWvxhX2Jz0avv1DqZp/7cujATftKnY0MCCCAAAIIIFAJAlSBAAIIIIAAAggggECpBQhElprMluHw6pYh911hGx4IHbho3XHb8lKOXUhJjB+7PqeUuYomP7d+2hUhzybpmrHrlSFXXL8oxZYwP2ngfVcM/vKcEOfSVg+d9qXjYJ/qXUz8YVs261h2YswVIa9utk47HclOfLbV/KChUbWdpnK00LtTdOCyTk+lFDhayDwEarYAvUcAAQQQQAABBBBAAAEEEECg+gkQiCztOiuavu+i946mqWHvR49GHd58f9Srm08WTePadOG+LV+9vmJfrmupjVJ5d7ixhdifnGFdnpO8pUCcT1lnm5OZvEO06NzSW4iCX39c9u5XKbqopTWb/UhKdMh90Vvt57kydXzT0OmFEz96vpefK6mLpKnX660Xo5Nfjl5/usgCJhFAAAEEEEAAAQQQQAABBBCoaAHKRwCBchcgEHm5pN4NAoKD1NCyc9+kDSM6nvo2bkt+mQoNGPrRJ3991D24TJltmZq2iKojUvZY7qw8/su6Q7516hSs22GZ8+svKcI3qnOIzBL84Oy/cmYPDZKjFTIkz1+2reej09uUufAbp09qsWXSspQyF0BGBBBAAAEEEEAAgeopQKsRQAABBBBAwPMECESW6zoNahQqxLYdmeZCj6cM7RGtPbsd3X7aj7ZHjE/+GDvwMW3+A/494i1Pc+fEd73viqe0mNvWV7Wl+ue+rY9Cn05JnBZ6vVrk3Wlawq/Fv3uxRVRnsX/HvnNaI87tSNlW5/a4x/z3J1vmZGTtFy2iWqvFRR6yLkhb3S/iAVV1xLT4HcdUCiG0NC+vEmLVEFmptRki15q49aTYNIc3LaYkrCjs26eTt6kgod1WuVyaaFWEPNYvcZ9mcixh4H1XdE3aZ0p27sehre/zfipFWySCB/bqeerbpB2mZbwigAACCFSSANUggAACCCCAAAIIIIAAAuUuQCCyXEnPnZbhs5vahKhCT6ZER728zm/A1h3vZX30D/Hu9PavmAKUmbE9p8852UnOP5r8fLT46v4o/Rc4qqyi81Omx73Va/JTPYXw63NHJ23JvsQXOk/PiVr0+tG01xPa7H8y6uWVRZ8Er90pKkwkpyVr6ZO3pImefx/bq1Mdy5xdO/aL1h2s0UEtlfZyeH1Un2XJHR5Nlw1+68Z10zfv12aHDn7taNozfYXQHkJ/KkqbKcS3wx7b12vF20eTXxwZsnvOwERTdeaFpre0H9eJFv061zZNmV5XTfqX/yRZ4OtrB4r105/THrtuFDN/xE2H1sR8qO4k3TX/rWWnOiTN7uRvyuB9Y6/WhUnrfzFN1ZBXuokAAggggAACCCCAAAIIIIAAAp4vUPN6SCCy/Nb5uZykUYlbRIuxfRoJIVLmx686/491Hw2IahoQ2vnxzbNb/PbW6s1yweG0dTli0KTH5fzgGzolvPvcMz19C4p8S6N3PdPj3sFBXinzl21pcPtKU2Du+Jcx07M6zn4tqVd4cFD40HdfHFknbfpHlmeuZeHaENqhRR2RuetXOZGZvEP07NlBdPh7P5G2Lk3OyUneUVinQ3ioHLUfUhZ98FNIn+R3+7ZXDR6QvKKX6oYQQjWmnrd8Vw+hqxE5T4gWb2+ZHNOmkepCXK865/ftKvZvbbLT9p+vE9YySEtueem56LX4bqrx/Ra8/kGU2DJ/c7Zc1LTvyklNtk365+ZfN41963jX+WOj/eRc09Co5Q3ifFqmSmaawas7CZzatWrMwI4tm7cOb97+poHTP8+zNS4n6YFwNV8uMg9jvrEtFeePfP7yo93/3j68+YRt+tmHVo3s1VHL2PGesWsPndctYxQBBBBAAAEEEEAAgXIUoCgEEEAAgUoXIBB5ueTaA8v3qceZb3hyWFrY28mvaF+5mJOSXCj63G65f1AEd2jRSGTuk9G6ph36hYhVk16K35pZcE6IpnfELxjayz5aZ21Twfq5928Qjy4aa/5nLxlp20RYdFSAJUEL9RR2Wo5l0vKuwo5HkjMuCBn0zGsRre5J7NAvqnDd5kxxbl/yIdEv6kZLUut7TsqOQtG5Q3vrjMBG5nsSrXPsRoJCrW0ObBRqt8g8kfvrcRHSqMhXXvo3qG1eLOpF9WkhDmXu06Zbjnp+YuC3vaPe2tZ6RNKD1g6qZS07NBHn8yWVmuDXrQQOvffQgzP2hMd+/PW2nZvm9fjzw5i+09MtLTy0a5+4aUjCojetQ0wry7JT347pdlfMtw3/L+6Db7ZP62SZLc5/Nab3jPTw8Z9+ve2b9eNDUl+8a9xXhCKtPIwggAACHiVAZxBAAAEEEEAAAQRqnsCVNa/L5dxj7YHl946mzZ19vRA33NHvBlOg7XR2nhAfTVcByhAtTNlzwzFxRLtLMTxuy9y3OxyfPuSZgBvu8+7xUtKvxb/nUWvk8U39RqX5DX4xqZupTFGQly9E1rjOWoGq2P4PJQvx67FidwuGdWotknfsz92Rsv/6TlEqYli7U1TYsfT9uXv2J4uwTm208ou9tGjTqNi8ss8oOFXoPHNwoGxZoYrGqnThseNbyPe+43s7CGseOl6sjzItQxULbHsnbm+TEW/Mub91SGDg9f+Yu2BEkxMf/st82+P5U3K7bnJbj7v+YR1aB5oanLf6qZGfNoz9YvO84Xe1CglsUMc0W4i8z977QvSe+9YgWWBIq0GL43qLL9/7RO5KlgS8l5sABSGAAAIIIIAAAggggAACCCBQ6QIEIi+X3PJfs1uOnX57nR3LpqvHn2WZ9UIDxXWPvaK+5DFNhinNQ3xnIeRCv5Yxb71RkPPJ2bS58U13D4ualnRczi0y5MQPfmtbSJ/kONvdi/6BAUJ0WKorUJX/UfHIXaOoKP/zO1LiN+xv1LODKa4X2vnGRnLO5v3nA2+MalqkLvNk9q8y0Gkev/y34BCnt1QKkX0oRwhff2+tqnM/jp2+36+B7/rpy3ZpM+xeAgOK3Flpt5SJqhE4VSe8X/+ne7e21t4k7HohLDcwnsjLEa3ah1sX2ppKguQAABAASURBVEZyNi1NvSZmziMysW2mNrbnmx9E5G22Alvd1lH88M1ebRkvCCCAAAIIIIAAAggggEA1E6C5CCBQVIBAZFGRMk97d3s8PqJw8bjV2aqIkPadfX9L/rEgKCDYPHgJLeh2bmt8cMSr67Qnjb2DWsZMH9BC7N6cIYr87Et8ddyeJrNXPG57VlqmaNOio9i/Oc3LUmZAcB3h7VdbLikytO98ozj0VcIO3369LJGgNp361dm/csNx0flGuzLNOUM6dfY9n5yyyzwpRN6xAuu4acQSYTJNlfjqHxQgco7l2qcrULfJmWadTknOEteHt9SmUqbPXSZ6bd4xomfOhuhFMkCpzdVe9qUdEYFBJQQ1tZS8VK5Ag04jX5n7gPVxayH2/pQubrnDPONE5hGRs/Lp29uqL4i8qdfo9y1f95iX+tXe+jfV3znavKiP9ZsltZsoGzY03zcpOxOoG5eTDAgggAACCCCAQCkESIoAAggggAACbidAILIcV0lAzAv/qHNodezWC7LQqFEP3XRoTaeBq5MP5+ce3pc07pnGPd9KPie8O7Rtn/ft0CHm+QnTV+8XHfp1ljl0w6+ro6dnXffY40Mb5OceNw2nVegyqPf0gWLViGeGbs6U8/dtTYrq/Eiv5fm6nJbRNjd2FYUnz3fo18EyR9zYr2fhbzmFXaPUE9DWudaRTrLBORuiHlu/63C+Knnw5mPWZTKEWkes2/BN9uH8otFJW5qiY6EdWtQ5n7XvuN38LZOmxW6Vjc/cHPvCQ8mi5/he6obNjH9GryjsOfvRTn7dk+a32D/71fjD1lzH9v0qHP53HWsKRtxDYO+rsR/WiR4/wBxHPF9H1K/T5Lbn30r6V+K0HuLrKb0nfHJKtTRPRij/3DR3ZYMp67ft3PRmjwvWb5ZUN1GqFPwigIAnCNAHBBBAAAEEEEAAAQQQQKCoAIHIoiKXNd350YTOhasmaQ8XN+27K+3FfidXd+v8SOPOL8TmdFi7ZWyUtxB+3Tfr5x9uuzT5xWg5X1dxdvKXPwnx27vTG3d4xDI8m6Bic7V7LUjcMT0kedQzcn6rESnBk+ZuHhKgy2oZDWrRScaDojpY/1uOXBDVs4MQ/p3aOEovFzftm7zh0ai0ZRGdH2k1Pqvf9F66gOWNsbPb+m+YG9b5nykypYuD+p85+9ftUGFZa45Bk/rmzn62cYdneq8o7Dv79XV96wmRE/fUht86P5WkxkXwg09NDMkaN36T+VbKc79s3uM7tO+N1hIYcUGg8pOc2jZ2ZML5fnNfvMlSd+SUH3emvjv+vjsiO90xaO6HL98hvk74+IhcmpfzH1G/d8KHr/S4XvtmyeXT2p/4MOGLUt5wKwtiQAABBBBAAAEEEEAAAQQQQKBmC1S73hOIvIxV1nTAvpxPVnbTlxAw9KNP/kqxPE8d1Cnp85V/5XzyV87HuR+N6hdkSambX/D55KHm/28TMnbbJ3+91UkmCh2RoOWSGa1DwljzFzvW6zRiRvYhbf6hhJVDWho8sxwel/7JXyu6e8viLIN33xl/5SyPa2OZFkKr6Plelhn+HQasS/9YVZ0+Y+yDo/blWCsVoQ/OzlUdUYmL5BLKwZbSUph87zR2sO/6DSnqXk45ZRpCpIlWRc6764aEa80LiZUd/6i35Vsgw+NSPvnLMnluy7dbGtw+tMgdo6aieHUbgUNJQ4dtbDh5+Std6xi0qUHkHS3F3l2Z5sVNbmrdwDwqAtt1aiJyjpwQomFgiGUm7wgggAACCCCAAAIIuL0ADUQAAQQQKK0AgcjSipG+FAKdxj/adcuy6RmlyGKfNHP67LSesx9V0Vn7BUy5j8ChpAfuekVM3vTxcP1/nzl/Ki/vlMO7HENahYk/T5xy0IE6DWoLceJEnnVRTtYhIYxim9ZUjCCAAAII1EwBeo0AAggggAACCCBQ7QQIRFa7VVatGhzUe+X8gDlPLUo5WYZmn9781AsJHV5cqT2yXYb8ZKkEgVPfTHjolRP3JibZRSFlxTtndOzy7CfWcOP5fTv3mf+J9vUdb6l/ZOOn1v+FnfdzyhFxfXgTman1HbeI1K/SLfHL83tT94pbOraSSxjcToAGIYAAAggggAACCCCAAAIIIFBaAQKRpRWr+vTVqwXBD762d1ROQvIFITqtzCnyJLvTrpxLWZn3aMpbnfydpmJhVQoceu+hEZsaPPralFbn86w/pvsg73jk/xp+N/mx2dsO5eXlpC55asYX4s6YB1S0UbQfNSXyPwmPjX5/75G8Q189N2TGriYjYu5Q/Qi8Z0T/hl9Pfuq9lJy8nL2rxkz7uv7dI+4LVIv4RQABBBBAAAEEEEAAAQRqnAAdRsDjBAhEetwqdb8OtXxwdlLf2qVul3f3pI96tyx1NjJUnkDOt+v2CpG5bGjHLl1tw+BVOaoJN720+YPnA78b07trxzufeP3UnQnbF95n/l7IwAHvfvpq5H9e7XtXx94TUsJj16wf31plEaLO7XOXv9Ypb9H/3dn1jr7zcyJf+zj+dh7NNtnwigACCCCAAAKVLUB9CCCAAAIIIFDeAgQiy1uU8hCoMQIhQz/OPLCn6LDhkRCTQIObhr/12U8qwa6fPpreQ39jY53wAfEfmxZ9+9YjEeYApZbt+rvf2LBTK3PnZ/F36792UlvMCwII1BgBOooAAggggAACCCCAAAIeJ0Ag0uNWKR1C4PIFKAEBBBBAAAEEEEAAAQQQQAABBDxfoLJ7SCCyssWpDwEEEEAAAQQQQAABBBBAAAEhMEAAAQRqnACByBq3yukwAggggAACCCCAgBAYIIAAAggggAACCFS2AIHIyhanPgQQQAABITBAAAEEEEAAAQQQQAABBBCocQIEImvcKheCLiOAAAIIIIAAAggggAACCCCAgOcL0EME3E2AQKS7rRHagwACCCCAAAIIIIAAAp4gQB8QQAABBBBAoIgAgcgiIEwigAACCCCAgCcI0AcEEEAAAQQQQAABBBBwNwECke62RmgPAp4gQB8QQAABBBBAAAEEEEAAAQQQQMDzBUrZQwKRpQQjOQIIIIAAAggggAACCCCAAALuIEAbEEAAgeomQCCyuq0x2osAAggggAACCCDgDgK0AQEEEEAAAQQQQKCUAgQiSwlGcgQQQAABdxCgDQgggAACCCCAAAIIIIAAAtVNgEBkdVtj7tBe2uBxAr7eXqfPXvC4btEhBBBAAAEEEEAAAQQQQACByxEgLwLlLEAgspxBKQ6B6igQfLVP7h9nqmPLaTMCCCCAAAIIIOC5AvQMAQQQQAABTxMgEOlpa5T+IFAGgZDAeidOnv31SAH3RZZBjywIIOChAnQLAQQQQAABBBBAAAEEylmAQGQ5g1IcAtVRwLt2rfbNAsVfYtfBE1tSf3ODgTYggAACCCCAAAIIIIAAAggggICnCRQPRFbHKAptRgCByxWQscgbQvxva3dNz8jrGBBAAAEEEEAAAQQQQKAmCNBHBBBAoJIFrrzc6AX5EUAAAQQQQAABBBBAoPQC5EAAAQQQQAABBGqaAIHImrbG6S8CCCCAgBLgFwEEEEAAAQQQQAABBBBAoJIFCERWMjjVKQF+EUAAAQQQQAABBBBAAAEEEEDA8wXoIQL2AgQi7T2YQgABBBBAAAEEEEAAAQQ8Q4BeIIAAAggg4GYCBCLdbIXQHAQQQAABBBDwDAF6gQACCCCAAAIIIIAAAvYCBCLtPZhCAAHPEKAXCCCAAAIIIIAAAggggAACCCDgZgIVEIh0sx7SHAQQQAABBBBAAAEEEEAAAQQQqAABikQAAQRKJ0AgsnRepEYAAQQQQAABBBBAwD0EaAUCCCCAAAIIIFDNBAhEVrMVRnMRQAABBNxDgFYggAACCCCAAAIIIIAAAgiUToBAZOm8SO0eArQCAQQQQAABBBBAAAEEEEAAAQQ8X4AeepgAgUgPW6F0BwEEEEAAAQQQQAABBBAoHwFKQQABBBBAoHwFCESWryelIYAAAggggAAC5SNAKQgggAACCCCAAAIIeJgAgUgPW6F0BwEEykeAUhBAAAEEEEAAAQQQQAABBBBAoHwF3DEQWb49pDQEEEAAAQQQQAABBBBAAAEEEHBHAdqEAAI1TIBAZA1b4XQXAQQQQAABBBBAAAGTAK8IIIAAAggggEDlChCIrFxvakMAAQQQQMAkwCsCCCCAAAIIIIAAAgggUMMECETWsBVOd00CvCKAAAIIIIAAAggggAACCCCAgOcL0EP3EiAQ6V7rg9YggAACCCCAAAIIIIAAAp4iQD8QQAABBBCwEyAQacfBBAIIIIAAAggg4CkC9AMBBBBAAAEEEEAAAfcSIBDpXuuD1iCAgKcI0A8EEEAAAQQQQAABBBBAAAEEELAT8MhApF0PmUAAAQQQQAABBBBAAAEEEEAAAY8UoFMIIFC9BAhEVq/1RWsRQAABBBBAAAEEEHAXAdqBAAIIIIAAAgiUSoBAZKm4SIwAAggggIC7CNAOBBBAAAEEEEAAAQQQQKB6CRCIrF7ri9a6iwDtQAABBBBAAAEEEEAAAQQQQAABzxegh+UqQCCyXDkpDAEEEEAAAQQQQAABBBBAoLwEKAcBBBBAwLMECER61vqkNwgggAACCCCAQHkJUA4CCCCAAAIIIIAAAuUqQCCyXDkpDAEEECgvAcpBAAEEEEAAAQQQQAABBBBAwLMECEQ6Wp/MQwABBBBAAAEEEEAAAQQQQAABzxeghwggUKkCBCIrlZvKEEAAAQQQQAABBBBAwCLAOwIIIIAAAgjULAECkTVrfdNbBBBAAAEELAK8I4AAAggggAACCCCAAAKVKkAgslK5qQwBiwDvCCCAAAIIIIAAAggggAACCCDg+QL0UC9AIFKvwTgCNVfg3IVLvx4p+O7n/2xJ/Y0BAQQQQAABBBBAAAHPEKAXCCCAAAJuJUAgsuYGnug5AlYBGYXcdTBP/CXaN2vYM/I6BgQQQAABBMpFgEIQQAABBBBAAAEEENALEIi0hmIYQaDmCuTknW7oV/eGEP96dWvXXAWP6zkdQgABBBBAAAEEEEAAAQQQQMCtBAhEVsjqoFAEqpdA7h9ngq/2qV5tprUIIIAAAggggAACCCCAQNUL0AIEECiNAIHI0miRFgEPFSg8d5F7IT103dItBBBAAAEEPFqAziGAAAIIIIBAtRIgEFmtVheNRQABBBBAwH0EaAkCCCCAAAIIIIAAAgggUBoBApGl0SItAu4jQEsQQAABBBBAAAEEEEAAAQQQQMDzBTyqhwQiPWp10hkEEEAAAQQQQAABBBBAAIHyE6AkBBBAAIHyFCAQWZ6alOWSwMmUofcl7XMpqV2iXa9Mitlx2m4WEwgggAACCCDgyQL0DQEEEEAAAQQQQMCjBAhEXsbqPLy6Zch9V9iGB0IHLlp3vMwFXkhJjB+7PqfM+a0ZNz913xVdV2dbp7WR7MSYK0Je3ayNG7+41gat49FbjYtxsuTcj0Nwd6yYAAAQAElEQVQ7v7yrb/eWTtIYLGr/4N9TBr4Q/6vBYmYjgEA5C1AcAggggAACCCCAAAIIIIAAAuUpQCDycjX7LnrvaJoa9n70aNThzfdHvbr5ZNnKLNy35avXV+zLVbmr6rcc2qAinsXCoNb+pEyfu6zDM8kjQqxzSjFyw4DN82uPG/zPXaXIQ1IEEEAAAQQQQAABBBBAAAEE3FeAliFQowQIRF7u6vZuEBAcpIaWnfsmbRjR8dS3cVvyy1RowNCPPvnro+7BZcpcTpkquA3H149d4Ttxenf/sjY3+MFHR+ZtGPth2YTLWiv5EEAAAQQQQAABBDxUgG4hgAACCCCAQGUKEIgsV+2gRqFCbNuRaS70eMrQHtHas9vR7af9WGCeK8TJH2MHPqbNf8C/R7zlae6c+K73XfFUikq19VVtqf65b+tT1adTEqeFXq8WeXealvDrBZW+DL8n98U/9pi3eq78gdDH1u87ZypC1wY541xmgiVN+3EpCU9ZmicXySFPlaC1MzrqlX1a71KiQ+4Lm35EHFoWFnJfy8Sij5lnb9i0M+T2oTfIzGrQ7p1clJQ4LVg14z5vK8W5X2Ja3+f9VIpWphCH17eXpS0ylXZjzGP+25Z/U6X3jarG84sAAgggcPkClIAAAggggAACCCCAAAI1SoBAZLmu7nOnZezspjbac8cnU6KjXl7nN2DrjveyPvqHeHd6+1dMAcrM2J7T55zsJOcfTX4+Wnx1f9SilCKt6PyU6XFv9Zr8VE8h/Prc0UlLsy/xhc7Tc6IWvX407fWENvufjHp5ZVmeBM+JH/jcuIwWK5PfO5r8VPsdia1GfClbrtVgfTm9bvwLT27xHbpc1vXadPHPJzdYF6mRVePnJkc9l5X2+qbBQdvemh67Q87skJD23o6nmojr++xIey9lsOYgZ5uH/OQtR+pE/d3u2yEPbY7d0WGzInq0U85X9/fRHrv2vjF+0e3eG+Jj02TO0ysnJf4U0mflKHNp7TvfKNK/3Vz27+KUZTIoAX4RQAABBBBAAAEEEEAAAQQQQMDzBdyphwQiy29tnMtJGpW4RbQY26eRECJlfvyq8/9Y99GAqKYBoZ0f3zy7xW9vrVb/K+Zw2rocMWjS43J+8A2dEt597pmevgVFwmre9UyPewcHeaXMX7alwe0rZ3dSjzMf/zJmelbH2a8l9QoPDgof+u6LI+ukTf/IdKugrNPVIffDReP2tHh7w/P9bggIvqH7unf/USd5ddJh++yHN8duKOy56JWEbqqufgteXxpll0A2Y92QlqFB4b3iHh9ZpzA5Qzajtr96Sl0mU8+q+3vLEf2QmbxDdOpgjieaFwT22fxu3/aKaEDyR32uy9kQt1Ut8e72VFIfsXjc6n1py2KSfUe+9Xh7NVv7vSG8hdifnKGN8+IeAqf2rp3c59ElchNw1J68jx8Nb956zDcOlhVfdP7QqpG9Osr04c073jN27aHzDnIxCwEEEEAAAQQQQACBaiNAQxFAAAEEdAJX6sYZLYvAqiHqKWn1hPINTw5LC3s7+ZWhQbKcnJTkQtHndmvsLrhDi0Yic58M9jXt0C9ErJr0UvzWzIJzQjS9I37B0F4qi8xVdChYP/f+DeLRRWN7+WmLMtK2ibDoqABtQr60iOos9qc5Cv9oD0erVmlPPcsR9cS0zKENu5J3i9a32yqNaBsljqT8qi2zvvyauV+E9epQzzKjXnADy6j2HhpibUZAyxBtlvOX48ezhQgOtObSUjcIUAFWbVS06dSrjth1yNSdev1mj+h5aFmrPpvFwOfiO5hSaK9NQ2RQ8hzxKQ2jql/O5+1cNaZX+/Z9X/zXvj8dN+bUxsmxP7i66PxXY3rPSA8f/+nX275ZPz4k9cW7xn3Fqnasx1wEEEAAAVcESIMAAggggAACCCDgTgIEIi93bfRd9J56gDpt7uzrhbjhjn431NZKPJ2dJ8RH02UE0Dz03HBMHNmlgn3hcVvmvt3h+PQhzwTccJ93j5eSjL7n8fimfqPS/Aa/mNTNVKYoyMsXImtcZ0voM6T/Q8lC/HpMBvi0SnUv2sPRWsNMzdOemDYvP50r27YnMcwSo7zihte3CLHv0DHzcu3t3KlCIUJaNtUmyuXlfGFJX+yoAprnjl8w1+bXffpjvkIExY76e9F7K4XYlWOKV5rT8lY1Ajmrhg6Zf6jlpH/NuNOgAac+nzoj5e7edzlY7GBR3mfvfSF6z31rUOuQwJBWgxbH9RZfvveJ3FwdZGdWdRCgjQgggAACCCCAAAIIIIAAAgjoBAhE6jDKNGr5r9ktx06/vc6OZdPV1xrKguqFBorrHntFHwqU4/Gd5SIh/FrGvPVGQc4nZ9PmxjfdPSxqWtJxbb7dS0784Le2hfRJjrvROttf3U7YYWmaObYoC1TDR71DrSmsI0I9HB0cpH+1LqsXHChElO5rKLUCkwc3sqaQI94NfIU4nuugYXJhmYZA/9AS8h3bdUh4B9U2pzq8PuZd4dfg+KTpXxb7/koRGmhwE6k5M2+VIhDY74Nfdn4WP6hTkzqO69s1f/LGllNe7OdgsaNFe775QUTe1tpaVqvbOoofvtlrnWYEAQQQQAABBBBAAAEEEECgiACTCFQnAQKR5ba2vLs9Hh9RuHjc6mxVZEj7zr6/Jf9YYAsFegnh6+8tzm2ND454dd05IX+8g1rGTB/QQuzeXOwbD/clvjpuT5PZK3TfjSgztGnRUezfnOZlizDWEd5+lsidTODa0L5zC7Hjx5Q6tjCltxCybXa529zYVexfueO0Zebp3FOW0ZLfT2v9s0/nHRAsRK66qVM3/1S+LciYkZYsRPvrQ7TF+UnjE3/q/Oiuj/pcl5wYs9naDCEO5+wSIrhBqXutFctLuQrUadDAQYjRWsXeV8d9GPjCKwNk4Ns6zzzicNH5UxeEaNjQljxQN27OyBsCCCCAAAIIIOBWAjQGAQQQQAABBEohQCCyFFglJQ2IeeEfdQ6tjt0qoykiatRDNx1a02ng6uTD+bmH9yWNe6Zxz7eSzwnvDm3b5307dIh5fsL01ftFh36mOyWtFfy6Onp61nWPPT60QX7ucdOghfaCek8fKFaNeGbo5kw5f9/WpKjOj/Ranm/N5+JI8MCHHq2z8/6er677VRaeufmVSaEdXk44bp876B+xA323jHohZmumqf3Dku0TGEx5N6gnDqWsy8jPPakcdKnCozqLlCLfaJm3od+4L3cdzs/OWN9v4IbfQvrEdlM5CtbHD9sRNHF679A2j68cLFaNf2uzNbSpvryyRVQblYxfdxY4tPjFBDFi7tAmxRtpsOhEXk7xtMxBAAEEnAiwCAEEEEAAAQQQQAABBKqTAIHIcl1bnR9N6Fy4atKyXbLUpn13pb3Y7+Tqbp0fadz5hdicDmu3jI3yFsKv+2b9/MNtlya/GC3nyyyWITv5y5+E+O3d6Y07PGIZnk04LBfX7rUgccf0kORRz8j5rUakBE+au3lIgFxQusH770k75i5osz86Spb/TL9k37gN02OKPuss63ptac/CpCHPyPbHi8ff7uNSJcF9Hn3m+uOTej7S66MiEdKAqJ5Nzif/uE9fzPW9prf5tlfnR8J6Jm4O6bVpi3YH6MmUmPFpfoPHxmnRxk6TRvQ89W309F9M+Xbt+EVE6P7Tjmkur1Ug4LTKvLWT553oP2OU7Tlra3Ini6xpGEEAAQQQQAABBBBAAAEEEEAAAfcQKMdWEIi8DMymA/blfLJSu4PPUkrA0I8++StFi6bJWUGdkj5f+VfOJ3/lfJz70ah+1kifbn7B55OHmv+/TcjYbZ/89VYnmS90RIKWS2a0Dgljzf83pl6nETOyD2nzDyWsHNLSX2awH3q99clf2wYU+UJGrczne1lT+rUc++6751TbPjn3+eSYDvW0JbY2mCaHmtN8vGtBUPYOUUd9caQQRTuucu0bYXqkWgjvG+O3fSzbv2uE3ZdOygJD+/TtmvNtkvqPPXLKNDSKGjEj19yMUb38tJl+nVYe+qTA+uWYMnSbY53MXLmhoOuQO4K1hLy4q8CpT6a9uOfuaVPuqFOshU4WNQy0bETFcjEDAQQQQAABBBBAAIEaKkC3EUAAAU8SIBDpSWuzfPtyLOG+B1pqz01rj2a/PCcvLG6U7T/nlKWyoN5xgwvnOPrnMy6WVrB+2RzRJ/7B0t8E6mIFJCsXgZx1CV+KPzc+3b5563A1jPxUiE9HyPEJ25wskoHu2kKcOJFnbUNO1iEhiscyrcsZQQABBBBAoKIFKB8BBBBAAAEEEECgHAUIRJYjpocV1Sjm3ed75XzQST1a/lzMjpAFG16x3JVZ9p52intxZFpi9IfHylLEr6ujRuUvKPIPfMpSEHkqWCBk0Afbt+20Da/dJcRdC+ScaZ2cLBKi9R23iNSv0s+bm3d+b+pecUvHVuZJ3mqgAF1GAAEEEEAAAQQQQAABBBDwJAECkZ60NsuzL6qsoE7xH1ke306ZMdb8+LZachm/NybseDF0w6Z9QqinxYs9Qu6k5F0f/tjpo1fG3uAkCYvcRKBOg0D9T/06QtSpL+c0qCOcLBKB94zo3/DryU+9l5KTl7N31ZhpX9e/e8R9gW7SKZqBAAIIIIAAAggggAACCHiiAH1CoBIFCERWIjZVmQT8bkxYMbSlabw0r+1fmJ3Q2fRdlqXJRtpqJFDn9rnLX+uUt+j/7ux6R9/5OZGvfRx/uwxiVqMe0FQEEEAAAQQQQKB0AqRGAAEEEECgJgkQiKxJa5u+IlBBAnfMyzzw8XDDfzVz+xsH9rxxh8O6iy26/u43NuzMPLAn88DOz+Lvvt5hJmYigAAC5SVAOQgggAACCCCAAAIIIFCJAgQiKxGbqhBAQC/AOAIIIIAAAggggAACCCCAAAIIeL6ArYcEIm0WjCGAAAIIIIAAAggggAACCCDgWQL0BgEEEHAjAQKRbrQyaAoCCCCAAAIIIICAZwnQGwQQQAABBBBAAAGbAIFImwVjCCCAAAKeJUBvEEAAAQQQQAABBBBAAAEE3EiAQKQbrQzPagq9QQABBBBAAAEEEEAAAQQQQAABzxeghwi4LkAg0nUrUiKAAAIIIIAAAggggAAC7iVAaxBAAAEEEKhGAgQiq9HKoqkIIIAAAggg4F4CtAYBBBBAAAEEEEAAAQRcFyAQ6boVKRFAwL0EaA0CCCCAAAIIIIAAAggggAACCFQjgTIGIqtRD2kqAggggAACCCCAAAIIIIAAAgiUUYBsCCCAQPkJEIgsP0tKQgABBBBAAAEEEECgfAUoDQEEEEAAAQQQ8CABApEetDLpCgIIIIBA+QpQGgIIIIAAAggggAACCCCAQPkJEIgsP0tKKl8BSqtEAV9vr9NnL1RihVSFAAIIIIAAAggggAACCCCAgEmA1xokQCCyBq1suoqAkUDw1T65f5wxWsp8BBBAAAEEEEAAAc8VoGcIIIAAAghUngCByMqzpiYE3FYg2uNTowAACGBJREFUJLDeiZNnfz1SwH2RbruOaBgCCHioAN1CAAEEEEAAAQQQQKAGCRCIrEErm64iYCTgXbtW+2aB4i+x6+CJLam/1ZiBniKAAAIIIIAAAggggAACCCCAQOUJVFUg0igewnwEEKgaARmLvCHE/7Z21/SMvI4BAQQQQAABBBBAAAEEECgvAcpBAAEErAJXVk3Mg1oRQAABBBBAAAEEEECg4gWoAQEEEEAAAQQQcB8BApHusy5oCQIIIICApwnQHwQQQAABBBBAAAEEEEAAAasAgUgrBSOeJkB/EEAAAQQQQAABBBBAAAEEEEDA8wXoYfURIBBZfdYVLUUAAQQQQAABBBBAAAEE3E2A9iCAAAIIIOCyAIFIl6lIiAACCCCAAAIIuJsA7UEAAQQQQAABBBBAoPoIEIisPuuKliKAgLsJ0B4EEEAAAQQQQAABBBBAAAEEEHBZoNoGIl3uIQkRQAABBBBAAAEEEEAAAQQQQKDaCtBwBBDwHAECkZ6zLukJAggggAACCCCAAALlLUB5CCCAAAIIIIBAuQkQiCw3SgpCAAEEEECgvAUoDwEEEEAAAQQQQAABBBDwHAECkZ6zLulJeQtQHgIIIIAAAggggAACCCCAAAIIeL4APaw0AQKRlUZNRQgggAACCCCAAAIIIIAAAkUFmEYAAQQQqDkCBCJrzrqmpwgggAACCCCAQFEBphFAAAEEEEAAAQQQqDQBApGVRk1FCCCAQFEBphFAAAEEEEAAAQQQQAABBBCoOQI1NxBZc9YxPUUAAQQQQAABBBBAAAEEEECg5grQcwQQcBsBApFusypoCAIIIIAAAggggAACnidAjxBAAAEEEEAAAYsAgUiLBO8IIIAAAgh4ngA9QgABBBBAAAEEEEAAAQTcRoBApNusChrieQL0CAEEEEAAAQQQQAABBBBAAAEEPF+AHroqQCDSVSnSIYAAAggggAACCCCAAAIIuJ8ALUIAAQQQqDYCBCKrzaqioQgggAACCCCAgPsJ0CIEEEAAAQQQQAABBFwVIBDpqhTpEEAAAfcToEUIIIAAAggggAACCCCAAAIIVBsBApFlXlVkRAABBBBAAAEEEEAAAQQQQAABzxeghwggUF4CBCLLS5JyEEAAAQQQQAABBBBAoPwFKBEBBBBAAAEEPEaAQKTHrEo6ggACCCCAQPkLUCICCCCAAAIIIIAAAgggUF4CBCLLS5JyECh/AUpEAAEEEEAAAQQQQAABBBBAAAHPF6gxPSQQWWNWNR1FAAEEEEAAAQQQQAABBBAoLsAcBBBAAIHKEiAQWVnS1IMAAggggAACCCBQXIA5CCCAAAIIIIAAAjVGgEBkjVnVdBQBBBAoLsAcBBBAAAEEEEAAAQQQQAABBCpLgEBkZUkXr4c5CCCAAAIIIIAAAggggAACCCDg+QL0EAEEzAIEIs0QvCGAAAIIIIAAAggggIAnCtAnBBBAAAEEEHAXAQKR7rImaAcCCCCAAAKeKECfEEAAAQQQQAABBBBAAAGzAIFIMwRvCHiiAH1CAAEEEEAAAQQQQAABBBBAAAHPF6guPSQQWV3WFO1EAAEEEEAAAQQQQAABBBBwRwHahAACCCDgogCBSBehSIYAAggggAACCCDgjgK0CQEEEEAAAQQQQKC6CBCIrC5rinYigAAC7ihAmxBAAAEEEEAAAQQQQAABBBBwUYBApItQ7piMNiGAAAIIIIAAAggggAACCCCAgOcL0EMEPEWAQKSnrEn6gQACCCCAAAIIIIAAAhUhQJkIIIAAAgggUE4CBCLLCZJiEEAAAQQQQKAiBCgTAQQQQAABBBBAAAEEPEWAQKSnrEn6gUBFCFAmAggggAACCCCAAAIIIIAAAgh4vkAl9ZBAZCVBUw0CCCCAAAIIIIAAAggggAACjgSYhwACCNQUAQKRNWVN008EEEAAAQQQQAABRwLMQwABBBBAAAEEEKgkAXcPRG5J/Y0BAQQQQMBzBTjII4AAAggggAACCCCAAAII1BQBtw5E9oy8jqEiBeBFAAEEEEAAAQQQQAABBBBAAAHPFyC2gICbCLh1ILKS7gqlGgQQQAABBBBAAAEEEECgwgQoGAEEEEAAAQRMAgQiTQ68IoAAAggggIBnCtArBBBAAAEEEEAAAQQQcBMBApFusiJoBgKeKUCvEEAAAQQQQAABBBBAAAEEEEDA8wVc6yGBSNecSIUAAggggAACCCCAAAIIIICAewrQKgQQQKCaCBCIrCYrimYigAACCCCAAAIIuKcArUIAAQQQQAABBBBwTYBApGtOpEIAAQQQcE8BWoUAAggggAACCCCAAAIIIFBNBAhEVpMV5Z7NpFUIIIAAAggggAACCCCAAAIIIOD5AvQQgfIRIBBZPo6UggACCCCAAAIIIIAAAghUjAClIoAAAggg4CECBCI9ZEXSDQQQQAABBBCoGAFKRQABBBBAAAEEEEAAgfIRIBBZPo6UggACFSNAqQgggAACCCCAAAIIIIAAAggg4CECTgKRHtJDuoEAAggggAACCCCAAAIIIIAAAk4EWIQAAghUjgCByMpxphYEEEAAAQQQQAABBBwLMBcBBBBAAAEEEKghAgQia8iKppsIIIAAAo4FmIsAAggggAACCCCAAAIIIFA5AgQiK8eZWhwLMBcBBBBAAAEEEEAAAQQQQAABBDxfgB4ioAkQiNQYeEEAAQQQQAABBBBAAAEEPFWAfiGAAAIIIOAeAgQi3WM90AoEEEAAAQQQ8FQB+oUAAggggAACCCCAAAKaAIFIjYEXBBDwVAH6hQACCCCAAAIIIIAAAggggAAC7iFQkYFI9+ghrUAAAQQQQAABBBBAAAEEEEAAgYoUoGwEEEDAJYH/DwAA//+i5Cc9AAAABklEQVQDACrWE3DBA10YAAAAAElFTkSuQmCC[/img]
, takže môže a nemusí - podstatné je, že nikdy nedôjde k "orezaniu" obrázkov, ktoré uvidí návštevník webu

Neviem, ako Ty, ale ja mám väčšinu stránok na webhostingu, kde je vyhradený nejaký priestor, takže miesto na disku je kľúčový faktor.

Nechcem to komplikovať, len aby to fungovalo korektne pri akejkoľvek fotke s akýmkoľvek pomerom strán

A varianta s dvomi typmi náhľadov a originálom, ktorý sa nemení a nikdy nezobrazuje, je pre mňa neprijateľná...

Takže náhľad je iba jeden, a iba ten sa cropuje, potom nedôjde  k tomu, čo som popisoval minule...

Inak ak chcem si zachovať originál, tak ho mám inde ako na webhostingu, lebo tam je to z môjho hľadiska priveľký luxus...

28. čvc 2026 06:38 #151332
Odpověď od GanjaNIN
Pokročilý uživatel
Nechystate neco i na prilohy? Default Joomla pole nejsou idealni.

NEJWEBDESIGN.CZ - Váš webdesigner - www.nejwebdesign.cz | JOOMLAHACK.INFO - odvirování a zabezpečení vašeho webu - www.joomlahack.info

28. čvc 2026 13:16 #151334
Odpověď od H13
Admin
Zatím to nemám v plánu, pro přílohy se používá Phoca Download plugin a při všech těch bezpečnostních problémech nyní se zatím budu zaměřovat hlavně na Phoca Download.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

03. srp 2026 15:21 #151347
Odpověď od H13
Admin
V podstatě se dá říct, že to co zde bylo diskutováno, je možné ve verzi 6.0.7 uplatnit.

- je tam možnost oříznout malé náhledy, ale neořezávat velký náhled
- je tam možnost mazat originál poté, co si vytvoří náhledy

Tedy, pokud velký náhled není ořiznut a maže se originál, pak to splňuje požadavky na to mít jen dvě verze obrázků místo 3

www.joomlaportal.cz/forum/rozsireni-pro-...n-verze-6-0-7-vydana

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

04. srp 2026 01:34 #151348
Odpověď od Bong
Moderátor
Teď si trochu zakručím :-)
Nešlo by jednoduše "ohnout" Fields - PhocaImage na Fields - PhocaAttachment? Zachovat jen ty vymakané funkce:

Složka pluginu (hlavní)
Podsložka (tokenizovaná)
Struktura podsložek
Způsob zobrazení příloh
Vzhled příloh
Tlačítko hromadného mazání
Soubory v dávce pro nahrávání
Maximální počet souborů
Maximální velikost nahrávání (bajty)

Soubory by se v článku zobrazily jako seznam s příslušnou ikonou, názvem souboru nebo vlastním popiskem souboru...

I'm sorry, my responses are limited...you must ask the right questions.

04. srp 2026 12:46 - 04. srp 2026 12:50 #151349
Odpověď od H13
Admin
"Nešlo by jednoduše"

Nešlo. A reaguju na to "jednoduše". Ze skušeností z Phoca Download nebo Phoca Cart se dostáváme mezi dva mlýnský kameny.

- Pokud bychom chtěli mít funkčnost pro uživatele, neprojde to u těch, co hlídají bezpečnost
- Pokud bychom chtěli mít bezpečnost, bude to tak osekaný, že z toho uživatelé nebudou mít nic, nebo to bude tak naboutnalý kvůli ochraně, že se zase bude muset hlídat vše, co se importuje.

Zatímco u obrázeků máme jen např. 4 typy, můžeme to přes PHP GD obrázkové funkce nějak zkontrolovat, že jde o obrázky, u všech možných souborů je potřeba mnohonásobně vyšší ochrana.

A ti, co hlidájí bezpečnost, ti už se dostávají do absurdních sfér. "Co když někdo přejmenuje nějaký soubor na nějaký executable, co když někdo rozbalí ZIP a bude tam exectuable, co když někdo v SVG bude mít škodliv kód, a ..." Vlastně jakýkoliv upload je vyhodnocen jako bezpečnostní riziko. Ten s obrázky se dá ještě nějak ošetřit, ale u ostatních souborů je to mnohem složitější.

A je tady ještě druhá strana, už se zase ozývají lidé, že je tam hodně parametrů. Takže přidáme další funkčnost a lidí si zase budou stěžovat jako u Phoca Gallery, že je to moc složité.

Spíš bych to viděl na samostatný nový plugin, ale muselo by se to nějak vymyslet, jak ho distribuovat s tím, že prostě některý věci se ochránit nedají.

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

Powered by Fórum