From 64b78bed3b48f595e27fbe302819b2df13124095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:10:59 +0900 Subject: [PATCH] 20240604 --- README.md | 192 +- configs/config.json | 2 +- docs/en/README.en.md | 105 +- docs/fr/README.fr.md | 68 +- docs/jp/README.ja.md | 272 ++- docs/kr/Changelog_KO.md | 24 +- docs/kr/README.ko.han.md | 2 +- docs/kr/README.ko.md | 249 ++- docs/pt/README.pt.md | 2 +- docs/tr/README.tr.md | 4 +- docs/小白简易教程.doc | Bin 0 -> 602624 bytes gui_v1.py | 29 +- i18n/locale/zh_CN.json | 2 +- infer/lib/infer_pack/models.py | 439 ++-- infer/lib/rtrvc.py | 461 ++++ poetry.lock | 3642 ++++++++++++++++++++++++++++++++ pyproject.toml | 64 + 17 files changed, 4970 insertions(+), 587 deletions(-) create mode 100644 docs/小白简易教程.doc create mode 100644 infer/lib/rtrvc.py create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/README.md b/README.md index 1fdca28..ee4b2b7 100644 --- a/README.md +++ b/README.md @@ -14,28 +14,35 @@ [![Discord](https://img.shields.io/badge/RVC%20Developers-Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/HcsmBBGyVk) -[**更新日志**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/cn/Changelog_CN.md) | [**常见问题解答**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94) | [**AutoDL·5毛钱训练AI歌手**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/Autodl%E8%AE%AD%E7%BB%83RVC%C2%B7AI%E6%AD%8C%E6%89%8B%E6%95%99%E7%A8%8B) | [**对照实验记录**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/Autodl%E8%AE%AD%E7%BB%83RVC%C2%B7AI%E6%AD%8C%E6%89%8B%E6%95%99%E7%A8%8B](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/%E5%AF%B9%E7%85%A7%E5%AE%9E%E9%AA%8C%C2%B7%E5%AE%9E%E9%AA%8C%E8%AE%B0%E5%BD%95)) | [**在线演示**](https://modelscope.cn/studios/FlowerCry/RVCv2demo) +[**更新日志**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/Changelog_CN.md) | [**常见问题解答**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94) | [**AutoDL·5毛钱训练AI歌手**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/Autodl%E8%AE%AD%E7%BB%83RVC%C2%B7AI%E6%AD%8C%E6%89%8B%E6%95%99%E7%A8%8B) | [**对照实验记录**](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/Autodl%E8%AE%AD%E7%BB%83RVC%C2%B7AI%E6%AD%8C%E6%89%8B%E6%95%99%E7%A8%8B](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/wiki/%E5%AF%B9%E7%85%A7%E5%AE%9E%E9%AA%8C%C2%B7%E5%AE%9E%E9%AA%8C%E8%AE%B0%E5%BD%95)) | [**在线演示**](https://modelscope.cn/studios/FlowerCry/RVCv2demo) + +[**English**](./docs/en/README.en.md) | [**中文简体**](./README.md) | [**日本語**](./docs/jp/README.ja.md) | [**한국어**](./docs/kr/README.ko.md) ([**韓國語**](./docs/kr/README.ko.han.md)) | [**Français**](./docs/fr/README.fr.md) | [**Türkçe**](./docs/tr/README.tr.md) | [**Português**](./docs/pt/README.pt.md) ------- - -[**English**](./docs/en/README.en.md) | [**中文简体**](./README.md) | [**日本語**](./docs/jp/README.ja.md) | [**한국어**](./docs/kr/README.ko.md) ([**韓國語**](./docs/kr/README.ko.han.md)) | [**Français**](./docs/fr/README.fr.md)| [**Türkçe**](./docs/tr/README.tr.md) - -点此查看我们的[演示视频](https://www.bilibili.com/video/BV1pm4y1z7Gm/) ! - -训练推理界面:go-web.bat - -![image](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/assets/129054828/092e5c12-0d49-4168-a590-0b0ef6a4f630) - -实时变声界面:go-realtime-gui.bat - -![image](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/assets/129054828/143246a9-8b42-4dd1-a197-430ede4d15d7) - > 底模使用接近50小时的开源高质量VCTK训练集训练,无版权方面的顾虑,请大家放心使用 > 请期待RVCv3的底模,参数更大,数据更大,效果更好,基本持平的推理速度,需要训练数据量更少。 +
训练推理界面 | +实时变声界面 | +
+ | + |
go-web.bat | +go-realtime-gui.bat | +
可以自由选择想要执行的操作。 | +我们已经实现端到端170ms延迟。如使用ASIO输入输出设备,已能实现端到端90ms延迟,但非常依赖硬件驱动支持。 | +
Training and inference Webui | +Real-time voice changing GUI | +
+ | + |
go-web.bat | +go-realtime-gui.bat | +
You can freely choose the action you want to perform. | +We have achieved an end-to-end latency of 170ms. With the use of ASIO input and output devices, we have managed to achieve an end-to-end latency of 90ms, but it is highly dependent on hardware driver support. | +
トレーニングと推論インターフェース | +リアルタイム音声変換インターフェース | +
+ | + |
go-web.bat | +go-realtime-gui.bat | +
実行したい操作を自由に選択できます。 | +既に端から端までの170msの遅延を実現しました。ASIO入出力デバイスを使用すれば、端から端までの90msの遅延を達成できますが、ハードウェアドライバーのサポートに非常に依存しています。 | +
훈련 및 추론 인터페이스 | +실시간 음성 변환 인터페이스 | +
+ | + |
go-web.bat | +go-realtime-gui.bat | +
원하는 작업을 자유롭게 선택할 수 있습니다. | +우리는 이미 끝에서 끝까지 170ms의 지연을 실현했습니다. ASIO 입력 및 출력 장치를 사용하면 끝에서 끝까지 90ms의 지연을 달성할 수 있지만, 이는 하드웨어 드라이버 지원에 매우 의존적입니다. | +
xQPT`p%?X^ecv_7Qcph63Vck zV}+N!qx${Xjjen3jtd_v6&yoN-PS5oUu&O+@U}@~O8EwP${c_S>IlsK#vWwm3bLbV)tlXR6(r=qrL#ATy&ej`y&%g!aMAu z?HMlB{x{ROJ`-q7T5n%d`&-|Y9 H~PZBFB`m O`-dh CHSr<2wo+~&ofO&V%dPwu4$-ui9riAwq3<{jJ ^EB4_`~cuhzkTXN%msX?MX5$@b{xq zZ+pnK9J=Qzp4XK)c~y`63ZGt^=Q+NSXkF8H^4)*(wHJ+41o6%p(S5DM@w_Bzo-t!> znf-b0*VgCmlaII6mR2SoO`x5A<}p3gI(4HwsUxCYIoMI-+)Sx)jE|g%6A(19XLqqs zMZ+*V>^dKR|NE7IC&eAgl73Y)tqpj0nh5mZ0*_jHmJ#EVBw6Kg-SM=D-q2dyQ!@_= zbvfzR57#Ek{PxS@T3$vBvgXlaaB;`7_NB?|XKDw3L3w2PwIS^`nV9fmO&S}A3+Jdd z-Up22hp{0Eo6UlCQ+STUd<}ee7K87ag`AkhN;E0CKf;qBRP~Y4BBj>)VtH@7p#DOf zcDLeQVDlBBPK{)*y1kS97sR1+V@r<)e_es+HeW4fYbyR!E-c2Aa*8K{1lW-hc(PX* z=b1!D+_lm&Daq%L8=(J9_13O}uG|){y|rbp@2!af34R_c;%Vc#RXM{ep4{&rCB)d! zMi852bS`0|OBADUcYmmeG?pV0Gjt8iFDK2EGZmf aS2;O88*tgbas06hTSveFK+e1SN*vYBExtY$;sMK!_N{n#bX6~ zxT(zLv&|J2Gv4Pr$X(YRQ`6n&7o6GNURZUU8y;25phJ3MHMR%DDJj?xi}j=>RV96= z;e7SMr< `LA^Q8Qp-`g;W8;OU-rvU zR=CJrc(lL_$aahn8=#-tyJmTJ_a`3PQzMO4)H@+%=?%1c z7{* f>;Abv{KAb ze%!1Ea!q}N^j~_uaDKQ?xK(lAF3;J}X!o!Vis9>B&wiK`R5Wi81pRo7? oA|rQ zt ri492-6@LEyZQp!(S%x2#eJ!~W%r9QFv#LEB5dRv!*^3lDcy{(zJVq( zVq$7bmS}3+5}^`PCFpKek>No}N3;Ss|X{BrgCV`+~a zupMH!kL}N_4$4NN)@e=$d?}R3+<1@#pf}Flkh;BUrj=#OA){zp#Dn)M)-GOjJDU;d z{h#i^ry>#k^ERd(SDR^Xt4HRi$^Gha+1kk^I=aWZ+uYKPO-;{`+Dmw41e>-CTfE {j3egDhuuMT~CyCUGQ-V}#15%mH=V2!A3+|;{3N4D9`yoa% zAd- <2@qP|Ef&|{3cDHdk_{?_(FJL^p& zdcKXV1o9xx52m?Gtlr!cmm=P)bT1(l4ADdRZ*wnddh#GeP4&YFJ9XXTy;;^yRj=*4 zU1SuaXS3J|JtNxpexTa51#;%-z9A^V{bX%?w`cywb4$ ;0vcS4_D& nG>yPD6|h`Y>2)ipDF$# gXF2E> zUF09eG8co6#l^aDlg5NUgHuj&!d-4aTIsWY99rA@SR>LZCF;P%KAZnu ^anG0VYeJ$gO?sg;Cwq~dp4o*y@n+cvIal!UAiD*g}&hwDxe`i+;X z#fdU_ODno_i}6qm-+W&dDDB!>T=|Ya`Av$ii81sGC+RqwYEQd{U15XXXEQ?5 ;$S)j?? zGs=#v$d8V_Du0dAM9}#CtsIRf!30jPlRbpX+(Q#;85{zv-#SzzIJ?G{{Mfut`EHyl zVEjhS0LH_xaiI~R@7wH;60Mj$3;j%@pmvSAG&)Ma@>8n340XAA&8y2k@VZwoSGLcm zZ X}l}sVXN{nfZuv$+dSqyVswH=}xem{gT=V$GZ*nbM}J* zCr ?Hn-xOL{d6)D1SVMig+ds+=K9KRHRe&nEa%fu8BHp&Vz-zSR zQglhNtH(Hq7+qRLxI#iy_!VTX(X9@YH%U{(2X3^9mtn7N^r2zJnmD>+?I?EYGBY`6 zA96G<;}HgoG#p-H3A?3eA})xvn?y|Py87{91D 0z0$3tg!iA?$dtd3PxT)>vTmKDil3ogn8Oo& zOtc0C*_ymWQPGbC^J)=M!fY{R>HGCwM+KbdMqO68_ym%;N=m)0Pvx=u s|qw!AIxLn-*GX=Yvx8x}9?6r)SMUE3SLrrZ#Gxs|gF*9M2qFCGxlY zpr37}kaB{W^un%O>uf70dE+)l_u7{7c>%pC*NL`<%q+dScnQVi>b=taC5v A7` zti8 fRN4>jMt)}_;gRTqP$*YHx9loFBJr^q|u zdxXPJ?>dZ;n)D;DDh^M;Yk$@AI?9iNC|lXrInoz)AMtRzq`Ko(+FcBpf>-LywKEGX z;4y~bFa) QCAtjnwaMd$MJ3MrnTayK zK9M=r&NJsn>Apb^G=I5PX%z6V@|k-ce$$Sbd^ts|-6qLUX?4&~;wFDOgFbXQ*YW7v zKANxfj+AT7bXN^S_3-*Vo%Rxnx{ovz8%f*>krkh3v-`7a)Q^+Sl7syc$ItVR2L{hR z(nk4MCF-D^%J15r=l 9tiBPZ6p@* zhI~vP6p(H- M&-Z^d~& zZA>>9wpqakeM3gvmHMzoJtP B8^!}OFs_mODalkFOzx1p_o*F0zJu42eWcaV?} zTd^bzJ&ONODyGrz8t{U3hA} z`%L-8-2H;I)Vj~V7W2Y~*d8v`)yMyE%oi4O71PWiRm_%GseV_M-lA_po1Kc8aC!T| zXX6PT#huTJV(*0gei-JMsI5eYW6G#!G_XZAD{w-uk)?i%`4#q-IQCuh_u?KAa!EmQ zu8s2x`{bCWWD=U5X##|HVmXNl(4 _Q>Za#!l1?U0|1esA zPG6#oS#exC^Fs}Jn+l4NX(eT(SH(CPdCOiW4N73FsIyq2;G91D~CXR5#Ma&&K^L!wtu>ipQb4iJEE-5?`PjmvP~N zP1nngCH;POr^tJ2lMel73F<^$6Om+cOVWbP=n`17+_tX|sJ4>4dT>ULv`SCAn`+J^ z6Jye-=NeUC90qReE~m9cVsy);v>gX^Id5*|DSvKN6_(C_rnuhAchZzG%%^N&vB{&l z+nupLUW2NO^yWvoJDG5}IqyF=xg3y1R5Nhg6UK0M65Gi)m;ASOb&B&Zy?hQ (Eqdv0&%VjM%{`KArIe~tC;hIu!us2`QkOumxF&OoERyGNsQoVQyY zK3!gU>Zj!{AN9KTI?dT0`f$-te7Br^GV`j^^Ivuynljud)gSI8ChioTcw8L{tC)Ai zon$@O;i+pA;vW;sn24?w5 e@gKG>3?v5#1+c_*niSs*QLXb@-z3 =VZl^1wf>2+9O%pk3kNhgFYQa!IkL^Nd!sN;PSM{Wmqm&>EjP9uF zUul)L**F!le{KoI2)b@m{}{TNNhT5bS@ra1)xK+@SApx%l0~lO`A_&K8_ki(lMZz9 z=pyNR?9Grnn&jGwHhesGIn`%z!f8YG>(Nu+`6l$!CZ8HsPQY(OCAZE9PgsBoV&+6zOIt(mYH+^In_DjU;6(ZHM@+N*}6@~ zL6>t;&jYVsDGy2t#MH!H+)q-k_j(#jpTuit^L%w%hy5bT&yu0J-ljk_ZIx9eWE ZhAhr{BI^f9o^*)<^pqkKV5tm7*t^&FYv*v!5rQKNwN?;yAy$uo+dt$zp9D9Z*0P zbwuOqvsnAYO)U>++9i`V<_1 hnq$YYzibP4D0WsiR3oeOO` zM9%BScizfyG;Qzjd<$jVMc&v&f08ZN?z5xBLHs*g-`;dG7Jq{XNiTA-2|QHD!_IUq zw8>7y*NUe@qT|C{VuSe;HR7|B1;fI`=E;Knw%$`iqM^Odwr214wQ(Qw31pXi&2upQ zO2u^4$uaUPdeij0nYAT*&~!q2K|ko464vT?Nq=xRXS=NP_Q 5Zr=01lNJU;2NC4-QC?` z7-VLf=l#BS&;GN!=j>U|!Mc0;cHdjK>Q}#8Rrmbz^zTPhC!O}NJe)jTLo|OzcRNtJ z46@W>#)3_3u}6+D$^G8UvA(&DM>BhTZnwT}CJT387CK^77Upm<4vFtRBB`Wb#=hT$ zWBDFd_gD7N(fMvIOefU-W*JoW^6*L_L&$y_N=tBbKDgfT+{gE%TN4vRj2wyNjTv1p z*u!V{V|>e(S^}huqh2JW;vEmx0Foo!V`m|js8)428<7}^sW{w6Cc5l>(R5u7y o z;jjq)Q6r%@qWR}#J-n%uIrlvwV#~nTl9L*!|ItJ=ROe0c^gIv3w4Mh(#Ovl1mYp7o zKHOz$e(8ePCMqR9kIEp&upSY-FYgx1_o8xDSJ9srXs^h v{?W)g=)+S7ZyZcT{}dc`FAi?kIsAy>t4xI$GZoFZij}Y{MS| z-1f&@(!|pn7?Cc%b%+(RoS`3|)+(|xzTmt3Z!CcJ@*PX+Zt2wVTc6u~A9o1-% c-qfvc?u+f~xqt2LPoIN+h&u6H)zgnI^W? zr2J~=VVWmlxvI#^-gKBtjS;T )AhaXR#LgWQU3I(MdJZ(fbbW zC0pel)W2*+JiL|JF>MVYxvg+rj|_<5`Ox|48?f{ZFqqkk-mM<1XLJJleD8-aU6r;g zBjUoYqq _{L6^JhmKG&?Ze2w(Xs*+$am`x*WkoBj{-x5)#$k;F#L?gKsbO01lx zk$!B`;QbDH)?j742%pzM$KY(F1b9R1&3$j9-942w?~=ghlrf=f3GZgMX|iFe?3HMm zyr3>KGObF3yPp0Zp9$*zvMPlK>}J$==awzkReQ)WHilq2$#lF0r2Cpm%`rv#PMU6e zBHR5>&G+RcRm1Y9Of=G-oxT^sB7YL5%Dt};koJ
5V9Ha~5$IG7Yy8XL)d2$P(qOa&d3<+7}$7bb{wM0ZCbZ z{!boX_imnfH__ z@sg%AOw~Rm_XrZy=(*i9a~JVb{aIJn?pn(0s3ej`Yvx6$CesL&7;h)U`(Z+2a?WM) zov{firJSblq*k}2(@d3b0-$ZF@e;;->u)C6c6HhA0WQbKMvW$2EM|5UbgU taO-^xZ MjR zeETcM9LZLYNzs9d8o3n-VW#&Qn@9Y73*HGanI4Hs $D`LoCQ7m=86$S*2v@kOJz7zj1$I@)^TRX+^N_7fl*goWfP>&$4^_=?Qu zKkd&w$Xy4?)7{K5ai<~7R);IWP2n$fOCL|o-Hh2uX72{b2{mQL@2NeFP3>2j@iPZ1 zXYHkLLxRgLT{9)GaDh=@V0p(yOS7w%zD@Ne#D`WEw wdN|opbL_O~bm>rQ zzR1pp#}-Ob154T!oQs lL5XY@HB35Zx;;m^SA7*!d1m^a$8Qs g6I5d|oMot@DR`jJr)oj9Fk56~y z>@V268t2)6SiIi+TLFs!XhsW7 @AU!E01-Z%0*mpiau zZ@P8Bw886}F=1;;>ea#GcLbn-?xABjiZ! #W_pr z)~pyUe87LRbMN{pJRjzx(FRTtwS=j$5&U`n@;Hjw-+A~`=yjBS;vzf&P5HuSd|A>6 z{$Q*XJjyd#$NQ)Alxd{Ew$BWJzCD?vvbc|nT27 Rc6WgZOYq;Pr*v|y%vkkHP5e7i z3tq 1bGkZSf4a< zBg*%fBDBfL1|eavnm{qkcw?NPG2Uqo-~5She>7I%8RJt~DkLH#*H0b|2{-*g*XDSH zdfCTClLN%^V{>|sxv=s|Wd6}yxnuFf586Bk(hT7?BCq^98}I{-iB(??7xPxT^>TJQ zL`FU)6kVJP=xyd;=gi6Cd=N-{JK0;V%^vP>lq&9QLp{5xa>Zve2X!46xN7#q)IHnX z^7p(Vnb6A#Nc^J_C-s6;(wf_HaL+57(4F_!-AMD0$%`X>cMVdn&r$8`y_}EPFv26% z+Vpn`M!I>pXM7JNb|3#)jpoUrlD=L3wl1^{jD&vTG7raGZD+%F!Jjw{ciBN=qZD`5 zN)en>rYC|6Ng9x2U0(9TAJqrTW@7qKPmzj_wAQ=#gfj1|%1Fgh2z`&cE4_pWeo<0p z`z^D<(gk<~$b7xtfS2DlJ_PxOnN{>0>9t%ev1pA_I$P6|z28A8Ur$d~^j@Z2rcSmt zS9y>U;e;>7F5GRL)zlQ!a=zZ%`||MsqcHGL#xAuSz>Sd#+VSS 69axlM#j5WqQg;soNXZHh4bOFp`Vbfno _$vcYKG>t}-cLp_N7L}BFog=Ne=;12tc+Q15 z=VQZ&8ZPA&JqI1BQr=vQ&!2|*XKsmEAUe|f*S3+D3p210i6NZxNU<-19-JUaPnM{W zv0KOBwI49T8)KI<%iWu55FY9T7sfxb3CvpQ-J1s$cpJ5}@bG3aAmTE3BTZQ92bPDi zSlZ|*hc#3SNX~EE4+D8n!Sn%~9ea6sZe4Q31XN++&omPI6z{47)w#>U{Y==&oGvAp zhFbaDtG|nMiRGvH?IUw?Qn)k$+TC$HQFCbQGCJoTR8lKum+MrK+tsxGpvkQlKpecq zG4}JUe21)A|CpxR!6elODC--0GWQ5ROqclj{_4-KFXD6lXD!Sz)}EZQi{b}}+Dok$ zU5sdr&n(#7@Z$Zc!Oi}3LfLX71N#WM0I4tYHUv5i=I~P0P5+h>L`o5s0`s*vsS@u# zeFR4*|2(N(Gju^}U3qTnl6;z4<-_&td4t%3+X;dcfReRqALAjnj^jsTCevbhK^pzI zi3vUeY}=m?{F75bW(WyAul2Jayyc1FijL=2es247W8TFK|K?U~O;Q4$XY90jmt%uV z%dNTf?RhHrcnC#=y! `io|;1zLSJ?hhDhd@cf=w+1XhX=b7F?JfIYsi4|{}k<+ zClp;#(`dE?26WK%VPzf110BIc&d?x$T;1|FNEUIq^HN+BF6u8pr|YfKxwBz;Jt(8f zG9$>=-u%hoPVa__ @{`xGw|ztcft|9mV{q`!R{f}NdfmNA|8coa@wrP!U;M=}pXl{J zGA%!yDw27K4>cMbzMr+5Fh=y4YLvQ*Gx5jlyt`lIa*1lK375A6oIQvSZ>Z^PdX?o- zF0(sIxdn0|Z3?zZgQ6PQ*#&*Vg4y1(Dt`5~trMzrjCJ|NbXnnP?Dkc_yEoEB7hy6x z#%+{{hlLUT%gYdrcMsdFfSks~@uQ(w9LrDFn%30derIi{`|;Bhd?yVjCYr@mz<_!A zpx =-`84TuovJkyfuG)-d~{7Y2lPRIlTx3qQ10Q+b(nJ$-slj?2dbvHVq< zgxi-d8$yLig@jJ4&&Hj>_X1P9Aou%9z7Vgo93@*^mV2D&B wM$CKRTww0BjIxhv`_a?!sT zu%Fm^-YTBTD;ix+kTBMnNu`9RaD_VK_VyB4uA^#Rm%e3|Gpi{@v|s&lCBS&Iv_N?= zJ3&EV5n=Cq^+T~C(|X1_rp{kO_V< _-A`ltLIv7y zL~GVpjK*H}|9r`(0gXQZg(cBdegsM+5MW_kDE+d4ZxQ=%U#gXK8cWT(?ii&iM31)p z4K#yv(t=M%31{8Czuh$CUg@6Mg$gK}1Qp@_uFEm^?{1v!dnyaCAZm(_;qg@#!!_5Z zqtQ7X7hXp~*54{~mo b`zNIQVc$` z3sKa|zL=&w^;b=PC=2uGYZkMm{9Z@A&Q)pNKPUfCvq?D#6XgkFJNtnnaVKI`RjycQ z((}U6y9R=C$Jqf&rW!d13yGi4G`oGO3)fG2p6a`p;ZLkYE;Q$>K{i#-Ztr6%*`|-g z_OI^zo^~ih?;~#jup!XCi1HmxtM9q%KfukUgfy$t(3!^x3e<6fLrM8NN>La#Vlv-6 z?ilU~FZ?8eiV|6UwueYz6W;+MQ+BxNYRN&Ap9df_f3e&~7gY-ge7}^smUr7hmWDQugSSbSOEmR9s**L*(Y3y#@i5UooURn53(8*>AaLJ4KoDx% z&NWNp{F3!PAS0M>_?y@qg?nmLM@w!9&7@?4AI%eO581l^HT*5M{e$GjEhUOp_gGXG z#NDCj$c7jJ+^yZIOJvS?Rrc3gk9%Q;Nb4n$Z<0r$?(mq!XUS20hCu$W5Z{7W+fsM% zwOW5{jE+u&-FZaLL4A|Qt>|D!I5Dqcr|DSq(3eGbu$cUzrx$+W-~PoBZIwT+%NhOv z6hbc_PkA!FIeL^cmPryS#A+o6x5-%taBDeTy4DxP#%@F+Unwa9W!iq)Bl|Pz+FI~# zX)w;uib5lz58YR7kWRp{1~{4jO{Ba+vszI z2DX=Ck4y}9_zUznv~|o+9mi4L0=GU_0%@;TZZEH|t*>T151oPU>ZRLr1atO0k?om( zzyH5UjQ*IYvPQl{l9KMlUp{dOJIn)xGNu@L)sC_ACz*Y%J<{-t9-IkFnS6T2o5fD! zo4T97^JDKf) dat5XUcZ_A;(WKIc7T?o UpO^GsSt63krOYI+4!Yc;N;3XDru>A z5={wB%c&66?tU9r9&x)P-yyv~62FfhGT{Y}^X4*Y@7Ud{uCcw8*2nCAVZvNpbaQli z6_48;k;lHISgbv%X!*Be8RZxCN?h6$KdX)B0&x_gFG9qb;4xC$TEms;PD@? xP J*az_V?w#?v&awL@TYq^6$r*InhhLEcrR!SJbbrFD4d-T5e z+H+9^y?y0VgnH|3aCb!WeWz1PTCih2q0zRNT{JmmpxfhBxRY&hJ|Wg-c>$L0ZpN=V zc|n1YWW-wM-cuYJ8FqJNsVn!)qHoU#OAhy{Z#!9|Sp2oxAnL-X`p-^2XSI`oqoTiy zc3aKG6v}r!W05ppQDW0~6jQL5SExIeaCb56JoT#ki}8(x Yd!06MXpJ1?zWaZ8)hmyDb42v4;HqA!fKw0ZPHRE|JYlc zPX~P-pXfvTIri=21Y%Q!(#Im0p=g=d^9qYxzu|0kUbA~I O>LQ=rA^Y z3g%sp@8Pd`@M!X~x@%=MoyM0s<`A#u&8!yhkMoG =EHXEfQTJUE^X3Y}|_SlH3y)cZVtyj>Z^JiexQW>oh z(HZ{%ln4dSH!_iOsTO+nEU5fr_sd8am+N|j=TXo=IgCrlsu=6;=pR2E@AI76sHpVw z=HzJZfFc_tWIDc%`7*WrIng)ybYizPHnZY4&?&EP>t-muu?>65hEZ_Ea%jQ&*$(>A zx%>3}NWmI9?4dp&P|-{Ac_eMu8Sso;d=kldQ$QQbNYW5pM!Z%O4Cuelkip3{u*#Q% zN;@`OjFwFoo$QZv{uY=-J=9L48#U*x+q%}&bH9qef OEMxPH5pMVXw7wk1iov zth=2wJn`2hA=pGE*v^c{SEAK)j;-g4^T&gMb1aYT@|v9#`s;QNTG6OmB`xr6yuE!t zP+AsU*VO+L=BhX`*2yww#%@RdVn*w xy5{!#PCuNUEYa;6Kd-i@h&V%TKuUj#xf zI{(%YDELVmf!fFFV~>|x7KuraKfj*V_1dv|+Kk<^k&pC_epAKbk#evtRn^Z6Gl C;cj?$(#mz*m z!n=KSy??KUY}4YVPx9-B8W*9xu@El(vD@gnZmsb8RHecw!=15oQ+qsOmSdf2y(hq+ z9^pVd7>V6&v3A6ioRd8Pb)?2F>Y`GUI1`a*O~>=Z`l;lV5tYyFK3WNT<4+|z+l^`l z1C3>+?A4ZsE8p;Qi#k&489teb^0ei|?i!H4*LRyd7QOKvobmB#!*LdpFJ&@?1SXwc z9GXDqhfv76Sjn&3)T;Y++dkI{K{vDr#*UVLq{q$SGU>`5^ps7rL9zosU!~nJ(K{;S z%xC5B`KhOXy>+{v UXHeLGO{b}Uo&TiGm7Tl65ou^-$?Tzd8qgc z@1*U^Bn6`V9S&`L4wd27{T7VLW7RspGUv@({70UD+lJ>6+cKvi#J!Rl`; 1+PsQiSg4dD okMf9L8ID z2>t)P8bkay_(u !IA&g*#H7B%76TyyOsb&?lAxVdB^|9CQs;{6LRsw2AAuB zms+tJK|NF@V|}6!8XSC}PK?+6_Hb&TYE5w100QNtE9#BF4ukO1*hrW(ZgXvzG=0_& zFy3bdC#$EQNyN` zekmb9>~rgANNt?-pe5mqs$*CK0X5}8Q*v~1Hi z(85VvJ#Y;|4<1kV3>UHf;PULM7?Z&Qe9-E{^AjRd^pE__(b7*M&GV)EEu@G=`P{E; zcdkNb*NmP?+d++kIZXDI4ET@0v-K4p%j`J~`6ei*^mo_U5?-14UX6qPTeX;!n4_H2 zz?cLTerkKBOl_96OC&k)V(%@{5JFF%Vt7tIhvrGunW%Yfb; !sqU~6livJpi6d0{WSk>j+qKNtEHv#3Dm>(omDAfqL
9dJ|uRpbU@2-Qa9D);O^j+g6!A;RAV;a5WjxG zS`o&SL1q5wHb5;gf51}}TIf6lNmON#jW}94&p(ggHgWN)+fuoy*lnQ*p?8O qs7)fShI KBl5d3pfpHOpvqNhT~j;L+|ul#%!FGdYe(TC zTG^T-GDo4FuwbA-tg3)<;(6F%Zv4P}1ZY6b-Xp_s5`mUp`xgFBl@8amb#v}_ka+hh z?yU*d@0(LYG$mbGpseqI>H_c;9OgRrHN66>&xZ~cY^xt6YbqO8mrSUq(^%kY#n}=o zG`X}+Y9$=la@#HECzFEFd~Ww(eqZ$IthA zy=h|Hz2_O?R*6)%+xi(k7|W~!$rh2n5@d1$?({uHu9~2MEKSt#9=sqqM<>jsQeQJE zL^ K%|CLT=nsk XdaX-5_?0qMGNGIQ}O|)(j{df z-i MsL zJY7o1zUjeeet0UkK|RESOzBwQcqx>Zr$8A1OUSZaD6huS&6K982fWn;EkD1l=Twc8 zo&gml;1YJ{qlUc3BP^hd-KF={T5H1ic_v}K3?$RlgR{_ydhVsTA@P%B_yT;G;WO}G@ zcz;4~pCHpIbg?oevst#|d<#iS`mB7}qzV?w Wq%CbYhOQQD4;#8Oi_3(&|p+G<+r2rmdv%e65b@1Di@{0GxO~GgzPGs zWNMq&Y|~<{O%VP(7i36oEJO7 0C2$N5jMC za0#i)+ mNXrA#}2k-?rNUzBqEqzfD$%f~2g;1Oc?r}4+#z5*7Jr_wqq zL?urqwPJ>-Cru@Jyk##iP*(Z@46QEDN5k*x@bW^Mt+;LR!xMf|(e==?P;?wlH0v&z ztHFFI_wK@j=^YU@+NQPl?L~5*sZx-6+Kh(%byKC_B1*MlEg>DobDHxj5r-b)UDX`> z&|VDp>GYY_A%`P;u~}L-e4UC}aVvP;W$ I;$gNY*IG^FLfq8idufB+7Y8D@ zY7m~Py9;qmp-8QI#(7L|JWmm60t8U-f+kK~$nD`RYLg)m-5AS(Io~=?GjN}UMLGYY zOxKc;C!gyM-Cm_N2?_ty{Xk1cRN<)!<16@V4){4crKN@J$yS)4f!D4A6@n>eVHx|U zX!YtbCI!~-^eE}p$HO~lr1a8LSCG38IzK*m4q~Fot9jsxS1=S)1z!DJ-Uig3pO{V86eB+L z87J=TU=5Vh40c+d{R)s~Jx7eULU~T6l$7(yjGUWc-JKcb>SAA+44FB5Q 1t zoyD4!Wm6{F3CRn{sWON16;x@cGyTay;B;}MzO29ve!od?D 6!nsWiq6fTgV{13F+?1M;Wauv$6dDXAm;%TK8edQwGs3{G} zVzX!Fn2k2hY^tGvvKg;oY*lYoM)|pdBxUhYt%1&51<(`o`Fl*v@O?$=ap&L7mi 5pQkI%xu|y5)hSl}@%~y>MBO^ug=Lo>FR4RU zQJnlfYxOE6cX23UAt3N`q>{4ywo%_qsbfOot?z?~1g}#m6cE;bjV>(y&^H0~K1NwOzppVopqPuqo zp`uEJQ-wjjbw@wz`Ds`}NcUa2!wTS~6OtehY#1c)<}K!Qov@u97^hbiurBQSo~6f2 z2e0>_(&}nX70=#c*KfbtI6OOR2~BV<(=YnNTbW#?X~T|7Q}sQDBPO`4c7nRIr6@+S z=Xz%Jh;up|T;b=(W%_!;E4}w4Xu_kKV|LZFmsWjCpFK>c29BCk)tGh^Vs=5ga{Am9 zbEKV$dr#=AUD$QeSr6iIxLd!#9?jMCiHEyJyQY*%w$9ydCk*`!c9%msjPDUf_vx1u z)aJUGy7X1YK@d2a&H&~-?mmi>*P QRI`Q=7{yy8EGw44Zxk4s)W*+=GI9ld8>}wo-gxsyFAu2HzDe2Wd-e>c5n! zCN)*m;$nx0C0V_-=}T{HOPebFn)FwARBd2-9yWr-^{P!?)cugGo2ZLJ#Hh>TC?@ns zlCx-9&usX00c&2FSEZ$dY=0jvm`?4?{1%!1YS(x`Q-w@uIHN49JH^$8wrdK0cHb?# zN2f{^BAA&*Y^ERkou`$zzjw<1i5Loxl3O>u5>ah4a4_dcYXjce-H?kAFDdNZoKMOa z*ND^n*5|f3 IZ!u|?xP<(w#(!ln?S_9k!Ic2E}@pX<;`vQ^UA{DAHmEFO@9 z?vekt$Yi_6VMU8)XX<93GA3=_#cq3$N@f$9*rO3Ee u5*F@13!fbS|pazVxKu@jr_g#4w70lM}F_V%=3G9Ts_2_NhA+f14Y@d}4d2CpFS4 z17YEvu2In?? EkI(4}T#J=^oP4 z;S@GTl<&|9X$*gOMGS`9v?5g6dgM@u#XW{qz9BrjUIsGMRRbZ#MIqdD-S^%Ixx8t& zP~+=mXM`x{Ek(f{j$5OJ`(QjK2BLc6{fePkmzGotoIu_Tdzny0W~wxH^cj6CaBRDs zm*xnpQ-SE)I&|t+9qW8-l5f2v3Xc;AVyx*Z0qT;7CD#j=#**x?gprlUO@pj^WB4)| zirF{Geew;#v|9SYda>*@2vs>I73!S#f-hZIe -Rlfb>QD?-2RMA&hBTj(l2Q4=!UqSuCBNxt?jb2>NxS%c);l9QdThdDw#ct=2 zt-My<+ghXc5K&g&ec;SV+2t{ +be0Hq8^? z7 l@TGpCwsb8qMZ*UW31^tEu z%WO$?TA^{mDV2Pd%yLTJ<`ff8s~cOh7gPkswP(~1QU1xtGui4`kAPWmt+{A^F>vDC zzZ$yVa=Qc(sZOT{=i$|GaWI8hb-qA5J(jf@4=*>NPG#W%Z3%ELLOAI P;@A`8f?oOX zYN|xTs9UOz1Y9_tKB`ELd3UIgsTvXAT;+c2GmgPI80n10s{B%9_oPMh1zkZB&8{;f z*=ngsF1?&7wjw{q#u&gwLlul{l`1-);+SVBrr+66PR6`6D>C+HAf$V7YKg)ElsSfl zS2lQY*Svwpv@dt(*T?LF?WQvz6Zm>3_$?)o2&WhDx0y*-O95A;x34Tewupe)Wii$} zl3GY=TR0JI* |HJxMf*s7`}^%zQ>te&;3FlcW=(zC zP25{Rn=pmE?};d}pvzn`&@lwiw~$uix3p2@>S^}|K@N2RpZZqZ=mP&NpH5qkY8!o~ zjVNG>B^Rs+tDk2#Or%u4PVZNvA{2Vl7F+|ZG-oo(WP3eGRj3}o0NVd1C)vw%j2usU z`2&=*T{=Hzdz;mjqH)(Z9zm|LoL+09X#8Px=Q@C`n^oZQbWYMK_^8Imh0nHcn)c^g z73;H-id-r212je40T~BA;rd6sokHh9ZFObTnW}i(cWL0!mxJ>?zZ%X##Q@l2;F2Jc zPT&g|7tHh(KTiMv04s-7jQHDk+4t4POo}Qllb^fesuAOq)91r)ZM2gc)K7|<9-i2Q z b3I;mwAjLS{P=QX*thOAnutC1Nt7k27VTOn)e4N;24b6*wZa9ln( zC(tw!0|8Bh?p7_hoHnlRfU`OHe6N*x(w4=Ds+!L#PMl(oQ1ex+Rz>28#{Ikwz{#)- zmgZ!>KWb(UaVY!nG{gXx?Co`__S5Iz{xBBFcL(ZTs8ZLue4~~ow8rY_Br?;dd}VbK z0w7Y@AJwxtddHfT-y2=je-sTT$>$04##uuQQBWhUsf?5eI30H*G`&71?ITa)G&Sik zzb=j(WB(iKauYslNq4VDj+!Tq{}Ez6K!_tUkT)gh8W0o`@oX!;ynqNlkW(ZAHO`+! zca^@VaPY X%>)6g%aiho z1k*J`<6!KW4}i1GxR$Zu7b40K*~g%LcGnKJ+Ph;8%?;s6opDoT>MAM|qCm71Amgi- ze;74=(Vxnfz~h@ps$P}>8K>E0hjZ09a}^@S;@s=+K8|P%DAoX$Ye}U^2S*^O@u!+8 zbu!;(vs$7cDm{ZdiycrrGkfSTgq96aHG!eG6o6fa&{nx9!Gj2B~6m+r6xUo^a2Y zl;exH0dGeSg$zb!uvbAKs#pWQX6UY&9MM*pqHh;9re4-R99F)ER_eq9O}Kd_FV-En zWl4ntPA7Qt)Y-ZC78zd_XyRatWHtu98jI;8nUmgEkDr`<23-cI0vb)DB2K#9>xB-Q zBFLI^rDAiP*|uX>)XCg{GZl)Ni<6nw_EU*qKMpMhbSKzc4gCD{$xlNshgC0FoL!di zCOF+|u^Bm#mY4Em{ZA49Ih=LuLnnZ2deSqyMr~Qv+Z$Mb%>Yc)DA|_mtT*NI*LW(` zrJr$<6ML{_h**ctg77uwbSpB$qB;;Q9Qp1_I (f!CuN zY3&G#J)!trm{t7N)lwNMA6l^6RVtHRho&*ShL8UI**X0s*;xM3&GwU MK%O+Vybi^ZceYfhUOWaYlSxm rab$(l^S7HNP8#&b?z|}YkF;z3-!e$7v zCP>XH>I$ajv|BE>rptS~o)-K?E-#$YVQ{9TPc&V~PL=ARi^ivNv)@5$(m$sM)PAI< zEV7Bq>B*?97uT@R-$6C!KWvEd=;@2)&R8M=_shs}w)xWI&v({cExk1Lc~%h=*-t$@ zkCc03am|J{Y;^L6F~Tt6;H@}&GNnF-b~lOWKyyyxi41lvuJKR{R0APsTF26SO;#@u zo;DG~ W zEmk(w5;Ck?B$MQs#6>SN2TBMHH+Aao+Z+XvdN}@m%Nja7lV9};r#r&1=}L7_qbt6@ zYWJ{Sg8E#%d2w70&*}zjd84DlNR~_s*PXdNN*Y8BMgEouXJQUgvzdbTznZ$|JUI5b zKPHqi^C>k3P%32&KaHKg5ECB <$yawNktg{sN~cQ2;J|D_F-x+}ZCUaFXZUJw&T>kM$jl}xbM0U;4~J#5R! zA+Y`}+j%6)U~?Tm@y$tZTHm*Ks{@HaJTZoe(r(@?4&T~o+>U*W_Q#vNTLUJhWz|mI z)@ZsAaS0TMnS^Fz04ab!H5#QP>pt6w)T!k#S#2G8Kb_uNfJgf!enMPrk|eN^sgv=a z+Dv#cq)`j@58t^1E2G662bh|rd<^gl5P<0Q%=gvVdRmUrhEZiS>*k%20aBl8em*xo zz-7MFVvu_#C)Ql06E(gS8h-6s(kFAiWt #=eq9vGPFgIw @#Sbi ?PO3$vd9mTAvF7`P^9_XGRY??eG97*z zN7Ek9fZZFLxHv7D4Ed5+9PTgxQsMKvTVZ0B`6_{LgHwyfODz$klw9j_LaurMDXNg> zyBK5avhfqXxNfQdSTn_Bc#60;5%g?us%fiQ%dhLQREKVJ+Ek@NC}pDe l@t1%ksgY07XUKCw;Ix*`KyPaUS{na166{!`;onJ0QuQe_+$lk@A zsI%;5!KfY|tr~AF8-IONWW==eIeq}5Bn^u0hw_peoGa=Tvm5ERER$UBu6@@Ilo?uo z`baWWwlmVl&jQl!mvyA3lcqY^ niE!pXr4Pc?B&6G>lzkUBQ z#8{Rom)qeLBIAv=dHA2@3BPMl>`l|vJyteB%38 OmPOckD(ASq`ku~TMqT<(h-V~Nn&Zp-~2Drvc> zt_>af_g@xFo?8D`02LeTfeqt5EH?%c5o|XjR^zj+*|V7NB<{XzY*8O>HSq%LKQ3w{ z0#Zw~Ql&*!4l|FjqqB{IE3?MqX@wkGVs8#}`Q=`T&|)pI*=^5`^MH6v)XRruA^;D6 z=DUfLWZ;m%djh;7Nz+dsPBIFiwlqhM;eng>7tjf6dGHcT@L2l|j-_P(*w?fEtquIv zMbClj@n@qKg(aqTk`bd#3_pVB#O~DA>#EGm@&}R_1anIA*AD7vieja4RqT|o0)n13 zx?0rNhP}&vwB4yC&mTnrL8sY%^FRy*RK}y@X3=K4V*s=-sI#=AIUWkJYFSe3A O&Vcyb2;e$sSYVE|aY z8=QPYSthOvjdiRRb =Ei+(oiDfH3JD@i2nI`vloIWNHAU%RiVKs_< $p+Awku6y)MFJ^$lc z?Ol(qW`h0w{ 6Q^-q=JVz?A zs{~Wa(yZ_fx_sZHdZ|kGG{-XjeclJQ-vr?DTa2H9jWm38Wuu*I+J94yeZ?a-a^be( zf2|{Vnj6 v2=Jlx{CFq%Raw0#oiD|l7wYPXE_hMZI!M4_fXRPKcs6mlh3 zw!fy&!dgxuEUDexzFKIJ7>H)>dwu_hp5>$z3n{1hZkySqT_Y_fA(v-4q02bBT(*PB zJpWFcR%7SvGbON~$^x#Sza_Hw3#RYOw;tsitBkd@-g E$Ki^@dBjo1|%kvF`Jin76I{&pM_<#L12E8_C4JUrRUn0NJHur{v4 zRnk;=AU=V0yn?Y}L@9^=t@}OlXaA%CE?-cvs)BXteiij5NAuS%`l+uG!M!f|jEF9g z7NR;R`O+X`MVi25<6;V|5A$e1ex`t7($TQ>x`+cHsg^b35~{$wzD`BnixL}!C0}RT zeiK>9Fi17(yaqWMR_Q+EHvt6T8?~XBIFgW8$NskpMP^$vy(^rVnx8->PNYyRN}cEh zYqLI6cgk1KZPx-`ToWWqAEB>q8XxmR+C!(~jZRGOOXk7eb7NpB+NwJ+QIg?tb+>f&ri>XS9+#T5#1JI;D*u z^Y5Si!aYXopC>dhklSO@i 9gE>T zeTs8=?a@b3Sh?mx;NFaS$j=HCeC+M*eXj(>a>NGHzVE&iV_+alIok72ou~H+ab%;r z`=Bqhz|3`G*xl&&Darj7i7=Z;RNVp*T2SlR!irz6T|yR9j-!nV3wm6K=Qs6cD?x?t zU#U{T%%eE$=Xu~09vVbY vLP zstmt+7CrTSk Ee}Alae#&!dEV+bY08;(P(iKG;*a{ zUO)9X9oo#Twb)|@rxp*)!#m> lKNn=dVbiI9U@0;Ls-dSzw@J!cL zKgigDvy91WSBT<5Aqr#ikr$bpcinhPiUg5a1?-|`{m~CdW&wmz(f;6r*;h-cG;8$b zhq9OrC)u3qJioy$0r)_q%zt759%O)Z{-5d}z)qC^(DEe7 zz5&|&&lfxQ`|!R2c3-pqJplX`cKN@J>G^+*clqC2{eK7}qU~KKJi*t~n;7|+$QHY( zNba?=u|lB#JNSjHe6Cq0jei>*;@`df{%y-G{Cz{pXIH*-K}mA2kJZ(mb>y rNxOj2Y7?(LLtJ0sKqMH`QYEwJ@<7p{>wU5aCb&vi2e_#9`gZJSn6TkIb z%S*z1PG5T*3EZqa6?Bi;+h<_vclE==Cd9Z{Cx<4sIR77Hy#-VpO|viz2?Pib+}+(R zI0RYT3GP9IyK8WFcMt9^L4&(naCc{sZ}Ply@BRNid-kl%RCiZZmrr+ik!*eje(j3a z-_v*h-F$^dh-V90+Ya{yi_K>a<{5ZAl7@#pX~l+Eu+3IDe^wPw<(uDGx^E*M9bK7v z|K~Q~6j;6h*?9MR9iTtbyeIeN#z=$@KBggLr2gJ_Y)=Pd?t3_CoRMK+&zU6uy~)>a z BrJiN@381dQ25(WJugFaV>~Ju%B8>Sx)@|G6ck$|&Rh=5D=XWo>2! zd@!Z 9{%?4b$U^MyHzmLrm|CsDyi9}xSZONqHa6$I!SWG=h4()y z8Pf!_i{uLVJ*e4d(>1P11mCy;Hf8q_;NSxD{&Se=KSRTo;bU=E0dC{(=y)9up}GvD zbh@{`52;q@z*HI=OGuM)a|0O7gG0?*e~A^qRwr1;!tBE3pPhgHfxv7AON@(x>3)9} za|P7BXU<-1j*Il6p>S}`T T)X((uDe)pTiE{9D?PxS58mTf{ZiNr); z5#85q+mMp}AHa;|xLgt!v6Q<%2Bl&Qed+(bff4{_Fa a5l*B$*F