From 271913f954638c0647043d104cba0470024809a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=20Kr=C3=BCger?= Date: Sun, 12 Feb 2023 18:06:35 +0100 Subject: [PATCH] remark about shorthand form of circuits in bra-ket notation --- content.tex | 10 ++++++++-- main.pdf | Bin 358456 -> 358851 bytes 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/content.tex b/content.tex index 8e44860..88c2ab1 100644 --- a/content.tex +++ b/content.tex @@ -490,6 +490,7 @@ The best theoretical model is of no value if it relies on some kind of magic tha This wraps up the framework of quantum computing. Fortunately, \cref{def:quantum_state_space,def:unitary_operator,def:measurment_quantum} correspond to the fundamental postulates of quantum mechanics, meaning that quantum computing with all its seemingly strange properties is in fact a physically realizable computational model! \subsection{Quantum Circuits} +\label{sec:quantum_circuits} In theory, the framework introduced above should be enough to do quantum computation. All that needs to be done in order to develop a new algorithm is to come up with its unitary matrix. At second glance, however, one notices quickly the impracticality of this approach. It implies finding a $2^n \times 2^n$ complex matrix with all required and desired properties needed to solve a $n$-qubit problem. The standard praxis in quantum algorithm design is to formulate the computation as a quantum circuit. The classical pendant to this is the relationship between boolean functions $f : \parensc{0,1}^n \to \parensc{0,1}^m$ and boolean circuits. Where $f$ is realized by a circuit of cascading boolean primitive gates. A similar situation arises in quantum computing, already illustrated by the description of Deutsch's algorithm in \cref{sec:deutschs_algorithm}. Here the complete algorithm is composed of just Hadamard gates, function application gate $U_f$ and one measurement. This makes it way easyer to understand than just one bit unitary matrix. A quantum circuit just allows though processes of the likes of: What operation performed when on which qubit? Which is much more natural to the kind of algorithmic thinking people are usually used to. A quantum gate is just a unitary operator on a select set of qubits. Because they are unitary, quantum gates always have the same number of input and output qubits, unlike their boolean counterparts. Conceptual wires are used to connect the right qubits to the inputs and outputs of each gate. Let $U$ be a $k$-qubit gate in a $n$-qubit system, with $k < n$. Then $U$ can be extended to a $n$-qubit gate by calculating the tensor product of $U$ and a $(n-k)$-qubit identity matrix. @@ -519,12 +520,17 @@ A quantum gate is just a unitary operator on a select set of qubits. Because the \begin{definition} A $n$-qubit quantum circuit is formally described by a sequence of gates and input mappings $C = (U_l, I_l)_{l=1}^m$ with $n = \abs{\bigcup_{l=1}^m I_l}$. Using \cref{def:gate_nbit_extension}, the circuit description equals a unitary matrix according to \cref{def:unitary_operator}: - \begin{equation*} + \begin{equation} + \label{eq:unitary_matrix_of_circuit} U_C = G_n(U_m,I_m) \cdots G_n(U_1,I_1) - \end{equation*} + \end{equation} The circuit $C$ is said to be maximally parallelized if all neighboring gate extensions $G_n(U_l,I_l)$ and $G_n(U_{l+1}, I_{l+1})$ with $I_l \cap I_{l+1} = \emptyset$ are reduced to $G_n(U_l \otimes U_{l+1}, I_l I_{l+1})$. \end{definition} +\begin{remark} + If a quantum circuit $C = (U_l,I_l)_{l=1}^m$ is used in combination with bra-ket notation sometimes out of convenience $C \ket{\psi}$ instead of $U_C \ket{\psi}$ will be written. With the latter being the formally correct application of $C$s unitary matrix representation $U_C$ according to \cref{eq:unitary_matrix_of_circuit}. +\end{remark} + \begin{definition} \label{def:circuit_size_depth} Given a quantum circuit $C=(U_l,I_l)_{l=1}^m$ then diff --git a/main.pdf b/main.pdf index 117d7e2128d08729389ad690ef4aafc3c2873ba9..d55f2b5ea00ccc9257564379b7d6b28e46b31355 100644 GIT binary patch delta 9486 zcmai(<5wjPptZB@PPXf0yUDgOak4pevZu+mZP#R`RD)E793!Xs=$9}$#J2<-*~*gKzm!4bHxS*Ae&|DUlA%Q_ zI^H*5ms3kRqO!P{u_!#$ogKfM#c}kb6^i+OIbIclMt7{8fP3GJkF&lf0DpXsp4%7Y z1vw!4gC3y=jTk4?6K*D^zDDB0D5?cRF{t@>&>1o*gc-3AYoDnS%eEYh2k)dtRl1sW zRY_L5S}s*@IoQ&={%v&Ma1|b-`LRL_gFLhc#dtGUCL>0%8`g*zaCt#lpI_{c2Zk+vxT#4`%Ko zKwN7)?ZQAu_?Fx%*#lP?JL**5CmxK&zJ&JKK{!Aa7CT@JjCAXAD^9*E(x#9=!IUqY zF4u9U<(u*dEOv24Nf?q$G>UeH!^$7Qgl#b&iwtkD8+9Y5K|)CXgevAtpp?@C(_tN! zfW%^vx{|EWukYU2-G4G-&{(PS7Rbd4j18kFK+j<=JDxgl4nYjY!Xyafn!?Gb>b|po zp#Y_*;6kugn|Ec1&2*LBLP=eU>wsc-JW2^zziLe2Eere7C9zU9umXs*p;5BzdBX6b zb~!#fppYAmzSlHg+iEIK=H(Yy7>Zi;fUKP^rtvCWD^vqd%$ZN|*Lhd7n>WapsY$XL-l0s#;R&h6OL;f?BL{eU@UQ;EC>USpiQv z7`L+!+yp>2u^7n!}jU)D7 zL@2vt%ct+%kVsE1S*bViHFqXWAS>;F>#u?h-e_i!cXMC=!dmjQ!748v&5QO^&vZ0W z_BY@IT{I<2q?f@yHBBNNLqfI=rGRzQ5m(?1;!V(fH=cf2aI<(Tw|USR*HOjq$?m!K z4;haANk}*2$=z42+qp_w=1}(XAqc@)Jb0r(QkWNwZG$WzsXk_$ofSR~i0(FI>Lw(l z=uD0x_TK)`LG8H;qa?So)bhwj-^#12L_rEdDbNmSSh_DhvnM_=?}B30hhZo|=$lCz z0;;umtIu}yae7L}YBjC!-ssX8Rj(|hqQkoXAhXfA{?3&gBS7-{XJlo zz4&W>_QeFX8A2rtgld6RnK#+hod+PPQ%~1iZ(UDvYv1UxgY$?9XeHu!|xOMl=HIpLvVRHqBN6ck#10DjzPqJp3ejq|g@~egdfP`HkM$OYRKb=B8Sy+cLCNw5D+xGe7`xaiin zZutGj_xC8RHb_wvX{~*Kn8b>HAz#Hku^?*KITR8N)Y}^OJ6K*a{f-rfln?5>MG5WG zLq|sed_F3w`FY7(6@dyfJK6$L)S>B%ME~5&Ns(Dc3El0gvNi1hvlp1J;H+O(4=l_e zld=1=k=N4-^`H71FT>g>AH2>A-?!T8h%@iW4~be*Ic7p6<-%L{kf|vtd*IJB-wa%h z7_eW1%JVNTtMbnQ70j4$f|R!Olb_NlYRC4?TUmpXfy#`%HA-_sR_~Qw{bo3Yi;70h zsz)@?UyvSh?`QJ_OtQlFBHFyaaQ5~5d8e7jFqw?}u&OB@?% zoLKFkPZxsfeo3|!ou@Fdp{P&-%oII$(4*HEx409eJWXhZXQjb@n+dd?Sbj6HpdBhm zmb!)g-?sqtUBI~~D%>-&+vBZ~f=&R6nwutcQ9W5v^20FtUqvh)zIOamNg%|dn)Phe zIRr}-@UOVOMYOg|X~-K19ENzZM&NBUbp)^ieS90Sr7vmemvONp1~o23Q}GQA$E}*MUPbTOAqk!ahXp^0K)Wi39@GFWjQErZ9@Tf<%mFpbj6$wgh2$RZ4+u6 zs7aIC0Ag%YHXEo5EbPE~dkwGs!B6Yk4*W3hz=7R~Y2@2jI}1~pCXqD6zmY#g%e>NVvJbC21PSBUxF-+rR5Kl}qF}(tb)4wZ zXYWvCsTEZwVT{cvVbt3lcW{6jK-^@y7aGt~>o(G_VPJ?CpXj!_yZy)!y}5$QS(`=) z)l-!raJ7x=vcs3%0JDp`>*8b_wga7-C>w>Kc=7hMB5uMI%a6P>y`M;y1zCA)7IyYi zTvnowxV6|)=18iI;~L~J3X7WIv{Qua8!Geu=;xU~&$(T6{q>tMIeZ=56}qlFl_@Kx z>C7to^;LF;QAzx?Dst?hJv4%05Gc@C>GuiM+04&knapw8k$wD8{ zjx;1jPC^qTQszKN*ruLjVL^z$&<7;C(xg|hmJ{@Kku|dDtAkP$`Rc`OE>r4BQ*YFF z7fB<7D?9?nb1+Lor@YX|sfJo@zUutT77zd^<=*8X|q~0fF!u3!JDcgwU`ZaqS z{fT3-^=L=hFR;aZ_^~j)HEbaWG(Q#SpdRifh+*2vG#Nm_u$_VTyL&`@$e1S(rI2L! z3W1u4PJ5KLd(eSIzYvhE3r!9g zCa?c{0udKopQgcWv7U8P9R*PnXAA|9!ZA%MO8~0P7H^4=CxZ0+B zp8}xvYB7gBxY|}-%_eqwP9u@GZg1Bf0%k^W=wb0&0t8IaFXre`a{rk>q|i(hTH>Yb zT4s6UjkQJcOCFjLon6xH8e0@S6=?qUMlv*&=jHSsIn>E#Sp7o+H`>|Lv}wmn65a6O zq#}63S!eeWKV|LfMzu1uOjF*B#|E}lJyAiq{Eqyz{Nb37-l*ZIA`aP{6s+IeO%TlC zCBFWUPnz2GFF+3}Gp6=uRJozOs!Kf&sa9#Bc)UWJud0t5KDr9ck<<oM0oaB|fPg(stw>l#rwig4| zUZ>;Z{Aa>FMNh&b{#O4NUVyU-pTnrf+8zADk;wfzyj9-6vCzb#wRzv`40p$BwTExO<@KhOKl!Htxcf*%inGNev6zse-yV|%UwOddxk_}HABY!fUlPL zt~gBRohgKi#{2ieVB#u89RJL9*^{37H8gu)veoSO=fO`>0{z+AUmDjja@NlRUsR^^ z)?dE!89h0hO$xmNArCnuCtxzjRwGYSlfZ>ER?9UXM~D@o$@l%Wwam{hhbd5QJ#9n{ z{E;zwuK4QuQim>w`6|9_Knv_c0d&*5G4L67QFyujS(QPQV8Yoh49X5&s@1HWIh4M1 zg{-XU9Qn4#tifB?A7HF)tr91?t9hN19C0_;?{_`lrXC^he3~sdB!l5B<9&@T$>@O) zfl2woVdU0pGg%-K8Lu{G5$et(5$UhvSS^W-8STcf^ZP$j^e# zZ77(naX`ROkRd3gC2^d8Ss?dFe@P+I#DFf2$gETXy-39zH^XD7sHkU7sZk1q8!x?0AN5E)bE4(J*Gc+yKV))aObTDcvS zL~OEtjV0d5n~2Ec@TR=dm#I~BTGA)9Ix^s5X7)f;=ri`~?$K3Tk8s2@UaOaW{B`IDBYHydaD(K)CRw%efIx%sQU>qk9<00`@s&^szYbIrm#Okb=JV4|78auk z4{|0qL!S%Vgwm;ASLA^b$dqvro1}X5HF}WjZvnMmLkW-PKm@kwp zRhPyRA5uttM>2&S$Cn$&kzl`1CXvpf8V4#ER9g9v#>;MsHdv60e0AtAi`z8UFe`W|lXg5z zL7|vG>^2f-p>8R<5$tE%<5)23x|5>~UEUfw@~du7_%b-`67a2OVfB6v=S!U#MLi28 z*r9a5MlA|NAZI0ZK<0>*Qn6=l^!Y0|sG;9;1dEP7bAp_kT*g@_C_RH-&`AqqoY2#; z%tiP(>`t`W%h-$mAnpA^I=9W;a>}xtAJBwKuTt9Hbyw_qY}l&+ zo9t(mwiYA$7{PD;^U32%-9WtpI#QTV7~NfM4hQy_5vsHFj(#}j$fHmT!70NvBTMu9 z`oSt`N`Y)zyrdEfSK(M{77~adT1}nkT)0Lg6S?4xU}|mo-RFw=^Q~t&3yEC1(i4OkN2H4%CjPSU4qTfHKQWA5&(7WV_ZUimA9h& zGP5cOvuyDcIq8IbF&p3^SOIF?t~oWc8NgFi2r5U14HU18;84xs3e*mQEQe0rKX3eN z+-`qh#kEe4G7w8scIAwzDVmH3aAHz$#pHo4%TGn~k^CnX6Xa$)?iusYACH?-u9mv* zcJL!W<-dl?&|1nI+}c7tsIs_9Kz}f1WJ-2txKpB7eN?#Rf1|8XR`)6Rx^DOAwMG8q z1u}FbC^n7Z`u<20{$=PYHA-_l08WqeJ9JSZ-Etmhf)8;W{1Y7zo71K!g6bYSj~Y>T zkrJMWgaRp4W=1nrrM5ybC&2++N=l9md1}lRbZ5nE&QZdO&H!O}#ay>V_0ksb# zxC|izJL{#OY@JZLal+8!l7l5CS@dk+G73K04VF)u{0`N*E6s^^8&Vt1CQ;cr7A#sx zB3yDM1Tx!--6P^m6x|PzZgiy$-04#{112UET#4t3x0loSuzT8k#~eHi|0^r zqx6eT2X#*CHNrEg5XRN+L8}gh@1`;Uwbq|K(g&2VX>rqIKu+2+LYDf=KwR5Mj7DJp0l&S`eaQol( z6wt5eGRjec{bI2ef&QL99p#>wosDJGnOxAFGu%td6a`oI;=JUXKn{!=zxz^&o>`w% zsR?tlp4H-8mUaQp3c?d&47XTiAGNLSnmy1tUCI0_hIjftWR82X;Iv}K$%bz_GI#aS z_Jxj=97+_~TB&He;z$!^hFuv^|8Rb(FwxIrCaUNM`Kc39O((VS-9_LHU9u81x_^usl?Y<=oB|E)6rEb=4t zdG-KzxJ^?%z@T?p#Z_gnV4(^a8dL!VDNoWiHAd({$te?yK*c`ozeY;e)@Es`6z_S_ z88w@_Yl)tfryR0 zEu*^F(qH^R_|K=>k7BtlIm%E zm?Pt_o-sA@xNJ{+dP7y4xF3>@Gb-~=U{@jg+r}e;y|LSZ808v}=Cfb{HL*DHDXC^^ z85MS@wmNz@R_gU{ENxQzj>(;P|BQL^p46~sHt-rc4uCVWI;RvgJ zAX;pQcRnWf?=MTn76XZ6g^l3pYlIwiqI^H8^q;oubbm!Ab3R`8U+41rHo^V-M{~#D zxO36z%E_&l9=B|O1~cUx<& z^5Wo3q8WO8wPsRHEOhW+Yhs2QjsIKZ@HJ|A!ELp7;F#qpUy;sox?<#XmjEw6L6B}B zhMj8`+({?>)riNXM%aE&Cb}Ad1Md8L`RqZ&@yv999OKa4R;j3d(C5uLCr;9p)l=8T zAtWHRSkkf%jRcp@;(IQRN{sce0+6e&f3ce-fGL1&JE)&9wv^Y#leKavKbQ*TRY{|{u^@8 zi^=IuxM-d4t03ggko-N85H{1~Hw8&mQQJRaDd~k!Tmw#$O=$~0_uzvf6Ob}z#2-w& zBDJf8fG!CC);nQ#*$!c-HPhJNeSfp5K~wD?Pyt!Ii+1ZMWy7aa^?YF@H+C-C+1R$- zbk_~%(5+pukOgRXAFRbmv-uu91%~B@p0qUY`~8)O<6btZ#i>kF zhMv(Ktf-wxk624TT@@?H*n#{Vh#RXi2W6t4V^huzi7XeZed|!lsr?fs7L|Ak zA&cR5Y$hI_?oW4!owxV>-aY(n?uTVSao3lDTAqJs#B5%2@$P6TsQ#a4gg%TYAFeZ+ z(7NY4qs)63E>s&r2nAjHnA(ZzP=8?Cx4{ph{|-LZl5`jxK>}Z{e(Z!(ZKd|{nd&3q zqTdhwON%k2x7b`c{!u);uoIXZzx(@)*P~c9jqmI#u+he39R>T9##EaiVZ(8L^wn4* zrP0_kjq7((3ql$>&DH6&EexmehXN$W0UB}rs)jA}H_=9C|73heX+`d; zC(Bc;azWD41x-d`ytFWNhx+LZDuni?Pv;-o2Y3ZBO~K8g&^m~8lk6+W_KNgR^_R1J z{t?=$G64w&ymqpDvV5Wq97T#6l;8?m{DT{4`)9^Uz14OZs(yVutvqc)R&&!fTw(S> zbX!(MEpqd4YhdHmi+DwUPwe&n(Hn2Ib7;F>m!K1J4ziPFup72NrDCE8S}jMnymXL# zzO!*M5eo2ofT75Vr88(kWEzJ4WfdGCsbqEbeWRezAuJkcrt)cq0mv`PvfbRV0fzh& z@OeI-#}?r06R_zgf!qnn?i|%C75+t@LK8QVVNAA_M%BWcw{V$#tL3u1KV02#`FkWS zscP>907?Y}d>}|$#D2X!_ZYebYUX_f>Nt|EiCuIa(N~HHW9iojX4#^p1x6^*nK_F- z5NooO4rE;IX`fp#ik`}sX%39$-Zw8p;ttJ$ITqGA{$&EFB#4Y+a!Qd@j*mz$0FLst}JP^7C7 zK`5abK76xx=K~%4x>DooYaDAY?*9IYjWkI5Z%B!1jZfZK@j^q65=c`O$Ylm({OAOG zrwG9rXo~vB_!94L-O${eF}f?Tt)?yff4`?FnYpN&FB?sE&~uF-q?sEb6*1(OE?@}Y z?}ZQx#1zyU@Qv%`Id{sP*g#kF+xu=4gLo~?x)E~Qf+jf?F(2g<*N9o8P8t`8lp$;9 z&90~9t3@xZM10BX%G z_rMmfLf6naMXY+@OPdS9kIGf`JY|1hXd1k)!^JAmqiL9=4}Ad1eSh1E(=UI?sv*g| z{N!@-+ijG0mKjlRrPoFsc1hW%@51T&$FO}zV4kuYhvl7v9UHBIUF}J}daZJkN{7t^ zQ`Hz!|AQhM)83Pu??UBfnJNf35%g%qlA591uEoM*6n*fC;{^V$gLtK18E;Tozv<~I z*ndj5{zU0*px-I)ylPK(h_z>gkou0@orzb2VWT;^{1!VBJkRb*Py(@8?~St0SU~s6~{6yV^h#>B|=YQhm<^g`=mf+(NAs6~TEk;Oeik6Pn?l$CHyxeINxUdW$ znt26#MKfa9o39SH>tu!+4%=p}lEvh?)aB-qx7osU5upBz+GSzXiA1ngo4wR`aY|3C zHCQ}cxrWxcdNZ1a#8tVW@Zvqtw0!{oao5hl_U6pwg^6kErZQk04eC3vimQ~+H3cWT zaHMqH(lsud4u70FgA)4?Q20SrOAiOCX2>J{Vehgs-~?n zCCTIV3`_xrpSm&uIpRn4%1MnBOelJl&1}luzxL@ zR|~CBD=|m7W@RLid9j!JL9k~y;9r7`u#@sRDkl}CSE3PFNd_p))Gn)CsF)Ez-N_#D zQ`U%C_*fnP@K`U+elk(k**vZAc;mOU=_8yL?9j9Rxt($D=IABJ%k)s@qZi{M)z*G7 djsA}QFsrqehVBhZip4~$IP%;;g0QWK}mfA0dIXo3PCmYu{Wf#7nn-2L`R z;p8I0$*UvW`Tgni=*df|5`vMzh9sxwi8hGBN^yx4r^)GA^4IJ|{uUFyDmKM>b(}J3 zW)!32zfXT{7(IE(aDSVNvRowGa?d}vv_QhzB!nQz`Ho~&lLTBO5?t>n((CQJVgtt$ zJ-gm!t7EEXo9)tWsM)+I=iA-gqVk*P>vEYb7B_zPEU)I}F_{(bj#GFvKl9t~ET0?y zK<2lq{Cb?b5v2{uGhoX2>@5~J%1|Pv8saxK2~QL<3VXvK&aLD~Ddnja zF-8m#N|F}UQ+OwMo0AAjoYbHB55c7NxKRANL`#~Gck7gseC#%AEr z*`o5!lliSJ9Fmnc{$iPJ%Hm^ve?DKAXI>(>wORY$j$}Ycdl)g2A2 zdn|YA1}A`0fPvhBH=J5m=90BtxhtlC65=+X$325Vglh@}oAxcwDl5+X%DS%otuwyA zSY{uKx-77lS6K-c`J(ug*H0Da{uj3WVwD#cmw&cQ@O;*#iw*XUtqJ@p|G3Fl6@-Rp zqE8h?S`Z(k#3abbNsy7_kfCE9YNnL~U!fXsan=@6v6O6(U5)sgnx;JUg_YNvg})~~ zp&Kg9dnFk(fhw>< zynm{*dA6yspT;-^P|eER>$J?zwsY5ZKO-1@5c z$0oqME~hgO;;;>ejk)cwdowzr7%4)AQ-3;O7VB2K3$=ZJyDOk?(G#(xr&v|r1t)qW zzmYb}(RNoy+FgCu=B^vijA*yJ&_S&_MpwZTDTS&_fPfx6yVyYq9>fY%HKv*5_%;nd zQb9@OVX;1s7I*}3YDR}2gtrSk*O6W3yCAyB7Jkp+5MbC;X?fY4?FgFj&3?NkV1M19 zXgQ)F_pT)Lt^*WA4Tp~M3bL$Q#x(@3t!8}8Uz8SY4Ow>05sg}uQ;TwHsSk9&O&9Do zuWHq0n{^qVFM-X(#QZeW^k}4A`fsR;RY&qxnQkwGGTk>87C$B^sqMheTRW~#rU6cL zP@k!QHl-UqPi)wufarW)2T-`+2!DLnE;&Tk?WUSrRbPHr`Mb{-7tkkcE|>l?Tatnto$g`@2=KP2&aTPn+C%Vhj`wN&b(>1 zDg-Ty60_g(o+wQ~OOxu}W+3sR2b!Gf_S~ZB!>lyki+Kxzb~l8e+v;fu2!8{Ki0WE1 z6jT{?h@g#ZHleM{GOxT?>s37$vbTaMlu^*FhG-0jP?UMYz;6UDSqPWfSHbGJ-&p2Z zwJjT9c==#qvwB%={Dm8kTjO%#J8ZjY#e|pWNy$tTS1e3Zq8?Tv#cl?$BfHG%aXH5j z$CT*I%Ogp`?eN<+usyD;gMVe4lA&nB0HQM+py4n{?*CrCW@(Y#sVI33#4_F`KzeRX zkV&gRXpe|fqLD2)lyyo+`JYQQznmUjA6YjAo(Tn?RRBM(DZ)_j%$G;@hCsxbgg`l3 z=E?cdAO4F^Z~&!HFS6!Qcf`M+B4H3;3=Rk|COqVGq^hxD*MDFLzwoTypNF;W z#}GApoeKqdj8f9KB+7Xt2-uljg#{Q9*1QeT(~}4f7Pugbr>p+~~dF21!yuU3L%@pu*IUSjX`uHIz2=utO9>TJvv>H~N5hqmL4A zzsEmVQ4+Mj@$w&VCV#@_e2PefU<(y4{i!z+V25c!I3tg5!YeX z;3N_$EXL5uFn34n9`1Dk1__g?0}o*sVa3BkqAtMvVBWcad}tS759k8yJ}v-h**5M( zx%uQbiMjVm@lXjvNINXWGp>;ViAG~C6Ut2@4mw0KgvG<>cz=F3!0`tJ9KR3XQlf;f zL;-VHO#2Re*GhEqcVII3m5C02)Vs@vl7qaVf8zhONwdY=3}P#C@AO>mCrf(sgR z;V`NTx>u8i6MS~dC2-)q|7q?`DGfyy@DP?G1P^5cF*!Gr5h*Bt&0JY?+s3kf*RPnzdn;vO_N6Lys$|(t94}EU=fp|M z50nH;yoVwgl5*_x>u)aua6k|usW|0SiNnEQmY%PBdILl!q_83dp^Y%s3ay2;M(8NK zhsGd+_rfTVk`hJ=C6g4!31u`iTcNCWM7QKJtSda zLK~uR&>oZ(PQp6M2Y616xLJ?sM)Zi0+z&7X`6H;$s1dxZcp^#XwMTBn2!+?b1f_nyH zv@{w4gG#XONJ$VCAR3y0Pe31V&R_*u>!4x*Bxuyiflw&Cg#x3nbJDOb+yYSqGEl;G z0D*%(+B$QjV7T^wuoDvgNE?Joawv2lx4-}aa~lneMLD*(0N(I$8&@?^BEz7PKvq!1 z0okK(zdfqnexBE&IvZWrN7dgDWiaak|n^ijjB`f5CSJo_Ym zm(bvnJJukd(W>K^-XFm%3m6XDq2B-c7cL-R*2!#fJ|A6w)*!ZU16NzE>ctdr|| z(8o1(6r!e%g3{C-awyjof{At5TXnXWU7pt~@jGnj$um*Ctv{{A`@HS#xN5rztkz!( zSx`LMZNamD#I3}n#E|583x+K|U7QOhu37X@2vZNj@Ucoz^k|Ji^1QsS2lbt_&X+l=;W864=Le-cLnApwnO;067WDc zUC(qm`45xkA@w>0=8*m29{9lFK_mqJDYD!?AlRxAYlvow47?RYM zLl1?`^Bl2qdDMz)|9Xfz&vQd3kW->x@1eC42K-azpMd6 z?7{567R*Bq^?)`UOe&RPSepN>NswK*tqUQl`SpkS;`&1T-fpXUQhyv@)^EOh{2r(J z-79sh-XHxQeE!z@SPL$__s96y0q%$p!g0){iSamr*Dmul_e<6u+dMM2mm{$q=8ryq z9b zJI3cU@)#KJXetw-o?vl&o&mGFe8FX~c-vTs!z2#Kb%i~-&Lzr|%TqhrX|5w~_}r)+ z#qD`4w_D%NrX*0Ba;I_tcXHB0CmRiaY}f|hE<<+#KI7eSfN$#}_Ty3^{J9L8MsAi4 zW;D4h+l`@i=Wr{;s9dIiqo@qVBO9r7n(lI0%vqKJ;<@spB;l36LQ=?XD$7ycpiuS8 zD3P{)sWcIqzaoiRE;!CXQjWiW?z@sS z0FRQ(Q}C=qrLxpDqtIRMp0BiJl$5fWuHVv;rBVipvc#3gZWejk@~hM!Tv`yB;)6N~ z`;d+bs5>+s3$A;WNLcxVVi}_&{eq>2GYe-^TNE|YBtvC@o~hX$w-jr+tc4XmZhRU_p!r{e&v^pD5rfJ)t z^&Lu$^`s#@wj~&Y1`6j55!?swvvq=Nhe8$%tCdL1NOZKFB(#8i2rmK~4X)!P;#HPP zlPS($PDL~|0SzZp<{a+DTQorqUn`JEy_a||5V_WpSx`u=_qec?yc>`S+;pOimOAjz z(m0gEvP@vl@tq7jY+Q1GOH7Der2WT$(4(~nOle~wdQxj>Rk)|MB)uBpO&aG3&d>o) zvh9?orYUlrjZtvzGI?Pt@#Tn(reJY8rrm|q?y0}Oylq7>AppzP)j8rEHpjBW1%77#PT6W9}mtEYfK^=uom~~{-JuZUchde>$ z?UW=F;j(iIV(D>jC?BXXa89FGZ;?D$(xM6_%8`F=1I-^uo{}QLHWWqBu~ww`i5iz8 zMI5CG973M!`;>XBC2RK|yw}wEYxqvN_E!1bHi+#Vm-h^R(r`ptwg!prKbP#$amn%T z+9%>3rC(EeH(c_{(IVgQtfC!buAF6$0vK4opyW!Ym1WpU43Y zm7eGE8egR(xs~KyfIy?Kiynnf6me2)9WACSJSj(ioB+KGM_d zg%*%mijVtcgFc%_E_Ew9t_2=zIU2^;5Ir+PYTL6L7s#cfc_oEAlzy?vlPSQojB#jC z9GU$bl}j=l$>!cJNSq1ZQ9b51G$2iaBoZR9D~ETzrm^1BT}4L&U0ED&@`<-};`^ed ziv#0-3JKijqjwxOXC%ctk`x+nT3L$d&}0V_v$v(lr^NW1)P+eTl%&^K)lgn01y+6( z9r2zl2q-x?!BIaB79yvNbelKfbQvPz$T{$I*LS$gv@i>kC0Geb_FotF%iM7OM z8 z&vK~c9ZB0dYm>-SaA_3F79B`T9&da&CCCX7&NxLw8N6ik2qnp}hro%Fht%H8O7BhM z`J=V4H`mHu){<*VC9PP_K-}Q^HtL2xd2~xfrq&wz@KsKBs@UuZTym5=Hk)WZ*pMcF zEMBV#g}u!P6s$)OI{Bl`|HQ6?#`8uGGAv0`N!s0fQY~ z*YJ_KlIuF;h=xaSYsp;*0rGXqt^$o~`{I2|Uaoai5=Yke7$vA-`0P1vN%|~uTt{4! zcm}x4GBZ%-lk4%s`z*IEm$^q|&5dV&7kg;p4A0HyD5^$laE<%r9x_r$yvC`#YaFG@ z_n>p1vfMS7yjIzVTiDYIl0=1f?9kK^Kb$6=Xj+fVkPGLuqXax~L5Cb`w==PwqVahJ zO)^6K$t!SADpSIF$`(&Hu|%~*rO!{~7;&w=%46HMatyXI-!iXQZVFszK5}D!nODZJ zGuVvw91_uivWN#tpJr6P&}aQ%W&JRu$$k^7#w9xG zN-7eA!XR=9eraBYM4M`5uhRUu!hNHA1$hrO%cXHHJ@gC@nr8N^d0WI9G`Ox2VKzk2 zFPo=gpWuRsM23>);WiqZXJ~juh7@@dQIm> zQ$R^kp0SiKMoU9aj%<_MM=hU7$Iyd3@-#L295j;iUVuZwbPC?*`FLc1o?GWfZ_V7; z3m>ma>DvoOt_^LN2CcW=kj_^)jpamRThoags`fsOpf;yGu?jPVd2HK@@0m!(lpIE` zukSIrT<4P4<2h1TuUeG&sE@?NGE`#H>^P9-k&_Wn1g3^Dv@c#GO$i4 zOHwI;^LXTs<=BhwQoAvKay$i!#dB&OeJ!2n z5v}QMj5IGP2g|3%7uGbZ0GV6aerR&69Bm<66t=NEvhCeG@+GyE?Fywsd=rHQK7;F* z81S8eC-w4jF`lnx3x0>-_2?GvynFrnm($@52DJ*w+Os_LMGD;CgaPK>Gh<>%kx!z`){ng z%l)BxdNW$!n*{$;&8GGL@~Y3q&|gVcyeP4A8$Z2y`{eZWo2NgYzZ%*_giYW-EPCW( zTyH{_TL4kmy@gPJ?7_NJ?&5KG58;qKyghw=_V(R3FJHZx-HxV8K6*TxTy5Wrjb1#` z$>IMmVq9WO!IbE`O!4a-0RnblQ%c!lSJrlRRXwSmR?n)J)$8i4dRvXEi>j`uYxQ9a ze;@1W!|ZNR-Bjc1|Em8~x7DQnXKdNJ!_mkz=1JDXGLkj>gdYWC-JQh!)=TNWfIZPVSn+vRRvbiiAW z$Jd>Ud_}$5d(G8#bva&KPU_pc3CuP5d^KLqC!^2R9ACF;W-Bj>tBdm1#cExzKdtMl zIoI3eJ6Gl9MdxNSA6+yP(gn=8yt};}t$>LQxorb~bX`?<)28;ZMs{B<$H>OmRbAB+sDtLIuB+=sJzCX^tbQidq+Tvb3(aop z>rpj-Z&c9yW~{3DxSB7=)p9ag-hd+dRDG`g+r{=E+wR{{dg;r)@HU9Jd z7Xj9UL13Q)9@Fmb4zfxoXD?no?MhDEL-FAL@SpR)%>IHN+}|nKCKj64V3}B8E;bLE;jB8l8CPd;0)DFAROf^mAF>P5t^cW4t%inr*3Ng6NxiBrN!{Mv zewcttyPQpC(+29+A*lbj8%?VE)8%Az3)p|azwz2ln6RgC4Zgz7=lKn|10`=tr(vys zgA3(}2N|Jh5A@`2S^ZJ{aaS) zeAwxj(*Yl|dA;|j(%EcI=A!ZY2Sw>1yY%bH$=Q=13+2nZ9>Ozb-D~i7SpEWko`q3z z{vIX#Jt*BXP_Oxf6B624Y&76(?X3Jks%o`XNL{!NvQ=+R-n{w_&G`9fy1YNO z^kkHPD5?Zs@e+!?Y#Xi5D#hdNEtwv=`hnUljean=o472X3uHxFTTN2-fl?=?Un1i*~)fov%JG z!POW;1hiPzm!v!UKPZ?(Gy)&|TPt?f7h7PqVASY(|8Cz^+~4CEU9j zUn2a~d;vWd%exC)X)%IkP-)BY?HF%D`1KKPjwW69A7trX|Mc(2uYT;Ze}}yTw>eq- zxhYK#S-$}D-LTsXLHBJppfrb>v(xh*Pd4_q!>FPEo1DW3!}u&DeF^CvR>3`CUgBwA z{s+SBn^H`NCGu)?eGMUhWh0m!d1N6Z5L@w~sJ#p6K^E=jm(PAa`3@nSO=ml!38%y( zgKEOiFQ^sb;<~P)>$r*iqFwh8AQ4d|-*c zK8F7wRRoUK+d&&W6eD#spEuo@@pbj4vlqKXw?Ca;&aTGOYglT3{NV#AktzPW-|uou z0;$RWfK~3MY`}Njl8S1wN5bfBxv4g}1betI69)I=K%#0j7vA=hTb;~Qnd!<|DiP8^ zKCP3W0zZ14qY^Rp@>%%1d|MKF?Y@=PUnXn#elM0O)#Q)r)d-l)i21=jq*usVsfepLaXXT_|OfuL9aE*D-ms*ka#CjKtBdgDrcnT5x?&9Mco z%^??yY<7#Y7_;nR%tfv-dbsTCk{eA9HDyC6FT#l&%Ege|Exh8WPk7S?baVi=B%5Be z>88Ss7cuaEF;HcMDU#U;GTY>mNWRG4a0qaflf5?^zW%%)DOLZ)c(ToD?8l<^M1w7? zo{A{*A>LET7@xCb@B20pjMCl3iY~Dctn1^^vZjCK?mvR<*iib}Q~C$pkP^?>u(Jb|Ui~#;p`fg%lA7Hocd1AFmY)?Dcu0jn3wfjK(0Gl=Z zJZY2I`!!SNr0+xP1I*R%1E5V>oF*q|uLqs$|K3xhgOl59obZ8(nH#Z=Y5h*BtCDKi7Oko%W;P>3Q zx9zC@F|ARhO6h2IQ0<@?^iNf_s8%UM*+?3ZXzV0NENoa=*+^#NCz3YZh<2}=N^D3P zn{K+b5ep%y_ng^0Ip_WE{l0s1ubJ6eV3ycHc9KQ{Vlb;PrrYEO$vJt=Zjozbl#G+B zgb1kuu(Ykq=m7B!HD_m%I+TL?RNxk~wW(Op0KsKdM(qoRq-YziD=zl#+F@ z?ys7ak@c|QS=9+L!h>{f1u2K+#>VXHHLs=LT;(nN+yiVTrGWRNtI z3#5hYCFe*hNt1nKKRH0!$U)Lh&XW$3A&1Ce*w0=)#u3=BQKe4Uzbd7pz~rjZF<|bQ z(s5v^Nhu5bEv%kE5HIX<5*V7a_X;!e_66#Sjm@~ Sc?BK|H#agf3MC~)Peuw~xOJxh