From d933d926670334e92fb88d9c4dd999f05e3f80fe Mon Sep 17 00:00:00 2001 From: Kristjan Komlosi Date: Sat, 10 May 2025 21:06:27 +0200 Subject: [PATCH] Porocilo + slike --- Porocilo-OVT.ipynb | 351 +++++++++++++++++++++++++++++++++++++++++++ cemced.png | Bin 0 -> 31552 bytes cemcfd.png | Bin 0 -> 33404 bytes cfmced.png | Bin 0 -> 33505 bytes cfmcfd.png | Bin 0 -> 29759 bytes eval_model.py | 114 ++++++++++++++ eval_model_cifake.py | 4 +- 7 files changed, 467 insertions(+), 2 deletions(-) create mode 100644 Porocilo-OVT.ipynb create mode 100644 cemced.png create mode 100644 cemcfd.png create mode 100644 cfmced.png create mode 100644 cfmcfd.png create mode 100644 eval_model.py diff --git a/Porocilo-OVT.ipynb b/Porocilo-OVT.ipynb new file mode 100644 index 000000000..a80d3de80 --- /dev/null +++ b/Porocilo-OVT.ipynb @@ -0,0 +1,351 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "eb66e60b", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "64cb5888", + "metadata": {}, + "source": [ + "\n", + "

\n", + "\n", + "\n", + "# Anonimizirano zaznavanje z UI ustvarjenih slik\n", + "\n", + "\n", + "Ime Priimek: Kristjan Komloši\n", + "\n", + "Predmet: Optimizacija v telekomunikacijah\n", + "\n", + "Datum: 10. maj 2025\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "1e57ed74", + "metadata": {}, + "source": [ + "## Kazalo\n", + "\n", + "\n", + "[Povzetek](#povzetek)\n", + "\n", + "1. [Uvod](#uvod)\n", + " 1. [Opredelitev področja](#opredelitev-podrocja)\n", + " 2. [Predstavitev problema](#predstavitev-problema) \n", + "2. [Teoretično ozadje in trenutno stajne](#teoreticno-ozadje)\n", + " 1. [Teoretični vidiki problema](#teoretični-vidiki-problema)\n", + " 2. [Algoritmi](#algoritmi)\n", + " 3. [Merjenje uspešnosti](#merjenje-uspesnosti-resitve)\n", + "3. [Eksperimentalni del](#eksperimentalni-del)\n", + " 1. [Podatki](#podatki)\n", + " 2. [Eksperimentalni rezultati 1](#eksperimentalni-rezultati-1)\n", + " 3. [Eksperimentalni rezultati 2](#eksperimentalni-rezultati-2)\n", + "4. [Zaključek in razprava](#zakljucek-in-razprava)\n", + "5. [Doseženi učni izidi](#dosezeni-ucni-izidi)\n", + "6. [Literatura in viri](#literatura-in-viri)\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "4b01f137", + "metadata": {}, + "source": [ + "## Povzetek \n", + "\n", + "Z učenjem nevronske mreže lahko ustvarimo orodje za zaznavanje slik, ki bi bile lahko ustvarjene s pomočjo generativne umetne inteligence.\n", + "\n", + "V povzetku povzamemo bistvo projekta v smislu izhodišč in rezultatov. \n", + "
\n", + "\n", + "1. Izhodišča:
\n", + " 1. Generativna umetna inteligenca: Velika količina neželenih slik na socialnih omrežjih terja preproste, zasebne in zanesljive metode za njihovo zaznavo in/ali izločanje.\n", + " 2. Učinkovitost in zasebnost: Ali z anonimizacijo vhodnih podatkov še vedno lahko dosežemo sprejemljivo natančnost našega orodja?\n", + " 3. Vrednotenje orodja: Katero metriko uporabimo za vrednotenje orodja?\n", + "2. Rezultati:
\n", + " 1. Pomožni nabor podatkov (dataset) CIEDGE: Preslikava obstoječega nabora CIFAKE z Laplaceovim detektorjem robov.\n", + " 2. Učena modela ResNet18: Na naborih podatkov naučen par nevronskih modelov ResNet18\n", + " 3. Uspešnost: Model, učen na naboru CIEDGE dosega 98% AUC\n", + "3. Prihodnje raziskovalne smeri: Študija nakazuje, da bi napredne raziskave lahko raziskale dolgoročne učinke kroničnega časovnega pritiska in njegov vpliv na duševno in fizično zdravje.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "fa8a5676", + "metadata": {}, + "source": [ + "## 1. Uvod \n", + "\n", + "Z napredkom v svetu generativne umetne inteligence postaja ključnega pomena prepoznavnost slik, ustvarjenih s to tehnologijo. Z različnimi metodami strojnega učenja lahko dosežemo dobro zaznavanje takih slik. Večina naborov za učenje je sestavljenih iz slik, ki niso spremenjene na noben način, zato tudi nastali modeli najbolje delujejo z originalnimi oz. nepreslikanimi slikami. Pri uporabi v medsebojni komunikaciji to lahko zbuja dvome v zasebnost uporabljenega orodja ali storitve in zahteva uporabnikovo privolitev za obdelavo podatkov.\n", + "\n", + "Raziskava se osredotoča na zaznavanje z umetno inteligenco ustvarjenih slik na način, ki je zasebnosti prijaznejši. To dosega s pomočjo nabora podatkov, ki je preslikan z detektorjem robov. Ta nabor podatkov je nato uporabljen kot učna množica za model strojnega učenja, ki ga nato lahko uporabljamo za zaznavanje slik, ki so preslikane na isti način. To slik ne naredi popolnoma anonimnih in neprepoznavnih, predstavlja pa izboljšavo nad izhodiščnim orodjem z vidika zasebnosti.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "4a26cc86", + "metadata": {}, + "source": [ + "### 1.1. Opredelitev področja \n", + "\n", + "Detekcija z UI ustvarjenih slik je pomembna predvsem v komunikaciji in socialnih omrežjih, ker lahko take slike predstavljajo dezinformacijo. Skupine, ki na prisotnost takih tehnologij niso navajene, so še posebej ranljive, ker lahko nasedejo raznim trgovskim prevaram, lažnim novicam, t. i. farmam vsebin, ali phishingu.\n", + "\n", + "S tehničnega vidika je prisotnost takih slik na storitvah moteča, saj predstavljajo porabljene vire procesne moči, hrambe podatkov in omrežnih kapacitet, ki bi bile lahko porabljene za kakovostnejše vsebine.\n", + "\n", + "Pri obeh vidikih se pojavi problem zaupanja v orodje za zaznavanje, saj je tako za uporabnika kot za upravljalca orodja (če gre za spletno storitev) zaželeno, da je količina prenesene osebne informacije minimalna. Z uporabo metod za preslikavo lahko slike naredimo nekoliko manj prepoznavne, hkrati pa še vedno ohranimo dovolj informacije za učinkovito delovanje orodja za zaznavanje.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "112e5e31", + "metadata": {}, + "source": [ + "### 1.2. Predstavitev problema \n", + "\n", + "Problem sestavlja:\n", + " 1. Ustvaranje podatkovnega nabora, preslikanega na isti način kot pričakovani vhodni podatki.\n", + " 2. Učenje nevronske mreže - klasifikatorja - na ustvarjenem naboru\n", + " 3. Vrednostenje ustvarjene mreže\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "1c0384e4", + "metadata": {}, + "source": [ + "## 2. Teoretično ozadje in trenutno stanje \n", + "\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "478e9ccf", + "metadata": {}, + "source": [ + "### 2.1. Teoretični vidiki problema \n", + "\n", + "Zaznavanje slik, ustvarjenih z umetno inteligenco (UI), predstavlja problem slikovne klasifikacije, pri katerem na podlagi učne množice poskušamo vhodne podatke uvrstiti v vnaprej določene kategorije. V okviru te raziskave gre za razvrščanje slik v dve kategoriji: resnične slike in slike, ustvarjene z UI.\n", + "\n", + "Anonimizacija podatkov je proces odstranjevanja ali prikrivanja občutljivih informacij iz podatkovnih nizov, z namenom povečanja zasebnosti končnih uporabnikov ter zmanjšanja pravne odgovornosti upravljavcev podatkov. Posebej pomembna je v kontekstu evropske zakonodaje (GDPR), ki zahteva ustrezno zaščito osebnih podatkov državljanov EU, tudi pri obdelavi slikovnega gradiva.\n", + "\n", + "V tej raziskavi je bila za anonimizacijo slik uporabljena slikovna tehnika prostorskega filtriranja. Gre za matematični postopek, pri katerem s konvolucijo vhodne slike in izbranega jedra izluščimo določene informacije. Uporabljeno je bilo Laplaceovo jedro velikosti 5×5, ki na sliki izvede prostorski odvod. To pomeni, da se iz slike poudarijo predvsem robovi in podrobnosti, medtem ko se druge informacije izgubijo, kar prispeva k stopnji anonimizacije.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "b2c6794a", + "metadata": {}, + "source": [ + "### 2.2. Algoritmi \n", + "\n", + "\n", + "Preslikava oz. anonimizacija slik temelji na preprosti slikovni tehniki, ki vhod pretvori v sivinsko sliko, ki jo nato filtrira z Laplaceovim jedrom 5x5. Dobljeno sliko nato uporabimo kot vhod za klasifikator ali kot učni podatek. Za preslikavo se uporablja knjižnica [OpenCV](https://opencv.org/) v jeziku Python.\n", + "\n", + "Zaznavanje slik temelji na residualnem nevronskem omrežju [ResNet18 (2015)](https://arxiv.org/pdf/1512.03385). Model je namenjen klasifikaciji slik in je uporaben predvsem zaradi svoje procesne nezahtevnosti, kar je omogočalo raziskovanje na opremi potrošniške zmogljivosti. Model odlikuje tehnika residualnega učenja, ki vhodne podatke slojev prenaša oz. prišteje na njihov izhod, kar prinaša prednosti pri učenju omrežja.\n", + "\n", + "Trenutno obstajajo boljši modeli npr. [EfficientNet (2019)](https://arxiv.org/abs/1905.11946), ki zaradi svojih zahtev po zmogljivosti niso bili uporabljeni.\n", + "\n", + "Učenje modela poteka v jeziku Python s knjižnicami [pytorch](https://pytorch.org/) in [torchvision](https://docs.pytorch.org/vision/stable/index.html).\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "8822f3a3", + "metadata": {}, + "source": [ + "### 2.3. Merjenje uspešnosti rešitve \n", + "\n", + "Merjenje uspešnosti rešitve temelji na natančnosti (angl. accuracy), ki predstavlja razmerje med pravilno razvrščenimi in vsemi vhodnimi slikami. Ta metrika ponuja osnovno informacijo o tem, kako uspešno model ločuje med resničnimi in z umetno inteligenco ustvarjenimi slikami. Vendar sama natančnost ni vedno zanesljiv pokazatelj učinkovitosti, zlasti v primeru neuravnoteženih podatkovnih množic.\n", + "\n", + "Zato je kot dopolnilna metrika uporabljena tudi ploščina pod ROC krivuljo (angl. Area Under the Receiver Operating Characteristic Curve – AUC). ROC krivulja prikazuje razmerje med stopnjo pravilno pozitivnih in stopnjo lažno pozitivnih rezultatov pri različnih pragih odločanja. AUC tako ponuja bolj celovito oceno diskriminacijske sposobnosti modela – vrednost bližje 1 pomeni visoko sposobnost ločevanja med obema razredoma, medtem ko vrednost okoli 0.5 nakazuje naključno odločanje.\n", + "\n", + "Z vključevanjem obeh metrik je mogoče natančneje oceniti kakovost modela, še posebej v kontekstu nalog, kjer je pomembna visoka občutljivost na napačno klasifikacijo umetno ustvarjenih slik kot resničnih (ali obratno), na primer v varnostnih in etičnih aplikacijah.\n", + "\n", + "
\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "bbca58cb", + "metadata": {}, + "source": [ + "## 3. Eksperimentalni del \n", + "\n", + "Eksperimentalni del sestavlja preslikava učne množice in priprava podatkov, učenje modela ter vrednotenje modela.\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "0d84bb96", + "metadata": {}, + "source": [ + "### 3.1. Podatki \n", + "Vhodni podatki izvirajo iz nabora [CIFAKE](https://www.kaggle.com/datasets/birdy654/cifake-real-and-ai-generated-synthetic-images), ki vsebuje slike iz učne množice [CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html) ter njihove ponaredke. Nabor vključuje poenotene primere resničnih in sintetičnih slik, kar omogoča učenje modela za razločevanje med obema razredoma. Primeri so ločeni na učne in vrednotenjske podatke, nato pa na prave in ponarejene slike.\n", + "\n", + "Za potrebe raziskave so bile vse slike predhodno obdelane s pomočjo Laplaceovega operatorja, pri čemer smo uporabili konvolucijski filter za izračun prostorskega odvoda. Ta postopek je bil izveden s pomočjo Python skripte, razvite posebej za to nalogo. Rezultat te obdelave je nov slikovni nabor poimenovan CIEDGE, ki vsebuje robne in teksturne značilnosti izvornih slik.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "ae34a386", + "metadata": {}, + "source": [ + "### 3.2. Učenje modela \n", + "Za model je bil uporabljen ResNet-18. Kot izhodišče je bil uporabljen vnaprej naučen model (angl. pre-trained), dostopen prek knjižnice torchvision. Modelje bil nadalje umerjen (angl. fine-tuned) na naboru [CIFAKE](https://www.kaggle.com/datasets/birdy654/cifake-real-and-ai-generated-synthetic-images).\n", + "Trening je bil izveden na osebnem računalniku avtorja. Po uspešnem učenju je bil model shranjen za nadaljnjo uporabo kot referenca.\n", + "\n", + "V drugem koraku se vnaprej naučen model dodatno umeri na novo ustvarjenem naboru CIEDGE, ki vsebuje Laplaceovo filtrirane slike. Ta korak je omogočil prilagoditev modela na drugačno predstavitev vhodnih podatkov – takšno, ki ohranja samo robove in podrobnosti. Tudi ta model je bil shranjen v obliki .pth za nadaljnjo uporabo.\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "e120716c", + "metadata": {}, + "source": [ + "### 3.2. Eksperimentalni rezultati \n", + "#### Natančnost\n", + "\n", + "CIFAKE model s CIFAKE podatki: 97.55%\n", + "CIFAKE model s CIEDGE podatki: 62.73%\n", + "CIEDGE model s CIFAKE podatki: 50.09%\n", + "CIEDGE model s CIEDGE podatki: 93.19%\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "fb263d01", + "metadata": {}, + "source": [ + "### 3.3. Eksperimentalni rezultati 2 \n", + "#### ROC Krivulje\n", + "\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "c74cc2ad", + "metadata": {}, + "source": [ + "## 4. Zaključek in razprava \n", + "\n", + "\n", + "Zaključki - kaj lahko sklepamo neposredno iz eksperimentalnih rezultatov v strogem smislu, to je kar sledi neposredno iz dobljenih rezultatov. \n", + "\n", + "\n", + "Glavni rezultati - povzetek v smislu glavne ugotovitve. Kaj sledi iz doseženih rezultatov. \n", + "\n", + "\n", + "Opažanja in razprava - tu so na mestu širša opazanja, lahko tudi sama mnenja glede doseženih rezultatov. \n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "cc63b80c", + "metadata": {}, + "source": [ + "## 5. Doseženi učni izidi \n", + "\n", + "\n", + "Kaj ste se pri izdelavi projekta naučili. Na kratko v poljudnem jeziku, med drugim:\n", + "- Razumevanje teoretičnih konceptov.\n", + "- Spoznavanje algoritmov. \n", + "- Pridobljene izkušnje s podatki.\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "2b95fe2f", + "metadata": {}, + "source": [ + "## 6. Literatura in viri \n", + "\n", + "Seznam literature \n", + "\n", + "Explores the VAD (Valence, Arousal, Dominance) model and its application in understanding human emotions.\n", + "Wickens, C. D. (2008). \"Multiple Resources and Mental Workload.\" Human Factors: The Journal of the Human Factors and Ergonomics Society.\n", + "\n", + "\n", + "\n", + "

\n", + "" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/cemced.png b/cemced.png new file mode 100644 index 0000000000000000000000000000000000000000..17206e0ffd460f4c4b2b3bfcf6c585447a2d01bb GIT binary patch literal 31552 zcmdqJc{r8r`!{+ogbbk~QD!NTAx#uAW=JJuC}fB<5Rz0#GBub&Qj}7pB4dMj2oWKr zkRelMQDoeotMBi9_wU`)AAA3|pQGn^o+Haz_qy-vI?vB^UcvhfwAoqsSSX5O*V&_C zNKtgY6h-S`X2joYsc-GZe-zy{P2CSVA9Fu<)YYEad(_?Kq_g|U<2FJb_O5QnolkGx zBqzH`PD;qp-QC4aQAXy}|9r(JXIBRqH|K>OyvtITJ!Wnc#c`DUOG{RHa-5>Pp6O`p zHuAhX+;-0Npu-~Ln3C}2bgrnRpzSWX=E)(S6?d0EHGY}nlxp(aNa<7V?g5~s?{Zr50e$LliExF#W=6c^0lQ`#Ux`?~iXWfn*UMJCa_u_L?a|QCu(Rc*f`fvBPO{MpkyqU~ zN{Qj88FFmC_^HO$09qJ+TKP`)|7X8k)g^72$15MJzxZ(f`i{ZDYcW>dt7A4Dkvzkn zZGK~iTd$CU!pf165f^uNjmUL-WzYYzd-V8m^s5^NPfF7Y7eY?Ay?LN@gKxiN)Yz|I zC9E=ezU=&4Ri88(&unQexWpeRu}|w7k90>@7hRO@)c|(>uC{aSTRhntAMd@QzfN6O zH^lqvSZ67_<>Et?B`>TBPp2PFF-r9MJ>dE0tApIp5{A1w+#Y|Ld2!@zz`5_|nfBgM zxSW}}*+`Om;Pdlq57Yx~`fBfSs`Y=lG&%1%>G0*nk*L!W2iGSr&io$a{+`n@FSm_< z>q*to@A;j>!|WF>T=4YrN<8u9h3Omj4WFE{y?4dx2jqVD((_rYud8{ef~#swo9*xW z`1R}RvxA>C6O=EdJJySI_x47c#^DP)7tRNaw7o5@u4dIuS}q_U;MkHQU9d27;!2$& z_361q?k6wBvjavcf4*j)IFzIk$FyusQP%Osu;^%$l)iNlA!-A3K~LW&YF_*J>Wpo7 zcenN8!u<4Png)8)sCW8<|sMys}d}VrO zFzw~ZukvN(gqbybxp>mCFhjq-<}vbhuSsM)6*Te#O4fpR>oy(f}%Da zN_1{7;C?ZSyX@I{b(N5Rk%e>q)sG+dH@CF>D7nfyJ)GPA@y*#2t%W{?HJ9*7HWfG5 z_IMTKwtMqmVd4ldc%p7@&S!9U`{k>wtGZ@K3oEX#-aNK2JIep8(0ksCO<*VQ7N<|D zMn)^+&-bq0zI}Vgub%3ln>V$vh{h@eeeUCSGq!N&35Gg-%R2sg;E{xcf6-uC;mz`E zt3*Xa=r%jl`WF_e2<-Iqy{B}}W~lk)9vz+Hx1$9Xz1}R!n?s)-d7D!_pO{cOG<32x z@BE6mZO-rd>mQDP*w$`c9WBk+V&~xS5MOcnN2rRd<42*3Q*GzQCMMLqycCzM+3uTG zFvBwV`FZL0{0r>yPcF^=Avf__(~sU>laZVhN%Djye>TcpoObc_^t?UyH&}8nr`apb zYdlM-uF7yx#_A{g5;jpm`0jjCK0j`3W1wEzl!w^NzH#aFb2)cz)rUJDxAah ztfb0h3g--M*jLF|uJoDzedy{5pRtb1W8>po3kwTfy&vMlUt~HpNzMTV9 z*p~*duc)o94ZZXNHwqt`npPnB$JE3m8ecMy60)(i{ar0%RUmcu?%lG?I^~VHQTw~R z&yBQhFo@roQfT#U_UHzdfkKaA^Q*bio<23@tE?^xQ$ar)pTtai8X874zde_>piIe~ zZrwgVpMe`HIq3H4?4Zd5BT3D;t*6+cSIt=+&N*oo++u(1SjgXrK7J`yW@gTOuisuL zcX5-INmCtaeVtj-;{ChnP}D*mr%teXkzKZ$ni|#3k;b#fz~CL0QGNb}b8LJH$<14L z@7_HubYot7h^xDMncouD`$m%EO^2+0#?;;2vBJ#E?Dnn;9x3@7?2JxEar*Lt9o3bQozJ@Fwj85+1F2(Ex0x6jd6a67_Pmc`=HLiSOG_(0x-K?0)_CSl zkmMCw*t5^sC%#bKfp6%P&W-qMJuJQ^Q(!vau_Uy-y!>bGfz&4Z(-X-C_Y|WBP18@c z%4Mw54CQTyg57gF;SD1+?Z)>Ryq6kEA{UvER~a!b2)Q{e0WeRUIP}n3}rLYii^MYT3XSr3-(g-gpd$WMwHxp>etO)s_dZkQl3y zNLZQLhy78yF)h#U@!q(usdk?V(x9$iXLIlWNOP!*f9}#EWs$>%8gMl(jz3z)>gEzw zo{ok2+5S%{EB*|(96C8qqh}Oazn&S_bbIG{`Dkg2fTb(e-TJ#mJ5-2vZdMP((>~1 zWw>Y<=u}3VSF{e03f*<_Cr;8t69HobN2TX@DFfJJu=G5mg`rtjQ?qI=KmBM9xi9vOnfymqCh@}7&rLSY&CO{5V6c6Y78O z$g0qvyEl9+^zk9@<>S-(>I^D{AlqlN47;Uw6pq`ZKg&Bc0C3jPVLg9o-@bkLq7P8) z(B~RuWSST8=qL(X``=pXjdLz3FV`%Lzjtq~<)z=obF=M>@6f+U0YV{PapbMX)!f|N zVy`QV>?P=ZzpHajx3S#Ny7I;H!iW1`^pXr8*jC(Ze(mP)+VbFK6eA%yIj$cSp@D}j zw=@6f>hi-TvHqTSzViKhKh&aym)aMq;=Kko0MB&P-cw@y&0mejOu!kBg=K?|a?*xT zhr#ZuNXMq9QN>~Pf*J!mcT$g!?D|ig+8xyQ=S2=k)2gpQ{$hR z>6SDl8dJS-i~ejf|F+Xb#l^Jv`1qL_mJ;Iw?H4E57bX%GDJuTbpRdcOnjYyy>V7dA zo73dhxBAsDFSICiihAXHZKCjt zoh%6MODhnvxu^2$$B{e7u` zdfQ#QnJMdqxxdptpCp6~SGTq08~z3k7m<}sZ~mp-?sm^0aBR#)Y~8x9QVtceAv%VJ z*zlJ*r&^-Fjw}&Sz8JJ@t)gm@VQ1t%<=y-Da{^AdO!V%Z9BnT=JS!x>j!`v(Pm^97 z58*+R(>Q99sG_2|kBBDui~Z}<0WUN(HKSf7_(iIel$1=itdDvxk2?qmV~cvwoPLzv z()(|ZWZOASaWS!u=9jkp%`YDod{ID$R9To7y(zHEY3!;+q4%Yf_fiM5otlJVs>5&H zG8%g6_k)4eE8^*)w3}E!HiNs~JhPtf?{{QiVAy%)#*(8iviN#jUl(U-MsY7+PKTwB z9kOimv6`@p-X*^WztH=7zbL?i-Th#{_593lPaw3(!5xZ<11cx*5T7;hy`PN-isu6w zTg4+|dHrZ#}Vtmf?okfHaV6_1@9PD&|%ksaolD30OMWwDwc!-5Mk z?&Q zT}kQT-ngx%`Ci$(IrNI{O3|i2C#?L04SBM?pshpd%yScqAvXfJP#F)uc3mPYEG)iY zq=6>8Kh;DUJ+8)jkL>2nE6~PfHeX4&WtdV%Dj5L~i}RyCdWZ2)m6{8E7FVcz`2jM~ z*_Ys>1w1tAuy%H4rt9|?s|s|`benRPhX4qLeGavEi>-X-?b9!Q&9G;jVl8pqz3;^3 z^Ao+?Ee^-?UvhtC3SZewzsDriJlknzvsR3>#bcF#NIC_G-((AWm0EggBaHvG9LhrFZf3$RUS-QHq2>*I!`clnD ze;*zc>gz~F{Dz++BR5e{L1!#gArY{x^DA)wx!ikpc-tJ_yT85ACw8{}r~7vI{{6wB zSZwb*^wujY3j{7(>jxGGRx`O`cl)a|^kiQHf&Cu*oMt5mq)|b@0{~+O+QFxN43|)V zPPXK*t5#L;#VcQWQ}zXycIneIv&@<=6Jp0|ZeLDMmvtX$T|JsVB``EREO+70Nz(N3 zPG5ZF7W-5divbtwlk`@RGDeDRAcJ8lS>~}$)E{1XJ7(OG(1J^|C3STi0N>kv7IvCEGo?l8E=e*xo_@sK z+&uU?&}yHzLBIC(>3>Z;$H*j#SX1N=@<6*eey(N>&fQ* zL)&*#j`fL4sE!ur!t(T^rGWYM$p=KUPJCGg_NxvW`PkqdOOjzQ-iL=ZK_epk7u(9j zr~5ybk=v4pot20^%(z0Sucs$i&}Z%d__Y=wIx`a!6L}-K;|*fr5fO%66WCwl)iQ-a zn~uC;M%_Ra(*Rl1#H}gMu&-vT?U&jfnVlCA8Cgy?NBuLi&7IxdVr$l{(LiG?yDev1 zhMV%-DlO50M$ZW{yIgIh%ELxr8lzN`y@0*f@V&2r4|A&p0b7QU>jd5C z?C)RyE$7rma<@*l%+F3;Lk(xax9j}zL-f1P;w3qsg}LQ*1Bc&wJnsiDb8&NPEL^Cp z+%pcc-Tx(}QsX0tB=@OrSzMA)x+o^sAfANaefXapY?zhSD3?gJ%sqXtzbQ2)*(~$% z{`D&pv27EvhHOS!UyE$pcBt_C!&84>W%>rPtxmL>s;_(S@ZrPcgHLYux4q3ZedY3? zcw%KzlT&$wxE{dJZ4|!%yh%x0+mWo(ZRUjHbbWqq!8jOmmdE9}dA2|c53o1)(W6Jz zk_?yPLCCpw?|BLEV&gzt^{j7TK=P?^>N;o@>$`sZSVGA`Ke=+rAXZ*;`tRSRuMeM2 zPrz*qf?h$M4wmo+pa=1rf+`^8VClPZOhjxWmL8}*mb^QZu@2lz`t0fm zYw98$ev|s8qAGrb^|ubdA*mdlot@<`uILyC4xi*Z>CkAc6vx=|RpI*A+Mhpvj!jK{ z@d<4a!Q1Ya9UAQIJ$8%g@9t*Uwr$&jpPWce=JE7F)M3bc<6yi-AO)LqXSiaSL~DkGYAPbVvNI3yFC2 zJ(fOLSXe;I&@q=#jt!5N0u6+K74gwCvdJ1okq>FWhnOA!m)7v~d{vx5U`4UtlKrVo z;+CF@+qSKG{rdIHEN&Y0OUCrMNos0Vf#1CGZ||zG=Q)|2s>jydZ=zE?(pea~uu|%a zirCkCtgls-p)JxS>s7z7YNE)UrNMeEU{N8r)9&0B$Th&FXi zx;^I0DZ>fCfB=)#w*SaD*I}Q25N~`e29DT>Qc*Us-r7{2`|r9^tsSzNI5!m^(nXy z+&SAKkd3fTx_S#E_v$dQ^~9Ejq)OWuZxQQ5Vo;BXY^A!Gb7`vyH9lGF?u1Y z(k`ITv0TN+Z|9r5qFWmd%0eWWpP!s`pPro+-MMqk>C>l;&Ew3UYaKqk2Cz|g=*FX` z2aJcM7$AwZ>qSR1+Syly#j$qx0#&`Yc9wDZY3R-I<@ca`WzW@J2XaqWxs2Rp`*3F| zUJxUrVkY$ZY;|^74~O74m3r?}_w?88A4}c6ZsXhruSFff#-F}fS#y>}hTiN^Z`M>U zu8oe1qmR-x?iziWk#ni_$G(i=$dMM)y4hD1dOrFcou&G(-Y7nNrXqB`Dc-PPmA$it z$2P0;f1Vp1dvJc@!z<61q5{g#ZsNNrIFE#2QDao>+?r^T^M+Q*6tCPGrHv9Rf{ zs$B+Mk9lh94yePJB>v_vj)b zFWXl9D*ZTGNPl*)mnpd-Qg~NeQp1+*N_`1MSh5PoBLufw6NTYH$rt4}Z+-~^H9vI@#O!10AsHa2F%5Rn%sXj!A8Ln^ z-a9k9q+$Th3EQ<*GFpa)%h3yeheE&;*}9cy#X9{W07qu1ZA9F@OZQH{?KQoW`K|WB z9DBV5vqbw1R?{21e~8|1dLI_MbowvtR7-E*7L~%e@0pMH(zGk)S}tGyTYBHXV4ug( za;|V`aBu-ahS1!=ASQ>tu0Wr*sY?hp-AfI9N{L($yBPs-?NxII1f8zw@gG{xLL}85 z(r&Jyc`vLE3a%1d_Mx&;Fz5NRCkc!O35?&eszz_HE@QlS@mJ~L#>c8x7@hE*)wbt@ zg7j-jOX*>h5aplbPie=Ux_=JRu$HtjB-sdKCmQE~Q z8hJezx$@37rn&ivKx4r`Q8o>Y$C0tIO94NXl$0uaT=OOy^wM*41M_z|Y>?f;s4Aag zk?Xr`?RyoCRHI%&izkLX?IWMrc@@?#@~UWS+nVTVXc+&*E(NLDVxHxA8U2NxI(%5t zhi&Vw)%f+NWg6C1%dI=rAP4+9)tItE)_wihw-Y^s<*+Cwk{W-eL)aNY(^U25lo}4P zuv297HA<3~_f=V}NwBg1mQ|6q`01c(n&n@I%A8YiJ^@l(TxNl|zhz}*9q(@NQ@+qR z9-tYr`5g15g~i`CVA79gyZGDq?`H_(yu0{1mVVLD_&f;f#5D65dqzfvwX<{RDoanA zw0Tz88>ty4dLiR)SC~|@ok9yMw^22BV||9=6B5P;(T9)sbax9WD)OO6f;YXxZPv?w z&!Yp0S8}L9+`5>qRxub0(Z4-5s;vym~5b{30J?9J*$xcLNzs+rNYYRk; zPP_HdITx7C{6JGL@>z`YnKy#S2*WS~AhHD(PD4XNu5gNlBCEpY z>&EswI%$_AGumL`;YB6Fi8 zs}5u&M{GaJ)ETPc%eN&&rqG3EnibR;8dMp5T!HW8x2&aveU+(fUTkS;**s^q{SWmm z{o1O_#aB>z*kaPGI3`D=_X6 z?D}y{g=ay0&fx5{h)Kx!v|Iar^)1y|w9?PlL0j?QzahavTi`4UmkBu*)v5JMshWsNvKIt=-4@mHv~+$2_=~ z9M~orPEL}zf3ns^6grRgK*SyqHeZuH%=f*{mO>QIdo05h{`|to>%RMqKZ)(Sea8-+ zBg=Gx9B38~d=^{A7S6RpcWn5i228A@t6KuY;J1V)N*?U4;LcE9>iOPd>&BW61yq0c zwzy-CjmD?OyhiyVFDs8!5!}0%4s`-4dLo-kg{?O>rX_S<5}4A~u(N z6cK{Kw+*_UR<_Dg=HWvpg*LqyTi|ydd!-^GVi6G*=1abEQqt~CF$Baxlj$`pFk+*> z&mF7SG`4VeN5iMxsL1DfYgRwA%;!_Q_m8^U*@;1nf3)dZ%}Ts-gVzuiB5UP&e+jPe z56MT~ZiPT{AkA{uIf9~`gqmVVAsB`De!DVK| z|F8L#RAD0+9yL7#2lDdeoqw=>?kp8fhnYv3;VaMaMDN#uflQ@>QLGoJ=Vg!gLfk$b z^9fb}9+1~M7jl2U84~gD0&Wg|NwbC6M)?x*gjflBR?I8O3_CVo9s_38RO!6-mk-^u z@zu`|&V}NHi{ECRb8^Gk9d=82De2bU4*^rD#*vTlb)G8XM#HaGg^AONJO$PNJ^yW) zarhRjM3=>xL!HB0Pdy@+_*6?vi_s*_@&-Qr2b!KIeA^w_tj0SSRaqa`Q+;)-zFQSq zzQNk*uQ~$x5DJu*i3!gwU2%MJ)tI(cG38kNXGkt@v`3umm`OW##kC$It-&amHAJ z*gYcOqyES7Y;z)w{`Y3V<|78MzsUYRG|n!?y^OQ#{Na2`%lB2^OKDbGyT%iWVEjH zUjFpSXoa!Gj-NjRrtIa94+x1QUfi%@!!!)X-<@f&Bt3_-zu=8U&e&@tf#tt~FGKuG z!HZ)wk}4s61RpeW?SzUGZV7p{EEFO*q>NZbCE=plvJlHx9I}+t(Ycy?ehDW4&pcFK zqHhxV1<5RLW+1h{A&IryHTAET_(uCJ2_IuOJJ@trh7(7X$eX|{#qI5aZoM@d&dlSQ zhSuiCWo`{@=FvYbxdnFdsW1evux;Ne9PN3k(XsWFHc-ak%+q zNz2(mT@yys!^kQ-(rBRr2S5;at&EWhF}}+X5fMT6+=LY}z?Giw-@hYSvFYDi9{t&n z#H--Qi6VZ#-tps;eS#Mk=ckgC_nkhy3C-;HRO8|fp?%Ly)SsIiD&DxkD7{d7>cae+ zwJfd|_J=V#WhXcEWp7E!-fS%WPgJ_0$9x%`yA#SVJo~TMR;cg+CaG6VQlnm}4cgSy zZC(sD)uE(>E_7dq%S}Z*vg*c*3{^f zjVuZeyf6+b*{V>v<*UZ^`dVxdwjyl~+Yd z5G%l@g*^Jos;XjWh?CX$LO>mg#IGzUC@9a_kizs4PaUffB57*F7c6zIRjUFa+OLn& zop-%3ThgMV|oJ!DOE&+jBkF6rM z-tmo%jqv2y(XH;kFD#V4YCK7OYiSWhu|pt(ktVxo(=wDw=`(T9o=L4=86Z<=omkr- z|MI`<1GD1$-P=Q>dw!H!?KCdGJu1v?L$txyPRznCbJJ&tG!Og?MKS35b$@I$#DKom zuCuvL=(jkHlUiqRH|UVnC2m+hBu@arol8(K6d;=-GE5j+xVT<4a+Ziq)IZd=t-ZTr zMz{kQ?;!v)T;s@JNw=Qv=@ZS%Bc-^K2MWM|Lx5v*y0GQNaZO;7@oBjX7Lyee6FZ+j zHu%N4@rpgVx@r@>AGrAWulXV>s)}q;@m*i|720Sw-qW2-bAwikerUyS+<*GX6ill< zjTtj-$>IJERrud_+6`Tud^r-rdGO#tlE6U&yI`<(x+2(xaxin33tHrPo_T4HnB7*A zgAhGrd^W`3fal0vQj*O?g&7cjqBuA>C{=h}W3@`7MNpl;l>}WclI*2raceqc{q3Ot zi4v5tb&13h@B={(ft9r{ipI1*zehcL-q!o!YA(M*7-`NY{#TqMEPS~*^qBzt{UuA8 zsnc!m3)}KuXQ4BjDGDj z!rCLP)M%o#zL-2)LpVilC5aL6(m z(~|$Zh*Qm)Aez^15v*05kDkEXarX z<>%*@MRCP4p(ln%7<#@vevsUI`E%prYs`HeHh~%Ss$NT%ceUko8Pg_@p z2@@!JOE-ypumsv2?R4vU!Y1tcft05aOAHSSyKlwA%Ue07ZN!Kx8>^G6p?n?U|J^jV zL{RxlvmSHElkC~IuLAu)X;W~ejSF)#U3U-n_mQs$$x^M+M0yanjZ;vNg91R%ni^>n ze-TpYiZ1M%Nc&i&^Y2x~U?l0sKJeiylz#s%fR?O<4FU#QnMht3w~f`=jb)=qhW)nF ztwr#hC<^r<&@zNS(v0!_Qh%Srn-J z+jD*Gr|Z?e0VZA_Zhh@$ntOUJnhlmSiJT^)02;<<+8JY6tC|B3F|rdpRGF;6#|}*} zKverCMZp`n0b}ab+qZgnsPO=i+pJxow8Az9(?NIG=tc)IVRrHQ%OjbJcFlq%%8tQ*l9nQ zg~Ex?Y!vyQ;8c+eb~fK*BOf1>$h9k-6O-}}N@huV^oXb==*sWDW;z^zlM7%2^p&w1 zFMZ+2(b2e14}0c-@s6_tE4Q9*WzIHd2e?4f3GEE6EaRm@g%SN#gZ z)F$+K(u!yls;VZkyq$2fP94?Q8bte8^ZGUS_s>p*GxQTTXbv&oSBTG1_pz}_EK4|M z!p}&<(3(jd}=XGMfH%ozqhTZO8zkY?q z#4xQ|wTe7nLx&DsL>Pi}SS*1g zsXD22rm!HXU{1PI!OK}EQ}M8VnHmenI0rF zO7XGc&uT9I`+ZFS7eY`VQw*f_0$G)hY1;*e4IliL>n!+Zw4DQW;YttGh&_Auge6N( zMBFj=e7i?$9n@bP9UZ{!ci3x4kPvH~ILGpqMRzNuboeObYO=&@PPq<#mab*}9eVwG ziBlk;8DOdU0yPx3wXKEoQ3E*$P5F z7s8s_o01xIz0Ok{998dyL?oji?;!L1G4H$^*l7S(1>K%+^wY49Ie-|nkh%=Vl7`^* z0~?P}Lu3p$*&jb9DkoRSw0{$m)8|{SctsL@#Kgo%&J(?x@&)a&!3qa0)#wpFPEAfs zloD`*?8O=-4>mA9?4+_VVRbeGmY4QAI)4{uW`2oribTW%n=bs7Kte*u-!~>^)qqR1 zm&i5I<5VkRq+~;JiE3Gw1#!*v@ZDg%@MowPjYQ_?*@i}^%Wuz3T%ayp65kXMbkfqp zV=Dk_AYxt=1*A+TBO`V`y?;@dj{Fvs$4Lfya!&8#Kab`LD(M7Q-X?Po zr0sT=211sA2}Q_18cfi2jRw8qOAtVKA_u8f_4(V#c<jl%|A0XhSNN@(7wsxLcB}>v_DDK*FJae(tze*Ny_{>-Tu14P ze(jA4syy96kC+@uDw3QHRN0LdUQrug@uWW#wRV`g9TglTFiv9BmU*Uv3rH@SU0<^! z0{Zi#rM}0HA15gvAg-nVWh;IB=|0{6FqHI9$S27qyH7$h;8pS7Nj`?y{K(0xB0K}0 zVKuOo2r-DU{!38fgG~!A?%>;YdhU@-+WVDQ2V+N#T76QOJt($9t0W@e70OD1UR2%RZ z1aq`r{?0x5)epuW!J{*U0fTqGo~$-MwIKFv?$Tb3DALerzQ52 z)`}o0(p~-}dH`)KkdqFAAh?HiQi&B@Xv=g`!(a!>JGlh4rYpKh z4O6YgB+iy)E)DgJJsRCjbjOa@Wv5DS8>^b35Y#S&Cw9O%+?;_RN!2iFd5T1G_DkESpIk}3WJUo5|-DopTnw3xo?=_6EUeR1@ zyzf6L8a#XImxPB01}#pWd{!1^rs5sHx0HAIZd8Q3$Z3mFI9643gcp7m<3map4E zz5A9N@_zAwzVH z!@I@)C(8%2u|*jn#s2W&!xZ4FrT^hg+L(ROYkgN-yj#%x8iD{?^Wyi7-ajz9({_EA zNqO_AaF4Chp?d&mn0}FgHh1OWLs3G$8UC5R(ZeT2AV$b)DNS68Tu&NP^82YBNLLWS zgL&!F-EgIP>k>i{lmj`i)%3hjrN1UVsPDcfboMqQo zTFUW|HNPq%RfGBuSXx>Vwg=spk&Tx^>_`9}WY4iJ^)?_DgnJ@Tb{$F&^7(6CzI=(Y zOi^Ou;;UWtc)@8oCMo^gWroi(C$e&DTmFSrL_$QJ zpiyg;Jjwup>R^%WyH5M4&%Ktew@OzdN0a$7-iFxhz)71nZTg40>FFUa2R-xe_R+$$ zN*eKeU~RY{?N9yvGJXW{xw0r7y(b&+gnaV-%8RMNq9_AE?I$&7MgoHl80#HURlnV$ zmU9_%>pU#S5KAahgG-56IuzpWcGcg%W3+HFI$i!JH@oi;O)TRy+#e;68tbP|!GgLV zy2|`^jn>fEr`BLgr2#zv=5t$&baeQ_3t1{DFQ^&l`;~r=T|P0v&iv3KaaDwLAmqtk ztLhJ~d;<_oPfvg5SGUf*-G?QJd|XEqSl1}(yfueV_-{REKp>6SIizF&II1TZLJ{Tq zO6kydkSHo9B8VURA4`fPYRRx5?z^7Z9S~4_u0Q8?ugUdf;s8n~)|`fxR!Mui)j&f~ zr4}%N_H|wwMiF!(*9mXj$cm({7Fy>RMijexVyvPw6sle_g;grTJ_TB5glxQoQgHgj zj2haLF2fajt9yb%wu}#<3Q}(YG69VqZK{%LeS63=PE<|fb19&s8Z)ue20yc7jr9Zz zXxO;|I$&PTw*TV;B0@TSN*1=?a7;oxX^gcqTwN@U}j}8e^c)~<}g&mlP8*3P& zrLk4F;bAqA3RbT42l4F+6!iXRH4@}0&M9&t{N6n>v}A)yz^O)2m|8`D&;d5~9Qd^1 zuHspiBX8V`F*ZhO8&-%l($yHMh`_hR!`;akRw>{1<}52Dg;K~xE(>$#7sB;4j;a5e z(2Lu0BA`xrmhDiQWjV6kT#&IL?v++lXb&`q8BdCFUhUR)LVscwPWM^#mIAEh5ZH6-I5it~99S&s)g|Q1PhWfQwIo$Sk8=5#& ztf1tu?p?mfVVA_DR&EN?LhiHF|v7|DV>iD8A^wR+Q>;j1GR zC~wRX8!G3URezAq8}1e(uYZI7FABd8nTdZh0~4|Gb6nxCH=m~fbwn00GE;&XVC-Be zw>EeQcL2*vQ8a5}kROL=MCN>$h4(`Qo?ip;DY~e;zN;*F#r{RNfKmjD^yepe5WlG0 z`OgeHl=hBH+EG9{8URqZ-!kw*G z{5d(*ghWN@Vbm_(Hc8b)5C32#zd=T3(W+KZPwXCc_74mc6H@|jO_+GWr3=tfM7(U! z*`d&a9pMik6ZeI~P^xAoe=avVrtIqaYf(DlMsTGDpb&8s5lg10h`jnAKN@<@O)(ng zelXL0A7*<{aPVblWeajZOa$rH)$I#usL}HBS}1(+qT%yyyAxz=`1WmHG8jya4Q19P zLWv;+%P3oHsV{0iLzs{1S~8da9$Z zFA#uZ6IB^TRT#g%B#^i+Tfq^^j44Ee}D%+I63 z5-}U4sTA#2?3up#5(!^w=TiUVr|6d)&;!aqI)(jJ)zthxA>tBy_YrLjIEla%s)G!p zV?b>TMVU-<-IhJ-hko|dkwb_>9Y!@77|A<7f&2%9wzhWOulE~KTCb2BjJFvlgV2s2 z@6#x2d^$*C8NYMhWq_!MxbcS3>o(kbF_v@h9w@6BD~=!l?C%0rpnNf`MYKRzIgzjA zVFE&WAvgr?1XYB}`|-KOHVPD9a-6R?C()6*r8lz-87$=K0Px)Eb_D`2%3+W1jm%<_ z#Z(d;1T~-om+>ym$$=(T)dktT*a=Bedkr<~=#EihUamyI$AmP%5dC~IJ#urA3YG*G z6T=1fh-<})E7-5}6yXhrEYEAcZxAaNwoa6I_#c}I<`4CEBIHkh{S|Poe!+-8l$WPx z2O7lsoQwZ9gst*+27RORn2f<`7pX2&BS+9!{x!NcIC~;f^zV+x;Ay7m)-=?3(r^KO zt>J27?mXs=LKPT@aV^9mKq1^HqE(UrKJ@*dnh4xwaC_3t$c$YlN)}-kiwjdKpD^k| zgoX?S=!(mY^+9})|GtKOv-`QpLqv6e1se8^>BBr08>ZcrJxYgby#f%Tjm z=-l);=v(Nm9vvKukvvC$G?Zykaq%Ts2p{sE@#h1B}@K1!^fML zk<#RZ$RbJ$6qr09XN(TxK!{A3F6|ILf3My>g-`==sG#j!a0wySypDe=i zqQEt~yjFsJz$+~$gXbCcdd+7t^hFX`&}U!*{y>hY9GJ(Y=RG&GFj+bz;A0m35B#hL zGD2#$2=X(H0`(;72e|@qo#hl#)#OkGTWkq1z5dV7`3q)8ls+XNP!DmfSw=5(-~p(D zhPF1z8=x|g7hp<+HCBJ!+2a}-JbDon#4;l?60IJg`)4&6^*BYUc7|sJLlI;nlDVJJQ(#BQAQSN>sXbxK@QW;%ujzQ* z7q5l1q;p5G)&pqAd2Ldd( z{16P)8+ zKud@g+vTgq%qFP3X4$f3Gxj@n>>zOUcJ&FAHN#sHh_z&Ffn{v^)jl1Te zDAFiV5n|Lb{;kNhLr~J)AAH`160=wirxZQo(UT_x4HCf{%>BYVO81@!>J{eAHpG9n zk)9pgw~-hJSm(XlVg#Jp|;Fh)Ez?Exlz);*mZ-_FiP+)>ofK+v*z zdBmr(oSH%^W>Ii&HpmG^-YdWH2M4W;K zY#0NFt?^kGZxLuR5vIYJwwi*;+{7ch^`;F+nvfMwY_)03feFm+1h9e>(bSFvHWLN^ zWB#tav9Qd(0KZ(Vb&YDzd);~88IBb|3(yWAA}7iZ0sJ^sg*=ZNd|R4(wTkNgjlh)N z9G%U z#@)N`vqOJvcP(R5<)@0GHpX!AUr2fXXRr81MJXL)b>_4A617+pb zE5*Tg|8;TyP10a2!f`nr4?~qp5Sbpwpsw0%U9t0j=$^@Idh5&Dp`y#xZh4*zNAW-h zl><8mLW;Vuh4&B^2%pZGUw^gk60`i}oWBH_u4C@(_!{srZmDBL~Y_u)=s{T+Ii zJBk)l?zMzQP#-z%fE=pu*}|DtnGm7IOv8!=St9wz@*Fo8m-XZNnn{LcNrJVB74sXS zJoZZtKRwxQl=0M?V}r^hv5{o*#^_MMuQxZF=41x{*C5k7M~4FE~Oyg9RV_GNCaHns>L3(;!lf1%(kzrfYj+B$}d=a-6u07{0vA(-QFn{*f(?ZR|@ z^qwb;ohXN7zf<>t*vMW3rwPp!7Lnf!PKWH$-JR!`!$)GQ#$zK)*2K{YpuP;EbO>&O ze?Wi@hN_7G52@F8uCwL8R20|OYv3+yYyJ)_EgAK+*>wZzLDG4^K~O!H(eJy!FN({{ zmr!gkh7r*1Rd1k(_iT&7eRyS;Iq7iT!#h-9Y%Vs!Sh&A^L1%)x9fBY~FE*6p_q-kC zXqQg;4I6&Gbfde&T1&qty1T3V8YyFl5p;sG-@3K(5;=uxLhLxT20A}L9T0#&fCV{q zhook4NDn!%>2=90zmkX4yPIn*x@>`XHo3LnXp^HjZ-?94z;^vNddG^=#Y%ld+K}TA z#8@mRg%P7wB>y})d5fSauQgRqF0bC@r2xO=20j<^H_jN)ITFzgh|;?W^QQIn^-!`Y z3RI5~KxyODErjaDq%;4XIszJ$q9@CbVmN{#cMbOt-Fb4jWfhQRG=VZtsj7W+8wUCA zgRgEmx}~>N_Fq4h)b#Y+4p|O?5jt>&lxku0QHUm(?)%87yylb38*KgW{`0W6p8DpG)rOOwpiU%I%m7|2 z&D^o{Q8NBAE?(EKu_){lLfPyudRoAI2#xZXQ(ewwwnT^C8het>fR0N|2ns&Ic9;K7#qp`js>Q6Rhji=*JlRce5&p}H#)nI9=38bvIpd0T)_kjNmmruxJBqNXNp@JDTe+M(73>7#p3!_w)1+*AST^vKgIv*J8eWs1)YM6iOQ z2EL?)LLlHCJTD<4GAN-#t%NFrHuCS4c>8EfY7hk>*&=rnoM>lR4hftSx2)7Jq?2!j4jXw ziHFFfm<*uCLS;lmB4jD#GS@;LHQbeNW=lPih`N0{2rG*i=6F{?w#J0Rn%G`u6tUmQ z)J#)j9HI|TrGy!l2`XPlm&d^?2v&&7%P+@wjees59w-X#{YUNAb4SYV;DPh@4i2_3 z-nV0P+jnk-@_zw05)=?|6a8scWR#Kk0cYR!L?M<6HAMY?4|@w*AcZQTLwEm$VFC7D77C* z9vGhRFdK|#;GCd;i-t!dBhxpBW`qcAI*KmuUq5XXi_}qQJKwP& zT9|GG(nt7~U8ty(FB}|FM=((oMlK>l0je)vBoGDF3Qa&54Ga$lM-FIUBYH;5fYl>+ z6#HXJiH5V2R`6{-83fgw=#DKd7NibT`XOK;Y!JDJ8XN0W$9luiG(F`t*-sN@fUzeI z-7826@vE)sYv>-s$|ZBsP-(KgyWEouk(b6+^xH+Q;iJb-cg3Oa`TX$PX_TFv9h%z; zXv)hEX<@j>AE6LA>f23dZ6r1SCC!S70!m}Sm14H$R*o#b3&x6$1yxYr;vulu!V)59 ztmNnKvh?g+lI2*hM#@~JF1gxev=$zWvp`Z30&D`5Ciy8GqOs|$8IW2z!YZ8f_fO#j z0m82#4U+I;suzOh_2W|3n}=*clIO{Vv)&rpr^d&T6=nbx;fiG_JXOOPO3SiD zgy_GT-h#VneQARliAZ>K% z|1h94Gr1f54+8>-)?!2;)|TTwiHq_t6WGa2AyUUflJuRO!lw=put~lG0{wc$*%#H- z)$4JfUh~(lI)};0jf%(smDy6#Fzw5jF-BqhyPf^|YGkSpL(vC+ zFWILu?+@5Y`RcDj(gnmCrDQWAa6A6nRL$R*b0?qyA(h3&#f_f@c(UE^`3psxh~yYl zDTdpO&7_XC{qGATYmg_UUKEYYtt~ux(vm14At4GCDKIWB4)HWZ&2Q2^VtbgAQ!NHc ztq6ioIVe%tvok9i9G#!s0!qP|I1{L73C0XuMI@jX?#z3m4jcjk#3ocIfr|c@$dWL0s;YnK|4ipmJP}= z1nb?ie};E->w$BI;@h2JZr%wKR2V--U*eUurf?92C_;Q>Q~dk(y4uVSMmtZmzLFzh zR8-iB+bEbBk|tZ&YtR`XT{GkCGT3TEI9}k>S?uf^2WzV-joV17}EdmF6MAO5CMn5%MeRtn8lhobZBX>gJF_$4c z1nNdl>;E%7Iy^fKg&+*YHOA5_<-J-4@>;=|Kql95R>{1W$n?cDyl zs$%n1UTJ=q#PZqs&6`^6cmNT}xT;grQ!)cW21-yb|F_!CJgn!mZR6icBwIz%WUEp5 z$x@9yp|T7$Sz1UbAzRH@-Z7d???MTcrNx%9R8(ZmNLfb7J{X};r1x_*%QG|Y zy#Kt%@jk~q$1HyR`Y!i9)`(bTKVdr_0K8lOUgagj1dMkHjDAD)sD`qZ436h@lNg z@J`lrZnyM13-pE;>eWFC8+(7#mSTO6*RM~WoU1#Q9n+%P4pKJKdl1Vm6xE_7p`|~J z@EI2uhtpz-S%(hZ=U1C5ug{dsI(RZ1ZioS|sqkIfe*OB1`$k&Pt4@#BbVMinXRLf3 z)3WQ!ooZ~x8~HQUOaHY5(bdsW+6S*LiJPZ>8QLIcCSm#vW<(Vi$eO}&>D+QWP-AO@ zl$jJa8dyA>J9jPwpodO|P=`R3P0|8jimQ1O!dvy9?-v;};Im&4LQMU*ScOxh(@?EN zMbo7jmzH-PI*i1_T<%)=0HaM5K43kn1kru6C4&H^>r8$?c1+tPPJGa>DaJF&o` z&Jq;pRFbTSSa{loWfmb-5^PC-M1CSEAB~arb;q#lBD+lAb2pZT;0#E8U5?k2y24gk z@+UKw`+)TOh24?X3T|LA64K4g)D_#mL|wVpN_iSbS_sEdoR&l!0l8B!OtHO@yu)6E zpp9?-Vi7_T%lUhjTCL!8aB$NqqLN`lE;KE{xD*CvUDXaYt*|2N3rIcX#;0tE;vFP& z@H15~Tlx&3lz@E(y3eTn?mZQ6iQJZ!M7C+m#}EHY(A@!J!1_G;s&iqa3@dxK)7ZFr z^(^`2%=5EsYl>&-Ga~g(AI={nIss(?^i;o z1$?j;jW0TcUW#iuzr9FGD z>qsX0TbeRuMV_K`zi!m;bNQB+r`nXk|K@&Lx;1lu?*o+g?cy zW4}I{y=9yjqjoVrKbzzP%2gvp_8>oAcMt2h2gB8KwchiGv?B)-p$SK*hNs<9=km@y zkw@5qN>ok*`R9k(AgYU-oX)y5J#2qz*nllMT(32SkjsF2TVrEafTDv(Ybc9DLnVEkcp1{n zW`tz!`wzUXNvdnrpt59bx>kMaT(ag+`k2Hp#F491=}kG-_o_5X|E{1|NQsc{dnq6v`rP`If;yU_IqY|YUDIcKH)Yviphcx3`^Z@0-*=n&$IVAM3 z1#xjU(p?px(h7#;B-{zys!HGY2y0Y`9r^3EpH-cwv?{w`lC!i8SdXb6P z^h}niw@D8>C(C+)_p&v`qLcNegpdxTeb^G=H#Ey4nBrN_&2~(e_l<$X>u2hfJGHcO z-X!>VDh7i1+^LIapN6mDCq!AVzH9f&YE-Yc%I3qbmuq5b*G@1v2ZwqJ?m9;4o!Fyk zv*nsi@|0MF-Pl~)K?{XuB0Ms9G3OTKusK%c+}BAlR9(?Y85%#>&(A!lw&pu}PeoKT*lf+ZJ|`V1Y%Kh5eGxj9Y`M<90~2+U^&LCfFN0+R z&+Usbl~um~REfs?{0QclxW$)30w&^5B5ldJv8m@Q10scVgt`97a6W-bEpkVuG?aTd zk*C}RJ5tD=`b(<^aAc?y-pgj(%U-hJ!;7QB!mW8wvrY=KL;kl7XfTM2yMQ}*6YBH% z_vL4rC8zkt+n2T>nWrmh0X=5B` zi%BPTa;XTA#qUr5t`n+iQOKfzV)qX{ZA~mescUho-c6;)yhjeuarJ0JtFJ7Xb(Gi7 zB{iTwfs9mcNF=F*M@2ZKXXsv``S%iIRwabyPaKS=R@Mu8C_5-w#C3W$Y=roe2D9kj zSUF#_2%%_@P9tlt;sO-~>nUR2S<)O)91CNLb0LSOjq2M=Zz)bq=-l$URIlbVYZf!+ z=<=wj#nI6tHw{dveDn~L20CCkNcaA;-&4I+GcTp(LtZZGzh`?Y1F$og{k+&>Vd;<9 zIFg>gTsb)A-N>owNo}Rsc^|mlmfDRID;y;*H`6rXz-cHn4qN-^g3T_%hD?BMv$}M0 zu4t9{(;lbEkiKXG6ZD2slFQMo>eSb8`0%|+C(nPXO6=FNn@1+}jMVQdIbZ;EStu#9 z?`3N@$jq+0%>?dPp*x=hH^e74j9ox*?w~cslc{C0Zw`T^B zn9B?TF|QPCAG3s9^gE5byu9Mu{xtm(0!`P7W1%$OgqsO-(LmV&c|=%zGWp;HyZXxD6L!A~p@ieKJ}+;N>YZ6s*yd}YjzePS(O(7u1nY6Vm#(FTI1nvl zJf|e24h;p3!H(h{U%R_+{$!uY8Ka1w1!n8+pG;N`toM=5`nrs-X0++@&$`Y$zo0-@ z2rE!dW`B6=PY{r<4zz(nugfpdGDy28sdmLT_)ZFUD%a>6Z~~iB(<)V#O5HnaPJ@{F znj5~olSM;6y3HQxqlxo4TWCZ=T5+$xb~0B62TshIqwO+yPx_hid(psRpUz$uVmzP- zFj;a%z~1t-(SC0C>(sn`YY#UvChYK6#f9Y89^i=>6GL~XE}m3sV!C!je1TMSGLZnW zm2Y`5IKV4za}t%7WW^8W_7!eaXv5kyt5K`2lmyOp&rdtyABei>)cdkV3uAmnQx+t& zZP15jc*;18jY5ki1F}X`DH^MLnCN0n|?iZEg?8)K>&EIq#^v0Fde}e z9n7qXmpYh*>evQ9Oddwfqh&neM2oFmYuk19)>lih%xl96+HmX?Q3NOfN_Mor740pD z?KUTiU$d}Wo_^c0oz3&8_+fUXzn*I2H1I_zP^aI`w1oV(PI$`aeCfH^5eLNZu1C{t zcZT4q+ZLr2_*T4)8;%w0o=*dc5))<4*J#Jbl?)RpC7;aZ{OfV^WEm@pzvN!Z*jZSpV`Rd#PXIEF( z#F*vSi-4y=B{URegpjal1Lo0|tvu`qI8TpmBZ?mi=f=BewsJ6a`^sg+sw4}+Q<$!5VVifa4a zsB6`xUAy1$rH> zvuNwq*3ym!UXE#Exz1%(+sxOZ!k{naUN+U*E8wC2MFuCxZl*d3Z5Q-j&1+$$zD-TV zSdY^|ZODqm_1@;gb1N|SUylAjo1p-(^0{jCsxzy}vLAq|qJ)y?CW!lve&n8YEVrLBGK=o?aj#^el!R=(|xjn$-D zk|8lpHdVW>7ZELmOk!R8@lB3RBh5+I*N-2f?7KLp0r{TkfrFzuRphm{&Ij{>_>r@| z%es73%~Yf28hZ=f&*rub9b-5t{q#A<#H8Or8NZBe)VRdx2XiwDRy69;D%^ZQY{$b; zlE<`b)UcsNpF|wjb+IrQo$;svZqDC=PUIr=?6ZvMa6K=$>S4>!4}k8%;EdYuc4*rR zEPaXBK5qRxM|*T*Z*+N88@m5fZKr(Iip_`WTGq2uC&hpmLSH;^)}PWTdjIJ^9PxnE z?OiXa)Y~f(<_6Y&v=ZzR!sjGXAJ$sYm1n(q|0mwwnpIsH9~UR|a`_~Mo8fzxsYt!fYLMQ)`|Wm%icOt>SzwG#g6>XffUqxf$rEj8`$W zIkMnYna_oO^Pfjx>u!{xB9SzCW8Ya{6W7IH;vYiluRSLmsXU3an2Z7uL6H7&r!f`*o#C;9bn>CyKA*;#pc zd8hgMI{A4rX2~_@@%HF)gRsmbv#>!_bkL8Jtv$x<{4J@knYJiuvNXJtP1c-e7EvR_ zi18k8T&VWhK_Z&%d!jDu9+9wmKyXY}-8Y_RcuFVZOmHEfE7iIvwW|@umveJMTT&7I z&uLE9^~)Q!aIoAI8$0pg2iN364nAA>t}zRH{KIe+0Z8CCw_i^wXdL1soCu|^yYOqqienS$^8vA>{8rPUTxU}9!ARM8wvkD&zx|E|3W5U+ynrVi5tsZ;}7qhK4HTynOQ?G*Tr+QOQK)@X3XaJh|#z% z%V4TvzBK9xnd6ovKmPb5uu;z;0j}|JFFsN^L=q4U%|8I%*wZePFYD~2Jos)>VVO=! zia4ahYH=K$HYCZR|4}sCWami3%)@k!E&R|cEb zS-tlhceurvmfo}A2_U+_TFXD>4jC(ctEOMC*}B!EteTBZdBCKFp6(~t@3Zu;+563@ zs`|{o!0~Uxve9uadmZ|FAv_={m!-UORC&>;0O#G?Kve!!Za1K9gK<&$hvvyhApDIO zW26P1OT-pmDv9)eTvxG1C*4gBzO%iwM*H2of1~@1zWQzjN4lj1R?T(T(yIxDXV``f z8&dPrKYQpuZNFYia==T!mBXZKJ8Dfoe#;%J$8zWk5#+e zH8~;KVM0qG5Q>13WLq-ET=SpGTn^zIY&n}MAC-gpHzz9%LO$*=36ly!7}Tig*IfVl zOVyizx0RJcfZ&*AbinJzt}mOzdq7hEgVw zdzzYNGAbDB@I9^BQ8WOhH91GbNKO#6Ko7!rr*ROocdLGmbAI&Z4%Z+Rs@QIb(~6QME)H>Poc!FgT4-RHrz0l>F|Z|9Uk0XU zt7QxZU@k3~nrh8Gr<^wS7`zp+G37wWo>Lpf4!Qk3S7*C(RD?LsqlJ4KjH+wb_YDnp zvduchYI@jk;F0wTu@-TAXY{I{({ktv>7Wxph-u--6fHg>ZdHLMx~v z`K3L_Xae5_gTapXV=Mnxba2RM0sL~+>FAl4w)cIMwdbIab%M1LhW&~RxjIW0Rv80` z;ec?qz`F+cCK7Q{Ls}>}D0|9KxaMwt864aI!7Y@in#M-GE>du}G875BeL?Zf7aYRPTIfd)@aATaMk#Ogd)6hqv7rgD!_=~*t``XK7d|e$ zz?H3TnDuFfWD*myC;wk3DGrsbz#O*Wo<_6A27P7k0wp~n|2hDIh#WscGz8vJGA~_fLM61hbr~z7qZ`4!_;mJ4WuGBlk9kzmQ-um_+`apiCs!QpZ@}V;$bV2; zsxS{Ev>nYv$<0weg+Nz?E{*xoI8cj}>os-rEAC`id3bu>d-N#0wA7o^*SYpR)aY_} zgp$CLT*w*0uNd#^Pfwm)nWIn!wTO2tbE^#Ads0C3-XjD>j z3Aq~R$N86Ps8oYF9_Aof`JG@KJ|?lAA}*Z*##g_48AFT{BfDZuLhgS5Y`=ElgC|e$ zYe+5>&s<3Z#DOZC4z`8w#a1$Q3}CjNBBc4?+7Io7g#>|h62F8A6hk6E45%Bb!#`3@ zUMuOI#34ztI>^CcS}u3=x_keoMU5Q+Ji7p1pkn4%!=0HOs8O>h1JU^@?h^wILkX zmG4@1b?i2Du^jRz4 zl|Zu-50#o4iezmL4AGu<{C=APjW!+BTu-T|6fgi$uc&+Zv3GV_#@!f1IK^@kM9?1N z?($yAoz_~ubFyFWXzc&7gUP%i*cC*yVZkNz9+VWKQy|(q!M~_+cNR<+MjU8qO}`)skIGKJbI5_X&q z%sr2{;7^&pa;y2tuONqt4Xyz)>HxSE;n+dEa~bR2(xWA=qJwn*KTsI<8>0()EMyGZ{p1 zT&j;IVW$B%2~)UL>rgl8W+vQl)ma8CgI7SbW}Dygjh$YP;DxjA+7m^gw>E(58!fXf zxzJv%-1kS&8x!iHeB<4~H;&S6Lh5mC;KZ9noi|*ld^wn|{wmCDX}C_Jm{L^lf?8ak zjPw9VnbCfiOD$Tq+@O7OzDb%nRf6**IN(c|2?(~SkzrjssthyNn$+8xnwpZ$i6gm; z${~*J2gZNt%Sy7G_KbJzg$7d2(TD^@PJS zHOaBq<2wM9ot&HNjyHf6Zm;ipI%pwt6vQJ@#tL!x75Uh$9s(co{{EwPvq`9=)P9bM zJQJDV4w2x!b0g$3rl}3-Dp*!f;+6i4?~z4?f~qsf7A77QF)oGA5IKqJvIj@DmT`V% zkdSFacR?<|_?pEmaHIi~@H-PjOfe%Ar*5t{OGZx>7Z+<6LJSz1ub~rp?u5jC=+;Ni z=J{UU+8JbS32~f5^T%;%QzDi2xGQ!K>tX%0J+oazGbMU!9K;&2{9i%wH{AMOx(6VT zW*#0Mvhx=pc03F8=04Nkbldgvy&zoCypDzmV>+|`&ocO>B4$4g4IxsaQ)r0ttl)_M zgt`GV?Sd;htb|Gy4O*c^jw6YRP7dsEQD0cJabl5f5wEOBb9R<)vh0 zq-3{?oOg3`zO+wT+Tnj*A?4(1D}BjnWdQH8##z(&5<#$?A^%U6s`~5#K?MCeqOsr5 zD{iFA^ORvtCH=T(O!tOpF%hwujKs^;QmJ1zJbA@`Y|{gt=|fKvW=&i#oqN%|UhBqD z1v|rQ8#bIBE1B&kShpM;dac+a92_w$b@Ur`(b$-`myl<}Uis`QCh4DXu^Tzm8QD2F zIHKO);wz-lz@KCb77F?A&7oAc!otF8-^vi{@Pb$#dNncp;jAJw@l&g_JVZEttj$6r zLjHRA8DbNDDkuB@w_lc%?Ca~hrMan2`qHIK`9($N#(OLBz5hO~K4&Gz%O!1oqr6;g z&)&Ti)z$RVL#1`}W@N-!DH>_B}iNC0%dJ zdhq}@-A76lczJWG{>HBz9aZh^d^vWll{LbFFDHctKg806Yg|rF-emnPRsV@$_iCC2 z-Dp?QGXuvnXM&DKOFlk$o$J1mx15wksoD9}(e9G#;hYjl<|RH^+1Xcea(2Ej%Dj1| zD)h`)cL}@tmRbMl#fhP|Qvb!HN;(UAO{>1MqZ<~#ULMmm&UPO@IW^SEoRN`{_2x}* zcDDRJ&(Rw@?Z2pPzO!}qj^?Jh@hZ0HOpE0Y#Y+QYW0@`0@2+!4C!_@j(?%@+YI;n= zx9ei+Ng+;78dFnKT6+5L^M8L5l%du%?sku>YXy%gtX-TL**0N2UK_RXzP#;P0|SGj zpLgjSTRQ$)%l^BvE_$1Op5tjNTigEezN)#N)s?FyzO&!kbL>-3y-IQ|`|v?KI5@bs z>G1)t)#cfVgw-X6UAuPe@tN9Ex;$h0@^lfGi;GL@@n<(D@BjI8acZQ4`_-#gJW5_N zSQ?hyyLT^5w^@8GxFkWpRv>J8xb2BGFG+hTh=orCnxv*`Idd^)mgfLrHR8I9`0s4 z{!Hh@x4`;)J9y-*7$uD|Ze(T2C^&TsoIH6l-+h=1XQJu(afzk*p9#M@3$p86=z1cJ zS~D%mG?$ZGIMsW*JbMm$dF@eGSCTb7TvjX16JqV+(duW-Mhh&sw;Cj)9d|g z%x#>UGA9?>ECT6>9|HqtT3?))oBE`C{d0}`@Ru_`YNO8glq&CXXs12CiiYU5!U&r!1*d^?#oNE$ZzE^3&FhTW*e?WZGLCVw1>o-DZZlZiO{ z?%D>)fw8jHQbJ^9uAeQZFvFruDlRTg;|e{ihPnBp*GpH}RM?5PPG!qaU$O0W>}3Dh zm>})ZbNu-6kcST+j!#amV-r^SoZna-!5_Vf{ho_AS{RnL{)Y7riI4B%?AW z)gsR^uK)J!M5~d-8sh9|X8~WH#HLMQR~XnNEoj&|H*4#a26WjDT7UcYEy*C|Xws28 zn=7lT4t&lyZQ36&(vio_%BP@LYX0VY)UBf_Nr9^?ViFREtu36KoSL5;j@(^Z^Zjd) zXC@&sGumbP=UmzR;KOx+QekyW=G2?-=sAZEy}u(-_xkNyjhClhQJ*gIc$c{U%IBNU zPZ#Y{S)Mv>R_e$5aF>ID(BI+AvLySq3?A9D!PU8TtuI1wL%53~u~813Ju6navS9D! z<73w;p`h^Q>oiwPL>C-8_ za(%eW=0bP-uV23=`b-alRupW$J1{fxVrZ7rJoJX&d!wd z^c^O7juH6wX(OJ0zRJG2@QMD*moKR%Ig&OX?mu=tGG#s7mU-CHQsmE{KbB5Tkr}6p zzGI_{2PBy0Ufhqr$2<4+_EHiPMFf<646PF`Yt_X_TU0BK71KyaNaPn5ekXUbo!yZA zaLjwFxuLX7Jsj($pQ@|P`H>GF@^||Tr>`r!N{ySN?&>O6eN*r{w&Zu*ls#_0n(QOz zzh9S@30U$XHz@zEi*tFTuW<(-V}E4jJ;P~-Z ze)Fy`P4m{`4?ddvOQuC;=NOJDs)sykC%cf)O>wPzWEGlQ`rFvL@b?|JMQ^-k_x|OD z=~ri}=wF(b@csV%`+P_4jtsK`gFml~i#&ELO#P-geE2Z=zV$KEHGh9LHa|YV5K(cV zoI;g~tt+;1qpbge8(B{8NazMQ@ITXuugtb>Y{|2l{-}cQKE%pTWCkuX;}fppTvsm#v-7F8N#~{G#OOAa`umy{ zx~;*6u0(T~`2LPLdXb;Gv(%qIC@APuv6t-GbLV93ziby!4G?fDnZ7p}8T9I0&G#pf zD%6C=!GnFjnxBwW|G{pjwFLU_W>m~9+$wB!&O4irRfe+iznNTppqa+vM}J#0jY;a8 zprVI%t(9EVqeoI6qn%qjJ3BRsJVt`GHyq#M(^1idzzVWoU{oJ2SV${H15*+eCy(=ssc;4bIBV<)WgZ zvRiyV;3|6O{ap*!0<(hj-o?ki)3%&z!8fK-i`(aZ)c9Up-1ZM2J_JWZM0hRDy?VXW zS#XJ(GKb!C*BZZH`R?7pQE{%S^a0Tr%1-}x@7}Eu4bJx*dxWxh z79gjtzdg@M8udWK#N@%zWx5_y;%x0L(ae$Sd3m0X9ad+{R{cj_B?K%y2Rf3>+sr7c zp{LhmFHN;=Jri!m+vUYsI^vc0Uz>s4By(!1)N|P5)N0|5tfDO&9#L(2vYwrtK)Ktq zXHOzdIJ&*qE~jpmOMh>F^p*T*e5b3(b6aE5?<**bI**i|&*YqMPCDDVvD?`uMGfzC z=FFMLOAq$AB(*=wFNvOSblPHu_#Ar_$ z8&O+ZTaMRq@bSHnJ5urC154Fawi*uc1MUTd~yc(c?3`BO+l~_FQ%GOg>;y(*7&-c6pnN_eIeWk5v4x0crp-RCIO< zaB*>s&&<#hW+gt;IV0=yFa2B_%EC(x0EF#aQCUfi(l32dP-CIoxZLXQ$#jzt+!0Y_ zWkHnvnwAu;i3Y_n%bJ^lb^b3-q|x^#)K@)NfAR0+q~xTm_=$9rot?$roa9wz3t!ig zjK23vZX}Jon-x}-cn21}^(I?I;wl8)1pnEQvORi@MzIt_=lkk>PVkyAdK)+R!1NE{V ze@;c86A%!{vTYP{``toE!?5-(N(56$N#*W|gb)XME^^2)DsOE={@n4U5beZ2%>z3tx{C6kJfS7ho(HOBFG_UVDX+iOE3d+?g{I z?dOiZKz9p^hbexw_QS!-{U@Xw@&)3g@wfd z_rE!kCtor?H+K0e%iuDjTKpK-!?qw1>RO3=8SCf%gOH?soQgATuiZEbByl!^y_Iq7Jf@sxF+dlq%MKv&%|)V*6w_*N z?gREY1RzP4^8qVHY(ldAea*3tsjfc`$XIS<;U9uJx~1_b3fP%HUti&8+}M;UuhKj6 zocb$6nBR@|--9DV09mM08VCGEqynEC;`gzLaK zl{h+iPCcPzWo6Zw-$5hRDk&*td5oAuYmH*Nhuyeg*uWySgG6Nuzn|rMjPR{2_N>}< z{=^#X@tboF?>JTJw>Q~fE4jotpfCK=(SC`nv+tN9YPf>S0dLMVCGN-jY*IR#Y5J9@9q9vryQoMYd1_G{J| zVlrk|0r&~Fa45ENB92zp>(`aI591?wJ(U#|Q~(r`@|<|*NE9&3&#C(4EnS!%WL_*2aC}g`xMz;?@Z7zk{M%wlLzPyp>4sqt?>W z+HUfOF-GciCEn<6S=Q?ESl~H;W)dCQe0)F$l1Uy3J1tMcOmo2m{~2DJhPZHi=PhH> z{*yn}=)~=z0t5OGub5Z6eCKG&+`@3CtlKZWsXyO1`>P`k=;*8^nFmSa>ZQv*x1Z9E z-?ss`^Bn+{%lEfySa{_$3fQNDXc)%vb4$>R^VnvuhIMpws>%C=1yScl16mw=W!EZ6 z5yjdUa*xkK)Ysb9@B34tqn z%}$?wW%H5GtjOb-HHkJVaZ^4$(?xY`XlVFa=$__EM~T^K_nDE%a_&>dsauB+B6lbW zKVnK_TCa-k0(^>yo2m#vG3J zL3GOCl9Cc^opnGu9Qb0KM~)of>v&&Z&snxS^AI=rjFMO#U{|ciZRO;aHa8qK>NGAV-lEKeun)=a`}pC528uvP zLPElQg$uXy0oEQb7x^#d&Vf&B#P4$_;Sl*A-QC@1d&`5w_U$vV-ZeCALq)@m1@|2} zRa|(=IjEA0zIvOyQ3(6@-ij+pz?qc|4LaaHVH67S3fe`^Iq=Qx)YR0$s0_}RE^*=| z8_Jd@uUCJ21hTOXJ8S*Tn>Xubh57g-SC;Qd9Nt9`|`)P7=*u5R5OaN=IKt)8~4%<@sdU+L3C|jV|($dkb zvA4HJP2OI8gLfl({mWg<`If2-3=H}>_Oi~sY7@N`G*oII9x0oqH1NvXgkdq6Q1lHN zL7FryEfYbAHsAj^1J(JYpzJ2?KHWBUZ?Ul{VQL2`1VgK`Th8knlDcOdnev9`mn9pq{ z6~{CGpA^SKoCKS|9twoB$2crNvR}cC`6IuT1*!r_S~@sH@a?p-e1BWKaBK^ya|ZDq zBR`$2Paq1(4__l}Nc zczh`K{!0o)Ig?+%o`M!Ll$-#8ZQt`4Lzn+;*gtZBcUD%a z+p5yK8Sh^HzqTJkO~H9N`Jnw*C=MOwWeG8D2Uvszs1%D7Xc<&%pje^9u7&=1-al^M zU%rpv;o%8OH_dx-_g!^$Wlv9nFpHR2l0n@^x_eS|n{~GP2{SYIK8d7Vm{z=@>^q~z zNCi*@aW$;(U75c??i&B9EzsYdXLS6Dmk9N@r2oT%0ee7#&WMgDwxP2$+XQO;m@w~~O?h<}= zMzB9d$agBByHi~bcg`u;61wsGLT(BwN?LGtrtNn9p$WjeQB-t4FFjRxO$~#rtSqS` z2dvE7f<10fT^gr}p@@I>)I;2z9CXOeQ>n8y&CCsaaa~b*L_{pZg5d_K6Hp4 zg3lQn8~W#l*Fbvtq1k5n?G(J-!23~|bS#p6dji=`ncA-nbRQnn4(Y}5s-^eB2SsD*U-`~DLitlrzmQT z_Z)lb$zvtOrn^Np4<^`7m%az4%7RV+4}dg5Anxt&Ds<23FmB=fXE|}odP>RI-t?J& zu(SM@=)trDkM%^L&DBH-GZ0>0ULpz#>q$x5MD@t*KTqn0*&%vp3ucAMCMvF**oDlC z3!ziJe*GGbT2K(Fqd|*#^GUyj|KHnhocWocrgzI{zB)qf{Q2hLsQLjJdHE|EV*4Y7 zl$)U4eST?t+*eS%1o9!;jk>qD+E{n_O~Drf4Grb-ij+IY^@rbAflS=GcQ3T!3c~@h zsPdMU+kKgF{dd&J-T&cjI3*;+XKrz5o5W94lL0_f^jPnoKKpkU4y3ppk7D<`>LoS$66 zoqyr$Y1y$$&E&(w60|E9QUOux$aNsKLCx!?YofjXwbp^A>)ezpR|Xws$L!7j6l`hF zb+``q2i6q>@aYzBhUePnk|l60wgIcBFU={s(y}Lc^+^LXVKbg6of#i5KP>G3cHH)d z7d;%s)Hrsr)x9N)vuXFVHqF~E7Z+bM>H+e_h6%E5d_>Ygz&IM>{zG{o9>svGI8Sv! zAGFIGbV`c%;QNULm&2-H=j6OnT&x832tL(?XHN{J{%yu+7iMniJDZ>1JCSxzbusVk zyYH>hckWz)`q7UYNf6-BQ^Rd+9uHc?d3XG~7ji?HWs{AgXf$^7)USepVF@a`-G z%YT2XjwtVNN{eaBU^OdY($sRkx-w87!?9rl9XwEyso;R3PVVrxeZNJPtf#-P3j{>{tp(`7_E zTMNN8pge+q_uT;$49mGEV*l!0OVqK4l)kFg`rS?q77On_WzV_WSXo(u_=!$oX{P<6V%SmdeRB1!uOR5eoS|xUxR&X>gryF)>G&?b`v}`x>#M# z_}}R(P^$>W|AGAGn(3)T6>Es#oA@9UK~3+1i@pCb;>| zJ95V))BU%LV{kxb7redh7LS68kzOuA*?jDQ2;e5Vh2#q8uAc-PPRi@2zD8Rm?VQJam8Kj$=7WGBSb3%F5(T!=YAhl$2ze9qp=$ zSM-#D5+XICZt~x5*ZB605)na1;gTE}9Go9s%DHg7aKWjkGy;;0m5og$#K>b0cUjME zjJNz(!NiU+@7is5x9tAk9=0D_IIw3(0~m%cL0&zJz#ev}f0EuQ8krU3y_uqaxQl9e z;dzXN1WiLjO4=gq=&$)M8-gr0-RXxELSX#QZ z_G5JPz9lM@V>&rGIm-(d!kd~%Y2Z#@q}$B|8LTerO@U@V-JYw$bU32OGTxC&nQ_WzVOkin}q5HGsWDzAL0m!Mx z?-k_d%Pd8iPmo={xhMDH`?Ah7FY$i=<()F_b}MDpuWz>njyE!_sT!4=-rP zoCcd5BUx$WylZZvnh+BcLmfg&L~-#^qcSt8!)9gzH-%N#6653JXjxmTgn9q<*4Q_{ z&L;*2PES%OOF7FgUmi7Dh0{aU)w!}y)-dr<6IkTsvs+GR8#0lb)9UqFAw#ynuEGJ; z@5lJH#s_}<=!L<2(8gx-#fukV{s@0YlbYJV8NH6&46$*xjg$vF0XR?8H$I|!u&dQv z5jHmj5>~XoP+VyFbA_~noEJF$z4``TJ=7XB<<{z|rPZ6)^M-Q;elR^0Qppo9h}yCr z9WPF7GoMV63n7Ch+UiHI4b~U#-#4B|=ptFOf~Y z_Sd@_8X=*ffrq=UbB3kgn$F=uJ4P8~5%t)-4ei6Z6maIHtT5!AryVIDR|^4m{-C z6TB;A)8p89sJy$obSj$jcUUuRIpPH8T9S|4-+O6u!z1PExegtqU{ZJ0zHA7)7sf9w z*!>lB`g2f7_IOWjg6Wy|^ARUUR7PhJ!{@YTCc6Sv#)mW8pRX>>|DA&;H9qzGIMj$U z@D)hCE7{=5{PfX7b>~$cV;yTCh>|GtbD9wwGuL)XObj=W?Ms(cXaJ9)=98q;&(ClC zi>cF@&U_bAG=Ai(qoGmg{Bvz@{}Yp3pPe$^uRVsi)qC-A;N;^I6Z=n{;<5Xj`Z&HW z-0i~_YD-5)DV+qBh~8ey=t=xTV6Ur2zbpt(H4GATTpCf@M@rt8!@?M$VjU1Z4gL+W zm1%tX#E!*zTg$I9BRQf`noVVafu!aRC#zrFLel8Q*>#!*2J3#flA70vy3?mmN8P`l zI&mMe_c^QskHUHO*V);m84FLgA2!MMH}P?C0zZEI_{SBgYRl%0PCmGLz)nvuA$M5( z#DBs8L(SgR($aU=Q|>DqasM*XlH$#yY;t#KZ>c(?S-vwBWMQgXstx4!{PtQLpZ&wt z`$C~kX4AmWZ+BNC*UMZZPN|7Sr51Ckr$%qccO78btP>YzoNefTmn`)nO5g@`IUTrB<7B+ zu8i$5JI%?#d3`k*d|eIaz_L0XgSF*@SPxO1jvYuW#(}t4Z{YLkHKy#Due_r;*~J zPrPc<($WxlE1H}2)5eZ$zC)_L`}gn9%F1f8>zaZX5CF}k%CKhstL&QgoKJo#8|CEK zN_?V6+d4_$wP8aDfY*Mps9xX_brTc5%U7-(vx}QP7L)Mv%^L;73^U&6&!3yDE}u5% zdB>}UlZb9FN5yXsJPi(zaf^U?IyNCCHSA-;6330C9552-2+}+6_8n8+ zZeD!KdyN;)DY*|IU)j~>se}DFkBc;A#QV(O7BA0tX}_>>^X5YZavJF-IZb&^7FdYM z6iKStSRq)yk zWZ=hdy45JuhnehGc}_H(n~5Ti=T5$J?Bi3P%}t@2lHk0l;F2v8Q(Qi}d-c7o6sXvV z>PX>8m>u?=TtY$_CuiXE_Q3#eaRH0g)Tk=$zpT!f{PbxOK9Hd7 zb04z&{x;m%)m74eK*RcmJ{{RSRB9q=sHlbpN=xTE&_ezB(P6&6wq}OeeH9FF>j7bO zj%`m)F+KoGiDaL*olyuWyUrbCnuk&?q#AGoj@oyq7tot3U><8(Y}Mzjkw@P!9IUlM zLSxXub#G$C;SnZL=cPH9x9{HVf2@~?>tSSN4Y_*t@b7IBlKo_{PSrl5{lTJpzg${X+lB@*>O}4JcsAR7IYqZ>wc zsaesI3#BOmtTgyBXq(aJJpXy|@!!wd?YF^b1CA?efubY>BL%4?Ksa^Z2zFkM3{puk zK@foI%a@_Pu^QpO2@`1_$2}Kk9G2$#BPAQhrza-P%x&~xg{37Xmfk$YlLt9tKGN+I z*Z+p|D3HLi0~r8evzQo8W&r7?JrM8c1R=}$Ius5n(*;EW|OARvI$NoV*(B*C*=x93p7O9A^^6&cWxKZQKO%i1s)n-h*aJ;vY zt`#nEkY`V8fbZ;BPYvRRhzE?0k~=p$J9~y-OwRS+HWVvcUCSbzVgBeoV}9Y#(~r=I zAEUmIX@$#|FW;393{Ul%Q@t7%cJ1J18fawqc7TWfSkwDGscXiut1twwuK=xC7fuV) z^DCEpELa2OZ3w0ikE#SSsT%kYq$~9H?b|K¥ZxBS}3e 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 literal 0 HcmV?d00001 diff --git a/cfmced.png b/cfmced.png new file mode 100644 index 0000000000000000000000000000000000000000..0b18a31a86cfdc0f629e2d38878281fa01b56e17 GIT binary patch literal 33505 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 literal 0 HcmV?d00001 diff --git a/cfmcfd.png b/cfmcfd.png new file mode 100644 index 0000000000000000000000000000000000000000..39ea9ac476346ae5936397e12b202b92e9f77702 GIT binary patch literal 29759 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 OnP4?(+zCt1_5TIC+1|kb literal 0 HcmV?d00001 diff --git a/eval_model.py b/eval_model.py new file mode 100644 index 000000000..742756788 --- /dev/null +++ b/eval_model.py @@ -0,0 +1,114 @@ +import os +import torch +import torchvision.transforms as transforms +from torch.utils.data import DataLoader +from torchvision import datasets, models +import torch.nn as nn +import numpy as np +import matplotlib.pyplot as plt +from sklearn.metrics import roc_curve, auc +from tqdm import tqdm + +# ======= Settings ======= +CIEDGE_DIR = "./CIEDGE" +CIFAKE_DIR = "./CIFAKE" +BATCH_SIZE = 16 +NUM_CLASSES = 2 +DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu") + +# ======= Transforms ======= +transform = transforms.Compose([ + transforms.Resize((224, 224)), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) +]) + +# ======= Load Datasets ======= +cifake_dataset = datasets.ImageFolder(os.path.join(CIFAKE_DIR, "test"), transform=transform) +ciedge_dataset = datasets.ImageFolder(os.path.join(CIEDGE_DIR, "test"), transform=transform) + +cifake_loader = DataLoader(cifake_dataset, batch_size=BATCH_SIZE, shuffle=True, num_workers=2, pin_memory=True) +ciedge_loader = DataLoader(ciedge_dataset, batch_size=BATCH_SIZE, shuffle=True, num_workers=2, pin_memory=True) + +# ======= Load Models ======= +def load_model(path): + model = models.resnet18(weights=models.ResNet18_Weights.IMAGENET1K_V1) + model.fc = nn.Linear(model.fc.in_features, NUM_CLASSES) + model.load_state_dict(torch.load(path, map_location="cpu")) + return model.to(DEVICE) + +cifake_model = load_model("resnet18_cifake.pth") +ciedge_model = load_model("resnet18_ciedge.pth") + +# ======= ROC Helper Functions ======= +def get_probs_and_labels(model, dataloader): + model.eval() + all_probs = [] + all_labels = [] + + with torch.no_grad(): + for inputs, labels in tqdm(dataloader): + inputs, labels = inputs.to(DEVICE), labels.to(DEVICE) + outputs = model(inputs) + + probs = torch.softmax(outputs, dim=1)[:, 1] # class 1 probability + all_probs.extend(probs.cpu().numpy()) + all_labels.extend(labels.cpu().numpy()) + + return np.array(all_probs), np.array(all_labels) + +def plot_roc(probs, labels, title="ROC Curve"): + fpr, tpr, _ = roc_curve(labels, probs) + roc_auc = auc(fpr, tpr) + + plt.figure() + plt.plot(fpr, tpr, color='blue', lw=2, label=f"AUC = {roc_auc:.2f}") + plt.plot([0, 1], [0, 1], color='gray', linestyle='--') + plt.xlabel("False Positive Rate") + plt.ylabel("True Positive Rate") + plt.title(title) + plt.legend(loc="lower right") + plt.grid() + plt.show() + +# ======= Evaluate with Accuracy ======= +def evaluate_accuracy(model, dataloader, label): + correct, total = 0, 0 + model.eval() + with torch.no_grad(): + for inputs, labels in tqdm(dataloader): + inputs, labels = inputs.to(DEVICE), labels.to(DEVICE) + outputs = model(inputs) + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + print(f"{label}: {100 * correct / total:.2f}%") + +# ======= Run All Evaluations ======= +# Accuracy evaluations +evaluate_accuracy(cifake_model, cifake_loader, "CIFAKE model on CIFAKE data") +evaluate_accuracy(cifake_model, ciedge_loader, "CIFAKE model on CIEDGE data") +evaluate_accuracy(ciedge_model, cifake_loader, "CIEDGE model on CIFAKE data") +evaluate_accuracy(ciedge_model, ciedge_loader, "CIEDGE model on CIEDGE data") + +# ROC curve evaluations +probs, labels = get_probs_and_labels(cifake_model, cifake_loader) +plot_roc(probs, labels, "ROC: CIFAKE model on CIFAKE data") + +probs, labels = get_probs_and_labels(cifake_model, ciedge_loader) +plot_roc(probs, labels, "ROC: CIFAKE model on CIEDGE data") + +probs, labels = get_probs_and_labels(ciedge_model, cifake_loader) +plot_roc(probs, labels, "ROC: CIEDGE model on CIFAKE data") + +probs, labels = get_probs_and_labels(ciedge_model, ciedge_loader) +plot_roc(probs, labels, "ROC: CIEDGE model on CIEDGE data") + +# 100%|██████████████████████████████████████████████████████████████████████████| 1250/1250 [00:15<00:00, 81.85it/s] +# CIFAKE model on CIFAKE data: 97.55% +# 100%|██████████████████████████████████████████████████████████████████████████| 1250/1250 [00:14<00:00, 83.71it/s] +# CIFAKE model on CIEDGE data: 62.73% +# 100%|██████████████████████████████████████████████████████████████████████████| 1250/1250 [00:15<00:00, 83.19it/s] +# CIEDGE model on CIFAKE data: 50.09% +# 100%|██████████████████████████████████████████████████████████████████████████| 1250/1250 [00:15<00:00, 83.08it/s] +# CIEDGE model on CIEDGE data: 93.19% diff --git a/eval_model_cifake.py b/eval_model_cifake.py index 5ef0e8629..880cff40a 100644 --- a/eval_model_cifake.py +++ b/eval_model_cifake.py @@ -16,7 +16,7 @@ BATCH_SIZE = 16 NUM_CLASSES = 2 NUM_EPOCHS = 10 LEARNING_RATE = 1e-4 -DEVICE = "cpu" +DEVICE = "cuda" # ======= Transforms ======= transform = transforms.Compose([ @@ -33,7 +33,7 @@ test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=True, num_ # ======= Load Model ======= model = models.resnet18(pretrained=True) model.fc = nn.Linear(model.fc.in_features, NUM_CLASSES) -state = torch.load("resnet18_cifake.pth", map_location=torch.device('cpu')) +state = torch.load("resnet18_cifake.pth", map_location=torch.device('cuda')) model.load_state_dict(state) model = model.to(DEVICE)