From 9c22251722e7898f0bee59151efd0d003f8e6464 Mon Sep 17 00:00:00 2001 From: Zachary Vance Date: Mon, 23 Feb 2026 14:35:38 -0500 Subject: [PATCH] qr-backup restore --- images/qrrestore-deskew.png | Bin 0 -> 50772 bytes images/qrrestore-finder-skewed.png | Bin 0 -> 50120 bytes images/qrrestore-finder.png | Bin 0 -> 2970 bytes images/qrrestore-minified.png | Bin 0 -> 11915 bytes images/qrrestore-size.png | Bin 0 -> 2336 bytes posts/qr-backup-restore.md | 104 +++++++++++++++++++++++++++++ posts/rickroll.md | 4 +- 7 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 images/qrrestore-deskew.png create mode 100644 images/qrrestore-finder-skewed.png create mode 100644 images/qrrestore-finder.png create mode 100644 images/qrrestore-minified.png create mode 100644 images/qrrestore-size.png create mode 100644 posts/qr-backup-restore.md diff --git a/images/qrrestore-deskew.png b/images/qrrestore-deskew.png new file mode 100644 index 0000000000000000000000000000000000000000..135558e8f76f38fa3c67b71ba579546c7df7fbc4 GIT binary patch literal 50772 zcmeFZX*8DY8#ijol;KW7<|#=+W-{K!WXeo3C1lP#%N#_u3!!hkdPQ{nzvN=f)Kcrr$laV1Y!rma1Uo~8^edX&@>GG#ar)s!=uXb4C zoKpAqNlO(UOa8CTO_9O<5Xs&S@qI(S+YF~J+L&?=aikF!{}@Og_|Uvy#1DjjsyC#r zg#Y)ir9=^m|NY9Rr|PoI7yp^@P7pKMe}C-Rb@JH%ex}%-_EPqLd=#!6EBa#?@q2mM znXg>@@z?L9|F=GJbiwDKiGczi2P=Rvpr2n_S?=?;Ae$BdX;O$m( z-h_77{V{jRtyY$<^2c~x3KCmaJUX;Ec6~+~e-8`{;7J}x7Y^P|Xs@cQl-LL$WhD!r zANev+v1iO1$QXtRPl@WemC&A)lq7jFMe0y@y651xozzt>(uJLR@Z%-I z-i-0jQ)kC#@;^-QKlFLz@?`USd5xWo%>#DwvnI(C8MZimLqngTcB4HXnh-|(;@j}5 zTce_tvMRTK-&?QVRz{UJ2qy zwaa3!!}*@WBTkCUo`W1UU$|>Mp1XISuh;BX8ggZ6hzJWGq?7u#uJ1SHRIS%OVnkFJ z7G$S*Ew#q7IH7#3tQH#Z7|hq|GBJZ+qkk+==o!^!u92gq5JP`Db5l~ElY)S$+3bq# zaZ=qOjovdJs>xPM$zy%tH%eJJT_O70Mb*_rc)Y;@Atfdy?XwANm^?qNJ1@`AS7D2Db$37CWH^5= zk?OFh`S*E4wAynIZcm}EgF*k(LB}cd(`sg`-irTKR8({`)yHXn{krt)ra&ZO=I6A# z-@N;z@e8FaEQK}HJiV|6J2`vA@ZY~yHa0c~^BMX1cM$m9Nj`IYsR7fOnVB6={pwOP zzQo60+py)u)}h4%ba(}kt3;-ccOQ4l96d9`rcYvjEjp40=ZVRKmORDwW~$)?0Lmf zPIijfV+0ZIV=mpMJF3Z|+ME>bhqqQLOj@#qR}!kH`TSO%Fa!m;RV5pl@FqH;M!6>V zV0+?tF<+UH&sJv_gY7MOx~N9LL?46qb|Oq-CtaQWlNJYq-@%lR#QApWxnXX9C^B90 zFi!H>I1>WjXWe_Eebxyc9lbyCKTN~=j*gGR!BP|3lr7RT)Ym`!rCZxOG}Knjlhirx zcf4ApxAJJ>=$#bf7oFVHlbM@Sf1+_e^)2pK&x`MRjhPjlY=lX6Sd{qHop+tBbk+Nz z3`x#^o-U@I-O5vAi*uZD_uqG)dTCS`#&W)XekwU2y)tcbJjW9IMM}7R%+(hZ~)Hb(aZB)i{nP{$?x?O z65lrO@ojn}+*RS=vSYB@bKk`W#@4mXbtmn0^+RgDOPZS=)l-}v%mhp{G&GJgS=_$2 zn10v_uJ^t`AF*#ux^+j|DL3r~ggU#AJ~!OQEwVtiPRB^9KKw&jyKxEmQkMCCmPVD2 z+)4H99fyF^?L(jKA?q?i0rve-XHs8B6O$JRr++^Pj_}X3>+AlOQ9 zbHh^vzt-Z2SIwqz^MLm|TD=O}ZKSVH2LBLUS0bBv1qJu!{m*95F%P-^)^oqlL^Je}}47!DQ9JrQ2q5SsD$L#LuGZ z2L>oUkA5g9wkcXYVdE_OJU)9G=%&CBw@x+1ZKiaLuam{LT zdoqX=Y1bJo_3%>M+^7QbrF=U;W8M*GaU$xVKOy4+N_fJLi4h-O?k3UG@>ao0e^CrRc z(0&`#ufN=f9AYeRnDNjZl{(Gcz;U61zF1K9ks0qcaMU zM?G*32U1U0EMpZv>E!l2Y*or?G~C1U-@t>tAAm>i0rjLc{@bEGQN?uhy;6faOfzcd zJ8I{!;5QT6?{IVb?_@IgE~JOOKknzk(woyBDh#&e(c6evU$tn3J3PQU1W3|6QZ=qrpC#g@~xEtgJb@ zTIkmT#`YycX|1>?p4Mg5{Dh2T;i{<;HQv~@hn)^iuBquF&U4C5Se3^e`Q_ukc1c-E z=6@$moLC$kKn>k|XVeqj(b+j<`#qHI>>u|T)^B@z`#_7Q=-oR&A(@xj7=8J_o4O~# z@>maB`<}}OHeIGGfsDGuI{;uB16!t1&?b+^_a$OlSmKpb*!ni7Th5mX&z9Pa&$hVS zJx-U6&&Oa%3#!(fs>XOyj-woWrs1&L^HVPhh$gSWaq^d!m;a=(xUsQ8>bDU@S+gKl zB{X@*!Lz-~|7;sNcAp6kJ9$J;PtP&*LO8;A`d-2N^*d}groVnYwtd#y`uDV`QqkZ4JnKQi`1#qsySsb4d2w`f^nTs>X(@N#l;cNn@4ZzA|Ef-lI7Qav`RA&Q(u`8_$dxoQ<_Xi`j+NL zzKVyPZU;%GhT;8hJj2$vFa6fLUZ?Wy^K$4_n8C%&Eg`)etB7OVt)bx?j2m zU(mhR^T59Fh+bCj?(Q1o|E%MUSIW}JnVo%lpu?45!%rQ8OxMUU-fUr@43|Zwt8*o|ySTi1^@>*9tF*3e!mP-u%pkMJiZ?MB$y8#Vt&=M)&$gN^ ztAA0vTA7M&#|N#vfhQ&>JoP&-JRL4f7IC&nV15&-y)Cdl=~jh@ho>MfUu{&_Z!M72 zX=i6g5+;+b&QB$Cd@C_2vse}poT_skU(w?iV`#HJ|Lt7cq5rJOPjYbhxNe~0!#bXL zEFQtj*2BX?N8#$Qb{dIR+%RSz>4$%QUR-K^TUYfg_^AO#h|$N4tbQM|Rn0ERMPHW< z<2yP{{g1fVZ(mf`AwF1}l;-AUb@tM8U#qe~^~^iugp20`%e%77&*y-2SpKfZ%FvW%$Y@q7Tva6SK;D`TK=kW{XEk;ZM3c?UrmfWJ1$H;r+ z>5kd@n(!02-NQpqJ?>b=Je}NTv%6G8UNyDZ*_KvTRwgF(i!NWaIKpL_dw$Ov^ z?RygzcD?d-a@E=SsXOcI>lYT#+o^Byj}<>hJfW(3 zjNX#t`+PHzg*%hQKEq2x85<^H@3RxnL}j*wcGzG#xvR^|G}o^$uCA7itcoW8Hs{sP z*8zT8E%x6L83dJqlxX8`enCM&e*PwB$;hffzF=J2j1$U`tEJ?Pj^AZ66VE&7&4^26yuRfY&I)$ z5$!CK&(U&oaZzM_Gu;xyAnEr}qW0T2o_qJIN=r-2%HkDSzkmNeFgRHL{X1a@vdqA4 zgYC`j@EB#e3N`(p$**fheDB_a&DVNk0&F0 z{I9dKGwcb9i z44H1l|3N7W9^hR<0#rhH3?NJrsa>;9hd#9i`Mt{_NG2;Kwqt+!k|EBxwt`tB?EfA@ z0IDYu;~7>!eQz%r6OMskujSOE0IBYgk#_1U_V1mEpZ+OL?KS6xWjL~xNCiGRWGk4| zi5t`a=rbhbQr!e8D*mF#++8R6@CIdL`R!#|EF?cz(Qjai4lc0EiW(UU1pDf zQha)PN*xty81Cx~d|HLln;akKrs~H@p=0%&eruDPE)A?-o}!DujOQh}8R<7|=49bGrb&S+ z58ui%FD@=ZeTS9Fx#IpwU$gg@8Y4mx+HkdHS0>y1_Z%^PhPDx3b zbI`rtH$GnLKmF*^$3j@OzSOgw%ovHIHwo3|w&<&4)$Ku6Z>|IB#c9WY!h!MCI->bs zVpe&~EBP%!|-0*NsQ;x#4EzxvAEQ>Cp^f5Q%+K}nrP^iQBLZ4Y6 zXOoqYZRUYgN7{Rb0WX!aG$fCQx>7v;g#%zu*m+48)^t}w!tdXY@YvYcloa}sp;u=Y z>xr_4O^+e9@MC&&Xh^?TOIxM@zY2aKvKd+7N@ZBq6)ZV$S%2Pm*+q1i??an8y~iYG zid|S(*i+u2aphr2L_(NbJXGG)uB%97dUwcW%ClYLa}aInmLIPlp(U_{RS7I*vh?N9fA_Dt;U@1qIOCH{`$YnAUqNsQJNXf_Qmf4!Zos-~v4z2bOs@H|Tc zWr@8<)H>lIMsn>z=W`#$*_EXwtV^ga?;d?joNZ3@CkIo)ro>>6fdc}qa)gNLrMtVE zTZC+eQWh*1^>0F)Kt zQ|$xVMxFORY2+B>vr$AYQrmekL}bi3c`7L2G2slXbXL!m|H>Pa{;#DHqhDct5LIMz zL^JasHOdewpPrgF$F&@-BjfX3V-T2*X-O1-!a%*RuYb`#+q>ujxW>B7nxFb}YOztF zZf-xWG>ReoDq#pUazmLt!c0(d0-HFwf6;r@N~B{q{ZU29yPDhaN@WH$c)1H-lNnAX z@p81RVHeFh-HKO&f*se!N_Jo7p;)zZMh5|R=VnRK1xX>3`7p)7CSOmf0Jp5H!1GkY=jHA4r7LZiY#>oVx!%e#BK zyJh9&Hf07-I(n@BSPS%Z5`1_=`@w+kz7G^|-)aUL9)}&6O3dgC&kjviyG{KH=b9F_H*+(}2b3y_17+hXm zS+T{R9=JazrQyHv#W6q%gX8)I@OAPHVs@(Q9?$FV*G7m>lH1l#Z#DO*u+!GnS8t^Yily3;zYd_|5b;o!rN@ zK8c30uR1gxq1<#>@vr$c;R*^0f-Iccb1w+LZ_!05tGJ}Z*#v#nue$O1`gOE#AD#>k zQ_H@id3)DqY-s3Nk)DZFH+{#W$B$K5$*=-2a1Rkk_6QDgLLN-~0cg@$8ej-qBfNBQ ztH!7hw)OHZZ0kiAK+!^4g_)^n)P<@A9Lodm!9z?{*lZ{m5!S>MuauN){i3r|u&7(0kMj~%bZN+aL z9IZ+Q?psXeo}MW1RYH&!zn=yLQt}YKnAFPB2*{aTbn$xjjNn~(vssPNx}z{0^oxDH zw6a2b{rYu!`p_5m(2dDZDDCAaciM@Cr6mB3sV_==)KMg1L5{lptYidKUph6J$B1IO znTUL0+aKJVg*)tJE^PP?>>^fiFQ=D+f}%B^vYEE`udSd9Z=gCa6DxI;s;VlwN$jFM zAvh9HngQorAgU)te}N76BXJr&&MWcmc83XlXR?jmL| z0_yAqIn&7n++R~u0|tz^(~P37E@iG-rKwEupsX62dy3e?%3Q8g=-AnD5ls&DsIH3XdK@C6kgXnO2kmHDP`I<|_>QrW;qUUY(S;i%uC_c8zJlF6%nk zpY0Xh^%AFu6maiA0M7Y?w zH{a9_!WMPux2K2=ejN~id8W>}Dr;`nS5j1jY2W1WIB{6gM8@A z6NkUu@tHt$>}7{eIcCp5MMVYMftq@0c{xrg%doM1ejAXdlazyBiwgW&veUQfY9C-? zAhlvpYkW}tTw7av^`~GUq4VlV=iGeOioUsO)3x=Ex0+qRaRCO6-lSmtyS<4 ze?+`#pY@TLV2KgKYU#Ijb#PdZWl{Lq(o$7brNVYqOC?eHvxUkK4^v!P9{OmLFaWxc z;-{Xy?xBbu@DW)6<$GX#pW(p4H$X}~7Y;&r%k-2|-PLeeIQ=In$jIi#OzF!Zji>t) z4n=xtfi%PH)KT)HGSA)I-W4?46L^RK1Q8MZ900rdRXpDfa{dQU&(mI@WM_tl4VYsm zm0pq)h5(+l5A*wiENKW&>YC>^ss>v?&MTm0`Z_K8T3J{CH%ceBAJ8CebZFw7OM;5+ zonSb!v>fcr`PV&@!yJe?~9mFPy^ z9z__{4UfL8KOA+0>hdj6XNOjvrSYs}2r$6W@v%64j83jA%8-)VXy!u*Kt#HN2#NqH z9tjEf)e0^k5y0L*-6|scm==tvG3pY%5^HolO8ycSrmnl%aGL`Dm2g=`cGCNrf?`-> zzX|9+fyDl!`1wh| z>5F7~{ai4~4qO`k8?u4j@N-Yk#CEms{ySbZEz?XYA|W#oMv2MEPgflY4wFH?fEtr` zFQ^mBW54yaU-bk`5~=GeLnUx(*~y{S7Y^bw56%C>H;EH0*pVF+-7HUt6zMdZU*`s2hg6GKCX#R)aG&d$#E_FM>jo)9+S zTZ;--T%^M{cT#qw9(b9tR_8(|h>}nBoV%_EjScD#TtHA7OcnqTv`M{w7=h*;cq9?6 zry9Ba(5KV-1ad=p5|zPz4bJ@fS)E-O46s4GwQ$y8_^1M0Fd84Tl67`=#<$PTy`>lCYVkZ>gZ1-5Dm4?W(k_DWF>WRg~2vS7CpDnU* z)*!!;&<=tR9J#^S1``Co{Wg}zM{tgP!TkkfDUr%eAES`j1A-PXUm#u~AtAV=x5cl1 zTtv+JpNz?POFi4RlDtv9?IR(1agknzg4Jy1IeXjq5Nv@bT_rwnh!DYeE5xAMfbZIFhJ$Cw5qpuZ%v>vskI!^CX4!AwVj=Tc!l_A!H9)S&ZK zlVJIrMVUG~dF>Rj!vT0Kk5ju6l-YE3blAW^x_L9bHw2-%*@1=_ZzVlJhEkrgVPK6Ia#%^pa43PsiE4>Ja^EDMuZ3&N`fLQR-aDAl0}75lJrl2Kn8qt zjFZX0L5&J2-(V%(lLacL%!W-6Ygiy0)KDMyMiDke`UOeL6s|E!fQEy`r-UC{prPt=a=I!~euFg)m%pTCX03bIrpL+`*FdoL4-SMMD{;mua#CC#`+IV&&_gaq>mT)@ z3O>NG%a<>UrKrA)-=+ez3|&);<4!_*rzJF)mTBN#lkvep#Hbi#I%19s`CAIgF`fJ9 zL#_m%JK(+>8`oVxcuIg0|291!;UV->(!7|7tyX9<2B$Ss3Ndr^x!K`M9^7XU0odrsXCzFJ%0SSBbmnRUtWO62W2+r#oikOReh@gX{RdN?Re`f zU3d!k0qMM*?}Thyt7)Sjpp~<)8ac{reW30xlz>12AOf^6fa;(fCUu53O)0YWc4Osu z$_!}UgZiU4&&q`EhygEP5dbuP;hZ9i1srpOwyrg|f2lc=5+nkq(+|4rG@-Y5>n%RChtoYmCSoD3hOVT;RY==t004WbJCZNV}I1R;%6Q>LP89XRBU%&{-h z#|?i01t_+_;{WEIbnoI?uRXRu5KL75eR0{_+Cm$warHE2aze7!N<9)fY2a$AjXF76&+IhQmY(u+afp7BQ*NUvZzP?IXZ`u!l;Rgj) z3}ZikinW4g!9QxkQ+go;-3@!Kz9pM*wMzUareD`)8B^bzY&?L-2zPVtbLzov}bvjnh3X%;@Y)v*?6TJv?L`) zs^xfCy0p3YY{4K6X^dWNx}?iU6hp0vO(*H+Bgstm)w)9VlR7(K$Go4|;j(7Wo`vUD zWy3~ZU4`Cjn6Mr-SLtd%`D=Cye2VmRCOv&9;6g%RIRKBW=3+f?HL?RU#08WSKE9tt`46 zLE-)dQq`}LL%>BOO}6NliU~FE3PK}5%EZnt$|g#SL;U$aoaI}UUqdBns~J9NJacy! z$|VY{4VOrb5#f7{n=wKdk^zEgnJ_hNqC_ew8FNxRt<{ea`zkvR4-ar!o3^)nQ`ro0hdCbG9m2K~sZVo1L8c=Lrw@Cw8U6 z!4isV7w20#0JfxT=0o~ZJk8^Z-@p_S6R)TIS`(KUwA-lq*Er=^V}z&sbQ@Irk)9su z0%Zl;Z-&s`ySm^Lq~E1?S}ZRtK==Nz^svj{@BDP1l!$0&X9wgB=<$7v z0Q`ychhm*jE8B-26dq#q(0R0b-*#FYj$p%^3cC4bcgw5B54wX1&)@$3Sx4ay_b};% zOF!dqZ_Ulk{rW{Xs1%Wbi;D}+z3C&!*#(Za0{^?5#_EKkRpU%T{Bsoc@Omnf+8C5S zlIG49?BeP=wCdJ)H#Zc~*vFEL$N)?e-~4nORD>`0b%=+7(vOX)-2EvI+aJ8D2P5dX z6gq$*iyw=Ybbo;Ut$!c*J-|z0+Mu8yvF4t1^)H58+Y1iR5S`t;z0q+K$8x+a53$Ks zbKese(bIkZ^L>bZ#6ZG8^xi!{QsB@H*{-dv?RnLJfNrTH;M-E;yH-kho!@1fukrg$ zwUn9l;*0uqj3YNQ4z)NkGBPiFQunyE6~Alt(1%{0gq{qnqx}3R$AjLC9(I@eGhe?x z7p67Lw3lL%ekzoZ)MqOg^eQOecSmw=|5rs;QTH|4j_`nUHnQ-cp`msE^JBB3_ZeSc zf3IFPKENV6ekLfzi1>KVJ=*oJ5Mx}M)K@3WZF>D{JYpsa3SmlF)+rvUj~DNXh>It8 z&8PbA4Oyo8Qb1e}4(*~73M{Aw6Oem>)xtXgeULd8D7=S5CqoMt%Rz_xdu28ngSSG} zVJr&K|Ak6Pu93%j2Mm}(M-yvTO%ZEzc6<6XpDM2f?_F6#o@A#+d7@(yuuar~p)RI*# z!KduEz95Ud3_liK0$*78N(Lj&JZFKe7zcp{05~ypO)dm!3T5&v7C{(dQ8Hv!1d2(r z>bzT3SZFBld(hsX;488M5$2>2nvp>MW6|_10UzN2k4~Bc3(aw9>4C$jf`dsfWVo@f zm-yiWVOUeCdqhswUJTIx>p#j&IVr#qDGjxe%FzNL85&l>+XjdzE;tV5NvFGmf_cxz zjm4_lx=iWvLMUDRy#+_%3X9bjm6gY9RSF6UAj62!??VXf;)3`P8a<)Vn`qB%pdIrp zgEn91GD|g7EkmG-u>Eya$kYo5Sz_@ut(!O<7R3LIk4uP(iV6zi()9rT`}i+B=<3gr z?c>va>-gnbSgZK1}x8ff-CeHV)=7m?}EgWgn97DBh$U7Y6^d zpAolXdc&+h~*Ln7|#If zIvKM@=d#c+ohKBOwr;-}v-t%{B%sm-xI!qyXd7F86X?&> z<9Rdnx`f&SoigQ9P#?Vkuq(1=uoD(vTl_rA7zFLlD%Frr{Y|4Qg~?|!!D>W+RQ>rJ zV07I$xwQQJPAmRKoYlD!P$9F6lkmL6?JQ-)iBBsTli%8$+X~Xev=HoDZ8bDVpM6wC z@2??AcIHR8tPk1Z&=g}-Tqm0D-cMut+p&u8&-k345}I8YhiHTS@@2rHpi+QnKoQwM z*+J*QpVesrXCW_IO1&PeD>m9_*aMThUiww6fjFGxgn0z9GZ7phTgFJ99dviU?pw57 zIC#tvAB;3*M7-GgU_oq<+uvcqXO6YPn^mYEv1z=peRzMfoJ_Lp$4P_{w zS(KljpPijuSV-zb3~*CAzgLiNJ!^3Ju*GP*WV$XUf$QU-71}-Uyobq7mL5Y$rUz08a`j4Z0YiFX`o%H8lfM z0Qv%5%&9oF;KDl;?OgK%D^VaZJH-oLMXtDctErI!mJ?SG!ro1LahmQeGSzC?X;A`_MqV2R znBN9)`gAs!Sk|2tI#V#hkANLC<91#sl`czjoAUzu>X5Y#IJV$T zL{9bU2!pkAPE!-!eV8ybHP@ zJ#i%ij&A6w<1LQ>sn=cel$4aF2TV3qyKq=GKB0#*F7E#+>|WrniHQMU6Xr^h5gFj) zL+({#o1@|bx!^|)j(89r;o7*)cf`$^S2zVP#`N%3Ta+jN}UNuG_<4TApt0pP4S&{yj{_%8pBCqans_^Sw>L~m2 zqzBpHi-T8O@_lgV=0*zv6OI?(b2}qWiu8TfWn=s@gU;n$CjkQm*g>zcapcTxUVH~( z3?#jvLVfSNQJ?Kjo}C!OL}_G!$JPC5Ae=xA%y{ixNy)0geTmf3jjmB znt3~((DkX#R^O*I5zxD{l9ci=U-vvmo&IIGLILTJumaqW7esU;?hD8x2t^!wR1RwNknKBH%oFP{d9fW^@o?E* zP(-0!4i3(5dc2a)ydVRPRb$;cA8`3^tbQ7`Jg6G-K(>N7P-gJ7(>+*l&`>6Ks;78} z)5UX!EVlEGHwOL=+WvHNdov)%D);chCawQOyAY)KQ0pSJ*ZWGusegg*sE!<|pWKKYdb=mNu3)s$} z|CbDbISDB~2o%aR)dB6;UkGK%S1N*m2Ie=*jesHFQ}i)5FKCd7roPdZD_(T*^mylJcdUQWDmqq9zqHHKA4n(R=*$z`3-$x zT!tpU_tn$w?j6xIu~$3FB)aW!J@1Vjge zD`(32I;j%AUQSL zq-CL(vBljlXeVG2>-5F2a&Vb^Vbf>DPeMXMwl=2(ItG1e?$@7I{PfnTZfNk5E)D3b z$Lei1?-L>Zie((4N#M8yA;{8p6-ERoQUDPX+DC?mf$f26A|NO@=Y%3ByhQYU=&774 z%5YBO;S2cFZRUm|o{KIY>NMSrjVD&iC%6*Y9cp$50Au(_7;_~wO>F>AMmf&|h|brs z5vGMYO&#@_iNQq(0!sxFBjj@TvwF|Y{E+y0rd%&5{SLRD7B~tr$+E>k_t|7`HQ~XJ z?+FVYvc)|{+3G!hOpF@@!n{00%+I@sEt&UdzlXL|LnBap4$_%Z4zTn(`?`~C2%H^+|#%DG^EVG^6+U?*GBccwKqQy~W4GPM3@ z{M1%`eXmJ}9o-RSVq~uo8S3n5?V`&h!LOT}<#etoQeFdb>!aoQ;^H$$B!j#^1M;Oo zK12x+$(AWu$(bNr7U{i$RWd8u+1ukCyy*K=pkb7E*S(*gpNDxmxrfBt1|R%4*XNCb zRdjkSp_G!hzzh_G$ku(=y&Zp9mqkZKp(QjAkH7ZiKp`PZ%TMhpO1FaH%49hAtjyrc zsvRzuT6Q1c=G?CDKplo`d5R0CDAKTCzT(FZS$^u><5L){VEo8SMby;P1kScm;r{m# zdm1`Ay8$W0E0Pc-45rQ31lYWDd}#t?NQw*A^5r*+`cIJMlp(a#)C~=l*(FL4x?%<- zv?9HpHf7LOP$uU7#fW69Hin#eJB*-J@0Aq-Ds408rH=Y(cDI1Z1Cef_5@{R%*oY=v zmfm-#2L^1&YoTkv9%o@;0agwubJa}}27$!#zXP7y*x;G^-3F6~(}@YNTN`5As&T+U zL#Ff4$Mi+>AB6+A&{PxOg?Pdh=7VWbF>m(Bk2Yy7U#)qlJlO2ahJ2 z@r_U+1QMtlunYKKNTl&5La&3H0`DN9y{ABSZr$7B9lg!9ZOmbU^GBdgu?Uqqy@M#FoJurpz#eaKF(PDL{2^Zv3) z&BXe|=;(}>dAho=m{^DCCaJxsq-0%LS@Z5nFaj)dX=g4W`Z^ZpuI{lAIJ_Qf^hCHq zf`a(vFTv+Fd`5)t^d)Vc2KBBXwW|pmRsy2B_`(nXf~%+H)K9YF7xW0&1cyGrSzzW2 zY*~#QDI1wNiPDm&%Eo~AEkq$gZ&z0INI&&hf%28WU=M87$?455=V(DqO|s1};f}z^ z)YSRAkFxuol?~6e6R=Q$+M;iVZTti(>7UVWI{n~$fJ-@074(XRfnlD^6ozTzmFV8Q z#NnqVt_VOuCL=g!wo^`Sa$$9GF&0KR&zmpe9)xJdbwr2sMjqAiI46p@iNLraRseuq zcvTk+8c>w4gt2Hc7r2`mIZXMhJp50cuM1B_y@J`(ir}(una~UP6C)v2l+fOvH}%4t zSA>tR&-R*~hNY$DqenEReNvO}XFlkXfDvgG+uDDIyCXhGf)z0Nx9CY;+sh4E@ayyZ zx`U7$@mu=@c)CKm?iv>Zqbv#Sq-{+XNk)jKjk1(_lbYk@vtcfLwc||$rep$P4TuYX z35Vgh5^COz5gBilvWyDn zMIYb?bm-D!@3qy}W2lvM8RP@nAlO&n2Ah(B0a}+d2?2R*7}7c5PO}tP$+J#JE3_xU-$^e{(r$rJctK8| zBSd4~Dcu-I&bi&EgYT{lk%$nA_`Ia6NDyT6bZkm6HyVQ)7Nt4lrSLb-{Yo4Y$y}k&g>W6Gc|&HjG#+ zZpYB&;mv|@ti=J6030%K$a|nM$2i#9f)@f=ap?GGBe4{85U=W8b#qRJL^N1VvrdV( zZ}eD~ZI$9>uv-hNnxBG&VA3T8MjKHUCNLAe;W{q{D|V+D7IbfJK8Hz3A7e*z zXx%WPF<0X4(Uqr|)eDdu(p6>J{M5;yTc~IY?8HKhj{O15XGy=#1%fd!N!a{dspPZm zUrjVuW=>R|+x2Q_Qox4|6RT(rQ72^Xl%vP9XU_oJLOLL|OY;>>a??6pQ@s+-u z*_;8z|3ZyTdvN8k&BTU8!yoZaw4f*z2(C+s(WfRQJ<+befDNGkAQ~3JFA4*UlRV1Q zXX=qzs_>FsH+?jB)}hH9`z1f0Sm`|``)PEu85|8NBEbJfwLYGvrcBAIpku(23sg35Q`3NXr?Wk&W;2)(&heyYM3KFM=?RMx z)S;7;Tt`;lvjVPVM>I$@rKu#gbQK+2KR;VPA8VG16l0peY;-Z)g%hzY4wL{$lfj_}m9S+RO1_?U5E^Jg?&$lAuK7p$`kP)g z5XY9+3aZ=KSgXk704sMg0DJ4uhb<2LUI=D^asbH@YimfC;2se^1;i{kGKo(P0gC`B zj`$QY&o}e(puvmTv0cInfNbAg0OQUgSOHKBA=CmO{Pd;EQz3RS9R&+8mUcue?MP)G z{(*d;O@eE88pNfxG*K=oFh)T|)Q$X7UcQeu3LVbo9FQb7tYi@WsDY>a@#DwOpYj*3 zTiW6K0!;{8Zhc6kdyop#5j^J_;zUBqcG0AY+!ytX- zIe@8L9>=ct{AQNsM&X(?J9Y zRQ3|g$yOl2==$E{xZn?B9qQ<#(2BhArL2d+2pC!B=ijlZ+p|H;0nde3jgFirCT<>| zZlu86k7%;RS3MXfh*fO8X1Uke`cfljrV@fkACr@Bj5?6|VY!$7SG*A9vG=eEVbu?O zYBh37D=PE~2fI?lLBN82q09#HNVp2U$ClA^Sb{{p7WP=-E{IujL(}uQqB)&LO7%h+ zd~j4@23wBX>q@YpwC3+Fbm-s?7Z>tN!qBanM379C*_vE+vis=7z23F}5f&*>f&vTS zLB;yHPs$#zk?Hk(dj{|=3uE^2O8qOX!Q^cq@b_$3D6qX35)-RVIuq_BEStIvKIMgp z0Oq8UFevhj4z8xA4eR@$HG>L)j{|d1SsLl(OY7_NZLQ$5qK$AB*~VB9iC@lL09b8o zxf%QP_9u|tsdx*8FJA|q6k?F@F<>&x)`AS^dkII{3sytLPIp~lL&wk?WEg*+~{%A?0-c;emFXp>LaoPC= z>(#$J)KP)BcD1xe&p&ipI4(XH;YEdZ)<;s)(&Fe^Jt(d{w2S*}Rdx|0#2DQQT|CZS|q3pjMwfvm&v zW6IMR%n@ybVQ)_l6GbEnS8$C?N98_#`pECANQg$lB$S8Pjy9BQJ3C^2{=qO%#{O*z z4~{_CosN!9G?^sV`l8+wM6`~P#k4?+TMcFHin0j2O>$yQtbtLR{PE*ShowZEYBu;V zofgiJ)khZ;cUM=SW^lQ>xbR%VxN~ozcOBa^B6RG1O#QVGN_-sPnx9pjVQj)fNt8Vz zuoA%qvv!c+Prx0%kkUrR$LFjar=3tz?~2%D$&ldMd(tKbBXave$FeCK#`N0ya81l} zjhzMg66lFRem6_9WgIxe12cFYKJY*n6LvPUhzt3KjGfsX*U$4Na9?2oxrdNyEbC(M z4F^G(oDj%|9_NvdgqK%@6eH{jAjp|LQn}4fV4g$LuR1#$kC2-rp04cHUr8aM7R^U@ z$iktTe7Huh!V&+Ex{_D{w*H0Mo5x(N&JKg)n!2AU1-TtjhK5Z}Y2s)t*2bR!(unyw zAVfWSl%&pHO;|LEdk6nR@uBe5hzt-ysK25XHG>go2WA}q0=z&}rYbOlol37UD-IBp zt}2t^HGCYnafk~XVM$+?is#QeSyc1?s?H982*^xQCpI=VI=k@vU+~~Ez%mH0if(-y z|F^;a1EzXd$)-ea$F-%2BN8y7DowV|czN^O3d^eBjGFbd%!3Q&7+nP$n!!@h_G@#!;NR$l9@(;On%!oK!!F3F)b5dm{dKo$WK@Q8?@ zV8Ec$BD3dV$ngJq=zWVjdEy^QmPr*rzeQi#zDq%a0=1 zcyi1S)zrE`_>7^u2jC2}GM(HIBAmIKzqcFrb5@nI$dpg#j;2Qdr5F~-xXPhRu_DZM zy1!T}Dz2^u$xHw8J#xb4zkk8ho<5SRg?MsJvHN21yuSQ;YNy2oN8NdL0I_HgH$YP$ zCMAV0_W{gbqzBspaIv%fjgnnbe?fo)qr=1h5=B)WlH+8$Z$mO}?{gA-Z^q}ONt26M z%=q8G3lQ(7HOn=~hY_P}ja#C`FH~!TxfvI_yhLV%af75m*(cqxSEqq6<2ih%08KQ^ zV8{f0ijIb4DwIIbp;p|g+RV-J1FgTr{`1n{3Is&{R1~s45Q~0ifqpt&Fnp>YkSxt& zGw>e5VA~#Ifw!@D-e*saz}%n2!rn7jnM*50H3rbW6EOmKzhLNqStU@^la#ec--Ke^lor@ zH~!)ZqxZt6fISSowtU2npBe-Cbn zQb$8i`9YTXFlyo;3dR_;I4-G`!X8x00s~v_VZXI@W)Hl3=Q5ArUfY+U>-r5sTJo2v z_`=vDl-T0X8T*nhiOZI7oWQ)R8Uxs9!UN9*JAcyy96gPk;GF>rmHWrvlIWT&yHaKk zp88LqXPp<68IKZk13Hc80vPU^Zb! z7pr`j(1zxasQCy4mA=JNJx%~dFu9=sNxCFgD%%Q}HU&>O7dL4N|Ge9d-c2)!lPuim zs5hZ@CyV<=FyLswC?Mo7y0DUgW{P$^78ck`70s{3LIB;yCNhH^U@9$N1p|zJxlx;0 zD9`^E5eCiOs^|hi`3rR;g`EMRH8kDTm#M|n)FeY5Ru zpmO4uA3M6ZK>K!jY?Rv%=L7^86RCfoOLHZR_!}lMbbEGudlr;>F^g~?i5{9rsLarQ zSb~*Vp3!2&U}TE-2O@IJFo!d^{H#-plj2DcmB(F_Pa-s4Dx$y@8^=I;tvGyo6@uDc z2)f|oER@J+_L%U%=s9GV`uhd=`Tq_VW6Ac0sB3 zg|(H78_}8!GekTBN!o5O>>e9?B}%?2D}#~Idp_BHz`6`lBJlk`0s>{l#efY!9f$VR zYz7gF+j>5X-;QpXc27JoKGIMRFbug>=(n2-V~L}qAG_usu*CsvPE`Im{rvA&$iL+4 zTwVJtcdP&jXnEWByP$kL=At}TfrK=~aayJ!cmtC~iI485B;|Oj4+z>QQGW{?qS%4K zN_BK6A~X>26a(zk017dTT=!d>k`Q;$&LcB>pr)>T2u0H)UpO^H>^BSG`>-mis%WV7 zOO&n$NWpZsizpq_r|j%`D7wJ80K*t^!SrT$c(|I+zpLPDifUaM!no7?wg2njGMLMG zgjCV5UcDkBCJyL?<)$L~4QaIBzmHDO%y|KQ2?+^ZBW%{T>KvoB%f9q<+l*&?(Zvta z+Mt<3`Ul&EnQt|tf1Kp;C|})$vo-s3^`#I#1&9G^}8z3fz?=dP2!W`Q4@BuRa{CUs%KHx@}41)1o2m&oSgq+Q}37*Yi18RT{NMj3j~nOOL$Bb?s`obMp~1NR480_yz82t3BlLg<$r z`?nJf$b0(fy^w8&uaXFBdJcwqW1x#@4S;hnpa?@irer5KFhXAte1ot!*a)xk}C{LWoT2DMC8?qSF3;GLctvGdUeifqJvwj$I1 z@821U8UQas*+H_Ww>V0l%y;=lW?Q$8<{y`aVkxRDgq>lB#@1QAGUj74HZubx%1BNY z7osP6&*BaJ{H~^dIt*%t(-iR2C`ytJl3zGTC{Zy#=MV?d`2 zDORt5J#kF>`CR}aO3kJxCWf9r@4ku%Ch{Ux`s~DWSmEgNR<;8W!&xPrg71M-uDsv> z?`40A?uTZruF)^Nof18yuk|tPJQc!(#iBq9Zv_G&zH{_p*Af9!axRoqB^0Bs zUhtXfiNLlFm$-pw8*Rq*i`e<6vxn^q>bH&PeQs)!O5i#&w$|qS#6a{=@7Yh*1INlUVc@TdCG_X-snu*(#oTqB}2q z^G2(#5)GBuu3)2nrq!_NAFCaAA%h1+F?NY4Xb3yJ#~?TX1%WRYU#X}GCUCMmGA`Vt zV?`GYcz#4>m6hzJB~WV!IU)1#RM1N_L*w#i32uKVE3nOQD??Ye!T8h$rtex6>>Yvn{+SIWuFXKI!3CT8jR@?c(TieNU|^D9rQ<@R5MSXMvKH zarnKs4ULRoNd^|)Zbk0pN6Ope*2+aonKbNJgtITAO zKv2I(8ClOA@Q~@nuL-Q1@Y?F@SCrB>-wP{U{rkHcbzSOd%34MkEafF6wj6hbD=4M; z_WpuFi_IS3QRtu^>%&|B^Qn`oCNG*2h?Wq(i9ZRAQ4O~0Cnq9>XWSA&El8G$;gVBh zOKwep3EWuhjZE*L7bOLSXUKV3E^{+8!Bfp{HvPDR&PK-lOin5fcic5}UeyB8-e>pz0hV0 zAS;GP(HqHnDEqS7w6g_S-jGdE{Hc&B;d)4)onej=;9W7CY0$d0PvF@{Yk_=jNj>T@ zR0BmEv>LDoVOK_IyQ#aL$urzst=jZ)cL&&Axzd>*#*0*^jiupO-P5PRV#{xYiS zu`gm#LzoH-(=$C&e_dqPh#DP78^R2mo&5^?oyN*Sm{80RPY7if@>Ai3Qv}gVxOs;* zWAF_et*mM`IuN7AA_D+Rq{b&~0RxpiLb>1?C_s(LGO4yH>9m}3ug0UMxbS7{X80K7Ybe#RR zOzudC&FdzH8%oSxxpIvL0sFn!A0v+)cuFc zOU)3{n`da6`}W7qe9#xTxAE@cwav=h8m8RmJKpRGi9<%04)rQf(Z zFAGg5(a_;C8(8}(1Is%qvJoP^adUNmao-O7Admj*U1)1~e15+|JfbiD=m`GN97}o5 zYz~>O3hZDNXbD5fiW5YL=?&#Ha{dMXD6Kkh{^w)2rK^J9Y%%OcSP9n zw=1r$bA)pF-*+EaGn0rM)2h|-Dq4Txmr7J?3oru)MdTWY0`EjdY0Ft3LMvMnB1a z)W~m?h_0ENlU(`>6tKbCRX!ERSKNELJ;%MoOQ9%-TW_mxrBmtXeL`q$&9PTTfOz{5uD86(G++ESmGM2Z)((7OCDK^gqIQ& zbG){SfZgHQIjnG+$Vh05OHh7s9!|WpAAsdW;`0N!m-1Y&3Ucu9@Njb@E5O;o;V?TL zNPvs4fIz108V^4(W83WOSzMw7sp0JQ5=Yptw6c&>@p|L*x^>75gMc6T zRvmy9aZiCk{mmK4SKo<9Sr`hRn&%(OI#Y8#`AU(gm%#HP(<$hI6^a9v_6@mQJhXm} zDep-N71C}JRo25~-frCm#RAxWK>S!owo=fc;5GylP$HeQw^}JA4&bIxJR_%G*@g9A zM#K&Qe}E#B6rl1y4|BCerXKPOJf(L-J#qY*PIfzZ7i*8L-YX6(sqIQ_V0-Z)ppuvG z9Hk*X!w0Mw;@S$kVb>>>%uN@*XY6a(sXQ7;t8_QE{82Y$Rm!E+w;|Lyk5)f>R9Z== z3@pCzfPe$h#|^rEw2IWL>3#xd$8+xu3 z=HHGxV$zuHS84S7QbZZpj?Xl2?~B>}Jj_LukQR{Z|3rL}kQnY+^v#UQYqK-!-)Btn zzM@tA{@r|h_wkvema!c-$@^Ev?8!V9kXBW-ITX$t7L00i_z&TJa(n~i78~R+>d`Unvf7lzT!PotbkdJo)Fef0NJbvb}l8N!L1T1WcZGO%jPwR=iuz9&s&w z3x&*O=|M2TnR*s~Wd&QVJ0j@3;zOEBXlt=k>s^F7fnsrYSNijQ2asNV!gikBPF?XH z;2r?qXa8mI-Me@E@=)2y!e&Y;x({KO@e82a+!YmA9RiS@?88K}2W7O=D`O7P$izHLg(`V>1c-cqoRXMLOvA$9*NJP$MRrc@K)d{+w#C{`7MLXFPSea z;7E>M`$>1p)*G!lSeUNK{&^u>L%u5$**H3dSQ-wuC=?F&3$ffZ%t=j7E-=k&u%3HW z$77X-P5|8K^yK7G=$tgq#8EcrLTz_C+h?vpc!JfQP#I7}YVT5!Cvr<-w(jNgc9cFx zh%8Uq`T6mfU22YzQj0Ja`yQQQDFZEvnl@nMloWV;z<%qmLrR#b5n#4&^}xLoBPXnr zc7B}>qZARD=wYpCy*xXBbO$cFZ;pVqk$?oR&C6~_J@fWiRTUq;7YZR2ZEI(wm-fNs ziw+4QzY6RRQYgKx1Urs$oQ#kL;#bj?7IyvC=hl8|`Njs3@e7JxKGoT~J;j}MK_TJo z+UP-K!ojdEtL({P2e#o}BZ(={yPG?F-RJMifiX+}%BA_*mZIGD)*anc8X*n$ z)&##kP*96NaLJ4my0?M9m_;ygim=q8K2Fj(ed^TtGB-Pt_y{&6REr|4OP8Pih9sK) z*RETapR4p-`?_}Rc)tHU-WVnuC~z^PEBkMt%tSFjaJ9auXK{Y9OSk`CQl_)MrTX#L zj~_qUb(Ig?X@J=m%or*80dm8GketIx3^zP04Sb3U`QcZjjglBbUQW2*gA_4*p>&TC z5qpYS6*8O1hr}rZm@;Q=@&Hflg}0u}!VY_==H3Pf6fl#bBvI{!*XGg=CWJIt_cXW4 zVWTd)NQ}*1&-dY$eOd`6z1_VwmeJ!rsxt5TrXA89lu1NTLIihRal$L@Vcz+)32wp!IdEa(c7Ls1;i?Hmi zt`kw?#A{M{K8k{`1rG-I7)aH!Dx1A`WsWC)UtU!-I0)n54m+^cyt9^E{P%Ch&-KtX z`bUCanu7-+LkO4da(S7PGYMz2(eh3$^=x(t7DB}-vip0AA!;JvS2;WAE3&ICN=EM! zRobp4NN}Ns#0L)O+2I%Y`H+Dj6|4UFqZcnJ@3?QPC~UKJZ2h;eFVE1Y{gh1G9(6#P zH8nMTeSLFtu6RUs!_^k8Gyl{%-NkM9>6rT0vT6cXw>{{c^?0!_;08LX^{A?)sIlHi zhj=z`hCbT<4MRD{RmP*?1!rFrJ^1W!VC)`509u1rAR}pK)&)l9&0v7Dp?z|(RVpUu zdD!J^C^u+A$4~b(y$E^j1SNn14O$mPw0Zw?w)K#1E5u0^kw+i2u$KBQ*e;oEA zBI%=Cfs(0uNb+~HX9ge9-NV*J^2M>cg8?7(LeXk9y~*j%w*}j=MY(!BXDN`seeN58>;H@RL8rV3#gP z!8rq^j%2mTN=g<~RB%Uq;LtLNBIsahIi&9Zg6z-P>T(Th2dIA7e|)FjeYieS&z$C1 zio7|{0tf`a{zEXAdpUpcmmwEuiSrCOX+ksplWDgp8!4@R)nl=Z|2zII^&7s$TmBvry)&tI=8rLeahpz*BFj} zy!N%VHK?nQzy;dhMV6fo#)ux1l5j6U$SzpKO~48ul=ZUW_8O=EVNr-_;$cJ%4Q_A} z=#SqO;23d}LApZ<@!W>NcInh6Mp0gCb6wxK<9r#BYgwy-h-yGQb zX$Cca`Q61_X=QYCtyZ@eSxU`_i6j61_BvlcW(Ro!5R>x-(kKt0PQX@W%|N!jU6j{t}1HVYWH213@%I?B)hUcYXl9#^!-uU(wkh5ypue#>o9v8N1H^?tNu+2OE5%_3PlCy8PtvYGH0njqrMshn_; z;L6Ev$GN}p9bZTmzM}W<$tP(;_5gMiVZGmYi8WqkZ=wiB3S8e7sqL;ptM-w2nj)-d z{D2FMw`GN@4e4%-=qfE$GeQQN--UPqOQK3U3A7e|wXVt0tAl~LH?^{InRRCk(7dvL zXcP)Y)F7C_Ym!1@;3V)GA$^nB^*BF&264PzkM*~5zbz_S!~~EDq90mNaK<7Etct4( zP~7qpq@hSjChuPr>Fi7*0>MEldEJpr;C7=lT2Bl$(A}|Sff&f@XT8oQ%Sx%vhG#nV$5DeYv5lQt6Dg*2FV%f)47 zG?OS3Zk+^oP_;2xweduz;`rV>MHKNaYeD=r7!6z9 z#K9B6JP;&w+Jig>39y^m_LVX5|J=J4@Qw(pMG^Kbb*l?D%HJBk_Z3L5MmRzX8MxGe z0Y{pxL`f|j&j)R8>(At~8d?JJ1b;ZNKJC$LGmplwwN(#9|B1&xO07ug?i- zpLq37#rWr5D1DdqOjOYLc*R&9Gz1KBIgX~&=q9;E6+p@pC#WOh4EFM3x2uA-->zq*t0NJqQW>#F0~ z?a;jre(a5=Kd{wD?cal+j;Cc==qQBu?&XUnkaEEKW}ja#6Ksp37|Kn9DVJ_WP3cFP z$_~;gsc68{(!!iGZ{z6fhjlPo3y?Kd1Qz9i2N)>xykU~@ZY<`LF{#2C^6tO0d4_;Y z`7`={A49S?0xU5%$%Q>fxX7^K7kz#TbOPo*#J~twr|)Nt+?MO*9XJ=HcfR~;LM0y$ zFz^rrVdNn_3eMk5<&)~h&<(+K3CJkCw(SQ0`)kOtfJ&xRG)t8#4K?}N^1KT~ig>H^ zkQdR@dnxc_x9?^MM`MZ1`{1vE{9Tesju=jqUDt{@#T>Gqfu#V}=0=X`vn~>&WC&c* z2iO_NW2FB8G(dk$Lirj;k&_CX{?UQ#{df0$-!)#omGv!2HK(A<49V;t&u0dv=g#d3 zAtqLl2z0o)Q<~iodMy9GDG~#VczE{qrPV9iE>O@;)MXYSts@q31|cXk$5l1zX}L)+ zx|Q^z|6zg{C?LWgFCC?=Ms@d?i&qT@IG|@{^+MYdcOs*g-ZW|x(J3K%Pg7cEs_NoAKdN^0_{->rPf;}k2^*{9MJ8y7_SbAQ?6}s@ z9pbQC#(hAYjgF;v3fU`2GefV50aS3!fWXCnb?-!I=}j=u{3<>YjI3+3vo9O0?WGxa z0RV**>Zv!s(Srn(Ue*IhnunaHQP~lt0b<2o6aoW*y91*4&HgBk9vwAP>pa8B-@l<4 z2*1l104ciC|89kXBLJb5(hV8i~C#~4;1&2T^|0k1ZokH0TS%D>W1UBN5ED=-blam6BH|EnQNMIYe@P=^#{e| z=mdykK#U`wI(RLhCoFSOUT9S(T{*Y~pBalmqJat@T6Swm#3(1+zYlVVkLj(hJrvQ7aHMcU>xFZqyp;RErSXHnb9<+pK;~SEgC3qRPfvhO zbQ#%Lo$<#wHbn4HD851|NgS!;B1>bx7Ueh1l*Cm`j|<*LbHcL>@(aa)>Yvt&w5$?R zXP`yHb+45bzxz+@2P8)z+P=A|X{}v(y`9JhIxwi%{-L9p*20@9;Ui)pGOpS^{?>Z& z&IMHvkK-8)MHognC3nA>ksZc;L`P2S3BS4rMz!S#6e&>q^s9NqdEvl;Arp@udEvmR zs>;eBkIvNB$ZkL4@y*g4cL#s++hP}7+bQi6c;~NMZc%(X@j3M<<&ZNmq5;Fzz^U06 zK|jn9ZG(jp+oB7J?g;fy7B$eY3OsC4ANa0KTqgIzg^Bx&&!%~yP%TSCO&jTQ#g&T( zYVzVZ?h1(o8*SZ9_ELAgJakXD<1T&XlEF>AyC;OYbgm&l;$Bs#u%$u|kKdLBZ$)o` z3mF+VF!P~|FykYfAC#3y8%`uRqK(DW#*#q{fht&BScu!-c9w%m2&N9~8~|?Nt3gZX zFPg53HJRUHx{ot>y9e|@B%zt@acwHVs+a$+b!2$Lps&$TO4FkH@KxG&-ACYU`jl4I z-+d;AeK3qT7aGIXoM$+IxkXsU1YZJn6*Oex=N{8MSZ^{*SrRBvjMIycoLB2@Ih#xm zii$vk`I)xgqL%TI2q0{rOPUI<^mAnQV)HgK-u&WF{{7=6XWr6pQ=jj(4EM|&l%4-a zh3gPD`n+wB0J-fJ3_*JgOo5m+Hpn2@cU>4TJD)&`vekyM=!1f8$2h0@vP~4L5D+}4 zl|ObzLcx7?t(t?KJ%BZ;ec*q^zd*{xwXx60k^#WtT~TTE@48;6O`%tv(y#g>A7~9!p>X=mf(xQeFT7ge zbV85Inf$Kv;$2WJW$Hx`IgpVPt`6U#y|`+M5JCX;O_6!H*>0QmR*`c4G3Rt>vUVdr zj{hPAu(+@$rv@W>r+&Ix*Z6Fc;Ym;f3y8j&3A}{Gi>$^`dB3%#-tT`AhK#=dd8erC zuVm%zdb2>9eVl%1v(uzSxyUyC*9YEV`t3YWN)N-EC6R(JBWE-KqY}}U`KBwtTwRyphm%M ze_xh9NMDepb8-Www@%|}`e zU4#O*Ivx<7Ew42HBeV_#(9S=ChGB&md)X#^m_CcJ=>zhG(AwdE6De&B{O1h@1$r}v z5F|+7X+S71J`=&{pinh|+5rcS_zXu!I931|CAQLk_#DC%T-^#?w!I)#6rR;|wtYD7 zQ}QvBEvE!jXC!0WsY6>mALP_oLizV)!sap$*HuI(Xy0(=ZAF65YndM`@vm<Rr4}$ z4hC*%cFHi_4cr@TtzOJF`0SA5UNr#98V4P2H;8b4{J?mM?M7yYGc-9?y12xkh?dKW zKaPSU)vK8>TV6X$zom?(XB+by%i916KKww{;yZ2AS0#A&acvn&Wi=bf; z_Sx;KjqEn$J4_qm#$u$ukDV%&5{jUP>w;)sX%DaUb2Y-lj|nb_9{cd)r`Gs_WC5e{ zE+o?~LW(7+I8(m0#0oZAqcbssC)hm7ByY;mM8t#zhg|9OD-$Eo+jwoMg8?;HQcrs< zjJH7$PpIO8Y@sev}8MV!p{NSf>G&?3v!4)T3v=3_WJuT$51d^*vpZo z|Bi5M)g0LbhT@MYoqj{K7tn)4JYp+_Xfk|YRY4pw=Iyx1J~%DBV4S)2nTKA`Z3!u% zrQSrpPZS6D&9e}(-Lqjt-ps*XbzJz+{ktA0c@H1g&B6Yy*;@YGt z-V;4tRco4jKEG@D4|LYyHK{P_NI~O=XwE#t^2^&X=oCh9bQJSqT=0hEcOk|Z3h7S! z*<(R~n298mKqopA@q|(q0n2a~SsnkA=@03jhe=&+Uq8ifKFrsDrrk&K3HzG^u)&)<>(NJWOi zKh@(qu|m*N;YLR$+`rX>7b+DFA4VWKegKXiC>!gB6|UHpNN0;gRy~IfPc_{|T-gk& zGUzfQx6_gb5i>rE2mE{_*okfeIvCXQS#2V(uYqXC6e)nLC$;9ccpyloRXO4;JU#d& zFd9l*@S*VjFFo8Z?3ac!EyG<)9i=#+-OlX1bj=v^vLIIAISOqts@}WZKMPrILamFD z4>SD9v4pNPoE+N-N{g^s%j$coEh>cARTPrMdnaJkBC2;ZnlK&eJOQ2u0VyJjpv`oW zVXd1r@{>4um5~~{j81$0*Y zij_G9x5wDLS&S5#SQlA~LH>lpJHrAP85k--`5fF8HTx5~8zL1P&KR6r|5l;0)_(>+ zWZs*Tr~wD#M}P5Rt0bnMFLWO}*b4<7F^1&(pBN8pWD5ydIk{zAv5+_b_{6=dv-hy1 zWKBB{802s@esM4Q2^up$GxSsBUX?1$%T>^X=k9 zZt^IE5KDuCj^t!0G!}~+>*AVuvZte2riW1{p8N!nkMvl-)jaM#Wv3cCgH|KkYu65^ zG;a_ciNke?2zI?D`jo>7s+O{BZa#czb&n<^2?25(lUkF_JWdX%Lb8!k1JT+MgzBUF zcXN9UYy$Q6qBoY46bIb8o3w}vj;$LGIXaBFPJfm-mJbLUDO3+SyzZR>VYsfmIkt&< zB=RAiEyxxyiC(w2VpbL6Yipwu<#K`bZ%B~Txel;QZ#Mq;fzVV(*^)-q*Q7-b=8SFt zGh6V6p)w?Lgb)gVaD3SLfLsDK5>LQ;rMSQ*Vq~*>>3iD6gjdctH2?-A<~0HvB>0s5 z%rTw{X@P-(Va*dIFID(tG4HvB8!UCzo;xphvLB+yFaW^1mX?;7@CFG?z<&U*$wzT9 z&6Lk5dFC|tvZw)_8-MU2tPmavATIsW>yw^OvUiUh<$qLBv0k}4JzOP`(0Jf+8HL4V%{WyK&0AFGxwWab{7E~&LI z`Z>Q0@h*{hPu2g6N<$%x$i|Ixpl6K_VNyHOf%`%?>b{|6Sv<0afj+|p#pSg$6b`(E zbjZ4w`@*!1Tv-fSfJWXxRD{NHm=7OgNfeyXCwQK{5ceAe&|wuo`5 zQI+t+^`ySJ$Cz<9)yVAF&a0VSlbgtdVy`qeHBC-QIcIDP)dn0LGygCPePMBNVsT}x zQGs{|mfJN2`9tuM6K{IxNi}k>bonDMADST@8@TW7>?Sa<`7!oy<0y`Kr(&cf1D8;X zj;XdlU+Z3ee(#+_GL%AYe90^}4wo- z)d_D33U1>mG+2x6!ei-;-4gUc+tE<(Too@TVTvocFx^WGkh%A<&f* zJWP47_*0qkR0;OAn+HFV1-LGRIBAcBJ?`{ZFmPUwX z_(R~PL@w@R)5|-~~7~whd?P^+dYd*sJ+6I3=Gz-D;0U>e79Rs3iko`B2ypPKk}9003d*9-RyO*Oa?o zUc~EI)!81u*1HR0yrd27Uecy1IDQMtsh<3gG16b&fp}u$74AG9$Yn%M})G@7G{qsjCZs&+=X()0ObRaI;uADJPzDd|gNEIp2j{ zU$m+pwP)+%u0w`N*CeJUZxmyc`l`U}@VE9Bv<@VZ|!%SCW@MbyBPq)~3b8{V^po&!ECt1%z5Nh^a!j&lo zlce#iz8Xs(mWw^xsLwjO=*>yv%WxmH4kkA%Gf^$AZ(uA0K1h&pEv2)|Qp5zNa@(~ALtJV46$u~{77LiTRE9YubtZTktf@C|-0`F!k%qf9sK%-pT9;t(c_CBu>TA$#o_nl+dGlqF|^3cwrni=|^k|^Z?@j>b( zxN}ejShZPgVeW@tZ^){cP#=Z;F}U90@14M3zewPn=P>60A{xM>q1sGJ+M0rVArf&4 z&Mm#=a1_YCOr5=G%~0zgWN}sMx(uTLQJ5V*FOBpJ%$Z7Pwi(hc3?fhBWC%z3SlY8~ zA8TY~rP9kPxv#+aGW%tQv_<(sAX(bDr9(Pl%u6#h1*dLWbLZ04TNgl_Gw-ODLs^!_ zvGS8iEktby$_so5VUlrSL4hQSY8e@f00omH!rB87Q(vEB;v)fcmdc~w1qNM8wFTkk zu&Xz540vV&ak|vrx9fj%Q^`W1}^%%=S_)Rq^#{h990UP#PCeMSh0Yl6`30kT6}WnSI^+h-;CR8}&q+zNZP zui@Gy-pzJ&hO@5&FGM$5)KGOvix^dyZ^A?~PGn!)fOHF}FWN1{KJAH*7$6M2!>_jT ztYv5&k)FI>Ges6M7J5tTYaVP>G1DRE_N=V?86G@hhSmtN|EgJ8!lYqoZ6#MV1tU^0 z8l{t;C4?B(m!#uUzWuxweZg(}8kihV5+nwf z9!S+a{_V+2iD=aP5;J%(Q{xA%@7az-GKDz99*NXKq@F)O1VWg}L9>9{!76gU=|1x2 zK5?XAHCIZ%U~J6S=X^Y;v*2UF#7Wd8&kV?rOn(50sbCikL`Of>6FE0=lZl*08n^fF zDV&IJ%|%HY{DsnNUfY(4=Z9V>H7Kdsh8P;m0f-nz4Nz1dwvjy!NZIW9Qy?kS)n64O z-cX!6{-XZGlP6G6DICSbD8$DhX8>_xT-54kSZxbxryr$a!d`YZbxIbqxy9wn!V7fH zrz6Ol0khDjGf!FA?AnR5yuMz8naFqV3+O8mV0ok>!5*?p!t7RT?0nPvUdG(y+cA5g zzJNEKG}_Qo6$4rYS&-#uEC!j2xRJ*iig}TntdxFumascNu|Z+vu2p6s1?v1V9ET?_iY)uT`az z1F1;BWsv6*Z7(tLfF+(MmXf2D>&u>5=W+UyLyw>f&!0_9X3RsesWyZ7a=rrbg zl$!amzhPD*-pC!)Wc1fh24HyV^fctk*g8^#UzTV{q3mP`hb9OG3d+~S#KZ>=ZfOVr zTbIarvg|7EMM@IuqL+CQL5|=KhkkMT)XgrI*N=K*Z`;P*qd$A3m4Zc!O!@+q05B8d zystS2Z3km;X>de;+5KSAn_K?X4z+iyKJa-!YriT%7ce&Z{P|XRoBD+xT&7>xNg&00 zQ2X%2!nUoJIlIuV>%TFd?%x(=E+sAf6|o{LH^*574B~Jx*I#dm-Y=lqO&+ZJblKv% zI?#>Tk*gCg0cFBL&Y*0oeEP!a{LI4fWZfcriS-K+EeMUXmP9I%3BiwG|47`d*AIZnl^vwd-3o-h*2#X$oVe7JEHy4Gg~5cx38!A=i_;bsL? zwvD6c8f^+un!~@c0D>JAHc8z5TP217O7i#qf|NF}la0(bG3Y+YU5LU@N{j61axj~oE z@8Hmoz);F|;1gU7+Ka#k*3Ji(aNV~sFEWL)*WT9ics>m2yP`sQl&`%E*b3Lqm&YeV z%BysZj1t->1bq&iM=y0#Bgjkc1`=4HnZ|e+o5I#jDox0;P}C7$L`@qbagrIoKIc%Y z$JioI0h8-rAYhZ?xD<)Ejah_R2|hS2aLwYF*n0;BGd};rHM$*{CSjqVSA$x+`sdL% zRj_5fjbAVsKCRM==jVfBU4Jx)XL{8^aI2hE!u zFkJA%#XzU|yqGJGUg$K2RP9Rs7p|zt!+0ZkJdBi>cG5|M`FKZv%G4WVn{p z#QRk#C+SH4ZerC58e_19?;T3jiy0wtgoSPJ7BDQB?uP&17=}UzZ<)lp19UUe+RG15 z1ws-az_cpt#^}L9ZL;lLh;>V*ZNH~Y1zj4S{DryO2?+j-+rOMZ?|d-5WpiG6a~|jw zV3yU@Rc;0h=)gD%u(3|4n7qP{(~y&e*KR$vi}5BRyXPNZ#*0LRZ3~UFmDL{T-E|YZ zxRjU?d(hh(B|y5yV@jEE$ZH6)K=+U4?8PHk)?t4u`B)Kv@v|3m>8X+$laB~hSfckI zb$z{m0joGpiu!RS>QVRtm82ykTE#4fdO?MKz0JpT2r*?EED7&nuW02fEUgv{>A>HG zgX-FAHYw=E*C127hDNWjJGXrTk47tNH_Q&4oJd+g&>?caa0#1H=&@dsU}rdc9`%3B z=4gko?hsvD6M9>w}UMdC)?XNp|E(WSam<=7qKaV51rL)q+1J9qM`{Vg~S`LtAMQub+c5q^s-Lx1crvk37OjX5t7oQLw4I_{v4L zudf31kIXGf$1Nuc(UIthG>y#@2FE{XSdu6$epQ>Rb}&Pq__y=o2b)4r$4m^& z0DdxF@boj zY4Llo;%gl{HgT@ij*gyNh{UGhND~&Ac<=`04v^+=xBns!quOGS?GW-@s-D{@LraY| zY)%ZiPRj$-4+E9H=T;k{;T2&Wx4EAS0t9xsX79v{%#|@(Stx}U;<sTJbK`~~PU(=bh0 zp=C6LDZlHaM=sP?gPmEEm3GWt0p`YKO_;<(=p{A^iyt6V8&(=mI!x9@5V&>z<8D^X zwhHAG=TlUe!$;&hRYAmylMWwPV{pNeq;|DKtrKqlA3C|sNtXF|%lqDM-!d*2ORxoK zg_KH$Ti3L?+}gHJNswimI`d zl0S3^Q40`7n&)Tt+pub)k93r#J;0Lms>hdXRYg(uJX@8_Dvz(PF+z{zjr9%=2 zftF`r)9N(UTfoH_!F0-YL@W`?)s)|zout{EU1Ty3B0>hb zkxo{$Q~LaQTBmwU)lit$6k$bXbmD{u`_D71oxQz{cMca@osC8a*0a{!6fj)?S^zs7 zK?*mJSkUW`%OeUJNEXgZ{bz7^{qwGXV;q1fpnG(5P~Jfb*}To!GtzV^&;dRO1TyoG z?^1vyna;oFY2zqPShot+#lAlSN56x2K$6w`=DJFh-OAZ_Da=&lG@(C$yOZxEDxNvA zv5zeAvkoZ_p901pMsS;2qUIH8{<*@PemZ;kX#MXxwRmkeh|YMtULi7}*@oIfFg52n z1tO!@&K?QLeEe(Cn{=|HKt~<}Xt&I8o)z3te?jP9g6Y`H%gfhSkx0&d1q29x3y5#O z&Aym_LLn-=a}{Shfw`wEGtPuh?)u|Nm@kZ;8AyEUvz2<&VMLXz4x0P^?TbT2NPkXg z)=F6X-#9Dtl0IVr7D)fFk)f6^)ui^*&MN8#4l(ZQ-H z7`EtYd-$`E9?EqjPZS3h?WY%U%riVHA(7E(KSXPcktwLm;QYpj=^eTXe-`uoF}>n7 z$7Hx(xeDJP@3)dY*cS?E+K~?llkxw6wwz9R3{_W9=tFgmLB4_mHia-Wh|^N@BVoZg ztnJE3=5K0MCu4^4&|gJgA1=O}vRiCvt62B-n{vtPZWqn#@ju{iF7uEu5n~3PDUY;N zQ05MSQi}bwp*4=ugU)k zb9Gw4c~h>XB9RZR)|nn+5+o*dlkeOh1lf#A(p34d>Vb?iT=lTa8<-jMmtsG7oC>%Q zp$*;K_y=zsDZvoxqZ#k6aw03-rTGC6Gkj@l-pvH~Qnl}sm@hUdnfnpsCT}V#nv0(v~5 zH6A=`qhbiz8bHK8b!MrD{Z5v!CB$s}+Z! z@}TKY(WHxHgj?z{0sWTY=i>njc08?w$Hvqt) z=LBBiBCCK*j8z$f?VXd?MpH_@SA zvg?;06c!n2zQ^{EZa!1umw$&hisFAL@hnP8*d2!4SuaWMPUDGQ9fOSDY~9zwl#U1j zc<(4ZUsCdGQC_NkgrmF8t?dX`w#W&A_=SJ})P-HX8vBdh3*w138$ALtQ;_4WwOT#G z3#ZE_#mD`jLh_pp=Dh*OJzz*{$p71Hao}OuL={#o4>pun zfhqyVf*e?u3LC8!ls*R^F{-;IUS!^^iaS@MJSIL8`Pdo-21pb4I;TSP3cf8{~6ck}j zym#aIEK|xAg0in%y~^D8G#9EALNxuGmx_Gp$S#8>iP{BhbFo0XwpQ!-9O_Zfm=IJZ zsDNoAd^=JcHYRz+~>v_C*C@Db)OMu{$4b zu2w@c>?Th=^X_=fdK;+ca~OGntx_?T<^zYS;AsTUK@eL~;)%cv$jYmfaU}%3)hh|q z5JdVD{*%dl@^&pw#n-%g=9V!g3sA?8iH-^xl_XTRsi*4-5zqMN?g!9$8_$z5vN9s9 z@Dtxnjk)_^9x#XjNzm94K*aHB>cW+VxU%zyw#nb#y%jY*ip;Ya|FJ$c5JkudCWHo4 zgcictQI-L1fo_pAMp*;}r1v+r(km$UtW%?382lF$0A*NN#ljVQJ|?L#->(d$oi zG+9eRLt!Q!9MN}3o}|g>lErll5KnKpO>Cgu+e+IrGT>CVuax->n< z)vedlN0$pAzI@+Cf1wwug4{H1kw)kN&8Xw~3NdAEvvmrCNa!m}?mfj;nVt^oP(;Xl zclYtCXt=(jwKj*9H--;5dqqJ$&dx52bOa=G!oy)FXPnb%@ksWHZtaGifciHx%hr96v0hLGo)Rz&%{~7PA+{l!9M1XS~8ql3Q)SLP90{0qI!*E`^9#%kLoQh zW$r2Nk5sL=Q<|aNO7r|dtya(Izobr}G&zv3^gHo#aFoH0hz<<6ndX`1;T!K}2*;8H zyKy>$`9W4g+7~(!&X6^#1+agC&yX(!+}s}n?mt_U8L?1a?7l371*Z4)SgQd^sU zdE%raHnaxK1*k);?-M=2E`md?E{oo&4}pmU!PH+tQLU-xywqHE;C(+^~;4^znF z=e#eV=7(S6ei!{2yU2%;A07_OAXOOMGO3w|zlI8gE}Z2HkgzTS7IyYu?L|~ZHe^lM zx=9eC9yoaLvSgBJ9z_9EtZb4DLlcQp&S;@B^#*x=VHg9(5>M{?CdzViR;T$pGooE| zi=4h+;A0{JIsMJu&z;V$2Qg&p65N80KupxZ-xqNJX`LxzI%0dk>|s z(8PTikYCr&l`XKF-84%x*vRaKVv=cUl#E;|HWZ^)MV}qN^EpgJ?$#6!7uQ?huvGku z-iqvWs2-K)n+_wkK|BG3RilN3%3)1!%B71a?Jz-9{HvYcJG2dk$M*UP-a9ds*F)`e zxwzNTMxKoTq?3|fwAorD%6fAV4JKzG=Shtx`ujE>NJG(rOcZ8|`EG!H%F2vKcDRr~ zy#JE3F#TeViq_s(Z8DrbRl>LY$EEu(rS3!t`m1AKS~);*iB-?TyoN59%mn$#dxWd; ztT1N_D}opbp3_MPm@t#35|g2MAS2@C{pYEG*j9jbQXIk6NV$WuAaMq&huHz}T1?%| ze!vzUG>+Qdd|S*|VY$-9h)}bO-@+fa<(Zkvb{XvoHPKOqn~}6m-dkDpecDojG(LPSxa)Ly%388P z(5kN7>ZtjSx~p6V>o&yGoMRZwKaW`NO%>Z5&^$6cy0m!w==@B%LhKUjhpm)ac9?2h z;Plu*KKcyg*42Ez7yCsq6YN#n@&%4f)DH(#x=^iioU&#q?mb`J9_zARc695v)N)u* z!E-$`AmrAXocniMK{pS>wzu~R;w+G99IG$~2^x$L4b}y}zKgO(V)cR`(SHU&`T6}G zxft{$Zq~n;#=)_gJe*^wyXq!Ug&_2W@vPWL4|V+?BN_}c3R|`WSdBY|)`R_c^TyD} zDOfGhJU=}(bteyVRX~9z*7M1O6$>@A2j61^QfDUw+`l?>gtqLs8RD57IV_tTmlI)H zCB?z++XrB_Gyhq+83yq5IeBD7p-#atxQVRpFQHiX2;aj_2P()#mN@yPr2#j=7{T3a zbF1yXAx*;TP$@2k_OLUhLJD>q-!LcHQTnFUaoi@|j)p(vahBqaHN=m>z_^{aGhOs=a>8nm7qc^~mcP`kUxie0@1 zNu$uNYu%|f643&Pma=vGH_n_+AY2oZv_=_L@&;#Y-H8yao+zb^% zKDn!99wwc$sf;HvAI%uSgP*M>!^Jb&ySwEM9Xj*xnC?ISOP4g|HCAp^=KHTt0xTxE zz;As#9#}vEj1d}98%;l$SSz-=F65#9*;jeoD;8E0m%fkwUwo7QZQ|u?2=Kpp4n)yT z?%WSbmE95I4}qt7SKtzg5Z@mYO5Cgo}*-=pVZ!C`? z&@YQSXUmo?!i~FW;=3Kc4*#JFk8(iP1sql76bwTW(Xy$e>?O<;2UCE9Gu!bl+`z9A zN!i5!L4gdg(}9b`C#q%HmFqIf9mD+&T$X5B=a%2T|MpbjRMssh#Yv&uy^>~xT;`q!`L?_>0b^dCH>w#Ia< zQCAQMlZ#=sL#QrKuS^l&w;taYSt~!AQ*y6vO~sMH{Wj~+zpBx!4_h^5HDR{Jwk32N zj%o+1F_ZV->cpdK=q!LkWY6~$IT+^LGbQ^PCSmH2B=hT&jji{UicC-S8``T|kDfMi zn5g`M-5z>cIT}d|+9NaT>%Pfad74>Q@I7W`@;MaNkt27Ns~8!vMMXltv#oFaQAj5+ zmRkrgGc{eAgO&~&*Do=lpwH+iocl`tAPS`at=BwX1rz27WIc9SF~=q1(Qj|ExVf{& zV@US1Q}M|zMl$Salh1k)5CpRdOaf3KY<%ojBRaLNnq^$*Fnniu%T6kpuwtgAh4cC) z9@3h>)@Iu=>Iw^;e*Mz}hhON4e3^J%JCu=B-*fXdkY-8AFHf`h;7$Ir`{|j~D+up- zW^%g!5t?Y&H71>QW*kFn&^cgtcM#C-Bi-#EhOgSk9T2qRf7afWo|uRsiD+mH{$K>m z5Nvl~oiGi;!=r2F--Rl_^OL zO!IzttGoS;=WI=KAR9rP#WxPJ0Mxk=2#6T#fA+Tc^$`&X@}hN!WO2A0c;s2HDmBx+4OE*^S8~SCJiv z#4-8gW_C1Ba`nlcuznUey{E)4U;6n(1Rgy|h3n}L@1hm;Lwt;wm>5h)NzFgu+JRcN zr$_X=FaR_jgXM7pQKX?7{oBV;+uF)he)!5>zxz)r(S-C)y*NtS*l$+`I*`+M<@0BT zyi2?=hC<&t^LCzL{i~xi#zmQxx{m%|aaS4-<@)!h<$n@KggTOxC53RvmIj4n&t3?H z#8{`sk}NHhvZZLT#@LBN$*yx0T25(<Ib<`BK;j3%gQw?~$Rl0axeQm>HSS%ZW=N(gC=mxLF2r&6?(~J!VU?J% zTaObnLvHQ71;TKrM|5h|F#zfVUTS48hTSNPH51h_xC3*7X! z;|{^IZO6AcfrN%ENzAxVd0=i!r-S<2B5{iP9Y>TQCp}idyhQ*fK|yt*p@e?AiAh0{ z&d}vtin38f>A_)*7aa45FUmd0Yh7ucaa(m+P`fQ2H8dbvBAS{*w&r*K?%v+H??HeL z1vi08fC&Ny+cPx`SAaHz%+l(((e7#Tv&u>ce4(wFcxr4Di8~DH!*vz;h({;;`!Df{sG#LwtIOj?pHHGNHuD^??EfVA^~Fp zI~(kCs?0v8p(3Sg5)!^*?pb~TLw?-cg^eC!sQx~?`_-D($7z1`f>U6jgvySQ`* z_8if09KAXbB^TMi6WQ>hX;^}Lf8*<+(l$y~o+Iix^TEQfm*{oWro{dx%YMFO(enpC zCdhbfk~6?uf`KGtFz}PWK?=GTFyap%PI+e6$j-#0WP;&pRYNQ1AAZ%frqOx=EwBv% z=|l?RyxBlJq-3GKzy1Po0jS^=$Wn$>uy3+yZJ|h=6D%()^Br;84ehOm65KG~%Z=sh znPBdustN*mZ@?gD<9!`^`W@tNzJh-^7Z*%E(a9jpt)+5j|5;+X0dY&+kKm&ZK%fPA zze@I@Eez@BUrQC^VfKKtjixZnd}ylcE?>GOfdieUybJG^cepT2H}SRVhsf}UTF-_i zpM0VpLY5mwGAg%QVw7*H!;%RjRdfk3Um9o+dXi?AEY6iGft!mv(wRb0AINc)jLDuH ztGlO;OGl^)Q{iXH&b{k*P_ARP1DSpP!t@mR*v>t{`Jajm#hKv14jJ#?KGlgk3+_Co zHwcYxnjxo9(;W|eg)YM!OOUYgQtk_yX@6w9%JfF)8DKed=({KyYQHo^UMKhqn9fLe}}XlZ+Jc{`zpJ>tLN@>8V<1t6N%xa#W|* zY$O^ymM5)Jru*!$j>l(P4gN++krVZ85nCSi7dUd_AMkYn?L#Z|$~mL$bPiK*=3${r z*}^W!-|-qxt@)%9BOZv8VRWJ1h1AI3Jaa=E*7`6GMXuZ2{0b+=YrQK2MABd7eV8_MjvAf&O zMj<()Ro(WY1XW{;IK_8xHgE;xnU`U1spRZ@_oD+Y7hO?HFX46}nq?{F5J z`gJc^L`ax*qH8Y(kzOphYGrdxNsrbxdN}8m(hc(8&Qs^g?_LN+>tYJMSkk zquCo@p29k3l*SY6HIf5x3E;)gKWTxOqwTGAV>8AAH@si-(-$2!`_}Nq9uAUN-CXdd z>Zv_omVl+AL(j9&7qk+1B++M3!aw>3#r>f*4FF;$=RJ6O;;4_8aFej6Gw?K} z4nxxeMUrD8*klM8`#Dn5bUqI^>IbT zH@L}mILiYlfIpFB8?;p;y4Bh@X7#h6_l5a0M}aHN=0#GSmltlTO9hq zY{7u27@J7bAm*j5O`S;Y395tQ#w<_UR>-~C@HZ{bHHBvLwF8AZX<%s+{$^0QB?&=> zh!V5z+|W&y*E8ziPX+$@pL(@2^|N3E+-i``aK)JAZ7;(x3AslL=KC9gc0)Iyn$p|Z znXZ3G;n+5|_5TPEjl`L7)UX^qn*Lq5i3&zE&%bEkJY(~rd+%9J7_9~j{!fgDl6+&l z{t(P{0qKCEk7W!?If-hPy{%A0owtf$w(792M(s%%bS|SsLnM=-5KkEph8DQ4Yc2JM zW_H{g&ut2Ajp_cT@pke2Ypu+Os~Z-!oXa6#Ebd@ikH!~C*5Y^2PYs)EDGFFmTPX>JGON4WK#T|My5X5+>_gd4Z??X&$zk3YOk|G2Iv{#(3rbCp z8cMa6C3IdXZjF>{M5E%f&h7do=4fUgx;FIAiBAg`{Gv)AGoCsZ+BW-UX!`T#eST_d zNxyHSS!rh8S{nHU>k%*LxxYeKk>wJMVLf8D$*JAt-qk08AppogCZc*;u}%6`@!?5> z>_UN@za{vtx=L3tA|-xjRGpu2e?26hb$V)aXTJpMbRU(mYr3ydR~q4mS`_3?c8=xC z!TGQMGl%cNB_f_3KE#U3%1MUVm^bF-NsO(7IEu)J@9jl!l4$ujf@lYVN$av7Efh7qn-;}0;^QPuTABanriqm()Hg9*)*It2yGJEO zqU3<1{Rz0mtCiJ09{rfj6U-G2Y^{X zF^(B9!&PwGwg-ucJXR0JDNw(Sjj7V45(CKg<)=lLGl9!EI5>c`K2gps1j?_)=_hk% z^<@DUo$==x7S>@Sk$f~$61c6i=GY#on8R}8G+o#Ue%LT{!;^+ORX@wCuP%7JT{?#e zhvpIIDJbr9Zb=lFJa8{))9)--dc_dM%rq3H)3A&nQnAS7LWb*$L7=zbps=hTY;m}p z3ITn5NoJ&pRjui_VaR*h3XV7UC#`lXZ-(&EE{Cif{8Gal*~$>b!FRp-B5i|N9$x~R zCoK;CFzB58&Q91a`N4Z`FCUW0EsJ#zqneaVP~eT?jKh0qPiAmi9}zJ>CzxYZ&~Q|b zm~>_{-6Su72aO#y?80lBs?jXsl&g{7m(dHa8h|Qv<<#vEXWj@ts{)A-0Qiw(q6`HpT7pw!4 zCDV|a0C+nww;=HvAK`6oz#N9%JA3$xSc~0mqaNVq%Gy#rNB_Y$#^s!EIbBA#zBO5iQjm$lWv6^ST zO5=(3G|LQmA6+MJ)POb3vBPl_f)5pKIJP!QOcmNZN=-|<7w|`!dx!nSi85@Xz=<)t ztY*nPS;>}_VoctSxeK(uv~jbKzyCcK%688PEd2DL5M1lypM=excI{WKm)+}yiFRT; z#oHSl%Hr$eb(-7PU{3ZNm7kz}vGQt0Cw|KwE|xD=`V;f6MY;)YaN(K#jk#Aud8HTG zy^B?yEaoS`f^~G%%re_C;GZOqL zZK+py(}d>_(Td_T<58smoQqet z+^?bn+b<*cfqJ#{iw1oi6Mh{jN}oQ`q={ZSfmCMUEx9n=9wMz^lZIZRo}J=sz&JiEi{z0{t#8MqJH!o7|mODuOXMhPtHQTdjHA zX=wMjM3{#}dbca=W*DxM�0FM9`!dYDSP{D9z&$1{{#l!gi;h->BpS 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 literal 0 HcmV?d00001 diff --git a/images/qrrestore-finder.png b/images/qrrestore-finder.png new file mode 100644 index 0000000000000000000000000000000000000000..d37b5729518eaf567501e2ad3783e19a3358d998 GIT binary patch literal 2970 zcmd5;c~Fzr9*rzwLlMDf0Krg22oyn9AxMJk$`Yd>s4S)|LJ`X?rIE;zAcSHIA(1u45c0z7o9VQj_Wk$f&7Awqe0S!4_dDlzf9Krn zW4<10Kph|e08l&P>3SRh*c7xewkXJFR1=GE@+bO;>tVm-@_7!YnEFEV^6RN*1X;jL zkeyH2D5B-7B62;pF>KY<`(WV5Q)jFCTWN~#x@GxXfIb)nQ20N<75UFxM)n8hbCv9v zu;J>1lO<$@Z3f>NuQiDhC)*Sdi?|T+V`L!P)f^l~iV&xHh(>2T2y9BJwkRkJ?#_hr zr`M|pU%AGuKTj2@7#$kX60vPaU4!UG-p5$P>dNnTCC8JBiz`O_;W*YyyqaU;0JYV$#BO>DuW_jd!svc6vPc zsTyby%PX$R#omGk_aQ@BjJh^j^-L~vk|e>~P>)Iaw8F;sm%Z0uO1CLfkIik8`ZsY> zD3R)ZRUG4O#M~isFj(ypnz32^^poJe-Nen?`(kz&m1G_es2tTJny620*Ab4+=^*U( zUD}TYnT@sw1zC?(h@w}Wc8pfEqoQmx+E2z<+LPlEL0l*x(=%1rJ!iv_?(I(hu$;PP zG|YV2-hhVlDi6<+oo7@8Zh1-b*gQzNX4?%I@CUqh^{bD^e`+@QwxZTTa3q|hfYC<* zt|X%Dp6f2|k$ETR@G3o8p@3dZWqr@q#ZNVyCH%5WpA1%Z&jlat7PvB*4UJ zNMc*VKtP$Hl_2GIt^&qXPM9Po>}@I5O^^%a%7g+oq-UDz{H~QXkZcs-0DFD`E-+B{ zT;zD`D8GZI2-80PI%c`MFr`DL4s2y(CDRevlh%8REM3Om#hfh|@89w$FQ&7-UPu!lhA>zjT>!N>V*l%;t+ey?CaaOXs=w~z~j2P6sdhThGgmKz! za;o1YoNsYWbdg2NbaP{-nX6S};?rBit}~quC+5?hYIS! zX7rs}A*E(Op@eYlT;)W37*{%|R#0Cfl5R;!Ov4Ykp_3-^p6`A6VWmtqFYYiqz>Lx* zN_HMv@MegO<~R^m20_Pt(on?#9`_i6J)shPtK=jqIdtnrTpUrXSkCTRGnNiML%&fz z{mTPiwBsiOS?ksnnvIK}JReh$D9uJS8oow`(?FV1YW9kcNafEeGC z=R&N8ZSChQe{-NX7gMDQ^5-v4E`4?~!bhAS_LFfmTiB_R4uQqy-Bms+3NwWnJfbA7$#>=%A$h^ott=Eh%F2fx)#9*Rau7J^ zt4p)b)^BP@0k#$`b2HhYZWAJ@hNv<`QC5q@l%=FU8=#c5B6C3Wf;pSjsNx4Ii-BtanL=+%@AJC~VaX~Zmt;Fi=q!+btXz=(G ztWem)YZvJgkei|mo;m~cG`V{xl{ zfY}_~iv>G2g-mlY_rN37?qk*3$xwq!i0aB@gx#H=m%pfyl)NeEB#Z4e$~P_$S${-0 zsq5~}_vN!L5zwbFWrqI(b$AR?}~aH`E*oiv41zw=c<|YTjd{bIf1_GpxKV; zeUhj5>nVe-Y(;-oR#zQYIaJF>FM|5uE?aqG-P8Cw^@DiaWZ7EsmIXUAFyf!n1!WUs z_ii_DxVEc@dH{$$tWjtDn+<=dY8B8Z>$#B;!Pjl5$E}r+MKS!9k9=%gUjyRY^Q6dA z8@4={bv|x|sOxn2-=2(YH`t!&b}M5PrPZjaQj7LiYK20G7R-d@(n**~juY0u!FYU( z2KUAFFg`2PedR)dlGaiC0 literal 0 HcmV?d00001 diff --git a/images/qrrestore-minified.png b/images/qrrestore-minified.png new file mode 100644 index 0000000000000000000000000000000000000000..53b3de18bea153839369d23f06a5f75c0a4dc783 GIT binary patch literal 11915 zcmeIYWm{Wa*Djp46xUKHQYaPNS|E6!xJw~uaCb^lT#Hj&0>#}DG(d1|OVMD(t%7@T zLV=fF*Zt)_-e(`r{sH?-=2|mzu9eK=9OpQPL}{ukkPy-l0ssIKB}G{+0N`#d0B}bQ z|L*O~M?hZK?Qjn!tpvu$$DjY9@f`qQ0w~E!fxYH-vu9DOh$=Q(A`hT1L{|C{f8qk@0F+KL5GsMmP4mF<=<-0w?@0gnlo3qQS z>+9=T`=1?tSxeMYn@ga=#@pk zWy27_0pH4|-{%5%L)jU#p<{-2dcWX#+UEF&;>_f_=i0ozr>aUtm;DvS$E@OY%!KGT zXx!%nSgJo{_Aba#TY7GLM9okH&}FC9`IIg|rLZ<2>z$h#Ld!jFX~a9fo3$w`vDL|3 zp5lScFc`|4@(g}mvBnim@p^&Lt)~DZeC;1gQFW))J+IYu` z0%}4r?!oIZCWcM{>Z({%WQxfL0oNGNc9USaR;ExTr7SFciq(rpxy{DB84hlnrrdf>n;wjLI2=?O}9Sh@A{y| z9?`$n{a?oGyzzW5=RZbmc0iExD&a3sf%+EAL@`Z4{o9ORLHGXPn^*YoboxcO0lwb{ zuiqbrcOAK&X`6uCs0`9GRo8bYV_uV1%%*7AviJ;c<#K&7a-nLNP)4~m4buT|^Jz_3 z$fQ_1p6mRQ;h1zgCBX0%$Zi-Q&9+Z@x+O*6Di-5Psy{_F?VekJ^5>y9&f^j@Hzv zggJ%S{WHhgzmZV`6)(YeTu#3(D{l;FS&JNx4W`IVI-u#p}?P?r*0_gf%RbPE5Rry6#V> z+{#NZy~SmhVGh5+xhEH*=8lEV&Q7~*ghG$h_JslJzT5}4qh_DQoJ9gahkT3BJ{*>kxi5AAf}h6~ z$MH25b5&BZO@l&@QV(gbwJ`bO(P^mR07L@Iw~qy2JD{x;#}Q%DA-OVJ+a4K+k_hnR z^Glz`oJ~d{6MG3IN6~8PRq^AA@C5oFK+}=?yt%iSFe9f|7X?Xl`xzgHp?4XK()V<4 zf9-*VjZ1S!eB+`sF#zyn{n&HN&GsQe03P-icrR16{W5k1?f>p3*zT0O^)NvUUH?Fl z{D9yu&hGwwGC=y}InD@;;_cM|UDh;#{5fIg&5xv8Y7F_vwPnzICy0_=&TLkJ##*}C zKnc^Sw5IO8SC6-#!DM=}{1IWhyUY zS|=VO(G9VUyD$%KL|L(`i`-HQQXbyFT9O}3tbHz=zMpkVjF9)2itowGI5IUgRi7|% zs!_?!YV|s)22%CN+dos5v*>$@kQOP>i)YR>8e?%3FaE+02x39)Pps8eiT3J-y()4T z?##HbN>|a66A?Pc(GX&-G&2vA+RCC)@8ulsT7~gb5O~YHH(FMpu>k!Rr#Ha zO^_wrlM;Z}oVU;67q8Z=lGyMg82)2T-T@;sR-{>VniZpI=U#z(J8}*7ZQ3V&Mqm9Z zSlbY;WLu$^G)RhUzyZu;gCdkC`>&=7<7eIPdbcwlYNAM^{lZO0 z)g@wUP0aa1 zKymdKWmk@-HlT*!32hv9QeZvrMpHe{dH?&sG11Ab4vO<2cj z{Nh<+DrbpqDRlz?e9F|H6#r!e&ky>s zmvHqe@G##GdY(|&%XVXGwgHdM_yG>E*$CR%p=@(s`}l;#i&Lefwh#c&O$=XrrSao= zZ$0d5|MLFycgh9%&iIEZJ-^`(mS%F;qaNO;0?Vf;2M(vQ4TV8hWYl)J42pC)?FS}j z_%lzN4Ph?PctPp-`9%JfwP@U>ziY|8a}2m_}| zlW&|JlposyZ4HQv`OmG(hf;UQ4A>#R*y&yF0KgRT-|X5xT<=72IVB+2n-ALB zCO|HKD&`Ds+N}4x^oo;wUp-rQXx1n#RZ1$EnJ?8S`%8A3$J?KM2hdd0k=e#i6&0YB z8VN3sv+OdGwAghl}1ggYB^B`|00Dk2HbOn{qtaoAnaib#o>M zC6{33LibbiG)f-4_qPP%gKDiEs1FCu*;8t-k3~=%f_J%gE+YbMTmFL3Q_QGD|HAiy ze{*19;Mkl>e5gz(bjYo5OXc+1m6TTZ#m-$%DCw=S1Q00KbQnxE~CVU^`4P&ibT_32y^3rz~kkQwlE z?&IIpDV0n*f*RdVCqp4S1ZDbi$){rNM1ZLRT7p$Ce`)d_0iofF{0kkC*|5}FW68rt zOnl{0o;a^S1*Q1&XC+fHTMa2MA+)n|lhJ=Eu8vEdO&~)tyHrhCUgMMApf-w2XOczd zf@JnCpuXSOcZcdE);Wsr?StFj+PB`zYCrnK|W`bj1_^ElWj*+j!4@Iu>dpJN}{H|?^H|| zXuCYOz+Pe;i!rOT4!7N(p+ zt0J7WVq5FF6FzT$Qom*P(Cou4`Bw3}VjU#|w_+6;Ad_L!GJ3oy#a2z3g5dDY6Yy<8 zy%X2L7))_zI-f?`WM~RX7pZRz*=YC)Y&r@@BUOoR-?ybmQ!xn02suW_lS(_Alm&Qx zmzdCjrLIdA%jf)!rh?v!0s+@Rx8 z43H*&58B8!Jy&Q5x+v?T+SJ9KO=rMWvSSVrKrp&6lYHe3ee3CsF~u_RX?xK z8hOS=Wo6l)T5z%H`vDa(@D#63q;<5enQ7f%KzG*S2C{NsXzXM>NqjSv?kxuvVVo5t z8W!>7*~+jD%c1)I?t8N3tL?#J=Z}?dINHG!HtjyT7D$d!s6?C@r~ka&7JHoYxaOFk zKZ%dXwU1Rt;@Y!(Lt{K}idT~&f+ptkC`*G;&kyb}@ThCHQ5q0kt;TNXPx+4H0nfYvucNO4d!FsSf`U;LI zu?f`4DOD@p67e>vd~R*%zshlY2%&rEu_Ek_8hwP5CuJf; zzqoBu=Wr%vCsITBIGA;^gGusbKIav1Q6n!+r&E!%Is$!1&`tz!)E#y27UblS@LP!p z_}^0oOCi!`btha>6!a5SJLf^~tr zSIN%iZSQEE8>n*xhv*dSlJgf%v5@REprK6rtkquBX^HAKN}b1wO;&;U7&ZOI*?m^3 zDU#F&#Hs01BVdyuf@dBCH z%EO~IY+tXjKd?wQxuBdQTS{|`dS1i*aU0@P4dY^jv*(tf&NNfA&pm zsg0dE&NPBoCOvvNcWLZ~Mwq(5OdVzI3ys5d{poE+$1l1yA;__; z^oLWaKvuOC%PybdjEbjORD?g3<4TNXbsn0;AE&A^jAINn=|t2Z9C~(8G+xT8{FKYM zBL6huFwhsFUj2r^|A~`fk+U+g)~X1F3fQ!sf96=UsURKA@M4lFmfEmTX}Ns~u`Ij( zA?#(imNoxHTsJafi%gK7k>*7m_k|}11Jlojb%K@2q%nqoi@Arwhhel98_ms9i|RE2wM1<_y&3BtD1v4%X`!b2V#wOP9d5zqek%3n-A|`5aIrk|Vvlsn>b%3S3 zjSa*7`H$E7vOW~0mHPO0l1IaIFg}&Yh6!3c|A@psn|g|*-1*k^?abJS6)%-Q;LAN0 zyWSBuv}od3yQ=q-Y1SzM51M69vn&chfqmcrF$suR>^nVTER0RK-4Zz=+bc%Yt-IMN z^w^g4XETmTOY70uWy1vy^iPXJz0gxtixeGqw!o5IvJZB!H}J7t>Ak~mIg^WeRm80o z$@Eb2IY>W7I)-ocXQ)lCT%jxb{PpQ$lW(m+>eH=!X|u~54!cPoq`8!x9;$NBCcz)Y zzG8n$+dh>4@-F_3DaY8tpp*O*`D}AHD|uG*j+g;>i($;bM5hY(qbrA=JrQJ?Qg?6y zmrmpyl&x!0Jgt~Rg?a+RfLz5Bfy$r0p5zW#-)oL5FwG6Lfq-AY7oee2CjK*xAkIn( z^#0-`9q|(ATg*!ryBXN(>j@dLI+B|?4tn#2ote$cyoIWs^C_1Jp`H#;Gd5IU8Or*n zx_ze~-YlXo0GpJBB;y>;%!c|5obU}Ek(k(tpyK!;i)p@Rn4QraU%SOaO%Do!kw7Sw*~=K3>&Sb(@wy4>Lrr zltfuc-Q0*bSp(v@RI(RXUrE{4AcyT4L+c_kN#k0%)mG!oLZ9sgk6BzsrJ`IztG&g( z#=_$F(wvy>e99{2kNK8qOMhSrm_NySRN7wz=`2z&D$i+e>}LsTpZPs9M4WA~Rr?tk z!IWz=Jfb#5XX`v$9l<_Y0eS25i<35*?5pRSve-joY{1iJzJ0aj5$GK7+p)&d6hxOX zmW^y)FFpt@kteyr3y~UCgasL0EOsx(9Mi$c)!Q7wQx6SYU)_UNF{Vz5^%T=Rqzf8P z=d?HG>$qNMU3iI7I0M?t3?3h#mbit;)FihIeobZ>R>vv6ncTKs`ph~?oUa36KT7*L z(|KsykM1zN+RFngteH&N$Cfya2vbjwu;T&JwjGZML}8428%&)2{hd=Ysj$@UuS&kD z3^qw81T{LTWM9ODebmNFs=ec#Z7`D+xH=2dbDvs8iUq&+dw;m^0e}#E=e$!tR)5%O zs2>z>alUu&KRJ0nyZu}91>pP}R^a?&)J^}B46OO0j0rgNb~z`J>KBnBel_U1-7$2RALu|Qgxk=v1=?FvQ8ZrpX2iej6MKw45o0Tux4VszlO#fd$HOIv z=6EKmwhGz?e6vhY2XSLwC!X=VuB(Dy6cjrK=&(@#FZ7;A$2dP2faCG+!~dMrs*754 zGVec`&)mCP9p3*jzBhcU<@uKB3TsEOB=lc{(eLOy$IBjYetpCT{PrW7*=m8zKmuwe;h; zW?^`-!4|J4BBu>E7KwcdQfLPzZF#_LSPPk-K2V@ZENa)-4v0B z8P;}(1X{Vq8e6{!vTxEpX9@{TY(c8U3uXDzI1aHI?FlGm>-{E>qx|h&~K-u)ISF49V8>)iwMTz$A7pA24ppt?#Sd%-7RmcN#m~9$`aO@$5KEhwi@H zLK(V6XE0V}K<88nf=sv!C@0(c(g8a))S|*l>l7lSj(@Ghw199F5k~#TMMqf~Q)& zzp`hkMe05`2@>z!t8lg7S4!|s?xa&y|M>G-k??z_ZLO z^WEAn;d-?=w32S&SoJ3QjWy{JnS>aIXn>_%!}Oz@?HhMU{a13n0l^|~o4KZHuCltH z@Mx&X>Jq)zq&CAQ#%0sods1C}z8^6>?MAm7G%b~0S;OAocM8fVDCy}F5ZbN|>j*7q z^V&*UJy!cC^wTJ(PD5P~DsJ2q84&?_qM1r>(2BtDdxL?q8PLuA$t|L-jvCp*Df1eo z!ir{M`PBRTF&sVu)jevk4_e!HQF5@LWkFsrT#N9r!_jxs3rny0^FQ&Qev^J39qPGX z>&8c>h2V#*dQ!j45TgB~)>1KP*Heb7K@orbDCnwZklQ7Yc z|CLw$uYgdB_Fg%AQ_r=~YXZ@^XERGT5^vlxJ1T`@st9XE>lb7)v84j2&H3ekxVn|5 zfH{8YBoFDijT{=dMjioSR&04*=eoD|P3>YWQ2NlBSE${dU$}k z0fztR>hw2pnR?uM`1{n>#WAxw+>JVgnjO7O>?yf<)w39Eg5zY3Zw57duGxY3B@|tA zpCpg%GVv;P=C#ky?UV)P_=&Q)Uq->6^w<-()Ng&_K9O}I%thJBr@cqw-C>s^epj+Q zL=%OPy!#&m+P*JD5(N5)nK<5aApXgRIy>^nnk}jO0tXsrM}pWtUnct zUa8!EfEM(;)is_<+MY@;)h3jo2bonKGc&N1&#%_=Qxn6u8mhAK{2@Ks0vx-`yM<%u zRB`n+9bVTWwKpQ+;gr{#_YPmxZW*?`9XQiyqmb$oxnlQyXPT^Q?_zCufeb|?o{$On z-zEPn6onWncEv+siv2VP&3;s{3vesIe2g?-W_Eh7mrd$QP2&lDV_OU!a#7w=ph}w< zoj26tf2>2cMQX^J;Fw>EtF#Rl6px=)h0%-A8*NiK(tLI#HqluDW)zG$4lr;WA#Ss0 zBiV}ENgi5lA^w6<`MJE`)-K=47ETP_e*2(UH~S82$ zY>{da;jV$)=ABNR;%fe7d?_Izg^)?s6|0B()0B=S?FSko^J`D*V{^t?^$R%;1Zr6q z^js(UrkcZ1TOVdAPqJlzEgznG)QCKQ*fyiO=!HNUNFK?nW{Kf3e$%(Kx%pt_ zazqf?eI@d?Pb#)9M8&>cF7ky<`Bp~lb!DKE7s zxOcPf2Yke#r@e2Fq;KJ@&m6is1I?#80H3}NYl?(6XSWa8tZxOG1^CZ3gF=X|67R~G zu3iUp;^s0LQ$;ZIz8N$38`}VAQrH`(k?5wSmaCKm+=}F(5NbF0< zq@rn+L80PDsbt4~-C{f~f0f}1ZL}?9(O?ZMEkayAjgl%~s1I!5(R+7_($XEMXYNLT ziXD()yUp;hOS?FZ>Czp&qPvZ}J1zoeQd<54}j2D-0Lh1_`JJ#T6E#^_UJ zY8AdYmJAt~BQytYSbHRxQVSJvY%#?ms=}N1&yGhJN$-1QUU{MYoPZall~vE;*&4Ck zJ;MIEcKcidJPI@|AH3P+g+p`?E3ML3?^E;o*KyHW^x6x2)AgaXp+0j-ZzsiTO5r^7 z&tD+%-6jRC`Zsl+vyb>?o!f`7I8ST&o#-26=z3E(t~`UA0FPOr_tPg}Z$a3tVSSVi z*3o|SA+!pyU`P~Bmu1Fz^@zELm0k_4MObkIu+1NO(^K~R*zVXbPZX9$TA-`J!|5M9 z6;Fgyp5ar*S2@&!enq!hR*?HJ_^fGcj>(x%PlwTXFEG~DaB$;hpr@wq-rkPQ!QzTH zawwaQMC-yo^$!crledXe%)3Qicop&OQT`6FCrV4)uu}ODa6m3|XUqj#e<(@dtA#1DX!1PZvE=MTmsbou&&Df(b67#aP5#k zw6KeY6 z>GzeJitr;oMab~Qg{rM)2MfU}I^XY#`zmmID~-?3+SWJc2*uVp-!Sm9Ai{ymAW2dg zJ~c*h3n>E37z_^Kj*<8sZtD{F$`E1pE( zqe=!OyEp0Za@Dy0nhJA2AMPL@UNMCA04gFbR5O9%XQVzfdUtfry!-Ve87ADTl{EF*dxpXKA zk){v`NzIH3=odz)ckbf<@ekhWHdC9+*J>|Zlh2!dk}ZDCQ(kdpnyH?DQpxnr=_ni1 zbg|a_uw{klZXF@>*%#~LQBGvq518%PpYpqg{ZolQV8iL|m1*AdS%u=h0}QN3IYro< zz0tr*+~SRvHVJZUlbUd_HuM;DASs z#kr(0Zw3#}Tfy)DCS9r>%d19fr-0-z51_3+3dkdr{D2Tc@MXUgpVQ>l5bNpXBLWXg zI9RN{-)HQryL-@8t-t?0Kn?Z3`KtH&{kO*azjU9`*RG!}01hbpEST7aSBnQxp&h-O@mNYxhqoh` zal{U3mY0rRX-D@U>qcAEAm{hZ2N7oT;`bw%E^iLoOGBO^bV6R*|K!5&mvN3X5)Pts zF!#ntyZKhVZ8E)0fi+1cnPYPY#x>IWPn|^G)FhRb5y@?JD)Z5as5lQv>Y}>Xxv5GL zNnz4K>3t{PLLbeY4lEIvcT4tI`R~gMi`Li1R=3ZQ{uEgYC26C!MpBM%StcU=?uuZv zPTSS+DQ#;MZ?=oDDzl z2^s@IXnFZoGaWkX4(|w+#H1D1L9%CJ>^Ao=WQ(axBVG+^TBD%lS+19rI})Mbme^eJ9>{{?D0rrO8^NmbdLfbwLEzDf~OUjr$fG^iz4Dtzv=Szc*`~&pp8s8aR&8Pi>Pj?A5)BJKls!deNlL? zn{JYBr?F0+QKlJXaB4I%dfcrh>;K{S56pWoYTTiBy<|v5gostgcyz{qQS^EqZ>I8& zJ6*A@GK6_XBFx3HYviXRZ0qdZ7hnNn5r!qEZpOgfP3aQhg?ES=`IAg826-MvU@2oG zii31F?qz>2bHfS)@JZrg-RxX$TgiehRB3X_vhV&UX=TBD8>{|b^pJ+@_bc%KlnCEZ zC^Py)J_aMHS;H*u>$k2Kt~)z7*ap5ap`+;)aC-FHNB|lIuySb(hKnBgJzH7!DZkhR z9RqT^9NTDC$nmAv5!g5~cI%fGxJ)K_vsPo@Zng zjK(GF)Vbl^%i^s$=wL0Ht78_*H)id_l@`FOQO-@YT<%A{$_UHTx}W*W6eOlEXzpJA zy6z=>c)^CV8Fv-xTM)`lTWc52OhTaDjqumR*C^FM#(XV%qlS<3h_Fz%6Ko@v#&|#? z0iBnUe9*!apFASP=YJFMVXpoVVFVoG{S;Hvj|PFaDP3z;Mo1%G;YV|ZMa(k zWQ#vzez0H;Da<%|YgUrS`}s(G4f%}IOt|0F9dx^I#H-V{jM!5W- zbefkpmgxCC>xG80k3F^VfJsf_8s&OOB z{=L|3x|f_eUadwrq9j&TO8fY3UB@NA_dc#l+~}ewXG>k&-u;ywb*Yrfal0%2#x(!7 z8Eu66IQP-TYB&_O*c>4!EY;&zF0y{{X9ThS^L+cLb}K5rB&6IxyYGt*Y)Y8f#?j8< zWu~rooSyEKjcxHONsE5Ao1`gR6^`vPhuEFqNe{e06a&iNFBi>}2E zBr)Yh6G?9gzx~SJS(cG}XZvQGP;1067OFxJjDp8ITwr+sd# x`rGAAX?Evt7rFHLx23=RpZNdh?(Q!)csMpi*T>Qe(zgo%N^cZn@MKP)|!{RkXx*)B8nnVpxv#d<+7#| zXh%US4b5@!f|tV4P*5aqTtuxzBh&;zMR2sU5BpH9ecXrloacR?56^jjzu)tFp6q>J z!Ims`TnqrflF(hj`vJg0Yd)K8EX^;qeccoQuu+Bv2OY>LQp=^NC%b?PUr(*NzQd*j zsPd&{FWkR&!7i#ksP1lvPiyM+koh7_<%Yw1>k76~B#HF6;}swv+T@3`1Y{Jp)q>@i z%pF5Zm+g{SSY|_ZtVLPdtRDlixS+My-kJ;mK`n&8-sp6eO-tiuQM#FxTO-@B={UU5 zVQi-iF5lOb#DFupb^Lpu!}VT5_1PxjiJSHZgeOlL8$oVk6Z9Z`cwt&Vu#^ zOpb8M+p)|VF^tjUA;99qj-Zo8VE;mPDs}1_BRaM=;EHpI~*21Altps7*vrqx(81{ zFCPfHEQ?JXnc@fG5kB^M-QGv2R@()!&CIr`;}tRd7`_CA*3#13Ooy1$fQoC3P#N5% zVts7eCQdKx}y7(Y=AsbGYC%|_n8x<2gs;Iq2Hc_?KjBYA;;y9O-s)EFyaHrnbKYLbG(09?U zXAch@wl*`-AzoM}XLJwlA$rD~^0h}PWfCVMx&<271NT|#@AB6jUNy7^%H@+j9ulhZ zQqE*Ul-}~2SWNK`WiyrTVsbQYMbVYnHzspSi26XbNwQtj{ zaU?7}0oh25%^_RTcgp;JSJGcoM=;IJVznzW{Fn&f?Jo6rp1VL6w2>M(LL8i);OW-m zmtzJZPV-MxnE%SZHknUj`J5Gz2IRa4=MxJ!9(-Lfpm$J_fO z@L@D*zA2ejozhsqw!(OB=3Mkb(lsv^aqO0Hl1`hf)-3vmz=Wu@e)KiOwoebJ@+aRMY=*4tr_;YlJds-S+R(atUVIK zQzOK-lGc!1iSITJhB7#+@xuq}0quIf&$yg6nO^Lv$h^>vRjQ|bKUsDpPuaHUTt zymDJ7HgtgfaRD{ANbvJ`P7b4cw3aL+8}dZFSc3>Gkr+lU-q<9-=^b?S>H#$UVXE*& zX#Fg+t#dI4T4UOHSg#Mv9(9fkX=qmr&YA0qOOuYlGQ4b7t7kT8F*zdQ5ni-nM4wi^ zlD-C$7sZ2G(I5V_4D&@4Gw>`XFagBL=6z@$tqn1Y-Z4qv$k6NNeTFHU{0xai8k?V| z6hOh8frjyFIPQ_!fJFYi2$KQs6$^VWg6mvd-xU zl?3F^@qT!igUR=_ef2t4akN}BS1!X|^1hw;nH2oU5lhVzqq+lKqZ|{DofCOQFppk< z?88sIa$S`E$(TR4GY^~I_Sgn&&Z3v8pA%W(-;b^@I(Ub% z25P;HV~}rib1g-ZK&8K&O7XOSbma-r2Zs-#z9nU5087w7GY} R%$pAoy7Q~x`(GS7^Cz~tEG7T| literal 0 HcmV?d00001 diff --git a/posts/qr-backup-restore.md b/posts/qr-backup-restore.md new file mode 100644 index 0000000..b9518a0 --- /dev/null +++ b/posts/qr-backup-restore.md @@ -0,0 +1,104 @@ +--- +author: admin +categories: +- Technical +date: 2026-02-23 +tags: +- qr-backup +- llm +title: qr-backup C restore program +--- + +In 2025, I posted [two bounties](https://blog.za3k.com/qr-backup-bounties/) for qr-backup. One I did myself, and the other has now been completed by Claude. The task was as follows: + + qr-backup is designed to save to paper, and restore from the command-line. + + [...] + + this feature request is to add a printable, 1-page short C program which you can type in by hand, compile, and use to restore backups from an image. + + This is a very difficult technical challenge in minimization. You should provide a 1-page (2KB) short version of qr-backup's restore process, written in C. Library use is not allowed. + + [...] + + The reward is 5 hours of my time and everlasting fame. + +Claude has succeeded! Although, it took **seven** hours of my time to get it to succeed so... I'm deducting that. It gets nothing. Sorry, Claude. + +First, I asked it to just write *any C program* that can do a restore. That's... already extremely hard, especially the QR decoding part. I really had to hand-hold it through how to set up testing. Advice: suggest red/green testing. I also had to tell it to test incrementally. For example, when decoding a QR, check where the finders are. Then compare that to where you *know the finders are* -- don't try testing end-to-end. Also -- a reminder to freely look at other open-source QR decoders, and add print debugging to that, to see intermediate output! For example, it's really useful to see the parsed grid of pixels from a QR, to make sure you're doing that step right. + +``` +Sampled QR (21x21): +#######....#..####### +#.....#..##.#.#.....# +#.###.#.##..#.#.###.# +#.###.#.#.#...#.###.# +#.###.#.##..#.#.###.# +#.....#.#.#.#.#.....# +#######.#.#.#.####### +........#............ +#.#####..##.#.#####.. +#..###.#######..#.### +#.#...##...###.##.#.# +#..#.#.##.#.#..#..... +.#.##.###.#..#.#.#... +........##.....#..#.. +#######....#...#..##. +#.....#.#.###..##.#.. +#.###.#.##.#.#.##.##. +#.###.#.#.#.#.#...#.. +#.###.#.#.##.#..#.#.. +#.....#..#..##.####.# +#######.##..#.#.##... +``` + +At this point, most of my contributions to LLM work are contributing my own heuristics, or noticing when they're stuck. In a couple months they won't need me past goal-setting. Also, I seem to be a bit better at logical thinking? LLMs are not great at debugging in the "human" way. + +Anyway, eventually we got a working version! It's very complicated. First, we look at the image of a QR, and locate the "finders" -- the three squares on the corners. + +![caption: finders in three corners of a QR code](qrrestore-finder.png) + +How do we locate them? They have black-white-black-white-black runs in the ratio of: 1:1:3:1:1, passing through the center, along horizontal and vertical lines. + +![](qrrestore-finder-skewed.png) + +If it's rotated, it's still the same *ratio* through the center -- but every length is up to 41% longer. + +This gets us several "candidate" centers. There might be some false positives (shown above), but the three real finders should be included. Then we basically guess the right finders, and run some checks. In the worst case, a check could be "try to decode the QR, assuming this is right" -- it's brute-force but it works. + +![](qrrestore-deskew.png) + +We apply homography to "flatten" and de-rotate the image, using the finder locations. Then we detect the QR version, size, encoding, and apply error correction for any damaged or smudged pixels. + +Now we have a QR decoder! But the qr-backup process is a bit more complicated. We also: + +- Combine the QRs in order (they have numbers at the beginning of each) +- [Base-64](https://en.wikipedia.org/wiki/Erasure_code) decode the contents of each +- Apply [erasure coding](https://en.wikipedia.org/wiki/Erasure_code) which restores missing or damaged QRs. +- [Decompress](https://en.wikipedia.org/wiki/Gzip) the zipped contents +- Decrypt using standard [gpg](https://en.wikipedia.org/wiki/GNU_Privacy_Guard), using a user-supplied password +- Do a [checksum](https://en.wikipedia.org/wiki/SHA-2) of the result to make sure the data is undamaged. + +We do all of this with **no libraries** (other than libc). + +The result is the [qr_restore.c](https://za3k.com/archive/qrbackup/qr_restore.c). It clocks in at 5300 lines (208K). + +What's next? Why, we want to start trimming the fat of course. Let's remove any GPG features we don't need, redundant code, etc. We'll generate tables instead of hard-coding them. We'll remove intermediate debug outputs, like the .png s above showing where finders are. + +This process takes multiple days and very hard work. + +Now we have [qr_strip.c](https://za3k.com/archive/qrbackup/qr_strip.c), sitting at only 2000 lines of code. It's still human-readable, but much simpler. + +Now the final pass. C code doesn't need whitespace. And why use all those long, descriptive variable names? + +![](qrrestore-minified.png) + +Running it through a custom minifier, we reduce the size [even smaller](https://za3k.com/archive/qrbackup/qr_strip_mini3.c). + +![caption: from 208K to 35K](qrrestore-size.png) + +If we print in **really** tiny font, we can fit that [on a single page](https://za3k.com/archive/qrbackup/qr_restore.pdf). + +--- + +**Limitations.** At the time of writing, decoded some rotated/skewed QRs is a bit broken. I'm not sure why, they used to be working. I'll fix it soon, and post updated code/PDFs. diff --git a/posts/rickroll.md b/posts/rickroll.md index 70c3126..133487b 100644 --- a/posts/rickroll.md +++ b/posts/rickroll.md @@ -5,8 +5,8 @@ categories: date: 2026-02-23 tags: - video -- ai -title: Steganographic Rickroll +- llm +title: "\"Steganographic\" Rickroll" --- Claude wrote me a tool to encode data in videos. -- 2.47.3