From d78f6a1f9e6798220e6f31d79c5bcf84f19ac473 Mon Sep 17 00:00:00 2001 From: Arc <33088785+arcbtc@users.noreply.github.com> Date: Tue, 16 Apr 2024 15:26:04 +0100 Subject: [PATCH] Added extra default ads to support project (#2421) --- lnbits/app.py | 2 -- lnbits/core/services.py | 19 ++++++++------ lnbits/core/templates/core/index.html | 24 +++++++++++++----- lnbits/core/templates/core/wallet.html | 14 ++++++---- lnbits/settings.py | 2 +- .../static/images/bitcoin-hardware-wallet.png | Bin 0 -> 16651 bytes lnbits/static/images/bitcoin-shop-banner.png | Bin 0 -> 56349 bytes lnbits/static/images/open-sats.png | Bin 0 -> 15961 bytes tests/wallets/fixtures/models.py | 1 - tests/wallets/test_rest_wallets.py | 1 - 10 files changed, 38 insertions(+), 25 deletions(-) create mode 100644 lnbits/static/images/bitcoin-hardware-wallet.png create mode 100644 lnbits/static/images/bitcoin-shop-banner.png create mode 100644 lnbits/static/images/open-sats.png diff --git a/lnbits/app.py b/lnbits/app.py index 2cca3cc8b..a27b49138 100644 --- a/lnbits/app.py +++ b/lnbits/app.py @@ -69,7 +69,6 @@ from .tasks import ( async def startup(app: FastAPI): - # wait till migration is done await migrate_databases() @@ -177,7 +176,6 @@ def create_app() -> FastAPI: async def check_funding_source() -> None: - funding_source = get_funding_source() max_retries = settings.funding_source_max_retries diff --git a/lnbits/core/services.py b/lnbits/core/services.py index 4d2ccf1f5..9154fdec1 100644 --- a/lnbits/core/services.py +++ b/lnbits/core/services.py @@ -146,14 +146,17 @@ async def create_invoice( f"{settings.lnbits_wallet_limit_max_balance} sats." ) - ok, checking_id, payment_request, error_message = ( - await funding_source.create_invoice( - amount=amount_sat, - memo=invoice_memo, - description_hash=description_hash, - unhashed_description=unhashed_description, - expiry=expiry or settings.lightning_invoice_expiry, - ) + ( + ok, + checking_id, + payment_request, + error_message, + ) = await funding_source.create_invoice( + amount=amount_sat, + memo=invoice_memo, + description_hash=description_hash, + unhashed_description=unhashed_description, + expiry=expiry or settings.lightning_invoice_expiry, ) if not ok or not payment_request or not checking_id: raise InvoiceError(error_message or "unexpected backend error.") diff --git a/lnbits/core/templates/core/index.html b/lnbits/core/templates/core/index.html index 1a6a3b44d..c3fdac85c 100644 --- a/lnbits/core/templates/core/index.html +++ b/lnbits/core/templates/core/index.html @@ -502,18 +502,28 @@ - {% if AD_SPACE %} {% for ADS in AD_SPACE %} {% set AD = ADS.split(';') %} -
t@)`y}8vKPcet_EM-;5qR>m(}y8yT>*iG2)-A1^XngJ2ZUlD)VJ8_Rz)1+)^ zDD_Wri2Nl6!lbm799$juN;e5!yCQsgghC=KF=i9salNY-cX9gtgBZoPxQRRTunhn{2Ny;K_?Bb4lT5#)5xl@vMP?&Z^fIhXg#J&nhFOZtz9^q1-CpG$5L)p z>JjQM4?}+=24&pb*{oH9>+tWiiiq|f+#kr dwY(Fk_m8O4V|7dTk zT%RXadxg>>@dgqQSIO+d=&Jj|$u1f~iHU8cZ^dYUcM>-8P4oElq_AH@O(3n@*E*@# zebQLZ7_u)ze0OuJ>EXe%&rK3bkC&>1>Gr#O+cS1-pL>6?`4h{RkeTKLpjoDs`|7Wz z$)1uvQ7`h3$r}5=UQ>}9Qlx?(^|Ft}H}HsS5gkk3Nn|V`{u;p+4@!KzFi^w)^0FQ> zC1Jhvg&b4IKyoo`i@GGH8a;e`i*m_BNCCcd-ho1L0^6pRp9uZpYH@_JTqL8CKh6*x zVJduDl>hXrNFkb$Vrx;0bL;9G+m2W*t!Lx3KXfH)>BnpQGXALUsG(lVQu+Rf>aU%T z_+5hd7}oRMfF{w4IrPq#5!G>c*c&q`6g9y+*Ql1xs>A5kW~^J!U$$E48{w v})`_5s@)E}nz7S828*<_;aQ8VM`8s&= zs)J)MmvDdpA6tqZ*ZapJefqd&3La?1F^X#BXOkDuz4@u^mk~6OL-{5A ~`7>eB4`H1R-q9LmVR$HP=1@ zeD(tWhHe6zo0~a2{8~)S_f&L1br7RD@q9|1>PmvtX1mEL_#0DvEOI~Bf>ocbkMzSn z8JFS2wsyH^F`Xqm^zu#|8{g3y!LfIUi7P#tfUjFuU*XFVgP&e;)tbDo&UV5BtcIbR z??hk%JC_svYHQ9PL^A)3t04A2*86Z!Z|_N=_LSyrsIM5sSQ7y3uS=UMe<2(p>gA4y z6J;Orx?++3eI<7 |Ln_9S&Zr0j= *-e3d%DPvZUb1BzmX2gg($9 zryoBm3(Uxd(h*K5*B2Awh+(T2JRs+v3Y7Xc&9|D%-g-8+uVKe)p-tp*jCgh36uT)p z9k^G14ymGxr80dklg1dp9kILFdJRo^VHpuW*0VvaerwM1A9dA{GgHUVK?~Kkb7+>) z-|h+pN#`&TPuAIpCoL}~m>yg-;v8X%ihDn_PG{J^Z-VrFZAVTW6>&u>7P})Bpv)J7 zD9Vt_kOP~Im)a0 ai+C{j?CVhRmmQV?Eivsu2nDa+Y?|FReXZJzNixOh?PBRYUmm|!Dc3ba?WFJ$n zsS|wA2olqe2sd8B!c<}H#*=SDp7%E#vGlaZJcV-H$HoIgNStDIDRW&UW2}0<)6Ht_ z&*ACrBk~LVzzRRfHvNnA5L 9%smD>*bf`BLJer>f!6pZi%Jfn)Q|xKhp>n92M7^ZH`2NEm!XOB?}2U zM((rn5)=H)m42Ph+m+6@5>mlspO6c8VO$gcYre;2PBA$rCB>G!;-Tx_LYiX +X9MHHdxDZ&@5c%Nu)m%f|#F9b~|YLB9xA zys@7o+O-NMP6s|gXG&)C_anA$>jtiz*kz7>|6~2e+GMrw$}T3VdLb2$cRur o5u|`5bgDU)rf;Tzui3se z_URgUXROGMp2b`<=)+)2E3or8&YoQzZ}tWZcQlSpwKQf LT)gT6Y*(LYdVw@C}eRYS`kRt^~IebX2qLd>`y<2K0)n{yD~2g^kj$BA6=1 z+ nl*PzYo7m|W-~ASof8L36L5LDKsKo}Tc6`}ZehvCX1r$cO!j`xr=0t`J z)PI0_?++sz`}~5(vUkm97$}NtDD6)Oe{RC-nr-#pyh2=kkjM54fe6_<#LW9arZp24 zn8Zty>)XufCs-Q)ggtn!BtXgv7y9?_xXeEAr2hQoUW*HLoupO-oDO^M2Ui}7n4T`c zGcQUwr>hNSLVek`JLU;Y-v^|Us%biik35{TYy^hW^Q^Wo;-T`X$FoLC20AE^!x;{dk-t2(L_ yvQVQBw?giZ}O8*CqDUyM;|1dWsG)jAIbFo 9JpY095C#7C@g>itu{FxDO5kqI{x-z)Dy!n7OSk*MX@+Pi-XGj2%dKClfqQ}PgV zyunVBjp8BkGA<}wz`41;uD$nmT!$nP9_xpZX*svA@}szQR}Bh`y>5$h;9RtG$GRV- zxlyvP(r~gb$eHEal~mZn*Dn&E6CzwBPVT1uHe3~VS+GZK3h!dTm+5W1i>EvNn|Yo> zDk=JahQOSuD7PfIjE}qgJ#M2R7O|ON=qa8Db6bqGvc`mu_B$Mr{}x~a2_;x?DdbVY zWe?iAz-H4Sg!9#P_>oHyf5i<261Q+^65=fo=iEUq$`GFjmiVP&V!TqkmP7vV1Fy_P zI)pIq^}*Rdkn`h(RlK+86$5)_eyNp1&TVHP;9r@B+>_918vD%UABQ*B`@Lkg^1JmV zw+#!&crin5s0lV%1LuMxN|E)Sp;3qRLP`wZN>mDBBA7l?TzdZa5%wn D^D7N(@p+iXe4@Vjb!iao&U@W_5O zq;;f8Gu2SQM9ls>8G%%o=Pd>2cSsk9>(%mEvO)Xbgho_Ch<7=s_cqJ`b5tBgsAw`q zgIAuDGnpIa)4eT1dUhG^)lv{vY~WgSZ 0Ue@NH)bKCp)gp|MG z|FQZ2BbM*KvqhBl0G7nE689tNe~R`eJ-6G3-rdf5T0P;ewuB^A>-LLgdU{!dail2? zQP&0XH-8cp4*J(=EWnd%*1fkUohW-MgM*{NKtg_eAZ@DNmiAcbiCsa;9`g1K@a!Ie zXIK=|Qy-D;F3R^=@QgId!=ezCon$vKL!V=LX}mDre_uRcsWGt{#leV9OUm>_^rIOy zazFVn|6)7?)|si{BCCD;7s1I5l3>v*x5=`e!x*YsW5*9_lzvZ}3bG=}1%nH4i0x @ctrWFCP4%{HA`y1xC_kt*dPrVhqYiEwY&+_`>uni?&Y3e_%`e-WD^Hv~)63QI z8=z~IW_iL#4^h|WaBw3_n1Mt$Twj?|{HQX-n#nT`+GE~c3*uE(g<`(L>LAC5O)eX+ z_C9P@3xkWw;2?-w4bm+lhBSVXRPoJPPF5;?;4hIwmB^SCbxbb3DT{ZQzCad~{;DUs z-Wm1w>DtLq4ncVsMrq;<3CU#2dazG?5@d}>m^$z@>mnb!L0ydLzGi-`MMtWY-7#E$ z++^3nzWu?p7Gbl+xhJl= 4~0n~184vgONFLt;Idvs~L`jxy#+OkJbe%NHG= z^1C(^@4M{sC!(e<%^FH%?_4jechEzR#vo6ImPw1v`HPZlwq`$-E?`{Wv?kQXvJu)m zUMVmwyL`61mRFcRQjP<{shR#p>5xJ;)}XlW4 BHc;Wt8k!&{JU>(HZSeXzexd(3FU?juN Kp_ZV`40w%u$O4H$9~ zaK+{K;NGMK!0Xh Y5ejR>1G$!62y!pztCd@9VDo6qSrQp7&%a*Vys~!P z_oH9;yO_+}HdQq^HPDiy&-RNHHPeG-8}dl#YA<$S1(x`&h%ui93s46#;UpygaQSq( z zwgQ0Dgb_POCtvORR!9PSW{m5u1d7pZp7MYK>sFzya=B0bd &oiZG2WM*{XKe#- zr`rW5M0c+go7GiMA&@ACR)#m(JDaW>aMoK&IXJOL+s7mbAN>Y-goM?-L@4mRDkD1i zrkNZz0P=P{BypV!!G47{T_@(>qsAFkFKLdDG>5GTPx24D(Nb5#-H{48ux8XvVV6T| zL2Cl~PD_ZhPC}Wmz^(J`l+79&`0ZD7?`YgvrWOW99rFQA4t^mHAwalnqt19V-8Hy$ z;|Kb3zD%6nbg5G!w16H$ID4B9otgY1ZO%f7&gN|{9z9^*EvW+u1sHVMEcjsM5>fDJ zN~uoMf~Agn@E*3Y)H~*|?n*BH>~A_18*!9Iv|^g2xYhoqB1Y{?xIHpwUL2Vq4o#3) zx}TM6EXY)4^euNs#*4b^o09B@vZ^qS-tzY-_9fCyf}_(Se2@~*jaQiERgTm z+$C=-k?K~+$dUDQ`^Pr&b>*%n;kydzCCiSeYHegm9G<^P4ju z-_j#_Vp06Cvk$@=VHZ;s6Y^nyqu&$(628>IFGFO18gvLidM2*cYc`$ @1!}e)sh4VT{&v~?Gq(NR) z9mTupzI_-G)2 gilsfd8k_^9N z@C#NV@((IPx7z8AREt>}FGil0SgR?u6)FE@=4foQT?*z?wQ?K6Re{4TP+Dl}amQ
B4V!2muwWslR&_%yLETu9!5d>kb<)^;S4|Bt~ )2OtTtG*oir#%js*%xeM6=o@Ia<>GUG#YJ)ScTpM= zlDE3bz{%v0-5akkLx2_QisIrK*{Eth>`~)@_-qS?HQ(fy2X>eY2e7Pm&{1-eWlcz$ zMW=?Juv{3j*p$uTkgX(5%JR3)3+jF22Xb-GMA8yy4IEo%N)tfe7l%$vzunOLkI-K+ zNhHw|t(>#~?eFx3_5h)R)^)bDmRIwgSRT1(dX4A0(*%>Ev-&!TV?18 tm*hHJ6J`aoz|=5#4k9+%{B2Z)nmn4%y454j_jhY zr{~3ku`^g1`ec!S7)W?xg9^GUHQD ao4nQ;#gP_ZQ(a!`R!hIYxr@*{X8b&mYpIeEU6-o%x8_ z>9A)}r2x}6(9O2|NPOA2$sxG4VP4lCZq|n}>3Mghb#Um?Bs=553Y06480zqM KgWC`({gWSWR0b!;iO_w9pZm!{X^YxHo3wdBXC5@A&Ry?CP3tkaH>gZcqHm zpf=%Nbmd09WG9(m`Mz`8YvZZ-% B9DvwL6aR9$#`vrs@`AEh6NVU>#o;82B zI;PAxsQGH=c4d~X@AtvAnWVH^63P%dL2P S~%=<(WyFOrqq%Y4b=^+W??Q z-%a&VR#?`HB%H1d+8)ec)f|0TgU~K>{8^}!f`c{MNa=vLmuAwJ&U{~S08(0UF==pgU4$iPQYKIdf}R?6lCMLOUKIQ zM)e_qv#dcDCqSRyXd{uS4v{ADEZdkLA%`FfCzJmeu5=ykd3B6iAmrt=eV>Z`vB_3p zMHtfeczR!b<-X7?H33VWWEO<8!uSn3w3%EWBTlJ%k7R7Zwo7yuY&jSTfcnNFsVosF zATK-J1tkuZt(yWqZ;Q3ql(;6rnxpCY(;|3)9$(6J3F@9kW8eHAAgebr!~;$nWmrEL zb`E4_c5k+LE@oXqhThnuBzJ?_uCmBJw-yf`{!OfvPXAD`JX{S^95`#H_&L5Ilpm2| zIpWaOKuZaiLq1qV*cWUBzdEmj)CWx}e>Eo?`eP>=;%YG}2=eFG?h7BqaMY0&CD)vC z 3i(7b&rg&@PfL+fyK>9(&NS6|~I(KEEN0Uym##smyVPJg}~| zy3vW<{;|~2qU| >%zOZ_Vo zT69VB %p+D)n`{d%WFiHxJ z-<3tRPG$_N8peN@4`LAf4KUOxHJn-obghxv?pR%Acx%vNX}C(lYf>N}tKidQ444#i zKqdqMRmWZ{Y`o%}{H3a)%khT_hHtWU$yDqUl{V}reZ%dNH$@Ez`QqJiOTRLC=yNG- zcoP4fSfkTmIAVB;UQgPnj|h^}W#D$qkT_DnU*uGXKp)^6uH*S7oW9FDGpYQvSRGV6 zXPhq7@1)TfFsQ-a@vWto&qF6#{c=dEER~W0Y@=B4D@akk63R27tB5cP9wKNw?z}34 zC=#vT_3GI^#HKa&cu24t)~8bX-QzwkM~BE-WlfvW>mwg1bX>bfSo87R) wtat7NU`qYi*ch)VR=NUcS+%p5%cZ!swWMA21pw t+vfb!Q3=@(vHO_I1)e9rnLoc^cK9t#93-tE7RvzLKRFzE zVIJ{niKCw!1Pn*Geu=2?!4o(+BIJ^yN9N?uM@bHE$q#DQP87M9))}#Rv}P1rIHZ{9 z^8Q-8LEENk7iw;7o_kbY)@I4w=@cA;b~QSYIR#w!D0QYYrB5HB(b%_Dv9m9Tm*#pu zzkcdj!EoQzcV@%;a&h{7!QIZAE_yqROEnbK4`U)rC+`r1O G(0$Dw?kG?1x%_yB{^ zuT#z5ETE4$wB#W%BjVMj{A)n?8l;xpGu*s=<5t~zSaz1ROWohizph~?q>89JvEv1P zvC4);^izwO1oKZFIyFBr2vXcmRxvn-=_e#)$1gc~v7P5xN`QE Nkm{J5eb)J3yy+}Gz4?@*@BC`?w>y2yXb<>2h9~QrdFDwz3`k4A*p{7_KI*9$N z%+|Jfiz)eNFODrRSJEUazqsOH7?bD%Cm?;OUR4G>GMYcI)G+Kd`svim4kWnh-yiXK zYQ9CIcc&puLJxNls6J7-w52BdvD_NXEkYJsNrm@)+7-p&qM83RmdSgMP4BQhhs33> zT?!*U1UL$5%H=CzVc+#_xU3~vJAS&qWx^%6qesCP!^z<*Th_p(M@m-#bw2DOG93A4 zGDcz@AopNe0;1$QIwbeB_H{?uKln9&ezDV15fis!5>PB$H|u~k%xY8Yq0g|GI3`<|L?q{F6H+>4rzlA%;w zBqy*48$>5A+561|a$LRS7$l5ftmYw`FZF3kQ||z=@A1sr9lQ4G7{>|+?ELpkH-4-{ z6z7;q&!;J7cwVofSj}PaBCgrK$bQoD=oZ@h6GzfYTwjcxAe=aa|F`J;1&xl_5v4^q zbK$`OLwcdQd4$&A%$cuYTeetuu`rJ_T`4$fRelh9s{^jg&bEd(H|jX{qA$kvuDftu zL2+LLzWb6?{FhqDD3Jt7Cly@|=udGDlj+k~4GA3#nF)(fA*HRj`@a^n2$=qy7QI#t z5z3(4`IA!87nh5)BitH{!p-^$gV2JQXxU4HPy@xX-^Iet35$~9ABHL2bZ&4;dN(0! zIkTglunSzCCSW740AG04gWRJfxPGESFKMV9lqqTJufo+gp?Z70&B1(J)bE}M?|RIz z8c({P`V;UgsVz_sYWtQXb?7n%4!n@^2E=7BJ)b_4a^H+Hvews40!l#P>|Yzm`lja! z{GhLgP_`$r;J=Ttz_Izg+ARX8%O>gdDC8_dtZJ71XFX+^qCrl5$-$dl9R-^3Dql-g zoKqyf^7+@egf+evNt?URB4hU ?zEIOvgHQU;{+OYt^SGh9mjx%8J zfOIY$eLDjcwt-b)b#q}|+h=w?A3JijpU=lMqBC=tnu6rp{+l2MJO1KZxABop&HyPK zYnaKB6AEJ0B(NP)!_f!imnDY@_aZRQMtezYjAO%kNqKyQiZ@vp_`_ Mm;%)ElV-fBqrqu+|s5SjV7*zqm`B#!|7-!IbXC41u(CNgf}zH-=Ts z%^r;erA6t$iRs|Y0Ns;w4v@@@@!P^#^SN2x0+Xu;(m*Z zrrR`4_xcALj@*!K#0BuYOqCO~8?fZn;HEs8J$ZgBT}y=Km)il9)&EMDjTxPjd#RP2 zwa6WnHQ?!a@mt`%aQ1%zCq}6NL!+3JeXV{@7$Zn&-im<3*u~-iR9Vw^TrGCcqCL;6 z7RaafHWN FdpAeko ;OBcwak10c z?es{%N2~8YLy!N co+tMu%ii`>K$s=|XSU+?Ry`-;UA _0@w>Q${mM264>s zG~tr=D3Q<@tc^(38pJVxf>DTcTlWNKcBtqSCdQg)eFT`5wbt$>BGB$;>^->qJHiwb zah=9bnCEgf)}^x $H@)(PJ*(E0 zUPDPqK=TMsl>y;(n${M>T^H1<|=&(x#cn`FLL-FrnbuWHSuu=bS>a-$hw@2h>&P zht5I}QKiLZIhOarF40S8Ymmw2?TCr)SvEwmPNjk5AAU_cKAKn_#0UQd=RRIGV~_4> z95($S*GjsY m<_6kZPF zjl)Sl$&v3{koDwTmN`M=f-e=m9RG=?%&?R5W} u@ +7p`M2 zSeFDRKjuE@lBG`{sI(96-Uxc17m;`#Aq13(EG}yq>(9(C{d|_*IB{ lTH&}!!LT`Wt9*@{3AU1LQQig+&MnDJSvS1 L2X(6wy3s zr)UdXwZta~lAtx5oQ|##a=3I9{JDw}t)laOkBS-uW$X#ubd>++Au{)7&r9!XeO6%q zYfknQWGgOkris@4VTvtxXsUmULSk1Rq@`?XafvjSc ?~zuNi@E6w zg=IgNp)+>etn;=vc1)pZNzBka;~zKn9_srKc#2a(%t=}}mQ#ZJ (k>Zmiskp90;uDg_KRD_lB0d!u~<-ADD`k#lx^HiSz!ZkYe}NfJVfk zwxE=(-L;rdU}BvlxoOlY$}1A9S{Yi~ij_GRax_f*C4IUWpQh0wG#_34rj#jv{DH6S z;X%W8@V34{0BnOzNG`$Soa@9s=HZrZ&GQdXr-r*BM4`hA^rGKFdD=f$)H^QoEm>7m zRFIUeCM+A$3cZ@8nGZw?XBc2=D0Q|Oz{1RJ`KtC#57lvc79KC|CoP58>L;&X@Uu8^ zlNNgUW#5TB;ncjPRJDNrj17(&tcj@f(9-*ksmIXXlqFn#cU|l+gD}H5o8dERrO}>b zm$9d7f1 vEBI+xCz*Z0-K^vPf+#}+t#~q~ z!pz)@ahX^7AC+6a*E!UliGJ>&q*v()V&Kjrk^fU4U|bj|et6hIGvkG1h`tf}>8k7- zdC$g;Z);`x@i(eG@9~aytf%P*c*-vON$2TJrAuWjBun}X8HDEl=_MMHFrfu*k7oQP z{cL#^q4A_O9on}^jHg+2Sw+Xv!R`lpKc^J31woc8gBZfbV{fSax&ju}0UCW@JE#vU z5ofNMB%z9V$EC~eE$`#RsV@r7fAMHn7O5YWM@H56eQI7qJhN!rj|&%-F*+0BLl!`^ zA-HLvuOct$7pZK!Sk2&-L5Q(>#QE`;PDlFO@+3}{ NA^hi)`wDqvT7le0ak3sJ7AcWN_gA;3 zCiSc~_Pqj*X3a rUVL2$*XK`D^oknpqx~tLR@D1FVv| el);LL}_^Ig+!aK38X zcz%XH$`*jP5$-XoQWB#^0K|JMr1xkt1hRQA<8JWBDfHom!){Y>&3nw^?Bng2!LR%m zIWG-WqLpu>|3FJ$pKDHEgq-#js;>RM7~!@~+
GP| z)gv8zla3s;=z!7k)bbzAUqTMW+t2&sJU3Q9JU}FK`;uZ}daEPxH^EG&O>+O3JUb-5 zGUa3GxYcqiN{`fV &3DW#6pire)HLw;3zL&csIQcs>flkO}%^<-a^%W6u~ zD`VM=S`{T~Qg+FS$~A^+Si;a4{eD(G8LFuU?mNo<(>iajN1F0lMnP=5KANXLYHm*k z%IRYs$M<>U+p|*la>dEX$u(oVaE@eT&hKM;^t5|?e^) g1$k+8I5>nkSX>_! z8TKE@OY;N^#>{jT%oP+^;ZR{WFiChsICxlW4gnVZJFXAAM}U6@_Y4+>z%D#k{I|^S ziwqv=PZ$Y{lm8uu!s5(-%lt0G4UYha1q;(*7XTI~fQ4USm(|C=>S~3>e}7Q_d<9@N z|CabClv7Yrr3P?tb8+zS!^(33c!jxmg}M2uxdFnk9~Td-e)#NvYxEn5CHcV!reBbi zl$5H1loYjtlfAi>tr;AgN4jsEn0(i(7d=Lk;p(jDZa9wpsxo67tn0ePszK;E+LqHD zn-iRt6R|bl1kuZoP$Y FS#|3ThN! zvg8%!*!kBKV0X_OH?4g?8Mp^j6U+@jb)=92u+!ORxvOusiFx!?{Ay=c%bDnz53OS) zsd=Ku2M_aVYlju4=hdG}@Urk#KDoSJmn(b8(dNh@$aXwbk)k|||1qpb66GbuP 8k2`ytOB(ACM4`;rsC^ahN2##HtEK!PdlMi^{w#{n|6 zH! |D<#LU79B1U`E)J98fWhzFi!>7ch Ehxb%*pBQ?#|)P!(s1a!O1No zB*e)D-~<5JVG``lo)8z12Rp=>?l;6=7}93WU?(dF7b|-R^>0j&iM^|f7%eR >QMo{sj+l{+k6DADkW_2TpDdE>1f;&i^do>>}d^1NmE_|6>VfO-~0iPIWV9dsip0 znT(qm#D(rZAxy#lD(~RxWc#N%reIDpTQfVDs57iq?*CEc?-BQ}62B?1u(EUbQwm1* z|B!UCGXFPO|3kOmIe(h-pNhbW{|onjNdMFJKf*96B_&~Ld$8+o^%SJVXn)r)Y-$g- zG8O(46%;TL;xYk)*v)u^_}O{EeCF&XAX9F3ZU8_405UTZG!x|h4=4qQvkM3UHv0_) z1Lv@U;qU=K<^mvIL3TlI9usz6K^{JKK> |PsVS;g Gh|vN#xc;4@Y725PhZPW`ePac2_4s#&rj?zUh70I7o7@82 zJOF+^Apox+9}j?w@83e&W=_tqp7`krAJ^#O? ze-9pNQJ6f; gp_G|U|Ty8G+a*6PntqNe^cD1<@aznb6-ax*jiqbCgO zuPm@72x4Id^B#Y9*MHKj{tsP22*AZHU=FjNAedi(otK9P#4aQ#V8$*4Fy}Yt=i%q# z1^h+QztElS&0X9 <@%KeoFb6zlC$oVg4_%~-TegAKM{ Yih=)?@PB*P|8I1m|9d%Q27%3j++m9)3R_AS z*g^~0L{Ux}?& ~@CxIoRxF{&epzI>zU|=Hh&K7LK z!BN90NWa$fSlDmzgqqI2+qr4DYGt@w;(7V9`Z8WKNo#@KzKVMV&V8eojUTxSZW%mT zawvr2ATY`GN?>?Q?2Qyp*TnD$X1aNS5HDuoA_@KCTvF+~ukl|s?~)R|&G+q_u12V? zWK7MAfUJqYs{HUHA+0!4(vy`4V*8twqld> o_lJi-}kVjp1y{iBqm)+4z``Q$hJ8xY}W3tuI%_%KB%%Ge@NKU z3KW<_`h)xo^LXI{-Bd_?EkR^~Ew7Z`8@{OH>Y)5}9Jz2U{q+U3lgySyAy=p9BD)Pt ztXWhHni+i}4vxyY8LuAk#Vt+eQJvlEQ)@3bBtAWb1~a`htsTYL6BFPAM$6UKXStP0 z&D`3CbsG+?;jS^JXpKAqW`+Sk)X~d4Xt(2Svl$84$U&9oQz;3~{@;9j`=MGHLIY+d zSCX-SRs}gNFhm+$E0BlDpoZ}gNkGP9n* R(S{c-VF&l z6DQS|xbvh?#qPm(Q2uQZas(M0QodBj1odHcpm094mtgW!pi%`RgMxYqTu}QZB9Ml8 zHz*@RE9oIt>te$GDzos*YzFWha}ab;W?j(SuJnd)PvX#Rqqs`fmL_? 7t#&x5YR6c<`&GECC_A6#$^vJ2NkxJ3y@2ng_j$vEc z3G~CL`LyR^v>9>RdBY3I{(~h50v2c*R?;*F>Pk&PmIP!*y3&VPN&qRmkU9NC YunnN ^|t*&|{?rGsDsw}CR%;4S^HGt6U zHheD)G$dn7WLXH(&p0Hl?UyLm`Ju%>hZQsG$G%^u@wS`- z)ElI8NYvSrNlUS~g+<@w=zrE^(O@G)i$Ds3^U~`klI{CA-(VBc;OzWD$SYE#aKsS= zxd{(<%URPXg?^c4)wD5VO$5~HN5zffhR9iCPJe|Cn%%d{W#cp$k-kC=P^aYacB` I zoG()Ng>nf7iYK0cgiD|IWeR`q=V8*-dz&|DX%f_}AAvJ=N+=hel%mOFO8+iLArhHJ zRT2)_hCLH0O=ka~1aL(BrMP^g^l6%Q_UW|iXf1cqBpky?GB$8H8@D4EQ~y
4f;8{tZR4Tz)P~A^CYXgyhctb`zmF58XQU5Ji2AQ zq^ico&ZS@>B4T1)UES=~1?odt7XwmVs!@%SsWfT5^UrrbMdVnQ>YQ-5M-o^pfl)Of zJpxNZDFT#hQ#aLYSuL-ISn0g2^K9ZRS$a?-xW%Yy^JitZyM}|(gwfcotgNuqP2j;w zkIY=Uc%wVIuBl8wIuaVg gUo>AT5ibA0BX(o+?jI0YA{Y&$YU;^V(x(Ol-$@8$9 z9*F3wN{0izMfIu>>NB_fm5!-%0`JSCoMnhck!F!5kN`s&{z?oxCE@3a)AH!KmeH+` z*M@zv`mlHaACZj)6l%N3KYV`fCVaqOY*Wm}&f#?50Dd9j^@7|6`o5~18QE;&&7=Z& zh)|TCz4YW`NabKeKQ99`URPf>=Ecr&Wv *LfO+x0Gk?R`jhf;Y38cb*@vau2nF zVt(XBuZl)Qa?pw>8h^g0hEj``=yXBr;#$Gj7gwvDKlw#@SJ&Jhx4Fp Z;EtQjY zB=-N(J8}YI9HfzQei=!G9yI*iuqlGLP}iywnE-NUrcBEh$dSZ$%nS{WbZOd;AuD0c ziq oRmc;R%V`K%jAF@YQ_ z=+DO@Ph~CgqDUJr2s;x+UR6Br-59AUu1iu*({r*CfuZZUTBY;0tF`BTr+cgIBc_yz znX+ZQUm~(T-jZ2TFY 1{!GfAjn#>goF3{V(E}v)Pz*lDD?V zh~9tAOv#amLf3-?!xZ9!+?smEj!~x ()l)M26`egpYib6QTrb~2i+L~^L^9)TN}R}zR0YVUW5dM9Gu;Q1sD z5pj4gaoZ)a{-cjFpM;175h<|ZJ(Dj-#+HP>y`#$O3VRoVhHpXk>^aAwrRLTx9Rn6I zJhQg(u8aGrE4_!m=)pM!Q~Nk<<+L*f#;^GoA>~#dwDI;7g1Dt+E1t6{48~XR=Dkwv zvP^PF2nvH_ynCHu(RErZ|K(Zh-rmu=Qgzop3wp2FM@e_I@<)2KT0;Wen7Xd$uiws3+W4c zgib3&qWq?Q<>WNs2%lfW_QsI>0sKND6yo%MW~6H&)N@3QYT-j+4g@kT+ar~Ab)9pY z{NJ~}+Wd%`+pJ!B^W~jSCf%y7TI?OAUHg@9cs}ixQ`}fWo&qpeZD%NKW0%d$(goqC zXEMWVveeU28uVbLF&}Eo-b?1QnyX#5=1HlSG;TX1B;uYqJ*`zUj+zq-#6hM}NHs2@ z88Hzp$8;*D0Jkh|>8XL_isS|P1K;Z98WWNtm!~-#Eg{^M7DSqPKvuArYkKH$`CX-r zY(D(7Ys9IkG1FriQ5;OitI5L{%zoR2fzf?{eC8Nb=P+hzL3o0o4SfoyB+e
F^6ccL*FJ~cR-zO`m5T>n^GKh;c~xkyb{`cplbNI>R}r# zaod@wA%;gcU`m>ZJQfwV++EZISBG^9-Se`VSB-LZ$LmB}ynzqrz)A>_>F3QUH;kvc z6*-z8yqqqKlP+_ZJ$o@gnHd!4D32#!OLyD*ElL$nl&U#>3 jq8yc3a>% z>SdH %=4@SdTBkCYFdB>+aIC33^=`$H2KD4w@Jy<5;qdo+&*w(z7M@md z+Qq>gH_aCAhuHwpkoP+`SpxW%Sf>YgLQn!`6&kO^WL=+8I!pwpW}e=g;_1!fB8`%g z6645@GoK(F%hD6yEZ)5;ZF??${_pqq2>Lc9NJY1z5b!Jb7vXe=EQy~o=0e^XG9l8^ zD3s*9=+i_(1>-oTdQTxOnCHm@Xyg;KA(+nX3RZg1KxtC-mjjWn4HR_QoUhUj!CvMl za#=z{Cxw(7HOeV?TomQibR}cVQ}RYRfqi2-_al9)qZH$w=!1o^Bza*u^8q)EHI8AF z51cGaEiy #5*OGTg$psOmdP;7K@ zsXg)4MVfgw-GS?bCd_8SYs^bGO?y^cTKu^0j``6eqA*)^fqJf%W&g4zR2%>EOaa3C zrLVcCatVT+%XU(l?!Ua^Y0ZW@>>k%loau0EM-%p!Dk-$fSCJon2t4RyUa#}ihzzVP zlKwGUl(DtTr;{+XNPc;m*onAN^J*EAkaXBE*ve;MEG#6Y$fCuJU> Rm)KUv?|EnaAB(aYdQ{mK*P8iy#yVzA=dC$R+Tb;jIbq{oi}EABFZ zQCcJfvL3n!@=l$$@KnU3D9Sy`Kl{%0+U2j($CPCRQaVT~Zu6NuhdhXqR9@vH8sc_> zbVaasD1)<+4dL@*67iaG-h>e1(GW`8#Ma<6Vrd5w>Z(a&1c&8z^lZyg&uxJD-1g_5 zs~EOndF^)NzmRY|X>=L O)$@6|?bc1-%bnEPv@b?#BtPfSZXo zBb6n0Ns5z3ySQ-e?IoTUZ%VM6T#S3KpkBq6GYOg0H2{Mg0}}JiKGQpz8ZbkTejw#k z$LcDY56OZ)AJhuZ?!KX$Lhf)giPgvzQwbP1UC1t_QKEfQ5cc``@P#XER9n>=nCgX4 zA(n-zEBO4J`X#7*B1*OD{*(tLh>*#H(pv!w7jxdS ?v9R!2ocW2mTtn#h!*tw6%~`x`w@F3MclMB<#*i9I~6Jwb>V#6L>ryEr-7P5 z@0|v2&RXE^$HZ7yaqS4dS&G4zqz5N5glglCqq}1s0_>$&PaRMe-aV8}eVh|D=St zDD&Ye(bndy5YtmqQM?Y<82U;P9uF~T(OqfWT28u%k%x0c#nillC005Vf>Pc5t4`tl z#Vm~rkC1FIYFeYylnYj|Qd>tJ8azX#3F^z2^uc6tSjfb=$x>eVn^NAZeHpp#>KEVd zx8~cn?MEceYvn2|EEsP#jePeT?S@8MA7(wzC*{g)43_@d2r?88X+h|krj45_;n#OL zVAL8lmv)Q*_bCG;+S-TqdGR+kn2V0Zg2$5}0 wXa2gjA}m|6jE zof)~hvb5#JufYxk8@yj#V5r?Qz2bFu;UIO#aqG-u0w$T>&n`f>eBtl%Mcucj=#B&+ zqGKKEE8)UiIRcW3jAHs0{6AzLfsgph$iKbokbIk4$Pp2WkCY_MvW@x5vQr#u20# zsjXPF(QFaBphM~iEf)){IKFh5eooK>tz<9>=PQD*mWz_+XtZDH;)(bn@W?539WE96 zbO7eGgl5lGLviQp{j(WzGg8!GT;tM}RL04>+AB+%3q&s`ViPZvuVl1Rv2{`3$%H!W z)eilFSHC$EoNcFB4gfI1)@|uFer|F2-<<0ybK2EL2enF)L>&mG#Y|J5?Mh?J35IA# z#@P~FLC7NX(D-p;r*WVa0BQ{efR<@&xUb!uL{$d%P;0Wl^JQ6 J*%@{vj>E$_99 zqh`o*v7#=Jk!J~Hkb+z7^~pbslv1@wO4(rPTbQQEniOe%jZ}`*DAg{S`Kk$I0B!+L zW#aSMMn>cES%ioCtAf5P<}d!-M$dNuVP$?aIz18Hu}M@H?h$raOs7XH)lSRb(n1eL zNJzkkGfgotuhuKnFJ1EvG}+}5;~SViBjzVbs7*^<5~Z>c-jFXI3DW5$rwDLMi&tff zJApEVM!wPw>u+50IflTNgk8i`*O-GlD&R;N^w&*lJM&T>S(3wR$gzGMaAay;1F7M) zu-Z}c5UnE5USssgpfT}u1+e`n7-5a@3%GQRJivH{okm(E*yS=i9w8UYC^I({6$Slx z{IR{ vc7;E z55#p`gEWVs-Dkg#)WI#y9kZ5n#xhy-&+4bEPQ<3`iH*xin>T0*cGvc4y-G6h^q4+v zlW+(EM<~Go1LTa6_@CLlqCcN@wrcmtCfps~G}`Q5z%Lt9!=h1@PcSfyC9&at7XA=_ zyh3s1__Vn=r?C?82GO!IKPT}!J=N0XaAcC~^+Dm&*(`DgB_#*9IKS62|K?9AIYD>7 zt#JRVhhmYFNu7$l@o7lc#Zt75-p;VV@F~UW C0F$9aEmt>>1jI?Z?Q zu1>;Y{3V*)k7V~E`>6cmjUH-OH;=0=kS*>RuGb{)g%79qXV|8XV@ zv$dHVHJ{D&?vivSmvO@SYc7qSVpZ!35`)4dR8S#SeY?*_wq@Md)FafocE6FfAin)< zOaaJBuU_Og`}*`8hvBWEUY4yz+4$gYKWZ*GSJRr0bqkPhGM+)MC!0>s##xSI^hpXB z#y1mZQ#w#{SUmEYWZm<1rlyJN_b%*oJiF5D$tb;I0V_UY-FHSmI&aRPKnCkX^y=!x zFk$vcKFzOMj7;^DR<&b{9cKh;n@xyu^sm?Yo4BKEj0V)kMgW=mZ%s$#6PLHp5#d{v zQ*h$p6ln> d~4Bc%!G@4tq;QKjZdms`;7Z-<7@eTmL`YZzJG>A7Vm5l`=*i4~tQbjZ+rp`CXm zgq&W3a}eQh_@XBA%&w5Udp1h*Jsb(k>)Q9pZaAHEZw#6Rpv@;#`#TnG9+@aH9BS;> z9#ylr>a;bEFvDs6#I+us25kQff}{nbK+`RdsKAIRrxi2PxVj>re)w}oCKdZw&I&l( zjU7aWt6jA))%j=4r?Z*D13Dh2-BlZkJIh5Mn~Zz|#j1S+pMI9NT{YTv7al$kX5KF1 zbM7`hwjSN!P+hkRG#hVDNMZX18{O8oJ%syOT`jr3r@9+gQDsdmyM`?R29KUPsLp L0XiPx_yw=tLPG zeM(uA^Sj=7A?ji9)Ns|jvlsR`H0zf5DFouK+U|9 ; zd`L*hr 5N6|OMSwPbf`#9f9YcY3wY^`q8lN}~Nh z$17z(MbONSRnLJ++eEdie}$4#Q59+zt1}ZZCl7jjr&GXR7c3aJbZ~@3L+T@-=%Z)1 z$`;A{aYBT%S7@DM3{|kH@y)|*q5dSqUH7e?g>Q>OAvqXJ`GPmqt7XKwPo>hP4--8? znXXPrMV&3tvUXu=&y{GK_)}&|Cw4gR;$XVCb6I(0kAmb{%QvG-pCl*Rkx%T;X+9Qz z>LGMP78h~-j?2 hd(mF0>Y)1N5PI29 zE?~1-QbDf6c#(L-G;53RNkl%u%po{Qr~NY6VQ_#7ZogE34f*|bfEuM}s=<&_l6Q0d z%SJ77wf7_zSON%|k2j@6y4V)2b%rCm?+is}zA*wP26?tnzP&h1{}y&-?=OH70_jln zAx5>%T5Y$^6*rm8A3;4tKU%jqymNfK=z4 0X18Gd zs^2k^f^V&UzAkFOcEOQ6WM1c#klDBa?>VJt`{A;ImTEo$Oepqe(fG@+rPIKG5B5tj zJNDf;d}&J0#hiZ;W~6xVaRc6N8$H~soU~rGe5C#+-oq-1+S@BjN>09&>3z8E-F5}O zU*~)Tv^|LUU&be$DINJQVm#mU(ls#Hn9sF9(K(ytDNjNuqNj~T434e98M|c93)8?u zqE`pmy;;)>Z11bril>*|!?a F35v+gMlZ0K(_e1>C#sV=m>k0&n~L@*-zL#RnE zwV*^mzocA1*HDikTs=<{m4$oZbCjC`9cm}_D|DGu^Qo^|z ul`j+9|R$Wis z3^TLBngW8#7HhLX7Pl&MV#9{g6*p`{Ag3^M{e0XaeN_)tdv?Zie_U?9+CrdE`GuST z6_|Y|-^7r-Ztr=$?4D0Y8g-NMRfM)c4jVyAqI@xz2?>o3{PL*IPcwB3K|USGFY8aF zs-Eqk-BH9PSU3x+M9ECA4wyS;(w*$i{7vu&_yty@LuYU%z9lN4&7crU=Ah^Q@Qcj5 z1K73V{OGqI qI6osF zgeSO>*bT&{BhY6pIUfUJai}J*8C F0McoV89&^>8&cIZ~`rVKa@8fDh*ME_^#z-@g&Em}~yeSpbz6=8g>~w+-BA z9S11(8(Dtqch@OTTdT{lts88E93oL>k)9n0Gv0@-iCK3ISq1v@sw**65+m3T{VEsJ zH?sio(}UG^mB&p9u&wPrq0wwIrPpSD@h|(vy|0D>0`86uGX7%m)(o+k-Dd=byE#6= z$As$F @p$TIF(7yRV)tl=8nUw&_*?iiDGpmZ`BK z?q{TKV%1Yf17ifk#`R=dR +h$2wwm%n`IHYs6b3&O<0)+l|x zwO1+6az>AvoRyJBmQS$dM9RXTm%29a{$+lsZ7)lyP#Ov2pp>d%uxvsGuu8)sJvK>I z!Spq4aK|Xh^Ve%}j8+mMT-AZU`kCEVd<7IzY4g^na+u;?%V%e2(2L&8(TP58edKPi zG i#G;pxY$_%Zbh@ij zCb&0mFiFN{2swTQEd>SYiX6$;aa)qF%U~UH3^@$x7f#uq=AZj7?b>WU?@;<$mxveP zM2A^i!OTV}d-Fa9m$p6@lgog7gKDTXX7Qtaq4`(Oa|~Y-yHYb(-^89^8JL-XEU;%! zrJZ$Sx#3m+#kQOs`=nE<(YGUw`|tQqD20m{ $^CG*+5p7-7*jc{I zGN+!IeRnHYl*;LXJ@yZU628k{%5@@OQ`3;#QHqTf@593w%t_v@A0MgA4%ZWXFF_;# zVL(;S0)Uq{$crL!&i@*vErRN yd6FFUpw&FD?nVtRVLYsH223v>+9H9_|)3hE jKO9<_I>f4?~*bW**$OC&i4%B*jgA%%6$Cfk%)Fw*y*gb0N zpSu>kkbOqiEXuTm=M_tjAc4aSFR5SumVU3@Sr@{G)|88^Xc*AwbtBDDX`H`fEAX%@ zO69;q!+1q?6