From 9e617c0d2d44eec1cc3ec6be1d46e74cc0bed5bf Mon Sep 17 00:00:00 2001 From: MaxNumerique Date: Thu, 17 Jul 2025 10:59:40 +0200 Subject: [PATCH] fix(fastjsonschema): replace jsonschema with fastjsonschema --- requirements.in | 2 +- requirements.txt | 25 +++--------------- src/opengeodeweb_viewer/utils_functions.py | 9 ++++--- .../data/take_screenshot_with_background.jpg | Bin 6536 -> 6339 bytes .../data/take_screenshot_with_background.png | Bin 7982 -> 8873 bytes .../take_screenshot_without_background.png | Bin 9187 -> 10335 bytes 6 files changed, 10 insertions(+), 26 deletions(-) diff --git a/requirements.in b/requirements.in index 7520d92..c7dfbb5 100644 --- a/requirements.in +++ b/requirements.in @@ -1,3 +1,3 @@ -jsonschema +fastjsonschema wslink websocket-client \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 2983880..07fda19 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile requirements.in @@ -8,37 +8,20 @@ aiohttp==3.9.3 # via wslink aiosignal==1.3.1 # via aiohttp -async-timeout==4.0.3 - # via aiohttp attrs==23.2.0 - # via - # aiohttp - # jsonschema - # referencing + # via aiohttp +fastjsonschema==2.21.1 + # via -r requirements.in frozenlist==1.4.1 # via # aiohttp # aiosignal idna==3.6 # via yarl -jsonschema==4.21.1 - # via -r requirements.in -jsonschema-specifications==2023.12.1 - # via jsonschema multidict==6.0.5 # via # aiohttp # yarl -python-dotenv==1.0.1 - # via -r requirements.in -referencing==0.33.0 - # via - # jsonschema - # jsonschema-specifications -rpds-py==0.18.0 - # via - # jsonschema - # referencing websocket-client==1.7.0 # via -r requirements.in wslink==1.12.4 diff --git a/src/opengeodeweb_viewer/utils_functions.py b/src/opengeodeweb_viewer/utils_functions.py index 635b3c9..edf3163 100644 --- a/src/opengeodeweb_viewer/utils_functions.py +++ b/src/opengeodeweb_viewer/utils_functions.py @@ -3,8 +3,8 @@ import json # Third party imports -from jsonschema import validate -from jsonschema.exceptions import ValidationError +import fastjsonschema +from fastjsonschema import JsonSchemaException # Local application imports @@ -24,8 +24,9 @@ def get_schemas_dict(path): def validate_schema(params, schema, prefix=""): print(f"{prefix}{schema['rpc']}", f"{params=}", flush=True) try: - validate(instance=params, schema=schema) - except ValidationError as e: + validate = fastjsonschema.compile(schema) + validate(params) + except fastjsonschema.JsonSchemaException as e: print(f"Validation error: {e.message}", flush=True) raise Exception( { diff --git a/src/tests/data/take_screenshot_with_background.jpg b/src/tests/data/take_screenshot_with_background.jpg index 7edd297bf71ea6c863b76c1b9e0a32f06be49533..b490cfc531dea2276a37cc744dc653f6eae4dafe 100644 GIT binary patch delta 5755 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 diff --git a/src/tests/data/take_screenshot_with_background.png b/src/tests/data/take_screenshot_with_background.png index ef275f935be3cb778b22330ead292c621873fb23..6dcfc0baa41a2bc42fdd63ba455d75aa2ef90d3c 100644 GIT binary patch literal 8873 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 Z_%9yax{W>=r2DrzsFJ2)oxD}#{{XrNA&&q6 literal 7982 zcmd5>hd0&#|4&8N>?WaW3)!->vqkm{mqJ!n;^JD-wO+(+{6tAD^b!%pVoitL0(wrg5gl)6o=2Bs+0FerNW?H~E2i znZ#Iqmv*;H_t}F*XWwhgf@Uw$DfjP?{dmzvP2u?PWa4$hOdP4Vv}lZ=ZRfOh1UJ%J z9UYQ4%&B0)g8}~^HiY`ur(~OVWMw-^PvZ3r4I4$h=FiVgs;qvjj8E2iD=6`*3AUuEm{MM~oiXNv|Z<(9BxVUI*YgZW7 zztYM#H8r)I0_hk~i>Dq&4kRgW8an4_8) znO!+TcdwBGoc}faQ%tiumf)`hO`1twZ4lj}8gZ9?_rRJ%c0Jd^(lUHIImZandbV#< zFi5WE>WKW;(myZh;jH&;XjdE7aj&k#Fzl&qQvdOl+yD6Nyi?^ID_&bwwbdVfPVnwf zfG|{&Qy9x<)$;kI?JqW?k}43DRV?0q5KfegN2g$ED6Sgu$!P!3B+T;Q15JSAb2bY|F2=d~UH?+^ z8;Kp^G`_IjW-PHm;XG17D5pPP-IbcFX3$m2Lw&g=V5YZr*=utzXzJi@EsJ1UuQZHy zZTUHs4|p1n1aJjP%ZMPmYxRt=B7ZgHJF^Vw(<1|H3;!YM09RMO^h7w18?i_h^btA z+M3+E_+57Jy()w#4Z{>0=D;}I>Lv}ScjkC~rD6gFW-g6(Gh-7wTZ>FT*4EZO$j~!p zi0`?p3SoPAa>vHTrdBU@W8O3FORoTf7WdZg5D^dVmXC)_+BU=BSo$qvu8GCXElz46 zH7Vydc+Wc)>C|9QNN%%pwVQ~nL4JPZ6XPbIjaPQR41D0lVqVimv3Z9Rm9z|~0qpN< zlaZ88-*_k8?JXE=EjQOHD=ULVB)&k^v@u%hP7X$&7^vQ?TwWxsfLsQ{ zvgVPCLlF^>LQ9^Za%zicZhL!UhFwZHCn_Pmuc+(Xrhp+f#o1;^X#FO(Qf%lwv(v9A zk4MrOeMF+?aYjG#T~D&kHK&s--jx8R4>bDK`=ed6CB^}eT$cW-o7j9Ujh-rzl^YcW z_B{wqtRwx~$NeMjxT!Q&AMi$NVP~yh5BWW>is|1+_aF3;t#Q#dsgl(~)vgxdQ%g}n zGTKUdo7vcNo@}88ZUULusf-U|UD6Ryl}w@|bTZSwbYrE~RchP@vv-Lq{;C)!bt!EQuA zk=1|t1R|s!iZQ9x;|jW)vreqb%F-uRhuW<#k#p_-Dd!<-&8`bId{khoEh;Npc|=j8 zsrh@<_16P!xTmKlCNWV#M40LJN^l1GMY8&Ul%lnULj_SWv0#ylklYs*<*B`kb6a=A zzn99DowS-i;)DWZX&z<{n;Crd%UaRw`wE+qVetiGZE-R=;9GRrbo-LvGCRod}K1m-+?<6Uy2BOPD@m?4L__ zP(ChlsRsFBPhY_VV!7X{|M7}e)jdtQ(3kl5tHA? ztz7OrKlyJQ&Hbk2V$dZ2Z-ViL@T-%s_!4_=E~kyUi>@;o8IV5XXOPF08WVYuvftNb zBjsv%zj$AahOS3k8onWQ%`L^cJvx1$^3ub*`{aFN8R_}i$=9!x3%M>H&1SVIyQ@8e z%&u<>e?RL#zVX1tKSrvnja-etr$edWz+J~da^Z~SKvB4lmZc^WWPdz+-9KSDqG2F2ur)iA*8;P`gIAy_&{iM9? zo5SieNZ62d4SXt@(U+dB%R^tgIFxKl@hXqMrooSHl2|)+<ohhS@dB)CN4^ zO=Juht-fE!H*Y@Pn8>S5Mz!qH-{|*OV)Eg_sy`Kafrh5$avpJbypK;vkXL#l z9K~JNk;1>6>92?{OS=Z^XS$8ATp8jnRALHzeTt)??L!i~SeqZI*73d-1?+fq7Ff&0 zGulU9yAWQ{_BgZ1g|71h<+jatj4j^rL&0-UTWqc;(*i=5X^FXbIt%%xn4IB$wlQ&mq-O+52-$@&hH7?RxYx zgbn?RX9=BF_bb=yXn#EKlD$T(x1~F{#C=3fo3OItHW_;Kt46c%mQ&3wG49(Lee46l zlIw+`CqZ=FnQ_a2WhTu=W6C#{%B}JOov15lBgW- zK&>B=qFaDc!RjUPw_d#u?3U(}WiPR?jF&=L1{w4^JCEi(jr%XluRK%4>x!c3aaC?* zcQX16^!4RLXlS_n(z>0HtW0}0k@q*|#Vv+P8SQ)BW>Dz^({!XEbc}y=k~kw(6ha~5 zLG3@v4Ek=#%ED5;PdUGJw;@UtvDm3Bk6bAkLmhdNls%2>55^mlPVXQ0c`?|AQ6vv~ z)oB*0a~rISd~Z!4GOu{qt~$tu?S^uNyW5g<3Qa03;w}=1h!y*DbY~A;-XQ-p;+w`N z5kWgA48jqt(3k-}rXTPcdJS^<@)%W=S`mxnphxZ=1$$&<8)qUb$;N!dh@a;y{cQdY z>eGmOX_;<7SWz_8n~s*2Rv^}dp84oxkg7v&us=!UZVSluPYF=ZlQ#Pgb7eGc4Z{CL#XfYc`oaaVc{CG-qtz3!=cJaLQYX} ziimiMOE>KZTSU5iZ5Glw^^B-va{oWoPA-jXxcqRae_?|oL ziNz+R9x{5#{C&>Vgq4AWp@v4F@qf-1e2=wV`sm&LxB8?LdrMpS{BS-sHI;O>5xxsh zeKhFte5QgXHUL&>2Pzbcn~n$T(~V(g4Q?HN^7@0mX}yaEnRg!}2WrO=2kUVB&&sep zp>s&6^3KWBfRm?E_a`E@_GXQP<2D_!TRl-5QmTgBmP%YO2KY! z-LTh8VsY_t)f2GPhyLxJ)9hHPdBT!R^2@e@p?3QogUR8-X0%Q?$pd4JxgMz>pjw3S2r zeLEHzFYYY(eOL!!{nm&f%V=0hrT8R{A+7`2y#D!ucxWL0=fuRs_V(u`eFL}Qv0<|h$+vuT6vRl$_;w|ljJ9t01tc6CF zLGdJUb)(!&u%`NIbN(8#+0N43+&IOe9QXON1M(SmG(C@h$nxG_KY68n7e9FM2|SMG z&6nitUhMgC#J%@G+gn$3bbvV-G*f(>Br?Wnnww)(@=Cdoi#<26$S098NR* zM}I$Qw^(H{(WW<`aoS4?wg(2QG>yoQ^?Ll63ku<(r!;-SZAS~r%l;bewD#(;6TPi> z=9JtlZOHGLdHgXNdA6dU#M#lGCL+wuE6fBL^yasR@v|g04h|LH1xPba<91Ue>t86y z#?>j){NckCoX+5TMBSvc7FK-!ciSarx4{^*m$N=rPU1rD7C|D5ZDwTaI#2iyxO0uV zl+d+GcE_`>e^bPP3@jEx~j66W9foOkX8K*m+C&TemSgPc$A`azIWV$*FJ7Fc5iG)ZvH0gNK7x&f&+Y{%T6KYWf42sK|%u0$Gh%}e?= ze5{-Fq*~bDm&xgvo0l&&>k&X>bx@Ysz*?AN+LwG&Y$eS13`w?^02G3UX2vE3d52XK zQY@`EBu^0vxr>V}9}%RD7FWld%_pjW40Y+xerNrytjwgd|EJa>yvhLGCUOZf{E{{B8<(bmkot6y)lQVIHAG{7wo=C1x9>@@DUK`Au3~Vp{|fO0sfy0~;e;? zArG0xPoExHzc@zWwGSWtD9#Bx?qISxMXMVtHi?@QiXo zw!6E!ba?1afw* zC0B1~Qli@D!9RrTqU&s+K~x`&XPj@~mZ&Ci$qTgnOlShflRC`q>vjQr8fnuq=-43?geq2RyD zkmvwvREn2UX6@h0R1e5K2AMyMnXoH1Mp~Twl%qknTwUMP#2VKD zmQGmlYqq;e@lr8%CiGw$WcBg|uRk}w*}?Mc;sT*7V5fiaKlz-c-mfJv^E$nV_UhH} ztq!K0ot^8~ukRt17^sX-N5{tEIvgr2^mynSK8~&JiM5_?Z}KLwMFy$a5D~#aK}X+X zu5SfqHkd@I%`Wz)r571Xuwb<0vy=nYr@E7G-_R6bjO%t9Lhcflm-(|6?=>?u);av} z&mL%g%qL;U|LaB#eWu*P4$5L(5{(a1yYBvcXtk`&%iBAH@m1$M3kys5VLQk9c3Nwu za;UX&ib?4(5iv>J2jo!g($DWLb!H`)O84~Qc zvFhsTLD!mTFBb`*$bW%ORKl}C6tFA7sG?T)j)#Ybs~kH;ZNCh7)qzFqEcHvi`!Qx8 z&PIo}w6t_nA?{hoAPR(*aj)vmR#{E*caL_K%FD}{L~Y+6o`J+IPEJ(I9hjJ~Zk#Ss zO|ufNt*;*^BK+Y12>rf>Hcs1FTjzPra*YzapBu3%AUqHV8TLei0az}W5GXI`(59tk zJoIwU|NK}X6q}nDexSG*VNtF*?@vUWj90rzIn59e6}LAe@W6xpuyj2(voyt^816MQ zrl&sqz4^J7Fr!lc16ej_jnUCjuoV^500AVJX|k0=kN@;#`&yvtftq#>V`pp{=} zA^^k4Wc2Or?Ex{9ntEdu(Gs*1-9XVa4YKA_ZLM?YnYuG4$X5_tX`*l#8(Sf1TWYA| zS~MCBl#VVsMvMEJ{H43Bbfz$%;rbWAsRE(1wKrxz^W|B-b;S^CzBDSuY6tzvhjNyV zFX_vI5fAEzC>js_SW%Is9Gc#lSk{=E%LRi0=w_v}EH_WT>VdOf^gRML_i%YZejUd1 z9EZaJ-!nGTJp@9d3+XP@OZ(uq;wQfq7!nwG2w+&+Q8>9PnOkzV%WBc!aK^gJ1hsj9`kgInw=d)cuYyR?u zIj*CmA91|vR<<6v%8k`&oF0|ZHy_c;S8a2QAH+`e_Vx-12^r=n7mB+OuCSo^N(LWA zC5g+(%O6+goc%zGQ|mhNCFfEsm6{g6)#J9dwt(3RF1-e|iS*x6a@8FrAOt^mzO>|LSVrY9E-r>B z+gDgrj622yBN*sdRo6%utt~*c7>zlwJOj(97!7WK3+Y9JzwP*vOU(oUS(=&qJ3I5G z>XKiK(BV-FfW>NXOZlr7RsexzUExqwvL>%&!1UXvfiBh)63_%JoecE@=+Gkd@~+AENGyo#= zgOd(gNm;suVEv}TjBc8m#tfRkipR%ENN4DW@lq!fiNvU=D6*R`tE30Gc!0oR0~IgE zfiJm=SZ&NHkPJ#td-Z4FIFh?Fm4YpdQ(UEVMP&Ea{b+B=Uq(yZXVcR(-aa}#maC z)Dx~q03s1FE;W;Q7hhHe?u$yzRu{UHhcOEge)aAYxmFT*s;G-2mQwN0cK+z&nWK`$ zofRz-hB}yqQgzdd;9qCKgnl%oEdwK`=m;*^s=s?4+pQRGG2{iiR&XGZ}xkP+ILdUk!7dUf9IEYQyUim1dW;Cu3PV-FF!-i($2J3n&=4!RTQ|iVvW%N z5LGI{M8oc)%lX-bn#<4Wfuk^E{^Yk;lH{+&wU{{BZ{7r=x863vS(Vu_B(oM&d-~Uc zl*b#f=3%*B*!L!156KtQbD`w%*?HF)mRs@NF91%?&OX*Bgq?0_JHm;wfvg@#2A zp?$g*t#x#-5kvL3aL#}%t(wGG`;$OjN)^qnpJ9lGs0_k2$`_X=1NgzQhxXLEi(tl5^0Z@nP!6B+%aoZR%`fJSjho4Q%85e(*ON= zI*qFojJ~tS)61(R^yCdmUs~oc61pA_ZW(oWK%&vdTz)dNH^VsoYox2&6`{&6ZG?YWr-M?kAB6Q$^{q$e)7W) z7B4B%luimkX6@!vc^rk`JxHfBc_tqe`PvOR%3wJkG3e)4LdYE|a@4*QaiKqh(Dvk0 yF!bBG1Dn8J diff --git a/src/tests/data/take_screenshot_without_background.png b/src/tests/data/take_screenshot_without_background.png index 6dda998410696ff889d1af15f73d973413292a72..d67f309cd8e9302deeafa8c155c0d6f007241895 100644 GIT binary patch literal 10335 zcmdsdhd)M2C zbM5gv9^c7P@$%PQa~UOYBg0wZ3u)w@al)06#U1_ zFB$=Xa6!}*<#jwwH?a0jnC0`w+mQ^2$45Mv_r_gz!=1L16{KSowvlEFgdJhjeFV)%N1hsIXJ>l@W>WrVQdvX4 zN~d;rcjGoFUM40b?JdvTRFW5DB!URuzh8;{civ^3 z8g**j*Th6YGF6ALzXlmYqxV=@S-o%rV&lv(BJMPef9U}i$Dzl^$CS<4=1@+~fk$#b zhiqooC(2cM=rkfd>7tZH#l@GZzTK|BZe(cqM<(=@B!{eLpk3u!6-*^Re;!xTq|DDy zh6?cWlcR-z#gD^pRaKOihX^+w&AXJsdNGeb(%d8}c=dPHO$a=1d3kwS#{cX{K{~D9 zs@&lFW53Cb%rL{EFd#!ZVZo@~EojvI(awTnr1zLzB?J=3Fx7>-I6wWRS0GpPT36Ti zcq!>)7x)Q%)p-ZNk0s?lxjggKq*&&%V_n)>r&mFGSH}zWjJ2f?> zg!7A1Zd<<5|2<62|D&@PTZLg!Iw9parPq_7oP2>ml`Yo57gQw|U$Bfn%+sV1YiRd3 zB(ipF;Y(bte;WEjOammv)Lo7Ki^BSFx86&5j(WFuUHU0i;j^l$szleifmi0@Q0fso z@#+rgwaOi%iJ~o$i!gnQmGxXc%&MFg!&25lnj050%x|_LNtiLRsv2|S%_#glKPha6 zcFuYHs22TilW!%B@Wrqg@_N7#Gc3GNJ5SKj!J+2<@}I52&OcKteQySfG;aO1Z-(LP z9+v>A^WQqX92OhF;Tty6+|0q+Ts{4%SR8V20NI(3CY_1;acM1#!-=m4p&pr}{PbI^ zVk3zRLi`p}KXtRW@7eJe4jQ!)BNadfn`SVfF4ToFCBr^ic{-YTI*ja0KZshIr7d%` zS6y<$X73;sXYj!WpiwdloK@$xy^25$M;Uwf=Dm{8N75BL8zZ@85= zI&uuFRpW3u(K)tIXq56a{1F8Q@SE?^40Y7kP$Q<_-7qy9`(?$Z9QLC!Cc@Mu}?p>b@xh1qtKS=?5TK!gH&k%|ArI1N6<0lf@?C z*;VxIb-}Rk!Hv2pLQ3RTDBRI;Qcx{C2;7YKmYeB|MPg18&=wa9z4kWA&!&r_m-act zQ`P@xJ-#KEM_W~&6O8(nL_DcUg@aA?C2_8k1X3GPI=UTeYj)EI8q&^Gg^%-e1R~R* zp=thy#dX(+CFP6DQxUcJvO*p;g&gfSEvQ$(Xj!(CxuFUzN7yMJ3ISxDZF5Zh57Y8v zIguvGl%J)u(<=Xe9gW0zY}H|>H9K_q!82&b>f10gvuXpEEkTk40|m7y8AS z-EyINIBvhu!O^kof8>0SF+H?ulRk5jkkNVa-)=eex)Ay;jo{AoHe2fju)G$^bRac` zfnp3*|5|I@@n?NT*c$I|gxAf*nF^z%;Rym$ck)n$AbpmNhopL(kJ#^4a764r)aUMZp=XKNWq!gC8GToFI&vsU*(mStR^^IExG<%w-BeLAg7 zVY;Geb=3Hnh6=eCb>WrN2H8VMluJlW(d+X+vhPRiv)$-Nyo0ZgxQdqK4qIY0WXRNq zH48?sV&>V^QqObB_|@VT&P~_!$%c?*N}2=RJ>Kp8EydxLWo50wrx0^<>cGm%$_DXo zf0oMrmF(^QWsZ?9!TcJsS(h39F=Vryp7XVm)G%Y2vbqD&;1&*yy5K%PQ~9xkB%qQgo6;57k-RW zWKXv;2-lJYdrrMycUTOGBj&T3;i5))IuwX_<{qAhAXEs_0G*x`Ji_3(R+#2Jp@WF9pW$pd*hnsA@|cL=Dq5mDr`)|R1j z8I7Q_FhD8mJNG@OB zGjvPhxi(}o0x#`K%s^XDTWcT$UCq5}xdqudNXH;|lX|>%%3ss=yxLGA4{wtjFo9ZP z$Ceu$UbvPdox}u*KUI8>&YRu*=h7W4*c0?!N_K@oX-7`XP1@xgA1>y3n6=c_&N|Iw0c98ufg zkeUvzuW2LWmC4A#Js+WoU{6yuQxuz@ve+Ure0=o) zGZ_3eV%<}D%j)avS3LRHrNKT*`+rHG_0L91qFrFu{HubzRLt+!4V%9)r;gQlrcjc* zAZuGbQNQ$#u>reJy2J4;H%0SO6iKR@YfEkF4O8*sw^>3k`sUsam5p&m)-Z=@b%NJ|jC=F%)Q638AF9TUj8bi7cfu9&RyykX zd~+`>%&DcSClj*x)BmxtTbbJVO3Y9vSDVG1go0(C=fu4i`1sS7-ADh`ns_nICn@>K zRY8K(VK-01{y?x#X55#%xhJ~3@$cD}2mRBkl7HI5QH5z~X$=dlBTOn=mgNLY5sEHZ zD;!bE>;qPjirhAphH?Q28Kk~B&F-&n%vq#6Qy;i8-WKV(`Z{K6{>F2W;c0zfMAn|3 zN5Myr(llg*m~^lLzwqC>%htVhidp65(3zRHx=!gLKJ1hqqkgnpKg<2(oyGrLi_H@D=&^)v^>zo<%$UG&OCR#9rr5T8b5rMFv@8UyG? z;6q}O+YE(5DHc)ku;j9DL58h3<{wj_-zybHYNT+4kv_O%r#rF=+G6WEyJf z4OT`&B1%YH_adPU7xC%ctm3Gc7-7hCScrmTTdN~$9sLs}#FHNH8}0Tx4+Pm*Sl+PP zKNUfee&FBaIB-TX`BSd>CwTxk(m+L7KC#~6N2z57J`T*{uZ0O#L1dvch9shFR9Qi( zh=;wnWzn=FKlQPD4?I~I%c8}lg3tFg^}%k0IAU1aJ5B_Z>hsJpCA~RwVEE#lJ!M(+DfhDu1wo!OHgKcPQREnz@JR6hlK`{3%>uufY*1< zfUbQ45`X#fg=Eip&@R?aU;bu)h+)hu!bIbi({$&u>$MJ~2sBCv89f>R>M}k4o;@s? zwNIXw?A-XB!0+@g8Hidrm1^`#CmU?+-_4k=4ib8%r+!Q4^v}o?#0Z<()yh`0+Tc~nGedkK1q39H+GJjm?aoh z+_e$+P-E)`d;08?pvB~0W(KUmkC@9Q3h{49t2y*asK*6AD%8hwg&>pA>pES82i^wX zpH2p}_-X&H*5v<6bnuGt=G-98a>x`~VlYVJQox1Ys!G?mHIt|JTYAjg93UHk1Vh!_ zVX_BoZuT|)#1lj=bc-`9OO=s>We5Bn8Xdl0l%#!I{GR`=))7Fo2z_mL{%_cMP+d4` zOz=1KHJ?1=tc;vlbvcnV-e!1J?C5AbxQyzT9}A%= z8{GU4^P_Zl!<`uloz!+L9=@Ym}cB0Sw8Wwad@D|d2oaOjc_p4 z<0s!Q93}OYDve^2;A463WaQ-fT75W0ktaL}&rMdWq-=6Av89wDTt3qNBopO0Yo8iw z%11#J0VjufY+RX|{7e*~j8ln}e~*ri8jtk@o92F0Ru8H#RM1=A&oh!I`H4q(uD&7g z$+S9Tdyw3l+20k%bC*x;Z!pG1rQ;&#TMt zf~{B3JYi7kj*5z!nEr>5vbky5Onj3O6>G&(q(@n#*8|tmkK;KueZ~F7d5R`JKEB5P z+`HJc zinFRMm`u=>3=$U;TdYy%GP$sJ`X=^vxW?MzWiwp_LB1O796rlnM#a3$1B-&QI3m5z5&^V?Ec~=yY{&L?~`=Ym0!q<$gD{&oqD3 z?ih>3-ZL^X+L9@Ja@a4k^+P-F2TX9jC4>wTNc-eW^QB_@$jH~7z2Cn-V(p|U1T0D4 z@Y~#^2sNiUbwrd$Y3DI~>fnYjZ(+_)4++-&^Z8EtvhrPBwDve5bP;GAB~Mdqr&iI(pv;I4)xnN-v38r@9XRP#=*g14&&4$?g)5> zkILCqQ6L)S6RmU#bbs$o>!;)nuNn&^)QL$;pO}`y8p>*GC&q9Tp$fGT5!W!Lu{>(v zG5ib^kigMVT`?#%SPcSEOnY&b-e(0y^PXvA4&7_(=WfX^4sf%`& z`V7qBQcI;itT=FwDW*$U{pCwz>3|F0$6r*OGuh>?`W~1QMR#N_b8nQrtX?;|k|dLyn~eq7Z$3eJ0)q6YoUD#J;9}`vyBYT8JT7 z$9LwB3fNT|8pY%p7EK;-Y_!@rI8f!j$^bqDgBcpuHEhYNw11%~+}YU)RpbsjKK2q6 z5`tDsrmBzFRaQ;(ThJN^Bz%^0C>T{JpHR%v22=td!JdghLyK{>b8~N~Xlcz}=4eNw z?lsA!ba$(LmwHdgr}5p{Xhau$MUXKBJM_m`sQQxN@ki+AV?4f210vCsytVW7JtIWw8~g3`Nn$q3$7mJr7Yx~$+uKv(z1hnIpJ_1wu%gLN zY=Q>$!Wk%ip>56WYtNR5N*s?O_l@cfS$i>P5JUNfSZZGtw@WODLN^l+quz2Gu{HZH z5MFFE^=WDB3zahsUi3NI*XoK{Gj1qpeZHLmdOAonmz%c)M>$uFz!ztw*$!pV(BV2`e+ zu;QXvB_YJFlP~xgcF&pl+@rYp-EYxZBEK1gtD`)nw))|v5*k4yvff)kD$kl+Y8}=g z_LY;3T^N*bwaU->uu*&O!_nZ@j&sPfmtnVpVyz&ktva#_iqQ!_Pa&2Be(|OiNf*7+ z>A-*g8@6?`C@KX(ia4({8_P7WE??VlTif`U7L@VSIV;}|-vx8&(Z_Hi&C4Q4@u&Sah?4G4flHy1v@+M&t@*qIsFgHGv3(P z{APYUUGsinw=Y%lk~6yIw%=FH8uyJ!%%?2h2Qo7C&YM$@*ks(P24wfB{I^3mXV*px zj#jc`KCe=Z$=Mg_J^V@f4RB$;ryJFsZ@gLt28DiSnwL+w!9Qbn%cf0(bLh1OC@f?m zLikO6GRp+3Nh*2NYP|9J3xngED?i6u06t#mU@~i$*=h&@G5S(NV}7|W6@-85?yk$l z2_C0%QNb1%WOW4G#s5ZR$73yBakA#4!H=^i0|6HyPcDxKI(L_!VF0UVw(-LEsP8rO zOf0|4ihm_Hnn4E%1KDta+_l?(NuIuUP?V1Ig<1t(iD#4Iq+%d5H?uNdZAKv{zvLZ+`Qfv~z_SV*< z{{}L;fYWZbka1RwRvH$eBK(&FOYLP%Sw|M=^!#zJ0tVWOT+Jl~qR=zitD+dVl6 z<>lpdULO|)Y_4kD2OWXXD~qbDzX2g|?90(~irqq@P*@2uhM+rPA54k(e^2W+;q)|U z^3wtL%%#@idm5dQnOT{1N2qz+L87Cw(E04>{r5+%q)bA_&EwzH8@;O%_I#eQxzNKV*SYj|lreSJ|`+0PRb1{H=r z`i?+v-%?ZCMn)L=zds7Oyf|#S@@h?i1OUx2%afiP>clL1WRDp3|9-@>jSK>s@irTc z&-8NI5exKr+y~HPQe84A$(K*GN6_cC9FXZ3?6m(}NshdgH!GQ#L0o-P3pv*%j4`wj|z-0>!5Y5eNPto|Za8CcD z{Z|1e!zkXP%Qbg*AN!>R5>dm!q`l`{DAV>~(YZzdG!>5GDDU<3lkH=-4iGSwup@`Xv=!dUz5(|0|;|VJ0Hm6pd3U7~LK1Dbrv> z%v+V^Bj$h68~BT5R_GP5pu7KyQAa5g+1uL#0QW5=rS*94-_CB2Fsod?b@??D^n38Y zsajVsCg_k_HTWLyeR*+y*2Nic=3Z;u@8Jn0ZbpU1&W+@~-pT-zp*S8jQ2haX1QRml zKE*_PY*EZsvEQ`hBF)_-rmE$K6T@Icj{6Y6{vxofSu@HtE+4o*#S)mEMKhtwU2v7twXR*`b2UQ<_D}@^aDgf_JUkrBb8SHG zkWC@;I&eZMwoZUnG>h~yankM{9;GN0oH*%->SKWv2t+XK!zEn>!Kq_F#(}fyN}C7x z>*CL!Kl7|k4LfSJ#>#m*t;@^2aos#AeY|B8f?%RpT3H$T<;x8K0zN3*;)z!S!z}QA zAw>^p&Z+U37X;IggG6aVgTwb%iMZWKE&tX(F(Fja!sZ@o8%Zm{gU=Vm}sPA}J(V(byOb)B;upzyt8aHYudKx|#eGJZhlPIR+0|1|t4B zP0P5JEQ<7<#9~d(*2@RdAA4+0@g=|HC4(%vT=jOH5o|S+S)pe3szTcZBneM)Bz{}`*fVDxx$hI&tye=$y0tkWUuf?mseF+mx4K^ zCjW=hQc)n#cWDF#05<@QO1R5@%BrAVZNFY(SY+Yj!-_683HfOYIBHOGm5TI21h-76 z6^P#ftbDnbacPOlr)=?;j{a6#TWfaZAz65LQL%WQYqiESuCA_NdRrq}Dh7?>rihD^VpUFi(d)uUkf_S@xj_4;_T2@|nsFbr zojAw?Q2Y(GIFK2g=i9HfTZo!Xm?A2AAq4?w#PC< z4I3e8NYKqdXQ}T#AlLZIJ$zU`Xj^L|_6hV{*~=g+T#xJ!dH68IuJRL;neWhwZG?rt z6q_>l7ZF0L=Em#vW;burgo7+kWxn-S+_5rMBWN@RNhckenAA*10@u}zdSe7CH@JA{ zL|gAdqo7IdH!!b>zmn%DWM1`g4sbY2sGC~c=ZH)|QWvX0_4V{THO!wf!w6E6lf44` z{V%k0tr(PAK-mCs2f7G;h6fb=7NjV_9%dGnmZKvnjqg$fN?M?uk6NYO@oc!?9H{cI zFe39mn-Snn-Im(ELGl>a_Y{I!#9Mp@RhN^Z_U5Z~j#Pc^cM3YHBDxkpQtH%zc)D%e z9g3uryQ?Jw=G9`>Su-df^vdz4V_2CWD_X{9dse zO&qMOM$U%HS`43KVp#cZ^+)UgyL2O_tF)>r45;2%$YTX@kMF7#>|{|N{$UGkyg0E3pp<1V)y+hb z*WuH2e6rWY*KciiyiGuU0-Y$##6*0#J7?H-K`z#6;#-`>vUuUePE0^UQNG>u`&+wF zL5QasY0~(MsVU>G>9LWKk;cIX@m3R34nk_$M({g~k#Br`*+7<4RtHTL7Xt;$oR#Fg z`XL*xFRFkvU{3O6eDWghgHzKvvBf7+-lEq$}!4_15+ zCS@SyW&ab_6YfF?N-cV=}3r z+!Mk9Mgq9+#fulpChEgtg~i45;M@f$EZ}?tNNSyX^qH0ywec3EHohi_Qg|g@-4PrD z47EY)O-sum`!r8Sq0&%EI!)py6KKd^5m+rV=mGzr3~imq)_asNP=t1z$Ncw01W7YA zK0e;s+uQ5&@Zm$IzUnRuQ2@~%$^J=x)Z81TIV_eP4L}J{ED#Fr`nlce73lQKT0~Vh0sHuloJlBmpEfH5F6{poynq zP;u{Q?jOB-KkKZD^z-slE;sA9{JUetViLK_@)s0ItzMu;Appr=_5X9dC*@{g3|wM)GmnhYchEOV9d_0%m=Kz z^&oQPyaNn5xEmN58HFB&CZbnK$8P&sELUdnfBW`LWZ9FzhLYt;?~Gkhe*TT8UsT)4 z??9A)U)Ak*O}VolyUXVP=@o<~B-~v1m63q??Db<$*IZIkau2|{j)d^GMx`#2Rn6nm zk-{-O^Ml|%FM#U7k{&z7zoXY zKRtr=K5NzJnF!S?uRXjkhSF%dp5$s^Vq)TZbeRhdNtg*F>^6+_m|K|3g#n%foc|F9 z49!1~Y=lA45cQ=)tkknLW~j_ZQs3GMkr|y zSTDm74qtka^EV5#V2cz%reFV}$|ETu;VufwPMU@pPzdb09H;0o_W4T$au=$KTH_rA zG~jznZ4oA1he)Nd&_8{BeI~F%?x3=(fOhG-FM$#O^%-u*b=WR|r_vQCon(^fe!!j^uXJgXRIap2tu6BGg`m2xaf zYkoU>yNDvAuir2SlJP0L+_zl!78}EW@eBsO{Pf`~IOss&Ekx@iUuxg+ZYJ^A&XkRD zd_O)kEJ_5UU)qoeRPODtASK8_vD6z6A0E01a4e%tBZkQ>_1?{KEa`e^99|;VD&ph+ e_7~y)B|$riC23arE;%?j2vJkgP%Kt35B`5aS3L*- literal 9187 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 Q=N*WW0$jdW*7V)~015P5yZ`_I