From 3238cbb5df8d51f77749575f6b4024a339fbde69 Mon Sep 17 00:00:00 2001 From: will Date: Mon, 5 Aug 2024 19:01:19 +0100 Subject: [PATCH] - Added VideoCapture thread class to continuously capture frames - Built vingette and color lookup table generator - Tweaks to the looper file (loop.py) --- __pycache__/camera.cpython-311.pyc | Bin 11704 -> 11731 bytes camera.py | 33 ++++++++++++++--------------- lookup_color.npy | Bin 0 -> 209 bytes lookup_vingette.npy | Bin 0 -> 218 bytes loop.py | 20 ++++++++--------- sample.jpg | Bin 17475 -> 21188 bytes 6 files changed, 26 insertions(+), 27 deletions(-) create mode 100644 lookup_color.npy create mode 100644 lookup_vingette.npy diff --git a/__pycache__/camera.cpython-311.pyc b/__pycache__/camera.cpython-311.pyc index b81a726ed55de9a831c1c1da6698e817e2e2b428..f24b8e54ef6d950def15e2d6db6ea1c5d8abaa9a 100644 GIT binary patch delta 2807 zcmZ`*eN0=|6~FhH_x$bmY-|ID*oF{@`3ND1jHHn8Q9>CT;Va)m#KDG|FT=HIf!d9; zG9`+TNP1c&{bL)_q^?`qWfRe~O4HQ-)oPk1JM)&v+Elb^lOj!;QB!H^KJR(PB;B$r zz280e+;h)4_ndR@eLuVKn+xXeo6QEo+mG)3aN_qj&2Q4Go8K!ptdjFmKpZAM>E_3k z`UEB97Ku^(kBoi-)psTEE@1-)yQ^Bh8^bnv0%G{wl6HqV5=mKMQYA#P^{ zoRu+mbqtL4437+TcYM8j2<{23x`oByVlX2P!rz2d(+i5tQ+Iy{v@y%*0_uIUNcF!(IOQ=pqXqhyuvi*>6T*&7pOD*`hHuG7RqGL4zGKx5|B{?F6`T=4FSr%G`C4>sW&PFb zucl;ATJ|LMo}}PW?e_b$a75c+Mpu~|p^7JOR_meza827#sm~HB?0`fCFAo13Hh-n{ zP$!y`h6fgM->&yVMRJ=^gM>*&{@4u%I}=X0YS1Icnoh z?6fKLN^OCHw|RNp*)1{3Gr((!TT>g%7*4sOg*zkOP1*BwK;#BeT=`oi7BCu1N}esH zeM)M~DAOtk8;fm+xE7z2HSmrdL}-M!j1`V1B(Z4KVpG%1^zd8bPh3w);&c%LDq&5q zVXBdMY)M21Nz>tKrR?^(lv15msuPu~wOfL;T6?wOn+3+$p;3@SBjugacbqb z7%SK?Kx3J+I6%G}!Ef+bURUB0gq0>y8`Ex>phIyCi!mu+c-QzgH*yEdP;GJDB#G-| zy64GgJ+6xz;>MU^Dj$6kFvW~dMk^vA)9O0ri0L;hsFxaGpVdS4&~0td%M&zUS=Gh# z5V!VH6O3Am^a|%GyF4>A+KM#hmWQ{w_$cy2ZGg`bt`hv^3+`GZ-_?G!73W)P8G#B+*;k%9!sT=j4 zfcG7B^fdh0;gQcEW0XV0%E1eT&O_254j)0EbKEHxuD$X=_S}~}DY-l?mtUz#lqb$? ze&AfEl)*spujwB*JtaMqw!x&UfmXsTS8Wqr;qi!xv0N|Z`Uy=dSG%@v?bzC<0bN`h z-AyAu76N?gIxIv5Sg5eWC&h)EHKi{J7yJ2wNB`!)dO7%LMhrxk=Ywjr*-4x{k8lqG zwK257p5x%NGBs==PG>|Os&FKCQ1BpR#6=#E7S{T@`=Cor-wEWJyH0-XpN)k~3@fv+N8%-|0lw4X)z7k6=#?rI#EFm32r?5@P9OWuT(qhT&@}#FJ zY0 zj}bQ4y?w%Eb#rR$wCot)1H&?6V+d;P6!!LybPtX7cXteR508v>pY7-xVHa`Q&w=0P zPNacD1S>rMexTYF%ea3w$ovNap~(DIj$tbr7jB`VXx=DEF7!YC#xpTGkD zQYfO{JU&y-qvJT+&LJbR@Zww`BSv2I^BkjpPr0im(l{QT8}~s!X%_~(!6z=TR3o{f3i%a0=)e4=4Zx6b{cY7tX0U(ar_@jQN*Y53=wVi@lDZmY({=pqH!)617Ei zAKb3>43`V_S;ApUwq->eNW|vIYLU_rt23)d%0MjEtPv>_F<7!@q%26uNa6CQ-~<@z zZd5u2c}vo*PGv<-Wyv!Eeo^ObLdVr#6=p^1$%~2iwfg&^Ud3PNT4%$7#hKtS_6}I< i+b8!>{)_Ryu#LROPbQ8n36$G^Hg2o@$Ny(mHU1wU)`E%v delta 2847 zcmZ`*Z){W76@T|VzvsWt|6<3n9TF!bB~Bbd5&|J(bXkH3rGxwo+slK2(~zbDk3i zD7)7C`J8+1J@4Lgf9JgWmlO9-$REnGiG!xh{Cwn-Yx27!aP5OC-2fL9ul>0uFiSY@ zCYQni8*L1F3XO0n!utF!ULmZWEDKhSVvFtvm3Mw&ciylq8rSUgIeUG!W~PD7 z%PrC)o9pTiXIK6$OcGfYhQkR}N2B2gwX=liAvShJJX&@`bClSQ&)7iU_ZBudxC%)i#BeoC@-2=mEOgt zEbLReoBe?}tjbHR%O*FQHo43%Othw+U4zU%HdV5JnvU5c9J~-Cp|zCE`phnSM0{>^ zDZ6JbV`;O8Y?$@mFxNKV1}Mga>H$=JB$iA}gf9%zU7!X%v=L1^5ta?kh7aP0ITpeNeQ1i4syn zTdG>)LpeUQ%7<3wNNbI-eo&lXAMof3ix4`#pq^Q<1`ZHX{ zpy<1~lZ`klW6YQoYl!;$l}4?6_fkHZH5RAD^PlEhsG0@*^M9A|%b1*LO1 zVu;D^I)CxRRVj8Bvrv_2G#Q(Y0wa3eJ~)tZ_fO<@^d=@~Y%&$Jv;Vriq??tOhR6Ur zTv}-zM0aljB<%ofs~lvRSjs=Ml&@JTa+Zqhj+HvkRif*GFv8K6 zvj=6%Sqn4ypxW1Y}i&&Bv34 zv_QtIVjA|{PCMB3id{bKM7ptC?mG7RvHnxvJ=EXQGcZK=vA4p_wGH3 z;tv3z1ec;b50FG!1p))*&BO7@;czNC2@l;`lU`esDvd^CXGT-1I2DVe zMho7-F*EK6m0*#XwrnmhdOCgP{z}gdD1BJg@F<`B8cH3o$>T6U1uoX@44E8d@9B22 zKi2)?Vk=mRDSauV5J>l6hF5s_ugM5tg>P)3DMEzD4@*%Kp3`(&+Q>7Oj4)R_SFaE# z-nQagZVZzG8vI4bI0l`gE`?ikK;5XmNH~Syb>QgWMw+7;LmqS%D5)K&R)evcP%Yk= zj#_Y4+f?`*_f3;9;DF4A0;CgSn&bV55Yx(B>;7Y1TF~p-Tpled&17wS7Dle>w($-nc2T)-j*|O%eJxQ`Zs#4B}n?c z8f25}4i^$1RDdhuy6l)cvEW`f_kP)8+mhpF?Muh+HsAUFs<$mC@5vs|9!KKu%}boO zf|(oIE_TA}js|VC4*qEnp&mdLAU#zvl}=1VRo&@$e1iJWrg2U`83|JwzCaIR7v?3s zilF5T(u(4~DAv+v?h{(P5vt)y27pgl_+3QEa(N5qa>E5^-R{oYw)2g74&b59nHN!! zIHx?91dVa588TOxzN756~1N1`{YW&U_AAw8LH{mh% YJ>4?2D?EYszZ@TH{ZIdoRSWe00O_Z3O8@`> diff --git a/camera.py b/camera.py index 155cc80..9c660ef 100644 --- a/camera.py +++ b/camera.py @@ -5,12 +5,12 @@ import threading class VideoCapture: def __init__(self, device_id): - cv.CAP_GSTREAMER - self.camera = cv.VideoCapture(device_id) + + self.camera = cv.VideoCapture(device_id + cv.CAP_GSTREAMER) self.camera.set(cv.CAP_PROP_FRAME_WIDTH, 1920.0) self.camera.set(cv.CAP_PROP_FRAME_HEIGHT, 1080.0) - self.queue = Queue.Queue() + self.queue = queue.Queue() read_thread = threading.Thread(target=self.reader) read_thread.daemon = True read_thread.start() @@ -18,7 +18,7 @@ class VideoCapture: # read frames as soon as they are available, keeping only most recent one def reader(self): while True: - ret, frame = self.cap.read() + ret, frame = self.camera.read() if not ret: break if not self.queue.empty(): @@ -28,8 +28,11 @@ class VideoCapture: pass self.queue.put(frame) + def set(self, a, b): + return + def read(self): - return self.queue.get() + return None, self.queue.get() class camera(): def __init__( @@ -49,11 +52,9 @@ class camera(): self.show_debug = debug self.dummy = dummy - cv.CAP_GSTREAMER - - self.camera = cv.VideoCapture(device_id) + self.camera = VideoCapture(device_id) - self.camera.set(cv.CAP_PROP_BUFFERSIZE, 1) + self.camera.set(cv.CAP_PROP_BUFFERSIZE, 38) self.camera.set(cv.CAP_PROP_FRAME_WIDTH, 1920.0) self.camera.set(cv.CAP_PROP_FRAME_HEIGHT, 1080.0) @@ -88,7 +89,7 @@ class camera(): cv.imshow("display", calibration_image) cv.waitKey(0) - capture = self.camera.read() + _, capture = self.camera.read() # detect SIFT keypoints sift = cv.SIFT_create() @@ -142,16 +143,16 @@ class camera(): for y in range(0, self.window_height, vingette_compression): for x in range(0, self.window_size, vingette_compression): - self.lookup_vingette[v, y, x] = capture[y, x, 2] - v + self.lookup_vingette[v // vingette_compression, y // vingette_compression, x // vingette_compression] = capture[y, x, 2] - v color_compression = 90 - self.lookup_color = np.array(( + self.lookup_color = np.zeros(( 180 // color_compression + 1, 255 // color_compression + 1, 255 // color_compression + 1, 3 - )) + ), dtype=np.uint8) for h in range(0, 180, color_compression): for s in range(0, 255, color_compression): @@ -203,16 +204,14 @@ class camera(): image = self.last_display else: - image = self.camera.read() + _, image = self.camera.read() self.last_capture = image if self.homography is not None: image = cv.warpPerspective(image, self.homography, self.display_size) image = cv.resize(image, (self.window_size, self.window_height)) if self.lookup_vingette is not None and self.lookup_color is not None: - for row in image: - for pixel in row: - pixel = self.lookup[pixel[0], pixel[1], pixel[2]] + pass self.last_recovered = image diff --git a/lookup_color.npy b/lookup_color.npy new file mode 100644 index 0000000000000000000000000000000000000000..7f04a4ea1808df4343b305268b50a0fb6bedc1e3 GIT binary patch literal 209 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1JQ);NLqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%oItoyvsiRPRo)CsHgCS>%)H5a83V(n g4@*}+@Lslz;mE3`8}_ecT({@vHaph-6%4om02>Q4`2YX_ literal 0 HcmV?d00001 diff --git a/lookup_vingette.npy b/lookup_vingette.npy new file mode 100644 index 0000000000000000000000000000000000000000..4f36d72508b19ee13616f658f645a930d45fbca9 GIT binary patch literal 218 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1JQ);NLqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dIts=*3Z|Mm3bhL40j}pp!5xBc6K?YGT~b)NYs&V|DoGFb$gjF~Yx%p< z-q_~jU(}Yje<)hKI(x5Yj6vY^L%$os4>^@oIdur@|5nPMH6fY5yu37vt*NcK>RnM! RZ`!Mci 2 * segment_samples: + while len(audio) > 3 * segment_samples: time.sleep(0.01) slept += 1 print(f"slept {slept} times") diff --git a/sample.jpg b/sample.jpg index b9e3d341f135101c34f2c2411a83d1220db39740..9d62489aaa72d01de5eb3c230aba186ea1447573 100644 GIT binary patch delta 20743 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 delta 17001 zcmWjJ^;;8)+Xis^h*)%^bf{U&DrUs{ z80>aD`kQYdc7+1+6F=mgzZ+Az!i`~u#}BZaPC(*_b61QfqV1Ny&n{COVXSU*8$`;O z&%Ia*dD8$Dgn;AbXyA{5m8)Y(tG(*M$ZMvqkd*J+hObjo|Av)9j3ZXy-AF@DhY0lu zMHC#?EW4+h1(bAJZDY|F!x$p-=Y&!X)|aO_wqKdvb1W8N0yJC5hv&$xwF`+!RaftD zpHV{4dN6fDxlJ+7OtA~dQ|+C0ors0?xFGpcfPp&A*(lQHD+occg;|}R`2s=3$z5!0j4jq z3mCNi>t$V4D)4FwFtje;(^vj}d#vv3SHq<2m1P%56i^3BFq}2}{N2j;`A%2!FO>N{ z5tXY@mMp_gY2ewFTWd?&2Emd038qg?_QV#J=WI;_tvRxt=tmo3&7@fs-3aUH^-R;) z>vR&A>phZry^W=@$hqp{$b1vOw}o#MMxa6%DZs6n{^oiBTA@x=&8DMzZ2xTGIt1{D7RHa_SbgE3IS3q%GU+QU<#t=D=kBm5hm}=H=lyqq zZGB44?;$}I60m*x({xwPU#<+h2Gp|=t57rd7qOyx4`rm}wIuWc+JMUq}pzqW=+K8pVheB=iCB4D2RG;k%SnKq`%C7TnRAEBAgBU2{>pqhL!SwGtD2Fe(ID zhNSgq!Da7|b&0~7_Qjj?@*I-|bLVE#Xou11)u^A%iL(BCzH04WsOKzZpmhgKAW2tp zSPv51_V|Nnt-6d6NmAdL(u`tcCR0M_BAyRJfb3b&Llp|4 zVwLM&gu{+RcsJDx+>|OE(&{A^(ttkV(9;uPV#oz6F&8Gb9w%_WDJr=NE>u&i96V_1q zd3S!8+v%|g`6Y+HdV{;Py~!#wr#&;;zy=Nn!a*_a*A95N#N-)wLT-YXw?e;`sbaqX zdfdo={hBI-#SOZJLl#|}H}##Ob+5b$fQG?Y7a%f&Y%%|$p4c|=fz@NZLA6i3nZrDx z`I28HwD5N`G3N^|d;9I;dt+V{*ksTNfzcA2iJhndp*7{4D^9_STkHjyt?l*RnT!|P z;srGvQj_ibjq&xeasyPvmKkZrdWcnJY#>u7-AF}BNQSNK%CqZMBh8KseY-q!w+oRL ziVl@$Uyi&o^{c2t~=KESgjvP;q_mmBzI}=6V>h!G3YRysZro?6`!1ZlDmEMlr z3eR`(&a`iyt3K?cO$4>-%5l~a^jIfw`$xV#7Y@S=bnz<2j-H7l2~tMyl{<)zNMep2 ztQ6#~d=t4Ta8z=QXCRz68UyrI1Ixt?%g<5AZ{?%|9w`@n=nZE)=wPr&JUb+b-3U?b41uSJ77Lb)Pd3O4 z5hl@VluyZH(Azv+iRtSehVxVD7o6;h@}(XS7EV3x&@8lqJGVw82gT`pL*&5j)1tL? zP4z34slv4%T9IZfozJVpK%f+QMDiPyPQEjF*O|oVV5p`P2{lfF-|hc6Iz8GWwiJH) zva%_L7EU#+WytOL(#)j1;!F8NSzp%zoqj|;`{&rJ!k+UBG?5cxYF6mJpjaJ6vKWHyHvYMvLs7*R<_w4y7{mrX_ptfQ#yhOfyQ z6{DuySm{kc>1mZ6M@xLlJfu{`vKC?tb0GWfiU$98LAtgs$b#I7d6-vJ&KKWVF>l6# z2Ps$8x$Kp1t_byG6nVh(Dj7T&qN3E9 zp)|)a`ln5PNfwf_9G6H<2eOJ;~6Yv2TKg!B!ns`Nzu(Z zlfz|`yMJb*18RQ-(_38xm+OC~{LHjZ*0(F`XnSSzm^A~%97xha5X|OX=vdcq01{Cw zi<7J|W>JL&IzTjNKuU+1#lCgc_N4QKRWQghzoaNW-i+-yE3*nYM>BBXt-|s!}JQ zHN~{Y+FC>N*G&oM-dm=B7xufTY|aZCrao_}oAJ98ClAi!L;VKFTEG{bzzklqlXWw> zPh8jkqCViD`8lt2p5>jK`-G!Pkv%ip74V}U7+gUf)r)WScZ4@p!uG0N3{)8}1LU^3@~70@X$pjq7@ZYU zPBx@gE!EX5RzV5fT77XvS=MFJ_qTu5a`)rVJ9jruI_yh5u94so<(tO?DUcw+)Dd>| zyaEl8E%kkB?W9c&B-H#m;WX%7|Ixr~jg z9H@$JY6eT0ek_&(Rxc{Rs}9&jXVR;u-phKVd*kz_)gP`O2H<;yR{w8Eb5Li zrw4`%=C%e_&hcRpB{13GlH>Iq1o1MHNOgg&BVli6UJk%MIkxl4SL+YwPBV?IaWB-{{kQa*8Er<4vy)XnB(1q?db1F%KYDI5p z52fC;Fh;Gk6V4zXC!&*fEMLEkHICf#bhyo7_(+~1L^h;BN|jCTzqvX&hVg&Urzggl zT|Tgdl#OU&gWnpfMmccq$#vCHI%R|YSCGpL);`qSTexSndU z3*PX|qS#~%OF7s|13SCRzn=;rtnd@EQ zHld)RzDI{G+85qoK@g|q*{}k>NU?m*Hq&}uiiqw!H)fNa_z2*yhO}(CY9RAe?*x*I zEMbdjm|>pR1@vv2h)=Bsi@X`7^?Ih6aEPS}jC8vs2|8YPzfs++;-S&ws}6SlgU_22 zU2tw#ZO!RKDfsZwP4#v1RV`8ltS!IC+|MDpSSA<89uh`+!4o3AI@Bg{!Wu5!iQ(?6$rQ=Gy$)Glc;=ge%X zNFMe$b1r*Gx|B{&MRbI|F7-)Tqu>6KAdwc;DdU0y^P#miSKL}h+ls}pBx;^eGgmB! zy|76|>QI8L<^!(RhIUS+`y;+fh`$pFhujST21#O)u}tnxa$ijheQSgtT}fZQZbG9y zAo8ma!1cPGJ>;(EArexZON}Z8@NhccpvFdt=$6+WwZTVXc3jC~3kdEC@SG{>3{JI0 zM53xJ_E%h)&2w)uXp}wkmphdXhb!0_%JuYAFUTm>N&jE)+K!EsBR(>~@{4%#@jnwZ zxKnfj5i+OmzW6N?m$Z6wS>&pR-PgfsiZH#z6J*mf8OCQ`ulL`DK`To{h)?B*2-S)Y zAI@x{vIjgC5vDT8`yC}e-8XV$4>4JT#i-H-gDR+k?3c~pTBpGRsU~(M)r!>p!6J$o z&+j3?e-}jgKMrTtL>;0fdtV$gma?T`7UtQ%YiP&*`-JlGDW@Pb)V-W(Y=;BaFw^j* z#i1FkS()E~C4e%u1RR{Z5~dpvKcQhf{@F->(NpWvN5#=)swSV%Grnuow-+*XQNuPu zP)`&HF>C7M|YN>qnQHTRP)egRB5(_X@l7?!t|%yx7`UZ=3buCdU#r$GZDmO^XZKi?GZE$K7IcloH4|3ZBbG zx3$Y13keZ*a_%URHL0{zjkCp@p)i?MyEL^qJ*b|2jv=<3L$Wu#Jh};VoM8!O$7xo# zLX7}gVTE)~>~uTFsV%!-hc@63=KIWZd%SD_Tz9%APo$@{nMCR94-nlGa_sBPZNn(f zS@D-wWHjbBZ%2mJyM8v>|5;d5<0Klm$(cPt>knhQ3>C{uj$CMR9BV-VFUQG9d4}i6 zR-K^HxIBpK^bfoYRDOkI{t1`3>5M9f>KFu{Ns>YEg1nC3qt9E<>BqS#&vUz5)$Kz9BI1jco4^D3 zS3+_kNkQ$4-!6`yT#dQ+0o)UhcXRm=dC>iDQ1FaaSQ8Y$`)!oN+Lr9L6Op~b`PG)N zeM#0LBakLLwbD^+NnF}=_#e+WwEz8LTQI&P*EIo{KzKw*qEXqVB2T%I6d+GXSEIwX zB0%4n?c}0-Ko}o>{s<)Y32-B!&n1XbeF7_`oF!ZDz z^#{Mnsq^RSDyuwdy-1C5JI}K2uY-h2OzJaB)A>9zy38VI&uqW$IiRV*WeN7%t_VAN z2=zuO&K`bb=Y5$W(r#*=^7^KOe6n)$CT}LWobzC0)9u#Pj|pLXC5gQLcvR)MH?a%I zd0ixX)7nS0MR!X0(ZK7n$=&EqfSj=Nl1AGp?xC)_*96;O4ry(1j$AA}6a5Gk{*qNAX-X(r1}XQXY14rz*lI-J!z8PFyXTv9 z0x@xb_b4*a*2PE_8m;adFav?sRi1^8d$ka{oJ6l_L)VK{i?8{_8XV_@gzpbW1x!U7 zn&)*1EkC>mWBr8rZcTHA^t9qlgQQVLBEyJi!|d^8+9r>P6p~kup78sSd!Qy5yFTlB z&GMQ7^xM`vvfe**&cULaRCMM-I6xCwRSC{Ej~4hM3PMz@YszVIXwqty54TxMw^{RRZUnSmp^C0Kw}s-k&i9d-t2qe>KSoCj(DlDQS@pW6 z8YyWF`CQ5HJq!$1SPj>%;-*Rcz^?MSs#y$+)#FC74c{sblT!nC?ZAOSB()kd`7v!b z#3`r+DiM%`{_?Z?_7S+Np#ON*nkhg?ZRX&8B`C8Cr7VKr5q+>K%q99Js?2YQzZ}BckcCAJFn?P172dNEir6FjKo}aCnS-Qgb~wU^8_oFGvaWgi^_2j=hOZ8=&-}^F z*%1^}pS8ePT3*!6@Dw)l$W;Gbh4&pXIT9$3whSDW{8sGQe8yt8y}i)xR-J-O0`1KjqK?wO6*P8#;=u~V6Ia{i0;%=6_KYa}@oW{k=s zPC`j?Zk^huZf6IGGb#=0{BVUPrCt5UD0s+4zr95+V4r90Z;rH<K8iextI&uo*20&m9DxbAB*!cfqf0!Gk^2)*olQBSM}; zIQ5VaTfH)c#p7UV1jv~bZ5JdEwr7F=Z4U4{qN=kPs;mONok={+6%}ubv(Y8yZi|@b{-;@9;ob9%VJ%DPjqOFen_xAqv>0ZbrTIP_${!ol99jM;B$dQJHUxWb8NKDj6A{%I+M=thyw z$I5->BY|F5&9xXZ>{~rlea+k%L%sesWQ5;G~$y$sA@v^->5*t7# zc%?Ok^38uH7*u_A8fHh$&1UppIWTe7Sz&(GabMlEMMT0^xy~P>BtL;$V%=0D(Im9c zi-ZyOH^?yEpLHP6>BWoUFg0S zQ|6|St589MDGeOwhmu%7Mtf3rOPvP;vzMKiubmQeDIzFtJ@=u&GbfVTB5s5Vou%<3 zf|)zDW$sDu(jCT>wIQRNhSZ6}FBzA_t<*7}IcM|P%*s&?S<*YcdijU6q804Qk5mr{ z0i=7DkR;i@*GDT%h^MpNg*<+eiS3c_;{I&1g>yw{y5rc&eudOWmP2Mz_tCC1n`9a! zR@Br9CES(*OkP~O{)zVjniN%yrlWI>MKrBw$*TA6e$RkKj6__eHv_0?Z#0?=1X??x zzX=%b)%HGSdkiyV-Yz3odJvxQk5KevU&|uo*UB1Prl!IH)!yYI8j$UzM(gVVi)!a# zw2dOYF0wN5d{U}Tqjd{^+6Y%W+F}(YX?dgY0bzPXzbbENl``Zjq8S}tXMc^lvcCO2 zan!c$tD2TR+2eoXo<2?!;Ec6>n{VbXtr+G~0GuzF>N9{ z*N@38#a_+rL`NFk?s-jZ^I-4?(M_`#l%VX|5VIT=i5TAQWt(h;yhWRo)T!VaOR7~I zPS3OAysjPM&*4{riJn^6l(Yq<_C9Zv8n+tIlw3M^QC0D4hI~kN(cA1pY2({)9zInD z5`}zH$IZX}2U?=S;rPYlLzCIY+B>GIsPf2h%DVN8f2i+_fWo;NW0ygLAlKfd zX}{*7N|vVrW@bE%Wz~8Q4nh%rhgUm|_+#QQFix#-oUd$y7q1KbUy90n?@h5nUYDse zQM-;ws);9huki`x`U)z2sCk1Erj`c;zZh#wB1hNWl3bnA^3^ZqU_?AyCn}k`;BR!>4@e!F0LDwYS|mbf2F{2i_wOWq4-7pOW$Gx|d?a}OE=>;a7 z;`QnBG^R=}rJ+P-70QDPRu`{1J`a0lG}Ta8qOw+Sl8H7A8InFKC@cpKHaN`<8v~&nQYNxnzm}xa}69DQUsfz*1clZjrO+JjHvYj0gF2lVX=~; z^MQui2)gg$>vS?_l?b=>)EcnAGqTy|$>3akn#HjOKaM z4DjKw7T1+kka)GLsI&eWbGP^0k41aFg85%u7Hyof(!jl8c0qT-{N-WM@f_*xZ{fiy z>`{TJ1}}>L+vzX?z+Z}Se&ik_jRs{O=~0iYfZl$RfyL^qU35OLVm#9py;S=#U+uW? z+zZ~?TFT>k3|=IK?oR2s}6M+kL->y{I)g1-`u1?gr+%alCtc zi~sSnw8!mF-kPdN@&0qsgqSUi?*7yAu8yKS`w;g*KChwgx9o)DX<)xUW`W?nh{FVE zsastVP2KcCM>kh*-IorRZL|+Pb3`@D$%l@(+|b>Um18;NF>23PNsh=8E^2JgFiBNu ziosnU8RRt%vDhEVRn7Zp>XrOhqCj^o2rzT7U_v*}wKKT-=oxw-DIH_UkSKgdDkuo8 zp)jDqRrKxx7`4X5loYdRYDD5_G%~54%4Bqt{<`qeo1d#y)a{i`HwKj@pzzR;Ab!P< z{(59TusBO6*MP|$Lnvd2L!U|68Jz;V{dIh;++CIX#{qr=>?!{S2Kosk)z&8HQ@3c?j_GA=V?T)A22U;Oey9WoWE z1UT2_e0UcY5L9gp54kykYA1Ge*`wra_(UZ_guOK$QuwR5I{b(ad; zPwi$g4xPX3>p#+xWv6T=7xyTpg8@~_S+K`cwQzWpQTneQ%KCtyc-qq;bNeavB>Ux; zX(FN9hnhC+qF2iRpdfCN)yI>-7Uvl+iku&t!?aKwQkWK1qson17!td>^62FURzGoi z5v2HukMi))i}q#9+b(UBB1E;OjT0d3=JDM zjaEMdrV01-shzc{4#t5GpxTNa5F6%z*M9YxGd}}ln#1|Ex@$%MLcQwa_qub`HeVu}D zH#U0iB@AsUJg`c>zB=inNPVRKencmuDx1k(D34*7@yZ9~_s%bb>o;EOZ<4@JYZPZe z_52*)$jE7Vj%9Jc5AGQ^A-W+;oL3me<@F%Y>eJzL(9WmH+Fx|LueaAV*o@2#Z;^Ux?m~xuItU?rp|Usi4}%o5?@zJkI3K) zC4U=X??HK9Uwaq)9kKeABiX@;V>eN(H5)Hj5}cyDAay@4j&Z0I$#49oR|IJvL4MEb z>i*$!j{6^a1K!sIvqf$uwyA@V$N8g`5@!Z=h@pvYM=oV!;SxpT8|=!;V{Co`x@*lP zfCHmp^mgc1k9?=9L4r|qn>E+XUxs-SPgBV^Q&BEXBH8ZAifa{brwi!x2+LvGaESUY z@dv2c+%PXkxVq*DA0<%^d>9UPYb0dF>>44}7@440JE59ys+6!27AUoT9IrK84S~3* z;ja=vZ-kzCw&j&$b=tFlw}!S5I9?4h7Nd)iz|$b#k6rl@>Nc&JWEZ%}WLF;lcpplt zaZhlQN6;P+a_?(teE0)=ofJKF^epo8txXDyrmXhcwdp1olZp)#6A*R=EbWLoi+q_b z>NT|>Y_QIrrk}Jwfk4a)A{+p>cp^oLX;3Uy zOgCm)pFMRg+S9Uifa}IKu&f zSLHq=WIDeqYS?XmrdGGsIKA}4<$d3f#*=Yd+$GDLN%l`jSPjn(w(apiH%6&n{5owE_sb(E5J{g*82 zqIvj)=of>kG0{q?9SNuCM(asGRkW~F=;=D7v!2Jj4MP_^g!36I0l5qBN3KQXq&vq; zuo{Qkc(ynh^F{n+nI)h>DMH%Eq_5Z` z&ao*N#{gPKb8K$i@v`o)N5!2uSXf(IXsK45SLu{;0ZA~ZMa9l%8=j~Lrm1ABKvOf? z+PAf=8nb&xJ4RB$ZASfbRTA981_h9n2OlI7w|BZ8)j-9Du;JOn?BA;0o%6MyHe{{m z7Dm7KU5vUJ%;e>}V>Cm&_}UmjKRPiATVmbP`dgN6u2#c$7|$fJDG@xKcLi+j8IGC))BF16-H>IyA= z9ywsnLGB&%dG^%Y-|5ZeDzQPv%W?>G|MQwc?9R6Tvp}!2KuDwqrvGL^%E2mt;DG9*!o&D%QnRqz+nbtXQ1pc5NlLa=G$jQwUevw-ESKhfJrwEdS}0$b zg>+LPrcQZcTGk6E5l0qw63;O;W+iuOe(6*D->VDiPW}nvEQqOzY<%qE%Gh9J+O)J0 zA@dN1+Pv5QPAXoR&XFb8t00(81C?J$Mn?4=Mn8_?X+_n`%PhUS_UbXbS-80w?yTDG z=_YrpH*10u;HJe4hmvG1WfL2^4+P6m%i300X`wkAWO zh!Et{lHkNNuLQ@{MS(&5YDBJkOYjzo&qM^GB~Du5`I!{D6WpgMzbl`AH%GBFcToZ> zS}JTjCmU;?h!p|7rI)?`T@_J7aYLd!dZv*0M&4J*lV~7MrV;!QKV$!Z(PwW;hPaYsaQE8fUkhK=b41m*yCK0cyC_ZJ~u=2C6b zD^O3FE2+gj!>8v$8Plfoo>LUcZ%tQgPzQgt7B_NS#?>6(88y?~ z(QN7lIL$Y$kr=sNn-A`NRp-&u*1Z3>B><^b8aT`OJai`H!=+QDb5w(dy;_=@$qc7y z2!VA&%VdiooBH2{E5H1HCE7L3{sj7*sk!OVR=(9eP;Hk#blIk}10_>NslxW|hXb8N zS={!27y6uM0SMkDgEnZTIcApCMEb%@WsZ@wGbBw7JR4Y zsF{(bx^eEWZ1MNM3-TwuUEeB-yBhNqvLnn?PW`)SzC*25uUgH|Z;Z#7TN7fV5b~FA z<#puGP#+!7Hm}tsWw57ZSL$za#3`Gcl{v0ybj;-W$G>uWB9EeS;|^urvsBbsn2{98 z&)FY$jKGidjFr*{GwH~RrrO9HyBQUk7`6emn#fG_9(|}(^fh227T>1w!ZFLDdX!w! z5q22+K(2EHuZ^~`YJX$ibarc~J3v_aeZ6Rn-1|1)e|4@`d4*eDG4QJOXF5)b9$Qv5 z>!>cnbZ?hYI#F5v)EK@+-|l%cQ@lW}e2=`Hmw;yGbZ0Pa_>8RX56Xld;#9A+gR{WD z-1>X&l?-Ur{~%FK<5Y4Acug}z|NS%}9q)T`-6KIWm`wkJum02OWyfT8@8b8v`r-_( zR3)kz} z7$GdFS6Pio=k6bwSpBS8o+Oe%?#WBZVRyK`BGCa}EIm{8-|{Kf>q$eNj{XuE;R%aD zXS4DLht{vE0f(!}CN;bnsrmWeC!@q7`0(&Bc4`3DNc0CxeGSJ9s$Hm;BoZ;dkY0D5 zQx9!WVf?$rR7o?nP`@90cienu{B=ANY-A(2PG*?2Qwmyi3?YU?YIe8%AKVwS7JsAh zdE}u%RkR2sX=f#X4cdWj$n$&gnVn)ba{}thj6tXBB&Lb_=B9fVs9S$b>hGBGVl*ih z?C{3)@!8wRr;(ZsdhXG*A$iAGK_}A&iA*unVz$7btMCwF@sbPIcF-?Uzu+C4tMAa; zJ7Ik4u`A!GCZCx(o{FGTBbY>-6=hh8O_{t7|J2r7*!s3jc6riwiIkQX+qMLI46wSQ z;q2Q#VL>i_D2MT{H9gcEU?=JhUC0?-d%RG`eC#O(>FhZbq z*YhRXTVpiJWpOJ^SKhD}8?MsB(kvATO{XDMRd?=Cb<=99ouc(8OFb%S3k7Je^u2_` zC|@+SE^*|g|Fc$PG|7{N3>KH9)Rt(rcThr?I1NQxdWg@e^*j91TOP}d(kwB;dQb0u zlKb6h}EssmVUu z7YENce!coM^P`lKGjxyLQf@hP=Y^ngOs#JaeoJ2s*qa~WMe1%n z%=D`;lEpxb#Pgu*I{U7&>#^_tyAbzMR;5$McU19X)dJJA*XF_l+m)9F%9(T z71HBd?~`rIIn#Lehr*ri6dKBH;XCiGwZKaJ3xAU-W?Xh&d*u|Ejs1o55%*wS26>D= z+JT>MiwZW38V8kv6|2BKM3M3}Q#|1XE zs^G(2O;%Xy>bD)^2d=#y6B(hXC-PMxNnW=j>7Dw% z+s>!%xWmmOliQMo{XvoXSD-?j3+p#=e_9-4`ySpi2tk&@!donbikFOftYv37m0je@ zWf^n!K4%X;_&!VHNRE6JH~#%)z|(!bqLq}Q$E}~$s7Drr0|8tEK6fo;bV_`R@L5>~ zm2qi~`xdGzU4C(5VDsggmwS(0SXepu7q(tOII=#pB8`t3o=aJ%=z)m6YrBGIHsu0g zpd#%uck{I?sb$_w2|Qm09k3ehno@Izq>+7n8SEy89%%i1&H|{491gaM^wFIV^`%YY42YNa={v*sK{vRTIgPl)1W}hLQZ^vBQn)o@peY~ zX_~2L2rm@u*=}R>5ORXDiH`_cb^6Hot8Aagw=Cs^}pV z;AoiO``mm{!TCUtbOqd-Ae_w%G!ijsW#U!O{G4{FM*5S%&JoVh(}$TTL$TYPS>D}3 zu{ktRgxjVNt<28^vHT901((h2IKB!gFOG`8P7Ykc#-!ksc228i{$dgJt2bK0M6<9K z(C^sHB28kw04h;pm#{W(Ha?;4qhSv#QKm;wkD`+r7wdl>V*;>LP=Hggp51^WG-$Kf z0$si6rnU4v(>OevT-xBCroku#kWm9h(#BV^*GvYVWR!mWP@)w1$Feb!1fEspE|2=& zWhy(uAO69qQi)|Vm8G1DWYMnCi8dS3bMt@u>ul-F0D zICoY&J4sL=S5!TxsV$)H3bpS?Kkva;br+3$Lw^04$zxS%mmhUDl?;>PZ@PpU1zWZ* zyj`|eny~LyfN#(4uT*q6X<;I=?9u8sl!5Z_hrT#pl|o=G%%-vxi!pEROm&|f3n z=ki5IhTr>Qjb+KW4Ob#*5EAtA6j9eLAYHZlkO+@%l-~ ziyhKy>{>f_nrRU0h1dW zjpwD>hAcHQL9+)bfh8iOjy?@DJ~b6e1y=BD)qDUQhqk*mn`3^f?6H@GwZO*k<650Y zE}yAp#T$61UiyTbYXfDC9;0QtSaEhIv1uW)yzh577N=V@g*wsl2T6lj z`E|XX*&Ff@lufZyz?Fk|7kQc+p&!#fs;rp9+zR=uRAcB9R!d36TbS7cp)E@^;z_vc zW+oU1obm^Okh8&si)9qz%r9)isZED@{tJrY^AByEV*sT$65l$t;lOZRGkE0vbb!K( zF-63AcwWw#m)==UlXPX~&#-Wv_M4g~NCq!_k7=sWZZAX-bJR4iVz*AFR^~+7q+#^5RC-{y!vr&<1pg~9(ooP0TrtN+n%WF zYi>WNIhDq}M3-h*JuXzSXfnO|B3ff0(-{T%^&&=k&pQ8#i!j1YPQLN26RTI!YImxO zBGoI_T6W-JuKv)7YRB&FFS9Ps0;<7(^n0gvwpp3mb@21k1SgP8#1YR7qU?#dc(TF0 z-|0eWGs~51r$9kL3Xzv36W9je-3raJ+aPtqs1>^fa2n{1?3V$HG``}jQ=~0l4hku0 zL(hLD`HpLxSn7WUY!g|DiW!`QP7+EOj1~6yGYV044sWelmhX2+HLrlR8dko86 zF(9>f?|SNqEB`CEgWE;RD3(b4fYOGz!VOwM!P&otvuuk?OF-4tc*EOGb92CGmhkk6 zfh|Tw#^pX}CK$$>m{=^yhy@y;%v*CIREv5QV$fG<>}%m6P7rZM4-$vA_9`3sXx+S&i(!*wm7|V^9-CpFOnRRH=T;}o;K5n;OWDOE_0w{sPYK$S^!vu z4pQ#=t_6D#66eBwq~7q~g~a-woe2NQPc0ou?uUEy0=G$#WJ;f->)jEZ5?^%T$D1Z6 zEL?VJTiIEN1e$CAH_n&KbJR)e1Q8Jfyf4dpYKQJu!f4$)YP!Ryue|K8s(Ehn7k{g!3JeE9jE0`2HCX2$c$}0o3}N;y^kCTQASm zQA(E2$c=Y}rIJ8t#Fv2@4IP(;&EF;4pXEF8OS;?rXYx$$y_X{8J^p??xczoSht*rE ze{rZ~m?49FgE=FqMUSsrb*Fq(6BLAGt92y4A{6;p-HtE~LyFDh1;~sDovxX>YkMXo zr8!H5xz|26LIt?A9k5F^CPcnIlE-xO)-Q&2#_{$1$>{B?UmB3oudoe0@kMR?H2?1c z@WtNW?z58H2|e*BWO*dR?Iv{gmO%V;cPba>I^%XaTugY_udvpbcX!-u=wA#+5PeH` zsCC)ppCK*uz?)iE-@i&zyL;LC7)vB9r!hbqJG71-Mm@DW;Qv{c>}0$LwO*esZVi*! z8qH=F5G@HCvnXsmv;B4w2i|Ya8#h?XLkF%=XTOwP1!Y*b<`LzUb6CxfDAz19S|_6J0prIMlE+=Ousr!hbKly~r*p*>E#0xF*xx zOFd%yJ9+Q4ckX=8#kF(ud2*3@eE%R0Y8`PzQf;Ko*#B@zcrn%yMy#*#ZE`zpP)&)^ zRh4V$$isS1UrMdvo~Ii+a8up&6>V8cS4?((^xlSd#AC4?W7i6CqEVh9FW)Xcxx4#M zFcOtMK)-F9#UtQb)*Wqo|6nebm^^dX>T37j1HFn*UE0&3ky1)PYF?JFz0^RO8ROUL7m3 z$x*1=VhiG8H)=$lH1Xd*4M)P*Muy&(Uql5BvO6S7jd|%&{vKMo_V%YNO_Mg~H=}sG zw89>MS@MBe8Q^1vH3>%`A=I=!UxRUJRmI9h`&6HXz`lIXp%_&U-{8r}pS2Ks<)L{E z@bTpF#lQ=fD}Hq^FA7ptL4+29;-E*33-ma{Kt}i@jEe13(fH@;jiL5`8b_bEu%fJ8 za^uQ>YX4sVQ39_0b>?3sC#R;bPdD7~x#swGobRu-!)w=GR`v6GzVB9N_<9K2KpLxp z)6Ze6tgg&RV31kP20CNRnp})>vbr3r6|65FYFE~_x~GdR?wxOuE}ditlP7^LwUkL7 z=T);ZG;xTwnY75=ifjYRAcfdh1}`o#9>E%ID6ZVmzwKPX{{SsIQeIM>YLS~=oRngu zf7Y@|Cv=hH(v-il@NW9bgxm9Qg(VjIxT(!X`zgxS=68d`nw9R0rFdV)x@6u~r>JraZ}dv#Ot#|umZo>G8;xe6<^({AOK@58&8&DsNx0W8B}?s7!ctw&G@I@vlU14IzmU$^ zmwc@n{QI{c+^A491N1NK`>N`9ns@etY7@mIJ|lxmh+0ZuM6?>8hp$o~k?l|tSmJq| z4l^H^%7s+zqKex%p+b)p&XqW*#+^)WDoG_COg;ut