From 28939aaeebe78ec134e3445ae35961f61d8e95f0 Mon Sep 17 00:00:00 2001 From: karan10i Date: Thu, 11 Dec 2025 17:40:28 +0530 Subject: [PATCH] Add category selection to 'kp get' command and update tests --- keepassx/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 208 bytes .../__pycache__/clipboard.cpython-311.pyc | Bin 0 -> 2742 bytes keepassx/__pycache__/db.cpython-311.pyc | Bin 0 -> 22351 bytes keepassx/__pycache__/main.cpython-311.pyc | Bin 0 -> 10885 bytes keepassx/main.py | 16 ++++++--- tests/__pycache__/test_cli.cpython-311.pyc | Bin 0 -> 8014 bytes .../test_clipboard.cpython-311.pyc | Bin 0 -> 3951 bytes tests/__pycache__/test_config.cpython-311.pyc | Bin 0 -> 3565 bytes .../__pycache__/test_keepassx.cpython-311.pyc | Bin 0 -> 19241 bytes tests/test_keepassx.py | 32 ++++++++++++++++++ 10 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 keepassx/__pycache__/__init__.cpython-311.pyc create mode 100644 keepassx/__pycache__/clipboard.cpython-311.pyc create mode 100644 keepassx/__pycache__/db.cpython-311.pyc create mode 100644 keepassx/__pycache__/main.cpython-311.pyc create mode 100644 tests/__pycache__/test_cli.cpython-311.pyc create mode 100644 tests/__pycache__/test_clipboard.cpython-311.pyc create mode 100644 tests/__pycache__/test_config.cpython-311.pyc create mode 100644 tests/__pycache__/test_keepassx.cpython-311.pyc diff --git a/keepassx/__pycache__/__init__.cpython-311.pyc b/keepassx/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d88b291abc82cedee65860a39143479123af370b GIT binary patch literal 208 zcmZ3^%ge<81h3XvWr_jm#~=<2FhUuhK}x1Gq%cG=q%a0EXfjo?8t5778Te^3-r|mr zFH0>d&dkq?k6+2~8KmQvzkX;jP)t8Nu_!Swy|kbtQQsxCIJ+djKtDLhS3kczPd}h2 zKPxr4q*%Y8vLquvPd7U?wIH#$xI!P!h>y?A%PfhH*DI*}#bJ}1pHiBWYFEStG#})w XVm=`8ftit!@dlr012+g3u>getNNzZp literal 0 HcmV?d00001 diff --git a/keepassx/__pycache__/clipboard.cpython-311.pyc b/keepassx/__pycache__/clipboard.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee49c22672452098a614d9ed5246d35dfe9c019e GIT binary patch literal 2742 zcma)8%}*Og6rWk|+UpPOV3H_+0Ru^i3Bf^%RDz;>l+ZQ}v8~Xw4HwIJH`HM7ZfDm5 zEF#e;haR~RRZ)w2povI(?5X`9?8s8kN}PIXPmag|rI)_9>-7iZklCG|XXm|n^FC+% zYe$EVK>PRishp1|$wcyLUIPt|;*oQ`kHRY1yj5uugx%~GSl}}CSR1TF~l+Ka5iIXN0oWN z8U}@81KOr918k5Q#|vZoeIvh#FGH2{SE}&#O;!4?R{O4&#U6MM_x)Wp!UoGeC|AXK7RAG zt1Y-rsvh(M%NCId6e*PGA{3}Zp-g$JWCh6uPUKDRH019mn7`RZtYIA{mz5z^OGsix*_G1l29}rUYum8W+^(Y7W0xaVnnf=qgcyPL$%Wj z-83E(O`l#|(3qN)b=?$FswOLDU^4amT=n;DcfRrumHk8e;ofrOS|xnF8opi*T(7xEU>K&E2)n%hWQ_u){bZHs zQJ+J-ngX0_h74}+N~p%|f|i#HvI4bRFE|zfIjt2o0Nfz+as0W zXf-%m7Dp`w6EU|brqfEMAg9w%_vwNv74tX_q|@IOGkKfBPJ;mZD8)@)5NomR=1wFb zgrVzG02_^Guj|ytY>nrI8?;7RFhGS1P^ZVh7K_5N&>PLEpo5bz)htnoE>b8`4zkl_ z29k5%G)y<$+5(0<@q%ZAu!apG3?o>UoW&6a$Ts0493h}_I_5}=2`3|)Qya7R*ej5) zO*^Mr4^VVdyG1y;e`)F$oXsi4Rn*YB{Xk=3H49%Q-$h7dxX>W0O)t(^^aMK((%2D2 zM{y1TP0{gIX;HN6T zTh&26wA}KA>Asa=D>=pV)c1?|7zUX65wLo#JHvFV3wYsMIc7!4@_@A`!~bDNob*n- zYA5kEb{VK>u>K!F%|$8QBb{aE-6Nq5>#4aZ9e{LnKy=go8fie-M0QU&c1Du zdMGYD4x3ltdZPVsJvnrd(n;hz3Y!m*a}qi0B;br7=TX>PL(T|t)=54RjO+z__Cf9;DX$S4<9RW{|7xgL?HkG literal 0 HcmV?d00001 diff --git a/keepassx/__pycache__/db.cpython-311.pyc b/keepassx/__pycache__/db.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bbf5f833ef1c4cfd6d4f8ea7b94a08e962aa81b6 GIT binary patch literal 22351 zcmch9d2k!&m1pAy2!J?vUsCI!L{K8B!?Gn=wndSYM9HFUk+x&T2@Ro}BqS1~yFp7t zz=V@>DzJ++p%Z3=B-RX^vK@NtOqAK|lxilkJ48PBYD+-u@Q?sBc#w7|8fx13D%vCS2M--N6j7E+fuJ#V-6JBn4r(9@19eef%*EhPEG{jM%*9X7 zEyRQ&Nt%;J-m?^)6BDuUtT-`IteKdYof8&j=-x9i@$y1=M#*`PyGM9G8}55n7A3jw zN|^e-Fdq;14T|!W_}qNo=*0_tb5~=1PfK%`#YkN4n_rAi&&7JKh~j)$map|`H^Qaf z`9;YMd~WxX#6Oc}XtL*a{iA-o^d<+OzynTxEXb#qF#J1DCDp zy{E5qQL+o#7LU_2-|Sc)EXd^!cYQ4o(b>3_LYBJaPsU=p<60b&;CT zO_}D3=OtQ>qED$hp_SN$RQi`+1X$*N>*PF*tJCkea_;WDyL*$XvGx46maA{Oarn(+ znael#=IV~;>yD?K1$SN6-BxJYmO5LgYrFo$cb~`{&DHJC*X?I{-+AKoCw|k`ce5qu zel+iXG;4j7(S(7<)b+U+N7H&X8n;YAAph7jZZ&hFO|ZPmiPk~xU6gts|H@@topC#A zSW&|v*dQ*Qf*sH$)(DPQE9#BA1t;=6f(vU?Q?#EI!-6P_$X zJ}vSkuHuDoJbWoEi@h~9Jg(Ey+$_sKFN(wqyf7Czeq71p`N2|Qewwv$od5FRsk4I@ zzoO=UnSY4Cv=|rVukeGkgoIJJIvSmdh2sm7c#!8G;}2Xr*57|<@YsRFtU;dt9hD9# zl};Ub=+x;`4&4%x8T|1}Dwcx} zt0Ow~!r0K)4nDlZhcATXxG0T^qVRd8hGG$EaXyaLhM!Z*Z8<+@q`8H8xzr_oWMTG_ zDDiWX{FIU&jcJSYxoAj8M@1D+8I4#<-vZC!Lx#Z}K7_#y%t5Kd;_}(BJdHk$p6%~B zbmU>`50MR+9C#w7GHQRe!c(3ktRT-r{tFuM30KdHiorKT(o@KKS z0$$|f&?d4*+n>Mkh8B4&9v{9m_lo!^AJZnh5?!fNP<*1S@jwqKn$Z~_mH9A#DH@** z&+q52PDdltd?XwLw?$?a1o5~wq;CG{=Pyj0ezO0}1ZI=X2H$ls#Abs{Z|_z`FAkp@ z8SEc=lJ7dC6vZs@T^FO5V?tP*32j-Y|Kh;ur=GpY^IZ>>>RcRnXv>mg&p&l~c=Rkv z9#u+?U7eeZ%F}A$9zB&SBbCE5anL|G&O?&R{50qTOL{dLpJtSyO&$^#pzL{NowT8` z^_rtWD*|RR8Vk>8l+A847N))0% zMu$R&C?6_y1w+%bCJl}#I~t3|qc8yyVPaYS71$yWl^BTt9w8F#D@_p%K^v9YaS=THl!Ys_99j40zkTLk|eYt$?=LJk`0M&g?J`p$k@ANe-$kUAC`f@t4{b_Y$E!K z)I+#?72Gvoi5vt|w-qGmk0_76#isg;M6RvJK!z@`%C z1Y|TsSQ)Ru0<@qGnIiZ00G#JcunCgfS3G2^={H%=ao0^IZpEvZ+jq%A8(~%_EFW|4 zfuear)|)(^xlT-pG4a~G^mxLrtVpkxGL6bIHTOU8S?0102k@6MuU<+A)$tLM2YLdOB${ESQ5+qvM(tXjQ9wpZ-f0 zuz=A|;8D5QlV**wC#^1fqMGbtPpWN&?JTfp7A|{&siP}NU1k@{qfV8dT!tsM{iYOH z!nCibx+-mE+BA=H@0mtI9*HJd3K8fgu#dog0(}Gy5I9KS5P>5E9tJ4-C+6qo7iPk7 zabhwm&ImHiy)4d57M&_R>KB`KStOb!CKA5VTB`{X(8+TE%Uq##TgtlPQ@T@G-RT@faZ)%K!w^U5HtUdS>cQRhE1od{WruFX73p! z65Ldvo%04)U&wj3rG`>Nn=Z8}Wkoe!M3-nC=>Oi603@}_tBJj*VI{D-buVH+pe@8Szjj}1RH!nTN`jFCbXWwuAqaM6ZM`GP1@ zPcW_J4PVJLV2+POV`+YMQkfhgDO8fr0xWYMwQbM09k>~|8N3^Z(aJ4h=+IdWI zXTev$8edD~d^2 zXe%#~m!#-GLvs;e9Hu9Wyf9mIpB?HS9J)9$Iy^okU8Ity2@FsH=e#sGFG}%6X^hgo zM4-YG(n)CqNV>^?4zR3!HqEhB~4pnHOc|h*7sAx0-0ce zRM1+vtm$q;s;0vYshTc-7q#Bsx~8V#4K+1Q|1NsMm{B(hS|~V z0^F0HV;4y>g^Rt6hNLeex#*mQ0wIeWO1@-=!!5NqGZz+$wG)x>OhnQ9Fd-F7L9+@J z9wWm61?R((ENT_)ib-2^luX!=t*nitom3-0CMi+Mgla&*YpgUY(~L2Nr064J??gbQ zxL(zgSVOW*o+wC@=56U~*{(-_+L#YLitqgP6S?Nc^39LIl<*dUjkkk)H-dW$p8D@U zmv7jcZRo;Z-V-W#{I@;ZH$2-j&TRLi1%CJ2-aLP-^nJYaJ@ARc;vIrUBDm?~yn&Sq zN?rQi`-#t4SMwiDeGXFgQWbZ-gV$V&n?c9ekN^ zkHzNVa81M`)4d^IvF16lFW89&+u{^0G4X2AdEu$Sp^1T014T!Pjipv}Mj{baw7?5p zw9JSx=_N`d>%Qoq4dhJpQqe9?hv6-QUpqP_!iuCbfsjLC*eNP$A>Jp2S~N#rDY{DN z=cJ-dyao@7O!AKLYsuP?!bnK8lsUFSuDpe8xd;Fo(%qWAyy5Q3y1VWK+p`^y7drOC zF5K4h31_P7g>6{ZOXf}Q$MsEXXVL@j)VTyTFr zxIg76_?yz^HFwH($JdhHo7ws1zIR|`9Lf8Rkm$Y5551#YEULbM%Rvyc{_xyD42feqNa^3y;?*7}|XE(af=DN@2yU%U7&t=`` z?gaM~{AbYFx?wV60ja0MrjLA$sal26Y3|jFggImMb%P!2E>jlGo42G@FSssi3fj17TXM$f^sICxZN~Po zt!P?uC7t(C)>Q&;rTKoNGva-~acKq;R#&@+A!GmjW(p$BI&$|U#;SOeNHT}q(mW-+ zOn^4?5^d&-&P#A`%8_Wa=vs(Pi`QnNlZ%S~WvTFIbv12Wk8C`!Y z*LgJ8cr4#|>~`bHjmDF?##8ymQ^*h0uQjC`-m$#x$pw1yfu5B8PM|4WlMC$12X;Xe zxo8XF+LP)p1e>q-ez!MMmkW00gPo~?)WDtE28?$!SGyx$yW@6k*G6quuC_a0+nust zXSVY7w3vzf;7ZQdo%eO$_8r{t9nAR-=Y5B>&clji)AO<>*$S9a+IDB~U42!`Hn#mX zFIn^^j9_{d((CgN8DR{YU?x?W0bBD(WvgWJfJ^HkHLXc|*)%GfHc9&gjfh<<4cG|S zCTaU)9;xz@l8g0T7l7s^^^%wLvQif?X__>b{G_#I>l^VA%sh??*iIiqv7%{8?>&$=5&fnk!{rHQj0FmGRwb#CMKAnFnk? znQuRtg=a9>lHQTtnclg!4~m_(0zDhSp7p6*@Zo&$VI(zR|7~(T$^fi_)_vhAWr;kmsdvXIQMO>rP*yK_xXS>NwEKOsW)36VmIf>NE@CDAuq;2>JH%%_;jw!L}P;$_DmeA9CZ%*+8fe-1bgQHn0y0_eNJXuPb`!=~Dl8y?4Cy`t5vZ+i312XcXf`M|+VuGIyfFF>mQPJPQ8XV%WZ zEpBci_e79u-H{1o4rZQt>u{#w&26i8IO$iPc>_`swo3Pb4?1ox+?vdVhVr4IoPW=1 zP5NA+V|V76%**SoZzVHd&38PsT0>RF-|(%P3jDrx7$=Xs;a#<^P8I5!(hsjbzWR8f zzP-@Uvif47zUAZkw)9Zuq4lPpZTs_Ww`y{sfqZBnS3j7qAI#PdZuYTG9pJom-?{Mm zg>+}m!{`reL1z5bv9Q^R+4*6vi^!m)+i2VAU%<&UX$kUVV?krNu*!8Sei|+ z8>Je`IRs}_noFoLN?Vk33!bVpuTWc+<`eu?X#pWvl~yOz8znf}Xb>8!(wcFcL)ca|FWUwFdpOn*OiKvhTCy4(HQZ$q2ka_Kb)#H@EPn?YAfT43-fuEl zZh;Nvt&+PAmP)eRqSppx$BeKOauBOl4jp6?*@;~ftU7#LRXA%{D#Hn>?ko#xR@1%Y zNxGQ?*SUO>_M|)M$!LzB@>pP$)fmTHCBf%l7i#)1-d?U-as@Rctr?vgtDIly(1L`2 zH))0KxJ!}l(jTKN6VyfP!UC)!CY8yalD>Y?;m|(bZqFt#IvI~^C6tlTS&%9(IDZOq9Sf) zS1JL;OqDQmQ+k^UtPpsI09ho`PYA3NApIb{2O!fR4Z1;54X+_NvAt3?R9M4ys0I0d zG2O6f4m8yiJigTsQwp0FJbr}7JxmvD+VHrEqf9^YNm*<K^s%1!VcyFhw_0#n_LU+P5}%mtl^(Qg{_|W-D+ze>&Sl2->{PSO-Ij$ zuP5v4foJi0?RRU_3psyh-rt$^cm7kM?CI0#A&#tiroEKoIM~lfP%g;U03A5%yfdnA z&YCorj+}$~-~s^~%B>v#A#-8?flmUD;5|nE6!1ktr4$oO1btizM`d`N8HX7n;k8h# zL_5o54(3UU3St3%gohl}IMx=?amI)&d|f@~CeCE6Wjy8fOrl4KEtnt#i3W{#^vRD9 z#}Mx>b0GG{*0mSOGuy!c_FumGl|*`M!?z>r+fit0U-i&u)57_8eq76EcRcao?%a;k zx!N=N+A~?_nQGJFpKJ2ZS53ZnEgV6tAqnmWTZ8f)_dP9ln+pH+;LYzFmfO*v;1A~6hx4_=S?92_ z4n*|oMP>$Lg8hKsc3kIRiqMIwn$Lk1cEXio-GUVwl9u~8b1KeVpkQ|;Em9*~PWraB zHefiIjmE|(wxJoKk*bT-1Ch0I!A)fB>uF%$y7aa$44;sc|T(#F7ddEfCzv2+fozP-TnW77x* zz8amG;n|rXLU6HBmw9;sq21wf2)JV5bR*hZrnq5*Y{-ZmennL9p^7GssAM-CR?aCH z)evClFvwM;SYD90kB5vGh| z1iTEv&n+M>oE#N0zc{ymeu_*H(i>_BYN6BHXiO)|FS1rBfSz>#Zx^sLS)9*ykrtkv zk1r}Y7^m7JJ~|1UT0u0Sb&ly<#Kda}1_v_(CV{mU%uV2X9Gtg2)=0OTJO{{nf92PWY<4D zL2nC27UFZ0lUvUR56s^;kwU?Y)GV1^GbeR{ly8_<+@;YfL$)v%yW$RV5oIk-;N6Fk z#$0BmJ_bw+`b7t<)wxOortpA&!ifDxl)uc_YD@Z|we4C08)e9)SX4}PzlADAA4S1{ z-n3}%f1{*Eo0eh&6F8Miu5*`dng1ls#@_&7Ha2&1 zbqy)UM-45CnFpia45Oc!d1dor3(MLaB!~P-6P!-B>-KKc?Ok`=?8wzUk*|9q>v`g% z##6;jK*h-_c-o z8+EsRyI>w=&fjeKMceIzr#23r${ifc9~{j2hVs54bl;2kfa*QN?`ViI%&oCsz6kEf z)t}4PpG&#!1Y7dKeFab8JLg|N|JsF>3+ZEj_V^DU&$aE#x9z(*fQZk!V-zoOjKUC( zVY;aev+Hzu_6jOhf*RMK2gv!4;6)yf9pYvxx>Kl3L|;OV-u1S3zd z^c?`0!N=&H2wTbm7?@i6HBu7$HStx!X1ZfEjgOazatS3-E@$%70cr`PJJ-bzuH<_M z3r)K*-+i6P>g!y!v9B^<^QOw3LFyOVKj}L6lHy$WchtG&`*n_DkmaLFM+)xdteY>? zwWdZk&1!eb9m_nz?y>y-Jy=H8UDuxK^&@MKt>2Gv!w#z~`ok*yA#7#%h|ygJyS-02 zf-O7Z;FhzNpGp?34X!{lJA#2*&w#%os!I*`zLojx@07#EfAzV4onGay;trUq3fU|X9bGjq%+q-`BX8#9|ZulO~`W`O$ zJ2HWse2vOD|B? zX#!yamk2}%e47CIsH6`G{EEPTB0!`i(GVFODh&kb@vADJ=H&kju&jLw)_qy)zD={+ z)(<&Q1zT%vO`Dts_;wrO(KT?wL4nO02=2GFY;qcS(bPwkHE_w~w4FsGI#}XR}k zl-M-}^OG5fu%zX=NE8QOrMCxFw@a_VNFkDCTsF?yVDIwaPPy2V+6%msqmN={PgIj# z?8$0)(spa*I0C!kPyQClF?p!?kKdrjZUWB(=mPT@6(wrVkiDw~(XJ4&lQaggm)^W7 zeU)C$DLs{5&QZQnHK`g!!f2xb22H|{h9C)}-$DNf2RL}v%H!E`!v;RLj+DC8#pXFG zJeKh8SLU3Zdp`D=DFj2cJjlvXk&~@FD&<9kH5wHiHWGn<q4C&{h)lkYj53eaHzO+CRl#v3 z9;<6Yp0m*0&VtuVU!^?tZMe$s?Yrppw|4EVxzcNLI9_OM1sd?{|5J{2vjKLIm-n%R z6I*$5dOjxo7mN|S%BGi1YUS)GysFNQ!mBqcd3892553y7iVyKB3ufD;@T&A*Y3lt1 z0tA?1BMy)V{9r4F3}vmMO>-Ubq6WInHejs=3Q|I4U`Uk#?(IfSS#^jA)_=7k8W(DW zqQxxi5X``J#8bpO_lPYhOs@1c1{)3DqoSiMy|^a%mGG(I7`;j)!(Y(|iIX7Lw9|)? z_iPmstmwgSnZ%fzj2B=;(_3*Q_Y`>&ArsK|K?qgq5-nTvD$oabRzOLK8 zz71dBO*|dV`;OlBo!s!9{ILE*Dd#(v_npf+&#`$Pkw{Wkt{}~uM1VHi@*#%3Vg=9B zrp|UAZ&hk*s3s{H$}+MQKz;4{eF&aTc(-20G34AoF0^Wi^rWEmXsacX{t?*_IK(N^ z{TCxpj$JA($FFF@_MjH_d3Mg<^qsH2{`K@!&bKG;+jHC33tN3Xe)FQTCRyjv&shU@ ztWDrw6Ur^P$ZR`Cg65dE0%`(FRi>ZK9B^pY?=$^xqW0F)e-t_Q<07)sjFd0v-d83; zHj*%(7-oC1_sqIe`Yp*ms0$e@P4(YlUhdJ_5al)<<;Qr_HXKz*3djWfKD&+V%U)?w_Id|F79StL$|DCz{w=n)tOa zyV9ioJ*GptN99QgZY>?C#}a}6NQFOD3$vs@SY-bx&>5zK%sD2q$I;q@6B~Jc^aLkZ z62O8qojXCWC14&Vp!9HZZp^WhqXhX%9UGCEasiK8$AUWg94qAr4ys9RjEX$M=Pco~ z>+m@>d^Xh4=eP`g&_yTd`amzX>2qpW>kj=nzy9St99vp(5QjHh-i593KG_TG0z0}# z5|$H3PAL>a@tftiPZmRTm&wAt$hb@P@7*T=V2qrnl1~B@odWi-6d446FK#zaKv`@bWL3Z$0z#j-2laV5~<7_}bZYB3B<;59jLoZVuhr@r$z` zntpyE7d%B#;pG+)t3vvj&(voY)+09`y4CdI-Urde#1JgJDNn=RLKnNCg~_p^)5YZ^ zB|{NcgekO3>L7${+2-l)e-l_F@E-t*_W5~);l{aoIcvfBo^pt+O2L7?hxuRns7G)8#ZG_eWSDN&<)XENebPZjLi0sF}SlEH` zBZ9jq`-cQN34E16hQKcg{D=UV6H34r$zCRLl+Z7u-Ts;Lgz^K7k4qlR8vZ!>ze6~~ z<~NxNT+K536gclP`xLm^W%em>zGe2&-Dp{@SBJ_df!*UK6TDwr!_;%1u$)iz`3ds^eo|wT+Zv```Gnb#4eZeSWU36s=;dWCzSeWIja_4dqQ0aR=cPdeT21?gKKZe2pCI%p2Y_|*ak43sb z5bVdEbB7#}l+-rpaCqjqnC^|~3j?)_pU`tR)w^ILo=U-nYs)BlFVdyK?L zY>b&RpX?k<-)(a?`n1p4>64q|;AxBTD~>q_i*@ZW=ZY{VthnY}^qqru_ndphGv}f2 ze5`K8JLjco2c+xg>RCo+Z#R^OvE5isRX!!>LzZD4!QZ^*e3EdFne$67fC0%3uu1X& zY?kT(1|=`R7O5U!tJDDSh|~zMP4Y{=d+c1h#LhCI!0!>+Oo%l+H;AmNt2ZO_F*#&2 zgsF%cnU5&4(ICec5|SKFMik{vf=E!u!l(MD?Nf5(79aqWfOhUbsNW~?Z z2Y6izv1oEW5rKx#NjUtLOq6IM9uB8HZx0PFCl?a&#pu$4H7ytp4}aW>PrD%ZJto84 zh8Oetx={JH#>Q_-tZFNlGR$o&{T4$42bW0f5vu`U7*-wDD|4GGr?+tw`!2~=y$LL% zI`=BwwlGQdef6yEWtggQ3FY?Nu5zmKnPICjN!&x2<0EUHu!;PP;l6q!JT(!%bmi6Q zbo;fGqKZl?nT)N95mA~K7o#yb9$AqG-M`0mHf&@*Bg%TS76Ma{R3*NyH7i zvZ@#kMU`Yi4E_#@s$TE4S=Uzs09?ScKoBiv~b!Xny{DJ@dHqF%y zcfsGZ`RvwLbpNwh^gF?`;eH~t?h38ik@Gp>f-YRpgbM}879RNSdp11lo`R?0UE8Mf zNn_V;W7qciT;oZ-@#N0Uoac=0IiqoBK80SHgUR*RQ1WNUwfnCoSCBrlRYX@sOn-)a z_YsqAA2Hcy3=a^~)#*1VH4!gND&#PPWqFlS3qd+2D4|F*f*^tx03jP`#dIft5*ZL= zG{Z}`&uV`R@{VGi*8!OOx28G8e4u6X#dTp_$h(3cbiMzq=IVjF5NO^U*;>&9{a93V zFpW*?YV{Uf$Tjxsjr}`P&NHlghBa=OfLuRhiylyk0-FFe%GYg6_E4Eo&W7h+NsY`H z0V!m0AURegL9G03YcncPG7sV9k(B}Rr%Cl#ugq;r>eNb_HCDx~C|$K138fYCCBsz9 zj5V9;E4O4op4ODwGxo1HXY7B`c)2(b;2Ng}D)8CpHBSCx=^k1h=! zq*pXfaLNWp?m?=uiAVZquA6;r?F-(-hns(K^rSfpaEZdpFvOjGaGS2n08u ze{b}i(OjTg4|HSU?*eU`W7`*Vfm3?m)Vfe;=-j%SYv|J(`m!$<>f5%?=ITYgUd&!D zG<0m;%r$iB4PDun^Uem%*`Dv{`Qf$iU;Ezm_pfWh5x9#2bM!bo3ohS--uL?7>HqHF z=HSkSe9yU}opqo80|VfX2(lATJ>Kk<{rrM+#$EdKF69^1;*bNVhgGfpWSAu|nSNBG zvDR#oEo0l`7s-ARP}k&fmC;mWqE75Xs4R&WM?k9q8<7F=ugcyl#>RN|_wo3T$Z zZ;q{T8Sb{Fy>DB3SaL2?9wzKYAY(g3D|5H083}`C0E@-J2V-2?XANw;r0y9ZOlF@| zfkHkc%!KR)e>19rj^Q}~R=^fX5LE^q20kZISuuQJMUIe#Tj9k731jA}!7t&u7;gFqqp4#!Ba##* zi96&JV&qb|e0-8b<7$XE8NL?_Sd~0ayQGK|ln)iW?kr7?OhEn^{FQ$LkYx%k|AVvl zk8K>wP85WI)^x_abHcDL3}?slEp6HHdzaTQ=eVYPdnZj_&2g=0tE_6y)`Guv3r&>J z1m6D1oPSdHPf`oT-@QGt!##H8{AYCk8L(!2ttd05Sre}Fc~9fU3%cj{_Lp}(1Da)_i~p0_VYY)8|C?r zfP%gSlvBy|_iJ?q>tZVTKEvLx(1N!}KuZOQ4@D?gTB4(u`i)7Ppsk@L8oBxoX{5{RY z2S~oYHK&TUTj|O;B}W?4lJf_=B&cZ1m9C6E$y^k(rjT@B zM8UX_SV@ki+dz_l5mG57%VjsQA|RFd*SbTKMRVtJs01l7XltUJV+0#QKMjS5P8 zio^^)o=|1wb9ThAoj&zBE2jG_+e^F^QN(#!j*AP4B;r&PqUF;MxJ?i>4AY9Oj;oIViaff90FNudoRf z(!FSN^9_ZPQ1<5h&*}c>Kqz|}HeM_;tm~_6zPw?uZ9BaHa=|zC;G650^9@0)ag#0h zd$ea>%lT(@|EyLwn{RB{VmICE{5t7eq}E zE6TQ-azdvrbZSCpUZ`Jplz*SWRdfPIe7c$73tICC+}W9Y*9pCASo2<9zo~mWHE-v~ zo!LvjCv5F=GyqnY(emC)IUgVzMT_J=)wt2I8iYL?Z|Xa zxTFi0wDMi#v60zSK@tDXxP3gxd=hj|JZJwz9QRC|w*Tfd4=)Qy%;n3nRsRoiFle`C za{;4om&>c3wSLnQyJm|=K!a3Z1PyYNWhjn{+&wf0;&^@^j(!$LVd=fS_FysYvyegW z`78CQ1VSneGpm+$-(cTh;#^r{RHidFkbkzB^s&iADkh1*%@Fhffe?vP39$7%Yfc8palol!JPW6&~UuSI9yQQ0uBZ$2M2e9gF9+2cvcUd1>OrF1$svd!M=Rc zxsSPA)5Sm7*_KgodRm|@>l-cFp_tYwx&RgO4KNN20-sGxT_8K748a`k1>2b)xW}Kj zKMcNT`xOg`e;FPh=07=QgXAY?SWFMwF?|6GtMrdWm_G)w0_GH;D_?tBXZt`Bs|+Yq zlK}Z?rFm3YPhzW8^*IKD0+wS^X$I{lzpCJYO|6JOSL0ObT^QkpUv)mlvS)#14lav( zx|!3A!rif%rVbiHEd0PlvrL_A8@O5(##MQx&{3>jfeaJ2S^)-YhS|5h`T!tg6&|qo9tgcax$EDn)D9!3Lo51>hz$7z}pN@R%X+umlnJDxNZ0S7fpzV~_(v z=RBc1PZSw}zfkb{-W}Q=&Ut%v zZ!hQ=SIf@nLR;tigFC)l+ey9c6gK?_b|}CD(CY?>G-d*Vf@z^ue6z#EbPz-EpX>U!|ETGx}n(?8KmpA?dwJ%B#!hpbbD@IGLj zP|Tg2F>K382*7Yjl2}UH2BfrWU_hE5KmnINb`v~^@`;g{SQJ+iDIyLom(Gy}vE3~> zmV|c8Y4-q}+pL-m574Xi6&wHFh?jy!wu?K!vM3*99+!+AVBAcEZ}mIIIs%tU+G}gaF!Bj z-!px8UTYs=QLgSD!{TANo~8&*|GF$WiHGnqKYdKb>SABm^Duk z<8!bSlVD}Spe=Qd5B(LE-*=N)3 z(?CB!2W6iZYm{jM$S9r;3=G5*1D4}CfZnFzF-d9>f|@cxC;eu+Zz>V*RnZYP$6iK4 z$pzTP!T@eIt~98ASyADn)$~lwy|N7~Am5Z-^K{oNb=OUdSubmi$32SYAHfJI40 z2pq`QkCUa;3KZPHS8%2=(g~$BkDzU2)MJ*Cnx_qjVz}|$d@<@2Sq+y4q|m@7b%4P$ zaFlAeD_VMxO3F>$uvMkBf~o?&>Czcr=}^SPK<+`|H{q}R)-+GN&APW|r$_S+<-9|> zcPM))&$*v)ExTOH7PqyWKMDpp!?(i81pg8XRysiRK3`&=R#b}>ZMM#{rHXd`9GE2h zIj|Z42n_GB&_zG2E7}~LL#3Kd{?s2C07VKK_iB1}uH?nxe_GCo<5usJwD(Ec`y~6+ z*Yd=7V%K*f=j+pbec4x@`a7QZdw2c4JB|;(s`-0!{wdu*mA#th8lG?+yIjZCmv)9> zNYC|YTnCs!dI85+Q5Xywdc4=otxCS$-R=954-cn>FPm$`&X}wU`p#c|7&ml`00<&=8s=3 z@(d5vZTvNuE<$v=0Xi5S=0SU$+V0oRy+Qk&)44f~o3r}-iGybM>RhkJ_2xak>@_o* zTxs7Rc~HB`fCQdGY{PT^m0=(6^Mxz@V2JkC98oJ%8CID%%=&r=UF_K^5U;f~EI2@x zb#sXQQsX8->xvWC+Gs9DqCuDP@a>ElkV-+<>7&cZ5fQ$eKyO=3B*aDej#y?*#r=C+ zp^(#XQ#L`Kg%2+vyhh_*9(p(tPAQQkxi)C#o?Qh+wlWQ$VSwY11uUlb;Gu{p_bb(| zgU94k+6UQy20w$pf-)7{a)0X+fA_Axd#6eBcjx?rx_>ZxwcznTfb)Z#=Y;M7|G~v~ z?5Oks*0ihPiO{wywB>{jUFgt+j;cV;^EqKe7e+K;q)^|w<-5PKv7!m>c~4N|g8R=I zEXtTL-C}^{t9tjqeMJf?U2uL}<8-buDjwIA%WGmKr3g+1hH}mQXPBn@y6+sJ`wPbV zYbcq<`+-I(-D!v|)nc`r*@I6f_J2u)rwFr5ISK?$E4czwBN%~CpDlfvWvRD*P*&xL z5PpYY6^Q6=;s;(3!gW)DP056MmIP_p@LiQx>4#fa;EbIR_=v|mQpb;j5-F92a|!Yn zjqa8||Hwi{)#o1^e#S!{K=!Y&=wkrjuzK6>hd096O9fBx!CPBu&eNlNda_dm5TOu? z?9#a|jq57foc!s$Q1>0-+ropU`}G_3>+}b4qYe~VzCBPukd?vFhQ{@;t$(fHIfgY) z?}3WyplI4of$Vgh2F2roItKtdGzO1V!LyN{H;+4*PaL6%P6zKV;pqE8XAXork0Dt2LcChF%**xa-l)rQugl`FuEzHjo=#paS96!1-zlowjaH`t( zzPBOs*rE*q{g$B*Qxgd05R4$eFhRxM;wF%31b9SKKFM84NU4}SN;V-6nNj&NK=@LC zW%Ggzo(2ROMiK$TdTgGGN-kJ?mY97cF>(?I<@LM&xl&} z4LS-w3F>{~@7eYDY`>ZF59|KnY(vo@u%LJ?5ER(6_*w$NCbquFSYXi0dW(zsSbvSfJCx0u>zs=*s^;)iO%U literal 0 HcmV?d00001 diff --git a/keepassx/main.py b/keepassx/main.py index cc487e1..7fa58f2 100644 --- a/keepassx/main.py +++ b/keepassx/main.py @@ -79,19 +79,24 @@ def do_list(args): def do_get(args): db = create_db(args) try: - entry = _search_for_entry(db, args.entry_id)[0] + entries = _search_for_entry(db, args.entry_id) + if args.category: + entries = [entry for entry in entries if entry.group.group_name == args.category] + if not entries: + raise EntryNotFoundError("No entries found in the specified category.") + entry = entries[0] except EntryNotFoundError as e: sys.stderr.write(str(e)) sys.stderr.write("\n") return + default_fields = ['title', 'username', 'url', 'notes'] - if args.entry_fields: - fields = args.entry_fields - else: - fields = default_fields + fields = args.entry_fields if args.entry_fields else default_fields + sys.stderr.write('\n') for field in fields: print("%-10s %s" % (field + ':', getattr(entry, field))) + if args.clipboard_copy: clipboard.copy(entry.password) sys.stderr.write("\nPassword has been copied to clipboard.\n") @@ -160,6 +165,7 @@ def create_parser(): get_parser.add_argument('-n', '--no-clipboard-copy', action="store_false", dest="clipboard_copy", default=True, help="Don't copy the password to the clipboard") + get_parser.add_argument('-c', '--category', help='Specify the category of the entry.') get_parser.set_defaults(run=do_get) return parser diff --git a/tests/__pycache__/test_cli.cpython-311.pyc b/tests/__pycache__/test_cli.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..259bd3c9c102a19a9d3bd63e0789289c20742fb8 GIT binary patch literal 8014 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 Xlz}O)CbPpz-PXq><7tgtI>7%19=V2Y literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_clipboard.cpython-311.pyc b/tests/__pycache__/test_clipboard.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d3d0e94f8116ca4b80bce54a196660e60ec50eaa GIT binary patch literal 3951 zcmdT{&2Jk;6rc6(+M8szaY73QS~vYj(@ja-6jI7(l@de|5Kv1IF1jYQ^4lu>N7!!MJq49( z#3s1ZbixuoA=9Fj0F-bkm`(yrS~6hDN&+fY3b4ykV41E!d)H>(E71~-X>oSk6MpY{ z0N02Y>zj@0maqo(n^Aj-7zt44Wr@s2_0{Nvjb8j+gYV5q0AnMoSOm70n5y)ail#T? z()m%g$UJ*qmjh|u&CdmL$@KD9{hT?sy|=LzTjtHSdo0?$<54OKXYs&Gq#=? zt7V?{Gf%HbSG5)R+(nz@BcnnC4auDm`WsA(D!i=5^%}x9(+WUHFsLx4CukSwfKlMg zRE2728M+Ilif5a260A^pwDmL%c`pvw2e3>w6&22~p$x1m12yHKuNtDi1;P7=>HI>NpXIhZlFd%r*%QlIA5q zg5#$X?GKSL!lZ@7W$^>DAPD3Gn6r5ydM-GuTq?QLv#q#S0yVr0=gb1LS&d9z1z-w`$;V`XlL(8sf+3S^>HtcJ| z=$#`R?x=fw^-xV6^wq(tI#>q>h8?_j3-!>SF6^vLvj=7}Xd}APH&Ld??mP zQ~L<8zz(*vjP9w|w;oaOvvQSK~GHfUh2?ss}dJJsaxLb@k|tJvBAwtGTM0 ztEXTPAIV`0=eUQ^ls&M<3HDE_oM2y`oXCi`GSbA})UEvjU}u6IhnEz?&K03^wzdW* zZU&1h2`>sGgv>_tvJ$QI04j=>xFj}nRwEj>l;}*crMA2f$QTd` z{Jx=DpYHeRE6MHKFkI7)`P#8Mk-ARYC~rPBvhu30W_?xPRQo@BNl)zZiP^l^AUwG$9;wG$9J0a7q0pP0iIE^!Z`DSKdz zUzUGTWtc&IKe78vk9fOBI@6oF-7f%6>D_^17>+q_8%EG=81t@GE@E9ZjE~A@G3=q3 z-qJ@9oFi@?vP8m+5mL!|a@01b}x`5b8-Hq?dc~^9$)&=AU0kw%YnvPaYOvk2~S> Qv;OYEE$q10p_lLBZ{>Je!2kdN literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_config.cpython-311.pyc b/tests/__pycache__/test_config.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa60df58d4db4924fcc94322055a948c06a5435a GIT binary patch literal 3565 zcmbVOO>7)R7Ov`_aZNnK#9?;rfPZ?hWqWY!NrDMKLP!z$QI^fHTHwH3TFrFZj6Hu_ z-CkpBf_%uqLP&rJBoaByuA%^nggEVi8;8BmSS@ALQY553EvJbRq=*ymRZsW)IUrHp z{rXkCs#ot-eeYF$6^|bwP=5OM<-&hdLjH%9pg>)e2PXWk6O)*-t)uXzBknid&WqvUr|bhGXefgWDF*cT|WU?NlC|1m-%i2$~5dQZP@t zN^*)R169$ST*Op?j+hak%p8H~nK$;9Wjn8lNiTx|h4T9DG&b4VT7_%AH5yu@p?x4; z$p=&7%nE$y(}VATTqjPCY$N1vgX|7`eyI^%3V0`69YQuxmnbH!k&Up=MzAa7HniOd z+d)qx7yKW@Rq~sjS~Z;fd!AB;ZeFajk$#(MI|g^Y zp`Kz}#WfpOM*HQB%-gV=c4pJyMtOa!>KK`Gmc8jzs+l+cemPUwE@%G6D;rkcu`|^j z=eSp|!AdYv>^4%L`2Yn|3i0%X44W!gJH#BLHJQ%{bl3FuoZU2;OAh8cApydHjpK8 z&=in8((1S{eZZ!hOmmsm2wsle@*%9Cf>07Jd=E@NsKK4ki7rG<+7Hd=$rY(4)ltV# zaiZO(F0^a(Ht4+*>h7w_e zY%{jx#+DkfrM3)RL_b09;|PFeZ(CP7z&(2OXrN`FYNNwnE}lIq|8P_}n;iLJoC58` zGiDzFhA&`q;7p)bAUoBeak$i|DVg$3X>jwL9w79iUBILldZAKNIUGLymNfQLLWN@13{F*F-{_opzc8_Xk=Y^m+Q3x01tk5v$?S2aic;zOlfeG z0J@sp9nCnUYG$ocdDr0H$fmV}DLXBBBj&r}F!dO;`J7TL*iJgiHL#51a(PF@!Kxd4 z-G(GuEfyRv24{lBolADMQnvUkcAZ0lTj`DZ!t?*wGKy)%kD3_FFZ7G_AMuZBPeGkF zP6A=ni6ae@cYh$k)RrzT0H$6j@17nGtKS>*G)!Ut7YO9K@wxpNB)q!}vt4U^wl$Gz ztFm^aO@Q1da&+_|5~xN;e`e&^%%?NgX7(ek#Gmdaw1b3J|MORq|DOEU^sVV;;-s56 zxvvOq#}C-?8*?{LG}(g778-1!w{^M67G1X3V2k&dR!=tByvybrY+m%4IA9Yuk~b&o zwI*A2*=mEW_O?%b9c{AHE<4=_UOy*?*$~{qB@|)!j0nTWg&^cekazPaCBG4Tv_|WP z2Os?d!6)@*_S#Sq0E@$m4EPe3n$*3z4B8H34!z94m@rfx6B06n#IgyOxQd2w_hjID zG0*400=|F*mz6If5eQEshk);#2Yd+|P5|jY4xa9XBu1NFt~k1(n}xiyyZqY-9_Wr! z+Iv96LG9!AhSOwoE}LtxxqD;Ng9x3vn_4|ctu|9<+|-$7;srMWSCvDM*THNToxQl5 ztZy~hvdfkm!7Ff=O-DVZ>lnwn?j6zfQpMZ?_jE6&>lpGK$%w9-mAtO=C&6-#$DE&1 zmXX8j_%}r86Q?J~945#pFt!C`FML|cVnbPMD~kF|n}j4r)fAjp0f|T|oP!}@G4;7N z3CUzcU1^hH;#+`|qgPwyf`i+}5k7np37X@@gNvoO1^b9lP{71K8juQw{mM>{ahnQ#ud`dmZqKKGEP&qLB&kml|4!n6BJR3AfAJrwKt z62*Es$6%4x&2=Y5-GqPj>hqCO43sKbqEs>KI7vl(^H`}j;!qeiCURnYh>JKCrYk1K z`eOp8c#d*0mgAN3?xe_%_NK%msgWex&GRW9>XdTHffUO{hhu_pImNRBj_erl1BZu$ zTKpk^Ym{in6KP1wUW5Acl>Q1@9)1=m>oS(no>x?sESp;MI*je6K0fm|)-gtzCzz$L z!((=)x2M`>y%y$%fMc#|sS?V|*-meq>mTHFR;pMKLwpaPq|C4XMk?h9~&cAU7Zi z4a1}2g;a9aMUKPCf3`v71V}{~)za#RN0kyBNfeegM!MwJKu5*!FFXd|3iWYu=^xNn zz1RF-^S^px^2|4)Uyr_Z;>|PPj(#ipy{DyJN90{cqzygthMu_%o2O3QaXQL&+@%1_ z?QDcE{$}{%Z(g7r?&d{kj~YOrUD|vuPC&{vilY$W`)Jkyi0ou(fG*Yv(9OC4dI*Ah z5xM&q)(fzR1r+Y{u|)ujSsy?@TMRJ3`T>@(0f41!3BVv*3b2d~0xW0C0Ip%n0j_1& z0IXow0$j&d01UC~09LXgfK_ZItX!4iKLwNas5*~Nn=lyhkznvM?&P6C%Wr=k;I4)qncz=@}a)8)pOtS4z@kS#<202+k1PalxN`{eMx+3>-c z@IfiuA%{E0T{2TOSGjrI^+I4A{`j>}+B8E*g=B`_fj2YL_!u>)&xv`io&$=S(q{r% z(62GaU~WzvW-4<~OVrZ2K|XCRSxaNjzsmoAuU^Z&f?9|IXMzgzo&k^J7pXftcq!+ucU1 zkKAuu1JN{(sq-`-xe$b>_y2qTgSWoA=ckuHEcvf>e_QkxNt~{@^jCl1_~n;RcP+m3 z*WcWF4T=M0)d2X{k3T%U<15!&|GE8-9^AUy{iDXcrqV-_!GA&DpJZLw(`{glw#oc z94~f%VI-DNijQ`8bakJIo;=pqt@woa`D9ES;khQmbF<<;mx!Gg6z?SvFY#1TDISUm zBF9Gsj$@SoNO692ScHsd{F35JjtoW5^QnkuYlUZ7;u#< z)XzLrdF6ylu8c@!+vT$D5K<5_rgCk!MkHpx%NQxn8c?IelJYcFWA} zjCL=vG%U1QcxmpBd?wtK?p2r*@xde;;}W2>=uAtULo^sPRwIrMb9@uNvT^>_lKIOk zmVUrGdwE5gv7r_+clY284Y#T#rd?**GumyPHyk!1wdKi*EFbxd5<|;Np5v_IPH>mF1iu@aG-2Bo zf^Dh{QtL;NTSQropee@^(<$9-MZbI1*^6CW0|46fQndW)nu!yWXJ6R}0;No1cF4?* z470;X=~YurlVQ24@z!>o5!+<%nodj1KAG8lG zZ=eq&Za)Xs)092d(W}CHdT=!uP7mgA*-oo3G(w#N*lP8KYUT8EJFUJ@Eu*+EnTY@QEFx{*2fmJem20Cu%*|5C*9QfQa*W+e;Biz*d?QP z=uW19serN!mO4?X(Wl1al-+O=Wtc|^uehy2Tu~*|MXSLhNXXN;p44 z715pV&5!zC*)+Ln`T>dADKk4W%+9%B`BmRU)78MZJI7oqCf85JC8kkk8Z%6zF}*so zrAK0p%FNLWbJUozVcI7#Ei%)RVOosoRZ~!2>q}RYD}X14brr{0zEJx5seT(}y#jQl zw=Ucg-+l7?^!Gd8r{C|8>U-t-UWqv_GsiR9ZRLo%7T~vN0ju%b+Ar5jbSNnn3d7#QjM&@@I!Z1UII5t zNSHqW-QQq{^NPo=R1(v*YW^goDQ+Tr`A#hBQi+5Zx@Blo5?85adJ^Ih@U?(yvW8^q z^2jE7IWArR=cw9Zx?>eYWNrdosDc0hM0{vVrf!cE+AD|l&W85Sg!W6JgL3HLxF1|= znH}v?c)uLpKO63x33p22E;-zlVXBZ06H{HUKb~pnk^M25u|0o-5lZM4EzhXG-9WHbm}d!^3Vn?r|)*Ot#BCh$=NhzC|( zP34XniyMd~qy3!frvNpre^h;pvuPXdc+W~Fphp2w^&Z;VMET?@SLN%__$pV$VXx}s zvml}rAr@G!G1@@z7Q-TIw(-ZHp2hT4{O96HGQC9L)j}EmG=e?=X6Y3oWJrqRe2?Oq zV5M}emC~%Gp2GHe02Ek(VEMJuua#zMI;G%YIe6GCh)er{u2?e^=ulxlh8-8E|+37`_sU}KrU8bLPo~1539MoB8H)}6} z#qI5nu{hN>%cr^uPsHK^C-680{5b>`OK4;M>ai(Kh=MK?<(`cTVtU7ti)b$VE6{`R z8h`?887P|#Y@7*f{BTo~6lj(MxPw%*m4G>a$?qTk>hXzVlD|&&*Jb>53r;PM6hOb) zR&=YW<#RRdo<9BbQ@i9`+9E1{-&xmD>HI;Zt0V0F!6pYl`z?-NehNMcFJnc4fJVVY zb0vNl{uGq7A>qn=Bmfd7wbEObTz;+CGtlhPL_8a;nF-cRRY}1ea&U*4ijC?dXq0eU zi5U4CA!6C0k{LIgmUPT4lb>1)PVC!qEzMhj^mPTzSQR#$VEnl)=bvj|u3unZZgXEt z$)xkPj4tBoQEpry zA&DmeT!82gQ4vhUC#xD0wju>F9KcP81*7dx1tx;UsKLJpH=56(x2x=V>&~Ik_ z;TeB;qEGT~ll|K={%xq?sJWyFYB&+pa13cA!wzIMoWe!<1dP+9(4a0#MCj*U4VVdX z={pbUa?Pu;yS0B*LwvxLXSM$l;#*?oId{NhoW0 zkLLQ)5u&BpiX>Xv3XnvtQV2g6U+H#<`k5$UMS9Up=$Tv zRmnPS9hA1(F*qo7U7K~?!{21tcp{dcJ{#(o33W)J!*b|w zmJb|Kqx5FOM`prDr0`KW433YiSMhKrvQG*;EC(L`-}n@DtornRVHLKRz0B@wv(uxn z-5}~)Q{VtMZ1$P$4x2DQdP?8o(?)=w`IcB=x4Efji~VLEKiRI=aoE`3nA3#Oy5q<; z1hG&HZUarMt_9EXS|GIK?fq<>MoU8@2{BGgB@~VP1Mq4&bB#y;9of9UQB>IDe+UZ^ zYC?HOToFd6zq&o<9g2wq7l3ea3UaRg4TQwVAV^pmgq%Ga8xXTrUwXTh$O@Ic3hfFX z0ni2R0o7$c8|s<~bxENka_9&Un&zWd9aRQmA{+OXjk5B!v*p`o%C}EHB$cz- z@5ZtA#JG|cytd?QX@QV4)60Ju2@h!(?BcWHF)`6?u#0sf=83-X6(kfh6>hUo;Q&O| zMdL|ivvTbRCEKqF=t82MfnsuIc zyqOp8MZ}|_?OZickIn|coKH^{OayAMZ3V=mks5T7Z6nYNw_v1(rCZR2XYM_4^rkWB z(K>^<2po%_3ErnrTgK5Wt1T0i9)*!9p3d07#gSn+E);4hdx;0#_+f_l4j<7l|S_?7P~~`zAu~CjY8w80no>GA~^ETQCv1vGlJh->C=-~rAHI_|q2MvFQ@U;v3(Yc}h!%hiN)d;jLv ztQsvrY*+6HQp)XjZohu}ySKlQGt+h@AYLljMD)tdP~wI+ADeOLd=8O2;46d};{gLT zOuHJNFuE#FUa5vz_PBzk$wt-g>StQUk0xJMdELv97|F)b<(3<128;ytT#4$y&tJoA%XSX@ z0!810Mun#VWVMiXDYRb>?Vk;G&V)LpP?sF)%Gw8S9M80NOSMPj+9Oh+M-KFi(?(8Y zjqfeA)}_!Jq5r;LxEf##OJ`|O7j+bM&cTAs%DP$4q|*{&W>{@|`#N700L$1AHfvwU zG!}2(SQxel1avm2R76ir_R5K8voDJ+nPkl4He)$Bf8qG3aa3KDxrOIkfcXY(Cd;+$ujKS>Y8XD9UDcg|U<+Ok}L@w6;$Xi)2UkUk&y9bYX@#u1j zAM7kuonSy-osd9+Tlp?htQ+Hb6n{U_LR7G5X)n07Ca0pX%A;(?EA)Ok1+`fF?90FeW?gw!i{ z?v$l20wGbh7Y9o zTNRx19E8S@I482_Hvp&S&!_m&`u0R>AeImgz=Kx($Iz;<6~GlLQ+`IhCr;n$e*00m z^^x~4%(On0X?^O&HUR3aIwX6b0)!;v%Nl%-PeEG5oeQp1{Vdv&r~#NKp^SifIWSW*J1y|GcI>o3(f6_KhcvZsDk+89 z4cM**H zK|d@iexWFP!VSWP>tv=b!_?uqx8fIkvrN?t_(uJ~7elY^o`}p8%9ejxIC__d9%Z(JxVsw-Kb0NjDYaHV$<+;J8c`R-Bx76=GaYo2z%Qcm^1J_sLD z`5C$V%!<7|2W$>)WW7B*r-$s0DfLFG@%IBTwmlkEe9`DoiXFk<5>WinC>{t^bNG!g z-FyoIJc+`$Bj`qe8Vui$fJJZ~!9@fq1eXwuA{aw}+fw{*A$T6a?;>~s!Al6xhsOUQ zf@uIZ)NKhOg!y%tiU3c|3cpR3{R-ee{w>h7yB1C*YJgeiKCnRPpwa2x17{I6;B&e6 z!)j~5?{+sXP&z0nc0U0p7Y(r5i4FP33fUiyXH4A)x z9IFn(F3iw@-|2?^R~`5~q&ou)8lEZg95f719jf2w-n~HSppwC_I#?TYgOQECI<(^(4nDS>YC!yiuohqwIh2l5YO zK#Le3eGO0T!>9EUu}t>L_i_7NF1IXvU_h#c84GcFmw>85rMGV2uklPV>S1B)-01f0ze7v+3pJL7VEGOyOO*O*T3HH(^L0PX z_C>4*YlbZ0!4dV_Rr{rkkflt*sr&-#5#_nzL~MX#)9r;8bUC#ba9J+{Fr&P-tfzDt zWjI3)Bw@|Z89jRL$5j~lM(_jOC2i;~X+!Ua0T4XFQ`a|O3_QAr_?rm+9KkyX{sO_9 z2*_4#IX?ZV2Ik>G=m3DSMg3c#9qxyq7Y%qEC}DKq@w%aVD^OdD;XDY z8OQ-HrC9%I9oYMFK>_uAGorQ1g-}^j7+j3Q;1O4)AQ`B6@Sid5s@Oije-COPITL?3 zL;^YRq`t#