From e56d31861853c4b2f79b9950e4571348fed4fb8b Mon Sep 17 00:00:00 2001 From: Rebecca DeField Date: Wed, 18 Jan 2017 21:47:28 -0800 Subject: [PATCH] Delay Plugin Redesign (#3120) * Delay Redesign * FDBK instead of REGEN --- plugins/Delay/DelayControlsDialog.cpp | 26 ++++++++++++++------------ plugins/Delay/artwork.png | Bin 14151 -> 2474 bytes 2 files changed, 14 insertions(+), 12 deletions(-) mode change 100644 => 100755 plugins/Delay/DelayControlsDialog.cpp mode change 100644 => 100755 plugins/Delay/artwork.png diff --git a/plugins/Delay/DelayControlsDialog.cpp b/plugins/Delay/DelayControlsDialog.cpp old mode 100644 new mode 100755 index 116ef53a0ed..8436c6f8a67 --- a/plugins/Delay/DelayControlsDialog.cpp +++ b/plugins/Delay/DelayControlsDialog.cpp @@ -40,46 +40,46 @@ DelayControlsDialog::DelayControlsDialog( DelayControls *controls ) : QPalette pal; pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); setPalette( pal ); - setFixedSize( 300, 200 ); + setFixedSize( 300, 208 ); TempoSyncKnob* sampleDelayKnob = new TempoSyncKnob( knobBright_26, this ); - sampleDelayKnob->move( 13,10 ); + sampleDelayKnob->move( 10,14 ); sampleDelayKnob->setVolumeKnob( false ); sampleDelayKnob->setModel( &controls->m_delayTimeModel ); - sampleDelayKnob->setLabel( tr( "Delay" ) ); + sampleDelayKnob->setLabel( tr( "DELAY" ) ); sampleDelayKnob->setHintText( tr( "Delay Time" ) + " ", " s" ); Knob * feedbackKnob = new Knob( knobBright_26, this ); - feedbackKnob->move( 13, 55 ); + feedbackKnob->move( 11, 58 ); feedbackKnob->setVolumeKnob( true) ; feedbackKnob->setModel( &controls->m_feedbackModel); - feedbackKnob->setLabel( tr( "Regen" ) ); + feedbackKnob->setLabel( tr( "FDBK" ) ); feedbackKnob->setHintText( tr ( "Feedback Amount" ) + " " , "" ); TempoSyncKnob * lfoFreqKnob = new TempoSyncKnob( knobBright_26, this ); - lfoFreqKnob->move( 13, 100 ); + lfoFreqKnob->move( 11, 119 ); lfoFreqKnob->setVolumeKnob( false ); lfoFreqKnob->setModel( &controls->m_lfoTimeModel ); - lfoFreqKnob->setLabel( tr( "Rate" ) ); + lfoFreqKnob->setLabel( tr( "RATE" ) ); lfoFreqKnob->setHintText( tr ( "Lfo") + " ", " s" ); TempoSyncKnob * lfoAmtKnob = new TempoSyncKnob( knobBright_26, this ); - lfoAmtKnob->move( 13, 145 ); + lfoAmtKnob->move( 11, 159 ); lfoAmtKnob->setVolumeKnob( false ); lfoAmtKnob->setModel( &controls->m_lfoAmountModel ); - lfoAmtKnob->setLabel( tr( "Lfo" ) ); + lfoAmtKnob->setLabel( tr( "AMNT" ) ); lfoAmtKnob->setHintText( tr ( "Lfo Amt" ) + " " , " s" ); EqFader * outFader = new EqFader( &controls->m_outGainModel,tr( "Out Gain" ), this, &controls->m_outPeakL, &controls->m_outPeakR ); outFader->setMaximumHeight( 196 ); - outFader->move( 263, 42 ); + outFader->move( 263, 45 ); outFader->setDisplayConversion( false ); outFader->setHintText( tr( "Gain" ), "dBFS" ); XyPad * pad = new XyPad( this, &controls->m_feedbackModel, &controls->m_delayTimeModel ); - pad->resize( 196, 196 ); - pad->move( 50, 2 ); + pad->resize( 200, 200 ); + pad->move( 50, 5 ); } @@ -103,6 +103,8 @@ void XyPad::paintEvent(QPaintEvent *event) QPainter painter( this ); //Draw Frequecy maker lines painter.setPen( QPen( QColor( 200, 200, 200, 200 ), 8, Qt::SolidLine, Qt::RoundCap, Qt::BevelJoin ) ); + painter.setRenderHint( QPainter::Antialiasing, true ); + float xRange = m_xModel->maxValue() - m_xModel->minValue(); float xInc = xRange / width(); int xPos = ( m_xModel->value() - m_xModel->minValue() ) / xInc; diff --git a/plugins/Delay/artwork.png b/plugins/Delay/artwork.png old mode 100644 new mode 100755 index 2ac7a2f7496d910b711bd0e112cc12d75812ef16..bea15fe2b4abab25337d3617f3082e264c88de06 GIT binary patch literal 2474 zcmZXW3p~^7AIHb3T#A(9pcAT-9J285rj{~Y5Od6Bk-HgUW42^#wBr(;;(toX9~()t zS;!^jHX+^Qax!BsBe!hKB{O&b-;VX~e_rSJdi{Ri-}5}5=lOlV&+~lW&o9y5?!1zs zrXmOgQnI>W=>P)B7y|FD@|%EXwd>^^z-$P&uyT|KuIuuC2|!sP^uncZK+lofG8PBY zuK|@BxU&cx9OI9R@WvuR5fKqaf#@sYzTTloBMcUmE= zKrx|_*g#YO4g`fB(y_<;1PA)+SYkrF1JQuoFVNQ;7l=XY1mJL?W?--{773KEB7HF- zA;703Zh=Gp>f`rU7cc>d#ej{C4uKm7s~12Z`A93vGmh6XCVDZ+mysHB{ltoc2OSbN z=|6gK5-gRC*arYECO@F`XZuxOr})idRdq7O2yRys@FP za^d%ZMS@bH2mRN2^~9K0S#y1*tT`t0Hm?#R64;E(n^fUPk_S2Tl2h9dE`@%{z=aW;>V5MT?(@7#J8F)(kPMRC=ps zA~-r>erOxQR9qBaKTvR_4E|Isr|(M5ja+#-rre-{IK4#@MEC6Ie>iu!M-6TGO~L$b z#mx!2MK^vVLe&%RODlzvO5>dfeT|Gi^-6yUk7oh`Rr38AI?9^b%4pXpu9NkVH`Ix* zmGv3VBpJ+pR_n};y+j>vlk`Ky-5;C!BZp6?dAz~zFLLdJS4N0-SL95r5}XSeL868U zPFY{^i+vlu4bd}2M9^8XAa`}+bU37WgLA`Hnc2HG7CQ0J16g1Pl)nIaz#%Ftr7oeb13X_^X+?7@&#!_X4jsVB1jnb?75K#*zFZy5a}p4QeV-FB#+UV~W)&$Dz)^l-;yH?fJO5 zspF2p2IbN@z>%KYPEA3z4j8ibgS6TgCeOD8OL#?^;?_>8682s4SB`O}Br@K^)8G*e+#E0F?7#;Zvc}>XVQlQnGMF0GZ2L(^g{VGh89lwM|5Y ztu-+5i$g_6R@D(G-u0ZM=;4MYDwXv0PGX_?DuuK($G!(U>A@omr61P3!;b*799WAY zOc05*a&Jy~w&$XktsZw|XNPnC(;RU@bCq~SkL4on39s56HTz6+%O?B`3dUAVjxMJV zS5v8ZZLut+8(LSo4VYt`^i1N?MJK0T(s<1@kry>IK$vfvY+us8Ztvt|zWNR(7*4h0 zyhFiAjCk@Yw-Lh35BJ2($rQb*B9`0@paw>{cHMPvY`wLPs<4{Gk>>Ik@VWn5e$;gMC>&Oo10Y**h(OMvx+f;_KsG zfS<`x^D&Dn24EK__L#Z{bJPx^{guAAl@h|MUtG?v99dm(p7hjI7SL%_I*k%F0xy-D ziq4Ew-u$H|j*MUU^L%BST&+d;9FB^UK+VCxt@4_8$eis~|5wdG=0SSNmd!uM_Puut zJHDVn*n{_1%UJH=C$ob*Ytdm_*K-z5zK`v?FTn~je*aP_0218Dv-tY+Nemi=@Du0T z9wmNBdcGvMRLx+pRm(j&gbyZRRu5-}qSpC?l@9igohKm~Q2A_1<(7Z$dWtD$gSIOG ztWsLeN;N^f1(K*OZKdc&rZocDwMRpKXK9`Fd^ZSdd2;v=dobf3RW<5XmysI}?gkM( zxK#KHvKV#n*uru62V#)8fCA}FXSlF4A-zCWvyndeB$>)Lx;t8-bkiX?z$<`&QxGN5Vs56A;gNKPKAsU z#EQywbT($#)HxSkahurOdC=}7dAD_1_SmV>jO7g7G7REDds>9)?G6YgxMN#JuAPAhlxuF+odw~kgO|n8jFy~N43jdoF z1AicT0rxDatcrGZlHc{Inoe+BO+?;4inZ!H6_P}6wbiM8rvbvU(1N@ zC%B&v7lo&p`o(Shb|!_+n9f=PKv~d8kN{#MNaAzN;i)kM+9hJMC_7fSGf~d>a3k*frZy^{{;+4sQCZ@ literal 14151 zcmW+-1yqyo_cu@k2}x-bMvagflJXT8jApQn1{ozF-EDxdk)s=7)W+zL1_@~pDQRgX zL_oU!`~A<(>ODK}dEY(vx%U(IqV#msD9KsKZ{4~@sSZ)mzjf=j5b<;0gZso+{iS(0 z@$EiRQ%&X8&Ho;sT8k5jN66eD#-6usJ*4~J^Y*QbEGFVXQZIFFFzM1A@&{Z%$ehEY zTeqIvQdfBi^PAlb9xex{?FZX<$0%0zavLLW(^hmo>|ixYQ((=xhq@;Ri1)i?^Ayqd z%-ZMeo9Ny2x#Tlb82G5)fUnx|@;T?ZE}K{571Z2(AxHj1#iko|klKD(n5;iEG!$Ao zR|YcRFJx-F9&iq6y~!#1EvKNkcwJs@*{UYc7_<8-gyDVnR>eGYcO}_^``QvHlwy_sw9 zU^j$_pGUVGmk06LSFC&fb+SA;yy9!4Zmahvp7ULCG2g}ccExT;yJ^{^hQNjE(c@mu zO>0%lC&&z5r?Qz{AGsiDL$h&7z`GPcV6UR?8~|>)jg; zG(p)nKUdSPzihh2g#P_Pdc4vT73;)nGno3!@{g{_;P+srpc?3Phox_drQTU#jTuRV zeQxM=;}!8Lcaq=<@D=UeXQ5}B7u%LM0eT3_(5s`iuVycoGrrP4KvTvR8ENmk>--1I z_Gn%>4ys7ZyxE99ih9;o`K0otZBl3rHInFIlrp;zK1w0;jyiyPvHP zfA%An_*aMK-k8vlNnCVsUVmG-*($A|@`v#W>SSqwdoykQ*b+XqQ^ldAe#CcQ zrd70^;|+om72VsHs0k5@ezzUf-ZAKTaehI^Fc{TJe8lffmKt8H<^~<8Uu$XuhIVvA z&kcN+?xCIqAvEo`)0Ceh%tx5h0ym~tWfa2X=|pn!O;UPNY>j=%7zDX4fa3eq!B)cqBpq;g4-4gaU#3Z2 zBR-B zhu3msf|!Q;acL7GPp%QoH-E{+5wh`!dK4RQ8yjN1-quNiFGqz_B^EO8(Bh-Iqrj>vsvC>S zwX%q0{OfmHCs)1wk#SJ-`J4XR%&6`gYH9A0k}>A#Kamuputno2_Ef!+5@*B!xpBSfuRC4BA`2NqpPc{|GKg_84ok` zr1p=7MmrW@;G}^ zS3r|_aX+dFS^h)A+l7)X1g!j+`w3lO=(k@DzaGMyqy1dUQxuxZRk%D6af<(b?8)IV zFd#pRM&1Kqe6Rj?Zn)NjKuxMf$>o^*D5-VD>z%;0K|-Vs^VL2Tz_7LXU$^zCrpDcN z6(k$2hl@!v`>TM6i;oPC`E})EiyE?ZX_CpA3%5)vTx9`mjT5hI$i!Hf@;FXBWyq@D zWEJ%j!yv2>NQl1H0ML>txEq%lSd^xX9`ln&UF$iSV^Ya) z{3I&tj$aQiZ~1^WNR>g0?_r596Ql-Z3J{IHwbP#E#w4H?fL3bg=I1T4dHL0IzC~u6 zst!y{wSpm?5A1a$Dm16BPOxg0U@YNeCqb3?^BYAnRmkmuR~8@%39>4QyL`Wr2r9<1 zTs?p?m3-2K1hkePB{%c33D|q%H(Pm#;jWzh>Zxk1AQ3r~4iiA7-Vz*dBvVCMp6?QN zydR_MDkK3C%VM_$F48eP+IWHrvSm?KWqErlaR+KCk`wW~|3^>Kz3!PLLdoCxAwqI; zfr&)TEFrxz6%|w&Z&L}6P^8}@|H&_EXA+%y7PYpGX5k^GX35J$O|!TR;2t~}*8op4ABeY?sPa8s_(iJd}*WuwHxV#aFivnhswY0&n36{s>+2iB{)n-SXOr;;BaoZO7 z9CEQnVooF$5eWQPM>jvJuQ`^Pg_m|UUi6^Apv)ufm0=BQl4VMO?mPyTycZOlEp3u( zrtWDxx%|>9PZHJ&-l-{HF$D1Gl$YYz9N(5UQ+Pm_X-r_MQp1Wj#Z9*k`$d-pTgWwjEhh(8lutKh|D+-CjdB`E?t@%qM zwIE9Ae0sq`<8)p@LM7~uIY@SuNkpo^&{Dq3v1rQ;Y+iNy!pL26^*8H(i ztE-~EJtV!@58?nV0Mfe${tKcyFmS1L#UIi!b_B(|UfX(ImE*lPWKO zfwy0KlyWJi;LV;^m_3?IjVG4*36ZSor-p4t=v(kuA^dvufi1r*tS6{+@|4H?JG<{~ zIPP}p!r?0SWVg4`QoXy3V~W;_1|XJPbN8#jb3H~npkkrVy~*=9J64aIeAyFhL7ofi zJ9sLnG6)vdRY(Svz>;6(i=CkT+?RJlhqWO98mi*;=M|l zC)|jIEav`AL`60>$`BX{Pi}eydo^%8akU~g^E`uO5dN8P&2_8`5T}qwRL5z_`nOiy zL5ib4n*Htj?>HjP#50Z5u@vDH${x`<20?fzzDm+sO_O55_l@Elec%Ie3F6z8w8WZ) z{I0+C(bP?Kyi9sN`s=%@I&FYTer1h_==Q`wmxZc1#b9?IfWz8+k%tK+TbdAjDd^U| zWIJY(A`YOf&^03Xh_)D{^g?VJXukfP&fgVJgs(X~Cd*Mf^sF;^?pj{`LadaGK|^>M zg~>~v)mLwz>92%`CuBeZFzQBJm~RfW90C>hnR16YVcXKxYMkju*$*k_^MV?ldp&)c zF&Y?ipIQt)m!&0T1Sx6@E6EW=HydApD1_x>iQgECMNgl=QwdskXm&;8nBc!EgJX2qC=*H~M*RxG(p(F zaI5F6{;{)1FpHi24h<8F{l%eJ>o%?r@`Y&Fk=o zB`HIDI)RHi#4=!($#ms5dvALFbq1xHg`?Ed95v>fq9c-cdShQiG;#sjdATH;=(eev9-fOY(jY4&-~)ZqFe^v!1WIF#pS~q)i?^ zzO0YX9%QEUCc@g@nGe{1D10Iep$p-fH|=W_bXjUd8q$%c?Eblw{jM*NT_W`mbzfO+ zU4%tlyYRboKM^BJ=2Ouy?Eclsp}lQph~wfaT*(hgc4R*wX&y-24O=gu-EFJV?3}4( z0gadpOUiKz=nNe`4yuO|lfo3}XlJITRWWrM=+nr*|ETQQXq3D9-4q`1F%g}q|IL$dp{&3PYX6c2$=vdPkMlJzGKU@b+)X;Utl27 zVj9aO2w9Mf=FtrfMpNzy^J}nZY`T7=;Gf*AutArR&QPEFW&WG7xS4rhN%a+hcRM;V z-{;djj~3voO^=*cmWkCtXLhT^!7>QFkQ%CYY z8bvn4<=Cxe={H)*$&hHWC{ipQR5(PQ&#%VJeVSntDBwehD3f-4|4&leDQaY*ee<7e zV;&Uqt1lUbd&04Y)#{>$x(`K%n4wfUshlXBo~mIRlWs|`-qT^IimLRm>NxrO{`(b3 zuFCnGT$+ciAOPIRAMu@LhJR{P6c&!o>O$6BsBqDg3g%1%A#6vSsKV7Jwxg`b_7)Kf}ADy$51&IG4MQkz=rDb`tsB z88f=)t43nD`;IybKUZnezhrwy0v{z?rUHaw;py6wQaF7FHWt-J@uSBtC&Qz8`~J7o z8mMeIY}M1|fyuu37t zU${&=()M_jh-rIa6gOjrF0EP?4S&px^MonXj4{??8yT%FTp3f>dOk-?z!YSUFBzQ4 zFGbY)KtIo9LO2$Tlb6X*{x7NO7Yjy$oDOx!#;C^Q_`ZpyDuQG0Qu>%$oJ=6jXT%?O znPSpAJhe=BzW`LK(ws3tNW!2^{gD!i9P7>b0JgYsqHd($XzP~-VI#Xu7Cx>33|cjF zFZ2E^x#3BqytrTV4(_g%T!IX!^n1-=P>$aNS{;J-%^Wv%TQ^J4QXWx|Y7GD~ypVPo zL&o=cSbFT|gZ7e0uiEBOe?pDGH|J;ezqs4dyIP@p@%Yimfcx0Zd~;=y*Vc3|hobVH zej?YVL#bSn=1${S#6LKD;8_;S9AV8d6$XD?m}83#Tf4XWWhbT7NV;cm~ z&z~-xe$}4WtX{&qqr&ALZPq}Zt=yRXNGjBaO3NsVgB+fg6f6adZkF}tCg)CmoSKjcL8u#{y1l*ELr;_WCez6ej!<`n{hU>;Thh|< zpEAi=N!2t>SVNf1UnPav%itVqf6$q%cl>=QC-@&L4Y2@9-$A{b7E2WYC-2SENw1K5 zv+*sfSv}eOj75iQ8Lpk{*5_&bkpJWprZoX!yaWZPh%S(&meyRdZEad?S zaUE2wnui*`u_!Ktc-Y)!aHi1u+<%-v7~T%H`wE_WToD^nq#$_I4dUQFj`QK0AZ71g zP~o!bQe124;-D0ZiBtj0Pyt#nzy8a6za5&yVzMQ5=3f`M_fSpjB_j=$i86mFGdzqD z!yp0d?dFa`EC~#0oDh?^S3|u9PjB*HX>QI?g*kcL5usB@YkvDSfrHBB5}W3k|+!1O)Glgp$G3@8zhaC-4w=$?E5%!S{~oQJ2-Hbw*kPn_W&nttT2)$7_YS2o4!< zayDb7^WRrSdZ!b9aD03Q+2uV?jVdo-%C}Qj=5lA>`Gr#ggJnyyU{0~<0_ocomle{w zjAt#GM_d{#r{M9F(E$b+(qdPoWExk75TUhA{XRDF`+s*F8{a1-Lw;dI>8_MB=bR71 z4X~8&TynChT>+q{pxL}AGv$5hW0&42Rix5;YtyJP7b~K0B$`c!iss)NLhaY+M~uZj z*=U-O$ww&OkSyv-&sWb*lw%FB$i5a_xgf_v$O|Ll; zD<1yq2zVB2(+!9)%O|+d7tye)QLtB)i!XXo3;wHGIWfrD!$eS@@Dw&_07e*6Gm9ugFMiYfX|R_c;rRC!;Zu(nn_$IaJ?E&N!;btq2R_Za;|}&aO@BWiZvPw3nP6 z%!1EulvJp!1eoyYn-Ow?hO6^epq4GGkJsx|laHj0{Fgdv)H>P4BC||jMVSGu(_$o+cVt40#78U<-u-RCKsU2 z!6;~9Anb`OK2NWXmAl=S@JcbN%>DBtK21+o)3~9y-+n$IQAW>3aV!fNb9{r;+cED7DhO1pnq> zWB#a9h&4+uEp@rd>wrk;PYG^-FkP=feh>hllv6`mM&j^x2 z70smWrtczQl%p5>bK{4amh>iJl~o+63a6{mdNgrXqy~EcdtU<% z%-+(`hy9xV&7d5aiq%HdO-J)KCwW)Q$fvjJ4sA zOHu9aYcpgTl|9QolH#Rxm9=uuF)C{uo0VbZ8|5NBT*UUv0AbzRCNjmd7Atz_WE@-K zAIwaSM*M0IG8sr^vbM^VVv%CY_Y|Pc%e|PPolh(YJ@m;y@FBSIGLq~b7Qka8t-q3e z*{AmssE{{dM|Ic|-LcfINnQ!KJ(H-|09@ak6_PJTy2Lra&y+vDLv?Q_GS+wHmC==Z z{yAaC=+^%J*q*J{zz{dxk|BR1ZMYX8`_#(n>(VnuxjOjq%|Ps8$ucI+;Cck3t;&UI zP&L7en$EBt_2Da1C|mmk^1m=I8gpAN5kIxAM(WB=7Gb+7%MBQ%@W%)4*><*D z)5mP#E8C}@CPVq%@fYImi-b83!;Mieo_CAS138YxtfO<0A3t})6ZBR zs^FNjy5275Xq1$$$qPPXsM^hR7nP~|CPPIYwQ3Ag#8kwP-)5NeWGmJBr6~}oPQv$3 zCKTlHLJN>k&}U&3{eAU24?Sm#>F8RR^{H74(e+_pWbN-)R}T-r*sj<6)sYgGV&H+?0wd!_-IfStYxqBk;qtdjLe39Z{OEsiqA6AdZqqOcCqm; z@ryyes=Y{@J~Sg4X^=iYxsdS^;zwks{Jr1f_YVD@@!XrFXCG0|<0+Mp3Q@;T@(sih zi_gPpwp75Uj*d$A3|^u)wh(=v=ZW4s_g~K){Seb+-*{aBwWucbS^Nz)|J3n@5(>;;yjX?6f z2X3|kf>WLyPk)y`i0iTx}=6fE8_F@Rn22u(>$ zjSDV;E*dft(d2DneC1}GN#A~0j%R59WA3cJpMru&1$q40?TSJ=JyeXNV*yt8CBM5t zzB&@RCKAf4*?*iuivQhN?H}EW;QN*3-@>bl;lgt0H#n{ z9(^8qDh=ixz|i|rr(=>)mNq0rQ-Oo4TirTm(}kM?9A+9L=TIe!v@PVdtQy`gIS;mp z?eKw>)s9FRpIZqWF!!svyhczAQ{_Py)r||!A9GTA4V!nWtUR#&8PUjF9^m_3iKesj zz4CLNrIPR5u>_+vwyh5GM@2`?7>V8*EM{_mLn)cV&8TnrlfG-i73xf^e0gQx(&&bm zkIx}?u-NW0zrNdBemo-Io>BKiZRsrEckBVxAu`|0K2(iLUr6nlJ#JF|9z4-au*qR5 zM|&i>dgd{|_*1af8g?rG+>Bd{*NUjmRR*;ZK{d1RKGjp&sM)8{oiBo%Csd2ylp6JE zjoX~q&Rje&Ekh_wuYZ7L3+0>N0Z^3dpFC4$-XWU3!4%Ua5XyE6oo;Nx%BBY_n2YAa zU}FB*zq+aHZ%OK$smh<;E>}MQ{U>wKuaBACnyQ>arq9ftwj{>S4DoF?q-ZkbR|mDb zMLU=aFYk0q&0jN|@sZMQWmT)bCU>viJPmB` zQ1%6pK(3@&BDOQRIYxBBhYU%PdW8@1Mp;dP5K-s=Gwqs@}4I4c5=UIbYhS6VZn_OK1gAH#yUM&$Cq z(LjDwlyhxI4HzXfDfw7pB3O`so3sVxb0$RCzk=$ z{ZyR`9S|a_=_UF+B(kM$3E93!e`Ssb&{O%-j`(i*JuaW3&_M)uy@HgQx_FBF(5&4Q zJkRrW5$#&mHj6^9hDP#pfI1KDGy@|oYVfVY0rYu9Zr_JZ*74XYyeu zN$}cg>~Fr~Z_P6{t_p#IBUZSC`wZLSPjPD;=LmO!yL*?*5w`XbP!u@9kjp*WPZfJS zac)RMpZE|cITG$qa|U_CR^;q_WN7Dfc$lMu)b*XLD2Bx~-4eN6s~jfNzzMnFyAK0{ zSnE~*#Jx5hsnIB^^5PG_-iYcq!Nra&@7ll;NNEys+NdNg^i@jdx0Y)`^14!UG}4J=A?u08yY_>HHQyEm7{j7S2zOa<~S($m|d+tj2q))p~a1`ik{41iyfV2^? z@7d4vCvC0XXY~$qi=DY2%KHL7_7u(gblKiqf^h=lD56vKaq>O`BC&Kq&Sf1nVIt6z zqY&uhmpk^B<#L$S-<&7NdCJ6`6xwhKefoG4r^k@TKr&^GThZg=7qb7)Lm6qH8mfhK zoRd@+#7OfABM|oBoNK1I;!QVwh7aO#(Fy?xL_)V_M*d48sK zTP0k2e+1BLd~x@pT=-~F(tvK@;p+|xRxc#YbG~jF9{TW@u|u|};6t_{jpt{LR?8(w zb)j3{h23Y|LZF{C{|@Cjzk1`wEZ81g^R4T zj~{Fd%KQ6Mign0T4V2zcj{Plfw$Wirqh(juIlH*%$pMeT>Lypev<>fhiY)j@pILfh zi1LrcB$g0ikS9bMtyvhF|MfK^H+IZSL%!tNQfJ4yKhYy_e`Ty%d(6R3&EwHfYB0O;GtbLxqTwYpSbgKSUq7w0FOsJbR9dSID|&=U)$P@9{s4q6 z^iO3Z*TK2#u0a#YoUkJeQ@ zE3IX&duWH)6yqUsH{n6l+Y;k+aQMOKY72ZVbaK5?s@idCsHj&I9UPBGYSqj1R0<8S zS8?Cn{E`-a_L+rHf_zmtLTosZP7QAj!QOFBW+PfB&-+j79lN4bG@geSYaz-^9Bi{M zTe9PHiJ^S6BA$_Wra>|fB36|)**pyO=>L=+d( zvJ5Yd=IVkZ$v5P`z^l#`RmPGY$pu40qLPz6IBe?*2mX#~9l(=asPZ9zk>q4GX$xex z4-}t+rrRA*m*z@?lr3+=xGZsHvv~MlwCfZ{a~Poj)@i0talZsvJ}}D8kbvX02ibtC z2@oRxDaSBUC!w^Cf7AdS$GdPQEgZ&QaBB)`>VXfMKraMC(imiL)I-5a7|Z5ry|13Q z?5|^w+08#R;b+naWJAqJV#l9>b4At?K8hRRDGKonYz=;b3I{cJh=tW z>e&iI19L#_UH9X4;)Zbg*&_DQ2V+%?ZaMuyQzaImvYqP7?D{hAw7fFS%J`*BRYNcZ zEoGp2Rdn<@2{ZuMY{PJ{E<{9DM=%CgynCnV(IxH+EqBzK#GMt-{7UHXv^hPZ>pTl5(86C?u_Wg zB}flBXHb*zZ;PZ>NYfYU$0@knIP}D^u90>GJnk0%V}c}Gg-c8)_f?GT#N6ZcYA#O_ zHfU(dW4Y!RAYEi=h^EspL?2p_vswRRBrTm@^AG&l@{CBXV{2ozX<9)tBrEC`T&>5J zTnho@E1bGWhNubf<2p2EdIQ*p82#?(6!`q@!iCMIXKxvkb(TEFknL#M5p`kK>z9W8 z|DYK>w5<3<9&&YVq?}uXN7&!^_=kf@nM#s0jEZJ9mBltT-2)iG4@etoT?1nt+RXu8 zpvNWdQjk2Cvbo!gDm)l<)lpv#cr~pmls>_2wMPfWo7tnZHhXe z90!yfgf$AZ4cleC*?68|fL4(vzesult?$RPZU1L9kL>b@_cS==m5vbAC;-2ZmXC(= zoS%L;=#C-c2L{Htil3elK=I>jH5Wr46V)-0WuZ`$b5&$wj#?ouA zb$4v8T+TwH3H!^0wYk11a=zbg2?_}*Y*SY6Sl+XQh^r1BRYiO!xnjhdDul`R|FC68`pe8OIS&y78vPY_h^6*7d?_ z;j5*{9~?YF)-IU7D#gVoI)8CM;xb+S;jQ-6|&TuFR%U$$kOyH4kS@}0vf8VmqYy-z||{6OiCf%)a@$s zWu$9Qxi$?CwAo4mlmxhK8;W;y7fv;`$Ny^#n9BHorrtHCLy^!R!oS~oVfc`RijU{~l$mUZ<3oapiBm*HwJ z_PfV-RMB#!W2YXCuW&Q=*tJ2H7fo-|2u5{k z7KBMV0|5kIjegz+9+Zi%On(x4Ey=~~GHSJ6_`|d@)nl1CXONv6Ce2KV7-l1) z|4swD?I6XP57Za1BJ+JCs6iSh*-4D@)I1_EI^Nan?N-a}_fG9pdo;D?dd4$-)ds=; zRgiX~3%DX)&wmILbC#r(Wic;{jLV&CpLq3sq|b;5;iHw6EtS0!UzQ-EXKbwJcmIMoo% zA&?hg)8qQJ$3Y&K4re-7UG0Dinf}y|!k8k7mPZ02b&mnNsX%u9fbw%SF2D==y0V7Y zQ2YS5i}HWd_%giiJjav63(Fvde>7D%#G9sJ&W;uB=+S` zAq{$$*n%`+)ccY;@V8R3zu>b27~Wp7{La{Z(QN(2=0KUzH_r!a>sG5e{TJe*hM|!mY{vK*B6sT z0$+MU`=dlXy`Rbxs`V*{RoU*VIy;7)s4Z41)QU?8(h)381%E{CO}Q4Vtdx$6^bkaj zpaXj6^GrgjHMlfQtP58ynW?}JVXuVwQMy`kj)Xssgp>hW+{IY!RODL2wTAb*QjZ4& zf-Vs&=x}#tv$be{t-KY;jY@{edpJ-lIo79&!uDuHu0*azJk}w8#I`W!$s(zj(z9=> z9eDby!HBw9=bYxp5~D-FX-S}KWTcw$pqoT(HGD&#Ob7-BeGTi|BF0g75D(?|;B1$( ze1-m29KUWxO&;&ZfU-1gDdU+zZi?o@GNYO%SZ48zBW_M?*hElHeb(pt%*XW5{AKt% zX6=wa33mCs8fQ)1?@ElrbP!`g%C$~0BinIS{E;d?-~}F9R}rV(m&=R#o@}>XGOjVs zaqPtmsLEY0Y%Aae%@u5CBFChji4bZIIC>S{!DDfS=?o7O8B?j;v~VAF+^TbeSN5d| zSTufj-$-XmP>t9bGFB=CsJQ=|5rCbotn{R0Jy|$+fJ5897wb3ClJJ6R)D9&dXFeN5 z?s$cxf`=Qyfz&_VFpqq${b2O?!{OchWyFmHIDv6_A3LyCjo1LupcIT5L8OD0>@5lJQGS=|}U z;vG)sK3P}!)R-Ch0dp~#{a{ee3-JQQ(oennuYkqg#Fp}{hlj@Le!2h=$MUj&pR7VT zjk*Xt59|3B1Y_dusgGMj9QUpcvpXYxHZ1LRrEt0~&5VOhl_gW34{5-&F|i&7Of+nq z6#-=a*UT1lapX?<1Vv)Qv9zHvFngRjp+oNgid`R2Lxo@YIQe82iD23U1%q6H94Dow zsM^)95@5cM$hdjjtAHnY`Op?;U|T94AJ-Lysda@Ij+s<9EK*=GkYwtnd$o9=dqdC^EDY;jepEeV)&q z#tqF$_hqMqT3WKQ^3KTO(ohqIZz@iI|K5FPU0PPU3`Fc~)FDi7xa#lzE-BqPGG$1( zxNcI4751cGbcf5Gm#ATPiXCJrG9s0<4UM759EHV3cqB2nQDF~`RQ}+`jD!^#d%!mQ zZ^t_|1nMVxOe9L{n^KWvbWtg@vE?-PBJn@OBFuyBF}*=n{EUqe)#*6{hTye`5lV}* zKO~!RtNx;6A?-`ehb3fk>K3SOu^#^4eJ+f9wVNfL=s*$xh0Jk%Uu4 z=y?2|iidQQm%c%Wj{jp47fbHPPl5{O(5lU{B~7eMoa#=2^Ol?BI6;oOHt+KKbAA$M z>dcHL3B#EPZND0j1)a-;_Em(Sa>7=@tk27AOC3>@wz16IT?iLeWDt3B5nN|gcJ%jy zK@f3Rr0dc!1Cn;+WW}j9``XKJ%*y6QTqbeQ2L~Inf=lK36i-&>2i5k^up;Q6pKkqQ-l9g>+NI35xN{RN{$ebVCm4 zp5!18<@fr%`6&1}lCQti^>tz&DgLa4gT;UF?ew1^odmjJ=g5d2bvL==-Oo#ZEZXU& z;^2ILn8{>w*srF{ht&lytdcMgMsMR;EUAYh2 zdT6y@ktjdL=X)&|u?nF#jl`LwKz8c%84OXE#PO>{TLi94wWst31ZR520?M?6?q@!< zZy(KR4!9PamX{6v*LZCii}HxS!CB|GY$mT(Z0K5UvYb)>^L1w(=WO9utAN|x-P(_= zwAj2H7}N;19|L7)KWkc`^e?3Ue%b!-F&B%%=xR^-{Klb~`9D;*@4o9Px$)KWzfC?` q9@Bd(oSm-BJhZsFW+cdjEg1zgp4&