From 399f8de6ef264d656f0eb1114c3ffce183293a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Fri, 29 Aug 2025 13:58:41 -0700 Subject: [PATCH] audio(dtmf): use longer tones and longer gaps --- scripts/dtmf/generate_dtmf.sh | 4 ++-- src/pipecat/audio/dtmf/dtmf-0.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-1.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-2.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-3.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-4.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-5.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-6.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-7.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-8.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-9.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-pound.wav | Bin 4078 -> 8078 bytes src/pipecat/audio/dtmf/dtmf-star.wav | Bin 4078 -> 8078 bytes 13 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dtmf/generate_dtmf.sh b/scripts/dtmf/generate_dtmf.sh index caca1e128..72b121b7c 100755 --- a/scripts/dtmf/generate_dtmf.sh +++ b/scripts/dtmf/generate_dtmf.sh @@ -17,8 +17,8 @@ declare -A DTMF=( ) # Tone duration (seconds) + gap after -DURATION=0.2 -GAP=0.05 +DURATION=0.3 +GAP=0.2 SAMPLERATE=8000 for key in "${!DTMF[@]}"; do diff --git a/src/pipecat/audio/dtmf/dtmf-0.wav b/src/pipecat/audio/dtmf/dtmf-0.wav index 553eb49748b9a8c23d0bcd5430b6f1124847248c..d0c24d77e7310cf258197e79c83713ca557f15ea 100644 GIT binary patch delta 1658 zcmYk+?^6`#0l@L+dG_b+-riaU>6K!nlp2bbB!)J|SYlgyA%qYkmQX?*OBi%$hf=f- zQj=qdMM996h{mX~)mTN6G0laxl%dvAOKb*d$}ogjFwB@i>M+dh?T_2t=h^3JUiQuR z5BR+JF0bx=RNVG>EY`XDHE|2ty!!p}j&S@TeS_8t$Lvhg_ttSCX%}AwuCq1hC3Guz zCH;z1M7u*Y@?ZI9xYX!M^#-5G)9M}J^I*`YWRf8!l0p(jT_I0Nq9La_DLMPNwAQ3; z;kw;cyWQUid%0%#cShidP%4zu3-)<)4v)z*`kXQth;j2yDu<||6q@3jSsvX27C|id zt-IdKg}0TX+77`<7bf>u`EXoq3zzYg_>7xF@|{!hWZWPq*& zCxajPQ@EBZP@hy2u-JYuS)RVjMZQYiLo%%fb4^g9 zP`x`;N^oks)fYs>m!uzXJJ|qRfGgl6Mrq)^fOdz6HHGhX?nzGBFQcm}Ri;rLE{gk? zf;C{6R+F#L%luE3{c?;pm^+Lce!KiDy;nIw2W-a%!Q-6F-w!ju2x=A#6vaENEN2{a zgrCsM#8d8rMx|X3CgmA<0WAdM!8(8$BL8w{@hpETyhZ&!m^CYtSKamEtaeao1%Gw> z-2Fi|tOxN5`UfTov+`bH4^E^y&C|3~y{4;j7+09f_AE^ZQ^M!)T~-6DxSOEZKWP_w zh#%GtYCY&_`{&7>>0z!~tqvWB6Zj4WY@G3dk;27{F# zn{C2Vo==(dY51a)hl`A@sl}jM*&5j@y-ujJ+gr;#*a~Lo2DnlDM6%#V>8zBVPH{&g zYa{tw!s$t!b1PA`R3%J+ZR{to360Q0ZkLlL`SM64Kd$5iDdVh>#6+qNe?vM;pY`*| zi>!~0lQkp)56Dn`gul-nPTsJt!N;_+$j5x0N30s}G_bi6WU(ip!9OoFvN7kRdC-4U z>eMsBb!^D|a_WK~6FNfk!V%{YjKB_Hi3QJ6OkMalZ>ba^`Fj zjD@!8IiVihYFtVEI%tq{)i&XNdIsMP1W-#Q+=GkIeaZ>7kbA>+i$?uKN$MM0&ys7Cn-+~ZA=OwhtCG8!D?E`?nAD(kgY8YLbl)#%e|2FP%t z_AHLO=rX?q0a%9r;p@2yQfT+un_0PfSf7@nevOf15&BEHKeWVU)7;?bq?NRN0S@Vf94a~JL*57=8dOcCo;^2^R$+Ue7PJIZ;=zGm2$~OC9QXb4v;o; z#=02n6OM`RqPODg4KR(WUw7|?Y`u**4v0kl=(sJj0=X=3bBy!Cl5A<+5#47H(KV+V=6X0C9QLhuH z+&7Jjb`0Dr^YUS|lTOet&_VfQ_-?uhX9)S)dul!ShOt=EITy%hCDp!~X-= Cw<+WR delta 26 hcmeCPe<#lt9_XU{(jl{NB3!RRJM)8tbEN!MW<^dz>bkLGCssmj?KWS!{q!;lZ_pUpU z3+FQS9C|8NiElHH=$D{|-NXG0blO$=JNb5hO&C=Eg3qxDzuRH`E_#s;dCOL#!@}Fr zpgK_$f#c>^`luNpCCn4FNVB9JwTNX!lYGj5sPEJ+n7iSrP?t2tHG)SZoq%63z3{FZ zGUE9Ox03Hv4k=@NByiUwZwD%n$*Z)NJaB)UUQFw3=t zDuguYF=E;+qm4F%TJd%<0sDhdG6YB9fBa@sG~RR~?0|epT@nwGGHcFEd8;%E*mO|k zohH@1hr=@Bjys>`_Un~y0fmHDxIJ()sAsB$$NZ~c%*<+ud~47qj>vzNFys0!`eEvU z^W?dGx-e|>s1z5}1*sgE=C}bImHr(rP$hVQc+5A_4cyEB#;ehvY5%oW;12Oy;UGiT ztM{_$C)@{6v!nX7p71`t2j{9C!7op=PR{rAr7vKKbGdWeo#yA!yRlT+U6<7J^i{<#XXm=C~;vm z7`BI;xd4G@!J6~av@=D%7c$BLxr&{(8}yhl<;|em>&EwK7G${xp;h4+jTTBZWVDfX z5#qR*g)G68K`)?f!4b1J-(hcLp!|vYQK*qFTBX)GZ<;=(<9^1?2IHKDugQo{xG}v> z?{c=Iv-}DhgB!p;=8DiGq%nNmTF_?ogMLb=mFJ}%rY9KoJLo<*OV(_@aNml+R1sBE z>&Ke2_`;e!OZLJJI_!4`-ORjHE2o5Je^y`6Ubisp7On{Um<=EXSJ>b3+fkQOr^oao zF5<7r8Xo7eLB<{TzoXOioL6csT6@y;a_AEk%A1%DyElKt+!hoggfL}E7RE(@JH+FJ zHA=N;;V4}d9)z-77Q9a@*B6>WQ{EP%LBC^fVGqa|<$K{K+3Bn~&(^1%3x=Fwdo_p) zSCr@SR_?mL6!mC%TF< z!H4Fi{AFt+YQdkWFG)WFeRk5i;0@9V8uyFcvLM1e#9I`fKk7~EQC+h?fXiGjTL6?E zWWE)4h%0c#dZyLr&0Y`x5B!bfF(pI^7U(1lQ{apnrdbXa(o#YFAr{fFeWvi-K2JOl zrZM03F*7EO$ZcY4a5SIQ#>^eyF<&jzGg0sctmh=5fGXYn`lq=z2XSH9!`1w0vejdQ zC|IQ_Z_X^UTFH`lNga?Q?3<2gG@B3o5jX@#Nq>-lKM`B;FG9!ZEh8P%x{dRsTzEG$ z%b8%BCQ&`t$~5?Ujjwa_Rt0klXOxtfq{~i|i-`(u2aS$vMS?N@kkYAa<|o{EUNr8y zJ?k7vz(=GJOmSUOXXp)h!Q81W>M4JcFDq&h+fkM*(kJK#OoWV@clB{I0w;lmIUlip!Jjoy=p+!Sgj zrN(2eslq%-tND9;m?;M>@I03hW|)7w-Fj^D}!3hupeO}sZGv5m$ m;#+EoB67Rjt46~7o&PedgRhaB5AY`D=2NWvpZwt|e)WHeF&Lo$ delta 26 hcmeCPe<#ltDP;&6Le(&oI)+e8tflmnI5fpeA~{LH+S5iULyg^MpMAfqRUiBEf3M$s5C8oo zzj%VF*ics1w&XZd3fC=px4cz~Y?7kP@4R0nGxdZwM^-a`frEH4RJbZ3mpbd5(hloC z53-m&TrpJuP7zTim-~WX>{6{K6-B$a3Slk19CU!oltIs7+l*?3=6}Jka8-=bP1r-{ zVS?O>I?RK~jrLE-OHxcKr*lwR_$J7PjbY405&bQ9lCDy+M5hkA0UnsiLff%NY;o)u`a1H!O)hCFHyYF26}e4f5UA0aN{ezJi-#upM7%>~-HaRi@WFR&j$0A}I4?0Qzg z^+uNVh&4{c`AWWpJcGN4AzGn}!@<;5O>y!lT|6vwkiS8-v?&liQsXqk&-~@H07$b`OaX*IZ!IS>8reo&eN#R5FfWU!tcigQ- z_wX&>uu7a};ycnUwSb=sZ(5ww9xei0IOlYD)#M_%T;0ib_!o@#t*63SFn}1pFZhVs zBrj2(pd&eMTsO_(umpC4oUjJ<(Ftj%GzD*1P03HpQItlVhXD8BPwBW=Eo=eTjT72t zYcp8Mj8F$b38<&bg>;TX#i=T7pIrrOxi;oCq7+n9_1q{8gHnA$Tj9P#wF^o1K5+(r z2FsXZF2hCMPAk)Un<`Ws<#A@6 z-(daJoj@Ppe*ciOC3u$kK;e`%RKkhuHkzC`8V7sAVXqRs%pOzPr5U2#n$`om9aq2> z{HNe9#_YHp73y$G+?4465J&(yTFk%sx)ODAUSvW=D9_BWlo{V4BDmG&!Bq{Q-SSAMu*u zJlO#DqbR)0Z;;N@z3$rNMSa@eN{P(3U=$C+3tX8{LY}fKwc^y_u#?H;PDjXekONn+ zDu+P2m8mrv@8DT(o`0445+hJT-=t-{$b41HvRJrOtPrnJ594~gnv9Vr!U`v zEtJ%W8tk+;+O@b_Kq@WH;;6mdJ{zQgD`BbohWiq6Q5;cs@SWig&3~I~f&oyBEBp~( zBJ-t5WgGi-e{*Wis10U_ETSnq5oS@Gv{{zuQD-RGYJ4;7AalvO2TypIDimK7yI`l) zsr}jLK~cJx=835YevZ1!7x4Mu6Jw#)Z?=N#Y#v(xWzb44P!`C%j`cwQMkhW z4ff#`a4|DPJsns&n_TFwq!&wf`8e!GTY*Pjf(!jXZ_sP~H`wd)OF|x0!YxQARuMn* z&ZUZsPs0hGQ=b#Q1Udfqf=9u_puEldm$BU{1-};i)nD@8z`FB{H;pdid_QXa-Z=n~ zbVe=YK={7Z>nuPX-VvO1D8Gh^$(~Zn^m%>8HhVUVgT-jXd+%c@n|v=JDgQSo6VkW; E2T#X0Qvd(} delta 26 hcmeCPe<#ltx@;(64S87 zKlIi*E~DFG8pB$(mbS-0ugoI8bs`NOOYdqx)my36Y&rNTYxx#8S2eG%_8?&@ilswO%g5U;`S zoxS!C=mfHgk7)@WW`C4gWS@LuJ!$p9NBVS8IxxjcL_sYNoFX5Zqvj5%)-Y<51>vT= z0ez}=k-cV-wH=aynZQ?q$HVGkQMo=tGG?iL5_;q&DaZ!-8eIvkLkU=GXPhV<6(>?` zBZ=`}p%!Bl6;an|$X78zh?4`}X%@l0aR=R?@%&c5ohMn?W4R^z3p`}RQ5OsPrzjF* zG?nx18tS6nP>o*AT__c=NeO7RU$@Rd2#p0#s~7kp?@>CGFUV?Z!u%1WwHQt*F25)( zX{jppJUMKRnPsq6-KbHK@u^b0XiUzKxbi$&7xU@qJFy5&3lWigdZp@x~o_XUN(l&9`?|yfIY%E zJ??(wBvRDC6~=-d;@3$ZUnPA8TO8jSg6GhC#jV;~e2`Vjb8;EHV=b9Kgoxf)^lBi> zyTo_Zp1_ynqSTn$Zd45&RpP%w5gLS(;D!nS7L~m>VjNvP^!` zPxCmtnos7A(AD^a@gmByKlx#{Tiis$xufqy~fww91V*S-6D04bABZ-Uziqn{*o_r`!4o zJkU26*J+bH%BST9r5-x1bLK3$tbK(e0mhlQQCq8)!yw}M;!}>&^dVBYPFw(Yf`D`LUoGQ=)EBq)lg!maxtolr)bdcVn0Je z#xA@}c`ocFSv%kA@5tYvw~%jC;a+yYixWYpW(|4Q!Sve7dwz{#d?T4)qhge1obTBQ zScjC*8hwxl+0UgO`6QIu8FPk|>5D}hRF5wRGl5qE+aVRS_L|4Yh`IsYT$#|zGDg+f z4j45*G*6N8fTWg)Q~YXRy69v5eTZ7amQPybE@?eW@MD@)d>yT$&Gzq{PhmjRc{NG1 zFZ7*83!bJMa-RE7S}OFCT^`UbZ zbRn0v4?-OMHFQJ&GygZN*iOpAEjwn-lSBHK!4l2lLwuhyrF6g{tJO@BC$$95C|GEb z#?lhZF3md&WDp^TwpjNWtZx##sc&$E8qm;dMA zhyTLL(?8^^o+~TsSosQHilQs8#@dy5z4H_*Q*LVGQXx5QUNlZPw?G$nldXdyXh$Od zfSaJQJ+J3yZcs6FS@Y$;0>hrkC|) zM0mAUE&R%VCcQOX=e3|L{%7oe!A6kFJk2NByFp`yH#XaSD6JgQrp5K-jJ3|%CG7Y4h`z2q%6oIe6dUlALhjVU8`h5C1oGtFrn!_H`=lbS(`+gvy>oAZ0 zo%ExK7&oK@d%&C3x9R8IKJIw9On58+L=f{h;|uULbIV$Z`9$}R0(X^=#$l$q_-f_bzNnj{-M zW(y@C<^VnOTB_FEK^x>A)sr598F#^H#pAS*)?vZ_m^AU-N>}L52-uY=&#>?gp+9s; zybWuEw}MhI0iwZoo!iz{T*a5GYt>4w()~)`9#41p%h^|jGVTZ8m^Pv@wuHHYw`5kN z%iUo%SN*=WONe08JeE1_x4|6d31I2h;0d=y>fo;i%gupQrxit|N{yN$Cdrphfx9_a z0hZAvxYw@(+2V|1NcZUtQ%v146SPno39T3QfN}gFI0Ry#2*-QvOLhx+Swz|ur5W9~ zO7$z|dqIM`DZI>{1BCXYUKYc7Z<`sUKk{D?eylB4lkAuqF>95v1Ue5le}7bsP=K`$O+> zS#%H1Bi-OUE%tZW)6OX9l8d!5`FC{4jOcqTgPMFoxWQzBe1MoJ+XH^&4yP+J2gx02 zT5C}hbjcn~pR(U1TNs`x2PbF}H3|*lC<1Pu{*saOhlPH%Lm6d|KVL|5_f%$Rw~YlqLWhtWgY3S!-?ENf8jM?A8*`O4>8T=Yk z`ZYfrx+BHGzKop8GckEq8d7$PlR(B*xR{oJ?SbT8`%GERT$@tV|I4dW%Etcz6NN9A delta 26 hcmeCPe<#lt-uIpRZNEH!!1Lr; zT7BvVeD(9?<-b~ehTj6qR$r=YRTJI9FXbCtE@+@h_$50=%H0OD%D;*#v|F)$^k`V- ze-(a4lcYX)HGPRrO8NRq`6lkQX3VCb4UVA!=1uxKTqz!rTA}Qf8k#*w7o^il2Uke5 z$wsCYp2WHCl=V%pRcO+&dJIncH{7Psraz;@VOb(P%M8io+JJz<#nh7d&#(pU;D@0} zt6`3COvnLyoMuCFn;}sO)M<1be-zEoY-TEIbI&{Nc%QVScPh(3kNdIH7+wUw0mT?c zJR8aPRmA<&|D(}uP2u12(?SCaz)fa~JIraM+1`-a>lbsM#uBCKX;z3b!vPWp{n6Xr zB`*^cDwF!4)QC^mhP@O{F<&v~$u8otLvn^v1#{gjW6mxBqoOKxv2FAos72juV??a8 z=Bn_v0Q5oS7LyV5rte@v!zk(BN!P%a)yMQ&VIUYc|74SB2iw59w1vKrK#P(u4$!!r zWhC7ZI4;jfm24mBrW4R&Himij8}{FEzWj-PLjI7l{%d|CE(D{vD3}k6(1Ln5HiTq< zPb$x8BSqW{iokMEhCUHT`3lTg!-nZMa;MY+`2eiM#iX9;2R*^GeaP(qE7S>nR!lsN zd3V2e5Z?p$$@Opqw{df-u71P(&gnOD++!eH$me^Re9+I93MbK~u-aTo9S@Oc#J-l+ zFc-s-s2EJpUkAjw;jd!fiB;&A`L3YMMqUQ7nG#Tge@N^33Ux{PHa&0cH3q#epe*GH zgyCshZZ!>=*P0Rv22KxQ0=D3r~yz@}|AA}N&{Hnkp zee}=aQ|UMsg`--F+RXGiiTTv1cMUwkaqI~7z+3#V^aQsq_-^X!RDN_ z0KX`n)a%syV7WVNy_dcQeh+U_mHdZ^#8IV@t4a?Wt!CmuR3bq6=iJi|D{f)8qdBs| z%`ii6Kg!SsW20zqc*C!arfEI7m!9_z&{^rndYzm}Olys`JJ<|2pd4l`JqC}9fiwYg zy<%h0YND-DzS6+e(q1yb48i00ug-3(E6{}J^hh0so6_67(eU3C(Y!=>JJ`+KliM^; zs0^PnAGL0W+2{^e2Jg}?_>n+_*TFt#n=$3Afqlx1GKMr#jNb%1n4xH``;4;%$E5{5 zsnh_`%XIs~!$1Z-QC|ev?<=LTm$-`$wO_CXa1kFDI2M8;_!B%W!@BBtt{xX(iLplm5vylX6l%gq<}0#8Ona83;xJ0G$!puS|y$l zYuO~NVHQ!E-4%^nTg<-%Cxz?US;b@y1qDF~0pPtT-)~Gm2^-XHdWR4NITmt)h-D|> z0lGawyU;6ggS14O>}AFYcPFfq_eurqJjnyEu^Zr%;gkjKcAS#V>Zjy6deFb`4`K~G zkNeVx!^hCFSf)nMcK>Rs(rG52p$haaP(UXtk@AIu7+IahRew2Gpw3GB-~~KJ=9x+G zR4R_;C?ul5vS^^iGY2!O?6*$Mg&&8QdU?mzA v7ExWe-W*PC4KE8lu}`Iq%&O=`+yiFmGr>{k%5C*=_R5^9{U6?)Q@{6LP(d$e delta 26 hcmeCPe<#ltoJS zhFXS8odgIm6wp%QFf_4>gi@`LaY#xHqH(N49W@jwMZ+W=rIzaM-Iu$2cK4k2W4}Cq z;CYzc_AGwk`FOl3y8{<-h1usy4y%b_)Bsx9A>maeQ@ZQ#F@BLu3zy+S{5`k}Too=y zeuQLqmEL8IgQQd}z6NVRzECgrfpj~r|21_LeP3x3FMv;&igfhDu-N?2_?!QMG_PL6 zn^-eF!ZmU?$Y`?6ii31@w}yr65QLAxMv(9AHgBZPCQxVe_v#kz9rC*Wh^=7*ZiYSP z_e!^8XXN`-a;r%d8>FiDR%(QuQO0APVwOK)Gw%em=o(T%O8Mj3mgouop{gG%WYIgZ-cIGhyH z_(yqHl^%lD{OcI0bA6_it(i?{O_kmR7>AbXttByGLL; zDh8vp61}M;;_@BpC*Ls6lbvWrsDShAYeKy|f&WPUsehVWL|+oWB~HO@AVcVt7V}T1 zGW3^i%&m~I)CwK83B_?2>$A@3kK7!*P5n%)1`p|fxJmwGu*K|1t`4n8r*;-M)7o%9 zJOx|GGiHO`2h+6^S{+&x{3GG#00gSMxRvWI2y0?{)Sd7Zua=as99HNRIB8*fgvLl@ zDE!np?yY7DbG)nW4A`LVi8bO0@1pg#H^qiovES@xqd~1z+r}+%TFiqa4)1~cK?ZHZ zQ(Bum6RPH`=8M4=zJjZzUjanCrcU6uyo9GWTAAz*!k_umtO=G$qw*PU(q5rYI1L<@ z&Z7+=!d(!7)JGpThxA;s9Fqt|7+iqW*g;GDW}`j1j`l~^Dpg2h*TDe7+%C7&IBNHB zJ!+M5m)jTCv%hoAY{aQZR(tdKWVA;9IoR!I(9Q7UM7YXnum-|D`B3Z!(!OxB2f|`- zE9iHsQeVJY&5f=R9wP@+bpZ!H30P`~^b3#2a}+&C3L3$|@N#&qp`maW`d*ICt1iUIlZZ%5PAfR2QIR=NP?iqKPXMHp3TK1-c>Q zNPD<8*=4l)9fFG&af`qObRd!tdc7lhg;~JfmGY!KE)5i;z2d)MowHHj>g?c4lpg6I zEM@EXbYYNIStZ75QX{U{MCl%L!)x#sw1I*!zC?6b#gJN6cC(yAn^KRO^jq zp{wqGhxsc&eVF4t@Eh>5SeZ&#i``_O4btEN8ubYkBMVU~_4*6RckMXs=B_Xlz7A{T z8tox!NR=3~&ikMq<-!5_9lqp4IVraTY|ZQ6@Ot@b{8et0El0`7sJJ6IW=tDz1UE63 z2L896g|Hq)$ delta 26 hcmeCPe<#ltgetYHqez&uj3~9tF~VrK zaoJ|*ZA;0jEj834#Vg*jN))L9wGjI6rCfESi%Sryyx6=&ONWsvwqx{|L0%+ z%WFG!F#C2F7q_i_mkFVwwHHhOD23Dfo&I~|2~g)-cA=9Fe$81@HeZWRB%X=So9n4d zQg^U~iFx~yy;jUW1gl^Pk;zfyF!$LbDAR7y*69oef~ri2E#TiquXZol54xCB%yra5 z=12;979GSftH>O8+Ubo!BzFeV?El1H)E@JG#FmDo0{$dyce|Zte~ILglb-Bl1H|Tt z>D)n_uJ^^IWHog-7?tlcwAWxn%+I}MG*6AgMUn?2^v%FMnC2+@cB2H3^ApN#u@d~i zC|B>A3!s8?xE*vBIqe@HQvi?&r`{TMQ|JXzmvX;HOvHID%y|#ke+178)9^7T(|XOl zL1b7)bUz!E2W0+R<|rn5L~TsAQdff8lmfQNolT7BrrS#Wl-WpM0S|}@-=&IS$n}hv z*@+AJ4a%RyTyRQnif5Xe;0&KC9uM^48h6;MBSR$B|HirH)lnrvM2yj8VLMaJ($c+J z?mKx@bl`+FYeemHWD%vHS+WW=QvFO#;5aTcr?qtJ4JsO}Rw`K9jcTDph5I`F5m(1F z!8W{$gy3b+?d4nL)*L>>$?~kgfY)?6e$}XhkBigNMP@w?*-tsCxEcJGRQSvO$EcDE z|BXlV7xp9dQ?0~1&%LcQOB{+O7ZRLxid>_|=yB+g2Dp-*q9*Z|$u`}x>ZvD!lCqs0 zawgTMwK->hpigMzR-=vn$DWQigEe@-$#Zha9=1bT;%CW#z9t?uqEM3ZRE?9JcrWq3H^_}DQxZZ~&F8cWW)Ep#O4ttS7O5gN@M*M) zoV4FIk&{mqNhR_lrroJl-%?LItC<5*fe=O0Zi@4nH%Km%J$}CT8)62|3q#x&q|k`P zXN)O$M%tu2!{zv0#${u~U5Uak(XA*441w!ZTc8CMx)b_c-S8T?W@S=ZfGf;2^^7q{ z2;0r)1wJ4}em{~waKD#(K8 z@DQn`f5+`$V`QCqR;@NoI3x8dA9CYfj{Y#5_`5TQK4BbsE9@Z!FpC<1JH0FB5wq5h zv!im2Gzu>pW=G^P z=|!s94jbpJIHsvFbOF9JJWfqaqy_Xb*7K=-c-NWuzt_361STa*PZnWSZGT*U>>Gj|tz5p;BByT#F z89r<;!a}h|&f#QF)aK(k_9J??v_ZT<6?00D=+dAv-g2${S98_ntXq#gpF ziN}<;_@j8yaP^q;XLyk=qB=l1a8PCdqn~)4Mz=oVrm|Q*9c-kwCVBM_dM$2YvxF_o zCIEcRUkAPolSZ%7{>r%mEj}&S&Pv{TZ9JZ0*9P7Qc1q>+c6V>`f<1uS;V`(4YsfL` zHrvYH1ZBx(^;P2txFbGPmiTOZR^OI*-`;@kF<%CzU<-+WUKEF${r2Qb<_lgIvsumv zhA7QE7{8hLIgW8_q`$HoK&D$7a!WA_j^QP@%sUES=IX>@CdZ3vE7d3Mk-!1@OzLM)ldw)OH5c1_)DN2G+Mt*>^I*5-QvF#BrN!szL6fMF3n2v|K-H2wDo^H CS1?Zi delta 26 hcmeCPe<#ltz&~5!AA#Ir5PDPnZ$69b)F@}sjuCb(#RU}j9 zipkYwE6ir;5r-^kDN& ze&NjV`_!(QVeWG;;$(siAPbI=RF0fOD^ib=<#?w-E13U+R;3vOAx*l1W|{=!BbF=lLFAZpYb@(|F9hM%$F@F;&WmBx_x<^CX4dhQHA( z>~UdHa>dDTRL@o&Ka4!5Zj`&ghaT^DP!T*!CjC)zTlgJ2vd>nGZf(`6<2Nf<^5K4x zp#dnfL;mY_#mn;dYUiC&c9UsSU*T=7*uF@|7N%t!mU8*ZkWFd4h>R0B7?h&OW6Wvu?MQ)Rs4 EKgaQ)`2YX_ delta 26 hcmeCPe<#ltanQ4hdWUXW5l!<8w!)o<}O=N^phqj~d`=0mv<9Wu<{ki|&_jTQK zg>6r;H5)1`UoJetR-ky{2UQ2;)Gpyn@K0mHLS%}19p1tXXq7N1d_h{W$F*XAk}Z{P zG7Y4L%%BXs=Y2bS(;lZzs4Eo){n2f4-3WjmhErZAStItS-E5cpOZ}id35FOA4UrC1 z%0I)EM&(AI9)_7)#+SNp;#qPn?&`X+cB4YL95`@MQgHV3%UxV)H-hf6~MUM2@T&aMwJ|7C1KXbc}W z7daYUipt0v(JZr&rNLc%hWeKH556n+}=8;w~J>Ry7%9nS^8(^7PtWSD}=%=^{ z0kDiJa>2M$T8{Xko*a>_`yb&AacKfQCbOUk=?#Fkco%CO& z)C1z9c!SZVF9;Dg&DT>M;ZujotSA#O*2^z%joPW9r;;28BGxoY1w+WZ~-$ygv1;ImG> zpClYP<-hN*NKtu8oq`ZHX=8!^bE<@i!;pMNmkX1$?lx(^GyehyrPsvGXkAoBT$sck z+kZ9>N0-Ha#Z-QGFl2q|T_XT|KTL-cbgmMYCh?d-8`Hr%%yl*wEd@*IUvLSu(COFi z+E?h4%8TMSXbH|o1K{t`Pn}f8PJ(0dPhv-zZnw-F_r}1}a6D?pGt5r8kIw{;>chrk zm~ch>R@6rj)yUir{$stTf9QS0&8R1Y3~u+HnV0ZV)ab780ChphQ+rTom1JM_w;&Ha zNiLH(n=6^jgI=}vgc*R1A}55f54XePRBZ|;t%__qtQA{gxqLD_>+A_`k@eX2T7yMQ zp88$+D0w@ZG42Fw=+pFJuot*YLMWkT?d94|+n}oCO#*;x=Wpo3<LL93()3oD1HGPO$w-TKH9%)>mY2M@ja6b{#wj7Bi^?_b#Zm#x&@C$&M?te3Bdt zTIacShADf{=|HZsM_ogG$GKou26b=%JQZyx4P1{5xI+0~tMF*BiL`^~gK5imr)Va& zLYV`h^=qp;yg0u=PLu@y<~wDcdD2;>DRvwIp@cmTT0kd#h3*fRWdmaeu9G&XUo*=> z)nA7F6zK`}ILCux?zz}%X*Rl?RjuBrk~#|8@vCr{zarj;?z0}$@?FSGh#hP`s3!t7 zhDw4h*+;Bq*rY5`Ju2hvbDQTK_-(k}IGN=xBErru+vBzYPr%3lTMlQT=X{hD0(C)1T(^%GQ-R{*R(D6 weptX&(IsFSX4p9UY52VHJ>$KoQ7luAFqKhdc;T9yPhFUj)&Gk>Ovyj^A2%*8j{pDw delta 26 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 delta 26 hcmeCPe<#lt