From 9dc2c72de75b5d7c9b70d2ccb3d616c6005c1231 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Thu, 30 Aug 2018 11:25:40 -0500 Subject: [PATCH] Add template cfdi pay --- source/app/models/main.py | 28 +++++++++++++++++++++++++- source/static/js/controller/bancos.js | 10 ++++----- source/templates/plantilla_pagos.ods | Bin 0 -> 26221 bytes 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 source/templates/plantilla_pagos.ods diff --git a/source/app/models/main.py b/source/app/models/main.py index 4efec8a..0e9a0f6 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -216,6 +216,8 @@ def get_doc(type_doc, id, rfc): data, file_name = CfdiNomina.get_pdf(id, rfc) elif type_doc == 'xmlpago': data, file_name = CfdiPagos.get_file_xml(id) + elif type_doc == 'pdfpago': + data, file_name = CfdiPagos.get_file_pdf(id) return data, file_name, content_type @@ -5265,7 +5267,7 @@ class CfdiPagos(BaseModel): estatus_sat = TextField(default='') notas = TextField(default='') error = TextField(default='') - cancelado = BooleanField(default=False) + cancelada = BooleanField(default=False) class Meta: order_by = ('movimiento',) @@ -5521,6 +5523,27 @@ class CfdiPagos(BaseModel): name = '{}{}_{}.xml'.format(obj.serie, folio, obj.socio.rfc) return obj.xml, name + @classmethod + def get_file_pdf(cls, id): + try: + emisor = Emisor.select()[0] + except IndexError: + return b'', 'sin_datos_de_emisor.pdf' + + obj = CfdiPagos.get(CfdiPagos.id==id) + folio = str(obj.folio).zfill(6) + name = '{}{}_{}.pdf'.format(obj.serie, folio, obj.socio.rfc) + + if obj.uuid is None: + return b'', name + + # ~ values = cls._get_not_in_xml(cls, obj, emisor) + data = util.get_data_from_xml(obj, {}) + print(data) + # ~ doc = util.to_pdf(data, emisor.rfc) + + return b'', name + @classmethod def get_values(cls, values): opt = values.pop('opt') @@ -7809,6 +7832,7 @@ def _migrate_tables(): error = TextField(default='') tipo_relacion = TextField(default='') uuid_relacionado = UUIDField(null=True) + cancelada = BooleanField(default=False) migrations.append(migrator.add_column('cfdipagos', 'serie', serie)) migrations.append(migrator.add_column('cfdipagos', 'folio', folio)) migrations.append(migrator.add_column('cfdipagos', 'lugar_expedicion', lugar_expedicion)) @@ -7818,6 +7842,8 @@ def _migrate_tables(): migrations.append(migrator.add_column('cfdipagos', 'tipo_relacion', tipo_relacion)) migrations.append(migrator.add_column('cfdipagos', 'uuid_relacionado', uuid_relacionado)) migrations.append(migrator.add_column('cfdipagos', 'socio_id', socio)) + migrations.append(migrator.drop_column('cfdipagos', 'cancelado')) + migrations.append(migrator.add_column('cfdipagos', 'cancelada', cancelada)) if migrations: with database_proxy.atomic() as txn: diff --git a/source/static/js/controller/bancos.js b/source/static/js/controller/bancos.js index 2ab53dd..05e1efa 100644 --- a/source/static/js/controller/bancos.js +++ b/source/static/js/controller/bancos.js @@ -881,12 +881,10 @@ function grid_cfdi_pay_click(id, e, node){ if(id.column == 'xml'){ location = '/doc/xmlpago/' + row.id + }else if(id.column == 'pdf'){ + window.open('/doc/pdfpago/' + row.id, '_blank') + }else if(id.column == 'email'){ + //~ enviar_correo(row) } - //~ }else if(id.column == 'pdf'){ - //~ get_pdf(row.id) - //~ }else if(id.column == 'email'){ - //~ enviar_correo(row) - //~ } - } diff --git a/source/templates/plantilla_pagos.ods b/source/templates/plantilla_pagos.ods new file mode 100644 index 0000000000000000000000000000000000000000..8061850ae6e54ef7ddd969de9a9818e6591e10b9 GIT binary patch literal 26221 zcmeFYWmH|wvM9Q62=49{++BkOg1b8lcXtU8T!Op1yIUZ*y9Eyp!QJl4XJ?=H_I~5O zaqrJF$LQI!dzN)|bycs~s}!UmATa;{SO5TtKuIRpnkSqQ008_hpe}%og$>Zz!yag8 zZ*Og3Z0KxZXUpVjYr<$}=w#usmTGdkHj0u4=^%z;2>h5trVkATAs zfC(Z7Dmb7@#oWcl$kx!p+KI{e??*;^TeC0)xsQnN@ZNzy5Tzu=ltA??000Jn1qVG9 zwam2x02qT(Vjoo8Gfp#oDu~1}2jmY`!Hg|bV8ygBq~U3&#L|UPQA^OmjOGk3B0^(@ zNh|Y0bI9J21`Ey6&U^-kE>H-}5m6PR)d!DTQXuhHcxOSQKoZ-ugjJ~E_Dk<}!fPUR zd3kdAu5*%!i|cA)VsLrc%*C7_|g;+{!C!SH)-|JJrM@Ah@!*jRD&63}f*W;wt9tZ}_ zl`j|_(~nZ3*Rzq1_FJFh>sL7}rII);H!i6T#i?E$SxPN`vV4;4D_{w(Zd(43w@wxB zRYJ5wpKNKAHZYI6w;&xoP)7&ktw*LwGQSRa3Wk)xnIq);{>OxuQRlHfOAt^VOG6 zcl>?)@D)$tGq-$Jog)`NoQ@FPLU~eryVOhR-sO^JrvpF7+k汁&-g5A5z-|CH!fv!Hm^t{h2MLk_Q7A+L%pbkN|I-9% zqi<@*Z38{ab7Tx6oee6IW@8vN>^Di`A0}RcAWSF z2bmBt5R1`jccf;6()<$-S;v3{WAI0Xrn|%WiG;oEv0g*7>=ypJjib)<+qAQcsj3uF z4Q?=NdZKd`{PODGc$u;Et8r;b*KpXN>#U+VO>r)dhIvy?-0SIRq$d?9kEJFrm8xqB zSaKBc6tjFVrHyq6;rIrQsMPVW&gXVN9hSldb`+KBdld3T%H6PMvYL`?jimcceKT8k zF~d;qNf9}`Lc1sglSE;MQ74*%UIBBP6edV;(8FR}d~5XBkg6c_Od-aVt zPVewa>Dw|I{inoRhBEwQ>FU72mOQC|=JY@^pJYW49FtZkM7uD+7cw;0v<&1Cb@11cWzK~&1~(eqFCM!DUY2ab{p4j1V^ilW8EGwi zb@^oDN}WIr@~6f;qOY;O-vZNgsg4!(R#sKJSBfe(yIru{UExeo zWp#+WogQp89#kk-p*3mPRVwY(MKEP>O2*(sAgRSCzVf2v1=b{o|4`JxE)%+2~tFKpze zQ=C9JBwLO3>z&Cq3(#J4p*J33Tj44k3;=HNGfFU+@tydr*Ci`5I2|WNk%Y2tm;h(9fodq&slpX^ z%=oaAfB=2m`2IXxE3c-p9FJJXHMC%>|Q;7;g+fT|n9X8*x zh>qs5Zkj@+EnPb@sOn{xbz}tA%WN2}mMuuoM;}Z%11Da&EE8A!T{|tMo2o_jeOB9I zXAD{DgcRV1Wp~J$)8U#q7b9gNs$QiK*=-Wp`<&LBBwn&i7H~_z9G#I7)Oo6mc2iI7 zlsSM^jb+Qet4q=MrM8LP4I%^VAIGzP_PkiwHVaU;e^)FVJ7Tv~)wM{=`DQi=I0wkH zhKla6Axtf@bG=QS8Ro1)sFcU+Z+jo1)HG4DrTuM`R0I1rh@@ZS^4Sb82> z&AoUW+zP`6Bpc87k7r+3jlZ9I8)9Vm9`WnbK(D(KIWxcGXr04O^Qf<_m(QwT2(emK zNskm<0t~{_81M5!a0HTohaB1jcog_981d=DRhjbK!qL;7J_C%1yJi2&EE3Pp)DR-M zUMYjqK;&OtXI;Nx`qaW&!Euk2$ox9WOVHp;ga--^pPta!e@&LdyFjIsk*-p`X=%EA zCD(SQLFcOXGftCu_CO@1OEQaDu~_~}pV~bcc%qfV>8Iy%k~LtgJXELP2Un>4+5T}X zd-3ah=#&xt<|IV!k2ZV7%Qr$V8DEE+G*q917!xK%)@PW{GbgkYZb(>{L^!r^^IM}rgDwfwiBW{o%{*`4q+t8f}7tIrJ_ z^_+!Urn1f3Z8Wv`QS0V(>PGUcxAoQdtuynS%@)Fpsqaq*Wcn`oo8?b@?T(B_jQPg2 zECFfxq#~Z&9FG3-C%rydYki~k`gd=LxlLh0tQ6ASTpW8%nfV)(nBNDYKr!K45S(cJ z-guNv|9gFn^Y|qy|0JB#t6N_4y^;1`Ni-+!9I{xc&~a~48Vn=)iUZ%*T(#d$>RAcm z)`@ZTsLaz)cbD^Wxt#kb;%tCnrRv`FGgx`_3ZG(!C!%HiinQxxU$g1$k^o{MF;}dW z%pO3Y`bt+LZDGwi_L&Jv;QrwoYkxtWV!z4g`}kxA4k}GP0Ng-7S6>Yu^R2RLENjND z5n(~OcUUFoaw-&Ay|AmUFz){H8(TqvNgX{s`3p;=3T_$qjO3G0=X40rQ)zZ-`2#kN zVwT@fw)C$8(hSG#_X+Ti$Kbm!9-wvTFHGwZcZw?!wMK*kKj(xDQ3oMTQ{C|+3>-l8 z#dZBkU|zaZ&~&55c1^DR*JCfbyc!p@bM{XS<9O5@+P+(fzXRw0V~3GH z62HNDutH7QW{UiNGCwBz{UlR6ieep3_osK1(18O-^Xyhw-79rxLbdYel8uF6>K%{b z^tY6>$&jL5AE6#&-kw9E`QsL-$#?fhm((Y83IhZ;3*rw9 zuf(OqJua0FXo?S+=*u>~K)#I36gId!;1MWhJ%35u=TpzBtm{_sd)$HOCV_p7T+}Z< z^QL~9m)FBAsp);^6FD@jp%pFZvN zUNX5+4^9M?B@5T}RM#J0IqfFMt{t*` zQgnwZv#zUT>&lHemncijK6lO=Gla@G7MPCZtlCYIW$f^CWE{V{HL3OcBF0*N^45~N zn(TcUAAZ^9fuXDB5rkxP+5I*h<0msnBz@+YTz507Uv%a(S%3?zhpB*mw_(SA*8}1F zush&F-QRp%<^03Jd6@E$={@q?H*xIg<}UHKmufhnS8ku{{I>fE!St%uFJHQGk#++t ztyfGu>#V9z!<@tHn%B%$Z$NJ9SQLksD$%Uw8a?boVbX+$cEqvC*Vd!Aa9+_cXp_)5)T%iF`ZX_}e8>EQsBJ&l&dMm6~j5M0k0W z(k&;fuFJu`w`}SxAbESY`ZNPno6V)$MinAGYHEKDA9mQEJ%EjO!K0?RHrXMV5d;Ao*OJJ;C zN;8>JBNtZ$!GNrXiSlJX zLcs5tT-UR-wOJAJJ#tX(-FjE0(|(!@1e#8b`#hmO$4Hfdc;b$dFFkVS>Aq{0|g9Kgms}=e#b3 zbm2j&F`Xy~L@wexyDpUao=lVzy|STF@{H#pz-; zJIx|!L%+#36ZL>Hc}l%&TMBA7%8=70&uM}sf@^l)MET2?1E*}Z>URno=&{!(8~0zP zv$Gkr$CNkxUhAbw+l=)*;YRSwDKdY2{Ww#m%I|xu_IPSH9vIgBh)L+v5O?u>HO_AI zaQRG|M4v14GR(i{{(P~Q+K^yE<~Xm)?kAYQMb&yH$cF6FDv8Ev%`C52p=rEM(BpoU zet6f-71-Knbw%g-0BqX?ze?8mMlHvld5kV!pq=E*XN5mulDYrYSe2fd0uHcjI?@n`AQ z?RWVpA}!yWH+=Vs`iljDMBNN>TZy@IUJ9w3C2lsvUQZQc+n!JKt-7XWcUwyM1~0j77}1Ho&`G>>7I}&* zx6|{ir=S0bqPS#y~G+E!Sw`0AFhhqqLETLSGq14FxN>|{&2X0+8iecrwyoBdKT zJr044vk`JSr@Nt$e%h$6lvf;FO-gAMi{Ogv8MRXpg zTf#>oT$kSQRAYi6JI~pnNs|SS5tYon*Mm_?92Wv(*H9&6#;BgfUBDz<{k}=gBpGPClm5} zyBy8t=)G|^&os`cs`iQR-kT8D$NI-%lRP1=O95R^YtKe6+wc%0_&R9Igq|f19u$2o z%JPI4J`|!X$8m!^S29=Km>2WUYitrN@ktL$bEzM72j&iVe=(+>pmEx9+M!F|pNAZt z_c^gPQFgIrnH&}XC-@H~ifWdtj?QACYdi`q5#URFPrxvA!WsC|hvUZuSk8>+zNmdy zza)fk^_;hm*(7d!`G_fob8l~;2%pZZ-yK=(I0K1HywF;L_o|Jl+)m*P zA2fJo!wg$8-^}Gf&#w>j35?`Ux>G*#RVPY#XdB!8dp>gAGK>K(zOpffUEStEk%+QJ0i zJjnAQkeI(RL{x{Kl;o-R6P=V#An_qu#3RI_{vnPA=LLl z`s#~+WU2BvwqW-)Xg&u!M0GAap{j#o)zItI6ulaZ;@hn4$d?v5Zm;XqZc(u@$@R4}F zd)-!9#Tyh;^v>fWPmAP>H(qR2yc22OD6wLkm2`gbF6Xv&O!e@82zZ@|Eijov`WM58&6}DXW?`Q zX;zoJO8NJAv4kHy2!Rs>Z5IPy&pSN!GOJ6gZO=N#Mdt>I?VMAeezj?RUyM9~9XTe$ z)-@5_ONc|L#G>EyZR|tJZ$IOFa}u)FQS^=)22IMuSIMI}<&V8#I*eT!Zu@eXme&a- zWjq%gH0?oe5Yk_5>%#ho^+8`Y0aD^}VpSprpa1-73JVMS$CudOZ~ndzKo3qpXJ-pr zGbcuO8|zc8HK!GB6u<6nvYo|rj2#M@aSCUIumF_zO9qkpymbscVe}6axT3F*@ee}< z7+e@9w_DNJ!ZWX~jr!}lEiZKl)BWH|SSa4qi9*9OP~V9zAo$zkB}88?>#qxM7a3CJ zAduC3w);uHKgWHT=tp%W9bzfBZ8|GR*`@`fH&8_o87lix9tXQksCn~pc$Btm3Je2( zcBCHXi76{oilfMmE0+(N_ykl{l|EiuQ;gZPVCGAj-@Eow3yS5Ep!p_|!oenIQomL75HNV}3rp`nHiCbQl^MVR-LHSkVjldMD$ z_6tRvYq~dP*f_wclxic%7xIB}lbUtr;2bie1zXzy^t$sIYSW4c8OuJ(7QjEMFd61sAJ4Vl&=|;3=Qxtu@=$a}Xqjm* z*GmvUDAJoNJUpMTtN@?mPV9pJv-k)wW{{@s7p^x95URNsEH<;Ljz6mftC1VU_3+E| zo18!ahlF%subFmo|TDn9!@z&Cx28-YgGvG3zL?KHg zQt;sV>?py^Ec+;qUoGAV+tpXIV9R2&tLI9iux-5tvS3qDK~Klx_&c=N9q^M`LHsaX z9mr)yf;Q=0PgQl)Op+fHemW14-eubwU%Ckt?_uqqgnOg^yxhks`cD$3}gN|F;nrfgb;=0z7FgzvQ0}JxR$<^0jKF=EJV7U5=PA9_pP# zs4#863gqR{abCcdvUr03H zf_n64qvF!HomGKlLhV{VCTjURykpL|0@PcqsvMUzwQVjl%R7&$3oU`YB_zjw9@32n zbi5(t>3X(=PcyjezwM9PMG;zkxuOECMUam8YB1(GHQ1=pDp2Dwx z3CxOa+(1QMMMNJbrC(vQtE!79JMR;!d0qfWdXZo_SABKQ()+B(tmvqW%8W?W7R z6Q)wjHG*O8uKCv3DoPX2E^g8H^q#WXdO`L=-1>cb`;e|!QK^C2bhPrOsO__aM)Xx6 zA{!Y~K$y<-MEzhYXVc=-H>U+BiSMbR;WNm7X77P7)A_ed3eqsJC@c>xNl*X)Eg1mt zpZz&J$e$bA**gC|Hv8?)b&sQ0xszVI2Ru-N+@|VCuWE z=);;gzKSDKE*9dys64?w8A%_RuE~byeX4SNkt}>4&d>im5gZaSm)Ev>FPxj*Q~zZ12-IVE$#`%iGf+2FJy(uXZMK|?N8>W`%>~$IB zrFIDt`_ER$Cx-TfT8l#=dXEb(UAHcC>N;pa@{CuG(a72%2(BPD958Q0eq_@y*Hi6BE@3;`N!@XwngpC*VX%1At52lP%&9-^rfU7;4uklN*8~VYpuvrPi($*gtH2EuSb%pFFpFq5Q(zTTFQqBa(P~zTQDq zcb{CruGBV23?|I>NO3rQeuB-7RCyGkKS6ChGRmFY>2_)))+!e=pbp|zU$d;V1zQ~9 zj=pt~A-_rBDP;+~!?;XEQIvp0WGcD3cTnT0!B2l3lo#@CbhSs0PRyK5G>gU#>fv*Q zo|Q5uICPB8jj>N*G3~4J9=0yUwQ09M<19ydWUp-NZ_?FHjLjbp!y^^pZ+F}5%YN6^ zNQk`0UzPy27+_0FskvsteLfwsluHiA2-Ry%j8cSZPx8il=Smd8$g2h2F&?=HO~}u; zfa)SUn7OAFnl3ZqRHT&IC3|W_5A%(mZVBaydldjbVQt>}ZI!FmcQl;(Vx!?L{g8n~ z!1w@75B(-yZH4cb^2Ks3+y)#&9@;N3SF+dfRlfW4P|LJvX>mMN94#o$UOf|C+ae*} zRo(YX#Uso6*ewDrfQakIGD7G;6;Fb0?p2W(;nerT zo8RETKaAYElt_(Iy1wL#W`sxzQ|kv{&!JqHZRT$>6?!`4>ddV7`F-vtUKt*lHzYlz zf!)#zDvH7Bh5qaqW1@79e%{o`JV7LRx>n2lZi*`7nd=_k8E?N(rMkH_mFw`ifPg?m zOow|gP5jhkfaI~68I5kH#K8>i@T(66QK{FG*X;GU_tqFS7RvTiz&De?sxxND4O6$+ zd%A)TD=sTWN-y7POSxKGl+?=$cf=uvre`HGcnKWBhov((2^`>kN-t20k-00a0%MwX z{ToVYiEYYBABrmPL$#45GjdbCzvK3ynx)VdSEPxee&oMP%sodfriV7k{Kiq)GAw9t ztw0u;@Ut|Wc)FLcK+e6um|S*R?wr)0?Pmy*1DDxDGgl8H3GxA;uno9LEEWE``V- zw9;d$oFjkU+HVN1#;t-B8fn%)H~IGyL>g1+Qr9a?M=#j0{< zJs7~7StI}WmV?ux4_AqJ-E zvrJX<{M4`>_YrpQhA83P+mvx!RA+l;Uy)kl3znePZ-u`&u>}VWTIf2Ti^$}E(J!`p zdl~QO3adE0SAVQStTe|Pa%aH#Av0gG+_@v}aL!#9n-Q-~qD{Ar zHxK;RT`CCVb04m){R%);(z1CRB|N8isG~NdV2^W*;D&Lh*mUxU6}Ev-zUb|VCU5qh zXRDrR6K$INCa<;~Rt`kb>MQ;}i%)ni@`og%*s^eyaC0uK)WCzA^uzVqQ*ZZ}Da0n6 z`*t+hK}H&ggRIGmOf`a;Y>{imWXAMLlu?px^qjYPRo4AVPw~34(=;` z2#`qUN83w-o(-!FSq_cY^)_Da$EDg$eY2mt1Kd5V%-gOoo*i2648}H_n(b)1?iVEXPEETnWAiA6w zW^Ev6uAW%*9SWSt>#}igWphm@JMhV&ICKdiJX@s~tB*oY>ZG8WO6Imr&`@AbbeW7E z2{=1rJ}S)!x$fhgS((5sLnYsS6Mh2e$Oc* z>_%8;KedS@QgK|KX(@Lk@*Zx#=_f$pT*q8HTWLUGx&5SvrM5h3-l`9E<)xJl%O)ho zG&t~{by4**k##=@5(}7$%y{J4wyik@ z_qwm(Aq!I;F=vdXCNq>W9%KhqF>6e1%f-FnqJoqnF}q8OYRPFF3wSTYJy>!oy;Vlq zCe{;e@gZ=}MQ#Rw{AR)!3WXuzCqfVe2oW8z4-8d9XOthcjM|*12w8w7LIyWsbk!Cm zJCR5h>MFTzkf|(;w7n4E&Wa*3Mg5v8z?YVNAnpuXimw3fa{b;BxtDNj)OGQI3IqL+ zZ#m+mupvUDuYeWp#9tN}eYf5A%5X)5xA1PeQjB&n+D$klXDHPxNehaKWB#NgU@Am0 zvUawjt2Ix9jH>>V%JTb+$e3Lo3Cx%@mhiVM!{kR(Y<|?E36PS zGSQZ#I9^m=A%{_u@EDNuiKlzq##y6T2=p`-YrWo4@5O((i!m9Q&-(n)_)Fu8GGsB+ z-J5q4w@T_3Hp^F`4askm@0r7M{2z_-3>bR$diRBpKO9(RrGQy7gFADJZzyN%vldp9 zRTM_ERZt2&K6{#K_(l)Fr*E-c$^!RNVBbG|&>3dDIBIcTsxd)48IzW*TSqrTlu9Fy zkX)E{f|FF6QXA@JeZ;tDTV>#1XU+KA zCo`{(mKm9FJgdA`R0!xFm5FU}$3#!KZfD~o-V;21_3nM)htj*ICy42&*816btI4@Y zC+CsuNA-pvFT|pKpk8y?Ek?tnI6}Jk#u{S*OIL6~p=dRYoK3_tYx4djwKPN=GuV>0nao5NVYWj!~wk+#vC}4202fi?h2_$2yQUo~M80=a0>P6!@YT&E}F2{9*Ff z=4Fk?TtN3eupYyS!QjiT*77cQezG;qU|kn=Urct(bsZ}1hfl6m795$Hn#8lIvq8H7 z@pCORsoGc!tZbQ3NE{jRWmk^pb zTR$t@j(*{&wr~KSKdGxOU%TE_-wa1O=-4ZDMI=E`@5*aBcOi8XXLRh*0igSaQ~C7D z>*4dGpeS^BmM>uH3Qy)Mu8231YP4sUeBH(}b!8mrQ+AYOB2&<~M^Prc zDAkg^Yr({>#@NEu%#uAg(QwYs?@#KQCRVTTnlUlp2PiqLQ9k!xWn=cEtc!V^y7hL1 zXU5H2A;~&sBY1wDF1RVlk2X%-XS+LDAVF1MajiHZVr zn~s4)D_#ZBb>A9l4HoCz+weLSGy9q_&+XhgYgp( zn1$~OFMfkPKRx;UHQ%h1^ocZx<>p-h_WG*H$>&^%2n3$ni zsLT5LmS|-7nEf~r3bc09uvLLYOvwT6`otE~lGS9&px|we>f<1xz3GI(Q;$V|fV_a?CBcJl_uEEv19rLQ@pKEV_Hng3vWrev9$O|L$ zDLG}7|HvgB^kbd(UPwHnd^>kJgGgIjSQbQ>V)MBs36TfS9u10cPq4U=!c5&Ki0r?itE05u4Qp2 zi88!KG>sm5;iO4Tyu!#^!5?&)ZPWZVof++GhmItv)%_@} zNSM?fyq>Uk!p;OdT0wr^tyVA4Fw{ysUtX{XHK?Z^tSSEEuYhwfca>B6SMu^-!8nkH zRp#)wUc%%7ns8rSUwOVvjlTHo6UAYbZrKyonfFY+>n8Wy50To+K8xqd5Ew@l7p%!R zr#YoD{ki@PXO|JzI6Zd~vj@21xbjV>?oJy_qEY|Ll=X0Q)jguc!)Up8Qp471bkTM4 z5qL(;CgxRs8wJL8NZuv!q*8FS8Ar!jBJn(>7QT>UVP;oT0t*uZ#*>5+M93)i(m)p2 zG3Ymw-Cz{{{sWpqSD?A`?irwVQqP5lW9URRGe3(eVRq5e0bSr@dX(`uD|^^!B9uY0 zUmWgFR37#rC&ec*J=8>@geN2j8(m?~+e>cQ-``?bF1fDdg(HP^67IhC8Q01$bZ#L) z*ue+>j4F2YMVoW6G z1wAnV-;XsJb@hnETIY_Inr%v|sHw^ZL_;BmvaW9-ellI!dX=i@j%Z!lCX48-xPtEHJ%HJ(u`!rNZUw9a7YYFd?9nm>Nh=UF%LC_H@Zopb3^ zKYFiMOElKw<);@z~Sef1Jm#h zV$_=1hl_n0dGb09+>Q#f8mbWk7uCLv;4!2JySb7 z06p8|SvpOq88Y<)>RO?$rJ$gQE;7L)jCMwmP&RgH*Q8PO#|ngI%0QN=q#FGyG?t>- zVm`sljS}LgjSGi8xhFfn5HD)s`*8O$#%JTW*TY=o7}D=Zy$^NrdP=vVYLbCsSrG3i zo9e~06;Z&s)H{USqj&F-MiM_L4NhR+_rSdlc^m^J3M=XlihXkh%4=$tjqqLQKJ@O+ zJ4ife>&|nv>4dVEak95zS*Voi!bQZbFu(FEFXOXCg(meDp#P`~OI)E>8|P=y9-^<6 z;wepB8PKsjX-KM~Wda)+`r(!qt$KGj)g}`%!Edg6%$nDf{OOcw`N3}mZcF$JP0n>9 zYlR%G5Ax|5Glo(N<|E}nNn&iY-U8PMSkt$})OB&s$m#ra-(X{5(ElFh$s5!kp;iQh zy=ZV(2-=#|%_H2833CveCx|>93fkpknV3j~AY!YRKUCeoT~dV^e!R3GP-#m5lguqt zfgnM=g=0^i?KPFuftd;N#B&8SMH$-vhG)M27%M*w&zED=_n3=b3W?t1* zq_ELvNHSf!ou}>YtZUK2u@Y$R6nWRs=#aFk9<_24T!ML9hTV9HHaF5%riNgnS**tH zqpC_*mLa&x-L10yPHA3xBvz(p7b(;19&eZiTRk{?1qbpqL zxcuO#u1uxDvoH_-iMB{DUxi(jjs~-zo)(jGr1P*!_4?-25_ljju4;R;`li!`Raxhm zswHmsZjE^U%W}QiFmmId53y{){1+c$CzgAqcJztR%Cq$y&vPQg1qNeT3fTE~tMe?- zH&9wr$f%~FyqP5GhB3w^Rsp%CR(tn&a?p!|3zAoRdV%-X=rf+sk{vLl@2HxIH~i3G zpq{4G$kKtk9A@Mcf@F&y7GHuj7Ef}D7tdXYHsf%w76x3az(Wb|2kBppMF)QvYb+Zq z^U-wnqJ=SnZl<=scEwbc#o|(?ZzFc@;5c0kS;cGAZfoQW7$^e0k?p3}2M>_kbLlxo ztAW7k8u6m2WfeRdHcjIroI5G`8Sl7|lZ7ldSRvwD{mt9>7kJlS(6|x3b?=ky))qzh zj=VYTFIiS>I`ZxWS#P2sT}wCmvv~(s@SFXWT@E%Y3CQd z>K(ive$MzA;aHlD2vbuKR=|t)6=MX_0Bd+D?)CAw_%7}ei2u`J4a?mF4!pFnYz}YL zNyd6YN+fPMgU(Ra#+Su02gx`srx79^*^Ao#^~|sHSgOuHw-5qeBHil>4KnZ>&30&h zU212C#W$S1H^na(zj(zgCUt{s4^`m`m<&`QX`FA}Qp)Nhgl{Y@g7~3s(FIcx2*Jgu z8=HINb|o?1esX1uppG=!Xx-Jrx@3QYwC!V%_xdswjQ>;jx|m=6hk!NMml(l@Fs{%J zLzhC9=Ye#ddrl4MyiXQ(%0GWn99L|#Z4!M-HL3KC=5Zb5DGNXUWVo*Gg$x1D=lfG@ z2sN@OJ~ZDL&#B^BeX=${z{JFR*unjC{t?LxY=;6~J07H?_leQ^)svUABH9NH*qXos zW?3QZqDqa_TZ=Ptf|2P5L<`SK`pxF!V6@kCc&te16s-Z$pjS6!pSs*+Mr|OEuIz1! zkC3#nkVi$>NnaiQ&yCYLGHEB(box4sCI%Rm;cjBGbp8X^MgreTEjJA>bOkz=Q6^#L zMY0FtlVR>@%rB*eNqtSwqt*>;Xo_VcS$!tqkgX}QS7&n8>ATDoG$C1;hNfJ6L?OcM zl}VU;5ntp6ovsxLa~UjHQTz3~td3N+(cT5X3t-QT9#Lw7)e~7yqMPd=#|PjL{32V> z3zl=Yhf(t)FjRN-zz*ZDv+7K+>nrQz{31}#iZYD0uL_NIxvjv2V0{o+NwI{Ki=t(x z=eb8CV0TQhZF&VhLteHSSvdn0R9Aw{L!H}53|{IVyDo=}=5sF^Csq?eTK83k(gPz= z$rZTTrLk`#ek%&$tzBr`7eyAQJ67I#`#pArqz^%W+#uj3vqIcHUSdZ$64D-+{U#8c zhWca>J`|qqB`#s`IhT&*kxwoMg@K~(d{@%eo*xIEe1)$LoIc6|F|+D{0CtZ|nqM!a z7zKtCZ>i7AhWU=A&VbpzY{%SZ@Qd_hI%y9Pn!qWZLk5x^2hTEvALUv8u$S3!P*3L4 zR8%y5JwY=DQN#$U6F$mCv}|_=+%E$4b;j}KfUJYth0ZK;`26qY?!dJhhl5xMGM|xX zss^VKpOGJlnCtU++wJ6EG^;`7`si=Gu!io)cmb)zLm-;R@k!zCh_HvnN*5fSk#8waL$2!iweLativx~>C z`7&Hvq}iHYiB5#&W{7f74Nzl|>!hp#;3)IwuqeKG?l{i(zd7XYxZ1pDh` z=I@-Rh!17;BM<<<@A5~^6VTc4_puDW5a>qY3UqV=WjzUyu`n`|kpOLt?My(&@B(D2 zDiRFbWI}@P`0Y$hEsTM@euk*X zuenpa{|e3f2ctiG+^sEatpv!-ot^D@nV8(%+!)>180{R*m{@ptc$ofpOZFEl6XSp2 z>|GqK|9~yW@dJ# zKihwEGIKOBvHl1CUj_hzWn(g9GBI>EWN@_rx{;HS{H4c#Q8+7^;NRN)EruZfAHrDJ zS~y!6S~D1f^39y>90g?!T^ucpE$m1{41u18{7nBA=ugx?P(ZWE0OAW2WMyVyWnkt6 zePd8zW#wh&;N@WZ3;Vyr@tYX){*A!Rz|6|P!llB>!pp|W%gW8q^!Lj@IRH&S!r7WJ zn7BCpku4{vpu)l~$;u_mqWl-_{};r6M>O^@wgx&0vhsjP|1pxk;s1K^C$t&R76@Vh z8ofMd4&?u^KqhuZ7Df&VRa*;plK<-cJu~|Dj&_znV`nCI77iO03K16zYZC?@E^eN` zSo{~YKdIY0TG%@Oqa$_(W)21xHqbbDIe2(E{+8=sfd0h#X8|}lgNE+pY++3D#{irS zjjVwT#&#~Y&Y)F9_GhOt&>A#@fA(>3{MBh^^jpfmyE)02{+e+YC!iyP3DDHS7HIM( z`tM~VK=vEpFN5R#&Fa5e|H$%3_kYhvs;@CLn)A!tV}p zC-%R`{g-EO7a;qCE-%O-{qFwl27ZG$gFMThLTSh7C>$lM}Gn4#vk%725nwat`iAns$3)K2|tNjmm1){;q$^e33 zaPqKqHgspObt30x68i-OwK7 z*_i+FY#=~c+5c})8=HTiot%|`|0VCgCG4aE%6?^10y^2bI2wZ{&J^URKumZ=|8zbo zc6K25_NNvV%xV^K=hdZy)1v?{=KyRRhGYSS^pz06G#}Q z-xK>U6a9A=$a;Q1{$sYF#y^G+$}bima|D_7C2&j?0Dy%2BmZ~hMAJf2MG?bQrw(!T zeV(uR3$t|qCuP25>3iC6rCgN!F?yTa9AVZKW>T~jN%TCZ{7ACTdBkDRH{=y0s~EKJ zw1&g$5R;uBk$fN)kJGot?@coT+%|VQxXwDgCf&|j_cOc(x14$VL^ON*M0BjdIlh5{ICHv_BIiKH=9 zthIqUo2YqGDhCQ!p9vOg0B_)a*w{kM^aUwp>phu+xiQSOXsWJ3QNTr9vRZGEJiW~r zgOT?+z!DGr2YR5o1Y7PLi(v8W>DUmzrh0|lEyNDux(Cb&=359uvJAEp9$Z-aE>7XQ z0~_ajjnl^W2B_0L%dI1hVu=AgMkFERr*d5o`~F7PZ_~$?bBL&#FHgchA)Og(GLJ=) zAva4fbTSehH}TCJ;Fw25xhg62k7U0`Tn`vd+moxHhUye3;5?al?JL)|L|Pc1@y9M(8g(|k z@?oZ^LR%;t0xlE~tyq4OJEkz3rfi>DH1Hei(K6tywhN!kbCQnM znTj4WqOsfQ)STL)`sjx``)RCIYeUnE(Q)02*PL&ah#bJ=} zg`Vg+uRnqadHL8Z+e2l5UIXX+@fD64fa%HW4d>0=`8!7b_dn16y`|55pc4><0|0)P z|E&L5YPP|!}Ra%#P1;epF=#)f5Zia%Ktwh z{;%x@=YOR4*Y@Dwh4{a4x&9;W|8a=Nn1})W0*7k;E5vL0m?x^@Y^)WH#(1sGv7cJa zv)0!n%#7|m2B8#O#?)aJ8ulqE!ed^dMvBlXQ9Spu%BbHb{>m?bC&TZ`La)O(`jeLF4roA=zRRNmr1*gan*(DltH6?` za9^g-d(4o^+aN`(Z#$9wJ*MZlu&$m0=w&vOJ>c^D-`CLu70IS}H8FuP3*(KOCRo0H zB15LC3R^G@s?`dBDygbsbIruryY2K74Nb{>)#a(rC0>d zQO4bfX;qfOcw#-@=-ICUwW#Gle4B zMtbT#YzZ4zM9F&>jFgWIm~2PgWPqzZ@~{!2Nb?Xb=VYMPmvm+(UjDUTTI6W{Q?jFV zFk{HbM!t_ zu3Gf#y>MC?SM9U*vL{(`XOtF4WVpa$y)W@bgeHgb0rf*w!ppd&8*5aT%(z*3U^GuB z?x!#@0AX3%JPBbBq~$SvD*9>TRXX%Gt9oJZN_nmnZdoxPioIT1B{n78r1MSl)A4OQ zd{pcbJey?>Q&8)7AbYTs^Dn=l6!RAf+4p0j-l*y{5i*O4$AjjxhVML5=r{s<7t6ed z6pFRMOr!?ud=p6RaR_Tu$}!1iC7cFv$pR5PC^M)NKbh~jQ7;P(X@@)Jvsc*%2Ff?J zVUi3P=S+dk`>uo!c9%TT9H(ejW<{uUip)zNz_Ks0zTL z0rMp`YC;uE%$!{9AbfFjjlkUGQ$}O=Ck~DoGyV-Z>0eir&_sCDxJ}GK_*#RVL-l|? zGD~HGhHiv@x-zMguBofeSn<{r16hRBWbI#wWl}TAg;T!L4Uo(*C*#7O5>k_`1}fDU zoAAcYoLm}11H#=eR@<{LD zLc(pMozI3zts8et%BhsmA~THMQr&KJNKj76G9S5XO4?UopYEhLOzZimw!uppCd5Ya zc2_X-mM%HXK#pGH__~oi5Cm%#cZy+jyZvxkvltnQq1bH<>+r$>lI8eGD3ToGkgLgN z_ihdp`1qVjgRa?zVA{%gBLRptIyS|$03BCnW%!bb>7npV7sSs$%F2YqctphDJ7Hqt z_jtJByAl7%%Knp;{r_ZTe{5K=iNmv*D>gf>&dUDW>|nbR`)_7tf3`*RN`HTomHmko zyAu0<&dSglpHjg$UI2e&Wgim%YvZMJ#%$bV&_Yxyp31W%Rr!IadZmp~#aJM14=C;+ zJ*FFV|c< z`3}!E1eQNJNT_*wHsE!A%>M$hUivI2&Oz!3XgV=^#kz$b?ZbhQKr(acoT~0V2h3)@JQ}@E^3GnitF`>aawA1mS)*Ig}^mBCT~(07oIGDrrFB&2JHlG zs(!x^{n=M)ViX46o^EE4gT&We`pR)(y zGm1e%BS6s>-O^Fo8)EkB4bqx-7bZZLed(j-gOXjH659pH1KK;bGO4)%k=VDZTo z7vy%=(jJ$^0(ff^l7Y0kcScvd-VG1^Hl?@o8&YI5I@Ef0u1!P~W6f%ksf^P@5iZGd z@DV?|&xZDCdF^I>Y=lhy0&yM31flqVjyOui(xag=6;)_nCAD=#cK@pZi$aRA7RPiU;{tG~W@L~~WMH(&%H&5Q8nx{=Hr_`#X)akv+?661n z@SP4z(eohM5C>)Y-a(^K0Zi()?&V23!QYARgFEuaceR!dV)#R+R0qVoAwXWHu(*0; z76Lo0K1NEaeI#|$96;%9>4gz}-+;&FjLG+v6-o(=TF`rxdzY*di;?vw9fci&pq*ur z%9}iq%_etg;z*NR*)m|C$i?FGUT70xkcdgU>eap7g)v}uF6L};k{TX#ztA`daHh_C zL~672ibM3{_CfkBV!(3_;;$aeN*x@Mx$VMj53UX4;ML<~yTqo=HpeyB@v-1g{7O1{;75;=GLQh7^`&)!Gc7@1%GORy+WL04&TP zB$Vl+oWIihW#3pv6mfKLbc3H{{qcR}6YEdhcxPv?gcY&GFp~;iIvH$o>nwzGntAhp zhcnI27Nw(OO{ECH7Nh->pEy3z?6q4<27l<3)*OE_v*az~lSv)eN@4npV=?^r=!jLO zklchW?OV)xid$vCZn!utyfOeJWd<5|uzv(8HYbb1DW)cUMABdLaOapHjtJD>8?#zp z#vEG=W|FGuQF`7>h^wT)p=h158XyxPCLS*EwZ}h5BaMg=um-xlj z*~y=+M~?qKK}TbPRTb3tIe}n9*%-Gkr-$0&WgpHA?CarhgOB{T(Z0avYIlC)iwj?m zXEMr+Z;+*%x~;&-rPvN2{2kAF)@`}y$XaTXq5Uw__MPVZT&8Q#@Su8uj#Dlp&=BtF#lTA92&$Ly}CCwocdk2s;V-wS!d0YCcDJ6 z4csR0-&^k~~Uk!7DHyRK}8GCpXIz!GULH{fpMw97FmA?h5Je-{=z_2{y^!q$6o za>YVT1*O%2!C>kh`vj}v-?3@Ockq`%w|SNsl2jNCa^4*oKU}IOjURR7*W8~Gvg}%~ z^>me^pn9=iJ0i%?0%f}yDPF^1>_%N?8N^k4LXvYTsK*hrZFUm8V-IL^$xU5)DF7Y$ zT0b~F@0B`}Z?4Xg01e-eft5dGYcM2!39xVyVDP;a&EUt$O+LWOhe5(({;u%B;6Qxn zQ5M6YQKMa_{j;eeY4nEY*E(~h*L;Pa6xsFk^0~hcuI5XkZ?z)=Z-l3|KQE+d+A+y(PgNMuRM2^jWUrk_e91!E9oT-sc^@N8WOWlJ z=VL=>y7y>Sitz&yg#TM-r6^%VuvB8=tEIc31$9j)?0hoKTzoHi@@;Kw#;WkmLoBx3 zwof(qul7%5=El=bj~_Mh1wwrZa_1}Vgs0wk!KRuHW~r2XT$Z~Nt`>OQ{HLY$7_?hC?cuTASma&gR zhz4t4W;4axyjH2X6G8@p$GX!LV#R@BS$tD7ce3cH9%Z2V?)s*X9&>TxH>3;^$?^qE z2f^m=;Vm$;QTsjN;p)ph_Bl#SjWSWeJ6#zUpn84UBZ)Ql)(*Hp9f@Q2eRoL|nKukp zVgOp6I~i1Igcm8vQ7g@0+|ts*kdnRut{&j#95Jia8YyFGEIPCB-d71Nz^;@Anrh@o zQsK8u0NtN1)!x&uU`kXsBgw2gsG%?Ij0^%v#?&sT(>sl>5R^UXe0S#o{466E6rT20 zk^g1TM6xruaO?1aN8A=gG006(Df5j$GFA=D-H;zo?-rl@!1CuoJw-W#XZEKa@8uhR z=lwPZ1#g|chDvHq91W13Mt>)8JsVI^5Yd*Z$FRwb2)yt5n%mLAmbiEfrlQs7(?YP^ zS2}ksNTE8ZBNcliDB&J+PKcMU_$nLi(=_T?a6o#FHbli%$8@!#$VfUd(oEDyf!Zz* zViAh_BC(<`q8>`QSz66dU*_|0NF)rOzlT@5wdeKc)5?!HTehny?0B1j3Jb&>W(C$V zQjvUgh4J7i1N)p9j@-O(HhO=RekT?#ZEWA}TUlz(*O1w7H3_W5uobW3nFK*|pyidh zXW%Fcmv`)p8LQvk`P4JaLK?nNVrmUXdED==GT+mizF{2U>iEtawp?qeu{E@6RWe}2 zJj6G7S3lVKD@kih!SuLde|u}3%V*S6)NYo9n1Y+7fsn0$%sI4xDg%yg8V3w~tG97; z%*XyEywy!garbVN5Omfb$i0rq(^Kqwv%jb+-xL<{{o~w+7Z^5Esvk6YSZa6p^y6^2 z$9Z8wv*yUUZ{&5d_6}-}RI_E8LNJbQ9FQDogN6pyr%FDi7>ssP=8H(Un2887rlh-T zZf~I4M|?Z*RvgeFF~CSt&)jY(kCTDmjM~Xbh_tufZ%5m-EY;F-bhi-a)D|fqHexrm zbycJ?ir10|vCZb^wPK{v&2#M}YfO~!k-askJdjAob`5j*gtcFPg0k?%99i7#f%d2H zyuE4`qq%JGN=18g@LItuw-(~Z1%z{CIh17T;Vm zxe~DSoTp3xNjBe(B4ZzV58|Ko zrG6XpO^JBOpi$JDXESQ)0Db0KU;WL)mCYZ;xxU(*JMBFz=Uxi-S||-5@sPrJH*I}* zb2BbZMA2dY=nPO2vJAKd@*$r}$39%Fr4h-}_ZjC~6&HG*$5fv@hE{3cF6h}sZ;X`Q zhadIb+(_x{u{HZ6-jAcBqs3Ft45yU$#->6naWh-r*G$!?HWABZ;T++U#Xm~cRzlH#UGaS9?UT<>w)Qh(wlPT9~xB9 z@6m}iGJ#t4fo^DGl=!g~wlZVvsXAz9$ErcAl0CN)`l#T>XROj<`R1qsCv4!3dg!x! zFDMUgx)4Ov)W0?2Yel1)ebQD1OM0W1tKc;dJLtM&Lr1G7`A#aX{i48P47uxR)&eRF zywK3R578P@&cN|qYtkTPOU3>^LamM(hqkBKLE^ZQXP*12wXOTk>f@q)oM%J|vJYHb zmu&;R%9>8^A*5?|Ls4CP@RO_^$lnzeKop6w(ziA@F?Midg&(!|MfF+xvEle{@&_3A zj|oChQSHG!H5Mt&T+h`}Av=k9(~YpGM@pIbt0^BAio`i)U=_cu>yvebl;yUla2hhw z^+=k%`NGUw$6Av$$vZJt$xM+*zHQ-`mBLi(V$B5AjSXPA2eKR}PY1gu?(!?tQ@4!p z*hzvqDqzuoW^2F9j?K-o(=vkfI1T7EMgF=kIU44*o^ zZ{MDwiPlTHyP>dJ$LDsoe9Ag-MlxSq;Vfz?*q>o~6uw-sL!l~BjOf0KL$hI2Bmlq< ze!8IeQ)O~QE_-gI@E0OB)+Xkre=4^e?m`^l>JD3dYhz1zZHFJLq@QCDzsWAa!R1z_ za6yrSfxi9UATNt(Yh&vK*X~$5{hK(15~kpF(Z;PT9N6>S?|HUiH>wfIKX%4^poMHjB| zZ?>Fx7ipDX5Da5yoITUaE|V+omi-uaFrDPy-@R^i^R=fc%!QJ$Sj<0rOxO^opuZYS zy;m#6fTYPH5fXg;mEZ8(7dGoPf8IdcyUPAts#*cQk5YyE-qs>TjJ#8!bo@#}aXY48 zX}~)yHe*{1vP>sC@zkw4mAQ*2c|`;nH(lr(%pwYR zo!S2E15W3KI_0jW4n}6C(RC?XWI+8*mNM0j??m3jZ;VWXZP)^#isJ?lG%#H z`Y~xkN|M?{RN2GcVXwZ8T^X+^@f5AgbMuSRreK~dpVyqKh}OhEXEfW44*_l z*6;ci`J*-&Q5)vMG;jS>Ddrq_u5S|9v zw@B|YPe1V2KlKxTiJu?&>}o#9{I#2|;Jd#Y zLj>nsn9(IpFWBzt&-t^L#7n$fu-`xRGI)uX3pV_@n|@qz5qx-IXz&V#m$IXx3@Sni R4PTlG015Dgx=|1D?q3d_K+6CC literal 0 HcmV?d00001